Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2024-01-16 13:42:19 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2024-01-16 13:42:19 +0300
commit84d1bd786125c1c14a3ba5f63e38a4cc736a9027 (patch)
treef550fa965f507077e20dbb6d61a8269a99ef7107
parent3a105e36e689f7b75482236712f1a47fd5a76814 (diff)
Add latest changes from gitlab-org/gitlab@16-8-stable-eev16.8.0-rc42
-rw-r--r--.eslintrc.yml2
-rw-r--r--.gitlab-ci.yml51
-rw-r--r--.gitlab/CODEOWNERS8
-rw-r--r--.gitlab/ci/as-if-foss.gitlab-ci.yml133
-rw-r--r--.gitlab/ci/cng/main.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/gitlab-com/danger-review.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/global.gitlab-ci.yml8
-rw-r--r--.gitlab/ci/observability-backend.gitlab-ci.yml39
-rw-r--r--.gitlab/ci/package-and-test/main.gitlab-ci.yml21
-rw-r--r--.gitlab/ci/preflight.gitlab-ci.yml4
-rw-r--r--.gitlab/ci/qa-common/main.gitlab-ci.yml31
-rw-r--r--.gitlab/ci/qa-common/rules.gitlab-ci.yml4
-rw-r--r--.gitlab/ci/qa-common/variables.gitlab-ci.yml4
-rw-r--r--.gitlab/ci/qa.gitlab-ci.yml48
-rw-r--r--.gitlab/ci/rails.gitlab-ci.yml118
-rw-r--r--.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb4
-rw-r--r--.gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb4
-rw-r--r--.gitlab/ci/rails/shared.gitlab-ci.yml69
-rw-r--r--.gitlab/ci/reports.gitlab-ci.yml41
-rw-r--r--.gitlab/ci/review-apps/qa.gitlab-ci.yml112
-rw-r--r--.gitlab/ci/review-apps/rules.gitlab-ci.yml65
-rw-r--r--.gitlab/ci/review.gitlab-ci.yml4
-rw-r--r--.gitlab/ci/rules.gitlab-ci.yml224
-rw-r--r--.gitlab/ci/setup.gitlab-ci.yml20
-rw-r--r--.gitlab/ci/test-on-gdk/main.gitlab-ci.yml7
-rw-r--r--.gitlab/issue_templates/Feature Flag Roll Out.md20
-rw-r--r--.gitlab/issue_templates/Pipeline Execution Refinement Spike.md12
-rw-r--r--.gitlab/issue_templates/QA Failure.md2
-rw-r--r--.gitlab/merge_request_templates/Quarantine End to End Test.md6
-rw-r--r--.gitleaksignore3
-rw-r--r--.markdownlint.yml50
-rw-r--r--.rubocop.yml27
-rw-r--r--.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml1
-rw-r--r--.rubocop_todo/gitlab/strong_memoize_attr.yml1
-rw-r--r--.rubocop_todo/layout/array_alignment.yml2
-rw-r--r--.rubocop_todo/layout/empty_line_after_magic_comment.yml6
-rw-r--r--.rubocop_todo/layout/first_hash_element_indentation.yml2
-rw-r--r--.rubocop_todo/layout/line_end_string_concatenation_indentation.yml1
-rw-r--r--.rubocop_todo/layout/line_length.yml25
-rw-r--r--.rubocop_todo/layout/space_in_lambda_literal.yml3
-rw-r--r--.rubocop_todo/layout/space_inside_parens.yml2
-rw-r--r--.rubocop_todo/lint/symbol_conversion.yml2
-rw-r--r--.rubocop_todo/lint/unused_block_argument.yml2
-rw-r--r--.rubocop_todo/naming/heredoc_delimiter_naming.yml2
-rw-r--r--.rubocop_todo/performance/map_compact.yml4
-rw-r--r--.rubocop_todo/rails/avoid_time_comparison.yml13
-rw-r--r--.rubocop_todo/rails/file_path.yml1
-rw-r--r--.rubocop_todo/rspec/any_instance_of.yml1
-rw-r--r--.rubocop_todo/rspec/before_all_role_assignment.yml11
-rw-r--r--.rubocop_todo/rspec/context_wording.yml17
-rw-r--r--.rubocop_todo/rspec/expect_change.yml3
-rw-r--r--.rubocop_todo/rspec/expect_in_hook.yml1
-rw-r--r--.rubocop_todo/rspec/factory_bot/avoid_create.yml3
-rw-r--r--.rubocop_todo/rspec/feature_category.yml15
-rw-r--r--.rubocop_todo/rspec/instance_variable.yml3
-rw-r--r--.rubocop_todo/rspec/named_subject.yml13
-rw-r--r--.rubocop_todo/rspec/return_from_stub.yml1
-rw-r--r--.rubocop_todo/rspec/verified_doubles.yml5
-rw-r--r--.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml1
-rw-r--r--.rubocop_todo/style/block_delimiters.yml1
-rw-r--r--.rubocop_todo/style/explicit_block_argument.yml1
-rw-r--r--.rubocop_todo/style/guard_clause.yml1
-rw-r--r--.rubocop_todo/style/if_unless_modifier.yml3
-rw-r--r--.rubocop_todo/style/inline_disable_annotation.yml7
-rw-r--r--.rubocop_todo/style/keyword_parameters_order.yml1
-rw-r--r--.rubocop_todo/style/redundant_return.yml1
-rw-r--r--.rubocop_todo/style/redundant_self.yml1
-rw-r--r--.ruby-version2
-rw-r--r--CHANGELOG.md70
-rw-r--r--GITALY_SERVER_VERSION2
-rw-r--r--GITLAB_ELASTICSEARCH_INDEXER_VERSION2
-rw-r--r--GITLAB_KAS_VERSION2
-rw-r--r--GITLAB_PAGES_VERSION2
-rw-r--r--Gemfile51
-rw-r--r--Gemfile.checksum142
-rw-r--r--Gemfile.lock178
-rw-r--r--app/assets/images/mailers/in_product_marketing/admin_verify-0.pngbin30421 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/create-0.pngbin10275 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/create-1.pngbin39565 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/create-2.pngbin15793 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/experience-0.pngbin66492 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/team-0.pngbin42448 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/team-1.pngbin62019 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/team.png (renamed from app/assets/images/mailers/in_product_marketing/team-2.png)bin54468 -> 54468 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/trial-0.pngbin50665 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/trial-1.pngbin8676 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/trial-2.pngbin47411 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/verify-0.pngbin15366 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/verify-1.pngbin60722 -> 0 bytes
-rw-r--r--app/assets/images/mailers/in_product_marketing/verify.png (renamed from app/assets/images/mailers/in_product_marketing/verify-2.png)bin57506 -> 57506 bytes
-rw-r--r--app/assets/javascripts/admin/abuse_report/components/user_details.vue36
-rw-r--r--app/assets/javascripts/admin/abuse_report/constants.js6
-rw-r--r--app/assets/javascripts/api/alert_management_alerts_api.js4
-rw-r--r--app/assets/javascripts/badges/components/badge_list.vue15
-rw-r--r--app/assets/javascripts/behaviors/secret_values.js47
-rw-r--r--app/assets/javascripts/behaviors/shortcuts/shortcuts_help.vue4
-rw-r--r--app/assets/javascripts/blob/openapi/index.js6
-rw-r--r--app/assets/javascripts/boards/components/board_app.vue2
-rw-r--r--app/assets/javascripts/boards/components/board_card_move_to_position.vue15
-rw-r--r--app/assets/javascripts/boards/components/board_content.vue9
-rw-r--r--app/assets/javascripts/boards/components/board_list.vue26
-rw-r--r--app/assets/javascripts/boards/components/config_toggle.vue7
-rw-r--r--app/assets/javascripts/boards/components/project_select.vue10
-rw-r--r--app/assets/javascripts/boards/constants.js6
-rw-r--r--app/assets/javascripts/boards/index.js25
-rw-r--r--app/assets/javascripts/boards/stores/actions.js925
-rw-r--r--app/assets/javascripts/boards/stores/getters.js67
-rw-r--r--app/assets/javascripts/boards/stores/index.js20
-rw-r--r--app/assets/javascripts/boards/stores/mutation_types.js47
-rw-r--r--app/assets/javascripts/boards/stores/mutations.js319
-rw-r--r--app/assets/javascripts/boards/stores/state.js44
-rw-r--r--app/assets/javascripts/branches/components/graph_bar.vue2
-rw-r--r--app/assets/javascripts/breadcrumb.js2
-rw-r--r--app/assets/javascripts/captcha/captcha_modal.vue44
-rw-r--r--app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue4
-rw-r--r--app/assets/javascripts/ci/catalog/components/details/ci_resource_header.vue6
-rw-r--r--app/assets/javascripts/ci/catalog/components/details/ci_resource_readme.vue2
-rw-r--r--app/assets/javascripts/ci/catalog/components/list/catalog_header.vue3
-rw-r--r--app/assets/javascripts/ci/catalog/components/list/catalog_search.vue26
-rw-r--r--app/assets/javascripts/ci/catalog/components/list/catalog_tabs.vue67
-rw-r--r--app/assets/javascripts/ci/catalog/components/list/ci_resources_list_item.vue6
-rw-r--r--app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue75
-rw-r--r--app/assets/javascripts/ci/catalog/constants.js6
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/fragments/catalog_resource.fragment.graphql4
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/mutations/catalog_resources_create.mutation.graphql (renamed from app/assets/javascripts/pages/projects/shared/permissions/graphql/mutations/catalog_resources_create.mutation.graphql)0
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/mutations/catalog_resources_destroy.mutation.graphql (renamed from app/assets/javascripts/pages/projects/shared/permissions/graphql/mutations/catalog_resources_destroy.mutation.graphql)0
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_components.query.graphql2
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_details.query.graphql2
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources.query.graphql3
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources_count.query.graphql8
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_settings.query.graphql (renamed from app/assets/javascripts/pages/projects/shared/permissions/graphql/queries/get_ci_catalog_settings.query.graphql)0
-rw-r--r--app/assets/javascripts/ci/catalog/graphql/settings.js2
-rw-r--r--app/assets/javascripts/ci/ci_environments_dropdown/ci_environments_dropdown.vue (renamed from app/assets/javascripts/ci/ci_variable_list/components/ci_environments_dropdown.vue)37
-rw-r--r--app/assets/javascripts/ci/ci_environments_dropdown/constants.js14
-rw-r--r--app/assets/javascripts/ci/ci_environments_dropdown/graphql/queries/group_environments.query.graphql (renamed from app/assets/javascripts/ci/ci_variable_list/graphql/queries/group_environments.query.graphql)0
-rw-r--r--app/assets/javascripts/ci/ci_environments_dropdown/graphql/queries/project_environments.query.graphql (renamed from app/assets/javascripts/ci/ci_variable_list/graphql/queries/project_environments.query.graphql)0
-rw-r--r--app/assets/javascripts/ci/ci_environments_dropdown/utils.js (renamed from app/assets/javascripts/ci/ci_variable_list/utils.js)13
-rw-r--r--app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue2
-rw-r--r--app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue2
-rw-r--r--app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue38
-rw-r--r--app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue6
-rw-r--r--app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue2
-rw-r--r--app/assets/javascripts/ci/ci_variable_list/constants.js9
-rw-r--r--app/assets/javascripts/ci/common/private/ci_environments_dropdown.js9
-rw-r--r--app/assets/javascripts/ci/pipeline_details/constants.js2
-rw-r--r--app/assets/javascripts/ci/pipeline_details/stores/test_reports/utils.js12
-rw-r--r--app/assets/javascripts/ci/pipeline_details/test_reports/test_reports.vue23
-rw-r--r--app/assets/javascripts/ci/pipeline_editor/components/validate/ci_validate.vue4
-rw-r--r--app/assets/javascripts/ci/runner/components/cells/runner_status_cell.vue9
-rw-r--r--app/assets/javascripts/ci/runner/components/runner_job_status_badge.vue6
-rw-r--r--app/assets/javascripts/clusters/agents/components/show.vue2
-rw-r--r--app/assets/javascripts/comment_templates/components/form.vue46
-rw-r--r--app/assets/javascripts/commit/components/signature_badge.vue2
-rw-r--r--app/assets/javascripts/commit/constants.js17
-rw-r--r--app/assets/javascripts/content_editor/components/wrappers/image.vue13
-rw-r--r--app/assets/javascripts/content_editor/components/wrappers/playable.vue62
-rw-r--r--app/assets/javascripts/content_editor/components/wrappers/table_cell_base.vue24
-rw-r--r--app/assets/javascripts/content_editor/extensions/copy_paste.js2
-rw-r--r--app/assets/javascripts/content_editor/extensions/playable.js7
-rw-r--r--app/assets/javascripts/content_editor/extensions/table_cell.js11
-rw-r--r--app/assets/javascripts/content_editor/extensions/table_header.js36
-rw-r--r--app/assets/javascripts/content_editor/extensions/task_item.js32
-rw-r--r--app/assets/javascripts/content_editor/extensions/video.js1
-rw-r--r--app/assets/javascripts/content_editor/services/markdown_serializer.js6
-rw-r--r--app/assets/javascripts/content_editor/services/markdown_sourcemap.js30
-rw-r--r--app/assets/javascripts/content_editor/services/serialization_helpers.js10
-rw-r--r--app/assets/javascripts/content_editor/services/upload_helpers.js6
-rw-r--r--app/assets/javascripts/deploy_keys/components/action_btn.vue23
-rw-r--r--app/assets/javascripts/deploy_keys/components/app.vue280
-rw-r--r--app/assets/javascripts/deploy_keys/components/key.vue110
-rw-r--r--app/assets/javascripts/deploy_keys/components/keys_panel.vue10
-rw-r--r--app/assets/javascripts/deploy_keys/graphql/resolvers.js35
-rw-r--r--app/assets/javascripts/deploy_keys/index.js32
-rw-r--r--app/assets/javascripts/deploy_keys/service/index.js19
-rw-r--r--app/assets/javascripts/deploy_keys/store/index.js9
-rw-r--r--app/assets/javascripts/diffs/components/app.vue30
-rw-r--r--app/assets/javascripts/diffs/components/commit_item.vue4
-rw-r--r--app/assets/javascripts/diffs/components/diff_file.vue15
-rw-r--r--app/assets/javascripts/diffs/components/diff_file_header.vue34
-rw-r--r--app/assets/javascripts/diffs/components/diff_row.vue6
-rw-r--r--app/assets/javascripts/diffs/components/diff_row_utils.js18
-rw-r--r--app/assets/javascripts/diffs/components/tree_list.vue54
-rw-r--r--app/assets/javascripts/diffs/index.js1
-rw-r--r--app/assets/javascripts/diffs/store/actions.js103
-rw-r--r--app/assets/javascripts/diffs/store/getters.js15
-rw-r--r--app/assets/javascripts/diffs/store/modules/diff_state.js1
-rw-r--r--app/assets/javascripts/diffs/store/mutation_types.js2
-rw-r--r--app/assets/javascripts/diffs/store/mutations.js21
-rw-r--r--app/assets/javascripts/diffs/store/utils.js28
-rw-r--r--app/assets/javascripts/dropzone_input.js3
-rw-r--r--app/assets/javascripts/editor/schema/ci.json63
-rw-r--r--app/assets/javascripts/entrypoints/analytics.js4
-rw-r--r--app/assets/javascripts/entrypoints/sandboxed_swagger.js1
-rw-r--r--app/assets/javascripts/environments/components/kubernetes_status_bar.vue17
-rw-r--r--app/assets/javascripts/environments/components/kubernetes_tabs.vue54
-rw-r--r--app/assets/javascripts/environments/components/new_environment_item.vue1
-rw-r--r--app/assets/javascripts/environments/components/stop_environment_modal.vue8
-rw-r--r--app/assets/javascripts/environments/constants.js3
-rw-r--r--app/assets/javascripts/environments/folder/environments_folder_bundle.js13
-rw-r--r--app/assets/javascripts/environments/graphql/client.js4
-rw-r--r--app/assets/javascripts/environments/graphql/queries/flux_helm_release_status.query.graphql1
-rw-r--r--app/assets/javascripts/environments/graphql/queries/flux_kustomization_status.query.graphql1
-rw-r--r--app/assets/javascripts/environments/helpers/k8s_integration_helper.js63
-rw-r--r--app/assets/javascripts/error_tracking/components/error_details_info.vue2
-rw-r--r--app/assets/javascripts/error_tracking/components/error_tracking_list.vue11
-rw-r--r--app/assets/javascripts/gfm_auto_complete.js29
-rw-r--r--app/assets/javascripts/graphql_shared/issuable_client.js184
-rw-r--r--app/assets/javascripts/graphql_shared/possible_types.json2
-rw-r--r--app/assets/javascripts/graphql_shared/utils.js8
-rw-r--r--app/assets/javascripts/groups/components/app.vue2
-rw-r--r--app/assets/javascripts/groups/components/group_item.vue4
-rw-r--r--app/assets/javascripts/groups/components/group_name_and_path.vue18
-rw-r--r--app/assets/javascripts/groups/components/overview_tabs.vue27
-rw-r--r--app/assets/javascripts/groups/init_overview_tabs.js2
-rw-r--r--app/assets/javascripts/groups/settings/api/access_dropdown_api.js7
-rw-r--r--app/assets/javascripts/groups/settings/components/access_dropdown.vue6
-rw-r--r--app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue17
-rw-r--r--app/assets/javascripts/ide/components/file_alert.vue26
-rw-r--r--app/assets/javascripts/ide/components/repo_editor.vue33
-rw-r--r--app/assets/javascripts/ide/index.js1
-rw-r--r--app/assets/javascripts/ide/lib/alerts/environments.vue33
-rw-r--r--app/assets/javascripts/ide/lib/alerts/index.js21
-rw-r--r--app/assets/javascripts/ide/services/index.js16
-rw-r--r--app/assets/javascripts/ide/stores/actions.js1
-rw-r--r--app/assets/javascripts/ide/stores/actions/alert.js18
-rw-r--r--app/assets/javascripts/ide/stores/getters.js2
-rw-r--r--app/assets/javascripts/ide/stores/getters/alert.js3
-rw-r--r--app/assets/javascripts/ide/stores/mutation_types.js5
-rw-r--r--app/assets/javascripts/ide/stores/mutations.js2
-rw-r--r--app/assets/javascripts/ide/stores/mutations/alert.js21
-rw-r--r--app/assets/javascripts/ide/stores/state.js2
-rw-r--r--app/assets/javascripts/import_entities/import_groups/components/import_status.vue7
-rw-r--r--app/assets/javascripts/import_entities/import_groups/components/import_table.vue2
-rw-r--r--app/assets/javascripts/invite_members/components/invite_members_modal.vue17
-rw-r--r--app/assets/javascripts/invite_members/components/invite_members_trigger.vue1
-rw-r--r--app/assets/javascripts/invite_members/components/invite_modal_base.vue1
-rw-r--r--app/assets/javascripts/invite_members/utils/member_utils.js4
-rw-r--r--app/assets/javascripts/issues/list/components/issues_list_app.vue3
-rw-r--r--app/assets/javascripts/issues/list/index.js1
-rw-r--r--app/assets/javascripts/issues/show/components/header_actions.vue12
-rw-r--r--app/assets/javascripts/jira_connect/branches/components/project_dropdown.vue76
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/components/workload_details.vue7
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/components/workload_layout.vue19
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/components/workload_table.vue9
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/constants.js44
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/graphql/client.js92
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/graphql/helpers/resolver_helpers.js56
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_cron_jobs.query.graphql18
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_jobs.query.graphql18
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_services.query.graphql17
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/graphql/resolvers/kubernetes.js130
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/helpers/k8s_integration_helper.js30
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/pages/cron_jobs_page.vue84
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/pages/jobs_page.vue80
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/pages/services_page.vue69
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/router/constants.js6
-rw-r--r--app/assets/javascripts/kubernetes_dashboard/router/routes.js34
-rw-r--r--app/assets/javascripts/lib/utils/common_utils.js2
-rw-r--r--app/assets/javascripts/lib/utils/constants.js5
-rw-r--r--app/assets/javascripts/lib/utils/headers.js2
-rw-r--r--app/assets/javascripts/lib/utils/number_utils.js45
-rw-r--r--app/assets/javascripts/lib/utils/secret_detection.js8
-rw-r--r--app/assets/javascripts/lib/utils/text_utility.js2
-rw-r--r--app/assets/javascripts/logo.js2
-rw-r--r--app/assets/javascripts/merge_requests/components/compare_app.vue6
-rw-r--r--app/assets/javascripts/merge_requests/components/compare_dropdown.vue6
-rw-r--r--app/assets/javascripts/merge_requests/components/sticky_header.vue3
-rw-r--r--app/assets/javascripts/ml/model_registry/apps/index.js3
-rw-r--r--app/assets/javascripts/ml/model_registry/apps/index_ml_models.vue34
-rw-r--r--app/assets/javascripts/ml/model_registry/apps/new_ml_model.vue127
-rw-r--r--app/assets/javascripts/ml/model_registry/apps/show_ml_model.vue15
-rw-r--r--app/assets/javascripts/ml/model_registry/components/actions_dropdown.vue34
-rw-r--r--app/assets/javascripts/ml/model_registry/components/candidate_list.vue79
-rw-r--r--app/assets/javascripts/ml/model_registry/components/model_version_list.vue76
-rw-r--r--app/assets/javascripts/ml/model_registry/components/searchable_list.vue79
-rw-r--r--app/assets/javascripts/ml/model_registry/graphql/mutations/create_model.mutation.graphql11
-rw-r--r--app/assets/javascripts/ml/model_registry/translations.js9
-rw-r--r--app/assets/javascripts/notes/components/note_form.vue2
-rw-r--r--app/assets/javascripts/notes/components/notes_app.vue6
-rw-r--r--app/assets/javascripts/observability/client.js21
-rw-r--r--app/assets/javascripts/organizations/groups_and_projects/components/app.vue2
-rw-r--r--app/assets/javascripts/organizations/mock_data.js6
-rw-r--r--app/assets/javascripts/organizations/new/components/app.vue10
-rw-r--r--app/assets/javascripts/organizations/new/index.js5
-rw-r--r--app/assets/javascripts/organizations/settings/general/components/organization_settings.vue29
-rw-r--r--app/assets/javascripts/organizations/settings/general/index.js10
-rw-r--r--app/assets/javascripts/organizations/shared/components/groups_view.vue12
-rw-r--r--app/assets/javascripts/organizations/shared/components/new_edit_form.vue82
-rw-r--r--app/assets/javascripts/organizations/shared/components/organization_url_field.vue4
-rw-r--r--app/assets/javascripts/organizations/shared/components/projects_view.vue12
-rw-r--r--app/assets/javascripts/organizations/shared/constants.js2
-rw-r--r--app/assets/javascripts/organizations/show/components/app.vue4
-rw-r--r--app/assets/javascripts/organizations/show/components/organization_avatar.vue1
-rw-r--r--app/assets/javascripts/organizations/show/components/organization_description.vue24
-rw-r--r--app/assets/javascripts/packages_and_registries/container_registry/explorer/components/details_page/details_header.vue7
-rw-r--r--app/assets/javascripts/packages_and_registries/settings/group/components/group_settings_app.vue26
-rw-r--r--app/assets/javascripts/packages_and_registries/settings/project/components/packages_protection_rules.vue115
-rw-r--r--app/assets/javascripts/packages_and_registries/settings/project/components/registry_settings_app.vue10
-rw-r--r--app/assets/javascripts/packages_and_registries/settings/project/graphql/queries/get_packages_protection_rules.query.graphql13
-rw-r--r--app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue21
-rw-r--r--app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js13
-rw-r--r--app/assets/javascripts/pages/projects/merge_requests/page.js11
-rw-r--r--app/assets/javascripts/pages/projects/ml/models/index/index.js2
-rw-r--r--app/assets/javascripts/pages/projects/ml/models/new/index.js4
-rw-r--r--app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js11
-rw-r--r--app/assets/javascripts/pages/projects/shared/permissions/components/ci_catalog_settings.vue6
-rw-r--r--app/assets/javascripts/pages/projects/shared/permissions/index.js3
-rw-r--r--app/assets/javascripts/pages/sessions/new/index.js2
-rw-r--r--app/assets/javascripts/pages/sessions/new/oauth_remember_me.js4
-rw-r--r--app/assets/javascripts/pages/sessions/new/preserve_url_fragment.js4
-rw-r--r--app/assets/javascripts/pages/shared/mount_badge_settings.js2
-rw-r--r--app/assets/javascripts/pages/shared/mount_runner_instructions.js27
-rw-r--r--app/assets/javascripts/pages/users/index.js2
-rw-r--r--app/assets/javascripts/pages/users/user_tabs.js2
-rw-r--r--app/assets/javascripts/performance_bar/components/request_warning.vue1
-rw-r--r--app/assets/javascripts/persistent_user_callouts.js2
-rw-r--r--app/assets/javascripts/profile/preferences/components/profile_preferences.vue7
-rw-r--r--app/assets/javascripts/profile/preferences/profile_preferences_bundle.js3
-rw-r--r--app/assets/javascripts/projects/commit/components/commit_comments_button.vue42
-rw-r--r--app/assets/javascripts/projects/commit/index.js2
-rw-r--r--app/assets/javascripts/projects/commit/init_commit_comments_button.js18
-rw-r--r--app/assets/javascripts/projects/commit_box/info/components/commit_refs.vue2
-rw-r--r--app/assets/javascripts/projects/commit_box/info/components/refs_list.vue8
-rw-r--r--app/assets/javascripts/projects/new/components/new_project_url_select.vue162
-rw-r--r--app/assets/javascripts/projects/project_new.js3
-rw-r--r--app/assets/javascripts/projects/settings/api/access_dropdown_api.js3
-rw-r--r--app/assets/javascripts/projects/settings/components/access_dropdown.vue9
-rw-r--r--app/assets/javascripts/projects/settings/repository/branch_rules/app.vue125
-rw-r--r--app/assets/javascripts/projects/settings/repository/branch_rules/constants.js10
-rw-r--r--app/assets/javascripts/projects/settings/repository/branch_rules/graphql/mutations/create_branch_rule.mutation.graphql8
-rw-r--r--app/assets/javascripts/protected_branches/protected_branch_create.js1
-rw-r--r--app/assets/javascripts/protected_branches/protected_branch_edit.js1
-rw-r--r--app/assets/javascripts/protected_tags/protected_tag_create.js1
-rw-r--r--app/assets/javascripts/protected_tags/protected_tag_edit.vue1
-rw-r--r--app/assets/javascripts/releases/components/app_edit_new.vue3
-rw-r--r--app/assets/javascripts/releases/components/app_index.vue56
-rw-r--r--app/assets/javascripts/releases/components/tag_field_new.vue3
-rw-r--r--app/assets/javascripts/releases/stores/modules/edit_new/actions.js15
-rw-r--r--app/assets/javascripts/releases/stores/modules/edit_new/getters.js12
-rw-r--r--app/assets/javascripts/releases/stores/modules/edit_new/state.js1
-rw-r--r--app/assets/javascripts/repository/components/upload_blob_modal.vue4
-rw-r--r--app/assets/javascripts/search/sidebar/components/scope_sidebar_navigation.vue8
-rw-r--r--app/assets/javascripts/search/sidebar/components/searchable_dropdown.vue1
-rw-r--r--app/assets/javascripts/search/store/actions.js51
-rw-r--r--app/assets/javascripts/security_configuration/constants.js208
-rw-r--r--app/assets/javascripts/security_configuration/index.js6
-rw-r--r--app/assets/javascripts/security_configuration/utils.js36
-rw-r--r--app/assets/javascripts/sidebar/components/assignees/sidebar_assignees_widget.vue10
-rw-r--r--app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue50
-rw-r--r--app/assets/javascripts/sidebar/components/labels/labels_select_widget/labels_select_root.vue16
-rw-r--r--app/assets/javascripts/sidebar/components/sidebar_color_picker.vue75
-rw-r--r--app/assets/javascripts/sidebar/components/sidebar_editable_item.vue33
-rw-r--r--app/assets/javascripts/sidebar/components/todo_toggle/sidebar_todo_widget.vue6
-rw-r--r--app/assets/javascripts/sidebar/constants.js6
-rw-r--r--app/assets/javascripts/sidebar/queries/constants.js6
-rw-r--r--app/assets/javascripts/super_sidebar/components/pinned_section.vue6
-rw-r--r--app/assets/javascripts/super_sidebar/components/user_menu.vue54
-rw-r--r--app/assets/javascripts/tracking/constants.js2
-rw-r--r--app/assets/javascripts/tracking/internal_events.js8
-rw-r--r--app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue67
-rw-r--r--app/assets/javascripts/usage_quotas/storage/components/storage_usage_overview_card.vue51
-rw-r--r--app/assets/javascripts/usage_quotas/storage/components/storage_usage_statistics.vue33
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue4
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue11
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/widget/widget_content_row.vue9
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/index.js1
-rw-r--r--app/assets/javascripts/vue_shared/components/file_row.vue4
-rw-r--r--app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js2
-rw-r--r--app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/daterange_token.vue158
-rw-r--r--app/assets/javascripts/vue_shared/components/gl_countdown.vue5
-rw-r--r--app/assets/javascripts/vue_shared/components/groups_list/groups_list.vue6
-rw-r--r--app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue107
-rw-r--r--app/assets/javascripts/vue_shared/components/help_page_link/help_page_link.stories.js35
-rw-r--r--app/assets/javascripts/vue_shared/components/help_page_link/help_page_link.vue44
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown/header.vue1
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue6
-rw-r--r--app/assets/javascripts/vue_shared/components/notes/system_note.vue10
-rw-r--r--app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue6
-rw-r--r--app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue84
-rw-r--r--app/assets/javascripts/vue_shared/components/runner_instructions/runner_instructions.vue27
-rw-r--r--app/assets/javascripts/vue_shared/components/segmented_control_button_group.vue1
-rw-r--r--app/assets/javascripts/vue_shared/components/source_viewer/queries/blame_data.query.graphql10
-rw-r--r--app/assets/javascripts/vue_shared/components/source_viewer/source_viewer_new.vue1
-rw-r--r--app/assets/javascripts/vue_shared/components/timezone_dropdown/timezone_dropdown.vue1
-rw-r--r--app/assets/javascripts/vue_shared/components/upload_dropzone/avatar_upload_dropzone.vue112
-rw-r--r--app/assets/javascripts/vue_shared/components/user_select/user_select.vue6
-rw-r--r--app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue9
-rw-r--r--app/assets/javascripts/vue_shared/components/web_ide_link.vue16
-rw-r--r--app/assets/javascripts/vue_shared/issuable/list/components/issuable_item.vue29
-rw-r--r--app/assets/javascripts/vue_shared/issuable/list/components/issuable_list_root.vue4
-rw-r--r--app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue2
-rw-r--r--app/assets/javascripts/work_items/components/shared/work_item_link_child_contents.vue2
-rw-r--r--app/assets/javascripts/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue194
-rw-r--r--app/assets/javascripts/work_items/components/shared/work_item_token_input.vue108
-rw-r--r--app/assets/javascripts/work_items/components/widget_wrapper.vue21
-rw-r--r--app/assets/javascripts/work_items/components/work_item_attributes_wrapper.vue77
-rw-r--r--app/assets/javascripts/work_items/components/work_item_description.vue58
-rw-r--r--app/assets/javascripts/work_items/components/work_item_description_rendered.vue26
-rw-r--r--app/assets/javascripts/work_items/components/work_item_detail.vue100
-rw-r--r--app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue5
-rw-r--r--app/assets/javascripts/work_items/components/work_item_milestone_inline.vue (renamed from app/assets/javascripts/work_items/components/work_item_milestone.vue)0
-rw-r--r--app/assets/javascripts/work_items/components/work_item_milestone_with_edit.vue203
-rw-r--r--app/assets/javascripts/work_items/components/work_item_parent_inline.vue2
-rw-r--r--app/assets/javascripts/work_items/components/work_item_relationships/work_item_add_relationship_form.vue2
-rw-r--r--app/assets/javascripts/work_items/components/work_item_state_toggle.vue17
-rw-r--r--app/assets/javascripts/work_items/components/work_item_title_with_edit.vue45
-rw-r--r--app/assets/javascripts/work_items/constants.js15
-rw-r--r--app/assets/javascripts/work_items/graphql/project_work_items.query.graphql7
-rw-r--r--app/assets/javascripts/work_items/graphql/work_item.fragment.graphql1
-rw-r--r--app/assets/javascripts/work_items/graphql/work_items_by_references.query.graphql10
-rw-r--r--app/assets/javascripts/work_items/utils.js11
-rw-r--r--app/assets/stylesheets/application.scss10
-rw-r--r--app/assets/stylesheets/components/_index.scss11
-rw-r--r--app/assets/stylesheets/components/content_editor.scss9
-rw-r--r--app/assets/stylesheets/emoji_sprites.scss4
-rw-r--r--app/assets/stylesheets/fonts.scss8
-rw-r--r--app/assets/stylesheets/framework.scss3
-rw-r--r--app/assets/stylesheets/framework/badges.scss53
-rw-r--r--app/assets/stylesheets/framework/breadcrumbs.scss13
-rw-r--r--app/assets/stylesheets/framework/diffs.scss27
-rw-r--r--app/assets/stylesheets/framework/dropdowns.scss38
-rw-r--r--app/assets/stylesheets/framework/files.scss2
-rw-r--r--app/assets/stylesheets/framework/flash.scss8
-rw-r--r--app/assets/stylesheets/framework/header.scss124
-rw-r--r--app/assets/stylesheets/framework/labels.scss56
-rw-r--r--app/assets/stylesheets/framework/layout.scss2
-rw-r--r--app/assets/stylesheets/framework/sidebar.scss1
-rw-r--r--app/assets/stylesheets/framework/source_editor.scss2
-rw-r--r--app/assets/stylesheets/framework/super_sidebar.scss177
-rw-r--r--app/assets/stylesheets/framework/top_bar.scss20
-rw-r--r--app/assets/stylesheets/framework/typography.scss16
-rw-r--r--app/assets/stylesheets/highlight/common.scss2
-rw-r--r--app/assets/stylesheets/page_bundles/issuable.scss5
-rw-r--r--app/assets/stylesheets/page_bundles/issuable_list.scss19
-rw-r--r--app/assets/stylesheets/page_bundles/labels.scss49
-rw-r--r--app/assets/stylesheets/page_bundles/login.scss125
-rw-r--r--app/assets/stylesheets/page_bundles/merge_requests.scss2
-rw-r--r--app/assets/stylesheets/page_bundles/pipeline.scss15
-rw-r--r--app/assets/stylesheets/page_bundles/profile.scss6
-rw-r--r--app/assets/stylesheets/page_bundles/project.scss4
-rw-r--r--app/assets/stylesheets/page_bundles/search.scss8
-rw-r--r--app/assets/stylesheets/page_bundles/wiki.scss8
-rw-r--r--app/assets/stylesheets/page_bundles/work_items.scss9
-rw-r--r--app/assets/stylesheets/pages/colors.scss49
-rw-r--r--app/assets/stylesheets/pages/issues.scss2
-rw-r--r--app/assets/stylesheets/pages/notes.scss21
-rw-r--r--app/assets/stylesheets/print.scss162
-rw-r--r--app/assets/stylesheets/snippets.scss3
-rw-r--r--app/assets/stylesheets/themes/dark_mode_overrides.scss1
-rw-r--r--app/assets/stylesheets/themes/theme_blue.scss14
-rw-r--r--app/assets/stylesheets/themes/theme_gray.scss14
-rw-r--r--app/assets/stylesheets/themes/theme_green.scss14
-rw-r--r--app/assets/stylesheets/themes/theme_helper.scss36
-rw-r--r--app/assets/stylesheets/themes/theme_indigo.scss14
-rw-r--r--app/assets/stylesheets/themes/theme_light_blue.scss14
-rw-r--r--app/assets/stylesheets/themes/theme_light_gray.scss2
-rw-r--r--app/assets/stylesheets/themes/theme_light_green.scss14
-rw-r--r--app/assets/stylesheets/themes/theme_light_indigo.scss14
-rw-r--r--app/assets/stylesheets/themes/theme_light_red.scss14
-rw-r--r--app/assets/stylesheets/themes/theme_red.scss14
-rw-r--r--app/assets/stylesheets/utilities.scss10
-rw-r--r--app/assets/stylesheets/vendors/_index.scss1
-rw-r--r--app/components/pajamas/avatar_component.rb29
-rw-r--r--app/components/projects/ml/models_index_component.rb26
-rw-r--r--app/components/projects/ml/show_ml_model_component.rb3
-rw-r--r--app/controllers/admin/ci/variables_controller.rb2
-rw-r--r--app/controllers/admin/users_controller.rb4
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--app/controllers/concerns/confirm_email_warning.rb2
-rw-r--r--app/controllers/concerns/enforces_two_factor_authentication.rb14
-rw-r--r--app/controllers/concerns/integrations/params.rb3
-rw-r--r--app/controllers/concerns/preview_markdown.rb1
-rw-r--r--app/controllers/explore/catalog_controller.rb2
-rw-r--r--app/controllers/graphql_controller.rb3
-rw-r--r--app/controllers/groups/autocomplete_sources_controller.rb2
-rw-r--r--app/controllers/groups/boards_controller.rb1
-rw-r--r--app/controllers/groups/variables_controller.rb2
-rw-r--r--app/controllers/groups_controller.rb3
-rw-r--r--app/controllers/import/bitbucket_server_controller.rb3
-rw-r--r--app/controllers/import/bulk_imports_controller.rb8
-rw-r--r--app/controllers/import/fogbugz_controller.rb3
-rw-r--r--app/controllers/import/github_controller.rb3
-rw-r--r--app/controllers/import/gitlab_projects_controller.rb3
-rw-r--r--app/controllers/import/manifest_controller.rb3
-rw-r--r--app/controllers/jwks_controller.rb4
-rw-r--r--app/controllers/ldap/omniauth_callbacks_controller.rb2
-rw-r--r--app/controllers/omniauth_callbacks_controller.rb12
-rw-r--r--app/controllers/organizations/organizations_controller.rb4
-rw-r--r--app/controllers/profiles/two_factor_auths_controller.rb10
-rw-r--r--app/controllers/projects/autocomplete_sources_controller.rb2
-rw-r--r--app/controllers/projects/boards_controller.rb1
-rw-r--r--app/controllers/projects/commit_controller.rb1
-rw-r--r--app/controllers/projects/environments_controller.rb2
-rw-r--r--app/controllers/projects/gcp/artifact_registry/docker_images_controller.rb6
-rw-r--r--app/controllers/projects/google_cloud/configuration_controller.rb2
-rw-r--r--app/controllers/projects/google_cloud/databases_controller.rb6
-rw-r--r--app/controllers/projects/google_cloud/deployments_controller.rb6
-rw-r--r--app/controllers/projects/google_cloud/gcp_regions_controller.rb2
-rw-r--r--app/controllers/projects/google_cloud/service_accounts_controller.rb2
-rw-r--r--app/controllers/projects/issues_controller.rb1
-rw-r--r--app/controllers/projects/merge_requests/diffs_controller.rb12
-rw-r--r--app/controllers/projects/merge_requests_controller.rb11
-rw-r--r--app/controllers/projects/ml/models_controller.rb4
-rw-r--r--app/controllers/projects/refs_controller.rb2
-rw-r--r--app/controllers/projects/security/configuration_controller.rb10
-rw-r--r--app/controllers/projects/settings/packages_and_registries_controller.rb5
-rw-r--r--app/controllers/projects/settings/repository_controller.rb4
-rw-r--r--app/controllers/projects/variables_controller.rb2
-rw-r--r--app/controllers/projects_controller.rb16
-rw-r--r--app/controllers/search_controller.rb2
-rw-r--r--app/controllers/uploads_controller.rb5
-rw-r--r--app/controllers/users_controller.rb3
-rw-r--r--app/events/ci/job_artifacts_deleted_event.rb4
-rw-r--r--app/events/project_authorizations/authorizations_added_event.rb16
-rw-r--r--app/events/projects/release_published_event.rb15
-rw-r--r--app/experiments/in_product_guidance_environments_webide_experiment.rb13
-rw-r--r--app/finders/ci/catalog/resources/versions_finder.rb7
-rw-r--r--app/finders/ci/runner_jobs_finder.rb8
-rw-r--r--app/finders/ci/runner_managers_finder.rb31
-rw-r--r--app/finders/ci/runners_finder.rb149
-rw-r--r--app/finders/groups/accepting_project_shares_finder.rb7
-rw-r--r--app/finders/issuable_finder/params.rb11
-rw-r--r--app/finders/packages/terraform_module/packages_finder.rb32
-rw-r--r--app/finders/projects/ml/experiment_finder.rb46
-rw-r--r--app/finders/projects_finder.rb13
-rw-r--r--app/finders/users_finder.rb15
-rw-r--r--app/graphql/graphql_triggers.rb6
-rw-r--r--app/graphql/mutations/branch_rules/create.rb56
-rw-r--r--app/graphql/mutations/concerns/mutations/work_items/update_arguments.rb4
-rw-r--r--app/graphql/mutations/issues/set_assignees.rb2
-rw-r--r--app/graphql/mutations/ml/models/base.rb20
-rw-r--r--app/graphql/mutations/ml/models/create.rb32
-rw-r--r--app/graphql/mutations/namespace/package_settings/update.rb10
-rw-r--r--app/graphql/mutations/work_items/create.rb10
-rw-r--r--app/graphql/resolvers/ci/catalog/resources/versions_resolver.rb10
-rw-r--r--app/graphql/resolvers/ci/runner_owner_project_resolver.rb2
-rw-r--r--app/graphql/resolvers/ci/runner_projects_resolver.rb2
-rw-r--r--app/graphql/resolvers/ci/runner_resolver.rb27
-rw-r--r--app/graphql/resolvers/ci/runners_resolver.rb2
-rw-r--r--app/graphql/resolvers/concerns/resolves_groups.rb28
-rw-r--r--app/graphql/resolvers/container_repository_tags_resolver.rb8
-rw-r--r--app/graphql/resolvers/full_path_resolver.rb6
-rw-r--r--app/graphql/resolvers/group_resolver.rb6
-rw-r--r--app/graphql/resolvers/ml/find_models_resolver.rb35
-rw-r--r--app/graphql/resolvers/namespace_resolver.rb6
-rw-r--r--app/graphql/resolvers/organizations/organizations_resolver.rb19
-rw-r--r--app/graphql/resolvers/organizations/projects_resolver.rb19
-rw-r--r--app/graphql/resolvers/project_resolver.rb6
-rw-r--r--app/graphql/resolvers/projects/fork_targets_resolver.rb11
-rw-r--r--app/graphql/resolvers/users_resolver.rb26
-rw-r--r--app/graphql/types/ci/catalog/resources/component_type.rb3
-rw-r--r--app/graphql/types/ci/catalog/resources/version_type.rb26
-rw-r--r--app/graphql/types/ci/ci_cd_setting_type.rb2
-rw-r--r--app/graphql/types/ci/inherited_ci_variable_type.rb4
-rw-r--r--app/graphql/types/ci/instance_variable_type.rb4
-rw-r--r--app/graphql/types/commit_signatures/verification_status_enum.rb6
-rw-r--r--app/graphql/types/container_repository_referrer_type.rb16
-rw-r--r--app/graphql/types/container_repository_tag_type.rb2
-rw-r--r--app/graphql/types/group_type.rb36
-rw-r--r--app/graphql/types/merge_request_type.rb12
-rw-r--r--app/graphql/types/ml/model_links_type.rb17
-rw-r--r--app/graphql/types/ml/model_type.rb15
-rw-r--r--app/graphql/types/ml/model_version_links_type.rb3
-rw-r--r--app/graphql/types/ml/models_order_by_enum.rb15
-rw-r--r--app/graphql/types/mutation_type.rb2
-rw-r--r--app/graphql/types/namespace/package_settings_type.rb6
-rw-r--r--app/graphql/types/namespace_type.rb2
-rw-r--r--app/graphql/types/organizations/organization_type.rb4
-rw-r--r--app/graphql/types/permission_types/issue.rb2
-rw-r--r--app/graphql/types/project_type.rb18
-rw-r--r--app/graphql/types/query_type.rb8
-rw-r--r--app/graphql/types/subscription_type.rb4
-rw-r--r--app/graphql/types/work_items/widgets/notes_input_type.rb15
-rw-r--r--app/graphql/types/work_items/widgets/notes_type.rb4
-rw-r--r--app/helpers/appearances_helper.rb2
-rw-r--r--app/helpers/application_helper.rb4
-rw-r--r--app/helpers/application_settings_helper.rb9
-rw-r--r--app/helpers/avatars_helper.rb2
-rw-r--r--app/helpers/breadcrumbs_helper.rb2
-rw-r--r--app/helpers/button_helper.rb10
-rw-r--r--app/helpers/ci/builds_helper.rb7
-rw-r--r--app/helpers/ci/status_helper.rb9
-rw-r--r--app/helpers/ci/variables_helper.rb15
-rw-r--r--app/helpers/count_helper.rb2
-rw-r--r--app/helpers/diff_helper.rb2
-rw-r--r--app/helpers/environment_helper.rb8
-rw-r--r--app/helpers/environments_helper.rb11
-rw-r--r--app/helpers/form_helper.rb2
-rw-r--r--app/helpers/groups/group_members_helper.rb2
-rw-r--r--app/helpers/groups_helper.rb12
-rw-r--r--app/helpers/ide_helper.rb9
-rw-r--r--app/helpers/import_helper.rb2
-rw-r--r--app/helpers/listbox_helper.rb2
-rw-r--r--app/helpers/merge_requests_helper.rb13
-rw-r--r--app/helpers/mirror_helper.rb2
-rw-r--r--app/helpers/nav_helper.rb7
-rw-r--r--app/helpers/organizations/organization_helper.rb23
-rw-r--r--app/helpers/preferences_helper.rb4
-rw-r--r--app/helpers/projects/project_members_helper.rb4
-rw-r--r--app/helpers/projects_helper.rb12
-rw-r--r--app/helpers/registrations_helper.rb4
-rw-r--r--app/helpers/reminder_emails_helper.rb2
-rw-r--r--app/helpers/safe_format_helper.rb4
-rw-r--r--app/helpers/search_helper.rb6
-rw-r--r--app/helpers/sessions_helper.rb33
-rw-r--r--app/helpers/sidebars_helper.rb36
-rw-r--r--app/helpers/time_zone_helper.rb13
-rw-r--r--app/helpers/users_helper.rb2
-rw-r--r--app/helpers/vite_helper.rb6
-rw-r--r--app/helpers/wiki_page_version_helper.rb2
-rw-r--r--app/mailers/emails/issues.rb6
-rw-r--r--app/mailers/emails/merge_requests.rb6
-rw-r--r--app/models/abuse_report.rb5
-rw-r--r--app/models/ai/service_access_token.rb3
-rw-r--r--app/models/analytics/cycle_analytics/aggregation.rb19
-rw-r--r--app/models/analytics/cycle_analytics/stage.rb17
-rw-r--r--app/models/application_setting.rb256
-rw-r--r--app/models/application_setting_implementation.rb5
-rw-r--r--app/models/bulk_imports/entity.rb6
-rw-r--r--app/models/bulk_imports/failure.rb8
-rw-r--r--app/models/ci/build.rb25
-rw-r--r--app/models/ci/catalog/resources/version.rb9
-rw-r--r--app/models/ci/instance_variable.rb1
-rw-r--r--app/models/ci/namespace_mirror.rb1
-rw-r--r--app/models/ci/pipeline.rb11
-rw-r--r--app/models/ci/pipeline_artifact.rb3
-rw-r--r--app/models/ci/pipeline_chat_data.rb7
-rw-r--r--app/models/ci/pipeline_config.rb4
-rw-r--r--app/models/ci/pipeline_metadata.rb7
-rw-r--r--app/models/ci/pipeline_variable.rb3
-rw-r--r--app/models/ci/processable.rb4
-rw-r--r--app/models/ci/project_mirror.rb2
-rw-r--r--app/models/ci/runner.rb52
-rw-r--r--app/models/ci/runner_manager.rb37
-rw-r--r--app/models/ci/stage.rb3
-rw-r--r--app/models/commit.rb2
-rw-r--r--app/models/commit_status.rb2
-rw-r--r--app/models/compare.rb4
-rw-r--r--app/models/concerns/analytics/cycle_analytics/parentable.rb11
-rw-r--r--app/models/concerns/atomic_internal_id.rb4
-rw-r--r--app/models/concerns/cache_markdown_field.rb2
-rw-r--r--app/models/concerns/ci/has_runner_status.rb50
-rw-r--r--app/models/concerns/ci/partitionable/testing.rb4
-rw-r--r--app/models/concerns/commit_signature.rb12
-rw-r--r--app/models/concerns/database_event_tracking.rb52
-rw-r--r--app/models/concerns/enums/commit_signature.rb24
-rw-r--r--app/models/concerns/integrations/enable_ssl_verification.rb3
-rw-r--r--app/models/concerns/integrations/has_issue_tracker_fields.rb13
-rw-r--r--app/models/concerns/integrations/slack_mattermost_fields.rb18
-rw-r--r--app/models/concerns/partitioned_table.rb3
-rw-r--r--app/models/concerns/restricted_signup.rb8
-rw-r--r--app/models/concerns/routable.rb36
-rw-r--r--app/models/container_registry/protection/rule.rb17
-rw-r--r--app/models/container_repository.rb16
-rw-r--r--app/models/deployment.rb3
-rw-r--r--app/models/group.rb34
-rw-r--r--app/models/integration.rb8
-rw-r--r--app/models/integrations/apple_app_store.rb2
-rw-r--r--app/models/integrations/bamboo.rb12
-rw-r--r--app/models/integrations/campfire.rb11
-rw-r--r--app/models/integrations/clickup.rb4
-rw-r--r--app/models/integrations/confluence.rb3
-rw-r--r--app/models/integrations/diffblue_cover.rb126
-rw-r--r--app/models/integrations/discord.rb5
-rw-r--r--app/models/integrations/external_wiki.rb1
-rw-r--r--app/models/integrations/google_play.rb18
-rw-r--r--app/models/integrations/harbor.rb4
-rw-r--r--app/models/integrations/mattermost.rb2
-rw-r--r--app/models/integrations/mattermost_slash_commands.rb2
-rw-r--r--app/models/integrations/slack.rb2
-rw-r--r--app/models/integrations/squash_tm.rb2
-rw-r--r--app/models/integrations/youtrack.rb4
-rw-r--r--app/models/issue_email_participant.rb3
-rw-r--r--app/models/jira_connect_subscription.rb2
-rw-r--r--app/models/label.rb5
-rw-r--r--app/models/member.rb67
-rw-r--r--app/models/members/group_member.rb53
-rw-r--r--app/models/members/project_member.rb44
-rw-r--r--app/models/merge_request.rb23
-rw-r--r--app/models/merge_request/metrics.rb30
-rw-r--r--app/models/merge_request_diff.rb26
-rw-r--r--app/models/ml/experiment.rb3
-rw-r--r--app/models/ml/model_metadata.rb2
-rw-r--r--app/models/ml/model_version.rb13
-rw-r--r--app/models/ml/model_version_metadata.rb14
-rw-r--r--app/models/namespace.rb27
-rw-r--r--app/models/namespace/package_setting.rb10
-rw-r--r--app/models/namespace_setting.rb4
-rw-r--r--app/models/namespaces/descendants.rb30
-rw-r--r--app/models/namespaces/traversal/cached.rb34
-rw-r--r--app/models/onboarding/completion.rb16
-rw-r--r--app/models/onboarding/progress.rb3
-rw-r--r--app/models/organizations/organization.rb10
-rw-r--r--app/models/organizations/organization_detail.rb2
-rw-r--r--app/models/organizations/organization_user.rb12
-rw-r--r--app/models/pages/project_settings.rb25
-rw-r--r--app/models/pages_deployment.rb8
-rw-r--r--app/models/project.rb29
-rw-r--r--app/models/project_authorizations/changes.rb48
-rw-r--r--app/models/project_statistics.rb5
-rw-r--r--app/models/project_team.rb7
-rw-r--r--app/models/projects/project_topic.rb2
-rw-r--r--app/models/projects/repository_storage_move.rb6
-rw-r--r--app/models/projects/topic.rb9
-rw-r--r--app/models/release.rb6
-rw-r--r--app/models/resource_label_event.rb6
-rw-r--r--app/models/resource_milestone_event.rb2
-rw-r--r--app/models/route.rb44
-rw-r--r--app/models/service_desk/custom_email_credential.rb5
-rw-r--r--app/models/snippets/repository_storage_move.rb6
-rw-r--r--app/models/ssh_host_key.rb5
-rw-r--r--app/models/time_tracking/timelog_category.rb2
-rw-r--r--app/models/timelog.rb1
-rw-r--r--app/models/tree.rb11
-rw-r--r--app/models/user.rb56
-rw-r--r--app/models/users/callout.rb4
-rw-r--r--app/models/users/credit_card_validation.rb2
-rw-r--r--app/models/users/in_product_marketing_email.rb75
-rw-r--r--app/models/users/phone_number_validation.rb35
-rw-r--r--app/models/work_item.rb2
-rw-r--r--app/models/work_items/hierarchy_restriction.rb9
-rw-r--r--app/models/work_items/widget_definition.rb4
-rw-r--r--app/models/work_items/widgets/notes.rb10
-rw-r--r--app/policies/container_registry/referrer_policy.rb7
-rw-r--r--app/policies/global_policy.rb4
-rw-r--r--app/policies/organizations/organization_policy.rb8
-rw-r--r--app/policies/project_policy.rb1
-rw-r--r--app/presenters/blob_presenter.rb5
-rw-r--r--app/presenters/projects/security/configuration_presenter.rb3
-rw-r--r--app/serializers/activity_pub/activity_serializer.rb40
-rw-r--r--app/serializers/activity_pub/activity_streams_serializer.rb90
-rw-r--r--app/serializers/activity_pub/actor_serializer.rb39
-rw-r--r--app/serializers/activity_pub/collection_serializer.rb68
-rw-r--r--app/serializers/activity_pub/object_serializer.rb35
-rw-r--r--app/serializers/activity_pub/publish_release_activity_serializer.rb7
-rw-r--r--app/serializers/activity_pub/releases_actor_serializer.rb2
-rw-r--r--app/serializers/activity_pub/releases_outbox_serializer.rb4
-rw-r--r--app/serializers/admin/abuse_report_details_entity.rb17
-rw-r--r--app/serializers/build_details_entity.rb4
-rw-r--r--app/serializers/ci/basic_variable_entity.rb1
-rw-r--r--app/serializers/diffs_metadata_entity.rb4
-rw-r--r--app/services/auth/container_registry_authentication_service.rb2
-rw-r--r--app/services/boards/base_item_move_service.rb11
-rw-r--r--app/services/bulk_imports/file_download_service.rb6
-rw-r--r--app/services/ci/cancel_pipeline_service.rb27
-rw-r--r--app/services/ci/catalog/resources/versions/create_service.rb6
-rw-r--r--app/services/ci/create_pipeline_service.rb8
-rw-r--r--app/services/ci/create_web_ide_terminal_service.rb2
-rw-r--r--app/services/ci/pipeline_creation/cancel_redundant_pipelines_service.rb73
-rw-r--r--app/services/ci/runners/unregister_runner_manager_service.rb2
-rw-r--r--app/services/ci/unlock_pipeline_service.rb12
-rw-r--r--app/services/click_house/sync_strategies/base_sync_strategy.rb124
-rw-r--r--app/services/click_house/sync_strategies/event_sync_strategy.rb62
-rw-r--r--app/services/cloud_seed/google_cloud/base_service.rb67
-rw-r--r--app/services/cloud_seed/google_cloud/create_cloudsql_instance_service.rb80
-rw-r--r--app/services/cloud_seed/google_cloud/create_service_accounts_service.rb42
-rw-r--r--app/services/cloud_seed/google_cloud/enable_cloud_run_service.rb23
-rw-r--r--app/services/cloud_seed/google_cloud/enable_cloudsql_service.rb27
-rw-r--r--app/services/cloud_seed/google_cloud/enable_vision_ai_service.rb21
-rw-r--r--app/services/cloud_seed/google_cloud/fetch_google_ip_list_service.rb93
-rw-r--r--app/services/cloud_seed/google_cloud/gcp_region_add_or_replace_service.rb25
-rw-r--r--app/services/cloud_seed/google_cloud/generate_pipeline_service.rb100
-rw-r--r--app/services/cloud_seed/google_cloud/get_cloudsql_instances_service.rb20
-rw-r--r--app/services/cloud_seed/google_cloud/service_accounts_service.rb53
-rw-r--r--app/services/cloud_seed/google_cloud/setup_cloudsql_instance_service.rb120
-rw-r--r--app/services/clusters/agents/authorizations/user_access/refresh_service.rb4
-rw-r--r--app/services/concerns/users/participable_service.rb29
-rw-r--r--app/services/draft_notes/destroy_service.rb8
-rw-r--r--app/services/event_create_service.rb6
-rw-r--r--app/services/google_cloud/base_service.rb65
-rw-r--r--app/services/google_cloud/create_cloudsql_instance_service.rb78
-rw-r--r--app/services/google_cloud/create_service_accounts_service.rb40
-rw-r--r--app/services/google_cloud/enable_cloud_run_service.rb21
-rw-r--r--app/services/google_cloud/enable_cloudsql_service.rb25
-rw-r--r--app/services/google_cloud/enable_vision_ai_service.rb19
-rw-r--r--app/services/google_cloud/fetch_google_ip_list_service.rb91
-rw-r--r--app/services/google_cloud/gcp_region_add_or_replace_service.rb23
-rw-r--r--app/services/google_cloud/generate_pipeline_service.rb98
-rw-r--r--app/services/google_cloud/get_cloudsql_instances_service.rb18
-rw-r--r--app/services/google_cloud/service_accounts_service.rb51
-rw-r--r--app/services/google_cloud/setup_cloudsql_instance_service.rb118
-rw-r--r--app/services/google_cloud_platform/artifact_registry/list_docker_images_service.rb46
-rw-r--r--app/services/groups/create_service.rb23
-rw-r--r--app/services/groups/participants_service.rb4
-rw-r--r--app/services/groups/transfer_service.rb2
-rw-r--r--app/services/groups/update_service.rb24
-rw-r--r--app/services/import/bitbucket_server_service.rb5
-rw-r--r--app/services/import/fogbugz_service.rb5
-rw-r--r--app/services/import/github_service.rb29
-rw-r--r--app/services/integrations/google_cloud_platform/artifact_registry/list_docker_images_service.rb48
-rw-r--r--app/services/issuable/common_system_notes_service.rb15
-rw-r--r--app/services/issuable_base_service.rb14
-rw-r--r--app/services/issue_email_participants/base_service.rb45
-rw-r--r--app/services/issue_email_participants/create_service.rb42
-rw-r--r--app/services/issue_email_participants/destroy_service.rb44
-rw-r--r--app/services/issues/base_service.rb22
-rw-r--r--app/services/jira/requests/base.rb18
-rw-r--r--app/services/merge_requests/approval_service.rb1
-rw-r--r--app/services/merge_requests/conflicts/list_service.rb4
-rw-r--r--app/services/merge_requests/remove_approval_service.rb1
-rw-r--r--app/services/merge_requests/request_review_service.rb5
-rw-r--r--app/services/milestones/destroy_service.rb2
-rw-r--r--app/services/milestones/promote_service.rb7
-rw-r--r--app/services/ml/create_model_service.rb20
-rw-r--r--app/services/ml/create_model_version_service.rb3
-rw-r--r--app/services/namespaces/package_settings/update_service.rb2
-rw-r--r--app/services/notification_service.rb64
-rw-r--r--app/services/organizations/create_service.rb12
-rw-r--r--app/services/organizations/update_service.rb4
-rw-r--r--app/services/packages/npm/create_package_service.rb25
-rw-r--r--app/services/packages/terraform_module/create_package_service.rb35
-rw-r--r--app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb18
-rw-r--r--app/services/projects/destroy_service.rb7
-rw-r--r--app/services/projects/participants_service.rb8
-rw-r--r--app/services/projects/unlink_fork_service.rb4
-rw-r--r--app/services/projects/update_statistics_service.rb8
-rw-r--r--app/services/routes/rename_descendants_service.rb135
-rw-r--r--app/services/spam/spam_verdict_service.rb3
-rw-r--r--app/services/system_note_service.rb8
-rw-r--r--app/services/system_notes/issuables_service.rb8
-rw-r--r--app/services/system_notes/time_tracking_service.rb23
-rw-r--r--app/services/todo_service.rb10
-rw-r--r--app/services/work_items/callbacks/assignees.rb36
-rw-r--r--app/services/work_items/callbacks/current_user_todos.rb35
-rw-r--r--app/services/work_items/callbacks/description.rb17
-rw-r--r--app/services/work_items/callbacks/notifications.rb24
-rw-r--r--app/services/work_items/callbacks/start_and_due_date.rb16
-rw-r--r--app/services/work_items/create_service.rb2
-rw-r--r--app/services/work_items/widgets/assignees_service/update_service.rb38
-rw-r--r--app/services/work_items/widgets/current_user_todos_service/update_service.rb37
-rw-r--r--app/services/work_items/widgets/description_service/update_service.rb19
-rw-r--r--app/services/work_items/widgets/notifications_service/update_service.rb26
-rw-r--r--app/services/work_items/widgets/start_and_due_date_service/update_service.rb18
-rw-r--r--app/validators/json_schemas/application_setting_rate_limits.json13
-rw-r--r--app/validators/json_schemas/build_metadata_secrets.json73
-rw-r--r--app/validators/json_schemas/cloud_connector_access.json12
-rw-r--r--app/validators/json_schemas/scan_result_policy_project_approval_settings.json24
-rw-r--r--app/views/admin/application_settings/_members_api_limits.html.haml21
-rw-r--r--app/views/admin/application_settings/_repository_storage.html.haml2
-rw-r--r--app/views/admin/application_settings/_signin.html.haml3
-rw-r--r--app/views/admin/application_settings/_user_restrictions.html.haml1
-rw-r--r--app/views/admin/application_settings/appearances/_form.html.haml105
-rw-r--r--app/views/admin/application_settings/ci_cd.html.haml11
-rw-r--r--app/views/admin/application_settings/general.html.haml5
-rw-r--r--app/views/admin/application_settings/network.html.haml2
-rw-r--r--app/views/admin/dashboard/_stats_users_table.html.haml2
-rw-r--r--app/views/admin/dashboard/stats.html.haml2
-rw-r--r--app/views/admin/sessions/new.html.haml4
-rw-r--r--app/views/admin/sessions/two_factor.html.haml3
-rw-r--r--app/views/admin/users/show.html.haml2
-rw-r--r--app/views/ci/runner/_how_to_setup_runner.html.haml23
-rw-r--r--app/views/ci/variables/_attributes.html.haml13
-rw-r--r--app/views/ci/variables/_index.html.haml11
-rw-r--r--app/views/dashboard/todos/index.html.haml5
-rw-r--r--app/views/devise/confirmations/new.html.haml3
-rw-r--r--app/views/devise/passwords/new.html.haml6
-rw-r--r--app/views/devise/registrations/new.html.haml3
-rw-r--r--app/views/devise/sessions/new.html.haml33
-rw-r--r--app/views/devise/sessions/two_factor.html.haml3
-rw-r--r--app/views/devise/shared/_footer.html.haml3
-rw-r--r--app/views/devise/shared/_omniauth_box.html.haml19
-rw-r--r--app/views/devise/shared/_omniauth_provider_button.haml7
-rw-r--r--app/views/devise/shared/_signup_box.html.haml5
-rw-r--r--app/views/devise/shared/_signup_omniauth_provider_button.haml14
-rw-r--r--app/views/devise/shared/_signup_omniauth_provider_list.haml24
-rw-r--r--app/views/devise/shared/_signup_omniauth_providers.haml3
-rw-r--r--app/views/devise/shared/_tabs_ldap.html.haml2
-rw-r--r--app/views/devise/shared/_terms_of_service_notice.html.haml18
-rw-r--r--app/views/devise/unlocks/new.html.haml7
-rw-r--r--app/views/groups/_import_group_from_file_panel.html.haml4
-rw-r--r--app/views/groups/settings/_export.html.haml2
-rw-r--r--app/views/groups/settings/_permissions.html.haml9
-rw-r--r--app/views/import/github/status.html.haml2
-rw-r--r--app/views/layouts/_head.html.haml1
-rw-r--r--app/views/layouts/_page.html.haml15
-rw-r--r--app/views/layouts/_snowplow.html.haml5
-rw-r--r--app/views/layouts/application.html.haml4
-rw-r--r--app/views/layouts/devise.html.haml78
-rw-r--r--app/views/layouts/devise_empty.html.haml2
-rw-r--r--app/views/layouts/group.html.haml1
-rw-r--r--app/views/layouts/header/_super_sidebar_logged_out.haml2
-rw-r--r--app/views/layouts/nav/breadcrumbs/_collapsed_inline_list.html.haml4
-rw-r--r--app/views/layouts/project.html.haml1
-rw-r--r--app/views/layouts/signup_onboarding.html.haml2
-rw-r--r--app/views/notify/_reassigned_issuable_email.html.haml17
-rw-r--r--app/views/notify/new_review_email.html.haml59
-rw-r--r--app/views/notify/reassigned_issue_email.html.haml2
-rw-r--r--app/views/notify/reassigned_issue_email.text.erb13
-rw-r--r--app/views/notify/reassigned_merge_request_email.html.haml2
-rw-r--r--app/views/notify/reassigned_merge_request_email.text.erb13
-rw-r--r--app/views/profiles/accounts/_providers.html.haml41
-rw-r--r--app/views/profiles/emails/index.html.haml10
-rw-r--r--app/views/profiles/gpg_keys/_key_table.html.haml2
-rw-r--r--app/views/profiles/preferences/show.html.haml4
-rw-r--r--app/views/profiles/show.html.haml2
-rw-r--r--app/views/projects/_home_panel.html.haml4
-rw-r--r--app/views/projects/_import_project_pane.html.haml18
-rw-r--r--app/views/projects/_readme.html.haml2
-rw-r--r--app/views/projects/_sidebar.html.haml69
-rw-r--r--app/views/projects/buttons/_code.html.haml12
-rw-r--r--app/views/projects/buttons/_download_menu_items.html.haml4
-rw-r--r--app/views/projects/commit/_commit_box.html.haml3
-rw-r--r--app/views/projects/edit.html.haml7
-rw-r--r--app/views/projects/empty.html.haml2
-rw-r--r--app/views/projects/environments/folder.html.haml2
-rw-r--r--app/views/projects/forks/index.html.haml2
-rw-r--r--app/views/projects/gcp/artifact_registry/docker_images/_docker_image.html.haml4
-rw-r--r--app/views/projects/merge_requests/_code_dropdown.html.haml6
-rw-r--r--app/views/projects/merge_requests/_mr_title.html.haml5
-rw-r--r--app/views/projects/merge_requests/_page.html.haml1
-rw-r--r--app/views/projects/merge_requests/creations/new.html.haml2
-rw-r--r--app/views/projects/mirrors/_mirror_repos_list.html.haml2
-rw-r--r--app/views/projects/ml/models/index.html.haml2
-rw-r--r--app/views/projects/ml/models/new.html.haml5
-rw-r--r--app/views/projects/pages_domains/_dns.html.haml4
-rw-r--r--app/views/search/results/_blob_data.html.haml6
-rw-r--r--app/views/search/results/_blob_highlight.html.haml2
-rw-r--r--app/views/sent_notifications/unsubscribe.html.haml7
-rw-r--r--app/views/shared/_auto_devops_callout.html.haml5
-rw-r--r--app/views/shared/_auto_devops_implicitly_enabled_banner.html.haml2
-rw-r--r--app/views/shared/_file_highlight.html.haml2
-rw-r--r--app/views/shared/_visibility_radios.html.haml2
-rw-r--r--app/views/shared/deploy_keys/_index.html.haml7
-rw-r--r--app/views/shared/deploy_tokens/_new_deploy_token.html.haml24
-rw-r--r--app/views/shared/groups/_group.html.haml7
-rw-r--r--app/views/shared/groups/_list.html.haml1
-rw-r--r--app/views/shared/issuable/_sort_dropdown.html.haml2
-rw-r--r--app/views/shared/members/_member.html.haml4
-rw-r--r--app/views/shared/notes/_notes_with_form.html.haml2
-rw-r--r--app/views/shared/users/_user.html.haml2
-rw-r--r--app/views/shared/web_hooks/_index.html.haml2
-rw-r--r--app/views/shared/wikis/_sidebar.html.haml2
-rw-r--r--app/views/shared/wikis/git_error.html.haml4
-rw-r--r--app/views/shared/wikis/show.html.haml7
-rw-r--r--app/views/user_settings/passwords/edit.html.haml8
-rw-r--r--app/views/user_settings/passwords/new.html.haml8
-rw-r--r--app/views/users/show.html.haml6
-rw-r--r--app/workers/all_queues.yml29
-rw-r--r--app/workers/bulk_imports/export_request_worker.rb17
-rw-r--r--app/workers/ci/unlock_pipelines_in_queue_worker.rb3
-rw-r--r--app/workers/click_house/event_authors_consistency_cron_worker.rb121
-rw-r--r--app/workers/click_house/events_sync_worker.rb135
-rw-r--r--app/workers/concerns/gitlab/github_import/object_importer.rb16
-rw-r--r--app/workers/concerns/gitlab/github_import/queue.rb6
-rw-r--r--app/workers/concerns/gitlab/github_import/rescheduling_methods.rb2
-rw-r--r--app/workers/concerns/gitlab/github_import/stage_methods.rb26
-rw-r--r--app/workers/gitlab/bitbucket_server_import/stage/import_users_worker.rb4
-rw-r--r--app/workers/gitlab/github_gists_import/start_import_worker.rb2
-rw-r--r--app/workers/gitlab/github_import/advance_stage_worker.rb20
-rw-r--r--app/workers/gitlab/github_import/import_issue_event_worker.rb10
-rw-r--r--app/workers/gitlab/github_import/replay_events_worker.rb27
-rw-r--r--app/workers/gitlab/github_import/stage/import_collaborators_worker.rb8
-rw-r--r--app/workers/gitlab/github_import/stage/import_issue_events_worker.rb17
-rw-r--r--app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb10
-rw-r--r--app/workers/google_cloud/create_cloudsql_instance_worker.rb2
-rw-r--r--app/workers/google_cloud/fetch_google_ip_list_worker.rb2
-rw-r--r--app/workers/new_issue_worker.rb5
-rw-r--r--app/workers/releases/publish_event_worker.rb32
-rw-r--r--babel.config.js10
-rwxr-xr-xbin/feature-flag295
-rw-r--r--config/application.rb2
-rw-r--r--config/dependency_decisions.yml11
-rw-r--r--config/events/agent_users_using_ci_tunnel.yml20
-rw-r--r--config/events/i_quickactions_remove_email_multiple.yml24
-rw-r--r--config/events/i_quickactions_remove_email_single.yml24
-rw-r--r--config/feature_categories.yml1
-rw-r--r--config/feature_flags/beta/container_scanning_continuous_vulnerability_scans.yml (renamed from config/feature_flags/development/unify_security_configuration.yml)11
-rw-r--r--config/feature_flags/beta/group_hierarchy_optimization.yml9
-rw-r--r--config/feature_flags/beta/prefix_ci_build_tokens.yml9
-rw-r--r--config/feature_flags/development/add_branch_rule.yml8
-rw-r--r--config/feature_flags/development/add_policy_approvers_to_rules.yml (renamed from config/feature_flags/development/apollo_boards.yml)10
-rw-r--r--config/feature_flags/development/agent_registry.yml (renamed from config/feature_flags/development/clickhouse_ci_analytics.yml)10
-rw-r--r--config/feature_flags/development/arkose_labs_signup_data_exchange.yml8
-rw-r--r--config/feature_flags/development/bulk_create_scan_result_policies.yml (renamed from config/feature_flags/development/create_personal_ns_outside_model.yml)10
-rw-r--r--config/feature_flags/development/bulk_import_details_page.yml8
-rw-r--r--config/feature_flags/development/bulk_import_limit_concurrent_batches.yml2
-rw-r--r--config/feature_flags/development/bulk_imports_batched_import_export.yml8
-rw-r--r--config/feature_flags/development/cache_control_headers_for_openid_jwks.yml8
-rw-r--r--config/feature_flags/development/ci_workflow_auto_cancel_on_new_commit.yml (renamed from config/feature_flags/development/use_gitlab_http_v2.yml)10
-rw-r--r--config/feature_flags/development/code_suggestions_claude21.yml9
-rw-r--r--config/feature_flags/development/compliance_framework_report_ui.yml2
-rw-r--r--config/feature_flags/development/compliance_pipeline_in_policies.yml2
-rw-r--r--config/feature_flags/development/github_import_extended_events.yml (renamed from config/feature_flags/development/invalid_graphql_auth_401.yml)8
-rw-r--r--config/feature_flags/development/gitlab_duo_chat_requests_to_ai_gateway.yml2
-rw-r--r--config/feature_flags/development/group_analytics_dashboards.yml2
-rw-r--r--config/feature_flags/development/hard_limit_daily_phone_verifications.yml (renamed from config/feature_flags/development/browsersdk_tracking.yml)10
-rw-r--r--config/feature_flags/development/inherit_higher_access_levels_no_cross_join.yml8
-rw-r--r--config/feature_flags/development/limited_access_modal.yml2
-rw-r--r--config/feature_flags/development/manage_project_access_tokens.yml8
-rw-r--r--config/feature_flags/development/markdown_rust.yml (renamed from config/feature_flags/development/vite.yml)8
-rw-r--r--config/feature_flags/development/mention_autocomplete_backend_filtering.yml (renamed from config/feature_flags/development/always_set_pipeline_failure_reason.yml)8
-rw-r--r--config/feature_flags/development/merge_request_diff_generated_subscription.yml (renamed from config/feature_flags/development/user_approval_rules_removal.yml)12
-rw-r--r--config/feature_flags/development/optional_personal_namespace.yml (renamed from config/feature_flags/development/optimize_where_full_path_in.yml)8
-rw-r--r--config/feature_flags/development/packages_dependency_proxy_maven.yml8
-rw-r--r--config/feature_flags/development/pinned_file.yml (renamed from config/feature_flags/development/use_merge_approval_rules_when_merged.yml)8
-rw-r--r--config/feature_flags/development/prefix_scim_tokens.yml (renamed from config/feature_flags/development/restyle_login_page.yml)10
-rw-r--r--config/feature_flags/development/refresh_statistics_on_unlink_fork.yml8
-rw-r--r--config/feature_flags/development/sast_reports_in_inline_diff.yml2
-rw-r--r--config/feature_flags/development/self_managed_code_suggestions.yml2
-rw-r--r--config/feature_flags/development/sidekiq_job_completion_metric_initialize.yml2
-rw-r--r--config/feature_flags/development/simplified_badges.yml (renamed from config/feature_flags/development/ci_job_token_scope.yml)10
-rw-r--r--config/feature_flags/development/simplified_labels.yml8
-rw-r--r--config/feature_flags/development/sms_send_wait_time.yml8
-rw-r--r--config/feature_flags/development/truncate_ci_merge_request_description.yml8
-rw-r--r--config/feature_flags/development/updated_ai_powered_features_menu_for_sm.yml8
-rw-r--r--config/feature_flags/development/use_500_page_size_for_contribution_analytics.yml8
-rw-r--r--config/feature_flags/experiment/default_to_import_tab.yml (renamed from config/feature_flags/experiment/in_product_guidance_environments_webide.yml)10
-rw-r--r--config/feature_flags/gitlab_com_derisk/allow_members_to_see_invited_groups_in_access_dropdowns.yml9
-rw-r--r--config/feature_flags/gitlab_com_derisk/batch_route_updates.yml9
-rw-r--r--config/feature_flags/gitlab_com_derisk/enhanced_review_email.yml9
-rw-r--r--config/feature_flags/gitlab_com_derisk/github_importer_attachments.yml9
-rw-r--r--config/feature_flags/gitlab_com_derisk/namespace_descendants_cache_expiration.yml9
-rw-r--r--config/feature_flags/gitlab_com_derisk/prevent_modifications_of_mr_rules_post_merge.yml9
-rw-r--r--config/feature_flags/gitlab_com_derisk/update_organization_users.yml9
-rw-r--r--config/feature_flags/ops/ai_duo_chat_switch.yml9
-rw-r--r--config/feature_flags/ops/ci_unlock_pipelines_extra_low.yml9
-rw-r--r--config/feature_flags/ops/telesign_intelligence.yml (renamed from config/feature_flags/development/telesign_intelligence.yml)4
-rw-r--r--config/feature_flags/undefined/gitaly_pack_objects_hook_with_sidechannel.yml2
-rw-r--r--config/feature_flags/wip/disable_ci_partition_pruning.yml9
-rw-r--r--config/feature_flags/wip/epic_creation_with_synced_work_item.yml9
-rw-r--r--config/feature_flags/wip/vulnerability_owasp_top_10_group.yml9
-rw-r--r--config/gitlab.yml.example7
-rw-r--r--config/gitlab_loose_foreign_keys.yml14
-rw-r--r--config/gitleaks.toml3
-rw-r--r--config/initializers/1_settings.rb6
-rw-r--r--config/initializers/7_redis.rb3
-rw-r--r--config/initializers/fog_google_list_objects_match_glob_support.rb52
-rw-r--r--config/initializers/gitlab_http.rb8
-rw-r--r--config/initializers/macos.rb8
-rw-r--r--config/initializers/rspec_profiling.rb4
-rw-r--r--config/initializers/session_store.rb22
-rw-r--r--config/initializers/sidekiq.rb27
-rw-r--r--config/initializers/sidekiq_cluster.rb2
-rw-r--r--config/initializers_before_autoloader/004_zeitwerk.rb1
-rw-r--r--config/locales/doorkeeper.en.yml3
-rw-r--r--config/metrics/counts_28d/20220222215951_xmau_plan.yml1
-rw-r--r--config/metrics/counts_28d/20220222215952_xmau_project_management.yml1
-rw-r--r--config/metrics/counts_28d/20220222215955_users_work_items.yml1
-rw-r--r--config/metrics/counts_28d/20220729001651_agent_users_using_ci_tunnel_monthly.yml6
-rw-r--r--config/metrics/counts_28d/20221213182900_i_code_review_create_mr_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20231219135715_users_updating_work_item_todo_monthly.yml24
-rw-r--r--config/metrics/counts_28d/count_distinct_user_id_from_i_quickactions_remove_email_multiple_28d.yml27
-rw-r--r--config/metrics/counts_28d/count_distinct_user_id_from_i_quickactions_remove_email_single_28d.yml27
-rw-r--r--config/metrics/counts_7d/20220222215851_xmau_plan.yml1
-rw-r--r--config/metrics/counts_7d/20220222215852_xmau_project_management.yml1
-rw-r--r--config/metrics/counts_7d/20220222215855_users_work_items.yml1
-rw-r--r--config/metrics/counts_7d/20220729001644_agent_users_using_ci_tunnel_weekly.yml6
-rw-r--r--config/metrics/counts_7d/20221213183300_i_code_review_create_mr_weekly.yml7
-rw-r--r--config/metrics/counts_7d/20231219135920_users_updating_work_item_todo_weekly.yml24
-rw-r--r--config/metrics/counts_all/20231205140200_groups_diffblue_cover_active.yml20
-rw-r--r--config/metrics/counts_all/20231205140200_groups_inheriting_diffblue_cover_active.yml20
-rw-r--r--config/metrics/counts_all/20231205140200_instances_diffblue_cover_active.yml20
-rw-r--r--config/metrics/counts_all/20231205140200_projects_diffblue_cover_active.yml20
-rw-r--r--config/metrics/counts_all/20231205140200_projects_inheriting_diffblue_cover_active.yml20
-rw-r--r--config/routes/merge_requests.rb1
-rw-r--r--config/routes/organizations.rb4
-rw-r--r--config/routes/project.rb2
-rw-r--r--config/routes/uploads.rb5
-rw-r--r--config/sidekiq_queues.yml10
-rw-r--r--config/webpack.config.js4
-rw-r--r--danger/bulk_database_actions/Dangerfile7
-rw-r--r--danger/plugins/bulk_database_actions.rb4
-rw-r--r--data/deprecations/15-3-omniauth-crowd.yml4
-rw-r--r--data/deprecations/15-8-deprecate-slack-notifications-integration.yml13
-rw-r--r--data/deprecations/16-7-remove-slsa-0.2-statement.yml12
-rw-r--r--data/deprecations/16-8-api-lint-ref-removal.yml34
-rw-r--r--data/deprecations/16-8-deprecate-license-list.yml16
-rw-r--r--data/deprecations/16-8-deprecate-pg_schema-backup-setting.yml14
-rw-r--r--data/deprecations/16-8-license-scanning-sbt-1-0-x.yml11
-rw-r--r--data/deprecations/16-8-remove-deprecated-metric-filter-from-dora-api.yml9
-rw-r--r--data/deprecations/16-9-verify-after-script-canceled-status.yml13
-rw-r--r--data/deprecations/17-0-dependency-scanning-sbt-support.yml11
-rw-r--r--data/whats_new/202312210001_16_7.yml68
-rw-r--r--db/click_house/migrate/main/20240102161100_modify_ci_finished_builds_created_at_default_to_zero.rb15
-rw-r--r--db/click_house/migrate/main/20240102161101_modify_ci_finished_builds_queued_at_default_to_zero.rb15
-rw-r--r--db/click_house/migrate/main/20240102161102_modify_ci_finished_builds_started_at_default_to_zero.rb15
-rw-r--r--db/click_house/migrate/main/20240102161103_modify_ci_finished_builds_duration_calculation.rb17
-rw-r--r--db/click_house/migrate/main/20240102161104_modify_ci_finished_builds_queueing_duration_calculation.rb17
-rw-r--r--db/click_house/migrate/main/20240104092900_add_root_namespace_id_to_ci_finished_builds.rb17
-rw-r--r--db/click_house/migrate/main/20240104092901_add_name_to_ci_finished_builds.rb17
-rw-r--r--db/click_house/migrate/main/20240104092902_add_stage_to_ci_finished_builds.rb17
-rw-r--r--db/click_house/migrate/main/20240104092903_add_date_to_ci_finished_builds.rb17
-rw-r--r--db/docs/achievements.yml6
-rw-r--r--db/docs/activity_pub_releases_subscriptions.yml2
-rw-r--r--db/docs/agent_group_authorizations.yml6
-rw-r--r--db/docs/agent_project_authorizations.yml13
-rw-r--r--db/docs/agent_user_access_group_authorizations.yml13
-rw-r--r--db/docs/ai_agent_versions.yml12
-rw-r--r--db/docs/ai_agents.yml12
-rw-r--r--db/docs/batched_background_migrations/backfill_branch_protection_namespace_setting.yml2
-rw-r--r--db/docs/batched_background_migrations/backfill_issue_search_data_namespace_id.yml8
-rw-r--r--db/docs/batched_background_migrations/backfill_merge_request_diffs_project_id.yml2
-rw-r--r--db/docs/batched_background_migrations/backfill_owasp_top_ten_of_vulnerability_reads.yml8
-rw-r--r--db/docs/batched_background_migrations/backfill_packages_tags_project_id.yml2
-rw-r--r--db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_artifact.yml9
-rw-r--r--db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_chat_data.yml9
-rw-r--r--db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_config.yml9
-rw-r--r--db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_metadata.yml9
-rw-r--r--db/docs/batched_background_migrations/backfill_user_preferences_with_defaults.yml1
-rw-r--r--db/docs/batched_background_migrations/backfill_users_with_defaults.yml1
-rw-r--r--db/docs/batched_background_migrations/backfill_vs_code_settings_uuid.yml2
-rw-r--r--db/docs/batched_background_migrations/backfill_vs_code_settings_version.yml9
-rw-r--r--db/docs/batched_background_migrations/drop_vulnerabilities_without_finding_id.yml9
-rw-r--r--db/docs/batched_background_migrations/update_workspaces_config_version.yml3
-rw-r--r--db/docs/batched_background_migrations/update_workspaces_config_version3.yml9
-rw-r--r--db/docs/cloud_connector_access.yml8
-rw-r--r--db/docs/compliance_management_frameworks.yml10
-rw-r--r--db/docs/deleted_tables/ci_editor_ai_conversation_messages.yml (renamed from db/docs/ci_editor_ai_conversation_messages.yml)2
-rw-r--r--db/docs/deleted_tables/in_product_marketing_emails.yml (renamed from db/docs/in_product_marketing_emails.yml)2
-rw-r--r--db/docs/external_status_checks.yml10
-rw-r--r--db/docs/integrations.yml1
-rw-r--r--db/docs/ml_model_version_metadata.yml13
-rw-r--r--db/docs/namespace_descendants.yml12
-rw-r--r--db/docs/organization_users.yml2
-rw-r--r--db/docs/project_compliance_framework_settings.yml10
-rw-r--r--db/docs/project_compliance_standards_adherence.yml4
-rw-r--r--db/docs/sbom_source_packages.yml10
-rw-r--r--db/docs/work_item_colors.yml12
-rw-r--r--db/docs/zoekt_enabled_namespaces.yml12
-rw-r--r--db/docs/zoekt_indices.yml12
-rw-r--r--db/migrate/20231116201338_add_require_admin_two_factor_authentication_to_application_settings.rb12
-rw-r--r--db/migrate/20231123160255_add_token_to_chat_names.rb (renamed from db/migrate/20231219120134_add_token_to_chat_names.rb)0
-rw-r--r--db/migrate/20231124022520_add_sms_sent_at_and_sms_send_count_to_phone_number_validations.rb16
-rw-r--r--db/migrate/20231129173649_add_terraform_module_duplicates_allowed_to_namespace_package_settings.rb35
-rw-r--r--db/migrate/20231130124606_add_project_id_name_version_id_index_to_installable_terraform_modules.rb23
-rw-r--r--db/migrate/20231205165049_add_slug_to_topics.rb21
-rw-r--r--db/migrate/20231206165856_create_zoekt_enabled_namespaces.rb18
-rw-r--r--db/migrate/20231206184344_create_zoekt_enabled_namespaces_namespace_foreign_key.rb16
-rw-r--r--db/migrate/20231206190206_create_zoekt_indices.rb24
-rw-r--r--db/migrate/20231206191102_create_zoekt_indices_zoekt_node_foreign_key.rb16
-rw-r--r--db/migrate/20231206212252_create_zoekt_indices_zoekt_enabled_namespace_foreign_key.rb17
-rw-r--r--db/migrate/20231212090606_add_partition_id_to_pipeline_chat_data.rb10
-rw-r--r--db/migrate/20231212154022_add_release_published_at_to_release.rb10
-rw-r--r--db/migrate/20231213065249_deprecate_ci_editor_ai_conversation_related_workers.rb20
-rw-r--r--db/migrate/20231213170159_add_remove_project_to_member_roles.rb10
-rw-r--r--db/migrate/20231214095546_add_issue_id_to_epics.rb18
-rw-r--r--db/migrate/20231214222351_drop_index_users_forbidden_state.rb19
-rw-r--r--db/migrate/20231215101640_add_cascading_toggle_security_policies_policy_scope_setting.rb17
-rw-r--r--db/migrate/20231215192706_create_ml_model_version_metadata.rb21
-rw-r--r--db/migrate/20231216190018_add_index_topics_on_slug.rb17
-rw-r--r--db/migrate/20231218172621_add_manage_group_access_tokens_to_member_roles.rb10
-rw-r--r--db/migrate/20231219091924_initialize_conversion_of_geo_event_id_from_int_to_bigint.rb18
-rw-r--r--db/migrate/20231220094609_add_release_published_at_index_to_release.rb14
-rw-r--r--db/migrate/20231220113459_add_work_item_color.rb20
-rw-r--r--db/migrate/20231221033539_create_sbom_source_packages_table.rb42
-rw-r--r--db/migrate/20231221113948_create_cloud_connector_access.rb13
-rw-r--r--db/migrate/20231221171135_create_namespace_descendants_table.rb35
-rw-r--r--db/migrate/20231222071942_add_description_to_ci_instance_variables.rb12
-rw-r--r--db/migrate/20231226052618_add_work_item_colors_foreign_keys.rb18
-rw-r--r--db/migrate/20231227090634_deprecate_summarize_merge_request_worker.rb21
-rw-r--r--db/migrate/20231227103059_replace_fk_on_epics_issue_id.rb20
-rw-r--r--db/migrate/20231227104408_validate_fk_epics_issue_id_with_on_delete_nullify.rb16
-rw-r--r--db/migrate/20231227104711_remove_fk_epics_issue_id.rb21
-rw-r--r--db/migrate/20231229112819_add_finished_at_index_for_p_ci_finished_build_ch_sync_events.rb20
-rw-r--r--db/migrate/20240101031938_add_admin_terraform_state_to_member_roles.rb10
-rw-r--r--db/migrate/20240102184844_add_access_level_to_organization_users.rb9
-rw-r--r--db/migrate/20240103200822_replace_fk_on_approval_merge_request_rules_scan_result_policy_id.rb27
-rw-r--r--db/migrate/20240103202629_validate_fk_on_approval_merge_request_rules_scan_result_policy_id.rb16
-rw-r--r--db/migrate/20240103203314_remove_old_fk_on_approval_merge_request_rules_scan_result_policy_id.rb29
-rw-r--r--db/migrate/20240104124057_add_category_to_timelogs.rb22
-rw-r--r--db/migrate/20240104150106_add_partition_id_to_pipeline_metadata.rb10
-rw-r--r--db/migrate/20240104191736_migrate_zoekt_indexed_namespaces_to_zoekt_enabled_namespaces.rb30
-rw-r--r--db/migrate/20240104191802_migrate_zoekt_indexed_namespaces_to_zoekt_indices.rb46
-rw-r--r--db/migrate/20240105000000_rename_workspace_url_domain_to_dns_zone.rb14
-rw-r--r--db/migrate/20240107084243_add_previous_weight_to_resource_weight_events.rb9
-rw-r--r--db/migrate/20240108121335_copy_internal_ids_for_epics_and_issues_usage_on_groups.rb74
-rw-r--r--db/migrate/20240108123023_create_ai_agents_table.rb18
-rw-r--r--db/migrate/20240108123115_create_ai_agent_versions_table.rb19
-rw-r--r--db/migrate/20240108123509_add_fk_on_ai_agent_versions_to_ai_agents.rb17
-rw-r--r--db/migrate/20240109082354_add_partition_id_to_pipeline_artifact.rb10
-rw-r--r--db/migrate/20240109145839_add_partition_id_to_pipeline_config.rb10
-rw-r--r--db/migrate/20240110085226_add_rate_limits_to_application_settings.rb10
-rw-r--r--db/migrate/20240111134328_routing_table_prepare_async_constraint_for_pipeline_variables.rb33
-rw-r--r--db/migrate/20240115115029_add_rate_limits_hash_constraint_to_application_settings.rb20
-rw-r--r--db/post_migrate/20231204042048_finalize_system_note_metadata_bigint_conversion.rb25
-rw-r--r--db/post_migrate/20231204095802_change_i_code_review_create_mr_keys_from_redis_hll_to_redis.rb15
-rw-r--r--db/post_migrate/20231205200847_rollback_user_foreign_key_from_in_product_marketing_emails.rb20
-rw-r--r--db/post_migrate/20231205200925_drop_in_product_marketing_emails.rb29
-rw-r--r--db/post_migrate/20231207145335_cleanup_group_level_work_items.rb71
-rw-r--r--db/post_migrate/20231207155340_prepare_iid_namespace_unique_index_in_issues.rb16
-rw-r--r--db/post_migrate/20231207211418_add_iid_namespace_unique_index_to_issues.rb17
-rw-r--r--db/post_migrate/20231207221418_drop_namespace_id_index_on_issues.rb17
-rw-r--r--db/post_migrate/20231211154654_add_work_items_rolledup_dates_widget.rb49
-rw-r--r--db/post_migrate/20231212135235_queue_backfill_vs_code_settings_version.rb27
-rw-r--r--db/post_migrate/20231213014658_remove_plain_text_credit_card_columns.rb37
-rw-r--r--db/post_migrate/20231213064314_remove_ci_editor_ai_conversation_messages_table.rb33
-rw-r--r--db/post_migrate/20231213080216_finalize_merge_request_diffs_project_id_backfill.rb21
-rw-r--r--db/post_migrate/20231213080238_validate_merge_request_diffs_project_id_null_constraint.rb11
-rw-r--r--db/post_migrate/20231214111617_queue_backfill_owasp_top_ten_of_vulnerability_reads.rb28
-rw-r--r--db/post_migrate/20231215130625_schedule_index_to_events_author_group_action_target_type_created_at.rb17
-rw-r--r--db/post_migrate/20231215151348_finalize_workspaces_config_version_2_migration.rb23
-rw-r--r--db/post_migrate/20231217053910_remove_due_date_sourcing_milestone_id_column_from_vulnerabilities.rb24
-rw-r--r--db/post_migrate/20231218074237_add_index_to_ci_job_artifact_states.rb16
-rw-r--r--db/post_migrate/20231218074508_add_index_to_ci_build_trace_metadata.rb16
-rw-r--r--db/post_migrate/20231218092401_queue_backfill_partition_id_ci_pipeline_chat_data.rb26
-rw-r--r--db/post_migrate/20231218121131_remove_start_date_sourcing_milestone_id_column_from_vulnerabilities.rb24
-rw-r--r--db/post_migrate/20231219044006_drop_note_mentions_temp_index.rb17
-rw-r--r--db/post_migrate/20231219075928_finalize_backfill_users_with_defaults.rb22
-rw-r--r--db/post_migrate/20231219075929_finalize_backfill_user_preferences_with_defaults.rb22
-rw-r--r--db/post_migrate/20231219083804_add_fk_to_ci_build_trace_metadata_on_partition_id_and_trace_artifact_id.rb54
-rw-r--r--db/post_migrate/20231219084159_add_fk_to_ci_job_artifact_states_on_partition_id_and_job_artifact_id.rb54
-rw-r--r--db/post_migrate/20231219092400_backfill_geo_event_log_for_bigint_conversion.rb17
-rw-r--r--db/post_migrate/20231219125907_remove_updated_by_id_column_from_vulnerabilities.rb21
-rw-r--r--db/post_migrate/20231219132423_remove_epic_id_column_from_vulnerabilities.rb21
-rw-r--r--db/post_migrate/20231220115201_add_color_work_item_widget.rb44
-rw-r--r--db/post_migrate/20231220130725_remove_last_edited_at_column_from_vulnerabilities.rb15
-rw-r--r--db/post_migrate/20231220150143_remove_organizations_organization_users_organization_id_fk.rb21
-rw-r--r--db/post_migrate/20231220150210_remove_users_organization_users_user_id_fk.rb21
-rw-r--r--db/post_migrate/20231221000703_async_validate_merge_request_diffs_project_id_foreign_key.rb13
-rw-r--r--db/post_migrate/20231221223259_queue_drop_vulnerabilities_without_finding_id.rb27
-rw-r--r--db/post_migrate/20231222051050_add_search_vector_index_to_catalog_resources.rb21
-rw-r--r--db/post_migrate/20231222072237_add_text_limit_to_ci_instance_variables_description.rb18
-rw-r--r--db/post_migrate/20231222114515_remove_tmp_index_members_on_state.rb19
-rw-r--r--db/post_migrate/20231224083824_remove_last_edited_by_id_column_from_vulnerabilities.rb21
-rw-r--r--db/post_migrate/20231225070431_async_validate_finding_id_on_vulnerabilities.rb17
-rw-r--r--db/post_migrate/20231225133628_remove_due_date_column_from_vulnerabilities.rb15
-rw-r--r--db/post_migrate/20231228043653_rename_old_index_to_new_index_in_catalog_resources.rb14
-rw-r--r--db/post_migrate/20240101133628_remove_start_date_column_from_vulnerabilities.rb15
-rw-r--r--db/post_migrate/20240102065444_remove_milestone_id_column_from_vulnerabilities.rb21
-rw-r--r--db/post_migrate/20240102101409_validate_finding_id_on_vulnerabilities.rb18
-rw-r--r--db/post_migrate/20240104085448_queue_update_workspaces_config_version3.rb28
-rw-r--r--db/post_migrate/20240104091627_validate_foreign_key_ci_build_trace_metadata.rb14
-rw-r--r--db/post_migrate/20240104091858_validate_foreign_key_ci_job_artifact_state.rb14
-rw-r--r--db/post_migrate/20240104101601_finalize_backfill_partition_id_ci_pipeline_chat_data.rb23
-rw-r--r--db/post_migrate/20240104145320_remove_partition_id_default_value_for_ci_pipeline_chat_data.rb13
-rw-r--r--db/post_migrate/20240104155616_finalize_backfill_default_branch_protection_namespace_settings.rb24
-rw-r--r--db/post_migrate/20240104223119_add_index_owasp_top_10_with_project_id_on_vulnerability_reads.rb17
-rw-r--r--db/post_migrate/20240105000001_cleanup_workspaces_url_domain_to_dns_zone_rename.rb15
-rw-r--r--db/post_migrate/20240105120320_disable_fastupdate_on_issue_search_data.rb37
-rw-r--r--db/post_migrate/20240105144908_queue_backfill_issue_search_data_namespace_id.rb27
-rw-r--r--db/post_migrate/20240107154747_sent_notifications_self_install_finalize_bbm.rb26
-rw-r--r--db/post_migrate/20240107154805_sent_notifications_self_install_id_swap.rb58
-rw-r--r--db/post_migrate/20240108072319_add_fk_to_ci_build_trace_metadata_on_partition_id_and_trace_artifact_id2.rb38
-rw-r--r--db/post_migrate/20240108072546_add_fk_to_ci_job_artifact_states_on_partition_id_and_job_artifact_id2.rb38
-rw-r--r--db/post_migrate/20240108082419_queue_backfill_partition_id_ci_pipeline_metadata.rb26
-rw-r--r--db/post_migrate/20240108125135_remove_internal_ids_triggers.rb74
-rw-r--r--db/post_migrate/20240108125335_add_temporary_index_internal_ids_on_id_and_usage.rb17
-rw-r--r--db/post_migrate/20240108181808_remove_package_registry_duplicated_indexes.rb36
-rw-r--r--db/post_migrate/20240108185335_backfill_internal_ids_with_issues_usage_for_epics.rb56
-rw-r--r--db/post_migrate/20240108215335_remove_internal_ids_tmp_index.rb17
-rw-r--r--db/post_migrate/20240109025151_create_index_on_id_convert_to_bigint_for_system_note_metadata_async.rb16
-rw-r--r--db/post_migrate/20240109090354_queue_backfill_partition_id_ci_pipeline_artifact.rb26
-rw-r--r--db/post_migrate/20240109165047_add_index_project_id_component_version_id_id_on_sbom_occurrences.rb16
-rw-r--r--db/post_migrate/20240110090352_queue_backfill_partition_id_ci_pipeline_config.rb26
-rw-r--r--db/post_migrate/20240110093654_schedule_index_removal_ci_build_trace_metadata.rb18
-rw-r--r--db/post_migrate/20240110094002_drop_index_from_ci_job_artifact_state.rb17
-rw-r--r--db/post_migrate/20240110094510_remove_fk_from_ci_job_artifact_state.rb36
-rw-r--r--db/post_migrate/20240110132029_re_remove_requirements_ignored_columns.rb47
-rw-r--r--db/schema_migrations/202311162013381
-rw-r--r--db/schema_migrations/202311231602551
-rw-r--r--db/schema_migrations/202311240225201
-rw-r--r--db/schema_migrations/202311291736491
-rw-r--r--db/schema_migrations/202311301246061
-rw-r--r--db/schema_migrations/202312040420481
-rw-r--r--db/schema_migrations/202312040958021
-rw-r--r--db/schema_migrations/202312051650491
-rw-r--r--db/schema_migrations/202312052008471
-rw-r--r--db/schema_migrations/202312052009251
-rw-r--r--db/schema_migrations/202312061658561
-rw-r--r--db/schema_migrations/202312061843441
-rw-r--r--db/schema_migrations/202312061902061
-rw-r--r--db/schema_migrations/202312061911021
-rw-r--r--db/schema_migrations/202312062122521
-rw-r--r--db/schema_migrations/202312071453351
-rw-r--r--db/schema_migrations/202312071553401
-rw-r--r--db/schema_migrations/202312072114181
-rw-r--r--db/schema_migrations/202312072214181
-rw-r--r--db/schema_migrations/202312111546541
-rw-r--r--db/schema_migrations/202312120906061
-rw-r--r--db/schema_migrations/202312121352351
-rw-r--r--db/schema_migrations/202312121540221
-rw-r--r--db/schema_migrations/202312130146581
-rw-r--r--db/schema_migrations/202312130643141
-rw-r--r--db/schema_migrations/202312130652491
-rw-r--r--db/schema_migrations/202312130802161
-rw-r--r--db/schema_migrations/202312130802381
-rw-r--r--db/schema_migrations/202312131701591
-rw-r--r--db/schema_migrations/202312140955461
-rw-r--r--db/schema_migrations/202312141116171
-rw-r--r--db/schema_migrations/202312142223511
-rw-r--r--db/schema_migrations/202312151016401
-rw-r--r--db/schema_migrations/202312151306251
-rw-r--r--db/schema_migrations/202312151513481
-rw-r--r--db/schema_migrations/202312151927061
-rw-r--r--db/schema_migrations/202312161900181
-rw-r--r--db/schema_migrations/202312170539101
-rw-r--r--db/schema_migrations/202312180742371
-rw-r--r--db/schema_migrations/202312180745081
-rw-r--r--db/schema_migrations/202312180924011
-rw-r--r--db/schema_migrations/202312181211311
-rw-r--r--db/schema_migrations/202312181726211
-rw-r--r--db/schema_migrations/202312190440061
-rw-r--r--db/schema_migrations/202312190759281
-rw-r--r--db/schema_migrations/202312190759291
-rw-r--r--db/schema_migrations/202312190838041
-rw-r--r--db/schema_migrations/202312190841591
-rw-r--r--db/schema_migrations/202312190919241
-rw-r--r--db/schema_migrations/202312190924001
-rw-r--r--db/schema_migrations/202312191201341
-rw-r--r--db/schema_migrations/202312191259071
-rw-r--r--db/schema_migrations/202312191324231
-rw-r--r--db/schema_migrations/202312200946091
-rw-r--r--db/schema_migrations/202312201134591
-rw-r--r--db/schema_migrations/202312201152011
-rw-r--r--db/schema_migrations/202312201307251
-rw-r--r--db/schema_migrations/202312201501431
-rw-r--r--db/schema_migrations/202312201502101
-rw-r--r--db/schema_migrations/202312210007031
-rw-r--r--db/schema_migrations/202312210335391
-rw-r--r--db/schema_migrations/202312211139481
-rw-r--r--db/schema_migrations/202312211711351
-rw-r--r--db/schema_migrations/202312212232591
-rw-r--r--db/schema_migrations/202312220510501
-rw-r--r--db/schema_migrations/202312220719421
-rw-r--r--db/schema_migrations/202312220722371
-rw-r--r--db/schema_migrations/202312221145151
-rw-r--r--db/schema_migrations/202312240838241
-rw-r--r--db/schema_migrations/202312250704311
-rw-r--r--db/schema_migrations/202312251336281
-rw-r--r--db/schema_migrations/202312260526181
-rw-r--r--db/schema_migrations/202312270906341
-rw-r--r--db/schema_migrations/202312271030591
-rw-r--r--db/schema_migrations/202312271044081
-rw-r--r--db/schema_migrations/202312271047111
-rw-r--r--db/schema_migrations/202312280436531
-rw-r--r--db/schema_migrations/202312291128191
-rw-r--r--db/schema_migrations/202401010319381
-rw-r--r--db/schema_migrations/202401011336281
-rw-r--r--db/schema_migrations/202401020654441
-rw-r--r--db/schema_migrations/202401021014091
-rw-r--r--db/schema_migrations/202401021848441
-rw-r--r--db/schema_migrations/202401032008221
-rw-r--r--db/schema_migrations/202401032026291
-rw-r--r--db/schema_migrations/202401032033141
-rw-r--r--db/schema_migrations/202401040854481
-rw-r--r--db/schema_migrations/202401040916271
-rw-r--r--db/schema_migrations/202401040918581
-rw-r--r--db/schema_migrations/202401041016011
-rw-r--r--db/schema_migrations/202401041240571
-rw-r--r--db/schema_migrations/202401041453201
-rw-r--r--db/schema_migrations/202401041501061
-rw-r--r--db/schema_migrations/202401041556161
-rw-r--r--db/schema_migrations/202401041917361
-rw-r--r--db/schema_migrations/202401041918021
-rw-r--r--db/schema_migrations/202401042231191
-rw-r--r--db/schema_migrations/202401050000001
-rw-r--r--db/schema_migrations/202401050000011
-rw-r--r--db/schema_migrations/202401051203201
-rw-r--r--db/schema_migrations/202401051449081
-rw-r--r--db/schema_migrations/202401070842431
-rw-r--r--db/schema_migrations/202401071547471
-rw-r--r--db/schema_migrations/202401071548051
-rw-r--r--db/schema_migrations/202401080723191
-rw-r--r--db/schema_migrations/202401080725461
-rw-r--r--db/schema_migrations/202401080824191
-rw-r--r--db/schema_migrations/202401081213351
-rw-r--r--db/schema_migrations/202401081230231
-rw-r--r--db/schema_migrations/202401081231151
-rw-r--r--db/schema_migrations/202401081235091
-rw-r--r--db/schema_migrations/202401081251351
-rw-r--r--db/schema_migrations/202401081253351
-rw-r--r--db/schema_migrations/202401081818081
-rw-r--r--db/schema_migrations/202401081853351
-rw-r--r--db/schema_migrations/202401082153351
-rw-r--r--db/schema_migrations/202401090251511
-rw-r--r--db/schema_migrations/202401090823541
-rw-r--r--db/schema_migrations/202401090903541
-rw-r--r--db/schema_migrations/202401091458391
-rw-r--r--db/schema_migrations/202401091650471
-rw-r--r--db/schema_migrations/202401100852261
-rw-r--r--db/schema_migrations/202401100903521
-rw-r--r--db/schema_migrations/202401100936541
-rw-r--r--db/schema_migrations/202401100940021
-rw-r--r--db/schema_migrations/202401100945101
-rw-r--r--db/schema_migrations/202401101320291
-rw-r--r--db/schema_migrations/202401111343281
-rw-r--r--db/schema_migrations/202401151150291
-rw-r--r--db/structure.sql1285
-rw-r--r--doc/.vale/gitlab/BadgeCapitalization.yml14
-rw-r--r--doc/.vale/gitlab/LatinTerms.yml2
-rw-r--r--doc/.vale/gitlab/Uppercase.yml2
-rw-r--r--doc/.vale/gitlab/spelling-exceptions.txt1
-rw-r--r--doc/administration/admin_area.md9
-rw-r--r--doc/administration/analytics/dev_ops_reports.md14
-rw-r--r--doc/administration/appearance.md164
-rw-r--r--doc/administration/audit_event_streaming/audit_event_types.md22
-rw-r--r--doc/administration/audit_event_streaming/index.md7
-rw-r--r--doc/administration/auth/index.md1
-rw-r--r--doc/administration/auth/jwt.md2
-rw-r--r--doc/administration/auth/ldap/index.md3
-rw-r--r--doc/administration/auth/ldap/ldap-troubleshooting.md6
-rw-r--r--doc/administration/auth/oidc.md2
-rw-r--r--doc/administration/backup_restore/backup_gitlab.md628
-rw-r--r--doc/administration/backup_restore/restore_gitlab.md6
-rw-r--r--doc/administration/backup_restore/troubleshooting_backup_gitlab.md619
-rw-r--r--doc/administration/configure.md1
-rw-r--r--doc/administration/dedicated/index.md54
-rw-r--r--doc/administration/docs_self_host.md2
-rw-r--r--doc/administration/external_users.md8
-rw-r--r--doc/administration/geo/disaster_recovery/index.md271
-rw-r--r--doc/administration/geo/disaster_recovery/planned_failover.md10
-rw-r--r--doc/administration/geo/index.md13
-rw-r--r--doc/administration/geo/replication/container_registry.md67
-rw-r--r--doc/administration/geo/replication/location_aware_git_url.md4
-rw-r--r--doc/administration/geo/replication/upgrading_the_geo_sites.md2
-rw-r--r--doc/administration/geo/replication/version_specific_upgrades.md11
-rw-r--r--doc/administration/geo/secondary_proxy/index.md41
-rw-r--r--doc/administration/geo/secondary_proxy/location_aware_external_url.md4
-rw-r--r--doc/administration/geo/secondary_proxy/runners.md40
-rw-r--r--doc/administration/geo/setup/database.md2
-rw-r--r--doc/administration/get_started.md5
-rw-r--r--doc/administration/gitaly/concurrency_limiting.md6
-rw-r--r--doc/administration/gitaly/configure_gitaly.md35
-rw-r--r--doc/administration/gitaly/praefect.md4
-rw-r--r--doc/administration/gitaly/reference.md260
-rw-r--r--doc/administration/gitaly/troubleshooting.md21
-rw-r--r--doc/administration/integration/plantuml.md10
-rw-r--r--doc/administration/job_artifacts.md2
-rw-r--r--doc/administration/job_artifacts_troubleshooting.md44
-rw-r--r--doc/administration/labels.md7
-rw-r--r--doc/administration/license.md16
-rw-r--r--doc/administration/logs/index.md6
-rw-r--r--doc/administration/logs/tracing_correlation_id.md2
-rw-r--r--doc/administration/monitoring/prometheus/gitlab_metrics.md2
-rw-r--r--doc/administration/monitoring/prometheus/index.md4
-rw-r--r--doc/administration/object_storage.md55
-rw-r--r--doc/administration/operations/gitlab_sshd.md2
-rw-r--r--doc/administration/operations/index.md1
-rw-r--r--doc/administration/package_information/supported_os.md6
-rw-r--r--doc/administration/pages/index.md37
-rw-r--r--doc/administration/postgresql/multiple_databases.md98
-rw-r--r--doc/administration/postgresql/replication_and_failover.md476
-rw-r--r--doc/administration/postgresql/replication_and_failover_troubleshooting.md472
-rw-r--r--doc/administration/raketasks/check.md2
-rw-r--r--doc/administration/raketasks/maintenance.md14
-rw-r--r--doc/administration/reference_architectures/10k_users.md41
-rw-r--r--doc/administration/reference_architectures/25k_users.md43
-rw-r--r--doc/administration/reference_architectures/2k_users.md37
-rw-r--r--doc/administration/reference_architectures/3k_users.md40
-rw-r--r--doc/administration/reference_architectures/50k_users.md46
-rw-r--r--doc/administration/reference_architectures/5k_users.md37
-rw-r--r--doc/administration/reference_architectures/index.md53
-rw-r--r--doc/administration/repository_storage_types.md8
-rw-r--r--doc/administration/settings/email.md2
-rw-r--r--doc/administration/settings/help_page.md2
-rw-r--r--doc/administration/settings/import_and_export_settings.md2
-rw-r--r--doc/administration/settings/index.md1
-rw-r--r--doc/administration/settings/jira_cloud_app_troubleshooting.md35
-rw-r--r--doc/administration/settings/rate_limit_on_members_api.md33
-rw-r--r--doc/administration/settings/scim_setup.md45
-rw-r--r--doc/administration/settings/sign_in_restrictions.md4
-rw-r--r--doc/administration/settings/slack_app.md6
-rw-r--r--doc/administration/settings/usage_statistics.md9
-rw-r--r--doc/administration/sidekiq/sidekiq_memory_killer.md2
-rw-r--r--doc/administration/troubleshooting/postgresql.md2
-rw-r--r--doc/administration/uploads.md2
-rw-r--r--doc/api/api_resources.md3
-rw-r--r--doc/api/award_emoji.md11
-rw-r--r--doc/api/bulk_imports.md2
-rw-r--r--doc/api/code_suggestions.md1
-rw-r--r--doc/api/container_registry.md36
-rw-r--r--doc/api/discussions.md70
-rw-r--r--doc/api/graphql/getting_started.md11
-rw-r--r--doc/api/graphql/index.md72
-rw-r--r--doc/api/graphql/reference/index.md470
-rw-r--r--doc/api/group_import_export.md2
-rw-r--r--doc/api/group_level_variables.md96
-rw-r--r--doc/api/group_relations_export.md2
-rw-r--r--doc/api/groups.md80
-rw-r--r--doc/api/instance_level_ci_variables.md5
-rw-r--r--doc/api/integrations.md286
-rw-r--r--doc/api/issues.md3
-rw-r--r--doc/api/job_artifacts.md84
-rw-r--r--doc/api/jobs.md21
-rw-r--r--doc/api/member_roles.md20
-rw-r--r--doc/api/merge_requests.md13
-rw-r--r--doc/api/merge_trains.md2
-rw-r--r--doc/api/namespaces.md12
-rw-r--r--doc/api/oauth2.md1
-rw-r--r--doc/api/packages/terraform-modules.md25
-rw-r--r--doc/api/pages.md67
-rw-r--r--doc/api/pipeline_schedules.md18
-rw-r--r--doc/api/pipeline_triggers.md2
-rw-r--r--doc/api/pipelines.md18
-rw-r--r--doc/api/project_access_tokens.md3
-rw-r--r--doc/api/project_level_variables.md18
-rw-r--r--doc/api/project_relations_export.md2
-rw-r--r--doc/api/projects.md1096
-rw-r--r--doc/api/rest/index.md1
-rw-r--r--doc/api/runners.md16
-rw-r--r--doc/api/search.md10
-rw-r--r--doc/api/secure_files.md10
-rw-r--r--doc/api/settings.md2
-rw-r--r--doc/api/statistics.md3
-rw-r--r--doc/api/templates/gitlab_ci_ymls.md2
-rw-r--r--doc/api/users.md18
-rw-r--r--doc/api/vulnerability_exports.md15
-rw-r--r--doc/architecture/blueprints/ai_gateway/index.md6
-rw-r--r--doc/architecture/blueprints/cells/impacted_features/git-access.md37
-rw-r--r--doc/architecture/blueprints/cells/impacted_features/personal-namespaces.md6
-rw-r--r--doc/architecture/blueprints/cells/index.md3
-rw-r--r--doc/architecture/blueprints/cells/proposal-stateless-router-with-buffering-requests.md5
-rw-r--r--doc/architecture/blueprints/cells/proposal-stateless-router-with-routes-learning.md7
-rw-r--r--doc/architecture/blueprints/cells/routing-service.md644
-rw-r--r--doc/architecture/blueprints/ci_builds_runner_fleet_metrics/ci_insights.md154
-rw-r--r--doc/architecture/blueprints/ci_builds_runner_fleet_metrics/img/current_page.pngbin0 -> 132200 bytes
-rw-r--r--doc/architecture/blueprints/ci_builds_runner_fleet_metrics/index.md4
-rw-r--r--doc/architecture/blueprints/ci_pipeline_components/index.md26
-rw-r--r--doc/architecture/blueprints/cloud_connector/index.md18
-rw-r--r--doc/architecture/blueprints/gitaly_adaptive_concurrency_limit/index.md65
-rw-r--r--doc/architecture/blueprints/gitlab_housekeeper/index.md133
-rw-r--r--doc/architecture/blueprints/gitlab_steps/data.drawio.pngbin42192 -> 19270 bytes
-rw-r--r--doc/architecture/blueprints/gitlab_steps/step-runner-sequence.drawio.pngbin70107 -> 32938 bytes
-rw-r--r--doc/architecture/blueprints/runner_admission_controller/index.md2
-rw-r--r--doc/architecture/blueprints/runner_tokens/index.md10
-rw-r--r--doc/architecture/blueprints/runway/index.md2
-rw-r--r--doc/architecture/blueprints/secret_detection/index.md188
-rw-r--r--doc/architecture/blueprints/secret_manager/index.md6
-rw-r--r--doc/architecture/blueprints/tailwindcss/index.md172
-rw-r--r--doc/ci/caching/index.md2
-rw-r--r--doc/ci/cloud_deployment/ecs/deploy_to_aws_ecs.md2
-rw-r--r--doc/ci/cloud_services/azure/index.md2
-rw-r--r--doc/ci/debugging.md2
-rw-r--r--doc/ci/docker/using_docker_build.md2
-rw-r--r--doc/ci/environments/img/kubernetes_summary_ui.pngbin47714 -> 13822 bytes
-rw-r--r--doc/ci/environments/index.md40
-rw-r--r--doc/ci/examples/end_to_end_testing_webdriverio/index.md2
-rw-r--r--doc/ci/index.md7
-rw-r--r--doc/ci/jobs/ci_job_token.md2
-rw-r--r--doc/ci/jobs/index.md2
-rw-r--r--doc/ci/jobs/job_artifacts.md14
-rw-r--r--doc/ci/jobs/job_artifacts_troubleshooting.md23
-rw-r--r--doc/ci/jobs/job_control.md46
-rw-r--r--doc/ci/large_repositories/index.md11
-rw-r--r--doc/ci/migration/bamboo.md6
-rw-r--r--doc/ci/migration/github_actions.md2
-rw-r--r--doc/ci/migration/jenkins.md2
-rw-r--r--doc/ci/mobile_devops.md28
-rw-r--r--doc/ci/pipelines/cicd_minutes.md3
-rw-r--r--doc/ci/pipelines/downstream_pipelines.md4
-rw-r--r--doc/ci/pipelines/index.md2
-rw-r--r--doc/ci/pipelines/merge_request_pipelines.md4
-rw-r--r--doc/ci/pipelines/merged_results_pipelines.md2
-rw-r--r--doc/ci/pipelines/pipeline_efficiency.md2
-rw-r--r--doc/ci/pipelines/schedules.md2
-rw-r--r--doc/ci/quick_start/index.md2
-rw-r--r--doc/ci/quick_start/tutorial.md6
-rw-r--r--doc/ci/review_apps/index.md2
-rw-r--r--doc/ci/runners/configure_runners.md33
-rw-r--r--doc/ci/runners/img/runner_fleet_dashboard.pngbin0 -> 348380 bytes
-rw-r--r--doc/ci/runners/index.md2
-rw-r--r--doc/ci/runners/new_creation_workflow.md8
-rw-r--r--doc/ci/runners/runner_fleet_dashboard.md90
-rw-r--r--doc/ci/runners/runners_scope.md7
-rw-r--r--doc/ci/runners/saas/macos_saas_runner.md5
-rw-r--r--doc/ci/secrets/gcp_secret_manager.md92
-rw-r--r--doc/ci/secrets/index.md6
-rw-r--r--doc/ci/testing/code_quality.md107
-rw-r--r--doc/ci/testing/img/code_quality_inline_indicator_v16_7.pngbin53078 -> 22405 bytes
-rw-r--r--doc/ci/testing/test_coverage_visualization.md16
-rw-r--r--doc/ci/variables/index.md8
-rw-r--r--doc/ci/variables/predefined_variables.md3
-rw-r--r--doc/ci/variables/where_variables_can_be_used.md3
-rw-r--r--doc/ci/yaml/artifacts_reports.md10
-rw-r--r--doc/ci/yaml/index.md166
-rw-r--r--doc/ci/yaml/inputs.md68
-rw-r--r--doc/development/activitypub/actor.md11
-rw-r--r--doc/development/activitypub/actors/index.md2
-rw-r--r--doc/development/ai_features.md11
-rw-r--r--doc/development/ai_features/index.md140
-rw-r--r--doc/development/api_graphql_styleguide.md6
-rw-r--r--doc/development/auto_devops.md2
-rw-r--r--doc/development/bulk_import.md6
-rw-r--r--doc/development/cicd/cicd_reference_documentation_guide.md2
-rw-r--r--doc/development/cicd/components.md80
-rw-r--r--doc/development/cicd/configuration.md100
-rw-r--r--doc/development/cicd/img/avatar_component_project.pngbin0 -> 2545 bytes
-rw-r--r--doc/development/cicd/index.md6
-rw-r--r--doc/development/cicd/pipeline_wizard.md2
-rw-r--r--doc/development/cicd/schema.md2
-rw-r--r--doc/development/cicd/templates.md2
-rw-r--r--doc/development/code_owners/index.md34
-rw-r--r--doc/development/code_review.md6
-rw-r--r--doc/development/code_suggestions/index.md26
-rw-r--r--doc/development/contributing/design.md14
-rw-r--r--doc/development/contributing/index.md8
-rw-r--r--doc/development/contributing/verify/index.md2
-rw-r--r--doc/development/database/avoiding_downtime_in_migrations.md28
-rw-r--r--doc/development/database/clickhouse/clickhouse_within_gitlab.md4
-rw-r--r--doc/development/database/clickhouse/merge_request_analytics.md2
-rw-r--r--doc/development/database/efficient_in_operator_queries.md24
-rw-r--r--doc/development/database/iterating_tables_in_batches.md12
-rw-r--r--doc/development/database/keyset_pagination.md2
-rw-r--r--doc/development/database/loose_foreign_keys.md30
-rw-r--r--doc/development/database/maintenance_operations.md2
-rw-r--r--doc/development/database/multiple_databases.md2
-rw-r--r--doc/development/database/rename_database_tables.md14
-rw-r--r--doc/development/database/strings_and_the_text_data_type.md4
-rw-r--r--doc/development/database/table_partitioning.md80
-rw-r--r--doc/development/database_review.md11
-rw-r--r--doc/development/distributed_tracing.md4
-rw-r--r--doc/development/documentation/alpha_beta.md11
-rw-r--r--doc/development/documentation/experiment_beta.md2
-rw-r--r--doc/development/documentation/feature_flags.md2
-rw-r--r--doc/development/documentation/metadata.md39
-rw-r--r--doc/development/documentation/site_architecture/global_nav.md64
-rw-r--r--doc/development/documentation/styleguide/index.md69
-rw-r--r--doc/development/documentation/styleguide/word_list.md43
-rw-r--r--doc/development/documentation/testing.md30
-rw-r--r--doc/development/documentation/topic_types/troubleshooting.md2
-rw-r--r--doc/development/ee_features.md2
-rw-r--r--doc/development/fe_guide/architecture.md6
-rw-r--r--doc/development/fe_guide/content_editor.md2
-rw-r--r--doc/development/fe_guide/customizable_dashboards.md2
-rw-r--r--doc/development/fe_guide/design_anti_patterns.md10
-rw-r--r--doc/development/fe_guide/frontend_faq.md7
-rw-r--r--doc/development/fe_guide/graphql.md14
-rw-r--r--doc/development/fe_guide/haml.md4
-rw-r--r--doc/development/fe_guide/storybook.md2
-rw-r--r--doc/development/fe_guide/style/vue.md24
-rw-r--r--doc/development/fe_guide/vue.md6
-rw-r--r--doc/development/feature_development.md1
-rw-r--r--doc/development/feature_flags/index.md181
-rw-r--r--doc/development/gems.md23
-rw-r--r--doc/development/geo.md4
-rw-r--r--doc/development/geo/api.md32
-rw-r--r--doc/development/git_object_deduplication.md4
-rw-r--r--doc/development/github_importer.md17
-rw-r--r--doc/development/go_guide/index.md2
-rw-r--r--doc/development/i18n/proofreader.md77
-rw-r--r--doc/development/i18n/translation.md2
-rw-r--r--doc/development/img/runner_fleet_dashboard.pngbin38440 -> 0 bytes
-rw-r--r--doc/development/integrations/secure.md16
-rw-r--r--doc/development/integrations/secure_partner_integration.md4
-rw-r--r--doc/development/internal_analytics/index.md5
-rw-r--r--doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md4
-rw-r--r--doc/development/internal_analytics/internal_event_instrumentation/local_setup_and_debugging.md13
-rw-r--r--doc/development/internal_analytics/internal_event_instrumentation/migration.md1
-rw-r--r--doc/development/internal_analytics/internal_event_instrumentation/quick_start.md54
-rw-r--r--doc/development/internal_analytics/internal_event_tracking/event_definition_guide.md11
-rw-r--r--doc/development/internal_analytics/internal_event_tracking/index.md11
-rw-r--r--doc/development/internal_analytics/internal_event_tracking/introduction.md11
-rw-r--r--doc/development/internal_analytics/internal_event_tracking/migration.md11
-rw-r--r--doc/development/internal_analytics/internal_event_tracking/quick_start.md11
-rw-r--r--doc/development/internal_analytics/metrics/metrics_dictionary.md6
-rw-r--r--doc/development/internal_analytics/review_guidelines.md2
-rw-r--r--doc/development/internal_analytics/service_ping/review_guidelines.md11
-rw-r--r--doc/development/internal_analytics/service_ping/troubleshooting.md34
-rw-r--r--doc/development/internal_analytics/snowplow/review_guidelines.md11
-rw-r--r--doc/development/internal_api/index.md1
-rw-r--r--doc/development/lfs.md40
-rw-r--r--doc/development/logging.md2
-rw-r--r--doc/development/merge_request_concepts/diffs/index.md3
-rw-r--r--doc/development/migration_style_guide.md4
-rw-r--r--doc/development/multi_version_compatibility.md20
-rw-r--r--doc/development/packages/cleanup_policies.md21
-rw-r--r--doc/development/packages/settings.md2
-rw-r--r--doc/development/pages/index.md20
-rw-r--r--doc/development/permissions/custom_roles.md120
-rw-r--r--doc/development/permissions/predefined_roles.md4
-rw-r--r--doc/development/pipelines/index.md122
-rw-r--r--doc/development/pipelines/internals.md25
-rw-r--r--doc/development/pipelines/performance.md39
-rw-r--r--doc/development/prometheus_metrics.md8
-rw-r--r--doc/development/push_rules/index.md7
-rw-r--r--doc/development/reactive_caching.md8
-rw-r--r--doc/development/remote_development/index.md16
-rw-r--r--doc/development/ruby_upgrade.md68
-rw-r--r--doc/development/runner_fleet_dashboard.md200
-rw-r--r--doc/development/search/advanced_search_migration_styleguide.md47
-rw-r--r--doc/development/sec/analyzer_development_guide.md14
-rw-r--r--doc/development/secure_coding_guidelines.md2
-rw-r--r--doc/development/testing_guide/end_to_end/execution_context_selection.md1
-rw-r--r--doc/development/testing_guide/end_to_end/feature_flags.md4
-rw-r--r--doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md69
-rw-r--r--doc/development/testing_guide/flaky_tests.md2
-rw-r--r--doc/development/testing_guide/testing_levels.md2
-rw-r--r--doc/development/ux/index.md2
-rw-r--r--doc/development/value_stream_analytics.md2
-rw-r--r--doc/development/value_stream_analytics/value_stream_analytics_aggregated_backend.md12
-rw-r--r--doc/development/work_items.md3
-rw-r--r--doc/editor_extensions/index.md1
-rw-r--r--doc/editor_extensions/visual_studio_code/index.md2
-rw-r--r--doc/gitlab-basics/start-using-git.md71
-rw-r--r--doc/index.md22
-rw-r--r--doc/install/aws/index.md6
-rw-r--r--doc/install/cloud_providers.md4
-rw-r--r--doc/install/docker.md4
-rw-r--r--doc/install/install_methods.md2
-rw-r--r--doc/install/installation.md2
-rw-r--r--doc/install/requirements.md5
-rw-r--r--doc/integration/advanced_search/elasticsearch.md6
-rw-r--r--doc/integration/clickhouse.md126
-rw-r--r--doc/integration/diffblue_cover.md89
-rw-r--r--doc/integration/gitpod.md4
-rw-r--r--doc/integration/img/diffblue_cover_diff_v16_8.pngbin0 -> 95590 bytes
-rw-r--r--doc/integration/img/diffblue_cover_workflow_after_v16_8.pngbin0 -> 42684 bytes
-rw-r--r--doc/integration/img/gitpod_web_interface_v13_4.pngbin99925 -> 0 bytes
-rw-r--r--doc/integration/index.md1
-rw-r--r--doc/integration/jira/connect-app.md8
-rw-r--r--doc/integration/jira/dvcs/troubleshooting.md30
-rw-r--r--doc/integration/jira/troubleshooting.md10
-rw-r--r--doc/integration/kerberos.md2
-rw-r--r--doc/integration/partner_marketplace.md8
-rw-r--r--doc/integration/saml.md16
-rw-r--r--doc/integration/shibboleth.md2
-rw-r--r--doc/integration/sourcegraph.md2
-rw-r--r--doc/integration/vault.md2
-rw-r--r--doc/operations/img/metrics_details_v16_8.pngbin0 -> 55033 bytes
-rw-r--r--doc/operations/img/metrics_list_v16_8.pngbin0 -> 59785 bytes
-rw-r--r--doc/operations/img/tracing_details_v16_7.pngbin0 -> 40390 bytes
-rw-r--r--doc/operations/img/tracing_drawer_v16_7.pngbin0 -> 94752 bytes
-rw-r--r--doc/operations/img/tracing_list_v16_3.pngbin59957 -> 0 bytes
-rw-r--r--doc/operations/img/tracing_list_v16_7.pngbin0 -> 130291 bytes
-rw-r--r--doc/operations/index.md7
-rw-r--r--doc/operations/metrics.md76
-rw-r--r--doc/operations/tracing.md25
-rw-r--r--doc/policy/experiment-beta-support.md1
-rw-r--r--doc/policy/maintenance.md10
-rw-r--r--doc/security/hardening_application_recommendations.md22
-rw-r--r--doc/security/hardening_cicd_recommendations.md20
-rw-r--r--doc/security/hardening_general_concepts.md5
-rw-r--r--doc/security/index.md3
-rw-r--r--doc/security/token_overview.md3
-rw-r--r--doc/security/two_factor_authentication.md15
-rw-r--r--doc/solutions/cloud/aws/gitlab_aws_integration.md103
-rw-r--r--doc/subscriptions/choosing_subscription.md1
-rw-r--r--doc/subscriptions/community_programs.md1
-rw-r--r--doc/subscriptions/customers_portal.md81
-rw-r--r--doc/subscriptions/gitlab_com/index.md30
-rw-r--r--doc/subscriptions/gitlab_dedicated/index.md11
-rw-r--r--doc/subscriptions/quarterly_reconciliation.md7
-rw-r--r--doc/subscriptions/self_managed/index.md7
-rw-r--r--doc/topics/authentication/index.md11
-rw-r--r--doc/topics/autodevops/customize.md6
-rw-r--r--doc/topics/autodevops/index.md2
-rw-r--r--doc/topics/build_your_application.md6
-rw-r--r--doc/topics/cron/index.md1
-rw-r--r--doc/topics/git/index.md3
-rw-r--r--doc/topics/git/useful_git_commands.md104
-rw-r--r--doc/topics/manage_code.md3
-rw-r--r--doc/topics/offline/index.md1
-rw-r--r--doc/topics/offline/quick_start_guide.md9
-rw-r--r--doc/topics/plan_and_track.md1
-rw-r--r--doc/topics/release_your_application.md1
-rw-r--r--doc/topics/set_up_organization.md1
-rw-r--r--doc/tutorials/build_application.md1
-rw-r--r--doc/tutorials/develop.md1
-rw-r--r--doc/tutorials/gitlab_navigation.md3
-rw-r--r--doc/tutorials/infrastructure.md1
-rw-r--r--doc/tutorials/learn_git.md1
-rw-r--r--doc/tutorials/make_first_git_commit/index.md2
-rw-r--r--doc/tutorials/plan_and_track.md1
-rw-r--r--doc/tutorials/protected_workflow/index.md6
-rw-r--r--doc/tutorials/secure_application.md1
-rw-r--r--doc/tutorials/update_commit_messages/index.md2
-rw-r--r--doc/update/background_migrations.md207
-rw-r--r--doc/update/background_migrations_troubleshooting.md210
-rw-r--r--doc/update/deprecations.md169
-rw-r--r--doc/update/index.md16
-rw-r--r--doc/update/package/convert_to_ee.md2
-rw-r--r--doc/update/package/index.md308
-rw-r--r--doc/update/package/package_troubleshooting.md293
-rw-r--r--doc/update/plan_your_upgrade.md2
-rw-r--r--doc/update/versions/gitlab_14_changes.md19
-rw-r--r--doc/update/versions/gitlab_15_changes.md4
-rw-r--r--doc/update/versions/gitlab_16_changes.md111
-rw-r--r--doc/update/zero_downtime.md28
-rw-r--r--doc/user/ai_features.md4
-rw-r--r--doc/user/analytics/analytics_dashboards.md13
-rw-r--r--doc/user/analytics/contributor_statistics.md11
-rw-r--r--doc/user/analytics/dora_metrics.md2
-rw-r--r--doc/user/analytics/img/enhanced_issue_analytics_v16_7.pngbin61942 -> 17415 bytes
-rw-r--r--doc/user/analytics/index.md1
-rw-r--r--doc/user/analytics/issue_analytics.md66
-rw-r--r--doc/user/analytics/merge_request_analytics.md6
-rw-r--r--doc/user/analytics/repository_analytics.md2
-rw-r--r--doc/user/analytics/value_streams_dashboard.md34
-rw-r--r--doc/user/application_security/api_fuzzing/create_har_files.md2
-rw-r--r--doc/user/application_security/api_fuzzing/index.md6
-rw-r--r--doc/user/application_security/configuration/index.md2
-rw-r--r--doc/user/application_security/container_scanning/index.md27
-rw-r--r--doc/user/application_security/continuous_vulnerability_scanning/index.md2
-rw-r--r--doc/user/application_security/dast/checks/78.1.md2
-rw-r--r--doc/user/application_security/dast/on-demand_scan.md409
-rw-r--r--doc/user/application_security/dast/proxy-based.md401
-rw-r--r--doc/user/application_security/dast_api/index.md8
-rw-r--r--doc/user/application_security/dependency_scanning/index.md393
-rw-r--r--doc/user/application_security/dependency_scanning/troubleshooting_dependency_scanning.md6
-rw-r--r--doc/user/application_security/index.md26
-rw-r--r--doc/user/application_security/policies/img/scan_results_evaluation_white-bg.pngbin169020 -> 53334 bytes
-rw-r--r--doc/user/application_security/policies/scan-execution-policies.md188
-rw-r--r--doc/user/application_security/policies/scan-result-policies.md119
-rw-r--r--doc/user/application_security/sast/analyzers.md2
-rw-r--r--doc/user/application_security/sast/customize_rulesets.md4
-rw-r--r--doc/user/application_security/sast/img/sast_inline_indicator_v16_7.pngbin89080 -> 32977 bytes
-rw-r--r--doc/user/application_security/sast/img/sast_mr_widget_v16_7.pngbin39147 -> 13298 bytes
-rw-r--r--doc/user/application_security/sast/index.md78
-rw-r--r--doc/user/application_security/secret_detection/index.md32
-rw-r--r--doc/user/application_security/secret_detection/pre_receive.md14
-rw-r--r--doc/user/application_security/secure_your_application.md1
-rw-r--r--doc/user/application_security/security_dashboard/index.md6
-rw-r--r--doc/user/application_security/vulnerability_report/index.md19
-rw-r--r--doc/user/application_security/vulnerability_report/pipeline.md31
-rw-r--r--doc/user/award_emojis.md11
-rw-r--r--doc/user/clusters/agent/index.md6
-rw-r--r--doc/user/clusters/agent/install/index.md11
-rw-r--r--doc/user/clusters/agent/kas_glossary.md20
-rw-r--r--doc/user/clusters/management_project.md8
-rw-r--r--doc/user/compliance/compliance_center/index.md28
-rw-r--r--doc/user/compliance/license_list.md10
-rw-r--r--doc/user/custom_roles.md38
-rw-r--r--doc/user/custom_roles/abilities.md65
-rw-r--r--doc/user/discussions/index.md2
-rw-r--r--doc/user/emoji_reactions.md3
-rw-r--r--doc/user/feature_flags.md4
-rw-r--r--doc/user/gitlab_com/index.md11
-rw-r--r--doc/user/gitlab_duo_chat.md183
-rw-r--r--doc/user/group/access_and_permissions.md6
-rw-r--r--doc/user/group/clusters/index.md2
-rw-r--r--doc/user/group/devops_adoption/index.md14
-rw-r--r--doc/user/group/epics/manage_epics.md41
-rw-r--r--doc/user/group/import/index.md218
-rw-r--r--doc/user/group/insights/img/insights_example_stacked_bar_chart_v15_4.pngbin75321 -> 0 bytes
-rw-r--r--doc/user/group/insights/index.md97
-rw-r--r--doc/user/group/issues_analytics/img/enhanced_issue_analytics_v16_7.pngbin61942 -> 17415 bytes
-rw-r--r--doc/user/group/issues_analytics/index.md18
-rw-r--r--doc/user/group/manage.md7
-rw-r--r--doc/user/group/saml_sso/troubleshooting.md5
-rw-r--r--doc/user/group/saml_sso/troubleshooting_scim.md28
-rw-r--r--doc/user/group/subgroups/index.md18
-rw-r--r--doc/user/group/value_stream_analytics/index.md14
-rw-r--r--doc/user/infrastructure/clusters/connect/new_gke_cluster.md10
-rw-r--r--doc/user/infrastructure/iac/index.md8
-rw-r--r--doc/user/infrastructure/index.md3
-rw-r--r--doc/user/markdown.md690
-rw-r--r--doc/user/okrs.md15
-rw-r--r--doc/user/organization/index.md14
-rw-r--r--doc/user/packages/composer_repository/index.md1
-rw-r--r--doc/user/packages/conan_repository/index.md6
-rw-r--r--doc/user/packages/container_registry/authenticate_with_container_registry.md6
-rw-r--r--doc/user/packages/container_registry/build_and_push_images.md2
-rw-r--r--doc/user/packages/container_registry/delete_container_registry_images.md2
-rw-r--r--doc/user/packages/container_registry/reduce_container_registry_storage.md22
-rw-r--r--doc/user/packages/maven_repository/index.md43
-rw-r--r--doc/user/packages/package_registry/dependency_proxy/index.md7
-rw-r--r--doc/user/packages/terraform_module_registry/index.md54
-rw-r--r--doc/user/packages/workflows/build_packages.md45
-rw-r--r--doc/user/permissions.md2
-rw-r--r--doc/user/product_analytics/index.md56
-rw-r--r--doc/user/product_analytics/instrumentation/browser_sdk.md14
-rw-r--r--doc/user/profile/account/create_accounts.md1
-rw-r--r--doc/user/profile/index.md2
-rw-r--r--doc/user/profile/personal_access_tokens.md3
-rw-r--r--doc/user/profile/preferences.md18
-rw-r--r--doc/user/project/changelogs.md14
-rw-r--r--doc/user/project/clusters/add_existing_cluster.md8
-rw-r--r--doc/user/project/clusters/add_remove_clusters.md2
-rw-r--r--doc/user/project/clusters/multiple_kubernetes_clusters.md4
-rw-r--r--doc/user/project/import/github.md17
-rw-r--r--doc/user/project/import/gitlab_com.md2
-rw-r--r--doc/user/project/import/index.md98
-rw-r--r--doc/user/project/import/repo_by_url.md5
-rw-r--r--doc/user/project/insights/index.md81
-rw-r--r--doc/user/project/integrations/apple_app_store.md14
-rw-r--r--doc/user/project/integrations/gitlab_slack_app_troubleshooting.md11
-rw-r--r--doc/user/project/integrations/google_play.md2
-rw-r--r--doc/user/project/integrations/mattermost.md4
-rw-r--r--doc/user/project/integrations/slack.md2
-rw-r--r--doc/user/project/integrations/webhooks.md1
-rw-r--r--doc/user/project/issue_board.md2
-rw-r--r--doc/user/project/issues/managing_issues.md37
-rw-r--r--doc/user/project/labels.md2
-rw-r--r--doc/user/project/members/index.md2
-rw-r--r--doc/user/project/members/share_project_with_groups.md22
-rw-r--r--doc/user/project/merge_requests/approvals/img/group_access_example_01_v16_8.pngbin0 -> 20153 bytes
-rw-r--r--doc/user/project/merge_requests/approvals/img/group_access_example_02_v16_8.pngbin0 -> 18583 bytes
-rw-r--r--doc/user/project/merge_requests/approvals/index.md19
-rw-r--r--doc/user/project/merge_requests/approvals/rules.md25
-rw-r--r--doc/user/project/merge_requests/approvals/settings.md15
-rw-r--r--doc/user/project/merge_requests/changes.md7
-rw-r--r--doc/user/project/merge_requests/creating_merge_requests.md117
-rw-r--r--doc/user/project/merge_requests/merge_when_pipeline_succeeds.md3
-rw-r--r--doc/user/project/merge_requests/reviews/index.md2
-rw-r--r--doc/user/project/merge_requests/widgets.md6
-rw-r--r--doc/user/project/milestones/index.md4
-rw-r--r--doc/user/project/ml/experiment_tracking/mlflow_client.md16
-rw-r--r--doc/user/project/ml/model_registry/index.md7
-rw-r--r--doc/user/project/organize_work_with_projects.md1
-rw-r--r--doc/user/project/pages/custom_domains_ssl_tls_certification/index.md6
-rw-r--r--doc/user/project/pages/getting_started/pages_from_scratch.md18
-rw-r--r--doc/user/project/pages/index.md2
-rw-r--r--doc/user/project/pages/introduction.md10
-rw-r--r--doc/user/project/pages/pages_access_control.md9
-rw-r--r--doc/user/project/pages/redirects.md27
-rw-r--r--doc/user/project/protected_branches.md4
-rw-r--r--doc/user/project/releases/index.md2
-rw-r--r--doc/user/project/releases/release_fields.md3
-rw-r--r--doc/user/project/remote_development/connect_machine.md5
-rw-r--r--doc/user/project/remote_development/index.md5
-rw-r--r--doc/user/project/repository/branches/index.md40
-rw-r--r--doc/user/project/repository/code_suggestions/index.md79
-rw-r--r--doc/user/project/repository/code_suggestions/repository_xray.md60
-rw-r--r--doc/user/project/repository/code_suggestions/saas.md27
-rw-r--r--doc/user/project/repository/code_suggestions/self_managed.md41
-rw-r--r--doc/user/project/repository/code_suggestions/troubleshooting.md19
-rw-r--r--doc/user/project/repository/git_blame.md22
-rw-r--r--doc/user/project/repository/gpg_signed_commits/index.md11
-rw-r--r--doc/user/project/repository/index.md13
-rw-r--r--doc/user/project/repository/managing_large_repositories.md11
-rw-r--r--doc/user/project/repository/mirror/bidirectional.md2
-rw-r--r--doc/user/project/repository/mirror/index.md2
-rw-r--r--doc/user/project/repository/mirror/push.md2
-rw-r--r--doc/user/project/repository/mirror/troubleshooting.md10
-rw-r--r--doc/user/project/repository/push_rules.md6
-rw-r--r--doc/user/project/repository/reducing_the_repo_size_using_git.md2
-rw-r--r--doc/user/project/repository/signed_commits/ssh.md2
-rw-r--r--doc/user/project/repository/ssh_signed_commits/index.md11
-rw-r--r--doc/user/project/repository/web_editor.md14
-rw-r--r--doc/user/project/repository/x509_signed_commits/index.md11
-rw-r--r--doc/user/project/requirements/index.md8
-rw-r--r--doc/user/project/service_desk/configure.md26
-rw-r--r--doc/user/project/service_desk/index.md4
-rw-r--r--doc/user/project/settings/import_export.md200
-rw-r--r--doc/user/project/settings/project_features_permissions.md2
-rw-r--r--doc/user/project/use_project_as_go_package.md2
-rw-r--r--doc/user/project/web_ide/index.md157
-rw-r--r--doc/user/project/wiki/group.md4
-rw-r--r--doc/user/project/wiki/index.md25
-rw-r--r--doc/user/project/working_with_projects.md8
-rw-r--r--doc/user/public_access.md24
-rw-r--r--doc/user/search/advanced_search.md6
-rw-r--r--doc/user/storage_management_automation.md2
-rw-r--r--doc/user/tasks.md9
-rw-r--r--doc/user/usage_quotas.md6
-rw-r--r--doc/user/version.md1
-rw-r--r--doc/user/workspace/gitlab_agent_configuration.md73
-rw-r--r--doc/user/workspace/index.md53
-rw-r--r--gems/config/rubocop.yml9
-rw-r--r--gems/gem-pg.gitlab-ci.yml1
-rw-r--r--gems/gem.gitlab-ci.yml1
-rw-r--r--gems/gitlab-database-load_balancing/Gemfile.lock2
-rw-r--r--gems/gitlab-housekeeper/Gemfile.lock3
-rw-r--r--gems/gitlab-housekeeper/README.md88
-rw-r--r--gems/gitlab-housekeeper/gitlab-housekeeper.gemspec3
-rw-r--r--gems/gitlab-housekeeper/lib/gitlab/housekeeper/gitlab_client.rb154
-rw-r--r--gems/gitlab-housekeeper/lib/gitlab/housekeeper/runner.rb41
-rw-r--r--gems/gitlab-housekeeper/spec/gitlab/housekeeper/gitlab_client_spec.rb274
-rw-r--r--gems/gitlab-housekeeper/spec/gitlab/housekeeper/runner_spec.rb110
-rw-r--r--gems/gitlab-http/Gemfile.lock2
-rw-r--r--gems/gitlab-http/gitlab-http.gemspec1
-rw-r--r--gems/gitlab-http/lib/gitlab/http_v2/lazy_response.rb2
-rw-r--r--gems/gitlab-rspec_flaky/lib/gitlab/rspec_flaky/listener.rb4
-rw-r--r--gems/gitlab-rspec_flaky/spec/gitlab/rspec_flaky/listener_spec.rb37
-rw-r--r--gems/gitlab-safe_request_store/Gemfile.lock3
-rw-r--r--gems/gitlab-safe_request_store/gitlab-safe_request_store.gemspec1
-rw-r--r--gems/gitlab-secret_detection/Gemfile.lock4
-rw-r--r--gems/gitlab-secret_detection/gitlab-secret_detection.gemspec2
-rw-r--r--gems/gitlab-secret_detection/lib/gitlab/secret_detection/scan.rb121
-rw-r--r--gems/gitlab-secret_detection/spec/lib/gitlab/secret_detection/scan_spec.rb75
-rw-r--r--gems/gitlab-secret_detection/spec/spec_helper.rb10
-rw-r--r--gems/gitlab-utils/Gemfile.lock3
-rw-r--r--gems/gitlab-utils/gitlab-utils.gemspec1
-rw-r--r--gems/gitlab-utils/lib/gitlab/utils.rb14
-rw-r--r--gems/gitlab-utils/spec/gitlab/utils_spec.rb20
-rw-r--r--glfm_specification/output_example_snapshots/html.yml762
-rw-r--r--glfm_specification/output_example_snapshots/prosemirror_json.yml159
-rw-r--r--glfm_specification/output_example_snapshots/snapshot_spec.html1042
-rw-r--r--glfm_specification/output_spec/spec.html22
-rw-r--r--lib/api/admin/ci/variables.rb8
-rw-r--r--lib/api/api.rb2
-rw-r--r--lib/api/ci/pipelines.rb2
-rw-r--r--lib/api/ci/runners.rb25
-rw-r--r--lib/api/draft_notes.rb4
-rw-r--r--lib/api/entities/bulk_imports/entity_failure.rb2
-rw-r--r--lib/api/entities/ci/job.rb1
-rw-r--r--lib/api/entities/diff.rb1
-rw-r--r--lib/api/entities/group.rb1
-rw-r--r--lib/api/entities/merge_request_basic.rb5
-rw-r--r--lib/api/entities/ml/mlflow/model_version.rb6
-rw-r--r--lib/api/entities/ml/mlflow/search_experiments.rb14
-rw-r--r--lib/api/entities/pages/deployments.rb14
-rw-r--r--lib/api/entities/pages/project_settings.rb14
-rw-r--r--lib/api/entities/user_preferences.rb2
-rw-r--r--lib/api/group_variables.rb30
-rw-r--r--lib/api/groups.rb6
-rw-r--r--lib/api/helpers.rb26
-rw-r--r--lib/api/helpers/integrations_helpers.rb314
-rw-r--r--lib/api/helpers/kubernetes/agent_helpers.rb3
-rw-r--r--lib/api/helpers/packages/maven.rb4
-rw-r--r--lib/api/helpers/user_preferences_helpers.rb17
-rw-r--r--lib/api/internal/kubernetes.rb1
-rw-r--r--lib/api/maven_packages.rb8
-rw-r--r--lib/api/members.rb2
-rw-r--r--lib/api/merge_request_approvals.rb3
-rw-r--r--lib/api/ml/mlflow/api_helpers.rb22
-rw-r--r--lib/api/ml/mlflow/experiments.rb36
-rw-r--r--lib/api/ml/mlflow/model_versions.rb5
-rw-r--r--lib/api/ml/mlflow/registered_models.rb8
-rw-r--r--lib/api/namespaces.rb3
-rw-r--r--lib/api/npm_project_packages.rb18
-rw-r--r--lib/api/pages.rb19
-rw-r--r--lib/api/terraform/modules/v1/namespace_packages.rb (renamed from lib/api/terraform/modules/v1/packages.rb)65
-rw-r--r--lib/api/terraform/modules/v1/project_packages.rb215
-rw-r--r--lib/api/users.rb8
-rw-r--r--lib/backup/database_configuration.rb3
-rw-r--r--lib/backup/database_model.rb86
-rw-r--r--lib/banzai/filter/markdown_engines/base.rb6
-rw-r--r--lib/banzai/filter/markdown_engines/glfm_markdown.rb42
-rw-r--r--lib/banzai/filter/markdown_filter.rb39
-rw-r--r--lib/banzai/pipeline/gfm_pipeline.rb4
-rw-r--r--lib/bulk_imports/file_downloads/validations.rb20
-rw-r--r--lib/click_house/iterator.rb19
-rw-r--r--lib/container_registry/gitlab_api_client.rb3
-rw-r--r--lib/container_registry/referrer.rb13
-rw-r--r--lib/container_registry/tag.rb34
-rw-r--r--lib/feature/definition.rb16
-rw-r--r--lib/feature/shared.rb63
-rw-r--r--lib/gitlab/application_rate_limiter.rb4
-rw-r--r--lib/gitlab/application_setting_fetcher.rb80
-rw-r--r--lib/gitlab/auth.rb5
-rw-r--r--lib/gitlab/auth/two_factor_auth_verifier.rb17
-rw-r--r--lib/gitlab/background_migration/backfill_issue_search_data_namespace_id.rb34
-rw-r--r--lib/gitlab/background_migration/backfill_owasp_top_ten_of_vulnerability_reads.rb86
-rw-r--r--lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_artifact.rb28
-rw-r--r--lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_chat_data.rb28
-rw-r--r--lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_config.rb37
-rw-r--r--lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_metadata.rb28
-rw-r--r--lib/gitlab/background_migration/backfill_vs_code_settings_version.rb38
-rw-r--r--lib/gitlab/background_migration/drop_vulnerabilities_without_finding_id.rb15
-rw-r--r--lib/gitlab/background_migration/update_workspaces_config_version3.rb13
-rw-r--r--lib/gitlab/base_doorkeeper_controller.rb2
-rw-r--r--lib/gitlab/bitbucket_server_import/importers/pull_request_importer.rb19
-rw-r--r--lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer.rb13
-rw-r--r--lib/gitlab/bitbucket_server_import/importers/users_importer.rb19
-rw-r--r--lib/gitlab/bitbucket_server_import/mentions_converter.rb46
-rw-r--r--lib/gitlab/bitbucket_server_import/user_caching.rb13
-rw-r--r--lib/gitlab/bitbucket_server_import/user_from_mention.rb39
-rw-r--r--lib/gitlab/cache/import/caching.rb42
-rw-r--r--lib/gitlab/ci/build/rules.rb7
-rw-r--r--lib/gitlab/ci/config/entry/processable.rb3
-rw-r--r--lib/gitlab/ci/config/entry/rules/rule.rb24
-rw-r--r--lib/gitlab/ci/config/entry/schemas/imageable/executor_opts.json5
-rw-r--r--lib/gitlab/ci/config/entry/workflow.rb7
-rw-r--r--lib/gitlab/ci/config/external/context.rb22
-rw-r--r--lib/gitlab/ci/config/external/file/component.rb7
-rw-r--r--lib/gitlab/ci/config/external/file/remote.rb8
-rw-r--r--lib/gitlab/ci/parsers/sbom/cyclonedx.rb2
-rw-r--r--lib/gitlab/ci/parsers/sbom/cyclonedx_properties.rb37
-rw-r--r--lib/gitlab/ci/parsers/sbom/source/trivy.rb19
-rw-r--r--lib/gitlab/ci/parsers/security/common.rb10
-rw-r--r--lib/gitlab/ci/pipeline/chain/command.rb2
-rw-r--r--lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb6
-rw-r--r--lib/gitlab/ci/pipeline/chain/helpers.rb2
-rw-r--r--lib/gitlab/ci/pipeline/chain/populate.rb6
-rw-r--r--lib/gitlab/ci/pipeline/chain/populate_metadata.rb5
-rw-r--r--lib/gitlab/ci/reports/sbom/component.rb4
-rw-r--r--lib/gitlab/ci/reports/security/finding.rb12
-rw-r--r--lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Security/DAST-On-Demand-Scan.gitlab-ci.yml9
-rw-r--r--lib/gitlab/ci/templates/Security/DAST-Runner-Validation.gitlab-ci.yml9
-rw-r--r--lib/gitlab/cleanup/orphan_job_artifact_final_objects/job_artifact_object.rb62
-rw-r--r--lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/aws.rb27
-rw-r--r--lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/base_paginator.rb49
-rw-r--r--lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/google.rb32
-rw-r--r--lib/gitlab/cleanup/orphan_job_artifact_final_objects_cleaner.rb161
-rw-r--r--lib/gitlab/cleanup/project_uploads.rb2
-rw-r--r--lib/gitlab/current_settings.rb70
-rw-r--r--lib/gitlab/database/decomposition/migrate.rb24
-rw-r--r--lib/gitlab/database/dictionary.rb15
-rw-r--r--lib/gitlab/database/gitlab_schema_info.rb83
-rw-r--r--lib/gitlab/database/health_status/indicators/prometheus_alert_indicator.rb2
-rw-r--r--lib/gitlab/database/migration_helpers/v2.rb16
-rw-r--r--lib/gitlab/database/migrations/batched_background_migration_helpers.rb2
-rw-r--r--lib/gitlab/database/migrations/squasher.rb2
-rw-r--r--lib/gitlab/database/namespace_each_batch.rb223
-rw-r--r--lib/gitlab/database/partitioning/int_range_partition.rb84
-rw-r--r--lib/gitlab/database/partitioning/int_range_strategy.rb95
-rw-r--r--lib/gitlab/database/partitioning/list/convert_table.rb13
-rw-r--r--lib/gitlab/database/partitioning_migration_helpers.rb1
-rw-r--r--lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb2
-rw-r--r--lib/gitlab/database/partitioning_migration_helpers/uniqueness_helpers.rb39
-rw-r--r--lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb16
-rw-r--r--lib/gitlab/database_importers/work_items/base_type_importer.rb8
-rw-r--r--lib/gitlab/database_importers/work_items/hierarchy_restrictions_importer.rb5
-rw-r--r--lib/gitlab/dependency_linker.rb10
-rw-r--r--lib/gitlab/dependency_linker/base_linker.rb10
-rw-r--r--lib/gitlab/diff/file_collection/paginated_merge_request_diff.rb4
-rw-r--r--lib/gitlab/diff/highlight.rb5
-rw-r--r--lib/gitlab/diff/rendered/notebook/diff_file_helper.rb2
-rw-r--r--lib/gitlab/encoding_helper.rb6
-rw-r--r--lib/gitlab/error_tracking.rb8
-rw-r--r--lib/gitlab/error_tracking/processor/sidekiq_processor.rb2
-rw-r--r--lib/gitlab/event_store/event.rb10
-rw-r--r--lib/gitlab/file_detector.rb2
-rw-r--r--lib/gitlab/git.rb5
-rw-r--r--lib/gitlab/git/blob.rb4
-rw-r--r--lib/gitlab/git/changed_path.rb16
-rw-r--r--lib/gitlab/git/compare.rb3
-rw-r--r--lib/gitlab/git/diff.rb4
-rw-r--r--lib/gitlab/git/push.rb4
-rw-r--r--lib/gitlab/git/repository.rb63
-rw-r--r--lib/gitlab/git/tree.rb16
-rw-r--r--lib/gitlab/gitaly_client/analysis_service.rb67
-rw-r--r--lib/gitlab/gitaly_client/blobs_stitcher.rb2
-rw-r--r--lib/gitlab/gitaly_client/commit_service.rb4
-rw-r--r--lib/gitlab/github_gists_import/importer/gists_importer.rb2
-rw-r--r--lib/gitlab/github_import/attachments_downloader.rb22
-rw-r--r--lib/gitlab/github_import/events_cache.rb61
-rw-r--r--lib/gitlab/github_import/importer/attachments/base_importer.rb12
-rw-r--r--lib/gitlab/github_import/importer/events/base_importer.rb7
-rw-r--r--lib/gitlab/github_import/importer/events/commented.rb27
-rw-r--r--lib/gitlab/github_import/importer/events/merged.rb13
-rw-r--r--lib/gitlab/github_import/importer/events/reviewed.rb26
-rw-r--r--lib/gitlab/github_import/importer/issue_event_importer.rb15
-rw-r--r--lib/gitlab/github_import/importer/note_attachments_importer.rb5
-rw-r--r--lib/gitlab/github_import/importer/pull_requests/review_importer.rb8
-rw-r--r--lib/gitlab/github_import/importer/pull_requests/reviews_importer.rb2
-rw-r--r--lib/gitlab/github_import/importer/replay_events_importer.rb60
-rw-r--r--lib/gitlab/github_import/importer/single_endpoint_issue_events_importer.rb49
-rw-r--r--lib/gitlab/github_import/job_delay_calculator.rb4
-rw-r--r--lib/gitlab/github_import/markdown_text.rb2
-rw-r--r--lib/gitlab/github_import/parallel_scheduling.rb19
-rw-r--r--lib/gitlab/github_import/representation/issue_event.rb9
-rw-r--r--lib/gitlab/github_import/representation/note_text.rb8
-rw-r--r--lib/gitlab/github_import/representation/replay_event.rb31
-rw-r--r--lib/gitlab/github_import/settings.rb16
-rw-r--r--lib/gitlab/github_import/single_endpoint_notes_importing.rb5
-rw-r--r--lib/gitlab/github_import/user_finder.rb51
-rw-r--r--lib/gitlab/gon_helper.rb2
-rw-r--r--lib/gitlab/highlight.rb22
-rw-r--r--lib/gitlab/http.rb29
-rw-r--r--lib/gitlab/i18n.rb24
-rw-r--r--lib/gitlab/import/page_counter.rb (renamed from lib/gitlab/github_import/page_counter.rb)4
-rw-r--r--lib/gitlab/import_export/group/relation_tree_restorer.rb7
-rw-r--r--lib/gitlab/import_export/import_failure_service.rb8
-rw-r--r--lib/gitlab/import_export/project/import_export.yml1
-rw-r--r--lib/gitlab/instrumentation/redis.rb4
-rw-r--r--lib/gitlab/instrumentation/redis_client_middleware.rb46
-rw-r--r--lib/gitlab/instrumentation/redis_helper.rb2
-rw-r--r--lib/gitlab/legacy_github_import/user_formatter.rb10
-rw-r--r--lib/gitlab/legacy_http.rb78
-rw-r--r--lib/gitlab/memory/watchdog/handlers/sidekiq_handler.rb4
-rw-r--r--lib/gitlab/middleware/unauthenticated_session_expiry.rb35
-rw-r--r--lib/gitlab/namespaced_session_store.rb16
-rw-r--r--lib/gitlab/pagination/keyset/simple_order_builder.rb36
-rw-r--r--lib/gitlab/patch/sidekiq_cron_poller.rb2
-rw-r--r--lib/gitlab/quick_actions/extractor.rb8
-rw-r--r--lib/gitlab/quick_actions/issuable_actions.rb8
-rw-r--r--lib/gitlab/quick_actions/issue_actions.rb20
-rw-r--r--lib/gitlab/quick_actions/merge_request_actions.rb18
-rw-r--r--lib/gitlab/rack_attack/user_allowlist.rb2
-rw-r--r--lib/gitlab/redis/multi_store.rb73
-rw-r--r--lib/gitlab/redis/multi_store_wrapper.rb29
-rw-r--r--lib/gitlab/redis/shared_state.rb9
-rw-r--r--lib/gitlab/redis/wrapper.rb37
-rw-r--r--lib/gitlab/runtime.rb9
-rw-r--r--lib/gitlab/security/features.rb134
-rw-r--r--lib/gitlab/security/scan_configuration.rb4
-rw-r--r--lib/gitlab/sidekiq_config.rb3
-rw-r--r--lib/gitlab/sidekiq_config/cli_methods.rb2
-rw-r--r--lib/gitlab/sidekiq_logging/structured_logger.rb8
-rw-r--r--lib/gitlab/sidekiq_middleware/server_metrics.rb2
-rw-r--r--lib/gitlab/sidekiq_migrate_jobs.rb19
-rw-r--r--lib/gitlab/sidekiq_status.rb4
-rw-r--r--lib/gitlab/ssh/commit.rb2
-rw-r--r--lib/gitlab/ssh/signature.rb45
-rw-r--r--lib/gitlab/themes.rb24
-rw-r--r--lib/gitlab/tracking.rb15
-rw-r--r--lib/gitlab/tracking/destinations/database_events_snowplow.rb52
-rw-r--r--lib/gitlab/tracking/event_definition.rb14
-rw-r--r--lib/gitlab/usage/metric_definition.rb12
-rw-r--r--lib/gitlab/usage_data_counters/ci_template_unique_counter.rb15
-rw-r--r--lib/gitlab/usage_data_counters/hll_redis_counter.rb20
-rw-r--r--lib/gitlab/usage_data_counters/hll_redis_key_overrides.yml1
-rw-r--r--lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb8
-rw-r--r--lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb4
-rw-r--r--lib/gitlab/usage_data_counters/work_item_activity_unique_counter.rb5
-rw-r--r--lib/integrations/google_cloud_platform/artifact_registry/client.rb6
-rw-r--r--lib/integrations/google_cloud_platform/base_client.rb2
-rw-r--r--lib/quality/seeders/issues.rb2
-rw-r--r--lib/sidebars/groups/menus/settings_menu.rb33
-rw-r--r--lib/sidebars/organizations/menus/scope_menu.rb2
-rw-r--r--lib/sidebars/projects/menus/packages_registries_menu.rb24
-rw-r--r--lib/sidebars/projects/super_sidebar_menus/deploy_menu.rb3
-rw-r--r--lib/tasks/gitlab/cleanup.rake31
-rw-r--r--lib/tasks/gitlab/usage_data.rake34
-rw-r--r--locale/am_ET/gitlab.po3007
-rw-r--r--locale/ar_SA/gitlab.po3109
-rw-r--r--locale/as_IN/gitlab.po3007
-rw-r--r--locale/az_AZ/gitlab.po3007
-rw-r--r--locale/ba_RU/gitlab.po2980
-rw-r--r--locale/be_BY/gitlab.po3061
-rw-r--r--locale/bg/gitlab.po3007
-rw-r--r--locale/bn_BD/gitlab.po3007
-rw-r--r--locale/bn_IN/gitlab.po3007
-rw-r--r--locale/br_FR/gitlab.po3086
-rw-r--r--locale/bs_BA/gitlab.po3034
-rw-r--r--locale/ca_ES/gitlab.po3007
-rw-r--r--locale/cs_CZ/gitlab.po3061
-rw-r--r--locale/cy_GB/gitlab.po3109
-rw-r--r--locale/da_DK/gitlab.po3273
-rw-r--r--locale/de/gitlab.po3617
-rw-r--r--locale/el_GR/gitlab.po3007
-rw-r--r--locale/en_GB/gitlab.po3013
-rw-r--r--locale/eo/gitlab.po3007
-rw-r--r--locale/es/gitlab.po3139
-rw-r--r--locale/et_EE/gitlab.po3007
-rw-r--r--locale/eu_ES/gitlab.po3029
-rw-r--r--locale/fa_IR/gitlab.po3007
-rw-r--r--locale/fi_FI/gitlab.po3007
-rw-r--r--locale/fil_PH/gitlab.po3007
-rw-r--r--locale/fr/gitlab.po3381
-rw-r--r--locale/gitlab.pot1302
-rw-r--r--locale/gl_ES/gitlab.po3007
-rw-r--r--locale/he_IL/gitlab.po3061
-rw-r--r--locale/hi_IN/gitlab.po3007
-rw-r--r--locale/hr_HR/gitlab.po3034
-rw-r--r--locale/hu_HU/gitlab.po3007
-rw-r--r--locale/hy_AM/gitlab.po3007
-rw-r--r--locale/id_ID/gitlab.po2980
-rw-r--r--locale/ig_NG/gitlab.po2980
-rw-r--r--locale/is_IS/gitlab.po3007
-rw-r--r--locale/it/gitlab.po3009
-rw-r--r--locale/ja/gitlab.po3560
-rw-r--r--locale/ka_GE/gitlab.po3007
-rw-r--r--locale/kab/gitlab.po3007
-rw-r--r--locale/ko/gitlab.po3012
-rw-r--r--locale/ku_TR/gitlab.po3007
-rw-r--r--locale/ky_KG/gitlab.po3007
-rw-r--r--locale/lt_LT/gitlab.po3061
-rw-r--r--locale/mk_MK/gitlab.po3007
-rw-r--r--locale/ml_IN/gitlab.po3007
-rw-r--r--locale/mn_MN/gitlab.po3007
-rw-r--r--locale/ms_MY/gitlab.po2980
-rw-r--r--locale/nb_NO/gitlab.po3047
-rw-r--r--locale/ne_NP/gitlab.po3007
-rw-r--r--locale/nl_NL/gitlab.po3009
-rw-r--r--locale/or_IN/gitlab.po3007
-rw-r--r--locale/pa_IN/gitlab.po3007
-rw-r--r--locale/pa_PK/gitlab.po3007
-rw-r--r--locale/pl_PL/gitlab.po3065
-rw-r--r--locale/pt_BR/gitlab.po3333
-rw-r--r--locale/pt_PT/gitlab.po3011
-rw-r--r--locale/ro_RO/gitlab.po3128
-rw-r--r--locale/ru/gitlab.po3225
-rw-r--r--locale/si_LK/gitlab.po3041
-rw-r--r--locale/sk_SK/gitlab.po3061
-rw-r--r--locale/sl_SI/gitlab.po3061
-rw-r--r--locale/sq_AL/gitlab.po3007
-rw-r--r--locale/sr_CS/gitlab.po3034
-rw-r--r--locale/sr_SP/gitlab.po3034
-rw-r--r--locale/sv_SE/gitlab.po3009
-rw-r--r--locale/sw_KE/gitlab.po3007
-rw-r--r--locale/ta_IN/gitlab.po3007
-rw-r--r--locale/th_TH/gitlab.po2980
-rw-r--r--locale/ti_ER/gitlab.po59581
-rw-r--r--locale/tr_TR/gitlab.po3021
-rw-r--r--locale/uk/gitlab.po3565
-rw-r--r--locale/ur_PK/gitlab.po3007
-rw-r--r--locale/uz_UZ/gitlab.po3007
-rw-r--r--locale/vi_VN/gitlab.po2980
-rw-r--r--locale/zh_CN/gitlab.po3286
-rw-r--r--locale/zh_HK/gitlab.po2986
-rw-r--r--locale/zh_TW/gitlab.po3268
-rw-r--r--package.json99
-rw-r--r--qa/Dockerfile7
-rw-r--r--qa/Gemfile8
-rw-r--r--qa/Gemfile.lock21
-rw-r--r--qa/Rakefile2
-rw-r--r--qa/gdk/Dockerfile.gdk3
-rw-r--r--qa/qa/factories/pipelines.rb1
-rw-r--r--qa/qa/fixtures/files/one_bbin0 -> 512 bytes
-rw-r--r--qa/qa/flow/purchase.rb26
-rw-r--r--qa/qa/page/alert/auto_devops_alert.rb13
-rw-r--r--qa/qa/page/alert/storage_limit.rb11
-rw-r--r--qa/qa/page/component/deploy_token.rb26
-rw-r--r--qa/qa/page/component/visibility_setting.rb8
-rw-r--r--qa/qa/page/main/login.rb3
-rw-r--r--qa/qa/page/merge_request/show.rb4
-rw-r--r--qa/qa/page/profile/emails.rb22
-rw-r--r--qa/qa/page/profile/password.rb32
-rw-r--r--qa/qa/page/project/import/repo_by_url.rb3
-rw-r--r--qa/qa/page/project/new.rb5
-rw-r--r--qa/qa/page/project/settings/mirroring_repositories.rb4
-rw-r--r--qa/qa/page/search/results.rb16
-rw-r--r--qa/qa/page/user/show.rb4
-rw-r--r--qa/qa/resource/group.rb18
-rw-r--r--qa/qa/resource/pipeline_schedule.rb (renamed from qa/qa/resource/pipeline_schedules.rb)2
-rw-r--r--qa/qa/runtime/browser.rb15
-rw-r--r--qa/qa/runtime/env.rb4
-rw-r--r--qa/qa/service/docker_run/gitlab.rb14
-rw-r--r--qa/qa/service/docker_run/smocker.rb14
-rw-r--r--qa/qa/service/gitlab/instances.rb84
-rw-r--r--qa/qa/specs/features/api/10_govern/group_access_token_spec.rb13
-rw-r--r--qa/qa/specs/features/api/10_govern/project_access_token_spec.rb3
-rw-r--r--qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb2
-rw-r--r--qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb4
-rw-r--r--qa/qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb8
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb (renamed from qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb)39
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb48
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb5
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb6
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb6
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb4
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/rubygems_registry_spec.rb4
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb98
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/cells/demo3_spec.rb150
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/cells/login_across_multiple_cells_spec.rb50
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/cells/multiple_cells_gdk_spec.rb23
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/project/invite_group_to_project_spec.rb6
-rw-r--r--qa/qa/specs/features/sanity/feature_flags_spec.rb89
-rw-r--r--qa/qa/specs/features/sanity/framework_spec.rb21
-rw-r--r--qa/qa/specs/features/sanity/interception_spec.rb41
-rw-r--r--qa/qa/specs/features/sanity/version_spec.rb39
-rw-r--r--qa/qa/specs/helpers/context_selector.rb5
-rw-r--r--qa/qa/specs/helpers/fast_quarantine.rb70
-rw-r--r--qa/qa/specs/spec_helper.rb7
-rw-r--r--qa/qa/support/helpers/plan.rb8
-rw-r--r--qa/qa/support/helpers/project.rb15
-rw-r--r--qa/qa/tools/delete_user_projects.rb128
-rw-r--r--qa/qa/tools/reliable_report.rb102
-rw-r--r--qa/spec/README.md8
-rw-r--r--qa/spec/service/docker_run/smocker_spec.rb67
-rw-r--r--qa/spec/specs/helpers/context_selector_spec.rb21
-rw-r--r--qa/spec/specs/helpers/fast_quarantine_spec.rb34
-rw-r--r--qa/spec/tools/reliable_report_spec.rb478
-rw-r--r--rubocop/cop/gitlab/license_available_usage.rb26
-rw-r--r--rubocop/cop/rails/avoid_time_comparison.rb50
-rw-r--r--rubocop/cop/scalability/file_uploads.rb2
-rw-r--r--rubocop/feature_categories.rb2
-rw-r--r--rubocop/formatter/todo_formatter.rb2
-rw-r--r--rubocop/rubocop-ruby31.yml11
-rw-r--r--rubocop/rubocop-ruby32.yml15
-rwxr-xr-xscripts/build_qa_image1
-rwxr-xr-xscripts/download-downstream-artifact.rb121
-rwxr-xr-xscripts/failed_tests.rb2
-rwxr-xr-xscripts/feature_flags/used-feature-flags2
-rwxr-xr-xscripts/generate_rspec_pipeline.rb3
-rwxr-xr-xscripts/internal_events/cli/metric.rb11
-rwxr-xr-xscripts/lint-doc.sh3
-rwxr-xr-xscripts/lint/unused_helper_methods.rb55
-rwxr-xr-xscripts/merge-auto-explain-logs2
-rwxr-xr-xscripts/remote_development/run-smoke-test-suite.sh33
-rwxr-xr-xscripts/review_apps/automated_cleanup.rb2
-rw-r--r--scripts/review_apps/base-config.yaml2
-rw-r--r--scripts/rspec_helpers.sh13
-rwxr-xr-xscripts/setup/generate-as-if-foss-env.rb95
-rwxr-xr-xscripts/validate-monorepo-gem17
-rwxr-xr-xscripts/verify-tff-mapping11
-rw-r--r--spec/bin/feature_flag_spec.rb273
-rw-r--r--spec/components/pajamas/avatar_component_spec.rb59
-rw-r--r--spec/components/previews/pajamas/banner_component_preview.rb2
-rw-r--r--spec/components/projects/ml/models_index_component_spec.rb87
-rw-r--r--spec/components/projects/ml/show_ml_model_component_spec.rb1
-rw-r--r--spec/controllers/admin/projects_controller_spec.rb4
-rw-r--r--spec/controllers/admin/runners_controller_spec.rb4
-rw-r--r--spec/controllers/application_controller_spec.rb28
-rw-r--r--spec/controllers/concerns/issuable_collections_spec.rb1
-rw-r--r--spec/controllers/concerns/renders_commits_spec.rb8
-rw-r--r--spec/controllers/groups/labels_controller_spec.rb4
-rw-r--r--spec/controllers/groups/releases_controller_spec.rb4
-rw-r--r--spec/controllers/import/bitbucket_server_controller_spec.rb12
-rw-r--r--spec/controllers/import/bulk_imports_controller_spec.rb24
-rw-r--r--spec/controllers/import/fogbugz_controller_spec.rb35
-rw-r--r--spec/controllers/import/github_controller_spec.rb13
-rw-r--r--spec/controllers/import/manifest_controller_spec.rb30
-rw-r--r--spec/controllers/oauth/authorizations_controller_spec.rb18
-rw-r--r--spec/controllers/omniauth_callbacks_controller_spec.rb111
-rw-r--r--spec/controllers/projects/issues_controller_spec.rb12
-rw-r--r--spec/controllers/projects/labels_controller_spec.rb2
-rw-r--r--spec/controllers/projects/merge_requests/diffs_controller_spec.rb89
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb18
-rw-r--r--spec/controllers/projects/notes_controller_spec.rb6
-rw-r--r--spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb2
-rw-r--r--spec/controllers/projects/packages/packages_controller_spec.rb2
-rw-r--r--spec/controllers/projects/pipeline_schedules_controller_spec.rb4
-rw-r--r--spec/controllers/projects/pipelines_controller_spec.rb10
-rw-r--r--spec/controllers/projects/refs_controller_spec.rb17
-rw-r--r--spec/controllers/projects/security/configuration_controller_spec.rb13
-rw-r--r--spec/controllers/projects/starrers_controller_spec.rb4
-rw-r--r--spec/controllers/projects_controller_spec.rb60
-rw-r--r--spec/controllers/uploads_controller_spec.rb39
-rw-r--r--spec/db/docs_spec.rb3
-rw-r--r--spec/db/schema_spec.rb8
-rw-r--r--spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb22
-rw-r--r--spec/factories/ci/job_artifacts.rb9
-rw-r--r--spec/factories/ci/pipeline_chat_data.rb9
-rw-r--r--spec/factories/ci/pipeline_config.rb8
-rw-r--r--spec/factories/ci/reports/security/findings.rb1
-rw-r--r--spec/factories/ci/runners.rb3
-rw-r--r--spec/factories/groups.rb4
-rw-r--r--spec/factories/integrations.rb8
-rw-r--r--spec/factories/ml/model_version_metadata.rb11
-rw-r--r--spec/factories/namespace_package_settings.rb3
-rw-r--r--spec/factories/namespaces/descendants.rb12
-rw-r--r--spec/factories/organizations/organization_users.rb4
-rw-r--r--spec/factories/projects.rb33
-rw-r--r--spec/factories/users.rb13
-rw-r--r--spec/factories/users/in_product_marketing_email.rb10
-rw-r--r--spec/factories/work_items/dates_sources.rb7
-rw-r--r--spec/features/admin/admin_abuse_reports_spec.rb2
-rw-r--r--spec/features/admin/admin_appearance_spec.rb287
-rw-r--r--spec/features/admin/admin_browse_spam_logs_spec.rb2
-rw-r--r--spec/features/admin/admin_deploy_keys_spec.rb2
-rw-r--r--spec/features/admin/admin_dev_ops_reports_spec.rb2
-rw-r--r--spec/features/admin/admin_disables_git_access_protocol_spec.rb2
-rw-r--r--spec/features/admin/admin_disables_two_factor_spec.rb4
-rw-r--r--spec/features/admin/admin_groups_spec.rb2
-rw-r--r--spec/features/admin/admin_health_check_spec.rb2
-rw-r--r--spec/features/admin/admin_hook_logs_spec.rb2
-rw-r--r--spec/features/admin/admin_hooks_spec.rb2
-rw-r--r--spec/features/admin/admin_jobs_spec.rb2
-rw-r--r--spec/features/admin/admin_labels_spec.rb2
-rw-r--r--spec/features/admin/admin_manage_applications_spec.rb2
-rw-r--r--spec/features/admin/admin_mode/login_spec.rb366
-rw-r--r--spec/features/admin/admin_mode/logout_spec.rb6
-rw-r--r--spec/features/admin/admin_mode/workers_spec.rb4
-rw-r--r--spec/features/admin/admin_mode_spec.rb53
-rw-r--r--spec/features/admin/admin_projects_spec.rb2
-rw-r--r--spec/features/admin/admin_runners_spec.rb2
-rw-r--r--spec/features/admin/admin_search_settings_spec.rb2
-rw-r--r--spec/features/admin/admin_sees_background_migrations_spec.rb2
-rw-r--r--spec/features/admin/admin_sees_project_statistics_spec.rb2
-rw-r--r--spec/features/admin/admin_sees_projects_statistics_spec.rb2
-rw-r--r--spec/features/admin/admin_settings_spec.rb2
-rw-r--r--spec/features/admin/admin_system_info_spec.rb2
-rw-r--r--spec/features/admin/admin_users_impersonation_tokens_spec.rb2
-rw-r--r--spec/features/admin/admin_users_spec.rb2
-rw-r--r--spec/features/admin/admin_uses_repository_checks_spec.rb2
-rw-r--r--spec/features/admin/broadcast_messages_spec.rb2
-rw-r--r--spec/features/admin/dashboard_spec.rb2
-rw-r--r--spec/features/admin/users/admin_impersonates_user_spec.rb208
-rw-r--r--spec/features/admin/users/admin_manages_user_identities_spec.rb56
-rw-r--r--spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb52
-rw-r--r--spec/features/admin/users/admin_sees_user_spec.rb248
-rw-r--r--spec/features/admin/users/user_spec.rb537
-rw-r--r--spec/features/admin/users/users_spec.rb20
-rw-r--r--spec/features/admin_variables_spec.rb2
-rw-r--r--spec/features/boards/board_filters_spec.rb2
-rw-r--r--spec/features/boards/keyboard_shortcut_spec.rb4
-rw-r--r--spec/features/broadcast_messages_spec.rb2
-rw-r--r--spec/features/clusters/cluster_detail_page_spec.rb2
-rw-r--r--spec/features/dashboard/todos/todos_spec.rb4
-rw-r--r--spec/features/expand_collapse_diffs_spec.rb2
-rw-r--r--spec/features/explore/catalog/catalog_details_spec.rb48
-rw-r--r--spec/features/explore/catalog/catalog_releases_spec.rb111
-rw-r--r--spec/features/explore/catalog/catalog_settings_spec.rb93
-rw-r--r--spec/features/explore/catalog/catalog_spec.rb182
-rw-r--r--spec/features/gitlab_experiments_spec.rb2
-rw-r--r--spec/features/groups/clusters/user_spec.rb2
-rw-r--r--spec/features/groups/members/list_members_spec.rb2
-rw-r--r--spec/features/groups/settings/user_enables_namespace_hierarchy_cache_spec.rb58
-rw-r--r--spec/features/groups/show_spec.rb1
-rw-r--r--spec/features/groups_spec.rb19
-rw-r--r--spec/features/help_dropdown_spec.rb2
-rw-r--r--spec/features/issuables/issuable_list_spec.rb4
-rw-r--r--spec/features/issues/gfm_autocomplete_spec.rb12
-rw-r--r--spec/features/issues/issue_sidebar_spec.rb3
-rw-r--r--spec/features/merge_request/user_creates_mr_spec.rb3
-rw-r--r--spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb3
-rw-r--r--spec/features/merge_requests/admin_views_hidden_merge_requests_spec.rb2
-rw-r--r--spec/features/profiles/two_factor_auths_spec.rb29
-rw-r--r--spec/features/profiles/user_visits_profile_preferences_page_spec.rb2
-rw-r--r--spec/features/projects/branches_spec.rb4
-rw-r--r--spec/features/projects/clusters/gcp_spec.rb2
-rw-r--r--spec/features/projects/clusters/user_spec.rb2
-rw-r--r--spec/features/projects/environments/environment_spec.rb2
-rw-r--r--spec/features/projects/features_visibility_spec.rb2
-rw-r--r--spec/features/projects/members/manage_members_spec.rb5
-rw-r--r--spec/features/projects/navbar_spec.rb13
-rw-r--r--spec/features/projects/new_project_spec.rb14
-rw-r--r--spec/features/projects/settings/registry_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb89
-rw-r--r--spec/features/projects/show/clone_button_spec.rb4
-rw-r--r--spec/features/projects/show/redirects_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_git_instructions_spec.rb2
-rw-r--r--spec/features/projects/user_creates_project_spec.rb4
-rw-r--r--spec/features/projects/user_sorts_projects_spec.rb16
-rw-r--r--spec/features/projects/user_views_empty_project_spec.rb2
-rw-r--r--spec/features/projects/work_items/linked_work_items_spec.rb85
-rw-r--r--spec/features/protected_branches_spec.rb2
-rw-r--r--spec/features/search/user_searches_for_code_spec.rb14
-rw-r--r--spec/features/search/user_searches_for_comments_spec.rb8
-rw-r--r--spec/features/search/user_searches_for_commits_spec.rb8
-rw-r--r--spec/features/search/user_searches_for_issues_spec.rb8
-rw-r--r--spec/features/search/user_searches_for_merge_requests_spec.rb8
-rw-r--r--spec/features/search/user_searches_for_milestones_spec.rb8
-rw-r--r--spec/features/search/user_searches_for_projects_spec.rb8
-rw-r--r--spec/features/search/user_searches_for_users_spec.rb8
-rw-r--r--spec/features/search/user_searches_for_wiki_pages_spec.rb8
-rw-r--r--spec/features/tags/developer_views_tags_spec.rb4
-rw-r--r--spec/features/usage_stats_consent_spec.rb2
-rw-r--r--spec/features/user_settings/active_sessions_spec.rb2
-rw-r--r--spec/features/users/login_spec.rb2
-rw-r--r--spec/features/users/signup_spec.rb501
-rw-r--r--spec/finders/ci/catalog/resources/versions_finder_spec.rb22
-rw-r--r--spec/finders/ci/runner_jobs_finder_spec.rb88
-rw-r--r--spec/finders/ci/runner_managers_finder_spec.rb77
-rw-r--r--spec/finders/ci/runners_finder_spec.rb19
-rw-r--r--spec/finders/deployments_finder_spec.rb4
-rw-r--r--spec/finders/members_finder_spec.rb6
-rw-r--r--spec/finders/packages/terraform_module/packages_finder_spec.rb65
-rw-r--r--spec/finders/projects/ml/experiment_finder_spec.rb51
-rw-r--r--spec/finders/projects_finder_spec.rb4
-rw-r--r--spec/finders/releases/group_releases_finder_spec.rb6
-rw-r--r--spec/finders/resource_milestone_event_finder_spec.rb6
-rw-r--r--spec/finders/users_finder_spec.rb25
-rw-r--r--spec/fixtures/api/schemas/ml/get_latest_versions.json4
-rw-r--r--spec/fixtures/api/schemas/ml/get_model_version.json17
-rw-r--r--spec/fixtures/api/schemas/ml/search_experiments.json39
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/job.json6
-rw-r--r--spec/fixtures/api/schemas/variable.json8
-rw-r--r--spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project.json11
-rw-r--r--spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project/issues.ndjson2
-rw-r--r--spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project/milestones.ndjson2
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/total_single_event.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml1
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml1
-rw-r--r--spec/fixtures/security_reports/master/gl-common-scanning-report-with-unicode-null-character.json79
-rw-r--r--spec/frontend/admin/abuse_report/components/user_details_spec.js67
-rw-r--r--spec/frontend/admin/abuse_report/mock_data.js6
-rw-r--r--spec/frontend/alerts_settings/components/alerts_settings_form_spec.js250
-rw-r--r--spec/frontend/behaviors/secret_values_spec.js230
-rw-r--r--spec/frontend/blob/openapi/index_spec.js13
-rw-r--r--spec/frontend/boards/board_list_helper.js1
-rw-r--r--spec/frontend/boards/board_list_spec.js83
-rw-r--r--spec/frontend/boards/components/board_add_new_column_form_spec.js22
-rw-r--r--spec/frontend/boards/components/board_add_new_column_trigger_spec.js7
-rw-r--r--spec/frontend/boards/components/board_app_spec.js8
-rw-r--r--spec/frontend/boards/components/board_card_move_to_position_spec.js12
-rw-r--r--spec/frontend/boards/components/board_card_spec.js1
-rw-r--r--spec/frontend/boards/components/board_content_spec.js2
-rw-r--r--spec/frontend/boards/components/board_top_bar_spec.js1
-rw-r--r--spec/frontend/boards/components/boards_selector_spec.js1
-rw-r--r--spec/frontend/boards/components/config_toggle_spec.js7
-rw-r--r--spec/frontend/boards/mock_data.js78
-rw-r--r--spec/frontend/boards/project_select_spec.js6
-rw-r--r--spec/frontend/boards/stores/actions_spec.js2098
-rw-r--r--spec/frontend/boards/stores/getters_spec.js203
-rw-r--r--spec/frontend/boards/stores/state_spec.js11
-rw-r--r--spec/frontend/captcha/captcha_modal_spec.js63
-rw-r--r--spec/frontend/ci/catalog/components/details/ci_resource_about_spec.js4
-rw-r--r--spec/frontend/ci/catalog/components/details/ci_resource_components_spec.js4
-rw-r--r--spec/frontend/ci/catalog/components/details/ci_resource_header_spec.js2
-rw-r--r--spec/frontend/ci/catalog/components/list/catalog_search_spec.js13
-rw-r--r--spec/frontend/ci/catalog/components/list/catalog_tabs_spec.js71
-rw-r--r--spec/frontend/ci/catalog/components/list/ci_resources_list_item_spec.js4
-rw-r--r--spec/frontend/ci/catalog/components/list/ci_resources_list_spec.js97
-rw-r--r--spec/frontend/ci/catalog/components/pages/ci_resources_page_spec.js68
-rw-r--r--spec/frontend/ci/catalog/mock.js34
-rw-r--r--spec/frontend/ci/ci_environments_dropdown/ci_environments_dropdown_spec.js (renamed from spec/frontend/ci/ci_variable_list/components/ci_environments_dropdown_spec.js)65
-rw-r--r--spec/frontend/ci/ci_environments_dropdown/utils_spec.js (renamed from spec/frontend/ci/ci_variable_list/utils_spec.js)14
-rw-r--r--spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js2
-rw-r--r--spec/frontend/ci/ci_variable_list/components/ci_project_variables_spec.js2
-rw-r--r--spec/frontend/ci/ci_variable_list/components/ci_variable_drawer_spec.js8
-rw-r--r--spec/frontend/ci/ci_variable_list/components/ci_variable_settings_spec.js4
-rw-r--r--spec/frontend/ci/ci_variable_list/components/ci_variable_shared_spec.js6
-rw-r--r--spec/frontend/ci/ci_variable_list/mocks.js2
-rw-r--r--spec/frontend/ci/pipeline_details/test_reports/mock_data.js8
-rw-r--r--spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js44
-rw-r--r--spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js10
-rw-r--r--spec/frontend/ci/pipeline_editor/components/popovers/walkthrough_popover_spec.js23
-rw-r--r--spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js3
-rw-r--r--spec/frontend/ci/runner/components/runner_job_status_badge_spec.js3
-rw-r--r--spec/frontend/clusters/agents/components/show_spec.js20
-rw-r--r--spec/frontend/comment_templates/components/form_spec.js14
-rw-r--r--spec/frontend/commit/components/signature_badge_spec.js1
-rw-r--r--spec/frontend/content_editor/components/wrappers/table_cell_base_spec.js42
-rw-r--r--spec/frontend/content_editor/extensions/copy_paste_spec.js13
-rw-r--r--spec/frontend/content_editor/extensions/task_item_spec.js115
-rw-r--r--spec/frontend/content_editor/services/markdown_serializer_spec.js50
-rw-r--r--spec/frontend/content_editor/services/markdown_sourcemap_spec.js33
-rw-r--r--spec/frontend/custom_emoji/components/__snapshots__/list_spec.js.snap2
-rw-r--r--spec/frontend/custom_emoji/components/list_spec.js3
-rw-r--r--spec/frontend/deploy_keys/components/action_btn_spec.js43
-rw-r--r--spec/frontend/deploy_keys/components/app_spec.js244
-rw-r--r--spec/frontend/deploy_keys/components/key_spec.js154
-rw-r--r--spec/frontend/deploy_keys/components/keys_panel_spec.js13
-rw-r--r--spec/frontend/deploy_keys/graphql/resolvers_spec.js7
-rw-r--r--spec/frontend/diffs/components/__snapshots__/tree_list_spec.js.snap160
-rw-r--r--spec/frontend/diffs/components/app_spec.js39
-rw-r--r--spec/frontend/diffs/components/diff_file_header_spec.js27
-rw-r--r--spec/frontend/diffs/components/diff_file_spec.js146
-rw-r--r--spec/frontend/diffs/components/diff_row_utils_spec.js39
-rw-r--r--spec/frontend/diffs/components/tree_list_spec.js103
-rw-r--r--spec/frontend/diffs/store/actions_spec.js137
-rw-r--r--spec/frontend/diffs/store/getters_spec.js32
-rw-r--r--spec/frontend/diffs/store/mutations_spec.js57
-rw-r--r--spec/frontend/diffs/store/utils_spec.js11
-rw-r--r--spec/frontend/editor/schema/ci/ci_schema_spec.js22
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/negative_tests/image.yml11
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml18
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/negative_tests/services.yml14
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/auto_cancel/on_job_failure.yml (renamed from spec/frontend/editor/schema/ci/yaml_tests/negative_tests/auto_cancel_pipeline.yml)1
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/auto_cancel/on_new_commit.yml3
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/rules/auto_cancel/on_job_failure.yml7
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/rules/auto_cancel/on_new_commit.yml7
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/none.yml4
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/positive_tests/image.yml13
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml29
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/positive_tests/services.yml15
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/auto_cancel/on_job_failure.yml (renamed from spec/frontend/editor/schema/ci/yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/all.yml)1
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/auto_cancel/on_new_commit.yml3
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/rules/auto_cancel/on_job_failure.yml7
-rw-r--r--spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/rules/auto_cancel/on_new_commit.yml7
-rw-r--r--spec/frontend/emoji/components/emoji_group_spec.js1
-rw-r--r--spec/frontend/environments/helpers/k8s_integration_helper_spec.js30
-rw-r--r--spec/frontend/environments/kubernetes_status_bar_spec.js53
-rw-r--r--spec/frontend/error_tracking/components/error_details_info_spec.js7
-rw-r--r--spec/frontend/error_tracking/components/error_tracking_list_spec.js22
-rw-r--r--spec/frontend/fixtures/static/oauth_remember_me.html8
-rw-r--r--spec/frontend/groups/components/app_spec.js3
-rw-r--r--spec/frontend/groups/components/group_item_spec.js61
-rw-r--r--spec/frontend/groups/components/group_name_and_path_spec.js17
-rw-r--r--spec/frontend/groups/components/overview_tabs_spec.js16
-rw-r--r--spec/frontend/groups_projects/components/more_actions_dropdown_spec.js30
-rw-r--r--spec/frontend/ide/lib/alerts/environment_spec.js21
-rw-r--r--spec/frontend/ide/services/index_spec.js33
-rw-r--r--spec/frontend/ide/stores/actions/alert_spec.js46
-rw-r--r--spec/frontend/ide/stores/getters/alert_spec.js46
-rw-r--r--spec/frontend/ide/stores/mutations/alert_spec.js26
-rw-r--r--spec/frontend/import_entities/import_groups/components/import_status_spec.js1
-rw-r--r--spec/frontend/invite_members/components/invite_modal_base_spec.js17
-rw-r--r--spec/frontend/invite_members/utils/member_utils_spec.js16
-rw-r--r--spec/frontend/jira_connect/branches/components/project_dropdown_spec.js78
-rw-r--r--spec/frontend/jira_connect/branches/mock_data.js30
-rw-r--r--spec/frontend/kubernetes_dashboard/components/workload_table_spec.js11
-rw-r--r--spec/frontend/kubernetes_dashboard/graphql/mock_data.js246
-rw-r--r--spec/frontend/kubernetes_dashboard/graphql/resolvers/kubernetes_spec.js254
-rw-r--r--spec/frontend/kubernetes_dashboard/helpers/k8s_integration_helper_spec.js80
-rw-r--r--spec/frontend/kubernetes_dashboard/pages/cron_jobs_page_spec.js102
-rw-r--r--spec/frontend/kubernetes_dashboard/pages/jobs_page_spec.js102
-rw-r--r--spec/frontend/kubernetes_dashboard/pages/services_page_spec.js104
-rw-r--r--spec/frontend/lib/utils/number_utils_spec.js (renamed from spec/frontend/lib/utils/number_utility_spec.js)22
-rw-r--r--spec/frontend/lib/utils/secret_detection_spec.js5
-rw-r--r--spec/frontend/lib/utils/text_utility_spec.js8
-rw-r--r--spec/frontend/logo_spec.js8
-rw-r--r--spec/frontend/ml/model_registry/apps/index_ml_models_spec.js45
-rw-r--r--spec/frontend/ml/model_registry/apps/new_ml_model_spec.js119
-rw-r--r--spec/frontend/ml/model_registry/apps/show_ml_model_spec.js11
-rw-r--r--spec/frontend/ml/model_registry/components/actions_dropdown_spec.js39
-rw-r--r--spec/frontend/ml/model_registry/components/candidate_list_spec.js94
-rw-r--r--spec/frontend/ml/model_registry/components/model_version_list_spec.js90
-rw-r--r--spec/frontend/ml/model_registry/components/searchable_list_spec.js170
-rw-r--r--spec/frontend/ml/model_registry/graphql_mock_data.js24
-rw-r--r--spec/frontend/ml/model_registry/mock_data.js1
-rw-r--r--spec/frontend/oauth_remember_me_spec.js8
-rw-r--r--spec/frontend/observability/client_spec.js32
-rw-r--r--spec/frontend/organizations/new/components/app_spec.js27
-rw-r--r--spec/frontend/organizations/settings/general/components/organization_settings_spec.js71
-rw-r--r--spec/frontend/organizations/shared/components/groups_view_spec.js10
-rw-r--r--spec/frontend/organizations/shared/components/new_edit_form_spec.js71
-rw-r--r--spec/frontend/organizations/shared/components/projects_view_spec.js10
-rw-r--r--spec/frontend/organizations/show/components/app_spec.js7
-rw-r--r--spec/frontend/organizations/show/components/organization_description_spec.js46
-rw-r--r--spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js1
-rw-r--r--spec/frontend/packages_and_registries/package_registry/components/list/__snapshots__/package_list_row_spec.js.snap8
-rw-r--r--spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js2
-rw-r--r--spec/frontend/packages_and_registries/settings/group/components/group_settings_app_spec.js14
-rw-r--r--spec/frontend/packages_and_registries/settings/project/settings/components/packages_protection_rules_spec.js97
-rw-r--r--spec/frontend/packages_and_registries/settings/project/settings/components/registry_settings_app_spec.js19
-rw-r--r--spec/frontend/packages_and_registries/settings/project/settings/mock_data.js33
-rw-r--r--spec/frontend/pages/import/bulk_imports/history/components/bulk_imports_history_app_spec.js112
-rw-r--r--spec/frontend/pages/projects/shared/permissions/components/ci_catalog_settings_spec.js6
-rw-r--r--spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js6
-rw-r--r--spec/frontend/performance_bar/components/performance_bar_app_spec.js3
-rw-r--r--spec/frontend/performance_bar/components/request_warning_spec.js23
-rw-r--r--spec/frontend/profile/preferences/components/profile_preferences_spec.js15
-rw-r--r--spec/frontend/projects/commit/components/commit_comments_button_spec.js42
-rw-r--r--spec/frontend/projects/new/components/new_project_url_select_spec.js69
-rw-r--r--spec/frontend/projects/settings/components/new_access_dropdown_spec.js23
-rw-r--r--spec/frontend/projects/settings/repository/branch_rules/app_spec.js123
-rw-r--r--spec/frontend/projects/settings/repository/branch_rules/mock_data.js14
-rw-r--r--spec/frontend/releases/__snapshots__/util_spec.js.snap8
-rw-r--r--spec/frontend/releases/components/app_edit_new_spec.js19
-rw-r--r--spec/frontend/releases/components/app_index_spec.js44
-rw-r--r--spec/frontend/releases/mock_data.js11
-rw-r--r--spec/frontend/releases/stores/modules/detail/actions_spec.js52
-rw-r--r--spec/frontend/releases/stores/modules/detail/getters_spec.js15
-rw-r--r--spec/frontend/search/store/actions_spec.js25
-rw-r--r--spec/frontend/security_configuration/components/feature_card_spec.js2
-rw-r--r--spec/frontend/security_configuration/mock_data.js79
-rw-r--r--spec/frontend/security_configuration/utils_spec.js109
-rw-r--r--spec/frontend/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view_spec.js45
-rw-r--r--spec/frontend/sidebar/components/labels/labels_select_widget/mock_data.js24
-rw-r--r--spec/frontend/sidebar/components/mock_data.js24
-rw-r--r--spec/frontend/sidebar/components/sidebar_color_picker_spec.js58
-rw-r--r--spec/frontend/super_sidebar/components/create_menu_spec.js1
-rw-r--r--spec/frontend/super_sidebar/components/user_menu_spec.js58
-rw-r--r--spec/frontend/super_sidebar/mock_data.js101
-rw-r--r--spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js51
-rw-r--r--spec/frontend/usage_quotas/storage/components/storage_usage_overview_card_spec.js44
-rw-r--r--spec/frontend/usage_quotas/storage/components/storage_usage_statistics_spec.js43
-rw-r--r--spec/frontend/usage_quotas/storage/mock_data.js2
-rw-r--r--spec/frontend/vue_merge_request_widget/components/mr_widget_rebase_spec.js16
-rw-r--r--spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js49
-rw-r--r--spec/frontend/vue_merge_request_widget/mr_widget_options_spec.js4
-rw-r--r--spec/frontend/vue_shared/components/file_row_spec.js13
-rw-r--r--spec/frontend/vue_shared/components/filtered_search_bar/tokens/daterange_token_spec.js170
-rw-r--r--spec/frontend/vue_shared/components/gl_countdown_spec.js4
-rw-r--r--spec/frontend/vue_shared/components/groups_list/groups_list_item_spec.js5
-rw-r--r--spec/frontend/vue_shared/components/groups_list/groups_list_spec.js7
-rw-r--r--spec/frontend/vue_shared/components/help_page_link/help_page_link_spec.js51
-rw-r--r--spec/frontend/vue_shared/components/markdown/comment_templates_dropdown_spec.js6
-rw-r--r--spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js17
-rw-r--r--spec/frontend/vue_shared/components/projects_list/projects_list_item_spec.js3
-rw-r--r--spec/frontend/vue_shared/components/projects_list/projects_list_spec.js7
-rw-r--r--spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js33
-rw-r--r--spec/frontend/vue_shared/components/segmented_control_button_group_spec.js1
-rw-r--r--spec/frontend/vue_shared/components/source_viewer/source_viewer_new_spec.js18
-rw-r--r--spec/frontend/vue_shared/components/upload_dropzone/avatar_upload_dropzone_spec.js116
-rw-r--r--spec/frontend/vue_shared/components/user_select_spec.js45
-rw-r--r--spec/frontend/vue_shared/issuable/list/components/issuable_item_spec.js79
-rw-r--r--spec/frontend/work_items/components/notes/work_item_comment_form_spec.js25
-rw-r--r--spec/frontend/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit_spec.js161
-rw-r--r--spec/frontend/work_items/components/shared/work_item_token_input_spec.js238
-rw-r--r--spec/frontend/work_items/components/work_item_assignees_spec.js3
-rw-r--r--spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js26
-rw-r--r--spec/frontend/work_items/components/work_item_description_rendered_spec.js15
-rw-r--r--spec/frontend/work_items/components/work_item_description_spec.js36
-rw-r--r--spec/frontend/work_items/components/work_item_detail_spec.js84
-rw-r--r--spec/frontend/work_items/components/work_item_links/work_item_links_form_spec.js26
-rw-r--r--spec/frontend/work_items/components/work_item_milestone_inline_spec.js (renamed from spec/frontend/work_items/components/work_item_milestone_spec.js)20
-rw-r--r--spec/frontend/work_items/components/work_item_milestone_with_edit_spec.js209
-rw-r--r--spec/frontend/work_items/components/work_item_parent_inline_spec.js6
-rw-r--r--spec/frontend/work_items/components/work_item_parent_with_edit_spec.js4
-rw-r--r--spec/frontend/work_items/components/work_item_state_toggle_spec.js28
-rw-r--r--spec/frontend/work_items/components/work_item_title_with_edit_spec.js59
-rw-r--r--spec/frontend/work_items/mock_data.js72
-rw-r--r--spec/frontend/work_items/utils_spec.js24
-rw-r--r--spec/graphql/graphql_triggers_spec.rb14
-rw-r--r--spec/graphql/mutations/namespace/package_settings/update_spec.rb12
-rw-r--r--spec/graphql/resolvers/ci/catalog/resources/versions_resolver_spec.rb20
-rw-r--r--spec/graphql/resolvers/ci/group_runners_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/ci/project_runners_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/ci/runners_resolver_spec.rb10
-rw-r--r--spec/graphql/resolvers/concerns/resolves_groups_spec.rb11
-rw-r--r--spec/graphql/resolvers/container_repository_tags_resolver_spec.rb14
-rw-r--r--spec/graphql/resolvers/design_management/versions_resolver_spec.rb6
-rw-r--r--spec/graphql/resolvers/group_labels_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/labels_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/ml/find_models_resolver_spec.rb47
-rw-r--r--spec/graphql/resolvers/users_resolver_spec.rb36
-rw-r--r--spec/graphql/types/ci/catalog/resources/component_type_spec.rb2
-rw-r--r--spec/graphql/types/ci/catalog/resources/version_type_spec.rb5
-rw-r--r--spec/graphql/types/ci/inherited_ci_variable_type_spec.rb9
-rw-r--r--spec/graphql/types/ci/instance_variable_type_spec.rb4
-rw-r--r--spec/graphql/types/commit_signatures/verification_status_enum_spec.rb8
-rw-r--r--spec/graphql/types/container_repository_referrer_type_spec.rb17
-rw-r--r--spec/graphql/types/container_repository_tag_type_spec.rb3
-rw-r--r--spec/graphql/types/current_user_todos_type_spec.rb6
-rw-r--r--spec/graphql/types/group_type_spec.rb3
-rw-r--r--spec/graphql/types/merge_request_type_spec.rb1
-rw-r--r--spec/graphql/types/ml/model_links_type_spec.rb11
-rw-r--r--spec/graphql/types/ml/model_type_spec.rb2
-rw-r--r--spec/graphql/types/ml/model_version_links_type_spec.rb2
-rw-r--r--spec/graphql/types/ml/models_order_by_enum_spec.rb11
-rw-r--r--spec/graphql/types/namespace/package_settings_type_spec.rb2
-rw-r--r--spec/graphql/types/namespace_type_spec.rb2
-rw-r--r--spec/graphql/types/organizations/organization_type_spec.rb4
-rw-r--r--spec/graphql/types/permission_types/issue_spec.rb2
-rw-r--r--spec/graphql/types/project_type_spec.rb10
-rw-r--r--spec/graphql/types/subscription_type_spec.rb1
-rw-r--r--spec/graphql/types/work_items/widgets/notes_type_spec.rb2
-rw-r--r--spec/helpers/application_settings_helper_spec.rb1
-rw-r--r--spec/helpers/avatars_helper_spec.rb15
-rw-r--r--spec/helpers/ci/builds_helper_spec.rb22
-rw-r--r--spec/helpers/ci/catalog/resources_helper_spec.rb12
-rw-r--r--spec/helpers/ci/status_helper_spec.rb13
-rw-r--r--spec/helpers/ci/variables_helper_spec.rb17
-rw-r--r--spec/helpers/environments_helper_spec.rb24
-rw-r--r--spec/helpers/groups_helper_spec.rb5
-rw-r--r--spec/helpers/ide_helper_spec.rb33
-rw-r--r--spec/helpers/listbox_helper_spec.rb1
-rw-r--r--spec/helpers/markup_helper_spec.rb6
-rw-r--r--spec/helpers/nav_helper_spec.rb64
-rw-r--r--spec/helpers/organizations/organization_helper_spec.rb24
-rw-r--r--spec/helpers/search_helper_spec.rb4
-rw-r--r--spec/helpers/sessions_helper_spec.rb36
-rw-r--r--spec/helpers/sidebars_helper_spec.rb22
-rw-r--r--spec/helpers/time_zone_helper_spec.rb23
-rw-r--r--spec/helpers/webpack_helper_spec.rb5
-rw-r--r--spec/initializers/session_store_spec.rb4
-rw-r--r--spec/lib/api/entities/bulk_imports/entity_failure_spec.rb14
-rw-r--r--spec/lib/api/entities/diff_spec.rb3
-rw-r--r--spec/lib/api/entities/group_spec.rb24
-rw-r--r--spec/lib/api/entities/merge_request_basic_spec.rb2
-rw-r--r--spec/lib/api/helpers_spec.rb90
-rw-r--r--spec/lib/api/ml/mlflow/api_helpers_spec.rb52
-rw-r--r--spec/lib/atlassian/jira_connect/client_spec.rb6
-rw-r--r--spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb6
-rw-r--r--spec/lib/backup/database_model_spec.rb185
-rw-r--r--spec/lib/backup/repositories_spec.rb8
-rw-r--r--spec/lib/banzai/filter/custom_emoji_filter_spec.rb4
-rw-r--r--spec/lib/banzai/filter/issuable_reference_expansion_filter_spec.rb16
-rw-r--r--spec/lib/banzai/filter/markdown_engines/base_spec.rb6
-rw-r--r--spec/lib/banzai/filter/markdown_engines/glfm_markdown_spec.rb17
-rw-r--r--spec/lib/banzai/filter/markdown_filter_spec.rb24
-rw-r--r--spec/lib/banzai/filter/references/alert_reference_filter_spec.rb10
-rw-r--r--spec/lib/banzai/filter/references/commit_reference_filter_spec.rb10
-rw-r--r--spec/lib/banzai/filter/references/design_reference_filter_spec.rb4
-rw-r--r--spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb4
-rw-r--r--spec/lib/banzai/filter/references/issue_reference_filter_spec.rb4
-rw-r--r--spec/lib/banzai/filter/references/label_reference_filter_spec.rb4
-rw-r--r--spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb4
-rw-r--r--spec/lib/banzai/filter/references/project_reference_filter_spec.rb8
-rw-r--r--spec/lib/banzai/filter/references/reference_cache_spec.rb10
-rw-r--r--spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb10
-rw-r--r--spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb4
-rw-r--r--spec/lib/banzai/issuable_extractor_spec.rb4
-rw-r--r--spec/lib/banzai/pipeline/gfm_pipeline_spec.rb15
-rw-r--r--spec/lib/banzai/reference_parser/snippet_parser_spec.rb4
-rw-r--r--spec/lib/click_house/iterator_spec.rb10
-rw-r--r--spec/lib/container_registry/gitlab_api_client_spec.rb20
-rw-r--r--spec/lib/container_registry/tag_spec.rb25
-rw-r--r--spec/lib/feature/definition_spec.rb6
-rw-r--r--spec/lib/gitlab/application_setting_fetcher_spec.rb224
-rw-r--r--spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb29
-rw-r--r--spec/lib/gitlab/auth_spec.rb10
-rw-r--r--spec/lib/gitlab/background_migration/backfill_issue_search_data_namespace_id_spec.rb78
-rw-r--r--spec/lib/gitlab/background_migration/backfill_owasp_top_ten_of_vulnerability_reads_spec.rb225
-rw-r--r--spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_artifact_spec.rb94
-rw-r--r--spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_chat_data_spec.rb67
-rw-r--r--spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_config_spec.rb73
-rw-r--r--spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_metadata_spec.rb73
-rw-r--r--spec/lib/gitlab/background_migration/backfill_vs_code_settings_version_spec.rb84
-rw-r--r--spec/lib/gitlab/background_migration/drop_vulnerabilities_without_finding_id_spec.rb124
-rw-r--r--spec/lib/gitlab/bitbucket_server_import/importers/pull_request_importer_spec.rb14
-rw-r--r--spec/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer_spec.rb81
-rw-r--r--spec/lib/gitlab/bitbucket_server_import/importers/users_importer_spec.rb7
-rw-r--r--spec/lib/gitlab/bitbucket_server_import/mentions_converter_spec.rb118
-rw-r--r--spec/lib/gitlab/bitbucket_server_import/user_from_mention_spec.rb67
-rw-r--r--spec/lib/gitlab/cache/import/caching_spec.rb52
-rw-r--r--spec/lib/gitlab/checks/changes_access_spec.rb6
-rw-r--r--spec/lib/gitlab/checks/diff_check_spec.rb2
-rw-r--r--spec/lib/gitlab/checks/lfs_check_spec.rb2
-rw-r--r--spec/lib/gitlab/checks/lfs_integrity_spec.rb2
-rw-r--r--spec/lib/gitlab/ci/build/image_spec.rb4
-rw-r--r--spec/lib/gitlab/ci/build/policy/changes_spec.rb2
-rw-r--r--spec/lib/gitlab/ci/build/rules_spec.rb12
-rw-r--r--spec/lib/gitlab/ci/config/entry/auto_cancel_spec.rb2
-rw-r--r--spec/lib/gitlab/ci/config/entry/bridge_spec.rb6
-rw-r--r--spec/lib/gitlab/ci/config/entry/image_spec.rb64
-rw-r--r--spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb2
-rw-r--r--spec/lib/gitlab/ci/config/entry/needs_spec.rb21
-rw-r--r--spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb57
-rw-r--r--spec/lib/gitlab/ci/config/entry/rules_spec.rb8
-rw-r--r--spec/lib/gitlab/ci/config/entry/service_spec.rb47
-rw-r--r--spec/lib/gitlab/ci/config/entry/workflow_spec.rb67
-rw-r--r--spec/lib/gitlab/ci/config/external/context_spec.rb85
-rw-r--r--spec/lib/gitlab/ci/config/external/file/component_spec.rb10
-rw-r--r--spec/lib/gitlab/ci/config/external/file/remote_spec.rb34
-rw-r--r--spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb225
-rw-r--r--spec/lib/gitlab/ci/parsers/sbom/cyclonedx_spec.rb50
-rw-r--r--spec/lib/gitlab/ci/parsers/sbom/source/trivy_spec.rb25
-rw-r--r--spec/lib/gitlab/ci/parsers/security/common_spec.rb28
-rw-r--r--spec/lib/gitlab/ci/pipeline/chain/command_spec.rb2
-rw-r--r--spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb12
-rw-r--r--spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb49
-rw-r--r--spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb72
-rw-r--r--spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb15
-rw-r--r--spec/lib/gitlab/ci/reports/security/report_spec.rb4
-rw-r--r--spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb45
-rw-r--r--spec/lib/gitlab/ci/yaml_processor/test_cases/include_spec.rb80
-rw-r--r--spec/lib/gitlab/ci/yaml_processor/test_cases/interruptible_spec.rb5
-rw-r--r--spec/lib/gitlab/ci/yaml_processor_spec.rb32
-rw-r--r--spec/lib/gitlab/cleanup/orphan_job_artifact_final_objects/job_artifact_object_spec.rb90
-rw-r--r--spec/lib/gitlab/cleanup/orphan_job_artifact_final_objects_cleaner_spec.rb263
-rw-r--r--spec/lib/gitlab/current_settings_spec.rb209
-rw-r--r--spec/lib/gitlab/data_builder/pipeline_spec.rb8
-rw-r--r--spec/lib/gitlab/data_builder/push_spec.rb4
-rw-r--r--spec/lib/gitlab/database/click_house_client_spec.rb8
-rw-r--r--spec/lib/gitlab/database/dictionary_spec.rb52
-rw-r--r--spec/lib/gitlab/database/gitlab_schema_spec.rb56
-rw-r--r--spec/lib/gitlab/database/migration_helpers/v2_spec.rb83
-rw-r--r--spec/lib/gitlab/database/namespace_each_batch_spec.rb174
-rw-r--r--spec/lib/gitlab/database/no_new_tables_with_gitlab_main_schema_spec.rb3
-rw-r--r--spec/lib/gitlab/database/partitioning/int_range_partition_spec.rb173
-rw-r--r--spec/lib/gitlab/database/partitioning/int_range_strategy_spec.rb317
-rw-r--r--spec/lib/gitlab/database/partitioning/list/convert_table_spec.rb468
-rw-r--r--spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb4
-rw-r--r--spec/lib/gitlab/database/partitioning_migration_helpers/uniqueness_helpers_spec.rb71
-rw-r--r--spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb2
-rw-r--r--spec/lib/gitlab/database/sharding_key_spec.rb43
-rw-r--r--spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb16
-rw-r--r--spec/lib/gitlab/dependency_linker_spec.rb13
-rw-r--r--spec/lib/gitlab/diff/file_collection/paginated_merge_request_diff_spec.rb23
-rw-r--r--spec/lib/gitlab/diff/file_spec.rb2
-rw-r--r--spec/lib/gitlab/diff/highlight_spec.rb162
-rw-r--r--spec/lib/gitlab/diff/rendered/notebook/diff_file_helper_spec.rb2
-rw-r--r--spec/lib/gitlab/error_tracking_spec.rb32
-rw-r--r--spec/lib/gitlab/event_store/event_spec.rb7
-rw-r--r--spec/lib/gitlab/git/changed_path_spec.rb31
-rw-r--r--spec/lib/gitlab/git/commit_spec.rb2
-rw-r--r--spec/lib/gitlab/git/compare_spec.rb47
-rw-r--r--spec/lib/gitlab/git/push_spec.rb14
-rw-r--r--spec/lib/gitlab/git/repository_cleaner_spec.rb4
-rw-r--r--spec/lib/gitlab/git/repository_spec.rb156
-rw-r--r--spec/lib/gitlab/git/tag_spec.rb2
-rw-r--r--spec/lib/gitlab/git/tree_spec.rb12
-rw-r--r--spec/lib/gitlab/git_access_project_spec.rb4
-rw-r--r--spec/lib/gitlab/git_access_spec.rb12
-rw-r--r--spec/lib/gitlab/git_spec.rb2
-rw-r--r--spec/lib/gitlab/gitaly_client/analysis_service_spec.rb137
-rw-r--r--spec/lib/gitlab/gitaly_client/commit_service_spec.rb30
-rw-r--r--spec/lib/gitlab/github_gists_import/importer/gists_importer_spec.rb4
-rw-r--r--spec/lib/gitlab/github_import/attachments_downloader_spec.rb46
-rw-r--r--spec/lib/gitlab/github_import/events_cache_spec.rb79
-rw-r--r--spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb67
-rw-r--r--spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb68
-rw-r--r--spec/lib/gitlab/github_import/importer/attachments/notes_importer_spec.rb79
-rw-r--r--spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb67
-rw-r--r--spec/lib/gitlab/github_import/importer/collaborators_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/events/commented_spec.rb69
-rw-r--r--spec/lib/gitlab/github_import/importer/events/merged_spec.rb27
-rw-r--r--spec/lib/gitlab/github_import/importer/events/reviewed_spec.rb85
-rw-r--r--spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb12
-rw-r--r--spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb4
-rw-r--r--spec/lib/gitlab/github_import/importer/issues_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/lfs_objects_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/notes_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb4
-rw-r--r--spec/lib/gitlab/github_import/importer/pull_requests/review_importer_spec.rb7
-rw-r--r--spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb6
-rw-r--r--spec/lib/gitlab/github_import/importer/pull_requests/reviews_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/replay_events_importer_spec.rb139
-rw-r--r--spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb211
-rw-r--r--spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb2
-rw-r--r--spec/lib/gitlab/github_import/markdown_text_spec.rb6
-rw-r--r--spec/lib/gitlab/github_import/parallel_scheduling_spec.rb85
-rw-r--r--spec/lib/gitlab/github_import/representation/issue_event_spec.rb4
-rw-r--r--spec/lib/gitlab/github_import/representation/note_text_spec.rb34
-rw-r--r--spec/lib/gitlab/github_import/representation/replay_event_spec.rb24
-rw-r--r--spec/lib/gitlab/github_import/settings_spec.rb52
-rw-r--r--spec/lib/gitlab/github_import/user_finder_spec.rb42
-rw-r--r--spec/lib/gitlab/gon_helper_spec.rb1
-rw-r--r--spec/lib/gitlab/highlight_spec.rb29
-rw-r--r--spec/lib/gitlab/http_spec.rb51
-rw-r--r--spec/lib/gitlab/import/page_counter_spec.rb (renamed from spec/lib/gitlab/github_import/page_counter_spec.rb)4
-rw-r--r--spec/lib/gitlab/import_export/all_models.yml9
-rw-r--r--spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb37
-rw-r--r--spec/lib/gitlab/import_export/import_failure_service_spec.rb3
-rw-r--r--spec/lib/gitlab/import_export/project/tree_restorer_spec.rb18
-rw-r--r--spec/lib/gitlab/import_export/safe_model_attributes.yml7
-rw-r--r--spec/lib/gitlab/instrumentation/redis_client_middleware_spec.rb224
-rw-r--r--spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb10
-rw-r--r--spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb16
-rw-r--r--spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb16
-rw-r--r--spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb8
-rw-r--r--spec/lib/gitlab/legacy_http_spec.rb448
-rw-r--r--spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb6
-rw-r--r--spec/lib/gitlab/namespaced_session_store_spec.rb25
-rw-r--r--spec/lib/gitlab/pagination/keyset/iterator_spec.rb6
-rw-r--r--spec/lib/gitlab/pagination/keyset/paginator_spec.rb25
-rw-r--r--spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb2
-rw-r--r--spec/lib/gitlab/quick_actions/extractor_spec.rb8
-rw-r--r--spec/lib/gitlab/redis/cluster_util_spec.rb13
-rw-r--r--spec/lib/gitlab/redis/cross_slot_spec.rb12
-rw-r--r--spec/lib/gitlab/redis/multi_store_spec.rb210
-rw-r--r--spec/lib/gitlab/redis/sessions_spec.rb21
-rw-r--r--spec/lib/gitlab/redis/shared_state_spec.rb1
-rw-r--r--spec/lib/gitlab/runtime_spec.rb4
-rw-r--r--spec/lib/gitlab/security/scan_configuration_spec.rb101
-rw-r--r--spec/lib/gitlab/sidekiq_config_spec.rb3
-rw-r--r--spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb2
-rw-r--r--spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb4
-rw-r--r--spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb7
-rw-r--r--spec/lib/gitlab/sidekiq_status_spec.rb2
-rw-r--r--spec/lib/gitlab/ssh/commit_spec.rb2
-rw-r--r--spec/lib/gitlab/ssh/signature_spec.rb33
-rw-r--r--spec/lib/gitlab/themes_spec.rb14
-rw-r--r--spec/lib/gitlab/tracking/destinations/database_events_snowplow_spec.rb140
-rw-r--r--spec/lib/gitlab/tracking/event_definition_spec.rb10
-rw-r--r--spec/lib/gitlab/tracking/event_definition_validate_all_spec.rb12
-rw-r--r--spec/lib/gitlab/tracking_spec.rb32
-rw-r--r--spec/lib/gitlab/usage/metric_definition_spec.rb56
-rw-r--r--spec/lib/gitlab/usage/metric_definition_validate_all_spec.rb14
-rw-r--r--spec/lib/gitlab/usage/service_ping_report_spec.rb5
-rw-r--r--spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb12
-rw-r--r--spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb58
-rw-r--r--spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb8
-rw-r--r--spec/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter_spec.rb8
-rw-r--r--spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb8
-rw-r--r--spec/lib/integrations/google_cloud_platform/artifact_registry/client_spec.rb11
-rw-r--r--spec/lib/sidebars/organizations/menus/scope_menu_spec.rb5
-rw-r--r--spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb29
-rw-r--r--spec/lib/sidebars/projects/super_sidebar_menus/deploy_menu_spec.rb3
-rw-r--r--spec/mailers/notify_spec.rb103
-rw-r--r--spec/migrations/20230228142350_add_notifications_work_item_widget_spec.rb4
-rw-r--r--spec/migrations/20230317162059_add_current_user_todos_work_item_widget_spec.rb4
-rw-r--r--spec/migrations/20230323101138_add_award_emoji_work_item_widget_spec.rb4
-rw-r--r--spec/migrations/20230807083334_add_linked_items_work_item_widget_spec.rb6
-rw-r--r--spec/migrations/20231207145335_cleanup_group_level_work_items_spec.rb216
-rw-r--r--spec/migrations/20231211154654_add_work_items_rolledup_dates_widget_spec.rb10
-rw-r--r--spec/migrations/20231212135235_queue_backfill_vs_code_settings_version_spec.rb26
-rw-r--r--spec/migrations/20231214111617_queue_backfill_owasp_top_ten_of_vulnerability_reads_spec.rb26
-rw-r--r--spec/migrations/20231218092401_queue_backfill_partition_id_ci_pipeline_chat_data_spec.rb56
-rw-r--r--spec/migrations/20231221223259_queue_drop_vulnerabilities_without_finding_id_spec.rb26
-rw-r--r--spec/migrations/20240105144908_queue_backfill_issue_search_data_namespace_id_spec.rb26
-rw-r--r--spec/migrations/20240108082419_queue_backfill_partition_id_ci_pipeline_metadata_spec.rb56
-rw-r--r--spec/migrations/20240108121335_copy_internal_ids_for_epics_and_issues_usage_on_groups_spec.rb69
-rw-r--r--spec/migrations/20240108185335_backfill_internal_ids_with_issues_usage_for_epics_spec.rb52
-rw-r--r--spec/migrations/20240109090354_queue_backfill_partition_id_ci_pipeline_artifact_spec.rb56
-rw-r--r--spec/migrations/20240110090352_queue_backfill_partition_id_ci_pipeline_config_spec.rb56
-rw-r--r--spec/migrations/sent_notifications_self_install_id_swap_spec.rb81
-rw-r--r--spec/models/analytics/cycle_analytics/aggregation_spec.rb57
-rw-r--r--spec/models/analytics/cycle_analytics/stage_spec.rb16
-rw-r--r--spec/models/application_setting_spec.rb341
-rw-r--r--spec/models/bulk_imports/entity_spec.rb6
-rw-r--r--spec/models/bulk_imports/failure_spec.rb16
-rw-r--r--spec/models/ci/build_spec.rb143
-rw-r--r--spec/models/ci/catalog/resources/version_spec.rb30
-rw-r--r--spec/models/ci/instance_variable_spec.rb6
-rw-r--r--spec/models/ci/namespace_mirror_spec.rb10
-rw-r--r--spec/models/ci/pipeline_artifact_spec.rb17
-rw-r--r--spec/models/ci/pipeline_chat_data_spec.rb27
-rw-r--r--spec/models/ci/pipeline_config_spec.rb17
-rw-r--r--spec/models/ci/pipeline_metadata_spec.rb17
-rw-r--r--spec/models/ci/pipeline_spec.rb38
-rw-r--r--spec/models/ci/processable_spec.rb2
-rw-r--r--spec/models/ci/project_mirror_spec.rb16
-rw-r--r--spec/models/ci/runner_manager_spec.rb343
-rw-r--r--spec/models/ci/runner_spec.rb171
-rw-r--r--spec/models/clusters/cluster_spec.rb6
-rw-r--r--spec/models/commit_collection_spec.rb2
-rw-r--r--spec/models/commit_status_spec.rb2
-rw-r--r--spec/models/concerns/commit_signature_spec.rb22
-rw-r--r--spec/models/concerns/database_event_tracking_spec.rb85
-rw-r--r--spec/models/concerns/routable_spec.rb26
-rw-r--r--spec/models/container_registry/protection/rule_spec.rb190
-rw-r--r--spec/models/container_repository_spec.rb39
-rw-r--r--spec/models/deployment_spec.rb16
-rw-r--r--spec/models/design_management/design_spec.rb2
-rw-r--r--spec/models/group_spec.rb121
-rw-r--r--spec/models/integrations/chat_message/push_message_spec.rb8
-rw-r--r--spec/models/integrations/diffblue_cover_spec.rb74
-rw-r--r--spec/models/integrations/teamcity_spec.rb2
-rw-r--r--spec/models/issue_email_participant_spec.rb16
-rw-r--r--spec/models/label_spec.rb14
-rw-r--r--spec/models/member_spec.rb288
-rw-r--r--spec/models/members/group_member_spec.rb61
-rw-r--r--spec/models/merge_request/metrics_spec.rb8
-rw-r--r--spec/models/merge_request_diff_spec.rb122
-rw-r--r--spec/models/merge_request_spec.rb60
-rw-r--r--spec/models/ml/candidate_metric_spec.rb2
-rw-r--r--spec/models/ml/candidate_param_spec.rb2
-rw-r--r--spec/models/ml/experiment_spec.rb14
-rw-r--r--spec/models/ml/model_metadata_spec.rb2
-rw-r--r--spec/models/ml/model_version_metadata_spec.rb29
-rw-r--r--spec/models/ml/model_version_spec.rb29
-rw-r--r--spec/models/namespace/package_setting_spec.rb69
-rw-r--r--spec/models/namespace_spec.rb29
-rw-r--r--spec/models/namespaces/descendants_spec.rb68
-rw-r--r--spec/models/namespaces/traversal/cached_spec.rb104
-rw-r--r--spec/models/note_diff_file_spec.rb2
-rw-r--r--spec/models/note_spec.rb4
-rw-r--r--spec/models/onboarding/completion_spec.rb40
-rw-r--r--spec/models/organizations/organization_detail_spec.rb9
-rw-r--r--spec/models/organizations/organization_spec.rb28
-rw-r--r--spec/models/organizations/organization_user_spec.rb37
-rw-r--r--spec/models/packages/protection/rule_spec.rb46
-rw-r--r--spec/models/preloaders/commit_status_preloader_spec.rb4
-rw-r--r--spec/models/project_authorizations/changes_spec.rb100
-rw-r--r--spec/models/project_spec.rb60
-rw-r--r--spec/models/project_statistics_spec.rb18
-rw-r--r--spec/models/project_team_spec.rb54
-rw-r--r--spec/models/projects/project_topic_spec.rb1
-rw-r--r--spec/models/projects/topic_spec.rb15
-rw-r--r--spec/models/release_spec.rb19
-rw-r--r--spec/models/repository_spec.rb6
-rw-r--r--spec/models/resource_label_event_spec.rb62
-rw-r--r--spec/models/route_spec.rb16
-rw-r--r--spec/models/time_tracking/timelog_category_spec.rb3
-rw-r--r--spec/models/timelog_spec.rb1
-rw-r--r--spec/models/user_spec.rb225
-rw-r--r--spec/models/users/in_product_marketing_email_spec.rb137
-rw-r--r--spec/models/users/phone_number_validation_spec.rb165
-rw-r--r--spec/models/work_items/hierarchy_restriction_spec.rb20
-rw-r--r--spec/models/work_items/widget_definition_spec.rb4
-rw-r--r--spec/policies/global_policy_spec.rb16
-rw-r--r--spec/policies/organizations/organization_policy_spec.rb18
-rw-r--r--spec/policies/project_policy_spec.rb10
-rw-r--r--spec/presenters/blob_presenter_spec.rb16
-rw-r--r--spec/presenters/blobs/notebook_presenter_spec.rb2
-rw-r--r--spec/presenters/projects/security/configuration_presenter_spec.rb1
-rw-r--r--spec/requests/api/ci/jobs_spec.rb9
-rw-r--r--spec/requests/api/ci/pipeline_schedules_spec.rb6
-rw-r--r--spec/requests/api/ci/pipelines_spec.rb12
-rw-r--r--spec/requests/api/ci/runner/jobs_request_post_spec.rb6
-rw-r--r--spec/requests/api/ci/runner/yamls/image-executor_opts-user.yml25
-rw-r--r--spec/requests/api/ci/runner/yamls/service-executor_opts-user.yml27
-rw-r--r--spec/requests/api/ci/runners_spec.rb281
-rw-r--r--spec/requests/api/commits_spec.rb10
-rw-r--r--spec/requests/api/deploy_keys_spec.rb4
-rw-r--r--spec/requests/api/deployments_spec.rb4
-rw-r--r--spec/requests/api/draft_notes_spec.rb4
-rw-r--r--spec/requests/api/feature_flags_spec.rb4
-rw-r--r--spec/requests/api/graphql/achievements/user_achievements_query_spec.rb6
-rw-r--r--spec/requests/api/graphql/boards/board_list_issues_query_spec.rb4
-rw-r--r--spec/requests/api/graphql/ci/catalog/resource_spec.rb248
-rw-r--r--spec/requests/api/graphql/ci/catalog/resources_spec.rb8
-rw-r--r--spec/requests/api/graphql/ci/instance_variables_spec.rb2
-rw-r--r--spec/requests/api/graphql/ci/runner_spec.rb158
-rw-r--r--spec/requests/api/graphql/ci/runners_spec.rb202
-rw-r--r--spec/requests/api/graphql/container_repository/container_repository_details_spec.rb79
-rw-r--r--spec/requests/api/graphql/mutations/branch_rules/create_spec.rb68
-rw-r--r--spec/requests/api/graphql/mutations/ml/models/create_spec.rb48
-rw-r--r--spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb16
-rw-r--r--spec/requests/api/graphql/mutations/organizations/update_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/work_items/create_spec.rb12
-rw-r--r--spec/requests/api/graphql/namespace/projects_spec.rb21
-rw-r--r--spec/requests/api/graphql/namespace/root_storage_statistics_spec.rb2
-rw-r--r--spec/requests/api/graphql/namespace_query_spec.rb48
-rw-r--r--spec/requests/api/graphql/organizations/organization_query_spec.rb193
-rw-r--r--spec/requests/api/graphql/organizations/organizations_query_spec.rb56
-rw-r--r--spec/requests/api/graphql/project/container_repositories_spec.rb4
-rw-r--r--spec/requests/api/graphql/project/merge_request_spec.rb2
-rw-r--r--spec/requests/api/graphql/project/tree/tree_spec.rb2
-rw-r--r--spec/requests/api/graphql/projects/projects_spec.rb6
-rw-r--r--spec/requests/api/graphql/user/user_achievements_query_spec.rb6
-rw-r--r--spec/requests/api/graphql/work_item_spec.rb4
-rw-r--r--spec/requests/api/group_milestones_spec.rb4
-rw-r--r--spec/requests/api/groups_spec.rb77
-rw-r--r--spec/requests/api/import_bitbucket_server_spec.rb2
-rw-r--r--spec/requests/api/import_github_spec.rb7
-rw-r--r--spec/requests/api/internal/base_spec.rb2
-rw-r--r--spec/requests/api/internal/kubernetes_spec.rb8
-rw-r--r--spec/requests/api/invitations_spec.rb10
-rw-r--r--spec/requests/api/issue_links_spec.rb4
-rw-r--r--spec/requests/api/issues/get_project_issues_spec.rb12
-rw-r--r--spec/requests/api/maven_packages_spec.rb11
-rw-r--r--spec/requests/api/members_spec.rb2
-rw-r--r--spec/requests/api/merge_request_approvals_spec.rb12
-rw-r--r--spec/requests/api/merge_requests_spec.rb4
-rw-r--r--spec/requests/api/ml/mlflow/experiments_spec.rb77
-rw-r--r--spec/requests/api/ml/mlflow/model_versions_spec.rb41
-rw-r--r--spec/requests/api/namespaces_spec.rb13
-rw-r--r--spec/requests/api/pages_domains_spec.rb2
-rw-r--r--spec/requests/api/pages_spec.rb91
-rw-r--r--spec/requests/api/project_container_repositories_spec.rb15
-rw-r--r--spec/requests/api/project_import_spec.rb4
-rw-r--r--spec/requests/api/projects_spec.rb4
-rw-r--r--spec/requests/api/releases_spec.rb12
-rw-r--r--spec/requests/api/terraform/modules/v1/namespace_packages_spec.rb (renamed from spec/requests/api/terraform/modules/v1/packages_spec.rb)48
-rw-r--r--spec/requests/api/terraform/modules/v1/project_packages_spec.rb112
-rw-r--r--spec/requests/api/users_spec.rb30
-rw-r--r--spec/requests/application_controller_spec.rb30
-rw-r--r--spec/requests/explore/catalog_controller_spec.rb36
-rw-r--r--spec/requests/groups/milestones_controller_spec.rb10
-rw-r--r--spec/requests/groups/registry/repositories_controller_spec.rb4
-rw-r--r--spec/requests/import/gitlab_projects_controller_spec.rb34
-rw-r--r--spec/requests/jwks_controller_spec.rb14
-rw-r--r--spec/requests/oauth/authorizations_controller_spec.rb27
-rw-r--r--spec/requests/openid_connect_spec.rb2
-rw-r--r--spec/requests/organizations/organizations_controller_spec.rb25
-rw-r--r--spec/requests/organizations/settings_controller_spec.rb19
-rw-r--r--spec/requests/projects/gcp/artifact_registry/docker_images_controller_spec.rb5
-rw-r--r--spec/requests/projects/google_cloud/databases_controller_spec.rb8
-rw-r--r--spec/requests/projects/google_cloud/deployments_controller_spec.rb10
-rw-r--r--spec/requests/projects/ml/models_controller_spec.rb25
-rw-r--r--spec/requests/projects/pipelines_controller_spec.rb18
-rw-r--r--spec/requests/projects/settings/packages_and_registries_controller_spec.rb30
-rw-r--r--spec/requests/search_controller_spec.rb4
-rw-r--r--spec/requests/users_controller_spec.rb40
-rw-r--r--spec/routing/organizations/organizations_controller_routing_spec.rb5
-rw-r--r--spec/routing/uploads_routing_spec.rb13
-rw-r--r--spec/rubocop/cop/gitlab/license_available_usage_spec.rb34
-rw-r--r--spec/rubocop/cop/rails/avoid_time_comparison_spec.rb57
-rw-r--r--spec/rubocop/cop/scalability/file_uploads_spec.rb2
-rw-r--r--spec/scripts/download_downstream_artifact_spec.rb180
-rw-r--r--spec/scripts/lib/glfm/update_example_snapshots_spec.rb12
-rw-r--r--spec/scripts/setup/generate_as_if_foss_env_spec.rb152
-rw-r--r--spec/serializers/activity_pub/activity_serializer_spec.rb138
-rw-r--r--spec/serializers/activity_pub/activity_streams_serializer_spec.rb157
-rw-r--r--spec/serializers/activity_pub/publish_release_activity_serializer_spec.rb13
-rw-r--r--spec/serializers/activity_pub/releases_actor_serializer_spec.rb2
-rw-r--r--spec/serializers/admin/abuse_report_details_entity_spec.rb57
-rw-r--r--spec/serializers/ci/group_variable_entity_spec.rb2
-rw-r--r--spec/serializers/ci/variable_entity_spec.rb2
-rw-r--r--spec/serializers/integrations/field_entity_spec.rb2
-rw-r--r--spec/serializers/profile/event_entity_spec.rb2
-rw-r--r--spec/services/bulk_imports/file_download_service_spec.rb45
-rw-r--r--spec/services/ci/abort_pipelines_service_spec.rb4
-rw-r--r--spec/services/ci/cancel_pipeline_service_spec.rb76
-rw-r--r--spec/services/ci/catalog/resources/create_service_spec.rb4
-rw-r--r--spec/services/ci/catalog/resources/destroy_service_spec.rb4
-rw-r--r--spec/services/ci/catalog/resources/versions/create_service_spec.rb9
-rw-r--r--spec/services/ci/create_pipeline_service/partitioning_spec.rb2
-rw-r--r--spec/services/ci/create_pipeline_service/workflow_auto_cancel_spec.rb86
-rw-r--r--spec/services/ci/expire_pipeline_cache_service_spec.rb2
-rw-r--r--spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb2
-rw-r--r--spec/services/ci/pipeline_creation/cancel_redundant_pipelines_service_spec.rb209
-rw-r--r--spec/services/ci/retry_job_service_spec.rb4
-rw-r--r--spec/services/ci/runners/unregister_runner_manager_service_spec.rb22
-rw-r--r--spec/services/ci/unlock_pipeline_service_spec.rb22
-rw-r--r--spec/services/ci/update_build_queue_service_spec.rb4
-rw-r--r--spec/services/click_house/sync_strategies/base_sync_strategy_spec.rb169
-rw-r--r--spec/services/click_house/sync_strategies/event_sync_strategy_spec.rb128
-rw-r--r--spec/services/cloud_seed/google_cloud/create_cloudsql_instance_service_spec.rb (renamed from spec/services/google_cloud/create_cloudsql_instance_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/create_service_accounts_service_spec.rb (renamed from spec/services/google_cloud/create_service_accounts_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/enable_cloud_run_service_spec.rb (renamed from spec/services/google_cloud/enable_cloud_run_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/enable_cloudsql_service_spec.rb (renamed from spec/services/google_cloud/enable_cloudsql_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/enable_vision_ai_service_spec.rb (renamed from spec/services/google_cloud/enable_vision_ai_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/fetch_google_ip_list_service_spec.rb (renamed from spec/services/google_cloud/fetch_google_ip_list_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/gcp_region_add_or_replace_service_spec.rb (renamed from spec/services/google_cloud/gcp_region_add_or_replace_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/generate_pipeline_service_spec.rb (renamed from spec/services/google_cloud/generate_pipeline_service_spec.rb)22
-rw-r--r--spec/services/cloud_seed/google_cloud/get_cloudsql_instances_service_spec.rb (renamed from spec/services/google_cloud/get_cloudsql_instances_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb (renamed from spec/services/google_cloud/service_accounts_service_spec.rb)2
-rw-r--r--spec/services/cloud_seed/google_cloud/setup_cloudsql_instance_service_spec.rb (renamed from spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb)2
-rw-r--r--spec/services/design_management/save_designs_service_spec.rb2
-rw-r--r--spec/services/event_create_service_spec.rb34
-rw-r--r--spec/services/git/base_hooks_service_spec.rb2
-rw-r--r--spec/services/git/branch_hooks_service_spec.rb18
-rw-r--r--spec/services/git/branch_push_service_spec.rb2
-rw-r--r--spec/services/git/process_ref_changes_service_spec.rb26
-rw-r--r--spec/services/git/tag_hooks_service_spec.rb2
-rw-r--r--spec/services/git/tag_push_service_spec.rb2
-rw-r--r--spec/services/git/wiki_push_service_spec.rb2
-rw-r--r--spec/services/google_cloud_platform/artifact_registry/list_docker_images_service_spec.rb (renamed from spec/services/integrations/google_cloud_platform/artifact_registry/list_docker_images_service_spec.rb)2
-rw-r--r--spec/services/groups/create_service_spec.rb279
-rw-r--r--spec/services/groups/participants_service_spec.rb16
-rw-r--r--spec/services/groups/update_service_spec.rb54
-rw-r--r--spec/services/import/github_service_spec.rb54
-rw-r--r--spec/services/issuable/common_system_notes_service_spec.rb6
-rw-r--r--spec/services/issue_email_participants/create_service_spec.rb10
-rw-r--r--spec/services/issue_email_participants/destroy_service_spec.rb147
-rw-r--r--spec/services/issue_links/list_service_spec.rb4
-rw-r--r--spec/services/issues/export_csv_service_spec.rb4
-rw-r--r--spec/services/issues/referenced_merge_requests_service_spec.rb16
-rw-r--r--spec/services/issues/update_service_spec.rb12
-rw-r--r--spec/services/labels/available_labels_service_spec.rb8
-rw-r--r--spec/services/members/create_service_spec.rb28
-rw-r--r--spec/services/members/update_service_spec.rb2
-rw-r--r--spec/services/merge_requests/approval_service_spec.rb56
-rw-r--r--spec/services/merge_requests/conflicts/list_service_spec.rb2
-rw-r--r--spec/services/merge_requests/get_urls_service_spec.rb6
-rw-r--r--spec/services/merge_requests/push_options_handler_service_spec.rb8
-rw-r--r--spec/services/merge_requests/pushed_branches_service_spec.rb6
-rw-r--r--spec/services/merge_requests/refresh_service_spec.rb4
-rw-r--r--spec/services/merge_requests/reload_diffs_service_spec.rb6
-rw-r--r--spec/services/merge_requests/remove_approval_service_spec.rb60
-rw-r--r--spec/services/merge_requests/request_review_service_spec.rb8
-rw-r--r--spec/services/milestones/destroy_service_spec.rb4
-rw-r--r--spec/services/milestones/promote_service_spec.rb16
-rw-r--r--spec/services/ml/create_model_service_spec.rb5
-rw-r--r--spec/services/ml/create_model_version_service_spec.rb55
-rw-r--r--spec/services/namespaces/package_settings/update_service_spec.rb12
-rw-r--r--spec/services/notification_recipients/build_service_spec.rb14
-rw-r--r--spec/services/notification_service_spec.rb163
-rw-r--r--spec/services/organizations/create_service_spec.rb2
-rw-r--r--spec/services/organizations/update_service_spec.rb10
-rw-r--r--spec/services/packages/npm/create_package_service_spec.rb66
-rw-r--r--spec/services/packages/terraform_module/create_package_service_spec.rb75
-rw-r--r--spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb24
-rw-r--r--spec/services/post_receive_service_spec.rb2
-rw-r--r--spec/services/preview_markdown_service_spec.rb2
-rw-r--r--spec/services/projects/cleanup_service_spec.rb2
-rw-r--r--spec/services/projects/destroy_service_spec.rb8
-rw-r--r--spec/services/projects/fork_service_spec.rb698
-rw-r--r--spec/services/projects/participants_service_spec.rb36
-rw-r--r--spec/services/projects/unlink_fork_service_spec.rb8
-rw-r--r--spec/services/projects/update_statistics_service_spec.rb34
-rw-r--r--spec/services/push_event_payload_service_spec.rb12
-rw-r--r--spec/services/quick_actions/interpret_service_spec.rb129
-rw-r--r--spec/services/repositories/changelog_service_spec.rb2
-rw-r--r--spec/services/resource_access_tokens/revoke_service_spec.rb4
-rw-r--r--spec/services/routes/rename_descendants_service_spec.rb208
-rw-r--r--spec/services/security/merge_reports_service_spec.rb56
-rw-r--r--spec/services/spam/spam_verdict_service_spec.rb11
-rw-r--r--spec/services/system_note_service_spec.rb24
-rw-r--r--spec/services/system_notes/issuables_service_spec.rb23
-rw-r--r--spec/services/system_notes/time_tracking_service_spec.rb34
-rw-r--r--spec/services/todo_service_spec.rb18
-rw-r--r--spec/services/todos/destroy/destroyed_issuable_service_spec.rb4
-rw-r--r--spec/services/user_project_access_changed_service_spec.rb4
-rw-r--r--spec/services/users/migrate_records_to_ghost_user_service_spec.rb10
-rw-r--r--spec/services/users/update_todo_count_cache_service_spec.rb4
-rw-r--r--spec/services/work_items/callbacks/assignees_spec.rb (renamed from spec/services/work_items/widgets/assignees_service/update_service_spec.rb)27
-rw-r--r--spec/services/work_items/callbacks/current_user_todos_spec.rb (renamed from spec/services/work_items/widgets/current_user_todos_service/update_service_spec.rb)20
-rw-r--r--spec/services/work_items/callbacks/description_spec.rb (renamed from spec/services/work_items/widgets/description_service/update_service_spec.rb)14
-rw-r--r--spec/services/work_items/callbacks/notifications_spec.rb (renamed from spec/services/work_items/widgets/notifications_service/update_service_spec.rb)8
-rw-r--r--spec/services/work_items/callbacks/start_and_due_date_spec.rb (renamed from spec/services/work_items/widgets/start_and_due_date_service/update_service_spec.rb)20
-rw-r--r--spec/services/work_items/update_service_spec.rb13
-rw-r--r--spec/spec_helper.rb7
-rw-r--r--spec/support/before_all_adapter.rb33
-rw-r--r--spec/support/database/prevent_cross_database_modification.rb7
-rw-r--r--spec/support/db_cleaner.rb2
-rw-r--r--spec/support/factory_bot.rb9
-rw-r--r--spec/support/finder_collection.rb2
-rw-r--r--spec/support/finder_collection_allowlist.yml1
-rw-r--r--spec/support/formatters/json_formatter.rb8
-rw-r--r--spec/support/helpers/admin_mode_helpers.rb27
-rw-r--r--spec/support/helpers/cycle_analytics_helpers.rb12
-rw-r--r--spec/support/helpers/database/duplicate_indexes.yml19
-rw-r--r--spec/support/helpers/database/multiple_databases_helpers.rb2
-rw-r--r--spec/support/helpers/debug_with_puts.rb13
-rw-r--r--spec/support/helpers/dns_helpers.rb24
-rw-r--r--spec/support/helpers/features/invite_members_modal_helpers.rb1
-rw-r--r--spec/support/helpers/login_helpers.rb27
-rw-r--r--spec/support/helpers/models/ci/partitioning_testing/partition_identifiers.rb4
-rw-r--r--spec/support/helpers/navbar_structure_helper.rb16
-rw-r--r--spec/support/helpers/orphan_final_artifacts_cleanup_helpers.rb82
-rw-r--r--spec/support/helpers/stub_configuration.rb7
-rw-r--r--spec/support/helpers/stub_gitlab_calls.rb4
-rw-r--r--spec/support/helpers/stub_requests.rb18
-rw-r--r--spec/support/helpers/user_with_namespace_shim.rb73
-rw-r--r--spec/support/helpers/user_with_namespace_shim.yml1000
-rw-r--r--spec/support/matchers/have_user.rb13
-rw-r--r--spec/support/migration.rb2
-rw-r--r--spec/support/rspec_order_todo.yml18
-rw-r--r--spec/support/rspec_run_time.rb11
-rw-r--r--spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb45
-rw-r--r--spec/support/shared_contexts/features/integrations/instance_integrations_shared_context.rb2
-rw-r--r--spec/support/shared_contexts/graphql/types/query_type_shared_context.rb2
-rw-r--r--spec/support/shared_contexts/lib/gitlab/database/partitioning/list_partitioning_shared_context.rb2
-rw-r--r--spec/support/shared_contexts/lib/gitlab/sidekiq_logging/structured_logger_shared_context.rb4
-rw-r--r--spec/support/shared_contexts/lib/gitlab/sidekiq_middleware/server_metrics_shared_context.rb1
-rw-r--r--spec/support/shared_examples/analytics/cycle_analytics/parentable_examples.rb13
-rw-r--r--spec/support/shared_examples/ci/runner_with_status_scope_shared_examples.rb29
-rw-r--r--spec/support/shared_examples/controllers/base_action_controller_shared_examples.rb4
-rw-r--r--spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb6
-rw-r--r--spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb2
-rw-r--r--spec/support/shared_examples/controllers/snippet_shared_examples.rb4
-rw-r--r--spec/support/shared_examples/controllers/variables_shared_examples.rb3
-rw-r--r--spec/support/shared_examples/features/inviting_groups_shared_examples.rb2
-rw-r--r--spec/support/shared_examples/features/variable_list_drawer_shared_examples.rb2
-rw-r--r--spec/support/shared_examples/features/work_items_shared_examples.rb279
-rw-r--r--spec/support/shared_examples/lib/gitlab/import_export/import_failure_service_shared_examples.rb1
-rw-r--r--spec/support/shared_examples/migrations/add_work_item_widget_shared_examples.rb10
-rw-r--r--spec/support/shared_examples/models/concerns/integrations/base_slack_notification_shared_examples.rb2
-rw-r--r--spec/support/shared_examples/models/concerns/integrations/slack_mattermost_notifier_shared_examples.rb2
-rw-r--r--spec/support/shared_examples/models/concerns/repository_storage_movable_shared_examples.rb2
-rw-r--r--spec/support/shared_examples/models/database_event_tracking_shared_examples.rb49
-rw-r--r--spec/support/shared_examples/models/member_shared_examples.rb96
-rw-r--r--spec/support/shared_examples/models/members_notifications_shared_example.rb42
-rw-r--r--spec/support/shared_examples/models/relative_positioning_shared_examples.rb6
-rw-r--r--spec/support/shared_examples/quick_actions/merge_request/rebase_quick_action_shared_examples.rb6
-rw-r--r--spec/support/shared_examples/redis/multi_store_wrapper_shared_examples.rb74
-rw-r--r--spec/support/shared_examples/redis/redis_new_instance_shared_examples.rb37
-rw-r--r--spec/support/shared_examples/redis/redis_shared_examples.rb67
-rw-r--r--spec/support/shared_examples/requests/api/terraform/modules/v1/packages_shared_examples.rb175
-rw-r--r--spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb4
-rw-r--r--spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb8
-rw-r--r--spec/support/shared_examples/services/common_system_notes_shared_examples.rb6
-rw-r--r--spec/support/shared_examples/services/count_service_shared_examples.rb4
-rw-r--r--spec/support/shared_examples/services/destroy_label_links_shared_examples.rb4
-rw-r--r--spec/support/shared_examples/services/jira/requests/base_shared_examples.rb1
-rw-r--r--spec/support/shared_examples/services/namespace_package_settings_shared_examples.rb4
-rw-r--r--spec/support/shared_examples/services/packages/debian/generate_distribution_shared_examples.rb4
-rw-r--r--spec/support/shared_examples/services/protected_branches_shared_examples.rb41
-rw-r--r--spec/support/shared_examples/work_item_hierarchy_restrictions_importer.rb17
-rw-r--r--spec/support/shared_examples/work_items/widgetable_service_shared_examples.rb6
-rw-r--r--spec/support/shared_examples/workers/gitlab/github_import/stage_methods_shared_examples.rb181
-rw-r--r--spec/support/sidekiq.rb10
-rw-r--r--spec/support/sidekiq_middleware.rb9
-rw-r--r--spec/tasks/gitlab/cleanup_rake_spec.rb84
-rw-r--r--spec/tooling/danger/bulk_database_actions_spec.rb136
-rw-r--r--spec/tooling/danger/project_helper_spec.rb7
-rw-r--r--spec/tooling/lib/tooling/find_changes_spec.rb35
-rw-r--r--spec/uploaders/object_storage/cdn/google_cdn_spec.rb2
-rw-r--r--spec/validators/ip_cidr_array_validator_spec.rb1
-rw-r--r--spec/views/admin/application_settings/network.html.haml_spec.rb8
-rw-r--r--spec/views/admin/sessions/new.html.haml_spec.rb2
-rw-r--r--spec/views/devise/sessions/new.html.haml_spec.rb73
-rw-r--r--spec/views/devise/shared/_footer.html.haml_spec.rb46
-rw-r--r--spec/views/devise/shared/_signup_box.html.haml_spec.rb16
-rw-r--r--spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb35
-rw-r--r--spec/views/profiles/preferences/show.html.haml_spec.rb8
-rw-r--r--spec/views/projects/commit/show.html.haml_spec.rb3
-rw-r--r--spec/views/projects/merge_requests/creations/new.html.haml_spec.rb67
-rw-r--r--spec/workers/bulk_imports/export_request_worker_spec.rb18
-rw-r--r--spec/workers/ci/unlock_pipelines_in_queue_worker_spec.rb9
-rw-r--r--spec/workers/click_house/event_authors_consistency_cron_worker_spec.rb104
-rw-r--r--spec/workers/click_house/events_sync_worker_spec.rb174
-rw-r--r--spec/workers/concerns/gitlab/github_import/object_importer_spec.rb27
-rw-r--r--spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb11
-rw-r--r--spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb195
-rw-r--r--spec/workers/emails_on_push_worker_spec.rb4
-rw-r--r--spec/workers/every_sidekiq_worker_spec.rb2
-rw-r--r--spec/workers/gitlab/bitbucket_server_import/stage/import_users_worker_spec.rb15
-rw-r--r--spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb65
-rw-r--r--spec/workers/gitlab/github_import/replay_events_worker_spec.rb32
-rw-r--r--spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb5
-rw-r--r--spec/workers/gitlab/github_import/stage/import_attachments_worker_spec.rb7
-rw-r--r--spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb4
-rw-r--r--spec/workers/gitlab/github_import/stage/import_collaborators_worker_spec.rb6
-rw-r--r--spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb24
-rw-r--r--spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb7
-rw-r--r--spec/workers/gitlab/github_import/stage/import_lfs_objects_worker_spec.rb10
-rw-r--r--spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb7
-rw-r--r--spec/workers/gitlab/github_import/stage/import_protected_branches_worker_spec.rb4
-rw-r--r--spec/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker_spec.rb6
-rw-r--r--spec/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker_spec.rb6
-rw-r--r--spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb7
-rw-r--r--spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb6
-rw-r--r--spec/workers/gitlab/github_import/stage/import_repository_worker_spec.rb4
-rw-r--r--spec/workers/google_cloud/create_cloudsql_instance_worker_spec.rb8
-rw-r--r--spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb2
-rw-r--r--spec/workers/jira_connect/sync_project_worker_spec.rb4
-rw-r--r--spec/workers/new_issue_worker_spec.rb8
-rw-r--r--spec/workers/releases/publish_event_worker_spec.rb45
-rw-r--r--tests.yml6
-rw-r--r--tooling/custom_roles/docs/templates/custom_abilities.md.erb54
-rw-r--r--tooling/danger/bulk_database_actions.rb35
-rw-r--r--tooling/danger/project_helper.rb1
-rw-r--r--tooling/lib/tooling/crystalball/coverage_lines_strategy.rb4
-rwxr-xr-xtooling/lib/tooling/find_changes.rb8
-rw-r--r--tooling/lib/tooling/test_map_generator.rb2
-rw-r--r--vendor/gems/attr_encrypted/attr_encrypted.gemspec2
-rw-r--r--vendor/gems/bundler-checksum/Gemfile.lock2
-rw-r--r--vendor/gems/bundler-checksum/lib/bundler_checksum.rb18
-rw-r--r--vendor/gems/bundler-checksum/lib/bundler_checksum/command/init.rb7
-rw-r--r--vendor/gems/bundler-checksum/lib/bundler_checksum/command/lint.rb2
-rw-r--r--vendor/gems/bundler-checksum/test/project_with_checksum_lock/Gemfile.lock2
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/Gemfile1
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/Gemfile.lock68
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/README.md2
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/gitlab-sidekiq-fetcher.gemspec4
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/base_reliable_fetch.rb26
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/interrupted_set.rb2
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb15
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/spec/base_reliable_fetch_spec.rb38
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/spec/fetch_shared_examples.rb73
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/spec/reliable_fetch_spec.rb1
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb19
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/spec/spec_helper.rb2
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/tests/interruption/config.rb1
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/tests/reliability/config.rb1
-rw-r--r--workhorse/config_test.go389
-rw-r--r--workhorse/go.mod65
-rw-r--r--workhorse/go.sum181
-rw-r--r--workhorse/internal/api/api.go40
-rw-r--r--workhorse/internal/api/api_test.go76
-rw-r--r--workhorse/internal/config/config.go86
-rw-r--r--workhorse/internal/git/git-http.go38
-rw-r--r--workhorse/internal/git/receive-pack.go11
-rw-r--r--workhorse/internal/git/upload-pack.go15
-rw-r--r--workhorse/internal/git/upload-pack_test.go2
-rw-r--r--workhorse/internal/gitaly/smarthttp.go13
-rw-r--r--workhorse/internal/testhelper/testhelper.go74
-rw-r--r--yarn.lock2519
3460 files changed, 286338 insertions, 108353 deletions
diff --git a/.eslintrc.yml b/.eslintrc.yml
index 595f4fc7b9a..1c6b5a939d2 100644
--- a/.eslintrc.yml
+++ b/.eslintrc.yml
@@ -144,6 +144,8 @@ rules:
- error
- escape:
methods: 'sanitize'
+ # This rule will be enabled later.
+ unicorn/no-array-callback-reference: off
overrides:
- files:
- '{,ee/,jh/}spec/frontend*/**/*'
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9a24f58ad73..7998dbd8b96 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -27,18 +27,25 @@ default:
# Default job timeout doesn't work: https://gitlab.com/gitlab-org/gitlab/-/issues/387528
timeout: 90m
-.default-ruby-variables: &default-ruby-variables
+.old-ruby-variables: &old-ruby-variables
RUBY_VERSION: "3.0"
+ OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3_0"
-.next-ruby-variables: &next-ruby-variables
+.default-ruby-variables: &default-ruby-variables
RUBY_VERSION: "3.1"
+ OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3_1"
+
+.next-ruby-variables: &next-ruby-variables
+ RUBY_VERSION: "3.2"
+ OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3_2"
.default-branch-pipeline-failure-variables: &default-branch-pipeline-failure-variables
- CREATE_RAILS_TEST_FAILURE_ISSUES: "true"
CREATE_RAILS_SLOW_TEST_ISSUES: "true"
+ CREATE_RAILS_TEST_FAILURE_ISSUES: "true"
-.default-merge-request-slow-tests-variables: &default-merge-request-slow-tests-variables
+.default-merge-request-variables: &default-merge-request-variables
ADD_SLOW_TEST_NOTE_TO_MERGE_REQUEST: "true"
+ CREATE_RAILS_FLAKY_TEST_ISSUES: "true"
.if-merge-request-security-canonical-sync: &if-merge-request-security-canonical-sync
if: '$CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == "gitlab-org/security/gitlab" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
@@ -51,12 +58,17 @@ workflow:
rules:
- if: '$CI_PROJECT_PATH == "gitlab-org/gitaly" && $CI_PIPELINE_SOURCE == "parent_pipeline" && $GITALY_TEST'
variables:
+ <<: *default-ruby-variables
PIPELINE_NAME: 'Gitaly Rails Test Pipeline'
# If `$FORCE_GITLAB_CI` is set, create a pipeline.
- if: '$FORCE_GITLAB_CI'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION forced pipeline'
+ - if: '$START_AS_IF_FOSS'
+ variables:
+ <<: *default-ruby-variables
+ PIPELINE_NAME: 'Ruby $RUBY_VERSION as-if-foss pipeline'
# As part of the process of creating RCs automatically, we update stable
# branches with the changes of the most recent production deployment. The
# merge requests used for this merge a branch release-tools/X into a stable
@@ -64,27 +76,36 @@ workflow:
# they serve no purpose and will run anyway when the changes are merged.
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^release-tools\/\d+\.\d+\.\d+-rc\d+$/ && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee)?$/ && $CI_PROJECT_PATH == "gitlab-org/gitlab"'
when: never
- # For merge requests running exclusively in Ruby 3.0
- if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_0/'
variables:
+ <<: *old-ruby-variables
+ PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
+ NO_SOURCEMAPS: 'true'
+ - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_1/'
+ variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
NO_SOURCEMAPS: 'true'
- - if: '$CI_MERGE_REQUEST_LABELS =~ /Community contribution/'
+ - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_2/'
variables:
<<: *next-ruby-variables
+ PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
+ NO_SOURCEMAPS: 'true'
+ - if: '$CI_MERGE_REQUEST_LABELS =~ /Community contribution/'
+ variables:
+ <<: *default-ruby-variables
GITLAB_DEPENDENCY_PROXY_ADDRESS: ""
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline (community contribution)'
NO_SOURCEMAPS: 'true'
- <<: *if-merge-request-security-canonical-sync
variables:
+ <<: *default-ruby-variables
PIPELINE_NAME: '$CI_DEFAULT_BRANCH security->canonical sync'
SKIP_MESSAGE: 'MR only contains changes from the security mirror, which have already been reviewed, tested and deployed.'
# For (detached) merge request pipelines.
- if: '$CI_MERGE_REQUEST_IID'
variables:
- <<: *next-ruby-variables
- <<: *default-merge-request-slow-tests-variables
+ <<: [*default-ruby-variables, *default-merge-request-variables]
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
NO_SOURCEMAPS: 'true'
# For the scheduled pipelines, we set specific variables.
@@ -93,12 +114,15 @@ workflow:
<<: [*default-ruby-variables, *default-branch-pipeline-failure-variables]
CRYSTALBALL: "true"
PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline'
- # Run pipelines for ruby3_1 branch
- - if: '$CI_COMMIT_BRANCH == "ruby3_1" && $CI_PIPELINE_SOURCE == "schedule"'
+ - if: '$CI_COMMIT_BRANCH == "ruby3_0" && $CI_PIPELINE_SOURCE == "schedule"'
+ variables:
+ <<: *old-ruby-variables
+ PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline'
+ - if: '$CI_COMMIT_BRANCH == "ruby3_2" && $CI_PIPELINE_SOURCE == "schedule"'
variables:
<<: *next-ruby-variables
PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline'
- # This work around https://gitlab.com/gitlab-org/gitlab/-/issues/332411 whichs prevents usage of dependency proxy
+ # This work around https://gitlab.com/gitlab-org/gitlab/-/issues/332411 which prevents usage of dependency proxy
# when pipeline is triggered by a project access token.
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $GITLAB_USER_LOGIN =~ /project_\d+_bot\d*/'
variables:
@@ -155,11 +179,14 @@ variables:
GIT_STRATEGY: "clone"
GIT_SUBMODULE_STRATEGY: "none"
GET_SOURCES_ATTEMPTS: "3"
+ # CI_FETCH_REPO_GIT_STRATEGY: "none" is from artifacts. "clone" is from cloning
+ CI_FETCH_REPO_GIT_STRATEGY: "none"
DEBIAN_VERSION: "bullseye"
UBI_VERSION: "8.6"
- CHROME_VERSION: "113"
+ CHROME_VERSION: "119"
DOCKER_VERSION: "24.0.5"
RUBYGEMS_VERSION: "3.4"
+ BUNDLER_VERSION: "2.5"
GO_VERSION: "1.20"
RUST_VERSION: "1.73"
diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS
index 0e6613eb48e..f64f8682425 100644
--- a/.gitlab/CODEOWNERS
+++ b/.gitlab/CODEOWNERS
@@ -1232,7 +1232,7 @@ lib/gitlab/checks/**
/lib/tasks/tokens.rake
# Necessary for GitLab availability
-[Verify] @gitlab-org/maintainers/cicd-verify @shinya.maeda @stanhu @ayufan
+[Verify] @gitlab-org/maintainers/cicd-verify @stanhu @ayufan
# With these catch-all rules we will require backend approval and use it as an
# opportunity to refine specific rules defined in this section.
# Note that frontend, CI templates and other concerns should be kept within
@@ -1443,12 +1443,14 @@ ee/lib/ee/api/entities/project.rb
/ee/lib/sidebars/
/ee/lib/ee/sidebars/
-# Necessary for availablity, similar to DB migrations
+# Necessary for availability, similar to DB migrations
[Global Search] @gitlab-org/search-team/migration-maintainers
/ee/elastic/migrate/
-/ee/spec/elastic/migrate/
/ee/spec/support/elastic.rb
+^[Global Search] @gitlab-org/search-team/migration-maintainers
+/ee/spec/elastic/migrate/
+
^[Create::IDE - Remote Development Backend] @gitlab-org/maintainers/remote-development/backend
/ee/app/models/remote_development/
/ee/app/policies/remote_development/
diff --git a/.gitlab/ci/as-if-foss.gitlab-ci.yml b/.gitlab/ci/as-if-foss.gitlab-ci.yml
new file mode 100644
index 00000000000..fc8db3ba974
--- /dev/null
+++ b/.gitlab/ci/as-if-foss.gitlab-ci.yml
@@ -0,0 +1,133 @@
+.as-if-foss-variables:
+ variables:
+ AS_IF_FOSS_BRANCH: "as-if-foss/${CI_COMMIT_REF_NAME}"
+ FOSS_REPOSITORY: "https://dummy:${AS_IF_FOSS_TOKEN}@gitlab.com/gitlab-org/gitlab-foss.git"
+
+prepare-as-if-foss-branch:
+ extends:
+ - .as-if-foss:rules:start-as-if-foss
+ - .as-if-foss-variables
+ stage: prepare
+ needs: []
+ environment:
+ name: "as-if-foss/${CI_MERGE_REQUEST_IID}"
+ on_stop: delete-as-if-foss-branch
+ before_script:
+ - git clone --single-branch --branch master "${FOSS_REPOSITORY}" gitlab-foss
+ - git -C gitlab-foss checkout -b "${AS_IF_FOSS_BRANCH}" master
+ - rm -r .git/
+ - mv gitlab-foss/.git .
+ - rm -r gitlab-foss
+ script:
+ # See: https://gitlab.com/gitlab-org/merge-train/-/blob/041d942ae1b5615703b7a786982340b61620e7c5/bin/merge-train#L228-239
+ - git checkout VERSION
+ - rm -rf ee
+ - rm -rf qa/spec/ee
+ - rm -rf qa/qa/specs/features/ee
+ - rm -rf qa/qa/ee
+ - rm -f qa/qa/ee.rb
+ - rm -f CHANGELOG-EE.md
+ - rm -f changelogs/*-ee.md
+ - git add -A
+ - git commit -m 'Update from merge request' # TODO: Mark which SHA we add
+ - git push -f "${FOSS_REPOSITORY}" "${AS_IF_FOSS_BRANCH}"
+
+prepare-as-if-foss-env:
+ extends:
+ - .as-if-foss:rules:start-as-if-foss
+ - .fast-no-clone-job
+ stage: prepare
+ needs: []
+ variables:
+ BUILD_ENV: build.env
+ FILES_TO_DOWNLOAD: >
+ scripts/setup/generate-as-if-foss-env.rb
+ script:
+ - install_gitlab_gem
+ - ruby scripts/setup/generate-as-if-foss-env.rb | tee "${BUILD_ENV}"
+ artifacts:
+ expire_in: 3 days
+ reports:
+ dotenv: $BUILD_ENV
+ paths:
+ - $BUILD_ENV
+
+start-as-if-foss:
+ extends:
+ - .as-if-foss:rules:start-as-if-foss
+ stage: prepare
+ needs:
+ - prepare-as-if-foss-branch
+ - prepare-as-if-foss-env
+ inherit:
+ variables: false # Otherwise variables will be messed up
+ variables:
+ START_AS_IF_FOSS: $START_AS_IF_FOSS
+ RUBY_VERSION: $RUBY_VERSION
+ ENABLE_RSPEC: $ENABLE_RSPEC
+ ENABLE_RSPEC_FAST_SPEC_HELPER: $ENABLE_RSPEC_FAST_SPEC_HELPER
+ ENABLE_RSPEC_UNIT: $ENABLE_RSPEC_UNIT
+ ENABLE_RSPEC_INTEGRATION: $ENABLE_RSPEC_INTEGRATION
+ ENABLE_RSPEC_SYSTEM: $ENABLE_RSPEC_SYSTEM
+ ENABLE_RSPEC_MIGRATION: $ENABLE_RSPEC_MIGRATION
+ ENABLE_RSPEC_BACKGROUND_MIGRATION: $ENABLE_RSPEC_BACKGROUND_MIGRATION
+ ENABLE_RSPEC_FRONTEND_FIXTURE: $ENABLE_RSPEC_FRONTEND_FIXTURE
+ ENABLE_BUILD_ASSETS_IMAGE: $ENABLE_BUILD_ASSETS_IMAGE
+ ENABLE_BUILD_QA_IMAGE: $ENABLE_BUILD_QA_IMAGE
+ ENABLE_COMPILE_PRODUCTION_ASSETS: $ENABLE_COMPILE_PRODUCTION_ASSETS
+ ENABLE_COMPILE_STORYBOOK: $ENABLE_COMPILE_STORYBOOK
+ ENABLE_COMPILE_TEST_ASSETS: $ENABLE_COMPILE_TEST_ASSETS
+ ENABLE_ESLINT: $ENABLE_ESLINT
+ ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA: $ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA
+ ENABLE_GRAPHQL_SCHEMA_DUMP: $ENABLE_GRAPHQL_SCHEMA_DUMP
+ ENABLE_JEST: $ENABLE_JEST
+ ENABLE_JEST_INTEGRATION: $ENABLE_JEST_INTEGRATION
+ ENABLE_QA_INTERNAL: $ENABLE_QA_INTERNAL
+ ENABLE_QA_SELECTORS: $ENABLE_QA_SELECTORS
+ ENABLE_STATIC_ANALYSIS: $ENABLE_STATIC_ANALYSIS
+ trigger:
+ project: gitlab-org/gitlab-foss
+ branch: as-if-foss/${CI_COMMIT_REF_NAME}
+ strategy: depend
+
+delete-as-if-foss-branch:
+ extends:
+ - .as-if-foss:rules:start-as-if-foss:allow-failure:manual
+ - .as-if-foss-variables
+ image:
+ name: alpine/git
+ entrypoint: [""]
+ stage: prepare
+ needs:
+ - prepare-as-if-foss-branch
+ environment:
+ name: "as-if-foss/${CI_MERGE_REQUEST_IID}"
+ action: stop
+ variables:
+ GIT_STRATEGY: "none"
+ script:
+ - |
+ git init
+ git push -d "${FOSS_REPOSITORY}" "${AS_IF_FOSS_BRANCH}"
+
+# We can only delete the environment after it's stopped, therefore
+# we need to use another job to delete the environment, not in the
+# job where it's stopping the environment. See:
+# https://docs.gitlab.com/ee/ci/environments/#delete-an-environment
+delete-as-if-foss-environment:
+ extends:
+ - .as-if-foss:rules:start-as-if-foss:allow-failure
+ image: alpine:latest
+ stage: prepare
+ needs:
+ - delete-as-if-foss-branch
+ variables:
+ GIT_STRATEGY: "none"
+ ESCAPED_ENVIRONMENT_NAME: "as-if-foss%2f${CI_MERGE_REQUEST_IID}"
+ ENVIRONMENT_API_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/environments"
+ before_script:
+ - apk add jq curl
+ script:
+ - |
+ ENV_ID=$(curl --silent --fail --request GET --header "Private-Token: ${PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE}" "${ENVIRONMENT_API_URL}?name=${ESCAPED_ENVIRONMENT_NAME}" | jq '.[0].id')
+ curl --silent --request DELETE --header "Private-Token: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE" "${ENVIRONMENT_API_URL}/${ENV_ID}"
diff --git a/.gitlab/ci/cng/main.gitlab-ci.yml b/.gitlab/ci/cng/main.gitlab-ci.yml
index 1ecbbbd47ad..d27a4ef4b08 100644
--- a/.gitlab/ci/cng/main.gitlab-ci.yml
+++ b/.gitlab/ci/cng/main.gitlab-ci.yml
@@ -54,8 +54,6 @@ include:
GITLAB_WORKHORSE_VERSION: "${GITLAB_WORKHORSE_VERSION}"
GITALY_SERVER_VERSION: "${GITALY_SERVER_VERSION}"
RUBY_VERSION: "${FULL_RUBY_VERSION}"
- NEXT_RUBY_CACHE_KEY: "${RUBY_VERSION}"
- NEXT_RUBY_VERSION: "${FULL_RUBY_VERSION}"
trigger:
project: ${CI_PROJECT_NAMESPACE}/build/CNG-mirror
branch: $TRIGGER_BRANCH
diff --git a/.gitlab/ci/gitlab-com/danger-review.gitlab-ci.yml b/.gitlab/ci/gitlab-com/danger-review.gitlab-ci.yml
index ad7cc2f44c0..8fe9706d913 100644
--- a/.gitlab/ci/gitlab-com/danger-review.gitlab-ci.yml
+++ b/.gitlab/ci/gitlab-com/danger-review.gitlab-ci.yml
@@ -1,6 +1,6 @@
include:
- project: gitlab-org/quality/pipeline-common
- ref: 8.2.0
+ ref: 8.4.0
file:
- /ci/danger-review.yml
diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml
index 0d29051a03d..469c1d0676c 100644
--- a/.gitlab/ci/global.gitlab-ci.yml
+++ b/.gitlab/ci/global.gitlab-ci.yml
@@ -22,6 +22,14 @@
- !reference [.default-utils-before_script, before_script]
- source scripts/prepare_build.sh
+.repo-from-artifacts:
+ variables:
+ GIT_STRATEGY: "${CI_FETCH_REPO_GIT_STRATEGY}"
+ needs:
+ # If the job extending this also defines `needs`, make sure to update
+ # its `needs` to include `clone-gitlab-repo` because it'll be overridden.
+ - clone-gitlab-repo
+
.production:
variables:
RAILS_ENV: "production"
diff --git a/.gitlab/ci/observability-backend.gitlab-ci.yml b/.gitlab/ci/observability-backend.gitlab-ci.yml
new file mode 100644
index 00000000000..108e09491c9
--- /dev/null
+++ b/.gitlab/ci/observability-backend.gitlab-ci.yml
@@ -0,0 +1,39 @@
+# Triggers downstream e2e tests in gitlab-org/opstrace/opstrace
+# These e2e tests live in gitlab-org/opstrace/opstrace as a result
+# of opstrace being brought in through an acquisition.
+.e2e-observability-backend-base:
+ stage: test
+ needs: []
+ extends:
+ - .observability-backend:rules
+ inherit:
+ variables: false
+ variables:
+ TEST_GITLAB_COMMIT: $CI_COMMIT_SHA
+ trigger:
+ project: gitlab-org/opstrace/opstrace
+ strategy: depend
+
+# e2e:observability-backend uses $CI_COMMIT_REF_NAME to
+# checkout a branch in gitlab-org/opstrace/opstrace with
+# the same name as the branch in this repo. Because opstrace
+# is a different codebase, we match branch names without
+# commit SHA.
+e2e:observability-backend:
+ extends: .e2e-observability-backend-base
+ trigger:
+ project: gitlab-org/opstrace/opstrace
+ branch: $CI_COMMIT_REF_NAME
+
+# e2e:observability-backend-main-branch will trigger
+# an e2e test pipeline that checks out GitLab to
+# $CI_COMMIT_SHA and Opstrace to the latest commit
+# on main branch. Devs run this manually on local
+# installs today periodically during development
+# and this manual job increases dev velocity
+# and testing reliablity.
+e2e:observability-backend-main-branch:
+ extends: .e2e-observability-backend-base
+ trigger:
+ project: gitlab-org/opstrace/opstrace
+ branch: main
diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml
index afd66a36b0a..99c97de1515 100644
--- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml
+++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml
@@ -25,11 +25,6 @@ download-knapsack-report:
- .download-knapsack-report
- .rules:download-knapsack
-download-fast-quarantine-report:
- extends:
- - .download-fast-quarantine-report
- - .rules:download-fast-quarantine-report
-
# ==========================================
# Test stage
# ==========================================
@@ -572,6 +567,22 @@ importers:
- if: $QA_SUITES =~ /Test::Integration::Import/
- !reference [.rules:test:manual, rules]
+ai-gateway-sync-seat-link:
+ extends:
+ - .qa
+ - .failure-videos
+ variables:
+ QA_SCENARIO: Test::Integration::AiGateway
+ rules:
+ - !reference [.rules:test:qa, rules]
+ - if: $QA_SUITES =~ /Test::Integration::AiGateway/
+ - !reference [.rules:test:manual, rules]
+
+ai-gateway-sync-service-token:
+ extends: ai-gateway-sync-seat-link
+ variables:
+ QA_USE_SYNC_SERVICE_TOKEN_WORKER: "true"
+
# ------------------------------------------
# Update jobs
# ------------------------------------------
diff --git a/.gitlab/ci/preflight.gitlab-ci.yml b/.gitlab/ci/preflight.gitlab-ci.yml
index 6723608d0db..426d36b24f4 100644
--- a/.gitlab/ci/preflight.gitlab-ci.yml
+++ b/.gitlab/ci/preflight.gitlab-ci.yml
@@ -5,7 +5,7 @@
needs: []
.qa-preflight-job:
- image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}
+ image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-${BUNDLER_VERSION}-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}
extends:
- .preflight-job-base
- .qa-cache
@@ -70,7 +70,7 @@ no-jh-check:
qa:selectors:
extends:
- .qa-preflight-job
- - .qa:rules:ee-and-foss
+ - .qa:rules:selectors
script:
- bundle exec bin/qa Test::Sanity::Selectors
diff --git a/.gitlab/ci/qa-common/main.gitlab-ci.yml b/.gitlab/ci/qa-common/main.gitlab-ci.yml
index 836f1559264..1895c857410 100644
--- a/.gitlab/ci/qa-common/main.gitlab-ci.yml
+++ b/.gitlab/ci/qa-common/main.gitlab-ci.yml
@@ -5,7 +5,7 @@ workflow:
name: $PIPELINE_NAME
include:
- - component: "gitlab.com/gitlab-org/quality/pipeline-common/allure-report@8.2.0"
+ - component: "gitlab.com/gitlab-org/quality/pipeline-common/allure-report@8.3.0"
inputs:
job_name: "e2e-test-report"
job_stage: "report"
@@ -15,7 +15,7 @@ include:
gitlab_auth_token_variable_name: "PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE"
allure_job_name: "${QA_RUN_TYPE}"
- project: gitlab-org/quality/pipeline-common
- ref: 8.2.0
+ ref: 8.4.0
file:
- /ci/base.gitlab-ci.yml
- /ci/knapsack-report.yml
@@ -36,7 +36,7 @@ stages:
.ruby-image:
# Because this pipeline template can be included directly in other projects,
# image path and registry needs to be defined explicitly
- image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-2.3
+ image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-${BUNDLER_VERSION}
.bundler-variables:
variables:
@@ -69,11 +69,6 @@ stages:
QA_INTERCEPT_REQUESTS: "true"
GITLAB_LICENSE_MODE: test
GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN
- before_script:
- - !reference [.qa-base, before_script]
- # Prepend the file paths with the absolute path from inside the container since the files will be read from there
- - export RSPEC_FAST_QUARANTINE_PATH="/home/gitlab/qa/${RSPEC_FAST_QUARANTINE_PATH}"
- - export RSPEC_SKIPPED_TESTS_REPORT_PATH="/home/gitlab/qa/rspec/skipped_tests-${CI_JOB_ID}.txt"
# Allow QA jobs to fail as they are flaky. The top level `package-and-e2e:ee`
# pipeline is not allowed to fail, so without allowing QA to fail, we will be
# blocking merges due to flaky tests.
@@ -98,26 +93,6 @@ stages:
- qa/knapsack/*.json
expire_in: 1 day
-.download-fast-quarantine-report:
- image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}alpine:edge
- stage: .pre
- variables:
- GIT_STRATEGY: none
- before_script:
- - apk add --no-cache --update curl bash
- script:
- - mkdir -p "${QA_RSPEC_REPORT_PATH}"
- - |
- if [[ ! -f "${QA_RSPEC_REPORT_PATH}/${RSPEC_FAST_QUARANTINE_FILE}" ]]; then
- curl --location -o "${QA_RSPEC_REPORT_PATH}/${RSPEC_FAST_QUARANTINE_FILE}" "https://gitlab-org.gitlab.io/quality/engineering-productivity/fast-quarantine/${RSPEC_FAST_QUARANTINE_PATH}" ||
- echo "" > "${QA_RSPEC_REPORT_PATH}/${RSPEC_FAST_QUARANTINE_FILE}"
- fi
- allow_failure: true
- artifacts:
- paths:
- - "${QA_RSPEC_REPORT_PATH}/${RSPEC_FAST_QUARANTINE_FILE}"
- expire_in: 1 day
-
.upload-knapsack-report:
extends:
- .generate-knapsack-report-base
diff --git a/.gitlab/ci/qa-common/rules.gitlab-ci.yml b/.gitlab/ci/qa-common/rules.gitlab-ci.yml
index 31f84441926..9150c0fd97b 100644
--- a/.gitlab/ci/qa-common/rules.gitlab-ci.yml
+++ b/.gitlab/ci/qa-common/rules.gitlab-ci.yml
@@ -67,10 +67,6 @@ include:
rules:
- when: always
-.rules:download-fast-quarantine-report:
- rules:
- - when: always
-
# ------------------------------------------
# Test
# ------------------------------------------
diff --git a/.gitlab/ci/qa-common/variables.gitlab-ci.yml b/.gitlab/ci/qa-common/variables.gitlab-ci.yml
index bc756b6808a..8f24cf1f5e5 100644
--- a/.gitlab/ci/qa-common/variables.gitlab-ci.yml
+++ b/.gitlab/ci/qa-common/variables.gitlab-ci.yml
@@ -1,7 +1,6 @@
# Default variables for package-and-test
variables:
- USE_OLD_RUBY_VERSION: "true"
REGISTRY_HOST: "registry.gitlab.com"
REGISTRY_GROUP: "gitlab-org"
ALLURE_JOB_NAME: $CI_PROJECT_NAME
@@ -14,7 +13,4 @@ variables:
QA_RUN_ALL_TESTS: "true"
# Used by gitlab-qa to set up a volume for `${CI_PROJECT_DIR}/qa/rspec:/home/gitlab/qa/rspec/`
QA_RSPEC_REPORT_PATH: "${CI_PROJECT_DIR}/qa/rspec"
- RSPEC_FAST_QUARANTINE_FILE: "fast_quarantine-gitlab.txt"
- # This path is relative to /home/gitlab/qa/ in the QA container
- RSPEC_FAST_QUARANTINE_PATH: "rspec/${RSPEC_FAST_QUARANTINE_FILE}"
QA_OMNIBUS_MR_TESTS: "only-smoke-reliable"
diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml
index d26df15412f..c2393e5e0d3 100644
--- a/.gitlab/ci/qa.gitlab-ci.yml
+++ b/.gitlab/ci/qa.gitlab-ci.yml
@@ -1,5 +1,5 @@
.qa-job-base:
- image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-2.3-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}
+ image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-${BUNDLER_VERSION}-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}
extends:
- .default-retry
- .qa-cache
@@ -27,6 +27,7 @@
variables:
- CHROME_VERSION
- RUBY_VERSION
+ - BUNDLER_VERSION
- DOCKER_VERSION
- DEBIAN_VERSION
- REGISTRY_GROUP
@@ -90,9 +91,9 @@ trigger-omnibus:
TOP_UPSTREAM_SOURCE_PROJECT: $CI_PROJECT_PATH
SECURITY_SOURCES: $SECURITY_SOURCES
CACHE_UPDATE: $OMNIBUS_GITLAB_CACHE_UPDATE
- USE_OLD_RUBY_VERSION: "true"
- CACHE_EDITION: "GITLAB_RUBY3_0"
- NEXT_RUBY_VERSION: "3.1.4"
+ CACHE_EDITION: $OMNIBUS_GITLAB_CACHE_EDITION
+ USE_SPECIFIED_RUBY_VERSION: "true"
+ RUBY_VERSION: $FULL_RUBY_VERSION
BUILD_ON_ALL_OS: $OMNIBUS_GITLAB_BUILD_ON_ALL_OS
SKIP_QA_TEST: "true"
ee: $EE
@@ -211,3 +212,42 @@ e2e:test-on-gdk:
DYNAMIC_PIPELINE_YML: test-on-gdk-pipeline.yml
SKIP_MESSAGE: Skipping test-on-gdk due to mr containing only quarantine changes!
GDK_IMAGE: "${CI_REGISTRY_IMAGE}/gitlab-qa-gdk:${CI_COMMIT_SHA}"
+
+e2e:code-suggestions-eval:
+ extends:
+ - .qa:rules:code-suggestions-eval
+ stage: qa
+ needs: ["build-gdk-image"]
+ variables:
+ CS_EVAL_DOWNSTREAM_BRANCH: main
+ GITLAB_SHA: $CI_COMMIT_SHA
+ trigger:
+ strategy: depend
+ forward:
+ yaml_variables: true
+ pipeline_variables: true
+ project: gitlab-com/create-stage/code-creation/code-suggestion-scenarios
+ branch: $CS_EVAL_DOWNSTREAM_BRANCH
+
+e2e:code-suggestions-eval-results:
+ extends:
+ - .default-retry
+ - .qa:rules:code-suggestions-eval-results
+ stage: post-qa
+ needs:
+ - e2e:code-suggestions-eval
+ variables:
+ TRIGGER_JOB_NAME: "e2e:code-suggestions-eval"
+ DOWNSTREAM_PROJECT: gitlab-com/create-stage/code-creation/code-suggestion-scenarios
+ DOWNSTREAM_JOB_NAME: run_scenarios
+ DOWNSTREAM_JOB_ARTIFACT_PATH: scores-DOWNSTREAM_JOB_ID.csv
+ OUTPUT_ARTIFACT_PATH: scores.csv
+ before_script:
+ - source scripts/utils.sh
+ - install_gitlab_gem
+ script:
+ - scripts/download-downstream-artifact.rb
+ artifacts:
+ expose_as: 'Code Suggestions evaluation results'
+ paths:
+ - scores.csv
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index 7efcc4b58a3..5a2daa3f134 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -85,7 +85,7 @@ rspec migration pg14:
extends:
- .rspec-base-pg14
- .rspec-base-migration
- - .rspec-migration-parallel-pg14
+ - .rspec-migration-parallel
- .rails:rules:ee-and-foss-migration
rspec background_migration pg14:
@@ -154,8 +154,8 @@ rspec background_migration pg14 clusterwide-db:
rspec unit pg14:
extends:
- .rspec-base-pg14
+ - .rspec-unit-parallel
- .rails:rules:ee-and-foss-unit
- - .rspec-unit-pg14-parallel
rspec unit pg14 single-redis:
extends:
@@ -195,7 +195,7 @@ rspec unit pg14 praefect:
rspec integration pg14:
extends:
- .rspec-base-pg14
- - .rspec-integration-parallel-pg14
+ - .rspec-integration-parallel
- .rails:rules:ee-and-foss-integration
rspec integration pg14 single-redis:
@@ -236,8 +236,8 @@ rspec integration pg14 praefect:
rspec system pg14:
extends:
- .rspec-base-pg14
+ - .rspec-system-parallel
- .rails:rules:ee-and-foss-system
- - .rspec-system-parallel-pg14
variables:
DEBUG_GITLAB_TRANSACTION_STACK: "true"
@@ -303,7 +303,7 @@ rspec unit clickhouse:
rspec-ee unit clickhouse:
extends:
- .rspec-base-pg14-clickhouse23
- - .rails:rules:clickhouse-changes
+ - .rails:rules:ee-only-clickhouse-changes
gitlab:clickhouse:rollback:main:
extends:
@@ -354,7 +354,7 @@ rspec:artifact-collector unit:
- .artifact-collector
- .rails:rules:ee-and-foss-unit
needs:
- - rspec unit pg14 # 24 jobs
+ - rspec unit pg14 # 32 jobs
- job: rspec unit clickhouse # 1 job
optional: true
@@ -363,17 +363,17 @@ rspec:artifact-collector system:
- .artifact-collector
- .rails:rules:ee-and-foss-system
needs:
- - rspec system pg14 # 26 jobs
+ - rspec system pg14 # 32 jobs
rspec:artifact-collector remainder:
extends:
- .artifact-collector
needs:
- - job: rspec integration pg14 # 13 jobs
+ - job: rspec integration pg14 # 16 jobs
optional: true
- - job: rspec migration pg14 # 12 jobs
+ - job: rspec migration pg14 # 15 jobs
optional: true
- - job: rspec background_migration pg14 # 4 jobs
+ - job: rspec background_migration pg14 # 5 jobs
optional: true
rules:
- !reference ['.rails:rules:ee-and-foss-integration', rules]
@@ -385,58 +385,73 @@ rspec:artifact-collector as-if-foss unit:
- .artifact-collector
- .rails:rules:as-if-foss-unit
needs:
- - rspec unit pg14-as-if-foss # 28 jobs
+ - rspec unit pg14-as-if-foss # 32 jobs
rspec:artifact-collector as-if-foss system:
extends:
- .artifact-collector
- .rails:rules:as-if-foss-system
needs:
- - rspec system pg14-as-if-foss # 28 jobs
+ - rspec system pg14-as-if-foss # 32 jobs
rspec:artifact-collector as-if-foss remainder:
extends:
- .artifact-collector
needs:
- - job: rspec integration pg14-as-if-foss # 12 jobs
+ - job: rspec integration pg14-as-if-foss # 16 jobs
optional: true
- - job: rspec migration pg14-as-if-foss # 8 jobs
+ - job: rspec migration pg14-as-if-foss # 15 jobs
optional: true
- - job: rspec background_migration pg14-as-if-foss # 4 jobs
+ - job: rspec background_migration pg14-as-if-foss # 5 jobs
optional: true
rules:
- !reference ['.rails:rules:as-if-foss-integration', rules]
- !reference ['.rails:rules:as-if-foss-migration', rules]
- !reference ['.rails:rules:as-if-foss-background-migration', rules]
-rspec:artifact-collector single-redis:
+rspec:artifact-collector unit single-redis:
extends:
- .artifact-collector
- .rails:rules:single-redis
needs:
- - rspec unit pg14 single-redis # 28 jobs
- - rspec integration pg14 single-redis # 12 jobs
+ - rspec unit pg14 single-redis # 32 jobs
rspec:artifact-collector system single-redis:
extends:
- .artifact-collector
- .rails:rules:single-redis
needs:
- - rspec system pg14 single-redis # 28 jobs
+ - rspec system pg14 single-redis # 32 jobs
+
+rspec:artifact-collector remainder single-redis:
+ extends:
+ - .artifact-collector
+ - .rails:rules:single-redis
+ needs:
+ - rspec integration pg14 single-redis # 16 jobs
rspec:artifact-collector ee single-redis:
extends:
- .artifact-collector
- .rails:rules:single-redis
needs:
- - job: rspec-ee unit pg14 single-redis # 18 jobs
+ - job: rspec-ee unit pg14 single-redis # 28 jobs
optional: true
- - job: rspec-ee integration pg14 single-redis # 6 jobs
+ - job: rspec-ee integration pg14 single-redis # 7 jobs
optional: true
- - job: rspec-ee system pg14 single-redis # 10 jobs
+ - job: rspec-ee system pg14 single-redis # 14 jobs
optional: true
-rspec:artifact-collector ee:
+rspec:artifact-collector ee unit:
+ extends:
+ - .artifact-collector
+ needs:
+ - job: rspec-ee unit pg14 # 28 jobs
+ optional: true
+ rules:
+ - !reference ['.rails:rules:ee-only-unit', rules]
+
+rspec:artifact-collector ee remainder:
extends:
- .artifact-collector
needs:
@@ -444,18 +459,15 @@ rspec:artifact-collector ee:
optional: true
- job: rspec-ee background_migration pg14 # 2 jobs
optional: true
- - job: rspec-ee unit pg14 # 22 jobs
- optional: true
- job: rspec-ee unit clickhouse # 1 job
optional: true
- - job: rspec-ee integration pg14 # 5 jobs
+ - job: rspec-ee integration pg14 # 7 jobs
optional: true
- - job: rspec-ee system pg14 # 12 jobs
+ - job: rspec-ee system pg14 # 14 jobs
optional: true
rules:
- !reference ['.rails:rules:ee-only-migration', rules]
- !reference ['.rails:rules:ee-only-background-migration', rules]
- - !reference ['.rails:rules:ee-only-unit', rules]
- !reference ['.rails:rules:ee-only-integration', rules]
- !reference ['.rails:rules:ee-only-system', rules]
@@ -475,10 +487,12 @@ rspec:coverage:
optional: true
- job: rspec:artifact-collector remainder
optional: true
- - job: rspec:artifact-collector single-redis
+ - job: rspec:artifact-collector unit single-redis
optional: true
- job: rspec:artifact-collector system single-redis
optional: true
+ - job: rspec:artifact-collector remainder single-redis
+ optional: true
# as-if-foss jobs
- job: rspec:artifact-collector as-if-foss unit
optional: true
@@ -489,7 +503,9 @@ rspec:coverage:
# EE jobs
- job: rspec:artifact-collector ee single-redis
optional: true
- - job: rspec:artifact-collector ee
+ - job: rspec:artifact-collector ee unit
+ optional: true
+ - job: rspec:artifact-collector ee remainder
optional: true
# Memory jobs
- job: memory-on-boot
@@ -616,6 +632,7 @@ rspec:predictive:trigger:
artifacts: true
variables:
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
+ GIT_STRATEGY: $GIT_STRATEGY
trigger:
strategy: depend
forward:
@@ -636,7 +653,7 @@ rspec migration pg14-as-if-foss:
extends:
- .rspec-base-pg14-as-if-foss
- .rspec-base-migration
- - .rspec-migration-parallel-pg14-as-if-foss
+ - .rspec-migration-parallel
- .rails:rules:as-if-foss-migration
rspec background_migration pg14-as-if-foss:
@@ -824,25 +841,25 @@ rspec-ee migration pg14 single-db:
extends:
- rspec-ee migration pg14
- .single-db-rspec
- - .rails:rules:single-db
+ - .rails:rules:single-db-ee
rspec-ee background_migration pg14 single-db:
extends:
- rspec-ee background_migration pg14
- .single-db-rspec
- - .rails:rules:single-db
+ - .rails:rules:single-db-ee
rspec-ee migration pg14 single-db-ci-connection:
extends:
- rspec-ee migration pg14
- .single-db-ci-connection-rspec
- - .rails:rules:single-db-ci-connection
+ - .rails:rules:single-db-ci-connection-ee
rspec-ee background_migration pg14 single-db-ci-connection:
extends:
- rspec-ee background_migration pg14
- .single-db-ci-connection-rspec
- - .rails:rules:single-db-ci-connection
+ - .rails:rules:single-db-ci-connection-ee
rspec-ee migration pg14 clusterwide-db:
extends:
@@ -873,8 +890,8 @@ rspec-ee background_migration pg14 praefect:
rspec-ee unit pg14:
extends:
- .rspec-ee-base-pg14
+ - .rspec-ee-unit-parallel
- .rails:rules:ee-only-unit
- - .rspec-ee-unit-pg14-parallel
rspec-ee unit pg14 es8:
extends:
@@ -886,21 +903,21 @@ rspec-ee unit pg14 single-db:
- rspec-ee unit pg14
- .single-db-rspec
- .rspec-ee-unit-parallel
- - .rails:rules:single-db
+ - .rails:rules:single-db-ee
rspec-ee unit pg14 single-redis:
extends:
- rspec-ee unit pg14
- .no-redis-cluster
- .rspec-ee-unit-parallel
- - .rails:rules:single-redis
+ - .rails:rules:single-redis-ee
rspec-ee unit pg14 single-db-ci-connection:
extends:
- rspec-ee unit pg14
- .single-db-ci-connection-rspec
- .rspec-ee-unit-parallel
- - .rails:rules:single-db-ci-connection
+ - .rails:rules:single-db-ci-connection-ee
rspec-ee unit pg14 clusterwide-db:
extends:
@@ -912,8 +929,8 @@ rspec-ee unit pg14 clusterwide-db:
rspec-ee integration pg14:
extends:
- .rspec-ee-base-pg14
+ - .rspec-ee-integration-parallel
- .rails:rules:ee-only-integration
- - .rspec-ee-integration-parallel-pg14
rspec-ee integration pg14 es8:
extends:
@@ -925,21 +942,21 @@ rspec-ee integration pg14 single-db:
- rspec-ee integration pg14
- .single-db-rspec
- .rspec-ee-integration-parallel
- - .rails:rules:single-db
+ - .rails:rules:single-db-ee
rspec-ee integration pg14 single-redis:
extends:
- rspec-ee integration pg14
- .no-redis-cluster
- .rspec-ee-integration-parallel
- - .rails:rules:single-redis
+ - .rails:rules:single-redis-ee
rspec-ee integration pg14 single-db-ci-connection:
extends:
- rspec-ee integration pg14
- .single-db-ci-connection-rspec
- .rspec-ee-integration-parallel
- - .rails:rules:single-db-ci-connection
+ - .rails:rules:single-db-ci-connection-ee
rspec-ee integration pg14 clusterwide-db:
extends:
@@ -951,8 +968,8 @@ rspec-ee integration pg14 clusterwide-db:
rspec-ee system pg14:
extends:
- .rspec-ee-base-pg14
+ - .rspec-ee-system-parallel
- .rails:rules:ee-only-system
- - .rspec-ee-system-parallel-pg14
rspec-ee system pg14 es8:
extends:
@@ -964,21 +981,21 @@ rspec-ee system pg14 single-db:
- rspec-ee system pg14
- .single-db-rspec
- .rspec-ee-system-parallel
- - .rails:rules:single-db
+ - .rails:rules:single-db-ee
rspec-ee system pg14 single-redis:
extends:
- rspec-ee system pg14
- .no-redis-cluster
- .rspec-ee-system-parallel
- - .rails:rules:single-redis
+ - .rails:rules:single-redis-ee
rspec-ee system pg14 single-db-ci-connection:
extends:
- rspec-ee system pg14
- .single-db-ci-connection-rspec
- .rspec-ee-system-parallel
- - .rails:rules:single-db-ci-connection
+ - .rails:rules:single-db-ci-connection-ee
rspec-ee system pg14 clusterwide-db:
extends:
@@ -1223,7 +1240,6 @@ rspec-ee system pg15 es8:
extends:
- .rails:rules:rspec fail-fast
stage: test
- needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-tests"]
script:
- !reference [.base-script, script]
- rspec_fail_fast "${MATCHING_TESTS_PATH}" "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~zoekt --tag ~click_house"
@@ -1270,6 +1286,7 @@ rspec-foss-impact:trigger:
artifacts: true
variables:
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
+ GIT_STRATEGY: $GIT_STRATEGY
trigger:
strategy: depend
forward:
@@ -1298,7 +1315,10 @@ fail-pipeline-early:
extends:
- .rails:rules:rerun-previous-failed-tests
stage: test
- needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-previous-failed-tests"]
+ needs:
+ - !reference [.rspec-base-needs, needs]
+ - job: "compile-test-assets"
+ - job: "detect-previous-failed-tests"
script:
- !reference [.base-script, script]
- rspec_rerun_previous_failed_tests "${PREVIOUS_FAILED_TESTS_FILE}"
diff --git a/.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb b/.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb
index 8a36848b363..97abb26ae7f 100644
--- a/.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb
+++ b/.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb
@@ -24,6 +24,10 @@ dont-interrupt-me:
.base-rspec-foss-impact:
extends: .rspec-base-pg14-as-if-foss
needs:
+ <% if repo_from_artifacts %>
+ - pipeline: $PARENT_PIPELINE_ID
+ job: clone-gitlab-repo
+ <% end %>
- pipeline: $PARENT_PIPELINE_ID
job: detect-tests
- pipeline: $PARENT_PIPELINE_ID
diff --git a/.gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb b/.gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb
index ddcb335d0dd..90f1b6fc5a8 100644
--- a/.gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb
+++ b/.gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb
@@ -23,6 +23,10 @@ dont-interrupt-me:
.base-predictive:
needs:
+ <% if repo_from_artifacts %>
+ - pipeline: $PARENT_PIPELINE_ID
+ job: clone-gitlab-repo
+ <% end %>
- pipeline: $PARENT_PIPELINE_ID
job: detect-tests
- pipeline: $PARENT_PIPELINE_ID
diff --git a/.gitlab/ci/rails/shared.gitlab-ci.yml b/.gitlab/ci/rails/shared.gitlab-ci.yml
index 3194ac0c26f..1f420b9b8ec 100644
--- a/.gitlab/ci/rails/shared.gitlab-ci.yml
+++ b/.gitlab/ci/rails/shared.gitlab-ci.yml
@@ -56,10 +56,18 @@ include:
variables:
GITALY_PRAEFECT_WITH_DB: '1'
+.rspec-base-needs:
+ needs:
+ - job: "clone-gitlab-repo"
+ optional: true # Optional so easier to switch in between
+ - job: "setup-test-env"
+ - job: "retrieve-tests-metadata"
+
.rspec-base:
extends:
- .rails-job-base
- .base-artifacts
+ - .repo-from-artifacts
stage: test
variables:
RUBY_GC_MALLOC_LIMIT: 67108864
@@ -69,8 +77,7 @@ include:
SUCCESSFULLY_RETRIED_TEST_EXIT_CODE: 137
EVENT_PROF: "sql.active_record"
needs:
- - job: "setup-test-env"
- - job: "retrieve-tests-metadata"
+ - !reference [.rspec-base-needs, needs]
- job: "compile-test-assets"
- job: "detect-tests"
optional: true
@@ -163,8 +170,7 @@ include:
- .as-if-foss
- .use-pg14
needs:
- - job: "setup-test-env"
- - job: "retrieve-tests-metadata"
+ - !reference [.rspec-base-needs, needs]
- job: "compile-test-assets as-if-foss"
- job: "detect-tests"
optional: true
@@ -259,10 +265,10 @@ include:
# rspec:artifact-collector jobs in .gitlab/ci/rails.gitlab-ci.yml
# Please double-check and adjust accordingly
.rspec-migration-parallel:
- parallel: 8
+ parallel: 15
.rspec-background-migration-parallel:
- parallel: 4
+ parallel: 5
.rspec-ee-migration-parallel:
parallel: 2
@@ -271,58 +277,19 @@ include:
parallel: 2
.rspec-unit-parallel:
- parallel: 28
+ parallel: 32
.rspec-ee-unit-parallel:
- parallel: 18
+ parallel: 28
.rspec-integration-parallel:
- parallel: 12
+ parallel: 16
.rspec-ee-integration-parallel:
- parallel: 6
+ parallel: 7
.rspec-system-parallel:
- parallel: 28
+ parallel: 32
.rspec-ee-system-parallel:
- parallel: 10
-
-# Optimizations to distribute CI time more evenly across the CI/CD pipeline
-#
-# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133976 for more info
-
-# Giving 4 jobs to `rspec-ee unit pg14`
-.rspec-unit-pg14-parallel:
- parallel: 24
-
-# Receiving 4 jobs from `rspec unit pg14`
-.rspec-ee-unit-pg14-parallel:
- parallel: 22
-
-# Giving 2 jobs to `rspec-ee system pg14`
-.rspec-system-parallel-pg14:
- parallel: 26
-
-# Receiving 2 jobs from `rspec system pg14`
-.rspec-ee-system-parallel-pg14:
- parallel: 12
-
-# Adding 4 jobs, as those needs to be a bit faster.
-.rspec-migration-parallel-pg14:
- parallel: 12
-
-# Adding 2 jobs, as those needs to be a bit faster.
-.rspec-migration-parallel-pg14-as-if-foss:
- parallel: 10
-
-# Giving 1 job to `rspec integration pg14`
-.rspec-ee-integration-parallel-pg14:
- parallel: 5
-
-# Receiving 1 job from `rspec-ee integration pg14`
-.rspec-integration-parallel-pg14:
- parallel: 13
-
-# rspec job parallel configs
-############################
+ parallel: 14
diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml
index 2e963b7857a..c9432394e1c 100644
--- a/.gitlab/ci/reports.gitlab-ci.yml
+++ b/.gitlab/ci/reports.gitlab-ci.yml
@@ -80,7 +80,7 @@ gemnasium-python-dependency_scanning:
extends: .default-retry
stage: test
image:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/security-products/package-hunter-cli:v3.0.0@sha256:e281525b3be870d6618b6bad2685733dcb9908e4eb21f0e5b4fe4bb6f6083f91
+ name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/security-products/package-hunter-cli:v3.0.1@sha256:ffa4af2810fed6922ba9d19badc4636043f54f70db19aebb8253e83142e5da16
entrypoint: [""]
variables:
HTR_user: '$PACKAGE_HUNTER_USER'
@@ -118,3 +118,42 @@ package_hunter-bundler:
- .reports:rules:package_hunter-bundler
variables:
PACKAGE_MANAGER: bundler
+
+xray_scan:
+ extends:
+ - .default-retry
+ - .reports:rules:x-ray
+ stage: lint
+ needs: []
+ image: registry.gitlab.com/gitlab-org/code-creation/repository-x-ray:rc
+ variables:
+ OUTPUT_DIR: reports
+ allow_failure: true
+ script:
+ - x-ray-scan -p "$CI_PROJECT_DIR" -o "$OUTPUT_DIR"
+ artifacts:
+ # this line uses xray_scan job output as source for GitLab Rails code gen feature
+ reports:
+ repository_xray: "$OUTPUT_DIR/*/*.json"
+ # this line saves xray_scan job output in raw form for inspection for testing purposes
+ paths:
+ - "$OUTPUT_DIR/*/*.json"
+
+pajamas_adoption:
+ extends:
+ - .default-retry
+ - .reports:rules:pajamas_adoption
+ allow_failure: true
+ image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/frontend/pajamas-adoption-scanner:latest
+ stage: lint
+ needs: []
+ script:
+ - EE_APP=$(test -d ee/app/ && echo 'ee/app/' || true)
+ - scan_gitlab_code_quality app/ $EE_APP
+ artifacts:
+ name: pajamas-adoption
+ paths:
+ - gl-code-quality-report.json
+ - pas-findings.json
+ reports:
+ codequality: gl-code-quality-report.json
diff --git a/.gitlab/ci/review-apps/qa.gitlab-ci.yml b/.gitlab/ci/review-apps/qa.gitlab-ci.yml
index 6030db7264d..1aa2272492e 100644
--- a/.gitlab/ci/review-apps/qa.gitlab-ci.yml
+++ b/.gitlab/ci/review-apps/qa.gitlab-ci.yml
@@ -2,17 +2,6 @@ include:
- local: .gitlab/ci/qa-common/main.gitlab-ci.yml
- template: Verify/Browser-Performance.gitlab-ci.yml
-.test-variables:
- variables:
- QA_GENERATE_ALLURE_REPORT: "true"
- QA_CAN_TEST_PRAEFECT: "false"
- GITLAB_USERNAME: "root"
- GITLAB_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
- GITLAB_ADMIN_USERNAME: "root"
- GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
- GITLAB_QA_ADMIN_ACCESS_TOKEN: "${REVIEW_APPS_ROOT_TOKEN}"
- GITHUB_ACCESS_TOKEN: "${QA_GITHUB_ACCESS_TOKEN}"
-
.bundle-base:
extends:
- .qa-cache
@@ -20,30 +9,34 @@ include:
before_script:
- cd qa && bundle install
-.review-qa-base:
- image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-2.3-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-383-kubectl-1.23
+review-qa-smoke:
extends:
- .use-docker-in-docker
- .bundle-base
- - .test-variables
+ - .default-retry
+ - .rules:qa-smoke
+ image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-${BUNDLER_VERSION}-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-383-kubectl-1.23
stage: qa
- needs:
- - review-deploy
- - download-knapsack-report
- - pipeline: $PARENT_PIPELINE_ID
- job: retrieve-tests-metadata
+ needs: [review-deploy]
variables:
- GIT_LFS_SKIP_SMUDGE: 1
- WD_INSTALL_DIR: /usr/local/bin
RSPEC_REPORT_OPTS: --force-color --order random --format documentation --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml
+ GITLAB_USERNAME: "root"
+ GITLAB_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
+ GITLAB_ADMIN_USERNAME: "root"
+ GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
+ GITLAB_QA_ADMIN_ACCESS_TOKEN: "${REVIEW_APPS_ROOT_TOKEN}"
+ GITHUB_ACCESS_TOKEN: "${QA_GITHUB_ACCESS_TOKEN}"
+ COLORIZED_LOGS: "true"
+ QA_GENERATE_ALLURE_REPORT: "true"
+ QA_CAN_TEST_PRAEFECT: "false"
script:
- - QA_COMMAND="bundle exec bin/qa ${QA_SCENARIO} ${QA_GITLAB_URL} -- ${QA_TESTS} ${RSPEC_REPORT_OPTS}"
+ - QA_COMMAND="bundle exec bin/qa Test::Instance::Smoke ${QA_GITLAB_URL} -- ${QA_TESTS} ${RSPEC_REPORT_OPTS}"
- echo "Running - '${QA_COMMAND}'"
- eval "$QA_COMMAND"
after_script:
- |
echo "Sentry errors for the current review-app test run can be found via following url:"
- echo "https://sentry.gitlab.net/gitlab/gitlab-review-apps/releases/$(echo "${CI_COMMIT_SHA}" | cut -c1-11)/all-events/."
+ echo "https://new-sentry.gitlab.net/organizations/gitlab/releases/$(echo "${CI_COMMIT_SHA}" | cut -c1-11)/?environment=review&issuesType=all&project=19"
artifacts:
paths:
- qa/tmp
@@ -52,61 +45,18 @@ include:
expire_in: 7 days
when: always
-# Store knapsack report as artifact so the same report is reused across all jobs
-download-knapsack-report:
- extends:
- - .bundle-base
- - .rules:prepare-report
- stage: prepare
- script:
- - bundle exec rake "knapsack:download[qa]"
- allow_failure: true
- artifacts:
- paths:
- - qa/knapsack/review-qa-*.json
- expire_in: 1 day
-
-review-qa-smoke:
- extends:
- - .review-qa-base
- - .rules:qa-smoke
- variables:
- QA_SCENARIO: Test::Instance::Smoke
-
-review-qa-blocking:
- extends:
- - .review-qa-base
- - .rules:qa-blocking
- variables:
- QA_SCENARIO: Test::Instance::ReviewBlocking
- retry: 1
-review-qa-blocking-parallel:
- extends:
- - review-qa-blocking
- - .rules:qa-blocking-parallel
- parallel: 10
-
-review-qa-non-blocking:
- extends:
- - .review-qa-base
- - .rules:qa-non-blocking
- variables:
- QA_SCENARIO: Test::Instance::ReviewNonBlocking
- when: manual
- allow_failure: true
-review-qa-non-blocking-parallel:
- extends:
- - review-qa-non-blocking
- - .rules:qa-non-blocking-parallel
- parallel: 5
-
browser_performance:
extends:
- .default-retry
- .review:rules:review-performance
+ image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}docker:${DOCKER_VERSION}-git
+ services:
+ - docker:${DOCKER_VERSION}-dind
stage: qa
needs: ["review-deploy"]
variables:
+ DOCKER_HOST: tcp://docker:2375
+ DOCKER_TLS_CERTDIR: ""
URL: environment_url.txt
e2e-test-report:
@@ -115,26 +65,6 @@ e2e-test-report:
variables:
ALLURE_RESULTS_GLOB: "qa/tmp/allure-results"
-upload-knapsack-report:
- extends:
- - .generate-knapsack-report-base
- - .bundle-base
- stage: report
- variables:
- QA_KNAPSACK_REPORT_FILE_PATTERN: $CI_PROJECT_DIR/qa/tmp/knapsack/*/*.json
-
-delete-test-resources:
- extends:
- - .bundle-base
- - .rules:prepare-report
- stage: report
- variables:
- GITLAB_QA_ACCESS_TOKEN: $REVIEW_APPS_ROOT_TOKEN
- script:
- - export GITLAB_ADDRESS="$QA_GITLAB_URL"
- - bundle exec rake "test_resources:delete[$CI_PROJECT_DIR/qa/tmp/test-resources-*.json]"
- allow_failure: true
-
notify-slack:
extends:
- .notify-slack
diff --git a/.gitlab/ci/review-apps/rules.gitlab-ci.yml b/.gitlab/ci/review-apps/rules.gitlab-ci.yml
index a4b667c6645..3c8169a4722 100644
--- a/.gitlab/ci/review-apps/rules.gitlab-ci.yml
+++ b/.gitlab/ci/review-apps/rules.gitlab-ci.yml
@@ -1,19 +1,6 @@
# ------------------------------------------
# Conditions
# ------------------------------------------
-# Specific specs passed
-.specific-specs: &specific-specs
- if: $QA_TESTS != ""
-
-# No specific specs passed
-.all-specs: &all-specs
- if: $QA_TESTS == ""
-
-# No specific specs in mr pipeline
-.all-specs-mr: &all-specs-mr
- if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $QA_TESTS == ""'
- when: manual
-
# Triggered by change pattern
.app-changes: &app-changes
if: $APP_CHANGE_TRIGGER == "true"
@@ -48,29 +35,6 @@
- "{,ee/,jh/}{bin,config}/**/*.rb"
# ------------------------------------------
-# Conditions set
-# ------------------------------------------
-.qa-manual: &qa-manual
- when: manual
- allow_failure: true
- variables:
- QA_TESTS: ""
-
-.never-when-qa-run-all-tests-or-no-specific-specs:
- - <<: *qa-run-all-tests
- when: never
- - <<: *all-specs
- when: never
-
-.never-when-specific-specs-always-when-qa-run-all-tests:
- - *qa-run-all-tests
- - <<: *specific-specs
- when: manual
- allow_failure: true
- variables:
- QA_TESTS: ""
-
-# ------------------------------------------
# Prepare
# ------------------------------------------
.rules:dont-interrupt:
@@ -112,32 +76,11 @@
QA_TESTS: "" # unset QA_TESTS even if specific tests were inferred from stage label
- *qa-run-all-tests
- if: $QA_SUITES =~ /Test::Instance::Smoke/
- - *qa-manual
-
-.rules:qa-blocking:
- rules:
- - <<: *app-changes
- when: never
- - !reference [.never-when-qa-run-all-tests-or-no-specific-specs]
- - if: $QA_SUITES =~ /Test::Instance::ReviewBlocking/
-.rules:qa-blocking-parallel:
- rules:
- # always trigger blocking suite if review pipeline got triggered by specific changes in application code
- - <<: *app-changes
+ # keep option to trigger tests manually even if no rules match
+ - when: manual
+ allow_failure: true
variables:
- QA_TESTS: "" # unset QA_TESTS even if specific tests were inferred from stage label
- - !reference [.never-when-specific-specs-always-when-qa-run-all-tests]
- - if: $QA_SUITES =~ /Test::Instance::ReviewBlocking/
-
-.rules:qa-non-blocking:
- rules:
- - !reference [.never-when-qa-run-all-tests-or-no-specific-specs]
- - if: $QA_SUITES =~ /Test::Instance::ReviewNonBlocking/
-.rules:qa-non-blocking-parallel:
- rules:
- - !reference [.never-when-specific-specs-always-when-qa-run-all-tests]
- - *all-specs-mr # set full suite to manual when no specific specs passed in mr
- - if: $QA_SUITES =~ /Test::Instance::ReviewNonBlocking/
+ QA_TESTS: ""
.review:rules:review-performance:
rules:
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml
index 1159bccb114..99ff65180c1 100644
--- a/.gitlab/ci/review.gitlab-ci.yml
+++ b/.gitlab/ci/review.gitlab-ci.yml
@@ -87,7 +87,6 @@ start-review-app-pipeline:
# https://gitlab.com/gitlab-org/gitlab/-/issues/387183
inherit:
variables:
- - CHROME_VERSION
- REGISTRY_GROUP
- REGISTRY_HOST
- REVIEW_APPS_DOMAIN
@@ -96,6 +95,9 @@ start-review-app-pipeline:
- REVIEW_APPS_IMAGE
- RUBY_VERSION
- DEBIAN_VERSION
+ - DOCKER_VERSION
+ - CHROME_VERSION
+ - BUNDLER_VERSION
# These variables are set in the pipeline schedules.
# They need to be explicitly passed on to the child pipeline.
diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index 165c2159bdf..ab603ecb9f2 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -21,7 +21,7 @@
if: '$FORCE_GITLAB_CI'
.if-default-refs: &if-default-refs
- if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ || $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/ || $CI_COMMIT_REF_NAME =~ /^security\// || $CI_COMMIT_REF_NAME == "ruby3_1" || ($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") || $CI_COMMIT_TAG || $FORCE_GITLAB_CI'
+ if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ || $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/ || $CI_COMMIT_REF_NAME =~ /^security\// || $CI_COMMIT_REF_NAME =~ /^ruby\d+(_\d)*$/ || ($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") || $CI_COMMIT_TAG || $FORCE_GITLAB_CI'
.if-default-branch-refs: &if-default-branch-refs
if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_IID == null'
@@ -59,18 +59,15 @@
.if-merge-request-targeting-stable-branch: &if-merge-request-targeting-stable-branch
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee|-jh)?$/'
-.if-merge-request-labels-run-in-ruby3_0: &if-merge-request-labels-run-in-ruby3_0
- if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_0/'
-
-.if-merge-request-labels-run-in-ruby3_1: &if-merge-request-labels-run-in-ruby3_1
- if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_1/'
-
-.if-merge-request-labels-run-in-ruby3_2: &if-merge-request-labels-run-in-ruby3_2
- if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_2/'
+.if-merge-request-labels-run-in-ruby: &if-merge-request-labels-run-in-ruby
+ if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby\d+(_\d)*/'
.if-merge-request-labels-as-if-foss: &if-merge-request-labels-as-if-foss
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss/'
+.if-merge-request-labels-as-if-foss-cross-project: &if-merge-request-labels-as-if-foss-cross-project
+ if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss-cross-project/'
+
.if-merge-request-labels-as-if-jh: &if-merge-request-labels-as-if-jh
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-jh/'
@@ -95,6 +92,9 @@
.if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/'
+.if-merge-request-labels-run-cs-evaluation: &if-merge-request-labels-run-cs-evaluation
+ if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-CS-evaluation/'
+
.if-merge-request-labels-skip-undercoverage: &if-merge-request-labels-skip-undercoverage
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:skip-undercoverage/'
@@ -125,8 +125,8 @@
.if-default-branch-schedule-nightly: &if-default-branch-schedule-nightly
if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "nightly"'
-.if-ruby3_1-branch-schedule-nightly: &if-ruby3_1-branch-schedule-nightly
- if: '$CI_COMMIT_BRANCH == "ruby3_1" && $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "nightly"'
+.if-ruby-branch-schedule-nightly: &if-ruby-branch-schedule-nightly
+ if: '$CI_COMMIT_BRANCH =~ /^ruby\d+(_\d)*$/ && $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "nightly"'
.if-security-schedule: &if-security-schedule
if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_PIPELINE_SOURCE == "schedule"'
@@ -161,8 +161,8 @@
.if-dot-com-gitlab-org-and-security-tag: &if-dot-com-gitlab-org-and-security-tag
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_COMMIT_TAG'
-.if-ruby3_1-branch: &if-ruby3_1-branch
- if: '$CI_COMMIT_BRANCH == "ruby3_1" || $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_1/'
+.if-ruby-branch: &if-ruby-branch
+ if: '$CI_COMMIT_BRANCH =~ /^ruby\d+(_\d)*$/ || $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby\d+(_\d)*/'
####################
# Changes patterns #
@@ -873,6 +873,7 @@
when: never
- <<: *if-merge-request-labels-pipeline-expedite
when: never
+ - if: '$ENABLE_BUILD_QA_IMAGE == "true"'
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
- <<: *if-merge-request-labels-run-review-app
@@ -911,13 +912,12 @@
- <<: *if-dot-com-gitlab-org-schedule
variables:
ARCH: amd64,arm64
- - <<: *if-ruby3_1-branch
+ - <<: *if-ruby-branch
- !reference [".releases:rules:canonical-dot-com-gitlab-stable-branch-only-setup-test-env-patterns", rules]
.build-images:rules:build-qa-image-as-if-foss:
rules:
- - <<: *if-jh
- when: never
+ - !reference [".strict-ee-only-rules", rules]
- !reference [".build-images:rules:build-qa-image-merge-requests", "rules"]
- <<: *if-default-branch-schedule-nightly
variables:
@@ -947,12 +947,13 @@
# The rest are included to be consistent with .qa:rules:e2e:test-on-gdk
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
- - <<: *if-ruby3_1-branch
+ - <<: *if-ruby-branch
# We include the job under the matching conditions below, but unlike in .qa:rules:e2e:test-on-gdk we don't need to
# set OMNIBUS_GITLAB_BUILD_ON_ALL_OS when testing against GDK
- <<: *if-merge-request
changes: *dependency-patterns
- <<: *if-merge-request-labels-run-all-e2e
+ - <<: *if-merge-request-labels-run-cs-evaluation
- <<: *if-merge-request
changes: *feature-flag-development-config-patterns
- <<: *if-merge-request
@@ -977,9 +978,10 @@
when: never
- <<: *if-merge-request-labels-pipeline-expedite
when: never
+ - if: '$ENABLE_BUILD_ASSETS_IMAGE == "true"'
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
- - <<: *if-ruby3_1-branch
+ - <<: *if-ruby-branch
- <<: *if-merge-request-labels-run-review-app
- <<: *if-auto-deploy-branches
- <<: *if-default-refs
@@ -1073,8 +1075,10 @@
######################
.ci-templates:rules:shellcheck:
rules:
- - changes: *ci-templates-patterns
- - changes:
+ - <<: *if-default-refs
+ changes: *ci-templates-patterns
+ - <<: *if-default-refs
+ changes:
- scripts/lint_templates_bash.rb
######################
@@ -1198,11 +1202,12 @@
when: never
- <<: *if-merge-request-labels-pipeline-expedite
when: never
+ - if: '$ENABLE_COMPILE_PRODUCTION_ASSETS == "true"'
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
- <<: *if-merge-request-labels-run-review-app
- <<: *if-auto-deploy-branches
- - <<: *if-ruby3_1-branch
+ - <<: *if-ruby-branch
- <<: *if-default-refs
changes: *ci-build-images-patterns
- <<: *if-default-refs
@@ -1227,6 +1232,7 @@
.frontend:rules:compile-test-assets:
rules:
+ - if: '$ENABLE_COMPILE_TEST_ASSETS == "true"'
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request
changes: *backend-patterns
@@ -1250,6 +1256,12 @@
rules:
- <<: *if-merge-request-labels-pipeline-expedite
when: never
+ - if: '$ENABLE_JEST_INTEGRATION == "true"'
+ - if: '$ENABLE_RSPEC_FRONTEND_FIXTURE == "true"'
+ - if: '$ENABLE_ESLINT == "true"'
+ - if: '$ENABLE_COMPILE_STORYBOOK == "true"'
+ - if: '$ENABLE_GRAPHQL_SCHEMA_DUMP == "true"'
+ - if: '$ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA == "true"'
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request-labels-frontend-and-feature-flag
- <<: *if-default-refs
@@ -1300,6 +1312,7 @@
when: never
- <<: *if-fork-merge-request
when: never
+ - if: '$ENABLE_JEST == "true"'
- <<: *if-merge-request-labels-run-all-jest
- <<: *if-merge-request-labels-frontend-and-feature-flag
- <<: *if-merge-request
@@ -1475,11 +1488,13 @@
.qa:rules:internal:
rules:
+ - if: '$ENABLE_QA_INTERNAL == "true"'
- <<: *if-default-refs
changes: *qa-patterns
-.qa:rules:ee-and-foss:
+.qa:rules:selectors:
rules:
+ - if: '$ENABLE_QA_SELECTORS == "true"'
- <<: *if-default-refs
changes: *code-qa-patterns
@@ -1514,7 +1529,7 @@
allow_failure: true
- <<: *if-dot-com-gitlab-org-schedule
allow_failure: true
- - <<: *if-ruby3_1-branch
+ - <<: *if-ruby-branch
# Rules to support .qa:rules:package-and-test-ee
- <<: *if-merge-request
changes: *dependency-patterns
@@ -1543,10 +1558,7 @@
- !reference [".qa:rules:package-and-test-never-run", rules]
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
- - <<: *if-ruby3_1-branch
- variables:
- USE_OLD_RUBY_VERSION: 'false'
- CACHE_EDITION: 'GITLAB_RUBY3_1'
+ - <<: *if-ruby-branch
- <<: *if-merge-request
changes: *dependency-patterns
variables:
@@ -1588,10 +1600,7 @@
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
allow_failure: true
- - <<: *if-ruby3_1-branch
- variables:
- USE_OLD_RUBY_VERSION: 'false'
- CACHE_EDITION: 'GITLAB_RUBY3_1'
+ - <<: *if-ruby-branch
allow_failure: true
- <<: *if-merge-request
changes: *dependency-patterns
@@ -1639,10 +1648,7 @@
- !reference [".qa:rules:package-and-test-never-run", rules]
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
- - <<: *if-ruby3_1-branch
- variables:
- USE_OLD_RUBY_VERSION: 'false'
- CACHE_EDITION: 'GITLAB_RUBY3_1'
+ - <<: *if-ruby-branch
- <<: *if-merge-request
# Certain components trigger a rebuild of the e2e GDK image so we want to test it too
changes: *gdk-component-patterns
@@ -1682,6 +1688,27 @@
rules:
- <<: [*if-dot-com-gitlab-org-schedule, *qa-e2e-test-schedule-variables]
+.qa:rules:code-suggestions-eval-base:
+ rules:
+ - !reference [".strict-ee-only-rules", rules]
+ - <<: *if-fork-merge-request
+ when: never
+ - <<: *if-merge-request-labels-run-cs-evaluation
+
+.qa:rules:code-suggestions-eval:
+ rules:
+ - !reference [".qa:rules:code-suggestions-eval-base", rules]
+ - <<: *if-merge-request
+ changes: *code-patterns
+ when: manual
+ allow_failure: true
+
+.qa:rules:code-suggestions-eval-results:
+ rules:
+ - !reference [".qa:rules:code-suggestions-eval-base", rules]
+ - <<: *if-merge-request
+ changes: *code-patterns
+
# Note: If any changes are made to this rule, the following should also be updated:
# 1) .qa:rules:manual-omnibus-and-follow-up-e2e
# 2) .qa:rules:follow-up-e2e
@@ -1758,7 +1785,7 @@
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
when: never
- - <<: *if-ruby3_1-branch
+ - <<: *if-ruby-branch
when: never
- <<: *if-merge-request
changes: *dependency-patterns
@@ -1805,7 +1832,7 @@
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
when: never
- - <<: *if-ruby3_1-branch
+ - <<: *if-ruby-branch
when: never
- <<: *if-merge-request
changes: *dependency-patterns
@@ -1844,7 +1871,7 @@
- <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns
when: never
- - <<: *if-ruby3_1-branch
+ - <<: *if-ruby-branch
when: never
- <<: *if-merge-request
changes: *dependency-patterns
@@ -1892,6 +1919,7 @@
###############
.rails:rules:setup-test-env:
rules:
+ - if: '$ENABLE_RSPEC == "true"'
- <<: *if-default-refs
changes: *setup-test-env-patterns
- <<: *if-merge-request-labels-run-all-rspec
@@ -1911,6 +1939,12 @@
changes: *redis-patterns
- <<: *if-default-branch-schedule-nightly
+.rails:rules:single-redis-ee:
+ rules:
+ - <<: *if-not-ee
+ when: never
+ - !reference [".rails:rules:single-redis", "rules"]
+
.rails:rules:single-db:
rules:
- <<: *if-merge-request-labels-run-single-db
@@ -1922,6 +1956,12 @@
changes: *decomposed-db-models-patterns
- <<: *if-default-branch-schedule-nightly
+.rails:rules:single-db-ee:
+ rules:
+ - <<: *if-not-ee
+ when: never
+ - !reference [".rails:rules:single-db", "rules"]
+
.rails:rules:single-db-as-if-foss:
rules:
- !reference [".strict-ee-only-rules", rules]
@@ -1948,6 +1988,12 @@
changes: *decomposed-db-models-patterns
- <<: *if-default-branch-schedule-nightly
+.rails:rules:single-db-ci-connection-ee:
+ rules:
+ - <<: *if-not-ee
+ when: never
+ - !reference [".rails:rules:single-db-ci-connection", "rules"]
+
.rails:rules:single-db-ci-connection-as-if-foss:
rules:
- !reference [".strict-ee-only-rules", rules]
@@ -1995,6 +2041,7 @@
when: never
- <<: *if-merge-request-labels-pipeline-expedite
when: never
+ - if: '$ENABLE_RSPEC_MIGRATION == "true"'
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request
changes: *core-backend-patterns
@@ -2026,6 +2073,7 @@
.rails:rules:ee-and-foss-background-migration:
rules:
+ - if: '$ENABLE_RSPEC_BACKGROUND_MIGRATION == "true"'
- !reference [".rails:rules:ee-and-foss-migration", rules]
- <<: *if-default-refs
changes: *backend-patterns
@@ -2050,16 +2098,33 @@
rules:
- <<: *if-fork-merge-request
when: never
+ - if: '$ENABLE_RSPEC_UNIT == "true"'
- !reference [".rails:rules:ee-and-foss-default-rules", rules]
- <<: *if-default-refs
changes: *backend-patterns
- <<: *if-default-refs
changes: *backstage-patterns
+.rails:rules:clickhouse-changes:
+ rules:
+ - <<: *if-fork-merge-request
+ when: never
+ - if: '$ENABLE_RSPEC_UNIT == "true"'
+ - !reference [".rails:rules:ee-and-foss-default-rules", rules]
+ - <<: *if-default-refs
+ changes: *backend-patterns
+
+.rails:rules:ee-only-clickhouse-changes:
+ rules:
+ - <<: *if-not-ee
+ when: never
+ - !reference [".rails:rules:clickhouse-changes", rules]
+
.rails:rules:ee-and-foss-integration:
rules:
- <<: *if-fork-merge-request
when: never
+ - if: '$ENABLE_RSPEC_INTEGRATION == "true"'
- !reference [".rails:rules:ee-and-foss-default-rules", rules]
- <<: *if-default-refs
changes: *backend-patterns
@@ -2068,12 +2133,14 @@
rules:
- <<: *if-fork-merge-request
when: never
+ - if: '$ENABLE_RSPEC_SYSTEM == "true"'
- !reference [".rails:rules:system-default-rules", rules]
- <<: *if-default-refs
changes: *code-backstage-patterns
.rails:rules:ee-and-foss-fast_spec_helper:
rules:
+ - if: '$ENABLE_RSPEC_FAST_SPEC_HELPER == "true"'
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request
changes: *backend-patterns
@@ -2385,18 +2452,13 @@
changes: *code-backstage-patterns
when: always
-.rails:rules:clickhouse-changes:
- rules:
- - <<: *if-dot-com-ee-schedule-default-branch-maintenance
- - <<: *if-merge-request
- changes: *backend-patterns
-
#########################
# Static analysis rules #
#########################
.static-analysis:rules:static-analysis:
rules:
+ - if: '$ENABLE_STATIC_ANALYSIS == "true"'
- <<: *if-default-refs
changes: *code-backstage-qa-patterns
- <<: *if-default-refs
@@ -2625,6 +2687,31 @@
- <<: *if-merge-request
changes: ["Gemfile.lock"]
+.reports:rules:x-ray:
+ rules:
+ - <<: *if-default-branch-refs
+ changes: *dependency-patterns
+ - <<: *if-merge-request
+ changes: *dependency-patterns
+ when: never
+ - <<: *if-merge-request
+ changes: [".gitlab/ci/reports.gitlab-ci.yml"]
+ when: manual
+ - when: never
+
+.reports:rules:pajamas_adoption:
+ rules:
+ - <<: *if-not-ee
+ when: never
+ - <<: *if-jh
+ when: never
+ - <<: *if-merge-request-labels-pipeline-expedite
+ when: never
+ - <<: *if-merge-request
+ changes:
+ - '{,ee/}app/**/*.{js,vue,rb,haml}'
+ - <<: *if-default-refs
+
################
# Review rules #
################
@@ -2675,7 +2762,6 @@
- <<: *if-dot-com-gitlab-org-schedule
allow_failure: true
variables:
- KNAPSACK_GENERATE_REPORT: "true"
QA_SAVE_TEST_METRICS: "true"
QA_EXPORT_TEST_METRICS: "false" # on main runs, metrics are exported to separate bucket via rake task for better consistency
@@ -2785,6 +2871,10 @@
- when: manual
allow_failure: true
+.setup:rules:clone-gitlab-repo:
+ rules:
+ - if: '$CI_FETCH_REPO_GIT_STRATEGY == "none"'
+
.setup:rules:gitlab_git_test:
rules:
- <<: *if-merge-request-labels-pipeline-expedite
@@ -2794,7 +2884,7 @@
.setup:rules:verify-default-ruby:
rules:
- - <<: *if-merge-request-labels-run-in-ruby3_2
+ - <<: *if-merge-request-labels-run-in-ruby
.setup:rules:verify-tests-yml:
rules:
@@ -2850,6 +2940,7 @@
#######################
.test-metadata:rules:retrieve-tests-metadata:
rules:
+ - if: '$ENABLE_RSPEC == "true"'
- <<: *if-default-refs
changes: *code-backstage-patterns
- <<: *if-default-refs
@@ -2901,6 +2992,33 @@
- <<: *if-default-refs
changes: *lint-metrics-yaml-patterns
+####################
+# as-if-foss rules #
+####################
+.as-if-foss:rules:start-as-if-foss:
+ rules:
+ - if: '$AS_IF_FOSS_TOKEN == null'
+ when: never
+ - !reference [".strict-ee-only-rules", rules]
+ - <<: *if-merge-request-labels-as-if-foss-cross-project
+
+.as-if-foss:rules:start-as-if-foss:allow-failure:manual:
+ rules:
+ - if: '$AS_IF_FOSS_TOKEN == null'
+ when: never
+ - !reference [".strict-ee-only-rules", rules]
+ - <<: *if-merge-request-labels-as-if-foss-cross-project
+ when: manual
+ allow_failure: true
+
+.as-if-foss:rules:start-as-if-foss:allow-failure:
+ rules:
+ - if: '$AS_IF_FOSS_TOKEN == null'
+ when: never
+ - !reference [".strict-ee-only-rules", rules]
+ - <<: *if-merge-request-labels-as-if-foss-cross-project
+ allow_failure: true
+
##################
# as-if-jh rules #
##################
@@ -2972,3 +3090,17 @@
when: manual
- <<: *if-merge-request-labels-run-all-rspec
when: manual
+
+###############################
+# Observability Backend rules #
+###############################
+.observability-backend:rules:
+ rules:
+ - <<: *if-merge-request
+ changes: *code-patterns
+ when: manual
+ allow_failure: true
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ when: manual
+ allow_failure: true
diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml
index a101901d57b..47bc73a9558 100644
--- a/.gitlab/ci/setup.gitlab-ci.yml
+++ b/.gitlab/ci/setup.gitlab-ci.yml
@@ -43,6 +43,20 @@ dont-interrupt-me:
script:
- echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible."
+clone-gitlab-repo:
+ extends:
+ - .absolutely-predictive-job
+ - .setup:rules:clone-gitlab-repo
+ stage: sync
+ script:
+ - echo OK
+ variables:
+ GIT_STRATEGY: clone
+ artifacts:
+ paths:
+ - '*'
+ expire_in: '12 hours'
+
gitlab_git_test:
extends:
- .predictive-job
@@ -57,8 +71,7 @@ verify-default-ruby:
- .setup:rules:verify-default-ruby
stage: prepare
script:
- - echo 'Please remove label ~"pipeline:run-in-ruby3_2" so we do test against default Ruby version before merging the merge request'
- - echo 'This does not work yet. See https://gitlab.com/gitlab-org/gitlab/-/issues/428537'
+ - echo 'Please remove label ~"pipeline:run-in-ruby3_2" or ~"pipeline:run-in-ruby3_0" so we do test against default Ruby version before merging the merge request'
- exit 1
verify-tests-yml:
@@ -193,8 +206,7 @@ trigger-omnibus-env:
echo "OMNIBUS_GITLAB_CACHE_UPDATE=${OMNIBUS_GITLAB_CACHE_UPDATE:-false}" >> $BUILD_ENV
for version_file in *_VERSION; do echo "$version_file=$(cat $version_file)" >> $BUILD_ENV; done
echo "OMNIBUS_GITLAB_BUILD_ON_ALL_OS=${OMNIBUS_GITLAB_BUILD_ON_ALL_OS:-false}" >> $BUILD_ENV
- echo "USE_OLD_RUBY_VERSION=${USE_OLD_RUBY_VERSION:-false}" >> $BUILD_ENV
- echo "NEXT_RUBY_VERSION=${NEXT_RUBY_VERSION}" >> $BUILD_ENV
+ ruby -e 'puts "FULL_RUBY_VERSION=#{RUBY_VERSION}"' >> $BUILD_ENV
echo "GITLAB_ASSETS_TAG=$(assets_image_tag)" >> $BUILD_ENV
echo "EE=$([[ $FOSS_ONLY == '1' ]] && echo 'false' || echo 'true')" >> $BUILD_ENV
define_trigger_branch_in_build_env
diff --git a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml
index b237a8f8d43..186025eff71 100644
--- a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml
+++ b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml
@@ -42,7 +42,7 @@ include:
- !reference [.rules:test:manual, rules]
.gdk-qa-base:
- image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-2.3-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-383-kubectl-1.23
+ image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-${BUNDLER_VERSION}-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-383-kubectl-1.23
extends:
- .qa-cache
- .default-retry
@@ -138,11 +138,6 @@ download-knapsack-report:
- cd qa && bundle install
after_script: []
-download-fast-quarantine-report:
- extends:
- - .download-fast-quarantine-report
- - .rules:download-fast-quarantine-report
-
# ==========================================
# Test stage
# ==========================================
diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md
index 19796eda71a..5ae90aa4671 100644
--- a/.gitlab/issue_templates/Feature Flag Roll Out.md
+++ b/.gitlab/issue_templates/Feature Flag Roll Out.md
@@ -1,16 +1,14 @@
<!-- Title suggestion: [Feature flag] Enable <feature-flag-name> -->
-[main-issue]: MAIN-ISSUE-LINK
-
## Summary
-This issue is to roll out [the feature][main-issue] on production,
+This issue is to roll out [the feature](<feature-issue-link>) on production,
that is currently behind the `<feature-flag-name>` feature flag.
## Owners
-- Most appropriate Slack channel to reach out to: `#g_TEAM_NAME`
-- Best individual to reach out to: GITLAB_USERNAME_OF_DRI
+- Most appropriate Slack channel to reach out to: `#<slack-channel-of-dri-team>`
+- Best individual to reach out to: @<gitlab-username-of-dri>
## Expectations
@@ -52,7 +50,7 @@ and cross-posted (with the command results) to the responsible team's Slack chan
- [ ] Depending on the [type of actor](https://docs.gitlab.com/ee/development/feature_flags/#feature-actors) you are using, pick one of these options:
- For **project-actor**: `/chatops run feature set --project=gitlab-org/gitlab,gitlab-org/gitlab-foss,gitlab-com/www-gitlab-com <feature-flag-name> true`
- For **group-actor**: `/chatops run feature set --group=gitlab-org,gitlab-com <feature-flag-name> true`
- - For **user-actor**: `/chatops run feature set --user=<your-username> <feature-flag-name> true`
+ - For **user-actor**: `/chatops run feature set --user=<gitlab-username-of-dri> <feature-flag-name> true`
- [ ] Verify that the feature works for the specific actors.
### Preparation before global rollout
@@ -64,7 +62,7 @@ and cross-posted (with the command results) to the responsible team's Slack chan
- [ ] Ensure that you or a representative in development can be available for at least 2 hours after feature flag updates in production.
If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the `@sre-oncall` Slack alias.
- [ ] Ensure that documentation exists for the feature, and the [version history text](https://docs.gitlab.com/ee/development/documentation/feature_flags.html#add-version-history-text) has been updated.
-- [ ] Leave a comment on [the feature issue][main-issue] announcing estimated time when this feature flag will be enabled on GitLab.com.
+- [ ] Leave a comment on [the feature issue](<feature-issue-link>) announcing estimated time when this feature flag will be enabled on GitLab.com.
- [ ] Ensure that any breaking changes have been announced following the [release post process](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes) to ensure GitLab customers are aware.
- [ ] Notify the [`#support_gitlab-com` Slack channel](https://gitlab.slack.com/archives/C4XFU81LG) and your team channel ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#communicate-the-change)).
- [ ] Ensure that the feature flag rollout plan is reviewed by another developer familiar with the domain.
@@ -72,7 +70,7 @@ and cross-posted (with the command results) to the responsible team's Slack chan
### Global rollout on production
For visibility, all `/chatops` commands that target production should be executed in the [`#production` Slack channel](https://gitlab.slack.com/archives/C101F3796)
-and cross-posted (with the command results) to the responsible team's Slack channel (`#g_TEAM_NAME`).
+and cross-posted (with the command results) to the responsible team's Slack channel (`#<slack-channel-of-dri-team>`).
- [ ] (Optional) [Incrementally roll out](https://docs.gitlab.com/ee/development/feature_flags/controls.html#process) the feature on production environment.
- Between every step wait for at least 15 minutes and monitor the appropriate graphs on https://dashboards.gitlab.net.
@@ -143,7 +141,7 @@ You can either [create a follow-up issue for Feature Flag Cleanup](https://gitla
/chatops run feature set <feature-flag-name> false
```
-/label ~group::
-/label ~"feature flag"
-/assign me
+/label <group-label>
+/label ~"feature flag" ~C4
+/assign @<gitlab-username-of-dri>
/due in 2 weeks
diff --git a/.gitlab/issue_templates/Pipeline Execution Refinement Spike.md b/.gitlab/issue_templates/Pipeline Execution Refinement Spike.md
index 38877ad777a..d456d7bdb5b 100644
--- a/.gitlab/issue_templates/Pipeline Execution Refinement Spike.md
+++ b/.gitlab/issue_templates/Pipeline Execution Refinement Spike.md
@@ -1,4 +1,3 @@
-<
## Author Checklist
(_NOTE: This section can be removed when the issue is ready for creation_)
- [ ] Set title to "Spike: Refine "<original issue title>"
@@ -6,9 +5,9 @@
- [ ] Update the weight slash command to an appropriate value based on the timebox size
- [ ] Add `~frontend`, `~backend`, or `~documentation` labels as appropriate
- [ ] Update the expected outcomes if the default ones don't capture everything that should be done in this spike.
+- [ ] Run `/copy_metadata #<original issue>` to copy over labels
/blocks #<original issue>
-/copy_metadata #<original issue>
/label ~"spike" ~"group::pipeline execution" ~"section::ci" ~"devops::verify" ~"workflow::ready for development" ~"cicd::planning"
/weight ##
@@ -17,17 +16,12 @@
## Timebox Expectations
-<How much time should be spent on this spike>
+_How much time should be spent on this spike_
## Expected Outcomes
-- [ ] Possible cause(s) are determined
+- [ ] Possible cause(s) are determined
- [ ] Technical proposal added to #<original issue>
- [ ] Weight added to #<original issue>
-
## Links/References
-
-
-
-
diff --git a/.gitlab/issue_templates/QA Failure.md b/.gitlab/issue_templates/QA Failure.md
index bcfe7c42e90..3a0ce5cf431 100644
--- a/.gitlab/issue_templates/QA Failure.md
+++ b/.gitlab/issue_templates/QA Failure.md
@@ -24,7 +24,7 @@ Corresponding test case(s):
### Stack trace
-```
+```ruby
PUT STACK TRACE HERE
```
diff --git a/.gitlab/merge_request_templates/Quarantine End to End Test.md b/.gitlab/merge_request_templates/Quarantine End to End Test.md
index c2f8143f13b..a23c1431001 100644
--- a/.gitlab/merge_request_templates/Quarantine End to End Test.md
+++ b/.gitlab/merge_request_templates/Quarantine End to End Test.md
@@ -19,12 +19,12 @@ the noise (due to constantly failing tests, flaky tests, and so on) so that new
- [ ] [Code review guidelines](https://docs.gitlab.com/ee/development/code_review.html)
- [ ] [Style guides](https://docs.gitlab.com/ee/development/contributing/style_guides.html)
- [ ] Quarantine test check-list
- - [ ] Follow the [Quarantining Tests guide](https://about.gitlab.com/handbook/engineering/infrastructure/test-platform/debugging-qa-test-failures/#quarantining-tests).
- - [ ] Confirm the test has a [`quarantine:` tag with the specified quarantine type](https://about.gitlab.com/handbook/engineering/infrastructure/test-platform/debugging-qa-test-failures/#quarantined-test-types).
+ - [ ] Follow the [Quarantining Tests guide](https://handbook.gitlab.com/handbook/engineering/infrastructure/test-platform/debugging-qa-test-failures/#quarantining-tests).
+ - [ ] Confirm the test has a [`quarantine:` tag with the specified quarantine type](https://handbook.gitlab.com/handbook/engineering/infrastructure/test-platform/debugging-qa-test-failures/#quarantined-test-types).
- [ ] Note if the test should be [quarantined for a specific environment](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/execution_context_selection.html#quarantine-a-test-for-a-specific-environment).
- [ ] (Optionally) In case of an emergency (e.g. blocked deployments), consider adding labels to pick into auto-deploy (~"Pick into auto-deploy" ~"priority::1" ~"severity::1").
- [ ] Dequarantine test check-list
- - [ ] Follow the [Dequarantining Tests guide](https://about.gitlab.com/handbook/engineering/infrastructure/test-platform/debugging-qa-test-failures/#dequarantining-tests).
+ - [ ] Follow the [Dequarantining Tests guide](https://handbook.gitlab.com/handbook/engineering/infrastructure/test-platform/debugging-qa-test-failures/#dequarantining-tests).
- [ ] Confirm the test consistently passes on the target GitLab environment(s).
- [ ] To ensure a faster turnaround, ask in the `#quality_maintainers` Slack channel for someone to review and merge the merge request, rather than assigning it directly.
diff --git a/.gitleaksignore b/.gitleaksignore
index 32906f05b2a..9ff1dcb3a70 100644
--- a/.gitleaksignore
+++ b/.gitleaksignore
@@ -1,2 +1,5 @@
afedb913baf4203aa688421873fdb9f94649578e:doc/api/users.md:generic-api-key:2201
spec/frontend/lib/utils/secret_detection_spec.js:generic-api-key:34
+spec/frontend/lib/utils/secret_detection_spec.js:generic-api-key:35
+spec/frontend/lib/utils/secret_detection_spec.js:generic-api-key:38
+spec/frontend/lib/utils/secret_detection_spec.js:generic-api-key:39 \ No newline at end of file
diff --git a/.markdownlint.yml b/.markdownlint.yml
index 5a9e1f05e0e..4107e8d1073 100644
--- a/.markdownlint.yml
+++ b/.markdownlint.yml
@@ -1,31 +1,39 @@
---
# Base Markdownlint configuration
# Extended Markdownlint configuration in doc/.markdownlint/
+# See https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md for explanations of each rule
+# First, set the default
default: true
-first-header-h1: true
-header-style:
+
+# Per-rule settings in alphabetical order
+code-block-style: # MD046
+ style: "fenced"
+emphasis-style: false # MD049
+first-header-h1: true # MD002
+first-line-h1: false # MD041
+header-style: # MD003
style: "atx"
-ul-style:
- style: "dash"
-no-trailing-spaces: false
-line-length: false
-no-duplicate-header:
+hr-style: # MD035
+ style: "---"
+line-length: false # MD013
+link-fragments: false # MD051
+no-duplicate-header: # MD024
allow_different_nesting: true
-no-trailing-punctuation:
+no-emphasis-as-heading: false # MD036
+no-inline-html: false # MD033
+no-trailing-punctuation: # MD026
punctuation: ".,;:!。,;:ï¼ï¼Ÿ"
-ol-prefix:
+no-trailing-spaces: false # MD009
+ol-prefix: # MD029
style: "one"
-no-inline-html: false
-hr-style:
- style: "---"
-no-emphasis-as-heading: false
-first-line-h1: false
-code-block-style:
- style: "fenced"
-emphasis-style: false
-link-fragments: false
-reference-links-images: false
-proper-names:
+reference-links-images: false # MD052
+ul-style: # MD004
+ style: "dash"
+
+# Keep this item last due to length
+proper-names: # MD044
+ code_blocks: false
+ html_elements: false
names: [
"Akismet",
"Alertmanager",
@@ -150,5 +158,3 @@ proper-names:
"YAML",
"YouTrack"
]
- code_blocks: false
- html_elements: false
diff --git a/.rubocop.yml b/.rubocop.yml
index b87752aec3b..d776a79a80d 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -13,12 +13,6 @@ inherit_from:
<% end %>
- '.rubocop_todo.yml'
<% end %>
- <% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.1' %>
- - ./rubocop/rubocop-ruby31.yml
- <% end %>
- <% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.2' %>
- - ./rubocop/rubocop-ruby32.yml
- <% end %>
- ./rubocop/rubocop-migrations.yml
- ./rubocop/rubocop-usage-data.yml
- ./rubocop/rubocop-code_reuse.yml
@@ -381,6 +375,9 @@ Rails/HasManyOrHasOneDependent:
Rails/CreateTableWithTimestamps:
Enabled: false
+Rails/AvoidTimeComparison:
+ Enabled: true
+
# GitLab ###################################################################
Gitlab/ModuleWithInstanceVariables:
@@ -843,8 +840,6 @@ Rails/SaveBang:
Include:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
- - 'qa/spec/**/*.rb'
- - 'qa/qa/specs/**/*.rb'
Exclude:
- spec/models/wiki_page/**/*
- spec/models/wiki_page_spec.rb
@@ -1000,7 +995,7 @@ Gemspec/AvoidExecutingGit:
Lint/BinaryOperatorWithIdenticalOperands:
Exclude:
- - '{,ee/,qa/}spec/**/*_{spec,shared_examples,shared_context}.rb'
+ - '{,ee/,qa/,jh/}spec/**/*_{spec,shared_examples,shared_context}.rb'
Cop/SidekiqRedisCall:
Enabled: true
@@ -1041,7 +1036,7 @@ Cop/FeatureFlagUsage:
Style/ArgumentsForwarding:
Enabled: true
- AllowOnlyRestArgument: false
+ UseAnonymousForwarding: false # Turn this on only after Ruby 3.2+ is required
Search/NamespacedClass:
Enabled: true
@@ -1119,3 +1114,15 @@ Style/SymbolProc:
# See https://gitlab.com/gitlab-org/gitlab/-/issues/434151
- each_batch
- each_sub_batch
+
+# Short-hand Hash syntax does not work prior 3.1.
+# See https://gitlab.com/gitlab-org/gitlab/-/issues/435940#note_1703307479
+Style/HashSyntax:
+ EnforcedShorthandSyntax: never
+
+Gitlab/LicenseAvailableUsage:
+ Enabled: true
+ Include:
+ - 'app/models/application_setting.rb'
+ - 'ee/app/models/ee/application_setting.rb'
+ - 'lib/gitlab/current_settings.rb'
diff --git a/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml b/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml
index 77a880115da..8a10208663e 100644
--- a/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml
+++ b/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml
@@ -135,7 +135,6 @@ Gitlab/AvoidGitlabInstanceChecks:
- 'lib/gitlab/gon_helper.rb'
- 'lib/gitlab/monitor/demo_projects.rb'
- 'lib/gitlab/qa.rb'
- - 'lib/gitlab/tracking/destinations/database_events_snowplow.rb'
- 'lib/gitlab/tracking/standard_context.rb'
- 'lib/gitlab/usage/metrics/instrumentations/count_ci_internal_pipelines_metric.rb'
- 'lib/gitlab/usage/metrics/instrumentations/count_issues_created_manually_from_alerts_metric.rb'
diff --git a/.rubocop_todo/gitlab/strong_memoize_attr.yml b/.rubocop_todo/gitlab/strong_memoize_attr.yml
index 2429c2f8d7d..21287d1bd2b 100644
--- a/.rubocop_todo/gitlab/strong_memoize_attr.yml
+++ b/.rubocop_todo/gitlab/strong_memoize_attr.yml
@@ -452,7 +452,6 @@ Gitlab/StrongMemoizeAttr:
- 'lib/api/container_repositories.rb'
- 'lib/api/entities/basic_project_details.rb'
- 'lib/api/helpers/authentication.rb'
- - 'lib/api/terraform/modules/v1/packages.rb'
- 'lib/api/unleash.rb'
- 'lib/atlassian/jira_connect/jwt/asymmetric.rb'
- 'lib/atlassian/jira_connect/jwt/symmetric.rb'
diff --git a/.rubocop_todo/layout/array_alignment.yml b/.rubocop_todo/layout/array_alignment.yml
index e8860e75d67..dcb2667bc31 100644
--- a/.rubocop_todo/layout/array_alignment.yml
+++ b/.rubocop_todo/layout/array_alignment.yml
@@ -183,7 +183,6 @@ Layout/ArrayAlignment:
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb'
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb'
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb'
- - 'qa/qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_2_spec.rb'
- 'qa/spec/specs/runner_spec.rb'
- 'rubocop/cop/gitlab/rspec/avoid_setup.rb'
- 'rubocop/cop/graphql/authorize_types.rb'
@@ -284,7 +283,6 @@ Layout/ArrayAlignment:
- 'spec/lib/gitlab/usage_data/topology_spec.rb'
- 'spec/lib/gitlab/utils/merge_hash_spec.rb'
- 'spec/lib/gitlab/visibility_level_spec.rb'
- - 'spec/models/application_setting_spec.rb'
- 'spec/models/ci/bridge_spec.rb'
- 'spec/models/ci/build_spec.rb'
- 'spec/models/ci/group_spec.rb'
diff --git a/.rubocop_todo/layout/empty_line_after_magic_comment.yml b/.rubocop_todo/layout/empty_line_after_magic_comment.yml
index 409acc4b5c1..3d6266a7438 100644
--- a/.rubocop_todo/layout/empty_line_after_magic_comment.yml
+++ b/.rubocop_todo/layout/empty_line_after_magic_comment.yml
@@ -203,8 +203,6 @@ Layout/EmptyLineAfterMagicComment:
- 'ee/app/services/ee/system_notes/issuables_service.rb'
- 'ee/app/services/gitlab_subscriptions/fetch_subscription_plans_service.rb'
- 'ee/app/services/gitlab_subscriptions/reconciliations/calculate_seat_count_data_service.rb'
- - 'ee/app/services/group_saml/group_managed_accounts/clean_up_members_service.rb'
- - 'ee/app/services/group_saml/sign_up_service.rb'
- 'ee/app/services/merge_trains/create_pipeline_service.rb'
- 'ee/app/services/merge_trains/refresh_merge_request_service.rb'
- 'ee/app/services/merge_trains/refresh_service.rb'
@@ -312,9 +310,9 @@ Layout/EmptyLineAfterMagicComment:
- 'ee/spec/models/ci/minutes/quota_spec.rb'
- 'ee/spec/models/ci/minutes/usage_spec.rb'
- 'ee/spec/models/deployments/approval_summary_spec.rb'
- - 'ee/spec/models/group_member_spec.rb'
+ - 'ee/spec/models/ee/group_member_spec.rb'
- 'ee/spec/models/packages/package_file_spec.rb'
- - 'ee/spec/models/project_member_spec.rb'
+ - 'ee/spec/models/ee/project_member_spec.rb'
- 'ee/spec/models/protected_environment_spec.rb'
- 'ee/spec/models/protected_environments/approval_rule_spec.rb'
- 'ee/spec/models/protected_environments/deploy_access_level_spec.rb'
diff --git a/.rubocop_todo/layout/first_hash_element_indentation.yml b/.rubocop_todo/layout/first_hash_element_indentation.yml
index 83ce52272b7..4a8ddfdbdf5 100644
--- a/.rubocop_todo/layout/first_hash_element_indentation.yml
+++ b/.rubocop_todo/layout/first_hash_element_indentation.yml
@@ -113,10 +113,8 @@ Layout/FirstHashElementIndentation:
- 'ee/spec/services/ee/projects/unlink_fork_service_spec.rb'
- 'ee/spec/services/external_status_checks/create_service_spec.rb'
- 'ee/spec/services/external_status_checks/destroy_service_spec.rb'
- - 'ee/spec/services/groups/create_service_spec.rb'
- 'ee/spec/services/groups/destroy_service_spec.rb'
- 'ee/spec/services/iterations/create_service_spec.rb'
- - 'ee/spec/services/projects/create_service_spec.rb'
- 'ee/spec/services/projects/disable_deploy_key_service_spec.rb'
- 'ee/spec/services/projects/enable_deploy_key_service_spec.rb'
- 'ee/spec/services/projects/group_links/create_service_spec.rb'
diff --git a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
index 7bc8d095585..8c05d745fbb 100644
--- a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
+++ b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
@@ -293,7 +293,6 @@ Layout/LineEndStringConcatenationIndentation:
- 'spec/services/snippets/create_service_spec.rb'
- 'spec/services/users/email_verification/validate_token_service_spec.rb'
- 'spec/services/work_items/parent_links/create_service_spec.rb'
- - 'spec/support/before_all_adapter.rb'
- 'spec/support/helpers/database/multiple_databases_helpers.rb'
- 'spec/support/helpers/redis_without_keys.rb'
- 'spec/support/matchers/have_gitlab_http_status.rb'
diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml
index 4e78d896a89..684681750b4 100644
--- a/.rubocop_todo/layout/line_length.yml
+++ b/.rubocop_todo/layout/line_length.yml
@@ -496,8 +496,8 @@ Layout/LineLength:
- 'app/services/environments/schedule_to_delete_review_apps_service.rb'
- 'app/services/feature_flags/update_service.rb'
- 'app/services/git/process_ref_changes_service.rb'
- - 'app/services/google_cloud/create_service_accounts_service.rb'
- - 'app/services/google_cloud/generate_pipeline_service.rb'
+ - 'app/services/cloud_seed/google_cloud/create_service_accounts_service.rb'
+ - 'app/services/cloud_seed/google_cloud/generate_pipeline_service.rb'
- 'app/services/groups/create_service.rb'
- 'app/services/groups/destroy_service.rb'
- 'app/services/groups/transfer_service.rb'
@@ -1012,9 +1012,7 @@ Layout/LineLength:
- 'ee/app/services/geo/request_service.rb'
- 'ee/app/services/geo/verification_state_backfill_service.rb'
- 'ee/app/services/gitlab_subscriptions/plan_upgrade_service.rb'
- - 'ee/app/services/group_saml/group_managed_accounts/transfer_membership_service.rb'
- 'ee/app/services/group_saml/saml_provider/base_service.rb'
- - 'ee/app/services/group_saml/sign_up_service.rb'
- 'ee/app/services/groups/memberships/export_service.rb'
- 'ee/app/services/groups/sync_service.rb'
- 'ee/app/services/incident_management/create_incident_sla_exceeded_label_service.rb'
@@ -1350,7 +1348,6 @@ Layout/LineLength:
- 'ee/spec/features/groups/saml_providers_spec.rb'
- 'ee/spec/features/groups/scim_token_spec.rb'
- 'ee/spec/features/groups/security/compliance_dashboards_spec.rb'
- - 'ee/spec/features/groups/sso_spec.rb'
- 'ee/spec/features/integrations/jira/jira_issues_list_spec.rb'
- 'ee/spec/features/issues/filtered_search/filter_issues_weight_spec.rb'
- 'ee/spec/features/issues/form_spec.rb'
@@ -1794,7 +1791,7 @@ Layout/LineLength:
- 'ee/spec/models/geo_node_status_spec.rb'
- 'ee/spec/models/gitlab_subscription_spec.rb'
- 'ee/spec/models/gitlab_subscriptions/features_spec.rb'
- - 'ee/spec/models/group_member_spec.rb'
+ - 'ee/spec/models/ee/group_member_spec.rb'
- 'ee/spec/models/historical_data_spec.rb'
- 'ee/spec/models/incident_management/escalation_policy_spec.rb'
- 'ee/spec/models/incident_management/escalation_rule_spec.rb'
@@ -1807,7 +1804,7 @@ Layout/LineLength:
- 'ee/spec/models/issue_spec.rb'
- 'ee/spec/models/iteration_spec.rb'
- 'ee/spec/models/license_spec.rb'
- - 'ee/spec/models/member_spec.rb'
+ - 'ee/spec/models/ee/member_spec.rb'
- 'ee/spec/models/merge_request_spec.rb'
- 'ee/spec/models/merge_requests/compliance_violation_spec.rb'
- 'ee/spec/models/merge_requests/external_status_check_spec.rb'
@@ -1816,7 +1813,7 @@ Layout/LineLength:
- 'ee/spec/models/packages/package_file_spec.rb'
- 'ee/spec/models/project_import_data_spec.rb'
- 'ee/spec/models/project_import_state_spec.rb'
- - 'ee/spec/models/project_member_spec.rb'
+ - 'ee/spec/models/ee/project_member_spec.rb'
- 'ee/spec/models/project_security_setting_spec.rb'
- 'ee/spec/models/protected_environment_spec.rb'
- 'ee/spec/models/protected_environments/approval_rule_spec.rb'
@@ -2117,7 +2114,6 @@ Layout/LineLength:
- 'ee/spec/services/geo/hashed_storage_attachments_event_store_spec.rb'
- 'ee/spec/services/gitlab_subscriptions/check_future_renewal_service_spec.rb'
- 'ee/spec/services/gitlab_subscriptions/create_service_spec.rb'
- - 'ee/spec/services/groups/create_service_spec.rb'
- 'ee/spec/services/groups/memberships/export_service_spec.rb'
- 'ee/spec/services/groups/transfer_service_spec.rb'
- 'ee/spec/services/groups/update_repository_storage_service_spec.rb'
@@ -2430,7 +2426,6 @@ Layout/LineLength:
- 'lib/api/suggestions.rb'
- 'lib/api/tags.rb'
- 'lib/api/templates.rb'
- - 'lib/api/terraform/modules/v1/packages.rb'
- 'lib/api/terraform/state.rb'
- 'lib/api/todos.rb'
- 'lib/api/users.rb'
@@ -4312,7 +4307,7 @@ Layout/LineLength:
- 'spec/requests/api/search_spec.rb'
- 'spec/requests/api/settings_spec.rb'
- 'spec/requests/api/snippets_spec.rb'
- - 'spec/requests/api/terraform/modules/v1/packages_spec.rb'
+ - 'spec/requests/api/terraform/modules/v1/namespace_packages_spec.rb'
- 'spec/requests/api/terraform/modules/v1/project_packages_spec.rb'
- 'spec/requests/api/todos_spec.rb'
- 'spec/requests/api/topics_spec.rb'
@@ -4458,11 +4453,10 @@ Layout/LineLength:
- 'spec/services/files/update_service_spec.rb'
- 'spec/services/git/branch_hooks_service_spec.rb'
- 'spec/services/git/branch_push_service_spec.rb'
- - 'spec/services/google_cloud/enable_cloud_run_service_spec.rb'
- - 'spec/services/google_cloud/gcp_region_add_or_replace_service_spec.rb'
- - 'spec/services/google_cloud/service_accounts_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/enable_cloud_run_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/gcp_region_add_or_replace_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb'
- 'spec/services/groups/autocomplete_service_spec.rb'
- - 'spec/services/groups/create_service_spec.rb'
- 'spec/services/groups/transfer_service_spec.rb'
- 'spec/services/groups/update_service_spec.rb'
- 'spec/services/groups/update_shared_runners_service_spec.rb'
@@ -4564,7 +4558,6 @@ Layout/LineLength:
- 'spec/services/packages/nuget/search_service_spec.rb'
- 'spec/services/packages/nuget/update_package_from_metadata_service_spec.rb'
- 'spec/services/packages/rubygems/process_gem_service_spec.rb'
- - 'spec/services/packages/terraform_module/create_package_service_spec.rb'
- 'spec/services/personal_access_tokens/create_service_spec.rb'
- 'spec/services/post_receive_service_spec.rb'
- 'spec/services/projects/apple_target_platform_detector_service_spec.rb'
diff --git a/.rubocop_todo/layout/space_in_lambda_literal.yml b/.rubocop_todo/layout/space_in_lambda_literal.yml
index 7e3af689b5f..bd901e40016 100644
--- a/.rubocop_todo/layout/space_in_lambda_literal.yml
+++ b/.rubocop_todo/layout/space_in_lambda_literal.yml
@@ -354,12 +354,11 @@ Layout/SpaceInLambdaLiteral:
- 'lib/gitlab/event_store.rb'
- 'lib/gitlab/gl_repository.rb'
- 'lib/gitlab/health_checks/server.rb'
- - 'lib/gitlab/import_export/import_failure_service.rb'
- 'lib/gitlab/merge_requests/message_generator.rb'
- 'lib/gitlab/metrics/exporter/base_exporter.rb'
- 'lib/gitlab/visibility_level.rb'
- 'spec/deprecation_toolkit_env.rb'
- - 'spec/features/admin/users/user_spec.rb'
+ - 'spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb'
- 'spec/helpers/namespaces_helper_spec.rb'
- 'spec/lib/backup/gitaly_backup_spec.rb'
- 'spec/lib/container_registry/client_spec.rb'
diff --git a/.rubocop_todo/layout/space_inside_parens.yml b/.rubocop_todo/layout/space_inside_parens.yml
index 34f13f780fb..d044e48d7aa 100644
--- a/.rubocop_todo/layout/space_inside_parens.yml
+++ b/.rubocop_todo/layout/space_inside_parens.yml
@@ -35,7 +35,7 @@ Layout/SpaceInsideParens:
- 'ee/spec/models/iteration_spec.rb'
- 'ee/spec/models/ldap_group_link_spec.rb'
- 'ee/spec/models/license_spec.rb'
- - 'ee/spec/models/member_spec.rb'
+ - 'ee/spec/models/ee/member_spec.rb'
- 'ee/spec/models/release_highlight_spec.rb'
- 'ee/spec/models/security/orchestration_policy_configuration_spec.rb'
- 'ee/spec/models/vulnerabilities/feedback_spec.rb'
diff --git a/.rubocop_todo/lint/symbol_conversion.yml b/.rubocop_todo/lint/symbol_conversion.yml
index eae5c89eef7..893e457ddff 100644
--- a/.rubocop_todo/lint/symbol_conversion.yml
+++ b/.rubocop_todo/lint/symbol_conversion.yml
@@ -5,7 +5,7 @@ Lint/SymbolConversion:
- 'app/helpers/breadcrumbs_helper.rb'
- 'app/helpers/environments_helper.rb'
- 'app/helpers/tooling/visual_review_helper.rb'
- - 'app/services/google_cloud/create_cloudsql_instance_service.rb'
+ - 'app/services/cloud_seed/google_cloud/create_cloudsql_instance_service.rb'
- 'config/puma.rb'
- 'ee/app/components/billing/plan_component.rb'
- 'ee/app/controllers/projects/security/scanned_resources_controller.rb'
diff --git a/.rubocop_todo/lint/unused_block_argument.yml b/.rubocop_todo/lint/unused_block_argument.yml
index 1df273d408d..f14c02c4ecd 100644
--- a/.rubocop_todo/lint/unused_block_argument.yml
+++ b/.rubocop_todo/lint/unused_block_argument.yml
@@ -131,7 +131,7 @@ Lint/UnusedBlockArgument:
- 'ee/spec/lib/gitlab/graphql/aggregations/epics/lazy_epic_aggregate_spec.rb'
- 'ee/spec/lib/gitlab/insights/project_insights_config_spec.rb'
- 'ee/spec/lib/gitlab/usage_data_metrics_spec.rb'
- - 'ee/spec/models/member_spec.rb'
+ - 'ee/spec/models/ee/member_spec.rb'
- 'ee/spec/requests/api/graphql/project/pipeline/security_report_summary_spec.rb'
- 'ee/spec/requests/api/graphql/vulnerabilities/sort_spec.rb'
- 'ee/spec/requests/api/related_epic_links_spec.rb'
diff --git a/.rubocop_todo/naming/heredoc_delimiter_naming.yml b/.rubocop_todo/naming/heredoc_delimiter_naming.yml
index 92f5994092b..50f359fa448 100644
--- a/.rubocop_todo/naming/heredoc_delimiter_naming.yml
+++ b/.rubocop_todo/naming/heredoc_delimiter_naming.yml
@@ -105,7 +105,7 @@ Naming/HeredocDelimiterNaming:
- 'spec/services/ci/create_web_ide_terminal_service_spec.rb'
- 'spec/services/ci/parse_dotenv_artifact_service_spec.rb'
- 'spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb'
- - 'spec/services/google_cloud/generate_pipeline_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/generate_pipeline_service_spec.rb'
- 'spec/services/task_list_toggle_service_spec.rb'
- 'spec/support/helpers/repo_helpers.rb'
- 'spec/support/helpers/seed_repo.rb'
diff --git a/.rubocop_todo/performance/map_compact.yml b/.rubocop_todo/performance/map_compact.yml
index 8f831bf8f59..576a610006e 100644
--- a/.rubocop_todo/performance/map_compact.yml
+++ b/.rubocop_todo/performance/map_compact.yml
@@ -31,7 +31,7 @@ Performance/MapCompact:
- 'app/services/events/render_service.rb'
- 'app/services/feature_flags/update_service.rb'
- 'app/services/git/base_hooks_service.rb'
- - 'app/services/google_cloud/fetch_google_ip_list_service.rb'
+ - 'app/services/cloud_seed/google_cloud/fetch_google_ip_list_service.rb'
- 'app/services/jira_import/start_import_service.rb'
- 'app/services/jira_import/users_mapper_service.rb'
- 'app/services/labels/available_labels_service.rb'
@@ -75,7 +75,7 @@ Performance/MapCompact:
- 'ee/lib/gitlab/ci/reports/metrics/reports_comparer.rb'
- 'ee/lib/gitlab/search/aggregation_parser.rb'
- 'ee/spec/models/analytics/issues_analytics_spec.rb'
- - 'ee/spec/models/member_spec.rb'
+ - 'ee/spec/models/ee/member_spec.rb'
- 'ee/spec/requests/api/audit_events_spec.rb'
- 'ee/spec/requests/api/search_spec.rb'
- 'haml_lint/linter/no_plain_nodes.rb'
diff --git a/.rubocop_todo/rails/avoid_time_comparison.yml b/.rubocop_todo/rails/avoid_time_comparison.yml
new file mode 100644
index 00000000000..e6b6e9fadaf
--- /dev/null
+++ b/.rubocop_todo/rails/avoid_time_comparison.yml
@@ -0,0 +1,13 @@
+---
+Rails/AvoidTimeComparison:
+ Details: grace period
+ Exclude:
+ - 'app/services/packages/mark_package_files_for_destruction_service.rb'
+ - 'app/workers/container_registry/migration/enqueuer_worker.rb'
+ - 'app/workers/gitlab/import/advance_stage.rb'
+ - 'ee/app/services/incident_management/pending_escalations/process_service.rb'
+ - 'ee/app/workers/update_all_mirrors_worker.rb'
+ - 'lib/gitlab/chaos.rb'
+ - 'lib/gitlab/database/background_migration/batched_migration.rb'
+ - 'spec/lib/gitlab/ci/cron_parser_spec.rb'
+ - 'spec/support/helpers/wait_helpers.rb'
diff --git a/.rubocop_todo/rails/file_path.yml b/.rubocop_todo/rails/file_path.yml
index b7291734253..49d95cfeac3 100644
--- a/.rubocop_todo/rails/file_path.yml
+++ b/.rubocop_todo/rails/file_path.yml
@@ -99,7 +99,6 @@ Rails/FilePath:
- 'spec/lib/gitlab/feature_categories_spec.rb'
- 'spec/lib/gitlab/file_hook_spec.rb'
- 'spec/lib/gitlab/jwt_authenticatable_spec.rb'
- - 'spec/lib/gitlab/legacy_http_spec.rb'
- 'spec/lib/gitlab/mail_room/mail_room_spec.rb'
- 'spec/lib/gitlab/middleware/multipart/handler_spec.rb'
- 'spec/lib/gitlab/multi_destination_logger_spec.rb'
diff --git a/.rubocop_todo/rspec/any_instance_of.yml b/.rubocop_todo/rspec/any_instance_of.yml
index 9393170aa03..bac4094b61b 100644
--- a/.rubocop_todo/rspec/any_instance_of.yml
+++ b/.rubocop_todo/rspec/any_instance_of.yml
@@ -251,7 +251,6 @@ RSpec/AnyInstanceOf:
- 'spec/services/events/render_service_spec.rb'
- 'spec/services/git/branch_push_service_spec.rb'
- 'spec/services/git/process_ref_changes_service_spec.rb'
- - 'spec/services/groups/create_service_spec.rb'
- 'spec/services/groups/update_service_spec.rb'
- 'spec/services/issuable/destroy_service_spec.rb'
- 'spec/services/issues/close_service_spec.rb'
diff --git a/.rubocop_todo/rspec/before_all_role_assignment.yml b/.rubocop_todo/rspec/before_all_role_assignment.yml
index fcdaf78ffe8..1d015869b37 100644
--- a/.rubocop_todo/rspec/before_all_role_assignment.yml
+++ b/.rubocop_todo/rspec/before_all_role_assignment.yml
@@ -68,7 +68,6 @@ RSpec/BeforeAllRoleAssignment:
- 'ee/spec/features/boards/sidebar_spec.rb'
- 'ee/spec/features/boards/swimlanes/epics_swimlanes_sidebar_spec.rb'
- 'ee/spec/features/burnup_charts_spec.rb'
- - 'ee/spec/features/ci/ci_catalog_spec.rb'
- 'ee/spec/features/dashboards/todos_spec.rb'
- 'ee/spec/features/epic_boards/epic_boards_sidebar_spec.rb'
- 'ee/spec/features/epic_boards/epic_boards_spec.rb'
@@ -265,7 +264,6 @@ RSpec/BeforeAllRoleAssignment:
- 'ee/spec/graphql/types/vulnerability_response_type_spec.rb'
- 'ee/spec/graphql/types/vulnerability_scanner_type_spec.rb'
- 'ee/spec/graphql/types/vulnerability_type_spec.rb'
- - 'ee/spec/helpers/ee/ci/catalog/resources_helper_spec.rb'
- 'ee/spec/helpers/ee/ci/pipeline_editor_helper_spec.rb'
- 'ee/spec/helpers/ee/environments_helper_spec.rb'
- 'ee/spec/helpers/ee/groups_helper_spec.rb'
@@ -321,7 +319,7 @@ RSpec/BeforeAllRoleAssignment:
- 'ee/spec/models/ee/vulnerability_spec.rb'
- 'ee/spec/models/epic_issue_spec.rb'
- 'ee/spec/models/epic_spec.rb'
- - 'ee/spec/models/group_member_spec.rb'
+ - 'ee/spec/models/ee/group_member_spec.rb'
- 'ee/spec/models/instance_security_dashboard_spec.rb'
- 'ee/spec/models/issue_spec.rb'
- 'ee/spec/models/merge_request_spec.rb'
@@ -552,7 +550,6 @@ RSpec/BeforeAllRoleAssignment:
- 'ee/spec/requests/jwt_controller_spec.rb'
- 'ee/spec/requests/lfs_locks_api_spec.rb'
- 'ee/spec/requests/projects/analytics/cycle_analytics/stages_controller_spec.rb'
- - 'ee/spec/requests/projects/ci/catalog/resources_controller_spec.rb'
- 'ee/spec/requests/projects/dependencies_controller_spec.rb'
- 'ee/spec/requests/projects/issues_controller_spec.rb'
- 'ee/spec/requests/projects/on_demand_scans_controller_spec.rb'
@@ -739,7 +736,6 @@ RSpec/BeforeAllRoleAssignment:
- 'ee/spec/workers/ee/new_issue_worker_spec.rb'
- 'ee/spec/workers/groups/export_memberships_worker_spec.rb'
- 'ee/spec/workers/llm/completion_worker_spec.rb'
- - 'ee/spec/workers/merge_requests/llm/summarize_merge_request_worker_spec.rb'
- 'ee/spec/workers/security/orchestration_configuration_create_bot_worker_spec.rb'
- 'spec/controllers/autocomplete_controller_spec.rb'
- 'spec/controllers/dashboard_controller_spec.rb'
@@ -800,7 +796,7 @@ RSpec/BeforeAllRoleAssignment:
- 'spec/controllers/projects_controller_spec.rb'
- 'spec/controllers/repositories/lfs_storage_controller_spec.rb'
- 'spec/features/admin/admin_projects_spec.rb'
- - 'spec/features/admin/users/user_spec.rb'
+ - 'spec/features/admin/users/admin_sees_user_spec.rb'
- 'spec/features/admin/users/users_spec.rb'
- 'spec/features/boards/board_filters_spec.rb'
- 'spec/features/boards/new_issue_spec.rb'
@@ -1330,7 +1326,6 @@ RSpec/BeforeAllRoleAssignment:
- 'spec/requests/api/rpm_project_packages_spec.rb'
- 'spec/requests/api/rubygem_packages_spec.rb'
- 'spec/requests/api/search_spec.rb'
- - 'spec/requests/api/terraform/modules/v1/packages_spec.rb'
- 'spec/requests/api/wikis_spec.rb'
- 'spec/requests/concerns/planning_hierarchy_spec.rb'
- 'spec/requests/groups/deploy_tokens_controller_spec.rb'
@@ -1406,7 +1401,7 @@ RSpec/BeforeAllRoleAssignment:
- 'spec/services/environments/schedule_to_delete_review_apps_service_spec.rb'
- 'spec/services/files/base_service_spec.rb'
- 'spec/services/git/branch_push_service_spec.rb'
- - 'spec/services/google_cloud/generate_pipeline_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/generate_pipeline_service_spec.rb'
- 'spec/services/groups/auto_devops_service_spec.rb'
- 'spec/services/groups/autocomplete_service_spec.rb'
- 'spec/services/groups/group_links/create_service_spec.rb'
diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml
index 54e523dbfb2..7859119eb60 100644
--- a/.rubocop_todo/rspec/context_wording.yml
+++ b/.rubocop_todo/rspec/context_wording.yml
@@ -109,7 +109,6 @@ RSpec/ContextWording:
- 'ee/spec/features/groups/saml_enforcement_spec.rb'
- 'ee/spec/features/groups/saml_providers_spec.rb'
- 'ee/spec/features/groups/security/compliance_dashboards_spec.rb'
- - 'ee/spec/features/groups/sso_spec.rb'
- 'ee/spec/features/groups_spec.rb'
- 'ee/spec/features/ide/user_opens_ide_spec.rb'
- 'ee/spec/features/issues/epic_in_issue_sidebar_spec.rb'
@@ -453,7 +452,7 @@ RSpec/ContextWording:
- 'ee/spec/models/geo_node_spec.rb'
- 'ee/spec/models/geo_node_status_spec.rb'
- 'ee/spec/models/gitlab_subscription_spec.rb'
- - 'ee/spec/models/group_member_spec.rb'
+ - 'ee/spec/models/ee/group_member_spec.rb'
- 'ee/spec/models/group_wiki_repository_spec.rb'
- 'ee/spec/models/incident_management/escalation_rule_spec.rb'
- 'ee/spec/models/incident_management/oncall_rotation_spec.rb'
@@ -467,7 +466,7 @@ RSpec/ContextWording:
- 'ee/spec/models/issue_spec.rb'
- 'ee/spec/models/iteration_spec.rb'
- 'ee/spec/models/license_spec.rb'
- - 'ee/spec/models/member_spec.rb'
+ - 'ee/spec/models/ee/member_spec.rb'
- 'ee/spec/models/merge_request/blocking_spec.rb'
- 'ee/spec/models/merge_request_spec.rb'
- 'ee/spec/models/namespace_setting_spec.rb'
@@ -476,7 +475,7 @@ RSpec/ContextWording:
- 'ee/spec/models/path_lock_spec.rb'
- 'ee/spec/models/project_import_data_spec.rb'
- 'ee/spec/models/project_import_state_spec.rb'
- - 'ee/spec/models/project_member_spec.rb'
+ - 'ee/spec/models/ee/project_member_spec.rb'
- 'ee/spec/models/protected_environment_spec.rb'
- 'ee/spec/models/push_rule_spec.rb'
- 'ee/spec/models/release_highlight_spec.rb'
@@ -714,8 +713,6 @@ RSpec/ContextWording:
- 'ee/spec/services/geo/prune_event_log_service_spec.rb'
- 'ee/spec/services/gitlab_subscriptions/create_service_spec.rb'
- 'ee/spec/services/gitlab_subscriptions/preview_billable_user_change_service_spec.rb'
- - 'ee/spec/services/group_saml/group_managed_accounts/transfer_membership_service_spec.rb'
- - 'ee/spec/services/groups/create_service_spec.rb'
- 'ee/spec/services/groups/destroy_service_spec.rb'
- 'ee/spec/services/groups/mark_for_deletion_service_spec.rb'
- 'ee/spec/services/groups/memberships/export_service_spec.rb'
@@ -750,7 +747,6 @@ RSpec/ContextWording:
- 'ee/spec/services/personal_access_tokens/rotation_verifier_service_spec.rb'
- 'ee/spec/services/projects/alerting/notify_service_spec.rb'
- 'ee/spec/services/projects/create_from_template_service_spec.rb'
- - 'ee/spec/services/projects/create_service_spec.rb'
- 'ee/spec/services/projects/destroy_service_spec.rb'
- 'ee/spec/services/projects/gitlab_projects_import_service_spec.rb'
- 'ee/spec/services/projects/group_links/create_service_spec.rb'
@@ -1040,7 +1036,7 @@ RSpec/ContextWording:
- 'spec/features/admin/admin_mode_spec.rb'
- 'spec/features/admin/admin_settings_spec.rb'
- 'spec/features/admin/dashboard_spec.rb'
- - 'spec/features/admin/users/user_spec.rb'
+ - 'spec/features/admin/users/admin_impersonates_user_spec.rb'
- 'spec/features/admin/users/users_spec.rb'
- 'spec/features/atom/dashboard_issues_spec.rb'
- 'spec/features/atom/dashboard_spec.rb'
@@ -1842,7 +1838,6 @@ RSpec/ContextWording:
- 'spec/lib/gitlab/kubernetes/default_namespace_spec.rb'
- 'spec/lib/gitlab/kubernetes/kube_client_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/client_spec.rb'
- - 'spec/lib/gitlab/legacy_http_spec.rb'
- 'spec/lib/gitlab/lfs/client_spec.rb'
- 'spec/lib/gitlab/lfs_token_spec.rb'
- 'spec/lib/gitlab/lograge/custom_options_spec.rb'
@@ -2388,7 +2383,6 @@ RSpec/ContextWording:
- 'spec/requests/api/tags_spec.rb'
- 'spec/requests/api/task_completion_status_spec.rb'
- 'spec/requests/api/templates_spec.rb'
- - 'spec/requests/api/terraform/modules/v1/packages_spec.rb'
- 'spec/requests/api/terraform/state_spec.rb'
- 'spec/requests/api/terraform/state_version_spec.rb'
- 'spec/requests/api/todos_spec.rb'
@@ -2561,9 +2555,8 @@ RSpec/ContextWording:
- 'spec/services/git/tag_push_service_spec.rb'
- 'spec/services/git/wiki_push_service/change_spec.rb'
- 'spec/services/git/wiki_push_service_spec.rb'
- - 'spec/services/google_cloud/generate_pipeline_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/generate_pipeline_service_spec.rb'
- 'spec/services/gpg_keys/create_service_spec.rb'
- - 'spec/services/groups/create_service_spec.rb'
- 'spec/services/groups/deploy_tokens/revoke_service_spec.rb'
- 'spec/services/groups/destroy_service_spec.rb'
- 'spec/services/groups/group_links/create_service_spec.rb'
diff --git a/.rubocop_todo/rspec/expect_change.yml b/.rubocop_todo/rspec/expect_change.yml
index f358600f4fe..2b178901b39 100644
--- a/.rubocop_todo/rspec/expect_change.yml
+++ b/.rubocop_todo/rspec/expect_change.yml
@@ -36,7 +36,7 @@ RSpec/ExpectChange:
- 'ee/spec/models/gitlab_subscription_spec.rb'
- 'ee/spec/models/group_wiki_spec.rb'
- 'ee/spec/models/incident_management/issuable_escalation_status_spec.rb'
- - 'ee/spec/models/member_spec.rb'
+ - 'ee/spec/models/ee/member_spec.rb'
- 'ee/spec/models/project_import_state_spec.rb'
- 'ee/spec/models/push_rule_spec.rb'
- 'ee/spec/models/security/orchestration_policy_configuration_spec.rb'
@@ -133,7 +133,6 @@ RSpec/ExpectChange:
- 'ee/spec/services/iterations/delete_service_spec.rb'
- 'ee/spec/services/iterations/roll_over_issues_service_spec.rb'
- 'ee/spec/services/projects/alerting/notify_service_spec.rb'
- - 'ee/spec/services/projects/create_service_spec.rb'
- 'ee/spec/services/projects/destroy_service_spec.rb'
- 'ee/spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb'
- 'ee/spec/services/projects/transfer_service_spec.rb'
diff --git a/.rubocop_todo/rspec/expect_in_hook.yml b/.rubocop_todo/rspec/expect_in_hook.yml
index a8896eed55d..0fc7ecfde58 100644
--- a/.rubocop_todo/rspec/expect_in_hook.yml
+++ b/.rubocop_todo/rspec/expect_in_hook.yml
@@ -236,7 +236,6 @@ RSpec/ExpectInHook:
- 'spec/lib/gitlab/kas/client_spec.rb'
- 'spec/lib/gitlab/kubernetes/kube_client_spec.rb'
- 'spec/lib/gitlab/kubernetes/kubeconfig/template_spec.rb'
- - 'spec/lib/gitlab/legacy_http_spec.rb'
- 'spec/lib/gitlab/memory/instrumentation_spec.rb'
- 'spec/lib/gitlab/memory/jemalloc_spec.rb'
- 'spec/lib/gitlab/metrics/boot_time_tracker_spec.rb'
diff --git a/.rubocop_todo/rspec/factory_bot/avoid_create.yml b/.rubocop_todo/rspec/factory_bot/avoid_create.yml
index 6007b62c241..f2ea4e9673c 100644
--- a/.rubocop_todo/rspec/factory_bot/avoid_create.yml
+++ b/.rubocop_todo/rspec/factory_bot/avoid_create.yml
@@ -130,6 +130,7 @@ RSpec/FactoryBot/AvoidCreate:
- 'ee/spec/serializers/dashboard_operations_project_entity_spec.rb'
- 'ee/spec/serializers/dependency_entity_spec.rb'
- 'ee/spec/serializers/dependency_list_serializer_spec.rb'
+ - 'ee/spec/serializers/ee/admin/abuse_report_details_entity_spec.rb'
- 'ee/spec/serializers/ee/blob_entity_spec.rb'
- 'ee/spec/serializers/ee/build_details_entity_spec.rb'
- 'ee/spec/serializers/ee/ci/job_entity_spec.rb'
@@ -191,6 +192,7 @@ RSpec/FactoryBot/AvoidCreate:
- 'ee/spec/views/admin/groups/_form.html.haml_spec.rb'
- 'ee/spec/views/admin/identities/index.html.haml_spec.rb'
- 'ee/spec/views/admin/users/_credit_card_info.html.haml_spec.rb'
+ - 'ee/spec/views/admin/users/_phone_info.html.haml_spec.rb'
- 'ee/spec/views/admin/users/index.html.haml_spec.rb'
- 'ee/spec/views/admin/users/show.html.haml_spec.rb'
- 'ee/spec/views/clusters/clusters/show.html.haml_spec.rb'
@@ -414,6 +416,7 @@ RSpec/FactoryBot/AvoidCreate:
- 'spec/presenters/user_presenter_spec.rb'
- 'spec/presenters/web_hook_log_presenter_spec.rb'
- 'spec/serializers/access_token_entity_base_spec.rb'
+ - 'spec/serializers/admin/abuse_report_details_entity_spec.rb'
- 'spec/serializers/analytics_build_entity_spec.rb'
- 'spec/serializers/analytics_build_serializer_spec.rb'
- 'spec/serializers/analytics_issue_entity_spec.rb'
diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml
index fac358d6543..aed72849075 100644
--- a/.rubocop_todo/rspec/feature_category.yml
+++ b/.rubocop_todo/rspec/feature_category.yml
@@ -1063,7 +1063,7 @@ RSpec/FeatureCategory:
- 'ee/spec/models/gitlab_subscriptions/features_spec.rb'
- 'ee/spec/models/gitlab_subscriptions/upcoming_reconciliation_spec.rb'
- 'ee/spec/models/group_deletion_schedule_spec.rb'
- - 'ee/spec/models/group_member_spec.rb'
+ - 'ee/spec/models/ee/group_member_spec.rb'
- 'ee/spec/models/group_merge_request_approval_setting_spec.rb'
- 'ee/spec/models/group_wiki_repository_spec.rb'
- 'ee/spec/models/historical_data_spec.rb'
@@ -1108,7 +1108,7 @@ RSpec/FeatureCategory:
- 'ee/spec/models/project_ci_cd_setting_spec.rb'
- 'ee/spec/models/project_feature_spec.rb'
- 'ee/spec/models/project_import_data_spec.rb'
- - 'ee/spec/models/project_member_spec.rb'
+ - 'ee/spec/models/ee/project_member_spec.rb'
- 'ee/spec/models/project_repository_state_spec.rb'
- 'ee/spec/models/project_security_setting_spec.rb'
- 'ee/spec/models/protected_branch/required_code_owners_section_spec.rb'
@@ -1688,7 +1688,6 @@ RSpec/FeatureCategory:
- 'spec/dependencies/omniauth_saml_spec.rb'
- 'spec/docs_screenshots/container_registry_docs.rb'
- 'spec/docs_screenshots/wiki_docs.rb'
- - 'spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb'
- 'spec/features/admin/dashboard_spec.rb'
- 'spec/features/groups/integrations/group_integrations_spec.rb'
- 'spec/features/milestones/user_views_milestones_spec.rb'
@@ -2837,7 +2836,6 @@ RSpec/FeatureCategory:
- 'spec/lib/gitlab/build_access_spec.rb'
- 'spec/lib/gitlab/bullet_spec.rb'
- 'spec/lib/gitlab/cache/helpers_spec.rb'
- - 'spec/lib/gitlab/cache/import/caching_spec.rb'
- 'spec/lib/gitlab/cache/metrics_spec.rb'
- 'spec/lib/gitlab/cache/request_cache_spec.rb'
- 'spec/lib/gitlab/cache_spec.rb'
@@ -2934,8 +2932,6 @@ RSpec/FeatureCategory:
- 'spec/lib/gitlab/ci/config/entry/retry_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/root_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/rules/rule/changes_spec.rb'
- - 'spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb'
- - 'spec/lib/gitlab/ci/config/entry/rules_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/service_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/services_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/stage_spec.rb'
@@ -3207,7 +3203,6 @@ RSpec/FeatureCategory:
- 'spec/lib/gitlab/database/migration_helpers/announce_database_spec.rb'
- 'spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb'
- 'spec/lib/gitlab/database/migration_helpers/loose_foreign_key_helpers_spec.rb'
- - 'spec/lib/gitlab/database/migration_helpers/v2_spec.rb'
- 'spec/lib/gitlab/database/migration_spec.rb'
- 'spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb'
- 'spec/lib/gitlab/database/migrations/base_background_runner_spec.rb'
@@ -3692,15 +3687,11 @@ RSpec/FeatureCategory:
- 'spec/lib/gitlab/lazy_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/branch_formatter_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/client_spec.rb'
- - 'spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/issuable_formatter_spec.rb'
- - 'spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/label_formatter_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/milestone_formatter_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/project_creator_spec.rb'
- - 'spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb'
- - 'spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb'
- 'spec/lib/gitlab/legacy_github_import/wiki_formatter_spec.rb'
- 'spec/lib/gitlab/lets_encrypt/challenge_spec.rb'
- 'spec/lib/gitlab/lets_encrypt/client_spec.rb'
@@ -4363,7 +4354,6 @@ RSpec/FeatureCategory:
- 'spec/models/concerns/counter_attribute_spec.rb'
- 'spec/models/concerns/cron_schedulable_spec.rb'
- 'spec/models/concerns/cross_database_modification_spec.rb'
- - 'spec/models/concerns/database_event_tracking_spec.rb'
- 'spec/models/concerns/database_reflection_spec.rb'
- 'spec/models/concerns/delete_with_limit_spec.rb'
- 'spec/models/concerns/deployment_platform_spec.rb'
@@ -4744,7 +4734,6 @@ RSpec/FeatureCategory:
- 'spec/models/users/credit_card_validation_spec.rb'
- 'spec/models/users/ghost_user_migration_spec.rb'
- 'spec/models/users/group_callout_spec.rb'
- - 'spec/models/users/in_product_marketing_email_spec.rb'
- 'spec/models/users/merge_request_interaction_spec.rb'
- 'spec/models/users/phone_number_validation_spec.rb'
- 'spec/models/users/project_callout_spec.rb'
diff --git a/.rubocop_todo/rspec/instance_variable.yml b/.rubocop_todo/rspec/instance_variable.yml
index a4d4c2119c0..9f268a71bd3 100644
--- a/.rubocop_todo/rspec/instance_variable.yml
+++ b/.rubocop_todo/rspec/instance_variable.yml
@@ -24,10 +24,8 @@ RSpec/InstanceVariable:
- 'ee/spec/services/ee/notification_service_spec.rb'
- 'ee/spec/services/ee/users/create_service_spec.rb'
- 'ee/spec/services/geo/metrics_update_service_spec.rb'
- - 'ee/spec/services/groups/create_service_spec.rb'
- 'ee/spec/services/groups/participants_service_spec.rb'
- 'ee/spec/services/projects/create_from_template_service_spec.rb'
- - 'ee/spec/services/projects/create_service_spec.rb'
- 'ee/spec/support/shared_examples/views/subscription_shared_examples.rb'
- 'ee/spec/tasks/geo_rake_spec.rb'
- 'ee/spec/views/projects/security/corpus_management/show.html.haml_spec.rb'
@@ -96,7 +94,6 @@ RSpec/InstanceVariable:
- 'spec/lib/gitlab/git/repository_spec.rb'
- 'spec/lib/gitlab/import_export/group/tree_restorer_spec.rb'
- 'spec/lib/gitlab/import_export/project/tree_restorer_spec.rb'
- - 'spec/lib/gitlab/legacy_http_spec.rb'
- 'spec/lib/gitlab/patch/prependable_spec.rb'
- 'spec/lib/gitlab/popen_spec.rb'
- 'spec/lib/gitlab/project_transfer_spec.rb'
diff --git a/.rubocop_todo/rspec/named_subject.yml b/.rubocop_todo/rspec/named_subject.yml
index eee81261597..a72575d26ba 100644
--- a/.rubocop_todo/rspec/named_subject.yml
+++ b/.rubocop_todo/rspec/named_subject.yml
@@ -193,7 +193,6 @@ RSpec/NamedSubject:
- 'ee/spec/helpers/compliance_management/compliance_framework/group_settings_helper_spec.rb'
- 'ee/spec/helpers/ee/auth_helper_spec.rb'
- 'ee/spec/helpers/ee/branches_helper_spec.rb'
- - 'ee/spec/helpers/ee/ci/catalog/resources_helper_spec.rb'
- 'ee/spec/helpers/ee/ci/runners_helper_spec.rb'
- 'ee/spec/helpers/ee/emails_helper_spec.rb'
- 'ee/spec/helpers/ee/environments_helper_spec.rb'
@@ -1101,7 +1100,6 @@ RSpec/NamedSubject:
- 'ee/spec/services/product_analytics/initialize_stack_service_spec.rb'
- 'ee/spec/services/projects/alerting/notify_service_spec.rb'
- 'ee/spec/services/projects/create_from_template_service_spec.rb'
- - 'ee/spec/services/projects/create_service_spec.rb'
- 'ee/spec/services/projects/destroy_service_spec.rb'
- 'ee/spec/services/projects/disable_legacy_inactive_projects_service_spec.rb'
- 'ee/spec/services/projects/fork_service_spec.rb'
@@ -1413,8 +1411,7 @@ RSpec/NamedSubject:
- 'spec/controllers/uploads_controller_spec.rb'
- 'spec/controllers/users/callouts_controller_spec.rb'
- 'spec/experiments/application_experiment_spec.rb'
- - 'spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb'
- - 'spec/features/admin/users/user_spec.rb'
+ - 'spec/features/admin/users/admin_impersonates_user_spec.rb'
- 'spec/features/groups/clusters/user_spec.rb'
- 'spec/features/merge_request/user_sees_merge_widget_spec.rb'
- 'spec/features/user_settings/password_spec.rb'
@@ -2425,7 +2422,6 @@ RSpec/NamedSubject:
- 'spec/lib/gitlab/terraform_registry_token_spec.rb'
- 'spec/lib/gitlab/throttle_spec.rb'
- 'spec/lib/gitlab/time_tracking_formatter_spec.rb'
- - 'spec/lib/gitlab/tracking/destinations/database_events_snowplow_spec.rb'
- 'spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb'
- 'spec/lib/gitlab/tracking/destinations/snowplow_spec.rb'
- 'spec/lib/gitlab/tracking_spec.rb'
@@ -2975,7 +2971,6 @@ RSpec/NamedSubject:
- 'spec/requests/api/releases_spec.rb'
- 'spec/requests/api/rubygem_packages_spec.rb'
- 'spec/requests/api/snippets_spec.rb'
- - 'spec/requests/api/terraform/modules/v1/packages_spec.rb'
- 'spec/requests/groups/settings/access_tokens_controller_spec.rb'
- 'spec/requests/health_controller_spec.rb'
- 'spec/requests/ide_controller_spec.rb'
@@ -3021,7 +3016,6 @@ RSpec/NamedSubject:
- 'spec/serializers/accessibility_error_entity_spec.rb'
- 'spec/serializers/accessibility_reports_comparer_entity_spec.rb'
- 'spec/serializers/accessibility_reports_comparer_serializer_spec.rb'
- - 'spec/serializers/activity_pub/activity_streams_serializer_spec.rb'
- 'spec/serializers/activity_pub/project_entity_spec.rb'
- 'spec/serializers/activity_pub/release_entity_spec.rb'
- 'spec/serializers/activity_pub/releases_actor_entity_spec.rb'
@@ -3274,12 +3268,11 @@ RSpec/NamedSubject:
- 'spec/services/git/process_ref_changes_service_spec.rb'
- 'spec/services/git/tag_push_service_spec.rb'
- 'spec/services/git/wiki_push_service_spec.rb'
- - 'spec/services/google_cloud/fetch_google_ip_list_service_spec.rb'
- - 'spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/fetch_google_ip_list_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/setup_cloudsql_instance_service_spec.rb'
- 'spec/services/gpg_keys/create_service_spec.rb'
- 'spec/services/gpg_keys/destroy_service_spec.rb'
- 'spec/services/groups/autocomplete_service_spec.rb'
- - 'spec/services/groups/create_service_spec.rb'
- 'spec/services/groups/deploy_tokens/revoke_service_spec.rb'
- 'spec/services/groups/group_links/create_service_spec.rb'
- 'spec/services/groups/group_links/destroy_service_spec.rb'
diff --git a/.rubocop_todo/rspec/return_from_stub.yml b/.rubocop_todo/rspec/return_from_stub.yml
index 897d15c72ed..5aaa1847409 100644
--- a/.rubocop_todo/rspec/return_from_stub.yml
+++ b/.rubocop_todo/rspec/return_from_stub.yml
@@ -198,7 +198,6 @@ RSpec/ReturnFromStub:
- 'spec/services/git/branch_hooks_service_spec.rb'
- 'spec/services/git/branch_push_service_spec.rb'
- 'spec/services/git/process_ref_changes_service_spec.rb'
- - 'spec/services/groups/create_service_spec.rb'
- 'spec/services/groups/nested_create_service_spec.rb'
- 'spec/services/merge_requests/merge_orchestration_service_spec.rb'
- 'spec/services/merge_requests/merge_service_spec.rb'
diff --git a/.rubocop_todo/rspec/verified_doubles.yml b/.rubocop_todo/rspec/verified_doubles.yml
index ffc0b2a3824..63bebcbb2df 100644
--- a/.rubocop_todo/rspec/verified_doubles.yml
+++ b/.rubocop_todo/rspec/verified_doubles.yml
@@ -147,8 +147,6 @@ RSpec/VerifiedDoubles:
- 'ee/spec/services/geo/node_status_request_service_spec.rb'
- 'ee/spec/services/geo/replication_toggle_request_service_spec.rb'
- 'ee/spec/services/gitlab_subscriptions/fetch_subscription_plans_service_spec.rb'
- - 'ee/spec/services/group_saml/group_managed_accounts/clean_up_members_service_spec.rb'
- - 'ee/spec/services/group_saml/sign_up_service_spec.rb'
- 'ee/spec/services/groups/update_repository_storage_service_spec.rb'
- 'ee/spec/services/ide/schemas_config_service_spec.rb'
- 'ee/spec/services/incident_management/oncall_schedules/update_service_spec.rb'
@@ -536,7 +534,6 @@ RSpec/VerifiedDoubles:
- 'spec/lib/gitlab/github_import/markdown_text_spec.rb'
- 'spec/lib/gitlab/github_import/milestone_finder_spec.rb'
- 'spec/lib/gitlab/github_import/object_counter_spec.rb'
- - 'spec/lib/gitlab/github_import/page_counter_spec.rb'
- 'spec/lib/gitlab/github_import/parallel_importer_spec.rb'
- 'spec/lib/gitlab/github_import/parallel_scheduling_spec.rb'
- 'spec/lib/gitlab/github_import/representation/diff_note_spec.rb'
@@ -963,7 +960,6 @@ RSpec/VerifiedDoubles:
- 'spec/workers/clusters/agents/delete_expired_events_worker_spec.rb'
- 'spec/workers/concerns/application_worker_spec.rb'
- 'spec/workers/concerns/gitlab/github_import/object_importer_spec.rb'
- - 'spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb'
- 'spec/workers/container_expiration_policies/cleanup_container_repository_worker_spec.rb'
- 'spec/workers/create_commit_signature_worker_spec.rb'
- 'spec/workers/environments/auto_stop_worker_spec.rb'
@@ -975,7 +971,6 @@ RSpec/VerifiedDoubles:
- 'spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb'
- 'spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb'
- 'spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb'
- - 'spec/workers/gitlab/github_import/stage/import_lfs_objects_worker_spec.rb'
- 'spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb'
- 'spec/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker_spec.rb'
- 'spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb'
diff --git a/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml b/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml
index c0f48f83492..e6612b4830b 100644
--- a/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml
+++ b/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml
@@ -388,7 +388,6 @@ SidekiqLoadBalancing/WorkerDataConsistency:
- 'ee/app/workers/merge_request_reset_approvals_worker.rb'
- 'ee/app/workers/merge_requests/capture_suggested_reviewers_accepted_worker.rb'
- 'ee/app/workers/merge_requests/fetch_suggested_reviewers_worker.rb'
- - 'ee/app/workers/merge_requests/llm/summarize_merge_request_worker.rb'
- 'ee/app/workers/merge_requests/sync_code_owner_approval_rules_worker.rb'
- 'ee/app/workers/merge_trains/refresh_worker.rb'
- 'ee/app/workers/namespaces/sync_namespace_name_worker.rb'
diff --git a/.rubocop_todo/style/block_delimiters.yml b/.rubocop_todo/style/block_delimiters.yml
index 8d7d98ec014..9a6ecf1e955 100644
--- a/.rubocop_todo/style/block_delimiters.yml
+++ b/.rubocop_todo/style/block_delimiters.yml
@@ -59,7 +59,6 @@ Style/BlockDelimiters:
- 'spec/models/packages/npm/metadatum_spec.rb'
- 'spec/models/packages/protection/rule_spec.rb'
- 'spec/models/packages/pypi/metadatum_spec.rb'
- - 'spec/models/users/in_product_marketing_email_spec.rb'
- 'spec/models/users/phone_number_validation_spec.rb'
- 'spec/models/users/project_callout_spec.rb'
- 'spec/presenters/tree_entry_presenter_spec.rb'
diff --git a/.rubocop_todo/style/explicit_block_argument.yml b/.rubocop_todo/style/explicit_block_argument.yml
index db1c8073df8..1e5725a2ef0 100644
--- a/.rubocop_todo/style/explicit_block_argument.yml
+++ b/.rubocop_todo/style/explicit_block_argument.yml
@@ -49,7 +49,6 @@ Style/ExplicitBlockArgument:
- 'lib/gitlab/gitaly_client/storage_settings.rb'
- 'lib/gitlab/github_import/client.rb'
- 'lib/gitlab/graphql/tracers/application_context_tracer.rb'
- - 'lib/gitlab/import_export/import_failure_service.rb'
- 'lib/gitlab/import_export/json/ndjson_writer.rb'
- 'lib/gitlab/import_export/json/streaming_serializer.rb'
- 'lib/gitlab/import_export/project/base_task.rb'
diff --git a/.rubocop_todo/style/guard_clause.yml b/.rubocop_todo/style/guard_clause.yml
index 429eeff3787..65847c093d5 100644
--- a/.rubocop_todo/style/guard_clause.yml
+++ b/.rubocop_todo/style/guard_clause.yml
@@ -347,7 +347,6 @@ Style/GuardClause:
- 'ee/app/services/epics/tree_reorder_service.rb'
- 'ee/app/services/epics/update_service.rb'
- 'ee/app/services/geo/metrics_update_service.rb'
- - 'ee/app/services/group_saml/group_managed_accounts/transfer_membership_service.rb'
- 'ee/app/services/groups/update_repository_storage_service.rb'
- 'ee/app/services/incident_management/oncall_rotations/remove_participant_service.rb'
- 'ee/app/services/iterations/delete_service.rb'
diff --git a/.rubocop_todo/style/if_unless_modifier.yml b/.rubocop_todo/style/if_unless_modifier.yml
index db8f6d8d851..cb5e5134dcf 100644
--- a/.rubocop_todo/style/if_unless_modifier.yml
+++ b/.rubocop_todo/style/if_unless_modifier.yml
@@ -245,7 +245,7 @@ Style/IfUnlessModifier:
- 'app/services/environments/canary_ingress/update_service.rb'
- 'app/services/environments/reset_auto_stop_service.rb'
- 'app/services/git/process_ref_changes_service.rb'
- - 'app/services/google_cloud/generate_pipeline_service.rb'
+ - 'app/services/cloud_seed/google_cloud/generate_pipeline_service.rb'
- 'app/services/groups/create_service.rb'
- 'app/services/groups/transfer_service.rb'
- 'app/services/groups/update_statistics_service.rb'
@@ -683,7 +683,6 @@ Style/IfUnlessModifier:
- 'lib/api/settings.rb'
- 'lib/api/snippets.rb'
- 'lib/api/tags.rb'
- - 'lib/api/terraform/modules/v1/packages.rb'
- 'lib/api/users.rb'
- 'lib/backup/gitaly_backup.rb'
- 'lib/backup/manager.rb'
diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml
index 1a6226514e6..6c2c802d516 100644
--- a/.rubocop_todo/style/inline_disable_annotation.yml
+++ b/.rubocop_todo/style/inline_disable_annotation.yml
@@ -390,7 +390,6 @@ Style/InlineDisableAnnotation:
- 'app/models/commit.rb'
- 'app/models/commit_collection.rb'
- 'app/models/commit_status.rb'
- - 'app/models/concerns/analytics/cycle_analytics/parentable.rb'
- 'app/models/concerns/approvable.rb'
- 'app/models/concerns/async_devise_email.rb'
- 'app/models/concerns/atomic_internal_id.rb'
@@ -1987,7 +1986,6 @@ Style/InlineDisableAnnotation:
- 'ee/spec/features/trials/saas/creation_with_one_existing_namespace_flow_spec.rb'
- 'ee/spec/finders/audit_event_finder_spec.rb'
- 'ee/spec/finders/ee/group_members_finder_spec.rb'
- - 'ee/spec/frontend/fixtures/ci_catalog_resources.rb'
- 'ee/spec/helpers/analytics/analytics_dashboards_helper_spec.rb'
- 'ee/spec/helpers/ee/dashboard_helper_spec.rb'
- 'ee/spec/helpers/ee/releases_helper_spec.rb'
@@ -2561,7 +2559,6 @@ Style/InlineDisableAnnotation:
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/legacy_github_import/issuable_formatter.rb'
- 'lib/gitlab/legacy_github_import/user_formatter.rb'
- - 'lib/gitlab/legacy_http.rb'
- 'lib/gitlab/lets_encrypt/client.rb'
- 'lib/gitlab/lfs_token.rb'
- 'lib/gitlab/local_and_remote_storage_migration/base_migrater.rb'
@@ -3054,7 +3051,6 @@ Style/InlineDisableAnnotation:
- 'spec/models/ci/pipeline_spec.rb'
- 'spec/models/ci/runner_manager_build_spec.rb'
- 'spec/models/concerns/bulk_insertable_associations_spec.rb'
- - 'spec/models/concerns/database_event_tracking_spec.rb'
- 'spec/models/concerns/encrypted_user_password_spec.rb'
- 'spec/models/concerns/legacy_bulk_insert_spec.rb'
- 'spec/models/concerns/manual_inverse_association_spec.rb'
@@ -3130,7 +3126,7 @@ Style/InlineDisableAnnotation:
- 'spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb'
- 'spec/services/draft_notes/destroy_service_spec.rb'
- 'spec/services/event_create_service_spec.rb'
- - 'spec/services/google_cloud/enable_cloudsql_service_spec.rb'
+ - 'spec/services/cloud_seed/google_cloud/enable_cloudsql_service_spec.rb'
- 'spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb'
- 'spec/services/merge_requests/create_service_spec.rb'
- 'spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb'
@@ -3154,7 +3150,6 @@ Style/InlineDisableAnnotation:
- 'spec/sidekiq/cron/job_gem_dependency_spec.rb'
- 'spec/sidekiq_cluster/sidekiq_cluster_spec.rb'
- 'spec/spec_helper.rb'
- - 'spec/support/before_all_adapter.rb'
- 'spec/support/capybara.rb'
- 'spec/support/database/click_house/hooks.rb'
- 'spec/support/db_cleaner.rb'
diff --git a/.rubocop_todo/style/keyword_parameters_order.yml b/.rubocop_todo/style/keyword_parameters_order.yml
index e4b751a92da..8f27a2c9f45 100644
--- a/.rubocop_todo/style/keyword_parameters_order.yml
+++ b/.rubocop_todo/style/keyword_parameters_order.yml
@@ -18,7 +18,6 @@ Style/KeywordParametersOrder:
- 'lib/gitlab/diff/diff_refs.rb'
- 'lib/gitlab/email/smime/signer.rb'
- 'lib/gitlab/exclusive_lease.rb'
- - 'lib/gitlab/import_export/import_failure_service.rb'
- 'lib/gitlab/merge_requests/mergeability/results_store.rb'
- 'lib/gitlab/usage_data_counters/editor_unique_counter.rb'
- 'lib/microsoft_teams/notifier.rb'
diff --git a/.rubocop_todo/style/redundant_return.yml b/.rubocop_todo/style/redundant_return.yml
index 86f8bb37d67..821762457c7 100644
--- a/.rubocop_todo/style/redundant_return.yml
+++ b/.rubocop_todo/style/redundant_return.yml
@@ -79,7 +79,6 @@ Style/RedundantReturn:
- 'ee/app/workers/ee/repository_check/single_repository_worker.rb'
- 'ee/lib/api/dependency_proxy/packages/maven.rb'
- 'ee/lib/ee/api/entities/billable_member.rb'
- - 'ee/lib/ee/gitlab/checks/push_rules/secrets_check.rb'
- 'ee/lib/gitlab/llm/chain/tools/epic_identifier/executor.rb'
- 'ee/lib/gitlab/llm/chain/tools/issue_identifier/executor.rb'
- 'lib/api/nuget_project_packages.rb'
diff --git a/.rubocop_todo/style/redundant_self.yml b/.rubocop_todo/style/redundant_self.yml
index 701ce4db7df..8c23290babe 100644
--- a/.rubocop_todo/style/redundant_self.yml
+++ b/.rubocop_todo/style/redundant_self.yml
@@ -384,4 +384,3 @@ Style/RedundantSelf:
- 'spec/lib/gitlab/background_task_spec.rb'
- 'spec/lib/gitlab/database/load_balancing_spec.rb'
- 'spec/models/integration_spec.rb'
- - 'spec/support/before_all_adapter.rb'
diff --git a/.ruby-version b/.ruby-version
index 0aec50e6ede..be94e6f53db 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-3.1.4
+3.2.2
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 110378dcb55..e2a525edbdb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,12 +25,6 @@ entry.
- [Add verification layer for BaseSlash commands](gitlab-org/security/gitlab@f972a67468aa2da9530188930da2fb5225eb1aad) ([merge request](gitlab-org/security/gitlab!3763))
- [Ensure workspaces are created under same root namespace as agent](gitlab-org/security/gitlab@ca7e81b8ce6c2140820c9ce21aa75af1967a2fb5) ([merge request](gitlab-org/security/gitlab!3759))
-## 16.7.1 (2023-12-23)
-
-### Security (1 change)
-
-- [User password reset accepts multiple email addresses](gitlab-org/security/gitlab@5b046650cfd9ffe7454a4e74d6217d22bcd7e2e1) ([merge request](gitlab-org/security/gitlab!3772))
-
## 16.7.0 (2023-12-20)
### Added (199 changes)
@@ -934,6 +928,24 @@ entry.
- [Move export buttons next to each other](gitlab-org/gitlab@106bea7a6246cd153cf66d133936a09d46369ae3) ([merge request](gitlab-org/gitlab!137461))
+## 16.6.5 (2024-01-13)
+
+No changes.
+
+## 16.6.4 (2024-01-10)
+
+### Fixed (1 change)
+
+- [Add missing ci_sources_pipelines indexes for self-host](gitlab-org/security/gitlab@3c1411f3e5843e0d52315237b8fcc7d33c7dff2e) ([merge request](gitlab-org/security/gitlab!3810))
+
+### Security (5 changes)
+
+- [Consider older commits when resetting codeowner approvals](gitlab-org/security/gitlab@950b435ea484bcff31bd549d11738ff54fe21ccf) ([merge request](gitlab-org/security/gitlab!3765))
+- [Password reset followups](gitlab-org/security/gitlab@db6b903bac7435dc2484bb4b97715d05a81d45c6) ([merge request](gitlab-org/security/gitlab!3778))
+- [Add verification layer for BaseSlash commands](gitlab-org/security/gitlab@0db0cb8673d406e0f464fd9f6b95e46c3b4f9695) ([merge request](gitlab-org/security/gitlab!3757))
+- [Ensure workspaces are created under same root namespace as agent](gitlab-org/security/gitlab@9d9a33b8201ccd5734ec56b149841193f4611741) ([merge request](gitlab-org/security/gitlab!3760))
+- [Sync security with canonical for 16.6 stable branch](gitlab-org/security/gitlab@e1ec9524344f469375e40145e78d3068462bed05) ([merge request](gitlab-org/security/gitlab!3782))
+
## 16.6.2 (2023-12-13)
### Fixed (1 change)
@@ -1519,6 +1531,25 @@ entry.
- [Remove pubsub migration helper for actioncable](gitlab-org/gitlab@763ca1305db6f1c9cf6700b8497494a81926d742) ([merge request](gitlab-org/gitlab!133066))
- [Use partitioned table for CommitStatus](gitlab-org/gitlab@063826e042778995fae13928a2fb5de2c8855b45) ([merge request](gitlab-org/gitlab!134489))
+## 16.5.7 (2024-01-13)
+
+### Fixed (1 change)
+
+- [Make chat_names table migration idempotent](gitlab-org/gitlab@1a2ac58037d06717b9a27f5b2a6a9e5ec887d374) ([merge request](gitlab-org/gitlab!141706))
+
+## 16.5.6 (2024-01-11)
+
+### Fixed (1 change)
+
+- [Add missing ci_sources_pipelines indexes for self-host](gitlab-org/security/gitlab@bcc8c8f2b4c3fec3288cba0d3e69d22ebc519dfb) ([merge request](gitlab-org/security/gitlab!3811))
+
+### Security (4 changes)
+
+- [Consider older commits when resetting codeowner approvals](gitlab-org/security/gitlab@6a7a49ba29793e1a3454f56dee47b584938c6c46) ([merge request](gitlab-org/security/gitlab!3766))
+- [Password reset followups](gitlab-org/security/gitlab@0043a2acd829accf42e8bb61dbf5aaa2a2bb3e22) ([merge request](gitlab-org/security/gitlab!3779))
+- [Add verification layer for BaseSlash commands](gitlab-org/security/gitlab@d8293ba365c85465f5fe02ac2edc6d22714a9946) ([merge request](gitlab-org/security/gitlab!3758))
+- [Ensure workspaces are created under same root namespace as agent](gitlab-org/security/gitlab@59391fdf8a15807c28e68136279e348bd29d572a) ([merge request](gitlab-org/security/gitlab!3761))
+
## 16.5.4 (2023-12-13)
### Fixed (1 change)
@@ -2247,6 +2278,13 @@ entry.
- [Alias read_namespace to access_namespace and move usages to new ability](gitlab-org/gitlab@61cdb4127143162a9bf9182f9c3c2d8421ee447f) by @Taucher2003 ([merge request](gitlab-org/gitlab!126625))
- [Remove `custom_roles_on_groups` feature flag](gitlab-org/gitlab@ddb4b4399b8bb82793410005c5778a002ae409b9) ([merge request](gitlab-org/gitlab!132187)) **GitLab Enterprise Edition**
+## 16.4.5 (2024-01-11)
+
+### Security (2 changes)
+
+- [Fix clickouse-server version in CI](gitlab-org/security/gitlab@71878185c35a1025d00eebc6dea54688fb93b585) ([merge request](gitlab-org/security/gitlab!3808))
+- [User password reset accepts multiple email addresses](gitlab-org/security/gitlab@394e91005d4a7b3df36be077aecf8a36acdee0f3) ([merge request](gitlab-org/security/gitlab!3795))
+
## 16.4.4 (2023-12-13)
### Security (8 changes)
@@ -3050,6 +3088,13 @@ entry.
- [Convert design_user_mentions.note_id to bigint for self-managed](gitlab-org/gitlab@08219da99fc356fecc4e9965fe1891baca4d10ff) ([merge request](gitlab-org/gitlab!129111))
- [Migrate etag cache store from SharedState to Cache](gitlab-org/gitlab@6476298fcdcf77206fa768bcca6bd1e3c7994936) ([merge request](gitlab-org/gitlab!129050))
+## 16.3.7 (2024-01-11)
+
+### Security (2 changes)
+
+- [Fix clickouse-server version in CI](gitlab-org/security/gitlab@114a80eae87becf50ff7df80ae632409c08ea79e) ([merge request](gitlab-org/security/gitlab!3807))
+- [User password reset accepts multiple email addresses](gitlab-org/security/gitlab@d65f79dcccc4df9bea87a8a172719961b010cf4f) ([merge request](gitlab-org/security/gitlab!3796))
+
## 16.3.6 (2023-10-30)
### Security (9 changes)
@@ -3919,6 +3964,13 @@ entry.
- [Fix test pollution in count_deployments_metric_spec](gitlab-org/gitlab@610e6a033fe9b20aabc237b18837cddf150d4d1b) ([merge request](gitlab-org/gitlab!126808))
- [Update BulkImports::PipelineBatchWorker resource boundary](gitlab-org/gitlab@7d2477d81bcc2d035be26587802706f7098b6e44) ([merge request](gitlab-org/gitlab!126696))
+## 16.2.9 (2024-01-11)
+
+### Security (2 changes)
+
+- [Fix clickouse-server version in CI](gitlab-org/security/gitlab@2cbdec30b45c350c246fb1298d3060028433e993) ([merge request](gitlab-org/security/gitlab!3806))
+- [User password reset accepts multiple email addresses](gitlab-org/security/gitlab@7b7ac0b352c269e8b8865b6d1dc39e31fd0be9cf) ([merge request](gitlab-org/security/gitlab!3797))
+
## 16.2.8 (2023-09-28)
### Security (16 changes)
@@ -4741,6 +4793,12 @@ No changes.
- [Add schema_version in the commits index mapping](gitlab-org/gitlab@e75b94903b69e1e1588e251217926882875555a8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123435)) **GitLab Enterprise Edition**
- [Allow to set labels for Redis calls](gitlab-org/gitlab@8ccfff9e2d250eb22afaa7d0243e707b536a5436) ([merge request](gitlab-org/gitlab!122340))
+## 16.1.6 (2024-01-11)
+
+### Security (1 change)
+
+- [User password reset accepts multiple email addresses](gitlab-org/security/gitlab@44deb06e2c8e1c1b9424fc89dec4f60c8806711a) ([merge request](gitlab-org/security/gitlab!3798))
+
## 16.1.5 (2023-08-31)
### Fixed (1 change)
diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION
index 44593531b9b..76fdacd6b09 100644
--- a/GITALY_SERVER_VERSION
+++ b/GITALY_SERVER_VERSION
@@ -1 +1 @@
-16.7.3 \ No newline at end of file
+a22e2401ee6aa35ae70ca67013264b72fc29b6f5
diff --git a/GITLAB_ELASTICSEARCH_INDEXER_VERSION b/GITLAB_ELASTICSEARCH_INDEXER_VERSION
index a84947d6ffe..6016e8addc4 100644
--- a/GITLAB_ELASTICSEARCH_INDEXER_VERSION
+++ b/GITLAB_ELASTICSEARCH_INDEXER_VERSION
@@ -1 +1 @@
-4.5.0
+4.6.0
diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION
index 15ef34127f4..13f7272cfef 100644
--- a/GITLAB_KAS_VERSION
+++ b/GITLAB_KAS_VERSION
@@ -1 +1 @@
-v16.8.0-rc1
+v16.9.0-rc1
diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION
index 44593531b9b..3fdecc0cc06 100644
--- a/GITLAB_PAGES_VERSION
+++ b/GITLAB_PAGES_VERSION
@@ -1 +1 @@
-16.7.3 \ No newline at end of file
+852bde8a974154b34f8c3f0bbf42014e69f5a240
diff --git a/Gemfile b/Gemfile
index 0ddaf9afb3a..4eab1ab07c8 100644
--- a/Gemfile
+++ b/Gemfile
@@ -28,7 +28,7 @@ gem 'rails', '~> 7.0.8' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'bootsnap', '~> 1.17.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'bootsnap', '~> 1.17.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'openssl', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ipaddr', '~> 1.2.5' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -133,11 +133,11 @@ gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap' # rubocop:todo
gem 'net-ldap', '~> 0.17.1' # rubocop:todo Gemfile/MissingFeatureCategory
# API
-gem 'grape', '~> 1.7.1', feature_category: :api
+gem 'grape', '~> 2.0.0', feature_category: :api
gem 'grape-entity', '~> 0.10.0', feature_category: :api
-gem 'grape-swagger', '~> 1.6.1', group: [:development, :test], feature_category: :api
+gem 'grape-swagger', '~> 2.0.1', group: [:development, :test], feature_category: :api
gem 'grape-swagger-entity', '~> 0.5.1', group: [:development, :test], feature_category: :api
-gem 'grape-path-helpers', '~> 1.7.1', feature_category: :api
+gem 'grape-path-helpers', '~> 2.0.0', feature_category: :api
gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory
# GraphQL API
@@ -203,17 +203,17 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-core', '~> 3.190.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-core', '~> 3.190.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-s3', '~> 1.141.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-s3', '~> 1.142.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory
# Markdown and HTML processing
-gem 'html-pipeline', '~> 2.14.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'deckar01-task_list', '2.3.3' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'html-pipeline', '~> 2.14.3', feature_category: :team_planning
+gem 'deckar01-task_list', '2.3.3', feature_category: :team_planning
gem 'gitlab-markup', '~> 1.9.0', require: 'github/markup' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'commonmarker', '~> 0.23.10' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'commonmarker', '~> 0.23.10', feature_category: :team_planning
gem 'kramdown', '~> 2.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'RedCloth', '~> 4.3.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'org-ruby', '~> 0.9.12' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -225,7 +225,8 @@ gem 'asciidoctor-plantuml', '~> 0.0.16' # rubocop:todo Gemfile/MissingFeatureCat
gem 'asciidoctor-kroki', '~> 0.8.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rouge', '~> 4.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'truncato', '~> 0.7.12' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'nokogiri', '~> 1.15', '>= 1.15.5' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'nokogiri', '~> 1.16' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-glfm-markdown', '~> 0.0.10', feature_category: :team_planning
# Calendar rendering
gem 'icalendar' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -240,7 +241,7 @@ gem 'rack', '~> 2.2.8' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack-timeout', '~> 0.6.3', require: 'rack/timeout/base' # rubocop:todo Gemfile/MissingFeatureCategory
group :puma do
- gem 'puma', '~> 6.4', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'puma', '= 6.4.0', require: false, feature_category: :shared
gem 'sd_notify', '~> 0.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
end
@@ -251,7 +252,7 @@ gem 'state_machines-activerecord', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeat
gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Gemfile/MissingFeatureCategory
# Background jobs
-gem 'sidekiq', '~> 6.5.10' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'sidekiq', '~> 7.1.6' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sidekiq-cron', '~> 1.12.0', feature_category: :shared
gem 'gitlab-sidekiq-fetcher', path: 'vendor/gems/sidekiq-reliable-fetch', require: 'sidekiq-reliable-fetch' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -268,7 +269,7 @@ gem 'rainbow', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ruby-progressbar', '~> 1.10' # rubocop:todo Gemfile/MissingFeatureCategory
# Linear-time regex library for untrusted regular expressions
-gem 're2', '2.5.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 're2', '2.6.0' # rubocop:todo Gemfile/MissingFeatureCategory
# Misc
@@ -288,7 +289,7 @@ gem 'redis-namespace', '~> 1.10.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'connection_pool', '~> 2.4' # rubocop:todo Gemfile/MissingFeatureCategory
# Redis session store
-gem 'redis-actionpack', '~> 5.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'redis-actionpack', '~> 5.4.0' # rubocop:todo Gemfile/MissingFeatureCategory
# Discord integration
gem 'discordrb-webhooks', '~> 3.4', require: false, feature_category: :integrations
@@ -366,7 +367,7 @@ gem 'gitlab-http', path: 'gems/gitlab-http' # rubocop:todo Gemfile/MissingFeatur
gem 'premailer-rails', '~> 1.10.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'gitlab-labkit', '~> 0.34.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-labkit', '~> 0.35.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory
# I18n
@@ -387,7 +388,7 @@ gem 'snowplow-tracker', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
# Metrics
gem 'webrick', '~> 1.8.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'prometheus-client-mmap', '~> 1.0', '>= 1.0.2', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'prometheus-client-mmap', '~> 1.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -406,7 +407,7 @@ group :development do
gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'ruby-lsp', "~> 0.13.1", require: false, feature_category: :tooling
+ gem 'ruby-lsp', "~> 0.13.2", require: false, feature_category: :tooling
gem 'ruby-lsp-rails', "~> 0.2.8", feature_category: :tooling
@@ -416,7 +417,7 @@ end
group :development, :test do
gem 'deprecation_toolkit', '~> 1.5.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'bullet', '~> 7.1.2' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'parser', '~> 3.2', '>= 3.2.2.4' # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'parser', '~> 3.3', '>= 3.3.0.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'pry-byebug' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'pry-rails', '~> 0.3.9' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'pry-shell', '~> 0.6.4' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -424,7 +425,7 @@ group :development, :test do
gem 'awesome_print', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'database_cleaner-active_record', '~> 2.1.0', feature_category: :database
- gem 'factory_bot_rails', '~> 6.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'factory_bot_rails', '~> 6.4.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rspec-rails', '~> 6.1.0', feature_category: :shared
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
@@ -435,7 +436,7 @@ group :development, :test do
gem 'gitlab-styles', '~> 11.0.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'haml_lint', '~> 0.52', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'haml_lint', '~> 0.53', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'bundler-audit', '~> 0.9.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
# Benchmarking & profiling
@@ -457,7 +458,7 @@ group :development, :test do
gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'pact', '~> 1.63' # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'pact', '~> 1.64' # rubocop:todo Gemfile/MissingFeatureCategory
# For now we only use vite in development / test, and not for production builds
# See: https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/106
@@ -472,7 +473,7 @@ group :development, :test, :danger do
end
group :development, :test, :coverage do
- gem 'simplecov', '~> 0.21', require: false, feature_category: :tooling
+ gem 'simplecov', '~> 0.22', require: false, feature_category: :tooling
gem 'simplecov-lcov', '~> 0.8.0', require: false, feature_category: :tooling
gem 'simplecov-cobertura', '~> 2.1.0', require: false, feature_category: :tooling
gem 'undercover', '~> 0.4.4', require: false, feature_category: :tooling
@@ -511,12 +512,12 @@ group :test do
gem 'test-prof', '~> 1.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rspec_junit_formatter' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'guard-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'axe-core-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'axe-core-rspec', '~> 4.8.0', feature_category: :tooling
# Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'gitlab_quality-test_tooling', '~> 1.9.0', require: false, feature_category: :tooling
+ gem 'gitlab_quality-test_tooling', '~> 1.11.0', require: false, feature_category: :tooling
end
gem 'octokit', '~> 6.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -558,7 +559,7 @@ gem 'kas-grpc', '~> 0.3.0', feature_category: :deployment_management
gem 'grpc', '~> 1.58.0' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'google-protobuf', '~> 3.25', '>= 3.25.1' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'google-protobuf', '~> 3.25', '>= 3.25.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
diff --git a/Gemfile.checksum b/Gemfile.checksum
index 1403fe315ed..7c3fe677ea8 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -35,14 +35,14 @@
{"name":"awesome_print","version":"1.9.2","platform":"ruby","checksum":"e99b32b704acff16d768b3468680793ced40bfdc4537eb07e06a4be11133786e"},
{"name":"awrence","version":"1.2.1","platform":"ruby","checksum":"dd1d214c12a91f449d1ef81d7ee3babc2816944e450752e7522c65521872483e"},
{"name":"aws-eventstream","version":"1.3.0","platform":"ruby","checksum":"f1434cc03ab2248756eb02cfa45e900e59a061d7fbdc4a9fd82a5dd23d796d3f"},
-{"name":"aws-partitions","version":"1.761.0","platform":"ruby","checksum":"291e444e1edfc92c5521a6dbdd1236ccc3f122b3520163b2be6ec5b6ef350ef2"},
+{"name":"aws-partitions","version":"1.877.0","platform":"ruby","checksum":"9552ed7bbd3700ed1eeb0121c160ceaf64fa5dbaff5a1ff5fe6fd8481ecd9cfd"},
{"name":"aws-sdk-cloudformation","version":"1.41.0","platform":"ruby","checksum":"31e47539719734413671edf9b1a31f8673fbf9688549f50c41affabbcb1c6b26"},
-{"name":"aws-sdk-core","version":"3.190.0","platform":"ruby","checksum":"a3455fb3fc1691dd5331282ff16cb0b2ef136a5b63ed68b77e9fda447ea7cfa6"},
-{"name":"aws-sdk-kms","version":"1.64.0","platform":"ruby","checksum":"40de596c95047bfc6e1aacea24f3df6241aa716b6f7ce08ac4c5f7e3120395ad"},
-{"name":"aws-sdk-s3","version":"1.141.0","platform":"ruby","checksum":"cadb88497af6736e86a4a1fc8eb42333fb27ae85901686334252c50862bdd02e"},
+{"name":"aws-sdk-core","version":"3.190.2","platform":"ruby","checksum":"5d97bd8ebfff08b51c38e37dace3d919fa7c708696da01b1d343f2bbaf472e7d"},
+{"name":"aws-sdk-kms","version":"1.76.0","platform":"ruby","checksum":"e7f75013cba9ba357144f66bbc600631c192e2cda9dd572794be239654e2cf49"},
+{"name":"aws-sdk-s3","version":"1.142.0","platform":"ruby","checksum":"79cd888eca66fd2ef3ae8b74d76173a2eccbeff6a1bba62a60b7c7dadc8dd7e9"},
{"name":"aws-sigv4","version":"1.8.0","platform":"ruby","checksum":"84dd99768b91b93b63d1d8e53ee837cfd06ab402812772a7899a78f9f9117cbc"},
-{"name":"axe-core-api","version":"4.6.0","platform":"ruby","checksum":"1b0ddec3353f108dc10363baf2282f43a5ff7f13d4e25f99071294e78f8a6c62"},
-{"name":"axe-core-rspec","version":"4.6.0","platform":"ruby","checksum":"11c25bc9dd388c137ba4e5e63d64d20092bf22c884d8ffc829a22acfbacd747f"},
+{"name":"axe-core-api","version":"4.8.0","platform":"ruby","checksum":"88cf44fdbd5d501ae429f9ca6b37c4a46ba27ac673d478ab688eea3e353da62f"},
+{"name":"axe-core-rspec","version":"4.8.0","platform":"ruby","checksum":"b2c51fad40f3fc487d3de522e337d96d5144d88b3e2e00b87d2b53d17056d11e"},
{"name":"axiom-types","version":"0.1.1","platform":"ruby","checksum":"c1ff113f3de516fa195b2db7e0a9a95fd1b08475a502ff660d04507a09980383"},
{"name":"azure-storage-blob","version":"2.0.3","platform":"ruby","checksum":"61b76118843c91776bd24bee22c74adafeb7c4bb3a858a325047dae3b59d0363"},
{"name":"azure-storage-common","version":"2.0.4","platform":"ruby","checksum":"608f4daab0e06b583b73dcffd3246ea39e78056de31630286b0cf97af7d6956b"},
@@ -61,7 +61,7 @@
{"name":"better_errors","version":"2.10.1","platform":"ruby","checksum":"f798f1bac93f3e775925b7fcb24cffbcf0bb62ee2210f5350f161a6b75fc0a73"},
{"name":"bindata","version":"2.4.11","platform":"ruby","checksum":"c38e0c99ffcd80c10a0a7ae6c8586d2fe26bf245cbefac90bec8764523220f6a"},
{"name":"binding_of_caller","version":"1.0.0","platform":"ruby","checksum":"3aad25d1d538fc6e7972978f9bf512ccd992784009947c81633bea776713161d"},
-{"name":"bootsnap","version":"1.17.0","platform":"ruby","checksum":"6b0ea4dd68f0d424968dcd13953c3f04b13a19a8761c540d3af13507fcfa1347"},
+{"name":"bootsnap","version":"1.17.1","platform":"ruby","checksum":"dbb2c6d4d594b0c87854f34a9073c9114a0c9a1023b8579e2eaaeb28848b1809"},
{"name":"browser","version":"5.3.1","platform":"ruby","checksum":"62745301701ff2c6c5d32d077bb12532b20be261929dcb52c6781ed0d5658b3c"},
{"name":"builder","version":"3.2.4","platform":"ruby","checksum":"99caf08af60c8d7f3a6b004029c4c3c0bdaebced6c949165fe98f1db27fbbc10"},
{"name":"bullet","version":"7.1.2","platform":"ruby","checksum":"429725c174cb74ca0ae99b9720bf22cab80be59ee9401805f7ecc9ac62cbb3bb"},
@@ -128,7 +128,7 @@
{"name":"doorkeeper-openid_connect","version":"1.8.7","platform":"ruby","checksum":"71edaf33118deefe25674ba3f8280c32835f057351f70e9beb222c0fd6b8e786"},
{"name":"dotenv","version":"2.7.6","platform":"ruby","checksum":"2451ed5e8e43776d7a787e51d6f8903b98e446146c7ad143d5678cc2c409d547"},
{"name":"dry-cli","version":"1.0.0","platform":"ruby","checksum":"28ead169f872954dd08910eb8ead59cf86cd18b4aab321e8eeefe945749569f0"},
-{"name":"dry-core","version":"1.0.0","platform":"ruby","checksum":"7a92099870967f0d2c9997950608cb8bb622dafeea20b2fe1dd49e9ba1d0f305"},
+{"name":"dry-core","version":"1.0.1","platform":"ruby","checksum":"f32f4245e0f54e787f3708584ed8f7545aaf8dd99072e36f169312468ec5450d"},
{"name":"dry-inflector","version":"1.0.0","platform":"ruby","checksum":"6ad22361ca2d6f3f001ae3037ffcfea01163f644280d13a9195d3c3a94dd1626"},
{"name":"dry-logic","version":"1.5.0","platform":"ruby","checksum":"99ed2180f1970c3d8247004f277a01dffbe8e82cf6680de9c7209312d86cd416"},
{"name":"dry-types","version":"1.7.1","platform":"ruby","checksum":"12165841145a18dd22151f143707b90c8093f71e5ae06ee0f2301f5321f8cdb8"},
@@ -155,8 +155,8 @@
{"name":"expgen","version":"0.1.1","platform":"ruby","checksum":"4e6a0f65b210a201d6045debb3e62a24e33251a49f81a11b067d303a60d3a239"},
{"name":"expression_parser","version":"0.9.0","platform":"ruby","checksum":"2b56db3cffc48c3337f4f29f5bc2374c86e7ba29acb40269c74bb55af9f868a4"},
{"name":"extended-markdown-filter","version":"0.7.0","platform":"ruby","checksum":"c8eeef7409fbae18c6b407cd3e4eeb5d25c35cb08fe1ac06f375df3db2d4f138"},
-{"name":"factory_bot","version":"6.2.0","platform":"ruby","checksum":"d181902cdda531cf6cef036001b3a700a7b5e04bac63976864530120b2ac7d13"},
-{"name":"factory_bot_rails","version":"6.2.0","platform":"ruby","checksum":"278b969666b078e76e1c972c501da9b1fac15e5b0ff328cc7ce400366164d0a1"},
+{"name":"factory_bot","version":"6.4.5","platform":"ruby","checksum":"d71dd29bc95f0ec2bf27e3dd9b1b4d557bd534caca744663cb7db4bacf3198be"},
+{"name":"factory_bot_rails","version":"6.4.3","platform":"ruby","checksum":"ea73ceac1c0ff3dc11fff390bf2ea8a2604066525ed8ecd3b3bc2c267226dcc8"},
{"name":"faraday","version":"1.10.0","platform":"ruby","checksum":"a42158d5c1932c16fd483c512f7e0797b4916096bcf0eb5fb927a1c915a7ea02"},
{"name":"faraday-em_http","version":"1.0.0","platform":"ruby","checksum":"7a3d4c7079789121054f57e08cd4ef7e40ad1549b63101f38c7093a9d6c59689"},
{"name":"faraday-em_synchrony","version":"1.0.0","platform":"ruby","checksum":"460dad1c30cc692d6e77d4c391ccadb4eca4854b315632cd7e560f74275cf9ed"},
@@ -183,7 +183,6 @@
{"name":"ffi-compiler","version":"1.0.1","platform":"ruby","checksum":"019f389b078a2fec9de7f4f65771095f80a447e34436b4588bcb629e2a564c30"},
{"name":"ffi-yajl","version":"2.6.0","platform":"ruby","checksum":"69baa612273991e4c79667464eb25f3feb169899aab33929a33b03234af24336"},
{"name":"ffi-yajl","version":"2.6.0","platform":"universal-java","checksum":"1159a093c51d75d67578e31d2ed429f2481ef7e73021c5d667ebf6ab481a0d21"},
-{"name":"filelock","version":"1.1.1","platform":"ruby","checksum":"5207258374370a75d5927b2eaf9b831732d224e48ce56c318e8308c7cdcabb20"},
{"name":"find_a_port","version":"1.0.1","platform":"ruby","checksum":"605d6a84b5e6f138da2b06c87c5a4a0231e4fdc9b9a92022d9caa361f77d5ceb"},
{"name":"flipper","version":"0.26.2","platform":"ruby","checksum":"6d577208d971b2d53b7c090ef19765685c31bb43c3cc345d4ee11c1052f6f988"},
{"name":"flipper-active_record","version":"0.26.2","platform":"ruby","checksum":"61deaeef8ce2f775e67d7095f40fd95fc2d07241e143dd4436e78c7b26a320bc"},
@@ -212,7 +211,12 @@
{"name":"gitlab-dangerfiles","version":"4.6.0","platform":"ruby","checksum":"441b37b17d1dad36268517490a30aaf57e43dffb2e9ebc1da38d3bc9fa20741e"},
{"name":"gitlab-experiment","version":"0.9.1","platform":"ruby","checksum":"f230ee742154805a755d5f2539dc44d93cdff08c5bbbb7656018d61f93d01f48"},
{"name":"gitlab-fog-azure-rm","version":"1.8.0","platform":"ruby","checksum":"e4f24b174b273b88849d12fbcfecb79ae1c09f56cbd614998714c7f0a81e6c28"},
-{"name":"gitlab-labkit","version":"0.34.0","platform":"ruby","checksum":"ca5c504201390cd07ba1029e6ca3059f4e2e6005eb121ba8a103af1e166a3ecd"},
+{"name":"gitlab-glfm-markdown","version":"0.0.10","platform":"aarch64-linux","checksum":"d0baee75081aa5d18bfeda3271844f2d3dbdd1d78fd8d847c4ef60671e47ed6d"},
+{"name":"gitlab-glfm-markdown","version":"0.0.10","platform":"arm64-darwin","checksum":"435f74704886811bf6869c2f9d9c6ec695e11d01d1a2b9414d4b523105ab6f3d"},
+{"name":"gitlab-glfm-markdown","version":"0.0.10","platform":"ruby","checksum":"0310b60304d0a7e6c1bf79f0e6b9ab3cf44befd79a1a9897264f4b4072c17459"},
+{"name":"gitlab-glfm-markdown","version":"0.0.10","platform":"x86_64-darwin","checksum":"5f5b054cdf8a514ff3fae96b9a86a16933d67ef90f25381a47f769ee96b30a4f"},
+{"name":"gitlab-glfm-markdown","version":"0.0.10","platform":"x86_64-linux","checksum":"ce623675f0206d62520384fdd49f2aab9f4586c4f5cbb74362f390bda73dec97"},
+{"name":"gitlab-labkit","version":"0.35.0","platform":"ruby","checksum":"26ff06aa4e34ee7b01ead44cc56d01e45822845da70408ca35ff3b20e3c84679"},
{"name":"gitlab-license","version":"2.3.0","platform":"ruby","checksum":"60cae3871c46607dde58994faf761c6755adc61133a92e5ab59ab26a8b9b4157"},
{"name":"gitlab-mail_room","version":"0.0.24","platform":"ruby","checksum":"c7bf3df73dbcc024bc98dbf72514520ac2ff2b6d0124de496279fe56c13c3cb3"},
{"name":"gitlab-markup","version":"1.9.0","platform":"ruby","checksum":"7eda045a08ec2d110084252fa13a8c9eac8bdac0e302035ca7db4b82bcbd7ed4"},
@@ -221,7 +225,7 @@
{"name":"gitlab-styles","version":"11.0.0","platform":"ruby","checksum":"0dd8ec066ce9955ac51d3616c6bfded30f75bb526f39ff392ece6f43d5b9406b"},
{"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"},
{"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"},
-{"name":"gitlab_quality-test_tooling","version":"1.9.0","platform":"ruby","checksum":"0d47a72282e8e4d3dfc3094fe8eb2309a37c583570739a04e26afe38cd2da3a2"},
+{"name":"gitlab_quality-test_tooling","version":"1.11.0","platform":"ruby","checksum":"2146dbaddc5ffcaf4c6e876e6e9d9eb83bae25f378e0c9e5fca8d996ace3d02a"},
{"name":"globalid","version":"1.1.0","platform":"ruby","checksum":"b337e1746f0c8cb0a6c918234b03a1ddeb4966206ce288fbb57779f59b2d154f"},
{"name":"gon","version":"6.4.0","platform":"ruby","checksum":"e3a618d659392890f1aa7db420f17c75fd7d35aeb5f8fe003697d02c4b88d2f0"},
{"name":"google-apis-androidpublisher_v3","version":"0.34.0","platform":"ruby","checksum":"d7e1d7dd92f79c498fe2082222a1740d788e022e660c135564b3fd299cab5425"},
@@ -244,24 +248,24 @@
{"name":"google-cloud-errors","version":"1.3.0","platform":"ruby","checksum":"450b681e24c089a20721a01acc4408bb4a7b0df28c175aaab488da917480d64b"},
{"name":"google-cloud-profiler-v2","version":"0.4.0","platform":"ruby","checksum":"53fc2ab175d08f54233c644310d47798feac996220916815c4fb44c937b5d3e3"},
{"name":"google-cloud-storage","version":"1.45.0","platform":"ruby","checksum":"f280abda4e608f9e91433f9dd907be4a45cdbf251ffeb275d713548e515c6300"},
-{"name":"google-protobuf","version":"3.25.1","platform":"aarch64-linux","checksum":"ac359f7dff48444fee35b1720d5fe4c3a15e1ce1d1cf2b01720e78e0c3c60e59"},
-{"name":"google-protobuf","version":"3.25.1","platform":"arm64-darwin","checksum":"9db6f8a7185d0109934db2f68defff7cba36b0e5816eb3b7aff8c35c61ac4cb5"},
-{"name":"google-protobuf","version":"3.25.1","platform":"java","checksum":"e02d624fafa42ddd27770ab3824d90fd5833dfc22e5778f4b72f5e33823795cf"},
-{"name":"google-protobuf","version":"3.25.1","platform":"ruby","checksum":"e740e099193f8dc4db638326e23868d6c799dbd5ae2fd7565e78d1530cc6d1a3"},
-{"name":"google-protobuf","version":"3.25.1","platform":"x64-mingw-ucrt","checksum":"33f9ef7fb931d4f9226bf7c5e6dc7965d71be65202ddab5f918e11d2b094c247"},
-{"name":"google-protobuf","version":"3.25.1","platform":"x64-mingw32","checksum":"61aad72c3db95719d39d371127124667f2bf136f09050fe74ca9c5e7b84b70de"},
-{"name":"google-protobuf","version":"3.25.1","platform":"x86-linux","checksum":"621ea865943efb085810dd76f35913aa9a8aff24ea358fd96b58291d9067f2a1"},
-{"name":"google-protobuf","version":"3.25.1","platform":"x86-mingw32","checksum":"94974547d65cf72fa5474dc43e18148d6478f3271fa81531c8333940b07779fd"},
-{"name":"google-protobuf","version":"3.25.1","platform":"x86_64-darwin","checksum":"48324e6f17f4a6b478d9f6c844e333ef4d88d82558c44ef87c588adba3a5ff40"},
-{"name":"google-protobuf","version":"3.25.1","platform":"x86_64-linux","checksum":"956d89256ed61cd0407a4e635a2286b8d478ca98075f4f398c30f91b765e9c54"},
+{"name":"google-protobuf","version":"3.25.2","platform":"aarch64-linux","checksum":"d2b18fbcb816d72d0c1c7d874fa618eaf61e2fc26c86462c32dc4dbf7ec20065"},
+{"name":"google-protobuf","version":"3.25.2","platform":"arm64-darwin","checksum":"c1dab355ff82accc23f5ce047c077f04babd2d84ff6ec1cf5d2cf56689554eee"},
+{"name":"google-protobuf","version":"3.25.2","platform":"java","checksum":"f379c7384d4d42a85746b2c735be9d5ea43e204c174a7d3d42460cd44236e93a"},
+{"name":"google-protobuf","version":"3.25.2","platform":"ruby","checksum":"9c2e6121d768f812f50b78cb6f26056f2af6bab92af793d376b772126e26500b"},
+{"name":"google-protobuf","version":"3.25.2","platform":"x64-mingw-ucrt","checksum":"45e1c1ed343fd0e0742f4fd75b1ce0ec88725f8f41ba2fe14bd710a9d37d9006"},
+{"name":"google-protobuf","version":"3.25.2","platform":"x64-mingw32","checksum":"d2b64779a8dfa689dbb2c9afe1d5da02a5d31225168d456a42af33e3838d59e3"},
+{"name":"google-protobuf","version":"3.25.2","platform":"x86-linux","checksum":"741d2504d66872b0b2bd6f5f76337ea0ea41b4d480da1a7632787a2c20d2fefc"},
+{"name":"google-protobuf","version":"3.25.2","platform":"x86-mingw32","checksum":"1be544c9a6c8b099739cb5ad43009bb7a692b7e422c8b0c80cb4a8ffcba8d44a"},
+{"name":"google-protobuf","version":"3.25.2","platform":"x86_64-darwin","checksum":"8865652e25d56e4caa51d441348d55ff5fd7c20e751b6b72dc39b4303c394b40"},
+{"name":"google-protobuf","version":"3.25.2","platform":"x86_64-linux","checksum":"95dec88caf1caab1aa3810c9e5d98fbbb6359d27024d13403b0583b592436cd4"},
{"name":"googleapis-common-protos","version":"1.4.0","platform":"ruby","checksum":"da2380fb5ab1563580816c74e8d684ac17512c3654c829a3ee84f6d6139de382"},
{"name":"googleapis-common-protos-types","version":"1.5.0","platform":"ruby","checksum":"5769cf7376abc86ef7f5897a4aaca1d5c5a3c49ddabeddd2c251fcf8155f858b"},
{"name":"googleauth","version":"1.3.0","platform":"ruby","checksum":"51dd7362353cf1e90a2d01e1fb94321ae3926c776d4dc4a79db65230217ffcc2"},
{"name":"gpgme","version":"2.0.23","platform":"ruby","checksum":"c87bbafdb8719da7c58ebcac08297aa1fb227022ac6cd2972829ba68adc91c04"},
-{"name":"grape","version":"1.7.1","platform":"ruby","checksum":"6b679d8918ee3dc19b0da95a5069dc95a71a15cf5788f5f787bb2ededf58cbb6"},
+{"name":"grape","version":"2.0.0","platform":"ruby","checksum":"3aeff94c17e84ccead4ff98833df691e7da0c108878cc128ca31f80c1047494a"},
{"name":"grape-entity","version":"0.10.0","platform":"ruby","checksum":"9aed1e7cbbc96d9e73f72e5f32c776d4ba8a5baf54c3acda2682008dba2b2cfe"},
-{"name":"grape-path-helpers","version":"1.7.1","platform":"ruby","checksum":"2e27271a20d4073e3a3b2b955425c7f803e198be3ba8f6e59e3d59643c5381e2"},
-{"name":"grape-swagger","version":"1.6.1","platform":"ruby","checksum":"0fd2d38476524b66e8d06de71e6c481d34286d895b12161f5df4427d66d5c69f"},
+{"name":"grape-path-helpers","version":"2.0.1","platform":"ruby","checksum":"ad5216e52c6e796738a9118087352ab4c962900dbad1d8f8c0f96e093c6702d7"},
+{"name":"grape-swagger","version":"2.0.1","platform":"ruby","checksum":"0f90bede86dfe0f5317ea52fe9bfa93e595020e848cb46f1f8c47be04cb4c790"},
{"name":"grape-swagger-entity","version":"0.5.1","platform":"ruby","checksum":"f51e372d00ac96cf90d948f87b3f4eb287ab053976ca57ad503d442ad8605523"},
{"name":"grape_logging","version":"1.8.4","platform":"ruby","checksum":"efcc3e322dbd5d620a68f078733b7db043cf12680144cd03c982f14115c792d1"},
{"name":"graphiql-rails","version":"1.8.0","platform":"ruby","checksum":"02e2c5098be2c6c29219a0e9b2910a2cd3c494301587a3199a7c4484d8038ed1"},
@@ -282,7 +286,7 @@
{"name":"guard-compat","version":"1.2.1","platform":"ruby","checksum":"3ad21ab0070107f92edfd82610b5cdc2fb8e368851e72362ada9703443d646fe"},
{"name":"guard-rspec","version":"4.7.3","platform":"ruby","checksum":"a47ba03cbd1e3c71e6ae8645cea97e203098a248aede507461a43e906e2f75ca"},
{"name":"haml","version":"5.2.2","platform":"ruby","checksum":"6e759246556145642ef832d670fc06f9bd8539159a0e600847a00291dd7aae0c"},
-{"name":"haml_lint","version":"0.52.0","platform":"ruby","checksum":"76326b0f1a412558303bca983bd1bbb6e46555386589174502d263b9918114ea"},
+{"name":"haml_lint","version":"0.53.0","platform":"ruby","checksum":"223dc1b5abfec7a7bedd2d2c409752e8811a5d53cc71c8ef7be329d05bf91b18"},
{"name":"hamlit","version":"2.15.0","platform":"java","checksum":"fda165464e59337ab7cda6304a66bfdb607bb7155f25566da19c9ee7b98e03d1"},
{"name":"hamlit","version":"2.15.0","platform":"ruby","checksum":"d2e8505362338945fa309c68b2b8be07ebdc181200ec6021223567bf66dac38e"},
{"name":"hana","version":"1.3.7","platform":"ruby","checksum":"5425db42d651fea08859811c29d20446f16af196308162894db208cac5ce9b0d"},
@@ -393,20 +397,20 @@
{"name":"net-smtp","version":"0.3.3","platform":"ruby","checksum":"3d51dcaa981b74aff2d89cbe89de4503bc2d682365ea5176366e950a0d68d5b0"},
{"name":"net-ssh","version":"7.2.0","platform":"ruby","checksum":"2a28f177173d1f6bef77471fa927c73959cda36cd03772e117f2fec48f34d2cb"},
{"name":"netrc","version":"0.11.0","platform":"ruby","checksum":"de1ce33da8c99ab1d97871726cba75151113f117146becbe45aa85cb3dabee3f"},
-{"name":"nio4r","version":"2.5.8","platform":"java","checksum":"b2b1800f6bf7ce4b797ca8b639ad278a99c9c904fb087a91d944f38e4bd71401"},
-{"name":"nio4r","version":"2.5.8","platform":"ruby","checksum":"3becb4ad95ab8ac0a9bd2e1b16466869402be62848082bf6329ae9091f276676"},
+{"name":"nio4r","version":"2.7.0","platform":"java","checksum":"3f2e515e928ceeef7668e1f64fc3bfef1417a5ec0908d8e69f2c6d486284e04d"},
+{"name":"nio4r","version":"2.7.0","platform":"ruby","checksum":"9586a685eca8246d6406e712a525e705d15bb88f709d78fc3f141e864df97276"},
{"name":"no_proxy_fix","version":"0.1.2","platform":"ruby","checksum":"4e9b4c31bb146de7fcf347dc1087bb13ac2039b56d50aa019e61036256abcd00"},
-{"name":"nokogiri","version":"1.15.5","platform":"aarch64-linux","checksum":"6dfa1d9837ddb233e234d56e244560ab1bc545d3d1744478060e18691f44ded7"},
-{"name":"nokogiri","version":"1.15.5","platform":"arm-linux","checksum":"e3ac6608c6e1714bc11ff04e29a43fedf4cac2aea1bd88256cc3b927c06f347f"},
-{"name":"nokogiri","version":"1.15.5","platform":"arm64-darwin","checksum":"4d7b15d53c0397d131376a19875aa97dd1c8b404c2c03bd2171f9b77e9592d40"},
-{"name":"nokogiri","version":"1.15.5","platform":"java","checksum":"5f87e71aaeb4f7479b94698737a0aacea77836b4805c7433b655e9565bd56cfe"},
-{"name":"nokogiri","version":"1.15.5","platform":"ruby","checksum":"22448ca35dbcbdcec60dbe25ccf452b685a5436c28f21b2fec2e20917aba9100"},
-{"name":"nokogiri","version":"1.15.5","platform":"x64-mingw-ucrt","checksum":"7612be800909ae51e0a7cfbe1f768757857a9ff0339686814ca67d9bae271ca2"},
-{"name":"nokogiri","version":"1.15.5","platform":"x64-mingw32","checksum":"28fd78d98e12005fe017db5ceccb74b2497f30582e6e26a3344200625fe46aae"},
-{"name":"nokogiri","version":"1.15.5","platform":"x86-linux","checksum":"0d1b564d7f148a6766380966bb48b23afa72c72c992c69c71d21acd4a7f5c0e4"},
-{"name":"nokogiri","version":"1.15.5","platform":"x86-mingw32","checksum":"d27dbf44c19b83e570e65b660a8a921441d1e8b6063ab1b985b516f78e0a2854"},
-{"name":"nokogiri","version":"1.15.5","platform":"x86_64-darwin","checksum":"10bafa54935f68aebd23235cb0fc7dfb8f6f5e52131379484771247eb3a0cc70"},
-{"name":"nokogiri","version":"1.15.5","platform":"x86_64-linux","checksum":"c5d9453cc155dc15f08ac699cc1293fd994ec6cfacec48e67653aa95ee946adf"},
+{"name":"nokogiri","version":"1.16.0","platform":"aarch64-linux","checksum":"8cd981dfd4bea4f519ceebb885cf3b422b71c059d841c039d327e73b19247f53"},
+{"name":"nokogiri","version":"1.16.0","platform":"arm-linux","checksum":"c68d861155c40777eee3eb4efbb375d665c8c889cebd5cd1ba32f30a8aac6c21"},
+{"name":"nokogiri","version":"1.16.0","platform":"arm64-darwin","checksum":"10c08f246085709790ea628b5fa031cf23dadd843e173711b335ba6287b59d0a"},
+{"name":"nokogiri","version":"1.16.0","platform":"java","checksum":"f76f2dc353993862d07eccfc5561e373e8058d62e265bae9bcf4f4793c35c9e2"},
+{"name":"nokogiri","version":"1.16.0","platform":"ruby","checksum":"341388184e975d091e6e38ce3f3b3388bfb7e4ac3d790efd8e39124844040bd1"},
+{"name":"nokogiri","version":"1.16.0","platform":"x64-mingw-ucrt","checksum":"5c59792f7f5f8a76e17a87b89b9057544853a6f713b692a75b7f8895a854b74f"},
+{"name":"nokogiri","version":"1.16.0","platform":"x64-mingw32","checksum":"286950458a58bdf09bb3a800ac16f0aa361aa9a6c9a63bcd71e98e3c34d314a8"},
+{"name":"nokogiri","version":"1.16.0","platform":"x86-linux","checksum":"159107da8a35f1fc22ee5b78d70da9bda4098a3771a29beac3f727cafd5041cb"},
+{"name":"nokogiri","version":"1.16.0","platform":"x86-mingw32","checksum":"27d3d96f53b3fa1da9c4d9d69fffadc34abf7350a8e22be61a7483f15f065438"},
+{"name":"nokogiri","version":"1.16.0","platform":"x86_64-darwin","checksum":"237aa89b9ef6b8e014f197167677926ebc4bdb9cafb2b101399d8001fda4fa43"},
+{"name":"nokogiri","version":"1.16.0","platform":"x86_64-linux","checksum":"6f55093bb47e75d412138f4b9462f960d3aad96cb6b43dbe9a3de62c2d31a742"},
{"name":"notiffany","version":"0.1.3","platform":"ruby","checksum":"d37669605b7f8dcb04e004e6373e2a780b98c776f8eb503ac9578557d7808738"},
{"name":"numerizer","version":"0.2.0","platform":"ruby","checksum":"e58076d5ee5370417b7e52d9cb25836d62acd1b8d9a194c308707986c1705d7b"},
{"name":"oauth","version":"0.5.6","platform":"ruby","checksum":"4085fe28e0c5e2434135e00a6555294fd2a4ff96a98d1bdecdcd619fc6368dff"},
@@ -440,11 +444,11 @@
{"name":"org-ruby","version":"0.9.12","platform":"ruby","checksum":"93cbec3a4470cb9dca6a4a98dc276a6434ea9d9e7bc2d42ea33c3aedd5d1c974"},
{"name":"orm_adapter","version":"0.5.0","platform":"ruby","checksum":"aa5d0be5d540cbb46d3a93e88061f4ece6a25f6e97d6a47122beb84fe595e9b9"},
{"name":"os","version":"1.1.4","platform":"ruby","checksum":"57816d6a334e7bd6aed048f4b0308226c5fb027433b67d90a9ab435f35108d3f"},
-{"name":"pact","version":"1.63.0","platform":"ruby","checksum":"cc2991ed242bf182c6a4abadfd492b2923d09a9b3ed24578126cc056921cb151"},
-{"name":"pact-mock_service","version":"3.10.0","platform":"ruby","checksum":"898ec3b8d96f1934d15941c701ca7d5fef5ccff32022d9a196fb82073cd95e27"},
-{"name":"pact-support","version":"1.18.1","platform":"ruby","checksum":"4a25961c8b1c4132e433a8eaa838b1e6914c6d3aae48eee705b9860a5e8b0476"},
+{"name":"pact","version":"1.64.0","platform":"ruby","checksum":"0bdd848888580db7f29a7d8789b861b8067370c0ac0eb36ffc4bb7ff3f5f6ea8"},
+{"name":"pact-mock_service","version":"3.11.2","platform":"ruby","checksum":"42d9e54546a10229d7915da5383daeb322764c2876a84b4ea521f53c6f1fba51"},
+{"name":"pact-support","version":"1.20.0","platform":"ruby","checksum":"41c343a3124fb379684b9ad9f1a0766c5fa18d3b78d433a52e5552d8b9475871"},
{"name":"parallel","version":"1.22.1","platform":"ruby","checksum":"ebdf1f0c51f182df38522f70ba770214940bef998cdb6e00f36492b29699761f"},
-{"name":"parser","version":"3.2.2.4","platform":"ruby","checksum":"edbe6751f85599c8152173ccadbd708f444b7214de2a1d4969441a68e06ac964"},
+{"name":"parser","version":"3.3.0.2","platform":"ruby","checksum":"418c5d5b56143c541693b9a00968b7005f94440e94e0b2945b55dc543e562ea0"},
{"name":"parslet","version":"1.8.2","platform":"ruby","checksum":"08d1ab3721cd3f175bfbee8788b2ddff71f92038f2d69bd65454c22bb9fbd98a"},
{"name":"pastel","version":"0.8.0","platform":"ruby","checksum":"481da9fb7d2f6e6b1a08faf11fa10363172dc40fd47848f096ae21209f805a75"},
{"name":"peek","version":"1.1.0","platform":"ruby","checksum":"d6501ead8cde46d8d8ed0d59eb6f0ba713d0a41c11a2c4a81447b2dce37b3ecc"},
@@ -455,13 +459,13 @@
{"name":"premailer","version":"1.16.0","platform":"ruby","checksum":"03e4402c448e6bae13fb5f6301a8bde4f3508e1bff90ae7c0972c7be94694786"},
{"name":"premailer-rails","version":"1.10.3","platform":"ruby","checksum":"7cdcb97027866f7a81c490c6d15ada7f39666b5f6375f0821b7e97e0483b112f"},
{"name":"prime","version":"0.1.2","platform":"ruby","checksum":"d4e956cadfaf04de036dc7dc74f95bf6a285a62cc509b28b7a66b245d19fe3a4"},
-{"name":"prism","version":"0.18.0","platform":"ruby","checksum":"bae73ccaed950e830e136be38cdb9461f9f645f8ef306217ff1d66ff83eb589c"},
+{"name":"prism","version":"0.19.0","platform":"ruby","checksum":"47f17ea8c0b35d051de183608f9bb7e29fa0ced37f3fcc5550542896734c3b62"},
{"name":"proc_to_ast","version":"0.1.0","platform":"ruby","checksum":"92a73fa66e2250a83f8589f818b0751bcf227c68f85916202df7af85082f8691"},
-{"name":"prometheus-client-mmap","version":"1.0.2","platform":"aarch64-linux","checksum":"1cec0954f54e47760f56c4fb9cf98de30e5a80f1a803726239590d008c976847"},
-{"name":"prometheus-client-mmap","version":"1.0.2","platform":"arm64-darwin","checksum":"a9911e1963bbdb170f07af125efa2f1fb38aa6f49b442ac31abd2e13cf3599b4"},
-{"name":"prometheus-client-mmap","version":"1.0.2","platform":"ruby","checksum":"f88ef1d375f24b651970bef567101a53edcedd1f5c21922c0c0b3fbec623def5"},
-{"name":"prometheus-client-mmap","version":"1.0.2","platform":"x86_64-darwin","checksum":"17b6266135394fa187d939ab900263837f8b50240ea4fd7946d6ede825511e00"},
-{"name":"prometheus-client-mmap","version":"1.0.2","platform":"x86_64-linux","checksum":"f03c746b1afbd583902e249b347297a8065ec0db06dae61da4c9952dcedc65d5"},
+{"name":"prometheus-client-mmap","version":"1.1.0","platform":"aarch64-linux","checksum":"c6e6f0c01372cc328a009982645f20d2cbd912d4b2cf1e0318a422def57f8e7f"},
+{"name":"prometheus-client-mmap","version":"1.1.0","platform":"arm64-darwin","checksum":"97e05aada483d2dbb530dee330b769068f8fde98e9ed00a80762e3f15a9e54a9"},
+{"name":"prometheus-client-mmap","version":"1.1.0","platform":"ruby","checksum":"6bd3d7ed398259202c4fbe9c857b45e7f00cb8e8f26f766afb992a3e8920b1a6"},
+{"name":"prometheus-client-mmap","version":"1.1.0","platform":"x86_64-darwin","checksum":"8e213d143d2f058a39d948c2b34e962c71c8c5301cd71a289ca5a002e81fd3bc"},
+{"name":"prometheus-client-mmap","version":"1.1.0","platform":"x86_64-linux","checksum":"1e768e262fbbfd445d097f9b79028cbef35dd6fb4d7733096bceadedaa7c01ab"},
{"name":"protocol","version":"2.0.0","platform":"ruby","checksum":"dcd7c509e53b8cd6284e965a2e2e71d5291ca9e2d50acfa3d7ee0561c0df16b9"},
{"name":"pry","version":"0.14.2","platform":"java","checksum":"fd780670977ba04ff7ee32dabd4d02fe4bf02e977afe8809832d5dca1412862e"},
{"name":"pry","version":"0.14.2","platform":"ruby","checksum":"c4fe54efedaca1d351280b45b8849af363184696fcac1c72e0415f9bdac4334d"},
@@ -482,40 +486,42 @@
{"name":"rack-oauth2","version":"1.21.3","platform":"ruby","checksum":"4e72a79dd6a866692e84422a552b27c38a5a1918ded06661e04910f2bbe676ba"},
{"name":"rack-protection","version":"2.2.2","platform":"ruby","checksum":"fd41414dbabbec274af0bdb1f72a48504449de4d979782c9af38cbb5dfff3299"},
{"name":"rack-proxy","version":"0.7.7","platform":"ruby","checksum":"446a4b57001022145d5c3ba73b775f66a2260eaf7420c6907483141900395c8a"},
+{"name":"rack-session","version":"1.0.2","platform":"ruby","checksum":"a02115e5420b4de036839b9811e3f7967d73446a554b42aa45106af335851d76"},
{"name":"rack-test","version":"2.1.0","platform":"ruby","checksum":"0c61fc61904049d691922ea4bb99e28004ed3f43aa5cfd495024cc345f125dfb"},
{"name":"rack-timeout","version":"0.6.3","platform":"ruby","checksum":"1754892eacc124d405e7f1145731ec9b7421ebd1bee5d51ddc18b72c204d0ab3"},
{"name":"rails","version":"7.0.8","platform":"ruby","checksum":"8e43af921acf766fb429126f020ec90c3b25809631f8fbdff95c3553828d5867"},
{"name":"rails-controller-testing","version":"1.0.5","platform":"ruby","checksum":"741448db59366073e86fc965ba403f881c636b79a2c39a48d0486f2607182e94"},
{"name":"rails-dom-testing","version":"2.0.3","platform":"ruby","checksum":"b140c4f39f6e609c8113137b9a60dfc2ecb89864e496f87f23a68b3b8f12d8d1"},
-{"name":"rails-html-sanitizer","version":"1.5.0","platform":"ruby","checksum":"bf326075e8a968cd882c30b15a4c9100059be3af2356093dc68324ec3bd9ea79"},
+{"name":"rails-html-sanitizer","version":"1.6.0","platform":"ruby","checksum":"86e9f19d2e6748890dcc2633c8945ca45baa08a1df9d8c215ce17b3b0afaa4de"},
{"name":"rails-i18n","version":"7.0.3","platform":"ruby","checksum":"e3158e98c5332d129fd5131f171ac575eb30dbb8919b21595382b08850cf2bd3"},
{"name":"railties","version":"7.0.8","platform":"ruby","checksum":"12325c3933efd33f8ead640197dec3b8c27c8d45607dd68b7b925896bf09cc69"},
{"name":"rainbow","version":"3.1.1","platform":"ruby","checksum":"039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a"},
{"name":"rake","version":"13.0.6","platform":"ruby","checksum":"5ce4bf5037b4196c24ac62834d8db1ce175470391026bd9e557d669beeb19097"},
{"name":"rb-fsevent","version":"0.11.2","platform":"ruby","checksum":"43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe"},
{"name":"rb-inotify","version":"0.10.1","platform":"ruby","checksum":"050062d4f31d307cca52c3f6a7f4b946df8de25fc4bd373e1a5142e41034a7ca"},
-{"name":"rb_sys","version":"0.9.83","platform":"ruby","checksum":"0ed80df79aa08b942af731d93a676f2d885428267f2fbf138f9b6b7809c6455e"},
+{"name":"rb_sys","version":"0.9.86","platform":"ruby","checksum":"65d35ad5f2f2e7257607310186d6a178f34d0fee807d3b1af5611db6a5503a8c"},
{"name":"rbtrace","version":"0.4.14","platform":"ruby","checksum":"162bbf89cecabfc4f09c869b655f6f3a679c4870ebb7cbdcadf7393a81cc1769"},
{"name":"rbtree","version":"0.4.6","platform":"ruby","checksum":"14eea4469b24fd2472542e5f3eb105d6344c8ccf36f0b56d55fdcfeb4e0f10fc"},
{"name":"rchardet","version":"1.8.0","platform":"ruby","checksum":"693acd5253d5ade81a51940697955f6dd4bb2f0d245bda76a8e23deec70a52c7"},
-{"name":"re2","version":"2.5.0","platform":"aarch64-linux","checksum":"b370a5f08b011f86bd41e4934c21f66389a34ac9949b754b321986c560a2ae8d"},
-{"name":"re2","version":"2.5.0","platform":"arm-linux","checksum":"91f73d83d638413f515a24e5a98e79c7bd40f1f059b13c857e751185f8b98b43"},
-{"name":"re2","version":"2.5.0","platform":"arm64-darwin","checksum":"4b20c4539a12787102b22012e678968af23f87e35f88843744835bd13ac9f6bc"},
-{"name":"re2","version":"2.5.0","platform":"ruby","checksum":"42bbf4292ef80aef54070d0904d3a7ccbb5f907dcf9006914a8b2ce6ea8b0646"},
-{"name":"re2","version":"2.5.0","platform":"x64-mingw-ucrt","checksum":"2d2a3c98e0dedebd1763f660773a776cb7d0a15d43428d68a7ff0f160d0c0d8f"},
-{"name":"re2","version":"2.5.0","platform":"x64-mingw32","checksum":"3ccd08b73995d461646ca1515535c8715756cc674df75394d072e056c87c380f"},
-{"name":"re2","version":"2.5.0","platform":"x86-linux","checksum":"ec165b08ee161c339582fb73ccd412f44b627ced1151cc8400c566b5bc2e8fbd"},
-{"name":"re2","version":"2.5.0","platform":"x86-mingw32","checksum":"39de555fb04b3ce0d37ea961525cab7a77e7015f0fc0692b30e4950d4d6314f8"},
-{"name":"re2","version":"2.5.0","platform":"x86_64-darwin","checksum":"1c926ee5f7ed7649f7d84d677f499a1c04542a4bf007a5765f9f33906753e2d3"},
-{"name":"re2","version":"2.5.0","platform":"x86_64-linux","checksum":"fbe9c0e939dceb4117fd9da5d35f69de57d96ef077edfb14e2661c877f4290ef"},
+{"name":"re2","version":"2.6.0","platform":"aarch64-linux","checksum":"1cb558bdeabe01bb935988f49969613a83681014392c81ed10caa62351fb91d6"},
+{"name":"re2","version":"2.6.0","platform":"arm-linux","checksum":"b6007820d8a7a723d9549e44118a696dd289d8822a324c52d3663d3d1e9479f6"},
+{"name":"re2","version":"2.6.0","platform":"arm64-darwin","checksum":"ba6fda7a29cd16179d5401c1b4917ba204c92e5ca9d25df80d840ed76fca439f"},
+{"name":"re2","version":"2.6.0","platform":"ruby","checksum":"78e13aa6a9ee962b76eb2aa08b6e3246652a1ce3d7b097eb114b13ff4606486a"},
+{"name":"re2","version":"2.6.0","platform":"x64-mingw-ucrt","checksum":"8332068cbb0ec170938bd27c518a298e9d78be53d2e7ea004f4994290559c330"},
+{"name":"re2","version":"2.6.0","platform":"x64-mingw32","checksum":"e9c114c59332fa782e68d6695d2f511eb5eb973e535c55a903de4470501b4cf0"},
+{"name":"re2","version":"2.6.0","platform":"x86-linux","checksum":"0177a4d83268cd125e15acef96d6bde625ab4bb892d04999733104e39155b270"},
+{"name":"re2","version":"2.6.0","platform":"x86-mingw32","checksum":"5b3f1413edc3c0c54df27f6b27f130ed3d64a124df93fdf676f078dd6faf2bfe"},
+{"name":"re2","version":"2.6.0","platform":"x86_64-darwin","checksum":"0f2463816345fd5b6a1e552711c2a3d5f86275e3f72dcfee0d400c89e14842c2"},
+{"name":"re2","version":"2.6.0","platform":"x86_64-linux","checksum":"eabc7877470c5dd08f4ecd12040f6c44400403a9252dddda024a3092f2af1604"},
{"name":"recaptcha","version":"5.12.3","platform":"ruby","checksum":"37d1894add9e70a54d0c6c7f0ecbeedffbfa7d075acfbd4c509818dfdebdb7ee"},
{"name":"recursive-open-struct","version":"1.1.3","platform":"ruby","checksum":"a3538a72552fcebcd0ada657bdff313641a4a5fbc482c08cfb9a65acb1c9de5a"},
{"name":"redcarpet","version":"3.6.0","platform":"ruby","checksum":"8ad1889c0355ff4c47174af14edd06d62f45a326da1da6e8a121d59bdcd2e9e9"},
{"name":"redis","version":"4.8.0","platform":"ruby","checksum":"2000cf5014669c9dc821704b6d322a35a9a33852a95208911d9175d63b448a44"},
-{"name":"redis-actionpack","version":"5.3.0","platform":"ruby","checksum":"3fb1ad0a8fd9d26a289c9399bb609dcaef38bf37711e6f677a53ca728fc19140"},
+{"name":"redis-actionpack","version":"5.4.0","platform":"ruby","checksum":"f10cf649ab05914716d63334d7f709221ecc883b87cf348f90ecfe0c35ea3540"},
+{"name":"redis-client","version":"0.19.0","platform":"ruby","checksum":"6ed9af23ff5aa87cf4d59439db77082b4cae5a0abbdd114ec5420bd63456324d"},
{"name":"redis-namespace","version":"1.10.0","platform":"ruby","checksum":"2c1c6ea7c6c5e343e75b9bee3aa4c265e364a5b9966507397467af2bb3758d94"},
-{"name":"redis-rack","version":"2.1.4","platform":"ruby","checksum":"0872eecb303e483c3863d6bd0d47323d230640d41c1a4ac4a2c7596ec0b1774c"},
-{"name":"redis-store","version":"1.9.1","platform":"ruby","checksum":"7b4c7438d46f7b7ce8f67fc0eda3a04fc67d32d28cf606cc98a5df4d2b77071d"},
+{"name":"redis-rack","version":"3.0.0","platform":"ruby","checksum":"abb50b82ae10ad4d11ca2e4901bfc2b98256cdafbbd95f80c86fc9e001478380"},
+{"name":"redis-store","version":"1.10.0","platform":"ruby","checksum":"f258894f9f7e82834308a3d86242294f0cff2c9db9ae66e5cb4c553a5ec8b09e"},
{"name":"regexp_parser","version":"2.6.0","platform":"ruby","checksum":"f163ba463a45ca2f2730e0902f2475bb0eefcd536dfc2f900a86d1e5a7d7a556"},
{"name":"regexp_property_values","version":"1.0.0","platform":"java","checksum":"5e26782b01241616855c4ee7bb8a62fce9387e484f2d3eaf04f2a0633708222e"},
{"name":"regexp_property_values","version":"1.0.0","platform":"ruby","checksum":"162499dc0bba1e66d334273a059f207a61981cc8cc69d2ca743594e7886d080f"},
@@ -556,7 +562,7 @@
{"name":"rubocop-rails","version":"2.22.1","platform":"ruby","checksum":"db673cdb6321d8bb7627cd6cfb2cb36114acaa0e89581e4694b7304ce2acbd46"},
{"name":"rubocop-rspec","version":"2.25.0","platform":"ruby","checksum":"083f8a0481dbb9969b2a9eae85670a454fe91d46812e6ec97b34e7f6227b99f3"},
{"name":"ruby-fogbugz","version":"0.3.0","platform":"ruby","checksum":"5e04cde474648f498a71cf1e1a7ab42c66b953862fbe224f793ec0a7a1d5f657"},
-{"name":"ruby-lsp","version":"0.13.1","platform":"ruby","checksum":"8f1243beb92a49e24447edbd0c31a7ee3a400376757dea60f068fe4eba4a4dff"},
+{"name":"ruby-lsp","version":"0.13.2","platform":"ruby","checksum":"99db45e35fb1e6ffa04e8f65665797c4c5efdd925dde2b33353b8794b46a3bbc"},
{"name":"ruby-lsp-rails","version":"0.2.8","platform":"ruby","checksum":"1730cafa65c04c9bc3b6e28b3454afb561ae71859be1f26f36b065975a5a57c8"},
{"name":"ruby-lsp-rspec","version":"0.1.8","platform":"ruby","checksum":"21db2255bad7ecf7297945c453d8e84af167d01776853f47aacb3bb50caa0ea3"},
{"name":"ruby-magic","version":"0.6.0","platform":"ruby","checksum":"7b2138877b7d23aff812c95564eba6473b74b815ef85beb0eb792e729a2b6101"},
@@ -589,7 +595,7 @@
{"name":"sexp_processor","version":"4.17.0","platform":"ruby","checksum":"4daa4874ce1838cd801c65e66ed5d4f140024404a3de7482c36d4ef2604dff6f"},
{"name":"shellany","version":"0.0.1","platform":"ruby","checksum":"0e127a9132698766d7e752e82cdac8250b6adbd09e6c0a7fbbb6f61964fedee7"},
{"name":"shoulda-matchers","version":"5.1.0","platform":"ruby","checksum":"a01d20589989e9653ab4a28c67d9db2b82bcf0a2496cf01d5e1a95a4aaaf5b07"},
-{"name":"sidekiq","version":"6.5.12","platform":"ruby","checksum":"b4f93b2204c42220d0b526a7b8e0c49b5f9da82c1ce1a05d2baf1e8f744c197f"},
+{"name":"sidekiq","version":"7.1.6","platform":"ruby","checksum":"7859da66d5bcef3c22bea2c3091d08c866890168e003f5bf4dea197dc37843a2"},
{"name":"sidekiq-cron","version":"1.12.0","platform":"ruby","checksum":"6663080a454088bd88773a0da3ae91e554b8a2e8b06cfc629529a83fd1a3096c"},
{"name":"sigdump","version":"0.2.4","platform":"ruby","checksum":"0bf2176e55c1a262788623fe5ea57caddd6ba2abebe5e349d9d5e7c3a3010ed7"},
{"name":"signet","version":"0.17.0","platform":"ruby","checksum":"1d2831930dc28da32e34bec68cf7ded97ee2867b208f97c500ee293829cb0004"},
@@ -682,7 +688,7 @@
{"name":"uniform_notifier","version":"1.16.0","platform":"ruby","checksum":"99b39ee4a0864e3b49f375b5e5803eb26d35ed6eb1719c96407573a87bc4dbb5"},
{"name":"unleash","version":"3.2.2","platform":"ruby","checksum":"0f6e56498de920de66a01bceffb93933693ade646bb853fc70eb16bd1026b93b"},
{"name":"unparser","version":"0.6.7","platform":"ruby","checksum":"ae42e73edfa273766e66c166368fb75ca5972cd8ec50c536253e0f6299a9dec8"},
-{"name":"uri","version":"0.12.2","platform":"ruby","checksum":"be79bd8017858c9fc36c78765c69e92b6a7e049ea6a83364909476ad1b4b4439"},
+{"name":"uri","version":"0.13.0","platform":"ruby","checksum":"26553c2a9399762e1e8bebd4444b4361c4b21298cf1c864b22eeabc9c4998f24"},
{"name":"uri_template","version":"0.7.0","platform":"ruby","checksum":"312c8fe13700db86ac9d05ea997af3db03abdf50c65b1801d775bc7a695f185d"},
{"name":"valid_email","version":"0.1.3","platform":"ruby","checksum":"b81452b51b64c4beb67913f68db52c20ecb4d73d45512f5b282ab4a3f4416570"},
{"name":"validate_email","version":"0.1.6","platform":"ruby","checksum":"9dfe9016d527b17a8d3a6e95e4dc50a125400eef899d13d4cc2a254393f82ee4"},
diff --git a/Gemfile.lock b/Gemfile.lock
index e106367ae95..c7be326191a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -33,6 +33,7 @@ PATH
remote: gems/gitlab-housekeeper
specs:
gitlab-housekeeper (0.1.0)
+ activesupport
httparty
rubocop
@@ -44,7 +45,6 @@ PATH
concurrent-ruby (~> 1.2)
httparty (~> 0.21.0)
ipaddress (~> 0.8.3)
- nokogiri (~> 1.15.4)
railties (~> 7)
PATH
@@ -66,6 +66,7 @@ PATH
remote: gems/gitlab-safe_request_store
specs:
gitlab-safe_request_store (0.1.0)
+ rack (~> 2.2.8)
request_store
PATH
@@ -79,6 +80,7 @@ PATH
remote: gems/gitlab-secret_detection
specs:
gitlab-secret_detection (0.1.0)
+ parallel (~> 1.22)
re2 (~> 2.4)
toml-rb (~> 2.2)
@@ -89,7 +91,6 @@ PATH
actionview (>= 6.1.7.2)
activesupport (>= 6.1.7.2)
addressable (~> 2.8)
- nokogiri (~> 1.15.2)
rake (~> 13.0)
PATH
@@ -179,9 +180,9 @@ PATH
PATH
remote: vendor/gems/sidekiq-reliable-fetch
specs:
- gitlab-sidekiq-fetcher (0.10.0)
+ gitlab-sidekiq-fetcher (0.11.0)
json (>= 2.5)
- sidekiq (~> 6.1)
+ sidekiq (~> 7.0)
GEM
remote: https://rubygems.org/
@@ -296,28 +297,28 @@ GEM
awesome_print (1.9.2)
awrence (1.2.1)
aws-eventstream (1.3.0)
- aws-partitions (1.761.0)
+ aws-partitions (1.877.0)
aws-sdk-cloudformation (1.41.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
- aws-sdk-core (3.190.0)
+ aws-sdk-core (3.190.2)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-kms (1.64.0)
- aws-sdk-core (~> 3, >= 3.165.0)
+ aws-sdk-kms (1.76.0)
+ aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
- aws-sdk-s3 (1.141.0)
+ aws-sdk-s3 (1.142.0)
aws-sdk-core (~> 3, >= 3.189.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
- axe-core-api (4.6.0)
+ axe-core-api (4.8.0)
dumb_delegator
virtus
- axe-core-rspec (4.6.0)
+ axe-core-rspec (4.8.0)
axe-core-api
dumb_delegator
virtus
@@ -352,7 +353,7 @@ GEM
bindata (2.4.11)
binding_of_caller (1.0.0)
debug_inspector (>= 0.0.1)
- bootsnap (1.17.0)
+ bootsnap (1.17.1)
msgpack (~> 1.2)
browser (5.3.1)
builder (3.2.4)
@@ -500,7 +501,7 @@ GEM
jwt (>= 2.5)
dotenv (2.7.6)
dry-cli (1.0.0)
- dry-core (1.0.0)
+ dry-core (1.0.1)
concurrent-ruby (~> 1.0)
zeitwerk (~> 2.6)
dry-inflector (1.0.0)
@@ -552,10 +553,10 @@ GEM
expression_parser (0.9.0)
extended-markdown-filter (0.7.0)
html-pipeline (~> 2.9)
- factory_bot (6.2.0)
+ factory_bot (6.4.5)
activesupport (>= 5.0.0)
- factory_bot_rails (6.2.0)
- factory_bot (~> 6.2.0)
+ factory_bot_rails (6.4.3)
+ factory_bot (~> 6.4)
railties (>= 5.0.0)
faraday (1.10.0)
faraday-em_http (~> 1.0)
@@ -596,7 +597,6 @@ GEM
rake
ffi-yajl (2.6.0)
libyajl2 (>= 1.2)
- filelock (1.1.1)
find_a_port (1.0.1)
flipper (0.26.2)
concurrent-ruby (< 2)
@@ -693,13 +693,15 @@ GEM
fog-core (= 2.1.0)
fog-json (~> 1.2.0)
mime-types
- gitlab-labkit (0.34.0)
+ gitlab-glfm-markdown (0.0.10)
+ rb_sys (~> 0.9.86)
+ gitlab-labkit (0.35.0)
actionpack (>= 5.0.0, < 8.0.0)
activesupport (>= 5.0.0, < 8.0.0)
grpc (>= 1.37)
jaeger-client (~> 1.1.0)
opentracing (~> 0.4)
- pg_query (~> 4.2.3)
+ pg_query (>= 4.2.3, < 6.0)
redis (> 3.0.0, < 6.0.0)
gitlab-license (2.3.0)
gitlab-mail_room (0.0.24)
@@ -727,7 +729,7 @@ GEM
omniauth (>= 1.3, < 3)
pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
rubyntlm (~> 0.5)
- gitlab_quality-test_tooling (1.9.0)
+ gitlab_quality-test_tooling (1.11.0)
activesupport (>= 6.1, < 7.2)
amatch (~> 0.4.1)
gitlab (~> 4.19)
@@ -798,7 +800,7 @@ GEM
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
- google-protobuf (3.25.1)
+ google-protobuf (3.25.2)
googleapis-common-protos (1.4.0)
google-protobuf (~> 3.14)
googleapis-common-protos-types (~> 1.2)
@@ -814,23 +816,24 @@ GEM
signet (>= 0.16, < 2.a)
gpgme (2.0.23)
mini_portile2 (~> 2.7)
- grape (1.7.1)
- activesupport
+ grape (2.0.0)
+ activesupport (>= 5)
builder
dry-types (>= 1.1)
mustermann-grape (~> 1.0.0)
- rack (>= 1.3.0, < 3)
+ rack (>= 1.3.0)
rack-accept
grape-entity (0.10.0)
activesupport (>= 3.0.0)
multi_json (>= 1.3.2)
- grape-path-helpers (1.7.1)
+ grape-path-helpers (2.0.1)
activesupport
- grape (~> 1.3)
+ grape (~> 2.0)
rake (> 12)
ruby2_keywords (~> 0.0.2)
- grape-swagger (1.6.1)
- grape (~> 1.3)
+ grape-swagger (2.0.1)
+ grape (>= 1.7, < 3.0)
+ rack-test (~> 2)
grape-swagger-entity (0.5.1)
grape-entity (>= 0.6.0)
grape-swagger (>= 1.2.0)
@@ -879,8 +882,8 @@ GEM
haml (5.2.2)
temple (>= 0.8.0)
tilt
- haml_lint (0.52.0)
- haml (>= 4.0)
+ haml_lint (0.53.0)
+ haml (>= 5.0)
parallel (~> 1.10)
rainbow
rubocop (>= 1.0)
@@ -1104,9 +1107,9 @@ GEM
net-protocol
net-ssh (7.2.0)
netrc (0.11.0)
- nio4r (2.5.8)
+ nio4r (2.7.0)
no_proxy_fix (0.1.2)
- nokogiri (1.15.5)
+ nokogiri (1.16.0)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
notiffany (0.1.3)
@@ -1206,31 +1209,29 @@ GEM
rubypants (~> 0.2)
orm_adapter (0.5.0)
os (1.1.4)
- pact (1.63.0)
+ pact (1.64.0)
pact-mock_service (~> 3.0, >= 3.3.1)
pact-support (~> 1.16, >= 1.16.9)
rack-test (>= 0.6.3, < 3.0.0)
rspec (~> 3.0)
- term-ansicolor (~> 1.0)
+ term-ansicolor (~> 1.7)
thor (>= 0.20, < 2.0)
- webrick (~> 1.3)
- pact-mock_service (3.10.0)
- filelock (~> 1.1)
+ webrick (~> 1.8)
+ pact-mock_service (3.11.2)
find_a_port (~> 1.0.1)
json
pact-support (~> 1.16, >= 1.16.4)
rack (~> 2.0)
rspec (>= 2.14)
- term-ansicolor (~> 1.0)
thor (>= 0.19, < 2.0)
- webrick (~> 1.3)
- pact-support (1.18.1)
+ webrick (~> 1.8)
+ pact-support (1.20.0)
awesome_print (~> 1.9)
- diff-lcs (~> 1.4)
+ diff-lcs (~> 1.5)
expgen (~> 0.1)
rainbow (~> 3.1.1)
parallel (1.22.1)
- parser (3.2.2.4)
+ parser (3.3.0.2)
ast (~> 2.4.1)
racc
parslet (1.8.2)
@@ -1253,13 +1254,13 @@ GEM
prime (0.1.2)
forwardable
singleton
- prism (0.18.0)
+ prism (0.19.0)
proc_to_ast (0.1.0)
coderay
parser
unparser
- prometheus-client-mmap (1.0.2)
- rb_sys (~> 0.9)
+ prometheus-client-mmap (1.1.0)
+ rb_sys (~> 0.9.86)
protocol (2.0.0)
ruby_parser (~> 3.0)
pry (0.14.2)
@@ -1297,6 +1298,8 @@ GEM
rack
rack-proxy (0.7.7)
rack
+ rack-session (1.0.2)
+ rack (< 3)
rack-test (2.1.0)
rack (>= 1.3)
rack-timeout (0.6.3)
@@ -1321,8 +1324,9 @@ GEM
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
- rails-html-sanitizer (1.5.0)
- loofah (~> 2.19, >= 2.19.1)
+ rails-html-sanitizer (1.6.0)
+ loofah (~> 2.21)
+ nokogiri (~> 1.14)
rails-i18n (7.0.3)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
@@ -1338,31 +1342,33 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
- rb_sys (0.9.83)
+ rb_sys (0.9.86)
rbtrace (0.4.14)
ffi (>= 1.0.6)
msgpack (>= 0.4.3)
optimist (>= 3.0.0)
rbtree (0.4.6)
rchardet (1.8.0)
- re2 (2.5.0)
+ re2 (2.6.0)
mini_portile2 (~> 2.8.5)
recaptcha (5.12.3)
json
recursive-open-struct (1.1.3)
redcarpet (3.6.0)
redis (4.8.0)
- redis-actionpack (5.3.0)
+ redis-actionpack (5.4.0)
actionpack (>= 5, < 8)
- redis-rack (>= 2.1.0, < 3)
+ redis-rack (>= 2.1.0, < 4)
redis-store (>= 1.1.0, < 2)
+ redis-client (0.19.0)
+ connection_pool
redis-namespace (1.10.0)
redis (>= 4)
- redis-rack (2.1.4)
- rack (>= 2.0.8, < 3)
+ redis-rack (3.0.0)
+ rack-session (>= 0.2.0)
redis-store (>= 1.2, < 2)
- redis-store (1.9.1)
- redis (>= 4, < 5)
+ redis-store (1.10.0)
+ redis (>= 4, < 6)
regexp_parser (2.6.0)
regexp_property_values (1.0.0)
representable (3.2.0)
@@ -1469,9 +1475,9 @@ GEM
ruby-fogbugz (0.3.0)
crack (~> 0.4)
multipart-post (~> 2.0)
- ruby-lsp (0.13.1)
+ ruby-lsp (0.13.2)
language_server-protocol (~> 3.17.0)
- prism (>= 0.18.0, < 0.19)
+ prism (>= 0.19.0, < 0.20)
sorbet-runtime (>= 0.5.5685)
ruby-lsp-rails (0.2.8)
actionpack (>= 6.0)
@@ -1542,10 +1548,11 @@ GEM
shellany (0.0.1)
shoulda-matchers (5.1.0)
activesupport (>= 5.2.0)
- sidekiq (6.5.12)
- connection_pool (>= 2.2.5, < 3)
- rack (~> 2.0)
- redis (>= 4.5.0, < 5)
+ sidekiq (7.1.6)
+ concurrent-ruby (< 2)
+ connection_pool (>= 2.3.0)
+ rack (>= 2.2.4)
+ redis-client (>= 0.14.0)
sidekiq-cron (1.12.0)
fugit (~> 1.8)
globalid (>= 1.0.1)
@@ -1713,7 +1720,7 @@ GEM
unparser (0.6.7)
diff-lcs (~> 1.3)
parser (>= 3.2.0)
- uri (0.12.2)
+ uri (0.13.0)
uri_template (0.7.0)
valid_email (0.1.3)
activemodel
@@ -1808,9 +1815,9 @@ DEPENDENCIES
autoprefixer-rails (= 10.2.5.1)
awesome_print
aws-sdk-cloudformation (~> 1)
- aws-sdk-core (~> 3.190.0)
- aws-sdk-s3 (~> 1.141.0)
- axe-core-rspec
+ aws-sdk-core (~> 3.190.2)
+ aws-sdk-s3 (~> 1.142.0)
+ axe-core-rspec (~> 4.8.0)
babosa (~> 2.0)
base32 (~> 0.3.0)
batch-loader (~> 2.0.1)
@@ -1818,7 +1825,7 @@ DEPENDENCIES
benchmark-ips (~> 2.11.0)
benchmark-memory (~> 0.1)
better_errors (~> 2.10.1)
- bootsnap (~> 1.17.0)
+ bootsnap (~> 1.17.1)
browser (~> 5.3.1)
bullet (~> 7.1.2)
bundler-audit (~> 0.9.1)
@@ -1861,7 +1868,7 @@ DEPENDENCIES
email_reply_trimmer (~> 0.1)
email_spec (~> 2.2.0)
error_tracking_open_api!
- factory_bot_rails (~> 6.2.0)
+ factory_bot_rails (~> 6.4.3)
faraday (~> 1.0)
faraday_middleware-aws-sigv4 (~> 0.3.0)
fast_blank (~> 1.0.1)
@@ -1884,9 +1891,10 @@ DEPENDENCIES
gitlab-dangerfiles (~> 4.6.0)
gitlab-experiment (~> 0.9.1)
gitlab-fog-azure-rm (~> 1.8.0)
+ gitlab-glfm-markdown (~> 0.0.10)
gitlab-housekeeper!
gitlab-http!
- gitlab-labkit (~> 0.34.0)
+ gitlab-labkit (~> 0.35.0)
gitlab-license (~> 2.3)
gitlab-mail_room (~> 0.0.24)
gitlab-markup (~> 1.9.0)
@@ -1902,7 +1910,7 @@ DEPENDENCIES
gitlab-utils!
gitlab_chronic_duration (~> 0.12)
gitlab_omniauth-ldap (~> 2.2.0)
- gitlab_quality-test_tooling (~> 1.9.0)
+ gitlab_quality-test_tooling (~> 1.11.0)
gon (~> 6.4.0)
google-apis-androidpublisher_v3 (~> 0.34.0)
google-apis-cloudbilling_v1 (~> 0.21.0)
@@ -1916,12 +1924,12 @@ DEPENDENCIES
google-apis-sqladmin_v1beta4 (~> 0.41.0)
google-apis-storage_v1 (~> 0.29)
google-cloud-storage (~> 1.45.0)
- google-protobuf (~> 3.25, >= 3.25.1)
+ google-protobuf (~> 3.25, >= 3.25.2)
gpgme (~> 2.0.23)
- grape (~> 1.7.1)
+ grape (~> 2.0.0)
grape-entity (~> 0.10.0)
- grape-path-helpers (~> 1.7.1)
- grape-swagger (~> 1.6.1)
+ grape-path-helpers (~> 2.0.0)
+ grape-swagger (~> 2.0.1)
grape-swagger-entity (~> 0.5.1)
grape_logging (~> 1.8)
graphiql-rails (~> 1.8.0)
@@ -1932,7 +1940,7 @@ DEPENDENCIES
grpc (~> 1.58.0)
gssapi (~> 1.3.1)
guard-rspec
- haml_lint (~> 0.52)
+ haml_lint (~> 0.53)
hamlit (~> 2.15.0)
hashie (~> 5.0.0)
health_check (~> 3.0)
@@ -1979,7 +1987,7 @@ DEPENDENCIES
net-ldap (~> 0.17.1)
net-ntp
net-protocol (~> 0.1.3)
- nokogiri (~> 1.15, >= 1.15.5)
+ nokogiri (~> 1.16)
oauth2 (~> 2.0)
octokit (~> 6.0)
ohai (~> 18.1)
@@ -2007,20 +2015,20 @@ DEPENDENCIES
openssl (~> 3.0)
org-ruby (~> 0.9.12)
os (~> 1.1)
- pact (~> 1.63)
+ pact (~> 1.64)
parallel (~> 1.19)
- parser (~> 3.2, >= 3.2.2.4)
+ parser (~> 3.3, >= 3.3.0.2)
parslet (~> 1.8)
peek (~> 1.1)
pg (~> 1.5.4)
pg_query (~> 4.2.3)
png_quantizator (~> 0.2.1)
premailer-rails (~> 1.10.3)
- prometheus-client-mmap (~> 1.0, >= 1.0.2)
+ prometheus-client-mmap (~> 1.1)
pry-byebug
pry-rails (~> 0.3.9)
pry-shell (~> 0.6.4)
- puma (~> 6.4)
+ puma (= 6.4.0)
rack (~> 2.2.8)
rack-attack (~> 6.7.0)
rack-cors (~> 2.0.1)
@@ -2032,10 +2040,10 @@ DEPENDENCIES
rails-i18n (~> 7.0)
rainbow (~> 3.0)
rbtrace (~> 0.4)
- re2 (= 2.5.0)
+ re2 (= 2.6.0)
recaptcha (~> 5.12)
redis (~> 4.8.0)
- redis-actionpack (~> 5.3.0)
+ redis-actionpack (~> 5.4.0)
redis-namespace (~> 1.10.0)
request_store (~> 1.5.1)
responders (~> 3.0)
@@ -2051,7 +2059,7 @@ DEPENDENCIES
rspec_profiling (~> 0.0.6)
rubocop
ruby-fogbugz (~> 0.3.0)
- ruby-lsp (~> 0.13.1)
+ ruby-lsp (~> 0.13.2)
ruby-lsp-rails (~> 0.2.8)
ruby-lsp-rspec (~> 0.1.8)
ruby-magic (~> 0.6)
@@ -2071,11 +2079,11 @@ DEPENDENCIES
sentry-ruby (~> 5.10.0)
sentry-sidekiq (~> 5.10.0)
shoulda-matchers (~> 5.1.0)
- sidekiq (~> 6.5.10)
+ sidekiq (~> 7.1.6)
sidekiq-cron (~> 1.12.0)
sigdump (~> 0.2.4)
simple_po_parser (~> 1.1.6)
- simplecov (~> 0.21)
+ simplecov (~> 0.22)
simplecov-cobertura (~> 2.1.0)
simplecov-lcov (~> 0.8.0)
slack-messenger (~> 2.3.4)
@@ -2117,4 +2125,4 @@ DEPENDENCIES
yajl-ruby (~> 1.4.3)
BUNDLED WITH
- 2.4.22
+ 2.5.4
diff --git a/app/assets/images/mailers/in_product_marketing/admin_verify-0.png b/app/assets/images/mailers/in_product_marketing/admin_verify-0.png
deleted file mode 100644
index c6d3e55afc1..00000000000
--- a/app/assets/images/mailers/in_product_marketing/admin_verify-0.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/create-0.png b/app/assets/images/mailers/in_product_marketing/create-0.png
deleted file mode 100644
index 7fc992f14f2..00000000000
--- a/app/assets/images/mailers/in_product_marketing/create-0.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/create-1.png b/app/assets/images/mailers/in_product_marketing/create-1.png
deleted file mode 100644
index 0315ffefb31..00000000000
--- a/app/assets/images/mailers/in_product_marketing/create-1.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/create-2.png b/app/assets/images/mailers/in_product_marketing/create-2.png
deleted file mode 100644
index 619f9fcd659..00000000000
--- a/app/assets/images/mailers/in_product_marketing/create-2.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/experience-0.png b/app/assets/images/mailers/in_product_marketing/experience-0.png
deleted file mode 100644
index 346204d1db1..00000000000
--- a/app/assets/images/mailers/in_product_marketing/experience-0.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/team-0.png b/app/assets/images/mailers/in_product_marketing/team-0.png
deleted file mode 100644
index f10ae998efa..00000000000
--- a/app/assets/images/mailers/in_product_marketing/team-0.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/team-1.png b/app/assets/images/mailers/in_product_marketing/team-1.png
deleted file mode 100644
index cd68464e6e8..00000000000
--- a/app/assets/images/mailers/in_product_marketing/team-1.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/team-2.png b/app/assets/images/mailers/in_product_marketing/team.png
index b199c659943..b199c659943 100644
--- a/app/assets/images/mailers/in_product_marketing/team-2.png
+++ b/app/assets/images/mailers/in_product_marketing/team.png
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/trial-0.png b/app/assets/images/mailers/in_product_marketing/trial-0.png
deleted file mode 100644
index 3b0d7a8ecd8..00000000000
--- a/app/assets/images/mailers/in_product_marketing/trial-0.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/trial-1.png b/app/assets/images/mailers/in_product_marketing/trial-1.png
deleted file mode 100644
index 3a30b2acaee..00000000000
--- a/app/assets/images/mailers/in_product_marketing/trial-1.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/trial-2.png b/app/assets/images/mailers/in_product_marketing/trial-2.png
deleted file mode 100644
index 95bd965b49f..00000000000
--- a/app/assets/images/mailers/in_product_marketing/trial-2.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/verify-0.png b/app/assets/images/mailers/in_product_marketing/verify-0.png
deleted file mode 100644
index 04b6f172b37..00000000000
--- a/app/assets/images/mailers/in_product_marketing/verify-0.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/verify-1.png b/app/assets/images/mailers/in_product_marketing/verify-1.png
deleted file mode 100644
index 8997e8ba575..00000000000
--- a/app/assets/images/mailers/in_product_marketing/verify-1.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/mailers/in_product_marketing/verify-2.png b/app/assets/images/mailers/in_product_marketing/verify.png
index 93c99dee246..93c99dee246 100644
--- a/app/assets/images/mailers/in_product_marketing/verify-2.png
+++ b/app/assets/images/mailers/in_product_marketing/verify.png
Binary files differ
diff --git a/app/assets/javascripts/admin/abuse_report/components/user_details.vue b/app/assets/javascripts/admin/abuse_report/components/user_details.vue
index 0c32341652b..0e946fed8ac 100644
--- a/app/assets/javascripts/admin/abuse_report/components/user_details.vue
+++ b/app/assets/javascripts/admin/abuse_report/components/user_details.vue
@@ -26,12 +26,18 @@ export default {
.map(([k]) => this.$options.i18n.verificationMethods[k])
.join(', ');
},
- showSimilarRecords() {
+ showCreditCardSimilarRecords() {
return this.user.creditCard.similarRecordsCount > 1;
},
- similarRecordsCount() {
+ creditCardSimilarRecordsCount() {
return formatNumber(this.user.creditCard.similarRecordsCount);
},
+ showPhoneNumberSimilarRecords() {
+ return this.user.phoneNumber.similarRecordsCount > 1;
+ },
+ phoneNumberSimilarRecordsCount() {
+ return formatNumber(this.user.phoneNumber.similarRecordsCount);
+ },
},
i18n: USER_DETAILS_I18N,
};
@@ -60,11 +66,33 @@ export default {
data-testid="credit-card-verification"
:label="$options.i18n.creditCard"
>
- <gl-sprintf v-if="showSimilarRecords" :message="$options.i18n.similarRecords">
+ <gl-sprintf
+ v-if="showCreditCardSimilarRecords"
+ :message="$options.i18n.creditCardSimilarRecords"
+ >
<template #cardMatchesLink="{ content }">
<gl-link :href="user.creditCard.cardMatchesLink">
<gl-sprintf :message="content">
- <template #count>{{ similarRecordsCount }}</template>
+ <template #count>{{ creditCardSimilarRecordsCount }}</template>
+ </gl-sprintf>
+ </gl-link>
+ </template>
+ </gl-sprintf>
+ </user-detail>
+
+ <user-detail
+ v-if="user.phoneNumber"
+ data-testid="phone-number-verification"
+ :label="$options.i18n.phoneNumber"
+ >
+ <gl-sprintf
+ v-if="showPhoneNumberSimilarRecords"
+ :message="$options.i18n.phoneNumberSimilarRecords"
+ >
+ <template #phoneMatchesLink="{ content }">
+ <gl-link :href="user.phoneNumber.phoneMatchesLink">
+ <gl-sprintf :message="content">
+ <template #count>{{ phoneNumberSimilarRecordsCount }}</template>
</gl-sprintf>
</gl-link>
</template>
diff --git a/app/assets/javascripts/admin/abuse_report/constants.js b/app/assets/javascripts/admin/abuse_report/constants.js
index c56ea678b1d..69bcdebad61 100644
--- a/app/assets/javascripts/admin/abuse_report/constants.js
+++ b/app/assets/javascripts/admin/abuse_report/constants.js
@@ -61,6 +61,7 @@ export const USER_DETAILS_I18N = {
plan: s__('AbuseReport|Tier'),
verification: s__('AbuseReport|Verification'),
creditCard: s__('AbuseReport|Credit card'),
+ phoneNumber: s__('AbuseReport|Phone number'),
pastReports: s__('AbuseReport|Past abuse reports'),
normalLocation: s__('AbuseReport|Normal location'),
lastSignInIp: s__('AbuseReport|Last login'),
@@ -78,9 +79,12 @@ export const USER_DETAILS_I18N = {
reportedFor: s__(
'AbuseReport|%{reportLinkStart}Reported%{reportLinkEnd} for %{category} %{timeAgo}.',
),
- similarRecords: s__(
+ creditCardSimilarRecords: s__(
'AbuseReport|Card matches %{cardMatchesLinkStart}%{count} accounts%{cardMatchesLinkEnd}',
),
+ phoneNumberSimilarRecords: s__(
+ 'AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}',
+ ),
};
export const REPORTED_CONTENT_I18N = {
diff --git a/app/assets/javascripts/api/alert_management_alerts_api.js b/app/assets/javascripts/api/alert_management_alerts_api.js
index fa66ca5b3dd..6f595cb7cb0 100644
--- a/app/assets/javascripts/api/alert_management_alerts_api.js
+++ b/app/assets/javascripts/api/alert_management_alerts_api.js
@@ -1,6 +1,6 @@
import axios from '~/lib/utils/axios_utils';
import { buildApiUrl } from '~/api/api_utils';
-import { ContentTypeMultipartFormData } from '~/lib/utils/headers';
+import { contentTypeMultipartFormData } from '~/lib/utils/headers';
const ALERT_METRIC_IMAGES_PATH =
'/api/:version/projects/:id/alert_management_alerts/:alert_iid/metric_images';
@@ -16,7 +16,7 @@ export function fetchAlertMetricImages({ alertIid, id }) {
}
export function uploadAlertMetricImage({ alertIid, id, file, url = null, urlText = null }) {
- const options = { headers: { ...ContentTypeMultipartFormData } };
+ const options = { headers: { ...contentTypeMultipartFormData } };
const metricImagesUrl = buildApiUrl(ALERT_METRIC_IMAGES_PATH)
.replace(':id', encodeURIComponent(id))
.replace(':alert_iid', encodeURIComponent(alertIid));
diff --git a/app/assets/javascripts/badges/components/badge_list.vue b/app/assets/javascripts/badges/components/badge_list.vue
index a4f88067fa9..3f6435d66ce 100644
--- a/app/assets/javascripts/badges/components/badge_list.vue
+++ b/app/assets/javascripts/badges/components/badge_list.vue
@@ -3,6 +3,7 @@ import {
GlBadge,
GlLoadingIcon,
GlTable,
+ GlTooltipDirective,
GlPagination,
GlButton,
GlModalDirective,
@@ -27,6 +28,7 @@ export default {
},
directives: {
GlModal: GlModalDirective,
+ GlTooltip: GlTooltipDirective,
},
i18n: {
emptyGroupMessage: s__('Badges|This group has no badges. Add an existing badge or create one.'),
@@ -107,19 +109,26 @@ export default {
:current-page="currentPage"
stacked="md"
show-empty
+ class="b-table-fixed"
data-testid="badge-list"
>
<template #cell(name)="{ item }">
- <label class="label-bold str-truncated mb-0">{{ item.name }}</label>
+ <label v-gl-tooltip class="label-bold str-truncated mb-0" :title="item.name">{{
+ item.name
+ }}</label>
<gl-badge size="sm">{{ badgeKindText(item) }}</gl-badge>
</template>
<template #cell(badge)="{ item }">
- <badge :image-url="item.renderedImageUrl" :link-url="item.renderedLinkUrl" />
+ <div class="overflow-hidden">
+ <badge :image-url="item.renderedImageUrl" :link-url="item.renderedLinkUrl" />
+ </div>
</template>
<template #cell(url)="{ item }">
- {{ item.linkUrl }}
+ <span v-gl-tooltip :title="item.linkUrl" class="str-truncated">
+ {{ item.linkUrl }}
+ </span>
</template>
<template #cell(actions)="{ item }">
diff --git a/app/assets/javascripts/behaviors/secret_values.js b/app/assets/javascripts/behaviors/secret_values.js
deleted file mode 100644
index b6ed14611cd..00000000000
--- a/app/assets/javascripts/behaviors/secret_values.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import { parseBoolean } from '~/lib/utils/common_utils';
-import { n__ } from '~/locale';
-
-export default class SecretValues {
- constructor({
- container,
- valueSelector = '.js-secret-value',
- placeholderSelector = '.js-secret-value-placeholder',
- }) {
- this.container = container;
- this.valueSelector = valueSelector;
- this.placeholderSelector = placeholderSelector;
- }
-
- init() {
- this.revealButton = this.container.querySelector('.js-secret-value-reveal-button');
-
- if (this.revealButton) {
- const isRevealed = parseBoolean(this.revealButton.dataset.secretRevealStatus);
- this.updateDom(isRevealed);
-
- this.revealButton.addEventListener('click', this.onRevealButtonClicked.bind(this));
- }
- }
-
- onRevealButtonClicked() {
- const previousIsRevealed = parseBoolean(this.revealButton.dataset.secretRevealStatus);
- this.updateDom(!previousIsRevealed);
- }
-
- updateDom(isRevealed) {
- const values = this.container.querySelectorAll(this.valueSelector);
- values.forEach((value) => {
- value.classList.toggle('hide', !isRevealed);
- });
-
- const placeholders = this.container.querySelectorAll(this.placeholderSelector);
- placeholders.forEach((placeholder) => {
- placeholder.classList.toggle('hide', isRevealed);
- });
-
- this.revealButton.textContent = isRevealed
- ? n__('Hide value', 'Hide values', values.length)
- : n__('Reveal value', 'Reveal values', values.length);
- this.revealButton.dataset.secretRevealStatus = isRevealed;
- }
-}
diff --git a/app/assets/javascripts/behaviors/shortcuts/shortcuts_help.vue b/app/assets/javascripts/behaviors/shortcuts/shortcuts_help.vue
index e81ceae57c0..f8b2331befa 100644
--- a/app/assets/javascripts/behaviors/shortcuts/shortcuts_help.vue
+++ b/app/assets/javascripts/behaviors/shortcuts/shortcuts_help.vue
@@ -79,9 +79,7 @@ export default {
"
>
<template #link="{ content }">
- <gl-link :href="absoluteUserPreferencesPath">
- {{ content }}
- </gl-link>
+ <gl-link :href="absoluteUserPreferencesPath">{{ content }}</gl-link>
</template>
</gl-sprintf>
</span>
diff --git a/app/assets/javascripts/blob/openapi/index.js b/app/assets/javascripts/blob/openapi/index.js
index 9c22d960bf5..e2715d89b4e 100644
--- a/app/assets/javascripts/blob/openapi/index.js
+++ b/app/assets/javascripts/blob/openapi/index.js
@@ -1,5 +1,5 @@
+import SwaggerClient from 'swagger-client';
import { setAttributes } from '~/lib/utils/dom_utils';
-import axios from '~/lib/utils/axios_utils';
import {
getBaseURL,
relativePathToAbsolute,
@@ -42,11 +42,11 @@ export default async (el = document.getElementById('js-openapi-viewer')) => {
const wrapperEl = el;
const sandboxEl = createSandbox();
- const { data } = await axios.get(wrapperEl.dataset.endpoint);
+ const { spec } = await SwaggerClient.resolve({ url: wrapperEl.dataset.endpoint });
wrapperEl.appendChild(sandboxEl);
sandboxEl.addEventListener('load', () => {
- sandboxEl.contentWindow.postMessage(data, '*');
+ if (spec) sandboxEl.contentWindow.postMessage(JSON.stringify(spec), '*');
});
};
diff --git a/app/assets/javascripts/boards/components/board_app.vue b/app/assets/javascripts/boards/components/board_app.vue
index 2c8aa1cbe21..b1b3e7f7022 100644
--- a/app/assets/javascripts/boards/components/board_app.vue
+++ b/app/assets/javascripts/boards/components/board_app.vue
@@ -155,7 +155,7 @@ export default {
:is-swimlanes-on="isSwimlanesOn"
:filter-params="formattedFilterParams"
:board-lists="boardLists"
- :apollo-error="error"
+ :error="error"
:list-query-variables="listQueryVariables"
@setActiveList="setActiveId"
@setAddColumnFormVisibility="addColumnFormVisible = $event"
diff --git a/app/assets/javascripts/boards/components/board_card_move_to_position.vue b/app/assets/javascripts/boards/components/board_card_move_to_position.vue
index 9173503c888..398dcc494f7 100644
--- a/app/assets/javascripts/boards/components/board_card_move_to_position.vue
+++ b/app/assets/javascripts/boards/components/board_card_move_to_position.vue
@@ -1,6 +1,7 @@
<script>
-import { GlDisclosureDropdown } from '@gitlab/ui';
+import { GlDisclosureDropdown, GlTooltipDirective } from '@gitlab/ui';
import Tracking from '~/tracking';
+import { s__ } from '~/locale';
import {
BOARD_CARD_MOVE_TO_POSITIONS_OPTIONS,
BOARD_CARD_MOVE_TO_POSITIONS_START_OPTION,
@@ -12,6 +13,9 @@ export default {
components: {
GlDisclosureDropdown,
},
+ directives: {
+ GlTooltip: GlTooltipDirective,
+ },
mixins: [Tracking.mixin()],
props: {
item: {
@@ -87,6 +91,9 @@ export default {
}
},
},
+ i18n: {
+ moveCardText: s__('Boards|Card options'),
+ },
};
</script>
@@ -94,12 +101,16 @@ export default {
<gl-disclosure-dropdown
ref="dropdown"
:key="itemIdentifier"
+ v-gl-tooltip.hover.focus.top="{
+ title: $options.i18n.moveCardText,
+ boundary: 'viewport',
+ }"
class="move-to-position gl-display-block gl-mb-2 gl-ml-auto gl-mt-n3 gl-mr-n3 js-no-trigger"
category="tertiary"
:items="$options.BOARD_CARD_MOVE_TO_POSITIONS_OPTIONS"
icon="ellipsis_v"
:tabindex="index"
- :toggle-text="s__('Boards|Move card')"
+ :aria-label="$options.i18n.moveCardText"
:text-sr-only="true"
no-caret
data-testid="board-move-to-position"
diff --git a/app/assets/javascripts/boards/components/board_content.vue b/app/assets/javascripts/boards/components/board_content.vue
index 2b9c5d52d5e..dbdfe314ae0 100644
--- a/app/assets/javascripts/boards/components/board_content.vue
+++ b/app/assets/javascripts/boards/components/board_content.vue
@@ -46,7 +46,7 @@ export default {
required: false,
default: () => {},
},
- apolloError: {
+ error: {
type: String,
required: false,
default: null,
@@ -97,9 +97,6 @@ export default {
return this.canDragColumns ? options : {};
},
- errorToDisplay() {
- return this.apolloError || null;
- },
},
methods: {
afterFormEnters() {
@@ -195,8 +192,8 @@ export default {
data-testid="boards-list"
class="gl-flex-grow-1 gl-display-flex gl-flex-direction-column gl-min-h-0"
>
- <gl-alert v-if="errorToDisplay" variant="danger" :dismissible="true" @dismiss="dismissError">
- {{ errorToDisplay }}
+ <gl-alert v-if="error" variant="danger" :dismissible="true" @dismiss="dismissError">
+ {{ error }}
</gl-alert>
<component
:is="boardColumnWrapper"
diff --git a/app/assets/javascripts/boards/components/board_list.vue b/app/assets/javascripts/boards/components/board_list.vue
index 8a5c6882e56..58c20c0da91 100644
--- a/app/assets/javascripts/boards/components/board_list.vue
+++ b/app/assets/javascripts/boards/components/board_list.vue
@@ -3,6 +3,7 @@ import { GlLoadingIcon, GlIntersectionObserver } from '@gitlab/ui';
import Draggable from 'vuedraggable';
import { STATUS_CLOSED } from '~/issues/constants';
import { sprintf, __, s__ } from '~/locale';
+import { ESC_KEY_CODE } from '~/lib/utils/keycodes';
import { defaultSortableOptions, DRAG_DELAY } from '~/sortable/constants';
import { sortableStart, sortableEnd } from '~/sortable/utils';
import Tracking from '~/tracking';
@@ -82,6 +83,7 @@ export default {
toList: {},
addItemToListInProgress: false,
updateIssueOrderInProgress: false,
+ dragCancelled: false,
};
},
apollo: {
@@ -307,6 +309,11 @@ export default {
return;
}
+ // Reset dragCancelled flag
+ this.dragCancelled = false;
+ // Attach listener to detect `ESC` key press to cancel drag.
+ document.addEventListener('keyup', this.handleKeyUp.bind(this));
+
sortableStart();
this.track('drag_card', { label: 'board' });
},
@@ -323,6 +330,11 @@ export default {
return;
}
+ // Detach listener as soon as drag ends.
+ document.removeEventListener('keyup', this.handleKeyUp.bind(this));
+ // Drag was cancelled, prevent reordering.
+ if (this.dragCancelled) return;
+
sortableEnd();
let newIndex = originalNewIndex;
let { children } = to;
@@ -375,6 +387,20 @@ export default {
this.updateIssueOrderInProgress = false;
});
},
+ /**
+ * This implementation is needed to support `Esc` key press to cancel drag.
+ * It matches with what we already shipped in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119311
+ */
+ handleKeyUp(e) {
+ if (e.keyCode === ESC_KEY_CODE) {
+ this.dragCancelled = true;
+ // Sortable.js internally listens for `mouseup` event on document
+ // to register drop event, see https://github.com/SortableJS/Sortable/blob/master/src/Sortable.js#L625
+ // We need to manually trigger it to simulate cancel behaviour as VueDraggable doesn't
+ // natively support it, see https://github.com/SortableJS/Vue.Draggable/issues/968.
+ document.dispatchEvent(new Event('mouseup'));
+ }
+ },
isItemInTheList(itemIid) {
const items = this.toList?.[`${this.issuableType}s`]?.nodes || [];
return items.some((item) => item.iid === itemIid);
diff --git a/app/assets/javascripts/boards/components/config_toggle.vue b/app/assets/javascripts/boards/components/config_toggle.vue
index 69e6cc870d2..f4d4222e41a 100644
--- a/app/assets/javascripts/boards/components/config_toggle.vue
+++ b/app/assets/javascripts/boards/components/config_toggle.vue
@@ -1,7 +1,5 @@
<script>
import { GlButton, GlModalDirective, GlTooltipDirective } from '@gitlab/ui';
-// eslint-disable-next-line no-restricted-imports
-import { mapGetters } from 'vuex';
import { formType } from '~/boards/constants';
import eventHub from '~/boards/eventhub';
import { s__, __ } from '~/locale';
@@ -25,12 +23,11 @@ export default {
},
},
computed: {
- ...mapGetters(['hasScope']),
buttonText() {
return this.canAdminList ? s__('Boards|Edit board') : s__('Boards|View scope');
},
tooltipTitle() {
- return this.hasScope || this.boardHasScope ? __("This board's scope is reduced") : '';
+ return this.boardHasScope ? __("This board's scope is reduced") : '';
},
},
methods: {
@@ -48,7 +45,7 @@ export default {
v-gl-modal-directive="'board-config-modal'"
v-gl-tooltip
:title="tooltipTitle"
- :class="{ 'dot-highlight': hasScope || boardHasScope }"
+ :class="{ 'dot-highlight': boardHasScope }"
data-testid="boards-config-button"
@click.prevent="showPage"
>
diff --git a/app/assets/javascripts/boards/components/project_select.vue b/app/assets/javascripts/boards/components/project_select.vue
index 7bbc444701a..9c5dd633092 100644
--- a/app/assets/javascripts/boards/components/project_select.vue
+++ b/app/assets/javascripts/boards/components/project_select.vue
@@ -77,10 +77,12 @@ export default {
},
activeGroupProjects() {
return (
- this.projects?.nodes?.map((project) => ({
- value: project.id,
- text: project.nameWithNamespace,
- })) || []
+ this.projects?.nodes
+ ?.filter((p) => !p.archived)
+ .map((project) => ({
+ value: project.id,
+ text: project.nameWithNamespace,
+ })) || []
);
},
selectedProjectName() {
diff --git a/app/assets/javascripts/boards/constants.js b/app/assets/javascripts/boards/constants.js
index acf01a8c528..a3983f11c86 100644
--- a/app/assets/javascripts/boards/constants.js
+++ b/app/assets/javascripts/boards/constants.js
@@ -51,12 +51,6 @@ export const toggleFormEventPrefix = {
issue: 'toggle-issue-form-',
};
-export const active = 'active';
-
-export const inactiveId = 0;
-
-export const ISSUABLE = 'issuable';
-export const LIST = 'list';
export const INCIDENT = 'INCIDENT';
export const flashAnimationDuration = 2000;
diff --git a/app/assets/javascripts/boards/index.js b/app/assets/javascripts/boards/index.js
index 72b8aef31a4..0d8882cf57e 100644
--- a/app/assets/javascripts/boards/index.js
+++ b/app/assets/javascripts/boards/index.js
@@ -3,10 +3,9 @@ import Vue from 'vue';
import VueApollo from 'vue-apollo';
import BoardApp from '~/boards/components/board_app.vue';
import '~/boards/filters/due_date_filters';
-import store from '~/boards/stores';
import { TYPE_ISSUE, WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';
import {
- NavigationType,
+ navigationType,
isLoggedIn,
parseBoolean,
convertObjectPropsToCamelCase,
@@ -24,7 +23,6 @@ const apolloProvider = new VueApollo({
function mountBoardApp(el) {
const { boardId, groupId, fullPath, rootPath } = el.dataset;
- const isApolloBoard = true;
const rawFilterParams = queryToObject(window.location.search, { gatherArrays: true });
@@ -34,31 +32,12 @@ function mountBoardApp(el) {
const boardType = el.dataset.parent;
- if (!isApolloBoard) {
- store.dispatch('fetchBoard', {
- fullPath,
- fullBoardId: fullBoardId(boardId),
- boardType,
- });
-
- store.dispatch('setInitialBoardData', {
- boardId,
- fullBoardId: fullBoardId(boardId),
- fullPath,
- boardType,
- disabled: parseBoolean(el.dataset.disabled) || true,
- issuableType: TYPE_ISSUE,
- });
- }
-
// eslint-disable-next-line no-new
new Vue({
el,
name: 'BoardAppRoot',
- store,
apolloProvider,
provide: {
- isApolloBoard,
initialBoardId: fullBoardId(boardId),
disabled: parseBoolean(el.dataset.disabled),
groupId: Number(groupId),
@@ -114,7 +93,7 @@ export default () => {
// check for browser back and trigger a hard reload to circumvent browser caching.
window.addEventListener('pageshow', (event) => {
const isNavTypeBackForward =
- window.performance && window.performance.navigation.type === NavigationType.TYPE_BACK_FORWARD;
+ window.performance && window.performance.navigation.type === navigationType.TYPE_BACK_FORWARD;
if (event.persisted || isNavTypeBackForward) {
window.location.reload();
diff --git a/app/assets/javascripts/boards/stores/actions.js b/app/assets/javascripts/boards/stores/actions.js
deleted file mode 100644
index 97e40c8cc39..00000000000
--- a/app/assets/javascripts/boards/stores/actions.js
+++ /dev/null
@@ -1,925 +0,0 @@
-import { sortBy } from 'lodash';
-import * as Sentry from '~/sentry/sentry_browser_wrapper';
-import {
- ListType,
- inactiveId,
- flashAnimationDuration,
- ISSUABLE,
- titleQueries,
- subscriptionQueries,
- deleteListQueries,
- listsQuery,
- updateListQueries,
- FilterFields,
- ListTypeTitles,
- DraggableItemTypes,
- DEFAULT_BOARD_LIST_ITEMS_SIZE,
-} from 'ee_else_ce/boards/constants';
-import {
- formatIssueInput,
- formatBoardLists,
- formatListIssues,
- formatListsPageInfo,
- formatIssue,
- updateListPosition,
- moveItemListHelper,
- getMoveData,
- FiltersInfo,
- filterVariables,
-} from 'ee_else_ce/boards/boards_util';
-import createBoardListMutation from 'ee_else_ce/boards/graphql/board_list_create.mutation.graphql';
-import issueMoveListMutation from 'ee_else_ce/boards/graphql/issue_move_list.mutation.graphql';
-import totalCountAndWeightQuery from 'ee_else_ce/boards/graphql/board_lists_deferred.query.graphql';
-import { fetchPolicies } from '~/lib/graphql';
-import { getIdFromGraphQLId } from '~/graphql_shared/utils';
-import { defaultClient as gqlClient } from '~/graphql_shared/issuable_client';
-import { TYPE_ISSUE, WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';
-import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
-import { queryToObject } from '~/lib/utils/url_utility';
-import { s__ } from '~/locale';
-import eventHub from '../eventhub';
-import projectBoardQuery from '../graphql/project_board.query.graphql';
-import groupBoardQuery from '../graphql/group_board.query.graphql';
-import boardLabelsQuery from '../graphql/board_labels.query.graphql';
-import groupBoardMilestonesQuery from '../graphql/group_board_milestones.query.graphql';
-import groupProjectsQuery from '../graphql/group_projects.query.graphql';
-import issueCreateMutation from '../graphql/issue_create.mutation.graphql';
-import listsIssuesQuery from '../graphql/lists_issues.query.graphql';
-import projectBoardMilestonesQuery from '../graphql/project_board_milestones.query.graphql';
-
-import * as types from './mutation_types';
-
-export default {
- fetchBoard: ({ commit, dispatch }, { fullPath, fullBoardId, boardType }) => {
- commit(types.REQUEST_CURRENT_BOARD);
-
- const variables = {
- fullPath,
- boardId: fullBoardId,
- };
-
- return gqlClient
- .query({
- query: boardType === WORKSPACE_GROUP ? groupBoardQuery : projectBoardQuery,
- variables,
- })
- .then(({ data }) => {
- if (data.workspace?.errors) {
- commit(types.RECEIVE_BOARD_FAILURE);
- } else {
- const board = data.workspace?.board;
- dispatch('setBoard', board);
- }
- })
- .catch(() => commit(types.RECEIVE_BOARD_FAILURE));
- },
-
- setInitialBoardData: ({ commit }, data) => {
- commit(types.SET_INITIAL_BOARD_DATA, data);
- },
-
- setBoardConfig: ({ commit }, board) => {
- const config = {
- milestoneId: board.milestone?.id || null,
- milestoneTitle: board.milestone?.title || null,
- iterationId: board.iteration?.id || null,
- iterationTitle: board.iteration?.title || null,
- iterationCadenceId: board.iterationCadence?.id || null,
- assigneeId: board.assignee?.id || null,
- assigneeUsername: board.assignee?.username || null,
- labels: board.labels?.nodes || [],
- labelIds: board.labels?.nodes?.map((label) => label.id) || [],
- weight: board.weight,
- };
- commit(types.SET_BOARD_CONFIG, config);
- },
-
- setBoard: async ({ commit, dispatch }, board) => {
- commit(types.RECEIVE_BOARD_SUCCESS, board);
- await dispatch('setBoardConfig', board);
- dispatch('performSearch', { resetLists: true });
- eventHub.$emit('updateTokens');
- },
-
- setActiveId({ commit }, { id, sidebarType }) {
- commit(types.SET_ACTIVE_ID, { id, sidebarType });
- },
-
- unsetActiveId({ dispatch }) {
- dispatch('setActiveId', { id: inactiveId, sidebarType: '' });
- },
-
- setFilters: ({ commit, state: { issuableType } }, filters) => {
- commit(
- types.SET_FILTERS,
- filterVariables({
- filters,
- issuableType,
- filterInfo: FiltersInfo,
- filterFields: FilterFields,
- }),
- );
- },
-
- performSearch({ dispatch }, { resetLists = false } = {}) {
- dispatch(
- 'setFilters',
- convertObjectPropsToCamelCase(queryToObject(window.location.search, { gatherArrays: true })),
- );
- dispatch('fetchLists', { resetLists });
- dispatch('resetIssues');
- },
-
- fetchLists: ({ commit, state, dispatch }, { resetLists = false } = {}) => {
- const { boardType, filterParams, fullPath, fullBoardId, issuableType } = state;
-
- const variables = {
- fullPath,
- boardId: fullBoardId,
- filters: filterParams,
- ...(issuableType === TYPE_ISSUE && {
- isGroup: boardType === WORKSPACE_GROUP,
- isProject: boardType === WORKSPACE_PROJECT,
- }),
- };
-
- return gqlClient
- .query({
- query: listsQuery[issuableType].query,
- variables,
- ...(resetLists ? { fetchPolicy: fetchPolicies.NO_CACHE } : {}),
- })
- .then(({ data }) => {
- const { lists, hideBacklogList } = data[boardType].board;
- commit(types.RECEIVE_BOARD_LISTS_SUCCESS, formatBoardLists(lists));
- // Backlog list needs to be created if it doesn't exist and it's not hidden
- if (!lists.nodes.find((l) => l.listType === ListType.backlog) && !hideBacklogList) {
- dispatch('createList', { backlog: true });
- }
- })
- .catch(() => commit(types.RECEIVE_BOARD_LISTS_FAILURE));
- },
-
- highlightList: ({ commit, state }, listId) => {
- if ([ListType.backlog, ListType.closed].includes(state.boardLists[listId].listType)) {
- return;
- }
-
- commit(types.ADD_LIST_TO_HIGHLIGHTED_LISTS, listId);
-
- setTimeout(() => {
- commit(types.REMOVE_LIST_FROM_HIGHLIGHTED_LISTS, listId);
- }, flashAnimationDuration);
- },
-
- createList: ({ dispatch }, { backlog, labelId, milestoneId, assigneeId }) => {
- dispatch('createIssueList', { backlog, labelId, milestoneId, assigneeId });
- },
-
- createIssueList: (
- { state, commit, dispatch, getters },
- { backlog, labelId, milestoneId, assigneeId, iterationId },
- ) => {
- const { fullBoardId } = state;
-
- const existingList = getters.getListByLabelId(labelId);
-
- if (existingList) {
- dispatch('highlightList', existingList.id);
- return;
- }
-
- gqlClient
- .mutate({
- mutation: createBoardListMutation,
- variables: {
- boardId: fullBoardId,
- backlog,
- labelId,
- milestoneId,
- assigneeId,
- iterationId,
- },
- })
- .then(({ data }) => {
- if (data.boardListCreate?.errors.length) {
- commit(types.CREATE_LIST_FAILURE, data.boardListCreate.errors[0]);
- } else {
- const list = data.boardListCreate?.list;
- dispatch('addList', list);
- dispatch('highlightList', list.id);
- }
- })
- .catch((e) => {
- commit(types.CREATE_LIST_FAILURE);
- throw e;
- });
- },
-
- addList: ({ commit, dispatch, getters }, list) => {
- commit(types.RECEIVE_ADD_LIST_SUCCESS, updateListPosition(list));
-
- dispatch('fetchItemsForList', {
- listId: getters.getListByTitle(ListTypeTitles.backlog)?.id,
- });
- },
-
- fetchLabels: ({ state, commit }, searchTerm) => {
- const { fullPath, boardType } = state;
-
- const variables = {
- fullPath,
- searchTerm,
- isGroup: boardType === WORKSPACE_GROUP,
- isProject: boardType === WORKSPACE_PROJECT,
- };
-
- commit(types.RECEIVE_LABELS_REQUEST);
-
- return gqlClient
- .query({
- query: boardLabelsQuery,
- variables,
- })
- .then(({ data }) => {
- const labels = data[boardType]?.labels.nodes;
-
- commit(types.RECEIVE_LABELS_SUCCESS, labels);
- return labels;
- })
- .catch((e) => {
- commit(types.RECEIVE_LABELS_FAILURE);
- throw e;
- });
- },
-
- fetchMilestones({ state, commit }, searchTerm) {
- commit(types.RECEIVE_MILESTONES_REQUEST);
-
- const { fullPath, boardType } = state;
-
- const variables = {
- fullPath,
- searchTerm,
- };
-
- let query;
- if (boardType === WORKSPACE_PROJECT) {
- query = projectBoardMilestonesQuery;
- }
- if (boardType === WORKSPACE_GROUP) {
- query = groupBoardMilestonesQuery;
- }
-
- if (!query) {
- // eslint-disable-next-line @gitlab/require-i18n-strings
- throw new Error('Unknown board type');
- }
-
- return gqlClient
- .query({
- query,
- variables,
- })
- .then(({ data }) => {
- const errors = data.workspace?.errors;
- const milestones = data.workspace?.milestones.nodes;
-
- if (errors?.[0]) {
- throw new Error(errors[0]);
- }
-
- commit(types.RECEIVE_MILESTONES_SUCCESS, milestones);
-
- return milestones;
- })
- .catch((e) => {
- commit(types.RECEIVE_MILESTONES_FAILURE);
- throw e;
- });
- },
-
- moveList: (
- { state: { boardLists }, commit, dispatch },
- {
- item: {
- dataset: { listId: movedListId, draggableItemType },
- },
- newIndex,
- to: { children },
- },
- ) => {
- if (draggableItemType !== DraggableItemTypes.list) {
- return;
- }
-
- const displacedListId = children[newIndex].dataset.listId;
- if (movedListId === displacedListId) {
- return;
- }
-
- const listIds = sortBy(
- Object.keys(boardLists).filter(
- (listId) =>
- listId !== movedListId &&
- boardLists[listId].listType !== ListType.backlog &&
- boardLists[listId].listType !== ListType.closed,
- ),
- (i) => boardLists[i].position,
- );
-
- const targetPosition = boardLists[displacedListId].position;
- // When the dragged list moves left, displaced list should shift right.
- const shiftOffset = Number(boardLists[movedListId].position < targetPosition);
- const displacedListIndex = listIds.findIndex((listId) => listId === displacedListId);
-
- commit(
- types.MOVE_LISTS,
- listIds
- .slice(0, displacedListIndex + shiftOffset)
- .concat([movedListId], listIds.slice(displacedListIndex + shiftOffset))
- .map((listId, index) => ({ listId, position: index })),
- );
- dispatch('updateList', { listId: movedListId, position: targetPosition });
- },
-
- updateList: (
- { state: { issuableType, boardItemsByListId = {} }, dispatch },
- { listId, position, collapsed },
- ) => {
- gqlClient
- .mutate({
- mutation: updateListQueries[issuableType].mutation,
- variables: {
- listId,
- position,
- collapsed,
- },
- })
- .then(({ data }) => {
- if (data?.updateBoardList?.errors.length) {
- throw new Error();
- }
-
- // Only fetch when board items havent been fetched on a collapsed list
- if (!boardItemsByListId[listId]) {
- dispatch('fetchItemsForList', { listId });
- }
- })
- .catch(() => {
- dispatch('handleUpdateListFailure');
- });
- },
-
- handleUpdateListFailure: ({ dispatch, commit }) => {
- dispatch('fetchLists');
-
- commit(
- types.SET_ERROR,
- s__('Boards|An error occurred while updating the board list. Please try again.'),
- );
- },
-
- toggleListCollapsed: ({ commit }, { listId, collapsed }) => {
- commit(types.TOGGLE_LIST_COLLAPSED, { listId, collapsed });
- },
-
- removeList: ({ state: { issuableType, boardLists }, commit, dispatch, getters }, listId) => {
- const listsBackup = { ...boardLists };
-
- commit(types.REMOVE_LIST, listId);
-
- return gqlClient
- .mutate({
- mutation: deleteListQueries[issuableType].mutation,
- variables: {
- listId,
- },
- })
- .then(
- ({
- data: {
- destroyBoardList: { errors },
- },
- }) => {
- if (errors.length > 0) {
- commit(types.REMOVE_LIST_FAILURE, listsBackup);
- } else {
- dispatch('fetchItemsForList', {
- listId: getters.getListByTitle(ListTypeTitles.backlog)?.id,
- });
- }
- },
- )
- .catch(() => {
- commit(types.REMOVE_LIST_FAILURE, listsBackup);
- });
- },
-
- fetchItemsForList: ({ state, commit }, { listId, fetchNext = false }) => {
- if (!listId) return null;
-
- commit(types.REQUEST_ITEMS_FOR_LIST, { listId, fetchNext });
-
- const { fullPath, fullBoardId, boardType, filterParams } = state;
- const variables = {
- fullPath,
- boardId: fullBoardId,
- id: listId,
- filters: filterParams,
- isGroup: boardType === WORKSPACE_GROUP,
- isProject: boardType === WORKSPACE_PROJECT,
- first: DEFAULT_BOARD_LIST_ITEMS_SIZE,
- after: fetchNext ? state.pageInfoByListId[listId].endCursor : undefined,
- };
-
- return gqlClient
- .query({
- query: listsIssuesQuery,
- variables,
- ...(!fetchNext ? { fetchPolicy: fetchPolicies.NO_CACHE } : {}),
- })
- .then(({ data }) => {
- const { lists } = data[boardType].board;
- const listItems = formatListIssues(lists);
- const listPageInfo = formatListsPageInfo(lists);
- commit(types.RECEIVE_ITEMS_FOR_LIST_SUCCESS, { listItems, listPageInfo, listId });
- })
- .catch(() => commit(types.RECEIVE_ITEMS_FOR_LIST_FAILURE, listId));
- },
-
- resetIssues: ({ commit }) => {
- commit(types.RESET_ISSUES);
- },
-
- moveItem: ({ dispatch }, payload) => {
- dispatch('moveIssue', payload);
- },
-
- moveIssue: ({ dispatch, state }, params) => {
- const moveData = getMoveData(state, params);
-
- dispatch('moveIssueCard', moveData);
- dispatch('updateMovedIssue', moveData);
- dispatch('updateIssueOrder', { moveData });
- },
-
- moveIssueCard: ({ commit }, moveData) => {
- const {
- reordering,
- shouldClone,
- itemNotInToList,
- originalIndex,
- itemId,
- fromListId,
- toListId,
- moveBeforeId,
- moveAfterId,
- positionInList,
- allItemsLoadedInList,
- } = moveData;
-
- commit(types.REMOVE_BOARD_ITEM_FROM_LIST, { itemId, listId: fromListId });
-
- if (reordering && !allItemsLoadedInList && positionInList === -1) {
- return;
- }
-
- if (reordering) {
- commit(types.ADD_BOARD_ITEM_TO_LIST, {
- itemId,
- listId: toListId,
- moveBeforeId,
- moveAfterId,
- positionInList,
- atIndex: originalIndex,
- allItemsLoadedInList,
- });
-
- return;
- }
-
- if (itemNotInToList) {
- commit(types.ADD_BOARD_ITEM_TO_LIST, {
- itemId,
- listId: toListId,
- moveBeforeId,
- moveAfterId,
- positionInList,
- });
- }
-
- if (shouldClone) {
- commit(types.ADD_BOARD_ITEM_TO_LIST, { itemId, listId: fromListId, atIndex: originalIndex });
- }
- },
-
- updateMovedIssue: (
- { commit, state: { boardItems, boardLists } },
- { itemId, fromListId, toListId },
- ) => {
- const updatedIssue = moveItemListHelper(
- boardItems[itemId],
- boardLists[fromListId],
- boardLists[toListId],
- );
-
- commit(types.UPDATE_BOARD_ITEM, updatedIssue);
- },
-
- undoMoveIssueCard: ({ commit }, moveData) => {
- const {
- reordering,
- shouldClone,
- itemNotInToList,
- itemId,
- fromListId,
- toListId,
- originalIssue,
- originalIndex,
- } = moveData;
-
- commit(types.UPDATE_BOARD_ITEM, originalIssue);
-
- if (reordering) {
- commit(types.REMOVE_BOARD_ITEM_FROM_LIST, { itemId, listId: fromListId });
- commit(types.ADD_BOARD_ITEM_TO_LIST, { itemId, listId: fromListId, atIndex: originalIndex });
- return;
- }
-
- if (shouldClone) {
- commit(types.REMOVE_BOARD_ITEM_FROM_LIST, { itemId, listId: fromListId });
- }
- if (itemNotInToList) {
- commit(types.REMOVE_BOARD_ITEM_FROM_LIST, { itemId, listId: toListId });
- }
-
- commit(types.ADD_BOARD_ITEM_TO_LIST, { itemId, listId: fromListId, atIndex: originalIndex });
- },
-
- updateIssueOrder: async ({ commit, dispatch, state }, { moveData, mutationVariables = {} }) => {
- try {
- const {
- itemId,
- fromListId,
- toListId,
- moveBeforeId,
- moveAfterId,
- itemNotInToList,
- positionInList,
- } = moveData;
- const {
- fullBoardId,
- filterParams,
- boardItems: {
- [itemId]: { iid, referencePath },
- },
- } = state;
-
- commit(types.MUTATE_ISSUE_IN_PROGRESS, true);
-
- const { data } = await gqlClient.mutate({
- mutation: issueMoveListMutation,
- variables: {
- iid,
- projectPath: referencePath.split(/[#]/)[0],
- boardId: fullBoardId,
- fromListId: getIdFromGraphQLId(fromListId),
- toListId: getIdFromGraphQLId(toListId),
- moveBeforeId: moveBeforeId ? getIdFromGraphQLId(moveBeforeId) : undefined,
- moveAfterId: moveAfterId ? getIdFromGraphQLId(moveAfterId) : undefined,
- positionInList,
- // 'mutationVariables' allows EE code to pass in extra parameters.
- ...mutationVariables,
- },
- update(
- cache,
- {
- data: {
- issuableMoveList: {
- issuable: { weight },
- },
- },
- },
- ) {
- if (fromListId === toListId) return;
-
- const updateFromList = () => {
- const fromList = cache.readQuery({
- query: totalCountAndWeightQuery,
- variables: { id: fromListId, filters: filterParams },
- });
-
- const updatedFromList = {
- boardList: {
- __typename: 'BoardList',
- id: fromList.boardList.id,
- issuesCount: fromList.boardList.issuesCount - 1,
- totalIssueWeight: fromList.boardList.totalIssueWeight - Number(weight),
- },
- };
-
- cache.writeQuery({
- query: totalCountAndWeightQuery,
- variables: { id: fromListId, filters: filterParams },
- data: updatedFromList,
- });
- };
-
- const updateToList = () => {
- if (!itemNotInToList) return;
-
- const toList = cache.readQuery({
- query: totalCountAndWeightQuery,
- variables: { id: toListId, filters: filterParams },
- });
-
- const updatedToList = {
- boardList: {
- __typename: 'BoardList',
- id: toList.boardList.id,
- issuesCount: toList.boardList.issuesCount + 1,
- totalIssueWeight: toList.boardList.totalIssueWeight + Number(weight),
- },
- };
-
- cache.writeQuery({
- query: totalCountAndWeightQuery,
- variables: { id: toListId, filters: filterParams },
- data: updatedToList,
- });
- };
-
- updateFromList();
- updateToList();
- },
- });
-
- if (data?.issuableMoveList?.errors.length || !data.issuableMoveList) {
- throw new Error('issueMoveList empty');
- }
-
- commit(types.MUTATE_ISSUE_SUCCESS, { issue: data.issuableMoveList.issuable });
- commit(types.MUTATE_ISSUE_IN_PROGRESS, false);
- } catch {
- commit(types.MUTATE_ISSUE_IN_PROGRESS, false);
- commit(
- types.SET_ERROR,
- s__('Boards|An error occurred while moving the issue. Please try again.'),
- );
- dispatch('undoMoveIssueCard', moveData);
- }
- },
-
- setAssignees: ({ commit }, { id, assignees }) => {
- commit('UPDATE_BOARD_ITEM_BY_ID', {
- itemId: id,
- prop: 'assignees',
- value: assignees,
- });
- },
-
- addListItem: ({ commit, dispatch }, { list, item, position, inProgress = false }) => {
- commit(types.ADD_BOARD_ITEM_TO_LIST, {
- listId: list.id,
- itemId: item.id,
- atIndex: position,
- inProgress,
- });
- commit(types.UPDATE_BOARD_ITEM, item);
- if (!inProgress) {
- dispatch('setActiveId', { id: item.id, sidebarType: ISSUABLE });
- }
- },
-
- removeListItem: ({ commit }, { listId, itemId }) => {
- commit(types.REMOVE_BOARD_ITEM_FROM_LIST, { listId, itemId });
- commit(types.REMOVE_BOARD_ITEM, itemId);
- },
-
- addListNewIssue: (
- { state: { boardConfig, boardType, fullPath, filterParams }, dispatch, commit },
- { issueInput, list, placeholderId = `tmp-${new Date().getTime()}` },
- ) => {
- const input = formatIssueInput(issueInput, boardConfig);
-
- if (boardType === WORKSPACE_PROJECT) {
- input.projectPath = fullPath;
- }
-
- const placeholderIssue = formatIssue({ ...issueInput, id: placeholderId, isLoading: true });
- dispatch('addListItem', { list, item: placeholderIssue, position: 0, inProgress: true });
-
- gqlClient
- .mutate({
- mutation: issueCreateMutation,
- variables: { input },
- update(cache) {
- const fromList = cache.readQuery({
- query: totalCountAndWeightQuery,
- variables: { id: list.id, filters: filterParams },
- });
-
- const updatedList = {
- boardList: {
- __typename: 'BoardList',
- id: fromList.boardList.id,
- issuesCount: fromList.boardList.issuesCount + 1,
- totalIssueWeight: fromList.boardList.totalIssueWeight,
- },
- };
-
- cache.writeQuery({
- query: totalCountAndWeightQuery,
- variables: { id: list.id, filters: filterParams },
- data: updatedList,
- });
- },
- })
- .then(({ data }) => {
- if (data.createIssuable.errors.length) {
- throw new Error();
- }
-
- const rawIssue = data.createIssuable?.issuable;
- const formattedIssue = formatIssue(rawIssue);
- dispatch('removeListItem', { listId: list.id, itemId: placeholderId });
- dispatch('addListItem', { list, item: formattedIssue, position: 0 });
- })
- .catch(() => {
- dispatch('removeListItem', { listId: list.id, itemId: placeholderId });
- commit(
- types.SET_ERROR,
- s__('Boards|An error occurred while creating the issue. Please try again.'),
- );
- });
- },
-
- setActiveBoardItemLabels: ({ dispatch }, params) => {
- dispatch('setActiveIssueLabels', params);
- },
-
- setActiveIssueLabels: async ({ commit, getters }, input) => {
- const { activeBoardItem } = getters;
-
- let labels = input?.labels || [];
- if (input.removeLabelIds) {
- labels = activeBoardItem.labels.filter(
- (label) => input.removeLabelIds[0] !== getIdFromGraphQLId(label.id),
- );
- }
- commit(types.UPDATE_BOARD_ITEM_BY_ID, {
- itemId: input.id || activeBoardItem.id,
- prop: 'labels',
- value: labels,
- });
- },
-
- setActiveItemSubscribed: async ({ commit, getters, state }, input) => {
- const { activeBoardItem, isEpicBoard } = getters;
- const { fullPath, issuableType } = state;
- const workspacePath = isEpicBoard
- ? { groupPath: fullPath }
- : { projectPath: input.projectPath };
- const { data } = await gqlClient.mutate({
- mutation: subscriptionQueries[issuableType].mutation,
- variables: {
- input: {
- ...workspacePath,
- iid: String(activeBoardItem.iid),
- subscribedState: input.subscribed,
- },
- },
- });
-
- if (data.updateIssuableSubscription?.errors?.length > 0) {
- throw new Error(data.updateIssuableSubscription[issuableType].errors);
- }
-
- commit(types.UPDATE_BOARD_ITEM_BY_ID, {
- itemId: activeBoardItem.id,
- prop: 'subscribed',
- value: data.updateIssuableSubscription[issuableType].subscribed,
- });
- },
-
- setActiveItemTitle: async ({ commit, getters, state }, input) => {
- const { activeBoardItem, isEpicBoard } = getters;
- const { fullPath, issuableType } = state;
- const workspacePath = isEpicBoard
- ? { groupPath: fullPath }
- : { projectPath: input.projectPath };
- const { data } = await gqlClient.mutate({
- mutation: titleQueries[issuableType].mutation,
- variables: {
- input: {
- ...workspacePath,
- iid: String(activeBoardItem.iid),
- title: input.title,
- },
- },
- });
-
- if (data.updateIssuableTitle?.errors?.length > 0) {
- throw new Error(data.updateIssuableTitle.errors);
- }
-
- commit(types.UPDATE_BOARD_ITEM_BY_ID, {
- itemId: activeBoardItem.id,
- prop: 'title',
- value: data.updateIssuableTitle[issuableType].title,
- });
- },
-
- setActiveItemConfidential: ({ commit, getters }, confidential) => {
- const { activeBoardItem } = getters;
- commit(types.UPDATE_BOARD_ITEM_BY_ID, {
- itemId: activeBoardItem.id,
- prop: 'confidential',
- value: confidential,
- });
- },
-
- fetchGroupProjects: ({ commit, state }, { search = '', fetchNext = false }) => {
- commit(types.REQUEST_GROUP_PROJECTS, fetchNext);
-
- const { fullPath } = state;
-
- const variables = {
- fullPath,
- search: search !== '' ? search : undefined,
- after: fetchNext ? state.groupProjectsFlags.pageInfo.endCursor : undefined,
- };
-
- return gqlClient
- .query({
- query: groupProjectsQuery,
- variables,
- })
- .then(({ data }) => {
- const { projects } = data.group;
- commit(types.RECEIVE_GROUP_PROJECTS_SUCCESS, {
- projects: projects.nodes,
- pageInfo: projects.pageInfo,
- fetchNext,
- });
- })
- .catch(() => commit(types.RECEIVE_GROUP_PROJECTS_FAILURE));
- },
-
- setSelectedProject: ({ commit }, project) => {
- commit(types.SET_SELECTED_PROJECT, project);
- },
-
- toggleBoardItemMultiSelection: ({ commit, state, dispatch, getters }, boardItem) => {
- const { selectedBoardItems } = state;
- const index = selectedBoardItems.indexOf(boardItem);
-
- // If user already selected an item (activeBoardItem) without using mult-select,
- // include that item in the selection and unset state.ActiveId to hide the sidebar.
- if (getters.activeBoardItem) {
- commit(types.ADD_BOARD_ITEM_TO_SELECTION, getters.activeBoardItem);
- dispatch('unsetActiveId');
- }
-
- if (index === -1) {
- commit(types.ADD_BOARD_ITEM_TO_SELECTION, boardItem);
- } else {
- commit(types.REMOVE_BOARD_ITEM_FROM_SELECTION, boardItem);
- }
- },
-
- setAddColumnFormVisibility: ({ commit }, visible) => {
- commit(types.SET_ADD_COLUMN_FORM_VISIBLE, visible);
- },
-
- resetBoardItemMultiSelection: ({ commit }) => {
- commit(types.RESET_BOARD_ITEM_SELECTION);
- },
-
- toggleBoardItem: ({ state, dispatch }, { boardItem, sidebarType = ISSUABLE }) => {
- dispatch('resetBoardItemMultiSelection');
-
- if (boardItem.id === state.activeId) {
- dispatch('unsetActiveId');
- } else {
- dispatch('setActiveId', { id: boardItem.id, sidebarType });
- }
- },
-
- setError: ({ commit }, { message, error, captureError = true }) => {
- commit(types.SET_ERROR, message);
-
- if (captureError) {
- Sentry.captureException(error);
- }
- },
-
- unsetError: ({ commit }) => {
- commit(types.SET_ERROR, undefined);
- },
-
- // EE action needs CE empty equivalent
- setActiveItemWeight: () => {},
- setActiveItemHealthStatus: () => {},
-};
diff --git a/app/assets/javascripts/boards/stores/getters.js b/app/assets/javascripts/boards/stores/getters.js
deleted file mode 100644
index 0ad71165996..00000000000
--- a/app/assets/javascripts/boards/stores/getters.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import { find } from 'lodash';
-import { TYPE_ISSUE } from '~/issues/constants';
-import { inactiveId } from '../constants';
-
-export default {
- isSidebarOpen: (state) => state.activeId !== inactiveId,
- isSwimlanesOn: () => false,
- getBoardItemById: (state) => (id) => {
- return state.boardItems[id] || {};
- },
-
- getBoardItemsByList: (state, getters) => (listId) => {
- const listItemsIds = state.boardItemsByListId[listId] || [];
- return listItemsIds.map((id) => getters.getBoardItemById(id));
- },
-
- activeBoardItem: (state) => {
- return state.boardItems[state.activeId] || { iid: '', id: '' };
- },
-
- groupPathForActiveIssue: (_, getters) => {
- const { referencePath = '' } = getters.activeBoardItem;
- return referencePath.slice(0, referencePath.lastIndexOf('/'));
- },
-
- projectPathForActiveIssue: (_, getters) => {
- const { referencePath = '' } = getters.activeBoardItem;
- return referencePath.slice(0, referencePath.indexOf('#'));
- },
-
- activeGroupProjects: (state) => {
- return state.groupProjects.filter((p) => !p.archived);
- },
-
- getListByLabelId: (state) => (labelId) => {
- if (!labelId) {
- return null;
- }
- return find(state.boardLists, (l) => l.label?.id === labelId);
- },
-
- getListByTitle: (state) => (title) => {
- return find(state.boardLists, (l) => l.title === title);
- },
-
- isIssueBoard: (state) => {
- return state.issuableType === TYPE_ISSUE;
- },
-
- isEpicBoard: () => {
- return false;
- },
-
- hasScope: (state) => {
- const { boardConfig } = state;
- if (boardConfig.labels?.length > 0) {
- return true;
- }
- let hasScope = false;
- ['assigneeId', 'iterationCadenceId', 'iterationId', 'milestoneId', 'weight'].forEach((attr) => {
- if (boardConfig[attr] !== null && boardConfig[attr] !== undefined) {
- hasScope = true;
- }
- });
- return hasScope;
- },
-};
diff --git a/app/assets/javascripts/boards/stores/index.js b/app/assets/javascripts/boards/stores/index.js
deleted file mode 100644
index fd562df1df7..00000000000
--- a/app/assets/javascripts/boards/stores/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import Vue from 'vue';
-// eslint-disable-next-line no-restricted-imports
-import Vuex from 'vuex';
-import actions from 'ee_else_ce/boards/stores/actions';
-import getters from 'ee_else_ce/boards/stores/getters';
-import mutations from 'ee_else_ce/boards/stores/mutations';
-import state from 'ee_else_ce/boards/stores/state';
-
-Vue.use(Vuex);
-
-export const storeOptions = {
- state,
- getters,
- actions,
- mutations,
-};
-
-export const createStore = (options = storeOptions) => new Vuex.Store(options);
-
-export default createStore();
diff --git a/app/assets/javascripts/boards/stores/mutation_types.js b/app/assets/javascripts/boards/stores/mutation_types.js
deleted file mode 100644
index 0e496677b7b..00000000000
--- a/app/assets/javascripts/boards/stores/mutation_types.js
+++ /dev/null
@@ -1,47 +0,0 @@
-export const REQUEST_CURRENT_BOARD = 'REQUEST_CURRENT_BOARD';
-export const RECEIVE_BOARD_SUCCESS = 'RECEIVE_BOARD_SUCCESS';
-export const RECEIVE_BOARD_FAILURE = 'RECEIVE_BOARD_FAILURE';
-export const SET_INITIAL_BOARD_DATA = 'SET_INITIAL_BOARD_DATA';
-export const SET_BOARD_CONFIG = 'SET_BOARD_CONFIG';
-export const SET_FILTERS = 'SET_FILTERS';
-export const CREATE_LIST_SUCCESS = 'CREATE_LIST_SUCCESS';
-export const CREATE_LIST_FAILURE = 'CREATE_LIST_FAILURE';
-export const RECEIVE_LABELS_REQUEST = 'RECEIVE_LABELS_REQUEST';
-export const RECEIVE_LABELS_SUCCESS = 'RECEIVE_LABELS_SUCCESS';
-export const RECEIVE_LABELS_FAILURE = 'RECEIVE_LABELS_FAILURE';
-export const GENERATE_DEFAULT_LISTS_FAILURE = 'GENERATE_DEFAULT_LISTS_FAILURE';
-export const RECEIVE_BOARD_LISTS_SUCCESS = 'RECEIVE_BOARD_LISTS_SUCCESS';
-export const RECEIVE_BOARD_LISTS_FAILURE = 'RECEIVE_BOARD_LISTS_FAILURE';
-export const SHOW_PROMOTION_LIST = 'SHOW_PROMOTION_LIST';
-export const RECEIVE_ADD_LIST_SUCCESS = 'RECEIVE_ADD_LIST_SUCCESS';
-export const MOVE_LISTS = 'MOVE_LISTS';
-export const TOGGLE_LIST_COLLAPSED = 'TOGGLE_LIST_COLLAPSED';
-export const REMOVE_LIST = 'REMOVE_LIST';
-export const REMOVE_LIST_FAILURE = 'REMOVE_LIST_FAILURE';
-export const REQUEST_ITEMS_FOR_LIST = 'REQUEST_ITEMS_FOR_LIST';
-export const RECEIVE_ITEMS_FOR_LIST_FAILURE = 'RECEIVE_ITEMS_FOR_LIST_FAILURE';
-export const RECEIVE_ITEMS_FOR_LIST_SUCCESS = 'RECEIVE_ITEMS_FOR_LIST_SUCCESS';
-export const RECEIVE_MILESTONES_REQUEST = 'RECEIVE_MILESTONES_REQUEST';
-export const RECEIVE_MILESTONES_SUCCESS = 'RECEIVE_MILESTONES_SUCCESS';
-export const RECEIVE_MILESTONES_FAILURE = 'RECEIVE_MILESTONES_FAILURE';
-export const UPDATE_BOARD_ITEM = 'UPDATE_BOARD_ITEM';
-export const REMOVE_BOARD_ITEM = 'REMOVE_BOARD_ITEM';
-export const MUTATE_ISSUE_SUCCESS = 'MUTATE_ISSUE_SUCCESS';
-export const ADD_BOARD_ITEM_TO_LIST = 'ADD_BOARD_ITEM_TO_LIST';
-export const REMOVE_BOARD_ITEM_FROM_LIST = 'REMOVE_BOARD_ITEM_FROM_LIST';
-export const SET_ACTIVE_ID = 'SET_ACTIVE_ID';
-export const UPDATE_BOARD_ITEM_BY_ID = 'UPDATE_BOARD_ITEM_BY_ID';
-export const SET_ASSIGNEE_LOADING = 'SET_ASSIGNEE_LOADING';
-export const RESET_ISSUES = 'RESET_ISSUES';
-export const REQUEST_GROUP_PROJECTS = 'REQUEST_GROUP_PROJECTS';
-export const RECEIVE_GROUP_PROJECTS_SUCCESS = 'RECEIVE_GROUP_PROJECTS_SUCCESS';
-export const RECEIVE_GROUP_PROJECTS_FAILURE = 'RECEIVE_GROUP_PROJECTS_FAILURE';
-export const SET_SELECTED_PROJECT = 'SET_SELECTED_PROJECT';
-export const ADD_BOARD_ITEM_TO_SELECTION = 'ADD_BOARD_ITEM_TO_SELECTION';
-export const REMOVE_BOARD_ITEM_FROM_SELECTION = 'REMOVE_BOARD_ITEM_FROM_SELECTION';
-export const SET_ADD_COLUMN_FORM_VISIBLE = 'SET_ADD_COLUMN_FORM_VISIBLE';
-export const ADD_LIST_TO_HIGHLIGHTED_LISTS = 'ADD_LIST_TO_HIGHLIGHTED_LISTS';
-export const REMOVE_LIST_FROM_HIGHLIGHTED_LISTS = 'REMOVE_LIST_FROM_HIGHLIGHTED_LISTS';
-export const RESET_BOARD_ITEM_SELECTION = 'RESET_BOARD_ITEM_SELECTION';
-export const SET_ERROR = 'SET_ERROR';
-export const MUTATE_ISSUE_IN_PROGRESS = 'MUTATE_ISSUE_IN_PROGRESS';
diff --git a/app/assets/javascripts/boards/stores/mutations.js b/app/assets/javascripts/boards/stores/mutations.js
deleted file mode 100644
index 505c011b034..00000000000
--- a/app/assets/javascripts/boards/stores/mutations.js
+++ /dev/null
@@ -1,319 +0,0 @@
-import { cloneDeep, pull, union } from 'lodash';
-import Vue from 'vue';
-import { getIdFromGraphQLId } from '~/graphql_shared/utils';
-import { TYPE_EPIC } from '~/issues/constants';
-import { s__, __ } from '~/locale';
-import { formatIssue } from '../boards_util';
-import * as mutationTypes from './mutation_types';
-
-const updateListItemsCount = ({ state, listId, value }) => {
- const list = state.boardLists[listId];
- if (state.issuableType === TYPE_EPIC) {
- const listItem = cloneDeep(state.boardLists[listId]);
- listItem.metadataepicsCount += value;
- Vue.set(state.boardLists[listId], listId, listItem);
- }
- Vue.set(state.boardLists, listId, { ...list });
-};
-
-export const removeItemFromList = ({ state, listId, itemId, reordering = false }) => {
- Vue.set(state.boardItemsByListId, listId, pull(state.boardItemsByListId[listId], itemId));
- if (!reordering) {
- updateListItemsCount({ state, listId, value: -1 });
- }
-};
-
-export const addItemToList = ({
- state,
- listId,
- itemId,
- moveBeforeId,
- moveAfterId,
- atIndex,
- positionInList,
- reordering = false,
-}) => {
- const listIssues = state.boardItemsByListId[listId];
- let newIndex = atIndex || 0;
- const moveToStartOrLast = positionInList !== undefined;
- if (moveBeforeId) {
- newIndex = listIssues.indexOf(moveBeforeId) + 1;
- } else if (moveAfterId) {
- newIndex = listIssues.indexOf(moveAfterId);
- } else if (moveToStartOrLast) {
- newIndex = positionInList === -1 ? listIssues.length : 0;
- }
- listIssues.splice(newIndex, 0, itemId);
- Vue.set(state.boardItemsByListId, listId, listIssues);
- if (!reordering) {
- updateListItemsCount({ state, listId, value: moveToStartOrLast ? 0 : 1 });
- }
-};
-
-export default {
- [mutationTypes.REQUEST_CURRENT_BOARD]: (state) => {
- state.isBoardLoading = true;
- },
-
- [mutationTypes.RECEIVE_BOARD_SUCCESS]: (state, board) => {
- state.board = {
- ...board,
- labels: board?.labels?.nodes || [],
- };
- state.fullBoardId = board.id;
- state.boardId = getIdFromGraphQLId(board.id);
- state.isBoardLoading = false;
- },
-
- [mutationTypes.RECEIVE_BOARD_FAILURE]: (state) => {
- state.error = s__('Boards|An error occurred while fetching the board. Please reload the page.');
- state.isBoardLoading = false;
- },
-
- [mutationTypes.SET_INITIAL_BOARD_DATA](state, data) {
- const {
- allowSubEpics,
- boardId,
- boardType,
- disabled,
- fullBoardId,
- fullPath,
- issuableType,
- } = data;
- state.allowSubEpics = allowSubEpics;
- state.boardId = boardId;
- state.boardType = boardType;
- state.disabled = disabled;
- state.fullBoardId = fullBoardId;
- state.fullPath = fullPath;
- state.issuableType = issuableType;
- },
-
- [mutationTypes.SET_BOARD_CONFIG](state, boardConfig) {
- state.boardConfig = boardConfig;
- },
-
- [mutationTypes.RECEIVE_BOARD_LISTS_SUCCESS]: (state, lists) => {
- state.boardLists = lists;
- },
-
- [mutationTypes.RECEIVE_BOARD_LISTS_FAILURE]: (state) => {
- state.error = s__(
- 'Boards|An error occurred while fetching the board lists. Please reload the page.',
- );
- },
-
- [mutationTypes.SET_ACTIVE_ID](state, { id, sidebarType }) {
- state.activeId = id;
- state.sidebarType = sidebarType;
- },
-
- [mutationTypes.SET_FILTERS](state, filterParams) {
- state.filterParams = filterParams;
- },
-
- [mutationTypes.CREATE_LIST_FAILURE]: (
- state,
- error = s__('Boards|An error occurred while creating the list. Please try again.'),
- ) => {
- state.error = error;
- },
-
- [mutationTypes.RECEIVE_LABELS_REQUEST]: (state) => {
- state.labelsLoading = true;
- },
-
- [mutationTypes.RECEIVE_LABELS_SUCCESS]: (state, labels) => {
- state.labels = labels;
- state.labelsLoading = false;
- },
-
- [mutationTypes.RECEIVE_LABELS_FAILURE]: (state) => {
- state.error = s__('Boards|An error occurred while fetching labels. Please reload the page.');
- state.labelsLoading = false;
- },
-
- [mutationTypes.GENERATE_DEFAULT_LISTS_FAILURE]: (state) => {
- state.error = s__('Boards|An error occurred while generating lists. Please reload the page.');
- },
-
- [mutationTypes.RECEIVE_ADD_LIST_SUCCESS]: (state, list) => {
- Vue.set(state.boardLists, list.id, list);
- },
-
- [mutationTypes.MOVE_LISTS]: (state, movedLists) => {
- const updatedBoardList = movedLists.reduce((acc, { listId, position }) => {
- acc[listId].position = position;
- return acc;
- }, cloneDeep(state.boardLists));
- Vue.set(state, 'boardLists', updatedBoardList);
- },
-
- [mutationTypes.TOGGLE_LIST_COLLAPSED]: (state, { listId, collapsed }) => {
- Vue.set(state.boardLists[listId], 'collapsed', collapsed);
- },
-
- [mutationTypes.REMOVE_LIST]: (state, listId) => {
- Vue.delete(state.boardLists, listId);
- },
-
- [mutationTypes.REMOVE_LIST_FAILURE](state, listsBackup) {
- state.error = s__('Boards|An error occurred while removing the list. Please try again.');
- state.boardLists = listsBackup;
- },
-
- [mutationTypes.REQUEST_ITEMS_FOR_LIST]: (state, { listId, fetchNext }) => {
- Vue.set(state.listsFlags, listId, { [fetchNext ? 'isLoadingMore' : 'isLoading']: true });
- },
-
- [mutationTypes.RECEIVE_MILESTONES_SUCCESS](state, milestones) {
- state.milestones = milestones;
- state.milestonesLoading = false;
- },
-
- [mutationTypes.RECEIVE_MILESTONES_REQUEST](state) {
- state.milestonesLoading = true;
- },
-
- [mutationTypes.RECEIVE_MILESTONES_FAILURE](state) {
- state.milestonesLoading = false;
- state.error = __('Failed to load milestones.');
- },
-
- [mutationTypes.RECEIVE_ITEMS_FOR_LIST_SUCCESS]: (state, { listItems, listPageInfo, listId }) => {
- const { listData, boardItems } = listItems;
- Vue.set(state, 'boardItems', { ...state.boardItems, ...boardItems });
- Vue.set(
- state.boardItemsByListId,
- listId,
- union(state.boardItemsByListId[listId] || [], listData[listId]),
- );
- Vue.set(state.pageInfoByListId, listId, listPageInfo[listId]);
- Vue.set(state.listsFlags, listId, { isLoading: false, isLoadingMore: false });
- },
-
- [mutationTypes.RECEIVE_ITEMS_FOR_LIST_FAILURE]: (state, listId) => {
- state.error = s__(
- 'Boards|An error occurred while fetching the board issues. Please reload the page.',
- );
- Vue.set(state.listsFlags, listId, { isLoading: false, isLoadingMore: false });
- },
-
- [mutationTypes.RESET_ISSUES]: (state) => {
- Object.keys(state.boardItemsByListId).forEach((listId) => {
- Vue.set(state.boardItemsByListId, listId, []);
- });
- },
-
- [mutationTypes.UPDATE_BOARD_ITEM_BY_ID]: (state, { itemId, prop, value }) => {
- if (!state.boardItems[itemId]) {
- /* eslint-disable-next-line @gitlab/require-i18n-strings */
- throw new Error('No issue found.');
- }
-
- Vue.set(state.boardItems[itemId], prop, value);
- },
-
- [mutationTypes.SET_ASSIGNEE_LOADING](state, isLoading) {
- state.isSettingAssignees = isLoading;
- },
-
- [mutationTypes.MUTATE_ISSUE_SUCCESS]: (state, { issue }) => {
- Vue.set(state.boardItems, issue.id, formatIssue(issue));
- },
-
- [mutationTypes.MUTATE_ISSUE_IN_PROGRESS](state, isLoading) {
- state.isUpdateIssueOrderInProgress = isLoading;
- },
-
- [mutationTypes.ADD_BOARD_ITEM_TO_LIST]: (
- state,
- {
- itemId,
- listId,
- moveBeforeId,
- moveAfterId,
- atIndex,
- positionInList,
- allItemsLoadedInList,
- inProgress = false,
- },
- ) => {
- Vue.set(state.listsFlags, listId, { ...state.listsFlags, addItemToListInProgress: inProgress });
- addItemToList({
- state,
- listId,
- itemId,
- moveBeforeId,
- moveAfterId,
- atIndex,
- positionInList,
- allItemsLoadedInList,
- });
- },
-
- [mutationTypes.REMOVE_BOARD_ITEM_FROM_LIST]: (state, { itemId, listId }) => {
- removeItemFromList({ state, listId, itemId });
- },
-
- [mutationTypes.UPDATE_BOARD_ITEM]: (state, item) => {
- Vue.set(state.boardItems, item.id, item);
- },
-
- [mutationTypes.REMOVE_BOARD_ITEM]: (state, itemId) => {
- Vue.delete(state.boardItems, itemId);
- },
-
- [mutationTypes.REQUEST_GROUP_PROJECTS]: (state, fetchNext) => {
- Vue.set(state, 'groupProjectsFlags', {
- [fetchNext ? 'isLoadingMore' : 'isLoading']: true,
- pageInfo: state.groupProjectsFlags.pageInfo,
- });
- },
-
- [mutationTypes.RECEIVE_GROUP_PROJECTS_SUCCESS]: (state, { projects, pageInfo, fetchNext }) => {
- Vue.set(state, 'groupProjects', fetchNext ? [...state.groupProjects, ...projects] : projects);
- Vue.set(state, 'groupProjectsFlags', { isLoading: false, isLoadingMore: false, pageInfo });
- },
-
- [mutationTypes.RECEIVE_GROUP_PROJECTS_FAILURE]: (state) => {
- state.error = s__('Boards|An error occurred while fetching group projects. Please try again.');
- Vue.set(state, 'groupProjectsFlags', { isLoading: false, isLoadingMore: false });
- },
-
- [mutationTypes.SET_SELECTED_PROJECT]: (state, project) => {
- state.selectedProject = project;
- },
-
- [mutationTypes.ADD_BOARD_ITEM_TO_SELECTION]: (state, boardItem) => {
- state.selectedBoardItems = [...state.selectedBoardItems, boardItem];
- },
-
- [mutationTypes.REMOVE_BOARD_ITEM_FROM_SELECTION]: (state, boardItem) => {
- Vue.set(
- state,
- 'selectedBoardItems',
- state.selectedBoardItems.filter((obj) => obj !== boardItem),
- );
- },
-
- [mutationTypes.SET_ADD_COLUMN_FORM_VISIBLE]: (state, visible) => {
- Vue.set(state.addColumnForm, 'visible', visible);
- },
-
- [mutationTypes.ADD_LIST_TO_HIGHLIGHTED_LISTS]: (state, listId) => {
- state.highlightedLists.push(listId);
- },
-
- [mutationTypes.REMOVE_LIST_FROM_HIGHLIGHTED_LISTS]: (state, listId) => {
- state.highlightedLists = state.highlightedLists.filter((id) => id !== listId);
- },
-
- [mutationTypes.RESET_BOARD_ITEM_SELECTION]: (state) => {
- state.selectedBoardItems = [];
- },
-
- [mutationTypes.SET_ERROR]: (state, error) => {
- state.error = error;
- },
-};
diff --git a/app/assets/javascripts/boards/stores/state.js b/app/assets/javascripts/boards/stores/state.js
deleted file mode 100644
index bf3f777ea7d..00000000000
--- a/app/assets/javascripts/boards/stores/state.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { inactiveId, ListType } from '~/boards/constants';
-
-export default () => ({
- board: {},
- isBoardLoading: false,
- boardType: null,
- issuableType: null,
- fullPath: null,
- disabled: false,
- isShowingLabels: true,
- activeId: inactiveId,
- sidebarType: '',
- boardLists: {},
- listsFlags: {},
- boardItemsByListId: {},
- isSettingAssignees: false,
- pageInfoByListId: {},
- boardItems: {},
- filterParams: {},
- boardConfig: {},
- labelsLoading: false,
- labels: [],
- milestones: [],
- milestonesLoading: false,
- highlightedLists: [],
- selectedBoardItems: [],
- groupProjects: [],
- groupProjectsFlags: {
- isLoading: false,
- isLoadingMore: false,
- pageInfo: {},
- },
- selectedProject: {},
- error: undefined,
- iterations: [],
- iterationsLoading: false,
- addColumnForm: {
- visible: false,
- columnType: ListType.label,
- },
- // TODO: remove after ce/ee split of board_content.vue
- isShowingEpicsSwimlanes: false,
- isUpdateIssueOrderInProgress: false,
-});
diff --git a/app/assets/javascripts/branches/components/graph_bar.vue b/app/assets/javascripts/branches/components/graph_bar.vue
index 21cbcac820a..885db7651a1 100644
--- a/app/assets/javascripts/branches/components/graph_bar.vue
+++ b/app/assets/javascripts/branches/components/graph_bar.vue
@@ -62,7 +62,7 @@ export default {
:class="[roundedClass, positionSideClass]"
class="position-absolute bar js-graph-bar"
></div>
- <span :class="textAlignmentClass" class="d-block pt-1 pr-1 count js-graph-count">
+ <span :class="textAlignmentClass" class="gl-display-block gl-pt-1 gl-px-1 count js-graph-count">
{{ label }}
</span>
</div>
diff --git a/app/assets/javascripts/breadcrumb.js b/app/assets/javascripts/breadcrumb.js
index 0dacd5af5cc..b06a6f8b141 100644
--- a/app/assets/javascripts/breadcrumb.js
+++ b/app/assets/javascripts/breadcrumb.js
@@ -34,7 +34,7 @@ export default () => {
$('li.expander').remove();
// set focus on first breadcrumb item
- $('.breadcrumb-item-text').first().focus();
+ $('.js-breadcrumb-item-text').first().focus();
});
}
};
diff --git a/app/assets/javascripts/captcha/captcha_modal.vue b/app/assets/javascripts/captcha/captcha_modal.vue
index 36aa098d5ff..fd37e498699 100644
--- a/app/assets/javascripts/captcha/captcha_modal.vue
+++ b/app/assets/javascripts/captcha/captcha_modal.vue
@@ -26,10 +26,21 @@ export default {
type: String,
required: true,
},
+ showModal: {
+ type: Boolean,
+ required: false,
+ default: true,
+ },
+ resetSession: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
},
data() {
return {
modalId: uniqueId('captcha-modal-'),
+ captcha: null,
};
},
watch: {
@@ -37,29 +48,44 @@ export default {
// If this is true, we need to present the captcha modal to the user.
// When the modal is shown we will also initialize and render the form.
if (newNeedsCaptchaResponse) {
- this.$refs.modal.show();
+ this.renderCaptcha();
}
},
+ resetSession: {
+ immediate: true,
+ handler(reset) {
+ if (reset && this.captcha) {
+ this.resetCaptcha();
+ }
+ },
+ },
},
mounted() {
// If this is true, we need to present the captcha modal to the user.
// When the modal is shown we will also initialize and render the form.
if (this.needsCaptchaResponse) {
- this.$refs.modal.show();
+ this.renderCaptcha();
}
},
methods: {
emitReceivedCaptchaResponse(captchaResponse) {
- this.$refs.modal.hide();
+ if (this.showModal) this.$refs.modal.hide();
this.$emit('receivedCaptchaResponse', captchaResponse);
},
emitNullReceivedCaptchaResponse() {
this.emitReceivedCaptchaResponse(null);
},
+ renderCaptcha() {
+ if (this.showModal) {
+ this.$refs.modal.show();
+ } else {
+ this.initCaptcha();
+ }
+ },
/**
* handler for when modal is shown
*/
- shown() {
+ initCaptcha() {
const containerRef = this.$refs.captcha;
// NOTE: This is the only bit that is specific to Google's reCAPTCHA captcha implementation.
@@ -72,12 +98,13 @@ export default {
// TODO: Also need to handle expired-callback and error-callback
// See https://gitlab.com/gitlab-org/gitlab/-/issues/217722#future-follow-on-issuesmrs
});
+
+ this.captcha = grecaptcha;
})
.catch((e) => {
// TODO: flash the error or notify the user some other way
// See https://gitlab.com/gitlab-org/gitlab/-/issues/217722#future-follow-on-issuesmrs
this.emitNullReceivedCaptchaResponse();
- this.$refs.modal.hide();
// eslint-disable-next-line no-console
console.error(
@@ -96,6 +123,9 @@ export default {
this.emitNullReceivedCaptchaResponse();
}
},
+ resetCaptcha() {
+ this.captcha.reset();
+ },
},
};
</script>
@@ -104,17 +134,19 @@ export default {
<!-- there must be at least one button or focusable element, or the gl-modal fails to render. -->
<!-- We could modify gl-model to remove this requirement. -->
<gl-modal
+ v-if="showModal"
ref="modal"
:modal-id="modalId"
:title="__('Please solve the captcha')"
:action-cancel="/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {
text: __('Cancel'),
} /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */"
- @shown="shown"
+ @shown="initCaptcha"
@hide="hide"
@hidden="$emit('hidden')"
>
<div ref="captcha"></div>
<p>{{ __('We want to be sure it is you, please confirm you are not a robot.') }}</p>
</gl-modal>
+ <div v-else ref="captcha" class="gl-display-inline-block"></div>
</template>
diff --git a/app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue b/app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue
index 6d062d8b7f1..7085397c649 100644
--- a/app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue
+++ b/app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue
@@ -106,7 +106,7 @@ export default {
<div class="gl-display-flex">
<pre
class="gl-w-85p gl-py-4 gl-display-flex gl-justify-content-space-between gl-m-0 gl-border-r-none"
- ><span>{{ generateSnippet(component.path) }}</span>
+ ><span>{{ generateSnippet(component.includePath) }}</span>
</pre>
<div class="gl--flex-center gl-bg-gray-10 gl-border gl-border-l-none">
<gl-button
@@ -115,7 +115,7 @@ export default {
icon="copy-to-clipboard"
size="small"
:title="$options.i18n.copyText"
- :data-clipboard-text="generateSnippet(component.path)"
+ :data-clipboard-text="generateSnippet(component.includePath)"
data-testid="copy-to-clipboard"
:aria-label="$options.i18n.copyAriaText"
/>
diff --git a/app/assets/javascripts/ci/catalog/components/details/ci_resource_header.vue b/app/assets/javascripts/ci/catalog/components/details/ci_resource_header.vue
index b9d6173a777..929175b964f 100644
--- a/app/assets/javascripts/ci/catalog/components/details/ci_resource_header.vue
+++ b/app/assets/javascripts/ci/catalog/components/details/ci_resource_header.vue
@@ -49,7 +49,7 @@ export default {
return getIdFromGraphQLId(this.resource.id);
},
hasLatestVersion() {
- return this.latestVersion?.tagName;
+ return this.latestVersion?.name;
},
hasPipelineStatus() {
return this.pipelineStatus?.text;
@@ -58,7 +58,7 @@ export default {
return this.resource.latestVersion;
},
versionBadgeText() {
- return this.latestVersion.tagName;
+ return this.latestVersion.name;
},
webPath() {
return cleanLeadingSeparator(this.resource?.webPath);
@@ -92,7 +92,7 @@ export default {
v-if="hasLatestVersion"
size="sm"
class="gl-ml-3 gl-my-1"
- :href="latestVersion.tagPath"
+ :href="latestVersion.path"
>
{{ versionBadgeText }}
</gl-badge>
diff --git a/app/assets/javascripts/ci/catalog/components/details/ci_resource_readme.vue b/app/assets/javascripts/ci/catalog/components/details/ci_resource_readme.vue
index 343b555c4d8..ccef50e469d 100644
--- a/app/assets/javascripts/ci/catalog/components/details/ci_resource_readme.vue
+++ b/app/assets/javascripts/ci/catalog/components/details/ci_resource_readme.vue
@@ -50,6 +50,6 @@ export default {
<template>
<div>
<gl-loading-icon v-if="isLoading" class="gl-mt-5" size="lg" />
- <div v-else v-safe-html="readmeHtml"></div>
+ <div v-else v-safe-html="readmeHtml" class="md"></div>
</div>
</template>
diff --git a/app/assets/javascripts/ci/catalog/components/list/catalog_header.vue b/app/assets/javascripts/ci/catalog/components/list/catalog_header.vue
index 3a9ec341789..001e3ec3720 100644
--- a/app/assets/javascripts/ci/catalog/components/list/catalog_header.vue
+++ b/app/assets/javascripts/ci/catalog/components/list/catalog_header.vue
@@ -1,5 +1,6 @@
<script>
import { GlBanner, GlLink } from '@gitlab/ui';
+import ChatBubbleSvg from '@gitlab/svgs/dist/illustrations/chat-sm.svg?url';
import { __, s__ } from '~/locale';
import { helpPagePath } from '~/helpers/help_page_helper';
import BetaBadge from '~/vue_shared/components/badges/beta_badge.vue';
@@ -44,6 +45,7 @@ export default {
learnMore: __('Learn more'),
},
learnMorePath: helpPagePath('ci/components/index'),
+ ChatBubbleSvg,
};
</script>
<template>
@@ -54,6 +56,7 @@ export default {
:title="$options.i18n.banner.title"
:button-text="$options.i18n.banner.btnText"
button-link="https://gitlab.com/gitlab-org/gitlab/-/issues/407556"
+ :svg-path="$options.ChatBubbleSvg"
@close="handleDismissBanner"
>
<p>
diff --git a/app/assets/javascripts/ci/catalog/components/list/catalog_search.vue b/app/assets/javascripts/ci/catalog/components/list/catalog_search.vue
index e074cfda6f7..1319f204573 100644
--- a/app/assets/javascripts/ci/catalog/components/list/catalog_search.vue
+++ b/app/assets/javascripts/ci/catalog/components/list/catalog_search.vue
@@ -1,5 +1,5 @@
<script>
-import { GlSearchBoxByClick, GlSorting, GlSortingItem } from '@gitlab/ui';
+import { GlSearchBoxByClick, GlSorting } from '@gitlab/ui';
import { __ } from '~/locale';
import { SORT_ASC, SORT_DESC, SORT_OPTION_CREATED } from '../../constants';
@@ -7,7 +7,6 @@ export default {
components: {
GlSearchBoxByClick,
GlSorting,
- GlSortingItem,
},
data() {
return {
@@ -25,7 +24,7 @@ export default {
},
currentSortText() {
const currentSort = this.$options.sortOptions.find(
- (sort) => sort.key === this.currentSortOption,
+ (sort) => sort.value === this.currentSortOption,
);
return currentSort.text;
},
@@ -36,9 +35,6 @@ export default {
},
},
methods: {
- isActiveSort(sortItem) {
- return sortItem === this.currentSortOption;
- },
onClear() {
this.$emit('update-search-term', '');
},
@@ -49,10 +45,10 @@ export default {
this.$emit('update-search-term', this.searchTerm);
},
setSelectedSortOption(sortingItem) {
- this.currentSortOption = sortingItem.key;
+ this.currentSortOption = sortingItem;
},
},
- sortOptions: [{ key: SORT_OPTION_CREATED, text: __('Created at') }],
+ sortOptions: [{ value: SORT_OPTION_CREATED, text: __('Created at') }],
};
</script>
<template>
@@ -66,16 +62,10 @@ export default {
<gl-sorting
:is-ascending="isAscending"
:text="currentSortText"
+ :sort-options="$options.sortOptions"
+ :sort-by="currentSortOption"
+ @sortByChange="setSelectedSortOption"
@sortDirectionChange="onSortDirectionChange"
- >
- <gl-sorting-item
- v-for="sortingItem in $options.sortOptions"
- :key="sortingItem.key"
- :active="isActiveSort(sortingItem.key)"
- @click="setSelectedSortOption(sortingItem)"
- >
- {{ sortingItem.text }}
- </gl-sorting-item>
- </gl-sorting>
+ />
</div>
</template>
diff --git a/app/assets/javascripts/ci/catalog/components/list/catalog_tabs.vue b/app/assets/javascripts/ci/catalog/components/list/catalog_tabs.vue
new file mode 100644
index 00000000000..f43255ab76b
--- /dev/null
+++ b/app/assets/javascripts/ci/catalog/components/list/catalog_tabs.vue
@@ -0,0 +1,67 @@
+<script>
+import { GlBadge, GlTab, GlTabs, GlLoadingIcon } from '@gitlab/ui';
+import { s__ } from '~/locale';
+import { SCOPE } from '../../constants';
+
+export default {
+ components: {
+ GlBadge,
+ GlTab,
+ GlTabs,
+ GlLoadingIcon,
+ },
+ props: {
+ isLoading: {
+ type: Boolean,
+ required: true,
+ },
+ resourceCounts: {
+ type: Object,
+ required: true,
+ },
+ },
+ computed: {
+ tabs() {
+ return [
+ {
+ text: s__('CiCatalog|All'),
+ scope: SCOPE.all,
+ testId: 'resources-all-tab',
+ count: this.resourceCounts.all,
+ },
+ {
+ text: s__('CiCatalog|Your resources'),
+ scope: SCOPE.namespaces,
+ testId: 'resources-your-tab',
+ count: this.resourceCounts.namespaces,
+ },
+ ];
+ },
+ showLoadingIcon() {
+ return this.isLoading;
+ },
+ },
+};
+</script>
+
+<template>
+ <div class="gl-display-flex align-items-lg-center">
+ <gl-tabs content-class="gl-py-0" class="gl-w-full">
+ <gl-tab
+ v-for="tab in tabs"
+ :key="tab.text"
+ :data-testid="tab.testId"
+ @click="$emit('setScope', tab.scope)"
+ >
+ <template #title>
+ <span>{{ tab.text }}</span>
+ <gl-loading-icon v-if="showLoadingIcon" class="gl-ml-3" />
+
+ <gl-badge v-else size="sm" class="gl-tab-counter-badge">
+ {{ tab.count }}
+ </gl-badge>
+ </template>
+ </gl-tab>
+ </gl-tabs>
+ </div>
+</template>
diff --git a/app/assets/javascripts/ci/catalog/components/list/ci_resources_list_item.vue b/app/assets/javascripts/ci/catalog/components/list/ci_resources_list_item.vue
index 57d19af614f..42f8cea8727 100644
--- a/app/assets/javascripts/ci/catalog/components/list/ci_resources_list_item.vue
+++ b/app/assets/javascripts/ci/catalog/components/list/ci_resources_list_item.vue
@@ -67,8 +67,8 @@ export default {
releasedAt() {
return getTimeago().format(this.latestVersion?.releasedAt);
},
- tagName() {
- return this.latestVersion?.tagName || this.$options.i18n.unreleased;
+ name() {
+ return this.latestVersion?.name || this.$options.i18n.unreleased;
},
webPath() {
return cleanLeadingSeparator(this.resource?.webPath);
@@ -117,7 +117,7 @@ export default {
<b> {{ resource.name }}</b>
</gl-link>
<div class="gl-display-flex gl-flex-grow-1 gl-md-justify-content-space-between">
- <gl-badge size="sm" class="gl-h-5 gl-align-self-center">{{ tagName }}</gl-badge>
+ <gl-badge size="sm" class="gl-h-5 gl-align-self-center">{{ name }}</gl-badge>
<span class="gl-display-flex gl-align-items-center gl-ml-5">
<span
v-gl-tooltip.top
diff --git a/app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue b/app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue
index e1c86f38d7e..08500d3093c 100644
--- a/app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue
+++ b/app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue
@@ -3,6 +3,7 @@ import { createAlert } from '~/alert';
import { s__ } from '~/locale';
import { ciCatalogResourcesItemsCount } from '~/ci/catalog/graphql/settings';
import CatalogSearch from '../list/catalog_search.vue';
+import CatalogTabs from '../list/catalog_tabs.vue';
import CiResourcesList from '../list/ci_resources_list.vue';
import CatalogListSkeletonLoader from '../list/catalog_list_skeleton_loader.vue';
import CatalogHeader from '../list/catalog_header.vue';
@@ -10,29 +11,60 @@ import EmptyState from '../list/empty_state.vue';
import getCatalogResources from '../../graphql/queries/get_ci_catalog_resources.query.graphql';
import getCurrentPage from '../../graphql/queries/client/get_current_page.query.graphql';
import updateCurrentPageMutation from '../../graphql/mutations/client/update_current_page.mutation.graphql';
+import getCatalogResourcesCount from '../../graphql/queries/get_ci_catalog_resources_count.query.graphql';
+import { DEFAULT_SORT_VALUE, SCOPE } from '../../constants';
export default {
+ i18n: {
+ fetchError: s__('CiCatalog|There was an error fetching CI/CD Catalog resources.'),
+ countFetchError: s__('CiCatalog|There was an error fetching the CI/CD Catalog resource count.'),
+ },
components: {
CatalogHeader,
CatalogListSkeletonLoader,
CatalogSearch,
+ CatalogTabs,
CiResourcesList,
EmptyState,
},
data() {
return {
catalogResources: [],
+ catalogResourcesCount: { all: 0, namespaces: 0 },
currentPage: 1,
pageInfo: {},
- searchTerm: '',
- totalCount: 0,
+ scope: SCOPE.all,
+ searchTerm: null,
+ sortValue: DEFAULT_SORT_VALUE,
};
},
apollo: {
+ catalogResourcesCount: {
+ query: getCatalogResourcesCount,
+ variables() {
+ return {
+ searchTerm: this.searchTerm,
+ };
+ },
+ update({ namespaces, all }) {
+ return {
+ namespaces: namespaces.count,
+ all: all.count,
+ };
+ },
+ error(e) {
+ createAlert({
+ message: e.message || this.$options.i18n.countFetchError,
+ });
+ },
+ },
catalogResources: {
query: getCatalogResources,
variables() {
return {
+ scope: this.scope,
+ searchTerm: this.searchTerm,
+ sortValue: this.sortValue,
first: ciCatalogResourcesItemsCount,
};
},
@@ -42,10 +74,9 @@ export default {
result({ data }) {
const { pageInfo } = data?.ciCatalogResources || {};
this.pageInfo = pageInfo;
- this.totalCount = data?.ciCatalogResources?.count || 0;
},
error(e) {
- createAlert({ message: e.message || this.$options.i18n.fetchError, variant: 'danger' });
+ createAlert({ message: e.message || this.$options.i18n.fetchError });
},
},
currentPage: {
@@ -62,11 +93,14 @@ export default {
isLoading() {
return this.$apollo.queries.catalogResources.loading;
},
- isSearching() {
- return this.searchTerm?.length > 0;
+ isLoadingCounts() {
+ return this.$apollo.queries.catalogResourcesCount.loading;
+ },
+ namespacesCount() {
+ return this.catalogResourcesCount.namespaces;
},
- showEmptyState() {
- return !this.hasResources && !this.isSearching;
+ currentTabTotalCount() {
+ return this.catalogResourcesCount[this.scope.toLowerCase()];
},
},
methods: {
@@ -103,6 +137,11 @@ export default {
createAlert({ message: e?.message || this.$options.i18n.fetchError, variant: 'danger' });
}
},
+ handleSetScope(scope) {
+ if (this.scope === scope) return;
+
+ this.scope = scope;
+ },
updatePageCount(pageNumber) {
this.$apollo.mutate({
mutation: updateCurrentPageMutation,
@@ -120,30 +159,28 @@ export default {
onUpdateSearchTerm(searchTerm) {
this.searchTerm = !searchTerm.length ? null : searchTerm;
this.resetPageCount();
- this.$apollo.queries.catalogResources.refetch({
- searchTerm: this.searchTerm,
- });
},
onUpdateSorting(sortValue) {
+ this.sortValue = sortValue;
this.resetPageCount();
- this.$apollo.queries.catalogResources.refetch({
- sortValue,
- });
},
resetPageCount() {
this.updatePageCount(1);
},
},
- i18n: {
- fetchError: s__('CiCatalog|There was an error fetching CI/CD Catalog resources.'),
- },
};
</script>
<template>
<div>
<catalog-header />
+ <catalog-tabs
+ :is-loading="isLoadingCounts"
+ :resource-counts="catalogResourcesCount"
+ class="gl-mb-3"
+ @setScope="handleSetScope"
+ />
<catalog-search
- class="gl-py-4 gl-border-b-1 gl-border-gray-100 gl-border-b-solid gl-border-t-1 gl-border-t-solid"
+ class="gl-py-2"
@update-search-term="onUpdateSearchTerm"
@update-sorting="onUpdateSorting"
/>
@@ -156,7 +193,7 @@ export default {
:prev-text="__('Prev')"
:next-text="__('Next')"
:resources="catalogResources"
- :total-count="totalCount"
+ :total-count="currentTabTotalCount"
@onPrevPage="handlePrevPage"
@onNextPage="handleNextPage"
/>
diff --git a/app/assets/javascripts/ci/catalog/constants.js b/app/assets/javascripts/ci/catalog/constants.js
index 34c0ac797c1..a180aa84344 100644
--- a/app/assets/javascripts/ci/catalog/constants.js
+++ b/app/assets/javascripts/ci/catalog/constants.js
@@ -2,8 +2,14 @@ import { helpPagePath } from '~/helpers/help_page_helper';
export const CATALOG_FEEDBACK_DISMISSED_KEY = 'catalog_feedback_dismissed';
+export const SCOPE = {
+ all: 'ALL',
+ namespaces: 'NAMESPACES',
+};
+
export const SORT_OPTION_CREATED = 'CREATED';
export const SORT_ASC = 'ASC';
export const SORT_DESC = 'DESC';
+export const DEFAULT_SORT_VALUE = `${SORT_OPTION_CREATED}_${SORT_DESC}`;
export const COMPONENTS_DOCS_URL = helpPagePath('ci/components/index');
diff --git a/app/assets/javascripts/ci/catalog/graphql/fragments/catalog_resource.fragment.graphql b/app/assets/javascripts/ci/catalog/graphql/fragments/catalog_resource.fragment.graphql
index b3a750e9604..316308e96d7 100644
--- a/app/assets/javascripts/ci/catalog/graphql/fragments/catalog_resource.fragment.graphql
+++ b/app/assets/javascripts/ci/catalog/graphql/fragments/catalog_resource.fragment.graphql
@@ -7,8 +7,8 @@ fragment CatalogResourceFields on CiCatalogResource {
starCount
latestVersion {
id
- tagName
- tagPath
+ name
+ path
releasedAt
author {
id
diff --git a/app/assets/javascripts/pages/projects/shared/permissions/graphql/mutations/catalog_resources_create.mutation.graphql b/app/assets/javascripts/ci/catalog/graphql/mutations/catalog_resources_create.mutation.graphql
index c3b73ebf248..c3b73ebf248 100644
--- a/app/assets/javascripts/pages/projects/shared/permissions/graphql/mutations/catalog_resources_create.mutation.graphql
+++ b/app/assets/javascripts/ci/catalog/graphql/mutations/catalog_resources_create.mutation.graphql
diff --git a/app/assets/javascripts/pages/projects/shared/permissions/graphql/mutations/catalog_resources_destroy.mutation.graphql b/app/assets/javascripts/ci/catalog/graphql/mutations/catalog_resources_destroy.mutation.graphql
index fa42b081a5f..fa42b081a5f 100644
--- a/app/assets/javascripts/pages/projects/shared/permissions/graphql/mutations/catalog_resources_destroy.mutation.graphql
+++ b/app/assets/javascripts/ci/catalog/graphql/mutations/catalog_resources_destroy.mutation.graphql
diff --git a/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_components.query.graphql b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_components.query.graphql
index 41ac72aa9de..bf1edf1af6e 100644
--- a/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_components.query.graphql
+++ b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_components.query.graphql
@@ -8,7 +8,7 @@ query getCiCatalogResourceComponents($fullPath: ID!) {
nodes {
id
name
- path
+ includePath
inputs {
name
required
diff --git a/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_details.query.graphql b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_details.query.graphql
index a77e8f12d03..efc8aa777d4 100644
--- a/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_details.query.graphql
+++ b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resource_details.query.graphql
@@ -22,7 +22,7 @@ query getCiCatalogResourceDetails($fullPath: ID!) {
}
}
}
- tagName
+ name
releasedAt
}
}
diff --git a/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources.query.graphql b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources.query.graphql
index 1cf213dec63..24789e9c4ed 100644
--- a/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources.query.graphql
+++ b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources.query.graphql
@@ -1,6 +1,7 @@
#import "~/ci/catalog/graphql/fragments/catalog_resource.fragment.graphql"
query getCatalogResources(
+ $scope: CiCatalogResourceScope
$searchTerm: String
$sortValue: CiCatalogResourceSort
$after: String
@@ -9,6 +10,7 @@ query getCatalogResources(
$last: Int
) {
ciCatalogResources(
+ scope: $scope
search: $searchTerm
sort: $sortValue
after: $after
@@ -22,7 +24,6 @@ query getCatalogResources(
hasNextPage
hasPreviousPage
}
- count
nodes {
...CatalogResourceFields
}
diff --git a/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources_count.query.graphql b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources_count.query.graphql
new file mode 100644
index 00000000000..d4a298e7e09
--- /dev/null
+++ b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources_count.query.graphql
@@ -0,0 +1,8 @@
+query getCatalogResourcesCount($searchTerm: String) {
+ all: ciCatalogResources(scope: ALL, search: $searchTerm) {
+ count
+ }
+ namespaces: ciCatalogResources(scope: NAMESPACES, search: $searchTerm) {
+ count
+ }
+}
diff --git a/app/assets/javascripts/pages/projects/shared/permissions/graphql/queries/get_ci_catalog_settings.query.graphql b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_settings.query.graphql
index 0de06028386..0de06028386 100644
--- a/app/assets/javascripts/pages/projects/shared/permissions/graphql/queries/get_ci_catalog_settings.query.graphql
+++ b/app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_settings.query.graphql
diff --git a/app/assets/javascripts/ci/catalog/graphql/settings.js b/app/assets/javascripts/ci/catalog/graphql/settings.js
index 4038188a7ce..abc95592b14 100644
--- a/app/assets/javascripts/ci/catalog/graphql/settings.js
+++ b/app/assets/javascripts/ci/catalog/graphql/settings.js
@@ -15,7 +15,7 @@ export const cacheConfig = {
});
},
ciCatalogResources: {
- keyArgs: false,
+ keyArgs: ['scope', 'search', 'sort'],
},
},
},
diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_environments_dropdown.vue b/app/assets/javascripts/ci/ci_environments_dropdown/ci_environments_dropdown.vue
index 77af643cbb3..2d2e3e280c0 100644
--- a/app/assets/javascripts/ci/ci_variable_list/components/ci_environments_dropdown.vue
+++ b/app/assets/javascripts/ci/ci_environments_dropdown/ci_environments_dropdown.vue
@@ -3,8 +3,12 @@ import { debounce, uniq } from 'lodash';
import { GlDropdownDivider, GlDropdownItem, GlCollapsibleListbox, GlSprintf } from '@gitlab/ui';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { __, s__, sprintf } from '~/locale';
-import { convertEnvironmentScope } from '../utils';
-import { ENVIRONMENT_QUERY_LIMIT } from '../constants';
+import { convertEnvironmentScope } from './utils';
+import {
+ ALL_ENVIRONMENTS_OPTION,
+ ENVIRONMENT_QUERY_LIMIT,
+ NO_ENVIRONMENT_OPTION,
+} from './constants';
export default {
name: 'CiEnvironmentsDropdown',
@@ -16,10 +20,20 @@ export default {
},
mixins: [glFeatureFlagsMixin()],
props: {
+ isEnvironmentRequired: {
+ type: Boolean,
+ required: false,
+ default: true,
+ },
areEnvironmentsLoading: {
type: Boolean,
required: true,
},
+ canCreateWildcard: {
+ type: Boolean,
+ required: false,
+ default: true,
+ },
environments: {
type: Array,
required: true,
@@ -51,22 +65,31 @@ export default {
searchedEnvironments() {
let filtered = this.environments;
- // If there is no search term, make sure to include *
- if (!this.searchTerm) {
- filtered = uniq([...filtered, '*']);
- }
-
// add custom env scope if it matches the search term
if (this.customEnvScope && this.customEnvScope.startsWith(this.searchTerm)) {
filtered = uniq([...filtered, this.customEnvScope]);
}
+ // If there is no search term, make sure to include *
+ if (!this.searchTerm) {
+ filtered = uniq([...filtered, ALL_ENVIRONMENTS_OPTION.type]);
+
+ // lastly, add Not Applicable (None) as the first option if isEnvironmentRequired is true
+ if (!this.isEnvironmentRequired) {
+ filtered = [NO_ENVIRONMENT_OPTION.type, ...filtered];
+ }
+ }
+
return filtered.sort().map((environment) => ({
value: environment,
text: environment,
}));
},
shouldRenderCreateButton() {
+ if (!this.canCreateWildcard) {
+ return false;
+ }
+
return (
this.searchTerm && ![...this.environments, this.customEnvScope].includes(this.searchTerm)
);
diff --git a/app/assets/javascripts/ci/ci_environments_dropdown/constants.js b/app/assets/javascripts/ci/ci_environments_dropdown/constants.js
new file mode 100644
index 00000000000..98e543a75d0
--- /dev/null
+++ b/app/assets/javascripts/ci/ci_environments_dropdown/constants.js
@@ -0,0 +1,14 @@
+import { __ } from '~/locale';
+
+export const ENVIRONMENT_QUERY_LIMIT = 30;
+
+export const ALL_ENVIRONMENTS_OPTION = {
+ type: '*',
+ text: __('All (default)'),
+};
+
+export const NO_ENVIRONMENT_OPTION = {
+ // TODO: This is a placeholder value. It will be replaced with the actual value used once it's implemented on the backend
+ type: 'Not applicable',
+ text: __('Not applicable'),
+};
diff --git a/app/assets/javascripts/ci/ci_variable_list/graphql/queries/group_environments.query.graphql b/app/assets/javascripts/ci/ci_environments_dropdown/graphql/queries/group_environments.query.graphql
index 5768d370474..5768d370474 100644
--- a/app/assets/javascripts/ci/ci_variable_list/graphql/queries/group_environments.query.graphql
+++ b/app/assets/javascripts/ci/ci_environments_dropdown/graphql/queries/group_environments.query.graphql
diff --git a/app/assets/javascripts/ci/ci_variable_list/graphql/queries/project_environments.query.graphql b/app/assets/javascripts/ci/ci_environments_dropdown/graphql/queries/project_environments.query.graphql
index 26d1b6a3aaa..26d1b6a3aaa 100644
--- a/app/assets/javascripts/ci/ci_variable_list/graphql/queries/project_environments.query.graphql
+++ b/app/assets/javascripts/ci/ci_environments_dropdown/graphql/queries/project_environments.query.graphql
diff --git a/app/assets/javascripts/ci/ci_variable_list/utils.js b/app/assets/javascripts/ci/ci_environments_dropdown/utils.js
index a7e020206ea..093b04dab0c 100644
--- a/app/assets/javascripts/ci/ci_variable_list/utils.js
+++ b/app/assets/javascripts/ci/ci_environments_dropdown/utils.js
@@ -1,4 +1,4 @@
-import { allEnvironments } from './constants';
+import { ALL_ENVIRONMENTS_OPTION, NO_ENVIRONMENT_OPTION } from './constants';
/**
* This function job is to convert the * wildcard to text when applicable
@@ -10,11 +10,14 @@ import { allEnvironments } from './constants';
*/
export const convertEnvironmentScope = (environmentScope = '') => {
- if (environmentScope === allEnvironments.type || !environmentScope) {
- return allEnvironments.text;
+ switch (environmentScope) {
+ case ALL_ENVIRONMENTS_OPTION.type || '':
+ return ALL_ENVIRONMENTS_OPTION.text;
+ case NO_ENVIRONMENT_OPTION.type:
+ return NO_ENVIRONMENT_OPTION.text;
+ default:
+ return environmentScope;
}
-
- return environmentScope;
};
/**
diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue
index 842d88e1267..b118d54d2b0 100644
--- a/app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue
+++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue
@@ -2,8 +2,8 @@
import { TYPENAME_GROUP } from '~/graphql_shared/constants';
import { convertToGraphQLId } from '~/graphql_shared/utils';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
+import { getGroupEnvironments } from '~/ci/common/private/ci_environments_dropdown';
import { ADD_MUTATION_ACTION, DELETE_MUTATION_ACTION, UPDATE_MUTATION_ACTION } from '../constants';
-import getGroupEnvironments from '../graphql/queries/group_environments.query.graphql';
import getGroupVariables from '../graphql/queries/group_variables.query.graphql';
import addGroupVariable from '../graphql/mutations/group_add_variable.mutation.graphql';
import deleteGroupVariable from '../graphql/mutations/group_delete_variable.mutation.graphql';
diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue
index 43938e9b88f..822a2b01f24 100644
--- a/app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue
+++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue
@@ -2,8 +2,8 @@
import { TYPENAME_PROJECT } from '~/graphql_shared/constants';
import { convertToGraphQLId } from '~/graphql_shared/utils';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
+import { getProjectEnvironments } from '~/ci/common/private/ci_environments_dropdown';
import { ADD_MUTATION_ACTION, DELETE_MUTATION_ACTION, UPDATE_MUTATION_ACTION } from '../constants';
-import getProjectEnvironments from '../graphql/queries/project_environments.query.graphql';
import getProjectVariables from '../graphql/queries/project_variables.query.graphql';
import addProjectVariable from '../graphql/mutations/project_add_variable.mutation.graphql';
import deleteProjectVariable from '../graphql/mutations/project_delete_variable.mutation.graphql';
diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue
index 2ad6c7c6578..ad4b7b790d0 100644
--- a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue
+++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue
@@ -20,8 +20,8 @@ import { DRAWER_Z_INDEX } from '~/lib/utils/constants';
import { getContentWrapperHeight } from '~/lib/utils/dom_utils';
import { helpPagePath } from '~/helpers/help_page_helper';
import Tracking from '~/tracking';
+import CiEnvironmentsDropdown from '~/ci/common/private/ci_environments_dropdown';
import {
- allEnvironments,
defaultVariableState,
DRAWER_EVENT_LABEL,
EDIT_VARIABLE_ACTION,
@@ -34,7 +34,6 @@ import {
variableOptions,
WHITESPACE_REG_EX,
} from '../constants';
-import CiEnvironmentsDropdown from './ci_environments_dropdown.vue';
import { awsTokenList } from './ci_variable_autocomplete_tokens';
const trackingMixin = Tracking.mixin({ label: DRAWER_EVENT_LABEL });
@@ -43,9 +42,10 @@ const KEY_REGEX = /^\w+$/;
export const i18n = {
addVariable: s__('CiVariables|Add variable'),
cancel: __('Cancel'),
- defaultScope: allEnvironments.text,
+ defaultScope: __('All (default)'),
deleteVariable: s__('CiVariables|Delete variable'),
editVariable: s__('CiVariables|Edit variable'),
+ saveVariable: __('Save changes'),
environments: __('Environments'),
environmentScopeLinkTitle: ENVIRONMENT_SCOPE_LINK_TITLE,
expandedField: s__('CiVariables|Expand variable reference'),
@@ -259,9 +259,12 @@ export default {
return validationIssuesText.trim();
},
- modalActionText() {
+ modalTitle() {
return this.isEditing ? this.$options.i18n.editVariable : this.$options.i18n.addVariable;
},
+ modalActionText() {
+ return this.isEditing ? this.$options.i18n.saveVariable : this.$options.i18n.addVariable;
+ },
removeVariableMessage() {
return sprintf(this.$options.i18n.modalDeleteMessage, { key: this.variable.key });
},
@@ -359,7 +362,7 @@ export default {
@close="close"
>
<template #title>
- <h2 class="gl-m-0">{{ modalActionText }}</h2>
+ <h2 class="gl-m-0">{{ modalTitle }}</h2>
</template>
<gl-form-group
:label="$options.i18n.type"
@@ -493,8 +496,8 @@ export default {
v-model="variable.value"
:spellcheck="false"
class="gl-border-none gl-font-monospace!"
- rows="3"
- max-rows="10"
+ rows="5"
+ :no-resize="false"
data-testid="ci-variable-value"
/>
<p
@@ -515,9 +518,15 @@ export default {
>
{{ $options.i18n.variableReferenceDescription }}
</gl-alert>
- <div class="gl-display-flex gl-justify-content-end">
- <gl-button category="secondary" class="gl-mr-3" data-testid="cancel-button" @click="close"
- >{{ $options.i18n.cancel }}
+ <div class="gl-display-flex">
+ <gl-button
+ category="primary"
+ class="gl-mr-3"
+ variant="confirm"
+ :disabled="!canSubmit"
+ data-testid="ci-variable-confirm-button"
+ @click="submit"
+ >{{ modalActionText }}
</gl-button>
<gl-button
v-if="isEditing"
@@ -528,13 +537,8 @@ export default {
data-testid="ci-variable-delete-button"
>{{ $options.i18n.deleteVariable }}</gl-button
>
- <gl-button
- category="primary"
- variant="confirm"
- :disabled="!canSubmit"
- data-testid="ci-variable-confirm-button"
- @click="submit"
- >{{ modalActionText }}
+ <gl-button category="secondary" class="gl-mr-3" data-testid="cancel-button" @click="close"
+ >{{ $options.i18n.cancel }}
</gl-button>
</div>
</gl-drawer>
diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue
index 011a424b6c2..609b8523612 100644
--- a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue
+++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue
@@ -3,11 +3,13 @@ import { createAlert } from '~/alert';
import { __ } from '~/locale';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { reportToSentry } from '~/ci/utils';
-import { mapEnvironmentNames } from '../utils';
+import {
+ ENVIRONMENT_QUERY_LIMIT,
+ mapEnvironmentNames,
+} from '~/ci/common/private/ci_environments_dropdown';
import {
ADD_MUTATION_ACTION,
DELETE_MUTATION_ACTION,
- ENVIRONMENT_QUERY_LIMIT,
SORT_DIRECTIONS,
UPDATE_MUTATION_ACTION,
mapMutationActionToToast,
diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue
index 86287d586ec..901bd39930a 100644
--- a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue
+++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue
@@ -15,13 +15,13 @@ import {
} from '@gitlab/ui';
import { __, s__, sprintf } from '~/locale';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
+import { convertEnvironmentScope } from '~/ci/common/private/ci_environments_dropdown';
import {
DEFAULT_EXCEEDS_VARIABLE_LIMIT_TEXT,
EXCEEDS_VARIABLE_LIMIT_TEXT,
MAXIMUM_VARIABLE_LIMIT_REACHED,
variableTypes,
} from '../constants';
-import { convertEnvironmentScope } from '../utils';
export default {
defaultFields: [
diff --git a/app/assets/javascripts/ci/ci_variable_list/constants.js b/app/assets/javascripts/ci/ci_variable_list/constants.js
index 4ec7333f465..c4f92fed829 100644
--- a/app/assets/javascripts/ci/ci_variable_list/constants.js
+++ b/app/assets/javascripts/ci/ci_variable_list/constants.js
@@ -1,7 +1,5 @@
import { __, s__, sprintf } from '~/locale';
-export const ENVIRONMENT_QUERY_LIMIT = 30;
-
export const MASKED_VALUE_MIN_LENGTH = 8;
export const WHITESPACE_REG_EX = /\s/;
@@ -15,18 +13,13 @@ export const variableTypes = {
fileType: 'FILE',
};
-export const allEnvironments = {
- type: '*',
- text: __('All (default)'),
-};
-
export const variableOptions = [
{ value: variableTypes.envType, text: __('Variable (default)') },
{ value: variableTypes.fileType, text: __('File') },
];
export const defaultVariableState = {
- environmentScope: allEnvironments.type,
+ environmentScope: '*',
key: '',
masked: false,
protected: false,
diff --git a/app/assets/javascripts/ci/common/private/ci_environments_dropdown.js b/app/assets/javascripts/ci/common/private/ci_environments_dropdown.js
new file mode 100644
index 00000000000..f8958f9600c
--- /dev/null
+++ b/app/assets/javascripts/ci/common/private/ci_environments_dropdown.js
@@ -0,0 +1,9 @@
+import CiEnvironmentsDropdown from '~/ci/ci_environments_dropdown/ci_environments_dropdown.vue';
+
+export default CiEnvironmentsDropdown;
+
+export { getGroupEnvironments } from '~/ci/ci_environments_dropdown/graphql/queries/group_environments.query.graphql';
+export { getProjectEnvironments } from '~/ci/ci_environments_dropdown/graphql/queries/project_environments.query.graphql';
+
+export { ENVIRONMENT_QUERY_LIMIT } from '~/ci/ci_environments_dropdown/constants';
+export * from '~/ci/ci_environments_dropdown/utils';
diff --git a/app/assets/javascripts/ci/pipeline_details/constants.js b/app/assets/javascripts/ci/pipeline_details/constants.js
index 51d0e980e78..90e723ea442 100644
--- a/app/assets/javascripts/ci/pipeline_details/constants.js
+++ b/app/assets/javascripts/ci/pipeline_details/constants.js
@@ -5,7 +5,7 @@ export const SUPPORTED_FILTER_PARAMETERS = ['username', 'ref', 'status', 'source
export const NEEDS_PROPERTY = 'needs';
export const EXPLICIT_NEEDS_PROPERTY = 'previousStageJobsOrNeeds';
-export const TestStatus = {
+export const testStatus = {
FAILED: 'failed',
SKIPPED: 'skipped',
SUCCESS: 'success',
diff --git a/app/assets/javascripts/ci/pipeline_details/stores/test_reports/utils.js b/app/assets/javascripts/ci/pipeline_details/stores/test_reports/utils.js
index e3984685094..87081e61e48 100644
--- a/app/assets/javascripts/ci/pipeline_details/stores/test_reports/utils.js
+++ b/app/assets/javascripts/ci/pipeline_details/stores/test_reports/utils.js
@@ -1,6 +1,6 @@
import { __, sprintf } from '~/locale';
import { parseSeconds, stringifyTime } from '~/lib/utils/datetime_utility';
-import { TestStatus } from '../../constants';
+import { testStatus } from '../../constants';
/**
* Removes `./` from the beginning of a file path so it can be appended onto a blob path
@@ -13,15 +13,15 @@ export function formatFilePath(file) {
export function iconForTestStatus(status) {
switch (status) {
- case TestStatus.SUCCESS:
+ case testStatus.SUCCESS:
return 'status_success';
- case TestStatus.FAILED:
+ case testStatus.FAILED:
return 'status_failed';
- case TestStatus.ERROR:
+ case testStatus.ERROR:
return 'status_warning';
- case TestStatus.SKIPPED:
+ case testStatus.SKIPPED:
return 'status_skipped';
- case TestStatus.UNKNOWN:
+ case testStatus.UNKNOWN:
default:
return 'status_notfound';
}
diff --git a/app/assets/javascripts/ci/pipeline_details/test_reports/test_reports.vue b/app/assets/javascripts/ci/pipeline_details/test_reports/test_reports.vue
index 6e9a705c046..5fd9f7cfd4f 100644
--- a/app/assets/javascripts/ci/pipeline_details/test_reports/test_reports.vue
+++ b/app/assets/javascripts/ci/pipeline_details/test_reports/test_reports.vue
@@ -2,7 +2,12 @@
import { GlLoadingIcon } from '@gitlab/ui';
// eslint-disable-next-line no-restricted-imports
import { mapActions, mapGetters, mapState } from 'vuex';
-import { getParameterValues } from '~/lib/utils/url_utility';
+import {
+ getParameterValues,
+ updateHistory,
+ setUrlParams,
+ removeParams,
+} from '~/lib/utils/url_utility';
import EmptyState from './empty_state.vue';
import TestSuiteTable from './test_suite_table.vue';
import TestSummary from './test_summary.vue';
@@ -49,12 +54,28 @@ export default {
]),
summaryBackClick() {
this.removeSelectedSuiteIndex();
+
+ updateHistory({
+ url: removeParams(['job_name']),
+ title: document.title,
+ replace: true,
+ });
},
summaryTableRowClick(index) {
this.setSelectedSuiteIndex(index);
// Fetch the test suite when the user clicks to see more details
this.fetchTestSuite(index);
+
+ const urlParams = {
+ job_name: this.getSelectedSuite.name,
+ };
+
+ updateHistory({
+ url: setUrlParams(urlParams),
+ title: document.title,
+ replace: true,
+ });
},
beforeEnterTransition() {
document.documentElement.style.overflowX = 'hidden';
diff --git a/app/assets/javascripts/ci/pipeline_editor/components/validate/ci_validate.vue b/app/assets/javascripts/ci/pipeline_editor/components/validate/ci_validate.vue
index 1d152a63407..a6e679e6d4e 100644
--- a/app/assets/javascripts/ci/pipeline_editor/components/validate/ci_validate.vue
+++ b/app/assets/javascripts/ci/pipeline_editor/components/validate/ci_validate.vue
@@ -13,6 +13,7 @@ import {
} from '@gitlab/ui';
import { s__, __ } from '~/locale';
import Tracking from '~/tracking';
+import { helpPagePath } from '~/helpers/help_page_helper';
import { pipelineEditorTrackingOptions } from '../../constants';
import ValidatePipelinePopover from '../popovers/validate_pipeline_popover.vue';
import CiLintResults from '../lint/ci_lint_results.vue';
@@ -189,6 +190,7 @@ export default {
},
i18n,
BASE_CLASSES,
+ lintHref: helpPagePath('ci/lint.md'),
};
</script>
@@ -290,7 +292,7 @@ export default {
<code>{{ content }}</code>
</template>
<template #link="{ content }">
- <gl-link target="_blank" href="#">{{ content }}</gl-link>
+ <gl-link target="_blank" :href="$options.lintHref">{{ content }}</gl-link>
</template>
</gl-sprintf>
</gl-alert>
diff --git a/app/assets/javascripts/ci/runner/components/cells/runner_status_cell.vue b/app/assets/javascripts/ci/runner/components/cells/runner_status_cell.vue
index e287e4e17d1..63957d9b7fc 100644
--- a/app/assets/javascripts/ci/runner/components/cells/runner_status_cell.vue
+++ b/app/assets/javascripts/ci/runner/components/cells/runner_status_cell.vue
@@ -33,16 +33,13 @@ export default {
</script>
<template>
- <div>
+ <div class="gl-display-flex gl-flex-wrap gl-gap-2">
<runner-status-badge
:contacted-at="contactedAt"
:status="status"
- class="gl-display-inline-block gl-max-w-full gl-text-truncate"
- />
- <runner-paused-badge
- v-if="paused"
- class="gl-display-inline-block gl-max-w-full gl-text-truncate"
+ class="gl-max-w-full gl-text-truncate"
/>
+ <runner-paused-badge v-if="paused" class="gl-max-w-full gl-text-truncate" />
<slot :runner="runner" name="runner-job-status-badge"></slot>
</div>
</template>
diff --git a/app/assets/javascripts/ci/runner/components/runner_job_status_badge.vue b/app/assets/javascripts/ci/runner/components/runner_job_status_badge.vue
index bed592e3f30..0dc23882cdc 100644
--- a/app/assets/javascripts/ci/runner/components/runner_job_status_badge.vue
+++ b/app/assets/javascripts/ci/runner/components/runner_job_status_badge.vue
@@ -26,12 +26,12 @@ export default {
switch (this.jobStatus) {
case JOB_STATUS_RUNNING:
return {
- classes: 'gl-text-blue-600! gl-border gl-border-blue-600!',
+ classes: 'gl-text-blue-600! gl-inset-border-1-gray-400 gl-border-blue-600!',
label: I18N_JOB_STATUS_RUNNING,
};
case JOB_STATUS_IDLE:
return {
- classes: 'gl-text-gray-700! gl-border gl-border-gray-500!',
+ classes: 'gl-text-gray-700! gl-inset-border-1-gray-400 gl-border-gray-500!',
label: I18N_JOB_STATUS_IDLE,
};
default:
@@ -45,7 +45,7 @@ export default {
<gl-badge
v-if="badge"
v-bind="$attrs"
- class="gl-display-inline-block gl-max-w-full gl-text-truncate gl-bg-transparent!"
+ class="gl-max-w-full gl-text-truncate gl-bg-transparent!"
variant="muted"
:class="badge.classes"
>
diff --git a/app/assets/javascripts/clusters/agents/components/show.vue b/app/assets/javascripts/clusters/agents/components/show.vue
index 9d7d68ee31c..c1a6f7e0800 100644
--- a/app/assets/javascripts/clusters/agents/components/show.vue
+++ b/app/assets/javascripts/clusters/agents/components/show.vue
@@ -161,6 +161,8 @@ export default {
</div>
</div>
</gl-tab>
+
+ <slot name="ee-workspaces-tab" :agent-name="agentName" :project-path="projectPath"></slot>
</gl-tabs>
</template>
diff --git a/app/assets/javascripts/comment_templates/components/form.vue b/app/assets/javascripts/comment_templates/components/form.vue
index 5a5d221591a..0e92f20f0c1 100644
--- a/app/assets/javascripts/comment_templates/components/form.vue
+++ b/app/assets/javascripts/comment_templates/components/form.vue
@@ -1,11 +1,12 @@
<!-- eslint-disable vue/multi-word-component-names -->
<script>
import { GlButton, GlForm, GlFormGroup, GlFormInput, GlAlert } from '@gitlab/ui';
-import MarkdownField from '~/vue_shared/components/markdown/field.vue';
+import MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';
import { helpPagePath } from '~/helpers/help_page_helper';
import { logError } from '~/lib/logger';
import { __ } from '~/locale';
import { InternalEvents } from '~/tracking';
+import Api from '~/api';
import createSavedReplyMutation from '../queries/create_saved_reply.mutation.graphql';
import updateSavedReplyMutation from '../queries/update_saved_reply.mutation.graphql';
@@ -16,7 +17,7 @@ export default {
GlFormGroup,
GlFormInput,
GlAlert,
- MarkdownField,
+ MarkdownEditor,
},
mixins: [InternalEvents.mixin()],
props: {
@@ -45,6 +46,14 @@ export default {
name: this.name,
content: this.content,
},
+ formFieldProps: {
+ id: 'comment-template-content',
+ name: 'comment-template-content',
+ 'aria-label': __('Content'),
+ placeholder: __('Write comment template content here…'),
+ 'data-testid': 'comment-template-content-input',
+ class: 'note-textarea js-gfm-input js-autosize markdown-area',
+ },
};
},
computed: {
@@ -61,6 +70,9 @@ export default {
isValid() {
return this.isNameValid && this.isContentValid;
},
+ markdownPath() {
+ return Api.buildUrl(Api.markdownPath);
+ },
},
methods: {
onCancel() {
@@ -116,7 +128,6 @@ export default {
});
},
},
- restrictedToolbarItems: ['full-screen'],
markdownDocsPath: helpPagePath('user/markdown'),
};
</script>
@@ -156,30 +167,19 @@ export default {
data-testid="comment-template-content-form-group"
class="gl-lg-max-w-80p"
>
- <markdown-field
- :enable-preview="false"
+ <markdown-editor
+ v-model="updateCommentTemplate.content"
+ class="js-no-autosize"
:is-submitting="saving"
- :add-spacing-classes="false"
- :textarea-value="updateCommentTemplate.content"
+ :disable-attachments="true"
+ :render-markdown-path="markdownPath"
:markdown-docs-path="$options.markdownDocsPath"
+ :form-field-props="formFieldProps"
:restricted-tool-bar-items="$options.restrictedToolbarItems"
:force-autosize="false"
- class="js-no-autosize gl-border-gray-400!"
- >
- <template #textarea>
- <textarea
- v-model="updateCommentTemplate.content"
- dir="auto"
- class="note-textarea js-gfm-input js-autosize markdown-area"
- data-supports-quick-actions="false"
- :aria-label="__('Content')"
- :placeholder="__('Write comment template content here…')"
- data-testid="comment-template-content-input"
- @keydown.meta.enter="onSubmit"
- @keydown.ctrl.enter="onSubmit"
- ></textarea>
- </template>
- </markdown-field>
+ @keydown.meta.enter="onSubmit"
+ @keydown.ctrl.enter="onSubmit"
+ />
</gl-form-group>
<gl-button
variant="confirm"
diff --git a/app/assets/javascripts/commit/components/signature_badge.vue b/app/assets/javascripts/commit/components/signature_badge.vue
index edc7c9d2f96..dc6d2df22b7 100644
--- a/app/assets/javascripts/commit/components/signature_badge.vue
+++ b/app/assets/javascripts/commit/components/signature_badge.vue
@@ -1,7 +1,7 @@
<script>
import { GlBadge, GlLink, GlPopover } from '@gitlab/ui';
import { helpPagePath } from '~/helpers/help_page_helper';
-import { typeConfig, statusConfig } from '../constants';
+import { typeConfig, statusConfig } from 'ee_else_ce/commit/constants';
import X509CertificateDetails from './x509_certificate_details.vue';
export default {
diff --git a/app/assets/javascripts/commit/constants.js b/app/assets/javascripts/commit/constants.js
index e28009ab996..9eba316b371 100644
--- a/app/assets/javascripts/commit/constants.js
+++ b/app/assets/javascripts/commit/constants.js
@@ -11,6 +11,7 @@ export const verificationStatuses = {
SAME_USER_DIFFERENT_EMAIL: 'SAME_USER_DIFFERENT_EMAIL',
MULTIPLE_SIGNATURES: 'MULTIPLE_SIGNATURES',
REVOKED_KEY: 'REVOKED_KEY',
+ VERIFIED_SYSTEM: 'VERIFIED_SYSTEM',
};
export const signatureTypes = {
@@ -28,15 +29,25 @@ const UNVERIFIED_CONFIG = {
description: __('This commit was signed with an unverified signature.'),
};
+export const VERIFIED_CONFIG = {
+ variant: 'success',
+ label: __('Verified'),
+ title: __('Verified commit'),
+};
+
export const statusConfig = {
[verificationStatuses.VERIFIED]: {
- variant: 'success',
- label: __('Verified'),
- title: __('Verified commit'),
+ ...VERIFIED_CONFIG,
description: __(
'This commit was signed with a verified signature and the committer email was verified to belong to the same user.',
),
},
+ [verificationStatuses.VERIFIED_SYSTEM]: {
+ ...VERIFIED_CONFIG,
+ description: __(
+ 'This commit was created in the GitLab UI, and signed with a GitLab-verified signature.',
+ ),
+ },
[verificationStatuses.UNVERIFIED]: {
...UNVERIFIED_CONFIG,
},
diff --git a/app/assets/javascripts/content_editor/components/wrappers/image.vue b/app/assets/javascripts/content_editor/components/wrappers/image.vue
index 0b80802d993..b7031a4885c 100644
--- a/app/assets/javascripts/content_editor/components/wrappers/image.vue
+++ b/app/assets/javascripts/content_editor/components/wrappers/image.vue
@@ -1,5 +1,6 @@
<script>
import { NodeViewWrapper } from '@tiptap/vue-2';
+import { uploadingStates } from '../../services/upload_helpers';
export default {
name: 'ImageWrapper',
@@ -30,6 +31,12 @@ export default {
dragData: {},
};
},
+ computed: {
+ isStaleUploadedImage() {
+ const { uploading } = this.node.attrs;
+ return uploading && uploadingStates[uploading];
+ },
+ },
mounted() {
document.addEventListener('mousemove', this.onDrag);
document.addEventListener('mouseup', this.onDragEnd);
@@ -80,7 +87,11 @@ export default {
};
</script>
<template>
- <node-view-wrapper as="span" class="gl-relative gl-display-inline-block">
+ <node-view-wrapper
+ v-if="!isStaleUploadedImage"
+ as="span"
+ class="gl-relative gl-display-inline-block"
+ >
<span
v-for="handle in $options.resizeHandles"
v-show="selected"
diff --git a/app/assets/javascripts/content_editor/components/wrappers/playable.vue b/app/assets/javascripts/content_editor/components/wrappers/playable.vue
new file mode 100644
index 00000000000..8a380f23a3f
--- /dev/null
+++ b/app/assets/javascripts/content_editor/components/wrappers/playable.vue
@@ -0,0 +1,62 @@
+<script>
+import { GlLink } from '@gitlab/ui';
+import { NodeViewWrapper, NodeViewContent } from '@tiptap/vue-2';
+import { uploadingStates } from '../../services/upload_helpers';
+
+export default {
+ name: 'PlayableWrapper',
+ components: {
+ NodeViewWrapper,
+ NodeViewContent,
+ GlLink,
+ },
+ props: {
+ getPos: {
+ type: Function,
+ required: true,
+ },
+ editor: {
+ type: Object,
+ required: true,
+ },
+ node: {
+ type: Object,
+ required: true,
+ },
+ selected: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ },
+ data() {
+ return {
+ dragData: {},
+ };
+ },
+ computed: {
+ isStaleUploadedMedia() {
+ const { uploading } = this.node.attrs;
+ return uploading && uploadingStates[uploading];
+ },
+ },
+};
+</script>
+<template>
+ <node-view-wrapper
+ v-if="!isStaleUploadedMedia"
+ as="span"
+ :class="`media-container ${node.type.name}-container`"
+ >
+ <node-view-content
+ :as="node.type.name"
+ :src="node.attrs.src"
+ controls="true"
+ data-setup="{}"
+ :data-title="node.attrs.title || node.attrs.alt"
+ />
+ <gl-link :href="node.attrs.src" class="with-attachment-icon" target="_blank">
+ {{ node.attrs.title || node.attrs.alt }}
+ </gl-link>
+ </node-view-wrapper>
+</template>
diff --git a/app/assets/javascripts/content_editor/components/wrappers/table_cell_base.vue b/app/assets/javascripts/content_editor/components/wrappers/table_cell_base.vue
index e7a1b058341..11ac024b799 100644
--- a/app/assets/javascripts/content_editor/components/wrappers/table_cell_base.vue
+++ b/app/assets/javascripts/content_editor/components/wrappers/table_cell_base.vue
@@ -7,7 +7,7 @@ import { __, n__ } from '~/locale';
const TABLE_CELL_HEADER = 'th';
const TABLE_CELL_BODY = 'td';
-function getDropdownItems({ selectedRect, cellType, rowspan = 1, colspan = 1 }) {
+function getDropdownItems({ selectedRect, cellType, rowspan = 1, colspan = 1, align = 'left' }) {
const totalRows = selectedRect?.map.height;
const totalCols = selectedRect?.map.width;
const isTableBodyCell = cellType === TABLE_CELL_BODY;
@@ -20,9 +20,21 @@ function getDropdownItems({ selectedRect, cellType, rowspan = 1, colspan = 1 })
const showDeleteRowOption = totalRows > selectedRows + 1 && isTableBodyCell;
const showDeleteColumnOption = totalCols > selectedCols;
+ const isTableBodyHeader = cellType === TABLE_CELL_HEADER;
+ const showAlignLeftOption = isTableBodyHeader && (align === 'center' || align === 'right');
+ const showAlignCenterOption = isTableBodyHeader && align !== 'center';
+ const showAlignRightOption = isTableBodyHeader && align !== 'right';
+
return [
{
items: [
+ showAlignLeftOption && { text: __('Align column left'), value: 'alignColumnLeft' },
+ showAlignCenterOption && { text: __('Align column center'), value: 'alignColumnCenter' },
+ showAlignRightOption && { text: __('Align column right'), value: 'alignColumnRight' },
+ ].filter(Boolean),
+ },
+ {
+ items: [
{ text: __('Insert column before'), value: 'addColumnBefore' },
{ text: __('Insert column after'), value: 'addColumnAfter' },
isTableBodyCell && { text: __('Insert row before'), value: 'addRowBefore' },
@@ -93,6 +105,7 @@ export default {
cellType: this.cellType,
rowspan: this.node.attrs.rowspan,
colspan: this.node.attrs.colspan,
+ align: this.node.attrs.align,
});
},
},
@@ -129,7 +142,7 @@ export default {
runCommand({ value: command }) {
this.hideDropdown();
- this.editor.chain()[command]().run();
+ this.editor.chain()[command](this.getPos()).run();
},
hideDropdown() {
@@ -143,6 +156,7 @@ export default {
:as="cellType"
:rowspan="node.attrs.rowspan || 1"
:colspan="node.attrs.colspan || 1"
+ :align="node.attrs.align || 'left'"
dir="auto"
class="gl-m-0! gl-p-0! gl-relative"
@click="hideDropdown"
@@ -168,6 +182,10 @@ export default {
@action="runCommand"
/>
</span>
- <node-view-content as="div" class="gl-p-5 gl-min-w-10" />
+ <node-view-content
+ as="div"
+ class="gl-p-5 gl-min-w-10"
+ :style="{ 'text-align': node.attrs.align || 'left' }"
+ />
</node-view-wrapper>
</template>
diff --git a/app/assets/javascripts/content_editor/extensions/copy_paste.js b/app/assets/javascripts/content_editor/extensions/copy_paste.js
index 23f2da7bc28..1164e7ead33 100644
--- a/app/assets/javascripts/content_editor/extensions/copy_paste.js
+++ b/app/assets/javascripts/content_editor/extensions/copy_paste.js
@@ -172,6 +172,8 @@ export default Extension.create({
return true;
}
+ if (!textContent) return false;
+
const hasHTML = clipboardData.types.some((type) => type === HTML_FORMAT);
const hasVsCode = clipboardData.types.some((type) => type === VS_CODE_FORMAT);
const vsCodeMeta = hasVsCode ? JSON.parse(clipboardData.getData(VS_CODE_FORMAT)) : {};
diff --git a/app/assets/javascripts/content_editor/extensions/playable.js b/app/assets/javascripts/content_editor/extensions/playable.js
index 47766c966a1..7726e0b6572 100644
--- a/app/assets/javascripts/content_editor/extensions/playable.js
+++ b/app/assets/javascripts/content_editor/extensions/playable.js
@@ -1,4 +1,6 @@
import { Node } from '@tiptap/core';
+import { VueNodeViewRenderer } from '@tiptap/vue-2';
+import PlayableWrapper from '../components/wrappers/playable.vue';
const queryPlayableElement = (element, mediaType) => element.querySelector(mediaType);
@@ -58,7 +60,6 @@ export default Node.create({
controls: true,
'data-setup': '{}',
'data-title': node.attrs.alt,
- ...this.extraElementAttrs,
},
],
[
@@ -68,4 +69,8 @@ export default Node.create({
],
];
},
+
+ addNodeView() {
+ return VueNodeViewRenderer(PlayableWrapper);
+ },
});
diff --git a/app/assets/javascripts/content_editor/extensions/table_cell.js b/app/assets/javascripts/content_editor/extensions/table_cell.js
index 9f437ce066c..53dba4fd960 100644
--- a/app/assets/javascripts/content_editor/extensions/table_cell.js
+++ b/app/assets/javascripts/content_editor/extensions/table_cell.js
@@ -5,6 +5,17 @@ import TableCellBodyWrapper from '../components/wrappers/table_cell_body.vue';
export default TableCell.extend({
content: 'block+',
+ addAttributes() {
+ return {
+ ...this.parent?.(),
+ align: {
+ default: 'left',
+ parseHTML: (element) => element.getAttribute('align') || element.style.textAlign || 'left',
+ renderHTML: () => '',
+ },
+ };
+ },
+
addNodeView() {
return VueNodeViewRenderer(TableCellBodyWrapper);
},
diff --git a/app/assets/javascripts/content_editor/extensions/table_header.js b/app/assets/javascripts/content_editor/extensions/table_header.js
index 045fd03199b..ca2a0eb5cfd 100644
--- a/app/assets/javascripts/content_editor/extensions/table_header.js
+++ b/app/assets/javascripts/content_editor/extensions/table_header.js
@@ -1,9 +1,45 @@
import { TableHeader } from '@tiptap/extension-table-header';
import { VueNodeViewRenderer } from '@tiptap/vue-2';
+import { CellSelection } from '@tiptap/pm/tables';
import TableCellHeaderWrapper from '../components/wrappers/table_cell_header.vue';
export default TableHeader.extend({
content: 'block+',
+
+ addAttributes() {
+ return {
+ ...this.parent?.(),
+ align: {
+ default: 'left',
+ parseHTML: (element) => element.getAttribute('align') || element.style.textAlign || 'left',
+ renderHTML: () => '',
+ },
+ };
+ },
+
+ addCommands() {
+ return {
+ ...this.parent?.(),
+ alignColumn: (pos, align) => ({ commands }) => {
+ commands.selectColumn(pos);
+ commands.updateAttributes('tableHeader', { align });
+ commands.updateAttributes('tableCell', { align });
+ },
+ alignColumnLeft: (pos) => ({ commands }) => commands.alignColumn(pos, 'left'),
+ alignColumnCenter: (pos) => ({ commands }) => commands.alignColumn(pos, 'center'),
+ alignColumnRight: (pos) => ({ commands }) => commands.alignColumn(pos, 'right'),
+ selectColumn: (pos) => ({ tr, dispatch }) => {
+ if (dispatch) {
+ const position = tr.doc.resolve(pos);
+ const colSelection = CellSelection.colSelection(position);
+ tr.setSelection(colSelection);
+ }
+
+ return true;
+ },
+ };
+ },
+
addNodeView() {
return VueNodeViewRenderer(TableCellHeaderWrapper);
},
diff --git a/app/assets/javascripts/content_editor/extensions/task_item.js b/app/assets/javascripts/content_editor/extensions/task_item.js
index 849fd55034e..1e19878be9b 100644
--- a/app/assets/javascripts/content_editor/extensions/task_item.js
+++ b/app/assets/javascripts/content_editor/extensions/task_item.js
@@ -19,9 +19,17 @@ export default TaskItem.extend({
return checkbox?.checked;
},
- renderHTML: (attributes) => ({
- 'data-checked': attributes.checked,
- }),
+ renderHTML: (attributes) => attributes.checked && { 'data-checked': true },
+ keepOnSplit: false,
+ },
+ inapplicable: {
+ default: false,
+ parseHTML: (element) => {
+ const checkbox = element.querySelector('input[type=checkbox].task-list-item-checkbox');
+
+ return typeof checkbox?.dataset.inapplicable !== 'undefined';
+ },
+ renderHTML: (attributes) => attributes.inapplicable && { 'data-inapplicable': true },
keepOnSplit: false,
},
};
@@ -33,6 +41,24 @@ export default TaskItem.extend({
tag: 'li.task-list-item',
priority: PARSE_HTML_PRIORITY_HIGHEST,
},
+ {
+ tag: 'li.task-list-item.inapplicable s',
+ skip: true,
+ priority: PARSE_HTML_PRIORITY_HIGHEST,
+ },
];
},
+
+ addNodeView() {
+ const nodeView = this.parent?.();
+ return ({ node, ...args }) => {
+ const nodeViewInstance = nodeView({ node, ...args });
+
+ if (node.attrs.inapplicable) {
+ nodeViewInstance.dom.querySelector('input[type=checkbox]').disabled = true;
+ }
+
+ return nodeViewInstance;
+ };
+ },
});
diff --git a/app/assets/javascripts/content_editor/extensions/video.js b/app/assets/javascripts/content_editor/extensions/video.js
index 312e8cd5ff6..fa9fa866137 100644
--- a/app/assets/javascripts/content_editor/extensions/video.js
+++ b/app/assets/javascripts/content_editor/extensions/video.js
@@ -6,7 +6,6 @@ export default Playable.extend({
return {
...this.parent?.(),
mediaType: 'video',
- extraElementAttrs: { width: '400' },
};
},
});
diff --git a/app/assets/javascripts/content_editor/services/markdown_serializer.js b/app/assets/javascripts/content_editor/services/markdown_serializer.js
index 972b4acf523..3b759de57f2 100644
--- a/app/assets/javascripts/content_editor/services/markdown_serializer.js
+++ b/app/assets/javascripts/content_editor/services/markdown_serializer.js
@@ -228,7 +228,11 @@ const defaultSerializerConfig = {
[TableHeader.name]: renderTableCell,
[TableRow.name]: renderTableRow,
[TaskItem.name]: preserveUnchanged((state, node) => {
- state.write(`[${node.attrs.checked ? 'x' : ' '}] `);
+ let symbol = ' ';
+ if (node.attrs.inapplicable) symbol = '~';
+ else if (node.attrs.checked) symbol = 'x';
+
+ state.write(`[${symbol}] `);
if (!node.textContent) state.write('&nbsp;');
state.renderContent(node);
}),
diff --git a/app/assets/javascripts/content_editor/services/markdown_sourcemap.js b/app/assets/javascripts/content_editor/services/markdown_sourcemap.js
index a4abb8dcf38..de230c370b1 100644
--- a/app/assets/javascripts/content_editor/services/markdown_sourcemap.js
+++ b/app/assets/javascripts/content_editor/services/markdown_sourcemap.js
@@ -24,19 +24,23 @@ const getRangeFromSourcePos = (sourcePos) => {
export const getMarkdownSource = (element) => {
if (!element.dataset.sourcepos) return undefined;
- const source = getFullSource(element);
- const range = getRangeFromSourcePos(element.dataset.sourcepos);
- let elSource = '';
-
- if (!source.length) return undefined;
-
- for (let i = range.start.row; i <= range.end.row; i += 1) {
- if (i === range.start.row) {
- elSource += source[i].substring(range.start.col);
- } else {
- elSource += `\n${source[i]}` || '';
+ try {
+ const source = getFullSource(element);
+ const range = getRangeFromSourcePos(element.dataset.sourcepos);
+ let elSource = '';
+
+ if (!source.length) return undefined;
+
+ for (let i = range.start.row; i <= range.end.row; i += 1) {
+ if (i === range.start.row) {
+ elSource += source[i].substring(range.start.col);
+ } else {
+ elSource += `\n${source[i]}` || '';
+ }
}
- }
- return elSource.trim();
+ return elSource.trim();
+ } catch {
+ return undefined;
+ }
};
diff --git a/app/assets/javascripts/content_editor/services/serialization_helpers.js b/app/assets/javascripts/content_editor/services/serialization_helpers.js
index 87959a44560..7a2fbf8fcab 100644
--- a/app/assets/javascripts/content_editor/services/serialization_helpers.js
+++ b/app/assets/javascripts/content_editor/services/serialization_helpers.js
@@ -2,8 +2,8 @@ import { uniq, isString, omit, isFunction } from 'lodash';
import { removeLastSlashInUrlPath, removeUrlProtocol } from '../../lib/utils/url_utility';
const defaultAttrs = {
- td: { colspan: 1, rowspan: 1, colwidth: null },
- th: { colspan: 1, rowspan: 1, colwidth: null },
+ td: { colspan: 1, rowspan: 1, colwidth: null, align: 'left' },
+ th: { colspan: 1, rowspan: 1, colwidth: null, align: 'left' },
};
const defaultIgnoreAttrs = ['sourceMarkdown', 'sourceMapKey'];
@@ -649,6 +649,9 @@ export const link = {
const { canonicalSrc, href, title, sourceMarkdown } = mark.attrs;
+ // eslint-disable-next-line @gitlab/require-i18n-strings
+ if (href.startsWith('data:') || href.startsWith('blob:')) return '';
+
if (linkType(sourceMarkdown) === LINK_MARKDOWN) {
return '[';
}
@@ -668,6 +671,9 @@ export const link = {
const { canonicalSrc, href, title, sourceMarkdown, isReference } = mark.attrs;
+ // eslint-disable-next-line @gitlab/require-i18n-strings
+ if (href.startsWith('data:') || href.startsWith('blob:')) return '';
+
if (isReference) {
return `][${state.esc(canonicalSrc || href || '')}]`;
}
diff --git a/app/assets/javascripts/content_editor/services/upload_helpers.js b/app/assets/javascripts/content_editor/services/upload_helpers.js
index f5785397bf0..960f28747b0 100644
--- a/app/assets/javascripts/content_editor/services/upload_helpers.js
+++ b/app/assets/javascripts/content_editor/services/upload_helpers.js
@@ -133,6 +133,8 @@ export const uploadFile = ({ uploadsPath, renderMarkdown, file }) => {
});
};
+export const uploadingStates = {};
+
const uploadMedia = async ({ type, editor, file, uploadsPath, renderMarkdown, eventHub }) => {
// needed to avoid mismatched transaction error
await Promise.resolve();
@@ -170,6 +172,8 @@ const uploadMedia = async ({ type, editor, file, uploadsPath, renderMarkdown, ev
// the position might have changed while uploading, so we need to find it again
position = findUploadedFilePosition(editor, file.name);
+ uploadingStates[file.name] = true;
+
editor.view.dispatch(
editor.state.tr.setMeta('preventAutolink', true).setNodeMarkup(position, undefined, {
uploading: false,
@@ -200,6 +204,8 @@ const uploadAttachment = async ({ editor, file, uploadsPath, renderMarkdown, eve
const { selection } = editor.view.state;
const currentNode = selection.$to.node();
+ uploadingStates[file.name] = true;
+
let position = selection.to;
let content = {
type: 'text',
diff --git a/app/assets/javascripts/deploy_keys/components/action_btn.vue b/app/assets/javascripts/deploy_keys/components/action_btn.vue
index 7bc1eb5d652..4a2da487e9b 100644
--- a/app/assets/javascripts/deploy_keys/components/action_btn.vue
+++ b/app/assets/javascripts/deploy_keys/components/action_btn.vue
@@ -1,6 +1,5 @@
<script>
import { GlButton } from '@gitlab/ui';
-import eventHub from '../eventhub';
export default {
components: {
@@ -11,10 +10,6 @@ export default {
type: Object,
required: true,
},
- type: {
- type: String,
- required: true,
- },
category: {
type: String,
required: false,
@@ -30,6 +25,10 @@ export default {
required: false,
default: '',
},
+ mutation: {
+ type: Object,
+ required: true,
+ },
},
data() {
return {
@@ -39,10 +38,15 @@ export default {
methods: {
doAction() {
this.isLoading = true;
-
- eventHub.$emit(`${this.type}.key`, this.deployKey, () => {
- this.isLoading = false;
- });
+ this.$apollo
+ .mutate({
+ mutation: this.mutation,
+ variables: { id: this.deployKey.id },
+ })
+ .catch((error) => this.$emit('error', error))
+ .finally(() => {
+ this.isLoading = false;
+ });
},
},
};
@@ -50,6 +54,7 @@ export default {
<template>
<gl-button
+ v-bind="$attrs"
:category="category"
:variant="variant"
:icon="icon"
diff --git a/app/assets/javascripts/deploy_keys/components/app.vue b/app/assets/javascripts/deploy_keys/components/app.vue
index ec17bbea48f..7168a209b52 100644
--- a/app/assets/javascripts/deploy_keys/components/app.vue
+++ b/app/assets/javascripts/deploy_keys/components/app.vue
@@ -1,11 +1,18 @@
<script>
-import { GlButton, GlIcon, GlLoadingIcon } from '@gitlab/ui';
+import { GlButton, GlIcon, GlLoadingIcon, GlPagination } from '@gitlab/ui';
import { createAlert } from '~/alert';
-import { s__ } from '~/locale';
+import { s__, __, sprintf } from '~/locale';
+import { captureException } from '~/sentry/sentry_browser_wrapper';
+import pageInfoQuery from '~/graphql_shared/client/page_info.query.graphql';
import NavigationTabs from '~/vue_shared/components/navigation_tabs.vue';
-import eventHub from '../eventhub';
-import DeployKeysService from '../service';
-import DeployKeysStore from '../store';
+import deployKeysQuery from '../graphql/queries/deploy_keys.query.graphql';
+import currentPageQuery from '../graphql/queries/current_page.query.graphql';
+import currentScopeQuery from '../graphql/queries/current_scope.query.graphql';
+import confirmRemoveKeyQuery from '../graphql/queries/confirm_remove_key.query.graphql';
+import updateCurrentScopeMutation from '../graphql/mutations/update_current_scope.mutation.graphql';
+import updateCurrentPageMutation from '../graphql/mutations/update_current_page.mutation.graphql';
+import confirmDisableMutation from '../graphql/mutations/confirm_action.mutation.graphql';
+import disableKeyMutation from '../graphql/mutations/disable_key.mutation.graphql';
import ConfirmModal from './confirm_modal.vue';
import KeysPanel from './keys_panel.vue';
@@ -17,120 +24,147 @@ export default {
GlButton,
GlIcon,
GlLoadingIcon,
+ GlPagination,
},
props: {
- endpoint: {
+ projectId: {
type: String,
required: true,
},
- projectId: {
+ projectPath: {
type: String,
required: true,
},
},
+ apollo: {
+ deployKeys: {
+ query: deployKeysQuery,
+ variables() {
+ return {
+ projectPath: this.projectPath,
+ scope: this.currentScope,
+ page: this.currentPage,
+ };
+ },
+ update(data) {
+ return data?.project?.deployKeys || [];
+ },
+ error(error) {
+ createAlert({
+ message: s__('DeployKeys|Error getting deploy keys'),
+ captureError: true,
+ error,
+ });
+ },
+ },
+ pageInfo: {
+ query: pageInfoQuery,
+ variables() {
+ return { input: { page: this.currentPage, scope: this.currentScope } };
+ },
+ update({ pageInfo }) {
+ return pageInfo || {};
+ },
+ },
+ currentPage: {
+ query: currentPageQuery,
+ },
+ currentScope: {
+ query: currentScopeQuery,
+ },
+ deployKeyToRemove: {
+ query: confirmRemoveKeyQuery,
+ },
+ },
data() {
return {
- currentTab: 'enabled_keys',
- isLoading: false,
- store: new DeployKeysStore(),
- removeKey: () => {},
- cancel: () => {},
- confirmModalVisible: false,
+ deployKeys: [],
+ pageInfo: {},
+ deployKeyToRemove: null,
};
},
scopes: {
- enabled_keys: s__('DeployKeys|Enabled deploy keys'),
- available_project_keys: s__('DeployKeys|Privately accessible deploy keys'),
- public_keys: s__('DeployKeys|Publicly accessible deploy keys'),
+ enabledKeys: s__('DeployKeys|Enabled deploy keys'),
+ availableProjectKeys: s__('DeployKeys|Privately accessible deploy keys'),
+ availablePublicKeys: s__('DeployKeys|Publicly accessible deploy keys'),
},
i18n: {
loading: s__('DeployKeys|Loading deploy keys'),
addButton: s__('DeployKeys|Add new key'),
+ prevPage: __('Go to previous page'),
+ nextPage: __('Go to next page'),
+ next: __('Next'),
+ prev: __('Prev'),
+ goto: (page) => sprintf(__('Go to page %{page}'), { page }),
},
computed: {
tabs() {
- return Object.keys(this.$options.scopes).map((scope) => {
- const count = Array.isArray(this.keys[scope]) ? this.keys[scope].length : null;
-
+ return Object.entries(this.$options.scopes).map(([scope, name]) => {
return {
- name: this.$options.scopes[scope],
+ name,
scope,
- isActive: scope === this.currentTab,
- count,
+ isActive: scope === this.currentScope,
};
});
},
- hasKeys() {
- return Object.keys(this.keys).length;
- },
- keys() {
- return this.store.keys;
+ confirmModalVisible() {
+ return Boolean(this.deployKeyToRemove);
},
},
- created() {
- this.service = new DeployKeysService(this.endpoint);
-
- eventHub.$on('enable.key', this.enableKey);
- eventHub.$on('remove.key', this.confirmRemoveKey);
- eventHub.$on('disable.key', this.confirmRemoveKey);
- },
- mounted() {
- this.fetchKeys();
- },
- beforeDestroy() {
- eventHub.$off('enable.key', this.enableKey);
- eventHub.$off('remove.key', this.confirmRemoveKey);
- eventHub.$off('disable.key', this.confirmRemoveKey);
- },
methods: {
- onChangeTab(tab) {
- this.currentTab = tab;
+ onChangeTab(scope) {
+ return this.$apollo
+ .mutate({
+ mutation: updateCurrentScopeMutation,
+ variables: { scope },
+ })
+ .then(() => {
+ this.$apollo.queries.deployKeys.refetch();
+ })
+ .catch((error) => {
+ captureException(error, {
+ tags: {
+ deployKeyScope: scope,
+ },
+ });
+ });
},
- fetchKeys() {
- this.isLoading = true;
-
- return this.service
- .getKeys()
- .then((data) => {
- this.isLoading = false;
- this.store.keys = data;
+ moveNext() {
+ return this.movePage('next');
+ },
+ movePrevious() {
+ return this.movePage('previous');
+ },
+ movePage(direction) {
+ return this.moveToPage(this.pageInfo[`${direction}Page`]);
+ },
+ moveToPage(page) {
+ return this.$apollo.mutate({ mutation: updateCurrentPageMutation, variables: { page } });
+ },
+ removeKey() {
+ this.$apollo
+ .mutate({
+ mutation: disableKeyMutation,
+ variables: { id: this.deployKeyToRemove.id },
+ })
+ .then(() => {
+ if (!this.deployKeys.length) {
+ return this.movePage('previous');
+ }
+ return null;
})
+ .then(() => this.$apollo.queries.deployKeys.refetch())
.catch(() => {
- this.isLoading = false;
- this.store.keys = {};
- return createAlert({
- message: s__('DeployKeys|Error getting deploy keys'),
+ createAlert({
+ message: s__('DeployKeys|Error removing deploy key'),
});
});
},
- enableKey(deployKey) {
- this.service
- .enableKey(deployKey.id)
- .then(this.fetchKeys)
- .catch(() =>
- createAlert({
- message: s__('DeployKeys|Error enabling deploy key'),
- }),
- );
- },
- confirmRemoveKey(deployKey, callback) {
- const hideModal = () => {
- this.confirmModalVisible = false;
- callback?.();
- };
- this.removeKey = () => {
- this.service
- .disableKey(deployKey.id)
- .then(this.fetchKeys)
- .then(hideModal)
- .catch(() =>
- createAlert({
- message: s__('DeployKeys|Error removing deploy key'),
- }),
- );
- };
- this.cancel = hideModal;
- this.confirmModalVisible = true;
+ cancel() {
+ this.$apollo.mutate({
+ mutation: confirmDisableMutation,
+ variables: { id: null },
+ });
},
},
};
@@ -139,47 +173,59 @@ export default {
<template>
<div class="deploy-keys">
<confirm-modal :visible="confirmModalVisible" @remove="removeKey" @cancel="cancel" />
+ <div class="gl-new-card-header gl-align-items-center gl-py-0 gl-pl-0">
+ <div class="top-area scrolling-tabs-container inner-page-scroll-tabs gl-border-b-0">
+ <div class="fade-left">
+ <gl-icon name="chevron-lg-left" :size="12" />
+ </div>
+ <div class="fade-right">
+ <gl-icon name="chevron-lg-right" :size="12" />
+ </div>
+
+ <navigation-tabs
+ :tabs="tabs"
+ scope="deployKeys"
+ class="gl-rounded-lg"
+ @onChangeTab="onChangeTab"
+ />
+ </div>
+
+ <div class="gl-new-card-actions">
+ <gl-button
+ size="small"
+ class="js-toggle-button js-toggle-content"
+ data-testid="add-new-deploy-key-button"
+ >
+ {{ $options.i18n.addButton }}
+ </gl-button>
+ </div>
+ </div>
<gl-loading-icon
- v-if="isLoading && !hasKeys"
+ v-if="$apollo.queries.deployKeys.loading"
:label="$options.i18n.loading"
- size="sm"
+ size="md"
class="gl-m-5"
/>
- <template v-else-if="hasKeys">
- <div class="gl-new-card-header gl-align-items-center gl-pt-0 gl-pb-0 gl-pl-0">
- <div class="top-area scrolling-tabs-container inner-page-scroll-tabs gl-border-b-0">
- <div class="fade-left">
- <gl-icon name="chevron-lg-left" :size="12" />
- </div>
- <div class="fade-right">
- <gl-icon name="chevron-lg-right" :size="12" />
- </div>
-
- <navigation-tabs
- :tabs="tabs"
- scope="deployKeys"
- class="gl-rounded-lg"
- @onChangeTab="onChangeTab"
- />
- </div>
-
- <div class="gl-new-card-actions">
- <gl-button
- size="small"
- class="js-toggle-button js-toggle-content"
- data-testid="add-new-deploy-key-button"
- >
- {{ $options.i18n.addButton }}
- </gl-button>
- </div>
- </div>
+ <template v-else>
<keys-panel
:project-id="projectId"
- :keys="keys[currentTab]"
- :store="store"
- :endpoint="endpoint"
+ :keys="deployKeys"
data-testid="project-deploy-keys-container"
/>
+ <gl-pagination
+ align="center"
+ :total-items="pageInfo.total"
+ :per-page="pageInfo.perPage"
+ :value="currentPage"
+ :next="$options.i18n.next"
+ :prev="$options.i18n.prev"
+ :label-previous-page="$options.i18n.prevPage"
+ :label-next-page="$options.i18n.nextPage"
+ :label-page="$options.i18n.goto"
+ @next="moveNext()"
+ @previous="movePrevious()"
+ @input="moveToPage"
+ />
</template>
</div>
</template>
diff --git a/app/assets/javascripts/deploy_keys/components/key.vue b/app/assets/javascripts/deploy_keys/components/key.vue
index 16c745d8cff..d4b140f1adb 100644
--- a/app/assets/javascripts/deploy_keys/components/key.vue
+++ b/app/assets/javascripts/deploy_keys/components/key.vue
@@ -2,8 +2,12 @@
<script>
import { GlBadge, GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';
import { head, tail } from 'lodash';
+import { createAlert } from '~/alert';
import { s__, sprintf } from '~/locale';
import timeagoMixin from '~/vue_shared/mixins/timeago';
+import currentScopeQuery from '../graphql/queries/current_scope.query.graphql';
+import enableKeyMutation from '../graphql/mutations/enable_key.mutation.graphql';
+import confirmDisableMutation from '../graphql/mutations/confirm_action.mutation.graphql';
import ActionBtn from './action_btn.vue';
@@ -23,48 +27,25 @@ export default {
type: Object,
required: true,
},
- store: {
- type: Object,
- required: true,
- },
- endpoint: {
- type: String,
- required: true,
- },
projectId: {
type: String,
required: false,
default: null,
},
},
+ apollo: {
+ currentScope: {
+ query: currentScopeQuery,
+ },
+ },
data() {
return {
projectsExpanded: false,
};
},
computed: {
- editDeployKeyPath() {
- return `${this.endpoint}/${this.deployKey.id}/edit`;
- },
projects() {
- const projects = [...this.deployKey.deploy_keys_projects];
-
- if (this.projectId !== null) {
- const indexOfCurrentProject = projects.findIndex(
- (project) =>
- project &&
- project.project &&
- project.project.id &&
- project.project.id.toString() === this.projectId,
- );
-
- if (indexOfCurrentProject > -1) {
- const currentProject = projects.splice(indexOfCurrentProject, 1);
- currentProject[0].project.full_name = s__('DeployKeys|Current project');
- return currentProject.concat(projects);
- }
- }
- return projects;
+ return this.deployKey.deployKeysProjects;
},
firstProject() {
return head(this.projects);
@@ -81,13 +62,11 @@ export default {
return sprintf(s__('DeployKeys|+%{count} others'), { count: this.restProjects.length });
},
isEnabled() {
- return this.store.isEnabled(this.deployKey.id);
+ return this.currentScope === 'enabledKeys';
},
isRemovable() {
return (
- this.store.isEnabled(this.deployKey.id) &&
- this.deployKey.destroyed_when_orphaned &&
- this.deployKey.almost_orphaned
+ this.isEnabled && this.deployKey.destroyedWhenOrphaned && this.deployKey.almostOrphaned
);
},
isExpandable() {
@@ -99,14 +78,37 @@ export default {
},
methods: {
projectTooltipTitle(project) {
- return project.can_push
+ return project.canPush
? s__('DeployKeys|Grant write permissions to this key')
: s__('DeployKeys|Read access only');
},
toggleExpanded() {
this.projectsExpanded = !this.projectsExpanded;
},
+ isCurrentProject({ project } = {}) {
+ if (this.projectId !== null) {
+ return Boolean(project?.id?.toString() === this.projectId);
+ }
+
+ return false;
+ },
+ projectName(project) {
+ if (this.isCurrentProject(project)) {
+ return s__('DeployKeys|Current project');
+ }
+
+ return project?.project?.fullName;
+ },
+ onEnableError(error) {
+ createAlert({
+ message: s__('DeployKeys|Error enabling deploy key'),
+ captureError: true,
+ error,
+ });
+ },
},
+ enableKeyMutation,
+ confirmDisableMutation,
};
</script>
@@ -128,7 +130,7 @@ export default {
<dl class="gl-font-sm gl-mb-0">
<dt>{{ __('SHA256') }}</dt>
<dd class="fingerprint" data-testid="key-sha256-fingerprint-content">
- {{ deployKey.fingerprint_sha256 }}
+ {{ deployKey.fingerprintSha256 }}
</dd>
<template v-if="deployKey.fingerprint">
<dt>
@@ -150,10 +152,10 @@ export default {
<gl-badge
v-gl-tooltip
:title="projectTooltipTitle(firstProject)"
- :icon="firstProject.can_push ? 'lock-open' : 'lock'"
+ :icon="firstProject.canPush ? 'lock-open' : 'lock'"
class="deploy-project-label gl-mr-2 gl-mb-2 gl-truncate"
>
- <span class="gl-text-truncate">{{ firstProject.project.full_name }}</span>
+ <span class="gl-text-truncate">{{ projectName(firstProject) }}</span>
</gl-badge>
<gl-badge
@@ -170,14 +172,14 @@ export default {
<gl-badge
v-for="deployKeysProject in restProjects"
v-else-if="isExpanded"
- :key="deployKeysProject.project.full_path"
+ :key="deployKeysProject.project.fullPath"
v-gl-tooltip
- :href="deployKeysProject.project.full_path"
+ :href="deployKeysProject.project.fullPath"
:title="projectTooltipTitle(deployKeysProject)"
- :icon="deployKeysProject.can_push ? 'lock-open' : 'lock'"
+ :icon="deployKeysProject.canPush ? 'lock-open' : 'lock'"
class="deploy-project-label gl-mr-2 gl-mb-2 gl-truncate"
>
- <span class="gl-text-truncate">{{ deployKeysProject.project.full_name }}</span>
+ <span class="gl-text-truncate">{{ projectName(deployKeysProject) }}</span>
</gl-badge>
</template>
<span v-else class="gl-text-secondary">{{ __('None') }}</span>
@@ -188,8 +190,8 @@ export default {
{{ __('Created') }}
</div>
<div class="table-mobile-content gl-text-gray-700 key-created-at">
- <span v-gl-tooltip :title="tooltipTitle(deployKey.created_at)">
- <gl-icon name="calendar" /> <span>{{ timeFormatted(deployKey.created_at) }}</span>
+ <span v-gl-tooltip :title="tooltipTitle(deployKey.createdAt)">
+ <gl-icon name="calendar" /> <span>{{ timeFormatted(deployKey.createdAt) }}</span>
</span>
</div>
</div>
@@ -199,12 +201,12 @@ export default {
</div>
<div class="table-mobile-content gl-text-gray-700 key-expires-at">
<span
- v-if="deployKey.expires_at"
+ v-if="deployKey.expiresAt"
v-gl-tooltip
- :title="tooltipTitle(deployKey.expires_at)"
+ :title="tooltipTitle(deployKey.expiresAt)"
data-testid="expires-at-tooltip"
>
- <gl-icon name="calendar" /> <span>{{ timeFormatted(deployKey.expires_at) }}</span>
+ <gl-icon name="calendar" /> <span>{{ timeFormatted(deployKey.expiresAt) }}</span>
</span>
<span v-else>
<span data-testid="expires-never">{{ __('Never') }}</span>
@@ -213,13 +215,19 @@ export default {
</div>
<div class="table-section section-10 table-button-footer deploy-key-actions">
<div class="btn-group table-action-buttons">
- <action-btn v-if="!isEnabled" :deploy-key="deployKey" type="enable" category="secondary">
+ <action-btn
+ v-if="!isEnabled"
+ :deploy-key="deployKey"
+ :mutation="$options.enableKeyMutation"
+ category="secondary"
+ @error="onEnableError"
+ >
{{ __('Enable') }}
</action-btn>
<gl-button
- v-if="deployKey.can_edit"
+ v-if="deployKey.editPath"
v-gl-tooltip
- :href="editDeployKeyPath"
+ :href="deployKey.editPath"
:title="__('Edit')"
:aria-label="__('Edit')"
data-container="body"
@@ -232,10 +240,10 @@ export default {
:deploy-key="deployKey"
:title="__('Remove')"
:aria-label="__('Remove')"
+ :mutation="$options.confirmDisableMutation"
category="secondary"
variant="danger"
icon="remove"
- type="remove"
data-container="body"
/>
<action-btn
@@ -244,7 +252,7 @@ export default {
:deploy-key="deployKey"
:title="__('Disable')"
:aria-label="__('Disable')"
- type="disable"
+ :mutation="$options.confirmDisableMutation"
data-container="body"
icon="cancel"
category="secondary"
diff --git a/app/assets/javascripts/deploy_keys/components/keys_panel.vue b/app/assets/javascripts/deploy_keys/components/keys_panel.vue
index dac63188aa5..088b85e6093 100644
--- a/app/assets/javascripts/deploy_keys/components/keys_panel.vue
+++ b/app/assets/javascripts/deploy_keys/components/keys_panel.vue
@@ -10,14 +10,6 @@ export default {
type: Array,
required: true,
},
- store: {
- type: Object,
- required: true,
- },
- endpoint: {
- type: String,
- required: true,
- },
projectId: {
type: String,
required: false,
@@ -48,8 +40,6 @@ export default {
v-for="deployKey in keys"
:key="deployKey.id"
:deploy-key="deployKey"
- :store="store"
- :endpoint="endpoint"
:project-id="projectId"
/>
</template>
diff --git a/app/assets/javascripts/deploy_keys/graphql/resolvers.js b/app/assets/javascripts/deploy_keys/graphql/resolvers.js
index 1993801636e..a8693665b90 100644
--- a/app/assets/javascripts/deploy_keys/graphql/resolvers.js
+++ b/app/assets/javascripts/deploy_keys/graphql/resolvers.js
@@ -15,6 +15,8 @@ export const mapDeployKey = (deployKey) => ({
__typename: 'LocalDeployKey',
});
+const DEFAULT_PAGE_SIZE = 5;
+
export const resolvers = (endpoints) => ({
Project: {
deployKeys(_, { scope, page }, { client }) {
@@ -25,19 +27,21 @@ export const resolvers = (endpoints) => ({
endpoint = endpoints.enabledKeysEndpoint;
}
- return axios.get(endpoint, { params: { page } }).then(({ headers, data }) => {
- const normalizedHeaders = normalizeHeaders(headers);
- const pageInfo = {
- ...parseIntPagination(normalizedHeaders),
- __typename: 'LocalPageInfo',
- };
- client.writeQuery({
- query: pageInfoQuery,
- variables: { input: { page, scope } },
- data: { pageInfo },
+ return axios
+ .get(endpoint, { params: { page, per_page: DEFAULT_PAGE_SIZE } })
+ .then(({ headers, data }) => {
+ const normalizedHeaders = normalizeHeaders(headers);
+ const pageInfo = {
+ ...parseIntPagination(normalizedHeaders),
+ __typename: 'LocalPageInfo',
+ };
+ client.writeQuery({
+ query: pageInfoQuery,
+ variables: { input: { page, scope } },
+ data: { pageInfo },
+ });
+ return data?.keys?.map(mapDeployKey) || [];
});
- return data?.keys?.map(mapDeployKey) || [];
- });
},
},
Mutation: {
@@ -48,6 +52,13 @@ export const resolvers = (endpoints) => ({
});
},
currentScope(_, { scope }, { client }) {
+ const key = `${scope}Endpoint`;
+ const { [key]: endpoint } = endpoints;
+
+ if (!endpoint) {
+ throw new Error(`invalid deploy key scope selected: ${scope}`);
+ }
+
client.writeQuery({
query: currentPageQuery,
data: { currentPage: 1 },
diff --git a/app/assets/javascripts/deploy_keys/index.js b/app/assets/javascripts/deploy_keys/index.js
index 83601d5b2e3..673462073f0 100644
--- a/app/assets/javascripts/deploy_keys/index.js
+++ b/app/assets/javascripts/deploy_keys/index.js
@@ -1,24 +1,26 @@
import Vue from 'vue';
+import VueApollo from 'vue-apollo';
import DeployKeysApp from './components/app.vue';
+import { createApolloProvider } from './graphql/client';
-export default () =>
- new Vue({
- el: document.getElementById('js-deploy-keys'),
- components: {
- DeployKeysApp,
- },
- data() {
- return {
- endpoint: this.$options.el.dataset.endpoint,
- projectId: this.$options.el.dataset.projectId,
- };
- },
+Vue.use(VueApollo);
+
+export default () => {
+ const el = document.getElementById('js-deploy-keys');
+ return new Vue({
+ el,
+ apolloProvider: createApolloProvider({
+ enabledKeysEndpoint: el.dataset.enabledEndpoint,
+ availableProjectKeysEndpoint: el.dataset.availableProjectEndpoint,
+ availablePublicKeysEndpoint: el.dataset.availablePublicEndpoint,
+ }),
render(createElement) {
- return createElement('deploy-keys-app', {
+ return createElement(DeployKeysApp, {
props: {
- endpoint: this.endpoint,
- projectId: this.projectId,
+ projectId: el.dataset.projectId,
+ projectPath: el.dataset.projectPath,
},
});
},
});
+};
diff --git a/app/assets/javascripts/deploy_keys/service/index.js b/app/assets/javascripts/deploy_keys/service/index.js
deleted file mode 100644
index 2837fc8ed88..00000000000
--- a/app/assets/javascripts/deploy_keys/service/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import axios from '~/lib/utils/axios_utils';
-
-export default class DeployKeysService {
- constructor(endpoint) {
- this.endpoint = endpoint;
- }
-
- getKeys() {
- return axios.get(this.endpoint).then((response) => response.data);
- }
-
- enableKey(id) {
- return axios.put(`${this.endpoint}/${id}/enable`).then((response) => response.data);
- }
-
- disableKey(id) {
- return axios.put(`${this.endpoint}/${id}/disable`).then((response) => response.data);
- }
-}
diff --git a/app/assets/javascripts/deploy_keys/store/index.js b/app/assets/javascripts/deploy_keys/store/index.js
deleted file mode 100644
index dcd77e921cd..00000000000
--- a/app/assets/javascripts/deploy_keys/store/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default class DeployKeysStore {
- constructor() {
- this.keys = {};
- }
-
- isEnabled(id) {
- return this.keys.enabled_keys.some((key) => key.id === id);
- }
-}
diff --git a/app/assets/javascripts/diffs/components/app.vue b/app/assets/javascripts/diffs/components/app.vue
index 00fd9f43a4f..698fd3909ed 100644
--- a/app/assets/javascripts/diffs/components/app.vue
+++ b/app/assets/javascripts/diffs/components/app.vue
@@ -144,6 +144,11 @@ export default {
required: false,
default: '',
},
+ pinnedFileUrl: {
+ type: String,
+ required: false,
+ default: '',
+ },
},
data() {
return {
@@ -153,6 +158,7 @@ export default {
autoScrolled: false,
activeProject: undefined,
hasScannerError: false,
+ pinnedFileStatus: '',
};
},
apollo: {
@@ -215,7 +221,6 @@ export default {
...mapState('findingsDrawer', ['activeDrawer']),
...mapState('diffs', [
'isLoading',
- 'diffFiles',
'diffViewType',
'commit',
'renderOverflowWarning',
@@ -245,6 +250,7 @@ export default {
'isBatchLoading',
'isBatchLoadingError',
'flatBlobsList',
+ 'diffFiles',
]),
...mapGetters(['isNotesFetched', 'getNoteableData']),
...mapGetters('findingsDrawer', ['activeDrawer']),
@@ -355,7 +361,7 @@ export default {
const id = window?.location?.hash;
if (id && id.indexOf('#note') !== 0) {
- this.setHighlightedRow(id.split('diff-content').pop().slice(1));
+ this.setHighlightedRow({ lineCode: id.split('diff-content').pop().slice(1) });
}
const events = [];
@@ -438,6 +444,7 @@ export default {
'setFileByFile',
'disableVirtualScroller',
'setGenerateTestFilePath',
+ 'fetchPinnedFile',
]),
...mapActions('findingsDrawer', ['setDrawer']),
closeDrawer() {
@@ -509,6 +516,20 @@ export default {
return !this.diffFiles.length;
},
fetchData({ toggleTree = true, fetchMeta = true } = {}) {
+ if (this.pinnedFileUrl && this.pinnedFileStatus !== 'loaded') {
+ this.pinnedFileStatus = 'loading';
+ this.fetchPinnedFile(this.pinnedFileUrl)
+ .then(() => {
+ this.pinnedFileStatus = 'loaded';
+ if (toggleTree) this.setTreeDisplay();
+ })
+ .catch(() => {
+ this.pinnedFileStatus = 'error';
+ createAlert({
+ message: __("Couldn't fetch the pinned file."),
+ });
+ });
+ }
if (fetchMeta) {
this.fetchDiffFilesMeta()
.then((data) => {
@@ -539,7 +560,7 @@ export default {
}
if (!this.viewDiffsFileByFile) {
- this.fetchDiffFilesBatch()
+ this.fetchDiffFilesBatch(Boolean(this.pinnedFileUrl))
.then(() => {
if (toggleTree) this.setTreeDisplay();
// Guarantee the discussions are assigned after the batch finishes.
@@ -724,6 +745,9 @@ export default {
<gl-loading-icon size="lg" />
</div>
<template v-else-if="renderDiffFiles">
+ <div v-if="pinnedFileStatus === 'loading'" class="loading">
+ <gl-loading-icon size="lg" />
+ </div>
<dynamic-scroller
v-if="isVirtualScrollingEnabled"
:items="diffs"
diff --git a/app/assets/javascripts/diffs/components/commit_item.vue b/app/assets/javascripts/diffs/components/commit_item.vue
index 7493bd5fdf7..3545eb4ed73 100644
--- a/app/assets/javascripts/diffs/components/commit_item.vue
+++ b/app/assets/javascripts/diffs/components/commit_item.vue
@@ -94,7 +94,7 @@ export default {
class="d-block d-sm-flex flex-row-reverse justify-content-between align-items-start flex-lg-row-reverse"
>
<div
- class="commit-actions flex-row d-none d-sm-flex align-items-start flex-wrap justify-content-end"
+ class="commit-actions flex-row d-none d-sm-flex align-items-center flex-wrap justify-content-end"
>
<div
v-if="commit.signature_html"
@@ -105,7 +105,7 @@ export default {
:endpoint="commit.pipeline_status_path"
class="d-inline-flex mb-2"
/>
- <gl-button-group class="gl-ml-4 gl-mb-4" data-testid="commit-sha-group">
+ <gl-button-group class="gl-ml-4" data-testid="commit-sha-group">
<gl-button label class="gl-font-monospace" data-testid="commit-sha-short-id">{{
commit.short_id
}}</gl-button>
diff --git a/app/assets/javascripts/diffs/components/diff_file.vue b/app/assets/javascripts/diffs/components/diff_file.vue
index 82b721da493..39f642b0831 100644
--- a/app/assets/javascripts/diffs/components/diff_file.vue
+++ b/app/assets/javascripts/diffs/components/diff_file.vue
@@ -17,6 +17,7 @@ import DiffFileDrafts from '~/batch_comments/components/diff_file_drafts.vue';
import NoteForm from '~/notes/components/note_form.vue';
import diffLineNoteFormMixin from '~/notes/mixins/diff_line_note_form';
+import { fileContentsId } from '~/diffs/components/diff_row_utils';
import {
DIFF_FILE_AUTOMATIC_COLLAPSE,
DIFF_FILE_MANUAL_COLLAPSE,
@@ -110,7 +111,10 @@ export default {
'canMerge',
]),
...mapGetters(['isNotesFetched', 'getNoteableData', 'noteableType']),
- ...mapGetters('diffs', ['getDiffFileDiscussions', 'isVirtualScrollingEnabled']),
+ ...mapGetters('diffs', ['getDiffFileDiscussions', 'isVirtualScrollingEnabled', 'pinnedFile']),
+ isPinnedFile() {
+ return this.file === this.pinnedFile;
+ },
viewBlobHref() {
return escape(this.file.view_path);
},
@@ -206,6 +210,9 @@ export default {
diffFileHash() {
return this.file.file_hash;
},
+ fileId() {
+ return fileContentsId(this.file);
+ },
},
watch: {
'file.id': {
@@ -293,7 +300,7 @@ export default {
},
handleToggle({ viaUserInteraction = false } = {}) {
const collapsingNow = !this.isCollapsed;
- const contentElement = this.$el.querySelector(`#diff-content-${this.file.file_hash}`);
+ const contentElement = this.$el.querySelector(`#${fileContentsId(this.file)}`);
this.setFileCollapsedByUser({
filePath: this.file.file_path,
@@ -386,6 +393,7 @@ export default {
'comments-disabled': Boolean(file.brokenSymlink),
'has-body': showBody,
'is-virtual-scrolling': isVirtualScrollingEnabled,
+ 'pinned-file': isPinnedFile,
}"
:data-path="file.new_path"
class="diff-file file-holder gl-border-none gl-mb-0! gl-pb-5"
@@ -400,6 +408,7 @@ export default {
:add-merge-request-buttons="true"
:view-diffs-file-by-file="viewDiffsFileByFile"
:show-local-file-reviews="showLocalFileReviews"
+ :pinned="isPinnedFile"
class="js-file-title file-title gl-border-1 gl-border-solid gl-border-gray-100"
:class="hasBodyClasses.header"
@toggleFile="handleToggle({ viaUserInteraction: true })"
@@ -428,7 +437,7 @@ export default {
</div>
<template v-else>
<div
- :id="`diff-content-${file.file_hash}`"
+ :id="fileId"
:class="hasBodyClasses.contentByHash"
class="diff-content"
data-testid="content-area"
diff --git a/app/assets/javascripts/diffs/components/diff_file_header.vue b/app/assets/javascripts/diffs/components/diff_file_header.vue
index e45fd508a5b..97db0fc1c24 100644
--- a/app/assets/javascripts/diffs/components/diff_file_header.vue
+++ b/app/assets/javascripts/diffs/components/diff_file_header.vue
@@ -22,6 +22,7 @@ import { __, s__, sprintf } from '~/locale';
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
+import { fileContentsId, pinnedFileHref } from '~/diffs/components/diff_row_utils';
import { DIFF_FILE_AUTOMATIC_COLLAPSE } from '../constants';
import { DIFF_FILE_HEADER } from '../i18n';
import { collapsedType, isCollapsed } from '../utils/diff_file';
@@ -102,6 +103,11 @@ export default {
required: false,
default: false,
},
+ pinned: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
},
idState() {
return {
@@ -113,9 +119,8 @@ export default {
...mapGetters('diffs', ['diffHasExpandedDiscussions', 'diffHasDiscussions']),
...mapGetters(['getNoteableData']),
diffContentIDSelector() {
- return `#diff-content-${this.diffFile.file_hash}`;
+ return `${pinnedFileHref(this.diffFile)}#${fileContentsId(this.diffFile)}`;
},
-
titleLink() {
if (this.diffFile.submodule) {
return this.diffFile.submodule_tree_url || this.diffFile.submodule_link;
@@ -222,6 +227,7 @@ export default {
'setFileForcedOpen',
'setGenerateTestFilePath',
'toggleFileCommentForm',
+ 'unpinFile',
]),
handleToggleFile() {
this.setFileForcedOpen({
@@ -295,7 +301,19 @@ export default {
>
<div class="file-header-content">
<gl-button
- v-if="collapsible"
+ v-if="pinned"
+ v-gl-tooltip.hover.focus
+ :title="__('Unpin the file')"
+ :aria-label="__('Unpin the file')"
+ icon="thumbtack"
+ size="small"
+ class="btn-icon gl-mr-2"
+ category="tertiary"
+ data-testid="unpin-button"
+ @click="unpinFile"
+ />
+ <gl-button
+ v-else-if="collapsible"
ref="collapseButton"
class="gl-mr-2"
category="tertiary"
@@ -305,10 +323,10 @@ export default {
@click.stop="handleToggleFile"
/>
<a
- ref="titleWrapper"
:v-once="!viewDiffsFileByFile"
class="gl-mr-2 gl-text-decoration-none! gl-word-break-all"
:href="titleLink"
+ data-testid="file-title"
@click="handleFileNameClick"
>
<span v-if="isFileRenamed">
@@ -354,7 +372,7 @@ export default {
<small
v-if="isModeChanged"
ref="fileMode"
- v-gl-tooltip.hover
+ v-gl-tooltip.hover.focus
class="mr-1"
:title="$options.i18n.fileModeTooltip"
>
@@ -377,7 +395,7 @@ export default {
/>
<gl-form-checkbox
v-if="isReviewable && showLocalFileReviews"
- v-gl-tooltip.hover
+ v-gl-tooltip.hover.focus
data-testid="fileReviewCheckbox"
class="gl-mr-5 gl-mb-n3 gl-display-flex gl-align-items-center"
:title="$options.i18n.fileReviewTooltip"
@@ -388,7 +406,7 @@ export default {
</gl-form-checkbox>
<gl-button
v-if="showCommentButton"
- v-gl-tooltip.hover
+ v-gl-tooltip.hover.focus
:title="__('Comment on this file')"
:aria-label="__('Comment on this file')"
icon="comment"
@@ -402,7 +420,7 @@ export default {
<gl-button
v-if="diffFile.external_url"
ref="externalLink"
- v-gl-tooltip.hover
+ v-gl-tooltip.hover.focus
:href="diffFile.external_url"
:title="externalUrlLabel"
:aria-label="externalUrlLabel"
diff --git a/app/assets/javascripts/diffs/components/diff_row.vue b/app/assets/javascripts/diffs/components/diff_row.vue
index 3dad7a1a8e4..a9da77104d4 100644
--- a/app/assets/javascripts/diffs/components/diff_row.vue
+++ b/app/assets/javascripts/diffs/components/diff_row.vue
@@ -292,7 +292,7 @@ export default {
v-if="props.line.left.old_line && props.line.left.type !== $options.CONFLICT_THEIR"
:data-linenumber="props.line.left.old_line"
:href="props.line.lineHrefOld"
- @click="listeners.setHighlightedRow(props.line.lineCode)"
+ @click="listeners.setHighlightedRow({ lineCode: props.line.lineCode, event: $event })"
>
</a>
<component
@@ -318,7 +318,7 @@ export default {
v-if="props.line.left.new_line && props.line.left.type !== $options.CONFLICT_OUR"
:data-linenumber="props.line.left.new_line"
:href="props.line.lineHrefOld"
- @click="listeners.setHighlightedRow(props.line.lineCode)"
+ @click="listeners.setHighlightedRow({ lineCode: props.line.lineCode, event: $event })"
>
</a>
</div>
@@ -446,7 +446,7 @@ export default {
v-if="props.line.right.new_line"
:data-linenumber="props.line.right.new_line"
:href="props.line.lineHrefNew"
- @click="listeners.setHighlightedRow(props.line.lineCode)"
+ @click="listeners.setHighlightedRow({ lineCode: props.line.lineCode, event: $event })"
>
</a>
<component
diff --git a/app/assets/javascripts/diffs/components/diff_row_utils.js b/app/assets/javascripts/diffs/components/diff_row_utils.js
index a489c96b0c9..5c62e0179ac 100644
--- a/app/assets/javascripts/diffs/components/diff_row_utils.js
+++ b/app/assets/javascripts/diffs/components/diff_row_utils.js
@@ -33,7 +33,19 @@ export const shouldRenderCommentButton = (isLoggedIn, isCommentButtonRendered) =
export const hasDiscussions = (line) => line?.discussions?.length > 0;
-export const lineHref = (line) => `#${line?.line_code || ''}`;
+export const pinnedFileHref = (diffFile) => {
+ if (!window?.gon?.features?.pinnedFile) return '';
+ return `?pin=${diffFile.file_hash}`;
+};
+
+export const lineHref = (line, content) => {
+ if (!line || !line.line_code) return '';
+ return `${pinnedFileHref(content.diffFile)}#${line.line_code}`;
+};
+
+export const fileContentsId = (diffFile) => {
+ return `diff-content-${diffFile.file_hash}`;
+};
export const lineCode = (line) => {
if (!line) return undefined;
@@ -179,8 +191,8 @@ export const mapParallel = (content) => (line) => {
isContextLineRight: isContextLine(right?.type),
hasDiscussionsLeft: hasDiscussions(left),
hasDiscussionsRight: hasDiscussions(right),
- lineHrefOld: lineHref(left),
- lineHrefNew: lineHref(right),
+ lineHrefOld: lineHref(left, content),
+ lineHrefNew: lineHref(right, content),
lineCode: lineCode(line),
isMetaLineLeft: isMetaLine(left?.type),
isMetaLineRight: isMetaLine(right?.type),
diff --git a/app/assets/javascripts/diffs/components/tree_list.vue b/app/assets/javascripts/diffs/components/tree_list.vue
index 07984beb709..ab21391b364 100644
--- a/app/assets/javascripts/diffs/components/tree_list.vue
+++ b/app/assets/javascripts/diffs/components/tree_list.vue
@@ -34,7 +34,7 @@ export default {
},
computed: {
...mapState('diffs', ['tree', 'renderTreeList', 'currentDiffFileId', 'viewedDiffFileIds']),
- ...mapGetters('diffs', ['allBlobs']),
+ ...mapGetters('diffs', ['allBlobs', 'pinnedFile']),
filteredTreeList() {
let search = this.search.toLowerCase().trim();
@@ -71,21 +71,59 @@ export default {
// out: [{ path: 'a', tree: [{ path: 'b' }] }, { path: 'b' }, { path: 'c' }]
flatFilteredTreeList() {
const result = [];
- const createFlatten = (level) => (item) => {
+ const createFlatten = (level, hidden) => (item) => {
result.push({
...item,
+ hidden,
level: item.isHeader ? 0 : level,
key: item.key || item.path,
});
- if (item.opened || item.isHeader) {
- item.tree.forEach(createFlatten(level + 1));
- }
+ const isHidden = hidden || (item.type === 'tree' && !item.opened);
+ item.tree.forEach(createFlatten(level + 1, isHidden));
};
this.filteredTreeList.forEach(createFlatten(0));
return result;
},
+ flatListWithPinnedFile() {
+ const result = [...this.flatFilteredTreeList];
+ const pinnedIndex = result.findIndex((item) => item.path === this.pinnedFile.file_path);
+ const [pinnedItem] = result.splice(pinnedIndex, 1);
+
+ if (pinnedItem.parentPath === '/')
+ return [{ ...pinnedItem, level: 0, pinned: true, hidden: false }, ...result];
+
+ // remove detached folder from the tree
+ const next = result[pinnedIndex];
+ const prev = result[pinnedIndex - 1];
+ const hasContainingFolder =
+ prev && prev.type === 'tree' && prev.level === pinnedItem.level - 1;
+ const hasSibling = next && next.type !== 'tree' && next.level === pinnedItem.level;
+ if (hasContainingFolder && !hasSibling) {
+ // folder tree is always condensed so we only need to remove the parent folder
+ result.splice(pinnedIndex - 1, 1);
+ }
+
+ return [
+ {
+ level: 0,
+ key: 'pinned-path',
+ isHeader: true,
+ opened: true,
+ path: pinnedItem.parentPath,
+ type: 'tree',
+ hidden: false,
+ },
+ { ...pinnedItem, level: 1, pinned: true, hidden: false },
+ ...result,
+ ];
+ },
+ treeList() {
+ const list = this.pinnedFile ? this.flatListWithPinnedFile : this.flatFilteredTreeList;
+ if (this.search) return list;
+ return list.filter((item) => !item.hidden);
+ },
},
methods: {
...mapActions('diffs', ['toggleTreeOpen', 'goToFile']),
@@ -125,13 +163,13 @@ export default {
</button>
</div>
</div>
- <tree-list-height class="gl-flex-grow-1 gl-min-h-0" :items-count="flatFilteredTreeList.length">
+ <tree-list-height class="gl-flex-grow-1 gl-min-h-0" :items-count="treeList.length">
<template #default="{ scrollerHeight, rowHeight }">
<div :class="{ 'tree-list-blobs': !renderTreeList || search }" class="mr-tree-list">
<recycle-scroller
- v-if="flatFilteredTreeList.length"
+ v-if="treeList.length"
:style="{ height: `${scrollerHeight}px` }"
- :items="flatFilteredTreeList"
+ :items="treeList"
:item-size="rowHeight"
:buffer="100"
key-field="key"
diff --git a/app/assets/javascripts/diffs/index.js b/app/assets/javascripts/diffs/index.js
index 15e4225f062..b219b5499c9 100644
--- a/app/assets/javascripts/diffs/index.js
+++ b/app/assets/javascripts/diffs/index.js
@@ -93,6 +93,7 @@ export default function initDiffsApp(store = notesStore) {
helpPagePath: this.helpPagePath,
shouldShow: this.activeTab === 'diffs',
changesEmptyStateIllustration: this.changesEmptyStateIllustration,
+ pinnedFileUrl: dataset.pinnedFileUrl,
},
});
},
diff --git a/app/assets/javascripts/diffs/store/actions.js b/app/assets/javascripts/diffs/store/actions.js
index 1c0e20183e2..e15d403bd11 100644
--- a/app/assets/javascripts/diffs/store/actions.js
+++ b/app/assets/javascripts/diffs/store/actions.js
@@ -10,7 +10,7 @@ import axios from '~/lib/utils/axios_utils';
import { HTTP_STATUS_NOT_FOUND, HTTP_STATUS_OK } from '~/lib/utils/http_status';
import Poll from '~/lib/utils/poll';
-import { mergeUrlParams, getLocationHash } from '~/lib/utils/url_utility';
+import { mergeUrlParams, getLocationHash, getParameterValues } from '~/lib/utils/url_utility';
import notesEventHub from '~/notes/event_hub';
import { generateTreeList } from '~/diffs/utils/tree_worker_utils';
import { sortTree } from '~/ide/stores/utils';
@@ -54,7 +54,6 @@ import {
} from '../constants';
import {
DISCUSSION_SINGLE_DIFF_FAILED,
- LOAD_SINGLE_DIFF_FAILED,
BUILDING_YOUR_MR,
SOMETHING_WENT_WRONG,
ERROR_LOADING_FULL_DIFF,
@@ -119,7 +118,9 @@ export const setBaseConfig = ({ commit }, options) => {
};
export const prefetchSingleFile = async ({ state, getters, commit }, treeEntry) => {
- const versionPath = state.mergeRequestDiff?.version_path;
+ const url = new URL(state.endpointBatch, 'https://gitlab.com');
+ const diffId = getParameterValues('diff_id', url)[0];
+ const startSha = getParameterValues('start_sha', url)[0];
if (
treeEntry &&
@@ -133,12 +134,14 @@ export const prefetchSingleFile = async ({ state, getters, commit }, treeEntry)
w: state.showWhitespace ? '0' : '1',
view: 'inline',
commit_id: getters.commitId,
+ diff_head: true,
};
- if (versionPath) {
- const { diffId, startSha } = getDerivedMergeRequestInformation({ endpoint: versionPath });
-
+ if (diffId) {
urlParams.diff_id = diffId;
+ }
+
+ if (startSha) {
urlParams.start_sha = startSha;
}
@@ -161,7 +164,9 @@ export const prefetchSingleFile = async ({ state, getters, commit }, treeEntry)
export const fetchFileByFile = async ({ state, getters, commit }) => {
const isNoteLink = isUrlHashNoteLink(window?.location?.hash);
const id = parseUrlHashAsFileHash(window?.location?.hash, state.currentDiffFileId);
- const versionPath = state.mergeRequestDiff?.version_path;
+ const url = new URL(state.endpointBatch, 'https://gitlab.com');
+ const diffId = getParameterValues('diff_id', url)[0];
+ const startSha = getParameterValues('start_sha', url)[0];
const treeEntry = id
? getters.flatBlobsList.find(({ fileHash }) => fileHash === id)
: getters.flatBlobsList[0];
@@ -179,12 +184,14 @@ export const fetchFileByFile = async ({ state, getters, commit }) => {
w: state.showWhitespace ? '0' : '1',
view: 'inline',
commit_id: getters.commitId,
+ diff_head: true,
};
- if (versionPath) {
- const { diffId, startSha } = getDerivedMergeRequestInformation({ endpoint: versionPath });
-
+ if (diffId) {
urlParams.diff_id = diffId;
+ }
+
+ if (startSha) {
urlParams.start_sha = startSha;
}
@@ -210,7 +217,7 @@ export const fetchFileByFile = async ({ state, getters, commit }) => {
}
};
-export const fetchDiffFilesBatch = ({ commit, state, dispatch }) => {
+export const fetchDiffFilesBatch = ({ commit, state, dispatch }, pinnedFileLoading = false) => {
let perPage = state.viewDiffsFileByFile ? 1 : state.perPage;
let increaseAmount = 1.4;
const startPage = 0;
@@ -224,8 +231,10 @@ export const fetchDiffFilesBatch = ({ commit, state, dispatch }) => {
let totalLoaded = 0;
let scrolledVirtualScroller = hash === '';
- commit(types.SET_BATCH_LOADING_STATE, 'loading');
- commit(types.SET_RETRIEVING_BATCHES, true);
+ if (!pinnedFileLoading) {
+ commit(types.SET_BATCH_LOADING_STATE, 'loading');
+ commit(types.SET_RETRIEVING_BATCHES, true);
+ }
eventHub.$emit(EVT_PERF_MARK_DIFF_FILES_START);
const getBatch = (page = startPage) =>
@@ -237,7 +246,7 @@ export const fetchDiffFilesBatch = ({ commit, state, dispatch }) => {
commit(types.SET_DIFF_DATA_BATCH, { diff_files: diffFiles });
commit(types.SET_BATCH_LOADING_STATE, 'loaded');
- if (!scrolledVirtualScroller) {
+ if (!scrolledVirtualScroller && !pinnedFileLoading) {
const index = state.diffFiles.findIndex(
(f) =>
f.file_hash === hash || f[INLINE_DIFF_LINES_KEY].find((l) => l.line_code === hash),
@@ -301,9 +310,10 @@ export const fetchDiffFilesBatch = ({ commit, state, dispatch }) => {
return null;
})
- .catch(() => {
+ .catch((error) => {
commit(types.SET_RETRIEVING_BATCHES, false);
commit(types.SET_BATCH_LOADING_STATE, 'error');
+ throw error;
});
return getBatch();
@@ -384,7 +394,11 @@ export const fetchCoverageFiles = ({ commit, state }) => {
coveragePoll.makeRequest();
};
-export const setHighlightedRow = ({ commit }, lineCode) => {
+export const setHighlightedRow = ({ commit }, { lineCode, event }) => {
+ if (event && event.target.href) {
+ event.preventDefault();
+ window.history.replaceState(null, undefined, event.target.href);
+ }
const fileHash = lineCode.split('_')[0];
commit(types.SET_HIGHLIGHTED_ROW, lineCode);
commit(types.SET_CURRENT_DIFF_FILE, fileHash);
@@ -657,6 +671,8 @@ export const goToFile = ({ state, commit, dispatch, getters }, { path }) => {
} else {
if (!state.treeEntries[path]) return;
+ dispatch('unpinFile');
+
const { fileHash } = state.treeEntries[path];
commit(types.SET_CURRENT_DIFF_FILE, fileHash);
@@ -667,11 +683,7 @@ export const goToFile = ({ state, commit, dispatch, getters }, { path }) => {
scrollToElement('.diff-files-holder', { duration: 0 });
if (!getters.isTreePathLoaded(path)) {
- dispatch('fetchFileByFile').catch(() => {
- createAlert({
- message: LOAD_SINGLE_DIFF_FAILED,
- });
- });
+ dispatch('fetchFileByFile');
}
}
};
@@ -995,6 +1007,8 @@ export const setCurrentDiffFileIdFromNote = ({ commit, getters, rootGetters }, n
};
export const navigateToDiffFileIndex = ({ state, getters, commit, dispatch }, index) => {
+ dispatch('unpinFile');
+
const { fileHash } = getters.flatBlobsList[index];
document.location.hash = fileHash;
@@ -1055,3 +1069,50 @@ export const toggleFileCommentForm = ({ state, commit }, filePath) => {
export const addDraftToFile = ({ commit }, { filePath, draft }) =>
commit(types.ADD_DRAFT_TO_FILE, { filePath, draft });
+
+export const fetchPinnedFile = ({ state, commit }, pinnedFileUrl) => {
+ const isNoteLink = isUrlHashNoteLink(window?.location?.hash);
+
+ commit(types.SET_BATCH_LOADING_STATE, 'loading');
+ commit(types.SET_RETRIEVING_BATCHES, true);
+
+ return axios
+ .get(pinnedFileUrl)
+ .then(({ data: diffData }) => {
+ const [{ file_hash }] = diffData.diff_files;
+
+ // we must store pinned file in the `diffs`, otherwise collapsing and commenting on a file won't work
+ // once the same file arrives in a file batch we must only update its' position
+ // we also must not update file's position since it's loaded out of order
+ commit(types.SET_DIFF_DATA_BATCH, { diff_files: diffData.diff_files, updatePosition: false });
+ commit(types.SET_PINNED_FILE_HASH, file_hash);
+
+ if (!isNoteLink && !state.currentDiffFileId) {
+ commit(types.SET_CURRENT_DIFF_FILE, file_hash);
+ }
+
+ commit(types.SET_BATCH_LOADING_STATE, 'loaded');
+
+ setTimeout(() => {
+ handleLocationHash();
+ });
+
+ eventHub.$emit('diffFilesModified');
+ })
+ .catch((error) => {
+ commit(types.SET_BATCH_LOADING_STATE, 'error');
+ throw error;
+ })
+ .finally(() => {
+ commit(types.SET_RETRIEVING_BATCHES, false);
+ });
+};
+
+export const unpinFile = ({ getters, commit }) => {
+ if (!getters.pinnedFile) return;
+ commit(types.SET_PINNED_FILE_HASH, null);
+ const newUrl = new URL(window.location);
+ newUrl.searchParams.delete('pin');
+ newUrl.hash = '';
+ window.history.replaceState(null, undefined, newUrl);
+};
diff --git a/app/assets/javascripts/diffs/store/getters.js b/app/assets/javascripts/diffs/store/getters.js
index bfafb4d281d..f15c3d1693c 100644
--- a/app/assets/javascripts/diffs/store/getters.js
+++ b/app/assets/javascripts/diffs/store/getters.js
@@ -201,3 +201,18 @@ export const isVirtualScrollingEnabled = (state) => {
export const isBatchLoading = (state) => state.batchLoadingState === 'loading';
export const isBatchLoadingError = (state) => state.batchLoadingState === 'error';
+
+export const diffFiles = (state, getters) => {
+ const { pinnedFile } = getters;
+ if (pinnedFile) {
+ const diffs = state.diffFiles.slice(0);
+ diffs.splice(diffs.indexOf(pinnedFile), 1);
+ return [pinnedFile, ...diffs];
+ }
+ return state.diffFiles;
+};
+
+export const pinnedFile = (state) => {
+ if (!state.pinnedFileHash) return null;
+ return state.diffFiles.find((file) => file.file_hash === state.pinnedFileHash);
+};
diff --git a/app/assets/javascripts/diffs/store/modules/diff_state.js b/app/assets/javascripts/diffs/store/modules/diff_state.js
index d5e1a05f4a5..3b6408e6d78 100644
--- a/app/assets/javascripts/diffs/store/modules/diff_state.js
+++ b/app/assets/javascripts/diffs/store/modules/diff_state.js
@@ -37,4 +37,5 @@ export default () => ({
mrReviews: {},
latestDiff: true,
disableVirtualScroller: false,
+ pinnedFileHash: null,
});
diff --git a/app/assets/javascripts/diffs/store/mutation_types.js b/app/assets/javascripts/diffs/store/mutation_types.js
index b155804c70c..7b19f96b151 100644
--- a/app/assets/javascripts/diffs/store/mutation_types.js
+++ b/app/assets/javascripts/diffs/store/mutation_types.js
@@ -6,6 +6,7 @@ export const SET_RETRIEVING_BATCHES = 'SET_RETRIEVING_BATCHES';
export const SET_DIFF_METADATA = 'SET_DIFF_METADATA';
export const SET_DIFF_DATA_BATCH = 'SET_DIFF_DATA_BATCH';
export const SET_DIFF_FILES = 'SET_DIFF_FILES';
+export const SET_DIFF_TREE_ENTRY = 'SET_DIFF_TREE_ENTRY';
export const SET_MR_FILE_REVIEWS = 'SET_MR_FILE_REVIEWS';
@@ -23,6 +24,7 @@ export const TREE_ENTRY_DIFF_LOADING = 'TREE_ENTRY_DIFF_LOADING';
export const SET_SHOW_TREE_LIST = 'SET_SHOW_TREE_LIST';
export const SET_CURRENT_DIFF_FILE = 'SET_CURRENT_DIFF_FILE';
export const SET_DIFF_FILE_VIEWED = 'SET_DIFF_FILE_VIEWED';
+export const SET_PINNED_FILE_HASH = 'SET_PINNED_FILE_HASH';
export const OPEN_DIFF_FILE_COMMENT_FORM = 'OPEN_DIFF_FILE_COMMENT_FORM';
export const UPDATE_DIFF_FILE_COMMENT_FORM = 'UPDATE_DIFF_FILE_COMMENT_FORM';
diff --git a/app/assets/javascripts/diffs/store/mutations.js b/app/assets/javascripts/diffs/store/mutations.js
index bc5ed3c40df..3c750830baa 100644
--- a/app/assets/javascripts/diffs/store/mutations.js
+++ b/app/assets/javascripts/diffs/store/mutations.js
@@ -81,15 +81,27 @@ export default {
});
},
- [types.SET_DIFF_DATA_BATCH](state, data) {
+ [types.SET_DIFF_DATA_BATCH](state, { diff_files: diffFiles, updatePosition = true }) {
Object.assign(state, {
diffFiles: prepareDiffData({
- diff: data,
+ diff: { diff_files: diffFiles },
priorFiles: state.diffFiles,
+ // when a pinned file is added to diffs its position may be incorrect since it's loaded out of order
+ // we need to ensure when we load it in batched request it updates it position
+ updatePosition,
}),
treeEntries: markTreeEntriesLoaded({
priorEntries: state.treeEntries,
- loadedFiles: data.diff_files,
+ loadedFiles: diffFiles,
+ }),
+ });
+ },
+
+ [types.SET_DIFF_TREE_ENTRY](state, diffFile) {
+ Object.assign(state, {
+ treeEntries: markTreeEntriesLoaded({
+ priorEntries: state.treeEntries,
+ loadedFiles: [diffFile],
}),
});
},
@@ -404,4 +416,7 @@ export default {
file?.drafts.push(draft);
},
+ [types.SET_PINNED_FILE_HASH](state, fileHash) {
+ state.pinnedFileHash = fileHash;
+ },
};
diff --git a/app/assets/javascripts/diffs/store/utils.js b/app/assets/javascripts/diffs/store/utils.js
index fb467a606b9..ad8cacf8504 100644
--- a/app/assets/javascripts/diffs/store/utils.js
+++ b/app/assets/javascripts/diffs/store/utils.js
@@ -395,9 +395,15 @@ function finalizeDiffFile(file) {
return file;
}
-function deduplicateFilesList(files) {
+function deduplicateFilesList(files, updatePosition) {
const dedupedFiles = files.reduce((newList, file) => {
const id = diffFileUniqueId(file);
+ if (updatePosition && id in newList) {
+ // Object.values preserves key order but doesn't update order when writing to the same key
+ // In order to update position of the item we have to delete it first and then add it back
+ // eslint-disable-next-line no-param-reassign
+ delete newList[id];
+ }
return {
...newList,
@@ -408,14 +414,20 @@ function deduplicateFilesList(files) {
return Object.values(dedupedFiles);
}
-export function prepareDiffData({ diff, priorFiles = [], meta = false }) {
- const cleanedFiles = (diff.diff_files || [])
- .map((file, index, allFiles) => prepareRawDiffFile({ file, allFiles, meta, index }))
- .map(ensureBasicDiffFileLines)
- .map(prepareDiffFileLines)
- .map((file) => finalizeDiffFile(file));
+export function prepareDiffData({ diff, priorFiles = [], meta = false, updatePosition = false }) {
+ const transformersChain = [
+ (file, index, allFiles) => prepareRawDiffFile({ file, index, allFiles, meta }),
+ ensureBasicDiffFileLines,
+ prepareDiffFileLines,
+ finalizeDiffFile,
+ ];
+ const cleanedFiles = (diff.diff_files || []).map((file, index, allFiles) => {
+ return transformersChain.reduce((fileResult, transformer) => {
+ return transformer(fileResult, index, allFiles);
+ }, file);
+ });
- return deduplicateFilesList([...priorFiles, ...cleanedFiles]);
+ return deduplicateFilesList([...priorFiles, ...cleanedFiles], updatePosition);
}
export function getDiffPositionByLineCode(diffFiles) {
diff --git a/app/assets/javascripts/dropzone_input.js b/app/assets/javascripts/dropzone_input.js
index 9ee4f7cf4aa..17744e2c6ab 100644
--- a/app/assets/javascripts/dropzone_input.js
+++ b/app/assets/javascripts/dropzone_input.js
@@ -46,7 +46,6 @@ export default function dropzoneInput(form, config = { parallelUploads: 2 }) {
let hasPlainText;
formTextarea.wrap('<div class="div-dropzone"></div>');
- formTextarea.on('paste', (event) => handlePaste(event));
// Add dropzone area to the form.
const $mdArea = formTextarea.closest('.md-area');
@@ -60,6 +59,8 @@ export default function dropzoneInput(form, config = { parallelUploads: 2 }) {
return null;
}
+ formTextarea.on('paste', (event) => handlePaste(event));
+
const dropzone = $formDropzone.dropzone({
url: uploadsPath,
dictDefaultMessage: '',
diff --git a/app/assets/javascripts/editor/schema/ci.json b/app/assets/javascripts/editor/schema/ci.json
index 1fb68394912..3fbd4728cfc 100644
--- a/app/assets/javascripts/editor/schema/ci.json
+++ b/app/assets/javascripts/editor/schema/ci.json
@@ -154,6 +154,9 @@
"always",
"never"
]
+ },
+ "auto_cancel": {
+ "$ref": "#/definitions/workflowAutoCancel"
}
},
"additionalProperties": false
@@ -528,6 +531,12 @@
"type": "string",
"minLength": 1,
"description": "Image architecture to pull."
+ },
+ "user": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 255,
+ "description": "Username or UID to use for the container."
}
}
},
@@ -603,6 +612,12 @@
"type": "string",
"minLength": 1,
"description": "Image architecture to pull."
+ },
+ "user": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 255,
+ "description": "Username or UID to use for the container."
}
}
},
@@ -735,6 +750,30 @@
}
]
},
+ "gcp_secret_manager": {
+ "type": "object",
+ "markdownDescription": "Defines the secret version to be fetched from GCP Secret Manager. Name refers to the secret name in GCP secret manager. Version refers to the desired secret version (defaults to 'latest').",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "version": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": "version"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "additionalProperties": false
+ },
"azure_key_vault": {
"type": "object",
"properties": {
@@ -757,7 +796,7 @@
},
"token": {
"type": "string",
- "description": "Specifies the JWT variable that should be used to authenticate with Hashicorp Vault."
+ "description": "Specifies the JWT variable that should be used to authenticate with the secret provider."
}
},
"anyOf": [
@@ -770,8 +809,18 @@
"required": [
"azure_key_vault"
]
+ },
+ {
+ "required": [
+ "gcp_secret_manager"
+ ]
}
],
+ "dependencies": {
+ "gcp_secret_manager": [
+ "token"
+ ]
+ },
"additionalProperties": false
}
}
@@ -944,7 +993,8 @@
},
"workflowAutoCancel": {
"type": "object",
- "markdownDescription": "Define the rules for when pipeline should be automatically cancelled.",
+ "description": "Define the rules for when pipeline should be automatically cancelled.",
+ "additionalProperties": false,
"properties": {
"on_job_failure": {
"markdownDescription": "Define which jobs to stop after a job fails.",
@@ -954,6 +1004,15 @@
"none",
"all"
]
+ },
+ "on_new_commit": {
+ "markdownDescription": "Configure the behavior of the auto-cancel redundant pipelines feature. [Learn More](https://docs.gitlab.com/ee/ci/yaml/#workflowauto_cancelon_new_commit)",
+ "type": "string",
+ "enum": [
+ "conservative",
+ "interruptible",
+ "none"
+ ]
}
}
},
diff --git a/app/assets/javascripts/entrypoints/analytics.js b/app/assets/javascripts/entrypoints/analytics.js
index e18c4bc8742..f5c61d82f64 100644
--- a/app/assets/javascripts/entrypoints/analytics.js
+++ b/app/assets/javascripts/entrypoints/analytics.js
@@ -13,6 +13,10 @@ if (appId && host) {
performanceTiming: false,
errorTracking: false,
},
+ pagePingTracking: {
+ minimumVisitLength: 10,
+ heartbeatDelay: 10,
+ },
});
const userId = window.gl?.snowplowStandardContext?.data?.user_id;
diff --git a/app/assets/javascripts/entrypoints/sandboxed_swagger.js b/app/assets/javascripts/entrypoints/sandboxed_swagger.js
new file mode 100644
index 00000000000..993896e6a2a
--- /dev/null
+++ b/app/assets/javascripts/entrypoints/sandboxed_swagger.js
@@ -0,0 +1 @@
+import '../lib/swagger';
diff --git a/app/assets/javascripts/environments/components/kubernetes_status_bar.vue b/app/assets/javascripts/environments/components/kubernetes_status_bar.vue
index 20ed67f6bd9..8b305160b2b 100644
--- a/app/assets/javascripts/environments/components/kubernetes_status_bar.vue
+++ b/app/assets/javascripts/environments/components/kubernetes_status_bar.vue
@@ -6,6 +6,8 @@ import {
SYNC_STATUS_BADGES,
STATUS_TRUE,
STATUS_FALSE,
+ STATUS_UNKNOWN,
+ REASON_PROGRESSING,
HELM_RELEASES_RESOURCE_TYPE,
KUSTOMIZATIONS_RESOURCE_TYPE,
} from '../constants';
@@ -115,6 +117,15 @@ export default {
return condition.status === STATUS_TRUE && condition.type === 'Stalled';
});
},
+ fluxAnyReconcilingWithBadConfig() {
+ return this.fluxCRD.find((condition) => {
+ return (
+ condition.status === STATUS_UNKNOWN &&
+ condition.type === 'Ready' &&
+ condition.reason === REASON_PROGRESSING
+ );
+ });
+ },
fluxAnyReconciling() {
return this.fluxCRD.find((condition) => {
return condition.status === STATUS_TRUE && condition.type === 'Reconciling';
@@ -143,6 +154,12 @@ export default {
if (this.fluxAnyStalled) {
return { ...SYNC_STATUS_BADGES.stalled, popoverText: this.fluxAnyStalled.message };
}
+ if (this.fluxAnyReconcilingWithBadConfig) {
+ return {
+ ...SYNC_STATUS_BADGES.reconciling,
+ popoverText: this.fluxAnyReconcilingWithBadConfig.message,
+ };
+ }
if (this.fluxAnyReconciling) {
return SYNC_STATUS_BADGES.reconciling;
}
diff --git a/app/assets/javascripts/environments/components/kubernetes_tabs.vue b/app/assets/javascripts/environments/components/kubernetes_tabs.vue
index 0d80b1fd797..da37df3fae7 100644
--- a/app/assets/javascripts/environments/components/kubernetes_tabs.vue
+++ b/app/assets/javascripts/environments/components/kubernetes_tabs.vue
@@ -1,9 +1,12 @@
<script>
import { GlTabs, GlTab, GlLoadingIcon, GlBadge, GlTable, GlPagination } from '@gitlab/ui';
import { __, s__ } from '~/locale';
-import { getAge } from '~/kubernetes_dashboard/helpers/k8s_integration_helper';
+import {
+ getAge,
+ generateServicePortsString,
+} from '~/kubernetes_dashboard/helpers/k8s_integration_helper';
+import { SERVICES_TABLE_FIELDS } from '~/kubernetes_dashboard/constants';
import k8sServicesQuery from '../graphql/queries/k8s_services.query.graphql';
-import { generateServicePortsString } from '../helpers/k8s_integration_helper';
import { SERVICES_LIMIT_PER_PAGE } from '../constants';
import KubernetesSummary from './kubernetes_summary.vue';
@@ -82,6 +85,14 @@ export default {
? null
: nextPage;
},
+ servicesFields() {
+ return SERVICES_TABLE_FIELDS.map((field) => {
+ return {
+ ...field,
+ thClass: tableHeadingClasses,
+ };
+ });
+ },
},
i18n: {
servicesTitle: s__('Environment|Services'),
@@ -94,43 +105,6 @@ export default {
ports: s__('Environment|Ports'),
age: s__('Environment|Age'),
},
- servicesFields: [
- {
- key: 'name',
- label: __('Name'),
- thClass: tableHeadingClasses,
- },
- {
- key: 'namespace',
- label: __('Namespace'),
- thClass: tableHeadingClasses,
- },
- {
- key: 'type',
- label: __('Type'),
- thClass: tableHeadingClasses,
- },
- {
- key: 'clusterIP',
- label: s__('Environment|Cluster IP'),
- thClass: tableHeadingClasses,
- },
- {
- key: 'externalIP',
- label: s__('Environment|External IP'),
- thClass: tableHeadingClasses,
- },
- {
- key: 'ports',
- label: s__('Environment|Ports'),
- thClass: tableHeadingClasses,
- },
- {
- key: 'age',
- label: s__('Environment|Age'),
- thClass: tableHeadingClasses,
- },
- ],
SERVICES_LIMIT_PER_PAGE,
};
</script>
@@ -154,7 +128,7 @@ export default {
<gl-table
v-else
- :fields="$options.servicesFields"
+ :fields="servicesFields"
:items="servicesItems"
:per-page="$options.SERVICES_LIMIT_PER_PAGE"
:current-page="currentPage"
diff --git a/app/assets/javascripts/environments/components/new_environment_item.vue b/app/assets/javascripts/environments/components/new_environment_item.vue
index aacb460a817..8bd55e697fa 100644
--- a/app/assets/javascripts/environments/components/new_environment_item.vue
+++ b/app/assets/javascripts/environments/components/new_environment_item.vue
@@ -368,6 +368,7 @@ export default {
</div>
<div v-if="clusterAgent" :class="$options.kubernetesOverviewClasses">
<kubernetes-overview
+ :class="{ 'gl-ml-7': inFolder }"
:cluster-agent="clusterAgent"
:namespace="kubernetesNamespace"
:flux-resource-path="fluxResourcePath"
diff --git a/app/assets/javascripts/environments/components/stop_environment_modal.vue b/app/assets/javascripts/environments/components/stop_environment_modal.vue
index b583694e154..76fa0c9bcb2 100644
--- a/app/assets/javascripts/environments/components/stop_environment_modal.vue
+++ b/app/assets/javascripts/environments/components/stop_environment_modal.vue
@@ -1,13 +1,15 @@
<script>
import { GlSprintf, GlTooltipDirective, GlModal } from '@gitlab/ui';
import { __, s__ } from '~/locale';
-import { DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility';
+import { helpPagePath } from '~/helpers/help_page_helper';
import eventHub from '../event_hub';
import stopEnvironmentMutation from '../graphql/mutations/stop_environment.mutation.graphql';
export default {
- yamlDocsLink: `${DOCS_URL_IN_EE_DIR}/ee/ci/yaml/`,
- stoppingEnvironmentDocsLink: `${DOCS_URL_IN_EE_DIR}/environments/#stopping-an-environment`,
+ yamlDocsLink: helpPagePath('ci/yaml/index'),
+ stoppingEnvironmentDocsLink: helpPagePath('ci/environments/index', {
+ anchor: 'stopping-an-environment',
+ }),
id: 'stop-environment-modal',
name: 'StopEnvironmentModal',
diff --git a/app/assets/javascripts/environments/constants.js b/app/assets/javascripts/environments/constants.js
index 2fe9008c042..c996d70af52 100644
--- a/app/assets/javascripts/environments/constants.js
+++ b/app/assets/javascripts/environments/constants.js
@@ -154,6 +154,9 @@ export const SYNC_STATUS_BADGES = {
export const STATUS_TRUE = 'True';
export const STATUS_FALSE = 'False';
+export const STATUS_UNKNOWN = 'Unknown';
+
+export const REASON_PROGRESSING = 'Progressing';
const ERROR_UNAUTHORIZED = 'unauthorized';
const ERROR_FORBIDDEN = 'forbidden';
diff --git a/app/assets/javascripts/environments/folder/environments_folder_bundle.js b/app/assets/javascripts/environments/folder/environments_folder_bundle.js
index 0201fb53f77..05a2eba6af3 100644
--- a/app/assets/javascripts/environments/folder/environments_folder_bundle.js
+++ b/app/assets/javascripts/environments/folder/environments_folder_bundle.js
@@ -3,6 +3,7 @@ import VueApollo from 'vue-apollo';
import VueRouter from 'vue-router';
import createDefaultClient from '~/lib/graphql';
import Translate from '~/vue_shared/translate';
+import { removeLastSlashInUrlPath } from '~/lib/utils/url_utility';
import { apolloProvider } from '../graphql/client';
import EnvironmentsFolderView from './environments_folder_view.vue';
import EnvironmentsFolderApp from './environments_folder_app.vue';
@@ -20,10 +21,9 @@ export default () => {
if (gon.features.environmentsFolderNewLook) {
Vue.use(VueRouter);
- const folderName = environmentsData.environmentsDataFolderName;
- const folderPath = environmentsData.environmentsDataEndpoint.replace('.json', '');
- const projectPath = environmentsData.environmentsDataProjectPath;
- const helpPagePath = environmentsData.environmentsDataHelpPagePath;
+ const folderPath = environmentsData.endpoint.replace('.json', '');
+ const kasTunnelUrl = removeLastSlashInUrlPath(environmentsData.kasTunnelUrl);
+ const { projectPath, folderName, helpPagePath } = environmentsData;
const router = new VueRouter({
mode: 'history',
@@ -54,6 +54,7 @@ export default () => {
provide: {
projectPath,
helpPagePath,
+ kasTunnelUrl,
},
apolloProvider,
router,
@@ -74,8 +75,8 @@ export default () => {
},
data() {
return {
- endpoint: environmentsData.environmentsDataEndpoint,
- folderName: environmentsData.environmentsDataFolderName,
+ endpoint: environmentsData.endpoint,
+ folderName: environmentsData.folderName,
cssContainerClass: environmentsData.cssClass,
};
},
diff --git a/app/assets/javascripts/environments/graphql/client.js b/app/assets/javascripts/environments/graphql/client.js
index 0eb12427914..de89934cd52 100644
--- a/app/assets/javascripts/environments/graphql/client.js
+++ b/app/assets/javascripts/environments/graphql/client.js
@@ -174,6 +174,8 @@ export const apolloProvider = (endpoint) => {
cache.writeQuery({
query: fluxKustomizationStatusQuery,
data: {
+ message: '',
+ reason: '',
status: '',
type: '',
},
@@ -181,6 +183,8 @@ export const apolloProvider = (endpoint) => {
cache.writeQuery({
query: fluxHelmReleaseStatusQuery,
data: {
+ message: '',
+ reason: '',
status: '',
type: '',
},
diff --git a/app/assets/javascripts/environments/graphql/queries/flux_helm_release_status.query.graphql b/app/assets/javascripts/environments/graphql/queries/flux_helm_release_status.query.graphql
index 042bdc1992d..35f7fe56b47 100644
--- a/app/assets/javascripts/environments/graphql/queries/flux_helm_release_status.query.graphql
+++ b/app/assets/javascripts/environments/graphql/queries/flux_helm_release_status.query.graphql
@@ -2,6 +2,7 @@ query getFluxHelmReleaseStatusQuery($configuration: LocalConfiguration, $fluxRes
fluxHelmReleaseStatus(configuration: $configuration, fluxResourcePath: $fluxResourcePath)
@client {
message
+ reason
status
type
}
diff --git a/app/assets/javascripts/environments/graphql/queries/flux_kustomization_status.query.graphql b/app/assets/javascripts/environments/graphql/queries/flux_kustomization_status.query.graphql
index 458b8a4d9db..8564b306d5b 100644
--- a/app/assets/javascripts/environments/graphql/queries/flux_kustomization_status.query.graphql
+++ b/app/assets/javascripts/environments/graphql/queries/flux_kustomization_status.query.graphql
@@ -5,6 +5,7 @@ query getFluxHelmKustomizationStatusQuery(
fluxKustomizationStatus(configuration: $configuration, fluxResourcePath: $fluxResourcePath)
@client {
message
+ reason
status
type
}
diff --git a/app/assets/javascripts/environments/helpers/k8s_integration_helper.js b/app/assets/javascripts/environments/helpers/k8s_integration_helper.js
index bb5cab7c279..99d5ee44b6c 100644
--- a/app/assets/javascripts/environments/helpers/k8s_integration_helper.js
+++ b/app/assets/javascripts/environments/helpers/k8s_integration_helper.js
@@ -2,21 +2,17 @@ import {
calculateDeploymentStatus,
calculateStatefulSetStatus,
calculateDaemonSetStatus,
+ calculateJobStatus,
+ calculateCronJobStatus,
} from '~/kubernetes_dashboard/helpers/k8s_integration_helper';
-import { STATUS_READY, STATUS_FAILED } from '~/kubernetes_dashboard/constants';
+import {
+ STATUS_READY,
+ STATUS_FAILED,
+ STATUS_COMPLETED,
+ STATUS_SUSPENDED,
+} from '~/kubernetes_dashboard/constants';
import { CLUSTER_AGENT_ERROR_MESSAGES } from '../constants';
-export function generateServicePortsString(ports) {
- if (!ports?.length) return '';
-
- return ports
- .map((port) => {
- const nodePort = port.nodePort ? `:${port.nodePort}` : '';
- return `${port.port}${nodePort}/${port.protocol}`;
- })
- .join(', ');
-}
-
export function getDeploymentsStatuses(items) {
const failed = [];
const ready = [];
@@ -45,13 +41,14 @@ export function getDeploymentsStatuses(items) {
};
}
+const isCompleted = (status) => status === STATUS_COMPLETED;
+const isReady = (status) => status === STATUS_READY;
+const isFailed = (status) => status === STATUS_FAILED;
+const isSuspended = (status) => status === STATUS_SUSPENDED;
+
export function getDaemonSetStatuses(items) {
- const failed = items.filter((item) => {
- return calculateDaemonSetStatus(item) === STATUS_FAILED;
- });
- const ready = items.filter((item) => {
- return calculateDaemonSetStatus(item) === STATUS_READY;
- });
+ const failed = items.filter((item) => isFailed(calculateDaemonSetStatus(item)));
+ const ready = items.filter((item) => isReady(calculateDaemonSetStatus(item)));
return {
...(failed.length && { failed }),
@@ -60,12 +57,8 @@ export function getDaemonSetStatuses(items) {
}
export function getStatefulSetStatuses(items) {
- const failed = items.filter((item) => {
- return calculateStatefulSetStatus(item) === STATUS_FAILED;
- });
- const ready = items.filter((item) => {
- return calculateStatefulSetStatus(item) === STATUS_READY;
- });
+ const failed = items.filter((item) => isFailed(calculateStatefulSetStatus(item)));
+ const ready = items.filter((item) => isReady(calculateStatefulSetStatus(item)));
return {
...(failed.length && { failed }),
@@ -74,12 +67,8 @@ export function getStatefulSetStatuses(items) {
}
export function getReplicaSetStatuses(items) {
- const failed = items.filter((item) => {
- return calculateStatefulSetStatus(item) === STATUS_FAILED;
- });
- const ready = items.filter((item) => {
- return calculateStatefulSetStatus(item) === STATUS_READY;
- });
+ const failed = items.filter((item) => isFailed(calculateStatefulSetStatus(item)));
+ const ready = items.filter((item) => isReady(calculateStatefulSetStatus(item)));
return {
...(failed.length && { failed }),
@@ -88,12 +77,8 @@ export function getReplicaSetStatuses(items) {
}
export function getJobsStatuses(items) {
- const failed = items.filter((item) => {
- return item.status.failed > 0 || item.status?.succeeded !== item.spec?.completions;
- });
- const completed = items.filter((item) => {
- return item.status?.succeeded === item.spec?.completions;
- });
+ const failed = items.filter((item) => isFailed(calculateJobStatus(item)));
+ const completed = items.filter((item) => isCompleted(calculateJobStatus(item)));
return {
...(failed.length && { failed }),
@@ -107,11 +92,11 @@ export function getCronJobsStatuses(items) {
const suspended = [];
items.forEach((item) => {
- if (item.status?.active > 0 && !item.status?.lastScheduleTime) {
+ if (isFailed(calculateCronJobStatus(item))) {
failed.push(item);
- } else if (item.spec?.suspend) {
+ } else if (isSuspended(calculateCronJobStatus(item))) {
suspended.push(item);
- } else if (item.status?.lastScheduleTime) {
+ } else if (isReady(calculateCronJobStatus(item))) {
ready.push(item);
}
});
diff --git a/app/assets/javascripts/error_tracking/components/error_details_info.vue b/app/assets/javascripts/error_tracking/components/error_details_info.vue
index 0b4eabe25d1..3db946acdfc 100644
--- a/app/assets/javascripts/error_tracking/components/error_details_info.vue
+++ b/app/assets/javascripts/error_tracking/components/error_details_info.vue
@@ -74,7 +74,9 @@ export default {
</template>
</gl-card>
+ <!-- user count is currently not supported for integrated error tracking https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/2345 -->
<gl-card
+ v-if="!error.integrated"
:class="$options.CARD_CLASS"
:body-class="$options.BODY_CLASS"
:header-class="$options.HEADER_CLASS"
diff --git a/app/assets/javascripts/error_tracking/components/error_tracking_list.vue b/app/assets/javascripts/error_tracking/components/error_tracking_list.vue
index 95ae5e5a92c..95b47a9e491 100644
--- a/app/assets/javascripts/error_tracking/components/error_tracking_list.vue
+++ b/app/assets/javascripts/error_tracking/components/error_tracking_list.vue
@@ -76,7 +76,7 @@ export default {
{
key: 'status',
label: '',
- tdClass: `${tableDataClass}`,
+ tdClass: `${tableDataClass} gl-text-center`,
},
],
statusFilters: {
@@ -182,6 +182,13 @@ export default {
showIntegratedDisabledAlert() {
return !this.isAlertDismissed && this.showIntegratedTrackingDisabledAlert;
},
+ fields() {
+ if (this.integratedErrorTrackingEnabled) {
+ // user count is currently not supported for integrated error tracking https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/2345
+ return this.$options.fields.filter((field) => field.key !== 'users');
+ }
+ return this.$options.fields;
+ },
},
watch: {
pagination() {
@@ -417,7 +424,7 @@ export default {
<gl-table
class="error-list-table gl-mt-5"
:items="errors"
- :fields="$options.fields"
+ :fields="fields"
:show-empty="true"
fixed
stacked="md"
diff --git a/app/assets/javascripts/gfm_auto_complete.js b/app/assets/javascripts/gfm_auto_complete.js
index b11f7b1ba76..f1e46262b2f 100644
--- a/app/assets/javascripts/gfm_auto_complete.js
+++ b/app/assets/javascripts/gfm_auto_complete.js
@@ -3,6 +3,7 @@ import '~/lib/utils/jquery_at_who';
import { escape as lodashEscape, sortBy, template, escapeRegExp } from 'lodash';
import * as Emoji from '~/emoji';
import axios from '~/lib/utils/axios_utils';
+import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
import { loadingIconForLegacyJS } from '~/loading_icon_for_legacy_js';
import { s__, __, sprintf } from '~/locale';
import { isUserBusy } from '~/set_status_modal/utils';
@@ -26,6 +27,8 @@ export const CONTACT_STATE_ACTIVE = 'active';
export const CONTACTS_ADD_COMMAND = '/add_contacts';
export const CONTACTS_REMOVE_COMMAND = '/remove_contacts';
+const useMentionsBackendFiltering = window.gon.features?.mentionAutocompleteBackendFiltering;
+
/**
* Escapes user input before we pass it to at.js, which
* renders it as HTML in the autocomplete dropdown.
@@ -62,6 +65,8 @@ export function showAndHideHelper($input, alias = '') {
});
}
+// This should be kept in sync with the backend filtering in
+// `User#gfm_autocomplete_search` and `Namespace#gfm_autocomplete_search`
function createMemberSearchString(member) {
return `${member.name.replace(/ /g, '')} ${member.username}`;
}
@@ -344,6 +349,7 @@ class GfmAutoComplete {
}
setupMembers($input) {
+ const instance = this;
const fetchData = this.fetchData.bind(this);
const MEMBER_COMMAND = {
ASSIGN: '/assign',
@@ -383,6 +389,7 @@ class GfmAutoComplete {
// eslint-disable-next-line no-template-curly-in-string
insertTpl: '${atwho-at}${username}',
limit: 10,
+ delay: useMentionsBackendFiltering ? DEFAULT_DEBOUNCE_AND_THROTTLE_MS : null,
searchKey: 'search',
alwaysHighlightFirst: true,
skipSpecialCharacterTest: true,
@@ -409,16 +416,19 @@ class GfmAutoComplete {
const match = GfmAutoComplete.defaultMatcher(flag, subtext, this.app.controllers);
return match && match.length ? match[1] : null;
},
- filter(query, data, searchKey) {
- if (GfmAutoComplete.isLoading(data)) {
+ filter(query, data) {
+ if (useMentionsBackendFiltering) {
+ if (GfmAutoComplete.isLoading(data) || instance.previousQuery !== query) {
+ instance.previousQuery = query;
+
+ fetchData(this.$inputor, this.at, query);
+ return data;
+ }
+ } else if (GfmAutoComplete.isLoading(data)) {
fetchData(this.$inputor, this.at);
return data;
}
- if (data === GfmAutoComplete.defaultLoadingData) {
- return $.fn.atwho.default.callbacks.filter(query, data, searchKey);
- }
-
if (command === MEMBER_COMMAND.ASSIGN) {
// Only include members which are not assigned to Issuable currently
return data.filter((member) => !assignees.includes(member.search));
@@ -988,6 +998,11 @@ GfmAutoComplete.atTypeMap = {
};
GfmAutoComplete.typesWithBackendFiltering = ['vulnerabilities'];
+
+if (useMentionsBackendFiltering) {
+ GfmAutoComplete.typesWithBackendFiltering.push('members');
+}
+
GfmAutoComplete.isTypeWithBackendFiltering = (type) =>
GfmAutoComplete.typesWithBackendFiltering.includes(GfmAutoComplete.atTypeMap[type]);
@@ -1040,6 +1055,8 @@ GfmAutoComplete.Members = {
// `member.search` is a name:username string like `MargeSimpson msimpson`
return member.search.toLowerCase().includes(query);
},
+ // This should be kept in sync with the backend sorting in
+ // `User#gfm_autocomplete_search` and `Namespace#gfm_autocomplete_search`
sort(query, members) {
const lowercaseQuery = query.toLowerCase();
const { nameOrUsernameStartsWith, nameOrUsernameIncludes } = GfmAutoComplete.Members;
diff --git a/app/assets/javascripts/graphql_shared/issuable_client.js b/app/assets/javascripts/graphql_shared/issuable_client.js
index d0ba34b6127..8e19de9f7c2 100644
--- a/app/assets/javascripts/graphql_shared/issuable_client.js
+++ b/app/assets/javascripts/graphql_shared/issuable_client.js
@@ -1,6 +1,5 @@
import produce from 'immer';
import VueApollo from 'vue-apollo';
-import { defaultDataIdFromObject } from '@apollo/client/core';
import { concatPagination } from '@apollo/client/utilities';
import errorQuery from '~/boards/graphql/client/error.query.graphql';
import selectedBoardItemsQuery from '~/boards/graphql/client/selected_board_items.query.graphql';
@@ -14,13 +13,6 @@ import activeBoardItemQuery from 'ee_else_ce/boards/graphql/client/active_board_
export const config = {
typeDefs,
cacheConfig: {
- // included temporarily until Vuex is removed from boards app
- dataIdFromObject: (object) => {
- // eslint-disable-next-line no-underscore-dangle
- return object.__typename === 'BoardList' && !window.gon?.features?.apolloBoards
- ? object.iid
- : defaultDataIdFromObject(object);
- },
typePolicies: {
Query: {
fields: {
@@ -34,6 +26,12 @@ export const config = {
return currentState ?? [];
},
},
+ boardList: {
+ keyArgs: ['id'],
+ },
+ epicBoardList: {
+ keyArgs: ['id'],
+ },
},
},
Project: {
@@ -135,104 +133,80 @@ export const config = {
nodes: concatPagination(),
},
},
- ...(window.gon?.features?.apolloBoards
- ? {
- BoardList: {
- fields: {
- issues: {
- keyArgs: ['filters'],
- },
- },
- },
- IssueConnection: {
- merge(existing = { nodes: [] }, incoming, { args }) {
- if (!args?.after) {
- return incoming;
- }
- return {
- ...incoming,
- nodes: [...existing.nodes, ...incoming.nodes],
- };
- },
- },
- EpicList: {
- fields: {
- epics: {
- keyArgs: ['filters'],
- },
- },
- },
- EpicConnection: {
- merge(existing = { nodes: [] }, incoming, { args }) {
- if (!args.after) {
- return incoming;
- }
- return {
- ...incoming,
- nodes: [...existing.nodes, ...incoming.nodes],
- };
- },
- },
- Group: {
- fields: {
- projects: {
- keyArgs: ['includeSubgroups', 'search'],
- },
- descendantGroups: {
- keyArgs: ['includeSubgroups', 'search'],
- },
- },
- },
- ProjectConnection: {
- fields: {
- nodes: concatPagination(),
- },
- },
- GroupConnection: {
- fields: {
- nodes: concatPagination(),
- },
- },
- Board: {
- fields: {
- epics: {
- keyArgs: ['boardId'],
- },
- },
- },
- BoardEpicConnection: {
- merge(existing = { nodes: [] }, incoming, { args }) {
- if (!args.after) {
- return incoming;
- }
- return {
- ...incoming,
- nodes: [...existing.nodes, ...incoming.nodes],
- };
- },
- },
- Query: {
- fields: {
- boardList: {
- keyArgs: ['id'],
- },
- epicBoardList: {
- keyArgs: ['id'],
- },
- isShowingLabels: {
- read(currentState) {
- return currentState ?? true;
- },
- },
- selectedBoardItems: {
- read(currentState) {
- return currentState ?? [];
- },
- },
- },
- },
+ BoardList: {
+ fields: {
+ issues: {
+ keyArgs: ['filters'],
+ },
+ },
+ },
+ IssueConnection: {
+ merge(existing = { nodes: [] }, incoming, { args }) {
+ if (!args?.after) {
+ return incoming;
}
- : {}),
+ return {
+ ...incoming,
+ nodes: [...existing.nodes, ...incoming.nodes],
+ };
+ },
+ },
+ EpicList: {
+ fields: {
+ epics: {
+ keyArgs: ['filters'],
+ },
+ },
+ },
+ EpicConnection: {
+ merge(existing = { nodes: [] }, incoming, { args }) {
+ if (!args?.after) {
+ return incoming;
+ }
+ return {
+ ...incoming,
+ nodes: [...existing.nodes, ...incoming.nodes],
+ };
+ },
+ },
+ Group: {
+ fields: {
+ projects: {
+ keyArgs: ['includeSubgroups', 'search'],
+ },
+ descendantGroups: {
+ keyArgs: ['includeSubgroups', 'search'],
+ },
+ },
+ },
+ ProjectConnection: {
+ fields: {
+ nodes: concatPagination(),
+ },
+ },
+ GroupConnection: {
+ fields: {
+ nodes: concatPagination(),
+ },
+ },
+ Board: {
+ fields: {
+ epics: {
+ keyArgs: ['boardId'],
+ },
+ },
+ },
+ BoardEpicConnection: {
+ merge(existing = { nodes: [] }, incoming, { args }) {
+ if (!args.after) {
+ return incoming;
+ }
+ return {
+ ...incoming,
+ nodes: [...existing.nodes, ...incoming.nodes],
+ };
+ },
+ },
},
},
};
diff --git a/app/assets/javascripts/graphql_shared/possible_types.json b/app/assets/javascripts/graphql_shared/possible_types.json
index 4edad63cc79..fe151c2b358 100644
--- a/app/assets/javascripts/graphql_shared/possible_types.json
+++ b/app/assets/javascripts/graphql_shared/possible_types.json
@@ -187,6 +187,7 @@
"WorkItemWidget": [
"WorkItemWidgetAssignees",
"WorkItemWidgetAwardEmoji",
+ "WorkItemWidgetColor",
"WorkItemWidgetCurrentUserTodos",
"WorkItemWidgetDescription",
"WorkItemWidgetHealthStatus",
@@ -199,6 +200,7 @@
"WorkItemWidgetNotifications",
"WorkItemWidgetProgress",
"WorkItemWidgetRequirementLegacy",
+ "WorkItemWidgetRolledupDates",
"WorkItemWidgetStartAndDueDate",
"WorkItemWidgetStatus",
"WorkItemWidgetTestReports",
diff --git a/app/assets/javascripts/graphql_shared/utils.js b/app/assets/javascripts/graphql_shared/utils.js
index 6a64e8a2fa8..828a18a240e 100644
--- a/app/assets/javascripts/graphql_shared/utils.js
+++ b/app/assets/javascripts/graphql_shared/utils.js
@@ -50,10 +50,10 @@ export const getTypeFromGraphQLId = (gid = '') => {
return type || null;
};
-export const MutationOperationMode = {
- Append: 'APPEND',
- Remove: 'REMOVE',
- Replace: 'REPLACE',
+export const mutationOperationMode = {
+ append: 'APPEND',
+ remove: 'REMOVE',
+ replace: 'REPLACE',
};
/**
diff --git a/app/assets/javascripts/groups/components/app.vue b/app/assets/javascripts/groups/components/app.vue
index 3440bd87e6b..4ede8fda01d 100644
--- a/app/assets/javascripts/groups/components/app.vue
+++ b/app/assets/javascripts/groups/components/app.vue
@@ -22,6 +22,7 @@ export default {
GlLoadingIcon,
GlEmptyState,
},
+ inject: ['emptySearchIllustration'],
props: {
action: {
type: String,
@@ -245,6 +246,7 @@ export default {
<groups-component v-if="hasGroups" :groups="groups" :page-info="pageInfo" :action="action" />
<gl-empty-state
v-else-if="fromSearch"
+ :svg-path="emptySearchIllustration"
:title="$options.i18n.searchEmptyState.title"
:description="$options.i18n.searchEmptyState.description"
data-testid="search-empty-state"
diff --git a/app/assets/javascripts/groups/components/group_item.vue b/app/assets/javascripts/groups/components/group_item.vue
index 3a08e3e546f..6e347a3c95b 100644
--- a/app/assets/javascripts/groups/components/group_item.vue
+++ b/app/assets/javascripts/groups/components/group_item.vue
@@ -20,6 +20,7 @@ import {
VISIBILITY_LEVELS_STRING_TO_INTEGER,
VISIBILITY_TYPE_ICON,
GROUP_VISIBILITY_TYPE,
+ PROJECT_VISIBILITY_TYPE,
} from '~/visibility_level/constants';
import { ITEM_TYPE, ACTIVE_TAB_SHARED } from '../constants';
@@ -105,7 +106,8 @@ export default {
return VISIBILITY_TYPE_ICON[this.group.visibility];
},
visibilityTooltip() {
- return GROUP_VISIBILITY_TYPE[this.group.visibility];
+ if (this.isGroup) return GROUP_VISIBILITY_TYPE[this.group.visibility];
+ return PROJECT_VISIBILITY_TYPE[this.group.visibility];
},
microdata() {
return this.group.microdata || {};
diff --git a/app/assets/javascripts/groups/components/group_name_and_path.vue b/app/assets/javascripts/groups/components/group_name_and_path.vue
index 853fdd7c55e..83953feedbf 100644
--- a/app/assets/javascripts/groups/components/group_name_and_path.vue
+++ b/app/assets/javascripts/groups/components/group_name_and_path.vue
@@ -39,6 +39,9 @@ export default {
'Groups|Must start with letter, digit, emoji, or underscore. Can also contain periods, dashes, spaces, and parentheses.',
),
invalidFeedback: s__('Groups|Enter a descriptive name for your group.'),
+ warningForUsingDotInName: s__(
+ 'Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors.',
+ ),
},
path: {
placeholder: __('my-awesome-group'),
@@ -299,6 +302,14 @@ export default {
@invalid="handleInvalidName"
/>
</gl-form-group>
+ <gl-alert
+ class="gl-mb-5"
+ :dismissible="false"
+ variant="warning"
+ data-testid="dot-in-path-alert"
+ >
+ {{ $options.i18n.inputs.name.warningForUsingDotInName }}
+ </gl-alert>
<div :class="newSubgroup && 'row gl-mb-3'">
<gl-form-group v-if="newSubgroup" class="col-sm-6 gl-pr-0" :label="inputLabels.subgroupPath">
@@ -386,7 +397,12 @@ export default {
</div>
<template v-if="isEditingGroup">
- <gl-alert class="gl-mb-5" :dismissible="false" variant="warning">
+ <gl-alert
+ class="gl-mb-5"
+ :dismissible="false"
+ variant="warning"
+ data-testid="changing-url-alert"
+ >
{{ $options.i18n.changingUrlWarningMessage }}
<gl-link :href="$options.changingGroupPathHelpPagePath"
>{{ $options.i18n.learnMore }}
diff --git a/app/assets/javascripts/groups/components/overview_tabs.vue b/app/assets/javascripts/groups/components/overview_tabs.vue
index 8781f03a412..82bd4765986 100644
--- a/app/assets/javascripts/groups/components/overview_tabs.vue
+++ b/app/assets/javascripts/groups/components/overview_tabs.vue
@@ -1,5 +1,5 @@
<script>
-import { GlTabs, GlTab, GlSearchBoxByType, GlSorting, GlSortingItem } from '@gitlab/ui';
+import { GlTabs, GlTab, GlSearchBoxByType, GlSorting } from '@gitlab/ui';
import { isString, debounce } from 'lodash';
import { __ } from '~/locale';
import { DEBOUNCE_DELAY } from '~/vue_shared/components/filtered_search_bar/constants';
@@ -30,7 +30,6 @@ export default {
GroupsApp,
GlSearchBoxByType,
GlSorting,
- GlSortingItem,
SubgroupsAndProjectsEmptyState,
SharedProjectsEmptyState,
ArchivedProjectsEmptyState,
@@ -84,6 +83,9 @@ export default {
sortQueryStringValue() {
return this.isAscending ? this.sort.asc : this.sort.desc;
},
+ activeTabSortOptions() {
+ return this.activeTab.sortingItems.map(({ label }) => ({ value: label, text: label }));
+ },
},
mounted() {
this.search = this.$route.query?.filter || '';
@@ -178,12 +180,14 @@ export default {
this.handleSearchOrSortChange();
},
- handleSortingItemClick(sortingItem) {
- if (sortingItem === this.sort) {
+ handleSortingItemClick(value) {
+ const selectedSortingItem = this.activeTab.sortingItems.find((item) => item.label === value);
+
+ if (selectedSortingItem === this.sort) {
return;
}
- this.sort = sortingItem;
+ this.sort = selectedSortingItem;
this.handleSearchOrSortChange();
},
@@ -239,16 +243,11 @@ export default {
data-testid="group_sort_by_dropdown"
:text="sort.label"
:is-ascending="isAscending"
+ :sort-options="activeTabSortOptions"
+ :sort-by="sort.label"
+ @sortByChange="handleSortingItemClick"
@sortDirectionChange="handleSortDirectionChange"
- >
- <gl-sorting-item
- v-for="sortingItem in activeTab.sortingItems"
- :key="sortingItem.label"
- :active="sortingItem === sort"
- @click="handleSortingItemClick(sortingItem)"
- >{{ sortingItem.label }}</gl-sorting-item
- >
- </gl-sorting>
+ />
</div>
</div>
</li>
diff --git a/app/assets/javascripts/groups/init_overview_tabs.js b/app/assets/javascripts/groups/init_overview_tabs.js
index 80dd1d36734..2f03705b453 100644
--- a/app/assets/javascripts/groups/init_overview_tabs.js
+++ b/app/assets/javascripts/groups/init_overview_tabs.js
@@ -47,6 +47,7 @@ export const initGroupOverviewTabs = () => {
newProjectIllustration,
emptyProjectsIllustration,
emptySubgroupIllustration,
+ emptySearchIllustration,
canCreateSubgroups,
canCreateProjects,
currentGroupVisibility,
@@ -67,6 +68,7 @@ export const initGroupOverviewTabs = () => {
newProjectIllustration,
emptyProjectsIllustration,
emptySubgroupIllustration,
+ emptySearchIllustration,
canCreateSubgroups: parseBoolean(canCreateSubgroups),
canCreateProjects: parseBoolean(canCreateProjects),
currentGroupVisibility,
diff --git a/app/assets/javascripts/groups/settings/api/access_dropdown_api.js b/app/assets/javascripts/groups/settings/api/access_dropdown_api.js
index 5560d10d179..37f95a7ab30 100644
--- a/app/assets/javascripts/groups/settings/api/access_dropdown_api.js
+++ b/app/assets/javascripts/groups/settings/api/access_dropdown_api.js
@@ -7,10 +7,15 @@ const buildUrl = (urlRoot, url) => {
return joinPaths(urlRoot, url);
};
-export const getSubGroups = () => {
+const defaultOptions = { includeParentDescendants: false };
+
+export const getSubGroups = (options = defaultOptions) => {
+ const { includeParentDescendants } = options;
+
return axios.get(buildUrl(gon.relative_url_root || '', GROUP_SUBGROUPS_PATH), {
params: {
group_id: gon.current_group_id,
+ include_parent_descendants: includeParentDescendants,
},
});
};
diff --git a/app/assets/javascripts/groups/settings/components/access_dropdown.vue b/app/assets/javascripts/groups/settings/components/access_dropdown.vue
index 457a2db174c..fee1383c8e2 100644
--- a/app/assets/javascripts/groups/settings/components/access_dropdown.vue
+++ b/app/assets/javascripts/groups/settings/components/access_dropdown.vue
@@ -93,7 +93,11 @@ export default {
this.loading = true;
if (this.hasLicense) {
- Promise.all([this.groups.length ? Promise.resolve({ data: this.groups }) : getSubGroups()])
+ Promise.all([
+ this.groups.length
+ ? Promise.resolve({ data: this.groups })
+ : getSubGroups({ includeParentDescendants: true }),
+ ])
.then(([groupsResponse]) => {
this.consolidateData(groupsResponse.data);
this.setSelected({ initial });
diff --git a/app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue b/app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue
index 76b0b819698..238e382fabe 100644
--- a/app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue
+++ b/app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue
@@ -2,6 +2,7 @@
import {
GlButton,
GlDisclosureDropdownItem,
+ GlDisclosureDropdownGroup,
GlDisclosureDropdown,
GlIcon,
GlTooltipDirective,
@@ -13,6 +14,7 @@ export default {
components: {
GlButton,
GlDisclosureDropdownItem,
+ GlDisclosureDropdownGroup,
GlDisclosureDropdown,
GlIcon,
},
@@ -32,6 +34,9 @@ export default {
namespaceType() {
return this.isGroup ? WORKSPACE_GROUP : WORKSPACE_PROJECT;
},
+ hasPath() {
+ return this.leavePath || this.withdrawPath || this.requestAccessPath;
+ },
leaveTitle() {
return this.isGroup
? this.$options.i18n.groupLeaveTitle
@@ -143,12 +148,12 @@ export default {
</div>
</template>
- <gl-disclosure-dropdown-item v-if="leavePath" ref="leaveItem" :item="leaveItem" />
-
- <gl-disclosure-dropdown-item v-else-if="withdrawPath" :item="withdrawItem" />
-
- <gl-disclosure-dropdown-item v-else-if="requestAccessPath" :item="requestAccessItem" />
-
<gl-disclosure-dropdown-item v-if="id" :item="copyIdItem" :data-clipboard-text="id" />
+
+ <gl-disclosure-dropdown-group v-if="hasPath" bordered>
+ <gl-disclosure-dropdown-item v-if="leavePath" ref="leaveItem" :item="leaveItem" />
+ <gl-disclosure-dropdown-item v-else-if="withdrawPath" :item="withdrawItem" />
+ <gl-disclosure-dropdown-item v-else-if="requestAccessPath" :item="requestAccessItem" />
+ </gl-disclosure-dropdown-group>
</gl-disclosure-dropdown>
</template>
diff --git a/app/assets/javascripts/ide/components/file_alert.vue b/app/assets/javascripts/ide/components/file_alert.vue
deleted file mode 100644
index 2a894596bf4..00000000000
--- a/app/assets/javascripts/ide/components/file_alert.vue
+++ /dev/null
@@ -1,26 +0,0 @@
-<script>
-import { GlAlert } from '@gitlab/ui';
-import { getAlert } from '../lib/alerts';
-
-export default {
- components: {
- GlAlert,
- },
- props: {
- alertKey: {
- type: Symbol,
- required: true,
- },
- },
- computed: {
- alert() {
- return getAlert(this.alertKey);
- },
- },
-};
-</script>
-<template>
- <gl-alert v-bind="alert.props" @dismiss="alert.dismiss($store)">
- <component :is="alert.message" />
- </gl-alert>
-</template>
diff --git a/app/assets/javascripts/ide/components/repo_editor.vue b/app/assets/javascripts/ide/components/repo_editor.vue
index 8f4f777d396..d2375078820 100644
--- a/app/assets/javascripts/ide/components/repo_editor.vue
+++ b/app/assets/javascripts/ide/components/repo_editor.vue
@@ -1,6 +1,5 @@
<script>
import { GlTabs, GlTab } from '@gitlab/ui';
-import { debounce } from 'lodash';
// eslint-disable-next-line no-restricted-imports
import { mapState, mapGetters, mapActions } from 'vuex';
import {
@@ -29,7 +28,7 @@ import { viewerInformationForPath } from '~/vue_shared/components/content_viewer
import DiffViewer from '~/vue_shared/components/diff_viewer/diff_viewer.vue';
import { markRaw } from '~/lib/utils/vue3compat/mark_raw';
import { readFileAsDataURL } from '~/lib/utils/file_utility';
-import { isDefaultCiConfig, hasCiConfigExtension } from '~/lib/utils/common_utils';
+import { hasCiConfigExtension } from '~/lib/utils/common_utils';
import {
leftSidebarViews,
@@ -43,7 +42,6 @@ import mapRulesToMonaco from '../lib/editorconfig/rules_mapper';
import { getFileEditorOrDefault } from '../stores/modules/editor/utils';
import { extractMarkdownImagesFromEntries } from '../stores/utils';
import { getPathParent, registerSchema, isTextFile } from '../utils';
-import FileAlert from './file_alert.vue';
import FileTemplatesBar from './file_templates/bar.vue';
const MARKDOWN_FILE_TYPE = 'markdown';
@@ -53,7 +51,6 @@ export default {
components: {
GlTabs,
GlTab,
- FileAlert,
ContentViewer,
DiffViewer,
FileTemplatesBar,
@@ -93,7 +90,6 @@ export default {
'previewMarkdownPath',
]),
...mapGetters([
- 'getAlert',
'currentMergeRequest',
'getStagedFile',
'isEditModeActive',
@@ -102,9 +98,6 @@ export default {
'getJsonSchemaForPath',
]),
...mapGetters('fileTemplates', ['showFileTemplatesBar']),
- alertKey() {
- return this.getAlert(this.file);
- },
fileEditor() {
return getFileEditorOrDefault(this.fileEditors, this.file.path);
},
@@ -159,16 +152,6 @@ export default {
},
},
watch: {
- 'file.name': {
- handler() {
- this.stopWatchingCiYaml();
-
- if (isDefaultCiConfig(this.file.name)) {
- this.startWatchingCiYaml();
- }
- },
- immediate: true,
- },
file(newVal, oldVal) {
if (oldVal.pending) {
this.removePendingTab(oldVal);
@@ -235,7 +218,6 @@ export default {
'removePendingTab',
'triggerFilesChange',
'addTempImage',
- 'detectGitlabCiFileAlerts',
]),
...mapActions('editor', ['updateFileEditor']),
initEditor() {
@@ -498,18 +480,6 @@ export default {
this.updateFileEditor({ path: this.file.path, data });
},
- startWatchingCiYaml() {
- this.unwatchCiYaml = this.$watch(
- 'file.content',
- debounce(this.detectGitlabCiFileAlerts, 500),
- );
- },
- stopWatchingCiYaml() {
- if (this.unwatchCiYaml) {
- this.unwatchCiYaml();
- this.unwatchCiYaml = null;
- }
- },
},
viewerTypes,
FILE_VIEW_MODE_EDITOR,
@@ -531,7 +501,6 @@ export default {
@click="updateEditor({ viewMode: $options.FILE_VIEW_MODE_PREVIEW })"
/>
</gl-tabs>
- <file-alert v-if="alertKey" :alert-key="alertKey" />
<file-templates-bar v-else-if="showFileTemplatesBar(file.name)" />
<div
v-show="showEditor"
diff --git a/app/assets/javascripts/ide/index.js b/app/assets/javascripts/ide/index.js
index b09cd7f6643..51c7e69449b 100644
--- a/app/assets/javascripts/ide/index.js
+++ b/app/assets/javascripts/ide/index.js
@@ -70,7 +70,6 @@ export const initLegacyWebIDE = (el, options = {}) => {
this.init({
renderWhitespaceInCode: parseBoolean(el.dataset.renderWhitespaceInCode),
editorTheme: window.gon?.user_color_scheme || DEFAULT_THEME,
- environmentsGuidanceAlertDismissed: !parseBoolean(el.dataset.enableEnvironmentsGuidance),
previewMarkdownPath: el.dataset.previewMarkdownPath,
userPreferencesPath: el.dataset.userPreferencesPath,
});
diff --git a/app/assets/javascripts/ide/lib/alerts/environments.vue b/app/assets/javascripts/ide/lib/alerts/environments.vue
deleted file mode 100644
index bfe101bc7e7..00000000000
--- a/app/assets/javascripts/ide/lib/alerts/environments.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-<!-- eslint-disable vue/multi-word-component-names -->
-<script>
-import { GlSprintf, GlLink } from '@gitlab/ui';
-import { helpPagePath } from '~/helpers/help_page_helper';
-import { __ } from '~/locale';
-
-export default {
- components: { GlSprintf, GlLink },
- message: __(
- "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}",
- ),
- computed: {
- helpLink() {
- return helpPagePath('ci/environments/index.md');
- },
- },
-};
-</script>
-<template>
- <span>
- <gl-sprintf :message="$options.message">
- <template #link="{ content }">
- <gl-link
- :href="helpLink"
- target="_blank"
- data-track-action="click_link"
- data-track-experiment="in_product_guidance_environments_webide"
- >{{ content }}</gl-link
- >
- </template>
- </gl-sprintf>
- </span>
-</template>
diff --git a/app/assets/javascripts/ide/lib/alerts/index.js b/app/assets/javascripts/ide/lib/alerts/index.js
deleted file mode 100644
index ac4eeb0386f..00000000000
--- a/app/assets/javascripts/ide/lib/alerts/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { isDefaultCiConfig } from '~/lib/utils/common_utils';
-import { leftSidebarViews } from '../../constants';
-import EnvironmentsMessage from './environments.vue';
-
-const alerts = [
- {
- key: Symbol('ALERT_ENVIRONMENT'),
- show: (state, file) =>
- state.currentActivityView === leftSidebarViews.commit.name &&
- isDefaultCiConfig(file.path) &&
- state.environmentsGuidanceAlertDetected &&
- !state.environmentsGuidanceAlertDismissed,
- props: { variant: 'tip' },
- dismiss: ({ dispatch }) => dispatch('dismissEnvironmentsGuidance'),
- message: EnvironmentsMessage,
- },
-];
-
-export const findAlertKeyToShow = (...args) => alerts.find((x) => x.show(...args))?.key;
-
-export const getAlert = (key) => alerts.find((x) => x.key === key);
diff --git a/app/assets/javascripts/ide/services/index.js b/app/assets/javascripts/ide/services/index.js
index 1f9bc834140..01e1fd50bcc 100644
--- a/app/assets/javascripts/ide/services/index.js
+++ b/app/assets/javascripts/ide/services/index.js
@@ -1,11 +1,9 @@
import Api from '~/api';
import getIdeProject from 'ee_else_ce/ide/queries/get_ide_project.query.graphql';
-import dismissUserCallout from '~/graphql_shared/mutations/dismiss_user_callout.mutation.graphql';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import axios from '~/lib/utils/axios_utils';
import { joinPaths, escapeFileUrl } from '~/lib/utils/url_utility';
-import ciConfig from '~/ci/pipeline_editor/graphql/queries/ci_config.query.graphql';
-import { query, mutate } from './gql';
+import { query } from './gql';
export default {
getFileData(endpoint) {
@@ -84,18 +82,6 @@ export default {
const url = `${gon.relative_url_root}/${projectPath}/service_ping/web_ide_pipelines_count`;
return axios.post(url);
},
- getCiConfig(projectPath, content) {
- return query({
- query: ciConfig,
- variables: { projectPath, content },
- }).then(({ data }) => data.ciConfig);
- },
- dismissUserCallout(name) {
- return mutate({
- mutation: dismissUserCallout,
- variables: { input: { featureName: name } },
- }).then(({ data }) => data);
- },
getProjectPermissionsData(projectPath) {
return query({
query: getIdeProject,
diff --git a/app/assets/javascripts/ide/stores/actions.js b/app/assets/javascripts/ide/stores/actions.js
index 0106eeae162..bb4b181c56d 100644
--- a/app/assets/javascripts/ide/stores/actions.js
+++ b/app/assets/javascripts/ide/stores/actions.js
@@ -311,4 +311,3 @@ export * from './actions/tree';
export * from './actions/file';
export * from './actions/project';
export * from './actions/merge_request';
-export * from './actions/alert';
diff --git a/app/assets/javascripts/ide/stores/actions/alert.js b/app/assets/javascripts/ide/stores/actions/alert.js
deleted file mode 100644
index 4c33dc19520..00000000000
--- a/app/assets/javascripts/ide/stores/actions/alert.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import service from '../../services';
-import {
- DETECT_ENVIRONMENTS_GUIDANCE_ALERT,
- DISMISS_ENVIRONMENTS_GUIDANCE_ALERT,
-} from '../mutation_types';
-
-export const detectGitlabCiFileAlerts = ({ dispatch }, content) =>
- dispatch('detectEnvironmentsGuidance', content);
-
-export const detectEnvironmentsGuidance = ({ commit, state }, content) =>
- service.getCiConfig(state.currentProjectId, content).then((data) => {
- commit(DETECT_ENVIRONMENTS_GUIDANCE_ALERT, data?.stages);
- });
-
-export const dismissEnvironmentsGuidance = ({ commit }) =>
- service.dismissUserCallout('web_ide_ci_environments_guidance').then(() => {
- commit(DISMISS_ENVIRONMENTS_GUIDANCE_ALERT);
- });
diff --git a/app/assets/javascripts/ide/stores/getters.js b/app/assets/javascripts/ide/stores/getters.js
index 74fe61b6e2f..0f4dbb56e04 100644
--- a/app/assets/javascripts/ide/stores/getters.js
+++ b/app/assets/javascripts/ide/stores/getters.js
@@ -260,5 +260,3 @@ export const getJsonSchemaForPath = (state, getters) => (path) => {
fileMatch: [`*${path}`],
};
};
-
-export * from './getters/alert';
diff --git a/app/assets/javascripts/ide/stores/getters/alert.js b/app/assets/javascripts/ide/stores/getters/alert.js
deleted file mode 100644
index 714e2d89b4f..00000000000
--- a/app/assets/javascripts/ide/stores/getters/alert.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { findAlertKeyToShow } from '../../lib/alerts';
-
-export const getAlert = (state) => (file) => findAlertKeyToShow(state, file);
diff --git a/app/assets/javascripts/ide/stores/mutation_types.js b/app/assets/javascripts/ide/stores/mutation_types.js
index 13f338c4a48..ae6588f948f 100644
--- a/app/assets/javascripts/ide/stores/mutation_types.js
+++ b/app/assets/javascripts/ide/stores/mutation_types.js
@@ -71,8 +71,3 @@ export const RENAME_ENTRY = 'RENAME_ENTRY';
export const REVERT_RENAME_ENTRY = 'REVERT_RENAME_ENTRY';
export const RESTORE_TREE = 'RESTORE_TREE';
-
-// Alert mutation types
-
-export const DETECT_ENVIRONMENTS_GUIDANCE_ALERT = 'DETECT_ENVIRONMENTS_GUIDANCE_ALERT';
-export const DISMISS_ENVIRONMENTS_GUIDANCE_ALERT = 'DISMISS_ENVIRONMENTS_GUIDANCE_ALERT';
diff --git a/app/assets/javascripts/ide/stores/mutations.js b/app/assets/javascripts/ide/stores/mutations.js
index d11fc388d5e..300d352f81c 100644
--- a/app/assets/javascripts/ide/stores/mutations.js
+++ b/app/assets/javascripts/ide/stores/mutations.js
@@ -1,6 +1,5 @@
import Vue from 'vue';
import * as types from './mutation_types';
-import alertMutations from './mutations/alert';
import branchMutations from './mutations/branch';
import fileMutations from './mutations/file';
import mergeRequestMutation from './mutations/merge_request';
@@ -247,5 +246,4 @@ export default {
...fileMutations,
...treeMutations,
...branchMutations,
- ...alertMutations,
};
diff --git a/app/assets/javascripts/ide/stores/mutations/alert.js b/app/assets/javascripts/ide/stores/mutations/alert.js
deleted file mode 100644
index bb2d33a836b..00000000000
--- a/app/assets/javascripts/ide/stores/mutations/alert.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import {
- DETECT_ENVIRONMENTS_GUIDANCE_ALERT,
- DISMISS_ENVIRONMENTS_GUIDANCE_ALERT,
-} from '../mutation_types';
-
-export default {
- [DETECT_ENVIRONMENTS_GUIDANCE_ALERT](state, stages) {
- if (!stages) {
- return;
- }
- const hasEnvironments = stages?.nodes?.some((stage) =>
- stage.groups.nodes.some((group) => group.jobs.nodes.some((job) => job.environment)),
- );
- const hasParsedCi = Array.isArray(stages.nodes);
-
- state.environmentsGuidanceAlertDetected = !hasEnvironments && hasParsedCi;
- },
- [DISMISS_ENVIRONMENTS_GUIDANCE_ALERT](state) {
- state.environmentsGuidanceAlertDismissed = true;
- },
-};
diff --git a/app/assets/javascripts/ide/stores/state.js b/app/assets/javascripts/ide/stores/state.js
index 356bbf28a48..6297231e252 100644
--- a/app/assets/javascripts/ide/stores/state.js
+++ b/app/assets/javascripts/ide/stores/state.js
@@ -28,8 +28,6 @@ export default () => ({
},
renderWhitespaceInCode: false,
editorTheme: DEFAULT_THEME,
- environmentsGuidanceAlertDismissed: false,
- environmentsGuidanceAlertDetected: false,
previewMarkdownPath: '',
userPreferencesPath: '',
});
diff --git a/app/assets/javascripts/import_entities/import_groups/components/import_status.vue b/app/assets/javascripts/import_entities/import_groups/components/import_status.vue
index cdb38cdf7f1..e2c5a4aadb8 100644
--- a/app/assets/javascripts/import_entities/import_groups/components/import_status.vue
+++ b/app/assets/javascripts/import_entities/import_groups/components/import_status.vue
@@ -31,11 +31,6 @@ export default {
required: false,
default: false,
},
- showDetailsLink: {
- type: Boolean,
- required: false,
- default: false,
- },
status: {
type: String,
required: true,
@@ -56,7 +51,7 @@ export default {
},
showDetails() {
- return this.showDetailsLink && Boolean(this.detailsPathWithId) && this.hasFailures;
+ return Boolean(this.detailsPathWithId) && this.hasFailures;
},
detailsPathWithId() {
diff --git a/app/assets/javascripts/import_entities/import_groups/components/import_table.vue b/app/assets/javascripts/import_entities/import_groups/components/import_table.vue
index db354a01899..25d47f3ced3 100644
--- a/app/assets/javascripts/import_entities/import_groups/components/import_table.vue
+++ b/app/assets/javascripts/import_entities/import_groups/components/import_table.vue
@@ -18,7 +18,6 @@ import { createAlert } from '~/alert';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import { s__, __, n__, sprintf } from '~/locale';
import { HTTP_STATUS_TOO_MANY_REQUESTS } from '~/lib/utils/http_status';
-import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import PaginationBar from '~/vue_shared/components/pagination_bar/pagination_bar.vue';
import HelpPopover from '~/vue_shared/components/help_popover.vue';
import { getGroupPathAvailability } from '~/rest_api';
@@ -69,7 +68,6 @@ export default {
directives: {
GlTooltip: GlTooltipDirective,
},
- mixins: [glFeatureFlagsMixin()],
props: {
sourceUrl: {
type: String,
diff --git a/app/assets/javascripts/invite_members/components/invite_members_modal.vue b/app/assets/javascripts/invite_members/components/invite_members_modal.vue
index dead90eeb71..4f6ca5c5638 100644
--- a/app/assets/javascripts/invite_members/components/invite_members_modal.vue
+++ b/app/assets/javascripts/invite_members/components/invite_members_modal.vue
@@ -7,11 +7,7 @@ import Api from '~/api';
import Tracking from '~/tracking';
import { BV_SHOW_MODAL, BV_HIDE_MODAL } from '~/lib/utils/constants';
import { n__, s__, sprintf } from '~/locale';
-import {
- memberName,
- triggerExternalAlert,
- inviteMembersTrackingOptions,
-} from 'ee_else_ce/invite_members/utils/member_utils';
+import { memberName, triggerExternalAlert } from 'ee_else_ce/invite_members/utils/member_utils';
import { captureException } from '~/ci/runner/sentry_utils';
import {
USERS_FILTER_ALL,
@@ -142,9 +138,6 @@ export default {
isCelebration() {
return this.mode === 'celebrate';
},
- baseTrackingDetails() {
- return { label: this.source, celebrate: this.isCelebration };
- },
isTextForAdmin() {
return this.isCurrentUserAdmin && Boolean(this.newUsersUrl);
},
@@ -265,7 +258,7 @@ export default {
this.source = source;
this.$root.$emit(BV_SHOW_MODAL, this.modalId);
- this.track('render', inviteMembersTrackingOptions(this.baseTrackingDetails));
+ this.track('render', { label: this.source });
},
closeModal() {
this.$root.$emit(BV_HIDE_MODAL, this.modalId);
@@ -335,10 +328,10 @@ export default {
return this.newUsersToInvite.find((member) => memberName(member) === username)?.name;
},
onCancel() {
- this.track('click_cancel', inviteMembersTrackingOptions(this.baseTrackingDetails));
+ this.track('click_cancel', { label: this.source });
},
onClose() {
- this.track('click_x', inviteMembersTrackingOptions(this.baseTrackingDetails));
+ this.track('click_x', { label: this.source });
},
resetFields() {
this.clearValidation();
@@ -347,7 +340,7 @@ export default {
this.newUsersToInvite = [];
},
onInviteSuccess() {
- this.track('invite_successful', inviteMembersTrackingOptions(this.baseTrackingDetails));
+ this.track('invite_successful', { label: this.source });
if (this.reloadPageOnSubmit) {
reloadOnInvitationSuccess();
diff --git a/app/assets/javascripts/invite_members/components/invite_members_trigger.vue b/app/assets/javascripts/invite_members/components/invite_members_trigger.vue
index 7f76b7ca1ac..5d9663abaf2 100644
--- a/app/assets/javascripts/invite_members/components/invite_members_trigger.vue
+++ b/app/assets/javascripts/invite_members/components/invite_members_trigger.vue
@@ -94,7 +94,6 @@ export default {
<gl-dropdown-item
v-else-if="isDropdownWithEmojiTrigger"
v-bind="componentAttributes"
- button-class="top-nav-menu-item"
@click="openModal"
>
{{ displayText }}
diff --git a/app/assets/javascripts/invite_members/components/invite_modal_base.vue b/app/assets/javascripts/invite_members/components/invite_modal_base.vue
index 00b7c3f4bdd..574bbacc498 100644
--- a/app/assets/javascripts/invite_members/components/invite_modal_base.vue
+++ b/app/assets/javascripts/invite_members/components/invite_modal_base.vue
@@ -215,6 +215,7 @@ export default {
this.$emit('reset');
},
onShowModal() {
+ this.$emit('shown');
if (this.usersLimitDataset.reachedLimit) {
this.track('render', { category: 'default', label: ON_SHOW_TRACK_LABEL });
}
diff --git a/app/assets/javascripts/invite_members/utils/member_utils.js b/app/assets/javascripts/invite_members/utils/member_utils.js
index 52fb5e98f27..7998cb69445 100644
--- a/app/assets/javascripts/invite_members/utils/member_utils.js
+++ b/app/assets/javascripts/invite_members/utils/member_utils.js
@@ -6,7 +6,3 @@ export function memberName(member) {
export function triggerExternalAlert() {
return false;
}
-
-export function inviteMembersTrackingOptions(options) {
- return { label: options.label };
-}
diff --git a/app/assets/javascripts/issues/list/components/issues_list_app.vue b/app/assets/javascripts/issues/list/components/issues_list_app.vue
index adc789a205b..8ac7990c28d 100644
--- a/app/assets/javascripts/issues/list/components/issues_list_app.vue
+++ b/app/assets/javascripts/issues/list/components/issues_list_app.vue
@@ -915,7 +915,7 @@ export default {
v-if="issuesDrawerEnabled"
:open="isIssuableSelected"
header-height="calc(var(--top-bar-height) + var(--performance-bar-height))"
- class="gl-w-full gl-sm-w-40p"
+ class="gl-w-full gl-sm-w-40p gl-reset-line-height"
@close="activeIssuable = null"
>
<template #title>
@@ -927,6 +927,7 @@ export default {
<work-item-detail
:key="activeIssuable.iid"
:work-item-iid="activeIssuable.iid"
+ class="gl-pt-0!"
@work-item-updated="updateIssuablesCache"
@work-item-emoji-updated="updateIssuableEmojis"
@addChild="refetchIssuables"
diff --git a/app/assets/javascripts/issues/list/index.js b/app/assets/javascripts/issues/list/index.js
index 5a836e3e40a..ab6ff825554 100644
--- a/app/assets/javascripts/issues/list/index.js
+++ b/app/assets/javascripts/issues/list/index.js
@@ -137,6 +137,7 @@ export async function mountIssuesListApp() {
hasOkrsFeature: parseBoolean(hasOkrsFeature),
initialSort,
isIssueRepositioningDisabled: parseBoolean(isIssueRepositioningDisabled),
+ isGroup: !parseBoolean(isProject),
isProject: parseBoolean(isProject),
isPublicVisibilityRestricted: parseBoolean(isPublicVisibilityRestricted),
isSignedIn: parseBoolean(isSignedIn),
diff --git a/app/assets/javascripts/issues/show/components/header_actions.vue b/app/assets/javascripts/issues/show/components/header_actions.vue
index dcdfd06fbf1..fb7058d95dc 100644
--- a/app/assets/javascripts/issues/show/components/header_actions.vue
+++ b/app/assets/javascripts/issues/show/components/header_actions.vue
@@ -14,6 +14,7 @@ import { mapActions, mapGetters, mapState } from 'vuex';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import { createAlert, VARIANT_SUCCESS } from '~/alert';
import { EVENT_ISSUABLE_VUE_APP_CHANGE } from '~/issuable/constants';
+import { ISSUABLE_EDIT_DESCRIPTION } from '~/behaviors/shortcuts/keybindings';
import { STATUS_CLOSED, TYPE_ISSUE, issuableTypeText } from '~/issues/constants';
import { ISSUE_STATE_EVENT_CLOSE, ISSUE_STATE_EVENT_REOPEN } from '~/issues/show/constants';
import { capitalizeFirstCharacter } from '~/lib/utils/text_utility';
@@ -196,6 +197,12 @@ export default {
href: this.submitAsSpamPath,
};
},
+ editShortcutKey() {
+ return ISSUABLE_EDIT_DESCRIPTION.defaultKeys[0];
+ },
+ editTooltip() {
+ return `${this.$options.i18n.editTitleAndDescription} <kbd class="glat gl-ml-1" aria-hidden=true>${this.editShortcutKey}</kbd>`;
+ },
},
created() {
eventHub.$on('toggle.issuable.state', this.toggleIssueState);
@@ -395,9 +402,10 @@ export default {
<gl-button
v-if="canUpdateIssue"
- v-gl-tooltip.bottom
- :title="$options.i18n.editTitleAndDescription"
+ v-gl-tooltip.viewport.html
+ :title="editTooltip"
:aria-label="$options.i18n.editTitleAndDescription"
+ :aria-keyshortcuts="editShortcutKey"
class="js-issuable-edit gl-display-none! gl-md-display-block!"
data-testid="edit-button"
@click="edit"
diff --git a/app/assets/javascripts/jira_connect/branches/components/project_dropdown.vue b/app/assets/javascripts/jira_connect/branches/components/project_dropdown.vue
index 52a12cc7771..e3fa0ce8073 100644
--- a/app/assets/javascripts/jira_connect/branches/components/project_dropdown.vue
+++ b/app/assets/javascripts/jira_connect/branches/components/project_dropdown.vue
@@ -1,20 +1,20 @@
<script>
import { GlAvatarLabeled, GlCollapsibleListbox } from '@gitlab/ui';
import { debounce } from 'lodash';
+import produce from 'immer';
import { __ } from '~/locale';
import { AVATAR_SHAPE_OPTION_RECT } from '~/vue_shared/constants';
import { PROJECTS_PER_PAGE } from '../constants';
import getProjectsQuery from '../graphql/queries/get_projects.query.graphql';
export default {
- PROJECTS_PER_PAGE,
- projectQueryPageInfo: {
- endCursor: '',
- },
+ name: 'ProjectDropdown',
+
components: {
GlAvatarLabeled,
GlCollapsibleListbox,
},
+
props: {
selectedProject: {
type: Object,
@@ -22,27 +22,29 @@ export default {
default: null,
},
},
+
data() {
return {
initialProjectsLoading: true,
+ isLoadingMore: false,
projectSearchQuery: '',
selectedProjectId: this.selectedProject?.id,
};
},
+
apollo: {
projects: {
query: getProjectsQuery,
variables() {
return {
- search: this.projectSearchQuery,
- first: this.$options.PROJECTS_PER_PAGE,
- after: this.$options.projectQueryPageInfo.endCursor,
- searchNamespaces: true,
- sort: 'similarity',
+ ...this.queryVariables,
};
},
update(data) {
- return data?.projects?.nodes.filter((project) => !project.repository?.empty) ?? [];
+ return {
+ nodes: data?.projects?.nodes.filter((project) => !project.repository?.empty) ?? [],
+ pageInfo: data?.projects?.pageInfo,
+ };
},
result() {
this.initialProjectsLoading = false;
@@ -52,24 +54,37 @@ export default {
},
},
},
+
computed: {
- projectsLoading() {
- return Boolean(this.$apollo.queries.projects.loading);
+ queryVariables() {
+ return {
+ search: this.projectSearchQuery,
+ first: PROJECTS_PER_PAGE,
+ searchNamespaces: true,
+ sort: 'similarity',
+ };
+ },
+ isLoading() {
+ return this.$apollo.queries.projects.loading && !this.isLoadingMore;
},
projectDropdownText() {
return this.selectedProject?.nameWithNamespace || this.$options.i18n.selectProjectText;
},
projectList() {
- return (this.projects || []).map((project) => ({
+ return (this.projects?.nodes || []).map((project) => ({
...project,
text: project.nameWithNamespace,
value: String(project.id),
}));
},
+ hasNextPage() {
+ return this.projects?.pageInfo?.hasNextPage;
+ },
},
+
methods: {
findProjectById(id) {
- return this.projects.find((project) => id === project.id);
+ return this.projects?.nodes?.find((project) => id === project.id);
},
onProjectSelect(projectId) {
this.$emit('change', this.findProjectById(projectId));
@@ -77,13 +92,41 @@ export default {
onError({ message } = {}) {
this.$emit('error', { message });
},
+ async onBottomReached() {
+ if (!this.hasNextPage) return;
+
+ this.isLoadingMore = true;
+
+ try {
+ await this.$apollo.queries.projects.fetchMore({
+ variables: {
+ ...this.queryVariables,
+ after: this.projects.pageInfo?.endCursor,
+ },
+ updateQuery: (previousResult, { fetchMoreResult }) => {
+ return produce(fetchMoreResult, (draftData) => {
+ draftData.projects.nodes = [
+ ...previousResult.projects.nodes,
+ ...draftData.projects.nodes,
+ ];
+ });
+ },
+ });
+ } catch (error) {
+ this.onError({ message: __('Failed to load projects') });
+ } finally {
+ this.isLoadingMore = false;
+ }
+ },
onSearch: debounce(function debouncedSearch(query) {
this.projectSearchQuery = query;
}, 250),
},
+
i18n: {
selectProjectText: __('Select a project'),
},
+
AVATAR_SHAPE_OPTION_RECT,
};
</script>
@@ -97,8 +140,11 @@ export default {
:header-text="$options.i18n.selectProjectText"
:loading="initialProjectsLoading"
:searchable="true"
- :searching="projectsLoading"
+ :searching="isLoading"
fluid-width
+ infinite-scroll
+ :infinite-scroll-loading="isLoadingMore"
+ @bottom-reached="onBottomReached"
@search="onSearch"
@select="onProjectSelect"
>
diff --git a/app/assets/javascripts/kubernetes_dashboard/components/workload_details.vue b/app/assets/javascripts/kubernetes_dashboard/components/workload_details.vue
index 0d219f915c9..bcc0ddf824a 100644
--- a/app/assets/javascripts/kubernetes_dashboard/components/workload_details.vue
+++ b/app/assets/javascripts/kubernetes_dashboard/components/workload_details.vue
@@ -14,8 +14,7 @@ export default {
item: {
type: Object,
required: true,
- validator: (item) =>
- ['name', 'kind', 'labels', 'annotations', 'status'].every((key) => item[key]),
+ validator: (item) => ['name', 'kind', 'labels', 'annotations'].every((key) => item[key]),
},
},
computed: {
@@ -51,7 +50,7 @@ export default {
<template>
<ul class="gl-list-style-none">
<workload-details-item :label="$options.i18n.name">
- {{ item.name }}
+ <span class="gl-word-break-word"> {{ item.name }}</span>
</workload-details-item>
<workload-details-item :label="$options.i18n.kind">
{{ item.kind }}
@@ -63,7 +62,7 @@ export default {
</gl-badge>
</div>
</workload-details-item>
- <workload-details-item :label="$options.i18n.status">
+ <workload-details-item v-if="item.status" :label="$options.i18n.status">
<gl-badge :variant="$options.WORKLOAD_STATUS_BADGE_VARIANTS[item.status]">{{
item.status
}}</gl-badge></workload-details-item
diff --git a/app/assets/javascripts/kubernetes_dashboard/components/workload_layout.vue b/app/assets/javascripts/kubernetes_dashboard/components/workload_layout.vue
index 8c6a08ad504..6579e0229e6 100644
--- a/app/assets/javascripts/kubernetes_dashboard/components/workload_layout.vue
+++ b/app/assets/javascripts/kubernetes_dashboard/components/workload_layout.vue
@@ -1,6 +1,7 @@
<script>
import { GlLoadingIcon, GlAlert, GlDrawer } from '@gitlab/ui';
import { DRAWER_Z_INDEX } from '~/lib/utils/constants';
+import { getContentWrapperHeight } from '~/lib/utils/dom_utils';
import WorkloadStats from './workload_stats.vue';
import WorkloadTable from './workload_table.vue';
import WorkloadDetails from './workload_details.vue';
@@ -33,6 +34,11 @@ export default {
type: Array,
required: true,
},
+ fields: {
+ type: Array,
+ required: false,
+ default: undefined,
+ },
},
data() {
return {
@@ -40,6 +46,11 @@ export default {
selectedItem: {},
};
},
+ computed: {
+ getDrawerHeaderHeight() {
+ return getContentWrapperHeight();
+ },
+ },
methods: {
closeDetailsDrawer() {
this.showDetailsDrawer = false;
@@ -59,16 +70,18 @@ export default {
</gl-alert>
<div v-else>
<workload-stats :stats="stats" />
- <workload-table :items="items" @select-item="onItemSelect" />
+ <workload-table :items="items" :fields="fields" @select-item="onItemSelect" />
<gl-drawer
:open="showDetailsDrawer"
- header-height="calc(var(--top-bar-height) + var(--performance-bar-height))"
+ :header-height="getDrawerHeaderHeight"
:z-index="$options.DRAWER_Z_INDEX"
@close="closeDetailsDrawer"
>
<template #title>
- <h4 class="gl-font-weight-bold gl-font-size-h2 gl-m-0">{{ selectedItem.name }}</h4>
+ <h4 class="gl-font-weight-bold gl-font-size-h2 gl-m-0 gl-word-break-word">
+ {{ selectedItem.name }}
+ </h4>
</template>
<template #default>
<workload-details :item="selectedItem" />
diff --git a/app/assets/javascripts/kubernetes_dashboard/components/workload_table.vue b/app/assets/javascripts/kubernetes_dashboard/components/workload_table.vue
index d3704863538..83940fb91c8 100644
--- a/app/assets/javascripts/kubernetes_dashboard/components/workload_table.vue
+++ b/app/assets/javascripts/kubernetes_dashboard/components/workload_table.vue
@@ -1,9 +1,9 @@
<script>
import { GlTable, GlBadge, GlPagination } from '@gitlab/ui';
+import { __ } from '~/locale';
import {
WORKLOAD_STATUS_BADGE_VARIANTS,
PAGE_SIZE,
- TABLE_HEADING_CLASSES,
DEFAULT_WORKLOAD_TABLE_FIELDS,
} from '../constants';
@@ -34,7 +34,6 @@ export default {
return this.fields.map((field) => {
return {
...field,
- thClass: TABLE_HEADING_CLASSES,
sortable: true,
};
});
@@ -45,6 +44,9 @@ export default {
this.$emit('select-item', item);
},
},
+ i18n: {
+ emptyText: __('No results found'),
+ },
PAGE_SIZE,
WORKLOAD_STATUS_BADGE_VARIANTS,
TABLE_CELL_CLASSES: 'gl-p-2',
@@ -58,9 +60,10 @@ export default {
:fields="tableFields"
:per-page="$options.PAGE_SIZE"
:current-page="currentPage"
+ :empty-text="$options.i18n.emptyText"
tbody-tr-class="gl-hover-cursor-pointer"
+ show-empty
stacked="md"
- bordered
hover
@row-clicked="selectItem"
>
diff --git a/app/assets/javascripts/kubernetes_dashboard/constants.js b/app/assets/javascripts/kubernetes_dashboard/constants.js
index b93740aec90..458a79cbcb6 100644
--- a/app/assets/javascripts/kubernetes_dashboard/constants.js
+++ b/app/assets/javascripts/kubernetes_dashboard/constants.js
@@ -1,10 +1,12 @@
-import { s__ } from '~/locale';
+import { __, s__ } from '~/locale';
export const STATUS_RUNNING = 'Running';
export const STATUS_PENDING = 'Pending';
export const STATUS_SUCCEEDED = 'Succeeded';
export const STATUS_FAILED = 'Failed';
export const STATUS_READY = 'Ready';
+export const STATUS_COMPLETED = 'Completed';
+export const STATUS_SUSPENDED = 'Suspended';
export const STATUS_LABELS = {
[STATUS_RUNNING]: s__('KubernetesDashboard|Running'),
@@ -12,6 +14,8 @@ export const STATUS_LABELS = {
[STATUS_SUCCEEDED]: s__('KubernetesDashboard|Succeeded'),
[STATUS_FAILED]: s__('KubernetesDashboard|Failed'),
[STATUS_READY]: s__('KubernetesDashboard|Ready'),
+ [STATUS_COMPLETED]: s__('KubernetesDashboard|Completed'),
+ [STATUS_SUSPENDED]: s__('KubernetesDashboard|Suspended'),
};
export const WORKLOAD_STATUS_BADGE_VARIANTS = {
@@ -20,24 +24,27 @@ export const WORKLOAD_STATUS_BADGE_VARIANTS = {
[STATUS_SUCCEEDED]: 'success',
[STATUS_FAILED]: 'danger',
[STATUS_READY]: 'success',
+ [STATUS_COMPLETED]: 'success',
+ [STATUS_SUSPENDED]: 'neutral',
};
export const PAGE_SIZE = 20;
-export const TABLE_HEADING_CLASSES = 'gl-bg-gray-50! gl-font-weight-bold gl-white-space-nowrap';
-
export const DEFAULT_WORKLOAD_TABLE_FIELDS = [
{
key: 'name',
label: s__('KubernetesDashboard|Name'),
+ tdClass: 'gl-md-w-half gl-lg-w-40p gl-word-break-word',
},
{
key: 'status',
label: s__('KubernetesDashboard|Status'),
+ tdClass: 'gl-md-w-15',
},
{
key: 'namespace',
label: s__('KubernetesDashboard|Namespace'),
+ tdClass: 'gl-md-w-30p gl-lg-w-40p gl-word-break-word',
},
{
key: 'age',
@@ -47,3 +54,34 @@ export const DEFAULT_WORKLOAD_TABLE_FIELDS = [
export const STATUS_TRUE = 'True';
export const STATUS_FALSE = 'False';
+
+export const SERVICES_TABLE_FIELDS = [
+ {
+ key: 'name',
+ label: __('Name'),
+ },
+ {
+ key: 'namespace',
+ label: __('Namespace'),
+ },
+ {
+ key: 'type',
+ label: __('Type'),
+ },
+ {
+ key: 'clusterIP',
+ label: s__('Environment|Cluster IP'),
+ },
+ {
+ key: 'externalIP',
+ label: s__('Environment|External IP'),
+ },
+ {
+ key: 'ports',
+ label: s__('Environment|Ports'),
+ },
+ {
+ key: 'age',
+ label: s__('Environment|Age'),
+ },
+];
diff --git a/app/assets/javascripts/kubernetes_dashboard/graphql/client.js b/app/assets/javascripts/kubernetes_dashboard/graphql/client.js
index 5894472d83b..9454465df9d 100644
--- a/app/assets/javascripts/kubernetes_dashboard/graphql/client.js
+++ b/app/assets/javascripts/kubernetes_dashboard/graphql/client.js
@@ -6,6 +6,9 @@ import k8sDeploymentsQuery from './queries/k8s_dashboard_deployments.query.graph
import k8sStatefulSetsQuery from './queries/k8s_dashboard_stateful_sets.query.graphql';
import k8sReplicaSetsQuery from './queries/k8s_dashboard_replica_sets.query.graphql';
import k8sDaemonSetsQuery from './queries/k8s_dashboard_daemon_sets.query.graphql';
+import k8sJobsQuery from './queries/k8s_dashboard_jobs.query.graphql';
+import k8sCronJobsQuery from './queries/k8s_dashboard_cron_jobs.query.graphql';
+import k8sServicesQuery from './queries/k8s_dashboard_services.query.graphql';
import { resolvers } from './resolvers';
export const apolloProvider = () => {
@@ -14,16 +17,18 @@ export const apolloProvider = () => {
});
const { cache } = defaultClient;
+ const metadata = {
+ name: null,
+ namespace: null,
+ creationTimestamp: null,
+ labels: null,
+ annotations: null,
+ };
+
cache.writeQuery({
query: k8sPodsQuery,
data: {
- metadata: {
- name: null,
- namespace: null,
- creationTimestamp: null,
- labels: null,
- annotations: null,
- },
+ metadata,
status: {
phase: null,
},
@@ -33,13 +38,7 @@ export const apolloProvider = () => {
cache.writeQuery({
query: k8sDeploymentsQuery,
data: {
- metadata: {
- name: null,
- namespace: null,
- creationTimestamp: null,
- labels: null,
- annotations: null,
- },
+ metadata,
status: {
conditions: null,
},
@@ -49,13 +48,7 @@ export const apolloProvider = () => {
cache.writeQuery({
query: k8sStatefulSetsQuery,
data: {
- metadata: {
- name: null,
- namespace: null,
- creationTimestamp: null,
- labels: null,
- annotations: null,
- },
+ metadata,
status: {
readyReplicas: null,
},
@@ -68,13 +61,7 @@ export const apolloProvider = () => {
cache.writeQuery({
query: k8sReplicaSetsQuery,
data: {
- metadata: {
- name: null,
- namespace: null,
- creationTimestamp: null,
- labels: null,
- annotations: null,
- },
+ metadata,
status: {
readyReplicas: null,
},
@@ -87,13 +74,7 @@ export const apolloProvider = () => {
cache.writeQuery({
query: k8sDaemonSetsQuery,
data: {
- metadata: {
- name: null,
- namespace: null,
- creationTimestamp: null,
- labels: null,
- annotations: null,
- },
+ metadata,
status: {
numberMisscheduled: null,
numberReady: null,
@@ -102,6 +83,47 @@ export const apolloProvider = () => {
},
});
+ cache.writeQuery({
+ query: k8sJobsQuery,
+ data: {
+ metadata,
+ status: {
+ failed: null,
+ succeeded: null,
+ },
+ spec: {
+ completions: null,
+ },
+ },
+ });
+
+ cache.writeQuery({
+ query: k8sCronJobsQuery,
+ data: {
+ metadata,
+ status: {
+ active: null,
+ lastScheduleTime: null,
+ },
+ spec: {
+ suspend: null,
+ },
+ },
+ });
+
+ cache.writeQuery({
+ query: k8sServicesQuery,
+ data: {
+ metadata,
+ spec: {
+ type: null,
+ clusterIP: null,
+ externalIP: null,
+ ports: null,
+ },
+ },
+ });
+
return new VueApollo({
defaultClient,
});
diff --git a/app/assets/javascripts/kubernetes_dashboard/graphql/helpers/resolver_helpers.js b/app/assets/javascripts/kubernetes_dashboard/graphql/helpers/resolver_helpers.js
index 47c2f543357..b9c195d83d0 100644
--- a/app/assets/javascripts/kubernetes_dashboard/graphql/helpers/resolver_helpers.js
+++ b/app/assets/javascripts/kubernetes_dashboard/graphql/helpers/resolver_helpers.js
@@ -43,6 +43,62 @@ export const mapSetItem = (item) => {
return { status, metadata, spec };
};
+export const mapJobItem = (item) => {
+ const metadata = {
+ ...item.metadata,
+ annotations: item.metadata?.annotations || {},
+ labels: item.metadata?.labels || {},
+ };
+
+ const status = {
+ failed: item.status?.failed || 0,
+ succeeded: item.status?.succeeded || 0,
+ };
+
+ return {
+ status,
+ metadata,
+ spec: item.spec,
+ };
+};
+
+export const mapServicesItems = (item) => {
+ const { type, clusterIP, externalIP, ports } = item.spec;
+
+ return {
+ metadata: {
+ ...item.metadata,
+ annotations: item.metadata?.annotations || {},
+ labels: item.metadata?.labels || {},
+ },
+ spec: {
+ type,
+ clusterIP: clusterIP || '-',
+ externalIP: externalIP || '-',
+ ports,
+ },
+ };
+};
+
+export const mapCronJobItem = (item) => {
+ const metadata = {
+ ...item.metadata,
+ annotations: item.metadata?.annotations || {},
+ labels: item.metadata?.labels || {},
+ };
+
+ const status = {
+ active: item.status?.active || 0,
+ lastScheduleTime: item.status?.lastScheduleTime || null,
+ };
+
+ return {
+ status,
+ metadata,
+ spec: item.spec,
+ };
+};
+
export const watchWorkloadItems = ({
client,
query,
diff --git a/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_cron_jobs.query.graphql b/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_cron_jobs.query.graphql
new file mode 100644
index 00000000000..fe20cd2e70e
--- /dev/null
+++ b/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_cron_jobs.query.graphql
@@ -0,0 +1,18 @@
+query getK8sDashboardCronJobs($configuration: LocalConfiguration) {
+ k8sCronJobs(configuration: $configuration) @client {
+ metadata {
+ name
+ namespace
+ creationTimestamp
+ labels
+ annotations
+ }
+ status {
+ active
+ lastScheduleTime
+ }
+ spec {
+ suspend
+ }
+ }
+}
diff --git a/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_jobs.query.graphql b/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_jobs.query.graphql
new file mode 100644
index 00000000000..86afb47f2f9
--- /dev/null
+++ b/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_jobs.query.graphql
@@ -0,0 +1,18 @@
+query getK8sDashboardJobs($configuration: LocalConfiguration) {
+ k8sJobs(configuration: $configuration) @client {
+ metadata {
+ name
+ namespace
+ creationTimestamp
+ labels
+ annotations
+ }
+ status {
+ failed
+ succeeded
+ }
+ spec {
+ completions
+ }
+ }
+}
diff --git a/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_services.query.graphql b/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_services.query.graphql
new file mode 100644
index 00000000000..7d42d66183e
--- /dev/null
+++ b/app/assets/javascripts/kubernetes_dashboard/graphql/queries/k8s_dashboard_services.query.graphql
@@ -0,0 +1,17 @@
+query getK8sDashboardServices($configuration: LocalConfiguration) {
+ k8sServices(configuration: $configuration) @client {
+ metadata {
+ name
+ namespace
+ creationTimestamp
+ labels
+ annotations
+ }
+ spec {
+ type
+ clusterIP
+ externalIP
+ ports
+ }
+ }
+}
diff --git a/app/assets/javascripts/kubernetes_dashboard/graphql/resolvers/kubernetes.js b/app/assets/javascripts/kubernetes_dashboard/graphql/resolvers/kubernetes.js
index e59bed5581b..75285ad2cca 100644
--- a/app/assets/javascripts/kubernetes_dashboard/graphql/resolvers/kubernetes.js
+++ b/app/assets/javascripts/kubernetes_dashboard/graphql/resolvers/kubernetes.js
@@ -1,4 +1,4 @@
-import { Configuration, AppsV1Api } from '@gitlab/cluster-client';
+import { Configuration, CoreV1Api, AppsV1Api, BatchV1Api } from '@gitlab/cluster-client';
import {
getK8sPods,
@@ -7,12 +7,18 @@ import {
mapSetItem,
buildWatchPath,
watchWorkloadItems,
+ mapJobItem,
+ mapCronJobItem,
+ mapServicesItems,
} from '../helpers/resolver_helpers';
import k8sDashboardPodsQuery from '../queries/k8s_dashboard_pods.query.graphql';
import k8sDashboardDeploymentsQuery from '../queries/k8s_dashboard_deployments.query.graphql';
import k8sDashboardStatefulSetsQuery from '../queries/k8s_dashboard_stateful_sets.query.graphql';
import k8sDashboardReplicaSetsQuery from '../queries/k8s_dashboard_replica_sets.query.graphql';
import k8sDaemonSetsQuery from '../queries/k8s_dashboard_daemon_sets.query.graphql';
+import k8sJobsQuery from '../queries/k8s_dashboard_jobs.query.graphql';
+import k8sCronJobsQuery from '../queries/k8s_dashboard_cron_jobs.query.graphql';
+import k8sServicesQuery from '../queries/k8s_dashboard_services.query.graphql';
export default {
k8sPods(_, { configuration }, { client }) {
@@ -61,10 +67,10 @@ export default {
const config = new Configuration(configuration);
const appsV1api = new AppsV1Api(config);
- const deploymentsApi = namespace
+ const statefulSetsApi = namespace
? appsV1api.listAppsV1NamespacedStatefulSet({ namespace })
: appsV1api.listAppsV1StatefulSetForAllNamespaces();
- return deploymentsApi
+ return statefulSetsApi
.then((res) => {
const watchPath = buildWatchPath({
resource: 'statefulsets',
@@ -98,10 +104,10 @@ export default {
const config = new Configuration(configuration);
const appsV1api = new AppsV1Api(config);
- const deploymentsApi = namespace
+ const replicaSetsApi = namespace
? appsV1api.listAppsV1NamespacedReplicaSet({ namespace })
: appsV1api.listAppsV1ReplicaSetForAllNamespaces();
- return deploymentsApi
+ return replicaSetsApi
.then((res) => {
const watchPath = buildWatchPath({
resource: 'replicasets',
@@ -135,10 +141,10 @@ export default {
const config = new Configuration(configuration);
const appsV1api = new AppsV1Api(config);
- const deploymentsApi = namespace
+ const daemonSetsApi = namespace
? appsV1api.listAppsV1NamespacedDaemonSet({ namespace })
: appsV1api.listAppsV1DaemonSetForAllNamespaces();
- return deploymentsApi
+ return daemonSetsApi
.then((res) => {
const watchPath = buildWatchPath({
resource: 'daemonsets',
@@ -166,4 +172,114 @@ export default {
}
});
},
+
+ k8sJobs(_, { configuration, namespace = '' }, { client }) {
+ const config = new Configuration(configuration);
+
+ const batchV1api = new BatchV1Api(config);
+ const jobsApi = namespace
+ ? batchV1api.listBatchV1NamespacedJob({ namespace })
+ : batchV1api.listBatchV1JobForAllNamespaces();
+ return jobsApi
+ .then((res) => {
+ const watchPath = buildWatchPath({
+ resource: 'jobs',
+ api: 'apis/batch/v1',
+ namespace,
+ });
+ watchWorkloadItems({
+ client,
+ query: k8sJobsQuery,
+ configuration,
+ namespace,
+ watchPath,
+ queryField: 'k8sJobs',
+ mapFn: mapJobItem,
+ });
+
+ const data = res?.items || [];
+
+ return data.map(mapJobItem);
+ })
+ .catch(async (err) => {
+ try {
+ await handleClusterError(err);
+ } catch (error) {
+ throw new Error(error.message);
+ }
+ });
+ },
+
+ k8sCronJobs(_, { configuration, namespace = '' }, { client }) {
+ const config = new Configuration(configuration);
+
+ const batchV1api = new BatchV1Api(config);
+ const cronJobsApi = namespace
+ ? batchV1api.listBatchV1NamespacedCronJob({ namespace })
+ : batchV1api.listBatchV1CronJobForAllNamespaces();
+ return cronJobsApi
+ .then((res) => {
+ const watchPath = buildWatchPath({
+ resource: 'cronjobs',
+ api: 'apis/batch/v1',
+ namespace,
+ });
+ watchWorkloadItems({
+ client,
+ query: k8sCronJobsQuery,
+ configuration,
+ namespace,
+ watchPath,
+ queryField: 'k8sCronJobs',
+ mapFn: mapCronJobItem,
+ });
+
+ const data = res?.items || [];
+
+ return data.map(mapCronJobItem);
+ })
+ .catch(async (err) => {
+ try {
+ await handleClusterError(err);
+ } catch (error) {
+ throw new Error(error.message);
+ }
+ });
+ },
+
+ k8sServices(_, { configuration, namespace = '' }, { client }) {
+ const config = new Configuration(configuration);
+
+ const coreV1Api = new CoreV1Api(config);
+ const servicesApi = namespace
+ ? coreV1Api.listCoreV1NamespacedService({ namespace })
+ : coreV1Api.listCoreV1ServiceForAllNamespaces();
+ return servicesApi
+ .then((res) => {
+ const watchPath = buildWatchPath({
+ resource: 'services',
+ namespace,
+ });
+ watchWorkloadItems({
+ client,
+ query: k8sServicesQuery,
+ configuration,
+ namespace,
+ watchPath,
+ queryField: 'k8sServices',
+ mapFn: mapServicesItems,
+ });
+
+ const data = res?.items || [];
+
+ return data.map(mapServicesItems);
+ })
+ .catch(async (err) => {
+ try {
+ await handleClusterError(err);
+ } catch (error) {
+ throw new Error(error.message);
+ }
+ });
+ },
};
diff --git a/app/assets/javascripts/kubernetes_dashboard/helpers/k8s_integration_helper.js b/app/assets/javascripts/kubernetes_dashboard/helpers/k8s_integration_helper.js
index 24f43e21506..d3116fd611a 100644
--- a/app/assets/javascripts/kubernetes_dashboard/helpers/k8s_integration_helper.js
+++ b/app/assets/javascripts/kubernetes_dashboard/helpers/k8s_integration_helper.js
@@ -5,6 +5,8 @@ import {
STATUS_PENDING,
STATUS_READY,
STATUS_FAILED,
+ STATUS_COMPLETED,
+ STATUS_SUSPENDED,
} from '../constants';
export function getAge(creationTimestamp) {
@@ -58,3 +60,31 @@ export function calculateDaemonSetStatus(item) {
}
return STATUS_FAILED;
}
+
+export function calculateJobStatus(item) {
+ if (item.status.failed > 0 || item.status?.succeeded !== item.spec?.completions) {
+ return STATUS_FAILED;
+ }
+ return STATUS_COMPLETED;
+}
+
+export function calculateCronJobStatus(item) {
+ if (item.status?.active > 0 && !item.status?.lastScheduleTime) {
+ return STATUS_FAILED;
+ }
+ if (item.spec?.suspend) {
+ return STATUS_SUSPENDED;
+ }
+ return STATUS_READY;
+}
+
+export function generateServicePortsString(ports) {
+ if (!ports?.length) return '';
+
+ return ports
+ .map((port) => {
+ const nodePort = port.nodePort ? `:${port.nodePort}` : '';
+ return `${port.port}${nodePort}/${port.protocol}`;
+ })
+ .join(', ');
+}
diff --git a/app/assets/javascripts/kubernetes_dashboard/pages/cron_jobs_page.vue b/app/assets/javascripts/kubernetes_dashboard/pages/cron_jobs_page.vue
new file mode 100644
index 00000000000..2d57bfdc9fc
--- /dev/null
+++ b/app/assets/javascripts/kubernetes_dashboard/pages/cron_jobs_page.vue
@@ -0,0 +1,84 @@
+<script>
+import { s__ } from '~/locale';
+import { getAge, calculateCronJobStatus } from '../helpers/k8s_integration_helper';
+import WorkloadLayout from '../components/workload_layout.vue';
+import k8sCronJobsQuery from '../graphql/queries/k8s_dashboard_cron_jobs.query.graphql';
+import { STATUS_FAILED, STATUS_READY, STATUS_SUSPENDED, STATUS_LABELS } from '../constants';
+
+export default {
+ components: {
+ WorkloadLayout,
+ },
+ inject: ['configuration'],
+ apollo: {
+ k8sCronJobs: {
+ query: k8sCronJobsQuery,
+ variables() {
+ return {
+ configuration: this.configuration,
+ };
+ },
+ update(data) {
+ return (
+ data?.k8sCronJobs?.map((job) => {
+ return {
+ name: job.metadata?.name,
+ namespace: job.metadata?.namespace,
+ status: calculateCronJobStatus(job),
+ age: getAge(job.metadata?.creationTimestamp),
+ labels: job.metadata?.labels,
+ annotations: job.metadata?.annotations,
+ kind: s__('KubernetesDashboard|CronJob'),
+ };
+ }) || []
+ );
+ },
+ error(err) {
+ this.errorMessage = err?.message;
+ },
+ },
+ },
+ data() {
+ return {
+ k8sCronJobs: [],
+ errorMessage: '',
+ };
+ },
+ computed: {
+ cronJobsStats() {
+ return [
+ {
+ value: this.countJobsByStatus(STATUS_READY),
+ title: STATUS_LABELS[STATUS_READY],
+ },
+ {
+ value: this.countJobsByStatus(STATUS_FAILED),
+ title: STATUS_LABELS[STATUS_FAILED],
+ },
+ {
+ value: this.countJobsByStatus(STATUS_SUSPENDED),
+ title: STATUS_LABELS[STATUS_SUSPENDED],
+ },
+ ];
+ },
+ loading() {
+ return this.$apollo.queries.k8sCronJobs.loading;
+ },
+ },
+ methods: {
+ countJobsByStatus(phase) {
+ const filteredJobs = this.k8sCronJobs.filter((item) => item.status === phase) || [];
+
+ return filteredJobs.length;
+ },
+ },
+};
+</script>
+<template>
+ <workload-layout
+ :loading="loading"
+ :error-message="errorMessage"
+ :stats="cronJobsStats"
+ :items="k8sCronJobs"
+ />
+</template>
diff --git a/app/assets/javascripts/kubernetes_dashboard/pages/jobs_page.vue b/app/assets/javascripts/kubernetes_dashboard/pages/jobs_page.vue
new file mode 100644
index 00000000000..f9dbb53e8b4
--- /dev/null
+++ b/app/assets/javascripts/kubernetes_dashboard/pages/jobs_page.vue
@@ -0,0 +1,80 @@
+<script>
+import { s__ } from '~/locale';
+import { getAge, calculateJobStatus } from '../helpers/k8s_integration_helper';
+import WorkloadLayout from '../components/workload_layout.vue';
+import k8sJobsQuery from '../graphql/queries/k8s_dashboard_jobs.query.graphql';
+import { STATUS_FAILED, STATUS_COMPLETED, STATUS_LABELS } from '../constants';
+
+export default {
+ components: {
+ WorkloadLayout,
+ },
+ inject: ['configuration'],
+ apollo: {
+ k8sJobs: {
+ query: k8sJobsQuery,
+ variables() {
+ return {
+ configuration: this.configuration,
+ };
+ },
+ update(data) {
+ return (
+ data?.k8sJobs?.map((job) => {
+ return {
+ name: job.metadata?.name,
+ namespace: job.metadata?.namespace,
+ status: calculateJobStatus(job),
+ age: getAge(job.metadata?.creationTimestamp),
+ labels: job.metadata?.labels,
+ annotations: job.metadata?.annotations,
+ kind: s__('KubernetesDashboard|Job'),
+ };
+ }) || []
+ );
+ },
+ error(err) {
+ this.errorMessage = err?.message;
+ },
+ },
+ },
+ data() {
+ return {
+ k8sJobs: [],
+ errorMessage: '',
+ };
+ },
+ computed: {
+ jobsStats() {
+ return [
+ {
+ value: this.countJobsByStatus(STATUS_COMPLETED),
+ title: STATUS_LABELS[STATUS_COMPLETED],
+ },
+ {
+ value: this.countJobsByStatus(STATUS_FAILED),
+ title: STATUS_LABELS[STATUS_FAILED],
+ },
+ ];
+ },
+ loading() {
+ return this.$apollo.queries.k8sJobs.loading;
+ },
+ },
+ methods: {
+ countJobsByStatus(phase) {
+ const filteredJobs = this.k8sJobs.filter((item) => item.status === phase) || [];
+
+ return filteredJobs.length;
+ },
+ },
+};
+</script>
+<template>
+ <workload-layout
+ :loading="loading"
+ :error-message="errorMessage"
+ :stats="jobsStats"
+ :items="k8sJobs"
+ />
+</template>
diff --git a/app/assets/javascripts/kubernetes_dashboard/pages/services_page.vue b/app/assets/javascripts/kubernetes_dashboard/pages/services_page.vue
new file mode 100644
index 00000000000..4dc8fb6b6c0
--- /dev/null
+++ b/app/assets/javascripts/kubernetes_dashboard/pages/services_page.vue
@@ -0,0 +1,69 @@
+<script>
+import { s__ } from '~/locale';
+import { getAge, generateServicePortsString } from '../helpers/k8s_integration_helper';
+import { SERVICES_TABLE_FIELDS } from '../constants';
+import WorkloadLayout from '../components/workload_layout.vue';
+import k8sServicesQuery from '../graphql/queries/k8s_dashboard_services.query.graphql';
+
+export default {
+ components: {
+ WorkloadLayout,
+ },
+ inject: ['configuration'],
+ apollo: {
+ k8sServices: {
+ query: k8sServicesQuery,
+ variables() {
+ return {
+ configuration: this.configuration,
+ };
+ },
+ update(data) {
+ return (
+ data?.k8sServices?.map((service) => {
+ return {
+ name: service.metadata?.name,
+ namespace: service.metadata?.namespace,
+ type: service.spec?.type,
+ clusterIP: service.spec?.clusterIP,
+ externalIP: service.spec?.externalIP,
+ ports: generateServicePortsString(service?.spec?.ports),
+ age: getAge(service.metadata?.creationTimestamp),
+ labels: service.metadata?.labels,
+ annotations: service.metadata?.annotations,
+ kind: s__('KubernetesDashboard|Service'),
+ };
+ }) || []
+ );
+ },
+ error(err) {
+ this.errorMessage = err?.message;
+ },
+ },
+ },
+ data() {
+ return {
+ k8sServices: [],
+ errorMessage: '',
+ };
+ },
+ computed: {
+ loading() {
+ return this.$apollo.queries.k8sServices.loading;
+ },
+ servicesStats() {
+ return [];
+ },
+ },
+ SERVICES_TABLE_FIELDS,
+};
+</script>
+<template>
+ <workload-layout
+ :loading="loading"
+ :error-message="errorMessage"
+ :stats="servicesStats"
+ :items="k8sServices"
+ :fields="$options.SERVICES_TABLE_FIELDS"
+ />
+</template>
diff --git a/app/assets/javascripts/kubernetes_dashboard/router/constants.js b/app/assets/javascripts/kubernetes_dashboard/router/constants.js
index 700f501ade4..f02c01d7973 100644
--- a/app/assets/javascripts/kubernetes_dashboard/router/constants.js
+++ b/app/assets/javascripts/kubernetes_dashboard/router/constants.js
@@ -3,9 +3,15 @@ export const DEPLOYMENTS_ROUTE_NAME = 'deployments';
export const STATEFUL_SETS_ROUTE_NAME = 'statefulSets';
export const REPLICA_SETS_ROUTE_NAME = 'replicaSets';
export const DAEMON_SETS_ROUTE_NAME = 'daemonSets';
+export const JOBS_ROUTE_NAME = 'jobs';
+export const CRON_JOBS_ROUTE_NAME = 'cronJobs';
+export const SERVICES_ROUTE_NAME = 'services';
export const PODS_ROUTE_PATH = '/pods';
export const DEPLOYMENTS_ROUTE_PATH = '/deployments';
export const STATEFUL_SETS_ROUTE_PATH = '/statefulsets';
export const REPLICA_SETS_ROUTE_PATH = '/replicasets';
export const DAEMON_SETS_ROUTE_PATH = '/daemonsets';
+export const JOBS_ROUTE_PATH = '/jobs';
+export const CRON_JOBS_ROUTE_PATH = '/cronjobs';
+export const SERVICES_ROUTE_PATH = '/services';
diff --git a/app/assets/javascripts/kubernetes_dashboard/router/routes.js b/app/assets/javascripts/kubernetes_dashboard/router/routes.js
index a1684a62ca4..7448508de8a 100644
--- a/app/assets/javascripts/kubernetes_dashboard/router/routes.js
+++ b/app/assets/javascripts/kubernetes_dashboard/router/routes.js
@@ -4,6 +4,10 @@ import DeploymentsPage from '../pages/deployments_page.vue';
import StatefulSetsPage from '../pages/stateful_sets_page.vue';
import ReplicaSetsPage from '../pages/replica_sets_page.vue';
import DaemonSetsPage from '../pages/daemon_sets_page.vue';
+import JobsPage from '../pages/jobs_page.vue';
+import CronJobsPage from '../pages/cron_jobs_page.vue';
+import ServicesPage from '../pages/services_page.vue';
+
import {
PODS_ROUTE_NAME,
PODS_ROUTE_PATH,
@@ -15,6 +19,12 @@ import {
REPLICA_SETS_ROUTE_PATH,
DAEMON_SETS_ROUTE_NAME,
DAEMON_SETS_ROUTE_PATH,
+ JOBS_ROUTE_NAME,
+ JOBS_ROUTE_PATH,
+ CRON_JOBS_ROUTE_NAME,
+ CRON_JOBS_ROUTE_PATH,
+ SERVICES_ROUTE_NAME,
+ SERVICES_ROUTE_PATH,
} from './constants';
export default [
@@ -58,4 +68,28 @@ export default [
title: s__('KubernetesDashboard|DaemonSets'),
},
},
+ {
+ name: JOBS_ROUTE_NAME,
+ path: JOBS_ROUTE_PATH,
+ component: JobsPage,
+ meta: {
+ title: s__('KubernetesDashboard|Jobs'),
+ },
+ },
+ {
+ name: CRON_JOBS_ROUTE_NAME,
+ path: CRON_JOBS_ROUTE_PATH,
+ component: CronJobsPage,
+ meta: {
+ title: s__('KubernetesDashboard|CronJobs'),
+ },
+ },
+ {
+ name: SERVICES_ROUTE_NAME,
+ path: SERVICES_ROUTE_PATH,
+ component: ServicesPage,
+ meta: {
+ title: s__('KubernetesDashboard|Services'),
+ },
+ },
];
diff --git a/app/assets/javascripts/lib/utils/common_utils.js b/app/assets/javascripts/lib/utils/common_utils.js
index 674a901aebc..7dc776a1446 100644
--- a/app/assets/javascripts/lib/utils/common_utils.js
+++ b/app/assets/javascripts/lib/utils/common_utils.js
@@ -634,7 +634,7 @@ export const roundDownFloat = (number, precision = 0) => {
* Represents navigation type constants of the Performance Navigation API.
* Detailed explanation see https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation.
*/
-export const NavigationType = {
+export const navigationType = {
TYPE_NAVIGATE: 0,
TYPE_RELOAD: 1,
TYPE_BACK_FORWARD: 2,
diff --git a/app/assets/javascripts/lib/utils/constants.js b/app/assets/javascripts/lib/utils/constants.js
index d9ac0abf7b3..77986539403 100644
--- a/app/assets/javascripts/lib/utils/constants.js
+++ b/app/assets/javascripts/lib/utils/constants.js
@@ -19,10 +19,5 @@ export const DRAWER_Z_INDEX = 252;
export const MIN_USERNAME_LENGTH = 2;
-export const BYTES_FORMAT_BYTES = 'B';
-export const BYTES_FORMAT_KIB = 'KiB';
-export const BYTES_FORMAT_MIB = 'MiB';
-export const BYTES_FORMAT_GIB = 'GiB';
-
export const DEFAULT_CI_CONFIG_PATH = '.gitlab-ci.yml';
export const CI_CONFIG_PATH_EXTENSION = /(\.gitlab-ci\.yml)/;
diff --git a/app/assets/javascripts/lib/utils/headers.js b/app/assets/javascripts/lib/utils/headers.js
index 80ae3fb146f..fb635a124d6 100644
--- a/app/assets/javascripts/lib/utils/headers.js
+++ b/app/assets/javascripts/lib/utils/headers.js
@@ -1,3 +1,3 @@
-export const ContentTypeMultipartFormData = {
+export const contentTypeMultipartFormData = {
'Content-Type': 'multipart/form-data',
};
diff --git a/app/assets/javascripts/lib/utils/number_utils.js b/app/assets/javascripts/lib/utils/number_utils.js
index d17719c0bc0..01c5bc1f1fc 100644
--- a/app/assets/javascripts/lib/utils/number_utils.js
+++ b/app/assets/javascripts/lib/utils/number_utils.js
@@ -1,12 +1,5 @@
import { sprintf, __ } from '~/locale';
-import {
- BYTES_IN_KIB,
- THOUSAND,
- BYTES_FORMAT_BYTES,
- BYTES_FORMAT_KIB,
- BYTES_FORMAT_MIB,
- BYTES_FORMAT_GIB,
-} from './constants';
+import { BYTES_IN_KIB, THOUSAND } from './constants';
/**
* Function that allows a number with an X amount of decimals
@@ -73,47 +66,47 @@ export function bytesToGiB(number) {
/**
* Formats the bytes in number into a more understandable
* representation. Returns an array with the first value being the human size
- * and the second value being the format (e.g., [1.5, 'KiB']).
+ * and the second value being the label (e.g., [1.5, 'KiB']).
*
- * @param {Number} size
- * @param {Number} digits - The number of digits to appear after the decimal point
- * @returns {String}
+ * @param {number} size
+ * @param {number} [digits=2] - The number of digits to appear after the decimal point
+ * @returns {string[]}
*/
export function numberToHumanSizeSplit(size, digits = 2) {
const abs = Math.abs(size);
if (abs < BYTES_IN_KIB) {
- return [size.toString(), BYTES_FORMAT_BYTES];
+ return [size.toString(), __('B')];
}
if (abs < BYTES_IN_KIB ** 2) {
- return [bytesToKiB(size).toFixed(digits), BYTES_FORMAT_KIB];
+ return [bytesToKiB(size).toFixed(digits), __('KiB')];
}
if (abs < BYTES_IN_KIB ** 3) {
- return [bytesToMiB(size).toFixed(digits), BYTES_FORMAT_MIB];
+ return [bytesToMiB(size).toFixed(digits), __('MiB')];
}
- return [bytesToGiB(size).toFixed(digits), BYTES_FORMAT_GIB];
+ return [bytesToGiB(size).toFixed(digits), __('GiB')];
}
/**
* Port of rails number_to_human_size
* Formats the bytes in number into a more understandable
- * representation (e.g., giving it 1500 yields 1.5 KB).
+ * representation (e.g., giving it 1536 yields 1.5 KiB).
*
- * @param {Number} size
- * @param {Number} digits - The number of digits to appear after the decimal point
- * @returns {String}
+ * @param {number} size
+ * @param {number} [digits=2] - The number of digits to appear after the decimal point
+ * @returns {string}
*/
export function numberToHumanSize(size, digits = 2) {
- const [humanSize, format] = numberToHumanSizeSplit(size, digits);
+ const [humanSize, label] = numberToHumanSizeSplit(size, digits);
- switch (format) {
- case BYTES_FORMAT_BYTES:
+ switch (label) {
+ case __('B'):
return sprintf(__('%{size} B'), { size: humanSize });
- case BYTES_FORMAT_KIB:
+ case __('KiB'):
return sprintf(__('%{size} KiB'), { size: humanSize });
- case BYTES_FORMAT_MIB:
+ case __('MiB'):
return sprintf(__('%{size} MiB'), { size: humanSize });
- case BYTES_FORMAT_GIB:
+ case __('GiB'):
return sprintf(__('%{size} GiB'), { size: humanSize });
default:
return '';
diff --git a/app/assets/javascripts/lib/utils/secret_detection.js b/app/assets/javascripts/lib/utils/secret_detection.js
index 4d8612aeeff..dad4af004cc 100644
--- a/app/assets/javascripts/lib/utils/secret_detection.js
+++ b/app/assets/javascripts/lib/utils/secret_detection.js
@@ -32,6 +32,14 @@ export const containsSensitiveToken = (message) => {
name: 'GitLab Deploy Token',
regex: `gldt-[0-9a-zA-Z_-]{20}`,
},
+ {
+ name: 'GitLab SCIM OAuth Access Token',
+ regex: `glsoat-[0-9a-zA-Z_-]{20}`,
+ },
+ {
+ name: 'GitLab CI Build (Job) Token',
+ regex: `glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}`,
+ },
];
for (const rule of sensitiveDataPatterns) {
diff --git a/app/assets/javascripts/lib/utils/text_utility.js b/app/assets/javascripts/lib/utils/text_utility.js
index 6c30294cbbb..b30eba25aa8 100644
--- a/app/assets/javascripts/lib/utils/text_utility.js
+++ b/app/assets/javascripts/lib/utils/text_utility.js
@@ -173,7 +173,7 @@ export const truncateSha = (sha) => sha.substring(0, 8);
* @return {String}
*/
export function capitalizeFirstCharacter(text) {
- return `${text[0].toUpperCase()}${text.slice(1)}`;
+ return text?.length ? `${text[0].toUpperCase()}${text.slice(1)}` : '';
}
/**
diff --git a/app/assets/javascripts/logo.js b/app/assets/javascripts/logo.js
index c76e44a196d..b4933376d4e 100644
--- a/app/assets/javascripts/logo.js
+++ b/app/assets/javascripts/logo.js
@@ -13,7 +13,7 @@ export function initPortraitLogoDetection() {
const isPortrait = img.height > img.width;
if (isPortrait) {
// Limit the width when the logo has portrait format
- img.classList.replace('gl-h-9', 'gl-w-10');
+ img.classList.replace('gl-h-10', 'gl-w-10');
}
img.classList.remove('gl-visibility-hidden');
},
diff --git a/app/assets/javascripts/merge_requests/components/compare_app.vue b/app/assets/javascripts/merge_requests/components/compare_app.vue
index 538aa090aa8..a753641ffd2 100644
--- a/app/assets/javascripts/merge_requests/components/compare_app.vue
+++ b/app/assets/javascripts/merge_requests/components/compare_app.vue
@@ -42,6 +42,11 @@ export default {
required: false,
default: () => ({}),
},
+ disabled: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
},
data() {
return {
@@ -120,6 +125,7 @@ export default {
:default="currentBranch"
:toggle-class="toggleClass.branch"
:data-qa-compare-side="compareSide"
+ :disabled="disabled"
data-testid="compare-dropdown"
@selected="selectBranch"
/>
diff --git a/app/assets/javascripts/merge_requests/components/compare_dropdown.vue b/app/assets/javascripts/merge_requests/components/compare_dropdown.vue
index 20989206a51..35fbf4bc4e6 100644
--- a/app/assets/javascripts/merge_requests/components/compare_dropdown.vue
+++ b/app/assets/javascripts/merge_requests/components/compare_dropdown.vue
@@ -46,6 +46,11 @@ export default {
required: false,
default: '',
},
+ disabled: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
},
data() {
return {
@@ -131,6 +136,7 @@ export default {
:toggle-text="current.text || dropdownHeader"
:header-text="dropdownHeader"
:searching="isLoading"
+ :disabled="disabled"
searchable
class="gl-w-full dropdown-target-project"
:toggle-class="[
diff --git a/app/assets/javascripts/merge_requests/components/sticky_header.vue b/app/assets/javascripts/merge_requests/components/sticky_header.vue
index 877e6142bae..e405a534cdc 100644
--- a/app/assets/javascripts/merge_requests/components/sticky_header.vue
+++ b/app/assets/javascripts/merge_requests/components/sticky_header.vue
@@ -70,6 +70,7 @@ export default {
title: { default: '' },
tabs: { default: () => [] },
isFluidLayout: { default: false },
+ blocksMerge: { default: false },
},
data() {
return {
@@ -226,7 +227,7 @@ export default {
</li>
</ul>
<div class="gl-display-none gl-lg-display-flex gl-align-items-center gl-ml-auto">
- <discussion-counter blocks-merge hide-options />
+ <discussion-counter :blocks-merge="blocksMerge" hide-options />
<div
v-if="isSignedIn"
:class="{ 'gl-display-flex gl-gap-3': isNotificationsTodosButtons }"
diff --git a/app/assets/javascripts/ml/model_registry/apps/index.js b/app/assets/javascripts/ml/model_registry/apps/index.js
index 92d159f68be..60fe5dfa804 100644
--- a/app/assets/javascripts/ml/model_registry/apps/index.js
+++ b/app/assets/javascripts/ml/model_registry/apps/index.js
@@ -1,5 +1,6 @@
import ShowMlModel from './show_ml_model.vue';
import ShowMlModelVersion from './show_ml_model_version.vue';
import IndexMlModels from './index_ml_models.vue';
+import NewMlModel from './new_ml_model.vue';
-export { ShowMlModel, ShowMlModelVersion, IndexMlModels };
+export { ShowMlModel, ShowMlModelVersion, IndexMlModels, NewMlModel };
diff --git a/app/assets/javascripts/ml/model_registry/apps/index_ml_models.vue b/app/assets/javascripts/ml/model_registry/apps/index_ml_models.vue
index e5e093db5ca..59b68fc0063 100644
--- a/app/assets/javascripts/ml/model_registry/apps/index_ml_models.vue
+++ b/app/assets/javascripts/ml/model_registry/apps/index_ml_models.vue
@@ -1,6 +1,6 @@
<script>
import { isEmpty } from 'lodash';
-import { GlBadge } from '@gitlab/ui';
+import { GlBadge, GlButton, GlTooltipDirective } from '@gitlab/ui';
import Pagination from '~/vue_shared/components/incubation/pagination.vue';
import MetadataItem from '~/vue_shared/components/registry/metadata_item.vue';
import TitleArea from '~/vue_shared/components/registry/title_area.vue';
@@ -10,6 +10,7 @@ import * as i18n from '../translations';
import { BASE_SORT_FIELDS, MODEL_ENTITIES } from '../constants';
import SearchBar from '../components/search_bar.vue';
import ModelRow from '../components/model_row.vue';
+import ActionsDropdown from '../components/actions_dropdown.vue';
export default {
name: 'IndexMlModels',
@@ -21,6 +22,16 @@ export default {
TitleArea,
GlBadge,
EmptyState,
+ GlButton,
+ ActionsDropdown,
+ },
+ directives: {
+ GlTooltip: GlTooltipDirective,
+ },
+ provide() {
+ return {
+ mlflowTrackingUrl: this.mlflowTrackingUrl,
+ };
},
props: {
models: {
@@ -31,11 +42,25 @@ export default {
type: Object,
required: true,
},
+ createModelPath: {
+ type: String,
+ required: true,
+ },
modelCount: {
type: Number,
required: false,
default: 0,
},
+ canWriteModelRegistry: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ mlflowTrackingUrl: {
+ type: String,
+ required: false,
+ default: '',
+ },
},
computed: {
hasModels() {
@@ -63,6 +88,13 @@ export default {
<template #metadata-models-count>
<metadata-item icon="machine-learning" :text="$options.i18n.modelsCountLabel(modelCount)" />
</template>
+ <template #right-actions>
+ <gl-button v-if="canWriteModelRegistry" :href="createModelPath">{{
+ $options.i18n.CREATE_MODEL_LABEL
+ }}</gl-button>
+
+ <actions-dropdown />
+ </template>
</title-area>
<template v-if="hasModels">
<search-bar :sortable-fields="$options.sortableFields" />
diff --git a/app/assets/javascripts/ml/model_registry/apps/new_ml_model.vue b/app/assets/javascripts/ml/model_registry/apps/new_ml_model.vue
new file mode 100644
index 00000000000..618d4cea1a5
--- /dev/null
+++ b/app/assets/javascripts/ml/model_registry/apps/new_ml_model.vue
@@ -0,0 +1,127 @@
+<script>
+import {
+ GlForm,
+ GlFormGroup,
+ GlFormInput,
+ GlFormTextarea,
+ GlAlert,
+ GlButton,
+ GlLink,
+ GlSprintf,
+} from '@gitlab/ui';
+import TitleArea from '~/vue_shared/components/registry/title_area.vue';
+import { visitUrl } from '~/lib/utils/url_utility';
+import * as Sentry from '~/sentry/sentry_browser_wrapper';
+import { helpPagePath } from '~/helpers/help_page_helper';
+import createModelMutation from '../graphql/mutations/create_model.mutation.graphql';
+import {
+ NEW_MODEL_LABEL,
+ ERROR_CREATING_MODEL_LABEL,
+ CREATE_MODEL_WITH_CLIENT_LABEL,
+ NAME_LABEL,
+ DESCRIPTION_LABEL,
+ CREATE_MODEL_LABEL,
+} from '../translations';
+
+export default {
+ name: 'NewMlModel',
+ components: {
+ TitleArea,
+ GlForm,
+ GlFormInput,
+ GlFormGroup,
+ GlFormTextarea,
+ GlAlert,
+ GlButton,
+ GlLink,
+ GlSprintf,
+ },
+ props: {
+ projectPath: {
+ type: String,
+ required: true,
+ },
+ },
+ data() {
+ return {
+ errorMessage: '',
+ modelName: '',
+ modelDescription: '',
+ };
+ },
+ methods: {
+ async createModel() {
+ this.errorMessage = '';
+ try {
+ const variables = {
+ projectPath: this.projectPath,
+ name: this.modelName,
+ description: this.modelDescription,
+ };
+
+ const { data } = await this.$apollo.mutate({
+ mutation: createModelMutation,
+ variables,
+ });
+
+ const [error] = data?.mlModelCreate?.errors || [];
+
+ if (error) {
+ this.errorMessage = data.mlModelCreate.errors.join(', ');
+ } else {
+ visitUrl(data?.mlModelCreate?.model?._links?.showPath);
+ }
+ } catch (error) {
+ Sentry.captureException(error);
+ this.errorMessage = ERROR_CREATING_MODEL_LABEL;
+ }
+ },
+ },
+ i18n: {
+ NEW_MODEL_LABEL,
+ CREATE_MODEL_WITH_CLIENT_LABEL,
+ NAME_LABEL,
+ DESCRIPTION_LABEL,
+ CREATE_MODEL_LABEL,
+ },
+ docHref: helpPagePath('user/project/ml/model_registry/index.md'),
+};
+</script>
+
+<template>
+ <div>
+ <title-area :title="$options.i18n.NEW_MODEL_LABEL" />
+
+ <gl-alert variant="tip" icon="bulb" class="gl-mb-3" :dismissible="false">
+ <gl-sprintf :message="$options.i18n.CREATE_MODEL_WITH_CLIENT_LABEL">
+ <template #link="{ content }">
+ <gl-link :href="$options.docHref" target="_blank">{{ content }}</gl-link>
+ </template>
+ </gl-sprintf>
+ </gl-alert>
+
+ <gl-alert
+ v-if="errorMessage"
+ :dismissible="false"
+ variant="danger"
+ class="gl-mb-3"
+ data-testid="new-model-errors"
+ >
+ {{ errorMessage }}
+ </gl-alert>
+
+ <gl-form @submit.prevent="createModel">
+ <gl-form-group :label="$options.i18n.NAME_LABEL">
+ <gl-form-input v-model="modelName" />
+ </gl-form-group>
+
+ <gl-form-group :label="$options.i18n.DESCRIPTION_LABEL" optional>
+ <gl-form-textarea v-model="modelDescription" />
+ </gl-form-group>
+
+ <gl-button type="submit" variant="confirm" class="js-no-auto-disable">{{
+ $options.i18n.CREATE_MODEL_LABEL
+ }}</gl-button>
+ </gl-form>
+ </div>
+</template>
diff --git a/app/assets/javascripts/ml/model_registry/apps/show_ml_model.vue b/app/assets/javascripts/ml/model_registry/apps/show_ml_model.vue
index 51b8fca6511..e771639dade 100644
--- a/app/assets/javascripts/ml/model_registry/apps/show_ml_model.vue
+++ b/app/assets/javascripts/ml/model_registry/apps/show_ml_model.vue
@@ -1,5 +1,5 @@
<script>
-import { GlTab, GlTabs, GlBadge } from '@gitlab/ui';
+import { GlTab, GlTabs, GlBadge, GlLink } from '@gitlab/ui';
import MetadataItem from '~/vue_shared/components/registry/metadata_item.vue';
import TitleArea from '~/vue_shared/components/registry/title_area.vue';
import ModelVersionDetail from '~/ml/model_registry/components/model_version_detail.vue';
@@ -19,6 +19,7 @@ export default {
GlBadge,
MetadataItem,
ModelVersionDetail,
+ GlLink,
},
props: {
model: {
@@ -33,9 +34,6 @@ export default {
candidateCount() {
return this.model.candidateCount || 0;
},
- latestVersionTitle() {
- return `${i18n.LATEST_VERSION_LABEL}: ${this.model.latestVersion.version}`;
- },
},
i18n,
modelVersionEntity: MODEL_ENTITIES.modelVersion,
@@ -60,7 +58,14 @@ export default {
<gl-tabs class="gl-mt-4">
<gl-tab :title="$options.i18n.MODEL_DETAILS_TAB_LABEL">
<template v-if="model.latestVersion">
- <h3 class="gl-font-lg">{{ latestVersionTitle }}</h3>
+ <h3 class="gl-font-lg">
+ {{ $options.i18n.LATEST_VERSION_LABEL }}:
+
+ <gl-link :href="model.latestVersion.path" data-testid="model-version-link">
+ {{ model.latestVersion.version }}
+ </gl-link>
+ </h3>
+
<model-version-detail :model-version="model.latestVersion" />
</template>
diff --git a/app/assets/javascripts/ml/model_registry/components/actions_dropdown.vue b/app/assets/javascripts/ml/model_registry/components/actions_dropdown.vue
new file mode 100644
index 00000000000..5b4f9e27437
--- /dev/null
+++ b/app/assets/javascripts/ml/model_registry/components/actions_dropdown.vue
@@ -0,0 +1,34 @@
+<script>
+import { GlDisclosureDropdown, GlDisclosureDropdownItem } from '@gitlab/ui';
+import { s__ } from '~/locale';
+
+export default {
+ components: {
+ GlDisclosureDropdownItem,
+ GlDisclosureDropdown,
+ },
+ inject: ['mlflowTrackingUrl'],
+ computed: {
+ copyIdItem() {
+ return {
+ text: s__('MlModelRegistry|Copy MLflow tracking URL'),
+ action: () => {
+ this.$toast.show(s__('MlModelRegistry|Copied MLflow tracking URL to clipboard'));
+ },
+ };
+ },
+ },
+};
+</script>
+
+<template>
+ <gl-disclosure-dropdown
+ placement="right"
+ category="tertiary"
+ :aria-label="__('More actions')"
+ icon="ellipsis_v"
+ no-caret
+ >
+ <gl-disclosure-dropdown-item :item="copyIdItem" :data-clipboard-text="mlflowTrackingUrl" />
+ </gl-disclosure-dropdown>
+</template>
diff --git a/app/assets/javascripts/ml/model_registry/components/candidate_list.vue b/app/assets/javascripts/ml/model_registry/components/candidate_list.vue
index fc24a538293..fca4462d7d2 100644
--- a/app/assets/javascripts/ml/model_registry/components/candidate_list.vue
+++ b/app/assets/javascripts/ml/model_registry/components/candidate_list.vue
@@ -1,22 +1,17 @@
<script>
-import { GlAlert } from '@gitlab/ui';
-import { n__ } from '~/locale';
-import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
-import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import { convertToGraphQLId } from '~/graphql_shared/utils';
-import CandidateListRow from '~/ml/model_registry/components/candidate_list_row.vue';
import { makeLoadCandidatesErrorMessage, NO_CANDIDATES_LABEL } from '../translations';
import getModelCandidatesQuery from '../graphql/queries/get_model_candidates.query.graphql';
import { GRAPHQL_PAGE_SIZE } from '../constants';
+import SearchableList from './searchable_list.vue';
+import CandidateListRow from './candidate_list_row.vue';
export default {
name: 'MlCandidateList',
components: {
- GlAlert,
CandidateListRow,
- PackagesListLoader,
- RegistryList,
+ SearchableList,
},
props: {
modelId: {
@@ -26,7 +21,7 @@ export default {
},
data() {
return {
- modelVersions: {},
+ candidates: {},
errorMessage: undefined,
};
},
@@ -49,18 +44,12 @@ export default {
gid() {
return convertToGraphQLId('Ml::Model', this.modelId);
},
- isListEmpty() {
- return this.count === 0;
- },
isLoading() {
return this.$apollo.queries.candidates.loading;
},
pageInfo() {
return this.candidates?.pageInfo ?? {};
},
- listTitle() {
- return n__('%d candidate', '%d candidates', this.count);
- },
queryVariables() {
return {
id: this.gid,
@@ -70,18 +59,12 @@ export default {
items() {
return this.candidates?.nodes ?? [];
},
- count() {
- return this.candidates?.count ?? 0;
- },
},
methods: {
- fetchPage({ first = null, last = null, before = null, after = null } = {}) {
+ fetchPage(newPageInfo) {
const variables = {
...this.queryVariables,
- first,
- last,
- before,
- after,
+ ...newPageInfo,
};
this.$apollo.queries.candidates.fetchMore({
@@ -91,18 +74,6 @@ export default {
},
});
},
- fetchPreviousCandidatesPage() {
- this.fetchPage({
- last: GRAPHQL_PAGE_SIZE,
- before: this.pageInfo?.startCursor,
- });
- },
- fetchNextCandidatesPage() {
- this.fetchPage({
- first: GRAPHQL_PAGE_SIZE,
- after: this.pageInfo?.endCursor,
- });
- },
},
i18n: {
NO_CANDIDATES_LABEL,
@@ -111,29 +82,19 @@ export default {
</script>
<template>
<div>
- <div v-if="isLoading">
- <packages-list-loader />
- </div>
- <gl-alert v-else-if="errorMessage" variant="danger" :dismissible="false">{{
- errorMessage
- }}</gl-alert>
- <div v-else-if="isListEmpty" class="gl-text-secondary">
- {{ $options.i18n.NO_CANDIDATES_LABEL }}
- </div>
- <div v-else>
- <registry-list
- :hidden-delete="true"
- :is-loading="isLoading"
- :items="items"
- :pagination="pageInfo"
- :title="listTitle"
- @prev-page="fetchPreviousCandidatesPage"
- @next-page="fetchNextCandidatesPage"
- >
- <template #default="{ item }">
- <candidate-list-row :candidate="item" />
- </template>
- </registry-list>
- </div>
+ <searchable-list
+ :page-info="pageInfo"
+ :items="items"
+ :error-message="errorMessage"
+ @fetch-page="fetchPage"
+ >
+ <template #empty-state>
+ {{ $options.i18n.NO_CANDIDATES_LABEL }}
+ </template>
+
+ <template #item="{ item }">
+ <candidate-list-row :candidate="item" />
+ </template>
+ </searchable-list>
</div>
</template>
diff --git a/app/assets/javascripts/ml/model_registry/components/model_version_list.vue b/app/assets/javascripts/ml/model_registry/components/model_version_list.vue
index 6b44cb2f613..5a649a9596a 100644
--- a/app/assets/javascripts/ml/model_registry/components/model_version_list.vue
+++ b/app/assets/javascripts/ml/model_registry/components/model_version_list.vue
@@ -1,23 +1,18 @@
<script>
-import { GlAlert } from '@gitlab/ui';
-import { n__ } from '~/locale';
-import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
-import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import { makeLoadVersionsErrorMessage } from '~/ml/model_registry/translations';
import { convertToGraphQLId } from '~/graphql_shared/utils';
import getModelVersionsQuery from '../graphql/queries/get_model_versions.query.graphql';
import { GRAPHQL_PAGE_SIZE, MODEL_ENTITIES } from '../constants';
+import SearchableList from './searchable_list.vue';
import EmptyState from './empty_state.vue';
import ModelVersionRow from './model_version_row.vue';
export default {
components: {
EmptyState,
- GlAlert,
ModelVersionRow,
- PackagesListLoader,
- RegistryList,
+ SearchableList,
},
props: {
modelId: {
@@ -50,18 +45,12 @@ export default {
gid() {
return convertToGraphQLId('Ml::Model', this.modelId);
},
- isListEmpty() {
- return this.count === 0;
- },
isLoading() {
return this.$apollo.queries.modelVersions.loading;
},
pageInfo() {
return this.modelVersions?.pageInfo ?? {};
},
- listTitle() {
- return n__('%d version', '%d versions', this.versions.length);
- },
queryVariables() {
return {
id: this.gid,
@@ -71,31 +60,12 @@ export default {
versions() {
return this.modelVersions?.nodes ?? [];
},
- count() {
- return this.modelVersions?.count ?? 0;
- },
},
methods: {
- fetchPreviousVersionsPage() {
+ fetchPage(pageInfo) {
const variables = {
...this.queryVariables,
- first: null,
- last: GRAPHQL_PAGE_SIZE,
- before: this.pageInfo?.startCursor,
- };
- this.$apollo.queries.modelVersions.fetchMore({
- variables,
- updateQuery: (previousResult, { fetchMoreResult }) => {
- return fetchMoreResult;
- },
- });
- },
- fetchNextVersionsPage() {
- const variables = {
- ...this.queryVariables,
- first: GRAPHQL_PAGE_SIZE,
- last: null,
- after: this.pageInfo?.endCursor,
+ ...pageInfo,
};
this.$apollo.queries.modelVersions.fetchMore({
@@ -110,28 +80,18 @@ export default {
};
</script>
<template>
- <div>
- <div v-if="isLoading">
- <packages-list-loader />
- </div>
- <gl-alert v-else-if="errorMessage" variant="danger" :dismissible="false">{{
- errorMessage
- }}</gl-alert>
- <empty-state v-else-if="isListEmpty" :entity-type="$options.modelVersionEntity" />
- <div v-else>
- <registry-list
- :hidden-delete="true"
- :is-loading="isLoading"
- :items="versions"
- :pagination="pageInfo"
- :title="listTitle"
- @prev-page="fetchPreviousVersionsPage"
- @next-page="fetchNextVersionsPage"
- >
- <template #default="{ item }">
- <model-version-row :model-version="item" />
- </template>
- </registry-list>
- </div>
- </div>
+ <searchable-list
+ :page-info="pageInfo"
+ :items="versions"
+ :error-message="errorMessage"
+ @fetch-page="fetchPage"
+ >
+ <template #empty-state>
+ <empty-state :entity-type="$options.modelVersionEntity" />
+ </template>
+
+ <template #item="{ item }">
+ <model-version-row :model-version="item" />
+ </template>
+ </searchable-list>
</template>
diff --git a/app/assets/javascripts/ml/model_registry/components/searchable_list.vue b/app/assets/javascripts/ml/model_registry/components/searchable_list.vue
new file mode 100644
index 00000000000..05062ae6fbf
--- /dev/null
+++ b/app/assets/javascripts/ml/model_registry/components/searchable_list.vue
@@ -0,0 +1,79 @@
+<script>
+import { GlAlert } from '@gitlab/ui';
+import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
+import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
+import { GRAPHQL_PAGE_SIZE } from '~/ml/model_registry/constants';
+
+export default {
+ name: 'SearchableList',
+ components: { PackagesListLoader, RegistryList, GlAlert },
+ props: {
+ items: {
+ type: Array,
+ required: true,
+ },
+ pageInfo: {
+ type: Object,
+ required: true,
+ },
+ isLoading: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ errorMessage: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ },
+ computed: {
+ isListEmpty() {
+ return this.items.length === 0;
+ },
+ },
+ methods: {
+ prevPage() {
+ const pageInfo = {
+ first: null,
+ last: GRAPHQL_PAGE_SIZE,
+ before: this.pageInfo.startCursor,
+ };
+
+ this.$emit('fetch-page', pageInfo);
+ },
+ nextPage() {
+ const pageInfo = {
+ first: GRAPHQL_PAGE_SIZE,
+ last: null,
+ after: this.pageInfo.endCursor,
+ };
+
+ this.$emit('fetch-page', pageInfo);
+ },
+ },
+};
+</script>
+
+<template>
+ <div>
+ <packages-list-loader v-if="isLoading" />
+ <gl-alert v-else-if="errorMessage" variant="danger" :dismissible="false">
+ {{ errorMessage }}
+ </gl-alert>
+ <slot v-else-if="isListEmpty" name="empty-state"></slot>
+ <registry-list
+ v-else
+ :hidden-delete="true"
+ :is-loading="isLoading"
+ :items="items"
+ :pagination="pageInfo"
+ @prev-page="prevPage"
+ @next-page="nextPage"
+ >
+ <template #default="{ item }">
+ <slot name="item" :item="item"></slot>
+ </template>
+ </registry-list>
+ </div>
+</template>
diff --git a/app/assets/javascripts/ml/model_registry/graphql/mutations/create_model.mutation.graphql b/app/assets/javascripts/ml/model_registry/graphql/mutations/create_model.mutation.graphql
new file mode 100644
index 00000000000..af801474e80
--- /dev/null
+++ b/app/assets/javascripts/ml/model_registry/graphql/mutations/create_model.mutation.graphql
@@ -0,0 +1,11 @@
+mutation createModel($projectPath: ID!, $name: String!, $description: String) {
+ mlModelCreate(input: { projectPath: $projectPath, name: $name, description: $description }) {
+ model {
+ id
+ _links {
+ showPath
+ }
+ }
+ errors
+ }
+}
diff --git a/app/assets/javascripts/ml/model_registry/translations.js b/app/assets/javascripts/ml/model_registry/translations.js
index 968ec83434d..006142979e2 100644
--- a/app/assets/javascripts/ml/model_registry/translations.js
+++ b/app/assets/javascripts/ml/model_registry/translations.js
@@ -32,6 +32,15 @@ export const CI_SECTION_LABEL = s__('MlModelRegistry|CI Info');
export const JOB_LABEL = __('Job');
export const CI_USER_LABEL = s__('MlModelRegistry|Triggered by');
export const CI_MR_LABEL = __('Merge request');
+export const NEW_MODEL_LABEL = s__('MlModelRegistry|New model');
+export const CREATE_MODEL_LABEL = s__('MlModelRegistry|Create model');
+export const ERROR_CREATING_MODEL_LABEL = s__(
+ 'MlModelRegistry|An error has occurred when saving the model.',
+);
+export const CREATE_MODEL_WITH_CLIENT_LABEL = s__(
+ 'MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}',
+);
+export const NAME_LABEL = __('Name');
export const makeLoadVersionsErrorMessage = (message) =>
sprintf(s__('MlModelRegistry|Failed to load model versions with error: %{message}'), {
diff --git a/app/assets/javascripts/notes/components/note_form.vue b/app/assets/javascripts/notes/components/note_form.vue
index 9aaae960b6f..77ce5ea5910 100644
--- a/app/assets/javascripts/notes/components/note_form.vue
+++ b/app/assets/javascripts/notes/components/note_form.vue
@@ -352,7 +352,7 @@ export default {
</template>
</gl-sprintf>
</div>
- <div class="flash-container timeline-content"></div>
+ <div class="flash-container"></div>
<form :data-line-code="lineCode" class="edit-note common-note-form js-quick-submit gfm-form">
<comment-field-layout :noteable-data="getNoteableData" :is-internal-note="isInternalNote">
<markdown-editor
diff --git a/app/assets/javascripts/notes/components/notes_app.vue b/app/assets/javascripts/notes/components/notes_app.vue
index 2524b9efdb6..86f93ee425e 100644
--- a/app/assets/javascripts/notes/components/notes_app.vue
+++ b/app/assets/javascripts/notes/components/notes_app.vue
@@ -1,6 +1,7 @@
<script>
// eslint-disable-next-line no-restricted-imports
import { mapGetters, mapActions } from 'vuex';
+import { v4 as uuidv4 } from 'uuid';
import highlightCurrentUser from '~/behaviors/markdown/highlight_current_user';
import TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';
import OrderedLayout from '~/vue_shared/components/ordered_layout.vue';
@@ -39,6 +40,11 @@ export default {
AiSummary: () => import('ee_component/notes/components/ai_summary.vue'),
},
mixins: [glFeatureFlagsMixin()],
+ provide() {
+ return {
+ summarizeClientSubscriptionId: uuidv4(),
+ };
+ },
props: {
noteableData: {
type: Object,
diff --git a/app/assets/javascripts/observability/client.js b/app/assets/javascripts/observability/client.js
index 3a793c9dc14..b7e4ae8e8ea 100644
--- a/app/assets/javascripts/observability/client.js
+++ b/app/assets/javascripts/observability/client.js
@@ -1,3 +1,4 @@
+import { isValidDate } from '~/lib/utils/datetime_utility';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import axios from '~/lib/utils/axios_utils';
import { logError } from '~/lib/logger';
@@ -128,6 +129,24 @@ function handleAttributeFilter(filterValue, filterOperator, searchParams) {
}
}
+function handlePeriodFilter(rawValue, filterName, filterParams) {
+ if (rawValue.trim().indexOf(' ') < 0) {
+ filterParams.append(filterName, rawValue.trim());
+ return;
+ }
+
+ const dateParts = rawValue.split(' - ');
+ if (dateParts.length === 2) {
+ const [start, end] = dateParts;
+ const startDate = new Date(start);
+ const endDate = new Date(end);
+ if (isValidDate(startDate) && isValidDate(endDate)) {
+ filterParams.append('start_time', startDate.toISOString());
+ filterParams.append('end_time', endDate.toISOString());
+ }
+ }
+}
+
/**
* Builds URLSearchParams from a filter object of type { [filterName]: undefined | null | Array<{operator: String, value: any} }
* e.g:
@@ -154,6 +173,8 @@ function filterObjToQueryParams(filterObj) {
validFilters.forEach(({ operator, value: rawValue }) => {
if (filterName === 'attribute') {
handleAttributeFilter(rawValue, operator, filterParams);
+ } else if (filterName === 'period') {
+ handlePeriodFilter(rawValue, filterName, filterParams);
} else {
const paramName = getFilterParamName(filterName, operator);
let value = rawValue;
diff --git a/app/assets/javascripts/organizations/groups_and_projects/components/app.vue b/app/assets/javascripts/organizations/groups_and_projects/components/app.vue
index dba738de5e1..ebe69925491 100644
--- a/app/assets/javascripts/organizations/groups_and_projects/components/app.vue
+++ b/app/assets/javascripts/organizations/groups_and_projects/components/app.vue
@@ -172,6 +172,6 @@ export default {
</div>
</div>
</div>
- <component :is="routerView" />
+ <component :is="routerView" list-item-class="gl-px-5" />
</div>
</template>
diff --git a/app/assets/javascripts/organizations/mock_data.js b/app/assets/javascripts/organizations/mock_data.js
index 0c363cf7c7f..92381087917 100644
--- a/app/assets/javascripts/organizations/mock_data.js
+++ b/app/assets/javascripts/organizations/mock_data.js
@@ -39,14 +39,14 @@ export const organizationProjects = {
id: 'gid://gitlab/Project/8',
nameWithNamespace: 'Twitter / Typeahead.Js',
webUrl: 'http://127.0.0.1:3000/twitter/Typeahead.Js',
- topics: ['JavaScript', 'Vue.js'],
+ topics: ['JavaScript', 'Vue.js', 'GraphQL', 'Jest', 'CSS', 'HTML'],
forksCount: 4,
avatarUrl: null,
starCount: 0,
visibility: 'public',
openIssuesCount: 48,
descriptionHtml:
- '<p data-sourcepos="1:1-1:59" dir="auto">Optio et reprehenderit enim doloremque deserunt et commodi.</p>',
+ '<p data-sourcepos="1:1-1:59" dir="auto">Optio et reprehenderit enim doloremque deserunt et commodi. Sed sit amet iaculis neque. Morbi vel convallis elit. Aliquam vitae arcu orci. Aenean sem velit, dapibus eget enim id, tempor lobortis orci. Pellentesque dignissim nec velit eget sagittis. Maecenas lectus sapien, tincidunt ac cursus a, aliquam eu ipsum. Aliquam posuere maximus augue, ut vehicula elit vulputate condimentum. In libero leo, vehicula nec risus in, ullamcorper convallis risus. Phasellus sit amet lectus sit amet sem volutpat cursus. Nullam facilisis nulla nec lacus pretium, in pretium ex aliquam.</p>',
issuesAccessLevel: 'enabled',
forkingAccessLevel: 'enabled',
isForked: true,
@@ -141,7 +141,7 @@ export const organizationGroups = {
parent: null,
webUrl: 'http://127.0.0.1:3000/groups/Commit451',
descriptionHtml:
- '<p data-sourcepos="1:1-1:52" dir="auto">Autem praesentium vel ut ratione itaque ullam culpa.</p>',
+ '<p data-sourcepos="1:1-1:52" dir="auto">Autem praesentium vel ut ratione itaque ullam culpa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse libero sem, congue ut sem id, semper pharetra ante. Sed at dui ac nunc pellentesque congue. Phasellus posuere, nisl non pellentesque dignissim, lacus nisi molestie ex, vel placerat neque ligula non libero. Curabitur ipsum enim, pretium eu dignissim vitae, euismod nec nibh. Praesent eget ipsum eleifend, pellentesque tortor vel, consequat neque. Etiam suscipit dolor massa, sed consectetur nunc tincidunt ut. Suspendisse posuere malesuada finibus. Maecenas iaculis et diam eu iaculis. Proin at nulla sit amet erat sollicitudin suscipit sit amet a libero.</p>',
avatarUrl: null,
descendantGroupsCount: 0,
projectsCount: 3,
diff --git a/app/assets/javascripts/organizations/new/components/app.vue b/app/assets/javascripts/organizations/new/components/app.vue
index f7f7b79d52b..3a2b786dbae 100644
--- a/app/assets/javascripts/organizations/new/components/app.vue
+++ b/app/assets/javascripts/organizations/new/components/app.vue
@@ -42,7 +42,15 @@ export default {
} = await this.$apollo.mutate({
mutation: organizationCreateMutation,
variables: {
- input: { name: formValues.name, path: formValues.path },
+ input: {
+ name: formValues.name,
+ path: formValues.path,
+ description: formValues.description,
+ avatar: formValues.avatar,
+ },
+ },
+ context: {
+ hasUpload: formValues.avatar instanceof File,
},
});
diff --git a/app/assets/javascripts/organizations/new/index.js b/app/assets/javascripts/organizations/new/index.js
index 9c7e5344800..563e366b2c6 100644
--- a/app/assets/javascripts/organizations/new/index.js
+++ b/app/assets/javascripts/organizations/new/index.js
@@ -13,7 +13,9 @@ export const initOrganizationsNew = () => {
const {
dataset: { appData },
} = el;
- const { organizationsPath, rootUrl } = convertObjectPropsToCamelCase(JSON.parse(appData));
+ const { organizationsPath, rootUrl, previewMarkdownPath } = convertObjectPropsToCamelCase(
+ JSON.parse(appData),
+ );
const apolloProvider = new VueApollo({
defaultClient: createDefaultClient(),
@@ -26,6 +28,7 @@ export const initOrganizationsNew = () => {
provide: {
organizationsPath,
rootUrl,
+ previewMarkdownPath,
},
render(createElement) {
return createElement(App);
diff --git a/app/assets/javascripts/organizations/settings/general/components/organization_settings.vue b/app/assets/javascripts/organizations/settings/general/components/organization_settings.vue
index 1acc4c54f75..1cea2ceeb90 100644
--- a/app/assets/javascripts/organizations/settings/general/components/organization_settings.vue
+++ b/app/assets/javascripts/organizations/settings/general/components/organization_settings.vue
@@ -3,7 +3,12 @@ import { s__, __ } from '~/locale';
import { createAlert } from '~/alert';
import { visitUrlWithAlerts } from '~/lib/utils/url_utility';
import NewEditForm from '~/organizations/shared/components/new_edit_form.vue';
-import { FORM_FIELD_NAME, FORM_FIELD_ID } from '~/organizations/shared/constants';
+import {
+ FORM_FIELD_NAME,
+ FORM_FIELD_ID,
+ FORM_FIELD_DESCRIPTION,
+ FORM_FIELD_AVATAR,
+} from '~/organizations/shared/constants';
import SettingsBlock from '~/vue_shared/components/settings/settings_block.vue';
import { convertToGraphQLId } from '~/graphql_shared/utils';
import { TYPE_ORGANIZATION } from '~/graphql_shared/constants';
@@ -25,7 +30,7 @@ export default {
),
successMessage: s__('Organization|Organization was successfully updated.'),
},
- fieldsToRender: [FORM_FIELD_NAME, FORM_FIELD_ID],
+ fieldsToRender: [FORM_FIELD_NAME, FORM_FIELD_ID, FORM_FIELD_DESCRIPTION, FORM_FIELD_AVATAR],
data() {
return {
loading: false,
@@ -33,9 +38,24 @@ export default {
};
},
methods: {
+ avatarInput(formValues) {
+ // Organization has an avatar and it is been explicitly removed.
+ if (this.organization.avatar && formValues.avatar === null) {
+ return { avatar: null };
+ }
+
+ // Avatar has been set or changed.
+ if (formValues.avatar instanceof File) {
+ return { avatar: formValues.avatar };
+ }
+
+ // Avatar has not been changed at all, do not include the `avatar` key in input.
+ return {};
+ },
async onSubmit(formValues) {
this.errors = [];
this.loading = true;
+
try {
const {
data: {
@@ -47,8 +67,13 @@ export default {
input: {
id: convertToGraphQLId(TYPE_ORGANIZATION, this.organization.id),
name: formValues.name,
+ description: formValues.description,
+ ...this.avatarInput(formValues),
},
},
+ context: {
+ hasUpload: formValues.avatar instanceof File,
+ },
});
if (errors.length) {
diff --git a/app/assets/javascripts/organizations/settings/general/index.js b/app/assets/javascripts/organizations/settings/general/index.js
index 138606a0aab..3ac1243ff0f 100644
--- a/app/assets/javascripts/organizations/settings/general/index.js
+++ b/app/assets/javascripts/organizations/settings/general/index.js
@@ -13,9 +13,12 @@ export const initOrganizationsSettingsGeneral = () => {
const {
dataset: { appData },
} = el;
- const { organization, organizationsPath, rootUrl } = convertObjectPropsToCamelCase(
- JSON.parse(appData),
- );
+ const {
+ organization,
+ organizationsPath,
+ rootUrl,
+ previewMarkdownPath,
+ } = convertObjectPropsToCamelCase(JSON.parse(appData));
const apolloProvider = new VueApollo({
defaultClient: createDefaultClient(),
@@ -29,6 +32,7 @@ export const initOrganizationsSettingsGeneral = () => {
organization,
organizationsPath,
rootUrl,
+ previewMarkdownPath,
},
render(createElement) {
return createElement(App);
diff --git a/app/assets/javascripts/organizations/shared/components/groups_view.vue b/app/assets/javascripts/organizations/shared/components/groups_view.vue
index eaa3017ef97..87bc79a5405 100644
--- a/app/assets/javascripts/organizations/shared/components/groups_view.vue
+++ b/app/assets/javascripts/organizations/shared/components/groups_view.vue
@@ -32,6 +32,11 @@ export default {
required: false,
default: false,
},
+ listItemClass: {
+ type: [String, Array, Object],
+ required: false,
+ default: '',
+ },
},
data() {
return {
@@ -77,6 +82,11 @@ export default {
<template>
<gl-loading-icon v-if="isLoading" class="gl-mt-5" size="md" />
- <groups-list v-else-if="groups.length" :groups="groups" show-group-icon />
+ <groups-list
+ v-else-if="groups.length"
+ :groups="groups"
+ show-group-icon
+ :list-item-class="listItemClass"
+ />
<gl-empty-state v-else v-bind="emptyStateProps" />
</template>
diff --git a/app/assets/javascripts/organizations/shared/components/new_edit_form.vue b/app/assets/javascripts/organizations/shared/components/new_edit_form.vue
index c5bb16b944a..49519369e9a 100644
--- a/app/assets/javascripts/organizations/shared/components/new_edit_form.vue
+++ b/app/assets/javascripts/organizations/shared/components/new_edit_form.vue
@@ -3,10 +3,15 @@ import { GlForm, GlFormFields, GlButton } from '@gitlab/ui';
import { formValidators } from '@gitlab/ui/dist/utils';
import { s__, __ } from '~/locale';
import { slugify } from '~/lib/utils/text_utility';
+import AvatarUploadDropzone from '~/vue_shared/components/upload_dropzone/avatar_upload_dropzone.vue';
+import MarkdownField from '~/vue_shared/components/markdown/field.vue';
+import { helpPagePath } from '~/helpers/help_page_helper';
import {
FORM_FIELD_NAME,
FORM_FIELD_ID,
FORM_FIELD_PATH,
+ FORM_FIELD_DESCRIPTION,
+ FORM_FIELD_AVATAR,
FORM_FIELD_PATH_VALIDATORS,
} from '../constants';
import OrganizationUrlField from './organization_url_field.vue';
@@ -18,12 +23,28 @@ export default {
GlFormFields,
GlButton,
OrganizationUrlField,
+ AvatarUploadDropzone,
+ MarkdownField,
},
i18n: {
cancel: __('Cancel'),
},
formId: 'new-organization-form',
- inject: ['organizationsPath'],
+ markdownDocsPath: helpPagePath('user/organization/index', {
+ anchor: 'organization-description-supported-markdown',
+ }),
+ restrictedToolBarItems: [
+ 'code',
+ 'quote',
+ 'bullet-list',
+ 'numbered-list',
+ 'task-list',
+ 'collapsible-section',
+ 'table',
+ 'attach-file',
+ 'full-screen',
+ ],
+ inject: ['organizationsPath', 'previewMarkdownPath'],
props: {
loading: {
type: Boolean,
@@ -36,6 +57,8 @@ export default {
return {
[FORM_FIELD_NAME]: '',
[FORM_FIELD_PATH]: '',
+ [FORM_FIELD_DESCRIPTION]: '',
+ [FORM_FIELD_AVATAR]: null,
};
},
},
@@ -43,7 +66,7 @@ export default {
type: Array,
required: false,
default() {
- return [FORM_FIELD_NAME, FORM_FIELD_PATH];
+ return [FORM_FIELD_NAME, FORM_FIELD_PATH, FORM_FIELD_DESCRIPTION, FORM_FIELD_AVATAR];
},
},
submitButtonText: {
@@ -98,6 +121,19 @@ export default {
class: 'gl-w-full',
},
},
+ [FORM_FIELD_DESCRIPTION]: {
+ label: s__('Organization|Organization description (optional)'),
+ groupAttrs: {
+ class: 'gl-w-full common-note-form',
+ },
+ },
+ [FORM_FIELD_AVATAR]: {
+ label: s__('Organization|Organization avatar'),
+ groupAttrs: {
+ class: 'gl-w-full',
+ labelSrOnly: true,
+ },
+ },
};
return Object.entries(fields).reduce((accumulator, [fieldKey, fieldDefinition]) => {
@@ -126,6 +162,7 @@ export default {
formFieldsInputEvent(event);
this.hasPathBeenManuallySet = true;
},
+ helpPagePath,
},
};
</script>
@@ -148,11 +185,46 @@ export default {
@blur="blur"
/>
</template>
+ <template #input(description)="{ id, value, input, blur }">
+ <div class="gl-md-form-input-xl">
+ <markdown-field
+ :can-attach-file="false"
+ :markdown-preview-path="previewMarkdownPath"
+ :markdown-docs-path="$options.markdownDocsPath"
+ :textarea-value="value"
+ :restricted-tool-bar-items="$options.restrictedToolBarItems"
+ >
+ <template #textarea>
+ <textarea
+ :id="id"
+ :value="value"
+ class="note-textarea js-gfm-input markdown-area"
+ maxlength="1024"
+ @input="input($event.target.value)"
+ @blur="blur"
+ ></textarea>
+ </template>
+ </markdown-field>
+ </div>
+ </template>
+ <template #input(avatar)="{ input, value }">
+ <avatar-upload-dropzone
+ :value="value"
+ :entity="formValues"
+ :label="fields.avatar.label"
+ @input="input"
+ />
+ </template>
</gl-form-fields>
<div class="gl-display-flex gl-gap-3">
- <gl-button type="submit" variant="confirm" class="js-no-auto-disable" :loading="loading">{{
- submitButtonText
- }}</gl-button>
+ <gl-button
+ type="submit"
+ variant="confirm"
+ class="js-no-auto-disable"
+ :loading="loading"
+ data-testid="submit-button"
+ >{{ submitButtonText }}</gl-button
+ >
<gl-button v-if="showCancelButton" :href="organizationsPath">{{
$options.i18n.cancel
}}</gl-button>
diff --git a/app/assets/javascripts/organizations/shared/components/organization_url_field.vue b/app/assets/javascripts/organizations/shared/components/organization_url_field.vue
index d36f62477e6..c4b31e6b8a6 100644
--- a/app/assets/javascripts/organizations/shared/components/organization_url_field.vue
+++ b/app/assets/javascripts/organizations/shared/components/organization_url_field.vue
@@ -39,7 +39,7 @@ export default {
</script>
<template>
- <gl-form-input-group>
+ <gl-form-input-group class="gl-md-form-input-xl">
<template #prepend>
<gl-input-group-text class="organization-root-path">
<gl-truncate :text="baseUrl" position="middle" />
@@ -50,7 +50,7 @@ export default {
:id="id"
:value="value"
:placeholder="$options.i18n.pathPlaceholder"
- class="gl-h-auto! gl-md-form-input-lg"
+ class="gl-h-auto!"
@input="$emit('input', $event)"
@blur="$emit('blur', $event)"
/>
diff --git a/app/assets/javascripts/organizations/shared/components/projects_view.vue b/app/assets/javascripts/organizations/shared/components/projects_view.vue
index 9bf4e597884..323a8895821 100644
--- a/app/assets/javascripts/organizations/shared/components/projects_view.vue
+++ b/app/assets/javascripts/organizations/shared/components/projects_view.vue
@@ -36,6 +36,11 @@ export default {
required: false,
default: false,
},
+ listItemClass: {
+ type: [String, Array, Object],
+ required: false,
+ default: '',
+ },
},
data() {
return {
@@ -81,6 +86,11 @@ export default {
<template>
<gl-loading-icon v-if="isLoading" class="gl-mt-5" size="md" />
- <projects-list v-else-if="projects.length" :projects="projects" show-project-icon />
+ <projects-list
+ v-else-if="projects.length"
+ :projects="projects"
+ show-project-icon
+ :list-item-class="listItemClass"
+ />
<gl-empty-state v-else v-bind="emptyStateProps" />
</template>
diff --git a/app/assets/javascripts/organizations/shared/constants.js b/app/assets/javascripts/organizations/shared/constants.js
index 7287d84f99f..c4f4f348ff2 100644
--- a/app/assets/javascripts/organizations/shared/constants.js
+++ b/app/assets/javascripts/organizations/shared/constants.js
@@ -4,6 +4,8 @@ import { s__ } from '~/locale';
export const FORM_FIELD_NAME = 'name';
export const FORM_FIELD_ID = 'id';
export const FORM_FIELD_PATH = 'path';
+export const FORM_FIELD_DESCRIPTION = 'description';
+export const FORM_FIELD_AVATAR = 'avatar';
export const FORM_FIELD_PATH_VALIDATORS = [
formValidators.required(s__('Organization|Organization URL is required.')),
diff --git a/app/assets/javascripts/organizations/show/components/app.vue b/app/assets/javascripts/organizations/show/components/app.vue
index 47264d80454..4cd5ada1d66 100644
--- a/app/assets/javascripts/organizations/show/components/app.vue
+++ b/app/assets/javascripts/organizations/show/components/app.vue
@@ -1,11 +1,12 @@
<script>
import OrganizationAvatar from './organization_avatar.vue';
+import OrganizationDescription from './organization_description.vue';
import GroupsAndProjects from './groups_and_projects.vue';
import AssociationCounts from './association_counts.vue';
export default {
name: 'OrganizationShowApp',
- components: { OrganizationAvatar, GroupsAndProjects, AssociationCounts },
+ components: { OrganizationAvatar, OrganizationDescription, GroupsAndProjects, AssociationCounts },
props: {
organization: {
type: Object,
@@ -26,6 +27,7 @@ export default {
<template>
<div class="gl-py-6">
<organization-avatar :organization="organization" />
+ <organization-description :organization="organization" />
<association-counts
:association-counts="associationCounts"
:groups-and-projects-organization-path="groupsAndProjectsOrganizationPath"
diff --git a/app/assets/javascripts/organizations/show/components/organization_avatar.vue b/app/assets/javascripts/organizations/show/components/organization_avatar.vue
index c57ee0ea5b5..d569af3e9b4 100644
--- a/app/assets/javascripts/organizations/show/components/organization_avatar.vue
+++ b/app/assets/javascripts/organizations/show/components/organization_avatar.vue
@@ -44,6 +44,7 @@ export default {
:entity-name="organization.name"
:shape="$options.AVATAR_SHAPE_OPTION_RECT"
:size="64"
+ :src="organization.avatar_url"
/>
<div class="gl-ml-3">
<div class="gl-display-flex gl-align-items-center">
diff --git a/app/assets/javascripts/organizations/show/components/organization_description.vue b/app/assets/javascripts/organizations/show/components/organization_description.vue
new file mode 100644
index 00000000000..6222bdcd082
--- /dev/null
+++ b/app/assets/javascripts/organizations/show/components/organization_description.vue
@@ -0,0 +1,24 @@
+<script>
+import SafeHtml from '~/vue_shared/directives/safe_html';
+
+export default {
+ name: 'OrganizationDescription',
+ directives: {
+ SafeHtml,
+ },
+ props: {
+ organization: {
+ type: Object,
+ required: true,
+ },
+ },
+};
+</script>
+
+<template>
+ <div
+ v-if="organization.description_html"
+ v-safe-html="organization.description_html"
+ class="gl-mt-5 md"
+ ></div>
+</template>
diff --git a/app/assets/javascripts/packages_and_registries/container_registry/explorer/components/details_page/details_header.vue b/app/assets/javascripts/packages_and_registries/container_registry/explorer/components/details_page/details_header.vue
index 75af0286e12..7fd7c0fe542 100644
--- a/app/assets/javascripts/packages_and_registries/container_registry/explorer/components/details_page/details_header.vue
+++ b/app/assets/javascripts/packages_and_registries/container_registry/explorer/components/details_page/details_header.vue
@@ -142,7 +142,12 @@ export default {
</template>
<template v-if="formattedSize" #metadata-size>
- <metadata-item icon="disk" :text="formattedSize" data-testid="image-size" />
+ <metadata-item
+ icon="disk"
+ :text="formattedSize"
+ :text-tooltip="s__('ContainerRegistry|Includes both tagged and untagged images')"
+ data-testid="image-size"
+ />
</template>
<template #metadata-cleanup>
diff --git a/app/assets/javascripts/packages_and_registries/settings/group/components/group_settings_app.vue b/app/assets/javascripts/packages_and_registries/settings/group/components/group_settings_app.vue
index 6ff7d58fd9e..89ab184d808 100644
--- a/app/assets/javascripts/packages_and_registries/settings/group/components/group_settings_app.vue
+++ b/app/assets/javascripts/packages_and_registries/settings/group/components/group_settings_app.vue
@@ -1,6 +1,6 @@
<script>
import { GlAlert } from '@gitlab/ui';
-import { n__ } from '~/locale';
+import { __ } from '~/locale';
import PackagesSettings from '~/packages_and_registries/settings/group/components/packages_settings.vue';
import PackagesForwardingSettings from '~/packages_and_registries/settings/group/components/packages_forwarding_settings.vue';
import DependencyProxySettings from '~/packages_and_registries/settings/group/components/dependency_proxy_settings.vue';
@@ -50,21 +50,13 @@ export default {
dismissAlert() {
this.alertMessage = null;
},
- handleSuccess(amount = 1) {
- const successMessage = n__(
- 'Setting saved successfully',
- 'Settings saved successfully',
- amount,
- );
+ handleSuccess() {
+ const successMessage = __('Settings saved successfully.');
this.$toast.show(successMessage);
this.dismissAlert();
},
- handleError(amount = 1) {
- const errorMessage = n__(
- 'An error occurred while saving the setting',
- 'An error occurred while saving the settings',
- amount,
- );
+ handleError() {
+ const errorMessage = __('An error occurred while saving the settings.');
this.alertMessage = errorMessage;
},
},
@@ -81,14 +73,14 @@ export default {
class="settings-section-no-bottom"
:package-settings="packageSettings"
:is-loading="isLoading"
- @success="handleSuccess(2)"
- @error="handleError(2)"
+ @success="handleSuccess"
+ @error="handleError"
/>
<packages-forwarding-settings
:forward-settings="packageSettings"
- @success="handleSuccess(2)"
- @error="handleError(2)"
+ @success="handleSuccess"
+ @error="handleError"
/>
<dependency-proxy-settings
diff --git a/app/assets/javascripts/packages_and_registries/settings/project/components/packages_protection_rules.vue b/app/assets/javascripts/packages_and_registries/settings/project/components/packages_protection_rules.vue
new file mode 100644
index 00000000000..d9177778803
--- /dev/null
+++ b/app/assets/javascripts/packages_and_registries/settings/project/components/packages_protection_rules.vue
@@ -0,0 +1,115 @@
+<script>
+import { GlCard, GlTable, GlLoadingIcon } from '@gitlab/ui';
+import packagesProtectionRuleQuery from '~/packages_and_registries/settings/project/graphql/queries/get_packages_protection_rules.query.graphql';
+import SettingsBlock from '~/packages_and_registries/shared/components/settings_block.vue';
+import { s__ } from '~/locale';
+
+const PAGINATION_DEFAULT_PER_PAGE = 10;
+
+export default {
+ components: {
+ SettingsBlock,
+ GlCard,
+ GlTable,
+ GlLoadingIcon,
+ },
+ inject: ['projectPath'],
+ i18n: {
+ settingBlockTitle: s__('PackageRegistry|Protected packages'),
+ settingBlockDescription: s__(
+ 'PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package.',
+ ),
+ },
+ data() {
+ return {
+ fetchSettingsError: false,
+ packageProtectionRules: [],
+ };
+ },
+ computed: {
+ tableItems() {
+ return this.packageProtectionRules.map((packagesProtectionRule) => {
+ return {
+ col_1_package_name_pattern: packagesProtectionRule.packageNamePattern,
+ col_2_package_type: packagesProtectionRule.packageType,
+ col_3_push_protected_up_to_access_level:
+ packagesProtectionRule.pushProtectedUpToAccessLevel,
+ };
+ });
+ },
+ totalItems() {
+ return this.packageProtectionRules.length;
+ },
+ isLoadingPackageProtectionRules() {
+ return this.$apollo.queries.packageProtectionRules.loading;
+ },
+ },
+ apollo: {
+ packageProtectionRules: {
+ query: packagesProtectionRuleQuery,
+ variables() {
+ return {
+ projectPath: this.projectPath,
+ first: PAGINATION_DEFAULT_PER_PAGE,
+ };
+ },
+ update: (data) => {
+ return data.project?.packagesProtectionRules?.nodes || [];
+ },
+ error(e) {
+ this.fetchSettingsError = e;
+ },
+ },
+ },
+ fields: [
+ {
+ key: 'col_1_package_name_pattern',
+ label: s__('PackageRegistry|Package name pattern'),
+ },
+ { key: 'col_2_package_type', label: s__('PackageRegistry|Package type') },
+ {
+ key: 'col_3_push_protected_up_to_access_level',
+ label: s__('PackageRegistry|Push protected up to access level'),
+ },
+ ],
+};
+</script>
+
+<template>
+ <settings-block>
+ <template #title>{{ $options.i18n.settingBlockTitle }}</template>
+
+ <template #description>
+ {{ $options.i18n.settingBlockDescription }}
+ </template>
+
+ <template #default>
+ <gl-card
+ class="gl-new-card"
+ header-class="gl-new-card-header"
+ body-class="gl-new-card-body gl-px-0"
+ >
+ <template #header>
+ <div class="gl-new-card-title-wrapper gl-justify-content-space-between">
+ <h3 class="gl-new-card-title">{{ $options.i18n.settingBlockTitle }}</h3>
+ </div>
+ </template>
+
+ <template #default>
+ <gl-table
+ :items="tableItems"
+ :fields="$options.fields"
+ show-empty
+ stacked="md"
+ class="mb-3"
+ :busy="isLoadingPackageProtectionRules"
+ >
+ <template #table-busy>
+ <gl-loading-icon size="sm" class="gl-my-5" />
+ </template>
+ </gl-table>
+ </template>
+ </gl-card>
+ </template>
+ </settings-block>
+</template>
diff --git a/app/assets/javascripts/packages_and_registries/settings/project/components/registry_settings_app.vue b/app/assets/javascripts/packages_and_registries/settings/project/components/registry_settings_app.vue
index 06af69ff250..8e4c50b199b 100644
--- a/app/assets/javascripts/packages_and_registries/settings/project/components/registry_settings_app.vue
+++ b/app/assets/javascripts/packages_and_registries/settings/project/components/registry_settings_app.vue
@@ -8,6 +8,7 @@ import {
} from '~/packages_and_registries/settings/project/constants';
import ContainerExpirationPolicy from '~/packages_and_registries/settings/project/components/container_expiration_policy.vue';
import PackagesCleanupPolicy from '~/packages_and_registries/settings/project/components/packages_cleanup_policy.vue';
+import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
export default {
components: {
@@ -18,7 +19,10 @@ export default {
),
GlAlert,
PackagesCleanupPolicy,
+ PackagesProtectionRules: () =>
+ import('~/packages_and_registries/settings/project/components/packages_protection_rules.vue'),
},
+ mixins: [glFeatureFlagsMixin()],
inject: [
'showContainerRegistrySettings',
'showPackageRegistrySettings',
@@ -32,6 +36,11 @@ export default {
showAlert: false,
};
},
+ computed: {
+ showProtectedPackagesSettings() {
+ return this.showPackageRegistrySettings && this.glFeatures.packagesProtectedPackages;
+ },
+ },
mounted() {
this.checkAlert();
},
@@ -60,6 +69,7 @@ export default {
>
{{ $options.i18n.UPDATE_SETTINGS_SUCCESS_MESSAGE }}
</gl-alert>
+ <packages-protection-rules v-if="showProtectedPackagesSettings" />
<packages-cleanup-policy v-if="showPackageRegistrySettings" />
<container-expiration-policy v-if="showContainerRegistrySettings" />
<dependency-proxy-packages-settings v-if="showDependencyProxySettings" />
diff --git a/app/assets/javascripts/packages_and_registries/settings/project/graphql/queries/get_packages_protection_rules.query.graphql b/app/assets/javascripts/packages_and_registries/settings/project/graphql/queries/get_packages_protection_rules.query.graphql
new file mode 100644
index 00000000000..e0a072b93e4
--- /dev/null
+++ b/app/assets/javascripts/packages_and_registries/settings/project/graphql/queries/get_packages_protection_rules.query.graphql
@@ -0,0 +1,13 @@
+query getProjectPackageProtectionRules($projectPath: ID!, $first: Int) {
+ project(fullPath: $projectPath) {
+ id
+ packagesProtectionRules(first: $first) {
+ nodes {
+ id
+ packageNamePattern
+ packageType
+ pushProtectedUpToAccessLevel
+ }
+ }
+ }
+}
diff --git a/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue b/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue
index 1d54dad43a9..e66040c5a99 100644
--- a/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue
+++ b/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue
@@ -1,6 +1,5 @@
<script>
import {
- GlButton,
GlEmptyState,
GlIcon,
GlLink,
@@ -22,7 +21,6 @@ import { WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';
import PaginationBar from '~/vue_shared/components/pagination_bar/pagination_bar.vue';
import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue';
import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
-import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { isImporting } from '../utils';
import { DEFAULT_ERROR } from '../utils/error_messages';
@@ -43,7 +41,6 @@ const tableCell = (config) => ({
export default {
components: {
- GlButton,
GlEmptyState,
GlIcon,
GlLink,
@@ -59,8 +56,6 @@ export default {
GlTooltip,
},
- mixins: [glFeatureFlagMixin()],
-
inject: ['realtimeChangesPath'],
data() {
@@ -107,10 +102,6 @@ export default {
.map((item) => item.bulk_import_id);
},
- showDetailsLink() {
- return this.glFeatures.bulkImportDetailsPage;
- },
-
paginationConfigCopy() {
return { ...this.paginationConfig };
},
@@ -265,7 +256,7 @@ export default {
<template #cell(created_at)="{ value }">
<time-ago :time="value" />
</template>
- <template #cell(status)="{ value, item, toggleDetails, detailsShowing }">
+ <template #cell(status)="{ value, item }">
<div
class="gl-display-flex gl-flex-direction-column gl-lg-flex-direction-row gl-align-items-flex-start gl-justify-content-space-between gl-gap-3"
>
@@ -273,20 +264,10 @@ export default {
:id="item.bulk_import_id"
:entity-id="item.id"
:has-failures="item.has_failures"
- :show-details-link="showDetailsLink"
:status="value"
/>
- <gl-button
- v-if="!showDetailsLink && item.failures.length"
- :selected="detailsShowing"
- @click="toggleDetails"
- >{{ __('Details') }}</gl-button
- >
</div>
</template>
- <template #row-details="{ item }">
- <pre><code>{{ item.failures }}</code></pre>
- </template>
</gl-table-lite>
<pagination-bar
:page-info="pageInfo"
diff --git a/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js b/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js
index 8cb1462c883..3d877bb3abb 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js
@@ -16,8 +16,9 @@ if (mrNewCompareNode) {
const sourceCompareEl = document.getElementById('js-source-project-dropdown');
const compareEl = document.querySelector('.js-merge-request-new-compare');
const targetBranch = Vue.observable({ name: '' });
-
const currentSourceBranch = JSON.parse(sourceCompareEl.dataset.currentBranch);
+ const sourceBranch = Vue.observable(currentSourceBranch);
+
// eslint-disable-next-line no-new
new Vue({
el: sourceCompareEl,
@@ -52,6 +53,9 @@ if (mrNewCompareNode) {
if (targetBranchName) {
targetBranch.name = targetBranchName;
}
+
+ sourceBranch.value = branchName;
+ sourceBranch.text = branchName;
},
},
render(h) {
@@ -102,9 +106,14 @@ if (mrNewCompareNode) {
return currentTargetBranch;
},
+ isDisabled() {
+ return !sourceBranch.value;
+ },
},
render(h) {
- return h(CompareApp, { props: { currentBranch: this.currentBranch } });
+ return h(CompareApp, {
+ props: { currentBranch: this.currentBranch, disabled: this.isDisabled },
+ });
},
});
} else {
diff --git a/app/assets/javascripts/pages/projects/merge_requests/page.js b/app/assets/javascripts/pages/projects/merge_requests/page.js
index a9d281fc899..69032455fe3 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/page.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/page.js
@@ -28,7 +28,15 @@ requestIdleCallback(() => {
if (el) {
const { data } = el.dataset;
- const { iid, projectPath, title, tabs, isFluidLayout, sourceProjectPath } = JSON.parse(data);
+ const {
+ iid,
+ projectPath,
+ title,
+ tabs,
+ isFluidLayout,
+ sourceProjectPath,
+ blocksMerge,
+ } = JSON.parse(data);
// eslint-disable-next-line no-new
new Vue({
@@ -42,6 +50,7 @@ requestIdleCallback(() => {
title,
tabs,
isFluidLayout: parseBoolean(isFluidLayout),
+ blocksMerge: parseBoolean(blocksMerge),
sourceProjectPath,
},
render(h) {
diff --git a/app/assets/javascripts/pages/projects/ml/models/index/index.js b/app/assets/javascripts/pages/projects/ml/models/index/index.js
index 3f8ef4910a7..54dcf28164f 100644
--- a/app/assets/javascripts/pages/projects/ml/models/index/index.js
+++ b/app/assets/javascripts/pages/projects/ml/models/index/index.js
@@ -1,4 +1,4 @@
import { initSimpleApp } from '~/helpers/init_simple_app_helper';
import { IndexMlModels } from '~/ml/model_registry/apps';
-initSimpleApp('#js-index-ml-models', IndexMlModels);
+initSimpleApp('#js-index-ml-models', IndexMlModels, { withApolloProvider: true });
diff --git a/app/assets/javascripts/pages/projects/ml/models/new/index.js b/app/assets/javascripts/pages/projects/ml/models/new/index.js
new file mode 100644
index 00000000000..8dc5c5aea4e
--- /dev/null
+++ b/app/assets/javascripts/pages/projects/ml/models/new/index.js
@@ -0,0 +1,4 @@
+import { initSimpleApp } from '~/helpers/init_simple_app_helper';
+import { NewMlModel } from '~/ml/model_registry/apps';
+
+initSimpleApp('#js-mount-new-ml-model', NewMlModel, { withApolloProvider: true });
diff --git a/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js b/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js
index dce40c1f322..ad6f84fbc07 100644
--- a/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js
+++ b/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js
@@ -1,11 +1,9 @@
import initArtifactsSettings from '~/artifacts_settings';
-import SecretValues from '~/behaviors/secret_values';
import initSettingsPipelinesTriggers from '~/ci_settings_pipeline_triggers';
import initVariableList from '~/ci/ci_variable_list';
import initInheritedGroupCiVariables from '~/ci/inherited_ci_variables';
import initDeployFreeze from '~/deploy_freeze';
import registrySettingsApp from '~/packages_and_registries/settings/project/registry_settings_bundle';
-import { initInstallRunner } from '~/pages/shared/mount_runner_instructions';
import initSharedRunnersToggle from '~/projects/settings/mount_shared_runners_toggle';
import initRefSwitcherBadges from '~/projects/settings/mount_ref_switcher_badges';
import initSettingsPanels from '~/settings_panels';
@@ -18,14 +16,6 @@ import { initGeneralPipelinesOptions } from '~/ci_settings_general_pipeline';
// Initialize expandable settings panels
initSettingsPanels();
-const runnerToken = document.querySelector('.js-secret-runner-token');
-if (runnerToken) {
- const runnerTokenSecretValue = new SecretValues({
- container: runnerToken,
- });
- runnerTokenSecretValue.init();
-}
-
initVariableList();
initInheritedGroupCiVariables();
@@ -47,7 +37,6 @@ initArtifactsSettings();
initProjectRunnersRegistrationDropdown();
initSharedRunnersToggle();
initRefSwitcherBadges();
-initInstallRunner();
initTokenAccess();
initCiSecureFiles();
initGeneralPipelinesOptions();
diff --git a/app/assets/javascripts/pages/projects/shared/permissions/components/ci_catalog_settings.vue b/app/assets/javascripts/pages/projects/shared/permissions/components/ci_catalog_settings.vue
index 32775ac553c..c35e10462a0 100644
--- a/app/assets/javascripts/pages/projects/shared/permissions/components/ci_catalog_settings.vue
+++ b/app/assets/javascripts/pages/projects/shared/permissions/components/ci_catalog_settings.vue
@@ -5,9 +5,9 @@ import { __, s__ } from '~/locale';
import { helpPagePath } from '~/helpers/help_page_helper';
import BetaBadge from '~/vue_shared/components/badges/beta_badge.vue';
-import getCiCatalogSettingsQuery from '../graphql/queries/get_ci_catalog_settings.query.graphql';
-import catalogResourcesCreate from '../graphql/mutations/catalog_resources_create.mutation.graphql';
-import catalogResourcesDestroy from '../graphql/mutations/catalog_resources_destroy.mutation.graphql';
+import getCiCatalogSettingsQuery from '~/ci/catalog/graphql/queries/get_ci_catalog_settings.query.graphql';
+import catalogResourcesCreate from '~/ci/catalog/graphql/mutations/catalog_resources_create.mutation.graphql';
+import catalogResourcesDestroy from '~/ci/catalog/graphql/mutations/catalog_resources_destroy.mutation.graphql';
const i18n = {
catalogResourceQueryError: s__(
diff --git a/app/assets/javascripts/pages/projects/shared/permissions/index.js b/app/assets/javascripts/pages/projects/shared/permissions/index.js
index 4b4589dc46c..78dd456aad9 100644
--- a/app/assets/javascripts/pages/projects/shared/permissions/index.js
+++ b/app/assets/javascripts/pages/projects/shared/permissions/index.js
@@ -14,6 +14,9 @@ export default function initProjectPermissionsSettings() {
const mountPoint = document.querySelector('.js-project-permissions-form');
const componentPropsEl = document.querySelector('.js-project-permissions-form-data');
+
+ if (!mountPoint) return null;
+
const componentProps = JSON.parse(componentPropsEl.innerHTML);
const {
diff --git a/app/assets/javascripts/pages/sessions/new/index.js b/app/assets/javascripts/pages/sessions/new/index.js
index 32df2911a48..ee1a7633a11 100644
--- a/app/assets/javascripts/pages/sessions/new/index.js
+++ b/app/assets/javascripts/pages/sessions/new/index.js
@@ -16,7 +16,7 @@ new SigninTabsMemoizer(); // eslint-disable-line no-new
new NoEmojiValidator(); // eslint-disable-line no-new
new OAuthRememberMe({
- container: $('.omniauth-container'),
+ container: $('.js-oauth-login'),
}).bindEvents();
// Save the URL fragment from the current window location. This will be present if the user was
diff --git a/app/assets/javascripts/pages/sessions/new/oauth_remember_me.js b/app/assets/javascripts/pages/sessions/new/oauth_remember_me.js
index bad8a7cedc6..3336b094560 100644
--- a/app/assets/javascripts/pages/sessions/new/oauth_remember_me.js
+++ b/app/assets/javascripts/pages/sessions/new/oauth_remember_me.js
@@ -20,8 +20,8 @@ export default class OAuthRememberMe {
toggleRememberMe(event) {
const rememberMe = $(event.target).is(':checked');
- $('.js-oauth-login', this.container).each((i, element) => {
- const $form = $(element).parent('form');
+ $('.js-oauth-login form', this.container).each((_, form) => {
+ const $form = $(form);
const href = $form.attr('action');
if (rememberMe) {
diff --git a/app/assets/javascripts/pages/sessions/new/preserve_url_fragment.js b/app/assets/javascripts/pages/sessions/new/preserve_url_fragment.js
index 70e5e336e78..54ec3c52f62 100644
--- a/app/assets/javascripts/pages/sessions/new/preserve_url_fragment.js
+++ b/app/assets/javascripts/pages/sessions/new/preserve_url_fragment.js
@@ -12,7 +12,7 @@ export default function preserveUrlFragment(fragment = '') {
// Append the fragment to all sign-in/sign-up form actions so it is preserved when the user is
// eventually redirected back to the originally requested URL.
- const forms = document.querySelectorAll('#signin-container .tab-content form');
+ const forms = document.querySelectorAll('.js-non-oauth-login form');
Array.prototype.forEach.call(forms, (form) => {
const actionWithFragment = setUrlFragment(form.getAttribute('action'), `#${normalFragment}`);
form.setAttribute('action', actionWithFragment);
@@ -20,7 +20,7 @@ export default function preserveUrlFragment(fragment = '') {
// Append a redirect_fragment query param to all oauth provider links. The redirect_fragment
// query param will be available in the omniauth callback upon successful authentication
- const oauthForms = document.querySelectorAll('#signin-container .omniauth-container form');
+ const oauthForms = document.querySelectorAll('.js-oauth-login form');
Array.prototype.forEach.call(oauthForms, (oauthForm) => {
const newHref = mergeUrlParams(
{ redirect_fragment: normalFragment },
diff --git a/app/assets/javascripts/pages/shared/mount_badge_settings.js b/app/assets/javascripts/pages/shared/mount_badge_settings.js
index aeb9f2fb8d3..9c92d4f8f1e 100644
--- a/app/assets/javascripts/pages/shared/mount_badge_settings.js
+++ b/app/assets/javascripts/pages/shared/mount_badge_settings.js
@@ -5,6 +5,8 @@ import store from '~/badges/store';
export default (kind) => {
const badgeSettingsElement = document.getElementById('badge-settings');
+ if (!badgeSettingsElement) return null;
+
store.dispatch('loadBadges', {
kind,
apiEndpointUrl: badgeSettingsElement.dataset.apiEndpointUrl,
diff --git a/app/assets/javascripts/pages/shared/mount_runner_instructions.js b/app/assets/javascripts/pages/shared/mount_runner_instructions.js
deleted file mode 100644
index e83c73edfde..00000000000
--- a/app/assets/javascripts/pages/shared/mount_runner_instructions.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import Vue from 'vue';
-import VueApollo from 'vue-apollo';
-import createDefaultClient from '~/lib/graphql';
-import RunnerInstructions from '~/vue_shared/components/runner_instructions/runner_instructions.vue';
-
-Vue.use(VueApollo);
-
-export function initInstallRunner(componentId = 'js-install-runner') {
- const installRunnerEl = document.getElementById(componentId);
-
- if (installRunnerEl) {
- const defaultClient = createDefaultClient();
-
- const apolloProvider = new VueApollo({
- defaultClient,
- });
-
- // eslint-disable-next-line no-new
- new Vue({
- el: installRunnerEl,
- apolloProvider,
- render(createElement) {
- return createElement(RunnerInstructions);
- },
- });
- }
-}
diff --git a/app/assets/javascripts/pages/users/index.js b/app/assets/javascripts/pages/users/index.js
index d2c31314bba..134962721d2 100644
--- a/app/assets/javascripts/pages/users/index.js
+++ b/app/assets/javascripts/pages/users/index.js
@@ -8,7 +8,7 @@ import UserTabs from './user_tabs';
function initUserProfile(action) {
// TODO: Remove both Vue and legacy JS tabs code/feature flag uses with the
// removal of the old navigation.
- // See https://gitlab.com/groups/gitlab-org/-/epics/11875.
+ // See https://gitlab.com/gitlab-org/gitlab/-/issues/435899.
if (gon.features?.profileTabsVue) {
initProfileTabs();
diff --git a/app/assets/javascripts/pages/users/user_tabs.js b/app/assets/javascripts/pages/users/user_tabs.js
index 79eb3902116..f9e22808b0d 100644
--- a/app/assets/javascripts/pages/users/user_tabs.js
+++ b/app/assets/javascripts/pages/users/user_tabs.js
@@ -1,5 +1,5 @@
// TODO: Remove this with the removal of the old navigation.
-// See https://gitlab.com/groups/gitlab-org/-/epics/11875.
+// See https://gitlab.com/gitlab-org/gitlab/-/issues/435899.
import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';
import $ from 'jquery';
diff --git a/app/assets/javascripts/performance_bar/components/request_warning.vue b/app/assets/javascripts/performance_bar/components/request_warning.vue
index 96c11ea9e4e..c4e27d89f49 100644
--- a/app/assets/javascripts/performance_bar/components/request_warning.vue
+++ b/app/assets/javascripts/performance_bar/components/request_warning.vue
@@ -37,6 +37,7 @@ export default {
:id="htmlId"
v-gl-tooltip.viewport="warningMessage"
data-name="warning"
+ data-testid="warning"
class="gl-ml-2"
/>
</span>
diff --git a/app/assets/javascripts/persistent_user_callouts.js b/app/assets/javascripts/persistent_user_callouts.js
index 7420542a065..95ef04ceb30 100644
--- a/app/assets/javascripts/persistent_user_callouts.js
+++ b/app/assets/javascripts/persistent_user_callouts.js
@@ -24,7 +24,7 @@ const PERSISTENT_USER_CALLOUTS = [
'.js-branch-rules-info-callout',
'.js-new-nav-for-everyone-callout',
'.js-namespace-over-storage-users-combined-alert',
- '.js-code-suggestions-ga-non-owner-alert',
+ '.js-code-suggestions-ga-alert',
];
const initCallouts = () => {
diff --git a/app/assets/javascripts/profile/preferences/components/profile_preferences.vue b/app/assets/javascripts/profile/preferences/components/profile_preferences.vue
index 2fc1f99c183..8d20ef1989e 100644
--- a/app/assets/javascripts/profile/preferences/components/profile_preferences.vue
+++ b/app/assets/javascripts/profile/preferences/components/profile_preferences.vue
@@ -1,6 +1,6 @@
<script>
import { GlButton } from '@gitlab/ui';
-import { createAlert, VARIANT_DANGER, VARIANT_INFO } from '~/alert';
+import { createAlert, VARIANT_DANGER } from '~/alert';
import { INTEGRATION_VIEW_CONFIGS, i18n } from '../constants';
import IntegrationView from './integration_view.vue';
@@ -94,9 +94,8 @@ export default {
return;
}
updateClasses(this.bodyClasses, this.getSelectedTheme().css_class, this.selectedLayout);
- const { message = this.$options.i18n.defaultSuccess, variant = VARIANT_INFO } =
- customEvent?.detail?.[0] || {};
- createAlert({ message, variant });
+ const message = customEvent?.detail?.[0]?.message || this.$options.i18n.defaultSuccess || '';
+ this.$toast.show(message);
this.isSubmitEnabled = true;
},
handleError(customEvent) {
diff --git a/app/assets/javascripts/profile/preferences/profile_preferences_bundle.js b/app/assets/javascripts/profile/preferences/profile_preferences_bundle.js
index 8e4d42a42c6..3ba34078cd7 100644
--- a/app/assets/javascripts/profile/preferences/profile_preferences_bundle.js
+++ b/app/assets/javascripts/profile/preferences/profile_preferences_bundle.js
@@ -1,4 +1,5 @@
import Vue from 'vue';
+import { GlToast } from '@gitlab/ui';
import { initListboxInputs } from '~/vue_shared/components/listbox_input/init_listbox_inputs';
import ProfilePreferences from './components/profile_preferences.vue';
@@ -21,6 +22,8 @@ export default () => {
{ formEl },
);
+ Vue.use(GlToast);
+
return new Vue({
el,
name: 'ProfilePreferencesApp',
diff --git a/app/assets/javascripts/projects/commit/components/commit_comments_button.vue b/app/assets/javascripts/projects/commit/components/commit_comments_button.vue
deleted file mode 100644
index 67b5e1e512c..00000000000
--- a/app/assets/javascripts/projects/commit/components/commit_comments_button.vue
+++ /dev/null
@@ -1,42 +0,0 @@
-<script>
-import { GlButton, GlTooltipDirective } from '@gitlab/ui';
-import { n__ } from '~/locale';
-
-export default {
- directives: {
- GlTooltip: GlTooltipDirective,
- },
- components: {
- GlButton,
- },
- props: {
- commentsCount: {
- type: Number,
- required: true,
- },
- },
- computed: {
- tooltipText() {
- return n__('%d comment on this commit', '%d comments on this commit', this.commentsCount);
- },
- showCommentButton() {
- return this.commentsCount > 0;
- },
- },
-};
-</script>
-
-<template>
- <span
- v-if="showCommentButton"
- v-gl-tooltip
- class="gl-display-none gl-sm-display-inline-block"
- tabindex="0"
- :title="tooltipText"
- data-testid="comment-button-wrapper"
- >
- <gl-button icon="comment" class="gl-mr-3" disabled>
- {{ commentsCount }}
- </gl-button>
- </span>
-</template>
diff --git a/app/assets/javascripts/projects/commit/index.js b/app/assets/javascripts/projects/commit/index.js
index d8d30c4332c..4eb51d566c5 100644
--- a/app/assets/javascripts/projects/commit/index.js
+++ b/app/assets/javascripts/projects/commit/index.js
@@ -1,11 +1,9 @@
import initCherryPickCommitModal from './init_cherry_pick_commit_modal';
-import initCommitCommentsButton from './init_commit_comments_button';
import initCommitOptionsDropdown from './init_commit_options_dropdown';
import initRevertCommitModal from './init_revert_commit_modal';
export default () => {
initRevertCommitModal();
initCherryPickCommitModal();
- initCommitCommentsButton();
initCommitOptionsDropdown();
};
diff --git a/app/assets/javascripts/projects/commit/init_commit_comments_button.js b/app/assets/javascripts/projects/commit/init_commit_comments_button.js
deleted file mode 100644
index d70f7cb65f3..00000000000
--- a/app/assets/javascripts/projects/commit/init_commit_comments_button.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import Vue from 'vue';
-import CommitCommentsButton from './components/commit_comments_button.vue';
-
-export default function initCommitCommentsButton() {
- const el = document.querySelector('#js-commit-comments-button');
-
- if (!el) {
- return false;
- }
-
- const { commentsCount } = el.dataset;
-
- return new Vue({
- el,
- render: (createElement) =>
- createElement(CommitCommentsButton, { props: { commentsCount: Number(commentsCount) } }),
- });
-}
diff --git a/app/assets/javascripts/projects/commit_box/info/components/commit_refs.vue b/app/assets/javascripts/projects/commit_box/info/components/commit_refs.vue
index 25af4cc8082..684ae5343b0 100644
--- a/app/assets/javascripts/projects/commit_box/info/components/commit_refs.vue
+++ b/app/assets/javascripts/projects/commit_box/info/components/commit_refs.vue
@@ -107,7 +107,7 @@ export default {
</script>
<template>
- <div class="gl-ml-7">
+ <div>
<refs-list
v-if="hasBranches"
:has-containing-refs="hasContainingBranches"
diff --git a/app/assets/javascripts/projects/commit_box/info/components/refs_list.vue b/app/assets/javascripts/projects/commit_box/info/components/refs_list.vue
index 8ceab9cb60b..7a926c3f4e6 100644
--- a/app/assets/javascripts/projects/commit_box/info/components/refs_list.vue
+++ b/app/assets/javascripts/projects/commit_box/info/components/refs_list.vue
@@ -1,6 +1,6 @@
<script>
import { GlCollapse, GlBadge, GlButton, GlIcon, GlSkeletonLoader } from '@gitlab/ui';
-import { CONTAINING_COMMIT, FETCH_CONTAINING_REFS_EVENT } from '../constants';
+import { CONTAINING_COMMIT, FETCH_CONTAINING_REFS_EVENT, BRANCHES_REF_TYPE } from '../constants';
export default {
name: 'RefsList',
@@ -55,6 +55,9 @@ export default {
isLoadingRefs() {
return this.isLoading && !this.containingRefs.length;
},
+ refIcon() {
+ return this.refType === BRANCHES_REF_TYPE ? 'branch' : 'tag';
+ },
},
methods: {
toggleCollapse() {
@@ -75,7 +78,8 @@ export default {
</script>
<template>
- <div class="gl-pt-4">
+ <div class="gl-p-5 gl-border-b gl-border-gray-50">
+ <gl-icon :name="refIcon" :size="14" class="gl-ml-2 gl-mr-3" />
<span data-testid="title" class="gl-mr-2">{{ namespace }}</span>
<gl-badge
v-for="ref in tippingRefs"
diff --git a/app/assets/javascripts/projects/new/components/new_project_url_select.vue b/app/assets/javascripts/projects/new/components/new_project_url_select.vue
index 84a2ddfce07..c9a502bb6d2 100644
--- a/app/assets/javascripts/projects/new/components/new_project_url_select.vue
+++ b/app/assets/javascripts/projects/new/components/new_project_url_select.vue
@@ -1,20 +1,11 @@
<script>
-import {
- GlButton,
- GlButtonGroup,
- GlDropdown,
- GlDropdownItem,
- GlDropdownText,
- GlDropdownSectionHeader,
- GlSearchBoxByType,
- GlTruncate,
-} from '@gitlab/ui';
+import { GlButton, GlButtonGroup, GlTruncate, GlCollapsibleListbox, GlIcon } from '@gitlab/ui';
import { joinPaths, PATH_SEPARATOR } from '~/lib/utils/url_utility';
import { MINIMUM_SEARCH_LENGTH } from '~/graphql_shared/constants';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import Tracking from '~/tracking';
import { DEBOUNCE_DELAY } from '~/vue_shared/components/filtered_search_bar/constants';
-import { s__ } from '~/locale';
+import { __, s__, n__ } from '~/locale';
import searchNamespacesWhereUserCanCreateProjectsQuery from '../queries/search_namespaces_where_user_can_create_projects.query.graphql';
import eventHub from '../event_hub';
@@ -22,12 +13,9 @@ export default {
components: {
GlButton,
GlButtonGroup,
- GlDropdown,
- GlDropdownItem,
- GlDropdownText,
- GlDropdownSectionHeader,
- GlSearchBoxByType,
GlTruncate,
+ GlCollapsibleListbox,
+ GlIcon,
},
mixins: [Tracking.mixin()],
apollo: {
@@ -91,12 +79,61 @@ export default {
!this.groupPathToFilterBy
);
},
- hasNoMatches() {
- return !this.hasGroupMatches && !this.hasNamespaceMatches;
+ items() {
+ return this.groupsItems.concat(this.namespaceItems);
+ },
+ groupsItems() {
+ if (this.hasGroupMatches) {
+ return [
+ {
+ text: __('Groups'),
+ options: this.filteredGroups.map((group) => ({
+ value: group.id,
+ text: group.fullPath,
+ })),
+ },
+ ];
+ }
+
+ return [];
+ },
+ allItems() {
+ return this.filteredGroups.concat(this.currentUser.namespace);
+ },
+ namespaceItems() {
+ if (this.hasNamespaceMatches && this.userNamespaceUniqueId)
+ return [
+ {
+ text: __('Users'),
+ options: [
+ {
+ value: this.userNamespace.id,
+ text: this.userNamespace.fullPath,
+ },
+ ],
+ },
+ ];
+ return [];
},
dropdownPlaceholderClass() {
return this.selectedNamespace.id ? '' : 'gl-text-gray-500!';
},
+ dropdownText() {
+ if (this.selectedNamespace && this.selectedNamespace?.fullPath) {
+ return this.selectedNamespace.fullPath;
+ }
+ return null;
+ },
+ loading() {
+ return this.$apollo.queries.currentUser.loading;
+ },
+ searchSummary() {
+ return n__(
+ 'ProjectsNew|%d group or namespace found',
+ 'ProjectsNew|%d groups or namespaces found',
+ this.items.length,
+ );
+ },
},
created() {
eventHub.$on('select-template', this.handleSelectTemplate);
@@ -109,15 +146,18 @@ export default {
if (this.shouldSkipQuery) {
this.shouldSkipQuery = false;
}
- this.$refs.search.focusInput();
- },
- handleDropdownItemClick(namespace) {
- eventHub.$emit('update-visibility', {
- name: namespace.name,
- visibility: namespace.visibility,
- showPath: namespace.webUrl,
- editPath: joinPaths(namespace.webUrl, '-', 'edit'),
- });
+ },
+ handleDropdownItemClick(namespaceId) {
+ const namespace = this.allItems.find((item) => item.id === namespaceId);
+
+ if (namespace) {
+ eventHub.$emit('update-visibility', {
+ name: namespace.name,
+ visibility: namespace.visibility,
+ showPath: namespace.webUrl,
+ editPath: joinPaths(namespace.webUrl, '-', 'edit'),
+ });
+ }
this.setNamespace(namespace);
},
handleSelectTemplate(id, fullPath) {
@@ -137,6 +177,12 @@ export default {
this.track('activate_form_input', { label: this.trackLabel, property: 'project_path' });
}
},
+ onSearch(query) {
+ this.search = query;
+ },
+ },
+ i18n: {
+ emptySearchResult: __('No matches found'),
},
emptyNameSpace: {
id: undefined,
@@ -154,48 +200,38 @@ export default {
>{{ rootUrl }}</gl-button
>
- <gl-dropdown
- class="js-group-namespace-dropdown gl-flex-grow-1"
- :toggle-class="`gl-rounded-top-right-base! gl-rounded-bottom-right-base! gl-w-20 ${dropdownPlaceholderClass}`"
+ <gl-collapsible-listbox
+ searchable
+ fluid-width
+ :searching="loading"
+ :items="items"
+ class="js-group-namespace-dropdown group-namespace-dropdown gl-flex-grow-1"
+ :toggle-text="dropdownText"
+ :no-results-text="$options.i18n.emptySearchResult"
data-testid="select-namespace-dropdown"
@show="trackDropdownShow"
@shown="handleDropdownShown"
+ @select="handleDropdownItemClick"
+ @search="onSearch"
>
- <template #button-text>
- <gl-truncate
- v-if="selectedNamespace.fullPath"
- :text="selectedNamespace.fullPath"
- position="start"
- with-tooltip
- />
+ <template #toggle>
+ <gl-button
+ class="gl-flex-basis-full! gl-rounded-left-none! gl-w-20"
+ :class="dropdownPlaceholderClass"
+ >
+ <gl-truncate
+ :text="dropdownText"
+ position="start"
+ class="gl-overflow-hidden gl-mr-auto"
+ with-tooltip
+ />
+ <gl-icon class="gl-button-icon dropdown-chevron gl-mr-0! gl-ml-2!" name="chevron-down" />
+ </gl-button>
</template>
- <gl-search-box-by-type
- ref="search"
- v-model.trim="search"
- :is-loading="$apollo.queries.currentUser.loading"
- data-testid="select-namespace-dropdown-search-field"
- />
- <template v-if="!$apollo.queries.currentUser.loading">
- <template v-if="hasGroupMatches">
- <gl-dropdown-section-header>{{ __('Groups') }}</gl-dropdown-section-header>
- <gl-dropdown-item
- v-for="group of filteredGroups"
- :key="group.id"
- @click="handleDropdownItemClick(group)"
- >
- {{ group.fullPath }}
- </gl-dropdown-item>
- </template>
- <template v-if="hasNamespaceMatches && userNamespaceUniqueId">
- <gl-dropdown-section-header>{{ __('Users') }}</gl-dropdown-section-header>
- <gl-dropdown-item @click="handleDropdownItemClick(userNamespace)">
- {{ userNamespace.fullPath }}
- </gl-dropdown-item>
- </template>
- <gl-dropdown-text v-if="hasNoMatches">{{ __('No matches found') }}</gl-dropdown-text>
+ <template #search-summary-sr-only>
+ {{ searchSummary }}
</template>
- </gl-dropdown>
-
+ </gl-collapsible-listbox>
<input type="hidden" name="project[selected_namespace_id]" :value="selectedNamespace.id" />
<input
diff --git a/app/assets/javascripts/projects/project_new.js b/app/assets/javascripts/projects/project_new.js
index 2b5e2dcb301..9e71e662d70 100644
--- a/app/assets/javascripts/projects/project_new.js
+++ b/app/assets/javascripts/projects/project_new.js
@@ -70,7 +70,8 @@ const onProjectPathChange = ($projectNameInput, $projectPathInput, hasExistingPr
};
const selectedNamespaceId = () => document.querySelector('[name="project[selected_namespace_id]"]');
-const dropdownButton = () => document.querySelector('.js-group-namespace-dropdown > button');
+const dropdownButton = () =>
+ document.querySelector('.js-group-namespace-dropdown .gl-new-dropdown-custom-toggle > button');
const namespaceButton = () => document.querySelector('.js-group-namespace-button');
const namespaceError = () => document.querySelector('.js-group-namespace-error');
diff --git a/app/assets/javascripts/projects/settings/api/access_dropdown_api.js b/app/assets/javascripts/projects/settings/api/access_dropdown_api.js
index df99aac6b9e..89ae2a82c6d 100644
--- a/app/assets/javascripts/projects/settings/api/access_dropdown_api.js
+++ b/app/assets/javascripts/projects/settings/api/access_dropdown_api.js
@@ -25,10 +25,11 @@ export const getUsers = (query, states) => {
});
};
-export const getGroups = () => {
+export const getGroups = ({ withProjectAccess = false }) => {
return axios.get(buildUrl(gon.relative_url_root || '', GROUPS_PATH), {
params: {
project_id: gon.current_project_id,
+ with_project_access: withProjectAccess,
},
});
};
diff --git a/app/assets/javascripts/projects/settings/components/access_dropdown.vue b/app/assets/javascripts/projects/settings/components/access_dropdown.vue
index 2dd7633e2c8..c863973cd2e 100644
--- a/app/assets/javascripts/projects/settings/components/access_dropdown.vue
+++ b/app/assets/javascripts/projects/settings/components/access_dropdown.vue
@@ -94,6 +94,11 @@ export default {
required: false,
default: true,
},
+ groupsWithProjectAccess: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
},
data() {
return {
@@ -229,7 +234,9 @@ export default {
Promise.all([
getDeployKeys(this.query),
getUsers(this.query),
- this.groups.length ? Promise.resolve({ data: this.groups }) : getGroups(),
+ this.groups.length
+ ? Promise.resolve({ data: this.groups })
+ : getGroups({ withProjectAccess: this.groupsWithProjectAccess }),
])
.then(([deployKeysResponse, usersResponse, groupsResponse]) => {
this.consolidateData(deployKeysResponse.data, usersResponse.data, groupsResponse.data);
diff --git a/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue b/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue
index 7d9ad83a1c6..cb6bea76762 100644
--- a/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue
+++ b/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue
@@ -1,9 +1,20 @@
<script>
-import { GlButton, GlModal, GlModalDirective, GlCard, GlIcon } from '@gitlab/ui';
+import {
+ GlButton,
+ GlModal,
+ GlModalDirective,
+ GlCard,
+ GlIcon,
+ GlDisclosureDropdown,
+ GlCollapsibleListbox,
+ GlFormGroup,
+} from '@gitlab/ui';
import { createAlert } from '~/alert';
import branchRulesQuery from 'ee_else_ce/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql';
+import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { expandSection } from '~/settings_panels';
import { scrollToElement } from '~/lib/utils/common_utils';
+import createBranchRuleMutation from './graphql/mutations/create_branch_rule.mutation.graphql';
import BranchRule from './components/branch_rule.vue';
import { I18N, PROTECTED_BRANCHES_ANCHOR, BRANCH_PROTECTION_MODAL_ID } from './constants';
@@ -14,12 +25,16 @@ export default {
BranchRule,
GlButton,
GlModal,
+ GlFormGroup,
GlCard,
GlIcon,
+ GlCollapsibleListbox,
+ GlDisclosureDropdown,
},
directives: {
GlModal: GlModalDirective,
},
+ mixins: [glFeatureFlagsMixin()],
apollo: {
branchRules: {
query: branchRulesQuery,
@@ -38,18 +53,87 @@ export default {
},
inject: {
projectPath: { default: '' },
+ branchRulesPath: { default: '' },
},
data() {
return {
branchRules: [],
+ branchRuleName: '',
+ searchQuery: '',
};
},
+ computed: {
+ addRuleItems() {
+ return [{ text: this.$options.i18n.branchName, action: () => this.openCreateRuleModal() }];
+ },
+ createRuleItems() {
+ return this.isWildcardAvailable ? [this.wildcardItem] : this.filteredOpenBranches;
+ },
+ filteredOpenBranches() {
+ const openBranches = window.gon.open_branches.map((item) => ({
+ text: item.text,
+ value: item.text,
+ }));
+ return openBranches.filter((item) => item.text.includes(this.searchQuery));
+ },
+ wildcardItem() {
+ return { text: this.$options.i18n.createWildcard, value: this.searchQuery };
+ },
+ isWildcardAvailable() {
+ return this.searchQuery.includes('*');
+ },
+ createRuleText() {
+ return this.branchRuleName || this.$options.i18n.branchNamePlaceholder;
+ },
+ branchRuleEditPath() {
+ return `${this.branchRulesPath}?branch=${encodeURIComponent(this.branchRuleName)}`;
+ },
+ primaryProps() {
+ return {
+ text: this.$options.i18n.createProtectedBranch,
+ attributes: {
+ variant: 'confirm',
+ disabled: !this.branchRuleName,
+ },
+ };
+ },
+ cancelProps() {
+ return {
+ text: this.$options.i18n.createBranchRule,
+ };
+ },
+ },
methods: {
showProtectedBranches() {
// Protected branches section is on the same page as the branch rules section.
expandSection(this.$options.protectedBranchesAnchor);
scrollToElement(this.$options.protectedBranchesAnchor);
},
+ openCreateRuleModal() {
+ this.$refs[this.$options.modalId].show();
+ },
+ handleBranchRuleSearch(query) {
+ this.searchQuery = query;
+ },
+ addBranchRule() {
+ this.$apollo
+ .mutate({
+ mutation: createBranchRuleMutation,
+ variables: {
+ projectPath: this.projectPath,
+ name: this.branchRuleName,
+ },
+ })
+ .then(() => {
+ window.location.assign(this.branchRuleEditPath);
+ })
+ .catch(() => {
+ createAlert({ message: this.$options.i18n.createBranchRuleError });
+ });
+ },
+ selectBranchRuleName(branchName) {
+ this.branchRuleName = branchName;
+ },
},
modalId: BRANCH_PROTECTION_MODAL_ID,
protectedBranchesAnchor: PROTECTED_BRANCHES_ANCHOR,
@@ -72,7 +156,15 @@ export default {
{{ branchRules.length }}
</div>
</div>
+ <gl-disclosure-dropdown
+ v-if="glFeatures.addBranchRule"
+ :toggle-text="$options.i18n.addBranchRule"
+ :items="addRuleItems"
+ size="small"
+ no-caret
+ />
<gl-button
+ v-else
v-gl-modal="$options.modalId"
size="small"
class="gl-ml-3"
@@ -99,6 +191,37 @@ export default {
</div>
</ul>
<gl-modal
+ v-if="glFeatures.addBranchRule"
+ :ref="$options.modalId"
+ :modal-id="$options.modalId"
+ :title="$options.i18n.createBranchRule"
+ :action-primary="primaryProps"
+ :action-cancel="cancelProps"
+ @primary="addBranchRule"
+ @change="searchQuery = ''"
+ >
+ <gl-form-group
+ :label="$options.i18n.branchName"
+ :description="$options.i18n.branchNameDescription"
+ >
+ <gl-collapsible-listbox
+ v-model="branchRuleName"
+ searchable
+ :items="createRuleItems"
+ :toggle-text="createRuleText"
+ block
+ @search="handleBranchRuleSearch"
+ @select="selectBranchRuleName"
+ >
+ <template v-if="isWildcardAvailable" #list-item="{ item }">
+ {{ item.text }}
+ <code>{{ searchQuery }}</code>
+ </template>
+ </gl-collapsible-listbox>
+ </gl-form-group>
+ </gl-modal>
+ <gl-modal
+ v-else
:ref="$options.modalId"
:modal-id="$options.modalId"
:title="$options.i18n.addBranchRule"
diff --git a/app/assets/javascripts/projects/settings/repository/branch_rules/constants.js b/app/assets/javascripts/projects/settings/repository/branch_rules/constants.js
index 4413d8eab4e..d16894e7d6f 100644
--- a/app/assets/javascripts/projects/settings/repository/branch_rules/constants.js
+++ b/app/assets/javascripts/projects/settings/repository/branch_rules/constants.js
@@ -15,6 +15,16 @@ export const I18N = {
'BranchRules|After a protected branch is created, it will show up in the list as a branch rule.',
),
createProtectedBranch: s__('BranchRules|Create protected branch'),
+ createBranchRule: s__('BranchRules|Create branch rule'),
+ branchName: s__('BranchRules|Branch name or pattern'),
+ branchNamePlaceholder: s__('BranchRules|Select Branch or create wildcard'),
+ branchNameDescription: s__(
+ 'BranchRules|Wildcards such as *-stable or production/* are supported',
+ ),
+ createBranchRuleError: s__('BranchRules|Something went wrong while creating branch rule.'),
+ createBranchRuleSuccess: s__('BranchRules|Branch rule created.'),
+ createWildcard: s__('BranchRules|Create wildcard'),
+ cancel: s__('BranchRules|Cancel'),
};
export const PROTECTED_BRANCHES_ANCHOR = '#js-protected-branches-settings';
diff --git a/app/assets/javascripts/projects/settings/repository/branch_rules/graphql/mutations/create_branch_rule.mutation.graphql b/app/assets/javascripts/projects/settings/repository/branch_rules/graphql/mutations/create_branch_rule.mutation.graphql
new file mode 100644
index 00000000000..e5fb79e0176
--- /dev/null
+++ b/app/assets/javascripts/projects/settings/repository/branch_rules/graphql/mutations/create_branch_rule.mutation.graphql
@@ -0,0 +1,8 @@
+mutation createBranchRule($projectPath: ID!, $name: String!) {
+ branchRuleCreate(input: { projectPath: $projectPath, name: $name }) {
+ errors
+ branchRule {
+ name
+ }
+ }
+}
diff --git a/app/assets/javascripts/protected_branches/protected_branch_create.js b/app/assets/javascripts/protected_branches/protected_branch_create.js
index 49c55efca7b..612f801300e 100644
--- a/app/assets/javascripts/protected_branches/protected_branch_create.js
+++ b/app/assets/javascripts/protected_branches/protected_branch_create.js
@@ -83,6 +83,7 @@ export default class ProtectedBranchCreate {
block: true,
accessLevel,
accessLevelsData,
+ groupsWithProjectAccess: true,
testId,
});
diff --git a/app/assets/javascripts/protected_branches/protected_branch_edit.js b/app/assets/javascripts/protected_branches/protected_branch_edit.js
index 66da3de516a..67ae33e1fc8 100644
--- a/app/assets/javascripts/protected_branches/protected_branch_edit.js
+++ b/app/assets/javascripts/protected_branches/protected_branch_edit.js
@@ -97,6 +97,7 @@ export default class ProtectedBranchEdit {
block: true,
accessLevel,
accessLevelsData,
+ groupsWithProjectAccess: true,
testId,
});
diff --git a/app/assets/javascripts/protected_tags/protected_tag_create.js b/app/assets/javascripts/protected_tags/protected_tag_create.js
index b3754cecce4..e1cd069fd92 100644
--- a/app/assets/javascripts/protected_tags/protected_tag_create.js
+++ b/app/assets/javascripts/protected_tags/protected_tag_create.js
@@ -40,6 +40,7 @@ export default class ProtectedTagCreate {
hasLicense: this.hasLicense,
accessLevel: ACCESS_LEVELS.CREATE,
accessLevelsData: gon.create_access_levels,
+ groupsWithProjectAccess: true,
searchEnabled: dropdownEl.dataset.filter !== undefined,
testId: 'allowed-to-create-dropdown',
});
diff --git a/app/assets/javascripts/protected_tags/protected_tag_edit.vue b/app/assets/javascripts/protected_tags/protected_tag_edit.vue
index 7fe1dc9c01a..d5ec88c171c 100644
--- a/app/assets/javascripts/protected_tags/protected_tag_edit.vue
+++ b/app/assets/javascripts/protected_tags/protected_tag_edit.vue
@@ -107,6 +107,7 @@ export default {
:access-levels-data="accessLevelsData"
:preselected-items="selected"
:search-enabled="searchEnabled"
+ groups-with-project-access
:block="true"
@hidden="updatePermissions"
/>
diff --git a/app/assets/javascripts/releases/components/app_edit_new.vue b/app/assets/javascripts/releases/components/app_edit_new.vue
index 228007dd7d6..6fce9b4a129 100644
--- a/app/assets/javascripts/releases/components/app_edit_new.vue
+++ b/app/assets/javascripts/releases/components/app_edit_new.vue
@@ -55,6 +55,7 @@ export default {
'groupId',
'groupMilestonesAvailable',
'tagNotes',
+ 'isFetchingTagNotes',
]),
...mapGetters('editNew', ['isValid', 'formattedReleaseNotes']),
showForm() {
@@ -113,7 +114,7 @@ export default {
return this.isExistingRelease ? __('Save changes') : __('Create release');
},
isFormSubmissionDisabled() {
- return this.isUpdatingRelease || !this.isValid;
+ return this.isUpdatingRelease || !this.isValid || this.isFetchingTagNotes;
},
milestoneComboboxExtraLinks() {
return [
diff --git a/app/assets/javascripts/releases/components/app_index.vue b/app/assets/javascripts/releases/components/app_index.vue
index eebaeeea286..31c7ed8482d 100644
--- a/app/assets/javascripts/releases/components/app_index.vue
+++ b/app/assets/javascripts/releases/components/app_index.vue
@@ -1,13 +1,15 @@
<script>
-import { GlButton } from '@gitlab/ui';
+import { GlAlert, GlButton, GlLink, GlSprintf } from '@gitlab/ui';
import { createAlert } from '~/alert';
import { historyPushState } from '~/lib/utils/common_utils';
import { scrollUp } from '~/lib/utils/scroll_utils';
import { setUrlParams, getParameterByName } from '~/lib/utils/url_utility';
-import { __ } from '~/locale';
+import { __, s__ } from '~/locale';
import { PAGE_SIZE, DEFAULT_SORT } from '~/releases/constants';
import { convertAllReleasesGraphQLResponse } from '~/releases/util';
import { popDeleteReleaseNotification } from '~/releases/release_notification_service';
+import { helpPagePath } from '~/helpers/help_page_helper';
+import getCiCatalogSettingsQuery from '~/ci/catalog/graphql/queries/get_ci_catalog_settings.query.graphql';
import allReleasesQuery from '../graphql/queries/all_releases.query.graphql';
import ReleaseBlock from './release_block.vue';
import ReleaseSkeletonLoader from './release_skeleton_loader.vue';
@@ -18,7 +20,10 @@ import ReleasesSort from './releases_sort.vue';
export default {
name: 'ReleasesIndexApp',
components: {
+ GlAlert,
GlButton,
+ GlLink,
+ GlSprintf,
ReleaseBlock,
ReleaseSkeletonLoader,
ReleasesEmptyState,
@@ -79,6 +84,20 @@ export default {
});
},
},
+ isCatalogResource: {
+ query: getCiCatalogSettingsQuery,
+ variables() {
+ return {
+ fullPath: this.projectPath,
+ };
+ },
+ update({ project }) {
+ return project?.isCatalogResource || false;
+ },
+ error() {
+ createAlert({ message: this.$options.i18n.catalogResourceQueryError });
+ },
+ },
},
data() {
return {
@@ -227,13 +246,44 @@ export default {
},
},
i18n: {
- newRelease: __('New release'),
+ alertButtonLink: helpPagePath('ci/components/index', { anchor: 'release-a-component' }),
+ alertButtonText: __('View the publishing guide'),
+ alertInfoMessage: s__(
+ 'CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog.',
+ ),
+ alertInfoMessageLink: helpPagePath('ci/yaml/index.html', { anchor: 'release' }),
+ alertTitle: __('Publish the CI/CD components in this project to the CI/CD Catalog'),
+ catalogResourceQueryError: s__(
+ 'CiCatalog|There was a problem fetching the CI/CD Catalog setting.',
+ ),
errorMessage: __('An error occurred while fetching the releases. Please try again.'),
+ newRelease: __('New release'),
},
};
</script>
<template>
<div class="gl-display-flex gl-flex-direction-column gl-mt-3">
+ <gl-alert
+ v-if="isCatalogResource"
+ :title="$options.i18n.alertTitle"
+ :primary-button-text="$options.i18n.alertButtonText"
+ :primary-button-link="$options.i18n.alertButtonLink"
+ :dismissible="false"
+ variant="warning"
+ class="mb-3 mt-2"
+ >
+ <gl-sprintf :message="$options.i18n.alertInfoMessage">
+ <template #link="{ content }">
+ <gl-link
+ :href="$options.i18n.alertInfoMessageLink"
+ target="_blank"
+ class="gl-text-decoration-none!"
+ >
+ {{ content }}
+ </gl-link>
+ </template>
+ </gl-sprintf>
+ </gl-alert>
<releases-empty-state v-if="shouldRenderEmptyState" />
<div v-else class="gl-align-self-end gl-mb-3">
<releases-sort :value="sort" class="gl-mr-2" @input="onSortChanged" />
diff --git a/app/assets/javascripts/releases/components/tag_field_new.vue b/app/assets/javascripts/releases/components/tag_field_new.vue
index 04f3d73235b..370e920be02 100644
--- a/app/assets/javascripts/releases/components/tag_field_new.vue
+++ b/app/assets/javascripts/releases/components/tag_field_new.vue
@@ -43,6 +43,9 @@ export default {
return this.newTagName ? this.$options.i18n.createTag : this.$options.i18n.typeNew;
},
},
+ mounted() {
+ this.newTagName = this.release?.tagName || '';
+ },
methods: {
...mapActions('editNew', [
'setSearching',
diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/actions.js b/app/assets/javascripts/releases/stores/modules/edit_new/actions.js
index 8bdfb057adc..a0d782a02a1 100644
--- a/app/assets/javascripts/releases/stores/modules/edit_new/actions.js
+++ b/app/assets/javascripts/releases/stores/modules/edit_new/actions.js
@@ -3,6 +3,7 @@ import { getTag } from '~/rest_api';
import { createAlert } from '~/alert';
import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated
import AccessorUtilities from '~/lib/utils/accessor';
+import { HTTP_STATUS_NOT_FOUND } from '~/lib/utils/http_status';
import { s__ } from '~/locale';
import createReleaseMutation from '~/releases/graphql/mutations/create_release.mutation.graphql';
import deleteReleaseMutation from '~/releases/graphql/mutations/delete_release.mutation.graphql';
@@ -245,7 +246,7 @@ export const updateRelease = async ({ commit, dispatch, state, getters }) => {
}
};
-export const fetchTagNotes = ({ commit, state }, tagName) => {
+export const fetchTagNotes = ({ commit, state, dispatch }, tagName) => {
commit(types.REQUEST_TAG_NOTES);
return getTag(state.projectId, tagName)
@@ -253,11 +254,15 @@ export const fetchTagNotes = ({ commit, state }, tagName) => {
commit(types.RECEIVE_TAG_NOTES_SUCCESS, data);
})
.catch((error) => {
+ if (error?.response?.status === HTTP_STATUS_NOT_FOUND) {
+ commit(types.RECEIVE_TAG_NOTES_SUCCESS, {});
+ return Promise.all([dispatch('setNewTag'), dispatch('setCreating')]);
+ }
createAlert({
message: s__('Release|Unable to fetch the tag notes.'),
});
- commit(types.RECEIVE_TAG_NOTES_ERROR, error);
+ return commit(types.RECEIVE_TAG_NOTES_ERROR, error);
});
};
@@ -326,7 +331,7 @@ export const clearDraftRelease = ({ getters }) => {
}
};
-export const loadDraftRelease = ({ commit, getters, state }) => {
+export const loadDraftRelease = ({ commit, getters, state, dispatch }) => {
try {
const release = window.localStorage.getItem(getters.localStorageKey);
const createFrom = window.localStorage.getItem(getters.localStorageCreateFromKey);
@@ -340,6 +345,10 @@ export const loadDraftRelease = ({ commit, getters, state }) => {
: state.originalReleasedAt,
});
commit(types.UPDATE_CREATE_FROM, JSON.parse(createFrom));
+
+ if (parsedRelease.tagName) {
+ dispatch('fetchTagNotes', parsedRelease.tagName);
+ }
} else {
commit(types.INITIALIZE_EMPTY_RELEASE);
}
diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/getters.js b/app/assets/javascripts/releases/stores/modules/edit_new/getters.js
index 0b37c2b81d1..d1cde8b9029 100644
--- a/app/assets/javascripts/releases/stores/modules/edit_new/getters.js
+++ b/app/assets/javascripts/releases/stores/modules/edit_new/getters.js
@@ -170,13 +170,11 @@ export const releaseDeleteMutationVariables = (state) => ({
},
});
-export const formattedReleaseNotes = ({
- includeTagNotes,
- release: { description, tagMessage },
- tagNotes,
- showCreateFrom,
-}) => {
- const notes = showCreateFrom ? tagMessage : tagNotes;
+export const formattedReleaseNotes = (
+ { includeTagNotes, release: { description, tagMessage }, tagNotes },
+ { isNewTag },
+) => {
+ const notes = isNewTag ? tagMessage : tagNotes;
return includeTagNotes && notes
? `${description}\n\n### ${s__('Releases|Tag message')}\n\n${notes}\n`
: description;
diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/state.js b/app/assets/javascripts/releases/stores/modules/edit_new/state.js
index 7bd3968dd93..a02949568b2 100644
--- a/app/assets/javascripts/releases/stores/modules/edit_new/state.js
+++ b/app/assets/javascripts/releases/stores/modules/edit_new/state.js
@@ -61,6 +61,7 @@ export default ({
updateError: null,
tagNotes: '',
+ isFetchingTagNotes: false,
includeTagNotes: false,
existingRelease: null,
originalReleasedAt: new Date(),
diff --git a/app/assets/javascripts/repository/components/upload_blob_modal.vue b/app/assets/javascripts/repository/components/upload_blob_modal.vue
index 4ca625bc0de..c9ac5a19697 100644
--- a/app/assets/javascripts/repository/components/upload_blob_modal.vue
+++ b/app/assets/javascripts/repository/components/upload_blob_modal.vue
@@ -11,7 +11,7 @@ import {
} from '@gitlab/ui';
import { createAlert } from '~/alert';
import axios from '~/lib/utils/axios_utils';
-import { ContentTypeMultipartFormData } from '~/lib/utils/headers';
+import { contentTypeMultipartFormData } from '~/lib/utils/headers';
import { numberToHumanSize } from '~/lib/utils/number_utils';
import { visitUrl, joinPaths } from '~/lib/utils/url_utility';
import { __ } from '~/locale';
@@ -159,7 +159,7 @@ export default {
url,
data: this.formData(),
headers: {
- ...ContentTypeMultipartFormData,
+ ...contentTypeMultipartFormData,
},
})
.then((response) => {
diff --git a/app/assets/javascripts/search/sidebar/components/scope_sidebar_navigation.vue b/app/assets/javascripts/search/sidebar/components/scope_sidebar_navigation.vue
index 874803a720d..eb56113a4dd 100644
--- a/app/assets/javascripts/search/sidebar/components/scope_sidebar_navigation.vue
+++ b/app/assets/javascripts/search/sidebar/components/scope_sidebar_navigation.vue
@@ -1,6 +1,6 @@
<script>
// eslint-disable-next-line no-restricted-imports
-import { mapActions, mapState, mapGetters } from 'vuex';
+import { mapActions, mapGetters } from 'vuex';
import { s__ } from '~/locale';
import eventHub from '~/super_sidebar/event_hub';
import NavItem from '~/super_sidebar/components/nav_item.vue';
@@ -15,15 +15,11 @@ export default {
NavItem,
},
computed: {
- ...mapState(['navigation', 'urlQuery']),
...mapGetters(['navigationItems']),
},
created() {
eventHub.$emit('toggle-menu-header', false);
-
- if (this.urlQuery?.search) {
- this.fetchSidebarCount();
- }
+ this.fetchSidebarCount();
},
methods: {
...mapActions(['fetchSidebarCount']),
diff --git a/app/assets/javascripts/search/sidebar/components/searchable_dropdown.vue b/app/assets/javascripts/search/sidebar/components/searchable_dropdown.vue
index c1f0bfc59f3..32327a39de0 100644
--- a/app/assets/javascripts/search/sidebar/components/searchable_dropdown.vue
+++ b/app/assets/javascripts/search/sidebar/components/searchable_dropdown.vue
@@ -185,6 +185,7 @@ export default {
:searching="loading"
:reset-button-label="$options.i18n.reset"
:toggle-aria-labelled-by="labelId"
+ fluid-width
searchable
block
@shown="openDropdown"
diff --git a/app/assets/javascripts/search/store/actions.js b/app/assets/javascripts/search/store/actions.js
index 211bbaf82cd..d5e275b8a19 100644
--- a/app/assets/javascripts/search/store/actions.js
+++ b/app/assets/javascripts/search/store/actions.js
@@ -1,7 +1,13 @@
import Api from '~/api';
import { createAlert } from '~/alert';
import axios from '~/lib/utils/axios_utils';
-import { visitUrl, setUrlParams } from '~/lib/utils/url_utility';
+import {
+ visitUrl,
+ setUrlParams,
+ getBaseURL,
+ queryToObject,
+ objectToQuery,
+} from '~/lib/utils/url_utility';
import { logError } from '~/lib/logger';
import { __ } from '~/locale';
import { labelFilterData } from '~/search/sidebar/components/label_filter/data';
@@ -135,19 +141,38 @@ export const setLabelFilterSearch = ({ commit }, { value }) => {
commit(types.SET_LABEL_SEARCH_STRING, value);
};
+const injectWildCardSearch = (state, link) => {
+ const urlObject = new URL(`${getBaseURL()}${link}`);
+ if (!state.urlQuery.search) {
+ const queryObject = queryToObject(urlObject.search);
+ urlObject.search = objectToQuery({ ...queryObject, search: '*' });
+ }
+
+ return urlObject.href;
+};
+
export const fetchSidebarCount = ({ commit, state }) => {
- const promises = Object.values(state.navigation).map((navItem) => {
- // active nav item has count already so we skip it
- if (!navItem.active && navItem.count_link) {
- return axios
- .get(navItem.count_link)
- .then(({ data: { count } }) => {
- commit(types.RECEIVE_NAVIGATION_COUNT, { key: navItem.scope, count });
- })
- .catch((e) => logError(e));
- }
- return Promise.resolve();
- });
+ const items = Object.values(state.navigation)
+ .filter((navigationItem) => !navigationItem.active && navigationItem.count_link)
+ .map((navItem) => {
+ const navigationItem = { ...navItem };
+
+ if (navigationItem.count_link) {
+ navigationItem.count_link = injectWildCardSearch(state, navigationItem.count_link);
+ }
+
+ return navigationItem;
+ });
+
+ const promises = items.map((navigationItem) =>
+ axios
+ .get(navigationItem.count_link)
+ .then(({ data: { count } }) => {
+ commit(types.RECEIVE_NAVIGATION_COUNT, { key: navigationItem.scope, count });
+ })
+ .catch((e) => logError(e)),
+ );
+
return Promise.all(promises);
};
diff --git a/app/assets/javascripts/security_configuration/constants.js b/app/assets/javascripts/security_configuration/constants.js
index 94bcf81a3eb..f8ab8b4685a 100644
--- a/app/assets/javascripts/security_configuration/constants.js
+++ b/app/assets/javascripts/security_configuration/constants.js
@@ -7,15 +7,7 @@ import { helpPagePath } from '~/helpers/help_page_helper';
import {
REPORT_TYPE_SAST,
REPORT_TYPE_SAST_IAC,
- REPORT_TYPE_DAST,
- REPORT_TYPE_DAST_PROFILES,
- REPORT_TYPE_BREACH_AND_ATTACK_SIMULATION,
REPORT_TYPE_SECRET_DETECTION,
- REPORT_TYPE_DEPENDENCY_SCANNING,
- REPORT_TYPE_CONTAINER_SCANNING,
- REPORT_TYPE_COVERAGE_FUZZING,
- REPORT_TYPE_CORPUS_MANAGEMENT,
- REPORT_TYPE_API_FUZZING,
} from '~/vue_shared/security_reports/constants';
import configureSastMutation from './graphql/configure_sast.mutation.graphql';
@@ -23,132 +15,35 @@ import configureSastIacMutation from './graphql/configure_iac.mutation.graphql';
import configureSecretDetectionMutation from './graphql/configure_secret_detection.mutation.graphql';
/**
- * Translations & helpPagePaths for Security Configuration Page
+ * Translations for Security Configuration Page
* Make sure to add new scanner translations to the SCANNER_NAMES_MAP below.
*/
-
export const SAST_NAME = __('Static Application Security Testing (SAST)');
export const SAST_SHORT_NAME = s__('ciReport|SAST');
-export const SAST_DESCRIPTION = __('Analyze your source code for known vulnerabilities.');
-export const SAST_HELP_PATH = helpPagePath('user/application_security/sast/index');
-export const SAST_CONFIG_HELP_PATH = helpPagePath('user/application_security/sast/index', {
- anchor: 'configuration',
-});
export const SAST_IAC_NAME = __('Infrastructure as Code (IaC) Scanning');
export const SAST_IAC_SHORT_NAME = s__('ciReport|SAST IaC');
-export const SAST_IAC_DESCRIPTION = __(
- 'Analyze your infrastructure as code configuration files for known vulnerabilities.',
-);
-export const SAST_IAC_HELP_PATH = helpPagePath('user/application_security/iac_scanning/index');
-export const SAST_IAC_CONFIG_HELP_PATH = helpPagePath(
- 'user/application_security/iac_scanning/index',
- {
- anchor: 'configuration',
- },
-);
export const DAST_NAME = __('Dynamic Application Security Testing (DAST)');
export const DAST_SHORT_NAME = s__('ciReport|DAST');
-export const DAST_DESCRIPTION = s__(
- 'ciReport|Analyze a deployed version of your web application for known vulnerabilities by examining it from the outside in. DAST works by simulating external attacks on your application while it is running.',
-);
-export const DAST_HELP_PATH = helpPagePath('user/application_security/dast/index');
-export const DAST_CONFIG_HELP_PATH = helpPagePath('user/application_security/dast/index', {
- anchor: 'enable-automatic-dast-run',
-});
-export const DAST_BADGE_TEXT = __('Available on demand');
-export const DAST_BADGE_TOOLTIP = __(
- 'On-demand scans run outside of the DevOps cycle and find vulnerabilities in your projects',
-);
export const DAST_PROFILES_NAME = __('DAST profiles');
-export const DAST_PROFILES_DESCRIPTION = s__(
- 'SecurityConfiguration|Manage profiles for use by DAST scans.',
-);
-export const DAST_PROFILES_CONFIG_TEXT = s__('SecurityConfiguration|Manage profiles');
+export const DAST_HELP_PATH = helpPagePath('user/application_security/dast/index');
-export const BAS_BADGE_TEXT = s__('SecurityConfiguration|Incubating feature');
-export const BAS_BADGE_TOOLTIP = s__(
- 'SecurityConfiguration|Breach and Attack Simulation is an incubating feature extending existing security testing by simulating adversary activity.',
-);
-export const BAS_DESCRIPTION = s__(
- 'SecurityConfiguration|Simulate breach and attack scenarios against your running application by attempting to detect and exploit known vulnerabilities.',
-);
-export const BAS_HELP_PATH = helpPagePath(
- 'user/application_security/breach_and_attack_simulation/index',
-);
export const BAS_NAME = s__('SecurityConfiguration|Breach and Attack Simulation (BAS)');
export const BAS_SHORT_NAME = s__('SecurityConfiguration|BAS');
-export const BAS_DAST_FEATURE_FLAG_DESCRIPTION = s__(
- 'SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans.',
-);
-export const BAS_DAST_FEATURE_FLAG_HELP_PATH = helpPagePath(
- 'user/application_security/breach_and_attack_simulation/index',
- { anchor: 'extend-dynamic-application-security-testing-dast' },
-);
-export const BAS_DAST_FEATURE_FLAG_NAME = s__(
- 'SecurityConfiguration|Out-of-Band Application Security Testing (OAST)',
-);
-
export const SECRET_DETECTION_NAME = __('Secret Detection');
-export const SECRET_DETECTION_DESCRIPTION = __(
- 'Analyze your source code and git history for secrets.',
-);
-export const SECRET_DETECTION_HELP_PATH = helpPagePath(
- 'user/application_security/secret_detection/index',
-);
-export const SECRET_DETECTION_CONFIG_HELP_PATH = helpPagePath(
- 'user/application_security/secret_detection/index',
- { anchor: 'configuration' },
-);
export const DEPENDENCY_SCANNING_NAME = __('Dependency Scanning');
-export const DEPENDENCY_SCANNING_DESCRIPTION = __(
- 'Analyze your dependencies for known vulnerabilities.',
-);
-export const DEPENDENCY_SCANNING_HELP_PATH = helpPagePath(
- 'user/application_security/dependency_scanning/index',
-);
-export const DEPENDENCY_SCANNING_CONFIG_HELP_PATH = helpPagePath(
- 'user/application_security/dependency_scanning/index',
- { anchor: 'configuration' },
-);
export const CONTAINER_SCANNING_NAME = __('Container Scanning');
-export const CONTAINER_SCANNING_DESCRIPTION = __(
- 'Check your Docker images for known vulnerabilities.',
-);
-export const CONTAINER_SCANNING_HELP_PATH = helpPagePath(
- 'user/application_security/container_scanning/index',
-);
-export const CONTAINER_SCANNING_CONFIG_HELP_PATH = helpPagePath(
- 'user/application_security/container_scanning/index',
- { anchor: 'configuration' },
-);
export const COVERAGE_FUZZING_NAME = __('Coverage Fuzzing');
-export const COVERAGE_FUZZING_DESCRIPTION = __(
- 'Find bugs in your code with coverage-guided fuzzing.',
-);
-export const COVERAGE_FUZZING_HELP_PATH = helpPagePath(
- 'user/application_security/coverage_fuzzing/index',
-);
-export const COVERAGE_FUZZING_CONFIG_HELP_PATH = helpPagePath(
- 'user/application_security/coverage_fuzzing/index',
- { anchor: 'enable-coverage-guided-fuzz-testing' },
-);
export const CORPUS_MANAGEMENT_NAME = __('Corpus Management');
-export const CORPUS_MANAGEMENT_DESCRIPTION = s__(
- 'SecurityConfiguration|Manage corpus files used as seed inputs with coverage-guided fuzzing.',
-);
-export const CORPUS_MANAGEMENT_CONFIG_TEXT = s__('SecurityConfiguration|Manage corpus');
export const API_FUZZING_NAME = __('API Fuzzing');
-export const API_FUZZING_DESCRIPTION = __('Find bugs in your code with API fuzzing.');
-export const API_FUZZING_HELP_PATH = helpPagePath('user/application_security/api_fuzzing/index');
export const CLUSTER_IMAGE_SCANNING_NAME = s__('ciReport|Cluster Image Scanning');
@@ -166,105 +61,6 @@ export const SCANNER_NAMES_MAP = {
GENERIC: s__('ciReport|Manually added'),
};
-export const securityFeatures = [
- {
- name: SAST_NAME,
- shortName: SAST_SHORT_NAME,
- description: SAST_DESCRIPTION,
- helpPath: SAST_HELP_PATH,
- configurationHelpPath: SAST_CONFIG_HELP_PATH,
- type: REPORT_TYPE_SAST,
- },
- {
- name: SAST_IAC_NAME,
- shortName: SAST_IAC_SHORT_NAME,
- description: SAST_IAC_DESCRIPTION,
- helpPath: SAST_IAC_HELP_PATH,
- configurationHelpPath: SAST_IAC_CONFIG_HELP_PATH,
- type: REPORT_TYPE_SAST_IAC,
- },
- {
- badge: {
- text: DAST_BADGE_TEXT,
- tooltipText: DAST_BADGE_TOOLTIP,
- variant: 'info',
- },
- secondary: {
- type: REPORT_TYPE_DAST_PROFILES,
- name: DAST_PROFILES_NAME,
- description: DAST_PROFILES_DESCRIPTION,
- configurationText: DAST_PROFILES_CONFIG_TEXT,
- },
- name: DAST_NAME,
- shortName: DAST_SHORT_NAME,
- description: DAST_DESCRIPTION,
- helpPath: DAST_HELP_PATH,
- configurationHelpPath: DAST_CONFIG_HELP_PATH,
- type: REPORT_TYPE_DAST,
- anchor: 'dast',
- },
- {
- name: DEPENDENCY_SCANNING_NAME,
- description: DEPENDENCY_SCANNING_DESCRIPTION,
- helpPath: DEPENDENCY_SCANNING_HELP_PATH,
- configurationHelpPath: DEPENDENCY_SCANNING_CONFIG_HELP_PATH,
- type: REPORT_TYPE_DEPENDENCY_SCANNING,
- anchor: 'dependency-scanning',
- },
- {
- name: CONTAINER_SCANNING_NAME,
- description: CONTAINER_SCANNING_DESCRIPTION,
- helpPath: CONTAINER_SCANNING_HELP_PATH,
- configurationHelpPath: CONTAINER_SCANNING_CONFIG_HELP_PATH,
- type: REPORT_TYPE_CONTAINER_SCANNING,
- },
- {
- name: SECRET_DETECTION_NAME,
- description: SECRET_DETECTION_DESCRIPTION,
- helpPath: SECRET_DETECTION_HELP_PATH,
- configurationHelpPath: SECRET_DETECTION_CONFIG_HELP_PATH,
- type: REPORT_TYPE_SECRET_DETECTION,
- },
- {
- name: API_FUZZING_NAME,
- description: API_FUZZING_DESCRIPTION,
- helpPath: API_FUZZING_HELP_PATH,
- type: REPORT_TYPE_API_FUZZING,
- },
- {
- name: COVERAGE_FUZZING_NAME,
- description: COVERAGE_FUZZING_DESCRIPTION,
- helpPath: COVERAGE_FUZZING_HELP_PATH,
- configurationHelpPath: COVERAGE_FUZZING_CONFIG_HELP_PATH,
- type: REPORT_TYPE_COVERAGE_FUZZING,
- secondary: {
- type: REPORT_TYPE_CORPUS_MANAGEMENT,
- name: CORPUS_MANAGEMENT_NAME,
- description: CORPUS_MANAGEMENT_DESCRIPTION,
- configurationText: CORPUS_MANAGEMENT_CONFIG_TEXT,
- },
- },
- {
- anchor: 'bas',
- badge: {
- alwaysDisplay: true,
- text: BAS_BADGE_TEXT,
- tooltipText: BAS_BADGE_TOOLTIP,
- variant: 'info',
- },
- description: BAS_DESCRIPTION,
- name: BAS_NAME,
- helpPath: BAS_HELP_PATH,
- secondary: {
- configurationHelpPath: BAS_DAST_FEATURE_FLAG_HELP_PATH,
- description: BAS_DAST_FEATURE_FLAG_DESCRIPTION,
- name: BAS_DAST_FEATURE_FLAG_NAME,
- },
- shortName: BAS_SHORT_NAME,
- type: REPORT_TYPE_BREACH_AND_ATTACK_SIMULATION,
- },
-];
-
export const featureToMutationMap = {
[REPORT_TYPE_SAST]: {
mutationId: 'configureSast',
diff --git a/app/assets/javascripts/security_configuration/index.js b/app/assets/javascripts/security_configuration/index.js
index 8086b200891..40c82661305 100644
--- a/app/assets/javascripts/security_configuration/index.js
+++ b/app/assets/javascripts/security_configuration/index.js
@@ -3,7 +3,6 @@ import VueApollo from 'vue-apollo';
import createDefaultClient from '~/lib/graphql';
import { parseBooleanDataAttributes } from '~/lib/utils/dom_utils';
import SecurityConfigurationApp from './components/app.vue';
-import { securityFeatures } from './constants';
import { augmentFeatures } from './utils';
export const initSecurityConfiguration = (el) => {
@@ -28,10 +27,7 @@ export const initSecurityConfiguration = (el) => {
vulnerabilityTrainingDocsPath,
} = el.dataset;
- const { augmentedSecurityFeatures } = augmentFeatures(
- securityFeatures,
- features ? JSON.parse(features) : [],
- );
+ const { augmentedSecurityFeatures } = augmentFeatures(features ? JSON.parse(features) : []);
return new Vue({
el,
diff --git a/app/assets/javascripts/security_configuration/utils.js b/app/assets/javascripts/security_configuration/utils.js
index 59b49cb3820..23f86b30445 100644
--- a/app/assets/javascripts/security_configuration/utils.js
+++ b/app/assets/javascripts/security_configuration/utils.js
@@ -1,33 +1,41 @@
+import { isEmpty } from 'lodash';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import { SCANNER_NAMES_MAP } from '~/security_configuration/constants';
import { REPORT_TYPE_DAST } from '~/vue_shared/security_reports/constants';
/**
- * This function takes in 3 arrays of objects, securityFeatures and features.
- * securityFeatures are static arrays living in the constants.
+ * This function takes in a arrays of features.
* features is dynamic and coming from the backend.
- * This function builds a superset of those arrays.
- * It looks for matching keys within the dynamic and the static arrays
- * and will enrich the objects with the available static data.
- * @param [{}] securityFeatures
+ * securityFeatures is nested in features and are static arrays living in backend constants
+ * This function takes the nested securityFeatures config and flattens it to the top level object.
+ * It then filters out any scanner features that lack a security config for rednering in the UI
* @param [{}] features
* @returns {Object} Object with enriched features from constants divided into Security and Compliance Features
*/
-export const augmentFeatures = (securityFeatures, features = []) => {
+export const augmentFeatures = (features = []) => {
const featuresByType = features.reduce((acc, feature) => {
acc[feature.type] = convertObjectPropsToCamelCase(feature, { deep: true });
return acc;
}, {});
+ /**
+ * Track feature configs that are used as nested elements in the UI
+ * so they aren't rendered at the top level as a seperate card
+ */
+ const secondaryFeatures = [];
+
+ // Modify each feature
const augmentFeature = (feature) => {
const augmented = {
...feature,
...featuresByType[feature.type],
};
+ // Secondary layer copies some values from the first layer
if (augmented.secondary) {
augmented.secondary = { ...augmented.secondary, ...featuresByType[feature.secondary.type] };
+ secondaryFeatures.push(feature.secondary.type);
}
if (augmented.type === REPORT_TYPE_DAST && !augmented.onDemandAvailable) {
@@ -41,8 +49,20 @@ export const augmentFeatures = (securityFeatures, features = []) => {
return augmented;
};
+ // Filter out any features that lack a security feature definition or is used as a nested UI element
+ const filterFeatures = (feature) => {
+ return !secondaryFeatures.includes(feature.type) && !isEmpty(feature.securityFeatures || {});
+ };
+
+ // Convert backend provided properties to camelCase, and spread nested security config to the root
+ // level for UI rendering.
+ const flattenFeatures = (feature) => {
+ const flattenedFeature = convertObjectPropsToCamelCase(feature, { deep: true });
+ return augmentFeature({ ...flattenedFeature, ...flattenedFeature.securityFeatures });
+ };
+
return {
- augmentedSecurityFeatures: securityFeatures.map((feature) => augmentFeature(feature)),
+ augmentedSecurityFeatures: features.map(flattenFeatures).filter(filterFeatures),
};
};
diff --git a/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees_widget.vue b/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees_widget.vue
index 4ff12824008..0ac6208c7d3 100644
--- a/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees_widget.vue
+++ b/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees_widget.vue
@@ -6,6 +6,7 @@ import { TYPE_ALERT, TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';
import { __, n__ } from '~/locale';
import UserSelect from '~/vue_shared/components/user_select/user_select.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
+import { ISSUE_MR_CHANGE_ASSIGNEE } from '~/behaviors/shortcuts/keybindings';
import { assigneesQueries } from '../../queries/constants';
import SidebarEditableItem from '../sidebar_editable_item.vue';
import SidebarAssigneesRealtime from './assignees_realtime.vue';
@@ -156,6 +157,12 @@ export default {
issuableAuthor() {
return this.issuable?.author;
},
+ assigneeShortcutDescription() {
+ return ISSUE_MR_CHANGE_ASSIGNEE.description;
+ },
+ assigneeShortcutKey() {
+ return ISSUE_MR_CHANGE_ASSIGNEE.defaultKeys[0];
+ },
},
watch: {
iid(_, oldIid) {
@@ -246,6 +253,9 @@ export default {
:loading="isSettingAssignees"
:initial-loading="isAssigneesLoading"
:title="assigneeText"
+ :edit-tooltip="`${assigneeShortcutDescription} <kbd class='flat ml-1' aria-hidden=true>${assigneeShortcutKey}</kbd>`"
+ :edit-aria-label="assigneeShortcutDescription"
+ :edit-keyshortcuts="assigneeShortcutKey"
:is-dirty="isDirty"
@open="showDropdown"
@close="saveAssignees"
diff --git a/app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue b/app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue
index 93e3cfba309..f3209d1a02f 100644
--- a/app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue
+++ b/app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue
@@ -1,17 +1,11 @@
<script>
import { get } from 'lodash';
-import {
- GlAlert,
- GlTooltipDirective,
- GlButton,
- GlFormInput,
- GlLink,
- GlLoadingIcon,
-} from '@gitlab/ui';
+import { GlAlert, GlTooltipDirective, GlButton, GlFormInput, GlLoadingIcon } from '@gitlab/ui';
import produce from 'immer';
import { createAlert } from '~/alert';
import { WORKSPACE_GROUP } from '~/issues/constants';
import { __ } from '~/locale';
+import SidebarColorPicker from '../../sidebar_color_picker.vue';
import { workspaceLabelsQueries, workspaceCreateLabelMutation } from '../../../queries/constants';
import { DEFAULT_LABEL_COLOR } from './constants';
@@ -22,8 +16,8 @@ export default {
GlAlert,
GlButton,
GlFormInput,
- GlLink,
GlLoadingIcon,
+ SidebarColorPicker,
},
directives: {
GlTooltip: GlTooltipDirective,
@@ -84,15 +78,6 @@ export default {
},
},
methods: {
- getColorCode(color) {
- return Object.keys(color).pop();
- },
- getColorName(color) {
- return Object.values(color).pop();
- },
- handleColorClick(color) {
- this.selectedColor = this.getColorCode(color);
- },
updateLabelsInCache(store, label) {
const { query, dataPath } = workspaceLabelsQueries[this.workspaceType];
@@ -163,34 +148,7 @@ export default {
data-testid="label-title-input"
/>
</div>
- <div class="dropdown-content gl-px-3">
- <div class="suggest-colors suggest-colors-dropdown gl-mt-0! gl-mb-3! gl-mb-0">
- <gl-link
- v-for="(color, index) in suggestedColors"
- :key="index"
- v-gl-tooltip:tooltipcontainer
- :style="{ backgroundColor: getColorCode(color) }"
- :title="getColorName(color)"
- @click.prevent="handleColorClick(color)"
- />
- </div>
- <div class="color-input-container gl-display-flex">
- <gl-form-input
- v-model.trim="selectedColor"
- class="gl-rounded-top-right-none gl-rounded-bottom-right-none gl-mr-n1 gl-mb-2 gl-w-8"
- type="color"
- :value="selectedColor"
- :placeholder="__('Select color')"
- data-testid="selected-color"
- />
- <gl-form-input
- v-model.trim="selectedColor"
- class="gl-rounded-top-left-none gl-rounded-bottom-left-none gl-mb-2"
- :placeholder="__('Use custom color #FF0000')"
- data-testid="selected-color-text"
- />
- </div>
- </div>
+ <sidebar-color-picker v-model.trim="selectedColor" />
<div class="dropdown-actions gl-display-flex gl-justify-content-space-between gl-pt-3 gl-px-3">
<gl-button
:disabled="disableCreate"
diff --git a/app/assets/javascripts/sidebar/components/labels/labels_select_widget/labels_select_root.vue b/app/assets/javascripts/sidebar/components/labels/labels_select_widget/labels_select_root.vue
index e0d7400f7a6..cbaa8a59813 100644
--- a/app/assets/javascripts/sidebar/components/labels/labels_select_widget/labels_select_root.vue
+++ b/app/assets/javascripts/sidebar/components/labels/labels_select_widget/labels_select_root.vue
@@ -1,12 +1,13 @@
<script>
import { debounce } from 'lodash';
import issuableLabelsSubscription from 'ee_else_ce/sidebar/queries/issuable_labels.subscription.graphql';
-import { MutationOperationMode, getIdFromGraphQLId } from '~/graphql_shared/utils';
+import { mutationOperationMode, getIdFromGraphQLId } from '~/graphql_shared/utils';
import { createAlert } from '~/alert';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { TYPE_EPIC, TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_TEST_CASE } from '~/issues/constants';
import { __ } from '~/locale';
+import { ISSUABLE_CHANGE_LABEL } from '~/behaviors/shortcuts/keybindings';
import { issuableLabelsQueries } from '../../../queries/constants';
import SidebarEditableItem from '../../sidebar_editable_item.vue';
import { DEBOUNCE_DROPDOWN_DELAY, VARIANT_SIDEBAR } from './constants';
@@ -159,6 +160,12 @@ export default {
isLockOnMergeSupported() {
return this.issuableSupportsLockOnMerge || this.issuable?.supportsLockOnMerge;
},
+ labelShortcutDescription() {
+ return ISSUABLE_CHANGE_LABEL.description;
+ },
+ labelShortcutKey() {
+ return ISSUABLE_CHANGE_LABEL.defaultKeys[0];
+ },
},
apollo: {
issuable: {
@@ -275,7 +282,7 @@ export default {
case TYPE_MERGE_REQUEST:
return {
...updateVariables,
- operationMode: MutationOperationMode.Replace,
+ operationMode: mutationOperationMode.replace,
};
case TYPE_EPIC:
return {
@@ -336,7 +343,7 @@ export default {
return {
...removeVariables,
labelIds: [labelId],
- operationMode: MutationOperationMode.Remove,
+ operationMode: mutationOperationMode.remove,
};
case TYPE_EPIC:
return {
@@ -375,6 +382,9 @@ export default {
<sidebar-editable-item
ref="editable"
:title="__('Labels')"
+ :edit-tooltip="`${labelShortcutDescription} <kbd class='flat ml-1' aria-hidden=true>${labelShortcutKey}</kbd>`"
+ :edit-aria-label="labelShortcutDescription"
+ :edit-keyshortcuts="labelShortcutKey"
:loading="isLoading"
:can-edit="allowLabelEdit"
@open="oldIid = null"
diff --git a/app/assets/javascripts/sidebar/components/sidebar_color_picker.vue b/app/assets/javascripts/sidebar/components/sidebar_color_picker.vue
new file mode 100644
index 00000000000..95b1febb575
--- /dev/null
+++ b/app/assets/javascripts/sidebar/components/sidebar_color_picker.vue
@@ -0,0 +1,75 @@
+<script>
+import { GlFormInput, GlLink, GlTooltipDirective } from '@gitlab/ui';
+
+export default {
+ components: {
+ GlFormInput,
+ GlLink,
+ },
+ directives: {
+ GlTooltip: GlTooltipDirective,
+ },
+ props: {
+ value: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ },
+ computed: {
+ suggestedColors() {
+ const colorsMap = gon.suggested_label_colors;
+ return Object.keys(colorsMap).map((color) => ({ [color]: colorsMap[color] }));
+ },
+ selectedColor: {
+ get() {
+ return this.value;
+ },
+ set(color) {
+ this.handleColorClick(color);
+ },
+ },
+ },
+ methods: {
+ handleColorClick(color) {
+ this.$emit('input', color);
+ },
+ getColorCode(color) {
+ return Object.keys(color).pop();
+ },
+ getColorName(color) {
+ return Object.values(color).pop();
+ },
+ },
+};
+</script>
+<template>
+ <div class="dropdown-content gl-px-3">
+ <div class="suggest-colors suggest-colors-dropdown gl-mt-0!">
+ <gl-link
+ v-for="(color, index) in suggestedColors"
+ :key="index"
+ v-gl-tooltip:tooltipcontainer
+ :style="{ backgroundColor: getColorCode(color) }"
+ :title="getColorName(color)"
+ @click.prevent="handleColorClick(getColorCode(color))"
+ />
+ </div>
+ <div class="color-input-container gl-display-flex">
+ <gl-form-input
+ v-model.trim="selectedColor"
+ class="gl-rounded-top-right-none gl-rounded-bottom-right-none gl-mr-n1 gl-mb-2 gl-w-8"
+ type="color"
+ :value="selectedColor"
+ :placeholder="__('Select color')"
+ data-testid="selected-color"
+ />
+ <gl-form-input
+ v-model.trim="selectedColor"
+ class="gl-rounded-top-left-none gl-rounded-bottom-left-none gl-mb-2"
+ :placeholder="__('Use custom color #FF0000')"
+ data-testid="selected-color-text"
+ />
+ </div>
+ </div>
+</template>
diff --git a/app/assets/javascripts/sidebar/components/sidebar_editable_item.vue b/app/assets/javascripts/sidebar/components/sidebar_editable_item.vue
index ad83866ceb2..c887d5d292e 100644
--- a/app/assets/javascripts/sidebar/components/sidebar_editable_item.vue
+++ b/app/assets/javascripts/sidebar/components/sidebar_editable_item.vue
@@ -1,5 +1,5 @@
<script>
-import { GlButton, GlLoadingIcon } from '@gitlab/ui';
+import { GlButton, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';
import { __ } from '~/locale';
export default {
@@ -7,6 +7,9 @@ export default {
unassigned: __('Unassigned'),
},
components: { GlButton, GlLoadingIcon },
+ directives: {
+ GlTooltip: GlTooltipDirective,
+ },
inject: {
canUpdate: {},
isClassicSidebar: {
@@ -58,6 +61,21 @@ export default {
required: false,
default: false,
},
+ editTooltip: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ editAriaLabel: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ editKeyshortcuts: {
+ type: String,
+ required: false,
+ default: '',
+ },
},
data() {
return {
@@ -68,6 +86,15 @@ export default {
editButtonText() {
return this.isDirty ? __('Apply') : __('Edit');
},
+ editTooltipText() {
+ return this.isDirty ? '' : this.editTooltip;
+ },
+ editAriaLabelText() {
+ return this.isDirty ? this.editButtonText : this.editAriaLabel;
+ },
+ editKeyshortcutsText() {
+ return this.isDirty ? __('Escape') : this.editKeyshortcuts;
+ },
},
destroyed() {
window.removeEventListener('click', this.collapseWhenOffClick);
@@ -150,9 +177,13 @@ export default {
<gl-button
v-if="canUpdate && !initialLoading && canEdit"
:id="buttonId"
+ v-gl-tooltip.viewport.html
category="tertiary"
size="small"
class="gl-text-gray-900! gl-ml-auto hide-collapsed gl-mr-n2 shortcut-sidebar-dropdown-toggle"
+ :title="editTooltipText"
+ :aria-label="editAriaLabelText"
+ :aria-keyshortcuts="editKeyshortcutsText"
data-testid="edit-button"
:data-track-action="tracking.event"
:data-track-label="tracking.label"
diff --git a/app/assets/javascripts/sidebar/components/todo_toggle/sidebar_todo_widget.vue b/app/assets/javascripts/sidebar/components/todo_toggle/sidebar_todo_widget.vue
index f2257adb79c..3dfe5b6cc15 100644
--- a/app/assets/javascripts/sidebar/components/todo_toggle/sidebar_todo_widget.vue
+++ b/app/assets/javascripts/sidebar/components/todo_toggle/sidebar_todo_widget.vue
@@ -6,7 +6,7 @@ import { TYPE_MERGE_REQUEST } from '~/issues/constants';
import { __, sprintf } from '~/locale';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import Tracking from '~/tracking';
-import { TodoMutationTypes } from '../../constants';
+import { todoMutationTypes } from '../../constants';
import { todoQueries, todoMutations } from '../../queries/constants';
import { todoLabel } from '../../utils';
import TodoButton from './todo_button.vue';
@@ -104,9 +104,9 @@ export default {
},
todoMutationType() {
if (this.hasTodo) {
- return TodoMutationTypes.MarkDone;
+ return todoMutationTypes.markDone;
}
- return TodoMutationTypes.Create;
+ return todoMutationTypes.create;
},
collapsedButtonIcon() {
return this.hasTodo ? 'todo-done' : 'todo-add';
diff --git a/app/assets/javascripts/sidebar/constants.js b/app/assets/javascripts/sidebar/constants.js
index f13f613733b..953684b5c93 100644
--- a/app/assets/javascripts/sidebar/constants.js
+++ b/app/assets/javascripts/sidebar/constants.js
@@ -44,9 +44,9 @@ export const IssuableAttributeState = {
[IssuableAttributeType.Milestone]: 'active',
};
-export const TodoMutationTypes = {
- Create: 'create',
- MarkDone: 'mark-done',
+export const todoMutationTypes = {
+ create: 'create',
+ markDone: 'mark-done',
};
export function dropdowni18nText(issuableAttribute, issuableType) {
diff --git a/app/assets/javascripts/sidebar/queries/constants.js b/app/assets/javascripts/sidebar/queries/constants.js
index 6bcdc01a003..dbb2f14880a 100644
--- a/app/assets/javascripts/sidebar/queries/constants.js
+++ b/app/assets/javascripts/sidebar/queries/constants.js
@@ -22,7 +22,7 @@ import groupLabelsQuery from '../components/labels/labels_select_widget/graphql/
import issueLabelsQuery from '../components/labels/labels_select_widget/graphql/issue_labels.query.graphql';
import mergeRequestLabelsQuery from '../components/labels/labels_select_widget/graphql/merge_request_labels.query.graphql';
import projectLabelsQuery from '../components/labels/labels_select_widget/graphql/project_labels.query.graphql';
-import { IssuableAttributeType, TodoMutationTypes } from '../constants';
+import { IssuableAttributeType, todoMutationTypes } from '../constants';
import epicConfidentialQuery from './epic_confidential.query.graphql';
import epicDueDateQuery from './epic_due_date.query.graphql';
import epicParticipantsQuery from './epic_participants.query.graphql';
@@ -282,8 +282,8 @@ export const todoQueries = {
};
export const todoMutations = {
- [TodoMutationTypes.Create]: todoCreateMutation,
- [TodoMutationTypes.MarkDone]: todoMarkDoneMutation,
+ [todoMutationTypes.create]: todoCreateMutation,
+ [todoMutationTypes.markDone]: todoMarkDoneMutation,
};
export const escalationStatusQuery = getEscalationStatusQuery;
diff --git a/app/assets/javascripts/super_sidebar/components/pinned_section.vue b/app/assets/javascripts/super_sidebar/components/pinned_section.vue
index 05040218164..2be9f9e9f7d 100644
--- a/app/assets/javascripts/super_sidebar/components/pinned_section.vue
+++ b/app/assets/javascripts/super_sidebar/components/pinned_section.vue
@@ -116,7 +116,11 @@ export default {
@pin-remove="onPinRemove(item.id, item.title)"
/>
</draggable>
- <li v-else class="gl-text-secondary gl-font-sm gl-py-3" style="margin-left: 2.5rem">
+ <li
+ v-else
+ class="gl-text-secondary gl-font-sm gl-py-3 super-sidebar-empty-pinned-text"
+ style="margin-left: 2.5rem"
+ >
{{ $options.i18n.emptyHint }}
</li>
</menu-section>
diff --git a/app/assets/javascripts/super_sidebar/components/user_menu.vue b/app/assets/javascripts/super_sidebar/components/user_menu.vue
index f129d067cdc..cc558edfd68 100644
--- a/app/assets/javascripts/super_sidebar/components/user_menu.vue
+++ b/app/assets/javascripts/super_sidebar/components/user_menu.vue
@@ -30,6 +30,8 @@ export default {
oneOfGroupsRunningOutOfPipelineMinutes: s__('CurrentUser|One of your groups is running out'),
gitlabNext: s__('CurrentUser|Switch to GitLab Next'),
startTrial: s__('CurrentUser|Start an Ultimate trial'),
+ enterAdminMode: s__('CurrentUser|Enter Admin Mode'),
+ leaveAdminMode: s__('CurrentUser|Leave Admin Mode'),
signOut: __('Sign out'),
},
components: {
@@ -142,6 +144,27 @@ export default {
},
};
},
+ enterAdminModeItem() {
+ return {
+ text: this.$options.i18n.enterAdminMode,
+ href: this.data.admin_mode.enter_admin_mode_url,
+ extraAttrs: {
+ ...USER_MENU_TRACKING_DEFAULTS,
+ 'data-track-label': 'enter_admin_mode',
+ },
+ };
+ },
+ leaveAdminModeItem() {
+ return {
+ text: this.$options.i18n.leaveAdminMode,
+ href: this.data.admin_mode.leave_admin_mode_url,
+ extraAttrs: {
+ ...USER_MENU_TRACKING_DEFAULTS,
+ 'data-track-label': 'leave_admin_mode',
+ 'data-method': 'post',
+ },
+ };
+ },
signOutGroup() {
return {
items: [
@@ -184,6 +207,20 @@ export default {
}
: {};
},
+ showEnterAdminModeItem() {
+ return (
+ this.data.admin_mode.user_is_admin &&
+ this.data.admin_mode.admin_mode_feature_enabled &&
+ !this.data.admin_mode.admin_mode_active
+ );
+ },
+ showLeaveAdminModeItem() {
+ return (
+ this.data.admin_mode.user_is_admin &&
+ this.data.admin_mode.admin_mode_feature_enabled &&
+ this.data.admin_mode.admin_mode_active
+ );
+ },
showNotificationDot() {
return this.data.pipeline_minutes?.show_notification_dot;
},
@@ -248,7 +285,11 @@ export default {
@shown="onShow"
>
<template #toggle>
- <gl-button category="tertiary" class="user-bar-dropdown-toggle btn-with-notification">
+ <gl-button
+ category="tertiary"
+ class="user-bar-dropdown-toggle btn-with-notification"
+ data-testid="user-menu-toggle"
+ >
<span class="gl-sr-only">{{ toggleText }}</span>
<gl-avatar
:size="24"
@@ -320,6 +361,17 @@ export default {
:item="gitlabNextItem"
data-testid="gitlab-next-item"
/>
+
+ <gl-disclosure-dropdown-item
+ v-if="showEnterAdminModeItem"
+ :item="enterAdminModeItem"
+ data-testid="enter-admin-mode-item"
+ />
+ <gl-disclosure-dropdown-item
+ v-if="showLeaveAdminModeItem"
+ :item="leaveAdminModeItem"
+ data-testid="leave-admin-mode-item"
+ />
</gl-disclosure-dropdown-group>
<gl-disclosure-dropdown-group
diff --git a/app/assets/javascripts/tracking/constants.js b/app/assets/javascripts/tracking/constants.js
index bc416b20e80..06d324a970f 100644
--- a/app/assets/javascripts/tracking/constants.js
+++ b/app/assets/javascripts/tracking/constants.js
@@ -31,8 +31,6 @@ export const REFERRER_TTL = 24 * 60 * 60 * 1000;
export const GOOGLE_ANALYTICS_ID_COOKIE_NAME = '_ga';
-export const GITLAB_INTERNAL_EVENT_CATEGORY = 'InternalEventTracking';
-
export const SERVICE_PING_SCHEMA = 'iglu:com.gitlab/gitlab_service_ping/jsonschema/1-0-1';
export const SERVICE_PING_SECURITY_CONFIGURATION_THREAT_MANAGEMENT_VISIT =
diff --git a/app/assets/javascripts/tracking/internal_events.js b/app/assets/javascripts/tracking/internal_events.js
index a6d14bfbfd8..7da6da16d6f 100644
--- a/app/assets/javascripts/tracking/internal_events.js
+++ b/app/assets/javascripts/tracking/internal_events.js
@@ -1,11 +1,7 @@
import API from '~/api';
import Tracking from './tracking';
-import {
- GITLAB_INTERNAL_EVENT_CATEGORY,
- LOAD_INTERNAL_EVENTS_SELECTOR,
- SERVICE_PING_SCHEMA,
-} from './constants';
+import { LOAD_INTERNAL_EVENTS_SELECTOR, SERVICE_PING_SCHEMA } from './constants';
import { Tracker } from './tracker';
import { InternalEventHandler, createInternalEventPayload } from './utils';
@@ -16,7 +12,7 @@ const InternalEvents = {
*/
trackEvent(event) {
API.trackInternalEvent(event);
- Tracking.event(GITLAB_INTERNAL_EVENT_CATEGORY, event, {
+ Tracking.event(undefined, event, {
context: {
schema: SERVICE_PING_SCHEMA,
data: {
diff --git a/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue b/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue
new file mode 100644
index 00000000000..ddf240fcafa
--- /dev/null
+++ b/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue
@@ -0,0 +1,67 @@
+<script>
+import { GlAlert } from '@gitlab/ui';
+import StorageUsageStatistics from 'ee_else_ce/usage_quotas/storage/components/storage_usage_statistics.vue';
+
+export default {
+ name: 'NamespaceStorageApp',
+ components: {
+ GlAlert,
+ StorageUsageStatistics,
+ },
+ props: {
+ namespaceLoadingError: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ projectsLoadingError: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ isNamespaceStorageStatisticsLoading: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ namespace: {
+ type: Object,
+ required: false,
+ default: () => ({}),
+ },
+ },
+ computed: {
+ usedStorage() {
+ return (
+ // This is the coefficient adjusted forked repo size, only used in EE
+ this.namespace.rootStorageStatistics?.costFactoredStorageSize ??
+ // This is the actual storage size value, used in CE or when the above is disabled
+ this.namespace.rootStorageStatistics?.storageSize
+ );
+ },
+ },
+};
+</script>
+<template>
+ <div>
+ <gl-alert
+ v-if="namespaceLoadingError || projectsLoadingError"
+ variant="danger"
+ :dismissible="false"
+ class="gl-mt-4"
+ >
+ {{
+ s__(
+ 'UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again.',
+ )
+ }}
+ </gl-alert>
+ <storage-usage-statistics
+ :additional-purchased-storage-size="namespace.additionalPurchasedStorageSize"
+ :used-storage="usedStorage"
+ :loading="isNamespaceStorageStatisticsLoading"
+ />
+
+ <slot name="ee-storage-app"></slot>
+ </div>
+</template>
diff --git a/app/assets/javascripts/usage_quotas/storage/components/storage_usage_overview_card.vue b/app/assets/javascripts/usage_quotas/storage/components/storage_usage_overview_card.vue
new file mode 100644
index 00000000000..6e73fc0ba69
--- /dev/null
+++ b/app/assets/javascripts/usage_quotas/storage/components/storage_usage_overview_card.vue
@@ -0,0 +1,51 @@
+<script>
+import { GlCard, GlSkeletonLoader } from '@gitlab/ui';
+import NumberToHumanSize from '~/vue_shared/components/number_to_human_size/number_to_human_size.vue';
+
+export default {
+ name: 'StorageUsageOverviewCard',
+ components: {
+ GlCard,
+ GlSkeletonLoader,
+ NumberToHumanSize,
+ },
+ props: {
+ usedStorage: {
+ type: Number,
+ required: false,
+ default: null,
+ },
+ loading: {
+ type: Boolean,
+ required: true,
+ },
+ },
+};
+</script>
+
+<template>
+ <gl-card>
+ <gl-skeleton-loader v-if="loading" :height="64">
+ <rect width="140" height="30" x="5" y="0" rx="4" />
+ <rect width="240" height="10" x="5" y="40" rx="4" />
+ <rect width="340" height="10" x="5" y="54" rx="4" />
+ </gl-skeleton-loader>
+
+ <div v-else>
+ <div class="gl-font-weight-bold" data-testid="namespace-storage-card-title">
+ {{ s__('UsageQuota|Namespace storage used') }}
+ </div>
+ <div class="gl-font-size-h-display gl-font-weight-bold gl-line-height-ratio-1000 gl-my-3">
+ <number-to-human-size label-class="gl-font-lg" :value="Number(usedStorage)" plain-zero />
+ </div>
+ <hr class="gl-my-4" />
+ <p>
+ {{
+ s__(
+ 'UsageQuota|Namespace total storage represents the sum of storage consumed by all projects, Container Registry, and Dependency Proxy.',
+ )
+ }}
+ </p>
+ </div>
+ </gl-card>
+</template>
diff --git a/app/assets/javascripts/usage_quotas/storage/components/storage_usage_statistics.vue b/app/assets/javascripts/usage_quotas/storage/components/storage_usage_statistics.vue
new file mode 100644
index 00000000000..d7e550dd715
--- /dev/null
+++ b/app/assets/javascripts/usage_quotas/storage/components/storage_usage_statistics.vue
@@ -0,0 +1,33 @@
+<script>
+import StorageUsageOverviewCard from './storage_usage_overview_card.vue';
+
+export default {
+ name: 'StorageUsageStatistics',
+ components: {
+ StorageUsageOverviewCard,
+ },
+ props: {
+ usedStorage: {
+ type: Number,
+ required: false,
+ default: 0,
+ },
+ loading: {
+ type: Boolean,
+ required: true,
+ },
+ },
+};
+</script>
+<template>
+ <div>
+ <h3 data-testid="overview-subtitle">{{ s__('UsageQuota|Namespace overview') }}</h3>
+ <div class="gl-display-grid gl-md-grid-template-columns-2 gl-gap-5 gl-py-4">
+ <storage-usage-overview-card
+ :used-storage="usedStorage"
+ :loading="loading"
+ data-testid="namespace-usage-total"
+ />
+ </div>
+ </div>
+</template>
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue
index a4afdee4d49..1aed3362c42 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue
@@ -48,7 +48,7 @@ export default {
variables() {
return this.mergeRequestQueryVariables;
},
- update: (data) => data.project.mergeRequest,
+ update: (data) => data.project?.mergeRequest || {},
},
},
components: {
@@ -90,7 +90,7 @@ export default {
return this.state.rebaseInProgress;
},
canPushToSourceBranch() {
- return this.state.userPermissions.pushToSourceBranch;
+ return this.state.userPermissions?.pushToSourceBranch || false;
},
targetBranch() {
return this.state.targetBranch;
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
index 1516b63f96d..af7453d84d6 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
@@ -119,7 +119,11 @@ export default {
},
) {
if (mergeRequestMergeStatusUpdated) {
- this.state = mergeRequestMergeStatusUpdated;
+ this.state = {
+ ...mergeRequestMergeStatusUpdated,
+ mergeRequestsFfOnlyEnabled: this.state.mergeRequestsFfOnlyEnabled,
+ onlyAllowMergeIfPipelineSucceeds: this.state.onlyAllowMergeIfPipelineSucceeds,
+ };
if (!this.commitMessageIsTouched) {
this.commitMessage = mergeRequestMergeStatusUpdated.defaultMergeCommitMessage;
@@ -277,10 +281,7 @@ export default {
return __('Merge');
},
showAutoMergeHelperText() {
- return (
- !(this.status === PIPELINE_FAILED_STATE || this.isPipelineFailed) &&
- this.isAutoMergeAvailable
- );
+ return this.isAutoMergeAvailable;
},
hasPipelineMustSucceedConflict() {
return !this.hasCI && this.state.onlyAllowMergeIfPipelineSucceeds;
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/widget/widget_content_row.vue b/app/assets/javascripts/vue_merge_request_widget/components/widget/widget_content_row.vue
index 7413e2237c3..afdb9e9ff08 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/widget/widget_content_row.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/widget/widget_content_row.vue
@@ -72,6 +72,11 @@ export default {
return this.actionButtons.length > 0;
},
},
+ methods: {
+ hasHeader() {
+ return Boolean(this.$scopedSlots.header || this.header || this.shouldShowHeaderActions);
+ },
+ },
i18n: {
learnMore: __('Learn more'),
},
@@ -91,9 +96,9 @@ export default {
:icon-name="statusIconName"
/>
<div class="gl-w-full gl-min-w-0">
- <div class="gl-display-flex">
+ <div v-if="hasHeader()" class="gl-display-flex">
<slot name="header">
- <div v-if="header" class="gl-mb-2">
+ <div class="gl-mb-2">
<strong v-safe-html="generatedHeader" class="gl-display-block"></strong
><span
v-if="generatedSubheader"
diff --git a/app/assets/javascripts/vue_merge_request_widget/index.js b/app/assets/javascripts/vue_merge_request_widget/index.js
index 5e9b72e13cf..db1daa3ce01 100644
--- a/app/assets/javascripts/vue_merge_request_widget/index.js
+++ b/app/assets/javascripts/vue_merge_request_widget/index.js
@@ -46,6 +46,7 @@ export default () => {
gl.mrWidgetData.can_create_pipeline_in_target_project,
),
commitPathTemplate: gl.mrWidgetData.commit_path_template,
+ canAdminVulnerability: gl.mrWidgetData.can_admin_vulnerability,
dismissalDescriptions,
},
...MrWidgetOptions,
diff --git a/app/assets/javascripts/vue_shared/components/file_row.vue b/app/assets/javascripts/vue_shared/components/file_row.vue
index 6ac75230d88..3419e6eb1b6 100644
--- a/app/assets/javascripts/vue_shared/components/file_row.vue
+++ b/app/assets/javascripts/vue_shared/components/file_row.vue
@@ -1,5 +1,5 @@
<script>
-import { GlTruncate } from '@gitlab/ui';
+import { GlTruncate, GlIcon } from '@gitlab/ui';
import { escapeFileUrl } from '~/lib/utils/url_utility';
import FileIcon from '~/vue_shared/components/file_icon.vue';
import FileHeader from '~/vue_shared/components/file_row_header.vue';
@@ -10,6 +10,7 @@ export default {
FileHeader,
FileIcon,
GlTruncate,
+ GlIcon,
},
props: {
file: {
@@ -141,6 +142,7 @@ export default {
data-testid="file-row-name-container"
:class="[fileClasses, { 'str-truncated': !truncateMiddle, 'gl-min-w-0': truncateMiddle }]"
>
+ <gl-icon v-if="file.pinned" name="thumbtack" :size="16" />
<file-icon
class="file-row-icon"
:class="{ 'text-secondary': file.type === 'tree' }"
diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js b/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js
index 5362ceac9ee..6549de96c98 100644
--- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js
+++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js
@@ -67,6 +67,7 @@ export const TOKEN_TITLE_AUTHOR = __('Author');
export const TOKEN_TITLE_CONFIDENTIAL = __('Confidential');
export const TOKEN_TITLE_CONTACT = s__('Crm|Contact');
export const TOKEN_TITLE_GROUP = __('Group');
+export const TOKEN_TITLE_GROUP_INVITE = __('Group invite');
export const TOKEN_TITLE_LABEL = __('Label');
export const TOKEN_TITLE_PROJECT = __('Project');
export const TOKEN_TITLE_MILESTONE = __('Milestone');
@@ -90,6 +91,7 @@ export const TOKEN_TYPE_AUTHOR = 'author';
export const TOKEN_TYPE_CONFIDENTIAL = 'confidential';
export const TOKEN_TYPE_CONTACT = 'contact';
export const TOKEN_TYPE_GROUP = 'group';
+export const TOKEN_TYPE_GROUP_INVITE = 'group-invite';
export const TOKEN_TYPE_EPIC = 'epic';
// As health status gets reused between issue lists and boards
// this is in the shared constants. Until we have not decoupled the EE filtered search bar
diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/daterange_token.vue b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/daterange_token.vue
new file mode 100644
index 00000000000..8da5f0cca4a
--- /dev/null
+++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/daterange_token.vue
@@ -0,0 +1,158 @@
+<script>
+import {
+ GlIcon,
+ GlDaterangePicker,
+ GlFilteredSearchToken,
+ GlFilteredSearchSuggestion,
+ GlOutsideDirective,
+} from '@gitlab/ui';
+import { __ } from '~/locale';
+import { formatDate } from '~/lib/utils/datetime/date_format_utility';
+
+const CUSTOM_DATE_FILTER_TYPE = 'custom-date';
+
+export default {
+ directives: { Outside: GlOutsideDirective },
+ components: {
+ GlIcon,
+ GlDaterangePicker,
+ GlFilteredSearchToken,
+ GlFilteredSearchSuggestion,
+ },
+ props: {
+ active: {
+ type: Boolean,
+ required: true,
+ },
+ value: {
+ type: Object,
+ required: true,
+ },
+ config: {
+ type: Object,
+ required: true,
+ },
+ },
+ data() {
+ return {
+ datePickerShown: false,
+ };
+ },
+ computed: {
+ isActive() {
+ return this.datePickerShown || this.active;
+ },
+ computedValue() {
+ if (this.datePickerShown) {
+ return {
+ ...this.value,
+ data: '',
+ };
+ }
+ return this.value;
+ },
+ dataSegmentInputAttributes() {
+ const id = 'time_range_data_segment_input';
+ if (this.datePickerShown) {
+ return {
+ id,
+ placeholder: 'YYYY-MM-DD - YYYY-MM-DD', // eslint-disable-line @gitlab/require-i18n-strings
+ style: 'padding-left: 23px;',
+ };
+ }
+ return {
+ id,
+ };
+ },
+ computedConfig() {
+ return {
+ ...this.config,
+ options: undefined, // remove options from config to avoid default options being rendered
+ };
+ },
+ suggestions() {
+ const suggestions = this.config.options.map((option) => ({
+ value: option.value,
+ text: option.title,
+ }));
+ suggestions.push({ value: CUSTOM_DATE_FILTER_TYPE, text: __('Custom') });
+ return suggestions;
+ },
+ defaultStartDate() {
+ return new Date();
+ },
+ },
+ methods: {
+ hideDatePicker() {
+ this.datePickerShown = false;
+ },
+ showDatePicker() {
+ this.datePickerShown = true;
+ },
+ handleClickOutside() {
+ this.hideDatePicker();
+ },
+ handleComplete(value) {
+ if (value === CUSTOM_DATE_FILTER_TYPE) {
+ this.showDatePicker();
+ }
+ },
+ selectValue(inputValue, submitValue) {
+ let value = inputValue;
+ if (typeof inputValue === 'object' && inputValue.startDate && inputValue.endDate) {
+ const { startDate, endDate } = inputValue;
+ const format = 'yyyy-mm-dd';
+ value = `${formatDate(startDate, format)} - ${formatDate(endDate, format)}`;
+ }
+ submitValue(value);
+ this.hideDatePicker();
+ },
+ },
+ CUSTOM_DATE_FILTER_TYPE: 'custom-date',
+};
+</script>
+
+<template>
+ <gl-filtered-search-token
+ :data-segment-input-attributes="dataSegmentInputAttributes"
+ v-bind="{ ...$props, ...$attrs }"
+ :view-only="datePickerShown"
+ :active="isActive"
+ :value="computedValue"
+ :config="computedConfig"
+ v-on="$listeners"
+ @complete="handleComplete"
+ >
+ <template #before-data-segment-input="{ submitValue }">
+ <gl-icon
+ v-if="datePickerShown"
+ class="gl-text-gray-500"
+ name="calendar"
+ style="margin-left: 5px; margin-right: -15px; z-index: 1; pointer-events: none"
+ />
+ <div
+ v-if="datePickerShown"
+ v-outside="handleClickOutside"
+ class="gl-absolute gl-z-index-1 gl-bg-white gl-border-1 gl-border-gray-200 gl-my-2 gl-p-4 gl-rounded-base gl-shadow-x0-y2-b4-s0 gl-top-full"
+ >
+ <gl-daterange-picker
+ start-opened
+ :default-start-date="defaultStartDate"
+ @input="selectValue($event, submitValue)"
+ />
+ </div>
+ </template>
+
+ <template #suggestions>
+ <div v-if="!datePickerShown">
+ <gl-filtered-search-suggestion
+ v-for="token in suggestions"
+ :key="token.value"
+ :value="token.value"
+ >
+ {{ token.text }}
+ </gl-filtered-search-suggestion>
+ </div>
+ </template>
+ </gl-filtered-search-token>
+</template>
diff --git a/app/assets/javascripts/vue_shared/components/gl_countdown.vue b/app/assets/javascripts/vue_shared/components/gl_countdown.vue
index 1769a283d8c..0e8ecc36f37 100644
--- a/app/assets/javascripts/vue_shared/components/gl_countdown.vue
+++ b/app/assets/javascripts/vue_shared/components/gl_countdown.vue
@@ -30,6 +30,11 @@ export default {
mounted() {
const updateRemainingTime = () => {
const remainingMilliseconds = calculateRemainingMilliseconds(this.endDateString);
+
+ if (remainingMilliseconds < 1) {
+ this.$emit('timer-expired');
+ }
+
this.remainingTime = formatTime(remainingMilliseconds);
};
diff --git a/app/assets/javascripts/vue_shared/components/groups_list/groups_list.vue b/app/assets/javascripts/vue_shared/components/groups_list/groups_list.vue
index a375a167c68..e84a810c0b0 100644
--- a/app/assets/javascripts/vue_shared/components/groups_list/groups_list.vue
+++ b/app/assets/javascripts/vue_shared/components/groups_list/groups_list.vue
@@ -13,6 +13,11 @@ export default {
required: false,
default: false,
},
+ listItemClass: {
+ type: [String, Array, Object],
+ required: false,
+ default: '',
+ },
},
};
</script>
@@ -24,6 +29,7 @@ export default {
:key="group.id"
:group="group"
:show-group-icon="showGroupIcon"
+ :class="listItemClass"
@delete="$emit('delete', $event)"
/>
</ul>
diff --git a/app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue b/app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue
index ca1e7400f2d..ace3846723c 100644
--- a/app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue
+++ b/app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue
@@ -1,10 +1,9 @@
<script>
-import { GlAvatarLabeled, GlIcon, GlTooltipDirective, GlTruncateText } from '@gitlab/ui';
+import { GlAvatarLabeled, GlIcon, GlTooltipDirective, GlTruncateText, GlBadge } from '@gitlab/ui';
import uniqueId from 'lodash/uniqueId';
import { VISIBILITY_TYPE_ICON, GROUP_VISIBILITY_TYPE } from '~/visibility_level/constants';
import { ACCESS_LEVEL_LABELS } from '~/access_level/constants';
-import UserAccessRoleBadge from '~/vue_shared/components/user_access_role_badge.vue';
import { __ } from '~/locale';
import { numberToMetricPrefix } from '~/lib/utils/number_utils';
import SafeHtml from '~/vue_shared/directives/safe_html';
@@ -20,15 +19,12 @@ export default {
showMore: __('Show more'),
showLess: __('Show less'),
},
- avatarSize: { default: 32, md: 48 },
- safeHtmlConfig: {
- ADD_TAGS: ['gl-emoji'],
- },
+ truncateTextToggleButtonProps: { class: 'gl-font-sm!' },
components: {
GlAvatarLabeled,
GlIcon,
- UserAccessRoleBadge,
GlTruncateText,
+ GlBadge,
ListActions,
DangerConfirmModal,
},
@@ -76,7 +72,7 @@ export default {
return this.group.parent ? 'subgroup' : 'group';
},
statsPadding() {
- return this.showGroupIcon ? 'gl-pl-11' : 'gl-pl-8';
+ return this.showGroupIcon ? 'gl-pl-12' : 'gl-pl-10';
},
descendantGroupsCount() {
return numberToMetricPrefix(this.group.descendantGroupsCount);
@@ -113,21 +109,22 @@ export default {
</script>
<template>
- <li class="groups-list-item gl-py-5 gl-border-b gl-display-flex gl-align-items-flex-start">
- <div class="gl-md-display-flex gl-align-items-center gl-flex-grow-1">
+ <li class="groups-list-item gl-py-5 gl-border-b gl-display-flex">
+ <div class="gl-md-display-flex gl-flex-grow-1">
<div class="gl-display-flex gl-flex-grow-1">
- <gl-icon
+ <div
v-if="showGroupIcon"
- class="gl-mr-3 gl-mt-3 gl-md-mt-5 gl-flex-shrink-0 gl-text-secondary"
- :name="groupIconName"
- />
+ class="gl-display-flex gl-align-items-center gl-flex-shrink-0 gl-h-9 gl-mr-3"
+ >
+ <gl-icon class="gl-text-secondary" :name="groupIconName" />
+ </div>
<gl-avatar-labeled
:entity-id="group.id"
:entity-name="group.fullName"
:label="group.fullName"
:label-link="group.webUrl"
shape="rect"
- :size="$options.avatarSize"
+ :size="48"
>
<template #meta>
<div class="gl-px-2">
@@ -141,9 +138,9 @@ export default {
/>
</div>
<div class="gl-px-2">
- <user-access-role-badge v-if="shouldShowAccessLevel">{{
+ <gl-badge v-if="shouldShowAccessLevel" size="sm" class="gl-display-block">{{
accessLevelLabel
- }}</user-access-role-badge>
+ }}</gl-badge>
</div>
</div>
</div>
@@ -154,57 +151,57 @@ export default {
:mobile-lines="2"
:show-more-text="$options.i18n.showMore"
:show-less-text="$options.i18n.showLess"
- class="gl-mt-2"
+ :toggle-button-props="$options.truncateTextToggleButtonProps"
+ class="gl-mt-2 gl-max-w-88"
>
<div
- v-safe-html:[$options.safeHtmlConfig]="group.descriptionHtml"
- class="gl-font-sm md"
+ v-safe-html="group.descriptionHtml"
+ class="gl-font-sm gl-text-secondary md"
data-testid="group-description"
></div>
</gl-truncate-text>
</gl-avatar-labeled>
</div>
<div
- class="gl-md-display-flex gl-flex-direction-column gl-align-items-flex-end gl-flex-shrink-0 gl-mt-3 gl-md-pl-0 gl-md-mt-0 gl-md-ml-3"
+ class="gl-display-flex gl-align-items-center gl-gap-x-3 gl-flex-shrink-0 gl-mt-3 gl-md-pl-0 gl-md-mt-0 gl-md-ml-3 gl-md-h-9"
:class="statsPadding"
>
- <div class="gl-display-flex gl-align-items-center gl-gap-x-3">
- <div
- v-gl-tooltip="$options.i18n.subgroups"
- :aria-label="$options.i18n.subgroups"
- class="gl-text-secondary"
- data-testid="subgroups-count"
- >
- <gl-icon name="subgroup" />
- <span>{{ descendantGroupsCount }}</span>
- </div>
- <div
- v-gl-tooltip="$options.i18n.projects"
- :aria-label="$options.i18n.projects"
- class="gl-text-secondary"
- data-testid="projects-count"
- >
- <gl-icon name="project" />
- <span>{{ projectsCount }}</span>
- </div>
- <div
- v-gl-tooltip="$options.i18n.directMembers"
- :aria-label="$options.i18n.directMembers"
- class="gl-text-secondary"
- data-testid="members-count"
- >
- <gl-icon name="users" />
- <span>{{ groupMembersCount }}</span>
- </div>
+ <div
+ v-gl-tooltip="$options.i18n.subgroups"
+ :aria-label="$options.i18n.subgroups"
+ class="gl-text-secondary"
+ data-testid="subgroups-count"
+ >
+ <gl-icon name="subgroup" />
+ <span>{{ descendantGroupsCount }}</span>
+ </div>
+ <div
+ v-gl-tooltip="$options.i18n.projects"
+ :aria-label="$options.i18n.projects"
+ class="gl-text-secondary"
+ data-testid="projects-count"
+ >
+ <gl-icon name="project" />
+ <span>{{ projectsCount }}</span>
+ </div>
+ <div
+ v-gl-tooltip="$options.i18n.directMembers"
+ :aria-label="$options.i18n.directMembers"
+ class="gl-text-secondary"
+ data-testid="members-count"
+ >
+ <gl-icon name="users" />
+ <span>{{ groupMembersCount }}</span>
</div>
</div>
</div>
- <list-actions
- v-if="hasActions"
- class="gl-ml-3 gl-md-align-self-center"
- :actions="actions"
- :available-actions="group.availableActions"
- />
+ <div class="gl-display-flex gl-align-items-center gl-h-9 gl-ml-3">
+ <list-actions
+ v-if="hasActions"
+ :actions="actions"
+ :available-actions="group.availableActions"
+ />
+ </div>
<danger-confirm-modal
v-if="hasActionDelete"
diff --git a/app/assets/javascripts/vue_shared/components/help_page_link/help_page_link.stories.js b/app/assets/javascripts/vue_shared/components/help_page_link/help_page_link.stories.js
new file mode 100644
index 00000000000..0576e9796fc
--- /dev/null
+++ b/app/assets/javascripts/vue_shared/components/help_page_link/help_page_link.stories.js
@@ -0,0 +1,35 @@
+import HelpPageLink from './help_page_link.vue';
+
+export default {
+ component: HelpPageLink,
+ title: 'vue_shared/help_page_link',
+};
+
+const Template = (args, { argTypes }) => ({
+ components: { HelpPageLink },
+ props: Object.keys(argTypes),
+ template: '<help-page-link v-bind="$props">link</help-page-link>',
+});
+
+export const Default = Template.bind({});
+Default.args = {
+ href: 'user/usage_quotas',
+};
+
+export const LinkWithAnAnchor = Template.bind({});
+LinkWithAnAnchor.args = {
+ ...Default.args,
+ anchor: 'namespace-storage-limit',
+};
+
+export const LinkWithAnchorInPath = Template.bind({});
+LinkWithAnchorInPath.args = {
+ ...Default.args,
+ href: 'user/usage_quotas#namespace-storage-limit',
+};
+
+export const CustomAttributes = Template.bind({});
+CustomAttributes.args = {
+ ...Default.args,
+ target: '_blank',
+};
diff --git a/app/assets/javascripts/vue_shared/components/help_page_link/help_page_link.vue b/app/assets/javascripts/vue_shared/components/help_page_link/help_page_link.vue
new file mode 100644
index 00000000000..11b269855ad
--- /dev/null
+++ b/app/assets/javascripts/vue_shared/components/help_page_link/help_page_link.vue
@@ -0,0 +1,44 @@
+<script>
+import { GlLink } from '@gitlab/ui';
+import { helpPagePath } from '~/helpers/help_page_helper';
+
+/**
+ * Component to link to GitLab docs.
+ *
+ * @example
+ * <help-page-link href="user/usage_quotas">
+ * Usage Quotas help.
+ * <help-page-link>
+ */
+export default {
+ name: 'HelpPageLink',
+ components: {
+ GlLink,
+ },
+ props: {
+ href: {
+ type: String,
+ required: true,
+ },
+ anchor: {
+ type: String,
+ required: false,
+ default: null,
+ },
+ },
+ computed: {
+ compiledHref() {
+ return helpPagePath(this.href, { anchor: this.anchor });
+ },
+ attributes() {
+ const { href, anchor, ...attrs } = this.$attrs;
+ return attrs;
+ },
+ },
+};
+</script>
+<template>
+ <gl-link v-bind="attributes" :href="compiledHref" v-on="$listeners">
+ <slot></slot>
+ </gl-link>
+</template>
diff --git a/app/assets/javascripts/vue_shared/components/markdown/header.vue b/app/assets/javascripts/vue_shared/components/markdown/header.vue
index cffd8471d18..525f684df86 100644
--- a/app/assets/javascripts/vue_shared/components/markdown/header.vue
+++ b/app/assets/javascripts/vue_shared/components/markdown/header.vue
@@ -382,6 +382,7 @@ export default {
@click="handleQuote"
/>
<toolbar-button
+ v-if="!restrictedToolBarItems.includes('code')"
v-show="!previewMarkdown"
tag="`"
tag-block="```"
diff --git a/app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue b/app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue
index 73c030b23dc..8fedc816502 100644
--- a/app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue
+++ b/app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue
@@ -55,7 +55,7 @@ export default {
uploadsPath: {
type: String,
required: false,
- default: () => window.uploads_path,
+ default: () => window.uploads_path || '',
},
enableContentEditor: {
type: Boolean,
@@ -190,9 +190,9 @@ export default {
renderMarkdown(markdown) {
const url = setUrlParams(
{ render_quick_actions: this.supportsQuickActions },
- joinPaths(window.location.origin, gon.relative_url_root, this.renderMarkdownPath),
+ joinPaths(window.location.origin, this.renderMarkdownPath),
);
- return axios.post(url, { text: markdown }).then(({ data }) => data.body);
+ return axios.post(url, { text: markdown }).then(({ data }) => data.body || data.html);
},
onEditingModeChange(editingMode) {
this.editingMode = editingMode;
diff --git a/app/assets/javascripts/vue_shared/components/notes/system_note.vue b/app/assets/javascripts/vue_shared/components/notes/system_note.vue
index 6a5884e4857..8f35fbdff6e 100644
--- a/app/assets/javascripts/vue_shared/components/notes/system_note.vue
+++ b/app/assets/javascripts/vue_shared/components/notes/system_note.vue
@@ -160,13 +160,12 @@ export default {
v-if="canSeeDescriptionVersion || note.outdated_line_change_path"
#extra-controls
>
- &middot;
<gl-button
v-if="canSeeDescriptionVersion"
variant="link"
:icon="descriptionVersionToggleIcon"
data-testid="compare-btn"
- class="gl-vertical-align-text-bottom gl-font-sm!"
+ class="gl-vertical-align-text-bottom gl-font-sm! gl-ml-3"
@click="toggleDescriptionVersion"
>{{ __('Compare with previous version') }}</gl-button
>
@@ -190,8 +189,11 @@ export default {
class="note-text md"
></div>
<div v-if="hasMoreCommits" class="flex-list">
- <div class="system-note-commit-list-toggler flex-row" @click="expanded = !expanded">
- <gl-icon :name="toggleIcon" :size="8" class="gl-mr-2" />
+ <div
+ class="system-note-commit-list-toggler flex-row gl-pl-4 gl-pt-3"
+ @click="expanded = !expanded"
+ >
+ <gl-icon :name="toggleIcon" :size="12" class="gl-mr-2" />
<span>{{ __('Toggle commit list') }}</span>
</div>
</div>
diff --git a/app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue b/app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue
index 3a4da54c84c..d06024638fa 100644
--- a/app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue
+++ b/app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue
@@ -35,6 +35,11 @@ export default {
required: false,
default: false,
},
+ listItemClass: {
+ type: [String, Array, Object],
+ required: false,
+ default: '',
+ },
},
};
</script>
@@ -46,6 +51,7 @@ export default {
:key="project.id"
:project="project"
:show-project-icon="showProjectIcon"
+ :class="listItemClass"
@delete="$emit('delete', $event)"
/>
</ul>
diff --git a/app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue b/app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue
index ce75e305473..3a077d09e40 100644
--- a/app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue
+++ b/app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue
@@ -7,13 +7,13 @@ import {
GlTooltipDirective,
GlPopover,
GlSprintf,
+ GlTruncateText,
} from '@gitlab/ui';
import uniqueId from 'lodash/uniqueId';
import { VISIBILITY_TYPE_ICON, PROJECT_VISIBILITY_TYPE } from '~/visibility_level/constants';
import { ACCESS_LEVEL_LABELS } from '~/access_level/constants';
import { FEATURABLE_ENABLED } from '~/featurable/constants';
-import UserAccessRoleBadge from '~/vue_shared/components/user_access_role_badge.vue';
import { __ } from '~/locale';
import { numberToMetricPrefix } from '~/lib/utils/number_utils';
import { truncate } from '~/lib/utils/text_utility';
@@ -37,19 +37,18 @@ export default {
moreTopics: __('More topics'),
updated: __('Updated'),
actions: __('Actions'),
+ showMore: __('Show more'),
+ showLess: __('Show less'),
},
- avatarSize: { default: 32, md: 48 },
- safeHtmlConfig: {
- ADD_TAGS: ['gl-emoji'],
- },
+ truncateTextToggleButtonProps: { class: 'gl-font-sm!' },
components: {
GlAvatarLabeled,
GlIcon,
- UserAccessRoleBadge,
GlLink,
GlBadge,
GlPopover,
GlSprintf,
+ GlTruncateText,
TimeAgoTooltip,
DeleteModal,
ListActions,
@@ -203,21 +202,22 @@ export default {
</script>
<template>
- <li class="projects-list-item gl-py-5 gl-border-b gl-display-flex gl-align-items-flex-start">
- <div class="gl-md-display-flex gl-align-items-center gl-flex-grow-1">
+ <li class="projects-list-item gl-py-5 gl-border-b gl-display-flex">
+ <div class="gl-md-display-flex gl-flex-grow-1">
<div class="gl-display-flex gl-flex-grow-1">
- <gl-icon
+ <div
v-if="showProjectIcon"
- class="gl-mr-3 gl-mt-3 gl-md-mt-5 gl-flex-shrink-0 gl-text-secondary"
- name="project"
- />
+ class="gl-display-flex gl-align-items-center gl-flex-shrink-0 gl-h-9 gl-mr-3"
+ >
+ <gl-icon class="gl-text-secondary" name="project" />
+ </div>
<gl-avatar-labeled
:entity-id="project.id"
:entity-name="project.name"
:label="project.name"
:label-link="project.webUrl"
shape="rect"
- :size="$options.avatarSize"
+ :size="48"
>
<template #meta>
<div class="gl-px-2">
@@ -231,33 +231,46 @@ export default {
/>
</div>
<div class="gl-px-2">
- <user-access-role-badge v-if="shouldShowAccessLevel">{{
+ <gl-badge v-if="shouldShowAccessLevel" size="sm" class="gl-display-block">{{
accessLevelLabel
- }}</user-access-role-badge>
+ }}</gl-badge>
</div>
</div>
</div>
</template>
- <div
+ <gl-truncate-text
v-if="project.descriptionHtml"
- v-safe-html:[$options.safeHtmlConfig]="project.descriptionHtml"
- class="gl-font-sm gl-overflow-hidden gl-line-height-20 description md"
- data-testid="project-description"
- ></div>
+ :lines="2"
+ :mobile-lines="2"
+ :show-more-text="$options.i18n.showMore"
+ :show-less-text="$options.i18n.showLess"
+ :toggle-button-props="$options.truncateTextToggleButtonProps"
+ class="gl-mt-2 gl-max-w-88"
+ >
+ <div
+ v-safe-html="project.descriptionHtml"
+ class="gl-font-sm gl-text-secondary md"
+ data-testid="project-description"
+ ></div>
+ </gl-truncate-text>
<div v-if="hasTopics" class="gl-mt-3" data-testid="project-topics">
<div
class="gl-w-full gl-display-inline-flex gl-flex-wrap gl-font-base gl-font-weight-normal gl-align-items-center gl-mx-n2 gl-my-n2"
>
- <span class="gl-p-2 gl-text-secondary">{{ $options.i18n.topics }}:</span>
+ <span class="gl-p-2 gl-font-sm gl-text-secondary">{{ $options.i18n.topics }}:</span>
<div v-for="topic in visibleTopics" :key="topic" class="gl-p-2">
- <gl-badge v-gl-tooltip="topicTooltipTitle(topic)" :href="topicPath(topic)">
+ <gl-badge
+ v-gl-tooltip="topicTooltipTitle(topic)"
+ size="sm"
+ :href="topicPath(topic)"
+ >
{{ topicTitle(topic) }}
</gl-badge>
</div>
<template v-if="popoverTopics.length">
<div
:id="topicsPopoverTarget"
- class="gl-p-2 gl-text-secondary"
+ class="gl-p-2 gl-font-sm gl-text-secondary"
role="button"
tabindex="0"
>
@@ -272,7 +285,11 @@ export default {
:key="topic"
class="gl-p-2 gl-display-inline-block"
>
- <gl-badge v-gl-tooltip="topicTooltipTitle(topic)" :href="topicPath(topic)">
+ <gl-badge
+ v-gl-tooltip="topicTooltipTitle(topic)"
+ size="sm"
+ :href="topicPath(topic)"
+ >
{{ topicTitle(topic) }}
</gl-badge>
</div>
@@ -285,9 +302,9 @@ export default {
</div>
<div
class="gl-md-display-flex gl-flex-direction-column gl-align-items-flex-end gl-flex-shrink-0 gl-mt-3 gl-md-pl-0 gl-md-mt-0"
- :class="showProjectIcon ? 'gl-pl-11' : 'gl-pl-8'"
+ :class="showProjectIcon ? 'gl-pl-12' : 'gl-pl-10'"
>
- <div class="gl-display-flex gl-align-items-center gl-gap-x-3">
+ <div class="gl-display-flex gl-align-items-center gl-gap-x-3 gl-md-h-9">
<gl-badge v-if="project.archived" variant="warning">{{
$options.i18n.archived
}}</gl-badge>
@@ -323,19 +340,20 @@ export default {
</div>
<div
v-if="project.updatedAt"
- class="gl-font-sm gl-white-space-nowrap gl-text-secondary gl-mt-3"
+ class="gl-font-sm gl-white-space-nowrap gl-text-secondary gl-mt-3 gl-md-mt-0"
>
<span>{{ $options.i18n.updated }}</span>
<time-ago-tooltip :time="project.updatedAt" />
</div>
</div>
</div>
- <list-actions
- v-if="hasActions"
- class="gl-ml-3 gl-md-align-self-center"
- :actions="actions"
- :available-actions="project.availableActions"
- />
+ <div class="gl-display-flex gl-align-items-center gl-h-9 gl-ml-3">
+ <list-actions
+ v-if="hasActions"
+ :actions="actions"
+ :available-actions="project.availableActions"
+ />
+ </div>
<delete-modal
v-if="hasActionDelete"
diff --git a/app/assets/javascripts/vue_shared/components/runner_instructions/runner_instructions.vue b/app/assets/javascripts/vue_shared/components/runner_instructions/runner_instructions.vue
deleted file mode 100644
index 06852f511bf..00000000000
--- a/app/assets/javascripts/vue_shared/components/runner_instructions/runner_instructions.vue
+++ /dev/null
@@ -1,27 +0,0 @@
-<script>
-import { GlButton, GlModalDirective } from '@gitlab/ui';
-import { s__ } from '~/locale';
-import RunnerInstructionsModal from './runner_instructions_modal.vue';
-
-export default {
- components: {
- GlButton,
- RunnerInstructionsModal,
- },
- directives: {
- GlModal: GlModalDirective,
- },
- modalId: 'runner-instructions-modal',
- i18n: {
- buttonText: s__('Runners|Show runner installation instructions'),
- },
-};
-</script>
-<template>
- <div>
- <gl-button v-gl-modal="$options.modalId" class="gl-mt-4" data-testid="show-modal-button">
- {{ $options.i18n.buttonText }}
- </gl-button>
- <runner-instructions-modal :modal-id="$options.modalId" />
- </div>
-</template>
diff --git a/app/assets/javascripts/vue_shared/components/segmented_control_button_group.vue b/app/assets/javascripts/vue_shared/components/segmented_control_button_group.vue
index e0e8200580a..fff70d003b7 100644
--- a/app/assets/javascripts/vue_shared/components/segmented_control_button_group.vue
+++ b/app/assets/javascripts/vue_shared/components/segmented_control_button_group.vue
@@ -43,6 +43,7 @@ export default {
:key="opt.value"
:disabled="!!opt.disabled"
:selected="value === opt.value"
+ v-bind="opt.props"
@click="$emit('input', opt.value)"
>
<slot name="button-content" v-bind="opt">{{ opt.text }}</slot>
diff --git a/app/assets/javascripts/vue_shared/components/source_viewer/queries/blame_data.query.graphql b/app/assets/javascripts/vue_shared/components/source_viewer/queries/blame_data.query.graphql
index c497224cde3..0067a0ca0d9 100644
--- a/app/assets/javascripts/vue_shared/components/source_viewer/queries/blame_data.query.graphql
+++ b/app/assets/javascripts/vue_shared/components/source_viewer/queries/blame_data.query.graphql
@@ -1,10 +1,16 @@
#import "~/graphql_shared/fragments/author.fragment.graphql"
-query getBlameData($fullPath: ID!, $filePath: String!, $fromLine: Int, $toLine: Int) {
+query getBlameData(
+ $fullPath: ID!
+ $filePath: String!
+ $fromLine: Int
+ $toLine: Int
+ $ref: String!
+) {
project(fullPath: $fullPath) {
id
repository {
- blobs(paths: [$filePath]) {
+ blobs(ref: $ref, paths: [$filePath]) {
nodes {
id
blame(fromLine: $fromLine, toLine: $toLine) {
diff --git a/app/assets/javascripts/vue_shared/components/source_viewer/source_viewer_new.vue b/app/assets/javascripts/vue_shared/components/source_viewer/source_viewer_new.vue
index bc46f11ab2d..e62f38d9ca3 100644
--- a/app/assets/javascripts/vue_shared/components/source_viewer/source_viewer_new.vue
+++ b/app/assets/javascripts/vue_shared/components/source_viewer/source_viewer_new.vue
@@ -118,6 +118,7 @@ export default {
const { data } = await this.$apollo.query({
query: blameDataQuery,
variables: {
+ ref: this.currentRef,
fullPath: this.projectPath,
filePath: this.blob.path,
fromLine: chunk.startingFrom + 1,
diff --git a/app/assets/javascripts/vue_shared/components/timezone_dropdown/timezone_dropdown.vue b/app/assets/javascripts/vue_shared/components/timezone_dropdown/timezone_dropdown.vue
index 6764ad4ce73..d4d241b12ec 100644
--- a/app/assets/javascripts/vue_shared/components/timezone_dropdown/timezone_dropdown.vue
+++ b/app/assets/javascripts/vue_shared/components/timezone_dropdown/timezone_dropdown.vue
@@ -110,6 +110,7 @@ export default {
:no-results-text="$options.translations.noResultsText"
:selected="tzValue"
block
+ fluid-width
searchable
@search="setSearchTerm"
@select="selectTimezone"
diff --git a/app/assets/javascripts/vue_shared/components/upload_dropzone/avatar_upload_dropzone.vue b/app/assets/javascripts/vue_shared/components/upload_dropzone/avatar_upload_dropzone.vue
new file mode 100644
index 00000000000..944a48df279
--- /dev/null
+++ b/app/assets/javascripts/vue_shared/components/upload_dropzone/avatar_upload_dropzone.vue
@@ -0,0 +1,112 @@
+<script>
+import { GlButton, GlAvatar, GlSprintf, GlTruncate } from '@gitlab/ui';
+import { __ } from '~/locale';
+import UploadDropzone from '~/vue_shared/components/upload_dropzone/upload_dropzone.vue';
+import { AVATAR_SHAPE_OPTION_RECT } from '~/vue_shared/constants';
+
+export default {
+ i18n: {
+ uploadText: __('Drop or %{linkStart}upload%{linkEnd} an avatar.'),
+ maxFileSize: __('Max file size is 200 KiB.'),
+ removeAvatar: __('Remove avatar'),
+ },
+ AVATAR_SHAPE_OPTION_RECT,
+ components: { GlButton, GlAvatar, GlSprintf, GlTruncate, UploadDropzone },
+ props: {
+ entity: {
+ type: Object,
+ required: false,
+ default: () => ({}),
+ },
+ value: {
+ type: [String, File],
+ required: false,
+ default: '',
+ },
+ label: {
+ type: String,
+ required: true,
+ },
+ },
+ data() {
+ return {
+ avatarObjectUrl: null,
+ };
+ },
+ computed: {
+ avatarSrc() {
+ if (this.avatarObjectUrl) {
+ return this.avatarObjectUrl;
+ }
+
+ if (this.isValueAFile) {
+ return null;
+ }
+
+ return this.value;
+ },
+ isValueAFile() {
+ return this.value instanceof File;
+ },
+ },
+ watch: {
+ value(newValue) {
+ this.revokeAvatarObjectUrl();
+
+ if (newValue instanceof File) {
+ this.avatarObjectUrl = URL.createObjectURL(newValue);
+ } else {
+ this.avatarObjectUrl = null;
+ }
+ },
+ },
+ beforeDestroy() {
+ this.revokeAvatarObjectUrl();
+ },
+ methods: {
+ revokeAvatarObjectUrl() {
+ if (this.avatarObjectUrl === null) {
+ return;
+ }
+
+ URL.revokeObjectURL(this.avatarObjectUrl);
+ },
+ },
+};
+</script>
+
+<template>
+ <div class="gl-display-flex gl-column-gap-5">
+ <gl-avatar
+ :entity-id="entity.id || null"
+ :entity-name="entity.name || 'organization'"
+ :shape="$options.AVATAR_SHAPE_OPTION_RECT"
+ :size="96"
+ :src="avatarSrc"
+ />
+ <div class="gl-min-w-0">
+ <p class="gl-font-weight-bold gl-line-height-1 gl-mb-3">
+ {{ label }}
+ </p>
+ <div v-if="value" class="gl-display-flex gl-align-items-center gl-column-gap-3">
+ <gl-button @click="$emit('input', null)">{{ $options.i18n.removeAvatar }}</gl-button>
+ <gl-truncate
+ v-if="isValueAFile"
+ class="gl-text-secondary gl-max-w-48 gl-min-w-0"
+ position="middle"
+ :text="value.name"
+ />
+ </div>
+ <upload-dropzone v-else single-file-selection @change="$emit('input', $event)">
+ <template #upload-text>
+ <gl-sprintf :message="$options.i18n.uploadText">
+ <template #link="{ content }">
+ <span class="gl-link gl-hover-text-decoration-underline">{{ content }}</span>
+ </template>
+ </gl-sprintf>
+ </template>
+ </upload-dropzone>
+ <p class="gl-mb-0 gl-mt-3 gl-text-secondary">{{ $options.i18n.maxFileSize }}</p>
+ </div>
+ </div>
+</template>
diff --git a/app/assets/javascripts/vue_shared/components/user_select/user_select.vue b/app/assets/javascripts/vue_shared/components/user_select/user_select.vue
index 863c43b0e55..a113a5ccc66 100644
--- a/app/assets/javascripts/vue_shared/components/user_select/user_select.vue
+++ b/app/assets/javascripts/vue_shared/components/user_select/user_select.vue
@@ -252,6 +252,7 @@ export default {
selected.push(user);
this.$emit('input', selected);
}
+ this.clearAndFocusSearch();
},
unassign() {
this.$emit('input', []);
@@ -260,6 +261,7 @@ export default {
unselect(name) {
const selected = this.value.filter((user) => user.username !== name);
this.$emit('input', selected);
+ this.clearAndFocusSearch();
},
focusSearch() {
this.$refs.search.focusInput();
@@ -296,6 +298,10 @@ export default {
}
return user.canMerge ? '' : __('Cannot merge');
},
+ clearAndFocusSearch() {
+ this.search = '';
+ this.focusSearch();
+ },
},
};
</script>
diff --git a/app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue b/app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue
index 5d86f90880d..5f197066cb5 100644
--- a/app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue
+++ b/app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue
@@ -1,5 +1,6 @@
<script>
import { GlAvatarLabeled, GlBadge, GlIcon, GlTooltipDirective } from '@gitlab/ui';
+import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { truncate } from '~/lib/utils/text_utility';
import { USER_AVATAR_SIZE, LENGTH_OF_USER_NOTE_TOOLTIP } from './constants';
@@ -12,6 +13,7 @@ export default {
GlBadge,
GlIcon,
},
+ mixins: [glFeatureFlagsMixin()],
props: {
user: {
type: Object,
@@ -65,7 +67,12 @@ export default {
<div v-if="user.note" class="gl-text-gray-500 gl-p-1">
<gl-icon v-gl-tooltip="userNoteShort" name="document" />
</div>
- <div v-for="(badge, idx) in user.badges" :key="idx" class="gl-p-1">
+ <div
+ v-for="(badge, idx) in user.badges"
+ :key="idx"
+ class="gl-p-1"
+ :class="{ 'gl-pb-0': glFeatures.simplifiedBadges }"
+ >
<gl-badge class="gl-display-flex!" size="sm" :variant="badge.variant">{{
badge.text
}}</gl-badge>
diff --git a/app/assets/javascripts/vue_shared/components/web_ide_link.vue b/app/assets/javascripts/vue_shared/components/web_ide_link.vue
index 3514a9c2d5d..1a3e5208508 100644
--- a/app/assets/javascripts/vue_shared/components/web_ide_link.vue
+++ b/app/assets/javascripts/vue_shared/components/web_ide_link.vue
@@ -11,6 +11,7 @@ import { s__, __ } from '~/locale';
import { visitUrl } from '~/lib/utils/url_utility';
import Tracking from '~/tracking';
import ConfirmForkModal from '~/vue_shared/components/web_ide/confirm_fork_modal.vue';
+import { GO_TO_PROJECT_WEBIDE } from '~/behaviors/shortcuts/keybindings';
import { KEY_EDIT, KEY_WEB_IDE, KEY_GITPOD, KEY_PIPELINE_EDITOR } from './constants';
export const i18n = {
@@ -197,6 +198,9 @@ export default {
...handleOptions,
};
},
+ webIdeActionShortcutKey() {
+ return GO_TO_PROJECT_WEBIDE.defaultKeys[0];
+ },
webIdeActionText() {
if (this.webIdeText) {
return this.webIdeText;
@@ -234,6 +238,7 @@ export default {
key: KEY_WEB_IDE,
text: this.webIdeActionText,
secondaryText: this.$options.i18n.webIdeText,
+ shortcut: this.webIdeActionShortcutKey,
tracking: {
action: TRACKING_ACTION_NAME,
label: 'web_ide',
@@ -357,9 +362,14 @@ export default {
>
<template #list-item>
<div class="gl-display-flex gl-flex-direction-column">
- <span data-testid="action-primary-text" class="gl-font-weight-bold gl-mb-2">{{
- action.text
- }}</span>
+ <span
+ class="gl-display-flex gl-justify-content-space-between gl-align-items-center gl-mb-2"
+ >
+ <span data-testid="action-primary-text" class="gl-font-weight-bold">{{
+ action.text
+ }}</span>
+ <kbd v-if="action.shortcut" class="flat">{{ action.shortcut }}</kbd>
+ </span>
<span data-testid="action-secondary-text" class="gl-font-sm gl-text-secondary">
{{ action.secondaryText }}
</span>
diff --git a/app/assets/javascripts/vue_shared/issuable/list/components/issuable_item.vue b/app/assets/javascripts/vue_shared/issuable/list/components/issuable_item.vue
index bb36df0a778..de2f7887237 100644
--- a/app/assets/javascripts/vue_shared/issuable/list/components/issuable_item.vue
+++ b/app/assets/javascripts/vue_shared/issuable/list/components/issuable_item.vue
@@ -1,19 +1,27 @@
<script>
-import { GlLink, GlIcon, GlLabel, GlFormCheckbox, GlSprintf, GlTooltipDirective } from '@gitlab/ui';
-
+import {
+ GlBadge,
+ GlLink,
+ GlIcon,
+ GlLabel,
+ GlFormCheckbox,
+ GlSprintf,
+ GlTooltipDirective,
+} from '@gitlab/ui';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
-import { STATUS_CLOSED } from '~/issues/constants';
+import { STATUS_OPEN, STATUS_CLOSED } from '~/issues/constants';
import { isScopedLabel } from '~/lib/utils/common_utils';
import { isExternal, setUrlFragment } from '~/lib/utils/url_utility';
import { __, n__, sprintf } from '~/locale';
import IssuableAssignees from '~/issuable/components/issue_assignees.vue';
import timeagoMixin from '~/vue_shared/mixins/timeago';
import WorkItemTypeIcon from '~/work_items/components/work_item_type_icon.vue';
-import { STATE_CLOSED } from '~/work_items/constants';
+import { STATE_OPEN, STATE_CLOSED } from '~/work_items/constants';
import { isAssigneesWidget, isLabelsWidget } from '~/work_items/utils';
export default {
components: {
+ GlBadge,
GlLink,
GlIcon,
GlLabel,
@@ -120,8 +128,11 @@ export default {
createdAt() {
return this.timeFormatted(this.issuable.createdAt);
},
+ isNotOpen() {
+ return ![STATUS_OPEN, STATE_OPEN].includes(this.issuable.state);
+ },
isClosed() {
- return this.issuable.state === STATUS_CLOSED || this.issuable.state === STATE_CLOSED;
+ return [STATUS_CLOSED, STATE_CLOSED].includes(this.issuable.state);
},
timestamp() {
return this.isClosed && this.issuable.closedAt
@@ -351,8 +362,12 @@ export default {
</div>
<div class="issuable-meta">
<ul v-if="showIssuableMeta" class="controls">
- <li v-if="hasSlotContents('status')">
- <slot name="status"></slot>
+ <!-- eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots -->
+ <li v-if="$slots.status" data-testid="issuable-status">
+ <gl-badge v-if="isNotOpen" size="sm" variant="info">
+ <slot name="status"></slot>
+ </gl-badge>
+ <slot v-else name="status"></slot>
</li>
<li v-if="assignees.length">
<issuable-assignees
diff --git a/app/assets/javascripts/vue_shared/issuable/list/components/issuable_list_root.vue b/app/assets/javascripts/vue_shared/issuable/list/components/issuable_list_root.vue
index ad908a674d3..dd203283b3b 100644
--- a/app/assets/javascripts/vue_shared/issuable/list/components/issuable_list_root.vue
+++ b/app/assets/javascripts/vue_shared/issuable/list/components/issuable_list_root.vue
@@ -406,9 +406,7 @@ export default {
<slot name="timeframe" :issuable="issuable"></slot>
</template>
<template #status>
- <gl-badge size="sm" variant="info">
- <slot name="status" :issuable="issuable"></slot>
- </gl-badge>
+ <slot name="status" :issuable="issuable"></slot>
</template>
<template #statistics>
<slot name="statistics" :issuable="issuable"></slot>
diff --git a/app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue b/app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue
index 1e6bd9ff1ac..9ede327b2f1 100644
--- a/app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue
+++ b/app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue
@@ -235,7 +235,9 @@ export default {
:work-item-id="workItemId"
:work-item-state="workItemState"
:work-item-type="workItemType"
+ :has-comment="!!commentText.length"
can-update
+ @submit-comment="$emit('submitForm', { commentText, isNoteInternal })"
@error="$emit('error', $event)"
/>
<gl-button
diff --git a/app/assets/javascripts/work_items/components/shared/work_item_link_child_contents.vue b/app/assets/javascripts/work_items/components/shared/work_item_link_child_contents.vue
index 503328f7b03..78afb9a04ef 100644
--- a/app/assets/javascripts/work_items/components/shared/work_item_link_child_contents.vue
+++ b/app/assets/javascripts/work_items/components/shared/work_item_link_child_contents.vue
@@ -131,7 +131,7 @@ export default {
class="item-body work-item-link-child gl-relative gl-display-flex gl-flex-grow-1 gl-overflow-break-word gl-min-w-0 gl-pl-3 gl-pr-2 gl-py-2 gl-mx-n2 gl-rounded-base gl-gap-3"
data-testid="links-child"
>
- <div class="item-contents gl-display-flex gl-flex-grow-1 gl-flex-wrap gl-min-w-0">
+ <div class="gl-display-flex gl-flex-grow-1 gl-flex-wrap gl-min-w-0">
<div
class="gl-display-flex gl-flex-grow-1 gl-flex-wrap flex-xl-nowrap gl-align-items-center gl-justify-content-space-between gl-gap-3 gl-min-w-0"
>
diff --git a/app/assets/javascripts/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue b/app/assets/javascripts/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue
new file mode 100644
index 00000000000..53149f62893
--- /dev/null
+++ b/app/assets/javascripts/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue
@@ -0,0 +1,194 @@
+<script>
+import { GlButton, GlForm, GlLoadingIcon, GlCollapsibleListbox } from '@gitlab/ui';
+import { isEmpty } from 'lodash';
+
+import { s__, __ } from '~/locale';
+
+export default {
+ i18n: {
+ none: s__('WorkItem|None'),
+ noMatchingResults: s__('WorkItem|No matching results'),
+ editButtonLabel: __('Edit'),
+ applyButtonLabel: __('Apply'),
+ resetButtonText: __('Clear'),
+ },
+ components: {
+ GlButton,
+ GlLoadingIcon,
+ GlForm,
+ GlCollapsibleListbox,
+ },
+ props: {
+ canUpdate: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ dropdownLabel: {
+ type: String,
+ required: true,
+ },
+ dropdownName: {
+ type: String,
+ required: true,
+ },
+ listItems: {
+ type: Array,
+ required: false,
+ default: () => [],
+ },
+ itemValue: {
+ type: Object,
+ required: false,
+ default: null,
+ },
+ loading: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ updateInProgress: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ resetButtonLabel: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ headerText: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ toggleDropdownText: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ },
+ data() {
+ return {
+ isEditing: false,
+ localSelectedItem: this.itemValue?.id,
+ };
+ },
+ computed: {
+ hasValue() {
+ return this.itemValue != null || !isEmpty(this.item);
+ },
+ listboxText() {
+ return (
+ this.listItems.find(({ value }) => this.localSelectedItem === value)?.text ||
+ this.itemValue?.title ||
+ this.$options.i18n.none
+ );
+ },
+ inputId() {
+ return `work-item-dropdown-listbox-value-${this.dropdownName}`;
+ },
+ toggleText() {
+ return this.toggleDropdownText || this.listboxText;
+ },
+ resetButton() {
+ return this.resetButtonLabel || this.$options.i18n.resetButtonText;
+ },
+ },
+ watch: {
+ itemValue: {
+ handler(newVal) {
+ if (!this.isEditing) {
+ this.localSelectedItem = newVal?.id;
+ }
+ },
+ },
+ },
+ methods: {
+ setSearchKey(value) {
+ this.$emit('searchStarted', value);
+ },
+ handleItemClick(item) {
+ this.localSelectedItem = item;
+ this.$emit('updateValue', item);
+ },
+ onListboxShown() {
+ this.$emit('dropdownShown');
+ },
+ onListboxHide() {
+ this.isEditing = false;
+ },
+ unassignValue() {
+ this.localSelectedItem = null;
+ this.isEditing = false;
+ this.$emit('updateValue', null);
+ },
+ },
+};
+</script>
+
+<template>
+ <div>
+ <div class="gl-display-flex gl-align-items-center gl-gap-3">
+ <!-- hide header when editing, since we then have a form label. Keep it reachable for screenreader nav -->
+ <h3 :class="{ 'gl-sr-only': isEditing }" class="gl-mb-0! gl-heading-scale-5">
+ {{ dropdownLabel }}
+ </h3>
+ <gl-loading-icon v-if="updateInProgress" />
+ <gl-button
+ v-if="canUpdate && !isEditing"
+ data-testid="edit-button"
+ category="tertiary"
+ size="small"
+ class="gl-ml-auto gl-mr-2"
+ :disabled="updateInProgress"
+ @click="isEditing = true"
+ >{{ $options.i18n.editButtonLabel }}</gl-button
+ >
+ </div>
+ <gl-form v-if="isEditing">
+ <div class="gl-display-flex gl-justify-content-space-between gl-align-items-center">
+ <label :for="inputId" class="gl-mb-0">{{ dropdownLabel }}</label>
+ <gl-button
+ data-testid="apply-button"
+ category="tertiary"
+ size="small"
+ class="gl-mr-2"
+ :disabled="updateInProgress"
+ @click="isEditing = false"
+ >{{ $options.i18n.applyButtonLabel }}</gl-button
+ >
+ </div>
+ <gl-collapsible-listbox
+ :id="inputId"
+ block
+ searchable
+ start-opened
+ is-check-centered
+ fluid-width
+ :searching="loading"
+ :header-text="headerText"
+ :toggle-text="toggleText"
+ :no-results-text="$options.i18n.noMatchingResults"
+ :items="listItems"
+ :selected="localSelectedItem"
+ :reset-button-label="resetButton"
+ @reset="unassignValue"
+ @search="setSearchKey"
+ @select="handleItemClick"
+ @shown="onListboxShown"
+ @hidden="onListboxHide"
+ >
+ <template #list-item="{ item }">
+ <slot name="list-item" :item="item">{{ item.text }}</slot>
+ </template>
+ </gl-collapsible-listbox>
+ </gl-form>
+ <slot v-else-if="hasValue" name="readonly">
+ {{ listboxText }}
+ </slot>
+ <div v-else class="gl-text-secondary">
+ {{ $options.i18n.none }}
+ </div>
+ </div>
+</template>
diff --git a/app/assets/javascripts/work_items/components/shared/work_item_token_input.vue b/app/assets/javascripts/work_items/components/shared/work_item_token_input.vue
index c122db6c902..719507d1341 100644
--- a/app/assets/javascripts/work_items/components/shared/work_item_token_input.vue
+++ b/app/assets/javascripts/work_items/components/shared/work_item_token_input.vue
@@ -1,21 +1,25 @@
<script>
import { GlTokenSelector, GlAlert } from '@gitlab/ui';
import { debounce } from 'lodash';
-
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import { isNumeric } from '~/lib/utils/number_utils';
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
import SafeHtml from '~/vue_shared/directives/safe_html';
+import { isSafeURL } from '~/lib/utils/url_utility';
+
import { highlighter } from 'ee_else_ce/gfm_auto_complete';
import groupWorkItemsQuery from '../../graphql/group_work_items.query.graphql';
import projectWorkItemsQuery from '../../graphql/project_work_items.query.graphql';
+import workItemsByReferencesQuery from '../../graphql/work_items_by_references.query.graphql';
import {
WORK_ITEMS_TYPE_MAP,
I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER,
I18N_WORK_ITEM_SEARCH_ERROR,
+ I18N_WORK_ITEM_NO_MATCHES_FOUND,
sprintfWorkItem,
} from '../../constants';
+import { isReference } from '../../utils';
export default {
components: {
@@ -55,41 +59,63 @@ export default {
},
},
apollo: {
- availableWorkItems: {
+ workspaceWorkItems: {
query() {
return this.isGroup ? groupWorkItemsQuery : projectWorkItemsQuery;
},
variables() {
- return {
- fullPath: this.fullPath,
- searchTerm: '',
- types: this.childrenType ? [this.childrenType] : [],
- isNumber: false,
- };
+ return this.queryVariables;
},
skip() {
- return !this.searchStarted;
+ return !this.searchStarted || this.isSearchingByReference;
},
update(data) {
return [
...this.filterItems(data.workspace.workItemsByIid?.nodes),
- ...this.filterItems(data.workspace.workItems.nodes),
+ ...this.filterItems(data.workspace.workItems?.nodes),
];
},
error() {
this.error = sprintfWorkItem(I18N_WORK_ITEM_SEARCH_ERROR, this.childrenTypeName);
},
},
+ workItemsByReference: {
+ query: workItemsByReferencesQuery,
+ variables() {
+ return {
+ contextNamespacePath: this.fullPath,
+ refs: [this.searchTerm],
+ };
+ },
+ skip() {
+ return !this.isSearchingByReference;
+ },
+ update(data) {
+ return data.workItemsByReference.nodes;
+ },
+ error() {
+ this.error = sprintfWorkItem(I18N_WORK_ITEM_SEARCH_ERROR, this.childrenTypeName);
+ },
+ },
},
data() {
return {
- availableWorkItems: [],
- query: '',
+ workspaceWorkItems: [],
+ searchTerm: '',
searchStarted: false,
error: '',
+ textInputAttrs: {
+ class: 'gl-min-w-fit-content!',
+ },
};
},
computed: {
+ availableWorkItems() {
+ return this.isSearchingByReference ? this.workItemsByReference : this.workspaceWorkItems;
+ },
+ isSearchingByReference() {
+ return isReference(this.searchTerm) || isSafeURL(this.searchTerm);
+ },
workItemsToAdd: {
get() {
return this.value;
@@ -99,10 +125,10 @@ export default {
},
},
isLoading() {
- return this.$apollo.queries.availableWorkItems.loading;
- },
- addInputPlaceholder() {
- return sprintfWorkItem(I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER, this.childrenTypeName);
+ return (
+ this.$apollo.queries.workspaceWorkItems.loading ||
+ this.$apollo.queries.workItemsByReference.loading
+ );
},
childrenTypeName() {
return WORK_ITEMS_TYPE_MAP[this.childrenType]?.name;
@@ -110,31 +136,25 @@ export default {
tokenSelectorContainerClass() {
return !this.areWorkItemsToAddValid ? 'gl-inset-border-1-red-500!' : '';
},
+ queryVariables() {
+ return {
+ fullPath: this.fullPath,
+ searchTerm: this.searchTerm,
+ types: this.childrenType ? [this.childrenType] : [],
+ in: this.searchTerm ? 'TITLE' : undefined,
+ iid: isNumeric(this.searchTerm) ? this.searchTerm : null,
+ searchByIid: isNumeric(this.searchTerm),
+ searchByText: true,
+ };
+ },
},
created() {
this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);
},
methods: {
getIdFromGraphQLId,
- setSearchKey(value) {
- this.query = value;
-
- // Query parameters for searching by text
- const variables = {
- searchTerm: value,
- in: value ? 'TITLE' : undefined,
- iid: null,
- isNumber: false,
- };
-
- // Check if it is a number, add iid as query parameter
- if (isNumeric(value) && value) {
- variables.iid = value;
- variables.isNumber = true;
- }
-
- // Fetch combined results of search by iid and search by title.
- this.$apollo.queries.availableWorkItems.refetch(variables);
+ async setSearchKey(value) {
+ this.searchTerm = value;
},
handleFocus() {
this.searchStarted = true;
@@ -154,16 +174,16 @@ export default {
focusInputText() {
this.$nextTick(() => {
if (this.areWorkItemsToAddValid) {
- this.$refs.tokenSelector.$el.querySelector('input[type="text"]').focus();
+ this.$refs.tokenSelector.focusTextInput();
}
});
},
formatResults(input) {
- if (!this.query) {
+ if (!this.searchTerm) {
return input;
}
- return highlighter(`<span class="gl-text-black-normal">${input}</span>`, this.query);
+ return highlighter(`<span class="gl-text-black-normal">${input}</span>`, this.searchTerm);
},
unsetError() {
this.error = '';
@@ -176,6 +196,10 @@ export default {
);
},
},
+ i18n: {
+ noMatchesFoundMessage: I18N_WORK_ITEM_NO_MATCHES_FOUND,
+ addInputPlaceholder: I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER,
+ },
};
</script>
<template>
@@ -188,10 +212,11 @@ export default {
v-model="workItemsToAdd"
:dropdown-items="availableWorkItems"
:loading="isLoading"
- :placeholder="addInputPlaceholder"
+ :placeholder="$options.i18n.addInputPlaceholder"
menu-class="gl-dropdown-menu-wide dropdown-reduced-height gl-min-h-7!"
:container-class="tokenSelectorContainerClass"
data-testid="work-item-token-select-input"
+ :text-input-attrs="textInputAttrs"
@text-input="debouncedSearchKeyUpdate"
@focus="handleFocus"
@mouseover.native="handleMouseOver"
@@ -210,6 +235,11 @@ export default {
<div v-safe-html="formatResults(dropdownItem.title)" class="gl-text-truncate"></div>
</div>
</template>
+ <template #no-results-content>
+ <span data-testid="no-match-found-namespace-message">{{
+ $options.i18n.noMatchesFoundMessage
+ }}</span>
+ </template>
</gl-token-selector>
</div>
</template>
diff --git a/app/assets/javascripts/work_items/components/widget_wrapper.vue b/app/assets/javascripts/work_items/components/widget_wrapper.vue
index 27de858fe4e..6feae8dd94e 100644
--- a/app/assets/javascripts/work_items/components/widget_wrapper.vue
+++ b/app/assets/javascripts/work_items/components/widget_wrapper.vue
@@ -57,28 +57,31 @@ export default {
</script>
<template>
- <div :id="widgetName" class="gl-new-card" :aria-expanded="isOpenString">
+ <div :id="widgetName" class="gl-new-card">
<div class="gl-new-card-header">
<div class="gl-new-card-title-wrapper">
- <h3 class="gl-new-card-title">
- <gl-link
- :id="anchorLinkId"
- class="gl-text-decoration-none"
- :href="anchorLink"
- aria-hidden="true"
- />
+ <h2 class="gl-new-card-title">
+ <div aria-hidden="true">
+ <gl-link
+ :id="anchorLinkId"
+ class="gl-text-decoration-none gl-display-none"
+ :href="anchorLink"
+ />
+ </div>
<slot name="header"></slot>
- </h3>
+ </h2>
<slot name="header-suffix"></slot>
</div>
<slot name="header-right"></slot>
<div class="gl-new-card-toggle">
+ <!-- https://www.w3.org/TR/wai-aria-1.2/#aria-expanded -->
<gl-button
category="tertiary"
size="small"
:icon="toggleIcon"
:aria-label="toggleLabel"
data-testid="widget-toggle"
+ :aria-expanded="isOpenString"
@click="toggle"
/>
</div>
diff --git a/app/assets/javascripts/work_items/components/work_item_attributes_wrapper.vue b/app/assets/javascripts/work_items/components/work_item_attributes_wrapper.vue
index b7206d502a6..79f0fdca061 100644
--- a/app/assets/javascripts/work_items/components/work_item_attributes_wrapper.vue
+++ b/app/assets/javascripts/work_items/components/work_item_attributes_wrapper.vue
@@ -17,14 +17,16 @@ import {
import WorkItemDueDate from './work_item_due_date.vue';
import WorkItemAssignees from './work_item_assignees.vue';
import WorkItemLabels from './work_item_labels.vue';
-import WorkItemMilestone from './work_item_milestone.vue';
+import WorkItemMilestoneInline from './work_item_milestone_inline.vue';
+import WorkItemMilestoneWithEdit from './work_item_milestone_with_edit.vue';
import WorkItemParentInline from './work_item_parent_inline.vue';
import WorkItemParent from './work_item_parent_with_edit.vue';
export default {
components: {
WorkItemLabels,
- WorkItemMilestone,
+ WorkItemMilestoneInline,
+ WorkItemMilestoneWithEdit,
WorkItemAssignees,
WorkItemDueDate,
WorkItemParent,
@@ -34,7 +36,10 @@ export default {
WorkItemWeight: () =>
import('ee_component/work_items/components/work_item_weight_with_edit.vue'),
WorkItemProgress: () => import('ee_component/work_items/components/work_item_progress.vue'),
- WorkItemIteration: () => import('ee_component/work_items/components/work_item_iteration.vue'),
+ WorkItemIterationInline: () =>
+ import('ee_component/work_items/components/work_item_iteration_inline.vue'),
+ WorkItemIteration: () =>
+ import('ee_component/work_items/components/work_item_iteration_with_edit.vue'),
WorkItemHealthStatus: () =>
import('ee_component/work_items/components/work_item_health_status_with_edit.vue'),
WorkItemHealthStatusInline: () =>
@@ -137,15 +142,28 @@ export default {
:work-item-type="workItemType"
@error="$emit('error', $event)"
/>
- <work-item-milestone
- v-if="workItemMilestone"
- :full-path="fullPath"
- :work-item-id="workItem.id"
- :work-item-milestone="workItemMilestone.milestone"
- :work-item-type="workItemType"
- :can-update="canUpdate"
- @error="$emit('error', $event)"
- />
+ <template v-if="workItemMilestone">
+ <work-item-milestone-with-edit
+ v-if="glFeatures.workItemsMvc2"
+ class="gl-mb-5"
+ :full-path="fullPath"
+ :work-item-id="workItem.id"
+ :work-item-milestone="workItemMilestone.milestone"
+ :work-item-type="workItemType"
+ :can-update="canUpdate"
+ @error="$emit('error', $event)"
+ />
+ <work-item-milestone-inline
+ v-else
+ class="gl-mb-5"
+ :full-path="fullPath"
+ :work-item-id="workItem.id"
+ :work-item-milestone="workItemMilestone.milestone"
+ :work-item-type="workItemType"
+ :can-update="canUpdate"
+ @error="$emit('error', $event)"
+ />
+ </template>
<template v-if="workItemWeight">
<work-item-weight
v-if="glFeatures.workItemsMvc2"
@@ -177,17 +195,30 @@ export default {
:work-item-type="workItemType"
@error="$emit('error', $event)"
/>
- <work-item-iteration
- v-if="workItemIteration"
- class="gl-mb-5"
- :full-path="fullPath"
- :iteration="workItemIteration.iteration"
- :can-update="canUpdate"
- :work-item-id="workItem.id"
- :work-item-iid="workItem.iid"
- :work-item-type="workItemType"
- @error="$emit('error', $event)"
- />
+ <template v-if="workItemIteration">
+ <work-item-iteration
+ v-if="glFeatures.workItemsMvc2"
+ class="gl-mb-5"
+ :full-path="fullPath"
+ :iteration="workItemIteration.iteration"
+ :can-update="canUpdate"
+ :work-item-id="workItem.id"
+ :work-item-iid="workItem.iid"
+ :work-item-type="workItemType"
+ @error="$emit('error', $event)"
+ />
+ <work-item-iteration-inline
+ v-else
+ class="gl-mb-5"
+ :full-path="fullPath"
+ :iteration="workItemIteration.iteration"
+ :can-update="canUpdate"
+ :work-item-id="workItem.id"
+ :work-item-iid="workItem.iid"
+ :work-item-type="workItemType"
+ @error="$emit('error', $event)"
+ />
+ </template>
<template v-if="workItemHealthStatus">
<work-item-health-status
v-if="glFeatures.workItemsMvc2"
diff --git a/app/assets/javascripts/work_items/components/work_item_description.vue b/app/assets/javascripts/work_items/components/work_item_description.vue
index 77c573b47e4..4301dcca30b 100644
--- a/app/assets/javascripts/work_items/components/work_item_description.vue
+++ b/app/assets/javascripts/work_items/components/work_item_description.vue
@@ -40,12 +40,27 @@ export default {
type: String,
required: true,
},
+ disableInlineEditing: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ editMode: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ updateInProgress: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
},
markdownDocsPath: helpPagePath('user/markdown'),
data() {
return {
workItem: {},
- isEditing: false,
+ isEditing: this.editMode,
isSubmitting: false,
isSubmittingWithKeydown: false,
descriptionText: '',
@@ -126,6 +141,26 @@ export default {
autocompleteDataSources() {
return autocompleteDataSources(this.fullPath, this.workItem.iid);
},
+ saveButtonText() {
+ return this.editMode ? __('Save changes') : __('Save');
+ },
+ formGroupClass() {
+ return {
+ 'gl-border-t gl-pt-6': !this.disableInlineEditing,
+ 'gl-mb-5 common-note-form': true,
+ };
+ },
+ },
+ watch: {
+ updateInProgress(newValue) {
+ this.isSubmitting = newValue;
+ },
+ editMode(newValue) {
+ this.isEditing = newValue;
+ if (newValue) {
+ this.startEditing();
+ }
+ },
},
methods: {
checkForConflicts() {
@@ -159,6 +194,7 @@ export default {
}
this.isEditing = false;
+ this.$emit('cancelEditing');
clearDraft(this.autosaveKey);
},
onInput() {
@@ -175,6 +211,11 @@ export default {
this.isSubmittingWithKeydown = true;
}
+ if (this.disableInlineEditing) {
+ this.$emit('updateWorkItem');
+ return;
+ }
+
this.isSubmitting = true;
try {
@@ -210,6 +251,9 @@ export default {
},
setDescriptionText(newText) {
this.descriptionText = newText;
+ if (this.disableInlineEditing) {
+ this.$emit('updateDraft', this.descriptionText);
+ }
updateDraft(this.autosaveKey, this.descriptionText);
},
handleDescriptionTextUpdated(newText) {
@@ -224,12 +268,13 @@ export default {
<div>
<gl-form v-if="isEditing" @submit.prevent="updateWorkItem" @reset.prevent="cancelEditing">
<gl-form-group
- class="gl-mb-5 gl-border-t gl-pt-6 common-note-form"
+ :class="formGroupClass"
:label="__('Description')"
+ :label-sr-only="disableInlineEditing"
label-for="work-item-description"
>
<markdown-editor
- class="gl-my-5"
+ class="gl-mb-5"
:value="descriptionText"
:render-markdown-path="markdownPreviewPath"
:markdown-docs-path="$options.markdownDocsPath"
@@ -285,9 +330,9 @@ export default {
:loading="isSubmitting"
data-testid="save-description"
type="submit"
- >{{ __('Save') }}
+ >{{ saveButtonText }}
</gl-button>
- <gl-button category="tertiary" class="gl-ml-3" data-testid="cancel" type="reset"
+ <gl-button category="secondary" class="gl-ml-3" data-testid="cancel" type="reset"
>{{ __('Cancel') }}
</gl-button>
</template>
@@ -296,13 +341,14 @@ export default {
</gl-form>
<work-item-description-rendered
v-else
+ :disable-inline-editing="disableInlineEditing"
:work-item-description="workItemDescription"
:can-edit="canEdit"
@startEditing="startEditing"
@descriptionUpdated="handleDescriptionTextUpdated"
/>
<edited-at
- v-if="lastEditedAt"
+ v-if="lastEditedAt && !editMode"
:updated-at="lastEditedAt"
:updated-by-name="lastEditedByName"
:updated-by-path="lastEditedByPath"
diff --git a/app/assets/javascripts/work_items/components/work_item_description_rendered.vue b/app/assets/javascripts/work_items/components/work_item_description_rendered.vue
index 124e05db431..1699f6c419e 100644
--- a/app/assets/javascripts/work_items/components/work_item_description_rendered.vue
+++ b/app/assets/javascripts/work_items/components/work_item_description_rendered.vue
@@ -22,6 +22,16 @@ export default {
type: Boolean,
required: true,
},
+ disableInlineEditing: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ },
+ data() {
+ return {
+ checkboxes: [],
+ };
},
computed: {
descriptionText() {
@@ -33,6 +43,12 @@ export default {
descriptionEmpty() {
return this.descriptionHtml?.trim() === '';
},
+ showEmptyDescription() {
+ return this.descriptionEmpty && !this.disableInlineEditing;
+ },
+ showEditButton() {
+ return this.canEdit && !this.disableInlineEditing;
+ },
},
watch: {
descriptionHtml: {
@@ -96,9 +112,11 @@ export default {
<template>
<div class="gl-mb-5">
<div class="gl-display-inline-flex gl-align-items-center gl-mb-3">
- <label class="d-block col-form-label gl-mr-5">{{ __('Description') }}</label>
+ <label v-if="!disableInlineEditing" class="d-block col-form-label gl-mr-5">{{
+ __('Description')
+ }}</label>
<gl-button
- v-if="canEdit"
+ v-if="showEditButton"
v-gl-tooltip
class="gl-ml-auto"
icon="pencil"
@@ -109,9 +127,9 @@ export default {
/>
</div>
- <div v-if="descriptionEmpty" class="gl-text-secondary gl-mb-5">{{ __('None') }}</div>
+ <div v-if="showEmptyDescription" class="gl-text-secondary gl-mb-5">{{ __('None') }}</div>
<div
- v-else
+ v-else-if="!descriptionEmpty"
ref="gfm-content"
v-safe-html="descriptionHtml"
class="md gl-mb-5 gl-min-h-8 gl-clearfix"
diff --git a/app/assets/javascripts/work_items/components/work_item_detail.vue b/app/assets/javascripts/work_items/components/work_item_detail.vue
index b74cbc85379..85b981d9370 100644
--- a/app/assets/javascripts/work_items/components/work_item_detail.vue
+++ b/app/assets/javascripts/work_items/components/work_item_detail.vue
@@ -2,6 +2,7 @@
import { isEmpty } from 'lodash';
import { GlAlert, GlSkeletonLoader, GlButton, GlTooltipDirective, GlEmptyState } from '@gitlab/ui';
import noAccessSvg from '@gitlab/svgs/dist/illustrations/analytics/no-access.svg?raw';
+import * as Sentry from '~/sentry/sentry_browser_wrapper';
import { s__ } from '~/locale';
import { getParameterByName, updateHistory, setUrlParams } from '~/lib/utils/url_utility';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
@@ -18,6 +19,7 @@ import {
WIDGET_TYPE_AWARD_EMOJI,
WIDGET_TYPE_HIERARCHY,
WORK_ITEM_TYPE_VALUE_OBJECTIVE,
+ WORK_ITEM_TYPE_VALUE_EPIC,
WIDGET_TYPE_NOTES,
WIDGET_TYPE_LINKED_ITEMS,
} from '../constants';
@@ -41,6 +43,7 @@ import WorkItemAwardEmoji from './work_item_award_emoji.vue';
import WorkItemRelationships from './work_item_relationships/work_item_relationships.vue';
import WorkItemStickyHeader from './work_item_sticky_header.vue';
import WorkItemAncestors from './work_item_ancestors/work_item_ancestors.vue';
+import WorkItemTitleWithEdit from './work_item_title_with_edit.vue';
export default {
i18n,
@@ -67,6 +70,7 @@ export default {
WorkItemRelationships,
WorkItemStickyHeader,
WorkItemAncestors,
+ WorkItemTitleWithEdit,
},
mixins: [glFeatureFlagMixin()],
inject: ['fullPath', 'isGroup', 'reportAbusePath'],
@@ -94,6 +98,8 @@ export default {
reportedUrl: '',
reportedUserId: 0,
isStickyHeaderShowing: false,
+ editMode: false,
+ draftData: {},
};
},
apollo: {
@@ -219,7 +225,7 @@ export default {
};
},
showIntersectionObserver() {
- return !this.isModal && this.workItemsMvc2Enabled;
+ return !this.isModal && this.workItemsMvc2Enabled && !this.editMode;
},
hasLinkedWorkItems() {
return this.glFeatures.linkedWorkItems;
@@ -227,19 +233,26 @@ export default {
workItemLinkedItems() {
return this.isWidgetPresent(WIDGET_TYPE_LINKED_ITEMS);
},
+ showWorkItemTree() {
+ return [WORK_ITEM_TYPE_VALUE_OBJECTIVE, WORK_ITEM_TYPE_VALUE_EPIC].includes(
+ this.workItemType,
+ );
+ },
showWorkItemLinkedItems() {
return this.hasLinkedWorkItems && this.workItemLinkedItems;
},
titleClassHeader() {
return {
'gl-sm-display-none!': this.parentWorkItem,
- 'gl-w-full': !this.parentWorkItem,
+ 'gl-w-full': !this.parentWorkItem && !this.editMode,
+ 'editable-wi-title': this.editMode && !this.parentWorkItem,
};
},
titleClassComponent() {
return {
'gl-sm-display-block!': !this.parentWorkItem,
'gl-display-none gl-sm-display-block!': this.parentWorkItem,
+ 'gl-mt-3 editable-wi-title': this.workItemsMvc2Enabled,
};
},
headerWrapperClass() {
@@ -258,6 +271,9 @@ export default {
}
},
methods: {
+ enableEditMode() {
+ this.editMode = true;
+ },
isWidgetPresent(type) {
return this.workItem.widgets?.find((widget) => widget.type === type);
},
@@ -349,6 +365,45 @@ export default {
this.isStickyHeaderShowing = true;
}
},
+ updateDraft(type, value) {
+ this.draftData[type] = value;
+ },
+ async updateWorkItem() {
+ this.updateInProgress = true;
+ try {
+ const {
+ data: { workItemUpdate },
+ } = await this.$apollo.mutate({
+ mutation: updateWorkItemMutation,
+ variables: {
+ input: {
+ id: this.workItem.id,
+ title: this.draftData.title,
+ descriptionWidget: {
+ description: this.draftData.description,
+ },
+ },
+ },
+ });
+
+ const { errors } = workItemUpdate;
+
+ if (errors?.length) {
+ this.updateError = errors.join('\n');
+ throw new Error(this.updateError);
+ }
+
+ this.editMode = false;
+ } catch (error) {
+ Sentry.captureException(error);
+ } finally {
+ this.updateInProgress = false;
+ }
+ },
+ cancelEditing() {
+ this.draftData = {};
+ this.editMode = false;
+ },
},
WORK_ITEM_TYPE_VALUE_OBJECTIVE,
WORKSPACE_PROJECT,
@@ -388,8 +443,17 @@ export default {
:class="titleClassHeader"
data-testid="work-item-type"
>
+ <work-item-title-with-edit
+ v-if="workItem.title && workItemsMvc2Enabled"
+ ref="title"
+ class="gl-mt-3 gl-sm-display-block!"
+ :is-editing="editMode"
+ :title="workItem.title"
+ @updateWorkItem="updateWorkItem"
+ @updateDraft="updateDraft('title', $event)"
+ />
<work-item-title
- v-if="workItem.title"
+ v-else-if="workItem.title"
ref="title"
class="gl-sm-display-block!"
:work-item-id="workItem.id"
@@ -402,6 +466,14 @@ export default {
<div
class="detail-page-header-actions gl-display-flex gl-align-self-start gl-ml-auto gl-gap-3"
>
+ <gl-button
+ v-if="workItemsMvc2Enabled && !editMode"
+ category="secondary"
+ data-testid="work-item-edit-form-button"
+ @click="enableEditMode"
+ >
+ {{ __('Edit') }}
+ </gl-button>
<work-item-todos
v-if="showWorkItemCurrentUserTodos"
:work-item-id="workItem.id"
@@ -441,8 +513,17 @@ export default {
/>
</div>
<div>
+ <work-item-title-with-edit
+ v-if="workItem.title && workItemsMvc2Enabled && parentWorkItem"
+ ref="title"
+ :is-editing="editMode"
+ :class="titleClassComponent"
+ :title="workItem.title"
+ @updateWorkItem="updateWorkItem"
+ @updateDraft="updateDraft('title', $event)"
+ />
<work-item-title
- v-if="workItem.title && parentWorkItem"
+ v-else-if="workItem.title && parentWorkItem"
ref="title"
:class="titleClassComponent"
:work-item-id="workItem.id"
@@ -453,6 +534,7 @@ export default {
@error="updateError = $event"
/>
<work-item-created-updated
+ v-if="!editMode"
:full-path="fullPath"
:work-item-iid="workItemIid"
:update-in-progress="updateInProgress"
@@ -490,10 +572,16 @@ export default {
/>
<work-item-description
v-if="hasDescriptionWidget"
+ :class="workItemsMvc2Enabled ? '' : 'gl-pt-5'"
+ :disable-inline-editing="workItemsMvc2Enabled"
+ :edit-mode="editMode"
:full-path="fullPath"
:work-item-id="workItem.id"
:work-item-iid="workItem.iid"
- class="gl-pt-5"
+ :update-in-progress="updateInProgress"
+ @updateWorkItem="updateWorkItem"
+ @updateDraft="updateDraft('description', $event)"
+ @cancelEditing="cancelEditing"
@error="updateError = $event"
/>
<work-item-award-emoji
@@ -506,7 +594,7 @@ export default {
@emoji-updated="$emit('work-item-emoji-updated', $event)"
/>
<work-item-tree
- v-if="workItemType === $options.WORK_ITEM_TYPE_VALUE_OBJECTIVE"
+ v-if="showWorkItemTree"
:full-path="fullPath"
:work-item-type="workItemType"
:parent-work-item-type="workItem.workItemType.name"
diff --git a/app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue b/app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue
index f24b56cac36..cc46932539d 100644
--- a/app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue
+++ b/app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue
@@ -11,6 +11,7 @@ import {
import { __, s__, sprintf } from '~/locale';
import WorkItemTokenInput from '../shared/work_item_token_input.vue';
import { addHierarchyChild } from '../../graphql/cache_utils';
+import groupWorkItemTypesQuery from '../../graphql/group_work_item_types.query.graphql';
import projectWorkItemTypesQuery from '../../graphql/project_work_item_types.query.graphql';
import updateWorkItemMutation from '../../graphql/update_work_item.mutation.graphql';
import createWorkItemMutation from '../../graphql/create_work_item.mutation.graphql';
@@ -90,7 +91,9 @@ export default {
},
apollo: {
workItemTypes: {
- query: projectWorkItemTypesQuery,
+ query() {
+ return this.isGroup ? groupWorkItemTypesQuery : projectWorkItemTypesQuery;
+ },
variables() {
return {
fullPath: this.fullPath,
diff --git a/app/assets/javascripts/work_items/components/work_item_milestone.vue b/app/assets/javascripts/work_items/components/work_item_milestone_inline.vue
index dbeb3d4d3ff..dbeb3d4d3ff 100644
--- a/app/assets/javascripts/work_items/components/work_item_milestone.vue
+++ b/app/assets/javascripts/work_items/components/work_item_milestone_inline.vue
diff --git a/app/assets/javascripts/work_items/components/work_item_milestone_with_edit.vue b/app/assets/javascripts/work_items/components/work_item_milestone_with_edit.vue
new file mode 100644
index 00000000000..9588d21a3c5
--- /dev/null
+++ b/app/assets/javascripts/work_items/components/work_item_milestone_with_edit.vue
@@ -0,0 +1,203 @@
+<script>
+import { GlLink } from '@gitlab/ui';
+import * as Sentry from '~/sentry/sentry_browser_wrapper';
+import Tracking from '~/tracking';
+import { s__, __ } from '~/locale';
+import { MILESTONE_STATE } from '~/sidebar/constants';
+import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
+import WorkItemSidebarDropdownWidgetWithEdit from '~/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue';
+import projectMilestonesQuery from '~/sidebar/queries/project_milestones.query.graphql';
+import updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';
+import {
+ I18N_WORK_ITEM_ERROR_UPDATING,
+ sprintfWorkItem,
+ TRACKING_CATEGORY_SHOW,
+} from '../constants';
+
+export default {
+ i18n: {
+ milestone: s__('WorkItem|Milestone'),
+ none: s__('WorkItem|None'),
+ noMilestone: s__('WorkItem|No milestone'),
+ milestoneFetchError: s__(
+ 'WorkItem|Something went wrong while fetching milestones. Please try again.',
+ ),
+ expiredText: __('(expired)'),
+ },
+ components: {
+ WorkItemSidebarDropdownWidgetWithEdit,
+ GlLink,
+ },
+ mixins: [Tracking.mixin()],
+ props: {
+ fullPath: {
+ type: String,
+ required: true,
+ },
+ workItemId: {
+ type: String,
+ required: true,
+ },
+ workItemMilestone: {
+ type: Object,
+ required: false,
+ default: () => ({}),
+ },
+ workItemType: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ canUpdate: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ },
+ data() {
+ return {
+ searchTerm: '',
+ shouldFetch: false,
+ updateInProgress: false,
+ milestones: [],
+ localMilestone: this.workItemMilestone,
+ };
+ },
+ computed: {
+ tracking() {
+ return {
+ category: TRACKING_CATEGORY_SHOW,
+ label: 'item_milestone',
+ property: `type_${this.workItemType}`,
+ };
+ },
+ emptyPlaceholder() {
+ return this.canUpdate ? this.$options.i18n.noMilestone : this.$options.i18n.none;
+ },
+ expired() {
+ return this.localMilestone?.expired ? ` ${this.$options.i18n.expiredText}` : '';
+ },
+ dropdownText() {
+ return this.localMilestone?.title
+ ? `${this.localMilestone?.title}${this.expired}`
+ : this.emptyPlaceholder;
+ },
+ isLoadingMilestones() {
+ return this.$apollo.queries.milestones.loading;
+ },
+ milestonesList() {
+ return this.milestones.map(({ id, title, expired }) => ({
+ value: id,
+ text: title,
+ expired,
+ }));
+ },
+ },
+ apollo: {
+ milestones: {
+ query: projectMilestonesQuery,
+ debounce: DEFAULT_DEBOUNCE_AND_THROTTLE_MS,
+ variables() {
+ return {
+ fullPath: this.fullPath,
+ title: this.searchTerm,
+ state: MILESTONE_STATE.ACTIVE,
+ first: 20,
+ };
+ },
+ skip() {
+ return !this.shouldFetch;
+ },
+ update(data) {
+ return data?.workspace?.attributes?.nodes || [];
+ },
+ error() {
+ this.$emit('error', this.i18n.milestoneFetchError);
+ },
+ },
+ },
+ methods: {
+ onDropdownShown() {
+ this.searchTerm = '';
+ this.shouldFetch = true;
+ },
+ search(searchTerm) {
+ this.searchTerm = searchTerm;
+ this.shouldFetch = true;
+ },
+ itemExpiredText(item) {
+ return item.expired ? this.$options.i18n.expiredText : '';
+ },
+ updateMilestone(selectedMilestoneId) {
+ if (this.localMilestone?.id === selectedMilestoneId) {
+ return;
+ }
+
+ this.localMilestone = selectedMilestoneId
+ ? this.milestones.find(({ id }) => id === selectedMilestoneId)
+ : null;
+
+ this.track('updated_milestone');
+ this.updateInProgress = true;
+
+ this.$apollo
+ .mutate({
+ mutation: updateWorkItemMutation,
+ variables: {
+ input: {
+ id: this.workItemId,
+ milestoneWidget: {
+ milestoneId: selectedMilestoneId,
+ },
+ },
+ },
+ })
+ .then(({ data }) => {
+ if (data.workItemUpdate.errors.length) {
+ throw new Error(data.workItemUpdate.errors.join('\n'));
+ }
+ })
+ .catch((error) => {
+ this.localMilestone = this.workItemMilestone;
+ const msg = sprintfWorkItem(I18N_WORK_ITEM_ERROR_UPDATING, this.workItemType);
+ this.$emit('error', msg);
+ Sentry.captureException(error);
+ })
+ .finally(() => {
+ this.updateInProgress = false;
+ this.searchTerm = '';
+ this.shouldFetch = false;
+ });
+ },
+ },
+};
+</script>
+
+<template>
+ <work-item-sidebar-dropdown-widget-with-edit
+ :dropdown-label="$options.i18n.milestone"
+ :can-update="canUpdate"
+ dropdown-name="milestone"
+ :loading="isLoadingMilestones"
+ :list-items="milestonesList"
+ :item-value="localMilestone"
+ :update-in-progress="updateInProgress"
+ :toggle-dropdown-text="dropdownText"
+ :header-text="__('Select milestone')"
+ :reset-button-label="__('Clear')"
+ data-testid="work-item-milestone-with-edit"
+ @dropdownShown="onDropdownShown"
+ @searchStarted="search"
+ @updateValue="updateMilestone"
+ >
+ <template #list-item="{ item }">
+ <div>{{ item.text }}{{ itemExpiredText(item) }}</div>
+ <div v-if="item.title">{{ item.title }}</div>
+ </template>
+ <template #readonly>
+ <gl-link class="gl-text-gray-900!" :href="localMilestone.webPath">
+ {{ localMilestone.title }}{{ expired }}
+ </gl-link>
+ </template>
+ </work-item-sidebar-dropdown-widget-with-edit>
+</template>
diff --git a/app/assets/javascripts/work_items/components/work_item_parent_inline.vue b/app/assets/javascripts/work_items/components/work_item_parent_inline.vue
index 0c0842a3e05..bb75de677c3 100644
--- a/app/assets/javascripts/work_items/components/work_item_parent_inline.vue
+++ b/app/assets/javascripts/work_items/components/work_item_parent_inline.vue
@@ -108,7 +108,7 @@ export default {
types: this.parentType,
in: this.search ? 'TITLE' : undefined,
iid: null,
- isNumber: false,
+ searchByIid: false,
};
},
skip() {
diff --git a/app/assets/javascripts/work_items/components/work_item_relationships/work_item_add_relationship_form.vue b/app/assets/javascripts/work_items/components/work_item_relationships/work_item_add_relationship_form.vue
index c98bd6ce1e9..10c59d677f7 100644
--- a/app/assets/javascripts/work_items/components/work_item_relationships/work_item_add_relationship_form.vue
+++ b/app/assets/javascripts/work_items/components/work_item_relationships/work_item_add_relationship_form.vue
@@ -172,7 +172,7 @@ export default {
relatedToLabel: s__('WorkItem|relates to'),
blockingLabel: s__('WorkItem|blocks'),
blockedByLabel: s__('WorkItem|is blocked by'),
- linkItemInputLabel: s__('WorkItem|the following item(s)'),
+ linkItemInputLabel: s__('WorkItem|the following items'),
addLinkedItemErrorMessage: s__(
'WorkItem|Something went wrong when trying to link a item. Please try again.',
),
diff --git a/app/assets/javascripts/work_items/components/work_item_state_toggle.vue b/app/assets/javascripts/work_items/components/work_item_state_toggle.vue
index 69752967efe..48884be54f6 100644
--- a/app/assets/javascripts/work_items/components/work_item_state_toggle.vue
+++ b/app/assets/javascripts/work_items/components/work_item_state_toggle.vue
@@ -38,6 +38,11 @@ export default {
required: false,
default: false,
},
+ hasComment: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
},
data() {
return {
@@ -49,9 +54,15 @@ export default {
return this.workItemState === STATE_OPEN;
},
toggleWorkItemStateText() {
- const baseText = this.isWorkItemOpen
+ let baseText = this.isWorkItemOpen
? __('Close %{workItemType}')
: __('Reopen %{workItemType}');
+
+ if (this.hasComment) {
+ baseText = this.isWorkItemOpen
+ ? __('Comment & close %{workItemType}')
+ : __('Comment & reopen %{workItemType}');
+ }
return sprintfWorkItem(baseText, this.workItemType);
},
tracking() {
@@ -96,6 +107,10 @@ export default {
Sentry.captureException(error);
}
+ if (this.hasComment) {
+ this.$emit('submit-comment');
+ }
+
this.updateInProgress = false;
},
},
diff --git a/app/assets/javascripts/work_items/components/work_item_title_with_edit.vue b/app/assets/javascripts/work_items/components/work_item_title_with_edit.vue
new file mode 100644
index 00000000000..6af564a6a91
--- /dev/null
+++ b/app/assets/javascripts/work_items/components/work_item_title_with_edit.vue
@@ -0,0 +1,45 @@
+<script>
+import { GlFormGroup, GlFormInput } from '@gitlab/ui';
+import { __ } from '~/locale';
+
+export default {
+ components: {
+ GlFormGroup,
+ GlFormInput,
+ },
+ i18n: {
+ titleLabel: __('Title (required)'),
+ },
+ props: {
+ title: {
+ type: String,
+ required: true,
+ },
+ isEditing: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ },
+};
+</script>
+
+<template>
+ <gl-form-group v-if="isEditing" :label="$options.i18n.titleLabel" label-for="work-item-title">
+ <gl-form-input
+ class="gl-w-full"
+ :value="title"
+ data-testid="work-item-title-with-edit"
+ @keydown.meta.enter="$emit('updateWorkItem')"
+ @keydown.ctrl.enter="$emit('updateWorkItem')"
+ @input="$emit('updateDraft', $event)"
+ />
+ </gl-form-group>
+ <h1
+ v-else
+ data-testid="work-item-title"
+ class="gl-w-full gl-font-weight-normal gl-sm-font-weight-bold gl-mb-1 gl-mt-0 gl-font-size-h-display"
+ >
+ {{ title }}
+ </h1>
+</template>
diff --git a/app/assets/javascripts/work_items/constants.js b/app/assets/javascripts/work_items/constants.js
index 41cf5d8932d..62fdc8a21c2 100644
--- a/app/assets/javascripts/work_items/constants.js
+++ b/app/assets/javascripts/work_items/constants.js
@@ -46,6 +46,9 @@ export const WORK_ITEM_TYPE_VALUE_REQUIREMENTS = 'Requirements';
export const WORK_ITEM_TYPE_VALUE_KEY_RESULT = 'Key Result';
export const WORK_ITEM_TYPE_VALUE_OBJECTIVE = 'Objective';
+export const NAMESPACE_GROUP = 'group';
+export const NAMESPACE_PROJECT = 'project';
+
export const WORK_ITEM_TITLE_MAX_LENGTH = 255;
export const i18n = {
@@ -91,10 +94,13 @@ export const I18N_WORK_ITEM_FETCH_AWARD_EMOJI_ERROR = s__(
export const I18N_WORK_ITEM_CREATE_BUTTON_LABEL = s__('WorkItem|Create %{workItemType}');
export const I18N_WORK_ITEM_ADD_BUTTON_LABEL = s__('WorkItem|Add %{workItemType}');
export const I18N_WORK_ITEM_ADD_MULTIPLE_BUTTON_LABEL = s__('WorkItem|Add %{workItemType}s');
-export const I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER = s__('WorkItem|Search existing items');
+export const I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER = s__(
+ 'WorkItem|Search existing items, paste URL, or enter reference ID',
+);
export const I18N_WORK_ITEM_SEARCH_ERROR = s__(
'WorkItem|Something went wrong while fetching the %{workItemType}. Please try again.',
);
+export const I18N_WORK_ITEM_NO_MATCHES_FOUND = s__('WorkItem|No matches found');
export const I18N_WORK_ITEM_CONFIDENTIALITY_CHECKBOX_LABEL = s__(
'WorkItem|This %{workItemType} is confidential and should only be visible to team members with at least Reporter access',
);
@@ -195,6 +201,8 @@ export const WORK_ITEMS_TYPE_MAP = {
export const WORK_ITEM_TYPE_VALUE_MAP = {
[WORK_ITEM_TYPE_VALUE_OBJECTIVE]: WORK_ITEM_TYPE_ENUM_OBJECTIVE,
[WORK_ITEM_TYPE_VALUE_KEY_RESULT]: WORK_ITEM_TYPE_ENUM_KEY_RESULT,
+ [WORK_ITEM_TYPE_VALUE_ISSUE]: WORK_ITEM_TYPE_ENUM_ISSUE,
+ [WORK_ITEM_TYPE_VALUE_EPIC]: WORK_ITEM_TYPE_ENUM_EPIC,
};
export const WORK_ITEMS_TREE_TEXT_MAP = {
@@ -208,9 +216,14 @@ export const WORK_ITEMS_TREE_TEXT_MAP = {
'WorkItem|No tasks are currently assigned. Use tasks to break down this issue into smaller parts.',
),
},
+ [WORK_ITEM_TYPE_VALUE_EPIC]: {
+ title: s__('WorkItem|Child items'),
+ empty: s__('WorkItem|No epics or issues are currently assigned.'),
+ },
};
export const WORK_ITEM_NAME_TO_ICON_MAP = {
+ Epic: 'epic',
Issue: 'issue-type-issue',
Task: 'issue-type-task',
Objective: 'issue-type-objective',
diff --git a/app/assets/javascripts/work_items/graphql/project_work_items.query.graphql b/app/assets/javascripts/work_items/graphql/project_work_items.query.graphql
index 7efd67467e5..17b338f7a8d 100644
--- a/app/assets/javascripts/work_items/graphql/project_work_items.query.graphql
+++ b/app/assets/javascripts/work_items/graphql/project_work_items.query.graphql
@@ -4,11 +4,12 @@ query projectWorkItems(
$types: [IssueType!]
$in: [IssuableSearchableField!]
$iid: String = null
- $isNumber: Boolean!
+ $searchByIid: Boolean = false
+ $searchByText: Boolean = true
) {
workspace: project(fullPath: $fullPath) {
id
- workItems(search: $searchTerm, types: $types, in: $in) {
+ workItems(search: $searchTerm, types: $types, in: $in) @include(if: $searchByText) {
nodes {
id
iid
@@ -16,7 +17,7 @@ query projectWorkItems(
confidential
}
}
- workItemsByIid: workItems(iid: $iid, types: $types) @include(if: $isNumber) {
+ workItemsByIid: workItems(iid: $iid, types: $types) @include(if: $searchByIid) {
nodes {
id
iid
diff --git a/app/assets/javascripts/work_items/graphql/work_item.fragment.graphql b/app/assets/javascripts/work_items/graphql/work_item.fragment.graphql
index ef43b9c026d..c1ec3fe276f 100644
--- a/app/assets/javascripts/work_items/graphql/work_item.fragment.graphql
+++ b/app/assets/javascripts/work_items/graphql/work_item.fragment.graphql
@@ -12,6 +12,7 @@ fragment WorkItem on WorkItem {
createdAt
updatedAt
closedAt
+ webUrl
reference(full: true)
createNoteEmail
namespace {
diff --git a/app/assets/javascripts/work_items/graphql/work_items_by_references.query.graphql b/app/assets/javascripts/work_items/graphql/work_items_by_references.query.graphql
new file mode 100644
index 00000000000..1e8d62596b7
--- /dev/null
+++ b/app/assets/javascripts/work_items/graphql/work_items_by_references.query.graphql
@@ -0,0 +1,10 @@
+query getWorkItemsByReferences($contextNamespacePath: ID!, $refs: [String!]!) {
+ workItemsByReference(contextNamespacePath: $contextNamespacePath, refs: $refs) {
+ nodes {
+ id
+ iid
+ title
+ confidential
+ }
+ }
+}
diff --git a/app/assets/javascripts/work_items/utils.js b/app/assets/javascripts/work_items/utils.js
index c3c292c3dd9..6d304e7ebf0 100644
--- a/app/assets/javascripts/work_items/utils.js
+++ b/app/assets/javascripts/work_items/utils.js
@@ -55,3 +55,14 @@ export const markdownPreviewPath = (fullPath, iid) =>
`${
gon.relative_url_root || ''
}/${fullPath}/preview_markdown?target_type=WorkItem&target_id=${iid}`;
+
+export const isReference = (input) => {
+ /**
+ * The regular expression checks if the `value` is
+ * a project work item or group work item.
+ * e.g., gitlab-org/project-path#101 or gitlab-org&101
+ * or #1234
+ */
+
+ return /^([\w-]+(?:\/[\w-]+)*)?[#&](\d+)$/.test(input);
+};
diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss
index ce8ccb2bc08..1b99a27b12c 100644
--- a/app/assets/stylesheets/application.scss
+++ b/app/assets/stylesheets/application.scss
@@ -13,10 +13,10 @@
@import 'page_specific_files';
// Component specific styles, will be moved to gitlab-ui
-@import 'components/**/*';
+@import 'components/index';
// Vendors specific styles
-@import 'vendors/**/*';
+@import 'vendors/index';
// Styles for JS behaviors.
@import 'behaviors';
@@ -27,7 +27,5 @@
// JH-only stylesheets
@import 'application_jh';
-/* print styles */
-@media print {
- @import 'print';
-}
+// print styles
+@import 'print';
diff --git a/app/assets/stylesheets/components/_index.scss b/app/assets/stylesheets/components/_index.scss
new file mode 100644
index 00000000000..f53837b5671
--- /dev/null
+++ b/app/assets/stylesheets/components/_index.scss
@@ -0,0 +1,11 @@
+@import './avatar';
+@import './collapsible_card';
+@import './content_editor';
+@import './deployment_instance';
+@import './detail_page';
+@import './ref_selector';
+@import './related_items_list';
+@import './severity/icons';
+@import './shortcuts_help';
+@import './upload_dropzone/upload_dropzone';
+@import './whats_new';
diff --git a/app/assets/stylesheets/components/content_editor.scss b/app/assets/stylesheets/components/content_editor.scss
index 97f2add4e77..c654eb16af5 100644
--- a/app/assets/stylesheets/components/content_editor.scss
+++ b/app/assets/stylesheets/components/content_editor.scss
@@ -35,6 +35,10 @@
background-color: transparent;
}
+ th[align] *, td[align] * {
+ text-align: inherit;
+ }
+
td,
th,
li,
@@ -149,6 +153,11 @@
padding: $gl-spacing-scale-1 $gl-spacing-scale-3 0 0;
margin: 0;
}
+
+ &[data-inapplicable] * {
+ text-decoration: line-through;
+ color: $gl-text-color-disabled;
+ }
}
}
diff --git a/app/assets/stylesheets/emoji_sprites.scss b/app/assets/stylesheets/emoji_sprites.scss
index 5a5f39a4b77..10bf54b4ffb 100644
--- a/app/assets/stylesheets/emoji_sprites.scss
+++ b/app/assets/stylesheets/emoji_sprites.scss
@@ -7176,7 +7176,7 @@
}
.emoji-icon {
- background-image: image-url('emoji.png');
+ background-image: url('emoji.png');
background-repeat: no-repeat;
color: transparent;
text-indent: -99em;
@@ -7190,7 +7190,7 @@
only screen and (min-device-pixel-ratio: 2),
only screen and (min-resolution: 192dpi),
only screen and (min-resolution: 2dppx) {
- background-image: image-url('emoji@2x.png');
+ background-image: url('emoji@2x.png');
background-size: 860px 840px;
}
/* stylelint-enable media-feature-name-no-vendor-prefix */
diff --git a/app/assets/stylesheets/fonts.scss b/app/assets/stylesheets/fonts.scss
index 6886e751b72..f776328ebdf 100644
--- a/app/assets/stylesheets/fonts.scss
+++ b/app/assets/stylesheets/fonts.scss
@@ -11,7 +11,7 @@ Usage:
font-style: normal;
/* stylelint-disable-next-line property-no-unknown */
font-named-instance: 'Regular';
- src: font-url('gitlab-sans/GitLabSans.woff2') format('woff2');
+ src: url('gitlab-sans/GitLabSans.woff2') format('woff2');
}
@font-face {
@@ -21,7 +21,7 @@ Usage:
font-style: italic;
/* stylelint-disable-next-line property-no-unknown */
font-named-instance: 'Regular';
- src: font-url('gitlab-sans/GitLabSans-Italic.woff2') format('woff2');
+ src: url('gitlab-sans/GitLabSans-Italic.woff2') format('woff2');
}
/* -------------------------------------------------------
@@ -35,7 +35,7 @@ Usage:
font-weight: 100 900;
font-display: swap;
font-style: normal;
- src: font-url('gitlab-mono/GitLabMono.woff2') format('woff2');
+ src: url('gitlab-mono/GitLabMono.woff2') format('woff2');
}
@font-face {
@@ -43,7 +43,7 @@ Usage:
font-weight: 100 900;
font-display: swap;
font-style: italic;
- src: font-url('gitlab-mono/GitLabMono-Italic.woff2') format('woff2');
+ src: url('gitlab-mono/GitLabMono-Italic.woff2') format('woff2');
}
// This isn't the best solution, but we needed a quick fix
diff --git a/app/assets/stylesheets/framework.scss b/app/assets/stylesheets/framework.scss
index 6f4f7a29334..dd4b6f51ebe 100644
--- a/app/assets/stylesheets/framework.scss
+++ b/app/assets/stylesheets/framework.scss
@@ -10,6 +10,7 @@
@import 'framework/animations';
@import 'framework/vue_transitions';
@import 'framework/blocks';
+@import 'framework/breadcrumbs';
@import 'framework/buttons';
@import 'framework/badges';
@import 'framework/calendar';
@@ -23,7 +24,9 @@
@import 'framework/gfm';
@import 'framework/kbd';
@import 'framework/header';
+@import 'framework/top_bar';
@import 'framework/highlight';
+@import 'framework/labels';
@import 'framework/lists';
@import 'framework/logo';
@import 'framework/markdown_area';
diff --git a/app/assets/stylesheets/framework/badges.scss b/app/assets/stylesheets/framework/badges.scss
index 3f1d742ca14..7c3684f7c2e 100644
--- a/app/assets/stylesheets/framework/badges.scss
+++ b/app/assets/stylesheets/framework/badges.scss
@@ -12,3 +12,56 @@
color: $green;
}
}
+
+// FF :simplified_badges
+//
+// Temporarily override badge styles
+// globally
+//
+// Once verified we will update the
+// badge component in GitLab UI
+// refactor GitLab and remove this
+// custom code
+//
+// see https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/3307
+.ff-simplified-badges-enabled {
+ // These changes will be moved to
+ // GitLab UI's badge component
+ .gl-badge,
+ .gl-badge.sm,
+ .gl-badge.md,
+ .gl-badge.lg {
+ @include gl-font-sm;
+ padding-block: $gl-spacing-scale-1;
+ padding-inline: calc(#{$gl-spacing-scale-3} - 2px);
+
+ > .gl-icon {
+ @include gl-ml-0;
+ }
+ }
+
+ // These changes will be moved to
+ // GitLab UI's button component
+ .gl-button .gl-badge {
+ @include gl-py-0;
+ }
+
+ // These changes will be moved to
+ // app/assets/stylesheets/framework/super_sidebar.scss
+ .super-sidebar-nav-item .gl-badge {
+ vertical-align: 2px;
+ }
+
+ // These changes will be moved to
+ // GitLab UI's tab component
+ .gl-tab-nav-item .gl-badge {
+ margin-block: -2px;
+ }
+
+ // Temporarily needed because of the
+ // speciality this FF adds
+ // the utility class gets overriden
+ .gl-badge.ci-icon {
+ @include gl-p-2;
+ }
+}
diff --git a/app/assets/stylesheets/framework/breadcrumbs.scss b/app/assets/stylesheets/framework/breadcrumbs.scss
new file mode 100644
index 00000000000..b71382f5570
--- /dev/null
+++ b/app/assets/stylesheets/framework/breadcrumbs.scss
@@ -0,0 +1,13 @@
+.breadcrumbs {
+ flex: 1;
+ min-width: 0;
+ align-self: center;
+ color: $gl-text-color-secondary;
+
+ .avatar-tile {
+ margin-right: 4px;
+ border: 1px solid $border-color;
+ border-radius: 50%;
+ vertical-align: sub;
+ }
+}
diff --git a/app/assets/stylesheets/framework/diffs.scss b/app/assets/stylesheets/framework/diffs.scss
index b948a57ea33..497a8a08a6f 100644
--- a/app/assets/stylesheets/framework/diffs.scss
+++ b/app/assets/stylesheets/framework/diffs.scss
@@ -225,7 +225,7 @@ $diff-file-header: 41px;
width: 15px;
position: absolute;
top: 0;
- background: image-url('swipemode_sprites.gif') 0 3px no-repeat;
+ background: url('swipemode_sprites.gif') 0 3px no-repeat;
}
.bottom-handle {
@@ -234,7 +234,7 @@ $diff-file-header: 41px;
width: 15px;
position: absolute;
bottom: 0;
- background: image-url('swipemode_sprites.gif') 0 -11px no-repeat;
+ background: url('swipemode_sprites.gif') 0 -11px no-repeat;
}
}
}
@@ -272,7 +272,7 @@ $diff-file-header: 41px;
left: 12px;
height: 10px;
width: 276px;
- background: image-url('onion_skin_sprites.gif') -4px -20px repeat-x;
+ background: url('onion_skin_sprites.gif') -4px -20px repeat-x;
}
.dragger {
@@ -282,7 +282,7 @@ $diff-file-header: 41px;
top: 0;
height: 14px;
width: 14px;
- background: image-url('onion_skin_sprites.gif') 0 -34px repeat-x;
+ background: url('onion_skin_sprites.gif') 0 -34px repeat-x;
cursor: pointer;
}
@@ -293,7 +293,7 @@ $diff-file-header: 41px;
right: 0;
height: 10px;
width: 10px;
- background: image-url('onion_skin_sprites.gif') -2px 0 no-repeat;
+ background: url('onion_skin_sprites.gif') -2px 0 no-repeat;
}
.opaque {
@@ -303,7 +303,7 @@ $diff-file-header: 41px;
left: 0;
height: 10px;
width: 10px;
- background: image-url('onion_skin_sprites.gif') -2px -10px no-repeat;
+ background: url('onion_skin_sprites.gif') -2px -10px no-repeat;
}
}
}
@@ -770,12 +770,12 @@ table.code {
.frame.click-to-comment,
.btn-transparent.image-diff-overlay-add-comment {
position: relative;
- cursor: image-url('illustrations/image_comment_light_cursor.svg') $image-comment-cursor-left-offset $image-comment-cursor-top-offset,
+ cursor: url('illustrations/image_comment_light_cursor.svg') $image-comment-cursor-left-offset $image-comment-cursor-top-offset,
auto;
// Retina cursor
- cursor: image-set(image-url('illustrations/image_comment_light_cursor.svg') 1x,
- image-url('illustrations/image_comment_light_cursor@2x.svg') 2x) $image-comment-cursor-left-offset $image-comment-cursor-top-offset,
+ cursor: image-set(url('illustrations/image_comment_light_cursor.svg') 1x,
+ url('illustrations/image_comment_light_cursor@2x.svg') 2x) $image-comment-cursor-left-offset $image-comment-cursor-top-offset,
auto;
.comment-indicator {
@@ -944,3 +944,12 @@ table.code {
left: -2px !important;
}
}
+
+.diff-file.pinned-file .file-title {
+ background-color: $blue-50;
+ border-color: $blue-200;
+}
+
+.diff-file.pinned-file .diff-content {
+ border-color: $blue-200;
+}
diff --git a/app/assets/stylesheets/framework/dropdowns.scss b/app/assets/stylesheets/framework/dropdowns.scss
index e791a0dbbbd..2558ddec9b9 100644
--- a/app/assets/stylesheets/framework/dropdowns.scss
+++ b/app/assets/stylesheets/framework/dropdowns.scss
@@ -575,7 +575,7 @@
left: 1rem;
width: 1rem;
height: 1rem;
- mask-image: asset_url('icons-stacked.svg#check');
+ mask-image: url('icons-stacked.svg#check');
mask-repeat: no-repeat;
mask-size: cover;
mask-position: center center;
@@ -806,28 +806,6 @@
}
}
-@include media-breakpoint-down(xs) {
- .navbar-gitlab {
- li.dropdown {
- position: static;
- }
- }
-
- header.navbar-gitlab .dropdown {
- .dropdown-menu {
- width: 100%;
- min-width: 100%;
- }
- }
-
- header.navbar-gitlab-new .header-content .dropdown {
- .dropdown-menu {
- left: 0;
- min-width: 100%;
- }
- }
-}
-
.dropdown-content-faded-mask {
position: relative;
@@ -959,3 +937,17 @@
width: 100%;
}
}
+
+.group-namespace-dropdown .gl-new-dropdown-custom-toggle {
+ display: flex;
+ flex: auto;
+
+ .gl-button-text {
+ display: flex;
+ @include gl-w-full;
+ }
+}
+
+.group-namespace-dropdown .gl-new-dropdown-item-text-wrapper {
+ word-break: break-word;
+}
diff --git a/app/assets/stylesheets/framework/files.scss b/app/assets/stylesheets/framework/files.scss
index 9cb264c992b..7dcde5f0b3c 100644
--- a/app/assets/stylesheets/framework/files.scss
+++ b/app/assets/stylesheets/framework/files.scss
@@ -420,7 +420,7 @@ span.idiff {
@include gl-h-5;
@include gl-float-left;
background-color: $gray-400;
- mask-image: asset_url('icons-stacked.svg#doc-versions');
+ mask-image: url('icons-stacked.svg#doc-versions');
mask-repeat: no-repeat;
mask-size: cover;
mask-position: center;
diff --git a/app/assets/stylesheets/framework/flash.scss b/app/assets/stylesheets/framework/flash.scss
index 6b4f1478978..56667c10752 100644
--- a/app/assets/stylesheets/framework/flash.scss
+++ b/app/assets/stylesheets/framework/flash.scss
@@ -96,14 +96,6 @@ $notification-box-shadow-color: rgba(0, 0, 0, 0.25);
}
}
-@include media-breakpoint-down(sm) {
- ul.notes {
- .flash-container.timeline-content {
- margin-left: 0;
- }
- }
-}
-
.gl-browser-ie .flash-container {
position: fixed;
max-width: $limited-layout-width;
diff --git a/app/assets/stylesheets/framework/header.scss b/app/assets/stylesheets/framework/header.scss
index 23f40dfe4bf..84e69e40bc2 100644
--- a/app/assets/stylesheets/framework/header.scss
+++ b/app/assets/stylesheets/framework/header.scss
@@ -9,119 +9,6 @@
left: 0;
right: 0;
border-radius: 0;
-
- .close-icon {
- display: none;
- }
-
- .header-content {
- width: 100%;
- display: flex;
- justify-content: space-between;
- position: relative;
- min-height: var(--header-height);
- padding-left: 0;
-
- .title {
- padding-right: 0;
- color: currentColor;
- display: flex;
- position: relative;
- margin: 0;
- font-size: 18px;
- vertical-align: top;
- white-space: nowrap;
-
- img {
- height: 24px;
-
- + .logo-text {
- margin-left: 8px;
- }
- }
-
- &.wrap {
- white-space: normal;
- }
-
- &.initializing {
- opacity: 0;
- }
-
- a:not(.canary-badge) {
- display: flex;
- align-items: center;
- padding: 2px 8px;
- margin: 4px 2px 4px -8px;
- border-radius: $border-radius-default;
-
- &:active,
- &:focus {
- @include gl-focus($focus-ring: $focus-ring-dark);
- }
- }
- }
-
- .dropdown.open {
- > a {
- border-bottom-color: $white;
- }
- }
- }
-
- .container-fluid {
- padding: 0;
-
- .nav > li {
- > a {
- will-change: color;
- margin: 4px 0;
- padding: 6px 8px;
- height: 32px;
- }
- }
- }
-}
-
-.top-bar-container {
- min-height: $top-bar-height;
-}
-
-.top-bar-fixed {
- @include gl-inset-border-b-1-gray-100;
- background-color: $body-bg;
- left: var(--application-bar-left);
- position: fixed;
- right: var(--application-bar-right);
- top: $calc-application-bars-height;
- width: auto;
- z-index: $top-bar-z-index;
-
- @media (prefers-reduced-motion: no-preference) {
- transition: left $gl-transition-duration-medium, right $gl-transition-duration-medium;
- }
-}
-
-.breadcrumbs {
- flex: 1;
- min-width: 0;
- align-self: center;
- color: $gl-text-color-secondary;
-
- .avatar-tile {
- margin-right: 4px;
- border: 1px solid $border-color;
- border-radius: 50%;
- vertical-align: sub;
- }
-}
-
-.breadcrumb-item-text {
- text-decoration: inherit;
-
- @include media-breakpoint-down(xs) {
- @include str-truncated(128px);
- }
}
.navbar-empty {
@@ -173,17 +60,6 @@
@include media-breakpoint-down(xs) { margin-right: 3px; }
}
-.top-nav-menu-item {
- &.active,
- &:hover {
- background-color: $nav-active-bg !important;
- }
-
- .gl-icon {
- color: inherit !important;
- }
-}
-
.header-logged-out {
z-index: $header-zindex;
min-height: var(--header-height);
diff --git a/app/assets/stylesheets/framework/labels.scss b/app/assets/stylesheets/framework/labels.scss
new file mode 100644
index 00000000000..1933af5151c
--- /dev/null
+++ b/app/assets/stylesheets/framework/labels.scss
@@ -0,0 +1,56 @@
+// FF :simplified_labels
+//
+// Temporarily override label styles
+// globally
+//
+// Once verified we will update the
+// label component in GitLab UI
+// refactor GitLab and remove this
+// custom code
+//
+// see https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/3307
+.ff-simplified-labels-enabled {
+ // These changes will be moved to
+ // GitLab UI's label component
+ .gl-label,
+ .gl-label-sm {
+ @include gl-vertical-align-bottom;
+
+ &:focus:active {
+ @include gl-reset-color;
+ @include gl-shadow-none;
+ @include gl-outline-none;
+ }
+
+ .gl-label-text,
+ .gl-label-text-scoped {
+ @include gl-font-sm;
+ padding-block: $gl-spacing-scale-1;
+ padding-inline: calc(#{$gl-spacing-scale-3} - 2px);
+ }
+
+ > .gl-label-close.gl-button {
+ width: px-to-rem(14px);
+ height: px-to-rem(14px);
+ margin-left: calc(#{-$gl-spacing-scale-2} - 1px);
+ margin-right: calc(#{$gl-spacing-scale-2} - 1px);
+ }
+ }
+
+ // These changes will be moved to
+ // app/assets/stylesheets/framework/sidebar.scss
+ .issuable-show-labels .gl-label {
+ margin-bottom: $gl-spacing-scale-2;
+ margin-right: $gl-spacing-scale-2;
+ }
+
+ // These changes will be moved to
+ // app/assets/stylesheets/framework/typography.scss
+ .md p > code {
+ font-size: px-to-rem(13px);
+ }
+
+ .md code {
+ @include gl-vertical-align-bottom;
+ }
+}
diff --git a/app/assets/stylesheets/framework/layout.scss b/app/assets/stylesheets/framework/layout.scss
index 7ec13c3d54c..4ef53c673f6 100644
--- a/app/assets/stylesheets/framework/layout.scss
+++ b/app/assets/stylesheets/framework/layout.scss
@@ -1,6 +1,4 @@
html {
- overflow-y: scroll;
-
&.touch .tooltip {
display: none !important;
}
diff --git a/app/assets/stylesheets/framework/sidebar.scss b/app/assets/stylesheets/framework/sidebar.scss
index 0eecf7bddc1..04799a6b8f8 100644
--- a/app/assets/stylesheets/framework/sidebar.scss
+++ b/app/assets/stylesheets/framework/sidebar.scss
@@ -601,6 +601,7 @@
.gutter-toggle {
width: 100%;
height: $sidebar-toggle-height;
+ margin-top: 0;
margin-left: 0;
border-bottom: 1px solid $border-color;
border-radius: 0;
diff --git a/app/assets/stylesheets/framework/source_editor.scss b/app/assets/stylesheets/framework/source_editor.scss
index a09ab7ed64c..2b597634519 100644
--- a/app/assets/stylesheets/framework/source_editor.scss
+++ b/app/assets/stylesheets/framework/source_editor.scss
@@ -78,7 +78,7 @@
@include gl-mr-2;
@include gl-w-4;
@include gl-h-4;
- mask-image: asset_url('icons-stacked.svg#link');
+ mask-image: url('icons-stacked.svg#link');
mask-repeat: no-repeat;
mask-size: cover;
mask-position: center;
diff --git a/app/assets/stylesheets/framework/super_sidebar.scss b/app/assets/stylesheets/framework/super_sidebar.scss
index 84f0612a7b4..5a9a739fb13 100644
--- a/app/assets/stylesheets/framework/super_sidebar.scss
+++ b/app/assets/stylesheets/framework/super_sidebar.scss
@@ -22,7 +22,8 @@ $super-sidebar-transition-hint-duration: $super-sidebar-transition-duration / 4;
.super-sidebar {
--super-sidebar-bg: #{$gray-10};
--super-sidebar-border-color: #{$t-gray-a-08};
- --super-sidebar-primary: #{$blue-500};
+ --super-sidebar-context-header-color: inherit;
+ --super-sidebar-active-indicator-color: #{$blue-500};
--super-sidebar-notification-dot: #{$blue-500};
--super-sidebar-user-bar-bg: #{$t-gray-a-04};
@@ -42,6 +43,8 @@ $super-sidebar-transition-hint-duration: $super-sidebar-transition-duration / 4;
--super-sidebar-nav-item-current-bg: #{$t-gray-a-08};
--super-sidebar-nav-item-icon-color: #{$gray-500};
+ --super-sidebar-hr-mix-blend-mode: normal;
+
.gl-dark & {
--super-sidebar-border-color: #{$t-white-a-08};
--super-sidebar-user-bar-bg: #{$t-white-a-04};
@@ -58,7 +61,148 @@ $super-sidebar-transition-hint-duration: $super-sidebar-transition-duration / 4;
--super-sidebar-nav-item-current-bg: #{$t-white-a-08};
--super-sidebar-nav-item-icon-color: #{$gray-600};
}
+}
+
+@mixin super-sidebar-theme(
+ $background,
+ $user-bar-background,
+ $user-bar-button-color,
+ $user-bar-button-icon-color,
+ $context-header,
+ $active-indicator,
+ $notification-dot,
+) {
+ .super-sidebar {
+ --super-sidebar-bg: #{$background};
+ --super-sidebar-user-bar-bg: #{$user-bar-background};
+ --super-sidebar-context-header-color: #{$context-header};
+ --super-sidebar-active-indicator-color: #{$active-indicator};
+ --super-sidebar-notification-dot: #{$notification-dot};
+
+ --super-sidebar-user-bar-button-bg: #{$t-white-a-16};
+ --super-sidebar-user-bar-button-color: #{$user-bar-button-color};
+ --super-sidebar-user-bar-button-border-color: #{$t-white-a-16};
+ --super-sidebar-user-bar-button-hover-bg: #{$t-white-a-24};
+ --super-sidebar-user-bar-button-hover-color: #{$white};
+ --super-sidebar-user-bar-button-active-bg: #{$t-white-a-36};
+
+ --super-sidebar-user-bar-button-icon-color: #{$user-bar-button-icon-color};
+ --super-sidebar-user-bar-button-icon-hover-color: #{$user-bar-button-icon-color};
+ --super-sidebar-user-bar-button-icon-mix-blend-mode: screen;
+
+ --super-sidebar-hr-mix-blend-mode: multiply;
+ }
+}
+
+.ui-blue {
+ @include super-sidebar-theme(
+ $background: $theme-blue-10,
+ $user-bar-background: $theme-blue-900,
+ $user-bar-button-color: $theme-blue-50,
+ $user-bar-button-icon-color: $theme-blue-100,
+ $context-header: $theme-blue-900,
+ $active-indicator: $theme-blue-900,
+ $notification-dot: $theme-blue-900,
+ );
+}
+
+.ui-gray {
+ @include super-sidebar-theme(
+ $background: $gray-10,
+ $user-bar-background: $gray-900,
+ $user-bar-button-color: $gray-50,
+ $user-bar-button-icon-color: $gray-100,
+ $context-header: $gray-900,
+ $active-indicator: $gray-900,
+ $notification-dot: $gray-900,
+ );
+}
+
+.ui-green {
+ @include super-sidebar-theme(
+ $background: $theme-green-10,
+ $user-bar-background: $theme-green-900,
+ $user-bar-button-color: $theme-green-50,
+ $user-bar-button-icon-color: $theme-green-100,
+ $context-header: $theme-green-900,
+ $active-indicator: $theme-green-900,
+ $notification-dot: $theme-green-900,
+ );
+}
+
+.ui-indigo {
+ @include super-sidebar-theme(
+ $background: $theme-indigo-10,
+ $user-bar-background: $theme-indigo-900,
+ $user-bar-button-color: $theme-indigo-50,
+ $user-bar-button-icon-color: $theme-indigo-100,
+ $context-header: $theme-indigo-900,
+ $active-indicator: $theme-indigo-900,
+ $notification-dot: $theme-indigo-900,
+ );
+}
+
+.ui-light-blue {
+ @include super-sidebar-theme(
+ $background: $theme-light-blue-10,
+ $user-bar-background: $theme-light-blue-700,
+ $user-bar-button-color: $theme-light-blue-50,
+ $user-bar-button-icon-color: $theme-light-blue-100,
+ $context-header: $theme-light-blue-900,
+ $active-indicator: $theme-light-blue-900,
+ $notification-dot: $theme-light-blue-900,
+ );
+}
+
+.ui-light-green {
+ @include super-sidebar-theme(
+ $background: $theme-green-10,
+ $user-bar-background: $theme-green-700,
+ $user-bar-button-color: $theme-green-50,
+ $user-bar-button-icon-color: $theme-green-100,
+ $context-header: $theme-green-900,
+ $active-indicator: $theme-green-900,
+ $notification-dot: $theme-green-900,
+ );
+}
+
+.ui-light-indigo {
+ @include super-sidebar-theme(
+ $background: $theme-indigo-10,
+ $user-bar-background: $theme-indigo-700,
+ $user-bar-button-color: $theme-indigo-50,
+ $user-bar-button-icon-color: $theme-indigo-100,
+ $context-header: $theme-indigo-900,
+ $active-indicator: $theme-indigo-900,
+ $notification-dot: $theme-indigo-900,
+ );
+}
+
+.ui-light-red {
+ @include super-sidebar-theme(
+ $background: $theme-light-red-10,
+ $user-bar-background: $theme-light-red-700,
+ $user-bar-button-color: $theme-light-red-50,
+ $user-bar-button-icon-color: $theme-light-red-100,
+ $context-header: $theme-light-red-900,
+ $active-indicator: $theme-light-red-900,
+ $notification-dot: $theme-light-red-900,
+ );
+}
+.ui-red {
+ @include super-sidebar-theme(
+ $background: $theme-red-10,
+ $user-bar-background: $theme-red-900,
+ $user-bar-button-color: $theme-red-50,
+ $user-bar-button-icon-color: $theme-red-100,
+ $context-header: $theme-red-900,
+ $active-indicator: $theme-red-900,
+ $notification-dot: $theme-red-900,
+ );
+}
+
+.super-sidebar {
display: flex;
flex-direction: column;
position: fixed;
@@ -167,8 +311,12 @@ $super-sidebar-transition-hint-duration: $super-sidebar-transition-duration / 4;
color: var(--super-sidebar-nav-item-icon-color);
}
+ hr {
+ mix-blend-mode: var(--super-sidebar-hr-mix-blend-mode);
+ }
+
.active-indicator {
- background-color: var(--super-sidebar-primary);
+ background-color: var(--super-sidebar-active-indicator-color);
}
.btn-with-notification {
@@ -200,6 +348,10 @@ $super-sidebar-transition-hint-duration: $super-sidebar-transition-duration / 4;
}
}
+.super-sidebar-context-header {
+ color: var(--super-sidebar-context-header-color);
+}
+
.super-sidebar-overlay {
display: none;
}
@@ -408,6 +560,13 @@ $super-sidebar-transition-hint-duration: $super-sidebar-transition-duration / 4;
}
}
+.super-sidebar-empty-pinned-text {
+ mix-blend-mode: multiply;
+
+ .gl-dark & {
+ mix-blend-mode: screen;
+ }
+}
// Styles for the ScrollScrim component.
// Should eventually be moved to gitlab-ui.
@@ -461,3 +620,17 @@ $scroll-scrim-height: 2.25rem;
opacity: 1;
}
}
+
+// Tweaks to the styles for the ScrollScrim component above (line 418)
+// are leaking into the collapsible list box dropdowns
+// https://gitlab.com/gitlab-org/gitlab/-/issues/435538
+
+.gl-new-dropdown {
+ .top-scrim-wrapper {
+ margin-bottom: 0;
+ }
+
+ .bottom-scrim-wrapper {
+ margin-top: 0;
+ }
+}
diff --git a/app/assets/stylesheets/framework/top_bar.scss b/app/assets/stylesheets/framework/top_bar.scss
new file mode 100644
index 00000000000..d4b36b82584
--- /dev/null
+++ b/app/assets/stylesheets/framework/top_bar.scss
@@ -0,0 +1,20 @@
+.top-bar-container {
+ min-height: $top-bar-height;
+}
+
+.top-bar-fixed {
+ @include gl-inset-border-b-1-gray-100;
+ background-color: $body-bg;
+ position: fixed;
+ left: var(--application-bar-left);
+ right: var(--application-bar-right);
+ top: $calc-application-bars-height;
+ width: calc(100% - var(--application-bar-left));
+ z-index: $top-bar-z-index;
+
+ @media (prefers-reduced-motion: no-preference) {
+ transition: left $gl-transition-duration-medium,
+ right $gl-transition-duration-medium,
+ width $gl-transition-duration-medium;
+ }
+}
diff --git a/app/assets/stylesheets/framework/typography.scss b/app/assets/stylesheets/framework/typography.scss
index eefdbda8f4f..15e794fc347 100644
--- a/app/assets/stylesheets/framework/typography.scss
+++ b/app/assets/stylesheets/framework/typography.scss
@@ -495,7 +495,7 @@
&::after {
@include gl-dark-invert-keep-hue;
- content: image-url('icon_anchor.svg');
+ content: url('icon_anchor.svg');
visibility: hidden;
}
}
@@ -602,6 +602,20 @@
}
@include email-code-block;
+
+ &.gl-text-secondary {
+ color: $gl-text-color-secondary;
+
+ p,
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ table:not(.code) {
+ color: $gl-text-color-secondary;
+ }
+ }
}
/**
diff --git a/app/assets/stylesheets/highlight/common.scss b/app/assets/stylesheets/highlight/common.scss
index 23fa1326881..3fd72904655 100644
--- a/app/assets/stylesheets/highlight/common.scss
+++ b/app/assets/stylesheets/highlight/common.scss
@@ -118,7 +118,7 @@
@include gl-w-5;
@include gl-h-5;
background-color: rgba($color, 0.3);
- mask-image: asset_url('icons-stacked.svg##{$icon}');
+ mask-image: url('icons-stacked.svg##{$icon}');
mask-repeat: no-repeat;
mask-size: cover;
mask-position: center;
diff --git a/app/assets/stylesheets/page_bundles/issuable.scss b/app/assets/stylesheets/page_bundles/issuable.scss
index 8b353b42f58..05563f8e314 100644
--- a/app/assets/stylesheets/page_bundles/issuable.scss
+++ b/app/assets/stylesheets/page_bundles/issuable.scss
@@ -105,8 +105,3 @@
@include gl-font-weight-normal;
}
}
-
-[data-page="projects:issues:show"] .top-bar-fixed,
-[data-page="groups:epics:show"] .top-bar-fixed {
- width: 100%;
-}
diff --git a/app/assets/stylesheets/page_bundles/issuable_list.scss b/app/assets/stylesheets/page_bundles/issuable_list.scss
index 1ca0c5e7ce6..9084bffa951 100644
--- a/app/assets/stylesheets/page_bundles/issuable_list.scss
+++ b/app/assets/stylesheets/page_bundles/issuable_list.scss
@@ -90,12 +90,19 @@
.issuable-list li,
.issuable-info-container .controls {
.avatar-counter {
- display: inline-block;
- vertical-align: middle;
- min-width: 16px;
+ @include gl-pl-1
+ @include gl-pr-2;
+ @include gl-h-5;
+ @include gl-min-w-5;
line-height: 14px;
- height: 16px;
- padding-left: 2px;
- padding-right: 2px;
+ }
+}
+
+.merge-request {
+ .issuable-info-container .controls {
+ .avatar-counter {
+ @include gl-line-height-normal;
+ border: 0;
+ }
}
}
diff --git a/app/assets/stylesheets/page_bundles/labels.scss b/app/assets/stylesheets/page_bundles/labels.scss
index bc0bf4bc490..3204e678986 100644
--- a/app/assets/stylesheets/page_bundles/labels.scss
+++ b/app/assets/stylesheets/page_bundles/labels.scss
@@ -1,54 +1,5 @@
@import 'mixins_and_variables_and_functions';
-.suggest-colors {
- padding-top: 3px;
-
- a {
- border-radius: 4px;
- width: 30px;
- height: 30px;
- display: inline-block;
- margin-right: 10px;
- margin-bottom: 10px;
- text-decoration: none;
-
- &:focus,
- &:focus:active {
- position: relative;
- z-index: 1;
- @include gl-focus;
- }
- }
-
- &.suggest-colors-dropdown {
- margin-top: 10px;
- margin-bottom: 10px;
-
- a {
- border-radius: 0;
- width: (100% / 7);
- margin-right: 0;
- margin-bottom: -5px;
-
- &:first-of-type {
- border-top-left-radius: $gl-border-radius-base;
- }
-
- &:nth-of-type(7) {
- border-top-right-radius: $gl-border-radius-base;
- }
-
- &:nth-last-child(7) {
- border-bottom-left-radius: $gl-border-radius-base;
- }
-
- &:last-of-type {
- border-bottom-right-radius: $gl-border-radius-base;
- }
- }
- }
-}
-
.labels-select-contents-create {
.dropdown-input {
margin-bottom: 4px;
diff --git a/app/assets/stylesheets/page_bundles/login.scss b/app/assets/stylesheets/page_bundles/login.scss
index b63f199f7b9..11582ff72f0 100644
--- a/app/assets/stylesheets/page_bundles/login.scss
+++ b/app/assets/stylesheets/page_bundles/login.scss
@@ -16,43 +16,8 @@
top: 8px;
}
- .brand-holder {
- font-size: 18px;
- line-height: 1.5;
-
- p {
- font-size: 16px;
- color: $login-brand-holder-color;
- }
-
- h3 {
- font-size: 22px;
- }
-
- img {
- max-width: 100%;
- margin-bottom: 30px;
- }
-
- a {
- font-weight: $gl-font-weight-bold;
- }
- }
-
- p {
- font-size: 13px;
- }
-
- .signin-text {
- p {
- margin-bottom: 0;
- line-height: 1.5;
- }
- }
-
.borderless {
- .login-box,
- .omniauth-container {
+ .login-box {
box-shadow: none;
}
}
@@ -64,67 +29,6 @@
}
}
- .login-box,
- .omniauth-container {
- box-shadow: 0 0 0 1px $border-color;
- border-radius: $border-radius;
-
- .login-heading h3 {
- font-weight: $gl-font-weight-normal;
- line-height: 1.5;
- margin: 0 0 10px;
- }
-
- .login-footer {
- margin-top: 10px;
-
- p:last-child {
- margin-bottom: 0;
- }
- }
-
- a.forgot {
- float: right;
- padding-top: 6px;
- }
-
- .nav .active a {
- background: transparent;
- }
-
- // Styles the glowing border of focused input for username async validation
- .login-body {
- font-size: 13px;
-
- .username .validation-success {
- color: $green-600;
- }
-
- .username .validation-error {
- color: $red-500;
- }
-
- .terms .gl-form-checkbox {
- @include gl-reset-font-size;
- }
- }
- }
-
- .omniauth-container {
- border-radius: $border-radius;
- font-size: 13px;
-
- p {
- margin: 0;
- }
-
- form {
- padding: 0;
- border: 0;
- background: none;
- }
- }
-
.new-session-tabs {
&.nav-links-unboxed {
border-color: transparent;
@@ -143,30 +47,6 @@
border-top-right-radius: $border-radius-default;
border-top-left-radius: $border-radius-default;
- // Ldap configurations may need more tabs & the tab labels are user generated (arbitrarily long).
- // These styles prevent this from breaking the layout, and only applied when providers are configured.
- &.custom-provider-tabs {
- flex-wrap: wrap;
-
- li {
- min-width: 85px;
- flex-basis: auto;
-
- // This styles tab elements that have wrapped to a second line. We cannot easily predict when this will happen.
- // We are making somewhat of an assumption about the configuration here: that users do not have more than
- // 3 LDAP servers configured (in addition to standard login) and they are not using especially long names for any
- // of them. If either condition is false, this will work as expected. If both are true, there may be a missing border
- // above one of the bottom row elements. If you know a better way, please implement it!
- &:nth-child(n+5) {
- border-top: 1px solid $border-color;
- }
- }
-
- a {
- font-size: 16px;
- }
- }
-
li {
flex: 1;
text-align: center;
@@ -230,11 +110,8 @@
height: 100%;
body {
- padding-top: 48px; // Remove this line when the restyle_login_page feature flag is deleted. Instead, add self-align `center` to container, and maybe a top margin.
-
&.with-system-header {
padding-top: $system-header-height;
- padding-top: calc(#{$system-header-height} + 48px); // Remove this line when the restyle_login_page feature flag is deleted
}
&.with-system-footer {
diff --git a/app/assets/stylesheets/page_bundles/merge_requests.scss b/app/assets/stylesheets/page_bundles/merge_requests.scss
index d112fd83ebf..b30ec4b4253 100644
--- a/app/assets/stylesheets/page_bundles/merge_requests.scss
+++ b/app/assets/stylesheets/page_bundles/merge_requests.scss
@@ -259,7 +259,7 @@ $tabs-holder-z-index: 250;
position: sticky;
top: calc(#{$calc-application-header-height} + #{$mr-tabs-height} + #{$diff-file-header-top});
// height calc is fully delegated to the tree_list_height.vue component
- height: 0;
+ height: 100%;
min-height: 300px;
.drag-handle {
diff --git a/app/assets/stylesheets/page_bundles/pipeline.scss b/app/assets/stylesheets/page_bundles/pipeline.scss
index 9bab5d65b59..c729bd7a380 100644
--- a/app/assets/stylesheets/page_bundles/pipeline.scss
+++ b/app/assets/stylesheets/page_bundles/pipeline.scss
@@ -130,6 +130,11 @@
.gl-pipeline-job-width {
width: 100%;
+ max-width: 400px;
+
+ .pipeline-graph-container & {
+ max-width: unset;
+ }
}
.gl-pipeline-job-width\! {
@@ -318,3 +323,13 @@
background-color: $gray-100;
}
}
+
+.scan-reports-summary-grid {
+ grid-template-columns: 1fr 1fr max-content;
+}
+
+@media (max-width: $breakpoint-sm) {
+ .scan-reports-summary-grid :nth-child(3n+1) {
+ grid-column: 1 / -1;
+ }
+}
diff --git a/app/assets/stylesheets/page_bundles/profile.scss b/app/assets/stylesheets/page_bundles/profile.scss
index 9a8eeb9c9d6..912f0145bf1 100644
--- a/app/assets/stylesheets/page_bundles/profile.scss
+++ b/app/assets/stylesheets/page_bundles/profile.scss
@@ -164,12 +164,6 @@
.user-profile {
.profile-header {
- margin: 0 $gl-padding;
-
- &.with-no-profile-tabs {
- margin-bottom: $gl-padding-24;
- }
-
.avatar-holder {
margin: 0 auto 10px;
}
diff --git a/app/assets/stylesheets/page_bundles/project.scss b/app/assets/stylesheets/page_bundles/project.scss
index c2ecf3702f9..bd24d991c8d 100644
--- a/app/assets/stylesheets/page_bundles/project.scss
+++ b/app/assets/stylesheets/page_bundles/project.scss
@@ -189,10 +189,6 @@
.project-page-sidebar-block {
width: $right-sidebar-width - 1px;
-
- &:first-of-type {
- padding-top: $gl-spacing-scale-1;
- }
}
.nav {
diff --git a/app/assets/stylesheets/page_bundles/search.scss b/app/assets/stylesheets/page_bundles/search.scss
index b145d046fa4..87d0d5b91d3 100644
--- a/app/assets/stylesheets/page_bundles/search.scss
+++ b/app/assets/stylesheets/page_bundles/search.scss
@@ -281,14 +281,6 @@ $language-filter-max-height: 20rem;
margin-right: 5px;
}
}
-
- .dropdown-menu-toggle,
- .gl-dropdown {
- @include media-breakpoint-up(sm) {
- width: 180px;
- margin-top: 0;
- }
- }
}
.search-page-form {
diff --git a/app/assets/stylesheets/page_bundles/wiki.scss b/app/assets/stylesheets/page_bundles/wiki.scss
index ed2c7662a98..6d85a4da035 100644
--- a/app/assets/stylesheets/page_bundles/wiki.scss
+++ b/app/assets/stylesheets/page_bundles/wiki.scss
@@ -101,7 +101,7 @@
}
.active > .wiki-list {
- background-color: $gray-50;
+ background-color: var(--gray-50, $gray-50);
}
.wiki-list {
@@ -110,7 +110,7 @@
@include gl-rounded-base;
&:hover {
- background: $gray-50;
+ background: var(--gray-50, $gray-50);
.wiki-list-create-child-button {
display: block;
@@ -150,10 +150,6 @@
.wiki-sidebar-header {
padding: 0 $gl-padding $gl-padding;
-
- .gutter-toggle {
- margin-top: 0;
- }
}
}
diff --git a/app/assets/stylesheets/page_bundles/work_items.scss b/app/assets/stylesheets/page_bundles/work_items.scss
index b9ab2450ff9..5b354f3575c 100644
--- a/app/assets/stylesheets/page_bundles/work_items.scss
+++ b/app/assets/stylesheets/page_bundles/work_items.scss
@@ -4,6 +4,7 @@
$work-item-field-inset-shadow: inset 0 0 0 $gl-border-size-1 var(--gray-200, $gray-200) !important;
$work-item-overview-right-sidebar-width: 23rem;
$work-item-sticky-header-height: 52px;
+$work-item-overview-gap-width: 2rem;
.gl-token-selector-token-container {
display: flex;
@@ -146,7 +147,7 @@ $work-item-sticky-header-height: 52px;
@include media-breakpoint-up(md) {
display: grid;
grid-template-columns: 1fr $work-item-overview-right-sidebar-width;
- gap: 2rem;
+ gap: $work-item-overview-gap-width;
}
}
@@ -216,6 +217,12 @@ $work-item-sticky-header-height: 52px;
}
}
+.editable-wi-title {
+ width: 100%;
+ @include media-breakpoint-up(md) {
+ width: calc(100% - #{$work-item-overview-right-sidebar-width} - #{$work-item-overview-gap-width});
+ }
+}
// Disclosure hierarchy component, used for Ancestors widget
$disclosure-hierarchy-chevron-dimension: 1.2rem;
diff --git a/app/assets/stylesheets/pages/colors.scss b/app/assets/stylesheets/pages/colors.scss
index 85c1f7da07f..aeaf2d7c1b3 100644
--- a/app/assets/stylesheets/pages/colors.scss
+++ b/app/assets/stylesheets/pages/colors.scss
@@ -29,3 +29,52 @@
.danger-title {
color: var(--red-500, $red-500);
}
+
+.suggest-colors {
+ padding-top: 3px;
+
+ a {
+ border-radius: 4px;
+ width: 30px;
+ height: 30px;
+ display: inline-block;
+ margin-right: 10px;
+ margin-bottom: 10px;
+ text-decoration: none;
+
+ &:focus,
+ &:focus:active {
+ position: relative;
+ z-index: 1;
+ @include gl-focus;
+ }
+ }
+
+ &.suggest-colors-dropdown {
+ margin-top: 10px;
+ margin-bottom: 10px;
+
+ a {
+ border-radius: 0;
+ width: (100% / 7);
+ margin-right: 0;
+ margin-bottom: -5px;
+
+ &:first-of-type {
+ border-top-left-radius: $gl-border-radius-base;
+ }
+
+ &:nth-of-type(7) {
+ border-top-right-radius: $gl-border-radius-base;
+ }
+
+ &:nth-last-child(7) {
+ border-bottom-left-radius: $gl-border-radius-base;
+ }
+
+ &:last-of-type {
+ border-bottom-right-radius: $gl-border-radius-base;
+ }
+ }
+ }
+}
diff --git a/app/assets/stylesheets/pages/issues.scss b/app/assets/stylesheets/pages/issues.scss
index 9748983d1ae..f57a8519992 100644
--- a/app/assets/stylesheets/pages/issues.scss
+++ b/app/assets/stylesheets/pages/issues.scss
@@ -225,7 +225,7 @@ ul.related-merge-requests > li gl-emoji {
&::after {
@include gl-dark-invert-keep-hue;
- content: image-url('icon_anchor.svg');
+ content: url('icon_anchor.svg');
visibility: hidden;
}
}
diff --git a/app/assets/stylesheets/pages/notes.scss b/app/assets/stylesheets/pages/notes.scss
index 8792c7f9a72..da03726fa64 100644
--- a/app/assets/stylesheets/pages/notes.scss
+++ b/app/assets/stylesheets/pages/notes.scss
@@ -88,18 +88,18 @@ $system-note-icon-m-left: $avatar-m-left + $icon-size-diff / $avatar-m-ratio;
margin-top: 5px;
}
- .timeline-content:not(.flash-container) {
+ .timeline-content {
margin-left: 2.5rem;
border: 1px solid $border-color;
border-radius: $gl-border-radius-base;
padding: $gl-padding-4 $gl-padding-8;
}
- &:not(.target) .timeline-content:not(.flash-container) {
+ &:not(.target) .timeline-content {
background-color: $white;
}
- &.draft-note .timeline-content:not(.flash-container) {
+ &.draft-note .timeline-content {
border: 0;
}
@@ -127,7 +127,7 @@ $system-note-icon-m-left: $avatar-m-left + $icon-size-diff / $avatar-m-ratio;
margin-top: 5px;
}
- .timeline-content:not(.flash-container) {
+ .timeline-content {
margin-left: 2.5rem;
border-left: 1px solid $border-color;
border-right: 1px solid $border-color;
@@ -138,11 +138,11 @@ $system-note-icon-m-left: $avatar-m-left + $icon-size-diff / $avatar-m-ratio;
}
}
- &:not(.target) .timeline-content:not(.flash-container) {
+ &:not(.target) .timeline-content {
background-color: $white;
}
- &.draft-note .timeline-content:not(.flash-container) {
+ &.draft-note .timeline-content {
margin-left: 0;
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -154,7 +154,7 @@ $system-note-icon-m-left: $avatar-m-left + $icon-size-diff / $avatar-m-ratio;
border-right: 1px solid $border-color;
background-color: $white;
- .timeline-content:not(.flash-container) {
+ .timeline-content {
padding: $gl-padding-8 $gl-padding-8 $gl-padding-8 18px;
}
@@ -419,7 +419,6 @@ $system-note-icon-m-left: $avatar-m-left + $icon-size-diff / $avatar-m-ratio;
.system-note-commit-list-toggler {
color: $blue-600;
- padding: 10px 0 0;
cursor: pointer;
position: relative;
z-index: 2;
@@ -966,7 +965,7 @@ $system-note-icon-m-left: $avatar-m-left + $icon-size-diff / $avatar-m-ratio;
.unified-diff-components-diff-note-button {
&::before {
background-color: $blue-500;
- mask-image: asset_url('icons-stacked.svg#comment');
+ mask-image: url('icons-stacked.svg#comment');
mask-repeat: no-repeat;
mask-size: cover;
mask-position: center;
@@ -1057,7 +1056,7 @@ $system-note-icon-m-left: $avatar-m-left + $icon-size-diff / $avatar-m-ratio;
padding-left: 0;
ul.notes li.note-wrapper {
- .timeline-content:not(.flash-container) {
+ .timeline-content {
padding: $gl-padding-8 $gl-padding-8 $gl-padding-8 $gl-padding;
}
@@ -1106,7 +1105,7 @@ $system-note-icon-m-left: $avatar-m-left + $icon-size-diff / $avatar-m-ratio;
}
.draft-note-component.draft-note.timeline-entry {
- .timeline-content:not(.flash-container) {
+ .timeline-content {
padding: $gl-padding-8 $gl-padding-8 $gl-padding-8 $gl-padding;
}
diff --git a/app/assets/stylesheets/print.scss b/app/assets/stylesheets/print.scss
index 315b9c829a7..d6fcfb3461d 100644
--- a/app/assets/stylesheets/print.scss
+++ b/app/assets/stylesheets/print.scss
@@ -4,97 +4,99 @@
@import '@gitlab/ui/src/scss/variables';
@import '@gitlab/ui/src/scss/utility-mixins/index';
-.md h1,
-.md h2,
-.md h3,
-.md h4,
-.md h5,
-.md h6 {
- margin-top: 17px;
-}
+@media print {
+ .md h1,
+ .md h2,
+ .md h3,
+ .md h4,
+ .md h5,
+ .md h6 {
+ margin-top: 17px;
+ }
-.md h1 {
- font-size: 30px;
-}
+ .md h1 {
+ font-size: 30px;
+ }
-.md h2 {
- font-size: 22px;
-}
+ .md h2 {
+ font-size: 22px;
+ }
-.md h3 {
- font-size: 18px;
- font-weight: 600;
-}
+ .md h3 {
+ font-size: 18px;
+ font-weight: 600;
+ }
-.md {
- print-color-adjust: exact;
- -webkit-print-color-adjust: exact;
+ .md {
+ print-color-adjust: exact;
+ -webkit-print-color-adjust: exact;
- // fix blockquote style in print
- blockquote {
- &::before {
- position: absolute;
- top: 0;
- left: -4px;
- content: ' ';
- height: 100%;
- width: 4px;
- background-color: $gray-100;
- }
+ // fix blockquote style in print
+ blockquote {
+ &::before {
+ position: absolute;
+ top: 0;
+ left: -4px;
+ content: ' ';
+ height: 100%;
+ width: 4px;
+ background-color: $gray-100;
+ }
- position: relative;
- font-size: inherit;
- @include gl-text-gray-700;
- @include gl-py-3;
- @include gl-pl-6;
- @include gl-my-3;
- @include gl-mx-0;
- @include gl-inset-border-l-4-gray-100;
- margin-left: 4px;
- border: 0 !important;
+ position: relative;
+ font-size: inherit;
+ @include gl-text-gray-700;
+ @include gl-py-3;
+ @include gl-pl-6;
+ @include gl-my-3;
+ @include gl-mx-0;
+ @include gl-inset-border-l-4-gray-100;
+ margin-left: 4px;
+ border: 0 !important;
+ }
}
-}
-header,
-nav,
-.nav-sidebar,
-.super-sidebar,
-.profiler-results,
-.tree-ref-holder,
-.tree-holder .breadcrumb,
-.nav,
-.btn,
-ul.notes-form,
-.issuable-gutter-toggle,
-.gutter-toggle,
-.issuable-details .content-block-small,
-.edit-link,
-.note-action-button,
-.right-sidebar,
-.flash-container,
-copy-code,
-#js-peek {
- display: none !important;
-}
+ header,
+ nav,
+ .nav-sidebar,
+ .super-sidebar,
+ .profiler-results,
+ .tree-ref-holder,
+ .tree-holder .breadcrumb,
+ .nav,
+ .btn,
+ ul.notes-form,
+ .issuable-gutter-toggle,
+ .gutter-toggle,
+ .issuable-details .content-block-small,
+ .edit-link,
+ .note-action-button,
+ .right-sidebar,
+ .flash-container,
+ copy-code,
+ #js-peek {
+ display: none !important;
+ }
-pre {
- page-break-before: avoid;
- page-break-inside: auto;
-}
+ pre {
+ page-break-before: avoid;
+ page-break-inside: auto;
+ }
-.page-gutter {
- padding-top: 0;
- padding-left: 0;
-}
+ .page-gutter {
+ padding-top: 0;
+ padding-left: 0;
+ }
-.right-sidebar {
- top: 0;
-}
+ .right-sidebar {
+ top: 0;
+ }
-a[href]::after {
- content: none !important;
-}
+ a[href]::after {
+ content: none !important;
+ }
-.with-performance-bar .layout-page {
- padding-top: 0;
+ .with-performance-bar .layout-page {
+ padding-top: 0;
+ }
}
diff --git a/app/assets/stylesheets/snippets.scss b/app/assets/stylesheets/snippets.scss
index 91b381462be..e1b14df683e 100644
--- a/app/assets/stylesheets/snippets.scss
+++ b/app/assets/stylesheets/snippets.scss
@@ -15,8 +15,7 @@
.gl-snippet-icon {
display: inline-block;
- /* stylelint-disable-next-line function-url-quotes */
- background: url(asset_path('ext_snippet_icons/ext_snippet_icons.png')) no-repeat;
+ background: url('ext_snippet_icons/ext_snippet_icons.png') no-repeat;
overflow: hidden;
text-align: left;
width: 16px;
diff --git a/app/assets/stylesheets/themes/dark_mode_overrides.scss b/app/assets/stylesheets/themes/dark_mode_overrides.scss
index 3ab3e195b06..59c2391d2e9 100644
--- a/app/assets/stylesheets/themes/dark_mode_overrides.scss
+++ b/app/assets/stylesheets/themes/dark_mode_overrides.scss
@@ -1,7 +1,6 @@
@import './themes/dark';
@import '@gitlab/ui/dist/tokens/css/tokens.dark';
@import 'page_bundles/mixins_and_variables_and_functions';
-@import './themes/theme_helper';
:root {
color-scheme: dark;
diff --git a/app/assets/stylesheets/themes/theme_blue.scss b/app/assets/stylesheets/themes/theme_blue.scss
deleted file mode 100644
index 1a373fbfeda..00000000000
--- a/app/assets/stylesheets/themes/theme_blue.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-blue {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $theme-blue-50,
- $theme-blue-100,
- $theme-blue-900,
- $theme-blue-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_gray.scss b/app/assets/stylesheets/themes/theme_gray.scss
deleted file mode 100644
index 9a24142f286..00000000000
--- a/app/assets/stylesheets/themes/theme_gray.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-gray {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $gray-50,
- $gray-100,
- $gray-900,
- $gray-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_green.scss b/app/assets/stylesheets/themes/theme_green.scss
deleted file mode 100644
index a766fdddc78..00000000000
--- a/app/assets/stylesheets/themes/theme_green.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-green {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $theme-green-50,
- $theme-green-100,
- $theme-green-900,
- $theme-green-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_helper.scss b/app/assets/stylesheets/themes/theme_helper.scss
deleted file mode 100644
index c94a32891f6..00000000000
--- a/app/assets/stylesheets/themes/theme_helper.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-@import '../page_bundles/mixins_and_variables_and_functions';
-/**
- * Styles the GitLab application with a specific color theme
- */
-@mixin gitlab-theme-super-sidebar(
- $theme-color-lightest,
- $theme-color-light,
- $theme-color,
- $theme-color-darkest,
-) {
- .super-sidebar {
- --super-sidebar-bg: #{mix(white, $theme-color-lightest, 50%)};
- --super-sidebar-user-bar-bg: #{$theme-color};
- --super-sidebar-primary: #{$theme-color};
- --super-sidebar-notification-dot: #{$theme-color-darkest};
-
- --super-sidebar-user-bar-button-bg: #{$t-white-a-16};
- --super-sidebar-user-bar-button-color: #{$theme-color-lightest};
- --super-sidebar-user-bar-button-border-color: #{$t-white-a-16};
- --super-sidebar-user-bar-button-hover-bg: #{$t-white-a-24};
- --super-sidebar-user-bar-button-hover-color: #{$white};
- --super-sidebar-user-bar-button-active-bg: #{$t-white-a-36};
-
- --super-sidebar-user-bar-button-icon-color: #{$theme-color-light};
- --super-sidebar-user-bar-button-icon-hover-color: #{$theme-color-light};
- --super-sidebar-user-bar-button-icon-mix-blend-mode: screen;
-
- hr {
- mix-blend-mode: multiply;
- }
-
- .super-sidebar-context-header {
- color: var(--super-sidebar-primary);
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_indigo.scss b/app/assets/stylesheets/themes/theme_indigo.scss
deleted file mode 100644
index d0a8d597b59..00000000000
--- a/app/assets/stylesheets/themes/theme_indigo.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-indigo {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $theme-indigo-50,
- $theme-indigo-100,
- $theme-indigo-900,
- $theme-indigo-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_light_blue.scss b/app/assets/stylesheets/themes/theme_light_blue.scss
deleted file mode 100644
index e712b6ae859..00000000000
--- a/app/assets/stylesheets/themes/theme_light_blue.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-light-blue {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $theme-light-blue-50,
- $theme-light-blue-100,
- $theme-light-blue-700,
- $theme-light-blue-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_light_gray.scss b/app/assets/stylesheets/themes/theme_light_gray.scss
deleted file mode 100644
index 5cb9bee37b0..00000000000
--- a/app/assets/stylesheets/themes/theme_light_gray.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-// "Light gray" is the default unthemed state of the sidebar.
-// Nothing to do here.
diff --git a/app/assets/stylesheets/themes/theme_light_green.scss b/app/assets/stylesheets/themes/theme_light_green.scss
deleted file mode 100644
index 44e19b02e36..00000000000
--- a/app/assets/stylesheets/themes/theme_light_green.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-light-green {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $theme-green-50,
- $theme-green-100,
- $theme-green-700,
- $theme-green-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_light_indigo.scss b/app/assets/stylesheets/themes/theme_light_indigo.scss
deleted file mode 100644
index ab299ca9d84..00000000000
--- a/app/assets/stylesheets/themes/theme_light_indigo.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-light-indigo {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $theme-indigo-50,
- $theme-indigo-100,
- $theme-indigo-700,
- $theme-indigo-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_light_red.scss b/app/assets/stylesheets/themes/theme_light_red.scss
deleted file mode 100644
index 499cdace772..00000000000
--- a/app/assets/stylesheets/themes/theme_light_red.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-light-red {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $theme-light-red-50,
- $theme-light-red-100,
- $theme-light-red-700,
- $theme-light-red-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/themes/theme_red.scss b/app/assets/stylesheets/themes/theme_red.scss
deleted file mode 100644
index 9a17f98aa80..00000000000
--- a/app/assets/stylesheets/themes/theme_red.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import './theme_helper';
-
-:root {
- &.ui-red {
- .page-with-super-sidebar {
- @include gitlab-theme-super-sidebar(
- $theme-red-50,
- $theme-red-100,
- $theme-red-900,
- $theme-red-900,
- );
- }
- }
-}
diff --git a/app/assets/stylesheets/utilities.scss b/app/assets/stylesheets/utilities.scss
index 79ea8d3cc70..7ae17f4c191 100644
--- a/app/assets/stylesheets/utilities.scss
+++ b/app/assets/stylesheets/utilities.scss
@@ -136,3 +136,13 @@
.gl-last-of-type-border-b-0:last-of-type {
@include gl-border-b-0;
}
+
+.gl-md-h-9 {
+ @include gl-media-breakpoint-up(md) {
+ height: $gl-spacing-scale-9;
+ }
+}
+
+.gl-pl-12 {
+ padding-left: $gl-spacing-scale-12;
+}
diff --git a/app/assets/stylesheets/vendors/_index.scss b/app/assets/stylesheets/vendors/_index.scss
new file mode 100644
index 00000000000..e26ba23d1b9
--- /dev/null
+++ b/app/assets/stylesheets/vendors/_index.scss
@@ -0,0 +1 @@
+@import './atwho';
diff --git a/app/components/pajamas/avatar_component.rb b/app/components/pajamas/avatar_component.rb
index 423934b6887..0821818103a 100644
--- a/app/components/pajamas/avatar_component.rb
+++ b/app/components/pajamas/avatar_component.rb
@@ -1,16 +1,21 @@
# frozen_string_literal: true
module Pajamas
+ AvatarEmail = Struct.new(:email) do
+ def name
+ email
+ end
+ end
class AvatarComponent < Pajamas::Component
include Gitlab::Utils::StrongMemoize
- # @param record [User, Project, Group]
+ # @param item [User, Project, Group, AvatarEmail]
# @param alt [String] text for the alt tag
# @param class [String] custom CSS class(es)
# @param size [Integer] size in pixel
# @param [Hash] avatar_options
- def initialize(record, alt: nil, class: "", size: 64, avatar_options: {})
- @record = record
+ def initialize(item, alt: nil, class: "", size: 64, avatar_options: {})
+ @item = item
@alt = alt
@class = binding.local_variable_get(:class)
@size = filter_attribute(size.to_i, SIZE_OPTIONS, default: 64)
@@ -23,11 +28,11 @@ module Pajamas
def avatar_classes
classes = ["gl-avatar", "gl-avatar-s#{@size}", @class]
- classes.push("gl-avatar-circle") if @record.is_a?(User)
+ classes.push("gl-avatar-circle") if @item.is_a?(User) || @item.is_a?(AvatarEmail)
unless src
classes.push("gl-avatar-identicon")
- classes.push("gl-avatar-identicon-bg#{((@record.id || 0) % 7) + 1}")
+ classes.push("gl-avatar-identicon-bg#{((@item.id || 0) % 7) + 1}")
end
classes.join(' ')
@@ -35,7 +40,7 @@ module Pajamas
def src
strong_memoize(:src) do
- if @record.is_a?(User)
+ if @item.is_a?(User)
# Users show a gravatar instead of an identicon. Also avatars of
# blocked users are only shown if the current_user is an admin.
# To not duplicate this logic, we are using existing helpers here.
@@ -44,9 +49,11 @@ module Pajamas
rescue StandardError
nil
end
- helpers.avatar_icon_for_user(@record, @size, current_user: current_user)
- elsif @record.try(:avatar_url)
- "#{@record.avatar_url}?width=#{@size}"
+ helpers.avatar_icon_for_user(@item, @size, current_user: current_user)
+ elsif @item.is_a?(AvatarEmail)
+ helpers.avatar_icon_for_email(@item.email, @size)
+ elsif @item.try(:avatar_url)
+ "#{@item.avatar_url}?width=#{@size}"
end
end
end
@@ -59,11 +66,11 @@ module Pajamas
end
def alt
- @alt || @record.name
+ @alt || @item.name
end
def initial
- @record.name[0, 1].upcase
+ @item.name[0, 1].upcase
end
end
end
diff --git a/app/components/projects/ml/models_index_component.rb b/app/components/projects/ml/models_index_component.rb
index 5e37777eb61..ef5c8a34bf5 100644
--- a/app/components/projects/ml/models_index_component.rb
+++ b/app/components/projects/ml/models_index_component.rb
@@ -3,11 +3,16 @@
module Projects
module Ml
class ModelsIndexComponent < ViewComponent::Base
- attr_reader :paginator, :model_count
+ include Rails.application.routes.url_helpers
+ include API::Helpers::RelatedResourcesHelpers
- def initialize(paginator:, model_count:)
+ attr_reader :paginator, :model_count, :project, :user
+
+ def initialize(project:, current_user:, paginator:, model_count:)
+ @project = project
@paginator = paginator
@model_count = model_count
+ @user = current_user
end
private
@@ -16,7 +21,10 @@ module Projects
vm = {
models: models_view_model,
page_info: page_info_view_model,
- model_count: model_count
+ model_count: model_count,
+ create_model_path: create_model_path,
+ can_write_model_registry: user.can?(:write_model_registry, project),
+ mlflow_tracking_url: mlflow_tracking_url
}
Gitlab::Json.generate(vm.deep_transform_keys { |k| k.to_s.camelize(:lower) })
@@ -35,6 +43,10 @@ module Projects
end
end
+ def create_model_path
+ new_project_ml_model_path(project)
+ end
+
def page_info_view_model
{
has_next_page: paginator.has_next_page?,
@@ -43,6 +55,14 @@ module Projects
end_cursor: paginator.cursor_for_next_page
}
end
+
+ def mlflow_tracking_url
+ path = api_v4_projects_ml_mlflow_api_2_0_mlflow_registered_models_create_path(id: project.id)
+
+ path = path.delete_suffix('registered-models/create')
+
+ expose_url(path)
+ end
end
end
end
diff --git a/app/components/projects/ml/show_ml_model_component.rb b/app/components/projects/ml/show_ml_model_component.rb
index 11a36a78b18..424c8e262e2 100644
--- a/app/components/projects/ml/show_ml_model_component.rb
+++ b/app/components/projects/ml/show_ml_model_component.rb
@@ -31,11 +31,12 @@ module Projects
def latest_version_view_model
return unless model.latest_version
- model_version = model.latest_version
+ model_version = model.latest_version.present
{
version: model_version.version,
description: model_version.description,
+ path: model_version.path,
project_path: project_path(model_version.project),
package_id: model_version.package_id,
**::Ml::CandidateDetailsPresenter.new(model_version.candidate, current_user).present
diff --git a/app/controllers/admin/ci/variables_controller.rb b/app/controllers/admin/ci/variables_controller.rb
index 4ab67e54766..1085de6fa05 100644
--- a/app/controllers/admin/ci/variables_controller.rb
+++ b/app/controllers/admin/ci/variables_controller.rb
@@ -44,7 +44,7 @@ module Admin
end
def variable_params_attributes
- %i[id variable_type key secret_value protected masked raw _destroy]
+ %i[id variable_type key description secret_value protected masked raw _destroy]
end
end
end
diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb
index ee78d5a8c35..3a0618c0d40 100644
--- a/app/controllers/admin/users_controller.rb
+++ b/app/controllers/admin/users_controller.rb
@@ -9,6 +9,10 @@ class Admin::UsersController < Admin::ApplicationController
before_action :ensure_destroy_prerequisites_met, only: [:destroy]
before_action :set_shared_view_parameters, only: [:show, :projects, :keys]
+ before_action only: [:index] do
+ push_frontend_feature_flag(:simplified_badges)
+ end
+
feature_category :user_management
PAGINATION_WITH_COUNT_LIMIT = 1000
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index fca3bb3460f..d7b005d03b5 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -26,7 +26,6 @@ class ApplicationController < BaseActionController
include CheckRateLimit
include RequestPayloadLogger
- before_action :limit_session_time, if: -> { !current_user }
before_action :authenticate_user!, except: [:route_not_found]
before_action :enforce_terms!, if: :should_enforce_terms?
before_action :check_password_expiration, if: :html_request?
@@ -51,7 +50,6 @@ class ApplicationController < BaseActionController
around_action :set_current_admin
after_action :set_page_title_header, if: :json_request?
- after_action :ensure_authenticated_session_time, if: -> { current_user }
protect_from_forgery with: :exception, prepend: true
diff --git a/app/controllers/concerns/confirm_email_warning.rb b/app/controllers/concerns/confirm_email_warning.rb
index 2efea461a35..c55911eed48 100644
--- a/app/controllers/concerns/confirm_email_warning.rb
+++ b/app/controllers/concerns/confirm_email_warning.rb
@@ -38,6 +38,6 @@ module ConfirmEmailWarning
end
def email_to_display
- html_escape(email)
+ ERB::Util.html_escape(email)
end
end
diff --git a/app/controllers/concerns/enforces_two_factor_authentication.rb b/app/controllers/concerns/enforces_two_factor_authentication.rb
index 24475909b62..81130fcd6a6 100644
--- a/app/controllers/concerns/enforces_two_factor_authentication.rb
+++ b/app/controllers/concerns/enforces_two_factor_authentication.rb
@@ -46,15 +46,11 @@ module EnforcesTwoFactorAuthentication
end
# rubocop: disable CodeReuse/ActiveRecord
- def two_factor_authentication_reason(global: -> {}, group: -> {})
- if two_factor_authentication_required?
- if Gitlab::CurrentSettings.require_two_factor_authentication?
- global.call
- else
- groups = current_user.source_groups_of_two_factor_authentication_requirement.reorder(name: :asc)
- group.call(groups)
- end
- end
+ def execute_action_for_2fa_reason(actions)
+ reason = two_factor_verifier.two_factor_authentication_reason
+ groups_enforcing_two_factor = current_user.source_groups_of_two_factor_authentication_requirement
+ .reorder(name: :asc)
+ actions[reason].call(groups_enforcing_two_factor)
end
# rubocop: enable CodeReuse/ActiveRecord
diff --git a/app/controllers/concerns/integrations/params.rb b/app/controllers/concerns/integrations/params.rb
index e344e0dcd8c..d71ab98c3fd 100644
--- a/app/controllers/concerns/integrations/params.rb
+++ b/app/controllers/concerns/integrations/params.rb
@@ -38,6 +38,9 @@ module Integrations
:default_irc_uri,
:device,
:disable_diffs,
+ :diffblue_access_token_name,
+ :diffblue_access_token_secret,
+ :diffblue_license_key,
:drone_url,
:enable_ssl_verification,
:external_wiki_url,
diff --git a/app/controllers/concerns/preview_markdown.rb b/app/controllers/concerns/preview_markdown.rb
index 7f1b961e92a..8bd120b5ed5 100644
--- a/app/controllers/concerns/preview_markdown.rb
+++ b/app/controllers/concerns/preview_markdown.rb
@@ -44,6 +44,7 @@ module PreviewMarkdown
when 'groups' then { group: group, issuable_reference_expansion_enabled: true }
when 'projects' then projects_filter_params
when 'timeline_events' then timeline_events_filter_params
+ when 'organizations' then { pipeline: :description }
else {}
end.merge(
requested_path: params[:path],
diff --git a/app/controllers/explore/catalog_controller.rb b/app/controllers/explore/catalog_controller.rb
index d384ad10c86..39c43182fbf 100644
--- a/app/controllers/explore/catalog_controller.rb
+++ b/app/controllers/explore/catalog_controller.rb
@@ -6,7 +6,7 @@ module Explore
feature_category :pipeline_composition
before_action :check_resource_access, only: :show
- track_internal_event :index, name: 'unique_users_visiting_ci_catalog'
+ track_internal_event :index, name: 'unique_users_visiting_ci_catalog', conditions: :current_user
before_action do
push_frontend_feature_flag(:ci_catalog_components_tab, current_user)
end
diff --git a/app/controllers/graphql_controller.rb b/app/controllers/graphql_controller.rb
index 1941920325f..e39f1148cf2 100644
--- a/app/controllers/graphql_controller.rb
+++ b/app/controllers/graphql_controller.rb
@@ -256,8 +256,7 @@ class GraphqlController < ApplicationController
def authorize_access_api!
if current_user.nil? &&
- request_authenticator.authentication_token_present? &&
- Feature.enabled?(:invalid_graphql_auth_401)
+ request_authenticator.authentication_token_present?
render_error('Invalid token', status: :unauthorized)
end
diff --git a/app/controllers/groups/autocomplete_sources_controller.rb b/app/controllers/groups/autocomplete_sources_controller.rb
index 7a490b34511..191720f69a0 100644
--- a/app/controllers/groups/autocomplete_sources_controller.rb
+++ b/app/controllers/groups/autocomplete_sources_controller.rb
@@ -10,7 +10,7 @@ class Groups::AutocompleteSourcesController < Groups::ApplicationController
urgency :low, [:issues, :labels, :milestones, :commands, :merge_requests, :members]
def members
- render json: ::Groups::ParticipantsService.new(@group, current_user).execute(target)
+ render json: ::Groups::ParticipantsService.new(@group, current_user, params).execute(target)
end
def issues
diff --git a/app/controllers/groups/boards_controller.rb b/app/controllers/groups/boards_controller.rb
index 7cc0e6a8558..eb3661ea3d7 100644
--- a/app/controllers/groups/boards_controller.rb
+++ b/app/controllers/groups/boards_controller.rb
@@ -7,7 +7,6 @@ class Groups::BoardsController < Groups::ApplicationController
before_action do
push_frontend_feature_flag(:board_multi_select, group)
- push_frontend_feature_flag(:apollo_boards, group)
push_frontend_feature_flag(:display_work_item_epic_issue_sidebar, group)
experiment(:prominent_create_board_btn, subject: current_user) do |e|
e.control {}
diff --git a/app/controllers/groups/variables_controller.rb b/app/controllers/groups/variables_controller.rb
index fad3a6ab9f5..d27d70dc857 100644
--- a/app/controllers/groups/variables_controller.rb
+++ b/app/controllers/groups/variables_controller.rb
@@ -50,7 +50,7 @@ module Groups
end
def variable_params_attributes
- %i[id variable_type key secret_value protected masked raw _destroy]
+ %i[id variable_type key description secret_value protected masked raw _destroy]
end
def authorize_admin_build!
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index 5b9b3b7de11..b151793ad8b 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -305,7 +305,8 @@ class GroupsController < Groups::ApplicationController
:prevent_sharing_groups_outside_hierarchy,
:setup_for_company,
:jobs_to_be_done,
- :crm_enabled
+ :crm_enabled,
+ :enable_namespace_descendants_cache
] + [group_feature_attributes: group_feature_attributes]
end
diff --git a/app/controllers/import/bitbucket_server_controller.rb b/app/controllers/import/bitbucket_server_controller.rb
index ba2743e1002..01657df28fd 100644
--- a/app/controllers/import/bitbucket_server_controller.rb
+++ b/app/controllers/import/bitbucket_server_controller.rb
@@ -49,6 +49,9 @@ class Import::BitbucketServerController < Import::BaseController
session[bitbucket_server_username_key] = params[:bitbucket_server_username]
session[bitbucket_server_url_key] = params[:bitbucket_server_url]
+ experiment(:default_to_import_tab, actor: current_user)
+ .track(:authentication, property: provider_name)
+
redirect_to status_import_bitbucket_server_path(namespace_id: params[:namespace_id])
end
diff --git a/app/controllers/import/bulk_imports_controller.rb b/app/controllers/import/bulk_imports_controller.rb
index e211ea70a56..6ff0f55d2f6 100644
--- a/app/controllers/import/bulk_imports_controller.rb
+++ b/app/controllers/import/bulk_imports_controller.rb
@@ -6,10 +6,6 @@ class Import::BulkImportsController < ApplicationController
before_action :ensure_bulk_import_enabled
before_action :verify_blocked_uri, only: :status
- before_action only: [:history] do
- push_frontend_feature_flag(:bulk_import_details_page)
- end
-
feature_category :importers
urgency :low
@@ -53,9 +49,7 @@ class Import::BulkImportsController < ApplicationController
end
end
- def details
- render_404 unless Feature.enabled?(:bulk_import_details_page)
- end
+ def details; end
def create
return render json: { success: false }, status: :too_many_requests if throttled_request?
diff --git a/app/controllers/import/fogbugz_controller.rb b/app/controllers/import/fogbugz_controller.rb
index 34fdf513313..05ba317057d 100644
--- a/app/controllers/import/fogbugz_controller.rb
+++ b/app/controllers/import/fogbugz_controller.rb
@@ -22,6 +22,9 @@ class Import::FogbugzController < Import::BaseController
session[:fogbugz_token] = res.get_token.to_s
session[:fogbugz_uri] = params[:uri]
+ experiment(:default_to_import_tab, actor: current_user)
+ .track(:successfully_authenticated, property: provider_name)
+
redirect_to new_user_map_import_fogbugz_path(namespace_id: params[:namespace_id])
end
diff --git a/app/controllers/import/github_controller.rb b/app/controllers/import/github_controller.rb
index 2b72ceceb5a..0159c1913af 100644
--- a/app/controllers/import/github_controller.rb
+++ b/app/controllers/import/github_controller.rb
@@ -41,6 +41,9 @@ class Import::GithubController < Import::BaseController
end
def personal_access_token
+ experiment(:default_to_import_tab, actor: current_user)
+ .track(:authentication, property: provider_name)
+
session[access_token_key] = params[:personal_access_token]&.strip
redirect_to status_import_url
end
diff --git a/app/controllers/import/gitlab_projects_controller.rb b/app/controllers/import/gitlab_projects_controller.rb
index d1b182a57d8..71d66dc3db8 100644
--- a/app/controllers/import/gitlab_projects_controller.rb
+++ b/app/controllers/import/gitlab_projects_controller.rb
@@ -21,6 +21,9 @@ class Import::GitlabProjectsController < Import::BaseController
@project = ::Projects::GitlabProjectsImportService.new(current_user, project_params).execute
if @project.saved?
+ experiment(:default_to_import_tab, actor: current_user)
+ .track(:successfully_imported, property: 'gitlab_export')
+
redirect_to(
project_path(@project),
notice: _("Project '%{project_name}' is being imported.") % { project_name: @project.name }
diff --git a/app/controllers/import/manifest_controller.rb b/app/controllers/import/manifest_controller.rb
index 03884717e54..7d3c91a7f5c 100644
--- a/app/controllers/import/manifest_controller.rb
+++ b/app/controllers/import/manifest_controller.rb
@@ -31,6 +31,9 @@ class Import::ManifestController < Import::BaseController
if manifest.valid?
manifest_import_metadata.save(manifest.projects, group.id)
+ experiment(:default_to_import_tab, actor: current_user)
+ .track(:successfully_imported, property: provider_name)
+
redirect_to status_import_manifest_path
else
@errors = manifest.errors
diff --git a/app/controllers/jwks_controller.rb b/app/controllers/jwks_controller.rb
index 2e030cf46c4..fb190846ffa 100644
--- a/app/controllers/jwks_controller.rb
+++ b/app/controllers/jwks_controller.rb
@@ -2,9 +2,7 @@
class JwksController < Doorkeeper::OpenidConnect::DiscoveryController
def index
- if ::Feature.enabled?(:cache_control_headers_for_openid_jwks)
- expires_in 24.hours, public: true, must_revalidate: true, 'no-transform': true
- end
+ expires_in 24.hours, public: true, must_revalidate: true, 'no-transform': true
render json: { keys: payload }
end
diff --git a/app/controllers/ldap/omniauth_callbacks_controller.rb b/app/controllers/ldap/omniauth_callbacks_controller.rb
index 955dfe58449..1c79bd3a668 100644
--- a/app/controllers/ldap/omniauth_callbacks_controller.rb
+++ b/app/controllers/ldap/omniauth_callbacks_controller.rb
@@ -28,7 +28,7 @@ class Ldap::OmniauthCallbacksController < OmniauthCallbacksController
define_providers!
override :set_remember_me
- def set_remember_me(user)
+ def set_remember_me(user, _auth_user)
user.remember_me = params[:remember_me] if user.persisted?
end
diff --git a/app/controllers/omniauth_callbacks_controller.rb b/app/controllers/omniauth_callbacks_controller.rb
index 907ece1a06e..0701b1ee977 100644
--- a/app/controllers/omniauth_callbacks_controller.rb
+++ b/app/controllers/omniauth_callbacks_controller.rb
@@ -139,9 +139,11 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
identity_linker ||= auth_module::IdentityLinker.new(current_user, oauth, session)
link_identity(identity_linker)
- set_remember_me(current_user)
- store_idp_two_factor_status(build_auth_user(auth_module::User).bypass_two_factor?)
+ current_auth_user = build_auth_user(auth_module::User)
+ set_remember_me(current_user, current_auth_user)
+
+ store_idp_two_factor_status(current_auth_user.bypass_two_factor?)
if identity_linker.changed?
redirect_identity_linked
@@ -193,7 +195,7 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
track_event(@user, oauth['provider'], 'succeeded')
Gitlab::Tracking.event(self.class.name, "#{oauth['provider']}_sso", user: @user) if new_user
- set_remember_me(@user)
+ set_remember_me(@user, auth_user)
set_session_active_since(oauth['provider']) if ::AuthHelper.saml_providers.include?(oauth['provider'].to_sym)
if @user.two_factor_enabled? && !auth_user.bypass_two_factor?
@@ -278,10 +280,10 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
.for_authentication.security_event
end
- def set_remember_me(user)
+ def set_remember_me(user, auth_user)
return unless remember_me?
- if user.two_factor_enabled?
+ if user.two_factor_enabled? && !auth_user.bypass_two_factor?
params[:remember_me] = '1'
else
remember_me(user)
diff --git a/app/controllers/organizations/organizations_controller.rb b/app/controllers/organizations/organizations_controller.rb
index 9f09627b1e4..0596441591d 100644
--- a/app/controllers/organizations/organizations_controller.rb
+++ b/app/controllers/organizations/organizations_controller.rb
@@ -2,9 +2,11 @@
module Organizations
class OrganizationsController < ApplicationController
+ include PreviewMarkdown
+
feature_category :cell
- skip_before_action :authenticate_user!, except: [:index, :new, :users]
+ skip_before_action :authenticate_user!, only: [:show, :groups_and_projects]
def index; end
diff --git a/app/controllers/profiles/two_factor_auths_controller.rb b/app/controllers/profiles/two_factor_auths_controller.rb
index f1646027e8e..5a956a14552 100644
--- a/app/controllers/profiles/two_factor_auths_controller.rb
+++ b/app/controllers/profiles/two_factor_auths_controller.rb
@@ -207,15 +207,19 @@ class Profiles::TwoFactorAuthsController < Profiles::ApplicationController
def setup_show_page
if two_factor_authentication_required? && !current_user.two_factor_enabled?
- two_factor_authentication_reason(
- global: lambda do
+ two_factor_auth_actions = {
+ global: lambda do |_|
flash.now[:alert] =
_('The global settings require you to enable Two-Factor Authentication for your account.')
end,
+ admin_2fa: lambda do |_|
+ flash.now[:alert] = _('Administrator users are required to enable Two-Factor Authentication for their account.')
+ end,
group: lambda do |groups|
flash.now[:alert] = groups_notification(groups)
end
- )
+ }
+ execute_action_for_2fa_reason(two_factor_auth_actions)
unless two_factor_grace_period_expired?
grace_period_deadline = current_user.otp_grace_period_started_at + two_factor_grace_period.hours
diff --git a/app/controllers/projects/autocomplete_sources_controller.rb b/app/controllers/projects/autocomplete_sources_controller.rb
index ff3484d3020..dc10004c62b 100644
--- a/app/controllers/projects/autocomplete_sources_controller.rb
+++ b/app/controllers/projects/autocomplete_sources_controller.rb
@@ -15,7 +15,7 @@ class Projects::AutocompleteSourcesController < Projects::ApplicationController
urgency :low, [:issues, :labels, :milestones, :commands, :contacts]
def members
- render json: ::Projects::ParticipantsService.new(@project, current_user).execute(target)
+ render json: ::Projects::ParticipantsService.new(@project, current_user, params).execute(target)
end
def issues
diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb
index fd853b5aaed..29bc00ae870 100644
--- a/app/controllers/projects/boards_controller.rb
+++ b/app/controllers/projects/boards_controller.rb
@@ -7,7 +7,6 @@ class Projects::BoardsController < Projects::ApplicationController
before_action :check_issues_available!
before_action do
push_frontend_feature_flag(:board_multi_select, project)
- push_frontend_feature_flag(:apollo_boards, project)
push_frontend_feature_flag(:display_work_item_epic_issue_sidebar, project)
experiment(:prominent_create_board_btn, subject: current_user) do |e|
e.control {}
diff --git a/app/controllers/projects/commit_controller.rb b/app/controllers/projects/commit_controller.rb
index 88e9113188a..c36742e8bb9 100644
--- a/app/controllers/projects/commit_controller.rb
+++ b/app/controllers/projects/commit_controller.rb
@@ -186,7 +186,6 @@ class Projects::CommitController < Projects::ApplicationController
opts[:use_extra_viewer_as_main] = false
@diffs = commit.diffs(opts)
- @notes_count = commit.notes.count
@environment = ::Environments::EnvironmentsByDeploymentsFinder.new(@project, current_user, commit: @commit, find_latest: true).execute.last
end
diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index 8cdd6efa7c5..65cbe5a78ce 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -26,7 +26,7 @@ class Projects::EnvironmentsController < Projects::ApplicationController
before_action :environment, only: [:show, :edit, :update, :stop, :terminal, :terminal_websocket_authorize, :cancel_auto_stop]
before_action :verify_api_request!, only: :terminal_websocket_authorize
before_action :expire_etag_cache, only: [:index], unless: -> { request.format.json? }
- before_action :set_kas_cookie, only: [:index, :edit, :new], if: -> { current_user && request.format.html? }
+ before_action :set_kas_cookie, only: [:index, :folder, :edit, :new], if: -> { current_user && request.format.html? }
after_action :expire_etag_cache, only: [:cancel_auto_stop]
track_event :index, :folder, :show, :new, :edit, :create, :update, :stop, :cancel_auto_stop, :terminal,
diff --git a/app/controllers/projects/gcp/artifact_registry/docker_images_controller.rb b/app/controllers/projects/gcp/artifact_registry/docker_images_controller.rb
index b88b86975a4..60adbbe6e5d 100644
--- a/app/controllers/projects/gcp/artifact_registry/docker_images_controller.rb
+++ b/app/controllers/projects/gcp/artifact_registry/docker_images_controller.rb
@@ -25,7 +25,7 @@ module Projects
private
def service
- ::Integrations::GoogleCloudPlatform::ArtifactRegistry::ListDockerImagesService.new(
+ ::GoogleCloudPlatform::ArtifactRegistry::ListDockerImagesService.new(
project: @project,
current_user: current_user,
params: {
@@ -124,6 +124,10 @@ module Projects
Time.zone.parse(upload_time)
end
+
+ def details_url
+ "https://#{uri}"
+ end
end
end
end
diff --git a/app/controllers/projects/google_cloud/configuration_controller.rb b/app/controllers/projects/google_cloud/configuration_controller.rb
index d35b2d54c53..3baa1210ec2 100644
--- a/app/controllers/projects/google_cloud/configuration_controller.rb
+++ b/app/controllers/projects/google_cloud/configuration_controller.rb
@@ -8,7 +8,7 @@ module Projects
configurationUrl: project_google_cloud_configuration_path(project),
deploymentsUrl: project_google_cloud_deployments_path(project),
databasesUrl: project_google_cloud_databases_path(project),
- serviceAccounts: ::GoogleCloud::ServiceAccountsService.new(project).find_for_project,
+ serviceAccounts: ::CloudSeed::GoogleCloud::ServiceAccountsService.new(project).find_for_project,
createServiceAccountUrl: project_google_cloud_service_accounts_path(project),
emptyIllustrationUrl:
ActionController::Base.helpers.image_path('illustrations/empty-state/empty-pipeline-md.svg'),
diff --git a/app/controllers/projects/google_cloud/databases_controller.rb b/app/controllers/projects/google_cloud/databases_controller.rb
index ea79efd9f4f..9023b8a5fa6 100644
--- a/app/controllers/projects/google_cloud/databases_controller.rb
+++ b/app/controllers/projects/google_cloud/databases_controller.rb
@@ -14,7 +14,7 @@ module Projects
cloudsqlPostgresUrl: new_project_google_cloud_database_path(project, :postgres),
cloudsqlMysqlUrl: new_project_google_cloud_database_path(project, :mysql),
cloudsqlSqlserverUrl: new_project_google_cloud_database_path(project, :sqlserver),
- cloudsqlInstances: ::GoogleCloud::GetCloudsqlInstancesService.new(project).execute,
+ cloudsqlInstances: ::CloudSeed::GoogleCloud::GetCloudsqlInstancesService.new(project).execute,
emptyIllustrationUrl:
ActionController::Base.helpers.image_path('illustrations/empty-state/empty-pipeline-md.svg')
}
@@ -46,7 +46,7 @@ module Projects
end
def create
- enable_response = ::GoogleCloud::EnableCloudsqlService
+ enable_response = ::CloudSeed::GoogleCloud::EnableCloudsqlService
.new(project, current_user, enable_service_params)
.execute
@@ -54,7 +54,7 @@ module Projects
track_event(:error_enable_cloudsql_services)
flash[:alert] = error_message(enable_response[:message])
else
- create_response = ::GoogleCloud::CreateCloudsqlInstanceService
+ create_response = ::CloudSeed::GoogleCloud::CreateCloudsqlInstanceService
.new(project, current_user, create_service_params)
.execute
diff --git a/app/controllers/projects/google_cloud/deployments_controller.rb b/app/controllers/projects/google_cloud/deployments_controller.rb
index 92c99ad4271..e4666f9335c 100644
--- a/app/controllers/projects/google_cloud/deployments_controller.rb
+++ b/app/controllers/projects/google_cloud/deployments_controller.rb
@@ -17,7 +17,7 @@ class Projects::GoogleCloud::DeploymentsController < Projects::GoogleCloud::Base
def cloud_run
params = { google_oauth2_token: token_in_session }
- enable_cloud_run_response = GoogleCloud::EnableCloudRunService
+ enable_cloud_run_response = CloudSeed::GoogleCloud::EnableCloudRunService
.new(project, current_user, params).execute
if enable_cloud_run_response[:status] == :error
@@ -25,8 +25,8 @@ class Projects::GoogleCloud::DeploymentsController < Projects::GoogleCloud::Base
flash[:alert] = enable_cloud_run_response[:message]
redirect_to project_google_cloud_deployments_path(project)
else
- params = { action: GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN }
- generate_pipeline_response = GoogleCloud::GeneratePipelineService
+ params = { action: CloudSeed::GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN }
+ generate_pipeline_response = CloudSeed::GoogleCloud::GeneratePipelineService
.new(project, current_user, params).execute
if generate_pipeline_response[:status] == :error
diff --git a/app/controllers/projects/google_cloud/gcp_regions_controller.rb b/app/controllers/projects/google_cloud/gcp_regions_controller.rb
index c51261721b2..593e27eeebf 100644
--- a/app/controllers/projects/google_cloud/gcp_regions_controller.rb
+++ b/app/controllers/projects/google_cloud/gcp_regions_controller.rb
@@ -20,7 +20,7 @@ class Projects::GoogleCloud::GcpRegionsController < Projects::GoogleCloud::BaseC
def create
permitted_params = params.permit(:ref, :gcp_region)
- GoogleCloud::GcpRegionAddOrReplaceService.new(project).execute(permitted_params[:ref], permitted_params[:gcp_region])
+ CloudSeed::GoogleCloud::GcpRegionAddOrReplaceService.new(project).execute(permitted_params[:ref], permitted_params[:gcp_region])
track_event(:configure_region)
redirect_to project_google_cloud_configuration_path(project), notice: _('GCP region configured')
end
diff --git a/app/controllers/projects/google_cloud/service_accounts_controller.rb b/app/controllers/projects/google_cloud/service_accounts_controller.rb
index 7b029e25ea2..5a5f53943c0 100644
--- a/app/controllers/projects/google_cloud/service_accounts_controller.rb
+++ b/app/controllers/projects/google_cloud/service_accounts_controller.rb
@@ -27,7 +27,7 @@ class Projects::GoogleCloud::ServiceAccountsController < Projects::GoogleCloud::
def create
permitted_params = params.permit(:gcp_project, :ref)
- response = GoogleCloud::CreateServiceAccountsService.new(
+ response = CloudSeed::GoogleCloud::CreateServiceAccountsService.new(
project,
current_user,
google_oauth2_token: token_in_session,
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index d0eabf8d837..c1de24f300b 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -71,6 +71,7 @@ class Projects::IssuesController < Projects::ApplicationController
push_frontend_feature_flag(:display_work_item_epic_issue_sidebar, project)
push_force_frontend_feature_flag(:linked_work_items, project.linked_work_items_feature_flag_enabled?)
push_frontend_feature_flag(:notifications_todos_buttons, current_user)
+ push_frontend_feature_flag(:mention_autocomplete_backend_filtering, project)
end
around_action :allow_gitaly_ref_name_caching, only: [:discussions]
diff --git a/app/controllers/projects/merge_requests/diffs_controller.rb b/app/controllers/projects/merge_requests/diffs_controller.rb
index b269d41fa77..c62a1e09c00 100644
--- a/app/controllers/projects/merge_requests/diffs_controller.rb
+++ b/app/controllers/projects/merge_requests/diffs_controller.rb
@@ -9,11 +9,11 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic
before_action :commit
before_action :define_diff_vars
before_action :define_diff_comment_vars, except: [:diffs_batch, :diffs_metadata]
- before_action :update_diff_discussion_positions!
+ before_action :update_diff_discussion_positions!, except: [:diff_by_file_hash]
around_action :allow_gitaly_ref_name_caching
- after_action :track_viewed_diffs_events, only: [:diffs_batch, :diff_for_path]
+ after_action :track_viewed_diffs_events, only: [:diffs_batch, :diff_for_path, :diff_by_file_hash]
urgency :low, [
:show,
@@ -26,6 +26,14 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic
render_diffs
end
+ def diff_by_file_hash
+ diff_file = @compare.diffs.diff_files.find { |file| file.file_hash == params[:file_hash] }
+ params[:old_path] = diff_file&.old_path
+ params[:new_path] = diff_file&.new_path
+
+ render_diffs
+ end
+
def diff_for_path
render_diffs
end
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 0899e303305..6cb00fea922 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -46,6 +46,8 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
push_frontend_feature_flag(:notifications_todos_buttons, current_user)
push_frontend_feature_flag(:mr_request_changes, current_user)
push_frontend_feature_flag(:merge_blocked_component, current_user)
+ push_frontend_feature_flag(:mention_autocomplete_backend_filtering, project)
+ push_frontend_feature_flag(:pinned_file, project)
end
around_action :allow_gitaly_ref_name_caching, only: [:index, :show, :diffs, :discussions]
@@ -448,6 +450,15 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
@update_current_user_path = expose_path(api_v4_user_preferences_path)
@endpoint_metadata_url = endpoint_metadata_url(@project, @merge_request)
@endpoint_diff_batch_url = endpoint_diff_batch_url(@project, @merge_request)
+ if params[:pin] && Feature.enabled?(:pinned_file)
+ @pinned_file_url = diff_by_file_hash_namespace_project_merge_request_path(
+ format: 'json',
+ id: merge_request.iid,
+ namespace_id: project&.namespace.to_param,
+ project_id: project&.path,
+ file_hash: params[:pin]
+ )
+ end
if merge_request.diffs_batch_cache_with_max_age?
@diffs_batch_cache_key = @merge_request.merge_head_diff&.patch_id_sha
diff --git a/app/controllers/projects/ml/models_controller.rb b/app/controllers/projects/ml/models_controller.rb
index 68a8b7a1686..2dff3ec3325 100644
--- a/app/controllers/projects/ml/models_controller.rb
+++ b/app/controllers/projects/ml/models_controller.rb
@@ -4,7 +4,7 @@ module Projects
module Ml
class ModelsController < ::Projects::ApplicationController
before_action :authorize_read_model_registry!
- before_action :authorize_write_model_registry!, only: [:destroy]
+ before_action :authorize_write_model_registry!, only: [:destroy, :new]
before_action :set_model, only: [:show, :destroy]
feature_category :mlops
@@ -22,6 +22,8 @@ module Projects
@model_count = finder.count
end
+ def new; end
+
def show; end
def destroy
diff --git a/app/controllers/projects/refs_controller.rb b/app/controllers/projects/refs_controller.rb
index 278d306301a..e52e13e8ce6 100644
--- a/app/controllers/projects/refs_controller.rb
+++ b/app/controllers/projects/refs_controller.rb
@@ -42,7 +42,7 @@ class Projects::RefsController < Projects::ApplicationController
redirect_to new_path
end
end
- rescue Gitlab::PathTraversal::PathTraversalAttackError
+ rescue Gitlab::PathTraversal::PathTraversalAttackError, ActionController::UrlGenerationError
head :bad_request
end
diff --git a/app/controllers/projects/security/configuration_controller.rb b/app/controllers/projects/security/configuration_controller.rb
index ee2e60b5a1a..abf564a00e1 100644
--- a/app/controllers/projects/security/configuration_controller.rb
+++ b/app/controllers/projects/security/configuration_controller.rb
@@ -24,11 +24,7 @@ module Projects
private
def configuration
- if unify_configuration_enabled?
- configuration_presenter
- else
- {}
- end
+ configuration_presenter
end
def configuration_presenter
@@ -38,10 +34,6 @@ module Projects
def presenter_attributes
{}
end
-
- def unify_configuration_enabled?
- Feature.enabled?(:unify_security_configuration, project)
- end
end
end
end
diff --git a/app/controllers/projects/settings/packages_and_registries_controller.rb b/app/controllers/projects/settings/packages_and_registries_controller.rb
index 76c9cead360..5c352866c8d 100644
--- a/app/controllers/projects/settings/packages_and_registries_controller.rb
+++ b/app/controllers/projects/settings/packages_and_registries_controller.rb
@@ -7,6 +7,7 @@ module Projects
before_action :authorize_admin_project!
before_action :packages_and_registries_settings_enabled!
+ before_action :set_feature_flag_packages_protected_packages, only: :show
feature_category :package_registry
urgency :low
@@ -30,6 +31,10 @@ module Projects
render_404 unless Gitlab.config.registry.enabled &&
can?(current_user, :admin_container_image, project)
end
+
+ def set_feature_flag_packages_protected_packages
+ push_frontend_feature_flag(:packages_protected_packages, project)
+ end
end
end
end
diff --git a/app/controllers/projects/settings/repository_controller.rb b/app/controllers/projects/settings/repository_controller.rb
index 38b23b24c9a..6a10d603ad7 100644
--- a/app/controllers/projects/settings/repository_controller.rb
+++ b/app/controllers/projects/settings/repository_controller.rb
@@ -7,6 +7,10 @@ module Projects
before_action :authorize_admin_project!
before_action :define_variables, only: [:create_deploy_token]
+ before_action do
+ push_frontend_feature_flag(:add_branch_rule, @project)
+ end
+
feature_category :source_code_management, [:show, :cleanup, :update]
feature_category :continuous_delivery, [:create_deploy_token]
urgency :low, [:show, :create_deploy_token]
diff --git a/app/controllers/projects/variables_controller.rb b/app/controllers/projects/variables_controller.rb
index f7542d68642..29ecca1b7e0 100644
--- a/app/controllers/projects/variables_controller.rb
+++ b/app/controllers/projects/variables_controller.rb
@@ -47,6 +47,6 @@ class Projects::VariablesController < Projects::ApplicationController
end
def variable_params_attributes
- %i[id variable_type key secret_value protected masked raw environment_scope _destroy]
+ %i[id variable_type key description secret_value protected masked raw environment_scope _destroy]
end
end
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 1152bdcf058..d4b77c588dc 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -29,7 +29,7 @@ class ProjectsController < Projects::ApplicationController
before_action :authorize_read_code!, only: [:refs]
# Authorize
- before_action :authorize_admin_project_or_custom_permissions!, only: :edit
+ before_action :authorize_view_edit_page!, only: :edit
before_action :authorize_admin_project!, only: [:update, :housekeeping, :download_export, :export, :remove_export, :generate_new_export]
before_action :authorize_archive_project!, only: [:archive, :unarchive]
before_action :event_filter, only: [:show, :activity]
@@ -44,6 +44,7 @@ class ProjectsController < Projects::ApplicationController
push_frontend_feature_flag(:explain_code_chat, current_user)
push_frontend_feature_flag(:issue_email_participants, @project)
push_frontend_feature_flag(:encoding_logs_tree)
+ push_frontend_feature_flag(:add_branch_rule, @project)
# TODO: We need to remove the FF eventually when we rollout page_specific_styles
push_frontend_feature_flag(:page_specific_styles, current_user)
push_licensed_feature(:file_locks) if @project.present? && @project.licensed_feature_available?(:file_locks)
@@ -87,8 +88,14 @@ class ProjectsController < Projects::ApplicationController
@parent_group = Group.find_by(id: params[:namespace_id])
+ manageable_groups_count = current_user.manageable_groups(include_groups_with_developer_maintainer_access: true).count
+
+ if manageable_groups_count == 0 && !can?(current_user, :create_projects, current_user.namespace)
+ return access_denied!
+ end
+
@current_user_group =
- if current_user.manageable_groups(include_groups_with_developer_maintainer_access: true).count == 1
+ if manageable_groups_count == 1
current_user.manageable_groups(include_groups_with_developer_maintainer_access: true).first
end
@@ -612,11 +619,6 @@ class ProjectsController < Projects::ApplicationController
def render_edit
render 'edit'
end
-
- # Overridden in EE
- def authorize_admin_project_or_custom_permissions!
- authorize_admin_project!
- end
end
ProjectsController.prepend_mod_with('ProjectsController')
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index 64d9db41a1b..896b71d2822 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -175,7 +175,7 @@ class SearchController < ApplicationController
return false unless commit.present?
link = search_path(safe_params.merge(force_search_results: true))
- flash[:notice] = html_escape(_("You have been redirected to the only result; see the %{a_start}search results%{a_end} instead.")) % { a_start: "<a href=\"#{link}\"><u>".html_safe, a_end: '</u></a>'.html_safe }
+ flash[:notice] = ERB::Util.html_escape(_("You have been redirected to the only result; see the %{a_start}search results%{a_end} instead.")) % { a_start: "<a href=\"#{link}\"><u>".html_safe, a_end: '</u></a>'.html_safe }
redirect_to project_commit_path(@project, commit)
true
diff --git a/app/controllers/uploads_controller.rb b/app/controllers/uploads_controller.rb
index 6d3811514d9..94e114e7da8 100644
--- a/app/controllers/uploads_controller.rb
+++ b/app/controllers/uploads_controller.rb
@@ -16,6 +16,7 @@ class UploadsController < ApplicationController
"projects/topic" => Projects::Topic,
'alert_management_metric_image' => ::AlertManagement::MetricImage,
"achievements/achievement" => Achievements::Achievement,
+ "organizations/organization_detail" => Organizations::OrganizationDetail,
"abuse_report" => AbuseReport,
nil => PersonalSnippet
}.freeze
@@ -65,6 +66,8 @@ class UploadsController < ApplicationController
can?(current_user, :read_alert_management_metric_image, model.alert)
when ::Achievements::Achievement
true
+ when Organizations::OrganizationDetail
+ can?(current_user, :read_organization, model.organization)
else
can?(current_user, "read_#{model.class.underscore}".to_sym, model)
end
@@ -96,7 +99,7 @@ class UploadsController < ApplicationController
def cache_settings
case model
- when User, Appearance, Projects::Topic, Achievements::Achievement
+ when User, Appearance, Projects::Topic, Achievements::Achievement, Organizations::OrganizationDetail
[5.minutes, { public: true, must_revalidate: false }]
when Project, Group
[5.minutes, { private: true, must_revalidate: true }]
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 88a8851607b..83cd84c396a 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -261,7 +261,8 @@ class UsersController < ApplicationController
end
def load_groups
- @groups = JoinedGroupsFinder.new(user).execute(current_user)
+ groups = JoinedGroupsFinder.new(user).execute(current_user)
+ @groups = groups.with_route.page(params[:page]).without_count
prepare_groups_for_rendering(@groups)
end
diff --git a/app/events/ci/job_artifacts_deleted_event.rb b/app/events/ci/job_artifacts_deleted_event.rb
index 2972342cae6..4d85c0cfbee 100644
--- a/app/events/ci/job_artifacts_deleted_event.rb
+++ b/app/events/ci/job_artifacts_deleted_event.rb
@@ -9,8 +9,8 @@ module Ci
'properties' => {
'job_ids' => {
'type' => 'array',
- 'properties' => {
- 'job_id' => { 'type' => 'integer' }
+ 'items' => {
+ 'type' => 'integer'
}
}
}
diff --git a/app/events/project_authorizations/authorizations_added_event.rb b/app/events/project_authorizations/authorizations_added_event.rb
new file mode 100644
index 00000000000..521a862218d
--- /dev/null
+++ b/app/events/project_authorizations/authorizations_added_event.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+module ProjectAuthorizations
+ class AuthorizationsAddedEvent < ::Gitlab::EventStore::Event
+ def schema
+ {
+ 'type' => 'object',
+ 'required' => %w[project_id user_ids],
+ 'properties' => {
+ 'project_id' => { 'type' => 'integer' },
+ 'user_ids' => { 'type' => 'array' }
+ }
+ }
+ end
+ end
+end
diff --git a/app/events/projects/release_published_event.rb b/app/events/projects/release_published_event.rb
new file mode 100644
index 00000000000..f0be95b893e
--- /dev/null
+++ b/app/events/projects/release_published_event.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module Projects
+ class ReleasePublishedEvent < ::Gitlab::EventStore::Event
+ def schema
+ {
+ 'type' => 'object',
+ 'properties' => {
+ 'release_id' => { 'type' => 'integer' }
+ },
+ 'required' => %w[release_id]
+ }
+ end
+ end
+end
diff --git a/app/experiments/in_product_guidance_environments_webide_experiment.rb b/app/experiments/in_product_guidance_environments_webide_experiment.rb
deleted file mode 100644
index 78602874cb7..00000000000
--- a/app/experiments/in_product_guidance_environments_webide_experiment.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# frozen_string_literal: true
-
-class InProductGuidanceEnvironmentsWebideExperiment < ApplicationExperiment
- control { false }
-
- exclude :has_environments?
-
- private
-
- def has_environments?
- !context.project.environments.empty?
- end
-end
diff --git a/app/finders/ci/catalog/resources/versions_finder.rb b/app/finders/ci/catalog/resources/versions_finder.rb
index b37d4f0377a..16f8531c5c4 100644
--- a/app/finders/ci/catalog/resources/versions_finder.rb
+++ b/app/finders/ci/catalog/resources/versions_finder.rb
@@ -18,6 +18,7 @@ module Ci
versions = params[:latest] ? get_latest_versions : get_versions
versions = versions.preloaded
+ versions = by_name(versions)
sort(versions)
end
@@ -45,6 +46,12 @@ module Ci
end
strong_memoize_attr :authorized_catalog_resources
+ def by_name(versions)
+ return versions unless params[:name]
+
+ versions.by_name(params[:name])
+ end
+
def sort(versions)
versions.order_by(params[:sort] || DEFAULT_SORT)
end
diff --git a/app/finders/ci/runner_jobs_finder.rb b/app/finders/ci/runner_jobs_finder.rb
index b659eda6646..91d8eccff21 100644
--- a/app/finders/ci/runner_jobs_finder.rb
+++ b/app/finders/ci/runner_jobs_finder.rb
@@ -13,7 +13,13 @@ module Ci
end
def execute
- items = @runner.builds
+ items = if params[:system_id].blank?
+ runner.builds
+ else
+ runner_manager = Ci::RunnerManager.for_runner(runner).with_system_xid(params[:system_id]).first
+ Ci::Build.belonging_to_runner_manager(runner_manager&.id)
+ end
+
items = by_permission(items)
items = by_status(items)
sort_items(items)
diff --git a/app/finders/ci/runner_managers_finder.rb b/app/finders/ci/runner_managers_finder.rb
new file mode 100644
index 00000000000..f24be74bbeb
--- /dev/null
+++ b/app/finders/ci/runner_managers_finder.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+module Ci
+ class RunnerManagersFinder
+ def initialize(runner:, params:)
+ @runner = runner
+ @params = params
+ end
+
+ def execute
+ items = runner_managers
+
+ filter_by_status(items)
+ end
+
+ private
+
+ attr_reader :runner, :params
+
+ def runner_managers
+ ::Ci::RunnerManager.for_runner(runner)
+ end
+
+ def filter_by_status(items)
+ status = params[:status]
+ return items if status.blank?
+
+ items.with_status(status)
+ end
+ end
+end
diff --git a/app/finders/ci/runners_finder.rb b/app/finders/ci/runners_finder.rb
index 945d332ff47..18be2aec2e2 100644
--- a/app/finders/ci/runners_finder.rb
+++ b/app/finders/ci/runners_finder.rb
@@ -14,18 +14,25 @@ module Ci
end
def execute
- search!
- filter_by_active!
- filter_by_status!
- filter_by_upgrade_status!
- filter_by_runner_type!
- filter_by_tag_list!
- filter_by_creator_id!
- filter_by_version_prefix!
- sort!
- request_tag_list!
-
- @runners
+ items = if @project
+ project_runners
+ elsif @group
+ group_runners
+ else
+ all_runners
+ end
+
+ items = search(items)
+ items = by_active(items)
+ items = by_status(items)
+ items = by_upgrade_status(items)
+ items = by_runner_type(items)
+ items = by_tag_list(items)
+ items = by_creator_id(items)
+ items = by_version_prefix(items)
+ items = request_tag_list(items)
+
+ sort(items)
end
def sort_key
@@ -40,110 +47,104 @@ module Ci
%w[contacted_asc contacted_desc created_at_asc created_at_desc created_date token_expires_at_asc token_expires_at_desc]
end
- def search!
- if @project
- project_runners
- elsif @group
- group_runners
- else
- all_runners
- end
-
- @runners = @runners.search(@params[:search]) if @params[:search].present?
- end
-
def all_runners
raise Gitlab::Access::AccessDeniedError unless @current_user&.can_admin_all_resources?
- @runners = Ci::Runner.all
+ Ci::Runner.all
end
def group_runners
raise Gitlab::Access::AccessDeniedError unless can?(@current_user, :read_group_runners, @group)
- @runners = case @params[:membership]
- when :direct
- Ci::Runner.belonging_to_group(@group.id)
- when :descendants, nil
- Ci::Runner.belonging_to_group_or_project_descendants(@group.id)
- when :all_available
- unless can?(@current_user, :read_group_all_available_runners, @group)
- raise Gitlab::Access::AccessDeniedError
- end
-
- Ci::Runner.usable_from_scope(@group)
- else
- raise ArgumentError, 'Invalid membership filter'
- end
+ case @params[:membership]
+ when :direct
+ Ci::Runner.belonging_to_group(@group.id)
+ when :descendants, nil
+ Ci::Runner.belonging_to_group_or_project_descendants(@group.id)
+ when :all_available
+ unless can?(@current_user, :read_group_all_available_runners, @group)
+ raise Gitlab::Access::AccessDeniedError
+ end
+
+ Ci::Runner.usable_from_scope(@group)
+ else
+ raise ArgumentError, 'Invalid membership filter'
+ end
end
def project_runners
raise Gitlab::Access::AccessDeniedError unless can?(@current_user, :read_project_runners, @project)
- @runners = ::Ci::Runner.owned_or_instance_wide(@project.id)
+ ::Ci::Runner.owned_or_instance_wide(@project.id)
+ end
+
+ def search(items)
+ return items unless @params[:search].present?
+
+ items.search(@params[:search])
end
- def filter_by_active!
- @runners = @runners.active(@params[:active]) if @params.include?(:active)
+ def by_active(items)
+ return items if @params.exclude?(:active)
+
+ items.active(@params[:active])
end
- def filter_by_status!
- filter_by!(:status_status, Ci::Runner::AVAILABLE_STATUSES)
+ def by_status(items)
+ status = @params[:status_status].presence
+ return items unless status
+
+ items.with_status(status)
end
- def filter_by_upgrade_status!
+ def by_upgrade_status(items)
upgrade_status = @params[:upgrade_status]
- return unless upgrade_status
+ return items unless upgrade_status
unless Ci::RunnerVersion.statuses.key?(upgrade_status)
raise ArgumentError, "Invalid upgrade status value '#{upgrade_status}'"
end
- @runners = @runners.with_upgrade_status(upgrade_status)
+ items.with_upgrade_status(upgrade_status)
end
- def filter_by_runner_type!
- filter_by!(:type_type, Ci::Runner::AVAILABLE_TYPES)
+ def by_runner_type(items)
+ runner_type = @params[:type_type].presence
+ return items unless runner_type
+
+ items.with_runner_type(runner_type)
end
- def filter_by_tag_list!
+ def by_tag_list(items)
tag_list = @params[:tag_name].presence
+ return items unless tag_list
- if tag_list
- @runners = @runners.tagged_with(tag_list)
- end
+ items.tagged_with(tag_list)
end
- def filter_by_creator_id!
- creator_id = @params[:creator_id]
- @runners = @runners.with_creator_id(creator_id) if creator_id.present?
- end
+ def by_creator_id(items)
+ creator_id = @params[:creator_id].presence
+ return items unless creator_id
- def filter_by_version_prefix!
- return @runners unless @params[:version_prefix]
-
- sanitized_prefix = @params[:version_prefix][/^[\d+.]+/]
-
- return @runners unless sanitized_prefix
-
- @runners = @runners.with_version_prefix(sanitized_prefix)
+ items.with_creator_id(creator_id)
end
- def sort!
- @runners = @runners.order_by(sort_key)
+ def by_version_prefix(items)
+ sanitized_prefix = @params.fetch(:version_prefix, '')[/^[\d+.]+/]
+ return items unless sanitized_prefix
+
+ items.with_version_prefix(sanitized_prefix)
end
- def request_tag_list!
- @runners = @runners.with_tags if !@params[:preload].present? || @params.dig(:preload, :tag_name)
+ def sort(items)
+ items.order_by(sort_key)
end
- def filter_by!(scope_name, available_scopes)
- scope = @params[scope_name]
+ def request_tag_list(items)
+ return items if @params.include?(:preload) && !@params.dig(:preload, :tag_name) # Backward-compatible behavior
- if scope.present? && available_scopes.include?(scope)
- @runners = @runners.public_send(scope) # rubocop:disable GitlabSecurity/PublicSend
- end
+ items.with_tags
end
end
end
diff --git a/app/finders/groups/accepting_project_shares_finder.rb b/app/finders/groups/accepting_project_shares_finder.rb
index c85e5a0f538..cf20292318e 100644
--- a/app/finders/groups/accepting_project_shares_finder.rb
+++ b/app/finders/groups/accepting_project_shares_finder.rb
@@ -42,7 +42,12 @@ module Groups
# rubocop: disable CodeReuse/Finder
def groups_with_guest_access_plus
- GroupsFinder.new(current_user, min_access_level: Gitlab::Access::GUEST).execute
+ groups = GroupsFinder.new(current_user, min_access_level: Gitlab::Access::GUEST).execute
+
+ # We move the result into a materialized CTE to improve query performance during text search.
+ union_query = ::Group.from_union([groups])
+ cte = Gitlab::SQL::CTE.new(:my_union_cte, union_query)
+ Group.with(cte.to_arel).from(cte.alias_to(Group.arel_table)) # rubocop: disable CodeReuse/ActiveRecord -- CTE use
end
# rubocop: enable CodeReuse/Finder
diff --git a/app/finders/issuable_finder/params.rb b/app/finders/issuable_finder/params.rb
index bc136848dd5..6b56c966025 100644
--- a/app/finders/issuable_finder/params.rb
+++ b/app/finders/issuable_finder/params.rb
@@ -135,14 +135,9 @@ class IssuableFinder
strong_memoize(:projects) do
next Array.wrap(project) if project?
- projects =
- if current_user && params[:authorized_only].presence && !current_user_related?
- current_user.authorized_projects(min_access_level)
- else
- projects_public_or_visible_to_user
- end
-
- projects.with_feature_available_for_user(klass.base_class, current_user).reorder(nil) # rubocop: disable CodeReuse/ActiveRecord
+ projects_public_or_visible_to_user
+ .with_feature_available_for_user(klass.base_class, current_user)
+ .without_order
end
end
diff --git a/app/finders/packages/terraform_module/packages_finder.rb b/app/finders/packages/terraform_module/packages_finder.rb
new file mode 100644
index 00000000000..bcef8738622
--- /dev/null
+++ b/app/finders/packages/terraform_module/packages_finder.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+module Packages
+ module TerraformModule
+ class PackagesFinder
+ def initialize(project, params = {})
+ @project = project
+ @params = params
+ end
+
+ def execute
+ return ::Packages::Package.none unless project && params[:package_name]
+
+ packages
+ end
+
+ private
+
+ attr_reader :project, :params
+
+ def packages
+ result = project
+ .packages
+ .with_name(params[:package_name])
+ .terraform_module
+ .installable
+
+ params[:package_version] ? result.with_version(params[:package_version]) : result.has_version.order_version_desc
+ end
+ end
+ end
+end
diff --git a/app/finders/projects/ml/experiment_finder.rb b/app/finders/projects/ml/experiment_finder.rb
new file mode 100644
index 00000000000..0363cc6ec39
--- /dev/null
+++ b/app/finders/projects/ml/experiment_finder.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+module Projects
+ module Ml
+ class ExperimentFinder
+ include Gitlab::Utils::StrongMemoize
+
+ VALID_ORDER_BY = %w[name created_at updated_at id].freeze
+ VALID_SORT = %w[asc desc].freeze
+
+ def initialize(project, params = {})
+ @project = project
+ @params = params
+ end
+
+ def execute
+ relation
+ end
+
+ private
+
+ def relation
+ @experiments = ::Ml::Experiment
+ .by_project(project)
+ .including_project
+
+ ordered
+ end
+
+ def ordered
+ order_by = valid_or_default(params[:order_by]&.downcase, VALID_ORDER_BY, 'id')
+ sort = valid_or_default(params[:sort]&.downcase, VALID_SORT, 'desc')
+
+ experiments.order_by("#{order_by}_#{sort}").with_order_id_desc
+ end
+
+ def valid_or_default(value, valid_values, default)
+ return value if valid_values.include?(value)
+
+ default
+ end
+
+ attr_reader :params, :project, :experiments
+ end
+ end
+end
diff --git a/app/finders/projects_finder.rb b/app/finders/projects_finder.rb
index 2a781c037f6..cd919c88f99 100644
--- a/app/finders/projects_finder.rb
+++ b/app/finders/projects_finder.rb
@@ -29,7 +29,7 @@
# repository_storage: string
# not_aimed_for_deletion: boolean
# full_paths: string[]
-# organization_id: int
+# organization: Scope the groups to the Organizations::Organization
#
class ProjectsFinder < UnionFinder
include CustomAttributesFilter
@@ -96,7 +96,7 @@ class ProjectsFinder < UnionFinder
collection = by_language(collection)
collection = by_feature_availability(collection)
collection = by_updated_at(collection)
- collection = by_organization_id(collection)
+ collection = by_organization(collection)
by_repository_storage(collection)
end
@@ -173,7 +173,7 @@ class ProjectsFinder < UnionFinder
# rubocop: enable CodeReuse/ActiveRecord
def by_full_paths(items)
- params[:full_paths].present? ? items.where_full_path_in(params[:full_paths], use_includes: false) : items
+ params[:full_paths].present? ? items.where_full_path_in(params[:full_paths], preload_routes: false) : items
end
def union(items)
@@ -295,8 +295,11 @@ class ProjectsFinder < UnionFinder
items
end
- def by_organization_id(items)
- params[:organization_id].present? ? items.in_organization(params[:organization_id]) : items
+ def by_organization(items)
+ organization = params[:organization]
+ return items unless organization
+
+ items.in_organization(organization)
end
def finder_params
diff --git a/app/finders/users_finder.rb b/app/finders/users_finder.rb
index 88ba635e20b..101562de209 100644
--- a/app/finders/users_finder.rb
+++ b/app/finders/users_finder.rb
@@ -55,7 +55,16 @@ class UsersFinder
private
def base_scope
- scope = current_user&.can_admin_all_resources? ? User.all : User.without_forbidden_states
+ group = params[:group]
+
+ if group
+ raise Gitlab::Access::AccessDeniedError unless user_can_read_group?(group)
+
+ scope = ::Autocomplete::GroupUsersFinder.new(group: group).execute # rubocop: disable CodeReuse/Finder -- For SQL optimization sake we need to scope out group members first see: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137647#note_1664081899
+ else
+ scope = current_user&.can_admin_all_resources? ? User.all : User.without_forbidden_states
+ end
+
scope.order_id_desc
end
@@ -155,6 +164,10 @@ class UsersFinder
users.order_by(params[:sort])
end
# rubocop: enable CodeReuse/ActiveRecord
+
+ def user_can_read_group?(group)
+ Ability.allowed?(current_user, :read_group, group)
+ end
end
UsersFinder.prepend_mod_with('UsersFinder')
diff --git a/app/graphql/graphql_triggers.rb b/app/graphql/graphql_triggers.rb
index 527eb50b644..52f3e56aec3 100644
--- a/app/graphql/graphql_triggers.rb
+++ b/app/graphql/graphql_triggers.rb
@@ -59,6 +59,12 @@ module GraphqlTriggers
)
end
+ def self.merge_request_diff_generated(merge_request)
+ GitlabSchema.subscriptions.trigger(
+ :merge_request_diff_generated, { issuable_id: merge_request.to_gid }, merge_request
+ )
+ end
+
def self.work_item_updated(work_item)
# becomes is necessary here since this can be triggered with both a WorkItem and also an Issue
# depending on the update service the call comes from
diff --git a/app/graphql/mutations/branch_rules/create.rb b/app/graphql/mutations/branch_rules/create.rb
new file mode 100644
index 00000000000..c478d981c33
--- /dev/null
+++ b/app/graphql/mutations/branch_rules/create.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+module Mutations
+ module BranchRules
+ class Create < BaseMutation
+ graphql_name 'BranchRuleCreate'
+
+ argument :project_path, GraphQL::Types::ID,
+ required: true,
+ description: 'Full path to the project that the branch is associated with.'
+
+ argument :name, GraphQL::Types::String,
+ required: true,
+ description: 'Branch name, with wildcards, for the branch rules.'
+
+ field :branch_rule,
+ Types::Projects::BranchRuleType,
+ null: true,
+ description: 'Branch rule after mutation.'
+
+ def resolve(project_path:, name:)
+ project = Project.find_by_full_path(project_path)
+
+ service_params = protected_branch_params(name)
+ protected_branch = ::ProtectedBranches::CreateService.new(project, current_user, service_params).execute
+
+ if protected_branch.persisted?
+ {
+ branch_rule: ::Projects::BranchRule.new(project, protected_branch),
+ errors: []
+ }
+ else
+ { errors: errors_on_object(protected_branch) }
+ end
+ rescue Gitlab::Access::AccessDeniedError
+ raise_resource_not_available_error!
+ end
+
+ def protected_branch_params(name)
+ {
+ name: name,
+ push_access_levels_attributes: access_level_attributes(:push),
+ merge_access_levels_attributes: access_level_attributes(:merge)
+ }
+ end
+
+ def access_level_attributes(type)
+ ::ProtectedRefs::AccessLevelParams.new(
+ type,
+ {},
+ with_defaults: true
+ ).access_levels
+ end
+ end
+ end
+end
diff --git a/app/graphql/mutations/concerns/mutations/work_items/update_arguments.rb b/app/graphql/mutations/concerns/mutations/work_items/update_arguments.rb
index 7aa78509bea..a5d9014af17 100644
--- a/app/graphql/mutations/concerns/mutations/work_items/update_arguments.rb
+++ b/app/graphql/mutations/concerns/mutations/work_items/update_arguments.rb
@@ -48,6 +48,10 @@ module Mutations
::Types::WorkItems::Widgets::AwardEmojiUpdateInputType,
required: false,
description: 'Input for emoji reactions widget.'
+ argument :notes_widget,
+ ::Types::WorkItems::Widgets::NotesInputType,
+ required: false,
+ description: 'Input for notes widget.'
end
end
end
diff --git a/app/graphql/mutations/issues/set_assignees.rb b/app/graphql/mutations/issues/set_assignees.rb
index 8413c89b010..1e55cdee0a8 100644
--- a/app/graphql/mutations/issues/set_assignees.rb
+++ b/app/graphql/mutations/issues/set_assignees.rb
@@ -8,7 +8,7 @@ module Mutations
include Assignable
def assign!(issue, users, mode)
- permitted, forbidden = users.partition { |u| u.can?(:read_issue, issue) }
+ permitted, forbidden = users.partition { |u| u.can?(:read_issue, issue.resource_parent) }
super(issue, permitted, mode)
diff --git a/app/graphql/mutations/ml/models/base.rb b/app/graphql/mutations/ml/models/base.rb
new file mode 100644
index 00000000000..e3c5a7a13a8
--- /dev/null
+++ b/app/graphql/mutations/ml/models/base.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module Mutations
+ module Ml
+ module Models
+ class Base < BaseMutation
+ authorize :write_model_registry
+
+ argument :project_path, GraphQL::Types::ID,
+ required: true,
+ description: "Project the model to mutate is in."
+
+ field :model,
+ Types::Ml::ModelType,
+ null: true,
+ description: 'Model after mutation.'
+ end
+ end
+ end
+end
diff --git a/app/graphql/mutations/ml/models/create.rb b/app/graphql/mutations/ml/models/create.rb
new file mode 100644
index 00000000000..21570fc34b8
--- /dev/null
+++ b/app/graphql/mutations/ml/models/create.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+module Mutations
+ module Ml
+ module Models
+ class Create < Base
+ graphql_name 'MlModelCreate'
+
+ include FindsProject
+
+ argument :name, GraphQL::Types::String,
+ required: true,
+ description: 'Name of the model.'
+
+ argument :description, GraphQL::Types::String,
+ required: false,
+ description: 'Description of the model.'
+
+ def resolve(**args)
+ project = authorized_find!(args[:project_path])
+
+ model = ::Ml::CreateModelService.new(project, args[:name], current_user, args[:description]).execute
+
+ {
+ model: model.persisted? ? model : nil,
+ errors: errors_on_object(model)
+ }
+ end
+ end
+ end
+ end
+end
diff --git a/app/graphql/mutations/namespace/package_settings/update.rb b/app/graphql/mutations/namespace/package_settings/update.rb
index 813c5687642..a429dd06a7c 100644
--- a/app/graphql/mutations/namespace/package_settings/update.rb
+++ b/app/graphql/mutations/namespace/package_settings/update.rb
@@ -51,6 +51,16 @@ module Mutations
required: false,
description: copy_field_description(Types::Namespace::PackageSettingsType, :nuget_duplicate_exception_regex)
+ argument :terraform_module_duplicates_allowed,
+ GraphQL::Types::Boolean,
+ required: false,
+ description: copy_field_description(Types::Namespace::PackageSettingsType, :terraform_module_duplicates_allowed)
+
+ argument :terraform_module_duplicate_exception_regex,
+ Types::UntrustedRegexp,
+ required: false,
+ description: copy_field_description(Types::Namespace::PackageSettingsType, :terraform_module_duplicate_exception_regex)
+
argument :maven_package_requests_forwarding,
GraphQL::Types::Boolean,
required: false,
diff --git a/app/graphql/mutations/work_items/create.rb b/app/graphql/mutations/work_items/create.rb
index 7ce508e5ef1..754b453ce5d 100644
--- a/app/graphql/mutations/work_items/create.rb
+++ b/app/graphql/mutations/work_items/create.rb
@@ -60,6 +60,7 @@ module Mutations
def resolve(project_path: nil, namespace_path: nil, **attributes)
container_path = project_path || namespace_path
container = authorized_find!(container_path)
+ check_env_feature_available!(container)
check_feature_available!(container)
params = global_id_compatibility_params(attributes).merge(author_id: current_user.id)
@@ -83,6 +84,15 @@ module Mutations
private
+ # This is just a temporary measure while we migrate and backfill epic internal_ids
+ # More info in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139367
+ def check_env_feature_available!(container)
+ return unless container.is_a?(::Group) && Rails.env.production?
+
+ message = 'Group level work items are disabled. Only project paths allowed in `namespacePath`.'
+ raise Gitlab::Graphql::Errors::ArgumentError, message
+ end
+
def check_feature_available!(container)
return unless container.is_a?(::Group) && Feature.disabled?(:namespace_level_work_items, container)
diff --git a/app/graphql/resolvers/ci/catalog/resources/versions_resolver.rb b/app/graphql/resolvers/ci/catalog/resources/versions_resolver.rb
index 9332076a493..899b407b180 100644
--- a/app/graphql/resolvers/ci/catalog/resources/versions_resolver.rb
+++ b/app/graphql/resolvers/ci/catalog/resources/versions_resolver.rb
@@ -11,12 +11,18 @@ module Resolvers
# field is evaluated on more than one node, it causes performance degradation.
extension ::Gitlab::Graphql::Limit::FieldCallCount, limit: 1
+ argument :name, GraphQL::Types::String,
+ required: false,
+ description: 'Name of the version.'
+
argument :sort, Types::Ci::Catalog::Resources::VersionSortEnum,
required: false,
description: 'Sort versions by given criteria.'
- def resolve(sort: nil)
- ::Ci::Catalog::Resources::VersionsFinder.new(object, current_user, sort: sort).execute
+ alias_method :catalog_resource, :object
+
+ def resolve(name: nil, sort: nil)
+ ::Ci::Catalog::Resources::VersionsFinder.new(catalog_resource, current_user, name: name, sort: sort).execute
end
end
end
diff --git a/app/graphql/resolvers/ci/runner_owner_project_resolver.rb b/app/graphql/resolvers/ci/runner_owner_project_resolver.rb
index f4e044b81c9..28c39427872 100644
--- a/app/graphql/resolvers/ci/runner_owner_project_resolver.rb
+++ b/app/graphql/resolvers/ci/runner_owner_project_resolver.rb
@@ -34,7 +34,7 @@ module Resolvers
def resolve_owner
return unless runner.project_type?
- BatchLoader::GraphQL.for(runner.id).batch(key: :runner_owner_projects) do |runner_ids, loader|
+ BatchLoader::GraphQL.for(runner.id).batch do |runner_ids, loader|
# rubocop: disable CodeReuse/ActiveRecord
runner_and_projects_with_row_number =
::Ci::RunnerProject
diff --git a/app/graphql/resolvers/ci/runner_projects_resolver.rb b/app/graphql/resolvers/ci/runner_projects_resolver.rb
index c5037965e20..99c9bba1bd6 100644
--- a/app/graphql/resolvers/ci/runner_projects_resolver.rb
+++ b/app/graphql/resolvers/ci/runner_projects_resolver.rb
@@ -28,7 +28,7 @@ module Resolvers
return unless runner.project_type?
# rubocop:disable CodeReuse/ActiveRecord
- BatchLoader::GraphQL.for(runner.id).batch(key: :runner_projects) do |runner_ids, loader|
+ BatchLoader::GraphQL.for(runner.id).batch do |runner_ids, loader|
plucked_runner_and_project_ids = ::Ci::RunnerProject
.select(:runner_id, :project_id)
.where(runner_id: runner_ids)
diff --git a/app/graphql/resolvers/ci/runner_resolver.rb b/app/graphql/resolvers/ci/runner_resolver.rb
index 4250b069d20..60fb4163afe 100644
--- a/app/graphql/resolvers/ci/runner_resolver.rb
+++ b/app/graphql/resolvers/ci/runner_resolver.rb
@@ -6,13 +6,12 @@ module Resolvers
include LooksAhead
type Types::Ci::RunnerType, null: true
- extras [:lookahead]
description 'Runner information.'
argument :id,
- type: ::Types::GlobalIDType[::Ci::Runner],
- required: true,
- description: 'Runner ID.'
+ type: ::Types::GlobalIDType[::Ci::Runner],
+ required: true,
+ description: 'Runner ID.'
def resolve_with_lookahead(id:)
find_runner(id: id)
@@ -21,19 +20,13 @@ module Resolvers
private
def find_runner(id:)
- runner_id = GitlabSchema.parse_gid(id, expected_type: ::Ci::Runner).model_id.to_i
- key = {
- preload_tag_list: lookahead.selects?(:tag_list),
- preload_creator: lookahead.selects?(:created_by)
- }
-
- BatchLoader::GraphQL.for(runner_id).batch(key: key) do |ids, loader, batch|
- results = ::Ci::Runner.id_in(ids)
- results = results.with_tags if batch[:key][:preload_tag_list]
- results = results.with_creator if batch[:key][:preload_creator]
-
- results.each { |record| loader.call(record.id, record) }
- end
+ preloads = []
+ preloads << :creator if lookahead.selects?(:created_by)
+ preloads << :tags if lookahead.selects?(:tag_list)
+
+ runner_id = GitlabSchema.parse_gid(id, expected_type: ::Ci::Runner).model_id
+
+ ::Gitlab::Graphql::Loaders::BatchModelLoader.new(::Ci::Runner, runner_id, preloads).find
end
end
end
diff --git a/app/graphql/resolvers/ci/runners_resolver.rb b/app/graphql/resolvers/ci/runners_resolver.rb
index 9121c413b1f..38d2ebe046b 100644
--- a/app/graphql/resolvers/ci/runners_resolver.rb
+++ b/app/graphql/resolvers/ci/runners_resolver.rb
@@ -82,7 +82,7 @@ module Resolvers
creator_id:
params[:creator_id] ? ::GitlabSchema.parse_gid(params[:creator_id], expected_type: ::User).model_id : nil,
version_prefix: params[:version_prefix],
- preload: false # we'll handle preloading ourselves
+ preload: {} # we'll handle preloading ourselves
}.compact
.merge(parent_param)
end
diff --git a/app/graphql/resolvers/concerns/resolves_groups.rb b/app/graphql/resolvers/concerns/resolves_groups.rb
index 86dda5cb1cb..1673b1bd37f 100644
--- a/app/graphql/resolvers/concerns/resolves_groups.rb
+++ b/app/graphql/resolvers/concerns/resolves_groups.rb
@@ -5,6 +5,19 @@ module ResolvesGroups
extend ActiveSupport::Concern
include LooksAhead
+ PRELOADS = {
+ container_repositories_count: [:container_repositories],
+ custom_emoji: [:custom_emoji],
+ full_path: [:route],
+ path: [:route],
+ web_url: [:route],
+ dependency_proxy_blob_count: [:dependency_proxy_blobs],
+ dependency_proxy_blobs: [:dependency_proxy_blobs],
+ dependency_proxy_image_count: [:dependency_proxy_manifests],
+ dependency_proxy_image_ttl_policy: [:dependency_proxy_image_ttl_policy],
+ dependency_proxy_setting: [:dependency_proxy_setting]
+ }.freeze
+
def resolve_with_lookahead(...)
apply_lookahead(resolve_groups(...))
end
@@ -17,17 +30,8 @@ module ResolvesGroups
end
def preloads
- {
- container_repositories_count: [:container_repositories],
- custom_emoji: [:custom_emoji],
- full_path: [:route],
- path: [:route],
- web_url: [:route],
- dependency_proxy_blob_count: [:dependency_proxy_blobs],
- dependency_proxy_blobs: [:dependency_proxy_blobs],
- dependency_proxy_image_count: [:dependency_proxy_manifests],
- dependency_proxy_image_ttl_policy: [:dependency_proxy_image_ttl_policy],
- dependency_proxy_setting: [:dependency_proxy_setting]
- }
+ PRELOADS
end
end
+
+ResolvesGroups.prepend_mod
diff --git a/app/graphql/resolvers/container_repository_tags_resolver.rb b/app/graphql/resolvers/container_repository_tags_resolver.rb
index 50adf98fa07..d3929451bd0 100644
--- a/app/graphql/resolvers/container_repository_tags_resolver.rb
+++ b/app/graphql/resolvers/container_repository_tags_resolver.rb
@@ -14,6 +14,11 @@ module Resolvers
required: false,
default_value: nil
+ argument :referrers, GraphQL::Types::Boolean,
+ description: 'Include tag referrers.',
+ required: false,
+ default_value: nil
+
alias_method :container_repository, :object
def resolve(sort:, **filters)
@@ -25,7 +30,8 @@ module Resolvers
last: filters[:after],
sort: map_sort_field(sort),
name: filters[:name],
- page_size: page_size
+ page_size: page_size,
+ referrers: filters[:referrers]
)
Gitlab::Graphql::ExternallyPaginatedArray.new(
diff --git a/app/graphql/resolvers/full_path_resolver.rb b/app/graphql/resolvers/full_path_resolver.rb
index b8df54f49ab..2c64d08a219 100644
--- a/app/graphql/resolvers/full_path_resolver.rb
+++ b/app/graphql/resolvers/full_path_resolver.rb
@@ -4,10 +4,10 @@ module Resolvers
module FullPathResolver
extend ActiveSupport::Concern
- prepended do
+ included do
argument :full_path, GraphQL::Types::ID,
- required: true,
- description: 'Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`.'
+ required: true,
+ description: "Full path of the #{target_type}. For example, `gitlab-org/gitlab-foss`."
end
def model_by_full_path(model, full_path)
diff --git a/app/graphql/resolvers/group_resolver.rb b/app/graphql/resolvers/group_resolver.rb
index 4260e18829e..e3b651b6493 100644
--- a/app/graphql/resolvers/group_resolver.rb
+++ b/app/graphql/resolvers/group_resolver.rb
@@ -2,7 +2,11 @@
module Resolvers
class GroupResolver < BaseResolver
- prepend FullPathResolver
+ def self.target_type
+ 'group'
+ end
+
+ include FullPathResolver
type Types::GroupType, null: true
diff --git a/app/graphql/resolvers/ml/find_models_resolver.rb b/app/graphql/resolvers/ml/find_models_resolver.rb
new file mode 100644
index 00000000000..b9901100e22
--- /dev/null
+++ b/app/graphql/resolvers/ml/find_models_resolver.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+module Resolvers
+ module Ml
+ class FindModelsResolver < Resolvers::BaseResolver
+ extension ::Gitlab::Graphql::Limit::FieldCallCount, limit: 1
+
+ type ::Types::Ml::ModelType.connection_type, null: true
+
+ argument :name, GraphQL::Types::String,
+ required: false,
+ description: 'Search for names that include the string.'
+
+ argument :order_by, ::Types::Ml::ModelsOrderByEnum,
+ required: false,
+ description: 'Ordering column. Default is created_at.'
+
+ argument :sort, ::Types::SortDirectionEnum,
+ required: false,
+ description: 'Ordering column. Default is desc.'
+
+ def resolve(**args)
+ return unless current_user.can?(:read_model_registry, object)
+
+ find_params = {
+ name: args[:name],
+ order_by: args[:order_by].to_s,
+ sort: args[:sort].to_s
+ }
+
+ ::Projects::Ml::ModelFinder.new(object, find_params).execute
+ end
+ end
+ end
+end
diff --git a/app/graphql/resolvers/namespace_resolver.rb b/app/graphql/resolvers/namespace_resolver.rb
index 17b3800d151..a0b16758625 100644
--- a/app/graphql/resolvers/namespace_resolver.rb
+++ b/app/graphql/resolvers/namespace_resolver.rb
@@ -2,7 +2,11 @@
module Resolvers
class NamespaceResolver < BaseResolver
- prepend FullPathResolver
+ def self.target_type
+ 'namespace'
+ end
+
+ include FullPathResolver
type Types::NamespaceType, null: true
diff --git a/app/graphql/resolvers/organizations/organizations_resolver.rb b/app/graphql/resolvers/organizations/organizations_resolver.rb
new file mode 100644
index 00000000000..ab21a84645b
--- /dev/null
+++ b/app/graphql/resolvers/organizations/organizations_resolver.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Resolvers
+ module Organizations
+ class OrganizationsResolver < BaseResolver
+ include Gitlab::Graphql::Authorize::AuthorizeResource
+
+ type Types::Organizations::OrganizationType.connection_type, null: true
+ authorize :read_organization
+
+ def resolve
+ # For the Organization MVC, all the organizations are public. We need to change this to only accessible
+ # organizations once we start supporting private organizations.
+ # See https://gitlab.com/groups/gitlab-org/-/epics/10649.
+ ::Organizations::Organization.all
+ end
+ end
+ end
+end
diff --git a/app/graphql/resolvers/organizations/projects_resolver.rb b/app/graphql/resolvers/organizations/projects_resolver.rb
new file mode 100644
index 00000000000..836fe0ae059
--- /dev/null
+++ b/app/graphql/resolvers/organizations/projects_resolver.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Resolvers
+ module Organizations
+ class ProjectsResolver < BaseResolver
+ include Gitlab::Graphql::Authorize::AuthorizeResource
+
+ type Types::ProjectType, null: true
+
+ authorize :read_project
+
+ alias_method :organization, :object
+
+ def resolve
+ ::ProjectsFinder.new(current_user: current_user, params: { organization: organization }).execute
+ end
+ end
+ end
+end
diff --git a/app/graphql/resolvers/project_resolver.rb b/app/graphql/resolvers/project_resolver.rb
index 2132447da5e..931fefcea50 100644
--- a/app/graphql/resolvers/project_resolver.rb
+++ b/app/graphql/resolvers/project_resolver.rb
@@ -2,7 +2,11 @@
module Resolvers
class ProjectResolver < BaseResolver
- prepend FullPathResolver
+ def self.target_type
+ 'project'
+ end
+
+ include FullPathResolver
type Types::ProjectType, null: true
diff --git a/app/graphql/resolvers/projects/fork_targets_resolver.rb b/app/graphql/resolvers/projects/fork_targets_resolver.rb
index 5e8be325d43..27797b9f0af 100644
--- a/app/graphql/resolvers/projects/fork_targets_resolver.rb
+++ b/app/graphql/resolvers/projects/fork_targets_resolver.rb
@@ -3,7 +3,7 @@
module Resolvers
module Projects
class ForkTargetsResolver < BaseResolver
- include ResolvesGroups
+ include LooksAhead
include Gitlab::Graphql::Authorize::AuthorizeResource
type Types::NamespaceType.connection_type, null: true
@@ -17,10 +17,15 @@ module Resolvers
required: false,
description: 'Search query for path or name.'
+ def resolve_with_lookahead(**args)
+ fork_targets = ForkTargetsFinder.new(project, current_user).execute(args)
+ apply_lookahead(fork_targets)
+ end
+
private
- def resolve_groups(**args)
- ForkTargetsFinder.new(project, current_user).execute(args)
+ def preloads
+ ResolvesGroups::PRELOADS
end
end
end
diff --git a/app/graphql/resolvers/users_resolver.rb b/app/graphql/resolvers/users_resolver.rb
index 90a6bd3e6b2..a512c6bafe1 100644
--- a/app/graphql/resolvers/users_resolver.rb
+++ b/app/graphql/resolvers/users_resolver.rb
@@ -28,10 +28,19 @@ module Resolvers
default_value: false,
description: 'Return only admin users.'
- def resolve(ids: nil, usernames: nil, sort: nil, search: nil, admins: nil)
+ argument :group_id, ::Types::GlobalIDType[::Group],
+ required: false,
+ description: 'Return users member of a given group.'
+
+ def resolve(ids: nil, usernames: nil, sort: nil, search: nil, admins: nil, group_id: nil)
authorize!(usernames)
- ::UsersFinder.new(context[:current_user], finder_params(ids, usernames, sort, search, admins)).execute
+ group = group_id ? find_authorized_group!(group_id) : nil
+
+ ::UsersFinder.new(
+ context[:current_user],
+ finder_params(ids, usernames, sort, search, admins, group)
+ ).execute
end
def ready?(**args)
@@ -52,16 +61,27 @@ module Resolvers
private
- def finder_params(ids, usernames, sort, search, admins)
+ def finder_params(ids, usernames, sort, search, admins, group)
params = {}
params[:sort] = sort if sort
params[:username] = usernames if usernames
params[:id] = parse_gids(ids) if ids
params[:search] = search if search
params[:admins] = admins if admins
+ params[:group] = group if group
params
end
+ def find_authorized_group!(group_id)
+ group = GitlabSchema.find_by_gid(group_id).sync
+
+ unless Ability.allowed?(current_user, :read_group, group)
+ raise_resource_not_available_error! "Could not find a Group with ID #{group_id}"
+ end
+
+ group
+ end
+
def parse_gids(gids)
gids.map { |gid| GitlabSchema.parse_gid(gid, expected_type: ::User).model_id }
end
diff --git a/app/graphql/types/ci/catalog/resources/component_type.rb b/app/graphql/types/ci/catalog/resources/component_type.rb
index 3b4771446cb..71ed31725a6 100644
--- a/app/graphql/types/ci/catalog/resources/component_type.rb
+++ b/app/graphql/types/ci/catalog/resources/component_type.rb
@@ -16,7 +16,8 @@ module Types
description: 'Name of the component.',
alpha: { milestone: '16.7' }
- field :path, GraphQL::Types::String, null: true,
+ field :include_path, GraphQL::Types::String, null: true,
+ method: :path,
description: 'Path used to include the component.',
alpha: { milestone: '16.7' }
diff --git a/app/graphql/types/ci/catalog/resources/version_type.rb b/app/graphql/types/ci/catalog/resources/version_type.rb
index 689f649afc5..b52a1c6b13d 100644
--- a/app/graphql/types/ci/catalog/resources/version_type.rb
+++ b/app/graphql/types/ci/catalog/resources/version_type.rb
@@ -20,13 +20,13 @@ module Types
field :released_at, Types::TimeType, null: true, description: 'Timestamp of when the version was released.',
alpha: { milestone: '16.7' }
- field :tag_name, GraphQL::Types::String, null: true, method: :name,
- description: 'Name of the tag associated with the version.',
- alpha: { milestone: '16.7' }
+ field :name, GraphQL::Types::String, null: true,
+ description: 'Name that uniquely identifies the version within the catalog resource.',
+ alpha: { milestone: '16.8' }
- field :tag_path, GraphQL::Types::String, null: true,
- description: 'Relative web path to the tag associated with the version.',
- alpha: { milestone: '16.7' }
+ field :path, GraphQL::Types::String, null: true,
+ description: 'Relative web path to the version.',
+ alpha: { milestone: '16.8' }
field :author, Types::UserType, null: true, description: 'User that created the version.',
alpha: { milestone: '16.7' }
@@ -39,12 +39,22 @@ module Types
description: 'Components belonging to the catalog resource.',
alpha: { milestone: '16.7' }
+ field :readme_html, GraphQL::Types::String, null: true, calls_gitaly: true,
+ description: 'GitLab Flavored Markdown rendering of README.md. This field ' \
+ 'can only be resolved for one version in any single request.',
+ alpha: { milestone: '16.8' } do
+ extension ::Gitlab::Graphql::Limit::FieldCallCount, limit: 1 # To avoid N+1 calls to Gitaly
+ end
+
def author
Gitlab::Graphql::Loaders::BatchModelLoader.new(User, object.author_id).find
end
- def tag_path
- Gitlab::Routing.url_helpers.project_tag_path(object.project, object.name)
+ def readme_html
+ return unless Ability.allowed?(current_user, :read_code, object.project)
+
+ markdown_context = context.to_h.dup.merge(project: object.project)
+ ::MarkupHelper.markdown(object.readme&.data, markdown_context)
end
end
# rubocop: enable Graphql/AuthorizeTypes
diff --git a/app/graphql/types/ci/ci_cd_setting_type.rb b/app/graphql/types/ci/ci_cd_setting_type.rb
index f01c63d717b..0c2d1b788af 100644
--- a/app/graphql/types/ci/ci_cd_setting_type.rb
+++ b/app/graphql/types/ci/ci_cd_setting_type.rb
@@ -27,7 +27,7 @@ module Types
field :merge_pipelines_enabled,
GraphQL::Types::Boolean,
null: true,
- description: 'Whether merge pipelines are enabled.',
+ description: 'Whether merged results pipelines are enabled.',
method: :merge_pipelines_enabled?
field :project,
Types::ProjectType,
diff --git a/app/graphql/types/ci/inherited_ci_variable_type.rb b/app/graphql/types/ci/inherited_ci_variable_type.rb
index 2d8dcdaeefe..c90e34b25dd 100644
--- a/app/graphql/types/ci/inherited_ci_variable_type.rb
+++ b/app/graphql/types/ci/inherited_ci_variable_type.rb
@@ -15,6 +15,10 @@ module Types
null: true,
description: 'Name of the variable.'
+ field :description, GraphQL::Types::String,
+ null: true,
+ description: 'Description of the variable.'
+
field :raw, GraphQL::Types::Boolean,
null: true,
description: 'Indicates whether the variable is raw.'
diff --git a/app/graphql/types/ci/instance_variable_type.rb b/app/graphql/types/ci/instance_variable_type.rb
index e3230556769..457cd8a1ba2 100644
--- a/app/graphql/types/ci/instance_variable_type.rb
+++ b/app/graphql/types/ci/instance_variable_type.rb
@@ -13,6 +13,10 @@ module Types
null: false,
description: 'ID of the variable.'
+ field :description, GraphQL::Types::String,
+ null: true,
+ description: 'Description of the variable.'
+
field :environment_scope, GraphQL::Types::String,
null: true,
deprecated: {
diff --git a/app/graphql/types/commit_signatures/verification_status_enum.rb b/app/graphql/types/commit_signatures/verification_status_enum.rb
index 9df1b7abd82..d0d8f6670c3 100644
--- a/app/graphql/types/commit_signatures/verification_status_enum.rb
+++ b/app/graphql/types/commit_signatures/verification_status_enum.rb
@@ -6,10 +6,10 @@ module Types
module CommitSignatures
class VerificationStatusEnum < BaseEnum
graphql_name 'VerificationStatus'
- description 'Verification status of a GPG or X.509 signature for a commit.'
+ description 'Verification status of a GPG, X.509 or SSH signature for a commit.'
- ::CommitSignatures::GpgSignature.verification_statuses.each do |status, _|
- value status.upcase, value: status, description: "#{status} verification status."
+ ::Enums::CommitSignature.verification_statuses.each_key do |status|
+ value status.to_s.upcase, value: status.to_s, description: "#{status} verification status."
end
end
end
diff --git a/app/graphql/types/container_repository_referrer_type.rb b/app/graphql/types/container_repository_referrer_type.rb
new file mode 100644
index 00000000000..d9d4d150b95
--- /dev/null
+++ b/app/graphql/types/container_repository_referrer_type.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+module Types
+ class ContainerRepositoryReferrerType < BaseObject
+ graphql_name 'ContainerRepositoryReferrer'
+
+ description 'A referrer for a container repository tag'
+
+ authorize :read_container_image
+
+ expose_permissions Types::PermissionTypes::ContainerRepositoryTag
+
+ field :artifact_type, GraphQL::Types::String, description: 'Artifact type of the referrer.'
+ field :digest, GraphQL::Types::String, description: 'Digest of the referrer.'
+ end
+end
diff --git a/app/graphql/types/container_repository_tag_type.rb b/app/graphql/types/container_repository_tag_type.rb
index cf8796410d3..7691844645a 100644
--- a/app/graphql/types/container_repository_tag_type.rb
+++ b/app/graphql/types/container_repository_tag_type.rb
@@ -22,6 +22,8 @@ module Types
field :location, GraphQL::Types::String, null: false, description: 'URL of the tag.'
field :name, GraphQL::Types::String, null: false, description: 'Name of the tag.'
field :path, GraphQL::Types::String, null: false, description: 'Path of the tag.'
+ field :published_at, Types::TimeType, null: true, description: 'Timestamp when the tag was published.'
+ field :referrers, [Types::ContainerRepositoryReferrerType], null: true, description: 'Referrers for this tag.'
field :revision, GraphQL::Types::String, null: true, description: 'Revision of the tag.'
field :short_revision, GraphQL::Types::String, null: true, description: 'Short revision of the tag.'
field :total_size, GraphQL::Types::BigInt, null: true, description: 'Size of the tag.'
diff --git a/app/graphql/types/group_type.rb b/app/graphql/types/group_type.rb
index 7234948033b..01b741b5a98 100644
--- a/app/graphql/types/group_type.rb
+++ b/app/graphql/types/group_type.rb
@@ -214,6 +214,21 @@ module Types
complexity: 5,
resolver: Resolvers::NestedGroupsResolver
+ field :descendant_groups_count,
+ GraphQL::Types::Int,
+ null: false,
+ description: 'Count of direct descendant groups of this group.'
+
+ field :group_members_count,
+ GraphQL::Types::Int,
+ null: false,
+ description: 'Count of direct members of this group.'
+
+ field :projects_count,
+ GraphQL::Types::Int,
+ null: false,
+ description: 'Count of direct projects in this group.'
+
field :ci_variables,
Types::Ci::GroupVariableType.connection_type,
null: true,
@@ -339,6 +354,27 @@ module Types
group.dependency_proxy_setting || group.create_dependency_proxy_setting
end
+ def descendant_groups_count
+ BatchLoader::GraphQL.for(object.id).batch do |group_ids, loader|
+ descendants_counts = Group.id_in(group_ids).descendant_groups_counts
+ descendants_counts.each { |group_id, count| loader.call(group_id, count) }
+ end
+ end
+
+ def projects_count
+ BatchLoader::GraphQL.for(object.id).batch do |group_ids, loader|
+ projects_counts = Group.id_in(group_ids).projects_counts
+ projects_counts.each { |group_id, count| loader.call(group_id, count) }
+ end
+ end
+
+ def group_members_count
+ BatchLoader::GraphQL.for(object.id).batch do |group_ids, loader|
+ members_counts = Group.id_in(group_ids).group_members_counts
+ members_counts.each { |group_id, count| loader.call(group_id, count) }
+ end
+ end
+
private
def group
diff --git a/app/graphql/types/merge_request_type.rb b/app/graphql/types/merge_request_type.rb
index d7c3b313f84..3572cfd346b 100644
--- a/app/graphql/types/merge_request_type.rb
+++ b/app/graphql/types/merge_request_type.rb
@@ -248,6 +248,18 @@ module Types
'if `sast_reports_in_inline_diff` feature flag is disabled.',
resolver: ::Resolvers::CodequalityReportsComparerResolver
+ field :allows_multiple_assignees,
+ GraphQL::Types::Boolean,
+ method: :allows_multiple_assignees?,
+ description: 'Allows assigning multiple users to a merge request.',
+ null: false
+
+ field :allows_multiple_reviewers,
+ GraphQL::Types::Boolean,
+ method: :allows_multiple_reviewers?,
+ description: 'Allows assigning multiple reviewers to a merge request.',
+ null: false
+
markdown_field :title_html, null: true
markdown_field :description_html, null: true
diff --git a/app/graphql/types/ml/model_links_type.rb b/app/graphql/types/ml/model_links_type.rb
new file mode 100644
index 00000000000..9d18efb2e17
--- /dev/null
+++ b/app/graphql/types/ml/model_links_type.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+module Types
+ module Ml
+ # rubocop: disable Graphql/AuthorizeTypes -- authorization in ModelDetailsResolver
+ class ModelLinksType < BaseObject
+ graphql_name 'MLModelLinks'
+ description 'Represents links to perform actions on the model'
+
+ present_using ::Ml::ModelPresenter
+
+ field :show_path, GraphQL::Types::String,
+ null: true, description: 'Path to the details page of the model.', method: :path
+ end
+ # rubocop: enable Graphql/AuthorizeTypes
+ end
+end
diff --git a/app/graphql/types/ml/model_type.rb b/app/graphql/types/ml/model_type.rb
index ca63918b370..a26d50cbdc4 100644
--- a/app/graphql/types/ml/model_type.rb
+++ b/app/graphql/types/ml/model_type.rb
@@ -7,10 +7,25 @@ module Types
graphql_name 'MlModel'
description 'Machine learning model in the model registry'
+ connection_type_class Types::LimitedCountableConnectionType
+
+ present_using ::Ml::ModelPresenter
+
field :id, ::Types::GlobalIDType[::Ml::Model], null: false, description: 'ID of the model.'
field :name, ::GraphQL::Types::String, null: false, description: 'Name of the model.'
+ field :created_at, Types::TimeType, null: false, description: 'Date of creation.'
+
+ field :description, ::GraphQL::Types::String, null: false, description: 'Description of the model.'
+
+ field :latest_version, ::Types::Ml::ModelVersionType, null: true, description: 'Latest version of the model.'
+
+ field :version_count, ::GraphQL::Types::Int, null: true, description: 'Count of versions in the model.'
+
+ field :_links, ::Types::Ml::ModelLinksType, null: false, method: :itself,
+ description: 'Map of links to perform actions on the model.'
+
field :versions, ::Types::Ml::ModelVersionType.connection_type, null: true,
description: 'Versions of the model.'
diff --git a/app/graphql/types/ml/model_version_links_type.rb b/app/graphql/types/ml/model_version_links_type.rb
index 142f62bfad2..a8497334fc6 100644
--- a/app/graphql/types/ml/model_version_links_type.rb
+++ b/app/graphql/types/ml/model_version_links_type.rb
@@ -11,6 +11,9 @@ module Types
field :show_path, GraphQL::Types::String,
null: true, description: 'Path to the details page of the model version.', method: :path
+
+ field :package_path, GraphQL::Types::String,
+ null: true, description: 'Path to the package of the model version.', method: :package_path
end
# rubocop: enable Graphql/AuthorizeTypes
end
diff --git a/app/graphql/types/ml/models_order_by_enum.rb b/app/graphql/types/ml/models_order_by_enum.rb
new file mode 100644
index 00000000000..db96a2e2d7d
--- /dev/null
+++ b/app/graphql/types/ml/models_order_by_enum.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module Types
+ module Ml
+ class ModelsOrderByEnum < BaseEnum
+ graphql_name 'MlModelsOrderBy'
+ description 'Values for ordering machine learning models by a specific field'
+
+ value 'NAME', 'Ordered by name.', value: :name
+ value 'CREATED_AT', 'Ordered by creation time.', value: :created_at
+ value 'UPDATED_AT', 'Ordered by update time.', value: :updated_at
+ value 'ID', 'Ordered by id.', value: :id
+ end
+ end
+end
diff --git a/app/graphql/types/mutation_type.rb b/app/graphql/types/mutation_type.rb
index 590bc0ed282..0a725c2e0a7 100644
--- a/app/graphql/types/mutation_type.rb
+++ b/app/graphql/types/mutation_type.rb
@@ -111,6 +111,7 @@ module Types
mount_mutation Mutations::Projects::SyncFork, calls_gitaly: true, alpha: { milestone: '15.9' }
mount_mutation Mutations::Projects::Star, alpha: { milestone: '16.7' }
mount_mutation Mutations::BranchRules::Update, alpha: { milestone: '16.7' }
+ mount_mutation Mutations::BranchRules::Create, alpha: { milestone: '16.7' }
mount_mutation Mutations::Releases::Create
mount_mutation Mutations::Releases::Update
mount_mutation Mutations::Releases::Delete
@@ -202,6 +203,7 @@ module Types
mount_mutation Mutations::Users::SetNamespaceCommitEmail
mount_mutation Mutations::WorkItems::Subscribe, alpha: { milestone: '16.3' }
mount_mutation Mutations::Admin::AbuseReportLabels::Create, alpha: { milestone: '16.4' }
+ mount_mutation Mutations::Ml::Models::Create, alpha: { milestone: '16.8' }
end
end
diff --git a/app/graphql/types/namespace/package_settings_type.rb b/app/graphql/types/namespace/package_settings_type.rb
index 7bf76ae7de5..621cb091019 100644
--- a/app/graphql/types/namespace/package_settings_type.rb
+++ b/app/graphql/types/namespace/package_settings_type.rb
@@ -35,6 +35,12 @@ module Types
field :pypi_package_requests_forwarding, GraphQL::Types::Boolean,
null: true,
description: 'Indicates whether PyPI package forwarding is allowed for this namespace.'
+ field :terraform_module_duplicate_exception_regex, Types::UntrustedRegexp,
+ null: true,
+ description: 'When terraform_module_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect.'
+ field :terraform_module_duplicates_allowed, GraphQL::Types::Boolean,
+ null: false,
+ description: 'Indicates whether duplicate Terraform packages are allowed for this namespace.'
field :lock_maven_package_requests_forwarding, GraphQL::Types::Boolean,
null: false,
diff --git a/app/graphql/types/namespace_type.rb b/app/graphql/types/namespace_type.rb
index 85bda507ff7..3420f16213f 100644
--- a/app/graphql/types/namespace_type.rb
+++ b/app/graphql/types/namespace_type.rb
@@ -4,7 +4,7 @@ module Types
class NamespaceType < BaseObject
graphql_name 'Namespace'
- authorize :read_namespace_via_membership
+ authorize :read_namespace
field :id, GraphQL::Types::ID, null: false,
description: 'ID of the namespace.'
diff --git a/app/graphql/types/organizations/organization_type.rb b/app/graphql/types/organizations/organization_type.rb
index 379bf9956a3..d36c92541ef 100644
--- a/app/graphql/types/organizations/organization_type.rb
+++ b/app/graphql/types/organizations/organization_type.rb
@@ -43,6 +43,10 @@ module Types
null: false,
description: 'Path of the organization.',
alpha: { milestone: '16.4' }
+ field :projects, Types::ProjectType.connection_type, null: false,
+ description: 'Projects within this organization that the user has access to.',
+ alpha: { milestone: '16.8' },
+ resolver: ::Resolvers::Organizations::ProjectsResolver
field :web_url,
GraphQL::Types::String,
null: false,
diff --git a/app/graphql/types/permission_types/issue.rb b/app/graphql/types/permission_types/issue.rb
index a76dc88adfc..65586b384be 100644
--- a/app/graphql/types/permission_types/issue.rb
+++ b/app/graphql/types/permission_types/issue.rb
@@ -8,7 +8,7 @@ module Types
abilities :read_issue, :admin_issue, :update_issue, :reopen_issue,
:read_design, :create_design, :destroy_design,
- :create_note, :update_design
+ :create_note, :update_design, :admin_issue_relation
end
end
end
diff --git a/app/graphql/types/project_type.rb b/app/graphql/types/project_type.rb
index 8e84605cb05..7f49c717c78 100644
--- a/app/graphql/types/project_type.rb
+++ b/app/graphql/types/project_type.rb
@@ -663,6 +663,24 @@ module Types
null: true,
resolver: Resolvers::Analytics::CycleAnalytics::ValueStreamsResolver
+ field :ml_models, ::Types::Ml::ModelType.connection_type,
+ null: true,
+ alpha: { milestone: '16.8' },
+ description: 'Finds machine learning models',
+ resolver: Resolvers::Ml::FindModelsResolver
+
+ field :allows_multiple_merge_request_assignees,
+ GraphQL::Types::Boolean,
+ method: :allows_multiple_merge_request_assignees?,
+ description: 'Project allows assigning multiple users to a merge request.',
+ null: false
+
+ field :allows_multiple_merge_request_reviewers,
+ GraphQL::Types::Boolean,
+ method: :allows_multiple_merge_request_reviewers?,
+ description: 'Project allows assigning multiple reviewers to a merge request.',
+ null: false
+
def timelog_categories
object.project_namespace.timelog_categories if Feature.enabled?(:timelog_categories)
end
diff --git a/app/graphql/types/query_type.rb b/app/graphql/types/query_type.rb
index 0e39ff2c030..47a049fe10c 100644
--- a/app/graphql/types/query_type.rb
+++ b/app/graphql/types/query_type.rb
@@ -86,7 +86,8 @@ module Types
field :jobs,
::Types::Ci::JobType.connection_type,
null: true,
- description: 'All jobs on this GitLab instance.',
+ description: 'All jobs on this GitLab instance.' \
+ ' Returns an empty result for users without administrator access.',
resolver: ::Resolvers::Ci::AllJobsResolver
field :merge_request, Types::MergeRequestType,
null: true,
@@ -122,6 +123,11 @@ module Types
resolver: Resolvers::Organizations::OrganizationResolver,
description: "Find an organization.",
alpha: { milestone: '16.4' }
+ field :organizations, Types::Organizations::OrganizationType.connection_type,
+ null: true,
+ resolver: Resolvers::Organizations::OrganizationsResolver,
+ description: "List organizations.",
+ alpha: { milestone: '16.8' }
field :package,
description: 'Find a package. This field can only be resolved for one query in any single request. Returns `null` if a package has no `default` status.',
resolver: Resolvers::PackageDetailsResolver
diff --git a/app/graphql/types/subscription_type.rb b/app/graphql/types/subscription_type.rb
index 7f33f77ec14..5a90a65f50f 100644
--- a/app/graphql/types/subscription_type.rb
+++ b/app/graphql/types/subscription_type.rb
@@ -63,6 +63,10 @@ module Types
field :merge_request_approval_state_updated,
subscription: Subscriptions::IssuableUpdated, null: true,
description: 'Triggered when approval state of a merge request is updated.'
+
+ field :merge_request_diff_generated,
+ subscription: Subscriptions::IssuableUpdated, null: true,
+ description: 'Triggered when a merge request diff is generated.'
end
end
diff --git a/app/graphql/types/work_items/widgets/notes_input_type.rb b/app/graphql/types/work_items/widgets/notes_input_type.rb
new file mode 100644
index 00000000000..fc7f4c84658
--- /dev/null
+++ b/app/graphql/types/work_items/widgets/notes_input_type.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module Types
+ module WorkItems
+ module Widgets
+ class NotesInputType < BaseInputObject
+ graphql_name 'WorkItemWidgetNotesInput'
+
+ argument :discussion_locked, GraphQL::Types::Boolean,
+ required: true,
+ description: 'Discussion lock attribute for notes widget of the work item.'
+ end
+ end
+ end
+end
diff --git a/app/graphql/types/work_items/widgets/notes_type.rb b/app/graphql/types/work_items/widgets/notes_type.rb
index 199001649bb..4f7f1c3b4cc 100644
--- a/app/graphql/types/work_items/widgets/notes_type.rb
+++ b/app/graphql/types/work_items/widgets/notes_type.rb
@@ -12,6 +12,10 @@ module Types
implements Types::WorkItems::WidgetInterface
+ field :discussion_locked, GraphQL::Types::Boolean,
+ null: true,
+ description: 'Discussion lock attribute of the work item.'
+
# This field loads user comments, system notes and resource events as a discussion for an work item,
# raising the complexity considerably. In order to discourage fetching this field as part of fetching
# a list of issues we raise the complexity
diff --git a/app/helpers/appearances_helper.rb b/app/helpers/appearances_helper.rb
index 07a5e711d1c..81aa4757862 100644
--- a/app/helpers/appearances_helper.rb
+++ b/app/helpers/appearances_helper.rb
@@ -44,7 +44,7 @@ module AppearancesHelper
end
def brand_image
- image_tag(brand_image_path, alt: brand_title, class: 'gl-visibility-hidden gl-h-9 js-portrait-logo-detection')
+ image_tag(brand_image_path, alt: brand_title, class: 'gl-visibility-hidden gl-h-10 js-portrait-logo-detection')
end
def brand_image_path
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 49230e558a8..892b046e410 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -295,10 +295,6 @@ module ApplicationHelper
end
end
- def truncate_first_line(message, length = 50)
- truncate(message.each_line.first.chomp, length: length) if message
- end
-
# While similarly named to Rails's `link_to_if`, this method behaves quite differently.
# If `condition` is truthy, a link will be returned with the result of the block
# as its body. If `condition` is falsy, only the result of the block will be returned.
diff --git a/app/helpers/application_settings_helper.rb b/app/helpers/application_settings_helper.rb
index 655fdf8b8ec..1affdd8f433 100644
--- a/app/helpers/application_settings_helper.rb
+++ b/app/helpers/application_settings_helper.rb
@@ -353,6 +353,7 @@ module ApplicationSettingsHelper
:repository_checks_enabled,
:repository_storages_weighted,
:require_admin_approval_after_user_signup,
+ :require_admin_two_factor_authentication,
:require_two_factor_authentication,
:remember_me_enabled,
:restricted_visibility_levels,
@@ -449,6 +450,7 @@ module ApplicationSettingsHelper
:issues_create_limit,
:notes_create_limit,
:notes_create_limit_allowlist_raw,
+ :members_delete_limit,
:raw_blob_request_limit,
:project_import_limit,
:project_export_limit,
@@ -511,7 +513,8 @@ module ApplicationSettingsHelper
:namespace_aggregation_schedule_lease_duration_in_seconds,
:ci_max_total_yaml_size_bytes,
:project_jobs_api_rate_limit,
- :security_txt_content
+ :security_txt_content,
+ :allow_project_creation_for_guest_and_below
].tap do |settings|
next if Gitlab.com?
@@ -564,10 +567,6 @@ module ApplicationSettingsHelper
can?(current_user, :read_cluster, clusterable)
end
- def omnibus_protected_paths_throttle?
- Rack::Attack.throttles.key?('protected paths')
- end
-
def valid_runner_registrars
Gitlab::CurrentSettings.valid_runner_registrars
end
diff --git a/app/helpers/avatars_helper.rb b/app/helpers/avatars_helper.rb
index b21c8687d69..dff1123f10b 100644
--- a/app/helpers/avatars_helper.rb
+++ b/app/helpers/avatars_helper.rb
@@ -113,7 +113,7 @@ module AvatarsHelper
when Namespaces::UserNamespace
user_avatar_without_link(options.merge(user: resource.first_owner))
when Group
- group_icon(resource, options.merge(class: 'avatar'))
+ render Pajamas::AvatarComponent.new(resource, class: 'gl-avatar-circle gl-mr-3', size: 32)
end
end
diff --git a/app/helpers/breadcrumbs_helper.rb b/app/helpers/breadcrumbs_helper.rb
index da8310995cc..a1094027291 100644
--- a/app/helpers/breadcrumbs_helper.rb
+++ b/app/helpers/breadcrumbs_helper.rb
@@ -22,7 +22,7 @@ module BreadcrumbsHelper
end
def breadcrumb_list_item(link)
- content_tag :li, link, class: 'gl-breadcrumb-item'
+ content_tag :li, link, class: 'gl-breadcrumb-item gl-display-inline-flex'
end
def add_to_breadcrumb_collapsed_links(link, location: :before)
diff --git a/app/helpers/button_helper.rb b/app/helpers/button_helper.rb
index e6212ee7d8d..851de133a38 100644
--- a/app/helpers/button_helper.rb
+++ b/app/helpers/button_helper.rb
@@ -8,7 +8,9 @@ module ButtonHelper
# :gfm - GitLab Flavored Markdown to copy, if different from `text` (optional)
# :target - Selector for target element to copy from (optional)
# :class - CSS classes to be applied to the button (optional)
- # :title - Button's title attribute (used for the tooltip) (optional)
+ # :title - Button's title attribute (used for the tooltip) (optional, default: Copy)
+ # :aria_label - Button's aria-label attribute (optional)
+ # :aria_keyshortcuts - Button's aria-keyshortcuts attribute (optional)
# :button_text - Button's displayed label (optional)
# :hide_tooltip - Whether the tooltip should be hidden (optional, default: false)
# :hide_button_icon - Whether the icon should be hidden (optional, default: false)
@@ -31,6 +33,8 @@ module ButtonHelper
def clipboard_button(data = {})
css_class = data.delete(:class)
title = data.delete(:title) || _('Copy')
+ aria_keyshortcuts = data.delete(:aria_keyshortcuts) || nil
+ aria_label = data.delete(:aria_label) || title
button_text = data[:button_text] || nil
hide_tooltip = data[:hide_tooltip] || false
hide_button_icon = data[:hide_button_icon] || false
@@ -54,7 +58,7 @@ module ButtonHelper
data[:clipboard_target] = target if target
unless hide_tooltip
- data = { toggle: 'tooltip', placement: 'bottom', container: 'body' }.merge(data)
+ data = { toggle: 'tooltip', placement: 'bottom', container: 'body', html: 'true' }.merge(data)
end
render ::Pajamas::ButtonComponent.new(
@@ -62,7 +66,7 @@ module ButtonHelper
variant: variant,
category: category,
size: size,
- button_options: { class: css_class, title: title, aria: { label: title, live: 'polite' }, data: data, itemprop: item_prop }) do
+ button_options: { class: css_class, title: title, aria: { keyshortcuts: aria_keyshortcuts, label: aria_label, live: 'polite' }, data: data, itemprop: item_prop }) do
button_text
end
end
diff --git a/app/helpers/ci/builds_helper.rb b/app/helpers/ci/builds_helper.rb
index 001b316fcf2..6fa3840fac0 100644
--- a/app/helpers/ci/builds_helper.rb
+++ b/app/helpers/ci/builds_helper.rb
@@ -2,13 +2,6 @@
module Ci
module BuildsHelper
- def sidebar_build_class(build, current_build)
- build_class = []
- build_class << 'active' if build.id === current_build.id
- build_class << 'retried' if build.retried?
- build_class.join(' ')
- end
-
def build_failed_issue_options
{
title: _("Job Failed #%{build_id}") % { build_id: @build.id },
diff --git a/app/helpers/ci/status_helper.rb b/app/helpers/ci/status_helper.rb
index 21d982d42bc..5ff8ce74866 100644
--- a/app/helpers/ci/status_helper.rb
+++ b/app/helpers/ci/status_helper.rb
@@ -9,11 +9,6 @@
#
module Ci
module StatusHelper
- def ci_status_for_statuseable(subject)
- status = subject.try(:status) || 'not found'
- status.humanize
- end
-
# rubocop:disable Metrics/CyclomaticComplexity
def ci_icon_for_status(status, size: 24)
icon_name =
@@ -56,10 +51,6 @@ module Ci
end
# rubocop:enable Metrics/CyclomaticComplexity
- def pipeline_status_cache_key(pipeline_status)
- "pipeline-status/#{pipeline_status.sha}-#{pipeline_status.status}"
- end
-
def render_commit_status(commit, status, ref: nil, tooltip_placement: 'left')
project = commit.project
path = pipelines_project_commit_path(project, commit, ref: ref)
diff --git a/app/helpers/ci/variables_helper.rb b/app/helpers/ci/variables_helper.rb
index 0dbd1adeb71..86e2667c7bb 100644
--- a/app/helpers/ci/variables_helper.rb
+++ b/app/helpers/ci/variables_helper.rb
@@ -32,21 +32,6 @@ module Ci
end
end
- def ci_variable_masked?(variable, only_key_value)
- if variable && !only_key_value
- variable.masked
- else
- false
- end
- end
-
- def ci_variable_type_options
- [
- %w[Variable env_var],
- %w[File file]
- ]
- end
-
def ci_variable_maskable_raw_regex
Ci::Maskable::MASK_AND_RAW_REGEX.inspect.sub('\\A', '^').sub('\\z', '$')[1...-1]
end
diff --git a/app/helpers/count_helper.rb b/app/helpers/count_helper.rb
index 62bb2e4da23..aed730850fd 100644
--- a/app/helpers/count_helper.rb
+++ b/app/helpers/count_helper.rb
@@ -11,7 +11,7 @@ module CountHelper
# This will approximate the fork count by checking all counting all fork network
# memberships, and deducting 1 for each root of the fork network.
- # This might be inacurate as the root of the fork network might have been deleted.
+ # This might be inaccurate as the root of the fork network might have been deleted.
#
# This makes querying this information a lot more efficient and it should be
# accurate enough for the instance wide statistics
diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb
index 9031d0556da..6069e4e64a1 100644
--- a/app/helpers/diff_helper.rb
+++ b/app/helpers/diff_helper.rb
@@ -30,7 +30,7 @@ module DiffHelper
def diff_options
options = { ignore_whitespace_change: hide_whitespace?, expanded: diffs_expanded?, use_extra_viewer_as_main: true }
- if action_name == 'diff_for_path'
+ if action_name == 'diff_for_path' || action_name == 'diff_by_file_hash'
options[:expanded] = true
options[:paths] = params.values_at(:old_path, :new_path)
options[:use_extra_viewer_as_main] = false
diff --git a/app/helpers/environment_helper.rb b/app/helpers/environment_helper.rb
index fa47a12a72c..adb2b03cd0a 100644
--- a/app/helpers/environment_helper.rb
+++ b/app/helpers/environment_helper.rb
@@ -1,14 +1,6 @@
# frozen_string_literal: true
module EnvironmentHelper
- # rubocop: disable CodeReuse/ActiveRecord
- def environment_for_build(project, build)
- return unless build.environment
-
- project.environments.find_by(name: build.expanded_environment_name)
- end
- # rubocop: enable CodeReuse/ActiveRecord
-
def deployment_path(deployment)
[deployment.project, deployment.deployable]
end
diff --git a/app/helpers/environments_helper.rb b/app/helpers/environments_helper.rb
index 6b1e3075968..ac34f429508 100644
--- a/app/helpers/environments_helper.rb
+++ b/app/helpers/environments_helper.rb
@@ -9,13 +9,14 @@ module EnvironmentsHelper
}
end
- def environments_folder_list_view_data
+ def environments_folder_list_view_data(project, folder)
{
- "endpoint" => folder_project_environments_path(@project, @folder, format: :json),
- "folder_name" => @folder,
- "project_path" => project_path(@project),
+ "endpoint" => folder_project_environments_path(project, folder, format: :json),
+ "folder_name" => folder,
+ "project_path" => project.full_path,
"help_page_path" => help_page_path("ci/environments/index"),
- "can_read_environment" => can?(current_user, :read_environment, @project).to_s
+ "can_read_environment" => can?(current_user, :read_environment, @project).to_s,
+ "kas_tunnel_url" => ::Gitlab::Kas.tunnel_url
}
end
diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb
index d5f38debae4..bbcf408650d 100644
--- a/app/helpers/form_helper.rb
+++ b/app/helpers/form_helper.rb
@@ -24,7 +24,7 @@ module FormHelper
# user"), use the message as-is
message = error.message if custom_message.include?(attribute)
- message = html_escape_once(message).html_safe
+ message = ERB::Util.html_escape_once(message).html_safe
message = tag.span(message, class: 'str-truncated-100') if truncate.include?(attribute)
message = append_help_page_link(message, error.options) if error.options[:help_page_url].present?
diff --git a/app/helpers/groups/group_members_helper.rb b/app/helpers/groups/group_members_helper.rb
index 60011e31d43..07672343384 100644
--- a/app/helpers/groups/group_members_helper.rb
+++ b/app/helpers/groups/group_members_helper.rb
@@ -20,7 +20,7 @@ module Groups::GroupMembersHelper
end
def group_member_header_subtext(group)
- html_escape(_("You're viewing members of %{strong_start}%{group_name}%{strong_end}.").html_safe) % {
+ ERB::Util.html_escape(_("You're viewing members of %{strong_start}%{group_name}%{strong_end}.").html_safe) % {
group_name: group.name,
strong_start: '<strong>'.html_safe,
strong_end: '</strong>'.html_safe
diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb
index 25a2cc8a5ae..96ae7be5fdc 100644
--- a/app/helpers/groups_helper.rb
+++ b/app/helpers/groups_helper.rb
@@ -37,7 +37,7 @@ module GroupsHelper
group.try(:avatar_url) || ActionController::Base.helpers.image_path('no_group_avatar.png')
end
- def group_title(group, name = nil, url = nil)
+ def group_title(group)
@has_group_title = true
full_title = []
@@ -56,11 +56,6 @@ module GroupsHelper
full_title << breadcrumb_list_item(group_title_link(group))
push_to_schema_breadcrumb(simple_sanitize(group.name), group_path(group))
- if name
- full_title << ' &middot; '.html_safe + link_to(simple_sanitize(name), url, class: 'group-path breadcrumb-item-text js-breadcrumb-item-text')
- push_to_schema_breadcrumb(simple_sanitize(name), url)
- end
-
full_title.join.html_safe
end
@@ -160,6 +155,7 @@ module GroupsHelper
new_project_illustration: image_path('illustrations/project-create-new-sm.svg'),
empty_projects_illustration: image_path('illustrations/empty-state/empty-projects-md.svg'),
empty_subgroup_illustration: image_path('illustrations/empty-state/empty-subgroup-md.svg'),
+ empty_search_illustration: image_path('illustrations/empty-state/empty-search-md.svg'),
render_empty_state: 'true',
can_create_subgroups: can?(current_user, :create_subgroup, group).to_s,
can_create_projects: can?(current_user, :create_projects, group).to_s
@@ -241,8 +237,8 @@ module GroupsHelper
private
- def group_title_link(group, hidable: false, show_avatar: false, for_dropdown: false)
- link_to(group_path(group), class: "group-path #{'breadcrumb-item-text' unless for_dropdown} js-breadcrumb-item-text #{'hidable' if hidable}") do
+ def group_title_link(group, hidable: false, show_avatar: false)
+ link_to(group_path(group), class: "group-path js-breadcrumb-item-text #{'hidable' if hidable}") do
icon = render Pajamas::AvatarComponent.new(group, alt: group.name, class: "avatar-tile", size: 16) if group.try(:avatar_url) || show_avatar
[icon, simple_sanitize(group.name)].join.html_safe
end
diff --git a/app/helpers/ide_helper.rb b/app/helpers/ide_helper.rb
index 2ec11b8a9ed..312807c004a 100644
--- a/app/helpers/ide_helper.rb
+++ b/app/helpers/ide_helper.rb
@@ -88,7 +88,6 @@ module IdeHelper
'render-whitespace-in-code': current_user.render_whitespace_in_code.to_s,
'default-branch' => project && project.default_branch,
'project' => convert_to_project_entity_json(project),
- 'enable-environments-guidance' => enable_environments_guidance?(project).to_s,
'preview-markdown-path' => project && preview_markdown_path(project),
'web-terminal-svg-path' => image_path('illustrations/web-ide_promotion.svg'),
'web-terminal-help-path' => help_page_path('user/project/web_ide/index', anchor: 'interactive-web-terminals-for-the-web-ide'),
@@ -103,14 +102,6 @@ module IdeHelper
API::Entities::Project.represent(project, current_user: current_user).to_json
end
- def enable_environments_guidance?(project)
- experiment(:in_product_guidance_environments_webide, project: project) do |e|
- e.candidate { !has_dismissed_ide_environments_callout? }
-
- e.run
- end
- end
-
def has_dismissed_ide_environments_callout?
current_user.dismissed_callout?(feature_name: 'web_ide_ci_environments_guidance')
end
diff --git a/app/helpers/import_helper.rb b/app/helpers/import_helper.rb
index 81b881592d0..1eac140c216 100644
--- a/app/helpers/import_helper.rb
+++ b/app/helpers/import_helper.rb
@@ -56,7 +56,7 @@ module ImportHelper
link_url = 'https://github.com/settings/tokens'
link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: link_url }
- html_escape(_('Create and provide your GitHub %{link_start}Personal Access Token%{link_end}. You will need to select the %{code_open}repo%{code_close} scope, so we can display a list of your public and private repositories which are available to import.')) % { link_start: link_start, link_end: '</a>'.html_safe, code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
+ ERB::Util.html_escape(_('Create and provide your GitHub %{link_start}Personal Access Token%{link_end}. You will need to select the %{code_open}repo%{code_close} scope, so we can display a list of your public and private repositories which are available to import.')) % { link_start: link_start, link_end: '</a>'.html_safe, code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
end
def import_configure_github_admin_message
diff --git a/app/helpers/listbox_helper.rb b/app/helpers/listbox_helper.rb
index 6a7e09f75e4..ba292f560c4 100644
--- a/app/helpers/listbox_helper.rb
+++ b/app/helpers/listbox_helper.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
module ListboxHelper
- DROPDOWN_CONTAINER_CLASSES = %w[dropdown b-dropdown gl-dropdown btn-group js-redirect-listbox].freeze
+ DROPDOWN_CONTAINER_CLASSES = %w[dropdown b-dropdown gl-dropdown js-redirect-listbox].freeze
DROPDOWN_BUTTON_CLASSES = %w[btn dropdown-toggle btn-default btn-md gl-button gl-dropdown-toggle].freeze
DROPDOWN_INNER_CLASS = 'gl-dropdown-button-text'
DROPDOWN_ICON_CLASS = 'gl-button-icon dropdown-chevron gl-icon'
diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb
index 2f042ea6417..75a41054ace 100644
--- a/app/helpers/merge_requests_helper.rb
+++ b/app/helpers/merge_requests_helper.rb
@@ -204,7 +204,8 @@ module MergeRequestsHelper
is_forked: project.forked?.to_s,
new_comment_template_path: profile_comment_templates_path,
iid: merge_request.iid,
- per_page: DIFF_BATCH_ENDPOINT_PER_PAGE
+ per_page: DIFF_BATCH_ENDPOINT_PER_PAGE,
+ pinned_file_url: @pinned_file_url
}
end
@@ -253,13 +254,13 @@ module MergeRequestsHelper
end
branch = if merge_request.for_fork?
- html_escape(_('%{fork_icon} %{source_project_path}:%{source_branch}')) % { fork_icon: fork_icon.html_safe, source_project_path: merge_request.source_project_path, source_branch: merge_request.source_branch }
+ ERB::Util.html_escape(_('%{fork_icon} %{source_project_path}:%{source_branch}')) % { fork_icon: fork_icon.html_safe, source_project_path: merge_request.source_project_path, source_branch: merge_request.source_branch }
else
merge_request.source_branch
end
branch_title = if merge_request.for_fork?
- html_escape(_('%{source_project_path}:%{source_branch}')) % { source_project_path: merge_request.source_project_path, source_branch: merge_request.source_branch }
+ ERB::Util.html_escape(_('%{source_project_path}:%{source_branch}')) % { source_project_path: merge_request.source_project_path, source_branch: merge_request.source_branch }
else
merge_request.source_branch
end
@@ -275,7 +276,10 @@ module MergeRequestsHelper
def merge_request_header(project, merge_request)
link_to_author = link_to_member(project, merge_request.author, size: 24, extra_class: 'gl-font-weight-bold gl-mr-2', avatar: false)
- copy_button = clipboard_button(text: merge_request.source_branch, title: _('Copy branch name'), class: 'gl-display-none! gl-md-display-inline-block! js-source-branch-copy')
+ copy_action_description = _('Copy branch name')
+ copy_action_shortcut = 'b'
+ copy_button_title = "#{copy_action_description} <kbd class='flat ml-1'>#{copy_action_shortcut}</kbd>"
+ copy_button = clipboard_button(text: merge_request.source_branch, title: copy_button_title, aria_keyshortcuts: copy_action_shortcut, aria_label: copy_action_description, class: 'gl-display-none! gl-md-display-inline-block! js-source-branch-copy')
target_branch = link_to merge_request.target_branch, project_tree_path(merge_request.target_project, merge_request.target_branch), title: merge_request.target_branch, class: 'ref-container gl-display-inline-block gl-text-truncate gl-max-w-26 gl-mx-2'
@@ -289,6 +293,7 @@ module MergeRequestsHelper
sourceProjectPath: @merge_request.source_project_path,
title: markdown_field(@merge_request, :title),
isFluidLayout: fluid_layout.to_s,
+ blocksMerge: @project.only_allow_merge_if_all_discussions_are_resolved?.to_s,
tabs: [
['show', _('Overview'), project_merge_request_path(@project, @merge_request), @merge_request.related_notes.user.count],
['commits', _('Commits'), commits_project_merge_request_path(@project, @merge_request), @commits_count],
diff --git a/app/helpers/mirror_helper.rb b/app/helpers/mirror_helper.rb
index 158aa5e0944..1df79fb2083 100644
--- a/app/helpers/mirror_helper.rb
+++ b/app/helpers/mirror_helper.rb
@@ -12,7 +12,7 @@ module MirrorHelper
docs_link_url = help_page_path('topics/git/lfs/index')
docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: docs_link_url }
- html_escape(_('Git LFS objects will be synced if LFS is %{docs_link_start}enabled for the project%{docs_link_end}. Push mirrors will %{strong_open}not%{strong_close} sync LFS objects over SSH.')) %
+ ERB::Util.html_escape(_('Git LFS objects will be synced if LFS is %{docs_link_start}enabled for the project%{docs_link_end}. Push mirrors will %{strong_open}not%{strong_close} sync LFS objects over SSH.')) %
{ docs_link_start: docs_link_start, docs_link_end: '</a>'.html_safe, strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
end
diff --git a/app/helpers/nav_helper.rb b/app/helpers/nav_helper.rb
index cb9a270253f..424a3f5f8c5 100644
--- a/app/helpers/nav_helper.rb
+++ b/app/helpers/nav_helper.rb
@@ -53,13 +53,6 @@ module NavHelper
%w[system_info background_migrations background_jobs health_check]
end
- def show_super_sidebar?(_user = current_user)
- # The new navigation is now enabled for everyone.
- # We are working on cleaning up the use of this helper and other related code.
- # See https://gitlab.com/groups/gitlab-org/-/epics/11875
- true
- end
-
private
def get_header_links
diff --git a/app/helpers/organizations/organization_helper.rb b/app/helpers/organizations/organization_helper.rb
index d0dd9dc5aea..445dd3a1f6f 100644
--- a/app/helpers/organizations/organization_helper.rb
+++ b/app/helpers/organizations/organization_helper.rb
@@ -4,7 +4,8 @@ module Organizations
module OrganizationHelper
def organization_show_app_data(organization)
{
- organization: organization.slice(:id, :name),
+ organization: organization.slice(:id, :name, :description_html)
+ .merge({ avatar_url: organization.avatar_url(size: 128) }),
groups_and_projects_organization_path: groups_and_projects_organization_path(organization),
# TODO: Update counts to use real data
# https://gitlab.com/gitlab-org/gitlab/-/issues/424531
@@ -17,18 +18,14 @@ module Organizations
end
def organization_new_app_data
- {
- organizations_path: organizations_path,
- root_url: root_url
- }.to_json
+ shared_new_settings_general_app_data.to_json
end
def organization_settings_general_app_data(organization)
{
- organization: organization.slice(:id, :name, :path),
- organizations_path: organizations_path,
- root_url: root_url
- }.to_json
+ organization: organization.slice(:id, :name, :path, :description)
+ .merge({ avatar: organization.avatar_url(size: 192) })
+ }.merge(shared_new_settings_general_app_data).to_json
end
def organization_groups_and_projects_app_data
@@ -66,6 +63,14 @@ module Organizations
}
end
+ def shared_new_settings_general_app_data
+ {
+ preview_markdown_path: preview_markdown_organizations_path,
+ organizations_path: organizations_path,
+ root_url: root_url
+ }
+ end
+
# See UsersHelper#admin_users_paths for inspiration to this method
def organizations_users_paths
{
diff --git a/app/helpers/preferences_helper.rb b/app/helpers/preferences_helper.rb
index 204e3b149b9..da8ef2277f1 100644
--- a/app/helpers/preferences_helper.rb
+++ b/app/helpers/preferences_helper.rb
@@ -75,10 +75,6 @@ module PreferencesHelper
user_application_theme == 'gl-dark'
end
- def user_application_theme_css_filename
- @user_application_theme_css_filename ||= Gitlab::Themes.for_user(current_user).css_filename
- end
-
def user_theme_primary_color
Gitlab::Themes.for_user(current_user).primary_color
end
diff --git a/app/helpers/projects/project_members_helper.rb b/app/helpers/projects/project_members_helper.rb
index 634f6e8ba59..20af643d159 100644
--- a/app/helpers/projects/project_members_helper.rb
+++ b/app/helpers/projects/project_members_helper.rb
@@ -19,7 +19,7 @@ module Projects::ProjectMembersHelper
if can?(current_user, :admin_project_member, project)
share_project_description(project)
else
- html_escape(_("Members can be added by project " \
+ ERB::Util.html_escape(_("Members can be added by project " \
"%{i_open}Maintainers%{i_close} or %{i_open}Owners%{i_close}")) % {
i_open: '<i>'.html_safe, i_close: '</i>'.html_safe
}
@@ -41,7 +41,7 @@ module Projects::ProjectMembersHelper
_("You can invite a new member to %{project_name}.")
end
- html_escape(description) % { project_name: tag.strong(project.name) }
+ ERB::Util.html_escape(description) % { project_name: tag.strong(project.name) }
end
def project_members_serialized(project, members)
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index c2014508f4f..7ef6e0f5d02 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -191,7 +191,7 @@ module ProjectsHelper
end
def autodeploy_flash_notice(branch_name)
- html_escape(_("Branch %{branch_name} was created. To set up auto deploy, choose a GitLab CI Yaml template and commit your changes. %{link_to_autodeploy_doc}")) %
+ ERB::Util.html_escape(_("Branch %{branch_name} was created. To set up auto deploy, choose a GitLab CI Yaml template and commit your changes. %{link_to_autodeploy_doc}")) %
{ branch_name: tag.strong(truncate(sanitize(branch_name))), link_to_autodeploy_doc: link_to_autodeploy_doc }
end
@@ -252,7 +252,7 @@ module ProjectsHelper
_('Your account is authenticated with SSO or SAML. To %{push_pull_link_start}push and pull%{link_end} over %{protocol} with Git using this account, you must %{set_up_pat_link_start}set up a Personal Access Token%{link_end} to use instead of a password. For more information, see %{clone_with_https_link_start}Clone with HTTPS%{link_end}.')
end
- html_escape(message) % {
+ ERB::Util.html_escape(message) % {
push_pull_link_start: push_pull_link_start,
protocol: gitlab_config.protocol.upcase,
clone_with_https_link_start: clone_with_https_link_start,
@@ -768,7 +768,7 @@ module ProjectsHelper
message = _("You're about to reduce the visibility of the project %{strong_start}%{project_name}%{strong_end} in %{strong_start}%{group_name}%{strong_end}.")
end
- html_escape(message) % { strong_start: strong_start, strong_end: strong_end, project_name: project.name, group_name: project.group ? project.group.name : nil }
+ ERB::Util.html_escape(message) % { strong_start: strong_start, strong_end: strong_end, project_name: project.name, group_name: project.group ? project.group.name : nil }
end
def visibility_confirm_modal_data(project, target_form_id = nil)
@@ -789,15 +789,15 @@ module ProjectsHelper
push_to_schema_breadcrumb(project_name, project_path(project))
- link_to project_path(project) do
+ link_to project_path(project), class: 'gl-display-inline-flex!' do
icon = render Pajamas::AvatarComponent.new(project, alt: project.name, size: 16, class: 'avatar-tile') if project.avatar_url && !Rails.env.test?
- [icon, content_tag("span", project_name, class: "breadcrumb-item-text js-breadcrumb-item-text")].join.html_safe
+ [icon, content_tag("span", project_name, class: "js-breadcrumb-item-text")].join.html_safe
end
end
def build_namespace_breadcrumb_link(project)
if project.group
- group_title(project.group, nil, nil)
+ group_title(project.group)
else
owner = project.namespace.owner
name = simple_sanitize(owner.name)
diff --git a/app/helpers/registrations_helper.rb b/app/helpers/registrations_helper.rb
index 363c38ffe59..12f7bd41968 100644
--- a/app/helpers/registrations_helper.rb
+++ b/app/helpers/registrations_helper.rb
@@ -11,10 +11,6 @@ module RegistrationsHelper
}
end
- def signup_box_template
- 'devise/shared/signup_box'
- end
-
# overridden in EE
def oauth_tracking_label; end
diff --git a/app/helpers/reminder_emails_helper.rb b/app/helpers/reminder_emails_helper.rb
index e46d9273100..f53ebd51380 100644
--- a/app/helpers/reminder_emails_helper.rb
+++ b/app/helpers/reminder_emails_helper.rb
@@ -41,7 +41,7 @@ module ReminderEmailsHelper
body = invitation_reminder_body_text(reminder_index)
- (format == :html ? html_escape(body) : body) % options
+ (format == :html ? ERB::Util.html_escape(body) : body) % options
end
def invitation_reminder_accept_link(token, format: nil)
diff --git a/app/helpers/safe_format_helper.rb b/app/helpers/safe_format_helper.rb
index 9f8c5082c26..281bd783c93 100644
--- a/app/helpers/safe_format_helper.rb
+++ b/app/helpers/safe_format_helper.rb
@@ -3,8 +3,8 @@
module SafeFormatHelper
# Returns a HTML-safe String.
#
- # @param [String] format is escaped via `html_escape_once`
- # @param [Array<Hash>] args are escaped via `html_escape` if they are not marked as HTML-safe
+ # @param [String] format is escaped via `ERB::Util.html_escape_once`
+ # @param [Array<Hash>] args are escaped via `ERB::Util.html_escape` if they are not marked as HTML-safe
#
# @example
# safe_format('See %{user_input}', user_input: '<b>bold</b>')
diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb
index f002a0c454d..2ee20887129 100644
--- a/app/helpers/search_helper.rb
+++ b/app/helpers/search_helper.rb
@@ -136,15 +136,15 @@ module SearchHelper
# - group
# - group: nil, project: nil
if project
- html_escape(_("We couldn't find any %{scope} matching %{term} in project %{project}")) % options.merge(
+ ERB::Util.html_escape(_("We couldn't find any %{scope} matching %{term} in project %{project}")) % options.merge(
project: link_to(project.full_name, project_path(project), target: '_blank', rel: 'noopener noreferrer').html_safe
)
elsif group
- html_escape(_("We couldn't find any %{scope} matching %{term} in group %{group}")) % options.merge(
+ ERB::Util.html_escape(_("We couldn't find any %{scope} matching %{term} in group %{group}")) % options.merge(
group: link_to(group.full_name, group_path(group), target: '_blank', rel: 'noopener noreferrer').html_safe
)
else
- html_escape(_("We couldn't find any %{scope} matching %{term}")) % options
+ ERB::Util.html_escape(_("We couldn't find any %{scope} matching %{term}")) % options
end
end
diff --git a/app/helpers/sessions_helper.rb b/app/helpers/sessions_helper.rb
index cf5cc92587f..7dccaa6cd73 100644
--- a/app/helpers/sessions_helper.rb
+++ b/app/helpers/sessions_helper.rb
@@ -3,43 +3,10 @@
module SessionsHelper
include Gitlab::Utils::StrongMemoize
- def recently_confirmed_com?
- strong_memoize(:recently_confirmed_com) do
- ::Gitlab.com? &&
- !!flash[:notice]&.include?(t(:confirmed, scope: [:devise, :confirmations]))
- end
- end
-
def unconfirmed_email?
flash[:alert] == t(:unconfirmed, scope: [:devise, :failure])
end
- # By default, all sessions are given the same expiration time configured in
- # the session store (e.g. 1 week). However, unauthenticated users can
- # generate a lot of sessions, primarily for CSRF verification. It makes
- # sense to reduce the TTL for unauthenticated to something much lower than
- # the default (e.g. 1 hour) to limit Redis memory. In addition, Rails
- # creates a new session after login, so the short TTL doesn't even need to
- # be extended.
- def limit_session_time
- set_session_time(Settings.gitlab['unauthenticated_session_expire_delay'])
- end
-
- def ensure_authenticated_session_time
- set_session_time(nil)
- end
-
- def set_session_time(expiry_s)
- # Rack sets this header, but not all tests may have it: https://github.com/rack/rack/blob/fdcd03a3c5a1c51d1f96fc97f9dfa1a9deac0c77/lib/rack/session/abstract/id.rb#L251-L259
- return unless request.env['rack.session.options']
-
- # This works because Rack uses these options every time a request is handled, and redis-store
- # uses the Rack setting first:
- # 1. https://github.com/rack/rack/blob/fdcd03a3c5a1c51d1f96fc97f9dfa1a9deac0c77/lib/rack/session/abstract/id.rb#L342
- # 2. https://github.com/redis-store/redis-store/blob/3acfa95f4eb6260c714fdb00a3d84be8eedc13b2/lib/redis/store/ttl.rb#L32
- request.env['rack.session.options'][:expire_after] = expiry_s
- end
-
def obfuscated_email(email)
# Moved to Gitlab::Utils::Email in 15.9
Gitlab::Utils::Email.obfuscated_email(email)
diff --git a/app/helpers/sidebars_helper.rb b/app/helpers/sidebars_helper.rb
index 9933fa8e4d9..92a4f32dfda 100644
--- a/app/helpers/sidebars_helper.rb
+++ b/app/helpers/sidebars_helper.rb
@@ -68,6 +68,16 @@ module SidebarsHelper
name: user.name,
username: user.username,
admin_url: admin_root_url,
+ admin_mode: {
+ admin_mode_feature_enabled: Gitlab::CurrentSettings.admin_mode,
+ admin_mode_active: current_user_mode.admin_mode?,
+ enter_admin_mode_url: new_admin_session_path,
+ leave_admin_mode_url: destroy_admin_session_path,
+ # Usually, using current_user.admin? is discouraged because it does not
+ # check for admin mode, but since here we want to check admin? and admin mode
+ # separately, we'll have to ignore the cop rule.
+ user_is_admin: user.admin? # rubocop: disable Cop/UserAdmin
+ },
avatar_url: user.avatar_url,
has_link_to_profile: current_user_menu?(:profile),
link_to_profile: user_path(user),
@@ -353,38 +363,12 @@ module SidebarsHelper
({ title: s_('Navigation|Preferences'), link: profile_preferences_path, icon: 'preferences' } if current_user)
]
- # Usually, using current_user.admin? is discouraged because it does not
- # check for admin mode, but since here we want to check admin? and admin mode
- # separately, we'll have to ignore the cop rule.
- # rubocop: disable Cop/UserAdmin
if current_user&.can_admin_all_resources?
links.append(
{ title: s_('Navigation|Admin Area'), link: admin_root_path, icon: 'admin' }
)
end
- if Gitlab::CurrentSettings.admin_mode
- if header_link?(:admin_mode)
- links.append(
- {
- title: s_('Navigation|Leave admin mode'),
- link: destroy_admin_session_path,
- icon: 'lock-open',
- data_method: 'post'
- }
- )
- elsif current_user&.admin?
- links.append(
- {
- title: s_('Navigation|Enter admin mode'),
- link: new_admin_session_path,
- icon: 'lock'
- }
- )
- end
- end
- # rubocop: enable Cop/UserAdmin
-
links.compact
end
diff --git a/app/helpers/time_zone_helper.rb b/app/helpers/time_zone_helper.rb
index 29bd5a84651..3ea043557b8 100644
--- a/app/helpers/time_zone_helper.rb
+++ b/app/helpers/time_zone_helper.rb
@@ -33,6 +33,19 @@ module TimeZoneHelper
end
end
+ # The identifiers in `timezone_data` are not unique. Some cities (e.g. London and Edinburgh) have
+ # the same `identifier` value (e.g. "Europe/London").
+ # This method merges such entries into one, joining the city names.
+ # This unique list is better suited for selectboxes etc.
+ def timezone_data_with_unique_identifiers(format: :short)
+ timezone_data(format: format)
+ .group_by { |entry| entry[:identifier] }
+ .map do |_identifier, entries|
+ names = entries.map { |entry| entry[:name] }.sort.join(', ') # rubocop:disable Rails/Pluck -- Not a ActiveRecord object
+ entries.first.merge({ name: names })
+ end
+ end
+
def local_timezone_instance(timezone)
return Time.zone if timezone.blank?
diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb
index 84a809bc510..c0658859cc1 100644
--- a/app/helpers/users_helper.rb
+++ b/app/helpers/users_helper.rb
@@ -326,7 +326,7 @@ module UsersHelper
job_title = '<span itemprop="jobTitle">'.html_safe + job_title + "</span>".html_safe
organization = '<span itemprop="worksFor">'.html_safe + organization + "</span>".html_safe
- html_escape(s_('Profile|%{job_title} at %{organization}')) % { job_title: job_title, organization: organization }
+ ERB::Util.html_escape(s_('Profile|%{job_title} at %{organization}')) % { job_title: job_title, organization: organization }
else
s_('Profile|%{job_title} at %{organization}') % { job_title: job_title, organization: organization }
end
diff --git a/app/helpers/vite_helper.rb b/app/helpers/vite_helper.rb
index adb9ffa39e0..1d2ff400995 100644
--- a/app/helpers/vite_helper.rb
+++ b/app/helpers/vite_helper.rb
@@ -4,11 +4,7 @@ module ViteHelper
def vite_enabled?
# vite is not production ready yet
return false if Rails.env.production?
- # Enable vite if explicitly turned on in the GDK
- return Gitlab::Utils.to_boolean(ViteRuby.env['VITE_ENABLED'], default: false) if ViteRuby.env.key?('VITE_ENABLED')
- # Enable vite the legacy way (in case GDK hasn't been updated)
- # This is going to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/431041
- Rails.env.development? ? Feature.enabled?(:vite) : false
+ Gitlab::Utils.to_boolean(ViteRuby.env['VITE_ENABLED'], default: false)
end
end
diff --git a/app/helpers/wiki_page_version_helper.rb b/app/helpers/wiki_page_version_helper.rb
index ae20717ad99..1771681c9b1 100644
--- a/app/helpers/wiki_page_version_helper.rb
+++ b/app/helpers/wiki_page_version_helper.rb
@@ -15,6 +15,6 @@ module WikiPageVersionHelper
name = "<strong>".html_safe + wiki_page_version.author_name + "</strong>".html_safe
link_start = "<a href='".html_safe + wiki_page_version_author_url(wiki_page_version) + "'>".html_safe
- html_escape(_("Last edited by %{link_start}%{avatar} %{name}%{link_end}")) % { avatar: avatar, name: name, link_start: link_start, link_end: '</a>'.html_safe }
+ ERB::Util.html_escape(_("Last edited by %{link_start}%{avatar} %{name}%{link_end}")) % { avatar: avatar, name: name, link_start: link_start, link_end: '</a>'.html_safe }
end
end
diff --git a/app/mailers/emails/issues.rb b/app/mailers/emails/issues.rb
index f859294960c..bec37610594 100644
--- a/app/mailers/emails/issues.rb
+++ b/app/mailers/emails/issues.rb
@@ -37,8 +37,10 @@ module Emails
def reassigned_issue_email(recipient_id, issue_id, previous_assignee_ids, updated_by_user_id, reason = nil)
setup_issue_mail(issue_id, recipient_id)
- @previous_assignees = []
- @previous_assignees = User.where(id: previous_assignee_ids) if previous_assignee_ids.any?
+ previous_assignees = []
+ previous_assignees = User.where(id: previous_assignee_ids) if previous_assignee_ids.any?
+ @added_assignees = @issue.assignees.map(&:name) - previous_assignees.map(&:name)
+ @removed_assignees = previous_assignees.map(&:name) - @issue.assignees.map(&:name)
mail_answer_thread(
@issue,
diff --git a/app/mailers/emails/merge_requests.rb b/app/mailers/emails/merge_requests.rb
index c702b107b7e..07d033ec53c 100644
--- a/app/mailers/emails/merge_requests.rb
+++ b/app/mailers/emails/merge_requests.rb
@@ -42,8 +42,10 @@ module Emails
def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_ids, updated_by_user_id, reason = nil)
setup_merge_request_mail(merge_request_id, recipient_id)
- @previous_assignees = []
- @previous_assignees = User.where(id: previous_assignee_ids) if previous_assignee_ids.any?
+ previous_assignees = []
+ previous_assignees = User.where(id: previous_assignee_ids) if previous_assignee_ids.any?
+ @added_assignees = @merge_request.assignees.map(&:name) - previous_assignees.map(&:name)
+ @removed_assignees = previous_assignees.map(&:name) - @merge_request.assignees.map(&:name)
mail_answer_thread(@merge_request, merge_request_thread_options(updated_by_user_id, reason))
end
diff --git a/app/models/abuse_report.rb b/app/models/abuse_report.rb
index 19dc0e40564..e19a75a68e8 100644
--- a/app/models/abuse_report.rb
+++ b/app/models/abuse_report.rb
@@ -205,11 +205,12 @@ class AbuseReport < ApplicationRecord
return if links_to_spam.blank?
links_to_spam.each do |link|
- Gitlab::UrlBlocker.validate!(
+ Gitlab::HTTP_V2::UrlBlocker.validate!(
link,
schemes: %w[http https],
allow_localhost: true,
- dns_rebind_protection: true
+ dns_rebind_protection: true,
+ deny_all_requests_except_allowed: Gitlab::CurrentSettings.deny_all_requests_except_allowed?
)
next unless link.length > MAX_CHAR_LIMIT_URL
diff --git a/app/models/ai/service_access_token.rb b/app/models/ai/service_access_token.rb
index 46dfbe9078c..d2d64079c74 100644
--- a/app/models/ai/service_access_token.rb
+++ b/app/models/ai/service_access_token.rb
@@ -2,11 +2,8 @@
module Ai
class ServiceAccessToken < ApplicationRecord
- include IgnorableColumns
self.table_name = 'service_access_tokens'
- ignore_column :category, remove_with: '16.8', remove_after: '2024-01-22'
-
scope :expired, -> { where('expires_at < :now', now: Time.current) }
scope :active, -> { where('expires_at > :now', now: Time.current) }
diff --git a/app/models/analytics/cycle_analytics/aggregation.rb b/app/models/analytics/cycle_analytics/aggregation.rb
index 0f8e184933e..5ac5437a442 100644
--- a/app/models/analytics/cycle_analytics/aggregation.rb
+++ b/app/models/analytics/cycle_analytics/aggregation.rb
@@ -59,19 +59,26 @@ class Analytics::CycleAnalytics::Aggregation < ApplicationRecord
estimation < 1 ? nil : estimation.from_now
end
- def self.safe_create_for_namespace(group_or_project_namespace)
+ def self.safe_create_for_namespace(target_namespace)
# Namespaces::ProjectNamespace has no root_ancestor
# Related: https://gitlab.com/gitlab-org/gitlab/-/issues/386124
- group = group_or_project_namespace.is_a?(Group) ? group_or_project_namespace : group_or_project_namespace.parent
- top_level_group = group.root_ancestor
- aggregation = find_by(group_id: top_level_group.id)
+ namespace = if target_namespace.is_a?(Group) || target_namespace.is_a?(Namespaces::UserNamespace)
+ target_namespace
+ else
+ target_namespace.parent
+ end
+ # personal namespace projects and associated ProjectNamespace respond to `namespace`
+ # and this is close enough to "root ancestor"
+ top_level_namespace =
+ target_namespace.respond_to?(:root_ancestor) ? namespace.root_ancestor : namespace.namespace
+ aggregation = find_by(group_id: top_level_namespace.id)
return aggregation if aggregation&.enabled?
# At this point we're sure that the group is licensed, we can always enable the aggregation.
# This re-enables the aggregation in case the group downgraded and later upgraded the license.
- upsert({ group_id: top_level_group.id, enabled: true })
+ upsert({ group_id: top_level_namespace.id, enabled: true })
- find(top_level_group.id)
+ find(top_level_namespace.id)
end
private
diff --git a/app/models/analytics/cycle_analytics/stage.rb b/app/models/analytics/cycle_analytics/stage.rb
index 6f152e7749e..4686dc3aedd 100644
--- a/app/models/analytics/cycle_analytics/stage.rb
+++ b/app/models/analytics/cycle_analytics/stage.rb
@@ -7,7 +7,6 @@ module Analytics
self.table_name = :analytics_cycle_analytics_group_stages
- include DatabaseEventTracking
include Analytics::CycleAnalytics::Stageable
include Analytics::CycleAnalytics::Parentable
@@ -38,22 +37,6 @@ module Analytics
.select("DISTINCT ON(stage_event_hash_id) #{quoted_table_name}.*")
end
- SNOWPLOW_ATTRIBUTES = %i[
- id
- created_at
- updated_at
- relative_position
- start_event_identifier
- end_event_identifier
- group_id
- start_event_label_id
- end_event_label_id
- hidden
- custom
- name
- group_value_stream_id
- ].freeze
-
private
def max_stages_count
diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb
index cb533a5e99d..35d4722b711 100644
--- a/app/models/application_setting.rb
+++ b/app/models/application_setting.rb
@@ -99,7 +99,9 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
validates :default_branch_protection_defaults, json_schema: { filename: 'default_branch_protection_defaults' }
validates :default_branch_protection_defaults, bytesize: { maximum: -> { DEFAULT_BRANCH_PROTECTIONS_DEFAULT_MAX_SIZE } }
- validates :failed_login_attempts_unlock_period_in_minutes,
+ validates :external_pipeline_validation_service_timeout,
+ :failed_login_attempts_unlock_period_in_minutes,
+ :max_login_attempts,
allow_nil: true,
numericality: { only_integer: true, greater_than: 0 }
@@ -118,10 +120,6 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
allow_nil: false,
qualified_domain_array: true
- validates :session_expire_delay,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
validates :minimum_password_length,
presence: true,
numericality: {
@@ -222,38 +220,6 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
hostname: true,
length: { maximum: 255 }
- validates :max_attachment_size,
- presence: true,
- numericality: { only_integer: true, greater_than: 0 }
-
- validates :max_artifacts_size,
- presence: true,
- numericality: { only_integer: true, greater_than: 0 }
-
- validates :max_export_size,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :max_import_size,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :max_import_remote_file_size,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :bulk_import_max_download_file_size,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :max_decompressed_archive_size,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :max_login_attempts,
- allow_nil: true,
- numericality: { only_integer: true, greater_than: 0 }
-
validates :max_pages_size,
presence: true,
numericality: {
@@ -261,31 +227,11 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
less_than: ::Gitlab::Pages::MAX_SIZE / 1.megabyte
}
- validates :max_pages_custom_domains_per_project,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :jobs_per_stage_page_size,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :max_terraform_state_size_bytes,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
validates :default_artifacts_expire_in, presence: true, duration: true
validates :container_expiration_policies_enable_historic_entries,
inclusion: { in: [true, false], message: N_('must be a boolean value') }
- validates :container_registry_token_expire_delay,
- presence: true,
- numericality: { only_integer: true, greater_than: 0 }
-
- validates :decompress_archive_file_timeout,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
validate :check_repository_storages_weighted
validates :auto_devops_domain,
@@ -300,14 +246,6 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
presence: { message: 'Domain denylist cannot be empty if denylist is enabled.' },
if: :domain_denylist_enabled?
- validates :housekeeping_optimize_repository_period,
- presence: true,
- numericality: { only_integer: true, greater_than: 0 }
-
- validates :terminal_max_session_time,
- presence: true,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
validates :polling_interval_multiplier,
presence: true,
numericality: { greater_than_or_equal_to: 0 }
@@ -413,59 +351,26 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
length: { maximum: 100, message: N_('is too long (maximum is 100 entries)') },
allow_nil: false
- validates :push_event_hooks_limit,
- numericality: { greater_than_or_equal_to: 0 }
-
validates :push_event_activities_limit,
+ :push_event_hooks_limit,
numericality: { greater_than_or_equal_to: 0 }
- validates :snippet_size_limit, numericality: { only_integer: true, greater_than: 0 }
validates :wiki_page_max_content_bytes, numericality: { only_integer: true, greater_than_or_equal_to: 1.kilobytes }
validates :wiki_asciidoc_allow_uri_includes, inclusion: { in: [true, false], message: N_('must be a boolean value') }
- validates :max_yaml_size_bytes, numericality: { only_integer: true, greater_than: 0 }, presence: true
- validates :max_yaml_depth, numericality: { only_integer: true, greater_than: 0 }, presence: true
-
- validates :ci_max_total_yaml_size_bytes, numericality: { only_integer: true, greater_than_or_equal_to: 0 }, presence: true
-
- validates :ci_max_includes, numericality: { only_integer: true, greater_than_or_equal_to: 0 }, presence: true
validates :email_restrictions, untrusted_regexp: true
validates :hashed_storage_enabled, inclusion: { in: [true], message: N_("Hashed storage can't be disabled anymore for new projects") }
- validates :container_registry_delete_tags_service_timeout,
- :container_registry_cleanup_tags_service_max_list_size,
- :container_registry_data_repair_detail_worker_max_concurrency,
- :container_registry_expiration_policies_worker_capacity,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
validates :container_registry_expiration_policies_caching,
inclusion: { in: [true, false], message: N_('must be a boolean value') }
- validates :container_registry_import_max_tags_count,
- :container_registry_import_max_retries,
- :container_registry_import_start_max_retries,
- :container_registry_import_max_step_duration,
- :container_registry_pre_import_timeout,
- :container_registry_import_timeout,
- allow_nil: false,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
validates :container_registry_pre_import_tags_rate,
allow_nil: false,
numericality: { greater_than_or_equal_to: 0 }
validates :container_registry_import_target_plan, presence: true
validates :container_registry_import_created_before, presence: true
- validates :dependency_proxy_ttl_group_policy_worker_capacity,
- allow_nil: false,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :packages_cleanup_package_file_worker_capacity,
- :package_registry_cleanup_policies_worker_capacity,
- allow_nil: false,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
validates :invisible_captcha_enabled,
inclusion: { in: [true, false], message: N_('must be a boolean value') }
@@ -584,15 +489,6 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
length: { maximum: 255 },
allow_blank: true
- validates :issues_create_limit,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :raw_blob_request_limit,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :pipeline_limit_per_project_user_sha,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
validates :ci_jwt_signing_key,
rsa_key: true, allow_nil: true
@@ -619,41 +515,90 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
validates :slack_app_verification_token
end
- with_options(presence: true, numericality: { only_integer: true, greater_than: 0 }) do
- validates :throttle_unauthenticated_api_requests_per_period
- validates :throttle_unauthenticated_api_period_in_seconds
- validates :throttle_unauthenticated_requests_per_period
- validates :throttle_unauthenticated_period_in_seconds
- validates :throttle_unauthenticated_packages_api_requests_per_period
- validates :throttle_unauthenticated_packages_api_period_in_seconds
- validates :throttle_unauthenticated_files_api_requests_per_period
- validates :throttle_unauthenticated_files_api_period_in_seconds
- validates :throttle_unauthenticated_deprecated_api_requests_per_period
- validates :throttle_unauthenticated_deprecated_api_period_in_seconds
- validates :throttle_authenticated_api_requests_per_period
- validates :throttle_authenticated_api_period_in_seconds
- validates :throttle_authenticated_git_lfs_requests_per_period
- validates :throttle_authenticated_git_lfs_period_in_seconds
- validates :throttle_authenticated_web_requests_per_period
- validates :throttle_authenticated_web_period_in_seconds
- validates :throttle_authenticated_packages_api_requests_per_period
- validates :throttle_authenticated_packages_api_period_in_seconds
- validates :throttle_authenticated_files_api_requests_per_period
- validates :throttle_authenticated_files_api_period_in_seconds
- validates :throttle_authenticated_deprecated_api_requests_per_period
- validates :throttle_authenticated_deprecated_api_period_in_seconds
- validates :throttle_protected_paths_requests_per_period
- validates :throttle_protected_paths_period_in_seconds
- validates :project_jobs_api_rate_limit
+ with_options(numericality: { only_integer: true, greater_than: 0 }) do
+ validates :bulk_import_concurrent_pipeline_batch_limit,
+ :container_registry_token_expire_delay,
+ :housekeeping_optimize_repository_period,
+ :inactive_projects_delete_after_months,
+ :max_artifacts_size,
+ :max_attachment_size,
+ :max_yaml_depth,
+ :max_yaml_size_bytes,
+ :namespace_aggregation_schedule_lease_duration_in_seconds,
+ :project_jobs_api_rate_limit,
+ :snippet_size_limit,
+ :throttle_authenticated_api_period_in_seconds,
+ :throttle_authenticated_api_requests_per_period,
+ :throttle_authenticated_deprecated_api_period_in_seconds,
+ :throttle_authenticated_deprecated_api_requests_per_period,
+ :throttle_authenticated_files_api_period_in_seconds,
+ :throttle_authenticated_files_api_requests_per_period,
+ :throttle_authenticated_git_lfs_period_in_seconds,
+ :throttle_authenticated_git_lfs_requests_per_period,
+ :throttle_authenticated_packages_api_period_in_seconds,
+ :throttle_authenticated_packages_api_requests_per_period,
+ :throttle_authenticated_web_period_in_seconds,
+ :throttle_authenticated_web_requests_per_period,
+ :throttle_protected_paths_period_in_seconds,
+ :throttle_protected_paths_requests_per_period,
+ :throttle_unauthenticated_api_period_in_seconds,
+ :throttle_unauthenticated_api_requests_per_period,
+ :throttle_unauthenticated_deprecated_api_period_in_seconds,
+ :throttle_unauthenticated_deprecated_api_requests_per_period,
+ :throttle_unauthenticated_files_api_period_in_seconds,
+ :throttle_unauthenticated_files_api_requests_per_period,
+ :throttle_unauthenticated_packages_api_period_in_seconds,
+ :throttle_unauthenticated_packages_api_requests_per_period,
+ :throttle_unauthenticated_period_in_seconds,
+ :throttle_unauthenticated_requests_per_period
end
with_options(numericality: { only_integer: true, greater_than_or_equal_to: 0 }) do
- validates :notes_create_limit
- validates :search_rate_limit
- validates :search_rate_limit_unauthenticated
- validates :projects_api_rate_limit_unauthenticated
- validates :gitlab_shell_operation_limit
- end
+ validates :bulk_import_max_download_file_size,
+ :ci_max_includes,
+ :ci_max_total_yaml_size_bytes,
+ :container_registry_cleanup_tags_service_max_list_size,
+ :container_registry_data_repair_detail_worker_max_concurrency,
+ :container_registry_delete_tags_service_timeout,
+ :container_registry_expiration_policies_worker_capacity,
+ :container_registry_import_max_retries,
+ :container_registry_import_max_step_duration,
+ :container_registry_import_max_tags_count,
+ :container_registry_import_start_max_retries,
+ :container_registry_import_timeout,
+ :container_registry_pre_import_timeout,
+ :decompress_archive_file_timeout,
+ :dependency_proxy_ttl_group_policy_worker_capacity,
+ :gitlab_shell_operation_limit,
+ :inactive_projects_min_size_mb,
+ :issues_create_limit,
+ :jobs_per_stage_page_size,
+ :max_decompressed_archive_size,
+ :max_export_size,
+ :max_import_remote_file_size,
+ :max_import_size,
+ :max_pages_custom_domains_per_project,
+ :max_terraform_state_size_bytes,
+ :members_delete_limit,
+ :notes_create_limit,
+ :package_registry_cleanup_policies_worker_capacity,
+ :packages_cleanup_package_file_worker_capacity,
+ :pipeline_limit_per_project_user_sha,
+ :projects_api_rate_limit_unauthenticated,
+ :raw_blob_request_limit,
+ :search_rate_limit,
+ :search_rate_limit_unauthenticated,
+ :session_expire_delay,
+ :sidekiq_job_limiter_compression_threshold_bytes,
+ :sidekiq_job_limiter_limit_bytes,
+ :terminal_max_session_time,
+ :users_get_by_id_limit
+ end
+
+ jsonb_accessor :rate_limits,
+ members_delete_limit: [:integer, { default: 60 }]
+
+ validates :rate_limits, json_schema: { filename: "application_setting_rate_limits" }
validates :search_rate_limit_allowlist,
length: { maximum: 100, message: N_('is too long (maximum is 100 entries)') },
@@ -669,10 +614,6 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
validates :external_pipeline_validation_service_url,
addressable_url: ADDRESSABLE_URL_VALIDATION_OPTIONS, allow_blank: true
- validates :external_pipeline_validation_service_timeout,
- allow_nil: true,
- numericality: { only_integer: true, greater_than: 0 }
-
validates :whats_new_variant,
inclusion: { in: ApplicationSetting.whats_new_variants.keys }
@@ -686,10 +627,6 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
validates :sidekiq_job_limiter_mode,
inclusion: { in: self.sidekiq_job_limiter_modes }
- validates :sidekiq_job_limiter_compression_threshold_bytes,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
- validates :sidekiq_job_limiter_limit_bytes,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
validates :sentry_enabled,
inclusion: { in: [true, false], message: N_('must be a boolean value') }
@@ -711,8 +648,6 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
length: { maximum: 255 },
if: :error_tracking_enabled?
- validates :users_get_by_id_limit,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
validates :users_get_by_id_limit_allowlist,
length: { maximum: 100, message: N_('is too long (maximum is 100 entries)') },
allow_nil: false
@@ -724,20 +659,11 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
presence: true,
if: :update_runner_versions_enabled?
- validates :inactive_projects_min_size_mb,
- numericality: { only_integer: true, greater_than_or_equal_to: 0 }
-
- validates :inactive_projects_delete_after_months,
- numericality: { only_integer: true, greater_than: 0 }
-
validates :inactive_projects_send_warning_email_after_months,
numericality: { only_integer: true, greater_than: 0, less_than: :inactive_projects_delete_after_months }
validates :prometheus_alert_db_indicators_settings, json_schema: { filename: 'application_setting_prometheus_alert_db_indicators_settings' }, allow_nil: true
- validates :namespace_aggregation_schedule_lease_duration_in_seconds,
- numericality: { only_integer: true, greater_than: 0 }
-
validates :sentry_clientside_traces_sample_rate,
presence: true,
numericality: { greater_than_or_equal_to: 0, less_than_or_equal_to: 1, message: N_('must be a value between 0 and 1') }
@@ -815,10 +741,6 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
allow_nil: false,
inclusion: { in: [true, false], message: N_('must be a boolean value') }
- validates :bulk_import_concurrent_pipeline_batch_limit,
- presence: true,
- numericality: { only_integer: true, greater_than: 0 }
-
validates :allow_runner_registration_token,
allow_nil: false,
inclusion: { in: [true, false], message: N_('must be a boolean value') }
@@ -835,6 +757,9 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
validates :math_rendering_limits_enabled,
inclusion: { in: [true, false], message: N_('must be a boolean value') }
+ validates :require_admin_two_factor_authentication,
+ inclusion: { in: [true, false], message: N_('must be a boolean value') }
+
before_validation :ensure_uuid!
before_validation :coerce_repository_storages_weighted, if: :repository_storages_weighted_changed?
before_validation :normalize_default_branch_name
@@ -982,7 +907,10 @@ class ApplicationSetting < MainClusterwide::ApplicationRecord
end
def parsed_kroki_url
- @parsed_kroki_url ||= Gitlab::UrlBlocker.validate!(kroki_url, schemes: %w[http https], enforce_sanitization: true)[0]
+ @parsed_kroki_url ||= Gitlab::HTTP_V2::UrlBlocker.validate!(
+ kroki_url, schemes: %w[http https],
+ enforce_sanitization: true,
+ deny_all_requests_except_allowed: Gitlab::CurrentSettings.deny_all_requests_except_allowed?)[0]
rescue Gitlab::HTTP_V2::UrlBlocker::BlockedUrlError => e
self.errors.add(
:kroki_url,
diff --git a/app/models/application_setting_implementation.rb b/app/models/application_setting_implementation.rb
index 851b65055d0..d1899b18a4f 100644
--- a/app/models/application_setting_implementation.rb
+++ b/app/models/application_setting_implementation.rb
@@ -79,6 +79,7 @@ module ApplicationSettingImplementation
ecdsa_sk_key_restriction: default_min_key_size(:ecdsa_sk),
ed25519_key_restriction: default_min_key_size(:ed25519),
ed25519_sk_key_restriction: default_min_key_size(:ed25519_sk),
+ require_admin_two_factor_authentication: false,
eks_access_key_id: nil,
eks_account_id: nil,
eks_integration_enabled: false,
@@ -136,6 +137,7 @@ module ApplicationSettingImplementation
mirror_available: true,
notes_create_limit: 300,
notes_create_limit_allowlist: [],
+ members_delete_limit: 60,
notify_on_unknown_sign_in: true,
outbound_local_requests_whitelist: [],
password_authentication_enabled_for_git: true,
@@ -275,7 +277,8 @@ module ApplicationSettingImplementation
allow_account_deletion: true,
gitlab_shell_operation_limit: 600,
project_jobs_api_rate_limit: 600,
- security_txt_content: nil
+ security_txt_content: nil,
+ allow_project_creation_for_guest_and_below: true
}.tap do |hsh|
hsh.merge!(non_production_defaults) unless Rails.env.production?
end
diff --git a/app/models/bulk_imports/entity.rb b/app/models/bulk_imports/entity.rb
index 894e28dd88a..a6969ce6f76 100644
--- a/app/models/bulk_imports/entity.rb
+++ b/app/models/bulk_imports/entity.rb
@@ -150,9 +150,9 @@ class BulkImports::Entity < ApplicationRecord
File.join(base_resource_path, 'export_relations')
end
- def export_relations_url_path(batched: false)
- if batched && bulk_import.supports_batched_export?
- Gitlab::Utils.add_url_parameters(export_relations_url_path_base, batched: batched)
+ def export_relations_url_path
+ if bulk_import.supports_batched_export?
+ Gitlab::Utils.add_url_parameters(export_relations_url_path_base, batched: true)
else
export_relations_url_path_base
end
diff --git a/app/models/bulk_imports/failure.rb b/app/models/bulk_imports/failure.rb
index 8a6077b523c..e23e49c6396 100644
--- a/app/models/bulk_imports/failure.rb
+++ b/app/models/bulk_imports/failure.rb
@@ -19,6 +19,14 @@ class BulkImports::Failure < ApplicationRecord
super(::Projects::ImportErrorFilter.filter_message(message).truncate(255))
end
+ def source_title=(title)
+ super(title&.truncate(255, omission: ''))
+ end
+
+ def source_url=(url)
+ super(url&.truncate(255, omission: ''))
+ end
+
private
def pipeline_relation
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index e56f3d2536c..d4c70a294ff 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -27,6 +27,7 @@ module Ci
foreign_key: :commit_id,
partition_foreign_key: :partition_id,
inverse_of: :builds
+ belongs_to :project_mirror, primary_key: :project_id, foreign_key: :project_id, inverse_of: :builds
RUNNER_FEATURES = {
upload_multiple_artifacts: -> (build) { build.publishes_artifacts_reports? },
@@ -42,6 +43,8 @@ module Ci
DEPLOYMENT_NAMES = %w[deploy release rollout].freeze
+ TOKEN_PREFIX = 'glcbt-'
+
has_one :pending_state, class_name: 'Ci::BuildPendingState', foreign_key: :build_id, inverse_of: :build
has_one :queuing_entry, class_name: 'Ci::PendingBuild', foreign_key: :build_id, inverse_of: :build
has_one :runtime_metadata, class_name: 'Ci::RunningBuild', foreign_key: :build_id, inverse_of: :build
@@ -98,6 +101,7 @@ module Ci
delegate :harbor_integration, to: :project
delegate :apple_app_store_integration, to: :project
delegate :google_play_integration, to: :project
+ delegate :diffblue_cover_integration, to: :project
delegate :trigger_short_token, to: :trigger_request, allow_nil: true
delegate :ensure_persistent_ref, to: :pipeline
delegate :enable_debug_trace!, to: :metadata
@@ -188,6 +192,10 @@ module Ci
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123131
scope :with_runner_type, -> (runner_type) { joins(:runner).where(runner: { runner_type: runner_type }) }
+ scope :belonging_to_runner_manager, -> (runner_machine_id) {
+ joins(:runner_manager_build).where(p_ci_runner_machine_builds: { runner_machine_id: runner_machine_id })
+ }
+
scope :with_secure_reports_from_config_options, -> (job_types) do
joins(:metadata).where("#{Ci::BuildMetadata.quoted_table_name}.config_options -> 'artifacts' -> 'reports' ?| array[:job_types]", job_types: job_types)
end
@@ -204,7 +212,7 @@ module Ci
add_authentication_token_field :token,
encrypted: :required,
- format_with_prefix: :partition_id_prefix_in_16_bit_encode
+ format_with_prefix: :prefix_and_partition_for_token
after_save :stick_build_if_status_changed
@@ -516,6 +524,7 @@ module Ci
.concat(harbor_variables)
.concat(apple_app_store_variables)
.concat(google_play_variables)
+ .concat(diffblue_cover_variables)
end
end
@@ -568,6 +577,12 @@ module Ci
Gitlab::Ci::Variables::Collection.new(google_play_integration.ci_variables(protected_ref: pipeline.protected_ref?))
end
+ def diffblue_cover_variables
+ return [] unless diffblue_cover_integration.try(:activated?)
+
+ Gitlab::Ci::Variables::Collection.new(diffblue_cover_integration.ci_variables)
+ end
+
def features
{
trace_sections: true,
@@ -1232,6 +1247,14 @@ module Ci
def partition_id_prefix_in_16_bit_encode
"#{partition_id.to_s(16)}_"
end
+
+ def prefix_and_partition_for_token
+ if Feature.enabled?(:prefix_ci_build_tokens, project, type: :beta)
+ TOKEN_PREFIX + partition_id_prefix_in_16_bit_encode
+ else
+ partition_id_prefix_in_16_bit_encode
+ end
+ end
end
end
diff --git a/app/models/ci/catalog/resources/version.rb b/app/models/ci/catalog/resources/version.rb
index 4273c4515bc..0ea2735b030 100644
--- a/app/models/ci/catalog/resources/version.rb
+++ b/app/models/ci/catalog/resources/version.rb
@@ -19,6 +19,7 @@ module Ci
scope :for_catalog_resources, ->(catalog_resources) { where(catalog_resource_id: catalog_resources) }
scope :preloaded, -> { includes(:catalog_resource, project: [:route, { namespace: :route }], release: :author) }
+ scope :by_name, ->(name) { joins(:release).merge(Release.where(tag: name)) }
scope :order_by_created_at_asc, -> { reorder(created_at: :asc) }
scope :order_by_created_at_desc, -> { reorder(created_at: :desc) }
@@ -122,6 +123,14 @@ module Ci
project.commit_by(oid: sha)
end
+ def path
+ Gitlab::Routing.url_helpers.project_tag_path(project, name)
+ end
+
+ def readme
+ project.repository.tree(sha).readme
+ end
+
private
def update_catalog_resource
diff --git a/app/models/ci/instance_variable.rb b/app/models/ci/instance_variable.rb
index 179befb8469..6a2fb1132c0 100644
--- a/app/models/ci/instance_variable.rb
+++ b/app/models/ci/instance_variable.rb
@@ -13,6 +13,7 @@ module Ci
alias_attribute :secret_value, :value
+ validates :description, length: { maximum: 255 }, allow_blank: true
validates :key, uniqueness: {
message: -> (object, data) { _("(%{value}) has already been taken") }
}
diff --git a/app/models/ci/namespace_mirror.rb b/app/models/ci/namespace_mirror.rb
index ff7e681217a..5f55713b436 100644
--- a/app/models/ci/namespace_mirror.rb
+++ b/app/models/ci/namespace_mirror.rb
@@ -7,6 +7,7 @@ module Ci
include FromUnion
belongs_to :namespace
+ has_many :project_mirrors, primary_key: :namespace_id, foreign_key: :namespace_id, inverse_of: :namespace_mirror
scope :by_group_and_descendants, -> (id) do
where('traversal_ids @> ARRAY[?]::int[]', id)
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb
index 9d5b2e5a0b1..1bf4d585e1c 100644
--- a/app/models/ci/pipeline.rb
+++ b/app/models/ci/pipeline.rb
@@ -20,7 +20,6 @@ module Ci
include IgnorableColumns
ignore_column :id_convert_to_bigint, remove_with: '16.3', remove_after: '2023-08-22'
- ignore_column :auto_canceled_by_id_convert_to_bigint, remove_with: '16.6', remove_after: '2023-10-22'
MAX_OPEN_MERGE_REQUESTS_REFS = 4
@@ -439,7 +438,7 @@ module Ci
where_exists(Ci::Build.latest.scoped_pipeline.with_artifacts(reports_scope))
end
- scope :with_only_interruptible_builds, -> do
+ scope :conservative_interruptible, -> do
where_not_exists(
Ci::Build.scoped_pipeline.with_status(STARTED_STATUSES).not_interruptible
)
@@ -621,7 +620,7 @@ module Ci
end
def valid_commit_sha
- if self.sha == Gitlab::Git::BLANK_SHA
+ if self.sha == Gitlab::Git::SHA1_BLANK_SHA
self.errors.add(:sha, " cant be 00000000 (branch removal)")
end
end
@@ -675,7 +674,7 @@ module Ci
end
def before_sha
- super || Gitlab::Git::BLANK_SHA
+ super || Gitlab::Git::SHA1_BLANK_SHA
end
def short_sha
@@ -1394,6 +1393,10 @@ module Ci
merge_request.merge_request_diff_for(merge_request_diff_sha)
end
+ def auto_cancel_on_new_commit
+ pipeline_metadata&.auto_cancel_on_new_commit || 'conservative'
+ end
+
private
def add_message(severity, content)
diff --git a/app/models/ci/pipeline_artifact.rb b/app/models/ci/pipeline_artifact.rb
index 6d22a875aab..e0e6906f211 100644
--- a/app/models/ci/pipeline_artifact.rb
+++ b/app/models/ci/pipeline_artifact.rb
@@ -4,6 +4,7 @@
module Ci
class PipelineArtifact < Ci::ApplicationRecord
+ include Ci::Partitionable
include UpdateProjectStatistics
include Artifactable
include FileStoreMounter
@@ -31,6 +32,8 @@ module Ci
validates :size, presence: true, numericality: { less_than_or_equal_to: FILE_SIZE_LIMIT }
validates :file_type, presence: true
+ partitionable scope: :pipeline
+
mount_file_store_uploader Ci::PipelineArtifactUploader
update_project_statistics project_statistics_name: :pipeline_artifacts_size
diff --git a/app/models/ci/pipeline_chat_data.rb b/app/models/ci/pipeline_chat_data.rb
index ba20c993e36..1a2bc37d17d 100644
--- a/app/models/ci/pipeline_chat_data.rb
+++ b/app/models/ci/pipeline_chat_data.rb
@@ -2,14 +2,21 @@
module Ci
class PipelineChatData < Ci::ApplicationRecord
+ include Ci::Partitionable
include Ci::NamespacedModelName
+ include SafelyChangeColumnDefault
+
+ columns_changing_default :partition_id
self.table_name = 'ci_pipeline_chat_data'
belongs_to :chat_name
+ belongs_to :pipeline
validates :pipeline_id, presence: true
validates :chat_name_id, presence: true
validates :response_url, presence: true
+
+ partitionable scope: :pipeline
end
end
diff --git a/app/models/ci/pipeline_config.rb b/app/models/ci/pipeline_config.rb
index e2dcad653d7..11decd3fc66 100644
--- a/app/models/ci/pipeline_config.rb
+++ b/app/models/ci/pipeline_config.rb
@@ -2,11 +2,15 @@
module Ci
class PipelineConfig < Ci::ApplicationRecord
+ include Ci::Partitionable
+
self.table_name = 'ci_pipelines_config'
self.primary_key = :pipeline_id
belongs_to :pipeline, class_name: "Ci::Pipeline", inverse_of: :pipeline_config
validates :pipeline, presence: true
validates :content, presence: true
+
+ partitionable scope: :pipeline
end
end
diff --git a/app/models/ci/pipeline_metadata.rb b/app/models/ci/pipeline_metadata.rb
index 37fa3e32ad8..21d102374f0 100644
--- a/app/models/ci/pipeline_metadata.rb
+++ b/app/models/ci/pipeline_metadata.rb
@@ -2,12 +2,15 @@
module Ci
class PipelineMetadata < Ci::ApplicationRecord
+ include Ci::Partitionable
+ include Importable
+
self.primary_key = :pipeline_id
enum auto_cancel_on_new_commit: {
conservative: 0,
interruptible: 1,
- disabled: 2
+ none: 2
}, _prefix: true
enum auto_cancel_on_job_failure: {
@@ -21,5 +24,7 @@ module Ci
validates :pipeline, presence: true
validates :project, presence: true
validates :name, length: { minimum: 1, maximum: 255 }, allow_nil: true
+
+ partitionable scope: :pipeline
end
end
diff --git a/app/models/ci/pipeline_variable.rb b/app/models/ci/pipeline_variable.rb
index b1831e365b1..4fddb3e053e 100644
--- a/app/models/ci/pipeline_variable.rb
+++ b/app/models/ci/pipeline_variable.rb
@@ -5,9 +5,6 @@ module Ci
include Ci::Partitionable
include Ci::HasVariable
include Ci::RawVariable
- include IgnorableColumns
-
- ignore_column :pipeline_id_convert_to_bigint, remove_with: '16.5', remove_after: '2023-10-22'
belongs_to :pipeline
diff --git a/app/models/ci/processable.rb b/app/models/ci/processable.rb
index 414d36da7c3..989d6337ab7 100644
--- a/app/models/ci/processable.rb
+++ b/app/models/ci/processable.rb
@@ -33,6 +33,10 @@ module Ci
where('NOT EXISTS (?)', needs)
end
+ scope :interruptible, -> do
+ joins(:metadata).merge(Ci::BuildMetadata.with_interruptible)
+ end
+
scope :not_interruptible, -> do
joins(:metadata).where.not(
Ci::BuildMetadata.table_name => { id: Ci::BuildMetadata.scoped_build.with_interruptible.select(:id) }
diff --git a/app/models/ci/project_mirror.rb b/app/models/ci/project_mirror.rb
index 23cd5d92730..c6828f827b5 100644
--- a/app/models/ci/project_mirror.rb
+++ b/app/models/ci/project_mirror.rb
@@ -7,6 +7,8 @@ module Ci
include FromUnion
belongs_to :project
+ belongs_to :namespace_mirror, primary_key: :namespace_id, foreign_key: :namespace_id, inverse_of: :project_mirrors
+ has_many :builds, primary_key: :project_id, foreign_key: :project_id, inverse_of: :project_mirror
scope :by_namespace_id, -> (namespace_id) { where(namespace_id: namespace_id) }
scope :by_project_id, -> (project_id) { where(project_id: project_id) }
diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb
index 9c30beeeb59..5fb982ee21e 100644
--- a/app/models/ci/runner.rb
+++ b/app/models/ci/runner.rb
@@ -14,6 +14,7 @@ module Ci
include Presentable
include EachBatch
include Ci::HasRunnerExecutor
+ include Ci::HasRunnerStatus
extend ::Gitlab::Utils::Override
@@ -85,22 +86,22 @@ module Ci
before_save :ensure_token
- scope :active, -> (value = true) { where(active: value) }
+ scope :active, ->(value = true) { where(active: value) }
scope :paused, -> { active(false) }
- scope :online, -> { where(arel_table[:contacted_at].gt(online_contact_time_deadline)) }
scope :recent, -> do
timestamp = stale_deadline
where(arel_table[:created_at].gteq(timestamp).or(arel_table[:contacted_at].gteq(timestamp)))
end
scope :stale, -> do
- timestamp = stale_deadline
+ stale_timestamp = stale_deadline
+
+ created_before_stale_deadline = arel_table[:created_at].lteq(stale_timestamp)
+ contacted_before_stale_deadline = arel_table[:contacted_at].lteq(stale_timestamp)
+ never_contacted = arel_table[:contacted_at].eq(nil)
- where(arel_table[:created_at].lteq(timestamp))
- .where(arel_table[:contacted_at].eq(nil).or(arel_table[:contacted_at].lteq(timestamp)))
+ where(created_before_stale_deadline).where(never_contacted.or(contacted_before_stale_deadline))
end
- scope :offline, -> { where(arel_table[:contacted_at].lteq(online_contact_time_deadline)) }
- scope :never_contacted, -> { where(contacted_at: nil) }
scope :ordered, -> { order(id: :desc) }
scope :with_recent_runner_queue, -> { where(arel_table[:contacted_at].gt(recent_queue_deadline)) }
@@ -220,6 +221,11 @@ module Ci
validate :exactly_one_group, if: :group_type?
scope :with_version_prefix, ->(value) { joins(:runner_managers).merge(RunnerManager.with_version_prefix(value)) }
+ scope :with_runner_type, ->(runner_type) do
+ return all if AVAILABLE_TYPES.exclude?(runner_type.to_s)
+
+ where(runner_type: runner_type)
+ end
acts_as_taggable
@@ -348,23 +354,6 @@ module Ci
description
end
- def online?
- contacted_at && contacted_at > self.class.online_contact_time_deadline
- end
-
- def stale?
- return false unless created_at
-
- [created_at, contacted_at].compact.max <= self.class.stale_deadline
- end
-
- def status
- return :stale if stale?
- return :never_contacted unless contacted_at
-
- online? ? :online : :offline
- end
-
# DEPRECATED
# TODO Remove in v5 in favor of `status` for REST calls, see https://gitlab.com/gitlab-org/gitlab/-/issues/344648
def deprecated_rest_status
@@ -475,6 +464,21 @@ module Ci
end
end
+ def clear_heartbeat
+ cleared_attributes = {
+ version: nil,
+ revision: nil,
+ platform: nil,
+ architecture: nil,
+ ip_address: nil,
+ executor_type: nil,
+ config: {},
+ contacted_at: nil
+ }
+ merge_cache_attributes(cleared_attributes)
+ update_columns(cleared_attributes)
+ end
+
def pick_build!(build)
tick_runner_queue if matches_build?(build)
end
diff --git a/app/models/ci/runner_manager.rb b/app/models/ci/runner_manager.rb
index e6576859827..44fe1bdd67d 100644
--- a/app/models/ci/runner_manager.rb
+++ b/app/models/ci/runner_manager.rb
@@ -5,10 +5,13 @@ module Ci
include FromUnion
include RedisCacheable
include Ci::HasRunnerExecutor
+ include Ci::HasRunnerStatus
# For legacy reasons, the table name is ci_runner_machines in the database
self.table_name = 'ci_runner_machines'
+ AVAILABLE_STATUSES = %w[online offline never_contacted stale].freeze
+
# The `UPDATE_CONTACT_COLUMN_EVERY` defines how often the Runner Machine DB entry can be updated
UPDATE_CONTACT_COLUMN_EVERY = (40.minutes)..(55.minutes)
@@ -36,19 +39,26 @@ module Ci
STALE_TIMEOUT = 7.days
scope :stale, -> do
- created_some_time_ago = arel_table[:created_at].lteq(STALE_TIMEOUT.ago)
- contacted_some_time_ago = arel_table[:contacted_at].lteq(STALE_TIMEOUT.ago)
+ stale_timestamp = stale_deadline
+
+ created_before_stale_deadline = arel_table[:created_at].lteq(stale_timestamp)
+ contacted_before_stale_deadline = arel_table[:contacted_at].lteq(stale_timestamp)
from_union(
- where(contacted_at: nil),
- where(contacted_some_time_ago),
- remove_duplicates: false).where(created_some_time_ago)
+ never_contacted,
+ where(contacted_before_stale_deadline),
+ remove_duplicates: false
+ ).where(created_before_stale_deadline)
end
scope :for_runner, ->(runner_id) do
where(runner_id: runner_id)
end
+ scope :with_system_xid, ->(system_xid) do
+ where(system_xid: system_xid)
+ end
+
scope :with_running_builds, -> do
where('EXISTS(?)',
Ci::Build.select(1)
@@ -114,25 +124,8 @@ module Ci
end
end
- def status
- return :stale if stale?
- return :never_contacted unless contacted_at
-
- online? ? :online : :offline
- end
-
private
- def online?
- contacted_at && contacted_at > self.class.online_contact_time_deadline
- end
-
- def stale?
- return false unless created_at
-
- [created_at, contacted_at].compact.max <= self.class.stale_deadline
- end
-
def persist_cached_data?
# Use a random threshold to prevent beating DB updates.
contacted_at_max_age = Random.rand(UPDATE_CONTACT_COLUMN_EVERY)
diff --git a/app/models/ci/stage.rb b/app/models/ci/stage.rb
index becb8f204bf..ba1a0a46247 100644
--- a/app/models/ci/stage.rb
+++ b/app/models/ci/stage.rb
@@ -7,9 +7,6 @@ module Ci
include Ci::HasStatus
include Gitlab::OptimisticLocking
include Presentable
- include IgnorableColumns
-
- ignore_column :pipeline_id_convert_to_bigint, remove_with: '16.6', remove_after: '2023-10-22'
partitionable scope: :pipeline
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 886e6e9fbd7..9c8d7604031 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -359,7 +359,7 @@ class Commit
def diff_refs
Gitlab::Diff::DiffRefs.new(
- base_sha: self.parent_id || Gitlab::Git::BLANK_SHA,
+ base_sha: self.parent_id || Gitlab::Git::SHA1_BLANK_SHA,
head_sha: self.sha
)
end
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb
index f1aeb7e528f..3a9b1465682 100644
--- a/app/models/commit_status.rb
+++ b/app/models/commit_status.rb
@@ -86,7 +86,7 @@ class CommitStatus < Ci::ApplicationRecord
scope :for_project_paths, -> (paths) do
# Pluck is used to split this query. Splitting the query is required for database decomposition for `ci_*` tables.
# https://docs.gitlab.com/ee/development/database/transaction_guidelines.html#database-decomposition-and-sharding
- project_ids = Project.where_full_path_in(Array(paths), use_includes: false).pluck(:id)
+ project_ids = Project.where_full_path_in(Array(paths), preload_routes: false).pluck(:id)
for_project(project_ids)
end
diff --git a/app/models/compare.rb b/app/models/compare.rb
index 58279cb58aa..d80f3f72ca7 100644
--- a/app/models/compare.rb
+++ b/app/models/compare.rb
@@ -1,12 +1,12 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
class Compare
include Gitlab::Utils::StrongMemoize
include ActsAsPaginatedDiff
- delegate :same, :head, :base, to: :@compare
+ delegate :same, :head, :base, :generated_files, to: :@compare
attr_reader :project
diff --git a/app/models/concerns/analytics/cycle_analytics/parentable.rb b/app/models/concerns/analytics/cycle_analytics/parentable.rb
index 785f6eea6bf..90a38e3c58c 100644
--- a/app/models/concerns/analytics/cycle_analytics/parentable.rb
+++ b/app/models/concerns/analytics/cycle_analytics/parentable.rb
@@ -6,16 +6,7 @@ module Analytics
extend ActiveSupport::Concern
included do
- belongs_to :namespace, class_name: 'Namespace', foreign_key: :group_id, optional: false # rubocop: disable Rails/InverseOf
-
- validate :ensure_namespace_type
-
- def ensure_namespace_type
- return if namespace.nil?
- return if namespace.is_a?(::Namespaces::ProjectNamespace) || namespace.is_a?(::Group)
-
- errors.add(:namespace, s_('CycleAnalytics|the assigned object is not supported'))
- end
+ belongs_to :namespace, class_name: 'Namespace', foreign_key: :group_id, optional: false # rubocop: disable Rails/InverseOf -- this relation is not present on Namespace
end
end
end
diff --git a/app/models/concerns/atomic_internal_id.rb b/app/models/concerns/atomic_internal_id.rb
index ec4ee7985fe..f51b0967968 100644
--- a/app/models/concerns/atomic_internal_id.rb
+++ b/app/models/concerns/atomic_internal_id.rb
@@ -219,8 +219,8 @@ module AtomicInternalId
::AtomicInternalId.scope_usage(self.class)
end
- def self.scope_usage(including_class)
- including_class.table_name.to_sym
+ def self.scope_usage(klass)
+ klass.respond_to?(:internal_id_scope_usage) ? klass.internal_id_scope_usage : klass.table_name.to_sym
end
def self.project_init(klass, column_name = :iid)
diff --git a/app/models/concerns/cache_markdown_field.rb b/app/models/concerns/cache_markdown_field.rb
index 6a855198697..7c7fd882228 100644
--- a/app/models/concerns/cache_markdown_field.rb
+++ b/app/models/concerns/cache_markdown_field.rb
@@ -40,8 +40,6 @@ module CacheMarkdownField
# Banzai is less strict about authors, so don't always have an author key
context[:author] = self.author if self.respond_to?(:author)
- context[:markdown_engine] = Banzai::Filter::MarkdownFilter::DEFAULT_ENGINE
-
if Feature.enabled?(:personal_snippet_reference_filters, context[:author])
context[:user] = self.parent_user
end
diff --git a/app/models/concerns/ci/has_runner_status.rb b/app/models/concerns/ci/has_runner_status.rb
new file mode 100644
index 00000000000..f6fb9940b44
--- /dev/null
+++ b/app/models/concerns/ci/has_runner_status.rb
@@ -0,0 +1,50 @@
+# frozen_string_literal: true
+
+module Ci
+ module HasRunnerStatus
+ extend ActiveSupport::Concern
+
+ included do
+ scope :offline, -> { where(arel_table[:contacted_at].lteq(online_contact_time_deadline)) }
+ scope :never_contacted, -> { where(contacted_at: nil) }
+ scope :online, -> { where(arel_table[:contacted_at].gt(online_contact_time_deadline)) }
+
+ scope :with_status, ->(status) do
+ return all if available_statuses.exclude?(status.to_s)
+
+ public_send(status) # rubocop:disable GitlabSecurity/PublicSend -- safe to call
+ end
+ end
+
+ class_methods do
+ def available_statuses
+ self::AVAILABLE_STATUSES
+ end
+
+ def online_contact_time_deadline
+ raise NotImplementedError
+ end
+
+ def stale_deadline
+ raise NotImplementedError
+ end
+ end
+
+ def status
+ return :stale if stale?
+ return :never_contacted unless contacted_at
+
+ online? ? :online : :offline
+ end
+
+ def online?
+ contacted_at && contacted_at > self.class.online_contact_time_deadline
+ end
+
+ def stale?
+ return false unless created_at
+
+ [created_at, contacted_at].compact.max <= self.class.stale_deadline
+ end
+ end
+end
diff --git a/app/models/concerns/ci/partitionable/testing.rb b/app/models/concerns/ci/partitionable/testing.rb
index b961d72db94..9f0d55329ad 100644
--- a/app/models/concerns/ci/partitionable/testing.rb
+++ b/app/models/concerns/ci/partitionable/testing.rb
@@ -21,6 +21,10 @@ module Ci
Ci::PendingBuild
Ci::RunningBuild
Ci::RunnerManagerBuild
+ Ci::PipelineArtifact
+ Ci::PipelineChatData
+ Ci::PipelineConfig
+ Ci::PipelineMetadata
Ci::PipelineVariable
Ci::Sources::Pipeline
Ci::Stage
diff --git a/app/models/concerns/commit_signature.rb b/app/models/concerns/commit_signature.rb
index 201994cb321..12e4a5a0ee0 100644
--- a/app/models/concerns/commit_signature.rb
+++ b/app/models/concerns/commit_signature.rb
@@ -9,17 +9,7 @@ module CommitSignature
sha_attribute :commit_sha
- enum verification_status: {
- unverified: 0,
- verified: 1,
- same_user_different_email: 2,
- other_user: 3,
- unverified_key: 4,
- unknown_key: 5,
- multiple_signatures: 6,
- revoked_key: 7,
- verified_system: 8
- }
+ enum verification_status: Enums::CommitSignature.verification_statuses
belongs_to :project, class_name: 'Project', foreign_key: 'project_id', optional: false
diff --git a/app/models/concerns/database_event_tracking.rb b/app/models/concerns/database_event_tracking.rb
deleted file mode 100644
index 7e2f445189e..00000000000
--- a/app/models/concerns/database_event_tracking.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-# frozen_string_literal: true
-
-module DatabaseEventTracking
- extend ActiveSupport::Concern
-
- included do
- after_create_commit :publish_database_create_event
- after_destroy_commit :publish_database_destroy_event
- after_update_commit :publish_database_update_event
- end
-
- def publish_database_create_event
- publish_database_event('create')
- end
-
- def publish_database_destroy_event
- publish_database_event('destroy')
- end
-
- def publish_database_update_event
- publish_database_event('update')
- end
-
- def publish_database_event(name)
- # Gitlab::Tracking#event is triggering Snowplow event
- # Snowplow events are sent with usage of
- # https://snowplow.github.io/snowplow-ruby-tracker/SnowplowTracker/AsyncEmitter.html
- # that reports data asynchronously and does not impact performance nor carries a risk of
- # rollback in case of error
-
- Gitlab::Tracking.database_event(
- self.class.to_s,
- "database_event_#{name}",
- label: self.class.table_name,
- project: try(:project),
- namespace: (try(:group) || try(:namespace)) || try(:project)&.namespace,
- property: name,
- **filtered_record_attributes
- )
- rescue StandardError => err
- # this rescue should be a dead code due to utilization of AsyncEmitter, however
- # since this concern is expected to be included in every model, it is better to
- # prevent against any unexpected outcome
- Gitlab::ErrorTracking.track_and_raise_for_dev_exception(err)
- end
-
- def filtered_record_attributes
- attributes
- .with_indifferent_access
- .slice(*self.class::SNOWPLOW_ATTRIBUTES)
- end
-end
diff --git a/app/models/concerns/enums/commit_signature.rb b/app/models/concerns/enums/commit_signature.rb
new file mode 100644
index 00000000000..92625af58ef
--- /dev/null
+++ b/app/models/concerns/enums/commit_signature.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+module Enums
+ class CommitSignature
+ VERIFICATION_STATUSES = {
+ unverified: 0,
+ verified: 1,
+ same_user_different_email: 2,
+ other_user: 3,
+ unverified_key: 4,
+ unknown_key: 5,
+ multiple_signatures: 6,
+ revoked_key: 7,
+ verified_system: 8
+ # EE adds more values in ee/app/models/concerns/ee/enums/commit_signature.rb
+ }.freeze
+
+ def self.verification_statuses
+ VERIFICATION_STATUSES
+ end
+ end
+end
+
+Enums::CommitSignature.prepend_mod
diff --git a/app/models/concerns/integrations/enable_ssl_verification.rb b/app/models/concerns/integrations/enable_ssl_verification.rb
index cb20955488a..1dffe183475 100644
--- a/app/models/concerns/integrations/enable_ssl_verification.rb
+++ b/app/models/concerns/integrations/enable_ssl_verification.rb
@@ -9,7 +9,8 @@ module Integrations
type: :checkbox,
title: -> { s_('Integrations|SSL verification') },
checkbox_label: -> { s_('Integrations|Enable SSL verification') },
- help: -> { s_('Integrations|Clear if using a self-signed certificate.') }
+ help: -> { s_('Integrations|Clear if using a self-signed certificate.') },
+ description: -> { s_('Enable SSL verification. Defaults to `true` (enabled).') }
end
def initialize_properties
diff --git a/app/models/concerns/integrations/has_issue_tracker_fields.rb b/app/models/concerns/integrations/has_issue_tracker_fields.rb
index 223191fb963..3ce1dd36a5e 100644
--- a/app/models/concerns/integrations/has_issue_tracker_fields.rb
+++ b/app/models/concerns/integrations/has_issue_tracker_fields.rb
@@ -10,16 +10,16 @@ module Integrations
field :project_url,
required: true,
title: -> { _('Project URL') },
- help: -> do
- s_('IssueTracker|The URL to the project in the external issue tracker.')
- end
+ description: -> { s_('URL of the project.') },
+ help: -> { s_('IssueTracker|URL of the project in the external issue tracker.') }
field :issues_url,
required: true,
title: -> { s_('IssueTracker|Issue URL') },
+ description: -> { s_('URL of the issue.') },
help: -> do
ERB::Util.html_escape(
- s_('IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}.')
+ s_('IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}.')
) % {
colon_id: '<code>:id</code>'.html_safe
}
@@ -28,9 +28,8 @@ module Integrations
field :new_issue_url,
required: true,
title: -> { s_('IssueTracker|New issue URL') },
- help: -> do
- s_('IssueTracker|The URL to create an issue in the external issue tracker.')
- end
+ description: -> { s_('URL of the new issue.') },
+ help: -> { s_('IssueTracker|URL to create an issue in the external issue tracker.') }
end
end
end
diff --git a/app/models/concerns/integrations/slack_mattermost_fields.rb b/app/models/concerns/integrations/slack_mattermost_fields.rb
index a8e63c4e405..08f86813cc1 100644
--- a/app/models/concerns/integrations/slack_mattermost_fields.rb
+++ b/app/models/concerns/integrations/slack_mattermost_fields.rb
@@ -7,26 +7,40 @@ module Integrations
included do
field :webhook,
help: -> { webhook_help },
+ description: -> do
+ Kernel.format(_("%{title} webhook (for example, `%{example}`)."), title: title, example: webhook_help)
+ end,
required: true,
if: -> { requires_webhook? }
field :username,
placeholder: 'GitLab-integration',
+ description: -> { Kernel.format(_("%{title} username."), title: title) },
if: -> { requires_webhook? }
+ field :channel,
+ description: -> { _('Default channel to use if no other channel is configured.') },
+ api_only: true
+
field :notify_only_broken_pipelines,
type: :checkbox,
section: Integration::SECTION_TYPE_CONFIGURATION,
+ description: -> { _('Send notifications for broken pipelines.') },
help: 'Do not send notifications for successful pipelines.'
field :branches_to_be_notified,
type: :select,
section: Integration::SECTION_TYPE_CONFIGURATION,
title: -> { s_('Integration|Branches for which notifications are to be sent') },
+ description: -> {
+ _('Branches to send notifications for. Valid options are `all`, `default`, `protected`, ' \
+ 'and `default_and_protected`. The default value is `default`.')
+ },
choices: -> { branch_choices }
field :labels_to_be_notified,
section: Integration::SECTION_TYPE_CONFIGURATION,
+ description: -> { _('Labels to send notifications for. Leave blank to receive notifications for all events.') },
placeholder: '~backend,~frontend',
help: 'Send notifications for issue, merge request, and comment events with the listed labels only. ' \
'Leave blank to receive notifications for all events.'
@@ -34,6 +48,10 @@ module Integrations
field :labels_to_be_notified_behavior,
type: :select,
section: Integration::SECTION_TYPE_CONFIGURATION,
+ description: -> {
+ _('Labels to be notified for. Valid options are `match_any` and `match_all`. ' \
+ 'The default value is `match_any`.')
+ },
choices: [
['Match any of the labels', Integrations::BaseChatNotification::MATCH_ANY_LABEL],
['Match all of the labels', Integrations::BaseChatNotification::MATCH_ALL_LABELS]
diff --git a/app/models/concerns/partitioned_table.rb b/app/models/concerns/partitioned_table.rb
index c322a736e79..8feb162207d 100644
--- a/app/models/concerns/partitioned_table.rb
+++ b/app/models/concerns/partitioned_table.rb
@@ -9,7 +9,8 @@ module PartitionedTable
PARTITIONING_STRATEGIES = {
monthly: Gitlab::Database::Partitioning::MonthlyStrategy,
sliding_list: Gitlab::Database::Partitioning::SlidingListStrategy,
- ci_sliding_list: Gitlab::Database::Partitioning::CiSlidingListStrategy
+ ci_sliding_list: Gitlab::Database::Partitioning::CiSlidingListStrategy,
+ int_range: Gitlab::Database::Partitioning::IntRangeStrategy
}.freeze
def partitioned_by(partitioning_key, strategy:, **kwargs)
diff --git a/app/models/concerns/restricted_signup.rb b/app/models/concerns/restricted_signup.rb
index 87b62214529..8fcf0532151 100644
--- a/app/models/concerns/restricted_signup.rb
+++ b/app/models/concerns/restricted_signup.rb
@@ -31,10 +31,10 @@ module RestrictedSignup
def error_message
{
admin: {
- allowlist: html_escape_once(_("Go to the 'Admin area &gt; Sign-up restrictions', and check 'Allowed domains for sign-ups'.")).html_safe,
- denylist: html_escape_once(_("Go to the 'Admin area &gt; Sign-up restrictions', and check the 'Domain denylist'.")).html_safe,
- restricted: html_escape_once(_("Go to the 'Admin area &gt; Sign-up restrictions', and check 'Email restrictions for sign-ups'.")).html_safe,
- group_setting: html_escape_once(_("Go to the group’s 'Settings &gt; General' page, and check 'Restrict membership by email domain'.")).html_safe
+ allowlist: ERB::Util.html_escape_once(_("Go to the 'Admin area &gt; Sign-up restrictions', and check 'Allowed domains for sign-ups'.")).html_safe,
+ denylist: ERB::Util.html_escape_once(_("Go to the 'Admin area &gt; Sign-up restrictions', and check the 'Domain denylist'.")).html_safe,
+ restricted: ERB::Util.html_escape_once(_("Go to the 'Admin area &gt; Sign-up restrictions', and check 'Email restrictions for sign-ups'.")).html_safe,
+ group_setting: ERB::Util.html_escape_once(_("Go to the group’s 'Settings &gt; General' page, and check 'Restrict membership by email domain'.")).html_safe
},
nonadmin: {
allowlist: error_nonadmin,
diff --git a/app/models/concerns/routable.rb b/app/models/concerns/routable.rb
index 242194be440..43874d0211c 100644
--- a/app/models/concerns/routable.rb
+++ b/app/models/concerns/routable.rb
@@ -87,37 +87,27 @@ module Routable
# Klass.where_full_path_in(%w{gitlab-org/gitlab-foss gitlab-org/gitlab})
#
# Returns an ActiveRecord::Relation.
- def where_full_path_in(paths, use_includes: true)
+ def where_full_path_in(paths, preload_routes: true)
return none if paths.empty?
- wheres = paths.map do |path|
+ path_condition = paths.map do |path|
"(LOWER(routes.path) = LOWER(#{connection.quote(path)}))"
- end
+ end.join(' OR ')
- if Feature.enabled?(:optimize_where_full_path_in, Feature.current_request)
- route_scope = all
- source_type_condition = { source_type: route_scope.klass.base_class }
+ route_scope = all
+ source_type_condition = { source_type: route_scope.klass.base_class }
- routes_matching_condition = Route.where(source_type_condition).where(wheres.join(' OR '))
+ routes_matching_condition = Route
+ .where(source_type_condition)
+ .where(path_condition)
- result = route_scope.where(id: routes_matching_condition.pluck(:source_id))
+ source_ids = routes_matching_condition.pluck(:source_id)
+ result = route_scope.where(id: source_ids)
- if use_includes
- result.preload(:route)
- else
- result
- end
+ if preload_routes
+ result.preload(:route)
else
- route =
- if use_includes
- includes(:route).references(:routes)
- else
- joins(:route)
- end
-
- route
- .where(wheres.join(' OR '))
- .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/420046")
+ result
end
end
end
diff --git a/app/models/container_registry/protection/rule.rb b/app/models/container_registry/protection/rule.rb
index a7324b3b3b8..34d00bdef2f 100644
--- a/app/models/container_registry/protection/rule.rb
+++ b/app/models/container_registry/protection/rule.rb
@@ -19,6 +19,23 @@ module ContainerRegistry
validates :repository_path_pattern, presence: true, uniqueness: { scope: :project_id }, length: { maximum: 255 }
validates :delete_protected_up_to_access_level, presence: true
validates :push_protected_up_to_access_level, presence: true
+
+ scope :for_repository_path, ->(repository_path) do
+ return none if repository_path.blank?
+
+ where(
+ ":repository_path ILIKE #{::Gitlab::SQL::Glob.to_like('repository_path_pattern')}",
+ repository_path: repository_path
+ )
+ end
+
+ def self.for_push_exists?(access_level:, repository_path:)
+ return false if access_level.blank? || repository_path.blank?
+
+ where(push_protected_up_to_access_level: access_level..)
+ .for_repository_path(repository_path)
+ .exists?
+ end
end
end
end
diff --git a/app/models/container_repository.rb b/app/models/container_repository.rb
index 6bcfd23e69c..3b1c10c0259 100644
--- a/app/models/container_repository.rb
+++ b/app/models/container_repository.rb
@@ -482,7 +482,7 @@ class ContainerRepository < ApplicationRecord
raise 'too many pages requested' if page_count >= MAX_TAGS_PAGES
end
- def tags_page(before: nil, last: nil, sort: nil, name: nil, page_size: 100)
+ def tags_page(before: nil, last: nil, sort: nil, name: nil, page_size: 100, referrers: nil)
raise ArgumentError, 'not a migrated repository' unless migrated?
page = gitlab_api_client.tags(
@@ -491,7 +491,8 @@ class ContainerRepository < ApplicationRecord
before: before,
last: last,
sort: sort,
- name: name
+ name: name,
+ referrers: referrers
)
{
@@ -618,12 +619,11 @@ class ContainerRepository < ApplicationRecord
self.new(project: path.repository_project, name: path.repository_name)
end
- def self.find_or_create_from_path(path)
- repository = safe_find_or_create_by(
- project: path.repository_project,
+ def self.find_or_create_from_path!(path)
+ ContainerRepository.upsert({
+ project_id: path.repository_project.id,
name: path.repository_name
- )
- return repository if repository.persisted?
+ }, unique_by: %i[project_id name])
find_by_path!(path)
end
@@ -657,6 +657,8 @@ class ContainerRepository < ApplicationRecord
tag.total_size = raw_tag['size_bytes']
tag.manifest_digest = raw_tag['digest']
tag.revision = raw_tag['config_digest'].to_s.split(':')[1] || ''
+ tag.referrers = raw_tag['referrers']
+ tag.published_at = raw_tag['published_at']
tag
end
end
diff --git a/app/models/deployment.rb b/app/models/deployment.rb
index 36f4a0ef426..1fff089451d 100644
--- a/app/models/deployment.rb
+++ b/app/models/deployment.rb
@@ -9,6 +9,7 @@ class Deployment < ApplicationRecord
include Gitlab::Utils::StrongMemoize
include FastDestroyAll
include IgnorableColumns
+ include EachBatch
StatusUpdateError = Class.new(StandardError)
StatusSyncError = Class.new(StandardError)
@@ -230,7 +231,7 @@ class Deployment < ApplicationRecord
##
# FastDestroyAll concerns
def begin_fast_destroy
- preload(:project).find_each.map do |deployment|
+ preload(:project, :environment).find_each.map do |deployment|
[deployment.project, deployment.ref_path]
end
end
diff --git a/app/models/group.rb b/app/models/group.rb
index ac843f392fd..bbf34ce21c0 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -37,8 +37,8 @@ class Group < Namespace
has_many :all_group_members, -> { non_request }, dependent: :destroy, as: :source, class_name: 'GroupMember' # rubocop:disable Cop/ActiveRecordDependent
has_many :all_owner_members, -> { non_request.all_owners }, as: :source, class_name: 'GroupMember'
- has_many :group_members, -> { non_request.where.not(members: { access_level: Gitlab::Access::MINIMAL_ACCESS }) }, dependent: :destroy, as: :source # rubocop:disable Cop/ActiveRecordDependent
- has_many :namespace_members, -> { non_request.where.not(members: { access_level: Gitlab::Access::MINIMAL_ACCESS }).unscope(where: %i[source_id source_type]) },
+ has_many :group_members, -> { non_request.non_minimal_access }, dependent: :destroy, as: :source # rubocop:disable Cop/ActiveRecordDependent
+ has_many :namespace_members, -> { non_request.non_minimal_access.unscope(where: %i[source_id source_type]) },
foreign_key: :member_namespace_id, inverse_of: :group, class_name: 'GroupMember'
alias_method :members, :group_members
@@ -338,6 +338,18 @@ class Group < Namespace
by_ids_or_paths(ids, paths).pluck(:id)
end
+ def descendant_groups_counts
+ left_joins(:children).group(:id).count(:children_namespaces)
+ end
+
+ def projects_counts
+ left_joins(:non_archived_projects).group(:id).count(:projects)
+ end
+
+ def group_members_counts
+ left_joins(:group_members).group(:id).count(:members)
+ end
+
private
def public_to_user_arel(user)
@@ -434,7 +446,9 @@ class Group < Namespace
end
def owned_by?(user)
- owners.include?(user)
+ return false unless user
+
+ all_owner_members.non_invite.exists?(user: user)
end
def add_members(users, access_level, current_user: nil, expires_at: nil)
@@ -593,6 +607,14 @@ class Group < Namespace
end
end
+ # Only for direct and not requested members with higher access level than MIMIMAL_ACCESS
+ # It returns true for non-active users
+ def has_user?(user)
+ return false unless user
+
+ group_members.non_invite.exists?(user: user)
+ end
+
def direct_members
GroupMember.active_without_invites_and_requests
.non_minimal_access
@@ -685,7 +707,11 @@ class Group < Namespace
end
def highest_group_member(user)
- GroupMember.where(source_id: self_and_ancestors_ids, user_id: user.id).order(:access_level).last
+ GroupMember
+ .where(source_id: self_and_ancestors_ids, user_id: user.id)
+ .non_request
+ .order(:access_level)
+ .last
end
def bots
diff --git a/app/models/integration.rb b/app/models/integration.rb
index 618f9f986e8..8ebf24b1663 100644
--- a/app/models/integration.rb
+++ b/app/models/integration.rb
@@ -19,8 +19,8 @@ class Integration < ApplicationRecord
self.inheritance_column = :type_new
INTEGRATION_NAMES = %w[
- asana assembla bamboo bugzilla buildkite campfire clickup confluence custom_issue_tracker datadog discord
- drone_ci emails_on_push ewm external_wiki hangouts_chat harbor irker jira
+ asana assembla bamboo bugzilla buildkite campfire clickup confluence custom_issue_tracker
+ datadog diffblue_cover discord drone_ci emails_on_push ewm external_wiki hangouts_chat harbor irker jira
mattermost mattermost_slash_commands microsoft_teams packagist pipelines_email
pivotaltracker prometheus pumble pushover redmine slack slack_slash_commands squash_tm teamcity telegram
unify_circuit webex_teams youtrack zentao
@@ -638,7 +638,9 @@ class Integration < ApplicationRecord
end
def validate_belongs_to_project_or_group
- errors.add(:project_id, 'The service cannot belong to both a project and a group') if project_level? && group_level?
+ return unless project_level? && group_level?
+
+ errors.add(:project_id, 'The integration cannot belong to both a project and a group')
end
def validate_recipients?
diff --git a/app/models/integrations/apple_app_store.rb b/app/models/integrations/apple_app_store.rb
index a248a1aa561..152bcf934ae 100644
--- a/app/models/integrations/apple_app_store.rb
+++ b/app/models/integrations/apple_app_store.rb
@@ -45,7 +45,7 @@ module Integrations
section: SECTION_TYPE_CONFIGURATION,
title: -> { s_('AppleAppStore|Protected branches and tags only') },
description: -> { s_('AppleAppStore|Set variables on protected branches and tags only.') },
- checkbox_label: -> { s_('AppleAppStore|Set variables on protected branches and tags only.') }
+ checkbox_label: -> { s_('AppleAppStore|Set variables on protected branches and tags only') }
def self.title
'Apple App Store Connect'
diff --git a/app/models/integrations/bamboo.rb b/app/models/integrations/bamboo.rb
index 9fe73f86be3..1c68d09aa2f 100644
--- a/app/models/integrations/bamboo.rb
+++ b/app/models/integrations/bamboo.rb
@@ -8,12 +8,14 @@ module Integrations
field :bamboo_url,
title: -> { s_('BambooService|Bamboo URL') },
placeholder: -> { s_('https://bamboo.example.com') },
- help: -> { s_('BambooService|Bamboo service root URL.') },
+ help: -> { s_('BambooService|Bamboo root URL.') },
+ description: -> { s_('Bamboo root URL (for example, `https://bamboo.example.com`).') },
exposes_secrets: true,
required: true
field :build_key,
help: -> { s_('BambooService|Bamboo build plan key.') },
+ description: -> { s_('Bamboo build plan key (for example, `KEY`).') },
non_empty_password_title: -> { s_('BambooService|Enter new build key') },
non_empty_password_help: -> { s_('BambooService|Leave blank to use your current build key.') },
placeholder: -> { _('KEY') },
@@ -21,12 +23,16 @@ module Integrations
is_secret: true
field :username,
- help: -> { s_('BambooService|The user with API access to the Bamboo server.') }
+ help: -> { s_('BambooService|User with API access to the Bamboo server.') },
+ description: -> { s_('User with API access to the Bamboo server.') },
+ required: true
field :password,
type: :password,
non_empty_password_title: -> { s_('ProjectService|Enter new password') },
- non_empty_password_help: -> { s_('ProjectService|Leave blank to use your current password') }
+ non_empty_password_help: -> { s_('ProjectService|Leave blank to use your current password') },
+ description: -> { s_('Password of the user.') },
+ required: true
with_options if: :activated? do
validates :bamboo_url, presence: true, public_url: true
diff --git a/app/models/integrations/campfire.rb b/app/models/integrations/campfire.rb
index 18268ed18f4..783311ca18d 100644
--- a/app/models/integrations/campfire.rb
+++ b/app/models/integrations/campfire.rb
@@ -15,6 +15,9 @@ module Integrations
field :token,
type: :password,
title: -> { _('Campfire token') },
+ description: -> do
+ _('API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**.')
+ end,
help: -> { s_('CampfireService|API authentication token from Campfire.') },
non_empty_password_title: -> { s_('ProjectService|Enter new token') },
non_empty_password_help: -> { s_('ProjectService|Leave blank to use your current token.') },
@@ -23,18 +26,22 @@ module Integrations
field :subdomain,
title: -> { _('Campfire subdomain (optional)') },
+ description: -> do
+ _("`.campfirenow.com` subdomain when you're signed in.")
+ end,
placeholder: '',
exposes_secrets: true,
help: -> do
format(ERB::Util.html_escape(
- s_('CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain.')
+ s_('CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain.')
), code_open: '<code>'.html_safe, code_close: '</code>'.html_safe)
end
field :room,
title: -> { _('Campfire room ID (optional)') },
+ description: -> { _("ID portion of the Campfire room URL.") },
placeholder: '123456',
- help: -> { s_('CampfireService|From the end of the room URL.') }
+ help: -> { s_('CampfireService|ID portion of the Campfire room URL.') }
def self.title
'Campfire'
diff --git a/app/models/integrations/clickup.rb b/app/models/integrations/clickup.rb
index 25287b53300..1737aa7ff61 100644
--- a/app/models/integrations/clickup.rb
+++ b/app/models/integrations/clickup.rb
@@ -32,8 +32,8 @@ module Integrations
'clickup'
end
- def fields
- super.select { _1.name.in?(%w[project_url issues_url]) }
+ def self.fields
+ super.select { %w[project_url issues_url].include?(_1.name) }
end
end
end
diff --git a/app/models/integrations/confluence.rb b/app/models/integrations/confluence.rb
index f97f1fd25c9..fcdc908ca67 100644
--- a/app/models/integrations/confluence.rb
+++ b/app/models/integrations/confluence.rb
@@ -10,7 +10,8 @@ module Integrations
validate :validate_confluence_url_is_cloud, if: :activated?
field :confluence_url,
- title: -> { _('Confluence Cloud Workspace URL') },
+ title: -> { _('Confluence Workspace URL') },
+ description: -> { _("URL of the Confluence Workspace hosted on `atlassian.net`.") },
placeholder: 'https://example.atlassian.net/wiki',
required: true
diff --git a/app/models/integrations/diffblue_cover.rb b/app/models/integrations/diffblue_cover.rb
new file mode 100644
index 00000000000..c0e0cae2b33
--- /dev/null
+++ b/app/models/integrations/diffblue_cover.rb
@@ -0,0 +1,126 @@
+# frozen_string_literal: true
+
+module Integrations
+ class DiffblueCover < Integration
+ field :diffblue_license_key,
+ section: SECTION_TYPE_CONNECTION,
+ type: :password,
+ title: -> { s_('DiffblueCover|License key') },
+ description: -> { s_('DiffblueCover|Diffblue Cover license key.') },
+ non_empty_password_title: -> { s_('DiffblueCover|License key') },
+ non_empty_password_help: -> {
+ s_(
+ 'DiffblueCover|Leave blank to use your current license key.'
+ )
+ },
+ exposes_secrets: true,
+ required: true,
+ is_secret: true,
+ placeholder: 'XXXX-XXXX-XXXX-XXXX',
+ help: -> {
+ format(
+ s_(
+ 'DiffblueCover|Enter your Diffblue Cover license key or ' \
+ 'go to %{diffblue_link} to obtain a free trial license.'
+ ),
+ diffblue_link: diffblue_link
+ )
+ }
+
+ field :diffblue_access_token_name,
+ section: SECTION_TYPE_CONFIGURATION,
+ title: -> { s_('DiffblueCover|Name') },
+ description: -> { s_('DiffblueCover|Access token name used by Diffblue Cover in pipelines.') },
+ required: true,
+ placeholder: -> { s_('DiffblueCover|My token name') }
+
+ field :diffblue_access_token_secret,
+ section: SECTION_TYPE_CONFIGURATION,
+ type: :password,
+ title: -> { s_('DiffblueCover|Secret') },
+ description: -> { s_('DiffblueCover|Access token secret used by Diffblue Cover in pipelines.') },
+ non_empty_password_title: -> { s_('DiffblueCover|Secret') },
+ non_empty_password_help: -> { s_('DiffblueCover|Leave blank to use your current secret value.') },
+ required: true,
+ is_secret: true,
+ placeholder: 'glpat-XXXXXXXXXXXXXXXXXXXX' # gitleaks:allow
+
+ with_options if: :activated? do
+ validates :diffblue_license_key, presence: true
+ validates :diffblue_access_token_name, presence: true
+ validates :diffblue_access_token_secret, presence: true
+ end
+
+ def self.title
+ 'Diffblue Cover'
+ end
+
+ def self.description
+ s_('DiffblueCover|Automatically write comprehensive, human-like Java unit tests.')
+ end
+
+ def self.to_param
+ 'diffblue_cover'
+ end
+
+ def self.help
+ s_('DiffblueCover|Automatically write comprehensive, human-like Java unit tests.')
+ end
+
+ def avatar_url
+ ActionController::Base.helpers.image_path('illustrations/third-party-logos/integrations-logos/diffblue.svg')
+ end
+
+ def self.supported_events
+ []
+ end
+
+ def sections
+ [
+ {
+ type: SECTION_TYPE_CONNECTION,
+ title: s_('DiffblueCover|Integration details'),
+ description:
+ s_(
+ 'DiffblueCover|Diffblue Cover is a generative AI platform that automatically ' \
+ 'writes comprehensive, human-like Java unit tests. Integrate Diffblue ' \
+ 'Cover into your CI/CD workflow for fully autonomous operation.'
+ )
+ },
+ {
+ type: SECTION_TYPE_CONFIGURATION,
+ title: s_('DiffblueCover|Access token'),
+ description:
+ 'You must have a GitLab access token for Diffblue Cover to access your project. ' \
+ 'Use a GitLab access token with at least the Developer role and ' \
+ 'the <code>api</code> and <code>write_repository</code> permissions.'
+ }
+ ]
+ end
+
+ def execute(_data) end
+
+ def ci_variables
+ return [] unless activated?
+
+ [
+ { key: 'DIFFBLUE_LICENSE_KEY', value: diffblue_license_key, public: false, masked: true },
+ { key: 'DIFFBLUE_ACCESS_TOKEN_NAME', value: diffblue_access_token_name, public: false, masked: true },
+ { key: 'DIFFBLUE_ACCESS_TOKEN', value: diffblue_access_token_secret, public: false, masked: true }
+ ]
+ end
+
+ def testable?
+ false
+ end
+
+ def self.diffblue_link
+ ActionController::Base.helpers.link_to(
+ s_('DiffblueCover|Try Diffblue Cover'),
+ 'https://www.diffblue.com/try-cover/gitlab/',
+ target: '_blank',
+ rel: 'noopener noreferrer'
+ )
+ end
+ end
+end
diff --git a/app/models/integrations/discord.rb b/app/models/integrations/discord.rb
index 7ce597389f0..f36170f91d0 100644
--- a/app/models/integrations/discord.rb
+++ b/app/models/integrations/discord.rb
@@ -8,17 +8,20 @@ module Integrations
field :webhook,
section: SECTION_TYPE_CONNECTION,
+ description: -> { _('Discord webhook (for example, `https://discord.com/api/webhooks/…`).') },
help: 'e.g. https://discord.com/api/webhooks/…',
required: true
field :notify_only_broken_pipelines,
type: :checkbox,
- section: SECTION_TYPE_CONFIGURATION
+ section: SECTION_TYPE_CONFIGURATION,
+ description: -> { _('Send notifications for broken pipelines.') }
field :branches_to_be_notified,
type: :select,
section: SECTION_TYPE_CONFIGURATION,
title: -> { s_('Integrations|Branches for which notifications are to be sent') },
+ description: -> { _('Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`.') },
choices: -> { branch_choices }
def self.title
diff --git a/app/models/integrations/external_wiki.rb b/app/models/integrations/external_wiki.rb
index 7408f86d231..e5360e58426 100644
--- a/app/models/integrations/external_wiki.rb
+++ b/app/models/integrations/external_wiki.rb
@@ -7,6 +7,7 @@ module Integrations
field :external_wiki_url,
section: SECTION_TYPE_CONNECTION,
title: -> { s_('ExternalWikiService|External wiki URL') },
+ description: -> { s_('ExternalWikiService|URL of the external wiki.') },
placeholder: -> { s_('ExternalWikiService|https://example.com/xxx/wiki/...') },
help: -> { s_('ExternalWikiService|Enter the URL to the external wiki.') },
required: true
diff --git a/app/models/integrations/google_play.rb b/app/models/integrations/google_play.rb
index 746f68fdc4c..1d6d563e37f 100644
--- a/app/models/integrations/google_play.rb
+++ b/app/models/integrations/google_play.rb
@@ -18,19 +18,25 @@ module Integrations
field :package_name,
section: SECTION_TYPE_CONNECTION,
placeholder: 'com.example.myapp',
+ description: -> { _('Package name of the app in Google Play.') },
required: true
field :service_account_key_file_name,
section: SECTION_TYPE_CONNECTION,
- required: true
+ required: true,
+ description: -> { _('File name of the Google Play service account key.') }
- field :service_account_key, api_only: true
+ field :service_account_key,
+ required: true,
+ description: -> { _('Google Play service account key.') },
+ api_only: true
field :google_play_protected_refs,
type: :checkbox,
section: SECTION_TYPE_CONFIGURATION,
title: -> { s_('GooglePlayStore|Protected branches and tags only') },
- checkbox_label: -> { s_('GooglePlayStore|Only set variables on protected branches and tags') }
+ description: -> { _('Set variables on protected branches and tags only.') },
+ checkbox_label: -> { s_('GooglePlayStore|Set variables on protected branches and tags only') }
def self.title
s_('GooglePlay|Google Play')
@@ -48,10 +54,10 @@ module Integrations
# rubocop:disable Layout/LineLength
texts = [
- s_("Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."),
- s_("After you enable the integration, the following protected variable is created for CI/CD use:"),
+ s_("Use this integration to connect to Google Play with fastlane in CI/CD pipelines."),
+ s_("After you enable the integration, the following protected variables are created for CI/CD use:"),
variable_list.join('<br>'),
- s_(format("To generate a Google Play service account key and use this integration, see the <a href='%{url}' target='_blank'>integration documentation</a>.", url: Rails.application.routes.url_helpers.help_page_url('user/project/integrations/google_play'))).html_safe
+ s_(format("For more information, see the <a href='%{url}' target='_blank'>documentation</a>.", url: Rails.application.routes.url_helpers.help_page_url('user/project/integrations/google_play'))).html_safe
]
# rubocop:enable Layout/LineLength
diff --git a/app/models/integrations/harbor.rb b/app/models/integrations/harbor.rb
index cc570e49e36..a1621588cd6 100644
--- a/app/models/integrations/harbor.rb
+++ b/app/models/integrations/harbor.rb
@@ -10,6 +10,7 @@ module Integrations
field :url,
title: -> { s_('HarborIntegration|Harbor URL') },
+ description: -> { _('The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`.') },
placeholder: 'https://demo.goharbor.io',
help: -> { s_('HarborIntegration|Base URL of the Harbor instance.') },
exposes_secrets: true,
@@ -17,16 +18,19 @@ module Integrations
field :project_name,
title: -> { s_('HarborIntegration|Harbor project name') },
+ description: -> { s_('HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`.') },
help: -> { s_('HarborIntegration|The name of the project in Harbor.') },
required: true
field :username,
title: -> { s_('HarborIntegration|Harbor username') },
+ description: -> { s_('HarborIntegration|The username created in the Harbor interface.') },
required: true
field :password,
type: :password,
title: -> { s_('HarborIntegration|Harbor password') },
+ description: -> { s_('HarborIntegration|The password of the user.') },
help: -> { s_('HarborIntegration|Password for your Harbor username.') },
non_empty_password_title: -> { s_('HarborIntegration|Enter new Harbor password') },
non_empty_password_help: -> { s_('HarborIntegration|Leave blank to use your current password.') },
diff --git a/app/models/integrations/mattermost.rb b/app/models/integrations/mattermost.rb
index 361ff4afce8..e7be2b2a454 100644
--- a/app/models/integrations/mattermost.rb
+++ b/app/models/integrations/mattermost.rb
@@ -27,7 +27,7 @@ module Integrations
end
def self.webhook_help
- 'http://mattermost.example.com/hooks/'
+ 'http://mattermost.example.com/hooks/...'
end
override :configurable_channels?
diff --git a/app/models/integrations/mattermost_slash_commands.rb b/app/models/integrations/mattermost_slash_commands.rb
index 29ed563a902..dcbda8d1ed0 100644
--- a/app/models/integrations/mattermost_slash_commands.rb
+++ b/app/models/integrations/mattermost_slash_commands.rb
@@ -8,8 +8,10 @@ module Integrations
field :token,
type: :password,
+ description: -> { _('The Mattermost token.') },
non_empty_password_title: -> { s_('ProjectService|Enter new token') },
non_empty_password_help: -> { s_('ProjectService|Leave blank to use your current token.') },
+ required: true,
placeholder: ''
def testable?
diff --git a/app/models/integrations/slack.rb b/app/models/integrations/slack.rb
index 9f9614a84fd..0c1fd34fccf 100644
--- a/app/models/integrations/slack.rb
+++ b/app/models/integrations/slack.rb
@@ -18,7 +18,7 @@ module Integrations
end
def self.webhook_help
- 'https://hooks.slack.com/services/…'
+ 'https://hooks.slack.com/services/...'
end
private
diff --git a/app/models/integrations/squash_tm.rb b/app/models/integrations/squash_tm.rb
index 1b4ab152b1d..7aaef0c22cc 100644
--- a/app/models/integrations/squash_tm.rb
+++ b/app/models/integrations/squash_tm.rb
@@ -7,12 +7,14 @@ module Integrations
field :url,
placeholder: 'https://your-instance.squashcloud.io/squash/plugin/xsquash4gitlab/webhook/issue',
title: -> { s_('SquashTmIntegration|Squash TM webhook URL') },
+ description: -> { s_('URL of the Squash TM webhook.') },
exposes_secrets: true,
required: true
field :token,
type: :password,
title: -> { s_('SquashTmIntegration|Secret token (optional)') },
+ description: -> { s_('Secret token.') },
non_empty_password_title: -> { s_('ProjectService|Enter new token') },
non_empty_password_help: -> { s_('ProjectService|Leave blank to use your current token.') },
required: false
diff --git a/app/models/integrations/youtrack.rb b/app/models/integrations/youtrack.rb
index 932e588a829..4d825adb961 100644
--- a/app/models/integrations/youtrack.rb
+++ b/app/models/integrations/youtrack.rb
@@ -31,8 +31,8 @@ module Integrations
'youtrack'
end
- def fields
- super.select { _1.name.in?(%w[project_url issues_url]) }
+ def self.fields
+ super.select { %w[project_url issues_url].include?(_1.name) }
end
end
end
diff --git a/app/models/issue_email_participant.rb b/app/models/issue_email_participant.rb
index 9d7e2afa1d9..bb03b3d72e6 100644
--- a/app/models/issue_email_participant.rb
+++ b/app/models/issue_email_participant.rb
@@ -3,6 +3,7 @@
class IssueEmailParticipant < ApplicationRecord
include BulkInsertSafe
include Presentable
+ include CaseSensitivity
belongs_to :issue
@@ -10,6 +11,8 @@ class IssueEmailParticipant < ApplicationRecord
validates :issue, presence: true
validate :validate_email_format
+ scope :with_emails, ->(emails) { iwhere(email: emails) }
+
def validate_email_format
self.errors.add(:email, I18n.t(:invalid, scope: 'valid_email.validations.email')) unless ValidateEmail.valid?(self.email)
end
diff --git a/app/models/jira_connect_subscription.rb b/app/models/jira_connect_subscription.rb
index c74f75b2d8e..8ff89560f09 100644
--- a/app/models/jira_connect_subscription.rb
+++ b/app/models/jira_connect_subscription.rb
@@ -8,5 +8,5 @@ class JiraConnectSubscription < ApplicationRecord
validates :namespace, presence: true, uniqueness: { scope: :jira_connect_installation_id, message: 'has already been added' }
scope :preload_namespace_route, -> { preload(namespace: :route) }
- scope :for_project, -> (project) { where(namespace_id: project.namespace.self_and_ancestors) }
+ scope :for_project, -> (project) { where(namespace_id: project.namespace.self_and_ancestor_ids) }
end
diff --git a/app/models/label.rb b/app/models/label.rb
index d0d278b68fd..8fff42abd58 100644
--- a/app/models/label.rb
+++ b/app/models/label.rb
@@ -46,7 +46,6 @@ class Label < ApplicationRecord
scope :with_lists_and_board, -> { joins(lists: :board).merge(List.movable) }
scope :with_lock_on_merge, -> { where(lock_on_merge: true) }
scope :on_project_boards, ->(project_id) { with_lists_and_board.where(boards: { project_id: project_id }) }
- scope :on_board, ->(board_id) { with_lists_and_board.where(boards: { id: board_id }) }
scope :order_name_asc, -> { reorder(title: :asc) }
scope :order_name_desc, -> { reorder(title: :desc) }
scope :subscribed_by, ->(user_id) { joins(:subscriptions).where(subscriptions: { user_id: user_id, subscribed: true }) }
@@ -152,10 +151,6 @@ class Label < ApplicationRecord
nil
end
- def self.ids_on_board(board_id)
- on_board(board_id).pluck(:label_id)
- end
-
# Searches for labels with a matching title or description.
#
# This method uses ILIKE on PostgreSQL.
diff --git a/app/models/member.rb b/app/models/member.rb
index 25dae518406..8bec64932b3 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -276,9 +276,11 @@ class Member < ApplicationRecord
after_create :send_invite, if: :invite?, unless: :importing?
after_create :create_notification_setting, unless: [:pending?, :importing?]
after_create :post_create_hook, unless: [:pending?, :importing?], if: :hook_prerequisites_met?
+ after_create :update_two_factor_requirement, unless: :invite?
after_update :post_update_hook, unless: [:pending?, :importing?], if: :hook_prerequisites_met?
after_destroy :destroy_notification_setting
after_destroy :post_destroy_hook, unless: :pending?, if: :hook_prerequisites_met?
+ after_destroy :update_two_factor_requirement, unless: :invite?
after_save :log_invitation_token_cleanup
after_commit :send_request, if: :request?, unless: :importing?, on: [:create]
@@ -286,6 +288,14 @@ class Member < ApplicationRecord
refresh_member_authorized_projects
end
+ after_create if: :update_organization_user? do
+ Organizations::OrganizationUser.upsert(
+ { organization_id: source.organization_id, user_id: user_id, access_level: :default },
+ unique_by: [:organization_id, :user_id],
+ on_duplicate: :skip # Do not change access_level, could make :owner :default
+ )
+ end
+
attribute :notification_level, default: -> { NotificationSetting.levels[:global] }
class << self
@@ -486,7 +496,10 @@ class Member < ApplicationRecord
strong_memoize(:highest_group_member) do
next unless user_id && source&.ancestors&.any?
- GroupMember.where(source: source.ancestors, user_id: user_id).order(:access_level).last
+ GroupMember
+ .where(source: source.ancestors, user_id: user_id)
+ .non_request
+ .order(:access_level).last
end
end
@@ -498,6 +511,17 @@ class Member < ApplicationRecord
created_by&.name
end
+ def update_two_factor_requirement
+ return unless source.is_a?(Group)
+ return unless user
+
+ Gitlab::Database::QueryAnalyzers::PreventCrossDatabaseModification.temporary_ignore_tables_in_transaction(
+ %w[users user_details user_preferences], url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/424288'
+ ) do
+ user.update_two_factor_requirement
+ end
+ end
+
private
# TODO: https://gitlab.com/groups/gitlab-org/-/epics/7054
@@ -513,7 +537,7 @@ class Member < ApplicationRecord
end
def send_invite
- # override in subclass
+ run_after_commit_or_now { notification_service.invite_member(self, @raw_invite_token) }
end
def send_request
@@ -522,10 +546,26 @@ class Member < ApplicationRecord
end
def post_create_hook
+ # The creator of a personal project gets added as a `ProjectMember`
+ # with `OWNER` access during creation of a personal project,
+ # but we do not want to trigger notifications to the same person who created the personal project.
+ unless source.is_a?(Project) && source.personal_namespace_holder?(user)
+ event_service.join_source(source, user)
+ run_after_commit_or_now { notification_service.new_member(self) }
+ end
+
system_hook_service.execute_hooks_for(self, :create)
end
def post_update_hook
+ if saved_change_to_access_level?
+ run_after_commit { notification_service.updated_member_access_level(self) }
+ end
+
+ if saved_change_to_expires_at?
+ run_after_commit { notification_service.updated_member_expiration(self) }
+ end
+
system_hook_service.execute_hooks_for(self, :update)
end
@@ -548,6 +588,12 @@ class Member < ApplicationRecord
# rubocop: enable CodeReuse/ServiceClass
def after_accept_invite
+ run_after_commit_or_now do
+ notification_service.accept_invite(self)
+ end
+
+ update_two_factor_requirement
+
post_create_hook
end
@@ -578,7 +624,12 @@ class Member < ApplicationRecord
# rubocop: enable CodeReuse/ServiceClass
def notifiable_options
- {}
+ case source
+ when Group
+ { group: source }
+ when Project
+ { project: source }
+ end
end
def higher_access_level_than_group
@@ -617,12 +668,22 @@ class Member < ApplicationRecord
user&.project_bot?
end
+ def update_organization_user?
+ return false unless Feature.enabled?(:update_organization_users, source.root_ancestor, type: :gitlab_com_derisk)
+
+ !invite? && source.organization.present?
+ end
+
def log_invitation_token_cleanup
return true unless Gitlab.com? && invite? && invite_accepted_at?
error = StandardError.new("Invitation token is present but invite was already accepted!")
Gitlab::ErrorTracking.track_exception(error, attributes.slice(%w["invite_accepted_at created_at source_type source_id user_id id"]))
end
+
+ def event_service
+ EventCreateService.new # rubocop:todo CodeReuse/ServiceClass -- Legacy, convert to value object eventually
+ end
end
Member.prepend_mod_with('Member')
diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb
index e3ead1b04d0..b04fb1f6768 100644
--- a/app/models/members/group_member.rb
+++ b/app/models/members/group_member.rb
@@ -18,25 +18,12 @@ class GroupMember < Member
default_scope { where(source_type: SOURCE_TYPE) } # rubocop:disable Cop/DefaultScope
- scope :of_groups, ->(groups) { where(source_id: groups&.select(:id)) }
+ scope :of_groups, ->(groups) { where(source_id: groups) }
scope :of_ldap_type, -> { where(ldap: true) }
scope :count_users_by_group_id, -> { group(:source_id).count }
- after_create :update_two_factor_requirement, unless: :invite?
- after_destroy :update_two_factor_requirement, unless: :invite?
-
attr_accessor :last_owner
- def update_two_factor_requirement
- return unless user
-
- Gitlab::Database::QueryAnalyzers::PreventCrossDatabaseModification.temporary_ignore_tables_in_transaction(
- %w[users user_details user_preferences], url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/424288'
- ) do
- user.update_two_factor_requirement
- end
- end
-
# For those who get to see a modal with a role dropdown, here are the options presented
def self.permissible_access_level_roles(_, _)
# This method is a stopgap in preparation for https://gitlab.com/gitlab-org/gitlab/-/issues/364087
@@ -56,10 +43,6 @@ class GroupMember < Member
Group.sti_name
end
- def notifiable_options
- { group: group }
- end
-
def last_owner_of_the_group?
return false unless access_level == Gitlab::Access::OWNER
return last_owner unless last_owner.nil?
@@ -87,40 +70,6 @@ class GroupMember < Member
super
end
-
- def send_invite
- run_after_commit_or_now { notification_service.invite_group_member(self, @raw_invite_token) }
-
- super
- end
-
- def post_create_hook
- run_after_commit_or_now { notification_service.new_group_member(self) }
-
- super
- end
-
- def post_update_hook
- if saved_change_to_access_level?
- run_after_commit { notification_service.update_group_member(self) }
- end
-
- if saved_change_to_expires_at?
- run_after_commit { notification_service.updated_group_member_expiration(self) }
- end
-
- super
- end
-
- def after_accept_invite
- run_after_commit_or_now do
- notification_service.accept_group_invite(self)
- end
-
- update_two_factor_requirement
-
- super
- end
end
GroupMember.prepend_mod_with('GroupMember')
diff --git a/app/models/members/project_member.rb b/app/models/members/project_member.rb
index f52fef9e247..a2927238e54 100644
--- a/app/models/members/project_member.rb
+++ b/app/models/members/project_member.rb
@@ -72,10 +72,6 @@ class ProjectMember < Member
source
end
- def notifiable_options
- { project: project }
- end
-
def holder_of_the_personal_namespace?
project.personal_namespace_holder?(user)
end
@@ -116,32 +112,6 @@ class ProjectMember < Member
self.member_namespace_id = project&.project_namespace_id
end
- def send_invite
- run_after_commit_or_now { notification_service.invite_project_member(self, @raw_invite_token) }
-
- super
- end
-
- def post_create_hook
- # The creator of a personal project gets added as a `ProjectMember`
- # with `OWNER` access during creation of a personal project,
- # but we do not want to trigger notifications to the same person who created the personal project.
- unless project.personal_namespace_holder?(user)
- event_service.join_project(self.project, self.user)
- run_after_commit_or_now { notification_service.new_project_member(self) }
- end
-
- super
- end
-
- def post_update_hook
- if saved_change_to_access_level?
- run_after_commit { notification_service.update_project_member(self) }
- end
-
- super
- end
-
def post_destroy_hook
if expired?
event_service.expired_leave_project(self.project, self.user)
@@ -151,20 +121,6 @@ class ProjectMember < Member
super
end
-
- def after_accept_invite
- run_after_commit_or_now do
- notification_service.accept_project_invite(self)
- end
-
- super
- end
-
- # rubocop: disable CodeReuse/ServiceClass
- def event_service
- EventCreateService.new
- end
- # rubocop: enable CodeReuse/ServiceClass
end
ProjectMember.prepend_mod_with('ProjectMember')
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index f9af342f47f..ae68a36c8d2 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -1716,8 +1716,6 @@ class MergeRequest < ApplicationRecord
actual_head_pipeline&.complete_and_has_reports?(Ci::JobArtifact.of_report_type(:test))
end
- # rubocop: disable Metrics/AbcSize
- # Delete a rubocop annotation once FF truncate_ci_merge_request_description is cleaned up
def predefined_variables
Gitlab::Ci::Variables::Collection.new.tap do |variables|
variables.append(key: 'CI_MERGE_REQUEST_ID', value: id.to_s)
@@ -1730,14 +1728,9 @@ class MergeRequest < ApplicationRecord
variables.append(key: 'CI_MERGE_REQUEST_TARGET_BRANCH_PROTECTED', value: ProtectedBranch.protected?(target_project, target_branch).to_s)
variables.append(key: 'CI_MERGE_REQUEST_TITLE', value: title)
- if ::Feature.enabled?(:truncate_ci_merge_request_description)
- mr_description, mr_description_truncated = truncate_mr_description
- variables.append(key: 'CI_MERGE_REQUEST_DESCRIPTION', value: mr_description)
- variables.append(key: 'CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED', value: mr_description_truncated)
- else
- variables.append(key: 'CI_MERGE_REQUEST_DESCRIPTION', value: description)
- end
-
+ mr_description, mr_description_truncated = truncate_mr_description
+ variables.append(key: 'CI_MERGE_REQUEST_DESCRIPTION', value: mr_description)
+ variables.append(key: 'CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED', value: mr_description_truncated)
variables.append(key: 'CI_MERGE_REQUEST_ASSIGNEES', value: assignee_username_list) if assignees.present?
variables.append(key: 'CI_MERGE_REQUEST_MILESTONE', value: milestone.title) if milestone
variables.append(key: 'CI_MERGE_REQUEST_LABELS', value: label_names.join(',')) if labels.present?
@@ -1745,8 +1738,6 @@ class MergeRequest < ApplicationRecord
variables.concat(source_project_variables)
end
end
- # rubocop: enable Metrics/AbcSize
- # Delete a rubocop annotation once FF truncate_ci_merge_request_description is cleaned up
def compare_test_reports
unless has_test_reports?
@@ -2102,8 +2093,12 @@ class MergeRequest < ApplicationRecord
true
end
+ def allows_multiple_assignees?
+ project.allows_multiple_merge_request_assignees?
+ end
+
def allows_multiple_reviewers?
- false
+ project.allows_multiple_merge_request_reviewers?
end
def supports_assignee?
@@ -2198,6 +2193,8 @@ class MergeRequest < ApplicationRecord
attr_accessor :skip_fetch_ref
def merge_base_pipelines
+ return ::Ci::Pipeline.none unless actual_head_pipeline&.target_sha
+
target_branch_pipelines_for(sha: actual_head_pipeline.target_sha)
end
diff --git a/app/models/merge_request/metrics.rb b/app/models/merge_request/metrics.rb
index 3c592c0008f..6d6c0ee07af 100644
--- a/app/models/merge_request/metrics.rb
+++ b/app/models/merge_request/metrics.rb
@@ -1,8 +1,6 @@
# frozen_string_literal: true
class MergeRequest::Metrics < ApplicationRecord
- include DatabaseEventTracking
-
belongs_to :merge_request, inverse_of: :metrics
belongs_to :pipeline, class_name: 'Ci::Pipeline', foreign_key: :pipeline_id
belongs_to :latest_closed_by, class_name: 'User'
@@ -33,8 +31,7 @@ class MergeRequest::Metrics < ApplicationRecord
RETURNING id, #{inserted_columns.join(', ')}
SQL
- result = connection.execute(sql).first
- new(result).publish_database_create_event
+ connection.execute(sql)
end
end
@@ -48,31 +45,6 @@ class MergeRequest::Metrics < ApplicationRecord
with_valid_time_to_merge
.pick(time_to_merge_expression)
end
-
- SNOWPLOW_ATTRIBUTES = %i[
- id
- merge_request_id
- latest_build_started_at
- latest_build_finished_at
- first_deployed_to_production_at
- merged_at
- created_at
- updated_at
- pipeline_id
- merged_by_id
- latest_closed_by_id
- latest_closed_at
- first_comment_at
- first_commit_at
- last_commit_at
- diff_size
- modified_paths_size
- commits_count
- first_approved_at
- first_reassigned_at
- added_lines
- removed_lines
- ].freeze
end
MergeRequest::Metrics.prepend_mod_with('MergeRequest::Metrics')
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb
index 0b183131a47..47102418152 100644
--- a/app/models/merge_request_diff.rb
+++ b/app/models/merge_request_diff.rb
@@ -196,6 +196,7 @@ class MergeRequestDiff < ApplicationRecord
# It allows you to override variables like head_commit_sha before getting diff.
after_create :save_git_content, unless: :importing?
after_create_commit :set_as_latest_diff, unless: :importing?
+ after_create_commit :trigger_diff_generated_subscription, unless: :importing?
after_save :update_external_diff_store
after_save :set_count_columns
@@ -258,6 +259,12 @@ class MergeRequestDiff < ApplicationRecord
.update_all(latest_merge_request_diff_id: self.id)
end
+ def trigger_diff_generated_subscription
+ return unless Feature.enabled?(:merge_request_diff_generated_subscription, merge_request.project)
+
+ GraphqlTriggers.merge_request_diff_generated(merge_request)
+ end
+
def ensure_commit_shas
self.start_commit_sha ||= merge_request.target_branch_sha
@@ -439,6 +446,8 @@ class MergeRequestDiff < ApplicationRecord
)
end
+ diff_options[:generated_files] = comparison.generated_files if diff_options[:collapse_generated]
+
Gitlab::Metrics.measure(:diffs_comparison) do
comparison.diffs(diff_options)
end
@@ -452,18 +461,25 @@ class MergeRequestDiff < ApplicationRecord
fetching_repository_diffs({}) do |comparison|
reorder_diff_files!
+ collapse_generated = Feature.enabled?(:collapse_generated_diff_files, project)
+ diff_options = { collapse_generated: collapse_generated }
+
collection = Gitlab::Diff::FileCollection::PaginatedMergeRequestDiff.new(
self,
page,
- per_page
+ per_page,
+ diff_options
)
if comparison
+ diff_options[:generated_files] = comparison.generated_files if collapse_generated
+
comparison.diffs(
- paths: collection.diff_paths,
- page: collection.current_page,
- per_page: collection.limit_value,
- count: collection.total_count
+ diff_options.merge(
+ paths: collection.diff_paths,
+ page: collection.current_page,
+ per_page: collection.limit_value,
+ count: collection.total_count)
)
else
collection
diff --git a/app/models/ml/experiment.rb b/app/models/ml/experiment.rb
index ad6c6b7b3bf..456c23df0e0 100644
--- a/app/models/ml/experiment.rb
+++ b/app/models/ml/experiment.rb
@@ -3,6 +3,7 @@
module Ml
class Experiment < ApplicationRecord
include AtomicInternalId
+ include Sortable
PACKAGE_PREFIX = 'ml_experiment_'
@@ -15,6 +16,8 @@ module Ml
has_many :candidates, class_name: 'Ml::Candidate'
has_many :metadata, class_name: 'Ml::ExperimentMetadata'
+ scope :including_project, -> { includes(:project) }
+ scope :by_project, ->(project) { where(project: project) }
scope :with_candidate_count, -> {
left_outer_joins(:candidates)
.select("ml_experiments.*, count(ml_candidates.id) as candidate_count")
diff --git a/app/models/ml/model_metadata.rb b/app/models/ml/model_metadata.rb
index 9c4273c629c..9695621e47d 100644
--- a/app/models/ml/model_metadata.rb
+++ b/app/models/ml/model_metadata.rb
@@ -3,7 +3,7 @@
module Ml
class ModelMetadata < ApplicationRecord
validates :name,
- length: { maximum: 250 },
+ length: { maximum: 255 },
presence: true,
uniqueness: { scope: :model, message: ->(metadata, _) { "'#{metadata.name}' already taken" } }
validates :value, length: { maximum: 5000 }, presence: true
diff --git a/app/models/ml/model_version.rb b/app/models/ml/model_version.rb
index 58da57f27d6..1b3313c803a 100644
--- a/app/models/ml/model_version.rb
+++ b/app/models/ml/model_version.rb
@@ -21,12 +21,25 @@ module Ml
belongs_to :project
belongs_to :package, class_name: 'Packages::MlModel::Package', optional: true
has_one :candidate, class_name: 'Ml::Candidate'
+ has_many :metadata, class_name: 'Ml::ModelVersionMetadata'
delegate :name, to: :model
scope :order_by_model_id_id_desc, -> { order('model_id, id DESC') }
scope :latest_by_model, -> { order_by_model_id_id_desc.select('DISTINCT ON (model_id) *') }
+ def add_metadata(metadata_key_value)
+ return unless metadata_key_value.present?
+
+ metadata_key_value.each do |entry|
+ metadata.create!(
+ project_id: project_id,
+ name: entry[:key],
+ value: entry[:value]
+ )
+ end
+ end
+
class << self
def find_or_create!(model, version, package, description)
create_with(package: package, description: description)
diff --git a/app/models/ml/model_version_metadata.rb b/app/models/ml/model_version_metadata.rb
new file mode 100644
index 00000000000..61810786091
--- /dev/null
+++ b/app/models/ml/model_version_metadata.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+module Ml
+ class ModelVersionMetadata < ApplicationRecord
+ validates :name,
+ length: { maximum: 255 },
+ presence: true,
+ uniqueness: { scope: :model_version, message: ->(metadata, _) { "'#{metadata.name}' already taken" } }
+ validates :value, length: { maximum: 5000 }, presence: true
+
+ belongs_to :project, optional: false
+ belongs_to :model_version, class_name: 'Ml::ModelVersion', optional: false
+ end
+end
diff --git a/app/models/namespace.rb b/app/models/namespace.rb
index c665c2278a5..238556f0cf0 100644
--- a/app/models/namespace.rb
+++ b/app/models/namespace.rb
@@ -12,6 +12,7 @@ class Namespace < ApplicationRecord
include Gitlab::Utils::StrongMemoize
include Namespaces::Traversal::Recursive
include Namespaces::Traversal::Linear
+ include Namespaces::Traversal::Cached
include EachBatch
include BlocksUnsafeSerialization
include Ci::NamespaceSettings
@@ -45,6 +46,7 @@ class Namespace < ApplicationRecord
cache_markdown_field :description, pipeline: :description
has_many :projects, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent
+ has_many :non_archived_projects, -> { where.not(archived: true) }, class_name: 'Project'
has_many :project_statistics
has_one :namespace_settings, inverse_of: :namespace, class_name: 'NamespaceSetting', autosave: true
has_one :ci_cd_settings, inverse_of: :namespace, class_name: 'NamespaceCiCdSetting', autosave: true
@@ -55,6 +57,9 @@ class Namespace < ApplicationRecord
has_one :namespace_ldap_settings, inverse_of: :namespace, class_name: 'Namespaces::LdapSetting', autosave: true
+ has_one :namespace_descendants, class_name: 'Namespaces::Descendants'
+ accepts_nested_attributes_for :namespace_descendants, allow_destroy: true
+
has_many :runner_namespaces, inverse_of: :namespace, class_name: 'Ci::RunnerNamespace'
has_many :runners, through: :runner_namespaces, source: :runner, class_name: 'Ci::Runner'
has_many :pending_builds, class_name: 'Ci::PendingBuild'
@@ -263,6 +268,28 @@ class Namespace < ApplicationRecord
end
end
+ # This should be kept in sync with the frontend filtering in
+ # https://gitlab.com/gitlab-org/gitlab/-/blob/5d34e3488faa3982d30d7207773991c1e0b6368a/app/assets/javascripts/gfm_auto_complete.js#L68 and
+ # https://gitlab.com/gitlab-org/gitlab/-/blob/5d34e3488faa3982d30d7207773991c1e0b6368a/app/assets/javascripts/gfm_auto_complete.js#L1053
+ def gfm_autocomplete_search(query)
+ without_project_namespaces
+ .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/420046")
+ .joins(:route)
+ .where(
+ "REPLACE(routes.name, ' ', '') ILIKE :pattern OR routes.path ILIKE :pattern",
+ pattern: "%#{sanitize_sql_like(query)}%"
+ )
+ .order(
+ Arel.sql(sanitize_sql(
+ [
+ "CASE WHEN starts_with(REPLACE(routes.name, ' ', ''), :pattern) OR starts_with(routes.path, :pattern) THEN 1 ELSE 2 END",
+ { pattern: query }
+ ]
+ )),
+ 'routes.path'
+ )
+ end
+
def clean_path(path, limited_to: Namespace.all)
slug = Gitlab::Slug::Path.new(path).generate
path = Namespaces::RandomizedSuffixPath.new(slug)
diff --git a/app/models/namespace/package_setting.rb b/app/models/namespace/package_setting.rb
index a5a393ad8a2..5f5bef4409c 100644
--- a/app/models/namespace/package_setting.rb
+++ b/app/models/namespace/package_setting.rb
@@ -12,7 +12,7 @@ class Namespace::PackageSetting < ApplicationRecord
PackageSettingNotImplemented = Class.new(StandardError)
- PACKAGES_WITH_SETTINGS = %w[maven generic nuget].freeze
+ PACKAGES_WITH_SETTINGS = %w[maven generic nuget terraform_module].freeze
belongs_to :namespace, inverse_of: :package_setting_relation
@@ -24,6 +24,14 @@ class Namespace::PackageSetting < ApplicationRecord
validates :nuget_duplicates_allowed, inclusion: { in: [true, false] }
validates :nuget_duplicate_exception_regex, untrusted_regexp: true, length: { maximum: 255 }
validates :nuget_symbol_server_enabled, inclusion: { in: [true, false] }
+ validates :terraform_module_duplicates_allowed, inclusion: { in: [true, false] }
+ validates :terraform_module_duplicate_exception_regex, untrusted_regexp: true, length: { maximum: 255 }
+
+ scope :namespace_id_in, ->(namespace_ids) { where(namespace_id: namespace_ids) }
+ scope :with_terraform_module_duplicates_allowed_or_exception_regex, -> do
+ where(terraform_module_duplicates_allowed: true)
+ .or(where.not(terraform_module_duplicate_exception_regex: ''))
+ end
class << self
def duplicates_allowed?(package)
diff --git a/app/models/namespace_setting.rb b/app/models/namespace_setting.rb
index 0263942116d..e61e5a7f37e 100644
--- a/app/models/namespace_setting.rb
+++ b/app/models/namespace_setting.rb
@@ -4,9 +4,13 @@ class NamespaceSetting < ApplicationRecord
include CascadingNamespaceSettingAttribute
include Sanitizable
include ChronicDurationAttribute
+ include IgnorableColumns
+
+ ignore_column :project_import_level, remove_with: '16.10', remove_after: '2024-02-22'
cascading_attr :delayed_project_removal
cascading_attr :toggle_security_policy_custom_ci
+ cascading_attr :toggle_security_policies_policy_scope
belongs_to :namespace, inverse_of: :namespace_settings
diff --git a/app/models/namespaces/descendants.rb b/app/models/namespaces/descendants.rb
new file mode 100644
index 00000000000..8444cea9848
--- /dev/null
+++ b/app/models/namespaces/descendants.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+module Namespaces
+ class Descendants < ApplicationRecord
+ self.table_name = :namespace_descendants
+
+ belongs_to :namespace
+
+ validates :namespace_id, uniqueness: true
+
+ def self.expire_for(namespace_ids)
+ # Union:
+ # - Look up all parent ids including the given ids via traversal_ids
+ # - Include the given ids to handle the case when the namespaces records are already deleted
+ sql = <<~SQL
+ WITH namespace_ids AS MATERIALIZED (
+ (
+ SELECT ids.id
+ FROM namespaces, UNNEST(traversal_ids) ids(id)
+ WHERE namespaces.id IN (?)
+ ) UNION
+ (SELECT UNNEST(ARRAY[?]) AS id)
+ )
+ UPDATE namespace_descendants SET outdated_at = ? FROM namespace_ids WHERE namespace_descendants.namespace_id = namespace_ids.id
+ SQL
+
+ connection.execute(sanitize_sql_array([sql, namespace_ids, namespace_ids, Time.current]))
+ end
+ end
+end
diff --git a/app/models/namespaces/traversal/cached.rb b/app/models/namespaces/traversal/cached.rb
new file mode 100644
index 00000000000..55eaaa4667e
--- /dev/null
+++ b/app/models/namespaces/traversal/cached.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+module Namespaces
+ module Traversal
+ module Cached
+ extend ActiveSupport::Concern
+ extend Gitlab::Utils::Override
+
+ included do
+ after_destroy :invalidate_descendants_cache
+ end
+
+ private
+
+ override :sync_traversal_ids
+ def sync_traversal_ids
+ super
+ return if is_a?(Namespaces::UserNamespace)
+ return unless Feature.enabled?(:namespace_descendants_cache_expiration, self, type: :gitlab_com_derisk)
+
+ ids = [id]
+ ids.concat((saved_changes[:parent_id] - [parent_id]).compact) if saved_changes[:parent_id]
+ Namespaces::Descendants.expire_for(ids)
+ end
+
+ def invalidate_descendants_cache
+ return if is_a?(Namespaces::UserNamespace)
+ return unless Feature.enabled?(:namespace_descendants_cache_expiration, self, type: :gitlab_com_derisk)
+
+ Namespaces::Descendants.expire_for([parent_id, id].compact)
+ end
+ end
+ end
+end
diff --git a/app/models/onboarding/completion.rb b/app/models/onboarding/completion.rb
index afbd671f82e..53781e112ae 100644
--- a/app/models/onboarding/completion.rb
+++ b/app/models/onboarding/completion.rb
@@ -3,7 +3,6 @@
module Onboarding
class Completion
include Gitlab::Utils::StrongMemoize
- include Gitlab::Experiment::Dsl
ACTION_PATHS = [
:pipeline_created,
@@ -12,6 +11,7 @@ module Onboarding
:code_owners_enabled,
:issue_created,
:git_write,
+ :code_added,
:merge_request_created,
:user_added,
:license_scanning_run,
@@ -35,20 +35,11 @@ module Onboarding
end
def completed?(column)
- if column == :code_added
- repository.commit_count > 1 || repository.branch_count > 1
- else
- attributes[column].present?
- end
+ attributes[column].present?
end
private
- def repository
- project.repository
- end
- strong_memoize_attr :repository
-
def attributes
onboarding_progress.attributes.symbolize_keys
end
@@ -60,8 +51,7 @@ module Onboarding
strong_memoize_attr :onboarding_progress
def action_columns
- [:code_added] +
- ACTION_PATHS.map { |action_key| ::Onboarding::Progress.column_name(action_key) }
+ ACTION_PATHS.map { |action_key| ::Onboarding::Progress.column_name(action_key) }
end
strong_memoize_attr :action_columns
diff --git a/app/models/onboarding/progress.rb b/app/models/onboarding/progress.rb
index 83030732c6a..b6628843821 100644
--- a/app/models/onboarding/progress.rb
+++ b/app/models/onboarding/progress.rb
@@ -32,7 +32,8 @@ module Onboarding
:secure_api_fuzzing_run,
:secure_cluster_image_scanning_run,
:license_scanning_run,
- :promote_ultimate_features
+ :promote_ultimate_features,
+ :code_added
].freeze
scope :incomplete_actions, ->(actions) do
diff --git a/app/models/organizations/organization.rb b/app/models/organizations/organization.rb
index 764378a5d19..df6f0109d57 100644
--- a/app/models/organizations/organization.rb
+++ b/app/models/organizations/organization.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
module Organizations
- class Organization < ApplicationRecord
+ class Organization < MainClusterwide::ApplicationRecord
DEFAULT_ORGANIZATION_ID = 1
scope :without_default, -> { where.not(id: DEFAULT_ORGANIZATION_ID) }
@@ -16,6 +16,8 @@ module Organizations
has_one :organization_detail, inverse_of: :organization, autosave: true
has_many :organization_users, inverse_of: :organization
+ # if considering disable_joins on the below see:
+ # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140343#note_1705047949
has_many :users, through: :organization_users, inverse_of: :organizations
validates :name,
@@ -28,7 +30,7 @@ module Organizations
'organizations/path': true,
length: { minimum: 2, maximum: 255 }
- delegate :description, :avatar, :avatar_url, to: :organization_detail
+ delegate :description, :description_html, :avatar, :avatar_url, :remove_avatar!, to: :organization_detail
accepts_nested_attributes_for :organization_detail
@@ -52,6 +54,10 @@ module Organizations
organization_users.exists?(user: user)
end
+ def owner?(user)
+ organization_users.owners.exists?(user: user)
+ end
+
def web_url(only_path: nil)
Gitlab::UrlBuilder.build(self, only_path: only_path)
end
diff --git a/app/models/organizations/organization_detail.rb b/app/models/organizations/organization_detail.rb
index b69ec5eae76..018e7579c5b 100644
--- a/app/models/organizations/organization_detail.rb
+++ b/app/models/organizations/organization_detail.rb
@@ -6,7 +6,7 @@ module Organizations
include Avatarable
include WithUploads
- cache_markdown_field :description
+ cache_markdown_field :description, pipeline: :description
belongs_to :organization, inverse_of: :organization_detail
diff --git a/app/models/organizations/organization_user.rb b/app/models/organizations/organization_user.rb
index 5aa1133b017..9e06870dcc6 100644
--- a/app/models/organizations/organization_user.rb
+++ b/app/models/organizations/organization_user.rb
@@ -4,5 +4,17 @@ module Organizations
class OrganizationUser < ApplicationRecord
belongs_to :organization, inverse_of: :organization_users, optional: false
belongs_to :user, inverse_of: :organization_users, optional: false
+
+ validates :user, uniqueness: { scope: :organization_id }
+ validates :access_level, presence: true
+
+ enum access_level: {
+ # Until we develop more access_levels, we really don't know if the default access_level will be what we think of
+ # as a guest. For now, we'll set to same value as guest, but call it default to denote the current ambivalence.
+ default: Gitlab::Access::GUEST,
+ owner: Gitlab::Access::OWNER
+ }
+
+ scope :owners, -> { where(access_level: Gitlab::Access::OWNER) }
end
end
diff --git a/app/models/pages/project_settings.rb b/app/models/pages/project_settings.rb
new file mode 100644
index 00000000000..96e5bb8e98e
--- /dev/null
+++ b/app/models/pages/project_settings.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module Pages
+ class ProjectSettings
+ def initialize(project)
+ @project = project
+ end
+
+ def url = url_builder.pages_url(with_unique_domain: true)
+
+ def deployments = project.pages_deployments.active
+
+ def unique_domain_enabled? = project.project_setting.pages_unique_domain_enabled?
+
+ def force_https? = project.pages_https_only?
+
+ private
+
+ attr_reader :project
+
+ def url_builder
+ @url_builder ||= ::Gitlab::Pages::UrlBuilder.new(project)
+ end
+ end
+end
diff --git a/app/models/pages_deployment.rb b/app/models/pages_deployment.rb
index e8b186234af..a360b705805 100644
--- a/app/models/pages_deployment.rb
+++ b/app/models/pages_deployment.rb
@@ -68,6 +68,14 @@ class PagesDeployment < ApplicationRecord
update(deleted_at: Time.now.utc)
end
+ def url
+ base_url = ::Gitlab::Pages::UrlBuilder
+ .new(project)
+ .pages_url(with_unique_domain: true)
+
+ File.join(base_url.to_s, path_prefix.to_s)
+ end
+
private
def set_size
diff --git a/app/models/project.rb b/app/models/project.rb
index 7b996457c0d..8f82a947ba6 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -208,6 +208,7 @@ class Project < ApplicationRecord
has_one :custom_issue_tracker_integration, class_name: 'Integrations::CustomIssueTracker'
has_one :datadog_integration, class_name: 'Integrations::Datadog'
has_one :container_registry_data_repair_detail, class_name: 'ContainerRegistry::DataRepairDetail'
+ has_one :diffblue_cover_integration, class_name: 'Integrations::DiffblueCover'
has_one :discord_integration, class_name: 'Integrations::Discord'
has_one :drone_ci_integration, class_name: 'Integrations::DroneCi'
has_one :emails_on_push_integration, class_name: 'Integrations::EmailsOnPush'
@@ -334,7 +335,7 @@ class Project < ApplicationRecord
has_many :authorized_users, -> { allow_cross_joins_across_databases(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/422045') },
through: :project_authorizations, source: :user, class_name: 'User'
- has_many :project_members, -> { where(requested_at: nil) },
+ has_many :project_members, -> { non_request },
as: :source, dependent: :delete_all # rubocop:disable Cop/ActiveRecordDependent
alias_method :members, :project_members
has_many :namespace_members, ->(project) { where(requested_at: nil).unscope(where: %i[source_id source_type]) },
@@ -508,6 +509,7 @@ class Project < ApplicationRecord
delegate :members, prefix: true
delegate :add_member, :add_members, :member?
delegate :add_guest, :add_reporter, :add_developer, :add_maintainer, :add_owner, :add_role
+ delegate :has_user?
end
with_options to: :namespace do
@@ -749,6 +751,7 @@ class Project < ApplicationRecord
preload(:project_feature, :route, namespace: [:route, :owner])
}
+ scope :with_name, -> (name) { where(name: name) }
scope :created_by, -> (user) { where(creator: user) }
scope :imported_from, -> (type) { where(import_type: type) }
scope :imported, -> { where.not(import_type: nil) }
@@ -3205,6 +3208,21 @@ class Project < ApplicationRecord
end
strong_memoize_attr :code_suggestions_enabled?
+ # Overridden in EE
+ def allows_multiple_merge_request_assignees?
+ false
+ end
+
+ # Overridden in EE
+ def allows_multiple_merge_request_reviewers?
+ false
+ end
+
+ # Overridden in EE
+ def on_demand_dast_available?
+ false
+ end
+
private
# overridden in EE
@@ -3226,8 +3244,11 @@ class Project < ApplicationRecord
if @topic_list != self.topic_list
self.topics.delete_all
- self.topics = @topic_list.map do |topic|
- Projects::Topic.where('lower(name) = ?', topic.downcase).order(total_projects_count: :desc).first_or_create(name: topic, title: topic)
+ self.topics = @topic_list.map do |topic_name|
+ Projects::Topic
+ .where('lower(name) = ?', topic_name.downcase)
+ .order(total_projects_count: :desc)
+ .first_or_create(name: topic_name, title: topic_name, slug: Gitlab::Slug::Path.new(topic_name).generate)
end
end
@@ -3438,7 +3459,7 @@ class Project < ApplicationRecord
def check_project_export_limit!
return if Gitlab::CurrentSettings.current_application_settings.max_export_size == 0
- if self.statistics.storage_size > Gitlab::CurrentSettings.current_application_settings.max_export_size.megabytes
+ if self.statistics.export_size > Gitlab::CurrentSettings.current_application_settings.max_export_size.megabytes
raise ExportLimitExceeded, _('The project size exceeds the export limit.')
end
end
diff --git a/app/models/project_authorizations/changes.rb b/app/models/project_authorizations/changes.rb
index ac52bdfdb07..26f5366ad5e 100644
--- a/app/models/project_authorizations/changes.rb
+++ b/app/models/project_authorizations/changes.rb
@@ -21,6 +21,7 @@ module ProjectAuthorizations
@authorizations_to_add = []
@affected_project_ids = Set.new
@removed_user_ids = Set.new
+ @added_user_ids = Set.new
yield self
end
@@ -61,6 +62,7 @@ module ProjectAuthorizations
def add_authorizations
insert_all_in_batches(authorizations_to_add)
@affected_project_ids += authorizations_to_add.pluck(:project_id)
+ @added_user_ids += authorizations_to_add.pluck(:user_id)
end
def delete_authorizations_for_user
@@ -139,23 +141,51 @@ module ProjectAuthorizations
end
def publish_events
+ publish_changed_event
+ publish_removed_event
+ publish_added_event
+ end
+
+ def publish_changed_event
+ # This event is used to add policy approvers to approval rules by re-syncing all project policies which is costly.
+ # If the feature flag below is enabled, the policies won't be re-synced and
+ # the approvers will be added via `AuthorizationsAddedEvent`.
+ return if ::Feature.enabled?(:add_policy_approvers_to_rules)
+
@affected_project_ids.each do |project_id|
::Gitlab::EventStore.publish(
::ProjectAuthorizations::AuthorizationsChangedEvent.new(data: { project_id: project_id })
)
end
- return if ::Feature.disabled?(:user_approval_rules_removal) || @removed_user_ids.blank?
+ end
- @affected_project_ids.each do |project_id|
- @removed_user_ids.to_a.each_slice(EVENT_USER_BATCH_SIZE).each do |user_ids_batch|
- ::Gitlab::EventStore.publish(
- ::ProjectAuthorizations::AuthorizationsRemovedEvent.new(data: {
- project_id: project_id,
- user_ids: user_ids_batch
- })
- )
+ def publish_removed_event
+ return if @removed_user_ids.none?
+
+ events = @affected_project_ids.flat_map do |project_id|
+ @removed_user_ids.to_a.each_slice(EVENT_USER_BATCH_SIZE).map do |user_ids_batch|
+ ::ProjectAuthorizations::AuthorizationsRemovedEvent.new(data: {
+ project_id: project_id,
+ user_ids: user_ids_batch
+ })
+ end
+ end
+ ::Gitlab::EventStore.publish_group(events)
+ end
+
+ def publish_added_event
+ return if ::Feature.disabled?(:add_policy_approvers_to_rules)
+ return if @added_user_ids.none?
+
+ events = @affected_project_ids.flat_map do |project_id|
+ @added_user_ids.to_a.each_slice(EVENT_USER_BATCH_SIZE).map do |user_ids_batch|
+ ::ProjectAuthorizations::AuthorizationsAddedEvent.new(data: {
+ project_id: project_id,
+ user_ids: user_ids_batch
+ })
end
end
+ ::Gitlab::EventStore.publish_group(events)
end
end
end
diff --git a/app/models/project_statistics.rb b/app/models/project_statistics.rb
index 942f20f6e5e..f89894b77a8 100644
--- a/app/models/project_statistics.rb
+++ b/app/models/project_statistics.rb
@@ -145,6 +145,11 @@ class ProjectStatistics < ApplicationRecord
bulk_increment_counter(key, increments)
end
+ # Build artifacts & packages are not included in the project export
+ def export_size
+ storage_size - build_artifacts_size - packages_size
+ end
+
private
def incrementable_attribute?(key)
diff --git a/app/models/project_team.rb b/app/models/project_team.rb
index 5078642ea3a..3af9f946243 100644
--- a/app/models/project_team.rb
+++ b/app/models/project_team.rb
@@ -172,6 +172,13 @@ class ProjectTeam
max_member_access(user.id) >= min_access_level
end
+ # Only for direct and not invited members
+ def has_user?(user)
+ return false unless user
+
+ project.project_members.non_invite.exists?(user: user)
+ end
+
def human_max_access(user_id)
Gitlab::Access.human_access(max_member_access(user_id))
end
diff --git a/app/models/projects/project_topic.rb b/app/models/projects/project_topic.rb
index 7021a48646a..7833c1ebf24 100644
--- a/app/models/projects/project_topic.rb
+++ b/app/models/projects/project_topic.rb
@@ -4,5 +4,7 @@ module Projects
class ProjectTopic < ApplicationRecord
belongs_to :project
belongs_to :topic, counter_cache: :total_projects_count
+
+ validates :topic_id, uniqueness: { scope: [:project_id] }
end
end
diff --git a/app/models/projects/repository_storage_move.rb b/app/models/projects/repository_storage_move.rb
index ae815bf366d..95fd78e8941 100644
--- a/app/models/projects/repository_storage_move.rb
+++ b/app/models/projects/repository_storage_move.rb
@@ -17,11 +17,7 @@ module Projects
override :schedule_repository_storage_update_worker
def schedule_repository_storage_update_worker
- Projects::UpdateRepositoryStorageWorker.perform_async(
- project_id,
- destination_storage_name,
- id
- )
+ Projects::UpdateRepositoryStorageWorker.perform_async(id)
end
private
diff --git a/app/models/projects/topic.rb b/app/models/projects/topic.rb
index 347d65841ed..a3622150351 100644
--- a/app/models/projects/topic.rb
+++ b/app/models/projects/topic.rb
@@ -7,9 +7,18 @@ module Projects
include Avatarable
include Gitlab::SQL::Pattern
+ SLUG_ALLOWED_REGEX = %r{\A[a-zA-Z0-9_\-.]+\z}
+
validates :name, presence: true, length: { maximum: 255 }
validates :name, uniqueness: { case_sensitive: false }, if: :name_changed?
validate :validate_name_format, if: :name_changed?
+
+ validates :slug,
+ length: { maximum: 255 },
+ uniqueness: { case_sensitive: false },
+ format: { with: SLUG_ALLOWED_REGEX, message: "can contain only letters, digits, '_', '-', '.'" },
+ if: :slug_changed?
+
validates :title, presence: true, length: { maximum: 255 }, on: :create
validates :description, length: { maximum: 1024 }
diff --git a/app/models/release.rb b/app/models/release.rb
index 1cd623e1254..7bacc69f038 100644
--- a/app/models/release.rb
+++ b/app/models/release.rb
@@ -54,6 +54,7 @@ class Release < ApplicationRecord
scope :recent, -> { sorted.limit(MAX_NUMBER_TO_DISPLAY) }
scope :without_evidence, -> { left_joins(:evidences).where(::Releases::Evidence.arel_table[:id].eq(nil)) }
scope :released_within_2hrs, -> { where(released_at: Time.zone.now - 1.hour..Time.zone.now + 1.hour) }
+ scope :unpublished, -> { where(release_published_at: nil) }
scope :for_projects, ->(projects) { where(project_id: projects) }
scope :by_tag, ->(tag) { where(tag: tag) }
@@ -66,6 +67,7 @@ class Release < ApplicationRecord
delegate :repository, to: :project
MAX_NUMBER_TO_DISPLAY = 3
+ MAX_NUMBER_TO_PUBLISH = 5000
class << self
# In the future, we should support `order_by=semver`;
@@ -97,6 +99,10 @@ class Release < ApplicationRecord
.from("(VALUES #{project_ids_list}) projects (id)")
.joins("INNER JOIN LATERAL (#{join_query.to_sql}) #{Release.table_name} ON TRUE")
end
+
+ def waiting_for_publish_event
+ unpublished.released_within_2hrs.joins(:project).merge(Project.with_feature_enabled(:releases)).limit(MAX_NUMBER_TO_PUBLISH)
+ end
end
def to_param
diff --git a/app/models/resource_label_event.rb b/app/models/resource_label_event.rb
index ad1ce740c89..e912e57f39e 100644
--- a/app/models/resource_label_event.rb
+++ b/app/models/resource_label_event.rb
@@ -45,7 +45,7 @@ class ResourceLabelEvent < ResourceEvent
end
def group
- issuable.group if issuable.respond_to?(:group)
+ issuable.resource_parent if issuable.resource_parent.is_a?(Group)
end
def outdated_markdown?
@@ -93,7 +93,9 @@ class ResourceLabelEvent < ResourceEvent
end
def label_url_method
- issuable.is_a?(MergeRequest) ? :project_merge_requests_url : :project_issues_url
+ return :project_merge_requests_url if issuable.is_a?(MergeRequest)
+
+ issuable.project_id.nil? ? :group_work_items_url : :project_issues_url
end
def broadcast_notes_changed
diff --git a/app/models/resource_milestone_event.rb b/app/models/resource_milestone_event.rb
index d305a4ace51..2b93334f721 100644
--- a/app/models/resource_milestone_event.rb
+++ b/app/models/resource_milestone_event.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
class ResourceMilestoneEvent < ResourceTimeboxEvent
+ include EachBatch
+
belongs_to :milestone
scope :include_relations, -> { includes(:user, milestone: [:project, :group]) }
diff --git a/app/models/route.rb b/app/models/route.rb
index 652c33a673c..1fa0005ffb4 100644
--- a/app/models/route.rb
+++ b/app/models/route.rb
@@ -3,6 +3,7 @@
class Route < MainClusterwide::ApplicationRecord
include CaseSensitivity
include Gitlab::SQL::Pattern
+ include EachBatch
belongs_to :source, polymorphic: true, inverse_of: :route # rubocop:disable Cop/PolymorphicAssociations
belongs_to :namespace, inverse_of: :namespace_route
@@ -26,30 +27,39 @@ class Route < MainClusterwide::ApplicationRecord
def rename_descendants
return unless saved_change_to_path? || saved_change_to_name?
- descendant_routes = self.class.inside_path(path_before_last_save)
+ if Feature.disabled?(:batch_route_updates, Feature.current_request, type: :gitlab_com_derisk)
+ descendant_routes = self.class.inside_path(path_before_last_save)
- descendant_routes.each do |route|
- attributes = {}
+ descendant_routes.each do |route|
+ attributes = {}
- if saved_change_to_path? && route.path.present?
- attributes[:path] = route.path.sub(path_before_last_save, path)
- end
+ if saved_change_to_path? && route.path.present?
+ attributes[:path] = route.path.sub(path_before_last_save, path)
+ end
- if saved_change_to_name? && name_before_last_save.present? && route.name.present?
- attributes[:name] = route.name.sub(name_before_last_save, name)
- end
+ if saved_change_to_name? && name_before_last_save.present? && route.name.present?
+ attributes[:name] = route.name.sub(name_before_last_save, name)
+ end
- next if attributes.empty?
+ next if attributes.empty?
- old_path = route.path
+ old_path = route.path
- # Callbacks must be run manually
- route.update_columns(attributes.merge(updated_at: Time.current))
+ # Callbacks must be run manually
+ route.update_columns(attributes.merge(updated_at: Time.current))
+
+ # We are not calling route.delete_conflicting_redirects here, in hopes
+ # of avoiding deadlocks. The parent (self, in this method) already
+ # called it, which deletes conflicts for all descendants.
+ route.create_redirect(old_path) if attributes[:path]
+ end
+ else
+ changes = {
+ path: { saved: saved_change_to_path?, old_value: path_before_last_save },
+ name: { saved: saved_change_to_name?, old_value: name_before_last_save }
+ }
- # We are not calling route.delete_conflicting_redirects here, in hopes
- # of avoiding deadlocks. The parent (self, in this method) already
- # called it, which deletes conflicts for all descendants.
- route.create_redirect(old_path) if attributes[:path]
+ Routes::RenameDescendantsService.new(self).execute(changes) # rubocop: disable CodeReuse/ServiceClass -- Need a service class to encapsulate all the logic.
end
end
diff --git a/app/models/service_desk/custom_email_credential.rb b/app/models/service_desk/custom_email_credential.rb
index 7ae44ac6aa1..6955f178bea 100644
--- a/app/models/service_desk/custom_email_credential.rb
+++ b/app/models/service_desk/custom_email_credential.rb
@@ -61,12 +61,13 @@ module ServiceDesk
def validate_smtp_address
# Addressable::URI always needs a scheme otherwise it interprets the host as the path
- Gitlab::UrlBlocker.validate!("smtp://#{smtp_address}",
+ Gitlab::HTTP_V2::UrlBlocker.validate!("smtp://#{smtp_address}",
schemes: %w[smtp],
ascii_only: true,
enforce_sanitization: true,
allow_localhost: false,
- allow_local_network: !::Gitlab.com? # rubocop:disable Gitlab/AvoidGitlabInstanceChecks -- self-managed may also use local network
+ allow_local_network: !::Gitlab.com?, # rubocop:disable Gitlab/AvoidGitlabInstanceChecks -- self-managed may also use local network
+ deny_all_requests_except_allowed: Gitlab::CurrentSettings.deny_all_requests_except_allowed?
)
rescue Gitlab::HTTP_V2::UrlBlocker::BlockedUrlError => e
errors.add(:smtp_address, e)
diff --git a/app/models/snippets/repository_storage_move.rb b/app/models/snippets/repository_storage_move.rb
index 9db25ef4fc5..794caefb77d 100644
--- a/app/models/snippets/repository_storage_move.rb
+++ b/app/models/snippets/repository_storage_move.rb
@@ -16,11 +16,7 @@ module Snippets
override :schedule_repository_storage_update_worker
def schedule_repository_storage_update_worker
- Snippets::UpdateRepositoryStorageWorker.perform_async(
- snippet_id,
- destination_storage_name,
- id
- )
+ Snippets::UpdateRepositoryStorageWorker.perform_async(id)
end
private
diff --git a/app/models/ssh_host_key.rb b/app/models/ssh_host_key.rb
index 672a6d64127..f0855fc9f1c 100644
--- a/app/models/ssh_host_key.rb
+++ b/app/models/ssh_host_key.rb
@@ -137,12 +137,13 @@ class SshHostKey
end
def normalize_url(url)
- url, real_hostname = Gitlab::UrlBlocker.validate!(
+ url, real_hostname = Gitlab::HTTP_V2::UrlBlocker.validate!(
url,
schemes: %w[ssh],
allow_localhost: allow_local_requests?,
allow_local_network: allow_local_requests?,
- dns_rebind_protection: Gitlab::CurrentSettings.dns_rebinding_protection_enabled?
+ dns_rebind_protection: Gitlab::CurrentSettings.dns_rebinding_protection_enabled?,
+ deny_all_requests_except_allowed: Gitlab::CurrentSettings.deny_all_requests_except_allowed?
)
# When DNS rebinding protection is required, the hostname is replaced by the
diff --git a/app/models/time_tracking/timelog_category.rb b/app/models/time_tracking/timelog_category.rb
index 67565039acd..295304f6e99 100644
--- a/app/models/time_tracking/timelog_category.rb
+++ b/app/models/time_tracking/timelog_category.rb
@@ -9,6 +9,8 @@ module TimeTracking
belongs_to :namespace, foreign_key: 'namespace_id'
+ has_many :timelogs
+
strip_attributes! :name
validates :namespace, presence: true
diff --git a/app/models/timelog.rb b/app/models/timelog.rb
index 0ae7790eef9..ffb88b7ebea 100644
--- a/app/models/timelog.rb
+++ b/app/models/timelog.rb
@@ -20,6 +20,7 @@ class Timelog < ApplicationRecord
belongs_to :project
belongs_to :user
belongs_to :note
+ belongs_to :timelog_category, optional: true, class_name: 'TimeTracking::TimelogCategory'
scope :in_group, -> (group) do
joins(:project).where(projects: { namespace: group.self_and_descendants })
diff --git a/app/models/tree.rb b/app/models/tree.rb
index 030e7d9e85f..d62e5c1b368 100644
--- a/app/models/tree.rb
+++ b/app/models/tree.rb
@@ -18,8 +18,15 @@ class Tree
ref = ExtractsRef::RefExtractor.qualify_ref(@sha, ref_type)
- @entries, @cursor = Gitlab::Git::Tree.where(git_repo, ref, @path, recursive, skip_flat_paths, rescue_not_found,
- pagination_params)
+ @entries, @cursor = Gitlab::Git::Tree.tree_entries(
+ repository: git_repo,
+ sha: ref,
+ path: @path,
+ recursive: recursive,
+ skip_flat_paths: skip_flat_paths,
+ rescue_not_found: rescue_not_found,
+ pagination_params: pagination_params
+ )
@entries.each do |entry|
entry.ref_type = self.ref_type
diff --git a/app/models/user.rb b/app/models/user.rb
index c36898aaf70..c9873975cc9 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -151,7 +151,7 @@ class User < MainClusterwide::ApplicationRecord
# Namespace for personal projects
has_one :namespace,
-> { where(type: Namespaces::UserNamespace.sti_name) },
- required: true,
+ required: false,
dependent: :destroy, # rubocop:disable Cop/ActiveRecordDependent
foreign_key: :owner_id,
inverse_of: :owner,
@@ -270,7 +270,8 @@ class User < MainClusterwide::ApplicationRecord
belongs_to :accepted_term, class_name: 'ApplicationSetting::Term'
has_many :organization_users, class_name: 'Organizations::OrganizationUser', inverse_of: :user
- has_many :organizations, through: :organization_users, class_name: 'Organizations::Organization', inverse_of: :users
+ has_many :organizations, through: :organization_users, class_name: 'Organizations::Organization', inverse_of: :users,
+ disable_joins: true
has_one :status, class_name: 'UserStatus'
has_one :user_preference
@@ -284,8 +285,6 @@ class User < MainClusterwide::ApplicationRecord
has_many :reviews, foreign_key: :author_id, inverse_of: :author
- has_many :in_product_marketing_emails, class_name: '::Users::InProductMarketingEmail'
-
has_many :timelogs
has_many :resource_label_events, dependent: :nullify # rubocop:disable Cop/ActiveRecordDependent
@@ -304,6 +303,10 @@ class User < MainClusterwide::ApplicationRecord
# Validations
#
# Note: devise :validatable above adds validations for :email and :password
+ validates :username,
+ presence: true,
+ exclusion: { in: Gitlab::PathRegex::TOP_LEVEL_ROUTES, message: N_('%{value} is a reserved name') }
+ validates :username, uniqueness: true, unless: :namespace
validates :name, presence: true, length: { maximum: 255 }
validates :first_name, length: { maximum: 127 }
validates :last_name, length: { maximum: 127 }
@@ -314,10 +317,9 @@ class User < MainClusterwide::ApplicationRecord
validates :projects_limit,
presence: true,
numericality: { greater_than_or_equal_to: 0, less_than_or_equal_to: Gitlab::Database::MAX_INT_VALUE }
- validates :username, presence: true
validate :check_password_weakness, if: :encrypted_password_changed?
- validates :namespace, presence: true
+ validates :namespace, presence: true, unless: :optional_namespace?
validate :namespace_move_dir_allowed, if: :username_changed?, unless: :new_record?
validate :unique_email, if: :email_changed?
@@ -591,6 +593,8 @@ class User < MainClusterwide::ApplicationRecord
scope :order_oldest_sign_in, -> { reorder(arel_table[:current_sign_in_at].asc.nulls_last) }
scope :order_recent_last_activity, -> { reorder(arel_table[:last_activity_on].desc.nulls_last, arel_table[:id].asc) }
scope :order_oldest_last_activity, -> { reorder(arel_table[:last_activity_on].asc.nulls_first, arel_table[:id].desc) }
+ scope :ordered_by_id_desc, -> { reorder(arel_table[:id].desc) }
+
scope :dormant, -> { with_state(:active).human_or_service_user.where('last_activity_on <= ?', Gitlab::CurrentSettings.deactivate_dormant_users_period.day.ago.to_date) }
scope :with_no_activity, -> { with_state(:active).human_or_service_user.where(last_activity_on: nil).where('created_at <= ?', MINIMUM_DAYS_CREATED.day.ago.to_date) }
scope :by_provider_and_extern_uid, ->(provider, extern_uid) { joins(:identities).merge(Identity.with_extern_uid(provider, extern_uid)) }
@@ -847,6 +851,25 @@ class User < MainClusterwide::ApplicationRecord
scope.reorder(order)
end
+ # This should be kept in sync with the frontend filtering in
+ # https://gitlab.com/gitlab-org/gitlab/-/blob/5d34e3488faa3982d30d7207773991c1e0b6368a/app/assets/javascripts/gfm_auto_complete.js#L68 and
+ # https://gitlab.com/gitlab-org/gitlab/-/blob/5d34e3488faa3982d30d7207773991c1e0b6368a/app/assets/javascripts/gfm_auto_complete.js#L1053
+ def gfm_autocomplete_search(query)
+ where(
+ "REPLACE(users.name, ' ', '') ILIKE :pattern OR users.username ILIKE :pattern",
+ pattern: "%#{sanitize_sql_like(query)}%"
+ ).order(
+ Arel.sql(sanitize_sql(
+ [
+ "CASE WHEN starts_with(REPLACE(users.name, ' ', ''), :pattern) OR starts_with(users.username, :pattern) THEN 1 ELSE 2 END",
+ { pattern: query }
+ ]
+ )),
+ :username,
+ :id
+ )
+ end
+
# Limits the result set to users _not_ in the given query/list of IDs.
#
# users - The list of users to ignore. This can be an
@@ -1302,7 +1325,13 @@ class User < MainClusterwide::ApplicationRecord
end
def can_create_project?
- projects_limit_left > 0
+ projects_limit_left > 0 && allow_user_to_create_group_and_project?
+ end
+
+ def allow_user_to_create_group_and_project?
+ return true if Gitlab::CurrentSettings.allow_project_creation_for_guest_and_below
+
+ highest_role > Gitlab::Access::GUEST
end
def can_create_group?
@@ -1596,12 +1625,6 @@ class User < MainClusterwide::ApplicationRecord
if namespace
namespace.path = username if username_changed?
namespace.name = name if name_changed?
- elsif Feature.disabled?(:create_personal_ns_outside_model, Feature.current_request)
- # TODO: we should no longer need the `type` parameter once we can make the
- # the `has_one :namespace` association use the correct class.
- # issue https://gitlab.com/gitlab-org/gitlab/-/issues/341070
- namespace = build_namespace(path: username, name: name, type: ::Namespaces::UserNamespace.sti_name)
- namespace.build_namespace_settings
end
end
@@ -1623,6 +1646,9 @@ class User < MainClusterwide::ApplicationRecord
self.errors.add(:base, :username_exists_as_a_different_namespace)
else
namespace_path_errors.each do |msg|
+ # Already handled by username validation.
+ next if msg.ends_with?('is a reserved name')
+
self.errors.add(:username, msg)
end
end
@@ -2300,6 +2326,10 @@ class User < MainClusterwide::ApplicationRecord
private
+ def optional_namespace?
+ Feature.enabled?(:optional_personal_namespace, self)
+ end
+
def block_or_ban
user_scores = Abuse::UserTrustScore.new(self)
if user_scores.spammer? && account_age_in_days < 7
diff --git a/app/models/users/callout.rb b/app/models/users/callout.rb
index c32414be312..8d330e4eb6e 100644
--- a/app/models/users/callout.rb
+++ b/app/models/users/callout.rb
@@ -79,7 +79,9 @@ module Users
vulnerability_report_grouping: 77, # EE-only
new_nav_for_everyone_callout: 78,
code_suggestions_ga_non_owner_alert: 79, # EE-only
- duo_chat_callout: 80 # EE-only
+ duo_chat_callout: 80, # EE-only
+ code_suggestions_ga_owner_alert: 81, # EE-only
+ product_analytics_dashboard_feedback: 82 # EE-only
}
validates :feature_name,
diff --git a/app/models/users/credit_card_validation.rb b/app/models/users/credit_card_validation.rb
index 6d0a22c8b0a..33e7ba72d5a 100644
--- a/app/models/users/credit_card_validation.rb
+++ b/app/models/users/credit_card_validation.rb
@@ -8,7 +8,7 @@ module Users
self.table_name = 'user_credit_card_validations'
- ignore_columns %i[last_digits network holder_name expiration_date], remove_with: '16.8', remove_after: '2023-12-22'
+ ignore_columns %i[last_digits network holder_name expiration_date], remove_with: '16.9', remove_after: '2024-01-22'
attr_accessor :last_digits, :network, :holder_name, :expiration_date
diff --git a/app/models/users/in_product_marketing_email.rb b/app/models/users/in_product_marketing_email.rb
deleted file mode 100644
index 5362a726ff5..00000000000
--- a/app/models/users/in_product_marketing_email.rb
+++ /dev/null
@@ -1,75 +0,0 @@
-# frozen_string_literal: true
-
-module Users
- class InProductMarketingEmail < ApplicationRecord
- include BulkInsertSafe
-
- belongs_to :user
-
- validates :user, presence: true
- validates :track, presence: true
- validates :series, presence: true
-
- validates :user_id, uniqueness: {
- scope: [:track, :series],
- message: 'track series email has already been sent'
- }, if: -> { track.present? }
-
- enum track: {
- create: 0,
- verify: 1,
- trial: 2,
- team: 3,
- experience: 4,
- team_short: 5,
- trial_short: 6,
- admin_verify: 7,
- invite_team: 8
- }, _suffix: true
-
- # Tracks we don't send emails for (e.g. unsuccessful experiment). These
- # are kept since we already have DB records that use the enum value.
- INACTIVE_TRACK_NAMES = %w[invite_team experience].freeze
- ACTIVE_TRACKS = tracks.except(*INACTIVE_TRACK_NAMES)
-
- scope :for_user_with_track_and_series, ->(user, track, series) do
- where(user: user, track: track, series: series)
- end
-
- scope :without_track_and_series, ->(track, series) do
- join_condition = for_user.and(for_track_and_series(track, series))
- users_without_records(join_condition)
- end
-
- def self.users_table
- User.arel_table
- end
-
- def self.distinct_users_sql
- name = users_table.name
- Arel.sql("DISTINCT ON(#{name}.id) #{name}.*")
- end
-
- def self.users_without_records(condition)
- arel_join = users_table.join(arel_table, Arel::Nodes::OuterJoin).on(condition)
- joins(arel_join.join_sources)
- .where(in_product_marketing_emails: { id: nil })
- .select(distinct_users_sql)
- end
-
- def self.for_user
- arel_table[:user_id].eq(users_table[:id])
- end
-
- def self.for_track_and_series(track, series)
- arel_table[:track].eq(ACTIVE_TRACKS[track])
- .and(arel_table[:series]).eq(series)
- end
-
- def self.save_cta_click(user, track, series)
- email = for_user_with_track_and_series(user, track, series).take
-
- email.update(cta_clicked_at: Time.zone.now) if email && email.cta_clicked_at.blank?
- end
- end
-end
diff --git a/app/models/users/phone_number_validation.rb b/app/models/users/phone_number_validation.rb
index 072b75a1c90..ffb8d3a95a2 100644
--- a/app/models/users/phone_number_validation.rb
+++ b/app/models/users/phone_number_validation.rb
@@ -4,12 +4,17 @@ module Users
class PhoneNumberValidation < ApplicationRecord
include IgnorableColumns
+ # SMS send attempts subsequent to the first one will have wait times of 1
+ # min, 3 min, 5 min after each one respectively. Wait time between the fifth
+ # attempt and so on will be 10 minutes.
+ SMS_SEND_WAIT_TIMES = [1.minute, 3.minutes, 5.minutes, 10.minutes].freeze
+
self.primary_key = :user_id
self.table_name = 'user_phone_number_validations'
ignore_column :verification_attempts, remove_with: '16.7', remove_after: '2023-11-17'
- belongs_to :user, foreign_key: :user_id
+ belongs_to :user
belongs_to :banned_user, class_name: '::Users::BannedUser', foreign_key: :user_id
validates :country, presence: true, length: { maximum: 3 }
@@ -26,13 +31,24 @@ module Users
presence: true,
format: {
with: /\A\d+\Z/,
- message: -> (object, data) { _('can contain only digits') }
+ message: ->(_object, _data) { _('can contain only digits') }
},
length: { maximum: 12 }
validates :telesign_reference_xid, length: { maximum: 255 }
- scope :for_user, -> (user_id) { where(user_id: user_id) }
+ scope :for_user, ->(user_id) { where(user_id: user_id) }
+
+ scope :similar_to, ->(phone_number_validation) do
+ where(
+ international_dial_code: phone_number_validation.international_dial_code,
+ phone_number: phone_number_validation.phone_number
+ )
+ end
+
+ def similar_records
+ self.class.similar_to(self).includes(:user)
+ end
def self.related_to_banned_user?(international_dial_code, phone_number)
joins(:banned_user)
@@ -51,5 +67,18 @@ module Users
def validated?
validated_at.present?
end
+
+ def sms_send_allowed_after
+ return unless Feature.enabled?(:sms_send_wait_time, user)
+
+ # first send is allowed anytime
+ return if sms_send_count < 1
+ return unless sms_sent_at
+
+ max_wait_time = SMS_SEND_WAIT_TIMES.last
+ wait_time = SMS_SEND_WAIT_TIMES.fetch(sms_send_count - 1, max_wait_time)
+
+ sms_sent_at + wait_time
+ end
end
end
diff --git a/app/models/work_item.rb b/app/models/work_item.rb
index 77f684e3578..f1d007e8167 100644
--- a/app/models/work_item.rb
+++ b/app/models/work_item.rb
@@ -5,7 +5,7 @@ class WorkItem < Issue
COMMON_QUICK_ACTIONS_COMMANDS = [
:title, :reopen, :close, :cc, :tableflip, :shrug, :type, :promote_to, :checkin_reminder,
- :subscribe, :unsubscribe, :confidential, :award
+ :subscribe, :unsubscribe, :confidential, :award, :react
].freeze
self.table_name = 'issues'
diff --git a/app/models/work_items/hierarchy_restriction.rb b/app/models/work_items/hierarchy_restriction.rb
index a253447a8db..f74f2f037b1 100644
--- a/app/models/work_items/hierarchy_restriction.rb
+++ b/app/models/work_items/hierarchy_restriction.rb
@@ -7,8 +7,17 @@ module WorkItems
belongs_to :parent_type, class_name: 'WorkItems::Type'
belongs_to :child_type, class_name: 'WorkItems::Type'
+ after_destroy :clear_parent_type_cache!
+ after_save :clear_parent_type_cache!
+
validates :parent_type, presence: true
validates :child_type, presence: true
validates :child_type, uniqueness: { scope: :parent_type_id }
+
+ private
+
+ def clear_parent_type_cache!
+ parent_type.clear_reactive_cache!
+ end
end
end
diff --git a/app/models/work_items/widget_definition.rb b/app/models/work_items/widget_definition.rb
index f25c951406f..2637a7c8185 100644
--- a/app/models/work_items/widget_definition.rb
+++ b/app/models/work_items/widget_definition.rb
@@ -32,7 +32,9 @@ module WorkItems
notifications: 14,
current_user_todos: 15,
award_emoji: 16,
- linked_items: 17
+ linked_items: 17,
+ color: 18, # EE-only
+ rolledup_dates: 19 # EE-only
}
def self.available_widgets
diff --git a/app/models/work_items/widgets/notes.rb b/app/models/work_items/widgets/notes.rb
index bde94ea8f43..67ee19f4947 100644
--- a/app/models/work_items/widgets/notes.rb
+++ b/app/models/work_items/widgets/notes.rb
@@ -4,8 +4,18 @@ module WorkItems
module Widgets
class Notes < Base
delegate :notes, to: :work_item
+ delegate :discussion_locked, to: :work_item
+
delegate_missing_to :work_item
+ def self.quick_action_commands
+ [:lock, :unlock]
+ end
+
+ def self.quick_action_params
+ [:discussion_locked]
+ end
+
def declarative_policy_delegate
work_item
end
diff --git a/app/policies/container_registry/referrer_policy.rb b/app/policies/container_registry/referrer_policy.rb
new file mode 100644
index 00000000000..96eb4c60c84
--- /dev/null
+++ b/app/policies/container_registry/referrer_policy.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+module ContainerRegistry
+ class ReferrerPolicy < BasePolicy
+ delegate { @subject.tag }
+ end
+end
diff --git a/app/policies/global_policy.rb b/app/policies/global_policy.rb
index 175f86c9673..85ddf61fbd4 100644
--- a/app/policies/global_policy.rb
+++ b/app/policies/global_policy.rb
@@ -15,6 +15,8 @@ class GlobalPolicy < BasePolicy
@user&.required_terms_not_accepted?
end
+ condition(:can_create_group_and_projects, scope: :user) { @user&.allow_user_to_create_group_and_project? }
+
condition(:password_expired, scope: :user) do
@user&.password_expired_if_applicable?
end
@@ -90,6 +92,8 @@ class GlobalPolicy < BasePolicy
enable :create_group
end
+ rule { ~can_create_group_and_projects }.prevent :create_group
+
rule { can_create_organization }.policy do
enable :create_organization
end
diff --git a/app/policies/organizations/organization_policy.rb b/app/policies/organizations/organization_policy.rb
index d538b786f78..a203a58b164 100644
--- a/app/policies/organizations/organization_policy.rb
+++ b/app/policies/organizations/organization_policy.rb
@@ -3,6 +3,7 @@
module Organizations
class OrganizationPolicy < BasePolicy
condition(:organization_user) { @subject.user?(@user) }
+ condition(:organization_owner) { @subject.owner?(@user) }
desc 'Organization is public'
condition(:public_organization, scope: :subject, score: 0) { true }
@@ -13,14 +14,19 @@ module Organizations
rule { admin }.policy do
enable :admin_organization
+ enable :create_group
enable :read_organization
enable :read_organization_user
end
- rule { organization_user }.policy do
+ rule { organization_owner }.policy do
enable :admin_organization
+ end
+
+ rule { organization_user }.policy do
enable :read_organization
enable :read_organization_user
+ enable :create_group
end
end
end
diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb
index 255538c538a..a26758974d6 100644
--- a/app/policies/project_policy.rb
+++ b/app/policies/project_policy.rb
@@ -914,6 +914,7 @@ class ProjectPolicy < BasePolicy
rule { can?(:admin_project) }.policy do
enable :read_usage_quotas
+ enable :view_edit_page
end
rule { can?(:project_bot_access) }.policy do
diff --git a/app/presenters/blob_presenter.rb b/app/presenters/blob_presenter.rb
index c52fc168c55..087fb8bf201 100644
--- a/app/presenters/blob_presenter.rb
+++ b/app/presenters/blob_presenter.rb
@@ -22,14 +22,15 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated
)
end
- def highlight(to: nil, plain: nil)
+ def highlight(to: nil, plain: nil, used_on: :blob)
load_all_blob_data
Gitlab::Highlight.highlight(
blob.path,
blob_data(to),
language: blob_language,
- plain: plain
+ plain: plain,
+ used_on: used_on
)
end
diff --git a/app/presenters/projects/security/configuration_presenter.rb b/app/presenters/projects/security/configuration_presenter.rb
index a0d731f0ccf..244f36f627d 100644
--- a/app/presenters/projects/security/configuration_presenter.rb
+++ b/app/presenters/projects/security/configuration_presenter.rb
@@ -85,7 +85,8 @@ module Projects
available: scan.available?,
can_enable_by_merge_request: scan.can_enable_by_merge_request?,
meta_info_path: scan.meta_info_path,
- on_demand_available: scan.on_demand_available?
+ on_demand_available: scan.on_demand_available?,
+ security_features: scan.security_features
}
end
diff --git a/app/serializers/activity_pub/activity_serializer.rb b/app/serializers/activity_pub/activity_serializer.rb
new file mode 100644
index 00000000000..71a1bfece6b
--- /dev/null
+++ b/app/serializers/activity_pub/activity_serializer.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+module ActivityPub
+ # Serializer for the `Activity` ActivityStreams model.
+ # Reference: https://www.w3.org/TR/activitystreams-core/#activities
+ class ActivitySerializer < ObjectSerializer
+ MissingActorError = Class.new(StandardError)
+ MissingObjectError = Class.new(StandardError)
+ IntransitiveWithObjectError = Class.new(StandardError)
+
+ private
+
+ def validate_response(serialized, opts)
+ response = super(serialized, opts)
+
+ unless response[:actor].present?
+ raise MissingActorError, "The serializer does not provide the mandatory 'actor' field."
+ end
+
+ if opts[:intransitive] && response[:object].present?
+ raise IntransitiveWithObjectError, <<~ERROR
+ The serializer does provide both the 'object' field and the :intransitive option.
+ Intransitive activities are meant precisely for when no object is available.
+ Please remove either of those.
+ See https://www.w3.org/TR/activitystreams-vocabulary/#activity-types
+ ERROR
+ end
+
+ unless opts[:intransitive] || response[:object].present?
+ raise MissingObjectError, <<~ERROR
+ The serializer does not provide the mandatory 'object' field.
+ Pass the :intransitive option to #represent if this is an intransitive activity.
+ See https://www.w3.org/TR/activitystreams-vocabulary/#activity-types
+ ERROR
+ end
+
+ response
+ end
+ end
+end
diff --git a/app/serializers/activity_pub/activity_streams_serializer.rb b/app/serializers/activity_pub/activity_streams_serializer.rb
deleted file mode 100644
index 39caa4a6d10..00000000000
--- a/app/serializers/activity_pub/activity_streams_serializer.rb
+++ /dev/null
@@ -1,90 +0,0 @@
-# frozen_string_literal: true
-
-module ActivityPub
- class ActivityStreamsSerializer < ::BaseSerializer
- MissingIdentifierError = Class.new(StandardError)
- MissingTypeError = Class.new(StandardError)
- MissingOutboxError = Class.new(StandardError)
-
- alias_method :base_represent, :represent
-
- def represent(resource, opts = {}, entity_class = nil)
- response = if respond_to?(:paginated?) && paginated?
- represent_paginated(resource, opts, entity_class)
- else
- represent_whole(resource, opts, entity_class)
- end
-
- validate_response(HashWithIndifferentAccess.new(response))
- end
-
- private
-
- def validate_response(response)
- unless response[:id].present?
- raise MissingIdentifierError, "The serializer does not provide the mandatory 'id' field."
- end
-
- unless response[:type].present?
- raise MissingTypeError, "The serializer does not provide the mandatory 'type' field."
- end
-
- response
- end
-
- def represent_whole(resource, opts, entity_class)
- raise MissingOutboxError, 'Please provide an :outbox option for this actor' unless opts[:outbox].present?
-
- serialized = base_represent(resource, opts, entity_class)
-
- {
- :@context => "https://www.w3.org/ns/activitystreams",
- inbox: opts[:inbox],
- outbox: opts[:outbox]
- }.merge(serialized)
- end
-
- def represent_paginated(resources, opts, entity_class)
- if paginator.params['page'].present?
- represent_page(resources, resources.current_page, opts, entity_class)
- else
- represent_pagination_index(resources)
- end
- end
-
- def represent_page(resources, page, opts, entity_class)
- opts[:page] = page
- serialized = base_represent(resources, opts, entity_class)
-
- {
- :@context => 'https://www.w3.org/ns/activitystreams',
- type: 'OrderedCollectionPage',
- id: collection_url(page),
- prev: page > 1 ? collection_url(page - 1) : nil,
- next: page < resources.total_pages ? collection_url(page + 1) : nil,
- partOf: collection_url,
- orderedItems: serialized
- }
- end
-
- def represent_pagination_index(resources)
- {
- :@context => 'https://www.w3.org/ns/activitystreams',
- type: 'OrderedCollection',
- id: collection_url,
- totalItems: resources.total_count,
- first: collection_url(1),
- last: collection_url(resources.total_pages)
- }
- end
-
- def collection_url(page = nil)
- uri = URI.parse(paginator.request.url)
- uri.query ||= ""
- parts = uri.query.split('&').reject { |part| part =~ /^page=/ }
- parts << "page=#{page}" if page
- uri.query = parts.join('&')
- uri.to_s.sub(/\?$/, '')
- end
- end
-end
diff --git a/app/serializers/activity_pub/actor_serializer.rb b/app/serializers/activity_pub/actor_serializer.rb
new file mode 100644
index 00000000000..14ab43666ec
--- /dev/null
+++ b/app/serializers/activity_pub/actor_serializer.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+module ActivityPub
+ # Serializer for the `Actor` ActivityStreams model.
+ # Reference: https://www.w3.org/TR/activitystreams-core/#actors
+ class ActorSerializer < ObjectSerializer
+ MissingOutboxError = Class.new(StandardError)
+
+ def represent(resource, opts = {}, entity_class = nil)
+ raise MissingInboxError, 'Please provide an :inbox option for this actor' unless opts[:inbox].present?
+ raise MissingOutboxError, 'Please provide an :outbox option for this actor' unless opts[:outbox].present?
+
+ super
+ end
+
+ private
+
+ def validate_response(response, _opts)
+ unless response[:id].present?
+ raise MissingIdentifierError, "The serializer does not provide the mandatory 'id' field."
+ end
+
+ unless response[:type].present?
+ raise MissingTypeError, "The serializer does not provide the mandatory 'type' field."
+ end
+
+ response
+ end
+
+ def wrap(serialized, opts)
+ parent_value = super(serialized, opts)
+
+ {
+ inbox: opts[:inbox],
+ outbox: opts[:outbox]
+ }.merge(parent_value)
+ end
+ end
+end
diff --git a/app/serializers/activity_pub/collection_serializer.rb b/app/serializers/activity_pub/collection_serializer.rb
new file mode 100644
index 00000000000..16c78eb1b7d
--- /dev/null
+++ b/app/serializers/activity_pub/collection_serializer.rb
@@ -0,0 +1,68 @@
+# frozen_string_literal: true
+
+module ActivityPub
+ # Serializer for the `Collection` ActivityStreams model.
+ # Reference: https://www.w3.org/TR/activitystreams-core/#collections
+ class CollectionSerializer < ::BaseSerializer
+ include WithPagination
+
+ NotPaginatedError = Class.new(StandardError)
+
+ alias_method :base_represent, :represent
+
+ def represent(resources, opts = {})
+ unless respond_to?(:paginated?) && paginated?
+ raise NotPaginatedError, 'Pass #with_pagination to the serializer or use ActivityPub::ObjectSerializer instead'
+ end
+
+ response = if paginator.params['page'].present?
+ represent_page(resources, paginator.params['page'].to_i, opts)
+ else
+ represent_pagination_index(resources)
+ end
+
+ HashWithIndifferentAccess.new(response)
+ end
+
+ private
+
+ def represent_page(resources, page, opts)
+ resources = paginator.paginate(resources)
+ opts[:page] = page
+ serialized = base_represent(resources, opts)
+
+ {
+ :@context => 'https://www.w3.org/ns/activitystreams',
+ type: 'OrderedCollectionPage',
+ id: collection_url(page),
+ prev: page > 1 ? collection_url(page - 1) : nil,
+ next: page < resources.total_pages ? collection_url(page + 1) : nil,
+ partOf: collection_url,
+ orderedItems: serialized
+ }
+ end
+
+ def represent_pagination_index(resources)
+ paginator.params['page'] = 1
+ resources = paginator.paginate(resources)
+
+ {
+ :@context => 'https://www.w3.org/ns/activitystreams',
+ type: 'OrderedCollection',
+ id: collection_url,
+ totalItems: resources.total_count,
+ first: collection_url(1),
+ last: collection_url(resources.total_pages)
+ }
+ end
+
+ def collection_url(page = nil)
+ uri = URI.parse(paginator.request.url)
+ uri.query ||= ""
+ parts = uri.query.split('&').reject { |part| part =~ /^page=/ }
+ parts << "page=#{page}" if page
+ uri.query = parts.join('&')
+ uri.to_s.sub(/\?$/, '')
+ end
+ end
+end
diff --git a/app/serializers/activity_pub/object_serializer.rb b/app/serializers/activity_pub/object_serializer.rb
new file mode 100644
index 00000000000..cdcef59cc41
--- /dev/null
+++ b/app/serializers/activity_pub/object_serializer.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+module ActivityPub
+ # Serializer for the `Object` ActivityStreams model.
+ # Reference: https://www.w3.org/TR/activitystreams-core/#object
+ class ObjectSerializer < ::BaseSerializer
+ MissingIdentifierError = Class.new(StandardError)
+ MissingTypeError = Class.new(StandardError)
+
+ def represent(resource, opts = {}, entity_class = nil)
+ serialized = super(resource, opts, entity_class)
+ response = wrap(serialized, opts)
+
+ validate_response(HashWithIndifferentAccess.new(response), opts)
+ end
+
+ private
+
+ def wrap(serialized, _opts)
+ { :@context => "https://www.w3.org/ns/activitystreams" }.merge(serialized)
+ end
+
+ def validate_response(response, _opts)
+ unless response[:id].present?
+ raise MissingIdentifierError, "The serializer does not provide the mandatory 'id' field."
+ end
+
+ unless response[:type].present?
+ raise MissingTypeError, "The serializer does not provide the mandatory 'type' field."
+ end
+
+ response
+ end
+ end
+end
diff --git a/app/serializers/activity_pub/publish_release_activity_serializer.rb b/app/serializers/activity_pub/publish_release_activity_serializer.rb
new file mode 100644
index 00000000000..b70ff470af5
--- /dev/null
+++ b/app/serializers/activity_pub/publish_release_activity_serializer.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+module ActivityPub
+ class PublishReleaseActivitySerializer < ActivitySerializer
+ entity ReleaseEntity
+ end
+end
diff --git a/app/serializers/activity_pub/releases_actor_serializer.rb b/app/serializers/activity_pub/releases_actor_serializer.rb
index 5bae83f2dc7..f4b33e25393 100644
--- a/app/serializers/activity_pub/releases_actor_serializer.rb
+++ b/app/serializers/activity_pub/releases_actor_serializer.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
module ActivityPub
- class ReleasesActorSerializer < ActivityStreamsSerializer
+ class ReleasesActorSerializer < ActorSerializer
entity ReleasesActorEntity
end
end
diff --git a/app/serializers/activity_pub/releases_outbox_serializer.rb b/app/serializers/activity_pub/releases_outbox_serializer.rb
index b6d4e633fb0..6087e713e64 100644
--- a/app/serializers/activity_pub/releases_outbox_serializer.rb
+++ b/app/serializers/activity_pub/releases_outbox_serializer.rb
@@ -1,9 +1,7 @@
# frozen_string_literal: true
module ActivityPub
- class ReleasesOutboxSerializer < ActivityStreamsSerializer
- include WithPagination
-
+ class ReleasesOutboxSerializer < CollectionSerializer
entity ReleaseEntity
end
end
diff --git a/app/serializers/admin/abuse_report_details_entity.rb b/app/serializers/admin/abuse_report_details_entity.rb
index a654482b989..414517dc77e 100644
--- a/app/serializers/admin/abuse_report_details_entity.rb
+++ b/app/serializers/admin/abuse_report_details_entity.rb
@@ -17,12 +17,6 @@ module Admin
admin_user_path(report.user)
end
- expose :plan do |report|
- if Gitlab::CurrentSettings.current_application_settings.try(:should_check_namespace_plan?)
- report.user.namespace&.actual_plan&.title
- end
- end
-
expose :verification_state do
expose :email do |report|
report.user.confirmed?
@@ -44,6 +38,15 @@ module Admin
end
end
+ expose :phone_number, if: ->(report) { report.user.phone_number_validation.present? } do
+ expose :similar_records_count do |report|
+ report.user.phone_number_validation.similar_records.count
+ end
+ expose :phone_matches_link do |report|
+ phone_match_admin_user_path(report.user) if Gitlab.ee?
+ end
+ end
+
expose :past_closed_reports do |report|
AbuseReportEntity.represent(report.past_closed_reports_for_user, only: [:created_at, :category, :report_path])
end
@@ -82,3 +85,5 @@ module Admin
end
end
end
+
+Admin::AbuseReportDetailsEntity.prepend_mod_with('Admin::AbuseReportDetailsEntity')
diff --git a/app/serializers/build_details_entity.rb b/app/serializers/build_details_entity.rb
index 35063ceeb06..e166119f59d 100644
--- a/app/serializers/build_details_entity.rb
+++ b/app/serializers/build_details_entity.rb
@@ -155,11 +155,11 @@ class BuildDetailsEntity < Ci::JobEntity
# We do not return the invalid_dependencies for all scenarios see https://gitlab.com/gitlab-org/gitlab/-/issues/287772#note_914406387
punctuation = invalid_dependencies.empty? ? '.' : ': '
_("This job could not start because it could not retrieve the needed artifacts%{punctuation}%{invalid_dependencies}") %
- { invalid_dependencies: html_escape(invalid_dependencies), punctuation: punctuation }
+ { invalid_dependencies: ERB::Util.html_escape(invalid_dependencies), punctuation: punctuation }
end
def help_message(docs_url, troubleshooting_url)
- html_escape(_("Learn more about <a href=\"#{docs_url}\">dependencies</a> and <a href=\"#{troubleshooting_url}\">common causes</a> of this error.</a>".html_safe))
+ ERB::Util.html_escape(_("Learn more about <a href=\"#{docs_url}\">dependencies</a> and <a href=\"#{troubleshooting_url}\">common causes</a> of this error.</a>".html_safe))
end
end
diff --git a/app/serializers/ci/basic_variable_entity.rb b/app/serializers/ci/basic_variable_entity.rb
index 210c01408a6..5907bf0f29c 100644
--- a/app/serializers/ci/basic_variable_entity.rb
+++ b/app/serializers/ci/basic_variable_entity.rb
@@ -5,6 +5,7 @@ module Ci
expose :id
expose :key
expose :value
+ expose :description
expose :variable_type
expose :protected?, as: :protected
diff --git a/app/serializers/diffs_metadata_entity.rb b/app/serializers/diffs_metadata_entity.rb
index e55f31a8376..b840f3acb88 100644
--- a/app/serializers/diffs_metadata_entity.rb
+++ b/app/serializers/diffs_metadata_entity.rb
@@ -15,6 +15,10 @@ class DiffsMetadataEntity < DiffsEntity
presenter(options[:merge_request]).conflict_resolution_path
end
+ # #cannot_be_merged? is generally indicative of conflicts, and is set via
+ # MergeRequests::MergeabilityCheckService. However, it can also indicate
+ # that either #has_no_commits? or #branch_missing? are true.
+ #
expose :has_conflicts do |_, options|
options[:merge_request].cannot_be_merged?
end
diff --git a/app/services/auth/container_registry_authentication_service.rb b/app/services/auth/container_registry_authentication_service.rb
index 7d473f9ed89..f515fdede29 100644
--- a/app/services/auth/container_registry_authentication_service.rb
+++ b/app/services/auth/container_registry_authentication_service.rb
@@ -231,7 +231,7 @@ module Auth
return if path.has_repository?
return unless actions.include?('push')
- ContainerRepository.find_or_create_from_path(path)
+ ContainerRepository.find_or_create_from_path!(path)
end
# Overridden in EE
diff --git a/app/services/boards/base_item_move_service.rb b/app/services/boards/base_item_move_service.rb
index c9da889c536..7d202da96ce 100644
--- a/app/services/boards/base_item_move_service.rb
+++ b/app/services/boards/base_item_move_service.rb
@@ -84,20 +84,11 @@ module Boards
end
def remove_label_ids
- label_ids =
- if moving_to_list.movable?
- moving_from_list.label_id
- else
- board_label_ids
- end
+ label_ids = moving_to_list.movable? ? moving_from_list.label_id : []
Array(label_ids).compact
end
- def board_label_ids
- ::Label.ids_on_board(board.id)
- end
-
def move_params_from_list_position(position)
if position == LIST_END_POSITION
{ move_before_id: moving_to_list_items_relation.reverse_order.pick(:id), move_after_id: nil }
diff --git a/app/services/bulk_imports/file_download_service.rb b/app/services/bulk_imports/file_download_service.rb
index 8fa438a76ce..39c27c04b8c 100644
--- a/app/services/bulk_imports/file_download_service.rb
+++ b/app/services/bulk_imports/file_download_service.rb
@@ -71,7 +71,6 @@ module BulkImports
unless @remote_content_validated
validate_content_type
- validate_content_length
@remote_content_validated = true
end
@@ -130,11 +129,12 @@ module BulkImports
end
def validate_url
- ::Gitlab::UrlBlocker.validate!(
+ ::Gitlab::HTTP_V2::UrlBlocker.validate!(
http_client.resource_url(relative_url),
allow_localhost: allow_local_requests?,
allow_local_network: allow_local_requests?,
- schemes: %w[http https]
+ schemes: %w[http https],
+ deny_all_requests_except_allowed: Gitlab::CurrentSettings.deny_all_requests_except_allowed?
)
end
diff --git a/app/services/ci/cancel_pipeline_service.rb b/app/services/ci/cancel_pipeline_service.rb
index 38053b13921..92eead3fdd1 100644
--- a/app/services/ci/cancel_pipeline_service.rb
+++ b/app/services/ci/cancel_pipeline_service.rb
@@ -10,17 +10,20 @@ module Ci
# @cascade_to_children - if true cancels all related child pipelines for parent child pipelines
# @auto_canceled_by_pipeline - store the pipeline_id of the pipeline that triggered cancellation
# @execute_async - if true cancel the children asyncronously
+ # @safe_cancellation - if true only cancel interruptible:true jobs
def initialize(
pipeline:,
current_user:,
cascade_to_children: true,
auto_canceled_by_pipeline: nil,
- execute_async: true)
+ execute_async: true,
+ safe_cancellation: false)
@pipeline = pipeline
@current_user = current_user
@cascade_to_children = cascade_to_children
@auto_canceled_by_pipeline = auto_canceled_by_pipeline
@execute_async = execute_async
+ @safe_cancellation = safe_cancellation
end
def execute
@@ -42,13 +45,16 @@ module Ci
log_pipeline_being_canceled
pipeline.update_column(:auto_canceled_by_id, @auto_canceled_by_pipeline.id) if @auto_canceled_by_pipeline
- cancel_jobs(pipeline.cancelable_statuses)
- return ServiceResponse.success unless cascade_to_children?
+ if @safe_cancellation
+ # Only build and bridge (trigger) jobs can be interruptible.
+ # We do not cancel GenericCommitStatuses because they can't have the `interruptible` attribute.
+ cancel_jobs(pipeline.processables.cancelable.interruptible)
+ else
+ cancel_jobs(pipeline.cancelable_statuses)
+ end
- # cancel any bridges that could spin up new child pipelines
- cancel_jobs(pipeline.bridges_in_self_and_project_descendants.cancelable)
- cancel_children
+ cancel_children if cascade_to_children?
ServiceResponse.success
end
@@ -106,8 +112,15 @@ module Ci
)
end
- # For parent child-pipelines only (not multi-project)
+ # We don't handle the case when `cascade_to_children` is `true` and `safe_cancellation` is `true`
+ # because `safe_cancellation` is passed as `true` only when `cascade_to_children` is `false`
+ # from `CancelRedundantPipelinesService`.
+ # In the future, when "safe cancellation" is implemented as a regular cancellation feature,
+ # we need to handle this case.
def cancel_children
+ cancel_jobs(pipeline.bridges_in_self_and_project_descendants.cancelable)
+
+ # For parent child-pipelines only (not multi-project)
pipeline.all_child_pipelines.each do |child_pipeline|
if execute_async?
::Ci::CancelPipelineWorker.perform_async(
diff --git a/app/services/ci/catalog/resources/versions/create_service.rb b/app/services/ci/catalog/resources/versions/create_service.rb
index 863bad43271..9547db7bcf1 100644
--- a/app/services/ci/catalog/resources/versions/create_service.rb
+++ b/app/services/ci/catalog/resources/versions/create_service.rb
@@ -65,10 +65,12 @@ module Ci
end
def extract_metadata(blob)
+ component_name = components_project.extract_component_name(blob.path)
+
{
- name: components_project.extract_component_name(blob.path),
+ name: component_name,
inputs: components_project.extract_inputs(blob.data),
- path: blob.path
+ path: "#{Settings.gitlab.host}/#{project.full_path}/#{component_name}@#{release.tag}"
}
end
diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb
index 2231b1dd6bd..7d3e71b003e 100644
--- a/app/services/ci/create_pipeline_service.rb
+++ b/app/services/ci/create_pipeline_service.rb
@@ -116,14 +116,6 @@ module Ci
private
- def commit
- @commit ||= project.commit(origin_sha || origin_ref)
- end
-
- def sha
- commit.try(:id)
- end
-
def create_namespace_onboarding_action
Onboarding::PipelineCreatedWorker.perform_async(project.namespace_id)
end
diff --git a/app/services/ci/create_web_ide_terminal_service.rb b/app/services/ci/create_web_ide_terminal_service.rb
index db8f61c81fa..ce4400e9f4f 100644
--- a/app/services/ci/create_web_ide_terminal_service.rb
+++ b/app/services/ci/create_web_ide_terminal_service.rb
@@ -52,7 +52,7 @@ module Ci
ref: ref,
sha: sha,
tag: false,
- before_sha: Gitlab::Git::BLANK_SHA
+ before_sha: Gitlab::Git::SHA1_BLANK_SHA
)
end
diff --git a/app/services/ci/pipeline_creation/cancel_redundant_pipelines_service.rb b/app/services/ci/pipeline_creation/cancel_redundant_pipelines_service.rb
index 224b2d96205..98469e82af3 100644
--- a/app/services/ci/pipeline_creation/cancel_redundant_pipelines_service.rb
+++ b/app/services/ci/pipeline_creation/cancel_redundant_pipelines_service.rb
@@ -23,7 +23,7 @@ module Ci
pipelines = parent_and_child_pipelines(ids)
Gitlab::OptimisticLocking.retry_lock(pipelines, name: 'cancel_pending_pipelines') do |cancelables|
- auto_cancel_interruptible_pipelines(cancelables.ids)
+ auto_cancel_pipelines(cancelables.ids)
end
end
end
@@ -69,31 +69,66 @@ module Ci
.base_and_descendants
.alive_or_scheduled
end
- # rubocop: enable CodeReuse/ActiveRecord
- def auto_cancel_interruptible_pipelines(pipeline_ids)
+ def legacy_auto_cancel_pipelines(pipeline_ids)
::Ci::Pipeline
.id_in(pipeline_ids)
- .with_only_interruptible_builds
+ .conservative_interruptible
.each do |cancelable_pipeline|
- Gitlab::AppLogger.info(
- class: self.class.name,
- message: "Pipeline #{pipeline.id} auto-canceling pipeline #{cancelable_pipeline.id}",
- canceled_pipeline_id: cancelable_pipeline.id,
- canceled_by_pipeline_id: pipeline.id,
- canceled_by_pipeline_source: pipeline.source
- )
-
- # cascade_to_children not needed because we iterate through descendants here
- ::Ci::CancelPipelineService.new(
- pipeline: cancelable_pipeline,
- current_user: nil,
- auto_canceled_by_pipeline: pipeline,
- cascade_to_children: false
- ).force_execute
+ cancel_pipeline(cancelable_pipeline, safe_cancellation: false)
end
end
+ def auto_cancel_pipelines(pipeline_ids)
+ if Feature.disabled?(:ci_workflow_auto_cancel_on_new_commit, project)
+ return legacy_auto_cancel_pipelines(pipeline_ids)
+ end
+
+ ::Ci::Pipeline
+ .id_in(pipeline_ids)
+ .each do |cancelable_pipeline|
+ case cancelable_pipeline.auto_cancel_on_new_commit
+ when 'none'
+ # no-op
+ when 'conservative'
+ next unless conservative_cancellable_pipeline_ids(pipeline_ids).include?(cancelable_pipeline.id)
+
+ cancel_pipeline(cancelable_pipeline, safe_cancellation: false)
+ when 'interruptible'
+ cancel_pipeline(cancelable_pipeline, safe_cancellation: true)
+ else
+ raise ArgumentError,
+ "Unknown auto_cancel_on_new_commit value: #{cancelable_pipeline.auto_cancel_on_new_commit}"
+ end
+ end
+ end
+
+ def conservative_cancellable_pipeline_ids(pipeline_ids)
+ strong_memoize_with(:conservative_cancellable_pipeline_ids, pipeline_ids) do
+ ::Ci::Pipeline.id_in(pipeline_ids).conservative_interruptible.ids
+ end
+ end
+ # rubocop: enable CodeReuse/ActiveRecord
+
+ def cancel_pipeline(cancelable_pipeline, safe_cancellation:)
+ Gitlab::AppLogger.info(
+ class: self.class.name,
+ message: "Pipeline #{pipeline.id} auto-canceling pipeline #{cancelable_pipeline.id}",
+ canceled_pipeline_id: cancelable_pipeline.id,
+ canceled_by_pipeline_id: pipeline.id,
+ canceled_by_pipeline_source: pipeline.source
+ )
+
+ # cascade_to_children not needed because we iterate through descendants here
+ ::Ci::CancelPipelineService.new(
+ pipeline: cancelable_pipeline,
+ current_user: nil,
+ auto_canceled_by_pipeline: pipeline,
+ cascade_to_children: false,
+ safe_cancellation: safe_cancellation
+ ).force_execute
+ end
+
def pipelines_created_after
3.days.ago
end
diff --git a/app/services/ci/runners/unregister_runner_manager_service.rb b/app/services/ci/runners/unregister_runner_manager_service.rb
index ecf6aba09c7..9b3bd4a53e2 100644
--- a/app/services/ci/runners/unregister_runner_manager_service.rb
+++ b/app/services/ci/runners/unregister_runner_manager_service.rb
@@ -20,6 +20,8 @@ module Ci
runner_manager = runner.runner_managers.find_by_system_xid!(system_id)
runner_manager.destroy!
+ runner.clear_heartbeat if runner.runner_managers.empty?
+
ServiceResponse.success
end
diff --git a/app/services/ci/unlock_pipeline_service.rb b/app/services/ci/unlock_pipeline_service.rb
index 88d4a8fd0be..bd42871ffbe 100644
--- a/app/services/ci/unlock_pipeline_service.rb
+++ b/app/services/ci/unlock_pipeline_service.rb
@@ -84,7 +84,7 @@ module Ci
def unlock_job_artifacts
start = Time.current
- pipeline.builds.each_batch(of: BATCH_SIZE) do |builds|
+ builds_relation.each_batch(of: BATCH_SIZE) do |builds|
# rubocop: disable CodeReuse/ActiveRecord
Ci::JobArtifact.where(job_id: builds.pluck(:id)).each_batch(of: BATCH_SIZE) do |job_artifacts|
unlocked_count = Ci::JobArtifact
@@ -100,6 +100,16 @@ module Ci
end
end
+ # Removes the partition_id filter from the query until we get more data in the
+ # second partition.
+ def builds_relation
+ if Feature.enabled?(:disable_ci_partition_pruning, pipeline.project, type: :wip)
+ Ci::Build.in_pipelines(pipeline)
+ else
+ pipeline.builds
+ end
+ end
+
def unlock_pipeline_artifacts
@unlocked_pipeline_artifacts_count = pipeline.pipeline_artifacts.update_all(locked: :unlocked)
end
diff --git a/app/services/click_house/sync_strategies/base_sync_strategy.rb b/app/services/click_house/sync_strategies/base_sync_strategy.rb
new file mode 100644
index 00000000000..58c2161b83c
--- /dev/null
+++ b/app/services/click_house/sync_strategies/base_sync_strategy.rb
@@ -0,0 +1,124 @@
+# frozen_string_literal: true
+
+module ClickHouse
+ module SyncStrategies
+ class BaseSyncStrategy
+ include Gitlab::ExclusiveLeaseHelpers
+ include Gitlab::Utils::StrongMemoize
+
+ # the job is scheduled every 3 minutes and we will allow maximum 2.5 minutes runtime
+ MAX_TTL = 2.5.minutes.to_i
+ MAX_RUNTIME = 120.seconds
+ BATCH_SIZE = 500
+ INSERT_BATCH_SIZE = 5000
+
+ def execute
+ return { status: :disabled } unless enabled?
+
+ metadata = { status: :processed }
+
+ begin
+ # Prevent parallel jobs
+ in_lock(self.class.to_s, ttl: MAX_TTL, retries: 0) do
+ loop { break unless next_batch }
+
+ metadata.merge!(records_inserted: context.total_record_count,
+ reached_end_of_table: context.no_more_records?)
+
+ if context.last_processed_id
+ ClickHouse::SyncCursor.update_cursor_for(model_class.table_name,
+ context.last_processed_id)
+ end
+ end
+ rescue Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError
+ # Skip retrying, just let the next worker to start after a few minutes
+ metadata = { status: :skipped }
+ end
+
+ metadata
+ end
+
+ private
+
+ def enabled?
+ ClickHouse::Client.database_configured?(:main)
+ end
+
+ def context
+ @context ||= ClickHouse::RecordSyncContext.new(
+ last_record_id: ClickHouse::SyncCursor.cursor_for(model_class.table_name),
+ max_records_per_batch: INSERT_BATCH_SIZE,
+ runtime_limiter: Analytics::CycleAnalytics::RuntimeLimiter.new(MAX_RUNTIME)
+ )
+ end
+
+ def last_id_in_postgresql
+ model_class.maximum(:id)
+ end
+
+ strong_memoize_attr :last_id_in_postgresql
+
+ def next_batch
+ context.new_batch!
+
+ CsvBuilder::Gzip.new(process_batch(context), csv_mapping).render do |tempfile, rows_written|
+ unless rows_written == 0
+ ClickHouse::Client.insert_csv(insert_query, File.open(tempfile.path),
+ :main)
+ end
+ end
+
+ !(context.over_time? || context.no_more_records?)
+ end
+
+ def process_batch(context)
+ Enumerator.new do |yielder|
+ has_more_data = false
+ batching_scope.each_batch(of: BATCH_SIZE) do |relation|
+ records = relation.select(projections).to_a
+ has_more_data = records.size == BATCH_SIZE
+ records.each do |row|
+ yielder << transform_row(row)
+ context.last_processed_id = row.id
+
+ break if context.record_limit_reached?
+ end
+
+ break if context.over_time? || context.record_limit_reached? || !has_more_data
+ end
+
+ context.no_more_records! unless has_more_data
+ end
+ end
+
+ def transform_row(row)
+ row
+ end
+
+ # rubocop: disable CodeReuse/ActiveRecord -- because model here is dynamic and is passed by child class
+ def batching_scope
+ return model_class.none unless last_id_in_postgresql
+
+ table = model_class.arel_table
+
+ model_class
+ .where(table[:id].gt(context.last_record_id))
+ .where(table[:id].lteq(last_id_in_postgresql))
+ end
+
+ # rubocop: enable CodeReuse/ActiveRecord
+
+ def projections
+ raise NotImplementedError, "Subclasses must implement `projections`"
+ end
+
+ def csv_mapping
+ raise NotImplementedError, "Subclasses must implement `csv_mapping`"
+ end
+
+ def insert_query
+ raise NotImplementedError, "Subclasses must implement `insert_query`"
+ end
+ end
+ end
+end
diff --git a/app/services/click_house/sync_strategies/event_sync_strategy.rb b/app/services/click_house/sync_strategies/event_sync_strategy.rb
new file mode 100644
index 00000000000..3e86e8c52bc
--- /dev/null
+++ b/app/services/click_house/sync_strategies/event_sync_strategy.rb
@@ -0,0 +1,62 @@
+# frozen_string_literal: true
+
+module ClickHouse
+ module SyncStrategies
+ class EventSyncStrategy < BaseSyncStrategy
+ # transforms the traversal_ids to a String:
+ # Example: group_id/subgroup_id/group_or_projectnamespace_id/
+ PATH_COLUMN = <<~SQL
+ (
+ CASE
+ WHEN project_id IS NOT NULL THEN (SELECT array_to_string(traversal_ids, '/') || '/' FROM namespaces WHERE id = (SELECT project_namespace_id FROM projects WHERE id = events.project_id LIMIT 1) LIMIT 1)
+ WHEN group_id IS NOT NULL THEN (SELECT array_to_string(traversal_ids, '/') || '/' FROM namespaces WHERE id = events.group_id LIMIT 1)
+ ELSE ''
+ END
+ ) AS path
+ SQL
+
+ private
+
+ def csv_mapping
+ {
+ id: :id,
+ path: :path,
+ author_id: :author_id,
+ target_id: :target_id,
+ target_type: :target_type,
+ action: :raw_action,
+ created_at: :casted_created_at,
+ updated_at: :casted_updated_at
+ }
+ end
+
+ def projections
+ [
+ :id,
+ PATH_COLUMN,
+ :author_id,
+ :target_id,
+ :target_type,
+ 'action AS raw_action',
+ 'EXTRACT(epoch FROM created_at) AS casted_created_at',
+ 'EXTRACT(epoch FROM updated_at) AS casted_updated_at'
+ ]
+ end
+
+ def insert_query
+ <<~SQL.squish
+ INSERT INTO events (#{csv_mapping.keys.join(', ')})
+ SETTINGS async_insert=1, wait_for_async_insert=1 FORMAT CSV
+ SQL
+ end
+
+ def model_class
+ ::Event
+ end
+
+ def enabled?
+ super && Feature.enabled?(:event_sync_worker_for_click_house)
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/base_service.rb b/app/services/cloud_seed/google_cloud/base_service.rb
new file mode 100644
index 00000000000..e59031c5371
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/base_service.rb
@@ -0,0 +1,67 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class BaseService < ::BaseService
+ protected
+
+ def google_oauth2_token
+ @params[:google_oauth2_token]
+ end
+
+ def gcp_project_id
+ @params[:gcp_project_id]
+ end
+
+ def environment_name
+ @params[:environment_name]
+ end
+
+ def google_api_client
+ @google_api_client_instance ||= GoogleApi::CloudPlatform::Client.new(google_oauth2_token, nil)
+ end
+
+ def unique_gcp_project_ids
+ filter_params = { key: 'GCP_PROJECT_ID' }
+ @unique_gcp_project_ids ||= ::Ci::VariablesFinder.new(project, filter_params).execute.map(&:value).uniq
+ end
+
+ def group_vars_by_environment(keys)
+ filtered_vars = project.variables.filter { |variable| keys.include? variable.key }
+ filtered_vars.each_with_object({}) do |variable, grouped|
+ grouped[variable.environment_scope] ||= {}
+ grouped[variable.environment_scope][variable.key] = variable.value
+ end
+ end
+
+ def create_or_replace_project_vars(environment_scope, key, value, is_protected, is_masked = false)
+ change_params = {
+ variable_params: {
+ key: key,
+ value: value,
+ environment_scope: environment_scope,
+ protected: is_protected,
+ masked: is_masked
+ }
+ }
+ existing_variable = find_existing_variable(environment_scope, key)
+
+ if existing_variable
+ change_params[:action] = :update
+ change_params[:variable] = existing_variable
+ else
+ change_params[:action] = :create
+ end
+
+ ::Ci::ChangeVariableService.new(container: project, current_user: current_user, params: change_params).execute
+ end
+
+ private
+
+ def find_existing_variable(environment_scope, key)
+ filter_params = { key: key, filter: { environment_scope: environment_scope } }
+ ::Ci::VariablesFinder.new(project, filter_params).execute.first
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/create_cloudsql_instance_service.rb b/app/services/cloud_seed/google_cloud/create_cloudsql_instance_service.rb
new file mode 100644
index 00000000000..8b967a2d551
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/create_cloudsql_instance_service.rb
@@ -0,0 +1,80 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ DEFAULT_REGION = 'us-east1'
+
+ class CreateCloudsqlInstanceService < ::CloudSeed::GoogleCloud::BaseService
+ WORKER_INTERVAL = 30.seconds
+
+ def execute
+ create_cloud_instance
+ trigger_instance_setup_worker
+ success
+ rescue Google::Apis::Error => err
+ error(err.message)
+ end
+
+ private
+
+ def create_cloud_instance
+ google_api_client.create_cloudsql_instance(
+ gcp_project_id,
+ instance_name,
+ root_password,
+ database_version,
+ region,
+ tier
+ )
+ end
+
+ def trigger_instance_setup_worker
+ ::GoogleCloud::CreateCloudsqlInstanceWorker.perform_in(
+ WORKER_INTERVAL,
+ current_user.id,
+ project.id,
+ {
+ 'google_oauth2_token': google_oauth2_token,
+ 'gcp_project_id': gcp_project_id,
+ 'instance_name': instance_name,
+ 'database_version': database_version,
+ 'environment_name': environment_name,
+ 'is_protected': protected?
+ }
+ )
+ end
+
+ def protected?
+ project.protected_for?(environment_name)
+ end
+
+ def instance_name
+ # Generates an `instance_name` for the to-be-created Cloud SQL instance
+ # Example: `gitlab-34647-postgres-14-staging`
+ environment_alias = environment_name == '*' ? 'ALL' : environment_name
+ name = "gitlab-#{project.id}-#{database_version}-#{environment_alias}"
+ name.tr("_", "-").downcase
+ end
+
+ def root_password
+ SecureRandom.hex(16)
+ end
+
+ def database_version
+ params[:database_version]
+ end
+
+ def region
+ region = ::Ci::VariablesFinder
+ .new(project, { key: Projects::GoogleCloud::GcpRegionsController::GCP_REGION_CI_VAR_KEY,
+ environment_scope: environment_name })
+ .execute.first
+ region&.value || DEFAULT_REGION
+ end
+
+ def tier
+ params[:tier]
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/create_service_accounts_service.rb b/app/services/cloud_seed/google_cloud/create_service_accounts_service.rb
new file mode 100644
index 00000000000..f15779cc14b
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/create_service_accounts_service.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class CreateServiceAccountsService < ::CloudSeed::GoogleCloud::BaseService
+ def execute
+ service_account = google_api_client.create_service_account(gcp_project_id, service_account_name, service_account_desc)
+ service_account_key = google_api_client.create_service_account_key(gcp_project_id, service_account.unique_id)
+ google_api_client.grant_service_account_roles(gcp_project_id, service_account.email)
+
+ service_accounts_service.add_for_project(
+ environment_name,
+ service_account.project_id,
+ Gitlab::Json.dump(service_account),
+ Gitlab::Json.dump(service_account_key),
+ ProtectedBranch.protected?(project, environment_name) || ProtectedTag.protected?(project, environment_name)
+ )
+
+ ServiceResponse.success(message: _('Service account generated successfully'), payload: {
+ service_account: service_account,
+ service_account_key: service_account_key
+ })
+ end
+
+ private
+
+ def service_accounts_service
+ GoogleCloud::ServiceAccountsService.new(project)
+ end
+
+ def service_account_name
+ "GitLab :: #{project.name} :: #{environment_name}"
+ end
+
+ def service_account_desc
+ "GitLab generated service account for project '#{project.name}' and environment '#{environment_name}'"
+ end
+ end
+ end
+end
+
+CloudSeed::GoogleCloud::CreateServiceAccountsService.prepend_mod
diff --git a/app/services/cloud_seed/google_cloud/enable_cloud_run_service.rb b/app/services/cloud_seed/google_cloud/enable_cloud_run_service.rb
new file mode 100644
index 00000000000..3ab5608c937
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/enable_cloud_run_service.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class EnableCloudRunService < ::CloudSeed::GoogleCloud::BaseService
+ def execute
+ gcp_project_ids = unique_gcp_project_ids
+
+ if gcp_project_ids.empty?
+ error("No GCP projects found. Configure a service account or GCP_PROJECT_ID ci variable.")
+ else
+ gcp_project_ids.each do |gcp_project_id|
+ google_api_client.enable_cloud_run(gcp_project_id)
+ google_api_client.enable_artifacts_registry(gcp_project_id)
+ google_api_client.enable_cloud_build(gcp_project_id)
+ end
+
+ success({ gcp_project_ids: gcp_project_ids })
+ end
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/enable_cloudsql_service.rb b/app/services/cloud_seed/google_cloud/enable_cloudsql_service.rb
new file mode 100644
index 00000000000..d36f3ffd7c2
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/enable_cloudsql_service.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class EnableCloudsqlService < ::CloudSeed::GoogleCloud::BaseService
+ def execute
+ create_or_replace_project_vars(environment_name, 'GCP_PROJECT_ID', gcp_project_id, ci_var_protected?)
+
+ unique_gcp_project_ids.each do |gcp_project_id|
+ google_api_client.enable_cloud_sql_admin(gcp_project_id)
+ google_api_client.enable_compute(gcp_project_id)
+ google_api_client.enable_service_networking(gcp_project_id)
+ end
+
+ success({ gcp_project_ids: unique_gcp_project_ids })
+ rescue Google::Apis::Error => err
+ error(err.message)
+ end
+
+ private
+
+ def ci_var_protected?
+ ProtectedBranch.protected?(project, environment_name) || ProtectedTag.protected?(project, environment_name)
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/enable_vision_ai_service.rb b/app/services/cloud_seed/google_cloud/enable_vision_ai_service.rb
new file mode 100644
index 00000000000..865c11cba6a
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/enable_vision_ai_service.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class EnableVisionAiService < ::CloudSeed::GoogleCloud::BaseService
+ def execute
+ gcp_project_ids = unique_gcp_project_ids
+
+ if gcp_project_ids.empty?
+ error("No GCP projects found. Configure a service account or GCP_PROJECT_ID ci variable.")
+ else
+ gcp_project_ids.each do |gcp_project_id|
+ google_api_client.enable_vision_api(gcp_project_id)
+ end
+
+ success({ gcp_project_ids: gcp_project_ids })
+ end
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/fetch_google_ip_list_service.rb b/app/services/cloud_seed/google_cloud/fetch_google_ip_list_service.rb
new file mode 100644
index 00000000000..c02b3a87352
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/fetch_google_ip_list_service.rb
@@ -0,0 +1,93 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class FetchGoogleIpListService
+ include BaseServiceUtility
+
+ GOOGLE_IP_RANGES_URL = 'https://www.gstatic.com/ipranges/cloud.json'
+ RESPONSE_BODY_LIMIT = 1.megabyte
+ EXPECTED_CONTENT_TYPE = 'application/json'
+
+ IpListNotRetrievedError = Class.new(StandardError)
+
+ def execute
+ # Prevent too many workers from hitting the same HTTP endpoint
+ if ::Gitlab::ApplicationRateLimiter.throttled?(:fetch_google_ip_list, scope: nil)
+ return error("#{self.class} was rate limited")
+ end
+
+ subnets = fetch_and_update_cache!
+
+ Gitlab::AppJsonLogger.info(
+ class: self.class.name,
+ message: 'Successfully retrieved Google IP list',
+ subnet_count: subnets.count
+ )
+
+ success({ subnets: subnets })
+ rescue IpListNotRetrievedError => err
+ Gitlab::ErrorTracking.log_exception(err)
+ error('Google IP list not retrieved')
+ end
+
+ private
+
+ # Attempts to retrieve and parse the list of IPs from Google. Updates
+ # the internal cache so that the data is accessible.
+ #
+ # Returns an array of IPAddr objects consisting of subnets.
+ def fetch_and_update_cache!
+ parsed_response = fetch_google_ip_list
+
+ parse_google_prefixes(parsed_response).tap do |subnets|
+ ::ObjectStorage::CDN::GoogleIpCache.update!(subnets)
+ end
+ end
+
+ def fetch_google_ip_list
+ response = Gitlab::HTTP.get(GOOGLE_IP_RANGES_URL, follow_redirects: false, allow_local_requests: false)
+
+ validate_response!(response)
+
+ response.parsed_response
+ end
+
+ def validate_response!(response)
+ raise IpListNotRetrievedError, "response was #{response.code}" unless response.code == 200
+ raise IpListNotRetrievedError, "response was nil" unless response.body
+
+ parsed_response = response.parsed_response
+
+ unless response.content_type == EXPECTED_CONTENT_TYPE && parsed_response.is_a?(Hash)
+ raise IpListNotRetrievedError, "response was not JSON"
+ end
+
+ if response.body&.bytesize.to_i > RESPONSE_BODY_LIMIT
+ raise IpListNotRetrievedError, "response was too large: #{response.body.bytesize}"
+ end
+
+ prefixes = parsed_response['prefixes']
+
+ raise IpListNotRetrievedError, "JSON was type #{prefixes.class}, expected Array" unless prefixes.is_a?(Array)
+ raise IpListNotRetrievedError, "#{GOOGLE_IP_RANGES_URL} did not return any IP ranges" if prefixes.empty?
+
+ response.parsed_response
+ end
+
+ def parse_google_prefixes(parsed_response)
+ ranges = parsed_response['prefixes'].map do |prefix|
+ ip_range = prefix['ipv4Prefix'] || prefix['ipv6Prefix']
+
+ next unless ip_range
+
+ IPAddr.new(ip_range)
+ end.compact
+
+ raise IpListNotRetrievedError, "#{GOOGLE_IP_RANGES_URL} did not return any IP ranges" if ranges.empty?
+
+ ranges
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/gcp_region_add_or_replace_service.rb b/app/services/cloud_seed/google_cloud/gcp_region_add_or_replace_service.rb
new file mode 100644
index 00000000000..11a644b3e9d
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/gcp_region_add_or_replace_service.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class GcpRegionAddOrReplaceService < ::CloudSeed::GoogleCloud::BaseService
+ def execute(environment, region)
+ gcp_region_key = Projects::GoogleCloud::GcpRegionsController::GCP_REGION_CI_VAR_KEY
+
+ change_params = { variable_params: { key: gcp_region_key, value: region, environment_scope: environment } }
+ filter_params = { key: gcp_region_key, filter: { environment_scope: environment } }
+
+ existing_variable = ::Ci::VariablesFinder.new(project, filter_params).execute.first
+
+ if existing_variable
+ change_params[:action] = :update
+ change_params[:variable] = existing_variable
+ else
+ change_params[:action] = :create
+ end
+
+ ::Ci::ChangeVariableService.new(container: project, current_user: current_user, params: change_params).execute
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/generate_pipeline_service.rb b/app/services/cloud_seed/google_cloud/generate_pipeline_service.rb
new file mode 100644
index 00000000000..d8b45f301ec
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/generate_pipeline_service.rb
@@ -0,0 +1,100 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class GeneratePipelineService < ::CloudSeed::GoogleCloud::BaseService
+ ACTION_DEPLOY_TO_CLOUD_RUN = 'DEPLOY_TO_CLOUD_RUN'
+ ACTION_DEPLOY_TO_CLOUD_STORAGE = 'DEPLOY_TO_CLOUD_STORAGE'
+ ACTION_VISION_AI_PIPELINE = 'VISION_AI_PIPELINE'
+
+ def execute
+ commit_attributes = generate_commit_attributes
+ create_branch_response = ::Branches::CreateService.new(project, current_user)
+ .execute(commit_attributes[:branch_name], project.default_branch)
+
+ if create_branch_response[:status] == :error
+ return create_branch_response
+ end
+
+ branch = create_branch_response[:branch]
+
+ service = default_branch_gitlab_ci_yml.present? ? ::Files::UpdateService : ::Files::CreateService
+
+ commit_response = service.new(project, current_user, commit_attributes).execute
+
+ if commit_response[:status] == :error
+ return commit_response
+ end
+
+ success({ branch_name: branch.name, commit: commit_response })
+ end
+
+ private
+
+ def action
+ @params[:action]
+ end
+
+ def generate_commit_attributes
+ case action
+ when ACTION_DEPLOY_TO_CLOUD_RUN
+ branch_name = "deploy-to-cloud-run-#{SecureRandom.hex(8)}"
+ {
+ commit_message: 'Enable Cloud Run deployments',
+ file_path: '.gitlab-ci.yml',
+ file_content: pipeline_content('gcp/cloud-run.gitlab-ci.yml'),
+ branch_name: branch_name,
+ start_branch: branch_name
+ }
+ when ACTION_DEPLOY_TO_CLOUD_STORAGE
+ branch_name = "deploy-to-cloud-storage-#{SecureRandom.hex(8)}"
+ {
+ commit_message: 'Enable Cloud Storage deployments',
+ file_path: '.gitlab-ci.yml',
+ file_content: pipeline_content('gcp/cloud-storage.gitlab-ci.yml'),
+ branch_name: branch_name,
+ start_branch: branch_name
+ }
+ when ACTION_VISION_AI_PIPELINE
+ branch_name = "vision-ai-pipeline-#{SecureRandom.hex(8)}"
+ {
+ commit_message: 'Enable Vision AI Pipeline',
+ file_path: '.gitlab-ci.yml',
+ file_content: pipeline_content('gcp/vision-ai.gitlab-ci.yml'),
+ branch_name: branch_name,
+ start_branch: branch_name
+ }
+ end
+ end
+
+ def default_branch_gitlab_ci_yml
+ @default_branch_gitlab_ci_yml ||= project.ci_config_for(project.default_branch)
+ end
+
+ def pipeline_content(include_path)
+ gitlab_ci_yml = ::Gitlab::Ci::Config::Yaml::Loader.new(default_branch_gitlab_ci_yml || '{}').load
+
+ append_remote_include(
+ gitlab_ci_yml.content,
+ "https://gitlab.com/gitlab-org/incubation-engineering/five-minute-production/library/-/raw/main/#{include_path}"
+ )
+ end
+
+ def append_remote_include(gitlab_ci_yml, include_url)
+ stages = gitlab_ci_yml['stages'] || []
+ gitlab_ci_yml['stages'] = if action == ACTION_VISION_AI_PIPELINE
+ (stages + %w[validate detect render]).uniq
+ else
+ (stages + %w[build test deploy]).uniq
+ end
+
+ includes = gitlab_ci_yml['include'] || []
+ includes = Array.wrap(includes)
+ includes << { 'remote' => include_url }
+ gitlab_ci_yml['include'] = includes.uniq
+
+ gitlab_ci_yml.deep_stringify_keys.to_yaml
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/get_cloudsql_instances_service.rb b/app/services/cloud_seed/google_cloud/get_cloudsql_instances_service.rb
new file mode 100644
index 00000000000..b037298c8cb
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/get_cloudsql_instances_service.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class GetCloudsqlInstancesService < ::CloudSeed::GoogleCloud::BaseService
+ CLOUDSQL_KEYS = %w[GCP_PROJECT_ID GCP_CLOUDSQL_INSTANCE_NAME GCP_CLOUDSQL_VERSION].freeze
+
+ def execute
+ group_vars_by_environment(CLOUDSQL_KEYS).map do |environment_scope, value|
+ {
+ ref: environment_scope,
+ gcp_project: value['GCP_PROJECT_ID'],
+ instance_name: value['GCP_CLOUDSQL_INSTANCE_NAME'],
+ version: value['GCP_CLOUDSQL_VERSION']
+ }
+ end
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/service_accounts_service.rb b/app/services/cloud_seed/google_cloud/service_accounts_service.rb
new file mode 100644
index 00000000000..4881c440c9c
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/service_accounts_service.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ ##
+ # GCP keys used to store Google Cloud Service Accounts
+ GCP_KEYS = %w[GCP_PROJECT_ID GCP_SERVICE_ACCOUNT GCP_SERVICE_ACCOUNT_KEY].freeze
+
+ ##
+ # This service deals with GCP Service Accounts in GitLab
+
+ class ServiceAccountsService < ::CloudSeed::GoogleCloud::BaseService
+ ##
+ # Find GCP Service Accounts in a GitLab project
+ #
+ # This method looks up GitLab project's CI vars
+ # and returns Google Cloud Service Accounts combinations
+ # aligning GitLab project and ref to GCP projects
+
+ def find_for_project
+ group_vars_by_environment(GCP_KEYS).map do |environment_scope, value|
+ {
+ ref: environment_scope,
+ gcp_project: value['GCP_PROJECT_ID'],
+ service_account_exists: value['GCP_SERVICE_ACCOUNT'].present?,
+ service_account_key_exists: value['GCP_SERVICE_ACCOUNT_KEY'].present?
+ }
+ end
+ end
+
+ def add_for_project(ref, gcp_project_id, service_account, service_account_key, is_protected)
+ create_or_replace_project_vars(
+ ref,
+ 'GCP_PROJECT_ID',
+ gcp_project_id,
+ is_protected
+ )
+ create_or_replace_project_vars(
+ ref,
+ 'GCP_SERVICE_ACCOUNT',
+ service_account,
+ is_protected
+ )
+ create_or_replace_project_vars(
+ ref,
+ 'GCP_SERVICE_ACCOUNT_KEY',
+ service_account_key,
+ is_protected
+ )
+ end
+ end
+ end
+end
diff --git a/app/services/cloud_seed/google_cloud/setup_cloudsql_instance_service.rb b/app/services/cloud_seed/google_cloud/setup_cloudsql_instance_service.rb
new file mode 100644
index 00000000000..b8c160f0683
--- /dev/null
+++ b/app/services/cloud_seed/google_cloud/setup_cloudsql_instance_service.rb
@@ -0,0 +1,120 @@
+# frozen_string_literal: true
+
+module CloudSeed
+ module GoogleCloud
+ class SetupCloudsqlInstanceService < ::CloudSeed::GoogleCloud::BaseService
+ INSTANCE_STATE_RUNNABLE = 'RUNNABLE'
+ OPERATION_STATE_DONE = 'DONE'
+ DEFAULT_DATABASE_NAME = 'main_db'
+ DEFAULT_DATABASE_USER = 'main_user'
+
+ def execute
+ return error('Unauthorized user') unless Ability.allowed?(current_user, :admin_project_google_cloud, project)
+
+ get_instance_response = google_api_client.get_cloudsql_instance(gcp_project_id, instance_name)
+
+ if get_instance_response.state != INSTANCE_STATE_RUNNABLE
+ return error("CloudSQL instance not RUNNABLE: #{Gitlab::Json.dump(get_instance_response)}")
+ end
+
+ save_instance_ci_vars(get_instance_response)
+
+ list_database_response = google_api_client.list_cloudsql_databases(gcp_project_id, instance_name)
+ list_user_response = google_api_client.list_cloudsql_users(gcp_project_id, instance_name)
+
+ existing_database = list_database_response.items.find { |database| database.name == database_name }
+ existing_user = list_user_response.items.find { |user| user.name == username }
+
+ if existing_database && existing_user
+ save_database_ci_vars
+ save_user_ci_vars(existing_user)
+ return success
+ end
+
+ database_response = execute_database_setup(existing_database)
+ return database_response if database_response[:status] == :error
+
+ save_database_ci_vars
+
+ user_response = execute_user_setup(existing_user)
+ return user_response if user_response[:status] == :error
+
+ save_user_ci_vars(existing_user)
+
+ success
+ rescue Google::Apis::Error => err
+ error(message: Gitlab::Json.dump(err))
+ end
+
+ private
+
+ def instance_name
+ @params[:instance_name]
+ end
+
+ def database_version
+ @params[:database_version]
+ end
+
+ def database_name
+ @params.fetch(:database_name, DEFAULT_DATABASE_NAME)
+ end
+
+ def username
+ @params.fetch(:username, DEFAULT_DATABASE_USER)
+ end
+
+ def password
+ @password ||= SecureRandom.hex(16)
+ end
+
+ def save_ci_var(key, value, is_masked = false)
+ create_or_replace_project_vars(environment_name, key, value, @params[:is_protected], is_masked)
+ end
+
+ def save_instance_ci_vars(cloudsql_instance)
+ primary_ip_address = cloudsql_instance.ip_addresses.first.ip_address
+ connection_name = cloudsql_instance.connection_name
+
+ save_ci_var('GCP_PROJECT_ID', gcp_project_id)
+ save_ci_var('GCP_CLOUDSQL_INSTANCE_NAME', instance_name)
+ save_ci_var('GCP_CLOUDSQL_CONNECTION_NAME', connection_name)
+ save_ci_var('GCP_CLOUDSQL_PRIMARY_IP_ADDRESS', primary_ip_address)
+ save_ci_var('GCP_CLOUDSQL_VERSION', database_version)
+ end
+
+ def save_database_ci_vars
+ save_ci_var('GCP_CLOUDSQL_DATABASE_NAME', database_name)
+ end
+
+ def save_user_ci_vars(user_exists)
+ save_ci_var('GCP_CLOUDSQL_DATABASE_USER', username)
+ save_ci_var('GCP_CLOUDSQL_DATABASE_PASS', user_exists ? user_exists.password : password, true)
+ end
+
+ def execute_database_setup(database_exists)
+ return success if database_exists
+
+ database_response = google_api_client.create_cloudsql_database(gcp_project_id, instance_name, database_name)
+
+ if database_response.status != OPERATION_STATE_DONE
+ return error("Database creation failed: #{Gitlab::Json.dump(database_response)}")
+ end
+
+ success
+ end
+
+ def execute_user_setup(existing_user)
+ return success if existing_user
+
+ user_response = google_api_client.create_cloudsql_user(gcp_project_id, instance_name, username, password)
+
+ if user_response.status != OPERATION_STATE_DONE
+ return error("User creation failed: #{Gitlab::Json.dump(user_response)}")
+ end
+
+ success
+ end
+ end
+ end
+end
diff --git a/app/services/clusters/agents/authorizations/user_access/refresh_service.rb b/app/services/clusters/agents/authorizations/user_access/refresh_service.rb
index 7efa95739fb..4c3d059777a 100644
--- a/app/services/clusters/agents/authorizations/user_access/refresh_service.rb
+++ b/app/services/clusters/agents/authorizations/user_access/refresh_service.rb
@@ -59,7 +59,7 @@ module Clusters
return unless project_entries
- allowed_projects.where_full_path_in(project_entries.keys, use_includes: false).map do |project|
+ allowed_projects.where_full_path_in(project_entries.keys, preload_routes: false).map do |project|
{ project_id: project.id, config: user_access_as }
end
end
@@ -70,7 +70,7 @@ module Clusters
return unless group_entries
- allowed_groups.where_full_path_in(group_entries.keys, use_includes: false).map do |group|
+ allowed_groups.where_full_path_in(group_entries.keys, preload_routes: false).map do |group|
{ group_id: group.id, config: user_access_as }
end
end
diff --git a/app/services/concerns/users/participable_service.rb b/app/services/concerns/users/participable_service.rb
index a54c4947b0b..f84793d869c 100644
--- a/app/services/concerns/users/participable_service.rb
+++ b/app/services/concerns/users/participable_service.rb
@@ -3,6 +3,9 @@
module Users
module ParticipableService
extend ActiveSupport::Concern
+ include Gitlab::Utils::StrongMemoize
+
+ SEARCH_LIMIT = 10
included do
attr_reader :noteable
@@ -25,6 +28,16 @@ module Users
sorted(users)
end
+ def filter_and_sort_users(users_relation)
+ if params[:search]
+ users_relation.gfm_autocomplete_search(params[:search]).limit(SEARCH_LIMIT).tap do |users|
+ preload_status(users)
+ end
+ else
+ sorted(users_relation)
+ end
+ end
+
def sorted(users)
users.uniq.to_a.compact.sort_by(&:username).tap do |users|
preload_status(users)
@@ -34,8 +47,15 @@ module Users
def groups
return [] unless current_user
- current_user.authorized_groups.with_route.sort_by(&:full_path)
+ relation = current_user.authorized_groups
+
+ if params[:search]
+ relation.gfm_autocomplete_search(params[:search]).limit(SEARCH_LIMIT).to_a
+ else
+ relation.with_route.sort_by(&:full_path)
+ end
end
+ strong_memoize_attr :groups
def render_participants_as_hash(participants)
participants.map { |participant| participant_as_hash(participant) }
@@ -74,11 +94,14 @@ module Users
end
def group_counts
- @group_counts ||= GroupMember
- .of_groups(current_user.authorized_groups)
+ groups_for_count = params[:search] ? groups : current_user.authorized_groups
+
+ GroupMember
+ .of_groups(groups_for_count)
.non_request
.count_users_by_group_id
end
+ strong_memoize_attr :group_counts
def preload_status(users)
users.each { |u| lazy_user_availability(u) }
diff --git a/app/services/draft_notes/destroy_service.rb b/app/services/draft_notes/destroy_service.rb
index ddca0debb03..6c7b0dfdbd7 100644
--- a/app/services/draft_notes/destroy_service.rb
+++ b/app/services/draft_notes/destroy_service.rb
@@ -15,9 +15,11 @@ module DraftNotes
private
def clear_highlight_diffs_cache(drafts)
- if drafts.any? { |draft| draft.diff_file&.unfolded? }
- merge_request.diffs.clear_cache
- end
+ merge_request.diffs.clear_cache if unfolded_drafts?(drafts)
+ end
+
+ def unfolded_drafts?(drafts)
+ drafts.any? { |draft| draft.diff_file&.unfolded? }
end
end
end
diff --git a/app/services/event_create_service.rb b/app/services/event_create_service.rb
index b755f512772..1a4e691a059 100644
--- a/app/services/event_create_service.rb
+++ b/app/services/event_create_service.rb
@@ -100,8 +100,10 @@ class EventCreateService
end
end
- def join_project(project, current_user)
- create_event(project, current_user, :joined)
+ def join_source(source, current_user)
+ return unless source.is_a?(Project)
+
+ create_event(source, current_user, :joined)
end
def leave_project(project, current_user)
diff --git a/app/services/google_cloud/base_service.rb b/app/services/google_cloud/base_service.rb
deleted file mode 100644
index 01aee2231c9..00000000000
--- a/app/services/google_cloud/base_service.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class BaseService < ::BaseService
- protected
-
- def google_oauth2_token
- @params[:google_oauth2_token]
- end
-
- def gcp_project_id
- @params[:gcp_project_id]
- end
-
- def environment_name
- @params[:environment_name]
- end
-
- def google_api_client
- @google_api_client_instance ||= GoogleApi::CloudPlatform::Client.new(google_oauth2_token, nil)
- end
-
- def unique_gcp_project_ids
- filter_params = { key: 'GCP_PROJECT_ID' }
- @unique_gcp_project_ids ||= ::Ci::VariablesFinder.new(project, filter_params).execute.map(&:value).uniq
- end
-
- def group_vars_by_environment(keys)
- filtered_vars = project.variables.filter { |variable| keys.include? variable.key }
- filtered_vars.each_with_object({}) do |variable, grouped|
- grouped[variable.environment_scope] ||= {}
- grouped[variable.environment_scope][variable.key] = variable.value
- end
- end
-
- def create_or_replace_project_vars(environment_scope, key, value, is_protected, is_masked = false)
- change_params = {
- variable_params: {
- key: key,
- value: value,
- environment_scope: environment_scope,
- protected: is_protected,
- masked: is_masked
- }
- }
- existing_variable = find_existing_variable(environment_scope, key)
-
- if existing_variable
- change_params[:action] = :update
- change_params[:variable] = existing_variable
- else
- change_params[:action] = :create
- end
-
- ::Ci::ChangeVariableService.new(container: project, current_user: current_user, params: change_params).execute
- end
-
- private
-
- def find_existing_variable(environment_scope, key)
- filter_params = { key: key, filter: { environment_scope: environment_scope } }
- ::Ci::VariablesFinder.new(project, filter_params).execute.first
- end
- end
-end
diff --git a/app/services/google_cloud/create_cloudsql_instance_service.rb b/app/services/google_cloud/create_cloudsql_instance_service.rb
deleted file mode 100644
index 9a1263f0796..00000000000
--- a/app/services/google_cloud/create_cloudsql_instance_service.rb
+++ /dev/null
@@ -1,78 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- DEFAULT_REGION = 'us-east1'
-
- class CreateCloudsqlInstanceService < ::GoogleCloud::BaseService
- WORKER_INTERVAL = 30.seconds
-
- def execute
- create_cloud_instance
- trigger_instance_setup_worker
- success
- rescue Google::Apis::Error => err
- error(err.message)
- end
-
- private
-
- def create_cloud_instance
- google_api_client.create_cloudsql_instance(
- gcp_project_id,
- instance_name,
- root_password,
- database_version,
- region,
- tier
- )
- end
-
- def trigger_instance_setup_worker
- GoogleCloud::CreateCloudsqlInstanceWorker.perform_in(
- WORKER_INTERVAL,
- current_user.id,
- project.id,
- {
- 'google_oauth2_token': google_oauth2_token,
- 'gcp_project_id': gcp_project_id,
- 'instance_name': instance_name,
- 'database_version': database_version,
- 'environment_name': environment_name,
- 'is_protected': protected?
- }
- )
- end
-
- def protected?
- project.protected_for?(environment_name)
- end
-
- def instance_name
- # Generates an `instance_name` for the to-be-created Cloud SQL instance
- # Example: `gitlab-34647-postgres-14-staging`
- environment_alias = environment_name == '*' ? 'ALL' : environment_name
- name = "gitlab-#{project.id}-#{database_version}-#{environment_alias}"
- name.tr("_", "-").downcase
- end
-
- def root_password
- SecureRandom.hex(16)
- end
-
- def database_version
- params[:database_version]
- end
-
- def region
- region = ::Ci::VariablesFinder
- .new(project, { key: Projects::GoogleCloud::GcpRegionsController::GCP_REGION_CI_VAR_KEY,
- environment_scope: environment_name })
- .execute.first
- region&.value || DEFAULT_REGION
- end
-
- def tier
- params[:tier]
- end
- end
-end
diff --git a/app/services/google_cloud/create_service_accounts_service.rb b/app/services/google_cloud/create_service_accounts_service.rb
deleted file mode 100644
index ca0aa7c91df..00000000000
--- a/app/services/google_cloud/create_service_accounts_service.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class CreateServiceAccountsService < ::GoogleCloud::BaseService
- def execute
- service_account = google_api_client.create_service_account(gcp_project_id, service_account_name, service_account_desc)
- service_account_key = google_api_client.create_service_account_key(gcp_project_id, service_account.unique_id)
- google_api_client.grant_service_account_roles(gcp_project_id, service_account.email)
-
- service_accounts_service.add_for_project(
- environment_name,
- service_account.project_id,
- Gitlab::Json.dump(service_account),
- Gitlab::Json.dump(service_account_key),
- ProtectedBranch.protected?(project, environment_name) || ProtectedTag.protected?(project, environment_name)
- )
-
- ServiceResponse.success(message: _('Service account generated successfully'), payload: {
- service_account: service_account,
- service_account_key: service_account_key
- })
- end
-
- private
-
- def service_accounts_service
- GoogleCloud::ServiceAccountsService.new(project)
- end
-
- def service_account_name
- "GitLab :: #{project.name} :: #{environment_name}"
- end
-
- def service_account_desc
- "GitLab generated service account for project '#{project.name}' and environment '#{environment_name}'"
- end
- end
-end
-
-GoogleCloud::CreateServiceAccountsService.prepend_mod
diff --git a/app/services/google_cloud/enable_cloud_run_service.rb b/app/services/google_cloud/enable_cloud_run_service.rb
deleted file mode 100644
index 4fd92f423c5..00000000000
--- a/app/services/google_cloud/enable_cloud_run_service.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class EnableCloudRunService < ::GoogleCloud::BaseService
- def execute
- gcp_project_ids = unique_gcp_project_ids
-
- if gcp_project_ids.empty?
- error("No GCP projects found. Configure a service account or GCP_PROJECT_ID ci variable.")
- else
- gcp_project_ids.each do |gcp_project_id|
- google_api_client.enable_cloud_run(gcp_project_id)
- google_api_client.enable_artifacts_registry(gcp_project_id)
- google_api_client.enable_cloud_build(gcp_project_id)
- end
-
- success({ gcp_project_ids: gcp_project_ids })
- end
- end
- end
-end
diff --git a/app/services/google_cloud/enable_cloudsql_service.rb b/app/services/google_cloud/enable_cloudsql_service.rb
deleted file mode 100644
index 911cccca5ca..00000000000
--- a/app/services/google_cloud/enable_cloudsql_service.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class EnableCloudsqlService < ::GoogleCloud::BaseService
- def execute
- create_or_replace_project_vars(environment_name, 'GCP_PROJECT_ID', gcp_project_id, ci_var_protected?)
-
- unique_gcp_project_ids.each do |gcp_project_id|
- google_api_client.enable_cloud_sql_admin(gcp_project_id)
- google_api_client.enable_compute(gcp_project_id)
- google_api_client.enable_service_networking(gcp_project_id)
- end
-
- success({ gcp_project_ids: unique_gcp_project_ids })
- rescue Google::Apis::Error => err
- error(err.message)
- end
-
- private
-
- def ci_var_protected?
- ProtectedBranch.protected?(project, environment_name) || ProtectedTag.protected?(project, environment_name)
- end
- end
-end
diff --git a/app/services/google_cloud/enable_vision_ai_service.rb b/app/services/google_cloud/enable_vision_ai_service.rb
deleted file mode 100644
index f7adea706ed..00000000000
--- a/app/services/google_cloud/enable_vision_ai_service.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class EnableVisionAiService < ::GoogleCloud::BaseService
- def execute
- gcp_project_ids = unique_gcp_project_ids
-
- if gcp_project_ids.empty?
- error("No GCP projects found. Configure a service account or GCP_PROJECT_ID ci variable.")
- else
- gcp_project_ids.each do |gcp_project_id|
- google_api_client.enable_vision_api(gcp_project_id)
- end
-
- success({ gcp_project_ids: gcp_project_ids })
- end
- end
- end
-end
diff --git a/app/services/google_cloud/fetch_google_ip_list_service.rb b/app/services/google_cloud/fetch_google_ip_list_service.rb
deleted file mode 100644
index 54af841d002..00000000000
--- a/app/services/google_cloud/fetch_google_ip_list_service.rb
+++ /dev/null
@@ -1,91 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class FetchGoogleIpListService
- include BaseServiceUtility
-
- GOOGLE_IP_RANGES_URL = 'https://www.gstatic.com/ipranges/cloud.json'
- RESPONSE_BODY_LIMIT = 1.megabyte
- EXPECTED_CONTENT_TYPE = 'application/json'
-
- IpListNotRetrievedError = Class.new(StandardError)
-
- def execute
- # Prevent too many workers from hitting the same HTTP endpoint
- if ::Gitlab::ApplicationRateLimiter.throttled?(:fetch_google_ip_list, scope: nil)
- return error("#{self.class} was rate limited")
- end
-
- subnets = fetch_and_update_cache!
-
- Gitlab::AppJsonLogger.info(
- class: self.class.name,
- message: 'Successfully retrieved Google IP list',
- subnet_count: subnets.count
- )
-
- success({ subnets: subnets })
- rescue IpListNotRetrievedError => err
- Gitlab::ErrorTracking.log_exception(err)
- error('Google IP list not retrieved')
- end
-
- private
-
- # Attempts to retrieve and parse the list of IPs from Google. Updates
- # the internal cache so that the data is accessible.
- #
- # Returns an array of IPAddr objects consisting of subnets.
- def fetch_and_update_cache!
- parsed_response = fetch_google_ip_list
-
- parse_google_prefixes(parsed_response).tap do |subnets|
- ::ObjectStorage::CDN::GoogleIpCache.update!(subnets)
- end
- end
-
- def fetch_google_ip_list
- response = Gitlab::HTTP.get(GOOGLE_IP_RANGES_URL, follow_redirects: false, allow_local_requests: false)
-
- validate_response!(response)
-
- response.parsed_response
- end
-
- def validate_response!(response)
- raise IpListNotRetrievedError, "response was #{response.code}" unless response.code == 200
- raise IpListNotRetrievedError, "response was nil" unless response.body
-
- parsed_response = response.parsed_response
-
- unless response.content_type == EXPECTED_CONTENT_TYPE && parsed_response.is_a?(Hash)
- raise IpListNotRetrievedError, "response was not JSON"
- end
-
- if response.body&.bytesize.to_i > RESPONSE_BODY_LIMIT
- raise IpListNotRetrievedError, "response was too large: #{response.body.bytesize}"
- end
-
- prefixes = parsed_response['prefixes']
-
- raise IpListNotRetrievedError, "JSON was type #{prefixes.class}, expected Array" unless prefixes.is_a?(Array)
- raise IpListNotRetrievedError, "#{GOOGLE_IP_RANGES_URL} did not return any IP ranges" if prefixes.empty?
-
- response.parsed_response
- end
-
- def parse_google_prefixes(parsed_response)
- ranges = parsed_response['prefixes'].map do |prefix|
- ip_range = prefix['ipv4Prefix'] || prefix['ipv6Prefix']
-
- next unless ip_range
-
- IPAddr.new(ip_range)
- end.compact
-
- raise IpListNotRetrievedError, "#{GOOGLE_IP_RANGES_URL} did not return any IP ranges" if ranges.empty?
-
- ranges
- end
- end
-end
diff --git a/app/services/google_cloud/gcp_region_add_or_replace_service.rb b/app/services/google_cloud/gcp_region_add_or_replace_service.rb
deleted file mode 100644
index f79df707a08..00000000000
--- a/app/services/google_cloud/gcp_region_add_or_replace_service.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class GcpRegionAddOrReplaceService < ::GoogleCloud::BaseService
- def execute(environment, region)
- gcp_region_key = Projects::GoogleCloud::GcpRegionsController::GCP_REGION_CI_VAR_KEY
-
- change_params = { variable_params: { key: gcp_region_key, value: region, environment_scope: environment } }
- filter_params = { key: gcp_region_key, filter: { environment_scope: environment } }
-
- existing_variable = ::Ci::VariablesFinder.new(project, filter_params).execute.first
-
- if existing_variable
- change_params[:action] = :update
- change_params[:variable] = existing_variable
- else
- change_params[:action] = :create
- end
-
- ::Ci::ChangeVariableService.new(container: project, current_user: current_user, params: change_params).execute
- end
- end
-end
diff --git a/app/services/google_cloud/generate_pipeline_service.rb b/app/services/google_cloud/generate_pipeline_service.rb
deleted file mode 100644
index 97d008db76b..00000000000
--- a/app/services/google_cloud/generate_pipeline_service.rb
+++ /dev/null
@@ -1,98 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class GeneratePipelineService < ::GoogleCloud::BaseService
- ACTION_DEPLOY_TO_CLOUD_RUN = 'DEPLOY_TO_CLOUD_RUN'
- ACTION_DEPLOY_TO_CLOUD_STORAGE = 'DEPLOY_TO_CLOUD_STORAGE'
- ACTION_VISION_AI_PIPELINE = 'VISION_AI_PIPELINE'
-
- def execute
- commit_attributes = generate_commit_attributes
- create_branch_response = ::Branches::CreateService.new(project, current_user)
- .execute(commit_attributes[:branch_name], project.default_branch)
-
- if create_branch_response[:status] == :error
- return create_branch_response
- end
-
- branch = create_branch_response[:branch]
-
- service = default_branch_gitlab_ci_yml.present? ? ::Files::UpdateService : ::Files::CreateService
-
- commit_response = service.new(project, current_user, commit_attributes).execute
-
- if commit_response[:status] == :error
- return commit_response
- end
-
- success({ branch_name: branch.name, commit: commit_response })
- end
-
- private
-
- def action
- @params[:action]
- end
-
- def generate_commit_attributes
- case action
- when ACTION_DEPLOY_TO_CLOUD_RUN
- branch_name = "deploy-to-cloud-run-#{SecureRandom.hex(8)}"
- {
- commit_message: 'Enable Cloud Run deployments',
- file_path: '.gitlab-ci.yml',
- file_content: pipeline_content('gcp/cloud-run.gitlab-ci.yml'),
- branch_name: branch_name,
- start_branch: branch_name
- }
- when ACTION_DEPLOY_TO_CLOUD_STORAGE
- branch_name = "deploy-to-cloud-storage-#{SecureRandom.hex(8)}"
- {
- commit_message: 'Enable Cloud Storage deployments',
- file_path: '.gitlab-ci.yml',
- file_content: pipeline_content('gcp/cloud-storage.gitlab-ci.yml'),
- branch_name: branch_name,
- start_branch: branch_name
- }
- when ACTION_VISION_AI_PIPELINE
- branch_name = "vision-ai-pipeline-#{SecureRandom.hex(8)}"
- {
- commit_message: 'Enable Vision AI Pipeline',
- file_path: '.gitlab-ci.yml',
- file_content: pipeline_content('gcp/vision-ai.gitlab-ci.yml'),
- branch_name: branch_name,
- start_branch: branch_name
- }
- end
- end
-
- def default_branch_gitlab_ci_yml
- @default_branch_gitlab_ci_yml ||= project.ci_config_for(project.default_branch)
- end
-
- def pipeline_content(include_path)
- gitlab_ci_yml = ::Gitlab::Ci::Config::Yaml::Loader.new(default_branch_gitlab_ci_yml || '{}').load
-
- append_remote_include(
- gitlab_ci_yml.content,
- "https://gitlab.com/gitlab-org/incubation-engineering/five-minute-production/library/-/raw/main/#{include_path}"
- )
- end
-
- def append_remote_include(gitlab_ci_yml, include_url)
- stages = gitlab_ci_yml['stages'] || []
- gitlab_ci_yml['stages'] = if action == ACTION_VISION_AI_PIPELINE
- (stages + %w[validate detect render]).uniq
- else
- (stages + %w[build test deploy]).uniq
- end
-
- includes = gitlab_ci_yml['include'] || []
- includes = Array.wrap(includes)
- includes << { 'remote' => include_url }
- gitlab_ci_yml['include'] = includes.uniq
-
- gitlab_ci_yml.deep_stringify_keys.to_yaml
- end
- end
-end
diff --git a/app/services/google_cloud/get_cloudsql_instances_service.rb b/app/services/google_cloud/get_cloudsql_instances_service.rb
deleted file mode 100644
index 701e83d556d..00000000000
--- a/app/services/google_cloud/get_cloudsql_instances_service.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class GetCloudsqlInstancesService < ::GoogleCloud::BaseService
- CLOUDSQL_KEYS = %w[GCP_PROJECT_ID GCP_CLOUDSQL_INSTANCE_NAME GCP_CLOUDSQL_VERSION].freeze
-
- def execute
- group_vars_by_environment(CLOUDSQL_KEYS).map do |environment_scope, value|
- {
- ref: environment_scope,
- gcp_project: value['GCP_PROJECT_ID'],
- instance_name: value['GCP_CLOUDSQL_INSTANCE_NAME'],
- version: value['GCP_CLOUDSQL_VERSION']
- }
- end
- end
- end
-end
diff --git a/app/services/google_cloud/service_accounts_service.rb b/app/services/google_cloud/service_accounts_service.rb
deleted file mode 100644
index e90fd112e2e..00000000000
--- a/app/services/google_cloud/service_accounts_service.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- ##
- # GCP keys used to store Google Cloud Service Accounts
- GCP_KEYS = %w[GCP_PROJECT_ID GCP_SERVICE_ACCOUNT GCP_SERVICE_ACCOUNT_KEY].freeze
-
- ##
- # This service deals with GCP Service Accounts in GitLab
-
- class ServiceAccountsService < ::GoogleCloud::BaseService
- ##
- # Find GCP Service Accounts in a GitLab project
- #
- # This method looks up GitLab project's CI vars
- # and returns Google Cloud Service Accounts combinations
- # aligning GitLab project and ref to GCP projects
-
- def find_for_project
- group_vars_by_environment(GCP_KEYS).map do |environment_scope, value|
- {
- ref: environment_scope,
- gcp_project: value['GCP_PROJECT_ID'],
- service_account_exists: value['GCP_SERVICE_ACCOUNT'].present?,
- service_account_key_exists: value['GCP_SERVICE_ACCOUNT_KEY'].present?
- }
- end
- end
-
- def add_for_project(ref, gcp_project_id, service_account, service_account_key, is_protected)
- create_or_replace_project_vars(
- ref,
- 'GCP_PROJECT_ID',
- gcp_project_id,
- is_protected
- )
- create_or_replace_project_vars(
- ref,
- 'GCP_SERVICE_ACCOUNT',
- service_account,
- is_protected
- )
- create_or_replace_project_vars(
- ref,
- 'GCP_SERVICE_ACCOUNT_KEY',
- service_account_key,
- is_protected
- )
- end
- end
-end
diff --git a/app/services/google_cloud/setup_cloudsql_instance_service.rb b/app/services/google_cloud/setup_cloudsql_instance_service.rb
deleted file mode 100644
index 40184b927ad..00000000000
--- a/app/services/google_cloud/setup_cloudsql_instance_service.rb
+++ /dev/null
@@ -1,118 +0,0 @@
-# frozen_string_literal: true
-
-module GoogleCloud
- class SetupCloudsqlInstanceService < ::GoogleCloud::BaseService
- INSTANCE_STATE_RUNNABLE = 'RUNNABLE'
- OPERATION_STATE_DONE = 'DONE'
- DEFAULT_DATABASE_NAME = 'main_db'
- DEFAULT_DATABASE_USER = 'main_user'
-
- def execute
- return error('Unauthorized user') unless Ability.allowed?(current_user, :admin_project_google_cloud, project)
-
- get_instance_response = google_api_client.get_cloudsql_instance(gcp_project_id, instance_name)
-
- if get_instance_response.state != INSTANCE_STATE_RUNNABLE
- return error("CloudSQL instance not RUNNABLE: #{Gitlab::Json.dump(get_instance_response)}")
- end
-
- save_instance_ci_vars(get_instance_response)
-
- list_database_response = google_api_client.list_cloudsql_databases(gcp_project_id, instance_name)
- list_user_response = google_api_client.list_cloudsql_users(gcp_project_id, instance_name)
-
- existing_database = list_database_response.items.find { |database| database.name == database_name }
- existing_user = list_user_response.items.find { |user| user.name == username }
-
- if existing_database && existing_user
- save_database_ci_vars
- save_user_ci_vars(existing_user)
- return success
- end
-
- database_response = execute_database_setup(existing_database)
- return database_response if database_response[:status] == :error
-
- save_database_ci_vars
-
- user_response = execute_user_setup(existing_user)
- return user_response if user_response[:status] == :error
-
- save_user_ci_vars(existing_user)
-
- success
- rescue Google::Apis::Error => err
- error(message: Gitlab::Json.dump(err))
- end
-
- private
-
- def instance_name
- @params[:instance_name]
- end
-
- def database_version
- @params[:database_version]
- end
-
- def database_name
- @params.fetch(:database_name, DEFAULT_DATABASE_NAME)
- end
-
- def username
- @params.fetch(:username, DEFAULT_DATABASE_USER)
- end
-
- def password
- @password ||= SecureRandom.hex(16)
- end
-
- def save_ci_var(key, value, is_masked = false)
- create_or_replace_project_vars(environment_name, key, value, @params[:is_protected], is_masked)
- end
-
- def save_instance_ci_vars(cloudsql_instance)
- primary_ip_address = cloudsql_instance.ip_addresses.first.ip_address
- connection_name = cloudsql_instance.connection_name
-
- save_ci_var('GCP_PROJECT_ID', gcp_project_id)
- save_ci_var('GCP_CLOUDSQL_INSTANCE_NAME', instance_name)
- save_ci_var('GCP_CLOUDSQL_CONNECTION_NAME', connection_name)
- save_ci_var('GCP_CLOUDSQL_PRIMARY_IP_ADDRESS', primary_ip_address)
- save_ci_var('GCP_CLOUDSQL_VERSION', database_version)
- end
-
- def save_database_ci_vars
- save_ci_var('GCP_CLOUDSQL_DATABASE_NAME', database_name)
- end
-
- def save_user_ci_vars(user_exists)
- save_ci_var('GCP_CLOUDSQL_DATABASE_USER', username)
- save_ci_var('GCP_CLOUDSQL_DATABASE_PASS', user_exists ? user_exists.password : password, true)
- end
-
- def execute_database_setup(database_exists)
- return success if database_exists
-
- database_response = google_api_client.create_cloudsql_database(gcp_project_id, instance_name, database_name)
-
- if database_response.status != OPERATION_STATE_DONE
- return error("Database creation failed: #{Gitlab::Json.dump(database_response)}")
- end
-
- success
- end
-
- def execute_user_setup(existing_user)
- return success if existing_user
-
- user_response = google_api_client.create_cloudsql_user(gcp_project_id, instance_name, username, password)
-
- if user_response.status != OPERATION_STATE_DONE
- return error("User creation failed: #{Gitlab::Json.dump(user_response)}")
- end
-
- success
- end
- end
-end
diff --git a/app/services/google_cloud_platform/artifact_registry/list_docker_images_service.rb b/app/services/google_cloud_platform/artifact_registry/list_docker_images_service.rb
new file mode 100644
index 00000000000..c9afa8609f9
--- /dev/null
+++ b/app/services/google_cloud_platform/artifact_registry/list_docker_images_service.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+module GoogleCloudPlatform
+ module ArtifactRegistry
+ class ListDockerImagesService < BaseProjectService
+ def execute(page_token: nil)
+ return ServiceResponse.error(message: "Access denied") unless allowed?
+
+ ServiceResponse.success(payload: client.list_docker_images(page_token: page_token))
+ end
+
+ private
+
+ def allowed?
+ can?(current_user, :read_container_image, project)
+ end
+
+ def client
+ ::Integrations::GoogleCloudPlatform::ArtifactRegistry::Client.new(
+ project: project,
+ user: current_user,
+ gcp_project_id: gcp_project_id,
+ gcp_location: gcp_location,
+ gcp_repository: gcp_repository,
+ gcp_wlif: gcp_wlif
+ )
+ end
+
+ def gcp_project_id
+ params[:gcp_project_id]
+ end
+
+ def gcp_location
+ params[:gcp_location]
+ end
+
+ def gcp_repository
+ params[:gcp_repository]
+ end
+
+ def gcp_wlif
+ params[:gcp_wlif]
+ end
+ end
+ end
+end
diff --git a/app/services/groups/create_service.rb b/app/services/groups/create_service.rb
index 21d3c6499a0..06c6560f0fe 100644
--- a/app/services/groups/create_service.rb
+++ b/app/services/groups/create_service.rb
@@ -92,9 +92,32 @@ module Groups
end
end
+ unless organization_setting_valid?
+ # We are unsetting this here to match behavior of invalid parent_id above and protect against possible
+ # committing to the database of a value that isn't allowed.
+ @group.organization = nil
+ message = s_("CreateGroup|You don't have permission to create a group in the provided organization.")
+ @group.errors.add(:organization_id, message)
+
+ return false
+ end
+
true
end
+ def organization_setting_valid?
+ # we check for the params presence explicitly since:
+ # 1. We have a default organization_id at db level set and organization exists and may not have the entry
+ # in organization_users table to allow authorization. This shouldn't be the case longterm as we
+ # plan on populating organization_users correctly.
+ # 2. We shouldn't need to check if this is allowed if the user didn't try to set it themselves. i.e.
+ # provided in the params
+ return true if params[:organization_id].blank?
+ return true if @group.organization.blank?
+
+ can?(current_user, :create_group, @group.organization)
+ end
+
def can_use_visibility_level?
unless Gitlab::VisibilityLevel.allowed_for?(current_user, visibility_level)
deny_visibility_level(@group)
diff --git a/app/services/groups/participants_service.rb b/app/services/groups/participants_service.rb
index 7b68b435f14..ae1a917f022 100644
--- a/app/services/groups/participants_service.rb
+++ b/app/services/groups/participants_service.rb
@@ -29,7 +29,9 @@ module Groups
def group_hierarchy_users
return [] unless group
- sorted(Autocomplete::GroupUsersFinder.new(group: group).execute)
+ relation = Autocomplete::GroupUsersFinder.new(group: group).execute
+
+ filter_and_sort_users(relation)
end
end
end
diff --git a/app/services/groups/transfer_service.rb b/app/services/groups/transfer_service.rb
index 79557dae14a..9fc1a05476e 100644
--- a/app/services/groups/transfer_service.rb
+++ b/app/services/groups/transfer_service.rb
@@ -236,7 +236,7 @@ module Groups
def ensure_ownership
return if @new_parent_group
- return unless @group.owners.empty?
+ return unless @group.all_owner_members.empty?
add_owner_on_transferred_group
end
diff --git a/app/services/groups/update_service.rb b/app/services/groups/update_service.rb
index d91e09d212a..a6ef8c8743b 100644
--- a/app/services/groups/update_service.rb
+++ b/app/services/groups/update_service.rb
@@ -29,6 +29,8 @@ module Groups
handle_namespace_settings
+ handle_hierarchy_cache_update
+
group.assign_attributes(params)
begin
@@ -46,6 +48,28 @@ module Groups
private
+ def handle_hierarchy_cache_update
+ return unless params.key?(:enable_namespace_descendants_cache)
+
+ enabled = Gitlab::Utils.to_boolean(params.delete(:enable_namespace_descendants_cache))
+
+ return unless Feature.enabled?(:group_hierarchy_optimization, group, type: :beta)
+
+ if enabled
+ return if group.namespace_descendants
+
+ params[:namespace_descendants_attributes] = {
+ traversal_ids: group.traversal_ids,
+ all_project_ids: [],
+ self_and_descendant_group_ids: []
+ }
+ else
+ return unless group.namespace_descendants
+
+ params[:namespace_descendants_attributes] = { id: group.id, _destroy: true }
+ end
+ end
+
def valid_path_change?
return true unless group.packages_feature_enabled?
return true if params[:path].blank?
diff --git a/app/services/import/bitbucket_server_service.rb b/app/services/import/bitbucket_server_service.rb
index e628e88eaa9..d8f39d7b963 100644
--- a/app/services/import/bitbucket_server_service.rb
+++ b/app/services/import/bitbucket_server_service.rb
@@ -84,11 +84,12 @@ module Import
end
def blocked_url?
- Gitlab::UrlBlocker.blocked_url?(
+ Gitlab::HTTP_V2::UrlBlocker.blocked_url?(
url,
allow_localhost: allow_local_requests?,
allow_local_network: allow_local_requests?,
- schemes: %w[http https]
+ schemes: %w[http https],
+ deny_all_requests_except_allowed: Gitlab::CurrentSettings.deny_all_requests_except_allowed?
)
end
diff --git a/app/services/import/fogbugz_service.rb b/app/services/import/fogbugz_service.rb
index 2f63e4e6fb7..52d9cb77c0a 100644
--- a/app/services/import/fogbugz_service.rb
+++ b/app/services/import/fogbugz_service.rb
@@ -84,11 +84,12 @@ module Import
end
def blocked_url?(url)
- Gitlab::UrlBlocker.blocked_url?(
+ Gitlab::HTTP_V2::UrlBlocker.blocked_url?(
url,
allow_localhost: allow_local_requests?,
allow_local_network: allow_local_requests?,
- schemes: %w[http https]
+ schemes: %w[http https],
+ deny_all_requests_except_allowed: Gitlab::CurrentSettings.deny_all_requests_except_allowed?
)
end
diff --git a/app/services/import/github_service.rb b/app/services/import/github_service.rb
index a96bfd74cd0..ffd26e2aaca 100644
--- a/app/services/import/github_service.rb
+++ b/app/services/import/github_service.rb
@@ -5,6 +5,8 @@ module Import
include ActiveSupport::NumberHelper
include Gitlab::Utils::StrongMemoize
+ COLLAB_IMPORT_SCOPES = %w[admin:org read:org].freeze
+
attr_accessor :client
attr_reader :params, :current_user
@@ -12,6 +14,9 @@ module Import
context_error = validate_context
return context_error if context_error
+ scope_error = validate_collaborators_import_scope
+ return scope_error if scope_error
+
project = create_project(access_params, provider)
track_access_level('github')
@@ -87,16 +92,33 @@ module Import
end
def blocked_url?
- Gitlab::UrlBlocker.blocked_url?(
+ Gitlab::HTTP_V2::UrlBlocker.blocked_url?(
url,
allow_localhost: allow_local_requests?,
allow_local_network: allow_local_requests?,
- schemes: %w[http https]
+ schemes: %w[http https],
+ deny_all_requests_except_allowed: Gitlab::CurrentSettings.deny_all_requests_except_allowed?
)
end
private
+ def validate_collaborators_import_scope
+ collaborators_import = params.dig(:optional_stages, :collaborators_import)
+ # A value for `collaborators_import` may not be included in POST params
+ # and the default value is `true`
+ return unless collaborators_import == true || collaborators_import.nil?
+
+ # We need to call `#repo` to ensure the `#last_response` from the client has the headers we need.
+ repo
+ scopes = client.octokit.last_response.headers["x-oauth-scopes"]
+ scopes = scopes.split(',').map(&:strip)
+
+ return if (scopes & COLLAB_IMPORT_SCOPES).any?
+
+ log_and_return_error('Invalid scope', _('Your GitHub access token does not have the correct scope to import collaborators.'), :unprocessable_entity)
+ end
+
def validate_context
if blocked_url?
log_and_return_error("Invalid URL: #{url}", _("Invalid URL: %{url}") % { url: url }, :bad_request)
@@ -139,7 +161,8 @@ module Import
.new(project)
.write(
timeout_strategy: params[:timeout_strategy] || ProjectImportData::PESSIMISTIC_TIMEOUT,
- optional_stages: params[:optional_stages]
+ optional_stages: params[:optional_stages],
+ extended_events: Feature.enabled?(:github_import_extended_events, current_user)
)
end
end
diff --git a/app/services/integrations/google_cloud_platform/artifact_registry/list_docker_images_service.rb b/app/services/integrations/google_cloud_platform/artifact_registry/list_docker_images_service.rb
deleted file mode 100644
index 82bf9a41ae7..00000000000
--- a/app/services/integrations/google_cloud_platform/artifact_registry/list_docker_images_service.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-# frozen_string_literal: true
-
-module Integrations
- module GoogleCloudPlatform
- module ArtifactRegistry
- class ListDockerImagesService < BaseProjectService
- def execute(page_token: nil)
- return ServiceResponse.error(message: "Access denied") unless allowed?
-
- ServiceResponse.success(payload: client.list_docker_images(page_token: page_token))
- end
-
- private
-
- def allowed?
- can?(current_user, :read_container_image, project)
- end
-
- def client
- ::Integrations::GoogleCloudPlatform::ArtifactRegistry::Client.new(
- project: project,
- user: current_user,
- gcp_project_id: gcp_project_id,
- gcp_location: gcp_location,
- gcp_repository: gcp_repository,
- gcp_wlif: gcp_wlif
- )
- end
-
- def gcp_project_id
- params[:gcp_project_id]
- end
-
- def gcp_location
- params[:gcp_location]
- end
-
- def gcp_repository
- params[:gcp_repository]
- end
-
- def gcp_wlif
- params[:gcp_wlif]
- end
- end
- end
- end
-end
diff --git a/app/services/issuable/common_system_notes_service.rb b/app/services/issuable/common_system_notes_service.rb
index db28be864a7..a0fa1616f7b 100644
--- a/app/services/issuable/common_system_notes_service.rb
+++ b/app/services/issuable/common_system_notes_service.rb
@@ -2,10 +2,11 @@
module Issuable
class CommonSystemNotesService < ::BaseProjectService
- attr_reader :issuable
+ attr_reader :issuable, :is_update
def execute(issuable, old_labels: [], old_milestone: nil, is_update: true)
@issuable = issuable
+ @is_update = is_update
# We disable touch so that created system notes do not update
# the noteable's updated_at field
@@ -17,10 +18,10 @@ module Issuable
handle_description_change_note
- handle_time_tracking_note if issuable.is_a?(TimeTrackable)
create_discussion_lock_note if issuable.previous_changes.include?('discussion_locked')
end
+ handle_time_tracking_note if issuable.is_a?(TimeTrackable)
handle_start_date_or_due_date_change_note
create_milestone_change_event(old_milestone) if issuable.previous_changes.include?('milestone_id')
create_labels_note(old_labels) if old_labels && issuable.labels != old_labels
@@ -37,13 +38,11 @@ module Issuable
end
def handle_time_tracking_note
- if issuable.previous_changes.include?('time_estimate')
- create_time_estimate_note
- end
+ estimate_updated = is_update && issuable.previous_changes.include?('time_estimate')
+ estimate_set = !is_update && issuable.time_estimate != 0
- if issuable.time_spent?
- create_time_spent_note
- end
+ create_time_estimate_note if estimate_updated || estimate_set
+ create_time_spent_note if issuable.time_spent?
end
def handle_description_change_note
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb
index 27cfaef2db2..0240d0184ac 100644
--- a/app/services/issuable_base_service.rb
+++ b/app/services/issuable_base_service.rb
@@ -79,9 +79,7 @@ class IssuableBaseService < ::BaseContainerService
# confidential attribute is a special type of metadata and needs to be allowed to be set
# by non-members on issues in public projects so that security issues can be reported as confidential.
params.delete(:confidential) unless can?(current_user, :set_confidentiality, issuable)
- params.delete(:add_contacts) unless can?(current_user, :set_issue_crm_contacts, issuable)
- params.delete(:remove_contacts) unless can?(current_user, :set_issue_crm_contacts, issuable)
-
+ filter_contact_params(issuable)
filter_assignees(issuable)
filter_labels
filter_severity(issuable)
@@ -118,9 +116,8 @@ class IssuableBaseService < ::BaseContainerService
return false unless user
ability_name = :"read_#{issuable.to_ability_name}"
- resource = issuable.persisted? ? issuable : project
- can?(user, ability_name, resource)
+ can?(user, ability_name, issuable.resource_parent)
end
def filter_labels
@@ -644,6 +641,13 @@ class IssuableBaseService < ::BaseContainerService
def filter_widget_params
params.delete(:widget_params)
end
+
+ def filter_contact_params(issuable)
+ return if params.slice(:add_contacts, :remove_contacts).empty?
+ return if can?(current_user, :set_issue_crm_contacts, issuable)
+
+ params.extract!(:add_contacts, :remove_contacts)
+ end
end
IssuableBaseService.prepend_mod_with('IssuableBaseService')
diff --git a/app/services/issue_email_participants/base_service.rb b/app/services/issue_email_participants/base_service.rb
new file mode 100644
index 00000000000..c9847bae537
--- /dev/null
+++ b/app/services/issue_email_participants/base_service.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+
+module IssueEmailParticipants
+ class BaseService < ::BaseProjectService
+ MAX_NUMBER_OF_EMAILS = 6
+
+ attr_reader :target, :emails
+
+ def initialize(target:, current_user:, emails:)
+ super(project: target.project, current_user: current_user)
+
+ @target = target
+ @emails = emails
+ end
+
+ private
+
+ def response_from_guard_checks
+ return error_feature_flag unless Feature.enabled?(:issue_email_participants, target.project)
+ return error_underprivileged unless current_user.can?(:"admin_#{target.to_ability_name}", target)
+
+ nil
+ end
+
+ def add_system_note(emails)
+ message = format(system_note_text, emails: emails.to_sentence)
+ ::SystemNoteService.email_participants(target, project, current_user, message)
+
+ message
+ end
+
+ def error(message)
+ ServiceResponse.error(message: message)
+ end
+
+ def error_feature_flag
+ # Don't translate feature flag error because it's temporary.
+ error("Feature flag issue_email_participants is not enabled for this project.")
+ end
+
+ def error_underprivileged
+ error(_("You don't have permission to manage email participants."))
+ end
+ end
+end
diff --git a/app/services/issue_email_participants/create_service.rb b/app/services/issue_email_participants/create_service.rb
index 52c59b2b8fe..aac396ba226 100644
--- a/app/services/issue_email_participants/create_service.rb
+++ b/app/services/issue_email_participants/create_service.rb
@@ -1,25 +1,15 @@
# frozen_string_literal: true
module IssueEmailParticipants
- class CreateService < ::BaseProjectService
+ class CreateService < BaseService
include Gitlab::Utils::StrongMemoize
- MAX_NUMBER_OF_EMAILS = 6
MAX_NUMBER_OF_RECORDS = 10
- attr_reader :target, :emails
-
- def initialize(target:, current_user:, emails:)
- super(project: target.project, current_user: current_user)
-
- @target = target
- @emails = emails
- end
-
def execute
- return error_feature_flag unless Feature.enabled?(:issue_email_participants, target.project)
- return error_underprivileged unless current_user.can?(:"admin_#{target.to_ability_name}", target)
- return error_no_participants unless emails.present?
+ response = response_from_guard_checks
+ return response unless response.nil?
+ return error_no_participants_added unless emails.present?
added_emails = add_participants(deduplicate_and_limit_emails)
@@ -27,7 +17,7 @@ module IssueEmailParticipants
message = add_system_note(added_emails)
ServiceResponse.success(message: message.upcase_first << ".")
else
- error_no_participants
+ error_no_participants_added
end
end
@@ -60,13 +50,6 @@ module IssueEmailParticipants
added_emails
end
- def add_system_note(added_emails)
- message = format(_("added %{emails}"), emails: added_emails.to_sentence)
- ::SystemNoteService.add_email_participants(target, project, current_user, message)
-
- message
- end
-
def existing_emails
target.email_participants_emails_downcase
end
@@ -78,20 +61,11 @@ module IssueEmailParticipants
end
end
- def error(message)
- ServiceResponse.error(message: message)
- end
-
- def error_feature_flag
- # Don't translate feature flag error because it's temporary.
- error("Feature flag issue_email_participants is not enabled for this project.")
- end
-
- def error_underprivileged
- error(_("You don't have permission to add email participants."))
+ def system_note_text
+ _("added %{emails}")
end
- def error_no_participants
+ def error_no_participants_added
error(_("No email participants were added. Either none were provided, or they already exist."))
end
end
diff --git a/app/services/issue_email_participants/destroy_service.rb b/app/services/issue_email_participants/destroy_service.rb
new file mode 100644
index 00000000000..8cd0178da00
--- /dev/null
+++ b/app/services/issue_email_participants/destroy_service.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+module IssueEmailParticipants
+ class DestroyService < BaseService
+ def execute
+ response = response_from_guard_checks
+ return response unless response.nil?
+ return error_no_participants_removed unless emails.present?
+
+ removed_emails = remove_participants(emails.first(MAX_NUMBER_OF_EMAILS))
+
+ if removed_emails.any?
+ message = add_system_note(removed_emails)
+ ServiceResponse.success(message: message.upcase_first << ".")
+ else
+ error_no_participants_removed
+ end
+ end
+
+ private
+
+ def remove_participants(emails_to_remove)
+ participants = target
+ .issue_email_participants
+ .with_emails(emails_to_remove)
+ .load # to avoid additional query
+
+ emails = participants.map(&:email)
+ return [] if emails.empty?
+
+ participants.delete_all
+
+ emails
+ end
+
+ def system_note_text
+ _("removed %{emails}")
+ end
+
+ def error_no_participants_removed
+ error(_("No email participants were removed. Either none were provided, or they don't exist."))
+ end
+ end
+end
diff --git a/app/services/issues/base_service.rb b/app/services/issues/base_service.rb
index a5ae5854e33..f564914352b 100644
--- a/app/services/issues/base_service.rb
+++ b/app/services/issues/base_service.rb
@@ -61,12 +61,13 @@ module Issues
# Setting created_at, updated_at and iid is allowed only for admins and owners or
# when moving an issue as we preserve the original issue attributes except id and iid.
- params.delete(:iid) unless current_user.can?(:set_issue_iid, project)
- params.delete(:created_at) unless moved_issue || current_user.can?(:set_issue_created_at, project)
- params.delete(:updated_at) unless moved_issue || current_user.can?(:set_issue_updated_at, project)
+ params.delete(:iid) if params[:iid].present? && !iid_param_allowed?
+ filter_timestamp_params unless moved_issue
# Only users with permission to handle error data can add it to issues
- params.delete(:sentry_issue_attributes) unless current_user.can?(:update_sentry_issue, project)
+ if params[:sentry_issue_attributes].present? && !current_user.can?(:update_sentry_issue, project)
+ params.delete(:sentry_issue_attributes)
+ end
issue.system_note_timestamp = params[:created_at] || params[:updated_at]
end
@@ -144,6 +145,19 @@ module Issues
def log_audit_event(issue, user, event_type, message)
# defined in EE
end
+
+ def iid_param_allowed?
+ current_user.can?(:set_issue_iid, project)
+ end
+
+ def filter_timestamp_params
+ timestamp_params = params.slice(:created_at, :updated_at).keys
+ return unless timestamp_params.any?
+
+ timestamp_params.each do |param|
+ params.delete(param) unless current_user.can?(:"set_issue_#{param}", project)
+ end
+ end
end
end
diff --git a/app/services/jira/requests/base.rb b/app/services/jira/requests/base.rb
index d0ca8863c29..8d7b460bf69 100644
--- a/app/services/jira/requests/base.rb
+++ b/app/services/jira/requests/base.rb
@@ -12,7 +12,8 @@ module Jira
jira_ruby: JIRA::HTTPError,
ssl: OpenSSL::SSL::SSLError,
timeout: [Timeout::Error, Errno::ETIMEDOUT],
- uri: [URI::InvalidURIError, SocketError]
+ uri: [URI::InvalidURIError, SocketError],
+ url_blocked: Gitlab::HTTP::BlockedUrlError
}.freeze
ALL_ERRORS = ERRORS.values.flatten.freeze
@@ -63,12 +64,21 @@ module Jira
def auth_docs_link_start
auth_docs_link_url = Rails.application.routes.url_helpers.help_page_path('integration/jira/index', anchor: 'authentication-in-jira')
- '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: auth_docs_link_url }
+ link_start(auth_docs_link_url)
end
def config_docs_link_start
config_docs_link_url = Rails.application.routes.url_helpers.help_page_path('integration/jira/configure')
- '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: config_docs_link_url }
+ link_start(config_docs_link_url)
+ end
+
+ def config_integration_link_start
+ config_jira_integration_url = Rails.application.routes.url_helpers.edit_project_settings_integration_path(project, jira_integration)
+ link_start(config_jira_integration_url)
+ end
+
+ def link_start(url)
+ '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: url }
end
def error_message(error)
@@ -89,6 +99,8 @@ module Jira
s_('JiraRequest|A timeout error occurred while connecting to Jira. Try your request again.')
when *ERRORS[:connection]
s_('JiraRequest|A connection error occurred while connecting to Jira. Try your request again.')
+ when ERRORS[:url_blocked]
+ s_('JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again.').html_safe % { config_link_start: config_integration_link_start, config_link_end: '</a>'.html_safe }
end
end
diff --git a/app/services/merge_requests/approval_service.rb b/app/services/merge_requests/approval_service.rb
index f9857cdad39..8458eaeaf57 100644
--- a/app/services/merge_requests/approval_service.rb
+++ b/app/services/merge_requests/approval_service.rb
@@ -4,6 +4,7 @@ module MergeRequests
class ApprovalService < MergeRequests::BaseService
def execute(merge_request)
return unless eligible_for_approval?(merge_request)
+ return if merge_request.merged?
approval = merge_request.approvals.new(
user: current_user,
diff --git a/app/services/merge_requests/conflicts/list_service.rb b/app/services/merge_requests/conflicts/list_service.rb
index 575a6bfe95a..4e6f117e9fb 100644
--- a/app/services/merge_requests/conflicts/list_service.rb
+++ b/app/services/merge_requests/conflicts/list_service.rb
@@ -15,6 +15,10 @@ module MergeRequests
def can_be_resolved_in_ui?
return @conflicts_can_be_resolved_in_ui if defined?(@conflicts_can_be_resolved_in_ui)
+ # #cannot_be_merged? is generally indicative of conflicts, and is set via
+ # MergeRequests::MergeabilityCheckService. However, it can also indicate
+ # that either #has_no_commits? or #branch_missing? are true.
+ #
return @conflicts_can_be_resolved_in_ui = false unless merge_request.cannot_be_merged?
return @conflicts_can_be_resolved_in_ui = false unless merge_request.has_complete_diff_refs?
return @conflicts_can_be_resolved_in_ui = false if merge_request.branch_missing?
diff --git a/app/services/merge_requests/remove_approval_service.rb b/app/services/merge_requests/remove_approval_service.rb
index c0bb257eda6..b8f512bdb2c 100644
--- a/app/services/merge_requests/remove_approval_service.rb
+++ b/app/services/merge_requests/remove_approval_service.rb
@@ -5,6 +5,7 @@ module MergeRequests
# rubocop: disable CodeReuse/ActiveRecord
def execute(merge_request)
return unless merge_request.approved_by?(current_user)
+ return if merge_request.merged?
# paranoid protection against running wrong deletes
return unless merge_request.id && current_user.id
diff --git a/app/services/merge_requests/request_review_service.rb b/app/services/merge_requests/request_review_service.rb
index ebbae98352b..87b00aa088c 100644
--- a/app/services/merge_requests/request_review_service.rb
+++ b/app/services/merge_requests/request_review_service.rb
@@ -12,6 +12,7 @@ module MergeRequests
notify_reviewer(merge_request, user)
trigger_merge_request_reviewers_updated(merge_request)
+ create_system_note(merge_request, user)
success
else
@@ -25,5 +26,9 @@ module MergeRequests
notification_service.async.review_requested_of_merge_request(merge_request, current_user, reviewer)
todo_service.create_request_review_todo(merge_request, current_user, reviewer)
end
+
+ def create_system_note(merge_request, user)
+ ::SystemNoteService.request_review(merge_request, merge_request.project, current_user, user)
+ end
end
end
diff --git a/app/services/milestones/destroy_service.rb b/app/services/milestones/destroy_service.rb
index 191a8711cbd..aa122b1282a 100644
--- a/app/services/milestones/destroy_service.rb
+++ b/app/services/milestones/destroy_service.rb
@@ -11,7 +11,7 @@ module Milestones
end
milestone.merge_requests.each do |merge_request|
- MergeRequests::UpdateService.new(project: parent, current_user: current_user, params: update_params).execute(merge_request)
+ MergeRequests::UpdateService.new(project: merge_request.project, current_user: current_user, params: update_params).execute(merge_request)
end
log_destroy_event_for(milestone)
diff --git a/app/services/milestones/promote_service.rb b/app/services/milestones/promote_service.rb
index 4417f17f33e..d657b8b3255 100644
--- a/app/services/milestones/promote_service.rb
+++ b/app/services/milestones/promote_service.rb
@@ -63,9 +63,12 @@ module Milestones
def update_children(group_milestone, milestone_ids)
issues = Issue.where(project_id: group_project_ids, milestone_id: milestone_ids)
merge_requests = MergeRequest.where(source_project_id: group_project_ids, milestone_id: milestone_ids)
+ milestone_events = ResourceMilestoneEvent.where(milestone_id: milestone_ids)
- [issues, merge_requests].each do |issuable_collection|
- issuable_collection.update_all(milestone_id: group_milestone.id)
+ [issues, merge_requests, milestone_events].each do |collection|
+ collection.each_batch do |batch|
+ batch.update_all(milestone_id: group_milestone.id)
+ end
end
end
# rubocop: enable CodeReuse/ActiveRecord
diff --git a/app/services/ml/create_model_service.rb b/app/services/ml/create_model_service.rb
index b87b13dd379..7ac9c2a2737 100644
--- a/app/services/ml/create_model_service.rb
+++ b/app/services/ml/create_model_service.rb
@@ -12,21 +12,25 @@ module Ml
def execute
ApplicationRecord.transaction do
- model = Ml::Model.create!(
+ model = Ml::Model.new(
project: @project,
name: @name,
- user: (@user.is_a?(User) ? @user : nil),
+ user: @user,
description: @description,
default_experiment: default_experiment
)
- add_metadata(model, @metadata)
+ model.save
- Gitlab::InternalEvents.track_event(
- 'model_registry_ml_model_created',
- project: @project,
- user: @user
- )
+ if model.persisted?
+ add_metadata(model, @metadata)
+
+ Gitlab::InternalEvents.track_event(
+ 'model_registry_ml_model_created',
+ project: @project,
+ user: @user
+ )
+ end
model
end
diff --git a/app/services/ml/create_model_version_service.rb b/app/services/ml/create_model_version_service.rb
index 3b8c096b5b4..4af9dd40d12 100644
--- a/app/services/ml/create_model_version_service.rb
+++ b/app/services/ml/create_model_version_service.rb
@@ -8,6 +8,7 @@ module Ml
@package = params[:package]
@description = params[:description]
@user = params[:user]
+ @metadata = params[:metadata]
end
def execute
@@ -24,6 +25,8 @@ module Ml
{ model_version: model_version }
).execute
+ model_version.add_metadata(@metadata)
+
Gitlab::InternalEvents.track_event(
'model_registry_ml_model_version_created',
project: @model.project,
diff --git a/app/services/namespaces/package_settings/update_service.rb b/app/services/namespaces/package_settings/update_service.rb
index d7ab6828346..06a15671f25 100644
--- a/app/services/namespaces/package_settings/update_service.rb
+++ b/app/services/namespaces/package_settings/update_service.rb
@@ -12,6 +12,8 @@ module Namespaces
maven_package_requests_forwarding
nuget_duplicates_allowed
nuget_duplicate_exception_regex
+ terraform_module_duplicates_allowed
+ terraform_module_duplicate_exception_regex
npm_package_requests_forwarding
pypi_package_requests_forwarding
lock_maven_package_requests_forwarding
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index 5099272a212..36431c1cbde 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -522,29 +522,40 @@ class NotificationService
).deliver_later
end
- # Project invite
- def invite_project_member(project_member, token)
- return true unless project_member.notifiable?(:subscription)
+ def invite_member(member, token)
+ mailer.member_invited_email(member.real_source_type, member.id, token).deliver_later
+ end
+
+ def new_member(member)
+ notifiable_options = case member.source
+ when Group
+ {}
+ when Project
+ { skip_read_ability: true }
+ end
+
+ return true unless member.notifiable?(:mention, notifiable_options)
- mailer.member_invited_email(project_member.real_source_type, project_member.id, token).deliver_later
+ mailer.member_access_granted_email(member.real_source_type, member.id).deliver_later
end
- def accept_project_invite(project_member)
- return true unless project_member.notifiable?(:subscription)
+ def accept_invite(member)
+ return true if member.source.is_a?(Project) && !member.notifiable?(:subscription)
- mailer.member_invite_accepted_email(project_member.real_source_type, project_member.id).deliver_later
+ mailer.member_invite_accepted_email(member.real_source_type, member.id).deliver_later
end
- def new_project_member(project_member)
- return true unless project_member.notifiable?(:mention, skip_read_ability: true)
+ def updated_member_access_level(member)
+ return true unless member.notifiable?(:mention)
- mailer.member_access_granted_email(project_member.real_source_type, project_member.id).deliver_later
+ mailer.member_access_granted_email(member.real_source_type, member.id).deliver_later
end
- def update_project_member(project_member)
- return true unless project_member.notifiable?(:mention)
+ def updated_member_expiration(member)
+ return true unless member.source.is_a?(Group)
+ return true unless member.notifiable?(:mention)
- mailer.member_access_granted_email(project_member.real_source_type, project_member.id).deliver_later
+ mailer.member_expiration_date_updated_email(member.real_source_type, member.id).deliver_later
end
def member_about_to_expire(member)
@@ -553,37 +564,10 @@ class NotificationService
mailer.member_about_to_expire_email(member.real_source_type, member.id).deliver_later
end
- # Group invite
- def invite_group_member(group_member, token)
- mailer.member_invited_email(group_member.real_source_type, group_member.id, token).deliver_later
- end
-
def invite_member_reminder(group_member, token, reminder_index)
mailer.member_invited_reminder_email(group_member.real_source_type, group_member.id, token, reminder_index).deliver_later
end
- def accept_group_invite(group_member)
- mailer.member_invite_accepted_email(group_member.real_source_type, group_member.id).deliver_later
- end
-
- def new_group_member(group_member)
- return true unless group_member.notifiable?(:mention)
-
- mailer.member_access_granted_email(group_member.real_source_type, group_member.id).deliver_later
- end
-
- def update_group_member(group_member)
- return true unless group_member.notifiable?(:mention)
-
- mailer.member_access_granted_email(group_member.real_source_type, group_member.id).deliver_later
- end
-
- def updated_group_member_expiration(group_member)
- return true unless group_member.notifiable?(:mention)
-
- mailer.member_expiration_date_updated_email(group_member.real_source_type, group_member.id).deliver_later
- end
-
def project_was_moved(project, old_path_with_namespace)
recipients = project_moved_recipients(project)
recipients = notifiable_users(recipients, :custom, custom_action: :moved_project, project: project)
diff --git a/app/services/organizations/create_service.rb b/app/services/organizations/create_service.rb
index ab70799a095..f29065b8ffd 100644
--- a/app/services/organizations/create_service.rb
+++ b/app/services/organizations/create_service.rb
@@ -7,13 +7,21 @@ module Organizations
organization = Organization.create(params)
- return error_creating(organization) unless organization.persisted?
+ if organization.persisted?
+ add_organization_owner(organization)
- ServiceResponse.success(payload: { organization: organization })
+ ServiceResponse.success(payload: { organization: organization })
+ else
+ error_creating(organization)
+ end
end
private
+ def add_organization_owner(organization)
+ organization.organization_users.create(user: current_user, access_level: :owner)
+ end
+
def error_no_permissions
ServiceResponse.error(message: [_('You have insufficient permissions to create organizations')])
end
diff --git a/app/services/organizations/update_service.rb b/app/services/organizations/update_service.rb
index bc3a2d29abf..6e3a2cddddb 100644
--- a/app/services/organizations/update_service.rb
+++ b/app/services/organizations/update_service.rb
@@ -17,6 +17,10 @@ module Organizations
def execute
return error_no_permissions unless allowed?
+ if params[:organization_detail_attributes].key?(:avatar) && params[:organization_detail_attributes][:avatar].nil?
+ organization.remove_avatar!
+ end
+
if organization.update(params)
ServiceResponse.success(payload: { organization: organization })
else
diff --git a/app/services/packages/npm/create_package_service.rb b/app/services/packages/npm/create_package_service.rb
index 0f0dc297e9a..a27f059036c 100644
--- a/app/services/packages/npm/create_package_service.rb
+++ b/app/services/packages/npm/create_package_service.rb
@@ -8,24 +8,35 @@ module Packages
PACKAGE_JSON_NOT_ALLOWED_FIELDS = %w[readme readmeFilename licenseText contributors exports].freeze
DEFAULT_LEASE_TIMEOUT = 1.hour.to_i
+ ERROR_REASON_INVALID_PARAMETER = :invalid_parameter
+ ERROR_REASON_PACKAGE_EXISTS = :package_already_exists
+ ERROR_REASON_PACKAGE_LEASE_TAKEN = :package_lease_taken
+ ERROR_REASON_PACKAGE_PROTECTED = :package_attachment_data_empty
+
def execute
- return error('Version is empty.', 400) if version.blank?
- return error('Attachment data is empty.', 400) if attachment['data'].blank?
- return error('Package already exists.', 403) if current_package_exists?
- return error('Package protected.', 403) if current_package_protected?
- return error('File is too large.', 400) if file_size_exceeded?
+ return error('Version is empty.', ERROR_REASON_INVALID_PARAMETER) if version.blank?
+ return error('Attachment data is empty.', ERROR_REASON_INVALID_PARAMETER) if attachment['data'].blank?
+ return error('Package already exists.', ERROR_REASON_PACKAGE_EXISTS) if current_package_exists?
+ return error('Package protected.', ERROR_REASON_PACKAGE_PROTECTED) if current_package_protected?
+ return error('File is too large.', ERROR_REASON_INVALID_PARAMETER) if file_size_exceeded?
package = try_obtain_lease do
ApplicationRecord.transaction { create_npm_package! }
end
- return error('Could not obtain package lease. Please try again.', 400) unless package
+ unless package
+ return error('Could not obtain package lease. Please try again.', ERROR_REASON_PACKAGE_LEASE_TAKEN)
+ end
- package
+ ServiceResponse.success(payload: { package: package })
end
private
+ def error(message, reason)
+ ServiceResponse.error(message: message, reason: reason)
+ end
+
def create_npm_package!
package = create_package!(:npm, name: name, version: version)
diff --git a/app/services/packages/terraform_module/create_package_service.rb b/app/services/packages/terraform_module/create_package_service.rb
index 9df722db529..eb48b481dd8 100644
--- a/app/services/packages/terraform_module/create_package_service.rb
+++ b/app/services/packages/terraform_module/create_package_service.rb
@@ -6,10 +6,20 @@ module Packages
include Gitlab::Utils::StrongMemoize
def execute
- return error('Version is empty.', 400) if params[:module_version].blank?
- return error('Access Denied', 403) if current_package_exists_elsewhere?
- return error('Package version already exists.', 403) if current_package_version_exists?
- return error('File is too large.', 400) if file_size_exceeded?
+ if params[:module_version].blank?
+ return ServiceResponse.error(message: 'Version is empty.', reason: :bad_request)
+ end
+
+ if duplicates_not_allowed? && current_package_exists_elsewhere?
+ return ServiceResponse.error(
+ message: 'A package with the same name already exists in the namespace',
+ reason: :forbidden
+ )
+ end
+
+ if current_package_version_exists?
+ return ServiceResponse.error(message: 'Package version already exists.', reason: :forbidden)
+ end
ApplicationRecord.transaction { create_terraform_module_package! }
end
@@ -24,6 +34,15 @@ module Packages
package
end
+ def duplicates_not_allowed?
+ return true if package_settings_with_duplicates_allowed.blank?
+
+ package_settings_with_duplicates_allowed.none? do |setting|
+ setting.terraform_module_duplicates_allowed ||
+ ::Gitlab::UntrustedRegexp.new("\\A#{setting.terraform_module_duplicate_exception_regex}\\z").match?(name)
+ end
+ end
+
def current_package_exists_elsewhere?
::Packages::Package
.for_projects(project.root_namespace.all_projects.id_not_in(project.id))
@@ -62,9 +81,13 @@ module Packages
}
end
- def file_size_exceeded?
- project.actual_limits.exceeded?(:generic_packages_max_file_size, params[:file].size)
+ def package_settings_with_duplicates_allowed
+ ::Namespace::PackageSetting
+ .select(:terraform_module_duplicates_allowed, :terraform_module_duplicate_exception_regex)
+ .namespace_id_in(project.namespace.self_and_ancestor_ids)
+ .with_terraform_module_duplicates_allowed_or_exception_regex
end
+ strong_memoize_attr :package_settings_with_duplicates_allowed
end
end
end
diff --git a/app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb b/app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb
index c11b019cee5..1733021cbb5 100644
--- a/app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb
+++ b/app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb
@@ -10,9 +10,6 @@ module PagesDomains
# no particular SLA, usually takes 10-15 seconds
CERTIFICATE_PROCESSING_DELAY = 1.minute.freeze
- # Maximum domain length for Let's Encrypt
- MAX_DOMAIN_LENGTH = 64
-
attr_reader :pages_domain
def initialize(pages_domain)
@@ -20,11 +17,6 @@ module PagesDomains
end
def execute
- if pages_domain.domain.bytesize > MAX_DOMAIN_LENGTH
- log_domain_length_error
- return
- end
-
pages_domain.acme_orders.expired.delete_all
acme_order = pages_domain.acme_orders.first
@@ -67,16 +59,6 @@ module PagesDomains
NotificationService.new.pages_domain_auto_ssl_failed(pages_domain)
end
- def log_domain_length_error
- Gitlab::AppLogger.error(
- message: "Domain name too long for Let's Encrypt certificate",
- pages_domain: pages_domain.domain,
- pages_domain_bytesize: pages_domain.domain.bytesize,
- max_allowed_bytesize: MAX_DOMAIN_LENGTH,
- project_id: pages_domain.project_id
- )
- end
-
def log_error(api_order)
Gitlab::AppLogger.error(
message: "Failed to obtain Let's Encrypt certificate",
diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb
index 7ba5b6119b9..033d90abc7a 100644
--- a/app/services/projects/destroy_service.rb
+++ b/app/services/projects/destroy_service.rb
@@ -159,6 +159,7 @@ module Projects
destroy_web_hooks!
destroy_project_bots!
destroy_ci_records!
+ destroy_deployments!
destroy_mr_diff_relations!
destroy_merge_request_diffs!
@@ -253,6 +254,12 @@ module Projects
)
end
+ def destroy_deployments!
+ project.deployments.each_batch(of: BATCH_SIZE) do |deployments|
+ deployments.fast_destroy_all
+ end
+ end
+
# The project can have multiple webhooks with hundreds of thousands of web_hook_logs.
# By default, they are removed with "DELETE CASCADE" option defined via foreign_key.
# But such queries can exceed the statement_timeout limit and fail to delete the project.
diff --git a/app/services/projects/participants_service.rb b/app/services/projects/participants_service.rb
index fe19d1f051d..188f12a287b 100644
--- a/app/services/projects/participants_service.rb
+++ b/app/services/projects/participants_service.rb
@@ -18,13 +18,17 @@ module Projects
end
def project_members
- @project_members ||= sorted(project.authorized_users)
+ filter_and_sort_users(project_members_relation)
end
def all_members
return [] if Feature.enabled?(:disable_all_mention)
- [{ username: "all", name: "All Project and Group Members", count: project_members.count }]
+ [{ username: "all", name: "All Project and Group Members", count: project_members_relation.count }]
+ end
+
+ def project_members_relation
+ project.authorized_users
end
end
end
diff --git a/app/services/projects/unlink_fork_service.rb b/app/services/projects/unlink_fork_service.rb
index cdd1870858e..dbac59dd32b 100644
--- a/app/services/projects/unlink_fork_service.rb
+++ b/app/services/projects/unlink_fork_service.rb
@@ -46,9 +46,7 @@ module Projects
end
# rubocop: enable Cop/InBatches
- if Feature.enabled?(:refresh_statistics_on_unlink_fork, @project.namespace) && refresh_statistics
- ProjectCacheWorker.perform_async(project.id, [], [:repository_size])
- end
+ ProjectCacheWorker.perform_async(project.id, [], [:repository_size]) if refresh_statistics
# When the project getting out of the network is a node with parent
# and children, both the parent and the node needs a cache refresh.
diff --git a/app/services/projects/update_statistics_service.rb b/app/services/projects/update_statistics_service.rb
index 9b979f6ed68..0d51de4d26e 100644
--- a/app/services/projects/update_statistics_service.rb
+++ b/app/services/projects/update_statistics_service.rb
@@ -17,6 +17,8 @@ module Projects
expire_repository_caches
expire_wiki_caches
project.statistics.refresh!(only: statistics)
+
+ record_onboarding_progress
end
private
@@ -46,5 +48,11 @@ module Projects
params[:statistics]&.map(&:to_sym)
end
end
+
+ def record_onboarding_progress
+ return unless repository.commit_count > 1 || repository.branch_count > 1
+
+ Onboarding::ProgressService.new(project.namespace).execute(action: :code_added)
+ end
end
end
diff --git a/app/services/routes/rename_descendants_service.rb b/app/services/routes/rename_descendants_service.rb
new file mode 100644
index 00000000000..18a28b87dcb
--- /dev/null
+++ b/app/services/routes/rename_descendants_service.rb
@@ -0,0 +1,135 @@
+# frozen_string_literal: true
+
+module Routes
+ class RenameDescendantsService
+ BATCH_SIZE = 100
+ class RouteChanges
+ attr_reader :saved_change_to_parent_path, :saved_change_to_parent_name, :old_path_of_parent, :old_name_of_parent
+
+ def initialize(changes)
+ path_details = changes.fetch(:path)
+ name_details = changes.fetch(:name)
+
+ @saved_change_to_parent_path = path_details.fetch(:saved)
+ @old_path_of_parent = path_details.fetch(:old_value)
+ @saved_change_to_parent_name = name_details.fetch(:saved)
+ @old_name_of_parent = name_details.fetch(:old_value)
+ end
+ end
+
+ def initialize(parent_route)
+ @parent_route = parent_route
+ @routes_to_update = []
+ @redirect_routes_to_insert = []
+ end
+
+ def execute(changes)
+ process_changes(changes)
+ update_routes_for_descendants
+ create_redirect_routes_for_descendants
+ end
+
+ private
+
+ def process_changes(changes)
+ changes = RouteChanges.new(changes)
+
+ saved_change_to_parent_path = changes.saved_change_to_parent_path
+ saved_change_to_parent_name = changes.saved_change_to_parent_name
+
+ return unless saved_change_to_parent_path || saved_change_to_parent_name
+
+ old_path_of_parent = changes.old_path_of_parent
+ old_name_of_parent = changes.old_name_of_parent
+
+ descendant_routes_inside(old_path_of_parent).each_batch(of: BATCH_SIZE) do |relation|
+ relation.each do |descendant_route|
+ attributes_to_update = {}
+
+ if saved_change_to_parent_path && descendant_route.path.present?
+ attributes_to_update[:path] = descendant_route.path.sub(
+ old_path_of_parent, current_path_of_parent
+ )
+ end
+
+ if saved_change_to_parent_name && old_name_of_parent.present? && descendant_route.name.present?
+ attributes_to_update[:name] = descendant_route.name.sub(
+ old_name_of_parent, current_name_of_parent
+ )
+ end
+
+ push_to_routes_data(descendant_route, attributes_to_update)
+ push_to_redirect_routes_data(descendant_route) if attributes_to_update[:path]
+ end
+ end
+ end
+
+ def push_to_routes_data(descendant_route, attributes_to_update)
+ return if attributes_to_update.empty?
+
+ # We merge updated attributes with all existing attributes of the `Route` record.
+ # This comprehensive attribute set is required for the initial attempt of `upsert_all` to function effectively.
+ # During the first phase (insertion attempt), `upsert_all` tries to insert new records into the database,
+ # necessitating the presence of all attributes, including NOT NULL attributes, to create new entries.
+ # Attributes like `source_id` and `source_type` are crucial, as they are NOT NULL attributes essential
+ # for record creation.
+ # In the event of conflicts (e.g., existing Route records with conflicting `id`s),
+ # `upsert_all` switches to an update operation for those specific conflicted records.
+ # And this is the way we get to update `path` and/or `name` of multiple, existing route records in one go.
+ @routes_to_update << descendant_route
+ .attributes.symbolize_keys
+ .merge(attributes_to_update)
+ end
+
+ def push_to_redirect_routes_data(descendant_route)
+ @redirect_routes_to_insert << {
+ source_id: descendant_route.source_id,
+ source_type: descendant_route.source_type,
+ path: descendant_route.path
+ }
+ end
+
+ def update_routes_for_descendants
+ return if @routes_to_update.blank?
+
+ @routes_to_update.each_slice(BATCH_SIZE) do |data|
+ # Utilizing `upsert_all` with `unique_by: :id` ensures that only updates occur,
+ # as the provided data contains attributes exclusively for existing `Route` records,
+ # identified by their unique `id`.
+ # This upsert operation is hence guaranteed to solely execute updates, never inserts.
+ Route.upsert_all(
+ data,
+ unique_by: :id,
+ update_only: [:path, :name], # on conflicts, we need to update only path/name.
+ record_timestamps: true # this makes sure that `updated_at` is updated.
+ )
+ end
+ end
+
+ def create_redirect_routes_for_descendants
+ return if @redirect_routes_to_insert.blank?
+
+ @redirect_routes_to_insert.each_slice(BATCH_SIZE) do |data|
+ RedirectRoute.insert_all(
+ data,
+ # We need to make sure no duplicates are inserted.
+ # We use the value of `lower(path)` to make this check,
+ # which is already a UNIQUE index on this table.
+ unique_by: :index_redirect_routes_on_path_unique_text_pattern_ops
+ )
+ end
+ end
+
+ def current_name_of_parent
+ @parent_route.name
+ end
+
+ def current_path_of_parent
+ @parent_route.path
+ end
+
+ def descendant_routes_inside(path)
+ Route.inside_path(path)
+ end
+ end
+end
diff --git a/app/services/spam/spam_verdict_service.rb b/app/services/spam/spam_verdict_service.rb
index 2d4bebc8b2b..f69ee255e01 100644
--- a/app/services/spam/spam_verdict_service.rb
+++ b/app/services/spam/spam_verdict_service.rb
@@ -70,7 +70,8 @@ module Spam
result = spamcheck_client.spam?(spammable: target, user: user, context: context, extra_features: extra_features)
if result.evaluated?
- Abuse::TrustScore.create!(user: user, score: result.score, source: :spamcheck)
+ correlation_id = Labkit::Correlation::CorrelationId.current_id || ''
+ Abuse::TrustScoreWorker.perform_async(user.id, :spamcheck, result.score, correlation_id)
end
result.verdict
diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb
index 5f71b7ac9e9..fc27303792b 100644
--- a/app/services/system_note_service.rb
+++ b/app/services/system_note_service.rb
@@ -45,6 +45,10 @@ module SystemNoteService
::SystemNotes::IssuablesService.new(noteable: issuable, project: project, author: author).change_issuable_reviewers(old_reviewers)
end
+ def request_review(issuable, project, author, user)
+ ::SystemNotes::IssuablesService.new(noteable: issuable, project: project, author: author).request_review(user)
+ end
+
def change_issuable_contacts(issuable, project, author, added_count, removed_count)
::SystemNotes::IssuablesService.new(noteable: issuable, project: project, author: author).change_issuable_contacts(added_count, removed_count)
end
@@ -282,8 +286,8 @@ module SystemNoteService
::SystemNotes::IssuablesService.new(noteable: noteable, project: project, author: author).mark_canonical_issue_of_duplicate(duplicate_issue)
end
- def add_email_participants(noteable, project, author, body)
- ::SystemNotes::IssuablesService.new(noteable: noteable, project: project, author: author).add_email_participants(body)
+ def email_participants(noteable, project, author, body)
+ ::SystemNotes::IssuablesService.new(noteable: noteable, project: project, author: author).email_participants(body)
end
def discussion_lock(issuable, author)
diff --git a/app/services/system_notes/issuables_service.rb b/app/services/system_notes/issuables_service.rb
index c584d5ccca3..3f96ca9cefb 100644
--- a/app/services/system_notes/issuables_service.rb
+++ b/app/services/system_notes/issuables_service.rb
@@ -133,6 +133,12 @@ module SystemNotes
create_note(NoteSummary.new(noteable, project, author, body, action: 'reviewer'))
end
+ def request_review(user)
+ body = "#{self.class.issuable_events[:review_requested]} #{user.to_reference}"
+
+ create_note(NoteSummary.new(noteable, project, author, body, action: 'reviewer'))
+ end
+
# Called when the contacts of an issuable are changed or removed
# We intend to reference the contacts but for security we are just
# going to state how many were added/removed for now. See discussion:
@@ -431,7 +437,7 @@ module SystemNotes
create_note(NoteSummary.new(noteable, project, author, body, action: 'duplicate'))
end
- def add_email_participants(body)
+ def email_participants(body)
create_note(NoteSummary.new(noteable, project, author, body))
end
diff --git a/app/services/system_notes/time_tracking_service.rb b/app/services/system_notes/time_tracking_service.rb
index f9084ed67d3..6ebf1215a25 100644
--- a/app/services/system_notes/time_tracking_service.rb
+++ b/app/services/system_notes/time_tracking_service.rb
@@ -43,18 +43,11 @@ module SystemNotes
#
# Returns the created Note object
def change_time_estimate
- parsed_time = Gitlab::TimeTrackingFormatter.output(noteable.time_estimate)
- body = if noteable.time_estimate == 0
- "removed time estimate"
- else
- "changed time estimate to #{parsed_time}"
- end
-
if noteable.is_a?(Issue)
issue_activity_counter.track_issue_time_estimate_changed_action(author: author, project: project)
end
- create_note(NoteSummary.new(noteable, project, author, body, action: 'time_tracking'))
+ create_note(NoteSummary.new(noteable, project, author, time_estimate_system_note, action: 'time_tracking'))
end
# Called when the spent time of a Noteable is changed
@@ -160,5 +153,19 @@ module SystemNotes
def work_item_activity_counter
Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter
end
+
+ def time_estimate_system_note
+ parsed_time = Gitlab::TimeTrackingFormatter.output(noteable.time_estimate)
+ previous_estimate = noteable.previous_changes['time_estimate']&.at(0) || 0
+ parsed_previous_restimate = Gitlab::TimeTrackingFormatter.output(previous_estimate)
+
+ if previous_estimate == 0
+ "added time estimate of #{parsed_time}"
+ elsif noteable.time_estimate == 0
+ "removed time estimate of #{parsed_previous_restimate}"
+ else
+ "changed time estimate to #{parsed_time} from #{parsed_previous_restimate}"
+ end
+ end
end
end
diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb
index be7405cc896..168b36ea4d1 100644
--- a/app/services/todo_service.rb
+++ b/app/services/todo_service.rb
@@ -168,7 +168,11 @@ class TodoService
def mark_todo(target, current_user)
project = target.project
attributes = attributes_for_todo(project, target, current_user, Todo::MARKED)
- create_todos(current_user, attributes, target_namespace(target), project)
+
+ todos = create_todos(current_user, attributes, target_namespace(target), project)
+ work_item_activity_counter.track_work_item_mark_todo_action(author: current_user) if target.is_a?(WorkItem)
+
+ todos
end
def todo_exist?(issuable, current_user)
@@ -475,6 +479,10 @@ class TodoService
project = target.project
project&.namespace || target.try(:namespace)
end
+
+ def work_item_activity_counter
+ Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter
+ end
end
TodoService.prepend_mod_with('TodoService')
diff --git a/app/services/work_items/callbacks/assignees.rb b/app/services/work_items/callbacks/assignees.rb
new file mode 100644
index 00000000000..14755ff0b46
--- /dev/null
+++ b/app/services/work_items/callbacks/assignees.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+module WorkItems
+ module Callbacks
+ class Assignees < Base
+ def before_update
+ params[:assignee_ids] = [] if excluded_in_new_type?
+
+ return unless params.present? && params.has_key?(:assignee_ids)
+ return unless has_permission?(:set_work_item_metadata)
+
+ assignee_ids = filter_assignees_count(params[:assignee_ids])
+ assignee_ids = filter_assignee_permissions(assignee_ids)
+
+ return if assignee_ids.sort == work_item.assignee_ids.sort
+
+ work_item.assignee_ids = assignee_ids
+ work_item.touch
+ end
+
+ private
+
+ def filter_assignees_count(assignee_ids)
+ return assignee_ids if work_item.allows_multiple_assignees?
+
+ assignee_ids.first(1)
+ end
+
+ def filter_assignee_permissions(assignee_ids)
+ assignees = User.id_in(assignee_ids)
+
+ assignees.select { |assignee| assignee.can?(:read_work_item, work_item) }.map(&:id)
+ end
+ end
+ end
+end
diff --git a/app/services/work_items/callbacks/current_user_todos.rb b/app/services/work_items/callbacks/current_user_todos.rb
new file mode 100644
index 00000000000..c6c74a5ce3d
--- /dev/null
+++ b/app/services/work_items/callbacks/current_user_todos.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+module WorkItems
+ module Callbacks
+ class CurrentUserTodos < Base
+ def before_update
+ return unless params.present? && params.key?(:action)
+
+ case params[:action]
+ when "add"
+ add_todo
+ when "mark_as_done"
+ mark_as_done(params[:todo_id])
+ end
+ end
+
+ private
+
+ def add_todo
+ return unless has_permission?(:create_todo)
+
+ TodoService.new.mark_todo(work_item, current_user)&.first
+ end
+
+ def mark_as_done(todo_id)
+ todos = TodosFinder.new(current_user, state: :pending, target_id: work_item.id).execute
+ todos = todo_id ? todos.id_in(todo_id) : todos
+
+ return if todos.empty?
+
+ TodoService.new.resolve_todos(todos, current_user, resolved_by_action: :api_done)
+ end
+ end
+ end
+end
diff --git a/app/services/work_items/callbacks/description.rb b/app/services/work_items/callbacks/description.rb
new file mode 100644
index 00000000000..b9620c65214
--- /dev/null
+++ b/app/services/work_items/callbacks/description.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+module WorkItems
+ module Callbacks
+ class Description < Base
+ def before_update
+ params[:description] = nil if excluded_in_new_type?
+
+ return unless params.present? && params.key?(:description)
+ return unless has_permission?(:update_work_item)
+
+ work_item.description = params[:description]
+ work_item.assign_attributes(last_edited_at: Time.current, last_edited_by: current_user)
+ end
+ end
+ end
+end
diff --git a/app/services/work_items/callbacks/notifications.rb b/app/services/work_items/callbacks/notifications.rb
new file mode 100644
index 00000000000..233088ea188
--- /dev/null
+++ b/app/services/work_items/callbacks/notifications.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+module WorkItems
+ module Callbacks
+ class Notifications < Base
+ def before_update
+ return unless params.present? && params.key?(:subscribed)
+ return unless has_permission?(:update_subscription)
+
+ update_subscription(work_item, params)
+ end
+
+ private
+
+ def update_subscription(work_item, subscription_params)
+ work_item.set_subscription(
+ current_user,
+ subscription_params[:subscribed],
+ work_item.project
+ )
+ end
+ end
+ end
+end
diff --git a/app/services/work_items/callbacks/start_and_due_date.rb b/app/services/work_items/callbacks/start_and_due_date.rb
new file mode 100644
index 00000000000..b7318dcfcf4
--- /dev/null
+++ b/app/services/work_items/callbacks/start_and_due_date.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+module WorkItems
+ module Callbacks
+ class StartAndDueDate < Base
+ def before_update
+ return work_item.assign_attributes({ start_date: nil, due_date: nil }) if excluded_in_new_type?
+
+ return if params.blank?
+ return unless has_permission?(:set_work_item_metadata)
+
+ work_item.assign_attributes(params.slice(:start_date, :due_date))
+ end
+ end
+ end
+end
diff --git a/app/services/work_items/create_service.rb b/app/services/work_items/create_service.rb
index 354a33a0384..f9eadc3fb60 100644
--- a/app/services/work_items/create_service.rb
+++ b/app/services/work_items/create_service.rb
@@ -73,3 +73,5 @@ module WorkItems
end
end
end
+
+WorkItems::CreateService.prepend_mod
diff --git a/app/services/work_items/widgets/assignees_service/update_service.rb b/app/services/work_items/widgets/assignees_service/update_service.rb
deleted file mode 100644
index 7a084917ea7..00000000000
--- a/app/services/work_items/widgets/assignees_service/update_service.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-# frozen_string_literal: true
-
-module WorkItems
- module Widgets
- module AssigneesService
- class UpdateService < WorkItems::Widgets::BaseService
- def before_update_in_transaction(params:)
- params[:assignee_ids] = [] if new_type_excludes_widget?
-
- return unless params.present? && params.has_key?(:assignee_ids)
- return unless has_permission?(:set_work_item_metadata)
-
- assignee_ids = filter_assignees_count(params[:assignee_ids])
- assignee_ids = filter_assignee_permissions(assignee_ids)
-
- return if assignee_ids.sort == work_item.assignee_ids.sort
-
- work_item.assignee_ids = assignee_ids
- work_item.touch
- end
-
- private
-
- def filter_assignees_count(assignee_ids)
- return assignee_ids if work_item.allows_multiple_assignees?
-
- assignee_ids.first(1)
- end
-
- def filter_assignee_permissions(assignee_ids)
- assignees = User.id_in(assignee_ids)
-
- assignees.select { |assignee| assignee.can?(:read_work_item, work_item) }.map(&:id)
- end
- end
- end
- end
-end
diff --git a/app/services/work_items/widgets/current_user_todos_service/update_service.rb b/app/services/work_items/widgets/current_user_todos_service/update_service.rb
deleted file mode 100644
index 38e2ae4de32..00000000000
--- a/app/services/work_items/widgets/current_user_todos_service/update_service.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-# frozen_string_literal: true
-
-module WorkItems
- module Widgets
- module CurrentUserTodosService
- class UpdateService < WorkItems::Widgets::BaseService
- def before_update_in_transaction(params:)
- return unless params.present? && params.key?(:action)
-
- case params[:action]
- when "add"
- add_todo
- when "mark_as_done"
- mark_as_done(params[:todo_id])
- end
- end
-
- private
-
- def add_todo
- return unless has_permission?(:create_todo)
-
- TodoService.new.mark_todo(work_item, current_user)&.first
- end
-
- def mark_as_done(todo_id)
- todos = TodosFinder.new(current_user, state: :pending, target_id: work_item.id).execute
- todos = todo_id ? todos.id_in(todo_id) : todos
-
- return if todos.empty?
-
- TodoService.new.resolve_todos(todos, current_user, resolved_by_action: :api_done)
- end
- end
- end
- end
-end
diff --git a/app/services/work_items/widgets/description_service/update_service.rb b/app/services/work_items/widgets/description_service/update_service.rb
deleted file mode 100644
index 2640c6132cd..00000000000
--- a/app/services/work_items/widgets/description_service/update_service.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# frozen_string_literal: true
-
-module WorkItems
- module Widgets
- module DescriptionService
- class UpdateService < WorkItems::Widgets::BaseService
- def before_update_callback(params: {})
- params[:description] = nil if new_type_excludes_widget?
-
- return unless params.present? && params.key?(:description)
- return unless has_permission?(:update_work_item)
-
- work_item.description = params[:description]
- work_item.assign_attributes(last_edited_at: Time.current, last_edited_by: current_user)
- end
- end
- end
- end
-end
diff --git a/app/services/work_items/widgets/notifications_service/update_service.rb b/app/services/work_items/widgets/notifications_service/update_service.rb
deleted file mode 100644
index b301e2ca7db..00000000000
--- a/app/services/work_items/widgets/notifications_service/update_service.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-# frozen_string_literal: true
-
-module WorkItems
- module Widgets
- module NotificationsService
- class UpdateService < WorkItems::Widgets::BaseService
- def before_update_in_transaction(params:)
- return unless params.present? && params.key?(:subscribed)
- return unless has_permission?(:update_subscription)
-
- update_subscription(work_item, params)
- end
-
- private
-
- def update_subscription(work_item, subscription_params)
- work_item.set_subscription(
- current_user,
- subscription_params[:subscribed],
- work_item.project
- )
- end
- end
- end
- end
-end
diff --git a/app/services/work_items/widgets/start_and_due_date_service/update_service.rb b/app/services/work_items/widgets/start_and_due_date_service/update_service.rb
deleted file mode 100644
index 5d47b3a1516..00000000000
--- a/app/services/work_items/widgets/start_and_due_date_service/update_service.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# frozen_string_literal: true
-
-module WorkItems
- module Widgets
- module StartAndDueDateService
- class UpdateService < WorkItems::Widgets::BaseService
- def before_update_callback(params: {})
- return widget.work_item.assign_attributes({ start_date: nil, due_date: nil }) if new_type_excludes_widget?
-
- return if params.blank?
- return unless has_permission?(:set_work_item_metadata)
-
- widget.work_item.assign_attributes(params.slice(:start_date, :due_date))
- end
- end
- end
- end
-end
diff --git a/app/validators/json_schemas/application_setting_rate_limits.json b/app/validators/json_schemas/application_setting_rate_limits.json
new file mode 100644
index 00000000000..e74295291df
--- /dev/null
+++ b/app/validators/json_schemas/application_setting_rate_limits.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "description": "Application rate limits",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "members_delete_limit": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "Number of project or group members a user can delete per minute."
+ }
+ }
+}
diff --git a/app/validators/json_schemas/build_metadata_secrets.json b/app/validators/json_schemas/build_metadata_secrets.json
index ac34af3f107..e8d095e2921 100644
--- a/app/validators/json_schemas/build_metadata_secrets.json
+++ b/app/validators/json_schemas/build_metadata_secrets.json
@@ -8,33 +8,79 @@
"patternProperties": {
"^vault$": {
"type": "object",
- "required": ["path", "field", "engine"],
+ "required": [
+ "path",
+ "field",
+ "engine"
+ ],
"properties": {
- "path": { "type": "string" },
- "field": { "type": "string" },
+ "path": {
+ "type": "string"
+ },
+ "field": {
+ "type": "string"
+ },
"engine": {
"type": "object",
- "required": ["name", "path"],
+ "required": [
+ "name",
+ "path"
+ ],
"properties": {
- "path": { "type": "string" },
- "name": { "type": "string" }
+ "path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
},
"additionalProperties": false
}
},
"additionalProperties": false
},
+ "^gcp_secret_manager$": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "additionalProperties": false
+ },
"^azure_key_vault$": {
"type": "object",
- "required": ["name"],
+ "required": [
+ "name"
+ ],
"properties": {
- "name": { "type": "string" },
- "version": { "type": ["string", "null"] }
+ "name": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
},
"additionalProperties": false
},
- "^file$": { "type": "boolean" },
- "^token$": { "type": "string" }
+ "^file$": {
+ "type": "boolean"
+ },
+ "^token$": {
+ "type": "string"
+ }
},
"anyOf": [
{
@@ -44,6 +90,11 @@
},
{
"required": [
+ "gcp_secret_manager"
+ ]
+ },
+ {
+ "required": [
"azure_key_vault"
]
}
diff --git a/app/validators/json_schemas/cloud_connector_access.json b/app/validators/json_schemas/cloud_connector_access.json
new file mode 100644
index 00000000000..8ebb32245d5
--- /dev/null
+++ b/app/validators/json_schemas/cloud_connector_access.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "description": "Cloud Connector Access",
+ "type": "object",
+ "available_services": {
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": true
+}
diff --git a/app/validators/json_schemas/scan_result_policy_project_approval_settings.json b/app/validators/json_schemas/scan_result_policy_project_approval_settings.json
index 4885e5266c1..b4bebed3d1c 100644
--- a/app/validators/json_schemas/scan_result_policy_project_approval_settings.json
+++ b/app/validators/json_schemas/scan_result_policy_project_approval_settings.json
@@ -17,6 +17,30 @@
},
"block_branch_modification": {
"type": "boolean"
+ },
+ "block_group_branch_modification": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "exceptions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "enabled"
+ ]
+ }
+ ]
}
}
}
diff --git a/app/views/admin/application_settings/_members_api_limits.html.haml b/app/views/admin/application_settings/_members_api_limits.html.haml
new file mode 100644
index 00000000000..3065c62b7e2
--- /dev/null
+++ b/app/views/admin/application_settings/_members_api_limits.html.haml
@@ -0,0 +1,21 @@
+%section.settings.as-members-api-limits.no-animate#js-members-api-limits-settings{ class: ('expanded' if expanded_by_default?) }
+ .settings-header
+ %h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only
+ = _('Members API rate limit')
+ = render Pajamas::ButtonComponent.new(button_options: { class: 'js-settings-toggle' }) do
+ = expanded_by_default? ? _('Collapse') : _('Expand')
+ %p.gl-text-secondary
+ = _('Limit the number of project or group members a user can delete per minute through API requests.')
+ = link_to _('Learn more.'), help_page_path('administration/settings/rate_limit_on_members_api'), target: '_blank', rel: 'noopener noreferrer'
+ .settings-content
+ = gitlab_ui_form_for @application_setting, url: network_admin_application_settings_path(anchor: 'js-members-api-limits-settings'), html: { class: 'fieldset-form' } do |f|
+ = form_errors(@application_setting)
+
+ %fieldset
+ .form-group
+ = f.label :members_delete_limit, _('Maximum requests per minute per group / project'), class: 'label-bold'
+ = f.number_field :members_delete_limit, min: 0, class: 'form-control gl-form-input'
+ .form-text.gl-text-gray-600
+ = _("Set to 0 to disable the limit.")
+
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/_repository_storage.html.haml b/app/views/admin/application_settings/_repository_storage.html.haml
index 412098cfae4..5fc9db06bb2 100644
--- a/app/views/admin/application_settings/_repository_storage.html.haml
+++ b/app/views/admin/application_settings/_repository_storage.html.haml
@@ -5,7 +5,7 @@
.sub-section
%h4= _('Hashed repository storage paths')
.form-group
- - repository_storage_help_link_url = help_page_path('administration/repository_storage_types')
+ - repository_storage_help_link_url = help_page_path('administration/repository_storage_paths')
- repository_storage_help_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: repository_storage_help_link_url }
= f.gitlab_ui_checkbox_component :hashed_storage_enabled,
_('Use hashed storage'),
diff --git a/app/views/admin/application_settings/_signin.html.haml b/app/views/admin/application_settings/_signin.html.haml
index 2b972a2d7f1..3d3d4ab29d1 100644
--- a/app/views/admin/application_settings/_signin.html.haml
+++ b/app/views/admin/application_settings/_signin.html.haml
@@ -24,6 +24,9 @@
_('Enforce two-factor authentication'),
help_text: '%{help_text} %{help_link}'.html_safe % { help_text: help_text, help_link: help_link }
.form-group
+ = f.label :require_admin_two_factor_authentication, _('Enforce Two-Factor authentication for administrator users'), class: 'label-bold'
+ = f.gitlab_ui_checkbox_component :require_admin_two_factor_authentication, _('Require administrators to enable 2FA')
+ .form-group
= f.label :two_factor_authentication, _('Two-factor grace period'), class: 'label-bold'
= f.number_field :two_factor_grace_period, min: 0, class: 'form-control gl-form-input', placeholder: '0'
.form-text.text-muted
diff --git a/app/views/admin/application_settings/_user_restrictions.html.haml b/app/views/admin/application_settings/_user_restrictions.html.haml
index 4fb65c20daf..4bdc21a3695 100644
--- a/app/views/admin/application_settings/_user_restrictions.html.haml
+++ b/app/views/admin/application_settings/_user_restrictions.html.haml
@@ -8,3 +8,4 @@
= form.gitlab_ui_checkbox_component :can_create_group, _("Allow new users to create top-level groups")
= form.gitlab_ui_checkbox_component :user_defaults_to_private_profile, _("Make new users' profiles private by default")
= render_if_exists 'admin/application_settings/allow_account_deletion', form: form
+ = form.gitlab_ui_checkbox_component :allow_project_creation_for_guest_and_below, _("Allow users with up to Guest role to create groups and personal projects")
diff --git a/app/views/admin/application_settings/appearances/_form.html.haml b/app/views/admin/application_settings/appearances/_form.html.haml
index 672af002e5e..e8bf25b8da6 100644
--- a/app/views/admin/application_settings/appearances/_form.html.haml
+++ b/app/views/admin/application_settings/appearances/_form.html.haml
@@ -6,6 +6,28 @@
.settings-section
.settings-sticky-header
.settings-sticky-header-inner
+ %h4.gl-my-0 Favicon
+
+ .form-group
+ = f.label :favicon, _('Favicon'), class: 'col-form-label gl-pt-0'
+ %p
+ - if @appearance.favicon?
+ = image_tag @appearance.favicon_path, class: 'appearance-light-logo-preview'
+ - if @appearance.persisted?
+ %br
+ = render Pajamas::ButtonComponent.new(variant: :danger, category: :secondary, size: :small, method: :delete, href: favicon_admin_application_settings_appearances_path, button_options: { data: { confirm: _("Favicon will be removed. Are you sure?"), confirm_btn_variant: "danger" }, aria: { label: _('Remove favicon') } }) do
+ = _('Remove favicon')
+ %hr
+ = f.hidden_field :favicon_cache
+ = f.file_field :favicon, class: '', accept: 'image/*'
+ .form-text.text-muted
+ = _("Maximum file size is 1 MB. Image size must be 32 x 32 pixels. Allowed image formats are %{favicon_extension_allowlist}.") % { favicon_extension_allowlist: favicon_extension_allowlist }
+ %br
+ = _("Images with incorrect dimensions are not resized automatically, and may result in unexpected behavior.")
+
+ .settings-section
+ .settings-sticky-header
+ .settings-sticky-header-inner
%h4.gl-my-0= _('Navigation bar')
.form-group
@@ -26,54 +48,29 @@
.settings-section
.settings-sticky-header
.settings-sticky-header-inner
- %h4.gl-my-0 Favicon
+ %h4.gl-my-0= _('New project pages')
.form-group
- = f.label :favicon, _('Favicon'), class: 'col-form-label gl-pt-0'
+ = f.label :new_project_guidelines, class: 'col-form-label'
%p
- - if @appearance.favicon?
- = image_tag @appearance.favicon_path, class: 'appearance-light-logo-preview'
- - if @appearance.persisted?
- %br
- = render Pajamas::ButtonComponent.new(variant: :danger, category: :secondary, size: :small, method: :delete, href: favicon_admin_application_settings_appearances_path, button_options: { data: { confirm: _("Favicon will be removed. Are you sure?"), confirm_btn_variant: "danger" }, aria: { label: _('Remove favicon') } }) do
- = _('Remove favicon')
- %hr
- = f.hidden_field :favicon_cache
- = f.file_field :favicon, class: '', accept: 'image/*'
+ = f.text_area :new_project_guidelines, class: "form-control gl-form-input", rows: 10
.form-text.text-muted
- = _("Maximum file size is 1 MB. Image size must be 32 x 32 pixels. Allowed image formats are %{favicon_extension_allowlist}.") % { favicon_extension_allowlist: favicon_extension_allowlist }
- %br
- = _("Images with incorrect dimensions are not resized automatically, and may result in unexpected behavior.")
-
- = render partial: 'admin/application_settings/appearances/system_header_footer_form', locals: { form: f }
+ = parsed_with_gfm
.settings-section
.settings-sticky-header
.settings-sticky-header-inner
- %h4.gl-my-0= _('Sign in/Sign up pages')
+ %h4.gl-my-0= _('Profile image guidelines')
+
+ %p.gl-text-secondary
+ = _('These guidelines for public avatars are displayed on the user settings page.')
.form-group
- = f.label :title, class: 'col-form-label'
- = f.text_field :title, class: "form-control gl-form-input"
- .form-group
- = f.label :description, class: 'col-form-label'
- = f.text_area :description, class: "form-control gl-form-input", rows: 10
- .form-text.text-muted
- = parsed_with_gfm
- .form-group
- = f.label :logo, class: 'col-form-label gl-pt-0'
+ = f.label :profile_image_guidelines, class: 'col-form-label'
%p
- - if @appearance.logo?
- = image_tag @appearance.logo_path, class: 'appearance-logo-preview'
- - if @appearance.persisted?
- %br
- = render Pajamas::ButtonComponent.new(variant: :danger, category: :secondary, size: :small, method: :delete, href: logo_admin_application_settings_appearances_path, button_options: { data: { confirm: _("Logo will be removed. Are you sure?"), confirm_btn_variant: "danger" }, aria: { label: _('Remove logo') } }) do
- = _('Remove logo')
- %hr
- = f.hidden_field :logo_cache
- = f.file_field :logo, class: "", accept: 'image/*'
+ = f.text_area :profile_image_guidelines, class: "form-control gl-form-input", rows: 10
.form-text.text-muted
- = _('Maximum file size is 1 MB. Pages are optimized for a 128x128 px logo.')
+ = parsed_with_gfm
.settings-section
.settings-sticky-header
@@ -109,26 +106,32 @@
.settings-section
.settings-sticky-header
.settings-sticky-header-inner
- %h4.gl-my-0= _('New project pages')
+ %h4.gl-my-0= _('Sign in/Sign up pages')
.form-group
- = f.label :new_project_guidelines, class: 'col-form-label'
- %p
- = f.text_area :new_project_guidelines, class: "form-control gl-form-input", rows: 10
- .form-text.text-muted
- = parsed_with_gfm
-
- .settings-section
- .settings-sticky-header
- .settings-sticky-header-inner
- %h4.gl-my-0= _('Profile image guideline')
-
+ = f.label :title, class: 'col-form-label'
+ = f.text_field :title, class: "form-control gl-form-input"
.form-group
- = f.label :profile_image_guidelines, class: 'col-form-label'
+ = f.label :description, class: 'col-form-label'
+ = f.text_area :description, class: "form-control gl-form-input", rows: 10
+ .form-text.text-muted
+ = parsed_with_gfm
+ .form-group
+ = f.label :logo, class: 'col-form-label gl-pt-0'
%p
- = f.text_area :profile_image_guidelines, class: "form-control gl-form-input", rows: 10
+ - if @appearance.logo?
+ = image_tag @appearance.logo_path, class: 'appearance-logo-preview'
+ - if @appearance.persisted?
+ %br
+ = render Pajamas::ButtonComponent.new(variant: :danger, category: :secondary, size: :small, method: :delete, href: logo_admin_application_settings_appearances_path, button_options: { data: { confirm: _("Logo will be removed. Are you sure?"), confirm_btn_variant: "danger" }, aria: { label: _('Remove logo') } }) do
+ = _('Remove logo')
+ %hr
+ = f.hidden_field :logo_cache
+ = f.file_field :logo, class: "", accept: 'image/*'
.form-text.text-muted
- = parsed_with_gfm
+ = _('Maximum file size is 1 MB. Pages are optimized for a 128x128 px logo.')
+
+ = render partial: 'admin/application_settings/appearances/system_header_footer_form', locals: { form: f }
- if @appearance.persisted? || @appearance.updated_at
.settings-section
diff --git a/app/views/admin/application_settings/ci_cd.html.haml b/app/views/admin/application_settings/ci_cd.html.haml
index addd23688b4..b7a43916a30 100644
--- a/app/views/admin/application_settings/ci_cd.html.haml
+++ b/app/views/admin/application_settings/ci_cd.html.haml
@@ -7,16 +7,7 @@
.settings-header
= render 'admin/application_settings/ci/header', expanded: expanded_by_default?
.settings-content
- %p
- = _('Variables can be:')
- %ul
- %li
- = html_escape(_('%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
- = link_to _('Learn more.'), help_page_path('ci/variables/index', anchor: 'protect-a-cicd-variable'), target: '_blank', rel: 'noopener noreferrer'
- %li
- = html_escape(_('%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
- = link_to _('Learn more.'), help_page_path('ci/variables/index', anchor: 'mask-a-cicd-variable'), target: '_blank', rel: 'noopener noreferrer'
-
+ = render 'ci/variables/attributes'
- if ci_variable_protected_by_default?
%p.settings-message.text-center.gl-mb-0
- help_link = link_to('', help_page_path('ci/variables/index', anchor: 'protect-a-cicd-variable', target: '_blank', rel: 'noopener noreferrer'))
diff --git a/app/views/admin/application_settings/general.html.haml b/app/views/admin/application_settings/general.html.haml
index 39f1ec7056c..2e16161cde4 100644
--- a/app/views/admin/application_settings/general.html.haml
+++ b/app/views/admin/application_settings/general.html.haml
@@ -120,8 +120,5 @@
= render_if_exists 'admin/application_settings/add_license'
= render 'admin/application_settings/jira_connect'
= render 'admin/application_settings/slack'
-- if Feature.enabled?(:updated_ai_powered_features_menu_for_sm)
- = render_if_exists 'admin/application_settings/ai_powered'
-- else
- = render_if_exists 'admin/application_settings/ai_access'
+= render_if_exists 'admin/application_settings/ai_powered'
= render 'admin/application_settings/security_txt', expanded: expanded_by_default?
diff --git a/app/views/admin/application_settings/network.html.haml b/app/views/admin/application_settings/network.html.haml
index ae5f7a5cec3..c2f19c11b4e 100644
--- a/app/views/admin/application_settings/network.html.haml
+++ b/app/views/admin/application_settings/network.html.haml
@@ -151,6 +151,8 @@
= render 'projects_api_limits'
+= render 'members_api_limits'
+
%section.settings.as-import-export-limits.no-animate#js-import-export-limits-settings{ class: ('expanded' if expanded_by_default?) }
.settings-header
%h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only
diff --git a/app/views/admin/dashboard/_stats_users_table.html.haml b/app/views/admin/dashboard/_stats_users_table.html.haml
index 473384b8961..a23674c79db 100644
--- a/app/views/admin/dashboard/_stats_users_table.html.haml
+++ b/app/views/admin/dashboard/_stats_users_table.html.haml
@@ -1,4 +1,4 @@
-%table.table.gl-text-gray-500
+%table.table.gl-text-gray-500.gl-w-full
%tr
%td.gl-p-5!
= s_('AdminArea|Users without a Group and Project')
diff --git a/app/views/admin/dashboard/stats.html.haml b/app/views/admin/dashboard/stats.html.haml
index 059460ae5b2..8c096e2936f 100644
--- a/app/views/admin/dashboard/stats.html.haml
+++ b/app/views/admin/dashboard/stats.html.haml
@@ -8,7 +8,7 @@
%p.gl-font-weight-bold.gl-mt-8
= s_('AdminArea|Totals')
-%table.gl-table.gl-text-gray-500
+%table.gl-table.gl-text-gray-500.gl-w-full
= render_if_exists 'admin/dashboard/stats_active_users_row', users_statistics: @users_statistics
%tr.bg-gray-light.gl-text-gray-900
diff --git a/app/views/admin/sessions/new.html.haml b/app/views/admin/sessions/new.html.haml
index b3e24d5b3ac..e2f5ef5d786 100644
--- a/app/views/admin/sessions/new.html.haml
+++ b/app/views/admin/sessions/new.html.haml
@@ -4,11 +4,9 @@
.row.gl-mt-5.justify-content-center
.col-md-5
.login-page
- #signin-container{ class: ('borderless' if Feature.enabled?(:restyle_login_page, @project)) }
+ .borderless
- if any_form_based_providers_enabled?
= render 'devise/shared/tabs_ldap', show_password_form: allow_admin_mode_password_authentication_for_web?, render_signup_link: false
- - else
- = render 'devise/shared/tab_single', tab_title: page_title if Feature.disabled?(:restyle_login_page, @project)
.tab-content
- if allow_admin_mode_password_authentication_for_web? || ldap_sign_in_enabled? || crowd_enabled?
= render 'admin/sessions/signin_box'
diff --git a/app/views/admin/sessions/two_factor.html.haml b/app/views/admin/sessions/two_factor.html.haml
index ef004004227..898d47f446a 100644
--- a/app/views/admin/sessions/two_factor.html.haml
+++ b/app/views/admin/sessions/two_factor.html.haml
@@ -4,8 +4,7 @@
.row.justify-content-center
.col-md-5
.login-page
- #signin-container{ class: ('borderless' if Feature.enabled?(:restyle_login_page, @project)) }
- = render 'devise/shared/tab_single', tab_title: _('Enter admin mode') if Feature.disabled?(:restyle_login_page, @project)
+ .borderless
.login-box.gl-p-5
.login-body
- if current_user.two_factor_enabled?
diff --git a/app/views/admin/users/show.html.haml b/app/views/admin/users/show.html.haml
index 46fe6bed05e..649ed00ea22 100644
--- a/app/views/admin/users/show.html.haml
+++ b/app/views/admin/users/show.html.haml
@@ -151,6 +151,8 @@
= render_if_exists 'admin/users/credit_card_info', user: @user, link_to_match_page: true
+ = render_if_exists 'admin/users/phone_info', user: @user, link_to_match_page: true
+
= render 'shared/custom_attributes', custom_attributes: @user.custom_attributes
-# Rendered on desktop only so order of cards can be different on desktop vs mobile
diff --git a/app/views/ci/runner/_how_to_setup_runner.html.haml b/app/views/ci/runner/_how_to_setup_runner.html.haml
deleted file mode 100644
index 29c2e364c37..00000000000
--- a/app/views/ci/runner/_how_to_setup_runner.html.haml
+++ /dev/null
@@ -1,23 +0,0 @@
-- link = link_to _("Install GitLab Runner and ensure it's running."), 'https://docs.gitlab.com/runner/install/', target: '_blank', rel: 'noopener noreferrer'
-.gl-mb-3
- %h5= _("Set up a %{type} runner for a project") % { type: type }
-%ol
- %li
- = link.html_safe
- %li
- = _("Register the runner with this URL:")
- %br
- %code#coordinator_address= root_url(only_path: false)
- = deprecated_clipboard_button(target: '#coordinator_address', title: _("Copy URL"))
- %br
- %br
- = _("And this registration token:")
- %br
- %code#registration_token= registration_token
- = deprecated_clipboard_button(target: '#registration_token', title: _("Copy token"))
-
-.gl-mt-3.gl-mb-3
-= render Pajamas::ButtonComponent.new(variant: :default, method: :put, href: reset_token_url, button_options: { id: 'Reset registration token', data: { confirm: _("Are you sure you want to reset the registration token?") } }) do
- = _('Reset registration token')
-
-#js-install-runner
diff --git a/app/views/ci/variables/_attributes.html.haml b/app/views/ci/variables/_attributes.html.haml
new file mode 100644
index 00000000000..a924d92a4bb
--- /dev/null
+++ b/app/views/ci/variables/_attributes.html.haml
@@ -0,0 +1,13 @@
+%p
+ = s_('CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables.')
+ = link_to _('How can I make my variables more secure?'), help_page_path('ci/variables/index', anchor: 'cicd-variable-security'), target: '_blank', rel: 'noopener noreferrer'
+%p
+ = s_('CiVariables|Variables can have several attributes.')
+ = link_to _('Learn more.'), help_page_path('ci/variables/index', anchor: 'define-a-cicd-variable-in-the-ui'), target: '_blank', rel: 'noopener noreferrer'
+%ul
+ %li
+ = html_escape(s_('CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
+ %li
+ = html_escape(s_('CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
+ %li
+ = html_escape(s_('CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
diff --git a/app/views/ci/variables/_index.html.haml b/app/views/ci/variables/_index.html.haml
index 65f9e6c2342..a1567ad34e8 100644
--- a/app/views/ci/variables/_index.html.haml
+++ b/app/views/ci/variables/_index.html.haml
@@ -2,16 +2,7 @@
- is_group = !@group.nil?
- is_project = !@project.nil?
-%p
- = _('Variables can have several attributes.')
- = link_to _('Learn more.'), help_page_path('ci/variables/index', anchor: 'define-a-cicd-variable-in-the-ui'), target: '_blank', rel: 'noopener noreferrer'
-%ul
- %li
- = html_escape(_('%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
- %li
- = html_escape(_('%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
- %li
- = html_escape(_('%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
+= render 'ci/variables/attributes'
#js-ci-variables{ data: { endpoint: save_endpoint,
is_project: is_project.to_s,
diff --git a/app/views/dashboard/todos/index.html.haml b/app/views/dashboard/todos/index.html.haml
index 4f3ca9fd71b..1b0bd10db77 100644
--- a/app/views/dashboard/todos/index.html.haml
+++ b/app/views/dashboard/todos/index.html.haml
@@ -104,7 +104,10 @@
- if todos_filter_empty?
%p
- = (s_("Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item.") % { strongStart: '<strong>', strongEnd: '</strong>', openIssuesLinkStart: "<a href=\"#{issues_dashboard_path}\">", openIssuesLinkEnd: '</a>', mergeRequestLinkStart: "<a href=\"#{merge_requests_dashboard_path}\">", mergeRequestLinkEnd: '</a>' }).html_safe
+ = (s_("Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}.") % { strongStart: '<strong>', strongEnd: '</strong>', assignedIssuesLinkStart: "<a href=\"#{issues_dashboard_path(assignee_username: current_user.username)}\">", assignedIssuesLinkEnd: '</a>', mergeRequestLinkStart: "<a href=\"#{merge_requests_dashboard_path(assignee_username: current_user.username)}\">", mergeRequestLinkEnd: '</a>' }).html_safe
+ %p
+ = link_to s_("Todos| What actions create to-do items?"), help_page_path('user/todos', anchor: 'actions-that-create-to-do-items'), target: '_blank', rel: 'noopener noreferrer'
+
- elsif todos_has_filtered_results?
%p
= link_to s_("Todos|Do you want to remove the filters?"), todos_filter_path(without: [:project_id, :author_id, :type, :action_id])
diff --git a/app/views/devise/confirmations/new.html.haml b/app/views/devise/confirmations/new.html.haml
index 00652e8574a..0ce6d9b1095 100644
--- a/app/views/devise/confirmations/new.html.haml
+++ b/app/views/devise/confirmations/new.html.haml
@@ -8,7 +8,8 @@
= f.label :email
= f.email_field :email, class: "form-control gl-form-input", required: true, autocomplete: 'off', title: _('Please provide a valid email address.'), value: nil
.form-text.gl-text-secondary
- = _('Requires your primary GitLab email address.')
+ - emails_link = link_to('', profile_emails_url, target: '_blank', rel: 'noopener noreferrer')
+ = safe_format(s_('Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}'), tag_pair(emails_link, :emails_link_start, :emails_link_end))
%div
- if recaptcha_enabled?
diff --git a/app/views/devise/passwords/new.html.haml b/app/views/devise/passwords/new.html.haml
index 227418e366d..536d4c9fd4b 100644
--- a/app/views/devise/passwords/new.html.haml
+++ b/app/views/devise/passwords/new.html.haml
@@ -16,8 +16,4 @@
= render Pajamas::ButtonComponent.new(type: :submit, variant: :confirm, block: true) do
= _('Reset password')
-- if Feature.enabled?(:restyle_login_page, @project)
- = render 'devise/shared/sign_in_link'
-- else
- .gl-mt-3
- = render 'devise/shared/sign_in_link'
+= render 'devise/shared/sign_in_link'
diff --git a/app/views/devise/registrations/new.html.haml b/app/views/devise/registrations/new.html.haml
index 29f1a1f398b..ec85c680f7f 100644
--- a/app/views/devise/registrations/new.html.haml
+++ b/app/views/devise/registrations/new.html.haml
@@ -11,9 +11,8 @@
= render 'devise/shared/signup_omniauth_providers'
.signup-page
- = render signup_box_template,
+ = render 'devise/shared/signup_box',
url: registration_path(resource_name, registration_path_params),
button_text: _('Register'),
- borderless: Feature.enabled?(:restyle_login_page, @project),
show_omniauth_providers: omniauth_enabled? && button_based_providers_enabled?
= render 'devise/shared/sign_in_link'
diff --git a/app/views/devise/sessions/new.html.haml b/app/views/devise/sessions/new.html.haml
index e7ebe6d808c..728728ea653 100644
--- a/app/views/devise/sessions/new.html.haml
+++ b/app/views/devise/sessions/new.html.haml
@@ -9,26 +9,23 @@
= render_if_exists "layouts/google_tag_manager_body"
-#signin-container
+.js-non-oauth-login
- if any_form_based_providers_enabled?
= render 'devise/shared/tabs_ldap', render_signup_link: false
.tab-content
- if password_authentication_enabled_for_web? || ldap_sign_in_enabled? || crowd_enabled?
= render 'devise/shared/signin_box'
-
- -# Show a message if none of the mechanisms above are enabled
- - if !password_authentication_enabled_for_web? && !ldap_sign_in_enabled? && !(omniauth_enabled? && devise_mapping.omniauthable?)
- %div
- = _('No authentication methods configured.')
-
- - if Feature.enabled?(:restyle_login_page, @project) && Gitlab::CurrentSettings.current_application_settings.terms
- %p.gl-px-5
- = html_escape(s_("SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}.")) % { link_start: "<a href='#{terms_path}' target='_blank' rel='noreferrer noopener'>".html_safe,
- link_end: '</a>'.html_safe }
-
- - if allow_signup?
- %p{ class: "gl-mt-3 #{'gl-text-center' if Feature.enabled?(:restyle_login_page, @project)}" }
- = _("Don't have an account yet?")
- = link_to _("Register now"), new_registration_path(:user, invite_email: @invite_email), data: { testid: 'register-link' }
- - if omniauth_enabled? && devise_mapping.omniauthable? && button_based_providers_enabled?
- = render 'devise/shared/omniauth_box'
+-# Show a message if none of the mechanisms above are enabled
+- if !password_authentication_enabled_for_web? && !ldap_sign_in_enabled? && !(omniauth_enabled? && devise_mapping.omniauthable?)
+ %div
+ = _('No authentication methods configured.')
+- if Gitlab::CurrentSettings.current_application_settings.terms
+ %p.gl-px-5
+ = html_escape(s_("SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}.")) % { link_start: "<a href='#{terms_path}' target='_blank' rel='noreferrer noopener'>".html_safe,
+ link_end: '</a>'.html_safe }
+- if allow_signup?
+ %p.gl-mt-3.gl-text-center
+ = _("Don't have an account yet?")
+ = link_to _("Register now"), new_registration_path(:user, invite_email: @invite_email), data: { testid: 'register-link' }
+- if omniauth_enabled? && devise_mapping.omniauthable? && button_based_providers_enabled?
+ = render 'devise/shared/omniauth_box'
diff --git a/app/views/devise/sessions/two_factor.html.haml b/app/views/devise/sessions/two_factor.html.haml
index 96f6f5cb095..454b89e40f8 100644
--- a/app/views/devise/sessions/two_factor.html.haml
+++ b/app/views/devise/sessions/two_factor.html.haml
@@ -1,8 +1,7 @@
-= render 'devise/shared/tab_single', tab_title: _('Two-factor authentication') if Feature.disabled?(:restyle_login_page, @project)
.login-box.gl-p-5
.login-body
- if @user.two_factor_enabled?
- = gitlab_ui_form_for(resource, as: resource_name, url: session_path(resource_name), method: :post, html: { class: "edit_user gl-show-field-errors js-2fa-form #{'hidden' if @user.two_factor_webauthn_enabled?}" }) do |f|
+ = gitlab_ui_form_for(resource, as: resource_name, url: session_path(resource_name), method: :post, html: { class: "gl-show-field-errors js-2fa-form #{'hidden' if @user.two_factor_webauthn_enabled?}", aria: { live: 'assertive' }}) do |f|
.form-group
= f.label :otp_attempt, _('Enter verification code')
= f.text_field :otp_attempt, class: 'form-control gl-form-input', required: true, autofocus: true, autocomplete: 'off', inputmode: 'numeric', title: _('This field is required.'), data: { testid: 'two-fa-code-field' }
diff --git a/app/views/devise/shared/_footer.html.haml b/app/views/devise/shared/_footer.html.haml
index c35e43b909e..44f34e3f342 100644
--- a/app/views/devise/shared/_footer.html.haml
+++ b/app/views/devise/shared/_footer.html.haml
@@ -7,5 +7,8 @@
= link_to _("Help"), help_path
= link_to _("About GitLab"), "https://#{ApplicationHelper.promo_host}"
= link_to _("Community forum"), ApplicationHelper.community_forum, target: '_blank', class: 'text-nowrap', rel: 'noopener noreferrer'
+ - if one_trust_enabled?
+ = render Pajamas::ButtonComponent.new(category: :tertiary, size: :small, button_options: { class: 'ot-sdk-show-settings' }) do
+ = _("Cookie Preferences")
= render 'devise/shared/language_switcher'
= footer_message
diff --git a/app/views/devise/shared/_omniauth_box.html.haml b/app/views/devise/shared/_omniauth_box.html.haml
index 45062745b77..8197abcc787 100644
--- a/app/views/devise/shared/_omniauth_box.html.haml
+++ b/app/views/devise/shared/_omniauth_box.html.haml
@@ -1,21 +1,16 @@
- render_remember_me = remember_me_enabled? && local_assigns.fetch(:render_remember_me, true)
-- restyle_login_page_enabled = Feature.enabled?(:restyle_login_page, @project)
-- if restyle_login_page_enabled && (any_form_based_providers_enabled? || password_authentication_enabled_for_web?)
+- if any_form_based_providers_enabled? || password_authentication_enabled_for_web?
.omniauth-divider.gl-display-flex.gl-align-items-center
= _("or sign in with")
-.gl-mt-5.gl-px-5{ class: restyle_login_page_enabled ? 'omniauth-container gl-text-center gl-ml-auto gl-mr-auto' : 'omniauth-container gl-py-5' }
- - if !restyle_login_page_enabled
- %label.gl-font-weight-bold
- = _('Sign in with')
+.gl-mt-5.gl-px-5.gl-text-center.gl-display-flex.gl-flex-direction-column.gl-gap-3.js-oauth-login
- enabled_button_based_providers.each do |provider|
- - has_icon = provider_has_icon?(provider)
- = button_to omniauth_authorize_path(:user, provider), id: "oauth-login-#{provider}", data: { testid: "#{test_id_for_provider(provider)}" }, class: "btn gl-button btn-default gl-mb-2 js-oauth-login gl-w-full", form: { class: restyle_login_page_enabled ? 'gl-mb-3' : 'gl-w-full gl-mb-3' } do
- - if has_icon
- = provider_image_tag(provider)
- %span.gl-button-text
- = label_for_provider(provider)
+ = render 'devise/shared/omniauth_provider_button',
+ href: omniauth_authorize_path(:user, provider),
+ provider: provider,
+ data: { testid: test_id_for_provider(provider) },
+ id: "oauth-login-#{provider}"
- if render_remember_me
= render Pajamas::CheckboxTagComponent.new(name: 'remember_me_omniauth', value: nil) do |c|
- c.with_label do
diff --git a/app/views/devise/shared/_omniauth_provider_button.haml b/app/views/devise/shared/_omniauth_provider_button.haml
new file mode 100644
index 00000000000..c33e2253bb1
--- /dev/null
+++ b/app/views/devise/shared/_omniauth_provider_button.haml
@@ -0,0 +1,7 @@
+- button_options = { class: local_assigns.fetch(:classes, nil) || nil, data: data, id: id }
+
+= render Pajamas::ButtonComponent.new(href: href, method: :post, form: true, block: true, button_options: button_options) do
+ - if provider_has_icon?(provider)
+ = provider_image_tag(provider)
+ %span.gl-button-text
+ = label_for_provider(provider)
diff --git a/app/views/devise/shared/_signup_box.html.haml b/app/views/devise/shared/_signup_box.html.haml
index fb60b8c08eb..9eb0b773ebb 100644
--- a/app/views/devise/shared/_signup_box.html.haml
+++ b/app/views/devise/shared/_signup_box.html.haml
@@ -1,10 +1,7 @@
-- borderless ||= false
-
-.gl-mb-3.gl-p-4{ class: (borderless ? '' : 'gl-border-gray-100 gl-border-1 gl-border-solid gl-rounded-base') }
+.gl-mb-3.gl-p-4
= yield :omniauth_providers_top if show_omniauth_providers
= render 'devise/shared/signup_box_form',
button_text: button_text,
url: url,
show_omniauth_providers: omniauth_enabled? && button_based_providers_enabled?
-
diff --git a/app/views/devise/shared/_signup_omniauth_provider_button.haml b/app/views/devise/shared/_signup_omniauth_provider_button.haml
index 74f009a97d3..9870e90cfff 100644
--- a/app/views/devise/shared/_signup_omniauth_provider_button.haml
+++ b/app/views/devise/shared/_signup_omniauth_provider_button.haml
@@ -1,8 +1,6 @@
-- data = { provider: provider, track_action: "#{provider}_sso", track_label: tracking_label }
-- button_options = { class: 'js-oauth-login', data: data, id: "oauth-login-#{provider}" }
-
-= render Pajamas::ButtonComponent.new(href: href, method: :post, form: true, block: true, button_options: button_options) do
- - if provider_has_icon?(provider)
- = provider_image_tag(provider)
- %span.gl-button-text
- = label_for_provider(provider)
+= render 'devise/shared/omniauth_provider_button',
+ href: href,
+ provider: provider,
+ classes: 'js-track-omni-auth',
+ data: { provider: provider, track_action: "#{provider}_sso", track_label: tracking_label },
+ id: "oauth-login-#{provider}"
diff --git a/app/views/devise/shared/_signup_omniauth_provider_list.haml b/app/views/devise/shared/_signup_omniauth_provider_list.haml
index 9916d3fa026..c1026c0f431 100644
--- a/app/views/devise/shared/_signup_omniauth_provider_list.haml
+++ b/app/views/devise/shared/_signup_omniauth_provider_list.haml
@@ -1,21 +1,9 @@
-- if Feature.enabled?(:restyle_login_page, @project)
- .gl-text-center.gl-pt-5
- %label.gl-font-weight-normal
- = _("Register with:")
- .gl-display-flex.gl-flex-direction-column.gl-gap-3
- - providers.each do |provider|
- = render 'devise/shared/signup_omniauth_provider_button',
- href: omniauth_authorize_path(:user, provider, register_omniauth_params(local_assigns)),
- provider: provider,
- tracking_label: tracking_label
-
-
-- else
- %label.gl-font-weight-bold
- = _("Create an account using:")
+.gl-text-center.gl-pt-5
+ %label.gl-font-weight-normal
+ = _("Register with:")
.gl-display-flex.gl-flex-direction-column.gl-gap-3
- providers.each do |provider|
= render 'devise/shared/signup_omniauth_provider_button',
- href: omniauth_authorize_path(:user, provider, register_omniauth_params(local_assigns)),
- provider: provider,
- tracking_label: tracking_label
+ href: omniauth_authorize_path(:user, provider, register_omniauth_params(local_assigns)),
+ provider: provider,
+ tracking_label: tracking_label
diff --git a/app/views/devise/shared/_signup_omniauth_providers.haml b/app/views/devise/shared/_signup_omniauth_providers.haml
index 4e62c10b258..263e11ab341 100644
--- a/app/views/devise/shared/_signup_omniauth_providers.haml
+++ b/app/views/devise/shared/_signup_omniauth_providers.haml
@@ -1,6 +1,3 @@
-- if Feature.disabled?(:restyle_login_page, @project)
- .omniauth-divider.gl-display-flex.gl-align-items-center
- = _("or")
= render 'devise/shared/signup_omniauth_provider_list',
providers: enabled_button_based_providers,
tracking_label: oauth_tracking_label
diff --git a/app/views/devise/shared/_tabs_ldap.html.haml b/app/views/devise/shared/_tabs_ldap.html.haml
index e6bc38ba6dd..3e9d60da228 100644
--- a/app/views/devise/shared/_tabs_ldap.html.haml
+++ b/app/views/devise/shared/_tabs_ldap.html.haml
@@ -1,7 +1,7 @@
- show_password_form = local_assigns.fetch(:show_password_form, password_authentication_enabled_for_web?)
- render_signup_link = local_assigns.fetch(:render_signup_link, true)
-%ul.nav-links.new-session-tabs.nav-tabs.nav{ class: "#{'custom-provider-tabs' if any_form_based_providers_enabled?} #{'nav-links-unboxed' if Feature.enabled?(:restyle_login_page, @project)}" }
+%ul.nav-links.new-session-tabs.nav-tabs.nav.nav-links-unboxed
- if crowd_enabled?
%li.nav-item
= link_to _("Crowd"), "#crowd", class: "nav-link #{active_when(form_based_auth_provider_has_active_class?(:crowd))}", 'data-toggle' => 'tab', role: 'tab'
diff --git a/app/views/devise/shared/_terms_of_service_notice.html.haml b/app/views/devise/shared/_terms_of_service_notice.html.haml
index 3749dc66a04..5d5a5a64c29 100644
--- a/app/views/devise/shared/_terms_of_service_notice.html.haml
+++ b/app/views/devise/shared/_terms_of_service_notice.html.haml
@@ -1,17 +1,9 @@
- return unless Gitlab::CurrentSettings.current_application_settings.enforce_terms?
%p.gl-text-gray-500.gl-mt-5.gl-mb-0
- - if Feature.enabled?(:restyle_login_page, @project)
- - if Gitlab.com?
- = html_escape(s_("SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}")) % { button_text: button_text,
- link_start: "<a href='#{terms_path}' target='_blank' rel='noreferrer noopener'>".html_safe, link_end: '</a>'.html_safe }
- - else
- = html_escape(s_("SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}")) % { button_text: button_text,
- link_start: "<a href='#{terms_path}' target='_blank' rel='noreferrer noopener'>".html_safe, link_end: '</a>'.html_safe }
+ - if Gitlab.com?
+ = html_escape(s_("SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}")) % { button_text: button_text,
+ link_start: "<a href='#{terms_path}' target='_blank' rel='noreferrer noopener'>".html_safe, link_end: '</a>'.html_safe }
- else
- - if Gitlab.com?
- = html_escape(s_("SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Statement%{link_end}")) % { button_text: button_text,
- link_start: "<a href='#{terms_path}' target='_blank' rel='noreferrer noopener'>".html_safe, link_end: '</a>'.html_safe }
- - else
- = html_escape(s_("SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Statement%{link_end}")) % { button_text: button_text,
- link_start: "<a href='#{terms_path}' target='_blank' rel='noreferrer noopener'>".html_safe, link_end: '</a>'.html_safe }
+ = html_escape(s_("SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}")) % { button_text: button_text,
+ link_start: "<a href='#{terms_path}' target='_blank' rel='noreferrer noopener'>".html_safe, link_end: '</a>'.html_safe }
diff --git a/app/views/devise/unlocks/new.html.haml b/app/views/devise/unlocks/new.html.haml
index 8bae27020c2..393f42cd197 100644
--- a/app/views/devise/unlocks/new.html.haml
+++ b/app/views/devise/unlocks/new.html.haml
@@ -11,8 +11,5 @@
= render Pajamas::ButtonComponent.new(type: :submit, variant: :confirm, block: true) do
= _('Resend unlock instructions')
-- if Feature.enabled?(:restyle_login_page, @project)
- = render 'devise/shared/sign_in_link'
-- else
- .gl-mt-3
- = render 'devise/shared/sign_in_link'
+= render 'devise/shared/sign_in_link'
+
diff --git a/app/views/groups/_import_group_from_file_panel.html.haml b/app/views/groups/_import_group_from_file_panel.html.haml
index c39f5cf87c7..43a8ccdaae4 100644
--- a/app/views/groups/_import_group_from_file_panel.html.haml
+++ b/app/views/groups/_import_group_from_file_panel.html.haml
@@ -10,14 +10,14 @@
alert_options: { class: 'gl-mb-5' },
dismissible: false) do |c|
- c.with_body do
- - docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/group/import/index', anchor: 'migrate-groups-by-direct-transfer-recommended') }
+ - docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/group/import/index') }
- link_end = '</a>'.html_safe
= s_('GroupsNew|This feature is deprecated and replaced by group migration by direct transfer. %{docs_link_start}Learn more%{docs_link_end}.').html_safe % { docs_link_start: docs_link_start, docs_link_end: link_end }
= render 'shared/groups/group_name_and_path_fields', f: f
.form-group
= f.label :file, s_('GroupsNew|Upload file')
.gl-font-weight-normal
- - import_export_link_start = '<a href="%{url}" target="_blank">'.html_safe % { url: help_page_path('user/group/import/index') }
+ - import_export_link_start = '<a href="%{url}" target="_blank">'.html_safe % { url: help_page_path('user/project/settings/import_export', anchor: 'migrate-groups-by-uploading-an-export-file-deprecated') }
= s_('GroupsNew|To import a group, navigate to the group settings for the GitLab source instance, %{link_start}generate an export file%{link_end}, and upload it here.').html_safe % { link_start: import_export_link_start, link_end: '</a>'.html_safe }
.gl-mt-3
= render 'shared/file_picker_button', f: f, field: :file, help_text: nil
diff --git a/app/views/groups/settings/_export.html.haml b/app/views/groups/settings/_export.html.haml
index ff1d76f470c..c7909a7c249 100644
--- a/app/views/groups/settings/_export.html.haml
+++ b/app/views/groups/settings/_export.html.haml
@@ -10,7 +10,7 @@
- c.with_body do
= render Pajamas::AlertComponent.new(variant: :warning, dismissible: false, alert_options: { class: 'gl-mb-4' }) do |c|
- c.with_body do
- - docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/group/import/index', anchor: 'migrate-groups-by-direct-transfer-recommended') }
+ - docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/group/import/index') }
- docs_link_end = '</a>'.html_safe
= s_('GroupsNew|This feature is deprecated and replaced by group migration by direct transfer. %{docs_link_start}Learn more%{docs_link_end}.').html_safe % { docs_link_start: docs_link_start, docs_link_end: docs_link_end }
%p
diff --git a/app/views/groups/settings/_permissions.html.haml b/app/views/groups/settings/_permissions.html.haml
index 4334c4996f2..fae0c41b683 100644
--- a/app/views/groups/settings/_permissions.html.haml
+++ b/app/views/groups/settings/_permissions.html.haml
@@ -49,6 +49,7 @@
= render_if_exists 'groups/personal_access_token_expiration_policy', f: f, group: @group
= render 'groups/settings/membership', f: f, group: @group
= render_if_exists 'groups/settings/security_policies_custom_ci', f: f, group: @group
+ = render_if_exists 'groups/settings/security_policies_policy_scope', f: f, group: @group
%h5= _('Customer relations')
.form-group.gl-mb-3
@@ -57,4 +58,12 @@
checkbox_options: { checked: @group.crm_enabled? },
help_text: s_('GroupSettings|Organizations and contacts can be created and associated with issues.')
+ - if Feature.enabled?(:group_hierarchy_optimization, @group, type: :beta)
+ %h5= _('Performance')
+ .form-group.gl-mb-3
+ = f.gitlab_ui_checkbox_component :enable_namespace_descendants_cache,
+ s_('GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group.'),
+ checkbox_options: { checked: @group.namespace_descendants.present? },
+ help_text: s_('GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees.')
+
= f.submit _('Save changes'), pajamas_button: true, class: 'gl-mt-3 js-dirty-submit', data: { testid: 'save-permissions-changes-button' }
diff --git a/app/views/import/github/status.html.haml b/app/views/import/github/status.html.haml
index 97acafe24d0..0f56ae92557 100644
--- a/app/views/import/github/status.html.haml
+++ b/app/views/import/github/status.html.haml
@@ -12,4 +12,4 @@
cancel_path: cancel_import_github_path,
details_path: details_import_github_path,
status_import_github_group_path: status_import_github_group_path(format: :json),
- optional_stages: Gitlab::GithubImport::Settings.stages_array
+ optional_stages: Gitlab::GithubImport::Settings.stages_array(current_user)
diff --git a/app/views/layouts/_head.html.haml b/app/views/layouts/_head.html.haml
index 5f038ac467d..79fa5bfeac0 100644
--- a/app/views/layouts/_head.html.haml
+++ b/app/views/layouts/_head.html.haml
@@ -19,7 +19,6 @@
= yield :prefetch_asset_tags
- diffs_colors = user_diffs_colors
- = stylesheet_link_tag "themes/#{user_application_theme_css_filename}" if user_application_theme_css_filename
= render 'layouts/diffs_colors_css', diffs_colors if diffs_colors.present? || request.path == profile_preferences_path
- if user_application_theme == 'gl-dark'
diff --git a/app/views/layouts/_page.html.haml b/app/views/layouts/_page.html.haml
index a7caa797a46..3af04db4cfd 100644
--- a/app/views/layouts/_page.html.haml
+++ b/app/views/layouts/_page.html.haml
@@ -1,16 +1,13 @@
.layout-page{ class: page_with_sidebar_class }
- - if show_super_sidebar?
- -# Render the parent group sidebar while creating a new subgroup/project, see GroupsController#new.
- - group = @parent_group || @group
+ -# Render the parent group sidebar while creating a new subgroup/project, see GroupsController#new.
+ - group = @parent_group || @group
- - sidebar_panel = super_sidebar_nav_panel(nav: nav, user: current_user, group: group, project: @project, current_ref: current_ref, ref_type: @ref_type, viewed_user: @user, organization: @organization)
- - sidebar_data = super_sidebar_context(current_user, group: group, project: @project, panel: sidebar_panel, panel_type: nav).to_json
- %aside.js-super-sidebar.super-sidebar.super-sidebar-loading{ data: { root_path: root_path, sidebar: sidebar_data, force_desktop_expanded_sidebar: @force_desktop_expanded_sidebar.to_s, command_palette: command_palette_data(project: @project).to_json } }
+ - sidebar_panel = super_sidebar_nav_panel(nav: nav, user: current_user, group: group, project: @project, current_ref: current_ref, ref_type: @ref_type, viewed_user: @user, organization: @organization)
+ - sidebar_data = super_sidebar_context(current_user, group: group, project: @project, panel: sidebar_panel, panel_type: nav).to_json
+ %aside.js-super-sidebar.super-sidebar.super-sidebar-loading{ data: { root_path: root_path, sidebar: sidebar_data, force_desktop_expanded_sidebar: @force_desktop_expanded_sidebar.to_s, command_palette: command_palette_data(project: @project).to_json } }
- = render_if_exists "layouts/tanuki_bot_chat"
+ = render_if_exists "layouts/tanuki_bot_chat"
- - elsif defined?(nav) && nav
- = render "layouts/nav/sidebar/#{nav}"
.content-wrapper{ class: "#{@content_wrapper_class}" }
.mobile-overlay
= dispensable_render_if_exists 'layouts/header/verification_reminder'
diff --git a/app/views/layouts/_snowplow.html.haml b/app/views/layouts/_snowplow.html.haml
index 3582deea902..503b38496f7 100644
--- a/app/views/layouts/_snowplow.html.haml
+++ b/app/views/layouts/_snowplow.html.haml
@@ -2,7 +2,7 @@
- namespace = @group || @project&.namespace || @namespace
= webpack_bundle_tag 'tracker'
-- if Gitlab.com? && Feature.enabled?(:browsersdk_tracking) && Feature.enabled?(:gl_analytics_tracking, Feature.current_request)
+- if Gitlab.com? && Feature.enabled?(:gl_analytics_tracking, Feature.current_request)
= webpack_bundle_tag 'analytics'
= javascript_tag do
:plain
@@ -13,7 +13,6 @@
namespace_id: namespace&.id,
plan_name: namespace&.actual_plan_name,
project_id: @project&.id,
- user_id: current_user&.id,
- new_nav: show_super_sidebar?
+ user_id: current_user&.id
).to_context.to_json.to_json}
gl.snowplowPseudonymizedPageUrl = #{masked_page_url(group: namespace, project: @project).to_json};
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 78fa40167f8..b9257bcedc9 100644
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -1,11 +1,13 @@
- page_classes = page_class << @html_class
- page_classes = [user_application_theme, page_classes.flatten.compact]
- body_classes = [user_tab_width, @body_class, client_class_list, *custom_diff_color_classes]
+- ff_simplified_labels_enabled = Feature.enabled?(:simplified_labels) ? 'ff-simplified-labels-enabled' : ''
+- ff_simplified_badges_class = Feature.enabled?(:simplified_badges) ? 'ff-simplified-badges-enabled' : ''
!!! 5
%html{ lang: I18n.locale, class: page_classes }
= render "layouts/head"
- %body{ class: body_classes, data: body_data }
+ %body{ class: [body_classes, ff_simplified_labels_enabled, ff_simplified_badges_class], data: body_data }
= render "layouts/init_auto_complete" if @gfm_form
= render "layouts/init_client_detection_flags"
= render "layouts/visual_review" if review_apps_enabled?
diff --git a/app/views/layouts/devise.html.haml b/app/views/layouts/devise.html.haml
index 920771bf4c2..2905ba924ca 100644
--- a/app/views/layouts/devise.html.haml
+++ b/app/views/layouts/devise.html.haml
@@ -6,63 +6,31 @@
%body.gl-h-full.login-page.navless{ class: "#{system_message_class} #{client_class_list}", data: { page: body_data_page, testid: 'login-page' } }
= header_message
= render "layouts/init_client_detection_flags"
- - if Feature.enabled?(:restyle_login_page, @project)
- = yield :sessions_broadcast
- .gl-h-full.borderless.gl-display-flex.gl-flex-wrap
- .container
- .content
- = render "layouts/flash"
- - if custom_text.present?
- .row
- .col-md.order-12.sm-bg-gray
- .col-sm-12
- %h1.mb-3.gl-font-size-h2
- = brand_title
- = custom_text
- .col-md.order-md-12
- .col-sm-12.bar
- .gl-text-center
- = brand_image
- = yield
- - else
- .mt-3
- .col-sm-12.gl-text-center
- = brand_image
+ = yield :sessions_broadcast
+ .gl-h-full.borderless.gl-display-flex.gl-flex-wrap
+ .container.gl-align-self-center
+ .content
+ = render "layouts/flash"
+ - if custom_text.present?
+ .row
+ .col-md.order-12.sm-bg-gray
+ .col-sm-12
%h1.mb-3.gl-font-size-h2
= brand_title
- .mb-3
- .gl-w-full.gl-sm-w-half.gl-ml-auto.gl-mr-auto.bar
+ = custom_text
+ .col-md.order-md-12
+ .col-sm-12.bar
+ .gl-text-center
+ = brand_image
= yield
-
- = render 'devise/shared/footer'
- - else
- = render "layouts/header/empty"
- = yield :sessions_broadcast
- .gl-h-full.gl-display-flex.gl-flex-wrap
- .container
- .content
- = render "layouts/flash"
- .row.mt-3
- .col-sm-12
- %h1.mb-3.font-weight-normal
- = current_appearance&.title.presence || _('GitLab')
- .row.mb-3
- .col-md-6.order-12.order-sm-1.brand-holder
- - unless recently_confirmed_com?
- = brand_image
- - if custom_text.present?
- = custom_text
- - else
- %h3.gl-sm-mt-0
- = _('A complete DevOps platform')
-
- %p
- = _('GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security.')
-
- %p
- = _('This is a self-managed instance of GitLab.')
-
- .col-md-6.order-1{ class: recently_confirmed_com? ? 'order-sm-first' : 'order-sm-12' }
+ - else
+ .mt-3
+ .col-sm-12.gl-text-center
+ = brand_image
+ %h1.mb-3.gl-font-size-h2
+ = brand_title
+ .mb-3
+ .gl-w-full.gl-sm-w-half.gl-ml-auto.gl-mr-auto.bar
= yield
- = render 'devise/shared/footer'
+ = render 'devise/shared/footer'
diff --git a/app/views/layouts/devise_empty.html.haml b/app/views/layouts/devise_empty.html.haml
index 6816a64ac8f..faf45ae78ef 100644
--- a/app/views/layouts/devise_empty.html.haml
+++ b/app/views/layouts/devise_empty.html.haml
@@ -7,7 +7,7 @@
= render "layouts/init_client_detection_flags"
= render "layouts/header/empty"
.gl-h-full.gl-display-flex.gl-flex-wrap
- .container
+ .container.gl-align-self-center
.content
= render "layouts/flash"
= yield
diff --git a/app/views/layouts/group.html.haml b/app/views/layouts/group.html.haml
index 498e9216894..28305960de9 100644
--- a/app/views/layouts/group.html.haml
+++ b/app/views/layouts/group.html.haml
@@ -23,5 +23,6 @@
= dispensable_render_if_exists "shared/free_user_cap_alert", source: @group
= dispensable_render_if_exists "shared/unlimited_members_during_trial_alert", resource: @group
= dispensable_render_if_exists "shared/code_suggestions_ga_non_owner_alert", resource: @group
+= dispensable_render_if_exists "shared/code_suggestions_ga_owner_alert", resource: @group
= render template: base_layout || "layouts/application"
diff --git a/app/views/layouts/header/_super_sidebar_logged_out.haml b/app/views/layouts/header/_super_sidebar_logged_out.haml
index fc63400e011..9b0424ea478 100644
--- a/app/views/layouts/header/_super_sidebar_logged_out.haml
+++ b/app/views/layouts/header/_super_sidebar_logged_out.haml
@@ -2,7 +2,7 @@
%a.gl-sr-only.gl-accessibility{ href: "#content-body" } Skip to content
.container-fluid
%nav.header-logged-out-nav.gl-display-flex.gl-gap-3.gl-justify-content-space-between{ 'aria-label': s_('LoggedOutMarketingHeader|Explore GitLab') }
- .header-logged-out-logo.gl-display-flex.gl-align-items-center
+ .header-logged-out-logo.gl-display-flex.gl-align-items-center.gl-gap-3
%span.gl-sr-only GitLab
= link_to root_path, title: _('Homepage'), id: 'logo', class: 'has-tooltip', aria: { label: _('Homepage') }, **tracking_attrs('main_navigation', 'click_gitlab_logo_link', 'navigation_top') do
= brand_header_logo
diff --git a/app/views/layouts/nav/breadcrumbs/_collapsed_inline_list.html.haml b/app/views/layouts/nav/breadcrumbs/_collapsed_inline_list.html.haml
index 3894501bbbb..37bf8515a8c 100644
--- a/app/views/layouts/nav/breadcrumbs/_collapsed_inline_list.html.haml
+++ b/app/views/layouts/nav/breadcrumbs/_collapsed_inline_list.html.haml
@@ -1,8 +1,8 @@
- dropdown_location = local_assigns.fetch(:location, nil)
- button_tooltip = local_assigns.fetch(:title, _("Show all breadcrumbs"))
- if defined?(@breadcrumb_collapsed_links) && @breadcrumb_collapsed_links.key?(dropdown_location)
- %li.expander.gl-breadcrumb-item
- %button.text-expander.has-tooltip.js-breadcrumbs-collapsed-expander{ type: "button", data: { container: "body" }, "aria-label": button_tooltip, title: button_tooltip }
+ %li.expander.gl-breadcrumb-item.gl-display-inline-flex
+ %button.text-expander.has-tooltip.js-breadcrumbs-collapsed-expander.gl-ml-0{ type: "button", data: { container: "body" }, "aria-label": button_tooltip, title: button_tooltip }
= sprite_icon("ellipsis_h", size: 12)
- @breadcrumb_collapsed_links[dropdown_location].each_with_index do |link, index|
%li.gl-breadcrumb-item{ :class => "gl-display-none!" }
diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml
index e95d645769e..5a6f45d4dd7 100644
--- a/app/views/layouts/project.html.haml
+++ b/app/views/layouts/project.html.haml
@@ -26,5 +26,6 @@
= dispensable_render_if_exists "projects/free_user_cap_alert", project: @project
= dispensable_render_if_exists 'shared/unlimited_members_during_trial_alert', resource: @project
= dispensable_render_if_exists 'projects/code_suggestions_ga_non_owner_alert', project: @project
+= dispensable_render_if_exists 'projects/code_suggestions_ga_owner_alert', project: @project
= render template: "layouts/application"
diff --git a/app/views/layouts/signup_onboarding.html.haml b/app/views/layouts/signup_onboarding.html.haml
index c8e15896b97..e3e071c2226 100644
--- a/app/views/layouts/signup_onboarding.html.haml
+++ b/app/views/layouts/signup_onboarding.html.haml
@@ -7,7 +7,7 @@
= header_message
= render "layouts/init_client_detection_flags"
= render "layouts/header/logo_with_title"
- .container
+ .container.gl-align-self-center
.content
= yield
diff --git a/app/views/notify/_reassigned_issuable_email.html.haml b/app/views/notify/_reassigned_issuable_email.html.haml
index ead8e5d0a7e..b89d897a81b 100644
--- a/app/views/notify/_reassigned_issuable_email.html.haml
+++ b/app/views/notify/_reassigned_issuable_email.html.haml
@@ -1,7 +1,12 @@
-- to_names = content_tag(:strong, issuable.assignees.any? ? sanitize_name(issuable.assignee_list) : _('Unassigned'))
+- added_names = content_tag(:strong, sanitize_name(added_assignees.to_sentence(locale: I18n.locale)))
+- removed_names = content_tag(:strong, sanitize_name(removed_assignees.to_sentence(locale: I18n.locale)))
-%p
- - if previous_assignees.any?
- = html_escape(s_('Notify|Assignee changed from %{fromNames} to %{toNames}').html_safe % { fromNames: content_tag(:strong, sanitize_name(previous_assignees.map(&:name).to_sentence)), toNames: to_names })
- - else
- = html_escape(s_('Notify|Assignee changed to %{toNames}').html_safe % { toNames: to_names})
+- if added_assignees.any?
+ %p
+ = html_escape(n_(s_('Notify|%{added} was added as an assignee.'), s_('Notify|%{added} were added as assignees.'), added_assignees.length).html_safe % { added: added_names })
+- if removed_assignees.any? && issuable.assignees.any?
+ %p
+ = html_escape(n_(s_('Notify|%{removed} was removed as an assignee.'), s_('Notify|%{removed} were removed as assignees.'), removed_assignees.length).html_safe % { removed: removed_names })
+- if removed_assignees.any? && issuable.assignees.empty?
+ %p
+ = html_escape(s_('Notify|All assignees were removed.'))
diff --git a/app/views/notify/new_review_email.html.haml b/app/views/notify/new_review_email.html.haml
index 8a184aa9696..5b870fe2214 100644
--- a/app/views/notify/new_review_email.html.haml
+++ b/app/views/notify/new_review_email.html.haml
@@ -2,24 +2,41 @@
= content_for :head do
= stylesheet_link_tag 'mailers/highlighted_diff_email'
-%table{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;margin:0 auto;border-collapse:separate;border-spacing:0;" }
- %tbody
- %tr
- %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#ffffff;text-align:left;overflow:hidden;" }
- %table{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;border-collapse:separate;border-spacing:0;" }
- %tbody
- %tr
- %td{ style: "color:#333333;border-bottom:1px solid #ededed;font-weight:bold;line-height:1.4;padding: 20px 0;" }
- - mr_link = link_to(@merge_request.to_reference(@project), project_merge_request_url(@project, @merge_request))
- - mr_author_link = link_to(@author_name, user_url(@author))
- = _('Merge request %{mr_link} was reviewed by %{mr_author}').html_safe % { mr_link: mr_link, mr_author: mr_author_link }
- %tr
- %td{ style: "overflow:hidden;line-height:1.4;display:grid;" }
- - @notes.each do |note|
- -# Get preloaded note discussion
- - discussion = @discussions[note.discussion_id] if note.part_of_discussion?
- -# Preload project for discussions first note
- - discussion.first_note.project = @project if discussion&.first_note
- - target_url = project_merge_request_url(@project, @merge_request, anchor: "note_#{note.id}")
- = render 'note_email', note: note, diff_limit: 3, target_url: target_url, note_style: "border-bottom:1px solid #ededed; padding-bottom: 1em;", include_stylesheet_link: false, discussion: discussion, author: @author
- = render_if_exists 'notify/review_summary'
+- if Feature.enabled?(:enhanced_review_email, @project, type: :gitlab_com_derisk)
+ %div{ style: "color:#333333;border-bottom:8px solid #ededed;font-weight:bold;line-height:1.4;padding: 20px 0;" }
+ - mr_link = link_to(@merge_request.to_reference(@project), project_merge_request_url(@project, @merge_request))
+ - mr_author_link = link_to(@author_name, user_url(@author))
+ = _('Merge request %{mr_link} was reviewed by %{mr_author}').html_safe % { mr_link: mr_link, mr_author: mr_author_link }
+
+ - @notes.each do |note|
+ -# Get preloaded note discussion
+ - discussion = @discussions[note.discussion_id] if note.part_of_discussion?
+ -# Preload project for discussions first note
+ - discussion.first_note.project = @project if discussion&.first_note
+ - target_url = project_merge_request_url(@project, @merge_request, anchor: "note_#{note.id}")
+ = render 'note_email', note: note, diff_limit: 3, target_url: target_url, note_style: "border-bottom:4px solid #ededed; padding-bottom: 1em;", include_stylesheet_link: false, discussion: discussion, author: @author
+ = render_if_exists 'notify/review_summary'
+
+- else
+
+ %table{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;margin:0 auto;border-collapse:separate;border-spacing:0;" }
+ %tbody
+ %tr
+ %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#ffffff;text-align:left;overflow:hidden;" }
+ %table{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;border-collapse:separate;border-spacing:0;" }
+ %tbody
+ %tr
+ %td{ style: "color:#333333;border-bottom:1px solid #ededed;font-weight:bold;line-height:1.4;padding: 20px 0;" }
+ - mr_link = link_to(@merge_request.to_reference(@project), project_merge_request_url(@project, @merge_request))
+ - mr_author_link = link_to(@author_name, user_url(@author))
+ = _('Merge request %{mr_link} was reviewed by %{mr_author}').html_safe % { mr_link: mr_link, mr_author: mr_author_link }
+ %tr
+ %td{ style: "overflow:hidden;line-height:1.4;display:grid;" }
+ - @notes.each do |note|
+ -# Get preloaded note discussion
+ - discussion = @discussions[note.discussion_id] if note.part_of_discussion?
+ -# Preload project for discussions first note
+ - discussion.first_note.project = @project if discussion&.first_note
+ - target_url = project_merge_request_url(@project, @merge_request, anchor: "note_#{note.id}")
+ = render 'note_email', note: note, diff_limit: 3, target_url: target_url, note_style: "border-bottom:1px solid #ededed; padding-bottom: 1em;", include_stylesheet_link: false, discussion: discussion, author: @author
+ = render_if_exists 'notify/review_summary'
diff --git a/app/views/notify/reassigned_issue_email.html.haml b/app/views/notify/reassigned_issue_email.html.haml
index 6b088927623..e5860c1672a 100644
--- a/app/views/notify/reassigned_issue_email.html.haml
+++ b/app/views/notify/reassigned_issue_email.html.haml
@@ -1 +1 @@
-= render 'reassigned_issuable_email', issuable: @issue, previous_assignees: @previous_assignees
+= render 'reassigned_issuable_email', issuable: @issue, added_assignees: @added_assignees, removed_assignees: @removed_assignees
diff --git a/app/views/notify/reassigned_issue_email.text.erb b/app/views/notify/reassigned_issue_email.text.erb
index f37c8ffa515..b5e5abbbccf 100644
--- a/app/views/notify/reassigned_issue_email.text.erb
+++ b/app/views/notify/reassigned_issue_email.text.erb
@@ -1,6 +1,15 @@
+<% added_names = sanitize_name(@added_assignees.to_sentence(locale: I18n.locale)) -%>
+<% removed_names = sanitize_name(@removed_assignees.to_sentence(locale: I18n.locale)) -%>
Reassigned Issue <%= @issue.iid %>
<%= url_for([@issue.project, @issue, { only_path: false }]) %>
-Assignee changed<%= " from #{sanitize_name(@previous_assignees.map(&:name).to_sentence)}" if @previous_assignees.any? -%>
- to <%= "#{@issue.assignees.any? ? @issue.assignee_list : 'Unassigned'}" %>
+<%- if @added_assignees.any? %>
+<%= html_escape(n_(s_('Notify|%{added} was added as an assignee.'), s_('Notify|%{added} were added as assignees.'), @added_assignees.length).html_safe % { added: added_names }) %>
+<% end -%>
+<%- if @removed_assignees.any? && @issue.assignees.any? %>
+<%= html_escape(n_(s_('Notify|%{removed} was removed as an assignee.'), s_('Notify|%{removed} were removed as assignees.'), @removed_assignees.length).html_safe % { removed: removed_names }) %>
+<% end -%>
+<%- if @removed_assignees.any? && @issue.assignees.empty? %>
+<%= html_escape(s_('Notify|All assignees were removed.')) %>
+<% end -%>
diff --git a/app/views/notify/reassigned_merge_request_email.html.haml b/app/views/notify/reassigned_merge_request_email.html.haml
index 0aefca6b14a..74de6767fe2 100644
--- a/app/views/notify/reassigned_merge_request_email.html.haml
+++ b/app/views/notify/reassigned_merge_request_email.html.haml
@@ -1 +1 @@
-= render 'reassigned_issuable_email', issuable: @merge_request, previous_assignees: @previous_assignees
+= render 'reassigned_issuable_email', issuable: @merge_request, added_assignees: @added_assignees, removed_assignees: @removed_assignees
diff --git a/app/views/notify/reassigned_merge_request_email.text.erb b/app/views/notify/reassigned_merge_request_email.text.erb
index 888b995b67c..7929349c439 100644
--- a/app/views/notify/reassigned_merge_request_email.text.erb
+++ b/app/views/notify/reassigned_merge_request_email.text.erb
@@ -1,6 +1,15 @@
+<% added_names = sanitize_name(@added_assignees.to_sentence(locale: I18n.locale)) -%>
+<% removed_names = sanitize_name(@removed_assignees.to_sentence(locale: I18n.locale)) -%>
Reassigned merge request <%= @merge_request.iid %>
<%= url_for([@merge_request.project, @merge_request, { only_path: false }]) %>
-Assignee changed <%= "from #{sanitize_name(@previous_assignees.map(&:name).to_sentence)}" if @previous_assignees.any? -%>
- to <%= "#{@merge_request.assignees.any? ? @merge_request.assignee_list : 'Unassigned'}" %>
+<%- if @added_assignees.any? %>
+<%= html_escape(n_(s_('Notify|%{added} was added as an assignee.'), s_('Notify|%{added} were added as assignees.'), @added_assignees.length).html_safe % { added: added_names }) %>
+<% end -%>
+<%- if @removed_assignees.any? && @merge_request.assignees.any? %>
+<%= html_escape(n_(s_('Notify|%{removed} was removed as an assignee.'), s_('Notify|%{removed} were removed as assignees.'), @removed_assignees.length).html_safe % { removed: removed_names }) %>
+<% end -%>
+<%- if @removed_assignees.any? && @merge_request.assignees.empty? %>
+<%= html_escape(s_('Notify|All assignees were removed.')) %>
+<% end -%>
diff --git a/app/views/profiles/accounts/_providers.html.haml b/app/views/profiles/accounts/_providers.html.haml
index 6f0c091dfdb..3ecdc3f63e5 100644
--- a/app/views/profiles/accounts/_providers.html.haml
+++ b/app/views/profiles/accounts/_providers.html.haml
@@ -3,26 +3,27 @@
%label.label-bold.gl-mb-0
= s_('Profiles|Connected Accounts')
%p= s_('Profiles|Select a service to sign in with.')
- - providers.each do |provider|
- - unlink_allowed = unlink_provider_allowed?(provider)
- - link_allowed = link_provider_allowed?(provider)
- - has_icon = provider_has_icon?(provider)
- - if unlink_allowed || link_allowed
- - if auth_active?(provider)
- - if unlink_allowed
- = link_to unlink_profile_account_path(provider: provider), method: :delete, class: button_class do
+ .gl-display-flex.gl-flex-wrap.gl-gap-3
+ - providers.each do |provider|
+ - unlink_allowed = unlink_provider_allowed?(provider)
+ - link_allowed = link_provider_allowed?(provider)
+ - has_icon = provider_has_icon?(provider)
+ - if unlink_allowed || link_allowed
+ - if auth_active?(provider)
+ - if unlink_allowed
+ = link_to unlink_profile_account_path(provider: provider), method: :delete, class: button_class do
+ - if has_icon
+ .social-provider-btn-image.gl-button-icon= provider_image_tag(provider)
+ .gl-button-text
+ = s_('Profiles|Disconnect %{provider}') % { provider: label_for_provider(provider) }
+ - else
+ %a{ class: button_class }
+ .gl-button-text
+ = s_('Profiles|%{provider} Active') % { provider: label_for_provider(provider) }
+ - elsif link_allowed
+ = link_to omniauth_authorize_path(:user, provider), method: :post, class: button_class do
- if has_icon
.social-provider-btn-image.gl-button-icon= provider_image_tag(provider)
.gl-button-text
- = s_('Profiles|Disconnect %{provider}') % { provider: label_for_provider(provider) }
- - else
- %a{ class: button_class }
- .gl-button-text
- = s_('Profiles|%{provider} Active') % { provider: label_for_provider(provider) }
- - elsif link_allowed
- = link_to omniauth_authorize_path(:user, provider), method: :post, class: button_class do
- - if has_icon
- .social-provider-btn-image.gl-button-icon= provider_image_tag(provider)
- .gl-button-text
- = s_('Profiles|Connect %{provider}') % { provider: label_for_provider(provider) }
- = render_if_exists 'profiles/accounts/group_saml_unlink_buttons', group_saml_identities: group_saml_identities
+ = s_('Profiles|Connect %{provider}') % { provider: label_for_provider(provider) }
+ = render_if_exists 'profiles/accounts/group_saml_unlink_buttons', group_saml_identities: group_saml_identities
diff --git a/app/views/profiles/emails/index.html.haml b/app/views/profiles/emails/index.html.haml
index 6dcd661ecdb..3f18a7bbda6 100644
--- a/app/views/profiles/emails/index.html.haml
+++ b/app/views/profiles/emails/index.html.haml
@@ -24,7 +24,7 @@
= sprite_icon('mail', css_class: 'gl-mr-2')
= @emails.load.size
.gl-new-card-actions
- = render Pajamas::ButtonComponent.new(size: :small, button_options: { class: "js-toggle-button js-toggle-content", data: { testid: 'toggle_email_address_field' } }) do
+ = render Pajamas::ButtonComponent.new(size: :small, button_options: { class: "js-toggle-button js-toggle-content", data: { testid: 'toggle-email-address-field' } }) do
= s_('Profiles|Add new email')
- c.with_body do
.gl-new-card-add-form.gl-m-3.gl-mb-4.gl-display-none.js-toggle-content
@@ -33,9 +33,9 @@
= gitlab_ui_form_for 'email', url: profile_emails_path do |f|
.form-group
= f.label :email, s_('Profiles|Email address'), class: 'label-bold'
- = f.text_field :email, class: 'form-control gl-form-input gl-form-input-xl', data: { qa_selector: 'email_address_field' }
+ = f.text_field :email, class: 'form-control gl-form-input gl-form-input-xl', data: { testid: 'email-address-field' }
.gl-mt-3
- = f.submit s_('Profiles|Add email address'), data: { qa_selector: 'add_email_address_button' }, pajamas_button: true
+ = f.submit s_('Profiles|Add email address'), data: { testid: 'add-email-address-button' }, pajamas_button: true
= render Pajamas::ButtonComponent.new(button_options: { type: 'reset', class: 'gl-ml-2 js-toggle-button' }) do
= _('Cancel')
- if @emails.any?
@@ -59,7 +59,7 @@
= s_('Profiles|Default notification email')
.gl-text-secondary.gl-font-sm= notification_message.html_safe
- @emails.reject(&:user_primary_email?).each do |email|
- %li{ class: 'gl-px-5!', data: { qa_selector: 'email_row_content' } }
+ %li{ class: 'gl-px-5!', data: { testid: 'email-row-content' } }
.gl-display-flex.gl-justify-content-space-between.gl-flex-wrap.gl-gap-3
%div
= render partial: 'shared/email_with_badge', locals: { email: email.email, verified: email.confirmed? }
@@ -81,4 +81,4 @@
- confirm_title = "#{email.confirmation_sent_at ? s_('Profiles|Resend confirmation email') : s_('Profiles|Send confirmation email')}"
= link_button_to confirm_title, resend_confirmation_instructions_profile_email_path(email), method: :put, size: :small
- = link_button_to nil, profile_email_path(email), data: { confirm: _('Are you sure?'), confirm_btn_variant: 'danger', qa_selector: 'delete_email_link'}, method: :delete, size: :small, icon: 'remove', 'aria-label': _('Remove')
+ = link_button_to nil, profile_email_path(email), data: { confirm: _('Are you sure?'), confirm_btn_variant: 'danger', testid: 'delete-email-link'}, method: :delete, size: :small, icon: 'remove', 'aria-label': _('Remove')
diff --git a/app/views/profiles/gpg_keys/_key_table.html.haml b/app/views/profiles/gpg_keys/_key_table.html.haml
index 0a50ce55b50..ea7068e0484 100644
--- a/app/views/profiles/gpg_keys/_key_table.html.haml
+++ b/app/views/profiles/gpg_keys/_key_table.html.haml
@@ -3,7 +3,7 @@
- if @gpg_keys.any?
.table-holder
- %table.table.b-table.gl-table.b-table-stacked-md.gl-mt-n1.gl-mb-n2.ssh-keys-list{ data: { qa_selector: 'ssh_keys_list' } }
+ %table.table.b-table.gl-table.b-table-stacked-md.gl-mt-n1.gl-mb-n2.ssh-keys-list
%thead.d-none.d-md-table-header-group
%tr
%th= s_('Profiles|Key')
diff --git a/app/views/profiles/preferences/show.html.haml b/app/views/profiles/preferences/show.html.haml
index 96375412f94..0d1e911f29d 100644
--- a/app/views/profiles/preferences/show.html.haml
+++ b/app/views/profiles/preferences/show.html.haml
@@ -9,9 +9,6 @@
- data_attributes = { themes: @themes, integration_views: integration_views.to_json, user_fields: user_fields, body_classes: Gitlab::Themes.body_classes, profile_preferences_path: profile_preferences_path }
- @force_desktop_expanded_sidebar = true
-- Gitlab::Themes.each do |theme|
- = stylesheet_link_tag "themes/#{theme.css_filename}" if theme.css_filename
-
= gitlab_ui_form_for @user, url: profile_preferences_path, remote: true, method: :put, html: { id: "profile-preferences-form" } do |f|
= render_if_exists 'profiles/preferences/code_suggestions_settings_self_assignment'
.settings-section.js-preferences-form.js-search-settings-section.application-theme#navigation-theme
@@ -173,7 +170,6 @@
.form-group
= f.gitlab_ui_checkbox_component :enabled_following,
s_('Preferences|Enable follow users')
- = render_if_exists 'profiles/preferences/code_suggestions_settings', form: f
= render_if_exists 'profiles/preferences/zoekt_settings', form: f
#js-profile-preferences-app{ data: data_attributes }
diff --git a/app/views/profiles/show.html.haml b/app/views/profiles/show.html.haml
index 79b2726ed2d..9f33ad0c2d4 100644
--- a/app/views/profiles/show.html.haml
+++ b/app/views/profiles/show.html.haml
@@ -66,7 +66,7 @@
%h4.gl-my-0= s_("Profiles|Time settings")
%p.gl-text-secondary= s_("Profiles|Set your local time zone.")
= f.label :user_timezone, _("Time zone")
- .js-timezone-dropdown{ data: { timezone_data: timezone_data.to_json, initial_value: @user.timezone, name: 'user[timezone]' } }
+ .js-timezone-dropdown{ data: { timezone_data: timezone_data_with_unique_identifiers.to_json, initial_value: @user.timezone, name: 'user[timezone]' } }
.settings-section.js-search-settings-section.gl-border-t.gl-pt-6
.settings-sticky-header
diff --git a/app/views/projects/_home_panel.html.haml b/app/views/projects/_home_panel.html.haml
index 63226838166..0bf05c85f5f 100644
--- a/app/views/projects/_home_panel.html.haml
+++ b/app/views/projects/_home_panel.html.haml
@@ -14,8 +14,6 @@
= render partial: 'shared/ci_catalog_badge', locals: { href: explore_catalog_path(@project.catalog_resource), css_class: 'gl-mx-0' }
- if @project.group
= render_if_exists 'shared/tier_badge', source: @project, namespace_to_track: @project.namespace
- .gl-text-secondary
- = render_if_exists "projects/home_mirror"
.project-repo-buttons.gl-display-flex.gl-justify-content-md-end.gl-align-items-center.gl-flex-wrap.gl-gap-3
- if current_user
@@ -48,7 +46,7 @@
= render Pajamas::ButtonComponent.new(category: :tertiary, variant: :link, button_options: { class: 'js-read-more-trigger gl-lg-display-none' }) do
= _("Read more")
- = render_if_exists "projects/home_mirror"
+ = render_if_exists "projects/home_mirror"
- if ff_reorg_disabled && @project.badges.present?
.project-badges.mb-2{ data: { testid: 'project-badges-content' } }
diff --git a/app/views/projects/_import_project_pane.html.haml b/app/views/projects/_import_project_pane.html.haml
index 3e92ef25552..b9abaa07c2c 100644
--- a/app/views/projects/_import_project_pane.html.haml
+++ b/app/views/projects/_import_project_pane.html.haml
@@ -18,42 +18,42 @@
.import-buttons
- if gitlab_project_import_enabled?
.import_gitlab_project.has-tooltip{ data: { container: 'body', testid: 'gitlab-import-button' } }
- = render Pajamas::ButtonComponent.new(href: '#', icon: 'tanuki', button_options: { class: 'btn_import_gitlab_project js-import-project-btn', data: { href: new_import_gitlab_project_path, platform: 'gitlab_export', **tracking_attrs_data(track_label, 'click_button', 'gitlab_export') } }) do
+ = render Pajamas::ButtonComponent.new(href: '#', icon: 'tanuki', button_options: { class: 'btn_import_gitlab_project js-import-project-btn', data: { href: new_import_gitlab_project_path, platform: 'gitlab_export', track_experiment: local_assigns[:track_experiment], **tracking_attrs_data(track_label, 'click_button', 'gitlab_export') } }) do
= _('GitLab export')
- if github_import_enabled?
%div
- = render Pajamas::ButtonComponent.new(href: new_import_github_path(namespace_id: namespace_id), icon: 'github', button_options: { class: 'js-import-github js-import-project-btn', data: { platform: 'github', **tracking_attrs_data(track_label, 'click_button', 'github') } }) do
+ = render Pajamas::ButtonComponent.new(href: new_import_github_path(namespace_id: namespace_id), icon: 'github', button_options: { class: 'js-import-github js-import-project-btn', data: { platform: 'github', track_experiment: local_assigns[:track_experiment], **tracking_attrs_data(track_label, 'click_button', 'github') } }) do
GitHub
- if bitbucket_import_enabled?
%div
- = render Pajamas::ButtonComponent.new(href: status_import_bitbucket_path(namespace_id: namespace_id), icon: 'bitbucket', button_options: { class: "import_bitbucket js-import-project-btn #{'js-how-to-import-link' unless bitbucket_import_configured?}", data: { modal_title: _("Import projects from Bitbucket"), modal_message: import_from_bitbucket_message, platform: 'bitbucket_cloud', **tracking_attrs_data(track_label, 'click_button', 'bitbucket_cloud') } }) do
+ = render Pajamas::ButtonComponent.new(href: status_import_bitbucket_path(namespace_id: namespace_id), icon: 'bitbucket', button_options: { class: "import_bitbucket js-import-project-btn #{'js-how-to-import-link' unless bitbucket_import_configured?}", data: { modal_title: _("Import projects from Bitbucket"), modal_message: import_from_bitbucket_message, platform: 'bitbucket_cloud', track_experiment: local_assigns[:track_experiment], **tracking_attrs_data(track_label, 'click_button', 'bitbucket_cloud') } }) do
Bitbucket Cloud
- if bitbucket_server_import_enabled?
%div
- = render Pajamas::ButtonComponent.new(href: status_import_bitbucket_server_path(namespace_id: namespace_id), icon: 'bitbucket', button_options: { class: 'import_bitbucket js-import-project-btn', data: { platform: 'bitbucket_server', **tracking_attrs_data(track_label, 'click_button', 'bitbucket_server') } }) do
+ = render Pajamas::ButtonComponent.new(href: status_import_bitbucket_server_path(namespace_id: namespace_id), icon: 'bitbucket', button_options: { class: 'import_bitbucket js-import-project-btn', data: { platform: 'bitbucket_server', track_experiment: local_assigns[:track_experiment], **tracking_attrs_data(track_label, 'click_button', 'bitbucket_server') } }) do
Bitbucket Server
- if fogbugz_import_enabled?
%div
- = render Pajamas::ButtonComponent.new(href: new_import_fogbugz_path(namespace_id: namespace_id), icon: 'bug', button_options: { class: 'import_fogbugz js-import-project-btn', data: { platform: 'fogbugz', **tracking_attrs_data(track_label, 'click_button', 'fogbugz') } }) do
+ = render Pajamas::ButtonComponent.new(href: new_import_fogbugz_path(namespace_id: namespace_id), icon: 'bug', button_options: { class: 'import_fogbugz js-import-project-btn', data: { platform: 'fogbugz', track_experiment: local_assigns[:track_experiment], **tracking_attrs_data(track_label, 'click_button', 'fogbugz') } }) do
FogBugz
- if gitea_import_enabled?
%div
- = render Pajamas::ButtonComponent.new(href: new_import_gitea_path(namespace_id: namespace_id), icon: 'gitea', button_options: { class: 'import_gitea js-import-project-btn', data: { platform: 'gitea', **tracking_attrs_data(track_label, 'click_button', 'gitea') } }) do
+ = render Pajamas::ButtonComponent.new(href: new_import_gitea_path(namespace_id: namespace_id), icon: 'gitea', button_options: { class: 'import_gitea js-import-project-btn', data: { platform: 'gitea', track_experiment: local_assigns[:track_experiment], **tracking_attrs_data(track_label, 'click_button', 'gitea') } }) do
Gitea
- if git_import_enabled?
%div
- = render Pajamas::ButtonComponent.new(icon: 'link', button_options: { class: 'js-toggle-button js-import-git-toggle-button js-import-project-btn', data: { platform: 'repo_url', toggle_open_class: 'active', **tracking_attrs_data(track_label, 'click_button', 'repo_url') } }) do
+ = render Pajamas::ButtonComponent.new(icon: 'link', button_options: { class: 'js-toggle-button js-import-git-toggle-button js-import-project-btn', data: { platform: 'repo_url', toggle_open_class: 'active', track_experiment: local_assigns[:track_experiment], **tracking_attrs_data(track_label, 'click_button', 'repo_url') } }) do
= _('Repository by URL')
- if manifest_import_enabled?
%div
- = render Pajamas::ButtonComponent.new(href: new_import_manifest_path(namespace_id: namespace_id), icon: 'doc-text', button_options: { class: 'import_manifest js-import-project-btn', data: { platform: 'manifest_file', **tracking_attrs_data(track_label, 'click_button', 'manifest_file') } }) do
+ = render Pajamas::ButtonComponent.new(href: new_import_manifest_path(namespace_id: namespace_id), icon: 'doc-text', button_options: { class: 'import_manifest js-import-project-btn', data: { platform: 'manifest_file', track_experiment: local_assigns[:track_experiment], **tracking_attrs_data(track_label, 'click_button', 'manifest_file') } }) do
= _('Manifest file')
= render_if_exists "projects/gitee_import_button", namespace_id: namespace_id, track_label: track_label
@@ -63,4 +63,4 @@
= gitlab_ui_form_for @project, html: { class: 'new_project gl-show-field-errors js-project-import' } do |f|
%hr
= render "shared/import_form", f: f
- = render 'projects/new_project_fields', f: f, project_name_id: "import-url-name", hide_init_with_readme: true, track_label: track_label
+ = render 'projects/new_project_fields', f: f, project_name_id: "import-url-name", hide_init_with_readme: true, track_label: 'import_project'
diff --git a/app/views/projects/_readme.html.haml b/app/views/projects/_readme.html.haml
index c3d66396256..fc9ddb650e9 100644
--- a/app/views/projects/_readme.html.haml
+++ b/app/views/projects/_readme.html.haml
@@ -1,5 +1,5 @@
- if (readme = @repository.readme) && readme.rich_viewer
- .tree-holder
+ .tree-holder.gl-mt-5
.nav-block.mt-0
= render 'projects/tree/tree_header', tree: @tree
%article.file-holder.readme-holder{ id: 'readme', class: ("limited-width-container" unless fluid_layout) }
diff --git a/app/views/projects/_sidebar.html.haml b/app/views/projects/_sidebar.html.haml
index 565f14d01d9..7cb2f622788 100644
--- a/app/views/projects/_sidebar.html.haml
+++ b/app/views/projects/_sidebar.html.haml
@@ -2,43 +2,44 @@
- show_auto_devops_callout = show_auto_devops_callout?(@project)
%aside.project-page-sidebar
- - if @project.description.present? || @project.badges.present?
- .project-page-sidebar-block.home-panel-home-desc.gl-py-4.gl-border-b.gl-border-gray-50
- -# Project description
- - if @project.description.present?
- .gl-display-flex.gl-justify-content-space-between.gl-mt-1.gl-pr-2
- %p.gl-font-weight-bold.gl-text-gray-900.gl-m-0= s_('ProjectPage|Project information')
- = render Pajamas::ButtonComponent.new(href: edit_project_path(@project),
- category: :tertiary,
- icon: 'settings',
- size: :small,
- button_options: { class: 'has-tooltip', title: s_('ProjectPage|Project settings'), 'aria-label' => s_('ProjectPage|Project settings') })
- .home-panel-description.text-break
- .home-panel-description-markdown{ itemprop: 'description' }
- = markdown_field(@project, :description)
+ .project-page-sidebar-block.home-panel-home-desc.gl-py-4.gl-border-b.gl-border-gray-50{ class: 'gl-pt-2!' }
+ .gl-display-flex.gl-justify-content-space-between
+ %p.gl-font-weight-bold.gl-text-gray-900.gl-m-0.gl-mb-1= s_('ProjectPage|Project information')
+ -# Project settings
+ - if can?(current_user, :admin_project, @project)
+ = render Pajamas::ButtonComponent.new(href: edit_project_path(@project),
+ category: :tertiary,
+ icon: 'settings',
+ size: :small,
+ button_options: { class: 'has-tooltip gl-ml-2 gl-sm-mr-3', title: s_('ProjectPage|Project settings'), 'aria-label' => s_('ProjectPage|Project settings'), 'data-testid': 'project-settings-button' })
+ -# Project description
+ - if @project.description.present?
+ .home-panel-description.text-break
+ .home-panel-description-markdown{ itemprop: 'description' }
+ = markdown_field(@project, :description)
- -# Topics
- - if @project.topics.present?
- .gl-mb-5
- = render "shared/projects/topics", project: @project
+ -# Topics
+ - if @project.topics.present?
+ .gl-mb-5
+ = render "shared/projects/topics", project: @project
- -# Programming languages
- - if can?(current_user, :read_code, @project) && @project.repository_languages.present?
- .gl-mb-2{ class: ('gl-mb-4!' if @project.badges.present?) }
- = repository_languages_bar(@project.repository_languages)
+ -# Programming languages
+ - if can?(current_user, :read_code, @project) && @project.repository_languages.present?
+ .gl-mb-2{ class: [('gl-mb-4!' if @project.badges.present?), ('gl-mt-3' if !@project.description.present?)] }
+ = repository_languages_bar(@project.repository_languages)
- -# Badges
- - if @project.badges.present?
- .project-badges.gl-mb-2{ data: { testid: 'project-badges-content' } }
- - @project.badges.each do |badge|
- - badge_link_url = badge.rendered_link_url(@project)
- %a.gl-mr-3{ href: badge_link_url,
- target: '_blank',
- rel: 'noopener noreferrer',
- data: { testid: 'badge-image-link', qa_link_url: badge_link_url } }>
- %img.project-badge{ src: badge.rendered_image_url(@project),
- 'aria-hidden': true,
- alt: 'Project badge' }>
+ -# Badges
+ - if @project.badges.present?
+ .project-badges.gl-mb-2{ data: { testid: 'project-badges-content' } }
+ - @project.badges.each do |badge|
+ - badge_link_url = badge.rendered_link_url(@project)
+ %a.gl-mr-3{ href: badge_link_url,
+ target: '_blank',
+ rel: 'noopener noreferrer',
+ data: { testid: 'badge-image-link', qa_link_url: badge_link_url } }>
+ %img.project-badge{ src: badge.rendered_image_url(@project),
+ 'aria-hidden': true,
+ alt: 'Project badge' }>
-# Invite members
- if @project.empty_repo?
diff --git a/app/views/projects/buttons/_code.html.haml b/app/views/projects/buttons/_code.html.haml
index a78e3861e94..9cdbe1d5f6b 100644
--- a/app/views/projects/buttons/_code.html.haml
+++ b/app/views/projects/buttons/_code.html.haml
@@ -8,9 +8,9 @@
%span.js-clone-dropdown-label
= _('Code')
= sprite_icon("chevron-down", css_class: "icon")
- %ul.dropdown-menu.dropdown-menu-large.clone-options-dropdown{ class: dropdown_class, data: { testid: 'clone-dropdown-content' } }
+ %ul.dropdown-menu.dropdown-menu-large.clone-options-dropdown{ role: 'menu', class: dropdown_class, data: { testid: 'clone-dropdown-content' } }
- if ssh_enabled?
- %li.gl-dropdown-item.js-clone-links{ class: 'gl-px-4!' }
+ %li.gl-dropdown-item.js-clone-links{ role: 'menuitem', class: 'gl-px-4!' }
%label.label-bold
= _('Clone with SSH')
.input-group.btn-group
@@ -19,7 +19,7 @@
= clipboard_button(target: '#ssh_project_clone', title: _("Copy URL"), category: :primary, size: :medium)
= render_if_exists 'projects/buttons/geo'
- if http_enabled?
- %li.pt-2.gl-dropdown-item.js-clone-links{ class: 'gl-px-4!' }
+ %li.pt-2.gl-dropdown-item.js-clone-links{ role: 'menuitem', class: 'gl-px-4!' }
%label.label-bold
= _('Clone with %{http_label}') % { http_label: gitlab_config.protocol.upcase }
.input-group.btn-group
@@ -28,8 +28,8 @@
= clipboard_button(target: '#http_project_clone', title: _("Copy URL"), category: :primary, size: :medium)
= render_if_exists 'projects/buttons/geo'
= render_if_exists 'projects/buttons/kerberos_clone_field'
- %li.divider.mt-2
- %li.pt-2.gl-dropdown-item.js-clone-links
+ %li.divider.mt-2{ role: 'presentation' }
+ %li.pt-2.gl-dropdown-item.js-clone-links{ role: 'menuitem' }
%label.label-bold{ class: 'gl-px-4!' }
= _('Open in your IDE')
- if ssh_enabled?
@@ -55,5 +55,5 @@
.gl-dropdown-item-text-wrapper
= _("Xcode")
- if !project.empty_repo? && can?(current_user, :download_code, project)
- %li.divider.mt-2
+ %li.divider.mt-2{ role: 'presentation' }
= render 'projects/buttons/download_menu_items', project: project, ref: ref
diff --git a/app/views/projects/buttons/_download_menu_items.html.haml b/app/views/projects/buttons/_download_menu_items.html.haml
index f5f8efca073..7d7033da9cd 100644
--- a/app/views/projects/buttons/_download_menu_items.html.haml
+++ b/app/views/projects/buttons/_download_menu_items.html.haml
@@ -2,7 +2,7 @@
- ref = local_assigns.fetch(:ref)
- archive_prefix = "#{project.path}-#{ref.tr('/', '-')}"
-%li.gl-dropdown-item{ role: 'menuitem' }
- %h3.h5.m-0.dropdown-bold-header= _('Download source code')
+%li.gl-dropdown-item{ class: 'gl-pt-3!', role: 'menuitem' }
+ %label.label-bold{ class: 'gl-px-4!' }= _('Download source code')
= render 'projects/buttons/download_links', project: project, ref: ref, archive_prefix: archive_prefix, path: nil
.js-directory-downloads{ data: { links: directory_download_links(project, ref, archive_prefix).to_json } }
diff --git a/app/views/projects/commit/_commit_box.html.haml b/app/views/projects/commit/_commit_box.html.haml
index be0e5a428b4..fc9104f9f27 100644
--- a/app/views/projects/commit/_commit_box.html.haml
+++ b/app/views/projects/commit/_commit_box.html.haml
@@ -18,7 +18,6 @@
= commit_committer_link(@commit, avatar: true, size: 24)
#{time_ago_with_tooltip(@commit.committed_date)}
- #js-commit-comments-button{ data: { comments_count: @notes_count.to_i } }
= link_button_to _('Browse files'), project_tree_path(@project, @commit), class: 'gl-mr-3 gl-w-full gl-sm-w-auto gl-mb-3 gl-sm-mb-0'
#js-commit-options-dropdown{ data: commit_options_dropdown_data(@project, @commit) }
@@ -36,7 +35,7 @@
%span.cgray= n_('parent', 'parents', @commit.parents.count)
- @commit.parents.each do |parent|
= link_to parent.short_id, project_commit_path(@project, parent), class: "commit-sha"
- #js-commit-branches-and-tags{ data: { full_path: @project.full_path, commit_sha: @commit.short_id } }
+ #js-commit-branches-and-tags{ data: { full_path: @project.full_path, commit_sha: @commit.short_id } }
.well-segment.merge-request-info
.icon-container
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index 9269369c83e..90837a1a291 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -118,8 +118,11 @@
= render 'remove_fork', project: @project
= render 'remove', project: @project
-- elsif can?(current_user, :archive_project, @project)
- = render_if_exists 'projects/settings/archive'
+- else
+ - if can?(current_user, :archive_project, @project)
+ = render_if_exists 'projects/settings/archive'
+ - if can?(current_user, :remove_project, @project)
+ = render 'remove', project: @project
.save-project-loader.hide
.center
diff --git a/app/views/projects/empty.html.haml b/app/views/projects/empty.html.haml
index 684ea8242f7..ac3b67d6157 100644
--- a/app/views/projects/empty.html.haml
+++ b/app/views/projects/empty.html.haml
@@ -20,7 +20,7 @@
.project-clone-holder.d-block.d-sm-none
= render "shared/mobile_clone_panel"
- .project-clone-holder.gl-display-none.gl-sm-display-flex.gl-justify-content-end.gl-w-full.gl-mt-2
+ .project-clone-holder.gl-display-none.gl-sm-display-flex.gl-justify-content-end.gl-w-full
= render "projects/buttons/code", ref: @ref
= render Pajamas::CardComponent.new(card_options: { class: 'gl-mb-5' }, body_options: { class: 'gl-new-card-body gl-bg-gray-10 gl-p-5' }) do |c|
diff --git a/app/views/projects/environments/folder.html.haml b/app/views/projects/environments/folder.html.haml
index 2b4d19a0e1d..54855999431 100644
--- a/app/views/projects/environments/folder.html.haml
+++ b/app/views/projects/environments/folder.html.haml
@@ -3,4 +3,4 @@
- page_title _("Environments in %{name}") % { name: @folder }
- add_page_specific_style 'page_bundles/environments'
-#environments-folder-list-view{ data: { environments_data: environments_folder_list_view_data, project_path: @project.full_path } }
+#environments-folder-list-view{ data: environments_folder_list_view_data(@project, @folder) }
diff --git a/app/views/projects/forks/index.html.haml b/app/views/projects/forks/index.html.haml
index 98055534a27..10ca730ac11 100644
--- a/app/views/projects/forks/index.html.haml
+++ b/app/views/projects/forks/index.html.haml
@@ -16,7 +16,7 @@
.dropdown.gl-display-inline.gl-md-ml-3.issue-sort-dropdown.gl-mt-3.gl-md-mt-0
.btn-group{ role: 'group' }
- = gl_redirect_listbox_tag [created_at, activity], @sort
+ = gl_redirect_listbox_tag [created_at, activity], @sort, class: 'btn-group'
= forks_sort_direction_button(sort_value)
- if current_user && can?(current_user, :fork_project, @project)
diff --git a/app/views/projects/gcp/artifact_registry/docker_images/_docker_image.html.haml b/app/views/projects/gcp/artifact_registry/docker_images/_docker_image.html.haml
index 0118fe94810..750dea9896f 100644
--- a/app/views/projects/gcp/artifact_registry/docker_images/_docker_image.html.haml
+++ b/app/views/projects/gcp/artifact_registry/docker_images/_docker_image.html.haml
@@ -11,8 +11,8 @@
Full name: #{docker_image.name}
.gl-display-flex.gl-align-items-top.gl-font-monospace.gl-font-sm.gl-word-break-all.gl-p-4.gl-border-b-solid.gl-border-gray-100.gl-border-b-1
= sprite_icon('earth', css_class: 'gl-text-gray-500 gl-mr-3 gl-icon s16')
- URI:
- %a{ href: docker_image.uri, target: 'blank', rel: 'noopener noreferrer' }= docker_image.uri
+ %a{ href: docker_image.details_url, target: 'blank', rel: 'noopener noreferrer' }
+ Artifact Registry details page
.gl-display-flex.gl-align-items-top.gl-font-monospace.gl-font-sm.gl-word-break-all.gl-p-4.gl-border-b-solid.gl-border-gray-100.gl-border-b-1
= sprite_icon('doc-code', css_class: 'gl-text-gray-500 gl-mr-3 gl-icon s16')
Media Type: #{docker_image.media_type}
diff --git a/app/views/projects/merge_requests/_code_dropdown.html.haml b/app/views/projects/merge_requests/_code_dropdown.html.haml
index bfa33f26453..c03b1ac1b28 100644
--- a/app/views/projects/merge_requests/_code_dropdown.html.haml
+++ b/app/views/projects/merge_requests/_code_dropdown.html.haml
@@ -1,8 +1,8 @@
.gl-md-ml-3.dropdown.gl-dropdown{ class: "gl-display-none! gl-md-display-flex!" }
#js-check-out-modal{ data: how_merge_modal_data(@merge_request) }
- = button_tag type: 'button', class: "btn dropdown-toggle btn-confirm gl-button gl-dropdown-toggle", data: { toggle: 'dropdown', testid: 'mr-code-dropdown' } do
- %span.gl-dropdown-button-text= _('Code')
- = sprite_icon "chevron-down", size: 16, css_class: "dropdown-icon gl-icon gl-ml-2 gl-mr-0!"
+ = render Pajamas::ButtonComponent.new(category: :primary, variant: :confirm, button_options: { data: { toggle: 'dropdown', testid: 'mr-code-dropdown' } }) do
+ = _('Code')
+ = sprite_icon "chevron-down", size: 16, css_class: "gl-icon gl-mr-0!"
.dropdown-menu.dropdown-menu-right
.gl-dropdown-inner
.gl-dropdown-contents
diff --git a/app/views/projects/merge_requests/_mr_title.html.haml b/app/views/projects/merge_requests/_mr_title.html.haml
index 1b0aba8d496..03c850b7fbb 100644
--- a/app/views/projects/merge_requests/_mr_title.html.haml
+++ b/app/views/projects/merge_requests/_mr_title.html.haml
@@ -24,7 +24,10 @@
.detail-page-header-actions.gl-align-self-start.is-merge-request.js-issuable-actions.gl-display-flex
- if can_update_merge_request
- = render Pajamas::ButtonComponent.new(href: edit_project_merge_request_path(@project, @merge_request), button_options: {class: "gl-display-none gl-md-display-block js-issuable-edit", data: { testid: "edit-title-button" }}) do
+ - edit_action_description = _('Edit merge request')
+ - edit_action_shortcut = 'e'
+ - edit_button_title = "#{edit_action_description} <kbd class='flat ml-1' aria-hidden=true>#{edit_action_shortcut}</kbd>"
+ = render Pajamas::ButtonComponent.new(href: edit_project_merge_request_path(@project, @merge_request), button_options: { aria: {label: edit_action_description, keyshortcuts: edit_action_shortcut}, class: "gl-display-none gl-md-display-block has-tooltip js-issuable-edit", data: { html: "true", testid: "edit-title-button" }, title: edit_button_title }) do
= _('Edit')
- if @merge_request.source_project
diff --git a/app/views/projects/merge_requests/_page.html.haml b/app/views/projects/merge_requests/_page.html.haml
index 03a1f2f3179..af8ad22fa50 100644
--- a/app/views/projects/merge_requests/_page.html.haml
+++ b/app/views/projects/merge_requests/_page.html.haml
@@ -16,6 +16,7 @@
- add_page_specific_style 'page_bundles/ci_status'
- add_page_startup_api_call @endpoint_metadata_url
+- add_page_startup_api_call @pinned_file_url if @pinned_file_url
- if mr_action == 'diffs' && !@file_by_file_default
- add_page_startup_api_call @endpoint_diff_batch_url
diff --git a/app/views/projects/merge_requests/creations/new.html.haml b/app/views/projects/merge_requests/creations/new.html.haml
index f2c2700b012..4f722ba901d 100644
--- a/app/views/projects/merge_requests/creations/new.html.haml
+++ b/app/views/projects/merge_requests/creations/new.html.haml
@@ -11,7 +11,7 @@
= render 'new_submit'
- else
- if conflicting_mr
- - link_to_mr = link_to(conflicting_mr.to_reference, project_merge_request_path(@project, conflicting_mr))
+ - link_to_mr = link_to(conflicting_mr.to_reference, project_merge_request_path(conflicting_mr.target_project, conflicting_mr))
- flash.now[:alert] = safe_format(s_("These branches already have an open merge request: %{link_to_mr}. Select a different source or target branch."), link_to_mr: link_to_mr)
= render 'new_compare'
diff --git a/app/views/projects/mirrors/_mirror_repos_list.html.haml b/app/views/projects/mirrors/_mirror_repos_list.html.haml
index 5e3c4889d1d..ab0786a6f5b 100644
--- a/app/views/projects/mirrors/_mirror_repos_list.html.haml
+++ b/app/views/projects/mirrors/_mirror_repos_list.html.haml
@@ -29,7 +29,7 @@
- if mirror.disabled?
= render 'projects/mirrors/disabled_mirror_badge'
- if mirror.last_error.present?
- = gl_badge_tag _('Error'), { variant: :danger }, { data: { toggle: 'tooltip', html: 'true', testid: 'mirror-error-badge-content' }, title: html_escape(mirror.last_error.try(:strip)) }
+ = gl_badge_tag _('Error'), { variant: :danger }, { data: { toggle: 'tooltip', html: 'true', testid: 'mirror-error-badge-content' }, title: html_escape(mirror.last_error.try(:strip)), tabindex: 0 }
%td
- if mirror_settings_enabled
.btn-group.mirror-actions-group{ role: 'group' }
diff --git a/app/views/projects/ml/models/index.html.haml b/app/views/projects/ml/models/index.html.haml
index ffe7ee3397e..ba695bce435 100644
--- a/app/views/projects/ml/models/index.html.haml
+++ b/app/views/projects/ml/models/index.html.haml
@@ -1,4 +1,4 @@
- breadcrumb_title s_('ModelRegistry|Model registry')
- page_title s_('ModelRegistry|Model registry')
-= render(Projects::Ml::ModelsIndexComponent.new(paginator: @paginator, model_count: @model_count))
+= render(Projects::Ml::ModelsIndexComponent.new(project: @project, current_user: current_user, paginator: @paginator, model_count: @model_count))
diff --git a/app/views/projects/ml/models/new.html.haml b/app/views/projects/ml/models/new.html.haml
new file mode 100644
index 00000000000..8510ffd42fd
--- /dev/null
+++ b/app/views/projects/ml/models/new.html.haml
@@ -0,0 +1,5 @@
+- breadcrumb_title s_('ModelRegistry|New model')
+- page_title s_('ModelRegistry|New model')
+- view_model = Gitlab::Json.generate({ projectPath: @project.full_path })
+
+#js-mount-new-ml-model{ data: { view_model: view_model } }
diff --git a/app/views/projects/pages_domains/_dns.html.haml b/app/views/projects/pages_domains/_dns.html.haml
index bec35dba147..360ef01620b 100644
--- a/app/views/projects/pages_domains/_dns.html.haml
+++ b/app/views/projects/pages_domains/_dns.html.haml
@@ -9,7 +9,7 @@
.input-group
= text_field_tag :domain_dns, dns_record , class: "monospace js-select-on-focus form-control", readonly: true
.input-group-append
- = deprecated_clipboard_button(target: '#domain_dns', class: 'btn-default input-group-text d-none d-sm-block')
+ = clipboard_button(target: '#domain_dns', category: :primary, size: :medium)
%p.form-text.text-muted
= _("To access this domain create a new DNS record")
- if verification_enabled
@@ -25,7 +25,7 @@
.input-group
= text_field_tag :domain_verification, domain_presenter.verification_record, class: "monospace js-select-on-focus form-control", readonly: true
.input-group-append
- = deprecated_clipboard_button(target: '#domain_verification', class: 'btn-default d-none d-sm-block')
+ = clipboard_button(target: '#domain_verification', category: :primary, size: :medium)
%p.form-text.text-muted
- link_to_help = link_to(_('verify ownership'), help_page_path('user/project/pages/custom_domains_ssl_tls_certification/index', anchor: '4-verify-the-domains-ownership'))
= _("To %{link_to_help} of your domain, add the above key to a TXT record within your DNS configuration within seven days.").html_safe % { link_to_help: link_to_help }
diff --git a/app/views/search/results/_blob_data.html.haml b/app/views/search/results/_blob_data.html.haml
index c42367f45c5..6e11b625490 100644
--- a/app/views/search/results/_blob_data.html.haml
+++ b/app/views/search/results/_blob_data.html.haml
@@ -1,6 +1,6 @@
-.js-blob-result.gl-mt-3.gl-mb-5{ data: { qa_selector: 'result_item_content' } }
+.js-blob-result.gl-mt-3.gl-mb-5{ data: { testid: 'result-item-content' } }
.file-holder.file-holder-top-border
- .js-file-title.file-title{ data: { qa_selector: 'file_title_content' } }
+ .js-file-title.file-title{ data: { testid: 'file-title-content' } }
= link_to blob_link, data: {track_action: 'click_text', track_label: 'blob_path', track_property: 'search_result'} do
= sprite_icon('document')
%strong
@@ -8,7 +8,7 @@
= copy_file_path_button(path)
- if blob.data
- if blob.data.size > 0
- .file-content.code.term{ data: { qa_selector: 'file_text_content' } }
+ .file-content.code.term{ data: { testid: 'file-text-content' } }
= render 'search/results/blob_highlight', blob: blob, first_line_number: blob.startline, blob_link: blob_link, blame_link: blame_link, highlight_line: blob.highlight_line
- else
.file-content.code
diff --git a/app/views/search/results/_blob_highlight.html.haml b/app/views/search/results/_blob_highlight.html.haml
index 37ffabad717..2a10bc1989b 100644
--- a/app/views/search/results/_blob_highlight.html.haml
+++ b/app/views/search/results/_blob_highlight.html.haml
@@ -3,7 +3,7 @@
#search-blob-content.file-content.code.js-syntax-highlight{ class: 'gl-py-3!' }
- if blob.present?
- .blob-content{ data: { blob_id: blob.id, path: blob.path, highlight_line: highlight, qa_selector: 'file_content' } }
+ .blob-content{ data: { blob_id: blob.id, path: blob.path, highlight_line: highlight } }
- blob_highlight = blob.present.highlight_and_trim(trim_length: 1024, ellipsis_svg: sprite_icon('ellipsis_h', size: 12, css_class: "gl-text-gray-700"))
- blob_highlight.lines.each_with_index do |line, index|
- i = index + offset
diff --git a/app/views/sent_notifications/unsubscribe.html.haml b/app/views/sent_notifications/unsubscribe.html.haml
index 16e4ff4d17f..3e2373446ca 100644
--- a/app/views/sent_notifications/unsubscribe.html.haml
+++ b/app/views/sent_notifications/unsubscribe.html.haml
@@ -14,6 +14,7 @@
= _("Are you sure you want to unsubscribe from the %{type}: %{link_to_noteable_text}?").html_safe % { type: noteable_type, link_to_noteable_text: link_to_noteable_text }
%p
- = link_to _('Unsubscribe'), unsubscribe_sent_notification_path(@sent_notification, force: true),
- class: 'gl-button btn btn-confirm gl-mr-3'
- = link_button_to _('Cancel'), new_user_session_path, class: 'gl-mr-3'
+ = render Pajamas::ButtonComponent.new(href: unsubscribe_sent_notification_path(@sent_notification, force: true), variant: 'confirm', button_options: { class: 'gl-mr-3'}) do
+ = _('Unsubscribe')
+ = render Pajamas::ButtonComponent.new(href: new_user_session_path, button_options: { class: 'gl-mr-3'}) do
+ = _('Cancel')
diff --git a/app/views/shared/_auto_devops_callout.html.haml b/app/views/shared/_auto_devops_callout.html.haml
index af09b62c229..546e92e7dcb 100644
--- a/app/views/shared/_auto_devops_callout.html.haml
+++ b/app/views/shared/_auto_devops_callout.html.haml
@@ -1,14 +1,13 @@
%div{ class: [container_class, @content_class, 'gl-pt-5!'] }
= render Pajamas::BannerComponent.new(button_text: s_('AutoDevOps|Enable in settings'),
button_link: project_settings_ci_cd_path(@project, anchor: 'autodevops-settings'),
- svg_path: 'illustrations/autodevops.svg',
+ svg_path: 'illustrations/devops-sm.svg',
banner_options: { class: 'js-autodevops-banner auto-devops-callout', data: { uid: 'auto_devops_settings_dismissed', project_path: project_path(@project) } },
close_options: { 'aria-label' => s_('AutoDevOps|Dismiss Auto DevOps box'), class: 'js-close-callout' }) do |c|
- c.with_title do
= s_('AutoDevOps|Auto DevOps')
- %p= s_('AutoDevOps|It will automatically build, test, and deploy your application based on a predefined CI/CD configuration.')
-
%p
- link = link_to(s_('AutoDevOps|Auto DevOps documentation'), help_page_path('topics/autodevops/index'), target: '_blank', rel: 'noopener noreferrer')
+ = s_('AutoDevOps|It will automatically build, test, and deploy your application based on a predefined CI/CD configuration.')
= s_('AutoDevOps|Learn more in the %{link_to_documentation}').html_safe % { link_to_documentation: link }
diff --git a/app/views/shared/_auto_devops_implicitly_enabled_banner.html.haml b/app/views/shared/_auto_devops_implicitly_enabled_banner.html.haml
index 0ff2ee935cc..05a3fd2abc9 100644
--- a/app/views/shared/_auto_devops_implicitly_enabled_banner.html.haml
+++ b/app/views/shared/_auto_devops_implicitly_enabled_banner.html.haml
@@ -1,5 +1,5 @@
- if show_auto_devops_implicitly_enabled_banner?(project, current_user)
- = render Pajamas::AlertComponent.new(alert_options: { class: 'auto-devops-implicitly-enabled-banner', data: { qa_selector: 'auto_devops_banner_content' } },
+ = render Pajamas::AlertComponent.new(alert_options: { class: 'auto-devops-implicitly-enabled-banner' },
close_button_options: { class: 'hide-auto-devops-implicitly-enabled-banner',
data: { project_id: project.id }}) do |c|
- c.with_body do
diff --git a/app/views/shared/_file_highlight.html.haml b/app/views/shared/_file_highlight.html.haml
index 9dfbad20726..3b53a4b4e89 100644
--- a/app/views/shared/_file_highlight.html.haml
+++ b/app/views/shared/_file_highlight.html.haml
@@ -16,7 +16,7 @@
%a.file-line-num.diff-line-num{ class: line_class, href: "#L#{i}", id: "L#{i}", 'data-line-number' => i }
= i
- .blob-content{ data: { blob_id: blob.id, path: blob.path, highlight_line: highlight, qa_selector: 'file_content' } }
+ .blob-content{ data: { blob_id: blob.id, path: blob.path, highlight_line: highlight } }
%pre.code.highlight
%code
= highlighted_blob
diff --git a/app/views/shared/_visibility_radios.html.haml b/app/views/shared/_visibility_radios.html.haml
index 1bac75e0ff5..b4013cb5b80 100644
--- a/app/views/shared/_visibility_radios.html.haml
+++ b/app/views/shared/_visibility_radios.html.haml
@@ -6,7 +6,7 @@
= form.gitlab_ui_radio_component model_method, level,
"#{visibility_level_icon(level)} #{visibility_level_label(level)}".html_safe,
help_text: '<span class="option-description">%{visibility_level_description}</span><span class="option-disabled-reason"></span>'.html_safe % { visibility_level_description: visibility_level_description(level, form_model)},
- radio_options: { checked: (selected_level == level), data: { track_label: "blank_project", track_action: "activate_form_input", track_property: "#{model_method}_#{level}", track_value: "", qa_selector: "#{visibility_level_label(level).downcase}_radio" } },
+ radio_options: { checked: (selected_level == level), data: { track_label: "blank_project", track_action: "activate_form_input", track_property: "#{model_method}_#{level}", track_value: "" } },
label_options: { class: 'js-visibility-level-radio' }
diff --git a/app/views/shared/deploy_keys/_index.html.haml b/app/views/shared/deploy_keys/_index.html.haml
index 5188c530672..95c99f20380 100644
--- a/app/views/shared/deploy_keys/_index.html.haml
+++ b/app/views/shared/deploy_keys/_index.html.haml
@@ -13,4 +13,9 @@
.gl-new-card-add-form.gl-m-3.gl-display-none.js-toggle-content
= render @deploy_keys.form_partial_path
- #js-deploy-keys{ data: { endpoint: project_deploy_keys_path(@project), project_id: @project.id } }
+ #js-deploy-keys{ data: { project_id: @project.id,
+ project_path: @project.full_path,
+ enabled_endpoint: enabled_keys_project_deploy_keys_path(@project),
+ available_project_endpoint: available_project_keys_project_deploy_keys_path(@project),
+ available_public_endpoint: available_public_keys_project_deploy_keys_path(@project)
+ } }
diff --git a/app/views/shared/deploy_tokens/_new_deploy_token.html.haml b/app/views/shared/deploy_tokens/_new_deploy_token.html.haml
deleted file mode 100644
index 2bc2e6c5b81..00000000000
--- a/app/views/shared/deploy_tokens/_new_deploy_token.html.haml
+++ /dev/null
@@ -1,24 +0,0 @@
-.created-deploy-token-container.info-well{ data: { testid: 'created-deploy-token-container' } }
- .well-segment
- %h5.gl-mt-0
- = s_('DeployTokens|Your new Deploy Token username')
-
- .form-group
- .input-group
- = text_field_tag 'deploy-token-user', deploy_token.username, readonly: true, class: 'deploy-token-field form-control js-select-on-focus', data: { testid: 'deploy-token-user-field' }
- .input-group-append
- = deprecated_clipboard_button(text: deploy_token.username, title: s_('DeployTokens|Copy username'), placement: 'left')
- %span.deploy-token-help-block.gl-mt-2.text-success
- - link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/project/deploy_tokens/index') }
- - link_end = "</a>".html_safe
- = s_("DeployTokens|This username supports access. %{link_start}What kind of access?%{link_end}").html_safe % { link_start: link_start, link_end: link_end }
-
- .form-group
- .input-group
- = text_field_tag 'deploy-token', deploy_token.token, readonly: true, class: 'deploy-token-field form-control js-select-on-focus', data: { testid: 'deploy-token-field' }
- .input-group-append
- = deprecated_clipboard_button(text: deploy_token.token, title: s_('DeployTokens|Copy deploy token'), placement: 'left')
- %span.deploy-token-help-block.gl-mt-2.text-danger
- - i_start = "<i>".html_safe
- - i_end = "</i>".html_safe
- = s_("DeployTokens|Use this token as a password. Save it. This password can %{i_start}not%{i_end} be recovered.").html_safe % { i_start: i_start, i_end: i_end }
diff --git a/app/views/shared/groups/_group.html.haml b/app/views/shared/groups/_group.html.haml
index 375e10de065..cdcbee1bb72 100644
--- a/app/views/shared/groups/_group.html.haml
+++ b/app/views/shared/groups/_group.html.haml
@@ -2,9 +2,8 @@
- access = user&.max_member_access_for_group(group.id)
%li.group-row.py-3.gl-align-items-center{ class: "gl-display-flex!" }
- .avatar-container.rect-avatar.s48.gl-flex-shrink-0
- = link_to group do
- = render Pajamas::AvatarComponent.new(group, alt: group.name, size: 48)
+ = link_to group do
+ = render Pajamas::AvatarComponent.new(group, alt: group.name, size: 48, class: 'gl-mr-5')
.gl-min-w-0.gl-flex-grow-1
.title
= link_to group.full_name, group, class: 'group-name'
@@ -23,7 +22,7 @@
%span.gl-ml-5.has-tooltip{ title: _('Users') }
= sprite_icon('users', css_class: 'gl-vertical-align-text-bottom')
- = number_with_delimiter(group.users.count)
+ = number_with_delimiter(group.group_members.non_invite.count)
%span.gl-ml-5.visibility-icon.has-tooltip{ data: { container: 'body', placement: 'left' }, title: visibility_icon_description(group) }
= visibility_level_icon(group.visibility_level)
diff --git a/app/views/shared/groups/_list.html.haml b/app/views/shared/groups/_list.html.haml
index 550f079bf3b..ecd722ec53e 100644
--- a/app/views/shared/groups/_list.html.haml
+++ b/app/views/shared/groups/_list.html.haml
@@ -11,6 +11,7 @@
%ul.content-list
- groups.each_with_index do |group, i|
= render "shared/groups/group", group: group, user: user
+ = paginate_collection(groups)
- else
= render partial: 'shared/empty_states/profile_tabs', locals: { illustration_path: illustration_path,
current_user_empty_message_header: current_user_empty_message_header,
diff --git a/app/views/shared/issuable/_sort_dropdown.html.haml b/app/views/shared/issuable/_sort_dropdown.html.haml
index 0a3fd4f8b9e..261a7517eda 100644
--- a/app/views/shared/issuable/_sort_dropdown.html.haml
+++ b/app/views/shared/issuable/_sort_dropdown.html.haml
@@ -5,5 +5,5 @@
.gl-ml-3
.btn-group{ role: 'group' }
- = gl_redirect_listbox_tag(items, selected, data: { placement: 'right' })
+ = gl_redirect_listbox_tag(items, selected, class: 'btn-group', data: { placement: 'right' })
= issuable_sort_direction_button(@sort)
diff --git a/app/views/shared/members/_member.html.haml b/app/views/shared/members/_member.html.haml
index c86993f5b77..42eb9e5ca19 100644
--- a/app/views/shared/members/_member.html.haml
+++ b/app/views/shared/members/_member.html.haml
@@ -9,7 +9,7 @@
-# Note this is just for individual members. For groups please see shared/members/_group
-%li.member.js-member.py-2.px-3.d-flex.flex-column{ class: [dom_class(member), ("flex-md-row" unless force_mobile_view)], id: dom_id(member), data: { qa_selector: 'member_row' } }
+%li.member.js-member.py-2.px-3.d-flex.flex-column{ class: [dom_class(member), ("flex-md-row" unless force_mobile_view)], id: dom_id(member) }
%span.list-item-name.mb-2.m-md-0
- if user
= render Pajamas::AvatarComponent.new(user, size: 32, class: 'gl-mr-3 flex-shrink-0 flex-grow-0')
@@ -49,7 +49,7 @@
= _("Expires %{preposition} %{expires_at}").html_safe % { expires_at: time_ago_with_tooltip(member.expires_at), preposition: preposition }
- else
- = image_tag avatar_icon_for_email(member.invite_email, 40), class: "avatar s40 flex-shrink-0 flex-grow-0", alt: ''
+ = render Pajamas::AvatarComponent.new(Pajamas::AvatarEmail.new(member.invite_email), size: 32, class: 'gl-mr-3 flex-shrink-0 flex-grow-0')
.user-info
.member= member.invite_email
.cgray
diff --git a/app/views/shared/notes/_notes_with_form.html.haml b/app/views/shared/notes/_notes_with_form.html.haml
index 343a8597444..969ca2084d7 100644
--- a/app/views/shared/notes/_notes_with_form.html.haml
+++ b/app/views/shared/notes/_notes_with_form.html.haml
@@ -10,7 +10,7 @@
.notes.notes-form.timeline
.timeline-entry.note-form
.timeline-entry-inner
- .flash-container.timeline-content
+ .flash-container
.timeline-content.timeline-content-form
= render "shared/notes/form", view: diff_view, supports_autocomplete: autocomplete
diff --git a/app/views/shared/users/_user.html.haml b/app/views/shared/users/_user.html.haml
index e3c1ca4d9cf..4dc276a45c2 100644
--- a/app/views/shared/users/_user.html.haml
+++ b/app/views/shared/users/_user.html.haml
@@ -7,7 +7,7 @@
.user-info
.block-truncated
- = link_to user.name, user_path(user), class: 'user js-user-link', data: { user_id: user.id, qa_selector: 'user_link', qa_username: user.username }
+ = link_to user.name, user_path(user), class: 'user js-user-link', data: { user_id: user.id, testid: 'user-link', qa_username: user.username }
.block-truncated
%span.gl-text-gray-900= user.to_reference
diff --git a/app/views/shared/web_hooks/_index.html.haml b/app/views/shared/web_hooks/_index.html.haml
index ccd86937e4f..c4670a3ac73 100644
--- a/app/views/shared/web_hooks/_index.html.haml
+++ b/app/views/shared/web_hooks/_index.html.haml
@@ -11,7 +11,7 @@
- c.with_body do
= gitlab_ui_form_for @hook, as: :hook, url: url, html: { class: 'js-webhook-form gl-new-card-add-form gl-m-3 gl-display-none js-toggle-content' } do |f|
= render partial: partial, locals: { form: f, hook: @hook }
- = f.submit _('Add webhook'), pajamas_button: true, data: { qa_selector: "create_webhook_button" }
+ = f.submit _('Add webhook'), pajamas_button: true
= render Pajamas::ButtonComponent.new(button_options: { type: 'reset', class: 'js-webhook-edit-close gl-ml-2 js-toggle-button' }) do
= _('Cancel')
- if hooks.any?
diff --git a/app/views/shared/wikis/_sidebar.html.haml b/app/views/shared/wikis/_sidebar.html.haml
index cd752d31643..dd4ea9e72ab 100644
--- a/app/views/shared/wikis/_sidebar.html.haml
+++ b/app/views/shared/wikis/_sidebar.html.haml
@@ -15,7 +15,7 @@
- if can?(current_user, :create_wiki, @wiki)
- edit_sidebar_url = wiki_page_path(@wiki, Wiki::SIDEBAR, action: :edit)
- link_class = (editing && @page&.slug == Wiki::SIDEBAR) ? 'active' : ''
- = link_to edit_sidebar_url, class: link_class, data: { qa_selector: 'edit_sidebar_link' } do
+ = link_to edit_sidebar_url, class: link_class do
= sprite_icon('pencil', css_class: 'gl-mr-2')
%span= _("Edit sidebar")
diff --git a/app/views/shared/wikis/git_error.html.haml b/app/views/shared/wikis/git_error.html.haml
index 12eddb4a61e..aee359b35b3 100644
--- a/app/views/shared/wikis/git_error.html.haml
+++ b/app/views/shared/wikis/git_error.html.haml
@@ -8,7 +8,7 @@
.wiki-page-header.top-area.gl-flex-direction-column.gl-lg-flex-direction-row
.gl-mt-5.gl-mb-3
.gl-display-flex.gl-justify-content-space-between
- %h2.gl-mt-0.gl-mb-5{ data: { qa_selector: 'wiki_page_title', testid: 'wiki_page_title' } }= @page ? @page.human_title : _('Failed to retrieve page')
- .js-wiki-page-content.md.gl-pt-2{ data: { qa_selector: 'wiki_page_content', testid: 'wiki-page-content' } }
+ %h2.gl-mt-0.gl-mb-5{ data: { testid: 'wiki-page-title' } }= @page ? @page.human_title : _('Failed to retrieve page')
+ .js-wiki-page-content.md.gl-pt-2{ data: { testid: 'wiki-page-content' } }
= _('The page could not be displayed because it timed out.')
= html_escape(_('You can view the source or %{linkStart}%{cloneIcon} clone the repository%{linkEnd}')) % { linkStart: "<a href=\"#{git_access_url}\">".html_safe, linkEnd: '</a>'.html_safe, cloneIcon: sprite_icon('download', css_class: 'gl-mr-2').html_safe }
diff --git a/app/views/shared/wikis/show.html.haml b/app/views/shared/wikis/show.html.haml
index a896aa29f52..e33828b95ab 100644
--- a/app/views/shared/wikis/show.html.haml
+++ b/app/views/shared/wikis/show.html.haml
@@ -13,7 +13,10 @@
.nav-controls.pb-md-3.pb-lg-0
- if can?(current_user, :create_wiki, @wiki.container) && @page.latest? && @valid_encoding
- = render Pajamas::ButtonComponent.new(href: wiki_page_path(@wiki, @page, action: :edit), button_options: { class: 'js-wiki-edit', data: { testid: 'wiki-edit-button' }}) do
+ - edit_action_description = _('Edit page')
+ - edit_action_shortcut = 'e'
+ - edit_button_title = "#{edit_action_description} <kbd class='flat ml-1' aria-hidden=true>#{edit_action_shortcut}</kbd>"
+ = render Pajamas::ButtonComponent.new(href: wiki_page_path(@wiki, @page, action: :edit), button_options: { aria: {label: edit_action_description, keyshortcuts: edit_action_shortcut}, class: 'has-tooltip js-wiki-edit', data: { html: 'true', testid: 'wiki-edit-button' }, title: edit_button_title }) do
= _('Edit')
= render 'shared/wikis/main_links'
@@ -35,6 +38,6 @@
.gl-display-flex.gl-justify-content-space-between
%h2.gl-mt-0.gl-mb-5{ data: { testid: 'wiki-page-title' } }= @page.human_title
- .js-async-wiki-page-content.md.gl-pt-2{ data: { qa_selector: 'wiki_page_content', testid: 'wiki-page-content', tracking_context: wiki_page_tracking_context(@page).to_json, get_wiki_content_url: wiki_page_render_api_endpoint(@page) } }
+ .js-async-wiki-page-content.md.gl-pt-2{ data: { testid: 'wiki-page-content', tracking_context: wiki_page_tracking_context(@page).to_json, get_wiki_content_url: wiki_page_render_api_endpoint(@page) } }
= render 'shared/wikis/sidebar'
diff --git a/app/views/user_settings/passwords/edit.html.haml b/app/views/user_settings/passwords/edit.html.haml
index afe6ee2c0b3..179f54ac45e 100644
--- a/app/views/user_settings/passwords/edit.html.haml
+++ b/app/views/user_settings/passwords/edit.html.haml
@@ -18,18 +18,18 @@
- unless @user.password_automatically_set?
.form-group
= f.label :password, _('Current password'), class: 'label-bold'
- = f.password_field :password, required: true, autocomplete: 'current-password', class: 'form-control gl-form-input gl-max-w-80', data: { qa_selector: 'current_password_field' }
+ = f.password_field :password, required: true, autocomplete: 'current-password', class: 'form-control gl-form-input gl-max-w-80', data: { testid: 'current-password-field' }
%p.form-text.text-muted
= _('You must provide your current password in order to change it.')
.form-group
= f.label :new_password, _('New password'), class: 'label-bold'
- = f.password_field :new_password, required: true, autocomplete: 'new-password', class: 'form-control gl-form-input js-password-complexity-validation gl-max-w-80', data: { qa_selector: 'new_password_field' }
+ = f.password_field :new_password, required: true, autocomplete: 'new-password', class: 'form-control gl-form-input js-password-complexity-validation gl-max-w-80', data: { testid: 'new-password-field' }
= render_if_exists 'shared/password_requirements_list'
.form-group
= f.label :password_confirmation, _('Password confirmation'), class: 'label-bold'
- = f.password_field :password_confirmation, required: true, autocomplete: 'new-password', class: 'form-control gl-form-input gl-max-w-80', data: { qa_selector: 'confirm_password_field' }
+ = f.password_field :password_confirmation, required: true, autocomplete: 'new-password', class: 'form-control gl-form-input gl-max-w-80', data: { testid: 'confirm-password-field' }
.gl-mt-3.gl-mb-3
- = f.submit _('Save password'), class: "gl-mr-3", data: { qa_selector: 'save_password_button' }, pajamas_button: true
+ = f.submit _('Save password'), class: "gl-mr-3", data: { testid: 'save-password-button' }, pajamas_button: true
- unless @user.password_automatically_set?
= render Pajamas::ButtonComponent.new(href: reset_user_settings_password_path, variant: :link, method: :put) do
= _('I forgot my password')
diff --git a/app/views/user_settings/passwords/new.html.haml b/app/views/user_settings/passwords/new.html.haml
index 3616c9ec252..4b47dfa3e83 100644
--- a/app/views/user_settings/passwords/new.html.haml
+++ b/app/views/user_settings/passwords/new.html.haml
@@ -16,17 +16,17 @@
.col-sm-2.col-form-label
= f.label :password, _('Current password')
.col-sm-10
- = f.password_field :password, required: true, autocomplete: 'current-password', class: 'form-control gl-form-input', data: { qa_selector: 'current_password_field' }
+ = f.password_field :password, required: true, autocomplete: 'current-password', class: 'form-control gl-form-input', data: { testid: 'current-password-field' }
.form-group.row
.col-sm-2.col-form-label
= f.label :new_password, _('New password')
.col-sm-10
- = f.password_field :new_password, required: true, autocomplete: 'new-password', class: 'form-control gl-form-input js-password-complexity-validation', data: { qa_selector: 'new_password_field' }
+ = f.password_field :new_password, required: true, autocomplete: 'new-password', class: 'form-control gl-form-input js-password-complexity-validation', data: { testid: 'new-password-field' }
= render_if_exists 'shared/password_requirements_list'
.form-group.row
.col-sm-2.col-form-label
= f.label :password_confirmation, _('Password confirmation')
.col-sm-10
- = f.password_field :password_confirmation, required: true, autocomplete: 'new-password', class: 'form-control gl-form-input', data: { qa_selector: 'confirm_password_field' }
+ = f.password_field :password_confirmation, required: true, autocomplete: 'new-password', class: 'form-control gl-form-input', data: { testid: 'confirm-password-field' }
.form-actions
- = f.submit _('Set new password'), data: { qa_selector: 'set_new_password_button' }, pajamas_button: true
+ = f.submit _('Set new password'), data: { testid: 'set-new-password-button' }, pajamas_button: true
diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml
index 99097ac397c..3aee73b0b96 100644
--- a/app/views/users/show.html.haml
+++ b/app/views/users/show.html.haml
@@ -26,7 +26,7 @@
= render 'users/view_user_in_admin_area'
.js-user-profile-actions{ data: user_profile_actions_data(@user) }
- .profile-header{ class: [('with-no-profile-tabs' if profile_tabs.empty?), ('gl-mb-4!' if show_super_sidebar?)] }
+ .profile-header.gl-mx-5.gl-mb-4{ class: [('gl-mb-6' if profile_tabs.empty?)] }
.gl-display-inline-block.gl-mx-8.gl-vertical-align-top
.avatar-holder
= link_to avatar_icon_for_user(@user, 400, current_user: current_user), target: '_blank', rel: 'noopener noreferrer' do
@@ -113,9 +113,9 @@
= @user.bio
-# TODO: Remove this with the removal of the old navigation.
- -# See https://gitlab.com/groups/gitlab-org/-/epics/11875.
+ -# See https://gitlab.com/gitlab-org/gitlab/-/issues/435899.
- if !profile_tabs.empty? && !Feature.enabled?(:profile_tabs_vue, current_user)
- .scrolling-tabs-container{ class: [('gl-display-none' if show_super_sidebar?)] }
+ .scrolling-tabs-container.gl-display-none
%button.fade-left{ type: 'button', title: _('Scroll left'), 'aria-label': _('Scroll left') }
= sprite_icon('chevron-lg-left', size: 12)
%button.fade-right{ type: 'button', title: _('Scroll right'), 'aria-label': _('Scroll right') }
diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml
index ec5156bb1d0..dfad9f7f673 100644
--- a/app/workers/all_queues.yml
+++ b/app/workers/all_queues.yml
@@ -345,6 +345,15 @@
:weight: 1
:idempotent: false
:tags: []
+- :name: cronjob:click_house_event_authors_consistency_cron
+ :worker_name: ClickHouse::EventAuthorsConsistencyCronWorker
+ :feature_category: :value_stream_management
+ :has_external_dependencies: true
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: true
+ :tags: []
- :name: cronjob:click_house_events_sync
:worker_name: ClickHouse::EventsSyncWorker
:feature_category: :value_stream_management
@@ -786,6 +795,15 @@
:weight: 1
:idempotent: false
:tags: []
+- :name: cronjob:releases_publish_event
+ :worker_name: Releases::PublishEventWorker
+ :feature_category: :release_orchestration
+ :has_external_dependencies: false
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: true
+ :tags: []
- :name: cronjob:remove_expired_group_links
:worker_name: RemoveExpiredGroupLinksWorker
:feature_category: :system_access
@@ -1353,6 +1371,15 @@
:weight: 1
:idempotent: false
:tags: []
+- :name: github_importer:github_import_replay_events
+ :worker_name: Gitlab::GithubImport::ReplayEventsWorker
+ :feature_category: :importers
+ :has_external_dependencies: true
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: true
+ :tags: []
- :name: github_importer:github_import_stage_finish_import
:worker_name: Gitlab::GithubImport::Stage::FinishImportWorker
:feature_category: :importers
@@ -2593,7 +2620,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent: false
+ :idempotent: true
:tags: []
- :name: bulk_import
:worker_name: BulkImportWorker
diff --git a/app/workers/bulk_imports/export_request_worker.rb b/app/workers/bulk_imports/export_request_worker.rb
index bfe561cca5c..5204db2159d 100644
--- a/app/workers/bulk_imports/export_request_worker.rb
+++ b/app/workers/bulk_imports/export_request_worker.rb
@@ -75,7 +75,7 @@ module BulkImports
::GlobalID.parse(response.dig(*entity_query.data_path, 'id')).model_id
rescue StandardError => e
- log_exception(e, message: 'Failed to fetch source entity id')
+ log_warning(e, message: 'Failed to fetch source entity id')
nil
end
@@ -92,14 +92,21 @@ module BulkImports
@logger ||= Logger.build.with_entity(entity)
end
- def log_exception(exception, payload)
+ def build_payload(exception, payload)
Gitlab::ExceptionLogFormatter.format!(exception, payload)
+ structured_payload(payload)
+ end
+
+ def log_warning(exception, payload)
+ logger.warn(build_payload(exception, payload))
+ end
- logger.error(structured_payload(payload))
+ def log_error(exception, payload)
+ logger.error(build_payload(exception, payload))
end
def log_and_fail(exception)
- log_exception(exception, message: "Request to export #{entity.source_type} failed")
+ log_error(exception, message: "Request to export #{entity.source_type} failed")
BulkImports::Failure.create(failure_attributes(exception))
@@ -107,7 +114,7 @@ module BulkImports
end
def export_url
- entity.export_relations_url_path(batched: Feature.enabled?(:bulk_imports_batched_import_export))
+ entity.export_relations_url_path
end
end
end
diff --git a/app/workers/ci/unlock_pipelines_in_queue_worker.rb b/app/workers/ci/unlock_pipelines_in_queue_worker.rb
index de579504711..01a0dff4ca0 100644
--- a/app/workers/ci/unlock_pipelines_in_queue_worker.rb
+++ b/app/workers/ci/unlock_pipelines_in_queue_worker.rb
@@ -11,6 +11,7 @@ module Ci
feature_category :build_artifacts
idempotent!
+ MAX_RUNNING_EXTRA_LOW = 10
MAX_RUNNING_LOW = 50
MAX_RUNNING_MEDIUM = 500
MAX_RUNNING_HIGH = 1500
@@ -44,6 +45,8 @@ module Ci
MAX_RUNNING_HIGH
elsif ::Feature.enabled?(:ci_unlock_pipelines_medium, type: :ops)
MAX_RUNNING_MEDIUM
+ elsif ::Feature.enabled?(:ci_unlock_pipelines_extra_low, type: :ops)
+ MAX_RUNNING_EXTRA_LOW
elsif ::Feature.enabled?(:ci_unlock_pipelines, type: :ops)
# This is the default enabled flag
MAX_RUNNING_LOW
diff --git a/app/workers/click_house/event_authors_consistency_cron_worker.rb b/app/workers/click_house/event_authors_consistency_cron_worker.rb
new file mode 100644
index 00000000000..c35aadba593
--- /dev/null
+++ b/app/workers/click_house/event_authors_consistency_cron_worker.rb
@@ -0,0 +1,121 @@
+# frozen_string_literal: true
+
+module ClickHouse
+ # rubocop: disable CodeReuse/ActiveRecord -- Building worker-specific ActiveRecord and ClickHouse queries
+ class EventAuthorsConsistencyCronWorker
+ include ApplicationWorker
+ include ClickHouseWorker
+ include Gitlab::ExclusiveLeaseHelpers
+ include Gitlab::Utils::StrongMemoize
+
+ idempotent!
+ queue_namespace :cronjob
+ data_consistency :delayed
+ worker_has_external_dependencies! # the worker interacts with a ClickHouse database
+ feature_category :value_stream_management
+
+ MAX_TTL = 5.minutes.to_i
+ MAX_RUNTIME = 150.seconds
+ MAX_AUTHOR_DELETIONS = 2000
+ CLICK_HOUSE_BATCH_SIZE = 100_000
+ POSTGRESQL_BATCH_SIZE = 2500
+
+ def perform
+ return unless enabled?
+
+ runtime_limiter = Analytics::CycleAnalytics::RuntimeLimiter.new(MAX_RUNTIME)
+
+ in_lock(self.class.to_s, ttl: MAX_TTL, retries: 0) do
+ author_records_to_delete = []
+ last_processed_id = 0
+ iterator.each_batch(column: :author_id, of: CLICK_HOUSE_BATCH_SIZE) do |scope|
+ query = scope.select(Arel.sql('DISTINCT author_id')).to_sql
+ ids_from_click_house = connection.select(query).pluck('author_id').sort
+
+ ids_from_click_house.each_slice(POSTGRESQL_BATCH_SIZE) do |ids|
+ author_records_to_delete.concat(missing_user_ids(ids))
+ last_processed_id = ids.last
+
+ to_be_deleted_size = author_records_to_delete.size
+ if to_be_deleted_size >= MAX_AUTHOR_DELETIONS
+ metadata.merge!(status: :deletion_limit_reached, deletions: to_be_deleted_size)
+ break
+ end
+
+ if runtime_limiter.over_time?
+ metadata.merge!(status: :over_time, deletions: to_be_deleted_size)
+ break
+ end
+ end
+
+ break if limit_was_reached?
+ end
+
+ delete_records_from_click_house(author_records_to_delete)
+
+ last_processed_id = 0 if table_fully_processed?
+ ClickHouse::SyncCursor.update_cursor_for(:event_authors_consistency_check, last_processed_id)
+
+ log_extra_metadata_on_done(:result, metadata)
+ end
+ end
+
+ private
+
+ def metadata
+ @metadata ||= { status: :processed, deletions: 0 }
+ end
+
+ def limit_was_reached?
+ metadata[:status] == :deletion_limit_reached || metadata[:status] == :over_time
+ end
+
+ def table_fully_processed?
+ metadata[:status] == :processed
+ end
+
+ def enabled?
+ ClickHouse::Client.database_configured?(:main) && Feature.enabled?(:event_sync_worker_for_click_house)
+ end
+
+ def previous_author_id
+ value = ClickHouse::SyncCursor.cursor_for(:event_authors_consistency_check)
+ value == 0 ? nil : value
+ end
+ strong_memoize_attr :previous_author_id
+
+ def iterator
+ builder = ClickHouse::QueryBuilder.new('event_authors')
+ ClickHouse::Iterator.new(query_builder: builder, connection: connection, min_value: previous_author_id)
+ end
+
+ def connection
+ @connection ||= ClickHouse::Connection.new(:main)
+ end
+
+ def missing_user_ids(ids)
+ value_list = Arel::Nodes::ValuesList.new(ids.map { |id| [id] })
+ User
+ .from("(#{value_list.to_sql}) AS user_ids(id)")
+ .where('NOT EXISTS (SELECT 1 FROM users WHERE id = user_ids.id)')
+ .pluck(:id)
+ end
+
+ def delete_records_from_click_house(ids)
+ query = ClickHouse::Client::Query.new(
+ raw_query: "ALTER TABLE events DELETE WHERE author_id IN ({author_ids:Array(UInt64)})",
+ placeholders: { author_ids: ids.to_json }
+ )
+
+ connection.execute(query)
+
+ query = ClickHouse::Client::Query.new(
+ raw_query: "ALTER TABLE event_authors DELETE WHERE author_id IN ({author_ids:Array(UInt64)})",
+ placeholders: { author_ids: ids.to_json }
+ )
+
+ connection.execute(query)
+ end
+ end
+ # rubocop: enable CodeReuse/ActiveRecord
+end
diff --git a/app/workers/click_house/events_sync_worker.rb b/app/workers/click_house/events_sync_worker.rb
index 21c10566a67..3cfd3f91a29 100644
--- a/app/workers/click_house/events_sync_worker.rb
+++ b/app/workers/click_house/events_sync_worker.rb
@@ -4,8 +4,6 @@ module ClickHouse
class EventsSyncWorker
include ApplicationWorker
include ClickHouseWorker
- include Gitlab::ExclusiveLeaseHelpers
- include Gitlab::Utils::StrongMemoize
idempotent!
queue_namespace :cronjob
@@ -13,138 +11,9 @@ module ClickHouse
worker_has_external_dependencies! # the worker interacts with a ClickHouse database
feature_category :value_stream_management
- # the job is scheduled every 3 minutes and we will allow maximum 2.5 minutes runtime
- MAX_TTL = 2.5.minutes.to_i
- MAX_RUNTIME = 120.seconds
- BATCH_SIZE = 500
- INSERT_BATCH_SIZE = 5000
- CSV_MAPPING = {
- id: :id,
- path: :path,
- author_id: :author_id,
- target_id: :target_id,
- target_type: :target_type,
- action: :raw_action,
- created_at: :casted_created_at,
- updated_at: :casted_updated_at
- }.freeze
-
- # transforms the traversal_ids to a String:
- # Example: group_id/subgroup_id/group_or_projectnamespace_id/
- PATH_COLUMN = <<~SQL
- (
- CASE
- WHEN project_id IS NOT NULL THEN (SELECT array_to_string(traversal_ids, '/') || '/' FROM namespaces WHERE id = (SELECT project_namespace_id FROM projects WHERE id = events.project_id LIMIT 1) LIMIT 1)
- WHEN group_id IS NOT NULL THEN (SELECT array_to_string(traversal_ids, '/') || '/' FROM namespaces WHERE id = events.group_id LIMIT 1)
- ELSE ''
- END
- ) AS path
- SQL
-
- EVENT_PROJECTIONS = [
- :id,
- PATH_COLUMN,
- :author_id,
- :target_id,
- :target_type,
- 'action AS raw_action',
- 'EXTRACT(epoch FROM created_at) AS casted_created_at',
- 'EXTRACT(epoch FROM updated_at) AS casted_updated_at'
- ].freeze
-
- INSERT_EVENTS_QUERY = <<~SQL.squish
- INSERT INTO events (#{CSV_MAPPING.keys.join(', ')})
- SETTINGS async_insert=1, wait_for_async_insert=1 FORMAT CSV
- SQL
-
def perform
- unless enabled?
- log_extra_metadata_on_done(:result, { status: :disabled })
-
- return
- end
-
- metadata = { status: :processed }
-
- begin
- # Prevent parallel jobs
- in_lock(self.class.to_s, ttl: MAX_TTL, retries: 0) do
- loop { break unless next_batch }
-
- metadata.merge!(records_inserted: context.total_record_count, reached_end_of_table: context.no_more_records?)
-
- ClickHouse::SyncCursor.update_cursor_for(:events, context.last_processed_id) if context.last_processed_id
- end
- rescue Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError
- # Skip retrying, just let the next worker to start after a few minutes
- metadata = { status: :skipped }
- end
-
- log_extra_metadata_on_done(:result, metadata)
- end
-
- private
-
- def context
- @context ||= ClickHouse::RecordSyncContext.new(
- last_record_id: ClickHouse::SyncCursor.cursor_for(:events),
- max_records_per_batch: INSERT_BATCH_SIZE,
- runtime_limiter: Analytics::CycleAnalytics::RuntimeLimiter.new(MAX_RUNTIME)
- )
- end
-
- def last_event_id_in_postgresql
- Event.maximum(:id)
- end
- strong_memoize_attr :last_event_id_in_postgresql
-
- def enabled?
- ClickHouse::Client.database_configured?(:main) && Feature.enabled?(:event_sync_worker_for_click_house)
- end
-
- def next_batch
- context.new_batch!
-
- CsvBuilder::Gzip.new(process_batch(context), CSV_MAPPING).render do |tempfile, rows_written|
- unless rows_written == 0
- ClickHouse::Client.insert_csv(INSERT_EVENTS_QUERY, File.open(tempfile.path),
- :main)
- end
- end
-
- !(context.over_time? || context.no_more_records?)
- end
-
- def process_batch(context)
- Enumerator.new do |yielder|
- has_more_data = false
- batching_scope.each_batch(of: BATCH_SIZE) do |relation|
- records = relation.select(*EVENT_PROJECTIONS).to_a
- has_more_data = records.size == BATCH_SIZE
- records.each do |row|
- yielder << row
- context.last_processed_id = row.id
-
- break if context.record_limit_reached?
- end
-
- break if context.over_time? || context.record_limit_reached? || !has_more_data
- end
-
- context.no_more_records! unless has_more_data
- end
- end
-
- # rubocop: disable CodeReuse/ActiveRecord
- def batching_scope
- return Event.none unless last_event_id_in_postgresql
-
- table = Event.arel_table
-
- Event
- .where(table[:id].gt(context.last_record_id))
- .where(table[:id].lteq(last_event_id_in_postgresql))
+ result = ::ClickHouse::SyncStrategies::EventSyncStrategy.new.execute
+ log_extra_metadata_on_done(:result, result)
end
- # rubocop: enable CodeReuse/ActiveRecord
end
end
diff --git a/app/workers/concerns/gitlab/github_import/object_importer.rb b/app/workers/concerns/gitlab/github_import/object_importer.rb
index 15156e1deef..da0a54c79f8 100644
--- a/app/workers/concerns/gitlab/github_import/object_importer.rb
+++ b/app/workers/concerns/gitlab/github_import/object_importer.rb
@@ -53,14 +53,16 @@ module Gitlab
importer_class.new(object, project, client).execute
- if increment_object_counter?(object)
- Gitlab::GithubImport::ObjectCounter.increment(project, object_type, :imported)
- end
+ increment_object_counter(object, project) if increment_object_counter?(object)
info(project.id, message: 'importer finished')
rescue ActiveRecord::RecordInvalid, NotRetriableError, NoMethodError => e
# We do not raise exception to prevent job retry
track_exception(project, e)
+ rescue UserFinder::FailedToObtainLockError
+ warn(project.id, message: 'Failed to obtaing lock for user finder. Retrying later.')
+
+ raise
rescue StandardError => e
track_and_raise_exception(project, e)
end
@@ -69,6 +71,10 @@ module Gitlab
true
end
+ def increment_object_counter(_object, project)
+ Gitlab::GithubImport::ObjectCounter.increment(project, object_type, :imported)
+ end
+
def object_type
raise NotImplementedError
end
@@ -92,6 +98,10 @@ module Gitlab
Logger.info(log_attributes(project_id, extra))
end
+ def warn(project_id, extra = {})
+ Logger.warn(log_attributes(project_id, extra))
+ end
+
def log_attributes(project_id, extra = {})
extra.merge(
project_id: project_id,
diff --git a/app/workers/concerns/gitlab/github_import/queue.rb b/app/workers/concerns/gitlab/github_import/queue.rb
index 5aabc74a3d5..98fea6c1ab7 100644
--- a/app/workers/concerns/gitlab/github_import/queue.rb
+++ b/app/workers/concerns/gitlab/github_import/queue.rb
@@ -8,12 +8,6 @@ module Gitlab
included do
queue_namespace :github_importer
feature_category :importers
-
- # If a job produces an error it may block a stage from advancing
- # forever. To prevent this from happening we prevent jobs from going to
- # the dead queue. This does mean some resources may not be imported, but
- # this is better than a project being stuck in the "import" state
- # forever.
sidekiq_options dead: false
end
end
diff --git a/app/workers/concerns/gitlab/github_import/rescheduling_methods.rb b/app/workers/concerns/gitlab/github_import/rescheduling_methods.rb
index e2808f45821..61c5aff6592 100644
--- a/app/workers/concerns/gitlab/github_import/rescheduling_methods.rb
+++ b/app/workers/concerns/gitlab/github_import/rescheduling_methods.rb
@@ -38,7 +38,7 @@ module Gitlab
def try_import(...)
import(...)
true
- rescue RateLimitError
+ rescue RateLimitError, UserFinder::FailedToObtainLockError
false
end
diff --git a/app/workers/concerns/gitlab/github_import/stage_methods.rb b/app/workers/concerns/gitlab/github_import/stage_methods.rb
index 5f6812ab84f..69cf6f424af 100644
--- a/app/workers/concerns/gitlab/github_import/stage_methods.rb
+++ b/app/workers/concerns/gitlab/github_import/stage_methods.rb
@@ -50,7 +50,7 @@ module Gitlab
def perform(project_id)
info(project_id, message: 'starting stage')
- return unless (project = find_project(project_id))
+ return unless (project = Project.find_by_id(project_id))
if project.import_state&.completed?
info(
@@ -62,11 +62,11 @@ module Gitlab
return
end
+ RefreshImportJidWorker.perform_in_the_future(project.id, jid)
+
client = GithubImport.new_client_for(project)
try_import(client, project)
-
- info(project_id, message: 'stage finished')
rescue StandardError => e
Gitlab::Import::ImportFailureService.track(
project_id: project_id,
@@ -79,25 +79,19 @@ module Gitlab
raise(e)
end
+ private
+
# client - An instance of Gitlab::GithubImport::Client.
# project - An instance of Project.
def try_import(client, project)
- RefreshImportJidWorker.perform_in_the_future(project.id, jid)
-
import(client, project)
- rescue RateLimitError
- self.class.perform_in(client.rate_limit_resets_in, project.id)
- end
- def find_project(id)
- # If the project has been marked as failed we want to bail out
- # automatically.
- # rubocop: disable CodeReuse/ActiveRecord
- Project.joins_import_state.where(import_state: { status: :started }).find_by_id(id)
- # rubocop: enable CodeReuse/ActiveRecord
- end
+ info(project.id, message: 'stage finished')
+ rescue RateLimitError, UserFinder::FailedToObtainLockError => e
+ info(project.id, message: "stage retrying", exception_class: e.class.name)
- private
+ self.class.perform_in(client.rate_limit_resets_in, project.id)
+ end
def info(project_id, extra = {})
Gitlab::GithubImport::Logger.info(log_attributes(project_id, extra))
diff --git a/app/workers/gitlab/bitbucket_server_import/stage/import_users_worker.rb b/app/workers/gitlab/bitbucket_server_import/stage/import_users_worker.rb
index dd18139fc9e..4c323a11755 100644
--- a/app/workers/gitlab/bitbucket_server_import/stage/import_users_worker.rb
+++ b/app/workers/gitlab/bitbucket_server_import/stage/import_users_worker.rb
@@ -3,9 +3,11 @@
module Gitlab
module BitbucketServerImport
module Stage
- class ImportUsersWorker # rubocop:disable Scalability/IdempotentWorker -- ImportPullRequestsWorker is not idempotent
+ class ImportUsersWorker
include StageMethods
+ idempotent!
+
private
def import(project)
diff --git a/app/workers/gitlab/github_gists_import/start_import_worker.rb b/app/workers/gitlab/github_gists_import/start_import_worker.rb
index f7d3eb1d759..d6c637f6d49 100644
--- a/app/workers/gitlab/github_gists_import/start_import_worker.rb
+++ b/app/workers/gitlab/github_gists_import/start_import_worker.rb
@@ -17,7 +17,7 @@ module Gitlab
Gitlab::GithubGistsImport::Status.new(msg['args'][0]).fail!
user = User.find(msg['args'][0])
- Gitlab::GithubImport::PageCounter.new(user, :gists, 'github-gists-importer').expire!
+ Gitlab::Import::PageCounter.new(user, :gists, 'github-gists-importer').expire!
end
def perform(user_id, encrypted_token)
diff --git a/app/workers/gitlab/github_import/advance_stage_worker.rb b/app/workers/gitlab/github_import/advance_stage_worker.rb
index 417b8598547..8de9850298b 100644
--- a/app/workers/gitlab/github_import/advance_stage_worker.rb
+++ b/app/workers/gitlab/github_import/advance_stage_worker.rb
@@ -14,22 +14,24 @@ module Gitlab
include ::Gitlab::Import::AdvanceStage
loggable_arguments 1, 2
- sidekiq_options retry: 6
-
- # TODO: Allow this class to include GithubImport::Queue and remove
- # the following two lines https://gitlab.com/gitlab-org/gitlab/-/issues/435622
+ sidekiq_options retry: 6, dead: false
feature_category :importers
- sidekiq_options dead: false
# The known importer stages and their corresponding Sidekiq workers.
+ #
+ # Note: AdvanceStageWorker is not used for the repository, base_data, and pull_requests stages.
+ # They are included in the list for us to easily see all stage workers and the order in which they are executed.
STAGES = {
+ repository: Stage::ImportRepositoryWorker,
+ base_data: Stage::ImportBaseDataWorker,
+ pull_requests: Stage::ImportPullRequestsWorker,
collaborators: Stage::ImportCollaboratorsWorker,
- pull_requests_merged_by: Stage::ImportPullRequestsMergedByWorker,
- pull_request_review_requests: Stage::ImportPullRequestsReviewRequestsWorker,
- pull_request_reviews: Stage::ImportPullRequestsReviewsWorker,
+ pull_requests_merged_by: Stage::ImportPullRequestsMergedByWorker, # Skipped on extended_events
+ pull_request_review_requests: Stage::ImportPullRequestsReviewRequestsWorker, # Skipped on extended_events
+ pull_request_reviews: Stage::ImportPullRequestsReviewsWorker, # Skipped on extended_events
issues_and_diff_notes: Stage::ImportIssuesAndDiffNotesWorker,
issue_events: Stage::ImportIssueEventsWorker,
- notes: Stage::ImportNotesWorker,
+ notes: Stage::ImportNotesWorker, # Skipped on extended_events
attachments: Stage::ImportAttachmentsWorker,
protected_branches: Stage::ImportProtectedBranchesWorker,
lfs_objects: Stage::ImportLfsObjectsWorker,
diff --git a/app/workers/gitlab/github_import/import_issue_event_worker.rb b/app/workers/gitlab/github_import/import_issue_event_worker.rb
index d7071d3ee09..f5e88787a77 100644
--- a/app/workers/gitlab/github_import/import_issue_event_worker.rb
+++ b/app/workers/gitlab/github_import/import_issue_event_worker.rb
@@ -16,6 +16,16 @@ module Gitlab
def object_type
:issue_event
end
+
+ def increment_object_counter(object, project)
+ counter_type = importer_class::EVENT_COUNTER_MAP[object[:event]] if import_settings.extended_events?
+ counter_type ||= object_type
+ Gitlab::GithubImport::ObjectCounter.increment(project, counter_type, :imported)
+ end
+
+ def import_settings
+ @import_settings ||= Gitlab::GithubImport::Settings.new(project)
+ end
end
end
end
diff --git a/app/workers/gitlab/github_import/replay_events_worker.rb b/app/workers/gitlab/github_import/replay_events_worker.rb
new file mode 100644
index 00000000000..680d5ec2d7d
--- /dev/null
+++ b/app/workers/gitlab/github_import/replay_events_worker.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module GithubImport
+ class ReplayEventsWorker
+ include ObjectImporter
+
+ idempotent!
+
+ def representation_class
+ Representation::ReplayEvent
+ end
+
+ def importer_class
+ Importer::ReplayEventsImporter
+ end
+
+ def object_type
+ :replay_event
+ end
+
+ def increment_object_counter?(_object)
+ false
+ end
+ end
+ end
+end
diff --git a/app/workers/gitlab/github_import/stage/import_collaborators_worker.rb b/app/workers/gitlab/github_import/stage/import_collaborators_worker.rb
index b5b1601e3ed..38e1fd52889 100644
--- a/app/workers/gitlab/github_import/stage/import_collaborators_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_collaborators_worker.rb
@@ -42,9 +42,15 @@ module Gitlab
def move_to_next_stage(project, waiters = {})
AdvanceStageWorker.perform_async(
- project.id, waiters.deep_stringify_keys, 'pull_requests_merged_by'
+ project.id, waiters.deep_stringify_keys, next_stage(project)
)
end
+
+ def next_stage(project)
+ return 'issues_and_diff_notes' if import_settings(project).extended_events?
+
+ 'pull_requests_merged_by'
+ end
end
end
end
diff --git a/app/workers/gitlab/github_import/stage/import_issue_events_worker.rb b/app/workers/gitlab/github_import/stage/import_issue_events_worker.rb
index 27d14a1a108..9618500604a 100644
--- a/app/workers/gitlab/github_import/stage/import_issue_events_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_issue_events_worker.rb
@@ -15,7 +15,7 @@ module Gitlab
# client - An instance of Gitlab::GithubImport::Client.
# project - An instance of Project.
def import(client, project)
- return skip_to_next_stage(project) if import_settings(project).disabled?(:single_endpoint_issue_events_import)
+ return skip_to_next_stage(project) if skip_to_next_stage?(project)
importer = ::Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter
info(project.id, message: "starting importer", importer: importer.name)
@@ -25,13 +25,26 @@ module Gitlab
private
+ def skip_to_next_stage?(project)
+ # This stage is mandatory when using extended_events
+ return false if import_settings(project).extended_events?
+
+ import_settings(project).disabled?(:single_endpoint_issue_events_import)
+ end
+
def skip_to_next_stage(project)
info(project.id, message: "skipping importer", importer: "IssueEventsImporter")
move_to_next_stage(project)
end
def move_to_next_stage(project, waiters = {})
- AdvanceStageWorker.perform_async(project.id, waiters.deep_stringify_keys, 'notes')
+ AdvanceStageWorker.perform_async(project.id, waiters.deep_stringify_keys, next_stage(project))
+ end
+
+ def next_stage(project)
+ return "attachments" if import_settings(project).extended_events?
+
+ "notes"
end
end
end
diff --git a/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb b/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb
index 34c31fea726..3f57b958418 100644
--- a/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb
@@ -15,16 +15,8 @@ module Gitlab
# https://gitlab.com/gitlab-org/gitlab/-/blob/eabf0800/app/services/projects/lfs_pointers/lfs_object_download_list_service.rb#L69-71
resumes_work_when_interrupted!
- def perform(project_id)
- return unless (project = find_project(project_id))
-
- import(project)
- end
-
# project - An instance of Project.
- def import(project)
- info(project.id, message: "starting importer", importer: 'Importer::LfsObjectsImporter')
-
+ def import(_client, project)
waiter = Importer::LfsObjectsImporter
.new(project, nil)
.execute
diff --git a/app/workers/google_cloud/create_cloudsql_instance_worker.rb b/app/workers/google_cloud/create_cloudsql_instance_worker.rb
index 8c4f4c83339..e0d0747e227 100644
--- a/app/workers/google_cloud/create_cloudsql_instance_worker.rb
+++ b/app/workers/google_cloud/create_cloudsql_instance_worker.rb
@@ -13,7 +13,7 @@ module GoogleCloud
project = Project.find(project_id)
params = params.with_indifferent_access
- response = ::GoogleCloud::SetupCloudsqlInstanceService.new(project, user, params).execute
+ response = ::CloudSeed::GoogleCloud::SetupCloudsqlInstanceService.new(project, user, params).execute
if response[:status] == :error
raise "Error SetupCloudsqlInstanceService: #{response.to_json}"
diff --git a/app/workers/google_cloud/fetch_google_ip_list_worker.rb b/app/workers/google_cloud/fetch_google_ip_list_worker.rb
index b14b4e735dc..de725709bea 100644
--- a/app/workers/google_cloud/fetch_google_ip_list_worker.rb
+++ b/app/workers/google_cloud/fetch_google_ip_list_worker.rb
@@ -11,7 +11,7 @@ module GoogleCloud
idempotent!
def perform
- GoogleCloud::FetchGoogleIpListService.new.execute
+ CloudSeed::GoogleCloud::FetchGoogleIpListService.new.execute
end
end
end
diff --git a/app/workers/new_issue_worker.rb b/app/workers/new_issue_worker.rb
index 0e7f11debd2..80f9e922456 100644
--- a/app/workers/new_issue_worker.rb
+++ b/app/workers/new_issue_worker.rb
@@ -15,13 +15,14 @@ class NewIssueWorker # rubocop:disable Scalability/IdempotentWorker
attr_reader :issuable_class
- def perform(issue_id, user_id, issuable_class = 'Issue')
+ # TODO: Add skip_notifications argument to the invocations of the worker in the next release (16.9)
+ def perform(issue_id, user_id, issuable_class = 'Issue', skip_notifications = false)
@issuable_class = issuable_class.constantize
return unless objects_found?(issue_id, user_id)
::EventCreateService.new.open_issue(issuable, user)
- ::NotificationService.new.new_issue(issuable, user)
+ ::NotificationService.new.new_issue(issuable, user) unless skip_notifications
issuable.create_cross_references!(user)
diff --git a/app/workers/releases/publish_event_worker.rb b/app/workers/releases/publish_event_worker.rb
new file mode 100644
index 00000000000..8bcc580dceb
--- /dev/null
+++ b/app/workers/releases/publish_event_worker.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+module Releases
+ class PublishEventWorker
+ include ApplicationWorker
+ include CronjobQueue
+
+ idempotent!
+ data_consistency :always # rubocop:disable SidekiqLoadBalancing/WorkerDataConsistency -- usual for EventStore jobs.
+ feature_category :release_orchestration
+
+ def perform
+ releases_published = 0
+
+ Release.waiting_for_publish_event.each_batch(of: 100) do |releases|
+ releases.each do |release|
+ with_context(project: release.project) do
+ ::Gitlab::EventStore.publish(
+ ::Projects::ReleasePublishedEvent.new(data: { release_id: release.id })
+ )
+
+ releases_published += 1
+ end
+ end
+
+ releases.touch_all(:release_published_at)
+ end
+
+ log_extra_metadata_on_done(:releases_published, releases_published) if releases_published > 0
+ end
+ end
+end
diff --git a/babel.config.js b/babel.config.js
index ddb8b568bed..f0dc83d0f47 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -14,15 +14,15 @@ let presets = [
// include stage 3 proposals
const plugins = [
- '@babel/plugin-proposal-class-properties',
- '@babel/plugin-proposal-json-strings',
- '@babel/plugin-proposal-private-methods',
+ '@babel/plugin-transform-class-properties',
+ '@babel/plugin-transform-json-strings',
+ '@babel/plugin-transform-private-methods',
// See: https://gitlab.com/gitlab-org/gitlab/-/issues/229146
'@babel/plugin-transform-arrow-functions',
// See: https://gitlab.com/gitlab-org/gitlab/-/issues/336216
- '@babel/plugin-proposal-optional-chaining',
+ '@babel/plugin-transform-optional-chaining',
// See: https://gitlab.com/gitlab-org/gitlab/-/issues/336216
- '@babel/plugin-proposal-nullish-coalescing-operator',
+ '@babel/plugin-transform-nullish-coalescing-operator',
'lodash',
];
diff --git a/bin/feature-flag b/bin/feature-flag
index 415adfad9a0..1924ad91824 100755
--- a/bin/feature-flag
+++ b/bin/feature-flag
@@ -5,13 +5,17 @@
# Automatically stages the file and amends the previous commit if the `--amend`
# argument is used.
-require 'optparse'
-require 'yaml'
require 'fileutils'
-require 'uri'
+require 'httparty'
+require 'json'
+require 'optparse'
require 'readline'
+require 'shellwords'
+require 'uri'
+require 'yaml'
require_relative '../lib/feature/shared' unless defined?(Feature::Shared)
+require_relative '../lib/gitlab/popen'
module FeatureFlagHelpers
Abort = Class.new(StandardError)
@@ -32,6 +36,20 @@ class FeatureFlagOptionParser
extend FeatureFlagHelpers
extend ::Feature::Shared
+ WWW_GITLAB_COM_SITE = 'https://about.gitlab.com'
+ WWW_GITLAB_COM_GROUPS_JSON = "#{WWW_GITLAB_COM_SITE}/groups.json".freeze
+ FF_ROLLOUT_ISSUE_TEMPLATE = '.gitlab/issue_templates/Feature Flag Roll Out.md'
+ COPY_COMMANDS = [
+ 'pbcopy', # macOS
+ 'xclip -selection clipboard', # Linux
+ 'xsel --clipboard --input', # Linux
+ 'wl-copy' # Wayland
+ ].freeze
+ OPEN_COMMANDS = [
+ 'open', # macOS
+ 'xdg-open' # Linux
+ ].freeze
+
Options = Struct.new(
:name,
:type,
@@ -41,8 +59,11 @@ class FeatureFlagOptionParser
:amend,
:dry_run,
:force,
+ :feature_issue_url,
:introduced_by_url,
- :rollout_issue_url
+ :rollout_issue_url,
+ :username,
+ keyword_init: true
)
class << self
@@ -62,6 +83,10 @@ class FeatureFlagOptionParser
options.force = value
end
+ opts.on('-a', '--feature-issue-url [string]', String, 'URL of the original feature issue') do |value|
+ options.feature_issue_url = value
+ end
+
opts.on('-m', '--introduced-by-url [string]', String, 'URL of merge request introducing the Feature Flag') do |value|
options.introduced_by_url = value
end
@@ -79,11 +104,15 @@ class FeatureFlagOptionParser
end
opts.on('-g', '--group [string]', String, "The group introducing a feature flag, like: `group::project management`") do |value|
- options.group = value if value.start_with?('group::')
+ options.group = value if group_labels.include?(value)
end
opts.on('-t', '--type [string]', String, "The category of the feature flag, valid options are: #{TYPES.keys.map(&:to_s).join(', ')}") do |value|
- options.type = value.to_sym if TYPES[value.to_sym]
+ options.type = value.to_sym if TYPES.key?(value.to_sym)
+ end
+
+ opts.on('-u', '--username [string]', String, "The username of the feature flag DRI") do |value|
+ options.username = value
end
opts.on('-e', '--ee', 'Generate a feature flag entry for GitLab EE') do |value|
@@ -110,82 +139,179 @@ class FeatureFlagOptionParser
options
end
- def read_group
- $stdout.puts
- $stdout.puts ">> Specify the group introducing the feature flag, like `group::project management`:"
+ def groups
+ @groups ||= fetch_json(WWW_GITLAB_COM_GROUPS_JSON)
+ end
- loop do
- group = Readline.readline('?> ', false)&.strip
- group = nil if group.empty?
- return group if group.nil? || group.start_with?('group::')
+ def rollout_issue_template
+ @rollout_issue_template ||= File.read(File.expand_path("../#{FF_ROLLOUT_ISSUE_TEMPLATE}", __dir__))
+ end
+
+ def group_labels
+ @group_labels ||= groups.map { |_, group| group['label'] }.sort
+ end
+
+ def find_group_by_label(label)
+ groups.find { |_, group| group['label'] == label }[1]
+ end
+
+ def types_list
+ list = []
+ TYPES.each_with_index do |(type, data), index|
+ next if data[:deprecated]
- $stderr.puts "The group needs to include `group::`"
+ list << "#{index + 1}. #{type.to_s.rjust(17)} #{data[:description]}"
end
+
+ list
end
- def read_type
- # if there's only one type, do not ask, return
- return TYPES.first.first if TYPES.one?
+ def group_list
+ list = []
+ group_labels.each_with_index do |group_label, index|
+ list << "#{index + 1}. #{group_label}"
+ end
+ list
+ end
+
+ def fzf_available?
+ find_compatible_command(%w[fzf])
+ end
+
+ def prompt_readline(prompt:)
+ Readline.readline('?> ', false)&.strip
+ end
+
+ def prompt_fzf(list:, prompt:)
+ arr = list.join("\n")
+ selection = IO.popen("echo \"#{arr}\" | fzf --tac --prompt=\"#{prompt}\"") { |pipe| pipe.readlines }.join.strip
+ selection.match(/(\d+)\./)[1]
+ end
+
+ def print_list(list)
+ return if list.empty?
+
+ $stdout.puts list.join("\n")
+ end
+
+ def print_prompt(prompt)
$stdout.puts
- $stdout.puts ">> Specify the feature flag type:"
+ $stdout.puts ">> #{prompt}:"
$stdout.puts
- TYPES.each do |type, data|
- next if data[:deprecated]
+ end
- $stdout.puts "#{type.to_s.rjust(15)}#{' '*6}#{data[:description]}"
+ def prompt_list(prompt:, list: nil)
+ if fzf_available?
+ prompt_fzf(list: list, prompt: prompt)
+ else
+ prompt_readline(prompt: prompt)
end
+ end
- loop do
- type = Readline.readline('?> ', false)&.strip&.to_sym
- return type if TYPES[type] && !TYPES[type][:deprecated]
+ def fetch_json(json_url)
+ json = with_retries { HTTParty.get(json_url, format: :plain) }
+ JSON.parse(json)
+ end
+
+ def with_retries(attempts: 3)
+ yield
+ rescue Errno::ECONNRESET, OpenSSL::SSL::SSLError, Net::OpenTimeout
+ retry if (attempts -= 1).positive?
+ raise
+ end
- $stderr.puts "Invalid type specified '#{type}'"
+ def read_type
+ prompt = 'Specify the feature flag type'
+ unless fzf_available?
+ print_prompt(prompt)
+ print_list(types_list)
+ end
+
+ loop do
+ type = prompt_list(prompt: prompt, list: types_list)
+ type = TYPES.keys[type.to_i - 1] unless type.to_i.zero?
+ type = type&.to_sym
+ type_def = TYPES[type]
+
+ if type_def && !type_def[:deprecated]
+ $stdout.puts "You picked the type '#{type}'"
+ return type
+ else
+ $stderr.puts "Invalid type specified '#{type}'"
+ end
end
end
- def read_introduced_by_url
- $stdout.puts
- $stdout.puts ">> URL of the MR introducing the feature flag (enter to skip):"
+ def read_group
+ prompt = "Specify the group label to which the feature flag belongs, from the following list"
+
+ unless fzf_available?
+ print_prompt(prompt)
+ print_list(group_list)
+ end
loop do
- introduced_by_url = Readline.readline('?> ', false)&.strip
- introduced_by_url = nil if introduced_by_url.empty?
- return introduced_by_url if introduced_by_url.nil? || introduced_by_url.start_with?('https://')
+ group = prompt_list(prompt: prompt, list: group_list)
+ group = group_labels[group.to_i - 1] unless group.to_i.zero?
+
+ if group_labels.include?(group)
+ $stdout.puts "You picked the group '#{group}'"
+ return group
+ else
+ $stderr.puts "The group label isn't in the above labels list"
+ end
- $stderr.puts "URL needs to start with https://"
end
end
- def read_ee_only(options)
- TYPES.dig(options.type, :ee_only)
+ def read_feature_issue_url
+ read_url('URL of the original feature issue (enter to skip):')
+ end
+
+ def read_introduced_by_url
+ read_url('URL of the MR introducing the feature flag (enter to skip and let Danger provide a suggestion directly in the MR):')
end
def read_rollout_issue_url(options)
return unless TYPES.dig(options.type, :rollout_issue)
- url = "https://gitlab.com/gitlab-org/gitlab/-/issues/new"
- title = "[Feature flag] Rollout of `#{options.name}`"
+ issue_new_url = "https://gitlab.com/gitlab-com/gl-infra/production/-/issues/new"
+ issue_title = "[Feature flag] Rollout of `#{options.name}`"
+ issue_new_url = issue_new_url + "?" + URI.encode_www_form('issue[title]' => issue_title)
+ group_name = find_group_by_label(options.group)
- params = {
- 'issue[title]' => "[Feature flag] Rollout of `#{options.name}`",
- 'issuable_template' => 'Feature Flag Roll Out',
- }
- issue_new_url = url + "?" + URI.encode_www_form(params)
+ template = rollout_issue_template
+
+ if options.username
+ template.gsub!('<gitlab-username-of-dri>', options.username)
+ else
+ # Assign to current user by default
+ template.gsub!('/assign @<gitlab-username-of-dri>', "/assign me")
+ end
+
+ template.gsub!('<feature-flag-name>', options.name)
+ template.gsub!('<merge-request-url>', options.introduced_by_url) if options.introduced_by_url
+ template.gsub!('<milestone>', options.milestone)
+ template.gsub!('<feature-issue-link>', options.feature_issue_url) if options.feature_issue_url
+ template.gsub!('<slack-channel-of-dri-team>', group_name['slack_channel']) if group_name&.key?('slack_channel')
+ template.gsub!('<group-label>', %Q(~"#{options.group}"))
$stdout.puts
- $stdout.puts ">> Open this URL and fill in the rest of the details:"
- $stdout.puts issue_new_url
- $stdout.puts
+ $stdout.puts ">> Press any key and paste the issue content that we copied to your clipboard! 🚀"
+ Readline.readline('?> ', false)
+ copy_to_clipboard!(template)
+
+ if open_url!(issue_new_url) != 0
+ $stdout.puts ">> Automatic opening of the new issue URL failed, so please visit #{issue_new_url} manually."
+ end
$stdout.puts ">> URL of the rollout issue (enter to skip):"
loop do
created_url = Readline.readline('?> ', false)&.strip
created_url = nil if created_url.empty?
- return created_url if created_url.nil? || created_url.start_with?('https://')
-
- $stderr.puts "URL needs to start with https://"
+ return created_url if created_url.nil? || valid_url?(created_url)
end
end
@@ -194,8 +320,65 @@ class FeatureFlagOptionParser
milestone.gsub(/^(\d+\.\d+).*$/, '\1').chomp
end
- def read_default_enabled(options)
- TYPES.dig(options.type, :default_enabled)
+ def read_username
+ $stdout.puts
+ $stdout.puts ">> Username of the feature flag DRI (enter to skip):"
+
+ loop do
+ username = Readline.readline('?> ', false)&.strip
+ return if username.empty?
+ return username if valid_url?("https://gitlab.com/#{username}")
+ end
+ end
+
+ def read_url(prompt)
+ $stdout.puts
+ $stdout.puts ">> #{prompt}"
+
+ loop do
+ url = Readline.readline('?> ', false)&.strip
+ url = nil if url.empty?
+ return url if url.nil? || valid_url?(url)
+ end
+ end
+
+ def valid_url?(url)
+ unless url.start_with?('https://')
+ $stderr.puts "URL needs to start with https://"
+ return false
+ end
+
+ response = HTTParty.head(url)
+
+ return true if response.success?
+
+ $stderr.puts "URL '#{url}' isn't valid!"
+ end
+
+ def open_url!(url)
+ _, open_url_status = Gitlab::Popen.popen([open_command, url])
+
+ open_url_status
+ end
+
+ def copy_to_clipboard!(text)
+ IO.popen(copy_to_clipboard_command.shellsplit, 'w') do |pipe|
+ pipe.print(text)
+ end
+ end
+
+ def copy_to_clipboard_command
+ find_compatible_command(COPY_COMMANDS)
+ end
+
+ def open_command
+ find_compatible_command(OPEN_COMMANDS)
+ end
+
+ def find_compatible_command(commands)
+ commands.find do |command|
+ Gitlab::Popen.popen(%W[which #{command.split(' ')[0]}])[1] == 0
+ end
end
end
end
@@ -216,11 +399,12 @@ class FeatureFlagCreator
# Read type from stdin unless is already set
options.type ||= FeatureFlagOptionParser.read_type
- options.ee ||= FeatureFlagOptionParser.read_ee_only(options)
options.group ||= FeatureFlagOptionParser.read_group
+ options.feature_issue_url ||= FeatureFlagOptionParser.read_feature_issue_url
options.introduced_by_url ||= FeatureFlagOptionParser.read_introduced_by_url
- options.rollout_issue_url ||= FeatureFlagOptionParser.read_rollout_issue_url(options)
options.milestone ||= FeatureFlagOptionParser.read_milestone
+ options.username ||= FeatureFlagOptionParser.read_username
+ options.rollout_issue_url ||= FeatureFlagOptionParser.read_rollout_issue_url(options)
$stdout.puts "\e[32mcreate\e[0m #{file_path}"
$stdout.puts contents
@@ -238,22 +422,19 @@ class FeatureFlagCreator
private
def contents
- # Slice is used to ensure that YAML keys
- # are always ordered in a predictable way
- config_hash.slice(
- *::Feature::Shared::PARAMS.map(&:to_s)
- ).to_yaml
+ config_hash.to_yaml
end
def config_hash
{
'name' => options.name,
+ 'feature_issue_url' => options.feature_issue_url,
'introduced_by_url' => options.introduced_by_url,
'rollout_issue_url' => options.rollout_issue_url,
'milestone' => options.milestone,
'group' => options.group,
'type' => options.type.to_s,
- 'default_enabled' => FeatureFlagOptionParser.read_default_enabled(options)
+ 'default_enabled' => false
}
end
diff --git a/config/application.rb b/config/application.rb
index d9a237eba50..12c7444ef39 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -65,6 +65,7 @@ module Gitlab
require_dependency Rails.root.join('lib/gitlab')
require_dependency Rails.root.join('lib/gitlab/action_cable/config')
require_dependency Rails.root.join('lib/gitlab/redis/wrapper')
+ require_dependency Rails.root.join('lib/gitlab/redis/multi_store_wrapper')
require_dependency Rails.root.join('lib/gitlab/redis/cache')
require_dependency Rails.root.join('lib/gitlab/redis/queues')
require_dependency Rails.root.join('lib/gitlab/redis/shared_state')
@@ -346,6 +347,7 @@ module Gitlab
config.assets.precompile << "page_bundles/roadmap.css"
config.assets.precompile << "page_bundles/requirements.css"
config.assets.precompile << "page_bundles/runner_details.css"
+ config.assets.precompile << "page_bundles/runners.css"
config.assets.precompile << "page_bundles/search.css"
config.assets.precompile << "page_bundles/security_dashboard.css"
config.assets.precompile << "page_bundles/security_discover.css"
diff --git a/config/dependency_decisions.yml b/config/dependency_decisions.yml
index e74e9367304..a293ae97490 100644
--- a/config/dependency_decisions.yml
+++ b/config/dependency_decisions.yml
@@ -379,5 +379,12 @@
- elkjs
- :who: John T Skarbek
:why: https://gitlab.com/gitlab-com/legal-and-compliance/-/issues/1505
- :versions: ["0.8.2"]
- :when: 2023-04-07 09:15:33.00004000 Z
+ :versions:
+ - 0.8.2
+ :when: 2023-04-07 09:15:33.000040000 Z
+- - :permit
+ - MIT AND (BSD-2-Clause OR GPL-2.0-or-later)
+ - :who: Stan Hu
+ :why: Used by nio4r gem. MIT license.
+ :versions: []
+ :when: 2024-01-08 09:05:34.528980000 Z
diff --git a/config/events/agent_users_using_ci_tunnel.yml b/config/events/agent_users_using_ci_tunnel.yml
new file mode 100644
index 00000000000..575c2ddf9e8
--- /dev/null
+++ b/config/events/agent_users_using_ci_tunnel.yml
@@ -0,0 +1,20 @@
+---
+description: Kubernetes API proxy request using the CI/CD Tunnel
+category: InternalEventTracking
+action: agent_users_using_ci_tunnel
+identifiers:
+- project
+- namespace
+- user
+product_section: cd
+product_stage: deploy
+product_group: environments
+milestone: '16.8'
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140038
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/events/i_quickactions_remove_email_multiple.yml b/config/events/i_quickactions_remove_email_multiple.yml
new file mode 100644
index 00000000000..707624db394
--- /dev/null
+++ b/config/events/i_quickactions_remove_email_multiple.yml
@@ -0,0 +1,24 @@
+---
+description: Count usage of /remove_email quickaction with multiple arguments
+category: InternalEventTracking
+action: i_quickactions_remove_email_multiple
+label_description:
+property_description:
+value_description:
+extra_properties:
+identifiers:
+- project
+- user
+- namespace
+product_section: seg
+product_stage: service
+product_group: respond
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138178
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/events/i_quickactions_remove_email_single.yml b/config/events/i_quickactions_remove_email_single.yml
new file mode 100644
index 00000000000..fea63d2ecd3
--- /dev/null
+++ b/config/events/i_quickactions_remove_email_single.yml
@@ -0,0 +1,24 @@
+---
+description: Count usage of /remove_email quickaction with a single argument
+category: InternalEventTracking
+action: i_quickactions_remove_email_single
+label_description:
+property_description:
+value_description:
+extra_properties:
+identifiers:
+- project
+- user
+- namespace
+product_section: seg
+product_stage: service
+product_group: respond
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138178
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/feature_categories.yml b/config/feature_categories.yml
index 4391673b360..a7e84d53c31 100644
--- a/config/feature_categories.yml
+++ b/config/feature_categories.yml
@@ -86,6 +86,7 @@
- mlops
- mobile_devops
- navigation
+- okr_management
- omnibus_package
- on_call_schedule_management
- onboarding
diff --git a/config/feature_flags/development/unify_security_configuration.yml b/config/feature_flags/beta/container_scanning_continuous_vulnerability_scans.yml
index bbc4489ec82..0169f3949c9 100644
--- a/config/feature_flags/development/unify_security_configuration.yml
+++ b/config/feature_flags/beta/container_scanning_continuous_vulnerability_scans.yml
@@ -1,8 +1,9 @@
---
-name: unify_security_configuration
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76866
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/350177
-milestone: '14.7'
-type: development
+name: container_scanning_continuous_vulnerability_scans
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435435
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141023
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437162
+milestone: '16.8'
group: group::composition analysis
+type: beta
default_enabled: false
diff --git a/config/feature_flags/beta/group_hierarchy_optimization.yml b/config/feature_flags/beta/group_hierarchy_optimization.yml
new file mode 100644
index 00000000000..194f450aefe
--- /dev/null
+++ b/config/feature_flags/beta/group_hierarchy_optimization.yml
@@ -0,0 +1,9 @@
+---
+name: group_hierarchy_optimization
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/433478
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141214
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437604
+milestone: '16.8'
+group: group::optimize
+type: beta
+default_enabled: false
diff --git a/config/feature_flags/beta/prefix_ci_build_tokens.yml b/config/feature_flags/beta/prefix_ci_build_tokens.yml
new file mode 100644
index 00000000000..ed0838b36bd
--- /dev/null
+++ b/config/feature_flags/beta/prefix_ci_build_tokens.yml
@@ -0,0 +1,9 @@
+---
+name: prefix_ci_build_tokens
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/426137
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140159
+rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17299
+milestone: '16.8'
+group: group::pipeline security
+type: beta
+default_enabled: false
diff --git a/config/feature_flags/development/add_branch_rule.yml b/config/feature_flags/development/add_branch_rule.yml
new file mode 100644
index 00000000000..bdbd8d58c71
--- /dev/null
+++ b/config/feature_flags/development/add_branch_rule.yml
@@ -0,0 +1,8 @@
+---
+name: add_branch_rule
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435948
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437003
+milestone: '16.8'
+type: development
+group: group::source code
+default_enabled: false
diff --git a/config/feature_flags/development/apollo_boards.yml b/config/feature_flags/development/add_policy_approvers_to_rules.yml
index 09b37f4d2ed..c0e8d804840 100644
--- a/config/feature_flags/development/apollo_boards.yml
+++ b/config/feature_flags/development/add_policy_approvers_to_rules.yml
@@ -1,8 +1,8 @@
---
-name: apollo_boards
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102719
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/381210
-milestone: '15.6'
+name: add_policy_approvers_to_rules
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138809
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/434385
+milestone: '16.8'
type: development
-group: group::product planning
+group: group::security policies
default_enabled: true
diff --git a/config/feature_flags/development/clickhouse_ci_analytics.yml b/config/feature_flags/development/agent_registry.yml
index e56d2e19036..7bcdfc76ab1 100644
--- a/config/feature_flags/development/clickhouse_ci_analytics.yml
+++ b/config/feature_flags/development/agent_registry.yml
@@ -1,8 +1,8 @@
---
-name: clickhouse_ci_analytics
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130211
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/424498
-milestone: '16.4'
+name: agent_registry
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140859
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437540
+milestone: '16.8'
type: development
-group: group::runner
+group: "group::mlops"
default_enabled: false
diff --git a/config/feature_flags/development/arkose_labs_signup_data_exchange.yml b/config/feature_flags/development/arkose_labs_signup_data_exchange.yml
new file mode 100644
index 00000000000..701a2ee33e9
--- /dev/null
+++ b/config/feature_flags/development/arkose_labs_signup_data_exchange.yml
@@ -0,0 +1,8 @@
+---
+name: arkose_labs_signup_data_exchange
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139070
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435275
+milestone: '16.8'
+type: development
+group: group::anti-abuse
+default_enabled: false
diff --git a/config/feature_flags/development/create_personal_ns_outside_model.yml b/config/feature_flags/development/bulk_create_scan_result_policies.yml
index ba8a3f7deb3..35a1c5a6deb 100644
--- a/config/feature_flags/development/create_personal_ns_outside_model.yml
+++ b/config/feature_flags/development/bulk_create_scan_result_policies.yml
@@ -1,8 +1,8 @@
---
-name: create_personal_ns_outside_model
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139487
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/434921
-milestone: '16.7'
+name: bulk_create_scan_result_policies
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139163
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435958
+milestone: '16.8'
type: development
-group: group::tenant scale
+group: group::security policies
default_enabled: false
diff --git a/config/feature_flags/development/bulk_import_details_page.yml b/config/feature_flags/development/bulk_import_details_page.yml
deleted file mode 100644
index c8265161233..00000000000
--- a/config/feature_flags/development/bulk_import_details_page.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: bulk_import_details_page
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135004
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/429109
-milestone: '16.6'
-type: development
-group: group::import and integrate
-default_enabled: true
diff --git a/config/feature_flags/development/bulk_import_limit_concurrent_batches.yml b/config/feature_flags/development/bulk_import_limit_concurrent_batches.yml
index 4bbd0bd5773..72dbf392528 100644
--- a/config/feature_flags/development/bulk_import_limit_concurrent_batches.yml
+++ b/config/feature_flags/development/bulk_import_limit_concurrent_batches.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/431561
milestone: '16.7'
type: development
group: group::import and integrate
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/bulk_imports_batched_import_export.yml b/config/feature_flags/development/bulk_imports_batched_import_export.yml
deleted file mode 100644
index bf114b6d0a8..00000000000
--- a/config/feature_flags/development/bulk_imports_batched_import_export.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: bulk_imports_batched_import_export
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124434
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/406559
-milestone: '16.2'
-type: development
-group: group::import and integrate
-default_enabled: true
diff --git a/config/feature_flags/development/cache_control_headers_for_openid_jwks.yml b/config/feature_flags/development/cache_control_headers_for_openid_jwks.yml
deleted file mode 100644
index 79f7a27eeac..00000000000
--- a/config/feature_flags/development/cache_control_headers_for_openid_jwks.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: cache_control_headers_for_openid_jwks
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138405
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/433360
-milestone: '16.7'
-type: development
-group: group::pipeline security
-default_enabled: false \ No newline at end of file
diff --git a/config/feature_flags/development/use_gitlab_http_v2.yml b/config/feature_flags/development/ci_workflow_auto_cancel_on_new_commit.yml
index 8a840c48a4b..3b8c7b1e489 100644
--- a/config/feature_flags/development/use_gitlab_http_v2.yml
+++ b/config/feature_flags/development/ci_workflow_auto_cancel_on_new_commit.yml
@@ -1,8 +1,8 @@
---
-name: use_gitlab_http_v2
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132742
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/426549
-milestone: '16.5'
+name: ci_workflow_auto_cancel_on_new_commit
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139358
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/434676
+milestone: '16.8'
type: development
group: group::pipeline authoring
-default_enabled: true
+default_enabled: false
diff --git a/config/feature_flags/development/code_suggestions_claude21.yml b/config/feature_flags/development/code_suggestions_claude21.yml
new file mode 100644
index 00000000000..d5127fa1b79
--- /dev/null
+++ b/config/feature_flags/development/code_suggestions_claude21.yml
@@ -0,0 +1,9 @@
+---
+name: code_suggestions_claude21
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432636
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140436
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/436273
+milestone: '16.8'
+group: group::code creation
+type: development
+default_enabled: false
diff --git a/config/feature_flags/development/compliance_framework_report_ui.yml b/config/feature_flags/development/compliance_framework_report_ui.yml
index a70869bfeed..257c5808797 100644
--- a/config/feature_flags/development/compliance_framework_report_ui.yml
+++ b/config/feature_flags/development/compliance_framework_report_ui.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/425242
milestone: '16.5'
type: development
group: group::compliance
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/compliance_pipeline_in_policies.yml b/config/feature_flags/development/compliance_pipeline_in_policies.yml
index 97432fe2872..427f3dde4b4 100644
--- a/config/feature_flags/development/compliance_pipeline_in_policies.yml
+++ b/config/feature_flags/development/compliance_pipeline_in_policies.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/424185
milestone: '16.4'
type: development
group: group::security policies
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/invalid_graphql_auth_401.yml b/config/feature_flags/development/github_import_extended_events.yml
index 668a86cc52f..e4466bf958f 100644
--- a/config/feature_flags/development/invalid_graphql_auth_401.yml
+++ b/config/feature_flags/development/github_import_extended_events.yml
@@ -1,8 +1,8 @@
---
-name: invalid_graphql_auth_401
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132149
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/426196
-milestone: '16.5'
+name: github_import_extended_events
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139410
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435089
+milestone: '16.8'
type: development
group: group::import and integrate
default_enabled: false
diff --git a/config/feature_flags/development/gitlab_duo_chat_requests_to_ai_gateway.yml b/config/feature_flags/development/gitlab_duo_chat_requests_to_ai_gateway.yml
index fc15ee5f1b9..bc90bd298fc 100644
--- a/config/feature_flags/development/gitlab_duo_chat_requests_to_ai_gateway.yml
+++ b/config/feature_flags/development/gitlab_duo_chat_requests_to_ai_gateway.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/433213
milestone: '16.7'
type: development
group: group::ai framework
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/group_analytics_dashboards.yml b/config/feature_flags/development/group_analytics_dashboards.yml
index 55001b99452..6609b4d2c7e 100644
--- a/config/feature_flags/development/group_analytics_dashboards.yml
+++ b/config/feature_flags/development/group_analytics_dashboards.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/416970
milestone: '16.2'
type: development
group: group::optimize
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/browsersdk_tracking.yml b/config/feature_flags/development/hard_limit_daily_phone_verifications.yml
index 688d559904b..7bf08f24bc6 100644
--- a/config/feature_flags/development/browsersdk_tracking.yml
+++ b/config/feature_flags/development/hard_limit_daily_phone_verifications.yml
@@ -1,8 +1,8 @@
---
-name: browsersdk_tracking
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129517
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/422264
-milestone: '16.4'
+name: hard_limit_daily_phone_verifications
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138627
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/433972
+milestone: '16.8'
type: development
-group: group::analytics instrumentation
+group: group::anti-abuse
default_enabled: false
diff --git a/config/feature_flags/development/inherit_higher_access_levels_no_cross_join.yml b/config/feature_flags/development/inherit_higher_access_levels_no_cross_join.yml
deleted file mode 100644
index 299a43ccb9e..00000000000
--- a/config/feature_flags/development/inherit_higher_access_levels_no_cross_join.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: inherit_higher_access_levels_no_cross_join
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132947
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/427238
-milestone: '16.5'
-type: development
-group: group::authentication
-default_enabled: true
diff --git a/config/feature_flags/development/limited_access_modal.yml b/config/feature_flags/development/limited_access_modal.yml
index c9800da0d6c..0e01507a8f9 100644
--- a/config/feature_flags/development/limited_access_modal.yml
+++ b/config/feature_flags/development/limited_access_modal.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129790
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/424877
milestone: '16.4'
type: development
-group: group::billing and subscription management
+group: group::subscription management
default_enabled: false
diff --git a/config/feature_flags/development/manage_project_access_tokens.yml b/config/feature_flags/development/manage_project_access_tokens.yml
deleted file mode 100644
index a6cf2cf4f9f..00000000000
--- a/config/feature_flags/development/manage_project_access_tokens.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: manage_project_access_tokens
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132342
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/430353
-milestone: '16.5'
-type: development
-group: group::authorization
-default_enabled: false
diff --git a/config/feature_flags/development/vite.yml b/config/feature_flags/development/markdown_rust.yml
index 10242a665e7..2a982525e45 100644
--- a/config/feature_flags/development/vite.yml
+++ b/config/feature_flags/development/markdown_rust.yml
@@ -1,8 +1,8 @@
---
-name: vite
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129392
+name: markdown_rust
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139825
rollout_issue_url:
-milestone: '16.4'
+milestone: '16.8'
type: development
-group: group::code review
+group: group::project management
default_enabled: false
diff --git a/config/feature_flags/development/always_set_pipeline_failure_reason.yml b/config/feature_flags/development/mention_autocomplete_backend_filtering.yml
index fad54828280..b971308fe67 100644
--- a/config/feature_flags/development/always_set_pipeline_failure_reason.yml
+++ b/config/feature_flags/development/mention_autocomplete_backend_filtering.yml
@@ -1,8 +1,8 @@
---
-name: always_set_pipeline_failure_reason
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138390
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/434228
+name: mention_autocomplete_backend_filtering
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131250
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435106
milestone: '16.7'
type: development
-group: group::pipeline execution
+group: group::project management
default_enabled: false
diff --git a/config/feature_flags/development/user_approval_rules_removal.yml b/config/feature_flags/development/merge_request_diff_generated_subscription.yml
index 96025a8c163..c1803423edc 100644
--- a/config/feature_flags/development/user_approval_rules_removal.yml
+++ b/config/feature_flags/development/merge_request_diff_generated_subscription.yml
@@ -1,8 +1,8 @@
---
-name: user_approval_rules_removal
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138691
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/434141
-milestone: '16.7'
-type: development
+name: merge_request_diff_generated_subscription
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140287
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435917
+milestone: '16.8'
group: group::code review
-default_enabled: true
+type: development
+default_enabled: false
diff --git a/config/feature_flags/development/optimize_where_full_path_in.yml b/config/feature_flags/development/optional_personal_namespace.yml
index a47b703a958..acc644933d5 100644
--- a/config/feature_flags/development/optimize_where_full_path_in.yml
+++ b/config/feature_flags/development/optional_personal_namespace.yml
@@ -1,8 +1,8 @@
---
-name: optimize_where_full_path_in
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137886
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432863
-milestone: '16.7'
+name: optional_personal_namespace
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137713
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/431978
+milestone: '16.8'
type: development
group: group::tenant scale
default_enabled: false
diff --git a/config/feature_flags/development/packages_dependency_proxy_maven.yml b/config/feature_flags/development/packages_dependency_proxy_maven.yml
deleted file mode 100644
index 8cf2f5a2879..00000000000
--- a/config/feature_flags/development/packages_dependency_proxy_maven.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: packages_dependency_proxy_maven
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123491
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/415218
-milestone: '16.2'
-type: development
-group: group::package registry
-default_enabled: false
diff --git a/config/feature_flags/development/use_merge_approval_rules_when_merged.yml b/config/feature_flags/development/pinned_file.yml
index 1b7007a96df..712a35fd790 100644
--- a/config/feature_flags/development/use_merge_approval_rules_when_merged.yml
+++ b/config/feature_flags/development/pinned_file.yml
@@ -1,8 +1,8 @@
---
-name: use_merge_approval_rules_when_merged
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129165
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/422380
-milestone: '16.4'
+name: pinned_file
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137544
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/433250
+milestone: '16.9'
type: development
group: group::code review
default_enabled: false
diff --git a/config/feature_flags/development/restyle_login_page.yml b/config/feature_flags/development/prefix_scim_tokens.yml
index 90b56e64c48..297327f26d2 100644
--- a/config/feature_flags/development/restyle_login_page.yml
+++ b/config/feature_flags/development/prefix_scim_tokens.yml
@@ -1,8 +1,8 @@
---
-name: restyle_login_page
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91673
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/368387
-milestone: '15.2'
+name: prefix_scim_tokens
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139737
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435423
+milestone: '16.8'
type: development
group: group::authentication
-default_enabled: true
+default_enabled: false
diff --git a/config/feature_flags/development/refresh_statistics_on_unlink_fork.yml b/config/feature_flags/development/refresh_statistics_on_unlink_fork.yml
deleted file mode 100644
index e4358224831..00000000000
--- a/config/feature_flags/development/refresh_statistics_on_unlink_fork.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: refresh_statistics_on_unlink_fork
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137197
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432177
-milestone: '16.7'
-type: development
-group: group::utilization
-default_enabled: false
diff --git a/config/feature_flags/development/sast_reports_in_inline_diff.yml b/config/feature_flags/development/sast_reports_in_inline_diff.yml
index 2e320e8e602..78729ed1466 100644
--- a/config/feature_flags/development/sast_reports_in_inline_diff.yml
+++ b/config/feature_flags/development/sast_reports_in_inline_diff.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/410191
milestone: '16.0'
type: development
group: group::static analysis
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/self_managed_code_suggestions.yml b/config/feature_flags/development/self_managed_code_suggestions.yml
index 1c0f636bd8b..ccde3fbc75f 100644
--- a/config/feature_flags/development/self_managed_code_suggestions.yml
+++ b/config/feature_flags/development/self_managed_code_suggestions.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432983
milestone: '16.7'
type: development
group: group::purchase
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/sidekiq_job_completion_metric_initialize.yml b/config/feature_flags/development/sidekiq_job_completion_metric_initialize.yml
index 95389b7b5d7..0813a7fcc59 100644
--- a/config/feature_flags/development/sidekiq_job_completion_metric_initialize.yml
+++ b/config/feature_flags/development/sidekiq_job_completion_metric_initialize.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64637
rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/1133
milestone: '14.1'
type: development
-group: team::Scalability
+group: group::scalability
default_enabled: true
diff --git a/config/feature_flags/development/ci_job_token_scope.yml b/config/feature_flags/development/simplified_badges.yml
index aa64f5ba872..95f9b00d306 100644
--- a/config/feature_flags/development/ci_job_token_scope.yml
+++ b/config/feature_flags/development/simplified_badges.yml
@@ -1,8 +1,8 @@
---
-name: ci_job_token_scope
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49750
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300821
-milestone: '13.12'
+name: simplified_badges
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140231
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437861
+milestone: '16.8'
type: development
-group: group::container registry
+group: group::ux paper cuts
default_enabled: false
diff --git a/config/feature_flags/development/simplified_labels.yml b/config/feature_flags/development/simplified_labels.yml
new file mode 100644
index 00000000000..95619cd5ea5
--- /dev/null
+++ b/config/feature_flags/development/simplified_labels.yml
@@ -0,0 +1,8 @@
+---
+name: simplified_labels
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140239
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437859
+milestone: '16.8'
+type: development
+group: group::ux paper cuts
+default_enabled: false
diff --git a/config/feature_flags/development/sms_send_wait_time.yml b/config/feature_flags/development/sms_send_wait_time.yml
new file mode 100644
index 00000000000..e4cde3477ca
--- /dev/null
+++ b/config/feature_flags/development/sms_send_wait_time.yml
@@ -0,0 +1,8 @@
+---
+name: sms_send_wait_time
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137850
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432975
+milestone: '16.8'
+type: development
+group: group::anti-abuse
+default_enabled: false
diff --git a/config/feature_flags/development/truncate_ci_merge_request_description.yml b/config/feature_flags/development/truncate_ci_merge_request_description.yml
deleted file mode 100644
index 816632f0da2..00000000000
--- a/config/feature_flags/development/truncate_ci_merge_request_description.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: truncate_ci_merge_request_description
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139605
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435099
-milestone: '16.7'
-type: development
-group: group::pipeline security
-default_enabled: false \ No newline at end of file
diff --git a/config/feature_flags/development/updated_ai_powered_features_menu_for_sm.yml b/config/feature_flags/development/updated_ai_powered_features_menu_for_sm.yml
deleted file mode 100644
index 64377eacd5d..00000000000
--- a/config/feature_flags/development/updated_ai_powered_features_menu_for_sm.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: updated_ai_powered_features_menu_for_sm
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138337
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/433255
-milestone: '16.7'
-type: development
-group: group::cloud connector
-default_enabled: false
diff --git a/config/feature_flags/development/use_500_page_size_for_contribution_analytics.yml b/config/feature_flags/development/use_500_page_size_for_contribution_analytics.yml
deleted file mode 100644
index edc696fc9ac..00000000000
--- a/config/feature_flags/development/use_500_page_size_for_contribution_analytics.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: use_500_page_size_for_contribution_analytics
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136724
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/431595
-milestone: '16.7'
-type: development
-group: group::optimize
-default_enabled: true
diff --git a/config/feature_flags/experiment/in_product_guidance_environments_webide.yml b/config/feature_flags/experiment/default_to_import_tab.yml
index 167a70747a0..6d15cc57bb0 100644
--- a/config/feature_flags/experiment/in_product_guidance_environments_webide.yml
+++ b/config/feature_flags/experiment/default_to_import_tab.yml
@@ -1,8 +1,8 @@
---
-name: in_product_guidance_environments_webide
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/57160
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/330390
-milestone: '13.12'
+name: default_to_import_tab
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139681
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435211
+milestone: '16.8'
type: experiment
-group: group::environments
+group: group::activation
default_enabled: false
diff --git a/config/feature_flags/gitlab_com_derisk/allow_members_to_see_invited_groups_in_access_dropdowns.yml b/config/feature_flags/gitlab_com_derisk/allow_members_to_see_invited_groups_in_access_dropdowns.yml
new file mode 100644
index 00000000000..5f394ef3fd3
--- /dev/null
+++ b/config/feature_flags/gitlab_com_derisk/allow_members_to_see_invited_groups_in_access_dropdowns.yml
@@ -0,0 +1,9 @@
+---
+name: allow_members_to_see_invited_groups_in_access_dropdowns
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/345140
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140927
+rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17364
+milestone: '16.8'
+group: group::source code
+type: gitlab_com_derisk
+default_enabled: false
diff --git a/config/feature_flags/gitlab_com_derisk/batch_route_updates.yml b/config/feature_flags/gitlab_com_derisk/batch_route_updates.yml
new file mode 100644
index 00000000000..8eae0d54435
--- /dev/null
+++ b/config/feature_flags/gitlab_com_derisk/batch_route_updates.yml
@@ -0,0 +1,9 @@
+---
+name: batch_route_updates
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432065
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139782
+rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17360
+milestone: '16.8'
+group: group::tenant scale
+type: gitlab_com_derisk
+default_enabled: false
diff --git a/config/feature_flags/gitlab_com_derisk/enhanced_review_email.yml b/config/feature_flags/gitlab_com_derisk/enhanced_review_email.yml
new file mode 100644
index 00000000000..71bdc424ec2
--- /dev/null
+++ b/config/feature_flags/gitlab_com_derisk/enhanced_review_email.yml
@@ -0,0 +1,9 @@
+---
+name: enhanced_review_email
+feature_issue_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141187
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437582
+milestone: '16.8'
+group: group::code review
+type: gitlab_com_derisk
+default_enabled: false
diff --git a/config/feature_flags/gitlab_com_derisk/github_importer_attachments.yml b/config/feature_flags/gitlab_com_derisk/github_importer_attachments.yml
new file mode 100644
index 00000000000..ab068225d2c
--- /dev/null
+++ b/config/feature_flags/gitlab_com_derisk/github_importer_attachments.yml
@@ -0,0 +1,9 @@
+---
+name: github_importer_attachments
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/436400
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140524
+rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17318
+milestone: '16.8'
+group: group::import and integrate
+type: gitlab_com_derisk
+default_enabled: false
diff --git a/config/feature_flags/gitlab_com_derisk/namespace_descendants_cache_expiration.yml b/config/feature_flags/gitlab_com_derisk/namespace_descendants_cache_expiration.yml
new file mode 100644
index 00000000000..d374316e271
--- /dev/null
+++ b/config/feature_flags/gitlab_com_derisk/namespace_descendants_cache_expiration.yml
@@ -0,0 +1,9 @@
+---
+name: namespace_descendants_cache_expiration
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/433482
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141588
+rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17388
+milestone: '16.8'
+group: group::optimize
+type: gitlab_com_derisk
+default_enabled: false
diff --git a/config/feature_flags/gitlab_com_derisk/prevent_modifications_of_mr_rules_post_merge.yml b/config/feature_flags/gitlab_com_derisk/prevent_modifications_of_mr_rules_post_merge.yml
new file mode 100644
index 00000000000..3edb367f5a2
--- /dev/null
+++ b/config/feature_flags/gitlab_com_derisk/prevent_modifications_of_mr_rules_post_merge.yml
@@ -0,0 +1,9 @@
+---
+name: prevent_modifications_of_mr_rules_post_merge
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432961
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138154
+rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17331
+milestone: '16.8'
+group: group::code review
+type: gitlab_com_derisk
+default_enabled: false
diff --git a/config/feature_flags/gitlab_com_derisk/update_organization_users.yml b/config/feature_flags/gitlab_com_derisk/update_organization_users.yml
new file mode 100644
index 00000000000..09074850150
--- /dev/null
+++ b/config/feature_flags/gitlab_com_derisk/update_organization_users.yml
@@ -0,0 +1,9 @@
+---
+name: update_organization_users
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/419366
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139188
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435868
+milestone: '16.8'
+group: group::tenant scale
+type: gitlab_com_derisk
+default_enabled: false
diff --git a/config/feature_flags/ops/ai_duo_chat_switch.yml b/config/feature_flags/ops/ai_duo_chat_switch.yml
new file mode 100644
index 00000000000..cd3fe3ab937
--- /dev/null
+++ b/config/feature_flags/ops/ai_duo_chat_switch.yml
@@ -0,0 +1,9 @@
+---
+name: ai_duo_chat_switch
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/434802
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140352
+rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17301
+milestone: '16.8'
+group: group::ai framework
+type: ops
+default_enabled: true
diff --git a/config/feature_flags/ops/ci_unlock_pipelines_extra_low.yml b/config/feature_flags/ops/ci_unlock_pipelines_extra_low.yml
new file mode 100644
index 00000000000..9a02adccac3
--- /dev/null
+++ b/config/feature_flags/ops/ci_unlock_pipelines_extra_low.yml
@@ -0,0 +1,9 @@
+---
+name: ci_unlock_pipelines_extra_low
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435051
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140318
+rollout_issue_url:
+milestone: '16.7'
+group: group::pipeline security
+type: ops
+default_enabled: false
diff --git a/config/feature_flags/development/telesign_intelligence.yml b/config/feature_flags/ops/telesign_intelligence.yml
index 5d824f4025b..de87f48e2b6 100644
--- a/config/feature_flags/development/telesign_intelligence.yml
+++ b/config/feature_flags/ops/telesign_intelligence.yml
@@ -3,6 +3,6 @@ name: telesign_intelligence
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137739
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432757
milestone: '16.7'
-type: development
+type: ops
group: group::anti-abuse
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/undefined/gitaly_pack_objects_hook_with_sidechannel.yml b/config/feature_flags/undefined/gitaly_pack_objects_hook_with_sidechannel.yml
index a09daecbfa5..1ef7a93f205 100644
--- a/config/feature_flags/undefined/gitaly_pack_objects_hook_with_sidechannel.yml
+++ b/config/feature_flags/undefined/gitaly_pack_objects_hook_with_sidechannel.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitaly/-/merge_requests/3758
rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/1187
milestone: '14.3'
type: undefined
-group: 'team::Scalability'
+group: group::scalability
default_enabled: false
diff --git a/config/feature_flags/wip/disable_ci_partition_pruning.yml b/config/feature_flags/wip/disable_ci_partition_pruning.yml
new file mode 100644
index 00000000000..91e07c50ba2
--- /dev/null
+++ b/config/feature_flags/wip/disable_ci_partition_pruning.yml
@@ -0,0 +1,9 @@
+---
+name: disable_ci_partition_pruning
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435737
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140355
+rollout_issue_url:
+milestone: '16.8'
+group: group::pipeline execution
+type: wip
+default_enabled: false
diff --git a/config/feature_flags/wip/epic_creation_with_synced_work_item.yml b/config/feature_flags/wip/epic_creation_with_synced_work_item.yml
new file mode 100644
index 00000000000..2083ca694d1
--- /dev/null
+++ b/config/feature_flags/wip/epic_creation_with_synced_work_item.yml
@@ -0,0 +1,9 @@
+---
+name: epic_creation_with_synced_work_item
+feature_issue_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140232
+rollout_issue_url:
+milestone: '16.9'
+group: group::product planning
+type: wip
+default_enabled: false
diff --git a/config/feature_flags/wip/vulnerability_owasp_top_10_group.yml b/config/feature_flags/wip/vulnerability_owasp_top_10_group.yml
new file mode 100644
index 00000000000..75234433e44
--- /dev/null
+++ b/config/feature_flags/wip/vulnerability_owasp_top_10_group.yml
@@ -0,0 +1,9 @@
+---
+name: vulnerability_owasp_top_10_group
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432618
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140205
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437253
+milestone: '16.8'
+group: group::threat insights
+type: wip
+default_enabled: false
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index 14fb285f4f8..e4fd20f9454 100644
--- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example
@@ -159,6 +159,13 @@ production: &base
# Number of seconds to wait for HTTP response after sending webhook HTTP POST request (default: 10)
# webhook_timeout: 10
+ ## HTTP client settings
+ http_client:
+ # Filename of HTTP client pem
+ # tls_client_cert_file:
+ # PEM password (optional)
+ # tls_client_cert_password:
+
### GraphQL Settings
# Tells the rails application how long it has to complete a GraphQL request.
# We suggest this value to be higher than the database timeout value
diff --git a/config/gitlab_loose_foreign_keys.yml b/config/gitlab_loose_foreign_keys.yml
index 5fadf699bf5..644eab176bf 100644
--- a/config/gitlab_loose_foreign_keys.yml
+++ b/config/gitlab_loose_foreign_keys.yml
@@ -27,13 +27,6 @@ ci_daily_build_group_report_results:
- table: projects
column: project_id
on_delete: async_delete
-ci_editor_ai_conversation_messages:
- - table: projects
- column: project_id
- on_delete: async_delete
- - table: users
- column: user_id
- on_delete: async_delete
ci_freeze_periods:
- table: projects
column: project_id
@@ -263,6 +256,13 @@ notification_settings:
- table: users
column: user_id
on_delete: async_delete
+organization_users:
+ - table: organizations
+ column: organization_id
+ on_delete: async_delete
+ - table: users
+ column: user_id
+ on_delete: async_delete
p_ci_builds:
- table: users
column: user_id
diff --git a/config/gitleaks.toml b/config/gitleaks.toml
index a492b38fdf9..d0d140c8414 100644
--- a/config/gitleaks.toml
+++ b/config/gitleaks.toml
@@ -13,6 +13,9 @@ path = "/gitleaks.toml"
# spec/frontend/lib/utils/secret_detection_spec.js
"glpat-cgyKc1k_AsnEpmP-5fRL",
"gldt-cgyKc1k_AsnEpmP-5fRL",
+ "glsoat-cgyKc1k_AsnEpmP-5fRL",
+ "glcbt-FFFF_cgyKc1k_AsnEpmP-5fRL",
+ "glcbt-1_cgyKc1k_AsnEpmP-5fRL",
# spec/frontend/lib/utils/secret_detection_spec.js
"GlPat-abcdefghijklmnopqrstuvwxyz",
# doc/development/sec/token_revocation_api.md
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index ade5465f8ea..4b279db68b8 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -634,6 +634,9 @@ Settings.cron_jobs['schedule_merge_request_cleanup_refs_worker']['job_class'] =
Settings.cron_jobs['manage_evidence_worker'] ||= {}
Settings.cron_jobs['manage_evidence_worker']['cron'] ||= '0 * * * *'
Settings.cron_jobs['manage_evidence_worker']['job_class'] = 'Releases::ManageEvidenceWorker'
+Settings.cron_jobs['publish_release_worker'] ||= {}
+Settings.cron_jobs['publish_release_worker']['cron'] ||= '20,50 * * * *'
+Settings.cron_jobs['publish_release_worker']['job_class'] = 'Releases::PublishEventWorker'
Settings.cron_jobs['user_status_cleanup_batch_worker'] ||= {}
Settings.cron_jobs['user_status_cleanup_batch_worker']['cron'] ||= '* * * * *'
Settings.cron_jobs['user_status_cleanup_batch_worker']['job_class'] = 'UserStatusCleanup::BatchWorker'
@@ -897,6 +900,9 @@ Gitlab.ee do
Settings.cron_jobs['click_house_events_sync_worker'] ||= {}
Settings.cron_jobs['click_house_events_sync_worker']['cron'] ||= "*/3 * * * *"
Settings.cron_jobs['click_house_events_sync_worker']['job_class'] = 'ClickHouse::EventsSyncWorker'
+ Settings.cron_jobs['click_house_event_authors_consistency_cron_worker'] ||= {}
+ Settings.cron_jobs['click_house_event_authors_consistency_cron_worker']['cron'] ||= "*/30 * * * *"
+ Settings.cron_jobs['click_house_event_authors_consistency_cron_worker']['job_class'] = 'ClickHouse::EventAuthorsConsistencyCronWorker'
Settings.cron_jobs['vertex_ai_refresh_access_token_worker'] ||= {}
Settings.cron_jobs['vertex_ai_refresh_access_token_worker']['cron'] ||= '*/50 * * * *'
Settings.cron_jobs['vertex_ai_refresh_access_token_worker']['job_class'] = 'Llm::VertexAiAccessTokenRefreshWorker'
diff --git a/config/initializers/7_redis.rb b/config/initializers/7_redis.rb
index 040257535f8..5d5bb209774 100644
--- a/config/initializers/7_redis.rb
+++ b/config/initializers/7_redis.rb
@@ -29,6 +29,9 @@ Redis::Cluster.prepend(Gitlab::Patch::RedisCluster)
ConnectionPool.prepend(Gitlab::Instrumentation::ConnectionPool)
+# this only instruments `RedisClient` used in `Sidekiq.redis`
+RedisClient.register(Gitlab::Instrumentation::RedisClientMiddleware)
+
if Gitlab::Redis::Workhorse.params[:cluster].present?
raise "Do not configure workhorse with a Redis Cluster as pub/sub commands are not cluster-compatible."
end
diff --git a/config/initializers/fog_google_list_objects_match_glob_support.rb b/config/initializers/fog_google_list_objects_match_glob_support.rb
new file mode 100644
index 00000000000..37eacf33743
--- /dev/null
+++ b/config/initializers/fog_google_list_objects_match_glob_support.rb
@@ -0,0 +1,52 @@
+# frozen_string_literal: true
+
+# We force require this to trigger the autoload and so that our monkeypatch will
+# be applied in correct order, which is only after the class is loaded.
+require 'fog/storage/google_json/requests/list_objects'
+
+#
+# Monkey patching the list_objects to support match_glob parameter
+# See https://github.com/fog/fog-google/issues/614
+#
+module Fog
+ module Storage
+ class GoogleJSON
+ class Real
+ # This an identical copy of
+ # https://github.com/fog/fog-google/blob/v1.19.0/lib/fog/storage/google_json/requests/list_objects.rb
+ # with just match_glob added to the allowed_opts
+ def list_objects(bucket, options = {})
+ # rubocop: disable Style/PercentLiteralDelimiters -- this is an exact copy of the original method, just added match_glob here.
+ allowed_opts = %i(
+ delimiter
+ match_glob
+ max_results
+ page_token
+ prefix
+ projection
+ versions
+ )
+ # rubocop: enable Style/PercentLiteralDelimiters
+
+ # rubocop: disable Gitlab/ModuleWithInstanceVariables -- this is an exact copy of the original method
+ @storage_json.list_objects(
+ bucket,
+ **options.select { |k, _| allowed_opts.include? k }
+ )
+ # rubocop: enable Gitlab/ModuleWithInstanceVariables
+ end
+ end
+ end
+ end
+end
+
+# We just need to add the match_glob attribute support here
+module Fog
+ module Storage
+ class GoogleJSON
+ class Files < Fog::Collection
+ attribute :match_glob, aliases: "matchGlob"
+ end
+ end
+ end
+end
diff --git a/config/initializers/gitlab_http.rb b/config/initializers/gitlab_http.rb
index 8a84313a7fb..cd891f29584 100644
--- a/config/initializers/gitlab_http.rb
+++ b/config/initializers/gitlab_http.rb
@@ -24,3 +24,11 @@ Gitlab::HTTP_V2.configure do |config|
Gitlab::SilentMode.log_info(message: message, outbound_http_request_method: http_method)
end
end
+
+if Gitlab.config.gitlab['http_client']
+ pem = File.read(Gitlab.config.gitlab['http_client']['tls_client_cert_file'])
+ password = Gitlab.config.gitlab['http_client']['tls_client_cert_password']
+
+ Gitlab::HTTP_V2::Client.pem(pem, password)
+ Gitlab::LegacyHTTP.pem(pem, password)
+end
diff --git a/config/initializers/macos.rb b/config/initializers/macos.rb
index 860167e12cd..7ec022add18 100644
--- a/config/initializers/macos.rb
+++ b/config/initializers/macos.rb
@@ -28,4 +28,12 @@ if RUBY_PLATFORM.include?('darwin')
time_zone_name = CFTimeZone.CFTimeZoneGetName(default_time_zone)
CFTimeZone.CFRelease(time_zone_name)
CFTimeZone.CFRelease(default_time_zone)
+
+ # With curl v8.2.0, the thread unsafe macOS API call to
+ # SCDynamicStoreCopyProxies has been moved to the global init function
+ # (https://github.com/curl/curl/issues/11252). The Elasticsearch
+ # gem uses Typhoeus, which uses Ethon to wrap libcurl.
+ # Init curl to ensure Spring works
+ # (https://github.com/elastic/elasticsearch-ruby/issues/2244).
+ Ethon::Curl.init
end
diff --git a/config/initializers/rspec_profiling.rb b/config/initializers/rspec_profiling.rb
index 5830a3d5af2..c5285dc389b 100644
--- a/config/initializers/rspec_profiling.rb
+++ b/config/initializers/rspec_profiling.rb
@@ -2,6 +2,8 @@
return unless Rails.env.test?
+require 'gitlab_edition'
+
module RspecProfilingExt
module Collectors
class CSVWithTimestamps < ::RspecProfiling::Collectors::CSV
@@ -30,7 +32,7 @@ module RspecProfilingExt
module Git
def branch
if ENV['CI_COMMIT_REF_NAME']
- "#{defined?(Gitlab::License) ? 'ee' : 'ce'}:#{ENV['CI_COMMIT_REF_NAME']}"
+ "#{GitlabEdition.ee? ? 'ee' : 'ce'}:#{ENV['CI_COMMIT_REF_NAME']}"
else
super&.chomp
end
diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb
index 733ad94240a..7f410d7bf7b 100644
--- a/config/initializers/session_store.rb
+++ b/config/initializers/session_store.rb
@@ -31,12 +31,16 @@ cookie_key = if Rails.env.development?
store = Gitlab::Redis::Sessions.store(namespace: Gitlab::Redis::Sessions::SESSION_NAMESPACE)
-Gitlab::Application.config.session_store(
- :redis_store, # Using the cookie_store would enable session replay attacks.
- redis_store: store,
- key: cookie_key,
- secure: Gitlab.config.gitlab.https,
- httponly: true,
- expires_in: Settings.gitlab['session_expire_delay'] * 60,
- path: Rails.application.config.relative_url_root.presence || '/'
-)
+Rails.application.configure do
+ config.session_store(
+ :redis_store, # Using the cookie_store would enable session replay attacks.
+ redis_store: store,
+ key: cookie_key,
+ secure: Gitlab.config.gitlab.https,
+ httponly: true,
+ expires_in: Settings.gitlab['session_expire_delay'] * 60,
+ path: Rails.application.config.relative_url_root.presence || '/'
+ )
+
+ config.middleware.insert_after ActionDispatch::Session::RedisStore, Gitlab::Middleware::UnauthenticatedSessionExpiry
+end
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index 8df12671f26..9b7233dbd14 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -28,26 +28,41 @@ def enable_semi_reliable_fetch_mode?
end
# Custom Queues configuration
-queues_config_hash = Gitlab::Redis::Queues.params
+queues_config_hash = Gitlab::Redis::Queues.redis_client_params
enable_json_logs = Gitlab.config.sidekiq.log_format != 'text'
+# Sidekiq's `strict_args!` raises an exception by default in 7.0
+# https://github.com/sidekiq/sidekiq/blob/31bceff64e10d501323bc06ac0552652a47c082e/docs/7.0-Upgrade.md?plain=1#L59
+Sidekiq.strict_args!(false)
+
Sidekiq.configure_server do |config|
config[:strict] = false
config[:queues] = Gitlab::SidekiqConfig.expand_queues(config[:queues])
if enable_json_logs
- config.log_formatter = Gitlab::SidekiqLogging::JSONFormatter.new
+ config.logger.formatter = Gitlab::SidekiqLogging::JSONFormatter.new
config[:job_logger] = Gitlab::SidekiqLogging::StructuredLogger
# Remove the default-provided handler. The exception is logged inside
# Gitlab::SidekiqLogging::StructuredLogger
- config.error_handlers.delete(Sidekiq::DEFAULT_ERROR_HANDLER)
+ config.error_handlers.delete(Sidekiq::Config::ERROR_HANDLER)
end
Sidekiq.logger.info "Listening on queues #{config[:queues].uniq.sort}"
- config.redis = queues_config_hash
+ # In Sidekiq 6.x, connection pools have a size of concurrency+5.
+ # ref: https://github.com/sidekiq/sidekiq/blob/v6.5.10/lib/sidekiq/redis_connection.rb#L93
+ #
+ # In Sidekiq 7.x, capsule connection pools have a size equal to its concurrency. Internal
+ # housekeeping pool has a size of 10.
+ # ref: https://github.com/sidekiq/sidekiq/blob/v7.1.6/lib/sidekiq/capsule.rb#L94
+ # ref: https://github.com/sidekiq/sidekiq/blob/v7.1.6/lib/sidekiq/config.rb#L133
+ #
+ # We restore the concurrency+5 in Sidekiq 7.x to ensure that we do not experience resource bottlenecks with Redis
+ # connections. The connections are created lazily so slightly over-provisioning a connection pool is not an issue.
+ # This also increases the internal redis pool from 10 to concurrency+5.
+ config.redis = queues_config_hash.merge({ size: config.concurrency + 5 })
config.server_middleware(&Gitlab::SidekiqMiddleware.server_configurator(
metrics: Settings.monitoring.sidekiq_exporter,
@@ -107,8 +122,8 @@ Sidekiq.configure_client do |config|
# We only need to do this for other clients. If Sidekiq-server is the
# client scheduling jobs, we have access to the regular sidekiq logger that
# writes to STDOUT
- Sidekiq.logger = Gitlab::SidekiqLogging::ClientLogger.build
- Sidekiq.logger.formatter = Gitlab::SidekiqLogging::JSONFormatter.new if enable_json_logs
+ config.logger = Gitlab::SidekiqLogging::ClientLogger.build
+ config.logger.formatter = Gitlab::SidekiqLogging::JSONFormatter.new if enable_json_logs
config.client_middleware(&Gitlab::SidekiqMiddleware.client_configurator)
end
diff --git a/config/initializers/sidekiq_cluster.rb b/config/initializers/sidekiq_cluster.rb
index 5851e3bd838..4773152d912 100644
--- a/config/initializers/sidekiq_cluster.rb
+++ b/config/initializers/sidekiq_cluster.rb
@@ -19,7 +19,7 @@ if ENV['ENABLE_SIDEKIQ_CLUSTER']
# Allow sidekiq to cleanly terminate and push any running jobs back
# into the queue. We use the configured timeout and add a small
# grace period
- sleep(Sidekiq[:timeout] + 5)
+ sleep(Sidekiq.default_configuration[:timeout] + 5)
# Signaling the Sidekiq Pgroup as KILL is not forwarded to
# a possible child process. In Sidekiq Cluster, all child Sidekiq
diff --git a/config/initializers_before_autoloader/004_zeitwerk.rb b/config/initializers_before_autoloader/004_zeitwerk.rb
index 689da6e390c..2d54ab87dca 100644
--- a/config/initializers_before_autoloader/004_zeitwerk.rb
+++ b/config/initializers_before_autoloader/004_zeitwerk.rb
@@ -35,7 +35,6 @@ Rails.autoloaders.each do |autoloader|
'html_parser' => 'HTMLParser',
'html_gitlab' => 'HTMLGitlab',
'http' => 'HTTP',
- 'legacy_http' => 'LegacyHTTP',
'http_connection_adapter' => 'HTTPConnectionAdapter',
'http_clone_enabled_check' => 'HTTPCloneEnabledCheck',
'hangouts_chat_http_override' => 'HangoutsChatHTTPOverride',
diff --git a/config/locales/doorkeeper.en.yml b/config/locales/doorkeeper.en.yml
index dbbbbf86994..85a4a84892d 100644
--- a/config/locales/doorkeeper.en.yml
+++ b/config/locales/doorkeeper.en.yml
@@ -79,6 +79,7 @@ en:
create_runner: Grants create access to the runners
k8s_proxy: Grants permission to perform Kubernetes API calls using the agent for Kubernetes.
ai_features: Access to API endpoints needed for GitLab Duo features
+ read_service_ping: Grant access to download Service Ping payload via API when authenticated as an admin user
scope_desc:
api:
Grants complete read/write access to the API, including all groups and projects, the container registry, the dependency proxy, and the package registry.
@@ -114,6 +115,8 @@ en:
Grants create access to the runners.
k8s_proxy:
Grants permission to perform Kubernetes API calls using the agent for Kubernetes.
+ read_service_ping:
+ Grant access to download Service Ping payload via API when authenticated as an admin user
group_access_token_scope_desc:
api:
Grants complete read and write access to the scoped group and related project API, including the container registry, the dependency proxy, and the package registry.
diff --git a/config/metrics/counts_28d/20220222215951_xmau_plan.yml b/config/metrics/counts_28d/20220222215951_xmau_plan.yml
index ed584ae20a2..07de21168a8 100644
--- a/config/metrics/counts_28d/20220222215951_xmau_plan.yml
+++ b/config/metrics/counts_28d/20220222215951_xmau_plan.yml
@@ -23,6 +23,7 @@ options:
- users_updating_work_item_iteration
- users_updating_weight_estimate
- users_updating_work_item_milestone
+ - users_updating_work_item_todo
data_category: optional
distribution:
- ce
diff --git a/config/metrics/counts_28d/20220222215952_xmau_project_management.yml b/config/metrics/counts_28d/20220222215952_xmau_project_management.yml
index 574d06534d7..9a9efa99c37 100644
--- a/config/metrics/counts_28d/20220222215952_xmau_project_management.yml
+++ b/config/metrics/counts_28d/20220222215952_xmau_project_management.yml
@@ -23,6 +23,7 @@ options:
- users_updating_work_item_iteration
- users_updating_weight_estimate
- users_updating_work_item_milestone
+ - users_updating_work_item_todo
data_category: optional
distribution:
- ce
diff --git a/config/metrics/counts_28d/20220222215955_users_work_items.yml b/config/metrics/counts_28d/20220222215955_users_work_items.yml
index 90eefcf6ed8..ac7f7b48e5c 100644
--- a/config/metrics/counts_28d/20220222215955_users_work_items.yml
+++ b/config/metrics/counts_28d/20220222215955_users_work_items.yml
@@ -23,6 +23,7 @@ options:
- users_updating_work_item_iteration
- users_updating_weight_estimate
- users_updating_work_item_milestone
+ - users_updating_work_item_todo
data_category: optional
distribution:
- ce
diff --git a/config/metrics/counts_28d/20220729001651_agent_users_using_ci_tunnel_monthly.yml b/config/metrics/counts_28d/20220729001651_agent_users_using_ci_tunnel_monthly.yml
index a16dbc17f05..1938323ffda 100644
--- a/config/metrics/counts_28d/20220729001651_agent_users_using_ci_tunnel_monthly.yml
+++ b/config/metrics/counts_28d/20220729001651_agent_users_using_ci_tunnel_monthly.yml
@@ -10,12 +10,14 @@ status: active
milestone: "15.3"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61685
time_frame: 28d
-data_source: redis_hll
+data_source: internal_events
data_category: optional
-instrumentation_class: RedisHLLMetric
options:
events:
- agent_users_using_ci_tunnel
+events:
+ - name: agent_users_using_ci_tunnel
+ unique: user.id
performance_indicator_type: []
distribution:
- ce
diff --git a/config/metrics/counts_28d/20221213182900_i_code_review_create_mr_monthly.yml b/config/metrics/counts_28d/20221213182900_i_code_review_create_mr_monthly.yml
index 740183d7286..860d63f0a6b 100644
--- a/config/metrics/counts_28d/20221213182900_i_code_review_create_mr_monthly.yml
+++ b/config/metrics/counts_28d/20221213182900_i_code_review_create_mr_monthly.yml
@@ -1,4 +1,5 @@
---
+# This metric used to be implemented as a RedisHLL counter. Therefor, the redis_hll_counters prefix.
key_path: redis_hll_counters.code_review.i_code_review_create_mr_monthly
description: Count of unique merge requests created per month
product_section: dev
@@ -9,14 +10,15 @@ status: active
milestone: "15.7"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106869
time_frame: 28d
-data_source: redis_hll
+data_source: internal_events
data_category: operational
-instrumentation_class: RedisHLLMetric
performance_indicator_type:
- customer_health_score
options:
events:
- - i_code_review_create_mr
+ - i_code_review_user_create_mr
+events:
+ - name: i_code_review_user_create_mr
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20231219135715_users_updating_work_item_todo_monthly.yml b/config/metrics/counts_28d/20231219135715_users_updating_work_item_todo_monthly.yml
new file mode 100644
index 00000000000..40b8fadf5a5
--- /dev/null
+++ b/config/metrics/counts_28d/20231219135715_users_updating_work_item_todo_monthly.yml
@@ -0,0 +1,24 @@
+---
+key_path: redis_hll_counters.work_items.users_updating_work_item_todo_monthly
+description: Unique users marking a work item as todo.
+product_section: dev
+product_stage: plan
+product_group: project_management
+value_type: number
+status: active
+milestone: "16.8"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140058
+time_frame: 28d
+data_source: redis_hll
+data_category: optional
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - users_updating_work_item_todo
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/count_distinct_user_id_from_i_quickactions_remove_email_multiple_28d.yml b/config/metrics/counts_28d/count_distinct_user_id_from_i_quickactions_remove_email_multiple_28d.yml
new file mode 100644
index 00000000000..fdccb143c14
--- /dev/null
+++ b/config/metrics/counts_28d/count_distinct_user_id_from_i_quickactions_remove_email_multiple_28d.yml
@@ -0,0 +1,27 @@
+---
+key_path: count_distinct_user_id_from_i_quickactions_remove_email_multiple_28d
+description: Unique users using the /remove_email quick action to remove multiple email participants from an issue within 28 days
+product_section: seg
+product_stage: service
+product_group: respond
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138178
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - i_quickactions_remove_email_multiple
+events:
+ - name: i_quickactions_remove_email_multiple
+ unique: user.id
diff --git a/config/metrics/counts_28d/count_distinct_user_id_from_i_quickactions_remove_email_single_28d.yml b/config/metrics/counts_28d/count_distinct_user_id_from_i_quickactions_remove_email_single_28d.yml
new file mode 100644
index 00000000000..2be6ace6b38
--- /dev/null
+++ b/config/metrics/counts_28d/count_distinct_user_id_from_i_quickactions_remove_email_single_28d.yml
@@ -0,0 +1,27 @@
+---
+key_path: count_distinct_user_id_from_i_quickactions_remove_email_single_28d
+description: Unique users using the /remove_email quick action to remove a single email participant from an issue within 28 days
+product_section: seg
+product_stage: service
+product_group: respond
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138178
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - i_quickactions_remove_email_single
+events:
+ - name: i_quickactions_remove_email_single
+ unique: user.id
diff --git a/config/metrics/counts_7d/20220222215851_xmau_plan.yml b/config/metrics/counts_7d/20220222215851_xmau_plan.yml
index e9c5a177380..733bcbd9fe2 100644
--- a/config/metrics/counts_7d/20220222215851_xmau_plan.yml
+++ b/config/metrics/counts_7d/20220222215851_xmau_plan.yml
@@ -23,6 +23,7 @@ options:
- users_updating_work_item_iteration
- users_updating_weight_estimate
- users_updating_work_item_milestone
+ - users_updating_work_item_todo
data_category: optional
distribution:
- ce
diff --git a/config/metrics/counts_7d/20220222215852_xmau_project_management.yml b/config/metrics/counts_7d/20220222215852_xmau_project_management.yml
index 2d35f4bf65f..7d3d6068799 100644
--- a/config/metrics/counts_7d/20220222215852_xmau_project_management.yml
+++ b/config/metrics/counts_7d/20220222215852_xmau_project_management.yml
@@ -23,6 +23,7 @@ options:
- users_updating_work_item_iteration
- users_updating_weight_estimate
- users_updating_work_item_milestone
+ - users_updating_work_item_todo
data_category: optional
distribution:
- ce
diff --git a/config/metrics/counts_7d/20220222215855_users_work_items.yml b/config/metrics/counts_7d/20220222215855_users_work_items.yml
index 6ff0ae942d4..eca52ec63ca 100644
--- a/config/metrics/counts_7d/20220222215855_users_work_items.yml
+++ b/config/metrics/counts_7d/20220222215855_users_work_items.yml
@@ -23,6 +23,7 @@ options:
- users_updating_work_item_iteration
- users_updating_weight_estimate
- users_updating_work_item_milestone
+ - users_updating_work_item_todo
data_category: optional
distribution:
- ce
diff --git a/config/metrics/counts_7d/20220729001644_agent_users_using_ci_tunnel_weekly.yml b/config/metrics/counts_7d/20220729001644_agent_users_using_ci_tunnel_weekly.yml
index efb97bc1b95..3c309eb1bb5 100644
--- a/config/metrics/counts_7d/20220729001644_agent_users_using_ci_tunnel_weekly.yml
+++ b/config/metrics/counts_7d/20220729001644_agent_users_using_ci_tunnel_weekly.yml
@@ -9,13 +9,15 @@ status: active
milestone: "15.3"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61685
time_frame: 7d
-data_source: redis_hll
+data_source: internal_events
data_category: optional
-instrumentation_class: RedisHLLMetric
performance_indicator_type: []
options:
events:
- agent_users_using_ci_tunnel
+events:
+ - name: agent_users_using_ci_tunnel
+ unique: user.id
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20221213183300_i_code_review_create_mr_weekly.yml b/config/metrics/counts_7d/20221213183300_i_code_review_create_mr_weekly.yml
index 99dd2788825..b0f4e9b0dca 100644
--- a/config/metrics/counts_7d/20221213183300_i_code_review_create_mr_weekly.yml
+++ b/config/metrics/counts_7d/20221213183300_i_code_review_create_mr_weekly.yml
@@ -9,13 +9,14 @@ status: active
milestone: "15.7"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106869
time_frame: 7d
-data_source: redis_hll
+data_source: internal_events
data_category: operational
-instrumentation_class: RedisHLLMetric
performance_indicator_type: []
options:
events:
- - i_code_review_create_mr
+ - i_code_review_user_create_mr
+events:
+ - name: i_code_review_user_create_mr
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20231219135920_users_updating_work_item_todo_weekly.yml b/config/metrics/counts_7d/20231219135920_users_updating_work_item_todo_weekly.yml
new file mode 100644
index 00000000000..e1034fb47eb
--- /dev/null
+++ b/config/metrics/counts_7d/20231219135920_users_updating_work_item_todo_weekly.yml
@@ -0,0 +1,24 @@
+---
+key_path: redis_hll_counters.work_items.users_updating_work_item_todo_weekly
+description: Unique users marking a work item as todo.
+product_section: dev
+product_stage: plan
+product_group: project_management
+value_type: number
+status: active
+milestone: "16.8"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140058
+time_frame: 7d
+data_source: redis_hll
+data_category: optional
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - users_updating_work_item_todo
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20231205140200_groups_diffblue_cover_active.yml b/config/metrics/counts_all/20231205140200_groups_diffblue_cover_active.yml
new file mode 100644
index 00000000000..90662895b46
--- /dev/null
+++ b/config/metrics/counts_all/20231205140200_groups_diffblue_cover_active.yml
@@ -0,0 +1,20 @@
+---
+data_category: optional
+key_path: counts.groups_diffblue_cover_active
+description: Count of groups with active integrations for Diffblue Cover
+product_section: dev
+product_stage: manage
+product_group: integrations
+value_type: number
+status: active
+time_frame: all
+data_source: database
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+performance_indicator_type: []
+milestone: "16.8"
diff --git a/config/metrics/counts_all/20231205140200_groups_inheriting_diffblue_cover_active.yml b/config/metrics/counts_all/20231205140200_groups_inheriting_diffblue_cover_active.yml
new file mode 100644
index 00000000000..c8d5ceb8393
--- /dev/null
+++ b/config/metrics/counts_all/20231205140200_groups_inheriting_diffblue_cover_active.yml
@@ -0,0 +1,20 @@
+---
+data_category: optional
+key_path: counts.groups_inheriting_diffblue_cover_active
+description: Count of active groups inheriting integrations for Diffblue Cover
+product_section: dev
+product_stage: manage
+product_group: integrations
+value_type: number
+status: active
+time_frame: all
+data_source: database
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+performance_indicator_type: []
+milestone: "16.8"
diff --git a/config/metrics/counts_all/20231205140200_instances_diffblue_cover_active.yml b/config/metrics/counts_all/20231205140200_instances_diffblue_cover_active.yml
new file mode 100644
index 00000000000..a75573277b6
--- /dev/null
+++ b/config/metrics/counts_all/20231205140200_instances_diffblue_cover_active.yml
@@ -0,0 +1,20 @@
+---
+data_category: optional
+key_path: counts.instances_diffblue_cover_active
+description: Count of active instance-level integrations for Diffblue Cover
+product_section: dev
+product_stage: manage
+product_group: integrations
+value_type: number
+status: active
+time_frame: all
+data_source: database
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+performance_indicator_type: []
+milestone: "16.8"
diff --git a/config/metrics/counts_all/20231205140200_projects_diffblue_cover_active.yml b/config/metrics/counts_all/20231205140200_projects_diffblue_cover_active.yml
new file mode 100644
index 00000000000..b421aef816b
--- /dev/null
+++ b/config/metrics/counts_all/20231205140200_projects_diffblue_cover_active.yml
@@ -0,0 +1,20 @@
+---
+data_category: optional
+key_path: counts.projects_diffblue_cover_active
+description: Count of projects with active integrations for Diffblue Cover
+product_section: dev
+product_stage: manage
+product_group: integrations
+value_type: number
+status: active
+time_frame: all
+data_source: database
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+performance_indicator_type: []
+milestone: "16.8"
diff --git a/config/metrics/counts_all/20231205140200_projects_inheriting_diffblue_cover_active.yml b/config/metrics/counts_all/20231205140200_projects_inheriting_diffblue_cover_active.yml
new file mode 100644
index 00000000000..84e155bc8bc
--- /dev/null
+++ b/config/metrics/counts_all/20231205140200_projects_inheriting_diffblue_cover_active.yml
@@ -0,0 +1,20 @@
+---
+data_category: optional
+key_path: counts.projects_inheriting_diffblue_cover_active
+description: Count of active projects inheriting integrations for Diffblue Cover
+product_section: dev
+product_stage: manage
+product_group: integrations
+value_type: number
+status: active
+time_frame: all
+data_source: database
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+performance_indicator_type: []
+milestone: "16.8"
diff --git a/config/routes/merge_requests.rb b/config/routes/merge_requests.rb
index adfc9bcd19b..a5d89e74980 100644
--- a/config/routes/merge_requests.rb
+++ b/config/routes/merge_requests.rb
@@ -41,6 +41,7 @@ resources :merge_requests, concerns: :awardable, except: [:new, :create, :show],
end
get :diff_for_path, controller: 'merge_requests/diffs'
+ get 'diff_by_file_hash/:file_hash', to: 'merge_requests/diffs#diff_by_file_hash', as: :diff_by_file_hash
scope controller: 'merge_requests/conflicts' do
get :conflicts, action: :show
diff --git a/config/routes/organizations.rb b/config/routes/organizations.rb
index 62c791cdf69..dbc9f2ce226 100644
--- a/config/routes/organizations.rb
+++ b/config/routes/organizations.rb
@@ -6,6 +6,10 @@ resources(
param: :organization_path,
module: :organizations
) do
+ collection do
+ post :preview_markdown
+ end
+
member do
get :groups_and_projects
get :users
diff --git a/config/routes/project.rb b/config/routes/project.rb
index d0444a91fd5..6c77bf64755 100644
--- a/config/routes/project.rb
+++ b/config/routes/project.rb
@@ -471,7 +471,7 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
namespace :ml do
resources :experiments, only: [:index, :show, :destroy], controller: 'experiments', param: :iid
resources :candidates, only: [:show, :destroy], controller: 'candidates', param: :iid
- resources :models, only: [:index, :show, :destroy], controller: 'models', param: :model_id do
+ resources :models, only: [:index, :show, :destroy, :new], controller: 'models', param: :model_id do
resources :versions, only: [:show], controller: 'model_versions', param: :model_version_id
end
end
diff --git a/config/routes/uploads.rb b/config/routes/uploads.rb
index f45139b96b8..1ad973c76d0 100644
--- a/config/routes/uploads.rb
+++ b/config/routes/uploads.rb
@@ -4,7 +4,10 @@ scope path: :uploads do
# Note attachments and User/Group/Project/Topic avatars
get "-/system/:model/:mounted_as/:id/:filename",
to: "uploads#show",
- constraints: { model: %r{note|user|group|project|projects\/topic|achievements\/achievement}, mounted_as: /avatar|attachment/, filename: %r{[^/]+} }
+ constraints: {
+ model: %r{note|user|group|project|projects\/topic|achievements\/achievement|organizations\/organization_detail},
+ mounted_as: /avatar|attachment/, filename: %r{[^/]+}
+ }
# show uploads for models, snippets (notes) available for now
get '-/system/:model/:id/:secret/:filename',
diff --git a/config/sidekiq_queues.yml b/config/sidekiq_queues.yml
index 65320c3c8ae..c67e69ab692 100644
--- a/config/sidekiq_queues.yml
+++ b/config/sidekiq_queues.yml
@@ -167,8 +167,6 @@
- 1
- - ci_job_artifacts_expire_project_build_artifacts
- 1
-- - ci_llm_generate_config
- - 1
- - ci_low_urgency_cancel_redundant_pipelines
- 1
- - ci_parse_secure_file_metadata
@@ -197,6 +195,8 @@
- 1
- - compliance_management_standards_gitlab_at_least_two_approvals
- 1
+- - compliance_management_standards_gitlab_at_least_two_approvals_group
+ - 1
- - compliance_management_standards_gitlab_base
- 1
- - compliance_management_standards_gitlab_group_base
@@ -463,8 +463,6 @@
- 1
- - merge_requests_handle_assignees_change
- 1
-- - merge_requests_llm_summarize_merge_request
- - 1
- - merge_requests_mergeability_check_batch
- 1
- - merge_requests_notify_approvers
@@ -685,8 +683,12 @@
- 1
- - security_scan_execution_policies_rule_schedule
- 1
+- - security_scan_result_policies_add_approvers_to_rules
+ - 1
- - security_scan_result_policies_sync_any_merge_request_approval_rules
- 1
+- - security_scan_result_policies_sync_merge_request_approvals
+ - 1
- - security_scan_result_policies_sync_project
- 1
- - security_scans
diff --git a/config/webpack.config.js b/config/webpack.config.js
index 038595df1bd..d7319399d4f 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -385,7 +385,7 @@ module.exports = {
include: /node_modules/,
loader: 'babel-loader',
options: {
- plugins: ['@babel/plugin-proposal-logical-assignment-operators'],
+ plugins: ['@babel/plugin-transform-logical-assignment-operators'],
...defaultJsOptions,
},
},
@@ -416,7 +416,7 @@ module.exports = {
) || /node_modules\/yaml/.test(modulePath),
loader: 'babel-loader',
options: {
- plugins: ['@babel/plugin-proposal-numeric-separator'],
+ plugins: ['@babel/plugin-transform-numeric-separator'],
...defaultJsOptions,
},
},
diff --git a/danger/bulk_database_actions/Dangerfile b/danger/bulk_database_actions/Dangerfile
index a8cc7bea000..5b28ceca029 100644
--- a/danger/bulk_database_actions/Dangerfile
+++ b/danger/bulk_database_actions/Dangerfile
@@ -1,3 +1,8 @@
# frozen_string_literal: true
-bulk_database_actions.add_comment_for_bulk_database_action_method_usage
+helper.all_changed_files.each do |filename|
+ next unless filename.end_with?('.rb')
+ next if filename.start_with?('spec/', 'ee/spec/', 'jh/spec/')
+
+ bulk_database_actions.add_suggestions_for(filename)
+end
diff --git a/danger/plugins/bulk_database_actions.rb b/danger/plugins/bulk_database_actions.rb
index cc1b21a6673..5ae47119fb8 100644
--- a/danger/plugins/bulk_database_actions.rb
+++ b/danger/plugins/bulk_database_actions.rb
@@ -4,6 +4,8 @@ require_relative '../../tooling/danger/bulk_database_actions'
module Danger
class BulkDatabaseActions < ::Danger::Plugin
- include Tooling::Danger::BulkDatabaseActions
+ def add_suggestions_for(filename)
+ Tooling::Danger::BulkDatabaseActions.new(filename, context: self).suggest
+ end
end
end
diff --git a/data/deprecations/15-3-omniauth-crowd.yml b/data/deprecations/15-3-omniauth-crowd.yml
index 7c28226a674..2230bbd17ed 100644
--- a/data/deprecations/15-3-omniauth-crowd.yml
+++ b/data/deprecations/15-3-omniauth-crowd.yml
@@ -3,13 +3,13 @@
#
- title: "Atlassian Crowd OmniAuth provider" # (required) The name of the feature to be deprecated
announcement_milestone: "15.3" # (required) The milestone when this feature was first announced as deprecated.
- removal_milestone: "17.0" # (required) The milestone when this feature is planned to be removed
+ removal_milestone: "18.0" # (required) The milestone when this feature is planned to be removed
breaking_change: true # (required) If this deprecation is a breaking change, set this value to true
reporter: hsutor # (required) GitLab username of the person reporting the deprecation
stage: Manage # (required) String value of the stage that the feature was created in. e.g., Growth
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/369117 # (required) Link to the deprecation issue in GitLab
body: | # (required) Do not modify this line, instead modify the lines below.
The `omniauth_crowd` gem that provides GitLab with the Atlassian Crowd OmniAuth provider will be removed in our
- next major release, GitLab 16.0. This gem sees very little use and its
+ next major release, GitLab 18.0. This gem sees very little use and its
[lack of compatibility](https://github.com/robdimarco/omniauth_crowd/issues/37) with OmniAuth 2.0 is
[blocking our upgrade](https://gitlab.com/gitlab-org/gitlab/-/issues/30073).
diff --git a/data/deprecations/15-8-deprecate-slack-notifications-integration.yml b/data/deprecations/15-8-deprecate-slack-notifications-integration.yml
index 33f9e6ce3a7..21c6cb7d0cf 100644
--- a/data/deprecations/15-8-deprecate-slack-notifications-integration.yml
+++ b/data/deprecations/15-8-deprecate-slack-notifications-integration.yml
@@ -1,17 +1,16 @@
- title: "Slack notifications integration" # (required) Clearly explain the change, or planned change. For example, "The `confidential` field for a `Note` is deprecated" or "CI/CD job names will be limited to 250 characters."
announcement_milestone: "15.9" # (required) The milestone when this feature was first announced as deprecated.
- removal_milestone: "17.0" # (required) The milestone when this feature is planned to be removed
+ removal_milestone: "18.0" # (required) The milestone when this feature is planned to be removed
breaking_change: true # (required) Change to false if this is not a breaking change.
reporter: g.hickman # (required) GitLab username of the person reporting the change
stage: manage # (required) String value of the stage that the feature was created in. e.g., Growth
- issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/372411 # (required) Link to the deprecation issue in GitLab
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435909 # (required) Link to the deprecation issue in GitLab
body: | # (required) Do not modify this line, instead modify the lines below.
As we're consolidating all Slack capabilities into the
- GitLab for Slack app, we're [deprecating the Slack notifications
- integration](https://gitlab.com/gitlab-org/gitlab/-/issues/372411).
- GitLab.com users can now use the GitLab for Slack app to manage notifications
- to their Slack workspace. For self-managed users of the Slack notifications integration,
- we'll be introducing support in [this epic](https://gitlab.com/groups/gitlab-org/-/epics/1211).
+ GitLab for Slack app, we've deprecated the Slack notifications
+ integration.
+ Use the GitLab for Slack app to manage notifications
+ to your Slack workspace.
#
# OPTIONAL END OF SUPPORT FIELDS
diff --git a/data/deprecations/16-7-remove-slsa-0.2-statement.yml b/data/deprecations/16-7-remove-slsa-0.2-statement.yml
new file mode 100644
index 00000000000..745036d2ecc
--- /dev/null
+++ b/data/deprecations/16-7-remove-slsa-0.2-statement.yml
@@ -0,0 +1,12 @@
+#
+# REQUIRED FIELDS
+#
+- title: "GitLab Runner provenance metadata SLSA v0.2 statement"
+ removal_milestone: "17.0" # (required) The milestone when this feature is planned to be removed
+ announcement_milestone: "16.8" # (required) The milestone when this feature was first announced as deprecated.
+ breaking_change: true # (required) Change to false if this is not a breaking change.
+ reporter: sam.white # (required) GitLab username of the person reporting the change
+ stage: verify # (required) String value of the stage that the feature was created in. e.g., Growth
+ issue_url: https://gitlab.com/gitlab-org/gitlab-runner/-/issues/36869 # (required) Link to the deprecation issue in GitLab
+ body: | # (required) Do not modify this line, instead modify the lines below.
+ Runners generate provenance metadata and currently defaults to generating statements that adhere to SLSA v0.2. Because SLSA v1.0 has been released and is now supported by GitLab, the v0.2 statement is now deprecated and removal is planned in GitLab 17.0. The SLSA v1.0 statement is planned to become the new default statement format in GitLab 17.0.
diff --git a/data/deprecations/16-8-api-lint-ref-removal.yml b/data/deprecations/16-8-api-lint-ref-removal.yml
new file mode 100644
index 00000000000..cd99938a607
--- /dev/null
+++ b/data/deprecations/16-8-api-lint-ref-removal.yml
@@ -0,0 +1,34 @@
+# ----- DELETE EVERYTHING ABOVE THIS LINE -----
+
+- title: "Block usage of ref and sha together in `GET /projects/:id/ci/lint`"
+ # The milestones for the deprecation announcement, and the removal.
+ removal_milestone: "17.0"
+ announcement_milestone: "16.8"
+ # Change breaking_change to false if needed.
+ breaking_change: true
+ # The stage and GitLab username of the person reporting the change,
+ # and a link to the deprecation issue
+ reporter: dhershkovitch
+ stage: verify
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/430322
+ body: | # (required) Don't change this line.
+ Due to a problem with ambiguity, we've deprecated the use of both `ref` and `sha` in the same API call to `GET /projects/:id/ci/lint`. Make sure your API calls to this endpoint use only `ref` or `sha`, but not both. In GitLab 17.0, using them in the same call will no longer be possible to ensure the correct ref or SHA is linted.
+
+# ==============================
+# OPTIONAL END-OF-SUPPORT FIELDS
+# ==============================
+#
+# If an End of Support period applies:
+# 1) Share this announcement in the `#spt_managers` Support channel in Slack
+# 2) Mention `@gitlab-com/support` in this merge request.
+#
+ # When support for this feature ends, in XX.YY milestone format.
+ end_of_support_milestone:
+ # Array of tiers the feature is currently available to,
+ # like [Free, Silver, Gold, Core, Premium, Ultimate]
+ tiers:
+ # Links to documentation and thumbnail image
+ documentation_url:
+ image_url:
+ # Use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg
+ video_url:
diff --git a/data/deprecations/16-8-deprecate-license-list.yml b/data/deprecations/16-8-deprecate-license-list.yml
new file mode 100644
index 00000000000..a5955c60361
--- /dev/null
+++ b/data/deprecations/16-8-deprecate-license-list.yml
@@ -0,0 +1,16 @@
+- title: "License List is deprecated"
+ removal_milestone: "17.0"
+ announcement_milestone: "16.8"
+ breaking_change: true
+ reporter: abellucci
+ stage: govern
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/436100
+ body: | # (required) Don't change this line.
+ Today in GitLab you can see a list of all of the licenses your project and the components that
+ use that license on the License List. As of 16.8, the License List
+ is deprecated and scheduled to be removed in 17.0 as a breaking change.
+ With the release of the [Group Dependency List](https://docs.gitlab.com/ee/user/application_security/dependency_list/)
+ and the ability to filter by license on the project and group Dependency List, you can now
+ access all of the licenses your project or group is using on the Dependency List.
+ tiers: [Gold, Ultimate]
+ documentation_url: https://docs.gitlab.com/ee/user/compliance/license_list.html
diff --git a/data/deprecations/16-8-deprecate-pg_schema-backup-setting.yml b/data/deprecations/16-8-deprecate-pg_schema-backup-setting.yml
new file mode 100644
index 00000000000..4edb2c8fde2
--- /dev/null
+++ b/data/deprecations/16-8-deprecate-pg_schema-backup-setting.yml
@@ -0,0 +1,14 @@
+- title: "Support for setting custom schema for backup is deprecated"
+ announcement_milestone: "16.8"
+ removal_milestone: "17.0"
+ breaking_change: true
+ reporter: sranasinghe
+ stage: core platform
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435210
+ body: |
+ You could configure GitLab to use a custom schema for backup, by setting
+ `gitlab_rails['backup_pg_schema'] = '<schema_name>'` in `/etc/gitlab/gitlab.rb` for Linux package installations,
+ or by editing `config/gitlab.yml` for self-compiled installations.
+
+ While the configuration setting was available, it had no effect and did not serve the purpose it was intended.
+ This configuration setting will be removed in GitLab 17.0.
diff --git a/data/deprecations/16-8-license-scanning-sbt-1-0-x.yml b/data/deprecations/16-8-license-scanning-sbt-1-0-x.yml
new file mode 100644
index 00000000000..232fe87de0a
--- /dev/null
+++ b/data/deprecations/16-8-license-scanning-sbt-1-0-x.yml
@@ -0,0 +1,11 @@
+- title: "License Scanning support for sbt 1.0.X"
+ removal_milestone: "17.0"
+ announcement_milestone: "16.8"
+ breaking_change: true
+ reporter: thiagocsf
+ stage: Secure
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437591
+ body: | # (required) Don't change this line.
+ GitLab 17.0 removes License Scanning support for sbt 1.0.x.
+
+ Users are advised to upgrade from sbt 1.0.x.
diff --git a/data/deprecations/16-8-remove-deprecated-metric-filter-from-dora-api.yml b/data/deprecations/16-8-remove-deprecated-metric-filter-from-dora-api.yml
new file mode 100644
index 00000000000..75a49e9b175
--- /dev/null
+++ b/data/deprecations/16-8-remove-deprecated-metric-filter-from-dora-api.yml
@@ -0,0 +1,9 @@
+- title: "`metric` filter and `value` field for DORA API"
+ announcement_milestone: "16.8" # (required) The milestone when this feature was first announced as deprecated.
+ removal_milestone: "17.0" # (required) The milestone when this feature is planned to be removed
+ breaking_change: true # (required) If this deprecation is a breaking change, set this value to true
+ reporter: hsnir1 # (required) GitLab username of the person reporting the deprecation
+ stage: plan # (required) String value of the stage that the feature was created in. e.g., Growth
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/393172 # (required) Link to the deprecation issue in GitLab
+ body: | # (required) Do not modify this line, instead modify the lines below.
+ Multiple DORA metrics can now be queried simultaneously using a new metrics field. The `metric` filter and `value` field for Graphql DORA API will be removed in GitLab 17.0.
diff --git a/data/deprecations/16-9-verify-after-script-canceled-status.yml b/data/deprecations/16-9-verify-after-script-canceled-status.yml
new file mode 100644
index 00000000000..c34ee4337af
--- /dev/null
+++ b/data/deprecations/16-9-verify-after-script-canceled-status.yml
@@ -0,0 +1,13 @@
+- title: "`after_script` keyword will run for cancelled jobs"
+ # The milestones for the deprecation announcement, and the removal.
+ removal_milestone: "17.0"
+ announcement_milestone: "16.8"
+ # Change breaking_change to false if needed.
+ breaking_change: true
+ # The stage and GitLab username of the person reporting the change,
+ # and a link to the deprecation issue
+ reporter: jreporter
+ stage: verify
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437789
+ body: | # (required) Don't change this line.
+ The [`after_script`](https://docs.gitlab.com/ee/ci/yaml/#after_script) CI/CD keyword is used to run additional commands after the main `script` section of a job. This is often used for cleaning up environments or other resources that were used by the job. For many users, the fact that the `after_script` commands do not run if a job is cancelled was unexpected and undesired. In 17.0, the keyword will be updated to also run commands after job cancellation. Make sure that your CI/CD configuration that uses the `after_script` keyword is able to handle running for cancelled jobs as well.
diff --git a/data/deprecations/17-0-dependency-scanning-sbt-support.yml b/data/deprecations/17-0-dependency-scanning-sbt-support.yml
new file mode 100644
index 00000000000..a255cd9585e
--- /dev/null
+++ b/data/deprecations/17-0-dependency-scanning-sbt-support.yml
@@ -0,0 +1,11 @@
+- title: "Dependency Scanning support for sbt 1.0.X"
+ removal_milestone: "17.0"
+ announcement_milestone: "16.8"
+ breaking_change: true
+ reporter: johncrowley
+ stage: Secure
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/415835
+ body: | # (required) Don't change this line.
+ Supporting very old versions of sbt is preventing us from improving our support for additional use cases with this package manager without increasing our maintenance cost.
+
+ Version 1.1.0 of sbt was released 6 years ago, and users are advised to upgrade from 1.0.x as Dependency Scanning will no longer work.
diff --git a/data/whats_new/202312210001_16_7.yml b/data/whats_new/202312210001_16_7.yml
new file mode 100644
index 00000000000..093899cddbf
--- /dev/null
+++ b/data/whats_new/202312210001_16_7.yml
@@ -0,0 +1,68 @@
+- name: GitLab Duo Code Suggestions is generally available
+ description: | # Do not modify this line, instead modify the lines below.
+ [GitLab Duo Code Suggestions](https://about.gitlab.com/solutions/code-suggestions/) is now generally available!
+
+ GitLab Duo Code Suggestions helps teams create software faster and more efficiently, by completing lines of code and defining and generating logic for functions.
+
+ Code Suggestions is built with privacy as a critical foundation. Private, non-public customer code stored in GitLab is not used as training data. Learn about [data usage](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/index.html#code-suggestions-data-usage) when using Code Suggestions.
+
+ In the general release, we've made [Code Suggestions available across several IDEs](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/#supported-editor-extensions). Code Suggestions is also now more intuitive and responsive.
+
+ GitLab Duo Code Suggestions is [free to try](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/#start-using-code-suggestions) subject to the [GitLab Testing Agreement](https://handbook.gitlab.com/handbook/legal/testing-agreement/) until February 15, 2024. Starting today, you can buy Code Suggestions as an add-on to GitLab subscriptions for an introductory price of $9 USD per user/per month. Please [contact us](https://about.gitlab.com/solutions/code-suggestions/) to get started with Code Suggestions.
+ stage: Create
+ self-managed: true
+ gitlab-com: true
+ available_in: [Premium, Ultimate]
+ documentation_link: https://docs.gitlab.com/ee/user/project/repository/code_suggestions/
+ image_url: https://img.youtube.com/vi/hCAyCTacdAQ/hqdefault.jpg
+ published_at: 2023-12-21
+ release: 16.7
+
+- name: New drill-down view from Insights report charts
+ description: | # Do not modify this line, instead modify the lines below.
+ With the Insights report you can analyze patterns over time using customizable charts. The new drill-down capability added to the “Bugs created by priority†and “Bugs created by severity†Insights reports allows you to drill down on the Issue analytics report for deeper analysis.
+
+ We plan to include this capability in the other Insight reports as a custom option in a later version.
+ stage: Plan
+ self-managed: true
+ gitlab-com: true
+ available_in: [Ultimate]
+ documentation_link: https://docs.gitlab.com/ee/user/group/insights/#drill-down-on-charts
+ image_url: https://about.gitlab.com/images/16_7/insights_drill_16_7.gif
+ published_at: 2023-12-21
+ release: 16.7
+
+- name: SAST results in MR changes view
+ description: | # Do not modify this line, instead modify the lines below.
+ SAST findings now appear in the merge request Changes view.
+ This makes it easier to see, understand, and fix potential weaknesses during the code review process.
+
+ Lines containing SAST issues are marked by a symbol beside the gutter.
+ Select the symbol to see the list of issues, then select an issue to see its details.
+
+ We've enabled this feature on GitLab.com.
+ We plan to enable the [feature flag](https://gitlab.com/gitlab-org/gitlab/-/issues/410191) by default for Self-Managed instances in GitLab 16.8.
+ stage: Secure
+ self-managed: true
+ gitlab-com: true
+ available_in: [Ultimate]
+ documentation_link: https://docs.gitlab.com/ee/user/application_security/sast/#merge-request-changes-view
+ image_url: https://img.youtube.com/vi/COaFZ5aNnZs/hqdefault.jpg # This should be a full URL, generally taken from the release post content. If a video, use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/hCAyCTacdAQ/hqdefault.jpg
+ published_at: 2023-12-21
+ release: 16.7
+
+- name: CI/CD Catalog - Beta release
+ description: | # Do not modify this line, instead modify the lines below.
+ GitLab 16.7 sees the Beta release of the CI/CD catalog! The catalog is where you can search for [CI/CD components](https://docs.gitlab.com/ee/ci/components/) maintained by you, your organization, or the public community. This is the place where DevOps engineers come together to create, contribute, and share reusable pipeline configurations.
+
+ Unlike other methods of reusing CI/CD configuration, CI/CD components published in the catalog have an improved experience, and are easily added to your pipeline. We invite you to start testing this new and exciting feature! You can try out components that others have created and shared in the catalog, or create your own components and share them with everyone.
+
+ While this is our initial beta release of the feature, we continue to work on making the experience even better. Our goal is to make the CI/CD catalog a fundamental part of the GitLab CI/CD experience.
+ stage: Verify
+ self-managed: true
+ gitlab-com: true
+ available_in: [Free, Premium, Ultimate]
+ documentation_link: https://docs.gitlab.com/ee/ci/components/#cicd-catalog
+ image_url: https://img.youtube.com/vi/NTbUq30NA7U/hqdefault.jpg
+ published_at: 2023-12-21
+ release: 16.7
diff --git a/db/click_house/migrate/main/20240102161100_modify_ci_finished_builds_created_at_default_to_zero.rb b/db/click_house/migrate/main/20240102161100_modify_ci_finished_builds_created_at_default_to_zero.rb
new file mode 100644
index 00000000000..abbc0d8191d
--- /dev/null
+++ b/db/click_house/migrate/main/20240102161100_modify_ci_finished_builds_created_at_default_to_zero.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class ModifyCiFinishedBuildsCreatedAtDefaultToZero < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds MODIFY COLUMN created_at DEFAULT 0
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds MODIFY COLUMN created_at DEFAULT now()
+ SQL
+ end
+end
diff --git a/db/click_house/migrate/main/20240102161101_modify_ci_finished_builds_queued_at_default_to_zero.rb b/db/click_house/migrate/main/20240102161101_modify_ci_finished_builds_queued_at_default_to_zero.rb
new file mode 100644
index 00000000000..90a3dcf74c3
--- /dev/null
+++ b/db/click_house/migrate/main/20240102161101_modify_ci_finished_builds_queued_at_default_to_zero.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class ModifyCiFinishedBuildsQueuedAtDefaultToZero < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds MODIFY COLUMN queued_at DEFAULT 0
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds MODIFY COLUMN queued_at DEFAULT now()
+ SQL
+ end
+end
diff --git a/db/click_house/migrate/main/20240102161102_modify_ci_finished_builds_started_at_default_to_zero.rb b/db/click_house/migrate/main/20240102161102_modify_ci_finished_builds_started_at_default_to_zero.rb
new file mode 100644
index 00000000000..e4fae74748b
--- /dev/null
+++ b/db/click_house/migrate/main/20240102161102_modify_ci_finished_builds_started_at_default_to_zero.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class ModifyCiFinishedBuildsStartedAtDefaultToZero < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds MODIFY COLUMN started_at DEFAULT 0
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds MODIFY COLUMN started_at DEFAULT COALESCE(finished_at, 0)
+ SQL
+ end
+end
diff --git a/db/click_house/migrate/main/20240102161103_modify_ci_finished_builds_duration_calculation.rb b/db/click_house/migrate/main/20240102161103_modify_ci_finished_builds_duration_calculation.rb
new file mode 100644
index 00000000000..5a40e36fea3
--- /dev/null
+++ b/db/click_house/migrate/main/20240102161103_modify_ci_finished_builds_duration_calculation.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class ModifyCiFinishedBuildsDurationCalculation < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ MODIFY COLUMN duration Int64 MATERIALIZED if(started_at > 0 AND finished_at > started_at, age('ms', started_at, finished_at), 0)
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ MODIFY COLUMN duration Int64 MATERIALIZED age('ms', started_at, finished_at)
+ SQL
+ end
+end
diff --git a/db/click_house/migrate/main/20240102161104_modify_ci_finished_builds_queueing_duration_calculation.rb b/db/click_house/migrate/main/20240102161104_modify_ci_finished_builds_queueing_duration_calculation.rb
new file mode 100644
index 00000000000..e53f56dee14
--- /dev/null
+++ b/db/click_house/migrate/main/20240102161104_modify_ci_finished_builds_queueing_duration_calculation.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class ModifyCiFinishedBuildsQueueingDurationCalculation < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ MODIFY COLUMN queueing_duration Int64 MATERIALIZED if(queued_at > 0 AND started_at > queued_at, age('ms', queued_at, started_at), 0)
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ MODIFY COLUMN queueing_duration Int64 MATERIALIZED age('ms', queued_at, started_at)
+ SQL
+ end
+end
diff --git a/db/click_house/migrate/main/20240104092900_add_root_namespace_id_to_ci_finished_builds.rb b/db/click_house/migrate/main/20240104092900_add_root_namespace_id_to_ci_finished_builds.rb
new file mode 100644
index 00000000000..ac711e0e2aa
--- /dev/null
+++ b/db/click_house/migrate/main/20240104092900_add_root_namespace_id_to_ci_finished_builds.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddRootNamespaceIdToCiFinishedBuilds < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ ADD COLUMN IF NOT EXISTS root_namespace_id UInt64 DEFAULT 0
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ DROP COLUMN IF EXISTS root_namespace_id
+ SQL
+ end
+end
diff --git a/db/click_house/migrate/main/20240104092901_add_name_to_ci_finished_builds.rb b/db/click_house/migrate/main/20240104092901_add_name_to_ci_finished_builds.rb
new file mode 100644
index 00000000000..30900736325
--- /dev/null
+++ b/db/click_house/migrate/main/20240104092901_add_name_to_ci_finished_builds.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddNameToCiFinishedBuilds < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ ADD COLUMN IF NOT EXISTS name String DEFAULT ''
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ DROP COLUMN IF EXISTS name
+ SQL
+ end
+end
diff --git a/db/click_house/migrate/main/20240104092902_add_stage_to_ci_finished_builds.rb b/db/click_house/migrate/main/20240104092902_add_stage_to_ci_finished_builds.rb
new file mode 100644
index 00000000000..aeeac653847
--- /dev/null
+++ b/db/click_house/migrate/main/20240104092902_add_stage_to_ci_finished_builds.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddStageToCiFinishedBuilds < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ ADD COLUMN IF NOT EXISTS stage String DEFAULT ''
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ DROP COLUMN IF EXISTS stage
+ SQL
+ end
+end
diff --git a/db/click_house/migrate/main/20240104092903_add_date_to_ci_finished_builds.rb b/db/click_house/migrate/main/20240104092903_add_date_to_ci_finished_builds.rb
new file mode 100644
index 00000000000..35b6eb77f0a
--- /dev/null
+++ b/db/click_house/migrate/main/20240104092903_add_date_to_ci_finished_builds.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddDateToCiFinishedBuilds < ClickHouse::Migration
+ def up
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ ADD COLUMN IF NOT EXISTS date Date32 MATERIALIZED toStartOfMonth(finished_at)
+ SQL
+ end
+
+ def down
+ execute <<~SQL
+ ALTER TABLE ci_finished_builds
+ DROP COLUMN IF EXISTS date
+ SQL
+ end
+end
diff --git a/db/docs/achievements.yml b/db/docs/achievements.yml
index 6f471929aea..c0aed4b81f2 100644
--- a/db/docs/achievements.yml
+++ b/db/docs/achievements.yml
@@ -7,4 +7,8 @@ feature_categories:
description: Achievements which can be created by namespaces to award them to users
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105871
milestone: '15.7'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ namespace_id: namespaces
+allow_cross_joins:
+ - gitlab_main_clusterwide # TODO: Exists just for example in specs
diff --git a/db/docs/activity_pub_releases_subscriptions.yml b/db/docs/activity_pub_releases_subscriptions.yml
index 6075847c780..9b4c574b4e7 100644
--- a/db/docs/activity_pub_releases_subscriptions.yml
+++ b/db/docs/activity_pub_releases_subscriptions.yml
@@ -11,3 +11,5 @@ milestone: '16.6'
gitlab_schema: gitlab_main_cell
sharding_key:
project_id: projects
+allow_cross_transactions:
+ - gitlab_main_clusterwide # TODO: Exists just for example in specs
diff --git a/db/docs/agent_group_authorizations.yml b/db/docs/agent_group_authorizations.yml
index f0d45dbdc3d..506f27778c4 100644
--- a/db/docs/agent_group_authorizations.yml
+++ b/db/docs/agent_group_authorizations.yml
@@ -7,4 +7,8 @@ feature_categories:
description: Configuration for a group that is authorized to use a particular cluster agent
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68023
milestone: '14.3'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ group_id: namespaces
+allow_cross_foreign_keys:
+ - gitlab_main_clusterwide # TODO: Exists just for example in specs
diff --git a/db/docs/agent_project_authorizations.yml b/db/docs/agent_project_authorizations.yml
index 77c26571c28..144598b8109 100644
--- a/db/docs/agent_project_authorizations.yml
+++ b/db/docs/agent_project_authorizations.yml
@@ -4,7 +4,16 @@ classes:
- Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization
feature_categories:
- deployment_management
-description: Configuration for a project that is authorized to use a particular cluster agent
+description: Configuration for a project that is authorized to use a particular cluster
+ agent
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67295
milestone: '14.3'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+allow_cross_joins:
+- gitlab_main_clusterwide
+allow_cross_transactions:
+- gitlab_main_clusterwide
+allow_cross_foreign_keys:
+- gitlab_main_clusterwide
+sharding_key:
+ project_id: projects
diff --git a/db/docs/agent_user_access_group_authorizations.yml b/db/docs/agent_user_access_group_authorizations.yml
index cd4df56d5a0..d6982789cff 100644
--- a/db/docs/agent_user_access_group_authorizations.yml
+++ b/db/docs/agent_user_access_group_authorizations.yml
@@ -4,7 +4,16 @@ classes:
- Clusters::Agents::Authorizations::UserAccess::GroupAuthorization
feature_categories:
- deployment_management
-description: Configuration for a group that is authorized to use a particular cluster agent through user_access keyword
+description: Configuration for a group that is authorized to use a particular cluster
+ agent through user_access keyword
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116901
milestone: '15.11'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+allow_cross_joins:
+- gitlab_main_clusterwide
+allow_cross_transactions:
+- gitlab_main_clusterwide
+allow_cross_foreign_keys:
+- gitlab_main_clusterwide
+sharding_key:
+ group_id: namespaces
diff --git a/db/docs/ai_agent_versions.yml b/db/docs/ai_agent_versions.yml
new file mode 100644
index 00000000000..91f0d476d3a
--- /dev/null
+++ b/db/docs/ai_agent_versions.yml
@@ -0,0 +1,12 @@
+---
+table_name: ai_agent_versions
+classes:
+- Ai::AgentVersion
+feature_categories:
+- mlops
+description: A version of an AI Agent
+introduced_by_url:
+milestone: '16.8'
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ project_id: projects
diff --git a/db/docs/ai_agents.yml b/db/docs/ai_agents.yml
new file mode 100644
index 00000000000..da3e960d0f1
--- /dev/null
+++ b/db/docs/ai_agents.yml
@@ -0,0 +1,12 @@
+---
+table_name: ai_agents
+classes:
+- Ai::Agent
+feature_categories:
+- mlops
+description: An AI agent definition
+introduced_by_url:
+milestone: '16.8'
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ project_id: projects
diff --git a/db/docs/batched_background_migrations/backfill_branch_protection_namespace_setting.yml b/db/docs/batched_background_migrations/backfill_branch_protection_namespace_setting.yml
index 9a596cb056e..88e012d8d08 100644
--- a/db/docs/batched_background_migrations/backfill_branch_protection_namespace_setting.yml
+++ b/db/docs/batched_background_migrations/backfill_branch_protection_namespace_setting.yml
@@ -6,4 +6,4 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136181
milestone: '16.7'
queued_migration_version: 20231107092912
finalize_after: '2024-01-23'
-finalized_by: # version of the migration that ensured this bbm
+finalized_by: 20240104155616
diff --git a/db/docs/batched_background_migrations/backfill_issue_search_data_namespace_id.yml b/db/docs/batched_background_migrations/backfill_issue_search_data_namespace_id.yml
new file mode 100644
index 00000000000..5f4ac80ff65
--- /dev/null
+++ b/db/docs/batched_background_migrations/backfill_issue_search_data_namespace_id.yml
@@ -0,0 +1,8 @@
+---
+migration_job_name: BackfillIssueSearchDataNamespaceId
+description: Backfills issue_search_data.namespace_id from issues.namespace_id. This will be used for repartitioning the table.
+feature_category: team_planning
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128010
+milestone: '16.8'
+queued_migration_version: 20240105144908
+finalize_after: '2024-02-22'
diff --git a/db/docs/batched_background_migrations/backfill_merge_request_diffs_project_id.yml b/db/docs/batched_background_migrations/backfill_merge_request_diffs_project_id.yml
index 54d38942659..62373abcd41 100644
--- a/db/docs/batched_background_migrations/backfill_merge_request_diffs_project_id.yml
+++ b/db/docs/batched_background_migrations/backfill_merge_request_diffs_project_id.yml
@@ -6,4 +6,4 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136800
milestone: '16.7'
queued_migration_version: 20231114043522
finalize_after: '2024-04-01'
-finalized_by: # version of the migration that ensured this bbm
+finalized_by: 20231213080216
diff --git a/db/docs/batched_background_migrations/backfill_owasp_top_ten_of_vulnerability_reads.yml b/db/docs/batched_background_migrations/backfill_owasp_top_ten_of_vulnerability_reads.yml
new file mode 100644
index 00000000000..16c505faf1f
--- /dev/null
+++ b/db/docs/batched_background_migrations/backfill_owasp_top_ten_of_vulnerability_reads.yml
@@ -0,0 +1,8 @@
+---
+migration_job_name: BackfillOwaspTopTenOfVulnerabilityReads
+description: Backfills owasp_top_10 column for vulnerability_reads table.
+feature_category: vulnerability_management
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139544
+milestone: '16.8'
+queued_migration_version: 20231214111617
+finalize_after: '2024-1-10'
diff --git a/db/docs/batched_background_migrations/backfill_packages_tags_project_id.yml b/db/docs/batched_background_migrations/backfill_packages_tags_project_id.yml
index 777ca064c0d..be6dff0fcf4 100644
--- a/db/docs/batched_background_migrations/backfill_packages_tags_project_id.yml
+++ b/db/docs/batched_background_migrations/backfill_packages_tags_project_id.yml
@@ -6,4 +6,4 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135451
milestone: '16.6'
queued_migration_version: 20231030071209
finalize_after: '2023-12-23'
-finalized_by: # version of the migration that ensured this bbm
+finalized_by: 20231114015857
diff --git a/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_artifact.yml b/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_artifact.yml
new file mode 100644
index 00000000000..18a4ac13db1
--- /dev/null
+++ b/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_artifact.yml
@@ -0,0 +1,9 @@
+---
+migration_job_name: BackfillPartitionIdCiPipelineArtifact
+description: Fixes incorrect values for ci_pipeline_artifacts being in the wrong partition
+feature_category: continuous_integration
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141345
+milestone: '16.8'
+queued_migration_version: 20240109090354
+finalize_after: '2024-01-22'
+finalized_by: # version of the migration that finalized this BBM
diff --git a/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_chat_data.yml b/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_chat_data.yml
new file mode 100644
index 00000000000..5864ef96ca3
--- /dev/null
+++ b/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_chat_data.yml
@@ -0,0 +1,9 @@
+---
+migration_job_name: BackfillPartitionIdCiPipelineChatData
+description: Fixes incorrect values for ci pipeline chat data being in the wrong partition
+feature_category: continuous_integration
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139515
+milestone: '16.8'
+queued_migration_version: 20231218092401
+finalize_after: '2023-12-23'
+finalized_by: 20240104101601
diff --git a/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_config.yml b/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_config.yml
new file mode 100644
index 00000000000..e51bef28419
--- /dev/null
+++ b/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_config.yml
@@ -0,0 +1,9 @@
+---
+migration_job_name: BackfillPartitionIdCiPipelineConfig
+description: Fixes incorrect values for ci_pipelines_config being in the wrong partition
+feature_category: continuous_integration
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141461
+milestone: '16.8'
+queued_migration_version: 20240110090352
+finalize_after: '2024-01-22'
+finalized_by: # version of the migration that finalized this BBM
diff --git a/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_metadata.yml b/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_metadata.yml
new file mode 100644
index 00000000000..a56fcfd4cca
--- /dev/null
+++ b/db/docs/batched_background_migrations/backfill_partition_id_ci_pipeline_metadata.yml
@@ -0,0 +1,9 @@
+---
+migration_job_name: BackfillPartitionIdCiPipelineMetadata
+description: Fixes incorrect values for ci_pipeline_metadata being in the wrong partition
+feature_category: continuous_integration
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141078
+milestone: '16.8'
+queued_migration_version: 20240108082419
+finalize_after: '2024-01-15'
+finalized_by: # version of the migration that finalized this BBM
diff --git a/db/docs/batched_background_migrations/backfill_user_preferences_with_defaults.yml b/db/docs/batched_background_migrations/backfill_user_preferences_with_defaults.yml
index b95527cc32c..30043317d4c 100644
--- a/db/docs/batched_background_migrations/backfill_user_preferences_with_defaults.yml
+++ b/db/docs/batched_background_migrations/backfill_user_preferences_with_defaults.yml
@@ -4,3 +4,4 @@ description: Backfills the user_preferences table columns with their default val
feature_category: user_profile
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125774
milestone: '16.4'
+finalized_by: '20231219075929'
diff --git a/db/docs/batched_background_migrations/backfill_users_with_defaults.yml b/db/docs/batched_background_migrations/backfill_users_with_defaults.yml
index 6faa1fbf655..a288dc410a3 100644
--- a/db/docs/batched_background_migrations/backfill_users_with_defaults.yml
+++ b/db/docs/batched_background_migrations/backfill_users_with_defaults.yml
@@ -4,3 +4,4 @@ description: Backfills the users table columns with their default values
feature_category: user_profile
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125881
milestone: '16.4'
+finalized_by: '20231219075928'
diff --git a/db/docs/batched_background_migrations/backfill_vs_code_settings_uuid.yml b/db/docs/batched_background_migrations/backfill_vs_code_settings_uuid.yml
index 022752a06a7..2ea945c17b5 100644
--- a/db/docs/batched_background_migrations/backfill_vs_code_settings_uuid.yml
+++ b/db/docs/batched_background_migrations/backfill_vs_code_settings_uuid.yml
@@ -5,5 +5,5 @@ feature_category: web_ide
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138355
milestone: '16.7'
queued_migration_version: 20231130140901
-finalize_after: '2023-12-17'
+finalize_after: '2024-01-31'
finalized_by: # version of the migration that finalized this BBM
diff --git a/db/docs/batched_background_migrations/backfill_vs_code_settings_version.yml b/db/docs/batched_background_migrations/backfill_vs_code_settings_version.yml
new file mode 100644
index 00000000000..0cb3a493823
--- /dev/null
+++ b/db/docs/batched_background_migrations/backfill_vs_code_settings_version.yml
@@ -0,0 +1,9 @@
+---
+migration_job_name: BackfillVsCodeSettingsVersion
+description: Backfills the version column of existing vs_code_settings records
+feature_category: web_ide
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140091
+milestone: '16.8'
+queued_migration_version: 20231212135235
+finalize_after: '2024-01-31'
+finalized_by: # version of the migration that finalized this BBM
diff --git a/db/docs/batched_background_migrations/drop_vulnerabilities_without_finding_id.yml b/db/docs/batched_background_migrations/drop_vulnerabilities_without_finding_id.yml
new file mode 100644
index 00000000000..37e7fae2ea6
--- /dev/null
+++ b/db/docs/batched_background_migrations/drop_vulnerabilities_without_finding_id.yml
@@ -0,0 +1,9 @@
+---
+migration_job_name: DropVulnerabilitiesWithoutFindingId
+description: Remove Vulnerabilities without associated finding_id
+feature_category: vulnerability_management
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140532
+milestone: '16.8'
+queued_migration_version: 20231221223259
+finalize_after: '2024-01-22'
+finalized_by: # version of the migration that finalized this BBM
diff --git a/db/docs/batched_background_migrations/update_workspaces_config_version.yml b/db/docs/batched_background_migrations/update_workspaces_config_version.yml
index ead063ebed6..4ccddd5017a 100644
--- a/db/docs/batched_background_migrations/update_workspaces_config_version.yml
+++ b/db/docs/batched_background_migrations/update_workspaces_config_version.yml
@@ -3,3 +3,6 @@ description: Update config_version to 2 and force_include_all_resources to true
feature_category: remote_development
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131402
milestone: '16.5'
+queued_migration_version: 20230910120000
+finalize_after: "2023-11-15"
+finalized_by: 20231215151348
diff --git a/db/docs/batched_background_migrations/update_workspaces_config_version3.yml b/db/docs/batched_background_migrations/update_workspaces_config_version3.yml
new file mode 100644
index 00000000000..253feea0469
--- /dev/null
+++ b/db/docs/batched_background_migrations/update_workspaces_config_version3.yml
@@ -0,0 +1,9 @@
+---
+migration_job_name: UpdateWorkspacesConfigVersion3
+description: Update config_version to 3 and force_include_all_resources to true for existing workspaces
+feature_category: remote_development
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140972
+milestone: '16.8'
+queued_migration_version: 20240104085448
+finalize_after: "2024-02-15"
+finalized_by: # version of the migration that finalized this BBM
diff --git a/db/docs/cloud_connector_access.yml b/db/docs/cloud_connector_access.yml
new file mode 100644
index 00000000000..5b0d5046ec0
--- /dev/null
+++ b/db/docs/cloud_connector_access.yml
@@ -0,0 +1,8 @@
+---
+table_name: cloud_connector_access
+feature_categories:
+ - cloud_connector
+description: Information about Cloud Connector features
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140456
+milestone: '16.8'
+gitlab_schema: gitlab_main_clusterwide
diff --git a/db/docs/compliance_management_frameworks.yml b/db/docs/compliance_management_frameworks.yml
index 9a75e43a938..40697a5a28b 100644
--- a/db/docs/compliance_management_frameworks.yml
+++ b/db/docs/compliance_management_frameworks.yml
@@ -7,4 +7,12 @@ feature_categories:
description: TODO
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44098
milestone: '13.5'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+allow_cross_joins:
+- gitlab_main_clusterwide
+allow_cross_transactions:
+- gitlab_main_clusterwide
+allow_cross_foreign_keys:
+- gitlab_main_clusterwide
+sharding_key:
+ namespace_id: namespaces
diff --git a/db/docs/ci_editor_ai_conversation_messages.yml b/db/docs/deleted_tables/ci_editor_ai_conversation_messages.yml
index de4ca6490a6..e37b9bfc75c 100644
--- a/db/docs/ci_editor_ai_conversation_messages.yml
+++ b/db/docs/deleted_tables/ci_editor_ai_conversation_messages.yml
@@ -9,3 +9,5 @@ description: Represents an ai message for a user and project for the pipeline ed
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119840
milestone: '16.0'
gitlab_schema: gitlab_ci
+removed_in_milestone: '16.8'
+removed_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139626
diff --git a/db/docs/in_product_marketing_emails.yml b/db/docs/deleted_tables/in_product_marketing_emails.yml
index 8021f4a2634..e36a4546ff4 100644
--- a/db/docs/in_product_marketing_emails.yml
+++ b/db/docs/deleted_tables/in_product_marketing_emails.yml
@@ -7,4 +7,6 @@ feature_categories:
description: TODO
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55840
milestone: '13.10'
+removed_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138835
+removed_in_milestone: '16.8'
gitlab_schema: gitlab_main
diff --git a/db/docs/external_status_checks.yml b/db/docs/external_status_checks.yml
index 5f7ea9b5314..c8263d921bf 100644
--- a/db/docs/external_status_checks.yml
+++ b/db/docs/external_status_checks.yml
@@ -7,4 +7,12 @@ feature_categories:
description: Stores project's external status checks
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62186
milestone: '14.0'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+allow_cross_joins:
+- gitlab_main_clusterwide
+allow_cross_transactions:
+- gitlab_main_clusterwide
+allow_cross_foreign_keys:
+- gitlab_main_clusterwide
+sharding_key:
+ project_id: projects
diff --git a/db/docs/integrations.yml b/db/docs/integrations.yml
index c087d49968a..037dea949d0 100644
--- a/db/docs/integrations.yml
+++ b/db/docs/integrations.yml
@@ -20,6 +20,7 @@ classes:
- Integrations::Confluence
- Integrations::CustomIssueTracker
- Integrations::Datadog
+- Integrations::DiffblueCover
- Integrations::Discord
- Integrations::DroneCi
- Integrations::EmailsOnPush
diff --git a/db/docs/ml_model_version_metadata.yml b/db/docs/ml_model_version_metadata.yml
new file mode 100644
index 00000000000..fbc8cc972dd
--- /dev/null
+++ b/db/docs/ml_model_version_metadata.yml
@@ -0,0 +1,13 @@
+---
+table_name: ml_model_version_metadata
+classes:
+- Ml::ModelVersionMetadata
+feature_categories:
+- mlops
+gitlab_schema: gitlab_main_cell
+description: A Model Version Metadata record holds extra information about the model
+ version
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139975/
+milestone: 16.8
+sharding_key:
+ project_id: projects \ No newline at end of file
diff --git a/db/docs/namespace_descendants.yml b/db/docs/namespace_descendants.yml
new file mode 100644
index 00000000000..995441b8147
--- /dev/null
+++ b/db/docs/namespace_descendants.yml
@@ -0,0 +1,12 @@
+---
+table_name: namespace_descendants
+classes:
+- Namespaces::Descendants
+feature_categories:
+- groups_and_projects
+description: Storing de-normalized descendant ids for Namespace records
+introduced_by_url:
+milestone: '16.8'
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ namespace_id: namespaces
diff --git a/db/docs/organization_users.yml b/db/docs/organization_users.yml
index 6a1ccb7210b..82c91f16957 100644
--- a/db/docs/organization_users.yml
+++ b/db/docs/organization_users.yml
@@ -7,4 +7,4 @@ feature_categories:
description: User who has joined an organization
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123804
milestone: '16.2'
-gitlab_schema: gitlab_main_clusterwide
+gitlab_schema: gitlab_main_cell
diff --git a/db/docs/project_compliance_framework_settings.yml b/db/docs/project_compliance_framework_settings.yml
index ab68259e87e..3a9d82dfb27 100644
--- a/db/docs/project_compliance_framework_settings.yml
+++ b/db/docs/project_compliance_framework_settings.yml
@@ -7,4 +7,12 @@ feature_categories:
description: TODO
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28182
milestone: '13.0'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+allow_cross_joins:
+- gitlab_main_clusterwide
+allow_cross_transactions:
+- gitlab_main_clusterwide
+allow_cross_foreign_keys:
+- gitlab_main_clusterwide
+sharding_key:
+ project_id: projects
diff --git a/db/docs/project_compliance_standards_adherence.yml b/db/docs/project_compliance_standards_adherence.yml
index 78fbf8a8a46..0eae8b3fbb6 100644
--- a/db/docs/project_compliance_standards_adherence.yml
+++ b/db/docs/project_compliance_standards_adherence.yml
@@ -1,10 +1,12 @@
---
table_name: project_compliance_standards_adherence
classes:
- - Projects::ComplianceStandards::Adherence
+- Projects::ComplianceStandards::Adherence
feature_categories:
- compliance_management
description: Stores the details about projects and their adherence to compliance standards
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122293
milestone: '16.1'
gitlab_schema: gitlab_main_cell
+sharding_key:
+ project_id: projects
diff --git a/db/docs/sbom_source_packages.yml b/db/docs/sbom_source_packages.yml
new file mode 100644
index 00000000000..2c0df1df88e
--- /dev/null
+++ b/db/docs/sbom_source_packages.yml
@@ -0,0 +1,10 @@
+---
+table_name: sbom_source_packages
+classes:
+- Sbom::SourcePackage
+feature_categories:
+- dependency_management
+description: Tracks Source Package of an SBOM Occurrence
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140539
+milestone: '16.8'
+gitlab_schema: gitlab_main
diff --git a/db/docs/work_item_colors.yml b/db/docs/work_item_colors.yml
new file mode 100644
index 00000000000..f0908e92181
--- /dev/null
+++ b/db/docs/work_item_colors.yml
@@ -0,0 +1,12 @@
+---
+table_name: work_item_colors
+classes:
+- WorkItems::Color
+feature_categories:
+- team_planning
+description: The color of a Work Item.
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140331
+milestone: '16.8'
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ namespace_id: namespaces
diff --git a/db/docs/zoekt_enabled_namespaces.yml b/db/docs/zoekt_enabled_namespaces.yml
new file mode 100644
index 00000000000..c6997154bc2
--- /dev/null
+++ b/db/docs/zoekt_enabled_namespaces.yml
@@ -0,0 +1,12 @@
+---
+table_name: zoekt_enabled_namespaces
+classes:
+ - Search::Zoekt::EnabledNamespace
+feature_categories:
+ - global_search
+description: Represents a root namespace that has zoekt enabled
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138992
+milestone: '16.8'
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ root_namespace_id: namespaces
diff --git a/db/docs/zoekt_indices.yml b/db/docs/zoekt_indices.yml
new file mode 100644
index 00000000000..7cc5baa0a5c
--- /dev/null
+++ b/db/docs/zoekt_indices.yml
@@ -0,0 +1,12 @@
+---
+table_name: zoekt_indices
+classes:
+ - Search::Zoekt::Index
+feature_categories:
+ - global_search
+description: Represents a zoekt index for a root namespace
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138992
+milestone: '16.8'
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ namespace_id: namespaces
diff --git a/db/migrate/20231116201338_add_require_admin_two_factor_authentication_to_application_settings.rb b/db/migrate/20231116201338_add_require_admin_two_factor_authentication_to_application_settings.rb
new file mode 100644
index 00000000000..9f6c4feff34
--- /dev/null
+++ b/db/migrate/20231116201338_add_require_admin_two_factor_authentication_to_application_settings.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class AddRequireAdminTwoFactorAuthenticationToApplicationSettings < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def change
+ add_column :application_settings, :require_admin_two_factor_authentication, :boolean, default: false, null: false
+ end
+end
diff --git a/db/migrate/20231219120134_add_token_to_chat_names.rb b/db/migrate/20231123160255_add_token_to_chat_names.rb
index af8550b9020..af8550b9020 100644
--- a/db/migrate/20231219120134_add_token_to_chat_names.rb
+++ b/db/migrate/20231123160255_add_token_to_chat_names.rb
diff --git a/db/migrate/20231124022520_add_sms_sent_at_and_sms_send_count_to_phone_number_validations.rb b/db/migrate/20231124022520_add_sms_sent_at_and_sms_send_count_to_phone_number_validations.rb
new file mode 100644
index 00000000000..40508d8da6e
--- /dev/null
+++ b/db/migrate/20231124022520_add_sms_sent_at_and_sms_send_count_to_phone_number_validations.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class AddSmsSentAtAndSmsSendCountToPhoneNumberValidations < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def up
+ add_column :user_phone_number_validations, :sms_sent_at, :datetime_with_timezone, null: true
+ add_column :user_phone_number_validations, :sms_send_count, :smallint, default: 0, null: false
+ end
+
+ def down
+ remove_column :user_phone_number_validations, :sms_sent_at, if_exists: true
+ remove_column :user_phone_number_validations, :sms_send_count, if_exists: true
+ end
+end
diff --git a/db/migrate/20231129173649_add_terraform_module_duplicates_allowed_to_namespace_package_settings.rb b/db/migrate/20231129173649_add_terraform_module_duplicates_allowed_to_namespace_package_settings.rb
new file mode 100644
index 00000000000..ea465de5873
--- /dev/null
+++ b/db/migrate/20231129173649_add_terraform_module_duplicates_allowed_to_namespace_package_settings.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+class AddTerraformModuleDuplicatesAllowedToNamespacePackageSettings < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ def up
+ with_lock_retries do
+ add_column(:namespace_package_settings,
+ :terraform_module_duplicates_allowed,
+ :boolean,
+ null: false,
+ default: false,
+ if_not_exists: true
+ )
+
+ add_column(:namespace_package_settings,
+ :terraform_module_duplicate_exception_regex,
+ :text,
+ null: false,
+ default: '',
+ if_not_exists: true
+ )
+ end
+
+ add_text_limit(:namespace_package_settings, :terraform_module_duplicate_exception_regex, 255)
+ end
+
+ def down
+ with_lock_retries do
+ remove_column(:namespace_package_settings, :terraform_module_duplicates_allowed, if_exists: true)
+ remove_column(:namespace_package_settings, :terraform_module_duplicate_exception_regex, if_exists: true)
+ end
+ end
+end
diff --git a/db/migrate/20231130124606_add_project_id_name_version_id_index_to_installable_terraform_modules.rb b/db/migrate/20231130124606_add_project_id_name_version_id_index_to_installable_terraform_modules.rb
new file mode 100644
index 00000000000..0b305843bd5
--- /dev/null
+++ b/db/migrate/20231130124606_add_project_id_name_version_id_index_to_installable_terraform_modules.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class AddProjectIdNameVersionIdIndexToInstallableTerraformModules < Gitlab::Database::Migration[2.2]
+ milestone '16.7'
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'idx_pkgs_on_project_id_name_version_on_installable_terraform'
+ PACKAGE_TYPE_TERRAFORM_MODULE = 12
+ INSTALLABLE_CONDITION = 'status IN (0, 1)'
+
+ def up
+ add_concurrent_index(
+ :packages_packages,
+ %i[project_id name version id],
+ name: INDEX_NAME,
+ where: "package_type = #{PACKAGE_TYPE_TERRAFORM_MODULE} AND #{INSTALLABLE_CONDITION}"
+ )
+ end
+
+ def down
+ remove_concurrent_index_by_name(:packages_packages, INDEX_NAME)
+ end
+end
diff --git a/db/migrate/20231205165049_add_slug_to_topics.rb b/db/migrate/20231205165049_add_slug_to_topics.rb
new file mode 100644
index 00000000000..dedd871473d
--- /dev/null
+++ b/db/migrate/20231205165049_add_slug_to_topics.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class AddSlugToTopics < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ with_lock_retries do
+ add_column :topics, :slug, :text, if_not_exists: true
+ end
+
+ add_text_limit :topics, :slug, 255
+ end
+
+ def down
+ with_lock_retries do
+ remove_column :topics, :slug, if_exists: true
+ end
+ end
+end
diff --git a/db/migrate/20231206165856_create_zoekt_enabled_namespaces.rb b/db/migrate/20231206165856_create_zoekt_enabled_namespaces.rb
new file mode 100644
index 00000000000..a2a328706f1
--- /dev/null
+++ b/db/migrate/20231206165856_create_zoekt_enabled_namespaces.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class CreateZoektEnabledNamespaces < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ UNIQUE_ROOT_NAMESPACE_ID_INDEX_NAME = 'unique_zoekt_enabled_namespaces_on_root_namespace_id'
+ SEARCH_INDEX_NAME = 'index_zoekt_enabled_namespaces_on_search'
+
+ def change
+ create_table :zoekt_enabled_namespaces do |t|
+ t.bigint :root_namespace_id, null: false
+ t.timestamps_with_timezone null: false
+ t.boolean :search, null: false, default: true
+
+ t.index :root_namespace_id, unique: true, name: UNIQUE_ROOT_NAMESPACE_ID_INDEX_NAME, using: :btree
+ end
+ end
+end
diff --git a/db/migrate/20231206184344_create_zoekt_enabled_namespaces_namespace_foreign_key.rb b/db/migrate/20231206184344_create_zoekt_enabled_namespaces_namespace_foreign_key.rb
new file mode 100644
index 00000000000..93e3cd5433a
--- /dev/null
+++ b/db/migrate/20231206184344_create_zoekt_enabled_namespaces_namespace_foreign_key.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class CreateZoektEnabledNamespacesNamespaceForeignKey < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ def up
+ add_concurrent_foreign_key :zoekt_enabled_namespaces, :namespaces, column: :root_namespace_id, on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key :zoekt_enabled_namespaces, column: :root_namespace_id
+ end
+ end
+end
diff --git a/db/migrate/20231206190206_create_zoekt_indices.rb b/db/migrate/20231206190206_create_zoekt_indices.rb
new file mode 100644
index 00000000000..05549f7c152
--- /dev/null
+++ b/db/migrate/20231206190206_create_zoekt_indices.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class CreateZoektIndices < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ ZOEKT_NODE_ID_INDEX_NAME = 'index_zoekt_indices_on_zoekt_node_id'
+ STATE_INDEX_NAME = 'index_zoekt_indices_on_state'
+ ZOEKT_ENABLED_NAMESPACE_ID_AND_NODE_ID_INDEX_NAME = 'u_zoekt_indices_zoekt_enabled_namespace_id_and_zoekt_node_id'
+
+ def change
+ create_table :zoekt_indices do |t|
+ t.bigint :zoekt_enabled_namespace_id, null: true
+ t.bigint :zoekt_node_id, null: false
+ t.bigint :namespace_id, null: false
+ t.timestamps_with_timezone null: false
+ t.integer :state, null: false, default: 0, limit: 2
+
+ t.index :state, name: STATE_INDEX_NAME, using: :btree
+ t.index :zoekt_node_id, name: ZOEKT_NODE_ID_INDEX_NAME, using: :btree
+ t.index [:zoekt_enabled_namespace_id, :zoekt_node_id],
+ name: ZOEKT_ENABLED_NAMESPACE_ID_AND_NODE_ID_INDEX_NAME, unique: true, using: :btree
+ end
+ end
+end
diff --git a/db/migrate/20231206191102_create_zoekt_indices_zoekt_node_foreign_key.rb b/db/migrate/20231206191102_create_zoekt_indices_zoekt_node_foreign_key.rb
new file mode 100644
index 00000000000..389e52e37a6
--- /dev/null
+++ b/db/migrate/20231206191102_create_zoekt_indices_zoekt_node_foreign_key.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class CreateZoektIndicesZoektNodeForeignKey < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ def up
+ add_concurrent_foreign_key :zoekt_indices, :zoekt_nodes, column: :zoekt_node_id, on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key :zoekt_indices, column: :zoekt_node_id
+ end
+ end
+end
diff --git a/db/migrate/20231206212252_create_zoekt_indices_zoekt_enabled_namespace_foreign_key.rb b/db/migrate/20231206212252_create_zoekt_indices_zoekt_enabled_namespace_foreign_key.rb
new file mode 100644
index 00000000000..c36849cec0a
--- /dev/null
+++ b/db/migrate/20231206212252_create_zoekt_indices_zoekt_enabled_namespace_foreign_key.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class CreateZoektIndicesZoektEnabledNamespaceForeignKey < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ def up
+ add_concurrent_foreign_key :zoekt_indices, :zoekt_enabled_namespaces,
+ column: :zoekt_enabled_namespace_id, on_delete: :nullify
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key :zoekt_indices, column: :zoekt_enabled_namespace_id
+ end
+ end
+end
diff --git a/db/migrate/20231212090606_add_partition_id_to_pipeline_chat_data.rb b/db/migrate/20231212090606_add_partition_id_to_pipeline_chat_data.rb
new file mode 100644
index 00000000000..bf3c87f9816
--- /dev/null
+++ b/db/migrate/20231212090606_add_partition_id_to_pipeline_chat_data.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddPartitionIdToPipelineChatData < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def change
+ add_column(:ci_pipeline_chat_data, :partition_id, :bigint, default: 100, null: false)
+ end
+end
diff --git a/db/migrate/20231212154022_add_release_published_at_to_release.rb b/db/migrate/20231212154022_add_release_published_at_to_release.rb
new file mode 100644
index 00000000000..8ecb51a8cf1
--- /dev/null
+++ b/db/migrate/20231212154022_add_release_published_at_to_release.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddReleasePublishedAtToRelease < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def change
+ add_column :releases, :release_published_at, :datetime_with_timezone
+ end
+end
diff --git a/db/migrate/20231213065249_deprecate_ci_editor_ai_conversation_related_workers.rb b/db/migrate/20231213065249_deprecate_ci_editor_ai_conversation_related_workers.rb
new file mode 100644
index 00000000000..f0dd4775eb1
--- /dev/null
+++ b/db/migrate/20231213065249_deprecate_ci_editor_ai_conversation_related_workers.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class DeprecateCiEditorAiConversationRelatedWorkers < Gitlab::Database::Migration[2.2]
+ DEPRECATED_JOB_CLASSES = %w[
+ Ci::LLM::GenerateConfigWorker
+ OpenAi::ClearConversationsWorker
+ ]
+
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ sidekiq_remove_jobs(job_klasses: DEPRECATED_JOB_CLASSES)
+ end
+
+ def down
+ # This migration removes any instances of deprecated workers and cannot be undone.
+ end
+end
diff --git a/db/migrate/20231213170159_add_remove_project_to_member_roles.rb b/db/migrate/20231213170159_add_remove_project_to_member_roles.rb
new file mode 100644
index 00000000000..d13777c1df1
--- /dev/null
+++ b/db/migrate/20231213170159_add_remove_project_to_member_roles.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddRemoveProjectToMemberRoles < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def change
+ add_column :member_roles, :remove_project, :boolean, default: false, null: false
+ end
+end
diff --git a/db/migrate/20231214095546_add_issue_id_to_epics.rb b/db/migrate/20231214095546_add_issue_id_to_epics.rb
new file mode 100644
index 00000000000..0db34041726
--- /dev/null
+++ b/db/migrate/20231214095546_add_issue_id_to_epics.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class AddIssueIdToEpics < Gitlab::Database::Migration[2.2]
+ INDEX_NAME = 'index_unique_epics_on_issue_id'
+
+ disable_ddl_transaction!
+ milestone '16.7'
+
+ def up
+ add_column :epics, :issue_id, :int, if_not_exists: true
+ add_concurrent_index :epics, :issue_id, unique: true, name: INDEX_NAME
+ add_concurrent_foreign_key(:epics, :issues, column: :issue_id, validate: true)
+ end
+
+ def down
+ remove_column :epics, :issue_id, if_exists: true
+ end
+end
diff --git a/db/migrate/20231214222351_drop_index_users_forbidden_state.rb b/db/migrate/20231214222351_drop_index_users_forbidden_state.rb
new file mode 100644
index 00000000000..aa51702c93e
--- /dev/null
+++ b/db/migrate/20231214222351_drop_index_users_forbidden_state.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class DropIndexUsersForbiddenState < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ INDEX_NAME = :users_forbidden_state_idx
+ TABLE_NAME = :users
+
+ def up
+ remove_concurrent_index_by_name(TABLE_NAME, INDEX_NAME)
+ end
+
+ def down
+ add_concurrent_index TABLE_NAME, :id,
+ name: INDEX_NAME,
+ where: "confirmed_at IS NOT NULL AND (state <> ALL (ARRAY['blocked', 'banned', 'ldap_blocked']))"
+ end
+end
diff --git a/db/migrate/20231215101640_add_cascading_toggle_security_policies_policy_scope_setting.rb b/db/migrate/20231215101640_add_cascading_toggle_security_policies_policy_scope_setting.rb
new file mode 100644
index 00000000000..9ef0c70173b
--- /dev/null
+++ b/db/migrate/20231215101640_add_cascading_toggle_security_policies_policy_scope_setting.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddCascadingToggleSecurityPoliciesPolicyScopeSetting < Gitlab::Database::Migration[2.2]
+ milestone '16.7'
+
+ include Gitlab::Database::MigrationHelpers::CascadingNamespaceSettings
+
+ enable_lock_retries!
+
+ def up
+ add_cascading_namespace_setting :toggle_security_policies_policy_scope, :boolean, default: false, null: false
+ end
+
+ def down
+ remove_cascading_namespace_setting :toggle_security_policies_policy_scope
+ end
+end
diff --git a/db/migrate/20231215192706_create_ml_model_version_metadata.rb b/db/migrate/20231215192706_create_ml_model_version_metadata.rb
new file mode 100644
index 00000000000..a4c0b08a2ee
--- /dev/null
+++ b/db/migrate/20231215192706_create_ml_model_version_metadata.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class CreateMlModelVersionMetadata < Gitlab::Database::Migration[2.2]
+ ML_MODEL_VERSION_METADATA_NAME_INDEX_NAME = "unique_index_ml_model_version_metadata_name"
+ milestone '16.8'
+
+ def change
+ create_table :ml_model_version_metadata do |t|
+ t.timestamps_with_timezone null: false
+ t.references :project, foreign_key: { on_delete: :cascade }, index: true, null: false
+ t.references :model_version,
+ foreign_key: { to_table: :ml_model_versions, on_delete: :cascade },
+ index: false,
+ null: false
+ t.text :name, limit: 255, null: false
+ t.text :value, limit: 5000, null: false
+
+ t.index [:model_version_id, :name], unique: true, name: ML_MODEL_VERSION_METADATA_NAME_INDEX_NAME
+ end
+ end
+end
diff --git a/db/migrate/20231216190018_add_index_topics_on_slug.rb b/db/migrate/20231216190018_add_index_topics_on_slug.rb
new file mode 100644
index 00000000000..f83d733c008
--- /dev/null
+++ b/db/migrate/20231216190018_add_index_topics_on_slug.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddIndexTopicsOnSlug < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ INDEX_NAME = 'index_topics_on_slug'
+
+ def up
+ add_concurrent_index :topics, :slug, unique: true, where: 'slug IS NOT NULL', name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :topics, name: INDEX_NAME
+ end
+end
diff --git a/db/migrate/20231218172621_add_manage_group_access_tokens_to_member_roles.rb b/db/migrate/20231218172621_add_manage_group_access_tokens_to_member_roles.rb
new file mode 100644
index 00000000000..58f9f94a880
--- /dev/null
+++ b/db/migrate/20231218172621_add_manage_group_access_tokens_to_member_roles.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddManageGroupAccessTokensToMemberRoles < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def change
+ add_column :member_roles, :manage_group_access_tokens, :boolean, default: false, null: false
+ end
+end
diff --git a/db/migrate/20231219091924_initialize_conversion_of_geo_event_id_from_int_to_bigint.rb b/db/migrate/20231219091924_initialize_conversion_of_geo_event_id_from_int_to_bigint.rb
new file mode 100644
index 00000000000..10d67394435
--- /dev/null
+++ b/db/migrate/20231219091924_initialize_conversion_of_geo_event_id_from_int_to_bigint.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class InitializeConversionOfGeoEventIdFromIntToBigint < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ TABLE = :geo_event_log
+ COLUMNS = %i[geo_event_id]
+
+ def up
+ initialize_conversion_of_integer_to_bigint(TABLE, COLUMNS)
+ end
+
+ def down
+ revert_initialize_conversion_of_integer_to_bigint(TABLE, COLUMNS)
+ end
+end
diff --git a/db/migrate/20231220094609_add_release_published_at_index_to_release.rb b/db/migrate/20231220094609_add_release_published_at_index_to_release.rb
new file mode 100644
index 00000000000..bc5891ad198
--- /dev/null
+++ b/db/migrate/20231220094609_add_release_published_at_index_to_release.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class AddReleasePublishedAtIndexToRelease < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :releases, :release_published_at, name: 'releases_published_at_index'
+ end
+
+ def down
+ remove_concurrent_index :releases, :release_published_at, name: 'releases_published_at_index'
+ end
+end
diff --git a/db/migrate/20231220113459_add_work_item_color.rb b/db/migrate/20231220113459_add_work_item_color.rb
new file mode 100644
index 00000000000..127f93f41ea
--- /dev/null
+++ b/db/migrate/20231220113459_add_work_item_color.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class AddWorkItemColor < Gitlab::Database::Migration[2.2]
+ enable_lock_retries!
+ milestone '16.8'
+
+ def up
+ create_table :work_item_colors, id: false do |t|
+ t.timestamps_with_timezone null: false
+ t.references :issue, primary_key: true, index: false, default: nil,
+ foreign_key: { on_delete: :cascade, to_table: :issues }
+ t.bigint :namespace_id, null: false
+ t.text :color, null: false, limit: 7
+ end
+ end
+
+ def down
+ drop_table :work_item_colors
+ end
+end
diff --git a/db/migrate/20231221033539_create_sbom_source_packages_table.rb b/db/migrate/20231221033539_create_sbom_source_packages_table.rb
new file mode 100644
index 00000000000..6e2389baf8e
--- /dev/null
+++ b/db/migrate/20231221033539_create_sbom_source_packages_table.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class CreateSbomSourcePackagesTable < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ SBOM_SOURCE_PACKAGES_INDEX_NAME = 'idx_sbom_source_packages_on_name_and_purl_type'
+ SBOM_OCCURRENCES_SOURCE_PACKAGE_ID_AND_ID_INDEX_NAME = 'index_sbom_source_packages_on_source_package_id_and_id'
+
+ def up
+ with_lock_retries do
+ add_column :sbom_occurrences, :source_package_id, :bigint, if_not_exists: true
+ end
+
+ create_table :sbom_source_packages, if_not_exists: true do |t|
+ t.text :name, null: false, limit: 255
+ t.integer :purl_type, limit: 2, null: false
+ t.index [:name, :purl_type], unique: true, name: SBOM_SOURCE_PACKAGES_INDEX_NAME
+ end
+
+ add_concurrent_index :sbom_occurrences, [:source_package_id, :id],
+ name: SBOM_OCCURRENCES_SOURCE_PACKAGE_ID_AND_ID_INDEX_NAME
+
+ add_concurrent_foreign_key :sbom_occurrences, :sbom_source_packages,
+ column: :source_package_id, on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists(
+ :sbom_occurrences,
+ column: :source_package_id,
+ on_delete: :cascade
+ )
+ remove_column :sbom_occurrences, :source_package_id, if_exists: true
+ drop_table :sbom_source_packages, if_exists: true
+ end
+ end
+end
diff --git a/db/migrate/20231221113948_create_cloud_connector_access.rb b/db/migrate/20231221113948_create_cloud_connector_access.rb
new file mode 100644
index 00000000000..0b3950fc51d
--- /dev/null
+++ b/db/migrate/20231221113948_create_cloud_connector_access.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class CreateCloudConnectorAccess < Gitlab::Database::Migration[2.2]
+ enable_lock_retries!
+ milestone '16.8'
+
+ def change
+ create_table :cloud_connector_access do |t|
+ t.timestamps_with_timezone null: false
+ t.jsonb :data, null: false
+ end
+ end
+end
diff --git a/db/migrate/20231221171135_create_namespace_descendants_table.rb b/db/migrate/20231221171135_create_namespace_descendants_table.rb
new file mode 100644
index 00000000000..5201b132582
--- /dev/null
+++ b/db/migrate/20231221171135_create_namespace_descendants_table.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+class CreateNamespaceDescendantsTable < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::PartitioningMigrationHelpers::TableManagementHelpers
+
+ milestone '16.8'
+
+ def up
+ execute <<~SQL
+ CREATE TABLE namespace_descendants (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] NOT NULL DEFAULT ARRAY[]::bigint[],
+ all_project_ids bigint[] NOT NULL DEFAULT ARRAY[]::bigint[],
+ traversal_ids bigint[] NOT NULL DEFAULT ARRAY[]::bigint[],
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone,
+ PRIMARY KEY(namespace_id)
+ )
+ PARTITION BY HASH (namespace_id);
+ SQL
+
+ execute <<~SQL
+ CREATE INDEX
+ index_on_namespace_descendants_outdated
+ ON namespace_descendants (namespace_id)
+ WHERE outdated_at IS NOT NULL
+ SQL
+
+ create_hash_partitions(:namespace_descendants, 32)
+ end
+
+ def down
+ drop_table :namespace_descendants
+ end
+end
diff --git a/db/migrate/20231222071942_add_description_to_ci_instance_variables.rb b/db/migrate/20231222071942_add_description_to_ci_instance_variables.rb
new file mode 100644
index 00000000000..e71f27411eb
--- /dev/null
+++ b/db/migrate/20231222071942_add_description_to_ci_instance_variables.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class AddDescriptionToCiInstanceVariables < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ # rubocop:disable Migration/AddLimitToTextColumns -- text limit is added in 20231222072237_add_text_limit_to_ci_instance_variables_description.rb migration
+ def change
+ add_column(:ci_instance_variables, :description, :text)
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+end
diff --git a/db/migrate/20231226052618_add_work_item_colors_foreign_keys.rb b/db/migrate/20231226052618_add_work_item_colors_foreign_keys.rb
new file mode 100644
index 00000000000..4fa0806a28a
--- /dev/null
+++ b/db/migrate/20231226052618_add_work_item_colors_foreign_keys.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class AddWorkItemColorsForeignKeys < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ TABLE = :work_item_colors
+
+ def up
+ add_concurrent_index TABLE, :namespace_id, name: "wi_colors_namespace_id_index"
+ add_concurrent_foreign_key TABLE, :namespaces, column: :namespace_id, on_delete: :nullify
+ end
+
+ def down
+ remove_concurrent_index_by_name TABLE, name: "wi_colors_namespace_id_index"
+ remove_foreign_key_if_exists TABLE, :namespaces, column: :namespace_id
+ end
+end
diff --git a/db/migrate/20231227090634_deprecate_summarize_merge_request_worker.rb b/db/migrate/20231227090634_deprecate_summarize_merge_request_worker.rb
new file mode 100644
index 00000000000..b201028762c
--- /dev/null
+++ b/db/migrate/20231227090634_deprecate_summarize_merge_request_worker.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class DeprecateSummarizeMergeRequestWorker < Gitlab::Database::Migration[2.2]
+ DEPRECATED_JOB_CLASSES = %w[
+ MergeRequests::Llm::SummarizeMergeRequestWorker
+ ]
+
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ def up
+ sidekiq_remove_jobs(job_klasses: DEPRECATED_JOB_CLASSES)
+ end
+
+ def down
+ # This migration removes any instances of deprecated workers and cannot be undone.
+ end
+end
diff --git a/db/migrate/20231227103059_replace_fk_on_epics_issue_id.rb b/db/migrate/20231227103059_replace_fk_on_epics_issue_id.rb
new file mode 100644
index 00000000000..e5dd4e868f0
--- /dev/null
+++ b/db/migrate/20231227103059_replace_fk_on_epics_issue_id.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class ReplaceFkOnEpicsIssueId < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ FK_NAME = :fk_epics_issue_id_with_on_delete_nullify
+
+ def up
+ # This will replace the existing fk_893ee302e5
+ add_concurrent_foreign_key(:epics, :issues, column: :issue_id, on_delete: :nullify, validate: false, name: FK_NAME)
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists(:epics, column: :issue_id, on_delete: :nullify, name: FK_NAME)
+ end
+ end
+end
diff --git a/db/migrate/20231227104408_validate_fk_epics_issue_id_with_on_delete_nullify.rb b/db/migrate/20231227104408_validate_fk_epics_issue_id_with_on_delete_nullify.rb
new file mode 100644
index 00000000000..9f7601a704b
--- /dev/null
+++ b/db/migrate/20231227104408_validate_fk_epics_issue_id_with_on_delete_nullify.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class ValidateFkEpicsIssueIdWithOnDeleteNullify < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ FK_NAME = :fk_epics_issue_id_with_on_delete_nullify
+
+ # foreign key added in db/migrate/20231227103059_replace_fk_on_epics_issue_id.rb
+ def up
+ validate_foreign_key(:epics, :issue_id, name: FK_NAME)
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/migrate/20231227104711_remove_fk_epics_issue_id.rb b/db/migrate/20231227104711_remove_fk_epics_issue_id.rb
new file mode 100644
index 00000000000..29752e8741c
--- /dev/null
+++ b/db/migrate/20231227104711_remove_fk_epics_issue_id.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class RemoveFkEpicsIssueId < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ FK_NAME = :fk_893ee302e5
+
+ # new foreign key added in db/migrate/20231227103059_replace_fk_on_epics_issue_id.rb
+ # and validated in db/migrate/20231227104408_validate_fk_epics_issue_id_with_on_delete_nullify.rb
+ def up
+ with_lock_retries do
+ remove_foreign_key_if_exists(:epics, column: :issue_id, on_delete: :cascade, name: FK_NAME)
+ end
+ end
+
+ def down
+ add_concurrent_foreign_key(:epics, :issues, column: :issue_id, on_delete: :cascade, validate: false, name: FK_NAME)
+ end
+end
diff --git a/db/migrate/20231229112819_add_finished_at_index_for_p_ci_finished_build_ch_sync_events.rb b/db/migrate/20231229112819_add_finished_at_index_for_p_ci_finished_build_ch_sync_events.rb
new file mode 100644
index 00000000000..f52c1abcd49
--- /dev/null
+++ b/db/migrate/20231229112819_add_finished_at_index_for_p_ci_finished_build_ch_sync_events.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class AddFinishedAtIndexForPCiFinishedBuildChSyncEvents < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::PartitioningMigrationHelpers
+
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ INDEX_NAME = :index_p_ci_finished_build_ch_sync_events_finished_at
+ TABLE_NAME = :p_ci_finished_build_ch_sync_events
+ COLUMNS = [:partition, :build_finished_at]
+
+ def up
+ add_concurrent_partitioned_index(TABLE_NAME, COLUMNS, name: INDEX_NAME)
+ end
+
+ def down
+ remove_concurrent_partitioned_index_by_name(TABLE_NAME, INDEX_NAME)
+ end
+end
diff --git a/db/migrate/20240101031938_add_admin_terraform_state_to_member_roles.rb b/db/migrate/20240101031938_add_admin_terraform_state_to_member_roles.rb
new file mode 100644
index 00000000000..89222664d01
--- /dev/null
+++ b/db/migrate/20240101031938_add_admin_terraform_state_to_member_roles.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddAdminTerraformStateToMemberRoles < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def change
+ add_column :member_roles, :admin_terraform_state, :boolean, default: false, null: false
+ end
+end
diff --git a/db/migrate/20240102184844_add_access_level_to_organization_users.rb b/db/migrate/20240102184844_add_access_level_to_organization_users.rb
new file mode 100644
index 00000000000..8e37d056e56
--- /dev/null
+++ b/db/migrate/20240102184844_add_access_level_to_organization_users.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class AddAccessLevelToOrganizationUsers < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def change
+ add_column :organization_users, :access_level, :integer, default: 10, limit: 2, null: false
+ end
+end
diff --git a/db/migrate/20240103200822_replace_fk_on_approval_merge_request_rules_scan_result_policy_id.rb b/db/migrate/20240103200822_replace_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
new file mode 100644
index 00000000000..431183e7212
--- /dev/null
+++ b/db/migrate/20240103200822_replace_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class ReplaceFkOnApprovalMergeRequestRulesScanResultPolicyId < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ NEW_CONSTRAINT_NAME = 'fk_approval_merge_request_rules_on_scan_result_policy_id'
+
+ def up
+ add_concurrent_foreign_key(
+ :approval_merge_request_rules,
+ :scan_result_policies,
+ column: :scan_result_policy_id,
+ on_delete: :nullify,
+ validate: false,
+ name: NEW_CONSTRAINT_NAME)
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists(:approval_merge_request_rules,
+ column: :scan_result_policy_id,
+ on_delete: :nullify,
+ name: NEW_CONSTRAINT_NAME)
+ end
+ end
+end
diff --git a/db/migrate/20240103202629_validate_fk_on_approval_merge_request_rules_scan_result_policy_id.rb b/db/migrate/20240103202629_validate_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
new file mode 100644
index 00000000000..fee02ce91de
--- /dev/null
+++ b/db/migrate/20240103202629_validate_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class ValidateFkOnApprovalMergeRequestRulesScanResultPolicyId < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ NEW_CONSTRAINT_NAME = 'fk_approval_merge_request_rules_on_scan_result_policy_id'
+
+ # foreign key added in db/migrate/20240103200822_replace_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
+ def up
+ validate_foreign_key(:approval_merge_request_rules, :scan_result_policy_id, name: NEW_CONSTRAINT_NAME)
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/migrate/20240103203314_remove_old_fk_on_approval_merge_request_rules_scan_result_policy_id.rb b/db/migrate/20240103203314_remove_old_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
new file mode 100644
index 00000000000..7758b230242
--- /dev/null
+++ b/db/migrate/20240103203314_remove_old_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+class RemoveOldFkOnApprovalMergeRequestRulesScanResultPolicyId < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ OLD_CONSTRAINT_NAME = 'fk_f726c79756'
+
+ # new foreign key added in
+ # db/migrate/20240103200822_replace_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
+ # and validated in db/migrate/20240103202629_validate_fk_on_approval_merge_request_rules_scan_result_policy_id.rb
+ def up
+ remove_foreign_key_if_exists(
+ :approval_merge_request_rules,
+ column: :scan_result_policy_id,
+ on_delete: :cascade,
+ name: OLD_CONSTRAINT_NAME)
+ end
+
+ def down
+ add_concurrent_foreign_key(
+ :approval_merge_request_rules,
+ :scan_result_policies,
+ column: :scan_result_policy_id,
+ on_delete: :cascade,
+ validate: false,
+ name: OLD_CONSTRAINT_NAME)
+ end
+end
diff --git a/db/migrate/20240104124057_add_category_to_timelogs.rb b/db/migrate/20240104124057_add_category_to_timelogs.rb
new file mode 100644
index 00000000000..adda5fef873
--- /dev/null
+++ b/db/migrate/20240104124057_add_category_to_timelogs.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class AddCategoryToTimelogs < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ add_column :timelogs, :timelog_category_id, :bigint
+ add_concurrent_index(:timelogs, :timelog_category_id)
+ add_concurrent_foreign_key(
+ :timelogs,
+ :timelog_categories,
+ column: :timelog_category_id,
+ on_delete: :nullify
+ )
+ end
+
+ def down
+ remove_column :timelogs, :timelog_category_id
+ end
+end
diff --git a/db/migrate/20240104150106_add_partition_id_to_pipeline_metadata.rb b/db/migrate/20240104150106_add_partition_id_to_pipeline_metadata.rb
new file mode 100644
index 00000000000..cdada059306
--- /dev/null
+++ b/db/migrate/20240104150106_add_partition_id_to_pipeline_metadata.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddPartitionIdToPipelineMetadata < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def change
+ add_column(:ci_pipeline_metadata, :partition_id, :bigint, default: 100, null: false)
+ end
+end
diff --git a/db/migrate/20240104191736_migrate_zoekt_indexed_namespaces_to_zoekt_enabled_namespaces.rb b/db/migrate/20240104191736_migrate_zoekt_indexed_namespaces_to_zoekt_enabled_namespaces.rb
new file mode 100644
index 00000000000..3c3ef67e322
--- /dev/null
+++ b/db/migrate/20240104191736_migrate_zoekt_indexed_namespaces_to_zoekt_enabled_namespaces.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class MigrateZoektIndexedNamespacesToZoektEnabledNamespaces < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ milestone '16.8'
+
+ INSERTED_COLUMNS = %w[
+ root_namespace_id
+ search
+ created_at
+ updated_at
+ ].join(',')
+
+ def up
+ connection.execute(<<~SQL)
+ INSERT INTO zoekt_enabled_namespaces (#{INSERTED_COLUMNS})
+ (SELECT DISTINCT ON (namespace_id) namespace_id, search, created_at, updated_at
+ FROM zoekt_indexed_namespaces ORDER BY namespace_id, search)
+ SQL
+ end
+
+ def down
+ connection.execute(<<~SQL)
+ DELETE FROM zoekt_enabled_namespaces
+ SQL
+ end
+end
diff --git a/db/migrate/20240104191802_migrate_zoekt_indexed_namespaces_to_zoekt_indices.rb b/db/migrate/20240104191802_migrate_zoekt_indexed_namespaces_to_zoekt_indices.rb
new file mode 100644
index 00000000000..5461ad5094b
--- /dev/null
+++ b/db/migrate/20240104191802_migrate_zoekt_indexed_namespaces_to_zoekt_indices.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+class MigrateZoektIndexedNamespacesToZoektIndices < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ milestone '16.8'
+
+ INSERTED_COLUMNS = %w[
+ zoekt_enabled_namespace_id
+ namespace_id
+ zoekt_node_id
+ state
+ created_at
+ updated_at
+ ].join(',')
+
+ STATE_READY = 10
+
+ def up
+ connection.execute(<<~SQL)
+ WITH indexed_namespaces AS (
+ (SELECT DISTINCT ON (namespace_id) namespace_id, search, zoekt_node_id
+ FROM zoekt_indexed_namespaces ORDER BY namespace_id, search)
+ )
+
+ INSERT INTO zoekt_indices (#{INSERTED_COLUMNS})
+ SELECT
+ zoekt_enabled_namespaces.id,
+ indexed_namespaces.namespace_id,
+ indexed_namespaces.zoekt_node_id,
+ #{STATE_READY},
+ NOW(),
+ NOW()
+ FROM zoekt_enabled_namespaces
+ JOIN indexed_namespaces ON indexed_namespaces.namespace_id = zoekt_enabled_namespaces.root_namespace_id
+ SQL
+ end
+
+ def down
+ connection.execute(<<~SQL)
+ DELETE FROM zoekt_indices
+ SQL
+ end
+end
diff --git a/db/migrate/20240105000000_rename_workspace_url_domain_to_dns_zone.rb b/db/migrate/20240105000000_rename_workspace_url_domain_to_dns_zone.rb
new file mode 100644
index 00000000000..72e7ea566a8
--- /dev/null
+++ b/db/migrate/20240105000000_rename_workspace_url_domain_to_dns_zone.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class RenameWorkspaceUrlDomainToDnsZone < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ def up
+ rename_column_concurrently :workspaces, :url_domain, :dns_zone
+ end
+
+ def down
+ undo_rename_column_concurrently :workspaces, :url_domain, :dns_zone
+ end
+end
diff --git a/db/migrate/20240107084243_add_previous_weight_to_resource_weight_events.rb b/db/migrate/20240107084243_add_previous_weight_to_resource_weight_events.rb
new file mode 100644
index 00000000000..913f96933af
--- /dev/null
+++ b/db/migrate/20240107084243_add_previous_weight_to_resource_weight_events.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class AddPreviousWeightToResourceWeightEvents < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def change
+ add_column :resource_weight_events, :previous_weight, :integer
+ end
+end
diff --git a/db/migrate/20240108121335_copy_internal_ids_for_epics_and_issues_usage_on_groups.rb b/db/migrate/20240108121335_copy_internal_ids_for_epics_and_issues_usage_on_groups.rb
new file mode 100644
index 00000000000..205f7b88026
--- /dev/null
+++ b/db/migrate/20240108121335_copy_internal_ids_for_epics_and_issues_usage_on_groups.rb
@@ -0,0 +1,74 @@
+# frozen_string_literal: true
+
+class CopyInternalIdsForEpicsAndIssuesUsageOnGroups < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::SchemaHelpers
+
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ TRIGGER_ON_INSERT = 'trigger_copy_usage_on_internal_ids_on_insert'
+ TRIGGER_ON_UPDATE = 'trigger_copy_usage_on_internal_ids_on_update'
+ INSERT_OR_UPDATE_FUNCTION_NAME = 'insert_or_update_internal_ids_usage'
+
+ def up
+ execute(<<~SQL)
+ CREATE OR REPLACE FUNCTION #{INSERT_OR_UPDATE_FUNCTION_NAME}()
+ RETURNS trigger
+ LANGUAGE plpgsql
+ AS $$
+ DECLARE
+ namespace_type varchar;
+ copy_usage smallint;
+ BEGIN
+ IF (NEW.usage = 0) THEN
+ copy_usage = 4;
+
+ -- we only care about group level internal_ids so we check namespace type here
+ namespace_type = (SELECT type FROM namespaces WHERE id = NEW.namespace_id);
+ IF (namespace_type <> 'Group') THEN
+ RETURN NULL;
+ END IF;
+ ELSIF (NEW.usage = 4) THEN
+ copy_usage = 0;
+ ELSE
+ RETURN NULL;
+ END IF;
+
+ -- if value is the same there is nothing to update
+ IF (OLD.last_value = NEW.last_value AND (TG_OP = 'INSERT' OR TG_OP = 'UPDATE')) THEN
+ RETURN NULL;
+ END IF;
+
+ INSERT INTO internal_ids (usage, last_value, namespace_id)
+ VALUES (copy_usage, NEW.last_value, NEW.namespace_id)
+ ON CONFLICT (usage, namespace_id) WHERE namespace_id IS NOT NULL
+ DO UPDATE SET last_value = NEW.last_value;
+
+ RETURN NULL;
+ END
+ $$
+ SQL
+
+ execute(<<~SQL)
+ CREATE TRIGGER #{TRIGGER_ON_INSERT}
+ AFTER INSERT ON internal_ids
+ FOR EACH ROW
+ WHEN (((NEW.usage = 0) OR (NEW.usage = 4)) AND NEW.namespace_id IS NOT NULL)
+ EXECUTE FUNCTION #{INSERT_OR_UPDATE_FUNCTION_NAME}();
+ SQL
+
+ execute(<<~SQL)
+ CREATE TRIGGER #{TRIGGER_ON_UPDATE}
+ AFTER UPDATE ON internal_ids
+ FOR EACH ROW
+ WHEN (((NEW.usage = 0) OR (NEW.usage = 4)) AND NEW.namespace_id IS NOT NULL)
+ EXECUTE FUNCTION #{INSERT_OR_UPDATE_FUNCTION_NAME}();
+ SQL
+ end
+
+ def down
+ drop_trigger(:internal_ids, TRIGGER_ON_INSERT)
+ drop_trigger(:internal_ids, TRIGGER_ON_UPDATE)
+ drop_function(INSERT_OR_UPDATE_FUNCTION_NAME)
+ end
+end
diff --git a/db/migrate/20240108123023_create_ai_agents_table.rb b/db/migrate/20240108123023_create_ai_agents_table.rb
new file mode 100644
index 00000000000..87d43af3a30
--- /dev/null
+++ b/db/migrate/20240108123023_create_ai_agents_table.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class CreateAiAgentsTable < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def change
+ create_table :ai_agents do |t|
+ t.timestamps_with_timezone null: false
+ # Queries by project_id are covered by the project_id, name index
+ # because project_id is the leftmost column.
+ t.references :project, foreign_key: { on_delete: :cascade }, index: false, null: false
+
+ t.text :name, limit: 255, null: false
+
+ t.index [:project_id, :name], unique: true
+ end
+ end
+end
diff --git a/db/migrate/20240108123115_create_ai_agent_versions_table.rb b/db/migrate/20240108123115_create_ai_agent_versions_table.rb
new file mode 100644
index 00000000000..bfb09ec03e8
--- /dev/null
+++ b/db/migrate/20240108123115_create_ai_agent_versions_table.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class CreateAiAgentVersionsTable < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def change
+ create_table :ai_agent_versions do |t|
+ t.timestamps_with_timezone null: false
+ t.references :project, foreign_key: { on_delete: :cascade }, index: true, null: false
+
+ t.bigint :agent_id, null: false # fk cascade
+
+ t.text :prompt, limit: 5000, null: false
+ t.text :model, limit: 255, null: false
+
+ t.index :agent_id
+ end
+ end
+end
diff --git a/db/migrate/20240108123509_add_fk_on_ai_agent_versions_to_ai_agents.rb b/db/migrate/20240108123509_add_fk_on_ai_agent_versions_to_ai_agents.rb
new file mode 100644
index 00000000000..cf7c49c2db4
--- /dev/null
+++ b/db/migrate/20240108123509_add_fk_on_ai_agent_versions_to_ai_agents.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddFkOnAiAgentVersionsToAiAgents < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_foreign_key(:ai_agent_versions, :ai_agents, column: :agent_id, on_delete: :cascade)
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists(:ai_agent_versions, column: :agent_id, on_delete: :cascade)
+ end
+ end
+end
diff --git a/db/migrate/20240109082354_add_partition_id_to_pipeline_artifact.rb b/db/migrate/20240109082354_add_partition_id_to_pipeline_artifact.rb
new file mode 100644
index 00000000000..8a922aed648
--- /dev/null
+++ b/db/migrate/20240109082354_add_partition_id_to_pipeline_artifact.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddPartitionIdToPipelineArtifact < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def change
+ add_column(:ci_pipeline_artifacts, :partition_id, :bigint, default: 100, null: false)
+ end
+end
diff --git a/db/migrate/20240109145839_add_partition_id_to_pipeline_config.rb b/db/migrate/20240109145839_add_partition_id_to_pipeline_config.rb
new file mode 100644
index 00000000000..e4f661a5e31
--- /dev/null
+++ b/db/migrate/20240109145839_add_partition_id_to_pipeline_config.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddPartitionIdToPipelineConfig < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ def change
+ add_column(:ci_pipelines_config, :partition_id, :bigint, default: 100, null: false)
+ end
+end
diff --git a/db/migrate/20240110085226_add_rate_limits_to_application_settings.rb b/db/migrate/20240110085226_add_rate_limits_to_application_settings.rb
new file mode 100644
index 00000000000..2560977f979
--- /dev/null
+++ b/db/migrate/20240110085226_add_rate_limits_to_application_settings.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddRateLimitsToApplicationSettings < Gitlab::Database::Migration[2.2]
+ milestone '16.9'
+ enable_lock_retries!
+
+ def change
+ add_column :application_settings, :rate_limits, :jsonb, default: {}, null: false
+ end
+end
diff --git a/db/migrate/20240111134328_routing_table_prepare_async_constraint_for_pipeline_variables.rb b/db/migrate/20240111134328_routing_table_prepare_async_constraint_for_pipeline_variables.rb
new file mode 100644
index 00000000000..4cf3d9c1721
--- /dev/null
+++ b/db/migrate/20240111134328_routing_table_prepare_async_constraint_for_pipeline_variables.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+class RoutingTablePrepareAsyncConstraintForPipelineVariables < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::PartitioningMigrationHelpers::TableManagementHelpers
+
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ TABLE_NAME = :ci_pipeline_variables
+ PARENT_TABLE_NAME = :p_ci_pipeline_variables
+ FIRST_PARTITION = [100, 101]
+ PARTITION_COLUMN = :partition_id
+
+ def up
+ prepare_constraint_for_list_partitioning(
+ table_name: TABLE_NAME,
+ partitioning_column: PARTITION_COLUMN,
+ parent_table_name: PARENT_TABLE_NAME,
+ initial_partitioning_value: FIRST_PARTITION,
+ async: true
+ )
+ end
+
+ def down
+ revert_preparing_constraint_for_list_partitioning(
+ table_name: TABLE_NAME,
+ partitioning_column: PARTITION_COLUMN,
+ parent_table_name: PARENT_TABLE_NAME,
+ initial_partitioning_value: FIRST_PARTITION
+ )
+ end
+end
diff --git a/db/migrate/20240115115029_add_rate_limits_hash_constraint_to_application_settings.rb b/db/migrate/20240115115029_add_rate_limits_hash_constraint_to_application_settings.rb
new file mode 100644
index 00000000000..14ab736b5d2
--- /dev/null
+++ b/db/migrate/20240115115029_add_rate_limits_hash_constraint_to_application_settings.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class AddRateLimitsHashConstraintToApplicationSettings < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.9'
+
+ CONSTRAINT_NAME = 'check_application_settings_rate_limits_is_hash'
+
+ def up
+ add_check_constraint(
+ :application_settings,
+ "(jsonb_typeof(rate_limits) = 'object')",
+ CONSTRAINT_NAME
+ )
+ end
+
+ def down
+ remove_check_constraint :application_settings, CONSTRAINT_NAME
+ end
+end
diff --git a/db/post_migrate/20231204042048_finalize_system_note_metadata_bigint_conversion.rb b/db/post_migrate/20231204042048_finalize_system_note_metadata_bigint_conversion.rb
new file mode 100644
index 00000000000..cd6550d6bad
--- /dev/null
+++ b/db/post_migrate/20231204042048_finalize_system_note_metadata_bigint_conversion.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class FinalizeSystemNoteMetadataBigintConversion < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::MigrationHelpers::ConvertToBigint
+
+ disable_ddl_transaction!
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ milestone '16.8'
+
+ TABLE_NAME = :system_note_metadata
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: 'CopyColumnUsingBackgroundMigrationJob',
+ table_name: TABLE_NAME,
+ column_name: 'id',
+ job_arguments: [['id'], ['id_convert_to_bigint']]
+ )
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20231204095802_change_i_code_review_create_mr_keys_from_redis_hll_to_redis.rb b/db/post_migrate/20231204095802_change_i_code_review_create_mr_keys_from_redis_hll_to_redis.rb
new file mode 100644
index 00000000000..d006e0f3121
--- /dev/null
+++ b/db/post_migrate/20231204095802_change_i_code_review_create_mr_keys_from_redis_hll_to_redis.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class ChangeICodeReviewCreateMrKeysFromRedisHllToRedis < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def up
+ # no-op
+ #
+ # Removed due to https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17321
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20231205200847_rollback_user_foreign_key_from_in_product_marketing_emails.rb b/db/post_migrate/20231205200847_rollback_user_foreign_key_from_in_product_marketing_emails.rb
new file mode 100644
index 00000000000..fe4509204db
--- /dev/null
+++ b/db/post_migrate/20231205200847_rollback_user_foreign_key_from_in_product_marketing_emails.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class RollbackUserForeignKeyFromInProductMarketingEmails < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ def up
+ with_lock_retries do
+ remove_foreign_key_if_exists :in_product_marketing_emails, :users, name: 'fk_35c9101b63'
+ end
+ end
+
+ def down
+ add_concurrent_foreign_key :in_product_marketing_emails, :users, column: :user_id, name: 'fk_35c9101b63',
+ on_delete: :cascade
+ end
+end
diff --git a/db/post_migrate/20231205200925_drop_in_product_marketing_emails.rb b/db/post_migrate/20231205200925_drop_in_product_marketing_emails.rb
new file mode 100644
index 00000000000..5a121793333
--- /dev/null
+++ b/db/post_migrate/20231205200925_drop_in_product_marketing_emails.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class DropInProductMarketingEmails < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def up
+ drop_table :in_product_marketing_emails
+ end
+
+ def down
+ create_table :in_product_marketing_emails do |t|
+ t.bigint :user_id, null: false
+ t.datetime_with_timezone :cta_clicked_at
+ t.integer :track, null: false, limit: 2
+ t.integer :series, null: false, limit: 2
+
+ t.timestamps_with_timezone
+ end
+
+ add_index :in_product_marketing_emails, :user_id
+ add_index :in_product_marketing_emails, %i[user_id track series], unique: true,
+ name: 'index_in_product_marketing_emails_on_user_track_series'
+ add_index :in_product_marketing_emails, %i[track series id cta_clicked_at],
+ name: 'index_in_product_marketing_emails_on_track_series_id_clicked'
+ end
+end
diff --git a/db/post_migrate/20231207145335_cleanup_group_level_work_items.rb b/db/post_migrate/20231207145335_cleanup_group_level_work_items.rb
new file mode 100644
index 00000000000..d52f0518f44
--- /dev/null
+++ b/db/post_migrate/20231207145335_cleanup_group_level_work_items.rb
@@ -0,0 +1,71 @@
+# frozen_string_literal: true
+
+class CleanupGroupLevelWorkItems < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+ disable_ddl_transaction!
+
+ BATCH_SIZE = 100
+
+ class MigrationIssue < MigrationRecord
+ self.table_name = :issues
+
+ include EachBatch
+ end
+
+ class MigrationNote < MigrationRecord
+ self.table_name = :notes
+
+ include EachBatch
+ end
+
+ class MigrationLabelLink < MigrationRecord
+ self.table_name = :label_links
+
+ include EachBatch
+ end
+
+ class MigrationTodo < MigrationRecord
+ self.table_name = :todos
+
+ include EachBatch
+ end
+
+ def up
+ MigrationIssue.where(project_id: nil).each_batch(of: BATCH_SIZE) do |batch|
+ logger.info("deleting #{batch.size} issues at group level: #{batch.pluck(:id)}")
+
+ # cleaning up notes for the batch of issues
+ MigrationNote.where(noteable_type: 'Issue', noteable_id: batch).each_batch(of: BATCH_SIZE) do |note_batch|
+ logger.info("deleting #{note_batch.size} notes for issues at group level: #{note_batch.pluck(:id)}")
+ note_batch.delete_all
+ end
+
+ # cleaning up label links for the batch of issues
+ MigrationLabelLink.where(target_type: 'Issue', target_id: batch).each_batch(of: BATCH_SIZE) do |label_link_batch|
+ logger.info(
+ "deleting #{label_link_batch.size} label links for issues at group level: #{label_link_batch.pluck(:id)}"
+ )
+ label_link_batch.delete_all
+ end
+
+ # cleaning up todos for the batch of issues
+ MigrationTodo.where(target_type: 'Issue', target_id: batch).each_batch(of: BATCH_SIZE) do |todo_batch|
+ logger.info("deleting #{todo_batch.size} todos for issues at group level: #{todo_batch.pluck(:id)}")
+ todo_batch.delete_all
+ end
+
+ batch.delete_all
+ end
+ end
+
+ def down
+ # no-op
+ end
+
+ private
+
+ def logger
+ @logger ||= Gitlab::BackgroundMigration::Logger.build
+ end
+end
diff --git a/db/post_migrate/20231207155340_prepare_iid_namespace_unique_index_in_issues.rb b/db/post_migrate/20231207155340_prepare_iid_namespace_unique_index_in_issues.rb
new file mode 100644
index 00000000000..a0149a79f83
--- /dev/null
+++ b/db/post_migrate/20231207155340_prepare_iid_namespace_unique_index_in_issues.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class PrepareIidNamespaceUniqueIndexInIssues < Gitlab::Database::Migration[2.2]
+ INDEX_NAME = 'index_issues_on_namespace_id_iid_unique'
+
+ milestone '16.8'
+
+ # TODO: Index to be created synchronously in https://gitlab.com/gitlab-org/gitlab/-/issues/435856
+ def up
+ prepare_async_index :issues, [:namespace_id, :iid], unique: true, name: INDEX_NAME
+ end
+
+ def down
+ unprepare_async_index :issues, [:namespace_id, :iid], unique: true, name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20231207211418_add_iid_namespace_unique_index_to_issues.rb b/db/post_migrate/20231207211418_add_iid_namespace_unique_index_to_issues.rb
new file mode 100644
index 00000000000..4c2439f33ea
--- /dev/null
+++ b/db/post_migrate/20231207211418_add_iid_namespace_unique_index_to_issues.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddIidNamespaceUniqueIndexToIssues < Gitlab::Database::Migration[2.2]
+ INDEX_NAME = 'index_issues_on_namespace_id_iid_unique'
+
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ add_concurrent_index :issues, [:namespace_id, :iid], name: INDEX_NAME, unique: true
+ end
+
+ def down
+ remove_concurrent_index_by_name :issues, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20231207221418_drop_namespace_id_index_on_issues.rb b/db/post_migrate/20231207221418_drop_namespace_id_index_on_issues.rb
new file mode 100644
index 00000000000..38df861de00
--- /dev/null
+++ b/db/post_migrate/20231207221418_drop_namespace_id_index_on_issues.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class DropNamespaceIdIndexOnIssues < Gitlab::Database::Migration[2.2]
+ INDEX_NAME = 'index_issues_on_namespace_id'
+
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ remove_concurrent_index_by_name :issues, INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :issues, :namespace_id, name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20231211154654_add_work_items_rolledup_dates_widget.rb b/db/post_migrate/20231211154654_add_work_items_rolledup_dates_widget.rb
new file mode 100644
index 00000000000..b45967920fe
--- /dev/null
+++ b/db/post_migrate/20231211154654_add_work_items_rolledup_dates_widget.rb
@@ -0,0 +1,49 @@
+# frozen_string_literal: true
+
+class AddWorkItemsRolledupDatesWidget < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ class WorkItemType < MigrationRecord
+ self.table_name = 'work_item_types'
+ end
+
+ class WidgetDefinition < MigrationRecord
+ self.table_name = 'work_item_widget_definitions'
+ end
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+ disable_ddl_transaction!
+
+ WIDGET_NAME = 'Rolledup dates'
+ WIDGET_ENUM_VALUE = 19
+ WORK_ITEM_TYPES = ['Epic'].freeze
+
+ def up
+ widgets = WORK_ITEM_TYPES.each_with_object([]) do |type_name, result|
+ type = WorkItemType.find_by_name_and_namespace_id(type_name, nil)
+
+ unless type
+ Gitlab::AppLogger.warn("type #{type_name} is missing, not adding widget")
+
+ next
+ end
+
+ result << {
+ work_item_type_id: type.id,
+ name: WIDGET_NAME,
+ widget_type: WIDGET_ENUM_VALUE
+ }
+ end
+
+ return if widgets.empty?
+
+ WidgetDefinition.upsert_all(
+ widgets,
+ unique_by: :index_work_item_widget_definitions_on_default_witype_and_name
+ )
+ end
+
+ def down
+ WidgetDefinition.where(name: WIDGET_NAME).delete_all
+ end
+end
diff --git a/db/post_migrate/20231212135235_queue_backfill_vs_code_settings_version.rb b/db/post_migrate/20231212135235_queue_backfill_vs_code_settings_version.rb
new file mode 100644
index 00000000000..db2704c3c33
--- /dev/null
+++ b/db/post_migrate/20231212135235_queue_backfill_vs_code_settings_version.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class QueueBackfillVsCodeSettingsVersion < Gitlab::Database::Migration[2.2]
+ milestone '16.7'
+
+ MIGRATION = "BackfillVsCodeSettingsVersion"
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 1000
+ SUB_BATCH_SIZE = 100
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :vs_code_settings,
+ :id,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :vs_code_settings, :id, [])
+ end
+end
diff --git a/db/post_migrate/20231213014658_remove_plain_text_credit_card_columns.rb b/db/post_migrate/20231213014658_remove_plain_text_credit_card_columns.rb
new file mode 100644
index 00000000000..c1ecf63012d
--- /dev/null
+++ b/db/post_migrate/20231213014658_remove_plain_text_credit_card_columns.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+class RemovePlainTextCreditCardColumns < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ FULL_MATCH_INDEX_NAME = 'index_user_credit_card_validations_meta_data_full_match_lower'
+ FULL_MATCH_FIELDS = 'lower(holder_name), expiration_date, last_digits, credit_card_validated_at'
+
+ PARTIAL_MATCH_INDEX_NAME = 'index_user_credit_card_validations_meta_data_partial_match'
+ PARTIAL_MATCH_FIELDS = 'expiration_date, last_digits, network, credit_card_validated_at'
+
+ def up
+ with_lock_retries do
+ remove_column :user_credit_card_validations, :holder_name, if_exists: true
+ remove_column :user_credit_card_validations, :network, if_exists: true
+ remove_column :user_credit_card_validations, :expiration_date, if_exists: true
+ remove_column :user_credit_card_validations, :last_digits, if_exists: true
+ end
+ end
+
+ def down
+ add_column :user_credit_card_validations, :holder_name, :text, if_not_exists: true
+ add_column :user_credit_card_validations, :network, :text, if_not_exists: true
+ add_column :user_credit_card_validations, :expiration_date, :date, if_not_exists: true
+ add_column :user_credit_card_validations, :last_digits, :integer, limit: 2, if_not_exists: true
+
+ add_text_limit :user_credit_card_validations, :holder_name, 50
+ add_text_limit :user_credit_card_validations, :network, 32
+ add_check_constraint :user_credit_card_validations, 'last_digits BETWEEN 0 AND 9999',
+ 'credit_card_last_digits_range'
+
+ add_concurrent_index :user_credit_card_validations, FULL_MATCH_FIELDS, name: FULL_MATCH_INDEX_NAME
+ add_concurrent_index :user_credit_card_validations, PARTIAL_MATCH_FIELDS, name: PARTIAL_MATCH_INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20231213064314_remove_ci_editor_ai_conversation_messages_table.rb b/db/post_migrate/20231213064314_remove_ci_editor_ai_conversation_messages_table.rb
new file mode 100644
index 00000000000..b108805a22d
--- /dev/null
+++ b/db/post_migrate/20231213064314_remove_ci_editor_ai_conversation_messages_table.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+class RemoveCiEditorAiConversationMessagesTable < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def up
+ drop_table :ci_editor_ai_conversation_messages, if_exists: true
+ end
+
+ def down
+ create_table :ci_editor_ai_conversation_messages do |t|
+ t.bigint :user_id,
+ null: false
+ t.bigint :project_id,
+ null: false
+ t.timestamps_with_timezone null: false
+ t.text :role, limit: 100,
+ null: false
+ t.text :content, limit: 16384,
+ null: true
+ t.text :async_errors, array: true, null: false, default: []
+
+ t.index [:user_id, :project_id, :created_at],
+ name: :index_ci_editor_ai_messages_on_user_project_and_created_at
+
+ t.index :project_id,
+ name: :index_ci_editor_ai_messages_project_id
+
+ t.index :created_at,
+ name: :index_ci_editor_ai_messages_created_at
+ end
+ end
+end
diff --git a/db/post_migrate/20231213080216_finalize_merge_request_diffs_project_id_backfill.rb b/db/post_migrate/20231213080216_finalize_merge_request_diffs_project_id_backfill.rb
new file mode 100644
index 00000000000..cb83b00b2a2
--- /dev/null
+++ b/db/post_migrate/20231213080216_finalize_merge_request_diffs_project_id_backfill.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class FinalizeMergeRequestDiffsProjectIdBackfill < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: 'BackfillMergeRequestDiffsProjectId',
+ table_name: :merge_request_diffs,
+ column_name: :id,
+ job_arguments: [],
+ finalize: true
+ )
+ end
+
+ def down; end
+end
diff --git a/db/post_migrate/20231213080238_validate_merge_request_diffs_project_id_null_constraint.rb b/db/post_migrate/20231213080238_validate_merge_request_diffs_project_id_null_constraint.rb
new file mode 100644
index 00000000000..6e2d591bd96
--- /dev/null
+++ b/db/post_migrate/20231213080238_validate_merge_request_diffs_project_id_null_constraint.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class ValidateMergeRequestDiffsProjectIdNullConstraint < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def up
+ validate_not_null_constraint :merge_request_diffs, :project_id
+ end
+
+ def down; end
+end
diff --git a/db/post_migrate/20231214111617_queue_backfill_owasp_top_ten_of_vulnerability_reads.rb b/db/post_migrate/20231214111617_queue_backfill_owasp_top_ten_of_vulnerability_reads.rb
new file mode 100644
index 00000000000..e8b13212df8
--- /dev/null
+++ b/db/post_migrate/20231214111617_queue_backfill_owasp_top_ten_of_vulnerability_reads.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+class QueueBackfillOwaspTopTenOfVulnerabilityReads < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ MIGRATION = "BackfillOwaspTopTenOfVulnerabilityReads"
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 10000
+ SUB_BATCH_SIZE = 50
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+ disable_ddl_transaction!
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :vulnerability_reads,
+ :vulnerability_id,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :vulnerability_reads, :vulnerability_id, [])
+ end
+end
diff --git a/db/post_migrate/20231215130625_schedule_index_to_events_author_group_action_target_type_created_at.rb b/db/post_migrate/20231215130625_schedule_index_to_events_author_group_action_target_type_created_at.rb
new file mode 100644
index 00000000000..063aff58176
--- /dev/null
+++ b/db/post_migrate/20231215130625_schedule_index_to_events_author_group_action_target_type_created_at.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class ScheduleIndexToEventsAuthorGroupActionTargetTypeCreatedAt < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ INDEX_NAME = 'index_events_author_id_group_id_action_target_type_created_at'
+ COLUMNS = [:author_id, :group_id, :action, :target_type, :created_at]
+
+ # TODO: Index to be created synchronously in https://gitlab.com/gitlab-org/gitlab/-/issues/435524
+ def up
+ prepare_async_index :events, COLUMNS, name: INDEX_NAME
+ end
+
+ def down
+ unprepare_async_index :events, COLUMNS, name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20231215151348_finalize_workspaces_config_version_2_migration.rb b/db/post_migrate/20231215151348_finalize_workspaces_config_version_2_migration.rb
new file mode 100644
index 00000000000..c76bc15d778
--- /dev/null
+++ b/db/post_migrate/20231215151348_finalize_workspaces_config_version_2_migration.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class FinalizeWorkspacesConfigVersion2Migration < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ MIGRATION = 'UpdateWorkspacesConfigVersion'
+ disable_ddl_transaction!
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: MIGRATION,
+ table_name: :workspaces,
+ column_name: :id,
+ job_arguments: [],
+ finalize: true
+ )
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20231217053910_remove_due_date_sourcing_milestone_id_column_from_vulnerabilities.rb b/db/post_migrate/20231217053910_remove_due_date_sourcing_milestone_id_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..5cd41dff0ef
--- /dev/null
+++ b/db/post_migrate/20231217053910_remove_due_date_sourcing_milestone_id_column_from_vulnerabilities.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class RemoveDueDateSourcingMilestoneIdColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ with_lock_retries do
+ remove_column :vulnerabilities, :due_date_sourcing_milestone_id
+ end
+ end
+
+ def down
+ unless column_exists?(:vulnerabilities, :due_date_sourcing_milestone_id)
+ add_column :vulnerabilities, :due_date_sourcing_milestone_id, :bigint
+ end
+
+ # Add back index and constraint that were dropped in `up`
+ add_concurrent_index(:vulnerabilities, :due_date_sourcing_milestone_id)
+ add_concurrent_foreign_key(:vulnerabilities, :milestones, column: :due_date_sourcing_milestone_id,
+ on_delete: :nullify)
+ end
+end
diff --git a/db/post_migrate/20231218074237_add_index_to_ci_job_artifact_states.rb b/db/post_migrate/20231218074237_add_index_to_ci_job_artifact_states.rb
new file mode 100644
index 00000000000..bd0a46f14ba
--- /dev/null
+++ b/db/post_migrate/20231218074237_add_index_to_ci_job_artifact_states.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class AddIndexToCiJobArtifactStates < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+ INDEX_NAME = :index_ci_job_artifact_states_on_job_artifact_id_partition_id
+ TABLE_NAME = :ci_job_artifact_states
+
+ def up
+ add_concurrent_index(TABLE_NAME, [:job_artifact_id, :partition_id], name: INDEX_NAME)
+ end
+
+ def down
+ remove_concurrent_index_by_name(TABLE_NAME, INDEX_NAME)
+ end
+end
diff --git a/db/post_migrate/20231218074508_add_index_to_ci_build_trace_metadata.rb b/db/post_migrate/20231218074508_add_index_to_ci_build_trace_metadata.rb
new file mode 100644
index 00000000000..574c71034fe
--- /dev/null
+++ b/db/post_migrate/20231218074508_add_index_to_ci_build_trace_metadata.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class AddIndexToCiBuildTraceMetadata < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+ INDEX_NAME = :index_ci_build_trace_metadata_on_trace_artifact_id_partition_id
+ TABLE_NAME = :ci_build_trace_metadata
+
+ def up
+ add_concurrent_index(TABLE_NAME, [:trace_artifact_id, :partition_id], name: INDEX_NAME)
+ end
+
+ def down
+ remove_concurrent_index_by_name(TABLE_NAME, INDEX_NAME)
+ end
+end
diff --git a/db/post_migrate/20231218092401_queue_backfill_partition_id_ci_pipeline_chat_data.rb b/db/post_migrate/20231218092401_queue_backfill_partition_id_ci_pipeline_chat_data.rb
new file mode 100644
index 00000000000..ffa8d0dbd21
--- /dev/null
+++ b/db/post_migrate/20231218092401_queue_backfill_partition_id_ci_pipeline_chat_data.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class QueueBackfillPartitionIdCiPipelineChatData < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ restrict_gitlab_migration gitlab_schema: :gitlab_ci
+
+ MIGRATION = 'BackfillPartitionIdCiPipelineChatData'
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 1000
+ SUB_BATCH_SIZE = 100
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :ci_pipeline_chat_data,
+ :id,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :ci_pipeline_chat_data, :id, [])
+ end
+end
diff --git a/db/post_migrate/20231218121131_remove_start_date_sourcing_milestone_id_column_from_vulnerabilities.rb b/db/post_migrate/20231218121131_remove_start_date_sourcing_milestone_id_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..1ca04e5aed1
--- /dev/null
+++ b/db/post_migrate/20231218121131_remove_start_date_sourcing_milestone_id_column_from_vulnerabilities.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class RemoveStartDateSourcingMilestoneIdColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ with_lock_retries do
+ remove_column :vulnerabilities, :start_date_sourcing_milestone_id
+ end
+ end
+
+ def down
+ unless column_exists?(:vulnerabilities, :start_date_sourcing_milestone_id)
+ add_column :vulnerabilities, :start_date_sourcing_milestone_id, :bigint
+ end
+
+ # Add back index and constraint that were dropped in `up`
+ add_concurrent_index(:vulnerabilities, :start_date_sourcing_milestone_id)
+ add_concurrent_foreign_key(:vulnerabilities, :milestones, column: :start_date_sourcing_milestone_id,
+ on_delete: :nullify)
+ end
+end
diff --git a/db/post_migrate/20231219044006_drop_note_mentions_temp_index.rb b/db/post_migrate/20231219044006_drop_note_mentions_temp_index.rb
new file mode 100644
index 00000000000..948530d4c02
--- /dev/null
+++ b/db/post_migrate/20231219044006_drop_note_mentions_temp_index.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class DropNoteMentionsTempIndex < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ INDEX_NAME = 'note_mentions_temp_index'
+
+ def up
+ remove_concurrent_index_by_name :notes, INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :notes, [:id, :noteable_type], where: "note ~~ '%@%'::text", name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20231219075928_finalize_backfill_users_with_defaults.rb b/db/post_migrate/20231219075928_finalize_backfill_users_with_defaults.rb
new file mode 100644
index 00000000000..373ea1faaa9
--- /dev/null
+++ b/db/post_migrate/20231219075928_finalize_backfill_users_with_defaults.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class FinalizeBackfillUsersWithDefaults < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ MIGRATION = "BackfillUsersWithDefaults"
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: MIGRATION,
+ table_name: 'users',
+ column_name: 'id',
+ job_arguments: []
+ )
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20231219075929_finalize_backfill_user_preferences_with_defaults.rb b/db/post_migrate/20231219075929_finalize_backfill_user_preferences_with_defaults.rb
new file mode 100644
index 00000000000..fb10385ad20
--- /dev/null
+++ b/db/post_migrate/20231219075929_finalize_backfill_user_preferences_with_defaults.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class FinalizeBackfillUserPreferencesWithDefaults < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ MIGRATION = "BackfillUserPreferencesWithDefaults"
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: MIGRATION,
+ table_name: 'user_preferences',
+ column_name: 'id',
+ job_arguments: []
+ )
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20231219083804_add_fk_to_ci_build_trace_metadata_on_partition_id_and_trace_artifact_id.rb b/db/post_migrate/20231219083804_add_fk_to_ci_build_trace_metadata_on_partition_id_and_trace_artifact_id.rb
new file mode 100644
index 00000000000..bb7749b8ab5
--- /dev/null
+++ b/db/post_migrate/20231219083804_add_fk_to_ci_build_trace_metadata_on_partition_id_and_trace_artifact_id.rb
@@ -0,0 +1,54 @@
+# frozen_string_literal: true
+
+class AddFkToCiBuildTraceMetadataOnPartitionIdAndTraceArtifactId < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::MigrationHelpers::WraparoundAutovacuum
+
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ SOURCE_TABLE_NAME = :ci_build_trace_metadata
+ TARGET_TABLE_NAME = :ci_job_artifacts
+ COLUMN = :trace_artifact_id
+ TARGET_COLUMN = :id
+ FK_NAME = :fk_21d25cac1a_p
+ PARTITION_COLUMN = :partition_id
+
+ def up
+ return unless should_run?
+
+ add_concurrent_foreign_key(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ column: [PARTITION_COLUMN, COLUMN],
+ target_column: [PARTITION_COLUMN, TARGET_COLUMN],
+ validate: false,
+ reverse_lock_order: true,
+ on_update: :cascade,
+ on_delete: :cascade,
+ name: FK_NAME
+ )
+
+ prepare_async_foreign_key_validation(SOURCE_TABLE_NAME, name: FK_NAME)
+ end
+
+ def down
+ return unless should_run?
+
+ unprepare_async_foreign_key_validation(SOURCE_TABLE_NAME, name: FK_NAME)
+
+ with_lock_retries do
+ remove_foreign_key_if_exists(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ name: FK_NAME,
+ reverse_lock_order: true
+ )
+ end
+ end
+
+ private
+
+ def should_run?
+ can_execute_on?(TARGET_TABLE_NAME)
+ end
+end
diff --git a/db/post_migrate/20231219084159_add_fk_to_ci_job_artifact_states_on_partition_id_and_job_artifact_id.rb b/db/post_migrate/20231219084159_add_fk_to_ci_job_artifact_states_on_partition_id_and_job_artifact_id.rb
new file mode 100644
index 00000000000..d72f10b012f
--- /dev/null
+++ b/db/post_migrate/20231219084159_add_fk_to_ci_job_artifact_states_on_partition_id_and_job_artifact_id.rb
@@ -0,0 +1,54 @@
+# frozen_string_literal: true
+
+class AddFkToCiJobArtifactStatesOnPartitionIdAndJobArtifactId < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::MigrationHelpers::WraparoundAutovacuum
+
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ SOURCE_TABLE_NAME = :ci_job_artifact_states
+ TARGET_TABLE_NAME = :ci_job_artifacts
+ COLUMN = :job_artifact_id
+ TARGET_COLUMN = :id
+ FK_NAME = :fk_rails_80a9cba3b2_p
+ PARTITION_COLUMN = :partition_id
+
+ def up
+ return unless should_run?
+
+ add_concurrent_foreign_key(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ column: [PARTITION_COLUMN, COLUMN],
+ target_column: [PARTITION_COLUMN, TARGET_COLUMN],
+ validate: false,
+ reverse_lock_order: true,
+ on_update: :cascade,
+ on_delete: :cascade,
+ name: FK_NAME
+ )
+
+ prepare_async_foreign_key_validation(SOURCE_TABLE_NAME, name: FK_NAME)
+ end
+
+ def down
+ return unless should_run?
+
+ unprepare_async_foreign_key_validation(SOURCE_TABLE_NAME, name: FK_NAME)
+
+ with_lock_retries do
+ remove_foreign_key_if_exists(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ name: FK_NAME,
+ reverse_lock_order: true
+ )
+ end
+ end
+
+ private
+
+ def should_run?
+ can_execute_on?(TARGET_TABLE_NAME)
+ end
+end
diff --git a/db/post_migrate/20231219092400_backfill_geo_event_log_for_bigint_conversion.rb b/db/post_migrate/20231219092400_backfill_geo_event_log_for_bigint_conversion.rb
new file mode 100644
index 00000000000..b5203ff9051
--- /dev/null
+++ b/db/post_migrate/20231219092400_backfill_geo_event_log_for_bigint_conversion.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class BackfillGeoEventLogForBigintConversion < Gitlab::Database::Migration[2.2]
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+ milestone '16.8'
+
+ TABLE = :geo_event_log
+ COLUMNS = %i[geo_event_id]
+
+ def up
+ backfill_conversion_of_integer_to_bigint(TABLE, COLUMNS, sub_batch_size: 200)
+ end
+
+ def down
+ revert_backfill_conversion_of_integer_to_bigint(TABLE, COLUMNS)
+ end
+end
diff --git a/db/post_migrate/20231219125907_remove_updated_by_id_column_from_vulnerabilities.rb b/db/post_migrate/20231219125907_remove_updated_by_id_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..ecac9b55f4c
--- /dev/null
+++ b/db/post_migrate/20231219125907_remove_updated_by_id_column_from_vulnerabilities.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class RemoveUpdatedByIdColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ with_lock_retries do
+ remove_column :vulnerabilities, :updated_by_id
+ end
+ end
+
+ def down
+ add_column :vulnerabilities, :updated_by_id, :bigint unless column_exists?(:vulnerabilities, :updated_by_id)
+
+ # Add back index and constraint that were dropped in `up`
+ add_concurrent_index(:vulnerabilities, :updated_by_id)
+ add_concurrent_foreign_key(:vulnerabilities, :users, column: :updated_by_id, on_delete: :nullify)
+ end
+end
diff --git a/db/post_migrate/20231219132423_remove_epic_id_column_from_vulnerabilities.rb b/db/post_migrate/20231219132423_remove_epic_id_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..fa6379a409a
--- /dev/null
+++ b/db/post_migrate/20231219132423_remove_epic_id_column_from_vulnerabilities.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class RemoveEpicIdColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ with_lock_retries do
+ remove_column :vulnerabilities, :epic_id
+ end
+ end
+
+ def down
+ add_column :vulnerabilities, :epic_id, :bigint unless column_exists?(:vulnerabilities, :epic_id)
+
+ # Add back index and constraint that were dropped in `up`
+ add_concurrent_index(:vulnerabilities, :epic_id)
+ add_concurrent_foreign_key(:vulnerabilities, :epics, column: :epic_id, on_delete: :nullify)
+ end
+end
diff --git a/db/post_migrate/20231220115201_add_color_work_item_widget.rb b/db/post_migrate/20231220115201_add_color_work_item_widget.rb
new file mode 100644
index 00000000000..eb410cb8b0b
--- /dev/null
+++ b/db/post_migrate/20231220115201_add_color_work_item_widget.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+class AddColorWorkItemWidget < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ class WorkItemType < MigrationRecord
+ self.table_name = 'work_item_types'
+ end
+
+ class WidgetDefinition < MigrationRecord
+ self.table_name = 'work_item_widget_definitions'
+ end
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+ disable_ddl_transaction!
+
+ WIDGET_NAME = 'Color'
+ WIDGET_ENUM_VALUE = 18
+ WORK_ITEM_TYPE = 'Epic'
+
+ def up
+ type = WorkItemType.find_by_name_and_namespace_id(WORK_ITEM_TYPE, nil)
+
+ unless type
+ Gitlab::AppLogger.warn("type #{WORK_ITEM_TYPE} is missing, not adding widget")
+ return
+ end
+
+ widget = {
+ work_item_type_id: type.id,
+ name: WIDGET_NAME,
+ widget_type: WIDGET_ENUM_VALUE
+ }
+
+ WidgetDefinition.upsert_all(
+ [widget],
+ unique_by: :index_work_item_widget_definitions_on_default_witype_and_name
+ )
+ end
+
+ def down
+ WidgetDefinition.where(name: WIDGET_NAME).delete_all
+ end
+end
diff --git a/db/post_migrate/20231220130725_remove_last_edited_at_column_from_vulnerabilities.rb b/db/post_migrate/20231220130725_remove_last_edited_at_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..e3e963ee0c0
--- /dev/null
+++ b/db/post_migrate/20231220130725_remove_last_edited_at_column_from_vulnerabilities.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveLastEditedAtColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ enable_lock_retries!
+
+ def up
+ remove_column :vulnerabilities, :last_edited_at
+ end
+
+ def down
+ add_column :vulnerabilities, :last_edited_at, :datetime_with_timezone
+ end
+end
diff --git a/db/post_migrate/20231220150143_remove_organizations_organization_users_organization_id_fk.rb b/db/post_migrate/20231220150143_remove_organizations_organization_users_organization_id_fk.rb
new file mode 100644
index 00000000000..75bf5d3ead9
--- /dev/null
+++ b/db/post_migrate/20231220150143_remove_organizations_organization_users_organization_id_fk.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class RemoveOrganizationsOrganizationUsersOrganizationIdFk < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ FOREIGN_KEY_NAME = "fk_8471abad75"
+
+ def up
+ with_lock_retries do
+ remove_foreign_key_if_exists(:organization_users, :organizations,
+ name: FOREIGN_KEY_NAME, reverse_lock_order: true)
+ end
+ end
+
+ def down
+ add_concurrent_foreign_key(:organization_users, :organizations,
+ name: FOREIGN_KEY_NAME, column: :organization_id,
+ target_column: :id, on_delete: :cascade)
+ end
+end
diff --git a/db/post_migrate/20231220150210_remove_users_organization_users_user_id_fk.rb b/db/post_migrate/20231220150210_remove_users_organization_users_user_id_fk.rb
new file mode 100644
index 00000000000..365d6b0fc77
--- /dev/null
+++ b/db/post_migrate/20231220150210_remove_users_organization_users_user_id_fk.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class RemoveUsersOrganizationUsersUserIdFk < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ FOREIGN_KEY_NAME = "fk_8d9b20725d"
+
+ def up
+ with_lock_retries do
+ remove_foreign_key_if_exists(:organization_users, :users,
+ name: FOREIGN_KEY_NAME, reverse_lock_order: true)
+ end
+ end
+
+ def down
+ add_concurrent_foreign_key(:organization_users, :users,
+ name: FOREIGN_KEY_NAME, column: :user_id,
+ target_column: :id, on_delete: :cascade)
+ end
+end
diff --git a/db/post_migrate/20231221000703_async_validate_merge_request_diffs_project_id_foreign_key.rb b/db/post_migrate/20231221000703_async_validate_merge_request_diffs_project_id_foreign_key.rb
new file mode 100644
index 00000000000..64adf7d3523
--- /dev/null
+++ b/db/post_migrate/20231221000703_async_validate_merge_request_diffs_project_id_foreign_key.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AsyncValidateMergeRequestDiffsProjectIdForeignKey < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ def up
+ prepare_async_foreign_key_validation :merge_request_diffs, :project_id
+ end
+
+ def down
+ unprepare_async_foreign_key_validation :merge_request_diffs, :project_id
+ end
+end
diff --git a/db/post_migrate/20231221223259_queue_drop_vulnerabilities_without_finding_id.rb b/db/post_migrate/20231221223259_queue_drop_vulnerabilities_without_finding_id.rb
new file mode 100644
index 00000000000..25aa2912767
--- /dev/null
+++ b/db/post_migrate/20231221223259_queue_drop_vulnerabilities_without_finding_id.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class QueueDropVulnerabilitiesWithoutFindingId < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ MIGRATION = "DropVulnerabilitiesWithoutFindingId"
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 1000
+ SUB_BATCH_SIZE = 100
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :vulnerabilities,
+ :id,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :vulnerabilities, :id, [])
+ end
+end
diff --git a/db/post_migrate/20231222051050_add_search_vector_index_to_catalog_resources.rb b/db/post_migrate/20231222051050_add_search_vector_index_to_catalog_resources.rb
new file mode 100644
index 00000000000..036aadbe10f
--- /dev/null
+++ b/db/post_migrate/20231222051050_add_search_vector_index_to_catalog_resources.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class AddSearchVectorIndexToCatalogResources < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ INDEX_NAME = 'index_catalog_resources_on_search_vector_triagram'
+
+ def up
+ disable_statement_timeout do
+ execute <<-SQL
+ CREATE INDEX CONCURRENTLY IF NOT EXISTS #{INDEX_NAME} ON catalog_resources
+ USING GIN (search_vector);
+ SQL
+ end
+ end
+
+ def down
+ remove_concurrent_index_by_name :catalog_resources, name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20231222072237_add_text_limit_to_ci_instance_variables_description.rb b/db/post_migrate/20231222072237_add_text_limit_to_ci_instance_variables_description.rb
new file mode 100644
index 00000000000..6ad13a591e4
--- /dev/null
+++ b/db/post_migrate/20231222072237_add_text_limit_to_ci_instance_variables_description.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class AddTextLimitToCiInstanceVariablesDescription < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ TABLE_NAME = :ci_instance_variables
+ COLUMN_NAME = :description
+
+ def up
+ add_text_limit(TABLE_NAME, COLUMN_NAME, 255)
+ end
+
+ def down
+ remove_text_limit(TABLE_NAME, COLUMN_NAME)
+ end
+end
diff --git a/db/post_migrate/20231222114515_remove_tmp_index_members_on_state.rb b/db/post_migrate/20231222114515_remove_tmp_index_members_on_state.rb
new file mode 100644
index 00000000000..88a52160fef
--- /dev/null
+++ b/db/post_migrate/20231222114515_remove_tmp_index_members_on_state.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class RemoveTmpIndexMembersOnState < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ INDEX_NAME = 'tmp_index_members_on_state'
+
+ def up
+ remove_concurrent_index_by_name :members, INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :members, :state, name: INDEX_NAME, where: 'state = 2'
+ end
+end
diff --git a/db/post_migrate/20231224083824_remove_last_edited_by_id_column_from_vulnerabilities.rb b/db/post_migrate/20231224083824_remove_last_edited_by_id_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..3df182db156
--- /dev/null
+++ b/db/post_migrate/20231224083824_remove_last_edited_by_id_column_from_vulnerabilities.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class RemoveLastEditedByIdColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ with_lock_retries do
+ remove_column :vulnerabilities, :last_edited_by_id
+ end
+ end
+
+ def down
+ add_column :vulnerabilities, :last_edited_by_id, :bigint unless column_exists?(:vulnerabilities, :last_edited_by_id)
+
+ # Add back index and constraint that were dropped in `up`
+ add_concurrent_index(:vulnerabilities, :last_edited_by_id)
+ add_concurrent_foreign_key(:vulnerabilities, :users, column: :last_edited_by_id, on_delete: :nullify)
+ end
+end
diff --git a/db/post_migrate/20231225070431_async_validate_finding_id_on_vulnerabilities.rb b/db/post_migrate/20231225070431_async_validate_finding_id_on_vulnerabilities.rb
new file mode 100644
index 00000000000..dfab0d6eab0
--- /dev/null
+++ b/db/post_migrate/20231225070431_async_validate_finding_id_on_vulnerabilities.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AsyncValidateFindingIdOnVulnerabilities < Gitlab::Database::Migration[2.2]
+ # obtained by running `\d vulnerabilities` on https://console.postgres.ai
+ FK_NAME = :fk_4e64972902
+
+ milestone '16.8'
+
+ # TODO: FK to be validated synchronously in https://gitlab.com/gitlab-org/gitlab/-/issues/425409
+ def up
+ prepare_async_foreign_key_validation :vulnerabilities, :finding_id, name: FK_NAME
+ end
+
+ def down
+ unprepare_async_foreign_key_validation :vulnerabilities, :finding_id, name: FK_NAME
+ end
+end
diff --git a/db/post_migrate/20231225133628_remove_due_date_column_from_vulnerabilities.rb b/db/post_migrate/20231225133628_remove_due_date_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..2f77a5a82f4
--- /dev/null
+++ b/db/post_migrate/20231225133628_remove_due_date_column_from_vulnerabilities.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveDueDateColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ enable_lock_retries!
+
+ def up
+ remove_column :vulnerabilities, :due_date
+ end
+
+ def down
+ add_column :vulnerabilities, :due_date, :date
+ end
+end
diff --git a/db/post_migrate/20231228043653_rename_old_index_to_new_index_in_catalog_resources.rb b/db/post_migrate/20231228043653_rename_old_index_to_new_index_in_catalog_resources.rb
new file mode 100644
index 00000000000..6569e624c78
--- /dev/null
+++ b/db/post_migrate/20231228043653_rename_old_index_to_new_index_in_catalog_resources.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class RenameOldIndexToNewIndexInCatalogResources < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ enable_lock_retries!
+
+ OLD_INDEX_NAME = 'index_catalog_resources_on_search_vector_triagram'
+ NEW_INDEX_NAME = 'index_catalog_resources_on_search_vector'
+
+ def change
+ rename_index :catalog_resources, OLD_INDEX_NAME, NEW_INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20240101133628_remove_start_date_column_from_vulnerabilities.rb b/db/post_migrate/20240101133628_remove_start_date_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..747ff35377b
--- /dev/null
+++ b/db/post_migrate/20240101133628_remove_start_date_column_from_vulnerabilities.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveStartDateColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ enable_lock_retries!
+
+ def up
+ remove_column :vulnerabilities, :start_date
+ end
+
+ def down
+ add_column :vulnerabilities, :start_date, :date
+ end
+end
diff --git a/db/post_migrate/20240102065444_remove_milestone_id_column_from_vulnerabilities.rb b/db/post_migrate/20240102065444_remove_milestone_id_column_from_vulnerabilities.rb
new file mode 100644
index 00000000000..f74c15a97fb
--- /dev/null
+++ b/db/post_migrate/20240102065444_remove_milestone_id_column_from_vulnerabilities.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class RemoveMilestoneIdColumnFromVulnerabilities < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ def up
+ with_lock_retries do
+ remove_column :vulnerabilities, :milestone_id
+ end
+ end
+
+ def down
+ add_column :vulnerabilities, :milestone_id, :bigint unless column_exists?(:vulnerabilities, :milestone_id)
+
+ # Add back index and constraint that were dropped in `up`
+ add_concurrent_index(:vulnerabilities, :milestone_id)
+ add_concurrent_foreign_key(:vulnerabilities, :milestones, column: :milestone_id, on_delete: :nullify)
+ end
+end
diff --git a/db/post_migrate/20240102101409_validate_finding_id_on_vulnerabilities.rb b/db/post_migrate/20240102101409_validate_finding_id_on_vulnerabilities.rb
new file mode 100644
index 00000000000..deed2462f93
--- /dev/null
+++ b/db/post_migrate/20240102101409_validate_finding_id_on_vulnerabilities.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class ValidateFindingIdOnVulnerabilities < Gitlab::Database::Migration[2.2]
+ # obtained by running `\d vulnerabilities` on https://console.postgres.ai
+ FK_NAME = :fk_4e64972902
+
+ milestone '16.8'
+
+ # validated asynchronously in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131979
+ def up
+ validate_foreign_key :vulnerabilities, :finding_id, name: FK_NAME
+ end
+
+ def down
+ # Can be safely a no-op if we don't roll back the inconsistent data.
+ # https://docs.gitlab.com/ee/development/database/add_foreign_key_to_existing_column.html#add-a-migration-to-validate-the-fk-synchronously
+ end
+end
diff --git a/db/post_migrate/20240104085448_queue_update_workspaces_config_version3.rb b/db/post_migrate/20240104085448_queue_update_workspaces_config_version3.rb
new file mode 100644
index 00000000000..574b6cdb4c2
--- /dev/null
+++ b/db/post_migrate/20240104085448_queue_update_workspaces_config_version3.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+class QueueUpdateWorkspacesConfigVersion3 < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ MIGRATION = "UpdateWorkspacesConfigVersion3"
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 1000
+ SUB_BATCH_SIZE = 100
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+ disable_ddl_transaction!
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :workspaces,
+ :config_version,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :workspaces, :config_version, [])
+ end
+end
diff --git a/db/post_migrate/20240104091627_validate_foreign_key_ci_build_trace_metadata.rb b/db/post_migrate/20240104091627_validate_foreign_key_ci_build_trace_metadata.rb
new file mode 100644
index 00000000000..16e97bd5e6a
--- /dev/null
+++ b/db/post_migrate/20240104091627_validate_foreign_key_ci_build_trace_metadata.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class ValidateForeignKeyCiBuildTraceMetadata < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ # We first need to introduce this FK for self-managed
+ def up
+ # no-op
+ end
+
+ def down
+ # Can be safely a no-op if we don't roll back the inconsistent data.
+ end
+end
diff --git a/db/post_migrate/20240104091858_validate_foreign_key_ci_job_artifact_state.rb b/db/post_migrate/20240104091858_validate_foreign_key_ci_job_artifact_state.rb
new file mode 100644
index 00000000000..bd705fd07a5
--- /dev/null
+++ b/db/post_migrate/20240104091858_validate_foreign_key_ci_job_artifact_state.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class ValidateForeignKeyCiJobArtifactState < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ # We first need to introduce this FK for self-managed
+ def up
+ # no-op
+ end
+
+ def down
+ # Can be safely a no-op if we don't roll back the inconsistent data.
+ end
+end
diff --git a/db/post_migrate/20240104101601_finalize_backfill_partition_id_ci_pipeline_chat_data.rb b/db/post_migrate/20240104101601_finalize_backfill_partition_id_ci_pipeline_chat_data.rb
new file mode 100644
index 00000000000..45da0e9c12a
--- /dev/null
+++ b/db/post_migrate/20240104101601_finalize_backfill_partition_id_ci_pipeline_chat_data.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class FinalizeBackfillPartitionIdCiPipelineChatData < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ MIGRATION = 'BackfillPartitionIdCiPipelineChatData'
+ disable_ddl_transaction!
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_ci
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: MIGRATION,
+ table_name: :ci_pipeline_chat_data,
+ column_name: :id,
+ job_arguments: [],
+ finalize: true
+ )
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20240104145320_remove_partition_id_default_value_for_ci_pipeline_chat_data.rb b/db/post_migrate/20240104145320_remove_partition_id_default_value_for_ci_pipeline_chat_data.rb
new file mode 100644
index 00000000000..3aedf6e66a1
--- /dev/null
+++ b/db/post_migrate/20240104145320_remove_partition_id_default_value_for_ci_pipeline_chat_data.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class RemovePartitionIdDefaultValueForCiPipelineChatData < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ enable_lock_retries!
+
+ TABLE_NAME = :ci_pipeline_chat_data
+ COLUM_NAME = :partition_id
+
+ def change
+ change_column_default(TABLE_NAME, COLUM_NAME, from: 100, to: nil)
+ end
+end
diff --git a/db/post_migrate/20240104155616_finalize_backfill_default_branch_protection_namespace_settings.rb b/db/post_migrate/20240104155616_finalize_backfill_default_branch_protection_namespace_settings.rb
new file mode 100644
index 00000000000..b4a23028f21
--- /dev/null
+++ b/db/post_migrate/20240104155616_finalize_backfill_default_branch_protection_namespace_settings.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class FinalizeBackfillDefaultBranchProtectionNamespaceSettings < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ MIGRATION = 'BackfillBranchProtectionNamespaceSetting'
+
+ milestone '16.8'
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: MIGRATION,
+ table_name: :namespace_settings,
+ column_name: :namespace_id,
+ job_arguments: [],
+ finalize: true
+ )
+ end
+
+ def down
+ # noop
+ end
+end
diff --git a/db/post_migrate/20240104223119_add_index_owasp_top_10_with_project_id_on_vulnerability_reads.rb b/db/post_migrate/20240104223119_add_index_owasp_top_10_with_project_id_on_vulnerability_reads.rb
new file mode 100644
index 00000000000..99a2dccc8f5
--- /dev/null
+++ b/db/post_migrate/20240104223119_add_index_owasp_top_10_with_project_id_on_vulnerability_reads.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddIndexOwaspTop10WithProjectIdOnVulnerabilityReads < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.8'
+
+ INDEX_NAME = 'index_vuln_reads_on_project_id_owasp_top_10'
+
+ def up
+ add_concurrent_index :vulnerability_reads, [:project_id, :owasp_top_10], name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :vulnerability_reads, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20240105000001_cleanup_workspaces_url_domain_to_dns_zone_rename.rb b/db/post_migrate/20240105000001_cleanup_workspaces_url_domain_to_dns_zone_rename.rb
new file mode 100644
index 00000000000..d37d0c9a5af
--- /dev/null
+++ b/db/post_migrate/20240105000001_cleanup_workspaces_url_domain_to_dns_zone_rename.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class CleanupWorkspacesUrlDomainToDnsZoneRename < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ def up
+ cleanup_concurrent_column_rename :workspaces, :url_domain, :dns_zone
+ end
+
+ def down
+ undo_cleanup_concurrent_column_rename :workspaces, :url_domain, :dns_zone
+ end
+end
diff --git a/db/post_migrate/20240105120320_disable_fastupdate_on_issue_search_data.rb b/db/post_migrate/20240105120320_disable_fastupdate_on_issue_search_data.rb
new file mode 100644
index 00000000000..b7271fa5f51
--- /dev/null
+++ b/db/post_migrate/20240105120320_disable_fastupdate_on_issue_search_data.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+class DisableFastupdateOnIssueSearchData < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ NUM_PARTITIONS = 64
+
+ def up
+ each_index_name do |index_name|
+ with_lock_retries do
+ execute <<~SQL
+ ALTER INDEX #{index_name} SET ( fastupdate = false ) ;
+ SQL
+ end
+ end
+ end
+
+ def down
+ each_index_name do |index_name|
+ with_lock_retries do
+ execute <<~SQL
+ ALTER INDEX #{index_name} RESET ( fastupdate ) ;
+ SQL
+ end
+ end
+ end
+
+ private
+
+ def each_index_name
+ NUM_PARTITIONS.times do |partition|
+ yield "gitlab_partitions_static.issue_search_data_#{format('%02d', partition)}_search_vector_idx"
+ end
+ end
+end
diff --git a/db/post_migrate/20240105144908_queue_backfill_issue_search_data_namespace_id.rb b/db/post_migrate/20240105144908_queue_backfill_issue_search_data_namespace_id.rb
new file mode 100644
index 00000000000..f12041e613f
--- /dev/null
+++ b/db/post_migrate/20240105144908_queue_backfill_issue_search_data_namespace_id.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class QueueBackfillIssueSearchDataNamespaceId < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ MIGRATION = "BackfillIssueSearchDataNamespaceId"
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 10_000
+ SUB_BATCH_SIZE = 1_000
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :issues,
+ :id,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :issues, :id, [])
+ end
+end
diff --git a/db/post_migrate/20240107154747_sent_notifications_self_install_finalize_bbm.rb b/db/post_migrate/20240107154747_sent_notifications_self_install_finalize_bbm.rb
new file mode 100644
index 00000000000..78efdf36d64
--- /dev/null
+++ b/db/post_migrate/20240107154747_sent_notifications_self_install_finalize_bbm.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class SentNotificationsSelfInstallFinalizeBbm < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::MigrationHelpers::ConvertToBigint
+
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ TABLE_NAME = 'sent_notifications'
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: 'CopyColumnUsingBackgroundMigrationJob',
+ table_name: TABLE_NAME,
+ column_name: 'id',
+ job_arguments: [['id'], ['id_convert_to_bigint']]
+ )
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20240107154805_sent_notifications_self_install_id_swap.rb b/db/post_migrate/20240107154805_sent_notifications_self_install_id_swap.rb
new file mode 100644
index 00000000000..c6e31ca568e
--- /dev/null
+++ b/db/post_migrate/20240107154805_sent_notifications_self_install_id_swap.rb
@@ -0,0 +1,58 @@
+# frozen_string_literal: true
+
+class SentNotificationsSelfInstallIdSwap < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::MigrationHelpers::ConvertToBigint
+
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ TABLE_NAME = :sent_notifications
+ COLUMN_NAME = :id_convert_to_bigint
+ INDEX_NAME = :index_sent_notifications_on_id_convert_to_bigint
+
+ def up
+ return if com_or_dev_or_test_but_not_jh?
+ return if temp_column_removed?(TABLE_NAME, :id)
+ return if columns_swapped?(TABLE_NAME, :id)
+
+ swap
+ end
+
+ def down
+ return if com_or_dev_or_test_but_not_jh?
+ return if temp_column_removed?(TABLE_NAME, :id)
+ return unless columns_swapped?(TABLE_NAME, :id)
+
+ swap
+ end
+
+ def swap
+ add_concurrent_index TABLE_NAME, COLUMN_NAME, unique: true, name: INDEX_NAME
+
+ with_lock_retries(raise_on_exhaustion: true) do
+ execute "LOCK TABLE #{TABLE_NAME} IN ACCESS EXCLUSIVE MODE"
+
+ # Swap Columns
+ temp_name = quote_column_name(:id_tmp)
+ id_name = quote_column_name(:id)
+ id_convert_to_bigint_name = quote_column_name(COLUMN_NAME)
+ execute "ALTER TABLE #{TABLE_NAME} RENAME COLUMN #{id_name} TO #{temp_name}"
+ execute "ALTER TABLE #{TABLE_NAME} RENAME COLUMN #{id_convert_to_bigint_name} TO #{id_name}"
+ execute "ALTER TABLE #{TABLE_NAME} RENAME COLUMN #{temp_name} TO #{id_convert_to_bigint_name}"
+
+ # Reset trigger
+ function_name = Gitlab::Database::UnidirectionalCopyTrigger.on_table(TABLE_NAME, connection: connection)
+ .name(:id, :id_convert_to_bigint)
+ execute "ALTER FUNCTION #{quote_table_name(function_name)} RESET ALL"
+
+ execute "ALTER SEQUENCE #{TABLE_NAME}_id_seq OWNED BY #{TABLE_NAME}.id"
+ change_column_default TABLE_NAME, :id, -> { "nextval('#{TABLE_NAME}_id_seq'::regclass)" }
+ change_column_default TABLE_NAME, :id_convert_to_bigint, 0
+
+ execute "ALTER TABLE #{TABLE_NAME} DROP CONSTRAINT #{TABLE_NAME}_pkey CASCADE"
+ rename_index TABLE_NAME, INDEX_NAME, "#{TABLE_NAME}_pkey"
+ execute "ALTER TABLE #{TABLE_NAME} ADD CONSTRAINT #{TABLE_NAME}_pkey PRIMARY KEY USING INDEX #{TABLE_NAME}_pkey"
+ end
+ end
+end
diff --git a/db/post_migrate/20240108072319_add_fk_to_ci_build_trace_metadata_on_partition_id_and_trace_artifact_id2.rb b/db/post_migrate/20240108072319_add_fk_to_ci_build_trace_metadata_on_partition_id_and_trace_artifact_id2.rb
new file mode 100644
index 00000000000..23219a9d90a
--- /dev/null
+++ b/db/post_migrate/20240108072319_add_fk_to_ci_build_trace_metadata_on_partition_id_and_trace_artifact_id2.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+class AddFkToCiBuildTraceMetadataOnPartitionIdAndTraceArtifactId2 < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ SOURCE_TABLE_NAME = :ci_build_trace_metadata
+ TARGET_TABLE_NAME = :ci_job_artifacts
+ COLUMN = :trace_artifact_id
+ TARGET_COLUMN = :id
+ FK_NAME = :fk_21d25cac1a_p
+ PARTITION_COLUMN = :partition_id
+
+ def up
+ add_concurrent_foreign_key(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ column: [PARTITION_COLUMN, COLUMN],
+ target_column: [PARTITION_COLUMN, TARGET_COLUMN],
+ validate: true,
+ reverse_lock_order: true,
+ on_update: :cascade,
+ on_delete: :cascade,
+ name: FK_NAME
+ )
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ name: FK_NAME,
+ reverse_lock_order: true
+ )
+ end
+ end
+end
diff --git a/db/post_migrate/20240108072546_add_fk_to_ci_job_artifact_states_on_partition_id_and_job_artifact_id2.rb b/db/post_migrate/20240108072546_add_fk_to_ci_job_artifact_states_on_partition_id_and_job_artifact_id2.rb
new file mode 100644
index 00000000000..9b74f7019b9
--- /dev/null
+++ b/db/post_migrate/20240108072546_add_fk_to_ci_job_artifact_states_on_partition_id_and_job_artifact_id2.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+class AddFkToCiJobArtifactStatesOnPartitionIdAndJobArtifactId2 < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ SOURCE_TABLE_NAME = :ci_job_artifact_states
+ TARGET_TABLE_NAME = :ci_job_artifacts
+ COLUMN = :job_artifact_id
+ TARGET_COLUMN = :id
+ FK_NAME = :fk_rails_80a9cba3b2_p
+ PARTITION_COLUMN = :partition_id
+
+ def up
+ add_concurrent_foreign_key(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ column: [PARTITION_COLUMN, COLUMN],
+ target_column: [PARTITION_COLUMN, TARGET_COLUMN],
+ validate: true,
+ reverse_lock_order: true,
+ on_update: :cascade,
+ on_delete: :cascade,
+ name: FK_NAME
+ )
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ name: FK_NAME,
+ reverse_lock_order: true
+ )
+ end
+ end
+end
diff --git a/db/post_migrate/20240108082419_queue_backfill_partition_id_ci_pipeline_metadata.rb b/db/post_migrate/20240108082419_queue_backfill_partition_id_ci_pipeline_metadata.rb
new file mode 100644
index 00000000000..6bcaf376a05
--- /dev/null
+++ b/db/post_migrate/20240108082419_queue_backfill_partition_id_ci_pipeline_metadata.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class QueueBackfillPartitionIdCiPipelineMetadata < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ restrict_gitlab_migration gitlab_schema: :gitlab_ci
+
+ MIGRATION = 'BackfillPartitionIdCiPipelineMetadata'
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 1000
+ SUB_BATCH_SIZE = 250
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :ci_pipeline_metadata,
+ :pipeline_id,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :ci_pipeline_metadata, :pipeline_id, [])
+ end
+end
diff --git a/db/post_migrate/20240108125135_remove_internal_ids_triggers.rb b/db/post_migrate/20240108125135_remove_internal_ids_triggers.rb
new file mode 100644
index 00000000000..861aad2b288
--- /dev/null
+++ b/db/post_migrate/20240108125135_remove_internal_ids_triggers.rb
@@ -0,0 +1,74 @@
+# frozen_string_literal: true
+
+class RemoveInternalIdsTriggers < Gitlab::Database::Migration[2.2]
+ include Gitlab::Database::SchemaHelpers
+
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ TRIGGER_ON_INSERT = 'trigger_copy_usage_on_internal_ids_on_insert'
+ TRIGGER_ON_UPDATE = 'trigger_copy_usage_on_internal_ids_on_update'
+ INSERT_OR_UPDATE_FUNCTION_NAME = 'insert_or_update_internal_ids_usage'
+
+ def up
+ drop_trigger(:internal_ids, TRIGGER_ON_INSERT)
+ drop_trigger(:internal_ids, TRIGGER_ON_UPDATE)
+ drop_function(INSERT_OR_UPDATE_FUNCTION_NAME)
+ end
+
+ def down
+ execute(<<~SQL)
+ CREATE OR REPLACE FUNCTION #{INSERT_OR_UPDATE_FUNCTION_NAME}()
+ RETURNS trigger
+ LANGUAGE plpgsql
+ AS $$
+ DECLARE
+ namespace_type varchar;
+ copy_usage smallint;
+ BEGIN
+ IF (NEW.usage = 0) THEN
+ copy_usage = 4;
+
+ -- we only care about group level internal_ids so we check namespace type here
+ namespace_type = (SELECT type FROM namespaces WHERE id = NEW.namespace_id);
+ IF (namespace_type <> 'Group') THEN
+ RETURN NULL;
+ END IF;
+ ELSIF (NEW.usage = 4) THEN
+ copy_usage = 0;
+ ELSE
+ RETURN NULL;
+ END IF;
+
+ -- if value is the same there is nothing to update
+ IF (OLD.last_value = NEW.last_value AND (TG_OP = 'INSERT' OR TG_OP = 'UPDATE')) THEN
+ RETURN NULL;
+ END IF;
+
+ INSERT INTO internal_ids (usage, last_value, namespace_id)
+ VALUES (copy_usage, NEW.last_value, NEW.namespace_id)
+ ON CONFLICT (usage, namespace_id) WHERE namespace_id IS NOT NULL
+ DO UPDATE SET last_value = NEW.last_value;
+
+ RETURN NULL;
+ END
+ $$
+ SQL
+
+ execute(<<~SQL)
+ CREATE TRIGGER #{TRIGGER_ON_INSERT}
+ AFTER INSERT ON internal_ids
+ FOR EACH ROW
+ WHEN (((NEW.usage = 0) OR (NEW.usage = 4)) AND NEW.namespace_id IS NOT NULL)
+ EXECUTE FUNCTION #{INSERT_OR_UPDATE_FUNCTION_NAME}();
+ SQL
+
+ execute(<<~SQL)
+ CREATE TRIGGER #{TRIGGER_ON_UPDATE}
+ AFTER UPDATE ON internal_ids
+ FOR EACH ROW
+ WHEN (((NEW.usage = 0) OR (NEW.usage = 4)) AND NEW.namespace_id IS NOT NULL)
+ EXECUTE FUNCTION #{INSERT_OR_UPDATE_FUNCTION_NAME}();
+ SQL
+ end
+end
diff --git a/db/post_migrate/20240108125335_add_temporary_index_internal_ids_on_id_and_usage.rb b/db/post_migrate/20240108125335_add_temporary_index_internal_ids_on_id_and_usage.rb
new file mode 100644
index 00000000000..798a42d2a1d
--- /dev/null
+++ b/db/post_migrate/20240108125335_add_temporary_index_internal_ids_on_id_and_usage.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddTemporaryIndexInternalIdsOnIdAndUsage < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ INDEX_NAME = "tmp_index_internal_ids_on_id_and_usage"
+ EPICS_USAGE = 4 # see Enums::InternalId#usage_resources[:epics]
+
+ def up
+ add_concurrent_index :internal_ids, :id, name: INDEX_NAME, where: "usage = #{EPICS_USAGE}"
+ end
+
+ def down
+ remove_concurrent_index_by_name :internal_ids, name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20240108181808_remove_package_registry_duplicated_indexes.rb b/db/post_migrate/20240108181808_remove_package_registry_duplicated_indexes.rb
new file mode 100644
index 00000000000..96380b94d50
--- /dev/null
+++ b/db/post_migrate/20240108181808_remove_package_registry_duplicated_indexes.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+class RemovePackageRegistryDuplicatedIndexes < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ DUPLICATED_INDEXES = [
+ {
+ name: :index_packages_debian_group_distributions_on_group_id,
+ table: :packages_debian_group_distributions,
+ column: :group_id
+ },
+ {
+ name: :index_packages_debian_project_distributions_on_project_id,
+ table: :packages_debian_project_distributions,
+ column: :project_id
+ },
+ {
+ name: :index_packages_tags_on_package_id,
+ table: :packages_tags,
+ column: :package_id
+ }
+ ]
+
+ def up
+ DUPLICATED_INDEXES.each do |index|
+ remove_concurrent_index_by_name(index[:table], index[:name])
+ end
+ end
+
+ def down
+ DUPLICATED_INDEXES.each do |index|
+ add_concurrent_index(index[:table], index[:column], name: index[:name])
+ end
+ end
+end
diff --git a/db/post_migrate/20240108185335_backfill_internal_ids_with_issues_usage_for_epics.rb b/db/post_migrate/20240108185335_backfill_internal_ids_with_issues_usage_for_epics.rb
new file mode 100644
index 00000000000..4131f403212
--- /dev/null
+++ b/db/post_migrate/20240108185335_backfill_internal_ids_with_issues_usage_for_epics.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+class BackfillInternalIdsWithIssuesUsageForEpics < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+ disable_ddl_transaction!
+
+ BATCH_SIZE = 500
+ ISSUES_USAGE = 0 # see Enums::InternalId#usage_resources[:issues]
+ EPICS_USAGE = 4 # see Enums::InternalId#usage_resources[:epics]
+
+ def up
+ internal_id_model = define_batchable_model('internal_ids')
+ epic_model = define_batchable_model('epics')
+
+ internal_id_model.where(usage: EPICS_USAGE).each_batch(of: BATCH_SIZE) do |relation|
+ # Creates a corresponding `usage: :issues` record for every `epics` usage.
+ # On conflict it means the record was already created when a new epic was created with the newly issues usage.
+ # In which case to make sure we have the value copied over from epics record.
+ connection.execute(
+ <<~SQL
+ INSERT INTO internal_ids (usage, last_value, namespace_id)
+ SELECT #{ISSUES_USAGE}, last_value, namespace_id
+ FROM internal_ids
+ WHERE internal_ids.id IN(#{relation.select(:id).to_sql})
+ ON CONFLICT (usage, namespace_id) WHERE namespace_id IS NOT NULL
+ DO UPDATE SET last_value = GREATEST(EXCLUDED.last_value, internal_ids.last_value)
+ RETURNING id;
+ SQL
+ )
+
+ relation.delete_all
+ end
+
+ # there are a couple records in epics table that reference namespaces without a corresponding entry
+ # in internal_ids, for whatever reason, so this statement addresses that.
+ epic_model.distinct_each_batch(column: :group_id, of: BATCH_SIZE) do |relation|
+ connection.execute(
+ <<~SQL
+ INSERT INTO internal_ids (usage, last_value, namespace_id)
+ SELECT #{ISSUES_USAGE}, max(iid) as last_value, group_id
+ FROM epics
+ WHERE group_id IN(#{relation.to_sql})
+ GROUP BY group_id
+ ON CONFLICT (usage, namespace_id) WHERE namespace_id IS NOT NULL
+ DO NOTHING
+ RETURNING id;
+ SQL
+ )
+ end
+ end
+
+ def down
+ # noop
+ end
+end
diff --git a/db/post_migrate/20240108215335_remove_internal_ids_tmp_index.rb b/db/post_migrate/20240108215335_remove_internal_ids_tmp_index.rb
new file mode 100644
index 00000000000..e6ed936afc3
--- /dev/null
+++ b/db/post_migrate/20240108215335_remove_internal_ids_tmp_index.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class RemoveInternalIdsTmpIndex < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ INDEX_NAME = "tmp_index_internal_ids_on_id_and_usage"
+ EPICS_USAGE = 4 # see Enums::InternalId#usage_resources[:epics]
+
+ def up
+ remove_concurrent_index_by_name :internal_ids, name: INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :internal_ids, :id, name: INDEX_NAME, where: "usage = #{EPICS_USAGE}"
+ end
+end
diff --git a/db/post_migrate/20240109025151_create_index_on_id_convert_to_bigint_for_system_note_metadata_async.rb b/db/post_migrate/20240109025151_create_index_on_id_convert_to_bigint_for_system_note_metadata_async.rb
new file mode 100644
index 00000000000..281704a1620
--- /dev/null
+++ b/db/post_migrate/20240109025151_create_index_on_id_convert_to_bigint_for_system_note_metadata_async.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class CreateIndexOnIdConvertToBigintForSystemNoteMetadataAsync < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ TABLE_NAME = :system_note_metadata
+ INDEX_NAME = 'index_system_note_metadata_pkey_on_id_convert_to_bigint'
+
+ def up
+ prepare_async_index TABLE_NAME, :id_convert_to_bigint, unique: true, name: INDEX_NAME
+ end
+
+ def down
+ unprepare_async_index TABLE_NAME, :id_convert_to_bigint, unique: true, name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20240109090354_queue_backfill_partition_id_ci_pipeline_artifact.rb b/db/post_migrate/20240109090354_queue_backfill_partition_id_ci_pipeline_artifact.rb
new file mode 100644
index 00000000000..30959a299fb
--- /dev/null
+++ b/db/post_migrate/20240109090354_queue_backfill_partition_id_ci_pipeline_artifact.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class QueueBackfillPartitionIdCiPipelineArtifact < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ restrict_gitlab_migration gitlab_schema: :gitlab_ci
+
+ MIGRATION = 'BackfillPartitionIdCiPipelineArtifact'
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 1000
+ SUB_BATCH_SIZE = 100
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :ci_pipeline_artifacts,
+ :id,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :ci_pipeline_artifacts, :id, [])
+ end
+end
diff --git a/db/post_migrate/20240109165047_add_index_project_id_component_version_id_id_on_sbom_occurrences.rb b/db/post_migrate/20240109165047_add_index_project_id_component_version_id_id_on_sbom_occurrences.rb
new file mode 100644
index 00000000000..123d665f625
--- /dev/null
+++ b/db/post_migrate/20240109165047_add_index_project_id_component_version_id_id_on_sbom_occurrences.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class AddIndexProjectIdComponentVersionIdIdOnSbomOccurrences < Gitlab::Database::Migration[2.2]
+ INDEX_NAME = 'index_sbom_occurr_on_project_id_and_component_version_id_and_id'
+
+ disable_ddl_transaction!
+ milestone '16.8'
+
+ def up
+ add_concurrent_index :sbom_occurrences, [:project_id, :component_version_id, :id], name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :sbom_occurrence, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20240110090352_queue_backfill_partition_id_ci_pipeline_config.rb b/db/post_migrate/20240110090352_queue_backfill_partition_id_ci_pipeline_config.rb
new file mode 100644
index 00000000000..d5ae025b385
--- /dev/null
+++ b/db/post_migrate/20240110090352_queue_backfill_partition_id_ci_pipeline_config.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class QueueBackfillPartitionIdCiPipelineConfig < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ restrict_gitlab_migration gitlab_schema: :gitlab_ci
+
+ MIGRATION = 'BackfillPartitionIdCiPipelineConfig'
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 1000
+ SUB_BATCH_SIZE = 100
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :ci_pipelines_config,
+ :pipeline_id,
+ job_interval: DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ delete_batched_background_migration(MIGRATION, :ci_pipelines_config, :pipeline_id, [])
+ end
+end
diff --git a/db/post_migrate/20240110093654_schedule_index_removal_ci_build_trace_metadata.rb b/db/post_migrate/20240110093654_schedule_index_removal_ci_build_trace_metadata.rb
new file mode 100644
index 00000000000..8f2faa32c81
--- /dev/null
+++ b/db/post_migrate/20240110093654_schedule_index_removal_ci_build_trace_metadata.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class ScheduleIndexRemovalCiBuildTraceMetadata < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ INDEX_NAME = :index_ci_build_trace_metadata_on_trace_artifact_id
+ TABLE_NAME = :ci_build_trace_metadata
+ COLUMN_NAME = :trace_artifact_id
+
+ def up
+ prepare_async_index_removal(TABLE_NAME, COLUMN_NAME, name: INDEX_NAME)
+ end
+
+ def down
+ unprepare_async_index(TABLE_NAME, COLUMN_NAME, name: INDEX_NAME)
+ end
+end
diff --git a/db/post_migrate/20240110094002_drop_index_from_ci_job_artifact_state.rb b/db/post_migrate/20240110094002_drop_index_from_ci_job_artifact_state.rb
new file mode 100644
index 00000000000..0b92c73ad55
--- /dev/null
+++ b/db/post_migrate/20240110094002_drop_index_from_ci_job_artifact_state.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class DropIndexFromCiJobArtifactState < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ INDEX_NAME = :index_ci_job_artifact_states_on_job_artifact_id
+ TABLE_NAME = :ci_job_artifact_states
+
+ def up
+ remove_concurrent_index_by_name(TABLE_NAME, INDEX_NAME)
+ end
+
+ def down
+ add_concurrent_index(TABLE_NAME, :job_artifact_id, name: INDEX_NAME)
+ end
+end
diff --git a/db/post_migrate/20240110094510_remove_fk_from_ci_job_artifact_state.rb b/db/post_migrate/20240110094510_remove_fk_from_ci_job_artifact_state.rb
new file mode 100644
index 00000000000..bbe1f39e3ed
--- /dev/null
+++ b/db/post_migrate/20240110094510_remove_fk_from_ci_job_artifact_state.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+class RemoveFkFromCiJobArtifactState < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+ disable_ddl_transaction!
+
+ SOURCE_TABLE_NAME = :ci_job_artifact_states
+ TARGET_TABLE_NAME = :ci_job_artifacts
+ COLUMN = :job_artifact_id
+ TARGET_COLUMN = :id
+ FK_NAME = :fk_rails_80a9cba3b2
+
+ def up
+ with_lock_retries do
+ remove_foreign_key_if_exists(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ name: FK_NAME,
+ reverse_lock_order: true
+ )
+ end
+ end
+
+ def down
+ add_concurrent_foreign_key(
+ SOURCE_TABLE_NAME,
+ TARGET_TABLE_NAME,
+ column: COLUMN,
+ target_column: TARGET_COLUMN,
+ validate: true,
+ reverse_lock_order: true,
+ on_delete: :cascade,
+ name: FK_NAME
+ )
+ end
+end
diff --git a/db/post_migrate/20240110132029_re_remove_requirements_ignored_columns.rb b/db/post_migrate/20240110132029_re_remove_requirements_ignored_columns.rb
new file mode 100644
index 00000000000..e6d85761a14
--- /dev/null
+++ b/db/post_migrate/20240110132029_re_remove_requirements_ignored_columns.rb
@@ -0,0 +1,47 @@
+# frozen_string_literal: true
+
+class ReRemoveRequirementsIgnoredColumns < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ disable_ddl_transaction!
+
+ CONSTRAINT_NAME = 'check_785ae25b9d'
+ NAME_INDEX = 'index_requirements_on_title_trigram'
+ FOREIGN_KEY = 'fk_rails_33fed8aa4e'
+
+ def up
+ remove_column(:requirements, :created_at, if_exists: true)
+ remove_column(:requirements, :updated_at, if_exists: true)
+ remove_column(:requirements, :cached_markdown_version, if_exists: true)
+ remove_column(:requirements, :state, if_exists: true)
+ remove_column(:requirements, :title, if_exists: true)
+ remove_column(:requirements, :title_html, if_exists: true)
+ remove_column(:requirements, :description, if_exists: true)
+ remove_column(:requirements, :description_html, if_exists: true)
+ with_lock_retries do
+ remove_column(:requirements, :author_id, if_exists: true)
+ end
+ end
+
+ def down
+ add_column(:requirements, :created_at, :datetime_with_timezone, if_not_exists: true)
+ add_column(:requirements, :updated_at, :datetime_with_timezone, if_not_exists: true)
+ add_column(:requirements, :author_id, :integer, if_not_exists: true)
+ add_column(:requirements, :cached_markdown_version, :integer, if_not_exists: true)
+ add_column(:requirements, :state, :smallint, default: 1, if_not_exists: true)
+ add_column(:requirements, :title, :string, limit: 255, if_not_exists: true)
+ add_column(:requirements, :title_html, :text, if_not_exists: true)
+ add_column(:requirements, :description, :text, if_not_exists: true)
+ add_column(:requirements, :description_html, :text, if_not_exists: true)
+
+ add_check_constraint(:requirements, "char_length(description) <= 10000", CONSTRAINT_NAME)
+
+ add_concurrent_foreign_key(:requirements, :users, column: :author_id, name: FOREIGN_KEY, on_delete: :nullify)
+
+ add_concurrent_index(:requirements, :created_at)
+ add_concurrent_index(:requirements, :updated_at)
+ add_concurrent_index(:requirements, :author_id)
+ add_concurrent_index(:requirements, :state)
+ add_concurrent_index(:requirements, :title, name: NAME_INDEX, using: :gin, opclass: { name: :gin_trgm_ops })
+ end
+end
diff --git a/db/schema_migrations/20231116201338 b/db/schema_migrations/20231116201338
new file mode 100644
index 00000000000..7266a7a36bc
--- /dev/null
+++ b/db/schema_migrations/20231116201338
@@ -0,0 +1 @@
+bb86e8dd465b6bfa394c16e27a7ebc16b63545f9b7675e57399ac159d4b53711 \ No newline at end of file
diff --git a/db/schema_migrations/20231123160255 b/db/schema_migrations/20231123160255
new file mode 100644
index 00000000000..f158c3d99f1
--- /dev/null
+++ b/db/schema_migrations/20231123160255
@@ -0,0 +1 @@
+05dab8240da25338ef7b7f06414f53eac6c584b39158bb80e22f635c216b8276 \ No newline at end of file
diff --git a/db/schema_migrations/20231124022520 b/db/schema_migrations/20231124022520
new file mode 100644
index 00000000000..408c6f976f8
--- /dev/null
+++ b/db/schema_migrations/20231124022520
@@ -0,0 +1 @@
+bfa32c41d867fa4de24ac0a81d1f99f14e868b2c5bd453f799e1a3b3eebd1d51 \ No newline at end of file
diff --git a/db/schema_migrations/20231129173649 b/db/schema_migrations/20231129173649
new file mode 100644
index 00000000000..a70b975dab6
--- /dev/null
+++ b/db/schema_migrations/20231129173649
@@ -0,0 +1 @@
+a18e718e99c23ae6db929929a905af0db72e3a3734d3c33e12ec2cdb44467f6d \ No newline at end of file
diff --git a/db/schema_migrations/20231130124606 b/db/schema_migrations/20231130124606
new file mode 100644
index 00000000000..ed5744a8c7e
--- /dev/null
+++ b/db/schema_migrations/20231130124606
@@ -0,0 +1 @@
+70f8264aa0996e3020fd068beba148f51170224126d1aa91740bd32bd59a196d \ No newline at end of file
diff --git a/db/schema_migrations/20231204042048 b/db/schema_migrations/20231204042048
new file mode 100644
index 00000000000..6e0e069539c
--- /dev/null
+++ b/db/schema_migrations/20231204042048
@@ -0,0 +1 @@
+ca81769223a50ac334a06e150a2454800292a0affa65e3b55f6925c0c1bc7947 \ No newline at end of file
diff --git a/db/schema_migrations/20231204095802 b/db/schema_migrations/20231204095802
new file mode 100644
index 00000000000..eee6ff01a86
--- /dev/null
+++ b/db/schema_migrations/20231204095802
@@ -0,0 +1 @@
+c2fc8e11eb2ac22bd4f37dcabd9468ddfce6285a9b796560c8ce9a21fa0047e1 \ No newline at end of file
diff --git a/db/schema_migrations/20231205165049 b/db/schema_migrations/20231205165049
new file mode 100644
index 00000000000..31d9412d92e
--- /dev/null
+++ b/db/schema_migrations/20231205165049
@@ -0,0 +1 @@
+0ee24818863477396cd51f071d113ebc35f8e9a90f90a5d5e7237032c5f55bd3 \ No newline at end of file
diff --git a/db/schema_migrations/20231205200847 b/db/schema_migrations/20231205200847
new file mode 100644
index 00000000000..ee54e218e09
--- /dev/null
+++ b/db/schema_migrations/20231205200847
@@ -0,0 +1 @@
+cac5543864045ad7e9ad386aebcf7f29ee5c6351fcadd81f4c7b5d29b2fad16b \ No newline at end of file
diff --git a/db/schema_migrations/20231205200925 b/db/schema_migrations/20231205200925
new file mode 100644
index 00000000000..92cee99ca02
--- /dev/null
+++ b/db/schema_migrations/20231205200925
@@ -0,0 +1 @@
+9318699a34d585059d68a62cfe74e5f5d9a8669d0f1acb2b0c9d98545c7a3a26 \ No newline at end of file
diff --git a/db/schema_migrations/20231206165856 b/db/schema_migrations/20231206165856
new file mode 100644
index 00000000000..174770d92b2
--- /dev/null
+++ b/db/schema_migrations/20231206165856
@@ -0,0 +1 @@
+6c0b55a2c7709d78cc83c97efe0586ecb3731bf3e7af23cd237595c7d55b961c \ No newline at end of file
diff --git a/db/schema_migrations/20231206184344 b/db/schema_migrations/20231206184344
new file mode 100644
index 00000000000..54e5c113e2d
--- /dev/null
+++ b/db/schema_migrations/20231206184344
@@ -0,0 +1 @@
+775bee3e66f08e7479bc6f40db9ba909a116f97b4672b9d02d5f9d200bc8bbfe \ No newline at end of file
diff --git a/db/schema_migrations/20231206190206 b/db/schema_migrations/20231206190206
new file mode 100644
index 00000000000..bb6fcca4c89
--- /dev/null
+++ b/db/schema_migrations/20231206190206
@@ -0,0 +1 @@
+2a211a4b94ab1006f680214be38103148eb1edaa1e67a7c3aa6b87679e70d994 \ No newline at end of file
diff --git a/db/schema_migrations/20231206191102 b/db/schema_migrations/20231206191102
new file mode 100644
index 00000000000..2021bd5ecc7
--- /dev/null
+++ b/db/schema_migrations/20231206191102
@@ -0,0 +1 @@
+10f234cbc5db115cf70a2201d3be32edde85612aa3e7b725817b3e757fe3d8f0 \ No newline at end of file
diff --git a/db/schema_migrations/20231206212252 b/db/schema_migrations/20231206212252
new file mode 100644
index 00000000000..fbced800bc4
--- /dev/null
+++ b/db/schema_migrations/20231206212252
@@ -0,0 +1 @@
+de8026484bae86f2dedab6b734a1c1cfcc2f7b804268416cdbbaa44d88f7d908 \ No newline at end of file
diff --git a/db/schema_migrations/20231207145335 b/db/schema_migrations/20231207145335
new file mode 100644
index 00000000000..0918b3e1c99
--- /dev/null
+++ b/db/schema_migrations/20231207145335
@@ -0,0 +1 @@
+94f37e35b90378cfa2cc26aa5114495bfb1f407ace69e5104b354110f797e15d \ No newline at end of file
diff --git a/db/schema_migrations/20231207155340 b/db/schema_migrations/20231207155340
new file mode 100644
index 00000000000..dc9528f0fe4
--- /dev/null
+++ b/db/schema_migrations/20231207155340
@@ -0,0 +1 @@
+0e9bec42c0fcff647bf36fb61fc6fbb4c850da8346c404d2d48b4054f559b213 \ No newline at end of file
diff --git a/db/schema_migrations/20231207211418 b/db/schema_migrations/20231207211418
new file mode 100644
index 00000000000..c55f398e3db
--- /dev/null
+++ b/db/schema_migrations/20231207211418
@@ -0,0 +1 @@
+462ea250743580c161179a935d70b5d0a6a22e953a83787cd5f80d3d2646cc42 \ No newline at end of file
diff --git a/db/schema_migrations/20231207221418 b/db/schema_migrations/20231207221418
new file mode 100644
index 00000000000..91fe8e080cf
--- /dev/null
+++ b/db/schema_migrations/20231207221418
@@ -0,0 +1 @@
+902369f8c734deb3ea351df48542d274ff9dc627fceaefdaa55ae646465b24f1 \ No newline at end of file
diff --git a/db/schema_migrations/20231211154654 b/db/schema_migrations/20231211154654
new file mode 100644
index 00000000000..24f56f52ed1
--- /dev/null
+++ b/db/schema_migrations/20231211154654
@@ -0,0 +1 @@
+7c587bfbe8349640c9766d41a3c287bd27d8bc03d7a3f17d9a47c49f31bed2d8 \ No newline at end of file
diff --git a/db/schema_migrations/20231212090606 b/db/schema_migrations/20231212090606
new file mode 100644
index 00000000000..7160749c318
--- /dev/null
+++ b/db/schema_migrations/20231212090606
@@ -0,0 +1 @@
+86f8e4e111f42d4b8def51c30dc6ca7be035766b30abd2c0c3f2323b4e501cf7 \ No newline at end of file
diff --git a/db/schema_migrations/20231212135235 b/db/schema_migrations/20231212135235
new file mode 100644
index 00000000000..7f72cbe25f4
--- /dev/null
+++ b/db/schema_migrations/20231212135235
@@ -0,0 +1 @@
+de10b5c89c8aac8590f76cba73bdd05af18669c998036ab7ac82231c2feb58f8 \ No newline at end of file
diff --git a/db/schema_migrations/20231212154022 b/db/schema_migrations/20231212154022
new file mode 100644
index 00000000000..9f9967d0326
--- /dev/null
+++ b/db/schema_migrations/20231212154022
@@ -0,0 +1 @@
+c005eb8901f1ebb85dedb044d627396f591bd760a0315dc3f45171def0f972e5 \ No newline at end of file
diff --git a/db/schema_migrations/20231213014658 b/db/schema_migrations/20231213014658
new file mode 100644
index 00000000000..436e6309b69
--- /dev/null
+++ b/db/schema_migrations/20231213014658
@@ -0,0 +1 @@
+3f75e086b1a029efce67a3cd24cc02d482aad29417d697fbb4ef3a42da83c066 \ No newline at end of file
diff --git a/db/schema_migrations/20231213064314 b/db/schema_migrations/20231213064314
new file mode 100644
index 00000000000..ca689b6efe9
--- /dev/null
+++ b/db/schema_migrations/20231213064314
@@ -0,0 +1 @@
+800e0153034af8cffab47cce9362092ec76ba6aa59645b55ecf754bbbdba69d2 \ No newline at end of file
diff --git a/db/schema_migrations/20231213065249 b/db/schema_migrations/20231213065249
new file mode 100644
index 00000000000..86109e19921
--- /dev/null
+++ b/db/schema_migrations/20231213065249
@@ -0,0 +1 @@
+dece1580b6d5b6663b557761b69a8333f83f3f06c38be377299aeacc5ca8e163 \ No newline at end of file
diff --git a/db/schema_migrations/20231213080216 b/db/schema_migrations/20231213080216
new file mode 100644
index 00000000000..aec23e96841
--- /dev/null
+++ b/db/schema_migrations/20231213080216
@@ -0,0 +1 @@
+d4a3655d2c825bc51f9e5c78003222277e11c24f8aaa311225dc232867adf387 \ No newline at end of file
diff --git a/db/schema_migrations/20231213080238 b/db/schema_migrations/20231213080238
new file mode 100644
index 00000000000..c16eee40c3d
--- /dev/null
+++ b/db/schema_migrations/20231213080238
@@ -0,0 +1 @@
+58f4a6bf530cc90a4bda4200111461c30daf0b458d9236b963ecccf2884cdf9d \ No newline at end of file
diff --git a/db/schema_migrations/20231213170159 b/db/schema_migrations/20231213170159
new file mode 100644
index 00000000000..ff5e6e29a3c
--- /dev/null
+++ b/db/schema_migrations/20231213170159
@@ -0,0 +1 @@
+f73fde4e3e54fa88d8dba9ec3a98b7dfb8332aaf7a76de73baf899292ed751b1 \ No newline at end of file
diff --git a/db/schema_migrations/20231214095546 b/db/schema_migrations/20231214095546
new file mode 100644
index 00000000000..e7287b85dce
--- /dev/null
+++ b/db/schema_migrations/20231214095546
@@ -0,0 +1 @@
+ac880932fcf6f15b89335f5ecfe25c2e05b82b1dac5b404e611e8d876f5a7180 \ No newline at end of file
diff --git a/db/schema_migrations/20231214111617 b/db/schema_migrations/20231214111617
new file mode 100644
index 00000000000..42c574c3f8b
--- /dev/null
+++ b/db/schema_migrations/20231214111617
@@ -0,0 +1 @@
+4acc75ab443f518a7340cea213f5803dee10c39f48d07b8a2e284f71d4c1eedd \ No newline at end of file
diff --git a/db/schema_migrations/20231214222351 b/db/schema_migrations/20231214222351
new file mode 100644
index 00000000000..ba699f1b541
--- /dev/null
+++ b/db/schema_migrations/20231214222351
@@ -0,0 +1 @@
+ccfa73743ce6ebc37f661f9286912a3c635a068ff374d0bb1859f74609b84674 \ No newline at end of file
diff --git a/db/schema_migrations/20231215101640 b/db/schema_migrations/20231215101640
new file mode 100644
index 00000000000..13c883c9e3d
--- /dev/null
+++ b/db/schema_migrations/20231215101640
@@ -0,0 +1 @@
+7bdc5d7aa9f9228aac355e51b1461b7d07083e8e5481ccf3e59c5ec48c9230ab \ No newline at end of file
diff --git a/db/schema_migrations/20231215130625 b/db/schema_migrations/20231215130625
new file mode 100644
index 00000000000..80126c160b4
--- /dev/null
+++ b/db/schema_migrations/20231215130625
@@ -0,0 +1 @@
+5e0f9bdd92804b45a1ff020e1f8b3efbe317025ee681f25594859c3e93903b16 \ No newline at end of file
diff --git a/db/schema_migrations/20231215151348 b/db/schema_migrations/20231215151348
new file mode 100644
index 00000000000..1c37bec18da
--- /dev/null
+++ b/db/schema_migrations/20231215151348
@@ -0,0 +1 @@
+281fde69710c20f9ae845136a4bfdbce1a8396f3d3d17018f7ffce1bf230b888 \ No newline at end of file
diff --git a/db/schema_migrations/20231215192706 b/db/schema_migrations/20231215192706
new file mode 100644
index 00000000000..6652ecc5c74
--- /dev/null
+++ b/db/schema_migrations/20231215192706
@@ -0,0 +1 @@
+5939e773b49ddd5e0610efa9a0215881187db968bd75521d2a6ac28fa7b40c0e \ No newline at end of file
diff --git a/db/schema_migrations/20231216190018 b/db/schema_migrations/20231216190018
new file mode 100644
index 00000000000..e94fc46ebeb
--- /dev/null
+++ b/db/schema_migrations/20231216190018
@@ -0,0 +1 @@
+aedec8e22474291e722e18fdc79fc10a1d4569db2e2760a4aebd21119d2c0fd4 \ No newline at end of file
diff --git a/db/schema_migrations/20231217053910 b/db/schema_migrations/20231217053910
new file mode 100644
index 00000000000..ce8d6436f44
--- /dev/null
+++ b/db/schema_migrations/20231217053910
@@ -0,0 +1 @@
+bf5f9ca0584e043c39ca57a9664241900c35cda921c94e0df2728b435137a066 \ No newline at end of file
diff --git a/db/schema_migrations/20231218074237 b/db/schema_migrations/20231218074237
new file mode 100644
index 00000000000..1e3b78d7eab
--- /dev/null
+++ b/db/schema_migrations/20231218074237
@@ -0,0 +1 @@
+ed7563aea9a1d9496813a07b88597592b1c11793ff4673727855d09be07c93b1 \ No newline at end of file
diff --git a/db/schema_migrations/20231218074508 b/db/schema_migrations/20231218074508
new file mode 100644
index 00000000000..d3ec5b303f5
--- /dev/null
+++ b/db/schema_migrations/20231218074508
@@ -0,0 +1 @@
+0f97f218bdb2172c8abcb1a89e647bb0946867ab169d44d2736d24ed93e09322 \ No newline at end of file
diff --git a/db/schema_migrations/20231218092401 b/db/schema_migrations/20231218092401
new file mode 100644
index 00000000000..4d57c53e98d
--- /dev/null
+++ b/db/schema_migrations/20231218092401
@@ -0,0 +1 @@
+8e62da6b0dfd415c462df2bd6ae62826dcfe440eb71e4fc9ad1cb216084f1141 \ No newline at end of file
diff --git a/db/schema_migrations/20231218121131 b/db/schema_migrations/20231218121131
new file mode 100644
index 00000000000..3d262967705
--- /dev/null
+++ b/db/schema_migrations/20231218121131
@@ -0,0 +1 @@
+39fe9d82ebdfb8cb16d4ccb3704d0866aba63ff1bfe4087c6ce44f3c98afd0a0 \ No newline at end of file
diff --git a/db/schema_migrations/20231218172621 b/db/schema_migrations/20231218172621
new file mode 100644
index 00000000000..c5fff4c0072
--- /dev/null
+++ b/db/schema_migrations/20231218172621
@@ -0,0 +1 @@
+9a5a5ecda3186fb4ef642ff56d5e3125bfe888e1a903bfdb8cfcef6827c41df6 \ No newline at end of file
diff --git a/db/schema_migrations/20231219044006 b/db/schema_migrations/20231219044006
new file mode 100644
index 00000000000..87c1c9fb980
--- /dev/null
+++ b/db/schema_migrations/20231219044006
@@ -0,0 +1 @@
+d48e67240f21ae70e7bae4d1c28fd2070b82e6415539da302248897847678915 \ No newline at end of file
diff --git a/db/schema_migrations/20231219075928 b/db/schema_migrations/20231219075928
new file mode 100644
index 00000000000..757bf662643
--- /dev/null
+++ b/db/schema_migrations/20231219075928
@@ -0,0 +1 @@
+0d77fa753395582bb945114b4eaab0526b1cb13ee7b950f15f54321f3bac5429 \ No newline at end of file
diff --git a/db/schema_migrations/20231219075929 b/db/schema_migrations/20231219075929
new file mode 100644
index 00000000000..60873b5661b
--- /dev/null
+++ b/db/schema_migrations/20231219075929
@@ -0,0 +1 @@
+874081aece1c10b0bd12ddfe0c51eef8426dc60d79f008b803126a357029baa5 \ No newline at end of file
diff --git a/db/schema_migrations/20231219083804 b/db/schema_migrations/20231219083804
new file mode 100644
index 00000000000..16affe35253
--- /dev/null
+++ b/db/schema_migrations/20231219083804
@@ -0,0 +1 @@
+2350d314c570dc9c3264376293b81fa41c3340fce2a4e5e1ea149bc205b408e7 \ No newline at end of file
diff --git a/db/schema_migrations/20231219084159 b/db/schema_migrations/20231219084159
new file mode 100644
index 00000000000..04466847fdf
--- /dev/null
+++ b/db/schema_migrations/20231219084159
@@ -0,0 +1 @@
+e724aa0b32b88a291d2683612ba480977b7270a7c0552d677e7fc13ea829a669 \ No newline at end of file
diff --git a/db/schema_migrations/20231219091924 b/db/schema_migrations/20231219091924
new file mode 100644
index 00000000000..8d40c0bee5d
--- /dev/null
+++ b/db/schema_migrations/20231219091924
@@ -0,0 +1 @@
+504031e71241bfe0b9ac4fac44c0ec590001f955bb217b00698ef99d604deafd \ No newline at end of file
diff --git a/db/schema_migrations/20231219092400 b/db/schema_migrations/20231219092400
new file mode 100644
index 00000000000..c0ceeea9e7c
--- /dev/null
+++ b/db/schema_migrations/20231219092400
@@ -0,0 +1 @@
+dc5f49083a0a26e15a32b67112ddcddef5f655a55a7691bf4807ad9cb99e7ea9 \ No newline at end of file
diff --git a/db/schema_migrations/20231219120134 b/db/schema_migrations/20231219120134
deleted file mode 100644
index 3114ed90125..00000000000
--- a/db/schema_migrations/20231219120134
+++ /dev/null
@@ -1 +0,0 @@
-2d70891e636bdd68f5a3827e57cb3013cdcd92e9e2f3556ca9bbd04f2099b182 \ No newline at end of file
diff --git a/db/schema_migrations/20231219125907 b/db/schema_migrations/20231219125907
new file mode 100644
index 00000000000..e1b21ac65de
--- /dev/null
+++ b/db/schema_migrations/20231219125907
@@ -0,0 +1 @@
+91251dddd4dd52f79f48560f6fe81cb52bb30103c1a1441d772c771e853a7f06 \ No newline at end of file
diff --git a/db/schema_migrations/20231219132423 b/db/schema_migrations/20231219132423
new file mode 100644
index 00000000000..82fb1923c91
--- /dev/null
+++ b/db/schema_migrations/20231219132423
@@ -0,0 +1 @@
+ed2b44c085d02dfb5e361f3f33dd62b9b5fed0e3ae570ff79936feadad66561a \ No newline at end of file
diff --git a/db/schema_migrations/20231220094609 b/db/schema_migrations/20231220094609
new file mode 100644
index 00000000000..30ece81d4a0
--- /dev/null
+++ b/db/schema_migrations/20231220094609
@@ -0,0 +1 @@
+aab891f39866b4933cadd8295ecaa1c9f8a256cda832b734dfb1911580187bf3 \ No newline at end of file
diff --git a/db/schema_migrations/20231220113459 b/db/schema_migrations/20231220113459
new file mode 100644
index 00000000000..8fcdc421c90
--- /dev/null
+++ b/db/schema_migrations/20231220113459
@@ -0,0 +1 @@
+c43fa7c8d3fc0bca232dd7ff9c44e6c9f0972732ce42f5ff5de41fda2039bf9d \ No newline at end of file
diff --git a/db/schema_migrations/20231220115201 b/db/schema_migrations/20231220115201
new file mode 100644
index 00000000000..7e9b465886a
--- /dev/null
+++ b/db/schema_migrations/20231220115201
@@ -0,0 +1 @@
+f2807c3b967b165f064a3ef398e44d6de630b33ac34506d08908dbce7f47721b \ No newline at end of file
diff --git a/db/schema_migrations/20231220130725 b/db/schema_migrations/20231220130725
new file mode 100644
index 00000000000..85a0fbfc47d
--- /dev/null
+++ b/db/schema_migrations/20231220130725
@@ -0,0 +1 @@
+a331c4c68080c60637b361b1778d840c367e1fe3dd1d588476a8a00fb5001389 \ No newline at end of file
diff --git a/db/schema_migrations/20231220150143 b/db/schema_migrations/20231220150143
new file mode 100644
index 00000000000..0299e34678b
--- /dev/null
+++ b/db/schema_migrations/20231220150143
@@ -0,0 +1 @@
+616c478d4960da8fe2127bc10ac986e7e274188ba44b3f1c74f846bef73c7e40 \ No newline at end of file
diff --git a/db/schema_migrations/20231220150210 b/db/schema_migrations/20231220150210
new file mode 100644
index 00000000000..1e8a7ebe876
--- /dev/null
+++ b/db/schema_migrations/20231220150210
@@ -0,0 +1 @@
+f367b751ecccd877dd24b859669aaf66fbee85962e857ae6a20e4762e4f40348 \ No newline at end of file
diff --git a/db/schema_migrations/20231221000703 b/db/schema_migrations/20231221000703
new file mode 100644
index 00000000000..09d015f235d
--- /dev/null
+++ b/db/schema_migrations/20231221000703
@@ -0,0 +1 @@
+77f61a80bf0129e5561f7452ae216aa76d96ee61b516a1882eb065cde63fd9d2 \ No newline at end of file
diff --git a/db/schema_migrations/20231221033539 b/db/schema_migrations/20231221033539
new file mode 100644
index 00000000000..6056121cac1
--- /dev/null
+++ b/db/schema_migrations/20231221033539
@@ -0,0 +1 @@
+4493149bdc2db628180768717ebea209665e2311c6ce08269a6985ac643017c2 \ No newline at end of file
diff --git a/db/schema_migrations/20231221113948 b/db/schema_migrations/20231221113948
new file mode 100644
index 00000000000..e5ec2807cc2
--- /dev/null
+++ b/db/schema_migrations/20231221113948
@@ -0,0 +1 @@
+1403f5bcc26c0f8b76f27b77305fc4089c87cf06362c3c9919a71dd3efcee492 \ No newline at end of file
diff --git a/db/schema_migrations/20231221171135 b/db/schema_migrations/20231221171135
new file mode 100644
index 00000000000..9fe93b8301a
--- /dev/null
+++ b/db/schema_migrations/20231221171135
@@ -0,0 +1 @@
+b03eee7eff8f7402f3c590b6ae2010c6c278aaa433db52d444a60357bbd8b582 \ No newline at end of file
diff --git a/db/schema_migrations/20231221223259 b/db/schema_migrations/20231221223259
new file mode 100644
index 00000000000..bad7426d672
--- /dev/null
+++ b/db/schema_migrations/20231221223259
@@ -0,0 +1 @@
+8486c7e03ce00647f110c03d912728dd140911179da871af0ae8bf521b22dccb \ No newline at end of file
diff --git a/db/schema_migrations/20231222051050 b/db/schema_migrations/20231222051050
new file mode 100644
index 00000000000..9b94b45c2fd
--- /dev/null
+++ b/db/schema_migrations/20231222051050
@@ -0,0 +1 @@
+b99645404537df761bcb4deb8c4f9745c6b54eec3a27b346ccc2a1a44c46f93d \ No newline at end of file
diff --git a/db/schema_migrations/20231222071942 b/db/schema_migrations/20231222071942
new file mode 100644
index 00000000000..cc33e2239e2
--- /dev/null
+++ b/db/schema_migrations/20231222071942
@@ -0,0 +1 @@
+187b2c6e79e0f9e4636923f646ef9b5b5c609cb1797dac6265a1aa12e2a46f31 \ No newline at end of file
diff --git a/db/schema_migrations/20231222072237 b/db/schema_migrations/20231222072237
new file mode 100644
index 00000000000..4c71203247b
--- /dev/null
+++ b/db/schema_migrations/20231222072237
@@ -0,0 +1 @@
+c92fb56354f4471103cb34f0a49294961a221dde5ecea72b0f132fdd1c813095 \ No newline at end of file
diff --git a/db/schema_migrations/20231222114515 b/db/schema_migrations/20231222114515
new file mode 100644
index 00000000000..d125ae37515
--- /dev/null
+++ b/db/schema_migrations/20231222114515
@@ -0,0 +1 @@
+aef5aa17951e254ad86fcfd59ade64fd98be484094fc5c25a6a941649f66ebc3 \ No newline at end of file
diff --git a/db/schema_migrations/20231224083824 b/db/schema_migrations/20231224083824
new file mode 100644
index 00000000000..bd514723679
--- /dev/null
+++ b/db/schema_migrations/20231224083824
@@ -0,0 +1 @@
+d8cfd6b59da7a32b86aedaf1f6780774f7b70bc6a8cf675d91a63c4cc6dd94ea \ No newline at end of file
diff --git a/db/schema_migrations/20231225070431 b/db/schema_migrations/20231225070431
new file mode 100644
index 00000000000..7cbc466473b
--- /dev/null
+++ b/db/schema_migrations/20231225070431
@@ -0,0 +1 @@
+1298d9dd3c6b909a3129b5375477b466b7970347cf65d0654bf3076f87658fd0 \ No newline at end of file
diff --git a/db/schema_migrations/20231225133628 b/db/schema_migrations/20231225133628
new file mode 100644
index 00000000000..9206474b258
--- /dev/null
+++ b/db/schema_migrations/20231225133628
@@ -0,0 +1 @@
+6d00c9672b913437f6e4afaef24c32b46d189e34502659dc3f92b1b6b13cff2a \ No newline at end of file
diff --git a/db/schema_migrations/20231226052618 b/db/schema_migrations/20231226052618
new file mode 100644
index 00000000000..17ec0a0a14c
--- /dev/null
+++ b/db/schema_migrations/20231226052618
@@ -0,0 +1 @@
+0e9e483ca16b138808a027ca82ee985945a95bb053ce94ee1a7ad05bf51757de \ No newline at end of file
diff --git a/db/schema_migrations/20231227090634 b/db/schema_migrations/20231227090634
new file mode 100644
index 00000000000..aa1ca5b8daf
--- /dev/null
+++ b/db/schema_migrations/20231227090634
@@ -0,0 +1 @@
+7cb103ff2494501217565a4a33280ecb3be0d5e3c02c18d4d7f754c694ac4c6b \ No newline at end of file
diff --git a/db/schema_migrations/20231227103059 b/db/schema_migrations/20231227103059
new file mode 100644
index 00000000000..50f5df69ad5
--- /dev/null
+++ b/db/schema_migrations/20231227103059
@@ -0,0 +1 @@
+d9f963d252141e1fe5bab5dd8f6b67964253788771d45bf343459014864919b5 \ No newline at end of file
diff --git a/db/schema_migrations/20231227104408 b/db/schema_migrations/20231227104408
new file mode 100644
index 00000000000..1ac79ac87b1
--- /dev/null
+++ b/db/schema_migrations/20231227104408
@@ -0,0 +1 @@
+ffeb813c94ff0fdefae162e32f56083125248e8b3f34535f9f4252dcb09b1412 \ No newline at end of file
diff --git a/db/schema_migrations/20231227104711 b/db/schema_migrations/20231227104711
new file mode 100644
index 00000000000..006bb2e1865
--- /dev/null
+++ b/db/schema_migrations/20231227104711
@@ -0,0 +1 @@
+22e7c4fe8821e07a6ec5c48c32007849faa673eee203689dd51753bf38004077 \ No newline at end of file
diff --git a/db/schema_migrations/20231228043653 b/db/schema_migrations/20231228043653
new file mode 100644
index 00000000000..1b5983ef534
--- /dev/null
+++ b/db/schema_migrations/20231228043653
@@ -0,0 +1 @@
+a2b8c055b7ac4d4f4a3a6927061b268ab6f45e17df4363b65e01041274fed09f \ No newline at end of file
diff --git a/db/schema_migrations/20231229112819 b/db/schema_migrations/20231229112819
new file mode 100644
index 00000000000..5b183bf6ac7
--- /dev/null
+++ b/db/schema_migrations/20231229112819
@@ -0,0 +1 @@
+8afd047b9b3b3f71aad56617592f3657b0da6bae22bf20ff58d9d2cc84c90c14 \ No newline at end of file
diff --git a/db/schema_migrations/20240101031938 b/db/schema_migrations/20240101031938
new file mode 100644
index 00000000000..5b9395a568f
--- /dev/null
+++ b/db/schema_migrations/20240101031938
@@ -0,0 +1 @@
+d0cb92dc098f069e02d457f7c497dc24f544f6a27a8426dcd3446ad16bd9cc44 \ No newline at end of file
diff --git a/db/schema_migrations/20240101133628 b/db/schema_migrations/20240101133628
new file mode 100644
index 00000000000..129206c5564
--- /dev/null
+++ b/db/schema_migrations/20240101133628
@@ -0,0 +1 @@
+61b8bed56b1aa5fbce448cc8b90ec863801fbffb0a81f857ce512052f47ba1cb \ No newline at end of file
diff --git a/db/schema_migrations/20240102065444 b/db/schema_migrations/20240102065444
new file mode 100644
index 00000000000..5f5db30dc4e
--- /dev/null
+++ b/db/schema_migrations/20240102065444
@@ -0,0 +1 @@
+e3fce3184c7e9c3e84e73caeaee94ab14dafc46c046e8477d5762b3d41a11a02 \ No newline at end of file
diff --git a/db/schema_migrations/20240102101409 b/db/schema_migrations/20240102101409
new file mode 100644
index 00000000000..b125c4f6cb8
--- /dev/null
+++ b/db/schema_migrations/20240102101409
@@ -0,0 +1 @@
+6b9244a1ef9a87f192548bde7346e1b6b18d036ca14dcbde04046842d461dc36 \ No newline at end of file
diff --git a/db/schema_migrations/20240102184844 b/db/schema_migrations/20240102184844
new file mode 100644
index 00000000000..8b8a099bc2d
--- /dev/null
+++ b/db/schema_migrations/20240102184844
@@ -0,0 +1 @@
+6afdff39b79900760124493eaa5a7ab8c15f81e77f024338352eeff731479e34 \ No newline at end of file
diff --git a/db/schema_migrations/20240103200822 b/db/schema_migrations/20240103200822
new file mode 100644
index 00000000000..896e75a009b
--- /dev/null
+++ b/db/schema_migrations/20240103200822
@@ -0,0 +1 @@
+7b4f74933360df0a49d44f0738922b0929b62f23aa60a36a5ae24c88a2857638 \ No newline at end of file
diff --git a/db/schema_migrations/20240103202629 b/db/schema_migrations/20240103202629
new file mode 100644
index 00000000000..c2151c9fcd5
--- /dev/null
+++ b/db/schema_migrations/20240103202629
@@ -0,0 +1 @@
+f5c40748ac911a2ee151a36b1a15d8080c4948e0439d25b791db2bb0ae57f7d9 \ No newline at end of file
diff --git a/db/schema_migrations/20240103203314 b/db/schema_migrations/20240103203314
new file mode 100644
index 00000000000..ebb3382d1a9
--- /dev/null
+++ b/db/schema_migrations/20240103203314
@@ -0,0 +1 @@
+9a638b98580e144b7a3e7ad6fc0833531ff63fbd94476310604f1581c8625200 \ No newline at end of file
diff --git a/db/schema_migrations/20240104085448 b/db/schema_migrations/20240104085448
new file mode 100644
index 00000000000..a73b6a090a3
--- /dev/null
+++ b/db/schema_migrations/20240104085448
@@ -0,0 +1 @@
+57e5c890ac0ebb837a5894b09717322c2053694cc4a91270508a652f091e457c \ No newline at end of file
diff --git a/db/schema_migrations/20240104091627 b/db/schema_migrations/20240104091627
new file mode 100644
index 00000000000..c0a036c1ca1
--- /dev/null
+++ b/db/schema_migrations/20240104091627
@@ -0,0 +1 @@
+90614e8c6d73455b96dc7c4652b529ffa844d704fe8e7729e97b4ac557edb423 \ No newline at end of file
diff --git a/db/schema_migrations/20240104091858 b/db/schema_migrations/20240104091858
new file mode 100644
index 00000000000..157773a26b5
--- /dev/null
+++ b/db/schema_migrations/20240104091858
@@ -0,0 +1 @@
+991849159d57b5bd6d0d0d671f766c715b23a8e04c3130e56e2b6a05a27f49d6 \ No newline at end of file
diff --git a/db/schema_migrations/20240104101601 b/db/schema_migrations/20240104101601
new file mode 100644
index 00000000000..06c9bee807e
--- /dev/null
+++ b/db/schema_migrations/20240104101601
@@ -0,0 +1 @@
+729cc1d2d73610b8e1a8efec30635dded7c85ece9afdc40e24ed60ddd82c4068 \ No newline at end of file
diff --git a/db/schema_migrations/20240104124057 b/db/schema_migrations/20240104124057
new file mode 100644
index 00000000000..88084f82ad8
--- /dev/null
+++ b/db/schema_migrations/20240104124057
@@ -0,0 +1 @@
+ce45b0df0c8c6a511e28710155d219631bda8cacadbec05d4a9ef20816d45690 \ No newline at end of file
diff --git a/db/schema_migrations/20240104145320 b/db/schema_migrations/20240104145320
new file mode 100644
index 00000000000..a905ae8adc5
--- /dev/null
+++ b/db/schema_migrations/20240104145320
@@ -0,0 +1 @@
+5770b4f7e65affa2769423c1cd9cdbbe5a8c8f0fa465be4d9a017c54ca56c804 \ No newline at end of file
diff --git a/db/schema_migrations/20240104150106 b/db/schema_migrations/20240104150106
new file mode 100644
index 00000000000..d2e7dbf0590
--- /dev/null
+++ b/db/schema_migrations/20240104150106
@@ -0,0 +1 @@
+e6829ae7a671ff2c13c78721c9304bcbaa7738aea01d8e83aeac79d0da2d2a47 \ No newline at end of file
diff --git a/db/schema_migrations/20240104155616 b/db/schema_migrations/20240104155616
new file mode 100644
index 00000000000..b30a2a3aba4
--- /dev/null
+++ b/db/schema_migrations/20240104155616
@@ -0,0 +1 @@
+167d6118d2c7ccd83662af4304e543163043a962c66d67d338d3852ba36b53a8 \ No newline at end of file
diff --git a/db/schema_migrations/20240104191736 b/db/schema_migrations/20240104191736
new file mode 100644
index 00000000000..8072f3c5bfa
--- /dev/null
+++ b/db/schema_migrations/20240104191736
@@ -0,0 +1 @@
+92f7eddc8ba255987adc42e1140b47256c62235762f431ba8047561f120004dc \ No newline at end of file
diff --git a/db/schema_migrations/20240104191802 b/db/schema_migrations/20240104191802
new file mode 100644
index 00000000000..36ad8605992
--- /dev/null
+++ b/db/schema_migrations/20240104191802
@@ -0,0 +1 @@
+eb3a7d14833470fe74420874ed883428d54a4d1a24a7f131f2049bf2f7efa929 \ No newline at end of file
diff --git a/db/schema_migrations/20240104223119 b/db/schema_migrations/20240104223119
new file mode 100644
index 00000000000..af271c3ce80
--- /dev/null
+++ b/db/schema_migrations/20240104223119
@@ -0,0 +1 @@
+835c483008b589033f825535c381b963d5c20b2aa00f849376e05b69864f68ff \ No newline at end of file
diff --git a/db/schema_migrations/20240105000000 b/db/schema_migrations/20240105000000
new file mode 100644
index 00000000000..5d7b53970b7
--- /dev/null
+++ b/db/schema_migrations/20240105000000
@@ -0,0 +1 @@
+5fd81c2408e7e4ae564b719702b69e7645fb84822e77d2aee9eb284a68daf1dd \ No newline at end of file
diff --git a/db/schema_migrations/20240105000001 b/db/schema_migrations/20240105000001
new file mode 100644
index 00000000000..45bc8d78c16
--- /dev/null
+++ b/db/schema_migrations/20240105000001
@@ -0,0 +1 @@
+7a53aa32b606bb1ae2b2816fe50d2ef57eb899fefc7dfd1ad558da36898a3155 \ No newline at end of file
diff --git a/db/schema_migrations/20240105120320 b/db/schema_migrations/20240105120320
new file mode 100644
index 00000000000..0c06c3ce42a
--- /dev/null
+++ b/db/schema_migrations/20240105120320
@@ -0,0 +1 @@
+f56668c85ef90efb1c4ef4e959ed23803670c164c557baa0bc3dc1241d55f002 \ No newline at end of file
diff --git a/db/schema_migrations/20240105144908 b/db/schema_migrations/20240105144908
new file mode 100644
index 00000000000..5183b5b9aac
--- /dev/null
+++ b/db/schema_migrations/20240105144908
@@ -0,0 +1 @@
+a86ea4736f6f0357c78535111468a273e61b742d5b5b3ddc09fe5177e1bc77c8 \ No newline at end of file
diff --git a/db/schema_migrations/20240107084243 b/db/schema_migrations/20240107084243
new file mode 100644
index 00000000000..3f7ad20dab7
--- /dev/null
+++ b/db/schema_migrations/20240107084243
@@ -0,0 +1 @@
+b6c62664a45db815b8e2a924255214269b70e6af2bb0c909eee774f1d33c6397 \ No newline at end of file
diff --git a/db/schema_migrations/20240107154747 b/db/schema_migrations/20240107154747
new file mode 100644
index 00000000000..303b6bd9e73
--- /dev/null
+++ b/db/schema_migrations/20240107154747
@@ -0,0 +1 @@
+066ff822fdc28dc62946b40c0b954d351c9bc55e83d5993bd2b35c4cecfe61f6 \ No newline at end of file
diff --git a/db/schema_migrations/20240107154805 b/db/schema_migrations/20240107154805
new file mode 100644
index 00000000000..11470faaa54
--- /dev/null
+++ b/db/schema_migrations/20240107154805
@@ -0,0 +1 @@
+bae4fbcf7cc5217663a630deed0adc509f3386921a84fffa06adef603a9bf378 \ No newline at end of file
diff --git a/db/schema_migrations/20240108072319 b/db/schema_migrations/20240108072319
new file mode 100644
index 00000000000..8f82a6baf77
--- /dev/null
+++ b/db/schema_migrations/20240108072319
@@ -0,0 +1 @@
+67af5f06d58f67d7ce0f27c8fd5eb0856772b98443a59cd077b076494fed6634 \ No newline at end of file
diff --git a/db/schema_migrations/20240108072546 b/db/schema_migrations/20240108072546
new file mode 100644
index 00000000000..997e37dba92
--- /dev/null
+++ b/db/schema_migrations/20240108072546
@@ -0,0 +1 @@
+981e263b0c9715324d86ed29534465ebcf2d37c8bb9e5dc0d93b9abf11f264d4 \ No newline at end of file
diff --git a/db/schema_migrations/20240108082419 b/db/schema_migrations/20240108082419
new file mode 100644
index 00000000000..8286b90e678
--- /dev/null
+++ b/db/schema_migrations/20240108082419
@@ -0,0 +1 @@
+273a951feb99c6064529c3a4403210ec0ff4a0be41867b7b90809b89fd767f5d \ No newline at end of file
diff --git a/db/schema_migrations/20240108121335 b/db/schema_migrations/20240108121335
new file mode 100644
index 00000000000..a8a63cc44c9
--- /dev/null
+++ b/db/schema_migrations/20240108121335
@@ -0,0 +1 @@
+42975addff21ed60838f893a447055317aa08aad7b792205385dc4e06c7c523a \ No newline at end of file
diff --git a/db/schema_migrations/20240108123023 b/db/schema_migrations/20240108123023
new file mode 100644
index 00000000000..3121a9de1ea
--- /dev/null
+++ b/db/schema_migrations/20240108123023
@@ -0,0 +1 @@
+14f34f294f2f88e3382c21e26752873766480f8dd313bb4f7e796cb2c01a2f2d \ No newline at end of file
diff --git a/db/schema_migrations/20240108123115 b/db/schema_migrations/20240108123115
new file mode 100644
index 00000000000..10aaf05b98e
--- /dev/null
+++ b/db/schema_migrations/20240108123115
@@ -0,0 +1 @@
+9fbdcc42735c36b490b35bba4db635c1d92497b844ee2685be6849581f18d92d \ No newline at end of file
diff --git a/db/schema_migrations/20240108123509 b/db/schema_migrations/20240108123509
new file mode 100644
index 00000000000..1327c9c7a7c
--- /dev/null
+++ b/db/schema_migrations/20240108123509
@@ -0,0 +1 @@
+df7e3487d37067b55d0894e15774a48d94ea581ee463de2dece8a3ef6584a7a5 \ No newline at end of file
diff --git a/db/schema_migrations/20240108125135 b/db/schema_migrations/20240108125135
new file mode 100644
index 00000000000..c69a67409ee
--- /dev/null
+++ b/db/schema_migrations/20240108125135
@@ -0,0 +1 @@
+31083622ee26968a55a6cf84608e2f13ada6a142a8bd302b5f39bbd6facb911a \ No newline at end of file
diff --git a/db/schema_migrations/20240108125335 b/db/schema_migrations/20240108125335
new file mode 100644
index 00000000000..194113c1076
--- /dev/null
+++ b/db/schema_migrations/20240108125335
@@ -0,0 +1 @@
+37a95779658d4c814f64f6f6b1909b79fa3b55f90d93581fa09a2f5d7a600c99 \ No newline at end of file
diff --git a/db/schema_migrations/20240108181808 b/db/schema_migrations/20240108181808
new file mode 100644
index 00000000000..542a576fdf1
--- /dev/null
+++ b/db/schema_migrations/20240108181808
@@ -0,0 +1 @@
+688603d4b31b17d1eeb133e293876aae77ab68b80f656fb9b902ca38d4c7beed \ No newline at end of file
diff --git a/db/schema_migrations/20240108185335 b/db/schema_migrations/20240108185335
new file mode 100644
index 00000000000..824b9fc59a4
--- /dev/null
+++ b/db/schema_migrations/20240108185335
@@ -0,0 +1 @@
+522d57a8594965ee9756ec4f0fe6f66515348a4b99606607b781ffd177982427 \ No newline at end of file
diff --git a/db/schema_migrations/20240108215335 b/db/schema_migrations/20240108215335
new file mode 100644
index 00000000000..8f9df917d12
--- /dev/null
+++ b/db/schema_migrations/20240108215335
@@ -0,0 +1 @@
+57d6347cfbd9169fe7a104b493632492dc1bb32729a761354feed79a886eecf6 \ No newline at end of file
diff --git a/db/schema_migrations/20240109025151 b/db/schema_migrations/20240109025151
new file mode 100644
index 00000000000..d6d47f823e2
--- /dev/null
+++ b/db/schema_migrations/20240109025151
@@ -0,0 +1 @@
+b40f751b4b06dd94de38e3fa260e07e56359828ca1ae1799ca4d65bd873fa8af \ No newline at end of file
diff --git a/db/schema_migrations/20240109082354 b/db/schema_migrations/20240109082354
new file mode 100644
index 00000000000..37ffffb7267
--- /dev/null
+++ b/db/schema_migrations/20240109082354
@@ -0,0 +1 @@
+b264b391bc50ede33db98df9e1e54a074c850e2e4af0c5bd380ce1f32646c95b \ No newline at end of file
diff --git a/db/schema_migrations/20240109090354 b/db/schema_migrations/20240109090354
new file mode 100644
index 00000000000..26f68dd746a
--- /dev/null
+++ b/db/schema_migrations/20240109090354
@@ -0,0 +1 @@
+7420ebb45a2ef0f82527b7427ec741bf8807efb966c317a9fedfda5c04fb4947 \ No newline at end of file
diff --git a/db/schema_migrations/20240109145839 b/db/schema_migrations/20240109145839
new file mode 100644
index 00000000000..0657c41254a
--- /dev/null
+++ b/db/schema_migrations/20240109145839
@@ -0,0 +1 @@
+6b33ceb05ab45bd0a13cd6706a9cf006f756574a08152ab6de87ff840f56b95d \ No newline at end of file
diff --git a/db/schema_migrations/20240109165047 b/db/schema_migrations/20240109165047
new file mode 100644
index 00000000000..245a4a009aa
--- /dev/null
+++ b/db/schema_migrations/20240109165047
@@ -0,0 +1 @@
+026e113720d6920cefc0ad6b894930ce486abe043568d6dde1d047b679dd8b44 \ No newline at end of file
diff --git a/db/schema_migrations/20240110085226 b/db/schema_migrations/20240110085226
new file mode 100644
index 00000000000..35e3cc7237a
--- /dev/null
+++ b/db/schema_migrations/20240110085226
@@ -0,0 +1 @@
+9c9eb37365dae73fb68000d18675a280e063711eaed8f96f64724bff20326957 \ No newline at end of file
diff --git a/db/schema_migrations/20240110090352 b/db/schema_migrations/20240110090352
new file mode 100644
index 00000000000..836d868f513
--- /dev/null
+++ b/db/schema_migrations/20240110090352
@@ -0,0 +1 @@
+cc4ea0747894b9e896c888c9c7ba8bbae2aea8aa55041ac4b8a0be18b5b38908 \ No newline at end of file
diff --git a/db/schema_migrations/20240110093654 b/db/schema_migrations/20240110093654
new file mode 100644
index 00000000000..1c5f4a1208d
--- /dev/null
+++ b/db/schema_migrations/20240110093654
@@ -0,0 +1 @@
+41964f40e257d2d7fb0427f7f2911ea0857d67f51e9a1f4ed26d36d42394dd19 \ No newline at end of file
diff --git a/db/schema_migrations/20240110094002 b/db/schema_migrations/20240110094002
new file mode 100644
index 00000000000..5b6fcb1080a
--- /dev/null
+++ b/db/schema_migrations/20240110094002
@@ -0,0 +1 @@
+ec56796b8c3514380e716259119e7def5a958e7bfade25c69e3c99ffd52a265f \ No newline at end of file
diff --git a/db/schema_migrations/20240110094510 b/db/schema_migrations/20240110094510
new file mode 100644
index 00000000000..e533dc38912
--- /dev/null
+++ b/db/schema_migrations/20240110094510
@@ -0,0 +1 @@
+6ed6cfa3e8b8b8fdbfacadcdff55dda07365f113d4f84e33c6bab878352cda11 \ No newline at end of file
diff --git a/db/schema_migrations/20240110132029 b/db/schema_migrations/20240110132029
new file mode 100644
index 00000000000..e707c5a4112
--- /dev/null
+++ b/db/schema_migrations/20240110132029
@@ -0,0 +1 @@
+ac490ec281f23857fa6300678404895b20fbc60d9bc6ed22c46189df371f90d6 \ No newline at end of file
diff --git a/db/schema_migrations/20240111134328 b/db/schema_migrations/20240111134328
new file mode 100644
index 00000000000..268782c5acc
--- /dev/null
+++ b/db/schema_migrations/20240111134328
@@ -0,0 +1 @@
+0fc191808377dfe56ece157bc9d44899ce8635260e894972f2d058822707b080 \ No newline at end of file
diff --git a/db/schema_migrations/20240115115029 b/db/schema_migrations/20240115115029
new file mode 100644
index 00000000000..e1bac290b9c
--- /dev/null
+++ b/db/schema_migrations/20240115115029
@@ -0,0 +1 @@
+3ee5c98adb3daf33f58732e29ab7537d3cf2309bf0eaf15f503482d135a7fcd8 \ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index ac62920288a..7d07dfd2287 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -577,6 +577,15 @@ BEGIN
END;
$$;
+CREATE FUNCTION trigger_ff16c1fd43ea() RETURNS trigger
+ LANGUAGE plpgsql
+ AS $$
+BEGIN
+ NEW."geo_event_id_convert_to_bigint" := NEW."geo_event_id";
+ RETURN NEW;
+END;
+$$;
+
CREATE FUNCTION unset_has_issues_on_vulnerability_reads() RETURNS trigger
LANGUAGE plpgsql
AS $$
@@ -2517,6 +2526,304 @@ CREATE TABLE gitlab_partitions_static.issue_search_data_63 (
namespace_id bigint
);
+CREATE TABLE namespace_descendants (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+)
+PARTITION BY HASH (namespace_id);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_00 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_01 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_02 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_03 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_04 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_05 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_06 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_07 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_08 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_09 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_10 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_11 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_12 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_13 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_14 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_15 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_16 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_17 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_18 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_19 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_20 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_21 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_22 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_23 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_24 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_25 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_26 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_27 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_28 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_29 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_30 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
+CREATE TABLE gitlab_partitions_static.namespace_descendants_31 (
+ namespace_id bigint NOT NULL,
+ self_and_descendant_group_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ all_project_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ traversal_ids bigint[] DEFAULT ARRAY[]::bigint[] NOT NULL,
+ outdated_at timestamp with time zone,
+ calculated_at timestamp with time zone
+);
+
CREATE TABLE product_analytics_events_experimental (
id bigint NOT NULL,
project_id integer NOT NULL,
@@ -11370,6 +11677,45 @@ CREATE SEQUENCE agent_user_access_project_authorizations_id_seq
ALTER SEQUENCE agent_user_access_project_authorizations_id_seq OWNED BY agent_user_access_project_authorizations.id;
+CREATE TABLE ai_agent_versions (
+ id bigint NOT NULL,
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ project_id bigint NOT NULL,
+ agent_id bigint NOT NULL,
+ prompt text NOT NULL,
+ model text NOT NULL,
+ CONSTRAINT check_8cda7448e9 CHECK ((char_length(model) <= 255)),
+ CONSTRAINT check_d7a4fc9834 CHECK ((char_length(prompt) <= 5000))
+);
+
+CREATE SEQUENCE ai_agent_versions_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ALTER SEQUENCE ai_agent_versions_id_seq OWNED BY ai_agent_versions.id;
+
+CREATE TABLE ai_agents (
+ id bigint NOT NULL,
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ project_id bigint NOT NULL,
+ name text NOT NULL,
+ CONSTRAINT check_67934c8e85 CHECK ((char_length(name) <= 255))
+);
+
+CREATE SEQUENCE ai_agents_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ALTER SEQUENCE ai_agents_id_seq OWNED BY ai_agents.id;
+
CREATE TABLE alert_management_alert_assignees (
id bigint NOT NULL,
user_id bigint NOT NULL,
@@ -11776,6 +12122,7 @@ CREATE TABLE application_settings (
session_expire_delay integer DEFAULT 10080 NOT NULL,
import_sources text,
help_page_text text,
+ require_admin_two_factor_authentication boolean DEFAULT false NOT NULL,
shared_runners_enabled boolean DEFAULT true NOT NULL,
max_artifacts_size integer DEFAULT 100 NOT NULL,
runners_registration_token character varying,
@@ -12284,6 +12631,9 @@ CREATE TABLE application_settings (
encrypted_arkose_labs_data_exchange_key_iv bytea,
toggle_security_policy_custom_ci boolean DEFAULT false NOT NULL,
lock_toggle_security_policy_custom_ci boolean DEFAULT false NOT NULL,
+ toggle_security_policies_policy_scope boolean DEFAULT false NOT NULL,
+ lock_toggle_security_policies_policy_scope boolean DEFAULT false NOT NULL,
+ rate_limits jsonb DEFAULT '{}'::jsonb NOT NULL,
CONSTRAINT app_settings_container_reg_cleanup_tags_max_list_size_positive CHECK ((container_registry_cleanup_tags_service_max_list_size >= 0)),
CONSTRAINT app_settings_container_registry_pre_import_tags_rate_positive CHECK ((container_registry_pre_import_tags_rate >= (0)::numeric)),
CONSTRAINT app_settings_dep_proxy_ttl_policies_worker_capacity_positive CHECK ((dependency_proxy_ttl_group_policy_worker_capacity >= 0)),
@@ -12334,6 +12684,7 @@ CREATE TABLE application_settings (
CONSTRAINT check_ae53cf7f82 CHECK ((char_length(vertex_ai_host) <= 255)),
CONSTRAINT check_app_settings_namespace_storage_forks_cost_factor_range CHECK (((namespace_storage_forks_cost_factor >= (0)::double precision) AND (namespace_storage_forks_cost_factor <= (1)::double precision))),
CONSTRAINT check_app_settings_sentry_clientside_traces_sample_rate_range CHECK (((sentry_clientside_traces_sample_rate >= (0)::double precision) AND (sentry_clientside_traces_sample_rate <= (1)::double precision))),
+ CONSTRAINT check_application_settings_rate_limits_is_hash CHECK ((jsonb_typeof(rate_limits) = 'object'::text)),
CONSTRAINT check_b8c74ea5b3 CHECK ((char_length(deactivation_email_additional_text) <= 1000)),
CONSTRAINT check_cdfbd99405 CHECK ((char_length(security_txt_content) <= 2048)),
CONSTRAINT check_d03919528d CHECK ((char_length(container_registry_vendor) <= 255)),
@@ -13979,28 +14330,6 @@ CREATE SEQUENCE ci_deleted_objects_id_seq
ALTER SEQUENCE ci_deleted_objects_id_seq OWNED BY ci_deleted_objects.id;
-CREATE TABLE ci_editor_ai_conversation_messages (
- id bigint NOT NULL,
- user_id bigint NOT NULL,
- project_id bigint NOT NULL,
- created_at timestamp with time zone NOT NULL,
- updated_at timestamp with time zone NOT NULL,
- role text NOT NULL,
- content text,
- async_errors text[] DEFAULT '{}'::text[] NOT NULL,
- CONSTRAINT check_10b793171f CHECK ((char_length(role) <= 100)),
- CONSTRAINT check_c83d789632 CHECK ((char_length(content) <= 16384))
-);
-
-CREATE SEQUENCE ci_editor_ai_conversation_messages_id_seq
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1;
-
-ALTER SEQUENCE ci_editor_ai_conversation_messages_id_seq OWNED BY ci_editor_ai_conversation_messages.id;
-
CREATE TABLE ci_freeze_periods (
id bigint NOT NULL,
project_id bigint NOT NULL,
@@ -14058,9 +14387,11 @@ CREATE TABLE ci_instance_variables (
encrypted_value text,
encrypted_value_iv text,
raw boolean DEFAULT false NOT NULL,
+ description text,
CONSTRAINT check_07a45a5bcb CHECK ((char_length(encrypted_value_iv) <= 255)),
CONSTRAINT check_5aede12208 CHECK ((char_length(key) <= 255)),
- CONSTRAINT check_956afd70f1 CHECK ((char_length(encrypted_value) <= 13579))
+ CONSTRAINT check_956afd70f1 CHECK ((char_length(encrypted_value) <= 13579)),
+ CONSTRAINT check_a0a9762afa CHECK ((char_length(description) <= 255))
);
CREATE SEQUENCE ci_instance_variables_id_seq
@@ -14268,6 +14599,7 @@ CREATE TABLE ci_pipeline_artifacts (
verification_checksum bytea,
verification_failure text,
locked smallint DEFAULT 2,
+ partition_id bigint DEFAULT 100 NOT NULL,
CONSTRAINT check_191b5850ec CHECK ((char_length(file) <= 255)),
CONSTRAINT check_abeeb71caf CHECK ((file IS NOT NULL)),
CONSTRAINT ci_pipeline_artifacts_verification_failure_text_limit CHECK ((char_length(verification_failure) <= 255))
@@ -14286,7 +14618,8 @@ CREATE TABLE ci_pipeline_chat_data (
id bigint NOT NULL,
chat_name_id integer NOT NULL,
response_url text NOT NULL,
- pipeline_id bigint NOT NULL
+ pipeline_id bigint NOT NULL,
+ partition_id bigint NOT NULL
);
CREATE SEQUENCE ci_pipeline_chat_data_id_seq
@@ -14321,6 +14654,7 @@ CREATE TABLE ci_pipeline_metadata (
name text,
auto_cancel_on_new_commit smallint DEFAULT 0 NOT NULL,
auto_cancel_on_job_failure smallint DEFAULT 0 NOT NULL,
+ partition_id bigint DEFAULT 100 NOT NULL,
CONSTRAINT check_9d3665463c CHECK ((char_length(name) <= 255))
);
@@ -14429,7 +14763,8 @@ CREATE TABLE ci_pipelines (
CREATE TABLE ci_pipelines_config (
pipeline_id bigint NOT NULL,
- content text NOT NULL
+ content text NOT NULL,
+ partition_id bigint DEFAULT 100 NOT NULL
);
CREATE SEQUENCE ci_pipelines_id_seq
@@ -14899,6 +15234,22 @@ CREATE SEQUENCE ci_variables_id_seq
ALTER SEQUENCE ci_variables_id_seq OWNED BY ci_variables.id;
+CREATE TABLE cloud_connector_access (
+ id bigint NOT NULL,
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ data jsonb NOT NULL
+);
+
+CREATE SEQUENCE cloud_connector_access_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ALTER SEQUENCE cloud_connector_access_id_seq OWNED BY cloud_connector_access.id;
+
CREATE TABLE cluster_agent_tokens (
id bigint NOT NULL,
created_at timestamp with time zone NOT NULL,
@@ -16534,6 +16885,7 @@ CREATE TABLE epics (
total_closed_issue_weight integer DEFAULT 0 NOT NULL,
total_opened_issue_count integer DEFAULT 0 NOT NULL,
total_closed_issue_count integer DEFAULT 0 NOT NULL,
+ issue_id integer,
CONSTRAINT check_ca608c40b3 CHECK ((char_length(color) <= 7)),
CONSTRAINT check_fcfb4a93ff CHECK ((lock_version IS NOT NULL))
);
@@ -16844,7 +17196,8 @@ CREATE TABLE geo_event_log (
hashed_storage_attachments_event_id bigint,
reset_checksum_event_id bigint,
cache_invalidation_event_id bigint,
- geo_event_id integer
+ geo_event_id integer,
+ geo_event_id_convert_to_bigint bigint
);
CREATE SEQUENCE geo_event_log_id_seq
@@ -17591,27 +17944,6 @@ CREATE SEQUENCE import_failures_id_seq
ALTER SEQUENCE import_failures_id_seq OWNED BY import_failures.id;
-CREATE TABLE in_product_marketing_emails (
- id bigint NOT NULL,
- user_id bigint NOT NULL,
- cta_clicked_at timestamp with time zone,
- track smallint,
- series smallint,
- created_at timestamp with time zone NOT NULL,
- updated_at timestamp with time zone NOT NULL,
- CONSTRAINT check_c9bb978e4b CHECK ((track IS NOT NULL)),
- CONSTRAINT check_ee6c42a107 CHECK ((series IS NOT NULL))
-);
-
-CREATE SEQUENCE in_product_marketing_emails_id_seq
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1;
-
-ALTER SEQUENCE in_product_marketing_emails_id_seq OWNED BY in_product_marketing_emails.id;
-
CREATE TABLE incident_management_escalation_policies (
id bigint NOT NULL,
project_id bigint NOT NULL,
@@ -18662,6 +18994,9 @@ CREATE TABLE member_roles (
admin_group_member boolean DEFAULT false NOT NULL,
manage_project_access_tokens boolean DEFAULT false NOT NULL,
archive_project boolean DEFAULT false NOT NULL,
+ manage_group_access_tokens boolean DEFAULT false NOT NULL,
+ remove_project boolean DEFAULT false NOT NULL,
+ admin_terraform_state boolean DEFAULT false NOT NULL,
CONSTRAINT check_4364846f58 CHECK ((char_length(description) <= 255)),
CONSTRAINT check_9907916995 CHECK ((char_length(name) <= 255))
);
@@ -18928,6 +19263,7 @@ CREATE TABLE merge_request_diffs (
diff_type smallint DEFAULT 1 NOT NULL,
patch_id_sha bytea,
project_id bigint,
+ CONSTRAINT check_11c5f029ad CHECK ((project_id IS NOT NULL)),
CONSTRAINT check_93ee616ac9 CHECK ((external_diff_store IS NOT NULL))
);
@@ -19394,6 +19730,27 @@ CREATE SEQUENCE ml_model_metadata_id_seq
ALTER SEQUENCE ml_model_metadata_id_seq OWNED BY ml_model_metadata.id;
+CREATE TABLE ml_model_version_metadata (
+ id bigint NOT NULL,
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ project_id bigint NOT NULL,
+ model_version_id bigint NOT NULL,
+ name text NOT NULL,
+ value text NOT NULL,
+ CONSTRAINT check_09a0e5cb5b CHECK ((char_length(name) <= 255)),
+ CONSTRAINT check_21c444e039 CHECK ((char_length(value) <= 5000))
+);
+
+CREATE SEQUENCE ml_model_version_metadata_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ALTER SEQUENCE ml_model_version_metadata_id_seq OWNED BY ml_model_version_metadata.id;
+
CREATE TABLE ml_model_versions (
id bigint NOT NULL,
created_at timestamp with time zone NOT NULL,
@@ -19545,9 +19902,12 @@ CREATE TABLE namespace_package_settings (
nuget_duplicates_allowed boolean DEFAULT true NOT NULL,
nuget_duplicate_exception_regex text DEFAULT ''::text NOT NULL,
nuget_symbol_server_enabled boolean DEFAULT false NOT NULL,
+ terraform_module_duplicates_allowed boolean DEFAULT false NOT NULL,
+ terraform_module_duplicate_exception_regex text DEFAULT ''::text NOT NULL,
CONSTRAINT check_31340211b1 CHECK ((char_length(generic_duplicate_exception_regex) <= 255)),
CONSTRAINT check_d63274b2b6 CHECK ((char_length(maven_duplicate_exception_regex) <= 255)),
- CONSTRAINT check_eedcf85c48 CHECK ((char_length(nuget_duplicate_exception_regex) <= 255))
+ CONSTRAINT check_eedcf85c48 CHECK ((char_length(nuget_duplicate_exception_regex) <= 255)),
+ CONSTRAINT check_f10503f1ad CHECK ((char_length(terraform_module_duplicate_exception_regex) <= 255))
);
CREATE TABLE namespace_root_storage_statistics (
@@ -19614,6 +19974,8 @@ CREATE TABLE namespace_settings (
enforce_ssh_certificates boolean DEFAULT false NOT NULL,
toggle_security_policy_custom_ci boolean,
lock_toggle_security_policy_custom_ci boolean DEFAULT false NOT NULL,
+ toggle_security_policies_policy_scope boolean,
+ lock_toggle_security_policies_policy_scope boolean DEFAULT false NOT NULL,
CONSTRAINT check_0ba93c78c7 CHECK ((char_length(default_branch_name) <= 255)),
CONSTRAINT namespace_settings_unique_project_download_limit_alertlist_size CHECK ((cardinality(unique_project_download_limit_alertlist) <= 100)),
CONSTRAINT namespace_settings_unique_project_download_limit_allowlist_size CHECK ((cardinality(unique_project_download_limit_allowlist) <= 100))
@@ -20088,7 +20450,8 @@ CREATE TABLE organization_users (
organization_id bigint NOT NULL,
user_id bigint NOT NULL,
created_at timestamp with time zone NOT NULL,
- updated_at timestamp with time zone NOT NULL
+ updated_at timestamp with time zone NOT NULL,
+ access_level smallint DEFAULT 10 NOT NULL
);
CREATE SEQUENCE organization_users_id_seq
@@ -22756,7 +23119,8 @@ CREATE TABLE releases (
author_id integer,
name character varying,
sha character varying,
- released_at timestamp with time zone NOT NULL
+ released_at timestamp with time zone NOT NULL,
+ release_published_at timestamp with time zone
);
CREATE SEQUENCE releases_id_seq
@@ -22851,19 +23215,9 @@ ALTER SEQUENCE required_code_owners_sections_id_seq OWNED BY required_code_owner
CREATE TABLE requirements (
id bigint NOT NULL,
- created_at timestamp with time zone,
- updated_at timestamp with time zone,
project_id integer NOT NULL,
- author_id integer,
iid integer NOT NULL,
- cached_markdown_version integer,
- state smallint DEFAULT 1,
- title character varying(255),
- title_html text,
- description text,
- description_html text,
issue_id bigint,
- CONSTRAINT check_785ae25b9d CHECK ((char_length(description) <= 10000)),
CONSTRAINT check_requirement_issue_not_null CHECK ((issue_id IS NOT NULL))
);
@@ -23006,7 +23360,8 @@ CREATE TABLE resource_weight_events (
user_id bigint,
issue_id bigint NOT NULL,
weight integer,
- created_at timestamp with time zone NOT NULL
+ created_at timestamp with time zone NOT NULL,
+ previous_weight integer
);
CREATE SEQUENCE resource_weight_events_id_seq
@@ -23178,6 +23533,7 @@ CREATE TABLE sbom_occurrences (
vulnerabilities jsonb DEFAULT '[]'::jsonb,
highest_severity smallint,
vulnerability_count integer DEFAULT 0 NOT NULL,
+ source_package_id bigint,
CONSTRAINT check_3f2d2c7ffc CHECK ((char_length(package_manager) <= 255)),
CONSTRAINT check_9b29021fa8 CHECK ((char_length(component_name) <= 255)),
CONSTRAINT check_bd1367d4c1 CHECK ((char_length(input_file_path) <= 255))
@@ -23209,6 +23565,22 @@ CREATE SEQUENCE sbom_occurrences_vulnerabilities_id_seq
ALTER SEQUENCE sbom_occurrences_vulnerabilities_id_seq OWNED BY sbom_occurrences_vulnerabilities.id;
+CREATE TABLE sbom_source_packages (
+ id bigint NOT NULL,
+ name text NOT NULL,
+ purl_type smallint NOT NULL,
+ CONSTRAINT check_8fba79abed CHECK ((char_length(name) <= 255))
+);
+
+CREATE SEQUENCE sbom_source_packages_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ALTER SEQUENCE sbom_source_packages_id_seq OWNED BY sbom_source_packages.id;
+
CREATE TABLE sbom_sources (
id bigint NOT NULL,
created_at timestamp with time zone NOT NULL,
@@ -24264,6 +24636,7 @@ CREATE TABLE timelogs (
project_id integer,
summary text,
note_id bigint,
+ timelog_category_id bigint,
CONSTRAINT check_271d321699 CHECK ((char_length(summary) <= 255))
);
@@ -24328,6 +24701,8 @@ CREATE TABLE topics (
total_projects_count bigint DEFAULT 0 NOT NULL,
non_private_projects_count bigint DEFAULT 0 NOT NULL,
title text,
+ slug text,
+ CONSTRAINT check_0eda72aeb0 CHECK ((char_length(slug) <= 255)),
CONSTRAINT check_223b50f9be CHECK ((char_length(title) <= 255)),
CONSTRAINT check_26753fb43a CHECK ((char_length(avatar) <= 255)),
CONSTRAINT check_5d1a07c8c8 CHECK ((char_length(description) <= 1024)),
@@ -24497,20 +24872,13 @@ ALTER SEQUENCE user_canonical_emails_id_seq OWNED BY user_canonical_emails.id;
CREATE TABLE user_credit_card_validations (
user_id bigint NOT NULL,
credit_card_validated_at timestamp with time zone NOT NULL,
- expiration_date date,
- last_digits smallint,
- holder_name text,
- network text,
last_digits_hash text,
holder_name_hash text,
expiration_date_hash text,
network_hash text,
- CONSTRAINT check_1765e2b30f CHECK ((char_length(network) <= 32)),
- CONSTRAINT check_3eea080c91 CHECK (((last_digits >= 0) AND (last_digits <= 9999))),
CONSTRAINT check_7721e1961a CHECK ((char_length(network_hash) <= 44)),
CONSTRAINT check_83f1e2ace3 CHECK ((char_length(expiration_date_hash) <= 44)),
CONSTRAINT check_aca7c2607c CHECK ((char_length(holder_name_hash) <= 44)),
- CONSTRAINT check_cc0c8dc0fe CHECK ((char_length(holder_name) <= 50)),
CONSTRAINT check_f5c35b1a6e CHECK ((char_length(last_digits_hash) <= 44))
);
@@ -24666,6 +25034,8 @@ CREATE TABLE user_phone_number_validations (
country text NOT NULL,
phone_number text NOT NULL,
telesign_reference_xid text,
+ sms_sent_at timestamp with time zone,
+ sms_send_count smallint DEFAULT 0 NOT NULL,
CONSTRAINT check_193736da9f CHECK ((char_length(country) <= 3)),
CONSTRAINT check_d2f31fc815 CHECK ((char_length(phone_number) <= 12)),
CONSTRAINT check_d7af4d3eb5 CHECK ((char_length(telesign_reference_xid) <= 255))
@@ -24890,23 +25260,14 @@ ALTER SEQUENCE vs_code_settings_id_seq OWNED BY vs_code_settings.id;
CREATE TABLE vulnerabilities (
id bigint NOT NULL,
- milestone_id bigint,
- epic_id bigint,
project_id bigint NOT NULL,
author_id bigint NOT NULL,
- updated_by_id bigint,
- last_edited_by_id bigint,
- start_date date,
- due_date date,
- last_edited_at timestamp with time zone,
created_at timestamp with time zone NOT NULL,
updated_at timestamp with time zone NOT NULL,
title character varying(255) NOT NULL,
title_html text,
description text,
description_html text,
- start_date_sourcing_milestone_id bigint,
- due_date_sourcing_milestone_id bigint,
state smallint DEFAULT 1 NOT NULL,
severity smallint NOT NULL,
severity_overridden boolean DEFAULT false,
@@ -25534,6 +25895,15 @@ CREATE SEQUENCE wiki_repository_states_id_seq
ALTER SEQUENCE wiki_repository_states_id_seq OWNED BY wiki_repository_states.id;
+CREATE TABLE work_item_colors (
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ issue_id bigint NOT NULL,
+ namespace_id bigint NOT NULL,
+ color text NOT NULL,
+ CONSTRAINT check_485e19ad7b CHECK ((char_length(color) <= 7))
+);
+
CREATE TABLE work_item_dates_sources (
created_at timestamp with time zone NOT NULL,
updated_at timestamp with time zone NOT NULL,
@@ -25702,12 +26072,12 @@ CREATE TABLE workspaces (
config_version integer DEFAULT 1 NOT NULL,
force_include_all_resources boolean DEFAULT true NOT NULL,
url_prefix text,
- url_domain text,
url_query_string text,
- CONSTRAINT check_03c5d442fd CHECK ((char_length(url_domain) <= 256)),
+ dns_zone text,
CONSTRAINT check_15543fb0fa CHECK ((char_length(name) <= 64)),
CONSTRAINT check_157d5f955c CHECK ((char_length(namespace) <= 64)),
CONSTRAINT check_2b401b0034 CHECK ((char_length(deployment_resource_version) <= 64)),
+ CONSTRAINT check_67c4c93554 CHECK ((char_length(dns_zone) <= 256)),
CONSTRAINT check_77d1a2ff50 CHECK ((char_length(processed_devfile) <= 65535)),
CONSTRAINT check_8a0ab61b6b CHECK ((char_length(url_query_string) <= 256)),
CONSTRAINT check_8e363ee3ad CHECK ((char_length(devfile_ref) <= 256)),
@@ -25832,6 +26202,23 @@ CREATE SEQUENCE zentao_tracker_data_id_seq
ALTER SEQUENCE zentao_tracker_data_id_seq OWNED BY zentao_tracker_data.id;
+CREATE TABLE zoekt_enabled_namespaces (
+ id bigint NOT NULL,
+ root_namespace_id bigint NOT NULL,
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ search boolean DEFAULT true NOT NULL
+);
+
+CREATE SEQUENCE zoekt_enabled_namespaces_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ALTER SEQUENCE zoekt_enabled_namespaces_id_seq OWNED BY zoekt_enabled_namespaces.id;
+
CREATE TABLE zoekt_indexed_namespaces (
id bigint NOT NULL,
zoekt_shard_id bigint,
@@ -25851,6 +26238,25 @@ CREATE SEQUENCE zoekt_indexed_namespaces_id_seq
ALTER SEQUENCE zoekt_indexed_namespaces_id_seq OWNED BY zoekt_indexed_namespaces.id;
+CREATE TABLE zoekt_indices (
+ id bigint NOT NULL,
+ zoekt_enabled_namespace_id bigint,
+ zoekt_node_id bigint NOT NULL,
+ namespace_id bigint NOT NULL,
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ state smallint DEFAULT 0 NOT NULL
+);
+
+CREATE SEQUENCE zoekt_indices_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ALTER SEQUENCE zoekt_indices_id_seq OWNED BY zoekt_indices.id;
+
CREATE TABLE zoekt_nodes (
id bigint NOT NULL,
uuid uuid NOT NULL,
@@ -26174,6 +26580,70 @@ ALTER TABLE ONLY issue_search_data ATTACH PARTITION gitlab_partitions_static.iss
ALTER TABLE ONLY issue_search_data ATTACH PARTITION gitlab_partitions_static.issue_search_data_63 FOR VALUES WITH (modulus 64, remainder 63);
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_00 FOR VALUES WITH (modulus 32, remainder 0);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_01 FOR VALUES WITH (modulus 32, remainder 1);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_02 FOR VALUES WITH (modulus 32, remainder 2);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_03 FOR VALUES WITH (modulus 32, remainder 3);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_04 FOR VALUES WITH (modulus 32, remainder 4);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_05 FOR VALUES WITH (modulus 32, remainder 5);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_06 FOR VALUES WITH (modulus 32, remainder 6);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_07 FOR VALUES WITH (modulus 32, remainder 7);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_08 FOR VALUES WITH (modulus 32, remainder 8);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_09 FOR VALUES WITH (modulus 32, remainder 9);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_10 FOR VALUES WITH (modulus 32, remainder 10);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_11 FOR VALUES WITH (modulus 32, remainder 11);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_12 FOR VALUES WITH (modulus 32, remainder 12);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_13 FOR VALUES WITH (modulus 32, remainder 13);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_14 FOR VALUES WITH (modulus 32, remainder 14);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_15 FOR VALUES WITH (modulus 32, remainder 15);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_16 FOR VALUES WITH (modulus 32, remainder 16);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_17 FOR VALUES WITH (modulus 32, remainder 17);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_18 FOR VALUES WITH (modulus 32, remainder 18);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_19 FOR VALUES WITH (modulus 32, remainder 19);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_20 FOR VALUES WITH (modulus 32, remainder 20);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_21 FOR VALUES WITH (modulus 32, remainder 21);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_22 FOR VALUES WITH (modulus 32, remainder 22);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_23 FOR VALUES WITH (modulus 32, remainder 23);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_24 FOR VALUES WITH (modulus 32, remainder 24);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_25 FOR VALUES WITH (modulus 32, remainder 25);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_26 FOR VALUES WITH (modulus 32, remainder 26);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_27 FOR VALUES WITH (modulus 32, remainder 27);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_28 FOR VALUES WITH (modulus 32, remainder 28);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_29 FOR VALUES WITH (modulus 32, remainder 29);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_30 FOR VALUES WITH (modulus 32, remainder 30);
+
+ALTER TABLE ONLY namespace_descendants ATTACH PARTITION gitlab_partitions_static.namespace_descendants_31 FOR VALUES WITH (modulus 32, remainder 31);
+
ALTER TABLE ONLY product_analytics_events_experimental ATTACH PARTITION gitlab_partitions_static.product_analytics_events_experimental_00 FOR VALUES WITH (modulus 64, remainder 0);
ALTER TABLE ONLY product_analytics_events_experimental ATTACH PARTITION gitlab_partitions_static.product_analytics_events_experimental_01 FOR VALUES WITH (modulus 64, remainder 1);
@@ -26332,6 +26802,10 @@ ALTER TABLE ONLY agent_user_access_group_authorizations ALTER COLUMN id SET DEFA
ALTER TABLE ONLY agent_user_access_project_authorizations ALTER COLUMN id SET DEFAULT nextval('agent_user_access_project_authorizations_id_seq'::regclass);
+ALTER TABLE ONLY ai_agent_versions ALTER COLUMN id SET DEFAULT nextval('ai_agent_versions_id_seq'::regclass);
+
+ALTER TABLE ONLY ai_agents ALTER COLUMN id SET DEFAULT nextval('ai_agents_id_seq'::regclass);
+
ALTER TABLE ONLY alert_management_alert_assignees ALTER COLUMN id SET DEFAULT nextval('alert_management_alert_assignees_id_seq'::regclass);
ALTER TABLE ONLY alert_management_alert_metric_images ALTER COLUMN id SET DEFAULT nextval('alert_management_alert_metric_images_id_seq'::regclass);
@@ -26504,8 +26978,6 @@ ALTER TABLE ONLY ci_daily_build_group_report_results ALTER COLUMN id SET DEFAULT
ALTER TABLE ONLY ci_deleted_objects ALTER COLUMN id SET DEFAULT nextval('ci_deleted_objects_id_seq'::regclass);
-ALTER TABLE ONLY ci_editor_ai_conversation_messages ALTER COLUMN id SET DEFAULT nextval('ci_editor_ai_conversation_messages_id_seq'::regclass);
-
ALTER TABLE ONLY ci_freeze_periods ALTER COLUMN id SET DEFAULT nextval('ci_freeze_periods_id_seq'::regclass);
ALTER TABLE ONLY ci_group_variables ALTER COLUMN id SET DEFAULT nextval('ci_group_variables_id_seq'::regclass);
@@ -26586,6 +27058,8 @@ ALTER TABLE ONLY ci_unit_tests ALTER COLUMN id SET DEFAULT nextval('ci_unit_test
ALTER TABLE ONLY ci_variables ALTER COLUMN id SET DEFAULT nextval('ci_variables_id_seq'::regclass);
+ALTER TABLE ONLY cloud_connector_access ALTER COLUMN id SET DEFAULT nextval('cloud_connector_access_id_seq'::regclass);
+
ALTER TABLE ONLY cluster_agent_tokens ALTER COLUMN id SET DEFAULT nextval('cluster_agent_tokens_id_seq'::regclass);
ALTER TABLE ONLY cluster_agents ALTER COLUMN id SET DEFAULT nextval('cluster_agents_id_seq'::regclass);
@@ -26816,8 +27290,6 @@ ALTER TABLE ONLY import_export_uploads ALTER COLUMN id SET DEFAULT nextval('impo
ALTER TABLE ONLY import_failures ALTER COLUMN id SET DEFAULT nextval('import_failures_id_seq'::regclass);
-ALTER TABLE ONLY in_product_marketing_emails ALTER COLUMN id SET DEFAULT nextval('in_product_marketing_emails_id_seq'::regclass);
-
ALTER TABLE ONLY incident_management_escalation_policies ALTER COLUMN id SET DEFAULT nextval('incident_management_escalation_policies_id_seq'::regclass);
ALTER TABLE ONLY incident_management_escalation_rules ALTER COLUMN id SET DEFAULT nextval('incident_management_escalation_rules_id_seq'::regclass);
@@ -26976,6 +27448,8 @@ ALTER TABLE ONLY ml_experiments ALTER COLUMN id SET DEFAULT nextval('ml_experime
ALTER TABLE ONLY ml_model_metadata ALTER COLUMN id SET DEFAULT nextval('ml_model_metadata_id_seq'::regclass);
+ALTER TABLE ONLY ml_model_version_metadata ALTER COLUMN id SET DEFAULT nextval('ml_model_version_metadata_id_seq'::regclass);
+
ALTER TABLE ONLY ml_model_versions ALTER COLUMN id SET DEFAULT nextval('ml_model_versions_id_seq'::regclass);
ALTER TABLE ONLY ml_models ALTER COLUMN id SET DEFAULT nextval('ml_models_id_seq'::regclass);
@@ -27272,6 +27746,8 @@ ALTER TABLE ONLY sbom_occurrences ALTER COLUMN id SET DEFAULT nextval('sbom_occu
ALTER TABLE ONLY sbom_occurrences_vulnerabilities ALTER COLUMN id SET DEFAULT nextval('sbom_occurrences_vulnerabilities_id_seq'::regclass);
+ALTER TABLE ONLY sbom_source_packages ALTER COLUMN id SET DEFAULT nextval('sbom_source_packages_id_seq'::regclass);
+
ALTER TABLE ONLY sbom_sources ALTER COLUMN id SET DEFAULT nextval('sbom_sources_id_seq'::regclass);
ALTER TABLE ONLY scan_result_policies ALTER COLUMN id SET DEFAULT nextval('scan_result_policies_id_seq'::regclass);
@@ -27502,8 +27978,12 @@ ALTER TABLE ONLY xray_reports ALTER COLUMN id SET DEFAULT nextval('xray_reports_
ALTER TABLE ONLY zentao_tracker_data ALTER COLUMN id SET DEFAULT nextval('zentao_tracker_data_id_seq'::regclass);
+ALTER TABLE ONLY zoekt_enabled_namespaces ALTER COLUMN id SET DEFAULT nextval('zoekt_enabled_namespaces_id_seq'::regclass);
+
ALTER TABLE ONLY zoekt_indexed_namespaces ALTER COLUMN id SET DEFAULT nextval('zoekt_indexed_namespaces_id_seq'::regclass);
+ALTER TABLE ONLY zoekt_indices ALTER COLUMN id SET DEFAULT nextval('zoekt_indices_id_seq'::regclass);
+
ALTER TABLE ONLY zoekt_nodes ALTER COLUMN id SET DEFAULT nextval('zoekt_nodes_id_seq'::regclass);
ALTER TABLE ONLY zoekt_shards ALTER COLUMN id SET DEFAULT nextval('zoekt_shards_id_seq'::regclass);
@@ -27903,6 +28383,105 @@ ALTER TABLE ONLY gitlab_partitions_static.issue_search_data_62
ALTER TABLE ONLY gitlab_partitions_static.issue_search_data_63
ADD CONSTRAINT issue_search_data_63_pkey PRIMARY KEY (project_id, issue_id);
+ALTER TABLE ONLY namespace_descendants
+ ADD CONSTRAINT namespace_descendants_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_00
+ ADD CONSTRAINT namespace_descendants_00_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_01
+ ADD CONSTRAINT namespace_descendants_01_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_02
+ ADD CONSTRAINT namespace_descendants_02_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_03
+ ADD CONSTRAINT namespace_descendants_03_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_04
+ ADD CONSTRAINT namespace_descendants_04_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_05
+ ADD CONSTRAINT namespace_descendants_05_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_06
+ ADD CONSTRAINT namespace_descendants_06_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_07
+ ADD CONSTRAINT namespace_descendants_07_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_08
+ ADD CONSTRAINT namespace_descendants_08_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_09
+ ADD CONSTRAINT namespace_descendants_09_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_10
+ ADD CONSTRAINT namespace_descendants_10_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_11
+ ADD CONSTRAINT namespace_descendants_11_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_12
+ ADD CONSTRAINT namespace_descendants_12_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_13
+ ADD CONSTRAINT namespace_descendants_13_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_14
+ ADD CONSTRAINT namespace_descendants_14_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_15
+ ADD CONSTRAINT namespace_descendants_15_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_16
+ ADD CONSTRAINT namespace_descendants_16_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_17
+ ADD CONSTRAINT namespace_descendants_17_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_18
+ ADD CONSTRAINT namespace_descendants_18_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_19
+ ADD CONSTRAINT namespace_descendants_19_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_20
+ ADD CONSTRAINT namespace_descendants_20_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_21
+ ADD CONSTRAINT namespace_descendants_21_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_22
+ ADD CONSTRAINT namespace_descendants_22_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_23
+ ADD CONSTRAINT namespace_descendants_23_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_24
+ ADD CONSTRAINT namespace_descendants_24_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_25
+ ADD CONSTRAINT namespace_descendants_25_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_26
+ ADD CONSTRAINT namespace_descendants_26_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_27
+ ADD CONSTRAINT namespace_descendants_27_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_28
+ ADD CONSTRAINT namespace_descendants_28_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_29
+ ADD CONSTRAINT namespace_descendants_29_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_30
+ ADD CONSTRAINT namespace_descendants_30_pkey PRIMARY KEY (namespace_id);
+
+ALTER TABLE ONLY gitlab_partitions_static.namespace_descendants_31
+ ADD CONSTRAINT namespace_descendants_31_pkey PRIMARY KEY (namespace_id);
+
ALTER TABLE ONLY product_analytics_events_experimental
ADD CONSTRAINT product_analytics_events_experimental_pkey PRIMARY KEY (id, project_id);
@@ -28137,6 +28716,12 @@ ALTER TABLE ONLY agent_user_access_group_authorizations
ALTER TABLE ONLY agent_user_access_project_authorizations
ADD CONSTRAINT agent_user_access_project_authorizations_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY ai_agent_versions
+ ADD CONSTRAINT ai_agent_versions_pkey PRIMARY KEY (id);
+
+ALTER TABLE ONLY ai_agents
+ ADD CONSTRAINT ai_agents_pkey PRIMARY KEY (id);
+
ALTER TABLE ONLY alert_management_alert_assignees
ADD CONSTRAINT alert_management_alert_assignees_pkey PRIMARY KEY (id);
@@ -28398,9 +28983,6 @@ ALTER TABLE ONLY chat_names
ALTER TABLE ONLY chat_teams
ADD CONSTRAINT chat_teams_pkey PRIMARY KEY (id);
-ALTER TABLE merge_request_diffs
- ADD CONSTRAINT check_11c5f029ad CHECK ((project_id IS NOT NULL)) NOT VALID;
-
ALTER TABLE workspaces
ADD CONSTRAINT check_2a89035b04 CHECK ((personal_access_token_id IS NOT NULL)) NOT VALID;
@@ -28464,9 +29046,6 @@ ALTER TABLE ONLY ci_daily_build_group_report_results
ALTER TABLE ONLY ci_deleted_objects
ADD CONSTRAINT ci_deleted_objects_pkey PRIMARY KEY (id);
-ALTER TABLE ONLY ci_editor_ai_conversation_messages
- ADD CONSTRAINT ci_editor_ai_conversation_messages_pkey PRIMARY KEY (id);
-
ALTER TABLE ONLY ci_freeze_periods
ADD CONSTRAINT ci_freeze_periods_pkey PRIMARY KEY (id);
@@ -28599,6 +29178,9 @@ ALTER TABLE ONLY ci_unit_tests
ALTER TABLE ONLY ci_variables
ADD CONSTRAINT ci_variables_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY cloud_connector_access
+ ADD CONSTRAINT cloud_connector_access_pkey PRIMARY KEY (id);
+
ALTER TABLE ONLY cluster_agent_tokens
ADD CONSTRAINT cluster_agent_tokens_pkey PRIMARY KEY (id);
@@ -29016,9 +29598,6 @@ ALTER TABLE ONLY import_export_uploads
ALTER TABLE ONLY import_failures
ADD CONSTRAINT import_failures_pkey PRIMARY KEY (id);
-ALTER TABLE ONLY in_product_marketing_emails
- ADD CONSTRAINT in_product_marketing_emails_pkey PRIMARY KEY (id);
-
ALTER TABLE ONLY incident_management_oncall_shifts
ADD CONSTRAINT inc_mgmnt_no_overlapping_oncall_shifts EXCLUDE USING gist (rotation_id WITH =, tstzrange(starts_at, ends_at, '[)'::text) WITH &&);
@@ -29283,6 +29862,9 @@ ALTER TABLE ONLY ml_experiments
ALTER TABLE ONLY ml_model_metadata
ADD CONSTRAINT ml_model_metadata_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY ml_model_version_metadata
+ ADD CONSTRAINT ml_model_version_metadata_pkey PRIMARY KEY (id);
+
ALTER TABLE ONLY ml_model_versions
ADD CONSTRAINT ml_model_versions_pkey PRIMARY KEY (id);
@@ -29532,6 +30114,9 @@ ALTER TABLE ONLY pages_domain_acme_orders
ALTER TABLE ONLY pages_domains
ADD CONSTRAINT pages_domains_pkey PRIMARY KEY (id);
+ALTER TABLE ci_pipeline_variables
+ ADD CONSTRAINT partitioning_constraint CHECK ((partition_id = ANY (ARRAY[(100)::bigint, (101)::bigint]))) NOT VALID;
+
ALTER TABLE ONLY path_locks
ADD CONSTRAINT path_locks_pkey PRIMARY KEY (id);
@@ -29820,6 +30405,9 @@ ALTER TABLE ONLY sbom_occurrences
ALTER TABLE ONLY sbom_occurrences_vulnerabilities
ADD CONSTRAINT sbom_occurrences_vulnerabilities_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY sbom_source_packages
+ ADD CONSTRAINT sbom_source_packages_pkey PRIMARY KEY (id);
+
ALTER TABLE ONLY sbom_sources
ADD CONSTRAINT sbom_sources_pkey PRIMARY KEY (id);
@@ -30174,6 +30762,9 @@ ALTER TABLE ONLY wiki_page_slugs
ALTER TABLE ONLY wiki_repository_states
ADD CONSTRAINT wiki_repository_states_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY work_item_colors
+ ADD CONSTRAINT work_item_colors_pkey PRIMARY KEY (issue_id);
+
ALTER TABLE ONLY work_item_dates_sources
ADD CONSTRAINT work_item_dates_sources_pkey PRIMARY KEY (issue_id);
@@ -30216,9 +30807,15 @@ ALTER TABLE ONLY xray_reports
ALTER TABLE ONLY zentao_tracker_data
ADD CONSTRAINT zentao_tracker_data_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY zoekt_enabled_namespaces
+ ADD CONSTRAINT zoekt_enabled_namespaces_pkey PRIMARY KEY (id);
+
ALTER TABLE ONLY zoekt_indexed_namespaces
ADD CONSTRAINT zoekt_indexed_namespaces_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY zoekt_indices
+ ADD CONSTRAINT zoekt_indices_pkey PRIMARY KEY (id);
+
ALTER TABLE ONLY zoekt_nodes
ADD CONSTRAINT zoekt_nodes_pkey PRIMARY KEY (id);
@@ -31024,259 +31621,325 @@ CREATE INDEX issue_search_data_00_issue_id_idx ON gitlab_partitions_static.issue
CREATE INDEX index_issue_search_data_on_search_vector ON ONLY issue_search_data USING gin (search_vector);
-CREATE INDEX issue_search_data_00_search_vector_idx ON gitlab_partitions_static.issue_search_data_00 USING gin (search_vector);
+CREATE INDEX issue_search_data_00_search_vector_idx ON gitlab_partitions_static.issue_search_data_00 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_01_issue_id_idx ON gitlab_partitions_static.issue_search_data_01 USING btree (issue_id);
-CREATE INDEX issue_search_data_01_search_vector_idx ON gitlab_partitions_static.issue_search_data_01 USING gin (search_vector);
+CREATE INDEX issue_search_data_01_search_vector_idx ON gitlab_partitions_static.issue_search_data_01 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_02_issue_id_idx ON gitlab_partitions_static.issue_search_data_02 USING btree (issue_id);
-CREATE INDEX issue_search_data_02_search_vector_idx ON gitlab_partitions_static.issue_search_data_02 USING gin (search_vector);
+CREATE INDEX issue_search_data_02_search_vector_idx ON gitlab_partitions_static.issue_search_data_02 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_03_issue_id_idx ON gitlab_partitions_static.issue_search_data_03 USING btree (issue_id);
-CREATE INDEX issue_search_data_03_search_vector_idx ON gitlab_partitions_static.issue_search_data_03 USING gin (search_vector);
+CREATE INDEX issue_search_data_03_search_vector_idx ON gitlab_partitions_static.issue_search_data_03 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_04_issue_id_idx ON gitlab_partitions_static.issue_search_data_04 USING btree (issue_id);
-CREATE INDEX issue_search_data_04_search_vector_idx ON gitlab_partitions_static.issue_search_data_04 USING gin (search_vector);
+CREATE INDEX issue_search_data_04_search_vector_idx ON gitlab_partitions_static.issue_search_data_04 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_05_issue_id_idx ON gitlab_partitions_static.issue_search_data_05 USING btree (issue_id);
-CREATE INDEX issue_search_data_05_search_vector_idx ON gitlab_partitions_static.issue_search_data_05 USING gin (search_vector);
+CREATE INDEX issue_search_data_05_search_vector_idx ON gitlab_partitions_static.issue_search_data_05 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_06_issue_id_idx ON gitlab_partitions_static.issue_search_data_06 USING btree (issue_id);
-CREATE INDEX issue_search_data_06_search_vector_idx ON gitlab_partitions_static.issue_search_data_06 USING gin (search_vector);
+CREATE INDEX issue_search_data_06_search_vector_idx ON gitlab_partitions_static.issue_search_data_06 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_07_issue_id_idx ON gitlab_partitions_static.issue_search_data_07 USING btree (issue_id);
-CREATE INDEX issue_search_data_07_search_vector_idx ON gitlab_partitions_static.issue_search_data_07 USING gin (search_vector);
+CREATE INDEX issue_search_data_07_search_vector_idx ON gitlab_partitions_static.issue_search_data_07 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_08_issue_id_idx ON gitlab_partitions_static.issue_search_data_08 USING btree (issue_id);
-CREATE INDEX issue_search_data_08_search_vector_idx ON gitlab_partitions_static.issue_search_data_08 USING gin (search_vector);
+CREATE INDEX issue_search_data_08_search_vector_idx ON gitlab_partitions_static.issue_search_data_08 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_09_issue_id_idx ON gitlab_partitions_static.issue_search_data_09 USING btree (issue_id);
-CREATE INDEX issue_search_data_09_search_vector_idx ON gitlab_partitions_static.issue_search_data_09 USING gin (search_vector);
+CREATE INDEX issue_search_data_09_search_vector_idx ON gitlab_partitions_static.issue_search_data_09 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_10_issue_id_idx ON gitlab_partitions_static.issue_search_data_10 USING btree (issue_id);
-CREATE INDEX issue_search_data_10_search_vector_idx ON gitlab_partitions_static.issue_search_data_10 USING gin (search_vector);
+CREATE INDEX issue_search_data_10_search_vector_idx ON gitlab_partitions_static.issue_search_data_10 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_11_issue_id_idx ON gitlab_partitions_static.issue_search_data_11 USING btree (issue_id);
-CREATE INDEX issue_search_data_11_search_vector_idx ON gitlab_partitions_static.issue_search_data_11 USING gin (search_vector);
+CREATE INDEX issue_search_data_11_search_vector_idx ON gitlab_partitions_static.issue_search_data_11 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_12_issue_id_idx ON gitlab_partitions_static.issue_search_data_12 USING btree (issue_id);
-CREATE INDEX issue_search_data_12_search_vector_idx ON gitlab_partitions_static.issue_search_data_12 USING gin (search_vector);
+CREATE INDEX issue_search_data_12_search_vector_idx ON gitlab_partitions_static.issue_search_data_12 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_13_issue_id_idx ON gitlab_partitions_static.issue_search_data_13 USING btree (issue_id);
-CREATE INDEX issue_search_data_13_search_vector_idx ON gitlab_partitions_static.issue_search_data_13 USING gin (search_vector);
+CREATE INDEX issue_search_data_13_search_vector_idx ON gitlab_partitions_static.issue_search_data_13 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_14_issue_id_idx ON gitlab_partitions_static.issue_search_data_14 USING btree (issue_id);
-CREATE INDEX issue_search_data_14_search_vector_idx ON gitlab_partitions_static.issue_search_data_14 USING gin (search_vector);
+CREATE INDEX issue_search_data_14_search_vector_idx ON gitlab_partitions_static.issue_search_data_14 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_15_issue_id_idx ON gitlab_partitions_static.issue_search_data_15 USING btree (issue_id);
-CREATE INDEX issue_search_data_15_search_vector_idx ON gitlab_partitions_static.issue_search_data_15 USING gin (search_vector);
+CREATE INDEX issue_search_data_15_search_vector_idx ON gitlab_partitions_static.issue_search_data_15 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_16_issue_id_idx ON gitlab_partitions_static.issue_search_data_16 USING btree (issue_id);
-CREATE INDEX issue_search_data_16_search_vector_idx ON gitlab_partitions_static.issue_search_data_16 USING gin (search_vector);
+CREATE INDEX issue_search_data_16_search_vector_idx ON gitlab_partitions_static.issue_search_data_16 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_17_issue_id_idx ON gitlab_partitions_static.issue_search_data_17 USING btree (issue_id);
-CREATE INDEX issue_search_data_17_search_vector_idx ON gitlab_partitions_static.issue_search_data_17 USING gin (search_vector);
+CREATE INDEX issue_search_data_17_search_vector_idx ON gitlab_partitions_static.issue_search_data_17 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_18_issue_id_idx ON gitlab_partitions_static.issue_search_data_18 USING btree (issue_id);
-CREATE INDEX issue_search_data_18_search_vector_idx ON gitlab_partitions_static.issue_search_data_18 USING gin (search_vector);
+CREATE INDEX issue_search_data_18_search_vector_idx ON gitlab_partitions_static.issue_search_data_18 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_19_issue_id_idx ON gitlab_partitions_static.issue_search_data_19 USING btree (issue_id);
-CREATE INDEX issue_search_data_19_search_vector_idx ON gitlab_partitions_static.issue_search_data_19 USING gin (search_vector);
+CREATE INDEX issue_search_data_19_search_vector_idx ON gitlab_partitions_static.issue_search_data_19 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_20_issue_id_idx ON gitlab_partitions_static.issue_search_data_20 USING btree (issue_id);
-CREATE INDEX issue_search_data_20_search_vector_idx ON gitlab_partitions_static.issue_search_data_20 USING gin (search_vector);
+CREATE INDEX issue_search_data_20_search_vector_idx ON gitlab_partitions_static.issue_search_data_20 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_21_issue_id_idx ON gitlab_partitions_static.issue_search_data_21 USING btree (issue_id);
-CREATE INDEX issue_search_data_21_search_vector_idx ON gitlab_partitions_static.issue_search_data_21 USING gin (search_vector);
+CREATE INDEX issue_search_data_21_search_vector_idx ON gitlab_partitions_static.issue_search_data_21 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_22_issue_id_idx ON gitlab_partitions_static.issue_search_data_22 USING btree (issue_id);
-CREATE INDEX issue_search_data_22_search_vector_idx ON gitlab_partitions_static.issue_search_data_22 USING gin (search_vector);
+CREATE INDEX issue_search_data_22_search_vector_idx ON gitlab_partitions_static.issue_search_data_22 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_23_issue_id_idx ON gitlab_partitions_static.issue_search_data_23 USING btree (issue_id);
-CREATE INDEX issue_search_data_23_search_vector_idx ON gitlab_partitions_static.issue_search_data_23 USING gin (search_vector);
+CREATE INDEX issue_search_data_23_search_vector_idx ON gitlab_partitions_static.issue_search_data_23 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_24_issue_id_idx ON gitlab_partitions_static.issue_search_data_24 USING btree (issue_id);
-CREATE INDEX issue_search_data_24_search_vector_idx ON gitlab_partitions_static.issue_search_data_24 USING gin (search_vector);
+CREATE INDEX issue_search_data_24_search_vector_idx ON gitlab_partitions_static.issue_search_data_24 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_25_issue_id_idx ON gitlab_partitions_static.issue_search_data_25 USING btree (issue_id);
-CREATE INDEX issue_search_data_25_search_vector_idx ON gitlab_partitions_static.issue_search_data_25 USING gin (search_vector);
+CREATE INDEX issue_search_data_25_search_vector_idx ON gitlab_partitions_static.issue_search_data_25 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_26_issue_id_idx ON gitlab_partitions_static.issue_search_data_26 USING btree (issue_id);
-CREATE INDEX issue_search_data_26_search_vector_idx ON gitlab_partitions_static.issue_search_data_26 USING gin (search_vector);
+CREATE INDEX issue_search_data_26_search_vector_idx ON gitlab_partitions_static.issue_search_data_26 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_27_issue_id_idx ON gitlab_partitions_static.issue_search_data_27 USING btree (issue_id);
-CREATE INDEX issue_search_data_27_search_vector_idx ON gitlab_partitions_static.issue_search_data_27 USING gin (search_vector);
+CREATE INDEX issue_search_data_27_search_vector_idx ON gitlab_partitions_static.issue_search_data_27 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_28_issue_id_idx ON gitlab_partitions_static.issue_search_data_28 USING btree (issue_id);
-CREATE INDEX issue_search_data_28_search_vector_idx ON gitlab_partitions_static.issue_search_data_28 USING gin (search_vector);
+CREATE INDEX issue_search_data_28_search_vector_idx ON gitlab_partitions_static.issue_search_data_28 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_29_issue_id_idx ON gitlab_partitions_static.issue_search_data_29 USING btree (issue_id);
-CREATE INDEX issue_search_data_29_search_vector_idx ON gitlab_partitions_static.issue_search_data_29 USING gin (search_vector);
+CREATE INDEX issue_search_data_29_search_vector_idx ON gitlab_partitions_static.issue_search_data_29 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_30_issue_id_idx ON gitlab_partitions_static.issue_search_data_30 USING btree (issue_id);
-CREATE INDEX issue_search_data_30_search_vector_idx ON gitlab_partitions_static.issue_search_data_30 USING gin (search_vector);
+CREATE INDEX issue_search_data_30_search_vector_idx ON gitlab_partitions_static.issue_search_data_30 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_31_issue_id_idx ON gitlab_partitions_static.issue_search_data_31 USING btree (issue_id);
-CREATE INDEX issue_search_data_31_search_vector_idx ON gitlab_partitions_static.issue_search_data_31 USING gin (search_vector);
+CREATE INDEX issue_search_data_31_search_vector_idx ON gitlab_partitions_static.issue_search_data_31 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_32_issue_id_idx ON gitlab_partitions_static.issue_search_data_32 USING btree (issue_id);
-CREATE INDEX issue_search_data_32_search_vector_idx ON gitlab_partitions_static.issue_search_data_32 USING gin (search_vector);
+CREATE INDEX issue_search_data_32_search_vector_idx ON gitlab_partitions_static.issue_search_data_32 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_33_issue_id_idx ON gitlab_partitions_static.issue_search_data_33 USING btree (issue_id);
-CREATE INDEX issue_search_data_33_search_vector_idx ON gitlab_partitions_static.issue_search_data_33 USING gin (search_vector);
+CREATE INDEX issue_search_data_33_search_vector_idx ON gitlab_partitions_static.issue_search_data_33 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_34_issue_id_idx ON gitlab_partitions_static.issue_search_data_34 USING btree (issue_id);
-CREATE INDEX issue_search_data_34_search_vector_idx ON gitlab_partitions_static.issue_search_data_34 USING gin (search_vector);
+CREATE INDEX issue_search_data_34_search_vector_idx ON gitlab_partitions_static.issue_search_data_34 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_35_issue_id_idx ON gitlab_partitions_static.issue_search_data_35 USING btree (issue_id);
-CREATE INDEX issue_search_data_35_search_vector_idx ON gitlab_partitions_static.issue_search_data_35 USING gin (search_vector);
+CREATE INDEX issue_search_data_35_search_vector_idx ON gitlab_partitions_static.issue_search_data_35 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_36_issue_id_idx ON gitlab_partitions_static.issue_search_data_36 USING btree (issue_id);
-CREATE INDEX issue_search_data_36_search_vector_idx ON gitlab_partitions_static.issue_search_data_36 USING gin (search_vector);
+CREATE INDEX issue_search_data_36_search_vector_idx ON gitlab_partitions_static.issue_search_data_36 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_37_issue_id_idx ON gitlab_partitions_static.issue_search_data_37 USING btree (issue_id);
-CREATE INDEX issue_search_data_37_search_vector_idx ON gitlab_partitions_static.issue_search_data_37 USING gin (search_vector);
+CREATE INDEX issue_search_data_37_search_vector_idx ON gitlab_partitions_static.issue_search_data_37 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_38_issue_id_idx ON gitlab_partitions_static.issue_search_data_38 USING btree (issue_id);
-CREATE INDEX issue_search_data_38_search_vector_idx ON gitlab_partitions_static.issue_search_data_38 USING gin (search_vector);
+CREATE INDEX issue_search_data_38_search_vector_idx ON gitlab_partitions_static.issue_search_data_38 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_39_issue_id_idx ON gitlab_partitions_static.issue_search_data_39 USING btree (issue_id);
-CREATE INDEX issue_search_data_39_search_vector_idx ON gitlab_partitions_static.issue_search_data_39 USING gin (search_vector);
+CREATE INDEX issue_search_data_39_search_vector_idx ON gitlab_partitions_static.issue_search_data_39 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_40_issue_id_idx ON gitlab_partitions_static.issue_search_data_40 USING btree (issue_id);
-CREATE INDEX issue_search_data_40_search_vector_idx ON gitlab_partitions_static.issue_search_data_40 USING gin (search_vector);
+CREATE INDEX issue_search_data_40_search_vector_idx ON gitlab_partitions_static.issue_search_data_40 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_41_issue_id_idx ON gitlab_partitions_static.issue_search_data_41 USING btree (issue_id);
-CREATE INDEX issue_search_data_41_search_vector_idx ON gitlab_partitions_static.issue_search_data_41 USING gin (search_vector);
+CREATE INDEX issue_search_data_41_search_vector_idx ON gitlab_partitions_static.issue_search_data_41 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_42_issue_id_idx ON gitlab_partitions_static.issue_search_data_42 USING btree (issue_id);
-CREATE INDEX issue_search_data_42_search_vector_idx ON gitlab_partitions_static.issue_search_data_42 USING gin (search_vector);
+CREATE INDEX issue_search_data_42_search_vector_idx ON gitlab_partitions_static.issue_search_data_42 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_43_issue_id_idx ON gitlab_partitions_static.issue_search_data_43 USING btree (issue_id);
-CREATE INDEX issue_search_data_43_search_vector_idx ON gitlab_partitions_static.issue_search_data_43 USING gin (search_vector);
+CREATE INDEX issue_search_data_43_search_vector_idx ON gitlab_partitions_static.issue_search_data_43 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_44_issue_id_idx ON gitlab_partitions_static.issue_search_data_44 USING btree (issue_id);
-CREATE INDEX issue_search_data_44_search_vector_idx ON gitlab_partitions_static.issue_search_data_44 USING gin (search_vector);
+CREATE INDEX issue_search_data_44_search_vector_idx ON gitlab_partitions_static.issue_search_data_44 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_45_issue_id_idx ON gitlab_partitions_static.issue_search_data_45 USING btree (issue_id);
-CREATE INDEX issue_search_data_45_search_vector_idx ON gitlab_partitions_static.issue_search_data_45 USING gin (search_vector);
+CREATE INDEX issue_search_data_45_search_vector_idx ON gitlab_partitions_static.issue_search_data_45 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_46_issue_id_idx ON gitlab_partitions_static.issue_search_data_46 USING btree (issue_id);
-CREATE INDEX issue_search_data_46_search_vector_idx ON gitlab_partitions_static.issue_search_data_46 USING gin (search_vector);
+CREATE INDEX issue_search_data_46_search_vector_idx ON gitlab_partitions_static.issue_search_data_46 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_47_issue_id_idx ON gitlab_partitions_static.issue_search_data_47 USING btree (issue_id);
-CREATE INDEX issue_search_data_47_search_vector_idx ON gitlab_partitions_static.issue_search_data_47 USING gin (search_vector);
+CREATE INDEX issue_search_data_47_search_vector_idx ON gitlab_partitions_static.issue_search_data_47 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_48_issue_id_idx ON gitlab_partitions_static.issue_search_data_48 USING btree (issue_id);
-CREATE INDEX issue_search_data_48_search_vector_idx ON gitlab_partitions_static.issue_search_data_48 USING gin (search_vector);
+CREATE INDEX issue_search_data_48_search_vector_idx ON gitlab_partitions_static.issue_search_data_48 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_49_issue_id_idx ON gitlab_partitions_static.issue_search_data_49 USING btree (issue_id);
-CREATE INDEX issue_search_data_49_search_vector_idx ON gitlab_partitions_static.issue_search_data_49 USING gin (search_vector);
+CREATE INDEX issue_search_data_49_search_vector_idx ON gitlab_partitions_static.issue_search_data_49 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_50_issue_id_idx ON gitlab_partitions_static.issue_search_data_50 USING btree (issue_id);
-CREATE INDEX issue_search_data_50_search_vector_idx ON gitlab_partitions_static.issue_search_data_50 USING gin (search_vector);
+CREATE INDEX issue_search_data_50_search_vector_idx ON gitlab_partitions_static.issue_search_data_50 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_51_issue_id_idx ON gitlab_partitions_static.issue_search_data_51 USING btree (issue_id);
-CREATE INDEX issue_search_data_51_search_vector_idx ON gitlab_partitions_static.issue_search_data_51 USING gin (search_vector);
+CREATE INDEX issue_search_data_51_search_vector_idx ON gitlab_partitions_static.issue_search_data_51 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_52_issue_id_idx ON gitlab_partitions_static.issue_search_data_52 USING btree (issue_id);
-CREATE INDEX issue_search_data_52_search_vector_idx ON gitlab_partitions_static.issue_search_data_52 USING gin (search_vector);
+CREATE INDEX issue_search_data_52_search_vector_idx ON gitlab_partitions_static.issue_search_data_52 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_53_issue_id_idx ON gitlab_partitions_static.issue_search_data_53 USING btree (issue_id);
-CREATE INDEX issue_search_data_53_search_vector_idx ON gitlab_partitions_static.issue_search_data_53 USING gin (search_vector);
+CREATE INDEX issue_search_data_53_search_vector_idx ON gitlab_partitions_static.issue_search_data_53 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_54_issue_id_idx ON gitlab_partitions_static.issue_search_data_54 USING btree (issue_id);
-CREATE INDEX issue_search_data_54_search_vector_idx ON gitlab_partitions_static.issue_search_data_54 USING gin (search_vector);
+CREATE INDEX issue_search_data_54_search_vector_idx ON gitlab_partitions_static.issue_search_data_54 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_55_issue_id_idx ON gitlab_partitions_static.issue_search_data_55 USING btree (issue_id);
-CREATE INDEX issue_search_data_55_search_vector_idx ON gitlab_partitions_static.issue_search_data_55 USING gin (search_vector);
+CREATE INDEX issue_search_data_55_search_vector_idx ON gitlab_partitions_static.issue_search_data_55 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_56_issue_id_idx ON gitlab_partitions_static.issue_search_data_56 USING btree (issue_id);
-CREATE INDEX issue_search_data_56_search_vector_idx ON gitlab_partitions_static.issue_search_data_56 USING gin (search_vector);
+CREATE INDEX issue_search_data_56_search_vector_idx ON gitlab_partitions_static.issue_search_data_56 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_57_issue_id_idx ON gitlab_partitions_static.issue_search_data_57 USING btree (issue_id);
-CREATE INDEX issue_search_data_57_search_vector_idx ON gitlab_partitions_static.issue_search_data_57 USING gin (search_vector);
+CREATE INDEX issue_search_data_57_search_vector_idx ON gitlab_partitions_static.issue_search_data_57 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_58_issue_id_idx ON gitlab_partitions_static.issue_search_data_58 USING btree (issue_id);
-CREATE INDEX issue_search_data_58_search_vector_idx ON gitlab_partitions_static.issue_search_data_58 USING gin (search_vector);
+CREATE INDEX issue_search_data_58_search_vector_idx ON gitlab_partitions_static.issue_search_data_58 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_59_issue_id_idx ON gitlab_partitions_static.issue_search_data_59 USING btree (issue_id);
-CREATE INDEX issue_search_data_59_search_vector_idx ON gitlab_partitions_static.issue_search_data_59 USING gin (search_vector);
+CREATE INDEX issue_search_data_59_search_vector_idx ON gitlab_partitions_static.issue_search_data_59 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_60_issue_id_idx ON gitlab_partitions_static.issue_search_data_60 USING btree (issue_id);
-CREATE INDEX issue_search_data_60_search_vector_idx ON gitlab_partitions_static.issue_search_data_60 USING gin (search_vector);
+CREATE INDEX issue_search_data_60_search_vector_idx ON gitlab_partitions_static.issue_search_data_60 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_61_issue_id_idx ON gitlab_partitions_static.issue_search_data_61 USING btree (issue_id);
-CREATE INDEX issue_search_data_61_search_vector_idx ON gitlab_partitions_static.issue_search_data_61 USING gin (search_vector);
+CREATE INDEX issue_search_data_61_search_vector_idx ON gitlab_partitions_static.issue_search_data_61 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_62_issue_id_idx ON gitlab_partitions_static.issue_search_data_62 USING btree (issue_id);
-CREATE INDEX issue_search_data_62_search_vector_idx ON gitlab_partitions_static.issue_search_data_62 USING gin (search_vector);
+CREATE INDEX issue_search_data_62_search_vector_idx ON gitlab_partitions_static.issue_search_data_62 USING gin (search_vector) WITH (fastupdate='false');
CREATE INDEX issue_search_data_63_issue_id_idx ON gitlab_partitions_static.issue_search_data_63 USING btree (issue_id);
-CREATE INDEX issue_search_data_63_search_vector_idx ON gitlab_partitions_static.issue_search_data_63 USING gin (search_vector);
+CREATE INDEX issue_search_data_63_search_vector_idx ON gitlab_partitions_static.issue_search_data_63 USING gin (search_vector) WITH (fastupdate='false');
+
+CREATE INDEX index_on_namespace_descendants_outdated ON ONLY namespace_descendants USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_00_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_00 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_01_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_01 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_02_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_02 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_03_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_03 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_04_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_04 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_05_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_05 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_06_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_06 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_07_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_07 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_08_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_08 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_09_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_09 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_10_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_10 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_11_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_11 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_12_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_12 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_13_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_13 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_14_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_14 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_15_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_15 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_16_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_16 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_17_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_17 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_18_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_18 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_19_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_19 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_20_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_20 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_21_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_21 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_22_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_22 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_23_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_23 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_24_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_24 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_25_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_25 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_26_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_26 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_27_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_27 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_28_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_28 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_29_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_29 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_30_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_30 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
+
+CREATE INDEX namespace_descendants_31_namespace_id_idx ON gitlab_partitions_static.namespace_descendants_31 USING btree (namespace_id) WHERE (outdated_at IS NOT NULL);
CREATE INDEX index_product_analytics_events_experimental_project_and_time ON ONLY product_analytics_events_experimental USING btree (project_id, collector_tstamp);
@@ -31678,6 +32341,8 @@ CREATE INDEX idx_pkgs_installable_package_files_on_package_id_id_file_name ON pa
CREATE INDEX idx_pkgs_npm_metadata_caches_on_id_and_project_id_and_status ON packages_npm_metadata_caches USING btree (id) WHERE ((project_id IS NULL) AND (status = 0));
+CREATE INDEX idx_pkgs_on_project_id_name_version_on_installable_terraform ON packages_packages USING btree (project_id, name, version, id) WHERE ((package_type = 12) AND (status = ANY (ARRAY[0, 1])));
+
CREATE INDEX idx_proj_feat_usg_on_jira_dvcs_cloud_last_sync_at_and_proj_id ON project_feature_usages USING btree (jira_dvcs_cloud_last_sync_at, project_id) WHERE (jira_dvcs_cloud_last_sync_at IS NOT NULL);
CREATE INDEX idx_proj_feat_usg_on_jira_dvcs_server_last_sync_at_and_proj_id ON project_feature_usages USING btree (jira_dvcs_server_last_sync_at, project_id) WHERE (jira_dvcs_server_last_sync_at IS NOT NULL);
@@ -31714,6 +32379,8 @@ CREATE INDEX idx_repository_states_outdated_checksums ON project_repository_stat
CREATE INDEX idx_sbom_occurrences_on_project_id_and_source_id ON sbom_occurrences USING btree (project_id, source_id);
+CREATE UNIQUE INDEX idx_sbom_source_packages_on_name_and_purl_type ON sbom_source_packages USING btree (name, purl_type);
+
CREATE UNIQUE INDEX idx_security_scans_on_build_and_scan_type ON security_scans USING btree (build_id, scan_type);
CREATE INDEX idx_security_scans_on_scan_type ON security_scans USING btree (scan_type);
@@ -31822,6 +32489,12 @@ CREATE INDEX index_agent_user_access_on_group_id ON agent_user_access_group_auth
CREATE INDEX index_agent_user_access_on_project_id ON agent_user_access_project_authorizations USING btree (project_id);
+CREATE INDEX index_ai_agent_versions_on_agent_id ON ai_agent_versions USING btree (agent_id);
+
+CREATE INDEX index_ai_agent_versions_on_project_id ON ai_agent_versions USING btree (project_id);
+
+CREATE UNIQUE INDEX index_ai_agents_on_project_id_and_name ON ai_agents USING btree (project_id, name);
+
CREATE INDEX index_alert_assignees_on_alert_id ON alert_management_alert_assignees USING btree (alert_id);
CREATE UNIQUE INDEX index_alert_assignees_on_user_id_and_alert_id ON alert_management_alert_assignees USING btree (user_id, alert_id);
@@ -32096,6 +32769,8 @@ CREATE INDEX index_catalog_resource_versions_on_resource_id_and_released_at ON c
CREATE UNIQUE INDEX index_catalog_resources_on_project_id ON catalog_resources USING btree (project_id);
+CREATE INDEX index_catalog_resources_on_search_vector ON catalog_resources USING gin (search_vector);
+
CREATE INDEX index_catalog_resources_on_state ON catalog_resources USING btree (state);
CREATE INDEX index_chat_names_on_team_id_and_chat_id ON chat_names USING btree (team_id, chat_id);
@@ -32122,6 +32797,8 @@ CREATE UNIQUE INDEX index_ci_build_trace_metadata_on_partition_id_build_id ON ci
CREATE INDEX index_ci_build_trace_metadata_on_trace_artifact_id ON ci_build_trace_metadata USING btree (trace_artifact_id);
+CREATE INDEX index_ci_build_trace_metadata_on_trace_artifact_id_partition_id ON ci_build_trace_metadata USING btree (trace_artifact_id, partition_id);
+
CREATE INDEX p_ci_builds_metadata_build_id_idx ON ONLY p_ci_builds_metadata USING btree (build_id) WHERE (has_exposed_artifacts IS TRUE);
CREATE INDEX index_ci_builds_metadata_on_build_id_and_has_exposed_artifacts ON ci_builds_metadata USING btree (build_id) WHERE (has_exposed_artifacts IS TRUE);
@@ -32222,12 +32899,6 @@ CREATE INDEX index_ci_daily_build_group_report_results_on_project_and_date ON ci
CREATE INDEX index_ci_deleted_objects_on_pick_up_at ON ci_deleted_objects USING btree (pick_up_at);
-CREATE INDEX index_ci_editor_ai_messages_created_at ON ci_editor_ai_conversation_messages USING btree (created_at);
-
-CREATE INDEX index_ci_editor_ai_messages_on_user_project_and_created_at ON ci_editor_ai_conversation_messages USING btree (user_id, project_id, created_at);
-
-CREATE INDEX index_ci_editor_ai_messages_project_id ON ci_editor_ai_conversation_messages USING btree (project_id);
-
CREATE INDEX index_ci_finished_build_ch_sync_events_for_partitioned_query ON ONLY p_ci_finished_build_ch_sync_events USING btree (((build_id % (100)::bigint)), build_id) WHERE (processed = false);
CREATE INDEX index_ci_freeze_periods_on_project_id ON ci_freeze_periods USING btree (project_id);
@@ -32236,7 +32907,7 @@ CREATE UNIQUE INDEX index_ci_group_variables_on_group_id_and_key_and_environment
CREATE UNIQUE INDEX index_ci_instance_variables_on_key ON ci_instance_variables USING btree (key);
-CREATE INDEX index_ci_job_artifact_states_on_job_artifact_id ON ci_job_artifact_states USING btree (job_artifact_id);
+CREATE INDEX index_ci_job_artifact_states_on_job_artifact_id_partition_id ON ci_job_artifact_states USING btree (job_artifact_id, partition_id);
CREATE INDEX index_ci_job_artifacts_expire_at_unlocked_non_trace ON ci_job_artifacts USING btree (expire_at) WHERE ((locked = 0) AND (file_type <> 3) AND (expire_at IS NOT NULL));
@@ -33196,12 +33867,6 @@ CREATE INDEX index_imported_projects_on_import_type_creator_id_created_at ON pro
CREATE INDEX index_imported_projects_on_import_type_id ON projects USING btree (import_type, id) WHERE (import_type IS NOT NULL);
-CREATE INDEX index_in_product_marketing_emails_on_track_series_id_clicked ON in_product_marketing_emails USING btree (track, series, id, cta_clicked_at);
-
-CREATE INDEX index_in_product_marketing_emails_on_user_id ON in_product_marketing_emails USING btree (user_id);
-
-CREATE UNIQUE INDEX index_in_product_marketing_emails_on_user_track_series ON in_product_marketing_emails USING btree (user_id, track, series);
-
CREATE INDEX index_inc_mgmnt_oncall_participants_on_oncall_user_id ON incident_management_oncall_participants USING btree (user_id);
CREATE UNIQUE INDEX index_inc_mgmnt_oncall_participants_on_user_id_and_rotation_id ON incident_management_oncall_participants USING btree (user_id, oncall_rotation_id);
@@ -33314,7 +33979,7 @@ CREATE INDEX index_issues_on_milestone_id ON issues USING btree (milestone_id);
CREATE INDEX index_issues_on_moved_to_id ON issues USING btree (moved_to_id) WHERE (moved_to_id IS NOT NULL);
-CREATE INDEX index_issues_on_namespace_id ON issues USING btree (namespace_id);
+CREATE UNIQUE INDEX index_issues_on_namespace_id_iid_unique ON issues USING btree (namespace_id, iid);
CREATE INDEX index_issues_on_project_health_status_asc_work_item_type ON issues USING btree (project_id, health_status, id DESC, state_id, work_item_type_id);
@@ -33684,6 +34349,8 @@ CREATE UNIQUE INDEX index_ml_experiments_on_project_id_and_name ON ml_experiment
CREATE INDEX index_ml_experiments_on_user_id ON ml_experiments USING btree (user_id);
+CREATE INDEX index_ml_model_version_metadata_on_project_id ON ml_model_version_metadata USING btree (project_id);
+
CREATE INDEX index_ml_model_versions_on_package_id ON ml_model_versions USING btree (package_id);
CREATE INDEX index_ml_model_versions_on_project_id ON ml_model_versions USING btree (project_id);
@@ -33920,6 +34587,8 @@ CREATE UNIQUE INDEX index_organizations_on_unique_name_per_group ON customer_rel
CREATE INDEX index_p_catalog_resource_sync_events_on_id_where_pending ON ONLY p_catalog_resource_sync_events USING btree (id) WHERE (status = 1);
+CREATE INDEX index_p_ci_finished_build_ch_sync_events_finished_at ON ONLY p_ci_finished_build_ch_sync_events USING btree (partition, build_finished_at);
+
CREATE UNIQUE INDEX index_p_ci_job_annotations_on_partition_id_job_id_name ON ONLY p_ci_job_annotations USING btree (partition_id, job_id, name);
CREATE INDEX index_p_ci_runner_machine_builds_on_runner_machine_id ON ONLY p_ci_runner_machine_builds USING btree (runner_machine_id);
@@ -33942,14 +34611,10 @@ CREATE INDEX index_packages_debian_group_component_files_on_component_id ON pack
CREATE INDEX index_packages_debian_group_distributions_on_creator_id ON packages_debian_group_distributions USING btree (creator_id);
-CREATE INDEX index_packages_debian_group_distributions_on_group_id ON packages_debian_group_distributions USING btree (group_id);
-
CREATE INDEX index_packages_debian_project_component_files_on_component_id ON packages_debian_project_component_files USING btree (component_id);
CREATE INDEX index_packages_debian_project_distributions_on_creator_id ON packages_debian_project_distributions USING btree (creator_id);
-CREATE INDEX index_packages_debian_project_distributions_on_project_id ON packages_debian_project_distributions USING btree (project_id);
-
CREATE INDEX index_packages_debian_publications_on_distribution_id ON packages_debian_publications USING btree (distribution_id);
CREATE UNIQUE INDEX index_packages_debian_publications_on_package_id ON packages_debian_publications USING btree (package_id);
@@ -34026,8 +34691,6 @@ CREATE INDEX index_packages_rpm_metadata_on_package_id ON packages_rpm_metadata
CREATE INDEX index_packages_rpm_repository_files_on_project_id_and_file_name ON packages_rpm_repository_files USING btree (project_id, file_name);
-CREATE INDEX index_packages_tags_on_package_id ON packages_tags USING btree (package_id);
-
CREATE INDEX index_packages_tags_on_package_id_and_updated_at ON packages_tags USING btree (package_id, updated_at DESC);
CREATE INDEX index_packages_tags_on_project_id ON packages_tags USING btree (project_id);
@@ -34468,22 +35131,12 @@ CREATE INDEX index_requirements_management_test_reports_on_build_id ON requireme
CREATE INDEX index_requirements_management_test_reports_on_issue_id ON requirements_management_test_reports USING btree (issue_id);
-CREATE INDEX index_requirements_on_author_id ON requirements USING btree (author_id);
-
-CREATE INDEX index_requirements_on_created_at ON requirements USING btree (created_at);
-
CREATE UNIQUE INDEX index_requirements_on_issue_id ON requirements USING btree (issue_id);
CREATE INDEX index_requirements_on_project_id ON requirements USING btree (project_id);
CREATE UNIQUE INDEX index_requirements_on_project_id_and_iid ON requirements USING btree (project_id, iid) WHERE (project_id IS NOT NULL);
-CREATE INDEX index_requirements_on_state ON requirements USING btree (state);
-
-CREATE INDEX index_requirements_on_title_trigram ON requirements USING gin (title gin_trgm_ops);
-
-CREATE INDEX index_requirements_on_updated_at ON requirements USING btree (updated_at);
-
CREATE INDEX index_requirements_project_id_user_id_id_and_target_type ON todos USING btree (project_id, user_id, id, target_type);
CREATE INDEX index_requirements_user_id_and_target_type ON todos USING btree (user_id, target_type);
@@ -34576,6 +35229,8 @@ CREATE UNIQUE INDEX index_sbom_component_versions_on_component_id_and_version ON
CREATE UNIQUE INDEX index_sbom_components_on_component_type_name_and_purl_type ON sbom_components USING btree (name, purl_type, component_type);
+CREATE INDEX index_sbom_occurr_on_project_id_and_component_version_id_and_id ON sbom_occurrences USING btree (project_id, component_version_id, id);
+
CREATE INDEX index_sbom_occurrences_for_input_file_path_search ON sbom_occurrences USING btree (project_id, component_id, input_file_path);
CREATE INDEX index_sbom_occurrences_on_component_id_and_id ON sbom_occurrences USING btree (component_id, id);
@@ -34602,6 +35257,8 @@ CREATE UNIQUE INDEX index_sbom_occurrences_on_uuid ON sbom_occurrences USING btr
CREATE INDEX index_sbom_occurrences_vulnerabilities_on_vulnerability_id ON sbom_occurrences_vulnerabilities USING btree (vulnerability_id);
+CREATE INDEX index_sbom_source_packages_on_source_package_id_and_id ON sbom_occurrences USING btree (source_package_id, id);
+
CREATE UNIQUE INDEX index_sbom_sources_on_source_type_and_source ON sbom_sources USING btree (source_type, source);
CREATE UNIQUE INDEX index_scan_result_policies_on_position_in_configuration ON scan_result_policies USING btree (security_orchestration_policy_configuration_id, project_id, orchestration_policy_idx, rule_idx);
@@ -34862,6 +35519,8 @@ CREATE INDEX index_timelogs_on_project_id_and_spent_at ON timelogs USING btree (
CREATE INDEX index_timelogs_on_spent_at ON timelogs USING btree (spent_at) WHERE (spent_at IS NOT NULL);
+CREATE INDEX index_timelogs_on_timelog_category_id ON timelogs USING btree (timelog_category_id);
+
CREATE INDEX index_timelogs_on_user_id ON timelogs USING btree (user_id);
CREATE INDEX index_todos_on_author_id ON todos USING btree (author_id);
@@ -34894,6 +35553,8 @@ CREATE UNIQUE INDEX index_topics_on_name ON topics USING btree (name);
CREATE INDEX index_topics_on_name_trigram ON topics USING gin (name gin_trgm_ops);
+CREATE UNIQUE INDEX index_topics_on_slug ON topics USING btree (slug) WHERE (slug IS NOT NULL);
+
CREATE INDEX index_topics_total_projects_count ON topics USING btree (total_projects_count DESC, id);
CREATE UNIQUE INDEX index_trending_projects_on_project_id ON trending_projects USING btree (project_id);
@@ -34910,6 +35571,8 @@ CREATE UNIQUE INDEX index_uniq_projects_on_runners_token_encrypted ON projects U
CREATE UNIQUE INDEX index_unique_ci_runner_projects_on_runner_id_and_project_id ON ci_runner_projects USING btree (runner_id, project_id);
+CREATE UNIQUE INDEX index_unique_epics_on_issue_id ON epics USING btree (issue_id);
+
CREATE UNIQUE INDEX index_unique_issue_metrics_issue_id ON issue_metrics USING btree (issue_id);
CREATE UNIQUE INDEX index_unique_project_authorizations_on_unique_project_user ON project_authorizations USING btree (project_id, user_id) WHERE is_unique;
@@ -34960,10 +35623,6 @@ CREATE UNIQUE INDEX index_user_canonical_emails_on_user_id ON user_canonical_ema
CREATE UNIQUE INDEX index_user_canonical_emails_on_user_id_and_canonical_email ON user_canonical_emails USING btree (user_id, canonical_email);
-CREATE INDEX index_user_credit_card_validations_meta_data_full_match_lower ON user_credit_card_validations USING btree (lower(holder_name), expiration_date, last_digits, credit_card_validated_at);
-
-CREATE INDEX index_user_credit_card_validations_meta_data_partial_match ON user_credit_card_validations USING btree (expiration_date, last_digits, network, credit_card_validated_at);
-
CREATE INDEX index_user_custom_attributes_on_key_and_value ON user_custom_attributes USING btree (key, value);
CREATE UNIQUE INDEX index_user_custom_attributes_on_user_id_and_key ON user_custom_attributes USING btree (user_id, key);
@@ -35082,6 +35741,8 @@ CREATE INDEX index_vuln_reads_on_casted_cluster_agent_id_where_it_is_null ON vul
CREATE INDEX index_vuln_reads_on_namespace_id_state_severity_and_vuln_id ON vulnerability_reads USING btree (namespace_id, state, severity, vulnerability_id DESC);
+CREATE INDEX index_vuln_reads_on_project_id_owasp_top_10 ON vulnerability_reads USING btree (project_id, owasp_top_10);
+
CREATE INDEX index_vuln_reads_on_project_id_state_severity_and_vuln_id ON vulnerability_reads USING btree (project_id, state, severity, vulnerability_id DESC);
CREATE INDEX index_vulnerabilities_common_finder_query_on_default_branch ON vulnerabilities USING btree (project_id, state, report_type, present_on_default_branch, severity, id);
@@ -35094,26 +35755,14 @@ CREATE INDEX index_vulnerabilities_on_detected_at_and_id ON vulnerabilities USIN
CREATE INDEX index_vulnerabilities_on_dismissed_by_id ON vulnerabilities USING btree (dismissed_by_id);
-CREATE INDEX index_vulnerabilities_on_due_date_sourcing_milestone_id ON vulnerabilities USING btree (due_date_sourcing_milestone_id);
-
-CREATE INDEX index_vulnerabilities_on_epic_id ON vulnerabilities USING btree (epic_id);
-
CREATE INDEX index_vulnerabilities_on_finding_id ON vulnerabilities USING btree (finding_id);
-CREATE INDEX index_vulnerabilities_on_last_edited_by_id ON vulnerabilities USING btree (last_edited_by_id);
-
-CREATE INDEX index_vulnerabilities_on_milestone_id ON vulnerabilities USING btree (milestone_id);
-
CREATE INDEX index_vulnerabilities_on_project_id_and_id ON vulnerabilities USING btree (project_id, id);
CREATE INDEX index_vulnerabilities_on_project_id_and_state_and_severity ON vulnerabilities USING btree (project_id, state, severity);
CREATE INDEX index_vulnerabilities_on_resolved_by_id ON vulnerabilities USING btree (resolved_by_id);
-CREATE INDEX index_vulnerabilities_on_start_date_sourcing_milestone_id ON vulnerabilities USING btree (start_date_sourcing_milestone_id);
-
-CREATE INDEX index_vulnerabilities_on_updated_by_id ON vulnerabilities USING btree (updated_by_id);
-
CREATE INDEX index_vulnerabilities_project_id_and_id_on_default_branch ON vulnerabilities USING btree (project_id, id) WHERE (present_on_default_branch IS TRUE);
CREATE INDEX index_vulnerabilities_project_id_state_severity_default_branch ON vulnerabilities USING btree (project_id, state, severity, present_on_default_branch);
@@ -35328,6 +35977,10 @@ CREATE INDEX index_zentao_tracker_data_on_integration_id ON zentao_tracker_data
CREATE INDEX index_zoekt_indexed_namespaces_on_namespace_id ON zoekt_indexed_namespaces USING btree (namespace_id);
+CREATE INDEX index_zoekt_indices_on_state ON zoekt_indices USING btree (state);
+
+CREATE INDEX index_zoekt_indices_on_zoekt_node_id ON zoekt_indices USING btree (zoekt_node_id);
+
CREATE UNIQUE INDEX index_zoekt_node_and_namespace ON zoekt_indexed_namespaces USING btree (zoekt_node_id, namespace_id);
CREATE INDEX index_zoekt_nodes_on_last_seen_at ON zoekt_nodes USING btree (last_seen_at);
@@ -35364,8 +36017,6 @@ CREATE UNIQUE INDEX merge_request_user_mentions_on_mr_id_and_note_id_index ON me
CREATE UNIQUE INDEX merge_request_user_mentions_on_mr_id_index ON merge_request_user_mentions USING btree (merge_request_id) WHERE (note_id IS NULL);
-CREATE INDEX note_mentions_temp_index ON notes USING btree (id, noteable_type) WHERE (note ~~ '%@%'::text);
-
CREATE UNIQUE INDEX one_canonical_wiki_page_slug_per_metadata ON wiki_page_slugs USING btree (wiki_page_meta_id) WHERE (canonical = true);
CREATE INDEX p_ci_builds_scheduled_at_idx ON ONLY p_ci_builds USING btree (scheduled_at) WHERE ((scheduled_at IS NOT NULL) AND ((type)::text = 'Ci::Build'::text) AND ((status)::text = 'scheduled'::text));
@@ -35398,6 +36049,8 @@ CREATE INDEX partial_index_user_id_app_id_created_at_token_not_revoked ON oauth_
CREATE UNIQUE INDEX pm_checkpoints_path_components ON pm_checkpoints USING btree (purl_type, data_type, version_format);
+CREATE INDEX releases_published_at_index ON releases USING btree (release_published_at);
+
CREATE INDEX scan_finding_approval_mr_rule_index_id ON approval_merge_request_rules USING btree (id) WHERE (report_type = 4);
CREATE INDEX scan_finding_approval_mr_rule_index_merge_request_id ON approval_merge_request_rules USING btree (merge_request_id) WHERE (report_type = 4);
@@ -35452,8 +36105,6 @@ CREATE INDEX tmp_index_for_null_member_namespace_id ON members USING btree (memb
CREATE INDEX tmp_index_for_project_namespace_id_migration_on_routes ON routes USING btree (id) WHERE ((namespace_id IS NULL) AND ((source_type)::text = 'Project'::text));
-CREATE INDEX tmp_index_members_on_state ON members USING btree (state) WHERE (state = 2);
-
CREATE INDEX tmp_index_on_vulnerabilities_non_dismissed ON vulnerabilities USING btree (id) WHERE (state <> 2);
CREATE INDEX tmp_index_project_statistics_cont_registry_size ON project_statistics USING btree (project_id) WHERE (container_registry_size = 0);
@@ -35468,6 +36119,8 @@ CREATE INDEX tmp_index_vulnerability_overlong_title_html ON vulnerabilities USIN
CREATE UNIQUE INDEX u_project_compliance_standards_adherence_for_reporting ON project_compliance_standards_adherence USING btree (project_id, check_name, standard);
+CREATE UNIQUE INDEX u_zoekt_indices_zoekt_enabled_namespace_id_and_zoekt_node_id ON zoekt_indices USING btree (zoekt_enabled_namespace_id, zoekt_node_id);
+
CREATE UNIQUE INDEX uniq_google_cloud_logging_configuration_namespace_id_and_name ON audit_events_google_cloud_logging_configurations USING btree (namespace_id, name);
CREATE UNIQUE INDEX uniq_idx_packages_packages_on_project_id_name_version_ml_model ON packages_packages USING btree (project_id, name, version) WHERE (package_type = 14);
@@ -35520,6 +36173,8 @@ CREATE UNIQUE INDEX unique_index_for_project_pages_unique_domain ON project_sett
CREATE UNIQUE INDEX unique_index_ml_model_metadata_name ON ml_model_metadata USING btree (model_id, name);
+CREATE UNIQUE INDEX unique_index_ml_model_version_metadata_name ON ml_model_version_metadata USING btree (model_version_id, name);
+
CREATE UNIQUE INDEX unique_index_on_system_note_metadata_id ON resource_link_events USING btree (system_note_metadata_id);
CREATE UNIQUE INDEX unique_index_sysaccess_ms_access_tokens_on_sysaccess_ms_app_id ON system_access_microsoft_graph_access_tokens USING btree (system_access_microsoft_application_id);
@@ -35558,14 +36213,16 @@ CREATE UNIQUE INDEX unique_user_id_and_setting_type ON vs_code_settings USING bt
CREATE UNIQUE INDEX unique_vuln_merge_request_link_vuln_id_and_mr_id ON vulnerability_merge_request_links USING btree (vulnerability_id, merge_request_id);
+CREATE UNIQUE INDEX unique_zoekt_enabled_namespaces_on_root_namespace_id ON zoekt_enabled_namespaces USING btree (root_namespace_id);
+
CREATE UNIQUE INDEX unique_zoekt_shards_uuid ON zoekt_shards USING btree (uuid);
CREATE INDEX user_follow_users_followee_id_idx ON user_follow_users USING btree (followee_id);
-CREATE INDEX users_forbidden_state_idx ON users USING btree (id) WHERE ((confirmed_at IS NOT NULL) AND ((state)::text <> ALL (ARRAY['blocked'::text, 'banned'::text, 'ldap_blocked'::text])));
-
CREATE UNIQUE INDEX vulnerability_occurrence_pipelines_on_unique_keys ON vulnerability_occurrence_pipelines USING btree (occurrence_id, pipeline_id);
+CREATE INDEX wi_colors_namespace_id_index ON work_item_colors USING btree (namespace_id);
+
CREATE INDEX wi_datessources_due_date_sourcing_milestone_id_index ON work_item_dates_sources USING btree (due_date_sourcing_milestone_id);
CREATE INDEX wi_datessources_due_date_sourcing_work_item_id_index ON work_item_dates_sources USING btree (due_date_sourcing_work_item_id);
@@ -36858,6 +37515,134 @@ ALTER INDEX issue_search_data_pkey ATTACH PARTITION gitlab_partitions_static.iss
ALTER INDEX index_issue_search_data_on_search_vector ATTACH PARTITION gitlab_partitions_static.issue_search_data_63_search_vector_idx;
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_00_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_00_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_01_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_01_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_02_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_02_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_03_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_03_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_04_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_04_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_05_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_05_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_06_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_06_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_07_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_07_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_08_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_08_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_09_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_09_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_10_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_10_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_11_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_11_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_12_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_12_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_13_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_13_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_14_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_14_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_15_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_15_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_16_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_16_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_17_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_17_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_18_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_18_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_19_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_19_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_20_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_20_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_21_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_21_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_22_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_22_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_23_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_23_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_24_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_24_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_25_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_25_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_26_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_26_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_27_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_27_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_28_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_28_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_29_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_29_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_30_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_30_pkey;
+
+ALTER INDEX index_on_namespace_descendants_outdated ATTACH PARTITION gitlab_partitions_static.namespace_descendants_31_namespace_id_idx;
+
+ALTER INDEX namespace_descendants_pkey ATTACH PARTITION gitlab_partitions_static.namespace_descendants_31_pkey;
+
ALTER INDEX index_product_analytics_events_experimental_project_and_time ATTACH PARTITION gitlab_partitions_static.product_analytics_events_expe_project_id_collector_tstamp_idx10;
ALTER INDEX index_product_analytics_events_experimental_project_and_time ATTACH PARTITION gitlab_partitions_static.product_analytics_events_expe_project_id_collector_tstamp_idx11;
@@ -37216,6 +38001,8 @@ CREATE TRIGGER trigger_delete_project_namespace_on_project_delete AFTER DELETE O
CREATE TRIGGER trigger_eaec934fe6b2 BEFORE INSERT OR UPDATE ON system_note_metadata FOR EACH ROW EXECUTE FUNCTION trigger_eaec934fe6b2();
+CREATE TRIGGER trigger_ff16c1fd43ea BEFORE INSERT OR UPDATE ON geo_event_log FOR EACH ROW EXECUTE FUNCTION trigger_ff16c1fd43ea();
+
CREATE TRIGGER trigger_has_external_issue_tracker_on_delete AFTER DELETE ON integrations FOR EACH ROW WHEN ((((old.category)::text = 'issue_tracker'::text) AND (old.active = true) AND (old.project_id IS NOT NULL))) EXECUTE FUNCTION set_has_external_issue_tracker();
CREATE TRIGGER trigger_has_external_issue_tracker_on_insert AFTER INSERT ON integrations FOR EACH ROW WHEN ((((new.category)::text = 'issue_tracker'::text) AND (new.active = true) AND (new.project_id IS NOT NULL))) EXECUTE FUNCTION set_has_external_issue_tracker();
@@ -37337,12 +38124,6 @@ ALTER TABLE ONLY project_pages_metadata
ALTER TABLE ONLY group_deletion_schedules
ADD CONSTRAINT fk_11e3ebfcdd FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
-ALTER TABLE ONLY vulnerabilities
- ADD CONSTRAINT fk_1302949740 FOREIGN KEY (last_edited_by_id) REFERENCES users(id) ON DELETE SET NULL;
-
-ALTER TABLE ONLY vulnerabilities
- ADD CONSTRAINT fk_131d289c65 FOREIGN KEY (milestone_id) REFERENCES milestones(id) ON DELETE SET NULL;
-
ALTER TABLE ONLY approval_group_rules
ADD CONSTRAINT fk_1485c451e3 FOREIGN KEY (scan_result_policy_id) REFERENCES scan_result_policies(id) ON DELETE CASCADE;
@@ -37385,12 +38166,12 @@ ALTER TABLE ONLY project_statistics
ALTER TABLE ONLY agent_project_authorizations
ADD CONSTRAINT fk_1d30bb4987 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
-ALTER TABLE ONLY vulnerabilities
- ADD CONSTRAINT fk_1d37cddf91 FOREIGN KEY (epic_id) REFERENCES epics(id) ON DELETE SET NULL;
-
ALTER TABLE ONLY boards
ADD CONSTRAINT fk_1e9a074a35 FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
+ALTER TABLE ONLY zoekt_enabled_namespaces
+ ADD CONSTRAINT fk_1effa65b25 FOREIGN KEY (root_namespace_id) REFERENCES namespaces(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY epics
ADD CONSTRAINT fk_1fbed67632 FOREIGN KEY (start_date_sourcing_milestone_id) REFERENCES milestones(id) ON DELETE SET NULL;
@@ -37406,6 +38187,9 @@ ALTER TABLE ONLY namespace_settings
ALTER TABLE ONLY ci_build_trace_metadata
ADD CONSTRAINT fk_21d25cac1a FOREIGN KEY (trace_artifact_id) REFERENCES ci_job_artifacts(id) ON DELETE CASCADE;
+ALTER TABLE ONLY ci_build_trace_metadata
+ ADD CONSTRAINT fk_21d25cac1a_p FOREIGN KEY (partition_id, trace_artifact_id) REFERENCES ci_job_artifacts(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE;
+
ALTER TABLE ONLY users_star_projects
ADD CONSTRAINT fk_22cd27ddfc FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
@@ -37499,9 +38283,6 @@ ALTER TABLE ONLY project_topics
ALTER TABLE ONLY saml_providers
ADD CONSTRAINT fk_351dde3a84 FOREIGN KEY (member_role_id) REFERENCES member_roles(id) ON DELETE SET NULL;
-ALTER TABLE ONLY in_product_marketing_emails
- ADD CONSTRAINT fk_35c9101b63 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
-
ALTER TABLE ONLY epics
ADD CONSTRAINT fk_3654b61b03 FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE CASCADE;
@@ -37590,7 +38371,7 @@ ALTER TABLE ONLY namespace_commit_emails
ADD CONSTRAINT fk_4d6ba63ba5 FOREIGN KEY (namespace_id) REFERENCES namespaces(id) ON DELETE CASCADE;
ALTER TABLE ONLY vulnerabilities
- ADD CONSTRAINT fk_4e64972902 FOREIGN KEY (finding_id) REFERENCES vulnerability_occurrences(id) ON DELETE CASCADE NOT VALID;
+ ADD CONSTRAINT fk_4e64972902 FOREIGN KEY (finding_id) REFERENCES vulnerability_occurrences(id) ON DELETE CASCADE;
ALTER TABLE ONLY ml_model_versions
ADD CONSTRAINT fk_4e8b59e7a8 FOREIGN KEY (model_id) REFERENCES ml_models(id) ON DELETE CASCADE;
@@ -37706,6 +38487,9 @@ ALTER TABLE p_ci_builds
ALTER TABLE ONLY merge_requests
ADD CONSTRAINT fk_6a5165a692 FOREIGN KEY (milestone_id) REFERENCES milestones(id) ON DELETE SET NULL;
+ALTER TABLE ONLY ai_agent_versions
+ ADD CONSTRAINT fk_6c2f682587 FOREIGN KEY (agent_id) REFERENCES ai_agents(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY ml_models
ADD CONSTRAINT fk_6c95e61a6e FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL;
@@ -37787,18 +38571,12 @@ ALTER TABLE ONLY protected_branches
ALTER TABLE ONLY scan_result_policies
ADD CONSTRAINT fk_7aa24439f1 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
-ALTER TABLE ONLY vulnerabilities
- ADD CONSTRAINT fk_7ac31eacb9 FOREIGN KEY (updated_by_id) REFERENCES users(id) ON DELETE SET NULL;
-
ALTER TABLE ONLY catalog_resource_versions
ADD CONSTRAINT fk_7ad8849db4 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
ALTER TABLE ONLY issue_customer_relations_contacts
ADD CONSTRAINT fk_7b92f835bb FOREIGN KEY (contact_id) REFERENCES customer_relations_contacts(id) ON DELETE CASCADE;
-ALTER TABLE ONLY vulnerabilities
- ADD CONSTRAINT fk_7c5bb22a22 FOREIGN KEY (due_date_sourcing_milestone_id) REFERENCES milestones(id) ON DELETE SET NULL;
-
ALTER TABLE ONLY ssh_signatures
ADD CONSTRAINT fk_7d2f93996c FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
@@ -37823,9 +38601,6 @@ ALTER TABLE ONLY import_export_uploads
ALTER TABLE ONLY push_rules
ADD CONSTRAINT fk_83b29894de FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
-ALTER TABLE ONLY organization_users
- ADD CONSTRAINT fk_8471abad75 FOREIGN KEY (organization_id) REFERENCES organizations(id) ON DELETE CASCADE;
-
ALTER TABLE ONLY merge_request_diffs
ADD CONSTRAINT fk_8483f3258f FOREIGN KEY (merge_request_id) REFERENCES merge_requests(id) ON DELETE CASCADE;
@@ -37850,9 +38625,6 @@ ALTER TABLE p_ci_builds
ALTER TABLE ONLY approval_group_rules_users
ADD CONSTRAINT fk_888a0df3b7 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
-ALTER TABLE ONLY vulnerabilities
- ADD CONSTRAINT fk_88b4d546ef FOREIGN KEY (start_date_sourcing_milestone_id) REFERENCES milestones(id) ON DELETE SET NULL;
-
ALTER TABLE ONLY bulk_import_entities
ADD CONSTRAINT fk_88c725229f FOREIGN KEY (namespace_id) REFERENCES namespaces(id) ON DELETE CASCADE;
@@ -37877,9 +38649,6 @@ ALTER TABLE ONLY work_item_dates_sources
ALTER TABLE ONLY bulk_import_exports
ADD CONSTRAINT fk_8c6f33cebe FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
-ALTER TABLE ONLY organization_users
- ADD CONSTRAINT fk_8d9b20725d FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
-
ALTER TABLE ONLY releases
ADD CONSTRAINT fk_8e4456f90f FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE SET NULL;
@@ -38030,9 +38799,18 @@ ALTER TABLE ONLY dast_profile_schedules
ALTER TABLE ONLY analytics_cycle_analytics_group_stages
ADD CONSTRAINT fk_analytics_cycle_analytics_group_stages_group_value_stream_id FOREIGN KEY (group_value_stream_id) REFERENCES analytics_cycle_analytics_group_value_streams(id) ON DELETE CASCADE;
+ALTER TABLE ONLY approval_merge_request_rules
+ ADD CONSTRAINT fk_approval_merge_request_rules_on_scan_result_policy_id FOREIGN KEY (scan_result_policy_id) REFERENCES scan_result_policies(id) ON DELETE SET NULL;
+
ALTER TABLE ONLY fork_network_members
ADD CONSTRAINT fk_b01280dae4 FOREIGN KEY (forked_from_project_id) REFERENCES projects(id) ON DELETE SET NULL;
+ALTER TABLE ONLY work_item_colors
+ ADD CONSTRAINT fk_b15b0912d0 FOREIGN KEY (namespace_id) REFERENCES namespaces(id) ON DELETE SET NULL;
+
+ALTER TABLE ONLY sbom_occurrences
+ ADD CONSTRAINT fk_b1b65d8d17 FOREIGN KEY (source_package_id) REFERENCES sbom_source_packages(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY vulnerabilities
ADD CONSTRAINT fk_b1de915a15 FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE SET NULL;
@@ -38114,6 +38892,9 @@ ALTER TABLE ONLY ci_sources_pipelines
ALTER TABLE ONLY packages_maven_metadata
ADD CONSTRAINT fk_be88aed360 FOREIGN KEY (package_id) REFERENCES packages_packages(id) ON DELETE CASCADE;
+ALTER TABLE ONLY zoekt_indices
+ ADD CONSTRAINT fk_bf205d4773 FOREIGN KEY (zoekt_enabled_namespace_id) REFERENCES zoekt_enabled_namespaces(id) ON DELETE SET NULL;
+
ALTER TABLE ONLY design_management_versions
ADD CONSTRAINT fk_c1440b4896 FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE SET NULL;
@@ -38354,6 +39135,9 @@ ALTER TABLE ONLY approval_group_rules_groups
ALTER TABLE ONLY emails
ADD CONSTRAINT fk_emails_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
+ALTER TABLE ONLY epics
+ ADD CONSTRAINT fk_epics_issue_id_with_on_delete_nullify FOREIGN KEY (issue_id) REFERENCES issues(id) ON DELETE SET NULL;
+
ALTER TABLE ONLY clusters
ADD CONSTRAINT fk_f05c5e5a42 FOREIGN KEY (management_project_id) REFERENCES projects(id) ON DELETE SET NULL;
@@ -38366,12 +39150,18 @@ ALTER TABLE ONLY epics
ALTER TABLE ONLY abuse_reports
ADD CONSTRAINT fk_f10de8b524 FOREIGN KEY (resolved_by_id) REFERENCES users(id) ON DELETE SET NULL;
+ALTER TABLE ONLY timelogs
+ ADD CONSTRAINT fk_f12ef8db70 FOREIGN KEY (timelog_category_id) REFERENCES timelog_categories(id) ON DELETE SET NULL;
+
ALTER TABLE ONLY boards
ADD CONSTRAINT fk_f15266b5f9 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
ALTER TABLE ONLY ci_pipeline_variables
ADD CONSTRAINT fk_f29c5f4380 FOREIGN KEY (pipeline_id) REFERENCES ci_pipelines(id) ON DELETE CASCADE;
+ALTER TABLE ONLY zoekt_indices
+ ADD CONSTRAINT fk_f34800a202 FOREIGN KEY (zoekt_node_id) REFERENCES zoekt_nodes(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY status_check_responses
ADD CONSTRAINT fk_f3953d86c6 FOREIGN KEY (merge_request_id) REFERENCES merge_requests(id) ON DELETE CASCADE;
@@ -38390,9 +39180,6 @@ ALTER TABLE ONLY boards_epic_list_user_preferences
ALTER TABLE ONLY user_project_callouts
ADD CONSTRAINT fk_f62dd11a33 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
-ALTER TABLE ONLY approval_merge_request_rules
- ADD CONSTRAINT fk_f726c79756 FOREIGN KEY (scan_result_policy_id) REFERENCES scan_result_policies(id) ON DELETE CASCADE;
-
ALTER TABLE ONLY workspaces
ADD CONSTRAINT fk_f78aeddc77 FOREIGN KEY (cluster_agent_id) REFERENCES cluster_agents(id) ON DELETE CASCADE;
@@ -38684,6 +39471,9 @@ ALTER TABLE ONLY work_item_types
ALTER TABLE ONLY user_statuses
ADD CONSTRAINT fk_rails_2178592333 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
+ALTER TABLE ONLY ai_agent_versions
+ ADD CONSTRAINT fk_rails_2205f8ca20 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY users_ops_dashboard_projects
ADD CONSTRAINT fk_rails_220a0562db FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
@@ -38771,6 +39561,9 @@ ALTER TABLE ONLY boards_epic_board_labels
ALTER TABLE ONLY error_tracking_error_events
ADD CONSTRAINT fk_rails_2c096c0076 FOREIGN KEY (error_id) REFERENCES error_tracking_errors(id) ON DELETE CASCADE;
+ALTER TABLE ONLY work_item_colors
+ ADD CONSTRAINT fk_rails_2c2032206e FOREIGN KEY (issue_id) REFERENCES issues(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY onboarding_progresses
ADD CONSTRAINT fk_rails_2ccfd420cc FOREIGN KEY (namespace_id) REFERENCES namespaces(id) ON DELETE CASCADE;
@@ -38804,15 +39597,15 @@ ALTER TABLE ONLY zoom_meetings
ALTER TABLE ONLY container_repositories
ADD CONSTRAINT fk_rails_32f7bf5aad FOREIGN KEY (project_id) REFERENCES projects(id);
+ALTER TABLE ONLY ai_agents
+ ADD CONSTRAINT fk_rails_3328b05449 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY alert_management_alert_metric_images
ADD CONSTRAINT fk_rails_338e55b408 FOREIGN KEY (alert_id) REFERENCES alert_management_alerts(id) ON DELETE CASCADE;
ALTER TABLE ONLY suggestions
ADD CONSTRAINT fk_rails_33b03a535c FOREIGN KEY (note_id) REFERENCES notes(id) ON DELETE CASCADE;
-ALTER TABLE ONLY requirements
- ADD CONSTRAINT fk_rails_33fed8aa4e FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE SET NULL;
-
ALTER TABLE ONLY metrics_dashboard_annotations
ADD CONSTRAINT fk_rails_345ab51043 FOREIGN KEY (cluster_id) REFERENCES clusters(id) ON DELETE CASCADE;
@@ -39074,6 +39867,9 @@ ALTER TABLE ONLY approval_merge_request_rules_groups
ALTER TABLE ONLY namespace_limits
ADD CONSTRAINT fk_rails_5b3f2bc334 FOREIGN KEY (namespace_id) REFERENCES namespaces(id) ON DELETE CASCADE;
+ALTER TABLE ONLY ml_model_version_metadata
+ ADD CONSTRAINT fk_rails_5b67cc9107 FOREIGN KEY (model_version_id) REFERENCES ml_model_versions(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY protected_environment_deploy_access_levels
ADD CONSTRAINT fk_rails_5b9f6970fe FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
@@ -39218,6 +40014,9 @@ ALTER TABLE ONLY ml_experiment_metadata
ALTER TABLE ONLY error_tracking_errors
ADD CONSTRAINT fk_rails_6b41f837ba FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
+ALTER TABLE ONLY ml_model_version_metadata
+ ADD CONSTRAINT fk_rails_6b8fcb2af1 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY prometheus_alerts
ADD CONSTRAINT fk_rails_6d9b283465 FOREIGN KEY (environment_id) REFERENCES environments(id) ON DELETE CASCADE;
@@ -39336,7 +40135,7 @@ ALTER TABLE ONLY dependency_proxy_manifest_states
ADD CONSTRAINT fk_rails_806cf07a3c FOREIGN KEY (dependency_proxy_manifest_id) REFERENCES dependency_proxy_manifests(id) ON DELETE CASCADE;
ALTER TABLE ONLY ci_job_artifact_states
- ADD CONSTRAINT fk_rails_80a9cba3b2 FOREIGN KEY (job_artifact_id) REFERENCES ci_job_artifacts(id) ON DELETE CASCADE;
+ ADD CONSTRAINT fk_rails_80a9cba3b2_p FOREIGN KEY (partition_id, job_artifact_id) REFERENCES ci_job_artifacts(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY approval_merge_request_rules_users
ADD CONSTRAINT fk_rails_80e6801803 FOREIGN KEY (approval_merge_request_rule_id) REFERENCES approval_merge_request_rules(id) ON DELETE CASCADE;
diff --git a/doc/.vale/gitlab/BadgeCapitalization.yml b/doc/.vale/gitlab/BadgeCapitalization.yml
deleted file mode 100644
index a44bcbc0a7d..00000000000
--- a/doc/.vale/gitlab/BadgeCapitalization.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-# Error: gitlab.BadgeCapitalization
-#
-# Verifies that badges are not mixed case, which won't render properly.
-#
-# For a list of all options, see https://vale.sh/docs/topics/styles/
-extends: existence
-message: "Capitalize the '%s' badge."
-link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges
-level: error
-scope: raw
-raw:
- - '(?!\*\*\((FREE|PREMIUM|ULTIMATE)( (SELF|SAAS|ALL) (BETA|EXPERIMENT))?\)\*\*)'
- - '(?i)\*\*\((free|premium|ultimate)( (self|saas|all) (beta|experiment))?\)\*\*'
diff --git a/doc/.vale/gitlab/LatinTerms.yml b/doc/.vale/gitlab/LatinTerms.yml
index 0f098979b16..9fbaf278da9 100644
--- a/doc/.vale/gitlab/LatinTerms.yml
+++ b/doc/.vale/gitlab/LatinTerms.yml
@@ -15,4 +15,4 @@ swap:
e\. g\.: for example
i\.e\.: that is
i\. e\.: that is
- via: "Use 'with', 'through', or 'by using' instead."
+ via: "with', 'through', or 'by using"
diff --git a/doc/.vale/gitlab/Uppercase.yml b/doc/.vale/gitlab/Uppercase.yml
index b13ebe2c0a8..01837726b91 100644
--- a/doc/.vale/gitlab/Uppercase.yml
+++ b/doc/.vale/gitlab/Uppercase.yml
@@ -64,6 +64,8 @@ exceptions:
- DORA
- DSA
- DSL
+ - DUOPRO
+ - DUOENT
- DVCS
- DVD
- EBS
diff --git a/doc/.vale/gitlab/spelling-exceptions.txt b/doc/.vale/gitlab/spelling-exceptions.txt
index cc02821b6d6..b8cc7d4d890 100644
--- a/doc/.vale/gitlab/spelling-exceptions.txt
+++ b/doc/.vale/gitlab/spelling-exceptions.txt
@@ -284,6 +284,7 @@ devfiles
DevOps
Dhall
dialogs
+Diffblue
disambiguates
discoverability
dismissable
diff --git a/doc/administration/admin_area.md b/doc/administration/admin_area.md
index ff18ac8ff3a..f9b26cd364d 100644
--- a/doc/administration/admin_area.md
+++ b/doc/administration/admin_area.md
@@ -470,3 +470,12 @@ The content of each log file is listed in chronological order. To minimize perfo
### Audit Events **(PREMIUM SELF)**
The **Audit Events** page lists changes made within the GitLab server. With this information you can control, analyze, and track every change.
+
+### Statistics
+
+The **Instance overview** section of the Dashboard lists the current statistics of the GitLab instance. This information is retrieved using the [Application statistics API](../api/statistics.md#get-current-application-statistics).
+
+NOTE:
+These statistics show exact counts for values less than 10,000. For values of 10,000 and higher, these statistics show approximate data
+when [TablesampleCountStrategy](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/database/count/tablesample_count_strategy.rb?ref_type=heads#L16) and [ReltuplesCountStrategy](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/database/count/reltuples_count_strategy.rb?ref_type=heads) strategies are used for calculations.
+.
diff --git a/doc/administration/analytics/dev_ops_reports.md b/doc/administration/analytics/dev_ops_reports.md
index 057dc5d48ee..313e99c1e57 100644
--- a/doc/administration/analytics/dev_ops_reports.md
+++ b/doc/administration/analytics/dev_ops_reports.md
@@ -49,18 +49,18 @@ feature is available.
DevOps Adoption shows feature adoption for development, security, and operations.
-| Category | Feature |
-| --- | --- |
-| Development | Approvals<br>Code owners<br>Issues<br>Merge requests |
-| Security | DAST<br>Dependency Scanning<br>Fuzz Testing<br>SAST |
-| Operations | Deployments<br>Pipelines<br>Runners |
+| Category | Feature |
+|-------------|---------|
+| Development | Approvals<br>Code owners<br>Issues<br>Merge requests |
+| Security | DAST<br>Dependency Scanning<br>Fuzz Testing<br>SAST |
+| Operations | Deployments<br>Pipelines<br>Runners |
You can use Group DevOps Adoption to:
- Identify specific subgroups that are lagging in their adoption of GitLab features, so you can guide them on
-their DevOps journey.
+ their DevOps journey.
- Find subgroups that have adopted certain features, and provide guidance to other subgroups on
-how to use those features.
+ how to use those features.
- Verify if you are getting the return on investment that you expected from GitLab.
## Add or remove a group
diff --git a/doc/administration/appearance.md b/doc/administration/appearance.md
index 3599c444134..9ebc9a37407 100644
--- a/doc/administration/appearance.md
+++ b/doc/administration/appearance.md
@@ -6,107 +6,145 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# GitLab Appearance **(FREE SELF)**
-Several options are available for customizing the appearance of a self-managed instance
-of GitLab. To access these settings:
+You can update your settings to change the look and feel of your GitLab self-managed instance.
+
+To open the **Appearance** settings:
1. On the left sidebar, at the bottom, select **Admin Area**.
1. Select **Settings > Appearance**.
-## Navigation bar
+## Customize your homepage button
+
+Customize the appearance of your **Homepage** button.
+
+The **Homepage** button is located on the upper-left corner of the left sidebar.
+Replace the default **GitLab logo** **{tanuki}** with any image.
+
+- The file should be less than 1 MB.
+- The image should be 28 pixels high. Images more than 28 px high will be resized.
+
+To customize your **Homepage** icon image:
-By default, the navigation bar has the GitLab logo, but this can be customized with
-any image desired. It is optimized for images 28px high (any width), but any image can be
-used (less than 1 MB) and it is automatically resized.
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Under **Navigation bar**, select **Choose file**.
+1. At the bottom of the page, select **Update appearance settings**.
-After you select and upload an image, select **Update appearance settings** at the bottom
-of the page to activate it in the GitLab instance.
+Pipeline status emails also show your custom logo. However, some email applications do not support SVG images. If your custom image is in SVG format, pipeline emails show the default logo.
-NOTE:
-GitLab pipeline emails also display the custom logo, unless the logo is in SVG format. If the
-custom logo is in SVG format, the default logo is used instead because the SVG format is not
-supported by many email clients.
+## Customize the favicon
-## Favicon
+Customize the appearance of the favicon. A favicon is the icon for a website that shows in your browser tabs. The **GitLab logo** **{tanuki}** is the default browser and CI/CD status favicon. Replace the default icon with any image that is `32 x 32` pixels and in `.png` or `.ico` format.
-By default, the favicon (used by the browser as the tab icon and the CI status icon)
-uses the GitLab logo. This can be customized with any icon desired. It must be a
-32x32 `.png` or `.ico` image.
+To change the favicon:
-After you select and upload an icon, select **Update appearance settings** at the bottom
-of the page to activate it in the GitLab instance.
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Under **Favicon**, select **Choose file**.
+1. At the bottom of the page, select **Update appearance settings**.
-## System header and footer messages
+## Add system header and footer messages
> **Enable header and footer in emails** checkbox [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/344819) in GitLab 15.9.
-You can add a small header message, a small footer message, or both, to the interface
-of your GitLab instance. These messages appear on all projects and pages of the
-instance, including the sign-in/sign-up page. The default color is white text on
-an orange background, but this can be customized by selecting **Customize colors**.
+Add a small header message, a small footer message, or both, to the interface of your GitLab instance. These messages show on all projects and pages of the instance, such as the sign-in and register pages.
-Limited [Markdown](../user/markdown.md) is supported, such as bold, italics, and links, for
-example. Other Markdown features, including lists, images, and quotes are not supported
-as the header and footer messages can only be a single line.
+- You can italicize, bold, or add links to your message with Markdown.
+- Markdown lists, images, and quotes are not supported because system messages must be a single line.
-You can select **Enable header and footer in emails** to have the text of
-the header and footer added to all emails sent by the GitLab instance.
+To add a system header, footer message, or both:
-After you add a message, select **Update appearance settings** at the bottom of the page
-to activate it in the GitLab instance.
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Go to the **System header and footer** section.
+1. Complete the fields.
+1. Optional. Select the **Enable header and footer in emails** checkbox. Add your system messages to all emails sent by your GitLab instance.
+1. At the bottom of the page, select **Update appearance settings**.
-## Sign-in / Sign-up pages
+By default, the system header and footer text is white text on an orange background. To customize the message colors:
-You can replace the default message on the sign-in/sign-up page with your own message
-and logo. You can make full use of [Markdown](../user/markdown.md) in the description.
+- Go to the **System header and footer** section and select **Customize colors**.
-The optimal size for the logo is 128 x 128 pixels, but any image can be used (below 1 MB)
-and it is resized automatically. The logo image appears between the title and
-the description, on the left of the sign-up page.
+## Customize your sign-in and register pages
-After you add a message, select **Update appearance settings** at the bottom of the page
-to activate it in the GitLab instance. You can also select **Sign-in page**,
-to review the saved appearance settings:
+Customize the title, description, and logo on the sign-in and register page. By default, the register page logo is located on the left of the page, between the title and the description.
-NOTE:
-You can add also add a [customized help message](settings/help_page.md) below the sign-in message or add [a Sign-in text message](settings/sign_in_restrictions.md#sign-in-information).
+To customize your sign-in and register page titles or descriptions:
-## Progressive Web App
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Go to the **Sign in/Sign up pages** section.
+1. Complete the fields. You can format the page **Title** and **Description** with Markdown.
+1. At the bottom of the page, select **Update appearance settings**.
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/375708) in GitLab 15.9.
+To customize the logo on your sign-in and register pages:
-GitLab can be installed as a [Progressive Web App](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) (PWA).
-Use the Progressive Web App settings to customize its appearance, including its name,
-description, and icon.
+- The file should be less than 1 MB.
+- The image should be 128 pixels high. Images more than 128 px high will be resized.
-### Configure the PWA settings
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Go to the **Sign in/Sign up pages** section.
+1. Under **Logo**, select **Choose file**.
+1. At the bottom of the page, select **Update appearance settings**.
-To configure the PWA settings:
+You can add also add a [customized help message](settings/help_page.md) below the sign-in message or add [a sign-in text message](settings/sign_in_restrictions.md#sign-in-information).
+
+## Customize the Progressive Web App
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/375708) in GitLab 15.9.
+
+Customize the icon, display name, short name, and description for your Progessive Web App (PWA). For more information, see [Progressive Web App](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps).
+
+To add a Progressive Web App name and short name:
1. On the left sidebar, at the bottom, select **Admin Area**.
1. Select **Settings > Appearance**.
-1. Scroll to the **Progressive Web App (PWA)** section.
+1. Go to the **Progressive Web App (PWA)** section.
1. Complete the fields.
- - **Icon**: If you use the standard GitLab icon, it is available in sizes 192x192 pixels,
- 512x512 pixels, also as a maskable icon. If you use a custom icon, it must be in either size
- 192x192 pixels, or 512x512 pixels.
-1. Select **Update appearance settings**.
+ - **Name** is the display name of your PWA.
+ - **Short name** shows on mobile devices and small screens.
+1. At the bottom of the page, select **Update appearance settings**.
+
+To add a Progressive Web App description:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Go to the **Progressive Web App (PWA)** section.
+1. Complete the fields. You can format the **Description** with Markdown.
+1. At the bottom of the page, select **Update appearance settings**.
+
+To customize your Progressive Web App icon:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Go to the **Progressive Web App (PWA)** section.
+1. Under **Icon**, select **Choose file**.
+1. At the bottom of the page, select **Update appearance settings**.
+
+## Add guidelines to the new project page
-## New project pages
+Add a guideline message to the **New project page**. You can format your message with Markdown. The guideline message shows under the **New Project** message and, on the left side of the **New project page**.
-You can add a new project guidelines message to the **New project page** in GitLab.
-You can make full use of [Markdown](../user/markdown.md) in the description:
+To add a guideline message to the **New project page**:
-The message is displayed below the **New Project** message, on the left side
-of the **New project page**.
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Go to the **New project pages** section.
+1. Complete the fields. You can format your guidelines with Markdown.
-After you add a message, select **Update appearance settings** at the bottom of the page
-to activate it in the GitLab instance. You can also select **New project page**,
-which brings you to the new project page so you can review the change.
+## Add profile image guidelines
+
+Add guidelines for profile images.
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Appearance**.
+1. Go to the **Profile image guideline** section.
+1. Complete the fields. You can format your text with Markdown.
## Libravatar
-[Libravatar](https://www.libravatar.org) is supported by GitLab for avatar images, but you must
-[manually enable Libravatar support on the GitLab instance](../administration/libravatar.md) to use the service.
+GitLab supports [Libravatar](https://www.libravatar.org) is for avatar images, but you must manually enable Libravatar support on the GitLab instance. For more information, see [Libravatar](../administration/libravatar.md) to use the service.
<!-- ## Troubleshooting
diff --git a/doc/administration/audit_event_streaming/audit_event_types.md b/doc/administration/audit_event_streaming/audit_event_types.md
index 28cab04553a..ff99fc1f6c6 100644
--- a/doc/administration/audit_event_streaming/audit_event_types.md
+++ b/doc/administration/audit_event_streaming/audit_event_types.md
@@ -64,12 +64,6 @@ Audit event types belong to the following product categories.
| [`update_event_streaming_destination`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74632) | Event triggered when an external audit event destination is updated| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/344664) |
| [`update_instance_event_streaming_destination`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125846) | Event triggered when an instance level external audit event destination is updated| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.2](https://gitlab.com/gitlab-org/gitlab/-/issues/404730) |
-### Authorization
-
-| Name | Description | Saved to database | Streamed | Introduced in |
-|:-----|:------------|:------------------|:---------|:--------------|
-| [`member_role_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137087) | Event triggered when a custom role is created.| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.7](https://gitlab.com/gitlab-org/gitlab/-/issues/388934) |
-
### Code review
| Name | Description | Saved to database | Streamed | Introduced in |
@@ -181,7 +175,7 @@ Audit event types belong to the following product categories.
| [`ci_group_variable_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a group's CI variable is deleted| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) |
| [`ci_group_variable_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a group's CI variable is updated| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) |
| [`ci_instance_variable_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131882) | When an instance level CI variable is created| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.5](https://gitlab.com/gitlab-org/gitlab/-/issues/8070) |
-| [`ci_instance_variable_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131882) | When an instance level CI varialbe is deleted| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.5](https://gitlab.com/gitlab-org/gitlab/-/issues/8070) |
+| [`ci_instance_variable_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131882) | When an instance level CI variable is deleted| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.5](https://gitlab.com/gitlab-org/gitlab/-/issues/8070) |
| [`ci_instance_variable_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131882) | When an instance level CI variable is changed| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.5](https://gitlab.com/gitlab-org/gitlab/-/issues/8070) |
| [`ci_variable_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a CI variable is created at a project level| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) |
| [`ci_variable_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a project's CI variable is deleted| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) |
@@ -233,6 +227,12 @@ Audit event types belong to the following product categories.
| [`feature_flag_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113453) | Triggered when a feature flag is deleted.| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/374109) |
| [`feature_flag_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113453) | Triggered when a feature flag is updated.| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/374109) |
+### Fleet visibility
+
+| Name | Description | Saved to database | Streamed | Introduced in |
+|:-----|:------------|:------------------|:---------|:--------------|
+| [`ci_runner_usage_export`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139578) | Triggered when a runner usage report is generated.| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.8](https://gitlab.com/gitlab-org/gitlab/-/issues/426560) |
+
### Fuzz testing
| Name | Description | Saved to database | Streamed | Introduced in |
@@ -326,6 +326,14 @@ Audit event types belong to the following product categories.
|:-----|:------------|:------------------|:---------|:--------------|
| [`experiment_features_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118222) | Event triggered on toggling setting for enabling experiment AI features| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/404856/) |
+### Permissions
+
+| Name | Description | Saved to database | Streamed | Introduced in |
+|:-----|:------------|:------------------|:---------|:--------------|
+| [`member_role_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137087) | Event triggered when a custom role is created.| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.7](https://gitlab.com/gitlab-org/gitlab/-/issues/388934) |
+| [`member_role_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141630) | Event triggered when a custom role is deleted.| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.9](https://gitlab.com/gitlab-org/gitlab/-/issues/437672) |
+| [`member_role_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141630) | Event triggered when a custom role is updated.| **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.9](https://gitlab.com/gitlab-org/gitlab/-/issues/437672) |
+
### Portfolio management
| Name | Description | Saved to database | Streamed | Introduced in |
diff --git a/doc/administration/audit_event_streaming/index.md b/doc/administration/audit_event_streaming/index.md
index 71ae33b3d87..2cfe71cd4a5 100644
--- a/doc/administration/audit_event_streaming/index.md
+++ b/doc/administration/audit_event_streaming/index.md
@@ -589,11 +589,8 @@ To delete Google Cloud Logging streaming destinations to an instance:
### AWS S3 destinations
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138245) in GitLab 16.7 [with a flag](../feature_flags.md) named `allow_streaming_instance_audit_events_to_amazon_s3`. Disabled by default.
-
-FLAG:
-On self-managed GitLab, by default this feature is not available. To enable the feature, an administrator can [enable the feature flag](../feature_flags.md) named
-`allow_streaming_instance_audit_events_to_amazon_s3`. On GitLab.com, this feature is not available.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138245) in GitLab 16.7 [with a flag](../feature_flags.md) named `allow_streaming_instance_audit_events_to_amazon_s3`. Disabled by default.
+> - [Feature flag `allow_streaming_instance_audit_events_to_amazon_s3`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137391) removed in GitLab 16.8.
Manage AWS S3 destinations for entire instance.
diff --git a/doc/administration/auth/index.md b/doc/administration/auth/index.md
index 95268f6f39b..dd7f9cec77e 100644
--- a/doc/administration/auth/index.md
+++ b/doc/administration/auth/index.md
@@ -1,6 +1,7 @@
---
stage: Govern
group: Authentication
+description: Third-party authentication providers.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/administration/auth/jwt.md b/doc/administration/auth/jwt.md
index f4e7ea09615..4e000576652 100644
--- a/doc/administration/auth/jwt.md
+++ b/doc/administration/auth/jwt.md
@@ -4,7 +4,7 @@ group: Authentication
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Use JWT as an OAuth 2.0 authentication provider **(FREE SELF)**
+# Use JWT as an authentication provider **(FREE SELF)**
To enable the JWT OmniAuth provider, you must register your application with JWT.
JWT provides you with a secret key for you to use.
diff --git a/doc/administration/auth/ldap/index.md b/doc/administration/auth/ldap/index.md
index 62395ebdcd2..49841b5e1be 100644
--- a/doc/administration/auth/ldap/index.md
+++ b/doc/administration/auth/ldap/index.md
@@ -1210,10 +1210,9 @@ For more information on synchronizing users and groups between LDAP and GitLab,
## Move from LDAP to SAML
-1. [Configure SAML](../../../integration/saml.md). Add `auto_link_ldap_user` to:
+1. [Add SAML configuration](../../../integration/saml.md) to:
- [`gitlab.rb` for Linux package installations](../../../integration/saml.html?tab=Linux+package+%28Omnibus%29).
- [`values.yml` for Helm chart installations](../../../integration/saml.html?tab=Helm+chart+%28Kubernetes%29).
- For more information, see the [initial settings for all providers](../../../integration/omniauth.md#configure-initial-settings).
1. Optional. [Disable the LDAP auth from the sign-in page](#disable-ldap-web-sign-in).
diff --git a/doc/administration/auth/ldap/ldap-troubleshooting.md b/doc/administration/auth/ldap/ldap-troubleshooting.md
index 9cd306d979f..eb1ee203469 100644
--- a/doc/administration/auth/ldap/ldap-troubleshooting.md
+++ b/doc/administration/auth/ldap/ldap-troubleshooting.md
@@ -774,10 +774,10 @@ If a connection can't be established, it is likely either because of a problem
with your configuration or a firewall blocking the connection.
- Ensure you don't have a firewall blocking the
-connection, and that the LDAP server is accessible to the GitLab host.
+ connection, and that the LDAP server is accessible to the GitLab host.
- Look for an error message in the Rake check output, which may lead to your LDAP configuration to
-confirm that the configuration values (specifically `host`, `port`, `bind_dn`, and
-`password`) are correct.
+ confirm that the configuration values (specifically `host`, `port`, `bind_dn`, and
+ `password`) are correct.
- Look for [errors](#connection) in [the logs](#gitlab-logs) to further debug connection failures.
If GitLab can successfully connect to LDAP but doesn't return any
diff --git a/doc/administration/auth/oidc.md b/doc/administration/auth/oidc.md
index d20c9ee4412..80c3a21d953 100644
--- a/doc/administration/auth/oidc.md
+++ b/doc/administration/auth/oidc.md
@@ -4,7 +4,7 @@ group: Authentication
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Use OpenID Connect as an OAuth 2.0 authentication provider **(FREE SELF)**
+# Use OpenID Connect as an authentication provider **(FREE SELF)**
You can use GitLab as a client application with [OpenID Connect](https://openid.net/specs/openid-connect-core-1_0.html)
as an OmniAuth provider.
diff --git a/doc/administration/backup_restore/backup_gitlab.md b/doc/administration/backup_restore/backup_gitlab.md
index f38358810e3..ac04709f8b2 100644
--- a/doc/administration/backup_restore/backup_gitlab.md
+++ b/doc/administration/backup_restore/backup_gitlab.md
@@ -136,13 +136,13 @@ For more information, see [Backup and restore Linux package (Omnibus) configurat
:::TabTitle Docker
- Back up the volume where the configuration files are stored. If you created
-the GitLab container according to the documentation, it should be in the
-`/srv/gitlab/config` directory.
+ the GitLab container according to the documentation, it should be in the
+ `/srv/gitlab/config` directory.
:::TabTitle GitLab Helm chart
- Follow the [Back up the secrets](https://docs.gitlab.com/charts/backup-restore/backup.html#back-up-the-secrets)
-instructions.
+ instructions.
::EndTabs
@@ -150,8 +150,8 @@ You may also want to back up any TLS keys and certificates (`/etc/gitlab/ssl`, `
[SSH host keys](https://superuser.com/questions/532040/copy-ssh-keys-from-one-server-to-another-server/532079#532079)
to avoid man-in-the-middle attack warnings if you have to perform a full machine restore.
-In the unlikely event that the secrets file is lost, see the
-[troubleshooting section](#when-the-secrets-file-is-lost).
+In the unlikely event that the secrets file is lost, see
+[When the secrets file is lost](../../administration/backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost).
### Other data
@@ -656,7 +656,8 @@ sudo -u git -H bundle exec rake gitlab:backup:create REPOSITORIES_STORAGES=stora
#### Back up specific repositories
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88094) in GitLab 15.1.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88094) in GitLab 15.1.
+> - [Skipping specific repositories added](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121865) in GitLab 16.1.
You can back up specific repositories using the `REPOSITORIES_PATHS` option.
Similarly, you can use `SKIP_REPOSITORIES_PATHS` to skip certain repositories.
@@ -1451,618 +1452,3 @@ There are a few possible downsides to this:
There is an **experimental** script that attempts to automate this process in
[the Geo team Runbooks project](https://gitlab.com/gitlab-org/geo-team/runbooks/-/tree/main/experimental-online-backup-through-rsync).
-
-## Troubleshooting
-
-The following are possible problems you might encounter, along with potential
-solutions.
-
-### When the secrets file is lost
-
-If you didn't [back up the secrets file](#storing-configuration-files), you
-must complete several steps to get GitLab working properly again.
-
-The secrets file is responsible for storing the encryption key for the columns
-that contain required, sensitive information. If the key is lost, GitLab can't
-decrypt those columns, preventing access to the following items:
-
-- [CI/CD variables](../../ci/variables/index.md)
-- [Kubernetes / GCP integration](../../user/infrastructure/clusters/index.md)
-- [Custom Pages domains](../../user/project/pages/custom_domains_ssl_tls_certification/index.md)
-- [Project error tracking](../../operations/error_tracking.md)
-- [Runner authentication](../../ci/runners/index.md)
-- [Project mirroring](../../user/project/repository/mirror/index.md)
-- [Integrations](../../user/project/integrations/index.md)
-- [Web hooks](../../user/project/integrations/webhooks.md)
-
-In cases like CI/CD variables and runner authentication, you can experience
-unexpected behaviors, such as:
-
-- Stuck jobs.
-- 500 errors.
-
-In this case, you must reset all the tokens for CI/CD variables and
-runner authentication, which is described in more detail in the following
-sections. After resetting the tokens, you should be able to visit your project
-and the jobs begin running again.
-
-WARNING:
-The steps in this section can potentially lead to **data loss** on the above listed items.
-Consider opening a [Support Request](https://support.gitlab.com/hc/en-us/requests/new) if you're a Premium or Ultimate customer.
-
-#### Verify that all values can be decrypted
-
-You can determine if your database contains values that can't be decrypted by using a
-[Rake task](../raketasks/check.md#verify-database-values-can-be-decrypted-using-the-current-secrets).
-
-#### Take a backup
-
-You must directly modify GitLab data to work around your lost secrets file.
-
-WARNING:
-Be sure to create a full database backup before attempting any changes.
-
-#### Disable user two-factor authentication (2FA)
-
-Users with 2FA enabled can't sign in to GitLab. In that case, you must
-[disable 2FA for everyone](../../security/two_factor_authentication.md#for-all-users),
-after which users must reactivate 2FA.
-
-#### Reset CI/CD variables
-
-1. Enter the database console:
-
- For the Linux package (Omnibus) GitLab 14.1 and earlier:
-
- ```shell
- sudo gitlab-rails dbconsole
- ```
-
- For the Linux package (Omnibus) GitLab 14.2 and later:
-
- ```shell
- sudo gitlab-rails dbconsole --database main
- ```
-
- For self-compiled installations, GitLab 14.1 and earlier:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production
- ```
-
- For self-compiled installations, GitLab 14.2 and later:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production --database main
- ```
-
-1. Examine the `ci_group_variables` and `ci_variables` tables:
-
- ```sql
- SELECT * FROM public."ci_group_variables";
- SELECT * FROM public."ci_variables";
- ```
-
- These are the variables that you need to delete.
-
-1. Delete all variables:
-
- ```sql
- DELETE FROM ci_group_variables;
- DELETE FROM ci_variables;
- ```
-
-1. If you know the specific group or project from which you wish to delete variables, you can include a `WHERE` statement to specify that in your `DELETE`:
-
- ```sql
- DELETE FROM ci_group_variables WHERE group_id = <GROUPID>;
- DELETE FROM ci_variables WHERE project_id = <PROJECTID>;
- ```
-
-You may need to reconfigure or restart GitLab for the changes to take effect.
-
-#### Reset runner registration tokens
-
-1. Enter the database console:
-
- For the Linux package (Omnibus) GitLab 14.1 and earlier:
-
- ```shell
- sudo gitlab-rails dbconsole
- ```
-
- For the Linux package (Omnibus) GitLab 14.2 and later:
-
- ```shell
- sudo gitlab-rails dbconsole --database main
- ```
-
- For self-compiled installations, GitLab 14.1 and earlier:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production
- ```
-
- For self-compiled installations, GitLab 14.2 and later:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production --database main
- ```
-
-1. Clear all tokens for projects, groups, and the entire instance:
-
- WARNING:
- The final `UPDATE` operation stops the runners from being able to pick
- up new jobs. You must register new runners.
-
- ```sql
- -- Clear project tokens
- UPDATE projects SET runners_token = null, runners_token_encrypted = null;
- -- Clear group tokens
- UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
- -- Clear instance tokens
- UPDATE application_settings SET runners_registration_token_encrypted = null;
- -- Clear key used for JWT authentication
- -- This may break the $CI_JWT_TOKEN job variable:
- -- https://gitlab.com/gitlab-org/gitlab/-/issues/325965
- UPDATE application_settings SET encrypted_ci_jwt_signing_key = null;
- -- Clear runner tokens
- UPDATE ci_runners SET token = null, token_encrypted = null;
- ```
-
-#### Reset pending pipeline jobs
-
-1. Enter the database console:
-
- For the Linux package (Omnibus) GitLab 14.1 and earlier:
-
- ```shell
- sudo gitlab-rails dbconsole
- ```
-
- For the Linux package (Omnibus) GitLab 14.2 and later:
-
- ```shell
- sudo gitlab-rails dbconsole --database main
- ```
-
- For self-compiled installations, GitLab 14.1 and earlier:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production
- ```
-
- For self-compiled installations, GitLab 14.2 and later:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production --database main
- ```
-
-1. Clear all the tokens for pending jobs:
-
- For GitLab 15.3 and earlier:
-
- ```sql
- -- Clear build tokens
- UPDATE ci_builds SET token = null, token_encrypted = null;
- ```
-
- For GitLab 15.4 and later:
-
- ```sql
- -- Clear build tokens
- UPDATE ci_builds SET token_encrypted = null;
- ```
-
-A similar strategy can be employed for the remaining features. By removing the
-data that can't be decrypted, GitLab can be returned to operation, and the
-lost data can be manually replaced.
-
-#### Fix integrations and webhooks
-
-If you've lost your secrets, the [integrations settings](../../user/project/integrations/index.md)
-and [webhooks settings](../../user/project/integrations/webhooks.md) pages might display `500` error messages. Lost secrets might also produce `500` errors when you try to access a repository in a project with a previously configured integration or webhook.
-
-The fix is to truncate the affected tables (those containing encrypted columns).
-This deletes all your configured integrations, webhooks, and related metadata.
-You should verify that the secrets are the root cause before deleting any data.
-
-1. Enter the database console:
-
- For the Linux package (Omnibus) GitLab 14.1 and earlier:
-
- ```shell
- sudo gitlab-rails dbconsole
- ```
-
- For the Linux package (Omnibus) GitLab 14.2 and later:
-
- ```shell
- sudo gitlab-rails dbconsole --database main
- ```
-
- For self-compiled installations, GitLab 14.1 and earlier:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production
- ```
-
- For self-compiled installations, GitLab 14.2 and later:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production --database main
- ```
-
-1. Truncate the following tables:
-
- ```sql
- -- truncate web_hooks table
- TRUNCATE integrations, chat_names, issue_tracker_data, jira_tracker_data, slack_integrations, web_hooks, zentao_tracker_data, web_hook_logs CASCADE;
- ```
-
-### Container registry push failures after restoring from a backup
-
-If you use the [container registry](../../user/packages/container_registry/index.md),
-pushes to the registry may fail after restoring your backup on a Linux package (Omnibus)
-instance after restoring the registry data.
-
-These failures mention permission issues in the registry logs, similar to:
-
-```plaintext
-level=error
-msg="response completed with error"
-err.code=unknown
-err.detail="filesystem: mkdir /var/opt/gitlab/gitlab-rails/shared/registry/docker/registry/v2/repositories/...: permission denied"
-err.message="unknown error"
-```
-
-This issue is caused by the restore running as the unprivileged user `git`,
-which is unable to assign the correct ownership to the registry files during
-the restore process ([issue #62759](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/62759 "Incorrect permissions on registry filesystem after restore")).
-
-To get your registry working again:
-
-```shell
-sudo chown -R registry:registry /var/opt/gitlab/gitlab-rails/shared/registry/docker
-```
-
-If you changed the default file system location for the registry, run `chown`
-against your custom location, instead of `/var/opt/gitlab/gitlab-rails/shared/registry/docker`.
-
-### Backup fails to complete with Gzip error
-
-When running the backup, you may receive a Gzip error message:
-
-```shell
-sudo /opt/gitlab/bin/gitlab-backup create
-...
-Dumping ...
-...
-gzip: stdout: Input/output error
-
-Backup failed
-```
-
-If this happens, examine the following:
-
-- Confirm there is sufficient disk space for the Gzip operation. It's not uncommon for backups that
- use the [default strategy](#backup-strategy-option) to require half the instance size
- in free disk space during backup creation.
-- If NFS is being used, check if the mount option `timeout` is set. The
- default is `600`, and changing this to smaller values results in this error.
-
-### Backup fails with `File name too long` error
-
-During backup, you can get the `File name too long` error ([issue #354984](https://gitlab.com/gitlab-org/gitlab/-/issues/354984)). For example:
-
-```plaintext
-Problem: <class 'OSError: [Errno 36] File name too long:
-```
-
-This problem stops the backup script from completing. To fix this problem, you must truncate the file names causing the problem. A maximum of 246 characters, including the file extension, is permitted.
-
-WARNING:
-The steps in this section can potentially lead to **data loss**. All steps must be followed strictly in the order given.
-Consider opening a [Support Request](https://support.gitlab.com/hc/en-us/requests/new) if you're a Premium or Ultimate customer.
-
-Truncating file names to resolve the error involves:
-
-- Cleaning up remote uploaded files that aren't tracked in the database.
-- Truncating the file names in the database.
-- Rerunning the backup task.
-
-#### Clean up remote uploaded files
-
-A [known issue](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/45425) caused object store uploads to remain after a parent resource was deleted. This issue was [resolved](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18698).
-
-To fix these files, you must clean up all remote uploaded files that are in the storage but not tracked in the `uploads` database table.
-
-1. List all the object store upload files that can be moved to a lost and found directory if they don't exist in the GitLab database:
-
- ```shell
- bundle exec rake gitlab:cleanup:remote_upload_files RAILS_ENV=production
- ```
-
-1. If you are sure you want to delete these files and remove all non-referenced uploaded files, run:
-
- WARNING:
- The following action is **irreversible**.
-
- ```shell
- bundle exec rake gitlab:cleanup:remote_upload_files RAILS_ENV=production DRY_RUN=false
- ```
-
-#### Truncate the file names referenced by the database
-
-You must truncate the files referenced by the database that are causing the problem. The file names referenced by the database are stored:
-
-- In the `uploads` table.
-- In the references found. Any reference found from other database tables and columns.
-- On the file system.
-
-Truncate the file names in the `uploads` table:
-
-1. Enter the database console:
-
- For the Linux package (Omnibus) GitLab 14.2 and later:
-
- ```shell
- sudo gitlab-rails dbconsole --database main
- ```
-
- For the Linux package (Omnibus) GitLab 14.1 and earlier:
-
- ```shell
- sudo gitlab-rails dbconsole
- ```
-
- For self-compiled installations, GitLab 14.2 and later:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production --database main
- ```
-
- For self-compiled installations, GitLab 14.1 and earlier:
-
- ```shell
- sudo -u git -H bundle exec rails dbconsole -e production
- ```
-
-1. Search the `uploads` table for file names longer than 246 characters:
-
- The following query selects the `uploads` records with file names longer than 246 characters in batches of 0 to 10000. This improves the performance on large GitLab instances with tables having thousand of records.
-
- ```sql
- CREATE TEMP TABLE uploads_with_long_filenames AS
- SELECT ROW_NUMBER() OVER(ORDER BY id) row_id, id, path
- FROM uploads AS u
- WHERE LENGTH((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1]) > 246;
-
- CREATE INDEX ON uploads_with_long_filenames(row_id);
-
- SELECT
- u.id,
- u.path,
- -- Current file name
- (regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1] AS current_filename,
- -- New file name
- CONCAT(
- LEFT(SPLIT_PART((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1], '.', 1), 242),
- COALESCE(SUBSTRING((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1] FROM '\.(?:.(?!\.))+$'))
- ) AS new_filename,
- -- New path
- CONCAT(
- COALESCE((regexp_match(u.path, '(.*\/).*'))[1], ''),
- CONCAT(
- LEFT(SPLIT_PART((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1], '.', 1), 242),
- COALESCE(SUBSTRING((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1] FROM '\.(?:.(?!\.))+$'))
- )
- ) AS new_path
- FROM uploads_with_long_filenames AS u
- WHERE u.row_id > 0 AND u.row_id <= 10000;
- ```
-
- Output example:
-
- ```postgresql
- -[ RECORD 1 ]----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- id | 34
- path | public/@hashed/loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisit.txt
- current_filename | loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisit.txt
- new_filename | loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelits.txt
- new_path | public/@hashed/loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelits.txt
- ```
-
- Where:
-
- - `current_filename`: a file name that is currently more than 246 characters long.
- - `new_filename`: a file name that has been truncated to 246 characters maximum.
- - `new_path`: new path considering the `new_filename` (truncated).
-
- After you validate the batch results, you must change the batch size (`row_id`) using the following sequence of numbers (10000 to 20000). Repeat this process until you reach the last record in the `uploads` table.
-
-1. Rename the files found in the `uploads` table from long file names to new truncated file names. The following query rolls back the update so you can check the results safely in a transaction wrapper:
-
- ```sql
- CREATE TEMP TABLE uploads_with_long_filenames AS
- SELECT ROW_NUMBER() OVER(ORDER BY id) row_id, path, id
- FROM uploads AS u
- WHERE LENGTH((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1]) > 246;
-
- CREATE INDEX ON uploads_with_long_filenames(row_id);
-
- BEGIN;
- WITH updated_uploads AS (
- UPDATE uploads
- SET
- path =
- CONCAT(
- COALESCE((regexp_match(updatable_uploads.path, '(.*\/).*'))[1], ''),
- CONCAT(
- LEFT(SPLIT_PART((regexp_match(updatable_uploads.path, '[^\\/:*?"<>|\r\n]+$'))[1], '.', 1), 242),
- COALESCE(SUBSTRING((regexp_match(updatable_uploads.path, '[^\\/:*?"<>|\r\n]+$'))[1] FROM '\.(?:.(?!\.))+$'))
- )
- )
- FROM
- uploads_with_long_filenames AS updatable_uploads
- WHERE
- uploads.id = updatable_uploads.id
- AND updatable_uploads.row_id > 0 AND updatable_uploads.row_id <= 10000
- RETURNING uploads.*
- )
- SELECT id, path FROM updated_uploads;
- ROLLBACK;
- ```
-
- After you validate the batch update results, you must change the batch size (`row_id`) using the following sequence of numbers (10000 to 20000). Repeat this process until you reach the last record in the `uploads` table.
-
-1. Validate that the new file names from the previous query are the expected ones. If you are sure you want to truncate the records found in the previous step to 246 characters, run the following:
-
- WARNING:
- The following action is **irreversible**.
-
- ```sql
- CREATE TEMP TABLE uploads_with_long_filenames AS
- SELECT ROW_NUMBER() OVER(ORDER BY id) row_id, path, id
- FROM uploads AS u
- WHERE LENGTH((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1]) > 246;
-
- CREATE INDEX ON uploads_with_long_filenames(row_id);
-
- UPDATE uploads
- SET
- path =
- CONCAT(
- COALESCE((regexp_match(updatable_uploads.path, '(.*\/).*'))[1], ''),
- CONCAT(
- LEFT(SPLIT_PART((regexp_match(updatable_uploads.path, '[^\\/:*?"<>|\r\n]+$'))[1], '.', 1), 242),
- COALESCE(SUBSTRING((regexp_match(updatable_uploads.path, '[^\\/:*?"<>|\r\n]+$'))[1] FROM '\.(?:.(?!\.))+$'))
- )
- )
- FROM
- uploads_with_long_filenames AS updatable_uploads
- WHERE
- uploads.id = updatable_uploads.id
- AND updatable_uploads.row_id > 0 AND updatable_uploads.row_id <= 10000;
- ```
-
- After you finish the batch update, you must change the batch size (`updatable_uploads.row_id`) using the following sequence of numbers (10000 to 20000). Repeat this process until you reach the last record in the `uploads` table.
-
-Truncate the file names in the references found:
-
-1. Check if those records are referenced somewhere. One way to do this is to dump the database and search for the parent directory name and file name:
-
- 1. To dump your database, you can use the following command as an example:
-
- ```shell
- pg_dump -h /var/opt/gitlab/postgresql/ -d gitlabhq_production > gitlab-dump.tmp
- ```
-
- 1. Then you can search for the references using the `grep` command. Combining the parent directory and the file name can be a good idea. For example:
-
- ```shell
- grep public/alongfilenamehere.txt gitlab-dump.tmp
- ```
-
-1. Replace those long file names using the new file names obtained from querying the `uploads` table.
-
-Truncate the file names on the file system. You must manually rename the files in your file system to the new file names obtained from querying the `uploads` table.
-
-#### Re-run the backup task
-
-After following all the previous steps, re-run the backup task.
-
-### Restoring database backup fails when `pg_stat_statements` was previously enabled
-
-The GitLab backup of the PostgreSQL database includes all SQL statements required to enable extensions that were
-previously enabled in the database.
-
-The `pg_stat_statements` extension can only be enabled or disabled by a PostgreSQL user with `superuser` role.
-As the restore process uses a database user with limited permissions, it can't execute the following SQL statements:
-
-```sql
-DROP EXTENSION IF EXISTS pg_stat_statements;
-CREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;
-```
-
-When trying to restore the backup in a PostgreSQL instance that doesn't have the `pg_stats_statements` extension,
-the following error message is displayed:
-
-```plaintext
-ERROR: permission denied to create extension "pg_stat_statements"
-HINT: Must be superuser to create this extension.
-ERROR: extension "pg_stat_statements" does not exist
-```
-
-When trying to restore in an instance that has the `pg_stats_statements` extension enabled, the cleaning up step
-fails with an error message similar to the following:
-
-```plaintext
-rake aborted!
-ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of view pg_stat_statements
-/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:42:in `block (4 levels) in <top (required)>'
-/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `each'
-/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `block (3 levels) in <top (required)>'
-/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:71:in `block (3 levels) in <top (required)>'
-/opt/gitlab/embedded/bin/bundle:23:in `load'
-/opt/gitlab/embedded/bin/bundle:23:in `<main>'
-Caused by:
-PG::InsufficientPrivilege: ERROR: must be owner of view pg_stat_statements
-/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:42:in `block (4 levels) in <top (required)>'
-/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `each'
-/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `block (3 levels) in <top (required)>'
-/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:71:in `block (3 levels) in <top (required)>'
-/opt/gitlab/embedded/bin/bundle:23:in `load'
-/opt/gitlab/embedded/bin/bundle:23:in `<main>'
-Tasks: TOP => gitlab:db:drop_tables
-(See full trace by running task with --trace)
-```
-
-#### Prevent the dump file to include `pg_stat_statements`
-
-To prevent the inclusion of the extension in the PostgreSQL dump file that is part of the backup bundle,
-enable the extension in any schema except the `public` schema:
-
-```sql
-CREATE SCHEMA adm;
-CREATE EXTENSION pg_stat_statements SCHEMA adm;
-```
-
-If the extension was previously enabled in the `public` schema, move it to a new one:
-
-```sql
-CREATE SCHEMA adm;
-ALTER EXTENSION pg_stat_statements SET SCHEMA adm;
-```
-
-To query the `pg_stat_statements` data after changing the schema, prefix the view name with the new schema:
-
-```sql
-SELECT * FROM adm.pg_stat_statements limit 0;
-```
-
-To make it compatible with third-party monitoring solutions that expect it to be enabled in the `public` schema,
-you need to include it in the `search_path`:
-
-```sql
-set search_path to public,adm;
-```
-
-#### Fix an existing dump file to remove references to `pg_stat_statements`
-
-To fix an existing backup file, do the following changes:
-
-1. Extract from the backup the following file: `db/database.sql.gz`.
-1. Decompress the file or use an editor that is capable of handling it compressed.
-1. Remove the following lines, or similar ones:
-
- ```sql
- CREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;
- ```
-
- ```sql
- COMMENT ON EXTENSION pg_stat_statements IS 'track planning and execution statistics of all SQL statements executed';
- ```
-
-1. Save the changes and recompress the file.
-1. Update the backup file with the modified `db/database.sql.gz`.
diff --git a/doc/administration/backup_restore/restore_gitlab.md b/doc/administration/backup_restore/restore_gitlab.md
index 2dd85602f99..0b5bf3cc0ff 100644
--- a/doc/administration/backup_restore/restore_gitlab.md
+++ b/doc/administration/backup_restore/restore_gitlab.md
@@ -38,8 +38,7 @@ before restoring the backup.
To restore a backup, **you must also restore the GitLab secrets**.
These include the database encryption key, [CI/CD variables](../../ci/variables/index.md), and
variables used for [two-factor authentication](../../user/profile/account/two_factor_authentication.md).
-Without the keys, [multiple issues occur](backup_gitlab.md#when-the-secrets-file-is-lost),
-including loss of access by users with [two-factor authentication enabled](../../user/profile/account/two_factor_authentication.md),
+Without the keys, [multiple issues occur](../../administration/backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost), including loss of access by users with [two-factor authentication enabled](../../user/profile/account/two_factor_authentication.md),
and GitLab Runners cannot log in.
Restore:
@@ -282,7 +281,8 @@ project or group from there:
the backed-up instance from which you want to restore.
1. [Restore the backup](#restore-gitlab) into this new instance, then
export your [project](../../user/project/settings/import_export.md)
- or [group](../../user/group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated). For more information about what is and isn't exported, see the export feature's documentation.
+ or [group](../../user/project/settings/import_export.md#migrate-groups-by-uploading-an-export-file-deprecated). For
+ more information about what is and isn't exported, see the export feature's documentation.
1. After the export is complete, go to the old instance and then import it.
1. After importing the projects or groups that you wanted is complete, you may
delete the new, temporary GitLab instance.
diff --git a/doc/administration/backup_restore/troubleshooting_backup_gitlab.md b/doc/administration/backup_restore/troubleshooting_backup_gitlab.md
new file mode 100644
index 00000000000..83a02b52741
--- /dev/null
+++ b/doc/administration/backup_restore/troubleshooting_backup_gitlab.md
@@ -0,0 +1,619 @@
+---
+stage: Systems
+group: Geo
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Troubleshooting GitLab backups
+
+When you back up GitLab, you might encounter the following issues.
+
+## When the secrets file is lost
+
+If you didn't [back up the secrets file](../../administration/backup_restore/backup_gitlab.md#storing-configuration-files), you
+must complete several steps to get GitLab working properly again.
+
+The secrets file is responsible for storing the encryption key for the columns
+that contain required, sensitive information. If the key is lost, GitLab can't
+decrypt those columns, preventing access to the following items:
+
+- [CI/CD variables](../../ci/variables/index.md)
+- [Kubernetes / GCP integration](../../user/infrastructure/clusters/index.md)
+- [Custom Pages domains](../../user/project/pages/custom_domains_ssl_tls_certification/index.md)
+- [Project error tracking](../../operations/error_tracking.md)
+- [Runner authentication](../../ci/runners/index.md)
+- [Project mirroring](../../user/project/repository/mirror/index.md)
+- [Integrations](../../user/project/integrations/index.md)
+- [Web hooks](../../user/project/integrations/webhooks.md)
+
+In cases like CI/CD variables and runner authentication, you can experience
+unexpected behaviors, such as:
+
+- Stuck jobs.
+- 500 errors.
+
+In this case, you must reset all the tokens for CI/CD variables and
+runner authentication, which is described in more detail in the following
+sections. After resetting the tokens, you should be able to visit your project
+and the jobs begin running again.
+
+WARNING:
+The steps in this section can potentially lead to **data loss** on the above listed items.
+Consider opening a [Support Request](https://support.gitlab.com/hc/en-us/requests/new) if you're a Premium or Ultimate customer.
+
+### Verify that all values can be decrypted
+
+You can determine if your database contains values that can't be decrypted by using a
+[Rake task](../raketasks/check.md#verify-database-values-can-be-decrypted-using-the-current-secrets).
+
+### Take a backup
+
+You must directly modify GitLab data to work around your lost secrets file.
+
+WARNING:
+Be sure to create a full database backup before attempting any changes.
+
+### Disable user two-factor authentication (2FA)
+
+Users with 2FA enabled can't sign in to GitLab. In that case, you must
+[disable 2FA for everyone](../../security/two_factor_authentication.md#for-all-users),
+after which users must reactivate 2FA.
+
+### Reset CI/CD variables
+
+1. Enter the database console:
+
+ For the Linux package (Omnibus) GitLab 14.1 and earlier:
+
+ ```shell
+ sudo gitlab-rails dbconsole
+ ```
+
+ For the Linux package (Omnibus) GitLab 14.2 and later:
+
+ ```shell
+ sudo gitlab-rails dbconsole --database main
+ ```
+
+ For self-compiled installations, GitLab 14.1 and earlier:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production
+ ```
+
+ For self-compiled installations, GitLab 14.2 and later:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production --database main
+ ```
+
+1. Examine the `ci_group_variables` and `ci_variables` tables:
+
+ ```sql
+ SELECT * FROM public."ci_group_variables";
+ SELECT * FROM public."ci_variables";
+ ```
+
+ These are the variables that you need to delete.
+
+1. Delete all variables:
+
+ ```sql
+ DELETE FROM ci_group_variables;
+ DELETE FROM ci_variables;
+ ```
+
+1. If you know the specific group or project from which you wish to delete variables, you can include a `WHERE` statement to specify that in your `DELETE`:
+
+ ```sql
+ DELETE FROM ci_group_variables WHERE group_id = <GROUPID>;
+ DELETE FROM ci_variables WHERE project_id = <PROJECTID>;
+ ```
+
+You may need to reconfigure or restart GitLab for the changes to take effect.
+
+### Reset runner registration tokens
+
+1. Enter the database console:
+
+ For the Linux package (Omnibus) GitLab 14.1 and earlier:
+
+ ```shell
+ sudo gitlab-rails dbconsole
+ ```
+
+ For the Linux package (Omnibus) GitLab 14.2 and later:
+
+ ```shell
+ sudo gitlab-rails dbconsole --database main
+ ```
+
+ For self-compiled installations, GitLab 14.1 and earlier:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production
+ ```
+
+ For self-compiled installations, GitLab 14.2 and later:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production --database main
+ ```
+
+1. Clear all tokens for projects, groups, and the entire instance:
+
+ WARNING:
+ The final `UPDATE` operation stops the runners from being able to pick
+ up new jobs. You must register new runners.
+
+ ```sql
+ -- Clear project tokens
+ UPDATE projects SET runners_token = null, runners_token_encrypted = null;
+ -- Clear group tokens
+ UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
+ -- Clear instance tokens
+ UPDATE application_settings SET runners_registration_token_encrypted = null;
+ -- Clear key used for JWT authentication
+ -- This may break the $CI_JWT_TOKEN job variable:
+ -- https://gitlab.com/gitlab-org/gitlab/-/issues/325965
+ UPDATE application_settings SET encrypted_ci_jwt_signing_key = null;
+ -- Clear runner tokens
+ UPDATE ci_runners SET token = null, token_encrypted = null;
+ ```
+
+### Reset pending pipeline jobs
+
+1. Enter the database console:
+
+ For the Linux package (Omnibus) GitLab 14.1 and earlier:
+
+ ```shell
+ sudo gitlab-rails dbconsole
+ ```
+
+ For the Linux package (Omnibus) GitLab 14.2 and later:
+
+ ```shell
+ sudo gitlab-rails dbconsole --database main
+ ```
+
+ For self-compiled installations, GitLab 14.1 and earlier:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production
+ ```
+
+ For self-compiled installations, GitLab 14.2 and later:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production --database main
+ ```
+
+1. Clear all the tokens for pending jobs:
+
+ For GitLab 15.3 and earlier:
+
+ ```sql
+ -- Clear build tokens
+ UPDATE ci_builds SET token = null, token_encrypted = null;
+ ```
+
+ For GitLab 15.4 and later:
+
+ ```sql
+ -- Clear build tokens
+ UPDATE ci_builds SET token_encrypted = null;
+ ```
+
+A similar strategy can be employed for the remaining features. By removing the
+data that can't be decrypted, GitLab can be returned to operation, and the
+lost data can be manually replaced.
+
+### Fix integrations and webhooks
+
+If you've lost your secrets, the [integrations settings](../../user/project/integrations/index.md)
+and [webhooks settings](../../user/project/integrations/webhooks.md) pages might display `500` error messages. Lost secrets might also produce `500` errors when you try to access a repository in a project with a previously configured integration or webhook.
+
+The fix is to truncate the affected tables (those containing encrypted columns).
+This deletes all your configured integrations, webhooks, and related metadata.
+You should verify that the secrets are the root cause before deleting any data.
+
+1. Enter the database console:
+
+ For the Linux package (Omnibus) GitLab 14.1 and earlier:
+
+ ```shell
+ sudo gitlab-rails dbconsole
+ ```
+
+ For the Linux package (Omnibus) GitLab 14.2 and later:
+
+ ```shell
+ sudo gitlab-rails dbconsole --database main
+ ```
+
+ For self-compiled installations, GitLab 14.1 and earlier:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production
+ ```
+
+ For self-compiled installations, GitLab 14.2 and later:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production --database main
+ ```
+
+1. Truncate the following tables:
+
+ ```sql
+ -- truncate web_hooks table
+ TRUNCATE integrations, chat_names, issue_tracker_data, jira_tracker_data, slack_integrations, web_hooks, zentao_tracker_data, web_hook_logs CASCADE;
+ ```
+
+## Container registry push failures after restoring from a backup
+
+If you use the [container registry](../../user/packages/container_registry/index.md),
+pushes to the registry may fail after restoring your backup on a Linux package (Omnibus)
+instance after restoring the registry data.
+
+These failures mention permission issues in the registry logs, similar to:
+
+```plaintext
+level=error
+msg="response completed with error"
+err.code=unknown
+err.detail="filesystem: mkdir /var/opt/gitlab/gitlab-rails/shared/registry/docker/registry/v2/repositories/...: permission denied"
+err.message="unknown error"
+```
+
+This issue is caused by the restore running as the unprivileged user `git`,
+which is unable to assign the correct ownership to the registry files during
+the restore process ([issue #62759](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/62759 "Incorrect permissions on registry filesystem after restore")).
+
+To get your registry working again:
+
+```shell
+sudo chown -R registry:registry /var/opt/gitlab/gitlab-rails/shared/registry/docker
+```
+
+If you changed the default file system location for the registry, run `chown`
+against your custom location, instead of `/var/opt/gitlab/gitlab-rails/shared/registry/docker`.
+
+## Backup fails to complete with Gzip error
+
+When running the backup, you may receive a Gzip error message:
+
+```shell
+sudo /opt/gitlab/bin/gitlab-backup create
+...
+Dumping ...
+...
+gzip: stdout: Input/output error
+
+Backup failed
+```
+
+If this happens, examine the following:
+
+- Confirm there is sufficient disk space for the Gzip operation. It's not uncommon for backups that
+ use the [default strategy](../../administration/backup_restore/backup_gitlab.md#backup-strategy-option) to require half the instance size
+ in free disk space during backup creation.
+- If NFS is being used, check if the mount option `timeout` is set. The
+ default is `600`, and changing this to smaller values results in this error.
+
+## Backup fails with `File name too long` error
+
+During backup, you can get the `File name too long` error ([issue #354984](https://gitlab.com/gitlab-org/gitlab/-/issues/354984)). For example:
+
+```plaintext
+Problem: <class 'OSError: [Errno 36] File name too long:
+```
+
+This problem stops the backup script from completing. To fix this problem, you must truncate the file names causing the problem. A maximum of 246 characters, including the file extension, is permitted.
+
+WARNING:
+The steps in this section can potentially lead to **data loss**. All steps must be followed strictly in the order given.
+Consider opening a [Support Request](https://support.gitlab.com/hc/en-us/requests/new) if you're a Premium or Ultimate customer.
+
+Truncating file names to resolve the error involves:
+
+- Cleaning up remote uploaded files that aren't tracked in the database.
+- Truncating the file names in the database.
+- Rerunning the backup task.
+
+### Clean up remote uploaded files
+
+A [known issue](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/45425) caused object store uploads to remain after a parent resource was deleted. This issue was [resolved](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18698).
+
+To fix these files, you must clean up all remote uploaded files that are in the storage but not tracked in the `uploads` database table.
+
+1. List all the object store upload files that can be moved to a lost and found directory if they don't exist in the GitLab database:
+
+ ```shell
+ bundle exec rake gitlab:cleanup:remote_upload_files RAILS_ENV=production
+ ```
+
+1. If you are sure you want to delete these files and remove all non-referenced uploaded files, run:
+
+ WARNING:
+ The following action is **irreversible**.
+
+ ```shell
+ bundle exec rake gitlab:cleanup:remote_upload_files RAILS_ENV=production DRY_RUN=false
+ ```
+
+### Truncate the file names referenced by the database
+
+You must truncate the files referenced by the database that are causing the problem. The file names referenced by the database are stored:
+
+- In the `uploads` table.
+- In the references found. Any reference found from other database tables and columns.
+- On the file system.
+
+Truncate the file names in the `uploads` table:
+
+1. Enter the database console:
+
+ For the Linux package (Omnibus) GitLab 14.2 and later:
+
+ ```shell
+ sudo gitlab-rails dbconsole --database main
+ ```
+
+ For the Linux package (Omnibus) GitLab 14.1 and earlier:
+
+ ```shell
+ sudo gitlab-rails dbconsole
+ ```
+
+ For self-compiled installations, GitLab 14.2 and later:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production --database main
+ ```
+
+ For self-compiled installations, GitLab 14.1 and earlier:
+
+ ```shell
+ sudo -u git -H bundle exec rails dbconsole -e production
+ ```
+
+1. Search the `uploads` table for file names longer than 246 characters:
+
+ The following query selects the `uploads` records with file names longer than 246 characters in batches of 0 to 10000. This improves the performance on large GitLab instances with tables having thousand of records.
+
+ ```sql
+ CREATE TEMP TABLE uploads_with_long_filenames AS
+ SELECT ROW_NUMBER() OVER(ORDER BY id) row_id, id, path
+ FROM uploads AS u
+ WHERE LENGTH((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1]) > 246;
+
+ CREATE INDEX ON uploads_with_long_filenames(row_id);
+
+ SELECT
+ u.id,
+ u.path,
+ -- Current file name
+ (regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1] AS current_filename,
+ -- New file name
+ CONCAT(
+ LEFT(SPLIT_PART((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1], '.', 1), 242),
+ COALESCE(SUBSTRING((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1] FROM '\.(?:.(?!\.))+$'))
+ ) AS new_filename,
+ -- New path
+ CONCAT(
+ COALESCE((regexp_match(u.path, '(.*\/).*'))[1], ''),
+ CONCAT(
+ LEFT(SPLIT_PART((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1], '.', 1), 242),
+ COALESCE(SUBSTRING((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1] FROM '\.(?:.(?!\.))+$'))
+ )
+ ) AS new_path
+ FROM uploads_with_long_filenames AS u
+ WHERE u.row_id > 0 AND u.row_id <= 10000;
+ ```
+
+ Output example:
+
+ ```postgresql
+ -[ RECORD 1 ]----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ id | 34
+ path | public/@hashed/loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisit.txt
+ current_filename | loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisit.txt
+ new_filename | loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelits.txt
+ new_path | public/@hashed/loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelits.txt
+ ```
+
+ Where:
+
+ - `current_filename`: a file name that is currently more than 246 characters long.
+ - `new_filename`: a file name that has been truncated to 246 characters maximum.
+ - `new_path`: new path considering the `new_filename` (truncated).
+
+ After you validate the batch results, you must change the batch size (`row_id`) using the following sequence of numbers (10000 to 20000). Repeat this process until you reach the last record in the `uploads` table.
+
+1. Rename the files found in the `uploads` table from long file names to new truncated file names. The following query rolls back the update so you can check the results safely in a transaction wrapper:
+
+ ```sql
+ CREATE TEMP TABLE uploads_with_long_filenames AS
+ SELECT ROW_NUMBER() OVER(ORDER BY id) row_id, path, id
+ FROM uploads AS u
+ WHERE LENGTH((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1]) > 246;
+
+ CREATE INDEX ON uploads_with_long_filenames(row_id);
+
+ BEGIN;
+ WITH updated_uploads AS (
+ UPDATE uploads
+ SET
+ path =
+ CONCAT(
+ COALESCE((regexp_match(updatable_uploads.path, '(.*\/).*'))[1], ''),
+ CONCAT(
+ LEFT(SPLIT_PART((regexp_match(updatable_uploads.path, '[^\\/:*?"<>|\r\n]+$'))[1], '.', 1), 242),
+ COALESCE(SUBSTRING((regexp_match(updatable_uploads.path, '[^\\/:*?"<>|\r\n]+$'))[1] FROM '\.(?:.(?!\.))+$'))
+ )
+ )
+ FROM
+ uploads_with_long_filenames AS updatable_uploads
+ WHERE
+ uploads.id = updatable_uploads.id
+ AND updatable_uploads.row_id > 0 AND updatable_uploads.row_id <= 10000
+ RETURNING uploads.*
+ )
+ SELECT id, path FROM updated_uploads;
+ ROLLBACK;
+ ```
+
+ After you validate the batch update results, you must change the batch size (`row_id`) using the following sequence of numbers (10000 to 20000). Repeat this process until you reach the last record in the `uploads` table.
+
+1. Validate that the new file names from the previous query are the expected ones. If you are sure you want to truncate the records found in the previous step to 246 characters, run the following:
+
+ WARNING:
+ The following action is **irreversible**.
+
+ ```sql
+ CREATE TEMP TABLE uploads_with_long_filenames AS
+ SELECT ROW_NUMBER() OVER(ORDER BY id) row_id, path, id
+ FROM uploads AS u
+ WHERE LENGTH((regexp_match(u.path, '[^\\/:*?"<>|\r\n]+$'))[1]) > 246;
+
+ CREATE INDEX ON uploads_with_long_filenames(row_id);
+
+ UPDATE uploads
+ SET
+ path =
+ CONCAT(
+ COALESCE((regexp_match(updatable_uploads.path, '(.*\/).*'))[1], ''),
+ CONCAT(
+ LEFT(SPLIT_PART((regexp_match(updatable_uploads.path, '[^\\/:*?"<>|\r\n]+$'))[1], '.', 1), 242),
+ COALESCE(SUBSTRING((regexp_match(updatable_uploads.path, '[^\\/:*?"<>|\r\n]+$'))[1] FROM '\.(?:.(?!\.))+$'))
+ )
+ )
+ FROM
+ uploads_with_long_filenames AS updatable_uploads
+ WHERE
+ uploads.id = updatable_uploads.id
+ AND updatable_uploads.row_id > 0 AND updatable_uploads.row_id <= 10000;
+ ```
+
+ After you finish the batch update, you must change the batch size (`updatable_uploads.row_id`) using the following sequence of numbers (10000 to 20000). Repeat this process until you reach the last record in the `uploads` table.
+
+Truncate the file names in the references found:
+
+1. Check if those records are referenced somewhere. One way to do this is to dump the database and search for the parent directory name and file name:
+
+ 1. To dump your database, you can use the following command as an example:
+
+ ```shell
+ pg_dump -h /var/opt/gitlab/postgresql/ -d gitlabhq_production > gitlab-dump.tmp
+ ```
+
+ 1. Then you can search for the references using the `grep` command. Combining the parent directory and the file name can be a good idea. For example:
+
+ ```shell
+ grep public/alongfilenamehere.txt gitlab-dump.tmp
+ ```
+
+1. Replace those long file names using the new file names obtained from querying the `uploads` table.
+
+Truncate the file names on the file system. You must manually rename the files in your file system to the new file names obtained from querying the `uploads` table.
+
+### Re-run the backup task
+
+After following all the previous steps, re-run the backup task.
+
+## Restoring database backup fails when `pg_stat_statements` was previously enabled
+
+The GitLab backup of the PostgreSQL database includes all SQL statements required to enable extensions that were
+previously enabled in the database.
+
+The `pg_stat_statements` extension can only be enabled or disabled by a PostgreSQL user with `superuser` role.
+As the restore process uses a database user with limited permissions, it can't execute the following SQL statements:
+
+```sql
+DROP EXTENSION IF EXISTS pg_stat_statements;
+CREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;
+```
+
+When trying to restore the backup in a PostgreSQL instance that doesn't have the `pg_stats_statements` extension,
+the following error message is displayed:
+
+```plaintext
+ERROR: permission denied to create extension "pg_stat_statements"
+HINT: Must be superuser to create this extension.
+ERROR: extension "pg_stat_statements" does not exist
+```
+
+When trying to restore in an instance that has the `pg_stats_statements` extension enabled, the cleaning up step
+fails with an error message similar to the following:
+
+```plaintext
+rake aborted!
+ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of view pg_stat_statements
+/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:42:in `block (4 levels) in <top (required)>'
+/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `each'
+/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `block (3 levels) in <top (required)>'
+/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:71:in `block (3 levels) in <top (required)>'
+/opt/gitlab/embedded/bin/bundle:23:in `load'
+/opt/gitlab/embedded/bin/bundle:23:in `<main>'
+Caused by:
+PG::InsufficientPrivilege: ERROR: must be owner of view pg_stat_statements
+/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:42:in `block (4 levels) in <top (required)>'
+/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `each'
+/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `block (3 levels) in <top (required)>'
+/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:71:in `block (3 levels) in <top (required)>'
+/opt/gitlab/embedded/bin/bundle:23:in `load'
+/opt/gitlab/embedded/bin/bundle:23:in `<main>'
+Tasks: TOP => gitlab:db:drop_tables
+(See full trace by running task with --trace)
+```
+
+### Prevent the dump file to include `pg_stat_statements`
+
+To prevent the inclusion of the extension in the PostgreSQL dump file that is part of the backup bundle,
+enable the extension in any schema except the `public` schema:
+
+```sql
+CREATE SCHEMA adm;
+CREATE EXTENSION pg_stat_statements SCHEMA adm;
+```
+
+If the extension was previously enabled in the `public` schema, move it to a new one:
+
+```sql
+CREATE SCHEMA adm;
+ALTER EXTENSION pg_stat_statements SET SCHEMA adm;
+```
+
+To query the `pg_stat_statements` data after changing the schema, prefix the view name with the new schema:
+
+```sql
+SELECT * FROM adm.pg_stat_statements limit 0;
+```
+
+To make it compatible with third-party monitoring solutions that expect it to be enabled in the `public` schema,
+you need to include it in the `search_path`:
+
+```sql
+set search_path to public,adm;
+```
+
+### Fix an existing dump file to remove references to `pg_stat_statements`
+
+To fix an existing backup file, do the following changes:
+
+1. Extract from the backup the following file: `db/database.sql.gz`.
+1. Decompress the file or use an editor that is capable of handling it compressed.
+1. Remove the following lines, or similar ones:
+
+ ```sql
+ CREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;
+ ```
+
+ ```sql
+ COMMENT ON EXTENSION pg_stat_statements IS 'track planning and execution statistics of all SQL statements executed';
+ ```
+
+1. Save the changes and recompress the file.
+1. Update the backup file with the modified `db/database.sql.gz`.
diff --git a/doc/administration/configure.md b/doc/administration/configure.md
index 8b4f8a9abc6..7ae088cd783 100644
--- a/doc/administration/configure.md
+++ b/doc/administration/configure.md
@@ -1,6 +1,7 @@
---
stage: Systems
group: Distribution
+description: Installation settings.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/administration/dedicated/index.md b/doc/administration/dedicated/index.md
index ef9e53c8fb7..005017c6178 100644
--- a/doc/administration/dedicated/index.md
+++ b/doc/administration/dedicated/index.md
@@ -1,8 +1,8 @@
---
stage: SaaS Platforms
group: GitLab Dedicated
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
-description: 'Learn how to configure your GitLab Dedicated instance.'
+description: IP allowlists, SAML, maintenance.
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
# Configure GitLab Dedicated **(ULTIMATE)**
@@ -14,12 +14,15 @@ The instructions on this page guide you through:
1. Onboarding and initial setup of your GitLab Dedicated instance using [Switchboard](https://about.gitlab.com/direction/saas-platforms/switchboard/), the GitLab Dedicated portal.
1. Configuring your GitLab Dedicated instance including enabling and updating the settings for [available functionality](../../subscriptions/gitlab_dedicated/index.md#available-features).
-Any functionality in the GitLab application that is not controlled by the SaaS environment can be configured by using the [Admin Panel](../../administration/admin_area.md).
+Any functionality in the GitLab application that is not controlled by the SaaS environment can be configured by using the [Admin Area](../../administration/admin_area.md).
Examples of SaaS environment settings include `gitlab.rb` configurations and access to shell, Rails console, and PostgreSQL console.
These environment settings cannot be changed by tenants.
GitLab Dedicated Engineers also don't have direct access to tenant environments, except for [break glass situations](../../subscriptions/gitlab_dedicated/index.md#access-controls).
+NOTE:
+An instance refers to a GitLab Dedicated deployment, whereas a tenant refers to a customer.
+
## Onboarding to GitLab Dedicated using Switchboard
To create a new GitLab Dedicated environment for your organization, provide the following information to your account team:
@@ -29,31 +32,33 @@ To create a new GitLab Dedicated environment for your organization, provide the
- Email addresses of the users who are responsible to complete the onboarding and create your GitLab Dedicated instance using [Switchboard](https://about.gitlab.com/direction/saas-platforms/switchboard/).
If you've been granted access to Switchboard, you receive an email invitation with temporary credentials to sign in.
+Your invitation to Switchboard is valid for seven days. If you are having issues accessing
+Switchboard, or if your invitation has expired, please [submit a support ticket](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=4414917877650).
NOTE:
The credentials for Switchboard are separate from any other GitLab credentials you may already have to sign in to a GitLab self-managed or GitLab.com instance.
-After you first sign in to Switchboard, you must update your password and set up MFA before you can complete your onboarding to create a tenant.
+After you first sign in to Switchboard, you must update your password and set up MFA before you can complete your onboarding to create a new instance.
-The following stages guide you through a series of four steps to provide the information required to create your GitLab Dedicated tenant.
+The following stages guide you through a series of four steps to provide the information required to create your GitLab Dedicated instance.
1. Confirm account details: Confirm key attributes of your GitLab Dedicated account:
- Reference architecture: Corresponds with the number of users you provided to your account team when beginning the onboarding process. For more information, see [reference architectures](../../subscriptions/gitlab_dedicated/index.md#availability-and-scalability).
- Total repository storage size: Corresponds with the storage size you provided to your account team when beginning the onboarding process.
- If you need to make changes to these attributes, [submit a support ticket](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=4414917877650).
-1. Tenant configuration: Provides the minimum required information needed to create your GitLab Dedicated tenant:
+1. Tenant configuration: Provides the minimum required information needed to create your GitLab Dedicated instance:
- Desired instance subdomain: The main domain for GitLab Dedicated instances is `gitlab-dedicated.com`. You choose the subdomain name where your instance is accessible from. For example, `customer_name.gitlab-dedicated.com`.
- Desired primary region: Primary AWS region in which your data is stored. Note the [available AWS regions](../../subscriptions/gitlab_dedicated/index.md#available-aws-regions).
- Desired secondary region: Secondary AWS region in which your data is stored. This region is used to recover your GitLab Dedicated instance in case of a disaster.
- Desired backup region: An AWS region where the primary backups of your data are replicated. This can be the same as the primary or secondary region, or different.
- Desired maintenance window: A weekly four-hour time slot that GitLab uses to perform routine maintenance and upgrade operations on all tenant instances. For more information, see [maintenance windows](#maintenance-window).
1. Security: You can provide your own [KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) for encrypted AWS services. If you choose not to provide KMS keys, encryption keys are generated for your instance when it is created. For more information, see [encrypting your data at rest](#encrypted-data-at-rest-byok).
-1. Summary: You confirm that the information you've provided in the previous steps is accurate before initiating the creation of your tenant.
+1. Summary: You confirm that the information you've provided in the previous steps is accurate before initiating the creation of your instance.
NOTE:
-Some configuration settings (like the option to bring your own keys and your tenant name) are permanent and cannot be changed once your tenant has been created.
+Some configuration settings (like the option to bring your own keys and your tenant name) are permanent and cannot be changed once your instance has been created.
-It can take up to 3 hours to create the GitLab Dedicated tenant. When the setup is complete, you will receive a confirmation email with further instructions on how to access your tenant.
+It can take up to 3 hours to create the GitLab Dedicated instance. When the setup is complete, you will receive a confirmation email with further instructions on how to access your instance.
### Maintenance window
@@ -80,10 +85,11 @@ In an event of a platform outage, degradation or a security event requiring urge
emergency maintenance will be carried out per
[the emergency change processes](https://about.gitlab.com/handbook/engineering/infrastructure/emergency-change-processes/).
-The emergency maintenance is initiated urgently when urgent actions need to be executed by GitLab
-on a Dedicated tenant instance.
-Communication with the customer will be provided on best effort basis prior to commencing the
-maintenance, and full communication will follow after the immediate action is carried out.
+The emergency maintenance is initiated when urgent actions need to be executed by GitLab on a
+Dedicated tenant instance. Communication with the customer will be provided on best effort basis
+prior to commencing the maintenance, and full communication will follow after the immediate action
+is carried out. The GitLab Support Team will create a new ticket and send a message to the email
+addresses of the users listed in Switchboard during [onboarding](#onboarding-to-gitlab-dedicated-using-switchboard).
For example, when a critical security process is initiated to address an S1 vulnerability in GitLab,
emergency maintenance is carried out to upgrade GitLab to the non-vulnerable version and that
@@ -218,7 +224,7 @@ Make sure the AWS KMS keys are replicated to your desired primary, secondary and
Configuration changes requested with a [support ticket](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=4414917877650) are batched up and applied during your environment's weekly four-hour maintenance window.
-This policy does not apply to configuration changes made by a GitLab Dedicated tenant admin [using Switchboard](#configuration-changes-in-switchboard).
+This policy does not apply to configuration changes made by a GitLab Dedicated instance admin [using Switchboard](#configuration-changes-in-switchboard).
To have a change considered for an upcoming weekly maintenance window, all required information
must be submitted in full two business days before the start of the window.
@@ -232,7 +238,7 @@ Changes requested with a support ticket cannot be applied outside of a weekly ma
### Configuration changes in Switchboard
-Switchboard empowers the user to make limited configuration changes to their Dedicated Tenant Instance. As Switchboard matures further configuration changes will be made available.
+Switchboard empowers the user to make limited configuration changes to their GitLab Dedicated instance. As Switchboard matures further configuration changes will be made available.
To change or update the configuration of your GitLab Dedicated instance, use Switchboard following the instructions in the relevant section or open a [support ticket](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=4414917877650) with your request.
@@ -271,12 +277,14 @@ Consider the following when using Outbound Private Links:
and repositories, or use any other GitLab functionality to access private services.
- You can only establish Private Links between VPCs in the same region. Therefore, you can only establish a connection in the regions you selected for
your Dedicated instance.
-- The Network Load Balancer (NLB) that backs the Endpoint Service at your end must be enabled in at least one of the Availability Zones to which your Dedicated tenant was
+- The Network Load Balancer (NLB) that backs the Endpoint Service at your end must be enabled in at least one of the Availability Zones to which your Dedicated instance was
deployed. This is not the user-facing name such as `us-east-1a`, but the underlying [Availability Zone ID](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html).
If you did not specify these during onboarding to Dedicated, you must either:
- Ask for the Availability Zone IDs in the ticket you raise to enable the link and ensure the NLB is enabled in those AZs, or
- Ensure the NLB has is enabled in every Availability Zone in the region.
+You can view the `Reverse Private Link IAM Principal` attribute in the **Tenant Details** section of Switchboard.
+
To enable an Outbound Private Link:
1. [Create the Endpoint service](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html) through which your internal service
@@ -300,7 +308,7 @@ To enable an Outbound Private Link:
provide a list of DNS names that should resolve to the Private Link Endpoint. This list can be updated as needed in future.
GitLab then configures the tenant instance to create the necessary Endpoint Interfaces based on the service names you provided. Any matching outbound
-connections made from the tenant GitLab instance are directed through the PrivateLink into your VPC.
+connections made from the tenant instance are directed through the PrivateLink into your VPC.
### Custom certificates
@@ -348,7 +356,7 @@ Specify a comma separated list of IP addresses that can access your GitLab Dedic
### SAML
NOTE:
-GitLab Dedicated supports a limited number of SAML parameters. Parameters not shown in the configuration below are unavailable for GitLab Dedicated tenant instances.
+GitLab Dedicated supports a limited number of SAML parameters. Parameters not shown in the configuration below are unavailable for GitLab Dedicated instances.
Prerequisites:
@@ -415,7 +423,7 @@ To activate SAML for your GitLab Dedicated instance:
#### Request signing
-If [SAML request signing](../../integration/saml.md#sign-saml-authentication-requests-optional) is desired, a certificate must be obtained. This certificate can be self-signed which has the advantage of not having to prove ownership of an arbitrary Common Name (CN) to a public Certificate Authority (CA)).
+If [SAML request signing](../../integration/saml.md#sign-saml-authentication-requests-optional) is desired, a certificate must be obtained. This certificate can be self-signed which has the advantage of not having to prove ownership of an arbitrary Common Name (CN) to a public Certificate Authority (CA).
If you choose to enable SAML request signing, the manual steps below will need to be completed before you are able to use SAML, since it requires certificate signing to happen.
To enable SAML request signing, indicate on your SAML [support ticket](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=4414917877650) that you want request signing enabled. GitLab works with you on sending the Certificate Signing Request (CSR) for you to sign. Alternatively, the CSR can be signed with a public CA. After the certificate is signed, GitLab adds the certificate and its associated private key to the `security` section of the SAML configuration. Authentication requests from GitLab to your identity provider can then be signed.
@@ -434,12 +442,12 @@ To enable group sync:
1. Add the [required elements](../../user/group/saml_sso/group_sync.md#configure-saml-group-sync) to the SAML configuration block you provide in your [support ticket](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=4414917877650).
1. Configure the [Group Links](../../user/group/saml_sso/group_sync.md#configure-saml-group-links).
-### Add users to a tenant instance
+### Add users to an instance
-Tenant administrators can add Switchboard users to their tenant instance. There are two types of users:
+Administrators can add Switchboard users to their GitLab Dedicated instance. There are two types of users:
-- **Read only**: Users can only view tenant data.
-- **Admin**: Users can edit the tenant configuration and manage users.
+- **Read only**: Users can only view instance data.
+- **Admin**: Users can edit the instance configuration and manage users.
To add a new user to your GitLab Dedicated instance:
diff --git a/doc/administration/docs_self_host.md b/doc/administration/docs_self_host.md
index 5b9bfe82294..30ec21ef660 100644
--- a/doc/administration/docs_self_host.md
+++ b/doc/administration/docs_self_host.md
@@ -175,7 +175,7 @@ documentation URL requests as needed. For example, if your GitLab version is
- The GitLab documentation URL becomes `http://0.0.0.0:4000/14.5/`.
- The link in GitLab displays as `<instance_url>/help/administration/settings/help_page#destination-requirements`.
- When you select the link, you are redirected to
-`http://0.0.0.0:4000/14.5/ee/administration/settings/help_page/#destination-requirements`.
+ `http://0.0.0.0:4000/14.5/ee/administration/settings/help_page/#destination-requirements`.
To test the setting, in GitLab, select a **Learn more** link. For example:
diff --git a/doc/administration/external_users.md b/doc/administration/external_users.md
index d8951631b72..b6744e56f4f 100644
--- a/doc/administration/external_users.md
+++ b/doc/administration/external_users.md
@@ -15,12 +15,8 @@ External users:
- Cannot create project, groups, and snippets in their personal namespaces.
- Can only create projects (including forks), subgroups, and snippets within top-level groups to which they are explicitly granted access.
-- Can only access public projects and projects to which they are explicitly granted access,
- thus hiding all other internal or private ones from them (like being
- logged out).
-- Can only access public groups and groups to which they are explicitly granted access,
- thus hiding all other internal or private ones from them (like being
- logged out).
+- Can access public groups and public projects.
+- Can only access projects and groups to which they are explicitly granted access. External users cannot access internal or private projects or groups that they are not granted access to.
- Can only access public snippets.
Access can be granted by adding the user as member to the project or group.
diff --git a/doc/administration/geo/disaster_recovery/index.md b/doc/administration/geo/disaster_recovery/index.md
index f97c892c3eb..7949bd498a7 100644
--- a/doc/administration/geo/disaster_recovery/index.md
+++ b/doc/administration/geo/disaster_recovery/index.md
@@ -71,12 +71,6 @@ must disable the **primary** site.
### Step 3. Promoting a **secondary** site
-WARNING:
-In GitLab 13.2 and 13.3, promoting a secondary site to a primary while the
-secondary is paused fails. Do not pause replication before promoting a
-secondary. If the secondary site is paused, be sure to resume before promoting.
-This issue has been fixed in GitLab 13.4 and later.
-
Note the following when promoting a secondary:
- If the secondary site [has been paused](../../geo/index.md#pausing-and-resuming-replication), the promotion
@@ -90,7 +84,7 @@ Note the following when promoting a secondary:
[troubleshooting advice](../replication/troubleshooting.md#fixing-errors-during-a-failover-or-when-promoting-a-secondary-to-a-primary-site).
- You should [point the primary domain DNS at the newly promoted site](#step-4-optional-updating-the-primary-domain-dns-record). Otherwise, runners must be registered again with the newly promoted site, and all Git remotes, bookmarks, and external integrations must be updated.
-#### Promoting a **secondary** site running on a single node running GitLab 14.5 and later
+#### Promoting a **secondary** site running on a single node
1. SSH in to your **secondary** site and execute:
@@ -110,63 +104,7 @@ Note the following when promoting a secondary:
previously for the **secondary** site.
1. If successful, the **secondary** site is now promoted to the **primary** site.
-#### Promoting a **secondary** site running on a single node running GitLab 14.4 and earlier
-
-WARNING:
-The `gitlab-ctl promote-to-primary-node` and `gitlab-ctl promoted-db` commands are
-deprecated in GitLab 14.5 and later, and [removed in GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/345207).
-Use `gitlab-ctl geo promote` instead.
-
-1. SSH in to your **secondary** site and login as root:
-
- ```shell
- sudo -i
- ```
-
-1. If you're using GitLab 13.5 and later, skip this step. If not, edit
- `/etc/gitlab/gitlab.rb` and remove any of the following lines that
- might be present:
-
- ```ruby
- geo_secondary_role['enable'] = true
- roles ['geo_secondary_role']
- ```
-
-1. Promote the **secondary** site to the **primary** site:
-
- - To promote the secondary site to primary along with [preflight checks](planned_failover.md#preflight-checks):
-
- ```shell
- gitlab-ctl promote-to-primary-node
- ```
-
- - If you have already run the preflight checks separately or don't want to run them,
- you can skip them with:
-
- ```shell
- gitlab-ctl promote-to-primary-node --skip-preflight-checks
- ```
-
- NOTE:
- In GitLab 13.7 and earlier, if you have a data type with zero items to sync
- and don't skip the preflight checks, promoting the secondary reports
- `ERROR - Replication is not up-to-date` even if replication is actually
- up-to-date. If replication and verification output
- shows that it is complete, you can skip the preflight checks to make the
- command complete promotion. This bug was fixed in GitLab 13.8 and later.
-
- - To promote the secondary site to primary **without any further confirmation**,
- even when preflight checks fail:
-
- ```shell
- gitlab-ctl promote-to-primary-node --force
- ```
-
-1. Verify you can connect to the newly-promoted **primary** site using the URL used
- previously for the **secondary** site.
-1. If successful, the **secondary** site is now promoted to the **primary** site.
-
-#### Promoting a **secondary** site with multiple nodes running GitLab 14.5 and later
+#### Promoting a **secondary** site with multiple nodes
1. SSH to every Sidekiq, PostgreSQL, and Gitaly node in the **secondary** site and run one of the following commands:
@@ -200,49 +138,7 @@ Use `gitlab-ctl geo promote` instead.
previously for the **secondary** site.
1. If successful, the **secondary** site is now promoted to the **primary** site.
-#### Promoting a **secondary** site with multiple nodes running GitLab 14.4 and earlier
-
-WARNING:
-The `gitlab-ctl promote-to-primary-node` and `gitlab-ctl promoted-db` commands are
-deprecated in GitLab 14.5 and later, and [removed in GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/345207).
-Use `gitlab-ctl geo promote` instead.
-
-The `gitlab-ctl promote-to-primary-node` command cannot be used yet in
-conjunction with multiple nodes, as it can only perform changes on
-a **secondary** with only a single node. Instead, you must
-do this manually.
-
-1. SSH in to the database node in the **secondary** site and trigger PostgreSQL to
- promote to read-write:
-
- ```shell
- sudo gitlab-ctl promote-db
- ```
-
-1. Edit `/etc/gitlab/gitlab.rb` on every node in the **secondary** site to
- reflect its new status as **primary** by removing any of the following
- lines that might be present:
-
- ```ruby
- geo_secondary_role['enable'] = true
- roles ['geo_secondary_role']
- ```
-
- After making these changes, [reconfigure GitLab](../../restart_gitlab.md#reconfigure-a-linux-package-installation)
- on each machine so the changes take effect.
-
-1. Promote the **secondary** to **primary**. SSH into a single application
- server and execute:
-
- ```shell
- sudo gitlab-rake geo:set_secondary_as_primary
- ```
-
-1. Verify you can connect to the newly-promoted **primary** using the URL used
- previously for the **secondary**.
-1. If successful, the **secondary** site is now promoted to the **primary** site.
-
-#### Promoting a **secondary** site with a Patroni standby cluster running GitLab 14.5 and later
+#### Promoting a **secondary** site with a Patroni standby cluster
1. SSH to every Sidekiq, PostgreSQL, and Gitaly node in the **secondary** site and run one of the following commands:
@@ -276,54 +172,7 @@ do this manually.
previously for the **secondary** site.
1. If successful, the **secondary** site is now promoted to the **primary** site.
-#### Promoting a **secondary** site with a Patroni standby cluster running GitLab 14.4 and earlier
-
-WARNING:
-The `gitlab-ctl promote-to-primary-node` and `gitlab-ctl promoted-db` commands are
-deprecated in GitLab 14.5 and later, and [removed in GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/345207).
-Use `gitlab-ctl geo promote` instead.
-
-The `gitlab-ctl promote-to-primary-node` command cannot be used yet in
-conjunction with a Patroni standby cluster, as it can only perform changes on
-a **secondary** with only a single node. Instead, you must do this manually.
-
-1. SSH in to the Standby Leader database node in the **secondary** site and trigger PostgreSQL to
- promote to read-write:
-
- ```shell
- sudo gitlab-ctl promote-db
- ```
-
-1. Edit `/etc/gitlab/gitlab.rb` on every application and Sidekiq nodes in the secondary to reflect its new status as primary by removing any of the following lines that might be present:
-
- ```ruby
- geo_secondary_role['enable'] = true
- roles ['geo_secondary_role']
- ```
-
-1. Edit `/etc/gitlab/gitlab.rb` on every Patroni node in the secondary to disable the standby cluster:
-
- ```ruby
- patroni['standby_cluster']['enable'] = false
- ```
-
-1. Reconfigure GitLab on each machine for the changes to take effect:
-
- ```shell
- sudo gitlab-ctl reconfigure
- ```
-
-1. Promote the **secondary** to **primary**. SSH into a single application server and execute:
-
- ```shell
- sudo gitlab-rake geo:set_secondary_as_primary
- ```
-
-1. Verify you can connect to the newly-promoted **primary** using the URL used
- previously for the **secondary**.
-1. If successful, the **secondary** site is now promoted to the **primary** site.
-
-#### Promoting a **secondary** site with an external PostgreSQL database running GitLab 14.5 and later
+#### Promoting a **secondary** site with an external PostgreSQL database
The `gitlab-ctl geo promote` command can be used in conjunction with an external PostgreSQL database.
In this case, you must first manually promote the replica database associated
@@ -388,68 +237,6 @@ with the **secondary** site:
previously for the **secondary** site.
1. If successful, the **secondary** site is now promoted to the **primary** site.
-#### Promoting a **secondary** site with an external PostgreSQL database running GitLab 14.4 and earlier
-
-WARNING:
-The `gitlab-ctl promote-to-primary-node` and `gitlab-ctl promoted-db` commands are
-deprecated in GitLab 14.5 and later, and [removed in GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/345207).
-Use `gitlab-ctl geo promote` instead.
-
-The `gitlab-ctl promote-to-primary-node` command cannot be used in conjunction with
-an external PostgreSQL database, as it can only perform changes on a **secondary**
-node with GitLab and the database on the same machine. As a result, a manual process is
-required:
-
-1. Promote the replica database associated with the **secondary** site. This
- sets the database to read-write. The instructions vary depending on where your database is hosted:
- - [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html#USER_ReadRepl.Promote)
- - [Azure PostgreSQL](https://learn.microsoft.com/en-us/azure/postgresql/single-server/how-to-read-replicas-portal#stop-replication)
- - [Google Cloud SQL](https://cloud.google.com/sql/docs/mysql/replication/manage-replicas#promote-replica)
- - For other external PostgreSQL databases, save the following script in your
- secondary site, for example `/tmp/geo_promote.sh`, and modify the connection
- parameters to match your environment. Then, execute it to promote the replica:
-
- ```shell
- #!/bin/bash
-
- PG_SUPERUSER=postgres
-
- # The path to your pg_ctl binary. You may need to adjust this path to match
- # your PostgreSQL installation
- PG_CTL_BINARY=/usr/lib/postgresql/10/bin/pg_ctl
-
- # The path to your PostgreSQL data directory. You may need to adjust this
- # path to match your PostgreSQL installation. You can also run
- # `SHOW data_directory;` from PostgreSQL to find your data directory
- PG_DATA_DIRECTORY=/etc/postgresql/10/main
-
- # Promote the PostgreSQL database and allow read/write operations
- sudo -u $PG_SUPERUSER $PG_CTL_BINARY -D $PG_DATA_DIRECTORY promote
- ```
-
-1. Edit `/etc/gitlab/gitlab.rb` on every node in the **secondary** site to
- reflect its new status as **primary** by removing any of the following
- lines that might be present:
-
- ```ruby
- geo_secondary_role['enable'] = true
- roles ['geo_secondary_role']
- ```
-
- After making these changes [Reconfigure GitLab](../../restart_gitlab.md#reconfigure-a-linux-package-installation)
- on each node so the changes take effect.
-
-1. Promote the **secondary** to **primary**. SSH into a single secondary application
- node and execute:
-
- ```shell
- sudo gitlab-rake geo:set_secondary_as_primary
- ```
-
-1. Verify you can connect to the newly-promoted **primary** using the URL used
- previously for the **secondary**.
-1. If successful, the **secondary** site is now promoted to the **primary** site.
-
### Step 4. (Optional) Updating the primary domain DNS record
Update DNS records for the primary domain to point to the **secondary** site.
@@ -627,12 +414,6 @@ When updating a cloud-native Geo deployment, the process for updating any node t
The following sections assume you are using the `gitlab` namespace. If you used a different namespace when setting up your cluster, you should also replace `--namespace gitlab` with your namespace.
-WARNING:
-In GitLab 13.2 and 13.3, promoting a secondary site to a primary while the
-secondary is paused fails. Do not pause replication before promoting a
-secondary. If the site is paused, be sure to resume before promoting. This
-issue has been fixed in GitLab 13.4 and later.
-
### Step 1. Permanently disable the **primary** cluster
WARNING:
@@ -671,10 +452,6 @@ If the secondary site [has been paused](../../geo/index.md#pausing-and-resuming-
a point-in-time recovery to the last known state.
Data that was created on the primary while the secondary was paused is lost.
-::Tabs
-
-:::TabTitle For GitLab 14.5 and later
-
1. For each node (such as PostgreSQL or Gitaly) outside of the **secondary** Kubernetes cluster using the Linux
package, SSH into the node and run one of the following commands:
@@ -709,46 +486,6 @@ Data that was created on the primary while the secondary was paused is lost.
| ---- | ------------- | ------- |
| `ENABLE_SILENT_MODE` | `false` | If `true`, enables [Silent Mode](../../silent_mode/index.md) before promotion (GitLab 16.4 and later) |
-:::TabTitle For GitLab 14.4 and earlier
-
-1. SSH in to the database node in the **secondary** site and trigger PostgreSQL to
- promote to read-write:
-
- ```shell
- sudo gitlab-ctl promote-db
- ```
-
-1. Edit `/etc/gitlab/gitlab.rb` on the database node in the **secondary** site to
- reflect its new status as **primary** by removing any lines that enabled the
- `geo_secondary_role`:
-
- NOTE:
- Depending on your architecture, these steps need to run on any GitLab node that is external to the **secondary** Kubernetes cluster.
-
- ```ruby
- ## In pre-11.5 documentation, the role was enabled as follows. Remove this line.
- geo_secondary_role['enable'] = true
-
- ## In 11.5+ documentation, the role was enabled as follows. Remove this line.
- roles ['geo_secondary_role']
- ```
-
- After making these changes, [reconfigure GitLab](../../restart_gitlab.md#reconfigure-a-linux-package-installation) on the database node.
-
-1. Find the task runner pod:
-
- ```shell
- kubectl --namespace gitlab get pods -lapp=task-runner
- ```
-
-1. Promote the secondary:
-
- ```shell
- kubectl --namespace gitlab exec -ti gitlab-geo-task-runner-XXX -- gitlab-rake geo:set_secondary_as_primary
- ```
-
-::EndTabs
-
### Step 3. Promote the **secondary** cluster
1. Update the existing cluster configuration.
diff --git a/doc/administration/geo/disaster_recovery/planned_failover.md b/doc/administration/geo/disaster_recovery/planned_failover.md
index 01e5c33a726..70bbc962ba0 100644
--- a/doc/administration/geo/disaster_recovery/planned_failover.md
+++ b/doc/administration/geo/disaster_recovery/planned_failover.md
@@ -68,19 +68,13 @@ site:
```
1. Copy the backup tarball generated from your primary site to the `/var/opt/gitlab/backups` folder
-on your secondary site.
+ on your secondary site.
1. On your secondary site, restore the registry following the [Restore GitLab](../../../administration/backup_restore/index.md#restore-gitlab)
-documentation.
+ documentation.
## Preflight checks
-NOTE:
-In GitLab 13.7 and earlier, if you have a data type with zero items to sync,
-this command reports `ERROR - Replication is not up-to-date` even if
-replication is actually up-to-date. This bug was fixed in GitLab 13.8 and
-later.
-
Run this command to list out all preflight checks and automatically check if replication and verification are complete before scheduling a planned failover to ensure the process goes smoothly:
```shell
diff --git a/doc/administration/geo/index.md b/doc/administration/geo/index.md
index 6609bbed5a6..811ac92de27 100644
--- a/doc/administration/geo/index.md
+++ b/doc/administration/geo/index.md
@@ -337,18 +337,9 @@ For answers to common questions, see the [Geo FAQ](replication/faq.md).
## Log files
-Geo stores structured log messages in a `geo.log` file. For Linux package
-installations, this file is at `/var/log/gitlab/gitlab-rails/geo.log`.
+Geo stores structured log messages in a `geo.log` file.
-This file contains information about when Geo attempts to sync repositories and files. Each line in the file contains a separate JSON entry that can be ingested into. For example, Elasticsearch or Splunk.
-
-For example:
-
-```json
-{"severity":"INFO","time":"2017-08-06T05:40:16.104Z","message":"Repository update","project_id":1,"source":"repository","resync_repository":true,"resync_wiki":true,"class":"Gitlab::Geo::LogCursor::Daemon","cursor_delay_s":0.038}
-```
-
-This message shows that Geo detected that a repository update was needed for project `1`.
+For more information on how to access and consume Geo logs, see the [Geo section in the log system documentation](../logs/index.md#geolog).
## Troubleshooting
diff --git a/doc/administration/geo/replication/container_registry.md b/doc/administration/geo/replication/container_registry.md
index b9bee753089..1eacca32902 100644
--- a/doc/administration/geo/replication/container_registry.md
+++ b/doc/administration/geo/replication/container_registry.md
@@ -170,3 +170,70 @@ To verify container registry replication is working, on the **secondary** site:
The initial replication, or "backfill", is probably still in progress.
You can monitor the synchronization process on each Geo site from the **primary** site's **Geo Nodes** dashboard in your browser.
+
+## Troubleshooting
+
+### Confirm that container registry replication is enabled
+
+This can be done with a check using the [Rails console](../../operations/rails_console.md#starting-a-rails-console-session):
+
+```ruby
+Geo::ContainerRepositoryRegistry.replication_enabled?
+```
+
+### Missing container registry notification event
+
+1. When an image is pushed to the primary site's container registry, it should trigger a [Container Registry notification](../../../administration/packages/container_registry.md#configure-container-registry-notifications)
+1. The primary site's container registry calls the primary site's API on `https://<example.com>/api/v4/container_registry_event/events`
+1. The primary site inserts a record to the `geo_events` table with `replicable_name: 'container_repository', model_record_id: <ID of the container repository>`.
+1. The record gets replicated by PostgreSQL to the secondary site's database.
+1. The Geo Log Cursor service processes the new event and enqueues a Sidekiq job `Geo::EventWorker`
+
+To verify this is working correctly, push an image to the registry on the primary site, and run the following command on the Rails console to verify that the notification was received, and processed into an event:
+
+```ruby
+Geo::Event.where(replicable_name: 'container_repository')
+```
+
+You can further verify this by checking `geo.log` for entries from `Geo::ContainerRepositorySyncService`.
+
+### Registry events logs response status 401 Unauthorized unaccepted
+
+`401 Unauthorized` errors indicate that the primary site's container registry notification is not accepted by the Rails application, preventing it from notifying GitLab that something was pushed.
+
+To fix this, make sure that the authorization headers being sent with the registry notification match what's configured on the primary site, as should be done during step [Configure primary site](#configure-primary-site).
+
+#### Registry error: `token from untrusted issuer: "<token>"`
+
+To replicate a container image, Sidekiq uses JWT to authenticate itself towards the container registry. Geo replication takes it as a prerequisite that the [container registry configuration](../../../administration/packages/container_registry.md) has been done correctly.
+
+Make sure that both sites share a single signing key pair, as instructed under [Configure secondary site](#configure-secondary-site), and that both container registries, plus primary and secondary sites are [all configured to use the same token issuer](../../../administration/packages/container_registry.md#configure-gitlab-and-registry-to-run-on-separate-nodes-linux-package-installations).
+
+On multinode deployments, make sure that the issuer configured on the Sidekiq node matches the value configured on the registries.
+
+### Manually trigger a container registry sync event
+
+To help with troubleshooting, you can manually trigger the container registry replication process by running the following commands on the secondary's Rails console:
+
+```ruby
+registry = Geo::ContainerRepositoryRegistry.first # Choose a Geo registry entry
+registry.replicator.sync_repository # Resync the container repository
+pp registry.reload # Look at replication state fields
+
+#<Geo::ContainerRepositoryRegistry:0x00007f54c2a36060
+ id: 1,
+ container_repository_id: 1,
+ state: "2",
+ retry_count: 0,
+ last_sync_failure: nil,
+ retry_at: nil,
+ last_synced_at: Thu, 28 Sep 2023 19:38:05.823680000 UTC +00:00,
+ created_at: Mon, 11 Sep 2023 15:38:06.262490000 UTC +00:00>
+```
+
+The `state` field represents sync state:
+
+- `"0"`: pending sync (usually means it was never synced)
+- `"1"`: started sync (a sync job is currently running)
+- `"2"`: successfully synced
+- `"3"`: failed to sync
diff --git a/doc/administration/geo/replication/location_aware_git_url.md b/doc/administration/geo/replication/location_aware_git_url.md
index 6849a648991..2491b7c8bc8 100644
--- a/doc/administration/geo/replication/location_aware_git_url.md
+++ b/doc/administration/geo/replication/location_aware_git_url.md
@@ -51,8 +51,8 @@ In a Route53 Hosted Zone, traffic policies can be used to set up a variety of
routing configurations.
1. Go to the
-[Route53 dashboard](https://console.aws.amazon.com/route53/home) and select
-**Traffic policies**.
+ [Route53 dashboard](https://console.aws.amazon.com/route53/home) and select
+ **Traffic policies**.
![Traffic policies](img/single_git_traffic_policies.png)
diff --git a/doc/administration/geo/replication/upgrading_the_geo_sites.md b/doc/administration/geo/replication/upgrading_the_geo_sites.md
index aae35d45bde..4a72dcf0145 100644
--- a/doc/administration/geo/replication/upgrading_the_geo_sites.md
+++ b/doc/administration/geo/replication/upgrading_the_geo_sites.md
@@ -15,7 +15,7 @@ to Geo secondaries. This may result in a larger than expected downtime.
Upgrading Geo sites involves performing:
-1. [Version-specific upgrade steps](version_specific_upgrades.md), depending on the
+1. [Version-specific upgrade steps](../../../update/index.md#version-specific-upgrading-instructions), depending on the
version being upgraded to or from.
1. [General upgrade steps](#general-upgrade-steps), for all upgrades.
diff --git a/doc/administration/geo/replication/version_specific_upgrades.md b/doc/administration/geo/replication/version_specific_upgrades.md
deleted file mode 100644
index 13d00ced3cd..00000000000
--- a/doc/administration/geo/replication/version_specific_upgrades.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../update/index.md#version-specific-upgrading-instructions'
-remove_date: '2023-12-01'
----
-
-This document was moved to [another location](../../../update/index.md#version-specific-upgrading-instructions).
-
-<!-- This redirect file can be deleted after <2023-12-01>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/administration/geo/secondary_proxy/index.md b/doc/administration/geo/secondary_proxy/index.md
index 22bb7dd721d..376f3f3958e 100644
--- a/doc/administration/geo/secondary_proxy/index.md
+++ b/doc/administration/geo/secondary_proxy/index.md
@@ -79,11 +79,6 @@ In Kubernetes, you can [use the same domain under `global.hosts.domain` as for t
NOTE:
The feature flag described in this section is planned to be deprecated and removed in a future release. Support for read-only Geo secondary sites is proposed in [issue 366810](https://gitlab.com/gitlab-org/gitlab/-/issues/366810), you can upvote and share your use cases in that issue.
-There are minor known issues linked in the
-["Geo secondary proxying with separate URLs" epic](https://gitlab.com/groups/gitlab-org/-/epics/6865).
-You can also add feedback in the epic about any use-cases that
-are not possible anymore with proxying enabled.
-
If you run into issues, to disable this feature, disable the `geo_secondary_proxy_separate_urls` feature flag.
1. SSH into one node running Rails on your primary Geo site and run:
@@ -121,7 +116,7 @@ for details.
To use TLS certificates with Let's Encrypt, you can manually point the domain to one of the Geo sites, generate
the certificate, then copy it to all other sites.
-- Using Geo secondary sites to accelerate runners is not officially supported. Support for this functionality is planned and can be tracked in [epic 9779](https://gitlab.com/groups/gitlab-org/-/epics/9779). If a replication lag occurs between the primary and secondary site, and the pipeline ref is not available on the secondary site when the job is executed, the job will fail.
+- Using Geo secondary sites to accelerate runners is experimental and is not recommended for production. It can be configured and tested by following the steps in [secondary proxy runners](runners.md). Progress toward general availability can be tracked in [epic 9779](https://gitlab.com/groups/gitlab-org/-/epics/9779).
- When secondary proxying is used together with separate URLs,
[signing in the secondary site using SAML](../replication/single_sign_on.md#saml-with-separate-url-with-proxying-enabled)
@@ -150,25 +145,21 @@ It does not cover all data types.
In this context, accelerated reads refer to read requests served from the secondary site, provided that the data is up to date for the component on the secondary site. If the data on the secondary site is determined to be out of date, the request is forwarded to the primary site. Read requests for components not listed in the table below are always automatically forwarded to the primary site.
-| Feature / component | Accelerated reads? |
-|:----------------------------------------------------|:-----------------------|
-| Project, wiki, design repository (using the web UI) | **{dotted-circle}** No |
-| Project, wiki repository (using Git) | **{check-circle}** Yes <sup>1</sup> |
-| Project, Personal Snippet (using the web UI) | **{dotted-circle}** No |
-| Project, Personal Snippet (using Git) | **{check-circle}** Yes <sup>1</sup> |
-| Group wiki repository (using the web UI) | **{dotted-circle}** No |
-| Group wiki repository (using Git) | **{check-circle}** Yes <sup>1</sup> |
-| User uploads | **{dotted-circle}** No |
-| LFS objects (using the web UI) | **{dotted-circle}** No |
-| LFS objects (using Git) | **{check-circle}** Yes |
-| Pages | **{dotted-circle}** No <sup>2</sup> |
-| Advanced search (using the web UI) | **{dotted-circle}** No |
-| Container registry | **{dotted-circle}** No <sup>3</sup>|
-
-1. Git reads are served from the local secondary while pushes get proxied to the primary.
- Selective sync or cases where repositories don't exist locally on the Geo secondary throw a "not found" error.
-1. Pages can use the same URL (without access control), but must be configured separately and are not proxied.
-1. The container registry is only recommended for Disaster Recovery scenarios. If the secondary site's container registry is not up to date, the read request is served with old data as the request is not forwarded to the primary site.
+| Feature / component | Accelerated reads? | Notes |
+|:----------------------------------------------------|:------------------------------------| ------------|
+| Project, wiki, design repository (using the web UI) | **{dotted-circle}** No | |
+| Project, wiki repository (using Git) | **{check-circle}** Yes | Git reads are served from the local secondary while pushes get proxied to the primary. Selective sync or cases where repositories don't exist locally on the Geo secondary throw a "not found" error.|
+| Project, Personal Snippet (using the web UI) | **{dotted-circle}** No | |
+| Project, Personal Snippet (using Git) | **{check-circle}** Yes | Git reads are served from the local secondary while pushes get proxied to the primary. Selective sync or cases where repositories don't exist locally on the Geo secondary throw a "not found" error. |
+| Group wiki repository (using the web UI) | **{dotted-circle}** No | |
+| Group wiki repository (using Git) | **{check-circle}** Yes | Git reads are served from the local secondary while pushes get proxied to the primary. Selective sync or cases where repositories don't exist locally on the Geo secondary throw a "not found" error. |
+| User uploads | **{dotted-circle}** No | |
+| LFS objects (using the web UI) | **{dotted-circle}** No | |
+| LFS objects (using Git) | **{check-circle}** Yes | |
+| Pages | **{dotted-circle}** No | Pages can use the same URL (without access control), but must be configured separately and are not proxied.|
+| Advanced search (using the web UI) | **{dotted-circle}** No | |
+| Container registry | **{dotted-circle}** No | The container registry is only recommended for Disaster Recovery scenarios. If the secondary site's container registry is not up to date, the read request is served with old data as the request is not forwarded to the primary site. Accelerating the container registry is planned, please upvote or comment in the [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/365864) to indicate your interest or ask your GitLab representative to do so on your behalf. |
+| Dependency Proxy | **{dotted-circle}** No | Read requests to a Geo secondary site's Dependency Proxy are always proxied to the primary site. |
## Disable Geo proxying
diff --git a/doc/administration/geo/secondary_proxy/location_aware_external_url.md b/doc/administration/geo/secondary_proxy/location_aware_external_url.md
index 4ff349d8741..2f55aa27dff 100644
--- a/doc/administration/geo/secondary_proxy/location_aware_external_url.md
+++ b/doc/administration/geo/secondary_proxy/location_aware_external_url.md
@@ -47,8 +47,8 @@ In a Route53 Hosted Zone, traffic policies can be used to set up a variety of
routing configurations. To create a traffic policy:
1. Go to the
-[Route53 dashboard](https://console.aws.amazon.com/route53/home) and select
-**Traffic policies**.
+ [Route53 dashboard](https://console.aws.amazon.com/route53/home) and select
+ **Traffic policies**.
1. Select **Create traffic policy**.
1. Fill in the **Policy Name** field with `Single Git Host` and select **Next**.
diff --git a/doc/administration/geo/secondary_proxy/runners.md b/doc/administration/geo/secondary_proxy/runners.md
new file mode 100644
index 00000000000..6dfd61778e7
--- /dev/null
+++ b/doc/administration/geo/secondary_proxy/runners.md
@@ -0,0 +1,40 @@
+---
+stage: Systems
+group: Geo
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Secondary runners **(PREMIUM SELF EXPERIMENT)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/415179) in GitLab 16.7 [with a flag](../../feature_flags.md) named `geo_proxy_check_pipeline_refs`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available.
+To make it available, an administrator can [enable the feature flag](../../feature_flags.md) named `geo_proxy_check_pipeline_refs`. On GitLab.com, this feature is not available.
+
+With [Geo proxying for secondary sites](index.md), it is possible to register a `gitlab-runner` with a secondary site. This offloads load from the primary instance.
+
+## Enable or disable secondary runners
+
+To enable secondary runners, SSH into a Rails node on the **primary** Geo site and run:
+
+```ruby
+sudo gitlab-rails runner 'Feature.enable(:geo_proxy_check_pipeline_refs)'
+```
+
+To disable secondary runners, SSH into a Rails node on the **primary** Geo site and run:
+
+```ruby
+sudo gitlab-rails runner `Feature.disable(:geo_proxy_check_pipeline_refs)`
+```
+
+## Use secondary runners with a Location Aware public URL (Unified URL)
+
+Using a [Location Aware public URL](location_aware_external_url.md), with the feature flag enabled works with no extra configuration. After you install and register a runner in the same location as a secondary site, it automatically talks to the closest site, and only proxies to the primary if the secondary is out of date.
+
+## Use secondary runners with separate URLs
+
+Using separate secondary URLs, the runners should be:
+
+1. Registered with the secondary external URL.
+1. Configured with [`clone_url`](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#how-clone_url-works) set to the `external_url` of the secondary instance.
diff --git a/doc/administration/geo/setup/database.md b/doc/administration/geo/setup/database.md
index 13615825a14..b9c2a69eaf7 100644
--- a/doc/administration/geo/setup/database.md
+++ b/doc/administration/geo/setup/database.md
@@ -622,7 +622,7 @@ If you still haven't [migrated from repmgr to Patroni](#migrating-from-repmgr-to
1. Before migrating, you should ensure there is no replication lag between the **primary** and **secondary** sites and that replication is paused. In GitLab 13.2 and later, you can pause and resume replication with `gitlab-ctl geo-replication-pause` and `gitlab-ctl geo-replication-resume` on a Geo secondary database node.
1. Follow the [instructions to migrate repmgr to Patroni](../../postgresql/replication_and_failover.md#switching-from-repmgr-to-patroni). When configuring Patroni on each **primary** site database node, add `patroni['replication_slots'] = { '<slot_name>' => 'physical' }`
-to `gitlab.rb` where `<slot_name>` is the name of the replication slot for your **secondary** site. This ensures that Patroni recognizes the replication slot as permanent and doesn't drop it upon restarting.
+ to `gitlab.rb` where `<slot_name>` is the name of the replication slot for your **secondary** site. This ensures that Patroni recognizes the replication slot as permanent and doesn't drop it upon restarting.
1. If database replication to the **secondary** site was paused before migration, resume replication after Patroni is confirmed as working on the **primary** site.
### Migrating a single PostgreSQL node to Patroni
diff --git a/doc/administration/get_started.md b/doc/administration/get_started.md
index 336ed743a47..41783d55377 100644
--- a/doc/administration/get_started.md
+++ b/doc/administration/get_started.md
@@ -1,7 +1,8 @@
---
-info: For assistance with this tutorial, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
stage: none
group: Tutorials
+description: Administration overview.
+info: For assistance with this tutorial, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
---
# Get started administering GitLab **(FREE SELF)**
@@ -150,7 +151,7 @@ Backups of GitLab databases and file systems are taken every 24 hours, and are k
- You can use the project export option in:
- [The UI](../user/project/settings/import_export.md#export-a-project-and-its-data).
- [The API](../api/project_import_export.md#schedule-an-export).
-- [Group export by uploading a file export](../user/group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated)
+- [Group export by uploading a file export](../user/project/settings/import_export.md#migrate-groups-by-uploading-an-export-file-deprecated)
does **not** export the projects in it, but does export:
- Epics
- Milestones
diff --git a/doc/administration/gitaly/concurrency_limiting.md b/doc/administration/gitaly/concurrency_limiting.md
index 321bb9efe20..2b1a2bbef64 100644
--- a/doc/administration/gitaly/concurrency_limiting.md
+++ b/doc/administration/gitaly/concurrency_limiting.md
@@ -18,7 +18,7 @@ Enabling limits on your environment should be done with caution and only
in select circumstances, such as to protect against unexpected traffic.
When reached, limits _do_ result in disconnects that negatively impact users.
For consistent and stable performance, you should first explore other options such as
-adjusting node specifications, and [reviewing large repositories](../../user/project/repository/managing_large_repositories.md) or workloads.
+adjusting node specifications, and [reviewing large repositories](../../user/project/repository/monorepos/index.md) or workloads.
## Limit RPC concurrency
@@ -30,7 +30,7 @@ When cloning or pulling repositories, various RPCs run in the background. In par
These RPCs can consume a large amount of resources, which can have a significant impact in situations such as:
- Unexpectedly high traffic.
-- Running against [large repositories](../../user/project/repository/managing_large_repositories.md) that don't follow best practices.
+- Running against [large repositories](../../user/project/repository/monorepos/index.md) that don't follow best practices.
You can limit these processes from overwhelming your Gitaly server in these scenarios using the concurrency limits in the Gitaly configuration file. For
example:
@@ -94,7 +94,7 @@ number of in-flight pack-object processes per remote IP address.
WARNING:
Only enable these limits on your environment with caution and only in select circumstances, such as to protect against unexpected traffic. When reached, these limits
disconnect users. For consistent and stable performance, you should first explore other options such as adjusting node specifications, and
-[reviewing large repositories](../../user/project/repository/managing_large_repositories.md) or workloads.
+[reviewing large repositories](../../user/project/repository/monorepos/index.md) or workloads.
Example configuration:
diff --git a/doc/administration/gitaly/configure_gitaly.md b/doc/administration/gitaly/configure_gitaly.md
index d89413b2cf4..eb620ff7413 100644
--- a/doc/administration/gitaly/configure_gitaly.md
+++ b/doc/administration/gitaly/configure_gitaly.md
@@ -13,7 +13,7 @@ Configure Gitaly in one of two ways:
:::TabTitle Linux package (Omnibus)
1. Edit `/etc/gitlab/gitlab.rb` and add or change the
- [Gitaly settings](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/1dd07197c7e5ae23626aad5a4a070a800b670380/files/gitlab-config-template/gitlab.rb.template#L1622-1676).
+ [Gitaly settings](https://gitlab.com/gitlab-org/gitaly/-/blob/master/config.toml.example).
1. Save the file and [reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation).
:::TabTitle Self-compiled (source)
@@ -574,7 +574,7 @@ Enabling limits on your environment should be done with caution and only
in select circumstances, such as to protect against unexpected traffic.
When reached, limits _do_ result in disconnects that negatively impact users.
For consistent and stable performance, you should first explore other options such as
-adjusting node specifications, and [reviewing large repositories](../../user/project/repository/managing_large_repositories.md) or workloads.
+adjusting node specifications, and [reviewing large repositories](../../user/project/repository/monorepos/index.md) or workloads.
When enabling cgroups for memory, you should ensure that no swap is configured on the Gitaly nodes as
processes may switch to using that instead of being terminated. This situation could lead to notably compromised
@@ -1019,9 +1019,9 @@ meaning that unique requests do not get written into the cache.
If you:
- Increase this number, your cache hit rate goes down and the
-cache uses less disk space.
+ cache uses less disk space.
- Decrease this number, your cache hit
-rate goes up and the cache uses more disk space.
+ rate goes up and the cache uses more disk space.
You should set `min_occurrences` to `1`. On GitLab.com,
going from 0 to 1 saved us 50% cache disk space while barely affecting
@@ -1089,6 +1089,33 @@ Example:
}
```
+## `cat-file` cache
+
+A lot of Gitaly RPCs need to look up Git objects from repositories.
+Most of the time we use `git cat-file --batch` processes for that. For
+better performance, Gitaly can re-use these `git cat-file` processes
+across RPC calls. Previously used processes are kept around in a
+["Git cat-file cache"](https://about.gitlab.com/blog/2019/07/08/git-performance-on-nfs/#enter-cat-file-cache).
+To control how much system resources this uses, we have a maximum number of
+cat-file processes that can go into the cache.
+
+The default limit is 100 `cat-file`s, which constitute a pair of
+`git cat-file --batch` and `git cat-file --batch-check` processes. If
+you see errors about "too many open files", or an
+inability to create new processes, you may want to lower this limit.
+
+Ideally, the number should be large enough to handle standard
+traffic. If you raise the limit, you should measure the cache hit ratio
+before and after. If the hit ratio does not improve, the higher limit is
+probably not making a meaningful difference. Here is an example
+Prometheus query to see the hit rate:
+
+```plaintext
+sum(rate(gitaly_catfile_cache_total{type="hit"}[5m])) / sum(rate(gitaly_catfile_cache_total{type=~"(hit)|(miss)"}[5m]))
+```
+
+Configure the `cat-file` cache in the [Gitaly configuration file](reference.md).
+
## Repository consistency checks
Gitaly runs repository consistency checks:
diff --git a/doc/administration/gitaly/praefect.md b/doc/administration/gitaly/praefect.md
index 66e220dacc2..112c441164d 100644
--- a/doc/administration/gitaly/praefect.md
+++ b/doc/administration/gitaly/praefect.md
@@ -949,8 +949,8 @@ You can also appoint an authoritative name server by setting it in this format:
1. Save the file and [reconfigure](../restart_gitlab.md#reconfigure-a-linux-package-installation).
1. On the Praefect clients (except Gitaly servers), edit `git_data_dirs` in
-`/etc/gitlab/gitlab.rb` as follows. Replace `PRAEFECT_SERVICE_DISCOVERY_ADDRESS`
-with Praefect service discovery address, such as `praefect.service.consul`.
+ `/etc/gitlab/gitlab.rb` as follows. Replace `PRAEFECT_SERVICE_DISCOVERY_ADDRESS`
+ with Praefect service discovery address, such as `praefect.service.consul`.
```ruby
git_data_dirs({
diff --git a/doc/administration/gitaly/reference.md b/doc/administration/gitaly/reference.md
index 946be6c8af3..169b6e00813 100644
--- a/doc/administration/gitaly/reference.md
+++ b/doc/administration/gitaly/reference.md
@@ -4,256 +4,24 @@ group: Gitaly
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Gitaly reference **(FREE SELF)**
+# Example configuration files **(FREE SELF)**
-Gitaly is configured via a [TOML](https://github.com/toml-lang/toml)
-configuration file. Unlike self-compiled installations, in Linux package installations you
-would not edit this file directly. For Linux package installations, the default file location is `/var/opt/gitlab/gitaly/config.toml`.
+Gitaly and Gitaly Cluster are configured by using configuration files. The default location of the configuration files
+depends on the type of installation you have:
-The configuration file is passed as an argument to the `gitaly` executable, which is usually done by either your Linux
-package installation or your [init](https://en.wikipedia.org/wiki/Init) script.
+- For Linux package installations, the default location for Gitaly and Gitaly Cluster configuration is in the
+ `/etc/gitlab/gitlab.rb` Ruby file.
+- For self-compiled, the default location for Gitaly and Gitaly Cluster configuration is in the
+ `/home/git/gitaly/config.toml` and `/home/git/gitaly/config.prafect.toml` TOML files.
-An [example configuration file](https://gitlab.com/gitlab-org/gitaly/blob/master/config.toml.example)
-can be found in the Gitaly project.
+You can find example TOML configuration files in the `gitaly` project for:
-## Format
+- Gitaly: <https://gitlab.com/gitlab-org/gitaly/-/blob/master/config.toml.example>
+- Gitaly Cluster: <https://gitlab.com/gitlab-org/gitaly/-/blob/master/config.praefect.toml.example>
-At the top level, `config.toml` defines the items described on the table below.
+If you are configuring a Linux package installation, you must convert the examples into Ruby to use them.
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `socket_path` | string | yes (if `listen_addr` is not set) | A path which Gitaly should open a Unix socket. |
-| `listen_addr` | string | yes (if `socket_path` is not set) | TCP address for Gitaly to listen on. |
-| `tls_listen_addr` | string | no | TCP over TLS address for Gitaly to listen on. |
-| `bin_dir` | string | yes | Directory containing Gitaly executables. |
-| `prometheus_listen_addr` | string | no | TCP listen address for Prometheus metrics. If not set, no Prometheus listener is started. |
+For more information on:
-For example:
-
-```toml
-socket_path = "/home/git/gitlab/tmp/sockets/private/gitaly.socket"
-listen_addr = "localhost:9999"
-tls_listen_addr = "localhost:8888"
-bin_dir = "/home/git/gitaly"
-prometheus_listen_addr = "localhost:9236"
-```
-
-### Authentication
-
-Gitaly can be configured to reject requests that do not contain a
-specific bearer token in their headers, which is a security measure to
-be used when serving requests over TCP:
-
-```toml
-[auth]
-# A non-empty token enables authentication.
-token = "the secret token"
-```
-
-Authentication is disabled when the token setting in `config.toml` is absent or
-an empty string.
-
-It is possible to temporarily disable authentication with the `transitioning`
-setting. This allows you to monitor if all clients are
-authenticating correctly without causing a service outage for clients
-that are still to be configured correctly:
-
-```toml
-[auth]
-token = "the secret token"
-transitioning = true
-```
-
-WARNING:
-Remember to disable `transitioning` when you are done
-changing your token settings.
-
-All authentication attempts are counted in Prometheus under
-the [`gitaly_authentications_total` metric](monitoring.md#queries).
-
-### TLS
-
-Gitaly supports TLS encryption. You need to bring your own certificates as
-this isn't provided automatically.
-
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `certificate_path` | string | no | Path to the certificate. |
-| `key_path` | string | no | Path to the key. |
-
-```toml
-tls_listen_addr = "localhost:8888"
-
-[tls]
-certificate_path = '/home/git/cert.cert'
-key_path = '/home/git/key.pem'
-```
-
-[Read more](tls_support.md) about TLS in Gitaly.
-
-### Storage
-
-GitLab repositories are grouped into directories known as storages, such as
-`/home/git/repositories`. They contain bare repositories managed
-by GitLab with names, such as `default`.
-
-These names and paths are also defined in the `gitlab.yml` configuration file of
-GitLab. When you run Gitaly on the same machine as GitLab (the default
-and recommended configuration) storage paths defined in the Gitaly `config.toml`
-must match those in `gitlab.yml`.
-
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `storage` | array | yes | An array of storage shards. |
-| `path` | string | yes | The path to the storage shard. |
-| `name` | string | yes | The name of the storage shard. |
-
-For example:
-
-```toml
-[[storage]]
-path = "/path/to/storage/repositories"
-name = "my_shard"
-
-[[storage]]
-path = "/path/to/other/repositories"
-name = "other_storage"
-```
-
-### Git
-
-The following values can be set in the `[git]` section of the configuration file.
-
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `bin_path` | string | no | Path to Git binary. If not set, is resolved using `PATH`. |
-| `catfile_cache_size` | integer | no | Maximum number of cached [cat-file processes](#cat-file-cache). Default is `100`. |
-| `signing_key` | string | no | Path to [GPG signing key](configure_gitaly.md#configure-commit-signing-for-gitlab-ui-commits). If not set, Gitaly doesn't sign commits made using the UI. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/19185) in GitLab 15.4. |
-
-#### `cat-file` cache
-
-A lot of Gitaly RPCs need to look up Git objects from repositories.
-Most of the time we use `git cat-file --batch` processes for that. For
-better performance, Gitaly can re-use these `git cat-file` processes
-across RPC calls. Previously used processes are kept around in a
-["Git cat-file cache"](https://about.gitlab.com/blog/2019/07/08/git-performance-on-nfs/#enter-cat-file-cache).
-To control how much system resources this uses, we have a maximum number of
-cat-file processes that can go into the cache.
-
-The default limit is 100 `cat-file`s, which constitute a pair of
-`git cat-file --batch` and `git cat-file --batch-check` processes. If
-you are seeing errors complaining about "too many open files", or an
-inability to create new processes, you may want to lower this limit.
-
-Ideally, the number should be large enough to handle standard
-traffic. If you raise the limit, you should measure the cache hit ratio
-before and after. If the hit ratio does not improve, the higher limit is
-probably not making a meaningful difference. Here is an example
-Prometheus query to see the hit rate:
-
-```plaintext
-sum(rate(gitaly_catfile_cache_total{type="hit"}[5m])) / sum(rate(gitaly_catfile_cache_total{type=~"(hit)|(miss)"}[5m]))
-```
-
-#### Custom Hooks
-
-> Method of configuring custom hooks directory documented here is preferred from GitLab 16.4. `[gitlab-shell] dir` configuration is no longer required.
-
-Gitaly supports [custom Git hooks](../server_hooks.md) that are
-used to perform tasks based on changes performed in any repository. The custom
-hooks directory is configured in the `[hooks]` section:
-
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `custom_hooks_dir` | string | no | The directory where custom Git hooks are installed. |
-
-Example:
-
-```toml
-[hooks]
-custom_hooks_dir = "/home/git/custom-hooks"
-```
-
-If left unset, no custom hooks are used.
-
-### GitLab
-
-> Method of configuring custom hooks directory documented here is preferred from GitLab 16.4. `[gitlab-shell] dir` configuration is no longer required.
-
-Gitaly must connect to the GitLab application to perform access
-checks when a user performs a change. The parameters to connect to GitLab must
-be configured in the `[gitlab]` section.
-
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `url` | string | yes | The URL of the GitLab server.
-| `secret` | string | no | The secret token used to authenticate with GitLab. |
-| `secret_file` | string | no | The path of the file containing the secret token used to authenticate with GitLab. |
-
-Only one of `secret` or `secret_file` can be configured.
-
-### Prometheus
-
-You can optionally configure Gitaly to record histogram latencies on GRPC method
-calls in Prometheus.
-
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `grpc_latency_buckets` | array | no | Prometheus stores each observation in a bucket, which means you'd get an approximation of latency. Optimizing the buckets gives more control over the accuracy of the approximation. |
-
-Example:
-
-```toml
-prometheus_listen_addr = "localhost:9236"
-
-[prometheus]
-grpc_latency_buckets = [0.001, 0.005, 0.025, 0.1, 0.5, 1.0, 10.0, 30.0, 60.0, 300.0, 1500.0]
-```
-
-### Logging
-
-The following values configure logging in Gitaly under the `[logging]` section.
-
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `format` | string | no | Log format: `text` or `json`. Default: `text`. |
-| `level` | string | no | Log level: `debug`, `info`, `warn`, `error`, `fatal`, or `panic`. Default: `info`. |
-| `sentry_dsn` | string | no | Sentry DSN (Data Source Name) for exception monitoring. |
-| `sentry_environment` | string | no | [Sentry Environment](https://docs.sentry.io/product/sentry-basics/environments/) for exception monitoring. |
-
-While the main Gitaly application logs go to `stdout`, there are some extra log
-files that go to a configured directory, like the GitLab Shell logs.
-GitLab Shell does not support `panic` or `trace` level logs:
-
-- `panic` falls back to `error`.
-- `trace` falls back to `debug`.
-- Any other invalid log levels default to `info`.
-
-Example:
-
-```toml
-[logging]
-level = "warn"
-dir = "/home/gitaly/logs"
-format = "json"
-sentry_dsn = "https://<key>:<secret>@sentry.io/<project>"
-ruby_sentry_dsn = "https://<key>:<secret>@sentry.io/<project>"
-```
-
-## Concurrency
-
-You can adjust the `concurrency` of each RPC endpoint.
-
-| Name | Type | Required | Description |
-| ---- | ---- | -------- | ----------- |
-| `concurrency` | array | yes | An array of RPC endpoints. |
-| `rpc` | string | no | The name of the RPC endpoint (`/gitaly.RepositoryService/GarbageCollect`). |
-| `max_per_repo` | integer | no | Concurrency per RPC per repository. |
-
-Example:
-
-```toml
-[[concurrency]]
-rpc = "/gitaly.RepositoryService/GarbageCollect"
-max_per_repo = 1
-```
+- Configuring Gitaly, see [Configure Gitaly](configure_gitaly.md).
+- Configuring Gitaly Cluster, see [Configure Gitaly Cluster](praefect.md).
diff --git a/doc/administration/gitaly/troubleshooting.md b/doc/administration/gitaly/troubleshooting.md
index 7d0255a3efb..6c355f79191 100644
--- a/doc/administration/gitaly/troubleshooting.md
+++ b/doc/administration/gitaly/troubleshooting.md
@@ -224,7 +224,7 @@ the application might be fetching this secret from a different file. Your Gitaly
If that setting is missing, GitLab defaults to using `.gitlab_shell_secret` under
`/opt/gitlab/embedded/service/gitlab-rails/.gitlab_shell_secret`.
-### Repository pushes fail
+### Repository pushes fail with `401 Unauthorized` and `JWT::VerificationError`
When attempting `git push`, you can see:
@@ -240,7 +240,7 @@ When attempting `git push`, you can see:
}
```
-This error occurs when the GitLab server has been upgraded to GitLab 15.5 or later but Gitaly has not yet been upgraded.
+This combination of errors occurs when the GitLab server has been upgraded to GitLab 15.5 or later but Gitaly has not yet been upgraded.
From GitLab 15.5, GitLab [authenticates with GitLab Shell using a JWT token instead of a shared secret](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86148).
You should follow the [recommendations on upgrading external Gitaly](../../update/plan_your_upgrade.md#external-gitaly) and upgrade Gitaly before the GitLab
@@ -441,6 +441,23 @@ To resolve this, remove the `noexec` option from the file system mount. An alter
Because Gitaly commit signing is headless and not associated with a specific user, the GPG signing key must be created without a passphrase, or the passphrase must be removed before export.
+### Gitaly logs show errors in `info` messages
+
+Because of a bug [introduced](https://gitlab.com/gitlab-org/gitaly/-/merge_requests/6201) in GitLab 16.3, additional entries were written to the
+[Gitaly logs](../logs/index.md#gitaly-logs). These log entries contained `"level":"info"` but the `msg` string appeared to contain an error.
+
+For example:
+
+```json
+{"level":"info","msg":"[core] [Server #3] grpc: Server.Serve failed to create ServerTransport: connection error: desc = \"ServerHandshake(\\\"x.x.x.x:x\\\") failed: wrapped server handshake: EOF\"","pid":6145,"system":"system","time":"2023-12-14T21:20:39.999Z"}
+```
+
+The reason for this log entry is that the underlying gRPC library sometimes output verbose transportation logs. These log entries appear to be errors but are, in general,
+safe to ignore.
+
+This bug was [fixed](https://gitlab.com/gitlab-org/gitaly/-/merge_requests/6513/) in GitLab 16.4.5, 16.5.5, and 16.6.0, which prevents these types of messages from
+being written to the Gitaly logs.
+
## Troubleshoot Praefect (Gitaly Cluster)
The following sections provide possible solutions to Gitaly Cluster errors.
diff --git a/doc/administration/integration/plantuml.md b/doc/administration/integration/plantuml.md
index fbd3e636123..9e8bd323f5a 100644
--- a/doc/administration/integration/plantuml.md
+++ b/doc/administration/integration/plantuml.md
@@ -91,7 +91,7 @@ server to generate the diagrams:
To run a PlantUML container in Docker, run this command:
```shell
-docker run -d --name plantuml -p 8080:8080 plantuml/plantuml-server:tomcat
+docker run -d --name plantuml -p 8005:8080 plantuml/plantuml-server:tomcat
```
The **PlantUML URL** is the hostname of the server running the container.
@@ -99,7 +99,7 @@ The **PlantUML URL** is the hostname of the server running the container.
When running GitLab in Docker, it must have access to the PlantUML container.
To achieve that, use [Docker Compose](https://docs.docker.com/compose/).
In this basic `docker-compose.yml` file, PlantUML is accessible to GitLab at the URL
-`http://plantuml:8080/`:
+`http://plantuml:8005/`:
```yaml
version: "3"
@@ -108,7 +108,7 @@ services:
image: 'gitlab/gitlab-ee:12.2.5-ee.0'
environment:
GITLAB_OMNIBUS_CONFIG: |
- nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n rewrite ^/-/plantuml/(.*) /$1 break;\n proxy_cache off; \n proxy_pass http://plantuml:8080/; \n}\n"
+ nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n rewrite ^/-/plantuml/(.*) /$1 break;\n proxy_cache off; \n proxy_pass http://plantuml:8005/; \n}\n"
plantuml:
image: 'plantuml/plantuml-server:tomcat'
@@ -125,6 +125,8 @@ following:
- `http://plantuml:8080/`
- `http://localhost:8080/plantuml/`
+- `http://plantuml:8005/`
+- `http://localhost:8005/plantuml/`
If you're running [GitLab with TLS](https://docs.gitlab.com/omnibus/settings/ssl/index.html)
you must configure this redirection, because PlantUML uses the insecure HTTP protocol.
@@ -137,7 +139,7 @@ To enable this redirection:
```ruby
# Docker deployment
- nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n rewrite ^/-/plantuml/(.*) /$1 break;\n proxy_cache off; \n proxy_pass http://plantuml:8080/; \n}\n"
+ nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n rewrite ^/-/plantuml/(.*) /$1 break;\n proxy_cache off; \n proxy_pass http://plantuml:8005/; \n}\n"
```
1. To activate the changes, run the following command:
diff --git a/doc/administration/job_artifacts.md b/doc/administration/job_artifacts.md
index 33dc2020331..0658af2360b 100644
--- a/doc/administration/job_artifacts.md
+++ b/doc/administration/job_artifacts.md
@@ -282,7 +282,7 @@ To migrate back to local storage, you must
If [`artifacts:expire_in`](../ci/yaml/index.md#artifactsexpire_in) is used to set
an expiry for the artifacts, they are marked for deletion right after that date passes.
-Otherwise, they expire per the [default artifacts expiration setting](../administration/settings/continuous_integration.md).
+Otherwise, they expire per the [default artifacts expiration setting](../administration/settings/continuous_integration.md#default-artifacts-expiration).
Artifacts are deleted by the `expire_build_artifacts_worker` cron job which Sidekiq
runs every 7 minutes (`*/7 * * * *` in [Cron](../topics/cron/index.md) syntax).
diff --git a/doc/administration/job_artifacts_troubleshooting.md b/doc/administration/job_artifacts_troubleshooting.md
index 138803a2675..6cdde87cc1d 100644
--- a/doc/administration/job_artifacts_troubleshooting.md
+++ b/doc/administration/job_artifacts_troubleshooting.md
@@ -24,7 +24,7 @@ reasons are:
[Rake task for _orphaned_ artifact files](../raketasks/cleanup.md#remove-orphan-artifact-files)
to remove these. This script should always find work to do, as it also removes empty directories (see above).
- [Artifact housekeeping was changed significantly](#housekeeping-disabled-in-gitlab-146-to-152),
- and you might need to enable a feature flag to used the updated system.
+ and you might need to enable a feature flag to use the updated system.
- The [keep latest artifacts from most recent success jobs](../ci/jobs/job_artifacts.md#keep-artifacts-from-most-recent-successful-jobs)
feature is enabled.
@@ -220,7 +220,7 @@ end
### List projects by total size of job artifacts stored
List the top 20 projects, sorted by the total size of job artifacts stored, by
-running the following code in the Rails console (`sudo gitlab-rails console`):
+running the following code in the [Rails console](operations/rails_console.md):
```ruby
include ActionView::Helpers::NumberHelper
@@ -235,7 +235,7 @@ number you want.
### List largest artifacts in a single project
List the 50 largest job artifacts in a single project by running the following
-code in the Rails console (`sudo gitlab-rails console`):
+code in the [Rails console](operations/rails_console.md):
```ruby
include ActionView::Helpers::NumberHelper
@@ -272,8 +272,11 @@ To change the number of job artifacts listed, change the number in `limit(50)`.
WARNING:
These commands remove data permanently from database and storage. Before running them, we highly recommend seeking guidance from a Support Engineer, or running them in a test environment with a backup of the instance ready to be restored, just in case.
-If you need to manually remove job artifacts associated with multiple jobs while
-**retaining their job logs**, this can be done from the Rails console (`sudo gitlab-rails console`):
+You can manually remove job artifacts associated with multiple completed jobs while
+**retaining their job logs** from the [Rails console](operations/rails_console.md).
+A completed job is any job with the status of success, failed, canceled, or skipped.
+
+To delete jobs completed before a specific date:
1. Select jobs to be deleted:
@@ -297,7 +300,7 @@ If you need to manually remove job artifacts associated with multiple jobs while
["keep"](../ci/jobs/job_artifacts.md#download-job-artifacts).
```ruby
- builds_to_clear = builds_with_artifacts.where("finished_at < ?", 1.week.ago)
+ builds_to_clear = builds_with_artifacts.where("finished_at < ?", 1.year.ago)
builds_to_clear.find_each do |build|
Ci::JobArtifacts::DeleteService.new(build).execute
build.update!(artifacts_expire_at: Time.now)
@@ -307,19 +310,16 @@ If you need to manually remove job artifacts associated with multiple jobs while
In [GitLab 15.3 and earlier](https://gitlab.com/gitlab-org/gitlab/-/issues/372537), use the following instead:
```ruby
- builds_to_clear = builds_with_artifacts.where("finished_at < ?", 1.week.ago)
+ builds_to_clear = builds_with_artifacts.where("finished_at < ?", 1.year.ago)
builds_to_clear.find_each do |build|
build.artifacts_expire_at = Time.now
build.erase_erasable_artifacts!
end
```
- `1.week.ago` is a Rails `ActiveSupport::Duration` method which calculates a new
- date or time in the past. Other valid examples are:
-
- - `7.days.ago`
- - `3.months.ago`
- - `1.year.ago`
+ `1.year.ago` is a Rails [`ActiveSupport::Duration`](https://api.rubyonrails.org/classes/ActiveSupport/Duration.html) method.
+ Start with a long duration to reduce the risk of accidentally deleting artifacts that are still in use.
+ Rerun the deletion with shorter durations as needed, for example `3.months.ago`, `2.weeks.ago`, or `7.days.ago`.
`erase_erasable_artifacts!` is a synchronous method, and upon execution the artifacts are immediately removed;
they are not scheduled by a background queue.
@@ -329,8 +329,11 @@ If you need to manually remove job artifacts associated with multiple jobs while
WARNING:
These commands remove data permanently from both the database and from disk. Before running them, we highly recommend seeking guidance from a Support Engineer, or running them in a test environment with a backup of the instance ready to be restored, just in case.
-If you need to manually remove **all** job artifacts associated with multiple jobs,
-**including job logs**, this can be done from the Rails console (`sudo gitlab-rails console`):
+You can manually remove job artifacts associated with multiple completed jobs while
+**retaining their job logs** from the [Rails console](operations/rails_console.md).
+A completed job is any job with the status of success, failed, canceled, or skipped.
+
+To delete jobs completed before a specific date:
1. Select the jobs to be deleted:
@@ -371,7 +374,7 @@ If you need to manually remove **all** job artifacts associated with multiple jo
1. Erase the job artifacts and logs older than a specific date:
```ruby
- builds_to_clear = builds_with_artifacts.where("finished_at < ?", 1.week.ago)
+ builds_to_clear = builds_with_artifacts.where("finished_at < ?", 1.year.ago)
builds_to_clear.find_each do |build|
print "Ci::Build ID #{build.id}... "
@@ -387,12 +390,9 @@ If you need to manually remove **all** job artifacts associated with multiple jo
In [GitLab 15.3 and earlier](https://gitlab.com/gitlab-org/gitlab/-/issues/369132), replace
`Ci::BuildEraseService.new(build, admin_user).execute` with `build.erase(erased_by: admin_user)`.
- `1.week.ago` is a Rails `ActiveSupport::Duration` method which calculates a new
- date or time in the past. Other valid examples are:
-
- - `7.days.ago`
- - `3.months.ago`
- - `1.year.ago`
+ `1.year.ago` is a Rails [`ActiveSupport::Duration`](https://api.rubyonrails.org/classes/ActiveSupport/Duration.html) method.
+ Start with a long duration to reduce the risk of accidentally deleting artifacts that are still in use.
+ Rerun the deletion with shorter durations as needed, for example `3.months.ago`, `2.weeks.ago`, or `7.days.ago`.
## Job artifact upload fails with error 500
diff --git a/doc/administration/labels.md b/doc/administration/labels.md
index 25a86b8c2fc..dcecbb84c3d 100644
--- a/doc/administration/labels.md
+++ b/doc/administration/labels.md
@@ -6,7 +6,12 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Labels administration **(FREE SELF)**
-To manage labels for the GitLab instance, in the Admin Area, on the left sidebar, select **Labels**. For more details on how to manage labels, see [Labels](../user/project/labels.md).
+To manage labels for the GitLab instance:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Labels**.
+
+For more details on how to manage labels, see [Labels](../user/project/labels.md).
Labels created in the Admin Area are automatically added to new projects.
They are not available to new groups.
diff --git a/doc/administration/license.md b/doc/administration/license.md
index 1dc39d9ac23..9b95af28eed 100644
--- a/doc/administration/license.md
+++ b/doc/administration/license.md
@@ -36,6 +36,22 @@ To activate your instance with an activation code:
The subscription is activated.
+### Using one activation code for multiple instances
+
+You can use one activation code or license key for multiple self-managed instances if the users on
+these instances are the same or are a subset of your licensed production instance. This means that if
+you have a licensed production instance of GitLab, and other instances with the same list of users, the
+production activation code applies, even if these users are configured in different groups and projects.
+
+### Uploading licenses for scaled architectures
+
+In a scaled architecture, upload the license file to one application instance only. The license is stored in the
+database and is replicated to all your application instances so that you do not need to upload the license to all instances.
+
+### Uploading licenses for GitLab Geo
+
+When using GitLab Geo, you only need to upload the license to your primary Geo instance. The license is stored in the database and is replicated to all instances.
+
If you have an offline environment,
[activate GitLab EE with a license file or key](license_file.md) instead.
diff --git a/doc/administration/logs/index.md b/doc/administration/logs/index.md
index 1b1591a36d9..08f31439b26 100644
--- a/doc/administration/logs/index.md
+++ b/doc/administration/logs/index.md
@@ -15,8 +15,8 @@ This guide talks about how to read and use these system log files.
Read more about the log system and using the logs:
- [Customize logging on Linux package installations](https://docs.gitlab.com/omnibus/settings/logs.html)
-including adjusting log retention, log forwarding,
-switching logs from JSON to plain text logging, and more.
+ including adjusting log retention, log forwarding,
+ switching logs from JSON to plain text logging, and more.
- [How to parse and analyze JSON logs](../logs/log_parsing.md).
## Log Levels
@@ -811,7 +811,7 @@ GraphQL queries are recorded in the file. For example:
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133371) in GitLab 16.5.
The `clickhouse.log` file logs information related to the
-ClickHouse database client in GitLab.
+[ClickHouse database client](../../integration/clickhouse.md) in GitLab.
## `migrations.log`
diff --git a/doc/administration/logs/tracing_correlation_id.md b/doc/administration/logs/tracing_correlation_id.md
index f6b341ff114..a5f6b103d1f 100644
--- a/doc/administration/logs/tracing_correlation_id.md
+++ b/doc/administration/logs/tracing_correlation_id.md
@@ -36,7 +36,7 @@ To locate a relevant request and view its correlation ID:
1. To help isolate the requests you are looking for, you can filter for `document` requests.
1. Select the request of interest to view further detail.
1. Go to the **Headers** section and look for **Response Headers**. There you should find an `x-request-id` header with a
-value that was randomly generated by GitLab for the request.
+ value that was randomly generated by GitLab for the request.
See the following example:
diff --git a/doc/administration/monitoring/prometheus/gitlab_metrics.md b/doc/administration/monitoring/prometheus/gitlab_metrics.md
index 80121c7c235..f1d1b504c9d 100644
--- a/doc/administration/monitoring/prometheus/gitlab_metrics.md
+++ b/doc/administration/monitoring/prometheus/gitlab_metrics.md
@@ -180,6 +180,8 @@ The following metrics are available:
| `gitlab_connection_pool_size` | Gauge | 16.7 | Size of connection pool |
| `gitlab_connection_pool_available_count` | Gauge | 16.7 | Number of available connections in the pool |
| `gitlab_security_policies_scan_result_process_duration_seconds` | Histogram | 16.7 | The amount of time to process scan result policies |
+| `gitlab_highlight_usage` | Counter | 16.8 | The number of times `Gitlab::Highlight` is used | `used_on` |
+| `dependency_linker_usage` | Counter | 16.8 | The number of times dependency linker is used | `used_on` |
## Metrics controlled by a feature flag
diff --git a/doc/administration/monitoring/prometheus/index.md b/doc/administration/monitoring/prometheus/index.md
index bd3f2a20006..1fe05ed7538 100644
--- a/doc/administration/monitoring/prometheus/index.md
+++ b/doc/administration/monitoring/prometheus/index.md
@@ -246,14 +246,14 @@ To use an external Prometheus server:
```
1. To allow the Prometheus server to fetch from the [GitLab metrics](#gitlab-metrics) endpoint, add the Prometheus
-server IP address to the [monitoring IP allowlist](../ip_allowlist.md):
+ server IP address to the [monitoring IP allowlist](../ip_allowlist.md):
```ruby
gitlab_rails['monitoring_whitelist'] = ['127.0.0.0/8', '192.168.0.1']
```
1. As we are setting each bundled service's [exporter](#bundled-software-metrics) to listen on a network address,
-update the firewall on the instance to only allow traffic from your Prometheus IP for the exporters enabled. A full reference list of exporter services and their respective ports can be found [here](../../package_information/defaults.md#ports).
+ update the firewall on the instance to only allow traffic from your Prometheus IP for the exporters enabled. A full reference list of exporter services and their respective ports can be found [here](../../package_information/defaults.md#ports).
1. [Reconfigure GitLab](../../restart_gitlab.md#reconfigure-a-linux-package-installation) to apply the changes.
1. Edit the Prometheus server's configuration file.
1. Add each node's exporters to the Prometheus server's
diff --git a/doc/administration/object_storage.md b/doc/administration/object_storage.md
index 9a9b2811cf0..0862921f0d7 100644
--- a/doc/administration/object_storage.md
+++ b/doc/administration/object_storage.md
@@ -345,7 +345,7 @@ gitlab_rails['object_store']['connection'] = {
If you use ADC, be sure that:
- The service account that you use has the
-[`iam.serviceAccounts.signBlob` permission](https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob).
+ [`iam.serviceAccounts.signBlob` permission](https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob).
Typically this is done by granting the `Service Account Token Creator` role to the service account.
- Your virtual machines have the [correct access scopes to access Google Cloud APIs](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#changeserviceaccountandscopes). If the machines do not have the right scope, the error logs may show:
@@ -431,6 +431,29 @@ gitlab_rails['object_store']['connection'] = {
The signature version must be `2`. Using v4 results in a HTTP 411 Length Required error.
For more information, see [issue #4419](https://gitlab.com/gitlab-org/gitlab/-/issues/4419).
+### Hitachi Vantara HCP
+
+NOTE:
+Connections to HCP may return an error stating `SigntureDoesNotMatch - The request signature we calculated does not match the signature you provided. Check your HCP Secret Access key and signing method.` In these cases, set the `endpoint` to the URL of the tenant instead of the namespace, and ensure bucket paths are configured as `<namespace_name>/<bucket_name>`.
+
+[HCP](https://knowledge.hitachivantara.com/Documents/Storage/HCP_for_Cloud_Scale/1.0.0/Adminstering_HCP_for_cloud_scale/Getting_started/02_Support_for_Amazon_S3_API) provides an S3-compatible API. Use the following configuration example:
+
+```ruby
+gitlab_rails['object_store']['connection'] = {
+ 'provider' => 'AWS',
+ 'endpoint' => 'https://<tenant_endpoint>',
+ 'path_style' => true,
+ 'region' => 'eu1',
+ 'aws_access_key_id' => 'ACCESS_KEY',
+ 'aws_secret_access_key' => 'SECRET_KEY',
+ 'aws_signature_version' => 4,
+ 'enable_signature_v4_streaming' => false
+}
+
+# Example of <namespace_name/bucket_name> formatting
+gitlab_rails['object_store']['objects']['artifacts']['bucket'] = '<namespace_name>/<bucket_name>'
+```
+
## Full example using the consolidated form and Amazon S3
The following example uses AWS S3 to enable object storage for all supported services:
@@ -874,28 +897,28 @@ When not proxying files, GitLab returns an
This can result in some of the following problems:
- If GitLab is using non-secure HTTP to access the object storage, clients may generate
-`https->http` downgrade errors and refuse to process the redirect. The solution to this
-is for GitLab to use HTTPS. LFS, for example, generates this error:
+ `https->http` downgrade errors and refuse to process the redirect. The solution to this
+ is for GitLab to use HTTPS. LFS, for example, generates this error:
- ```plaintext
- LFS: lfsapi/client: refusing insecure redirect, https->http
- ```
+ ```plaintext
+ LFS: lfsapi/client: refusing insecure redirect, https->http
+ ```
- Clients need to trust the certificate authority that issued the object storage
-certificate, or may return common TLS errors such as:
+ certificate, or may return common TLS errors such as:
- ```plaintext
- x509: certificate signed by unknown authority
- ```
+ ```plaintext
+ x509: certificate signed by unknown authority
+ ```
- Clients need network access to the object storage.
-Network firewalls could block access.
-Errors that might result
-if this access is not in place include:
+ Network firewalls could block access.
+ Errors that might result
+ if this access is not in place include:
- ```plaintext
- Received status code 403 from server: Forbidden
- ```
+ ```plaintext
+ Received status code 403 from server: Forbidden
+ ```
- Object storage buckets need to allow Cross-Origin Resource Sharing
(CORS) access from the URL of the GitLab instance. Attempting to load
diff --git a/doc/administration/operations/gitlab_sshd.md b/doc/administration/operations/gitlab_sshd.md
index 86c6d9d7fba..a14f556af84 100644
--- a/doc/administration/operations/gitlab_sshd.md
+++ b/doc/administration/operations/gitlab_sshd.md
@@ -48,7 +48,7 @@ The following instructions enable `gitlab-sshd` on a different port than OpenSSH
```
1. Optional. By default, Linux package installations generate SSH host keys for `gitlab-sshd` if
-they do not exist in `/var/opt/gitlab/gitlab-sshd`. If you wish to disable this automatic generation, add this line:
+ they do not exist in `/var/opt/gitlab/gitlab-sshd`. If you wish to disable this automatic generation, add this line:
```ruby
gitlab_sshd['generate_host_keys'] = false
diff --git a/doc/administration/operations/index.md b/doc/administration/operations/index.md
index 33f407b2dbf..d1ec818a2a5 100644
--- a/doc/administration/operations/index.md
+++ b/doc/administration/operations/index.md
@@ -1,6 +1,7 @@
---
stage: Systems
group: Distribution
+description: Backup and restore, move repos, maintenance tasks.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/administration/package_information/supported_os.md b/doc/administration/package_information/supported_os.md
index 89b2f78f6d9..b85d6b8dd07 100644
--- a/doc/administration/package_information/supported_os.md
+++ b/doc/administration/package_information/supported_os.md
@@ -28,7 +28,6 @@ architecture.
| Debian 10 | GitLab CE / GitLab EE 12.2.0 | amd64, arm64 | [Debian Install Documentation](https://about.gitlab.com/install/#debian) | 2024 | <https://wiki.debian.org/LTS> |
| Debian 11 | GitLab CE / GitLab EE 14.6.0 | amd64, arm64 | [Debian Install Documentation](https://about.gitlab.com/install/#debian) | 2026 | <https://wiki.debian.org/LTS> |
| Debian 12 | GitLab CE / GitLab EE 16.1.0 | amd64, arm64 | [Debian Install Documentation](https://about.gitlab.com/install/#debian) | TBD | <https://wiki.debian.org/LTS> |
-| OpenSUSE 15.4 | GitLab CE / GitLab EE 15.7.0 | x86_64, aarch64 | [OpenSUSE Install Documentation](https://about.gitlab.com/install/#opensuse-leap) | Nov 2023 | <https://en.opensuse.org/Lifetime> |
| OpenSUSE 15.5 | GitLab CE / GitLab EE 16.4.0 | x86_64, aarch64 | [OpenSUSE Install Documentation](https://about.gitlab.com/install/#opensuse-leap) | Dec 2024 | <https://en.opensuse.org/Lifetime> |
| RHEL 8 | GitLab CE / GitLab EE 12.8.1 | x86_64, arm64 | [Use CentOS Install Documentation](https://about.gitlab.com/install/#centos-7) | May 2029 | [RHEL Details](https://access.redhat.com/support/policy/updates/errata/#Life_Cycle_Dates) |
| RHEL 9 | GitLab CE / GitLab EE 16.0.0 | x86_64, arm64 | [Use CentOS Install Documentation](https://about.gitlab.com/install/#centos-7) | May 2032 | [RHEL Details](https://access.redhat.com/support/policy/updates/errata/#Life_Cycle_Dates) |
@@ -106,12 +105,13 @@ release for them can be found below:
| Raspbian Stretch | [June 2020](https://downloads.raspberrypi.org/raspbian/images/raspbian-2019-04-09/) | [GitLab CE](https://packages.gitlab.com/app/gitlab/raspberry-pi2/search?q=gitlab-ce_13.3&dist=raspbian%2Fstretch) 13.3 |
| Debian Jessie | [June 2020](https://www.debian.org/News/2020/20200709) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce_13.2&dist=debian%2Fjessie) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=gitlab-ee_13.2&dist=debian%2Fjessie) 13.3 |
| CentOS 6 | [November 2020](https://wiki.centos.org/About/Product) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=13.6&filter=all&filter=all&dist=el%2F6) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=13.6&filter=all&filter=all&dist=el%2F6) 13.6 |
-| CentOS 8 | [December 2021](https://wiki.centos.org/About/Product) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=14.6&filter=all&filter=all&dist=el%2F8) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=14.6&filter=all&filter=all&dist=el%2F8) 14.6 |
+| CentOS 8 | [December 2021](https://wiki.centos.org/About/Product) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=14.6&filter=all&filter=all&dist=el%2F8) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=14.6&filter=all&filter=all&dist=el%2F8) 14.6 |
| OpenSUSE 15.1 | [November 2020](https://en.opensuse.org/Lifetime#Discontinued_distributions) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce-13.12&dist=opensuse%2F15.1) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=gitlab-ee-13.12&dist=opensuse%2F15.1) 13.12 |
| Ubuntu 16.04 | [April 2021](https://ubuntu.com/info/release-end-of-life) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce_13.12&dist=ubuntu%2Fxenial) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=gitlab-ee_13.12&dist=ubuntu%2Fxenial) 13.12 |
| OpenSUSE 15.2 | [December 2021](https://en.opensuse.org/Lifetime#Discontinued_distributions) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce-14.7&dist=opensuse%2F15.2) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=gitlab-ee-14.7&dist=opensuse%2F15.2) 14.7 |
| Debian 9 "Stretch" | [June 2022](https://lists.debian.org/debian-lts-announce/2022/07/msg00002.html) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce_15.2&dist=debian%2Fstretch) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=gitlab-ee_15.2&dist=debian%2Fstretch) 15.2 |
-| OpenSUSE 15.3 | [December 2022](https://en.opensuse.org/Lifetime#Discontinued_distributions) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce-15.10&dist=opensuse%2F15.3) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=gitlab-ee-15.10&dist=opensuse%2F15.3) 15.10 |
+| OpenSUSE 15.3 | [December 2022](https://en.opensuse.org/Lifetime#Discontinued_distributions) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce-15.10&dist=opensuse%2F15.3) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=gitlab-ee-15.10&dist=opensuse%2F15.3) 15.10 |
+| OpenSUSE 15.4 | [December 2023](https://en.opensuse.org/Lifetime#Discontinued_distributions) | [GitLab CE](https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce-16.7&dist=opensuse%2F15.4) / [GitLab EE](https://packages.gitlab.com/app/gitlab/gitlab-ee/search?q=gitlab-ee-16.7&dist=opensuse%2F15.4) 16.7 |
NOTE:
An exception to this deprecation policy is when we are unable to provide
diff --git a/doc/administration/pages/index.md b/doc/administration/pages/index.md
index 0594c4b93bd..150e0115eb7 100644
--- a/doc/administration/pages/index.md
+++ b/doc/administration/pages/index.md
@@ -249,7 +249,7 @@ outside world.
```
1. If you haven't named your certificate and key `example.io.crt` and `example.io.key`,
-you must also add the full paths as shown below:
+ you must also add the full paths as shown below:
```ruby
pages_nginx['ssl_certificate'] = "/etc/gitlab/ssl/pages-nginx.crt"
@@ -258,8 +258,8 @@ you must also add the full paths as shown below:
1. [Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation).
1. If you're using [Pages Access Control](#access-control), update the redirect URI in the GitLab Pages
-[System OAuth application](../../integration/oauth_provider.md#create-an-instance-wide-application)
-to use the HTTPS protocol.
+ [System OAuth application](../../integration/oauth_provider.md#create-an-instance-wide-application)
+ to use the HTTPS protocol.
WARNING:
Multiple wildcards for one instance is not supported. Only one wildcard per instance can be assigned.
@@ -517,7 +517,7 @@ world. Custom domains and TLS are supported.
If you don't have IPv6, you can omit the IPv6 address.
1. If you haven't named your certificate `example.io.crt` and your key `example.io.key`,
-then you need to also add the full paths as shown below:
+ then you need to also add the full paths as shown below:
```ruby
gitlab_pages['cert'] = "/etc/gitlab/ssl/example.io.crt"
@@ -526,8 +526,8 @@ then you need to also add the full paths as shown below:
1. [Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation).
1. If you're using [Pages Access Control](#access-control), update the redirect URI in the GitLab Pages
-[System OAuth application](../../integration/oauth_provider.md#create-an-instance-wide-application)
-to use the HTTPS protocol.
+ [System OAuth application](../../integration/oauth_provider.md#create-an-instance-wide-application)
+ to use the HTTPS protocol.
### Custom domain verification
@@ -1011,25 +1011,20 @@ Valid time units are `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`.
Examples:
- Increasing `gitlab_cache_expiry` allows items to exist in the cache longer.
-This setting might be useful if the communication between GitLab Pages and GitLab Rails
-is not stable.
-
+ This setting might be useful if the communication between GitLab Pages and GitLab Rails
+ is not stable.
- Increasing `gitlab_cache_refresh` reduces the frequency at which GitLab Pages
-requests a domain's configuration from GitLab Rails. This setting might be useful
-GitLab Pages generates too many requests to GitLab API and content does not change frequently.
-
+ requests a domain's configuration from GitLab Rails. This setting might be useful
+ GitLab Pages generates too many requests to GitLab API and content does not change frequently.
- Decreasing `gitlab_cache_cleanup` removes expired items from the cache more frequently,
-reducing the memory usage of your Pages node.
-
+ reducing the memory usage of your Pages node.
- Decreasing `gitlab_retrieval_timeout` allows you to stop the request to GitLab Rails
-more quickly. Increasing it allows more time to receive a response from the API,
-useful in slow networking environments.
-
+ more quickly. Increasing it allows more time to receive a response from the API,
+ useful in slow networking environments.
- Decreasing `gitlab_retrieval_interval` makes requests to the API more frequently,
-only when there is an error response from the API, for example a connection timeout.
-
+ only when there is an error response from the API, for example a connection timeout.
- Decreasing `gitlab_retrieval_retries` reduces the number of times a domain's
-configuration is tried to be resolved automatically before reporting an error.
+ configuration is tried to be resolved automatically before reporting an error.
## Object storage settings
@@ -1212,6 +1207,8 @@ TLS connection-based rate limits are enforced using the following:
- `rate_limit_tls_domain`: Set the maximum threshold in number of TLS connections per hosted pages domain per second. Set to 0 to disable this feature.
- `rate_limit_tls_domain_burst`: Sets the maximum threshold of number of TLS connections allowed in an initial outburst of TLS connections per hosted pages domain.
+An IPv6 address receives a large prefix in the 128-bit address space. The prefix is typically at least size /64. Because of the large number of possible addresses, if the client's IP address is IPv6, the limit is applied to the IPv6 prefix with a length of 64, rather than the entire IPv6 address.
+
#### Enable HTTP requests rate limits by source-IP
> [Introduced](https://gitlab.com/gitlab-org/gitlab-pages/-/issues/631) in GitLab 14.5.
diff --git a/doc/administration/postgresql/multiple_databases.md b/doc/administration/postgresql/multiple_databases.md
index 2caa4f147c4..b91b0e573f0 100644
--- a/doc/administration/postgresql/multiple_databases.md
+++ b/doc/administration/postgresql/multiple_databases.md
@@ -1,4 +1,5 @@
---
+
stage: Data Stores
group: Tenant Scale
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
@@ -35,8 +36,95 @@ databases. Some examples:
## Known issues
- Once data is migrated to the `ci` database, you cannot migrate it back.
+- HA setups or PgBouncer setups are not yet supported by this procedure.
+
+## Migrate existing installations using a script
+
+> A script for migrating existing Linux package installations was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/368729) in GitLab 16.8.
+
+NOTE:
+If something unexpected happens during the migration, it is safe to start over.
+
+### Existing Linux package installations
+
+#### Preparation
+
+1. Verify available disk space:
+
+ - The database node that will store the `gitlabhq_production_ci` database needs enough space to store a copy of the existing database: we _duplicate_ `gitlabhq_production`. Run the following SQL query to find out how much space is needed. Add 25%, to ensure you will not run out of disk space.
+
+ ```shell
+ sudo gitlab-psql -c "SELECT pg_size_pretty( pg_database_size('gitlabhq_production') );"
+ ```
-## Migrate existing installations
+ - During the process, a dump of the `gitlabhq_production` database needs to be temporarily stored on the filesystem of the node that will run the migration. Execute the following SQL statement to find out how much local disk space will be used. Add 25%, to ensure you will not run out of disk space.
+
+ ```shell
+ sudo gitlab-psql -c "select sum(pg_table_size(concat(table_schema,'.',table_name))) from information_schema.tables where table_catalog = 'gitlabhq_production' and table_type = 'BASE TABLE'"
+ ```
+
+1. Plan for downtime. The downtime is dependent on the size of the `gitlabhq_production` database.
+
+ - We dump `gitlabhq_production` and restore it into a new `gitlabhq_production_ci` database. Database sizes below 100 GB should be done within 30 minutes.
+ - We advise to also plan some time for smaller tasks like modifying the configuration.
+
+1. Create the new `gitlabhq_production_ci` database:
+
+ ```shell
+ sudo gitlab-psql -c "CREATE DATABASE gitlabhq_production_ci WITH OWNER 'gitlab'"
+ ```
+
+#### Migration
+
+This process includes downtime. Running the migration script will stop the GitLab instance. After the migration has been finished, the instance is restarted.
+
+1. Create a backup of the configuration:
+
+ ```shell
+ sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.org
+ ```
+
+1. Edit `/etc/gitlab/gitlab.rb` and save the changes. Do **not** run the reconfigure command, the migration script will run that for you.
+
+ ```ruby
+ gitlab_rails['env'] = { 'GITLAB_ALLOW_SEPARATE_CI_DATABASE' => 'true' }
+ gitlab_rails['databases']['ci']['enable'] = true
+ gitlab_rails['databases']['ci']['db_database'] = 'gitlabhq_production_ci'
+ ```
+
+1. Run the migration script:
+
+ ```shell
+ sudo gitlab-ctl pg-decomposition-migration
+ ```
+
+At this point, the GitLab instance should start and be functional.
+
+If you want to abort the procedure and you want to start GitLab without changing anything, run the following commands:
+
+```shell
+sudo cp /etc/gitlab/gitlab.rb.org /etc/gitlab/gitlab.rb
+sudo gitlab-ctl reconfigure
+sudo gitlab-ctl restart
+```
+
+#### Cleaning up
+
+If everything works as expected, we can clean up unneeded data:
+
+- Delete the CI data in Main database:
+
+```shell
+sudo gitlab-rake gitlab:db:truncate_legacy_tables:main
+```
+
+- Delete the Main data in CI database:
+
+```shell
+sudo gitlab-rake gitlab:db:truncate_legacy_tables:ci
+```
+
+## Migrate existing installations (manual procedure)
To migrate existing data from the `main` database to the `ci` database, you can
copy the database across.
@@ -46,9 +134,9 @@ If something unexpected happens during the migration, it is safe to start over.
### Existing self-compiled installation
-1. [Disable background migrations](../../development/database/batched_background_migrations.md#enable-or-disable-background-migrations)
+1. [Disable background migrations](../../development/database/batched_background_migrations.md#enable-or-disable-background-migrations).
-1. [Ensure all background migrations are finished](../../update/background_migrations.md#check-the-status-of-batched-background-migrations)
+1. [Ensure all background migrations are finished](../../update/background_migrations.md#check-the-status-of-batched-background-migrations).
1. Stop GitLab, except for PostgreSQL:
@@ -112,7 +200,7 @@ the other way around.
### Self-compiled installations
1. For existing installations,
- [migrate the data](#migrate-existing-installations) first.
+ [migrate the data](#migrate-existing-installations-manual-procedure) first.
1. [Back up GitLab](../../administration/backup_restore/index.md)
in case of unforeseen issues.
@@ -168,7 +256,7 @@ the other way around.
### Linux package installations
1. For existing installations,
- [migrate the data](#migrate-existing-installations) first.
+ [migrate the data](#migrate-existing-installations-manual-procedure) first.
1. [Back up GitLab](../../administration/backup_restore/index.md)
in case of unforeseen issues.
diff --git a/doc/administration/postgresql/replication_and_failover.md b/doc/administration/postgresql/replication_and_failover.md
index f4ed9d99b45..e93dfc8336e 100644
--- a/doc/administration/postgresql/replication_and_failover.md
+++ b/doc/administration/postgresql/replication_and_failover.md
@@ -563,8 +563,7 @@ gitlab-rake gitlab:db:configure
> **Note**: If you encounter a `rake aborted!` error stating that PgBouncer is failing to connect to PostgreSQL it may be that your PgBouncer node's IP address is missing from
PostgreSQL's `trust_auth_cidr_addresses` in `gitlab.rb` on your database nodes. See
-[PgBouncer error `ERROR: pgbouncer cannot connect to server`](#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
-in the Troubleshooting section before proceeding.
+[PgBouncer error `ERROR: pgbouncer cannot connect to server`](../../administration/postgresql/replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server) before you proceed.
### Backups
@@ -575,8 +574,7 @@ Do not backup or restore GitLab through a PgBouncer connection: this causes a Gi
### Ensure GitLab is running
At this point, your GitLab instance should be up and running. Verify you're able
-to sign in, and create issues and merge requests. If you encounter issues, see
-the [Troubleshooting section](#troubleshooting).
+to sign in, and create issues and merge requests. For more information, see [Troubleshooting replication and failover](../../administration/postgresql/replication_and_failover_troubleshooting.md).
## Example configuration
@@ -901,7 +899,7 @@ Stopping or restarting the Patroni service on the leader node triggers an automa
WARNING:
In GitLab 16.5 and earlier, PgBouncer nodes do not automatically fail over alongside
Patroni nodes. PgBouncer services
-[must be restarted manually](#pgbouncer-errors-error-running-command-gitlabctlerrorsexecutionerror-and-error-database-gitlabhq_production-is-not-paused)
+[must be restarted manually](../../administration/postgresql/replication_and_failover_troubleshooting.md#pgbouncer-errors-error-running-command-gitlabctlerrorsexecutionerror-and-error-database-gitlabhq_production-is-not-paused)
for a successful switchover.
While Patroni supports automatic failover, you also have the ability to perform
@@ -1085,8 +1083,7 @@ Considering these, you should carefully plan your PostgreSQL upgrade:
```
If issues are encountered upgrading the replicas,
-[there is a troubleshooting section](#postgresql-major-version-upgrade-fails-on-a-patroni-replica)
-that might be the solution.
+[there is a troubleshooting section](../../administration/postgresql/replication_and_failover_troubleshooting.md#postgresql-major-version-upgrade-fails-on-a-patroni-replica) that might be the solution.
NOTE:
Reverting the PostgreSQL upgrade with `gitlab-ctl revert-pg-upgrade` has the same considerations as
@@ -1274,468 +1271,3 @@ After completing these steps, then you can clean up the resources of the old Pat
They are no longer needed. However, before removing the resources, remove the
logical replication subscription on the new leader by running `DROP SUBSCRIPTION patroni_upgrade`
with `gitlab-psql`.
-
-## Troubleshooting
-
-### Consul and PostgreSQL changes not taking effect
-
-Due to the potential impacts, `gitlab-ctl reconfigure` only reloads Consul and PostgreSQL, it does not restart the services. However, not all changes can be activated by reloading.
-
-To restart either service, run `gitlab-ctl restart SERVICE`
-
-For PostgreSQL, it is usually safe to restart the leader node by default. Automatic failover defaults to a 1 minute timeout. Provided the database returns before then, nothing else needs to be done.
-
-On the Consul server nodes, it is important to [restart the Consul service](../consul.md#restart-consul) in a controlled manner.
-
-### PgBouncer error `ERROR: pgbouncer cannot connect to server`
-
-You may get this error when running `gitlab-rake gitlab:db:configure` or you
-may see the error in the PgBouncer log file.
-
-```plaintext
-PG::ConnectionBad: ERROR: pgbouncer cannot connect to server
-```
-
-The problem may be that your PgBouncer node's IP address is not included in the
-`trust_auth_cidr_addresses` setting in `/etc/gitlab/gitlab.rb` on the database nodes.
-
-You can confirm that this is the issue by checking the PostgreSQL log on the leader
-database node. If you see the following error then `trust_auth_cidr_addresses`
-is the problem.
-
-```plaintext
-2018-03-29_13:59:12.11776 FATAL: no pg_hba.conf entry for host "123.123.123.123", user "pgbouncer", database "gitlabhq_production", SSL off
-```
-
-To fix the problem, add the IP address to `/etc/gitlab/gitlab.rb`.
-
-```ruby
-postgresql['trust_auth_cidr_addresses'] = %w(123.123.123.123/32 <other_cidrs>)
-```
-
-[Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
-
-### PgBouncer errors `Error running command: GitlabCtl::Errors::ExecutionError` and `ERROR: database gitlabhq_production is not paused`
-
-Due to a [known issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/8166) that
-affects versions of GitLab prior to 16.5.0, the automatic failover of PgBouncer nodes does not
-happen after a [Patroni switchover](#manual-failover-procedure-for-patroni). In this
-example, GitLab failed to detect a paused database, then attempted to `RESUME` a
-not-paused database:
-
-```plaintext
-INFO -- : Running: gitlab-ctl pgb-notify --pg-database gitlabhq_production --newhost database7.example.com --user pgbouncer --hostuser gitlab-consul
-ERROR -- : STDERR: Error running command: GitlabCtl::Errors::ExecutionError
-ERROR -- : STDERR: ERROR: ERROR: database gitlabhq_production is not paused
-```
-
-To ensure a [Patroni switchover](#manual-failover-procedure-for-patroni) succeeds,
-you must manually restart the PgBouncer service on all PgBouncer nodes with this command:
-
-```shell
-gitlab-ctl restart pgbouncer
-```
-
-### Reinitialize a replica
-
-If a replica cannot start or rejoin the cluster, or when it lags behind and cannot catch up, it might be necessary to reinitialize the replica:
-
-1. [Check the replication status](#check-replication-status) to confirm which server
- needs to be reinitialized. For example:
-
- ```plaintext
- + Cluster: postgresql-ha (6970678148837286213) ------+---------+--------------+----+-----------+
- | Member | Host | Role | State | TL | Lag in MB |
- +-------------------------------------+--------------+---------+--------------+----+-----------+
- | gitlab-database-1.example.com | 172.18.0.111 | Replica | running | 55 | 0 |
- | gitlab-database-2.example.com | 172.18.0.112 | Replica | start failed | | unknown |
- | gitlab-database-3.example.com | 172.18.0.113 | Leader | running | 55 | |
- +-------------------------------------+--------------+---------+--------------+----+-----------+
- ```
-
-1. Sign in to the broken server and reinitialize the database and replication. Patroni shuts
- down PostgreSQL on that server, remove the data directory, and reinitialize it from scratch:
-
- ```shell
- sudo gitlab-ctl patroni reinitialize-replica --member gitlab-database-2.example.com
- ```
-
- This can be run on any Patroni node, but be aware that `sudo gitlab-ctl patroni
- reinitialize-replica` without `--member` restarts the server it is run on.
- You should run it locally on the broken server to reduce the risk of
- unintended data loss.
-1. Monitor the logs:
-
- ```shell
- sudo gitlab-ctl tail patroni
- ```
-
-### Reset the Patroni state in Consul
-
-WARNING:
-Resetting the Patroni state in Consul is a potentially destructive process. Make sure that you have a healthy database backup first.
-
-As a last resort you can reset the Patroni state in Consul completely.
-
-This may be required if your Patroni cluster is in an unknown or bad state and no node can start:
-
-```plaintext
-+ Cluster: postgresql-ha (6970678148837286213) ------+---------+---------+----+-----------+
-| Member | Host | Role | State | TL | Lag in MB |
-+-------------------------------------+--------------+---------+---------+----+-----------+
-| gitlab-database-1.example.com | 172.18.0.111 | Replica | stopped | | unknown |
-| gitlab-database-2.example.com | 172.18.0.112 | Replica | stopped | | unknown |
-| gitlab-database-3.example.com | 172.18.0.113 | Replica | stopped | | unknown |
-+-------------------------------------+--------------+---------+---------+----+-----------+
-```
-
-**Before deleting the Patroni state in Consul**,
-[try and resolve the `gitlab-ctl` errors](#errors-running-gitlab-ctl) on the Patroni nodes.
-
-This process results in a reinitialized Patroni cluster when
-the first Patroni node starts.
-
-To reset the Patroni state in Consul:
-
-1. Take note of the Patroni node that was the leader, or that the application thinks is the current leader,
- if the current state shows more than one, or none:
- - Look on the PgBouncer nodes in `/var/opt/gitlab/consul/databases.ini`,
- which contains the hostname of the current leader.
- - Look in the Patroni logs `/var/log/gitlab/patroni/current` (or the older rotated and
- compressed logs `/var/log/gitlab/patroni/@40000*`) on **all** database nodes to see
- which server was most recently identified as the leader by the cluster:
-
- ```plaintext
- INFO: no action. I am a secondary (database1.local) and following a leader (database2.local)
- ```
-
-1. Stop Patroni on all nodes:
-
- ```shell
- sudo gitlab-ctl stop patroni
- ```
-
-1. Reset the state in Consul:
-
- ```shell
- /opt/gitlab/embedded/bin/consul kv delete -recurse /service/postgresql-ha/
- ```
-
-1. Start one Patroni node, which initializes the Patroni cluster to elect as a leader.
- It's highly recommended to start the previous leader (noted in the first step),
- so as to not lose existing writes that may have not been replicated because
- of the broken cluster state:
-
- ```shell
- sudo gitlab-ctl start patroni
- ```
-
-1. Start all other Patroni nodes that join the Patroni cluster as replicas:
-
- ```shell
- sudo gitlab-ctl start patroni
- ```
-
-If you are still seeing issues, the next step is restoring the last healthy backup.
-
-### Errors in the Patroni log about a `pg_hba.conf` entry for `127.0.0.1`
-
-The following log entry in the Patroni log indicates the replication is not working
-and a configuration change is needed:
-
-```plaintext
-FATAL: no pg_hba.conf entry for replication connection from host "127.0.0.1", user "gitlab_replicator"
-```
-
-To fix the problem, ensure the loopback interface is included in the CIDR addresses list:
-
-1. Edit `/etc/gitlab/gitlab.rb`:
-
- ```ruby
- postgresql['trust_auth_cidr_addresses'] = %w(<other_cidrs> 127.0.0.1/32)
- ```
-
-1. [Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
-1. Check that [all the replicas are synchronized](#check-replication-status)
-
-### Errors in Patroni logs: the requested start point is ahead of the Write Ahead Log (WAL) flush position
-
-This error indicates that the database is not replicating:
-
-```plaintext
-FATAL: could not receive data from WAL stream: ERROR: requested starting point 0/5000000 is ahead of the WAL flush position of this server 0/4000388
-```
-
-This example error is from a replica that was initially misconfigured, and had never replicated.
-
-Fix it [by reinitializing the replica](#reinitialize-a-replica).
-
-### Patroni fails to start with `MemoryError`
-
-Patroni may fail to start, logging an error and stack trace:
-
-```plaintext
-MemoryError
-Traceback (most recent call last):
- File "/opt/gitlab/embedded/bin/patroni", line 8, in <module>
- sys.exit(main())
-[..]
- File "/opt/gitlab/embedded/lib/python3.7/ctypes/__init__.py", line 273, in _reset_cache
- CFUNCTYPE(c_int)(lambda: None)
-```
-
-If the stack trace ends with `CFUNCTYPE(c_int)(lambda: None)`, this code triggers `MemoryError`
-if the Linux server has been hardened for security.
-
-The code causes Python to write temporary executable files, and if it cannot find a file system in which to do this. For example, if `noexec` is set on the `/tmp` file system, it fails with `MemoryError` ([read more in the issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6184)).
-
-Workarounds:
-
-- Remove `noexec` from the mount options for filesystems like `/tmp` and `/var/tmp`.
-- If set to enforcing, SELinux may also prevent these operations. Verify the issue is fixed by setting
- SELinux to permissive.
-
-Patroni first shipped in the Linux package for GitLab 13.1, along with a build of Python 3.7.
-The code which causes this was removed in Python 3.8: this fix shipped in
-[the Linux package for GitLab 14.3](https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/5547)
-and later, removing the need for a workaround.
-
-### Errors running `gitlab-ctl`
-
-Patroni nodes can get into a state where `gitlab-ctl` commands fail
-and `gitlab-ctl reconfigure` cannot fix the node.
-
-If this co-incides with a version upgrade of PostgreSQL, [follow a different procedure](#postgresql-major-version-upgrade-fails-on-a-patroni-replica)
-
-One common symptom is that `gitlab-ctl` cannot determine
-information it needs about the installation if the database server is failing to start:
-
-```plaintext
-Malformed configuration JSON file found at /opt/gitlab/embedded/nodes/<HOSTNAME>.json.
-This usually happens when your last run of `gitlab-ctl reconfigure` didn't complete successfully.
-```
-
-```plaintext
-Error while reinitializing replica on the current node: Attributes not found in
-/opt/gitlab/embedded/nodes/<HOSTNAME>.json, has reconfigure been run yet?
-```
-
-Similarly, the nodes file (`/opt/gitlab/embedded/nodes/<HOSTNAME>.json`) should contain a lot of information,
-but might get created with only:
-
-```json
-{
- "name": "<HOSTNAME>"
-}
-```
-
-The following process for fixing this includes reinitializing this replica:
-the current state of PostgreSQL on this node is discarded:
-
-1. Shut down the Patroni and (if present) PostgreSQL services:
-
- ```shell
- sudo gitlab-ctl status
- sudo gitlab-ctl stop patroni
- sudo gitlab-ctl stop postgresql
- ```
-
-1. Remove `/var/opt/gitlab/postgresql/data` in case its state prevents
- PostgreSQL from starting:
-
- ```shell
- cd /var/opt/gitlab/postgresql
- sudo rm -rf data
- ```
-
- **Take care with this step to avoid data loss**.
- This step can be also achieved by renaming `data/`:
- make sure there's enough free disk for a new copy of the primary database,
- and remove the extra directory when the replica is fixed.
-
-1. With PostgreSQL not running, the nodes file now gets created successfully:
-
- ```shell
- sudo gitlab-ctl reconfigure
- ```
-
-1. Start Patroni:
-
- ```shell
- sudo gitlab-ctl start patroni
- ```
-
-1. Monitor the logs and check the cluster state:
-
- ```shell
- sudo gitlab-ctl tail patroni
- sudo gitlab-ctl patroni members
- ```
-
-1. Re-run `reconfigure` again:
-
- ```shell
- sudo gitlab-ctl reconfigure
- ```
-
-1. Reinitialize the replica if `gitlab-ctl patroni members` indicates this is needed:
-
- ```shell
- sudo gitlab-ctl patroni reinitialize-replica
- ```
-
-If this procedure doesn't work **and** if the cluster is unable to elect a leader,
-[there is a another fix](#reset-the-patroni-state-in-consul) which should only be
-used as a last resort.
-
-### PostgreSQL major version upgrade fails on a Patroni replica
-
-A Patroni **replica** can get stuck in a loop during `gitlab-ctl pg-upgrade`, and
-the upgrade fails.
-
-An example set of symptoms is as follows:
-
-1. A `postgresql` service is defined,
- which shouldn't usually be present on a Patroni node. It is present because
- `gitlab-ctl pg-upgrade` adds it to create a new empty database:
-
- ```plaintext
- run: patroni: (pid 1972) 1919s; run: log: (pid 1971) 1919s
- down: postgresql: 1s, normally up, want up; run: log: (pid 1973) 1919s
- ```
-
-1. PostgreSQL generates `PANIC` log entries in
- `/var/log/gitlab/postgresql/current` as Patroni is removing
- `/var/opt/gitlab/postgresql/data` as part of reinitializing the replica:
-
- ```plaintext
- DETAIL: Could not open file "pg_xact/0000": No such file or directory.
- WARNING: terminating connection because of crash of another server process
- LOG: all server processes terminated; reinitializing
- PANIC: could not open file "global/pg_control": No such file or directory
- ```
-
-1. In `/var/log/gitlab/patroni/current`, Patroni logs the following.
- The local PostgreSQL version is different from the cluster leader:
-
- ```plaintext
- INFO: trying to bootstrap from leader 'HOSTNAME'
- pg_basebackup: incompatible server version 12.6
- pg_basebackup: removing data directory "/var/opt/gitlab/postgresql/data"
- ERROR: Error when fetching backup: pg_basebackup exited with code=1
- ```
-
-**Important**: This workaround applies when the Patroni cluster is in the following state:
-
-- The [leader has been successfully upgraded to the new major version](#upgrading-postgresql-major-version-in-a-patroni-cluster).
-- The step to upgrade PostgreSQL on replicas is failing.
-
-This workaround completes the PostgreSQL upgrade on a Patroni replica
-by setting the node to use the new PostgreSQL version, and then reinitializing
-it as a replica in the new cluster that was created
-when the leader was upgraded:
-
-1. Check the cluster status on all nodes to confirm which is the leader
- and what state the replicas are in
-
- ```shell
- sudo gitlab-ctl patroni members
- ```
-
-1. Replica: check which version of PostgreSQL is active:
-
- ```shell
- sudo ls -al /opt/gitlab/embedded/bin | grep postgres
- ```
-
-1. Replica: ensure the nodes file is correct and `gitlab-ctl` can run. This resolves
- the [errors running `gitlab-ctl`](#errors-running-gitlab-ctl) issue if the replica
- has any of those errors as well:
-
- ```shell
- sudo gitlab-ctl stop patroni
- sudo gitlab-ctl reconfigure
- ```
-
-1. Replica: relink the PostgreSQL binaries to the required version
- to fix the `incompatible server version` error:
-
- 1. Edit `/etc/gitlab/gitlab.rb` and specify the required version:
-
- ```ruby
- postgresql['version'] = 13
- ```
-
- 1. Reconfigure GitLab:
-
- ```shell
- sudo gitlab-ctl reconfigure
- ```
-
- 1. Check the binaries are relinked. The binaries distributed for
- PostgreSQL vary between major releases, it's typical to
- have a small number of incorrect symbolic links:
-
- ```shell
- sudo ls -al /opt/gitlab/embedded/bin | grep postgres
- ```
-
-1. Replica: ensure PostgreSQL is fully reinitialized for the specified version:
-
- ```shell
- cd /var/opt/gitlab/postgresql
- sudo rm -rf data
- sudo gitlab-ctl reconfigure
- ```
-
-1. Replica: optionally monitor the database in two additional terminal sessions:
-
- - Disk use increases as `pg_basebackup` runs. Track progress of the
- replica initialization with:
-
- ```shell
- cd /var/opt/gitlab/postgresql
- watch du -sh data
- ```
-
- - Monitor the process in the logs:
-
- ```shell
- sudo gitlab-ctl tail patroni
- ```
-
-1. Replica: Start Patroni to reinitialize the replica:
-
- ```shell
- sudo gitlab-ctl start patroni
- ```
-
-1. Replica: After it completes, remove the hardcoded version from `/etc/gitlab/gitlab.rb`:
-
- 1. Edit `/etc/gitlab/gitlab.rb` and remove `postgresql['version']`.
- 1. Reconfigure GitLab:
-
- ```shell
- sudo gitlab-ctl reconfigure
- ```
-
- 1. Check the correct binaries are linked:
-
- ```shell
- sudo ls -al /opt/gitlab/embedded/bin | grep postgres
- ```
-
-1. Check the cluster status on all nodes:
-
- ```shell
- sudo gitlab-ctl patroni members
- ```
-
-Repeat this procedure on the other replica if required.
-
-### Issues with other components
-
-If you're running into an issue with a component not outlined here, be sure to check the troubleshooting section of their specific documentation page:
-
-- [Consul](../consul.md#troubleshooting-consul)
-- [PostgreSQL](https://docs.gitlab.com/omnibus/settings/database.html#troubleshooting)
diff --git a/doc/administration/postgresql/replication_and_failover_troubleshooting.md b/doc/administration/postgresql/replication_and_failover_troubleshooting.md
new file mode 100644
index 00000000000..1b5aa5fc3b5
--- /dev/null
+++ b/doc/administration/postgresql/replication_and_failover_troubleshooting.md
@@ -0,0 +1,472 @@
+---
+stage: Data Stores
+group: Database
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Troubleshooting PostgreSQL replication and failover for Linux package installations **(PREMIUM SELF)**
+
+When working with PostgreSQL replication and failover, you might encounter the following issues.
+
+## Consul and PostgreSQL changes not taking effect
+
+Due to the potential impacts, `gitlab-ctl reconfigure` only reloads Consul and PostgreSQL, it does not restart the services. However, not all changes can be activated by reloading.
+
+To restart either service, run `gitlab-ctl restart SERVICE`
+
+For PostgreSQL, it is usually safe to restart the leader node by default. Automatic failover defaults to a 1 minute timeout. Provided the database returns before then, nothing else needs to be done.
+
+On the Consul server nodes, it is important to [restart the Consul service](../consul.md#restart-consul) in a controlled manner.
+
+## PgBouncer error `ERROR: pgbouncer cannot connect to server`
+
+You may get this error when running `gitlab-rake gitlab:db:configure` or you
+may see the error in the PgBouncer log file.
+
+```plaintext
+PG::ConnectionBad: ERROR: pgbouncer cannot connect to server
+```
+
+The problem may be that your PgBouncer node's IP address is not included in the
+`trust_auth_cidr_addresses` setting in `/etc/gitlab/gitlab.rb` on the database nodes.
+
+You can confirm that this is the issue by checking the PostgreSQL log on the leader
+database node. If you see the following error then `trust_auth_cidr_addresses`
+is the problem.
+
+```plaintext
+2018-03-29_13:59:12.11776 FATAL: no pg_hba.conf entry for host "123.123.123.123", user "pgbouncer", database "gitlabhq_production", SSL off
+```
+
+To fix the problem, add the IP address to `/etc/gitlab/gitlab.rb`.
+
+```ruby
+postgresql['trust_auth_cidr_addresses'] = %w(123.123.123.123/32 <other_cidrs>)
+```
+
+[Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
+
+## PgBouncer errors `Error running command: GitlabCtl::Errors::ExecutionError` and `ERROR: database gitlabhq_production is not paused`
+
+Due to a [known issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/8166) that
+affects versions of GitLab prior to 16.5.0, the automatic failover of PgBouncer nodes does not
+happen after a [Patroni switchover](../../administration/postgresql/replication_and_failover.md#manual-failover-procedure-for-patroni). In this
+example, GitLab failed to detect a paused database, then attempted to `RESUME` a
+not-paused database:
+
+```plaintext
+INFO -- : Running: gitlab-ctl pgb-notify --pg-database gitlabhq_production --newhost database7.example.com --user pgbouncer --hostuser gitlab-consul
+ERROR -- : STDERR: Error running command: GitlabCtl::Errors::ExecutionError
+ERROR -- : STDERR: ERROR: ERROR: database gitlabhq_production is not paused
+```
+
+To ensure a [Patroni switchover](../../administration/postgresql/replication_and_failover.md#manual-failover-procedure-for-patroni) succeeds,
+you must manually restart the PgBouncer service on all PgBouncer nodes with this command:
+
+```shell
+gitlab-ctl restart pgbouncer
+```
+
+## Reinitialize a replica
+
+If a replica cannot start or rejoin the cluster, or when it lags behind and cannot catch up, it might be necessary to reinitialize the replica:
+
+1. [Check the replication status](../../administration/postgresql/replication_and_failover.md#check-replication-status) to confirm which server
+ needs to be reinitialized. For example:
+
+ ```plaintext
+ + Cluster: postgresql-ha (6970678148837286213) ------+---------+--------------+----+-----------+
+ | Member | Host | Role | State | TL | Lag in MB |
+ +-------------------------------------+--------------+---------+--------------+----+-----------+
+ | gitlab-database-1.example.com | 172.18.0.111 | Replica | running | 55 | 0 |
+ | gitlab-database-2.example.com | 172.18.0.112 | Replica | start failed | | unknown |
+ | gitlab-database-3.example.com | 172.18.0.113 | Leader | running | 55 | |
+ +-------------------------------------+--------------+---------+--------------+----+-----------+
+ ```
+
+1. Sign in to the broken server and reinitialize the database and replication. Patroni shuts
+ down PostgreSQL on that server, remove the data directory, and reinitialize it from scratch:
+
+ ```shell
+ sudo gitlab-ctl patroni reinitialize-replica --member gitlab-database-2.example.com
+ ```
+
+ This can be run on any Patroni node, but be aware that `sudo gitlab-ctl patroni
+ reinitialize-replica` without `--member` restarts the server it is run on.
+ You should run it locally on the broken server to reduce the risk of
+ unintended data loss.
+1. Monitor the logs:
+
+ ```shell
+ sudo gitlab-ctl tail patroni
+ ```
+
+## Reset the Patroni state in Consul
+
+WARNING:
+Resetting the Patroni state in Consul is a potentially destructive process. Make sure that you have a healthy database backup first.
+
+As a last resort you can reset the Patroni state in Consul completely.
+
+This may be required if your Patroni cluster is in an unknown or bad state and no node can start:
+
+```plaintext
++ Cluster: postgresql-ha (6970678148837286213) ------+---------+---------+----+-----------+
+| Member | Host | Role | State | TL | Lag in MB |
++-------------------------------------+--------------+---------+---------+----+-----------+
+| gitlab-database-1.example.com | 172.18.0.111 | Replica | stopped | | unknown |
+| gitlab-database-2.example.com | 172.18.0.112 | Replica | stopped | | unknown |
+| gitlab-database-3.example.com | 172.18.0.113 | Replica | stopped | | unknown |
++-------------------------------------+--------------+---------+---------+----+-----------+
+```
+
+**Before deleting the Patroni state in Consul**,
+[try and resolve the `gitlab-ctl` errors](#errors-running-gitlab-ctl) on the Patroni nodes.
+
+This process results in a reinitialized Patroni cluster when
+the first Patroni node starts.
+
+To reset the Patroni state in Consul:
+
+1. Take note of the Patroni node that was the leader, or that the application thinks is the current leader,
+ if the current state shows more than one, or none:
+ - Look on the PgBouncer nodes in `/var/opt/gitlab/consul/databases.ini`,
+ which contains the hostname of the current leader.
+ - Look in the Patroni logs `/var/log/gitlab/patroni/current` (or the older rotated and
+ compressed logs `/var/log/gitlab/patroni/@40000*`) on **all** database nodes to see
+ which server was most recently identified as the leader by the cluster:
+
+ ```plaintext
+ INFO: no action. I am a secondary (database1.local) and following a leader (database2.local)
+ ```
+
+1. Stop Patroni on all nodes:
+
+ ```shell
+ sudo gitlab-ctl stop patroni
+ ```
+
+1. Reset the state in Consul:
+
+ ```shell
+ /opt/gitlab/embedded/bin/consul kv delete -recurse /service/postgresql-ha/
+ ```
+
+1. Start one Patroni node, which initializes the Patroni cluster to elect as a leader.
+ It's highly recommended to start the previous leader (noted in the first step),
+ so as to not lose existing writes that may have not been replicated because
+ of the broken cluster state:
+
+ ```shell
+ sudo gitlab-ctl start patroni
+ ```
+
+1. Start all other Patroni nodes that join the Patroni cluster as replicas:
+
+ ```shell
+ sudo gitlab-ctl start patroni
+ ```
+
+If you are still seeing issues, the next step is restoring the last healthy backup.
+
+## Errors in the Patroni log about a `pg_hba.conf` entry for `127.0.0.1`
+
+The following log entry in the Patroni log indicates the replication is not working
+and a configuration change is needed:
+
+```plaintext
+FATAL: no pg_hba.conf entry for replication connection from host "127.0.0.1", user "gitlab_replicator"
+```
+
+To fix the problem, ensure the loopback interface is included in the CIDR addresses list:
+
+1. Edit `/etc/gitlab/gitlab.rb`:
+
+ ```ruby
+ postgresql['trust_auth_cidr_addresses'] = %w(<other_cidrs> 127.0.0.1/32)
+ ```
+
+1. [Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
+1. Check that [all the replicas are synchronized](../../administration/postgresql/replication_and_failover.md#check-replication-status)
+
+## Errors in Patroni logs: the requested start point is ahead of the Write Ahead Log (WAL) flush position
+
+This error indicates that the database is not replicating:
+
+```plaintext
+FATAL: could not receive data from WAL stream: ERROR: requested starting point 0/5000000 is ahead of the WAL flush position of this server 0/4000388
+```
+
+This example error is from a replica that was initially misconfigured, and had never replicated.
+
+Fix it [by reinitializing the replica](#reinitialize-a-replica).
+
+## Patroni fails to start with `MemoryError`
+
+Patroni may fail to start, logging an error and stack trace:
+
+```plaintext
+MemoryError
+Traceback (most recent call last):
+ File "/opt/gitlab/embedded/bin/patroni", line 8, in <module>
+ sys.exit(main())
+[..]
+ File "/opt/gitlab/embedded/lib/python3.7/ctypes/__init__.py", line 273, in _reset_cache
+ CFUNCTYPE(c_int)(lambda: None)
+```
+
+If the stack trace ends with `CFUNCTYPE(c_int)(lambda: None)`, this code triggers `MemoryError`
+if the Linux server has been hardened for security.
+
+The code causes Python to write temporary executable files, and if it cannot find a file system in which to do this. For example, if `noexec` is set on the `/tmp` file system, it fails with `MemoryError` ([read more in the issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6184)).
+
+Workarounds:
+
+- Remove `noexec` from the mount options for filesystems like `/tmp` and `/var/tmp`.
+- If set to enforcing, SELinux may also prevent these operations. Verify the issue is fixed by setting
+ SELinux to permissive.
+
+Patroni first shipped in the Linux package for GitLab 13.1, along with a build of Python 3.7.
+The code which causes this was removed in Python 3.8: this fix shipped in
+[the Linux package for GitLab 14.3](https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/5547)
+and later, removing the need for a workaround.
+
+## Errors running `gitlab-ctl`
+
+Patroni nodes can get into a state where `gitlab-ctl` commands fail
+and `gitlab-ctl reconfigure` cannot fix the node.
+
+If this co-incides with a version upgrade of PostgreSQL, [follow a different procedure](#postgresql-major-version-upgrade-fails-on-a-patroni-replica)
+
+One common symptom is that `gitlab-ctl` cannot determine
+information it needs about the installation if the database server is failing to start:
+
+```plaintext
+Malformed configuration JSON file found at /opt/gitlab/embedded/nodes/<HOSTNAME>.json.
+This usually happens when your last run of `gitlab-ctl reconfigure` didn't complete successfully.
+```
+
+```plaintext
+Error while reinitializing replica on the current node: Attributes not found in
+/opt/gitlab/embedded/nodes/<HOSTNAME>.json, has reconfigure been run yet?
+```
+
+Similarly, the nodes file (`/opt/gitlab/embedded/nodes/<HOSTNAME>.json`) should contain a lot of information,
+but might get created with only:
+
+```json
+{
+ "name": "<HOSTNAME>"
+}
+```
+
+The following process for fixing this includes reinitializing this replica:
+the current state of PostgreSQL on this node is discarded:
+
+1. Shut down the Patroni and (if present) PostgreSQL services:
+
+ ```shell
+ sudo gitlab-ctl status
+ sudo gitlab-ctl stop patroni
+ sudo gitlab-ctl stop postgresql
+ ```
+
+1. Remove `/var/opt/gitlab/postgresql/data` in case its state prevents
+ PostgreSQL from starting:
+
+ ```shell
+ cd /var/opt/gitlab/postgresql
+ sudo rm -rf data
+ ```
+
+ **Take care with this step to avoid data loss**.
+ This step can be also achieved by renaming `data/`:
+ make sure there's enough free disk for a new copy of the primary database,
+ and remove the extra directory when the replica is fixed.
+
+1. With PostgreSQL not running, the nodes file now gets created successfully:
+
+ ```shell
+ sudo gitlab-ctl reconfigure
+ ```
+
+1. Start Patroni:
+
+ ```shell
+ sudo gitlab-ctl start patroni
+ ```
+
+1. Monitor the logs and check the cluster state:
+
+ ```shell
+ sudo gitlab-ctl tail patroni
+ sudo gitlab-ctl patroni members
+ ```
+
+1. Re-run `reconfigure` again:
+
+ ```shell
+ sudo gitlab-ctl reconfigure
+ ```
+
+1. Reinitialize the replica if `gitlab-ctl patroni members` indicates this is needed:
+
+ ```shell
+ sudo gitlab-ctl patroni reinitialize-replica
+ ```
+
+If this procedure doesn't work **and** if the cluster is unable to elect a leader,
+[there is a another fix](#reset-the-patroni-state-in-consul) which should only be
+used as a last resort.
+
+## PostgreSQL major version upgrade fails on a Patroni replica
+
+A Patroni **replica** can get stuck in a loop during `gitlab-ctl pg-upgrade`, and
+the upgrade fails.
+
+An example set of symptoms is as follows:
+
+1. A `postgresql` service is defined,
+ which shouldn't usually be present on a Patroni node. It is present because
+ `gitlab-ctl pg-upgrade` adds it to create a new empty database:
+
+ ```plaintext
+ run: patroni: (pid 1972) 1919s; run: log: (pid 1971) 1919s
+ down: postgresql: 1s, normally up, want up; run: log: (pid 1973) 1919s
+ ```
+
+1. PostgreSQL generates `PANIC` log entries in
+ `/var/log/gitlab/postgresql/current` as Patroni is removing
+ `/var/opt/gitlab/postgresql/data` as part of reinitializing the replica:
+
+ ```plaintext
+ DETAIL: Could not open file "pg_xact/0000": No such file or directory.
+ WARNING: terminating connection because of crash of another server process
+ LOG: all server processes terminated; reinitializing
+ PANIC: could not open file "global/pg_control": No such file or directory
+ ```
+
+1. In `/var/log/gitlab/patroni/current`, Patroni logs the following.
+ The local PostgreSQL version is different from the cluster leader:
+
+ ```plaintext
+ INFO: trying to bootstrap from leader 'HOSTNAME'
+ pg_basebackup: incompatible server version 12.6
+ pg_basebackup: removing data directory "/var/opt/gitlab/postgresql/data"
+ ERROR: Error when fetching backup: pg_basebackup exited with code=1
+ ```
+
+**Important**: This workaround applies when the Patroni cluster is in the following state:
+
+- The [leader has been successfully upgraded to the new major version](../../administration/postgresql/replication_and_failover.md#upgrading-postgresql-major-version-in-a-patroni-cluster).
+- The step to upgrade PostgreSQL on replicas is failing.
+
+This workaround completes the PostgreSQL upgrade on a Patroni replica
+by setting the node to use the new PostgreSQL version, and then reinitializing
+it as a replica in the new cluster that was created
+when the leader was upgraded:
+
+1. Check the cluster status on all nodes to confirm which is the leader
+ and what state the replicas are in
+
+ ```shell
+ sudo gitlab-ctl patroni members
+ ```
+
+1. Replica: check which version of PostgreSQL is active:
+
+ ```shell
+ sudo ls -al /opt/gitlab/embedded/bin | grep postgres
+ ```
+
+1. Replica: ensure the nodes file is correct and `gitlab-ctl` can run. This resolves
+ the [errors running `gitlab-ctl`](#errors-running-gitlab-ctl) issue if the replica
+ has any of those errors as well:
+
+ ```shell
+ sudo gitlab-ctl stop patroni
+ sudo gitlab-ctl reconfigure
+ ```
+
+1. Replica: relink the PostgreSQL binaries to the required version
+ to fix the `incompatible server version` error:
+
+ 1. Edit `/etc/gitlab/gitlab.rb` and specify the required version:
+
+ ```ruby
+ postgresql['version'] = 13
+ ```
+
+ 1. Reconfigure GitLab:
+
+ ```shell
+ sudo gitlab-ctl reconfigure
+ ```
+
+ 1. Check the binaries are relinked. The binaries distributed for
+ PostgreSQL vary between major releases, it's typical to
+ have a small number of incorrect symbolic links:
+
+ ```shell
+ sudo ls -al /opt/gitlab/embedded/bin | grep postgres
+ ```
+
+1. Replica: ensure PostgreSQL is fully reinitialized for the specified version:
+
+ ```shell
+ cd /var/opt/gitlab/postgresql
+ sudo rm -rf data
+ sudo gitlab-ctl reconfigure
+ ```
+
+1. Replica: optionally monitor the database in two additional terminal sessions:
+
+ - Disk use increases as `pg_basebackup` runs. Track progress of the
+ replica initialization with:
+
+ ```shell
+ cd /var/opt/gitlab/postgresql
+ watch du -sh data
+ ```
+
+ - Monitor the process in the logs:
+
+ ```shell
+ sudo gitlab-ctl tail patroni
+ ```
+
+1. Replica: Start Patroni to reinitialize the replica:
+
+ ```shell
+ sudo gitlab-ctl start patroni
+ ```
+
+1. Replica: After it completes, remove the hardcoded version from `/etc/gitlab/gitlab.rb`:
+
+ 1. Edit `/etc/gitlab/gitlab.rb` and remove `postgresql['version']`.
+ 1. Reconfigure GitLab:
+
+ ```shell
+ sudo gitlab-ctl reconfigure
+ ```
+
+ 1. Check the correct binaries are linked:
+
+ ```shell
+ sudo ls -al /opt/gitlab/embedded/bin | grep postgres
+ ```
+
+1. Check the cluster status on all nodes:
+
+ ```shell
+ sudo gitlab-ctl patroni members
+ ```
+
+Repeat this procedure on the other replica if required.
+
+## Issues with other components
+
+If you're running into an issue with a component not outlined here, be sure to check the troubleshooting section of their specific documentation page:
+
+- [Consul](../consul.md#troubleshooting-consul)
+- [PostgreSQL](https://docs.gitlab.com/omnibus/settings/database.html#troubleshooting)
diff --git a/doc/administration/raketasks/check.md b/doc/administration/raketasks/check.md
index 207dbc7b509..39d7cae5dde 100644
--- a/doc/administration/raketasks/check.md
+++ b/doc/administration/raketasks/check.md
@@ -215,7 +215,7 @@ secrets file (`gitlab-secrets.json`).
Automatic resolution is not yet implemented. If you have values that
cannot be decrypted, you can follow steps to reset them, see our
-documentation on what to do [when the secrets file is lost](../../administration/backup_restore/backup_gitlab.md#when-the-secrets-file-is-lost).
+documentation on what to do [when the secrets file is lost](../../administration/backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost).
This can take a very long time, depending on the size of your
database, as it checks all rows in all tables.
diff --git a/doc/administration/raketasks/maintenance.md b/doc/administration/raketasks/maintenance.md
index 3a136e773d9..21a7ba258c1 100644
--- a/doc/administration/raketasks/maintenance.md
+++ b/doc/administration/raketasks/maintenance.md
@@ -245,7 +245,7 @@ clear Redis' cache. To do this, run:
Sometimes during version upgrades you might end up with some wrong CSS or
missing some icons. In that case, try to precompile the assets again.
-This Rake task only applies to self-compiled installations. [Read more](../../update/package/index.md#missing-asset-files)
+This Rake task only applies to self-compiled installations. [Read more](../../update/package/package_troubleshooting.md#missing-asset-files)
about troubleshooting this problem when running the Linux package.
The guidance for Linux package might be applicable for Kubernetes and Docker
deployments of GitLab, though in general, container-based installations
@@ -400,15 +400,13 @@ To manually rebuild a database index:
### Notes
- Rebuilding database indexes is a disk-intensive task, so you should perform the
-task during off-peak hours. Running the task during peak hours can lead to
-_increased_ bloat, and can also cause certain queries to perform slowly.
-
+ task during off-peak hours. Running the task during peak hours can lead to
+ _increased_ bloat, and can also cause certain queries to perform slowly.
- The task requires free disk space for the index being restored. The created
-indexes are appended with `_ccnew`. If the reindexing task fails, re-running the
-task cleans up the temporary indexes.
-
+ indexes are appended with `_ccnew`. If the reindexing task fails, re-running the
+ task cleans up the temporary indexes.
- The time it takes for database index rebuilding to complete depends on the size
-of the target database. It can take between several hours and several days.
+ of the target database. It can take between several hours and several days.
## Dump the database schema
diff --git a/doc/administration/reference_architectures/10k_users.md b/doc/administration/reference_architectures/10k_users.md
index defc74b7e9e..41897a999ec 100644
--- a/doc/administration/reference_architectures/10k_users.md
+++ b/doc/administration/reference_architectures/10k_users.md
@@ -43,7 +43,7 @@ specifically the [Before you start](index.md#before-you-start) and [Deciding whi
<!-- markdownlint-disable MD029 -->
1. Can be optionally run on reputable third-party external PaaS PostgreSQL solutions. See [Provide your own PostgreSQL instance](#provide-your-own-postgresql-instance) and [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
2. Can be optionally run on reputable third-party external PaaS Redis solutions. See [Provide your own Redis instances](#provide-your-own-redis-instances) and [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
- - Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+ - Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores. For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance.
3. Can be optionally run on reputable third-party load balancing services (LB PaaS). See [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
4. Should be run on reputable Cloud Provider or Self Managed solutions. See [Configure the object storage](#configure-the-object-storage) for more information.
5. Gitaly Cluster provides the benefits of fault tolerance, but comes with additional complexity of setup and management.
@@ -707,7 +707,7 @@ SSH in to any of the Patroni nodes on the **primary site**:
```
If the 'State' column for any node doesn't say "running", check the
-[PostgreSQL replication and failover troubleshooting section](../postgresql/replication_and_failover.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
+[PostgreSQL replication and failover troubleshooting section](../../administration/postgresql/replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
before proceeding.
<div align="right">
@@ -721,6 +721,10 @@ before proceeding.
Now that the PostgreSQL servers are all set up, let's configure PgBouncer
for tracking and handling reads/writes to the primary database.
+NOTE:
+PgBouncer is single threaded and doesn't significantly benefit from an increase in CPU cores.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
The following IPs will be used as an example:
- `10.6.0.31`: PgBouncer 1
@@ -820,7 +824,8 @@ NOTE:
Redis clusters must each be deployed in an odd number of 3 nodes or more. This is to ensure Redis Sentinel can take votes as part of a quorum. This does not apply when configuring Redis externally, such as a cloud provider service.
NOTE:
-Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores. For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
Redis requires authentication if used with Sentinel. See
[Redis Security](https://redis.io/docs/manual/security/) documentation for more
@@ -1765,6 +1770,10 @@ NOTE:
[Because it's recommended to use Object storage](../object_storage.md) instead of NFS for data objects, the following
examples include the Object storage configuration.
+NOTE:
+If you find that the environment's Sidekiq job processing is slow with long queues
+you can scale it accordingly. Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
- `10.6.0.101`: Sidekiq 1
- `10.6.0.102`: Sidekiq 2
- `10.6.0.103`: Sidekiq 3
@@ -1880,6 +1889,15 @@ Updates to example must be made at:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
@@ -1896,11 +1914,6 @@ Updates to example must be made at:
1. [Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
-NOTE:
-If you find that the environment's Sidekiq job processing is slow with long queues,
-more nodes can be added as required. You can also tune your Sidekiq nodes to
-run [multiple Sidekiq processes](../sidekiq/extra_sidekiq_processes.md).
-
<div align="right">
<a type="button" class="btn btn-default" href="#setup-components">
Back to setup components <i class="fa fa-angle-double-up" aria-hidden="true"></i>
@@ -2023,6 +2036,14 @@ On each node perform the following:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. If you're using [Gitaly with TLS support](#gitaly-cluster-tls-support), make sure the
@@ -2266,7 +2287,7 @@ the overall makeup as desired as long as the minimum CPU and Memory requirements
| Supporting services | 2 | 4 vCPU, 15 GB memory | `n1-standard-4` | `m5.xlarge` | 7.75 vCPU, 25 GB memory |
- For this setup, we **recommend** and regularly [test](index.md#validation-and-test-results)
-[Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
+ [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
- Nodes configuration is shown as it is forced to ensure pod vCPU / memory ratios and avoid scaling during **performance testing**.
- In production deployments, there is no need to assign pods to specific nodes. A minimum of three nodes per node group in three different availability zones is strongly recommended to align with resilient cloud architecture practices.
@@ -2290,7 +2311,7 @@ services where applicable):
<!-- markdownlint-disable MD029 -->
1. Can be optionally run on reputable third-party external PaaS PostgreSQL solutions. See [Provide your own PostgreSQL instance](#provide-your-own-postgresql-instance) and [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
2. Can be optionally run on reputable third-party external PaaS Redis solutions. See [Provide your own Redis instances](#provide-your-own-redis-instances) and [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
- - Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+ - Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores. For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance.
3. Can be optionally run on reputable third-party load balancing services (LB PaaS). See [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
4. Should be run on reputable Cloud Provider or Self Managed solutions. See [Configure the object storage](#configure-the-object-storage) for more information.
5. Gitaly Cluster provides the benefits of fault tolerance, but comes with additional complexity of setup and management.
diff --git a/doc/administration/reference_architectures/25k_users.md b/doc/administration/reference_architectures/25k_users.md
index 6520f63957b..2f0b51e6662 100644
--- a/doc/administration/reference_architectures/25k_users.md
+++ b/doc/administration/reference_architectures/25k_users.md
@@ -43,7 +43,7 @@ specifically the [Before you start](index.md#before-you-start) and [Deciding whi
<!-- markdownlint-disable MD029 -->
1. Can be optionally run on reputable third-party external PaaS PostgreSQL solutions. See [Provide your own PostgreSQL instance](#provide-your-own-postgresql-instance) for more information.
2. Can be optionally run on reputable third-party external PaaS Redis solutions. See [Provide your own Redis instances](#provide-your-own-redis-instances) for more information.
- - Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+ - Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores. For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance.
3. Can be optionally run on reputable third-party load balancing services (LB PaaS). See [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
4. Should be run on reputable Cloud Provider or Self Managed solutions. See [Configure the object storage](#configure-the-object-storage) for more information.
5. Gitaly Cluster provides the benefits of fault tolerance, but comes with additional complexity of setup and management.
@@ -715,7 +715,7 @@ SSH in to any of the Patroni nodes on the **primary site**:
```
If the 'State' column for any node doesn't say "running", check the
-[PostgreSQL replication and failover troubleshooting section](../postgresql/replication_and_failover.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
+[PostgreSQL replication and failover troubleshooting section](../../administration/postgresql/replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
before proceeding.
<div align="right">
@@ -729,6 +729,10 @@ before proceeding.
Now that the PostgreSQL servers are all set up, let's configure PgBouncer
for tracking and handling reads/writes to the primary database.
+NOTE:
+PgBouncer is single threaded and doesn't significantly benefit from an increase in CPU cores.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
The following IPs will be used as an example:
- `10.6.0.31`: PgBouncer 1
@@ -828,7 +832,8 @@ NOTE:
Redis clusters must each be deployed in an odd number of 3 nodes or more. This is to ensure Redis Sentinel can take votes as part of a quorum. This does not apply when configuring Redis externally, such as a cloud provider service.
NOTE:
-Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores. For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
Redis requires authentication if used with Sentinel. See
[Redis Security](https://redis.io/docs/manual/security/) documentation for more
@@ -1500,7 +1505,7 @@ Updates to example must be made at:
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
-the file of the same name on this server. If this is the first Linux package node you are configuring then you can skip this step.
+ the file of the same name on this server. If this is the first Linux package node you are configuring then you can skip this step.
1. Praefect requires to run some database migrations, much like the main GitLab application. For this
you should select **one Praefect node only to run the migrations**, AKA the _Deploy Node_. This node
@@ -1773,6 +1778,10 @@ NOTE:
[Because it's recommended to use Object storage](../object_storage.md) instead of NFS for data objects, the following
examples include the Object storage configuration.
+NOTE:
+If you find that the environment's Sidekiq job processing is slow with long queues
+you can scale it accordingly. Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
- `10.6.0.101`: Sidekiq 1
- `10.6.0.102`: Sidekiq 2
- `10.6.0.103`: Sidekiq 3
@@ -1888,6 +1897,15 @@ Updates to example must be made at:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
@@ -1904,11 +1922,6 @@ Updates to example must be made at:
1. [Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
-NOTE:
-If you find that the environment's Sidekiq job processing is slow with long queues,
-more nodes can be added as required. You can also tune your Sidekiq nodes to
-run [multiple Sidekiq processes](../sidekiq/extra_sidekiq_processes.md).
-
<div align="right">
<a type="button" class="btn btn-default" href="#setup-components">
Back to setup components <i class="fa fa-angle-double-up" aria-hidden="true"></i>
@@ -2033,6 +2046,14 @@ On each node perform the following:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. If you're using [Gitaly with TLS support](#gitaly-cluster-tls-support), make sure the
@@ -2276,7 +2297,7 @@ the overall makeup as desired as long as the minimum CPU and Memory requirements
| Supporting services | 2 | 4 vCPU, 15 GB memory | `n1-standard-4` | `m5.xlarge` | 7.75 vCPU, 25 GB memory |
- For this setup, we **recommend** and regularly [test](index.md#validation-and-test-results)
-[Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
+ [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
- Nodes configuration is shown as it is forced to ensure pod vCPU / memory ratios and avoid scaling during **performance testing**.
- In production deployments, there is no need to assign pods to specific nodes. A minimum of three nodes per node group in three different availability zones is strongly recommended to align with resilient cloud architecture practices.
@@ -2300,7 +2321,7 @@ services where applicable):
<!-- markdownlint-disable MD029 -->
1. Can be optionally run on reputable third-party external PaaS PostgreSQL solutions. See [Provide your own PostgreSQL instance](#provide-your-own-postgresql-instance) for more information.
2. Can be optionally run on reputable third-party external PaaS Redis solutions. See [Provide your own Redis instances](#provide-your-own-redis-instances) for more information.
- - Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+ - Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores. For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance.
3. Can be optionally run on reputable third-party load balancing services (LB PaaS). See [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
4. Should be run on reputable Cloud Provider or Self Managed solutions. See [Configure the object storage](#configure-the-object-storage) for more information.
5. Gitaly Cluster provides the benefits of fault tolerance, but comes with additional complexity of setup and management.
diff --git a/doc/administration/reference_architectures/2k_users.md b/doc/administration/reference_architectures/2k_users.md
index d3f53ce3e14..dd71190b76d 100644
--- a/doc/administration/reference_architectures/2k_users.md
+++ b/doc/administration/reference_architectures/2k_users.md
@@ -24,7 +24,7 @@ For a full list of reference architectures, see
| Load balancer<sup>3</sup> | 1 | 2 vCPU, 1.8 GB memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
| PostgreSQL<sup>1</sup> | 1 | 2 vCPU, 7.5 GB memory | `n1-standard-2` | `m5.large` | `D2s v3` |
| Redis<sup>2</sup> | 1 | 1 vCPU, 3.75 GB memory | `n1-standard-1` | `m5.large` | `D2s v3` |
-| Gitaly | 1 | 4 vCPU, 15 GB memory<sup>5</sup> | `n1-standard-4` | `m5.xlarge` | `D4s v3` |
+| Gitaly<sup>5</sup> | 1 | 4 vCPU, 15 GB memory<sup>5</sup> | `n1-standard-4` | `m5.xlarge` | `D4s v3` |
| Sidekiq<sup>6</sup> | 1 | 4 vCPU, 15 GB memory | `n1-standard-4` | `m5.xlarge` | `D4s v3` |
| GitLab Rails<sup>6</sup> | 2 | 8 vCPU, 7.2 GB memory | `n1-highcpu-8` | `c5.2xlarge` | `F8s v2` |
| Monitoring node | 1 | 2 vCPU, 1.8 GB memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
@@ -35,7 +35,6 @@ For a full list of reference architectures, see
2. Can be optionally run on reputable third-party external PaaS Redis solutions. See [Provide your own Redis instance](#provide-your-own-redis-instance) and [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
3. Can be optionally run on reputable third-party load balancing services (LB PaaS). See [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
4. Should be run on reputable Cloud Provider or Self Managed solutions. See [Configure the object storage](#configure-the-object-storage) for more information.
-4. Should be run on reputable Cloud Provider or Self Managed solutions. More information can be found in the [Configure the object storage](#configure-the-object-storage) section.
5. Gitaly specifications are based on the use of normal-sized repositories in good health.
However, if you have large monorepos (larger than several gigabytes) this can **significantly** impact Git and Gitaly performance and an increase of specifications will likely be required.
Refer to [large monorepos](index.md#large-monorepos) for more information.
@@ -52,7 +51,7 @@ skinparam linetype ortho
card "**External Load Balancer**" as elb #6a9be7
-collections "**GitLab Rails** x3" as gitlab #32CD32
+collections "**GitLab Rails** x2" as gitlab #32CD32
card "**Prometheus**" as monitor #7FFFD4
card "**Gitaly**" as gitaly #FF8C00
card "**PostgreSQL**" as postgres #4EA7FF
@@ -340,6 +339,10 @@ are supported and can be added if needed.
In this section, you'll be guided through configuring an external Redis instance
to be used with GitLab.
+NOTE:
+Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
### Provide your own Redis instance
You can optionally use a [third party external service for the Redis instance](../redis/replication_and_failover_external.md#redis-as-a-managed-service-in-a-cloud-provider) with the following guidance:
@@ -603,6 +606,10 @@ Sidekiq requires connection to the [Redis](#configure-redis),
[PostgreSQL](#configure-postgresql) and [Gitaly](#configure-gitaly) instances.
It also requires a connection to [Object Storage](#configure-the-object-storage) as recommended.
+NOTE:
+If you find that the environment's Sidekiq job processing is slow with long queues
+you can scale it accordingly. Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
To configure the Sidekiq server, on the server node you want to use for Sidekiq:
1. SSH in to the Sidekiq server.
@@ -687,6 +694,14 @@ Updates to example must be made at:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
@@ -717,11 +732,6 @@ Updates to example must be made at:
run: sidekiq: (pid 26870) 92996s; run: log: (pid 26391) 93042s
```
-NOTE:
-If you find that the environment's Sidekiq job processing is slow with long queues,
-more nodes can be added as required. You can also tune your Sidekiq nodes to
-run [multiple Sidekiq processes](../sidekiq/extra_sidekiq_processes.md).
-
<div align="right">
<a type="button" class="btn btn-default" href="#setup-components">
Back to setup components <i class="fa fa-angle-double-up" aria-hidden="true"></i>
@@ -820,6 +830,15 @@ On each node perform the following:
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
+
## Uncomment and edit the following options if you have set up NFS
##
## Prevent GitLab from starting if NFS data mounts are not available
@@ -1098,7 +1117,7 @@ the overall makeup as desired as long as the minimum CPU and Memory requirements
| Supporting services | 2 | 2 vCPU, 7.5 GB memory | `n1-standard-2` | `m5.large` | 1.9 vCPU, 5.5 GB memory |
- For this setup, we **recommend** and regularly [test](index.md#validation-and-test-results)
-[Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
+ [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
- Nodes configuration is shown as it is forced to ensure pod vCPU / memory ratios and avoid scaling during **performance testing**.
- In production deployments, there is no need to assign pods to specific nodes. A minimum of three nodes per node group in three different availability zones is strongly recommended to align with resilient cloud architecture practices.
diff --git a/doc/administration/reference_architectures/3k_users.md b/doc/administration/reference_architectures/3k_users.md
index c01564a3e7a..5d0ab62d4a2 100644
--- a/doc/administration/reference_architectures/3k_users.md
+++ b/doc/administration/reference_architectures/3k_users.md
@@ -433,6 +433,10 @@ NOTE:
Multi-node Redis must be deployed in an odd number of 3 nodes or more to ensure Redis Sentinel can take votes as part of a quorum. This does not apply when configuring Redis externally,
such as a cloud provider service.
+NOTE:
+Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
Redis requires authentication if used with Sentinel. See
[Redis Security](https://redis.io/docs/manual/security/) documentation for more
information. We recommend using a combination of a Redis password and tight
@@ -977,7 +981,7 @@ SSH in to any of the Patroni nodes on the **primary site**:
```
If the 'State' column for any node doesn't say "running", check the
-[PostgreSQL replication and failover troubleshooting section](../postgresql/replication_and_failover.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
+[PostgreSQL replication and failover troubleshooting section](../../administration/postgresql/replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
before proceeding.
<div align="right">
@@ -991,6 +995,10 @@ before proceeding.
Now that the PostgreSQL servers are all set up, let's configure PgBouncer
for tracking and handling reads/writes to the primary database.
+NOTE:
+PgBouncer is single threaded and doesn't significantly benefit from an increase in CPU cores.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
The following IPs will be used as an example:
- `10.6.0.31`: PgBouncer 1
@@ -1415,7 +1423,7 @@ Updates to example must be made at:
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
-the file of the same name on this server. If this is the first Linux package node you are configuring then you can skip this step.
+ the file of the same name on this server. If this is the first Linux package node you are configuring then you can skip this step.
1. Praefect requires to run some database migrations, much like the main GitLab application. For this
you should select **one Praefect node only to run the migrations**, AKA the _Deploy Node_. This node
@@ -1692,6 +1700,10 @@ NOTE:
[Because it's recommended to use Object storage](../object_storage.md) instead of NFS for data objects, the following
examples include the Object storage configuration.
+NOTE:
+If you find that the environment's Sidekiq job processing is slow with long queues
+you can scale it accordingly. Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
The following IPs will be used as an example:
- `10.6.0.71`: Sidekiq 1
@@ -1800,6 +1812,15 @@ Updates to example must be made at:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
@@ -1831,11 +1852,6 @@ Updates to example must be made at:
run: sidekiq: (pid 30142) 77351s; run: log: (pid 29638) 77386s
```
-NOTE:
-If you find that the environment's Sidekiq job processing is slow with long queues,
-more nodes can be added as required. You can also tune your Sidekiq nodes to
-run [multiple Sidekiq processes](../sidekiq/extra_sidekiq_processes.md).
-
<div align="right">
<a type="button" class="btn btn-default" href="#setup-components">
Back to setup components <i class="fa fa-angle-double-up" aria-hidden="true"></i>
@@ -1969,6 +1985,14 @@ On each node perform the following:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. If you're using [Gitaly with TLS support](#gitaly-cluster-tls-support), make sure the
@@ -2250,7 +2274,7 @@ the overall makeup as desired as long as the minimum CPU and Memory requirements
| Supporting services | 2 | 2 vCPU, 7.5 GB memory | `n1-standard-2` | `m5.large` | 3.9 vCPU, 11.8 GB memory |
- For this setup, we **recommend** and regularly [test](index.md#validation-and-test-results)
-[Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
+ [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
- Nodes configuration is shown as it is forced to ensure pod vCPU / memory ratios and avoid scaling during **performance testing**.
- In production deployments, there is no need to assign pods to specific nodes. A minimum of three nodes per node group in three different availability zones is strongly recommended to align with resilient cloud architecture practices.
diff --git a/doc/administration/reference_architectures/50k_users.md b/doc/administration/reference_architectures/50k_users.md
index 92421a35273..ed66620119e 100644
--- a/doc/administration/reference_architectures/50k_users.md
+++ b/doc/administration/reference_architectures/50k_users.md
@@ -43,7 +43,7 @@ specifically the [Before you start](index.md#before-you-start) and [Deciding whi
<!-- markdownlint-disable MD029 -->
1. Can be optionally run on reputable third-party external PaaS PostgreSQL solutions. See [Provide your own PostgreSQL instance](#provide-your-own-postgresql-instance) for more information.
2. Can be optionally run on reputable third-party external PaaS Redis solutions. See [Provide your own Redis instances](#provide-your-own-redis-instances) for more information.
- - Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+ - Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores. For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance.
3. Can be optionally run on reputable third-party load balancing services (LB PaaS). See [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
4. Should be run on reputable Cloud Provider or Self Managed solutions. See [Configure the object storage](#configure-the-object-storage) for more information.
5. Gitaly Cluster provides the benefits of fault tolerance, but comes with additional complexity of setup and management.
@@ -717,7 +717,7 @@ SSH in to any of the Patroni nodes on the **primary site**:
```
If the 'State' column for any node doesn't say "running", check the
-[PostgreSQL replication and failover troubleshooting section](../postgresql/replication_and_failover.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
+[PostgreSQL replication and failover troubleshooting section](../../administration/postgresql/replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
before proceeding.
<div align="right">
@@ -731,6 +731,10 @@ before proceeding.
Now that the PostgreSQL servers are all set up, let's configure PgBouncer
for tracking and handling reads/writes to the primary database.
+NOTE:
+PgBouncer is single threaded and doesn't significantly benefit from an increase in CPU cores.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
The following IPs will be used as an example:
- `10.6.0.31`: PgBouncer 1
@@ -830,7 +834,9 @@ NOTE:
Redis clusters must each be deployed in an odd number of 3 nodes or more. This is to ensure Redis Sentinel can take votes as part of a quorum. This does not apply when configuring Redis externally, such as a cloud provider service.
NOTE:
-Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+Redis is primarily single threaded and doesn't significantly benefit from increasing CPU cores.
+For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance at this scale.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
Redis requires authentication if used with Sentinel. See
[Redis Security](https://redis.io/docs/manual/security/) documentation for more
@@ -1505,7 +1511,7 @@ Updates to example must be made at:
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
-the file of the same name on this server. If this is the first Linux package node you are configuring then you can skip this step.
+ the file of the same name on this server. If this is the first Linux package node you are configuring then you can skip this step.
1. Praefect requires to run some database migrations, much like the main GitLab application. For this
you should select **one Praefect node only to run the migrations**, AKA the _Deploy Node_. This node
@@ -1778,6 +1784,11 @@ NOTE:
[Because it's recommended to use Object storage](../object_storage.md) instead of NFS for data objects, the following
examples include the Object storage configuration.
+NOTE:
+If you find that the environment's Sidekiq job processing is slow with long queues
+you can scale it accordingly.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
- `10.6.0.101`: Sidekiq 1
- `10.6.0.102`: Sidekiq 2
- `10.6.0.103`: Sidekiq 3
@@ -1893,6 +1904,15 @@ Updates to example must be made at:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
@@ -1909,11 +1929,6 @@ Updates to example must be made at:
1. [Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
-NOTE:
-If you find that the environment's Sidekiq job processing is slow with long queues,
-more nodes can be added as required. You can also tune your Sidekiq nodes to
-run [multiple Sidekiq processes](../sidekiq/extra_sidekiq_processes.md).
-
<div align="right">
<a type="button" class="btn btn-default" href="#setup-components">
Back to setup components <i class="fa fa-angle-double-up" aria-hidden="true"></i>
@@ -2044,7 +2059,16 @@ On each node perform the following:
'google_project' => '<gcp-project-name>',
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
+
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. If you're using [Gitaly with TLS support](#gitaly-cluster-tls-support), make sure the
@@ -2284,7 +2308,7 @@ the overall makeup as desired as long as the minimum CPU and Memory requirements
| Supporting services | 2 | 4 vCPU, 15 GB memory | `n1-standard-4` | `m5.xlarge` | 7.75 vCPU, 25 GB memory |
- For this setup, we **recommend** and regularly [test](index.md#validation-and-test-results)
-[Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
+ [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
- Nodes configuration is shown as it is forced to ensure pod vCPU / memory ratios and avoid scaling during **performance testing**.
- In production deployments, there is no need to assign pods to specific nodes. A minimum of three nodes per node group in three different availability zones is strongly recommended to align with resilient cloud architecture practices.
@@ -2308,7 +2332,7 @@ services where applicable):
<!-- markdownlint-disable MD029 -->
1. Can be optionally run on reputable third-party external PaaS PostgreSQL solutions. See [Provide your own PostgreSQL instance](#provide-your-own-postgresql-instance) for more information.
2. Can be optionally run on reputable third-party external PaaS Redis solutions. See [Provide your own Redis instances](#provide-your-own-redis-instances) for more information.
- - Redis is primarily single threaded. It's strongly recommended separating out the instances as specified into Cache and Persistent data to achieve optimum performance at this scale.
+ - Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores. For this size of architecture it's strongly recommended having separate Cache and Persistent instances as specified to achieve optimum performance.
3. Can be optionally run on reputable third-party load balancing services (LB PaaS). See [Recommended cloud providers and services](index.md#recommended-cloud-providers-and-services) for more information.
4. Should be run on reputable Cloud Provider or Self Managed solutions. See [Configure the object storage](#configure-the-object-storage) for more information.
5. Gitaly Cluster provides the benefits of fault tolerance, but comes with additional complexity of setup and management.
diff --git a/doc/administration/reference_architectures/5k_users.md b/doc/administration/reference_architectures/5k_users.md
index 16a92944984..65b46474f7a 100644
--- a/doc/administration/reference_architectures/5k_users.md
+++ b/doc/administration/reference_architectures/5k_users.md
@@ -429,6 +429,14 @@ Using [Redis](https://redis.io/) in scalable environment is possible using a **P
topology with a [Redis Sentinel](https://redis.io/docs/manual/sentinel/) service to watch and automatically
start the failover procedure.
+NOTE:
+Multi-node Redis must be deployed in an odd number of 3 nodes or more to ensure Redis Sentinel can take votes as part of a quorum. This does not apply when configuring Redis externally,
+such as a cloud provider service.
+
+NOTE:
+Redis is primarily single threaded and doesn't significantly benefit from an increase in CPU cores.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
Redis requires authentication if used with Sentinel. See
[Redis Security](https://redis.io/docs/manual/security/) documentation for more
information. We recommend using a combination of a Redis password and tight
@@ -972,7 +980,7 @@ SSH in to any of the Patroni nodes on the **primary site**:
```
If the 'State' column for any node doesn't say "running", check the
-[PostgreSQL replication and failover troubleshooting section](../postgresql/replication_and_failover.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
+[PostgreSQL replication and failover troubleshooting section](../../administration/postgresql/replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
before proceeding.
<div align="right">
@@ -986,6 +994,10 @@ before proceeding.
Now that the PostgreSQL servers are all set up, let's configure PgBouncer
for tracking and handling reads/writes to the primary database.
+NOTE:
+PgBouncer is single threaded and doesn't significantly benefit from an increase in CPU cores.
+Refer to the [scaling documentation](index.md#scaling-an-environment) for more information.
+
The following IPs are used as an example:
- `10.6.0.31`: PgBouncer 1
@@ -1411,7 +1423,7 @@ Updates to example must be made at:
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
-the file of the same name on this server. If this is the first Linux package node you are configuring then you can skip this step.
+ the file of the same name on this server. If this is the first Linux package node you are configuring then you can skip this step.
1. Praefect requires to run some database migrations, much like the main GitLab application. For this
you should select **one Praefect node only to run the migrations**, AKA the _Deploy Node_. This node
@@ -1687,7 +1699,7 @@ examples include the Object storage configuration.
- `10.6.0.71`: Sidekiq 1
- `10.6.0.72`: Sidekiq 2
-To configure the Sidekiq nodes, one each one:
+To configure the Sidekiq nodes, on each one:
1. SSH in to the Sidekiq server.
1. [Download and install](https://about.gitlab.com/install/) the Linux package
@@ -1791,6 +1803,15 @@ Updates to example must be made at:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
```
1. Copy the `/etc/gitlab/gitlab-secrets.json` file from the first Linux package node you configured and add or replace
@@ -1948,7 +1969,15 @@ On each node perform the following:
'google_json_key_location' => '<path-to-gcp-service-account-key>'
}
gitlab_rails['backup_upload_remote_directory'] = "<gcp-backups-state-bucket-name>"
+ gitlab_rails['ci_secure_files_object_store_enabled'] = true
+ gitlab_rails['ci_secure_files_object_store_remote_directory'] = "gcp-ci_secure_files-bucket-name"
+ gitlab_rails['ci_secure_files_object_store_connection'] = {
+ 'provider' => 'Google',
+ 'google_project' => '<gcp-project-name>',
+ 'google_json_key_location' => '<path-to-gcp-service-account-key>'
+ }
+
## Uncomment and edit the following options if you have set up NFS
##
## Prevent GitLab from starting if NFS data mounts are not available
@@ -2220,7 +2249,7 @@ the overall makeup as desired as long as the minimum CPU and Memory requirements
| Supporting services | 2 | 2 vCPU, 7.5 GB memory | `n1-standard-2` | `m5.large` | 3.9 vCPU, 11.8 GB memory |
- For this setup, we **recommend** and regularly [test](index.md#validation-and-test-results)
-[Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
+ [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) and [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/). Other Kubernetes services may also work, but your mileage may vary.
- Nodes configuration is shown as it is forced to ensure pod vCPU / memory ratios and avoid scaling during **performance testing**.
- In production deployments, there is no need to assign pods to nodes. A minimum of three nodes in three different availability zones is strongly recommended to align with resilient cloud architecture practices.
diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md
index c4827695716..7e4e929f80d 100644
--- a/doc/administration/reference_architectures/index.md
+++ b/doc/administration/reference_architectures/index.md
@@ -1,6 +1,7 @@
---
stage: Systems
group: Distribution
+description: Recommended deployments at scale.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -13,8 +14,7 @@ GitLab Quality Engineering and Support teams to provide recommended deployments
The following Reference Architectures are available as recommended starting points for your environment.
-The architectures are named in terms of user count, which in this case means the architecture is designed against
-the _total_ load that comes with such a user count based on real data along with substantial headroom added to cover most scenarios such as CI or other automated workloads.
+The architectures are named in terms of _total_ load, both manual and automated, correlated to user count and based on real data along with substantial headroom added to add additional coverage for most scenarios.
However, it should be noted that in some cases, known heavy scenarios such as [large monorepos](#large-monorepos) or notable [additional workloads](#additional-workloads) may require adjustments to be made.
@@ -679,32 +679,44 @@ You should upgrade a Reference Architecture in the same order as you created it.
### Scaling an environment
-Scaling a GitLab environment is designed to be as flexible and seamless as possible.
+The Reference Architectures have been designed to support scaling in various ways depending on your use case and circumstances.
+This can be done iteratively or wholesale to the next size of architecture depending on if metrics suggest a component is being exhausted.
-This can be done iteratively or wholesale to the next size of architecture depending on your circumstances.
-For example, if any of your GitLab Rails, Sidekiq, Gitaly, Redis or PostgreSQL nodes are consistently oversaturated, then increase their resources accordingly while leaving the rest of the environment as is.
+NOTE:
+If you're seeing a component continuously exhausting it's given resources it's strongly recommended for you to reach out to our [Support team](https://about.gitlab.com/support/) before performing any scaling. This is especially so if you're planning to scale any component significantly.
-If expecting a large increase in users, you may elect to scale up the whole environment to the next
-size of architecture.
+For most components vertical and horizontal scaling can be applied as normal. However, before doing so though please be aware of the below caveats:
-If the overall design is being followed, you can scale the environment vertically as required.
+- When scaling Puma or Sidekiq vertically the amount of workers will need to be adjusted to use the additional specs. Puma will be scaled automatically on the next reconfigure but Sidekiq will need [its configuration changed beforehand](../sidekiq/extra_sidekiq_processes.md#start-multiple-processes).
+- Redis and PgBouncer are primarily single threaded. If these components are seeing CPU exhaustion they may need to be scaled out horizontally.
+- Scaling certain components significantly can result in notable knock on effects that affect the performance of the environment. [Refer to the dedicated section below for more guidance](#scaling-knock-on-effects).
-If robust metrics are in place that show the environment is over-provisioned, you can apply the same process for
-scaling downwards. You should take an iterative approach when scaling downwards to ensure there are no issues.
+Conversely, if you have robust metrics in place that show the environment is over-provisioned, you can scale downwards similarly.
+You should take an iterative approach when scaling downwards, however, to ensure there are no issues.
-#### Scaling from a non-HA to an HA architecture
+#### Scaling knock on effects
-While in most cases vertical scaling is only required to increase an environment's resources, if you are moving to an HA environment,
-there may be some additional steps required as shown below:
+In some cases scaling a component significantly may result in knock on effects for downstream components, impacting performance. The Reference Architectures were designed with balance in mind to ensure components that depend on each other are congruent in terms of specs. As such you may find when notably scaling a component that it's increase may result in additional throughput being passed to the other components it depends on and that they, in turn, may need to be scaled as well.
-- If you're scaling from a non-HA environment to an HA environment, various components are recommended to be deployed in their HA forms:
- - [Redis to multi-node Redis w/ Redis Sentinel](../redis/replication_and_failover.md#switching-from-an-existing-single-machine-installation)
- - [Postgres to multi-node Postgres w/ Consul + PgBouncer](../postgresql/moving.md)
- - [Gitaly to Gitaly Cluster w/ Praefect](../gitaly/index.md#migrate-to-gitaly-cluster)
-- From 10k users and higher, Redis is recommended to be split into multiple HA servers as it's single threaded.
+NOTE:
+As a general rule most components have good headroom to accommodate an upstream component being scaled, so this is typically on a case by case basis and specific to what has been changed. It's recommended for you to reach out to our [Support team](https://about.gitlab.com/support/) before you make any significant changes to the environment.
-Conversely, if you have robust metrics in place that show the environment is over-provisioned, you can apply the same process for
-scaling downwards. You should take an iterative approach when scaling downwards, however, to ensure there are no issues.
+The following components can impact others when they have been significantly scaled:
+
+- Puma and Sidekiq - Notable scale ups of either Puma or Sidekiq workers will result in higher concurrent connections to the internal load balancer, PostgreSQL (via PgBouncer if present), Gitaly (via Praefect if present) and Redis respectively.
+ - Redis is primarily single threaded and in some cases may need to be split up into different instances (Cache / Persistent) if the increased throughput causes CPU exhaustion if a combined cluster is currently being used.
+ - PgBouncer is also single threaded but note that a scale out will result in a new pool being added that in turn will increase total connections to Postgres. It's strongly recommended to only do this if you have experience in managing Postgres connections and to seek assistance if in doubt.
+- Gitaly Cluster / PostgreSQL - A notable scale out of additional nodes can have a detrimental effect on the HA system and performance due to increased replication calls to the primary node.
+
+#### Scaling from a non-HA to an HA architecture
+
+While in most cases vertical scaling is only required to increase an environment's resources, if you are moving to an HA environment
+additional steps will be required for the following components to switch over to their HA forms respectively by following the given
+documentation for each as follows
+
+- [Redis to multi-node Redis w/ Redis Sentinel](../redis/replication_and_failover.md#switching-from-an-existing-single-machine-installation)
+- [Postgres to multi-node Postgres w/ Consul + PgBouncer](../postgresql/moving.md)
+- [Gitaly to Gitaly Cluster w/ Praefect](../gitaly/index.md#migrate-to-gitaly-cluster)
### Monitoring
@@ -721,6 +733,7 @@ You can find a full history of changes [on the GitLab project](https://gitlab.co
**2023:**
- [2023-12-12](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133457): Updated notes on Load Balancers to be more reflective that any reputable offering is expected to work.
+- [2023-12-12](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133457): Updated notes on Load Balancers to be more reflective that any reputable offering is expected to work.
- [2023-11-03](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133457): Expanded details on what each Reference Architecture is designed for, the testing methodology used as well as added details on how to scale environments.
- [2023-11-03](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134518): Added expanded notes on disk types, object storage and monitoring.
- [2023-10-25](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134518): Adjusted Sidekiq configuration example to use Linux Package role.
diff --git a/doc/administration/repository_storage_types.md b/doc/administration/repository_storage_types.md
deleted file mode 100644
index 844dc76b23d..00000000000
--- a/doc/administration/repository_storage_types.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-redirect_to: 'repository_storage_paths.md'
-remove_date: '2023-11-29'
----
-
-This document was moved to [another location](repository_storage_paths.md).
-
-<!-- This redirect file can be deleted after <2023-11-29>. -->
diff --git a/doc/administration/settings/email.md b/doc/administration/settings/email.md
index cc80b082139..a010a855ba1 100644
--- a/doc/administration/settings/email.md
+++ b/doc/administration/settings/email.md
@@ -10,7 +10,7 @@ You can customize some of the content in emails sent from your GitLab instance.
## Custom logo
-The logo in the header of some emails can be customized, see the [logo customization section](../../administration/appearance.md#navigation-bar).
+The logo in the header of some emails can be customized, see the [logo customization section](../../administration/appearance.md#customize-your-homepage-button).
## Include author name in email notification email body **(PREMIUM SELF)**
diff --git a/doc/administration/settings/help_page.md b/doc/administration/settings/help_page.md
index 1077bbec316..bb7f214a106 100644
--- a/doc/administration/settings/help_page.md
+++ b/doc/administration/settings/help_page.md
@@ -55,7 +55,7 @@ GitLab marketing-related entries are occasionally shown on the Help page. To hid
You can specify a custom URL to which users are directed when they:
-- Select **Support** from the Help dropdown list.
+- Select **Help > Support**.
- Select **See our website for help** on the Help page.
1. On the left sidebar, at the bottom, select **Admin Area**.
diff --git a/doc/administration/settings/import_and_export_settings.md b/doc/administration/settings/import_and_export_settings.md
index ddb31e49483..54995cdc686 100644
--- a/doc/administration/settings/import_and_export_settings.md
+++ b/doc/administration/settings/import_and_export_settings.md
@@ -121,7 +121,7 @@ To modify this setting:
> - **Maximum decompressed file size for archives from imports** field [renamed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130081) from **Maximum decompressed size** in GitLab 16.4.
When you import a project using [file exports](../../user/project/settings/import_export.md) or
-[direct transfer](../../user/group/import/index.md#migrate-groups-by-direct-transfer-recommended), you can specify the
+[direct transfer](../../user/group/import/index.md), you can specify the
maximum decompressed file size for imported archives. The default value is 25 GiB.
When you import a compressed file, the decompressed size cannot exceed the maximum decompressed file size limit. If the
diff --git a/doc/administration/settings/index.md b/doc/administration/settings/index.md
index 531073887c5..2df9d1cd52d 100644
--- a/doc/administration/settings/index.md
+++ b/doc/administration/settings/index.md
@@ -1,6 +1,7 @@
---
stage: none
group: unassigned
+description: Product settings.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/administration/settings/jira_cloud_app_troubleshooting.md b/doc/administration/settings/jira_cloud_app_troubleshooting.md
index 1b6f88d43ae..cc17c620724 100644
--- a/doc/administration/settings/jira_cloud_app_troubleshooting.md
+++ b/doc/administration/settings/jira_cloud_app_troubleshooting.md
@@ -10,7 +10,7 @@ When administering the GitLab for Jira Cloud app for self-managed instances, you
For GitLab.com, see [GitLab for Jira Cloud app](../../integration/jira/connect-app.md#troubleshooting).
-## Browser displays a sign-in message when already signed in
+## Sign-in message displayed when already signed in
You might get the following message prompting you to sign in to GitLab.com
when you're already signed in:
@@ -26,12 +26,17 @@ To resolve this issue, set up [OAuth authentication](jira_cloud_app.md#set-up-oa
## Manual installation fails
-You might get an error if you have installed the GitLab for Jira Cloud app from the official marketplace listing and replaced it with [manual installation](jira_cloud_app.md#install-the-gitlab-for-jira-cloud-app-manually):
+You might get one of the following errors if you've installed the GitLab for Jira Cloud app
+from the official marketplace listing and replaced it with [manual installation](jira_cloud_app.md#install-the-gitlab-for-jira-cloud-app-manually):
```plaintext
The app "gitlab-jira-connect-gitlab.com" could not be installed as a local app as it has previously been installed from Atlassian Marketplace
```
+```plaintext
+The app host returned HTTP response code 401 when we tried to contact it during installation. Please try again later or contact the app vendor.
+```
+
To resolve this issue, disable the **Jira Connect Proxy URL** setting.
- In GitLab 15.7:
@@ -47,7 +52,7 @@ To resolve this issue, disable the **Jira Connect Proxy URL** setting.
1. Clear the **Jira Connect Proxy URL** text box.
1. Select **Save changes**.
-## Data sync fails with `Invalid JWT` error
+## Data sync fails with `Invalid JWT`
If the GitLab for Jira Cloud app continuously fails to sync data, it may be due to an outdated secret token. Atlassian can send new secret tokens that must be processed and stored by GitLab.
If GitLab fails to store the token or misses the new token request, an `Invalid JWT` error occurs.
@@ -101,13 +106,16 @@ due to a [known issue](https://gitlab.com/gitlab-org/gitlab/-/issues/388943). To
### Debugging Jira Connect Proxy issues
-If you are using a self-managed GitLab instance and you have configured `https://gitlab.com` for the Jira Connect Proxy URL when
-[setting up the OAuth authentication](jira_cloud_app.md#set-up-oauth-authentication), you can inspect the network traffic in your browser's development
-tools while reproducing the `Failed to update the GitLab instance` error to see a more precise error.
+If you set **Jira Connect Proxy URL** to `https://gitlab.com` when you
+[set up your instance](jira_cloud_app.md#set-up-your-instance), you can:
+
+- Inspect the network traffic in your browser's development tools.
+- Reproduce the `Failed to update the GitLab instance` error for more information.
You should see a `GET` request to `https://gitlab.com/-/jira_connect/installations`.
-This request should return a `200` status code, but it can return a `422` status code if there was a problem. The response body can be checked for the error.
+This request should return a `200 OK`, but it might return a `422 Unprocessable Entity` if there was a problem.
+You can check the response body for the error.
If you cannot resolve the problem and you are a GitLab customer, contact [GitLab Support](https://about.gitlab.com/support/) for assistance. Provide
GitLab Support with:
@@ -119,7 +127,7 @@ GitLab Support with:
The GitLab Support team can then look up why this is failing in the GitLab.com server logs.
-#### Process for GitLab Support
+#### GitLab Support
NOTE:
These steps can only be completed by GitLab Support.
@@ -138,12 +146,12 @@ For the second log:
- `json.message` is `Proxy lifecycle event received error response` or similar.
- `json.jira_status_code` and `json.jira_body` might contain details on why GitLab.com wasn't able to connect back to the self-managed instance.
-- If `json.jira_status_code` is `401` and `json.jira_body` is empty, this might indicate that the [**Jira Connect Proxy URL**](jira_cloud_app.md#set-up-your-instance) is not set to
+- If `json.jira_status_code` is `401` and `json.jira_body` is empty, [**Jira Connect Proxy URL**](jira_cloud_app.md#set-up-your-instance) might not be set to
`https://gitlab.com`.
-## `Failed to link group`
+## Error when connecting the app
-After you connect the GitLab for Jira Cloud app for self-managed instances, you might get one of these errors:
+When you connect the GitLab for Jira Cloud app, you might get one of these errors:
```plaintext
Failed to load Jira Connect Application ID. Please try again.
@@ -159,6 +167,7 @@ When you check the browser console, you might see the following message:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://gitlab.example.com/-/jira_connect/oauth_application_id. (Reason: CORS header 'Access-Control-Allow-Origin' missing). Status code: 403.
```
-`403` status code is returned if the user information cannot be fetched from Jira because of insufficient permissions.
+A `403 Forbidden` is returned if the user information cannot be fetched from Jira because of insufficient permissions.
-To resolve this issue, ensure that the Jira user that installs and configures the GitLab for Jira Cloud app meets certain [requirements](jira_cloud_app.md#jira-user-requirements).
+To resolve this issue, ensure the Jira user that installs and configures the app meets certain
+[requirements](jira_cloud_app.md#jira-user-requirements).
diff --git a/doc/administration/settings/rate_limit_on_members_api.md b/doc/administration/settings/rate_limit_on_members_api.md
new file mode 100644
index 00000000000..3e8868adc91
--- /dev/null
+++ b/doc/administration/settings/rate_limit_on_members_api.md
@@ -0,0 +1,33 @@
+---
+stage: Data Stores
+group: Tenant Scale
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Rate limit on Members API **(FREE SELF)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140633) in GitLab 16.9.
+
+You can configure the rate limit per group (or project) per user to the
+[delete members API](../../api/members.md#remove-a-member-from-a-group-or-project).
+
+To change the rate limit:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > Network**.
+1. Expand **Members API rate limit**.
+1. In the **Maximum requests per minute per group / project** text box, enter the new value.
+1. Select **Save changes**.
+
+The rate limit:
+
+- Applies per group or project per user.
+- Can be set to 0 to disable rate limiting.
+
+The default value of the rate limit is `60`.
+
+Requests over the rate limit are logged into the `auth.log` file.
+
+For example, if you set a limit of 60, requests sent to the
+[delete members API](../../api/members.md#remove-a-member-from-a-group-or-project) exceeding a rate of 300 per minute
+are blocked. Access to the endpoint is allowed after one minute.
diff --git a/doc/administration/settings/scim_setup.md b/doc/administration/settings/scim_setup.md
index 52061150fa7..2e1b40d58b8 100644
--- a/doc/administration/settings/scim_setup.md
+++ b/doc/administration/settings/scim_setup.md
@@ -33,6 +33,51 @@ To configure GitLab SCIM:
- Token from the **Your SCIM token** field.
- URL from the **SCIM API endpoint URL** field.
+## Configure an identity provider
+
+You can configure the following as an identity provider:
+
+- [Okta](#configure-okta).
+
+NOTE:
+Other identity providers can work with GitLab but they have not been tested and are not supported. You should contact the provider for support. GitLab support can assist by reviewing related log entries.
+
+### Configure Okta
+
+The SAML application created during [single sign-on](index.md) set up for Okta must be set up for SCIM.
+
+Prerequisites:
+
+- You must use the [Okta Lifecycle Management](https://www.okta.com/products/lifecycle-management/) product. This
+ product tier is required to use SCIM on Okta.
+- [GitLab is configured](#configure-gitlab) for SCIM.
+- The SAML application for [Okta](https://developer.okta.com/docs/guides/build-sso-integration/saml2/main/) set up as
+ described in the [Okta setup notes](../../integration/saml.md#set-up-okta).
+- Your Okta SAML setup matches the [configuration steps](index.md), especially the NameID configuration.
+
+To configure Okta for SCIM:
+
+1. Sign in to Okta.
+1. In the upper-right corner, select **Admin**. The button is not visible from the Admin Area.
+1. In the **Application** tab, select **Browse App Catalog**.
+1. Find and select the **GitLab** application.
+1. On the GitLab application overview page, select **Add Integration**.
+1. Under **Application Visibility**, select both checkboxes. The GitLab application does not support SAML
+ authentication so the icon should not be shown to users.
+1. Select **Done** to finish adding the application.
+1. In the **Provisioning** tab, select **Configure API integration**.
+1. Select **Enable API integration**.
+ - For **Base URL**, paste the URL you copied from **SCIM API endpoint URL** on the GitLab SCIM configuration page.
+ - For **API Token**, paste the SCIM token you copied from **Your SCIM token** on the GitLab SCIM
+ configuration page.
+1. To verify the configuration, select **Test API Credentials**.
+1. Select **Save**.
+1. After saving the API integration details, new settings tabs appear on the left. Select **To App**.
+1. Select **Edit**.
+1. Select the **Enable** checkbox for both **Create Users** and **Deactivate Users**.
+1. Select **Save**.
+1. Assign users in the **Assignments** tab. Assigned users are created and managed in your GitLab group.
+
## Remove access
Removing or deactivating a user on the identity provider blocks the user on
diff --git a/doc/administration/settings/sign_in_restrictions.md b/doc/administration/settings/sign_in_restrictions.md
index 60994bc6e43..6888994580c 100644
--- a/doc/administration/settings/sign_in_restrictions.md
+++ b/doc/administration/settings/sign_in_restrictions.md
@@ -85,7 +85,7 @@ To enable Admin Mode through the UI:
To turn on Admin Mode for your current session and access potentially dangerous resources:
-1. On the left sidebar, select **Search or go to**.
+1. On the left sidebar, select your avatar.
1. Select **Enter Admin Mode**.
1. Try to access any part of the UI with `/admin` in the URL (which requires administrator access).
@@ -103,7 +103,7 @@ authentication are supported by Admin Mode. Admin Mode status is stored in the c
To turn off Admin Mode for your current session:
-1. On the left sidebar, select **Search or go to**.
+1. On the left sidebar, select your avatar.
1. Select **Leave Admin Mode**.
### Limitations of Admin Mode
diff --git a/doc/administration/settings/slack_app.md b/doc/administration/settings/slack_app.md
index 5e54294b720..48352a74060 100644
--- a/doc/administration/settings/slack_app.md
+++ b/doc/administration/settings/slack_app.md
@@ -106,9 +106,11 @@ When administering the GitLab for Slack app for self-managed instances, you migh
For GitLab.com, see [GitLab for Slack app](../../user/project/integrations/gitlab_slack_app_troubleshooting.md).
-### Slash commands return an error in Slack
+### Slash commands return `dispatch_failed` in Slack
-Slash commands might return `/gitlab failed with the error "dispatch_failed"` in Slack. To resolve this issue, ensure:
+Slash commands might return `/gitlab failed with the error "dispatch_failed"` in Slack.
+
+To resolve this issue, ensure:
- The GitLab for Slack app is properly [configured](#configure-the-settings) and the **Enable GitLab for Slack app** checkbox is selected.
- Your GitLab instance [allows requests to and from Slack](#connectivity-requirements).
diff --git a/doc/administration/settings/usage_statistics.md b/doc/administration/settings/usage_statistics.md
index 20479a7dd8a..b661bcd6746 100644
--- a/doc/administration/settings/usage_statistics.md
+++ b/doc/administration/settings/usage_statistics.md
@@ -100,15 +100,6 @@ for all authenticated users, and on the Admin Area pages. The statuses are:
![Orange version check example](../settings/img/update-available.png)
-GitLab Inc. collects your instance's version and hostname (through the HTTP
-referer) as part of the version check. No other information is collected.
-
-This information is used, among other things, to identify to which versions
-patches must be backported, making sure active GitLab instances remain
-secure.
-
-If you disable version check, this information isn't collected.
-
### Enable or disable version check
1. On the left sidebar, at the bottom, select **Admin Area**.
diff --git a/doc/administration/sidekiq/sidekiq_memory_killer.md b/doc/administration/sidekiq/sidekiq_memory_killer.md
index 6dcc97f2f7a..ff823bb6c56 100644
--- a/doc/administration/sidekiq/sidekiq_memory_killer.md
+++ b/doc/administration/sidekiq/sidekiq_memory_killer.md
@@ -28,7 +28,7 @@ run as a process group leader (for example, using `chpst -P`). If using a Linux
## Configuring the limits
-Sidekiq memory limits are controlled using environment variables.
+Sidekiq memory limits are controlled using [environment variables](https://docs.gitlab.com/omnibus/settings/environment-variables.html#setting-custom-environment-variables)
- `SIDEKIQ_MEMORY_KILLER_MAX_RSS` (KB): defines the Sidekiq process soft limit for allowed RSS.
If the Sidekiq process RSS (expressed in kilobytes) exceeds `SIDEKIQ_MEMORY_KILLER_MAX_RSS`,
diff --git a/doc/administration/troubleshooting/postgresql.md b/doc/administration/troubleshooting/postgresql.md
index 315a68fb126..75fd807643c 100644
--- a/doc/administration/troubleshooting/postgresql.md
+++ b/doc/administration/troubleshooting/postgresql.md
@@ -103,7 +103,7 @@ This section is for links to information elsewhere in the GitLab documentation.
- Managing PostgreSQL versions on Linux package installations [from the development docs](https://docs.gitlab.com/omnibus/development/managing-postgresql-versions.html).
- [PostgreSQL scaling](../postgresql/replication_and_failover.md)
- - Including [troubleshooting](../postgresql/replication_and_failover.md#troubleshooting)
+ - Including [troubleshooting](../../administration/postgresql/replication_and_failover_troubleshooting.md)
`gitlab-ctl patroni check-leader` and PgBouncer errors.
- [Developer database documentation](../../development/feature_development.md#database-guides),
diff --git a/doc/administration/uploads.md b/doc/administration/uploads.md
index 31d0781ee79..95454ef629c 100644
--- a/doc/administration/uploads.md
+++ b/doc/administration/uploads.md
@@ -19,7 +19,7 @@ This is the default configuration. To change the location where the uploads are
stored locally, use the steps in this section based on your installation method:
NOTE:
-For historical reasons, uploads for the whole instance (for example the [favicon](../administration/appearance.md#favicon)) are stored in a base directory,
+For historical reasons, uploads for the whole instance (for example the [favicon](../administration/appearance.md#customize-the-favicon)) are stored in a base directory,
which by default is `uploads/-/system`. Changing the base
directory on an existing GitLab installation is strongly discouraged.
diff --git a/doc/api/api_resources.md b/doc/api/api_resources.md
index 6e0963c5325..cf08c34655b 100644
--- a/doc/api/api_resources.md
+++ b/doc/api/api_resources.md
@@ -72,7 +72,8 @@ The following API resources are available in the project context:
| [NPM repository](packages/npm.md) | `/projects/:id/packages/npm` |
| [NuGet packages](packages/nuget.md) | `/projects/:id/packages/nuget` (also available for groups) |
| [Packages](packages.md) | `/projects/:id/packages` |
-| [Pages domains](pages_domains.md) | `/projects/:id/pages` (also available standalone) |
+| [Pages domains](pages_domains.md) | `/projects/:id/pages/domains` (also available standalone) |
+| [Pages settings](pages.md) | `/projects/:id/pages` |
| [Pipeline schedules](pipeline_schedules.md) | `/projects/:id/pipeline_schedules` |
| [Pipeline triggers](pipeline_triggers.md) | `/projects/:id/triggers` |
| [Pipelines](pipelines.md) | `/projects/:id/pipelines` |
diff --git a/doc/api/award_emoji.md b/doc/api/award_emoji.md
deleted file mode 100644
index 09f7b4c77fa..00000000000
--- a/doc/api/award_emoji.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'emoji_reactions.md'
-remove_date: '2023-12-20'
----
-
-This document was moved to [another location](emoji_reactions.md).
-
-<!-- This redirect file can be deleted after <2023-12-20>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/api/bulk_imports.md b/doc/api/bulk_imports.md
index 1d7556f863a..bebfdb80a35 100644
--- a/doc/api/bulk_imports.md
+++ b/doc/api/bulk_imports.md
@@ -10,7 +10,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
> - Project migration [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/390515) in GitLab 15.11.
With the group migration by direct transfer API, you can start and view the progress of migrations initiated with
-[group migration by direct transfer](../user/group/import/index.md#migrate-groups-by-direct-transfer-recommended).
+[group migration by direct transfer](../user/group/import/index.md).
WARNING:
Migrating projects with this API is in [Beta](../policy/experiment-beta-support.md#beta). This feature is not
diff --git a/doc/api/code_suggestions.md b/doc/api/code_suggestions.md
index 91c5c988acd..307dc112028 100644
--- a/doc/api/code_suggestions.md
+++ b/doc/api/code_suggestions.md
@@ -38,6 +38,7 @@ Example response:
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/415581) in GitLab 16.2 [with a flag](../administration/feature_flags.md) named `code_suggestions_completion_api`. Disabled by default. This feature is an Experiment.
> - Requirement to generate a JWT before calling this endpoint was [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127863) in GitLab 16.3.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/416371) in GitLab 16.8. [Feature flag `code_suggestions_completion_api`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138174) removed.
FLAG:
On self-managed GitLab, by default this feature is not available. To make it available, an administrator can [enable the feature flag](../administration/feature_flags.md) named `code_suggestions_completion_api`.
diff --git a/doc/api/container_registry.md b/doc/api/container_registry.md
index ab8be6abab7..9ad52fa3c3a 100644
--- a/doc/api/container_registry.md
+++ b/doc/api/container_registry.md
@@ -6,28 +6,14 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Container registry API **(FREE ALL)**
-> The use of `CI_JOB_TOKEN` scoped to the current project was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49750) in GitLab 13.12.
+> - The ability to authenticate with a CI/CD job token [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49750) in GitLab 13.12 [with a flag](../administration/feature_flags.md) named `ci_job_token_scope`. Disabled by default.
+> - CI/CD job token authentication [generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/300821) in GitLab 16.8. Feature flag `ci_job_token_scope` removed.
-This API documentation is about the [GitLab container registry](../user/packages/container_registry/index.md).
+Use these API endpoints to work with the [GitLab container registry](../user/packages/container_registry/index.md).
-When the `ci_job_token_scope` feature flag is enabled (it is **disabled by default**), you can use the below endpoints
-from a CI/CD job, by passing the `$CI_JOB_TOKEN` variable as the `JOB-TOKEN` header.
-The job token only has access to its own project.
-
-[GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md)
-can opt to enable it.
-
-To enable it:
-
-```ruby
-Feature.enable(:ci_job_token_scope)
-```
-
-To disable it:
-
-```ruby
-Feature.disable(:ci_job_token_scope)
-```
+You can authenticate with these endpoints from a CI/CD job by passing the [`$CI_JOB_TOKEN`](../ci/jobs/ci_job_token.md)
+variable as the `JOB-TOKEN` header. The job token only has access to the container registry
+of the project that created the pipeline.
## Change the visibility of the container registry
@@ -47,13 +33,11 @@ PUT /projects/:id/
Descriptions of the possible values for `container_registry_access_level`:
- **enabled** (Default): The container registry is visible to everyone with access to the project.
-If the project is public, the container registry is also public. If the project is internal or
-private, the container registry is also internal or private.
-
+ If the project is public, the container registry is also public. If the project is internal or
+ private, the container registry is also internal or private.
- **private**: The container registry is visible only to project members with Reporter role or
-higher. This behavior is similar to that of a private project with container registry visibility set
-to **enabled**.
-
+ higher. This behavior is similar to that of a private project with container registry visibility set
+ to **enabled**.
- **disabled**: The container registry is disabled.
See the [container registry visibility permissions](../user/packages/container_registry/index.md#container-registry-visibility-permissions)
diff --git a/doc/api/discussions.md b/doc/api/discussions.md
index 8640f3b45c6..b12131e4746 100644
--- a/doc/api/discussions.md
+++ b/doc/api/discussions.md
@@ -712,7 +712,7 @@ GET /projects/:id/merge_requests/:merge_request_iid/discussions
"updated_at": "2018-03-03T21:54:39.668Z",
"system": false,
"noteable_id": 3,
- "noteable_type": "Merge request",
+ "noteable_type": "MergeRequest",
"project_id": 5,
"noteable_iid": null,
"resolved": false,
@@ -737,7 +737,7 @@ GET /projects/:id/merge_requests/:merge_request_iid/discussions
"updated_at": "2018-03-04T13:38:02.127Z",
"system": false,
"noteable_id": 3,
- "noteable_type": "Merge request",
+ "noteable_type": "MergeRequest",
"project_id": 5,
"noteable_iid": null,
"resolved": false,
@@ -767,7 +767,7 @@ GET /projects/:id/merge_requests/:merge_request_iid/discussions
"updated_at": "2018-03-04T09:17:22.520Z",
"system": false,
"noteable_id": 3,
- "noteable_type": "Merge request",
+ "noteable_type": "MergeRequest",
"project_id": 5,
"noteable_iid": null,
"resolved": false,
@@ -804,7 +804,7 @@ Diff comments also contain position:
"updated_at": "2018-03-04T09:17:22.520Z",
"system": false,
"noteable_id": 3,
- "noteable_type": "Merge request",
+ "noteable_type": "MergeRequest",
"project_id": 5,
"noteable_iid": null,
"commit_id": "4803c71e6b1833ca72b8b26ef2ecd5adc8a38031",
@@ -865,8 +865,6 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" \
### Create new merge request thread
-> The `commit id` entry was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47130) in GitLab 13.7.
-
Creates a new thread to a single project merge request. Similar to creating
a note but other comments (replies) can be added to it later. For other approaches,
see [Post comment to commit](commits.md#post-comment-to-commit) in the Commits API,
@@ -878,27 +876,27 @@ POST /projects/:id/merge_requests/:merge_request_iid/discussions
Parameters for all comments:
-| Attribute | Type | Required | Description |
-| ---------------------------------------- | -------------- | -------- | ----------- |
-| `body` | string | yes | The content of the thread. |
-| `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `merge_request_iid` | integer | yes | The IID of a merge request. |
-| `position[base_sha]` | string | yes | Base commit SHA in the source branch. |
-| `position[head_sha]` | string | yes | SHA referencing HEAD of this merge request. |
-| `position[start_sha]` | string | yes | SHA referencing commit in target branch. |
+| Attribute | Type | Required | Description |
+| ---------------------------------------- | -------------- |--------------------------------------| ----------- |
+| `body` | string | yes | The content of the thread. |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `merge_request_iid` | integer | yes | The IID of a merge request. |
+| `position[base_sha]` | string | yes (if `position*` is supplied) | Base commit SHA in the source branch. |
+| `position[head_sha]` | string | yes (if `position*` is supplied) | SHA referencing HEAD of this merge request. |
+| `position[start_sha]` | string | yes (if `position*` is supplied) | SHA referencing commit in target branch. |
| `position[new_path]` | string | yes (if the position type is `text`) | File path after change. |
| `position[old_path]` | string | yes (if the position type is `text`) | File path before change. |
-| `position[position_type]` | string | yes | Type of the position reference. Allowed values: `text` or `image`. |
-| `commit_id` | string | no | SHA referencing commit to start this thread on. |
-| `created_at` | string | no | Date time string, ISO 8601 formatted, such as `2016-03-11T03:45:40Z`. Requires administrator or project/group owner rights. |
-| `position` | hash | no | Position when creating a diff note. |
-| `position[new_line]` | integer | no | For `text` diff notes, the line number after change. |
-| `position[old_line]` | integer | no | For `text` diff notes, the line number before change. |
-| `position[line_range]` | hash | no | Line range for a multi-line diff note. |
-| `position[width]` | integer | no | For `image` diff notes, width of the image. |
-| `position[height]` | integer | no | For `image` diff notes, height of the image. |
-| `position[x]` | float | no | For `image` diff notes, X coordinate. |
-| `position[y]` | float | no | For `image` diff notes, Y coordinate. |
+| `position[position_type]` | string | yes (if position* is supplied) | Type of the position reference. Allowed values: `text` or `image`. |
+| `commit_id` | string | no | SHA referencing commit to start this thread on. |
+| `created_at` | string | no | Date time string, ISO 8601 formatted, such as `2016-03-11T03:45:40Z`. Requires administrator or project/group owner rights. |
+| `position` | hash | no | Position when creating a diff note. |
+| `position[new_line]` | integer | no | For `text` diff notes, the line number after change. |
+| `position[old_line]` | integer | no | For `text` diff notes, the line number before change. |
+| `position[line_range]` | hash | no | Line range for a multi-line diff note. |
+| `position[width]` | integer | no | For `image` diff notes, width of the image. |
+| `position[height]` | integer | no | For `image` diff notes, height of the image. |
+| `position[x]` | float | no | For `image` diff notes, X coordinate. |
+| `position[y]` | float | no | For `image` diff notes, Y coordinate. |
#### Create a new thread on the overview page
@@ -1289,17 +1287,17 @@ POST /projects/:id/repository/commits/:commit_id/discussions
Parameters:
-| Attribute | Type | Required | Description |
-| ------------------------- | -------------- | -------- | ----------- |
-| `body` | string | yes | The content of the thread. |
-| `commit_id` | string | yes | The SHA of a commit. |
-| `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `position[base_sha]` | string | yes | SHA of the parent commit. |
-| `position[head_sha]` | string | yes | The SHA of this commit. Same as `commit_id`. |
-| `position[start_sha]` | string | yes | SHA of the parent commit. |
-| `position[position_type]` | string | yes | Type of the position reference. Allowed values: `text` or `image`. |
-| `created_at` | string | no | Date time string, ISO 8601 formatted, such as `2016-03-11T03:45:40Z`. Requires administrator or project/group owner rights. |
-| `position` | hash | no | Position when creating a diff note. |
+| Attribute | Type | Required | Description |
+| ------------------------- | -------------- |----------------------------------| ----------- |
+| `body` | string | yes | The content of the thread. |
+| `commit_id` | string | yes | The SHA of a commit. |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `position[base_sha]` | string | yes (if `position*` is supplied) | SHA of the parent commit. |
+| `position[head_sha]` | string | yes (if `position*` is supplied) | The SHA of this commit. Same as `commit_id`. |
+| `position[start_sha]` | string | yes (if `position*` is supplied) | SHA of the parent commit. |
+| `position[position_type]` | string | yes (if `position*` is supplied) | Type of the position reference. Allowed values: `text` or `image`. |
+| `created_at` | string | no | Date time string, ISO 8601 formatted, such as `2016-03-11T03:45:40Z`. Requires administrator or project/group owner rights. |
+| `position` | hash | no | Position when creating a diff note. |
| `position[new_path]` | string | no | File path after change. |
| `position[new_line]` | integer | no | Line number after change. |
diff --git a/doc/api/graphql/getting_started.md b/doc/api/graphql/getting_started.md
index cf756027e01..868059fb979 100644
--- a/doc/api/graphql/getting_started.md
+++ b/doc/api/graphql/getting_started.md
@@ -42,8 +42,7 @@ You can run GraphQL queries in a `curl` request on the command line on your
local computer. The requests `POST` to `/api/graphql`
with the query as the payload. You can authorize your request by generating a
[personal access token](../../user/profile/personal_access_tokens.md) to use as
-a bearer token.
-This token requires at least the `read_api` scope.
+a bearer token. Read more about [GraphQL Authentication](index.md#authentication).
Example:
@@ -162,10 +161,9 @@ More about queries:
### Authorization
-Authorization uses the same engine as the GitLab application (and GitLab.com).
If you've signed in to GitLab and use [GraphiQL](#graphiql), all queries are performed as
-you, the authenticated user. For more information, read the
-[GitLab API documentation](../rest/index.md#authentication).
+you, the authenticated user. For more information, read about
+[GraphQL Authentication](index.md#authentication).
### Mutations
@@ -285,10 +283,9 @@ in `CI_JOB_TOKEN` scoping behavior.
```graphql
mutation DisableCI_JOB_TOKENscope {
- projectCiCdSettingsUpdate(input:{fullPath: "<namespace>/<project-name>", inboundJobTokenScopeEnabled: false, jobTokenScopeEnabled: false}) {
+ projectCiCdSettingsUpdate(input:{fullPath: "<namespace>/<project-name>", inboundJobTokenScopeEnabled: false}) {
ciCdSettings {
inboundJobTokenScopeEnabled
- jobTokenScopeEnabled
}
errors
}
diff --git a/doc/api/graphql/index.md b/doc/api/graphql/index.md
index 37bd9fc38ed..349b667f595 100644
--- a/doc/api/graphql/index.md
+++ b/doc/api/graphql/index.md
@@ -1,6 +1,7 @@
---
stage: Manage
group: Import and Integrate
+description: Programmatic interaction with GitLab.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -43,6 +44,77 @@ You can work with sample queries that pull data from public projects on GitLab.c
The [get started](getting_started.md) page includes different methods to customize GraphQL queries.
+### Authentication
+
+Some queries can be accessed anonymously without the request needing to be authenticated,
+but others require it. Mutations always require authentication.
+
+Authentication can happen by:
+
+- [Token](#token-authentication)
+- [Session cookie](#session-cookie-authentication)
+
+If the authentication information is not valid, GitLab returns an error message with a status code of 401:
+
+{"errors":[{"message":"Invalid token"}]}
+
+#### Token authentication
+
+Use any of the following tokens to authenticate with the GraphQL API:
+
+- [OAuth 2.0 tokens](../../api/oauth2.md)
+- [Personal access tokens](../../user/profile/personal_access_tokens.md)
+- [Project access tokens](../../user/project/settings/project_access_tokens.md)
+- [Group access tokens](../../user/group/settings/group_access_tokens.md)
+
+Authenticate with a token by passing it through in a [request header](#header-authentication) or as a [parameter](#parameter-authentication).
+
+Tokens require the correct [scope](#token-scopes).
+
+##### Header authentication
+
+Example of token authentication using an `Authorization: Bearer <token>` request header:
+
+```shell
+curl "https://gitlab.com/api/graphql" --header "Authorization: Bearer <token>" \
+ --header "Content-Type: application/json" --request POST \
+ --data "{\"query\": \"query {currentUser {name}}\"}"
+```
+
+##### Parameter authentication
+
+Alternatively, OAuth 2.0 tokens can be passed in using the `access_token` parameter:
+
+```shell
+curl "https://gitlab.com/api/graphql?access_token=<oauth_token>" \
+ --header "Content-Type: application/json" --request POST \
+ --data "{\"query\": \"query {currentUser {name}}\"}"
+```
+
+Personal, project, or group access tokens can be passed in using the `private_token` parameter:
+
+```shell
+curl "https://gitlab.com/api/graphql?private_token=<access_token>" \
+ --header "Content-Type: application/json" --request POST \
+ --data "{\"query\": \"query {currentUser {name}}\"}"
+```
+
+##### Token scopes
+
+Tokens must have the correct scope to access the GraphQL API, either:
+
+| Scope | Access |
+|------------|---------|
+| `read_api` | Grants read access to the API. Sufficient for queries. |
+| `api` | Grants read and write access to the API. Required by mutations. |
+
+#### Session cookie authentication
+
+Signing in to the main GitLab application sets a `_gitlab_session` session cookie.
+
+The [interactive GraphQL explorer](#interactive-graphql-explorer) and the web frontend of
+GitLab itself use this method of authentication.
+
### Global IDs
In the GitLab GraphQL API, an `id` field is nearly always a [Global ID](https://graphql.org/learn/global-object-identification/)
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 46ddad63360..a8a29e2f01c 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -394,7 +394,7 @@ Returns [`Group`](#group).
| Name | Type | Description |
| ---- | ---- | ----------- |
-| <a id="querygroupfullpath"></a>`fullPath` | [`ID!`](#id) | Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`. |
+| <a id="querygroupfullpath"></a>`fullPath` | [`ID!`](#id) | Full path of the group. For example, `gitlab-org/gitlab-foss`. |
### `Query.groups`
@@ -521,7 +521,7 @@ Returns [`Iteration`](#iteration).
### `Query.jobs`
-All jobs on this GitLab instance.
+All jobs on this GitLab instance. Returns an empty result for users without administrator access.
Returns [`CiJobConnection`](#cijobconnection).
@@ -562,6 +562,8 @@ Returns [`MemberRole`](#memberrole).
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="querymemberroleid"></a>`id` | [`MemberRoleID`](#memberroleid) | Global ID of the member role to look up. |
+| <a id="querymemberroleorderby"></a>`orderBy` | [`MemberRolesOrderBy`](#memberrolesorderby) | Ordering column. Default is NAME. |
+| <a id="querymemberrolesort"></a>`sort` | [`SortDirectionEnum`](#sortdirectionenum) | Ordering column. Default is ASC. |
### `Query.memberRolePermissions`
@@ -577,6 +579,28 @@ This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
`before: String`, `after: String`, `first: Int`, and `last: Int`.
+### `Query.memberRoles`
+
+Member roles available for the instance.
+
+WARNING:
+**Introduced** in 16.7.
+This feature is an Experiment. It can be changed or removed at any time.
+
+Returns [`MemberRoleConnection`](#memberroleconnection).
+
+This field returns a [connection](#connections). It accepts the
+four standard [pagination arguments](#connection-pagination-arguments):
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
+
+#### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="querymemberrolesid"></a>`id` | [`MemberRoleID`](#memberroleid) | Global ID of the member role to look up. |
+| <a id="querymemberrolesorderby"></a>`orderBy` | [`MemberRolesOrderBy`](#memberrolesorderby) | Ordering column. Default is NAME. |
+| <a id="querymemberrolessort"></a>`sort` | [`SortDirectionEnum`](#sortdirectionenum) | Ordering column. Default is ASC. |
+
### `Query.mergeRequest`
Find a merge request.
@@ -633,7 +657,7 @@ Returns [`Namespace`](#namespace).
| Name | Type | Description |
| ---- | ---- | ----------- |
-| <a id="querynamespacefullpath"></a>`fullPath` | [`ID!`](#id) | Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`. |
+| <a id="querynamespacefullpath"></a>`fullPath` | [`ID!`](#id) | Full path of the namespace. For example, `gitlab-org/gitlab-foss`. |
### `Query.note`
@@ -667,6 +691,20 @@ Returns [`Organization`](#organization).
| ---- | ---- | ----------- |
| <a id="queryorganizationid"></a>`id` | [`OrganizationsOrganizationID!`](#organizationsorganizationid) | ID of the organization. |
+### `Query.organizations`
+
+List organizations.
+
+WARNING:
+**Introduced** in 16.8.
+This feature is an Experiment. It can be changed or removed at any time.
+
+Returns [`OrganizationConnection`](#organizationconnection).
+
+This field returns a [connection](#connections). It accepts the
+four standard [pagination arguments](#connection-pagination-arguments):
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
+
### `Query.package`
Find a package. This field can only be resolved for one query in any single request. Returns `null` if a package has no `default` status.
@@ -689,7 +727,7 @@ Returns [`Project`](#project).
| Name | Type | Description |
| ---- | ---- | ----------- |
-| <a id="queryprojectfullpath"></a>`fullPath` | [`ID!`](#id) | Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`. |
+| <a id="queryprojectfullpath"></a>`fullPath` | [`ID!`](#id) | Full path of the project. For example, `gitlab-org/gitlab-foss`. |
### `Query.projects`
@@ -957,6 +995,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="queryusersadmins"></a>`admins` | [`Boolean`](#boolean) | Return only admin users. |
+| <a id="queryusersgroupid"></a>`groupId` | [`GroupID`](#groupid) | Return users member of a given group. |
| <a id="queryusersids"></a>`ids` | [`[ID!]`](#id) | List of user Global IDs. |
| <a id="queryuserssearch"></a>`search` | [`String`](#string) | Query to search users by name, username, or primary email. |
| <a id="queryuserssort"></a>`sort` | [`Sort`](#sort) | Sort users by this criteria. |
@@ -984,6 +1023,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
| <a id="queryvulnerabilitieshasremediations"></a>`hasRemediations` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have remediations. |
| <a id="queryvulnerabilitieshasresolution"></a>`hasResolution` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have been resolved on default branch. |
| <a id="queryvulnerabilitiesimage"></a>`image` | [`[String!]`](#string) | Filter vulnerabilities by location image. When this filter is present, the response only matches entries for a `reportType` that includes `container_scanning`, `cluster_image_scanning`. |
+| <a id="queryvulnerabilitiesowasptopten"></a>`owaspTopTen` | [`[VulnerabilityOwaspTop10!]`](#vulnerabilityowasptop10) | Filter vulnerabilities by OWASP Top 10 category. |
| <a id="queryvulnerabilitiesprojectid"></a>`projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. |
| <a id="queryvulnerabilitiesreporttype"></a>`reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. |
| <a id="queryvulnerabilitiesscanner"></a>`scanner` | [`[String!]`](#string) | Filter vulnerabilities by VulnerabilityScanner.externalId. |
@@ -1357,6 +1397,31 @@ Input type: `AiActionInput`
| <a id="mutationaiactionerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
| <a id="mutationaiactionrequestid"></a>`requestId` | [`String`](#string) | ID of the request. |
+### `Mutation.aiAgentCreate`
+
+WARNING:
+**Introduced** in 16.8.
+This feature is an Experiment. It can be changed or removed at any time.
+
+Input type: `AiAgentCreateInput`
+
+#### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mutationaiagentcreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
+| <a id="mutationaiagentcreatename"></a>`name` | [`String!`](#string) | Name of the agent. |
+| <a id="mutationaiagentcreateprojectpath"></a>`projectPath` | [`ID!`](#id) | Project to which the agent belongs. |
+| <a id="mutationaiagentcreateprompt"></a>`prompt` | [`String!`](#string) | Prompt for the agent. |
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mutationaiagentcreateagent"></a>`agent` | [`AiAgent`](#aiagent) | Agent after mutation. |
+| <a id="mutationaiagentcreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
+| <a id="mutationaiagentcreateerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
+
### `Mutation.alertSetAssignees`
Input type: `AlertSetAssigneesInput`
@@ -1945,6 +2010,30 @@ Input type: `BoardListUpdateLimitMetricsInput`
| <a id="mutationboardlistupdatelimitmetricserrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
| <a id="mutationboardlistupdatelimitmetricslist"></a>`list` | [`BoardList`](#boardlist) | Updated list. |
+### `Mutation.branchRuleCreate`
+
+WARNING:
+**Introduced** in 16.7.
+This feature is an Experiment. It can be changed or removed at any time.
+
+Input type: `BranchRuleCreateInput`
+
+#### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mutationbranchrulecreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
+| <a id="mutationbranchrulecreatename"></a>`name` | [`String!`](#string) | Branch name, with wildcards, for the branch rules. |
+| <a id="mutationbranchrulecreateprojectpath"></a>`projectPath` | [`ID!`](#id) | Full path to the project that the branch is associated with. |
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mutationbranchrulecreatebranchrule"></a>`branchRule` | [`BranchRule`](#branchrule) | Branch rule after mutation. |
+| <a id="mutationbranchrulecreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
+| <a id="mutationbranchrulecreateerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
+
### `Mutation.branchRuleUpdate`
WARNING:
@@ -5324,20 +5413,12 @@ Input type: `MemberRoleCreateInput`
| Name | Type | Description |
| ---- | ---- | ----------- |
-| <a id="mutationmemberrolecreateadmingroupmember"></a>`adminGroupMember` | [`Boolean`](#boolean) | Permission to admin group members. |
-| <a id="mutationmemberrolecreateadminmergerequest"></a>`adminMergeRequest` | [`Boolean`](#boolean) | Permission to admin merge requests. |
-| <a id="mutationmemberrolecreateadminvulnerability"></a>`adminVulnerability` | [`Boolean`](#boolean) | Permission to admin vulnerability. |
-| <a id="mutationmemberrolecreatearchiveproject"></a>`archiveProject` | [`Boolean`](#boolean) | Permission to archive projects. |
| <a id="mutationmemberrolecreatebaseaccesslevel"></a>`baseAccessLevel` | [`MemberAccessLevel!`](#memberaccesslevel) | Base access level for the custom role. |
| <a id="mutationmemberrolecreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
| <a id="mutationmemberrolecreatedescription"></a>`description` | [`String`](#string) | Description of the member role. |
| <a id="mutationmemberrolecreategrouppath"></a>`groupPath` | [`ID`](#id) | Group the member role to mutate is in. Required for SaaS. |
-| <a id="mutationmemberrolecreatemanageprojectaccesstokens"></a>`manageProjectAccessTokens` | [`Boolean`](#boolean) | Permission to admin project access tokens. |
| <a id="mutationmemberrolecreatename"></a>`name` | [`String`](#string) | Name of the member role. |
| <a id="mutationmemberrolecreatepermissions"></a>`permissions` | [`[MemberRolePermission!]`](#memberrolepermission) | List of all customizable permissions. |
-| <a id="mutationmemberrolecreatereadcode"></a>`readCode` | [`Boolean`](#boolean) | Permission to read code. |
-| <a id="mutationmemberrolecreatereaddependency"></a>`readDependency` | [`Boolean`](#boolean) | Permission to read dependency. |
-| <a id="mutationmemberrolecreatereadvulnerability"></a>`readVulnerability` | [`Boolean`](#boolean) | Permission to read vulnerability. |
#### Fields
@@ -5382,6 +5463,7 @@ Input type: `MemberRoleUpdateInput`
| <a id="mutationmemberroleupdatedescription"></a>`description` | [`String`](#string) | Description of the member role. |
| <a id="mutationmemberroleupdateid"></a>`id` | [`MemberRoleID!`](#memberroleid) | ID of the member role to mutate. |
| <a id="mutationmemberroleupdatename"></a>`name` | [`String`](#string) | Name of the member role. |
+| <a id="mutationmemberroleupdatepermissions"></a>`permissions` | [`[MemberRolePermission!]`](#memberrolepermission) | List of all customizable permissions. |
#### Fields
@@ -5673,6 +5755,31 @@ Input type: `MergeRequestUpdateApprovalRuleInput`
| <a id="mutationmergerequestupdateapprovalruleerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
| <a id="mutationmergerequestupdateapprovalrulemergerequest"></a>`mergeRequest` | [`MergeRequest`](#mergerequest) | Merge request after mutation. |
+### `Mutation.mlModelCreate`
+
+WARNING:
+**Introduced** in 16.8.
+This feature is an Experiment. It can be changed or removed at any time.
+
+Input type: `MlModelCreateInput`
+
+#### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mutationmlmodelcreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
+| <a id="mutationmlmodelcreatedescription"></a>`description` | [`String`](#string) | Description of the model. |
+| <a id="mutationmlmodelcreatename"></a>`name` | [`String!`](#string) | Name of the model. |
+| <a id="mutationmlmodelcreateprojectpath"></a>`projectPath` | [`ID!`](#id) | Project the model to mutate is in. |
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mutationmlmodelcreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
+| <a id="mutationmlmodelcreateerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
+| <a id="mutationmlmodelcreatemodel"></a>`model` | [`MlModel`](#mlmodel) | Model after mutation. |
+
### `Mutation.namespaceBanDestroy`
Input type: `NamespaceBanDestroyInput`
@@ -6184,7 +6291,7 @@ Input type: `ProjectCiCdSettingsUpdateInput`
| <a id="mutationprojectcicdsettingsupdateinboundjobtokenscopeenabled"></a>`inboundJobTokenScopeEnabled` | [`Boolean`](#boolean) | Indicates CI/CD job tokens generated in other projects have restricted access to this project. |
| <a id="mutationprojectcicdsettingsupdatejobtokenscopeenabled"></a>`jobTokenScopeEnabled` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated:** Outbound job token scope is being removed. This field can now only be set to false. Deprecated in 16.0. |
| <a id="mutationprojectcicdsettingsupdatekeeplatestartifact"></a>`keepLatestArtifact` | [`Boolean`](#boolean) | Indicates if the latest artifact should be kept for the project. |
-| <a id="mutationprojectcicdsettingsupdatemergepipelinesenabled"></a>`mergePipelinesEnabled` | [`Boolean`](#boolean) | Indicates if merge pipelines are enabled for the project. |
+| <a id="mutationprojectcicdsettingsupdatemergepipelinesenabled"></a>`mergePipelinesEnabled` | [`Boolean`](#boolean) | Indicates if merged results pipelines are enabled for the project. |
| <a id="mutationprojectcicdsettingsupdatemergetrainsenabled"></a>`mergeTrainsEnabled` | [`Boolean`](#boolean) | Indicates if merge trains are enabled for the project. |
| <a id="mutationprojectcicdsettingsupdatemergetrainsskiptrainallowed"></a>`mergeTrainsSkipTrainAllowed` | [`Boolean`](#boolean) | Indicates whether an option is allowed to merge without refreshing the merge train. Ignored unless the `merge_trains_skip_train` feature flag is also enabled. |
@@ -6722,6 +6829,9 @@ Input type: `RunnersExportUsageInput`
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="mutationrunnersexportusageclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
+| <a id="mutationrunnersexportusagefromdate"></a>`fromDate` | [`ISO8601Date`](#iso8601date) | UTC start date of the period to report on. Defaults to the start of last full month. |
+| <a id="mutationrunnersexportusagemaxprojectcount"></a>`maxProjectCount` | [`Int`](#int) | Maximum number of projects to return. All other runner usage will be attributed to an `<Other projects>` entry. Defaults to 1000 projects. |
+| <a id="mutationrunnersexportusagetodate"></a>`toDate` | [`ISO8601Date`](#iso8601date) | UTC end date of the period to report on. " \ "Defaults to the end of the month specified by `fromDate`. |
| <a id="mutationrunnersexportusagetype"></a>`type` | [`CiRunnerType`](#cirunnertype) | Scope of the runners to include in the report. |
#### Fields
@@ -7522,11 +7632,6 @@ Input type: `UpdateDependencyProxyImageTtlGroupPolicyInput`
Updates or creates dependency proxy for packages settings.
Requires the packages and dependency proxy to be enabled in the config.
Requires the packages feature to be enabled at the project level.
-Error is raised if `packages_dependency_proxy_maven` feature flag is disabled.
-
-WARNING:
-**Introduced** in 16.5.
-This feature is an Experiment. It can be changed or removed at any time.
Input type: `UpdateDependencyProxyPackagesSettingsInput`
@@ -7535,10 +7640,10 @@ Input type: `UpdateDependencyProxyPackagesSettingsInput`
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="mutationupdatedependencyproxypackagessettingsclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
-| <a id="mutationupdatedependencyproxypackagessettingsenabled"></a>`enabled` | [`Boolean`](#boolean) | Indicates whether the dependency proxy for packages is enabled for the project. Introduced in 16.5: This feature is an Experiment. It can be changed or removed at any time. |
+| <a id="mutationupdatedependencyproxypackagessettingsenabled"></a>`enabled` | [`Boolean`](#boolean) | Indicates whether the dependency proxy for packages is enabled for the project. |
| <a id="mutationupdatedependencyproxypackagessettingsmavenexternalregistrypassword"></a>`mavenExternalRegistryPassword` | [`String`](#string) | Password for the external Maven packages registry. Introduced in 16.5: This feature is an Experiment. It can be changed or removed at any time. |
-| <a id="mutationupdatedependencyproxypackagessettingsmavenexternalregistryurl"></a>`mavenExternalRegistryUrl` | [`String`](#string) | URL for the external Maven packages registry. Introduced in 16.5: This feature is an Experiment. It can be changed or removed at any time. |
-| <a id="mutationupdatedependencyproxypackagessettingsmavenexternalregistryusername"></a>`mavenExternalRegistryUsername` | [`String`](#string) | Username for the external Maven packages registry. Introduced in 16.5: This feature is an Experiment. It can be changed or removed at any time. |
+| <a id="mutationupdatedependencyproxypackagessettingsmavenexternalregistryurl"></a>`mavenExternalRegistryUrl` | [`String`](#string) | URL for the external Maven packages registry. |
+| <a id="mutationupdatedependencyproxypackagessettingsmavenexternalregistryusername"></a>`mavenExternalRegistryUsername` | [`String`](#string) | Username for the external Maven packages registry. |
| <a id="mutationupdatedependencyproxypackagessettingsprojectpath"></a>`projectPath` | [`ID!`](#id) | Project path for the dependency proxy for packages settings. |
#### Fields
@@ -7739,6 +7844,8 @@ Input type: `UpdateNamespacePackageSettingsInput`
| <a id="mutationupdatenamespacepackagesettingsnugetduplicatesallowed"></a>`nugetDuplicatesAllowed` | [`Boolean`](#boolean) | Indicates whether duplicate NuGet packages are allowed for this namespace. |
| <a id="mutationupdatenamespacepackagesettingsnugetsymbolserverenabled"></a>`nugetSymbolServerEnabled` | [`Boolean`](#boolean) | Indicates wheather the NuGet symbol server is enabled for this namespace. |
| <a id="mutationupdatenamespacepackagesettingspypipackagerequestsforwarding"></a>`pypiPackageRequestsForwarding` | [`Boolean`](#boolean) | Indicates whether PyPI package forwarding is allowed for this namespace. |
+| <a id="mutationupdatenamespacepackagesettingsterraformmoduleduplicateexceptionregex"></a>`terraformModuleDuplicateExceptionRegex` | [`UntrustedRegexp`](#untrustedregexp) | When terraform_module_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect. |
+| <a id="mutationupdatenamespacepackagesettingsterraformmoduleduplicatesallowed"></a>`terraformModuleDuplicatesAllowed` | [`Boolean`](#boolean) | Indicates whether duplicate Terraform packages are allowed for this namespace. |
#### Fields
@@ -8584,6 +8691,7 @@ Input type: `WorkItemUpdateInput`
| <a id="mutationworkitemupdateassigneeswidget"></a>`assigneesWidget` | [`WorkItemWidgetAssigneesInput`](#workitemwidgetassigneesinput) | Input for assignees widget. |
| <a id="mutationworkitemupdateawardemojiwidget"></a>`awardEmojiWidget` | [`WorkItemWidgetAwardEmojiUpdateInput`](#workitemwidgetawardemojiupdateinput) | Input for emoji reactions widget. |
| <a id="mutationworkitemupdateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
+| <a id="mutationworkitemupdatecolorwidget"></a>`colorWidget` | [`WorkItemWidgetColorInput`](#workitemwidgetcolorinput) | Input for color widget. |
| <a id="mutationworkitemupdateconfidential"></a>`confidential` | [`Boolean`](#boolean) | Sets the work item confidentiality. |
| <a id="mutationworkitemupdatecurrentusertodoswidget"></a>`currentUserTodosWidget` | [`WorkItemWidgetCurrentUserTodosInput`](#workitemwidgetcurrentusertodosinput) | Input for to-dos widget. |
| <a id="mutationworkitemupdatedescriptionwidget"></a>`descriptionWidget` | [`WorkItemWidgetDescriptionInput`](#workitemwidgetdescriptioninput) | Input for description widget. |
@@ -8593,6 +8701,7 @@ Input type: `WorkItemUpdateInput`
| <a id="mutationworkitemupdateiterationwidget"></a>`iterationWidget` | [`WorkItemWidgetIterationInput`](#workitemwidgetiterationinput) | Input for iteration widget. |
| <a id="mutationworkitemupdatelabelswidget"></a>`labelsWidget` | [`WorkItemWidgetLabelsUpdateInput`](#workitemwidgetlabelsupdateinput) | Input for labels widget. |
| <a id="mutationworkitemupdatemilestonewidget"></a>`milestoneWidget` | [`WorkItemWidgetMilestoneInput`](#workitemwidgetmilestoneinput) | Input for milestone widget. |
+| <a id="mutationworkitemupdatenoteswidget"></a>`notesWidget` | [`WorkItemWidgetNotesInput`](#workitemwidgetnotesinput) | Input for notes widget. |
| <a id="mutationworkitemupdatenotificationswidget"></a>`notificationsWidget` | [`WorkItemWidgetNotificationsUpdateInput`](#workitemwidgetnotificationsupdateinput) | Input for notifications widget. |
| <a id="mutationworkitemupdateprogresswidget"></a>`progressWidget` | [`WorkItemWidgetProgressInput`](#workitemwidgetprogressinput) | Input for progress widget. |
| <a id="mutationworkitemupdatestartandduedatewidget"></a>`startAndDueDateWidget` | [`WorkItemWidgetStartAndDueDateUpdateInput`](#workitemwidgetstartandduedateupdateinput) | Input for start and due date widget. |
@@ -11801,6 +11910,43 @@ The edge type for [`MlCandidate`](#mlcandidate).
| <a id="mlcandidateedgecursor"></a>`cursor` | [`String!`](#string) | A cursor for use in pagination. |
| <a id="mlcandidateedgenode"></a>`node` | [`MlCandidate`](#mlcandidate) | The item at the end of the edge. |
+#### `MlModelConnection`
+
+The connection type for [`MlModel`](#mlmodel).
+
+##### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mlmodelconnectionedges"></a>`edges` | [`[MlModelEdge]`](#mlmodeledge) | A list of edges. |
+| <a id="mlmodelconnectionnodes"></a>`nodes` | [`[MlModel]`](#mlmodel) | A list of nodes. |
+| <a id="mlmodelconnectionpageinfo"></a>`pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. |
+
+##### Fields with arguments
+
+###### `MlModelConnection.count`
+
+Limited count of collection. Returns limit + 1 for counts greater than the limit.
+
+Returns [`Int!`](#int).
+
+####### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mlmodelconnectioncountlimit"></a>`limit` | [`Int`](#int) | Limit value to be applied to the count query. Default is 1000. |
+
+#### `MlModelEdge`
+
+The edge type for [`MlModel`](#mlmodel).
+
+##### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mlmodeledgecursor"></a>`cursor` | [`String!`](#string) | A cursor for use in pagination. |
+| <a id="mlmodeledgenode"></a>`node` | [`MlModel`](#mlmodel) | The item at the end of the edge. |
+
#### `MlModelVersionConnection`
The connection type for [`MlModelVersion`](#mlmodelversion).
@@ -14290,6 +14436,43 @@ Information about a connected Agent.
| <a id="agentmetadatapodnamespace"></a>`podNamespace` | [`String`](#string) | Namespace of the pod running the Agent. |
| <a id="agentmetadataversion"></a>`version` | [`String`](#string) | Agent version tag. |
+### `AiAgent`
+
+An AI agent.
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="aiagent_links"></a>`_links` | [`AiAgentLinks!`](#aiagentlinks) | Map of links to perform actions on the agent. |
+| <a id="aiagentcreatedat"></a>`createdAt` | [`Time!`](#time) | Date of creation. |
+| <a id="aiagentid"></a>`id` | [`ID!`](#id) | ID of the agent. |
+| <a id="aiagentname"></a>`name` | [`String!`](#string) | Name of the agent. |
+| <a id="aiagentversions"></a>`versions` | [`[AiAgentVersion!]`](#aiagentversion) | Versions of the agent. |
+
+### `AiAgentLinks`
+
+Represents links to perform actions on the agent.
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="aiagentlinksshowpath"></a>`showPath` | [`String`](#string) | Path to the details page of the agent. |
+
+### `AiAgentVersion`
+
+Version of an AI Agent.
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="aiagentversioncreatedat"></a>`createdAt` | [`Time!`](#time) | Timestamp when the agent version was created. |
+| <a id="aiagentversionid"></a>`id` | [`ID!`](#id) | ID of the agent version. |
+| <a id="aiagentversionmodel"></a>`model` | [`String!`](#string) | Model of the agent. |
+| <a id="aiagentversionprompt"></a>`prompt` | [`String!`](#string) | Prompt of the agent. |
+
### `AiMessage`
AI features communication message.
@@ -15430,6 +15613,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
| Name | Type | Description |
| ---- | ---- | ----------- |
+| <a id="cicatalogresourceversionsname"></a>`name` | [`String`](#string) | Name of the version. |
| <a id="cicatalogresourceversionssort"></a>`sort` | [`CiCatalogResourceVersionSort`](#cicatalogresourceversionsort) | Sort versions by given criteria. |
### `CiCatalogResourceComponent`
@@ -15439,9 +15623,9 @@ four standard [pagination arguments](#connection-pagination-arguments):
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="cicatalogresourcecomponentid"></a>`id` **{warning-solid}** | [`CiCatalogResourcesComponentID!`](#cicatalogresourcescomponentid) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. ID of the component. |
+| <a id="cicatalogresourcecomponentincludepath"></a>`includePath` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Path used to include the component. |
| <a id="cicatalogresourcecomponentinputs"></a>`inputs` **{warning-solid}** | [`[CiCatalogResourceComponentInput!]`](#cicatalogresourcecomponentinput) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Inputs for the component. |
| <a id="cicatalogresourcecomponentname"></a>`name` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Name of the component. |
-| <a id="cicatalogresourcecomponentpath"></a>`path` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Path used to include the component. |
### `CiCatalogResourceComponentInput`
@@ -15464,9 +15648,10 @@ four standard [pagination arguments](#connection-pagination-arguments):
| <a id="cicatalogresourceversioncomponents"></a>`components` **{warning-solid}** | [`CiCatalogResourceComponentConnection`](#cicatalogresourcecomponentconnection) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Components belonging to the catalog resource. |
| <a id="cicatalogresourceversioncreatedat"></a>`createdAt` **{warning-solid}** | [`Time`](#time) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Timestamp of when the version was created. |
| <a id="cicatalogresourceversionid"></a>`id` **{warning-solid}** | [`CiCatalogResourcesVersionID!`](#cicatalogresourcesversionid) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Global ID of the version. |
+| <a id="cicatalogresourceversionname"></a>`name` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.8. This feature is an Experiment. It can be changed or removed at any time. Name that uniquely identifies the version within the catalog resource. |
+| <a id="cicatalogresourceversionpath"></a>`path` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.8. This feature is an Experiment. It can be changed or removed at any time. Relative web path to the version. |
+| <a id="cicatalogresourceversionreadmehtml"></a>`readmeHtml` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.8. This feature is an Experiment. It can be changed or removed at any time. GitLab Flavored Markdown rendering of README.md. This field can only be resolved for one version in any single request. |
| <a id="cicatalogresourceversionreleasedat"></a>`releasedAt` **{warning-solid}** | [`Time`](#time) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Timestamp of when the version was released. |
-| <a id="cicatalogresourceversiontagname"></a>`tagName` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Name of the tag associated with the version. |
-| <a id="cicatalogresourceversiontagpath"></a>`tagPath` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Relative web path to the tag associated with the version. |
### `CiConfig`
@@ -15626,6 +15811,7 @@ CI/CD variables for a GitLab instance.
| Name | Type | Description |
| ---- | ---- | ----------- |
+| <a id="ciinstancevariabledescription"></a>`description` | [`String`](#string) | Description of the variable. |
| <a id="ciinstancevariableenvironmentscope"></a>`environmentScope` **{warning-solid}** | [`String`](#string) | **Deprecated** in 15.3. No longer used, only available for GroupVariableType and ProjectVariableType. |
| <a id="ciinstancevariableid"></a>`id` | [`ID!`](#id) | ID of the variable. |
| <a id="ciinstancevariablekey"></a>`key` | [`String`](#string) | Name of the variable. |
@@ -16388,6 +16574,8 @@ Represents a ComplianceFramework associated with a Project.
| <a id="complianceframeworkname"></a>`name` | [`String!`](#string) | Name of the compliance framework. |
| <a id="complianceframeworkpipelineconfigurationfullpath"></a>`pipelineConfigurationFullPath` | [`String`](#string) | Full path of the compliance pipeline configuration stored in a project repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa` **(ULTIMATE ALL)**. |
| <a id="complianceframeworkprojects"></a>`projects` | [`ProjectConnection`](#projectconnection) | Projects associated with the compliance framework. (see [Connections](#connections)) |
+| <a id="complianceframeworkscanexecutionpolicies"></a>`scanExecutionPolicies` | [`ScanExecutionPolicyConnection`](#scanexecutionpolicyconnection) | Scan Execution Policies of the compliance framework. (see [Connections](#connections)) |
+| <a id="complianceframeworkscanresultpolicies"></a>`scanResultPolicies` | [`ScanResultPolicyConnection`](#scanresultpolicyconnection) | Scan Result Policies of the compliance framework. (see [Connections](#connections)) |
### `ComplianceStandardsAdherence`
@@ -16582,6 +16770,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="containerrepositorydetailstagsname"></a>`name` | [`String`](#string) | Search by tag name. |
+| <a id="containerrepositorydetailstagsreferrers"></a>`referrers` | [`Boolean`](#boolean) | Include tag referrers. |
| <a id="containerrepositorydetailstagssort"></a>`sort` | [`ContainerRepositoryTagSort`](#containerrepositorytagsort) | Sort tags by these criteria. |
### `ContainerRepositoryPermissions`
@@ -16592,6 +16781,18 @@ four standard [pagination arguments](#connection-pagination-arguments):
| ---- | ---- | ----------- |
| <a id="containerrepositorypermissionsdestroycontainerrepository"></a>`destroyContainerRepository` | [`Boolean!`](#boolean) | If `true`, the user can perform `destroy_container_image` on this resource. |
+### `ContainerRepositoryReferrer`
+
+A referrer for a container repository tag.
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="containerrepositoryreferrerartifacttype"></a>`artifactType` | [`String`](#string) | Artifact type of the referrer. |
+| <a id="containerrepositoryreferrerdigest"></a>`digest` | [`String`](#string) | Digest of the referrer. |
+| <a id="containerrepositoryreferreruserpermissions"></a>`userPermissions` | [`ContainerRepositoryTagPermissions!`](#containerrepositorytagpermissions) | Permissions for the current user on the resource. |
+
### `ContainerRepositoryRegistry`
Represents the Geo replication and verification state of an Container Repository.
@@ -16630,6 +16831,8 @@ A tag from a container repository.
| <a id="containerrepositorytaglocation"></a>`location` | [`String!`](#string) | URL of the tag. |
| <a id="containerrepositorytagname"></a>`name` | [`String!`](#string) | Name of the tag. |
| <a id="containerrepositorytagpath"></a>`path` | [`String!`](#string) | Path of the tag. |
+| <a id="containerrepositorytagpublishedat"></a>`publishedAt` | [`Time`](#time) | Timestamp when the tag was published. |
+| <a id="containerrepositorytagreferrers"></a>`referrers` | [`[ContainerRepositoryReferrer!]`](#containerrepositoryreferrer) | Referrers for this tag. |
| <a id="containerrepositorytagrevision"></a>`revision` | [`String`](#string) | Revision of the tag. |
| <a id="containerrepositorytagshortrevision"></a>`shortRevision` | [`String`](#string) | Short revision of the tag. |
| <a id="containerrepositorytagtotalsize"></a>`totalSize` | [`BigInt`](#bigint) | Size of the tag. |
@@ -16712,6 +16915,8 @@ The currently authenticated GitLab user.
| <a id="currentusercommitemail"></a>`commitEmail` | [`String`](#string) | User's default commit email. |
| <a id="currentusercreatedat"></a>`createdAt` | [`Time`](#time) | Timestamp of when the user was created. |
| <a id="currentuserdiscord"></a>`discord` | [`String`](#string) | Discord ID of the user. |
+| <a id="currentuserduochatavailable"></a>`duoChatAvailable` **{warning-solid}** | [`Boolean!`](#boolean) | **Introduced** in 16.8. This feature is an Experiment. It can be changed or removed at any time. User access to AI chat feature. |
+| <a id="currentuserduocodesuggestionsavailable"></a>`duoCodeSuggestionsAvailable` **{warning-solid}** | [`Boolean!`](#boolean) | **Introduced** in 16.8. This feature is an Experiment. It can be changed or removed at any time. User access to code suggestions feature. |
| <a id="currentuseremail"></a>`email` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.7. This was renamed. Use: [`User.publicEmail`](#userpublicemail). |
| <a id="currentuseremails"></a>`emails` | [`EmailConnection`](#emailconnection) | User's email addresses. (see [Connections](#connections)) |
| <a id="currentusergitpodenabled"></a>`gitpodEnabled` | [`Boolean`](#boolean) | Whether Gitpod is enabled at the user level. |
@@ -17092,8 +17297,8 @@ Represents a product analytics dashboard visualization.
| <a id="customizablepermissionavailablefor"></a>`availableFor` | [`[String!]!`](#string) | Objects the permission is available for. |
| <a id="customizablepermissiondescription"></a>`description` | [`String`](#string) | Description of the permission. |
| <a id="customizablepermissionname"></a>`name` | [`String!`](#string) | Localized name of the permission. |
-| <a id="customizablepermissionrequirement"></a>`requirement` | [`String`](#string) | Requirement of the permission. |
-| <a id="customizablepermissionvalue"></a>`value` | [`String!`](#string) | Value of the permission. |
+| <a id="customizablepermissionrequirement"></a>`requirement` | [`MemberRolePermission`](#memberrolepermission) | Requirement of the permission. |
+| <a id="customizablepermissionvalue"></a>`value` | [`MemberRolePermission!`](#memberrolepermission) | Value of the permission. |
### `DastPreScanVerification`
@@ -17395,9 +17600,9 @@ Project-level Dependency Proxy for packages settings.
| Name | Type | Description |
| ---- | ---- | ----------- |
-| <a id="dependencyproxypackagessettingenabled"></a>`enabled` **{warning-solid}** | [`Boolean!`](#boolean) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Indicates whether the dependency proxy for packages is enabled for the project. |
-| <a id="dependencyproxypackagessettingmavenexternalregistryurl"></a>`mavenExternalRegistryUrl` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. URL for the external Maven packages registry. |
-| <a id="dependencyproxypackagessettingmavenexternalregistryusername"></a>`mavenExternalRegistryUsername` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Username for the external Maven packages registry. |
+| <a id="dependencyproxypackagessettingenabled"></a>`enabled` | [`Boolean!`](#boolean) | Indicates whether the dependency proxy for packages is enabled for the project. |
+| <a id="dependencyproxypackagessettingmavenexternalregistryurl"></a>`mavenExternalRegistryUrl` | [`String`](#string) | URL for the external Maven packages registry. |
+| <a id="dependencyproxypackagessettingmavenexternalregistryusername"></a>`mavenExternalRegistryUsername` | [`String`](#string) | Username for the external Maven packages registry. |
### `DependencyProxySetting`
@@ -18584,6 +18789,7 @@ Check permissions for the current user on an epic.
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="epicpermissionsadminepic"></a>`adminEpic` | [`Boolean!`](#boolean) | If `true`, the user can perform `admin_epic` on this resource. |
+| <a id="epicpermissionsadminepicrelation"></a>`adminEpicRelation` | [`Boolean!`](#boolean) | If `true`, the user can perform `admin_epic_relation` on this resource. |
| <a id="epicpermissionsawardemoji"></a>`awardEmoji` | [`Boolean!`](#boolean) | If `true`, the user can perform `award_emoji` on this resource. |
| <a id="epicpermissionscreateepic"></a>`createEpic` | [`Boolean!`](#boolean) | If `true`, the user can perform `create_epic` on this resource. |
| <a id="epicpermissionscreatenote"></a>`createNote` | [`Boolean!`](#boolean) | If `true`, the user can perform `create_note` on this resource. |
@@ -19166,7 +19372,7 @@ GPG signature for a signed commit.
| <a id="groupautodevopsenabled"></a>`autoDevopsEnabled` | [`Boolean`](#boolean) | Indicates whether Auto DevOps is enabled for all projects within this group. |
| <a id="groupavatarurl"></a>`avatarUrl` | [`String`](#string) | Avatar URL of the group. |
| <a id="groupcontainerrepositoriescount"></a>`containerRepositoriesCount` | [`Int!`](#int) | Number of container repositories in the group. |
-| <a id="groupcontainslockedprojects"></a>`containsLockedProjects` | [`Boolean!`](#boolean) | Includes at least one project where the repository size exceeds the limit. This only applies to namespaces under Project limit enforcement. |
+| <a id="groupcontainslockedprojects"></a>`containsLockedProjects` | [`Boolean`](#boolean) | Includes at least one project where the repository size exceeds the limit. This only applies to namespaces under Project limit enforcement. |
| <a id="groupcrossprojectpipelineavailable"></a>`crossProjectPipelineAvailable` | [`Boolean!`](#boolean) | Indicates if the cross_project_pipeline feature is available for the namespace. |
| <a id="groupdependencyproxyblobcount"></a>`dependencyProxyBlobCount` | [`Int!`](#int) | Number of dependency proxy blobs cached in the group. |
| <a id="groupdependencyproxyblobs"></a>`dependencyProxyBlobs` | [`DependencyProxyBlobConnection`](#dependencyproxyblobconnection) | Dependency Proxy blobs. (see [Connections](#connections)) |
@@ -19178,6 +19384,7 @@ GPG signature for a signed commit.
| <a id="groupdependencyproxytotalsize"></a>`dependencyProxyTotalSize` | [`String!`](#string) | Total size of the dependency proxy cached images. |
| <a id="groupdependencyproxytotalsizebytes"></a>`dependencyProxyTotalSizeBytes` | [`BigInt!`](#bigint) | Total size of the dependency proxy cached images in bytes, encoded as a string. |
| <a id="groupdependencyproxytotalsizeinbytes"></a>`dependencyProxyTotalSizeInBytes` **{warning-solid}** | [`Int!`](#int) | **Deprecated** in 16.1. Use `dependencyProxyTotalSizeBytes`. |
+| <a id="groupdescendantgroupscount"></a>`descendantGroupsCount` | [`Int!`](#int) | Count of direct descendant groups of this group. |
| <a id="groupdescription"></a>`description` | [`String`](#string) | Description of the namespace. |
| <a id="groupdescriptionhtml"></a>`descriptionHtml` | [`String`](#string) | GitLab Flavored Markdown rendering of `description`. |
| <a id="groupdora"></a>`dora` | [`Dora`](#dora) | Group's DORA metrics. |
@@ -19190,8 +19397,9 @@ GPG signature for a signed commit.
| <a id="groupfullname"></a>`fullName` | [`String!`](#string) | Full name of the namespace. |
| <a id="groupfullpath"></a>`fullPath` | [`ID!`](#id) | Full path of the namespace. |
| <a id="groupgooglecloudloggingconfigurations"></a>`googleCloudLoggingConfigurations` | [`GoogleCloudLoggingConfigurationTypeConnection`](#googlecloudloggingconfigurationtypeconnection) | Google Cloud logging configurations that receive audit events belonging to the group. (see [Connections](#connections)) |
+| <a id="groupgroupmemberscount"></a>`groupMembersCount` | [`Int!`](#int) | Count of direct members of this group. |
| <a id="groupid"></a>`id` | [`ID!`](#id) | ID of the namespace. |
-| <a id="groupistemporarystorageincreaseenabled"></a>`isTemporaryStorageIncreaseEnabled` **{warning-solid}** | [`Boolean!`](#boolean) | **Deprecated** in 16.7. Feature removal, will be completely removed in 17.0. |
+| <a id="groupistemporarystorageincreaseenabled"></a>`isTemporaryStorageIncreaseEnabled` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated** in 16.7. Feature removal, will be completely removed in 17.0. |
| <a id="grouplfsenabled"></a>`lfsEnabled` | [`Boolean`](#boolean) | Indicates if Large File Storage (LFS) is enabled for namespace. |
| <a id="groupmentionsdisabled"></a>`mentionsDisabled` | [`Boolean`](#boolean) | Indicates if a group is disabled from getting mentioned. |
| <a id="groupname"></a>`name` | [`String!`](#string) | Name of the namespace. |
@@ -19200,8 +19408,9 @@ GPG signature for a signed commit.
| <a id="grouppath"></a>`path` | [`String!`](#string) | Path of the namespace. |
| <a id="grouppendingmembers"></a>`pendingMembers` **{warning-solid}** | [`PendingGroupMemberConnection`](#pendinggroupmemberconnection) | **Introduced** in 16.6. This feature is an Experiment. It can be changed or removed at any time. A pending membership of a user within this group. |
| <a id="groupprojectcreationlevel"></a>`projectCreationLevel` | [`String`](#string) | Permission level required to create projects in the group. |
+| <a id="groupprojectscount"></a>`projectsCount` | [`Int!`](#int) | Count of direct projects in this group. |
| <a id="grouprecentissueboards"></a>`recentIssueBoards` | [`BoardConnection`](#boardconnection) | List of recently visited boards of the group. Maximum size is 4. (see [Connections](#connections)) |
-| <a id="grouprepositorysizeexcessprojectcount"></a>`repositorySizeExcessProjectCount` | [`Int!`](#int) | Number of projects in the root namespace where the repository size exceeds the limit. This only applies to namespaces under Project limit enforcement. |
+| <a id="grouprepositorysizeexcessprojectcount"></a>`repositorySizeExcessProjectCount` | [`Int`](#int) | Number of projects in the root namespace where the repository size exceeds the limit. This only applies to namespaces under Project limit enforcement. |
| <a id="grouprequestaccessenabled"></a>`requestAccessEnabled` | [`Boolean`](#boolean) | Indicates if users can request access to namespace. |
| <a id="grouprequiretwofactorauthentication"></a>`requireTwoFactorAuthentication` | [`Boolean`](#boolean) | Indicates if all users in this group are required to set up two-factor authentication. |
| <a id="grouprootstoragestatistics"></a>`rootStorageStatistics` | [`RootStorageStatistics`](#rootstoragestatistics) | Aggregated storage statistics of the namespace. Only available for root namespaces. |
@@ -19856,6 +20065,8 @@ four standard [pagination arguments](#connection-pagination-arguments):
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="groupmemberrolesid"></a>`id` | [`MemberRoleID`](#memberroleid) | Global ID of the member role to look up. |
+| <a id="groupmemberrolesorderby"></a>`orderBy` | [`MemberRolesOrderBy`](#memberrolesorderby) | Ordering column. Default is NAME. |
+| <a id="groupmemberrolessort"></a>`sort` | [`SortDirectionEnum`](#sortdirectionenum) | Ordering column. Default is ASC. |
##### `Group.mergeRequestViolations`
@@ -20165,6 +20376,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
| <a id="groupvulnerabilitieshasremediations"></a>`hasRemediations` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have remediations. |
| <a id="groupvulnerabilitieshasresolution"></a>`hasResolution` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have been resolved on default branch. |
| <a id="groupvulnerabilitiesimage"></a>`image` | [`[String!]`](#string) | Filter vulnerabilities by location image. When this filter is present, the response only matches entries for a `reportType` that includes `container_scanning`, `cluster_image_scanning`. |
+| <a id="groupvulnerabilitiesowasptopten"></a>`owaspTopTen` | [`[VulnerabilityOwaspTop10!]`](#vulnerabilityowasptop10) | Filter vulnerabilities by OWASP Top 10 category. |
| <a id="groupvulnerabilitiesprojectid"></a>`projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. |
| <a id="groupvulnerabilitiesreporttype"></a>`reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. |
| <a id="groupvulnerabilitiesscanner"></a>`scanner` | [`[String!]`](#string) | Filter vulnerabilities by VulnerabilityScanner.externalId. |
@@ -20220,6 +20432,7 @@ Returns [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount).
| <a id="groupvulnerabilityseveritiescounthasremediations"></a>`hasRemediations` | [`Boolean`](#boolean) | Filter vulnerabilities that do or do not have remediations. |
| <a id="groupvulnerabilityseveritiescounthasresolution"></a>`hasResolution` | [`Boolean`](#boolean) | Filter vulnerabilities that do or do not have a resolution. |
| <a id="groupvulnerabilityseveritiescountimage"></a>`image` | [`[String!]`](#string) | Filter vulnerabilities by location image. When this filter is present, the response only matches entries for a `reportType` that includes `container_scanning`, `cluster_image_scanning`. |
+| <a id="groupvulnerabilityseveritiescountowasptopten"></a>`owaspTopTen` | [`[VulnerabilityOwaspTop10!]`](#vulnerabilityowasptop10) | Filter vulnerabilities by OWASP Top 10 category. |
| <a id="groupvulnerabilityseveritiescountprojectid"></a>`projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. |
| <a id="groupvulnerabilityseveritiescountreporttype"></a>`reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. |
| <a id="groupvulnerabilityseveritiescountscanner"></a>`scanner` | [`[String!]`](#string) | Filter vulnerabilities by scanner. |
@@ -20670,6 +20883,7 @@ CI/CD variables a project inherites from its parent group and ancestors.
| Name | Type | Description |
| ---- | ---- | ----------- |
+| <a id="inheritedcivariabledescription"></a>`description` | [`String`](#string) | Description of the variable. |
| <a id="inheritedcivariableenvironmentscope"></a>`environmentScope` | [`String`](#string) | Scope defining the environments that can use the variable. |
| <a id="inheritedcivariablegroupcicdsettingspath"></a>`groupCiCdSettingsPath` | [`String`](#string) | Indicates the path to the CI/CD settings of the group the variable belongs to. |
| <a id="inheritedcivariablegroupname"></a>`groupName` | [`String`](#string) | Indicates group the variable belongs to. |
@@ -20796,6 +21010,7 @@ Returns [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount).
| <a id="instancesecuritydashboardvulnerabilityseveritiescounthasremediations"></a>`hasRemediations` | [`Boolean`](#boolean) | Filter vulnerabilities that do or do not have remediations. |
| <a id="instancesecuritydashboardvulnerabilityseveritiescounthasresolution"></a>`hasResolution` | [`Boolean`](#boolean) | Filter vulnerabilities that do or do not have a resolution. |
| <a id="instancesecuritydashboardvulnerabilityseveritiescountimage"></a>`image` | [`[String!]`](#string) | Filter vulnerabilities by location image. When this filter is present, the response only matches entries for a `reportType` that includes `container_scanning`, `cluster_image_scanning`. |
+| <a id="instancesecuritydashboardvulnerabilityseveritiescountowasptopten"></a>`owaspTopTen` | [`[VulnerabilityOwaspTop10!]`](#vulnerabilityowasptop10) | Filter vulnerabilities by OWASP Top 10 category. |
| <a id="instancesecuritydashboardvulnerabilityseveritiescountprojectid"></a>`projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. |
| <a id="instancesecuritydashboardvulnerabilityseveritiescountreporttype"></a>`reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. |
| <a id="instancesecuritydashboardvulnerabilityseveritiescountscanner"></a>`scanner` | [`[String!]`](#string) | Filter vulnerabilities by scanner. |
@@ -20984,6 +21199,7 @@ Check permissions for the current user on a issue.
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="issuepermissionsadminissue"></a>`adminIssue` | [`Boolean!`](#boolean) | If `true`, the user can perform `admin_issue` on this resource. |
+| <a id="issuepermissionsadminissuerelation"></a>`adminIssueRelation` | [`Boolean!`](#boolean) | If `true`, the user can perform `admin_issue_relation` on this resource. |
| <a id="issuepermissionscreatedesign"></a>`createDesign` | [`Boolean!`](#boolean) | If `true`, the user can perform `create_design` on this resource. |
| <a id="issuepermissionscreatenote"></a>`createNote` | [`Boolean!`](#boolean) | If `true`, the user can perform `create_note` on this resource. |
| <a id="issuepermissionsdestroydesign"></a>`destroyDesign` | [`Boolean!`](#boolean) | If `true`, the user can perform `destroy_design` on this resource. |
@@ -21288,6 +21504,16 @@ Represents links to perform actions on the candidate.
| <a id="mlcandidatelinksartifactpath"></a>`artifactPath` | [`String`](#string) | Path to the artifact. |
| <a id="mlcandidatelinksshowpath"></a>`showPath` | [`String`](#string) | Path to the details page of the candidate. |
+### `MLModelLinks`
+
+Represents links to perform actions on the model.
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="mlmodellinksshowpath"></a>`showPath` | [`String`](#string) | Path to the details page of the model. |
+
### `MLModelVersionLinks`
Represents links to perform actions on the model version.
@@ -21296,6 +21522,7 @@ Represents links to perform actions on the model version.
| Name | Type | Description |
| ---- | ---- | ----------- |
+| <a id="mlmodelversionlinkspackagepath"></a>`packagePath` | [`String`](#string) | Path to the package of the model version. |
| <a id="mlmodelversionlinksshowpath"></a>`showPath` | [`String`](#string) | Path to the details page of the model version. |
### `MavenMetadata`
@@ -21322,20 +21549,12 @@ Represents a member role.
| Name | Type | Description |
| ---- | ---- | ----------- |
-| <a id="memberroleadmingroupmember"></a>`adminGroupMember` **{warning-solid}** | [`Boolean`](#boolean) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Permission to admin group members. |
-| <a id="memberroleadminmergerequest"></a>`adminMergeRequest` **{warning-solid}** | [`Boolean`](#boolean) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Permission to admin merge requests. |
-| <a id="memberroleadminvulnerability"></a>`adminVulnerability` **{warning-solid}** | [`Boolean`](#boolean) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Permission to admin vulnerability. |
-| <a id="memberrolearchiveproject"></a>`archiveProject` **{warning-solid}** | [`Boolean`](#boolean) | **Introduced** in 16.6. This feature is an Experiment. It can be changed or removed at any time. Permission to archive projects. |
| <a id="memberrolebaseaccesslevel"></a>`baseAccessLevel` **{warning-solid}** | [`AccessLevel!`](#accesslevel) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Base access level for the custom role. |
| <a id="memberroledescription"></a>`description` | [`String`](#string) | Description of the member role. |
-| <a id="memberroleenabledpermissions"></a>`enabledPermissions` **{warning-solid}** | [`[MemberRolePermission!]`](#memberrolepermission) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Array of all permissions enabled for the custom role. |
+| <a id="memberroleenabledpermissions"></a>`enabledPermissions` **{warning-solid}** | [`CustomizablePermissionConnection`](#customizablepermissionconnection) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Array of all permissions enabled for the custom role. |
| <a id="memberroleid"></a>`id` | [`MemberRoleID!`](#memberroleid) | ID of the member role. |
-| <a id="memberrolemanageprojectaccesstokens"></a>`manageProjectAccessTokens` **{warning-solid}** | [`Boolean`](#boolean) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Permission to admin project access tokens. |
| <a id="memberrolememberscount"></a>`membersCount` **{warning-solid}** | [`Int!`](#int) | **Introduced** in 16.7. This feature is an Experiment. It can be changed or removed at any time. Total number of members with the custom role. |
| <a id="memberrolename"></a>`name` | [`String!`](#string) | Name of the member role. |
-| <a id="memberrolereadcode"></a>`readCode` **{warning-solid}** | [`Boolean`](#boolean) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Permission to read code. |
-| <a id="memberrolereaddependency"></a>`readDependency` **{warning-solid}** | [`Boolean`](#boolean) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Permission to read dependency. |
-| <a id="memberrolereadvulnerability"></a>`readVulnerability` **{warning-solid}** | [`Boolean`](#boolean) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Permission to read vulnerability. |
### `MergeAccessLevel`
@@ -21357,6 +21576,8 @@ Defines which user roles, users, or groups can merge into a protected branch.
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="mergerequestallowcollaboration"></a>`allowCollaboration` | [`Boolean`](#boolean) | Indicates if members of the target project can push to the fork. |
+| <a id="mergerequestallowsmultipleassignees"></a>`allowsMultipleAssignees` | [`Boolean!`](#boolean) | Allows assigning multiple users to a merge request. |
+| <a id="mergerequestallowsmultiplereviewers"></a>`allowsMultipleReviewers` | [`Boolean!`](#boolean) | Allows assigning multiple reviewers to a merge request. |
| <a id="mergerequestapprovalstate"></a>`approvalState` | [`MergeRequestApprovalState!`](#mergerequestapprovalstate) | Information relating to rules that must be satisfied to merge this merge request. |
| <a id="mergerequestapprovalsleft"></a>`approvalsLeft` | [`Int`](#int) | Number of approvals left. |
| <a id="mergerequestapprovalsrequired"></a>`approvalsRequired` | [`Int`](#int) | Number of approvals required. |
@@ -22923,9 +23144,14 @@ Machine learning model in the model registry.
| Name | Type | Description |
| ---- | ---- | ----------- |
+| <a id="mlmodel_links"></a>`_links` | [`MLModelLinks!`](#mlmodellinks) | Map of links to perform actions on the model. |
| <a id="mlmodelcandidates"></a>`candidates` | [`MlCandidateConnection`](#mlcandidateconnection) | Version candidates of the model. (see [Connections](#connections)) |
+| <a id="mlmodelcreatedat"></a>`createdAt` | [`Time!`](#time) | Date of creation. |
+| <a id="mlmodeldescription"></a>`description` | [`String!`](#string) | Description of the model. |
| <a id="mlmodelid"></a>`id` | [`MlModelID!`](#mlmodelid) | ID of the model. |
+| <a id="mlmodellatestversion"></a>`latestVersion` | [`MlModelVersion`](#mlmodelversion) | Latest version of the model. |
| <a id="mlmodelname"></a>`name` | [`String!`](#string) | Name of the model. |
+| <a id="mlmodelversioncount"></a>`versionCount` | [`Int`](#int) | Count of versions in the model. |
| <a id="mlmodelversions"></a>`versions` | [`MlModelVersionConnection`](#mlmodelversionconnection) | Versions of the model. (see [Connections](#connections)) |
### `MlModelVersion`
@@ -22962,19 +23188,19 @@ Product analytics events for a specific month and year.
| <a id="namespaceactualrepositorysizelimit"></a>`actualRepositorySizeLimit` | [`Float`](#float) | Size limit for repositories in the namespace in bytes. This limit only applies to namespaces under Project limit enforcement. |
| <a id="namespaceactualsizelimit"></a>`actualSizeLimit` | [`Float`](#float) | The actual storage size limit (in bytes) based on the enforcement type of either repository or namespace. This limit is agnostic of enforcement type. |
| <a id="namespaceadditionalpurchasedstoragesize"></a>`additionalPurchasedStorageSize` | [`Float`](#float) | Additional storage purchased for the root namespace in bytes. |
-| <a id="namespacecontainslockedprojects"></a>`containsLockedProjects` | [`Boolean!`](#boolean) | Includes at least one project where the repository size exceeds the limit. This only applies to namespaces under Project limit enforcement. |
+| <a id="namespacecontainslockedprojects"></a>`containsLockedProjects` | [`Boolean`](#boolean) | Includes at least one project where the repository size exceeds the limit. This only applies to namespaces under Project limit enforcement. |
| <a id="namespacecrossprojectpipelineavailable"></a>`crossProjectPipelineAvailable` | [`Boolean!`](#boolean) | Indicates if the cross_project_pipeline feature is available for the namespace. |
| <a id="namespacedescription"></a>`description` | [`String`](#string) | Description of the namespace. |
| <a id="namespacedescriptionhtml"></a>`descriptionHtml` | [`String`](#string) | GitLab Flavored Markdown rendering of `description`. |
| <a id="namespacefullname"></a>`fullName` | [`String!`](#string) | Full name of the namespace. |
| <a id="namespacefullpath"></a>`fullPath` | [`ID!`](#id) | Full path of the namespace. |
| <a id="namespaceid"></a>`id` | [`ID!`](#id) | ID of the namespace. |
-| <a id="namespaceistemporarystorageincreaseenabled"></a>`isTemporaryStorageIncreaseEnabled` **{warning-solid}** | [`Boolean!`](#boolean) | **Deprecated** in 16.7. Feature removal, will be completely removed in 17.0. |
+| <a id="namespaceistemporarystorageincreaseenabled"></a>`isTemporaryStorageIncreaseEnabled` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated** in 16.7. Feature removal, will be completely removed in 17.0. |
| <a id="namespacelfsenabled"></a>`lfsEnabled` | [`Boolean`](#boolean) | Indicates if Large File Storage (LFS) is enabled for namespace. |
| <a id="namespacename"></a>`name` | [`String!`](#string) | Name of the namespace. |
| <a id="namespacepackagesettings"></a>`packageSettings` | [`PackageSettings`](#packagesettings) | Package settings for the namespace. |
| <a id="namespacepath"></a>`path` | [`String!`](#string) | Path of the namespace. |
-| <a id="namespacerepositorysizeexcessprojectcount"></a>`repositorySizeExcessProjectCount` | [`Int!`](#int) | Number of projects in the root namespace where the repository size exceeds the limit. This only applies to namespaces under Project limit enforcement. |
+| <a id="namespacerepositorysizeexcessprojectcount"></a>`repositorySizeExcessProjectCount` | [`Int`](#int) | Number of projects in the root namespace where the repository size exceeds the limit. This only applies to namespaces under Project limit enforcement. |
| <a id="namespacerequestaccessenabled"></a>`requestAccessEnabled` | [`Boolean`](#boolean) | Indicates if users can request access to namespace. |
| <a id="namespacerootstoragestatistics"></a>`rootStorageStatistics` | [`RootStorageStatistics`](#rootstoragestatistics) | Aggregated storage statistics of the namespace. Only available for root namespaces. |
| <a id="namespacesharedrunnerssetting"></a>`sharedRunnersSetting` | [`SharedRunnersSetting`](#sharedrunnerssetting) | Shared runners availability for the namespace and its descendants. |
@@ -23283,6 +23509,7 @@ Active period time range for on-call rotation.
| <a id="organizationname"></a>`name` **{warning-solid}** | [`String!`](#string) | **Introduced** in 16.4. This feature is an Experiment. It can be changed or removed at any time. Name of the organization. |
| <a id="organizationorganizationusers"></a>`organizationUsers` **{warning-solid}** | [`OrganizationUserConnection!`](#organizationuserconnection) | **Introduced** in 16.4. This feature is an Experiment. It can be changed or removed at any time. Users with access to the organization. |
| <a id="organizationpath"></a>`path` **{warning-solid}** | [`String!`](#string) | **Introduced** in 16.4. This feature is an Experiment. It can be changed or removed at any time. Path of the organization. |
+| <a id="organizationprojects"></a>`projects` **{warning-solid}** | [`ProjectConnection!`](#projectconnection) | **Introduced** in 16.8. This feature is an Experiment. It can be changed or removed at any time. Projects within this organization that the user has access to. |
| <a id="organizationweburl"></a>`webUrl` **{warning-solid}** | [`String!`](#string) | **Introduced** in 16.6. This feature is an Experiment. It can be changed or removed at any time. Web URL of the organization. |
#### Fields with arguments
@@ -23605,6 +23832,8 @@ Namespace-level Package Registry settings.
| <a id="packagesettingsnugetsymbolserverenabled"></a>`nugetSymbolServerEnabled` | [`Boolean!`](#boolean) | Indicates wheather the NuGet symbol server is enabled for this namespace. |
| <a id="packagesettingspypipackagerequestsforwarding"></a>`pypiPackageRequestsForwarding` | [`Boolean`](#boolean) | Indicates whether PyPI package forwarding is allowed for this namespace. |
| <a id="packagesettingspypipackagerequestsforwardinglocked"></a>`pypiPackageRequestsForwardingLocked` | [`Boolean!`](#boolean) | Indicates whether PyPI package forwarding settings are locked by a parent namespace. |
+| <a id="packagesettingsterraformmoduleduplicateexceptionregex"></a>`terraformModuleDuplicateExceptionRegex` | [`UntrustedRegexp`](#untrustedregexp) | When terraform_module_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect. |
+| <a id="packagesettingsterraformmoduleduplicatesallowed"></a>`terraformModuleDuplicatesAllowed` | [`Boolean!`](#boolean) | Indicates whether duplicate Terraform packages are allowed for this namespace. |
### `PackageTag`
@@ -23839,7 +24068,7 @@ Returns [`PipelineSecurityReportFinding`](#pipelinesecurityreportfinding).
##### `Pipeline.securityReportFindings`
-Vulnerability findings reported on the pipeline.
+Vulnerability findings reported on the pipeline. By default all the states except dismissed are included in the response.
Returns [`PipelineSecurityReportFindingConnection`](#pipelinesecurityreportfindingconnection).
@@ -24085,6 +24314,8 @@ Represents vulnerability finding of a security report on the pipeline.
| <a id="projectactualrepositorysizelimit"></a>`actualRepositorySizeLimit` | [`Float`](#float) | Size limit for the repository in bytes. |
| <a id="projectagentconfigurations"></a>`agentConfigurations` | [`AgentConfigurationConnection`](#agentconfigurationconnection) | Agent configurations defined by the project. (see [Connections](#connections)) |
| <a id="projectallowmergeonskippedpipeline"></a>`allowMergeOnSkippedPipeline` | [`Boolean`](#boolean) | If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge requests of the project can also be merged with skipped jobs. |
+| <a id="projectallowsmultiplemergerequestassignees"></a>`allowsMultipleMergeRequestAssignees` | [`Boolean!`](#boolean) | Project allows assigning multiple users to a merge request. |
+| <a id="projectallowsmultiplemergerequestreviewers"></a>`allowsMultipleMergeRequestReviewers` | [`Boolean!`](#boolean) | Project allows assigning multiple reviewers to a merge request. |
| <a id="projectapifuzzingciconfiguration"></a>`apiFuzzingCiConfiguration` | [`ApiFuzzingCiConfiguration`](#apifuzzingciconfiguration) | API fuzzing configuration for the project. |
| <a id="projectarchived"></a>`archived` | [`Boolean`](#boolean) | Indicates the archived status of the project. |
| <a id="projectautoclosereferencedissues"></a>`autocloseReferencedIssues` | [`Boolean`](#boolean) | Indicates if issues referenced by merge requests and commits within the default branch are closed automatically. |
@@ -24094,8 +24325,8 @@ Represents vulnerability finding of a security report on the pipeline.
| <a id="projectcicdsettings"></a>`ciCdSettings` | [`ProjectCiCdSetting`](#projectcicdsetting) | CI/CD settings for the project. |
| <a id="projectciconfigpathordefault"></a>`ciConfigPathOrDefault` | [`String!`](#string) | Path of the CI configuration file. |
| <a id="projectcijobtokenscope"></a>`ciJobTokenScope` | [`CiJobTokenScopeType`](#cijobtokenscopetype) | The CI Job Tokens scope of access. |
-| <a id="projectcisubscribedprojects"></a>`ciSubscribedProjects` | [`CiSubscriptionsProjectConnection`](#cisubscriptionsprojectconnection) | Triggers a new pipeline in the downstream project when a pipeline successfullycompletes on the(upstream) project. (see [Connections](#connections)) |
-| <a id="projectcisubscriptionsprojects"></a>`ciSubscriptionsProjects` | [`CiSubscriptionsProjectConnection`](#cisubscriptionsprojectconnection) | Triggers a new pipeline in the(downstream) project when a pipeline successfullycompletes on the upstream project. (see [Connections](#connections)) |
+| <a id="projectcisubscribedprojects"></a>`ciSubscribedProjects` | [`CiSubscriptionsProjectConnection`](#cisubscriptionsprojectconnection) | Pipeline subscriptions for projects subscribed to the project. (see [Connections](#connections)) |
+| <a id="projectcisubscriptionsprojects"></a>`ciSubscriptionsProjects` | [`CiSubscriptionsProjectConnection`](#cisubscriptionsprojectconnection) | Pipeline subscriptions for the project. (see [Connections](#connections)) |
| <a id="projectcodecoveragesummary"></a>`codeCoverageSummary` | [`CodeCoverageSummary`](#codecoveragesummary) | Code coverage summary associated with the project. |
| <a id="projectcomplianceframeworks"></a>`complianceFrameworks` | [`ComplianceFrameworkConnection`](#complianceframeworkconnection) | Compliance frameworks associated with the project. (see [Connections](#connections)) |
| <a id="projectcontainerexpirationpolicy"></a>`containerExpirationPolicy` | [`ContainerExpirationPolicy`](#containerexpirationpolicy) | Container expiration policy of the project. |
@@ -24105,7 +24336,7 @@ Represents vulnerability finding of a security report on the pipeline.
| <a id="projectcreatedat"></a>`createdAt` | [`Time`](#time) | Timestamp of the project creation. |
| <a id="projectdastscannerprofiles"></a>`dastScannerProfiles` | [`DastScannerProfileConnection`](#dastscannerprofileconnection) | DAST scanner profiles associated with the project. (see [Connections](#connections)) |
| <a id="projectdastsiteprofiles"></a>`dastSiteProfiles` | [`DastSiteProfileConnection`](#dastsiteprofileconnection) | DAST Site Profiles associated with the project. (see [Connections](#connections)) |
-| <a id="projectdependencyproxypackagessetting"></a>`dependencyProxyPackagesSetting` **{warning-solid}** | [`DependencyProxyPackagesSetting`](#dependencyproxypackagessetting) | **Introduced** in 16.5. This feature is an Experiment. It can be changed or removed at any time. Packages Dependency Proxy settings for the project. Requires the packages and dependency proxy to be enabled in the config. Requires the packages feature to be enabled at the project level. Returns `null` if `packages_dependency_proxy_maven` feature flag is disabled. |
+| <a id="projectdependencyproxypackagessetting"></a>`dependencyProxyPackagesSetting` | [`DependencyProxyPackagesSetting`](#dependencyproxypackagessetting) | Packages Dependency Proxy settings for the project. Requires the packages and dependency proxy to be enabled in the config. Requires the packages feature to be enabled at the project level. |
| <a id="projectdescription"></a>`description` | [`String`](#string) | Short description of the project. |
| <a id="projectdescriptionhtml"></a>`descriptionHtml` | [`String`](#string) | GitLab Flavored Markdown rendering of `description`. |
| <a id="projectdetailedimportstatus"></a>`detailedImportStatus` | [`DetailedImportStatus`](#detailedimportstatus) | Detailed import status of the project. |
@@ -25033,6 +25264,8 @@ four standard [pagination arguments](#connection-pagination-arguments):
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="projectmemberrolesid"></a>`id` | [`MemberRoleID`](#memberroleid) | Global ID of the member role to look up. |
+| <a id="projectmemberrolesorderby"></a>`orderBy` | [`MemberRolesOrderBy`](#memberrolesorderby) | Ordering column. Default is NAME. |
+| <a id="projectmemberrolessort"></a>`sort` | [`SortDirectionEnum`](#sortdirectionenum) | Ordering column. Default is ASC. |
##### `Project.mergeRequest`
@@ -25103,6 +25336,28 @@ four standard [pagination arguments](#connection-pagination-arguments):
| <a id="projectmilestonestimeframe"></a>`timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. |
| <a id="projectmilestonestitle"></a>`title` | [`String`](#string) | Title of the milestone. |
+##### `Project.mlModels`
+
+Finds machine learning models.
+
+WARNING:
+**Introduced** in 16.8.
+This feature is an Experiment. It can be changed or removed at any time.
+
+Returns [`MlModelConnection`](#mlmodelconnection).
+
+This field returns a [connection](#connections). It accepts the
+four standard [pagination arguments](#connection-pagination-arguments):
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
+
+###### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="projectmlmodelsname"></a>`name` | [`String`](#string) | Search for names that include the string. |
+| <a id="projectmlmodelsorderby"></a>`orderBy` | [`MlModelsOrderBy`](#mlmodelsorderby) | Ordering column. Default is created_at. |
+| <a id="projectmlmodelssort"></a>`sort` | [`SortDirectionEnum`](#sortdirectionenum) | Ordering column. Default is desc. |
+
##### `Project.nestedEnvironments`
Environments for this project with nested folders, can only be resolved for one project in any single request.
@@ -25546,6 +25801,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
| <a id="projectvulnerabilitieshasremediations"></a>`hasRemediations` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have remediations. |
| <a id="projectvulnerabilitieshasresolution"></a>`hasResolution` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have been resolved on default branch. |
| <a id="projectvulnerabilitiesimage"></a>`image` | [`[String!]`](#string) | Filter vulnerabilities by location image. When this filter is present, the response only matches entries for a `reportType` that includes `container_scanning`, `cluster_image_scanning`. |
+| <a id="projectvulnerabilitiesowasptopten"></a>`owaspTopTen` | [`[VulnerabilityOwaspTop10!]`](#vulnerabilityowasptop10) | Filter vulnerabilities by OWASP Top 10 category. |
| <a id="projectvulnerabilitiesprojectid"></a>`projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. |
| <a id="projectvulnerabilitiesreporttype"></a>`reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. |
| <a id="projectvulnerabilitiesscanner"></a>`scanner` | [`[String!]`](#string) | Filter vulnerabilities by VulnerabilityScanner.externalId. |
@@ -25588,6 +25844,7 @@ Returns [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount).
| <a id="projectvulnerabilityseveritiescounthasremediations"></a>`hasRemediations` | [`Boolean`](#boolean) | Filter vulnerabilities that do or do not have remediations. |
| <a id="projectvulnerabilityseveritiescounthasresolution"></a>`hasResolution` | [`Boolean`](#boolean) | Filter vulnerabilities that do or do not have a resolution. |
| <a id="projectvulnerabilityseveritiescountimage"></a>`image` | [`[String!]`](#string) | Filter vulnerabilities by location image. When this filter is present, the response only matches entries for a `reportType` that includes `container_scanning`, `cluster_image_scanning`. |
+| <a id="projectvulnerabilityseveritiescountowasptopten"></a>`owaspTopTen` | [`[VulnerabilityOwaspTop10!]`](#vulnerabilityowasptop10) | Filter vulnerabilities by OWASP Top 10 category. |
| <a id="projectvulnerabilityseveritiescountprojectid"></a>`projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. |
| <a id="projectvulnerabilityseveritiescountreporttype"></a>`reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. |
| <a id="projectvulnerabilityseveritiescountscanner"></a>`scanner` | [`[String!]`](#string) | Filter vulnerabilities by scanner. |
@@ -25674,7 +25931,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
| <a id="projectcicdsettinginboundjobtokenscopeenabled"></a>`inboundJobTokenScopeEnabled` | [`Boolean`](#boolean) | Indicates CI/CD job tokens generated in other projects have restricted access to this project. |
| <a id="projectcicdsettingjobtokenscopeenabled"></a>`jobTokenScopeEnabled` | [`Boolean`](#boolean) | Indicates CI/CD job tokens generated in this project have restricted access to other projects. |
| <a id="projectcicdsettingkeeplatestartifact"></a>`keepLatestArtifact` | [`Boolean`](#boolean) | Whether to keep the latest builds artifacts. |
-| <a id="projectcicdsettingmergepipelinesenabled"></a>`mergePipelinesEnabled` | [`Boolean`](#boolean) | Whether merge pipelines are enabled. |
+| <a id="projectcicdsettingmergepipelinesenabled"></a>`mergePipelinesEnabled` | [`Boolean`](#boolean) | Whether merged results pipelines are enabled. |
| <a id="projectcicdsettingmergetrainsenabled"></a>`mergeTrainsEnabled` | [`Boolean`](#boolean) | Whether merge trains are enabled. |
| <a id="projectcicdsettingmergetrainsskiptrainallowed"></a>`mergeTrainsSkipTrainAllowed` | [`Boolean!`](#boolean) | Whether merge immediately is allowed for merge trains. |
| <a id="projectcicdsettingproject"></a>`project` | [`Project`](#project) | Project the CI/CD settings belong to. |
@@ -28776,6 +29033,18 @@ Represents the emoji reactions widget.
| <a id="workitemwidgetawardemojitype"></a>`type` | [`WorkItemWidgetType`](#workitemwidgettype) | Widget type. |
| <a id="workitemwidgetawardemojiupvotes"></a>`upvotes` | [`Int!`](#int) | Number of upvotes the work item has received. |
+### `WorkItemWidgetColor`
+
+Represents a color widget.
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="workitemwidgetcolorcolor"></a>`color` | [`String`](#string) | Color of the Work Item. |
+| <a id="workitemwidgetcolortextcolor"></a>`textColor` | [`String`](#string) | Text color generated for the Work Item. |
+| <a id="workitemwidgetcolortype"></a>`type` | [`WorkItemWidgetType`](#workitemwidgettype) | Widget type. |
+
### `WorkItemWidgetCurrentUserTodos`
Represents a todos widget.
@@ -28965,6 +29234,7 @@ Represents a notes widget.
| Name | Type | Description |
| ---- | ---- | ----------- |
+| <a id="workitemwidgetnotesdiscussionlocked"></a>`discussionLocked` | [`Boolean`](#boolean) | Discussion lock attribute of the work item. |
| <a id="workitemwidgetnotestype"></a>`type` | [`WorkItemWidgetType`](#workitemwidgettype) | Widget type. |
#### Fields with arguments
@@ -29022,6 +29292,24 @@ Represents a legacy requirement widget.
| <a id="workitemwidgetrequirementlegacylegacyiid"></a>`legacyIid` **{warning-solid}** | [`Int`](#int) | **Deprecated** in 15.9. Use Work Item IID instead. |
| <a id="workitemwidgetrequirementlegacytype"></a>`type` | [`WorkItemWidgetType`](#workitemwidgettype) | Widget type. |
+### `WorkItemWidgetRolledupDates`
+
+Represents the rolledup dates widget.
+
+#### Fields
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="workitemwidgetrolledupdatesduedate"></a>`dueDate` | [`Date`](#date) | Due date for the work item. |
+| <a id="workitemwidgetrolledupdatesduedateisfixed"></a>`dueDateIsFixed` | [`Boolean`](#boolean) | Indicates if the due date for the work item is fixed. |
+| <a id="workitemwidgetrolledupdatesduedatesourcingmilestone"></a>`dueDateSourcingMilestone` | [`Milestone`](#milestone) | Indicates which milestone sources the rolledup due date. |
+| <a id="workitemwidgetrolledupdatesduedatesourcingworkitem"></a>`dueDateSourcingWorkItem` | [`WorkItem`](#workitem) | Indicates which work_item sources the rolledup due date. |
+| <a id="workitemwidgetrolledupdatesstartdate"></a>`startDate` | [`Date`](#date) | Start date for the work item. |
+| <a id="workitemwidgetrolledupdatesstartdateisfixed"></a>`startDateIsFixed` | [`Boolean`](#boolean) | Indicates if the start date for the work item is fixed. |
+| <a id="workitemwidgetrolledupdatesstartdatesourcingmilestone"></a>`startDateSourcingMilestone` | [`Milestone`](#milestone) | Indicates which milestone sources the rolledup start date. |
+| <a id="workitemwidgetrolledupdatesstartdatesourcingworkitem"></a>`startDateSourcingWorkItem` | [`WorkItem`](#workitem) | Indicates which work_item sources the rolledup start date. |
+| <a id="workitemwidgetrolledupdatestype"></a>`type` | [`WorkItemWidgetType`](#workitemwidgettype) | Widget type. |
+
### `WorkItemWidgetStartAndDueDate`
Represents a start and due date widget.
@@ -30646,14 +30934,27 @@ Member role permission.
| Value | Description |
| ----- | ----------- |
-| <a id="memberrolepermissionadmin_group_member"></a>`ADMIN_GROUP_MEMBER` | Allows to admin group members. |
-| <a id="memberrolepermissionadmin_merge_request"></a>`ADMIN_MERGE_REQUEST` | Allows to approve merge requests. |
+| <a id="memberrolepermissionadmin_group_member"></a>`ADMIN_GROUP_MEMBER` | Allows admin of group members. |
+| <a id="memberrolepermissionadmin_merge_request"></a>`ADMIN_MERGE_REQUEST` | Allows approval of merge requests. |
+| <a id="memberrolepermissionadmin_terraform_state"></a>`ADMIN_TERRAFORM_STATE` | Allows to admin terraform state. |
| <a id="memberrolepermissionadmin_vulnerability"></a>`ADMIN_VULNERABILITY` | Allows admin access to the vulnerability reports. |
-| <a id="memberrolepermissionarchive_project"></a>`ARCHIVE_PROJECT` | Allows to archive projects. |
+| <a id="memberrolepermissionarchive_project"></a>`ARCHIVE_PROJECT` | Allows archiving of projects. |
+| <a id="memberrolepermissionmanage_group_access_tokens"></a>`MANAGE_GROUP_ACCESS_TOKENS` | Allows manage access to the group access tokens. |
| <a id="memberrolepermissionmanage_project_access_tokens"></a>`MANAGE_PROJECT_ACCESS_TOKENS` | Allows manage access to the project access tokens. |
| <a id="memberrolepermissionread_code"></a>`READ_CODE` | Allows read-only access to the source code. |
| <a id="memberrolepermissionread_dependency"></a>`READ_DEPENDENCY` | Allows read-only access to the dependencies. |
| <a id="memberrolepermissionread_vulnerability"></a>`READ_VULNERABILITY` | Allows read-only access to the vulnerability reports. |
+| <a id="memberrolepermissionremove_project"></a>`REMOVE_PROJECT` | Allows deletion of projects. |
+
+### `MemberRolesOrderBy`
+
+Values for ordering member roles by a specific field.
+
+| Value | Description |
+| ----- | ----------- |
+| <a id="memberrolesorderbycreated_at"></a>`CREATED_AT` | Ordered by creation time. |
+| <a id="memberrolesorderbyid"></a>`ID` | Ordered by id. |
+| <a id="memberrolesorderbyname"></a>`NAME` | Ordered by name. |
### `MemberSort`
@@ -30820,6 +31121,17 @@ Milestone ID wildcard values.
| <a id="milestonewildcardidstarted"></a>`STARTED` | Milestone assigned is open and started (start date <= today). |
| <a id="milestonewildcardidupcoming"></a>`UPCOMING` | Milestone assigned is due in the future (due date > today). |
+### `MlModelsOrderBy`
+
+Values for ordering machine learning models by a specific field.
+
+| Value | Description |
+| ----- | ----------- |
+| <a id="mlmodelsorderbycreated_at"></a>`CREATED_AT` | Ordered by creation time. |
+| <a id="mlmodelsorderbyid"></a>`ID` | Ordered by id. |
+| <a id="mlmodelsorderbyname"></a>`NAME` | Ordered by name. |
+| <a id="mlmodelsorderbyupdated_at"></a>`UPDATED_AT` | Ordered by update time. |
+
### `MoveType`
The position to which the adjacent object should be moved.
@@ -31327,6 +31639,7 @@ State of a Sentry error.
| <a id="servicetypeconfluence_service"></a>`CONFLUENCE_SERVICE` | ConfluenceService type. |
| <a id="servicetypecustom_issue_tracker_service"></a>`CUSTOM_ISSUE_TRACKER_SERVICE` | CustomIssueTrackerService type. |
| <a id="servicetypedatadog_service"></a>`DATADOG_SERVICE` | DatadogService type. |
+| <a id="servicetypediffblue_cover_service"></a>`DIFFBLUE_COVER_SERVICE` | DiffblueCoverService type. |
| <a id="servicetypediscord_service"></a>`DISCORD_SERVICE` | DiscordService type. |
| <a id="servicetypedrone_ci_service"></a>`DRONE_CI_SERVICE` | DroneCiService type. |
| <a id="servicetypeemails_on_push_service"></a>`EMAILS_ON_PUSH_SERVICE` | EmailsOnPushService type. |
@@ -31540,6 +31853,7 @@ Name of the feature that the callout is for.
| <a id="usercalloutfeaturenameenumcloud_licensing_subscription_activation_banner"></a>`CLOUD_LICENSING_SUBSCRIPTION_ACTIVATION_BANNER` | Callout feature name for cloud_licensing_subscription_activation_banner. |
| <a id="usercalloutfeaturenameenumcluster_security_warning"></a>`CLUSTER_SECURITY_WARNING` | Callout feature name for cluster_security_warning. |
| <a id="usercalloutfeaturenameenumcode_suggestions_ga_non_owner_alert"></a>`CODE_SUGGESTIONS_GA_NON_OWNER_ALERT` | Callout feature name for code_suggestions_ga_non_owner_alert. |
+| <a id="usercalloutfeaturenameenumcode_suggestions_ga_owner_alert"></a>`CODE_SUGGESTIONS_GA_OWNER_ALERT` | Callout feature name for code_suggestions_ga_owner_alert. |
| <a id="usercalloutfeaturenameenumduo_chat_callout"></a>`DUO_CHAT_CALLOUT` | Callout feature name for duo_chat_callout. |
| <a id="usercalloutfeaturenameenumeoa_bronze_plan_banner"></a>`EOA_BRONZE_PLAN_BANNER` | Callout feature name for eoa_bronze_plan_banner. |
| <a id="usercalloutfeaturenameenumfeature_flags_new_version"></a>`FEATURE_FLAGS_NEW_VERSION` | Callout feature name for feature_flags_new_version. |
@@ -31563,6 +31877,7 @@ Name of the feature that the callout is for.
| <a id="usercalloutfeaturenameenumpipeline_needs_banner"></a>`PIPELINE_NEEDS_BANNER` | Callout feature name for pipeline_needs_banner. |
| <a id="usercalloutfeaturenameenumpipeline_needs_hover_tip"></a>`PIPELINE_NEEDS_HOVER_TIP` | Callout feature name for pipeline_needs_hover_tip. |
| <a id="usercalloutfeaturenameenumpreview_user_over_limit_free_plan_alert"></a>`PREVIEW_USER_OVER_LIMIT_FREE_PLAN_ALERT` | Callout feature name for preview_user_over_limit_free_plan_alert. |
+| <a id="usercalloutfeaturenameenumproduct_analytics_dashboard_feedback"></a>`PRODUCT_ANALYTICS_DASHBOARD_FEEDBACK` | Callout feature name for product_analytics_dashboard_feedback. |
| <a id="usercalloutfeaturenameenumprofile_personal_access_token_expiry"></a>`PROFILE_PERSONAL_ACCESS_TOKEN_EXPIRY` | Callout feature name for profile_personal_access_token_expiry. |
| <a id="usercalloutfeaturenameenumproject_quality_summary_feedback"></a>`PROJECT_QUALITY_SUMMARY_FEEDBACK` | Callout feature name for project_quality_summary_feedback. |
| <a id="usercalloutfeaturenameenumproject_repository_limit_alert_alert_threshold"></a>`PROJECT_REPOSITORY_LIMIT_ALERT_ALERT_THRESHOLD` | Callout feature name for project_repository_limit_alert_alert_threshold. |
@@ -31661,7 +31976,7 @@ Stage event identifiers.
### `VerificationStatus`
-Verification status of a GPG or X.509 signature for a commit.
+Verification status of a GPG, X.509 or SSH signature for a commit.
| Value | Description |
| ----- | ----------- |
@@ -31673,6 +31988,7 @@ Verification status of a GPG or X.509 signature for a commit.
| <a id="verificationstatusunverified"></a>`UNVERIFIED` | unverified verification status. |
| <a id="verificationstatusunverified_key"></a>`UNVERIFIED_KEY` | unverified_key verification status. |
| <a id="verificationstatusverified"></a>`VERIFIED` | verified verification status. |
+| <a id="verificationstatusverified_ca"></a>`VERIFIED_CA` | verified_ca verification status. |
| <a id="verificationstatusverified_system"></a>`VERIFIED_SYSTEM` | verified_system verification status. |
### `VisibilityLevelsEnum`
@@ -31763,6 +32079,33 @@ The type of the issue link related to a vulnerability.
| <a id="vulnerabilityissuelinktypecreated"></a>`CREATED` | Issue is created for the vulnerability. |
| <a id="vulnerabilityissuelinktyperelated"></a>`RELATED` | Has a related issue. |
+### `VulnerabilityOwaspTop10`
+
+OwaspTop10 category of the vulnerability.
+
+| Value | Description |
+| ----- | ----------- |
+| <a id="vulnerabilityowasptop10a10_2017"></a>`A10_2017` | A10:2017-Insufficient Logging & Monitoring, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a10_2021"></a>`A10_2021` | A10:2021-Server-Side Request Forgery, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a1_2017"></a>`A1_2017` | A1:2017-Injection, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a1_2021"></a>`A1_2021` | A1:2021-Broken Access Control, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a2_2017"></a>`A2_2017` | A2:2017-Broken Authentication, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a2_2021"></a>`A2_2021` | A2:2021-Cryptographic Failures, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a3_2017"></a>`A3_2017` | A3:2017-Sensitive Data Exposure, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a3_2021"></a>`A3_2021` | A3:2021-Injection, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a4_2017"></a>`A4_2017` | A4:2017-XML External Entities (XXE), OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a4_2021"></a>`A4_2021` | A4:2021-Insecure Design, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a5_2017"></a>`A5_2017` | A5:2017-Broken Access Control, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a5_2021"></a>`A5_2021` | A5:2021-Security Misconfiguration, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a6_2017"></a>`A6_2017` | A6:2017-Security Misconfiguration, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a6_2021"></a>`A6_2021` | A6:2021-Vulnerable and Outdated Components, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a7_2017"></a>`A7_2017` | A7:2017-Cross-Site Scripting (XSS), OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a7_2021"></a>`A7_2021` | A7:2021-Identification and Authentication Failures, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a8_2017"></a>`A8_2017` | A8:2017-Insecure Deserialization, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a8_2021"></a>`A8_2021` | A8:2021-Software and Data Integrity Failures, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a9_2017"></a>`A9_2017` | A9:2017-Using Components with Known Vulnerabilities, OWASP top 10 category. |
+| <a id="vulnerabilityowasptop10a9_2021"></a>`A9_2021` | A9:2021-Security Logging and Monitoring Failures, OWASP top 10 category. |
+
### `VulnerabilityReportType`
The type of the security scan that found the vulnerability.
@@ -31895,6 +32238,7 @@ Type of a work item widget.
| ----- | ----------- |
| <a id="workitemwidgettypeassignees"></a>`ASSIGNEES` | Assignees widget. |
| <a id="workitemwidgettypeaward_emoji"></a>`AWARD_EMOJI` | Award Emoji widget. |
+| <a id="workitemwidgettypecolor"></a>`COLOR` | Color widget. |
| <a id="workitemwidgettypecurrent_user_todos"></a>`CURRENT_USER_TODOS` | Current User Todos widget. |
| <a id="workitemwidgettypedescription"></a>`DESCRIPTION` | Description widget. |
| <a id="workitemwidgettypehealth_status"></a>`HEALTH_STATUS` | Health Status widget. |
@@ -31907,6 +32251,7 @@ Type of a work item widget.
| <a id="workitemwidgettypenotifications"></a>`NOTIFICATIONS` | Notifications widget. |
| <a id="workitemwidgettypeprogress"></a>`PROGRESS` | Progress widget. |
| <a id="workitemwidgettyperequirement_legacy"></a>`REQUIREMENT_LEGACY` | Requirement Legacy widget. |
+| <a id="workitemwidgettyperolledup_dates"></a>`ROLLEDUP_DATES` | Rolledup Dates widget. |
| <a id="workitemwidgettypestart_and_due_date"></a>`START_AND_DUE_DATE` | Start And Due Date widget. |
| <a id="workitemwidgettypestatus"></a>`STATUS` | Status widget. |
| <a id="workitemwidgettypetest_reports"></a>`TEST_REPORTS` | Test Reports widget. |
@@ -33580,6 +33925,7 @@ Implementations:
- [`WorkItemWidgetAssignees`](#workitemwidgetassignees)
- [`WorkItemWidgetAwardEmoji`](#workitemwidgetawardemoji)
+- [`WorkItemWidgetColor`](#workitemwidgetcolor)
- [`WorkItemWidgetCurrentUserTodos`](#workitemwidgetcurrentusertodos)
- [`WorkItemWidgetDescription`](#workitemwidgetdescription)
- [`WorkItemWidgetHealthStatus`](#workitemwidgethealthstatus)
@@ -33592,6 +33938,7 @@ Implementations:
- [`WorkItemWidgetNotifications`](#workitemwidgetnotifications)
- [`WorkItemWidgetProgress`](#workitemwidgetprogress)
- [`WorkItemWidgetRequirementLegacy`](#workitemwidgetrequirementlegacy)
+- [`WorkItemWidgetRolledupDates`](#workitemwidgetrolledupdates)
- [`WorkItemWidgetStartAndDueDate`](#workitemwidgetstartandduedate)
- [`WorkItemWidgetStatus`](#workitemwidgetstatus)
- [`WorkItemWidgetTestReports`](#workitemwidgettestreports)
@@ -34394,6 +34741,7 @@ Attributes for value stream stage.
| <a id="workitemupdatedtaskinputid"></a>`id` | [`WorkItemID!`](#workitemid) | Global ID of the work item. |
| <a id="workitemupdatedtaskinputlabelswidget"></a>`labelsWidget` | [`WorkItemWidgetLabelsUpdateInput`](#workitemwidgetlabelsupdateinput) | Input for labels widget. |
| <a id="workitemupdatedtaskinputmilestonewidget"></a>`milestoneWidget` | [`WorkItemWidgetMilestoneInput`](#workitemwidgetmilestoneinput) | Input for milestone widget. |
+| <a id="workitemupdatedtaskinputnoteswidget"></a>`notesWidget` | [`WorkItemWidgetNotesInput`](#workitemwidgetnotesinput) | Input for notes widget. |
| <a id="workitemupdatedtaskinputnotificationswidget"></a>`notificationsWidget` | [`WorkItemWidgetNotificationsUpdateInput`](#workitemwidgetnotificationsupdateinput) | Input for notifications widget. |
| <a id="workitemupdatedtaskinputstartandduedatewidget"></a>`startAndDueDateWidget` | [`WorkItemWidgetStartAndDueDateUpdateInput`](#workitemwidgetstartandduedateupdateinput) | Input for start and due date widget. |
| <a id="workitemupdatedtaskinputstateevent"></a>`stateEvent` | [`WorkItemStateEvent`](#workitemstateevent) | Close or reopen a work item. |
@@ -34416,6 +34764,14 @@ Attributes for value stream stage.
| <a id="workitemwidgetawardemojiupdateinputaction"></a>`action` | [`WorkItemAwardEmojiUpdateAction!`](#workitemawardemojiupdateaction) | Action for the update. |
| <a id="workitemwidgetawardemojiupdateinputname"></a>`name` | [`String!`](#string) | Emoji name. |
+### `WorkItemWidgetColorInput`
+
+#### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="workitemwidgetcolorinputcolor"></a>`color` | [`Color!`](#color) | Color of the work item. |
+
### `WorkItemWidgetCurrentUserTodosInput`
#### Arguments
@@ -34485,6 +34841,14 @@ Attributes for value stream stage.
| ---- | ---- | ----------- |
| <a id="workitemwidgetmilestoneinputmilestoneid"></a>`milestoneId` | [`MilestoneID`](#milestoneid) | Milestone to assign to the work item. |
+### `WorkItemWidgetNotesInput`
+
+#### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="workitemwidgetnotesinputdiscussionlocked"></a>`discussionLocked` | [`Boolean!`](#boolean) | Discussion lock attribute for notes widget of the work item. |
+
### `WorkItemWidgetNotificationsUpdateInput`
#### Arguments
diff --git a/doc/api/group_import_export.md b/doc/api/group_import_export.md
index 7a3b031f18a..7e065dd87d2 100644
--- a/doc/api/group_import_export.md
+++ b/doc/api/group_import_export.md
@@ -32,7 +32,7 @@ To preserve the member list and their respective permissions on imported groups,
## Prerequisites
- For information on prerequisites for group import and export API, see prerequisites for
- [migrating groups by uploading an export file](../user/group/import/index.md#preparation).
+ [migrating groups by uploading an export file](../user/project/settings/import_export.md#preparation).
## Schedule new export
diff --git a/doc/api/group_level_variables.md b/doc/api/group_level_variables.md
index 109f3ba5f6e..aeab76b7212 100644
--- a/doc/api/group_level_variables.md
+++ b/doc/api/group_level_variables.md
@@ -49,7 +49,10 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a
## Show variable details
-Get the details of a group's specific variable.
+> The `filter` parameter was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/340185) in GitLab 16.9.
+
+Get the details of a group's specific variable. If there are multiple variables with the same key,
+use `filter` to select the correct `environment_scope`.
```plaintext
GET /groups/:id/variables/:key
@@ -59,6 +62,7 @@ GET /groups/:id/variables/:key
|-----------|----------------|----------|-------------|
| `id` | integer/string | Yes | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) |
| `key` | string | Yes | The `key` of a variable |
+| `filter` | hash | No | Available filters: `[environment_scope]`. See the [`filter` parameter details](#the-filter-parameter). |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/variables/TEST_VARIABLE_1"
@@ -85,17 +89,17 @@ Create a new variable.
POST /groups/:id/variables
```
-| Attribute | Type | Required | Description |
-|-----------------------------------|----------------|----------|-------------|
-| `id` | integer/string | Yes | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) |
-| `key` | string | Yes | The `key` of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9`, and `_` are allowed |
-| `value` | string | Yes | The `value` of a variable |
-| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
-| `protected` | boolean | No | Whether the variable is protected |
-| `masked` | boolean | No | Whether the variable is masked |
-| `raw` | boolean | No | Whether the variable is treated as a raw string. Default: `false`. When `true`, variables in the value are not [expanded](../ci/variables/index.md#prevent-cicd-variable-expansion). |
+| Attribute | Type | Required | Description |
+|---------------------------------------|----------------|----------|-------------|
+| `id` | integer/string | Yes | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) |
+| `key` | string | Yes | The `key` of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9`, and `_` are allowed |
+| `value` | string | Yes | The `value` of a variable |
+| `description` | string | No | The `description` of the variable. Default: `null` |
| `environment_scope` **(PREMIUM ALL)** | string | No | The [environment scope](../ci/environments/index.md#limit-the-environment-scope-of-a-cicd-variable) of a variable |
-| `description` | string | No | The `description` of the variable. Default: `null` |
+| `masked` | boolean | No | Whether the variable is masked |
+| `protected` | boolean | No | Whether the variable is protected |
+| `raw` | boolean | No | Whether the variable is treated as a raw string. Default: `false`. When `true`, variables in the value are not [expanded](../ci/variables/index.md#prevent-cicd-variable-expansion). |
+| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
@@ -117,23 +121,27 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
## Update variable
-Update a group's variable.
+> The `filter` parameter was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/340185) in GitLab 16.9.
+
+Update a group's variable. If there are multiple variables with the same key,
+use `filter` to select the correct `environment_scope`.
```plaintext
PUT /groups/:id/variables/:key
```
-| Attribute | Type | Required | Description |
-|-----------------------------------|----------------|----------|-------------|
-| `id` | integer/string | Yes | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) |
-| `key` | string | Yes | The `key` of a variable |
-| `value` | string | Yes | The `value` of a variable |
-| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
-| `protected` | boolean | No | Whether the variable is protected |
-| `masked` | boolean | No | Whether the variable is masked |
-| `raw` | boolean | No | Whether the variable is treated as a raw string. Default: `false`. When `true`, variables in the value are not [expanded](../ci/variables/index.md#prevent-cicd-variable-expansion). |
+| Attribute | Type | Required | Description |
+|---------------------------------------|----------------|----------|-------------|
+| `id` | integer/string | Yes | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) |
+| `key` | string | Yes | The `key` of a variable |
+| `value` | string | Yes | The `value` of a variable |
+| `description` | string | No | The description of the variable. Default: `null`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/409641) in GitLab 16.2. |
| `environment_scope` **(PREMIUM ALL)** | string | No | The [environment scope](../ci/environments/index.md#limit-the-environment-scope-of-a-cicd-variable) of a variable |
-| `description` | string | No | The description of the variable. Default: `null`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/409641) in GitLab 16.2. |
+| `filter` | hash | No | Available filters: `[environment_scope]`. See the [`filter` parameter details](#the-filter-parameter). |
+| `masked` | boolean | No | Whether the variable is masked |
+| `protected` | boolean | No | Whether the variable is protected |
+| `raw` | boolean | No | Whether the variable is treated as a raw string. Default: `false`. When `true`, variables in the value are not [expanded](../ci/variables/index.md#prevent-cicd-variable-expansion). |
+| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
```shell
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
@@ -155,7 +163,10 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
## Remove variable
-Remove a group's variable.
+> The `filter` parameter was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/340185) in GitLab 16.9.
+
+Remove a group's variable. If there are multiple variables with the same key,
+use `filter` to select the correct `environment_scope`.
```plaintext
DELETE /groups/:id/variables/:key
@@ -163,10 +174,47 @@ DELETE /groups/:id/variables/:key
| Attribute | Type | Required | Description |
|-----------|----------------|----------|-------------|
-| `id` | integer/string | Yes | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) |
+| `id` | integer/string | Yes | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) |
| `key` | string | Yes | The `key` of a variable |
+| `filter` | hash | No | Available filters: `[environment_scope]`. See the [`filter` parameter details](#the-filter-parameter). |
```shell
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/groups/1/variables/VARIABLE_1"
```
+
+## The `filter` parameter **(PREMIUM ALL)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/340185) in GitLab 16.9.
+
+When multiple variables have the same `key`, [GET](#show-variable-details), [PUT](#update-variable),
+or [DELETE](#remove-variable) requests might return:
+
+```plaintext
+There are multiple variables with provided parameters. Please use 'filter[environment_scope]'.
+```
+
+Use `filter[environment_scope]` to select the variable with the matching `environment_scope` attribute.
+
+For example:
+
+- GET:
+
+ ```shell
+ curl --globoff --header "PRIVATE-TOKEN: <your_access_token>" \
+ "https://gitlab.example.com/api/v4/groups/1/variables/SCOPED_VARIABLE_1?filter[environment_scope]=production"
+ ```
+
+- PUT:
+
+ ```shell
+ curl --request PUT --globoff --header "PRIVATE-TOKEN: <your_access_token>" \
+ "https://gitlab.example.com/api/v4/groups/1/variables/SCOPED_VARIABLE_1?value=scoped-variable-updated-value&environment_scope=production&filter[environment_scope]=production"
+ ```
+
+- DELETE:
+
+ ```shell
+ curl --request DELETE --globoff --header "PRIVATE-TOKEN: <your_access_token>" \
+ "https://gitlab.example.com/api/v4/groups/1/variables/SCOPED_VARIABLE_1?filter[environment_scope]=production"
+ ```
diff --git a/doc/api/group_relations_export.md b/doc/api/group_relations_export.md
index e1c0cd81bd6..bd48fb13ec6 100644
--- a/doc/api/group_relations_export.md
+++ b/doc/api/group_relations_export.md
@@ -13,7 +13,7 @@ top-level
relation (for example, milestones, boards, and labels).
The group relations export API is primarily used in
-[group migration by direct transfer](../user/group/import/index.md#migrate-groups-by-direct-transfer-recommended)
+[group migration by direct transfer](../user/group/import/index.md)
and
can't be used with the [group import and export API](group_import_export.md).
diff --git a/doc/api/groups.md b/doc/api/groups.md
index 2dbfb5a4937..90820727040 100644
--- a/doc/api/groups.md
+++ b/doc/api/groups.md
@@ -147,7 +147,7 @@ If you request this list as:
- An unauthenticated user, the response returns only public groups.
- An authenticated user, the response returns only the groups you're
-a member of and does not include public groups.
+ a member of and does not include public groups.
Parameters:
@@ -306,7 +306,7 @@ Parameters:
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user |
| `archived` | boolean | no | Limit by archived status |
| `visibility` | string | no | Limit by visibility `public`, `internal`, or `private` |
-| `order_by` | string | no | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, `similarity` (1), or `last_activity_at` fields. Default is `created_at` |
+| `order_by` | string | no | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, `similarity` <sup>1</sup>, or `last_activity_at` fields. Default is `created_at` |
| `sort` | string | no | Return projects sorted in `asc` or `desc` order. Default is `desc` |
| `search` | string | no | Return list of authorized projects matching the search criteria |
| `simple` | boolean | no | Return only limited fields for each project. This is a no-op without authentication where only simple fields are returned. |
@@ -316,14 +316,18 @@ Parameters:
| `with_issues_enabled` | boolean | no | Limit by projects with issues feature enabled. Default is `false` |
| `with_merge_requests_enabled` | boolean | no | Limit by projects with merge requests feature enabled. Default is `false` |
| `with_shared` | boolean | no | Include projects shared to this group. Default is `true` |
-| `include_subgroups` | boolean | no | Include projects in subgroups of this group. Default is `false` |
+| `include_subgroups` | boolean | no | Include projects in subgroups of this group. Default is `false` |
| `min_access_level` | integer | no | Limit to projects where current user has at least this [role (`access_level`)](members.md#roles) |
| `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (administrators only) |
-| `with_security_reports` **(ULTIMATE ALL)** | boolean | no | Return only projects that have security reports artifacts present in any of their builds. This means "projects with security reports enabled". Default is `false` |
+| `with_security_reports` **(ULTIMATE ALL)** | boolean | no | Return only projects that have security reports artifacts present in any of their builds. This means "projects with security reports enabled". Default is `false` |
-1. Order by similarity: Orders the results by a similarity score calculated from the provided `search`
-URL parameter. When using `order_by=similarity`, the `sort` parameter is ignored. When the `search`
-parameter is not provided, the API returns the projects ordered by `name`.
+<html>
+<small>Footnotes:
+ <ol>
+ <li>Order by similarity: Orders the results by a similarity score calculated from the provided `search` URL parameter. When using `order_by=similarity`, the `sort` parameter is ignored. When the `search` parameter is not provided, the API returns the projects ordered by `name`.</li>
+ </ol>
+</small>
+</html>
Example response:
@@ -816,30 +820,32 @@ POST /groups
Parameters:
-| Attribute | Type | Required | Description |
-| ------------------------------------------------------- | ------- | -------- | ----------- |
-| `name` | string | yes | The name of the group. |
-| `path` | string | yes | The path of the group. |
-| `auto_devops_enabled` | boolean | no | Default to Auto DevOps pipeline for all projects within this group. |
-| `avatar` | mixed | no | Image file for avatar of the group. [Introduced in GitLab 12.9](https://gitlab.com/gitlab-org/gitlab/-/issues/36681) |
-| `default_branch_protection` | integer | no | See [Options for `default_branch_protection`](#options-for-default_branch_protection). Default to the global level default branch protection setting. |
-| `description` | string | no | The group's description. |
-| `emails_disabled` | boolean | no | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127899) in GitLab 16.5.)_ Disable email notifications. Use `emails_enabled` instead. |
-| `emails_enabled` | boolean | no | Enable email notifications. |
-| `lfs_enabled` | boolean | no | Enable/disable Large File Storage (LFS) for the projects in this group. |
-| `mentions_disabled` | boolean | no | Disable the capability of a group from getting mentioned. |
-| `parent_id` | integer | no | The parent group ID for creating nested group. |
+| Attribute | Type | Required | Description |
+| ------------------------------------------------------- | ------- | -------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `name` | string | yes | The name of the group. |
+| `path` | string | yes | The path of the group. |
+| `auto_devops_enabled` | boolean | no | Default to Auto DevOps pipeline for all projects within this group. |
+| `avatar` | mixed | no | Image file for avatar of the group. [Introduced in GitLab 12.9](https://gitlab.com/gitlab-org/gitlab/-/issues/36681) |
+| `default_branch_protection` | integer | no | See [Options for `default_branch_protection`](#options-for-default_branch_protection). Default to the global level default branch protection setting. |
+| `default_branch_protection_defaults` | hash | no | See [Options for `default_branch_protection_defaults`](#options-for-default_branch_protection_defaults). |
+| `description` | string | no | The group's description. |
+| `emails_disabled` | boolean | no | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127899) in GitLab 16.5.)_ Disable email notifications. Use `emails_enabled` instead. |
+| `emails_enabled` | boolean | no | Enable email notifications. |
+| `lfs_enabled` | boolean | no | Enable/disable Large File Storage (LFS) for the projects in this group. |
+| `mentions_disabled` | boolean | no | Disable the capability of a group from getting mentioned. |
+| `organization_id` | integer | no | The organization ID for the group. |
+| `parent_id` | integer | no | The parent group ID for creating nested group. |
| `project_creation_level` | string | no | Determine if developers can create projects in the group. Can be `noone` (No one), `maintainer` (users with the Maintainer role), or `developer` (users with the Developer or Maintainer role). |
-| `request_access_enabled` | boolean | no | Allow users to request member access. |
-| `require_two_factor_authentication` | boolean | no | Require all users in this group to setup Two-factor authentication. |
-| `share_with_group_lock` | boolean | no | Prevent sharing a project with another group within this group. |
-| `subgroup_creation_level` | string | no | Allowed to [create subgroups](../user/group/subgroups/index.md#create-a-subgroup). Can be `owner` (Owners), or `maintainer` (users with the Maintainer role). |
-| `two_factor_grace_period` | integer | no | Time before Two-factor authentication is enforced (in hours). |
-| `visibility` | string | no | The group's visibility. Can be `private`, `internal`, or `public`. |
-| `membership_lock` **(PREMIUM ALL)** | boolean | no | Users cannot be added to projects in this group. |
-| `extra_shared_runners_minutes_limit` **(PREMIUM SELF)** | integer | no | Can be set by administrators only. Additional compute minutes for this group. |
-| `shared_runners_minutes_limit` **(PREMIUM SELF)** | integer | no | Can be set by administrators only. Maximum number of monthly compute minutes for this group. Can be `nil` (default; inherit system default), `0` (unlimited), or `> 0`. |
-| `wiki_access_level` **(PREMIUM ALL)** | string | no | The wiki access level. Can be `disabled`, `private`, or `enabled`. |
+| `request_access_enabled` | boolean | no | Allow users to request member access. |
+| `require_two_factor_authentication` | boolean | no | Require all users in this group to setup Two-factor authentication. |
+| `share_with_group_lock` | boolean | no | Prevent sharing a project with another group within this group. |
+| `subgroup_creation_level` | string | no | Allowed to [create subgroups](../user/group/subgroups/index.md#create-a-subgroup). Can be `owner` (Owners), or `maintainer` (users with the Maintainer role). |
+| `two_factor_grace_period` | integer | no | Time before Two-factor authentication is enforced (in hours). |
+| `visibility` | string | no | The group's visibility. Can be `private`, `internal`, or `public`. |
+| `membership_lock` **(PREMIUM ALL)** | boolean | no | Users cannot be added to projects in this group. |
+| `extra_shared_runners_minutes_limit` **(PREMIUM SELF)** | integer | no | Can be set by administrators only. Additional compute minutes for this group. |
+| `shared_runners_minutes_limit` **(PREMIUM SELF)** | integer | no | Can be set by administrators only. Maximum number of monthly compute minutes for this group. Can be `nil` (default; inherit system default), `0` (unlimited), or `> 0`. |
+| `wiki_access_level` **(PREMIUM ALL)** | string | no | The wiki access level. Can be `disabled`, `private`, or `enabled`. |
### Options for `default_branch_protection`
@@ -853,6 +859,18 @@ The `default_branch_protection` attribute determines whether users with the Deve
| `3` | Protected against pushes. Users with the Maintainer role can: <br>- Push new commits<br>- Force push changes<br>- Accept merge requests<br>Users with the Developer role can:<br>- Accept merge requests|
| `4` | Full protection after initial push. User with the Developer role can: <br>- Push commit to empty repository.<br> Users with the Maintainer role can: <br>- Push new commits<br>- Accept merge requests|
+### Options for `default_branch_protection_defaults`
+
+The `default_branch_protection_defaults` attribute describes the default branch
+protection defaults. All parameters are optional.
+
+| Key | Type | Description |
+|------------------------------|---------|-----------------------------------------------------------------------------------------|
+| `allowed_to_push` | array | An array of access levels allowed to push. Supports Developer (30) or Maintainer (40). |
+| `allow_force_push` | boolean | Allow force push for all users with push access. |
+| `allowed_to_merge` | array | An array of access levels allowed to merge. Supports Developer (30) or Maintainer (40). |
+| `developer_can_initial_push` | boolean | Allow developers to initial push. |
+
## New Subgroup
This is similar to creating a [New group](#new-group). You need the `parent_id` from the [List groups](#list-groups) call. You can then enter the desired:
@@ -981,6 +999,7 @@ PUT /groups/:id
| `auto_devops_enabled` | boolean | no | Default to Auto DevOps pipeline for all projects within this group. |
| `avatar` | mixed | no | Image file for avatar of the group. [Introduced in GitLab 12.9](https://gitlab.com/gitlab-org/gitlab/-/issues/36681) |
| `default_branch_protection` | integer | no | See [Options for `default_branch_protection`](#options-for-default_branch_protection). |
+| `default_branch_protection_defaults` | hash | no | See [Options for `default_branch_protection_defaults`](#options-for-default_branch_protection_defaults). |
| `description` | string | no | The description of the group. |
| `emails_disabled` | boolean | no | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127899) in GitLab 16.5.)_ Disable email notifications. Use `emails_enabled` instead. |
| `emails_enabled` | boolean | no | Enable email notifications. |
@@ -1689,6 +1708,7 @@ To delete the LDAP group link, provide either a `cn` or a `filter`, but not both
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/290367) in GitLab 15.3.0.
> - `access_level` type [changed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95607) from `string` to `integer` in GitLab 15.3.3.
> - `member_role_id` type [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/417201) in GitLab 16.7 [with a flag](../administration/feature_flags.md) named `custom_roles_for_saml_group_links`. Disabled by default.
+> - `member_role_id` type [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/417201) in GitLab 16.8. Feature flag `custom_roles_for_saml_group_links` removed.
List, get, add, and delete SAML group links.
diff --git a/doc/api/instance_level_ci_variables.md b/doc/api/instance_level_ci_variables.md
index a4018a46525..466479e0cdb 100644
--- a/doc/api/instance_level_ci_variables.md
+++ b/doc/api/instance_level_ci_variables.md
@@ -22,6 +22,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a
[
{
"key": "TEST_VARIABLE_1",
+ "description": null,
"variable_type": "env_var",
"value": "TEST_1",
"protected": false,
@@ -30,6 +31,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a
},
{
"key": "TEST_VARIABLE_2",
+ "description": null,
"variable_type": "env_var",
"value": "TEST_2",
"protected": false,
@@ -58,6 +60,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a
```json
{
"key": "TEST_VARIABLE_1",
+ "description": null,
"variable_type": "env_var",
"value": "TEST_1",
"protected": false,
@@ -93,6 +96,7 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
```json
{
"key": "NEW_VARIABLE",
+ "description": null,
"value": "new value",
"variable_type": "env_var",
"protected": false,
@@ -126,6 +130,7 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
```json
{
"key": "NEW_VARIABLE",
+ "description": null,
"value": "updated value",
"variable_type": "env_var",
"protected": true,
diff --git a/doc/api/integrations.md b/doc/api/integrations.md
index f713d845762..3e2286fa0a5 100644
--- a/doc/api/integrations.md
+++ b/doc/api/integrations.md
@@ -98,17 +98,17 @@ Parameters:
| `app_store_private_key` | string | true | Apple App Store Connect private key. |
| `app_store_protected_refs` | boolean | false | Set variables on protected branches and tags only. |
-### Disable Apple App Store
+### Disable Apple App Store Connect
-Disable the Apple App Store integration for a project. Integration settings are reset.
+Disable the Apple App Store Connect integration for a project. Integration settings are reset.
```plaintext
DELETE /projects/:id/integrations/apple_app_store
```
-### Get Apple App Store settings
+### Get Apple App Store Connect settings
-Get the Apple App Store integration settings for a project.
+Get the Apple App Store Connect integration settings for a project.
```plaintext
GET /projects/:id/integrations/apple_app_store
@@ -198,8 +198,8 @@ Parameters:
| --------- | ---- | -------- | ----------- |
| `bamboo_url` | string | true | Bamboo root URL (for example, `https://bamboo.example.com`). |
| `enable_ssl_verification` | boolean | false | Enable SSL verification. Defaults to `true` (enabled). |
-| `build_key` | string | true | Bamboo build plan key like `KEY`. |
-| `username` | string | true | A user with API access, if applicable. |
+| `build_key` | string | true | Bamboo build plan key (for example, `KEY`). |
+| `username` | string | true | User with API access to the Bamboo server. |
| `password` | string | true | Password of the user. |
### Disable Atlassian Bamboo
@@ -232,9 +232,9 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `new_issue_url` | string | true | New issue URL. |
-| `issues_url` | string | true | Issue URL. |
-| `project_url` | string | true | Project URL. |
+| `new_issue_url` | string | true | URL of the new issue. |
+| `issues_url` | string | true | URL of the issue. |
+| `project_url` | string | true | URL of the project. |
### Disable Bugzilla
@@ -303,9 +303,9 @@ Parameters:
| Parameter | Type | Required | Description |
|---------------|---------|----------|---------------------------------------------------------------------------------------------|
-| `token` | string | true | Campfire API token. To find it, sign in to Campfire and select **My info**. |
-| `subdomain` | string | false | Campfire subdomain. Text between `https://` and `.campfirenow.com` when you're logged in. |
-| `room` | string | false | Campfire room. The last part of the URL when you're in a room. |
+| `token` | string | true | API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**. |
+| `subdomain` | string | false | `.campfirenow.com` subdomain when you're signed in. |
+| `room` | string | false | ID portion of the Campfire room URL. |
### Disable Campfire
@@ -339,8 +339,8 @@ Parameters:
| Parameter | Type | Required | Description |
| ------------- | ------ | -------- | -------------- |
-| `issues_url` | string | true | Issue URL. |
-| `project_url` | string | true | Project URL. |
+| `issues_url` | string | true | URL of the issue. |
+| `project_url` | string | true | URL of the project. |
### Disable ClickUp
@@ -372,7 +372,7 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `confluence_url` | string | true | The URL of the Confluence Workspace hosted on `atlassian.net`. |
+| `confluence_url` | string | true | URL of the Confluence Workspace hosted on `atlassian.net`. |
### Disable Confluence Workspace
@@ -404,9 +404,9 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `new_issue_url` | string | true | New issue URL. |
-| `issues_url` | string | true | Issue URL. |
-| `project_url` | string | true | Project URL. |
+| `new_issue_url` | string | true | URL of the new issue. |
+| `issues_url` | string | true | URL of the issue. |
+| `project_url` | string | true | URL of the project. |
### Disable a custom issue tracker
@@ -462,6 +462,40 @@ Get the Datadog integration settings for a project.
GET /projects/:id/integrations/datadog
```
+## Diffblue Cover
+
+### Set up Diffblue Cover
+
+Set up the Diffblue Cover integration for a project.
+
+```plaintext
+PUT /projects/:id/integrations/diffblue-cover
+```
+
+Parameters:
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `diffblue_license_key` | string | true | Diffblue Cover license key. |
+| `diffblue_access_token_name` | string | true | Access token name used by Diffblue Cover in pipelines. |
+| `diffblue_access_token_secret` | string | true | Access token secret used by Diffblue Cover in pipelines. |
+
+### Disable Diffblue Cover
+
+Disable the Diffblue Cover integration for a project. Integration settings are reset.
+
+```plaintext
+DELETE /projects/:id/integrations/diffblue-cover
+```
+
+### Get Diffblue Cover settings
+
+Get the Diffblue Cover integration settings for a project.
+
+```plaintext
+GET /projects/:id/integrations/diffblue-cover
+```
+
## Discord Notifications
### Set up Discord Notifications
@@ -478,7 +512,7 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `webhook` | string | true | Discord webhook (for example, `https://discord.com/api/webhooks/…`). |
+| `webhook` | string | true | Discord webhook (for example, `https://discord.com/api/webhooks/...`). |
| `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. |
| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. |
| `confidential_issue_channel` | string | false | The webhook override to receive notifications for confidential issue events. |
@@ -610,9 +644,9 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `new_issue_url` | string | true | The URL to create an issue in EWM. |
-| `project_url` | string | true | The URL to the project in EWM. |
-| `issues_url` | string | true | The URL to view an issue in EWM. Must contain `:id`. |
+| `new_issue_url` | string | true | URL of the new issue. |
+| `project_url` | string | true | URL of the project. |
+| `issues_url` | string | true | URL of the issue. |
### Disable EWM
@@ -644,7 +678,7 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `external_wiki_url` | string | true | The URL of the external wiki. |
+| `external_wiki_url` | string | true | URL of the external wiki. |
### Disable an external wiki
@@ -696,111 +730,118 @@ Get the GitHub integration settings for a project.
GET /projects/:id/integrations/github
```
-## GitLab for Slack app
+## Google Chat
-### Set up the GitLab for Slack app
+### Set up Google Chat
-Set up the GitLab for Slack app for a project.
+Set up the Google Chat integration for a project.
```plaintext
-PUT /projects/:id/integrations/slack
+PUT /projects/:id/integrations/hangouts-chat
```
Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `webhook` | string | true | `https://hooks.slack.com/services/...`. |
-| `username` | string | false | username. |
-| `channel` | string | false | Default channel to use if others are not configured. |
+| `webhook` | string | true | The Hangouts Chat webhook (for example, `https://chat.googleapis.com/v1/spaces...`). |
| `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. |
| `notify_only_default_branch` | boolean | false | **Deprecated:** This parameter has been replaced with `branches_to_be_notified`. |
| `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. |
-| `alert_channel` | string | false | The name of the channel to receive notifications for alert events. |
-| `alert_events` | boolean | false | Enable notifications for alert events. |
-| `commit_events` | boolean | false | Enable notifications for commit events. |
-| `confidential_issue_channel` | string | false | The name of the channel to receive notifications for confidential issue events. |
-| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. |
-| `confidential_note_channel` | string | false | The name of the channel to receive notifications for confidential note events. |
-| `confidential_note_events` | boolean | false | Enable notifications for confidential note events. |
-| `deployment_channel` | string | false | The name of the channel to receive notifications for deployment events. |
-| `deployment_events` | boolean | false | Enable notifications for deployment events. |
-| `incident_channel` | string | false | The name of the channel to receive notifications for incident events. |
-| `incidents_events` | boolean | false | Enable notifications for incident events. |
-| `issue_channel` | string | false | The name of the channel to receive notifications for issue events. |
+| `push_events` | boolean | false | Enable notifications for push events. |
| `issues_events` | boolean | false | Enable notifications for issue events. |
-| `job_events` | boolean | false | Enable notifications for job events. |
-| `merge_request_channel` | string | false | The name of the channel to receive notifications for merge request events. |
+| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. |
| `merge_requests_events` | boolean | false | Enable notifications for merge request events. |
-| `note_channel` | string | false | The name of the channel to receive notifications for note events. |
+| `tag_push_events` | boolean | false | Enable notifications for tag push events. |
| `note_events` | boolean | false | Enable notifications for note events. |
-| `pipeline_channel` | string | false | The name of the channel to receive notifications for pipeline events. |
+| `confidential_note_events` | boolean | false | Enable notifications for confidential note events. |
| `pipeline_events` | boolean | false | Enable notifications for pipeline events. |
-| `push_channel` | string | false | The name of the channel to receive notifications for push events. |
-| `push_events` | boolean | false | Enable notifications for push events. |
-| `tag_push_channel` | string | false | The name of the channel to receive notifications for tag push events. |
-| `tag_push_events` | boolean | false | Enable notifications for tag push events. |
-| `wiki_page_channel` | string | false | The name of the channel to receive notifications for wiki page events. |
| `wiki_page_events` | boolean | false | Enable notifications for wiki page events. |
-### Disable the GitLab for Slack app
+### Disable Google Chat
-Disable the GitLab for Slack app for a project. Integration settings are reset.
+Disable the Google Chat integration for a project. Integration settings are reset.
```plaintext
-DELETE /projects/:id/integrations/slack
+DELETE /projects/:id/integrations/hangouts-chat
```
-### Get the GitLab for Slack app settings
+### Get Google Chat settings
-Get the GitLab for Slack app settings for a project.
+Get the Google Chat integration settings for a project.
```plaintext
-GET /projects/:id/integrations/slack
+GET /projects/:id/integrations/hangouts-chat
```
-## Google Chat
+## Google Play
-### Set up Google Chat
+### Set up Google Play
-Set up the Google Chat integration for a project.
+Set up the Google Play integration for a project.
```plaintext
-PUT /projects/:id/integrations/hangouts-chat
+PUT /projects/:id/integrations/google-play
```
Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `webhook` | string | true | The Hangouts Chat webhook (for example, `https://chat.googleapis.com/v1/spaces...`). |
-| `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. |
-| `notify_only_default_branch` | boolean | false | **Deprecated:** This parameter has been replaced with `branches_to_be_notified`. |
-| `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. |
-| `push_events` | boolean | false | Enable notifications for push events. |
-| `issues_events` | boolean | false | Enable notifications for issue events. |
-| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. |
-| `merge_requests_events` | boolean | false | Enable notifications for merge request events. |
-| `tag_push_events` | boolean | false | Enable notifications for tag push events. |
-| `note_events` | boolean | false | Enable notifications for note events. |
-| `confidential_note_events` | boolean | false | Enable notifications for confidential note events. |
-| `pipeline_events` | boolean | false | Enable notifications for pipeline events. |
-| `wiki_page_events` | boolean | false | Enable notifications for wiki page events. |
+| `package_name` | string | true | Package name of the app in Google Play. |
+| `service_account_key` | string | true | Google Play service account key. |
+| `service_account_key_file_name` | string | true | File name of the Google Play service account key. |
+| `google_play_protected_refs` | boolean | false | Set variables on protected branches and tags only. |
-### Disable Google Chat
+### Disable Google Play
-Disable the Google Chat integration for a project. Integration settings are reset.
+Disable the Google Play integration for a project. Integration settings are reset.
```plaintext
-DELETE /projects/:id/integrations/hangouts-chat
+DELETE /projects/:id/integrations/google-play
```
-### Get Google Chat settings
+### Get Google Play settings
-Get the Google Chat integration settings for a project.
+Get the Google Play integration settings for a project.
```plaintext
-GET /projects/:id/integrations/hangouts-chat
+GET /projects/:id/integrations/google-play
+```
+
+## Harbor
+
+### Set up Harbor
+
+Set up the Harbor integration for a project.
+
+```plaintext
+PUT /projects/:id/integrations/harbor
+```
+
+Parameters:
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `url` | string | true | The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`. |
+| `project_name` | string | true | The name of the project in the Harbor instance. For example, `testproject`. |
+| `username` | string | true | The username created in the Harbor interface. |
+| `password` | string | true | The password of the user. |
+
+### Disable Harbor
+
+Disable the Harbor integration for a project. Integration settings are reset.
+
+```plaintext
+DELETE /projects/:id/integrations/harbor
+```
+
+### Get Harbor settings
+
+Get the Harbor integration settings for a project.
+
+```plaintext
+GET /projects/:id/integrations/harbor
```
## irker (IRC gateway)
@@ -977,12 +1018,14 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `webhook` | string | true | The Mattermost webhook (for example, `http://mattermost_host/hooks/...`). |
-| `username` | string | false | username. |
-| `channel` | string | false | Default channel to use if others are not configured. |
+| `webhook` | string | true | Mattermost notifications webhook (for example, `http://mattermost.example.com/hooks/...`). |
+| `username` | string | false | Mattermost notifications username. |
+| `channel` | string | false | Default channel to use if no other channel is configured. |
| `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. |
| `notify_only_default_branch` | boolean | false | **Deprecated:** This parameter has been replaced with `branches_to_be_notified`. |
| `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. |
+| `labels_to_be_notified` | string | false | Labels to send notifications for. Leave blank to receive notifications for all events. |
+| `labels_to_be_notified_behavior` | string | false | Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`. |
| `push_events` | boolean | false | Enable notifications for push events. |
| `issues_events` | boolean | false | Enable notifications for issue events. |
| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. |
@@ -1329,9 +1372,9 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `new_issue_url` | string | true | New issue URL. |
-| `project_url` | string | true | Project URL. |
-| `issues_url` | string | true | Issue URL. |
+| `new_issue_url` | string | true | URL of the new issue. |
+| `project_url` | string | true | URL of the project. |
+| `issues_url` | string | true | URL of the issue. |
### Disable Redmine
@@ -1349,6 +1392,71 @@ Get the Redmine integration settings for a project.
GET /projects/:id/integrations/redmine
```
+## Slack notifications
+
+### Set up Slack notifications
+
+Set up Slack notifications for a project.
+
+```plaintext
+PUT /projects/:id/integrations/slack
+```
+
+Parameters:
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `webhook` | string | true | Slack notifications webhook (for example, `https://hooks.slack.com/services/...`). |
+| `username` | string | false | Slack notifications username. |
+| `channel` | string | false | Default channel to use if no other channel is configured. |
+| `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. |
+| `notify_only_default_branch` | boolean | false | **Deprecated:** This parameter has been replaced with `branches_to_be_notified`. |
+| `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. |
+| `labels_to_be_notified` | string | false | Labels to send notifications for. Leave blank to receive notifications for all events. |
+| `labels_to_be_notified_behavior` | string | false | Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`. |
+| `alert_channel` | string | false | The name of the channel to receive notifications for alert events. |
+| `alert_events` | boolean | false | Enable notifications for alert events. |
+| `commit_events` | boolean | false | Enable notifications for commit events. |
+| `confidential_issue_channel` | string | false | The name of the channel to receive notifications for confidential issue events. |
+| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. |
+| `confidential_note_channel` | string | false | The name of the channel to receive notifications for confidential note events. |
+| `confidential_note_events` | boolean | false | Enable notifications for confidential note events. |
+| `deployment_channel` | string | false | The name of the channel to receive notifications for deployment events. |
+| `deployment_events` | boolean | false | Enable notifications for deployment events. |
+| `incident_channel` | string | false | The name of the channel to receive notifications for incident events. |
+| `incidents_events` | boolean | false | Enable notifications for incident events. |
+| `issue_channel` | string | false | The name of the channel to receive notifications for issue events. |
+| `issues_events` | boolean | false | Enable notifications for issue events. |
+| `job_events` | boolean | false | Enable notifications for job events. |
+| `merge_request_channel` | string | false | The name of the channel to receive notifications for merge request events. |
+| `merge_requests_events` | boolean | false | Enable notifications for merge request events. |
+| `note_channel` | string | false | The name of the channel to receive notifications for note events. |
+| `note_events` | boolean | false | Enable notifications for note events. |
+| `pipeline_channel` | string | false | The name of the channel to receive notifications for pipeline events. |
+| `pipeline_events` | boolean | false | Enable notifications for pipeline events. |
+| `push_channel` | string | false | The name of the channel to receive notifications for push events. |
+| `push_events` | boolean | false | Enable notifications for push events. |
+| `tag_push_channel` | string | false | The name of the channel to receive notifications for tag push events. |
+| `tag_push_events` | boolean | false | Enable notifications for tag push events. |
+| `wiki_page_channel` | string | false | The name of the channel to receive notifications for wiki page events. |
+| `wiki_page_events` | boolean | false | Enable notifications for wiki page events. |
+
+### Disable Slack notifications
+
+Disable Slack notifications for a project. Integration settings are reset.
+
+```plaintext
+DELETE /projects/:id/integrations/slack
+```
+
+### Get Slack notifications settings
+
+Get the Slack notifications settings for a project.
+
+```plaintext
+GET /projects/:id/integrations/slack
+```
+
## Slack slash commands
### Set up Slack slash commands
@@ -1423,7 +1531,7 @@ Parameters:
| Parameter | Type | Required | Description |
|-------------------------|--------|----------|-------------------------------|
| `url` | string | yes | URL of the Squash TM webhook. |
-| `token` | string | no | Optional token. |
+| `token` | string | no | Secret token. |
### Disable Squash TM
@@ -1585,8 +1693,8 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `issues_url` | string | true | Issue URL. |
-| `project_url` | string | true | Project URL. |
+| `issues_url` | string | true | URL of the issue. |
+| `project_url` | string | true | URL of the project. |
### Disable YouTrack
diff --git a/doc/api/issues.md b/doc/api/issues.md
index b2c6f0cb739..3c4ad7b6685 100644
--- a/doc/api/issues.md
+++ b/doc/api/issues.md
@@ -2020,7 +2020,8 @@ The `assignee` column is deprecated. We now show it as a single-sized array `ass
Promotes an issue to an epic by adding a comment with the `/promote`
[quick action](../user/project/quick_actions.md).
-For more information about promoting issues to epics, see [Manage epics](../user/group/epics/manage_epics.md#promote-an-issue-to-an-epic).
+For more information about promoting issues to epics, see
+[Promote an issue to an epic](../user/project/issues/managing_issues.md#promote-an-issue-to-an-epic).
```plaintext
POST /projects/:id/issues/:issue_iid/notes
diff --git a/doc/api/job_artifacts.md b/doc/api/job_artifacts.md
index 31a72c44d02..c7f0dfc28a1 100644
--- a/doc/api/job_artifacts.md
+++ b/doc/api/job_artifacts.md
@@ -24,11 +24,11 @@ as the request might redirect through a CDN.
GET /projects/:id/jobs/:job_id/artifacts
```
-| Attribute | Type | Required | Description |
-|---------------------------|----------------|----------|-------------|
-| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `job_id` | integer | Yes | ID of a job. |
-| `job_token` **(PREMIUM ALL)** | string | No | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. |
+| Attribute | Type | Required | Description |
+|-------------------------------|----------------|----------|-------------|
+| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `job_id` | integer | Yes | ID of a job. |
+| `job_token` **(PREMIUM ALL)** | string | No | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. |
Example request using the `PRIVATE-TOKEN` header:
@@ -65,10 +65,10 @@ Use either:
Possible response status codes:
-| Status | Description |
-|-----------|---------------------------------|
-| 200 | Serves the artifacts file. |
-| 404 | Build not found or no artifacts.|
+| Status | Description |
+|--------|-------------|
+| 200 | Serves the artifacts file. |
+| 404 | Build not found or no artifacts. |
## Download the artifacts archive
@@ -93,12 +93,12 @@ GET /projects/:id/jobs/artifacts/:ref_name/download?job=name
Parameters
-| Attribute | Type | Required | Description |
-|---------------------------|----------------|----------|-------------|
-| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `ref_name` | string | Yes | Branch or tag name in repository. HEAD or SHA references are not supported. |
-| `job` | string | Yes | The name of the job. |
-| `job_token` **(PREMIUM ALL)** | string | No | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. |
+| Attribute | Type | Required | Description |
+|-------------------------------|----------------|----------|-------------|
+| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `job` | string | Yes | The name of the job. |
+| `ref_name` | string | Yes | Branch or tag name in repository. HEAD or SHA references are not supported. |
+| `job_token` **(PREMIUM ALL)** | string | No | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. |
Example request using the `PRIVATE-TOKEN` header:
@@ -136,10 +136,10 @@ Use either:
Possible response status codes:
-| Status | Description |
-|-----------|---------------------------------|
-| 200 | Serves the artifacts file. |
-| 404 | Build not found or no artifacts.|
+| Status | Description |
+|--------|-------------|
+| 200 | Serves the artifacts file. |
+| 404 | Build not found or no artifacts. |
## Download a single artifact file by job ID
@@ -156,12 +156,12 @@ GET /projects/:id/jobs/:job_id/artifacts/*artifact_path
Parameters
-| Attribute | Type | Required | Description |
-|---------------------------|----------------|----------|-------------|
-| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `job_id` | integer | Yes | The unique job identifier. |
-| `artifact_path` | string | Yes | Path to a file inside the artifacts archive. |
-| `job_token` **(PREMIUM ALL)** | string | No | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. |
+| Attribute | Type | Required | Description |
+|-------------------------------|----------------|----------|-------------|
+| `artifact_path` | string | Yes | Path to a file inside the artifacts archive. |
+| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `job_id` | integer | Yes | The unique job identifier. |
+| `job_token` **(PREMIUM ALL)** | string | No | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. |
Example request:
@@ -174,11 +174,11 @@ in a CI/CD job by using a [CI/CD job token](../ci/jobs/ci_job_token.md).
Possible response status codes:
-| Status | Description |
-|-----------|--------------------------------------|
-| 200 | Sends a single artifact file |
-| 400 | Invalid path provided |
-| 404 | Build not found or no file/artifacts |
+| Status | Description |
+|--------|-------------|
+| 200 | Sends a single artifact file |
+| 400 | Invalid path provided |
+| 404 | Build not found or no file/artifacts |
## Download a single artifact file from specific tag or branch
@@ -202,13 +202,13 @@ GET /projects/:id/jobs/artifacts/:ref_name/raw/*artifact_path?job=name
Parameters:
-| Attribute | Type | Required | Description |
-|---------------------------|----------------|----------|-------------|
-| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `ref_name` | string | Yes | Branch or tag name in repository. `HEAD` or `SHA` references are not supported. |
-| `artifact_path` | string | Yes | Path to a file inside the artifacts archive. |
-| `job` | string | Yes | The name of the job. |
-| `job_token` **(PREMIUM ALL)** | string | No | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. |
+| Attribute | Type | Required | Description |
+|-------------------------------|----------------|----------|-------------|
+| `artifact_path` | string | Yes | Path to a file inside the artifacts archive. |
+| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `job` | string | Yes | The name of the job. |
+| `ref_name` | string | Yes | Branch or tag name in repository. `HEAD` or `SHA` references are not supported. |
+| `job_token` **(PREMIUM ALL)** | string | No | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. |
Example request:
@@ -221,11 +221,11 @@ in a CI/CD job by using a [CI/CD job token](../ci/jobs/ci_job_token.md).
Possible response status codes:
-| Status | Description |
-|-----------|--------------------------------------|
-| 200 | Sends a single artifact file |
-| 400 | Invalid path provided |
-| 404 | Build not found or no file/artifacts |
+| Status | Description |
+|--------|-------------|
+| 200 | Sends a single artifact file |
+| 400 | Invalid path provided |
+| 404 | Build not found or no file/artifacts |
## Keep artifacts
diff --git a/doc/api/jobs.md b/doc/api/jobs.md
index 594add64b0a..886f209520d 100644
--- a/doc/api/jobs.md
+++ b/doc/api/jobs.md
@@ -46,6 +46,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2015-12-24T15:51:21.802Z",
"started_at": "2015-12-24T17:54:27.722Z",
@@ -115,6 +116,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2015-12-24T15:51:21.727Z",
"started_at": "2015-12-24T17:54:24.729Z",
@@ -187,8 +189,8 @@ GET /projects/:id/pipelines/:pipeline_id/jobs
|-------------------|--------------------------------|----------|-------------|
| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
| `pipeline_id` | integer | Yes | ID of a pipeline. Can also be obtained in CI jobs via the [predefined CI variable](../ci/variables/predefined_variables.md) `CI_PIPELINE_ID`. |
-| `scope` | string **or** array of strings | No | Scope of jobs to show. Either one of or an array of the following: `created`, `pending`, `running`, `failed`, `success`, `canceled`, `skipped`, `waiting_for_resource`, or `manual`. All jobs are returned if `scope` is not provided. |
| `include_retried` | boolean | No | Include retried jobs in the response. Defaults to `false`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/272627) in GitLab 13.9. |
+| `scope` | string **or** array of strings | No | Scope of jobs to show. Either one of or an array of the following: `created`, `pending`, `running`, `failed`, `success`, `canceled`, `skipped`, `waiting_for_resource`, or `manual`. All jobs are returned if `scope` is not provided. |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/pipelines/6/jobs?scope[]=pending&scope[]=running"
@@ -209,6 +211,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2015-12-24T15:51:21.727Z",
"started_at": "2015-12-24T17:54:24.729Z",
@@ -269,6 +272,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2015-12-24T15:51:21.802Z",
"started_at": "2015-12-24T17:54:27.722Z",
@@ -363,6 +367,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2015-12-24T15:51:21.802Z",
"started_at": "2015-12-24T17:54:27.722Z",
@@ -450,6 +455,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2015-12-24T15:51:21.880Z",
"started_at": "2015-12-24T17:54:30.733Z",
@@ -600,6 +606,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2015-12-24T15:51:21.880Z",
"started_at": "2015-12-24T17:54:30.733Z",
@@ -669,10 +676,10 @@ curl --location --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.ex
Possible response status codes:
-| Status | Description |
-|-----------|-------------------------------|
-| 200 | Serves the log file |
-| 404 | Job not found or no log file |
+| Status | Description |
+|--------|-------------|
+| 200 | Serves the log file |
+| 404 | Job not found or no log file |
## Cancel a job
@@ -705,6 +712,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2016-01-11T10:13:33.506Z",
"started_at": "2016-01-11T10:14:09.526Z",
@@ -759,6 +767,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2016-01-11T10:13:33.506Z",
"started_at": null,
@@ -817,6 +826,7 @@ Example of response
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"download_url": null,
"id": 1,
@@ -899,6 +909,7 @@ Example response:
"title": "Test the CI integration."
},
"coverage": null,
+ "archived": false,
"allow_failure": false,
"created_at": "2016-01-11T10:13:33.506Z",
"started_at": null,
diff --git a/doc/api/member_roles.md b/doc/api/member_roles.md
index 24ac7099004..2bfbc29081f 100644
--- a/doc/api/member_roles.md
+++ b/doc/api/member_roles.md
@@ -17,6 +17,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
> - [Admin group members introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131914) in GitLab 16.5 [with a flag](../administration/feature_flags.md) named `admin_group_member`. Disabled by default. The feature flag has been removed in GitLab 16.6.
> - [Manage project access tokens introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132342) in GitLab 16.5 in [with a flag](../administration/feature_flags.md) named `manage_project_access_tokens`. Disabled by default.
> - [Archive project introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134998) in GitLab 16.7.
+> - [Delete project introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139696) in GitLab 16.8.
+> - [Manage group access tokens introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140115) in GitLab 16.8.
+> - [Admin terraform state introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140759) in GitLab 16.8.
FLAG:
On self-managed GitLab, by default these features are not available. To make them available, an administrator can [enable the feature flags](../administration/feature_flags.md) named `admin_group_member` and `manage_project_access_tokens`.
@@ -44,6 +47,7 @@ If successful, returns [`200`](rest/index.md#status-codes) and the following res
| `[].group_id` | integer | The ID of the group that the member role belongs to. |
| `[].base_access_level` | integer | Base access level for member role. Valid values are 10 (Guest), 20 (Reporter), 30 (Developer), 40 (Maintainer), or 50 (Owner).|
| `[].admin_merge_request` | boolean | Permission to admin project merge requests and enables the ability to `download_code`. |
+| `[].admin_terraform_state` | boolean | Permission to admin project terraform state. |
| `[].admin_vulnerability` | boolean | Permission to admin project vulnerabilities. |
| `[].read_code` | boolean | Permission to read project code. |
| `[].read_dependency` | boolean | Permission to read project dependencies. |
@@ -51,6 +55,8 @@ If successful, returns [`200`](rest/index.md#status-codes) and the following res
| `[].admin_group_member` | boolean | Permission to admin members of a group. |
| `[].manage_project_access_tokens` | boolean | Permission to manage project access tokens. |
| `[].archive_project` | boolean | Permission to archive projects. |
+| `[].remove_project` | boolean | Permission to delete projects. |
+| `[].manage_group_access_tokens` | boolean | Permission to manage group access tokens. |
Example request:
@@ -69,12 +75,15 @@ Example response:
"group_id": 84,
"base_access_level": 10,
"admin_merge_request": false,
+ "admin_terraform_state": false,
"admin_vulnerability": false,
"read_code": true,
"read_dependency": false,
"read_vulnerability": false,
+ "manage_group_access_tokens": false,
"manage_project_access_tokens": false,
- "archive_project": false
+ "archive_project": false,
+ "remove_project": false
},
{
"id": 3,
@@ -82,13 +91,16 @@ Example response:
"description: "Custom guest that read and admin security entities",
"group_id": 84,
"base_access_level": 10,
- "admin_merge_request": false,
"admin_vulnerability": true,
+ "admin_merge_request": false,
+ "admin_terraform_state": false,
"read_code": false,
"read_dependency": true,
"read_vulnerability": true,
+ "manage_group_access_tokens": false,
"manage_project_access_tokens": false,
- "archive_project": false
+ "archive_project": false,
+ "remove_project": false
}
]
```
@@ -112,6 +124,7 @@ To add a member role to a group, the group must be at root-level (have no parent
| `description` | string | no | The description of the member role. |
| `base_access_level` | integer | yes | Base access level for configured role. Valid values are 10 (Guest), 20 (Reporter), 30 (Developer), 40 (Maintainer), or 50 (Owner).|
| `admin_merge_request` | boolean | no | Permission to admin project merge requests. |
+| `admin_terraform_state` | boolean | no | Permission to admin project terraform state. |
| `admin_vulnerability` | boolean | no | Permission to admin project vulnerabilities. |
| `read_code` | boolean | no | Permission to read project code. |
| `read_dependency` | boolean | no | Permission to read project dependencies. |
@@ -127,6 +140,7 @@ If successful, returns [`201`](rest/index.md#status-codes) and the following att
| `group_id` | integer | The ID of the group that the member role belongs to. |
| `base_access_level` | integer | Base access level for member role. |
| `admin_merge_request` | boolean | Permission to admin project merge requests. |
+| `admin_terraform_state` | boolean | Permission to admin project terraform state. |
| `admin_vulnerability` | boolean | Permission to admin project vulnerabilities. |
| `read_code` | boolean | Permission to read project code. |
| `read_dependency` | boolean | Permission to read project dependencies. |
diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md
index a852c7c0b96..1e26a23272d 100644
--- a/doc/api/merge_requests.md
+++ b/doc/api/merge_requests.md
@@ -1107,6 +1107,8 @@ Example response:
## List merge request diffs
+> `generated_file` was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141576) in GitLab 16.9 [with a flag](../administration/feature_flags.md) named `collapse_generated_diff_files`. Disabled by default.
+
List diffs of the files changed in a merge request.
```plaintext
@@ -1136,6 +1138,7 @@ following response attributes:
| `new_file` | boolean | Indicates if the file has just been added. |
| `renamed_file` | boolean | Indicates if the file has been renamed. |
| `deleted_file` | boolean | Indicates if the file has been removed. |
+| `generated_file` | boolean | Indicates if the file is marked as generated. |
Example request:
@@ -1156,7 +1159,8 @@ Example response:
"diff": "@@ -1 +1 @@\ -Title\ +README",
"new_file": false,
"renamed_file": false,
- "deleted_file": false
+ "deleted_file": false,
+ "generated_file": false
},
{
"old_path": "VERSION",
@@ -1166,7 +1170,8 @@ Example response:
"diff": "@@\ -1.9.7\ +1.9.8",
"new_file": false,
"renamed_file": false,
- "deleted_file": false
+ "deleted_file": false,
+ "generated_file": false
}
]
```
@@ -2014,7 +2019,9 @@ This API returns specific HTTP status codes:
| HTTP Status | Message | Reason |
|-------------|--------------------------------------------|--------|
| `202` | *(no message)* | Successfully enqueued. |
-| `403` | <ul><li>`Source branch does not exist`</li><li>`Cannot push to source branch`</li><li>`Source branch is protected from force push`</li></ul> | You don't have permission to push to the merge request's source branch. |
+| `403` | `Cannot push to source branch` | You don't have permission to push to the merge request's source branch. |
+| `403` | `Source branch does not exist` | You don't have permission to push to the merge request's source branch. |
+| `403` | `Source branch is protected from force push` | You don't have permission to push to the merge request's source branch. |
| `409` | `Failed to enqueue the rebase operation` | A long-lived transaction might have blocked your request. |
If the request is enqueued successfully, the response contains:
diff --git a/doc/api/merge_trains.md b/doc/api/merge_trains.md
index dff65e5786b..7fdc145f67d 100644
--- a/doc/api/merge_trains.md
+++ b/doc/api/merge_trains.md
@@ -232,9 +232,9 @@ Supported attributes:
|--------------------------|----------------|----------|-------------|
| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
| `merge_request_iid` | integer | Yes | The internal ID of the merge request. |
-| `when_pipeline_succeeds` | boolean | No | If true, the merge request is added to the merge train when the pipeline succeeds. When false or unspecified, the merge request is added directly to the merge train. |
| `sha` | string | No | If present, the SHA must match the `HEAD` of the source branch, otherwise the merge fails. |
| `squash` | boolean | No | If true, the commits are squashed into a single commit on merge. |
+| `when_pipeline_succeeds` | boolean | No | If true, the merge request is added to the merge train when the pipeline succeeds. When false or unspecified, the merge request is added directly to the merge train. |
Example request:
diff --git a/doc/api/namespaces.md b/doc/api/namespaces.md
index 4e285cde975..6d5e15934e9 100644
--- a/doc/api/namespaces.md
+++ b/doc/api/namespaces.md
@@ -18,6 +18,8 @@ You might also want to view documentation for:
## List namespaces
+> `top_level_only` [introduced](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/7600) in GitLab 16.8.
+
Get a list of the namespaces of the authenticated user. If the user is an
administrator, a list of all namespaces in the GitLab instance is shown.
@@ -25,12 +27,14 @@ administrator, a list of all namespaces in the GitLab instance is shown.
GET /namespaces
GET /namespaces?search=foobar
GET /namespaces?owned_only=true
+GET /namespaces?top_level_only=true
```
-| Attribute | Type | Required | Description |
-| ------------ | ------- | -------- | ----------- |
-| `search` | string | no | Returns a list of namespaces the user is authorized to view based on the search criteria |
-| `owned_only` | boolean | no | In GitLab 14.2 and later, returns a list of owned namespaces only |
+| Attribute | Type | Required | Description |
+| ---------------- | ------- | -------- | ----------- |
+| `search` | string | no | Returns a list of namespaces the user is authorized to view based on the search criteria |
+| `owned_only` | boolean | no | In GitLab 14.2 and later, returns a list of owned namespaces only |
+| `top_level_only` | boolean | no | In GitLab 16.8 and later, returns a list of top level namespaces only |
Example request:
diff --git a/doc/api/oauth2.md b/doc/api/oauth2.md
index 2f8e030374f..71d387f7dd5 100644
--- a/doc/api/oauth2.md
+++ b/doc/api/oauth2.md
@@ -1,6 +1,7 @@
---
stage: Govern
group: Authentication
+description: Third-party authorization to GitLab.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/api/packages/terraform-modules.md b/doc/api/packages/terraform-modules.md
index 3645fc03e9a..079b7652e67 100644
--- a/doc/api/packages/terraform-modules.md
+++ b/doc/api/packages/terraform-modules.md
@@ -208,6 +208,8 @@ X-Terraform-Get: /api/v4/packages/terraform/modules/v1/group/hello-world/local/1
## Download module
+### From a namespace
+
```plaintext
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/file
```
@@ -229,6 +231,29 @@ To write the output to file:
curl --header "Authorization: Bearer <personal_access_token>" "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/file" --output hello-world-local.tgz
```
+### From a project
+
+```plaintext
+GET /projects/:id/packages/terraform/modules/:module_name/:module_system/:module_version
+```
+
+| Attribute | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or URL-encoded path of the project. |
+| `module_name` | string | yes | The module name. |
+| `module_system` | string | yes | The name of the module system or [provider](https://www.terraform.io/registry/providers). |
+| `module_version` | string | no | Specific module version to download. If omitted, the latest version is downloaded. |
+
+```shell
+curl --user "<username>:<personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/terraform/modules/hello-world/local/1.0.0"
+```
+
+To write the output to file:
+
+```shell
+curl --user "<username>:<personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/terraform/modules/hello-world/local/1.0.0" --output hello-world-local.tgz
+```
+
## Upload module
```plaintext
diff --git a/doc/api/pages.md b/doc/api/pages.md
index 69c96f2aeb9..5467b5112df 100644
--- a/doc/api/pages.md
+++ b/doc/api/pages.md
@@ -29,3 +29,70 @@ DELETE /projects/:id/pages
```shell
curl --request 'DELETE' --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/2/pages"
```
+
+## Get pages settings for a project
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/436932) in GitLab 16.8.
+
+Prerequisites:
+
+- You must have at least the Maintainer role for the project.
+
+List Pages settings for the project.
+
+```plaintext
+GET /projects/:id/pages
+```
+
+Supported attributes:
+
+| Attribute | Type | Required | Description |
+| --------- | -------------- | -------- | ---------------------------------------- |
+| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user |
+
+If successful, returns [`200`](rest/index.md#status-codes) and the following
+response attributes:
+
+| Attribute | Type | Description |
+| ----------------------------------------- | ---------- | ----------------------- |
+| `url` | string | URL to access this project pages. |
+| `is_unique_domain_enabled` | boolean | If [unique domain](../user/project/pages/introduction.md) is enabled. |
+| `force_https` | boolean | `true` if the project is set to force HTTPS. |
+| `deployments[]` | array | List of current active deployments. |
+
+| `deployments[]` attribute | Type | Description |
+| ----------------------------------------- | ---------- | ----------------------- |
+| `created_at` | date | Date deployment was created. |
+| `url` | string | URL for this deployment. |
+| `path_prefix` | string | Path prefix of this deployment when using [multiple deployments](../user/project/pages/index.md#create-multiple-deployments). |
+| `root_directory` | string | Root directory. |
+
+Example request:
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/2/pages"
+```
+
+Example response:
+
+```json
+{
+ "url": "http://html-root-4160ce5f0e9a6c90ccb02755b7fc80f5a2a09ffbb1976cf80b653.pages.gdk.test:3010",
+ "is_unique_domain_enabled": true,
+ "force_https": false,
+ "deployments": [
+ {
+ "created_at": "2024-01-05T18:58:14.916Z",
+ "url": "http://html-root-4160ce5f0e9a6c90ccb02755b7fc80f5a2a09ffbb1976cf80b653.pages.gdk.test:3010/",
+ "path_prefix": "",
+ "root_directory": null
+ },
+ {
+ "created_at": "2024-01-05T18:58:46.042Z",
+ "url": "http://html-root-4160ce5f0e9a6c90ccb02755b7fc80f5a2a09ffbb1976cf80b653.pages.gdk.test:3010/mr3",
+ "path_prefix": "mr3",
+ "root_directory": null
+ }
+ ]
+}
+```
diff --git a/doc/api/pipeline_schedules.md b/doc/api/pipeline_schedules.md
index 9992231dc7f..8a2d38a4266 100644
--- a/doc/api/pipeline_schedules.md
+++ b/doc/api/pipeline_schedules.md
@@ -166,12 +166,12 @@ POST /projects/:id/pipeline_schedules
| Attribute | Type | Required | Description |
|-----------------|----------------|----------|-------------|
-| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `cron` | string | Yes | The [cron](https://en.wikipedia.org/wiki/Cron) schedule, for example: `0 1 * * *`. |
| `description` | string | Yes | The description of the pipeline schedule. |
+| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
| `ref` | string | Yes | The branch or tag name that is triggered. |
-| `cron` | string | Yes | The [cron](https://en.wikipedia.org/wiki/Cron) schedule, for example: `0 1 * * *`. |
-| `cron_timezone` | string | No | The time zone supported by `ActiveSupport::TimeZone`, for example: `Pacific Time (US & Canada)` (default: `UTC`). |
| `active` | boolean | No | The activation of pipeline schedule. If false is set, the pipeline schedule is initially deactivated (default: `true`). |
+| `cron_timezone` | string | No | The time zone supported by `ActiveSupport::TimeZone`, for example: `Pacific Time (US & Canada)` (default: `UTC`). |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
@@ -214,11 +214,11 @@ PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id
|------------------------|----------------|----------|-------------|
| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
| `pipeline_schedule_id` | integer | Yes | The pipeline schedule ID. |
+| `active` | boolean | No | The activation of pipeline schedule. If false is set, the pipeline schedule is initially deactivated. |
+| `cron_timezone` | string | No | The time zone supported by `ActiveSupport::TimeZone` (for example `Pacific Time (US & Canada)`), or `TZInfo::Timezone` (for example `America/Los_Angeles`). |
+| `cron` | string | No | The [cron](https://en.wikipedia.org/wiki/Cron) schedule, for example: `0 1 * * *`. |
| `description` | string | No | The description of the pipeline schedule. |
| `ref` | string | No | The branch or tag name that is triggered. |
-| `cron` | string | No | The [cron](https://en.wikipedia.org/wiki/Cron) schedule, for example: `0 1 * * *`. |
-| `cron_timezone` | string | No | The time zone supported by `ActiveSupport::TimeZone` (for example `Pacific Time (US & Canada)`), or `TZInfo::Timezone` (for example `America/Los_Angeles`). |
-| `active` | boolean | No | The activation of pipeline schedule. If false is set, the pipeline schedule is initially deactivated. |
```shell
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
@@ -384,8 +384,8 @@ POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables
| Attribute | Type | Required | Description |
|------------------------|----------------|----------|-------------|
| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
-| `pipeline_schedule_id` | integer | Yes | The pipeline schedule ID |
| `key` | string | Yes | The `key` of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9`, and `_` are allowed |
+| `pipeline_schedule_id` | integer | Yes | The pipeline schedule ID |
| `value` | string | Yes | The `value` of a variable |
| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
@@ -413,8 +413,8 @@ PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key
| Attribute | Type | Required | Description |
|------------------------|----------------|----------|-------------|
| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
-| `pipeline_schedule_id` | integer | Yes | The pipeline schedule ID |
| `key` | string | Yes | The `key` of a variable |
+| `pipeline_schedule_id` | integer | Yes | The pipeline schedule ID |
| `value` | string | Yes | The `value` of a variable |
| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
@@ -443,8 +443,8 @@ DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key
| Attribute | Type | Required | Description |
|------------------------|----------------|----------|-------------|
| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
-| `pipeline_schedule_id` | integer | Yes | The pipeline schedule ID |
| `key` | string | Yes | The `key` of a variable |
+| `pipeline_schedule_id` | integer | Yes | The pipeline schedule ID |
```shell
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13/variables/NEW_VARIABLE"
diff --git a/doc/api/pipeline_triggers.md b/doc/api/pipeline_triggers.md
index c17227a3d41..5ac59854f23 100644
--- a/doc/api/pipeline_triggers.md
+++ b/doc/api/pipeline_triggers.md
@@ -80,8 +80,8 @@ POST /projects/:id/triggers
| Attribute | Type | Required | Description |
|---------------|----------------|----------|-------------|
-| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
| `description` | string | Yes | The trigger name |
+| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
diff --git a/doc/api/pipelines.md b/doc/api/pipelines.md
index d8b4b4cf41f..1b75a3f74b5 100644
--- a/doc/api/pipelines.md
+++ b/doc/api/pipelines.md
@@ -36,18 +36,18 @@ GET /projects/:id/pipelines
| Attribute | Type | Required | Description |
|------------------|----------------|----------|-------------|
| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
-| `scope` | string | No | The scope of pipelines, one of: `running`, `pending`, `finished`, `branches`, `tags` |
-| `status` | string | No | The status of pipelines, one of: `created`, `waiting_for_resource`, `preparing`, `pending`, `running`, `success`, `failed`, `canceled`, `skipped`, `manual`, `scheduled` |
-| `source` | string | No | In [GitLab 14.3 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/325439), how the pipeline was triggered, one of: `api`, `chat`, `external`, `external_pull_request_event`, `merge_request_event`, `ondemand_dast_scan`, `ondemand_dast_validation`, `parent_pipeline`, `pipeline`, `push`, `schedule`, `security_orchestration_policy`, `trigger`, `web`, or `webide`. |
+| `name` | string | No | Return pipelines with the specified name. Introduced in GitLab 15.11, not available by default. |
+| `order_by` | string | No | Order pipelines by `id`, `status`, `ref`, `updated_at` or `user_id` (default: `id`) |
| `ref` | string | No | The ref of pipelines |
+| `scope` | string | No | The scope of pipelines, one of: `running`, `pending`, `finished`, `branches`, `tags` |
| `sha` | string | No | The SHA of pipelines |
-| `yaml_errors` | boolean | No | Returns pipelines with invalid configurations |
-| `username` | string | No | The username of the user who triggered pipelines |
+| `sort` | string | No | Sort pipelines in `asc` or `desc` order (default: `desc`) |
+| `source` | string | No | In [GitLab 14.3 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/325439), how the pipeline was triggered, one of: `api`, `chat`, `external`, `external_pull_request_event`, `merge_request_event`, `ondemand_dast_scan`, `ondemand_dast_validation`, `parent_pipeline`, `pipeline`, `push`, `schedule`, `security_orchestration_policy`, `trigger`, `web`, or `webide`. |
+| `status` | string | No | The status of pipelines, one of: `created`, `waiting_for_resource`, `preparing`, `pending`, `running`, `success`, `failed`, `canceled`, `skipped`, `manual`, `scheduled` |
| `updated_after` | datetime | No | Return pipelines updated after the specified date. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). |
| `updated_before` | datetime | No | Return pipelines updated before the specified date. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). |
-| `name` | string | No | Return pipelines with the specified name. Introduced in GitLab 15.11, not available by default. |
-| `order_by` | string | No | Order pipelines by `id`, `status`, `ref`, `updated_at` or `user_id` (default: `id`) |
-| `sort` | string | No | Sort pipelines in `asc` or `desc` order (default: `desc`) |
+| `username` | string | No | The username of the user who triggered pipelines |
+| `yaml_errors` | boolean | No | Returns pipelines with invalid configurations |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/pipelines"
@@ -530,8 +530,8 @@ PUT /projects/:id/pipelines/:pipeline_id/metadata
| Attribute | Type | Required | Description |
|---------------|----------------|----------|-------------|
| `id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
-| `pipeline_id` | integer | Yes | The ID of a pipeline |
| `name` | string | Yes | The new name of the pipeline |
+| `pipeline_id` | integer | Yes | The ID of a pipeline |
Sample request:
diff --git a/doc/api/project_access_tokens.md b/doc/api/project_access_tokens.md
index f8e7c0f3633..2f7be015e75 100644
--- a/doc/api/project_access_tokens.md
+++ b/doc/api/project_access_tokens.md
@@ -141,9 +141,6 @@ Rotate a project access token. Revokes the previous token and creates a new toke
In GitLab 16.6 and later, you can use the `expires_at` parameter to set a different expiry date. This non-default expiry date can be up to a maximum of one year from the rotation date.
-WARNING:
-When you rotate a project access token, the new token retains the expiry date of the old token. For more information, see [issue 423362](https://gitlab.com/gitlab-org/gitlab/-/issues/423362).
-
```plaintext
POST /projects/:id/access_tokens/:token_id/rotate
```
diff --git a/doc/api/project_level_variables.md b/doc/api/project_level_variables.md
index 5031279d5bb..e6d3050d59c 100644
--- a/doc/api/project_level_variables.md
+++ b/doc/api/project_level_variables.md
@@ -94,12 +94,12 @@ POST /projects/:id/variables
| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
| `key` | string | Yes | The `key` of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9`, and `_` are allowed |
| `value` | string | Yes | The `value` of a variable |
-| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
-| `protected` | boolean | No | Whether the variable is protected. Default: `false` |
+| `description` | string | No | The description of the variable. Default: `null`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/409641) in GitLab 16.2. |
+| `environment_scope` | string | No | The `environment_scope` of the variable. Default: `*` |
| `masked` | boolean | No | Whether the variable is masked. Default: `false` |
+| `protected` | boolean | No | Whether the variable is protected. Default: `false` |
| `raw` | boolean | No | Whether the variable is treated as a raw string. Default: `false`. When `true`, variables in the value are not [expanded](../ci/variables/index.md#prevent-cicd-variable-expansion). |
-| `environment_scope` | string | No | The `environment_scope` of the variable. Default: `*` |
-| `description` | string | No | The description of the variable. Default: `null`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/409641) in GitLab 16.2. |
+| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
@@ -133,13 +133,13 @@ PUT /projects/:id/variables/:key
| `id` | integer/string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
| `key` | string | Yes | The `key` of a variable |
| `value` | string | Yes | The `value` of a variable |
-| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
-| `protected` | boolean | No | Whether the variable is protected |
-| `masked` | boolean | No | Whether the variable is masked |
-| `raw` | boolean | No | Whether the variable is treated as a raw string. Default: `false`. When `true`, variables in the value are not [expanded](../ci/variables/index.md#prevent-cicd-variable-expansion). |
+| `description` | string | No | The description of the variable. Default: `null`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/409641) in GitLab 16.2. |
| `environment_scope` | string | No | The `environment_scope` of the variable |
| `filter` | hash | No | Available filters: `[environment_scope]`. See the [`filter` parameter details](#the-filter-parameter). |
-| `description` | string | No | The description of the variable. Default: `null`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/409641) in GitLab 16.2. |
+| `masked` | boolean | No | Whether the variable is masked |
+| `protected` | boolean | No | Whether the variable is protected |
+| `raw` | boolean | No | Whether the variable is treated as a raw string. Default: `false`. When `true`, variables in the value are not [expanded](../ci/variables/index.md#prevent-cicd-variable-expansion). |
+| `variable_type` | string | No | The type of a variable. Available types are: `env_var` (default) and `file` |
```shell
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
diff --git a/doc/api/project_relations_export.md b/doc/api/project_relations_export.md
index 5fe3923edc8..a586c940b8e 100644
--- a/doc/api/project_relations_export.md
+++ b/doc/api/project_relations_export.md
@@ -16,7 +16,7 @@ top-level
relation (for example, milestones, issues, and labels).
The project relations export API is primarily used in
-[group migration](../user/group/import/index.md#migrate-groups-by-direct-transfer-recommended) can't
+[group migration](../user/group/import/index.md) can't
be used with the
[project import and export API](project_import_export.md).
diff --git a/doc/api/projects.md b/doc/api/projects.md
index 3d3a11fc59e..257dd88a770 100644
--- a/doc/api/projects.md
+++ b/doc/api/projects.md
@@ -51,38 +51,38 @@ are returned.
GET /projects
```
-| Attribute | Type | Required | Description |
-|--------------------------------------------|----------|------------------------|-------------|
-| `archived` | boolean | No | Limit by archived status. |
-| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. |
-| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. |
-| `imported` | boolean | No | Limit results to projects which were imported from external systems by current user. |
-| `include_hidden` **(PREMIUM ALL)** | boolean | No | Include hidden projects. _(administrators only)_ |
-| `include_pending_delete` | boolean | No | Include projects pending deletion. _(administrators only)_ |
-| `last_activity_after` | datetime | No | Limit results to projects with last activity after specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) |
-| `last_activity_before` | datetime | No | Limit results to projects with last activity before specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) |
-| `membership` | boolean | No | Limit by projects that the current user is a member of. |
-| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). |
-| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, `last_activity_at`, or `similarity` fields. `repository_size`, `storage_size`, `packages_size` or `wiki_size` fields are only allowed for administrators. `similarity` ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/332890) in GitLab 14.1) is only available when searching and is limited to projects that the current user is a member of. Default is `created_at`. |
-| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
-| `repository_checksum_failed` **(PREMIUM ALL)** | boolean | No | Limit projects where the repository checksum calculation has failed. |
-| `repository_storage` | string | No | Limit results to projects stored on `repository_storage`. _(administrators only)_ |
-| `search_namespaces` | boolean | No | Include ancestor namespaces when matching search criteria. Default is `false`. |
-| `search` | string | No | Return list of projects matching the search criteria. |
-| `simple` | boolean | No | Return only limited fields for each project. This operation is a no-op without authentication where only simple fields are returned. |
-| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
-| `starred` | boolean | No | Limit by projects starred by the current user. |
-| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
-| `topic` | string | No | Comma-separated topic names. Limit results to projects that match all of given topics. See `topics` attribute. |
-| `topic_id` | integer | No | Limit results to projects with the assigned topic given by the topic ID. |
-| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. |
-| `wiki_checksum_failed` **(PREMIUM ALL)** | boolean | No | Limit projects where the wiki checksum calculation has failed. |
-| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ |
-| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
-| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |
-| `with_programming_language` | string | No | Limit by projects which use the given programming language. |
-| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. For this filter to work, you must also provide `updated_at` as the `order_by` attribute. |
-| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. For this filter to work, you must also provide `updated_at` as the `order_by` attribute. |
+| Attribute | Type | Required | Description |
+|------------------------------------------------|----------|----------|-------------|
+| `archived` | boolean | No | Limit by archived status. |
+| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. |
+| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. |
+| `imported` | boolean | No | Limit results to projects which were imported from external systems by current user. |
+| `include_hidden` **(PREMIUM ALL)** | boolean | No | Include hidden projects. _(administrators only)_ |
+| `include_pending_delete` | boolean | No | Include projects pending deletion. _(administrators only)_ |
+| `last_activity_after` | datetime | No | Limit results to projects with last activity after specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) |
+| `last_activity_before` | datetime | No | Limit results to projects with last activity before specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) |
+| `membership` | boolean | No | Limit by projects that the current user is a member of. |
+| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). |
+| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, `last_activity_at`, or `similarity` fields. `repository_size`, `storage_size`, `packages_size` or `wiki_size` fields are only allowed for administrators. `similarity` ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/332890) in GitLab 14.1) is only available when searching and is limited to projects that the current user is a member of. Default is `created_at`. |
+| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
+| `repository_checksum_failed` **(PREMIUM ALL)** | boolean | No | Limit projects where the repository checksum calculation has failed. |
+| `repository_storage` | string | No | Limit results to projects stored on `repository_storage`. _(administrators only)_ |
+| `search_namespaces` | boolean | No | Include ancestor namespaces when matching search criteria. Default is `false`. |
+| `search` | string | No | Return list of projects matching the search criteria. |
+| `simple` | boolean | No | Return only limited fields for each project. This operation is a no-op without authentication where only simple fields are returned. |
+| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
+| `starred` | boolean | No | Limit by projects starred by the current user. |
+| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
+| `topic_id` | integer | No | Limit results to projects with the assigned topic given by the topic ID. |
+| `topic` | string | No | Comma-separated topic names. Limit results to projects that match all of given topics. See `topics` attribute. |
+| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. For this filter to work, you must also provide `updated_at` as the `order_by` attribute. |
+| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. For this filter to work, you must also provide `updated_at` as the `order_by` attribute. |
+| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. |
+| `wiki_checksum_failed` **(PREMIUM ALL)** | boolean | No | Limit projects where the wiki checksum calculation has failed. |
+| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ |
+| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
+| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |
+| `with_programming_language` | string | No | Limit by projects which use the given programming language. |
This endpoint supports [keyset pagination](rest/index.md#keyset-based-pagination)
for selected `order_by` options.
@@ -326,28 +326,28 @@ for selected `order_by` options.
GET /users/:user_id/projects
```
-| Attribute | Type | Required | Description |
-|-------------------------------|---------|------------------------|-------------|
-| `user_id` | string | Yes | The ID or username of the user. |
-| `archived` | boolean | No | Limit by archived status. |
-| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. |
-| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. |
-| `membership` | boolean | No | Limit by projects that the current user is a member of. |
-| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). |
-| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. |
-| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
-| `search` | string | No | Return list of projects matching the search criteria. |
-| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. |
-| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
-| `starred` | boolean | No | Limit by projects starred by the current user. |
-| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
-| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. |
-| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ |
-| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
-| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |
-| `with_programming_language` | string | No | Limit by projects which use the given programming language. |
-| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
-| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| Attribute | Type | Required | Description |
+|-------------------------------|----------|----------|-------------|
+| `user_id` | string | Yes | The ID or username of the user. |
+| `archived` | boolean | No | Limit by archived status. |
+| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. |
+| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. |
+| `membership` | boolean | No | Limit by projects that the current user is a member of. |
+| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). |
+| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. |
+| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
+| `search` | string | No | Return list of projects matching the search criteria. |
+| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. |
+| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
+| `starred` | boolean | No | Limit by projects starred by the current user. |
+| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
+| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. |
+| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ |
+| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
+| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |
+| `with_programming_language` | string | No | Limit by projects which use the given programming language. |
```json
[
@@ -602,12 +602,12 @@ Get a list of visible projects a given user has contributed to.
GET /users/:user_id/contributed_projects
```
-| Attribute | Type | Required | Description |
-|-------------------------------|---------|------------------------|-------------|
-| `user_id` | string | Yes | The ID or username of the user. |
-| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. |
-| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. |
-| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
+| Attribute | Type | Required | Description |
+|------------|---------|----------|-------------|
+| `user_id` | string | Yes | The ID or username of the user. |
+| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. |
+| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. |
+| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/5/contributed_projects"
@@ -847,25 +847,25 @@ authentication, only public projects are returned.
GET /users/:user_id/starred_projects
```
-| Attribute | Type | Required | Description |
-|-------------------------------|---------|------------------------|-------------|
-| `user_id` | string | Yes | The ID or username of the user. |
-| `archived` | boolean | No | Limit by archived status. |
-| `membership` | boolean | No | Limit by projects that the current user is a member of. |
-| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). |
-| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. |
-| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
-| `search` | string | No | Return list of projects matching the search criteria. |
-| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. |
-| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
-| `starred` | boolean | No | Limit by projects starred by the current user. |
-| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
-| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. |
-| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ |
-| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
-| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |
-| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
-| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| Attribute | Type | Required | Description |
+|-------------------------------|----------|----------|-------------|
+| `user_id` | string | Yes | The ID or username of the user. |
+| `archived` | boolean | No | Limit by archived status. |
+| `membership` | boolean | No | Limit by projects that the current user is a member of. |
+| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). |
+| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. |
+| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
+| `search` | string | No | Return list of projects matching the search criteria. |
+| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. |
+| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
+| `starred` | boolean | No | Limit by projects starred by the current user. |
+| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
+| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. |
+| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ |
+| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
+| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/5/starred_projects"
@@ -1105,12 +1105,12 @@ the project is publicly accessible.
GET /projects/:id
```
-| Attribute | Type | Required | Description |
-|--------------------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `license` | boolean | No | Include project license data. |
-| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
-| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrators only)_ |
+| Attribute | Type | Required | Description |
+|--------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `license` | boolean | No | Include project license data. |
+| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
+| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrators only)_ |
```json
{
@@ -1373,11 +1373,11 @@ Get the users list of a project.
GET /projects/:id/users
```
-| Attribute | Type | Required | Description |
-|--------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `search` | string | No | Search for specific users. |
-| `skip_users` | integer array | No | Filter out users with the specified IDs. |
+| Attribute | Type | Required | Description |
+|--------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `search` | string | No | Search for specific users. |
+| `skip_users` | integer array | No | Filter out users with the specified IDs. |
```json
[
@@ -1408,14 +1408,14 @@ Get a list of ancestor groups for this project.
GET /projects/:id/groups
```
-| Attribute | Type | Required | Description |
-|-----------------------------|-------------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `search` | string | No | Search for specific groups. |
-| `shared_min_access_level` | integer | No | Limit to shared groups with at least this [role (`access_level`)](members.md#roles). |
-| `shared_visible_only` | boolean | No | Limit to shared groups user has access to. |
-| `skip_groups` | array of integers | No | Skip the group IDs passed. |
-| `with_shared` | boolean | No | Include projects shared with this group. Default is `false`. |
+| Attribute | Type | Required | Description |
+|---------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `search` | string | No | Search for specific groups. |
+| `shared_min_access_level` | integer | No | Limit to shared groups with at least this [role (`access_level`)](members.md#roles). |
+| `shared_visible_only` | boolean | No | Limit to shared groups user has access to. |
+| `skip_groups` | array of integers | No | Skip the group IDs passed. |
+| `with_shared` | boolean | No | Include projects shared with this group. Default is `false`. |
```json
[
@@ -1446,10 +1446,10 @@ Get a list of groups that can be shared with a project
GET /projects/:id/share_locations
```
-| Attribute | Type | Required | Description |
-|-----------------------------|-------------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `search` | string | No | Search for specific groups. |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `search` | string | No | Search for specific groups. |
```json
[
@@ -1501,81 +1501,81 @@ curl --request POST --header "PRIVATE-TOKEN: <your-token>" \
--url "https://gitlab.example.com/api/v4/projects/"
```
-| Attribute | Type | Required | Description |
-|-------------------------------------------------------------|---------|------------------------|-------------|
-| `name` | string | Yes (if `path` isn't provided) | The name of the new project. Equals path if not provided. |
-| `path` | string | Yes (if `name` isn't provided) | Repository name for new project. Generated based on name if not provided (generated as lowercase with dashes). Starting with GitLab 14.9, path must not start or end with a special character and must not contain consecutive special characters. |
-| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. |
-| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. |
-| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` |
-| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. |
-| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. |
-| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`). |
-| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. |
-| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. |
-| `avatar` | mixed | No | Image file for avatar of the project. |
-| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. |
-| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. |
-| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `ci_config_path` | string | No | The path to CI configuration file. |
-| `container_expiration_policy_attributes` | hash | No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). See the [container registry](../user/packages/container_registry/reduce_container_registry_storage.md#use-the-cleanup-policy-api) documentation for more information on `cadence`, `keep_n` and `older_than` values. |
-| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. |
-| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. |
-| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. |
-| `description` | string | No | Short project description. |
-| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead|
-| `emails_enabled` | boolean | No | Enable email notifications. |
-| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. |
-| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `group_runners_enabled` | boolean | No | Enable group runners for this project. |
-| `group_with_project_templates_id` **(PREMIUM ALL)** | integer | No | For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true. |
-| `import_url` | string | No | URL to import repository from. When the URL value isn't empty, you must not set `initialize_with_readme` to `true`. Doing so might result in the [following error](https://gitlab.com/gitlab-org/gitlab/-/issues/360266): `not a git repository`. |
-| `initialize_with_readme` | boolean | No | Whether to create a Git repository with just a `README.md` file. Default is `false`. When this boolean is true, you must not pass `import_url` or other attributes of this endpoint which specify alternative contents for the repository. Doing so might result in the [following error](https://gitlab.com/gitlab-org/gitlab/-/issues/360266): `not a git repository`. |
-| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. |
-| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. |
-| `lfs_enabled` | boolean | No | Enable LFS. |
-| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. |
-| `merge_pipelines_enabled` | boolean | No | Enable or disable merge pipelines. |
-| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. |
-| `merge_trains_enabled` | boolean | No | Enable or disable merge trains. |
-| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. |
-| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. |
-| `namespace_id` | integer | No | Namespace for the new project (defaults to the current user's namespace). |
-| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. |
-| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful pipelines. This setting is named [**Pipelines must succeed**](../user/project/merge_requests/merge_when_pipeline_succeeds.md#require-a-successful-pipeline-for-merge) in the project settings. |
-| `packages_enabled` | boolean | No | Enable or disable packages repository feature. |
-| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. |
-| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. |
-| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project members. |
-| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. |
-| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `repository_storage` | string | No | Which storage shard the repository is on. _(administrator only)_ |
-| `request_access_enabled` | boolean | No | Allow users to request member access. |
-| `requirements_access_level` | string | No | One of `disabled`, `private` or `enabled` |
-| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. |
-| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. |
-| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. |
-| `show_default_award_emojis` | boolean | No | Show default emoji reactions. |
-| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
-| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. |
-| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. |
-| `template_name` | string | No | When used without `use_custom_template`, name of a [built-in project template](../user/project/index.md#create-a-project-from-a-built-in-template). When used with `use_custom_template`, name of a custom project template. |
-| `template_project_id` **(PREMIUM ALL)** | integer | No | When used with `use_custom_template`, project ID of a custom project template. Using a project ID is preferable to using `template_name` since `template_name` may be ambiguous. |
-| `topics` | array | No | The list of topics for a project; put array of topics, that should be finally assigned to a project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ |
-| `use_custom_template` **(PREMIUM ALL)** | boolean | No | Use either custom [instance](../administration/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. |
-| `visibility` | string | No | See [project visibility level](#project-visibility-level). |
-| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. |
+| Attribute | Type | Required | Description |
+|-------------------------------------------------------------------|---------|--------------------------------|-------------|
+| `name` | string | Yes (if `path` isn't provided) | The name of the new project. Equals path if not provided. |
+| `path` | string | Yes (if `name` isn't provided) | Repository name for new project. Generated based on name if not provided (generated as lowercase with dashes). Starting with GitLab 14.9, path must not start or end with a special character and must not contain consecutive special characters. |
+| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. |
+| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` |
+| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. |
+| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. |
+| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`). |
+| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. |
+| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. |
+| `avatar` | mixed | No | Image file for avatar of the project. |
+| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. |
+| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. |
+| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `ci_config_path` | string | No | The path to CI configuration file. |
+| `container_expiration_policy_attributes` | hash | No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). See the [container registry](../user/packages/container_registry/reduce_container_registry_storage.md#use-the-cleanup-policy-api) documentation for more information on `cadence`, `keep_n` and `older_than` values. |
+| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. |
+| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. |
+| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. |
+| `description` | string | No | Short project description. |
+| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead |
+| `emails_enabled` | boolean | No | Enable email notifications. |
+| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. |
+| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `group_runners_enabled` | boolean | No | Enable group runners for this project. |
+| `group_with_project_templates_id` **(PREMIUM ALL)** | integer | No | For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true. |
+| `import_url` | string | No | URL to import repository from. When the URL value isn't empty, you must not set `initialize_with_readme` to `true`. Doing so might result in the [following error](https://gitlab.com/gitlab-org/gitlab/-/issues/360266): `not a git repository`. |
+| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `initialize_with_readme` | boolean | No | Whether to create a Git repository with just a `README.md` file. Default is `false`. When this boolean is true, you must not pass `import_url` or other attributes of this endpoint which specify alternative contents for the repository. Doing so might result in the [following error](https://gitlab.com/gitlab-org/gitlab/-/issues/360266): `not a git repository`. |
+| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. |
+| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. |
+| `lfs_enabled` | boolean | No | Enable LFS. |
+| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. |
+| `merge_pipelines_enabled` | boolean | No | Enable or disable merged results pipelines. |
+| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. |
+| `merge_trains_enabled` | boolean | No | Enable or disable merge trains. |
+| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. |
+| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. |
+| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `namespace_id` | integer | No | Namespace for the new project (defaults to the current user's namespace). |
+| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. |
+| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. |
+| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful pipelines. This setting is named [**Pipelines must succeed**](../user/project/merge_requests/merge_when_pipeline_succeeds.md#require-a-successful-pipeline-for-merge) in the project settings. |
+| `packages_enabled` | boolean | No | Enable or disable packages repository feature. |
+| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. |
+| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. |
+| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project members. |
+| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. |
+| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `repository_storage` | string | No | Which storage shard the repository is on. _(administrator only)_ |
+| `request_access_enabled` | boolean | No | Allow users to request member access. |
+| `requirements_access_level` | string | No | One of `disabled`, `private` or `enabled` |
+| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. |
+| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. |
+| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. |
+| `show_default_award_emojis` | boolean | No | Show default emoji reactions. |
+| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
+| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. |
+| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. |
+| `template_name` | string | No | When used without `use_custom_template`, name of a [built-in project template](../user/project/index.md#create-a-project-from-a-built-in-template). When used with `use_custom_template`, name of a custom project template. |
+| `template_project_id` **(PREMIUM ALL)** | integer | No | When used with `use_custom_template`, project ID of a custom project template. Using a project ID is preferable to using `template_name` since `template_name` may be ambiguous. |
+| `topics` | array | No | The list of topics for a project; put array of topics, that should be finally assigned to a project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ |
+| `use_custom_template` **(PREMIUM ALL)** | boolean | No | Use either custom [instance](../administration/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. |
+| `visibility` | string | No | See [project visibility level](#project-visibility-level). |
+| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. |
## Create project for user
@@ -1592,83 +1592,83 @@ where `password` is a public access key with the `api` scope enabled.
POST /projects/user/:user_id
```
-| Attribute | Type | Required | Description |
-|-------------------------------------------------------------|---------|------------------------|-------------|
-| `user_id` | integer | Yes | The user ID of the project owner. |
-| `name` | string | Yes | The name of the new project. |
-| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. |
-| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. |
-| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` |
-| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). |
-| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. |
-| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`). |
-| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. |
-| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. |
-| `avatar` | mixed | No | Image file for avatar of the project. |
-| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. |
-| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. |
-| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `ci_config_path` | string | No | The path to CI configuration file. |
-| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. |
-| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. |
-| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. |
-| `description` | string | No | Short project description. |
-| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead|
-| `emails_enabled` | boolean | No | Enable email notifications. |
-| `enforce_auth_checks_on_uploads` | boolean | No | Enforce [auth checks](../security/user_file_uploads.md#enable-authorization-checks-for-all-media-files) on uploads. |
-| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. |
-| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `group_runners_enabled` | boolean | No | Enable group runners for this project. |
-| `group_with_project_templates_id` **(PREMIUM ALL)** | integer | No | For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true. |
-| `import_url` | string | No | URL to import repository from. |
-| `initialize_with_readme` | boolean | No | `false` by default. |
-| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. |
-| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. |
-| `lfs_enabled` | boolean | No | Enable LFS. |
-| `merge_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create merge commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.)_ |
-| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. |
-| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. |
-| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. |
-| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. |
-| `namespace_id` | integer | No | Namespace for the new project (defaults to the current user's namespace). |
-| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. |
-| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful jobs. |
-| `packages_enabled` | boolean | No | Enable or disable packages repository feature. |
-| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. |
-| `path` | string | No | Custom repository name for new project. By default generated based on name. |
-| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. |
-| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project-members. |
-| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. |
-| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `repository_storage` | string | No | Which storage shard the repository is on. _(administrators only)_ |
-| `request_access_enabled` | boolean | No | Allow users to request member access. |
-| `requirements_access_level` | string | No | One of `disabled`, `private`, `enabled` or `public` |
-| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. |
-| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. |
-| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. |
-| `show_default_award_emojis` | boolean | No | Show default emoji reactions. |
-| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
-| `issue_branch_template` | string | No | Template used to suggest names for [branches created from issues](../user/project/merge_requests/creating_merge_requests.md#from-an-issue). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21243) in GitLab 15.6.)_ |
-| `squash_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create squash commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345275) in GitLab 14.6.)_ |
-| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. |
-| `suggestion_commit_message` | string | No | The commit message used to apply merge request [suggestions](../user/project/merge_requests/reviews/suggestions.md). |
-| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. |
-| `template_name` | string | No | When used without `use_custom_template`, name of a [built-in project template](../user/project/index.md#create-a-project-from-a-built-in-template). When used with `use_custom_template`, name of a custom project template. |
-| `topics` | array | No | The list of topics for the project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ |
-| `use_custom_template` **(PREMIUM ALL)** | boolean | No | Use either custom [instance](../administration/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. |
-| `visibility` | string | No | See [project visibility level](#project-visibility-level). |
-| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. |
+| Attribute | Type | Required | Description |
+|-------------------------------------------------------------------|---------|----------|-------------|
+| `name` | string | Yes | The name of the new project. |
+| `user_id` | integer | Yes | The user ID of the project owner. |
+| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. |
+| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` |
+| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). |
+| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. |
+| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`). |
+| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. |
+| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. |
+| `avatar` | mixed | No | Image file for avatar of the project. |
+| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. |
+| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. |
+| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `ci_config_path` | string | No | The path to CI configuration file. |
+| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. |
+| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. |
+| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. |
+| `description` | string | No | Short project description. |
+| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead |
+| `emails_enabled` | boolean | No | Enable email notifications. |
+| `enforce_auth_checks_on_uploads` | boolean | No | Enforce [auth checks](../security/user_file_uploads.md#enable-authorization-checks-for-all-media-files) on uploads. |
+| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. |
+| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `group_runners_enabled` | boolean | No | Enable group runners for this project. |
+| `group_with_project_templates_id` **(PREMIUM ALL)** | integer | No | For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true. |
+| `import_url` | string | No | URL to import repository from. |
+| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `initialize_with_readme` | boolean | No | `false` by default. |
+| `issue_branch_template` | string | No | Template used to suggest names for [branches created from issues](../user/project/merge_requests/creating_merge_requests.md#from-an-issue). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21243) in GitLab 15.6.)_ |
+| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. |
+| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. |
+| `lfs_enabled` | boolean | No | Enable LFS. |
+| `merge_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create merge commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.)_ |
+| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. |
+| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. |
+| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. |
+| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. |
+| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `namespace_id` | integer | No | Namespace for the new project (defaults to the current user's namespace). |
+| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. |
+| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. |
+| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful jobs. |
+| `packages_enabled` | boolean | No | Enable or disable packages repository feature. |
+| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. |
+| `path` | string | No | Custom repository name for new project. By default generated based on name. |
+| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. |
+| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project-members. |
+| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. |
+| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `repository_storage` | string | No | Which storage shard the repository is on. _(administrators only)_ |
+| `request_access_enabled` | boolean | No | Allow users to request member access. |
+| `requirements_access_level` | string | No | One of `disabled`, `private`, `enabled` or `public` |
+| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. |
+| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. |
+| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. |
+| `show_default_award_emojis` | boolean | No | Show default emoji reactions. |
+| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
+| `squash_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create squash commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345275) in GitLab 14.6.)_ |
+| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. |
+| `suggestion_commit_message` | string | No | The commit message used to apply merge request [suggestions](../user/project/merge_requests/reviews/suggestions.md). |
+| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. |
+| `template_name` | string | No | When used without `use_custom_template`, name of a [built-in project template](../user/project/index.md#create-a-project-from-a-built-in-template). When used with `use_custom_template`, name of a custom project template. |
+| `topics` | array | No | The list of topics for the project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ |
+| `use_custom_template` **(PREMIUM ALL)** | boolean | No | Use either custom [instance](../administration/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. |
+| `visibility` | string | No | See [project visibility level](#project-visibility-level). |
+| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. |
## Edit project
@@ -1696,96 +1696,98 @@ curl --request PUT --header "PRIVATE-TOKEN: <your-token>" \
Supported attributes:
-| Attribute | Type | Required | Description |
-|-------------------------------------------------------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. |
-| `allow_pipeline_trigger_approve_deployment` **(PREMIUM ALL)** | boolean | No | Set whether or not a pipeline triggerer is allowed to approve deployments. |
-| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false.<br/><br/>[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. The feature flag was enabled by default in GitLab 15.9. |
-| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` |
-| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). |
-| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. |
-| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual`, or `timed_incremental`). |
-| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. |
-| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. |
-| `avatar` | mixed | No | Image file for avatar of the project. |
-| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. |
-| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. |
-| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `ci_config_path` | string | No | The path to CI configuration file. |
-| `ci_default_git_depth` | integer | No | Default number of revisions for [shallow cloning](../ci/pipelines/settings.md#limit-the-number-of-changes-fetched-during-clone). |
-| `ci_forward_deployment_enabled` | boolean | No | Enable or disable [prevent outdated deployment jobs](../ci/pipelines/settings.md#prevent-outdated-deployment-jobs). |
-| `ci_forward_deployment_rollback_allowed` | boolean | No | Enable or disable [allow job retries for rollback deployments](../ci/pipelines/settings.md#prevent-outdated-deployment-jobs). |
-| `ci_allow_fork_pipelines_to_run_in_parent_project` | boolean | No | Enable or disable [running pipelines in the parent project for merge requests from forks](../ci/pipelines/merge_request_pipelines.md#run-pipelines-in-the-parent-project). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/325189) in GitLab 15.3.)_ |
-| `ci_separated_caches` | boolean | No | Set whether or not caches should be [separated](../ci/caching/index.md#cache-key-names) by branch protection status. |
-| `container_expiration_policy_attributes` | hash | No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). |
-| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. |
-| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. |
-| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. |
-| `description` | string | No | Short project description. |
-| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead|
-| `emails_enabled` | boolean | No | Enable email notifications. |
-| `enforce_auth_checks_on_uploads` | boolean | No | Enforce [auth checks](../security/user_file_uploads.md#enable-authorization-checks-for-all-media-files) on uploads. |
-| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. |
-| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `group_runners_enabled` | boolean | No | Enable group runners for this project. |
-| `import_url` | string | No | URL the repository was imported from. |
-| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. |
-| `issues_template` **(PREMIUM ALL)** | string | No | Default description for Issues. Description is parsed with GitLab Flavored Markdown. See [Templates for issues and merge requests](#templates-for-issues-and-merge-requests). |
-| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. |
-| `keep_latest_artifact` | boolean | No | Disable or enable the ability to keep the latest artifact for this project. |
-| `lfs_enabled` | boolean | No | Enable LFS. |
-| `merge_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create merge commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.)_ |
-| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. |
-| `merge_pipelines_enabled` | boolean | No | Enable or disable merge pipelines. |
-| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. |
-| `merge_requests_template` **(PREMIUM ALL)** | string | No | Default description for merge requests. Description is parsed with GitLab Flavored Markdown. See [Templates for issues and merge requests](#templates-for-issues-and-merge-requests). |
-| `merge_trains_enabled` | boolean | No | Enable or disable merge trains. |
-| `mirror_overwrites_diverged_branches` **(PREMIUM ALL)** | boolean | No | Pull mirror overwrites diverged branches. |
-| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. |
-| `mirror_user_id` **(PREMIUM ALL)** | integer | No | User responsible for all the activity surrounding a pull mirror event. _(administrators only)_ |
-| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. |
-| `mr_default_target_self` | boolean | No | For forked projects, target merge requests to this project. If `false`, the target is the upstream project. |
-| `name` | string | No | The name of the project. |
-| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. |
-| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful jobs. |
-| `only_mirror_protected_branches` **(PREMIUM ALL)** | boolean | No | Only mirror protected branches. |
-| `packages_enabled` | boolean | No | Enable or disable packages repository feature. |
-| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. |
-| `path` | string | No | Custom repository name for the project. By default generated based on name. |
-| `prevent_merge_without_jira_issue` **(PREMIUM ALL)** | boolean | No | Set whether merge requests require an associated issue from Jira.
-| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. |
-| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project members. |
-| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. |
-| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `repository_storage` | string | No | Which storage shard the repository is on. _(administrators only)_ |
-| `request_access_enabled` | boolean | No | Allow users to request member access. |
-| `requirements_access_level` | string | No | One of `disabled`, `private`, `enabled` or `public` |
-| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. |
-| `restrict_user_defined_variables` | boolean | No | Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline. For example when the pipeline is triggered in the UI, with the API, or by a trigger token. |
-| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. |
-| `service_desk_enabled` | boolean | No | Enable or disable Service Desk feature. |
-| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. |
-| `show_default_award_emojis` | boolean | No | Show default emoji reactions. |
-| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
-| `issue_branch_template` | string | No | Template used to suggest names for [branches created from issues](../user/project/merge_requests/creating_merge_requests.md#from-an-issue). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21243) in GitLab 15.6.)_ |
-| `squash_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create squash commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345275) in GitLab 14.6.)_ |
-| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. |
-| `suggestion_commit_message` | string | No | The commit message used to apply merge request suggestions. |
-| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. |
-| `topics` | array | No | The list of topics for the project. This replaces any existing topics that are already added to the project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ |
-| `visibility` | string | No | See [project visibility level](#project-visibility-level). |
-| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
-| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. |
+| Attribute | Type | Required | Description |
+|-------------------------------------------------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. |
+| `allow_pipeline_trigger_approve_deployment` **(PREMIUM ALL)** | boolean | No | Set whether or not a pipeline triggerer is allowed to approve deployments. |
+| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false.<br/><br/>[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. The feature flag was enabled by default in GitLab 15.9. |
+| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` |
+| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). |
+| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. |
+| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual`, or `timed_incremental`). |
+| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. |
+| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. |
+| `avatar` | mixed | No | Image file for avatar of the project. |
+| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. |
+| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. |
+| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `ci_config_path` | string | No | The path to CI configuration file. |
+| `ci_default_git_depth` | integer | No | Default number of revisions for [shallow cloning](../ci/pipelines/settings.md#limit-the-number-of-changes-fetched-during-clone). |
+| `ci_forward_deployment_enabled` | boolean | No | Enable or disable [prevent outdated deployment jobs](../ci/pipelines/settings.md#prevent-outdated-deployment-jobs). |
+| `ci_forward_deployment_rollback_allowed` | boolean | No | Enable or disable [allow job retries for rollback deployments](../ci/pipelines/settings.md#prevent-outdated-deployment-jobs). |
+| `ci_allow_fork_pipelines_to_run_in_parent_project` | boolean | No | Enable or disable [running pipelines in the parent project for merge requests from forks](../ci/pipelines/merge_request_pipelines.md#run-pipelines-in-the-parent-project). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/325189) in GitLab 15.3.)_ |
+| `ci_separated_caches` | boolean | No | Set whether or not caches should be [separated](../ci/caching/index.md#cache-key-names) by branch protection status. |
+| `ci_restrict_pipeline_cancellation_role` **(PREMIUM ALL)** | string | No | Set the [role required to cancel a pipeline or job](../ci/pipelines/settings.md#restrict-roles-that-can-cancel-pipelines-or-jobs). One of `developer`, `maintainer`, or `no_one`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429921) in GitLab 16.8.)_ |
+| `container_expiration_policy_attributes` | hash | No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). |
+| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. |
+| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. |
+| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. |
+| `description` | string | No | Short project description. |
+| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead |
+| `emails_enabled` | boolean | No | Enable email notifications. |
+| `enforce_auth_checks_on_uploads` | boolean | No | Enforce [auth checks](../security/user_file_uploads.md#enable-authorization-checks-for-all-media-files) on uploads. |
+| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. |
+| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `group_runners_enabled` | boolean | No | Enable group runners for this project. |
+| `import_url` | string | No | URL the repository was imported from. |
+| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. |
+| `issues_template` **(PREMIUM ALL)** | string | No | Default description for Issues. Description is parsed with GitLab Flavored Markdown. See [Templates for issues and merge requests](#templates-for-issues-and-merge-requests). |
+| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. |
+| `keep_latest_artifact` | boolean | No | Disable or enable the ability to keep the latest artifact for this project. |
+| `lfs_enabled` | boolean | No | Enable LFS. |
+| `merge_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create merge commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.)_ |
+| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. |
+| `merge_pipelines_enabled` | boolean | No | Enable or disable merged results pipelines. |
+| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. |
+| `merge_requests_template` **(PREMIUM ALL)** | string | No | Default description for merge requests. Description is parsed with GitLab Flavored Markdown. See [Templates for issues and merge requests](#templates-for-issues-and-merge-requests). |
+| `merge_trains_enabled` | boolean | No | Enable or disable merge trains. |
+| `mirror_overwrites_diverged_branches` **(PREMIUM ALL)** | boolean | No | Pull mirror overwrites diverged branches. |
+| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. |
+| `mirror_user_id` **(PREMIUM ALL)** | integer | No | User responsible for all the activity surrounding a pull mirror event. _(administrators only)_ |
+| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. |
+| `mr_default_target_self` | boolean | No | For forked projects, target merge requests to this project. If `false`, the target is the upstream project. |
+| `name` | string | No | The name of the project. |
+| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. |
+| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful jobs. |
+| `only_mirror_protected_branches` **(PREMIUM ALL)** | boolean | No | Only mirror protected branches. |
+| `packages_enabled` | boolean | No | Enable or disable packages repository feature. |
+| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. |
+| `path` | string | No | Custom repository name for the project. By default generated based on name. |
+| `prevent_merge_without_jira_issue` **(PREMIUM ALL)** | boolean | No | Set whether merge requests require an associated issue from Jira. |
+| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. |
+| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project members. |
+| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. |
+| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `repository_storage` | string | No | Which storage shard the repository is on. _(administrators only)_ |
+| `request_access_enabled` | boolean | No | Allow users to request member access. |
+| `requirements_access_level` | string | No | One of `disabled`, `private`, `enabled` or `public` |
+| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. |
+| `restrict_user_defined_variables` | boolean | No | Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline. For example when the pipeline is triggered in the UI, with the API, or by a trigger token. |
+| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. |
+| `service_desk_enabled` | boolean | No | Enable or disable Service Desk feature. |
+| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. |
+| `show_default_award_emojis` | boolean | No | Show default emoji reactions. |
+| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
+| `issue_branch_template` | string | No | Template used to suggest names for [branches created from issues](../user/project/merge_requests/creating_merge_requests.md#from-an-issue). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21243) in GitLab 15.6.)_ |
+| `squash_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create squash commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345275) in GitLab 14.6.)_ |
+| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. |
+| `suggestion_commit_message` | string | No | The commit message used to apply merge request suggestions. |
+| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. |
+| `topics` | array | No | The list of topics for the project. This replaces any existing topics that are already added to the project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ |
+| `visibility` | string | No | See [project visibility level](#project-visibility-level). |
+| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. |
+| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. |
## Fork project
@@ -1799,18 +1801,18 @@ fork of the project has completed, query the `import_status` for the new project
POST /projects/:id/fork
```
-| Attribute | Type | Required | Description |
-|------------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `description` | string | No | The description assigned to the resultant project after forking. |
-| `mr_default_target_self` | boolean | No | For forked projects, target merge requests to this project. If `false`, the target is the upstream project. |
-| `name` | string | No | The name assigned to the resultant project after forking. |
-| `namespace_id` | integer | No | The ID of the namespace that the project is forked to. |
-| `namespace_path` | string | No | The path of the namespace that the project is forked to. |
-| `namespace` | integer or string | No | _(Deprecated)_ The ID or path of the namespace that the project is forked to. |
-| `path` | string | No | The path assigned to the resultant project after forking. |
-| `visibility` | string | No | The [visibility level](#project-visibility-level) assigned to the resultant project after forking. |
-| `branches` | string | No | Branches to fork (empty for all branches). |
+| Attribute | Type | Required | Description |
+|--------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `branches` | string | No | Branches to fork (empty for all branches). |
+| `description` | string | No | The description assigned to the resultant project after forking. |
+| `mr_default_target_self` | boolean | No | For forked projects, target merge requests to this project. If `false`, the target is the upstream project. |
+| `name` | string | No | The name assigned to the resultant project after forking. |
+| `namespace_id` | integer | No | The ID of the namespace that the project is forked to. |
+| `namespace_path` | string | No | The path of the namespace that the project is forked to. |
+| `namespace` | integer or string | No | _(Deprecated)_ The ID or path of the namespace that the project is forked to. |
+| `path` | string | No | The path assigned to the resultant project after forking. |
+| `visibility` | string | No | The [visibility level](#project-visibility-level) assigned to the resultant project after forking. |
## List forks of a project
@@ -1823,25 +1825,25 @@ forked relationship with the specified project
GET /projects/:id/forks
```
-| Attribute | Type | Required | Description |
-|-------------------------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `archived` | boolean | No | Limit by archived status. |
-| `membership` | boolean | No | Limit by projects that the current user is a member of. |
-| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). |
-| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. |
-| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
-| `search` | string | No | Return list of projects matching the search criteria. |
-| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. |
-| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
-| `starred` | boolean | No | Limit by projects starred by the current user. |
-| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
-| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. |
-| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrators only)_ |
-| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
-| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |
-| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
-| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| Attribute | Type | Required | Description |
+|-------------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `archived` | boolean | No | Limit by archived status. |
+| `membership` | boolean | No | Limit by projects that the current user is a member of. |
+| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). |
+| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. |
+| `owned` | boolean | No | Limit by projects explicitly owned by the current user. |
+| `search` | string | No | Return list of projects matching the search criteria. |
+| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. |
+| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. |
+| `starred` | boolean | No | Limit by projects starred by the current user. |
+| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. |
+| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. |
+| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. |
+| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrators only)_ |
+| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. |
+| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/forks"
@@ -1942,9 +1944,9 @@ starred.
POST /projects/:id/star
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/star"
@@ -2202,9 +2204,9 @@ Get languages used in a project with percentage value.
GET /projects/:id/languages
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/languages"
@@ -2233,9 +2235,9 @@ does not change the project.
POST /projects/:id/archive
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/archive"
@@ -2366,9 +2368,9 @@ doesn't change the project.
POST /projects/:id/unarchive
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/unarchive"
@@ -2514,11 +2516,11 @@ The option to delete projects immediately from deletion protection settings in t
DELETE /projects/:id
```
-| Attribute | Type | Required | Description |
-|------------------------------------|-------------------|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `permanently_remove` **(PREMIUM ALL)** | boolean/string | no | Immediately deletes a project if it is marked for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/396500) in GitLab 15.11 |
-| `full_path` **(PREMIUM ALL)** | string | no | Full path of project to use with `permanently_remove`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/396500) in GitLab 15.11. To find the project path, use `path_with_namespace` from [get single project](projects.md#get-single-project) |
+| Attribute | Type | Required | Description |
+|----------------------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `full_path` **(PREMIUM ALL)** | string | no | Full path of project to use with `permanently_remove`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/396500) in GitLab 15.11. To find the project path, use `path_with_namespace` from [get single project](projects.md#get-single-project) |
+| `permanently_remove` **(PREMIUM ALL)** | boolean/string | no | Immediately deletes a project if it is marked for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/396500) in GitLab 15.11 |
## Restore project marked for deletion **(PREMIUM ALL)**
@@ -2530,9 +2532,9 @@ Restores project marked for deletion.
POST /projects/:id/restore
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
## Upload a file
@@ -2547,10 +2549,10 @@ description, or a comment.
POST /projects/:id/uploads
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `file` | string | Yes | The file to be uploaded. |
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `file` | string | Yes | The file to be uploaded. |
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
To upload a file from your file system, use the `--form` argument. This causes
cURL to post data using the header `Content-Type: multipart/form-data`. The
@@ -2585,10 +2587,10 @@ Uploads an avatar to the specified project.
PUT /projects/:id
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `avatar` | string | Yes | The file to be uploaded. |
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `avatar` | string | Yes | The file to be uploaded. |
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
To upload an avatar from your file system, use the `--form` argument. This causes
cURL to post data using the header `Content-Type: multipart/form-data`. The
@@ -2631,12 +2633,12 @@ Allow to share project with group.
POST /projects/:id/share
```
-| Attribute | Type | Required | Description |
-|----------------|----------------|------------------------|-------------|
-| `group_access` | integer | Yes | The [role (`access_level`)](members.md#roles) to grant the group. |
-| `group_id` | integer | Yes | The ID of the group to share with. |
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `expires_at` | string | No | Share expiration date in ISO 8601 format: 2016-09-26 |
+| Attribute | Type | Required | Description |
+|----------------|-------------------|----------|-------------|
+| `group_access` | integer | Yes | The [role (`access_level`)](members.md#roles) to grant the group. |
+| `group_id` | integer | Yes | The ID of the group to share with. |
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `expires_at` | string | No | Share expiration date in ISO 8601 format. For example, `2016-09-26`. |
## Delete a shared project link within a group
@@ -2646,10 +2648,10 @@ Unshare the project from the group. Returns `204` and no content on success.
DELETE /projects/:id/share/:group_id
```
-| Attribute | Type | Required | Description |
-|------------|----------------|------------------------|-------------|
-| `group_id` | integer | Yes | The ID of the group. |
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|------------|-------------------|----------|-------------|
+| `group_id` | integer | Yes | The ID of the group. |
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
```shell
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/share/17"
@@ -2668,10 +2670,10 @@ If the importing member's role in the target project is:
POST /projects/:id/import_project_members/:project_id
```
-| Attribute | Type | Required | Description |
-|--------------|-------------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path](rest/index.md#namespaced-path-encoding) of the target project to receive the members. |
-| `project_id` | integer or string | Yes | The ID or [URL-encoded path](rest/index.md#namespaced-path-encoding) of the source project to import the members from. |
+| Attribute | Type | Required | Description |
+|--------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path](rest/index.md#namespaced-path-encoding) of the target project to receive the members. |
+| `project_id` | integer or string | Yes | The ID or [URL-encoded path](rest/index.md#namespaced-path-encoding) of the source project to import the members from. |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/import_project_members/32"
@@ -2723,9 +2725,9 @@ Get a list of project hooks.
GET /projects/:id/hooks
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
### Get project hook
@@ -2735,10 +2737,10 @@ Get a specific hook for a project.
GET /projects/:id/hooks/:hook_id
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|---------------------------|
-| `hook_id` | integer | Yes | The ID of a project hook. |
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `hook_id` | integer | Yes | The ID of a project hook. |
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
```json
{
@@ -2775,25 +2777,25 @@ Adds a hook to a specified project.
POST /projects/:id/hooks
```
-| Attribute | Type | Required | Description |
-|------------------------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `url` | string | Yes | The hook URL. |
-| `confidential_issues_events` | boolean | No | Trigger hook on confidential issues events. |
-| `confidential_note_events` | boolean | No | Trigger hook on confidential note events. |
-| `deployment_events` | boolean | No | Trigger hook on deployment events. |
-| `enable_ssl_verification` | boolean | No | Do SSL verification when triggering the hook. |
-| `issues_events` | boolean | No | Trigger hook on issues events. |
-| `job_events` | boolean | No | Trigger hook on job events. |
-| `merge_requests_events` | boolean | No | Trigger hook on merge requests events. |
-| `note_events` | boolean | No | Trigger hook on note events. |
-| `pipeline_events` | boolean | No | Trigger hook on pipeline events. |
-| `push_events_branch_filter` | string | No | Trigger hook on push events for matching branches only. |
-| `push_events` | boolean | No | Trigger hook on push events. |
-| `releases_events` | boolean | No | Trigger hook on release events. |
-| `tag_push_events` | boolean | No | Trigger hook on tag push events. |
-| `token` | string | No | Secret token to validate received payloads; the token isn't returned in the response. |
-| `wiki_page_events` | boolean | No | Trigger hook on wiki events. |
+| Attribute | Type | Required | Description |
+|------------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `url` | string | Yes | The hook URL. |
+| `confidential_issues_events` | boolean | No | Trigger hook on confidential issues events. |
+| `confidential_note_events` | boolean | No | Trigger hook on confidential note events. |
+| `deployment_events` | boolean | No | Trigger hook on deployment events. |
+| `enable_ssl_verification` | boolean | No | Do SSL verification when triggering the hook. |
+| `issues_events` | boolean | No | Trigger hook on issues events. |
+| `job_events` | boolean | No | Trigger hook on job events. |
+| `merge_requests_events` | boolean | No | Trigger hook on merge requests events. |
+| `note_events` | boolean | No | Trigger hook on note events. |
+| `pipeline_events` | boolean | No | Trigger hook on pipeline events. |
+| `push_events_branch_filter` | string | No | Trigger hook on push events for matching branches only. |
+| `push_events` | boolean | No | Trigger hook on push events. |
+| `releases_events` | boolean | No | Trigger hook on release events. |
+| `tag_push_events` | boolean | No | Trigger hook on tag push events. |
+| `token` | string | No | Secret token to validate received payloads; the token isn't returned in the response. |
+| `wiki_page_events` | boolean | No | Trigger hook on wiki events. |
### Edit project hook
@@ -2803,26 +2805,26 @@ Edits a hook for a specified project.
PUT /projects/:id/hooks/:hook_id
```
-| Attribute | Type | Required | Description |
-|------------------------------|----------------|------------------------|-------------|
-| `hook_id` | integer | Yes | The ID of the project hook. |
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `url` | string | Yes | The hook URL. |
-| `confidential_issues_events` | boolean | No | Trigger hook on confidential issues events. |
-| `confidential_note_events` | boolean | No | Trigger hook on confidential note events. |
-| `deployment_events` | boolean | No | Trigger hook on deployment events. |
-| `enable_ssl_verification` | boolean | No | Do SSL verification when triggering the hook. |
-| `issues_events` | boolean | No | Trigger hook on issues events. |
-| `job_events` | boolean | No | Trigger hook on job events. |
-| `merge_requests_events` | boolean | No | Trigger hook on merge requests events. |
-| `note_events` | boolean | No | Trigger hook on note events. |
-| `pipeline_events` | boolean | No | Trigger hook on pipeline events. |
-| `push_events_branch_filter` | string | No | Trigger hook on push events for matching branches only. |
-| `push_events` | boolean | No | Trigger hook on push events. |
-| `releases_events` | boolean | No | Trigger hook on release events. |
-| `tag_push_events` | boolean | No | Trigger hook on tag push events. |
-| `token` | string | No | Secret token to validate received payloads. Not returned in the response. When you change the webhook URL, the secret token is reset and not retained. |
-| `wiki_page_events` | boolean | No | Trigger hook on wiki page events. |
+| Attribute | Type | Required | Description |
+|------------------------------|-------------------|----------|-------------|
+| `hook_id` | integer | Yes | The ID of the project hook. |
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `url` | string | Yes | The hook URL. |
+| `confidential_issues_events` | boolean | No | Trigger hook on confidential issues events. |
+| `confidential_note_events` | boolean | No | Trigger hook on confidential note events. |
+| `deployment_events` | boolean | No | Trigger hook on deployment events. |
+| `enable_ssl_verification` | boolean | No | Do SSL verification when triggering the hook. |
+| `issues_events` | boolean | No | Trigger hook on issues events. |
+| `job_events` | boolean | No | Trigger hook on job events. |
+| `merge_requests_events` | boolean | No | Trigger hook on merge requests events. |
+| `note_events` | boolean | No | Trigger hook on note events. |
+| `pipeline_events` | boolean | No | Trigger hook on pipeline events. |
+| `push_events_branch_filter` | string | No | Trigger hook on push events for matching branches only. |
+| `push_events` | boolean | No | Trigger hook on push events. |
+| `releases_events` | boolean | No | Trigger hook on release events. |
+| `tag_push_events` | boolean | No | Trigger hook on tag push events. |
+| `token` | string | No | Secret token to validate received payloads. Not returned in the response. When you change the webhook URL, the secret token is reset and not retained. |
+| `wiki_page_events` | boolean | No | Trigger hook on wiki page events. |
### Delete project hook
@@ -2833,10 +2835,10 @@ multiple times. Either the hook is available or not.
DELETE /projects/:id/hooks/:hook_id
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `hook_id` | integer | Yes | The ID of the project hook. |
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `hook_id` | integer | Yes | The ID of the project hook. |
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
Note the JSON response differs if the hook is available or not. If the project
hook is available before it's returned in the JSON response or an empty response
@@ -2853,10 +2855,10 @@ Available only for project owners and administrators.
POST /projects/:id/fork/:forked_from_id
```
-| Attribute | Type | Required | Description |
-|------------------|----------------|------------------------|-------------|
-| `forked_from_id` | ID | Yes | The ID of the project that was forked from. |
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|------------------|-------------------|----------|-------------|
+| `forked_from_id` | ID | Yes | The ID of the project that was forked from. |
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
### Delete an existing forked from relationship
@@ -2864,9 +2866,9 @@ POST /projects/:id/fork/:forked_from_id
DELETE /projects/:id/fork
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
## Search for projects by name
@@ -2878,11 +2880,11 @@ accessible.
GET /projects
```
-| Attribute | Type | Required | Description |
-|------------|--------|------------------------|-------------|
-| `search` | string | Yes | A string contained in the project name. |
-| `order_by` | string | No | Return requests ordered by `id`, `name`, `created_at` or `last_activity_at` fields. |
-| `sort` | string | No | Return requests sorted in `asc` or `desc` order. |
+| Attribute | Type | Required | Description |
+|------------|--------|----------|-------------|
+| `search` | string | Yes | A string contained in the project name. |
+| `order_by` | string | No | Return requests ordered by `id`, `name`, `created_at` or `last_activity_at` fields. |
+| `sort` | string | No | Return requests sorted in `asc` or `desc` order. |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects?search=test"
@@ -2894,10 +2896,10 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a
POST /projects/:id/housekeeping
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `task` | string | No | `prune` to trigger manual prune of unreachable objects or `eager` to trigger eager housekeeping. |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `task` | string | No | `prune` to trigger manual prune of unreachable objects or `eager` to trigger eager housekeeping. |
## Push rules **(PREMIUM ALL)**
@@ -2910,9 +2912,9 @@ project.
GET /projects/:id/push_rule
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) |
```json
{
@@ -2942,21 +2944,21 @@ Adds a push rule to a specified project.
POST /projects/:id/push_rule
```
-| Attribute | Type | Required | Description |
-|-----------------------------------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `author_email_regex` | string | No | All commit author emails must match this, for example `@my-company.com$`. |
-| `branch_name_regex` | string | No | All branch names must match this, for example `(feature|hotfix)\/*`. |
-| `commit_committer_check` | boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. |
-| `commit_committer_name_check` | boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. |
-| `commit_message_negative_regex` | string | No | No commit message is allowed to match this, for example `ssh\:\/\/`. |
-| `commit_message_regex` | string | No | All commit messages must match this, for example `Fixed \d+\..*`. |
-| `deny_delete_tag` | boolean | No | Deny deleting a tag. |
-| `file_name_regex` | string | No | All committed file names must **not** match this, for example `(jar|exe)$`. |
-| `max_file_size` | integer | No | Maximum file size (MB). |
-| `member_check` | boolean | No | Restrict commits by author (email) to existing GitLab users. |
-| `prevent_secrets` | boolean | No | GitLab rejects any files that are likely to contain secrets. |
-| `reject_unsigned_commits` | boolean | No | Reject commit when it's not signed through GPG. |
+| Attribute | Type | Required | Description |
+|---------------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `author_email_regex` | string | No | All commit author emails must match this, for example `@my-company.com$`. |
+| `branch_name_regex` | string | No | All branch names must match this, for example `(feature |
+| `commit_committer_check` | boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. |
+| `commit_committer_name_check` | boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. |
+| `commit_message_negative_regex` | string | No | No commit message is allowed to match this, for example `ssh\:\/\/`. |
+| `commit_message_regex` | string | No | All commit messages must match this, for example `Fixed \d+\..*`. |
+| `deny_delete_tag` | boolean | No | Deny deleting a tag. |
+| `file_name_regex` | string | No | All committed file names must **not** match this, for example `(jar |
+| `max_file_size` | integer | No | Maximum file size (MB). |
+| `member_check` | boolean | No | Restrict commits by author (email) to existing GitLab users. |
+| `prevent_secrets` | boolean | No | GitLab rejects any files that are likely to contain secrets. |
+| `reject_unsigned_commits` | boolean | No | Reject commit when it's not signed through GPG. |
### Edit project push rule
@@ -2966,21 +2968,21 @@ Edits a push rule for a specified project.
PUT /projects/:id/push_rule
```
-| Attribute | Type | Required | Description |
-|-----------------------------------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `author_email_regex` | string | No | All commit author emails must match this, for example `@my-company.com$`. |
-| `branch_name_regex` | string | No | All branch names must match this, for example `(feature|hotfix)\/*`. |
-| `commit_committer_check` | boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. |
-| `commit_committer_name_check` | boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. |
-| `commit_message_negative_regex` | string | No | No commit message is allowed to match this, for example `ssh\:\/\/`. |
-| `commit_message_regex` | string | No | All commit messages must match this, for example `Fixed \d+\..*`. |
-| `deny_delete_tag` | boolean | No | Deny deleting a tag. |
-| `file_name_regex` | string | No | All committed file names must **not** match this, for example `(jar|exe)$`. |
-| `max_file_size` | integer | No | Maximum file size (MB). |
-| `member_check` | boolean | No | Restrict commits by author (email) to existing GitLab users. |
-| `prevent_secrets` | boolean | No | GitLab rejects any files that are likely to contain secrets. |
-| `reject_unsigned_commits` | boolean | No | Reject commits when they are not GPG signed. |
+| Attribute | Type | Required | Description |
+|---------------------------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `author_email_regex` | string | No | All commit author emails must match this, for example `@my-company.com$`. |
+| `branch_name_regex` | string | No | All branch names must match this, for example `(feature |
+| `commit_committer_check` | boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. |
+| `commit_committer_name_check` | boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. |
+| `commit_message_negative_regex` | string | No | No commit message is allowed to match this, for example `ssh\:\/\/`. |
+| `commit_message_regex` | string | No | All commit messages must match this, for example `Fixed \d+\..*`. |
+| `deny_delete_tag` | boolean | No | Deny deleting a tag. |
+| `file_name_regex` | string | No | All committed file names must **not** match this, for example `(jar |
+| `max_file_size` | integer | No | Maximum file size (MB). |
+| `member_check` | boolean | No | Restrict commits by author (email) to existing GitLab users. |
+| `prevent_secrets` | boolean | No | GitLab rejects any files that are likely to contain secrets. |
+| `reject_unsigned_commits` | boolean | No | Reject commits when they are not GPG signed. |
### Delete project push rule
@@ -2992,9 +2994,9 @@ Removes a push rule from a project.
DELETE /projects/:id/push_rule
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
## Get groups to which a user can transfer a project
@@ -3006,10 +3008,10 @@ Retrieve a list of groups to which the user can transfer a project.
GET /projects/:id/transfer_locations
```
-| Attribute | Type | Required | Description |
-|-------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `search` | string | No | The group names to search for. |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `search` | string | No | The group names to search for. |
Example request:
@@ -3051,10 +3053,10 @@ for prerequisites to transfer a project.
PUT /projects/:id/transfer
```
-| Attribute | Type | Required | Description |
-|-------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `namespace` | integer or string | Yes | The ID or path of the namespace to transfer to project to. |
+| Attribute | Type | Required | Description |
+|-------------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `namespace` | integer or string | Yes | The ID or path of the namespace to transfer to project to. |
Example request:
@@ -3202,9 +3204,9 @@ GET /projects/:id/mirror/pull
Supported attributes:
-| Attribute | Type | Required | Description |
-|:----------|:------|:------------|:------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
Example request:
@@ -3242,13 +3244,13 @@ you can add the authentication information to the URL:
where `token` is a [personal access token](../user/profile/personal_access_tokens.md)
with the API scope enabled.
-| Attribute | Type | Required | Description |
-|--------------|---------|------------------------|-------------|
-| `import_url` | string | Yes | URL of remote repository being mirrored (with `user:token` if needed). |
-| `mirror` | boolean | Yes | Enables pull mirroring on project when set to `true`. |
-| `mirror_trigger_builds`| boolean | No | Trigger pipelines for mirror updates when set to `true`. |
-| `only_mirror_protected_branches`| boolean | No | Limits mirroring to only protected branches when set to `true`. |
-| `mirror_branch_regex` | String | No | Contains a regular expression. Only branches with names matching the regex are mirrored. Requires `only_mirror_protected_branches` to be disabled. |
+| Attribute | Type | Required | Description |
+|----------------------------------|---------|----------|-------------|
+| `import_url` | string | Yes | URL of remote repository being mirrored (with `user:token` if needed). |
+| `mirror` | boolean | Yes | Enables pull mirroring on project when set to `true`. |
+| `mirror_trigger_builds` | boolean | No | Trigger pipelines for mirror updates when set to `true`. |
+| `only_mirror_protected_branches` | boolean | No | Limits mirroring to only protected branches when set to `true`. |
+| `mirror_branch_regex` | String | No | Contains a regular expression. Only branches with names matching the regex are mirrored. Requires `only_mirror_protected_branches` to be disabled. |
Example creating a project with pull mirroring:
@@ -3288,9 +3290,9 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
POST /projects/:id/mirror/pull
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"
@@ -3315,10 +3317,10 @@ snapshot may allow some of the data to be retrieved.
GET /projects/:id/snapshot
```
-| Attribute | Type | Required | Description |
-|-----------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `wiki` | boolean | No | Whether to download the wiki, rather than project, repository. |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| `wiki` | boolean | No | Whether to download the wiki, rather than project, repository. |
## Get the path to repository storage
@@ -3333,9 +3335,9 @@ Available for administrators only.
GET /projects/:id/storage
```
-| Attribute | Type | Required | Description |
-|--------------|----------------|------------------------|-------------|
-| `id` | integer or string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
+| Attribute | Type | Required | Description |
+|-----------|-------------------|----------|-------------|
+| `id` | integer or string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
```json
[
diff --git a/doc/api/rest/index.md b/doc/api/rest/index.md
index 76db6273399..1b943f37e3f 100644
--- a/doc/api/rest/index.md
+++ b/doc/api/rest/index.md
@@ -1,6 +1,7 @@
---
stage: Manage
group: Import and Integrate
+description: Programmatic interaction with GitLab.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/api/runners.md b/doc/api/runners.md
index ac854a477d3..373fc4e4344 100644
--- a/doc/api/runners.md
+++ b/doc/api/runners.md
@@ -14,6 +14,7 @@ This page describes endpoints for runners registered to an instance. To create a
GET /runners
GET /runners/all
GET /runners/:id/jobs
+GET /runners/:id/managers/:system_id/jobs
GET /projects/:id/runners
GET /groups/:id/runners
```
@@ -367,7 +368,7 @@ NOTE:
The `active` form attribute was deprecated [in GitLab 14.8](https://gitlab.com/gitlab-org/gitlab/-/issues/347211).
and will be removed in [a future version of the REST API](https://gitlab.com/gitlab-org/gitlab/-/issues/351109). It is replaced by the `paused` attribute.
-## List runner's jobs
+## List jobs processed by a runner
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15432) in GitLab 10.3.
@@ -378,12 +379,13 @@ to projects where the user has at least the Reporter role.
GET /runners/:id/jobs
```
-| Attribute | Type | Required | Description |
-|-----------|---------|----------|---------------------|
-| `id` | integer | yes | The ID of a runner |
-| `status` | string | no | Status of the job; one of: `running`, `success`, `failed`, `canceled` |
-| `order_by`| string | no | Order jobs by `id` |
-| `sort` | string | no | Sort jobs in `asc` or `desc` order (default: `desc`). Specify `order_by` as well, including for `id`. |
+| Attribute | Type | Required | Description |
+|-------------|---------|----------|---------------------|
+| `id` | integer | yes | The ID of a runner |
+| `system_id` | string | no | System ID of the machine where the runner manager is running |
+| `status` | string | no | Status of the job; one of: `running`, `success`, `failed`, `canceled` |
+| `order_by` | string | no | Order jobs by `id` |
+| `sort` | string | no | Sort jobs in `asc` or `desc` order (default: `desc`). If `sort` is specified, `order_by` must be specified as well |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/1/jobs?status=running"
diff --git a/doc/api/search.md b/doc/api/search.md
index f452d7f0398..68b845227db 100644
--- a/doc/api/search.md
+++ b/doc/api/search.md
@@ -384,7 +384,7 @@ NOTE:
This scope is available only if [Elasticsearch](../integration/advanced_search/elasticsearch.md) is enabled.
```shell
-curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=notes&search=maxime"
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=notes&search=maxime"
```
Example response:
@@ -775,7 +775,7 @@ NOTE:
This scope is available only if [Elasticsearch](../integration/advanced_search/elasticsearch.md) is enabled.
```shell
-curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=notes&search=maxime"
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/6/search?scope=notes&search=maxime"
```
Example response:
@@ -1023,8 +1023,6 @@ Example response:
> Moved to GitLab Premium in 13.9.
-This scope is available only if [Elasticsearch](../integration/advanced_search/elasticsearch.md) is enabled.
-
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=notes&search=maxime"
```
@@ -1060,8 +1058,6 @@ Example response:
> Moved to GitLab Premium in 13.9.
-This scope is available only if [Elasticsearch](../integration/advanced_search/elasticsearch.md) is enabled.
-
Filters are available for this scope:
- filename
@@ -1144,8 +1140,6 @@ Example response:
> Moved to GitLab Premium in 13.9.
-This scope is available only if [Elasticsearch](../integration/advanced_search/elasticsearch.md) is enabled.
-
Filters are available for this scope:
- Filename
diff --git a/doc/api/secure_files.md b/doc/api/secure_files.md
index 2e133522cb9..87c39520942 100644
--- a/doc/api/secure_files.md
+++ b/doc/api/secure_files.md
@@ -91,8 +91,8 @@ Supported attributes:
| Attribute | Type | Required | Description |
|--------------|----------------|----------|-------------|
-| `project_id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
| `id` | integer | Yes | The ID of a secure file. |
+| `project_id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
Example request:
@@ -126,9 +126,9 @@ Supported attributes:
| Attribute | Type | Required | Description |
|-----------------|----------------|----------|-------------|
-| `project_id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
-| `name` | string | Yes | The name of the file being uploaded. The file name must be unique in the project. |
| `file` | file | Yes | The file being uploaded (5 MB limit). |
+| `name` | string | Yes | The name of the file being uploaded. The file name must be unique in the project. |
+| `project_id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
Example request:
@@ -163,8 +163,8 @@ Supported attributes:
| Attribute | Type | Required | Description |
|--------------|----------------|----------|-------------|
-| `project_id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
| `id` | integer | Yes | The ID of a secure file. |
+| `project_id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
Example request:
@@ -184,8 +184,8 @@ Supported attributes:
| Attribute | Type | Required | Description |
|--------------|----------------|----------|-------------|
-| `project_id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
| `id` | integer | Yes | The ID of a secure file. |
+| `project_id` | integer/string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). |
Example request:
diff --git a/doc/api/settings.md b/doc/api/settings.md
index cf34cf3d65e..bde4c769b92 100644
--- a/doc/api/settings.md
+++ b/doc/api/settings.md
@@ -527,7 +527,7 @@ listed in the descriptions of the relevant settings.
| `protected_ci_variables` | boolean | no | CI/CD variables are protected by default. |
| `disable_overriding_approvers_per_merge_request` | boolean | no | Prevent editing approval rules in projects and merge requests |
| `prevent_merge_requests_author_approval` | boolean | no | Prevent approval by author |
-| `prevent_merge_requests_committers_approval` | boolean | no | Prevent editing approval rules in projects and merge requests |
+| `prevent_merge_requests_committers_approval` | boolean | no | Prevent approval by committers to merge requests |
| `push_event_activities_limit` | integer | no | Maximum number of changes (branches or tags) in a single push above which a [bulk push event is created](../administration/settings/push_event_activities_limit.md). Setting to `0` does not disable throttling. |
| `push_event_hooks_limit` | integer | no | Maximum number of changes (branches or tags) in a single push above which webhooks and integrations are not triggered. Setting to `0` does not disable throttling. |
| `rate_limiting_response_text` | string | no | When rate limiting is enabled via the `throttle_*` settings, send this plain text response when a rate limit is exceeded. 'Retry later' is sent if this is blank. |
diff --git a/doc/api/statistics.md b/doc/api/statistics.md
index 8868f6d5190..fc0aa9a0b39 100644
--- a/doc/api/statistics.md
+++ b/doc/api/statistics.md
@@ -12,7 +12,8 @@ List the current statistics of the GitLab instance. You have to be an
administrator to perform this action.
NOTE:
-These statistics are approximate.
+These statistics show exact counts for values less than 10,000. For values of 10,000 and higher, these statistics show approximate data
+when [TablesampleCountStrategy](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/database/count/tablesample_count_strategy.rb?ref_type=heads#L16) and [ReltuplesCountStrategy](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/database/count/reltuples_count_strategy.rb?ref_type=heads) strategies are used for calculations.
```plaintext
GET /application/statistics
diff --git a/doc/api/templates/gitlab_ci_ymls.md b/doc/api/templates/gitlab_ci_ymls.md
index 96b2247600d..25667a2e7f7 100644
--- a/doc/api/templates/gitlab_ci_ymls.md
+++ b/doc/api/templates/gitlab_ci_ymls.md
@@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
In GitLab, there is an API endpoint available to work with GitLab CI/CD YAML. For more
information on CI/CD pipeline configuration in GitLab, see the
-[configuration reference documentation](../../ci/yaml/index.md).
+[CI/CD YAML syntax reference](../../ci/yaml/index.md).
## List GitLab CI YAML templates
diff --git a/doc/api/users.md b/doc/api/users.md
index 31fe6234ad2..cd911196f74 100644
--- a/doc/api/users.md
+++ b/doc/api/users.md
@@ -25,8 +25,6 @@ GET /users
| Attribute | Type | Required | Description |
| ------------------ | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |
| `username` | string | no | Get a single user with a specific username. |
-| `extern_uid` | string | no | Get a single user with a specific external authentication provider UID. |
-| `provider` | string | no | The external provider. |
| `search` | string | no | Search for a username. |
| `active` | boolean | no | Filters only active users. Default is `false`. |
| `external` | boolean | no | Filters only external users. Default is `false`. |
@@ -146,6 +144,8 @@ You can use all [parameters available for everyone](#for-non-administrator-users
| Attribute | Type | Required | Description |
| ------------------ | ------- | -------- | --------------------------------------------------------------------------------------------------------------------- |
+| `extern_uid` | string | no | Get a single user with a specific external authentication provider UID. |
+| `provider` | string | no | The external provider. |
| `order_by` | string | no | Return users ordered by `id`, `name`, `username`, `created_at`, or `updated_at` fields. Default is `id` |
| `sort` | string | no | Return users sorted in `asc` or `desc` order. Default is `desc` |
| `two_factor` | string | no | Filter users by Two-factor authentication. Filter values are `enabled` or `disabled`. By default it returns all users |
@@ -554,6 +554,7 @@ Parameters:
| `bio` | No | User's biography |
| `can_create_group` | No | User can create top-level groups - true or false |
| `color_scheme_id` | No | User's color scheme for the file viewer (for more information, see the [user preference documentation](../user/profile/preferences.md#change-the-syntax-highlighting-theme)) |
+| `commit_email` | No | User's commit email address |
| `email` | Yes | Email |
| `extern_uid` | No | External UID |
| `external` | No | Flags the user as external - true or false (default) |
@@ -568,7 +569,9 @@ Parameters:
| `password` | No | Password |
| `private_profile` | No | User's profile is private - true or false. The default value is determined by [this](../administration/settings/account_and_limit_settings.md#set-profiles-of-new-users-to-private-by-default) setting. |
| `projects_limit` | No | Number of projects user can create |
+| `pronouns` | No | User's pronouns |
| `provider` | No | External provider name |
+| `public_email` | No | User's public email address |
| `reset_password` | No | Send user password reset link - true or false(default) |
| `shared_runners_minutes_limit` **(PREMIUM ALL)** | No | Can be set by administrators only. Maximum number of monthly compute minutes for this user. Can be `nil` (default; inherit system default), `0` (unlimited), or `> 0`. |
| `skip_confirmation` | No | Skip confirmation - true or false (default) |
@@ -910,11 +913,6 @@ Example response:
}
```
-Users on [GitLab Premium or Ultimate](https://about.gitlab.com/pricing/) also see these
-preferences if `code_suggestions_used_by_default` feature flag is disabled:
-
-- `code_suggestions`
-
Parameters:
- **none**
@@ -945,12 +943,6 @@ Parameters:
| `show_whitespace_in_diffs` | Yes | Flag indicating the user sees whitespace changes in diffs. |
| `pass_user_identities_to_ci_jwt` | Yes | Flag indicating the user passes their external identities as CI information. This attribute does not contain enough information to identify or authorize the user in an external system. The attribute is internal to GitLab, and must not be passed to third-party services. For more information and examples, see [Token Payload](../ci/secrets/id_token_authentication.md#token-payload). |
-Users on [GitLab Premium or Ultimate](https://about.gitlab.com/pricing/) also can update these parameters:
-
-| Attribute | Required | Description |
-|:---------------------------------|:---------|:---------------------------------------------------|
-| `code_suggestions` | No | Flag indicating the user allows code suggestions. Argument is experimental and can be removed in the future without notice. In GitLab 16.8 and later, this attribute is ignored if `code_suggestions_used_by_default` feature flag is enabled. |
-
## User follow
### Follow and unfollow users
diff --git a/doc/api/vulnerability_exports.md b/doc/api/vulnerability_exports.md
index 3be1dccea29..f2e0784cda7 100644
--- a/doc/api/vulnerability_exports.md
+++ b/doc/api/vulnerability_exports.md
@@ -187,11 +187,12 @@ The response is `404 Not Found` if the vulnerability export is not finished yet
Example response:
```csv
-Group Name,Project Name,Tool,Scanner Name,Status,Vulnerability,Details,Additional Info,Severity,CVE,CWE,Other Identifiers,Detected At,Location,Activity,Comments,Full Path
-Gitlab.org,Defend,container_scanning,Trivy,resolved,CVE-2019-14697 in musl-utils-1.1.20-r4,"musl libc through 1.1.23 has an x87 floating-point stack adjustment imbalance, related to the math/i386/ directory. In some cases, use of this library could introduce out-of-bounds writes that are not present in an application's source code.",CVE-2019-14697 in musl-utils-1.1.20-r4,critical,CVE-2019-14697,,"",2022-10-07 13:34:41 UTC,"{""image""=>""python:3.4-alpine"", ""dependency""=>{""package""=>{""name""=>""musl-utils""}, ""version""=>""1.1.20-r4""}, ""operating_system""=>""alpine 3.9.2""}",true,"2022-10-07 13:41:08 UTC|root|resolved|changed vulnerability status to resolved",group/project/1
-Gitlab.org,Defend,container_scanning,Trivy,detected,CVE-2019-19242 in sqlite-libs-3.26.0-r3,"SQLite 3.30.1 mishandles pExpr->y.pTab, as demonstrated by the TK_COLUMN case in sqlite3ExprCodeTarget in expr.c.",CVE-2019-19242 in sqlite-libs-3.26.0-r3,medium,CVE-2019-19242,,"",2022-10-07 13:34:41 UTC,"{""image""=>""python:3.4-alpine"", ""dependency""=>{""package""=>{""name""=>""sqlite-libs""}, ""version""=>""3.26.0-r3""}, ""operating_system""=>""alpine 3.9.2""}",true,"",group/project/2
-Gitlab.org,Defend,container_scanning,Trivy,detected,CVE-2020-28928 in musl-1.1.20-r4,"In musl libc through 1.2.1, wcsnrtombs mishandles particular combinations of destination buffer size and source character limit, as demonstrated by an invalid write access (buffer overflow).",CVE-2020-28928 in musl-1.1.20-r4,medium,CVE-2020-28928,,"",2022-10-07 13:34:41 UTC,"{""image""=>""python:3.4-alpine"", ""dependency""=>{""package""=>{""name""=>""musl""}, ""version""=>""1.1.20-r4""}, ""operating_system""=>""alpine 3.9.2""}",true,"",group/project/3
-Gitlab.org,Defend,dependency_scanning,Gemnasium,detected,Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in rack,Carefully crafted requests can cause shell escape sequences to be written to the terminal via Rack's Lint middleware and CommonLogger middleware. These escape sequences can be leveraged to possibly execute commands in the victim's terminal.,Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in rack,unknown,Gemfile.lock:rack:gemnasium:60b5a27f-4e4d-4ab4-8ae7-74b4b212e177,,Gemnasium-60b5a27f-4e4d-4ab4-8ae7-74b4b212e177; GHSA-wq4h-7r42-5hrr,2022-10-14 13:16:00 UTC,"{""file""=>""Gemfile.lock"", ""dependency""=>{""package""=>{""name""=>""rack""}, ""version""=>""2.2.3""}}",false,"",group/project/4
-Gitlab.org,Defend,dependency_scanning,Gemnasium,detected,Denial of Service Vulnerability in Rack Multipart Parsing in rack,"Carefully crafted multipart POST requests can cause Rack's multipart parser to take much longer than expected, leading to a possible denial of service vulnerability. Impacted code will use Rack's multipart parser to parse multipart posts.",Denial of Service Vulnerability in Rack Multipart Parsing in rack,unknown,Gemfile.lock:rack:gemnasium:20daa17a-47b5-4f79-80c2-cd8f2db9805c,,Gemnasium-20daa17a-47b5-4f79-80c2-cd8f2db9805c; GHSA-hxqx-xwvh-44m2,2022-10-14 13:16:00 UTC,"{""file""=>""Gemfile.lock"", ""dependency""=>{""package""=>{""name""=>""rack""}, ""version""=>""2.2.3""}}",false,"",group/project/5
-Gitlab.org,Defend,sast,Brakeman,detected,Possible SQL injection,,Possible SQL injection,medium,e52f23a259cd489168b4313317ac94a3f13bffde57b9635171c1a44a9f329e9a,,"""Brakeman Warning Code 0""",2022-10-13 15:16:36 UTC,"{""file""=>""main.rb"", ""class""=>""User"", ""method""=>""index"", ""start_line""=>3}",false,"",group/project/6
+Group Name,Project Name,Tool,Scanner Name,Status,Vulnerability,Details,Additional Info,Severity,CVE,CWE,Other Identifiers,Detected At,Location,Activity,Comments,Full Path,CVSS Vectors,Dismissal Reason
+Gitlab.org,Defend,container_scanning,Trivy,resolved,CVE-2019-14697 in musl-utils-1.1.20-r4,"musl libc through 1.1.23 has an x87 floating-point stack adjustment imbalance, related to the math/i386/ directory. In some cases, use of this library could introduce out-of-bounds writes that are not present in an application's source code.",CVE-2019-14697 in musl-utils-1.1.20-r4,critical,CVE-2019-14697,,"",2022-10-07 13:34:41 UTC,"{""image""=>""python:3.4-alpine"", ""dependency""=>{""package""=>{""name""=>""musl-utils""}, ""version""=>""1.1.20-r4""}, ""operating_system""=>""alpine 3.9.2""}",true,"2022-10-07 13:41:08 UTC|root|resolved|changed vulnerability status to resolved",group/project/1,,,
+Gitlab.org,Defend,container_scanning,Trivy,detected,CVE-2019-19242 in sqlite-libs-3.26.0-r3,"SQLite 3.30.1 mishandles pExpr->y.pTab, as demonstrated by the TK_COLUMN case in sqlite3ExprCodeTarget in expr.c.",CVE-2019-19242 in sqlite-libs-3.26.0-r3,medium,CVE-2019-19242,,"",2022-10-07 13:34:41 UTC,"{""image""=>""python:3.4-alpine"", ""dependency""=>{""package""=>{""name""=>""sqlite-libs""}, ""version""=>""3.26.0-r3""}, ""operating_system""=>""alpine 3.9.2""}",true,"",group/project/2,,,
+Gitlab.org,Defend,container_scanning,Trivy,detected,CVE-2020-28928 in musl-1.1.20-r4,"In musl libc through 1.2.1, wcsnrtombs mishandles particular combinations of destination buffer size and source character limit, as demonstrated by an invalid write access (buffer overflow).",CVE-2020-28928 in musl-1.1.20-r4,medium,CVE-2020-28928,,"",2022-10-07 13:34:41 UTC,"{""image""=>""python:3.4-alpine"", ""dependency""=>{""package""=>{""name""=>""musl""}, ""version""=>""1.1.20-r4""}, ""operating_system""=>""alpine 3.9.2""}",true,"",group/project/3,,,
+Gitlab.org,Defend,dependency_scanning,Gemnasium,detected,Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in rack,Carefully crafted requests can cause shell escape sequences to be written to the terminal via Rack's Lint middleware and CommonLogger middleware. These escape sequences can be leveraged to possibly execute commands in the victim's terminal.,Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in rack,unknown,Gemfile.lock:rack:gemnasium:60b5a27f-4e4d-4ab4-8ae7-74b4b212e177,,Gemnasium-60b5a27f-4e4d-4ab4-8ae7-74b4b212e177; GHSA-wq4h-7r42-5hrr,2022-10-14 13:16:00 UTC,"{""file""=>""Gemfile.lock"", ""dependency""=>{""package""=>{""name""=>""rack""}, ""version""=>""2.2.3""}}",false,group/project/4,,,
+Gitlab.org,Defend,dependency_scanning,Gemnasium,detected,Denial of Service Vulnerability in Rack Multipart Parsing in rack,"Carefully crafted multipart POST requests can cause Rack's multipart parser to take much longer than expected, leading to a possible denial of service vulnerability. Impacted code will use Rack's multipart parser to parse multipart posts.",Denial of Service Vulnerability in Rack Multipart Parsing in rack,unknown,Gemfile.lock:rack:gemnasium:20daa17a-47b5-4f79-80c2-cd8f2db9805c,,Gemnasium-20daa17a-47b5-4f79-80c2-cd8f2db9805c; GHSA-hxqx-xwvh-44m2,2022-10-14 13:16:00 UTC,"{""file""=>""Gemfile.lock"", ""dependency""=>{""package""=>{""name""=>""rack""}, ""version""=>""2.2.3""}}",false,group/project/5,,,
+Gitlab.org,Defend,sast,Brakeman,detected,Possible SQL injection,,Possible SQL injection,medium,e52f23a259cd489168b4313317ac94a3f13bffde57b9635171c1a44a9f329e9a,,"""Brakeman Warning Code 0""",2022-10-13 15:16:36 UTC,"{""file""=>""main.rb"", ""class""=>""User"", ""method""=>""index"", ""start_line""=>3}",false,"",group/project/6,,,
+Gitlab.org,Defend,sast,Semgrep,dismissed,Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection'),"SQL Injection is a critical vulnerability that can lead to data or system compromise...",,critical,,CWE-89,SCS0002,2023-12-28 10:48:34 UTC,"{""file""=>""WebGoat/App_Code/DB/SqliteDbProvider.cs"", ""start_line""=>274}",false,"2023-12-28 10:51:32 UTC|root|Dismissed|""changed vulnerability status to Dismissed: Not Applicable and the following comment: ""dismiss 5""",gitlab-org/defend/579,,Not applicable,
```
diff --git a/doc/architecture/blueprints/ai_gateway/index.md b/doc/architecture/blueprints/ai_gateway/index.md
index c09f8aaa621..e40861139d6 100644
--- a/doc/architecture/blueprints/ai_gateway/index.md
+++ b/doc/architecture/blueprints/ai_gateway/index.md
@@ -103,7 +103,7 @@ GitLab instances, JSON API, and gRPC differ on these items:
| + A new Ruby-gRPC server for vscode: likely faster because we can limit dependencies to load ([modular monolith](https://gitlab.com/gitlab-org/gitlab/-/issues/365293)) | - Existing Grape API for vscode: meaning slow boot time and unneeded resources loaded |
| + Bi-directional streaming | - Straight forward way to stream requests and responses (could still be added) |
| - A new Python-gRPC server: we don't have experience running gRPC-Python servers | + Existing Python fastapi server, already running for Code Suggestions to extend |
-| - Hard to pass on unknown messages from vscode through GitLab to ai-gateway | + Easier support for newer vscode + newer ai-gatway, through old GitLab instance |
+| - Hard to pass on unknown messages from vscode through GitLab to ai-gateway | + Easier support for newer VS Code + newer AI-gateway, through old GitLab instance |
| - Unknown support for gRPC in other clients (vscode, jetbrains, other editors) | + Support in all external clients |
| - Possible protocol mismatch (VSCode --REST--> Rails --gRPC--> AI gateway) | + Same protocol across the stack |
@@ -264,7 +264,7 @@ Another example use case includes 2 versions of a prompt passed in the `prompt_c
a field in the gateway, and keep them around for at least 2 major
versions of GitLab.**
-A good practise that might help support backwards compatibility is to provide building blocks for the prompt inside the `prompt_components` rather then a complete prompt. By moving responsibility of compiling prompt out of building blocks on the AI-Gateway, one can achive more flexibility in terms of prompt adjustments in the future.
+A good practice that might help support backward compatibility: provide building blocks for the prompt inside the `prompt_components`, rather then a complete prompt. By moving responsibility of compiling the prompt out of building blocks and into the AI-Gateway, more flexible prompt adjustments are possible in the future.
#### Example feature: Code Suggestions
@@ -503,7 +503,7 @@ It is deployed to a Kubernetes cluster in it's own project. There is a
staging environment that is currently used directly by engineers for
testing.
-In the future, this will be deloyed using
+In the future, this will be deployed using
[Runway](https://gitlab.com/gitlab-com/gl-infra/platform/runway/). At
that time, there will be a production and staging deployment. The
staging deployment can be used for automated QA-runs that will have
diff --git a/doc/architecture/blueprints/cells/impacted_features/git-access.md b/doc/architecture/blueprints/cells/impacted_features/git-access.md
index 611b4db5f43..d2d357d4178 100644
--- a/doc/architecture/blueprints/cells/impacted_features/git-access.md
+++ b/doc/architecture/blueprints/cells/impacted_features/git-access.md
@@ -6,12 +6,10 @@ description: 'Cells: Git Access'
<!-- vale gitlab.FutureTense = NO -->
-This document is a work-in-progress and represents a very early state of the
-Cells design. Significant aspects are not documented, though we expect to add
-them in the future. This is one possible architecture for Cells, and we intend to
-contrast this with alternatives before deciding which approach to implement.
-This documentation will be kept even if we decide not to implement this so that
-we can document the reasons for not choosing this approach.
+This document is a work-in-progress and represents a very early state of the Cells design.
+Significant aspects are not documented, though we expect to add them in the future.
+This is one possible architecture for Cells, and we intend to contrast this with alternatives before deciding which approach to implement.
+This documentation will be kept even if we decide not to implement this so that we can document the reasons for not choosing this approach.
# Cells: Git Access
@@ -146,11 +144,34 @@ Where:
Supporting Git repositories if a Cell can access only its own repositories does not appear to be complex.
The one major complication is supporting snippets, but this likely falls in the same category as for the approach to support a user's Personal Namespace.
-## 4.1. Pros
+### 4.1. Pros
1. The API used for supporting HTTPS/SSH and Hooks are well defined and can easily be made routable.
-## 4.2. Cons
+### 4.2. Cons
1. The sharing of repositories objects is limited to the given Cell and Gitaly node.
1. Cross-Cells forks are likely impossible to be supported (discover: How this works today across different Gitaly node).
+
+## 5. Forking and object pools
+
+One of the biggest struggles that needs to be addressed with the Cells architecture is how to handle forking. At present, Gitaly utilizes object pools to provide deduplication of fork storage. If forks are not created on the same storage node as the upstream repository that is being forked, we end up with significant storage inefficiencies as we will effectively have two complete copies of the repository and we will not be able to utilize object pools to improve performance.
+
+The storage nodes from one Cell cannot talk to the storage nodes of another Cell, making forking across Cells impossible. Therefore, it will be necessary to ensure that forked repositories end up in the same Cell (and on the same Gitaly nodes) as their upstream parent repository. This will also enable Gitaly to continue to utilize object pools to provide storage and performance efficiency.
+
+### 5.1. How this works today
+
+**Single Gitaly storage node**
+
+Currently, for a GitLab instance backed with a single Gitaly storage node, forking works just fine.
+Any forks must reside on the same storage node as there is only one, and therefore object deduplication (and object pools) all function as expected.
+
+**Sharded Gitaly storage**
+
+A sharded Gitaly storage is when multiple Gitaly storage nodes are attached to a single instance, and repositories are assigned based on a priority weighting between the nodes.
+
+Since Gitaly knows how to do cross-storage fetches, forking across shards works without issue.
+
+**Gitaly Cluster**
+
+For Gitaly cluster, we recently resolved [the issue](https://gitlab.com/gitlab-org/gitaly/-/issues/5094) of object pools not being created on the same storage nodes as the parent repository. This enables forking to work correctly from an efficiency perspective (can share an object pool) and from an object deduplication perspective (Git can properly deduplicate storage).
diff --git a/doc/architecture/blueprints/cells/impacted_features/personal-namespaces.md b/doc/architecture/blueprints/cells/impacted_features/personal-namespaces.md
index 757f83c32d3..d80f5c44b98 100644
--- a/doc/architecture/blueprints/cells/impacted_features/personal-namespaces.md
+++ b/doc/architecture/blueprints/cells/impacted_features/personal-namespaces.md
@@ -138,6 +138,6 @@ Cons:
## 4. Evaluation
-The most straightforward solution requiring the least engineering effort is to create [one personal Namespace in each Organization](#33-one-personal-namespace-in-each-organization).
-We recognize that this solution is not ideal for users working across multiple Organizations, but find this acceptable due to our expectation that most users will mainly work in one Organization.
-At a later point, this concept will be reviewed and possibly replaced with a better solution.
+We will begin by [making the personal namespace optional for Organizations](https://gitlab.com/groups/gitlab-org/-/epics/12179). The goal of this iteration is to disable personal namespaces for any Organization other than the default Organization, so that customers who do not want to use personal namespaces can already move to Organizations. The first phase will only change the Ruby on Rails model relationships in preparation for further changes at the user-facing level.
+
+We need to [split the concept of a User Profile and a personal namespace](https://gitlab.com/gitlab-org/gitlab/-/issues/432654) now that a User is cluster-wide and a User's personal namespace must be Cell-local. It is likely we will [discontinue personal namespaces](#34-discontinue-personal-namespaces) in favor of Groups.
diff --git a/doc/architecture/blueprints/cells/index.md b/doc/architecture/blueprints/cells/index.md
index 3b800a54781..6f00fe4e61e 100644
--- a/doc/architecture/blueprints/cells/index.md
+++ b/doc/architecture/blueprints/cells/index.md
@@ -305,8 +305,7 @@ It is expected that initial iterations will be rather slow, because they require
The Cells architecture has long lasting implications to data processing, location, scalability and the GitLab architecture.
This section links all different technical proposals that are being evaluated.
-- [Stateless Router That Uses a Cache to Pick Cell and Is Redirected When Wrong Cell Is Reached](proposal-stateless-router-with-buffering-requests.md)
-- [Stateless Router That Uses a Cache to Pick Cell and pre-flight `/api/v4/internal/cells/learn`](proposal-stateless-router-with-routes-learning.md)
+- [Routing Service](routing-service.md)
## Impacted features
diff --git a/doc/architecture/blueprints/cells/proposal-stateless-router-with-buffering-requests.md b/doc/architecture/blueprints/cells/proposal-stateless-router-with-buffering-requests.md
index 847532a36dc..699a41879a9 100644
--- a/doc/architecture/blueprints/cells/proposal-stateless-router-with-buffering-requests.md
+++ b/doc/architecture/blueprints/cells/proposal-stateless-router-with-buffering-requests.md
@@ -2,8 +2,11 @@
stage: enablement
group: Tenant Scale
description: 'Cells Stateless Router Proposal'
+status: rejected
---
+_This proposal was superseded by the [routing service proposal](routing-service.md)_
+
<!-- vale gitlab.FutureTense = NO -->
This document is a work-in-progress and represents a very early state of the
@@ -13,7 +16,7 @@ contrast this with alternatives before deciding which approach to implement.
This documentation will be kept even if we decide not to implement this so that
we can document the reasons for not choosing this approach.
-# Proposal: Stateless Router
+# Proposal: Stateless Router using Requests Buffering
We will decompose `gitlab_users`, `gitlab_routes` and `gitlab_admin` related
tables so that they can be shared between all cells and allow any cell to
diff --git a/doc/architecture/blueprints/cells/proposal-stateless-router-with-routes-learning.md b/doc/architecture/blueprints/cells/proposal-stateless-router-with-routes-learning.md
index cdcb5b8b21f..72b96e9ab8c 100644
--- a/doc/architecture/blueprints/cells/proposal-stateless-router-with-routes-learning.md
+++ b/doc/architecture/blueprints/cells/proposal-stateless-router-with-routes-learning.md
@@ -2,8 +2,11 @@
stage: enablement
group: Tenant Scale
description: 'Cells Stateless Router Proposal'
+status: rejected
---
+_This proposal was superseded by the [routing service proposal](routing-service.md)_
+
<!-- vale gitlab.FutureTense = NO -->
This document is a work-in-progress and represents a very early state of the
@@ -13,7 +16,7 @@ contrast this with alternatives before deciding which approach to implement.
This documentation will be kept even if we decide not to implement this so that
we can document the reasons for not choosing this approach.
-# Proposal: Stateless Router
+# Proposal: Stateless Router using Routes Learning
We will decompose `gitlab_users`, `gitlab_routes` and `gitlab_admin` related
tables so that they can be shared between all cells and allow any cell to
@@ -35,7 +38,7 @@ Organization can only be on a single Cell.
## Differences
The main difference between this proposal and one [with buffering requests](proposal-stateless-router-with-buffering-requests.md)
-is that this proposal uses a pre-flight API request (`/pi/v4/internal/cells/learn`) to redirect the request body to the correct Cell.
+is that this proposal uses a pre-flight API request (`/api/v4/internal/cells/learn`) to redirect the request body to the correct Cell.
This means that each request is sent exactly once to be processed, but the URI is used to decode which Cell it should be directed.
## Summary in diagrams
diff --git a/doc/architecture/blueprints/cells/routing-service.md b/doc/architecture/blueprints/cells/routing-service.md
index 9efdbdf3f91..bd5570b68f4 100644
--- a/doc/architecture/blueprints/cells/routing-service.md
+++ b/doc/architecture/blueprints/cells/routing-service.md
@@ -59,20 +59,23 @@ For example:
## Requirements
-| Requirement | Description | Priority |
-|---------------|-------------------------------------------------------------------|----------|
-| Discovery | needs to be able to discover and monitor the health of all Cells. | high |
-| Security | only authorized cells can be routed to | high |
-| Single domain | e.g. GitLab.com | high |
-| Caching | can cache routing information for performance | high |
-| [50 ms of increased latency](#low-latency) | | high |
-| Path-based | can make routing decision based on path | high |
-| Complexity | the routing service should be configuration-driven and small | high |
-| Stateless | does not need database, Cells provide all routing information | medium |
-| Secrets-based | can make routing decision based on secret (e.g. JWT) | medium |
-| Observability | can use existing observability tooling | low |
-| Self-managed | can be eventually used by [self-managed](goals.md#self-managed) | low |
-| Regional | can route requests to different [regions](goals.md#regions) | low |
+| Requirement | Description | Priority |
+| ------------------- | ----------------------------------------------------------------- | -------- |
+| Discovery | needs to be able to discover and monitor the health of all Cells. | high |
+| Security | only authorized cells can be routed to | high |
+| Single domain | for example GitLab.com | high |
+| Caching | can cache routing information for performance | high |
+| Low latency | [50 ms of increased latency](#low-latency) | high |
+| Path-based | can make routing decision based on path | high |
+| Complexity | the routing service should be configuration-driven and small | high |
+| Rolling | the routing service works with Cells running mixed versions | high |
+| Feature Flags | features can be turned on, off, and % rollout | high |
+| Progressive Rollout | we can slowly rollout a change | medium |
+| Stateless | does not need database, Cells provide all routing information | medium |
+| Secrets-based | can make routing decision based on secret (for example JWT) | medium |
+| Observability | can use existing observability tooling | low |
+| Self-managed | can be eventually used by [self-managed](goals.md#self-managed) | low |
+| Regional | can route requests to different [regions](goals.md#regions) | low |
### Low Latency
@@ -91,7 +94,7 @@ The main SLI we use is the [rails requests](../../../development/application_sli
It has multiple `satisfied` targets (apdex) depending on the [request urgency](../../../development/application_slis/rails_request.md#how-to-adjust-the-urgency):
| Urgency | Duration in ms |
-|------------|----------------|
+| ---------- | -------------- |
| `:high` | 250 _ms_ |
| `:medium` | 500 _ms_ |
| `:default` | 1000 _ms_ |
@@ -108,7 +111,7 @@ The way we calculate the headroom we have is by using the following:
**`web`**:
| Target Duration | Percentile | Headroom |
-|-----------------|------------|-----------|
+| --------------- | ---------- | --------- |
| 5000 _ms_ | p99 | 4000 _ms_ |
| 5000 _ms_ | p95 | 4500 _ms_ |
| 5000 _ms_ | p90 | 4600 _ms_ |
@@ -131,7 +134,7 @@ _Analysis was done in <https://gitlab.com/gitlab-org/gitlab/-/issues/432934#note
**`api`**:
| Target Duration | Percentile | Headroom |
-|-----------------|------------|-----------|
+| --------------- | ---------- | --------- |
| 5000 _ms_ | p99 | 3500 _ms_ |
| 5000 _ms_ | p95 | 4300 _ms_ |
| 5000 _ms_ | p90 | 4600 _ms_ |
@@ -154,7 +157,7 @@ _Analysis was done in <https://gitlab.com/gitlab-org/gitlab/-/issues/432934#note
**`git`**:
| Target Duration | Percentile | Headroom |
-|-----------------|------------|-----------|
+| --------------- | ---------- | --------- |
| 5000 _ms_ | p99 | 3760 _ms_ |
| 5000 _ms_ | p95 | 4280 _ms_ |
| 5000 _ms_ | p90 | 4430 _ms_ |
@@ -180,7 +183,585 @@ Not yet defined.
## Proposal
-TBD
+The Routing Service implements the following design guidelines:
+
+1. Simple:
+ - Routing service does not buffer requests.
+ - Routing service can only proxy to a single Cell based on request headers.
+1. Stateless:
+ - Routing service does not have permanent storage.
+ - Routing service uses multi-level cache: in-memory, external shared cache.
+1. Zero-trust:
+ - Routing service signs each request that is being proxied.
+ - The trust is established by using JWT token, or mutual authentication scheme.
+ - Cells can be available over public internet, as long as they follow the zero-trust model.
+1. Configuration-based:
+ - Routing service is configured with a static list of Cells.
+ - Routing service configuration is applied as part of service deployment.
+1. Rule-based:
+ - Routing service is deployed with a routing rules gathered from all Cells.
+ - Routing service does support rules lists generated by different versions of GitLab.
+ - rules allows to match by any criteria: header, content of the header, or route path.
+1. Agnostic:
+ - Routing service is not aware of high-level concepts like organizations.
+ - The classification is done per-specification provided in a rules, to find the sharding key.
+ - The sharding key result is cached.
+ - The single sharding key cached is used to handle many similar requests.
+
+The following diagram shows how a user request routes through DNS to the Routing Service deployed
+as Cloudflare Worker and the router chooses a cell to send the request to.
+
+```mermaid
+graph TD;
+ user((User));
+ router[Routing Service];
+ cell_us0{Cell US0};
+ cell_us1{Cell US1};
+ cell_eu0{Cell EU0};
+ cell_eu1{Cell EU1};
+ user-->router;
+ router-->cell_eu0;
+ router-->cell_eu1;
+ router-->cell_us0;
+ router-->cell_us1;
+ subgraph Europe
+ cell_eu0;
+ cell_eu1;
+ end
+ subgraph United States
+ cell_us0;
+ cell_us1;
+ end
+```
+
+### Routing rules
+
+Each Cell will publish a precompiled list of routing rules that will be consumed by the Routing Service:
+
+- The routing rules describe how to decode the request, find the sharding key, and make the routing decision.
+- The routing rules are compiled during the deployment of the Routing Service.
+ - The deployment process fetches latest version of the routing rules from each Cell
+ that is part of Routing Service configuration.
+ - The compilation process merges the routing rules from all Cells.
+ - The conflicting rules prevent routing service from being compiled / started.
+ - Each routing rule entry has a unique identifier to ease the merge.
+ - The Routing Service would be re-deployed only if the list of rules was changed,
+ which shouldn't happen frequently, because we expect the majority of newly added endpoints
+ to already adhere to the prior route rules.
+- The configuration describes from which Cells the routing rules need to be fetched during deploy.
+- The published routing rules might make routing decision based on the secret. For example, if the session cookie
+ or authentication token has prefix `c100-` all requests are to be forwarded to the given Cell.
+- The Cell does publish routing rules at `/api/v4/internal/cells/route_rules.json`.
+- The rules published by Cell only include endpoints that the particular Cell can process.
+- The Cell might request to perform dynamic classification based on sharding key, by configuring
+ routing rules to call `/api/v4/internal/cells/classify`.
+- The routing rules should use `prefix` as a way to speed up classification. During the compilation phase
+ the routing service transforms all found prefixes into a decision tree to speed up any subsequent regex matches.
+- The routing rules is ideally compiled into source code to avoid expensive parsing and evaluation of the rules
+ dynamically as part of deployment.
+
+The routing rules JSON structure describes all matchers:
+
+```json
+{
+ "rules": [
+ {
+ "id": "<unique-identifier>",
+ "cookies": {
+ "<cookie_name>": {
+ "prefix": "<match-given-prefix>",
+ "match_regex": "<regex_match>"
+ },
+ "<cookie_name2>": {
+ "prefix": "<match-given-prefix>",
+ "match_regex": "<regex_match>"
+ }
+ },
+ "headers": {
+ "<header_name>": {
+ "prefix": "<match-given-prefix>",
+ "match_regex": "<regex_match>"
+ },
+ "<header_name2>": {
+ "prefix": "<match-given-prefix>",
+ "match_regex": "<regex_match>"
+ },
+ },
+ "path": {
+ "prefix": "<match-given-prefix>",
+ "match_regex": "<regex_match>"
+ },
+ "method": ["<list_of_accepted_methods>"],
+
+ // If many rules are matched, define which one wins
+ "priority": 1000,
+
+ // Accept request and proxy to the Cell in question
+ "action": "proxy",
+
+ // Classify request based on regex matching groups
+ "action": "classify",
+ "classify": {
+ "keys": ["list_of_regex_match_capture_groups"]
+ }
+ }
+ ]
+}
+```
+
+Example of the routing rules published by the Cell 100 that makes routing decision based session cookie, and secret.
+The high priority is assigned since the routing rules is secret-based, and should take precedence before all other matchers:
+
+```json
+{
+ "rules": [
+ {
+ "id": "t4mkd5ndsk58si6uwwz7rdavil9m2hpq",
+ "cookies": {
+ "_gitlab_session": {
+ "prefix": "c100-" // accept `_gitlab_session` that are prefixed with `c100-`
+ }
+ },
+ "action": "proxy",
+ "priority": 1000
+ },
+ {
+ "id": "jcshae4d4dtykt8byd6zw1ecccl5dkts",
+ "headers": {
+ "GITLAB_TOKEN": {
+ "prefix": "C100_" // accept `GITLAB_TOKEN` that are prefixed with `C100_`
+ }
+ },
+ "action": "proxy",
+ "priority": 1000
+ }
+ ]
+}
+```
+
+Example of the routing rules published by all Cells that makes routing decision based on the path:
+
+```json
+{
+ "rules": [
+ {
+ "id": "c9scvaiwj51a75kzoh917uwtnw8z4ebl",
+ "path": {
+ "prefix": "/api/v4/projects/", // speed-up rule matching
+ "match_regex": "^/api/v4/projects/(?<project_id_or_path_encoded>[^/]+)(/.*)?$"
+ },
+ "action": "classify",
+ "classify": {
+ "keys": ["project_id_or_path_encoded"]
+ }
+ }
+ ]
+}
+```
+
+### Classification
+
+Each Cell does implement classification endpoint:
+
+- The classification endpoint is at `/api/v4/internal/cells/classify` (or gRPC endpoint).
+- The classification endpoint accepts a list of the sharding keys. Sharding keys are decoded from request,
+ based on the routing rules provided by the Cell.
+- The endpoint returns other equivalent sharding keys to pollute cache for similar requests.
+ This is to ensure that all similar requests can be handled quickly without having to classify each time.
+- Routing Service tracks the health of Cells, and issues a `classify` request to Cells based on weights,
+ health of the Cell, or other defined criteria. Weights would indicate which Cell is preferred to perform the
+ classification of sharding keys.
+- Routing Service retries the `classify` call for a reasonable amount of time.
+ The repetitive failure of Cell to `classify` is indicative of Cell being unhealthy.
+- The `classify` result is cached regardless of returned `action` (proxy or reject).
+ The rejected classification is cached to prevent excessive amount of
+ requests for sharding keys that are not found.
+- The cached response is for time defined by `expiry` and `refresh`.
+ - The `expiry` defines when the item is removed from cache unless used.
+ - The `refresh` defines when the item needs to be reclassified if used.
+ - The refresh is done asynchronously as the request should be served without a delay if they were classified. The refresh is done to ensure that cache is always hot and up-to date.
+
+For the above example:
+
+1. The router sees request to `/api/v4/projects/1000/issues`.
+1. It selects the above `rule` for this request, which requests `classify` for `project_id_or_path_encoded`.
+1. It decodes `project_id_or_path_encoded` to be `1000`.
+1. Checks the cache if there's `project_id_or_path_encoded=1000` associated to any Cell.
+1. Sends the request to `/api/v4/internal/cells/classify` if no Cells was found in cache.
+1. Rails responds with the Cell holding the given project, and also all other equivalent sharding keys
+ for the resource that should be put in the cache.
+1. Routing Service caches for the duration specified in configuration, or response.
+
+```json
+# POST /api/v4/internal/cells/classify
+## Request:
+{
+ "metadata": {
+ "rule_id": "c9scvaiwj51a75kzoh917uwtnw8z4ebl",
+ "headers": {
+ "all_request_headers": "value"
+ },
+ "method": "GET",
+ "path": "/api/v4/projects/100/issues"
+ },
+ "keys": {
+ "project_id_or_path_encoded": 100
+ }
+}
+
+## Response:
+{
+ "action": "proxy",
+ "proxy": {
+ "name": "cell_1",
+ "url": "https://cell1.gitlab.com"
+ },
+ "ttl": "10 minutes",
+ "matched_keys": [ // list of all equivalent keys that should be put in the cache
+ { "project_id_or_path_encoded": 100 },
+ { "project_id_or_path_encoded": "gitlab-org%2Fgitlab" },
+ { "project_full_path": "gitlab-org/gitlab" },
+ { "namespace_full_path": "gitlab-org" },
+ { "namespace_id": 10 },
+ { "organization_full_path": "gitlab-inc" },
+ { "organization_id": 50 },
+ ]
+}
+```
+
+The following code represents a negative response when a sharding key was not found:
+
+```json
+# POST /api/v4/internal/cells/classify
+## Request:
+{
+ "metadata": {
+ "rule_id": "c9scvaiwj51a75kzoh917uwtnw8z4ebl",
+ "headers": {
+ "all_request_headers": "value"
+ },
+ "method": "GET",
+ "path": "/api/v4/projects/100/issues"
+ },
+ "keys": {
+ "project_id_or_path_encoded": 100
+ }
+}
+
+## Response:
+{
+ "action": "reject",
+ "reject": {
+ "http_status": 404
+ },
+ "cache": {
+ "refresh": "10 minutes",
+ "expiry": "10 minutes"
+ },
+ "matched_keys": [ // list of all equivalent keys that should be put in the cache
+ { "project_id_or_path_encoded": 100 },
+ ]
+}
+```
+
+### Configuration
+
+The Routing Service will use the configuration similar to this:
+
+```toml
+[[cells]]
+name=cell_1
+url=https://cell1.gitlab.com
+key=ABC123
+classify_weight=100
+
+[[cells]]
+name=cell_2
+url=https://cell2.gitlab.com
+key=CDE123
+classify_weight=1
+
+[cache.memory.classify]
+refresh_time=10 minutes
+expiry_time=1 hour
+
+[cache.external.classify]
+refresh_time=30 minutes
+expiry_time=6 hour
+```
+
+We assume that this is acceptable to provide a static list of Cells, because:
+
+1. Static: Cells provisioned are unlikely to be dynamically provisioned and decommissioned.
+1. Good enough: We can manage such list even up to 100 Cells.
+1. Simple: We don't have to implement robust service discovery in the service,
+ and we have guarantee that this list is always exhaustive.
+
+The configuration describes all Cells, URLs, zero-trust keys, and weights,
+and how long requests should be cached. The `classify_weight` defines how often
+the Cell should receive classification requests versus other Cells.
+
+## Request flows
+
+1. There are two Cells.
+1. `gitlab-org` is a top-level namespace and lives in `Cell US0` in the `GitLab.com Public` organization.
+1. `my-company` is a top-level namespace and lives in `Cell EU0` in the `my-organization` organization.
+
+### Router configured to perform static routing
+
+1. The Cell US0 supports all other public-facing projects.
+1. The Cells is configured to generate all secrets and session cookies with a prefix like `eu0_` for Cell EU0.
+ 1. The Personal Access Token is scoped to Organization, and because the Organization is part only of a single Cell,
+ the PATs generated are prefixed with Cell identifier.
+ 1. The Session Cookie encodes Organization in-use, and because the Organization is part only of a single Cell,
+ the session cookie generated is prefixed with Cell identifier.
+1. The Cell EU0 allows only private organizations, groups, and projects.
+1. The Cell US0 is a target Cell for all requests unless explicitly prefixed.
+
+Cell US0:
+
+```json
+{
+ "rules": [
+ {
+ "id": "tjh147se67wadjzum7onwqiad2b75uft",
+ "path": {
+ "prefix": "/"
+ },
+ "action": "proxy",
+ "priority": 1
+ }
+ ]
+}
+```
+
+Cell EU0:
+
+```json
+{
+ "rules": [
+ {
+ "id": "t4mkd5ndsk58si6uwwz7rdavil9m2hpq",
+ "cookies": {
+ "_gitlab_session": {
+ "prefix": "eu0_"
+ }
+ },
+ "path": {
+ "prefix": "/"
+ },
+ "action": "proxy",
+ "priority": 1000
+ },
+ {
+ "id": "jcshae4d4dtykt8byd6zw1ecccl5dkts",
+ "headers": {
+ "GITLAB_TOKEN": {
+ "prefix": "eu0_"
+ }
+ },
+ "path": {
+ "prefix": "/"
+ },
+ "action": "proxy",
+ "priority": 1000
+ }
+ ]
+}
+```
+
+#### Navigates to `/my-company/my-project` while logged in into Cell EU0
+
+1. Because user switched the Organization to `my-company`, its session cookie is prefixed with `eu0_`.
+1. User sends request `/my-company/my-project`, and because the cookie is prefixed with `eu0_` it is directed to Cell EU0.
+1. `Cell EU0` returns the correct response.
+
+```mermaid
+sequenceDiagram
+ participant user as User
+ participant router as Router
+ participant cell_eu0 as Cell EU0
+ participant cell_eu1 as Cell EU1
+ user->>router: GET /my-company/my-project<br/>_gitlab_session=eu0_uwwz7rdavil9
+ router->>cell_eu0: GET /my-company/my-project
+ cell_eu0->>user: <h1>My Project...
+```
+
+#### Navigates to `/my-company/my-project` while not logged in
+
+1. User visits `/my-company/my-project`, and because it does not have session cookie, the request is forwarded to `Cell US0`.
+1. User signs in.
+1. GitLab sees that user default organization is `my-company`, so it assigns session cookie with `eu0_` to indicate that
+ user is meant to interact with `my-company`.
+1. User sends request to `/my-company/my-project` again, now with the session cookie that proxies to `Cell EU0`.
+1. `Cell EU0` returns the correct response.
+
+```mermaid
+sequenceDiagram
+ participant user as User
+ participant router as Router
+ participant cell_us0 as Cell US0
+ participant cell_eu0 as Cell EU0
+ user->>router: GET /my-company/my-project
+ router->>cell_us0: GET /my-company/my-project
+ cell_us0->>user: HTTP 302 /users/sign_in?redirect=/my-company/my-project
+ user->>router: GET /users/sign_in?redirect=/my-company/my-project
+ router->>cell_us0: GET /users/sign_in?redirect=/my-company/my-project
+ cell_us0-->>user: <h1>Sign in...
+ user->>router: POST /users/sign_in?redirect=/my-company/my-project
+ router->>cell_us0: POST /users/sign_in?redirect=/my-company/my-project
+ cell_us0->>user: HTTP 302 /my-company/my-project<br/>_gitlab_session=eu0_uwwz7rdavil9
+ user->>router: GET /my-company/my-project<br/>_gitlab_session=eu0_uwwz7rdavil9
+ router->>cell_eu0: GET /my-company/my-project<br/>_gitlab_session=eu0_uwwz7rdavil9
+ cell_eu0->>user: <h1>My Project...
+```
+
+#### Navigates to `/gitlab-org/gitlab` after last step
+
+User visits `/my-company/my-project`, and because it does not have a session cookie, the request is forwarded to `Cell US0`.
+
+```mermaid
+sequenceDiagram
+ participant user as User
+ participant router as Router
+ participant cell_eu0 as Cell EU0
+ participant cell_us0 as Cell US0
+ user->>router: GET /gitlab-org/gitlab<br/>_gitlab_session=eu0_uwwz7rdavil9
+ router->>cell_eu0: GET /gitlab-org/gitlab
+ cell_eu0->>user: HTTP 404
+```
+
+### Router configured to perform dynamic routing based on classification
+
+The Cells publish route rules that allows to classify the requests.
+
+Cell US0 and EU0:
+
+```json
+{
+ "rules": [
+ {
+ "id": "tjh147se67wadjzum7onwqiad2b75uft",
+ "path": {
+ "prefix": "/",
+ "regex": "^/(?top_level_group)[^/]+(/.*)?$",
+ },
+ "action": "classify",
+ "classify": {
+ "keys": ["top_level_group"]
+ }
+ },
+ {
+ "id": "jcshae4d4dtykt8byd6zw1ecccl5dkts",
+ "path": {
+ "prefix": "/"
+ },
+ "action": "proxy"
+ }
+ ]
+}
+```
+
+#### Navigates to `/my-company/my-project` while logged in into Cell EU0
+
+1. The `/my-company/my-project/` is visited.
+1. Router decodes sharding key `top_level_group=my-company`.
+1. Router checks if this sharding key is cached.
+1. Because it is not, the classification request is sent to a random Cell to `/classify`.
+1. The response of classify is cached.
+1. The request is then proxied to Cell returned by classification.
+
+```mermaid
+sequenceDiagram
+ participant user as User
+ participant router as Router
+ participant cache as Cache
+ participant cell_us0 as Cell US0
+ participant cell_eu0 as Cell EU0
+ user->>router: GET /my-company/my-project
+ router->>cache: CACHE_GET: top_level_group=my-company
+ cache->>router: CACHE_NOT_FOUND
+ router->>cell_us0: POST /api/v4/internal/cells/classify<br/>top_level_group=my-company
+ cell_us0->>router: CLASSIFY: top_level_group=my-company, cell=cell_eu0
+ router->>cache: CACHE_SET: top_level_group=my-company, cell=cell_eu0
+ router->>cell_eu0: GET /my-company/my-project
+ cell_eu0->>user: <h1>My Project...
+```
+
+#### Navigates to `/my-company/my-project` while not logged in
+
+1. The `/my-company/my-project/` is visited.
+1. Router decodes sharding key `top_level_group=my-company`.
+1. Router checks if this sharding key is cached.
+1. Because it is not, the classification request is sent to a random Cell to `/classify`.
+1. The response of `classify` is cached.
+1. The request is then proxied to Cell returned by classification.
+1. Because project is private, user is redirected to sign in.
+1. The sign-in since is defined to be handled by all Cells, so it is proxied to a random Cell.
+1. User visits the `/my-company/my-project/` again after logging in.
+1. The `top_level_group=my-company` is proxied to the correct Cell.
+
+```mermaid
+sequenceDiagram
+ participant user as User
+ participant router as Router
+ participant cache as Cache
+ participant cell_us0 as Cell US0
+ participant cell_eu0 as Cell EU0
+ user->>router: GET /my-company/my-project
+ router->>cache: CACHE_GET: top_level_group=my-company
+ cache->>router: CACHE_NOT_FOUND
+ router->>cell_us0: POST /api/v4/internal/cells/classify<br/>top_level_group=my-company
+ cell_us0->>router: CLASSIFY: top_level_group=my-company, cell=cell_eu0
+ router->>cache: CACHE_SET: top_level_group=my-company, cell=cell_eu0
+ router->>cell_eu0: GET /my-company/my-project
+ cell_eu0->>user: HTTP 302 /users/sign_in?redirect=/my-company/my-project
+ user->>router: GET /users/sign_in?redirect=/my-company/my-project
+ router->>cell_us0: GET /users/sign_in?redirect=/my-company/my-project
+ cell_us0-->>user: <h1>Sign in...
+ user->>router: POST /users/sign_in?redirect=/my-company/my-project
+ router->>cell_eu0: POST /users/sign_in?redirect=/my-company/my-project
+ cell_eu0->>user: HTTP 302 /my-company/my-project
+ user->>router: GET /my-company/my-project
+ router->>cache: CACHE_GET: top_level_group=my-company
+ cache->>router: CACHE_FOUND: cell=cell_eu0
+ router->>cell_eu0: GET /my-company/my-project
+ cell_eu0->>user: <h1>My Project...
+```
+
+#### Navigates to `/gitlab-org/gitlab` after last step
+
+1. Because the `/gitlab-org` is not found in cache, it will be classified and then directed to correct Cell.
+
+```mermaid
+sequenceDiagram
+ participant user as User
+ participant router as Router
+ participant cache as Cache
+ participant cell_us0 as Cell US0
+ participant cell_eu0 as Cell EU0
+ user->>router: GET /gitlab-org/gitlab
+ router->>cache: CACHE_GET: top_level_group=gitlab-org
+ cache->>router: CACHE_NOT_FOUND
+ router->>cell_us0: POST /api/v4/internal/cells/classify<br/>top_level_group=gitlab-org
+ cell_us0->>router: CLASSIFY: top_level_group=gitlab-org, cell=cell_us0
+ router->>cache: CACHE_SET: top_level_group=gitlab-org, cell=cell_us0
+ router->>cell_us0: GET /gitlab-org/gitlab
+ cell_us0->>user: <h1>My Project...
+```
+
+### Performance and reliability considerations
+
+- It is expected that each Cell can classify all sharding keys.
+- Alternatively the classification could be done by Cluster-wide Data Provider
+ if it would own all data required to classify.
+- The published routing rules allow to define static criteria, allowing to make routing decision
+ only on a secret. As a result, the Routing Service doesn't add any latency
+ for request processing, and superior resiliency.
+- It is expected that there will be penalty when learning new sharding key. However,
+ it is expected that multi-layer cache should provide a very high cache-hit-ratio,
+ due to low cardinality of sharding key. The sharding key would effectively be mapped
+ into resource (organization, group, or project), and there's a finite amount of those.
## Technology
@@ -188,7 +769,30 @@ TBD
## Alternatives
-TBD
+### Buffering requests
+
+The [Stateless Router using Requests Buffering](proposal-stateless-router-with-buffering-requests.md)
+describes an approach where Cell answers with `X-Gitlab-Cell-Redirect` to redirect request to another Cell:
+
+- This is based on a need to buffer the whole request (headers + body) which is very memory intensive.
+- This proposal does not provide an easy way to handle mixed deployment of Cells, where Cells might be running different versions.
+- This proposal likely requires caching significantly more information, since it is based on requests, rather than on decoded sharding keys.
+
+### Learn request
+
+The [Stateless Router using Routes Learning](proposal-stateless-router-with-routes-learning.md)
+describes an approach similar to the one in this document. Except the route rules and classification
+is done in a single go in a form of pre-flight check `/api/v4/internal/cells/learn`:
+
+- This makes the whole routes learning dynamic, and dependent on availability of the Cells.
+- This proposal does not provide an easy way to handle mixed deployment of Cells, where Cells might be running different versions.
+- This proposal likely requires caching significantly more information, since it is based on requests, rather than on decoded sharding keys.
+
+## FAQ
+
+1. How and when will Routing Service compile set of rules?
+
+To be defined.
## Links
diff --git a/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/ci_insights.md b/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/ci_insights.md
new file mode 100644
index 00000000000..72d82558eb7
--- /dev/null
+++ b/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/ci_insights.md
@@ -0,0 +1,154 @@
+---
+status: proposed
+creation-date: "2023-01-25"
+authors: [ "@pedropombeiro", "@vshushlin"]
+coach: "@grzesiek"
+approvers: [ ]
+stage: Verify
+group: Runner
+participating-stages: []
+description: 'CI Insights design'
+---
+
+# CI Insights
+
+## Summary
+
+As part of the Fleet Metrics, we would like to have a section dedicated to CI insights to help users monitor pipelines and summarize findings about pipelines speed, common job failures and more. It would eventually offer actionables to help users optimize and fix issues with their CI/CD.
+
+## Motivation
+
+We have a [page for CI/CD Analytics](https://gitlab.com/gitlab-org/gitlab/-/pipelines/charts?chart=pipelines) that contain some very basic analytics on pipelines. Most of this information relates to the **total** number of pipelines over time, which does not give any real value to customers: projects will always see an increase of pipelines number over time, so the total number of pipelines is of little consequence.
+
+![Current page](img/current_page.png)
+
+Because this page lacks real insights, it makes understanding pipelines slowdowns or failures hard to track and becomes a very manual task. We want to empower users to optimize their workflow in a centralized place to avoid all of the manual labor associated with either querying the API for data and then manually parsing it or navigating the UI through dozens of pages utils the insights or action required can be found.
+
+As we are going to process large quantities of data relating to a proejct pipelines, there is potential to eventually summarize findings with an AI tool to give insights into job failures, pipeline slowdowns and flaky specs. As AI has become a crucial part of our product roadmap and Verify lacks any promising lead in that area, this page could be the center of this new addition.
+
+- Deliver a new Pipelines Analysis Dashbord page
+- Have excellent data visualization to help digest information quickly
+- Flexible querying to let users get the information they want
+
+- Clear actionables based on information presented in the page
+- Show some default information on landing like pipelines duration over time and slowest jobs
+- Make the CI/CD Analytics more accessible, liked and remembered (AKA, more page views)
+
+### Non-Goals
+
+We do not aim to improve the GitLab project's pipeline speed. This feature could help us achieve this, but it is not a direct objective of this blueprint.
+
+We also are not aiming to have AI in the first iteration and should instead focus on making as much information available and disgestible as possible.
+
+## Proposal
+
+Revamp the [page for CI/CD Analytics](https://gitlab.com/gitlab-org/gitlab/-/pipelines/charts?chart=pipelines) to include more meaningful data so that users can troubleshoot their pipelines with ease. Here is a list of the main improvements:
+
+### Overall statistics
+
+The current "overall statistics" will become a one line header in a smaller font to keep this information available, but without taking as much visual space. For the pipelines chart, we will replace it with a stacked bar plot where each stack of a bar represents a status and each bar is a unit (in days, a day, in month a month and in years, a year) so users can keep track of how many pipelines ran in that specific unit of time and what percent of these pipelines ended up in failling or succeeding.
+
+### Pipeline duration graph
+
+A new pipeline duration graph that can be customized by type (MR pipelines, pipeline on a specific branch, etc), number of runs and status (success, failed, etc) and will replace the current `Pipeline durations for the last 30 commits` chart. The existing chart checks the latest 30 commits made on the repository with no filtering so the results presented are not very valuable.
+
+We also add jobs that failed multiple times and jobs that are the slowest in the last x pipelines on master. All of this is to support the effort of allowing users to query their pipelines data to figure out what they need to improve on or what kind of problems they are facing with their CI/CD configuration.
+
+### Visibility
+
+Add a link in the `pipelines` page to increase the visibility of this feature. We can add a new option with the `Run pipeline` primary button.
+
+### Master Broken
+
+Add a "Is master broken?" quick option that scans the last x pipelines on the main branch and check for failed jobs. All jobs that failed multiple times will be listed in a table with the option to create an incident from that list.
+
+### Color scheme
+
+Rethink our current color schemes for data visuliaztion when it comes to pipelines statuses. We currently use the default visualization colors, but they don't actually match with that colors user have grown accustomed to for pipeline/jobs statuses. There is an opportunity here to help user better understand their data through more relevant color schemes and better visualization.
+
+### Routing
+
+Change the routing from `pipelines/charts` to `pipelines/analytics` since `charts` is a really restrictive terminology when talking about data visualization. It also doesn't really convey what this page is, which is a way to get information, not just nice charts. Then we can also get rid of the query parameter for the tabs and instead support first-class routing.
+
+## Design and implementation details
+
+### New API for aggregated data
+
+This feature depends on having a new set of data available to us that aggregates jobs and pipelines insights and make them available to the client.
+
+We'll start by aggregating data from ClickHouse, and probably only for `gitlab.com`, as the MVC. We will aggregate the data on the backend on the fly. So far ClickHouse has been very capable of such things.
+
+We won't store the aggregated data anywhere (we'll probably have the materialized views in ClickHouse, but nothing more complex). Then if the features get traction, we can explore ways to bring these features to environments without ClickHouse
+
+This way we can move fast, test our ideas with real users, and get feedback.
+
+### Feature flag
+
+To develop this new analytic page, we will gate the new page behind a feature flag `ci_insights`, and conditionally render the old or new analytics page. Potentially, we could even add the flag on the controller to decide which route to render: the new `/analytic` when the flag is one, and the old `/charts` when it isn't.
+
+### Add analytics on page view
+
+Make sure that we can get information on how often this page is viewed. If we do not have it, then let's implment some to know how visible this page is. The changes to this section should make the view count go up and we want to track this as a measure of success.
+
+### Routing
+
+We are planning to have new routes for the page and some redicts to setup. To read more about the routing proposal, see the [related issue](https://gitlab.com/gitlab-org/gitlab/-/issues/437556)
+
+### Pipelines duration graph
+
+We want a way for user to query data about pipelines with a lot of different criterias. Most notably, query for only pipelines with the scope `finished` or by status `success` or `failed`. There is also the possibility to scope this to a ref, so users could either test for the main branch or maybe even a branch that has introduced a CI/CD change. We want branch comparaison for pipeline speed.
+
+To get more accurate data, we want to increase the count of pipelines requested. In graphQL, we have a limit of 100 items and we will probably get performance degradations quite quickly. We need to define how we could get more data set for more accurate data visualization.
+
+### Jobs insights
+
+Currently, there is no way to query a single job across multiple pipelines and it prevent us from doing a query that would look like this:
+
+```graphql
+query getJob($projectPath: ID!, $jobName: String!){
+ project(fullPath:$projectPath){
+ job(name: $jobName, last: 100){
+ nodes{
+ id
+ duration
+ }
+ }
+ }
+}
+```
+
+There are plans to create a new unified table to log job analytics and it is not yet defined what this API will look like. Without comitting yet to an API definiton, we want so unified way to query information for nalytics that may look rougly like so:
+
+```ruby
+get_jobs(project_id:, job_name: nil, stage: nil, stage_index: nil, *etc)
+# >
+[{id: 1, duration: 134, status: 'failed'}, *etc]
+
+get_jobs_statistics(project_id, job_name:, *etc)
+# >
+[{time_bucket: '2024-01-01:00:00:00', avg_duration: 234, count: 123, statuses_count: {success: 123, failed: 45, cancelled: 45}}]
+```
+
+### Revamping our charts
+
+Explore new color scheme and nicer look on our charts. Colaborate with UX to determine whether this is something we had on our mind or not and support any iniative to have nicer, more modern looking charts as our charts are quite forgettable.
+
+## Alternative Solutions
+
+### New page
+
+We could create a brand new page and leave this section as it is. The pro would be that we could perhaps have a more prominent placement in the Navigation under `Build`, while the cons are that we'd have clear overlap with the section.
+
+### Pipeline analysis per pipeline
+
+There was an [experiment](https://gitlab.com/gitlab-org/gitlab/-/issues/365902) in the past to add performance insights **per pipeline**. The experiment was removed and deemed not viable. Some of the findings were that:
+
+- Users did not interact with the page as much as thought and would not click on the button to view insights
+- Users who did click on the button did not try to get more insights into a job.
+- Users did not leave feedback in the issue.
+
+This experiment reveals to us mostly that users who go on the pipeline graph page `pipelines/:id` are **not** trying to imrpove the performance of pipelines. Instead, it is most likely that this page is used to debug pipeline failures, which means that they are from the IC/developer persona, not the DevOps engineer trying to improve the workflow. By having this section in a more "broad" area, we expect a much better adoption and more useful actionables.
+
+### Do nothing
+
+We could leave this section untouched and not add any new form of analytics. The pro here would be the saved resources and time. The cons are that we currently have no way to help customers improve their CI/CD configurations speed except reading our documentation. This revamped section would also be a great gateway for AI features and help user iteration on their setup.
diff --git a/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/img/current_page.png b/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/img/current_page.png
new file mode 100644
index 00000000000..42b09d37785
--- /dev/null
+++ b/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/img/current_page.png
Binary files differ
diff --git a/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/index.md b/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/index.md
index 104a6ee2136..016db5f5766 100644
--- a/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/index.md
+++ b/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/index.md
@@ -61,6 +61,10 @@ The following customer problems should be solved when addressing this question.
#### Which runners have failures in the past hour?
+## CI Insights
+
+CI Insights is a page that would mostly expose data on pipelines and jobs duration, with a multitude of different filters, search and dynamic graphs. To read more on this, see [this related sub-section](ci_insights.md).
+
## Implementation
The current implementation plan is based on a
diff --git a/doc/architecture/blueprints/ci_pipeline_components/index.md b/doc/architecture/blueprints/ci_pipeline_components/index.md
index 9a225c9cd97..78d9401d5a5 100644
--- a/doc/architecture/blueprints/ci_pipeline_components/index.md
+++ b/doc/architecture/blueprints/ci_pipeline_components/index.md
@@ -232,7 +232,7 @@ The version of the component can be (in order of highest priority first):
1. A commit SHA - For example: `gitlab.com/gitlab-org/dast@e3262fdd0914fa823210cdb79a8c421e2cef79d8`
1. A tag - For example: `gitlab.com/gitlab-org/dast@1.0`
-1. A special moving target version that points to the most recent released tag - For example: `gitlab.com/gitlab-org/dast@~latest`
+1. A special moving target version that points to the most recent published release - For example: `gitlab.com/gitlab-org/dast@~latest`
1. A branch name - For example: `gitlab.com/gitlab-org/dast@master`
If a tag and branch exist with the same name, the tag takes precedence over the branch.
@@ -244,6 +244,30 @@ As we want to be able to reference any revisions (even those not released), a co
When referencing a component by local path (for example `./path/to/component`), its version is implicit and matches
the commit SHA of the current pipeline context.
+#### The `~latest` version
+
+The use of `~latest` version qualifier is restricted to only those releases that are published in the Catalog.
+
+We debated whether `~latest` should be supported for projects that are not marked as catalog resources.
+
+There are various reasons for this decision:
+
+1. Versions could be unlisted from the Catalog and `~latest` need to reflect that.
+1. The Catalog will support private resources. There are currently no valid requirements for component projects to
+ have releases but not being published in the Catalog.
+1. In the future we will be separating the process of releasing and publishing a release, allowing users to choose
+ what release is published in the catalog.
+1. We could enforce better the use of semantic versioning when publishing a release, rejecting it if not following
+ the standard. We won't be able to enforce semantic versioning on the release model because it won't be backwards
+ compatible.
+1. Latest version will likely be denormalized for a catalog resource data structure for more performant queries both
+ when displaying the Catalog resources and when fetching a component version.
+
+In all the points above, if we were supporting `~latest` for both catalog resources and unpublished component projects we could
+introduce discrepancies and surprising behaviors. Starting with a stricter approach, like supporting
+only published versions, we have the freedom to expand this in the future to support unpublished component projects based on
+user demand.
+
### Note about future resource types
In the future, to support multiple types of resources in the Catalog we could
diff --git a/doc/architecture/blueprints/cloud_connector/index.md b/doc/architecture/blueprints/cloud_connector/index.md
index 9aef8bc7a98..50e233a6089 100644
--- a/doc/architecture/blueprints/cloud_connector/index.md
+++ b/doc/architecture/blueprints/cloud_connector/index.md
@@ -170,16 +170,16 @@ It will have the following responsibilities:
We suggest to use one of the following language stacks:
1. **Go.** There is substantial organizational knowledge in writing and running
-Go systems at GitLab, and it is a great systems language that gives us efficient ways to handle requests where
-they merely need to be forwarded (request proxying) and a powerful concurrency mechanism through goroutines. This makes the
-service easier to scale and cheaper to run than Ruby or Python, which scale largely at the process level due to their use
-of Global Interpreter Locks, and use inefficient memory models especially as regards byte stream handling and manipulation.
-A drawback of Go is that resource requirements such as memory use are less predictable because Go is a garbage collected language.
+ Go systems at GitLab, and it is a great systems language that gives us efficient ways to handle requests where
+ they merely need to be forwarded (request proxying) and a powerful concurrency mechanism through goroutines. This makes the
+ service easier to scale and cheaper to run than Ruby or Python, which scale largely at the process level due to their use
+ of Global Interpreter Locks, and use inefficient memory models especially as regards byte stream handling and manipulation.
+ A drawback of Go is that resource requirements such as memory use are less predictable because Go is a garbage collected language.
1. **Rust.** We are starting to build up knowledge in Rust at GitLab. Like Go, it is a great systems language that is
-also starting to see wider adoption in the Ruby ecosystem to write CRuby extensions. A major benefit is more predictable
-resource consumption because it is not garbage collected and allows for finer control of memory use.
-It is also very fast; we found that the Rust implementation for `prometheus-client-mmap` outperformed the original
-extension written in C.
+ also starting to see wider adoption in the Ruby ecosystem to write CRuby extensions. A major benefit is more predictable
+ resource consumption because it is not garbage collected and allows for finer control of memory use.
+ It is also very fast; we found that the Rust implementation for `prometheus-client-mmap` outperformed the original
+ extension written in C.
## Alternative solutions
diff --git a/doc/architecture/blueprints/gitaly_adaptive_concurrency_limit/index.md b/doc/architecture/blueprints/gitaly_adaptive_concurrency_limit/index.md
index f3335a0935e..7f451b4f92b 100644
--- a/doc/architecture/blueprints/gitaly_adaptive_concurrency_limit/index.md
+++ b/doc/architecture/blueprints/gitaly_adaptive_concurrency_limit/index.md
@@ -43,14 +43,14 @@ configurations, especially the value of the concurrency limit, are static. There
are some drawbacks to this:
- It's tedious to maintain a sane value for the concurrency limit. Looking at
-this [production configuration](https://gitlab.com/gitlab-com/gl-infra/chef-repo/-/blob/db11ef95859e42d656bb116c817402635e946a32/roles/gprd-base-stor-gitaly-common.json),
-each limit is heavily calibrated based on clues from different sources. When the
-overall scene changes, we need to tweak them again.
+ this [production configuration](https://gitlab.com/gitlab-com/gl-infra/chef-repo/-/blob/db11ef95859e42d656bb116c817402635e946a32/roles/gprd-base-stor-gitaly-common.json),
+ each limit is heavily calibrated based on clues from different sources. When the
+ overall scene changes, we need to tweak them again.
- Static limits are not good for all usage patterns. It's not feasible to pick a
-fit-them-all value. If the limit is too low, big users will be affected. If the
-value is too loose, the protection effect is lost.
+ fit-them-all value. If the limit is too low, big users will be affected. If the
+ value is too loose, the protection effect is lost.
- A request may be rejected even though the server is idle as the rate is not
-necessarily an indicator of the load induced on the server.
+ necessarily an indicator of the load induced on the server.
To overcome all of those drawbacks while keeping the benefits of concurrency
limiting, one promising solution is to make the concurrency limit adaptive to
@@ -78,18 +78,18 @@ occurs. There are various criteria for determining whether Gitaly is in trouble.
In this proposal, we focus on two things:
- Lack of resources, particularly memory and CPU, which are essential for
-handling Git processes.
+ handling Git processes.
- Serious latency degradation.
The proposed solution is heavily inspired by many materials about this subject
shared by folks from other companies in the industry, especially the following:
- TCP Congestion Control ([RFC-2581](https://www.rfc-editor.org/rfc/rfc2581), [RFC-5681](https://www.rfc-editor.org/rfc/rfc5681),
-[RFC-9293](https://www.rfc-editor.org/rfc/rfc9293.html#name-tcp-congestion-control), [Computer Networks: A Systems Approach](https://book.systemsapproach.org/congestion/tcpcc.html)).
+ [RFC-9293](https://www.rfc-editor.org/rfc/rfc9293.html#name-tcp-congestion-control), [Computer Networks: A Systems Approach](https://book.systemsapproach.org/congestion/tcpcc.html)).
- Netflix adaptive concurrency limit ([blog post](https://tech.olx.com/load-shedding-with-nginx-using-adaptive-concurrency-control-part-1-e59c7da6a6df)
-and [implementation](https://github.com/Netflix/concurrency-limits))
+ and [implementation](https://github.com/Netflix/concurrency-limits))
- Envoy Adaptive Concurrency
-([doc](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/adaptive_concurrency_filter#config-http-filters-adaptive-concurrency))
+ ([doc](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/adaptive_concurrency_filter#config-http-filters-adaptive-concurrency))
We cannot blindly apply a solution without careful consideration and expect it
to function flawlessly. The suggested approach considers Gitaly's specific
@@ -116,12 +116,11 @@ process functioning but quickly reducing it when an issue occurs.
During initialization, we configure the following parameters:
- `initialLimit`: Concurrency limit to start with. This value is essentially
-equal to the current static concurrency limit.
+ equal to the current static concurrency limit.
- `maxLimit`: Maximum concurrency limit.
- `minLimit`: Minimum concurrency limit so that the process is considered as
-functioning. If it's equal to 0, it rejects all upcoming requests.
-- `backoffFactor`: how fast the limit decreases when a backoff event occurs (`0
-< backoff < 1`, default to `0.75`)
+ functioning. If it's equal to 0, it rejects all upcoming requests.
+- `backoffFactor`: how fast the limit decreases when a backoff event occurs (`0 < backoff < 1`, default to `0.75`)
When the Gitaly process starts, it sets `limit = initialLimit`, in which `limit`
is the maximum in-flight requests allowed at a time.
@@ -130,9 +129,9 @@ Periodically, maybe once per 15 seconds, the value of the `limit` is
re-calibrated:
- `limit = limit + 1` if there is no backoff event since the last
-calibration. The new limit cannot exceed `maxLimit`.
+ calibration. The new limit cannot exceed `maxLimit`.
- `limit = limit * backoffFactor` otherwise. The new limit cannot be lower than
-`minLimit`.
+ `minLimit`.
When a process can no longer handle requests or will not be able to handle them
soon, it is referred to as a back-off event. Ideally, we would love to see the
@@ -151,16 +150,16 @@ The concurrency limit restricts the total number of in-flight requests (IFR) at
a time.
- When `IFR < limit`, Gitaly handles new requests without waiting. After an
-increment, Gitaly immediately handles the subsequent request in the queue, if
-any.
+ increment, Gitaly immediately handles the subsequent request in the queue, if
+ any.
- When `IFR = limit`, it means the limit is reached. Subsequent requests are
-queued, waiting for their turn. If the queue length reaches a configured limit,
-Gitaly rejects new requests immediately. When a request stays in the queue long
-enough, it is also automatically dropped by Gitaly.
+ queued, waiting for their turn. If the queue length reaches a configured limit,
+ Gitaly rejects new requests immediately. When a request stays in the queue long
+ enough, it is also automatically dropped by Gitaly.
- When `IRF > limit`, it's appropriately a consequence of backoff events. It
-means Gitaly handles more requests than the newly appointed limits. In addition
-to queueing upcoming requests similarly to the above case, Gitaly may start
-load-shedding in-flight requests if this situation is not resolved long enough.
+ means Gitaly handles more requests than the newly appointed limits. In addition
+ to queueing upcoming requests similarly to the above case, Gitaly may start
+ load-shedding in-flight requests if this situation is not resolved long enough.
At several points in time we have discussed whether we want to change queueing
semantics. Right now we admit queued processes from the head of the queue
@@ -181,16 +180,16 @@ Each system has its own set of signals, and in the case of Gitaly, there are two
aspects to consider:
- Lack of resources, particularly memory and CPU, which are essential for
-handling Git processes like `git-pack-objects(1)`. When these resources are limited
-or depleted, it doesn't make sense for Gitaly to accept more requests. Doing so
-would worsen the saturation, and Gitaly addresses this issue by applying cgroups
-extensively. The following section outlines how accounting can be carried out
-using cgroup.
+ handling Git processes like `git-pack-objects(1)`. When these resources are limited
+ or depleted, it doesn't make sense for Gitaly to accept more requests. Doing so
+ would worsen the saturation, and Gitaly addresses this issue by applying cgroups
+ extensively. The following section outlines how accounting can be carried out
+ using cgroup.
- Serious latency degradation. Gitaly offers various RPCs for different purposes
-besides serving Git data that is hard to reason about latencies. A significant
-overall latency decline is an indication that Gitaly should not accept more
-requests. Another section below describes how to assert latency degradation
-reasonably.
+ besides serving Git data that is hard to reason about latencies. A significant
+ overall latency decline is an indication that Gitaly should not accept more
+ requests. Another section below describes how to assert latency degradation
+ reasonably.
Apart from the above signals, we can consider adding more signals in the future
to make the system smarter. Some examples are Go garbage collector statistics,
diff --git a/doc/architecture/blueprints/gitlab_housekeeper/index.md b/doc/architecture/blueprints/gitlab_housekeeper/index.md
new file mode 100644
index 00000000000..fcb5590772d
--- /dev/null
+++ b/doc/architecture/blueprints/gitlab_housekeeper/index.md
@@ -0,0 +1,133 @@
+---
+status: implemented
+creation-date: "2023-10-18"
+authors: [ "@DylanGriffith" ]
+coach:
+approvers: [ "@rymai", "@tigerwnz" ]
+owning-stage: "~devops::tenant scale"
+participating-stages: []
+---
+
+<!-- vale gitlab.FutureTense = NO -->
+
+# GitLab Housekeeper - automating merge requests
+
+## Summary
+
+This blueprint documents the philosophy behind the
+["GitLab Housekeeper" gem](https://gitlab.com/gitlab-org/gitlab/-/tree/master/gems/gitlab-housekeeper)
+which was introduced in
+<https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139492> and has already
+been used to create many merge requests.
+
+The tool should be used to save developers from mundane repetitive tasks that
+can be automated. The tool is scoped to any task where a developer needs to
+create a straightforward merge request and is known ahead of time.
+
+This tool should be useful for at least the following kinds of mundane MRs
+we create:
+
+1. Remove a feature flag after X date
+1. Remove an unused index where the unused index is identified by some
+ automation
+1. Remove an `ignore_column` after X date (part of renaming/removing columns
+ multi-step procedure)
+1. Populate sharding keys for organizations/cells on tables that are missing a
+ sharding key
+
+## Motivation
+
+We've observed there are many cases where developers are doing a lot of
+manual work for tasks that are entirely predictable and automatable. Often
+these manual tasks are done after waiting some known period of time. As such we
+usually create an issue and set the future milestone. Then in the future the
+developer remembers to followup on that issue and opens an MR to make the
+manual change.
+
+The biggest examples we've seen lately are:
+
+1. Feature flag removal: <https://gitlab.com/groups/gitlab-org/-/epics/5325>. We
+ have many opportunities for automation with feature flags but this blueprint
+ focuses on removing the feature flag after it's fully rolled out. A step
+ that is often forgotten leading to growing technical debt.
+1. Removing duplicated or unused indexes in Postgres:
+ <https://gitlab.com/gitlab-org/gitlab/-/issues/385701>. For now we're
+ developing automation that creates issues and assigns them to groups to
+ follow up and manually open MRs to remove them. This blueprint would take it
+ a step further and the automation would just create the MRs to remove them
+ once we have identified them.
+1. Removing out of date `ignore_column` references:
+ <https://docs.gitlab.com/ee/development/database/avoiding_downtime_in_migrations.html#removing-the-ignore-rule-release-m2>
+ . For now we leave a note in our code telling us the date it needs to be
+ removed and often create an issue as a reminder. This blueprint proposes
+ that automation just reads this note and opens the MR to remove it after the
+ date.
+1. Adding and backfilling sharding keys for organizations for Cells:
+ <https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133796>. The cells
+ architecture depends on all tables having a sharding key that is attributed
+ to an organization. We will need to backfill this for ~300 tables. Much of
+ this will be repetitive and mundane work that we can automate provided that
+ groups just identify what the name of the sharding key should be and how we
+ will backfill it. As such we can automate the creation of MRs that guess the
+ sharding key and owning groups can check and correct those MRs. Then we can
+ automate the MR creation for adding the columns and backfilling the data.
+ Some kind of automation like this will be necessary to finish this work in a
+ reasonable timeframe.
+
+### Goals
+
+1. Identify the common tasks that take development time and automate them.
+1. Focus on MR creation rather than issue creation as MRs are the results we
+ want and issues are a process for reminding us to get those results.
+1. Improve developer job satisfication by knowing that automation is doing the
+ busy work while we get to do the challenging and creative work.
+1. Developers should be encouraged to contribute to the automation framework
+ when they see a pattern rather than documenting the manual work for future
+ developers to do it again.
+1. Automation MRs should be very easily identified and reviewed and merged much
+ more quickly than other MRs. If our automation MRs cause too much effort for
+ reviewers we maybe will outweigh the benefits. This might mean that some
+ automations get disabled when they are just noisy.
+
+## Solution
+
+The
+[GitLab Housekeeper gem](https://gitlab.com/gitlab-org/gitlab/-/tree/master/gems/gitlab-housekeeper)
+should be used to automate creation of mundane merge requests.
+
+Using this tool reflects our
+[bias for action](https://handbook.gitlab.com/handbook/values/#bias-for-action)
+subvalue. As such, developers should preference contributing a new
+[keep](https://gitlab.com/gitlab-org/gitlab/-/tree/master/keeps) over the following:
+
+1. Documenting a process that involves creating several merge requests over a
+ period of time
+1. Setting up periodic reminders for developers (in Slack or issues) to create
+ some merge request
+
+The keeps may sometimes take more work to implement than documentation or
+reminders so judgement should be used to assess the likely time savings from
+using automation. The `gitlab-housekeeper` gem will evolve over time with many
+utilities that make it simpler to contribute new keeps and it is expected that
+over time the cost to implementing a keep should be small enough that we will
+mostly prefer this whenever developers need to do a repeatable task more than a
+few times.
+
+## Design and implementation details
+
+The key details for this architecture is:
+
+1. The design of this tool is like a combination of `rubocop -a` and Renovate
+ bot. It extends on `rubocop -a` to understand when things need to be removed
+ after certain deadlines as well as creating a steady stream of manageable
+ merge requests for the reviewer rather than leaving those decisions to the
+ developer. Like the renovate bot it attempts to create MRs periodically and
+ assign them to the right people to review.
+1. The keeps live in the GitLab repo which means that there are no
+ dependencies to update and the keeps can use code inside the
+ GitLab codebase.
+1. The script can be run locally by a developer or can be run periodically
+ in some automated way.
+1. The keeps are able to use any data sources (eg. local code, Prometheus,
+ Postgres database archive, logs) needed to determine whether and how to make
+ the change.
diff --git a/doc/architecture/blueprints/gitlab_steps/data.drawio.png b/doc/architecture/blueprints/gitlab_steps/data.drawio.png
index 59436093fb7..5ffe2964134 100644
--- a/doc/architecture/blueprints/gitlab_steps/data.drawio.png
+++ b/doc/architecture/blueprints/gitlab_steps/data.drawio.png
Binary files differ
diff --git a/doc/architecture/blueprints/gitlab_steps/step-runner-sequence.drawio.png b/doc/architecture/blueprints/gitlab_steps/step-runner-sequence.drawio.png
index 9f6a6dcad9f..57029733b3c 100644
--- a/doc/architecture/blueprints/gitlab_steps/step-runner-sequence.drawio.png
+++ b/doc/architecture/blueprints/gitlab_steps/step-runner-sequence.drawio.png
Binary files differ
diff --git a/doc/architecture/blueprints/runner_admission_controller/index.md b/doc/architecture/blueprints/runner_admission_controller/index.md
index 21dc1d53303..0a62b271901 100644
--- a/doc/architecture/blueprints/runner_admission_controller/index.md
+++ b/doc/architecture/blueprints/runner_admission_controller/index.md
@@ -140,7 +140,7 @@ Each runner has a tag identifier unique to that runner, e.g. `DiscoveryOne`, `tu
1. The `preparing` state will wait for a response from the webhook or until timeout.
1. The UI should be updated with the current status of the job prerequisites and admission
1. For jobs where the webhook times out (1 hour) their status should be set as though the admission was denied with a timeout reasoning. This should
-be rare in typical circumstances.
+ be rare in typical circumstances.
1. Jobs with denied admission can be retried. Retried jobs will be resent to the admission controller without tag mutations or runner filtering reset.
1. [`allow_failure`](../../../ci/yaml/index.md#allow_failure) should be updated to support jobs that fail on denied admissions, for example:
diff --git a/doc/architecture/blueprints/runner_tokens/index.md b/doc/architecture/blueprints/runner_tokens/index.md
index f2e9d624d20..c667a460f5c 100644
--- a/doc/architecture/blueprints/runner_tokens/index.md
+++ b/doc/architecture/blueprints/runner_tokens/index.md
@@ -284,11 +284,11 @@ not an issue per-se.
New records are created in 2 situations:
-- when the runner calls the `POST /api/v4/runners/verify` endpoint as part of the
-`gitlab-runner register` command, if the specified runner token is prefixed with `glrt-`.
-This allows the frontend to determine whether the user has successfully completed the registration and take an
-appropriate action;
-- when GitLab is pinged for new jobs and a record matching the `token`+`system_id` does not already exist.
+- When the runner calls the `POST /api/v4/runners/verify` endpoint as part of the
+ `gitlab-runner register` command, if the specified runner token is prefixed with `glrt-`.
+ This allows the frontend to determine whether the user has successfully completed the registration and take an
+ appropriate action;
+- When GitLab is pinged for new jobs and a record matching the `token`+`system_id` does not already exist.
Due to the time-decaying nature of the `ci_runner_machines` records, they are automatically
cleaned after 7 days after the last contact from the respective runner.
diff --git a/doc/architecture/blueprints/runway/index.md b/doc/architecture/blueprints/runway/index.md
index becb7914feb..af7f466cdc9 100644
--- a/doc/architecture/blueprints/runway/index.md
+++ b/doc/architecture/blueprints/runway/index.md
@@ -169,7 +169,7 @@ In order for runway to function, there are two JSON/YAML documents in use. They
1. The Runway Inventory Model. This covers what service projects are currently onboarded into Runway. It's located [here](https://gitlab.com/gitlab-com/gl-infra/platform/runway/provisioner/-/blob/main/inventory.json?ref_type=heads). The schema used to validate the docuemnt is located [here](https://gitlab.com/gitlab-com/gl-infra/platform/runway/runwayctl/-/blob/main/schemas/service-inventory/v1.0.0-beta/inventory.schema.json?ref_type=heads). There is no backwards compatibility guarenteed to changes to this document schema. This is because it's only used internally by the Runway team, and there is only a single document actually being used by Runway to provision/deprovision Runway services.
1. The runway Service Model. This is used by Runway users to pass through configuration needed to Runway in order to deploy their service. It's located inside their Service project, at `.runway/runway.yml`. [An example is here](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/.runway/runway.yml?ref_type=heads). The schema used to validate the document is located [here](https://gitlab.com/gitlab-com/gl-infra/platform/runway/runwayctl/-/blob/main/schemas/service-manifest/v1.0.0-beta/manifest.schema.json?ref_type=heads). We aim to continue to make improvements and changes to the model, but all changes to the model within the same `kind/apiVersion` must be backwards compatible. In order to
-make breaking changes, a new `apiVersion` of the schema will be released. The overall goal is to copy the [Kubernetes model for making API changes](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api_changes.md).
+ make breaking changes, a new `apiVersion` of the schema will be released. The overall goal is to copy the [Kubernetes model for making API changes](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api_changes.md).
There are also [GitLab CI templates](https://gitlab.com/gitlab-com/gl-infra/platform/runway/ci-tasks) used by Runway users in order to automate deployments via Runway through GitLab CI. Users will be encouraged to use tools such as [Renovate bot](https://gitlab.com/gitlab-com/gl-infra/common-ci-tasks/-/blob/main/renovate-bot.md) in order to make sure the CI templates and
version of Runway they are using is up to date. The Runway team will support all released versions of Runway, with the exception of when a security issue is identified. When this happens, Runway users will be expected to update to a version of Runway that contains a fix for the issue as soon as possible (once notification is received).
diff --git a/doc/architecture/blueprints/secret_detection/index.md b/doc/architecture/blueprints/secret_detection/index.md
index fb77fffee40..3e9421539e6 100644
--- a/doc/architecture/blueprints/secret_detection/index.md
+++ b/doc/architecture/blueprints/secret_detection/index.md
@@ -29,19 +29,18 @@ job logs, and project management features such as issues, epics, and MRs.
- Support platform-wide detection of tokens to avoid secret leaks
- Prevent exposure by rejecting detected secrets
- Provide scalable means of detection without harming end user experience
+- Unified list of token patterns and masking
See [target types](#target-types) for scan target priorities.
### Non-Goals
-Initial proposal is limited to detection and alerting across platform, with rejection only
-during [preceive Git interactions and browser-based detection](#iterations).
+Phase1 is limited to detection and alerting across platform, with rejection only
+during [prereceive Git interactions and browser-based detection](#iterations).
Secret revocation and rotation is also beyond the scope of this new capability.
-Scanned object types beyond the scope of this MVC include:
-
-See [target types](#target-types) for scan target priorities.
+Scanned object types beyond the scope of this MVC are included within [target types](#target-types).
#### Management UI
@@ -67,7 +66,7 @@ Target object types refer to the scanning targets prioritized for detection of l
In order of priority this includes:
-1. non-binary Git blobs
+1. non-binary Git blobs under 1 megabyte
1. job logs
1. issuable creation (issues, MRs, epics)
1. issuable updates (issues, MRs, epics)
@@ -75,30 +74,60 @@ In order of priority this includes:
Targets out of scope for the initial phases include:
+- non-binary Git blobs over 1 megabyte
+- binary Git blobs
- Media types (JPEG, PDF, ...)
- Snippets
- Wikis
- Container images
+- External media (Youtube platform videos)
### Token types
-The existing Secret Detection configuration covers ~100 rules across a variety
+The existing Secret Detection configuration covers 100+ rules across a variety
of platforms. To reduce total cost of execution and likelihood of false positives
-the dedicated service targets only well-defined tokens. A well-defined token is
-defined as a token with a precise definition, most often a fixed substring prefix or
-suffix and fixed length.
+the dedicated service targets only well-defined, low-FP tokens.
Token types to identify in order of importance:
1. Well-defined GitLab tokens (including Personal Access Tokens and Pipeline Trigger Tokens)
1. Verified Partner tokens (including AWS)
-1. Remainder tokens currently included in Secret Detection CI configuration
+1. Well-defined low-FP third party tokens
+1. Remainder tokens currently included in Secret Detection analyzer configuration
-## Proposal
+A well-defined token is a token with a precise definition, most often a fixed
+substring prefix (or suffix) and fixed length.
-### Decisions
+For GitLab and partner tokens, we have good domain understanding of our own tokens
+and by collaborating with partners verified the accuracy of their provided patterns.
-- [001: Use Ruby Push Check approach within monolith](decisions/001_use_ruby_push_check_approach_within_monolith.md)
+An observed low-FP token relies on user reports and dismissal reports. With delivery of
+[this data issue](https://gitlab.com/gitlab-data/product-analytics/-/issues/1225)
+we will have aggregates on FP-rates but primarily this is user-reported data, at present.
+
+In order to minimize false positives, there are no plans to introduce or alert on high-entropy,
+arbitrary strings; i.e. patterns such as `3lsjkw3a22`.
+
+#### Uniformity of rule configuration
+
+Rule pattern configuration should remain centralized in the `secrets` analyzer's packaged `gitleaks.toml`
+configuration, vendored to the monolith for Phase 1, and checksum-checked to ensure it matches the
+specific release version to avoid drift. Each token can be filtered by `tags` to form both high-confidence
+and blocking groupings. For example:
+
+```ruby
+prereceive_blocking_rules = toml.load_file('gitleaks.toml')['rules'].select do |r|
+ r.tags.include?('gitlab_blocking_p1') &&
+ r.tags.include?('gitlab_blocking')
+end
+```
+
+### Auditability
+
+A critical aspect of both secret detection and [suppression](#detection-suppression) is administrative visibility.
+With each phase we must include audit capabilities (events or logging) to enable event discovery.
+
+## Proposal
The first iteration of the experimental capability will feature a blocking
pre-receive hook implemented in the Rails application. This iteration
@@ -119,6 +148,10 @@ This service must be:
Platform-wide secret detection should be enabled by-default on GitLab SaaS as well
as self-managed instances.
+### Decisions
+
+- [001: Use Ruby Push Check approach within monolith](decisions/001_use_ruby_push_check_approach_within_monolith.md)
+
## Challenges
- Secure authentication to GitLab.com infrastructure
@@ -136,17 +169,15 @@ In expansion phases we must explore chunking or alternative strategies like the
## Design and implementation details
+The detection capability relies on a multiphase rollout, from an experimental component implemented directly in the monolith to a standalone service capable of scanning text blobs generically.
+
The implementation of the secret scanning service is highly dependent on the outcomes of our benchmarking
and capacity planning against both GitLab.com and our
[Reference Architectures](../../../administration/reference_architectures/index.md).
As the scanning capability must be an on-by-default component of both our SaaS and self-managed
-instances [the PoC](#iterations), the deployment characteristics must be considered to determine whether
-this is a standalone component or executed as a subprocess of the existing Sidekiq worker fleet
-(similar to the implementation of our Elasticsearch indexing service).
-
-Similarly, the scan target volume will require a robust and scalable enqueueing system to limit resource consumption.
-
-The detection capability relies on a multiphase rollout, from an experimental component implemented directly in the monolith to a standalone service capable of scanning text blobs generically.
+instances, [each iteration's](#iterations) deployment characteristic defines whether
+the service will act as a standalone component, or executed as a subprocess of the Rails architecture
+(as mirrors the implementation of our Elasticsearch indexing service).
See [technical discovery](https://gitlab.com/gitlab-org/gitlab/-/issues/376716)
for further background exploration.
@@ -154,14 +185,35 @@ for further background exploration.
See [this thread](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105142#note_1194863310)
for past discussion around scaling approaches.
+### Detection engine
+
+Our current secret detection offering uses [Gitleaks](https://github.com/zricethezav/gitleaks/)
+for all secret scanning in pipeline contexts. By using its `--no-git` configuration
+we can scan arbitrary text blobs outside of a repository context and continue to
+use it for non-pipeline scanning.
+
+Changes to the detection engine are out of scope until benchmarking unveils performance concerns.
+
+For the long-term direction of GitLab Secret Detection, the scope is greater than that of the Gitleaks tool. As such, we should consider feature encapsulation to limit the Gitleaks domain to the relevant build context only.
+
+In the case of pre-receive detection, we rely on a combination of keyword/substring matches
+for pre-filtering and `re2` for regex detections. See [spike issue](https://gitlab.com/gitlab-org/gitlab/-/issues/423832) for initial benchmarks.
+
+Notable alternatives include high-performance regex engines such as [Hyperscan](https://github.com/intel/hyperscan) or it's portable fork [Vectorscan](https://github.com/VectorCamp/vectorscan).
+These systems may be worth exploring in the future if our performance characteristics show a need to grow beyond the existing stack, however the team's velocity in building an independently scalable and generic scanning engine was prioritized, see [ADR 001](decisions/001_use_ruby_push_check_approach_within_monolith.md) for more on the implementation language considerations.
+
+### Organization-level Controls
+
+Configuration and workflows should be oriented around [Organizations](../organization/index.md). Detection controls and governance patterns should support configuration across multiple projects and groups in a uniform way that emphasizes shared allowlists, organization-wide policies (i.e. disablement of push option bypass), and auditability.
+
+Each phase documents the paradigm used as we iterate from Instance-level to Organization-level controls.
+
### Phase 1 - Ruby pushcheck pre-receive integration
The critical paths as outlined under [goals above](#goals) cover two major object
types: Git text blobs (corresponding to push events) and arbitrary text blobs. In Phase 1,
we focus entirely on Git text blobs.
-This phase will be considered "Experimental" with limited availability for customer opt-in, through instance level application settings.
-
The detection flow for push events relies on subscribing to the PreReceive hook
to scan commit data using the [PushCheck interface](https://gitlab.com/gitlab-org/gitlab/blob/3f1653f5706cd0e7bbd60ed7155010c0a32c681d/lib/gitlab/checks/push_check.rb). This `SecretScanningService`
service fetches the specified blob contents from Gitaly, scans
@@ -170,6 +222,10 @@ See [Push event detection flow](#push-event-detection-flow) for sequence.
In the case of a push detection, the commit is rejected inline and error returned to the end user.
+#### Configuration
+
+This phase will be considered "Experimental" with limited availability for customer opt-in, through instance level application settings.
+
#### High-Level Architecture
The Phase 1 architecture involves no additional components and is entirely encapsulated in the Rails application server. This provides a rapid deployment with tight integration within auth boundaries and no distribution coordination.
@@ -204,7 +260,7 @@ sidekiq .[#ff8dd1]----> postgres
@enduml
```
-#### Push event detection flow
+#### Push Event Detection Flow
```mermaid
sequenceDiagram
@@ -237,7 +293,7 @@ sequenceDiagram
The critical paths as outlined under [goals above](#goals) cover two major object
types: Git text blobs (corresponding to push events) and arbitrary text blobs. In Phase 2,
-we focus entirely on Git text blobs.
+we continue to focus on Git text blobs.
This phase emphasizes scaling the service outside of the monolith for general availability and to allow
an on-by-default behavior. The architecture is adapted to provide an isolated and independently
@@ -245,13 +301,17 @@ scalable service outside of the Rails monolith.
In the case of a push detection, the commit is rejected inline and error returned to the end user.
+#### Configuration
+
+This phase will be considered "Generally Available" and on-by-default, with disablement configuration through organization-level settings.
+
#### High-Level Architecture
The Phase 2 architecture involves extracting the secret detection logic into a standalone service
which communicates directly with both the Rails application and Gitaly. This provides a means to scale
the secret detection nodes independently, and reduce resource usage overhead on the rails application.
-Scans still runs synchronously as a (potentially) blocking pre-receive transaction.
+Scans still runs synchronously as a (potentially) blocking pre-receive transaction. The blob size remains limited to 1MB.
Note that the node count is purely illustrative, but serves to emphasize the independent scaling requirements for the scanning service.
@@ -308,7 +368,7 @@ consul .[#e76a9b]-> prsd_cluster
@enduml
```
-#### Push event detection flow
+#### Push Event Detection Flow
```mermaid
sequenceDiagram
@@ -345,7 +405,7 @@ sequenceDiagram
Rails->>User: accepted
```
-### Phase 3 - Expansion beyond pre-
+### Phase 3 - Expansion beyond pre-receive service
The detection flow for arbitrary text blobs, such as issue comments, relies on
subscribing to `Notes::PostProcessService` (or equivalent service) to enqueue
@@ -364,11 +424,15 @@ In any other case of detection, the Rails application manually creates a vulnera
using the `Vulnerabilities::ManuallyCreateService` to surface the finding in the
existing Vulnerability Management UI.
-#### Architecture
+#### Configuration
+
+This phase will be considered "Generally Available" and on-by-default, with disablement configuration through organization-level settings.
+
+#### High-Level Architecture
There is no change to the architecture defined in Phase 2, however the individual load requirements may require scaling up the node counts for the detection service.
-#### Detection flow
+#### Push Event Detection Flow
There is no change to the push event detection flow defined in Phase 2, however the added capability to scan
arbitary text blobs directly from Rails allows us to emulate a pre-receive behavior for issuable creations,
@@ -403,52 +467,42 @@ sequenceDiagram
Rails->>User: rejected: secret found
```
-### Target types
+### Future Phases
-Target object types refer to the scanning targets prioritized for detection of leaked secrets.
+These are key items for delivering a feature-complete always-on experience but have not have yet been prioritized into phases.
-In order of priority this includes:
+### Large blob sizes (1mb+)
-1. non-binary Git blobs
-1. job logs
-1. issuable creation (issues, MRs, epics)
-1. issuable updates (issues, MRs, epics)
-1. issuable comments (issues, MRs, epics)
+Current phases do not include expansions of blob sizes beyond 1mb. While the main limitation was chosen [to conform to RPC transfer limits for future iterations](#transfer-optimizations-for-large-git-data-blobs) we should expand to supporting additional blob sizes. This can be achieved in two ways:
-Targets out of scope for the initial phases include:
+1. *Post-receive processing*
-- Media types (JPEG, PDF, ...)
-- Snippets
-- Wikis
-- Container images
+ Accept blobs in a non-blocking fashion, process scanning as background job and alert passively on detection of a given secret.
-### Token types
+1. *Improvements to scanning logic batching*
-The existing Secret Detection configuration covers ~100 rules across a variety
-of platforms. To reduce total cost of execution and likelihood of false positives
-the dedicated service targets only well-defined tokens. A well-defined token is
-defined as a token with a precise definition, most often a fixed substring prefix or
-suffix and fixed length.
+ Maintaining the constraint of 1MB is primarily futureproofing to match an expected transport protocol. This can be mitigated by using separate transport (http, reads from disk, ...) or by slicing blob sizes.
-Token types to identify in order of importance:
+### Detection Suppression
-1. Well-defined GitLab tokens (including Personal Access Tokens and Pipeline Trigger Tokens)
-1. Verified Partner tokens (including AWS)
-1. Remainder tokens included in Secret Detection CI configuration
+Suppression of detection and action on leaked secrets will be supported at several levels.
-### Detection engine
+1. *Global suppression* - If a secret is highly-likely to be a false token (i.e. `EXAMPLE`) it should be suppressed in workflow contexts where user would be seriously inconvenienced.
-Our current secret detection offering uses [Gitleaks](https://github.com/zricethezav/gitleaks/)
-for all secret scanning in pipeline contexts. By using its `--no-git` configuration
-we can scan arbitrary text blobs outside of a repository context and continue to
-use it for non-pipeline scanning.
+ We should still provide some means of triaging these results, whether via [audit events](#auditability) or as [automatic vulnerability resolution](../../../user/application_security/sast/index.md#automatic-vulnerability-resolution).
-In the case of pre-receive detection, we rely on a combination of keyword/substring matches
-for pre-filtering and `re2` for regex detections. See [spike issue](https://gitlab.com/gitlab-org/gitlab/-/issues/423832) for initial benchmarks
+1. *Organization suppression* - If a secret matches an organization's allowlist (or was previously flagged and remediated as irrelevant) it should not reoccur. See [Organization-level controls](#organization-level-controls).
-Changes to the detection engine are out of scope until benchmarking unveils performance concerns.
+1. *Inline suppression* - Inline annotations should be supported in later phases with the Organization-level configuration to ignore annotations.
-Notable alternatives include high-performance regex engines such as [Hyperscan](https://github.com/intel/hyperscan) or it's portable fork [Vectorscan](https://github.com/VectorCamp/vectorscan).
+### External Token Verification
+
+As a post-processing step for detection we should explore verification of detected secrets. This requires processors per supported token type in which we can distinguish tokens that are valid leaks from false positives. Similar to our [automatic response to leaked secrets](../../../user/application_security/secret_detection/automatic_response.md), we must externally verify a given token to give a high degree of confidence in our alerting.
+
+There are two token types: internal and external:
+
+- Internal tokens are verifiable and revocable as part of `ScanSecurityReportSecretsWorker` worker
+- External tokens require external verification, in which [the architecture](../../../user/application_security/secret_detection/automatic_response.md#high-level-architecture) will closely match the [Secret Revocation Service](https://gitlab.com/gitlab-com/gl-security/engineering-and-research/automation-team/secret-revocation-service/)
## Iterations
@@ -459,14 +513,14 @@ Notable alternatives include high-performance regex engines such as [Hyperscan](
- [Pre-Production Performance Profiling for pre-receive PoCs](https://gitlab.com/gitlab-org/gitlab/-/issues/428499)
- Profiling service capabilities
- ✓ [Benchmarking regex performance between Ruby and Go approaches](https://gitlab.com/gitlab-org/gitlab/-/issues/423832)
- - gRPC commit retrieval from Gitaly
- transfer latency, CPU, and memory footprint
-- Implementation of secret scanning service MVC (targeting individual commits)
+- ✓ Implementation of secret scanning gem integration MVC (targeting individual commits)
+- Phase1 - Deployment and monitoring
- Capacity planning for addition of service component to Reference Architectures headroom
- Security and readiness review
-- Deployment and monitoring
-- Implementation of secret scanning service MVC (targeting arbitrary text blobs)
-- Deployment and monitoring
+- Phase2 - Deployment and monitoring
+- Implementation of secret scanning service (targeting arbitrary text blobs)
+- Phase3 - Deployment and monitoring
- High priority domain object rollout (priority `TBD`)
- Issuable comments
- Issuable bodies
diff --git a/doc/architecture/blueprints/secret_manager/index.md b/doc/architecture/blueprints/secret_manager/index.md
index ac30f3399d8..3a538f58dde 100644
--- a/doc/architecture/blueprints/secret_manager/index.md
+++ b/doc/architecture/blueprints/secret_manager/index.md
@@ -114,10 +114,10 @@ the data keys mentioned above.
### Further investigations required
1. Management of identities stored in GCP Key Management.
-We need to investigate how we can correlate and de-multiplex GitLab identities into
-GCP identities that are used to allow access to cryptographic operations on GCP Key Management.
+ We need to investigate how we can correlate and de-multiplex GitLab identities into
+ GCP identities that are used to allow access to cryptographic operations on GCP Key Management.
1. Authentication of clients. Clients to the Secrets Manager could be GitLab Runner or external clients.
-For each of these, we need a secure and reliable method to authenticate requests to decrypt a secret.
+ For each of these, we need a secure and reliable method to authenticate requests to decrypt a secret.
1. Assignment of GCP backed private keys to each identity.
### Availability on SaaS and Self-Managed
diff --git a/doc/architecture/blueprints/tailwindcss/index.md b/doc/architecture/blueprints/tailwindcss/index.md
new file mode 100644
index 00000000000..0409f802038
--- /dev/null
+++ b/doc/architecture/blueprints/tailwindcss/index.md
@@ -0,0 +1,172 @@
+---
+status: proposed
+creation-date: "2023-12-21"
+authors: [ "@peterhegman", "@svedova", "@pgascouvaillancourt" ]
+approvers: [ "@samdbeckham" ]
+owning-stage: "~devops::manage"
+participating-stages: []
+---
+
+<!-- Blueprints often contain forward-looking statements -->
+<!-- vale gitlab.FutureTense = NO -->
+
+# Delegating CSS utility classes generation to Tailwind CSS
+
+## Summary
+
+Styling elements in GitLab primarily relies on CSS utility classes. Those are classes that
+generally define a single CSS property and that can be applied additively to change an element's look.
+We have developed our own tooling in the [GitLab UI](https://gitlab.com/gitlab-org/gitlab-ui) project
+to generate the utils we need, but our approach has demonstrated a number of flaws that can be
+circumvented by delegating that task to the [Tailwind CSS](https://tailwindcss.com/) framework.
+
+This initiative requires that we deprecate existing utilities so that Tailwind CSS can replace them.
+
+## Motivation
+
+In June 2019, we have consolidated our usage of CSS utility classes through [RFC#4](https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/4)
+which introduced the concept of silent classes, where utilities would be generated from a collection
+of manually defined SCSS mixins.
+
+This has served us well, but came with some caveats:
+
+- **Increased development overhead:** whenever a new utility is needed, it has to be manually added
+ to the [GitLab UI](https://gitlab.com/gitlab-org/gitlab-ui) project. One then needs to wait on a
+ new version of `@gitlab/ui` to be released and installed in the consumer project.
+- **Inconsistencies:** Without any tooling in place to check how utilities are named, we have seen
+ many inconsistencies make their way in the library, making it quite unpredictable. The most striking
+ example of this was the introduction of desktop-first utilities among a majority of mobile-first
+ utils, without any way of distinguishing the former from the latter, other than looking at the source.
+- **Disconnection between the utilities library and its consumers:** When a utility is added to the
+ library, it is made available to _any_ project that uses `@gitlab/ui`. As a result, some utils are
+ included in projects that don't need them. Conversely, if all consumers stop using a given util,
+ it could potentially be removed to decrease the CSS bundle size, but we have no visibility over this.
+- **Limited autocompletion:** Although it's possible to configure autocomplete for the existing
+ library, it is restricted to the utilities bundle. In contrast, Tailwind CSS autocomplete aligns
+ with an on-demand approach, ensuring that all utilities are readily available. Additionally, IDE
+ extensions can enhance understanding by revealing the values applied by a specific utility.
+
+As part of this architectural change, we are alleviating these issues by dropping our custom built
+solution for generating CSS utils, and delegating this task to [Tailwind CSS](https://tailwindcss.com/).
+
+It is worth noting that this was previously debated in [RFC#107](https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/107).
+The RFC was well received. The few concerns that were raised were about the CSS utility approach as
+a whole, not the way we implemented it. This initiative's purpose _is not_ to question our reliance
+on utility classes, but to consolidate its implementation to improve engineers' efficiency when working
+with CSS utils.
+
+### Why Tailwind CSS?
+
+Here are a few reasons that led us to choosing Tailwind CSS over similar tools:
+
+- It is a long-standing project that has been battle-tested in many production apps and has a
+ healthy community around it.
+- Tailwind CSS is well maintained and keeps evolving without getting bloated.
+- It integrates well in all of our tech stacks
+ - Ruby on Rails projects can leverage the [`tailwindcss-rails` Gem](https://tailwindcss.com/docs/guides/ruby-on-rails).
+ - Nuxt apps can setup the [`tailwindcss` module](https://nuxt.com/modules/tailwindcss).
+ - More generic frontend stacks can use the [`tailwindcss` Node module](https://tailwindcss.com/docs/installation).
+
+### Goals
+
+This blueprint's goal is to improve the developer experience (DX) when working with CSS utility classes.
+As a result of this initiative, frontend engineers' efficiency should be increased thanks to a much
+lower development overhead.
+
+### Non-Goals
+
+As stated in the motivations above, this focuses on improving an existing architectural decision,
+not on replacing it with a new design. So this therefore:
+
+- _Is not_ aimed at revisiting the way we write CSS or how we apply styles within our projects.
+- _Does not_ focus on user-facing improvements. This change is mostly a developer experience enhancement.
+ The resulting increase in efficiency could certainly indirectly improve user experience, but that
+ is not our primary intent.
+
+## Proposal
+
+We will be setting up Tailwind CSS in GitLab UI _and_ GitLab. The intent is to have the main
+Tailwind CSS configuration in GitLab UI. This step is where we'll be maintaining the Pajamas-compliant
+configuration properties (color, spacing scale, etc.). The Tailwind CSS setup in GitLab will inherit from
+GitLab UI's setup. The subtlety here is that, in GitLab, we will be scanning both the GitLab codebase
+and the `@gitlab/ui` Node module. This will ensure that GitLab UI does not need to expose any CSS
+utilities anymore, but the ones it relies on are still generated in GitLab. A similar setup will
+need to be introduced in other projects that use CSS utilities and need to upgrade to the Tailwind
+CSS-based version.
+
+### Pros
+
+- We are removing the cumbersome workflow for adding new utilities. One should be able to use any
+ utility right away without contributing to another project and waiting through the release cycle.
+- We are introducing a predictable library, where the naming is decided upon in the overarching
+ Tailwind CSS project. As engineers know, naming things is difficult, and it's best that we defer
+ this to a well-established project.
+- Engineers should be able to refer to Tailwind CSS documentation to know what utils are available
+ and how to use them. No need to read through GitLab UI's source code anymore.
+- Because Tailwind CSS generates the required utils by scanning the consumer's codebase, we'll be
+ sure to only generate the utilities we actually need, keeping CSS bundle sizes under control. This
+ must be taken with a grain of salt though: Tailwind CSS is extremely flexible and makes it possible
+ to generate all sorts of utils, sometimes with developer-defined values, which could result in
+ large utils bundles depending on how we'll adopt Tailwind CSS' features.
+- We'll benefit from a robust IDE integration providing auto-completion and previews for the utils
+ we support.
+
+### Cons
+
+- More setup: each project that requires CSS utils would need to have Tailwind CSS set up,
+ which might be more or less tedious depending on the environment.
+- One more dev dependency in each project.
+- Inability to use string interpolation to build class names dynamically (Tailwind CSS
+ needs to see the full names to generate the required classes).
+- We'll need a migration: we'll need to ensure usages of the existing CSS utilities library
+ don't break, which implies a deprecation/migration process.
+
+## Design and implementation details
+
+In order to prevent breakages, we are taking an iterative approach to moving away from the current
+library. The proposed path here is purposefully rough around the edges. We acknowledge that it's
+not a one size fits all solution and that we might need to adjust to some cases along the way.
+
+Here's the basic process:
+
+1. Deprecate a collection of utility mixins in GitLab UI. This entails replacing the `gl-` prefix
+ with `gl-deprecated-` in the mixin's name, and updating all usages in both GitLab UI _and_ GitLab
+ accordingly. We will typically focus on a single mixins file at a time, though we might want to
+ deprecate several files at once if they are small enough. Conversely, some files might be too big
+ to be deprecated in one go and would require several iterations.
+1. Enable the corresponding [Tailwind CSS core plugins](https://tailwindcss.com/docs/configuration#core-plugins) so that we can immediately start using the
+ newer utilities.
+1. Migrate deprecated utilities to their Tailwind CSS equivalents.
+
+```mermaid
+flowchart TD
+ RequiresDeprecation(Is the mixins collection widely used in GitLab?)
+ DeprecateMixins[Mark the mixins as deprecated with the `gl-deprecated-` prefix]
+
+ HasTailwindEq(Does Tailwind CSS have equivalents?)
+ EnableCorePlugin["Enable the corresponding Tailwind CSS core plugin(s)"]
+ WriteCustomUtil[Write a custom Tailwind CSS utility]
+
+ MigrateUtils[Migrate legacy utils to Tailwind CSS]
+
+ RequiresDeprecation -- Yes --> DeprecateMixins
+ DeprecateMixins --> HasTailwindEq
+ RequiresDeprecation -- No --> HasTailwindEq
+ HasTailwindEq -- Yes --> EnableCorePlugin
+ HasTailwindEq -- No --> WriteCustomUtil
+ EnableCorePlugin --> MigrateUtils
+ WriteCustomUtil --> MigrateUtils
+```
+
+The deprecation step gives us some margin to evaluate each migration without risking breakages in
+production. It does have some drawbacks:
+
+- We might cause merge conflicts for others as we will be touching several areas of the product in
+ our deprecation MRs. We will make sure to communicate these changes efficiently to not make things
+ too confusing. We will also use our best judgement to split MRs when we feel like their scope gets
+ too large.
+- Deprecation MRs might require approval from several departments, which is another reason to
+ be transparent and iterative throughout the process.
+- We are purposefully introducing technical debt which we are committed to pay in a reasonable time frame.
+ We acknowledge that the actual duration of this initiative may be affected by a number of factors (uncovering
+ edge-cases, DRIs' capacity, department-wide involvement, etc.), but we expect to have it completed in 6-12 months.
diff --git a/doc/ci/caching/index.md b/doc/ci/caching/index.md
index 55f18987490..737b18fb6c2 100644
--- a/doc/ci/caching/index.md
+++ b/doc/ci/caching/index.md
@@ -738,5 +738,5 @@ instance.
To share the cache between concurrent runners, you can either:
- Use the `[runners.docker]` section of the runners' `config.toml` to configure a single mount point on the host that
-is mapped to `/cache` in each container, preventing the runner from creating unique volume names.
+ is mapped to `/cache` in each container, preventing the runner from creating unique volume names.
- Use a distributed cache.
diff --git a/doc/ci/cloud_deployment/ecs/deploy_to_aws_ecs.md b/doc/ci/cloud_deployment/ecs/deploy_to_aws_ecs.md
index b80bbbc5c98..82f92cdc938 100644
--- a/doc/ci/cloud_deployment/ecs/deploy_to_aws_ecs.md
+++ b/doc/ci/cloud_deployment/ecs/deploy_to_aws_ecs.md
@@ -276,7 +276,7 @@ include:
To use DAST on the default branch:
1. Set up a new [service](#create-an-ecs-service). This service will be used to deploy a temporary
-DAST environment.
+ DAST environment.
1. Use the `CI_AWS_ECS_SERVICE` variable to set the name.
1. Set the scope to the `dast-default` environment.
1. Add the following to your `.gitlab-ci.yml` file:
diff --git a/doc/ci/cloud_services/azure/index.md b/doc/ci/cloud_services/azure/index.md
index d3bd8e187ba..b3fcaabfdde 100644
--- a/doc/ci/cloud_services/azure/index.md
+++ b/doc/ci/cloud_services/azure/index.md
@@ -153,7 +153,7 @@ you should verify:
- For the `gitlab-group/gitlab-project` project and `main` branch it would be:
`project_path:gitlab-group/gitlab-project:ref_type:branch:ref:main`.
- The correct values of `mygroup` and `myproject` can be retrieved by checking the URL
- when accessing your GitLab project or by selecting the **Clone** option in the project.
+ when accessing your GitLab project or, in the upper-right corner of the project's overview page, selecting **Code**.
- The `Audience` defined in the Azure AD federated identity credentials, for example `https://gitlab.com`
or your own GitLab URL.
diff --git a/doc/ci/debugging.md b/doc/ci/debugging.md
index 8a60b5f649e..84715cda2f5 100644
--- a/doc/ci/debugging.md
+++ b/doc/ci/debugging.md
@@ -143,7 +143,7 @@ configuration into more independent [parent-child pipelines](../ci/pipelines/pip
Pipeline configuration warnings are shown when you:
-- [Validate configuration with the CI Lint tool](yaml/index.md).
+- [Validate configuration with the CI Lint tool](lint.md).
- [Manually run a pipeline](pipelines/index.md#run-a-pipeline-manually).
### `Job may allow multiple pipelines to run for a single action` warning
diff --git a/doc/ci/docker/using_docker_build.md b/doc/ci/docker/using_docker_build.md
index beaa2291eea..bc157c7ae08 100644
--- a/doc/ci/docker/using_docker_build.md
+++ b/doc/ci/docker/using_docker_build.md
@@ -853,7 +853,7 @@ This indicates the GitLab Runner does not have permission to start the
1. Check that `privileged = true` is set in the `config.toml`.
1. Make sure the CI job has the right Runner tags to use these
-privileged runners.
+ privileged runners.
### Error: `cgroups: cgroup mountpoint does not exist: unknown`
diff --git a/doc/ci/environments/img/kubernetes_summary_ui.png b/doc/ci/environments/img/kubernetes_summary_ui.png
index ce51cd8e96f..f8eae88745e 100644
--- a/doc/ci/environments/img/kubernetes_summary_ui.png
+++ b/doc/ci/environments/img/kubernetes_summary_ui.png
Binary files differ
diff --git a/doc/ci/environments/index.md b/doc/ci/environments/index.md
index 03c9a152d98..c9148e04bf3 100644
--- a/doc/ci/environments/index.md
+++ b/doc/ci/environments/index.md
@@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
Environments describe where code is deployed.
-Each time [GitLab CI/CD](../yaml/index.md) deploys a version of code to an environment,
+Each time [GitLab CI/CD](../index.md) deploys a version of code to an environment,
a deployment is created.
GitLab:
@@ -24,7 +24,7 @@ associated with your project, you can use it to assist with your deployments.
Prerequisites:
-- You must have at least the Reporter role.
+- In a private project, you must have at least the Reporter role. See [Environment permissions](#environment-permissions).
There are a few ways to view a list of environments for a given project:
@@ -108,7 +108,7 @@ To create a static environment, in your `.gitlab-ci.yml` file:
1. Define a job in the `deploy` stage.
1. In the job, define the environment `name` and `url`. If an
-environment of that name doesn't exist when the pipeline runs, it is created.
+ environment of that name doesn't exist when the pipeline runs, it is created.
NOTE:
Some characters cannot be used in environment names. For more information about the
@@ -912,6 +912,38 @@ like [Review Apps](../review_apps/index.md) (`review/*`).
The most specific spec takes precedence over the other wildcard matching. In this case,
the `review/feature-1` spec takes precedence over `review/*` and `*` specs.
+## Environment permissions
+
+Depending on your role, you can interact with environments in public
+and private projects.
+
+### View environments
+
+- In public projects, anyone can view a list of environments, including non-members.
+- In private projects, you must have at least the Reporter role to view a list of environments.
+
+### Create and update environments
+
+- You must have at least the Developer role to create a new environment, or update an existing unprotected environment.
+- If an existing environment is protected and you don't have access to it, you cannot update the environment.
+
+### Stop and delete environments
+
+- You must have at least the Developer role to stop or delete an unprotected environment.
+- If an environment is protected and you don't have access to it, you cannot stop or delete the environment.
+
+### Run deployment jobs in protected environments
+
+If you can push or merge to the protected branch:
+
+- You must have at least the Reporter role.
+
+If you can't push to the protected branch:
+
+- You must be a part of a group with the Reporter role.
+
+See [Deployment-only access to protected environments](protected_environments.md#deployment-only-access-to-protected-environments).
+
## Related topics
- [Dashboard for Kubernetes](kubernetes_dashboard.md)
@@ -1007,7 +1039,7 @@ deploy:
Since `$ENVIRONMENT` variable does not exist in the pipeline, GitLab tries to
create an environment with a name `production/`, which is invalid in
-[the environment name constraint](../yaml/index.md).
+[the environment name constraint](../yaml/index.md#environmentname).
To fix this, use one of the following solutions:
diff --git a/doc/ci/examples/end_to_end_testing_webdriverio/index.md b/doc/ci/examples/end_to_end_testing_webdriverio/index.md
index 556af355b1a..8872602a027 100644
--- a/doc/ci/examples/end_to_end_testing_webdriverio/index.md
+++ b/doc/ci/examples/end_to_end_testing_webdriverio/index.md
@@ -144,7 +144,7 @@ new browser window interacting with your app as you specified.
Which brings us to the exciting part: how do we run this in GitLab CI/CD? There are two things we
need to do for this:
-1. Set up [CI/CD jobs](../../yaml/index.md) that actually have a browser available.
+1. Set up [CI/CD jobs](../../jobs/index.md) that actually have a browser available.
1. Update our WebdriverIO configuration to use those browsers to visit the review apps.
For the scope of this article, we've defined an additional [CI/CD stage](../../yaml/index.md#stages)
diff --git a/doc/ci/index.md b/doc/ci/index.md
index beb7fffeb8a..429db0beede 100644
--- a/doc/ci/index.md
+++ b/doc/ci/index.md
@@ -2,7 +2,6 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
-description: "Learn how to use GitLab CI/CD, the GitLab built-in Continuous Integration, Continuous Deployment, and Continuous Delivery toolset to build, test, and deploy your application."
---
# Get started with GitLab CI/CD **(FREE ALL)**
@@ -22,7 +21,7 @@ If you're new to GitLab CI/CD, start by reviewing some of the commonly used term
To use GitLab CI/CD, you start with a `.gitlab-ci.yml` file at the root of your project
which contains the configuration for your CI/CD pipeline. This file follows the YAML format
-and has its own special syntax.
+and has its own syntax.
You can name this file anything you want, but `.gitlab-ci.yml` is the most common name.
@@ -38,8 +37,8 @@ In the `.gitlab-ci.yml` file, you can define:
**Get started:**
- [Create your first `.gitlab-ci.yml` file](quick_start/index.md).
-- [View all the possible keywords that you can use in the `.gitlab-ci.yml` file](yaml/index.md).
-the configuration.
+- View all the possible keywords that you can use in the `.gitlab-ci.yml` file in
+ the [CI/CD YAML syntax reference](../ci/yaml/index.md).
- Use the [pipeline editor](pipeline_editor/index.md) to edit or [visualize](pipeline_editor/index.md#visualize-ci-configuration)
your CI/CD configuration.
diff --git a/doc/ci/jobs/ci_job_token.md b/doc/ci/jobs/ci_job_token.md
index ba2d63c12e4..3a787189ac0 100644
--- a/doc/ci/jobs/ci_job_token.md
+++ b/doc/ci/jobs/ci_job_token.md
@@ -17,7 +17,7 @@ You can use a GitLab CI/CD job token to authenticate with specific API endpoints
- [Container registry](../../user/packages/container_registry/build_and_push_images.md#use-gitlab-cicd)
(the `$CI_REGISTRY_PASSWORD` is `$CI_JOB_TOKEN`).
- [Container registry API](../../api/container_registry.md)
- (scoped to the job's project, when the `ci_job_token_scope` feature flag is enabled).
+ (scoped to the job's project).
- [Get job artifacts](../../api/job_artifacts.md#get-job-artifacts).
- [Get job token's job](../../api/jobs.md#get-job-tokens-job).
- [Pipeline triggers](../../api/pipeline_triggers.md), using the `token=` parameter
diff --git a/doc/ci/jobs/index.md b/doc/ci/jobs/index.md
index f4836f93234..3cba8787821 100644
--- a/doc/ci/jobs/index.md
+++ b/doc/ci/jobs/index.md
@@ -134,7 +134,7 @@ jobs. Select to expand them.
![Grouped pipelines](img/pipeline_grouped_jobs_v14_2.png)
-To create a group of jobs, in the [CI/CD pipeline configuration file](../yaml/index.md),
+To create a group of jobs, in the [`.gitlab-ci.yml` file](../index.md#the-gitlab-ciyml-file),
separate each job name with a number and one of the following:
- A slash (`/`), for example, `slash-test 1/3`, `slash-test 2/3`, `slash-test 3/3`.
diff --git a/doc/ci/jobs/job_artifacts.md b/doc/ci/jobs/job_artifacts.md
index f93068faf01..34da3be9370 100644
--- a/doc/ci/jobs/job_artifacts.md
+++ b/doc/ci/jobs/job_artifacts.md
@@ -261,9 +261,17 @@ from:
- The **Artifacts** page. On the right of the job, select **Browse** (**{folder-open}**).
If [GitLab Pages](../../administration/pages/index.md) is enabled in the project, you can preview
-HTML files in the artifacts directly in your browser. If the project is internal or private, you must
-enable [GitLab Pages access control](../../administration/pages/index.md#access-control) to preview
-HTML files.
+some artifacts file extensions directly in your browser. If the project is internal or private, you must enable [GitLab Pages access control](../../administration/pages/index.md#access-control) to enable the preview.
+
+The following extensions are supported:
+
+| File extension | GitLab.com | Linux package with built-in NGINX |
+|----------|---------------------|--------------|
+| `.html` | **{check-circle}** Yes | **{check-circle}** Yes |
+| `.json` | **{check-circle}** Yes | **{check-circle}** Yes |
+| `.xml` | **{check-circle}** Yes | **{check-circle}** Yes |
+| `.txt` | **{dotted-circle}** No | **{check-circle}** Yes |
+| `.log` | **{dotted-circle}** No | **{check-circle}** Yes |
### From a URL
diff --git a/doc/ci/jobs/job_artifacts_troubleshooting.md b/doc/ci/jobs/job_artifacts_troubleshooting.md
index 0b7777d2d82..470c1bf4b55 100644
--- a/doc/ci/jobs/job_artifacts_troubleshooting.md
+++ b/doc/ci/jobs/job_artifacts_troubleshooting.md
@@ -155,3 +155,26 @@ To troubleshoot this error, verify that:
parent-child pipeline hierarchy.
- The `pipeline` and `job` combination exists and resolves to an existing pipeline.
- `dependency-job` has run and finished successfully.
+
+## Jobs show `UnlockPipelinesInQueueWorker` after an upgrade
+
+Jobs might stall and show an error that states `UnlockPipelinesInQueueWorker`.
+
+This issue occurs after an upgrade.
+
+The workaround is to enable the `ci_unlock_pipelines_extra_low` feature flag.
+To toggle feature flags, you must be an administrator.
+
+On GitLab SaaS:
+
+- Run the following [ChatOps](../chatops/index.md) command:
+
+ ```ruby
+ /chatops run feature set ci_unlock_pipelines_extra_low true
+ ```
+
+On GitLab self-managed:
+
+- [Enable the feature flag](../../administration/feature_flags.md) named `ci_unlock_pipelines_extra_low`.
+
+For more information see the comment in [merge request 140318](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140318#note_1718600424).
diff --git a/doc/ci/jobs/job_control.md b/doc/ci/jobs/job_control.md
index b432106a2d8..f7b3fed7d74 100644
--- a/doc/ci/jobs/job_control.md
+++ b/doc/ci/jobs/job_control.md
@@ -1218,3 +1218,49 @@ a branch that has an open merge request associated with it.
To [prevent duplicate pipelines](#avoid-duplicate-pipelines), use
[`workflow: rules`](../yaml/index.md#workflow) or rewrite your rules to control
which pipelines can run.
+
+### `This GitLab CI configuration is invalid` for variable expressions
+
+You might receive one of several `This GitLab CI configuration is invalid` errors
+when working with [CI/CD variable expressions](#cicd-variable-expressions).
+These syntax errors can be caused by incorrect usage of quote characters.
+
+In variable expressions, strings should be quoted, while variables should not be quoted.
+For example:
+
+```yaml
+variables:
+ ENVIRONMENT: production
+
+job:
+ script: echo
+ rules:
+ - if: $ENVIRONMENT == "production"
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+```
+
+In this example, both `if:` clauses are valid because the `production` string is quoted,
+and the CI/CD variables are unquoted.
+
+On the other hand, these `if:` clauses are all invalid:
+
+```yaml
+variables:
+ ENVIRONMENT: production
+
+job:
+ script: echo
+ rules: # These rules all cause YAML syntax errors:
+ - if: ${ENVIRONMENT} == "production"
+ - if: "$ENVIRONMENT" == "production"
+ - if: $ENVIRONMENT == production
+ - if: "production" == "production"
+```
+
+In this example:
+
+- `if: ${ENVIRONMENT} == "production"` is invalid, because `${ENVIRONMENT}` is not valid
+ formatting for CI/CD variables in `if:`.
+- `if: "$ENVIRONMENT" == "production"` is invalid, because the variable is quoted.
+- `if: $ENVIRONMENT == production` is invalid, because the string is not quoted.
+- `if: "production" == "production"` is invalid, because there is no CI/CD variable to compare.
diff --git a/doc/ci/large_repositories/index.md b/doc/ci/large_repositories/index.md
deleted file mode 100644
index cef0554bf6c..00000000000
--- a/doc/ci/large_repositories/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../user/project/repository/managing_large_repositories.md'
-remove_date: '2023-11-30'
----
-
-This document was moved to [another location](../../user/project/repository/managing_large_repositories.md).
-
-<!-- This redirect file can be deleted after <2023-11-30>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/ci/migration/bamboo.md b/doc/ci/migration/bamboo.md
index ea9dd666176..b2594e7571e 100644
--- a/doc/ci/migration/bamboo.md
+++ b/doc/ci/migration/bamboo.md
@@ -14,7 +14,7 @@ exported from the Bamboo UI or stored in Spec repositories.
If you are new to GitLab CI/CD, use the [Getting started guide](../index.md) to learn
the basic concepts and how to create your first [`.gitlab-ci.yml` file](../quick_start/index.md).
-If you already have some experience using GitLab CI/CD, you can review [keywords reference documentation](../yaml/index.md)
+If you already have some experience using GitLab CI/CD, you can review [CI/CD YAML syntax reference](../yaml/index.md)
to see the full list of available keywords.
You can also take a look at [Auto DevOps](../../topics/autodevops/index.md), which automatically
@@ -77,7 +77,7 @@ Bamboo Specs can also be [repository-stored](https://confluence.atlassian.com/ba
#### `.gitlab-ci.yml` configuration file
-GitLab, by default, uses a [`.gitlab-ci.yml` file](../yaml/index.md) for CI/CD configuration.
+GitLab, by default, uses a [`.gitlab-ci.yml` file](../index.md#the-gitlab-ciyml-file) for CI/CD configuration.
Alternatively, [Auto DevOps](../../topics/autodevops/index.md) can automatically build,
test, and deploy your application without a manually configured `.gitlab-ci.yml` file.
@@ -754,7 +754,7 @@ Before doing any migration work, you should first:
- Follow tutorials to create [your first GitLab pipeline](../quick_start/index.md)
and [more complex pipelines](../quick_start/tutorial.md) that build, test, and deploy
a static site.
- - Review the [`.gitlab-ci.yml` keyword reference](../yaml/index.md).
+ - Review the [CI/CD YAML syntax reference](../yaml/index.md).
1. Set up and configure GitLab.
1. Test your GitLab instance.
- Ensure [runners](../runners/index.md) are available, either by using shared GitLab.com runners or installing new runners.
diff --git a/doc/ci/migration/github_actions.md b/doc/ci/migration/github_actions.md
index ec55f129c1e..6afb6cebbff 100644
--- a/doc/ci/migration/github_actions.md
+++ b/doc/ci/migration/github_actions.md
@@ -672,7 +672,7 @@ Before doing any migration work, you should first:
1. Get familiar with GitLab.
- Read about the [key GitLab CI/CD features](../../ci/index.md).
- Follow tutorials to create [your first GitLab pipeline](../quick_start/index.md) and [more complex pipelines](../quick_start/tutorial.md) that build, test, and deploys a static site.
- - Review the [`.gitlab-ci.yml` keyword reference](../yaml/index.md).
+ - Review the [CI/CD YAML syntax reference](../yaml/index.md).
1. Set up and configure GitLab.
1. Test your GitLab instance.
- Ensure [runners](../runners/index.md) are available, either by using shared GitLab.com runners or installing new runners.
diff --git a/doc/ci/migration/jenkins.md b/doc/ci/migration/jenkins.md
index f430b1ac7b9..961799b9564 100644
--- a/doc/ci/migration/jenkins.md
+++ b/doc/ci/migration/jenkins.md
@@ -699,7 +699,7 @@ Before doing any migration work, you should first:
1. Get familiar with GitLab.
- Read about the [key GitLab CI/CD features](../../ci/index.md).
- Follow tutorials to create [your first GitLab pipeline](../quick_start/index.md) and [more complex pipelines](../quick_start/tutorial.md) that build, test, and deploys a static site.
- - Review the [`.gitlab-ci.yml` keyword reference](../yaml/index.md).
+ - Review the [CI/CD YAML syntax reference](../yaml/index.md).
1. Set up and configure GitLab.
1. Test your GitLab instance.
- Ensure [runners](../runners/index.md) are available, either by using shared GitLab.com runners or installing new runners.
diff --git a/doc/ci/mobile_devops.md b/doc/ci/mobile_devops.md
index e871a95d29f..4639967fb1d 100644
--- a/doc/ci/mobile_devops.md
+++ b/doc/ci/mobile_devops.md
@@ -338,26 +338,34 @@ To create an iOS distribution with the Apple Store integration and fastlane, you
1. Generate an API Key for App Store Connect API. In the Apple App Store Connect portal,
[generate a new private key for your project](https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api).
-1. [Enable the Apple App Store integration](#enable-apple-app-store-integration).
+1. [Enable the Apple App Store Connect integration](#enable-the-apple-app-store-connect-integration).
1. Add the release step to your pipeline and fastlane configuration.
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
-For an overview, see [Apple App Store integration demo](https://youtu.be/CwzAWVgJeK8).
+For an overview, see [Apple App Store Connect integration demo](https://youtu.be/CwzAWVgJeK8).
+<!-- Video published on 2023-03-17 -->
-#### Enable Apple App Store Integration
+#### Enable the Apple App Store Connect integration
-Use the [Apple App Store integration](../user/project/integrations/apple_app_store.md)
-to configure your CI/CD pipelines to connect to [App Store Connect](https://appstoreconnect.apple.com/)
-to build and release apps for iOS, iPadOS, macOS, tvOS, and watchOS. To enable the integration:
+Prerequisites:
+
+- You must have an Apple ID enrolled in the [Apple Developer Program](https://developer.apple.com/programs/enroll/).
+- You must [generate a new private key](https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api) for your project in the Apple App Store Connect portal.
+
+Use the Apple App Store Connect integration to configure your CI/CD pipelines to connect to [App Store Connect](https://appstoreconnect.apple.com).
+With this integration, you can build and release apps for iOS, iPadOS, macOS, tvOS, and watchOS.
+
+To enable the Apple App Store Connect integration in GitLab:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > Integrations**.
-1. Select **Apple App Store**.
+1. Select **Apple App Store Connect**.
1. Under **Enable integration**, select the **Active** checkbox.
1. Provide the Apple App Store Connect configuration information:
- - **Issuer ID**: You can find the Apple App Store Connect Issuer ID in the **Keys** section under **Users and Access** in the Apple App Store Connect portal.
- - **Key ID**: The key ID of the new private key that was just generated.
- - **Private Key**: The private key that was just generated. You can only download this key one time.
+ - **Issuer ID**: The Apple App Store Connect issuer ID.
+ - **Key ID**: The key ID of the generated private key.
+ - **Private key**: The generated private key. You can download this key only once.
+ - **Protected branches and tags only**: Enable to set variables on protected branches and tags only.
1. Select **Save changes**.
With the integration enabled, you can use fastlane to distribute a build to TestFlight
diff --git a/doc/ci/pipelines/cicd_minutes.md b/doc/ci/pipelines/cicd_minutes.md
index 699136ccf97..a6c3bb835d0 100644
--- a/doc/ci/pipelines/cicd_minutes.md
+++ b/doc/ci/pipelines/cicd_minutes.md
@@ -1,6 +1,7 @@
---
stage: Verify
group: Pipeline Execution
+description: Calculations, quotas, purchase information.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -321,7 +322,7 @@ Jobs on project runners are not affected by the compute quota.
### GitLab SaaS usage notifications
-On GitLab SaaS an email notification is sent to the namespace owners when:
+On GitLab SaaS an in-app banner is displayed and an email notification sent to the namespace owners when:
- The remaining compute minutes is below 30% of the quota.
- The remaining compute minutes is below 5% of the quota.
diff --git a/doc/ci/pipelines/downstream_pipelines.md b/doc/ci/pipelines/downstream_pipelines.md
index 61862a20436..ae2ca74e6f8 100644
--- a/doc/ci/pipelines/downstream_pipelines.md
+++ b/doc/ci/pipelines/downstream_pipelines.md
@@ -379,7 +379,9 @@ trigger_job:
::EndTabs
-### View multi-project pipelines in pipeline graphs **(PREMIUM ALL)**
+### View multi-project pipelines in pipeline graphs
+
+> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/422282) from GitLab Premium to GitLab Free in 16.8.
After you trigger a multi-project pipeline, the downstream pipeline displays
to the right of the [pipeline graph](index.md#visualize-pipelines).
diff --git a/doc/ci/pipelines/index.md b/doc/ci/pipelines/index.md
index 957e0e0de27..0a4f4c3762b 100644
--- a/doc/ci/pipelines/index.md
+++ b/doc/ci/pipelines/index.md
@@ -67,7 +67,7 @@ Pipelines and their component jobs and stages are defined in the CI/CD pipeline
- [Jobs](../jobs/index.md) are the basic configuration component.
- Stages are defined by using the [`stages`](../yaml/index.md#stages) keyword.
-For a list of configuration options in the CI pipeline file, see the [GitLab CI/CD Pipeline Configuration Reference](../yaml/index.md).
+For a list of configuration options in the CI pipeline file, see the [CI/CD YAML syntax reference](../yaml/index.md).
You can also configure specific aspects of your pipelines through the GitLab UI. For example:
diff --git a/doc/ci/pipelines/merge_request_pipelines.md b/doc/ci/pipelines/merge_request_pipelines.md
index 0de55d2a488..25358ecd602 100644
--- a/doc/ci/pipelines/merge_request_pipelines.md
+++ b/doc/ci/pipelines/merge_request_pipelines.md
@@ -58,7 +58,7 @@ The three types of merge request pipelines are:
To use merge request pipelines:
-- Your project's [CI/CD configuration file](../yaml/index.md) must be configured with
+- Your project's [`.gitlab-ci.yml` file](../index.md#the-gitlab-ciyml-file) must be configured with
jobs that run in merge request pipelines. To do this, you can use:
- [`rules`](#use-rules-to-add-jobs).
- [`only/except`](#use-only-to-add-jobs).
@@ -160,7 +160,7 @@ GitLab shows a warning that you must accept before the pipeline runs. Otherwise,
Prerequisites:
-- The parent project's [CI/CD configuration file](../yaml/index.md) must be configured to
+- The parent project's [`.gitlab-ci.yml` file](../index.md#the-gitlab-ciyml-file) must be configured to
[run jobs in merge request pipelines](#prerequisites).
- You must be a member of the parent project with [permissions to run CI/CD pipelines](../../user/permissions.md#gitlab-cicd-permissions).
You might need additional permissions if the branch is protected.
diff --git a/doc/ci/pipelines/merged_results_pipelines.md b/doc/ci/pipelines/merged_results_pipelines.md
index 213a07f49c4..691de7c3f3c 100644
--- a/doc/ci/pipelines/merged_results_pipelines.md
+++ b/doc/ci/pipelines/merged_results_pipelines.md
@@ -28,7 +28,7 @@ and [is labeled as `merge request`](merge_request_pipelines.md#types-of-merge-re
To use merged results pipelines:
-- Your project's [CI/CD configuration file](../yaml/index.md) must be configured to
+- Your project's [`.gitlab-ci.yml` file](../index.md#the-gitlab-ciyml-file) must be configured to
[run jobs in merge request pipelines](merge_request_pipelines.md#prerequisites).
- Your repository must be a GitLab repository, not an
[external repository](../ci_cd_for_external_repos/index.md).
diff --git a/doc/ci/pipelines/pipeline_efficiency.md b/doc/ci/pipelines/pipeline_efficiency.md
index 4a548c8c0af..07fc7c2dfd6 100644
--- a/doc/ci/pipelines/pipeline_efficiency.md
+++ b/doc/ci/pipelines/pipeline_efficiency.md
@@ -27,7 +27,7 @@ The easiest indicators to check for inefficient pipelines are the runtimes of th
stages, and the total runtime of the pipeline itself. The total pipeline duration is
heavily influenced by the:
-- [Size of the repository](../../user/project/repository/managing_large_repositories.md)
+- [Size of the repository](../../user/project/repository/monorepos/index.md)
- Total number of stages and jobs.
- Dependencies between jobs.
- The ["critical path"](#directed-acyclic-graphs-dag-visualization), which represents
diff --git a/doc/ci/pipelines/schedules.md b/doc/ci/pipelines/schedules.md
index f83868952f5..9ea635792f3 100644
--- a/doc/ci/pipelines/schedules.md
+++ b/doc/ci/pipelines/schedules.md
@@ -15,7 +15,7 @@ For a scheduled pipeline to run:
- The schedule owner must have the Developer role. For pipelines on protected branches,
the schedule owner must be [allowed to merge](../../user/project/protected_branches.md#add-protection-to-existing-branches)
to the branch.
-- The [CI/CD configuration](../yaml/index.md) must be valid.
+- The [`.gitlab-ci.yml` file](../index.md#the-gitlab-ciyml-file) must have valid syntax.
Otherwise, the pipeline is not created. No error message is displayed.
diff --git a/doc/ci/quick_start/index.md b/doc/ci/quick_start/index.md
index 3da4e5ad023..0dc07a36ef5 100644
--- a/doc/ci/quick_start/index.md
+++ b/doc/ci/quick_start/index.md
@@ -136,7 +136,7 @@ Now you can get started customizing your `.gitlab-ci.yml` and defining more adva
Here are some tips to get started working with the `.gitlab-ci.yml` file.
-For the complete `.gitlab-ci.yml` syntax, see [the full `.gitlab-ci.yml` keyword reference](../yaml/index.md).
+For the complete `.gitlab-ci.yml` syntax, see the full [CI/CD YAML syntax reference](../yaml/index.md).
- Use the [pipeline editor](../pipeline_editor/index.md) to edit your `.gitlab-ci.yml` file.
- Each job contains a script section and belongs to a stage:
diff --git a/doc/ci/quick_start/tutorial.md b/doc/ci/quick_start/tutorial.md
index 389309538e9..bb766436379 100644
--- a/doc/ci/quick_start/tutorial.md
+++ b/doc/ci/quick_start/tutorial.md
@@ -45,7 +45,7 @@ on GitLab.com:
- In the **Project name** field, enter the name of your project, for example `My Pipeline Tutorial Project`.
- Select **Initialize repository with a README**.
1. Select **Create project**.
-1. On the right of the **Project Overview** page for your project, select **Clone**
+1. On the project's overview page, in the upper-right corner, select **Code**
to find the clone paths for your project. Copy the SSH or HTTP path and use the path
to clone the project locally.
@@ -502,5 +502,5 @@ Use a merge request to commit this pipeline configuration to the default branch.
The file is simpler, but it should have the same behavior as the previous step.
You've just created a full pipeline and streamlined it to be more efficient. Nice work!
-Now you can take this knowledge, learn about [the rest of the `.gitlab-ci.yml` keywords](../yaml/index.md),
-and build your own pipelines.
+Now you can take this knowledge, learn about the rest of the `.gitlab-ci.yml` keywords
+in the [CI/CD YAML syntax reference](../yaml/index.md), and build your own pipelines.
diff --git a/doc/ci/review_apps/index.md b/doc/ci/review_apps/index.md
index 3ff25cc8bab..5854704521b 100644
--- a/doc/ci/review_apps/index.md
+++ b/doc/ci/review_apps/index.md
@@ -108,7 +108,7 @@ The following are example projects that demonstrate review app configuration:
Other examples of review apps:
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
-[Cloud Native Development with GitLab](https://www.youtube.com/watch?v=jfIyQEwrocw).
+ [Cloud Native Development with GitLab](https://www.youtube.com/watch?v=jfIyQEwrocw).
- [Review apps for Android](https://about.gitlab.com/blog/2020/05/06/how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io/).
## Route Maps
diff --git a/doc/ci/runners/configure_runners.md b/doc/ci/runners/configure_runners.md
index 3b21d865d8b..6212c07ce47 100644
--- a/doc/ci/runners/configure_runners.md
+++ b/doc/ci/runners/configure_runners.md
@@ -903,18 +903,41 @@ variables:
| `CACHE_COMPRESSION_LEVEL` | To adjust compression ratio, set to `fastest`, `fast`, `default`, `slow`, or `slowest`. This setting works with the Fastzip archiver only, so the GitLab Runner feature flag [`FF_USE_FASTZIP`](https://docs.gitlab.com/runner/configuration/feature-flags.html#available-feature-flags) must also be enabled. |
| `CACHE_REQUEST_TIMEOUT` | Configure the maximum duration of cache upload and download operations for a single job in minutes. Default is `10` minutes. |
-## Artifact attestation
+## Artifact provenance metadata
> [Introduced](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28940) in GitLab Runner 15.1.
NOTE:
Zip archives are the only supported artifact type. Follow [the issue for details](https://gitlab.com/gitlab-org/gitlab/-/issues/367203).
-GitLab Runner can generate and produce attestation metadata for all build artifacts. To enable this feature, you must set the `RUNNER_GENERATE_ARTIFACTS_METADATA` environment variable to `true`. This variable can either be set globally or it can be set for individual jobs. The metadata is in rendered in a plain text `.json` file that's stored with the artifact. The file name is as follows: `{ARTIFACT_NAME}-metadata.json` where `ARTIFACT_NAME` is what was defined as the [name for the artifact](../jobs/job_artifacts.md#with-a-dynamically-defined-name) in the CI file. The file name, however, defaults to `artifacts-metadata.json` if no name was given to the build artifacts.
+Runners can generate and produce provenance metadata for all build artifacts.
-### Attestation format
+To enable artifact provenance data, set the `RUNNER_GENERATE_ARTIFACTS_METADATA` environment
+variable to `true`. You can set the variable as global or for individual jobs:
-The attestation metadata is generated in the [in-toto attestation format](https://github.com/in-toto/attestation) for spec version [v0.1](https://github.com/in-toto/attestation/tree/v0.1.0/spec). The following fields are populated by default:
+```yaml
+variables:
+ RUNNER_GENERATE_ARTIFACTS_METADATA: "true"
+
+job1:
+ variables:
+ RUNNER_GENERATE_ARTIFACTS_METADATA: "true"
+```
+
+The metadata renders in a plain text `.json` file stored with the artifact. The
+file name is `{ARTIFACT_NAME}-metadata.json`. `ARTIFACT_NAME` is the
+[name for the artifact](../jobs/job_artifacts.md#with-a-dynamically-defined-name)
+defined in the `.gitlab-ci.yml` file. If the name is not defined, the default file name is
+`artifacts-metadata.json`.
+
+### Provenance metadata format
+
+The provenance metadata is generated in the [in-toto attestation format](https://github.com/in-toto/attestation) for spec version [0.1](https://github.com/in-toto/attestation/tree/v0.1.0/spec).
+The runner also produces a statement that adheres to SLSA v0.2 by default.
+
+To opt-in to an SLSA v1.0 statement, set the `SLSA_PROVENANCE_SCHEMA_VERSION=v1` variable in the `.gitlab-ci.yml` file. The v0.2 statement is deprecated and is planned to be removed in the GitLab 17.0 and the v1.0 statement is planned to become the new default format.
+
+The following fields are populated by default:
| Field | Value |
| ------ | ------ |
@@ -938,7 +961,7 @@ The attestation metadata is generated in the [in-toto attestation format](https:
| `metadata.completeness.environment` | Whether the builder's environment is reported. Always `true`. |
| `metadata.completeness.materials` | Whether the build materials are reported. Always `false`. |
-An example of an attestation that the GitLab Runner might generate is as follows:
+An example of provenance metadata that the GitLab Runner might generate is as follows:
```yaml
{
diff --git a/doc/ci/runners/img/runner_fleet_dashboard.png b/doc/ci/runners/img/runner_fleet_dashboard.png
new file mode 100644
index 00000000000..8c77b5a1aa9
--- /dev/null
+++ b/doc/ci/runners/img/runner_fleet_dashboard.png
Binary files differ
diff --git a/doc/ci/runners/index.md b/doc/ci/runners/index.md
index 1df93ed8896..bfb30a36be2 100644
--- a/doc/ci/runners/index.md
+++ b/doc/ci/runners/index.md
@@ -33,7 +33,7 @@ When you use SaaS runners:
- The VM is active only for the duration of the job and immediately deleted. This means that any changes that your job makes to the virtual machine will not be available to a subsequent job.
- The virtual machine where your job runs has `sudo` access with no password.
- The storage is shared by the operating system, the image with pre-installed software, and a copy of your cloned repository.
-This means that the available free disk space for your jobs to use is reduced.
+ This means that the available free disk space for your jobs to use is reduced.
NOTE:
Jobs handled by SaaS runners on GitLab.com **time out after 3 hours**, regardless of the timeout configured in a project.
diff --git a/doc/ci/runners/new_creation_workflow.md b/doc/ci/runners/new_creation_workflow.md
index c870a89a77a..12bffb79e33 100644
--- a/doc/ci/runners/new_creation_workflow.md
+++ b/doc/ci/runners/new_creation_workflow.md
@@ -39,7 +39,7 @@ The new runner registration workflow has the following benefits:
- Preserved ownership records for runners, and minimized impact on users.
- The addition of a unique system ID ensures that you can reuse the same authentication token across
-multiple runners. For more information, see [Reusing a GitLab Runner configuration](https://docs.gitlab.com/runner/fleet_scaling/#reusing-a-gitlab-runner-configuration).
+ multiple runners. For more information, see [Reusing a GitLab Runner configuration](https://docs.gitlab.com/runner/fleet_scaling/#reusing-a-gitlab-runner-configuration).
## Estimated time frame for planned changes
@@ -61,7 +61,7 @@ To avoid a broken workflow, you must:
1. [Create a shared runner](runners_scope.md#create-a-shared-runner-with-a-runner-authentication-token) and obtain the authentication token.
1. Replace the registration token in your runner registration workflow with the
-authentication token.
+ authentication token.
## Using registration tokens after GitLab 17.0
@@ -159,7 +159,9 @@ Several runner configuration options cannot be set during runner registration. T
The following configuration options are no longer supported in [`values.yaml`](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/blob/main/values.yaml):
```yaml
-## All these fields are DEPRECATED and the runner WILL FAIL TO START if you specify them
+## All these fields are DEPRECATED and the runner WILL FAIL TO START with GitLab Runner 18.0 and later if you specify them.
+## If a runner authentication token is specified in runnerRegistrationToken, the registration will succeed, however the
+## other values will be ignored.
runnerRegistrationToken: ""
locked: true
tags: ""
diff --git a/doc/ci/runners/runner_fleet_dashboard.md b/doc/ci/runners/runner_fleet_dashboard.md
new file mode 100644
index 00000000000..f329561cf4b
--- /dev/null
+++ b/doc/ci/runners/runner_fleet_dashboard.md
@@ -0,0 +1,90 @@
+---
+stage: Verify
+group: Runner
+info: >-
+ To determine the technical writer assigned to the Stage/Group associated with
+ this page, see
+ https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+# Runner Fleet Dashboard **(ULTIMATE)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/424495) in GitLab 16.6
+
+GitLab administrators can use the Runner Fleet Dashboard to assess the health of your instance runners.
+The Runner Fleet Dashboard shows:
+
+- Recent CI errors related caused by runner infrastructure.
+- Number of concurrent jobs executed on most busy runners.
+- Histogram of job queue times [(available only with ClickHouse)](#enable-more-ci-analytics-features-with-clickhouse).
+
+Support for usage and cost analysis are proposed in [epic 11183](https://gitlab.com/groups/gitlab-org/-/epics/11183).
+
+![Runner Fleet Dashboard](img/runner_fleet_dashboard.png)
+
+## View the Runner Fleet Dashboard
+
+Prerequisites:
+
+- You must be an administrator.
+
+To view the runner fleet dashboard:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Runners**.
+1. Select **Fleet dashboard**.
+
+Most of the dashboard works without any additional actions, with the
+exception of **Wait time to pick a job** chart and features proposed in [epic 11183](https://gitlab.com/groups/gitlab-org/-/epics/11183).
+These features require [setting up an additional infrastructure](#enable-more-ci-analytics-features-with-clickhouse).
+
+## Export compute minutes used by instance runners
+
+Prerequisites:
+
+- You must be an administrator.
+
+To analyze runner usage, you can export a CSV file that contains the number of jobs and executed runner minutes. The
+CSV file shows the runner type and job status for each project. The CSV is sent to your email when the export is completed.
+
+To export compute minutes used by instance runners:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Runners**.
+1. Select **Fleet dashboard**.
+1. Select **Export CSV**.
+
+## Enable more CI analytics features with ClickHouse **(ULTIMATE EXPERIMENT)**
+
+> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11180) in GitLab 16.7 with the [flags](../../administration/feature_flags.md) named `ci_data_ingestion_to_click_house` and `clickhouse_ci_analytics`. Disabled by default.
+> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/issues/424866) in GitLab 16.8. Feature flag `clickhouse_ci_analytics` removed.
+
+This feature is an [Experiment](../../policy/experiment-beta-support.md).
+To test it, we have launched an early adopters program.
+To join the list of users testing this feature, see
+[epic 11180](https://gitlab.com/groups/gitlab-org/-/epics/11180).
+
+### Enable ClickHouse integration
+
+To enable additional CI analytics features:
+
+1. [Configure ClickHouse integration](../../integration/clickhouse.md)
+1. [Enable](../../administration/feature_flags.md#how-to-enable-and-disable-features-behind-flags) the following feature flags:
+
+ | Feature flag name | Purpose | Status |
+ |------------------------------------|---------------------------------------------------------------------------|------------------------------------|
+ | `ci_data_ingestion_to_click_house` | Enables synchronization of new finished CI builds to ClickHouse database. | Enabled by default in GitLab 16.8. |
+ | `clickhouse_ci_analytics` | Enables the **Wait time to pick a job** chart. | Removed in 16.8. |
+
+<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
+For a video walkthrough, see [Setting up Runner Fleet Dashboard with ClickHouse](https://www.youtube.com/watch?v=YpGV95Ctbpk).
+
+## Feedback
+
+To help us improve the Runner Fleet Dashboard, you can provide feedback in
+[issue 421737](https://gitlab.com/gitlab-org/gitlab/-/issues/421737).
+In particular:
+
+- How easy or difficult it was to setup GitLab to make the dashboard work.
+- How useful you found the dashboard.
+- What other information you would like to see on that dashboard.
+- Any other related thoughts and ideas.
diff --git a/doc/ci/runners/runners_scope.md b/doc/ci/runners/runners_scope.md
index 48f6a22e9b3..d6a556ffd9b 100644
--- a/doc/ci/runners/runners_scope.md
+++ b/doc/ci/runners/runners_scope.md
@@ -576,13 +576,16 @@ A runner can have one of the following statuses.
As an administrator, you can view runner statistics to learn about the performance of your runner fleet.
-- The **Median job queued time** value is calculated by sampling the queue duration of the
+The **Median job queued time** value is calculated by sampling the queue duration of the
most recent 100 jobs that were run by Instance runners. Jobs from only the latest 5000
runners are considered.
-- The median is a value that falls into the 50th percentile: half of the jobs
+
+The median is a value that falls into the 50th percentile: half of the jobs
queued for longer than the median value, and half of the jobs queued for less than the
median value.
+To view runner statistics:
+
1. On the left sidebar, at the bottom, select **Admin Area**.
1. Select **CI/CD > Runners**.
1. Select **View metrics**.
diff --git a/doc/ci/runners/saas/macos_saas_runner.md b/doc/ci/runners/saas/macos_saas_runner.md
index 03c23680c1c..0251c523864 100644
--- a/doc/ci/runners/saas/macos_saas_runner.md
+++ b/doc/ci/runners/saas/macos_saas_runner.md
@@ -21,8 +21,7 @@ You can follow our work towards this goal in the
## Machine types available for macOS
-GitLab SaaS provides macOS build machines on Apple silicon (M1) chips.
-Intel x86-64 runners were deprecated in favor of Apple silicon. To build for an x86-64 target, use Rosetta 2 to emulate an Intel x86-64 build environment.
+GitLab SaaS provides macOS build machines on Apple silicon (M1) chips. To build for an x86-64 target, you can use Rosetta 2 to emulate an Intel x86-64 build environment.
| Runner Tag | vCPUS | Memory | Storage |
| ---------------------- | ----- | ------ | ------- |
@@ -40,7 +39,7 @@ in your `.gitlab-ci.yml` file. Each image runs a specific version of macOS and X
|----------------------------|--------|--------------|
| `macos-12-xcode-14` | `GA` | |
| `macos-13-xcode-14` | `GA` | [Preinstalled Software](https://gitlab.com/gitlab-org/ci-cd/shared-runners/images/job-images/-/blob/main/toolchain/macos-13.yml) |
-| `macos-14-xcode-15` | `Beta` | [Preinstalled Software](https://gitlab.com/gitlab-org/ci-cd/shared-runners/images/job-images/-/blob/main/toolchain/macos-14.yml) |
+| `macos-14-xcode-15` | `GA` | [Preinstalled Software](https://gitlab.com/gitlab-org/ci-cd/shared-runners/images/job-images/-/blob/main/toolchain/macos-14.yml) |
If no image is specified, the macOS runner uses `macos-13-xcode-14`.
diff --git a/doc/ci/secrets/gcp_secret_manager.md b/doc/ci/secrets/gcp_secret_manager.md
new file mode 100644
index 00000000000..ad2a2a269eb
--- /dev/null
+++ b/doc/ci/secrets/gcp_secret_manager.md
@@ -0,0 +1,92 @@
+---
+stage: Verify
+group: Pipeline Security
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Use GCP Secret Manager secrets in GitLab CI/CD **(PREMIUM ALL)**
+
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11739) in GitLab and GitLab Runner 16.8.
+
+You can use secrets stored in the [Google Cloud (GCP) Secret Manager](https://cloud.google.com/security/products/secret-manager)
+in your GitLab CI/CD pipelines.
+
+The flow for using GitLab with GCP Secret Manager
+is summarized by this diagram:
+
+1. GitLab issues ID token to CI/CD job.
+1. The runner authenticates to GCP using an ID token.
+1. GCP verifies the ID token with GitLab.
+1. GCP issues a short-lived access token.
+1. The runner accesses the secret data using the access token.
+1. GCP checks IAM permission on the access token's principal.
+1. GCP returns the secret data to Runner.
+
+To use GitLab with GCP Secret Manager, you must:
+
+- Have secrets stored in [GCP Secret Manager](https://cloud.google.com/security/products/secret-manager).
+- Configure [GCP Workload Identity Federation](#configure-gcp-iam-workload-identify-federation-wif) to include GitLab as an identity provider.
+- Configure [GCP IAM](#grant-access-to-gcp-iam-principal) permissions to grant access to GCP Secret Manager.
+- Configure [GitLab CI/CD with GCP Secret Manager](#configure-gitlab-cicd-to-use-gcp-secret-manager-secrets).
+
+## Configure GCP IAM Workload Identify Federation (WIF)
+
+GCP IAM WIF must be configured to recognize ID tokens issued by GitLab and assign an appropriate principal to them.
+The principal is used to authorize access to the Secret Manager resources:
+
+1. In GCP Console, go to **IAM & Admin > Workload Identity Federation**.
+1. Select **CREATE POOL** and create a new identity pool with a unique name, for example `gitlab-pool`.
+1. Select **ADD PROVIDER** to add a new OIDC Provider to the Identity Pool with a unique name, for example `gitlab-provider`.
+ 1. Set **Issuer (URL)** to the GitLab URL, for example `https://gitlab.com`.
+ 1. Select **Default audience**, or select **Allowed audiences** for a custom audience, which is used in the `aud` for the GitLab CI/CD ID token.
+1. Under **Attribute Mapping**, configure provider attributes, which are mappings between the [OIDC claims](id_token_authentication.md#token-payload)
+ (referred to as "assertion") and Google attributes. These mappings can be used to set fine grained access control.
+ For example, to grant a GitLab project access to Secret Manager secrets, select **ADD MAPPING** and create a mapping of
+ `attribute.gitlab_project_id` to `assertion.project_id`.
+
+## Grant access to GCP IAM principal
+
+After setting up WIF, you must grant the WIF principal access to the secrets in Secret Manager.
+
+1. In GCP Console, go to **IAM & Admin > IAM**.
+1. Select **GRANT ACCESS** to grant access to the principal set created through the WIF provider. For example,
+ to grant IAM access to the principal matching the project with ID `123`, add
+ a new principal like: `principalSet://iam.googleapis.com/projects/[PROJECT_NUMBER]/locations/global/workloadIdentityPools/[POOL_ID]/attribute.gitlab_project_id/[PROJECT_ID]`.
+1. Assign the role **Secret Manager Secret Accessor**.
+1. (Optional) Select **IAM condition (Optional)** to add an IAM condition.
+ Under **Condition Builder**, you can add conditions. For example, you could add two `AND` conditions:
+ - First condition:
+ - **Condition type**: `Type`
+ - **Operator**: `is`
+ - **Resource type**: `secretmanager.googleapis.com/SecretVersion`
+ - Second condition:
+ - **Condition type**: `Name`
+ - **Operator**: `Starts with`
+ - **Value**: The pattern of secrets that you want to grant access to.
+
+You can add additional IAM conditions for fine-grained access controls, including
+accessing secrets with names starting with the project name.
+
+## Configure GitLab CI/CD to use GCP Secret Manager secrets
+
+You can use secrets stored in GCP Secret Manager in CI/CD jobs by defining them with the `gcp_secret_manager` keyword:
+
+```yaml
+job_using_gcp_sm:
+ id_tokens:
+ GCP_ID_TOKEN:
+ # `aud` must match the audience defined in the WIF Identity Pool.
+ aud: https://iam.googleapis.com/projects/1234/locations/global/workloadIdentityPools/gitlab-pool/providers/gitlab-provider
+ secrets:
+ DATABASE_PASSWORD:
+ gcp_secret_manager:
+ name: my-project-secret # This is the name of the secret defined in GCP Secret Manager
+ version: 1 # optional: default to `latest`.
+ token: $GCP_ID_TOKEN
+```
+
+You must also [add these CI/CD variables](../variables/index.md#for-a-project) to provide details about your GCP Secret Manager:
+
+- `GCP_PROJECT_NUMBER`: The GCP [Project Number](https://cloud.google.com/resource-manager/docs/creating-managing-projects)
+- `GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID`: The WIF Pool ID (e.g `gitlab-pool`)
+- `GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID`: The WIF Provider ID (e.g `gitlab-provider`)
diff --git a/doc/ci/secrets/index.md b/doc/ci/secrets/index.md
index e452b26d8a9..96b9709bdef 100644
--- a/doc/ci/secrets/index.md
+++ b/doc/ci/secrets/index.md
@@ -18,6 +18,12 @@ Unlike CI/CD variables, which are always presented to a job, secrets must be exp
required by a job. Read [GitLab CI/CD pipeline configuration reference](../yaml/index.md#secrets)
for more information about the syntax.
+GitLab provides support for the following secret management providers:
+
+1. [Vault by HashiCorp](#use-vault-secrets-in-a-ci-job)
+1. [Google Cloud Secret Manager](gcp_secret_manager.md)
+1. [Azure Key Vault](azure_key_vault.md)
+
GitLab has selected [Vault by HashiCorp](https://www.vaultproject.io) as the
first supported provider, and [KV-V2](https://developer.hashicorp.com/vault/docs/secrets/kv/kv-v2)
as the first supported secrets engine.
diff --git a/doc/ci/testing/code_quality.md b/doc/ci/testing/code_quality.md
index 23ae615eeb2..9e6c409a0d3 100644
--- a/doc/ci/testing/code_quality.md
+++ b/doc/ci/testing/code_quality.md
@@ -27,14 +27,15 @@ You can extend the code coverage either by using Code Climate
Different features are available in different [GitLab tiers](https://about.gitlab.com/pricing/),
as shown in the following table:
-| Capability | In Free | In Premium | In Ultimate |
-|:-----------------------------------------------------------------------|:--------------------|:--------------------|:-------------------|
-| [Configure scanners](#customizing-scan-settings) | **{check-circle}** | **{check-circle}** | **{check-circle}** |
-| [Integrate custom scanners](#implement-a-custom-tool) | **{check-circle}** | **{check-circle}** | **{check-circle}** |
-| [See findings in merge request widget](#merge-request-widget) | **{check-circle}** | **{check-circle}** | **{check-circle}** |
-| [Generate JSON or HTML report artifacts](#output) | **{check-circle}** | **{check-circle}** | **{check-circle}** |
-| [See reports in CI pipelines](#pipeline-details-view) | **{dotted-circle}** | **{check-circle}** | **{check-circle}** |
-| [See findings in merge request diff view](#merge-request-changes-view) | **{dotted-circle}** | **{dotted-circle}** | **{check-circle}** |
+| Feature | In Free | In Premium | In Ultimate |
+|:----------------------------------------------------------------------|:-----------------------|:-----------------------|:-----------------------|
+| [Configure scanners](#customizing-scan-settings) | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
+| [Integrate custom scanners](#implement-a-custom-tool) | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
+| [Generate JSON or HTML report artifacts](#output) | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
+| [Findings in merge request widget](#merge-request-widget) | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
+| [Findings in pipelines](#pipeline-details-view) | **{dotted-circle}** No | **{check-circle}** Yes | **{check-circle}** Yes |
+| [Findings in merge request changes view](#merge-request-changes-view) | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes |
+| [Summary in project quality view](#project-quality-view) | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes |
## View Code Quality results
@@ -219,63 +220,42 @@ To configure the Code Quality job:
1. Declare a job with the same name as the Code Quality job, after the template's inclusion.
1. Specify additional keys in the job's stanza.
-For an example, see [Download output in JSON format](#download-output-in-json-format).
+For an example, see [Download output in HTML format](#output-in-only-html-format).
-### Available CI/CD variables
-
-> In [GitLab 13.4 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/11100), the option to override the Code Quality environment variables was added.
+## Available CI/CD variables
Code Quality can be customized by defining available CI/CD variables:
-| CI/CD variable | Description |
-| --------------------------- | ----------- |
-| `SOURCE_CODE` | Path to the source code to scan. |
-| `TIMEOUT_SECONDS` | Custom timeout per engine container for the `codeclimate analyze` command, default is 900 seconds (15 minutes). |
-| `CODECLIMATE_DEBUG` | Set to enable [Code Climate debug mode](https://github.com/codeclimate/codeclimate#environment-variables) |
-| `CODECLIMATE_DEV` | Set to enable `--dev` mode which lets you run engines not known to the CLI. |
-| `REPORT_STDOUT` | Set to print the report to `STDOUT` instead of generating the usual report file. |
-| `REPORT_FORMAT` | Set to control the format of the generated report file. One of: `json\|html`. |
-| `ENGINE_MEMORY_LIMIT_BYTES` | Set the memory limit for engines, default is 1,024,000,000 bytes. |
-| `CODE_QUALITY_DISABLED` | Prevents the Code Quality job from running. |
-| `CODECLIMATE_PREFIX` | Set a prefix to use with all `docker pull` commands in CodeClimate engines. Useful for [offline scanning](https://github.com/codeclimate/codeclimate/pull/948). |
+| CI/CD variable | Description |
+|---------------------------------|-------------|
+| `CODECLIMATE_DEBUG` | Set to enable [Code Climate debug mode](https://github.com/codeclimate/codeclimate#environment-variables). |
+| `CODECLIMATE_DEV` | Set to enable `--dev` mode which lets you run engines not known to the CLI. |
+| `CODECLIMATE_PREFIX` | Set a prefix to use with all `docker pull` commands in CodeClimate engines. Useful for [offline scanning](https://github.com/codeclimate/codeclimate/pull/948). For more information, see [Use a private container registry](#use-a-private-container-image-registry). |
+| `CODECLIMATE_REGISTRY_USERNAME` | Set to specify the username for the registry domain parsed from `CODECLIMATE_PREFIX`. |
+| `CODECLIMATE_REGISTRY_PASSWORD` | Set to specify the password for the registry domain parsed from `CODECLIMATE_PREFIX`. |
+| `CODE_QUALITY_DISABLED` | Prevents the Code Quality job from running. |
+| `CODE_QUALITY_IMAGE` | Set to a fully prefixed image name. Image must be accessible from your job environment. |
+| `ENGINE_MEMORY_LIMIT_BYTES` | Set the memory limit for engines. Default: 1,024,000,000 bytes. |
+| `REPORT_STDOUT` | Set to print the report to `STDOUT` instead of generating the usual report file. |
+| `REPORT_FORMAT` | Set to control the format of the generated report file. Either `json` or `html`. |
+| `SOURCE_CODE` | Path to the source code to scan. |
+| `TIMEOUT_SECONDS` | Custom timeout per engine container for the `codeclimate analyze` command. Default: 900 seconds (15 minutes) |
## Output
-Code Quality creates a file named `gl-code-quality-report.json`. The content of this file is
-processed internally and the results shown in the UI. To see the raw results, you can
-configure the Code Quality job to allow download of this file. Format options are JSON format, HTML
-format, or both. Use the HTML format to view the report in a more human-readable
-format. For example, you could publish the HTML format file on GitLab Pages for even easier
+Code Quality outputs a report containing details of issues found. The content of this report is
+processed internally and the results shown in the UI. The report is also output as a job artifact of
+the `code_quality` job, named `gl-code-quality-report.json`. You can optionally output the report in
+HTML format. For example, you could publish the HTML format file on GitLab Pages for even easier
reviewing.
-### Download output in JSON format
-
-To be able to download the Code Quality report in JSON format, declare the
-`gl-code-quality-report.json` file as an artifact of the `code_quality` job:
-
-```yaml
-include:
- - template: Code-Quality.gitlab-ci.yml
-
-code_quality:
- artifacts:
- paths: [gl-code-quality-report.json]
-```
-
-The full JSON file is available as a
-[downloadable artifact](../jobs/job_artifacts.md#download-job-artifacts) of the `code_quality`
-job.
+### Output in JSON and HTML format
-### Download output in JSON and HTML format
-
-> HTML report format [introduced](https://gitlab.com/gitlab-org/ci-cd/codequality/-/issues/10) in GitLab 13.6.
-
-NOTE:
-To create the HTML format file, the Code Quality job must be run twice, once for each format.
-In this configuration, the JSON format file is created but it is only processed internally.
+To output the Code Quality report in JSON and HTML format, you create an additional job. This requires
+Code Quality to be run twice, once each for file format.
-To be able to download the Code Quality report in both JSON and HTML format, add another job to your
-template by using `extends: code_quality`:
+To output the Code Quality report in HTML format, add another job to your template by using
+`extends: code_quality`:
```yaml
include:
@@ -289,18 +269,17 @@ code_quality_html:
paths: [gl-code-quality-report.html]
```
-Both the JSON and HTML files are available as
-[downloadable artifacts](../jobs/job_artifacts.md#download-job-artifacts) of the `code_quality`
-job.
+Both the JSON and HTML files are output as job artifacts. The HTML file is contained in the
+`artifacts.zip` job artifact.
-### Download output in only HTML format
+### Output in only HTML format
-To download the Code Quality report in _only_ an HTML format file, set `REPORT_FORMAT` to `html` in
-the existing job.
+To download the Code Quality report in _only_ HTML format, set `REPORT_FORMAT` to `html`, overriding
+the default definition of the `code_quality` job.
NOTE:
-This does not create a JSON format file, so Code Quality results are not shown in the
-merge request widget, pipeline report, or changes view.
+This does not create a JSON format file, so Code Quality results are not shown in the merge request
+widget, pipeline report, or changes view.
```yaml
include:
@@ -313,9 +292,7 @@ code_quality:
paths: [gl-code-quality-report.html]
```
-The HTML file is available as a
-[downloadable artifact](../jobs/job_artifacts.md#download-job-artifacts) of the `code_quality`
-job.
+The HTML file is output as a job artifact.
## Use Code Quality with merge request pipelines
diff --git a/doc/ci/testing/img/code_quality_inline_indicator_v16_7.png b/doc/ci/testing/img/code_quality_inline_indicator_v16_7.png
index 0d7d5bb3062..91285493562 100644
--- a/doc/ci/testing/img/code_quality_inline_indicator_v16_7.png
+++ b/doc/ci/testing/img/code_quality_inline_indicator_v16_7.png
Binary files differ
diff --git a/doc/ci/testing/test_coverage_visualization.md b/doc/ci/testing/test_coverage_visualization.md
index ff55f37e1ff..ecd5c794344 100644
--- a/doc/ci/testing/test_coverage_visualization.md
+++ b/doc/ci/testing/test_coverage_visualization.md
@@ -178,7 +178,7 @@ the [`coverage-report`](https://gitlab.com/gitlab-org/ci-sample-projects/coverag
### JavaScript example
-The following [`.gitlab-ci.yml`](../yaml/index.md) example uses [Mocha](https://mochajs.org/)
+The following `.gitlab-ci.yml` example uses [Mocha](https://mochajs.org/)
JavaScript testing and [nyc](https://github.com/istanbuljs/nyc) coverage-tooling to
generate the coverage artifact:
@@ -198,7 +198,7 @@ test:
#### Maven example
-The following [`.gitlab-ci.yml`](../yaml/index.md) example for Java or Kotlin uses [Maven](https://maven.apache.org/)
+The following `.gitlab-ci.yml` example for Java or Kotlin uses [Maven](https://maven.apache.org/)
to build the project and [JaCoCo](https://www.eclemma.org/jacoco/) coverage-tooling to
generate the coverage artifact.
You can check the [Docker image configuration and scripts](https://gitlab.com/haynes/jacoco2cobertura) if you want to build your own image.
@@ -236,7 +236,7 @@ coverage-jdk11:
#### Gradle example
-The following [`.gitlab-ci.yml`](../yaml/index.md) example for Java or Kotlin uses [Gradle](https://gradle.org/)
+The following `.gitlab-ci.yml` example for Java or Kotlin uses [Gradle](https://gradle.org/)
to build the project and [JaCoCo](https://www.eclemma.org/jacoco/) coverage-tooling to
generate the coverage artifact.
You can check the [Docker image configuration and scripts](https://gitlab.com/haynes/jacoco2cobertura) if you want to build your own image.
@@ -274,7 +274,7 @@ coverage-jdk11:
### Python example
-The following [`.gitlab-ci.yml`](../yaml/index.md) example uses [pytest-cov](https://pytest-cov.readthedocs.io/) to collect test coverage data:
+The following `.gitlab-ci.yml` example uses [pytest-cov](https://pytest-cov.readthedocs.io/) to collect test coverage data:
```yaml
run tests:
@@ -293,7 +293,7 @@ run tests:
### PHP example
-The following [`.gitlab-ci.yml`](../yaml/index.md) example for PHP uses [PHPUnit](https://phpunit.readthedocs.io/)
+The following `.gitlab-ci.yml` example for PHP uses [PHPUnit](https://phpunit.readthedocs.io/)
to collect test coverage data and generate the report.
With a minimal [`phpunit.xml`](https://docs.phpunit.de/en/10.2/configuration.html) file (you may reference
@@ -331,7 +331,7 @@ to find Cobertura in the appropriate path.
### C/C++ example
-The following [`.gitlab-ci.yml`](../yaml/index.md) example for C/C++ with
+The following `.gitlab-ci.yml` example for C/C++ with
`gcc` or `g++` as the compiler uses [`gcovr`](https://gcovr.com/en/stable/) to generate the coverage
output file in Cobertura XML format.
@@ -362,7 +362,7 @@ run tests:
### Go example
-The following [`.gitlab-ci.yml`](../yaml/index.md) example for Go uses:
+The following `.gitlab-ci.yml` example for Go uses:
- [`go test`](https://go.dev/doc/tutorial/add-a-test) to run tests.
- [`gocover-cobertura`](https://github.com/boumenot/gocover-cobertura) to convert Go's coverage profile into the Cobertura XML format.
@@ -391,7 +391,7 @@ run tests:
### Ruby example
-The following [`.gitlab-ci.yml`](../yaml/index.md) example for Ruby uses
+The following `.gitlab-ci.yml` example for Ruby uses
- [`rspec`](https://rspec.info/) to run tests.
- [`simplecov`](https://github.com/simplecov-ruby/simplecov) and [`simplecov-cobertura`](https://github.com/dashingrocket/simplecov-cobertura)
diff --git a/doc/ci/variables/index.md b/doc/ci/variables/index.md
index f247d9609fe..49f5f1edf41 100644
--- a/doc/ci/variables/index.md
+++ b/doc/ci/variables/index.md
@@ -147,7 +147,7 @@ To add or update variables in the project settings:
in job logs. The variable fails to save if the value does not meet the
[masking requirements](#mask-a-cicd-variable).
-After you create a variable, you can use it in the [`.gitlab-ci.yml` configuration](../yaml/index.md)
+After you create a variable, you can use it in the pipeline configuration
or in [job scripts](#use-cicd-variables-in-job-scripts).
### For a group
@@ -244,7 +244,7 @@ malicious code can compromise both masked and protected variables.
Variable values are encrypted using [`aes-256-cbc`](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
and stored in the database. This data can only be read and decrypted with a
-valid [secrets file](../../administration/backup_restore/backup_gitlab.md#when-the-secrets-file-is-lost).
+valid [secrets file](../../administration/backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost).
### Mask a CI/CD variable
@@ -638,7 +638,7 @@ To disable variable expansion for the variable:
## CI/CD variable precedence
-> Scan Execution Policies variable precedence was [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/424028) in GitLab 16.7 [with a flag](../../administration/feature_flags.md) named `security_policies_variables_precedence`. Enabled by default.
+> Scan Execution Policies variable precedence was [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/424028) in GitLab 16.7 [with a flag](../../administration/feature_flags.md) named `security_policies_variables_precedence`. Enabled by default. [Feature flag removed in GitLab 16.8](https://gitlab.com/gitlab-org/gitlab/-/issues/435727).
You can use CI/CD variables with the same name in different places, but the values
can overwrite each other. The type of variable and where they are defined determines
@@ -967,4 +967,4 @@ As a workaround you can either:
- Use [File-type](#use-file-type-cicd-variables) CI/CD variables for large environment variables where possible.
- If a single large variable is larger than `ARG_MAX`, try using [Secure Files](../secure_files/index.md), or
-bring the file to the job through some other mechanism.
+ bring the file to the job through some other mechanism.
diff --git a/doc/ci/variables/predefined_variables.md b/doc/ci/variables/predefined_variables.md
index e8ed47cedd0..470982c7d26 100644
--- a/doc/ci/variables/predefined_variables.md
+++ b/doc/ci/variables/predefined_variables.md
@@ -164,8 +164,9 @@ These variables are available when:
| `CI_MERGE_REQUEST_DIFF_BASE_SHA` | 13.7 | all | The base SHA of the merge request diff. |
| `CI_MERGE_REQUEST_DIFF_ID` | 13.7 | all | The version of the merge request diff. |
| `CI_MERGE_REQUEST_EVENT_TYPE` | 12.3 | all | The event type of the merge request. Can be `detached`, `merged_result` or `merge_train`. |
+| `CI_MERGE_REQUEST_DESCRIPTION` | 16.7 | all | The description of the merge request. If the description is more than 2700 characters long, only the first 2700 characters are stored in the variable. |
+| `CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED` | 16.8 | all | `true` if `CI_MERGE_REQUEST_DESCRIPTION` is truncated down to 2700 characters because the description of the merge request is too long. |
| `CI_MERGE_REQUEST_ID` | 11.6 | all | The instance-level ID of the merge request. This is a unique ID across all projects on the GitLab instance. |
-| `CI_MERGE_REQUEST_DESCRIPTION` | 16.7 | all | The description of the merge request. |
| `CI_MERGE_REQUEST_IID` | 11.6 | all | The project-level IID (internal ID) of the merge request. This ID is unique for the current project, and is the number used in the merge request URL, page title, and other visible locations. |
| `CI_MERGE_REQUEST_LABELS` | 11.9 | all | Comma-separated label names of the merge request. |
| `CI_MERGE_REQUEST_MILESTONE` | 11.9 | all | The milestone title of the merge request. |
diff --git a/doc/ci/variables/where_variables_can_be_used.md b/doc/ci/variables/where_variables_can_be_used.md
index bddb0947fac..4ea45c9bae4 100644
--- a/doc/ci/variables/where_variables_can_be_used.md
+++ b/doc/ci/variables/where_variables_can_be_used.md
@@ -16,7 +16,7 @@ This document describes where and how the different types of variables can be us
There are two places defined variables can be used. On the:
-1. GitLab side, in the [`.gitlab-ci.yml` file](../yaml/index.md).
+1. GitLab side, in the [`.gitlab-ci.yml` file](../index.md#the-gitlab-ciyml-file).
1. The GitLab Runner side, in `config.toml`.
### `.gitlab-ci.yml` file
@@ -27,6 +27,7 @@ There are two places defined variables can be used. On the:
|:----------------------------------------------------------------------|:-----------------|:-----------------------|:------------|
| [`after_script`](../yaml/index.md#after_script) | yes | Script execution shell | The variable expansion is made by the [execution shell environment](#execution-shell-environment). |
| [`artifacts:name`](../yaml/index.md#artifactsname) | yes | Runner | The variable expansion is made by GitLab Runner's shell environment. |
+| [`artifacts:paths`](../yaml/index.md#artifactspaths) | yes | Runner | The variable expansion is made by GitLab Runner's shell environment. |
| [`before_script`](../yaml/index.md#before_script) | yes | Script execution shell | The variable expansion is made by the [execution shell environment](#execution-shell-environment) |
| [`cache:key`](../yaml/index.md#cachekey) | yes | Runner | The variable expansion is made by GitLab Runner's [internal variable expansion mechanism](#gitlab-runner-internal-variable-expansion-mechanism). |
| [`cache:policy`](../yaml/index.md#cachepolicy) | yes | Runner | The variable expansion is made by GitLab Runner's [internal variable expansion mechanism](#gitlab-runner-internal-variable-expansion-mechanism). |
diff --git a/doc/ci/yaml/artifacts_reports.md b/doc/ci/yaml/artifacts_reports.md
index 5867a5b3506..131f9e502fe 100644
--- a/doc/ci/yaml/artifacts_reports.md
+++ b/doc/ci/yaml/artifacts_reports.md
@@ -322,13 +322,13 @@ The `repository_xray` report collects information about your repository for use
> [Moved](https://gitlab.com/groups/gitlab-org/-/epics/2098) from GitLab Ultimate to GitLab Free in 13.3.
-The `sast` report collects [SAST vulnerabilities](../../user/application_security/sast/index.md). The collected SAST
-report uploads to GitLab as an artifact.
+The `sast` report collects [SAST vulnerabilities](../../user/application_security/sast/index.md).
+The collected SAST report uploads to GitLab as an artifact.
-GitLab can display the results of one or more reports in:
+For more information, see:
-- The merge request [SAST widget](../../user/application_security/sast/index.md).
-- The [security dashboard](../../user/application_security/security_dashboard/index.md).
+- [View SAST results](../../user/application_security/sast/index.md#view-sast-results)
+- [SAST output](../../user/application_security/sast/index.md#output)
## `artifacts:reports:secret_detection`
diff --git a/doc/ci/yaml/index.md b/doc/ci/yaml/index.md
index df2330e04f6..208da96c5ad 100644
--- a/doc/ci/yaml/index.md
+++ b/doc/ci/yaml/index.md
@@ -303,7 +303,9 @@ include:
A `not found or access denied` error may be displayed if the user does not have access to any of the included files.
- Be careful when including another project's CI/CD configuration file. No pipelines or notifications trigger when CI/CD configuration files change.
From a security perspective, this is similar to pulling a third-party dependency. For the `ref`, consider:
- - Using a specific SHA hash, which should be the most stable option.
+ - Using a specific SHA hash, which should be the most stable option. Use the
+ full 40-character SHA hash to ensure the desired commit is referenced, because
+ using a short SHA hash for the `ref` might be ambiguous.
- Applying both [protected branch](../../user/project/protected_branches.md) and [protected tag](../../user/project/protected_tags.md#prevent-tag-creation-with-the-same-name-as-branches) rules to
the `ref` in the other project. Protected tags and branches are more likely to pass through change management before changing.
@@ -480,6 +482,46 @@ You can use some [predefined CI/CD variables](../variables/predefined_variables.
- [`workflow: rules` examples](workflow.md#workflow-rules-examples)
- [Switch between branch pipelines and merge request pipelines](workflow.md#switch-between-branch-pipelines-and-merge-request-pipelines)
+#### `workflow:auto_cancel:on_new_commit`
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/412473) in GitLab 16.8 [with a flag](../../administration/feature_flags.md) named `ci_workflow_auto_cancel_on_new_commit`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available per project or
+for your entire instance, an administrator can [enable the feature flag](../../administration/feature_flags.md) named `ci_workflow_auto_cancel_on_new_commit`.
+On GitLab.com, this feature is not available.
+The feature is not ready for production use.
+
+Use `workflow:auto_cancel:on_new_commit` to configure the behavior of
+the [auto-cancel redundant pipelines](../pipelines/settings.md#auto-cancel-redundant-pipelines) feature.
+
+**Possible inputs**:
+
+- `conservative`: Cancel the pipeline, but only if no jobs with `interruptible: false` have started yet. Default when not defined.
+- `interruptible`: Cancel only jobs with `interruptible: true`.
+- `none`: Do not auto-cancel any jobs.
+
+**Example of `workflow:auto_cancel:on_new_commit`**:
+
+```yaml
+workflow:
+ auto_cancel:
+ on_new_commit: interruptible
+
+job1:
+ interruptible: true
+ script: sleep 60
+
+job2:
+ interruptible: false # Default when not defined.
+ script: sleep 60
+```
+
+In this example:
+
+- When a new commit is pushed to a branch, GitLab creates a new pipeline and `job1` and `job2` start.
+- If a new commit is pushed to the branch before the jobs complete, only `job1` is canceled.
+
#### `workflow:name`
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/372538) in GitLab 15.5 [with a flag](../../administration/feature_flags.md) named `pipeline_name`. Disabled by default.
@@ -657,6 +699,52 @@ When the branch is something else:
- Use [`inherit:variables`](#inheritvariables) in the trigger job and list the
exact variables you want to forward to the downstream pipeline.
+#### `workflow:rules:auto_cancel`
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/436467) in GitLab 16.8 [with a flag](../../administration/feature_flags.md) named `ci_workflow_auto_cancel_on_new_commit`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available per project or
+for your entire instance, an administrator can [enable the feature flag](../../administration/feature_flags.md) named `ci_workflow_auto_cancel_on_new_commit`.
+On GitLab.com, this feature is not available.
+The feature is not ready for production use.
+
+Use `workflow:rules:auto_cancel` to configure the behavior of
+the [`workflow:auto_cancel:on_new_commit`](#workflowauto_cancelon_new_commit) feature.
+
+**Possible inputs**:
+
+- `on_new_commit`: [`workflow:auto_cancel:on_new_commit`](#workflowauto_cancelon_new_commit)
+
+**Example of `workflow:rules:auto_cancel`**:
+
+```yaml
+workflow:
+ auto_cancel:
+ on_new_commit: interruptible
+ rules:
+ - if: $CI_COMMIT_REF_PROTECTED == 'true'
+ auto_cancel:
+ on_new_commit: none
+ - when: always # Run the pipeline in other cases
+
+test-job1:
+ script: sleep 10
+ interruptible: false
+
+test-job2:
+ script: sleep 10
+ interruptible: true
+```
+
+In this example, [`workflow:auto_cancel:on_new_commit`](#workflowauto_cancelon_new_commit)
+is set to `interruptible` for all jobs by default. But if a pipeline runs for a protected branch,
+the rule overrides the default with `on_new_commit: none`. For example, if a pipeline
+is running for:
+
+- A non-protected branch and a new commit is pushed, `test-job1` continues to run and `test-job2` is canceled.
+- A protected branch and a new commit is pushed, both `test-job1` and `test-job2` continue to run.
+
## Header keywords
Some keywords must be defined in a header section of a YAML configuration file.
@@ -719,12 +807,12 @@ scan-website:
Inputs are mandatory when included, unless you set a default value with `spec:inputs:default`.
-Use `default: null` to have no default value.
+Use `default: ''` to have no default value.
**Keyword type**: Header keyword. `specs` must be declared at the top of the configuration file,
in a header section.
-**Possible inputs**: A string representing the default value, or `null`.
+**Possible inputs**: A string representing the default value, or `''`.
**Example of `spec:inputs:default`**:
@@ -735,7 +823,7 @@ spec:
user:
default: 'test-user'
flags:
- default: null
+ default: ''
---
# The pipeline configuration would follow...
@@ -887,7 +975,8 @@ The following topics explain how to use keywords to configure CI/CD pipelines.
### `after_script`
-Use `after_script` to define an array of commands that run after each job, including failed jobs.
+Use `after_script` to define an array of commands that run after a job's `script` section, including failed jobs with failure type of `script_failure`.
+`after_script` commands do not run after [other failure types](#retrywhen).
**Keyword type**: Job keyword. You can use it only as part of a job or in the
[`default` section](#default).
@@ -1077,6 +1166,8 @@ link outside it.
[`doublestar.Glob`](https://pkg.go.dev/github.com/bmatcuk/doublestar@v1.2.2?tab=doc#Match).
- In GitLab Runner 12.10 and earlier, [`filepath.Match`](https://pkg.go.dev/path/filepath#Match).
+CI/CD variables [are supported](../variables/where_variables_can_be_used.md#gitlab-ciyml-file).
+
**Example of `artifacts:paths`**:
```yaml
@@ -1272,15 +1363,7 @@ job:
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/223273) in GitLab 13.8 [with a flag](../../user/feature_flags.md) named `non_public_artifacts`, disabled by default.
> - [Updated](https://gitlab.com/gitlab-org/gitlab/-/issues/322454) in GitLab 15.10. Artifacts created with `artifacts:public` before 15.10 are not guaranteed to remain private after this update.
-> - [Updated](https://gitlab.com/gitlab-org/gitlab/-/issues/294503) in GitLab 16.7. Rolled out and removed a feature flag named `non_public_artifacts`
-
-WARNING:
-On self-managed GitLab, by default this feature is not available. To make it available,
-an administrator can [enable the feature flag](../../administration/feature_flags.md) named `non_public_artifacts`. On
-GitLab.com, this feature is not available. Due to [issue 413822](https://gitlab.com/gitlab-org/gitlab/-/issues/413822),
-the keyword can be used when the feature flag is disabled, but the feature does not work.
-Do not attempt to use this feature when the feature flag is disabled, and always test
-with non-production data first.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/294503) in GitLab 16.7. Feature flag `non_public_artifacts` removed.
Use `artifacts:public` to determine whether the job artifacts should be
publicly available.
@@ -1593,7 +1676,7 @@ use the new cache, instead of rebuilding the dependencies.
**Additional details**:
- The cache `key` is a SHA computed from the most recent commits
-that changed each listed file.
+ that changed each listed file.
If neither file is changed in any commits, the fallback key is `default`.
##### `cache:key:prefix`
@@ -1909,8 +1992,8 @@ to select a specific site profile and scanner profile.
**Related topics**:
-- [Site profile](../../user/application_security/dast/proxy-based.md#site-profile).
-- [Scanner profile](../../user/application_security/dast/proxy-based.md#scanner-profile).
+- [Site profile](../../user/application_security/dast/on-demand_scan.md#site-profile).
+- [Scanner profile](../../user/application_security/dast/on-demand_scan.md#scanner-profile).
### `dependencies`
@@ -2468,7 +2551,8 @@ image:
#### `image:docker`
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27919) in GitLab 16.7. Requires GitLab Runner 16.7 or later.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27919) in GitLab 16.7. Requires GitLab Runner 16.7 or later.
+> - `user` input option [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137907) in GitLab 16.8.
Use `image:docker` to pass options to the Docker executor of a GitLab Runner.
@@ -2481,6 +2565,7 @@ A hash of options for the Docker executor, which can include:
- `platform`: Selects the architecture of the image to pull. When not specified,
the default is the same platform as the host runner.
+- `user`: Specify the username or UID to use when running the container.
**Example of `image:docker`**:
@@ -2491,11 +2576,13 @@ arm-sql-job:
name: super/sql:experimental
docker:
platform: arm64/v8
+ user: dave
```
**Additional details**:
- `image:docker:platform` maps to the [`docker pull --platform` option](https://docs.docker.com/engine/reference/commandline/pull/#options).
+- `image:docker:user` maps to the [`docker run --user` option](https://docs.docker.com/engine/reference/commandline/run/#options).
#### `image:pull_policy`
@@ -2620,7 +2707,8 @@ job2:
### `interruptible`
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/32022) in GitLab 12.3.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/32022) in GitLab 12.3.
+> - Support for `trigger` jobs [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/412473) in GitLab 16.8 [with a flag](../../administration/feature_flags.md) named `ci_workflow_auto_cancel_on_new_commit`. Disabled by default.
Use `interruptible` to configure the [auto-cancel redundant pipelines](../pipelines/settings.md#auto-cancel-redundant-pipelines)
feature to cancel a job before it completes if a new pipeline on the same ref starts for a newer commit. If the feature
@@ -2685,6 +2773,12 @@ In this example, a new pipeline causes a running pipeline to be:
a pipeline to allow users to manually prevent a pipeline from being automatically
cancelled. After a user starts the job, the pipeline cannot be canceled by the
**Auto-cancel redundant pipelines** feature.
+- When using `interruptible` with a [trigger job](#trigger):
+ - The triggered downstream pipeline is never affected by the trigger job's `interruptible` configuration.
+ - If [`workflow:auto_cancel`](#workflowauto_cancelon_new_commit) is set to `conservative`,
+ the trigger job's `interruptible` configuration has no effect.
+ - If [`workflow:auto_cancel`](#workflowauto_cancelon_new_commit) is set to `interruptible`,
+ a trigger job with `interruptible: true` can be automatically cancelled.
### `needs`
@@ -4203,6 +4297,34 @@ job:
vault: production/db/password@ops # Translates to secret: `ops/data/production/db`, field: `password`
```
+#### `secrets:gcp_secret_manager`
+
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11739) in GitLab 16.8 and GitLab Runner 16.8.
+
+Use `secrets:gcp_secret_manager` to specify secrets provided by [GCP Secret Manager](https://cloud.google.com/security/products/secret-manager).
+
+**Keyword type**: Job keyword. You can use it only as part of a job.
+
+**Possible inputs**:
+
+- `name`: Name of the secret.
+- `version`: Version of the secret.
+
+**Example of `secrets:gcp_secret_manager`**:
+
+```yaml
+job:
+ secrets:
+ DATABASE_PASSWORD:
+ gcp_secret_manager:
+ name: 'test'
+ version: 2
+```
+
+**Related topics**:
+
+- [Use GCP Secret Manager secrets in GitLab CI/CD](../secrets/gcp_secret_manager.md).
+
#### `secrets:azure_key_vault`
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/271271) in GitLab 16.3 and GitLab Runner 16.3.
@@ -4350,7 +4472,8 @@ In this example, GitLab launches two containers for the job:
#### `services:docker`
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27919) in GitLab 16.7. Requires GitLab Runner 16.7 or later.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27919) in GitLab 16.7. Requires GitLab Runner 16.7 or later.
+> - `user` input option [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137907) in GitLab 16.8.
Use `services:docker` to pass options to the Docker executor of a GitLab Runner.
@@ -4363,6 +4486,7 @@ A hash of options for the Docker executor, which can include:
- `platform`: Selects the architecture of the image to pull. When not specified,
the default is the same platform as the host runner.
+- `user`: Specify the username or UID to use when running the container.
**Example of `services:docker`**:
@@ -4374,11 +4498,13 @@ arm-sql-job:
- name: super/sql:experimental
docker:
platform: arm64/v8
+ user: dave
```
**Additional details**:
- `services:docker:platform` maps to the [`docker pull --platform` option](https://docs.docker.com/engine/reference/commandline/pull/#options).
+- `services:docker:user` maps to the [`docker run --user` option](https://docs.docker.com/engine/reference/commandline/run/#options).
#### `services:pull_policy`
diff --git a/doc/ci/yaml/inputs.md b/doc/ci/yaml/inputs.md
index 0869be6da9f..18dcb865c06 100644
--- a/doc/ci/yaml/inputs.md
+++ b/doc/ci/yaml/inputs.md
@@ -89,7 +89,7 @@ spec:
default: true
---
-"$[[ job-prefix ]]-scan-website":
+"$[[ inputs.job-prefix ]]-scan-website":
stage: $[[ inputs.job-stage ]]
script:
- echo "scanning website -e $[[ inputs.environment ]] -c $[[ inputs.concurrency ]] -v $[[ inputs.version ]]"
@@ -233,11 +233,18 @@ Only variables you can [use with the `include` keyword](includes.md#use-variable
Example:
```yaml
-$[[ inputs.test | expand_vars ]]
+spec:
+ inputs:
+ test:
+ default: 'test $MY_VAR'
+---
+
+test-job:
+ script: echo $[[ inputs.test | expand_vars ]]
```
-Assuming the value of `inputs.test` is `test $MY_VAR`, and the variable `$MY_VAR` is unmasked
-with a value of `my value`, then the output would be `test my value`.
+In this example, if `$MY_VAR` is unmasked (exposed in job logs) with a value of `my value`, then the input
+would expand to `test my value`.
#### `truncate`
@@ -259,3 +266,56 @@ $[[ inputs.test | truncate(3,5) ]]
```
Assuming the value of `inputs.test` is `0123456789`, then the output would be `34567`.
+
+## Troubleshooting
+
+### YAML syntax errors when using `inputs`
+
+[CI/CD variable expressions](../jobs/job_control.md#cicd-variable-expressions)
+in `rules:if` expect a comparison of a CI/CD variable with a string, otherwise
+[a variety of syntax errors could be returned](../jobs/job_control.md#this-gitlab-ci-configuration-is-invalid-for-variable-expressions).
+
+You must ensure that expressions remain properly formatted after input values are
+inserted into the configuration, which might require the use of additional quote characters.
+
+For example:
+
+```yaml
+spec:
+ inputs:
+ branch:
+ default: $CI_DEFAULT_BRANCH
+---
+
+job-name:
+ rules:
+ - if: $CI_COMMIT_REF_NAME == $[[ inputs.branch ]]
+```
+
+In this example:
+
+- Using `include: inputs: branch: $CI_DEFAULT_BRANCH` is valid. The `if:` clause evaluates to
+ `if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH`, which is a valid variable expression.
+- Using `include: inputs: branch: main` is **invalid**. The `if:` clause evaluates to
+ `if: $CI_COMMIT_REF_NAME == main`, which is invalid because `main` is a string but is not quoted.
+
+Alternatively, add quotes to resolve some variable expression issues. For example:
+
+```yaml
+spec:
+ inputs:
+ environment:
+ default: "$ENVIRONMENT"
+---
+
+$[[ inputs.environment | expand_vars ]] job:
+ script: echo
+ rules:
+ - if: '"$[[ inputs.environment1 | expand_vars ]]" == "production"'
+```
+
+In this example, quoting the input block and also the entire variable expression
+ensures valid `if:` syntax after the input is evaluated. The internal and external quotes
+in the expression must not be the same character. You can use `"` for the internal quotes
+and `'` for the external quotes, or the inverse. On the other hand, the job name does
+not require any quoting.
diff --git a/doc/development/activitypub/actor.md b/doc/development/activitypub/actor.md
deleted file mode 100644
index 1d10e421df7..00000000000
--- a/doc/development/activitypub/actor.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'actors/index.md'
-remove_date: '2023-12-08'
----
-
-This document was moved to [another location](actors/index.md).
-
-<!-- This redirect file can be deleted after <2023-12-08>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/activitypub/actors/index.md b/doc/development/activitypub/actors/index.md
index 6d82e79b9a0..e0367d71871 100644
--- a/doc/development/activitypub/actors/index.md
+++ b/doc/development/activitypub/actors/index.md
@@ -72,7 +72,7 @@ render json: ActivityPub::ReleasesActorSerializer.new.represent(project, opts)
```
- `outbox` is the endpoint where to find the activities feed for this
-actor.
+ actor.
- `inbox` is where to POST to subscribe to the feed. Not yet implemented, so pass `nil`.
## Outbox page
diff --git a/doc/development/ai_features.md b/doc/development/ai_features.md
deleted file mode 100644
index a952d8f2804..00000000000
--- a/doc/development/ai_features.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'ai_features/index.md'
-remove_date: '2023-12-01'
----
-
-This document was moved to [another location](ai_features/index.md).
-
-<!-- This redirect file can be deleted after <2023-12-01>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/ai_features/index.md b/doc/development/ai_features/index.md
index e99a49f3bb9..f8680ef91c9 100644
--- a/doc/development/ai_features/index.md
+++ b/doc/development/ai_features/index.md
@@ -48,7 +48,7 @@ To implement a new AI action, connect to the preferred AI provider. You can conn
All AI features are experimental.
-## Test AI features locally
+## Test SaaS-only AI features locally
**One-line setup**
@@ -97,11 +97,11 @@ In order to obtain a GCP service key for local development, follow the steps bel
- Create a sandbox GCP project by visiting [this page](https://about.gitlab.com/handbook/infrastructure-standards/#individual-environment) and following the instructions, or by requesting access to our existing group GCP project by using [this template](https://gitlab.com/gitlab-com/it/infra/issue-tracker/-/issues/new?issuable_template=gcp_group_account_iam_update_request).
- If you are using an individual GCP project, you may also need to enable the Vertex AI API:
- 1. Visit [welcome page](https://console.cloud.google.com/welcome), choose your project (e.g. jdoe-5d23dpe).
- 1. Go to **APIs & Services > Enabled APIs & services**.
- 1. Select **+ Enable APIs and Services**.
- 1. Search for `Vertex AI API`.
- 1. Select **Vertex AI API**, then select **Enable**.
+ 1. Visit [welcome page](https://console.cloud.google.com/welcome), choose your project (e.g. jdoe-5d23dpe).
+ 1. Go to **APIs & Services > Enabled APIs & services**.
+ 1. Select **+ Enable APIs and Services**.
+ 1. Search for `Vertex AI API`.
+ 1. Select **Vertex AI API**, then select **Enable**.
- Install the [`gcloud` CLI](https://cloud.google.com/sdk/docs/install)
- Authenticate locally with GCP using the [`gcloud auth application-default login`](https://cloud.google.com/sdk/gcloud/reference/auth/application-default/login) command.
- Open the Rails console. Update the settings to:
@@ -166,6 +166,132 @@ end
View [guidelines](duo_chat.md) for working with GitLab Duo Chat.
+## Test AI features with AI Gateway locally
+
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11251) in GitLab 16.8.
+
+In order to develop an AI feature that is compatible with both SaaS and Self-managed GitLab instances,
+the feature must request to the [AI Gateway](../../architecture/blueprints/ai_gateway/index.md) instead of directly requesting to the 3rd party model providers.
+Therefore, a different setup is required from the [SaaS-only AI features](#test-saas-only-ai-features-locally).
+
+### Setup
+
+1. Set up AI Gateway:
+ 1. [Install it](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist#how-to-run-the-server-locally).
+ 1. Ensure that the following environment variables are set in the `.env` file:
+
+ ```shell
+ AIGW_AUTH__BYPASS_EXTERNAL=true
+ ANTHROPIC_API_KEY="[REDACTED]" # IMPORTANT: Ensure you use Corp account. See https://gitlab.com/gitlab-org/gitlab/-/issues/435911#note_1701762954.
+ AIGW_VERTEX_TEXT_MODEL__PROJECT="[REDACTED]"
+ ```
+
+ 1. Run `poetry run ai_gateway`.
+ 1. Visit OpenAPI playground (`http://0.0.0.0:5052/docs`), try an endpoint (e.g. `/v1/chat/agent`) and make sure you get a successful response.
+ If something went wrong, check `modelgateway_debug.log` if it contains error information.
+1. Setup GitLab Development Kit (GDK):
+ 1. [Install it](https://gitlab.com/gitlab-org/gitlab-development-kit#installation).
+ 1. [Set up `gdk.test` hostname](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/index.md#set-up-gdktest-hostname).
+ 1. [Activate GitLab Enterprise license](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/index.md#use-gitlab-enterprise-features) (e.g. Ultimate).
+ 1. Export these environment variables in the same terminal session with `gdk start`:
+
+ ```shell
+ export CODE_SUGGESTIONS_BASE_URL=http://0.0.0.0:5052 # URL to the local AI Gateway instance
+ export LLM_DEBUG=1 # Enable debug logging
+ ```
+
+ Alternatively, you can create an `env.runit` file in the root of your GDK with the above snippet.
+ 1. Enable the following feature flags via `gdk rails console`:
+
+ ```ruby
+ # NOTE: This feature flag name might be changed. See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140352.
+ ::Feature.enable(:ai_global_switch)
+
+ # This is to request to AI Gateway instead of built-in Anthropic client. See https://gitlab.com/gitlab-org/gitlab/-/issues/433213 for more info.
+ ::Feature.enable(:gitlab_duo_chat_requests_to_ai_gateway)
+ ```
+
+ 1. Create a dummy access token via `gdk rails console` OR skip this step and setup GitLab or Customer Dot as OIDC provider (See the following section):
+
+ ```ruby
+ # Creating dummy token, and this will work as long as `AIGW_AUTH__BYPASS_EXTERNAL=true` in AI Gateway.
+ ::Ai::ServiceAccessToken.create!(token: 'dummy', expires_at: 1.month.from_now)
+ ```
+
+ 1. Ensure GitLab-Rails can talk to the AI Gateway. Run `gdk rails console` and execute:
+
+ ```ruby
+ user = User.first
+ Gitlab::Llm::AiGateway::Client.new(user).stream(prompt: "\n\nHuman: Hi, how are you?\n\nAssistant:")
+ ```
+
+#### Verify the setup with GraphQL
+
+1. Visit [GraphQL explorer](../../api/graphql/index.md#interactive-graphql-explorer).
+1. Execute the `aiAction` mutation. Here is an example:
+
+ ```graphql
+ mutation {
+ aiAction(
+ input: {
+ chat: {
+ resourceId: "gid://gitlab/User/1",
+ content: "Hello"
+ }
+ }
+ ){
+ requestId
+ errors
+ }
+ }
+ ```
+
+1. (GitLab Duo Chat only) Execute the following query to fetch the response:
+
+ ```graphql
+ query {
+ aiMessages {
+ nodes {
+ requestId
+ content
+ role
+ timestamp
+ chunkId
+ errors
+ }
+ }
+ }
+ ```
+
+ If you can't fetch the response, check `graphql_json.log`, `sidekiq_json.log`, `llm.log` or `modelgateway_debug.log` if it contains error information.
+
+### Use GitLab as OIDC provider in AI Gateway
+
+1. Reconfigure AI Gateway:
+ 1. Additionally, ensure that the following environment variables are set in the `.env` file:
+
+ ```shell
+ AIGW_GITLAB_URL="http://gdk.test:3000/"
+ AIGW_GITLAB_API_URL="http://gdk.test:3000/api/v4/"
+ AIGW_AUTH__BYPASS_EXTERNAL=False
+ ```
+
+ 1. Restart AI Gateway.
+1. Reconfigure GitLab Development Kit (GDK):
+ 1. Additionally, export the following environment variables:
+
+ ```shell
+ export GITLAB_SIMULATE_SAAS=1 # Simulate a SaaS instance. See https://docs.gitlab.com/ee/development/ee_features.html#simulate-a-saas-instance.
+ ```
+
+ 1. Restart GDK.
+
+### Use Customer Dot as OIDC provider in AI Gateway
+
+1. AI Gateway:
+ 1. Ensure `AIGW_CUSTOMER_PORTAL_BASE_URL` in the `.env` file points to your Customer Dot URL.
+ 1. Restart
+
## Experimental REST API
Use the [experimental REST API endpoints](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/api/ai/experimentation) to quickly experiment and prototype AI features.
@@ -210,7 +336,7 @@ As an example, assume we want to build an "explain code" action. To do this, we
```graphql
mutation {
- aiAction(input: {explainCode: {resourceId: "gid://gitlab/MergeRequest/52", code: "foo() { console.log()" }}) {
+ aiAction(input: {explainCode: {resourceId: "gid://gitlab/MergeRequest/52", code: "foo() { console.log() }" }}) {
clientMutationId
}
}
diff --git a/doc/development/api_graphql_styleguide.md b/doc/development/api_graphql_styleguide.md
index cfe82fe9b81..606d8c77432 100644
--- a/doc/development/api_graphql_styleguide.md
+++ b/doc/development/api_graphql_styleguide.md
@@ -178,7 +178,7 @@ Breaking changes are:
allowed so long as all scalar type fields of the object continue to serialize in the same way.
- Raising the [complexity](#max-complexity) of a field or complexity multipliers in a resolver.
- Changing a field from being _not_ nullable (`null: false`) to nullable (`null: true`), as
-discussed in [Nullable fields](#nullable-fields).
+ discussed in [Nullable fields](#nullable-fields).
- Changing an argument from being optional (`required: false`) to being required (`required: true`).
- Changing the [max page size](#page-size-limit) of a connection.
- Lowering the global limits for query complexity and depth.
@@ -1515,8 +1515,8 @@ To find the parent object in your `Presenter` class:
```
1. Declare your field's method in your Presenter class and have it accept the `parent` keyword argument.
-This argument contains the parent **GraphQL context**, so you have to access the parent object with
-`parent[:parent_object]` or whatever key you used in your `Resolver`:
+ This argument contains the parent **GraphQL context**, so you have to access the parent object with
+ `parent[:parent_object]` or whatever key you used in your `Resolver`:
```ruby
# in ChildPresenter
diff --git a/doc/development/auto_devops.md b/doc/development/auto_devops.md
index d5a011e7e55..94dbcea514b 100644
--- a/doc/development/auto_devops.md
+++ b/doc/development/auto_devops.md
@@ -18,7 +18,7 @@ is also available on YouTube.
Auto DevOps builds on top of GitLab CI/CD to create an automatic pipeline
based on your project contents. When Auto DevOps is enabled for a
project, the user does not need to explicitly include any pipeline configuration
-through a [`.gitlab-ci.yml` file](../ci/yaml/index.md).
+through a [`.gitlab-ci.yml` file](../ci/index.md#the-gitlab-ciyml-file).
In the absence of a `.gitlab-ci.yml` file, the
[Auto DevOps CI/CD template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml)
diff --git a/doc/development/bulk_import.md b/doc/development/bulk_import.md
index 6c0bed8e204..752bcbbac19 100644
--- a/doc/development/bulk_import.md
+++ b/doc/development/bulk_import.md
@@ -12,7 +12,7 @@ NOTE:
To use direct transfer, ensure your GitLab installation is accessible from
[GitLab IP addresses](../user/gitlab_com/index.md#ip-range) and has a public DNS entry.
-[Group migration by direct transfer](../user/group/import/index.md#migrate-groups-by-direct-transfer-recommended) is the
+[Group migration by direct transfer](../user/group/import/index.md) is the
evolution of migrating groups and projects using file exports. The goal is to have an easier way for the user to migrate a whole group,
including projects, from one GitLab instance to another.
@@ -36,8 +36,8 @@ idea is to have one ETL pipeline for each relation to be imported.
### API
-The current [project](../user/project/settings/import_export.md) and
-[group](../user/group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated) imports are file based, so
+The current [project](../user/project/settings/import_export.md#migrate-projects-by-uploading-an-export-file) and
+[group](../user/project/settings/import_export.md#migrate-groups-by-uploading-an-export-file-deprecated) imports are file based, so
they require an export step to generate the file to be imported.
Group migration by direct transfer leverages the [GitLab API](../api/rest/index.md) to speed the migration.
diff --git a/doc/development/cicd/cicd_reference_documentation_guide.md b/doc/development/cicd/cicd_reference_documentation_guide.md
index ccd952f586c..3832ba182b6 100644
--- a/doc/development/cicd/cicd_reference_documentation_guide.md
+++ b/doc/development/cicd/cicd_reference_documentation_guide.md
@@ -6,7 +6,7 @@ info: Any user with at least the Maintainer role can merge updates to this conte
# Documenting the `.gitlab-ci.yml` keywords
-The [CI/CD YAML reference](../../ci/yaml/index.md) uses a standard style to make it easier to use and update.
+The [CI/CD YAML syntax reference](../../ci/yaml/index.md) uses a standard style to make it easier to use and update.
The reference information should be kept as simple as possible, and expanded details
and examples should be documented on other pages.
diff --git a/doc/development/cicd/components.md b/doc/development/cicd/components.md
new file mode 100644
index 00000000000..56ab5a24bd1
--- /dev/null
+++ b/doc/development/cicd/components.md
@@ -0,0 +1,80 @@
+---
+stage: Verify
+group: Pipeline Authoring
+info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
+---
+
+# Development guide for GitLab CI/CD components
+
+This document explains how to develop [CI/CD components](../../ci/components/index.md) that are maintained by GitLab.
+
+The official location for all GitLab-maintained component projects is the [`gitlab.com/components`](https://gitlab.com/components) group.
+This group contains all components that are designed to be generic, served to all GitLab users, and maintained by GitLab.
+
+A component project can initially be created under a different group (for example `gitlab-org`)
+but they need to be moved into the `components` group before the first version gets published to the catalog.
+
+Components that are for GitLab internal use only, for example specific to `gitlab-org/gitlab` project, should be
+implemented under `gitlab-org` group.
+
+Component projects that are expected to be published in the [CI/CD catalog](../../ci/components/index.md#cicd-catalog)
+should first be dogfooded it to ensure we stay on top of the project quality and have first-hand
+experience with it.
+
+## Define ownership
+
+GitLab-maintained components are trusted by the community and require a high degree of quality and timely maintenance.
+Components must be kept up to date, monitored for security vulnerabilities, and bugs fixed.
+
+Each component project must have a set of owners and maintainers that are also domain experts.
+Experts can be from any department in GitLab, from Engineering to Support, Customer Success, and Developer Relations.
+
+If a component is related to a GitLab feature (for example Secret Detection), the team that owns the
+feature category or is most closely related to it should maintain the project.
+
+The component project can be created by a separate team or individual initially but it must be transitioned
+to a set of owners before the first version gets published to the catalog.
+
+The `README.md` file in the project repository must indicate the main owners of the project so that
+they can be contacted by the wider community if needed.
+
+NOTE:
+If a set of project owners cannot be guaranteed or the components cannot be dogfooded, we strongly recommend
+not creating a GitLab-maintained component project and instead let the wider community fulfill the demand
+in the catalog.
+
+## Development process
+
+1. Create a project under [`gitlab.com/components`](https://gitlab.com/components)
+ or ask one of the group owners to create an empty project for you.
+1. Follow the [standard guide for creating components](../../ci/components/index.md).
+1. Add a concise project description that clearly describes the capabilities offered by the component project.
+1. Ensure that the [best practices](../../ci/components/index.md#best-practices) are followed.
+1. Use [semantic versioning](https://semver.org) in the form `MAJOR.MINOR` or `MAJOR.MINOR.PATCH`.
+1. Add a `LICENSE.md` file with the MIT license.
+1. The project must have a `.gitlab-ci.yml` file that:
+ - Validates all the components in the project correctly.
+ - Contains a `release` job to publish newly released tags to the catalog.
+1. Ensure that the `README.md` contains at least the sections below (for example, see the [Code quality component](https://gitlab.com/components/code-quality)):
+ - **Overview**: The capabilities offered by the component project.
+ - **Components**: Sub-sections for each component, each with:
+ - **Usage**: Examples with and without inputs (when optional).
+ - **Inputs**: A table showing the input names, types, default values (if any) and descriptions.
+ - **Variables** (when applicable): The variable names, possible values, and descriptions.
+ - **Contribute**: Notes and how to get in touch with the maintainers.
+ Usually the contribution process should follow the [official guide](../../ci/components/index.md).
+1. Upload the [official avatar image](img/avatar_component_project.png) to the component project.
+
+## Review and contribution process
+
+It's possible that components in the project have a related [CI/CD template](templates.md) in the GitLab codebase.
+In that case we need to cross link the component project and CI/CD template:
+
+- Add a comment in the CI/CD template with the location of the related component project.
+- Add a section in the `README.md` of the component project with the location of the existing CI/CD template.
+
+When changes are applied to these components, check whether we can integrate the changes in the CI/CD template too.
+This might not be possible due to the rigidity of versioning in CI/CD templates.
+
+Ping [`@gitlab-org/maintainers/ci-components`](https://gitlab.com/groups/gitlab-org/maintainers/ci-components/-/group_members?with_inherited_permissions=exclude)
+for reviews to ensure that the components are written in consistent style and follow the best practices.
diff --git a/doc/development/cicd/configuration.md b/doc/development/cicd/configuration.md
new file mode 100644
index 00000000000..60f55174651
--- /dev/null
+++ b/doc/development/cicd/configuration.md
@@ -0,0 +1,100 @@
+---
+stage: Verify
+group: Pipeline Authoring
+info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
+---
+
+# Contribute to the CI/CD configuration
+
+## Glossary
+
+- **CI/CD configuration**: The YAML file that defines the CI/CD configuration for a project.
+- **keyword**: Each keyword in the CI/CD configuration.
+- **entry**: An `Entry` class that represents a keyword in the CI/CD configuration.
+
+Not every keyword in the CI/CD configuration is represented by an `Entry` class.
+We create `Entry` classes for keywords that have a complex structure or reusable parts.
+
+For example;
+
+- The `image` keyword is represented by the [`Entry::Image`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/config/entry/image.rb) class.
+- The `name` subkeyword of the `image` keyword is not represented by an `Entry` class.
+- The `pull_policy` subkeyword of the `image` keyword is represented by the [`Entry::PullPolicy`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/config/entry/pull_policy.rb) class.
+
+## Adding New Keywords
+
+CI config keywords are added in the [`lib/gitlab/ci/config/entry`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/config/entry) directory.
+For EE-specific changes, use the [`ee/lib/gitlab/ci/config/entry`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/lib/gitlab/ci/config/entry)
+or [`ee/lib/ee/gitlab/ci/config/entry`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/lib/ee/gitlab/ci/config/entry) directory.
+
+### Inheritance
+
+An entry is represented by a class that inherits from;
+
+- `Entry::Node`: for simple keywords.
+ (e.g. [`Entry::Stage`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/config/entry/stage.rb))
+- `Entry::Simplifiable`: for keywords that have multiple structures.
+ For example, [`Entry::Retry`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/config/entry/retry.rb) can be a simple number or a hash configuration.
+- `Entry::ComposableArray`: for keywords that have a list of single-type sub-elements.
+ For example, [`Entry::Includes`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/config/entry/includes.rb) has a list of `Entry::Include` elements.
+- `Entry::ComposableHash`: for keywords that have single-type sub-elements with user-defined keys.
+ For example, [`Entry::Variables`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/config/entry/variables.rb) has a list of `Entry::Variable` elements with user-defined keys.
+
+### Helper Classes
+
+The following helper classes are available for use in entries:
+
+- `Entry::Validatable`: Enables the `validations` block in an entry class and provides validations.
+- `Entry::Attributable`: Enables the `attributes` method in an entry class. It creates these methods for each attribute; `xxx`, `has_xxx?`, `has_xxx_value?`.
+- `Entry::Configurable`: Enables the `entry` method in an entry class. It creates these methods for each entry; `xxx_defined?`, `xxx_entry`, `xxx_value`.
+
+### The `value` Method
+
+The `value` method is the main method of an entry class. It returns the actual value of the entry.
+By default, from the `Entry::Node` class, the `value` method returns the hash configuration of the entry unless it has nested entries.
+It can be useful for simple entries. For example, `Entry::Paths` has an array of strings as its value. So, it can return the array of strings directly.
+
+In some keywords, we override the `value` method. In this method, we return what and how we want to return from the entry.
+The usage of `Entry::Attributable` and `Entry::Configurable` may have a significant role here. For example,
+in `Entry::Secret`, we have this;
+
+```ruby
+attributes %i[vault file token].freeze
+
+entry :vault, Entry::Vault::Secret
+entry :file, ::Gitlab::Config::Entry::Boolean
+
+def value
+ {
+ vault: vault_value,
+ file: file_value,
+ token: token
+ }.compact
+end
+```
+
+- `vault_value` is the value of the nested `vault` entry.
+- `file_value` is the value of the nested `file` entry.
+- `token` is the value of the basic `token` attribute.
+
+**It is important** that we should always use the `xxx_value` method to get the value of a nested entry.
+
+## Feature Flag Usage
+
+When adding new CI/CD configuration keywords, it is important to use feature flags to control the rollout of the change.
+This allows us to test the change in production without affecting all users. For more information, see the [feature flags documentation](../feature_flags/index.md).
+
+### Feature Flag Actor
+
+In entry classes, we have no access to the current project or user. However, it's discouraged to use feature flags without [an actor](../feature_flags/index.md#feature-actors).
+To solve this problem, we have three options;
+
+1. Use `Feature.enabled?(:feature_flag, Feature.current_request)`.
+1. Use `YamlProcessor::FeatureFlags.enabled?(:feature_flag)`
+1. Do not use feature flags in entry classes and use them in other parts of the code.
+
+## Testing and Validation
+
+When adding or modifying an entry, the corresponding spec file must be either added or updated.
+Besides, to have a fully integrated test, it's also important to add/modify tests in the `spec/lib/gitlab/ci/yaml_processor_spec.rb` file or
+the files in `spec/lib/gitlab/ci/yaml_processor/test_cases/*` directory.
diff --git a/doc/development/cicd/img/avatar_component_project.png b/doc/development/cicd/img/avatar_component_project.png
new file mode 100644
index 00000000000..e5c20d108fa
--- /dev/null
+++ b/doc/development/cicd/img/avatar_component_project.png
Binary files differ
diff --git a/doc/development/cicd/index.md b/doc/development/cicd/index.md
index 18781f9315a..a8dfdeb30a3 100644
--- a/doc/development/cicd/index.md
+++ b/doc/development/cicd/index.md
@@ -9,10 +9,12 @@ info: Any user with at least the Maintainer role can merge updates to this conte
Development guides that are specific to CI/CD are listed here:
- If you are creating new CI/CD templates, read [the development guide for GitLab CI/CD templates](templates.md).
-- If you are adding a new keyword or changing the CI schema, check the [CI schema guide](schema.md)
+- If you are adding a new keyword or changing the CI schema, refer to the following guides:
+ - [The CI configuration guide](configuration.md)
+ - [The CI schema guide](schema.md)
See the [CI/CD YAML reference documentation guide](cicd_reference_documentation_guide.md)
-to learn how to update the [reference page](../../ci/yaml/index.md).
+to learn how to update the [CI/CD YAML syntax reference page](../../ci/yaml/index.md).
## Examples of CI/CD usage
diff --git a/doc/development/cicd/pipeline_wizard.md b/doc/development/cicd/pipeline_wizard.md
index 0c0c0f3cc45..b534fede6e9 100644
--- a/doc/development/cicd/pipeline_wizard.md
+++ b/doc/development/cicd/pipeline_wizard.md
@@ -138,7 +138,7 @@ is planned to add the ability to create a MR from here.
### Events
- `done` - Emitted after the file has been committed. Use this to redirect the
-user to the pipeline, for example.
+ user to the pipeline, for example.
### Template file location
diff --git a/doc/development/cicd/schema.md b/doc/development/cicd/schema.md
index e9a0b93b5f3..c24b7d21286 100644
--- a/doc/development/cicd/schema.md
+++ b/doc/development/cicd/schema.md
@@ -30,7 +30,7 @@ a step-by-step introduction on how to work with JSON schemas.
The CI/CD schema is at [`app/assets/javascripts/editor/schema/ci.json`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/editor/schema/ci.json).
It contains all the keywords available for authoring CI/CD configuration files.
-Check the [keyword reference](../../ci/yaml/index.md) for a comprehensive list of
+Check the [CI/CD YAML syntax reference](../../ci/yaml/index.md) for a comprehensive list of
all available keywords.
All keywords are defined under `definitions`. We use these definitions as
diff --git a/doc/development/cicd/templates.md b/doc/development/cicd/templates.md
index a2b490b9106..bd3023ebf8d 100644
--- a/doc/development/cicd/templates.md
+++ b/doc/development/cicd/templates.md
@@ -13,7 +13,7 @@ we encourage team members to create [CI/CD components](../../ci/components/index
for the catalog. This transition enhances the modularity and maintainability of our
shared CI/CD resources, and avoids the complexities of contributing new CI/CD templates.
If you need to update an existing template, you must also update the matching CI/CD component.
-If no component exists that matches the CI/CD template yet, consider creating the matching component.
+If no component exists that matches the CI/CD template yet, consider [creating the matching component](components.md).
This ensures that template and component functionality remain in sync, aligning with
our new development practices.
diff --git a/doc/development/code_owners/index.md b/doc/development/code_owners/index.md
index 45c632d5adc..b8e99475dd3 100644
--- a/doc/development/code_owners/index.md
+++ b/doc/development/code_owners/index.md
@@ -53,12 +53,27 @@ namespace. Code Owners is an EE-only feature, so the files only exist in the `./
have been changed when a user pushes to a protected branch with `require_code_owner_approval` enabled.
- Defined in `./ee/lib/gitlab/code_owners/validator.rb`.
+## Where Code Owners sits in the Git access check execution order
+
+`Gitlab::Checks::DiffCheck#file_paths_validations` returns either an empty array, or an array with a single member of the results of `#lfs_file_locks_validation` if LFS is enabled and file locks are present. The return result of `#validate_code_owners` in the EE version of this file is inserted at the end of this list in the `EE::Gitlab::Checks::DiffCheck#file_paths_validations`. LFS checks are performed before Code Owners checks.
+
+These checks are executed after those listed in `#validations_for_path`, which exists only in the EE version, and include `#path_locks_validation` and `#file_name_validation`. This means that checks for Path Locks precede checks for Code Owners in the flow.
+
+The check order is as follows in `EE` (only LFS exists as a non-EE feature):
+
+- Path Locks
+- File Names
+ - Blocks files containing secrets for example `id_rsa`
+ - Blocks files matching the `PushRule#file_name_regex`
+- LFS File Locks
+- Code Owners
+
## Related models
### `ProtectedBranch`
The `ProtectedBranch` model is defined in `app/models/protected_branch.rb` and
-extended in `ee/app/ee/models/protected_branch.rb`. The EE version includes a column
+extended in `ee/app/models/concerns/ee/protected_branch.rb`. The EE version includes a column
named `require_code_owner_approval` which prevents changes from being pushed directly
to the branch being protected if the file is listed in `CODEOWNERS`.
@@ -108,7 +123,9 @@ This service is defined in `services/merge_requests/sync_code_owner_approval_rul
These flowcharts should help explain the flow from the controllers down to the
models for different features.
-### Push changes to a protected branch with `require_code_owner_approval` enabled
+Note that many of the Code Owners implementations exist in the `EE` variants of the classes.
+
+### Push changes to a protected branch with `require_code_owner_approval` enabled, over SSH
```mermaid
graph TD
@@ -120,6 +137,19 @@ graph TD
Gitlab::CodeOwners::Loader --> Gitlab::CodeOwners::Entry
```
+### Push changes to a protected branch with `require_code_owner_approval` enabled, over HTTPS
+
+```mermaid
+graph TD
+ Repositories::GitHttpController --> Gitlab::GlRepository
+ Gitlab::GlRepository --> Gitlab::GitAccessProject
+ Gitlab::GitAccessProject --> Gitlab::Checks::DiffCheck
+ Gitlab::Checks::DiffCheck --> Gitlab::CodeOwners::Validator
+ Gitlab::CodeOwners::Validator --> ProtectedBranch
+ Gitlab::CodeOwners::Validator --> Gitlab::CodeOwners::Loader
+ Gitlab::CodeOwners::Loader --> Gitlab::CodeOwners::Entry
+```
+
### Sync code owner rules to merge request approval rules
```mermaid
diff --git a/doc/development/code_review.md b/doc/development/code_review.md
index 84d2537d058..cad71d4b843 100644
--- a/doc/development/code_review.md
+++ b/doc/development/code_review.md
@@ -376,7 +376,7 @@ Avoid:
[_explain why, not what_](https://blog.codinghorror.com/code-tells-you-how-comments-tell-you-why/).
- Requesting maintainer reviews of merge requests with failed tests. If the tests are failing and you have to request a review, ensure you leave a comment with an explanation.
- Excessively mentioning maintainers through email or Slack (if the maintainer is reachable
-through Slack). If you can't add a reviewer for a merge request, `@` mentioning a maintainer in a comment is acceptable and in all other cases adding a reviewer is sufficient.
+ through Slack). If you can't add a reviewer for a merge request, `@` mentioning a maintainer in a comment is acceptable and in all other cases adding a reviewer is sufficient.
This saves reviewers time and helps authors catch mistakes earlier.
@@ -412,7 +412,7 @@ that it meets all requirements, you should:
- Select **Approve**.
- `@` mention the author to generate a to-do notification, and advise them that their merge request has been reviewed and approved.
- Request a review from a maintainer. Default to requests for a maintainer with [domain expertise](#domain-experts),
-however, if one isn't available or you think the merge request doesn't need a review by a [domain expert](#domain-experts), feel free to follow the [Reviewer roulette](#reviewer-roulette) suggestion.
+ however, if one isn't available or you think the merge request doesn't need a review by a [domain expert](#domain-experts), feel free to follow the [Reviewer roulette](#reviewer-roulette) suggestion.
- Remove yourself as a reviewer.
### The responsibility of the maintainer
@@ -580,7 +580,7 @@ experience, refactors the existing code). Then:
optionally resolve within the merge request or follow-up at a later stage.
- There's a [Chrome/Firefox add-on](https://gitlab.com/conventionalcomments/conventional-comments-button) which you can use to apply [Conventional Comment](https://conventionalcomments.org/) prefixes.
- Ensure there are no open dependencies. Check [linked issues](../user/project/issues/related_issues.md) for blockers. Clarify with the authors
-if necessary. If blocked by one or more open MRs, set an [MR dependency](../user/project/merge_requests/dependencies.md).
+ if necessary. If blocked by one or more open MRs, set an [MR dependency](../user/project/merge_requests/dependencies.md).
- After a round of line notes, it can be helpful to post a summary note such as
"Looks good to me", or "Just a couple things to address."
- Let the author know if changes are required following your review.
diff --git a/doc/development/code_suggestions/index.md b/doc/development/code_suggestions/index.md
index bdf3bcdd520..2bf36664437 100644
--- a/doc/development/code_suggestions/index.md
+++ b/doc/development/code_suggestions/index.md
@@ -12,7 +12,7 @@ The recommended setup for locally developing and debugging Code Suggestions is t
- IDE Extension (e.g. VS Code Extension)
- Main application configured correctly
-- [Model gateway](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist)
+- [AI Gateway](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist)
This should enable everyone to see locally any change in an IDE being sent to the main application transformed to a prompt which is then sent to the respective model.
@@ -24,26 +24,26 @@ This should enable everyone to see locally any change in an IDE being sent to th
1. Open the extension settings by clicking a small cog icon and select "Extension Settings" option
1. Check a "GitLab: Debug" checkbox.
1. Main Application
- 1. Enable Feature Flags ```code_suggestions_completion_api``` and ```code_suggestions_tokens_api```
+ 1. Enable Feature Flag ```code_suggestions_tokens_api```
1. In your terminal, navigate to a `gitlab` inside your `gitlab-development-kit` directory
1. Run `bundle exec rails c` to start a Rails console
- 1. Call `Feature.enable(:code_suggestions_completion_api)` and `Feature.enable(:code_suggestions_tokens_api)` from the console
+ 1. Call `Feature.enable(:code_suggestions_tokens_api)` from the console
1. Run the GDK with ```export CODE_SUGGESTIONS_BASE_URL=http://localhost:5052```
-1. [Setup Model Gateway](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist#how-to-run-the-server-locally)
+1. [Setup AI Gateway](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist#how-to-run-the-server-locally)
1. Build tree sitter libraries ```poetry run scripts/build-tree-sitter-lib.py```
- 1. Extra .env Changes for all debugging insights
- 1. LOG_LEVEL=DEBUG
- 1. LOG_FORMAT_JSON=false
- 1. LOG_TO_FILE=true
+ 1. Extra .env changes for all debugging insights
+ 1. `AIGW_LOGGING__LEVEL=DEBUG`
+ 1. `AIGW_LOGGING__FORMAT_JSON=false`
+ 1. `AIGW_LOGGING__TO_FILE=true`
1. Watch the new log file ```modelgateway_debug.log``` , e.g. ```tail -f modelgateway_debug.log | fblog -a prefix -a suffix -a current_file_name -a suggestion -a language -a input -a parameters -a score -a exception```
-### Setup instructions to use staging Model Gateway
+### Setup instructions to use staging AI Gateway
-When testing interactions with the Model Gateway, you might want to integrate your local GDK
-with the deployed staging Model Gateway. To do this:
+When testing interactions with the AI Gateway, you might want to integrate your local GDK
+with the deployed staging AI Gateway. To do this:
1. You need a [cloud staging license](../../user/project/repository/code_suggestions/self_managed.md#upgrade-gitlab) that has the Code Suggestions add-on, because add-ons are enabled on staging. Drop a note in the `#s_fulfillment` internal Slack channel to request an add-on to your license. See this [handbook page](https://about.gitlab.com/handbook/developer-onboarding/#working-on-gitlab-ee-developer-licenses) for how to request a license for local development.
-1. Set environment variables to point customers-dot to staging, and the Model Gateway to staging:
+1. Set environment variables to point customers-dot to staging, and the AI Gateway to staging:
```shell
export GITLAB_LICENSE_MODE=test
@@ -52,5 +52,5 @@ with the deployed staging Model Gateway. To do this:
```
1. Restart the GDK.
-1. Ensure you followed the necessary [steps to enable the Code Suggestions feature](../../user/project/repository/code_suggestions/self_managed.md#gitlab-163-and-later).
+1. Ensure you followed the necessary [steps to enable the Code Suggestions feature](../../user/project/repository/code_suggestions/self_managed.md).
1. Test out the Code Suggestions feature by opening the Web IDE for a project.
diff --git a/doc/development/contributing/design.md b/doc/development/contributing/design.md
index 0e922550856..c6027e27310 100644
--- a/doc/development/contributing/design.md
+++ b/doc/development/contributing/design.md
@@ -19,12 +19,12 @@ with additions and improvements.
As a merge request (MR) author, you must:
- Include _Before_ and _After_
-screenshots (or videos) of your changes in the description, as explained in our
-[MR workflow](merge_request_workflow.md). These screenshots/videos are very helpful
-for all reviewers and can speed up the review process, especially if the changes
-are small.
+ screenshots (or videos) of your changes in the description, as explained in our
+ [MR workflow](merge_request_workflow.md). These screenshots/videos are very helpful
+ for all reviewers and can speed up the review process, especially if the changes
+ are small.
- Attach the ~UX label to any merge request that has any user facing changes. This will trigger our
-Reviewer Roulette to suggest a UX [reviewer](https://about.gitlab.com/handbook/product/ux/product-designer/mr-reviews/#stage-group-mrs).
+ Reviewer Roulette to suggest a UX [reviewer](https://about.gitlab.com/handbook/product/ux/product-designer/mr-reviews/#stage-group-mrs).
If you are a **team member**: We recommend assigning the Product Designer suggested by the
[Reviewer Roulette](../code_review.md#reviewer-roulette) as reviewer. [This helps us](https://about.gitlab.com/handbook/product/ux/product-designer/mr-reviews/#benefits) spread work evenly, improve communication, and make our UI more
@@ -41,10 +41,10 @@ Check these aspects both when _designing_ and _reviewing_ UI changes.
### Writing
-- Follow [Pajamas](https://design.gitlab.com/content/punctuation/) as the primary
+- Follow [Pajamas](https://design.gitlab.com/content/ui-text/) as the primary
guidelines for UI text and [documentation style guide](../documentation/styleguide/index.md)
as the secondary.
-- Use clear and consistent [terminology](https://design.gitlab.com/content/terminology/).
+- Use clear and consistent terminology.
- Check grammar and spelling.
- Consider help content and follow its [guidelines](https://design.gitlab.com/usability/contextual-help).
- Request review from the [appropriate Technical Writer](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments),
diff --git a/doc/development/contributing/index.md b/doc/development/contributing/index.md
index 2c8b5b2af20..d4541558d23 100644
--- a/doc/development/contributing/index.md
+++ b/doc/development/contributing/index.md
@@ -134,6 +134,14 @@ Lastly, keep the following in mind when submitting merge requests:
be merged, as well as some guidance. The maintainers will be open to discussion about how to change
the code so it can be approved and merged in the future.
+## Tips
+
+- [Small MRs are the main key to a great review](https://about.gitlab.com/blog/2021/03/18/iteration-and-code-review/).
+- Make sure to read our [merge request guidelines for contributors before you start for the first time](merge_request_workflow.md#merge-request-guidelines-for-contributors).
+- Automated testing is required. Take your time to understand the different [testing levels](../testing_guide/testing_levels.md#how-to-test-at-the-correct-level) and apply them accordingly.
+- Make sure to have a great description that includes steps to reproduce your implementation.
+- [Make sure to follow our commit message guidelines](merge_request_workflow.md#commit-messages-guidelines).
+
## Closing policy for issues and merge requests
- For the criteria for closing issues, see [the Issue Triage handbook page](https://about.gitlab.com/handbook/engineering/quality/issue-triage/#outdated-issues).
diff --git a/doc/development/contributing/verify/index.md b/doc/development/contributing/verify/index.md
index dbc48121dff..5f9e2e3acb3 100644
--- a/doc/development/contributing/verify/index.md
+++ b/doc/development/contributing/verify/index.md
@@ -53,7 +53,7 @@ and they serve us and our users well. Some examples of these principles are that
If a job fails and we notify a user that it was successful, it can have severe negative consequences.
- Feedback needs to be available when a user needs it and data cannot disappear unexpectedly when engineers need it.
- It all doesn't matter if the platform is not secure and we
-are leaking credentials or secrets.
+ are leaking credentials or secrets.
- When a user provides a set of preconditions in a form of CI/CD configuration, the result should be deterministic each time a pipeline runs, because otherwise the platform might not be trustworthy.
- If it is fast, simple to use and has a great UX it will serve our users well.
diff --git a/doc/development/database/avoiding_downtime_in_migrations.md b/doc/development/database/avoiding_downtime_in_migrations.md
index bf75b7c2ab2..57c71cbaec6 100644
--- a/doc/development/database/avoiding_downtime_in_migrations.md
+++ b/doc/development/database/avoiding_downtime_in_migrations.md
@@ -588,27 +588,27 @@ swap the columns. Swapping is done with post-deployment migration. The exact pro
table being converted, but in general it's done in the following steps:
1. Using the provided `ensure_batched_background_migration_is_finished` helper, make sure the batched
-migration has finished ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L13-18)).
-If the migration has not completed, the subsequent steps fail anyway. By checking in advance we
-aim to have more helpful error message.
+ migration has finished ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L13-18)).
+ If the migration has not completed, the subsequent steps fail anyway. By checking in advance we
+ aim to have more helpful error message.
1. Use the `add_bigint_column_indexes` helper method from `Gitlab::Database::MigrationHelpers::ConvertToBigint` module
to create indexes with the `bigint` columns that match the existing indexes using the `integer` column.
- The helper method is expected to create all required `bigint` indexes, but it's advised to recheck to make sure
we are not missing any of the existing indexes. More information about the helper can be
found in merge request [135781](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135781).
1. Create foreign keys (FK) using the `bigint` columns that match the existing FK using the
-`integer` column. Do this both for FK referencing other tables, and FK that reference the table
-that is being migrated ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L36-43)).
+ `integer` column. Do this both for FK referencing other tables, and FK that reference the table
+ that is being migrated ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L36-43)).
1. Inside a transaction, swap the columns:
- 1. Lock the tables involved. To reduce the chance of hitting a deadlock, we recommended to do this in parent to child order ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L47)).
- 1. Rename the columns to swap names ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L49-54))
- 1. Reset the trigger function ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L56-57)).
- 1. Swap the defaults ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L59-62)).
- 1. Swap the PK constraint (if any) ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L64-68)).
- 1. Remove old indexes and rename new ones ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L70-72)).
- - Names of the `bigint` indexes created using `add_bigint_column_indexes` helper can be retrieved by calling
- `bigint_index_name` from `Gitlab::Database::MigrationHelpers::ConvertToBigint` module.
- 1. Remove old foreign keys (if still present) and rename new ones ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L74)).
+ 1. Lock the tables involved. To reduce the chance of hitting a deadlock, we recommended to do this in parent to child order ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L47)).
+ 1. Rename the columns to swap names ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L49-54))
+ 1. Reset the trigger function ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L56-57)).
+ 1. Swap the defaults ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L59-62)).
+ 1. Swap the PK constraint (if any) ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L64-68)).
+ 1. Remove old indexes and rename new ones ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L70-72)).
+ - Names of the `bigint` indexes created using `add_bigint_column_indexes` helper can be retrieved by calling
+ `bigint_index_name` from `Gitlab::Database::MigrationHelpers::ConvertToBigint` module.
+ 1. Remove old foreign keys (if still present) and rename new ones ([see an example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb#L74)).
See example [merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66088), and [migration](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb).
diff --git a/doc/development/database/clickhouse/clickhouse_within_gitlab.md b/doc/development/database/clickhouse/clickhouse_within_gitlab.md
index a459f89b185..8988ae182f7 100644
--- a/doc/development/database/clickhouse/clickhouse_within_gitlab.md
+++ b/doc/development/database/clickhouse/clickhouse_within_gitlab.md
@@ -272,3 +272,7 @@ end
```
Additionally, to view the executed ClickHouse queries in web interactions, on the performance bar, next to the `ch` label select the count.
+
+### Getting help
+
+For additional information or specific questions, please reach out to the ClickHouse Datastore working group in the `#f_clickhouse` Slack channel, or mention `@gitlab-org/maintainers/clickhouse` in a comment on GitLab.com.
diff --git a/doc/development/database/clickhouse/merge_request_analytics.md b/doc/development/database/clickhouse/merge_request_analytics.md
index db441ca9051..aa04d9a4fe1 100644
--- a/doc/development/database/clickhouse/merge_request_analytics.md
+++ b/doc/development/database/clickhouse/merge_request_analytics.md
@@ -100,7 +100,7 @@ LIMIT 1
## Store merge request data in ClickHouse
Several other use cases exist for storing and querying merge request data in
-ClickHouse. In this document, we focus on this particular feature.
+[ClickHouse](../../../integration/clickhouse.md). In this document, we focus on this particular feature.
The core data exists in the `merge_request_metrics` and in the `merge_requests`
database tables. Some filters require extra tables to be joined:
diff --git a/doc/development/database/efficient_in_operator_queries.md b/doc/development/database/efficient_in_operator_queries.md
index 8e334e5bb5c..e1a7b56e35e 100644
--- a/doc/development/database/efficient_in_operator_queries.md
+++ b/doc/development/database/efficient_in_operator_queries.md
@@ -916,16 +916,16 @@ Here's an outline of the steps we take in the recursive CTE query
1. Sort the initial `resultset` according to the `ORDER BY` clause.
1. Pick the top cursor to fetch the record, this is our first record. In the example,
-this cursor would be (`2020-01-05`, `3`) for `project_id=9`.
+ this cursor would be (`2020-01-05`, `3`) for `project_id=9`.
1. We can use (`2020-01-05`, `3`) to fetch the next issue respecting the `ORDER BY` clause
-`project_id=9` filter. This produces an updated `resultset`.
+ `project_id=9` filter. This produces an updated `resultset`.
- | `project_ids` | `created_at_values` | `id_values` |
- | ------------- | ------------------- | ----------- |
- | 2 | 2020-01-10 | 5 |
- | 5 | 2020-01-05 | 4 |
- | 10 | 2020-01-15 | 7 |
- | **9** | **2020-01-06** | **6** |
+ | `project_ids` | `created_at_values` | `id_values` |
+ | ------------- | ------------------- | ----------- |
+ | 2 | 2020-01-10 | 5 |
+ | 5 | 2020-01-05 | 4 |
+ | 10 | 2020-01-15 | 7 |
+ | **9** | **2020-01-06** | **6** |
1. Repeat 1 to 3 with the updated `resultset` until we have fetched `N=20` records.
@@ -944,9 +944,9 @@ Example initializer row:
| `NULL::issues` | `[9, 2, 5, 10]` | `[...]` | `[...]` | `0` | `NULL` |
- The `records` column contains our sorted database records, and the initializer query sets the
-first value to `NULL`, which is filtered out later.
+ first value to `NULL`, which is filtered out later.
- The `count` column tracks the number of records found. We use this column to filter out the
-initializer row from the result set.
+ initializer row from the result set.
### Recursive portion of the CTE query
@@ -1016,7 +1016,7 @@ As the final step, we need to produce a new row by manipulating the initializer
(`data_collector_query` method). Two things happen here:
- Read the full row from the DB and return it in the `records` columns. (`result_collector_columns`
-method)
+ method)
- Replace the cursor values at the current position with the results from the keyset query.
Reading the full row from the database is only one index scan by the primary key. We use the
@@ -1091,7 +1091,7 @@ in the PostgreSQL's buffer cache.
The optimized `IN` query reads maximum 519 entries (cursor values) from the index:
- 500 index-only scans for populating the arrays for each project. The cursor values of the first
-record is here.
+ record is here.
- Maximum 19 additional index-only scans for the consecutive records.
The optimized `IN` query sorts the array (cursor values per project array) 20 times, which
diff --git a/doc/development/database/iterating_tables_in_batches.md b/doc/development/database/iterating_tables_in_batches.md
index 802b7622592..7192a84508e 100644
--- a/doc/development/database/iterating_tables_in_batches.md
+++ b/doc/development/database/iterating_tables_in_batches.md
@@ -414,12 +414,12 @@ the queries, where the `issues` table is batched first.
When to use `JOINS`:
- When there's a 1:1 or 1:N relationship between the tables where we know that the joined record
-(almost) always exists. This works well for "extension-like" tables:
+ (almost) always exists. This works well for "extension-like" tables:
- `projects` - `project_settings`
- `users` - `user_details`
- `users` - `user_statuses`
- `LEFT JOIN` works well in this case. Conditions on the joined table need to go to the yielded
-relation so the iteration is not affected by the data distribution in the joined table.
+ relation so the iteration is not affected by the data distribution in the joined table.
Example:
@@ -555,7 +555,7 @@ table or a range of rows. The scaling and performance characteristics are very s
Examples:
- Iterate over the table in a specific order (timestamp columns) in combination with a tie-breaker
-if column user to sort by does not contain unique values.
+ if column user to sort by does not contain unique values.
- Iterate over the table with composite primary keys.
### Iterate over the issues in a project by creation date
@@ -619,8 +619,8 @@ To keep the iteration stable and predictable, avoid updating the columns in the
### Iterate over the `merge_request_diff_commits` table
-The `merge_request_diff_commits` table uses a composite primary key (`merge_request_diff_id,
-relative_order`), which makes `EachBatch` impossible to use efficiently.
+The `merge_request_diff_commits` table uses a composite primary key (`merge_request_diff_id, relative_order`),
+which makes `EachBatch` impossible to use efficiently.
To paginate over the `merge_request_diff_commits` table, you can use the following snippet:
@@ -654,7 +654,7 @@ end
### Order object configuration
Keyset pagination works well with simple `ActiveRecord` `order` scopes
-([first example](#iterate-over-the-issues-in-a-project-by-creation-date).
+([first example](#iterate-over-the-issues-in-a-project-by-creation-date)).
However, in special cases, you need to describe the columns in the `ORDER BY` clause (second example)
for the underlying keyset pagination library. When the `ORDER BY` configuration cannot be
automatically determined by the keyset pagination library, an error is raised.
diff --git a/doc/development/database/keyset_pagination.md b/doc/development/database/keyset_pagination.md
index 9bb44d2ed71..6b2c4f9d146 100644
--- a/doc/development/database/keyset_pagination.md
+++ b/doc/development/database/keyset_pagination.md
@@ -123,7 +123,7 @@ For the REST API, the `paginate_with_strategies` helper can be used on a relatio
In order for keyset pagination to be used, the following conditions must be met:
-1. `params[:keyset]` must return `'keyset'`
+1. `params[:pagination]` must return `'keyset'`
1. `params[:order_by]` and `params[:sort]` must both appear in the object returned by the
`supported_keyset_orderings` class method on the model. In the following example, `Thing`
supports keyset pagination when ordering by ID in either ascending or descending order.
diff --git a/doc/development/database/loose_foreign_keys.md b/doc/development/database/loose_foreign_keys.md
index 3003ee970ce..9ecc70c06bc 100644
--- a/doc/development/database/loose_foreign_keys.md
+++ b/doc/development/database/loose_foreign_keys.md
@@ -499,7 +499,7 @@ cron job where the schedule depends on the configuration of the GitLab instance.
- Non-decomposed GitLab (1 database): invoked every minute.
- Decomposed GitLab (2 databases, CI and Main): invoked every minute, cleaning up one database
-at a time. For example, the cleanup worker for the main database runs every two minutes.
+ at a time. For example, the cleanup worker for the main database runs every two minutes.
To avoid lock contention and the processing of the same database rows, the worker does not run
parallel. This behavior is ensured with a Redis lock.
@@ -509,13 +509,13 @@ parallel. This behavior is ensured with a Redis lock.
1. Acquire the Redis lock.
1. Determine which database to clean up.
1. Collect all database tables where the deletions are tracked (parent tables).
- - This is achieved by reading the `config/gitlab_loose_foreign_keys.yml` file.
- - A table is considered "tracked" when a loose foreign key definition exists for the table and
- the `DELETE` trigger is installed.
+ - This is achieved by reading the `config/gitlab_loose_foreign_keys.yml` file.
+ - A table is considered "tracked" when a loose foreign key definition exists for the table and
+ the `DELETE` trigger is installed.
1. Cycle through the tables with an infinite loop.
1. For each table, load a batch of deleted parent records to clean up.
1. Depending on the YAML configuration, build `DELETE` or `UPDATE` (nullify) queries for the
-referenced child tables.
+ referenced child tables.
1. Invoke the queries.
1. Repeat until all child records are cleaned up or the maximum limit is reached.
1. Remove the deleted parent records when all child records are cleaned up.
@@ -530,13 +530,13 @@ The inserted record stores the following information about the deleted record:
- `fully_qualified_table_name`: name of the database table where the record was located.
- `primary_key_value`: the ID of the record, the value is present in the child tables as
-the foreign key value. At the moment, composite primary keys are not supported, the parent table
-must have an `id` column.
+ the foreign key value. At the moment, composite primary keys are not supported, the parent table
+ must have an `id` column.
- `status`: defaults to pending, represents the status of the cleanup process.
- `consume_after`: defaults to the current time.
- `cleanup_attempts`: defaults to 0. The number of times the worker tried to clean up this record.
-A non-zero number would mean that this record has many child records and cleaning it up requires
-several runs.
+ A non-zero number would mean that this record has many child records and cleaning it up requires
+ several runs.
#### Database decomposition
@@ -692,7 +692,7 @@ The loop-based batch processing is preferred over `EachBatch` for the following
- The records in the batch are modified, so the next batch contains different records.
- There is always an index on the foreign key column however, the column is usually not unique.
-`EachBatch` requires a unique column for the iteration.
+ `EachBatch` requires a unique column for the iteration.
- The record order doesn't matter for the cleanup.
Notice that we have two loops. The initial loop processes records with the `SKIP LOCKED` clause.
@@ -747,23 +747,23 @@ For example, a project with millions of `ci_builds` records is deleted. The `ci_
is deleted by the loose foreign keys feature.
1. The cleanup worker is scheduled and picks up a batch of deleted `projects` records. The large
-project is part of the batch.
+ project is part of the batch.
1. Deletion of the orphaned `ci_builds` rows has started.
1. The time limit is reached, but the cleanup is not complete.
1. The `cleanup_attempts` column is incremented for the deleted records.
1. Go to step 1. The next cleanup worker continues the cleanup.
1. When the `cleanup_attempts` reaches 3, the batch is re-scheduled 10 minutes later by updating
-the `consume_after` column.
+ the `consume_after` column.
1. The next cleanup worker processes a different batch.
We have Prometheus metrics in place to monitor the deleted record cleanup:
- `loose_foreign_key_processed_deleted_records`: Number of processed deleted records. When large
-cleanup happens, this number would decrease.
+ cleanup happens, this number would decrease.
- `loose_foreign_key_incremented_deleted_records`: Number of deleted records which were not
-finished processing. The `cleanup_attempts` column was incremented.
+ finished processing. The `cleanup_attempts` column was incremented.
- `loose_foreign_key_rescheduled_deleted_records`: Number of deleted records that had to be
-rescheduled at a later time after 3 cleanup attempts.
+ rescheduled at a later time after 3 cleanup attempts.
Example Thanos query:
diff --git a/doc/development/database/maintenance_operations.md b/doc/development/database/maintenance_operations.md
index 2701c228b74..fcdf132aa09 100644
--- a/doc/development/database/maintenance_operations.md
+++ b/doc/development/database/maintenance_operations.md
@@ -18,7 +18,7 @@ There are certain situations in which you might want to disable an index before
To disable an index before removing it:
1. Open a [production infrastructure issue](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/new)
-and use the "Production Change" template.
+ and use the "Production Change" template.
1. Inform the database team in the issue `@gl-database` or in Slack `#database`.
1. Add a step to verify the index is used (this would likely be an `EXPLAIN` command known to use the index).
1. Add the step to disable the index:
diff --git a/doc/development/database/multiple_databases.md b/doc/development/database/multiple_databases.md
index e453a7f27ea..a8d088a372e 100644
--- a/doc/development/database/multiple_databases.md
+++ b/doc/development/database/multiple_databases.md
@@ -936,7 +936,7 @@ I, [2023-07-14T17:08:06.761709 #92505] INFO -- : SELECT set_config('lock_writes
I, [2023-07-14T17:08:06.765272 #92505] INFO -- : SELECT set_config('lock_writes.ci_build_pending_states', 'false', false)
I, [2023-07-14T17:08:06.768220 #92505] INFO -- : SELECT set_config('lock_writes.ci_build_report_results', 'false', false)
[...]
-I, [2023-07-14T17:08:06.957294 #92505] INFO -- : TRUNCATE TABLE ci_build_needs, ci_build_pending_states, ci_build_report_results, ci_build_trace_chunks, ci_build_trace_metadata, ci_builds, ci_builds_metadata, ci_builds_runner_session, ci_cost_settings, ci_daily_build_group_report_results, ci_deleted_objects, ci_editor_ai_conversation_messages, ci_freeze_periods, ci_group_variables, ci_instance_variables, ci_job_artifact_states, ci_job_artifacts, ci_job_token_project_scope_links, ci_job_variables, ci_minutes_additional_packs, ci_namespace_mirrors, ci_namespace_monthly_usages, ci_partitions, ci_pending_builds, ci_pipeline_artifacts, ci_pipeline_chat_data, ci_pipeline_messages, ci_pipeline_metadata, ci_pipeline_schedule_variables, ci_pipeline_schedules, ci_pipeline_variables, ci_pipelines, ci_pipelines_config, ci_platform_metrics, ci_project_mirrors, ci_project_monthly_usages, ci_refs, ci_resource_groups, ci_resources, ci_runner_machines, ci_runner_namespaces, ci_runner_projects, ci_runner_versions, ci_runners, ci_running_builds, ci_secure_file_states, ci_secure_files, ci_sources_pipelines, ci_sources_projects, ci_stages, ci_subscriptions_projects, ci_trigger_requests, ci_triggers, ci_unit_test_failures, ci_unit_tests, ci_variables, external_pull_requests, p_ci_builds, p_ci_builds_metadata, p_ci_job_annotations, p_ci_runner_machine_builds, taggings, tags RESTRICT
+I, [2023-07-14T17:08:06.957294 #92505] INFO -- : TRUNCATE TABLE ci_build_needs, ci_build_pending_states, ci_build_report_results, ci_build_trace_chunks, ci_build_trace_metadata, ci_builds, ci_builds_metadata, ci_builds_runner_session, ci_cost_settings, ci_daily_build_group_report_results, ci_deleted_objects, ci_freeze_periods, ci_group_variables, ci_instance_variables, ci_job_artifact_states, ci_job_artifacts, ci_job_token_project_scope_links, ci_job_variables, ci_minutes_additional_packs, ci_namespace_mirrors, ci_namespace_monthly_usages, ci_partitions, ci_pending_builds, ci_pipeline_artifacts, ci_pipeline_chat_data, ci_pipeline_messages, ci_pipeline_metadata, ci_pipeline_schedule_variables, ci_pipeline_schedules, ci_pipeline_variables, ci_pipelines, ci_pipelines_config, ci_platform_metrics, ci_project_mirrors, ci_project_monthly_usages, ci_refs, ci_resource_groups, ci_resources, ci_runner_machines, ci_runner_namespaces, ci_runner_projects, ci_runner_versions, ci_runners, ci_running_builds, ci_secure_file_states, ci_secure_files, ci_sources_pipelines, ci_sources_projects, ci_stages, ci_subscriptions_projects, ci_trigger_requests, ci_triggers, ci_unit_test_failures, ci_unit_tests, ci_variables, external_pull_requests, p_ci_builds, p_ci_builds_metadata, p_ci_job_annotations, p_ci_runner_machine_builds, taggings, tags RESTRICT
```
The tasks will first find out the tables that need to be truncated. Truncation will
diff --git a/doc/development/database/rename_database_tables.md b/doc/development/database/rename_database_tables.md
index ad641797496..babd51f91a0 100644
--- a/doc/development/database/rename_database_tables.md
+++ b/doc/development/database/rename_database_tables.md
@@ -78,18 +78,18 @@ Execute a standard migration (not a post-migration):
- Add a note in the Engineering Week-in-Review document: `table_name` is going to be renamed in N.M. Modifications to this table are not allowed in release N.M and N.M+1.
- The helper method uses the standard `rename_table` helper from Rails for renaming the table.
- The helper renames the sequence and the indexes. Sometimes it diverges from the standard Rails convention
-when naming indexes, so there is a possibility that not all indexes are properly renamed. After running
-the migration locally, check if there are inconsistently named indexes (`db/structure.sql`). Those can be
-renamed manually in a separate migration, which can be also part of the release M.N+1.
+ when naming indexes, so there is a possibility that not all indexes are properly renamed. After running
+ the migration locally, check if there are inconsistently named indexes (`db/structure.sql`). Those can be
+ renamed manually in a separate migration, which can be also part of the release M.N+1.
- Foreign key columns might still contain the old table name. For smaller tables, follow our
[standard column rename process](avoiding_downtime_in_migrations.md#renaming-columns)
- Avoid renaming database tables which are using with triggers.
- Table modifications (add or remove columns) are not allowed during the rename process. Make sure that all changes to the table happen before the rename migration is started (or in the next release).
- As the index names might change, verify that the model does not use bulk insert
-(for example, `insert_all` and `upsert_all`) with the `unique_by: index_name` option.
-Renaming an index while using these methods may break functionality.
+ (for example, `insert_all` and `upsert_all`) with the `unique_by: index_name` option.
+ Renaming an index while using these methods may break functionality.
- Modify the model code to point to the new database table. Do this by
-renaming the model directly or setting the `self.table_name` variable.
+ renaming the model directly or setting the `self.table_name` variable.
At this point, we don't have applications using the old database table name in their queries.
@@ -107,7 +107,7 @@ At this point, we don't have applications using the old database table name in t
1. Additionally the table definition from `TABLES_TO_BE_RENAMED` **must** be removed.
-To do so, edit the `TABLES_TO_BE_RENAMED` constant in `lib/gitlab/database.rb`:
+ To do so, edit the `TABLES_TO_BE_RENAMED` constant in `lib/gitlab/database.rb`:
From:
diff --git a/doc/development/database/strings_and_the_text_data_type.md b/doc/development/database/strings_and_the_text_data_type.md
index 70d59603e0c..50188dba14e 100644
--- a/doc/development/database/strings_and_the_text_data_type.md
+++ b/doc/development/database/strings_and_the_text_data_type.md
@@ -12,8 +12,8 @@ When adding new columns to store strings or other textual information:
1. We always use the `text` data type instead of the `string` data type.
1. `text` columns should always have a limit set, either by using the `create_table` with
-the `#text ... limit: 100` helper (see below) when creating a table, or by using the `add_text_limit`
-when altering an existing table.
+ the `#text ... limit: 100` helper (see below) when creating a table, or by using the `add_text_limit`
+ when altering an existing table.
The standard Rails `text` column type cannot be defined with a limit, but we extend `create_table` to
add a `limit: 255` option. Outside of `create_table`, `add_text_limit` can be used to add a [check constraint](https://www.postgresql.org/docs/11/ddl-constraints.html)
diff --git a/doc/development/database/table_partitioning.md b/doc/development/database/table_partitioning.md
index 4d3101b40fb..cb159a404fd 100644
--- a/doc/development/database/table_partitioning.md
+++ b/doc/development/database/table_partitioning.md
@@ -19,15 +19,15 @@ table. If the application is designed to work with partitioning in mind,
there can be multiple benefits, such as:
- Query performance can be improved greatly, because the database can
-cheaply eliminate much of the data from the search space, while still
-providing full SQL capabilities.
+ cheaply eliminate much of the data from the search space, while still
+ providing full SQL capabilities.
- Bulk deletes can be achieved with minimal impact on the database by
-dropping entire partitions. This is a natural fit for features that need
-to periodically delete data that falls outside the retention window.
+ dropping entire partitions. This is a natural fit for features that need
+ to periodically delete data that falls outside the retention window.
- Administrative tasks like `VACUUM` and index rebuilds can operate on
-individual partitions, rather than across a single massive table.
+ individual partitions, rather than across a single massive table.
Unfortunately, not all models fit a partitioning scheme, and there are
significant drawbacks if implemented incorrectly. Additionally, tables
@@ -632,3 +632,73 @@ class AsyncPrepareTableConstraintsForListPartitioning < Gitlab::Database::Migrat
end
end
```
+
+### Step 7 - Re-point foreign keys to parent table
+
+The tables that reference the initial partition must be updated to point to the
+parent table now. Without this change, the records from those tables
+will not be able to locate the rows in the next partitions because they will look
+for them in the initial partition.
+
+Steps:
+
+- Add the foreign key to the partitioned table and validate it asynchronously,
+ [for example](https://gitlab.com/gitlab-org/gitlab/-/blob/65d63f6a00196c3a7d59f15191920f271ab2b145/db/post_migrate/20230524135543_replace_ci_build_pending_states_foreign_key.rb).
+- Validate it synchronously after the asynchronously validation was completed on GitLab.com,
+ [for example](https://gitlab.com/gitlab-org/gitlab/-/blob/65d63f6a00196c3a7d59f15191920f271ab2b145/db/post_migrate/20230530140456_validate_fk_ci_build_pending_states_p_ci_builds.rb).
+- Remove the old foreign key and rename the new one to the old name,
+ [for example](https://gitlab.com/gitlab-org/gitlab/-/blob/65d63f6a00196c3a7d59f15191920f271ab2b145/db/post_migrate/20230615083713_replace_old_fk_ci_build_pending_states_to_builds.rb#L9).
+
+### Step 8 - Ensure ID uniqueness across partitions
+
+All uniqueness constraints must include the partitioning key, so we can have
+duplicate IDs across partitions. To solve this we enforce that only the database
+can set the ID values and use a sequence to generate them because sequences are
+guaranteed to generate unique values.
+
+For example:
+
+```ruby
+class EnsureIdUniquenessForPCiBuilds < Gitlab::Database::Migration[2.1]
+ include Gitlab::Database::PartitioningMigrationHelpers::UniquenessHelpers
+
+ enable_lock_retries!
+
+ TABLE_NAME = :p_ci_builds
+ FUNCTION_NAME = :assign_p_ci_builds_id_value
+
+ def up
+ ensure_unique_id(TABLE_NAME)
+ end
+
+ def down
+ execute(<<~SQL.squish)
+ ALTER TABLE #{TABLE_NAME}
+ ALTER COLUMN id SET DEFAULT nextval('ci_builds_id_seq'::regclass);
+
+ DROP FUNCTION IF EXISTS #{FUNCTION_NAME} CASCADE;
+ SQL
+ end
+```
+
+### Step 9 - Analyze the partitioned table and create new partitions
+
+The autovacuum daemon does not process partitioned tables. It is necessary to
+periodically run a manual `ANALYZE` to keep the statistics of the table hierarchy
+up to date.
+
+Models that implement `Ci::Partitionable` with `partitioned: true` option are
+analyzed by default on a weekly basis. To enable this and create new partitions
+you need to register the model in the [PostgreSQL initializer](https://gitlab.com/gitlab-org/gitlab/-/blob/b7f0e3f1bcd2ffc220768bbc373364151775ca8e/config/initializers/postgres_partitioning.rb).
+
+### Step 10 - Update the application to use the partitioned table
+
+Now that the parent table is ready, we can update the application to use it:
+
+```ruby
+class Model < ApplicationRecord
+ self.table_name = :partitioned_table
+end
+```
+
+Depending on the model, it might be safer to use a [change management issue](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/16387).
diff --git a/doc/development/database_review.md b/doc/development/database_review.md
index ec4c4f9f2c5..2bb2a6fc267 100644
--- a/doc/development/database_review.md
+++ b/doc/development/database_review.md
@@ -29,7 +29,7 @@ A database review is required for:
These metrics could have complex queries over large tables.
See the [Analytics Instrumentation Guide](https://about.gitlab.com/handbook/product/analytics-instrumentation-guide/)
for implementation details.
-- Changes that use [`update`, `delete`, `update_all`, `delete_all` or `destroy_all`](#preparation-when-using-update-delete-update_all-delete_all-or-destroy_all)
+- Changes that use [`update`, `upsert`, `delete`, `update_all`, `upsert_all`, `delete_all` or `destroy_all`](#preparation-when-using-bulk-update-operations)
methods on an ActiveRecord object.
A database reviewer is expected to look out for overly complex
@@ -113,7 +113,7 @@ the following preparations into account.
#### Preparation when adding migrations
- Ensure `db/structure.sql` is updated as [documented](migration_style_guide.md#schema-changes), and additionally ensure that the relevant version files under
-`db/schema_migrations` were added or removed.
+ `db/schema_migrations` were added or removed.
- Ensure that the Database Dictionary is updated as [documented](database/database_dictionary.md).
- Make migrations reversible by using the `change` method or include a `down` method when using `up`.
- Include either a rollback procedure or describe how to rollback changes.
@@ -153,7 +153,7 @@ Include in the MR description:
- Write the raw SQL in the MR description. Preferably formatted
nicely with [pgFormatter](https://sqlformat.darold.net) or
<https://paste.depesz.com> and using regular quotes
- (for example, `"projects"."id"`) and avoiding smart quotes (for example, `"projects"."id"`).
+ (for example, `"projects"."id"`) and avoiding smart quotes (for example, `“projectsâ€.“idâ€`).
- In case of queries generated dynamically by using parameters, there should be one raw SQL query for each variation.
For example, a finder for issues that may take as a parameter an optional filter on projects,
@@ -227,9 +227,10 @@ Include in the MR description:
- If you're adding a composite index, another index might become redundant, so remove that in the same migration.
For example adding `index(column_A, column_B, column_C)` makes the indexes `index(column_A, column_B)` and `index(column_A)` redundant.
-#### Preparation when using `update`, `delete`, `update_all`, `delete_all` or `destroy_all`
+#### Preparation when using bulk update operations
-Using these ActiveRecord methods requires extra care because they modify data and can perform poorly, or they
+Using `update`, `upsert`, `delete`, `update_all`, `upsert_all`, `delete_all` or `destroy_all`
+ActiveRecord methods requires extra care because they modify data and can perform poorly, or they
can destroy data if improperly scoped. These methods are also
[incompatible with Common Table Expression (CTE) statements](sql.md#when-to-use-common-table-expressions).
Danger will comment on a Merge Request Diff when these methods are used.
diff --git a/doc/development/distributed_tracing.md b/doc/development/distributed_tracing.md
index 86732c3a8ac..ad41d21a9e7 100644
--- a/doc/development/distributed_tracing.md
+++ b/doc/development/distributed_tracing.md
@@ -93,9 +93,9 @@ concern, some instrumentations are disabled by default. To enable those disabled
instrumentations, set the following environment variables:
- `GITLAB_TRACING_TRACK_CACHES`: enable tracking cache operations, such as cache
-read, write, or delete.
+ read, write, or delete.
- `GITLAB_TRACING_TRACK_REDIS`: enable tracking Redis operations. Most Redis
-operations are for caching, though.
+ operations are for caching, though.
## Using Jaeger in the GitLab Development Kit
diff --git a/doc/development/documentation/alpha_beta.md b/doc/development/documentation/alpha_beta.md
deleted file mode 100644
index 4579c57b448..00000000000
--- a/doc/development/documentation/alpha_beta.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'experiment_beta.md'
-remove_date: '2023-11-29'
----
-
-This document was moved to [another location](experiment_beta.md).
-
-<!-- This redirect file can be deleted after <2023-11-29>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/documentation/experiment_beta.md b/doc/development/documentation/experiment_beta.md
index 85f6dc38621..96e8d6fb638 100644
--- a/doc/development/documentation/experiment_beta.md
+++ b/doc/development/documentation/experiment_beta.md
@@ -32,7 +32,7 @@ On self-managed GitLab, by default this feature is not available.
To make it available, an administrator can enable the feature flag named `example_flag`.
On GitLab.com, this feature is not available. This feature is not ready for production use.
-Use this great new feature when you need to do this new thing.
+Use this new feature when you need to do this new thing.
This feature is an [Experiment](<link_to>/policy/experiment-beta-support.md). To join
the list of users testing this feature, do this thing. If you find a bug,
diff --git a/doc/development/documentation/feature_flags.md b/doc/development/documentation/feature_flags.md
index 617691e8628..637b2d163e7 100644
--- a/doc/development/documentation/feature_flags.md
+++ b/doc/development/documentation/feature_flags.md
@@ -17,7 +17,7 @@ When the state of a feature flag changes, the developer who made the change
Every feature introduced to the codebase, even if it's behind a disabled feature flag,
must be documented. For more information, see
-[the discussion that led to this decision](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47917#note_459984428). [Experiment or Beta](../../policy/experiment-beta-support.md) features are usually behind a feature flag, and must also be documented. For more information, see [Document Experiment or Beta features](alpha_beta.md).
+[the discussion that led to this decision](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47917#note_459984428). [Experiment or Beta](../../policy/experiment-beta-support.md) features are usually behind a feature flag, and must also be documented. For more information, see [Document Experiment or Beta features](experiment_beta.md).
When the feature is [implemented in multiple merge requests](../feature_flags/index.md#feature-flags-in-gitlab-development),
discuss the plan with your technical writer.
diff --git a/doc/development/documentation/metadata.md b/doc/development/documentation/metadata.md
index 4e80ea154b3..e6eff56d66d 100644
--- a/doc/development/documentation/metadata.md
+++ b/doc/development/documentation/metadata.md
@@ -32,11 +32,48 @@ To populate the metadata, include this information:
- `info`: How to find the Technical Writer associated with the page's stage and
group.
+### Exceptions
+
+Documents in the `/development` directory get this metadata:
+
+```yaml
+---
+stage: Example Stage
+group: Example Group
+info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
+---
+```
+
+Documents in the `/solutions` directory get this metadata:
+
+```yaml
+---
+stage: Solutions Architecture
+group: Solutions Architecture
+info: This page is owned by the Solutions Architecture team.
+---
+```
+
+## Description metadata
+
+The `description` tag:
+
+- Is used to populate text on the docs home page.
+- Is shown in social media previews.
+- Can be used in search result snippets.
+
+For the top-level pages, like **Use GitLab** and one level underneath,
+the descriptions are lists of nouns. For example, for **Set up your organization**,
+the description is `Users, groups, namespaces, SSH keys.`
+
+For other pages, descriptions are not actively maintained. However, if you want to add one,
+use a short description of what the page is about.
+See the Google [Best practices for creating quality meta descriptions](https://developers.google.com/search/docs/appearance/snippet#meta-descriptions) for tips.
+
## Additional metadata
The following metadata is optional and is not actively maintained.
-- `description`: A short description of what the page is about. See the Google [Best practices for creating quality meta descriptions](https://developers.google.com/search/docs/appearance/snippet#meta-descriptions) for writing tips. This content can be used in search result snippets and is shown in social media previews.
- `feedback`: Set to `false` to not include the "Help & Feedback" footer.
- `noindex`: Set to `false` to prevent the page from being indexed by search engines.
- `redirect_to`: Used to control redirects. For more information, see [Redirects in GitLab documentation](redirects.md).
diff --git a/doc/development/documentation/site_architecture/global_nav.md b/doc/development/documentation/site_architecture/global_nav.md
index 0dfe538cfbd..be10688766f 100644
--- a/doc/development/documentation/site_architecture/global_nav.md
+++ b/doc/development/documentation/site_architecture/global_nav.md
@@ -26,6 +26,11 @@ For example:
While some older sections of the nav are alphabetical, the nav should primarily be workflow-based.
+Without a navigation entry:
+
+- The navigation closes when the page is opened, and the reader loses their place.
+- The page isn't visible in a group with other pages.
+
## Choose the right words for your navigation entry
Before you add an item to the left nav, choose the parts of speech you want to use.
@@ -41,35 +46,14 @@ as helpful as **Get started with runners**.
## Add a navigation entry
-To add a topic to the global nav, edit
-[`navigation.yaml`](https://gitlab.com/gitlab-org/gitlab-docs/blob/main/content/_data/navigation.yaml)
-and add your item.
-
-Without a navigation entry:
-
-- The navigation closes when the page is opened, and the reader loses their place.
-- The page isn't visible in a group with other pages.
-
-### Pages you don't need to add
-
-Exclude these pages from the global nav:
-
-- Legal notices.
-- Pages in the `architecture/blueprints` directory.
-- Pages in the `user/application_security/dast/checks/` directory.
-
-The following pages should probably be in the global nav, but the technical writers
-do not actively work to add them:
-
-- Pages in the `/development` directory.
-- Pages authored by the support team, which are under the `doc/administration/troubleshooting` directory.
+**Do not** add items to the global nav without
+the consent of one of the technical writers.
-Sometimes pages for deprecated features are not in the global nav, depending on how long ago the feature was deprecated.
+To add a topic to the global navigation:
-All other pages should be in the global nav.
-
-The technical writing team runs a report to determine which pages are not in the nav.
-The team reviews this list each month.
+1. In the [`navigation.yaml`](https://gitlab.com/gitlab-org/gitlab-docs/blob/main/content/_data/navigation.yaml)
+ file, add the item.
+1. Assign the MR to a technical writer for review and merge.
### Where to add
@@ -110,7 +94,28 @@ mechanics of what is required is [documented below](#data-file) but, in principl
substitution for **Continuous Integration**.
- Navigation links must follow the rules documented in the [data file](#data-file).
-## How it works
+### Pages you don't need to add
+
+Exclude these pages from the global nav:
+
+- Legal notices.
+- Pages in the `architecture/blueprints` directory.
+- Pages in the `user/application_security/dast/checks/` directory.
+
+The following pages should probably be in the global nav, but the technical writers
+do not actively work to add them:
+
+- Pages in the `/development` directory.
+- Pages authored by the support team, which are under the `doc/administration/troubleshooting` directory.
+
+Sometimes pages for deprecated features are not in the global nav, depending on how long ago the feature was deprecated.
+
+All other pages should be in the global nav.
+
+The technical writing team runs a report to determine which pages are not in the nav.
+The team reviews this list each month.
+
+## Navigation structure
The global nav has five levels:
@@ -122,9 +127,6 @@ The global nav has five levels:
You can view this structure in [the `navigation.yml` file](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/main/content/_data/navigation.yaml).
-**Do not** [add items](#add-a-navigation-entry) to the global nav without
-the consent of one of the technical writers.
-
## Composition
The global nav is built from two files:
diff --git a/doc/development/documentation/styleguide/index.md b/doc/development/documentation/styleguide/index.md
index 26660d2eba1..a18b376a1cc 100644
--- a/doc/development/documentation/styleguide/index.md
+++ b/doc/development/documentation/styleguide/index.md
@@ -243,7 +243,7 @@ by default.
Capitalize names of:
- GitLab [product tiers](https://about.gitlab.com/pricing/). For example,
- GitLab Free and GitLab Ultimate. (Tested in [`BadgeCapitalization.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/.vale/gitlab/BadgeCapitalization.yml).)
+ GitLab Free and GitLab Ultimate.
- Third-party organizations, software, and products. For example, Prometheus,
Kubernetes, Git, and The Linux Foundation.
- Methods or methodologies. For example, Continuous Integration,
@@ -351,10 +351,10 @@ For numbers in text, spell out zero through nine and use numbers for 10 and grea
- [Write in Markdown](#markdown).
- Insert an empty line for new paragraphs.
- Insert an empty line between different markups (for example, after every
- paragraph, header, list, and so on). Example:
+ paragraph, heading, list, and so on). Example:
```markdown
- ## Header
+ ## Heading
Paragraph.
@@ -692,9 +692,9 @@ Markdown tables naturally fall out of alignment over time, but still render corr
on `docs.gitlab.com`. The technical writing team can realign cells the next time
the page is refactored.
-### Table headings
+### Table headers
-Use sentence case for table headings. For example, `Keyword value` or `Project name`.
+Use sentence case for table headers. For example, `Keyword value` or `Project name`.
### Feature tables
@@ -1140,7 +1140,7 @@ When you take screenshots:
Reduce the size of your browser window as much as possible to keep elements close
together and reduce empty space. Try to keep the screenshot dimensions as small as possible.
- **Review how the image renders on the page.** Preview the image locally or use the
-review app in the merge request. Make sure the image isn't blurry or overwhelming.
+ review app in the merge request. Make sure the image isn't blurry or overwhelming.
- **Be consistent.** Coordinate screenshots with the other screenshots already on
a documentation page for a consistent reading experience. Ensure your navigation theme
is **Indigo** and the syntax highlighting theme is **Light**. These are the default preferences.
@@ -1237,8 +1237,7 @@ and annoying for users.
If you're describing a complicated interaction in the user interface and want to
include a visual representation to help readers understand it, you can:
-- Use a static image (screenshot) and if necessary, add callouts to emphasize an
- an area of the screen.
+- Use a static image (screenshot) and if necessary, add callouts to emphasize an area of the screen.
- Create a short video of the interaction and link to it.
### Automatic screenshot generator
@@ -1349,12 +1348,14 @@ Do not upload videos to the product repositories. [Link](#link-to-video) or
### Link to video
-To link out to a video, include a YouTube icon so that readers can scan the page
-for videos before reading:
+To link to a video, include a YouTube icon so that readers can scan the page
+for videos before reading. Include the video's publication date after the link, to help identify
+videos that might be out-of-date.
```markdown
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview, see [Video Title](link-to-video).
+<!-- Video published on YYYY-MM-DD -->
```
You can link any up-to-date video that's useful to the GitLab user.
@@ -1384,6 +1385,8 @@ To embed a video:
(`https://www.youtube-nocookie.com/embed/VIDEO-ID`),
and paste it, replacing the content of the `src` field in the
`iframe` tag.
+1. Include the video's publication date below the link, to help identify
+ videos that might be out-of-date.
```html
leave a blank line here
@@ -1393,6 +1396,7 @@ leave a blank line here
<figure class="video-container">
<iframe src="https://www.youtube-nocookie.com/embed/MqL6BMOySIQ" frameborder="0" allowfullscreen> </iframe>
</figure>
+<!-- Video published on YYYY-MM-DD -->
leave a blank line here
```
@@ -1434,7 +1438,7 @@ NOTE:
This is something to note.
```
-To display an alert box for multiple paragraphs, lists, or headers, use
+To display an alert box for multiple paragraphs, lists, or headings, use
[blockquotes](#blockquotes) instead.
Alert boxes render only on the GitLab documentation site (<https://docs.gitlab.com>).
@@ -1636,13 +1640,37 @@ When names change, it is more complicated to search or grep text that has line b
Tier badges provide information about a feature and are displayed next to the topic title.
-You should assign a tier badge:
+#### When to add tier badges
-- To all H1 topic titles, except the pages under `doc/development/*`.
-- To topic titles that don't apply to the same tier as the H1.
+Assign tier badges to:
+
+- All H1 topic titles, except the pages under `doc/development/*` and `doc/solutions/*`.
+- Topic titles that don't apply to the same tier as the H1.
The H1 tier badge should be the badge that applies to the lowest tier for the features on the page.
+#### When not to add tier badges
+
+Do not assign tier badges:
+
+- When a feature does not have one obvious subscription tier or offering.
+ For example, if a feature applies to one tier for SaaS and a different tier for self-managed.
+
+In this case, do any or all of the following:
+
+- Use a `NOTE` in an alert box to describe the tiers.
+- Add tier badges to other topic titles where this information makes more sense.
+- Do not add tier badges to the H1.
+
+##### Pages that don't need a tier badge
+
+Some pages won't have a tier badge, because no obvious tier badge applies. For example:
+
+- Tutorials.
+- Pages that compare features from different tiers.
+- Pages in the `/development` folder. These pages are automatically assigned a `Contribute` badge.
+- Pages in the `/solutions` folder. These pages are automatically assigned a `Solutions` badge.
+
#### Available product tier badges
Tier badges should include two components, in this order: a subscription tier and an offering.
@@ -1667,7 +1695,9 @@ You can also add a third component for the feature's status:
For example, `**(FREE ALL EXPERIMENT)**`.
-A tier or status can stand alone. An offering should always have a tier.
+- A tier or status can stand alone.
+- An offering should always have a tier.
+- Do not add more than one offering, tier, or status. Multiples do not render properly in the documentation.
#### Add a tier badge
@@ -1697,15 +1727,6 @@ Do not add tier badges inline with other text, except for [API attributes](../re
The single source of truth for a feature should be the topic where the
functionality is described.
-##### Pages that don't need a tier badge
-
-Some pages won't have a tier badge, because no obvious tier badge applies. For example:
-
-- Tutorials.
-- Pages that compare features from different tiers.
-- Pages in the `/development` folder. These pages are automatically assigned a `Contribute` badge.
-- Pages in the `/solutions` folder. These pages are automatically assigned a `Solutions` badge.
-
##### Administrator documentation tier badges
Topics that are only for instance administrators should be badged `<TIER> SELF`. Instance
diff --git a/doc/development/documentation/styleguide/word_list.md b/doc/development/documentation/styleguide/word_list.md
index 9d0d59e27c5..fed295b8ec9 100644
--- a/doc/development/documentation/styleguide/word_list.md
+++ b/doc/development/documentation/styleguide/word_list.md
@@ -130,6 +130,10 @@ The token generated when you create an agent for Kubernetes. Use **agent access
Use **AI**. Do not spell out **artificial intelligence**.
+## AI-powered DevSecOps platform
+
+If preceded by GitLab, capitalize **Platform**. For example, the GitLab AI-powered DevSecOps Platform.
+
## air gap, air-gapped
Use **offline environment** to describe installations that have physical barriers or security policies that prevent or limit internet access. Do not use **air gap**, **air gapped**, or **air-gapped**. For example:
@@ -239,6 +243,22 @@ Use **text box** to refer to the UI field. Do not use **field** or **box**. For
- In the **Variable name** text box, enter a value.
+## branch
+
+Use **branch** by itself to describe a branch. For specific branches, use these terms only:
+
+- **default branch**: The primary branch in the repository. Users can use the UI to set the default
+ branch. For examples that use the default branch, use `main` instead of [`master`](#master).
+- **source branch**: The branch you're merging from.
+- **target branch**: The branch you're merging to.
+- **current branch**: The branch you have checked out.
+ This branch might be the default branch, a branch you've created, a source branch, or some other branch.
+
+Do not use the terms **feature branch** or **merge request branch**. Be as specific as possible. For example:
+
+- The branch you have checked out...
+- The branch you added commits to...
+
## bullet
Don't refer to individual items in an ordered or unordered list as **bullets**. Use **list item** instead. If you need to be less ambiguous, you can use:
@@ -428,13 +448,6 @@ Instead of:
- Data are collected.
- The data show a performance increase.
-## default branch
-
-Use **default branch** to refer generically to the primary branch in the repository.
-Users can set the default branch by using a UI setting.
-
-For examples that use the default branch, use `main` instead of [`master`](#master).
-
## delete
Use **delete** when an object is completely deleted. **Delete** is the opposite of **create**.
@@ -464,6 +477,10 @@ When writing about the Developer role:
Do not use **Developer permissions**. A user who is assigned the Developer role has a set of associated permissions.
+## DevSecOps platform
+
+If preceded by GitLab, capitalize **Platform**. For example, the GitLab DevSecOps Platform.
+
## dialog
Use **dialog** rather than any of these alternatives:
@@ -661,6 +678,10 @@ Instead of:
- Use the merge request feature to incorporate changes into the target branch.
+## feature branch
+
+Do not use **feature branch**. See [branch](#branch).
+
## field
Use **text box** instead of **field** or **box**.
@@ -1083,7 +1104,7 @@ Do not use **manpower**. Use words like **workforce** or **GitLab team members**
## master
-Do not use `master`. Use `main` when you need a sample [default branch name](#default-branch).
+Do not use **master**. Use **main** when you need a sample [default branch name](#branch).
([Vale](../testing.md#vale) rule: [`InclusionCultural.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/.vale/gitlab/InclusionCultural.yml))
## may, might
@@ -1115,6 +1136,10 @@ For **MB** and **GB**, follow the [Microsoft guidance](https://learn.microsoft.c
When you add a [user account](#user-account) to a group or project,
the user account becomes a **member**.
+## merge request branch
+
+Do not use **merge request branch**. See [branch](#branch).
+
## merge requests
Use lowercase for **merge requests**. If you use **MR** as the acronym, spell it out on first use.
@@ -1570,7 +1595,7 @@ Searching is different from [filtering](#filter).
When referring to the subscription billing model:
- For GitLab SaaS, use **seats**. Customers purchase seats. Users occupy seats when they are invited
-to a group, with some [exceptions](../../../subscriptions/gitlab_com/index.md#how-seat-usage-is-determined).
+ to a group, with some [exceptions](../../../subscriptions/gitlab_com/index.md#how-seat-usage-is-determined).
- For GitLab self-managed, use **users**. Customers purchase subscriptions for a specified number of **users**.
## section
diff --git a/doc/development/documentation/testing.md b/doc/development/documentation/testing.md
index 62df2395fbb..8a38b0ed0e4 100644
--- a/doc/development/documentation/testing.md
+++ b/doc/development/documentation/testing.md
@@ -492,6 +492,7 @@ command line.
To configure markdownlint in your editor, install one of the following as appropriate:
+- Visual Studio Code [`DavidAnson.vscode-markdownlint` extension](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint).
- Sublime Text [`SublimeLinter-contrib-markdownlint` package](https://packagecontrol.io/packages/SublimeLinter-contrib-markdownlint).
This package uses `markdownlint-cli` by default, but can be configured to use `markdownlint-cli2` with this
SublimeLinter configuration:
@@ -502,11 +503,20 @@ To configure markdownlint in your editor, install one of the following as approp
}
```
-- Visual Studio Code [`DavidAnson.vscode-markdownlint` extension](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint).
- Vim [ALE plugin](https://github.com/dense-analysis/ale).
+- Emacs [Flycheck extension](https://github.com/flycheck/flycheck). `Flycheck` supports
+ `markdownlint-cli` out of the box, but you must add a `.dir-locals.el` file to
+ point it to the `.markdownlint.yml` at the base of the project directory:
+
+ ```lisp
+ ;; Place this code in a file called `.dir-locals.el` at the root of the gitlab project.
+ ((markdown-mode . ((flycheck-markdown-markdownlint-cli-config . ".markdownlint.yml"))))
+ ```
To configure Vale in your editor, install one of the following as appropriate:
+- Visual Studio Code [`ChrisChinchilla.vale-vscode` extension](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vale-vscode).
+ You can configure the plugin to [display only a subset of alerts](#show-subset-of-vale-alerts).
- Sublime Text [`SublimeLinter-vale` package](https://packagecontrol.io/packages/SublimeLinter-vale). To have Vale
suggestions appears as blue instead of red (which is how errors appear), add `vale` configuration to your
[SublimeLinter](http://sublimelinter.readthedocs.org) configuration:
@@ -522,26 +532,12 @@ To configure Vale in your editor, install one of the following as appropriate:
```
- [LSP for Sublime Text](https://lsp.sublimetext.io) package [`LSP-vale-ls`](https://packagecontrol.io/packages/LSP-vale-ls).
-- Visual Studio Code [`ChrisChinchilla.vale-vscode` extension](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vale-vscode).
- You can configure the plugin to [display only a subset of alerts](#show-subset-of-vale-alerts).
- Vim [ALE plugin](https://github.com/dense-analysis/ale).
- JetBrains IDEs - No plugin exists, but
[this issue comment](https://github.com/errata-ai/vale-server/issues/39#issuecomment-751714451)
contains tips for configuring an external tool.
-- Emacs [Flycheck extension](https://github.com/flycheck/flycheck).
- This requires some configuration:
-
- - `Flycheck` supports `markdownlint-cli` out of the box, but you must point it
- to the `.markdownlint.yml` at the base of the project directory. A `.dir-locals.el`
- file can accomplish this:
-
- ```lisp
- ;; Place this code in a file called `.dir-locals.el` at the root of the gitlab project.
- ((markdown-mode . ((flycheck-markdown-markdownlint-cli-config . ".markdownlint.yml"))))
-
- ```
-
- - A minimal configuration for Flycheck to work with Vale could look like this:
+- Emacs [Flycheck extension](https://github.com/flycheck/flycheck). A minimal configuration
+ for Flycheck to work with Vale could look like:
```lisp
(flycheck-define-checker vale
diff --git a/doc/development/documentation/topic_types/troubleshooting.md b/doc/development/documentation/topic_types/troubleshooting.md
index aee5bd1377c..f970b58e4fc 100644
--- a/doc/development/documentation/topic_types/troubleshooting.md
+++ b/doc/development/documentation/topic_types/troubleshooting.md
@@ -64,7 +64,7 @@ The workaround is...
If multiple causes or solutions exist, consider putting them into a table format.
If you use the exact error message, surround it in backticks so it's styled as code.
-For more guidance on solution types, see [workaround](../../documentation/styleguide/word_list.md#workaround) and [resolution, resolve](../../documentation/styleguide/word_list.md#resolution-resolve).
+For more guidance on solution types, see [workaround](../../documentation/styleguide/word_list.md#workaround) and [resolution, resolve](../../documentation/styleguide/word_list.md#resolution-resolve).
## Troubleshooting topic titles
diff --git a/doc/development/ee_features.md b/doc/development/ee_features.md
index 08045675295..78177612aa9 100644
--- a/doc/development/ee_features.md
+++ b/doc/development/ee_features.md
@@ -200,7 +200,7 @@ To guard your licensed feature:
```
1. Optional. If your global feature is also available to namespaces with a paid plan, combine two
-feature identifiers to allow both administrators and group users. For example:
+ feature identifiers to allow both administrators and group users. For example:
```ruby
License.feature_available?(:my_feature_name) || group.licensed_feature_available?(:my_feature_name_for_namespace) # Both admins and group members can see this EE feature
diff --git a/doc/development/fe_guide/architecture.md b/doc/development/fe_guide/architecture.md
index 971c527ef68..75a815925ab 100644
--- a/doc/development/fe_guide/architecture.md
+++ b/doc/development/fe_guide/architecture.md
@@ -24,7 +24,7 @@ This structure allows the group to think through a proposed change, gather feedb
### Design Documents
-When the work ahead may affect more than a single group, stage or potentially an entirement department (for example, all of the Frontend team) then it is likely that there is need for a [Design Document](https://about.gitlab.com/handbook/engineering/architecture/workflow/).
+When the work ahead may affect more than a single group, stage or potentially an entire department (for example, all of the Frontend team) then it is likely that there is need for a [Design Document](https://about.gitlab.com/handbook/engineering/architecture/workflow/).
This is well documented in the handbook, but to touch on it shortly, it is **the best way** to propose large changes and gather the required feedback and support to move forward. These documents are version controlled, keep evolving with time and are a great way to share a complex understanding across the entire organization. They also require a coach, which is a great way to involve someone with a lot of experience with larger changes. This process is shared across all engineering departments and is owned by the CTO.
@@ -57,9 +57,9 @@ Very small changes may have a very broad impact. For example, a change to any ES
For recommending certain code patterns in our documentation, you can write the MR that apply your proposed change, share it broadly with the department and if no strong objections are raised, merge your change. This is more efficient than RFCs because of the bias for action, while also gathering all the feedback necessary for everyone to feel included.
-If you'd like to propose a major change to the technological stack (Vue to React, JavaScript to TypeScript, etc.), start by reaching out on Slack to gauge interest. Always ask yourself whether or not the problems that you see can be fixed from our current tech stack, as we should always try to fix our problems with the tools we already have. Other departments, such as Backend and QA, do not have a clear process to propose technological changes either. That is because these changes would require huge investements from the company and probably cannot be decided without involving high-ranking executives from engineering.
+If you'd like to propose a major change to the technological stack (Vue to React, JavaScript to TypeScript, etc.), start by reaching out on Slack to gauge interest. Always ask yourself whether or not the problems that you see can be fixed from our current tech stack, as we should always try to fix our problems with the tools we already have. Other departments, such as Backend and QA, do not have a clear process to propose technological changes either. That is because these changes would require huge investments from the company and probably cannot be decided without involving high-ranking executives from engineering.
-Instead, consider starting a Design Document that explains the problem and try to solve it with our current tools. Invite contribution from the department and research this thoroughly as there can only be two outcomes. Either the problem **can** be solved with our current tools or it cannot. If it can, this is a huge with for our teams since we've fixed and issue without the need to completly change our stack, and if it cannot, then the Design Document can be the start of the larger conversation around the technological change.
+Instead, consider starting a Design Document that explains the problem and try to solve it with our current tools. Invite contribution from the department and research this thoroughly as there can only be two outcomes. Either the problem **can** be solved with our current tools or it cannot. If it can, this is a huge win for our teams since we've fixed an issue without the need to completely change our stack, and if it cannot, then the Design Document can be the start of the larger conversation around the technological change.
## Widget Architecture
diff --git a/doc/development/fe_guide/content_editor.md b/doc/development/fe_guide/content_editor.md
index 7a76b39edbc..64cf7de75ab 100644
--- a/doc/development/fe_guide/content_editor.md
+++ b/doc/development/fe_guide/content_editor.md
@@ -46,7 +46,7 @@ export default {
The rich text editor requires two properties:
- `renderMarkdown` is an asynchronous function that returns the response (String) of invoking the
-[Markdown API](../../api/markdown.md).
+ [Markdown API](../../api/markdown.md).
- `uploadsPath` is a URL that points to a [GitLab upload service](../uploads/index.md)
with `multipart/form-data` support.
diff --git a/doc/development/fe_guide/customizable_dashboards.md b/doc/development/fe_guide/customizable_dashboards.md
index 93b5b20b047..9ba0d4bb40c 100644
--- a/doc/development/fe_guide/customizable_dashboards.md
+++ b/doc/development/fe_guide/customizable_dashboards.md
@@ -98,7 +98,7 @@ export const pageViewsOverTime = {
To add a new visualization render type:
1. Create a new Vue component that accepts `data` and `options` properties.
-See [`line_chart.vue`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/assets/javascripts/analytics/analytics_dashboards/components/visualizations/line_chart.vue) as an example.
+ See [`line_chart.vue`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/assets/javascripts/analytics/analytics_dashboards/components/visualizations/line_chart.vue) as an example.
1. Add your component to the list of conditional imports in [`panel_base.vue`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/assets/javascripts/vue_shared/components/customizable_dashboard/panels_base.vue#L13).
1. Add your component to the schema's list of `AnalyticsVisualization` types in [`analytics_visualizations.json`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/validators/json_schemas/analytics_visualization.json).
diff --git a/doc/development/fe_guide/design_anti_patterns.md b/doc/development/fe_guide/design_anti_patterns.md
deleted file mode 100644
index e0d3a80d9c8..00000000000
--- a/doc/development/fe_guide/design_anti_patterns.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-redirect_to: 'design_patterns.md'
-remove_date: '2023-12-07'
----
-
-This document was moved to [another location](design_patterns.md).
-
-<!-- This redirect file can be deleted after <2023-12-07>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/fe_guide/frontend_faq.md b/doc/development/fe_guide/frontend_faq.md
index b8e98b47cac..0ab64841365 100644
--- a/doc/development/fe_guide/frontend_faq.md
+++ b/doc/development/fe_guide/frontend_faq.md
@@ -202,3 +202,10 @@ To see what polyfills are being used:
### 9. Why is my page broken in dark mode?
See [dark mode docs](dark_mode.md)
+
+### 10. How to render GitLab-flavored Markdown?
+
+If you need to render [GitLab-flavored Markdown](../gitlab_flavored_markdown/index.md), then there are two things that you require:
+
+- Pass the GLFM content with the `v-safe-html` directive to a `div` HTML element inside your Vue component
+- Add the `md` class to the root div, which will apply the appropriate CSS styling
diff --git a/doc/development/fe_guide/graphql.md b/doc/development/fe_guide/graphql.md
index 22b977519be..bd35d8f237f 100644
--- a/doc/development/fe_guide/graphql.md
+++ b/doc/development/fe_guide/graphql.md
@@ -1671,7 +1671,7 @@ When [using Vuex](#using-with-vuex), disable the cache when:
- The data is being cached elsewhere
- The use case does not need caching
-if the data is being cached elsewhere, or if there is no need for it for the given use case.
+ if the data is being cached elsewhere, or if there is no need for it for the given use case.
```javascript
import createDefaultClient from '~/lib/graphql';
@@ -1767,12 +1767,12 @@ To improve performance, sometimes we want to make initial GraphQL queries early.
```
- Add startup calls with correct variables to the HAML file that serves as a view
-for your application. To add GraphQL startup calls, we use
-`add_page_startup_graphql_call` helper where the first parameter is a path to the
-query, the second one is an object containing query variables. Path to the query is
-relative to `app/graphql/queries` folder: for example, if we need a
-`app/graphql/queries/repository/files.query.graphql` query, the path is
-`repository/files`.
+ for your application. To add GraphQL startup calls, we use
+ `add_page_startup_graphql_call` helper where the first parameter is a path to the
+ query, the second one is an object containing query variables. Path to the query is
+ relative to `app/graphql/queries` folder: for example, if we need a
+ `app/graphql/queries/repository/files.query.graphql` query, the path is
+ `repository/files`.
## Troubleshooting
diff --git a/doc/development/fe_guide/haml.md b/doc/development/fe_guide/haml.md
index 88f4a785a70..4a6b349bbc8 100644
--- a/doc/development/fe_guide/haml.md
+++ b/doc/development/fe_guide/haml.md
@@ -20,8 +20,8 @@ used in HAML:
- Some of the Pajamas components are available as a [ViewComponent](view_component.md#pajamas-components). Use these when possible.
- If no ViewComponent exists, why not go ahead and create it? Talk to the Foundations team if you need help.
- As a fallback, this can be done by applying the correct CSS classes to the elements.
-- A custom
-[Ruby on Rails form builder](https://gitlab.com/gitlab-org/gitlab/-/blob/7c108df101e86d8a27d69df2b5b1ff1fc24133c5/lib/gitlab/form_builders/gitlab_ui_form_builder.rb) exists to help use GitLab UI components in HAML forms.
+- A custom [Ruby on Rails form builder](https://gitlab.com/gitlab-org/gitlab/-/blob/7c108df101e86d8a27d69df2b5b1ff1fc24133c5/lib/gitlab/form_builders/gitlab_ui_form_builder.rb)
+ exists to help use GitLab UI components in HAML forms.
### Use the GitLab UI form builder
diff --git a/doc/development/fe_guide/storybook.md b/doc/development/fe_guide/storybook.md
index 05d4397933f..f0233f71ad2 100644
--- a/doc/development/fe_guide/storybook.md
+++ b/doc/development/fe_guide/storybook.md
@@ -68,7 +68,7 @@ To add a story with API access:
If you test against `gitlab.com`, make sure to use a token with `read_api` if possible and to make the token short-lived.
1. Create an `.env` file in the `storybook` directory. Use the `storybook/.env.template` file as
-a starting point.
+ a starting point.
1. Set the `API_ACCESS_TOKEN` variable to the access token that you created.
diff --git a/doc/development/fe_guide/style/vue.md b/doc/development/fe_guide/style/vue.md
index 83d725d453b..870a4c51915 100644
--- a/doc/development/fe_guide/style/vue.md
+++ b/doc/development/fe_guide/style/vue.md
@@ -123,7 +123,7 @@ Check the [rules](https://github.com/vuejs/eslint-plugin-vue#bulb-rules) for mor
## Naming
1. **Extensions**: Use `.vue` extension for Vue components. Do not use `.js` as file extension
-([#34371](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/34371)).
+ ([#34371](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/34371)).
1. **Reference Naming**: Use PascalCase for their default imports:
```javascript
@@ -142,7 +142,7 @@ Check the [rules](https://github.com/vuejs/eslint-plugin-vue#bulb-rules) for mor
};
```
-1. **Props Naming:** Avoid using DOM component prop names.
+1. **Props Naming:** Avoid using DOM component prop names.
1. **Props Naming:** Use kebab-case instead of camelCase to provide props in templates.
```html
@@ -582,8 +582,8 @@ describe('MyComponent', () => {
### Setting component state
1. Avoid using [`setProps`](https://v1.test-utils.vuejs.org/api/wrapper/#setprops) to set
-component state wherever possible. Instead, set the component's
-[`propsData`](https://v1.test-utils.vuejs.org/api/options.html#propsdata) when mounting the component:
+ component state wherever possible. Instead, set the component's
+ [`propsData`](https://v1.test-utils.vuejs.org/api/options.html#propsdata) when mounting the component:
```javascript
// bad
@@ -603,7 +603,7 @@ component state wherever possible. Instead, set the component's
### Accessing component state
1. When accessing props or attributes, prefer the `wrapper.props('myProp')` syntax over
-`wrapper.props().myProp` or `wrapper.vm.myProp`:
+ `wrapper.props().myProp` or `wrapper.vm.myProp`:
```javascript
// good
@@ -616,7 +616,7 @@ component state wherever possible. Instead, set the component's
```
1. When asserting multiple props, check the deep equality of the `props()` object with
-[`toEqual`](https://jestjs.io/docs/expect#toequalvalue):
+ [`toEqual`](https://jestjs.io/docs/expect#toequalvalue):
```javascript
// good
@@ -633,8 +633,8 @@ component state wherever possible. Instead, set the component's
```
1. If you are only interested in some of the props, you can use
-[`toMatchObject`](https://jestjs.io/docs/expect#tomatchobjectobject). Prefer `toMatchObject`
-over [`expect.objectContaining`](https://jestjs.io/docs/expect#expectobjectcontainingobject):
+ [`toMatchObject`](https://jestjs.io/docs/expect#tomatchobjectobject). Prefer `toMatchObject`
+ over [`expect.objectContaining`](https://jestjs.io/docs/expect#expectobjectcontainingobject):
```javascript
// good
@@ -652,7 +652,7 @@ over [`expect.objectContaining`](https://jestjs.io/docs/expect#expectobjectconta
### Testing props validation
-1. When checking component props use `assertProps` helper. Props validation failures will be thrown as errors
+When checking component props use `assertProps` helper. Props validation failures will be thrown as errors:
```javascript
import { assertProps } from 'helpers/assert_props'
@@ -668,12 +668,12 @@ The goal of this accord is to make sure we are all on the same page.
1. When writing Vue, you may not use jQuery in your application.
1. If you need to grab data from the DOM, you may query the DOM 1 time while bootstrapping your
- application to grab data attributes using `dataset`. You can do this without jQuery.
+ application to grab data attributes using `dataset`. You can do this without jQuery.
1. You may use a jQuery dependency in Vue.js following [this example from the docs](https://vuejs.org/v2/examples/select2.html).
1. If an outside jQuery Event needs to be listen to inside the Vue application, you may use
- jQuery event listeners.
+ jQuery event listeners.
1. We avoid adding new jQuery events when they are not required. Instead of adding new jQuery
- events take a look at [different methods to do the same task](https://v2.vuejs.org/v2/api/#vm-emit).
+ events take a look at [different methods to do the same task](https://v2.vuejs.org/v2/api/#vm-emit).
1. You may query the `window` object one time, while bootstrapping your application for application
specific data (for example, `scrollTo` is ok to access anytime). Do this access during the
bootstrapping of your application.
diff --git a/doc/development/fe_guide/vue.md b/doc/development/fe_guide/vue.md
index 69967a5a2be..cf7659d0fc0 100644
--- a/doc/development/fe_guide/vue.md
+++ b/doc/development/fe_guide/vue.md
@@ -543,7 +543,7 @@ Based on the Vue guidance:
- **Do not** use or create a JavaScript class in your [data function](https://v2.vuejs.org/v2/api/#data).
- **Do not** add new JavaScript class implementations.
- **Do** use [GraphQL](../api_graphql_styleguide.md), [Vuex](vuex.md) or a set of components if
-cannot use primitives or objects.
+ cannot use primitives or objects.
- **Do** maintain existing implementations using such approaches.
- **Do** Migrate components to a pure object model when there are substantial changes to it.
- **Do** add business logic to helpers or utilities, so you can test them separately from your component.
@@ -555,7 +555,7 @@ Additional reasons why having a JavaScript class presents maintainability issues
- After a class is created, it can be extended in a way that can infringe Vue reactivity and best practices.
- A class adds a layer of abstraction, which makes the component API and its inner workings less clear.
- It makes it harder to test. Because the class is instantiated by the component data function, it is
-harder to 'manage' component and class separately.
+ harder to 'manage' component and class separately.
- Adding Object Oriented Principles (OOP) to a functional codebase adds another way of writing code, reducing consistency and clarity.
## Style guide
@@ -831,7 +831,7 @@ describe('~/todos/app.vue', () => {
1. Test any directive that defines if/how child component is rendered (for example, `v-if` and `v-for`).
1. Test any props we are passing to child components (especially if the prop is calculated in the
-component under test, with the `computed` property, for example). Remember to use `.props()` and not `.vm.someProp`.
+ component under test, with the `computed` property, for example). Remember to use `.props()` and not `.vm.someProp`.
1. Test we react correctly to any events emitted from child components:
```javascript
diff --git a/doc/development/feature_development.md b/doc/development/feature_development.md
index a5a6439b420..59785554ce6 100644
--- a/doc/development/feature_development.md
+++ b/doc/development/feature_development.md
@@ -97,6 +97,7 @@ Consult these topics for information on contributing to specific GitLab features
- [Application limits](application_limits.md)
- [AI features](ai_features/index.md)
- [Application settings](application_settings.md)
+- [Remote Development](remote_development/index.md)
### Import and Export
diff --git a/doc/development/feature_flags/index.md b/doc/development/feature_flags/index.md
index 17dd8432f7b..bea42d6340d 100644
--- a/doc/development/feature_flags/index.md
+++ b/doc/development/feature_flags/index.md
@@ -7,7 +7,7 @@ info: "See the Technical Writers assigned to Development Guidelines: https://han
# Feature flags in the development of GitLab
NOTE:
-This document explains how to contribute to the development of the GitLab product.
+This document explains how to contribute to the development and operations of the GitLab product.
If you want to use feature flags to show and hide functionality in your own applications,
view [this feature flags information](../../operations/feature_flags.md) instead.
@@ -17,6 +17,11 @@ All newly-introduced feature flags should be [disabled by default](https://about
WARNING:
All newly-introduced feature flags should be [used with an actor](controls.md#percentage-based-actor-selection).
+Blueprints:
+
+- (Latest) [Feature Flags usage in GitLab development and operations](../../architecture/blueprints/feature_flags_usage_in_dev_and_ops/index.md)
+- [Development Feature Flags Architecture](../../architecture/blueprints/feature_flags_development/index.md)
+
This document is the subject of continued work as part of an epic to [improve internal usage of feature flags](https://gitlab.com/groups/gitlab-org/-/epics/3551). Raise any suggestions as new issues and attach them to the epic.
For an [overview of the feature flag lifecycle](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#feature-flag-lifecycle), or if you need help deciding [if you should use a feature flag](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#when-to-use-feature-flags) or not, see the [feature flag lifecycle](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/) handbook page.
@@ -44,77 +49,147 @@ should be leveraged:
When the feature implementation is delivered over multiple merge requests:
1. [Create a new feature flag](#create-a-new-feature-flag)
- which is **off** by default, in the first merge request which uses the flag.
- Flags [should not be added separately](#risk-of-a-broken-main-branch).
+ which is **disabled** by default, in the first merge request which uses the flag.
+ Flags [should not be added separately](#risk-of-a-broken-default-branch).
1. Submit incremental changes via one or more merge requests, ensuring that any
- new code added can only be reached if the feature flag is **on**.
+ new code added can only be reached if the feature flag is **enabled**.
You can keep the feature flag enabled on your local GDK during development.
1. When the feature is ready to be tested by other team members, [create the initial documentation](../documentation/feature_flags.md#when-to-document-features-behind-a-feature-flag).
Include details about the status of the [feature flag](../documentation/feature_flags.md#how-to-add-feature-flag-documentation).
-1. Enable the feature flag for a specific project and ensure that there are no issues
+1. Enable the feature flag for a specific group/project/user and ensure that there are no issues
with the implementation. Do not enable the feature flag for a public project
- like `gitlab` if there is no documentation. Team members and contributors might search for
+ like `gitlab-org/gitlab` if there is no documentation. Team members and contributors might search for
documentation on how to use the feature if they see it enabled in a public project.
1. When the feature is ready for production use, open a merge request to:
- Update the documentation to describe the latest flag status.
- Add a [changelog entry](#changelog).
- - Flip the feature flag to be **on by default** or remove it entirely
- to enable the new behavior.
+ - Remove the feature flag to enable the new behavior, or flip the feature flag to be **enabled by default** (only for `ops` and `beta` feature flags).
One might be tempted to think that feature flags will delay the release of a
feature by at least one month (= one release). This is not the case. A feature
flag does not have to stick around for a specific amount of time
(for example, at least one release), instead they should stick around until the feature
-is deemed stable. Stable means it works on GitLab.com without causing any
-problems, such as outages.
+is deemed stable. **Stable means it works on GitLab.com without causing any
+problems, such as outages.**
-## Risk of a broken main branch
+## Risk of a broken default branch
Feature flags must be used in the MR that introduces them. Not doing so causes a
-[broken main branch](https://about.gitlab.com/handbook/engineering/workflow/#broken-master) scenario due
-to the `rspec:feature-flags` job that only runs on the `main` branch.
+[broken default branch](https://about.gitlab.com/handbook/engineering/workflow/#broken-master) scenario due
+to the `rspec:feature-flags` job that only runs on the default branch.
## Types of feature flags
Choose a feature flag type that matches the expected usage.
-### `development` type
+### `gitlab_com_derisk` type
+
+`gitlab_com_derisk` feature flags are short-lived feature flags,
+used to de-risk GitLab.com deployments. Most feature flags used at
+GitLab are of the `gitlab_com_derisk` type.
-`development` feature flags are short-lived feature flags,
-used for deploying unfinished code to production. Most feature flags used at
-GitLab are the `development` type.
+#### Constraints
-A `development` feature flag must have a rollout issue
-created from the [Feature flag Roll Out template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20Flag%20Roll%20Out.md).
+- `default_enabled`: **Must not** be set to true. This kind of feature flag is meant to lower the risk on GitLab.com, thus there's no need to keep the flag in the codebase after it's been enabled on GitLab.com. `default_enabled: true` will not have any effect for this type of feature flag.
+- Maximum Lifespan: 2 months after it's merged into the default branch
+- Documentation: This type of feature flag don't need to be documented in the
+ [All feature flags in GitLab](../../user/feature_flags.md) page given they're short-lived and deployment-related
+- Rollout issue: **Must** have a rollout issue created from the
+ [Feature flag Roll Out template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20Flag%20Roll%20Out.md)
+
+#### Usage
+
+The format for `gitlab_com_derisk` feature flags is `Feature.<state>(:<dev_flag_name>)`.
-The format for `development` feature flags is `Feature.<state>(:<dev_flag_name>)`.
To enable and disable them, run on the GitLab Rails console:
```ruby
# To enable it for the instance:
-Feature.enable(:<dev_flag_name>)
+Feature.enable(:<dev_flag_name>, type: :gitlab_com_derisk)
# To disable it for the instance:
-Feature.disable(:<dev_flag_name>)
+Feature.disable(:<dev_flag_name>, type: :gitlab_com_derisk)
# To enable for a specific project:
-Feature.enable(:<dev_flag_name>, Project.find(<project id>))
+Feature.enable(:<dev_flag_name>, Project.find(<project id>), type: :gitlab_com_derisk)
# To disable for a specific project:
-Feature.disable(:<dev_flag_name>, Project.find(<project id>))
+Feature.disable(:<dev_flag_name>, Project.find(<project id>), type: :gitlab_com_derisk)
```
-To check a `development` feature flag's state:
+To check a `gitlab_com_derisk` feature flag's state:
```ruby
# Check if the feature flag is enabled
-Feature.enabled?(:dev_flag_name)
+Feature.enabled?(:dev_flag_name, type: :gitlab_com_derisk)
# Check if the feature flag is disabled
-Feature.disabled?(:dev_flag_name)
+Feature.disabled?(:dev_flag_name, type: :gitlab_com_derisk)
+```
+
+### `wip` type
+
+Some features are complex and need to be implemented through several MRs. Until they're fully implemented,
+it needs to be hidden from anyone. In that case, the `wip` (for "Work In Progress") feature flag allows
+to merge all the changes to the main branch without actually using the feature yet.
+
+Once the feature is complete, the feature flag type can be changed to the `gitlab_com_derisk` or
+`beta` type depending on how the feature will be presented/documented to customers.
+
+#### Constraints
+
+- `default_enabled`: **Must not** be set to true. If needed, this type can be changed to beta once the feature is complete.
+- Maximum Lifespan: 4 months after it's merged into the default branch
+- Documentation: This type of feature flag don't need to be documented in the
+ [All feature flags in GitLab](../../user/feature_flags.md) page given they're mostly hiding unfinished code
+- Rollout issue: Likely no need for a rollout issues, as `wip` feature flags should be transitioned to
+ another type before being enabled
+
+#### Usage
+
+```ruby
+# Check if feature flag is enabled
+Feature.enabled?(:my_wip_flag, project, type: :wip)
+
+# Check if feature flag is disabled
+Feature.disabled?(:my_wip_flag, project, type: :wip)
+
+# Push feature flag to Frontend
+push_frontend_feature_flag(:my_wip_flag, project, type: :wip)
```
-For `development` feature flags, the type doesn't need to be specified (they're the default type).
+### `beta` type
+
+We might
+[not be confident we'll be able to scale, support, and maintain a feature](https://about.gitlab.com/handbook/product/gitlab-the-product/#experiment-beta-ga)
+in its current form for every designed use case ([example](https://gitlab.com/gitlab-org/gitlab/-/issues/336070#note_1523983444)).
+There are also scenarios where a feature is not complete enough to be considered an MVC.
+Providing a flag in this case allows engineers and customers to disable the new feature until it's performant enough.
+
+#### Constraints
+
+- `default_enabled`: Can be set to `true` so that a feature can be "released" to everyone in Beta with the
+ possibility to disable it in the case of scalability issues (ideally it should only be disabled for this
+ reason on specific on-premise installations)
+- Maximum Lifespan: 6 months after it's merged into the default branch
+- Documentation: This type of feature flag **must** be documented in the
+ [All feature flags in GitLab](../../user/feature_flags.md) page
+- Rollout issue: **Must** have a rollout issue
+ created from the
+ [Feature flag Roll Out template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20Flag%20Roll%20Out.md)
+
+#### Usage
+
+```ruby
+# Check if feature flag is enabled
+Feature.enabled?(:my_beta_flag, project, type: :beta)
+
+# Check if feature flag is disabled
+Feature.disabled?(:my_beta_flag, project, type: :beta)
+
+# Push feature flag to Frontend
+push_frontend_feature_flag(:my_beta_flag, project, type: :beta)
+```
### `ops` type
@@ -122,10 +197,20 @@ For `development` feature flags, the type doesn't need to be specified (they're
of GitLab product behavior. For example, feature flags that disable features that might
have a performance impact such as Sidekiq worker behavior.
-`ops` feature flags likely do not have rollout issues, as it is hard to
-predict when they are enabled or disabled.
+Remember that using this type should follow a conscious decision not to introduce an
+instance/group/project/user setting.
+
+#### Constraints
+
+- `default_enabled`: Can be set to `true` so that a feature can be "released" to everyone in Beta with the
+ possibility to disable it in the case of scalability issues (ideally it should only be disabled for this
+ reason on specific on-premise installations)
+- Maximum Lifespan: Unlimited
+- Documentation: This type of feature flag **must** be documented in the
+ [All feature flags in GitLab](../../user/feature_flags.md) page
+- Rollout issue: Likely no need for a rollout issues, as it is hard to predict when they are enabled or disabled
-To invoke `ops` feature flags, you must append `type: :ops`:
+#### Usage
```ruby
# Check if feature flag is enabled
@@ -142,18 +227,27 @@ push_frontend_feature_flag(:my_ops_flag, project, type: :ops)
`experiment` feature flags are used for A/B testing on GitLab.com.
-An `experiment` feature flag should conform to the same standards as a `development` feature flag,
+An `experiment` feature flag should conform to the same standards as a `beta` feature flag,
although the interface has some differences. An experiment feature flag should have a rollout issue,
created using the [Experiment Tracking template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Experiment%20Rollout.md). More information can be found in the [experiment guide](../experiment_guide/index.md).
+#### Constraints
+
+- `default_enabled`: **Must not** be set to `true`.
+- Maximum Lifespan: 6 months after it's merged into the default branch
+
### `worker` type
-`worker` feature flags are used for controlling Sidekiq workers behavior, such as deferring Sidekiq jobs.
+`worker` feature flags are special `ops` flags that allow to control Sidekiq workers behavior, such as deferring Sidekiq jobs.
`worker` feature flags likely do not have any YAML definition as the name could be dynamically generated using
the worker name itself, for example, `run_sidekiq_jobs_AuthorizedProjectsWorker`. Some examples for using `worker` type feature
flags can be found in [deferring Sidekiq jobs](#deferring-sidekiq-jobs).
+### (Deprecated) `development` type
+
+The `development` type is deprecated in favor of the `gitlab_com_derisk`, `wip`, and `beta` feature flag types.
+
## Feature flag definition and validation
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/229161) in GitLab 13.3.
@@ -179,10 +273,12 @@ Each feature flag is defined in a separate YAML file consisting of a number of f
| `name` | yes | Name of the feature flag. |
| `type` | yes | Type of feature flag. |
| `default_enabled` | yes | The default state of the feature flag. |
-| `introduced_by_url` | no | The URL to the merge request that introduced the feature flag. |
+| `introduced_by_url` | yes | The URL to the merge request that introduced the feature flag. |
+| `milestone` | yes | Milestone in which the feature flag was created. |
+| `group` | yes | The [group](https://about.gitlab.com/handbook/product/categories/#devops-stages) that owns the feature flag. |
+| `feature_issue_url` | no | The URL to the original feature issue. |
| `rollout_issue_url` | no | The URL to the Issue covering the feature flag rollout. |
-| `milestone` | no | Milestone in which the feature flag was created. |
-| `group` | no | The [group](https://about.gitlab.com/handbook/product/categories/#devops-stages) that owns the feature flag. |
+| `log_state_changes` | no | Used to log the state of the feature flag |
NOTE:
All validations are skipped when running in `RAILS_ENV=production`.
@@ -571,6 +667,19 @@ as follows:
Feature.remove(:feature_flag_name)
```
+### Logging
+
+Usage and state of the feature flag is logged if either:
+
+- `log_state_changes` is set to `true` in the feature flag definition.
+- `milestone` refers to a milestone that is greater than or equal to the current GitLab version.
+
+When the state of a feature flag is logged, it can be identified by using the `"json.feature_flag_states": "feature_flag_name:1"` or `"json.feature_flag_states": "feature_flag_name:0"` condition in Kibana.
+You can see an example in [this](https://log.gprd.gitlab.net/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:60000),time:(from:now-7d%2Fd,to:now))&_a=(columns:!(json.feature_flag_states),filters:!(('$state':(store:appState),meta:(alias:!n,disabled:!f,field:json.feature_flag_states,index:'7092c4e2-4eb5-46f2-8305-a7da2edad090',key:json.feature_flag_states,negate:!f,params:(query:'optimize_where_full_path_in:1'),type:phrase),query:(match_phrase:(json.feature_flag_states:'optimize_where_full_path_in:1')))),hideChart:!f,index:'7092c4e2-4eb5-46f2-8305-a7da2edad090',interval:auto,query:(language:kuery,query:''),sort:!(!(json.time,desc)))) link.
+
+NOTE:
+Only 20% of the requests log the state of the feature flags. This is controlled with the [`feature_flag_state_logs`](https://gitlab.com/gitlab-org/gitlab/-/blob/6deb6ecbc69f05a80d920a295dfc1a6a303fc7a0/config/feature_flags/ops/feature_flag_state_logs.yml) feature flag.
+
## Changelog
We want to avoid introducing a changelog when features are not accessible by an end-user either directly (example: ability to use the feature) or indirectly (examples: ability to take advantage of background jobs, performance improvements, or database migration updates).
diff --git a/doc/development/gems.md b/doc/development/gems.md
index 476ed8f916b..cd1a57fe136 100644
--- a/doc/development/gems.md
+++ b/doc/development/gems.md
@@ -150,6 +150,25 @@ You can see example adding a new gem: [!121676](https://gitlab.com/gitlab-org/gi
gem '<name-of-gem>', path: 'gems/<name-of-gem>'
```
+### Specifying dependencies for the Gem
+
+It is important to note that while the gem has its own `Gemfile`, in the
+actual application the top-level `Gemfile` for the monolith GitLab will be
+used instead of the individual `Gemfile` sitting in the directory of the gem.
+
+This means we should be aware that the `Gemfile` for the gem should not use
+any versions of dependencies which might be conflicting with the top-level
+`Gemfile`, and we should try to use the same dependencies if possible.
+
+An example of this is [Rack](https://rubygems.org/gems/rack). If the monolith
+is using Rack 2 and we're in the process of
+[upgrading to Rack 3](https://gitlab.com/gitlab-org/gitlab/-/issues/396273),
+all gems we develop should also be tested against Rack 2, optionally also with
+Rack 3 if a separate `Gemfile` is used in CI. See an
+[example here](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140463).
+
+Note that this does not limit to just Rack, but any dependencies.
+
### Examples of Gem extractions
The `gitlab-utils` is a Gem containing as of set of class that implement common intrinsic functions
@@ -254,12 +273,12 @@ The project for a new Gem should always be created in [`gitlab-org/ruby/gems` na
1. Create a project in the [`gitlab-org/ruby/gems` group](https://gitlab.com/gitlab-org/ruby/gems/) (or in a subgroup of it):
1. Follow the [instructions for new projects](https://about.gitlab.com/handbook/engineering/gitlab-repositories/#creating-a-new-project).
1. Follow the instructions for setting up a [CI/CD configuration](https://about.gitlab.com/handbook/engineering/gitlab-repositories/#cicd-configuration).
- 1. Use the [gem-release CI component](https://gitlab.com/gitlab-org/quality/pipeline-common/-/tree/master/gem-release)
+ 1. Use the [`gem-release` CI component](https://gitlab.com/gitlab-org/components/gem-release)
to release and publish new gem versions by adding the following to their `.gitlab-ci.yml`:
```yaml
include:
- - component: gitlab.com/gitlab-org/quality/pipeline-common/gem-release@<REPLACE WITH LATEST TAG FROM https://gitlab.com/gitlab-org/quality/pipeline-common/-/releases>
+ - component: gitlab.com/gitlab-org/components/gem-release/gem-release@~latest
```
This job will handle building and publishing the gem (it uses a `gitlab_rubygems` Rubygems.org
diff --git a/doc/development/geo.md b/doc/development/geo.md
index d8b000c090a..365893b3be7 100644
--- a/doc/development/geo.md
+++ b/doc/development/geo.md
@@ -472,6 +472,10 @@ and the administrator can see this in the [Geo Admin Area](../administration/geo
Geo secondaries can proxy web requests to the primary.
Read more on the [Geo proxying (development) page](geo/proxying.md).
+## Geo API
+
+Geo uses the external [API](geo/api.md) to facilitate communication between various components.
+
## Glossary
### Primary site
diff --git a/doc/development/geo/api.md b/doc/development/geo/api.md
new file mode 100644
index 00000000000..b9f3f7ce5c9
--- /dev/null
+++ b/doc/development/geo/api.md
@@ -0,0 +1,32 @@
+---
+stage: Systems
+group: Geo
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Geo API **(PREMIUM SELF)**
+
+The Geo API is used internally by GitLab components to assist in coordinating Geo actions. It is inaccessible to admins or users.
+
+## Fetch pipeline refs
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/415179) in GitLab 16.7.
+
+This method returns a list of branches matching `pipeline/refs/X` that exist on the repository for `gl_repository` on the current Geo node. This endpoint is used by runners registered with a secondary Geo instance to check if a repository is up to date.
+
+```plaintext
+GET /geo/repositories/:gl_repository/pipeline_refs
+```
+
+Supported attributes:
+
+| Attribute | Type | Required | Description |
+|--------------------------|----------|----------|-----------------------|
+| `gl_repository` | string | Yes | The `gl_repository` ID of the repository to query |
+
+If successful, returns [`200`](../../api/rest/index.md#status-codes) and the following
+response attributes:
+
+| Attribute | Type | Description |
+|--------------------------|----------|-----------------------|
+| `attribute` | 'array' | An array of ids matching `refs/pipeline/X` created for running pipelines. |
diff --git a/doc/development/git_object_deduplication.md b/doc/development/git_object_deduplication.md
index f3e35f9cdf8..5bfa77e2aa3 100644
--- a/doc/development/git_object_deduplication.md
+++ b/doc/development/git_object_deduplication.md
@@ -42,7 +42,7 @@ repositories that depend on the object pool.
The danger lies in `git prune`, and `git gc` calls `git prune`. The
problem is that `git prune`, when running in a pool repository, cannot
-reliable decide if an object is no longer needed.
+reliably decide if an object is no longer needed.
### Git alternates in GitLab: pool repositories
@@ -51,7 +51,7 @@ which are hidden from the user. We then use Git
alternates to let a collection of project repositories borrow from a
single pool repository. We call such a collection of project
repositories a pool. Pools form star-shaped networks of repositories
-that borrow from a single pool, which resemble (but not be
+that borrow from a single pool, which resemble (but are not
identical to) the fork networks that get formed when users fork
projects.
diff --git a/doc/development/github_importer.md b/doc/development/github_importer.md
index 56a4ea898df..9e9216c4f66 100644
--- a/doc/development/github_importer.md
+++ b/doc/development/github_importer.md
@@ -347,6 +347,23 @@ execute services that:
- [Continue their loop](https://gitlab.com/gitlab-org/gitlab/-/blob/487521cc26c1e2bdba4fc67c14478d2b2a5f2bfa/lib/gitlab/github_import/importer/attachments/issues_importer.rb#L27)
from where it left off.
+## `sidekiq_options dead: false`
+
+Typically when a worker's retries are exhausted they go to the Sidekiq dead set
+and can be retried by an instance admin.
+
+`GithubImport::Queue` sets the Sidekiq worker option `dead: false` to prevent
+this from happening to GitHub importer workers.
+
+The reason is:
+
+- The dead set has a max limit and if object importer workers (ones that include
+ `ObjectImporter`) fail en masse they can spam the dead set and push other workers out.
+- Stage workers (ones that include `StageMethods`)
+ [fail the import](https://gitlab.com/gitlab-org/gitlab/-/blob/dd7cde8d6a28254b9c7aff27f9bf6b7be1ac7532/app/workers/concerns/gitlab/github_import/stage_methods.rb#L23)
+ when their retries are exhausted, so a retry would be guaranteed to
+ [be a no-op](https://gitlab.com/gitlab-org/gitlab/-/blob/dd7cde8d6a28254b9c7aff27f9bf6b7be1ac7532/app/workers/concerns/gitlab/github_import/stage_methods.rb#L55-63).
+
## Mapping labels and milestones
To reduce pressure on the database we do not query it when setting labels and
diff --git a/doc/development/go_guide/index.md b/doc/development/go_guide/index.md
index a9f4b22c778..c6471d9720c 100644
--- a/doc/development/go_guide/index.md
+++ b/doc/development/go_guide/index.md
@@ -26,7 +26,7 @@ can still have specifics. They are described in their respective
The Go upgrade documentation [provides an overview](go_upgrade.md#overview)
of how GitLab manages and ships Go binary support.
-If a GitLab component requires a newer version of Go,
+If a GitLab component requires a newer version of Go,
follow the [upgrade process](go_upgrade.md#updating-go-version) to ensure no customer, team, or component is adversely impacted.
Sometimes, individual projects must also [manage builds with multiple versions of Go](go_upgrade.md#supporting-multiple-go-versions).
diff --git a/doc/development/i18n/proofreader.md b/doc/development/i18n/proofreader.md
index 35e423b28e9..16f96687c4f 100644
--- a/doc/development/i18n/proofreader.md
+++ b/doc/development/i18n/proofreader.md
@@ -16,7 +16,7 @@ are very appreciative of the work done by translators and proofreaders!
- Albanian
- Proofreaders needed.
- Amharic
- - Tsegaselassie Tadesse - [GitLab](https://gitlab.com/tsega), [Crowdin](https://crowdin.com/profile/tsegaselassi)
+ - Proofreaders needed.
- Arabic
- Proofreaders needed.
- Basque
@@ -24,51 +24,38 @@ are very appreciative of the work done by translators and proofreaders!
- Belarusian
- Anton Katsuba - [GitLab](https://gitlab.com/coinvariant), [Crowdin](https://crowdin.com/profile/aerialfiddle)
- Bosnian
- - Haris Delalić - [GitLab](https://gitlab.com/haris.delalic), [Crowdin](https://crowdin.com/profile/haris.delalic)
+ - Proofreaders needed.
- Bulgarian
- - Lyubomir Vasilev - [Crowdin](https://crowdin.com/profile/lyubomirv)
+ - Proofreaders needed.
- Catalan
- - David Planella - [GitLab](https://gitlab.com/dplanella), [Crowdin](https://crowdin.com/profile/dplanella)
+ - Proofreaders needed.
- Chinese Simplified 简体中文
- - Huang Tao - [GitLab](https://gitlab.com/htve), [Crowdin](https://crowdin.com/profile/htve)
- - Victor Wu - [GitLab](https://gitlab.com/_victorwu_), [Crowdin](https://crowdin.com/profile/victorwu)
- - Xiaogang Wen - [GitLab](https://gitlab.com/xiaogang_cn), [Crowdin](https://crowdin.com/profile/xiaogang_gitlab)
- Zhiyuan Lu - [GitLab](https://gitlab.com/luzhiyuan.deer), [Crowdin](https://crowdin.com/profile/luzhiyuan.deer)
- Chinese Traditional ç¹é«”中文
- - Weizhe Ding - [GitLab](https://gitlab.com/d.weizhe), [Crowdin](https://crowdin.com/profile/d.weizhe)
- - Yi-Jyun Pan - [GitLab](https://gitlab.com/pan93412), [Crowdin](https://crowdin.com/profile/pan93412)
- - Victor Wu - [GitLab](https://gitlab.com/_victorwu_), [Crowdin](https://crowdin.com/profile/victorwu)
- Hansel Wang - [GitLab](https://gitlab.com/airness), [Crowdin](https://crowdin.com/profile/airness)
- Chinese Traditional, Hong Kong ç¹é«”中文 (香港)
- - Victor Wu - [GitLab](https://gitlab.com/_victorwu_), [Crowdin](https://crowdin.com/profile/victorwu)
- - Ivan Ip - [GitLab](https://gitlab.com/lifehome), [Crowdin](https://crowdin.com/profile/lifehome)
+ - Proofreaders needed.
- Croatian
- - Haris Delalić - [GitLab](https://gitlab.com/haris.delalic), [Crowdin](https://crowdin.com/profile/haris.delalic)
+ - Proofreaders needed.
- Czech
- - Jan Urbanec - [GitLab](https://gitlab.com/TatranskyMedved), [Crowdin](https://crowdin.com/profile/Tatranskymedved)
+ - Proofreaders needed.
- Danish
- - Saederup92 - [GitLab](https://gitlab.com/Saederup92), [Crowdin](https://crowdin.com/profile/Saederup92)
- scootergrisen - [GitLab](https://gitlab.com/scootergrisen), [Crowdin](https://crowdin.com/profile/scootergrisen)
- Dutch
- - Emily Hendle - [GitLab](https://gitlab.com/pundachan), [Crowdin](https://crowdin.com/profile/pandachan)
+ - Proofreaders needed.
- English (UK)
- - Andrew Smith - [GitLab](https://gitlab.com/espadav8), [Crowdin](https://crowdin.com/profile/espadav8)
+ - Proofreaders needed.
- Esperanto
- - Lyubomir Vasilev - [Crowdin](https://crowdin.com/profile/lyubomirv)
+ - Proofreaders needed.
- Estonian
- Proofreaders needed.
- Filipino
- - Andrei Jiroh Halili - [GitLab](https://gitlab.com/ajhalili2006), [Crowdin](https://crowdin.com/profile/AndreiJirohHaliliDev2006)
+ - Proofreaders needed.
- French
- - Davy Defaud - [GitLab](https://gitlab.com/DevDef), [Crowdin](https://crowdin.com/profile/DevDef)
- - Germain Gorisse - [GitLab](https://gitlab.com/ggorisse), [Crowdin](https://crowdin.com/profile/germaingorisse)
- Xavier Delatour - [GitLab](https://gitlab.com/xdelatour), [Crowdin](https://crowdin.com/profile/xdelatour)
- Galician
- - Antón Méixome - [Crowdin](https://crowdin.com/profile/meixome)
- - Pedro Garcia - [GitLab](https://gitlab.com/pedgarrod), [Crowdin](https://crowdin.com/profile/breaking_pitt)
+ - Proofreaders needed.
- German
- - Michael Hahnle - [GitLab](https://gitlab.com/mhah), [Crowdin](https://crowdin.com/profile/mhah)
- - Katrin Leinweber - [GitLab](https://gitlab.com/katrinleinweber), [Crowdin](https://crowdin.com/profile/katrinleinweber)
- Vladislav Wanner - [GitLab](https://gitlab.com/RumBugen), [Crowdin](https://crowdin.com/profile/RumBugen)
- Daniel Ziegenberg - [GitLab](https://gitlab.com/ziegenberg), [Crowdin](https://crowdin.com/profile/ziegenberg)
- Greek
@@ -80,69 +67,47 @@ are very appreciative of the work done by translators and proofreaders!
- Hungarian
- Proofreaders needed.
- Indonesian
- - Adi Ferdian - [GitLab](https://gitlab.com/adiferd), [Crowdin](https://crowdin.com/profile/adiferd)
- - Ahmad Naufal Mukhtar - [GitLab](https://gitlab.com/anaufalm), [Crowdin](https://crowdin.com/profile/anaufalm)
+ - Proofreaders needed.
- Italian
- - Massimiliano Cuttini - [GitLab](https://gitlab.com/maxcuttins), [Crowdin](https://crowdin.com/profile/maxcuttins)
- - Paolo Falomo - [GitLab](https://gitlab.com/paolofalomo), [Crowdin](https://crowdin.com/profile/paolo.falomo)
+ - Proofreaders needed.
- Japanese
- - Hiroyuki Sato - [GitLab](https://gitlab.com/hiroponz), [Crowdin](https://crowdin.com/profile/hiroponz)
- Tomo Dote - [GitLab](https://gitlab.com/fu7mu4), [Crowdin](https://crowdin.com/profile/fu7mu4)
- - Hiromi Nozawa - [GitLab](https://gitlab.com/hir0mi), [Crowdin](https://crowdin.com/profile/hir0mi)
- - Takuya Noguchi - [GitLab](https://gitlab.com/tnir), [Crowdin](https://crowdin.com/profile/tnir)
- Tsukasa Komatsubara - [GitLab](https://gitlab.com/tkomatsubara), [Crowdin](https://crowdin.com/profile/tkomatsubara)
- Korean
- - Chang-Ho Cha - [GitLab](https://gitlab.com/changho-cha), [Crowdin](https://crowdin.com/profile/zzazang)
- - Ji Hun Oh - [GitLab](https://gitlab.com/Baw-Appie), [Crowdin](https://crowdin.com/profile/BawAppie)
- - Jeongwhan Choi - [GitLab](https://gitlab.com/jeongwhanchoi), [Crowdin](https://crowdin.com/profile/jeongwhanchoi)
- Sunjung Park - [GitLab](https://gitlab.com/sunjungp), [Crowdin](https://crowdin.com/profile/sunjungp)
+ - Hwanyong Lee - [GitLab](https://gitlab.com/hwan_ajou), [Crowdin](https://crowdin.com/profile/grbear)
- Mongolian
- Proofreaders needed.
- Norwegian Bokmal
- Imre Kristoffer Eilertsen - [GitLab](https://gitlab.com/DandelionSprout), [Crowdin](https://crowdin.com/profile/DandelionSprout)
- Polish
- - Filip Mech - [GitLab](https://gitlab.com/mehenz), [Crowdin](https://crowdin.com/profile/mehenz)
- - Maksymilian Roman - [GitLab](https://gitlab.com/villaincandle), [Crowdin](https://crowdin.com/profile/villaincandle)
- - Jakub GÅ‚adykowski - [GitLab](https://gitlab.com/gladykov), [Crowdin](https://crowdin.com/profile/gladykov)
+ - Proofreaders needed.
- Portuguese
- - Diogo Trindade - [GitLab](https://gitlab.com/luisdiogo2071317), [Crowdin](https://crowdin.com/profile/ldiogotrindade)
+ - Proofreaders needed.
- Portuguese, Brazilian
- - Paulo George Gomes Bezerra - [GitLab](https://gitlab.com/paulobezerra)
- - André Gama - [GitLab](https://gitlab.com/andregamma), [Crowdin](https://crowdin.com/profile/ToeOficial)
- Eduardo Addad de Oliveira - [GitLab](https://gitlab.com/eduardoaddad), [Crowdin](https://crowdin.com/profile/eduardoaddad)
- - Horberlan Brito - [GitLab](https://gitlab.com/horberlan), [Crowdin](https://crowdin.com/profile/horberlan)
- Romanian
- - Mircea Pop - [GitLab](https://gitlab.com/eeex), [Crowdin](https://crowdin.com/profile/eex)
- - Rareș Pița - [GitLab](https://gitlab.com/dlphin)
- - Nicolae Liviu - [GitLab](https://gitlab.com/nicklcanada), [Crowdin](https://crowdin.com/profile/nicklcanada)
+ - Proofreaders needed.
- Russian
- - Nikita Grylov - [GitLab](https://gitlab.com/nixel2007), [Crowdin](https://crowdin.com/profile/nixel2007)
- - Alexy Lustin - [GitLab](https://gitlab.com/allustin), [Crowdin](https://crowdin.com/profile/lustin)
- Mark Minakou - [GitLab](https://gitlab.com/sandzhaj), [Crowdin](https://crowdin.com/profile/sandzhaj)
- - NickVolynkin - [Crowdin](https://crowdin.com/profile/NickVolynkin)
- Andrey Komarov - [GitLab](https://gitlab.com/elkamarado), [Crowdin](https://crowdin.com/profile/kamarado)
- - Iaroslav Postovalov - [GitLab](https://gitlab.com/CMDR_Tvis), [Crowdin](https://crowdin.com/profile/CMDR_Tvis)
- Serbian (Latin and Cyrillic)
- - Haris Delalić - [GitLab](https://gitlab.com/haris.delalic), [Crowdin](https://crowdin.com/profile/haris.delalic)
+ - Proofreaders needed.
- Sinhalese/Sinhala සිංහල
- හෙළබස (HelaBasa) - [GitLab](https://gitlab.com/helabasa), [Crowdin](https://crowdin.com/profile/helabasa)
- Slovak
- Proofreaders needed.
- Spanish
- - Pedro Garcia - [GitLab](https://gitlab.com/pedgarrod), [Crowdin](https://crowdin.com/profile/breaking_pitt)
- David Elizondo - [GitLab](https://gitlab.com/daelmo), [Crowdin](https://crowdin.com/profile/daelmo)
- Pablo Reyes - [GitLab](https://gitlab.com/pabloryst9n), [Crowdin](https://crowdin.com/profile/pabloryst9n)
-
- Swedish
- Johannes Nilsson - [GitLab](https://gitlab.com/nlssn), [Crowdin](https://crowdin.com/profile/nlssn)
- Turkish
- - Ali DemirtaÅŸ - [GitLab](https://gitlab.com/alidemirtas), [Crowdin](https://crowdin.com/profile/alidemirtas)
- - Rıfat Ünalmış (Rifat Unalmis) - [GitLab](https://gitlab.com/runalmis), [Crowdin](https://crowdin.com/profile/runalmis)
- - İsmail Arılık - [GitLab](https://gitlab.com/ismailarilik), [Crowdin](https://crowdin.com/profile/ismailarilik)
+ - Proofreaders needed.
- Ukrainian
- Andrew Vityuk - [GitLab](https://gitlab.com/3_1_3_u), [Crowdin](https://crowdin.com/profile/andruwa13)
- Welsh
- - Delyth Prys - [GitLab](https://gitlab.com/Delyth), [Crowdin](https://crowdin.com/profile/DelythPrys)
+ - Proofreaders needed.
<!-- vale gitlab.Spelling = YES -->
## Become a proofreader
diff --git a/doc/development/i18n/translation.md b/doc/development/i18n/translation.md
index 7149d431c30..ed3afb8efa6 100644
--- a/doc/development/i18n/translation.md
+++ b/doc/development/i18n/translation.md
@@ -96,7 +96,7 @@ For example, in German, the word _user_ can be translated into _Benutzer_ (male)
### Updating the glossary
-To propose additions to the glossary,
+To propose additions to the glossary,
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
## French translation guidelines
diff --git a/doc/development/img/runner_fleet_dashboard.png b/doc/development/img/runner_fleet_dashboard.png
deleted file mode 100644
index 242ebf4aea9..00000000000
--- a/doc/development/img/runner_fleet_dashboard.png
+++ /dev/null
Binary files differ
diff --git a/doc/development/integrations/secure.md b/doc/development/integrations/secure.md
index 3fb89605bdd..6709c748994 100644
--- a/doc/development/integrations/secure.md
+++ b/doc/development/integrations/secure.md
@@ -7,16 +7,16 @@ info: Any user with at least the Maintainer role can merge updates to this conte
# Security scanner integration
Integrating a security scanner into GitLab consists of providing end users
-with a [CI job definition](../../ci/yaml/index.md)
-they can add to their CI configuration files to scan their GitLab projects.
-This CI job should then output its results in a GitLab-specified format. These results are then
+with a [CI/CD job definition](../../ci/jobs/index.md)
+they can add to their CI/CD configuration files to scan their GitLab projects.
+This job should then output its results in a GitLab-specified format. These results are then
automatically presented in various places in GitLab, such as the Pipeline view, merge request
widget, and Security Dashboard.
The scanning job is usually based on a [Docker image](https://docs.docker.com/)
that contains the scanner and all its dependencies in a self-contained environment.
-This page documents requirements and guidelines for writing CI jobs that implement a security
+This page documents requirements and guidelines for writing CI/CD jobs that implement a security
scanner, as well as requirements and guidelines for the Docker image.
## Job definition
@@ -285,12 +285,12 @@ See the [`logutil` README](https://gitlab.com/gitlab-org/security-products/analy
The report is a JSON document that combines vulnerabilities with possible remediations.
-This documentation gives an overview of the report JSON format,
-as well as recommendations and examples to help integrators set its fields.
+This documentation gives an overview of the report JSON format, recommendations, and examples to
+help integrators set its fields.
The format is extensively described in the documentation of
-[SAST](../../user/application_security/sast/index.md#reports-json-format),
+[SAST](../../user/application_security/sast/index.md#output),
[DAST](../../user/application_security/dast/proxy-based.md#reports),
-[Dependency Scanning](../../user/application_security/dependency_scanning/index.md#reports-json-format),
+[Dependency Scanning](../../user/application_security/dependency_scanning/index.md#output),
and [Container Scanning](../../user/application_security/container_scanning/index.md#reports-json-format)
You can find the schemas for these scanners here:
diff --git a/doc/development/integrations/secure_partner_integration.md b/doc/development/integrations/secure_partner_integration.md
index 53c333a6f13..d0a2c8b828f 100644
--- a/doc/development/integrations/secure_partner_integration.md
+++ b/doc/development/integrations/secure_partner_integration.md
@@ -87,8 +87,8 @@ and complete an integration with the Secure stage.
- Read about [job artifacts](../../ci/jobs/job_artifacts.md).
- Your report artifact must be in one of our currently supported formats.
For more information, see the [documentation on reports](secure.md#report).
- - Documentation for [SAST reports](../../user/application_security/sast/index.md#reports-json-format).
- - Documentation for [Dependency Scanning reports](../../user/application_security/dependency_scanning/index.md#reports-json-format).
+ - Documentation for [SAST output](../../user/application_security/sast/index.md#output).
+ - Documentation for [Dependency Scanning reports](../../user/application_security/dependency_scanning/index.md#output).
- Documentation for [Container Scanning reports](../../user/application_security/container_scanning/index.md#reports-json-format).
- See this [example secure job definition that also defines the artifact created](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/Container-Scanning.gitlab-ci.yml).
- If you need a new kind of scan or report, [create an issue](https://gitlab.com/gitlab-org/gitlab/-/issues/new#)
diff --git a/doc/development/internal_analytics/index.md b/doc/development/internal_analytics/index.md
index b5403f56600..29d1a46c3cf 100644
--- a/doc/development/internal_analytics/index.md
+++ b/doc/development/internal_analytics/index.md
@@ -17,8 +17,8 @@ when developing new features or instrumenting existing ones.
<div class="video-fallback">
See the video about <a href="https://www.youtube.com/watch?v=GtFNXbjygWo">the concepts of events and metrics.</a>
</div>
-<figure class="video_container">
- <iframe src="https://www.youtube-nocookie.com/embed/GtFNXbjygWo" frameborder="0" allowfullscreen="true"> </iframe>
+<figure class="video-container">
+ <iframe src="https://www.youtube-nocookie.com/embed/GtFNXbjygWo" frameborder="0" allowfullscreen> </iframe>
</figure>
Events and metrics are the foundation of the internal analytics system.
@@ -95,7 +95,6 @@ SELECT
COUNT(*) as event_occurences
FROM common_mart.mart_behavior_structured_event
WHERE event_action = 'feature_used'
-AND event_category = 'InternalEventTracking'
AND behavior_date > '2023-08-01' --restricted minimum date for performance
AND app_id='gitlab' -- use gitlab for production events and gitlab-staging for events from staging
GROUP BY 1 ORDER BY 1 desc
diff --git a/doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md b/doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md
index 2c53185a5db..9417861eee9 100644
--- a/doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md
+++ b/doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md
@@ -26,7 +26,7 @@ Each event is defined in a separate YAML file consisting of the following fields
|------------------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `description` | yes | A description of the event. |
| `category` | yes | Always InternalEventTracking (only different for legacy events). |
-| `action` | yes | A unique name for the event. |
+| `action` | yes | A unique name for the event. Use the format `<operation>_<target_of_operation>_<where/when>`. <br/><br/> Ex: `publish_go_module_to_the_registry_from_pipeline` <br/>`<operation> = publish`<br/>`<target> = go_module`<br/>`<when/where> = to_the_registry_from_pipeline`. |
| `identifiers` | no | A list of identifiers sent with the event. Can be set to one or more of `project`, `user`, or `namespace`. |
| `product_section` | yes | The [section](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/data/sections.yml). |
| `product_stage` | no | The [stage](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/stages.yml) for the event. |
@@ -43,7 +43,7 @@ This is an example YAML file for an internal event:
```yaml
description: A user visited a product analytics dashboard
category: InternalEventTracking
-action: user_visited_dashboard
+action: visit_product_analytics_dashboard
identifiers:
- project
- user
diff --git a/doc/development/internal_analytics/internal_event_instrumentation/local_setup_and_debugging.md b/doc/development/internal_analytics/internal_event_instrumentation/local_setup_and_debugging.md
index 56e83184060..244482a4c2e 100644
--- a/doc/development/internal_analytics/internal_event_instrumentation/local_setup_and_debugging.md
+++ b/doc/development/internal_analytics/internal_event_instrumentation/local_setup_and_debugging.md
@@ -48,6 +48,15 @@ By default, self-managed instances do not collect event data via Snowplow. We ca
1. You can now see all events being sent by your local instance in the [Snowplow Micro UI](http://localhost:9091/micro/ui) and can filter for specific events.
+### Introduction to Snowplow Micro UI and API
+
+<div class="video-fallback">
+ Watch the video about <a href="https://www.youtube.com/watch?v=netZ0TogNcA">Snowplow Micro</a>
+</div>
+<figure class="video-container">
+ <iframe src="https://www.youtube-nocookie.com/embed/netZ0TogNcA" frameborder="0" allowfullscreen> </iframe>
+</figure>
+
## Configure a remote event collector
On GitLab.com events are sent to a collector configured by GitLab. By default, self-managed instances do not have a collector configured and do not collect data with Snowplow.
@@ -72,8 +81,8 @@ You can configure your self-managed GitLab instance to use a custom Snowplow col
<div class="video-fallback">
Watch the demo video about the <a href="https://www.youtube.com/watch?v=R7vT-VEzZOI">Internal Events Tracking Monitor</a>
</div>
-<figure class="video_container">
- <iframe src="https://www.youtube-nocookie.com/embed/R7vT-VEzZOI" frameborder="0" allowfullscreen="true"> </iframe>
+<figure class="video-container">
+ <iframe src="https://www.youtube-nocookie.com/embed/R7vT-VEzZOI" frameborder="0" allowfullscreen> </iframe>
</figure>
To understand how events are triggered and metrics are updated while you use the Rails app locally or `rails console`,
diff --git a/doc/development/internal_analytics/internal_event_instrumentation/migration.md b/doc/development/internal_analytics/internal_event_instrumentation/migration.md
index 2ef439e21e9..79ca45ed84c 100644
--- a/doc/development/internal_analytics/internal_event_instrumentation/migration.md
+++ b/doc/development/internal_analytics/internal_event_instrumentation/migration.md
@@ -125,6 +125,7 @@ To start using Internal Events Tracking, follow these steps:
1. Create an event definition that describes `git_write_action` ([guide](event_definition_guide.md)).
1. Find metric definitions that list `git_write_action` in the events section (`20210216182041_action_monthly_active_users_git_write.yml` and `20210216184045_git_write_action_weekly.yml`).
1. Change the `data_source` from `redis_hll` to `internal_events` in the metric definition files.
+1. Remove the `instrumentation_class` property. It's not used for Internal Events metrics.
1. Add an `events` section to both metric definition files.
```yaml
diff --git a/doc/development/internal_analytics/internal_event_instrumentation/quick_start.md b/doc/development/internal_analytics/internal_event_instrumentation/quick_start.md
index 6f48f83e7ca..c70f7debe41 100644
--- a/doc/development/internal_analytics/internal_event_instrumentation/quick_start.md
+++ b/doc/development/internal_analytics/internal_event_instrumentation/quick_start.md
@@ -31,6 +31,13 @@ Triggering an event and thereby updating a metric is slightly different on backe
### Backend tracking
+<div class="video-fallback">
+ Watch the video about <a href="https://www.youtube.com/watch?v=Teid7o_2Mmg">Backend instrumentation using Internal Events</a>
+</div>
+<figure class="video-container">
+ <iframe src="https://www.youtube-nocookie.com/embed/Teid7o_2Mmg" frameborder="0" allowfullscreen> </iframe>
+</figure>
+
To trigger an event, call the `Gitlab::InternalEvents.track_event` method with the desired arguments:
```ruby
@@ -50,6 +57,53 @@ It is encouraged to fill out as many of `user`, `namespace` and `project` as pos
If a `project` but no `namespace` is provided, the `project.namespace` is used as the `namespace` for the event.
+#### Controller and API helpers
+
+There is a helper module `ProductAnalyticsTracking` for controllers you can use to track internal events for particular controller actions by calling `#track_internal_event`:
+
+```ruby
+class Projects::PipelinesController < Projects::ApplicationController
+ include ProductAnalyticsTracking
+
+ track_internal_event :charts, name: 'p_analytics_ci_cd_pipelines', conditions: -> { should_track_ci_cd_pipelines? }
+
+ def charts
+ ...
+ end
+
+ private
+
+ def should_track_ci_cd_pipelines?
+ params[:chart].blank? || params[:chart] == 'pipelines'
+ end
+end
+```
+
+You need to add these two methods to the controller body, so that the helper can get the current project and namespace for the event:
+
+```ruby
+ private
+
+ def tracking_namespace_source
+ project.namespace
+ end
+
+ def tracking_project_source
+ project
+ end
+```
+
+Also, there is an API helper:
+
+```ruby
+track_event(
+ event_name,
+ user: current_user,
+ namespace_id: namespace_id,
+ project_id: project_id
+)
+```
+
### Frontend tracking
Any frontend tracking call automatically passes the values `user.id`, `namespace.id`, and `project.id` from the current context of the page.
diff --git a/doc/development/internal_analytics/internal_event_tracking/event_definition_guide.md b/doc/development/internal_analytics/internal_event_tracking/event_definition_guide.md
deleted file mode 100644
index 8793e317cdc..00000000000
--- a/doc/development/internal_analytics/internal_event_tracking/event_definition_guide.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../internal_event_instrumentation/event_definition_guide.md'
-remove_date: '2023-12-27'
----
-
-This document was moved to [another location](../internal_event_instrumentation/event_definition_guide.md).
-
-<!-- This redirect file can be deleted after <2023-12-27>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_analytics/internal_event_tracking/index.md b/doc/development/internal_analytics/internal_event_tracking/index.md
deleted file mode 100644
index 03b539d2a03..00000000000
--- a/doc/development/internal_analytics/internal_event_tracking/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../internal_event_instrumentation/index.md'
-remove_date: '2023-12-27'
----
-
-This document was moved to [another location](../internal_event_instrumentation/index.md).
-
-<!-- This redirect file can be deleted after <2023-12-27>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_analytics/internal_event_tracking/introduction.md b/doc/development/internal_analytics/internal_event_tracking/introduction.md
deleted file mode 100644
index 3f769e7935e..00000000000
--- a/doc/development/internal_analytics/internal_event_tracking/introduction.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../internal_event_instrumentation/introduction.md'
-remove_date: '2023-12-27'
----
-
-This document was moved to [another location](../internal_event_instrumentation/introduction.md).
-
-<!-- This redirect file can be deleted after <2023-12-27>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_analytics/internal_event_tracking/migration.md b/doc/development/internal_analytics/internal_event_tracking/migration.md
deleted file mode 100644
index 9d78f544f4c..00000000000
--- a/doc/development/internal_analytics/internal_event_tracking/migration.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../internal_event_instrumentation/migration.md'
-remove_date: '2023-12-27'
----
-
-This document was moved to [another location](../internal_event_instrumentation/migration.md).
-
-<!-- This redirect file can be deleted after <2023-12-27>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_analytics/internal_event_tracking/quick_start.md b/doc/development/internal_analytics/internal_event_tracking/quick_start.md
deleted file mode 100644
index 4c378c4d7bb..00000000000
--- a/doc/development/internal_analytics/internal_event_tracking/quick_start.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../internal_event_instrumentation/quick_start.md'
-remove_date: '2023-12-27'
----
-
-This document was moved to [another location](../internal_event_instrumentation/quick_start.md).
-
-<!-- This redirect file can be deleted after <2023-12-27>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_analytics/metrics/metrics_dictionary.md b/doc/development/internal_analytics/metrics/metrics_dictionary.md
index 463d5be9100..ba3fb28743a 100644
--- a/doc/development/internal_analytics/metrics/metrics_dictionary.md
+++ b/doc/development/internal_analytics/metrics/metrics_dictionary.md
@@ -81,9 +81,9 @@ Metric definitions can have one of the following values for `value_type`:
- `number`
- `string`
- `object`: A metric with `value_type: object` must have `value_json_schema` with a link to the JSON schema for the object.
-In general, we avoid complex objects and prefer one of the `boolean`, `number`, or `string` value types.
-An example of a metric that uses `value_type: object` is `topology` (`/config/metrics/settings/20210323120839_topology.yml`),
-which has a related schema in `/config/metrics/objects_schemas/topology_schema.json`.
+ In general, we avoid complex objects and prefer one of the `boolean`, `number`, or `string` value types.
+ An example of a metric that uses `value_type: object` is `topology` (`/config/metrics/settings/20210323120839_topology.yml`),
+ which has a related schema in `/config/metrics/objects_schemas/topology_schema.json`.
### Metric `time_frame`
diff --git a/doc/development/internal_analytics/review_guidelines.md b/doc/development/internal_analytics/review_guidelines.md
index eb59b834cbc..802a6f410ed 100644
--- a/doc/development/internal_analytics/review_guidelines.md
+++ b/doc/development/internal_analytics/review_guidelines.md
@@ -29,7 +29,7 @@ In most cases, an Analytics Instrumentation review is automatically added, but i
#### The merge request **author** should
- Decide whether a Analytics Instrumentation review is needed. You can skip the Analytics Instrumentation
-review and remove the labels if the changes are not related to the Analytics Instrumentation domain.
+ review and remove the labels if the changes are not related to the Analytics Instrumentation domain.
- If an Analytics Instrumentation review is needed and was not assigned automatically, add the labels
`~analytics instrumentation` and `~analytics instrumentation::review pending`.
- Use reviewer roulette to assign an [Analytics Instrumentation reviewer](https://gitlab-org.gitlab.io/gitlab-roulette/?hourFormat24=true&visible=reviewer%7Canalytics+instrumentation) who is not the author.
diff --git a/doc/development/internal_analytics/service_ping/review_guidelines.md b/doc/development/internal_analytics/service_ping/review_guidelines.md
deleted file mode 100644
index 0ca7b084fc4..00000000000
--- a/doc/development/internal_analytics/service_ping/review_guidelines.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../review_guidelines.md'
-remove_date: '2023-12-29'
----
-
-This document was moved to [another location](../review_guidelines.md).
-
-<!-- This redirect file can be deleted after <2023-12-29>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_analytics/service_ping/troubleshooting.md b/doc/development/internal_analytics/service_ping/troubleshooting.md
index 1b74921fb2f..637aec384c0 100644
--- a/doc/development/internal_analytics/service_ping/troubleshooting.md
+++ b/doc/development/internal_analytics/service_ping/troubleshooting.md
@@ -90,39 +90,7 @@ However, it has the following limitations:
always runs as a process alongside other GitLab components on any given node. For Service Ping, none of the node data would therefore
appear to be associated to any of the services running, because they all appear to be running on different hosts. To alleviate this problem, the `node_exporter` in GCK was arbitrarily "assigned" to the `web` service, meaning only for this service `node_*` metrics appears in Service Ping.
-## Service Ping Payload drop
-
-### Symptoms
-
-You will be alerted by the [Data team](https://about.gitlab.com/handbook/business-technology/data-team/) and their [Monte Carlo alerting](https://about.gitlab.com/handbook/business-technology/data-team/platform/monte-carlo/).
-
-### Locating the problem
-
-First you need to identify at which stage in Service Ping data pipeline the drop is occurring.
-
-Start at [Service Ping Health Dashboard](https://app.periscopedata.com/app/gitlab/968489) on Sisense.
-
-You can use [this query](https://gitlab.com/gitlab-org/gitlab/-/issues/347298#note_836685350) as an example, to start detecting when the drop started.
-
-### Troubleshoot the GitLab application layer
-
-We conducted an investigation into an unexpected drop in Service ping Payload events volume.
-GitLab team members can view more information in this confidential issue:
-`https://gitlab.com/gitlab-data/analytics/-/issues/11071`
-
-### Troubleshoot VersionApp layer
-
-Check if the [export jobs](https://gitlab.com/gitlab-org/gitlab-services/version.gitlab.com/-/tree/main/#data-export-using-pipeline-schedules) are successful.
-
-Check [Service Ping errors](https://app.periscopedata.com/app/gitlab/968489?widget=14609989&udv=0) in the [Service Ping Health Dashboard](https://app.periscopedata.com/app/gitlab/968489).
-
-### Troubleshoot Google Storage layer
-
-Check if the files are present in [Google Storage](https://console.cloud.google.com/storage/browser/cloudsql-gs-production-efd5e8-cloudsql-exports;tab=objects?project=gs-production-efd5e8&prefix=&forceOnObjectsSortingFiltering=false).
-
-### Troubleshoot the data warehouse layer
-
-Reach out to the [Data team](https://about.gitlab.com/handbook/business-technology/data-team/) to ask about current state of data warehouse. On their handbook page there is a [section with contact details](https://about.gitlab.com/handbook/business-technology/data-team/#how-to-connect-with-us).
+## Troubleshooting
### Cannot disable Service Ping with the configuration file
diff --git a/doc/development/internal_analytics/snowplow/review_guidelines.md b/doc/development/internal_analytics/snowplow/review_guidelines.md
deleted file mode 100644
index 0ca7b084fc4..00000000000
--- a/doc/development/internal_analytics/snowplow/review_guidelines.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../review_guidelines.md'
-remove_date: '2023-12-29'
----
-
-This document was moved to [another location](../review_guidelines.md).
-
-<!-- This redirect file can be deleted after <2023-12-29>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_api/index.md b/doc/development/internal_api/index.md
index 84f5d09418f..fc73fcb6c2c 100644
--- a/doc/development/internal_api/index.md
+++ b/doc/development/internal_api/index.md
@@ -534,7 +534,6 @@ metric counters.
| `counters["k8s_api_proxy_requests_via_user_access"]` | integer | no | The number to increase the `k8s_api_proxy_requests_via_user_access` counter by |
| `counters["k8s_api_proxy_requests_via_pat_access"]` | integer | no | The number to increase the `k8s_api_proxy_requests_via_pat_access` counter by |
| `unique_counters` | hash | no | Array of unique numbers |
-| `unique_counters["agent_users_using_ci_tunnel"]` | integer array | no | The set of unique user ids that have interacted a CI Tunnel to track the `agent_users_using_ci_tunnel` metric event |
| `unique_counters["k8s_api_proxy_requests_unique_users_via_ci_access"]` | integer array | no | The set of unique user ids that have interacted a CI Tunnel via `ci_access` to track the `k8s_api_proxy_requests_unique_users_via_ci_access` metric event |
| `unique_counters["k8s_api_proxy_requests_unique_agents_via_ci_access"]` | integer array | no | The set of unique agent ids that have interacted a CI Tunnel via `ci_access` to track the `k8s_api_proxy_requests_unique_agents_via_ci_access` metric event |
| `unique_counters["k8s_api_proxy_requests_unique_users_via_user_access"]` | integer array | no | The set of unique user ids that have interacted a CI Tunnel via `user_access` to track the `k8s_api_proxy_requests_unique_users_via_user_access` metric event |
diff --git a/doc/development/lfs.md b/doc/development/lfs.md
index 289c258fafe..2fb7d20cabc 100644
--- a/doc/development/lfs.md
+++ b/doc/development/lfs.md
@@ -180,32 +180,32 @@ sequenceDiagram
1. The user requests the project archive from the UI.
1. Workhorse forwards this request to Rails.
1. If the user is authorized to download the archive, Rails replies with
-an HTTP header of `Gitlab-Workhorse-Send-Data` with a base64-encoded
-JSON payload prefaced with `git-archive`. This payload includes the
-`SendArchiveRequest` binary message, which is encoded again in base64.
+ an HTTP header of `Gitlab-Workhorse-Send-Data` with a base64-encoded
+ JSON payload prefaced with `git-archive`. This payload includes the
+ `SendArchiveRequest` binary message, which is encoded again in base64.
1. Workhorse decodes the `Gitlab-Workhorse-Send-Data` payload. If the
-archive already exists in the archive cache, Workhorse sends that
-file. Otherwise, Workhorse sends the `SendArchiveRequest` to the
-appropriate Gitaly server.
+ archive already exists in the archive cache, Workhorse sends that
+ file. Otherwise, Workhorse sends the `SendArchiveRequest` to the
+ appropriate Gitaly server.
1. The Gitaly server calls `git archive <ref>` to begin generating
-the Git archive on-the-fly. If the `include_lfs_blobs` flag is enabled,
-Gitaly enables a custom LFS smudge filter via the `-c
-filter.lfs.smudge=/path/to/gitaly-lfs-smudge` Git option.
+ the Git archive on-the-fly. If the `include_lfs_blobs` flag is enabled,
+ Gitaly enables a custom LFS smudge filter via the `-c
+ filter.lfs.smudge=/path/to/gitaly-lfs-smudge` Git option.
1. When `git` identifies a possible LFS pointer using the
-`.gitattributes` file, `git` calls `gitaly-lfs-smudge` and provides the
-LFS pointer via the standard input. Gitaly provides `GL_PROJECT_PATH`
-and `GL_INTERNAL_CONFIG` as environment variables to enable lookup of
-the LFS object.
+ `.gitattributes` file, `git` calls `gitaly-lfs-smudge` and provides the
+ LFS pointer via the standard input. Gitaly provides `GL_PROJECT_PATH`
+ and `GL_INTERNAL_CONFIG` as environment variables to enable lookup of
+ the LFS object.
1. If a valid LFS pointer is decoded, `gitaly-lfs-smudge` makes an
-internal API call to Workhorse to download the LFS object from GitLab.
+ internal API call to Workhorse to download the LFS object from GitLab.
1. Workhorse forwards this request to Rails. If the LFS object exists
-and is associated with the project, Rails sends `ArchivePath` either
-with a path where the LFS object resides (for local disk) or a
-pre-signed URL (when object storage is enabled) via the
-`Gitlab-Workhorse-Send-Data` HTTP header with a payload prefaced with
-`send-url`.
+ and is associated with the project, Rails sends `ArchivePath` either
+ with a path where the LFS object resides (for local disk) or a
+ pre-signed URL (when object storage is enabled) via the
+ `Gitlab-Workhorse-Send-Data` HTTP header with a payload prefaced with
+ `send-url`.
1. Workhorse retrieves the file and send it to the `gitaly-lfs-smudge`
-process, which writes the contents to the standard output.
+ process, which writes the contents to the standard output.
1. `git` reads this output and sends it back to the Gitaly process.
1. Gitaly sends the data back to Rails.
1. The archive data is sent back to the client.
diff --git a/doc/development/logging.md b/doc/development/logging.md
index 2af914d76ef..1cfcc6530c5 100644
--- a/doc/development/logging.md
+++ b/doc/development/logging.md
@@ -330,7 +330,7 @@ Entry points can be seen at:
When adding new attributes, make sure they're exposed within the context of the entry points above and:
- Pass them within the hash to the `with_context` (or `push`) method (make sure to pass a Proc if the
-method or variable shouldn't be evaluated right away)
+ method or variable shouldn't be evaluated right away)
- Change `Gitlab::ApplicationContext` to accept these new values
- Make sure the new attributes are accepted at [`Labkit::Context`](https://gitlab.com/gitlab-org/labkit-ruby/blob/master/lib/labkit/context.rb)
diff --git a/doc/development/merge_request_concepts/diffs/index.md b/doc/development/merge_request_concepts/diffs/index.md
index ad0e8603983..eb7c836e610 100644
--- a/doc/development/merge_request_concepts/diffs/index.md
+++ b/doc/development/merge_request_concepts/diffs/index.md
@@ -28,6 +28,7 @@ codebase in the future:
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
[Recording on YouTube](https://www.youtube.com/watch?v=K6G3gMcFyek)
+ <!-- Video published on 2019-01-29 -->
- Slides on [Google Slides](https://docs.google.com/presentation/d/1bGutFH2AT3bxOPZuLMGl1ANWHqFnrxwQwjiwAZkF-TU/edit)
- [PDF slides](https://gitlab.com/gitlab-org/create-stage/uploads/b5ad2f336e0afcfe0f99db0af0ccc71a/)
@@ -192,7 +193,7 @@ has been introduced.
One of the key challenges to deal with when working on merge ref diffs are merge
conflicts. If the target and source branch contains a merge conflict, the branches
cannot be automatically merged. The
-<i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [recording on YouTube](https://www.youtube.com/watch?v=GFXIFA4ZuZw&feature=youtu.be&ab_channel=GitLabUnfiltered)
+<i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [recording on YouTube](https://www.youtube.com/watch?v=GFXIFA4ZuZw&feature=youtu.be&ab_channel=GitLabUnfiltered) <!-- Video published on 2020-07-24 -->
is a quick introduction to the problem and the motivation behind the [epic](https://gitlab.com/groups/gitlab-org/-/epics/854).
In 13.5 a solution for both-modified merge
diff --git a/doc/development/migration_style_guide.md b/doc/development/migration_style_guide.md
index 30f598ef736..be76680c44c 100644
--- a/doc/development/migration_style_guide.md
+++ b/doc/development/migration_style_guide.md
@@ -723,7 +723,7 @@ The `with_lock_retries` method **cannot** be used within the `change` method, yo
1. For each iteration, set a pre-configured `lock_timeout`.
1. Try to execute the given block. (`remove_column`).
1. If `LockWaitTimeout` error is raised, sleep for the pre-configured `sleep_time`
-and retry the block.
+ and retry the block.
1. If no error is raised, the current iteration has successfully executed the block.
For more information check the [`Gitlab::Database::WithLockRetries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/database/with_lock_retries.rb) class. The `with_lock_retries` helper method is implemented in the [`Gitlab::Database::MigrationHelpers`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/database/migration_helpers.rb) module.
@@ -733,7 +733,7 @@ In a worst-case scenario, the method:
- Executes the block for a maximum of 50 times over 40 minutes.
- Most of the time is spent in a pre-configured sleep period after each iteration.
- After the 50th retry, the block is executed without `lock_timeout`, just
-like a standard migration invocation.
+ like a standard migration invocation.
- If a lock cannot be acquired, the migration fails with `statement timeout` error.
The migration might fail if there is a very long running transaction (40+ minutes)
diff --git a/doc/development/multi_version_compatibility.md b/doc/development/multi_version_compatibility.md
index 40a30aa4926..716e42655d0 100644
--- a/doc/development/multi_version_compatibility.md
+++ b/doc/development/multi_version_compatibility.md
@@ -234,7 +234,7 @@ And these deployments align perfectly with application changes.
1. At the beginning we have `Version N` on `Schema A`.
1. Then we have a _long_ transition period with both `Version N` and `Version N+1` on `Schema B`.
1. When we only have `Version N+1` on `Schema B` the schema changes again.
-1. Finally we have `Version N+1` on `Schema C`.
+1. Finally we have `Version N+1` on `Schema C`.
With all those details in mind, let's imagine we need to replace a query, and this query has an index to support it.
@@ -310,10 +310,10 @@ variable `CI_NODE_TOTAL` being an integer failed. This was caused because after
1. New code: Sidekiq created a new pipeline and new build. `build.options[:parallel]` is a `Hash`.
1. Old code: Runners requested a job from an API node that is running the previous version.
1. As a result, the [new code](https://gitlab.com/gitlab-org/gitlab/-/blob/42b82a9a3ac5a96f9152aad6cbc583c42b9fb082/app/models/concerns/ci/contextable.rb#L104)
-was not run on the API server. The runner's request failed because the
-older API server tried return the `CI_NODE_TOTAL` CI/CD variable, but
-instead of sending an integer value (for example, 9), it sent a serialized
-`Hash` value (`{:number=>9, :total=>9}`).
+ was not run on the API server. The runner's request failed because the
+ older API server tried return the `CI_NODE_TOTAL` CI/CD variable, but
+ instead of sending an integer value (for example, 9), it sent a serialized
+ `Hash` value (`{:number=>9, :total=>9}`).
If you look at the [deployment pipeline](https://ops.gitlab.net/gitlab-com/gl-infra/deployer/-/pipelines/202212),
you see all nodes were updated in parallel:
@@ -322,11 +322,11 @@ you see all nodes were updated in parallel:
However, even though the updated started around the same time, the completion time varied significantly:
-|Node type|Duration (min)|
-|---------|--------------|
-|API |54 |
-|Sidekiq |21 |
-|K8S |8 |
+| Node type | Duration (min) |
+|-----------|----------------|
+| API | 54 |
+| Sidekiq | 21 |
+| K8S | 8 |
Builds that used the `parallel` keyword and depended on `CI_NODE_TOTAL`
and `CI_NODE_INDEX` would fail during the time after Sidekiq was
diff --git a/doc/development/packages/cleanup_policies.md b/doc/development/packages/cleanup_policies.md
index bbec6ce0623..789bb408dd7 100644
--- a/doc/development/packages/cleanup_policies.md
+++ b/doc/development/packages/cleanup_policies.md
@@ -27,7 +27,7 @@ The parameters are split into two groups:
- The parameters that define tags to destroy:
- `older_than`. Destroy tags older than this timestamp.
- `name_regex`. Destroy tags matching this regular expression.
-
+
The remaining parameters impact when the policy is executed:
- `enabled`. Defines if the policy is enabled or not.
@@ -41,8 +41,7 @@ follows this design.
- Policy executions are limited in time.
- Policy executions are either complete or partial.
-- The background jobs will consider the next job to be executed based on two
-priorities:
+- The background jobs will consider the next job to be executed based on two priorities:
- Policy with a `next_run_at` in the past.
- Partially executed policies.
@@ -54,7 +53,7 @@ Background jobs for this execution are organized on:
- A cron background job that runs every hour.
- A set of background jobs that will loop on container repositories that need
-a policy execution.
+ a policy execution.
#### The cron background job
@@ -63,7 +62,7 @@ is quite simple.
Its main tasks are:
1. Check if there are any container repositories in need of a cleanup. If any,
-enqueue as many limited capacity jobs as necessary, up to a limit.
+ enqueue as many limited capacity jobs as necessary, up to a limit.
1. Compute metrics for cleanup policies and log them.
#### The limited capacity job
@@ -97,14 +96,14 @@ flowchart TD
```
- [`ContainerExpirationPolicies::CleanupService`](https://gitlab.com/gitlab-org/gitlab/-/blob/6546ffc6fe4e9b447a1b7f050edddb8926fe4a3d/app/services/container_expiration_policies/cleanup_service.rb).
-This service mainly deals with container repository `expiration_policy_cleanup_status`
-updates and will call the cleanup tags service.
+ This service mainly deals with container repository `expiration_policy_cleanup_status`
+ updates and will call the cleanup tags service.
- [`Projects::ContainerRepository::CleanupTagsService`](https://gitlab.com/gitlab-org/gitlab/-/blob/f23d70b7d638c38d71af102cfd32a3f6751596f9/app/services/projects/container_repository/cleanup_tags_service.rb).
-This service receives the policy parameters and builds the list of tags to
-destroy on the container registry.
+ This service receives the policy parameters and builds the list of tags to
+ destroy on the container registry.
- [`Projects::ContainerRepository::DeleteTagsService`](https://gitlab.com/gitlab-org/gitlab/-/blob/f23d70b7d638c38d71af102cfd32a3f6751596f9/app/services/projects/container_repository/delete_tags_service.rb).
-This service receives a list of tags and loops on that list. For each tag,
-the service will call the container registry API endpoint to destroy the target tag.
+ This service receives a list of tags and loops on that list. For each tag,
+ the service will call the container registry API endpoint to destroy the target tag.
The cleanup tags service uses a very specific [execution order](../../user/packages/container_registry/reduce_container_registry_storage.md#how-the-cleanup-policy-works)
to build the list of tags to destroy.
diff --git a/doc/development/packages/settings.md b/doc/development/packages/settings.md
index 89f91f41f4c..690f9ccae93 100644
--- a/doc/development/packages/settings.md
+++ b/doc/development/packages/settings.md
@@ -70,6 +70,8 @@ Setting | Table | Description
`nuget_duplicates_allowed` | `namespace_package_settings` | Allow or prevent duplicate NuGet packages.
`nuget_duplicate_exception_regex` | `namespace_package_settings` | Regex defining NuGet packages that are allowed to be duplicate when duplicates are not allowed.
`nuget_symbol_server_enabled` | `namespace_package_settings` | Enable or disable the NuGet symbol server.
+`terraform_module_duplicates_allowed` | `namespace_package_settings` | Allow or prevent duplicate Terraform module packages.
+`terraform_module_duplicate_exception_regex` | `namespace_package_settings` | Regex defining Terraform module packages that are allowed to be duplicate when duplicates are not allowed.
Dependency Proxy Cleanup Policies - `ttl` | `dependency_proxy_image_ttl_group_policies` | Number of days to retain an unused Dependency Proxy file before it is removed.
Dependency Proxy - `enabled` | `dependency_proxy_image_ttl_group_policies` | Enable or disable the Dependency Proxy cleanup policy.
diff --git a/doc/development/pages/index.md b/doc/development/pages/index.md
index f4710c951ed..7bf89789ee0 100644
--- a/doc/development/pages/index.md
+++ b/doc/development/pages/index.md
@@ -22,14 +22,14 @@ subdomain. You can set the GitLab Pages hostname:
As `/etc/hosts` don't support wildcard hostnames, you must configure one entry
for GitLab Pages, and then one entry for each page site:
- ```plaintext
- 127.0.0.1 gdk.test # If you're using GDK
- 127.0.0.1 pages.gdk.test # Pages host
- # Any namespace/group/user needs to be added
- # as a subdomain to the pages host. This is because
- # /etc/hosts doesn't accept wildcards
- 127.0.0.1 root.pages.gdk.test # for the root pages
- ```
+```plaintext
+127.0.0.1 gdk.test # If you're using GDK
+127.0.0.1 pages.gdk.test # Pages host
+# Any namespace/group/user needs to be added
+# as a subdomain to the pages host. This is because
+# /etc/hosts doesn't accept wildcards
+127.0.0.1 root.pages.gdk.test # for the root pages
+```
### With DNS wildcard alternatives
@@ -151,8 +151,8 @@ GitLab Pages access control is disabled by default. To enable it:
1. Create an [Instance-wide OAuth application](../../integration/oauth_provider.md#create-an-instance-wide-application)
with the `api` scope.
1. Set the value of your `redirect-uri` to the `pages-domain` authorization endpoint
-(for example, `http://pages.gdk.test:3010/auth`).
-The `redirect-uri` must not contain any GitLab Pages site domain.
+ (for example, `http://pages.gdk.test:3010/auth`).
+ The `redirect-uri` must not contain any GitLab Pages site domain.
1. Add the auth client configuration:
diff --git a/doc/development/permissions/custom_roles.md b/doc/development/permissions/custom_roles.md
index 9d02c0c6f39..53589658f56 100644
--- a/doc/development/permissions/custom_roles.md
+++ b/doc/development/permissions/custom_roles.md
@@ -34,7 +34,7 @@ Like static roles, custom roles are [inherited](../../user/project/members/index
- A Group or project membership can be associated with any custom role that is defined on the root-level group of the group or project.
- The `member_roles` table includes individual permissions and a `base_access_level` value.
- The `base_access_level` must be a [valid access level](../../api/access_requests.md#valid-access-levels).
-The `base_access_level` determines which abilities are included in the custom role. For example, if the `base_access_level` is `10`, the custom role will include any abilities that a static Guest role would receive, plus any additional abilities that are enabled by the `member_roles` record by setting an attribute, such as `read_code`, to true.
+ The `base_access_level` determines which abilities are included in the custom role. For example, if the `base_access_level` is `10`, the custom role will include any abilities that a static Guest role would receive, plus any additional abilities that are enabled by the `member_roles` record by setting an attribute, such as `read_code`, to true.
- A custom role can enable additional abilities for a `base_access_level` but it cannot disable a permission. As a result, custom roles are "additive only". The rationale for this choice is [in this comment](https://gitlab.com/gitlab-org/gitlab/-/issues/352891#note_1059561579).
- Custom role abilities are supported at project level and group level.
@@ -169,7 +169,7 @@ For example, you see in `GroupPolicy` that there is an ability called
than adding a row to the `member_roles` table for each ability, consider
renaming them to `read_security_dashboard` and adding `read_security_dashboard`
to the `member_roles` table. This is more expected because it means that
-enabling `read_security_dashboard` on the parent group will enable the custom
+enabling `read_security_dashboard` on the parent group will enable the custom role.
For example, `GroupPolicy` has an ability called `read_group_security_dashboard` and `ProjectPolicy` has an ability
called `read_project_security_dashboard`. If you would like to make both customizable, rather than adding a row to the
`member_roles` table for each ability, consider renaming them to `read_security_dashboard` and adding
@@ -183,23 +183,116 @@ security dashboard.
To add a new ability to a custom role:
- Generate YAML file by running `./ee/bin/custom-ability` generator
-- Add a new column to `member_roles` table, for example in [this change in merge request 114734](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114734/diffs#diff-content-5c53d6f1c29a272a87eecea3f62d017ab6635275).
-- Add the ability to the `MemberRole` model, `ALL_CUSTOMIZABLE_PERMISSIONS` hash, for example in [this change in merge request 121534](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121534/diffs#ce5ec769500a53ce2b603467d9984fc2b33ca71d_8_8). There are following possible keys in the `ALL_CUSTOMIZABLE_PERMISSIONS` hash:
-
- - `description` - description of the ability.
- - `minimal_level` - minimal level a user has to have in order to be able to be assigned to the ability.
- - `requirement` - required ability for the ability defined in the hash, in case the requirement is `false`, the ability can not be `true`.
-
+- Add a new column to `member_roles` table, either manually or by running `custom_roles:code` generator, eg. by running `rails generate gitlab:custom_roles:code --ability new_ability_name`. The ability parameter is case sensitive and has to exactly match the permission name from the YAML file.
- Add the ability to the respective Policy for example in [this change in merge request 114734](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114734/diffs#diff-content-edcbe28bdecbd848d4d9efdc5b5e9bddd2a7299e).
-- Update the specs.
+- Update the specs. Don't forget to add a spec to `ee/spec/requests/custom_roles` - the spec template file was pre-generated if you used the code generator
+- Compile the documentation by running `bundle exec rake gitlab:custom_roles:compile_docs`
+- Update the GraphQL documentation by running `bundle exec rake gitlab:graphql:compile_docs`
Examples of merge requests adding new abilities to custom roles:
- [Read code](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106256)
- [Read vulnerability](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114734)
-- [Admin vulnerability](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121534) - this is the newest MR implementing a new custom role ability. Some changes from the previous MRs are not necessary anymore (such as a change of the Preloader query or adding a method to `User` model).
+- [Admin vulnerability](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121534)
+
+The above merge requests don't use YAML files and code generators. Some of the changes are not needed anymore. We will update the documentation once we have a permission implemented using the generators.
+
+If you have any concerns, put the new ability behind a feature flag.
+
+#### Documenting handling the feature flag
+
+- When you introduce a new custom ability under a feature flag, add the `feature_flag` attribute to the appropriate ability YAML file.
+- When you enable the ability by default, add the `feature_flag_enabled_milestone` and `feature_flag_enabled_mr` attributes to the appropriate ability YAML file and regenerate the documentation.
+- You do not have to include these attributes in the YAML file if the feature flag is enabled by default in the same release as the ability is introduced.
+
+#### Testing
+
+Unit tests are preferred to test out changes to any policies affected by the
+addition of new custom permissions. Custom Roles is an Ultimate tier feature so
+these tests can be found in the `ee/spec/policies` directory. The [spec file](https://gitlab.com/gitlab-org/gitlab/-/blob/13baa4e8c92a56260591a5bf0a58d3339890ee10/ee/spec/policies/project_policy_spec.rb#L2726-2740) for
+the `ProjectPolicy` contains shared examples that can be used to test out the
+following conditions:
+
+- when the `custom_roles` licensed feature is not enabled
+- when the `custom_roles` licensed feature is enabled
+ - when a user is a member of a custom role via an inherited group member
+ - when a user is a member of a custom role via a direct group member
+ - when a user is a member of a custom role via a direct project membership
+
+Below is an example for testing out `ProjectPolicy` related changes.
+
+```ruby
+ context 'for a role with `custom_permission` enabled' do
+ let(:member_role_abilities) { { custom_permission: true } }
+ let(:allowed_abilities) { [:custom_permission] }
+
+ it_behaves_like 'custom roles abilities'
+ end
+```
+
+Request specs are preferred to test out any endpoint that allow access via a custom role permission.
+This includes controllers, REST API, and GraphQL. Examples of request specs can be found in `ee/spec/requests/custom_roles/`. In this directory you will find a sub-directory named after each permission that can be enabled via a custom role.
+The `custom_roles` licensed feature must be enabled to test this functionality.
+
+Below is an example of the typical setup that is required to test out a
+Rails Controller endpoint.
+
+```ruby
+ let_it_be(:user) { create(:user) }
+ let_it_be(:project) { create(:project, :repository, :in_group) }
+ let_it_be(:role) { create(:member_role, :guest, namespace: project.group, custom_permission: true) }
+ let_it_be(:membership) { create(:project_member, :guest, member_role: role, user: user, project: project) }
+
+ before do
+ stub_licensed_features(custom_roles: true)
+ sign_in(user)
+ end
+
+ describe MyController do
+ describe '#show' do
+ it 'allows access' do
+ get my_controller_path(project)
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to render_template(:show)
+ end
+ end
+ end
+```
+
+Below is an example of the typical setup that is required to test out a GraphQL
+mutation.
+
+```ruby
+ let_it_be(:user) { create(:user) }
+ let_it_be(:project) { create(:project, :repository, :in_group) }
+ let_it_be(:role) { create(:member_role, :guest, namespace: project.group, custom_permission: true) }
+ let_it_be(:membership) { create(:project_member, :guest, member_role: role, user: user, project: project) }
+
+ before do
+ stub_licensed_features(custom_roles: true)
+ end
+
+ describe MyMutation do
+ include GraphqlHelpers
+
+ describe '#show' do
+ it 'allows access' do
+ post_graphql_mutation(graphql_mutation(:my_mutation, {
+ example: "Example"
+ }), current_user: user)
+
+ expect(response).to have_gitlab_http_status(:success)
+ mutation_response = graphql_mutation_response(:my_mutation)
+ expect(mutation_response).to be_present
+ expect(mutation_response["errors"]).to be_empty
+ end
+ end
+ end
+```
-You should make sure a new custom roles ability is under a feature flag.
+[`GITLAB_DEBUG_POLICIES=true`](#finding-existing-abilities-checks) can be used
+to troubleshoot runtime policy decisions.
## Custom abilities definition
@@ -213,6 +306,7 @@ To add a new custom ability:
- Use the `ee/bin/custom-ability` CLI to create the YAML definition automatically.
- Perform manual steps to create a new file in `ee/config/custom_abilities/` with the filename matching the name of the ability name.
1. Add contents to the file that conform to the [schema](#schema) defined in `ee/config/custom_abilities/types/type_schema.json`.
+1. Add [tests](#testing) for the new ability in `ee/spec/requests/custom_roles/` with a new directory named after the ability name.
### Schema
@@ -222,7 +316,7 @@ To add a new custom ability:
| `description` | yes | Human-readable description of the custom ability. |
| `feature_category` | yes | Name of the feature category. For example, `vulnerability_management`. |
| `introduced_by_issue` | yes | Issue URL that proposed the addition of this custom ability. |
-| `introduced_by_mr` | yes | MR URL that added this custom ability. |
+| `introduced_by_mr` | no | MR URL that added this custom ability. |
| `milestone` | yes | Milestone in which this custom ability was added. |
| `group_ability` | yes | Indicate whether this ability is checked on group level. |
| `project_ability` | yes | Indicate whether this ability is checked on project level. |
diff --git a/doc/development/permissions/predefined_roles.md b/doc/development/permissions/predefined_roles.md
index 7cb00977e1f..577cf6192c4 100644
--- a/doc/development/permissions/predefined_roles.md
+++ b/doc/development/permissions/predefined_roles.md
@@ -83,10 +83,10 @@ module):
- Maintainer (`40`)
- Owner (`50`)
-If a user is the member of both a project and the project parent groups, the
+If a user is a member of both a project and the project parent groups, the
highest permission is the applied access level for the project.
-If a user is the member of a project, but not the parent groups, they
+If a user is a member of a project, but not the parent groups, they
can still view the groups and their entities (like epics).
Project membership (where the group membership is already taken into account)
diff --git a/doc/development/pipelines/index.md b/doc/development/pipelines/index.md
index c4dfda9466a..91f4ae702ac 100644
--- a/doc/development/pipelines/index.md
+++ b/doc/development/pipelines/index.md
@@ -13,7 +13,7 @@ which itself includes files under
for easier maintenance.
We're striving to [dogfood](https://about.gitlab.com/handbook/engineering/development/principles/#dogfooding)
-GitLab [CI/CD features and best-practices](../../ci/yaml/index.md)
+GitLab [CI/CD features and best-practices](../../ci/index.md)
as much as possible.
## Predictive test jobs before a merge request is approved
@@ -268,6 +268,9 @@ the specific list of rules.
If you want to force `e2e:package-and-test` to run regardless of your changes, you can add the
`pipeline:run-all-e2e` label to the merge request.
+The [`e2e:test-on-gdk`](../testing_guide/end_to_end/index.md#using-the-test-on-gdk-job) child pipeline runs `:reliable`
+E2E specs automatically for all `code patterns changes`. See `.qa:rules:e2e-blocking` [`rules.gitlab-ci.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/rules.gitlab-ci.yml) for specific set of rules.
+
Consult the [End-to-end Testing](../testing_guide/end_to_end/index.md) dedicated page for more information.
### Review app jobs
@@ -297,6 +300,23 @@ set and get the `ee/` folder removed before the tests start running.
The intent is to ensure that a change doesn't introduce a failure after `gitlab-org/gitlab` is synced to `gitlab-org/gitlab-foss`.
+#### As-if-FOSS cross project downstream pipeline
+
+As an alternative to the `* as-if-foss` jobs, we can also run a cross project
+FOSS pipeline exactly in the `gitlab-org/gitlab-foss` project. We trigger it
+in the following cases:
+
+- when the `pipeline:run-as-if-foss-cross-project` label is set on the merge request
+
+This is still working-in-progress to replace the `* as-if-foss` jobs. The
+goal is to simplify pipeline rules and make it more clear about the intention.
+
+##### Tokens set in the project variables
+
+- `AS_IF_FOSS_TOKEN`: This is a [GitLab FOSS](https://gitlab.com/gitlab-org/gitlab-foss)
+ project token with `developer` role and `write_repository` permission,
+ to push generated `as-if-foss/*` branch.
+
### As-if-JH cross project downstream pipeline
#### What it is
@@ -396,7 +416,8 @@ flowchart TD
- `ADD_JH_FILES_TOKEN`: This is a [GitLab JH mirror](https://gitlab.com/gitlab-org/gitlab-jh-mirrors/gitlab)
project token with `read_api` permission, to be able to download JiHu files.
- `AS_IF_JH_TOKEN`: This is a [GitLab JH validation](https://gitlab.com/gitlab-org-sandbox/gitlab-jh-validation)
- project token with `write_repository` permission, to push generated `as-if-jh/*` branch.
+ project token with `developer` role and `write_repository` permission,
+ to push generated `as-if-jh/*` branch.
##### How we generate the as-if-JH branch
@@ -610,30 +631,30 @@ Exceptions to this general guideline should be motivated and documented.
### Ruby versions testing
-We're running Ruby 3.0 on GitLab.com, as well as for the default branch.
-To prepare for the next Ruby version, we run merge requests in Ruby 3.1.
+We're running Ruby 3.1 on GitLab.com, as well as for the default branch.
+To prepare for the next Ruby version, we will run merge requests in Ruby 3.2,
+starting on February 2024. Please see the roadmap at
+[Ruby 3.2 epic](https://gitlab.com/groups/gitlab-org/-/epics/9684#plan)
+for more details.
-This takes effects at the time when
-[Run merge requests in Ruby 3.1 by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134290)
-is merged. See
-[Ruby 3.1 epic](https://gitlab.com/groups/gitlab-org/-/epics/10034)
-for the roadmap to fully make Ruby 3.1 the default.
+To make sure all supported Ruby versions are working, we also run our test
+suite on dedicated 2-hourly scheduled pipelines for each supported versions.
-To make sure both Ruby versions are working, we also run our test suite
-against both Ruby 3.0 and Ruby 3.1 on dedicated 2-hourly scheduled pipelines.
+For merge requests, you can add the following labels to run the respective
+Ruby version only:
-For merge requests, you can add the `pipeline:run-in-ruby3_0` label to switch
-the Ruby version to 3.0. When you do this, the test suite will no longer run
-in Ruby 3.1 (default for merge requests).
+- `pipeline:run-in-ruby3_0`
+- `pipeline:run-in-ruby3_1`
+- `pipeline:run-in-ruby3_2`
-When the pipeline is running in a Ruby version not considered default, an
-additional job `verify-default-ruby` will also run and always fail to remind
-us to remove the label and run in default Ruby before merging the merge
-request. At the moment both Ruby 3.0 and Ruby 3.1 are considered default.
+Note that when you do this, the test suite will no longer run in the default
+Ruby version for merge requests. In this case, an additional job
+`verify-default-ruby` will also run and always fail to remind us to remove
+the label and run in default Ruby before merging the merge request.
This should let us:
-- Test changes for Ruby 3.1
+- Test changes for any supported Ruby versions
- Make sure it will not break anything when it's merged into the default branch
### PostgreSQL versions testing
@@ -649,24 +670,27 @@ We also run our test suite against PostgreSQL 13 upon specific database library
| Where? | PostgreSQL version | Ruby version |
|--------------------------------------------------------------------------------------------------|-------------------------------------------------|-----------------------|
-| Merge requests | 14 (default version), 13 for DB library changes | 3.1 |
-| `master` branch commits | 14 (default version), 13 for DB library changes | 3.0 (default version) |
-| `maintenance` scheduled pipelines for the `master` branch (every even-numbered hour) | 14 (default version), 13 for DB library changes | 3.0 (default version) |
-| `maintenance` scheduled pipelines for the `ruby3_1` branch (every odd-numbered hour), see below. | 14 (default version), 13 for DB library changes | 3.1 |
-| `nightly` scheduled pipelines for the `master` branch | 14 (default version), 13, 15 | 3.0 (default version) |
-
-There are 2 pipeline schedules used for testing Ruby 3.1. One is triggering a
-pipeline in `ruby3_1-sync` branch, which updates the `ruby3_1` branch with latest
-`master`, and no pipelines will be triggered by this push. The other schedule
-is triggering a pipeline in `ruby3_1` 5 minutes after it, which is considered
-the maintenance schedule to run test suites and update cache.
-
-The `ruby3_1` branch must not have any changes. The branch is only there to set
-`RUBY_VERSION` to `3.1` in the maintenance pipeline schedule.
-
-The `gitlab` job in the `ruby3_1-sync` branch uses a `gitlab-org/gitlab` project
-token with `write_repository` scope and `Maintainer` role with no expiration.
-The token is stored in the `RUBY3_1_SYNC_TOKEN` variable in `gitlab-org/gitlab`.
+| Merge requests | 14 (default version), 13 for DB library changes | 3.1 (default version) |
+| `master` branch commits | 14 (default version), 13 for DB library changes | 3.1 (default version) |
+| `maintenance` scheduled pipelines for the `master` branch (every even-numbered hour at XX:05) | 14 (default version), 13 for DB library changes | 3.1 (default version) |
+| `maintenance` scheduled pipelines for the `ruby3_0` branch (every odd-numbered hour at XX:40) | 14 (default version), 13 for DB library changes | 3.0 |
+| `maintenance` scheduled pipelines for the `ruby3_2` branch (every odd-numbered hour at XX:10) | 14 (default version), 13 for DB library changes | 3.2 |
+| `nightly` scheduled pipelines for the `master` branch | 14 (default version), 13, 15 | 3.1 (default version) |
+
+For each current Ruby versions we're testing against with, we run
+maintenance scheduled pipelines every 2 hours on their respective `ruby\d_\d`
+branches. All these branches must not have any changes. These branches are
+only there to run pipelines with their respective Ruby versions in the
+scheduled maintenance pipelines.
+
+Additionally, we have scheduled pipelines running on `ruby-sync` branch also
+every 2 hours, updating all the `ruby\d_\d` branches to be up-to-date with
+the default branch `master`. No pipelines will be triggered by this push.
+
+The `gitlab` job in the `ruby-sync` branch uses a `gitlab-org/gitlab` project
+token named `RUBY_SYNC` with `write_repository` scope and `Maintainer` role,
+expiring on 2024-12-01. The token is stored in the `RUBY_SYNC_TOKEN` variable
+in the pipeline schedule for `ruby-sync` branch.
### Redis versions testing
@@ -692,9 +716,9 @@ We also run tests with a single database in nightly scheduled pipelines, and in
Single database tests run in two modes:
1. **Single database with one connection**. Where GitLab connects to all the tables using one connection pool.
-This runs through all the jobs that end with `-single-db`
+ This runs through all the jobs that end with `-single-db`
1. **Single database with two connections**. Where GitLab connects to `gitlab_main`, `gitlab_ci` database tables
-using different database connections. This runs through all the jobs that end with `-single-db-ci-connection`.
+ using different database connections. This runs through all the jobs that end with `-single-db-ci-connection`.
If you want to force tests to run with a single database, you can add the `pipeline:run-single-db` label to the merge request.
@@ -747,28 +771,29 @@ graph LR
### Backend pipeline
-[Reference pipeline](https://gitlab.com/gitlab-org/gitlab/-/pipelines/433316063).
+[Reference pipeline](https://gitlab.com/gitlab-org/gitlab/-/pipelines/1118782302).
```mermaid
graph RL;
classDef criticalPath fill:#f66;
- 1-3["compile-test-assets (5.5 minutes)"];
- class 1-3 criticalPath;
+ 1-1["clone-gitlab-repo (1 minute)"];
+ 1-3["compile-test-assets (3 minutes)"];
click 1-3 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=6914317&udv=0"
- 1-6["setup-test-env (3.6 minutes)"];
+ 1-6["setup-test-env (4 minutes)"];
+ class 1-6 criticalPath;
click 1-6 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=6914315&udv=0"
- 1-14["retrieve-tests-metadata"];
+ 1-14["retrieve-tests-metadata (50 seconds)"];
click 1-14 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=8356697&udv=0"
- 1-15["detect-tests"];
+ 1-15["detect-tests (1 minute)"];
click 1-15 "https://app.periscopedata.com/app/gitlab/652085/EP---Jobs-Durations?widget=10113603&udv=1005715"
- 2_5-1["rspec & db jobs (24 minutes)"];
+ 2_5-1["rspec & db jobs (30~50 minutes)"];
class 2_5-1 criticalPath;
click 2_5-1 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations"
- 2_5-1 --> 1-3 & 1-6 & 1-14 & 1-15;
+ 2_5-1 --> 1-1 & 1-3 & 1-6 & 1-14 & 1-15;
- ac-1["rspec:artifact-collector (2 minutes)<br/>(workaround for 'needs' limitation)"];
+ ac-1["rspec:artifact-collector (30 seconds)<br/>(workaround for 'needs' limitation)"];
class ac-1 criticalPath;
ac-1 --> 2_5-1;
@@ -781,7 +806,6 @@ graph RL;
class 4_3-1 criticalPath;
click 4_3-1 "https://app.periscopedata.com/app/gitlab/652085/EP---Jobs-Durations?widget=13446492&udv=1005715"
4_3-1 --> 3_2-1;
-
```
### Review app pipeline
diff --git a/doc/development/pipelines/internals.md b/doc/development/pipelines/internals.md
index 1fdb2014c1f..16d0bfdfa30 100644
--- a/doc/development/pipelines/internals.md
+++ b/doc/development/pipelines/internals.md
@@ -48,6 +48,25 @@ from using `$FORCE_GITLAB_CI`.
- [JiHu validation pipeline](https://about.gitlab.com/handbook/ceo/chief-of-staff-team/jihu-support/jihu-validation-pipelines.html)
- [Gitaly downstream GitLab pipeline](https://gitlab.com/gitlab-org/gitaly/-/issues/4615)
+See the next section for how we can enable pipelines without using
+`$FORCE_GITLAB_CI`.
+
+#### Alternative to `$FORCE_GITLAB_CI`
+
+Essentially, we use different variables to enable different pipelines.
+An example doing this is `$START_AS_IF_FOSS`. When we want to trigger a
+cross project FOSS pipeline, we set `$START_AS_IF_FOSS`, along with a set of
+other variables like `$ENABLE_RSPEC_UNIT`, `$ENABLE_RSPEC_SYSTEM`, and so on
+so forth to enable each jobs we want to run in the as-if-foss cross project
+downstream pipeline.
+
+The advantage of this over `$FORCE_GITLAB_CI` is that we have full control
+over how we want to run the pipeline because `$START_AS_IF_FOSS` is only used
+for this purpose, and changing how the pipeline behaves under this variable
+will not affect other types of pipelines, while using `$FORCE_GITLAB_CI` we
+do not know what exactly the pipeline is because it's used for multiple
+purposes.
+
## Default image
The default image is defined in [`.gitlab-ci.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab-ci.yml).
@@ -149,6 +168,7 @@ that are scoped to a single [configuration keyword](../../ci/yaml/index.md#job-k
|------------------|-------------|
| `.default-retry` | Allows a job to [retry](../../ci/yaml/index.md#retry) upon `unknown_failure`, `api_failure`, `runner_system_failure`, `job_execution_timeout`, or `stuck_or_timeout_failure`. |
| `.default-before_script` | Allows a job to use a default `before_script` definition suitable for Ruby/Rails tasks that may need a database running (for example, tests). |
+| `.repo-from-artifacts` | Allows a job to fetch the repository from artifacts in `clone-gitlab-repo` instead of cloning. This should reduce GitLab.com Gitaly load and also slightly improve the speed because downloading from artifacts is faster than cloning. Note that this should be avoided to be used with jobs having `needs: []` because otherwise it'll start later and we normally want all jobs to start as soon as possible. Use this only on jobs which has other dependencies so that we don't wait longer than just cloning. Note that this behavior can be controlled via `CI_FETCH_REPO_GIT_STRATEGY`. See [Fetch repository via artifacts instead of cloning/fetching from Gitaly](performance.md#fetch-repository-via-artifacts-instead-of-cloningfetching-from-gitaly) for more details. |
| `.setup-test-env-cache` | Allows a job to use a default `cache` definition suitable for setting up test environment for subsequent Ruby/Rails tasks. |
| `.ruby-cache` | Allows a job to use a default `cache` definition suitable for Ruby tasks. |
| `.static-analysis-cache` | Allows a job to use a default `cache` definition suitable for static analysis tasks. |
@@ -199,6 +219,7 @@ and included in `rules` definitions via [YAML anchors](../../ci/yaml/yaml_optimi
| `if-merge-request-title-as-if-foss` | Matches if the pipeline is for a merge request and the MR has label ~"pipeline:run-as-if-foss" | |
| `if-merge-request-title-update-caches` | Matches if the pipeline is for a merge request and the MR has label ~"pipeline:update-cache". | |
| `if-merge-request-labels-run-all-rspec` | Matches if the pipeline is for a merge request and the MR has label ~"pipeline:run-all-rspec". | |
+| `if-merge-request-labels-run-cs-evaluation` | Matches if the pipeline is for a merge request and the MR has label ~"pipeline:run-CS-evaluation". | |
| `if-security-merge-request` | Matches if the pipeline is for a security merge request. | |
| `if-security-schedule` | Matches if the pipeline is for a security scheduled pipeline. | |
| `if-nightly-master-schedule` | Matches if the pipeline is for a `master` scheduled pipeline with `$NIGHTLY` set. | |
@@ -414,6 +435,8 @@ For this scenario, you have to:
- `scripts/merge-simplecov`
- `spec/simplecov_env_core.rb`
- `spec/simplecov_env.rb`
+ - `prepare-as-if-foss-env` for:
+ - `scripts/setup/generate-as-if-foss-env.rb`
Additionally, `scripts/utils.sh` is always downloaded from the API when this pattern is used (this file contains the code for `.fast-no-clone-job`).
@@ -425,7 +448,7 @@ projects, only one of the following tags should be added to a job:
- `gitlab-org`: Jobs randomly use privileged and unprivileged runners.
- `gitlab-org-docker`: Jobs must use a privileged runner. If you need [Docker-in-Docker support](../../ci/docker/using_docker_build.md#use-docker-in-docker),
-use `gitlab-org-docker` instead of `gitlab-org`.
+ use `gitlab-org-docker` instead of `gitlab-org`.
The `gitlab-org-docker` tag is added by the `.use-docker-in-docker` job
definition above.
diff --git a/doc/development/pipelines/performance.md b/doc/development/pipelines/performance.md
index 0cd4f4270fe..d9019e6053b 100644
--- a/doc/development/pipelines/performance.md
+++ b/doc/development/pipelines/performance.md
@@ -29,6 +29,45 @@ This works well for the following reasons:
- We use [shallow clone](../../ci/pipelines/settings.md#limit-the-number-of-changes-fetched-during-clone) to avoid downloading the full Git
history for every job.
+### Fetch repository via artifacts instead of cloning/fetching from Gitaly
+
+Lately we see errors from Gitaly look like this: (see [the issue](https://gitlab.com/gitlab-org/gitlab/-/issues/435456))
+
+```plaintext
+fatal: remote error: GitLab is currently unable to handle this request due to load.
+```
+
+While GitLab.com uses [pack-objects cache](../../administration/gitaly/configure_gitaly.md#pack-objects-cache),
+sometimes the load is still too heavy for Gitaly to handle, and
+[thundering herds](https://gitlab.com/gitlab-org/gitlab/-/issues/423830) can
+also be a concern that we have a lot of jobs cloning the repository around
+the same time.
+
+To mitigate and reduce loads for Gitaly, we changed some jobs to fetch the
+repository from artifacts in a job instead of all cloning from Gitaly at once.
+
+For now this applies to most of the RSpec jobs, which has the most concurrent
+jobs in most pipelines. This also slightly improved the speed because fetching
+from the artifacts is also slightly faster than cloning, at the cost of saving
+more artifacts for each pipeline.
+
+Based on the numbers on 2023-12-20 at [Fetch repo from artifacts for RSpec jobs](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140330),
+the extra storage cost was about 280M for each pipeline, and we save 15 seconds
+for each RSpec jobs.
+
+We do not apply this to jobs having no other job dependencies because we don't
+want to delay any jobs from starting.
+
+This behavior can be controlled by variable `CI_FETCH_REPO_GIT_STRATEGY`:
+
+- Set to `none` means jobs using `.repo-from-artifacts` fetch repository from
+ artifacts in job `clone-gitlab-repo` rather than cloning.
+- Set to `clone` means jobs using `.repo-from-artifacts` clone repository
+ as usual. Job `clone-gitlab-repo` does not run in this case.
+
+To disable it, set `CI_FETCH_REPO_GIT_STRATEGY` to `clone`. To enable it,
+set `CI_FETCH_REPO_GIT_STRATEGY` to `none`.
+
## Caching strategy
1. All jobs must only pull caches by default.
diff --git a/doc/development/prometheus_metrics.md b/doc/development/prometheus_metrics.md
index 6a4a85f14ff..cef55c800e1 100644
--- a/doc/development/prometheus_metrics.md
+++ b/doc/development/prometheus_metrics.md
@@ -72,10 +72,10 @@ This section describes how to add new metrics for self-monitoring
for [Prometheus metric names](https://prometheus.io/docs/practices/naming/#metric-names).
1. Update the list of [GitLab Prometheus metrics](../administration/monitoring/prometheus/gitlab_metrics.md).
1. Carefully choose what labels you want to add to your metric. Values with high cardinality,
-like `project_path`, or `project_id` are strongly discouraged because they can affect our services
-availability due to the fact that each set of labels is exposed as a new entry in the `/metrics` endpoint.
-For example, a histogram with 10 buckets and a label with 100 values would generate 1000
-entries in the export endpoint.
+ like `project_path`, or `project_id` are strongly discouraged because they can affect our services
+ availability due to the fact that each set of labels is exposed as a new entry in the `/metrics` endpoint.
+ For example, a histogram with 10 buckets and a label with 100 values would generate 1000
+ entries in the export endpoint.
1. Trigger the relevant page or code that records the new metric.
1. Check that the new metric appears at `/-/metrics`.
diff --git a/doc/development/push_rules/index.md b/doc/development/push_rules/index.md
index 343b199e613..96d16f5eb35 100644
--- a/doc/development/push_rules/index.md
+++ b/doc/development/push_rules/index.md
@@ -42,9 +42,6 @@ change the push behavior.
- `EE::Gitlab::Checks::PushRules::FileSizeCheck`: Executes push rule checks
related to file size rules.
- Defined in `ee/lib/ee/gitlab/checks/push_rules/file_size_check.rb`.
-- `EE::Gitlab::Checks::PushRules::SecretsCheck`: Executes push rule checks
- related to secrets rules.
- - Defined in `ee/lib/ee/gitlab/checks/push_rules/secrets_check.rb`.
- `EE::Gitlab::Checks::PushRules::TagCheck`: Executes push rule checks
related to tag rules.
- Defined in `ee/lib/ee/gitlab/checks/push_rules/tag_check.rb`.
@@ -83,11 +80,9 @@ graph TD
EE::Gitlab::Checks::PushRuleCheck -->|Only if pushing to a tag| EE::Gitlab::Checks::PushRules::TagCheck
EE::Gitlab::Checks::PushRuleCheck -->|Only if pushing to a branch| EE::Gitlab::Checks::PushRules::BranchCheck
EE::Gitlab::Checks::PushRuleCheck --> EE::Gitlab::Checks::PushRules::FileSizeCheck
- EE::Gitlab::Checks::PushRuleCheck --> EE::Gitlab::Checks::PushRules::SecretsCheck
- EE::Gitlab::Checks::PushRuleCheck --> EE::Gitlab::Checks::PushRules::SecretsCheck
```
NOTE:
The `PushRuleCheck` only triggers checks in parallel if the
`parallel_push_checks` feature flag is enabled. Otherwise tag or branch check
-runs first, then file size, then secrets.
+runs first, then file size.
diff --git a/doc/development/reactive_caching.md b/doc/development/reactive_caching.md
index 00110d21dc0..dfe1e2d1b05 100644
--- a/doc/development/reactive_caching.md
+++ b/doc/development/reactive_caching.md
@@ -255,14 +255,14 @@ self.reactive_cache_hard_limit = 5.megabytes
#### `self.reactive_cache_work_type`
- This is the type of work performed by the `calculate_reactive_cache` method. Based on this attribute,
-it's able to pick the right worker to process the caching job. Make sure to
-set it as `:external_dependency` if the work performs any external request
-(for example, Kubernetes, Sentry); otherwise set it to `:no_dependency`.
+ it's able to pick the right worker to process the caching job. Make sure to
+ set it as `:external_dependency` if the work performs any external request
+ (for example, Kubernetes, Sentry); otherwise set it to `:no_dependency`.
#### `self.reactive_cache_worker_finder`
- This is the method used by the background worker to find or generate the object on
-which `calculate_reactive_cache` can be called.
+ which `calculate_reactive_cache` can be called.
- By default it uses the model primary key to find the object:
```ruby
diff --git a/doc/development/remote_development/index.md b/doc/development/remote_development/index.md
new file mode 100644
index 00000000000..3d85c44961c
--- /dev/null
+++ b/doc/development/remote_development/index.md
@@ -0,0 +1,16 @@
+---
+stage: Create
+group: Web IDE
+info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
+---
+
+# Remote Development developer guidelines
+
+[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105783) in GitLab 16.0.
+
+## Workspaces feature developer documentation
+
+Currently, the majority of the developer documentation for the [Remote Development Workspaces feature](../../user/workspace/index.md)
+is located in the separate [`gitlab-remote-development-docs` project](https://gitlab.com/gitlab-org/remote-development/gitlab-remote-development-docs/-/blob/main/README.md).
+
+Parts of that documentation will eventually be migrated here.
diff --git a/doc/development/ruby_upgrade.md b/doc/development/ruby_upgrade.md
index 110bc6076b0..d1dd6d793d4 100644
--- a/doc/development/ruby_upgrade.md
+++ b/doc/development/ruby_upgrade.md
@@ -50,31 +50,31 @@ To help you estimate the scope of future upgrades, see the efforts required for
Before any upgrade, consider all audiences and targets, ordered by how immediately they are affected by Ruby upgrades:
1. **Developers.** We have many contributors to GitLab and related projects both inside and outside the company. Changing files such as `.ruby-version` affects everyone using tooling that interprets these files.
-The developers are affected as soon as they pull from the repository containing the merged changes.
+ The developers are affected as soon as they pull from the repository containing the merged changes.
1. **GitLab CI/CD.** We heavily lean on CI/CD for code integration and testing. CI/CD jobs do not interpret files such as `.ruby-version`.
-Instead, they use the Ruby installed in the Docker container they execute in, which is defined in `.gitlab-ci.yml`.
-The container images used in these jobs are maintained in the [`gitlab-build-images`](https://gitlab.com/gitlab-org/gitlab-build-images) repository.
-When we merge an update to an image, CI/CD jobs are affected as soon as the [image is built](https://gitlab.com/gitlab-org/gitlab-build-images/#pushing-a-rebuild-image).
+ Instead, they use the Ruby installed in the Docker container they execute in, which is defined in `.gitlab-ci.yml`.
+ The container images used in these jobs are maintained in the [`gitlab-build-images`](https://gitlab.com/gitlab-org/gitlab-build-images) repository.
+ When we merge an update to an image, CI/CD jobs are affected as soon as the [image is built](https://gitlab.com/gitlab-org/gitlab-build-images/#pushing-a-rebuild-image).
1. **GitLab SaaS**. GitLab.com is deployed from customized Helm charts that use Docker images from [Cloud Native GitLab (CNG)](https://gitlab.com/gitlab-org/build/CNG).
-Just like CI/CD, `.ruby-version` is meaningless in this environment. Instead, those Docker images must be patched to upgrade Ruby.
-GitLab SaaS is affected with the next deployment.
+ Just like CI/CD, `.ruby-version` is meaningless in this environment. Instead, those Docker images must be patched to upgrade Ruby.
+ GitLab SaaS is affected with the next deployment.
1. **Self-managed GitLab.** Customers installing GitLab via [Omnibus](https://gitlab.com/gitlab-org/omnibus-gitlab) use none of the above.
-Instead, their Ruby version is defined by the [Ruby software bundle](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/config/software/ruby.rb) in Omnibus.
-Self-managed customers are affected as soon as they upgrade to the release containing this change.
+ Instead, their Ruby version is defined by the [Ruby software bundle](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/config/software/ruby.rb) in Omnibus.
+ Self-managed customers are affected as soon as they upgrade to the release containing this change.
## Ruby upgrade approach
Timing all steps in a Ruby upgrade correctly is critical. As a general guideline, consider the following:
- For smaller upgrades where production behavior is unlikely to change, aim to keep the version gap between
-repositories and production minimal. Coordinate with stakeholders to merge all changes closely together
-(within a day or two) to avoid drift. In this scenario the likely order is to upgrade developer tooling and
-environments first, production second.
+ repositories and production minimal. Coordinate with stakeholders to merge all changes closely together
+ (within a day or two) to avoid drift. In this scenario the likely order is to upgrade developer tooling and
+ environments first, production second.
- For larger changes, the risk of going to production with a new Ruby is significant. In this case, try to get into a
-position where all known incompatibilities with the new Ruby version are already fixed, then work
-with production engineers to deploy the new Ruby to a subset of the GitLab production fleet. In this scenario
-the likely order is to update production first, developer tooling and environments second. This makes rollbacks
-easier in case of critical regressions in production.
+ position where all known incompatibilities with the new Ruby version are already fixed, then work
+ with production engineers to deploy the new Ruby to a subset of the GitLab production fleet. In this scenario
+ the likely order is to update production first, developer tooling and environments second. This makes rollbacks
+ easier in case of critical regressions in production.
Either way, we found that from past experience the following approach works well, with some steps likely only
necessary for minor and major upgrades. Note that some of these steps can happen in parallel or may have their
@@ -110,17 +110,17 @@ for a smoother transition by supporting both old and new Ruby versions for a per
There are two places that require changes:
1. **[GitLab Build Images](https://gitlab.com/gitlab-org/gitlab-build-images).** These are Docker images
-we use for runners and other Docker-based pre-production environments. The kind of change necessary
-depends on the scope.
+ we use for runners and other Docker-based pre-production environments. The kind of change necessary
+ depends on the scope.
- For [patch level updates](https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/418), it should suffice to increment the patch level of `RUBY_VERSION`.
-All projects building against the same minor release automatically download the new patch release.
+ All projects building against the same minor release automatically download the new patch release.
- For [major and minor updates](https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/320), create a new set of Docker images that can be used side-by-side with existing images during the upgrade process. **Important:** Make sure to copy over all Ruby patch files
-in the `/patches` directory to a new folder matching the Ruby version you upgrade to, or they aren't applied.
+ in the `/patches` directory to a new folder matching the Ruby version you upgrade to, or they aren't applied.
1. **[GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit).**
-Update GDK to add the new Ruby as an additional option for
-developers to choose from. This typically only requires it to be appended to `.tool-versions` so `asdf`
-users will benefit from this. Other users will have to install it manually
-([example](https://gitlab.com/gitlab-org/gitlab-development-kit/-/merge_requests/2136).)
+ Update GDK to add the new Ruby as an additional option for
+ developers to choose from. This typically only requires it to be appended to `.tool-versions` so `asdf`
+ users will benefit from this. Other users will have to install it manually
+ ([example](https://gitlab.com/gitlab-org/gitlab-development-kit/-/merge_requests/2136).)
For larger version upgrades, consider working with [Quality Engineering](https://about.gitlab.com/handbook/engineering/quality/)
to identify and set up a test plan.
@@ -265,16 +265,16 @@ For GitLab SaaS, GitLab team members can inspect these log events in Kibana
During the upgrade process, consider the following recommendations:
- **Front-load as many changes as possible.** Especially for minor and major releases, it is likely that application
-code will break or change. Any changes that are backward compatible should be merged into the main branch and
-released independently ahead of the Ruby version upgrade. This ensures that we move in small increments and
-get feedback from production environments early.
+ code will break or change. Any changes that are backward compatible should be merged into the main branch and
+ released independently ahead of the Ruby version upgrade. This ensures that we move in small increments and
+ get feedback from production environments early.
- **Create an experimental branch for larger updates.** We generally try to avoid long-running topic branches,
-but for purposes of feedback and experimentation, it can be useful to have such a branch to get regular
-feedback from CI/CD when running a newer Ruby. This can be helpful when first assessing what problems
-we might run into, as [this MR](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50640) demonstrates.
-These experimental branches are not intended to be merged; they can be closed once all required changes have been broken out
-and merged back independently.
+ but for purposes of feedback and experimentation, it can be useful to have such a branch to get regular
+ feedback from CI/CD when running a newer Ruby. This can be helpful when first assessing what problems
+ we might run into, as [this MR](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50640) demonstrates.
+ These experimental branches are not intended to be merged; they can be closed once all required changes have been broken out
+ and merged back independently.
- **Give yourself enough time to fix problems ahead of a milestone release.** GitLab moves fast.
-As a Ruby upgrade requires many MRs to be sent and reviewed, make sure all changes are merged at least a week
-before release day. This gives us extra time to act if something breaks. If in doubt, it is better to
-postpone the upgrade to the following month, as we [prioritize availability over velocity](https://about.gitlab.com/handbook/engineering/development/principles/#prioritizing-technical-decisions).
+ As a Ruby upgrade requires many MRs to be sent and reviewed, make sure all changes are merged at least a week
+ before release day. This gives us extra time to act if something breaks. If in doubt, it is better to
+ postpone the upgrade to the following month, as we [prioritize availability over velocity](https://about.gitlab.com/handbook/engineering/development/principles/#prioritizing-technical-decisions).
diff --git a/doc/development/runner_fleet_dashboard.md b/doc/development/runner_fleet_dashboard.md
index 70499e5a087..77c89f2adb5 100644
--- a/doc/development/runner_fleet_dashboard.md
+++ b/doc/development/runner_fleet_dashboard.md
@@ -1,197 +1,11 @@
---
-stage: Verify
-group: Runner
-info: >-
- To determine the technical writer assigned to the Stage/Group associated with
- this page, see
- https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+redirect_to: '../ci/runners/runner_fleet_dashboard.md'
+remove_date: '2024-03-01'
---
-# Runner Fleet Dashboard **(ULTIMATE EXPERIMENT)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/424495) in GitLab 16.6 behind several [feature flags](#enable-feature-flags).
+This document was moved to [another location](../ci/runners/runner_fleet_dashboard.md).
-This feature is an [Experiment](../policy/experiment-beta-support.md).
-To join the list of users testing this feature, contact us in
-[epic 11180](https://gitlab.com/groups/gitlab-org/-/epics/11180).
-
-GitLab administrators can use the Runner Fleet Dashboard to assess the health of your instance runners.
-The Runner Fleet Dashboard shows:
-
-- Recent CI errors related caused by runner infrastructure.
-- Number of concurrent jobs executed on most busy runners.
-- Histogram of job queue times (available only with ClickHouse).
-
-There is a proposal to introduce [more features](#whats-next) to the Runner Fleet Dashboard.
-
-![Runner Fleet Dashboard](img/runner_fleet_dashboard.png)
-
-## View the Runner Fleet Dashboard
-
-Prerequisites:
-
-- You must be an administrator.
-
-To view the runner fleet dashboard:
-
-1. On the left sidebar, at the bottom, select **Admin Area**.
-1. Select **Runners**.
-1. Click **Fleet dashboard**.
-
-Most of the dashboard works without any additional actions, with the
-exception of **Wait time to pick a job** chart and [proposed features](#whats-next).
-These features require setting up an additional infrastructure, described in this page.
-
-To test the Runner Fleet Dashboard and gather feedback, we have launched an early adopters program
-for some customers to try this feature.
-
-## Requirements
-
-To test the Runner Fleet Dashboard as part of the early adopters program, you must:
-
-- Run GitLab 16.7 or above.
-- Have an [Ultimate license](https://about.gitlab.com/pricing/).
-- Be able to run ClickHouse database. We recommend using [ClickHouse Cloud](https://clickhouse.cloud/).
-
-## Setup
-
-To setup ClickHouse as the GitLab data storage:
-
-1. [Run ClickHouse Cluster and configure database](#run-and-configure-clickhouse).
-1. [Configure GitLab connection to Clickhouse](#configure-the-gitlab-connection-to-clickhouse).
-1. [Run ClickHouse migrations](#run-clickhouse-migrations).
-1. [Enable the feature flags](#enable-feature-flags).
-
-### Run and configure ClickHouse
-
-The most straightforward way to run ClickHouse is with [ClickHouse Cloud](https://clickhouse.cloud/).
-You can also [run ClickHouse on your own server](https://clickhouse.com/docs/en/install). Refer to the ClickHouse
-documentation regarding [recommendations for self-managed instances](https://clickhouse.com/docs/en/install#recommendations-for-self-managed-clickhouse).
-
-When you run ClickHouse on a hosted server, various data points might impact the resource consumption, like the number
-of builds that run on your instance each month, the selected hardware, the data center choice to host ClickHouse, and more.
-Regardless, the cost should not be significant.
-
-NOTE:
-ClickHouse is a secondary data store for GitLab. All your data is still stored in Postgres,
-and only duplicated in ClickHouse for analytics purposes.
-
-To create necessary user and database objects:
-
-1. Generate a secure password and save it.
-1. Sign in to the ClickHouse SQL console.
-1. Execute the following command. Replace `PASSWORD_HERE` with the generated password.
-
- ```sql
- CREATE DATABASE gitlab_clickhouse_main_production;
- CREATE USER gitlab IDENTIFIED WITH sha256_password BY 'PASSWORD_HERE';
- CREATE ROLE gitlab_app;
- GRANT SELECT, INSERT, ALTER, CREATE, UPDATE, DROP, TRUNCATE, OPTIMIZE ON gitlab_clickhouse_main_production.* TO gitlab_app;
- GRANT gitlab_app TO gitlab;
- ```
-
-### Configure the GitLab connection to ClickHouse
-
-::Tabs
-
-:::TabTitle Linux package
-
-To provide GitLab with ClickHouse credentials:
-
-1. Edit `/etc/gitlab/gitlab.rb`:
-
- ```ruby
- gitlab_rails['clickhouse_databases']['main']['database'] = 'gitlab_clickhouse_main_production'
- gitlab_rails['clickhouse_databases']['main']['url'] = 'https://example.com/path'
- gitlab_rails['clickhouse_databases']['main']['username'] = 'gitlab'
- gitlab_rails['clickhouse_databases']['main']['password'] = 'PASSWORD_HERE' # replace with the actual password
- ```
-
-1. Save the file and reconfigure GitLab:
-
- ```shell
- sudo gitlab-ctl reconfigure
- ```
-
-:::TabTitle Helm chart (Kubernetes)
-
-1. Save the ClickHouse password as a Kubernetes Secret:
-
- ```shell
- kubectl create secret generic gitlab-clickhouse-password --from-literal="main_password=PASSWORD_HERE"
- ```
-
-1. Export the Helm values:
-
- ```shell
- helm get values gitlab > gitlab_values.yaml
- ```
-
-1. Edit `gitlab_values.yaml`:
-
- ```yaml
- global:
- clickhouse:
- enabled: true
- main:
- username: default
- password:
- secret: gitlab-clickhouse-password
- key: main_password
- database: gitlab_clickhouse_main_production
- url: 'http://example.com'
- ```
-
-1. Save the file and apply the new values:
-
- ```shell
- helm upgrade -f gitlab_values.yaml gitlab gitlab/gitlab
- ```
-
-::EndTabs
-
-To verify that your connection is set up successfully:
-
-1. Log in to [Rails console](../administration/operations/rails_console.md#starting-a-rails-console-session)
-1. Execute the following:
-
- ```ruby
- ClickHouse::Client.select('SELECT 1', :main)
- ```
-
- If successful, the command returns `[{"1"=>1}]`
-
-### Run ClickHouse migrations
-
-To create the required database objects execute:
-
-```shell
-sudo gitlab-rake gitlab:clickhouse:migrate
-```
-
-### Enable feature flags
-
-Features that use ClickHouse are currently under development and are disabled by feature flags.
-
-To enable these features, [enable](../administration/feature_flags.md#how-to-enable-and-disable-features-behind-flags)
-the following feature flags:
-
-| Feature flag name | Purpose |
-|------------------------------------|---------------------------------------------------------------------------|
-| `ci_data_ingestion_to_click_house` | Enables synchronization of new finished CI builds to Clickhouse database. |
-| `clickhouse_ci_analytics` | Enables the **Wait time to pick a job** chart. |
-
-## What's next
-
-Support for usage and cost analysis are proposed in
-[epic 11183](https://gitlab.com/groups/gitlab-org/-/epics/11183).
-
-## Feedback
-
-To help us improve the Runner Fleet Dashboard, you can provide feedback in
-[issue 421737](https://gitlab.com/gitlab-org/gitlab/-/issues/421737).
-In particular:
-
-- How easy or difficult it was to setup GitLab to make the dashboard work.
-- How useful you found the dashboard.
-- What other information you would like to see on that dashboard.
-- Any other related thoughts and ideas.
+<!-- This redirect file can be deleted after <2024-03-01>. -->
+<!-- Redirects that point to other docs in the same project expire in three months. -->
+<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/search/advanced_search_migration_styleguide.md b/doc/development/search/advanced_search_migration_styleguide.md
index 87083d1a36f..b79ab6561d5 100644
--- a/doc/development/search/advanced_search_migration_styleguide.md
+++ b/doc/development/search/advanced_search_migration_styleguide.md
@@ -225,6 +225,53 @@ class MigrationName < Elastic::Migration
end
```
+#### `Search::Elastic::MigrationDeleteBasedOnSchemaVersion`
+
+Deletes all documents in the index that stores the specified document type and has `schema_version` less than the given value.
+
+Requires the `DOCUMENT_TYPE` constant and `schema_version` method.
+The index mapping must have a `schema_version` integer field in a `YYMM` format.
+
+```ruby
+class MigrationName < Elastic::Migration
+ include ::Search::Elastic::MigrationDeleteBasedOnSchemaVersion
+
+ DOCUMENT_TYPE = Issue
+
+ batch_size 10_000
+ batched!
+ throttle_delay 1.minute
+ retry_on_failure
+
+ def schema_version
+ 23_12
+ end
+end
+```
+
+#### `Search::Elastic::MigrationDatabaseBackfillHelper`
+
+Reindexes all documents in the database to the elastic search index respecting the `limited_indexing` setting.
+
+Requires the `DOCUMENT_TYPE` constant and `respect_limited_indexing?` method.
+
+```ruby
+class MigrationName < Elastic::Migration
+ include ::Search::Elastic::MigrationDatabaseBackfillHelper
+
+ batch_size 10_000
+ batched!
+ throttle_delay 1.minute
+ retry_on_failure
+
+ DOCUMENT_TYPE = Issue
+
+ def respect_limited_indexing?
+ true
+ end
+end
+```
+
#### `Elastic::MigrationHelper`
Contains methods you can use when a migration doesn't fit the previous examples.
diff --git a/doc/development/sec/analyzer_development_guide.md b/doc/development/sec/analyzer_development_guide.md
index eb59d8fcaf5..843f41300a2 100644
--- a/doc/development/sec/analyzer_development_guide.md
+++ b/doc/development/sec/analyzer_development_guide.md
@@ -128,7 +128,7 @@ To use Docker with `replace` in the `go.mod` file:
1. Copy the contents of `command` into the directory of the analyzer. `cp -r /path/to/command path/to/analyzer/command`.
1. Add a copy statement in the analyzer's `Dockerfile`: `COPY command /command`.
1. Update the `replace` statement to make sure it matches the destination of the `COPY` statement in the step above:
-`replace gitlab.com/gitlab-org/security-products/analyzers/command/v3 => /command`
+ `replace gitlab.com/gitlab-org/security-products/analyzers/command/v3 => /command`
## Analyzer scripts
@@ -189,11 +189,11 @@ are integrated with the existing application, iteration should not be blocked by
1. Ensure that the release source (typically the `master` or `main` branch) has a passing pipeline.
1. Create a new release for the analyzer project by selecting the **Deployments** menu on the left-hand side of the project window, then selecting the **Releases** sub-menu.
1. Select **New release** to open the **New Release** page.
- 1. In the **Tag name** drop down, enter the same version used in the `CHANGELOG.md`, for example `v2.4.2`, and select the option to create the tag (`Create tag v2.4.2` here).
- 1. In the **Release title** text box enter the same version used above, for example `v2.4.2`.
- 1. In the `Release notes` text box, copy and paste the notes from the corresponding version in the `CHANGELOG.md`.
- 1. Leave all other settings as the default values.
- 1. Select **Create release**.
+ 1. In the **Tag name** drop down, enter the same version used in the `CHANGELOG.md`, for example `v2.4.2`, and select the option to create the tag (`Create tag v2.4.2` here).
+ 1. In the **Release title** text box enter the same version used above, for example `v2.4.2`.
+ 1. In the `Release notes` text box, copy and paste the notes from the corresponding version in the `CHANGELOG.md`.
+ 1. Leave all other settings as the default values.
+ 1. Select **Create release**.
After following the above process and creating a new release, a new Git tag is created with the `Tag name` provided above. This triggers a new pipeline with the given tag version and a new analyzer Docker image is built.
@@ -229,7 +229,7 @@ After the above steps have been completed, the automatic release process execute
1. After a new version of the analyzer Docker image has been tagged and deployed, test it with the corresponding test project.
1. Announce the release on the relevant group Slack channel. Example message:
- > FYI I've just released `ANALYZER_NAME` `ANALYZER_VERSION`. `LINK_TO_RELEASE`
+ > FYI I've just released `ANALYZER_NAME` `ANALYZER_VERSION`. `LINK_TO_RELEASE`
**Never delete a Git tag that has been pushed** as there is a good
chance that the tag will be used and/or cached by the Go package registry.
diff --git a/doc/development/secure_coding_guidelines.md b/doc/development/secure_coding_guidelines.md
index a575d1ff890..d8fad6deb9c 100644
--- a/doc/development/secure_coding_guidelines.md
+++ b/doc/development/secure_coding_guidelines.md
@@ -182,7 +182,7 @@ For other regular expressions, here are a few guidelines:
- If there's a clean non-regex solution, such as `String#start_with?`, consider using it
- Ruby supports some advanced regex features like [atomic groups](https://www.regular-expressions.info/atomic.html)
-and [possessive quantifiers](https://www.regular-expressions.info/possessive.html) that eliminate backtracking
+ and [possessive quantifiers](https://www.regular-expressions.info/possessive.html) that eliminate backtracking
- Avoid nested quantifiers if possible (for example `(a+)+`)
- Try to be as precise as possible in your regex and avoid the `.` if there's an alternative
- For example, Use `_[^_]+_` instead of `_.*_` to match `_text here_`
diff --git a/doc/development/testing_guide/end_to_end/execution_context_selection.md b/doc/development/testing_guide/end_to_end/execution_context_selection.md
index f625dc466b9..f940cf289d9 100644
--- a/doc/development/testing_guide/end_to_end/execution_context_selection.md
+++ b/doc/development/testing_guide/end_to_end/execution_context_selection.md
@@ -48,6 +48,7 @@ Matches use:
| The `nightly` and `canary` pipelines | `only: { pipeline: [:nightly, :canary] }` | ["nightly scheduled pipeline"](https://gitlab.com/gitlab-org/gitlab/-/pipeline_schedules) and ["canary"](https://gitlab.com/gitlab-org/quality/canary) |
| The `ee:instance` job | `only: { job: 'ee:instance' }` | The `ee:instance` job in any pipeline |
| Any `quarantine` job | `only: { job: '.*quarantine' }` | Any job ending in `quarantine` in any pipeline |
+| Local development environment | `only: :local` | Any environment where `Runtime::Env.running_in_ci?` is false |
| Any run where condition evaluates to a truthy value | `only: { condition: -> { ENV['TEST_ENV'] == 'true' } }` | Any run where `TEST_ENV` is set to true
```ruby
diff --git a/doc/development/testing_guide/end_to_end/feature_flags.md b/doc/development/testing_guide/end_to_end/feature_flags.md
index e11119d2c0b..189b21ea607 100644
--- a/doc/development/testing_guide/end_to_end/feature_flags.md
+++ b/doc/development/testing_guide/end_to_end/feature_flags.md
@@ -24,14 +24,14 @@ Be sure to include the `feature_flag` tag so that the test can be skipped on the
- Format: `feature_flag: { name: 'feature_flag_name' }`
- Used only for informational purposes at this time. It should be included to help quickly determine what
-feature flag is under test.
+ feature flag is under test.
`scope`
- Format: `feature_flag: { name: 'feature_flag_name', scope: :project }`
- When `scope` is set to `:global`, the test will be **skipped on all live .com environments**. This is to avoid issues with feature flag changes affecting other tests or users on that environment.
- When `scope` is set to any other value (such as `:project`, `:group` or `:user`), or if no `scope` is specified, the test will only be **skipped on canary, production, and pre-production**.
-This is due to the fact that administrator access is not available there.
+ This is due to the fact that administrator access is not available there.
**WARNING:** You are strongly advised to first try and [enable feature flags only for a group, project, user](../../feature_flags/index.md#feature-actors),
or [feature group](../../feature_flags/index.md#feature-groups).
diff --git a/doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md b/doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md
index aaea3f8958d..eabc722a26f 100644
--- a/doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md
+++ b/doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md
@@ -303,6 +303,75 @@ Geo requires an EE license. To visit the Geo sites in your browser, you need a r
- You can increase the wait time for replication by setting `GEO_MAX_FILE_REPLICATION_TIME` and `GEO_MAX_DB_REPLICATION_TIME`. The default is 120 seconds.
- To save time during tests, create a Personal Access Token with API access on the Geo primary node, and pass that value in as `GITLAB_QA_ACCESS_TOKEN` and `GITLAB_QA_ADMIN_ACCESS_TOKEN`.
+## Group SAML Tests
+
+Tests that are tagged with `:group_saml` meta are orchestrated tests where the user accesses a group via SAML SSO.
+
+These tests depend on a SAML IDP Docker container ([jamedjo/test-SAML-idp](https://hub.docker.com/r/jamedjo/test-saml-idp)). The tests spin up the container themselves.
+
+To run these tests on your computer against the GDK:
+
+1. Add these settings to your `gitlab.yml` file:
+
+ ```yaml
+ omniauth:
+ enabled: true
+ providers:
+ - { name: 'group_saml' }
+ ```
+
+1. Run a group SAML test from [`gitlab/qa`](https://gitlab.com/gitlab-org/gitlab/-/tree/d5447ebb5f99d4c72780681ddf4dc25b0738acba/qa) directory:
+
+ ```shell
+ QA_DEBUG=true CHROME_HEADLESS=false bundle exec bin/qa Test::Instance::All http://localhost:3000 qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_spec.rb -- --tag orchestrated
+ ```
+
+For instructions on how to run these tests using the `gitlab-qa` gem, refer to [the GitLab QA documentation](https://gitlab.com/gitlab-org/gitlab-qa/-/blob/master/docs/what_tests_can_be_run.md#testintegrationgroupsaml-eefull-image-address).
+
+## Instance SAML Tests
+
+Tests that are tagged with `:instance_saml` meta are orchestrated tests where the instance level sign-in happens using SAML SSO.
+
+These tests require a SAML IDP Docker container ([jamedjo/test-SAML-idp](https://hub.docker.com/r/jamedjo/test-saml-idp)) to be configured and running.
+
+To run these tests on your computer against the GDK:
+
+1. Add these settings to your `gitlab.yml` file:
+
+ ```yaml
+ omniauth:
+ enabled: true
+ allow_single_sign_on: ["saml"]
+ block_auto_created_users: false
+ auto_link_saml_user: true
+ providers:
+ - { name: 'saml',
+ args: {
+ assertion_consumer_service_url: 'http://gdk.test:3000/users/auth/saml/callback',
+ idp_cert_fingerprint: '11:9b:9e:02:79:59:cd:b7:c6:62:cf:d0:75:d9:e2:ef:38:4e:44:5f',
+ idp_sso_target_url: 'https://gdk.test:8443/simplesaml/saml2/idp/SSOService.php',
+ issuer: 'http://gdk.test:3000',
+ name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'
+ } }
+ ```
+
+1. Start the SAML IDP Docker container:
+
+ ```shell
+ docker run --name=group_saml_qa_idp -p 8080:8080 -p 8443:8443 \
+ -e SIMPLESAMLPHP_SP_ENTITY_ID=http://localhost:3000 \
+ -e SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE=http://localhost:3000/users/auth/saml/callback \
+ -d jamedjo/test-saml-idp
+ ```
+
+1. Run the test from [`gitlab/qa`](https://gitlab.com/gitlab-org/gitlab/-/tree/d5447ebb5f99d4c72780681ddf4dc25b0738acba/qa) directory:
+
+ ```shell
+ QA_DEBUG=true CHROME_HEADLESS=false bundle exec bin/qa Test::Instance::All http://localhost:3000 qa/specs/features/browser_ui/1_manage/login/login_via_instance_wide_saml_sso_spec.rb -- --tag orchestrated
+ ```
+
+For instructions on how to run these tests using the `gitlab-qa` gem, refer to [the GitLab QA documentation](https://gitlab.com/gitlab-org/gitlab-qa/-/blob/master/docs/what_tests_can_be_run.md#testintegrationinstancesaml-ceeefull-image-address).
+
## LDAP Tests
Tests that are tagged with `:ldap_tls` and `:ldap_no_tls` meta are orchestrated tests where the sign-in happens via LDAP.
diff --git a/doc/development/testing_guide/flaky_tests.md b/doc/development/testing_guide/flaky_tests.md
index 1895b9bdb39..4d6fac57c06 100644
--- a/doc/development/testing_guide/flaky_tests.md
+++ b/doc/development/testing_guide/flaky_tests.md
@@ -119,7 +119,7 @@ Adding a delay in API or controller could help reproducing the issue.
- [Example 2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/101728/diffs): A CSS selector
only appears after a GraphQL requests has finished, and the UI has updated.
- [Example 3](https://gitlab.com/gitlab-org/gitlab/-/issues/408215): A false-positive test, Capybara immediately returns true after
-page visit and page is not fully loaded, or if the element is not detectable by webdriver (such as being rendered outside the viewport or behind other elements).
+ page visit and page is not fully loaded, or if the element is not detectable by webdriver (such as being rendered outside the viewport or behind other elements).
### Datetime-sensitive
diff --git a/doc/development/testing_guide/testing_levels.md b/doc/development/testing_guide/testing_levels.md
index 81399c7ce05..99852645914 100644
--- a/doc/development/testing_guide/testing_levels.md
+++ b/doc/development/testing_guide/testing_levels.md
@@ -349,7 +349,7 @@ possible).
| Tests path | Testing engine | Notes |
| ---------- | -------------- | ----- |
-| `spec/features/` | [Capybara](https://github.com/teamcapybara/capybara) + [RSpec](https://github.com/rspec/rspec-rails#feature-specs) | If your test has the `:js` metadata, the browser driver is [Poltergeist](https://github.com/teamcapybara/capybara#poltergeist), otherwise it's using [RackTest](https://github.com/teamcapybara/capybara#racktest). |
+| `spec/features/` | [Capybara](https://github.com/teamcapybara/capybara) + [RSpec](https://github.com/rspec/rspec-rails#feature-specs) | If your test has the `:js` metadata, the browser driver is [Selenium](https://github.com/teamcapybara/capybara#selenium), otherwise it's using [RackTest](https://github.com/teamcapybara/capybara#racktest). |
### Frontend feature tests
diff --git a/doc/development/ux/index.md b/doc/development/ux/index.md
index ab6cd4c64f5..de4491f997c 100644
--- a/doc/development/ux/index.md
+++ b/doc/development/ux/index.md
@@ -20,7 +20,7 @@ To contribute to [Pajamas design system](https://design.gitlab.com/) and the [UI
## Contributing to other issues
-1. Review the list of available issues that are currently [accepting UX contribution](https://gitlab.com/groups/gitlab-org/-/issues/?sort=weight&state=opened&label_name%5B%5D=UX&label_name%5B%5D=workflow%3A%3Aready%20for%20design&label_name%5B%5D=Accepting%20UX%20contributions&first_page_size=20).
+1. Review the list of available UX issues that are currently [seeking community contribution](https://gitlab.com/groups/gitlab-org/-/issues/?sort=weight&state=opened&label_name%5B%5D=UX&label_name%5B%5D=Seeking%20community%20contributions&first_page_size=100).
1. Find an issue that does not have an Assignee to ensure someone else is not working on a solution. Add the `~"workflow::design"` and `~"Community contribution"` labels and mention `@gitlab-com/gitlab-ux/reviewers` to request they assign the issue to you.
1. Add your design proposal to the issue description/[design management](../../user/project/issues/design_management.md) section. Remember to keep the scope of the proposal/change small following our [MVCs guidelines](https://about.gitlab.com/handbook/values/#minimal-viable-change-mvc).
1. If you have any questions or are ready for a review of your proposal, mention `@gitlab-com/gitlab-ux/reviewers` in a comment to make your request.
diff --git a/doc/development/value_stream_analytics.md b/doc/development/value_stream_analytics.md
index 725c8aa45d2..83cfb3fb385 100644
--- a/doc/development/value_stream_analytics.md
+++ b/doc/development/value_stream_analytics.md
@@ -28,7 +28,7 @@ Apart from the durations, we expose the record count within a stage.
## Feature availability
- Group level (licensed): Requires Ultimate or Premium subscription. This version is the most
-feature-full.
+ feature-full.
- Project level (licensed): We are continually adding features to project level VSA to bring it in line with group level VSA.
- Project level (FOSS): Keep it as is.
diff --git a/doc/development/value_stream_analytics/value_stream_analytics_aggregated_backend.md b/doc/development/value_stream_analytics/value_stream_analytics_aggregated_backend.md
index 53c6721b01f..7386a83afc1 100644
--- a/doc/development/value_stream_analytics/value_stream_analytics_aggregated_backend.md
+++ b/doc/development/value_stream_analytics/value_stream_analytics_aggregated_backend.md
@@ -45,7 +45,7 @@ Benefits of the aggregated VSA backend:
- Possibility to introduce further aggregations for improving the first page load time.
- Better performance for large groups (with many subgroups, projects, issues and, merge requests).
- Ready for database decomposition. The VSA related database tables could live in a separate
-database with a minimal development effort.
+ database with a minimal development effort.
- Ready for keyset pagination which can be useful for exporting the data.
- Possibility to implement more complex event definitions.
- For example, the start event can be two timestamp columns where the earliest value would be
@@ -107,8 +107,7 @@ the service performs operations in batches and enforces strict application limit
- Load records in batches.
- Insert records in batches.
-- Stop processing when a limit is reached, schedule a background job to continue the processing
-later.
+- Stop processing when a limit is reached, schedule a background job to continue the processing later.
- Continue processing data from a specific point.
As of GitLab 14.7, the data loading is done manually. Once the feature is ready, the service is
@@ -267,16 +266,15 @@ database tables. This change could be implemented using array columns.
The feature uses private JSON APIs for delivering the data to the frontend. On the first page load
, the following requests are invoked:
-- Initial HTML page load which is mostly empty. Some configuration data is exposed via `data`
-attributes.
+- Initial HTML page load which is mostly empty. Some configuration data is exposed via `data` attributes.
- `value_streams` - Load the available value streams for the given group.
- `stages` - Load the stages for the currently selected value stream.
- `median` - For each stage, request the median duration.
- `count` - For each stage, request the number of items in the stage (this is a
-[limit count](../merge_request_concepts/performance.md#badge-counters), maximum 1000 rows).
+ [limit count](../merge_request_concepts/performance.md#badge-counters), maximum 1000 rows).
- `average_duration_chart` - Data for the duration chart.
- `summary`, `time_summary` - Top-level aggregations, most of the metrics are using different APIs/
-finders and not invoking the aggregated backend.
+ finders and not invoking the aggregated backend.
When selecting a specific stage, the `records` endpoint is invoked, which returns the related
records (paginated) for the chosen stage in a specific order.
diff --git a/doc/development/work_items.md b/doc/development/work_items.md
index 0c3bc4611f5..7fc0c0d9d21 100644
--- a/doc/development/work_items.md
+++ b/doc/development/work_items.md
@@ -245,7 +245,8 @@ Keep the following in mind when you write your migration:
necessary if the new work item type is going to use the `Hierarchy` widget. In this table, you must add what
work item type can have children and of what type. Also, you should specify the hierarchy depth for work items of the same
type. By default a cross-hierarchy (cross group or project) relationship is disabled when creating new restrictions but
- it can be enabled by specifying a value for `cross_hierarchy_enabled`.
+ it can be enabled by specifying a value for `cross_hierarchy_enabled`. Due to the restrictions being cached for the work item type, it's also
+ required to call `clear_reactive_cache!` on the associated work item types.
- Optional. Create linked item restrictions.
- Similarly to the `Hierarchy` widget, the `Linked items` widget also supports rules defining which work item types can be
linked to other types. A restriction can specify if the source type can be related to or blocking a target type. Current restrictions:
diff --git a/doc/editor_extensions/index.md b/doc/editor_extensions/index.md
index de1e3f21ee6..052327596c9 100644
--- a/doc/editor_extensions/index.md
+++ b/doc/editor_extensions/index.md
@@ -1,6 +1,7 @@
---
stage: Create
group: Editor Extensions
+description: Visual Studio Code, JetBrains, Neovim, GitLab CLI.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/editor_extensions/visual_studio_code/index.md b/doc/editor_extensions/visual_studio_code/index.md
index 4e2fb31c863..f6716f96fd8 100644
--- a/doc/editor_extensions/visual_studio_code/index.md
+++ b/doc/editor_extensions/visual_studio_code/index.md
@@ -37,7 +37,7 @@ you can [configure](https://marketplace.visualstudio.com/items?itemName=GitLab.g
- [Features to display or hide](https://gitlab.com/gitlab-org/gitlab-vscode-extension#extension-settings).
- [Self-signed certificate](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow#self-signed-certificates) information.
- [Code Suggestions](../../user/project/repository/code_suggestions/index.md).
-- [GitLab Duo Chat](../../user/gitlab_duo_chat.md#gitlab-workflow-extension-for-vs-code).
+- [GitLab Duo Chat](../../user/gitlab_duo_chat.md#use-gitlab-duo-chat-in-vs-code).
## Report issues with the extension
diff --git a/doc/gitlab-basics/start-using-git.md b/doc/gitlab-basics/start-using-git.md
index ecdc4aeed06..a1dd99d811f 100644
--- a/doc/gitlab-basics/start-using-git.md
+++ b/doc/gitlab-basics/start-using-git.md
@@ -117,7 +117,7 @@ Clone with SSH when you want to authenticate only one time.
1. Authenticate with GitLab by following the instructions in the [SSH documentation](../user/ssh.md).
1. On the left sidebar, select **Search or go to** and find the project you want to clone.
-1. On the right-hand side of the page, select **Clone**, then copy the URL for **Clone with SSH**.
+1. On the project's overview page, in the upper-right corner, select **Code**, then copy the URL for **Clone with SSH**.
1. Open a terminal and go to the directory where you want to clone the files.
Git automatically creates a folder with the repository name and downloads the files there.
1. Run this command:
@@ -142,7 +142,7 @@ between your computer and GitLab.
[OAuth credential helpers](../user/profile/account/two_factor_authentication.md#oauth-credential-helpers) can decrease the number of times you must manually authenticate, making HTTPS a seamless experience.
1. On the left sidebar, select **Search or go to** and find the project you want to clone.
-1. On the right-hand side of the page, select **Clone**, then copy the URL for **Clone with HTTPS**.
+1. On the project's overview page, in the upper-right corner, select **Code**, then copy the URL for **Clone with HTTPS**.
1. Open a terminal and go to the directory where you want to clone the files.
1. Run the following command. Git automatically creates a folder with the repository name and downloads the files there.
@@ -255,6 +255,47 @@ existing branch. You can create additional named remotes and branches as necessa
You can learn more on how Git manages remote repositories in the
[Git Remote documentation](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes).
+## Add another URL to a remote
+
+Add another URL to a remote, so both remotes get updated on each push:
+
+```shell
+git remote set-url --add <remote_name> <remote_url>
+```
+
+## Show the log of reference changes to HEAD
+
+```shell
+git reflog
+```
+
+## Check the Git history of a file
+
+The basic command to check the Git history of a file:
+
+```shell
+git log <file>
+```
+
+If you get this error message:
+
+```plaintext
+fatal: ambiguous argument <file_name>: unknown revision or path not in the working tree.
+Use '--' to separate paths from revisions, like this:
+```
+
+Use this to check the Git history of the file:
+
+```shell
+git log -- <file>
+```
+
+## Check the content of each change to a file
+
+```shell
+gitk <file>
+```
+
## Branches
A **branch** is a copy of the files in the repository at the time you create the branch.
@@ -423,6 +464,20 @@ In GitLab, you typically use a [merge request](../user/project/merge_requests/in
To create a merge request from a fork to an upstream repository, see the
[forking workflow](../user/project/repository/forking_workflow.md).
+## Reuse recorded resolutions
+
+To _reuse_ recorded resolutions:
+
+```shell
+git rerere
+```
+
+To enable `rerere` functionality:
+
+```shell
+git config --global rerere.enabled true
+```
+
## Advanced use of Git through the command line
For an introduction of more advanced Git techniques, see [Git rebase, force-push, and merge conflicts](../topics/git/git_rebase.md).
@@ -439,15 +494,3 @@ changes from the original repository. It is common to call this remote repositor
You can now use the `upstream` as a [`<remote>` to `pull` new updates](#download-the-latest-changes-in-the-project)
from the original repository, and use the `origin`
to [push local changes](#send-changes-to-gitlab) and create merge requests.
-
-<!-- ## Troubleshooting
-
-Include any troubleshooting steps that you can foresee. If you know beforehand what issues
-one might have when setting this up, or when something is changed, or on upgrading, it's
-important to describe those, too. Think of things that may go wrong and include them here.
-This is important to minimize requests for support, and to avoid doc comments with
-questions that you know someone might ask.
-
-Each scenario can be a third-level heading, for example `### Getting error message X`.
-If you have none to add when creating a doc, leave this section in place
-but commented out to help encourage others to add to it in the future. -->
diff --git a/doc/index.md b/doc/index.md
index 362bbab3607..37200d94293 100644
--- a/doc/index.md
+++ b/doc/index.md
@@ -37,14 +37,14 @@ Have a look at some of our most popular topics:
|:-------------------------------------------------------------------------------------------|:------------|
| [Two-factor authentication](user/profile/account/two_factor_authentication.md) | Improve the security of your GitLab account. |
| [GitLab groups](user/group/index.md) | Manage projects together. |
-| [Keyword reference for the `.gitlab-ci.yml` file](ci/yaml/index.md) | Available configuration options for `.gitlab-ci.yml` files. |
-| [Activate GitLab EE with a license](administration/license.md) | Activate GitLab Enterprise Edition functionality with a license. |
-| [Back up and restore GitLab](administration/backup_restore/index.md) | Backing up and restoring GitLab self-managed instances. |
+| [CI/CD YAML syntax reference](ci/yaml/index.md) | Available configuration options for `.gitlab-ci.yml` files. |
+| [Activate GitLab EE with a license](administration/license.md) | Activate GitLab Enterprise Edition functionality with a license. |
+| [Back up and restore GitLab](administration/backup_restore/index.md) | Backing up and restoring GitLab self-managed instances. |
| [GitLab release and maintenance policy](policy/maintenance.md) | Policies for version naming and cadence, and also upgrade recommendations. |
| [Elasticsearch integration](integration/advanced_search/elasticsearch.md) | Integrate Elasticsearch with GitLab to enable advanced search. |
-| [Database settings for Linux package installations](https://docs.gitlab.com/omnibus/settings/database.html) | Database settings for self-managed instances installed using Linux packages. |
-| [NGINX settings for Linux package installations](https://docs.gitlab.com/omnibus/settings/nginx.html) | NGINX settings for self-managed instances installed using Linux packages. |
-| [SSL configuration for Linux package installations](https://docs.gitlab.com/omnibus/settings/ssl/index.html) | SSL settings for self-managed instances installed using Linux packages. |
+| [Database settings for Linux package installations](https://docs.gitlab.com/omnibus/settings/database.html) | Database settings for self-managed instances installed using Linux packages. |
+| [NGINX settings for Linux package installations](https://docs.gitlab.com/omnibus/settings/nginx.html) | NGINX settings for self-managed instances installed using Linux packages. |
+| [SSL configuration for Linux package installations](https://docs.gitlab.com/omnibus/settings/ssl/index.html) | SSL settings for self-managed instances installed using Linux packages. |
| [GitLab.com settings](user/gitlab_com/index.md) | Settings used for GitLab.com. |
## User account
@@ -54,7 +54,7 @@ For more information about GitLab account management, see:
| Topic | Description |
|:-----------------------------------------------------------|:------------|
| [User account](user/profile/index.md) | Manage your account. |
-| [Authentication](topics/authentication/index.md) | Account security with two-factor authentication, set up your SSH keys, and deploy keys for secure access to your projects. |
+| [Authentication](administration/auth/index.md) | Account security with two-factor authentication, set up your SSH keys, and deploy keys for secure access to your projects. |
| [User settings](user/profile/index.md#access-your-user-settings) | Manage your user settings, two factor authentication, and more. |
| [User permissions](user/permissions.md) | Learn what each role in a project can do. |
@@ -62,10 +62,10 @@ For more information about GitLab account management, see:
If you are coming to GitLab from another platform, the following information is useful:
-| Topic | Description |
-|:----------------------------------------------------|:------------|
-| [Importing to GitLab](user/project/import/index.md) | Import your projects from GitHub, Bitbucket, GitLab.com, FogBugz, and SVN into GitLab. |
-| [Migrating from SVN](user/project/import/index.md#import-from-subversion) | Convert a SVN repository to Git and GitLab. |
+| Topic | Description |
+|:---------------------------------------------------------------------------------------|:------------|
+| [Importing to GitLab](user/project/import/index.md) | Import your projects from GitHub, Bitbucket, GitLab.com, FogBugz, and SVN into GitLab. |
+| [Migrating from SVN](user/project/import/index.md#import-repositories-from-subversion) | Convert a SVN repository to Git and GitLab. |
## Build an integration with GitLab
diff --git a/doc/install/aws/index.md b/doc/install/aws/index.md
index 6ed3368fb45..25b52c9003c 100644
--- a/doc/install/aws/index.md
+++ b/doc/install/aws/index.md
@@ -725,13 +725,13 @@ From the EC2 dashboard:
1. We leave our **Health Check Grace Period** as the default `300` seconds. Select **Configure scaling policies**.
1. Check **Use scaling policies to adjust the capacity of this group**.
1. For this group we scale between 2 and 4 instances where one instance is added if CPU
-utilization is greater than 60% and one instance is removed if it falls
-to less than 45%.
+ utilization is greater than 60% and one instance is removed if it falls
+ to less than 45%.
![Auto scaling group policies](img/policies.png)
1. Finally, configure notifications and tags as you see fit, review your changes, and create the
-auto scaling group.
+ auto scaling group.
As the auto scaling group is created, you see your new instances spinning up in your EC2 dashboard. You also see the new instances added to your load balancer. After the instances pass the heath check, they are ready to start receiving traffic from the load balancer.
diff --git a/doc/install/cloud_providers.md b/doc/install/cloud_providers.md
index 318895b6d89..ecec2250e11 100644
--- a/doc/install/cloud_providers.md
+++ b/doc/install/cloud_providers.md
@@ -1,11 +1,11 @@
---
stage: Systems
group: Distribution
+description: AWS, Google Cloud Platform, Azure.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
-description: Install GitLab on a cloud provider.
---
-# Installing GitLab on a cloud provider **(FREE SELF)**
+# Install GitLab on a cloud provider **(FREE SELF)**
You can install GitLab on several cloud providers.
diff --git a/doc/install/docker.md b/doc/install/docker.md
index 252f34f7120..76e5b9bd7b3 100644
--- a/doc/install/docker.md
+++ b/doc/install/docker.md
@@ -531,7 +531,7 @@ To upgrade GitLab that was [installed using Docker Engine](#install-gitlab-using
```
1. Create the container once again with the
-[previously specified](#install-gitlab-using-docker-engine) options:
+ [previously specified](#install-gitlab-using-docker-engine) options:
```shell
sudo docker run --detach \
@@ -621,7 +621,7 @@ to back up the `gitlab.rb` file.
WARNING:
[Backing up the GitLab secrets file](../administration/backup_restore/backup_gitlab.md#storing-configuration-files) is required
-to avoid [complicated steps](../administration/backup_restore/backup_gitlab.md#when-the-secrets-file-is-lost) when recovering
+to avoid [complicated steps](../administration/backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost) when recovering
GitLab from backup. The secrets file is stored at `/etc/gitlab/gitlab-secrets.json` inside the container, or
`$GITLAB_HOME/config/gitlab-secrets.json` [on the container host](#set-up-the-volumes-location).
diff --git a/doc/install/install_methods.md b/doc/install/install_methods.md
index b40d89e957a..99be2709564 100644
--- a/doc/install/install_methods.md
+++ b/doc/install/install_methods.md
@@ -1,8 +1,8 @@
---
stage: Systems
group: Distribution
+description: Linux, Helm, Docker, Operator, source, or scripts.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
-description: Read through the GitLab installation methods.
---
# Installation methods **(FREE SELF)**
diff --git a/doc/install/installation.md b/doc/install/installation.md
index 370f67865ed..0ccb475eacc 100644
--- a/doc/install/installation.md
+++ b/doc/install/installation.md
@@ -174,7 +174,7 @@ the Git path:
### GraphicsMagick
-For the [Custom Favicon](../administration/appearance.md#favicon) to work, GraphicsMagick
+For the [Custom Favicon](../administration/appearance.md#customize-the-favicon) to work, GraphicsMagick
must be installed.
```shell
diff --git a/doc/install/requirements.md b/doc/install/requirements.md
index fa6be957d99..bad3a2b09e7 100644
--- a/doc/install/requirements.md
+++ b/doc/install/requirements.md
@@ -1,6 +1,7 @@
---
stage: Systems
group: Distribution
+description: Prerequisites for installation.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -231,8 +232,8 @@ The recommended number of threads is dependent on several factors, including tot
- If the operating system has a maximum 2 GB of memory, the recommended number of threads is `1`.
A higher value results in excess swapping, and decrease performance.
- In all other cases, the recommended number of threads is `4`. We don't recommend setting this
-higher, due to how [Ruby MRI multi-threading](https://en.wikipedia.org/wiki/Global_interpreter_lock)
-works.
+ higher, due to how [Ruby MRI multi-threading](https://en.wikipedia.org/wiki/Global_interpreter_lock)
+ works.
### Puma per worker maximum memory
diff --git a/doc/integration/advanced_search/elasticsearch.md b/doc/integration/advanced_search/elasticsearch.md
index 0a456e6c73e..896ad18033b 100644
--- a/doc/integration/advanced_search/elasticsearch.md
+++ b/doc/integration/advanced_search/elasticsearch.md
@@ -997,7 +997,7 @@ To create both an indexing and a non-indexing Sidekiq process in one node:
```
1. Save the file and [reconfigure GitLab](../../administration/restart_gitlab.md)
-for the changes to take effect.
+ for the changes to take effect.
1. On all other Rails and Sidekiq nodes, ensure that `sidekiq['routing_rules']` is the same as above.
1. Run the Rake task to [migrate existing jobs](../../administration/sidekiq/sidekiq_job_migration.md):
@@ -1029,7 +1029,7 @@ To handle these queue groups on two nodes:
```
1. Save the file and [reconfigure GitLab](../../administration/restart_gitlab.md)
-for the changes to take effect.
+ for the changes to take effect.
1. To set up the non-indexing Sidekiq process, on your non-indexing Sidekiq node, change the `/etc/gitlab/gitlab.rb` file to:
@@ -1052,7 +1052,7 @@ for the changes to take effect.
1. On all other Rails and Sidekiq nodes, ensure that `sidekiq['routing_rules']` is the same as above.
1. Save the file and [reconfigure GitLab](../../administration/restart_gitlab.md)
-for the changes to take effect.
+ for the changes to take effect.
1. Run the Rake task to [migrate existing jobs](../../administration/sidekiq/sidekiq_job_migration.md):
```shell
diff --git a/doc/integration/clickhouse.md b/doc/integration/clickhouse.md
new file mode 100644
index 00000000000..1382488ad57
--- /dev/null
+++ b/doc/integration/clickhouse.md
@@ -0,0 +1,126 @@
+---
+stage: none
+group: unassigned
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# ClickHouse integration guidelines **(EXPERIMENT)**
+
+This feature is an [Experiment](../policy/experiment-beta-support.md).
+
+Instructions about how to setup integration between GitLab and ClickHouse database.
+
+## Setup
+
+To setup ClickHouse as the GitLab data storage:
+
+1. [Run ClickHouse Cluster and configure database](#run-and-configure-clickhouse).
+1. [Configure GitLab connection to Clickhouse](#configure-the-gitlab-connection-to-clickhouse).
+1. [Run ClickHouse migrations](#run-clickhouse-migrations).
+
+### Run and configure ClickHouse
+
+The most straightforward way to run ClickHouse is with [ClickHouse Cloud](https://clickhouse.cloud/).
+You can also [run ClickHouse on your own server](https://clickhouse.com/docs/en/install). Refer to the ClickHouse
+documentation regarding [recommendations for self-managed instances](https://clickhouse.com/docs/en/install#recommendations-for-self-managed-clickhouse).
+
+When you run ClickHouse on a hosted server, various data points might impact the resource consumption, like the number
+of builds that run on your instance each month, the selected hardware, the data center choice to host ClickHouse, and more.
+Regardless, the cost should not be significant.
+
+NOTE:
+ClickHouse is a secondary data store for GitLab. All your data is still stored in Postgres,
+and only duplicated in ClickHouse for analytics purposes.
+
+To create necessary user and database objects:
+
+1. Generate a secure password and save it.
+1. Sign in to the ClickHouse SQL console.
+1. Execute the following command. Replace `PASSWORD_HERE` with the generated password.
+
+ ```sql
+ CREATE DATABASE gitlab_clickhouse_main_production;
+ CREATE USER gitlab IDENTIFIED WITH sha256_password BY 'PASSWORD_HERE';
+ CREATE ROLE gitlab_app;
+ GRANT SELECT, INSERT, ALTER, CREATE, UPDATE, DROP, TRUNCATE, OPTIMIZE ON gitlab_clickhouse_main_production.* TO gitlab_app;
+ GRANT gitlab_app TO gitlab;
+ ```
+
+### Configure the GitLab connection to ClickHouse
+
+::Tabs
+
+:::TabTitle Linux package
+
+To provide GitLab with ClickHouse credentials:
+
+1. Edit `/etc/gitlab/gitlab.rb`:
+
+ ```ruby
+ gitlab_rails['clickhouse_databases']['main']['database'] = 'gitlab_clickhouse_main_production'
+ gitlab_rails['clickhouse_databases']['main']['url'] = 'https://example.com/path'
+ gitlab_rails['clickhouse_databases']['main']['username'] = 'gitlab'
+ gitlab_rails['clickhouse_databases']['main']['password'] = 'PASSWORD_HERE' # replace with the actual password
+ ```
+
+1. Save the file and reconfigure GitLab:
+
+ ```shell
+ sudo gitlab-ctl reconfigure
+ ```
+
+:::TabTitle Helm chart (Kubernetes)
+
+1. Save the ClickHouse password as a Kubernetes Secret:
+
+ ```shell
+ kubectl create secret generic gitlab-clickhouse-password --from-literal="main_password=PASSWORD_HERE"
+ ```
+
+1. Export the Helm values:
+
+ ```shell
+ helm get values gitlab > gitlab_values.yaml
+ ```
+
+1. Edit `gitlab_values.yaml`:
+
+ ```yaml
+ global:
+ clickhouse:
+ enabled: true
+ main:
+ username: default
+ password:
+ secret: gitlab-clickhouse-password
+ key: main_password
+ database: gitlab_clickhouse_main_production
+ url: 'http://example.com'
+ ```
+
+1. Save the file and apply the new values:
+
+ ```shell
+ helm upgrade -f gitlab_values.yaml gitlab gitlab/gitlab
+ ```
+
+::EndTabs
+
+To verify that your connection is set up successfully:
+
+1. Log in to [Rails console](../administration/operations/rails_console.md#starting-a-rails-console-session)
+1. Execute the following:
+
+ ```ruby
+ ClickHouse::Client.select('SELECT 1', :main)
+ ```
+
+ If successful, the command returns `[{"1"=>1}]`
+
+### Run ClickHouse migrations
+
+To create the required database objects execute:
+
+```shell
+sudo gitlab-rake gitlab:clickhouse:migrate
+```
diff --git a/doc/integration/diffblue_cover.md b/doc/integration/diffblue_cover.md
new file mode 100644
index 00000000000..bd1d026b5ef
--- /dev/null
+++ b/doc/integration/diffblue_cover.md
@@ -0,0 +1,89 @@
+---
+stage: Verify
+group: Pipeline Execution
+info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
+description: >-
+ How to configure the Diffblue Cover GitLab integration - Cover Pipeline for
+ GitLab
+---
+
+# Diffblue Cover **(FREE ALL)**
+
+You can integrate the [Diffblue Cover](https://www.diffblue.com/) reinforcement learning AI tool into your CI/CD pipelines, to automatically write and maintain Java unit tests for your GitLab projects.
+The Diffblue Cover Pipeline for GitLab integration allows you to automatically:
+
+- Write a baseline unit test suite for your projects.
+- Write new unit tests for new code.
+- Update existing unit tests in your code.
+- Remove existing unit tests in your code when they're no longer required.
+
+![Cover Pipeline for GitLab Basic MR Process](img/diffblue_cover_workflow_after_v16_8.png)
+
+## Configure the integration
+
+To integrate Diffblue Cover into your pipeline:
+
+1. Find and configure the Diffblue Cover integration.
+1. Configure a pipeline for a sample project using the GitLab pipeline editor and the Diffblue Cover pipeline template.
+1. Create a full baseline unit test suite for the project.
+
+### Configure Diffblue Cover
+
+1. On the left sidebar, select **Search or go to** and find your project.
+ - If you want to test the integration with a sample project, you can [import](../user/project/import/repo_by_url.md)
+ the Diffblue [Spring PetClinic sample project](https://github.com/diffblue/demo-spring-petclinic).
+1. Select **Settings > Integrations**.
+1. Find **Diffblue Cover** and select **Configure**.
+1. Complete the fields:
+
+ - Select the **Active** checkbox.
+ - Enter your Diffblue Cover **License key** provided in your welcome email or by your organization.
+ If needed, select the [**Try Diffblue Cover**](https://www.diffblue.com/try-cover/gitlab) link to sign up for a free trial.
+ - Enter details of your GitLab access token (**Name** and **Secret**) to allow Diffblue Cover to access your project.
+ In general, use a GitLab [project access token](../user/project/settings/project_access_tokens.md) with the `Developer` role, plus `api` and `write_repository` scopes.
+ If necessary you can use a [group access token](../user/group/settings/group_access_tokens.md) or a [personal access token](../user/profile/personal_access_tokens.md), again with the `Developer` role, plus `api` and `write_repository` scopes.
+
+ NOTE:
+ Using an access token with excessive permissions is a security risk.
+ If you use a Personal access token, consider creating a dedicated user with access limited to just the project, minimizing the impact of the token being leaked.
+
+1. Select **Save changes**.
+ Your Diffblue Cover integration is now <mark style="color:green;">**Active**</mark> and ready for use in your project.
+
+### Configure a pipeline
+
+Here we'll create a merge request pipeline for the project that will download the latest version of Diffblue Cover, build the project, write Java unit tests for the project, and commit the changes to the branch.
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Build > Pipeline editor**.
+1. Select **Configure pipeline** to create the `.gitlab-ci.yml` file.
+1. Select **Browse templates** and find the `Diffblue-Cover.gitlab-ci.yml` template file.
+1. Select the file and copy the contents to your project's `.gitlab-ci.yml` file.
+
+ NOTE:
+ When using the Diffblue Cover pipeline template with your own project and existing pipeline file, add the Diffblue template content to your file and modify as needed.
+ For more information, see [Cover Pipeline for GitLab](https://docs.diffblue.com/features/cover-pipeline/cover-pipeline-for-gitlab) in the Diffblue documentation.
+
+1. Enter a commit message.
+1. Enter a new **Branch** name. For example, `add-diffblue-cover-pipeline`.
+1. Select **Start a new merge request with these changes**.
+1. Select **Commit changes**.
+
+### Create a baseline unit test suite
+
+1. In the **New merge request** form, enter a **Title** (for example, "Add Cover pipeline and create baseline unit test suite") and fill out the other fields.
+1. Select **Create merge request**. The merge request pipeline runs Diffblue Cover to create the baseline unit test suite for the project.
+1. Once the pipeline completes, the changes can be reviewed from the **Changes** tab. When you're happy, merge the updates to your repo. Go to the `src/test` folders in the project repository to see the unit tests created by Diffblue Cover (suffixed with `*DiffblueTest.java`).
+
+## Subsequent code changes
+
+When performing subsequent code changes to a project, the merge request pipeline will run Diffblue Cover but will only update the associated tests.
+The resulting diff can then be analyzed to check the new behavior, catch regressions, and spot any unplanned behavioral changes to the code.
+
+![Code Change Diff](img/diffblue_cover_diff_v16_8.png)
+
+## Next steps
+
+This topic demonstrates some of the key features of Cover Pipeline for GitLab and how to use the integration in a pipeline.
+The wider and deeper functionality, provided through `dcover` commands in the pipeline template, can be implemented to expand your unit test capabilities even further.
+For more information, see [Cover Pipeline for GitLab](https://docs.diffblue.com/features/cover-pipeline/cover-pipeline-for-gitlab) in the Diffblue documentation.
diff --git a/doc/integration/gitpod.md b/doc/integration/gitpod.md
index 05ffaa98a42..2c074162634 100644
--- a/doc/integration/gitpod.md
+++ b/doc/integration/gitpod.md
@@ -16,9 +16,7 @@ your Git branches like a CI/CD server.
This means you don't have to wait for dependencies to be downloaded and builds to finish, you can start
coding immediately. With Gitpod you can start coding instantly on any project, branch, and merge
-request from any device, at any time, from your browser:
-
-![Gitpod interface](img/gitpod_web_interface_v13_4.png)
+request from your browser.
To use the GitLab Gitpod integration, it must be enabled for your GitLab instance. Users of:
diff --git a/doc/integration/img/diffblue_cover_diff_v16_8.png b/doc/integration/img/diffblue_cover_diff_v16_8.png
new file mode 100644
index 00000000000..1ee4dd954af
--- /dev/null
+++ b/doc/integration/img/diffblue_cover_diff_v16_8.png
Binary files differ
diff --git a/doc/integration/img/diffblue_cover_workflow_after_v16_8.png b/doc/integration/img/diffblue_cover_workflow_after_v16_8.png
new file mode 100644
index 00000000000..21345600125
--- /dev/null
+++ b/doc/integration/img/diffblue_cover_workflow_after_v16_8.png
Binary files differ
diff --git a/doc/integration/img/gitpod_web_interface_v13_4.png b/doc/integration/img/gitpod_web_interface_v13_4.png
deleted file mode 100644
index 5cd9a6aad0f..00000000000
--- a/doc/integration/img/gitpod_web_interface_v13_4.png
+++ /dev/null
Binary files differ
diff --git a/doc/integration/index.md b/doc/integration/index.md
index 736f25f71d8..2a3154a739d 100644
--- a/doc/integration/index.md
+++ b/doc/integration/index.md
@@ -1,6 +1,7 @@
---
stage: Manage
group: Import and Integrate
+description: Projects, issues, authentication, security providers.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/integration/jira/connect-app.md b/doc/integration/jira/connect-app.md
index 6f6a882031a..2dac6dd5cf5 100644
--- a/doc/integration/jira/connect-app.md
+++ b/doc/integration/jira/connect-app.md
@@ -104,15 +104,15 @@ When configuring the GitLab for Jira Cloud app on GitLab.com, you might encounte
For self-managed GitLab, see [GitLab for Jira Cloud app administration](../../administration/settings/jira_cloud_app_troubleshooting.md).
-### `Failed to link group`
+### Error when connecting the app
-After you connect the GitLab for Jira Cloud app, you might get this error:
+When you connect the GitLab for Jira Cloud app, you might get this error:
```plaintext
Failed to link group. Please try again.
```
-`403` status code is returned if the user information cannot be fetched from Jira due to insufficient permissions.
+A `403 Forbidden` is returned if the user information cannot be fetched from Jira because of insufficient permissions.
-To resolve this issue, ensure that the Jira user that installs and configures the GitLab for Jira Cloud app meets certain
+To resolve this issue, ensure the Jira user that installs and configures the app meets certain
[requirements](../../administration/settings/jira_cloud_app.md#jira-user-requirements).
diff --git a/doc/integration/jira/dvcs/troubleshooting.md b/doc/integration/jira/dvcs/troubleshooting.md
index ee697f1bffd..04113975f06 100644
--- a/doc/integration/jira/dvcs/troubleshooting.md
+++ b/doc/integration/jira/dvcs/troubleshooting.md
@@ -6,9 +6,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Troubleshooting Jira DVCS connector **(FREE ALL)**
-Refer to the items in this section if you're having problems with your Jira DVCS connector.
+When working with the [Jira DVCS connector](index.md), you might encounter the following issues.
-## Jira cannot access GitLab server
+## Jira cannot access the GitLab server
If you complete the **Add New Account** form, authorize access, and you receive
this error, Jira and GitLab cannot connect. No other error messages
@@ -20,9 +20,10 @@ Error obtaining access token. Cannot access https://gitlab.example.com from Jira
## Session token bug in Jira
-When using GitLab 15.0 and later (including GitLab.com) with Jira Server, you might experience
-a [session token bug in Jira](https://jira.atlassian.com/browse/JSWSERVER-21389). As a workaround,
-ensure Jira Server is version 9.1.0 and later or 8.20.11 and later.
+When you use GitLab 15.0 and later with Jira Server, you might encounter a
+[session token bug in Jira](https://jira.atlassian.com/browse/JSWSERVER-21389).
+
+To resolve this issue, ensure Jira Server is version 9.1.0 and later or 8.20.11 and later.
## SSL and TLS problems
@@ -42,7 +43,7 @@ Error obtaining access token. Cannot access https://gitlab.example.com from Jira
issued by a public certificate authority, add the appropriate certificate
(such as your organization's root certificate) to the Java Truststore on Jira Server.
-For help with Jira setup, see the Atlassian documentation and Atlassian Support:
+For more information about setting up Jira, see the Atlassian documentation and Atlassian Support.
- [Add a certificate](https://confluence.atlassian.com/kb/how-to-import-a-public-ssl-certificate-into-a-jvm-867025849.html)
to the trust store.
@@ -68,7 +69,7 @@ The message `Successfully connected` indicates a successful TLS handshake.
If there are problems, the Java TLS library generates errors that you can
look up for more detail.
-## Scope error when connecting to Jira using DVCS
+## Scope error when connecting to Jira with DVCS
```plaintext
The requested scope is invalid, unknown, or malformed.
@@ -83,7 +84,7 @@ Potential resolutions:
[GitLab account configuration](index.md#create-a-gitlab-application-for-dvcs). Review
the **Scopes** field and ensure the `api` checkbox is selected.
-## Jira error adding account and no repositories listed
+## Error when adding an account in Jira
After you complete the **Add New Account** form in Jira and authorize access, you might
encounter these issues:
@@ -100,13 +101,12 @@ To resolve this issue:
[Contact GitLab Support](https://about.gitlab.com/support/) if none of these reasons apply.
-## `410 : Gone` error when connecting to Jira
-
-When you connect to Jira and synchronize repositories, you may receive a `410 : Gone` error.
+## `410 Gone` when connecting to Jira
+When you connect to Jira and synchronize repositories, you might get a `410 Gone` error.
This issue occurs when you use the Jira DVCS connector and your integration is configured to use **GitHub Enterprise**.
-For more information and possible fixes, see [this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/340160).
+For more information, see [issue 340160](https://gitlab.com/gitlab-org/gitlab/-/issues/340160).
## Synchronization issues
@@ -123,7 +123,7 @@ resynchronize the information:
For more information, see the
[Atlassian documentation](https://support.atlassian.com/jira-cloud-administration/docs/integrate-with-development-tools/).
-## `Sync Failed` error when refreshing repository data
+## `Sync Failed` when refreshing repository data
If you get a `Sync Failed` error in Jira when [refreshing repository data](index.md#refresh-data-imported-to-jira) for specific projects, check your Jira DVCS connector logs. Look for errors that occur when executing requests to API resources in GitLab. For example:
@@ -132,8 +132,8 @@ Failed to execute request [https://gitlab.com/api/v4/projects/:id/merge_requests
{"message":"403 Forbidden"}
```
-If you find a `{"message":"403 Forbidden"}` error, it is possible that this specific project has some [GitLab features disabled](../../../user/project/settings/project_features_permissions.md#configure-project-features-and-permissions).
-In the example above, the merge requests feature is disabled.
+If you get a `403 Forbidden` error, this project might have some [GitLab features disabled](../../../user/project/settings/project_features_permissions.md#configure-project-features-and-permissions).
+In the previous example, the merge requests feature is disabled.
To resolve the issue, enable the relevant feature:
diff --git a/doc/integration/jira/troubleshooting.md b/doc/integration/jira/troubleshooting.md
index 6c8b49b4159..a9f190068b4 100644
--- a/doc/integration/jira/troubleshooting.md
+++ b/doc/integration/jira/troubleshooting.md
@@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Troubleshooting Jira issue integration **(FREE ALL)**
-This page contains a list of common issues you might encounter when working with the [Jira issue integration](configure.md).
+When working with the [Jira issue integration](configure.md), you might encounter the following issues.
## GitLab cannot link to a Jira issue
@@ -70,7 +70,7 @@ If GitLab cannot close a Jira issue:
- Ensure the transition ID you set in the Jira settings matches the one
your project must have to close an issue. For more information, see
- [automatic issue transitions](issues.md#automatic-issue-transitions) and [custom issue transitions](issues.md#custom-issue-transitions).
+ [Automatic issue transitions](issues.md#automatic-issue-transitions) and [Custom issue transitions](issues.md#custom-issue-transitions).
- Make sure the Jira issue is not already marked as resolved:
- Check the Jira issue resolution field is not set.
- Check the issue is not struck through in Jira lists.
@@ -122,7 +122,7 @@ To resolve this issue, see
WARNING:
Commands that change data can cause damage if not run correctly or under the right conditions. Always run commands in a test environment first and have a backup instance ready to restore.
-### Change all projects on the instance
+### Change all projects on an instance
To change all Jira projects to use instance-level integration settings:
@@ -189,7 +189,7 @@ To change all Jira projects in a group (and its subgroups) to use group-level in
end
```
-## Update the Jira issue integration password for all projects
+## Update the integration password for all projects
WARNING:
Commands that change data can cause damage if not run correctly or under the right conditions. Always run commands in a test environment first and have a backup instance ready to restore.
@@ -212,7 +212,7 @@ When [viewing Jira issues](issues.md#view-jira-issues) in GitLab, you might enco
### `500 We're sorry` when accessing a Jira issue in GitLab
When accessing a Jira issue in GitLab, you might get a `500 We're sorry. Something went wrong on our end` error.
-Check [`production.log`](../../administration/logs/index.md#productionlog) to see if it contains the following exception:
+Check [`production.log`](../../administration/logs/index.md#productionlog) to see if the file contains the following exception:
```plaintext
:NoMethodError (undefined method 'duedate' for #<JIRA::Resource::Issue:0x00007f406d7b3180>)
diff --git a/doc/integration/kerberos.md b/doc/integration/kerberos.md
index b5515a730d3..8f2e121cb26 100644
--- a/doc/integration/kerberos.md
+++ b/doc/integration/kerberos.md
@@ -4,7 +4,7 @@ group: Authentication
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
---
-# Use Kerberos as an OAuth 2.0 authentication provider **(FREE SELF)**
+# Integrate GitLab with Kerberos **(FREE SELF)**
GitLab can integrate with [Kerberos](https://web.mit.edu/kerberos/) as an authentication mechanism.
diff --git a/doc/integration/partner_marketplace.md b/doc/integration/partner_marketplace.md
index 36aef0a0a90..cbcb8f70164 100644
--- a/doc/integration/partner_marketplace.md
+++ b/doc/integration/partner_marketplace.md
@@ -124,8 +124,8 @@ curl \
To create a new customer subscription from a Marketplace partner client application,
- Make an authorized POST request to the
-[`/api/v1/marketplace/subscriptions`](https://customers.staging.gitlab.com/openapi_docs/marketplace#/marketplace/post_api_v1_marketplace_subscriptions)
-endpoint in the Customers Portal with the following parameters in JSON format:
+ [`/api/v1/marketplace/subscriptions`](https://customers.staging.gitlab.com/openapi_docs/marketplace#/marketplace/post_api_v1_marketplace_subscriptions)
+ endpoint in the Customers Portal with the following parameters in JSON format:
| Parameter | Type | Required | Description |
|--------------------------|--------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------|
@@ -144,8 +144,8 @@ If the subscription creation is unsuccessful, the response body includes an erro
To get the status of a given subscription,
- Make an authorized GET request to the
-[`/api/v1/marketplace/subscriptions/{external_subscription_id}`](https://customers.staging.gitlab.com/openapi_docs/marketplace#/marketplace/get_api_v1_marketplace_subscriptions__external_subscription_id_)
-endpoint in the Customers Portal.
+ [`/api/v1/marketplace/subscriptions/{external_subscription_id}`](https://customers.staging.gitlab.com/openapi_docs/marketplace#/marketplace/get_api_v1_marketplace_subscriptions__external_subscription_id_)
+ endpoint in the Customers Portal.
The request must include the Marketplace partner system ID of the subscription to fetch the status for.
diff --git a/doc/integration/saml.md b/doc/integration/saml.md
index 3423b1bde6d..466c1ec7ed0 100644
--- a/doc/integration/saml.md
+++ b/doc/integration/saml.md
@@ -666,10 +666,12 @@ IdPs, contact your provider's support.
Prerequisites:
- Make sure you have access to a
-[Google Workspace Super Admin account](https://support.google.com/a/answer/2405986#super_admin).
+ [Google Workspace Super Admin account](https://support.google.com/a/answer/2405986#super_admin).
+
+To set up a Google Workspace:
1. Use the following information, and follow the instructions in
-[Set up your own custom SAML application in Google Workspace](https://support.google.com/a/answer/6087519?hl=en).
+ [Set up your own custom SAML application in Google Workspace](https://support.google.com/a/answer/6087519?hl=en).
| | Typical value | Description |
|:-----------------|:---------------------------------------------------|:----------------------------------------------------------------------------------------------|
@@ -2437,7 +2439,10 @@ The value given is added to the current time at which the response is validated.
::EndTabs
-### Designate a unique attribute for the `uid`
+### Designate a unique attribute for the `uid` (optional)
+
+By default, the users `uid` is set as the `NameID` attribute in the SAML response. To designate
+a different attribute for the `uid`, you can set the `uid_attribute`.
Before setting the `uid` to a unique attribute, make sure that you have configured
the following attributes so your SAML users cannot change them:
@@ -2448,10 +2453,7 @@ the following attributes so your SAML users cannot change them:
If users can change these attributes, they can sign in as other authorized users.
See your SAML IdP documentation for information on how to make these attributes
unchangeable.
-
-By default, the `uid` is set as the `name_id` in the SAML response. To designate
-a unique attribute for the `uid`, you can set the `uid_attribute`. In the following
-example, the value of `uid` attribute in the SAML response is set as the `uid_attribute`.
+In the following example, the value of `uid` attribute in the SAML response is set as the `uid_attribute`.
::Tabs
diff --git a/doc/integration/shibboleth.md b/doc/integration/shibboleth.md
index f30f073bf08..0ff99a144c2 100644
--- a/doc/integration/shibboleth.md
+++ b/doc/integration/shibboleth.md
@@ -4,7 +4,7 @@ group: Authentication
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Use Shibboleth as an OAuth 2.0 authentication provider **(FREE SELF)**
+# Use Shibboleth as an authentication provider **(FREE SELF)**
NOTE:
Use the [GitLab SAML integration](saml.md) to integrate specific Shibboleth identity providers (IdPs). For Shibboleth federation support (Discovery Service), use this document.
diff --git a/doc/integration/sourcegraph.md b/doc/integration/sourcegraph.md
index f6fb387f016..198dda7ec95 100644
--- a/doc/integration/sourcegraph.md
+++ b/doc/integration/sourcegraph.md
@@ -42,7 +42,7 @@ If you are using an HTTPS connection to GitLab, you must [configure HTTPS](https
1. Navigate to the site Admin Area in Sourcegraph.
1. [Configure your GitLab external service](https://docs.sourcegraph.com/admin/external_service/gitlab).
-You can skip this step if you already have your GitLab repositories searchable in Sourcegraph.
+ You can skip this step if you already have your GitLab repositories searchable in Sourcegraph.
1. Validate that you can search your repositories from GitLab in your Sourcegraph instance by running a test query.
1. Add your GitLab instance URL to the [`corsOrigin` setting](https://docs.sourcegraph.com/admin/config/site_config#corsOrigin) in your site configuration.
diff --git a/doc/integration/vault.md b/doc/integration/vault.md
index 54ade6c1066..8a76ef02215 100644
--- a/doc/integration/vault.md
+++ b/doc/integration/vault.md
@@ -4,7 +4,7 @@ group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Use Vault as a GitLab OpenID Connect authentication provider **(FREE ALL)**
+# Vault authentication with GitLab OpenID Connect **(FREE ALL)**
[Vault](https://www.vaultproject.io/) is a secrets management application offered by HashiCorp.
It allows you to store and manage sensitive information such as secret environment
diff --git a/doc/operations/img/metrics_details_v16_8.png b/doc/operations/img/metrics_details_v16_8.png
new file mode 100644
index 00000000000..ede5ed95e97
--- /dev/null
+++ b/doc/operations/img/metrics_details_v16_8.png
Binary files differ
diff --git a/doc/operations/img/metrics_list_v16_8.png b/doc/operations/img/metrics_list_v16_8.png
new file mode 100644
index 00000000000..29a12fa205b
--- /dev/null
+++ b/doc/operations/img/metrics_list_v16_8.png
Binary files differ
diff --git a/doc/operations/img/tracing_details_v16_7.png b/doc/operations/img/tracing_details_v16_7.png
new file mode 100644
index 00000000000..2e9cb180994
--- /dev/null
+++ b/doc/operations/img/tracing_details_v16_7.png
Binary files differ
diff --git a/doc/operations/img/tracing_drawer_v16_7.png b/doc/operations/img/tracing_drawer_v16_7.png
new file mode 100644
index 00000000000..263151edaab
--- /dev/null
+++ b/doc/operations/img/tracing_drawer_v16_7.png
Binary files differ
diff --git a/doc/operations/img/tracing_list_v16_3.png b/doc/operations/img/tracing_list_v16_3.png
deleted file mode 100644
index 93c336d4bd7..00000000000
--- a/doc/operations/img/tracing_list_v16_3.png
+++ /dev/null
Binary files differ
diff --git a/doc/operations/img/tracing_list_v16_7.png b/doc/operations/img/tracing_list_v16_7.png
new file mode 100644
index 00000000000..ad186a33bb1
--- /dev/null
+++ b/doc/operations/img/tracing_list_v16_7.png
Binary files differ
diff --git a/doc/operations/index.md b/doc/operations/index.md
index 0ea5922d378..e14d371e75d 100644
--- a/doc/operations/index.md
+++ b/doc/operations/index.md
@@ -1,6 +1,7 @@
---
stage: Service Management
group: Respond
+description: Error tracking, incident management.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -34,6 +35,12 @@ and the work required to fix them - all without leaving GitLab.
- Discover and view errors generated by your applications with
[Error Tracking](error_tracking.md).
+## Manage application performance with distributed tracing
+
+GitLab can troubleshoot application performance issues with distributed tracing by inspecting how a request moves through different services and systems, the timing of each operation, and any errors or logs as they occur. You can leverage tracing for your microservice applications, which group multiple independent services collaborating to fulfill user requests.
+
+- See [Distributed tracing](tracing.md).
+
## Manage your infrastructure in code
GitLab stores and executes your infrastructure as code, whether it's
diff --git a/doc/operations/metrics.md b/doc/operations/metrics.md
new file mode 100644
index 00000000000..b99c86d1a23
--- /dev/null
+++ b/doc/operations/metrics.md
@@ -0,0 +1,76 @@
+---
+stage: Monitor
+group: Observability
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Metrics **(ULTIMATE SAAS EXPERIMENT)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 16.7 [with a flag](../administration/feature_flags.md) named `observability_metrics`. Disabled by default. This feature is an [Experiment](../policy/experiment-beta-support.md#experiment).
+
+FLAG:
+On self-managed GitLab, by default this feature is not available.
+To make it available, an administrator can [enable the feature flag](../administration/feature_flags.md) named `observability_metrics`.
+On GitLab.com, this feature is not available.
+The feature is not ready for production use.
+
+Metrics provide insight about the operational health of monitored systems.
+Use metrics to learn more about your systems and applications in a given time range.
+
+Metrics are structured as time series data, and are:
+
+- Indexed by timestamp
+- Continuously expanding as additional data is gathered
+- Usually aggregated, downsampled, and queried by range
+- Have write-intensive requirements
+
+## Configure metrics
+
+Configure metrics to enable them for a project.
+
+Prerequisites:
+
+You must have at least the Maintainer role for the project.
+
+1. Create an access token and enable metrics:
+ 1. On the left sidebar, select **Search or go to** and find your project.
+ 1. Select **Settings > Access Tokens**.
+ 1. Create an access token with the following scopes: `read_api`, `read_observability`, `write_observability`. Be sure to save the access token value for later.
+ 1. Select **Monitor > Tracing**, and then select **Enable**.
+1. To configure your application to send GitLab metrics, set the following environment variables:
+
+ ```shell
+ OTEL_EXPORTER = "otlphttp"
+ OTEL_EXPORTER_OTLP_METRICS_ENDPOINT = "https://observe.gitlab.com/v3/<namespace-id>/<gitlab-project-id>/ingest/metrics"
+ OTEL_EXPORTER_OTLP_METRICS_HEADERS = "PRIVATE-TOKEN=<gitlab-access-token>"
+ ```
+
+ Use the following values:
+
+ - `namespace-id` - The top-level group ID that contains the project
+ - `gitlab-project-id` - The project ID
+ - `gitlab-access-token` - The access token you created
+
+Metrics are configured for your project.
+When you run your application, the OpenTelemetry exporter sends metrics to GitLab.
+
+## View metrics
+
+You can view the metrics for a given project:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Monitor > Metrics**.
+
+A list of metrics is displayed.
+Select a metric to view its details.
+
+![list of metrics](img/metrics_list_v16_8.png)
+
+### Metric details
+
+Metrics are displayed as either a sum, a gauge, or a histogram.
+The metric details page displays a chart depending on the type of metric.
+
+On the metric details page, you can also view a metric for a specific time range.
+
+![metrics details](img/metrics_details_v16_8.png)
diff --git a/doc/operations/tracing.md b/doc/operations/tracing.md
index cb31fdd8025..f6ac0b6174d 100644
--- a/doc/operations/tracing.md
+++ b/doc/operations/tracing.md
@@ -4,9 +4,9 @@ group: Observability
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Distributed tracing **(ULTIMATE SAAS EXPERIMENT)**
+# Distributed tracing **(ULTIMATE SAAS BETA)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 16.2 [with flags](../administration/feature_flags.md) named `observability_group_tab` and `observability_tracing`. Disabled by default. This feature is an [Experiment](../policy/experiment-beta-support.md#experiment).
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 16.2 [with flags](../administration/feature_flags.md) named `observability_group_tab` and `observability_tracing`. Disabled by default. This feature is in [Beta](../policy/experiment-beta-support.md#beta).
> - Feature flag `observability_group_tab` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133264) in GitLab 16.5.
FLAG:
@@ -16,7 +16,7 @@ The feature is not ready for production use.
With distributed tracing, you can troubleshoot application performance issues by inspecting how a request moves through different services and systems, the timing of each operation, and any errors or logs as they occur. Tracing is particularly useful in the context of microservice applications, which group multiple independent services collaborating to fulfill user requests.
-This feature is an [Experiment](../policy/experiment-beta-support.md). For more information, see the [group direction page](https://about.gitlab.com/direction/analytics/observability/). To leave feedback about tracing bugs or functionality, comment in the [feedback issue](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/2363) or open a [new issue](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/new).
+This feature is in [Beta](../policy/experiment-beta-support.md). For more information, see the [group direction page](https://about.gitlab.com/direction/analytics/observability/). To leave feedback about tracing bugs or functionality, comment in the [feedback issue](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/2590) or open a [new issue](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/new).
## Configure distributed tracing for a project
@@ -70,6 +70,21 @@ To view the list of traces:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Monitor > Traces**.
-To see the details of a trace, select it from the list.
+To see the details of a trace, select it from the list. You can also select a trace directly from the scatterplot.
-![list of traces](img/tracing_list_v16_3.png)
+![list of traces](img/tracing_list_v16_7.png)
+
+The trace details page and a list of spans are displayed.
+
+![tracing details](img/tracing_details_v16_7.png)
+
+To view the attributes for a single span, select it from the list.
+
+![tracing drawer](img/tracing_drawer_v16_7.png)
+
+## Tracing ingestion limits
+
+Tracing ingests a maximum of 102,400 bytes per minute.
+After the limit is exceeded, a `429 Too Many Requests` response is returned.
+
+To request a limit increase to 104,8576 bytes per minute, contact GitLab support.
diff --git a/doc/policy/experiment-beta-support.md b/doc/policy/experiment-beta-support.md
index 0c58380d304..a563ce7919d 100644
--- a/doc/policy/experiment-beta-support.md
+++ b/doc/policy/experiment-beta-support.md
@@ -1,6 +1,7 @@
---
stage: Systems
group: Distribution
+description: Support details.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/policy/maintenance.md b/doc/policy/maintenance.md
index 8e4541a58a7..0790cf07ed1 100644
--- a/doc/policy/maintenance.md
+++ b/doc/policy/maintenance.md
@@ -72,14 +72,14 @@ GitLab.
These two policies are in place because:
1. GitLab has Community and Enterprise distributions, doubling the amount of work
-necessary to test/release the software.
+ necessary to test/release the software.
1. Backporting to more than one release creates a high development, quality assurance,
-and support cost.
+ and support cost.
1. Supporting parallel version discourages incremental upgrades which over time accumulate in
-complexity and create upgrade challenges for all users. GitLab has a dedicated team ensuring that
-incremental upgrades (and installations) are as simple as possible.
+ complexity and create upgrade challenges for all users. GitLab has a dedicated team ensuring that
+ incremental upgrades (and installations) are as simple as possible.
1. The number of changes created in the GitLab application is high, which contributes to backporting complexity to older releases. In several cases, backporting has to go through the same
-review process a new change goes through.
+ review process a new change goes through.
1. Ensuring that tests pass on the older release is a considerable challenge in some cases, and as such is very time-consuming.
Including new features in a patch release is not possible as that would break [Semantic Versioning](https://semver.org/).
diff --git a/doc/security/hardening_application_recommendations.md b/doc/security/hardening_application_recommendations.md
index 857e322191e..4ff1e94deb4 100644
--- a/doc/security/hardening_application_recommendations.md
+++ b/doc/security/hardening_application_recommendations.md
@@ -108,7 +108,7 @@ If GitLab is in FIPS mode, use the following:
- If using `RSA`, set it to **Must be at least 2048 bits**.
- Set all other key types to **Are forbidden**.
- If you are setting up an instance for a new group of users, define your user SSH
-key policy with the maximum bits settings for added security.
+ key policy with the maximum bits settings for added security.
In a hardened environment RSS feeds are typically not required, and in **Feed token**,
select the **Disabled feed token** checkbox.
@@ -192,14 +192,14 @@ process or authenticated user.
The main focus for hardening is **Usage statistics**:
- You should make sure **Enable version check** is selected. This checks to see if you
-are running the latest version of GitLab, and as new versions with new features and
-security patches come out frequently, this helps you stay up to date.
+ are running the latest version of GitLab, and as new versions with new features and
+ security patches come out frequently, this helps you stay up to date.
- If your environment is isolated or one where your organizational requirements
-restrict data gathering and statistics reporting to a software vendor, you may have
-to disable the **Enable service ping** feature. For more information on what data is collected to
-help you make an informed decision, see
-[service ping](../development/internal_analytics/service_ping/index.md).
+ restrict data gathering and statistics reporting to a software vendor, you may have
+ to disable the **Enable service ping** feature. For more information on what data is collected to
+ help you make an informed decision, see
+ [service ping](../development/internal_analytics/service_ping/index.md).
## Network
@@ -215,12 +215,12 @@ and user needs, which may require disabling and adjusting rate limits or enablin
accesses. Here are a few notables to keep in mind:
- In **Outbound requests**, if you need to open up access to a limited
-number of systems, you can limit access to just those systems by specifying
-IP address or hostname. Also in this section, make sure you've selected
-**Enforce DNS rebinding attack protection** if you're allowing any access at all.
+ number of systems, you can limit access to just those systems by specifying
+ IP address or hostname. Also in this section, make sure you've selected
+ **Enforce DNS rebinding attack protection** if you're allowing any access at all.
- Under **Notes rate limit** and **Users API rate limit** you can exclude specific users
-from those limits if needed.
+ from those limits if needed.
<!-- ## Troubleshooting
diff --git a/doc/security/hardening_cicd_recommendations.md b/doc/security/hardening_cicd_recommendations.md
index 4d0a85c362d..72f3bc8e7b8 100644
--- a/doc/security/hardening_cicd_recommendations.md
+++ b/doc/security/hardening_cicd_recommendations.md
@@ -22,18 +22,18 @@ individual scenarios themselves are numerous, we have summarized some basic
information to help harden the CI/CD process.
- **Secrets Management**. Passwords, tokens, keys, and other secrets that require any
-level of protection should never be stored in plaintext. Some type of encrypted
-container technology should be used, such as GCP Secret Manager, AWS KMS, or
-HashiCorp Vault. For self-managed and standalone instances, HashiCorp Vault is
-recommended, and many GitLab features can take advantage of Vault and are well
-documented in the main [Documentation](../index.md). For detailed CI/CD examples, see [using external secrets in CI](../ci/secrets/index.md).
+ level of protection should never be stored in plaintext. Some type of encrypted
+ container technology should be used, such as GCP Secret Manager, AWS KMS, or
+ HashiCorp Vault. For self-managed and standalone instances, HashiCorp Vault is
+ recommended, and many GitLab features can take advantage of Vault and are well
+ documented in the main [Documentation](../index.md). For detailed CI/CD examples, see [using external secrets in CI](../ci/secrets/index.md).
- **External Communications**. If your CI/CD process requires connectivity to other
-hosts, ensure that these communication channels are encrypted. You should use TLS 1.2 or 1.3, and where possible implement mutual TLS.
+ hosts, ensure that these communication channels are encrypted. You should use TLS 1.2 or 1.3, and where possible implement mutual TLS.
- **Logging**. Logging can be very important for auditing and troubleshooting, so it
-is important that you enable any logging features to ensure you are getting
-the information in logs you need. Make sure through periodic testing that
-plaintext secrets or other sensitive information is not inadvertently added to log
-files.
+ is important that you enable any logging features to ensure you are getting
+ the information in logs you need. Make sure through periodic testing that
+ plaintext secrets or other sensitive information is not inadvertently added to log
+ files.
## Specific Recommendations
diff --git a/doc/security/hardening_general_concepts.md b/doc/security/hardening_general_concepts.md
index 0ba8822dc5f..cb0dcb4eba7 100644
--- a/doc/security/hardening_general_concepts.md
+++ b/doc/security/hardening_general_concepts.md
@@ -19,10 +19,9 @@ just one. A quick example is account security:
- Use a long, complex, and unique password for the account.
- Implement a second factor to the authentication process for added security.
- Use a hardware token as a second factor.
-- Lock out an account (for at least a fixed amount of time) for failed authentication
-attempts.
+- Lock out an account (for at least a fixed amount of time) for failed authentication attempts.
- An account that is unused for a specific time frame should be disabled, enforce this
-with either automation or regular audits.
+ with either automation or regular audits.
Instead of using only one or two items on the list, use as many as possible. This
philosophy can apply to other areas besides account security - it should be applied to
diff --git a/doc/security/index.md b/doc/security/index.md
index 8fd55fd08ff..ffc436e4286 100644
--- a/doc/security/index.md
+++ b/doc/security/index.md
@@ -1,6 +1,7 @@
---
stage: Govern
group: Authentication
+description: SSH key limits, 2FA, tokens, hardening.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -27,6 +28,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
- [Maximum decompressed file size for imported archives](../administration/settings/import_and_export_settings.md#maximum-decompressed-file-size-for-imported-archives)
- [Responding to security incidents](responding_to_security_incidents.md)
-To harden your GitLab instance and minimize the risk of unwanted user account creation, consider access control features like [Sign up restrictions](../administration/settings/sign_up_restrictions.md) and [Authentication options](../topics/authentication/index.md). For more detailed information, refer to [Hardening](hardening.md).
+To harden your GitLab instance and minimize the risk of unwanted user account creation, consider access control features like [Sign up restrictions](../administration/settings/sign_up_restrictions.md) and [Authentication options](../administration/auth/index.md). For more detailed information, refer to [Hardening](hardening.md).
Self-managed GitLab customers and administrators are responsible for the security of their underlying hosts, and for keeping GitLab itself up to date. It is important to [regularly patch GitLab](../policy/maintenance.md), patch your operating system and its software, and harden your hosts in accordance with vendor guidance.
diff --git a/doc/security/token_overview.md b/doc/security/token_overview.md
index 4555459e7c5..9cd445ed47b 100644
--- a/doc/security/token_overview.md
+++ b/doc/security/token_overview.md
@@ -238,13 +238,14 @@ The following tables show the prefixes for each type of token where applicable.
| Deploy key | Not applicable. |
| Runner registration token | Not applicable. |
| Runner authentication token | `glrt-` |
-| Job token | Not applicable. |
+| CI/CD Job token | `glcbt-` ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/426137) in GitLab 16.8 behind a feature flag named `prefix_ci_build_tokens`. Disabled by default.) |
| Trigger token | `glptt-` |
| Legacy runner registration token | GR1348941 |
| Feed token | `glft-` |
| Incoming mail token | `glimt-` |
| GitLab Agent for Kubernetes token | `glagent-` |
| GitLab session cookies | `_gitlab_session=` |
+| SCIM Tokens | `glsoat-` ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/435096) in GitLab 16.8 behind a feature flag named `prefix_scim_tokens`. Disabled by default.) |
### External system tokens
diff --git a/doc/security/two_factor_authentication.md b/doc/security/two_factor_authentication.md
index c7d6796a212..80b6988b1b1 100644
--- a/doc/security/two_factor_authentication.md
+++ b/doc/security/two_factor_authentication.md
@@ -49,6 +49,21 @@ Use the [application settings API](../api/settings.md) to modify the following s
For more information, see the [list of settings that can be accessed through API calls](../api/settings.md#list-of-settings-that-can-be-accessed-via-api-calls).
+## Enforce 2FA for Administrator users **(FREE SELF)**
+
+Administrators can enforce 2FA for administrator users in a self-managed instance.
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. On the left sidebar, select **Settings > General**.
+1. Expand the **Sign-in restrictions** section:
+ - Select **Require administrators to enable 2FA**.
+ - In **Two-factor grace period**, enter a number of hours. If you want to
+ enforce 2FA on the next sign-in attempt, enter `0`.
+1. Select **Save changes**.
+
+NOTE:
+If you are using an external provider to sign in into GitLab, this setting will **not** enforce 2FA for users. 2FA should be enabled on that external provider.
+
## Enforce 2FA for all users in a group **(FREE ALL)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24965) in GitLab 12.0, 2FA settings for a group are also applied to subgroups.
diff --git a/doc/solutions/cloud/aws/gitlab_aws_integration.md b/doc/solutions/cloud/aws/gitlab_aws_integration.md
index 11add88f7c0..fddb5ccfa38 100644
--- a/doc/solutions/cloud/aws/gitlab_aws_integration.md
+++ b/doc/solutions/cloud/aws/gitlab_aws_integration.md
@@ -15,19 +15,15 @@ When content that is badged for GitLab SaaS ( **(SAAS)** ) or Self-Managed ( **(
This page attempts to index the ways in which GitLab can integrate with AWS. It does so whether the integration is the result of configuring general functionality, was built in to AWS or GitLab or is provided as a solution.
-| Text Tag | Configuration / Built / Solution | Support/Maintenance |
-| -------------------- | ------------------------------------------------------------ | ------------------- |
-| `[AWS Configuration]` | Integration via Configuring Existing AWS Functionality | AWS |
-| `[GitLab Configuration]` | Integration via Configuring Existing GitLab Functionality | GitLab |
-| `[AWS Built]` | Built into AWS by Product Team to Address AWS Integration | AWS |
-| `[GitLab Built]` | Built into GitLab by Product Team to Address AWS Integration | GitLab |
-| `[AWS Solution]` | Built as Solution Example by AWS or AWS Partners | Community/Example |
-| `[GitLab Solution]` | Built as Solution Example by GitLab or GitLab Partners | Community/Example |
-| `[CI Solution]` | Built, at least in part, using GitLab CI and therefore <br />more customer customizable. | Items tagged `[CI Solution]` will <br />also carry one of the other tags <br />that indicate the maintenance status. |
-
-## Table of Contents
-
-[TOC]
+| Text Tag | Configuration / Built / Solution | Support/Maintenance |
+| ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `[AWS Configuration]` | Integration via Configuring Existing AWS Functionality | AWS |
+| `[GitLab Configuration]` | Integration via Configuring Existing GitLab Functionality | GitLab |
+| `[AWS Built]` | Built into AWS by Product Team to Address AWS Integration | AWS |
+| `[GitLab Built]` | Built into GitLab by Product Team to Address AWS Integration | GitLab |
+| `[AWS Solution]` | Built as Solution Example by AWS or AWS Partners | Community/Example |
+| `[GitLab Solution]` | Built as Solution Example by GitLab or GitLab Partners | Community/Example |
+| `[CI Solution]` | Built, at least in part, using GitLab CI and therefore <br />more customer customizable. | Items tagged `[CI Solution]` will <br />also carry one of the other tags <br />that indicate the maintenance status. |
## Integrations For Development Activities
@@ -35,47 +31,90 @@ These integrations have to do with using GitLab to build application workloads a
### SCM Integrations
-- **AWS CodeStar Connections** - enables SCM connections to multiple AWS Services. **Currently for GitLab.com SaaS only**. [Configure GitLab](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-gitlab.html). [Supported Providers](https://docs.aws.amazon.com/dtconsole/latest/userguide/supported-versions-connections.html). [Supported AWS Services](https://docs.aws.amazon.com/dtconsole/latest/userguide/integrations-connections.html) - each one may have to make updates to support GitLab, so here is the subset that currently support GitLab `[AWS Built]`
- - [AWS CodePipeline Integration](https://docs.aws.amazon.com/codepipeline/latest/userguide/connections-gitlab.html) - use GitLab as source for CodePipeline. `[AWS Built]`
- - **AWS CodeBuild Integration** - indirectly through CodePipeline support. `[AWS Built]`
- - **Amazon CodeWhisperer Customization Capability** [can connect to a GitLab repo](https://aws.amazon.com/blogs/aws/new-customization-capability-in-amazon-codewhisperer-generates-even-better-suggestions-preview/). `[AWS Built]`
- - **AWS Service Catalog** directly inherits CodeStar Connections, there is not any specific documentation about GitLab since it just uses any GitLab CodeStar Connection that has been created in the account. `[AWS Built]`
- - **AWS Proton** directly inherits CodeStar Connections, there is not any specific documentation about GitLab since it just uses any GitLab CodeStar Connection that has been created in the account. `[AWS Built]`
- - **AWS Glue Notebook Jobs** directly inherit CodeStar Connections, there is not any specific documentation about GitLab since it just uses any GitLab CodeStar Connection that has been created in the account. `[AWS Built]`
- - **Amazon SageMaker MLOps Projects** are done in CodePipeline and so directly inherit CodeStar Connections ([as noted here](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects-walkthrough-3rdgit.html#sagemaker-proejcts-walkthrough-connect-3rdgit)), there is not any specific documentation about GitLab since it just uses any GitLab CodeStar Connection that has been created in the account. `[AWS Built]`
- - **Amazon SageMaker Notebooks** [allow Git repositories to be specified by the Git clone URL](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-resource.html) and configuration of a secret - so GitLab is configurable. `[AWS Configuration]`
- - **AWS CloudFormation** publishing of public extensions - **not yet supported**. `[AWS Built]`
- - **Amazon CodeGuru Reviewer Repositories** - **not yet supported**. `[AWS Built]`
-- [GitLab Push Mirroring to CodeCommit](../../../user/project/repository/mirror/push.md#set-up-a-push-mirror-from-gitlab-to-aws-codecommit) Workaround enables GitLab repositories to leverage CodePipeline SCM Triggers. GitLab can already leverage S3 and Container Triggers for CodePipeline. **Still required for Self-Managed and Dedicated for the time being.** `[GitLab Configuration]`
+#### AWS CodeStar Connection Integrations
+
+[8/14/2023 AWS Release Announcement for GitLab.com SaaS](https://aws.amazon.com/about-aws/whats-new/2023/08/aws-codepipeline-supports-gitlab/)
+
+[12/28/2023 AWS Release Announcement for Self-Managed / Dedicated](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)
+
+**AWS CodeStar Connections** - enables SCM connections to multiple AWS Services. [Configure GitLab](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-gitlab.html). [Supported Providers](https://docs.aws.amazon.com/dtconsole/latest/userguide/supported-versions-connections.html). [Supported AWS Services](https://docs.aws.amazon.com/dtconsole/latest/userguide/integrations-connections.html) - each one may have to make updates to support GitLab, so here is the subset that support GitLab. This works with GitLab.com SaaS, GitLab Self-Managed and GitLab Dedicated. AWS CodeStar connections are not available in all AWS regions - the exclusion list is [documented here](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html). ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) `[AWS Built]`
+
+[Video Explanation of AWS CodeStar Connection Integration for AWS (1 min)](https://youtu.be/f7qTSa_bNig)
+
+AWS Services that are supported directly by a CodeStar Connection in an AWS account:
+
+- **Amazon CodeWhisperer Customization Capability** ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) [can connect to a GitLab repository](https://aws.amazon.com/blogs/aws/new-customization-capability-in-amazon-codewhisperer-generates-even-better-suggestions-preview/). `[AWS Built]`
+- **AWS Service Catalog** directly inherits CodeStar Connections, there is not any specific documentation about GitLab because it just uses any GitLab CodeStar Connection that has been created in the account. ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) `[AWS Built]`
+- **AWS Proton** directly inherits CodeStar Connections, there is not any specific documentation about GitLab since it just uses any GitLab CodeStar Connection that has been created in the account. ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) `[AWS Built]`
+- **AWS Glue Notebook Jobs** directly inherit CodeStar Connections, there is not any specific documentation about GitLab because it just uses any GitLab CodeStar Connection that has been created in the account. ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) `[AWS Built]`
+
+Documentation and References:
+
+- [Creating a GitLab CodeStar Connection to a GitLab.com Project](https://docs.aws.amazon.com/codepipeline/latest/userguide/connections-gitlab-managed.html)
+- [Creating a AWS CodeStar Connection for a Self-Managed GitLab Instance or GitLab Dedicated Instance](https://docs.aws.amazon.com/codepipeline/latest/userguide/connections-gitlab-managed.html) (must allow Internet Ingress from AWS or use a VPC connection)
+
+#### AWS CodePipeline Integrations
+
+[AWS CodePipeline Integration](https://docs.aws.amazon.com/codepipeline/latest/userguide/connections-gitlab.html) - by using GitLab as CodeStar Connections source for CodePipeline, additional AWS service integrations are available. [[12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)] `[AWS Built]`
+
+AWS Services that are supported by an AWS CodePipeline integration:
+
+- **AWS CodeBuild Integration** - through CodePipeline support. ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) `[AWS Built]`
+- **Amazon SageMaker MLOps Projects** are created via CodePipeline ([as noted here](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects-walkthrough-3rdgit.html#sagemaker-proejcts-walkthrough-connect-3rdgit)), there is not any specific documentation about GitLab since it just uses any GitLab CodeStar Connection that has been created in the account. ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) `[AWS Built]`
+
+Documentation and References:
+
+- [Creating a GitLab CodePipeline Integration to a GitLab.com Project](https://docs.aws.amazon.com/codepipeline/latest/userguide/connections-gitlab-managed.html)
+- [Creating a AWS CodePipeline Integration for a Self-Managed GitLab Instance or GitLab Dedicated Instance](https://docs.aws.amazon.com/codepipeline/latest/userguide/connections-gitlab-managed.html) (must allow Internet Ingress from AWS or use a VPC connection)
+
+#### CodeStar Connections enabled AWS services that are not yet supported for GitLab
+
+- **AWS CloudFormation** publishing of public extensions - not yet supported. `[AWS Built]`
+- **Amazon CodeGuru Reviewer Repositories** - not yet supported. `[AWS Built]`
+- **AWS App Runner** - not yet supported. `[AWS Built]`
+
+#### Custom GitLab Integration in AWS Services
+
+- **Amazon SageMaker Notebooks** [allow Git repositories to be specified by the Git clone URL](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-resource.html) and configuration of a secret - so GitLab is configurable. ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) `[AWS Configuration]`
+- **AWS Amplify** - [uses a Git integration mechanism designed by the AWS Amplify team](https://docs.aws.amazon.com/amplify/latest/userguide/getting-started.html). `[AWS Built]`
+
+#### Other SCM Integration Options
+
+- [GitLab Push Mirroring to CodeCommit](../../../user/project/repository/mirror/push.md#set-up-a-push-mirror-from-gitlab-to-aws-codecommit) Workaround enables GitLab repositories to leverage CodePipeline SCM Triggers. GitLab can already leverage S3 and Container Triggers for CodePipeline. This work around enabled CodePipeline capabilities since it was documented. (06/06/2020) `[GitLab Configuration]`
+
+See [CD and Operations Integrations](#cd-and-operations-integrations) below for Continuous Deployment (CD) specific integrations that are also available.
### CI Integrations
- **Direct CI Integrations That Use Keys, IAM or OIDC/JWT to Authenticate to AWS Services from GitLab Runners**
- - **Amazon CodeGuru Reviewer CI workflows using GitLab CI** - can be done, not yet documented. `[AWS Solution]` `[CI Solution]`
- - [Amazon CodeGuru Secure Scanning using GitLab CI](https://docs.aws.amazon.com/codeguru/latest/security-ug/get-started-gitlab.html) `[AWS Solution]` `[CI Solution]`
+- **Amazon CodeGuru Reviewer CI workflows using GitLab CI** - can be done, not yet documented.`[AWS Solution]` `[CI Solution]`
+- [Amazon CodeGuru Secure Scanning using GitLab CI](https://docs.aws.amazon.com/codeguru/latest/security-ug/get-started-gitlab.html) ([06/13/2022](https://aws.amazon.com/about-aws/whats-new/2023/06/amazon-codeguru-security-available-preview/)) `[AWS Solution]` `[CI Solution]`
### CD and Operations Integrations
-- **AWS CodeDeploy Integration** - indirectly through CodePipeline support. `[AWS Built]`
+- **AWS CodeDeploy Integration** - through CodePipeline support discussed above in SCM integrations. This capability allows GitLab to interface with [this list of advanced deployment subsystems in AWS](https://docs.aws.amazon.com/codepipeline/latest/userguide/integrations-action-type.html#integrations-deploy). ([12/28/2023](https://aws.amazon.com/about-aws/whats-new/2023/12/codepipeline-gitlab-self-managed/)) `[AWS Built]`
+- **AWS SAM Pipelines** - [pipelines support for GitLab](https://aws.amazon.com/about-aws/whats-new/2021/07/simplify-ci-cd-configuration-serverless-applications-your-favorite-ci-cd-system-public-preview). (7/31/2021)
- [Integrate EKS clusters for application deployment](../../../user/infrastructure/clusters/connect/new_eks_cluster.md). `[GitLab Built]`
+- [GitLab pushing a build Artifact to a CodePipeline monitored S3 location](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-about-starting.html#change-detection-methods) `[AWS Built]`
+- [GitLab Pushing a container to a CodePipeline monitored AWS ECR](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-about-starting.html#change-detection-methods) `[AWS Built]`
-## End-to-End Solutions for development and deployment if specific development frameworks and ecosystems
+## End-to-End Solutions for development and deployment of specific development frameworks or ecosystems
Generally solutions demonstrate end-to-end capabilities for the development framework - leveraging all relevant integration techniques to show the art of maximum value for using GitLab and AWS together.
### Serverless
-- [Serverless Framework Deployment to AWS with GitLab Serverless SAST Scanning and Lifecycle Managed DevOps Environments](https://gitlab.com/guided-explorations/aws/serverless/serverless-framework-aws) - working example code and tutorials. `[GitLab Solution]` `[CI Solution]`
+- [Enterprise DevOps Blueprint: Serverless Framework Apps on AWS](https://gitlab.com/guided-explorations/aws/serverless/serverless-framework-aws) - working example code and tutorials. `[GitLab Solution]` `[CI Solution]`
- [Tutorial: Serverless Framework Deployment to AWS with GitLab Serverless SAST Scanning](https://gitlab.com/guided-explorations/aws/serverless/serverless-framework-aws/-/blob/master/TUTORIAL.md) `[GitLab Solution]` `[CI Solution]`
- [Tutorial: Secure Serverless Framework Development with GitLab Security Policy Approval Rules and Managed DevOps Environments](https://gitlab.com/guided-explorations/aws/serverless/serverless-framework-aws/-/blob/master/TUTORIAL2-SecurityAndManagedEnvs.md) `[GitLab Solution]` `[CI Solution]`
### Terraform
-- [Terraform Deployment to AWS with GitLab Lifecycle Managed DevOps Environments](https://gitlab.com/guided-explorations/aws/terraform/terraform-web-server-cluster)
+- [Enterprise DevOps Blueprint: Terraform Deployment to AWS](https://gitlab.com/guided-explorations/aws/terraform/terraform-web-server-cluster)
- [Tutorial: Terraform Deployment to AWS with GitLab IaC SAST Scanning](https://gitlab.com/guided-explorations/aws/terraform/terraform-web-server-cluster/-/blob/prod/TUTORIAL.md) `[GitLab Solution]` `[CI Solution]`
- [Terraform Deployment to AWS with GitLab Security Policy Approval Rules and Managed DevOps Environments](https://gitlab.com/guided-explorations/aws/terraform/terraform-web-server-cluster/-/blob/prod/TUTORIAL2-SecurityAndManagedEnvs.md) `[GitLab Solution]` `[CI Solution]`
-#### CloudFormation
+### CloudFormation
[CloudFormation Development and Deployment With GitLab Lifecycle Managed DevOps Environments Working Code](https://gitlab.com/guided-explorations/aws/cloudformation-deploy) `[GitLab Solution]` `[CI Solution]`
diff --git a/doc/subscriptions/choosing_subscription.md b/doc/subscriptions/choosing_subscription.md
index aa7ba3a9042..04e05ef1be9 100644
--- a/doc/subscriptions/choosing_subscription.md
+++ b/doc/subscriptions/choosing_subscription.md
@@ -1,6 +1,7 @@
---
stage: Fulfillment
group: Purchase
+description: Options for accessing GitLab.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/subscriptions/community_programs.md b/doc/subscriptions/community_programs.md
index 309a100de7a..a7b95c78491 100644
--- a/doc/subscriptions/community_programs.md
+++ b/doc/subscriptions/community_programs.md
@@ -1,6 +1,7 @@
---
stage: Fulfillment
group: Purchase
+description: Education, Open Source, Startups.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/subscriptions/customers_portal.md b/doc/subscriptions/customers_portal.md
index 10de69242d9..865dcf99515 100644
--- a/doc/subscriptions/customers_portal.md
+++ b/doc/subscriptions/customers_portal.md
@@ -1,6 +1,7 @@
---
stage: Fulfillment
group: Purchase
+description: Payment and company details.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -15,7 +16,7 @@ If you made your purchase through an authorized reseller, you must contact them
## Sign in to Customers Portal
-You can sign in to Customers Portal either with your GitLab.com account or your email and password (if you have not yet [linked your Customers Portal account to your GitLab.com account](#link-a-gitlabcom-account)).
+You can sign in to Customers Portal either with your GitLab.com account or a one-time sign-in link sent to your email (if you have not yet [linked your Customers Portal account to your GitLab.com account](#link-a-gitlabcom-account)).
NOTE:
If you registered for Customers Portal with your GitLab.com account, sign in with this account.
@@ -50,7 +51,7 @@ if required.
The profile owner's personal details are used on invoices. The profile owner's email address is used for the [Customers Portal legacy sign-in](#sign-in-to-customers-portal) and license-related email.
-To change profile details, including name, billing address, and email address:
+To change profile details, including name and email address:
1. Sign in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in).
1. Select **My profile > Profile settings**.
@@ -64,13 +65,70 @@ to another person, after you enter that person's personal details, you must also
## Change your company details
-To change your company details, including company name and VAT number:
+To change your company details, including company name and tax ID:
1. Sign in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in).
-1. Select **My profile > Profile settings**.
-1. Edit **Your company details**.
+1. Select **Billing account settings**.
+1. Scroll down to the **Company information** section.
+1. Edit the company details.
+1. Select **Save changes**.
+
+## Subscription and billing contacts
+
+### Change your subscription contact
+
+The subscription contact is the primary contact for your billing account. They receive subscription event notifications and information about applying subscription.
+
+To change the subscription contact:
+
+1. Sign in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in).
+1. On the left sidebar, select **Billing account settings**.
+1. Scroll to the **Company information** section, then to **Subscription contact**.
+1. To select a different subscription contact, select from the **Billing account manager** dropdown list.
+1. Edit the contact details.
1. Select **Save changes**.
+### Change your billing contact
+
+The billing contact receives all invoices and subscription event notifications.
+
+To change the billing contact:
+
+1. Sign in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in).
+1. On the left sidebar, select **Billing account settings**.
+1. Scroll to the **Company information** section, then to **Billing contact**.
+
+ - To change your billing contact to your subscription contact:
+
+ 1. Select **Billing contact is the same as subscription contact**.
+ 1. Select **Save changes**.
+
+ - To change your billing contact to a different billing account manager:
+
+ 1. Clear the **Billing contact is the same as subscription contact** checkbox.
+ 1. Select a different billing account manager from the **User** dropdown list.
+ 1. Edit the contact details.
+ 1. Select **Save changes**.
+
+ - To change your billing contact to a custom contact:
+
+ 1. Clear the **Billing contact is the same as subscription contact** checkbox.
+ 1. Select **Enter a custom contact** from the **User** dropdown list.
+ 1. Enter the contact details.
+ 1. Select **Save changes**.
+
+### Troubleshooting your billing or subscription contact's name
+
+If the billing account manager's email is linked to contacts with different first or last names, you will be prompted to update the name.
+
+If you are the billing account manager, follow the instructions to [update your personal profile](#change-profile-owner-information).
+
+If you are not the billing account manager, notify them to update their personal profile.
+
+### Troubleshooting your subscription contact
+
+If the subscription contact is no longer a billing account manager, you will be prompted to select a new contact. Follow the instructions to [change your subscription contact](#change-your-subscription-contact).
+
## Change your payment method
Purchases in the Customers Portal require a credit card on record as a payment method. You can add
@@ -83,7 +141,7 @@ If you would like to use an alternative method to pay,
To change your payment method:
1. Sign in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in).
-1. Select **My profile > Payment methods**.
+1. On the left sidebar, select **Billing account settings**.
1. **Edit** an existing payment method's information or **Add new payment method**.
1. Select **Save Changes**.
@@ -93,18 +151,19 @@ Automatic renewal of a subscription is charged to your default payment method. T
method as the default:
1. Sign in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in).
-1. Select **My profile > Payment methods**.
+1. On the left sidebar, select **Billing account settings**.
1. **Edit** the selected payment method and check the **Make default payment method** checkbox.
1. Select **Save Changes**.
## Link a GitLab.com account
-Follow this guideline if you have a legacy Customers Portal profile and use an email and password to log in.
+Follow this guideline if you have a legacy Customers Portal profile to log in.
To link a GitLab.com account to your Customers Portal profile:
-1. Sign in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in?legacy=true) using email and password.
-1. On the Customers Portal page, select **My profile > Profile settings**.
+1. Trigger a one-time sign-in link to your email from the [Customers Portal](https://customers.gitlab.com/customers/sign_in?legacy=true).
+1. Locate the email and click on the one-time sign-in link to log into your Customers Portal account.
+1. Select **My profile > Profile settings**.
1. Under **Your GitLab.com account**, select **Link account**.
1. Sign in to the [GitLab.com](https://gitlab.com/users/sign_in) account you want to link to the Customers Portal profile.
@@ -112,7 +171,7 @@ To link a GitLab.com account to your Customers Portal profile:
Customers are required to use their GitLab.com account to register for a new Customers Portal profile.
-If you have a legacy Customers Portal profile that is not linked to a GitLab.com account, you may still [sign in](https://customers.gitlab.com/customers/sign_in?legacy=true) using an email and password. However, you should [create](https://gitlab.com/users/sign_up) and [link a GitLab.com account](#change-the-linked-account) to ensure continued access to the Customers Portal.
+If you have a legacy Customers Portal profile that is not linked to a GitLab.com account, you may still [sign in](https://customers.gitlab.com/customers/sign_in?legacy=true) using a one-time sign-in link sent to your email. However, you should [create](https://gitlab.com/users/sign_up) and [link a GitLab.com account](#change-the-linked-account) to ensure continued access to the Customers Portal.
To change the GitLab.com account linked to your Customers Portal profile:
diff --git a/doc/subscriptions/gitlab_com/index.md b/doc/subscriptions/gitlab_com/index.md
index 9299028e56a..74ecf1701a4 100644
--- a/doc/subscriptions/gitlab_com/index.md
+++ b/doc/subscriptions/gitlab_com/index.md
@@ -1,6 +1,7 @@
---
stage: Fulfillment
group: Purchase
+description: Seat usage, compute minutes, storage limits, renewal info.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -231,13 +232,13 @@ After you dismiss the alert, it doesn't display until another seat is used.
The alert displays based on the following seat usage. You cannot configure the
amounts at which the alert displays.
-| Seats in subscription | Seat usage |
-|-----------------------|------------------------------------------------------------------------|
-| 0-15 | One seat remaining in the subscription. |
-| 16-25 | Two seats remaining in the subscription. |
-| 26-99 | 10% of seats have been used. |
-| 100-999 | 8% of seats have been used. |
-| 1000+ | 5% of seats have been used |
+| Seats in subscription | Seat usage |
+|-----------------------|------------|
+| 0-15 | One seat remaining in the subscription. |
+| 16-25 | Two seats remaining in the subscription. |
+| 26-99 | 10% of seats have been used. |
+| 100-999 | 8% of seats have been used. |
+| 1000+ | 5% of seats have been used |
## Change the linked namespace
@@ -272,10 +273,10 @@ Changing the linked namespace is not supported for all subscription types.
You cannot transfer:
-- A subscription with compute minutes.
- An expired or trial subscription.
-- A subscription to a namespace which already has a Premium or Ultimate plan.
-- A subscription from a namespace with multiple subscriptions.
+- A subscription with compute minutes which is already linked to a namespace.
+- A subscription with a Premium or Ultimate plan to a namespace which already has a Premium or Ultimate plan.
+- A subscription with code suggestions to a namespace which already has a subscriptions with code suggestions.
## Upgrade your GitLab SaaS subscription tier
@@ -310,8 +311,9 @@ To renew your subscription:
Before you renew your subscription:
1. Log in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in).
-1. On the **Account details** page, verify or update the invoice contact details.
-1. On the **Payment Methods** page, verify or update the credit card on file.
+1. On the left sidebar, select **Billing account settings**.
+1. Under **Payment methods**, verify or update the credit card on file.
+1. Scroll down to the **Company information** section to verify or update the invoice contact details.
1. In GitLab, review your list of user accounts and [remove inactive or unwanted users](#remove-users-from-your-subscription).
### Renew or change a GitLab SaaS subscription
@@ -322,8 +324,8 @@ You can only renew your subscription 15 days before it is due to expire.
To renew your subscription:
1. Sign in to the [Customers Portal](https://customers.gitlab.com/customers/sign_in) and beneath your existing subscription, select **Renew**.
-The **Renew** button displays only 15 days before a subscription expires. If there are more than 15 days before
-the subscription expires, select **Subscription actions** (**{ellipsis_v}**), then select **Renew subscription** to view the date when you can renew.
+ The **Renew** button displays only 15 days before a subscription expires. If there are more than 15 days before
+ the subscription expires, select **Subscription actions** (**{ellipsis_v}**), then select **Renew subscription** to view the date when you can renew.
1. Review your renewal details and complete the payment process.
1. Select **Confirm purchase**.
diff --git a/doc/subscriptions/gitlab_dedicated/index.md b/doc/subscriptions/gitlab_dedicated/index.md
index 0f2fdb43512..0cf604f620f 100644
--- a/doc/subscriptions/gitlab_dedicated/index.md
+++ b/doc/subscriptions/gitlab_dedicated/index.md
@@ -1,12 +1,13 @@
---
stage: SaaS Platforms
group: GitLab Dedicated
+description: Available features and benefits.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
# GitLab Dedicated
-GitLab Dedicated is a fully isolated, single-tenant SaaS service that is:
+GitLab Dedicated is a fully isolated, single-tenant SaaS solution that is:
- Hosted and managed by GitLab, Inc.
- Deployed on AWS in a cloud region of your choice. See [available AWS regions](#available-aws-regions).
@@ -56,6 +57,10 @@ Data is encrypted at rest and in transit using the latest encryption standards.
During onboarding, you can specify an AWS KMS encryption key stored in your own AWS account that GitLab uses to encrypt the data for your Dedicated instance. This gives you full control over the data you store in GitLab.
+#### SMTP
+
+Email sent from GitLab Dedicated uses [Amazon Simple Email Service (Amazon SES)](https://aws.amazon.com/ses/). The connection to Amazon SES is encrypted.
+
### Compliance
#### Certifications
@@ -69,7 +74,7 @@ GitLab Dedicated offers the following [compliance certifications](https://about.
#### Isolation
-As a single-tenant SaaS service, GitLab Dedicated provides infrastructure-level isolation of your GitLab environment. Your environment is placed into a separate AWS account from other tenants. This AWS account contains all of the underlying infrastructure necessary to host the GitLab application and your data stays within the account boundary. You administer the application while GitLab manages the underlying infrastructure. Tenant environments are also completely isolated from GitLab.com.
+As a single-tenant SaaS solution, GitLab Dedicated provides infrastructure-level isolation of your GitLab environment. Your environment is placed into a separate AWS account from other tenants. This AWS account contains all of the underlying infrastructure necessary to host the GitLab application and your data stays within the account boundary. You administer the application while GitLab manages the underlying infrastructure. Tenant environments are also completely isolated from GitLab.com.
#### Access controls
@@ -109,7 +114,7 @@ To help you migrate your data to GitLab Dedicated, you can choose from the follo
- Use the UI, including [group import](../../user/group/import/index.md) and [project import](../../user/project/settings/import_export.md).
- Use APIs, including the [group import API](../../api/group_import_export.md) and [project import API](../../api/project_import_export.md).
- Note: Import functionality behind a feature flag (such as `bulk_import_project`) is not supported in GitLab Dedicated.
-1. When migrating from third-party services, you can use [the GitLab importers](../../user/project/import/index.md#available-project-importers).
+1. When migrating from third-party services, you can use [the GitLab importers](../../user/project/import/index.md#supported-import-sources).
1. You can perform a fully-automated migration through the [Congregate Automation Tool](../../user/project/import/index.md#automate-group-and-project-import), which supports migrating from existing GitLab instances as well as third-party services.
## Features that are not available
diff --git a/doc/subscriptions/quarterly_reconciliation.md b/doc/subscriptions/quarterly_reconciliation.md
index 87a4b65833c..db822a3569e 100644
--- a/doc/subscriptions/quarterly_reconciliation.md
+++ b/doc/subscriptions/quarterly_reconciliation.md
@@ -1,6 +1,7 @@
---
stage: Fulfillment
group: Purchase
+description: Billing examples.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -84,9 +85,9 @@ sent and subject to your payment terms.
If your credit card is declined during the reconciliation process, an email will be sent with the subject `Your GitLab subscription failed to reconcile`. Follow these instructions to update your payment information, and the reconciliation will be automatically retried:
1. Log in to your account at `https://customers.gitlab.com`.
-1. Go to **Payment Methods**.
-1. Select **Add New Payment Method**.
-1. Make sure that the payment method is set as **Default**.
+1. On the left sidebar, select **Billing account settings**.
+1. Under **Payment methods**, select **Add new payment method**.
+1. After the new payment method has been added, select **Edit**, then select **Default** to mark it as the default payment method.
Reconciliation is retried automatically as soon as the payment method is updated.
diff --git a/doc/subscriptions/self_managed/index.md b/doc/subscriptions/self_managed/index.md
index e9a6f3720d2..9a232256de2 100644
--- a/doc/subscriptions/self_managed/index.md
+++ b/doc/subscriptions/self_managed/index.md
@@ -1,6 +1,7 @@
---
stage: Fulfillment
group: Purchase
+description: Billable users, renewal and upgrade info.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
@@ -284,10 +285,10 @@ You can renew your subscription starting from 15 days before your subscription e
The [Customers Portal](https://customers.gitlab.com/customers/sign_in) is your
tool for renewing and modifying your subscription. Before going ahead with renewal,
-sign in and verify or update:
+sign in and go to **Billing account settings**. Verify or update:
-- The invoice contact details on the **Account details** page.
-- The credit card on file on the **Payment Methods** page.
+- The credit card on file under the **Payment methods** section.
+- The invoice contact details in the **Company information** section.
NOTE:
Contact our [support team](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=360000071293)
diff --git a/doc/topics/authentication/index.md b/doc/topics/authentication/index.md
deleted file mode 100644
index 0702e715d73..00000000000
--- a/doc/topics/authentication/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../administration/auth/index.md'
-remove_date: '2023-12-26'
----
-
-This document was moved to [another location](../../administration/auth/index.md).
-
-<!-- This redirect file can be deleted after <2023-12-26>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/topics/autodevops/customize.md b/doc/topics/autodevops/customize.md
index 630123510a9..05535d233e0 100644
--- a/doc/topics/autodevops/customize.md
+++ b/doc/topics/autodevops/customize.md
@@ -253,7 +253,7 @@ For more information, see [Limit the environment scope of CI/CD variables](../..
## Customize `.gitlab-ci.yml`
Auto DevOps is highly customizable because the [Auto DevOps template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml)
-is an implementation of a [`.gitlab-ci.yml`](../../ci/yaml/index.md) file.
+is an implementation of a [`.gitlab-ci.yml` file](../../ci/index.md#the-gitlab-ciyml-file).
The template uses only features available to any implementation of `.gitlab-ci.yml`.
To add custom behaviors to the CI/CD pipeline used by Auto DevOps:
@@ -266,12 +266,12 @@ To add custom behaviors to the CI/CD pipeline used by Auto DevOps:
```
1. Add your changes to the `.gitlab-ci.yml` file. Your changes are merged with the Auto DevOps template. For more information about
-how `include` merges your changes, see [the `include` documentation](../../ci/yaml/index.md#include).
+ how `include` merges your changes, see [the `include` documentation](../../ci/yaml/index.md#include).
To remove behaviors from the Auto DevOps pipeline:
1. Copy the [Auto DevOps template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml)
-into your project.
+ into your project.
1. Edit your copy of the template as needed.
### Use individual components of Auto DevOps
diff --git a/doc/topics/autodevops/index.md b/doc/topics/autodevops/index.md
index 0413ec32283..58203997698 100644
--- a/doc/topics/autodevops/index.md
+++ b/doc/topics/autodevops/index.md
@@ -174,7 +174,7 @@ When enabled, Auto DevOps attempts to run pipelines in every project. If the
pipeline fails in a particular project, it disables itself.
GitLab administrators can change this in the [Auto DevOps settings](../../administration/settings/continuous_integration.md#auto-devops).
-If a [CI/CD configuration file](../../ci/yaml/index.md) is present,
+If a [`.gitlab-ci.yml` file](../../ci/index.md#the-gitlab-ciyml-file) is present,
it remains unchanged and Auto DevOps does not affect it.
To disable Auto DevOps in the instance level, follow the same process
diff --git a/doc/topics/build_your_application.md b/doc/topics/build_your_application.md
index 430ef9ec57d..787e056a1c7 100644
--- a/doc/topics/build_your_application.md
+++ b/doc/topics/build_your_application.md
@@ -1,16 +1,16 @@
---
stage: none
group: unassigned
+description: Runners, jobs, pipelines, variables.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
# Use CI/CD to build your application **(FREE ALL)**
-Add your source code to a repository, create merge requests to check in
-code, and use CI/CD to generate your application. Include packages in your app and output it to a variety of environments.
+Use CI/CD to generate your application.
- [Getting started](../ci/index.md)
-- [`.gitlab-ci.yml reference`](../ci/yaml/index.md)
+- [CI/CD YAML syntax reference](../ci/yaml/index.md)
- [Runners](https://docs.gitlab.com/runner/)
- [Pipelines](../ci/pipelines/index.md)
- [Jobs](../ci/jobs/index.md)
diff --git a/doc/topics/cron/index.md b/doc/topics/cron/index.md
index 057ae82e6ad..f25e01965fd 100644
--- a/doc/topics/cron/index.md
+++ b/doc/topics/cron/index.md
@@ -42,6 +42,7 @@ are valid:
- Run once a month on the 2nd Monday: `0 0 * * 1#2`
- Run once a year at midnight of 1 January: `0 0 1 1 *`
- Run every other Sunday at 0900 hours: `0 9 * * sun%2`
+- Run twice a month at 3 AM, on the 1st and 15th of the month: `0 3 1,15 * *`
- This syntax is from the [fugit modulo extension](https://github.com/floraison/fugit#the-modulo-extension)
For complete cron documentation, refer to the
diff --git a/doc/topics/git/index.md b/doc/topics/git/index.md
index c7b1832c8b8..17321591e87 100644
--- a/doc/topics/git/index.md
+++ b/doc/topics/git/index.md
@@ -1,10 +1,11 @@
---
stage: Create
group: Source Code
+description: Common commands and workflows.
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
---
-# Git **(FREE ALL)**
+# Learn Git **(FREE ALL)**
Git is a [free and open source](https://git-scm.com/about/free-and-open-source)
distributed version control system. It handles projects of all sizes quickly and
diff --git a/doc/topics/git/useful_git_commands.md b/doc/topics/git/useful_git_commands.md
index a397ec749d0..54a877bd974 100644
--- a/doc/topics/git/useful_git_commands.md
+++ b/doc/topics/git/useful_git_commands.md
@@ -1,101 +1,11 @@
---
-stage: Create
-group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
+redirect_to: 'index.md'
+remove_date: '2024-03-19'
---
-# Frequently used Git commands **(FREE ALL)**
+This document was moved to [another location](index.md).
-The following commands are frequently used.
-
-## Add another URL to a remote
-
-Add another URL to a remote, so both remotes get updated on each push:
-
-```shell
-git remote set-url --add <remote_name> <remote_url>
-```
-
-## Refs and Log
-
-### Use reflog to show the log of reference changes to HEAD
-
-```shell
-git reflog
-```
-
-### Check the Git history of a file
-
-The basic command to check the Git history of a file:
-
-```shell
-git log <file>
-```
-
-If you get this error message:
-
-```plaintext
-fatal: ambiguous argument <file_name>: unknown revision or path not in the working tree.
-Use '--' to separate paths from revisions, like this:
-```
-
-Use this to check the Git history of the file:
-
-```shell
-git log -- <file>
-```
-
-### Check the content of each change to a file
-
-```shell
-gitk <file>
-```
-
-### Check the content of each change to a file, follows it past file renames
-
-```shell
-gitk --follow <file>
-```
-
-## Rebasing
-
-### Rebase your branch onto the default
-
-The `-i` flag stands for 'interactive'. Replace `<default-branch>` with the name
-of your [default branch](../../user/project/repository/branches/default.md):
-
-```shell
-git rebase -i <default-branch>
-```
-
-### Continue the rebase if paused
-
-```shell
-git rebase --continue
-```
-
-### Use `git rerere`
-
-To _reuse_ recorded solutions to the same problems when repeated:
-
-```shell
-git rerere
-```
-
-To enable `rerere` functionality:
-
-```shell
-git config --global rerere.enabled true
-```
-
-<!-- ## Troubleshooting
-
-Include any troubleshooting steps that you can foresee. If you know beforehand what issues
-one might have when setting this up, or when something is changed, or on upgrading, it's
-important to describe those, too. Think of things that may go wrong and include them here.
-This is important to minimize requests for support, and to avoid doc comments with
-questions that you know someone might ask.
-
-Each scenario can be a third-level heading, for example `### Getting error message X`.
-If you have none to add when creating a doc, leave this section in place
-but commented out to help encourage others to add to it in the future. -->
+<!-- This redirect file can be deleted after <2024-03-19>. -->
+<!-- Redirects that point to other docs in the same project expire in three months. -->
+<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/topics/manage_code.md b/doc/topics/manage_code.md
index 5fbdbee7017..4cbd97f8898 100644
--- a/doc/topics/manage_code.md
+++ b/doc/topics/manage_code.md
@@ -1,12 +1,13 @@
---
stage: none
group: unassigned
+description: Repositories, merge requests, remote development.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
# Manage your code **(FREE ALL)**
-Store your source files in a repository and create merge requests. Write, debug, and compile code hosted on GitLab.
+Store your source files in a repository and create merge requests. Write, debug, and collaborate on code.
- [Repositories](../user/project/repository/index.md)
- [Merge requests](../user/project/merge_requests/index.md)
diff --git a/doc/topics/offline/index.md b/doc/topics/offline/index.md
index b29a06463ba..b463abc79d3 100644
--- a/doc/topics/offline/index.md
+++ b/doc/topics/offline/index.md
@@ -1,6 +1,7 @@
---
stage: Systems
group: Distribution
+description: Isolated installation.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/topics/offline/quick_start_guide.md b/doc/topics/offline/quick_start_guide.md
index b6340d905d4..f5489d53ae0 100644
--- a/doc/topics/offline/quick_start_guide.md
+++ b/doc/topics/offline/quick_start_guide.md
@@ -258,8 +258,9 @@ Package metadata is stored in the following Google Cloud Provider (GCP) buckets:
```shell
# To download the package metadata exports, an outbound connection to Google Cloud Storage bucket must be allowed.
+ # Skip v1 objects using -y "^v1\/" to only download v2 objects. v1 data is no longer used and deprecated since 16.3.
mkdir -p "$GITLAB_RAILS_ROOT_DIR/vendor/package_metadata/$DATA_DIR"
- gsutil -m rsync -r -d gs://$PKG_METADATA_BUCKET "$GITLAB_RAILS_ROOT_DIR/vendor/package_metadata/$DATA_DIR"
+ gsutil -m rsync -r -d -y "^v1\/" gs://$PKG_METADATA_BUCKET "$GITLAB_RAILS_ROOT_DIR/vendor/package_metadata/$DATA_DIR"
# Alternatively, if the GitLab instance is not allowed to connect to the Google Cloud Storage bucket, the package metadata
# exports can be downloaded using a machine with the allowed access, and then copied to the root of the GitLab Rails directory.
@@ -293,7 +294,9 @@ PKG_METADATA_MANIFEST_OUTPUT_FILE="/tmp/package_metadata_${DATA_TYPE}_export_man
PKG_METADATA_DOWNLOADS_OUTPUT_FILE="/tmp/package_metadata_${DATA_TYPE}_object_links.tsv"
# Download the contents of the bucket
-curl --silent --show-error --request GET "https://storage.googleapis.com/storage/v1/b/$PKG_METADATA_BUCKET/o?maxResults=7500" > "$PKG_METADATA_MANIFEST_OUTPUT_FILE"
+# Filter results using `prefix=v2` to only download v2 objects. v1 data is no longer used and deprecated since 16.3.
+# Maximum number of objects returned by the API seems to be 5000 and there are currently (2023-12-21) 2650 objects for V2 dataset.
+curl --silent --show-error --request GET "https://storage.googleapis.com/storage/v1/b/$PKG_METADATA_BUCKET/o?prefix=v2%2f&maxResults=5000" > "$PKG_METADATA_MANIFEST_OUTPUT_FILE"
# Parse the links and names for the bucket objects and output them into a tsv file
jq -r '.items[] | [.name, .mediaLink] | @tsv' "$PKG_METADATA_MANIFEST_OUTPUT_FILE" > "$PKG_METADATA_DOWNLOADS_OUTPUT_FILE"
@@ -331,7 +334,7 @@ To automatically update your local copy with the upstream changes, a cron job ca
For License Scanning:
```plaintext
-*/30 * * * * gsutil -m rsync -r -d gs://prod-export-license-bucket-1a6c642fc4de57d4 $GITLAB_RAILS_ROOT_DIR/vendor/package_metadata/licenses
+*/30 * * * * gsutil -m rsync -r -d -y "^v1\/" gs://prod-export-license-bucket-1a6c642fc4de57d4 $GITLAB_RAILS_ROOT_DIR/vendor/package_metadata/licenses
```
For Dependency Scanning:
diff --git a/doc/topics/plan_and_track.md b/doc/topics/plan_and_track.md
index 3712d73929c..61c359e63ba 100644
--- a/doc/topics/plan_and_track.md
+++ b/doc/topics/plan_and_track.md
@@ -1,6 +1,7 @@
---
stage: Plan
group: Project Management
+description: Epics, issues, milestones, labels.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/topics/release_your_application.md b/doc/topics/release_your_application.md
index 27c5cc50e5f..d46ae98d47c 100644
--- a/doc/topics/release_your_application.md
+++ b/doc/topics/release_your_application.md
@@ -1,6 +1,7 @@
---
stage: none
group: unassigned
+description: Environments, packages, review apps, GitLab Pages.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/topics/set_up_organization.md b/doc/topics/set_up_organization.md
index 84d7bb1add0..22a594b6117 100644
--- a/doc/topics/set_up_organization.md
+++ b/doc/topics/set_up_organization.md
@@ -1,6 +1,7 @@
---
stage: none
group: unassigned
+description: Users, groups, namespaces, SSH keys.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/tutorials/build_application.md b/doc/tutorials/build_application.md
index 9c10a755292..ea899ee107e 100644
--- a/doc/tutorials/build_application.md
+++ b/doc/tutorials/build_application.md
@@ -1,6 +1,7 @@
---
stage: none
group: Tutorials
+description: CI/CD fundamentals and examples.
info: For assistance with this tutorials page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
---
diff --git a/doc/tutorials/develop.md b/doc/tutorials/develop.md
index bc0015b2d29..c893a4839d4 100644
--- a/doc/tutorials/develop.md
+++ b/doc/tutorials/develop.md
@@ -1,6 +1,7 @@
---
stage: none
group: Tutorials
+description: Integrations with third-party services.
info: For assistance with this tutorials page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
---
diff --git a/doc/tutorials/gitlab_navigation.md b/doc/tutorials/gitlab_navigation.md
index 738518e1aa7..b456b0ee18f 100644
--- a/doc/tutorials/gitlab_navigation.md
+++ b/doc/tutorials/gitlab_navigation.md
@@ -1,6 +1,7 @@
---
stage: none
group: Tutorials
+description: Introduction to the product.
info: For assistance with this tutorials page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
---
@@ -11,7 +12,7 @@ and running quickly.
| Topic | Description | Good for beginners |
|-------|-------------|--------------------|
-| [GitLab with Git Essentials](https://levelup.gitlab.com/courses/gitlab-with-git-essentials) | Learn the basics of Git and GitLab in this self-paced course. | **{star}** |
+| [GitLab with Git Essentials](https://levelup.gitlab.com/courses/gitlab-with-git-essentials-s2) | Learn the basics of Git and GitLab in this self-paced course. | **{star}** |
| <i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [Use GitLab for DevOps](https://www.youtube.com/watch?v=7q9Y1Cv-ib0) (12m 34s) | Use GitLab through the entire DevOps lifecycle, from planning to monitoring. | **{star}** |
| [Use the left sidebar to navigate GitLab](left_sidebar/index.md) | Start navigating the GitLab UI. | **{star}** |
| [Use Markdown at GitLab](../user/markdown.md) | GitLab Flavored Markdown (GLFM) is used in many areas of GitLab, for example, in merge requests. | **{star}** |
diff --git a/doc/tutorials/infrastructure.md b/doc/tutorials/infrastructure.md
index 49cd0e95230..0097d06e316 100644
--- a/doc/tutorials/infrastructure.md
+++ b/doc/tutorials/infrastructure.md
@@ -1,6 +1,7 @@
---
stage: none
group: Tutorials
+description: GitOps, Kubernetes deployments.
info: For assistance with this tutorials page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
---
diff --git a/doc/tutorials/learn_git.md b/doc/tutorials/learn_git.md
index 2ebc1f3fd0e..a8333734982 100644
--- a/doc/tutorials/learn_git.md
+++ b/doc/tutorials/learn_git.md
@@ -1,6 +1,7 @@
---
stage: none
group: Tutorials
+description: Git basics.
info: For assistance with this tutorials page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
---
diff --git a/doc/tutorials/make_first_git_commit/index.md b/doc/tutorials/make_first_git_commit/index.md
index 1663fa08ad6..e80cd6770d0 100644
--- a/doc/tutorials/make_first_git_commit/index.md
+++ b/doc/tutorials/make_first_git_commit/index.md
@@ -93,7 +93,7 @@ To start, create a sample project in GitLab.
Now you can clone the repository in your project. *Cloning* a repository means you're creating
a copy on your computer, or wherever you want to store and work with the files.
-1. On your project page, select **Clone**. Copy the URL for **Clone with SSH**.
+1. On your project's overview page, in the upper-right corner, select **Code**, then copy the URL for **Clone with SSH**.
![Clone a project with SSH](img/clone_project_v14_9.png)
diff --git a/doc/tutorials/plan_and_track.md b/doc/tutorials/plan_and_track.md
index b3ec1fb4755..f03aff933f6 100644
--- a/doc/tutorials/plan_and_track.md
+++ b/doc/tutorials/plan_and_track.md
@@ -1,6 +1,7 @@
---
stage: none
group: Tutorials
+description: Planning, agile, issue boards.
info: For assistance with this tutorials page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
---
diff --git a/doc/tutorials/protected_workflow/index.md b/doc/tutorials/protected_workflow/index.md
index 8e9ed3e952a..e9e3739d836 100644
--- a/doc/tutorials/protected_workflow/index.md
+++ b/doc/tutorials/protected_workflow/index.md
@@ -77,8 +77,8 @@ Next, add the subgroup as a member of the `engineering` group:
1. On the left sidebar, select **Search or go to**
and search for `engineering`. Select the group named `Engineering`.
-1. On the left sidebar, select **Manage > Members**.
-1. On the top right, select **Invite a group**.
+1. Select **Manage > Members**.
+1. In the upper right, select **Invite a group**.
1. For **Select a group to invite**, select `Engineering / Managers`.
1. When adding the subgroups select the role **Maintainer**.
This configures the highest role a member of the subgroup can inherit when accessing the `engineering` group and its projects.
@@ -270,7 +270,7 @@ Your rules are now in place, even though no `1.*` branches exist yet:
Now that all branch protections in place, you're ready to create your 1.0.0 release branch:
1. On the left sidebar, select **Code > Branches**.
-1. On the top right, select **New branch**. Name it `1.0.0`.
+1. In the upper-right corner, select **New branch**. Name it `1.0.0`.
1. Select **Create branch**.
The branch protections are now visible in the UI:
diff --git a/doc/tutorials/secure_application.md b/doc/tutorials/secure_application.md
index 4868ec53ed3..ac139a88cf1 100644
--- a/doc/tutorials/secure_application.md
+++ b/doc/tutorials/secure_application.md
@@ -1,6 +1,7 @@
---
stage: none
group: Tutorials
+description: Dependency and compliance scanning.
info: For assistance with this tutorials page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
---
diff --git a/doc/tutorials/update_commit_messages/index.md b/doc/tutorials/update_commit_messages/index.md
index 0228b33e3de..36106dd4f98 100644
--- a/doc/tutorials/update_commit_messages/index.md
+++ b/doc/tutorials/update_commit_messages/index.md
@@ -53,7 +53,7 @@ disabled to authenticate from the CLI. Alternatively, you can [use an SSH key to
The first step is to get a clone of the repository on your local machine:
-1. In GitLab, on your project's overview page, on the top right, select **Clone**.
+1. In GitLab, on your project's overview page, in the upper-right corner, select **Code**.
1. In the dropdown list, copy the URL for your repository by selecting **{copy-to-clipboard}** next to:
- **Clone with HTTPS** if your GitLab account uses basic username and password authentication.
- **Clone with SSH** if you use SSH to authenticate with GitLab.
diff --git a/doc/update/background_migrations.md b/doc/update/background_migrations.md
index 8f7e4cc7b1d..f1a3f7e7839 100644
--- a/doc/update/background_migrations.md
+++ b/doc/update/background_migrations.md
@@ -56,7 +56,7 @@ as 'finished', but it is 'active':
```
If you get this error,
-[review the options](#database-migrations-failing-because-of-batched-background-migration-not-finished) for
+[review the options](background_migrations_troubleshooting.md#database-migrations-failing-because-of-batched-background-migration-not-finished) for
how to complete the batched background migrations needed for the GitLab upgrade.
#### From the GitLab UI
@@ -419,208 +419,3 @@ sudo -u git -H bundle exec rails runner -e production 'puts Gitlab::Database::Ba
```
::EndTabs
-
-## Troubleshooting
-
-<!-- Linked from lib/gitlab/database/migrations/batched_background_migration_helpers.rb -->
-
-### Database migrations failing because of batched background migration not finished
-
-When updating to GitLab version 14.2 or later, database migrations might fail with a message like:
-
-```plaintext
-StandardError: An error has occurred, all later migrations canceled:
-
-Expected batched background migration for the given configuration to be marked as 'finished', but it is 'active':
- {:job_class_name=>"CopyColumnUsingBackgroundMigrationJob",
- :table_name=>"push_event_payloads",
- :column_name=>"event_id",
- :job_arguments=>[["event_id"],
- ["event_id_convert_to_bigint"]]
- }
-```
-
-First, check if you have followed the [version-specific upgrade instructions for 14.2](../update/versions/gitlab_14_changes.md#1420).
-If you have, you can [manually finish the batched background migration](#finish-a-failed-migration-manually)).
-If you haven't, choose one of the following methods:
-
-1. [Rollback and upgrade](#roll-back-and-follow-the-required-upgrade-path) through one of the required
-versions before updating to 14.2+.
-1. [Roll forward](#roll-forward-and-finish-the-migrations-on-the-upgraded-version), staying on the current
-version and manually ensuring that the batched migrations complete successfully.
-
-#### Roll back and follow the required upgrade path
-
-1. [Rollback and restore the previously installed version](../administration/backup_restore/index.md)
-1. Update to either 14.0.5 or 14.1 **before** updating to 14.2+
-1. [Check the status](#check-the-status-of-batched-background-migrations) of the batched background migrations and
-make sure they are all marked as finished before attempting to upgrade again. If any remain marked as active,
-you can [manually finish them](#finish-a-failed-migration-manually).
-
-#### Roll forward and finish the migrations on the upgraded version
-
-##### For a deployment with downtime
-
-To run all the batched background migrations, it can take a significant amount of time
-depending on the size of your GitLab installation.
-
-1. [Check the status](#check-the-status-of-batched-background-migrations) of the batched background migrations in the
-database, and [manually run them](#finish-a-failed-migration-manually) with the appropriate
-arguments until the status query returns no rows.
-1. When the status of all of all them is marked as complete, re-run migrations for your installation.
-1. [Complete the database migrations](../administration/raketasks/maintenance.md#run-incomplete-database-migrations) from your GitLab upgrade:
-
- ```plaintext
- sudo gitlab-rake db:migrate
- ```
-
-1. Run a reconfigure:
-
- ```plaintext
- sudo gitlab-ctl reconfigure
- ```
-
-1. Finish the upgrade for your installation.
-
-##### For a no-downtime deployment
-
-As the failing migrations are post-deployment migrations, you can remain on a running instance of the upgraded
-version and wait for the batched background migrations to finish.
-
-1. [Check the status](#check-the-status-of-batched-background-migrations) of the batched background migration from
-the error message, and make sure it is listed as finished. If it is still active, either wait until it is done,
-or [manually finish it](#finish-a-failed-migration-manually).
-1. Re-run migrations for your installation, so the remaining post-deployment migrations finish.
-
-### The `BackfillNamespaceIdForNamespaceRoute` batched migration job fails
-
-In GitLab 14.8, the `BackfillNamespaceIdForNamespaceRoute` batched background migration job
-may fail to complete. When retried, a `500 Server Error` is returned. This issue was
-[resolved](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82387) in GitLab 14.9.
-
-To resolve this issue, [upgrade GitLab](../update/index.md) from 14.8 to 14.9.
-You can ignore the failed batch migration until after you update to GitLab 14.9.
-
-### Background migrations remain in the Sidekiq queue
-
-WARNING:
-The following operations can disrupt your GitLab performance. They run a number of Sidekiq jobs that perform various database or file updates.
-
-Run the following check. If it returns non-zero and the count does not decrease over time, follow the rest of the steps in this section.
-
-```shell
-# For Linux package installations:
-sudo gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining'
-
-# For self-compiled installations:
-cd /home/git/gitlab
-sudo -u git -H bundle exec rails runner -e production 'puts Gitlab::BackgroundMigration.remaining'
-```
-
-It is safe to re-execute the following commands, especially if you have 1000+ pending jobs which would likely overflow your runtime memory.
-
-::Tabs
-
-:::TabTitle Linux package (Omnibus)
-
-```shell
-# Start the rails console
-sudo gitlab-rails c
-
-# Execute the following in the rails console
-scheduled_queue = Sidekiq::ScheduledSet.new
-pending_job_classes = scheduled_queue.select { |job| job["class"] == "BackgroundMigrationWorker" }.map { |job| job["args"].first }.uniq
-pending_job_classes.each { |job_class| Gitlab::BackgroundMigration.steal(job_class) }
-```
-
-:::TabTitle Self-compiled (source)
-
-```shell
-# Start the rails console
-sudo -u git -H bundle exec rails RAILS_ENV=production
-
-# Execute the following in the rails console
-scheduled_queue = Sidekiq::ScheduledSet.new
-pending_job_classes = scheduled_queue.select { |job| job["class"] == "BackgroundMigrationWorker" }.map { |job| job["args"].first }.uniq
-pending_job_classes.each { |job_class| Gitlab::BackgroundMigration.steal(job_class) }
-```
-
-::EndTabs
-
-### Background migrations stuck in 'pending' state
-
-WARNING:
-The following operations can disrupt your GitLab performance. They run a number
-of Sidekiq jobs that perform various database or file updates.
-
-- GitLab 14.2 introduced an issue where a background migration named
- `BackfillDraftStatusOnMergeRequests` can be permanently stuck in a
- **pending** state across upgrades when the instance lacks records that match
- the migration's target. To clean up this stuck migration, see the
- [14.2.0 version-specific instructions](versions/gitlab_14_changes.md#1420).
-- GitLab 14.4 introduced an issue where a background migration named
- `PopulateTopicsTotalProjectsCountCache` can be permanently stuck in a
- **pending** state across upgrades when the instance lacks records that match
- the migration's target. To clean up this stuck migration, see the
- [14.4.0 version-specific instructions](versions/gitlab_14_changes.md#1440).
-- GitLab 14.5 introduced an issue where a background migration named
- `UpdateVulnerabilityOccurrencesLocation` can be permanently stuck in a
- **pending** state across upgrades when the instance lacks records that match
- the migration's target. To clean up this stuck migration, see the
- [14.5.0 version-specific instructions](versions/gitlab_14_changes.md#1450).
-- GitLab 14.8 introduced an issue where a background migration named
- `PopulateTopicsNonPrivateProjectsCount` can be permanently stuck in a
- **pending** state across upgrades. To clean up this stuck migration, see the
- [14.8.0 version-specific instructions](versions/gitlab_14_changes.md#1480).
-- GitLab 14.9 introduced an issue where a background migration named
- `ResetDuplicateCiRunnersTokenValuesOnProjects` can be permanently stuck in a
- **pending** state across upgrades when the instance lacks records that match
- the migration's target. To clean up this stuck migration, see the
- [14.9.0 version-specific instructions](versions/gitlab_14_changes.md#1490).
-
-For other background migrations stuck in pending, run the following check. If
-it returns non-zero and the count does not decrease over time, follow the rest
-of the steps in this section.
-
-```shell
-# For Linux package installations:
-sudo gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigrationJob.pending.count'
-
-# For self-compiled installations:
-cd /home/git/gitlab
-sudo -u git -H bundle exec rails runner -e production 'puts Gitlab::Database::BackgroundMigrationJob.pending.count'
-```
-
-It is safe to re-attempt these migrations to clear them out from a pending status:
-
-::Tabs
-
-:::TabTitle Linux package (Omnibus)
-
-```shell
-# Start the rails console
-sudo gitlab-rails c
-
-# Execute the following in the rails console
-Gitlab::Database::BackgroundMigrationJob.pending.find_each do |job|
- puts "Running pending job '#{job.class_name}' with arguments #{job.arguments}"
- result = Gitlab::BackgroundMigration.perform(job.class_name, job.arguments)
- puts "Result: #{result}"
-end
-```
-
-:::TabTitle Self-compiled (source)
-
-```shell
-# Start the rails console
-sudo -u git -H bundle exec rails RAILS_ENV=production
-
-# Execute the following in the rails console
-Gitlab::Database::BackgroundMigrationJob.pending.find_each do |job|
- puts "Running pending job '#{job.class_name}' with arguments #{job.arguments}"
- result = Gitlab::BackgroundMigration.perform(job.class_name, job.arguments)
- puts "Result: #{result}"
-end
-```
-
-::EndTabs
diff --git a/doc/update/background_migrations_troubleshooting.md b/doc/update/background_migrations_troubleshooting.md
new file mode 100644
index 00000000000..f4ea9c2a556
--- /dev/null
+++ b/doc/update/background_migrations_troubleshooting.md
@@ -0,0 +1,210 @@
+---
+stage: Data Stores
+group: Database
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Troubleshooting **(FREE SELF)**
+
+<!-- Linked from lib/gitlab/database/migrations/batched_background_migration_helpers.rb -->
+
+## Database migrations failing because of batched background migration not finished
+
+When updating to GitLab version 14.2 or later, database migrations might fail with a message like:
+
+```plaintext
+StandardError: An error has occurred, all later migrations canceled:
+
+Expected batched background migration for the given configuration to be marked as 'finished', but it is 'active':
+ {:job_class_name=>"CopyColumnUsingBackgroundMigrationJob",
+ :table_name=>"push_event_payloads",
+ :column_name=>"event_id",
+ :job_arguments=>[["event_id"],
+ ["event_id_convert_to_bigint"]]
+ }
+```
+
+First, check if you have followed the [version-specific upgrade instructions for 14.2](../update/versions/gitlab_14_changes.md#1420).
+If you have, you can [manually finish the batched background migration](background_migrations.md#finish-a-failed-migration-manually)).
+If you haven't, choose one of the following methods:
+
+1. [Rollback and upgrade](#roll-back-and-follow-the-required-upgrade-path) through one of the required
+versions before updating to 14.2+.
+1. [Roll forward](#roll-forward-and-finish-the-migrations-on-the-upgraded-version), staying on the current
+version and manually ensuring that the batched migrations complete successfully.
+
+### Roll back and follow the required upgrade path
+
+1. [Rollback and restore the previously installed version](../administration/backup_restore/index.md)
+1. Update to either 14.0.5 or 14.1 **before** updating to 14.2+
+1. [Check the status](background_migrations.md#check-the-status-of-batched-background-migrations) of the batched background migrations and
+make sure they are all marked as finished before attempting to upgrade again. If any remain marked as active,
+you can [manually finish them](background_migrations.md#finish-a-failed-migration-manually).
+
+### Roll forward and finish the migrations on the upgraded version
+
+#### For a deployment with downtime
+
+To run all the batched background migrations, it can take a significant amount of time
+depending on the size of your GitLab installation.
+
+1. [Check the status](background_migrations.md#check-the-status-of-batched-background-migrations) of the batched background migrations in the
+database, and [manually run them](background_migrations.md#finish-a-failed-migration-manually) with the appropriate
+arguments until the status query returns no rows.
+1. When the status of all of all them is marked as complete, re-run migrations for your installation.
+1. [Complete the database migrations](../administration/raketasks/maintenance.md#run-incomplete-database-migrations) from your GitLab upgrade:
+
+ ```plaintext
+ sudo gitlab-rake db:migrate
+ ```
+
+1. Run a reconfigure:
+
+ ```plaintext
+ sudo gitlab-ctl reconfigure
+ ```
+
+1. Finish the upgrade for your installation.
+
+#### For a no-downtime deployment
+
+As the failing migrations are post-deployment migrations, you can remain on a running instance of the upgraded
+version and wait for the batched background migrations to finish.
+
+1. [Check the status](background_migrations.md#check-the-status-of-batched-background-migrations) of the batched background migration from
+the error message, and make sure it is listed as finished. If it is still active, either wait until it is done,
+or [manually finish it](background_migrations.md#finish-a-failed-migration-manually).
+1. Re-run migrations for your installation, so the remaining post-deployment migrations finish.
+
+## The `BackfillNamespaceIdForNamespaceRoute` batched migration job fails
+
+In GitLab 14.8, the `BackfillNamespaceIdForNamespaceRoute` batched background migration job
+may fail to complete. When retried, a `500 Server Error` is returned. This issue was
+[resolved](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82387) in GitLab 14.9.
+
+To resolve this issue, [upgrade GitLab](../update/index.md) from 14.8 to 14.9.
+You can ignore the failed batch migration until after you update to GitLab 14.9.
+
+## Background migrations remain in the Sidekiq queue
+
+WARNING:
+The following operations can disrupt your GitLab performance. They run a number of Sidekiq jobs that perform various database or file updates.
+
+Run the following check. If it returns non-zero and the count does not decrease over time, follow the rest of the steps in this section.
+
+```shell
+# For Linux package installations:
+sudo gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining'
+
+# For self-compiled installations:
+cd /home/git/gitlab
+sudo -u git -H bundle exec rails runner -e production 'puts Gitlab::BackgroundMigration.remaining'
+```
+
+It is safe to re-execute the following commands, especially if you have 1000+ pending jobs which would likely overflow your runtime memory.
+
+::Tabs
+
+:::TabTitle Linux package (Omnibus)
+
+```shell
+# Start the rails console
+sudo gitlab-rails c
+
+# Execute the following in the rails console
+scheduled_queue = Sidekiq::ScheduledSet.new
+pending_job_classes = scheduled_queue.select { |job| job["class"] == "BackgroundMigrationWorker" }.map { |job| job["args"].first }.uniq
+pending_job_classes.each { |job_class| Gitlab::BackgroundMigration.steal(job_class) }
+```
+
+:::TabTitle Self-compiled (source)
+
+```shell
+# Start the rails console
+sudo -u git -H bundle exec rails RAILS_ENV=production
+
+# Execute the following in the rails console
+scheduled_queue = Sidekiq::ScheduledSet.new
+pending_job_classes = scheduled_queue.select { |job| job["class"] == "BackgroundMigrationWorker" }.map { |job| job["args"].first }.uniq
+pending_job_classes.each { |job_class| Gitlab::BackgroundMigration.steal(job_class) }
+```
+
+::EndTabs
+
+## Background migrations stuck in 'pending' state
+
+WARNING:
+The following operations can disrupt your GitLab performance. They run a number
+of Sidekiq jobs that perform various database or file updates.
+
+- GitLab 14.2 introduced an issue where a background migration named
+ `BackfillDraftStatusOnMergeRequests` can be permanently stuck in a
+ **pending** state across upgrades when the instance lacks records that match
+ the migration's target. To clean up this stuck migration, see the
+ [14.2.0 version-specific instructions](versions/gitlab_14_changes.md#1420).
+- GitLab 14.4 introduced an issue where a background migration named
+ `PopulateTopicsTotalProjectsCountCache` can be permanently stuck in a
+ **pending** state across upgrades when the instance lacks records that match
+ the migration's target. To clean up this stuck migration, see the
+ [14.4.0 version-specific instructions](versions/gitlab_14_changes.md#1440).
+- GitLab 14.5 introduced an issue where a background migration named
+ `UpdateVulnerabilityOccurrencesLocation` can be permanently stuck in a
+ **pending** state across upgrades when the instance lacks records that match
+ the migration's target. To clean up this stuck migration, see the
+ [14.5.0 version-specific instructions](versions/gitlab_14_changes.md#1450).
+- GitLab 14.8 introduced an issue where a background migration named
+ `PopulateTopicsNonPrivateProjectsCount` can be permanently stuck in a
+ **pending** state across upgrades. To clean up this stuck migration, see the
+ [14.8.0 version-specific instructions](versions/gitlab_14_changes.md#1480).
+- GitLab 14.9 introduced an issue where a background migration named
+ `ResetDuplicateCiRunnersTokenValuesOnProjects` can be permanently stuck in a
+ **pending** state across upgrades when the instance lacks records that match
+ the migration's target. To clean up this stuck migration, see the
+ [14.9.0 version-specific instructions](versions/gitlab_14_changes.md#1490).
+
+For other background migrations stuck in pending, run the following check. If
+it returns non-zero and the count does not decrease over time, follow the rest
+of the steps in this section.
+
+```shell
+# For Linux package installations:
+sudo gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigrationJob.pending.count'
+
+# For self-compiled installations:
+cd /home/git/gitlab
+sudo -u git -H bundle exec rails runner -e production 'puts Gitlab::Database::BackgroundMigrationJob.pending.count'
+```
+
+It is safe to re-attempt these migrations to clear them out from a pending status:
+
+::Tabs
+
+:::TabTitle Linux package (Omnibus)
+
+```shell
+# Start the rails console
+sudo gitlab-rails c
+
+# Execute the following in the rails console
+Gitlab::Database::BackgroundMigrationJob.pending.find_each do |job|
+ puts "Running pending job '#{job.class_name}' with arguments #{job.arguments}"
+ result = Gitlab::BackgroundMigration.perform(job.class_name, job.arguments)
+ puts "Result: #{result}"
+end
+```
+
+:::TabTitle Self-compiled (source)
+
+```shell
+# Start the rails console
+sudo -u git -H bundle exec rails RAILS_ENV=production
+
+# Execute the following in the rails console
+Gitlab::Database::BackgroundMigrationJob.pending.find_each do |job|
+ puts "Running pending job '#{job.class_name}' with arguments #{job.arguments}"
+ result = Gitlab::BackgroundMigration.perform(job.class_name, job.arguments)
+ puts "Result: #{result}"
+end
+```
+
+::EndTabs
diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md
index cba85b1acd9..a7eb061fa47 100644
--- a/doc/update/deprecations.md
+++ b/doc/update/deprecations.md
@@ -52,6 +52,23 @@ For deprecation reviewers (Technical Writers only):
<div class="deprecation breaking-change" data-milestone="18.0">
+### Atlassian Crowd OmniAuth provider
+
+<div class="deprecation-notes">
+- Announced in GitLab <span class="milestone">15.3</span>
+- Removal in GitLab <span class="milestone">18.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/369117).
+</div>
+
+The `omniauth_crowd` gem that provides GitLab with the Atlassian Crowd OmniAuth provider will be removed in our
+next major release, GitLab 18.0. This gem sees very little use and its
+[lack of compatibility](https://github.com/robdimarco/omniauth_crowd/issues/37) with OmniAuth 2.0 is
+[blocking our upgrade](https://gitlab.com/gitlab-org/gitlab/-/issues/30073).
+
+</div>
+
+<div class="deprecation breaking-change" data-milestone="18.0">
+
### GitLab Runner registration token in Runner Operator
<div class="deprecation-notes">
@@ -124,6 +141,24 @@ Before upgrading to GitLab 18.0, please ensure you have [migrated](https://docs.
<div class="deprecation breaking-change" data-milestone="18.0">
+### Slack notifications integration
+
+<div class="deprecation-notes">
+- Announced in GitLab <span class="milestone">15.9</span>
+- Removal in GitLab <span class="milestone">18.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/435909).
+</div>
+
+As we're consolidating all Slack capabilities into the
+GitLab for Slack app, we've deprecated the Slack notifications
+integration.
+Use the GitLab for Slack app to manage notifications
+to your Slack workspace.
+
+</div>
+
+<div class="deprecation breaking-change" data-milestone="18.0">
+
### Support for REST API endpoints that reset runner registration tokens
<div class="deprecation-notes">
@@ -176,34 +211,31 @@ From GitLab 18.0 and later, the methods to register runners introduced by the ne
<div class="deprecation breaking-change" data-milestone="17.0">
-### Atlassian Crowd OmniAuth provider
+### Auto DevOps support for Herokuish is deprecated
<div class="deprecation-notes">
-- Announced in GitLab <span class="milestone">15.3</span>
+- Announced in GitLab <span class="milestone">15.8</span>
- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
-- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/369117).
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/211643).
</div>
-The `omniauth_crowd` gem that provides GitLab with the Atlassian Crowd OmniAuth provider will be removed in our
-next major release, GitLab 16.0. This gem sees very little use and its
-[lack of compatibility](https://github.com/robdimarco/omniauth_crowd/issues/37) with OmniAuth 2.0 is
-[blocking our upgrade](https://gitlab.com/gitlab-org/gitlab/-/issues/30073).
+Auto DevOps support for Herokuish is deprecated in favor of [Cloud Native Buildpacks](https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-build-using-cloud-native-buildpacks). You should [migrate your builds from Herokuish to Cloud Native Buildpacks](https://docs.gitlab.com/ee/topics/autodevops/stages.html#moving-from-herokuish-to-cloud-native-buildpacks). From GitLab 14.0, Auto Build uses Cloud Native Buildpacks by default.
+
+Because Cloud Native Buildpacks do not support automatic testing, the Auto Test feature of Auto DevOps is also deprecated.
</div>
<div class="deprecation breaking-change" data-milestone="17.0">
-### Auto DevOps support for Herokuish is deprecated
+### Block usage of ref and sha together in `GET /projects/:id/ci/lint`
<div class="deprecation-notes">
-- Announced in GitLab <span class="milestone">15.8</span>
+- Announced in GitLab <span class="milestone">16.8</span>
- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
-- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/211643).
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/430322).
</div>
-Auto DevOps support for Herokuish is deprecated in favor of [Cloud Native Buildpacks](https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-build-using-cloud-native-buildpacks). You should [migrate your builds from Herokuish to Cloud Native Buildpacks](https://docs.gitlab.com/ee/topics/autodevops/stages.html#moving-from-herokuish-to-cloud-native-buildpacks). From GitLab 14.0, Auto Build uses Cloud Native Buildpacks by default.
-
-Because Cloud Native Buildpacks do not support automatic testing, the Auto Test feature of Auto DevOps is also deprecated.
+Due to a problem with ambiguity, we've deprecated the use of both `ref` and `sha` in the same API call to `GET /projects/:id/ci/lint`. Make sure your API calls to this endpoint use only `ref` or `sha`, but not both. In GitLab 17.0, using them in the same call will no longer be possible to ensure the correct ref or SHA is linted.
</div>
@@ -333,6 +365,22 @@ To help avoid being impacted by this breaking change, create new access tokens w
</div>
+<div class="deprecation breaking-change" data-milestone="17.0">
+
+### Dependency Scanning support for sbt 1.0.X
+
+<div class="deprecation-notes">
+- Announced in GitLab <span class="milestone">16.8</span>
+- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/415835).
+</div>
+
+Supporting very old versions of sbt is preventing us from improving our support for additional use cases with this package manager without increasing our maintenance cost.
+
+Version 1.1.0 of sbt was released 6 years ago, and users are advised to upgrade from 1.0.x as Dependency Scanning will no longer work.
+
+</div>
+
<div class="deprecation " data-milestone="17.0">
### Deprecate GraphQL fields related to the temporary storage increase
@@ -579,6 +627,20 @@ are deprecated and will be removed from the GraphQL API. For installation instru
<div class="deprecation breaking-change" data-milestone="17.0">
+### GitLab Runner provenance metadata SLSA v0.2 statement
+
+<div class="deprecation-notes">
+- Announced in GitLab <span class="milestone">16.8</span>
+- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/36869).
+</div>
+
+Runners generate provenance metadata and currently defaults to generating statements that adhere to SLSA v0.2. Because SLSA v1.0 has been released and is now supported by GitLab, the v0.2 statement is now deprecated and removal is planned in GitLab 17.0. The SLSA v1.0 statement is planned to become the new default statement format in GitLab 17.0.
+
+</div>
+
+<div class="deprecation breaking-change" data-milestone="17.0">
+
### GraphQL deprecation of `dependencyProxyTotalSizeInBytes` field
<div class="deprecation-notes">
@@ -784,6 +846,41 @@ The table below lists the deprecated metrics and their respective replacements.
<div class="deprecation breaking-change" data-milestone="17.0">
+### License List is deprecated
+
+<div class="deprecation-notes">
+- Announced in GitLab <span class="milestone">16.8</span>
+- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/436100).
+</div>
+
+Today in GitLab you can see a list of all of the licenses your project and the components that
+use that license on the License List. As of 16.8, the License List
+is deprecated and scheduled to be removed in 17.0 as a breaking change.
+With the release of the [Group Dependency List](https://docs.gitlab.com/ee/user/application_security/dependency_list/)
+and the ability to filter by license on the project and group Dependency List, you can now
+access all of the licenses your project or group is using on the Dependency List.
+
+</div>
+
+<div class="deprecation breaking-change" data-milestone="17.0">
+
+### License Scanning support for sbt 1.0.X
+
+<div class="deprecation-notes">
+- Announced in GitLab <span class="milestone">16.8</span>
+- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/437591).
+</div>
+
+GitLab 17.0 removes License Scanning support for sbt 1.0.x.
+
+Users are advised to upgrade from sbt 1.0.x.
+
+</div>
+
+<div class="deprecation breaking-change" data-milestone="17.0">
+
### List repository directories Rake task
<div class="deprecation-notes">
@@ -1083,20 +1180,20 @@ automatically from GitLab 16.0 onwards.
<div class="deprecation breaking-change" data-milestone="17.0">
-### Slack notifications integration
+### Support for setting custom schema for backup is deprecated
<div class="deprecation-notes">
-- Announced in GitLab <span class="milestone">15.9</span>
+- Announced in GitLab <span class="milestone">16.8</span>
- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
-- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/372411).
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/435210).
</div>
-As we're consolidating all Slack capabilities into the
-GitLab for Slack app, we're [deprecating the Slack notifications
-integration](https://gitlab.com/gitlab-org/gitlab/-/issues/372411).
-GitLab.com users can now use the GitLab for Slack app to manage notifications
-to their Slack workspace. For self-managed users of the Slack notifications integration,
-we'll be introducing support in [this epic](https://gitlab.com/groups/gitlab-org/-/epics/1211).
+You could configure GitLab to use a custom schema for backup, by setting
+`gitlab_rails['backup_pg_schema'] = '<schema_name>'` in `/etc/gitlab/gitlab.rb` for Linux package installations,
+or by editing `config/gitlab.yml` for self-compiled installations.
+
+While the configuration setting was available, it had no effect and did not serve the purpose it was intended.
+This configuration setting will be removed in GitLab 17.0.
</div>
@@ -1259,6 +1356,34 @@ removed in 17.0.
<div class="deprecation breaking-change" data-milestone="17.0">
+### `after_script` keyword will run for cancelled jobs
+
+<div class="deprecation-notes">
+- Announced in GitLab <span class="milestone">16.8</span>
+- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/437789).
+</div>
+
+The [`after_script`](https://docs.gitlab.com/ee/ci/yaml/#after_script) CI/CD keyword is used to run additional commands after the main `script` section of a job. This is often used for cleaning up environments or other resources that were used by the job. For many users, the fact that the `after_script` commands do not run if a job is cancelled was unexpected and undesired. In 17.0, the keyword will be updated to also run commands after job cancellation. Make sure that your CI/CD configuration that uses the `after_script` keyword is able to handle running for cancelled jobs as well.
+
+</div>
+
+<div class="deprecation breaking-change" data-milestone="17.0">
+
+### `metric` filter and `value` field for DORA API
+
+<div class="deprecation-notes">
+- Announced in GitLab <span class="milestone">16.8</span>
+- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change))
+- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/393172).
+</div>
+
+Multiple DORA metrics can now be queried simultaneously using a new metrics field. The `metric` filter and `value` field for Graphql DORA API will be removed in GitLab 17.0.
+
+</div>
+
+<div class="deprecation breaking-change" data-milestone="17.0">
+
### `postgres_exporter['per_table_stats']` configuration setting
<div class="deprecation-notes">
diff --git a/doc/update/index.md b/doc/update/index.md
index c0a6b64a1ac..9192d409d55 100644
--- a/doc/update/index.md
+++ b/doc/update/index.md
@@ -1,10 +1,11 @@
---
stage: Systems
group: Distribution
+description: Latest version instructions.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Upgrading GitLab **(FREE SELF)**
+# Upgrade GitLab **(FREE SELF)**
Upgrading GitLab is a relatively straightforward process, but the complexity
can increase based on the installation method you have used, how old your
@@ -88,10 +89,10 @@ As for the artifacts, the GitLab Runner attempts to upload them three times, aft
To address the above two scenarios, it is advised to do the following prior to upgrading:
1. Plan your maintenance.
-1. Pause your runners or block new jobs from starting by adding following to your `/etc/gitlab/gitlab.rb`:
+1. Pause your runners, or block new jobs from starting by adding the following to your `/etc/gitlab/gitlab.rb`:
```ruby
- nginx['custom_gitlab_server_config'] = "location /api/v4/jobs/request {\n deny all;\n return 503;\n}\n"
+ nginx['custom_gitlab_server_config'] = "location ^~ /api/v4/jobs/request {\n deny all;\n return 503;\n}\n"
```
And reconfigure GitLab with:
@@ -192,12 +193,13 @@ When upgrading:
- GitLab 15: [`15.0.5`](versions/gitlab_15_changes.md#1500) > [`15.1.6`](versions/gitlab_15_changes.md#1510) (for
GitLab instances with multiple web nodes) > [`15.4.6`](versions/gitlab_15_changes.md#1540) >
[`15.11.13`](versions/gitlab_15_changes.md#15110).
- - GitLab 16: [`16.0.x`](versions/gitlab_16_changes.md#1600) (only
+ - GitLab 16: [`16.0.8`](versions/gitlab_16_changes.md#1600) (only
instances with [lots of users](versions/gitlab_16_changes.md#long-running-user-type-data-change) or
[large pipeline variables history](versions/gitlab_16_changes.md#1610)) >
- [`16.1`](versions/gitlab_16_changes.md#1610) (instances with NPM packages in their package registry) >
- [`16.2.x`](versions/gitlab_16_changes.md#1620) (only instances with [large pipeline variables history](versions/gitlab_16_changes.md#1630)) >
- [`16.3`](versions/gitlab_16_changes.md#1630) > [latest `16.Y.Z`](https://gitlab.com/gitlab-org/gitlab/-/releases).
+ [`16.1.6`](versions/gitlab_16_changes.md#1610) (instances with NPM packages in their package registry) >
+ [`16.2.9`](versions/gitlab_16_changes.md#1620) (only instances with [large pipeline variables history](versions/gitlab_16_changes.md#1630)) >
+ [`16.3.7`](versions/gitlab_16_changes.md#1630) > [`16.7.z`](versions/gitlab_16_changes.md#1670)
+ > [latest `16.Y.Z`](https://gitlab.com/gitlab-org/gitlab/-/releases).
1. Check for [required upgrade stops](#required-upgrade-stops).
1. Consult the [version-specific upgrade instructions](#version-specific-upgrading-instructions).
diff --git a/doc/update/package/convert_to_ee.md b/doc/update/package/convert_to_ee.md
index 5a76c85e915..ae89891d4f4 100644
--- a/doc/update/package/convert_to_ee.md
+++ b/doc/update/package/convert_to_ee.md
@@ -17,7 +17,7 @@ you are upgrading the same version (for example, CE 12.1 to EE 12.1), which is *
WARNING:
When updating to EE from CE, avoid reverting back to CE if you plan to go to EE again in the
future. Reverting back to CE can cause
-[database issues](index.md#500-error-when-accessing-project--settings--repository)
+[database issues](package_troubleshooting.md#500-error-when-accessing-project--settings--repository)
that may require Support intervention.
The steps can be summed up to:
diff --git a/doc/update/package/index.md b/doc/update/package/index.md
index 93967a30660..662590e7f78 100644
--- a/doc/update/package/index.md
+++ b/doc/update/package/index.md
@@ -39,9 +39,9 @@ GitLab package.
Upgrading versions might need some manual intervention. For more information,
check the version your are upgrading to:
-- [GitLab 16](https://docs.gitlab.com/omnibus/update/gitlab_16_changes.html)
-- [GitLab 15](https://docs.gitlab.com/omnibus/update/gitlab_15_changes.html)
-- [GitLab 14](https://docs.gitlab.com/omnibus/update/gitlab_14_changes.html)
+- [GitLab 16](../versions/gitlab_16_changes.md)
+- [GitLab 15](../versions/gitlab_15_changes.md)
+- [GitLab 14](../versions/gitlab_14_changes.md)
### Earlier GitLab versions
@@ -93,10 +93,10 @@ To upgrade to the latest GitLab version:
# Ubuntu/Debian
sudo apt update && sudo apt install gitlab-ee
-# RHEL/CentOS 6 and 7
+# RHEL/CentOS 7 and Amazon Linux 2
sudo yum install gitlab-ee
-# RHEL/CentOS 8
+# RHEL/Almalinux 8/9 and Amazon Linux 2023
sudo dnf install gitlab-ee
# SUSE
@@ -124,10 +124,10 @@ or upgrade command:
# Ubuntu/Debian
sudo apt-cache madison gitlab-ee
- # RHEL/CentOS 6 and 7
+ # RHEL/CentOS 7 and Amazon Linux 2
yum --showduplicates list gitlab-ee
- # RHEL/CentOS 8
+ # RHEL/Almalinux 8/9 and Amazon Linux 2023
dnf --showduplicates list gitlab-ee
# SUSE
@@ -143,10 +143,10 @@ or upgrade command:
# Ubuntu/Debian
sudo apt install gitlab-ee=<version>
- # RHEL/CentOS 6 and 7
+ # RHEL/CentOS 7 and Amazon Linux 2
yum install gitlab-ee-<version>
- # RHEL/CentOS 8
+ # RHEL/Almalinux 8/9 and Amazon Linux 2023
dnf install gitlab-ee-<version>
# SUSE
@@ -184,10 +184,10 @@ To download and install GitLab:
# Debian/Ubuntu
dpkg -i <package_name>
- # RHEL/CentOS 6 and 7
+ # RHEL/CentOS 7 and Amazon Linux 2
rpm -Uvh <package_name>
- # RHEL/CentOS 8
+ # RHEL/Almalinux 8/9 and Amazon Linux 2023
dnf install <package_name>
# SUSE
@@ -205,288 +205,4 @@ see how to [upgrade to a later version](../../administration/docs_self_host.md#u
## Troubleshooting
-### Get the status of a GitLab installation
-
-```shell
-sudo gitlab-ctl status
-sudo gitlab-rake gitlab:check SANITIZE=true
-```
-
-- Information on using `gitlab-ctl` to perform [maintenance tasks](https://docs.gitlab.com/omnibus/maintenance/index.html).
-- Information on using `gitlab-rake` to [check the configuration](../../administration/raketasks/maintenance.md#check-gitlab-configuration).
-
-### RPM 'package is already installed' error
-
-If you are using RPM and you are upgrading from GitLab Community Edition to GitLab Enterprise Edition you may get an error like this:
-
-```shell
-package gitlab-7.5.2_omnibus.5.2.1.ci-1.el7.x86_64 (which is newer than gitlab-7.5.2_ee.omnibus.5.2.1.ci-1.el7.x86_64) is already installed
-```
-
-You can override this version check with the `--oldpackage` option:
-
-```shell
-sudo rpm -Uvh --oldpackage gitlab-7.5.2_ee.omnibus.5.2.1.ci-1.el7.x86_64.rpm
-```
-
-### Package obsoleted by installed package
-
-CE and EE packages are marked as obsoleting and replacing each other so that both aren't installed and running at the same time.
-
-If you are using local RPM files to switch from CE to EE or vice versa, use `rpm` for installing the package rather than `yum`. If you try to use yum, then you may get an error like this:
-
-```plaintext
-Cannot install package gitlab-ee-11.8.3-ee.0.el6.x86_64. It is obsoleted by installed package gitlab-ce-11.8.3-ce.0.el6.x86_64
-```
-
-To avoid this issue, either:
-
-- Use the same instructions provided in the
- [Upgrade using a manually-downloaded package](#upgrade-using-a-manually-downloaded-package) section.
-- Temporarily disable this checking in yum by adding `--setopt=obsoletes=0` to the options given to the command.
-
-### 500 error when accessing Project > Settings > Repository
-
-This error occurs when GitLab is converted from CE > EE > CE, and then back to EE.
-When viewing a project's repository settings, you can view this error in the logs:
-
-```shell
-Processing by Projects::Settings::RepositoryController#show as HTML
- Parameters: {"namespace_id"=>"<namespace_id>", "project_id"=>"<project_id>"}
-Completed 500 Internal Server Error in 62ms (ActiveRecord: 4.7ms | Elasticsearch: 0.0ms | Allocations: 14583)
-
-NoMethodError (undefined method `commit_message_negative_regex' for #<PushRule:0x00007fbddf4229b8>
-Did you mean? commit_message_regex_change):
-```
-
-This error is caused by an EE feature being added to a CE instance on the initial move to EE.
-After the instance is moved back to CE and then is upgraded to EE again, the
-`push_rules` table already exists in the database. Therefore, a migration is
-unable to add the `commit_message_regex_change` column.
-
-This results in the [backport migration of EE tables](https://gitlab.com/gitlab-org/gitlab/-/blob/cf00e431024018ddd82158f8a9210f113d0f4dbc/db/migrate/20190402150158_backport_enterprise_schema.rb#L1619) not working correctly.
-The backport migration assumes that certain tables in the database do not exist when running CE.
-
-To fix this issue:
-
-1. Start a database console:
-
- In GitLab 14.2 and later:
-
- ```shell
- sudo gitlab-rails dbconsole --database main
- ```
-
- In GitLab 14.1 and earlier:
-
- ```shell
- sudo gitlab-rails dbconsole
- ```
-
-1. Manually add the missing `commit_message_negative_regex` column:
-
- ```sql
- ALTER TABLE push_rules ADD COLUMN commit_message_negative_regex VARCHAR;
-
- # Exit psql
- \q
- ```
-
-1. Restart GitLab:
-
- ```shell
- sudo gitlab-ctl restart
- ```
-
-### Error `Failed to connect to the internal GitLab API` on a separate GitLab Pages server
-
-See [GitLab Pages administration troubleshooting](../../administration/pages/troubleshooting.md#failed-to-connect-to-the-internal-gitlab-api).
-
-### Error `An error occurred during the signature verification` when running `apt-get update`
-
-To update the GPG key of the GitLab packages server run:
-
-```shell
-curl --silent "https://packages.gitlab.com/gpg.key" | apt-key add -
-apt-get update
-```
-
-### `Mixlib::ShellOut::CommandTimeout: rails_migration[gitlab-rails] [..] Command timed out after 3600s`
-
-If database schema and data changes (database migrations) must take more than one hour to run,
-upgrades fail with a `timed out` error:
-
-```plaintext
-FATAL: Mixlib::ShellOut::CommandTimeout: rails_migration[gitlab-rails] (gitlab::database_migrations line 51)
-had an error: Mixlib::ShellOut::CommandTimeout: bash[migrate gitlab-rails database]
-(/opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/resources/rails_migration.rb line 16)
-had an error: Mixlib::ShellOut::CommandTimeout: Command timed out after 3600s:
-```
-
-To fix this error:
-
-1. Run the remaining database migrations:
-
- ```shell
- sudo gitlab-rake db:migrate
- ```
-
- This command may take a very long time to complete. Use `screen` or some other mechanism to ensure
- the program is not interrupted if your SSH session drops.
-
-1. Complete the upgrade:
-
- ```shell
- sudo gitlab-ctl reconfigure
- ```
-
-1. Hot reload `puma` and `sidekiq` services:
-
- ```shell
- sudo gitlab-ctl hup puma
- sudo gitlab-ctl restart sidekiq
- ```
-
-### Missing asset files
-
-Following an upgrade, GitLab might not be correctly serving up assets such as images, JavaScript, and style sheets.
-It might be generating 500 errors, or the web UI may be failing to render properly.
-
-In a scaled out GitLab environment, if one web server behind the load balancer is demonstrating
-this issue, the problem occurs intermittently.
-
-The [Rake task to recompile](../../administration/raketasks/maintenance.md#precompile-the-assets) the
-assets doesn't apply to an Omnibus installation which serves
-pre-compiled assets from `/opt/gitlab/embedded/service/gitlab-rails/public/assets`.
-
-Potential causes and fixes:
-
-- [Ensure no old processes are running](#old-processes).
-- [Remove duplicate sprockets files](#duplicate-sprockets-files)
-- [The installation is incomplete](#incomplete-installation)
-- [NGINX Gzip support is disabled](#nginx-gzip-support)
-
-#### Old processes
-
-The most likely cause is that an old Puma process is running, instructing clients
-to request asset files from a previous release of GitLab. As the files no longer exist,
-HTTP 404 errors are returned.
-
-A reboot is the best way to ensure these old Puma processes are no longer running.
-
-Alternatively:
-
-1. Stop Puma:
-
- ```shell
- gitlab-ctl stop puma
- ```
-
-1. Check for any remaining Puma processes, and kill them:
-
- ```shell
- ps -ef | egrep 'puma[: ]'
- kill <processid>
- ```
-
-1. Verify with `ps` that the Puma processes have stopped running.
-
-1. Start Puma
-
- ```shell
- gitlab-ctl start puma
- ```
-
-#### Duplicate sprockets files
-
-The compiled asset files have unique file names in each release. The sprockets files
-provide a mapping from the filenames in the application code to the unique filenames.
-
-```plaintext
-/opt/gitlab/embedded/service/gitlab-rails/public/assets/.sprockets-manifest*.json
-```
-
-Make sure there's only one sprockets file. [Rails uses the first one](https://github.com/rails/sprockets-rails/blob/118ce60b1ffeb7a85640661b014cd2ee3c4e3e56/lib/sprockets/railtie.rb#L201).
-
-A check for duplicate sprockets files runs during Omnibus GitLab upgrades:
-
-```plaintext
-GitLab discovered stale file(s) from the previous install that need to be cleaned up.
-The following files need to be removed:
-
-/opt/gitlab/embedded/service/gitlab-rails/public/assets/.sprockets-manifest-e16fdb7dd73cfdd64ed9c2cc0e35718a.json
-```
-
-Options for resolving this include:
-
-- If you have the output from the package upgrade, remove the specified files. Then restart Puma:
-
- ```shell
- gitlab-ctl restart puma
- ```
-
-- If you don't have the message, perform a reinstall
- (see [incomplete installation](#incomplete-installation) below for more details)
- to generate it again.
-
-- Remove all the sprockets files and then follow the instructions for an [incomplete installation](#incomplete-installation).
-
-#### Incomplete installation
-
-An incomplete installation could be the cause of this issue.
-
-Verify the package to determine if this is the problem:
-
-- For Debian distributions:
-
- ```shell
- apt-get install debsums
- debsums -c gitlab-ee
- ```
-
-- For Red Hat/SUSE (RPM) distributions:
-
- ```shell
- rpm -V gitlab-ee
- ```
-
-To reinstall the package to fix an incomplete installation:
-
-1. Check the installed version
-
- - For Debian distributions:
-
- ```shell
- apt --installed list gitlab-ee
- ```
-
- - For Red Hat/SUSE (RPM) distributions:
-
- ```shell
- rpm -qa gitlab-ee
- ```
-
-1. Reinstall the package, specifying the installed version. For example 14.4.0 Enterprise Edition:
-
- - For Debian distributions:
-
- ```shell
- apt-get install --reinstall gitlab-ee=14.4.0-ee.0
- ```
-
- - For Red Hat/SUSE (RPM) distributions:
-
- ```shell
- yum reinstall gitlab-ee-14.4.0
- ```
-
-#### NGINX Gzip support
-
-Check whether `nginx['gzip_enabled']` has been disabled:
-
-```shell
-grep gzip /etc/gitlab/gitlab.rb
-```
-
-This might prevent some assets from being served.
-[Read more](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6087#note_558194395) in one of the related issues.
+See [troubleshooting](package_troubleshooting.md) for more information.
diff --git a/doc/update/package/package_troubleshooting.md b/doc/update/package/package_troubleshooting.md
new file mode 100644
index 00000000000..6d83db1fac1
--- /dev/null
+++ b/doc/update/package/package_troubleshooting.md
@@ -0,0 +1,293 @@
+---
+stage: Systems
+group: Distribution
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Troubleshooting **(FREE SELF)**
+
+## Get the status of a GitLab installation
+
+```shell
+sudo gitlab-ctl status
+sudo gitlab-rake gitlab:check SANITIZE=true
+```
+
+- Information on using `gitlab-ctl` to perform [maintenance tasks](https://docs.gitlab.com/omnibus/maintenance/index.html).
+- Information on using `gitlab-rake` to [check the configuration](../../administration/raketasks/maintenance.md#check-gitlab-configuration).
+
+## RPM 'package is already installed' error
+
+If you are using RPM and you are upgrading from GitLab Community Edition to GitLab Enterprise Edition you may get an error like this:
+
+```shell
+package gitlab-7.5.2_omnibus.5.2.1.ci-1.el7.x86_64 (which is newer than gitlab-7.5.2_ee.omnibus.5.2.1.ci-1.el7.x86_64) is already installed
+```
+
+You can override this version check with the `--oldpackage` option:
+
+```shell
+sudo rpm -Uvh --oldpackage gitlab-7.5.2_ee.omnibus.5.2.1.ci-1.el7.x86_64.rpm
+```
+
+## Package obsoleted by installed package
+
+CE and EE packages are marked as obsoleting and replacing each other so that both aren't installed and running at the same time.
+
+If you are using local RPM files to switch from CE to EE or vice versa, use `rpm` for installing the package rather than `yum`. If you try to use yum, then you may get an error like this:
+
+```plaintext
+Cannot install package gitlab-ee-11.8.3-ee.0.el6.x86_64. It is obsoleted by installed package gitlab-ce-11.8.3-ce.0.el6.x86_64
+```
+
+To avoid this issue, either:
+
+- Use the same instructions provided in the
+ [Upgrade using a manually-downloaded package](index.md#upgrade-using-a-manually-downloaded-package) section.
+- Temporarily disable this checking in yum by adding `--setopt=obsoletes=0` to the options given to the command.
+
+## 500 error when accessing Project > Settings > Repository
+
+This error occurs when GitLab is converted from CE > EE > CE, and then back to EE.
+When viewing a project's repository settings, you can view this error in the logs:
+
+```shell
+Processing by Projects::Settings::RepositoryController#show as HTML
+ Parameters: {"namespace_id"=>"<namespace_id>", "project_id"=>"<project_id>"}
+Completed 500 Internal Server Error in 62ms (ActiveRecord: 4.7ms | Elasticsearch: 0.0ms | Allocations: 14583)
+
+NoMethodError (undefined method `commit_message_negative_regex' for #<PushRule:0x00007fbddf4229b8>
+Did you mean? commit_message_regex_change):
+```
+
+This error is caused by an EE feature being added to a CE instance on the initial move to EE.
+After the instance is moved back to CE and then is upgraded to EE again, the
+`push_rules` table already exists in the database. Therefore, a migration is
+unable to add the `commit_message_regex_change` column.
+
+This results in the [backport migration of EE tables](https://gitlab.com/gitlab-org/gitlab/-/blob/cf00e431024018ddd82158f8a9210f113d0f4dbc/db/migrate/20190402150158_backport_enterprise_schema.rb#L1619) not working correctly.
+The backport migration assumes that certain tables in the database do not exist when running CE.
+
+To fix this issue:
+
+1. Start a database console:
+
+ In GitLab 14.2 and later:
+
+ ```shell
+ sudo gitlab-rails dbconsole --database main
+ ```
+
+ In GitLab 14.1 and earlier:
+
+ ```shell
+ sudo gitlab-rails dbconsole
+ ```
+
+1. Manually add the missing `commit_message_negative_regex` column:
+
+ ```sql
+ ALTER TABLE push_rules ADD COLUMN commit_message_negative_regex VARCHAR;
+
+ # Exit psql
+ \q
+ ```
+
+1. Restart GitLab:
+
+ ```shell
+ sudo gitlab-ctl restart
+ ```
+
+## Error `Failed to connect to the internal GitLab API` on a separate GitLab Pages server
+
+See [GitLab Pages administration troubleshooting](../../administration/pages/troubleshooting.md#failed-to-connect-to-the-internal-gitlab-api).
+
+## Error `An error occurred during the signature verification` when running `apt-get update`
+
+To update the GPG key of the GitLab packages server run:
+
+```shell
+curl --silent "https://packages.gitlab.com/gpg.key" | apt-key add -
+apt-get update
+```
+
+## `Mixlib::ShellOut::CommandTimeout: rails_migration[gitlab-rails] [..] Command timed out after 3600s`
+
+If database schema and data changes (database migrations) must take more than one hour to run,
+upgrades fail with a `timed out` error:
+
+```plaintext
+FATAL: Mixlib::ShellOut::CommandTimeout: rails_migration[gitlab-rails] (gitlab::database_migrations line 51)
+had an error: Mixlib::ShellOut::CommandTimeout: bash[migrate gitlab-rails database]
+(/opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/resources/rails_migration.rb line 16)
+had an error: Mixlib::ShellOut::CommandTimeout: Command timed out after 3600s:
+```
+
+To fix this error:
+
+1. Run the remaining database migrations:
+
+ ```shell
+ sudo gitlab-rake db:migrate
+ ```
+
+ This command may take a very long time to complete. Use `screen` or some other mechanism to ensure
+ the program is not interrupted if your SSH session drops.
+
+1. Complete the upgrade:
+
+ ```shell
+ sudo gitlab-ctl reconfigure
+ ```
+
+1. Hot reload `puma` and `sidekiq` services:
+
+ ```shell
+ sudo gitlab-ctl hup puma
+ sudo gitlab-ctl restart sidekiq
+ ```
+
+## Missing asset files
+
+Following an upgrade, GitLab might not be correctly serving up assets such as images, JavaScript, and style sheets.
+It might be generating 500 errors, or the web UI may be failing to render properly.
+
+In a scaled out GitLab environment, if one web server behind the load balancer is demonstrating
+this issue, the problem occurs intermittently.
+
+The [Rake task to recompile](../../administration/raketasks/maintenance.md#precompile-the-assets) the
+assets doesn't apply to an Omnibus installation which serves
+pre-compiled assets from `/opt/gitlab/embedded/service/gitlab-rails/public/assets`.
+
+Potential causes and fixes:
+
+- [Ensure no old processes are running](#old-processes).
+- [Remove duplicate sprockets files](#duplicate-sprockets-files)
+- [The installation is incomplete](#incomplete-installation)
+- [NGINX Gzip support is disabled](#nginx-gzip-support)
+
+### Old processes
+
+The most likely cause is that an old Puma process is running, instructing clients
+to request asset files from a previous release of GitLab. As the files no longer exist,
+HTTP 404 errors are returned.
+
+A reboot is the best way to ensure these old Puma processes are no longer running.
+
+Alternatively:
+
+1. Stop Puma:
+
+ ```shell
+ gitlab-ctl stop puma
+ ```
+
+1. Check for any remaining Puma processes, and kill them:
+
+ ```shell
+ ps -ef | egrep 'puma[: ]'
+ kill <processid>
+ ```
+
+1. Verify with `ps` that the Puma processes have stopped running.
+
+1. Start Puma
+
+ ```shell
+ gitlab-ctl start puma
+ ```
+
+### Duplicate sprockets files
+
+The compiled asset files have unique file names in each release. The sprockets files
+provide a mapping from the filenames in the application code to the unique filenames.
+
+```plaintext
+/opt/gitlab/embedded/service/gitlab-rails/public/assets/.sprockets-manifest*.json
+```
+
+Make sure there's only one sprockets file. [Rails uses the first one](https://github.com/rails/sprockets-rails/blob/118ce60b1ffeb7a85640661b014cd2ee3c4e3e56/lib/sprockets/railtie.rb#L201).
+
+A check for duplicate sprockets files runs during Omnibus GitLab upgrades:
+
+```plaintext
+GitLab discovered stale file(s) from the previous install that need to be cleaned up.
+The following files need to be removed:
+
+/opt/gitlab/embedded/service/gitlab-rails/public/assets/.sprockets-manifest-e16fdb7dd73cfdd64ed9c2cc0e35718a.json
+```
+
+Options for resolving this include:
+
+- If you have the output from the package upgrade, remove the specified files. Then restart Puma:
+
+ ```shell
+ gitlab-ctl restart puma
+ ```
+
+- If you don't have the message, perform a reinstall
+ (see [incomplete installation](#incomplete-installation) below for more details)
+ to generate it again.
+
+- Remove all the sprockets files and then follow the instructions for an [incomplete installation](#incomplete-installation).
+
+### Incomplete installation
+
+An incomplete installation could be the cause of this issue.
+
+Verify the package to determine if this is the problem:
+
+- For Debian distributions:
+
+ ```shell
+ apt-get install debsums
+ debsums -c gitlab-ee
+ ```
+
+- For Red Hat/SUSE (RPM) distributions:
+
+ ```shell
+ rpm -V gitlab-ee
+ ```
+
+To reinstall the package to fix an incomplete installation:
+
+1. Check the installed version
+
+ - For Debian distributions:
+
+ ```shell
+ apt --installed list gitlab-ee
+ ```
+
+ - For Red Hat/SUSE (RPM) distributions:
+
+ ```shell
+ rpm -qa gitlab-ee
+ ```
+
+1. Reinstall the package, specifying the installed version. For example 14.4.0 Enterprise Edition:
+
+ - For Debian distributions:
+
+ ```shell
+ apt-get install --reinstall gitlab-ee=14.4.0-ee.0
+ ```
+
+ - For Red Hat/SUSE (RPM) distributions:
+
+ ```shell
+ yum reinstall gitlab-ee-14.4.0
+ ```
+
+### NGINX Gzip support
+
+Check whether `nginx['gzip_enabled']` has been disabled:
+
+```shell
+grep gzip /etc/gitlab/gitlab.rb
+```
+
+This might prevent some assets from being served.
+[Read more](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6087#note_558194395) in one of the related issues.
diff --git a/doc/update/plan_your_upgrade.md b/doc/update/plan_your_upgrade.md
index 00ee87ac96c..eda78402c7a 100644
--- a/doc/update/plan_your_upgrade.md
+++ b/doc/update/plan_your_upgrade.md
@@ -143,7 +143,7 @@ version prior to upgrading the application server.
If you're using Geo:
- Review [Geo upgrade documentation](../administration/geo/replication/upgrading_the_geo_sites.md).
-- Read about the [Geo version-specific update instructions](../administration/geo/replication/version_specific_upgrades.md).
+- Read about the [Geo version-specific update instructions](index.md#version-specific-upgrading-instructions).
- Review Geo-specific steps when [upgrading the database](https://docs.gitlab.com/omnibus/settings/database.html#upgrading-a-geo-instance).
- Create an upgrade and rollback plan for _each_ Geo site (primary and each secondary).
diff --git a/doc/update/versions/gitlab_14_changes.md b/doc/update/versions/gitlab_14_changes.md
index 3244e63df2d..68784a27e6b 100644
--- a/doc/update/versions/gitlab_14_changes.md
+++ b/doc/update/versions/gitlab_14_changes.md
@@ -44,7 +44,7 @@ For more information about upgrading GitLab Helm Chart, see [the release notes f
Mixlib::ShellOut::CommandTimeout: Command timed out after 3600s:
```
- A workaround exists to [complete the data change and the upgrade manually](../package/index.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s).
+ A workaround exists to [complete the data change and the upgrade manually](../package/package_troubleshooting.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s).
### Linux package installations
@@ -144,9 +144,10 @@ For more information about upgrading GitLab Helm Chart, see [the release notes f
1. Add `gitlab_kas['enable'] = false` to `gitlab.rb`.
1. If the server is already upgraded to 14.8, run `gitlab-ctl reconfigure`.
+
- GitLab 14.8.0 includes a
-[background migration `PopulateTopicsNonPrivateProjectsCount`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79140)
-that may remain stuck permanently in a **pending** state.
+ [background migration `PopulateTopicsNonPrivateProjectsCount`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79140)
+ that may remain stuck permanently in a **pending** state.
To clean up this stuck job, run the following in the [GitLab Rails Console](../../administration/operations/rails_console.md):
@@ -287,7 +288,7 @@ that may remain stuck permanently in a **pending** state.
Mixlib::ShellOut::CommandTimeout: Command timed out after 3600s:
```
- [There is a workaround to complete the data change and the upgrade manually](../package/index.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s)
+ [There is a workaround to complete the data change and the upgrade manually](../package/package_troubleshooting.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s)
- As part of [enabling real-time issue assignees](https://gitlab.com/gitlab-org/gitlab/-/issues/330117), Action Cable is now enabled by default.
For **self-compiled (source) installations**, `config/cable.yml` is required to be present.
@@ -305,8 +306,8 @@ that may remain stuck permanently in a **pending** state.
### Self-compiled installations
- When `make` is run, Gitaly builds are now created in `_build/bin` and no longer in the root directory of the source directory. If you
-are using a self-compiled installation, update paths to these binaries in your [systemd unit files](../upgrading_from_source.md#configure-systemd-units)
-or [init scripts](../upgrading_from_source.md#configure-sysv-init-script) by [following the documentation](../upgrading_from_source.md).
+ are using a self-compiled installation, update paths to these binaries in your [systemd unit files](../upgrading_from_source.md#configure-systemd-units)
+ or [init scripts](../upgrading_from_source.md#configure-sysv-init-script) by [following the documentation](../upgrading_from_source.md).
### Geo installations **(PREMIUM SELF)**
@@ -363,8 +364,8 @@ or [init scripts](../upgrading_from_source.md#configure-sysv-init-script) by [fo
We recommend moving your databases from Aurora to RDS for PostgreSQL before
upgrading. Refer to [Moving GitLab databases to a different PostgreSQL instance](../../administration/postgresql/moving.md).
- GitLab 14.4.0 includes a
-[background migration `PopulateTopicsTotalProjectsCountCache`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71033)
-that may remain stuck permanently in a **pending** state when the instance lacks records that match the migration's target.
+ [background migration `PopulateTopicsTotalProjectsCountCache`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71033)
+ that may remain stuck permanently in a **pending** state when the instance lacks records that match the migration's target.
To clean up this stuck job, run the following in the [GitLab Rails Console](../../administration/operations/rails_console.md):
@@ -804,7 +805,7 @@ Long running batched background database migrations:
Expected batched background migration for the given configuration to be marked as 'finished', but it is 'active':
```
- See how to [resolve this error](../background_migrations.md#database-migrations-failing-because-of-batched-background-migration-not-finished).
+ See how to [resolve this error](../background_migrations_troubleshooting.md#database-migrations-failing-because-of-batched-background-migration-not-finished).
Other issues:
diff --git a/doc/update/versions/gitlab_15_changes.md b/doc/update/versions/gitlab_15_changes.md
index df00ca1b46c..203d13a20e6 100644
--- a/doc/update/versions/gitlab_15_changes.md
+++ b/doc/update/versions/gitlab_15_changes.md
@@ -303,7 +303,7 @@ if you can't upgrade to 15.11.12 and later.
Mixlib::ShellOut::CommandTimeout: Command timed out after 3600s:
```
- A workaround exists to [complete the data change and the upgrade manually](../package/index.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s).
+ A workaround exists to [complete the data change and the upgrade manually](../package/package_troubleshooting.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s).
- The default Sidekiq `max_concurrency` has been changed to 20. This is now
consistent in our documentation and product defaults.
@@ -597,7 +597,7 @@ A [license caching issue](https://gitlab.com/gitlab-org/gitlab/-/issues/376706)
## 15.3.3
- In GitLab 15.3.3, [SAML Group Links](../../api/groups.md#saml-group-links) API `access_level` attribute type changed to `integer`. See
-[the API documentation](../../api/members.md).
+ [the API documentation](../../api/members.md).
- A [license caching issue](https://gitlab.com/gitlab-org/gitlab/-/issues/376706) prevents some premium features of GitLab from working correctly if you add a new license. Workarounds for this issue:
- Restart all Rails, Sidekiq and Gitaly nodes after applying a new license. This clears the relevant license caches and allows all premium features to operate correctly.
diff --git a/doc/update/versions/gitlab_16_changes.md b/doc/update/versions/gitlab_16_changes.md
index 57f613dd073..4948db7bd29 100644
--- a/doc/update/versions/gitlab_16_changes.md
+++ b/doc/update/versions/gitlab_16_changes.md
@@ -17,22 +17,55 @@ For more information about upgrading GitLab Helm Chart, see [the release notes f
## Issues to be aware of when upgrading from 15.11
- [PostgreSQL 12 is not supported starting from GitLab 16](../../update/deprecations.md#postgresql-12-deprecated). Upgrade PostgreSQL to at least version 13.6 before upgrading to GitLab 16.0 or later.
-- Some GitLab installations must upgrade to GitLab 16.0 before upgrading to any other version. For more information, see
- [Long-running user type data change](#long-running-user-type-data-change).
-- Other installations can skip 16.0, 16.1, and 16.2 as the first required stop on the upgrade path is 16.3. Review the notes for those intermediate
- versions.
- If your GitLab instance upgraded first to 15.11.0, 15.11.1, or 15.11.2 the database schema is incorrect.
- Recommended: perform the workaround before upgrading to 16.x.
- See [the details and workaround](#undefined-column-error-upgrading-to-162-or-later).
-- Linux package installations must change Gitaly and Praefect configuration structure before upgrading to GitLab 16.
+ Perform the [workaround](#undefined-column-error-upgrading-to-162-or-later) before upgrading to 16.x.
+- Most installations can skip 16.0, 16.1, and 16.2, as the first required stop on the upgrade path is 16.3.
+ In all cases, you should review the notes for those intermediate versions.
+
+ Some GitLab installations must stop at those intermediate versions depending on which features are used
+ and the size of the environment:
+
+ - 16.0.8: Instances with lots of records in the users table.
+ For more information, see [long-running user type data change](#long-running-user-type-data-change).
+ - [16.1.5](#1610): Instances that use the NPM package registry.
+ - [16.2.8](#1620): Instances with lots of pipeline variables (including historical pipelines).
+
+ If your instance is affected and you skip these stops:
+
+ - The upgrade can take hours to complete.
+ - The instance generates 500 errors until all the database changes are finished, after which
+ Puma and Sidekiq must restarted.
+ - For Linux package installations, a timeout occurs and a
+ [manual workaround to complete the migrations](../package/package_troubleshooting.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s)
+ is necessary.
+
+- GitLab 16.0 introduced changes around enforcing limits on project sizes. On self-managed, if you use
+ these limits, projects that have reached their limit causes error messages when pushing to unaffected Git
+ repositories in the same group. The errors often refer to exceeding a limit of zero bytes (`limit of 0 B`).
+
+ The pushes succeed, but the errors imply otherwise and might cause issues with automation.
+ [Read more in the issue](https://gitlab.com/gitlab-org/gitlab/-/issues/416646).
+ The [bug is fixed in GitLab 16.5 and later](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131122).
+
+### Linux package installations
+
+- Gitaly and Praefect configuration structure must be changed before upgrading to GitLab 16.
**To avoid data loss** reconfigure Praefect first, and as part of the new configuration, disable metadata verification.
Read more:
- [Praefect configuration structure change](#praefect-configuration-structure-change).
- [Gitaly configuration structure change](#gitaly-configuration-structure-change).
+- If you reconfigure Gitaly to store Git data in a location other than `/var/opt/gitlab/git-data/repositories`,
+ packaged GitLab 16.0 and later does not automatically create the directory structure.
+ [Read the issue for more details and the workaround](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/8320).
+
## 16.7.0
+- GitLab 16.7 is a required upgrade stop. This ensures that all database changes introduced
+ in GitLab 16.7 and earlier have been implemented on all self-managed instances. Dependent changes can then be released
+ in GitLab 16.8 and later. [Issue 429611](https://gitlab.com/gitlab-org/gitlab/-/issues/429611) provides more details.
+
### Linux package installations
Specific information applies to Linux package installations:
@@ -41,15 +74,45 @@ Specific information applies to Linux package installations:
During a package upgrade, the database isn't upgraded to PostgreSQL 14.
If you want to upgrade to PostgreSQL 14, [you must do it manually](https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server).
- PostgreSQL 14 isn't supported on Geo deployments and is [planned](https://gitlab.com/groups/gitlab-org/-/epics/9065)
- for future releases.
-
If you want to use PostgreSQL 13, you must set `postgresql['version'] = 13` in `/etc/gitlab/gitlab.rb`.
+### Geo installations
+
+- PostgreSQL version 14 is the default for fresh installations of GitLab 16.7 and later. However, due to an [issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/7768#note_1652076255), existing Geo secondary sites cannot be upgraded to PostgreSQL version 14. All Geo sites must run the same version of PostgreSQL. If you are adding a new Geo secondary site based on GitLab 16.7 you must take one of the following actions based on your configuration:
+
+ - You are adding your first Geo secondary site: [Upgrade the Primary site to PostgreSQL 14](https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server) before setting up the new Geo secondary site. No special action is required if your primary site is already running PostgreSQL 14.
+ - You are adding a new Geo secondary site to a deployment that already has one or more Geo secondaries:
+ - All sites are running PostgreSQL 13: Install the new Geo secondary site with [pinned PostgreSQL version 13](https://docs.gitlab.com/omnibus/settings/database.html#pin-the-packaged-postgresql-version-fresh-installs-only).
+ - All sites are running PostgreSQL 14: No special action is required.
+
+- You might experience verification failures on a subset of projects due to checksum mismatch between the primary site and the secondary site. The details are tracked in this [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/427493). There is no risk of data loss as the data is being correctly replicated to the secondary sites. Users cloning impacted projects from a Geo secondary site will always be redirected to the primary site. There are no known workarounds at this time. We are actively working on a fix.
+
+ **Affected releases**:
+
+ | Affected minor releases | Affected patch releases | Fixed in |
+ | ----------------------- | ----------------------- | -------- |
+ | 16.4 | All | None |
+ | 16.5 | All | None |
+ | 16.6 | All | None |
+ | 16.7 | All | None |
+
## 16.6.0
- Old [CI Environment destroy jobs may be spawned](https://gitlab.com/gitlab-org/gitlab/-/issues/433264#) after upgrading to GitLab 16.6.
+### Geo installations
+
+- You might experience verification failures on a subset of projects due to checksum mismatch between the primary site and the secondary site. The details are tracked in this [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/427493). There is no risk of data loss as the data is being correctly replicated to the secondary sites. Users cloning impacted projects from a Geo secondary site will always be redirected to the primary site. There are no known workarounds at this time. We are actively working on a fix.
+
+ **Affected releases**:
+
+ | Affected minor releases | Affected patch releases | Fixed in |
+ | ----------------------- | ----------------------- | -------- |
+ | 16.4 | All | None |
+ | 16.5 | All | None |
+ | 16.6 | All | None |
+ | 16.7 | All | None |
+
## 16.5.0
- Git 2.42.0 and later is required by Gitaly. For self-compiled installations, you should use the [Git version provided by Gitaly](../../install/installation.md#git).
@@ -137,6 +200,17 @@ Specific information applies to installations using Geo:
| 16.4 | All | None |
| 16.5 | 16.5.0 - 16.5.1 | 16.5.2 |
+- You might experience verification failures on a subset of projects due to checksum mismatch between the primary site and the secondary site. The details are tracked in this [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/427493). There is no risk of data loss as the data is being correctly replicated to the secondary sites. Users cloning impacted projects from a Geo secondary site will always be redirected to the primary site. There are no known workarounds at this time. We are actively working on a fix.
+
+ **Affected releases**:
+
+ | Affected minor releases | Affected patch releases | Fixed in |
+ | ----------------------- | ----------------------- | -------- |
+ | 16.4 | All | None |
+ | 16.5 | All | None |
+ | 16.6 | All | None |
+ | 16.7 | All | None |
+
## 16.4.0
- Updating a group path [received a bug fix](https://gitlab.com/gitlab-org/gitlab/-/issues/419289) that uses a database index introduced in 16.3.
@@ -208,8 +282,8 @@ Specific information applies to installations using Geo:
### Self-compiled installations
- A new method of configuring paths for the GitLab secret and custom hooks is preferred in GitLab 16.4 and later:
- 1. Update your configuration `[gitlab] secret_file` to [configure the path](../../administration/gitaly/reference.md#gitlab) to the GitLab secret token.
- 1. If you have custom hooks, update your configuration `[hooks] custom_hooks_dir` to [configure the path](../../administration/gitaly/reference.md#custom-hooks) to
+ 1. Update your configuration `[gitlab] secret_file` to [configure the path](../../administration/gitaly/reference.md) to the GitLab secret token.
+ 1. If you have custom hooks, update your configuration `[hooks] custom_hooks_dir` to [configure the path](../../administration/gitaly/reference.md) to
server-side custom hooks.
1. Remove the `[gitlab-shell] dir` configuration.
@@ -276,6 +350,17 @@ Specific information applies to installations using Geo:
| 16.4 | All | None |
| 16.5 | 16.5.0 - 16.5.1 | 16.5.2 |
+- You might experience verification failures on a subset of projects due to checksum mismatch between the primary site and the secondary site. The details are tracked in this [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/427493). There is no risk of data loss as the data is being correctly replicated to the secondary sites. Users cloning impacted projects from a Geo secondary site will always be redirected to the primary site. There are no known workarounds at this time. We are actively working on a fix.
+
+ **Affected releases**:
+
+ | Affected minor releases | Affected patch releases | Fixed in |
+ | ----------------------- | ----------------------- | -------- |
+ | 16.4 | All | None |
+ | 16.5 | All | None |
+ | 16.6 | All | None |
+ | 16.7 | All | None |
+
## 16.3.0
- **Update to GitLab 16.3.5 or later**. This avoids [issue 425971](https://gitlab.com/gitlab-org/gitlab/-/issues/425971) that causes an excessive use of database disk space for GitLab 16.3.3 and 16.3.4.
@@ -979,7 +1064,7 @@ FATAL: Mixlib::ShellOut::CommandTimeout: rails_migration[gitlab-rails]
Mixlib::ShellOut::CommandTimeout: Command timed out after 3600s:
```
-[There is a fix-forward workaround for this issue](../package/index.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s).
+[There is a fix-forward workaround for this issue](../package/package_troubleshooting.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s).
While the workaround is completing the database changes, GitLab is likely to be in
an unusable state, generating `500` errors. The errors are caused by Sidekiq and Puma running
diff --git a/doc/update/zero_downtime.md b/doc/update/zero_downtime.md
index 6ecd23a0dc8..c40c7a0524e 100644
--- a/doc/update/zero_downtime.md
+++ b/doc/update/zero_downtime.md
@@ -343,7 +343,7 @@ version), and then upgrade the original primary. For this, we must know
the address of the current Redis primary.
- If your application node is running GitLab 12.7.0 or later, you can use the
-following command to get address of current Redis primary
+ following command to get address of current Redis primary
```shell
sudo gitlab-ctl get-redis-master
@@ -514,27 +514,27 @@ the update on the **primary** node:
- Run post-deployment database migrations
- ```shell
- sudo gitlab-rake db:migrate
- ```
+ ```shell
+ sudo gitlab-rake db:migrate
+ ```
- After the update is finalized on the primary node, hot reload `puma` and
-restart `sidekiq` and `geo-logcursor` services on **all primary and secondary**
-nodes:
+ restart `sidekiq` and `geo-logcursor` services on **all primary and secondary**
+ nodes:
- ```shell
- sudo gitlab-ctl hup puma
- sudo gitlab-ctl restart sidekiq
- sudo gitlab-ctl restart geo-logcursor
- ```
+ ```shell
+ sudo gitlab-ctl hup puma
+ sudo gitlab-ctl restart sidekiq
+ sudo gitlab-ctl restart geo-logcursor
+ ```
After updating all nodes (both **primary** and all **secondaries**), check their status:
- Verify Geo configuration and dependencies
- ```shell
- sudo gitlab-rake gitlab:geo:check
- ```
+ ```shell
+ sudo gitlab-rake gitlab:geo:check
+ ```
If you do not want to run zero downtime upgrades in the future, make
sure you remove `/etc/gitlab/skip-auto-reconfigure` and revert
diff --git a/doc/user/ai_features.md b/doc/user/ai_features.md
index 71b5617a4a9..931876682e0 100644
--- a/doc/user/ai_features.md
+++ b/doc/user/ai_features.md
@@ -17,7 +17,7 @@ GitLab is creating AI-assisted features across our DevSecOps platform. These fea
| Helps you discover or recall Git commands when and where you need them. | [Git suggestions](https://gitlab.com/gitlab-org/gitlab/-/issues/409636) | **(ULTIMATE SAAS EXPERIMENT)** |
| Assists with quickly getting everyone up to speed on lengthy conversations to help ensure you are all on the same page. | [Discussion summary](#summarize-issue-discussions-with-discussion-summary) | **(ULTIMATE SAAS EXPERIMENT)** |
| Generates issue descriptions. | [Issue description generation](#summarize-an-issue-with-issue-description-generation) | **(ULTIMATE SAAS EXPERIMENT)** |
-| Helps you write code more efficiently by viewing code suggestions as you type. <br><br><i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [Watch overview](https://www.youtube.com/watch?v=hCAyCTacdAQ) | [Code Suggestions](project/repository/code_suggestions/index.md) | For SaaS: **(FREE BETA)**<br><br> For self-managed: **(ULTIMATE BETA)** |
+| Helps you write code more efficiently by viewing code suggestions as you type. <br><br><i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [Watch overview](https://www.youtube.com/watch?v=hCAyCTacdAQ) | [Code Suggestions](project/repository/code_suggestions/index.md) | For SaaS: **(FREE)**<br><br> For self-managed: **(PREMIUM)** |
| Automates repetitive tasks and helps catch bugs early. | [Test generation](project/merge_requests/ai_in_merge_requests.md#generate-suggested-tests-in-merge-requests) | **(ULTIMATE SAAS EXPERIMENT)** |
| Generates a description for the merge request based on the contents of the template. | [Merge request template population](project/merge_requests/ai_in_merge_requests.md#fill-in-merge-request-templates) | **(ULTIMATE SAAS EXPERIMENT)** |
| Assists in creating faster and higher-quality reviews by automatically suggesting reviewers for your merge request. <br><br><i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [Watch overview](https://www.youtube.com/watch?v=ivwZQgh4Rxw) | [Suggested Reviewers](project/merge_requests/reviews/index.md#gitlab-duo-suggested-reviewers) | **(ULTIMATE SAAS)** |
@@ -26,7 +26,7 @@ GitLab is creating AI-assisted features across our DevSecOps platform. These fea
| Helps you remediate vulnerabilities more efficiently, boost your skills, and write more secure code. <br><br><i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [Watch overview](https://www.youtube.com/watch?v=6sDf73QOav8) | [Vulnerability summary](application_security/vulnerabilities/index.md#explaining-a-vulnerability) | **(ULTIMATE SAAS BETA)** |
| Generates a merge request containing the changes required to mitigate a vulnerability. | [Vulnerability resolution](application_security/vulnerabilities/index.md#explaining-a-vulnerability) | **(ULTIMATE SAAS EXPERIMENT)** |
| Helps you understand code by explaining it in English language. <br><br><i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [Watch overview](https://www.youtube.com/watch?v=1izKaLmmaCA) | [Code explanation](#explain-code-in-the-web-ui-with-code-explanation) | **(ULTIMATE SAAS EXPERIMENT)** |
-| Processes and generates text and code in a conversational manner. Helps you quickly identify useful information in large volumes of text in issues, epics, code, and GitLab documentation. | [GitLab Duo Chat](gitlab_duo_chat.md) | **(ULTIMATE SAAS BETA)** |
+| Processes and generates text and code in a conversational manner. Helps you quickly identify useful information in large volumes of text in issues, epics, code, and GitLab documentation. | [GitLab Duo Chat](gitlab_duo_chat.md) | **(ULTIMATE BETA)** |
| Assists you in determining the root cause for a pipeline failure and failed CI/CD build. | [Root cause analysis](#root-cause-analysis) | **(ULTIMATE SAAS EXPERIMENT)** |
| Assists you with predicting productivity metrics and identifying anomalies across your software development lifecycle. | [Value stream forecasting](#forecast-deployment-frequency-with-value-stream-forecasting) | **(ULTIMATE ALL EXPERIMENT)** |
diff --git a/doc/user/analytics/analytics_dashboards.md b/doc/user/analytics/analytics_dashboards.md
index 0699be4e0ad..e647dcf170a 100644
--- a/doc/user/analytics/analytics_dashboards.md
+++ b/doc/user/analytics/analytics_dashboards.md
@@ -55,7 +55,7 @@ With custom dashboards, you can design and create visualizations for the metrics
You can create custom dashboards with the dashboard designer.
- Each project can have an unlimited number of dashboards.
-The only limitation might be the [repository size limit](../project/repository/reducing_the_repo_size_using_git.md#storage-limits).
+ The only limitation might be the [repository size limit](../project/repository/reducing_the_repo_size_using_git.md#storage-limits).
- Each dashboard can reference one or more [visualizations](#define-a-chart-visualization).
- Visualizations are shared across dashboards.
@@ -122,12 +122,11 @@ To view the Value Streams Dashboard as an analytics dashboard for a project:
## View group dashboards
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/390542) in GitLab 16.2 [with a flag](../../administration/feature_flags.md) named `group_analytics_dashboards`. Disabled by default.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/390542) in GitLab 16.2 [with a flag](../../administration/feature_flags.md) named `group_analytics_dashboards`. Disabled by default.
+> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/416970) in GitLab 16.8.
FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available per project or for your entire instance, an administrator can [enable the feature flag](../../administration/feature_flags.md) named `group_analytics_dashboards`.
-On GitLab.com, this feature is not available.
-This feature is not ready for production use.
+On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../../administration/feature_flags.md) named `group_analytics_dashboards`. On GitLab.com, this feature is available.
Prerequisites:
@@ -226,7 +225,7 @@ You can define different charts, and add visualization options to some of them:
- Line chart, with the options listed in the [ECharts documentation](https://echarts.apache.org/en/option.html).
- Column chart, with the options listed in the [ECharts documentation](https://echarts.apache.org/en/option.html).
-- Data table, with the only option to render `links` (array of objects, each with `text` and `href` properties to specify the dimensions to be used in links). See [example](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/validators/json_schemas/analytics_visualization.json?ref_type=heads#L112)).
+- Data table.
- Single stat, with the only option to set `decimalPlaces` (number, default value is 0).
To define a chart for your dashboards:
@@ -304,5 +303,5 @@ If a dashboard panel displays a message that the visualization configuration is
If a dashboard panel displays an error message:
- Check your [Cube query](../product_analytics/index.md#product-analytics-dashboards) and [visualization](../analytics/analytics_dashboards.md#define-a-chart-visualization)
-configurations, and make sure they are set up correctly.
+ configurations, and make sure they are set up correctly.
- For [product analytics](../product_analytics/index.md), also check that your visualization's Cube query is valid.
diff --git a/doc/user/analytics/contributor_statistics.md b/doc/user/analytics/contributor_statistics.md
deleted file mode 100644
index b6f195e22ad..00000000000
--- a/doc/user/analytics/contributor_statistics.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'contributor_analytics.md'
-remove_date: '2023-03-06'
----
-
-This document was moved to [another location](contributor_analytics.md).
-
-<!-- This redirect file can be deleted after <YYYY-MM-DD>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/analytics/dora_metrics.md b/doc/user/analytics/dora_metrics.md
index 53a25acbca5..372ea0a5807 100644
--- a/doc/user/analytics/dora_metrics.md
+++ b/doc/user/analytics/dora_metrics.md
@@ -121,7 +121,7 @@ GitLab calculates this as the number of incidents divided by the number of deplo
- [GitLab incidents](../../operations/incident_management/incidents.md) are tracked.
- All incidents are related to a production environment.
- Incidents and deployments have a strictly one-to-one relationship. An incident is related to only one production deployment, and any production deployment is related to no
-more than one incident.
+ more than one incident.
### How to improve change failure rate
diff --git a/doc/user/analytics/img/enhanced_issue_analytics_v16_7.png b/doc/user/analytics/img/enhanced_issue_analytics_v16_7.png
index 519e56acaa5..b253fe336ee 100644
--- a/doc/user/analytics/img/enhanced_issue_analytics_v16_7.png
+++ b/doc/user/analytics/img/enhanced_issue_analytics_v16_7.png
Binary files differ
diff --git a/doc/user/analytics/index.md b/doc/user/analytics/index.md
index d58426bd76b..eef34214c23 100644
--- a/doc/user/analytics/index.md
+++ b/doc/user/analytics/index.md
@@ -1,6 +1,7 @@
---
stage: Plan
group: Optimize
+description: Instance, group, and project analytics.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/user/analytics/issue_analytics.md b/doc/user/analytics/issue_analytics.md
index b8aa23a0af2..089a5636a52 100644
--- a/doc/user/analytics/issue_analytics.md
+++ b/doc/user/analytics/issue_analytics.md
@@ -1,63 +1,11 @@
---
-stage: Plan
-group: Optimize
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+redirect_to: '../group/issues_analytics/index.md'
+remove_date: '2024-04-05'
---
-# Issue analytics for projects **(PREMIUM ALL)**
+This document was moved to [another location](../group/issues_analytics/index.md).
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/196561) in GitLab 12.9.
-
-Issue analytics is a bar graph which illustrates the number of issues created each month.
-The default time span is 13 months, which includes the current month, and the 12 months
-prior.
-
-To access the chart:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Analyze > Issue analytics**.
-
-You can also access the chart from the [Value Streams Dashboard](value_streams_dashboard.md#dashboard-metrics-and-drill-down-reports) through the **New issues** drill-down report.
-
-Hover over each bar to see the total number of issues.
-
-To narrow the scope of issues included in the graph, enter your criteria in the
-**Search or filter results...** field. Criteria from the following list can be typed in or selected from a menu:
-
-- Author
-- Assignee
-- Milestone
-- Label
-- My reaction
-- Weight
-
-You can change the total number of months displayed by setting a URL parameter.
-For example, `https://gitlab.com/groups/gitlab-org/-/issues_analytics?months_back=15`
-shows a total of 15 months for the chart in the GitLab.org group.
-
-![Issues created per month](img/issues_created_per_month_v14_8.png)
-
-## Enhanced issue analytics **(ULTIMATE ALL)**
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/233905/) in GitLab 16.4 [with a flag](../../administration/feature_flags.md) named `issues_completed_analytics_feature_flag`. Disabled by default.
-
-FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available, an administrator can
-[enable the feature flag](../../administration/feature_flags.md) named `issues_completed_analytics_feature_flag`. On GitLab.com, this feature is not
-available. This feature is not ready for production use.
-
-Enhanced issue analytics display the additional metric "Issues closed", which represents the total number of resolved issues in your project over a selected period.
-You can use this metric to improve the overall turn-around time and value delivered to your customers.
-
-![Issues opened and closed per month](img/enhanced_issue_analytics_v16_7.png)
-
-## Drill into the information
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/196547) in GitLab 13.1.
-
-You can examine details of individual issues by browsing the table
-located below the chart.
-
-The chart displays the top 100 issues based on the global page filters.
-
-![Issues table](img/issues_table_v13_1.png)
+<!-- This redirect file can be deleted after <2024-04-05>. -->
+<!-- Redirects that point to other docs in the same project expire in three months. -->
+<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/analytics/merge_request_analytics.md b/doc/user/analytics/merge_request_analytics.md
index 5b5b1ec002d..0d2c375f7ae 100644
--- a/doc/user/analytics/merge_request_analytics.md
+++ b/doc/user/analytics/merge_request_analytics.md
@@ -46,8 +46,8 @@ To view the number of merge requests merged during a specific date range:
1. Select a parameter.
1. Select a value or enter text to refine the results.
1. To adjust the date range:
- - In the **From** field, select a start date.
- - In the **To** field, select an end date.
+ - In the **From** field, select a start date.
+ - In the **To** field, select an end date.
The **Throughput** chart shows issues closed or merge requests merged (not closed) over a period of
time.
@@ -75,4 +75,4 @@ To view **Mean time to merge**:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Analyze > Merge request analytics**. The **Mean time to merge** number
-is displayed on the dashboard.
+ is displayed on the dashboard.
diff --git a/doc/user/analytics/repository_analytics.md b/doc/user/analytics/repository_analytics.md
index 93171dc3136..8bc163f6f3f 100644
--- a/doc/user/analytics/repository_analytics.md
+++ b/doc/user/analytics/repository_analytics.md
@@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
Use repository analytics to view information about a project's Git repository:
-- Programming languages used in the repository.
+- Programming languages used in the repository's default branch.
- Code coverage history from last 3 months ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/33743) in GitLab 13.1).
- Commit statistics (last month).
- Commits per day of month.
diff --git a/doc/user/analytics/value_streams_dashboard.md b/doc/user/analytics/value_streams_dashboard.md
index a50eab42a2d..c093fdf8cb3 100644
--- a/doc/user/analytics/value_streams_dashboard.md
+++ b/doc/user/analytics/value_streams_dashboard.md
@@ -16,7 +16,7 @@ For more information, see also the [Value Stream Management category direction p
The Value Streams Dashboard is a customizable dashboard you can use to identify trends, patterns, and opportunities for digital transformation improvements.
The centralized UI in Value Streams Dashboard acts as the single source of truth (SSOT), where all stakeholders can access and view the same set of metrics that are relevant to the organization.
-The Value Streams Dashboard includes the following metrics:
+The Value Streams Dashboard includes two panels (DevSecOps metrics comparison and DORA Performers score) that visualize the following metrics:
- [DORA metrics](dora_metrics.md)
- [Value Stream Analytics (VSA) - flow metrics](../group/value_stream_analytics/index.md)
@@ -29,9 +29,11 @@ With the Value Streams Dashboard, you can:
- Understand security exposure.
- Drill down into individual projects or metrics to take actions for improvement.
-The Value Streams Dashboard has a default configuration, but you can also [customize the dashboard panels](#customize-the-dashboard-panels).
+## Value Streams Dashboard panels
-## DevSecOps metrics comparison panel
+The Value Streams Dashboard panels has a default configuration, but you can also [customize the dashboard panels](#customize-the-dashboard-panels).
+
+### DevSecOps metrics comparison panel
The DevSecOps metrics comparison displays DORA4, vulnerability, and flow metrics for a group or project in the
month-to-date, last month, the month before, and the past 180 days.
@@ -46,7 +48,7 @@ that are the largest value contributors, overperforming, or underperforming.
You can also drill down the metrics for further analysis.
When you hover over a metric, a tooltip displays an explanation of the metric and a link to the related documentation page.
-## DORA Performers score panel
+### DORA Performers score panel
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/386843) in GitLab 16.2 [with a flag](../../administration/feature_flags.md) named `dora_performers_score_panel`. Disabled by default.
@@ -73,7 +75,7 @@ For example, if a project has a high score for Deployment Frequency (Velocity),
These scoring are based on Google's classifications in the [DORA 2022 Accelerate State of DevOps Report](https://cloud.google.com/blog/products/devops-sre/dora-2022-accelerate-state-of-devops-report-now-out).
-### Filter by project topics
+#### Filter the DORA Performers score by project topics
When used in combination with a [YAML configuration](#using-yaml-configuration), you can filter the projects shown based on their assigned [topics](../project/settings/project_features_permissions.md#project-topics).
@@ -90,17 +92,9 @@ If multiple topics are provided, all topics will need to match for the project t
## Enable or disable overview background aggregation **(ULTIMATE SELF)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120610) in GitLab 16.1 [with a flag](../../administration/feature_flags.md) named `modify_value_stream_dashboard_settings`. Disabled by default.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120610) in GitLab 16.1 [with a flag](../../administration/feature_flags.md) named `value_stream_dashboard_on_off_setting`. Disabled by default.
> - [Enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130704) in GitLab 16.4.
-
-FLAG:
-On self-managed GitLab, by default this feature is available. To hide the feature per project or for your entire instance, an administrator can [disable the feature flag](../../administration/feature_flags.md) named `modify_value_stream_dashboard_settings`.
-On GitLab.com, this feature is not available.
-This feature is not ready for production use.
-
-Prerequisites:
-
-- You must have administrator access to the instance.
+> - [Feature flag `value_stream_dashboard_on_off_setting` removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134619) in GitLab 16.6.
To enable or disable the overview count aggregation for the Value Streams Dashboard:
@@ -221,9 +215,19 @@ panels:
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview of editing label filters in the configuration file, see [GitLab Value Streams Dashboard - Label filters demo](https://www.youtube.com/watch?v=4qDAHCxCfik).
+### Filter the DevSecOps metrics comparison panel by labels
+
Label filters are appended as query parameters to the URL of the drill-down report of each eligible metric and automatically applied.
If the comparison panel from the configuration file is enabled with `filter_labels`, the drill-down links inherit the labels from the panel filter.
+```yaml
+ - data:
+ namespace: group/another-project
+ filter_labels:
+ - in_development
+ - in_review
+```
+
## Dashboard metrics and drill-down reports
| Metric | Description | Drill-down report | Documentation page | ID |
diff --git a/doc/user/application_security/api_fuzzing/create_har_files.md b/doc/user/application_security/api_fuzzing/create_har_files.md
index 9c16c70c78f..01515a90653 100644
--- a/doc/user/application_security/api_fuzzing/create_har_files.md
+++ b/doc/user/application_security/api_fuzzing/create_har_files.md
@@ -105,7 +105,7 @@ responses in HAR format.
#### Create a HAR file with Fiddler
1. Go to the [Fiddler home page](https://www.telerik.com/fiddler) and sign in. If you don't already
-have an account, first create an account.
+ have an account, first create an account.
1. Browse pages that call an API. Fiddler automatically captures the requests.
1. Select one or more requests, then from the context menu, select **Export > Selected Sessions**.
1. In the **Choose Format** dropdown list select **HTTPArchive v1.2**.
diff --git a/doc/user/application_security/api_fuzzing/index.md b/doc/user/application_security/api_fuzzing/index.md
index 735b2356780..cab8c926def 100644
--- a/doc/user/application_security/api_fuzzing/index.md
+++ b/doc/user/application_security/api_fuzzing/index.md
@@ -498,15 +498,15 @@ The following is a summary of the variable scopes supported by the Postman Clien
- **Global Environment (Global) scope** is a special pre-defined environment that is available throughout a workspace. We can also refer to the _global environment_ scope as the _global_ scope. The Postman Client allows exporting the global environment into a JSON file, which can be used with API Fuzzing.
- **Environment scope** is a named group of variables created by a user in the Postman Client.
-The Postman Client supports a single active environment along with the global environment. The variables defined in an active user-created environment take precedence over variables defined in the global environment. The Postman Client allows exporting your environment into a JSON file, which can be used with API Fuzzing.
+ The Postman Client supports a single active environment along with the global environment. The variables defined in an active user-created environment take precedence over variables defined in the global environment. The Postman Client allows exporting your environment into a JSON file, which can be used with API Fuzzing.
- **Collection scope** is a group of variables declared in a given collection. The collection variables are available to the collection where they have been declared and the nested requests or collections. Variables defined in the collection scope take precedence over the _global environment_ scope and also the _environment_ scope.
-The Postman Client can export one or more collections into a JSON file, this JSON file contains selected collections, requests, and collection variables.
+ The Postman Client can export one or more collections into a JSON file, this JSON file contains selected collections, requests, and collection variables.
- **API Fuzzing Scope** is a new scope added by API Fuzzing to allow users to provide extra variables, or override variables defined in other supported scopes. This scope is not supported by Postman. The _API Fuzzing Scope_ variables are provided using a [custom JSON file format](#api-fuzzing-scope-custom-json-file-format).
- Override values defined in the environment or collection
- Defining variables from scripts
- Define a single row of data from the unsupported _data scope_
- **Data scope** is a group of variables in which their name and values come from JSON or CSV files. A Postman collection runner like [Newman](https://learning.postman.com/docs/running-collections/using-newman-cli/command-line-integration-with-newman/) or [Postman Collection Runner](https://learning.postman.com/docs/running-collections/intro-to-collection-runs/) executes the requests in a collection as many times as entries have the JSON or CSV file. A good use case for these variables is to automate tests using scripts in Postman.
-API Fuzzing does **not** support reading data from a CSV or JSON file.
+ API Fuzzing does **not** support reading data from a CSV or JSON file.
- **Local scope** are variables that are defined in Postman scripts. API Fuzzing does **not** support Postman scripts and by extension, variables defined in scripts. You can still provide values for the script-defined variables by defining them in one of the supported scopes, or our custom JSON format.
Not all scopes are supported by API Fuzzing and variables defined in scripts are not supported. The following table is sorted by broadest scope to narrowest scope.
diff --git a/doc/user/application_security/configuration/index.md b/doc/user/application_security/configuration/index.md
index 008b5b54cca..c367d647c6c 100644
--- a/doc/user/application_security/configuration/index.md
+++ b/doc/user/application_security/configuration/index.md
@@ -50,7 +50,7 @@ You can configure the following security controls:
- [Dynamic Application Security Testing](../dast/index.md) (DAST)
- Select **Enable DAST** to configure DAST for the current project.
- Select **Manage scans** to manage the saved DAST scans, site profiles, and scanner profiles.
- For more details, read [DAST on-demand scans](../dast/proxy-based.md#on-demand-scans).
+ For more details, read [DAST on-demand scans](../dast/on-demand_scan.md).
- [Dependency Scanning](../dependency_scanning/index.md)
- Select **Configure with a merge request** to create a merge request with the changes required to
enable Dependency Scanning. For more information, see [Use a preconfigured merge request](../dependency_scanning/index.md#use-a-preconfigured-merge-request).
diff --git a/doc/user/application_security/container_scanning/index.md b/doc/user/application_security/container_scanning/index.md
index 8af262e564b..5be9e169078 100644
--- a/doc/user/application_security/container_scanning/index.md
+++ b/doc/user/application_security/container_scanning/index.md
@@ -17,7 +17,7 @@ vulnerabilities and displays them in a merge request, you can use GitLab to audi
apps.
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
-For an overview, see [Container Scanning](https://www.youtube.com/watch?v=C0jn2eN5MAs).
+ For an overview, see [Container Scanning](https://www.youtube.com/watch?v=C0jn2eN5MAs).
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i> For a video walkthrough, see [How to set up Container Scanning using GitLab](https://youtu.be/h__mcXpil_4?si=w_BVG68qnkL9x4l1).
Container Scanning is often considered part of Software Composition Analysis (SCA). SCA can contain
@@ -128,10 +128,6 @@ Setting `CS_DEFAULT_BRANCH_IMAGE` avoids duplicate vulnerability findings when a
The value of `CS_DEFAULT_BRANCH_IMAGE` indicates the name of the scanned image as it appears on the default branch.
For more details on how this deduplication is achieved, see [Setting the default branch image](#setting-the-default-branch-image).
-## Running jobs in merge request pipelines
-
-See [Use security scanning tools with merge request pipelines](../index.md#use-security-scanning-tools-with-merge-request-pipelines)
-
### Customizing the container scanning settings
There may be cases where you want to customize how GitLab scans your containers. For example, you
@@ -243,6 +239,10 @@ if [Dependency Scanning](../dependency_scanning/index.md)
is enabled for your project. This happens because GitLab can't automatically deduplicate findings
across different types of scanning tools. To understand which types of dependencies are likely to be duplicated, see [Dependency Scanning compared to Container Scanning](../comparison_dependency_and_container_scanning.md).
+#### Running jobs in merge request pipelines
+
+See [Use security scanning tools with merge request pipelines](../index.md#use-security-scanning-tools-with-merge-request-pipelines).
+
#### Available CI/CD variables
You can [configure](#customizing-the-container-scanning-settings) analyzers by using the following CI/CD variables.
@@ -263,7 +263,7 @@ including a large number of false positives.
| `CS_DISABLE_LANGUAGE_VULNERABILITY_SCAN` | `"true"` | Disable scanning for language-specific packages installed in the scanned image. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345434) in GitLab 14.6. | All |
| `CS_DOCKER_INSECURE` | `"false"` | Allow access to secure Docker registries using HTTPS without validating the certificates. | All |
| `CS_DOCKERFILE_PATH` | `Dockerfile` | The path to the `Dockerfile` to use for generating remediations. By default, the scanner looks for a file named `Dockerfile` in the root directory of the project. You should configure this variable only if your `Dockerfile` is in a non-standard location, such as a subdirectory. See [Solutions for vulnerabilities](#solutions-for-vulnerabilities-auto-remediation) for more details. | All |
-| `CS_IGNORE_STATUSES` | `""` | Force the analyzer to ignore vulnerability findings with specified statuses in a comma-delimited list. For `trivy`, the following values are allowed: `unknown,not_affected,affected,fixed,under_investigation,will_not_fix,fix_deferred,end_of_life`. For `grype`, the following values are allowed: `fixed,not-fixed,unknown,wont-fix` | All |
+| `CS_IGNORE_STATUSES`<sup><b><a href="#notes-regarding-cs-ignore-statuses">1</a></b></sup> | `""` | Force the analyzer to ignore vulnerability findings with specified statuses in a comma-delimited list. For `trivy`, the following values are allowed: `unknown,not_affected,affected,fixed,under_investigation,will_not_fix,fix_deferred,end_of_life`. For `grype`, the following values are allowed: `fixed,not-fixed,unknown,wont-fix` | All |
| `CS_IGNORE_UNFIXED` | `"false"` | Ignore vulnerabilities that are not fixed. | All |
| `CS_IMAGE` | `$CI_APPLICATION_REPOSITORY:$CI_APPLICATION_TAG` | The Docker image to be scanned. If set, this variable overrides the `$CI_APPLICATION_REPOSITORY` and `$CI_APPLICATION_TAG` variables. | All |
| `CS_IMAGE_SUFFIX` | `""` | Suffix added to `CS_ANALYZER_IMAGE`. If set to `-fips`, `FIPS-enabled` image is used for scan. See [FIPS-enabled images](#fips-enabled-images) for more details. [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/7630) in GitLab 14.10. | All |
@@ -275,6 +275,15 @@ including a large number of false positives.
| `CS_TRIVY_JAVA_DB` | `"ghcr.io/aquasecurity/trivy-java-db"` | Specify an alternate location for the [trivy-java-db](https://github.com/aquasecurity/trivy-java-db) vulnerability database. | Trivy |
| `SECURE_LOG_LEVEL` | `info` | Set the minimum logging level. Messages of this logging level or higher are output. From highest to lowest severity, the logging levels are: `fatal`, `error`, `warn`, `info`, `debug`. | All |
+<ol>
+ <li>
+ <a id="notes-regarding-cs-ignore-statuses"></a>
+ <p>
+ Fix status information is highly dependent on accurate fix availability data from the software vendor and container image operating system package metadata. It is also subject to interpretation by individual container scanners. In cases where a container scanner misreports the availability of a fixed package for a vulnerability, using `CS_IGNORE_STATUSES` can lead to false positive or false negative filtering of findings when this setting is enabled.
+ </p>
+ </li>
+</ol>
+
### Supported distributions
Support depends on which scanner is used:
@@ -370,6 +379,9 @@ The following options are available:
| [Grype](https://github.com/anchore/grype) | `registry.gitlab.com/security-products/container-scanning/grype:6` |
| Trivy | `registry.gitlab.com/security-products/container-scanning/trivy:6` |
+WARNING:
+Do not use the `:latest` tag when selecting the scanner image.
+
### Setting the default branch image
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/338877) in GitLab 14.5.
@@ -766,8 +778,7 @@ The images use data from upstream advisory databases depending on which scanner
In addition to the sources provided by these scanners, GitLab maintains the following vulnerability databases:
-- The proprietary
-[GitLab Advisory Database](https://gitlab.com/gitlab-org/security-products/gemnasium-db).
+- The proprietary [GitLab Advisory Database](https://gitlab.com/gitlab-org/security-products/gemnasium-db).
- The open source [GitLab Advisory Database (Open Source Edition)](https://gitlab.com/gitlab-org/advisories-community).
In the GitLab Ultimate tier, the data from the [GitLab Advisory Database](https://gitlab.com/gitlab-org/security-products/gemnasium-db) is merged in to augment the data from the external sources. In the GitLab Premium and Free tiers, the data from the [GitLab Advisory Database (Open Source Edition)](https://gitlab.com/gitlab-org/advisories-community) is merged in to augment the data from the external sources. This augmentation currently only applies to the analyzer images for the Trivy scanner.
diff --git a/doc/user/application_security/continuous_vulnerability_scanning/index.md b/doc/user/application_security/continuous_vulnerability_scanning/index.md
index 4d6d48012ae..7d083ea1846 100644
--- a/doc/user/application_security/continuous_vulnerability_scanning/index.md
+++ b/doc/user/application_security/continuous_vulnerability_scanning/index.md
@@ -10,7 +10,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/427424) in GitLab 16.7 with an additional feature flag named `global_dependency_scanning_on_advisory_ingestion`. Enabled by default.
FLAG:
-On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flags](../../feature_flags.md) named `dependency_scanning_on_advisory_ingestion` and `package_metadata_advisory_sync`.
+On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flags](../../feature_flags.md) named `dependency_scanning_on_advisory_ingestion`.
On GitLab.com, this feature is available.
Continuous Vulnerability Scanning detects new vulnerabilities outside a pipeline.
diff --git a/doc/user/application_security/dast/checks/78.1.md b/doc/user/application_security/dast/checks/78.1.md
index bcb655f37ae..ae0af7b1552 100644
--- a/doc/user/application_security/dast/checks/78.1.md
+++ b/doc/user/application_security/dast/checks/78.1.md
@@ -22,7 +22,7 @@ Ensure your application does not:
- Use user-supplied information in the process name to execute.
- Use user-supplied information in an OS command execution function which does
-not escape shell meta-characters.
+ not escape shell meta-characters.
- Use user-supplied information in arguments to OS commands.
The application should have a hardcoded set of arguments that are to be passed
diff --git a/doc/user/application_security/dast/on-demand_scan.md b/doc/user/application_security/dast/on-demand_scan.md
new file mode 100644
index 00000000000..e43057aea54
--- /dev/null
+++ b/doc/user/application_security/dast/on-demand_scan.md
@@ -0,0 +1,409 @@
+---
+stage: Secure
+group: Dynamic Analysis
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# DAST On Demand Scan **(ULTIMATE ALL)**
+
+WARNING:
+Do not run DAST scans against a production server. Not only can it perform *any* function that a user can, such
+as clicking buttons or submitting forms, but it may also trigger bugs, leading to modification or loss of production data.
+Only run DAST scans against a test server.
+
+## On-demand scans
+
+> - Auditing for DAST profile management [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) in GitLab 14.1.
+> - Scheduled on-demand DAST scans [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.3 [with a flag](../../../administration/feature_flags.md) named `dast_on_demand_scans_scheduler`. Disabled by default.
+> - Scheduled on-demand DAST scans [generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.5. Feature flag `dast_on_demand_scans_scheduler` removed.
+> - Runner tags selection [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111499) in GitLab 16.3.
+> - Browser based on-demand DAST scans [deployed behind the feature flag `dast_ods_browser_based_scanner`](https://gitlab.com/gitlab-org/gitlab/-/issues/430212) in GitLab 16.8.
+
+An on-demand DAST scan runs outside the DevOps life cycle. Changes in your repository don't trigger
+the scan. You must either start it manually, or schedule it to run. For on-demand DAST scans,
+a [site profile](#site-profile) defines **what** is to be scanned, and a
+[scanner profile](#scanner-profile) defines **how** the application is to be scanned.
+
+An on-demand scan can be run in active or passive mode:
+
+- **Passive mode**: The default mode, which runs a [Passive Browser based scan](/ee/user/application_security/dast/browser_based.md#passive-scans).
+- **Active mode**: Runs an [Active Browser based scan](/ee/user/application_security/dast/browser_based.md#active-scans) which is potentially harmful to the site being scanned. To
+ minimize the risk of accidental damage, running an active scan requires a
+ [validated site profile](#site-profile-validation).
+
+### View on-demand DAST scans
+
+To view on-demand scans:
+
+1. On the left sidebar, select **Search or go to** and find your project or group.
+1. Select **Secure > On-demand scans**.
+
+On-demand scans are grouped by their status. The scan library contains all available on-demand
+scans.
+
+### Run an on-demand DAST scan
+
+Prerequisites:
+
+- You must have permission to run an on-demand DAST scan against a protected branch. The default
+ branch is automatically protected. For more information, see
+ [Pipeline security on protected branches](../../../ci/pipelines/index.md#pipeline-security-on-protected-branches).
+
+To run an existing on-demand scan:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > On-demand scans**.
+1. Select the **Scan library** tab.
+1. In the scan's row, select **Run scan**.
+
+ If the branch saved in the scan no longer exists, you must:
+
+ 1. [Edit the scan](#edit-an-on-demand-scan).
+ 1. Select a new branch.
+ 1. Save the edited scan.
+
+The on-demand DAST scan runs, and the project's dashboard shows the results.
+
+#### Create an on-demand scan
+
+Create an on-demand scan to:
+
+- Run it immediately.
+- Save it to be run in the future.
+- Schedule it to be run at a specified schedule.
+
+To create an on-demand DAST scan:
+
+1. On the left sidebar, select **Search or go to** and find your project or group.
+1. Select **Secure > On-demand scans**.
+1. Select **New scan**.
+1. Complete the **Scan name** and **Description** fields.
+1. In the **Branch** dropdown list, select the desired branch.
+1. Optional. Select the runner tags.
+1. Select **Select scanner profile** or **Change scanner profile** to open the drawer, and either:
+ - Select a scanner profile from the drawer, **or**
+ - Select **New profile**, create a [scanner profile](#scanner-profile), then select **Save profile**.
+1. Select **Select site profile** or **Change site profile** to open the drawer, and either:
+ - Select a site profile from the **Site profile library** drawer, or
+ - Select **New profile**, create a [site profile](#site-profile), then select **Save profile**.
+1. To run the on-demand scan:
+
+ - Immediately, select **Save and run scan**.
+ - In the future, select **Save scan**.
+ - On a schedule:
+
+ - Turn on the **Enable scan schedule** toggle.
+ - Complete the schedule fields.
+ - Select **Save scan**.
+
+The on-demand DAST scan runs as specified and the project's dashboard shows the results.
+
+### View details of an on-demand scan
+
+To view details of an on-demand scan:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > On-demand scans**.
+1. Select the **Scan library** tab.
+1. In the saved scan's row select **More actions** (**{ellipsis_v}**), then select **Edit**.
+
+### Edit an on-demand scan
+
+To edit an on-demand scan:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > On-demand scans**.
+1. Select the **Scan library** tab.
+1. In the saved scan's row select **More actions** (**{ellipsis_v}**), then select **Edit**.
+1. Edit the saved scan's details.
+1. Select **Save scan**.
+
+### Delete an on-demand scan
+
+To delete an on-demand scan:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > On-demand scans**.
+1. Select the **Scan library** tab.
+1. In the saved scan's row select **More actions** (**{ellipsis_v}**), then select **Delete**.
+1. On the confirmation dialog, select **Delete**.
+
+## Site profile
+
+> - Site profile features, scan method and file URL, were [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/345837) in GitLab 15.6.
+> - GraphQL endpoint path feature was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/378692) in GitLab 15.7.
+
+A site profile defines the attributes and configuration details of the deployed application,
+website, or API to be scanned by DAST. A site profile can be referenced in `.gitlab-ci.yml` and
+on-demand scans.
+
+A site profile contains:
+
+- **Profile name**: A name you assign to the site to be scanned. While a site profile is referenced
+ in either `.gitlab-ci.yml` or an on-demand scan, it **cannot** be renamed.
+- **Site type**: The type of target to be scanned, either website or API scan.
+- **Target URL**: The URL that DAST runs against.
+- **Excluded URLs**: A comma-separated list of URLs to exclude from the scan.
+- **Request headers**: A comma-separated list of HTTP request headers, including names and values. These headers are added to every request made by DAST.
+- **Authentication**:
+ - **Authenticated URL**: The URL of the page containing the sign-in HTML form on the target website. The username and password are submitted with the login form to create an authenticated scan.
+ - **Username**: The username used to authenticate to the website.
+ - **Password**: The password used to authenticate to the website.
+ - **Username form field**: The name of username field at the sign-in HTML form.
+ - **Password form field**: The name of password field at the sign-in HTML form.
+ - **Submit form field**: The `id` or `name` of the element that when selected submits the sign-in HTML form.
+
+- **Scan method**: A type of method to perform API testing. The supported methods are OpenAPI, Postman Collections, HTTP Archive (HAR), or GraphQL.
+ - **GraphQL endpoint path**: The path to the GraphQL endpoint. This path is concatenated with the target URL to provide the URI for the scan to test. The GraphQL endpoint must support introspection queries.
+ - **File URL**: The URL of the OpenAPI, Postman Collection, or HTTP Archive file.
+
+When an API site type is selected, a host override is used to ensure the API being scanned is on the same host as the target. This is done to reduce the risk of running an active scan against the wrong API.
+
+When configured, request headers and password fields are encrypted using [`aes-256-gcm`](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) before being stored in the database.
+This data can only be read and decrypted with a valid secrets file.
+
+### Site profile validation
+
+> Meta tag validation [introduced](https://gitlab.com/groups/gitlab-org/-/epics/6460) in GitLab 14.2.
+
+Site profile validation reduces the risk of running an active scan against the wrong website. A site
+must be validated before an active scan can run against it. Each of the site validation methods are
+equivalent in functionality, so use whichever is most suitable:
+
+- **Text file validation**: Requires a text file be uploaded to the target site. The text file is
+ allocated a name and content that is unique to the project. The validation process checks the
+ file's content.
+- **Header validation**: Requires the header `Gitlab-On-Demand-DAST` be added to the target site,
+ with a value unique to the project. The validation process checks that the header is present, and
+ checks its value.
+- **Meta tag validation**: Requires the meta tag named `gitlab-dast-validation` be added to the
+ target site, with a value unique to the project. Make sure it's added to the `<head>` section of
+ the page. The validation process checks that the meta tag is present, and checks its value.
+
+### Create a site profile
+
+To create a site profile:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Select **New > Site profile**.
+1. Complete the fields then select **Save profile**.
+
+The site profile is saved, for use in an on-demand scan.
+
+### Edit a site profile
+
+NOTE:
+If a site profile is linked to a security policy, you cannot edit the profile from this page. See
+[Scan execution policies](../policies/scan-execution-policies.md) for more information.
+
+NOTE:
+If a site profile's Target URL or Authenticated URL is updated, the request headers and password fields associated with that profile are cleared.
+
+When a validated site profile's file, header, or meta tag is edited, the site's
+[validation status](#site-profile-validation) is revoked.
+
+To edit a site profile:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Select the **Site Profiles** tab.
+1. In the profile's row select the **More actions** (**{ellipsis_v}**) menu, then select **Edit**.
+1. Edit the fields then select **Save profile**.
+
+### Delete a site profile
+
+NOTE:
+If a site profile is linked to a security policy, a user cannot delete the profile from this page.
+See [Scan execution policies](../policies/scan-execution-policies.md) for more information.
+
+To delete a site profile:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Select the **Site Profiles** tab.
+1. In the profile's row, select the **More actions** (**{ellipsis_v}**) menu, then select **Delete**.
+1. Select **Delete** to confirm the deletion.
+
+### Validate a site profile
+
+Validating a site is required to run an active scan.
+
+Prerequisites:
+
+- A runner must be available in the project to run a validation job.
+- The GitLab server's certificate must be trusted and must not use a self-signed certificate.
+
+To validate a site profile:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Select the **Site Profiles** tab.
+1. In the profile's row, select **Validate**.
+1. Select the validation method.
+ 1. For **Text file validation**:
+ 1. Download the validation file listed in **Step 2**.
+ 1. Upload the validation file to the host, to the location in **Step 3** or any location you
+ prefer.
+ 1. If required, edit the file location in **Step 3**.
+ 1. Select **Validate**.
+ 1. For **Header validation**:
+ 1. Select the clipboard icon in **Step 2**.
+ 1. Edit the header of the site to validate, and paste the clipboard content.
+ 1. Select the input field in **Step 3** and enter the location of the header.
+ 1. Select **Validate**.
+ 1. For **Meta tag validation**:
+ 1. Select the clipboard icon in **Step 2**.
+ 1. Edit the content of the site to validate, and paste the clipboard content.
+ 1. Select the input field in **Step 3** and enter the location of the meta tag.
+ 1. Select **Validate**.
+
+The site is validated and an active scan can run against it. A site profile's validation status is
+revoked only when it's revoked manually, or its file, header, or meta tag is edited.
+
+### Retry a failed validation
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322609) in GitLab 14.3.
+> - [Deployed behind the `dast_failed_site_validations` flag](../../../administration/feature_flags.md), enabled by default.
+> - [Feature flag `dast_failed_site_validations` removed](https://gitlab.com/gitlab-org/gitlab/-/issues/323961) in GitLab 14.4.
+
+Failed site validation attempts are listed on the **Site profiles** tab of the **Manage profiles**
+page.
+
+To retry a site profile's failed validation:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Select the **Site Profiles** tab.
+1. In the profile's row, select **Retry validation**.
+
+### Revoke a site profile's validation status
+
+WARNING:
+When a site profile's validation status is revoked, all site profiles that share the same URL also
+have their validation status revoked.
+
+To revoke a site profile's validation status:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Beside the validated profile, select **Revoke validation**.
+
+The site profile's validation status is revoked.
+
+### Validated site profile headers
+
+The following are code samples of how you can provide the required site profile header in your
+application.
+
+#### Ruby on Rails example for on-demand scan
+
+Here's how you can add a custom header in a Ruby on Rails application:
+
+```ruby
+class DastWebsiteTargetController < ActionController::Base
+ def dast_website_target
+ response.headers['Gitlab-On-Demand-DAST'] = '0dd79c9a-7b29-4e26-a815-eaaf53fcab1c'
+ head :ok
+ end
+end
+```
+
+#### Django example for on-demand scan
+
+Here's how you can add a
+[custom header in Django](https://docs.djangoproject.com/en/2.2/ref/request-response/#setting-header-fields):
+
+```python
+class DastWebsiteTargetView(View):
+ def head(self, *args, **kwargs):
+ response = HttpResponse()
+ response['Gitlab-On-Demand-DAST'] = '0dd79c9a-7b29-4e26-a815-eaaf53fcab1c'
+
+ return response
+```
+
+#### Node (with Express) example for on-demand scan
+
+Here's how you can add a
+[custom header in Node (with Express)](https://expressjs.com/en/5x/api.html#res.append):
+
+```javascript
+app.get('/dast-website-target', function(req, res) {
+ res.append('Gitlab-On-Demand-DAST', '0dd79c9a-7b29-4e26-a815-eaaf53fcab1c')
+ res.send('Respond to DAST ping')
+})
+```
+
+## Scanner profile
+
+> - Deprecated AJAX Spider option with the [introduction of Browser based on-demand DAST scans behind feature flag `dast_ods_browser_based_scanner`](https://gitlab.com/gitlab-org/gitlab/-/issues/430210).
+> - Renamed spider timeout to crawl timeout with the [introduction of Browser based on-demand DAST scans behind feature flag `dast_ods_browser_based_scanner`](https://gitlab.com/gitlab-org/gitlab/-/issues/430210).
+
+A scanner profile defines the configuration details of a security scanner. A scanner profile can be
+referenced in `.gitlab-ci.yml` and on-demand scans.
+
+A scanner profile contains:
+
+- **Profile name:** A name you give the scanner profile. For example, "Spider_15". While a scanner
+ profile is referenced in either `.gitlab-ci.yml` or an on-demand scan, it **cannot** be renamed.
+- **Scan mode:** A passive scan monitors all HTTP messages (requests and responses) sent to the target. An active scan attacks the target to find potential vulnerabilities.
+- **Crawl timeout:** The maximum number of minutes allowed for the crawler to traverse the site.
+- **Target timeout:** The maximum number of seconds DAST waits for the site to be available before
+ starting the scan.
+- **Debug messages:** Include debug messages in the DAST console output.
+
+### Create a scanner profile
+
+To create a scanner profile:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Select **New > Scanner profile**.
+1. Complete the form. For details of each field, see [Scanner profile](#scanner-profile).
+1. Select **Save profile**.
+
+### Edit a scanner profile
+
+NOTE:
+If a scanner profile is linked to a security policy, you cannot edit the profile from this page.
+For more information, see [Scan execution policies](../policies/scan-execution-policies.md).
+
+To edit a scanner profile:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Select the **Scanner profiles** tab.
+1. In the scanner's row, select the **More actions** (**{ellipsis_v}**) menu, then select **Edit**.
+1. Edit the form.
+1. Select **Save profile**.
+
+### Delete a scanner profile
+
+NOTE:
+If a scanner profile is linked to a security policy, a user cannot delete the profile from this
+page. For more information, see [Scan execution policies](../policies/scan-execution-policies.md).
+
+To delete a scanner profile:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Secure > Security configuration**.
+1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
+1. Select the **Scanner profiles** tab.
+1. In the scanner's row, select the **More actions** (**{ellipsis_v}**) menu, then select **Delete**.
+1. Select **Delete**.
+
+## Auditing
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) in GitLab 14.1.
+
+The creation, updating, and deletion of DAST profiles, DAST scanner profiles,
+and DAST site profiles are included in the [audit log](../../../administration/audit_events.md).
diff --git a/doc/user/application_security/dast/proxy-based.md b/doc/user/application_security/dast/proxy-based.md
index 6127866b0a9..447babb0ad4 100644
--- a/doc/user/application_security/dast/proxy-based.md
+++ b/doc/user/application_security/dast/proxy-based.md
@@ -168,9 +168,9 @@ To configure DAST using the UI:
1. In the **Dynamic Application Security Testing (DAST)** section, select **Enable DAST** or
**Configure DAST**.
1. Select the desired **Scanner profile**, or select **Create scanner profile** and save a
- scanner profile. For more details, see [scanner profiles](#scanner-profile).
+ scanner profile. For more details, see [scanner profiles](../dast/on-demand_scan.md#scanner-profile).
1. Select the desired **Site profile**, or select **Create site profile** and save a site
- profile. For more details, see [site profiles](#site-profile).
+ profile. For more details, see [site profiles](../dast/on-demand_scan.md#site-profile).
1. Select **Generate code snippet**. A modal opens with the YAML snippet corresponding to the
options you selected.
1. Do one of the following:
@@ -466,403 +466,6 @@ variables:
The DAST job does not require the project's repository to be present when running, so by default
[`GIT_STRATEGY`](../../../ci/runners/configure_runners.md#git-strategy) is set to `none`.
-## On-demand scans
-
-> - Auditing for DAST profile management [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) in GitLab 14.1.
-> - Scheduled on-demand DAST scans [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.3 [with a flag](../../../administration/feature_flags.md) named `dast_on_demand_scans_scheduler`. Disabled by default.
-> - Scheduled on-demand DAST scans [generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.5. Feature flag `dast_on_demand_scans_scheduler` removed.
-> - Runner tags selection [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111499) in GitLab 16.3.
-
-WARNING:
-On-demand scans are not available when GitLab is running in FIPS mode.
-
-An on-demand DAST scan runs outside the DevOps life cycle. Changes in your repository don't trigger
-the scan. You must either start it manually, or schedule it to run. For on-demand DAST scans,
-a [site profile](#site-profile) defines **what** is to be scanned, and a
-[scanner profile](#scanner-profile) defines **how** the application is to be scanned.
-
-An on-demand scan can be run in active or passive mode:
-
-- **Passive mode**: The default mode, which runs a ZAP Baseline Scan.
-- **Active mode**: Runs a ZAP Full Scan which is potentially harmful to the site being scanned. To
- minimize the risk of accidental damage, running an active scan requires a
- [validated site profile](#site-profile-validation).
-
-### View on-demand DAST scans
-
-To view on-demand scans:
-
-1. On the left sidebar, select **Search or go to** and find your project or group.
-1. Select **Secure > On-demand scans**.
-
-On-demand scans are grouped by their status. The scan library contains all available on-demand
-scans.
-
-### Run an on-demand DAST scan
-
-Prerequisites:
-
-- You must have permission to run an on-demand DAST scan against a protected branch. The default
- branch is automatically protected. For more information, see
- [Pipeline security on protected branches](../../../ci/pipelines/index.md#pipeline-security-on-protected-branches).
-
-To run an existing on-demand scan:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > On-demand scans**.
-1. Select the **Scan library** tab.
-1. In the scan's row, select **Run scan**.
-
- If the branch saved in the scan no longer exists, you must:
-
- 1. [Edit the scan](#edit-an-on-demand-scan).
- 1. Select a new branch.
- 1. Save the edited scan.
-
-The on-demand DAST scan runs, and the project's dashboard shows the results.
-
-#### Create an on-demand scan
-
-Create an on-demand scan to:
-
-- Run it immediately.
-- Save it to be run in the future.
-- Schedule it to be run at a specified schedule.
-
-To create an on-demand DAST scan:
-
-1. On the left sidebar, select **Search or go to** and find your project or group.
-1. Select **Secure > On-demand scans**.
-1. Select **New scan**.
-1. Complete the **Scan name** and **Description** fields.
-1. In the **Branch** dropdown list, select the desired branch.
-1. Optional. Select the runner tags.
-1. Select **Select scanner profile** or **Change scanner profile** to open the drawer, and either:
- - Select a scanner profile from the drawer, **or**
- - Select **New profile**, create a [scanner profile](#scanner-profile), then select **Save profile**.
-1. Select **Select site profile** or **Change site profile** to open the drawer, and either:
- - Select a site profile from the **Site profile library** drawer, or
- - Select **New profile**, create a [site profile](#site-profile), then select **Save profile**.
-1. To run the on-demand scan:
-
- - Immediately, select **Save and run scan**.
- - In the future, select **Save scan**.
- - On a schedule:
-
- - Turn on the **Enable scan schedule** toggle.
- - Complete the schedule fields.
- - Select **Save scan**.
-
-The on-demand DAST scan runs as specified and the project's dashboard shows the results.
-
-### View details of an on-demand scan
-
-To view details of an on-demand scan:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > On-demand scans**.
-1. Select the **Scan library** tab.
-1. In the saved scan's row select **More actions** (**{ellipsis_v}**), then select **Edit**.
-
-### Edit an on-demand scan
-
-To edit an on-demand scan:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > On-demand scans**.
-1. Select the **Scan library** tab.
-1. In the saved scan's row select **More actions** (**{ellipsis_v}**), then select **Edit**.
-1. Edit the saved scan's details.
-1. Select **Save scan**.
-
-### Delete an on-demand scan
-
-To delete an on-demand scan:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > On-demand scans**.
-1. Select the **Scan library** tab.
-1. In the saved scan's row select **More actions** (**{ellipsis_v}**), then select **Delete**.
-1. On the confirmation dialog, select **Delete**.
-
-## Site profile
-
-> - Site profile features, scan method and file URL, were [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/345837) in GitLab 15.6.
-> - GraphQL endpoint path feature was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/378692) in GitLab 15.7.
-
-A site profile defines the attributes and configuration details of the deployed application,
-website, or API to be scanned by DAST. A site profile can be referenced in `.gitlab-ci.yml` and
-on-demand scans.
-
-A site profile contains:
-
-- **Profile name**: A name you assign to the site to be scanned. While a site profile is referenced
- in either `.gitlab-ci.yml` or an on-demand scan, it **cannot** be renamed.
-- **Site type**: The type of target to be scanned, either website or API scan.
-- **Target URL**: The URL that DAST runs against.
-- **Excluded URLs**: A comma-separated list of URLs to exclude from the scan.
-- **Request headers**: A comma-separated list of HTTP request headers, including names and values. These headers are added to every request made by DAST.
-- **Authentication**:
- - **Authenticated URL**: The URL of the page containing the sign-in HTML form on the target website. The username and password are submitted with the login form to create an authenticated scan.
- - **Username**: The username used to authenticate to the website.
- - **Password**: The password used to authenticate to the website.
- - **Username form field**: The name of username field at the sign-in HTML form.
- - **Password form field**: The name of password field at the sign-in HTML form.
- - **Submit form field**: The `id` or `name` of the element that when selected submits the sign-in HTML form.
-
-- **Scan method**: A type of method to perform API testing. The supported methods are OpenAPI, Postman Collections, HTTP Archive (HAR), or GraphQL.
- - **GraphQL endpoint path**: The path to the GraphQL endpoint. This path is concatenated with the target URL to provide the URI for the scan to test. The GraphQL endpoint must support introspection queries.
- - **File URL**: The URL of the OpenAPI, Postman Collection, or HTTP Archive file.
-
-When an API site type is selected, a host override is used to ensure the API being scanned is on the same host as the target. This is done to reduce the risk of running an active scan against the wrong API.
-
-When configured, request headers and password fields are encrypted using [`aes-256-gcm`](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) before being stored in the database.
-This data can only be read and decrypted with a valid secrets file.
-
-### Site profile validation
-
-> Meta tag validation [introduced](https://gitlab.com/groups/gitlab-org/-/epics/6460) in GitLab 14.2.
-
-Site profile validation reduces the risk of running an active scan against the wrong website. A site
-must be validated before an active scan can run against it. Each of the site validation methods are
-equivalent in functionality, so use whichever is most suitable:
-
-- **Text file validation**: Requires a text file be uploaded to the target site. The text file is
- allocated a name and content that is unique to the project. The validation process checks the
- file's content.
-- **Header validation**: Requires the header `Gitlab-On-Demand-DAST` be added to the target site,
- with a value unique to the project. The validation process checks that the header is present, and
- checks its value.
-- **Meta tag validation**: Requires the meta tag named `gitlab-dast-validation` be added to the
- target site, with a value unique to the project. Make sure it's added to the `<head>` section of
- the page. The validation process checks that the meta tag is present, and checks its value.
-
-### Create a site profile
-
-To create a site profile:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Select **New > Site profile**.
-1. Complete the fields then select **Save profile**.
-
-The site profile is saved, for use in an on-demand scan.
-
-### Edit a site profile
-
-NOTE:
-If a site profile is linked to a security policy, you cannot edit the profile from this page. See
-[Scan execution policies](../policies/scan-execution-policies.md) for more information.
-
-NOTE:
-If a site profile's Target URL or Authenticated URL is updated, the request headers and password fields associated with that profile are cleared.
-
-When a validated site profile's file, header, or meta tag is edited, the site's
-[validation status](#site-profile-validation) is revoked.
-
-To edit a site profile:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Select the **Site Profiles** tab.
-1. In the profile's row select the **More actions** (**{ellipsis_v}**) menu, then select **Edit**.
-1. Edit the fields then select **Save profile**.
-
-### Delete a site profile
-
-NOTE:
-If a site profile is linked to a security policy, a user cannot delete the profile from this page.
-See [Scan execution policies](../policies/scan-execution-policies.md) for more information.
-
-To delete a site profile:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Select the **Site Profiles** tab.
-1. In the profile's row, select the **More actions** (**{ellipsis_v}**) menu, then select **Delete**.
-1. Select **Delete** to confirm the deletion.
-
-### Validate a site profile
-
-Validating a site is required to run an active scan.
-
-Prerequisites:
-
-- A runner must be available in the project to run a validation job.
-- The GitLab server's certificate must be trusted and must not use a self-signed certificate.
-
-To validate a site profile:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Select the **Site Profiles** tab.
-1. In the profile's row, select **Validate**.
-1. Select the validation method.
- 1. For **Text file validation**:
- 1. Download the validation file listed in **Step 2**.
- 1. Upload the validation file to the host, to the location in **Step 3** or any location you
- prefer.
- 1. If required, edit the file location in **Step 3**.
- 1. Select **Validate**.
- 1. For **Header validation**:
- 1. Select the clipboard icon in **Step 2**.
- 1. Edit the header of the site to validate, and paste the clipboard content.
- 1. Select the input field in **Step 3** and enter the location of the header.
- 1. Select **Validate**.
- 1. For **Meta tag validation**:
- 1. Select the clipboard icon in **Step 2**.
- 1. Edit the content of the site to validate, and paste the clipboard content.
- 1. Select the input field in **Step 3** and enter the location of the meta tag.
- 1. Select **Validate**.
-
-The site is validated and an active scan can run against it. A site profile's validation status is
-revoked only when it's revoked manually, or its file, header, or meta tag is edited.
-
-### Retry a failed validation
-
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322609) in GitLab 14.3.
-> - [Deployed behind the `dast_failed_site_validations` flag](../../../administration/feature_flags.md), enabled by default.
-> - [Feature flag `dast_failed_site_validations` removed](https://gitlab.com/gitlab-org/gitlab/-/issues/323961) in GitLab 14.4.
-
-Failed site validation attempts are listed on the **Site profiles** tab of the **Manage profiles**
-page.
-
-To retry a site profile's failed validation:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Select the **Site Profiles** tab.
-1. In the profile's row, select **Retry validation**.
-
-### Revoke a site profile's validation status
-
-WARNING:
-When a site profile's validation status is revoked, all site profiles that share the same URL also
-have their validation status revoked.
-
-To revoke a site profile's validation status:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Beside the validated profile, select **Revoke validation**.
-
-The site profile's validation status is revoked.
-
-### Validated site profile headers
-
-The following are code samples of how you can provide the required site profile header in your
-application.
-
-#### Ruby on Rails example for on-demand scan
-
-Here's how you can add a custom header in a Ruby on Rails application:
-
-```ruby
-class DastWebsiteTargetController < ActionController::Base
- def dast_website_target
- response.headers['Gitlab-On-Demand-DAST'] = '0dd79c9a-7b29-4e26-a815-eaaf53fcab1c'
- head :ok
- end
-end
-```
-
-#### Django example for on-demand scan
-
-Here's how you can add a
-[custom header in Django](https://docs.djangoproject.com/en/2.2/ref/request-response/#setting-header-fields):
-
-```python
-class DastWebsiteTargetView(View):
- def head(self, *args, **kwargs):
- response = HttpResponse()
- response['Gitlab-On-Demand-DAST'] = '0dd79c9a-7b29-4e26-a815-eaaf53fcab1c'
-
- return response
-```
-
-#### Node (with Express) example for on-demand scan
-
-Here's how you can add a
-[custom header in Node (with Express)](https://expressjs.com/en/5x/api.html#res.append):
-
-```javascript
-app.get('/dast-website-target', function(req, res) {
- res.append('Gitlab-On-Demand-DAST', '0dd79c9a-7b29-4e26-a815-eaaf53fcab1c')
- res.send('Respond to DAST ping')
-})
-```
-
-## Scanner profile
-
-A scanner profile defines the configuration details of a security scanner. A scanner profile can be
-referenced in `.gitlab-ci.yml` and on-demand scans.
-
-A scanner profile contains:
-
-- **Profile name:** A name you give the scanner profile. For example, "Spider_15". While a scanner
- profile is referenced in either `.gitlab-ci.yml` or an on-demand scan, it **cannot** be renamed.
-- **Scan mode:** A passive scan monitors all HTTP messages (requests and responses) sent to the target. An active scan attacks the target to find potential vulnerabilities.
-- **Spider timeout:** The maximum number of minutes allowed for the spider to traverse the site.
-- **Target timeout:** The maximum number of seconds DAST waits for the site to be available before
- starting the scan.
-- **AJAX spider:** Run the AJAX spider, in addition to the traditional spider, to crawl the target site.
-- **Debug messages:** Include debug messages in the DAST console output.
-
-### Create a scanner profile
-
-To create a scanner profile:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Select **New > Scanner profile**.
-1. Complete the form. For details of each field, see [Scanner profile](#scanner-profile).
-1. Select **Save profile**.
-
-### Edit a scanner profile
-
-NOTE:
-If a scanner profile is linked to a security policy, you cannot edit the profile from this page.
-For more information, see [Scan execution policies](../policies/scan-execution-policies.md).
-
-To edit a scanner profile:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Select the **Scanner profiles** tab.
-1. In the scanner's row, select the **More actions** (**{ellipsis_v}**) menu, then select **Edit**.
-1. Edit the form.
-1. Select **Save profile**.
-
-### Delete a scanner profile
-
-NOTE:
-If a scanner profile is linked to a security policy, a user cannot delete the profile from this
-page. For more information, see [Scan execution policies](../policies/scan-execution-policies.md).
-
-To delete a scanner profile:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Secure > Security configuration**.
-1. In the **Dynamic Application Security Testing (DAST)** section, select **Manage profiles**.
-1. Select the **Scanner profiles** tab.
-1. In the scanner's row, select the **More actions** (**{ellipsis_v}**) menu, then select **Delete**.
-1. Select **Delete**.
-
-## Auditing
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) in GitLab 14.1.
-
-The creation, updating, and deletion of DAST profiles, DAST scanner profiles,
-and DAST site profiles are included in the [audit log](../../../administration/audit_events.md).
-
## Reports
The DAST tool outputs a `gl-dast-report.json` report file containing details of the scan and its results.
diff --git a/doc/user/application_security/dast_api/index.md b/doc/user/application_security/dast_api/index.md
index df8fbff720b..e69734403ea 100644
--- a/doc/user/application_security/dast_api/index.md
+++ b/doc/user/application_security/dast_api/index.md
@@ -11,7 +11,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
Perform Dynamic Application Security Testing (DAST) of web APIs to help discover bugs and potential
security issues that other QA processes may miss. Use DAST API tests in addition to
other [GitLab Secure](../index.md) security scanners and your own test processes. You can run DAST
-API tests either as part your CI/CD workflow, [on-demand](../dast/proxy-based.md#on-demand-scans), or both.
+API tests either as part your CI/CD workflow, [on-demand](../dast/on-demand_scan.md), or both.
WARNING:
Do not run DAST API testing against a production server. Not only can it perform _any_ function that
@@ -417,15 +417,15 @@ The following is a summary of the variable scopes supported by the Postman Clien
- **Global Environment (Global) scope** is a special pre-defined environment that is available throughout a workspace. We can also refer to the _global environment_ scope as the _global_ scope. The Postman Client allows exporting the global environment into a JSON file, which can be used with DAST API.
- **Environment scope** is a named group of variables created by a user in the Postman Client.
-The Postman Client supports a single active environment along with the global environment. The variables defined in an active user-created environment take precedence over variables defined in the global environment. The Postman Client allows exporting your environment into a JSON file, which can be used with DAST API.
+ The Postman Client supports a single active environment along with the global environment. The variables defined in an active user-created environment take precedence over variables defined in the global environment. The Postman Client allows exporting your environment into a JSON file, which can be used with DAST API.
- **Collection scope** is a group of variables declared in a given collection. The collection variables are available to the collection where they have been declared and the nested requests or collections. Variables defined in the collection scope take precedence over the _global environment_ scope and also the _environment_ scope.
-The Postman Client can export one or more collections into a JSON file, this JSON file contains selected collections, requests, and collection variables.
+ The Postman Client can export one or more collections into a JSON file, this JSON file contains selected collections, requests, and collection variables.
- **DAST API Scope** is a new scope added by DAST API to allow users to provide extra variables, or override variables defined in other supported scopes. This scope is not supported by Postman. The _DAST API Scope_ variables are provided using a [custom JSON file format](#dast-api-scope-custom-json-file-format).
- Override values defined in the environment or collection
- Defining variables from scripts
- Define a single row of data from the unsupported _data scope_
- **Data scope** is a group of variables in which their name and values come from JSON or CSV files. A Postman collection runner like [Newman](https://learning.postman.com/docs/running-collections/using-newman-cli/command-line-integration-with-newman/) or [Postman Collection Runner](https://learning.postman.com/docs/running-collections/intro-to-collection-runs/) executes the requests in a collection as many times as entries have the JSON or CSV file. A good use case for these variables is to automate tests using scripts in Postman.
-DAST API does **not** support reading data from a CSV or JSON file.
+ DAST API does **not** support reading data from a CSV or JSON file.
- **Local scope** are variables that are defined in Postman scripts. DAST API does **not** support Postman scripts and by extension, variables defined in scripts. You can still provide values for the script-defined variables by defining them in one of the supported scopes, or our custom JSON format.
Not all scopes are supported by DAST API and variables defined in scripts are not supported. The following table is sorted by broadest scope to narrowest scope.
diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md
index 9d898ec0266..2570ce03005 100644
--- a/doc/user/application_security/dependency_scanning/index.md
+++ b/doc/user/application_security/dependency_scanning/index.md
@@ -69,11 +69,11 @@ WARNING:
Dependency Scanning does not support runtime installation of compilers and interpreters.
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
-For an overview, see [Dependency Scanning](https://www.youtube.com/watch?v=TBnfbGk4c4o)
+ For an overview, see [Dependency Scanning](https://www.youtube.com/watch?v=TBnfbGk4c4o)
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
-For an interactive reading and how-to demo of this Dependency Scanning documentation, see [How to use dependency scanning tutorial hands-on GitLab Application Security part 3](https://youtu.be/ii05cMbJ4xQ?feature=shared)
+ For an interactive reading and how-to demo of this Dependency Scanning documentation, see [How to use dependency scanning tutorial hands-on GitLab Application Security part 3](https://youtu.be/ii05cMbJ4xQ?feature=shared)
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
-For other interactive reading and how-to demos, see [Get Started With GitLab Application Security Playlist](https://www.youtube.com/playlist?list=PL05JrBw4t0KrUrjDoefSkgZLx5aJYFaF9)
+ For other interactive reading and how-to demos, see [Get Started With GitLab Application Security Playlist](https://www.youtube.com/playlist?list=PL05JrBw4t0KrUrjDoefSkgZLx5aJYFaF9)
## Supported languages and package managers
@@ -277,7 +277,10 @@ The following languages and dependency managers are supported:
<li>
<a id="notes-regarding-supported-languages-and-package-managers-7"></a>
<p>
- Support for <a href="https://www.scala-sbt.org/">sbt</a> 1.3 and above was added in GitLab 13.9.
+ <ul>
+ <li>Support for <a href="https://www.scala-sbt.org/">sbt</a> 1.3 and above was added in GitLab 13.9.</li>
+ <li>Support for sbt 1.0.x was <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/415835">deprecated in GitLab 16.8</a>.</li>
+ </ul>
</p>
</li>
</ol>
@@ -305,22 +308,22 @@ the project first.
When a supported dependency file is detected, all dependencies, including transitive dependencies
are analyzed. There is no limit to the depth of nested or transitive dependencies that are analyzed.
-### Dependency analyzers
+### Analyzers
-Dependency Scanning supports the following official analyzers:
+Dependency Scanning supports the following official
+[Gemnasium-based](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium) analyzers:
- `gemnasium`
- `gemnasium-maven`
- `gemnasium-python`
-Each of these supported Gemnasium-based Dependency Scanning analyzers exist in the following project:
-
-- [`gemnasium`](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium)
-
-The analyzers are published as Docker images, which Dependency Scanning uses
-to launch dedicated containers for each analysis. You can also integrate a custom
+The analyzers are published as Docker images, which Dependency Scanning uses to launch dedicated
+containers for each analysis. You can also integrate a custom
[security scanner](../../../development/integrations/secure.md).
+Each analyzer is updated as new versions of Gemnasium are released. For more information, see the
+analyzer [Release Process documentation](../../../development/sec/analyzer_development_guide.md#versioning-and-release-process).
+
### How analyzers obtain dependency information
GitLab analyzers obtain dependency information using one of the following two methods:
@@ -675,10 +678,6 @@ Support for additional languages, dependency managers, and dependency files are
| ------------------- | --------- | --------------- | ---------- | ----- |
| [Poetry](https://python-poetry.org/) | Python | `pyproject.toml` | [Gemnasium](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium) | [GitLab#32774](https://gitlab.com/gitlab-org/gitlab/-/issues/32774) |
-## Contribute your scanner
-
-The [Security Scanner Integration](../../../development/integrations/secure.md) documentation explains how to integrate other security scanners into GitLab.
-
## Configuration
Enable the dependency scanning analyzer to ensure it scans your application's dependencies for known
@@ -712,7 +711,10 @@ To enable dependency scanning:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Build > Pipeline editor**.
-1. Copy and paste the following to the bottom of the `.gitlab-ci.yml` file:
+1. If no `.gitlab-ci.yml` file exists, select **Configure pipeline**, then delete the example
+ content.
+1. Copy and paste the following to the bottom of the `.gitlab-ci.yml` file. If an `include` line
+ already exists, add only the `template` line below it.
```yaml
include:
@@ -721,14 +723,14 @@ To enable dependency scanning:
1. Select the **Validate** tab, then select **Validate pipeline**.
- Continue if you see the message **Simulation completed successfully**. That indicates the file is
- valid.
+ The message **Simulation completed successfully** confirms the file is valid.
1. Select the **Edit** tab.
1. Complete the fields. Do not use the default branch for the **Branch** field.
-1. Select **Commit changes**.
-1. Select **Code > Merge requests**.
-1. Select the merge request just created.
-1. Review the merge request, then select **Merge**.
+1. Select the **Start a new merge request with these changes** checkbox, then select **Commit
+ changes**.
+1. Complete the fields according to your standard workflow, then select **Create
+ merge request**.
+1. Review and edit the merge request according to your standard workflow, then select **Merge**.
Pipelines now include a dependency scanning job.
@@ -804,10 +806,10 @@ The following variables allow configuration of global dependency scanning settin
| CI/CD variables | Description |
| ----------------------------|------------ |
-| `ADDITIONAL_CA_CERT_BUNDLE` | Bundle of CA certs to trust. The bundle of certificates provided here is also used by other tools during the scanning process, such as `git`, `yarn`, or `npm`. See [Using a custom SSL CA certificate authority](#using-a-custom-ssl-ca-certificate-authority) for more details. |
-| `DS_EXCLUDED_ANALYZERS` | Specify the analyzers (by name) to exclude from Dependency Scanning. For more information, see [Dependency Scanning Analyzers](#dependency-analyzers). |
+| `ADDITIONAL_CA_CERT_BUNDLE` | Bundle of CA certificates to trust. The bundle of certificates provided here is also used by other tools during the scanning process, such as `git`, `yarn`, or `npm`. For more details, see [Custom TLS certificate authority](#custom-tls-certificate-authority). |
+| `DS_EXCLUDED_ANALYZERS` | Specify the analyzers (by name) to exclude from Dependency Scanning. For more information, see [Analyzers](#analyzers). |
| `DS_EXCLUDED_PATHS` | Exclude files and directories from the scan based on the paths. A comma-separated list of patterns. Patterns can be globs (see [`doublestar.Match`](https://pkg.go.dev/github.com/bmatcuk/doublestar/v4@v4.0.2#Match) for supported patterns), or file or folder paths (for example, `doc,spec`). Parent directories also match patterns. Default: `"spec, test, tests, tmp"`. |
-| `DS_IMAGE_SUFFIX` | Suffix added to the image name. (Introduced in GitLab 14.10. GitLab team members can view more information in this confidential issue: `https://gitlab.com/gitlab-org/gitlab/-/issues/354796`). Automatically set to `"-fips"` when FIPS mode is enabled. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/357922) in GitLab 15.0.) |
+| `DS_IMAGE_SUFFIX` | Suffix added to the image name. (GitLab team members can view more information in this confidential issue: `https://gitlab.com/gitlab-org/gitlab/-/issues/354796`). Automatically set to `"-fips"` when FIPS mode is enabled. |
| `DS_MAX_DEPTH` | Defines how many directory levels deep that the analyzer should search for supported files to scan. A value of `-1` scans all directories regardless of depth. Default: `2`. |
| `SECURE_ANALYZERS_PREFIX` | Override the name of the Docker registry providing the official default images (proxy). |
@@ -816,29 +818,29 @@ The following variables allow configuration of global dependency scanning settin
The following variables configure the behavior of specific dependency scanning analyzers.
| CI/CD variable | Analyzer | Default | Description |
-|--------------------------------------| ------------------ | ---------------------------- |------------ |
+|--------------------------------------|--------------------|------------------------------|-------------|
| `GEMNASIUM_DB_LOCAL_PATH` | `gemnasium` | `/gemnasium-db` | Path to local Gemnasium database. |
-| `GEMNASIUM_DB_UPDATE_DISABLED` | `gemnasium` | `"false"` | Disable automatic updates for the `gemnasium-db` advisory database (For usage see: [examples](#hosting-a-copy-of-the-gemnasium_db-advisory-database))|
+| `GEMNASIUM_DB_UPDATE_DISABLED` | `gemnasium` | `"false"` | Disable automatic updates for the `gemnasium-db` advisory database. For usage see [Hosting a copy of the Gemnasium advisory database](#hosting-a-copy-of-the-gemnasium_db-advisory-database). |
| `GEMNASIUM_DB_REMOTE_URL` | `gemnasium` | `https://gitlab.com/gitlab-org/security-products/gemnasium-db.git` | Repository URL for fetching the Gemnasium database. |
| `GEMNASIUM_DB_REF_NAME` | `gemnasium` | `master` | Branch name for remote repository database. `GEMNASIUM_DB_REMOTE_URL` is required. |
| `DS_REMEDIATE` | `gemnasium` | `"true"`, `"false"` in FIPS mode | Enable automatic remediation of vulnerable dependencies. Not supported in FIPS mode. |
-| `DS_REMEDIATE_TIMEOUT` | `gemnasium` | `5m` | Timeout for auto-remediation. |
+| `DS_REMEDIATE_TIMEOUT` | `gemnasium` | `5m` | Timeout for auto-remediation. |
| `GEMNASIUM_LIBRARY_SCAN_ENABLED` | `gemnasium` | `"true"` | Enable detecting vulnerabilities in vendored JavaScript libraries. For now, `gemnasium` leverages [`Retire.js`](https://github.com/RetireJS/retire.js) to do this job. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/350512) in GitLab 14.8. |
-| `DS_JAVA_VERSION` | `gemnasium-maven` | `17` | Version of Java. Available versions: `8`, `11`, `17`, `21` |
+| `DS_INCLUDE_DEV_DEPENDENCIES` | `gemnasium` | `"true"` | When set to `"false"`, development dependencies and their vulnerabilities are not reported. Only projects using Composer, npm, pnpm, Pipenv or Poetry are supported. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/227861) in GitLab 15.1. |
+| `GOOS` | `gemnasium` | `"linux"` | The operating system for which to compile Go code. |
+| `GOARCH` | `gemnasium` | `"amd64"` | The architecture of the processor for which to compile Go code. |
+| `GOFLAGS` | `gemnasium` | | The flags passed to the `go build` tool. |
+| `GOPRIVATE` | `gemnasium` | | A list of glob patterns and prefixes to be fetched from source. For more information, see the Go private modules [documentation](https://go.dev/ref/mod#private-modules). |
+| `DS_JAVA_VERSION` | `gemnasium-maven` | `17` | Version of Java. Available versions: `8`, `11`, `17`, `21`. |
| `MAVEN_CLI_OPTS` | `gemnasium-maven` | `"-DskipTests --batch-mode"` | List of command line arguments that are passed to `maven` by the analyzer. See an example for [using private repositories](../index.md#using-private-maven-repositories). |
| `GRADLE_CLI_OPTS` | `gemnasium-maven` | | List of command line arguments that are passed to `gradle` by the analyzer. |
| `SBT_CLI_OPTS` | `gemnasium-maven` | | List of command-line arguments that the analyzer passes to `sbt`. |
| `PIP_INDEX_URL` | `gemnasium-python` | `https://pypi.org/simple` | Base URL of Python Package Index. |
| `PIP_EXTRA_INDEX_URL` | `gemnasium-python` | | Array of [extra URLs](https://pip.pypa.io/en/stable/reference/pip_install/#cmdoption-extra-index-url) of package indexes to use in addition to `PIP_INDEX_URL`. Comma-separated. **Warning:** Read [the following security consideration](#python-projects) when using this environment variable. |
-| `PIP_REQUIREMENTS_FILE` | `gemnasium-python` | | Pip requirements file to be scanned. |
+| `PIP_REQUIREMENTS_FILE` | `gemnasium-python` | | Pip requirements file to be scanned. This is a filename and not a path. When this environment variable is set only the specified file is scanned. |
| `PIPENV_PYPI_MIRROR` | `gemnasium-python` | | If set, overrides the PyPi index used by Pipenv with a [mirror](https://github.com/pypa/pipenv/blob/v2022.1.8/pipenv/environments.py#L263). |
-| `DS_PIP_VERSION` | `gemnasium-python` | | Force the install of a specific pip version (example: `"19.3"`), otherwise the pip installed in the Docker image is used. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/12811) in GitLab 12.7) |
-| `DS_PIP_DEPENDENCY_PATH` | `gemnasium-python` | | Path to load Python pip dependencies from. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/12412) in GitLab 12.2) |
-| `DS_INCLUDE_DEV_DEPENDENCIES` | `gemnasium` | `"true"` | When set to `"false"`, development dependencies and their vulnerabilities are not reported. Only Composer, NPM, and Poetry projects are supported. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/227861) in GitLab 15.1. |
-| `GOOS` | `gemnasium` | `"linux"` | The operating system for which to compile Go code. |
-| `GOARCH` | `gemnasium` | `"amd64"` | The architecture of the processor for which to compile Go code. |
-| `GOFLAGS` | `gemnasium` | | The flags passed to the `go build` tool. |
-| `GOPRIVATE` | `gemnasium` | | A list of glob patterns and prefixes to be fetched from source. Read the Go private modules [documentation](https://go.dev/ref/mod#private-modules) for more information. |
+| `DS_PIP_VERSION` | `gemnasium-python` | | Force the install of a specific pip version (example: `"19.3"`), otherwise the pip installed in the Docker image is used. |
+| `DS_PIP_DEPENDENCY_PATH` | `gemnasium-python` | | Path to load Python pip dependencies from. |
#### Other variables
@@ -869,9 +871,26 @@ If one does not work and you need it we suggest
[submitting a feature request](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Feature%20proposal%20-%20detailed&issue[title]=Docs%20feedback%20-%20feature%20proposal:%20Write%20your%20title)
or [contributing to the code](../../../development/index.md) to enable it to be used.
-### Using a custom SSL CA certificate authority
+### Custom TLS certificate authority
-You can use the `ADDITIONAL_CA_CERT_BUNDLE` CI/CD variable to configure a custom SSL CA certificate authority. The `ADDITIONAL_CA_CERT_BUNDLE` value should contain the [text representation of the X.509 PEM public-key certificate](https://www.rfc-editor.org/rfc/rfc7468#section-5.1). For example, to configure this value in the `.gitlab-ci.yml` file, use the following:
+Dependency Scanning allows for use of custom TLS certificates for SSL/TLS connections instead of the
+default shipped with the analyzer container image.
+
+Support for custom certificate authorities was introduced in the following versions.
+
+| Analyzer | Version |
+|--------------------|--------------------------------------------------------------------------------------------------------|
+| `gemnasium` | [v2.8.0](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/releases/v2.8.0) |
+| `gemnasium-maven` | [v2.9.0](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium-maven/-/releases/v2.9.0) |
+| `gemnasium-python` | [v2.7.0](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium-python/-/releases/v2.7.0) |
+
+#### Using a custom TLS certificate authority
+
+To use a custom TLS certificate authority, assign the
+[text representation of the X.509 PEM public-key certificate](https://www.rfc-editor.org/rfc/rfc7468#section-5.1)
+to the CI/CD variable `ADDITIONAL_CA_CERT_BUNDLE`.
+
+For example, to configure the certificate in the `.gitlab-ci.yml` file:
```yaml
variables:
@@ -883,8 +902,6 @@ variables:
-----END CERTIFICATE-----
```
-The `ADDITIONAL_CA_CERT_BUNDLE` value can also be configured as a [custom variable in the UI](../../../ci/variables/index.md#for-a-project), either as a `file`, which requires the path to the certificate, or as a variable, which requires the text representation of the certificate.
-
### Using private Maven repositories
If your private Maven repository requires login credentials,
@@ -892,144 +909,50 @@ you can use the `MAVEN_CLI_OPTS` CI/CD variable.
Read more on [how to use private Maven repositories](../index.md#using-private-maven-repositories).
-#### FIPS-enabled images
+### FIPS-enabled images
-> Introduced in GitLab 14.10. GitLab team members can view more information in this confidential issue: `https://gitlab.com/gitlab-org/gitlab/-/issues/354796`
+> - Introduced in GitLab 14.10. GitLab team members can view more information in this confidential issue: `https://gitlab.com/gitlab-org/gitlab/-/issues/354796`
+> - Introduced in GitLab 15.0 - Gemnasium uses FIPS-enabled images when FIPS mode is enabled.
GitLab also offers [FIPS-enabled Red Hat UBI](https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image)
-versions of the Gemnasium images. You can therefore replace standard images with FIPS-enabled images.
+versions of the Gemnasium images. When FIPS mode is enabled in the GitLab instance, Gemnasium
+scanning jobs automatically use the FIPS-enabled images. To manually switch to FIPS-enabled images,
+set the variable `DS_IMAGE_SUFFIX` to `"-fips"`.
-Gemnasium scanning jobs automatically use FIPS-enabled image when FIPS mode is enabled in the GitLab instance.
-([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/357922) in GitLab 15.0.)
+Dependency scanning for Gradle projects and auto-remediation for Yarn projects are not supported in FIPS mode.
-To manually switch to FIPS-enabled images, set the variable `DS_IMAGE_SUFFIX` to `"-fips"`.
+## Output
-Dependency scanning for Gradle projects and auto-remediation for Yarn projects are not supported in FIPS mode.
+Dependency Scanning produces the following output:
-## Reports JSON format
+- **Dependency scanning report**: Contains details of all vulnerabilities detected in dependencies.
+- **CycloneDX Software Bill of Materials**: Software Bill of Materials (SBOM) for each supported
+ lock or build file detected.
-The dependency scanning tool emits a JSON report file. For more information, see the
-[schema for this report](https://gitlab.com/gitlab-org/security-products/security-report-schemas/-/blob/master/dist/dependency-scanning-report-format.json).
+### Dependency scanning report
-Here's an example dependency scanning report:
+Dependency scanning outputs a report containing details of all vulnerabilities. The report is
+processed internally and the results are shown in the UI. The report is also output as an artifact
+of the dependency scanning job, named `gl-dependency-scanning-report.json`.
-```json
-{
- "version": "2.0",
- "vulnerabilities": [
- {
- "id": "51e83874-0ff6-4677-a4c5-249060554eae",
- "category": "dependency_scanning",
- "name": "Regular Expression Denial of Service",
- "message": "Regular Expression Denial of Service in debug",
- "description": "The debug module is vulnerable to regular expression denial of service when untrusted user input is passed into the `o` formatter. It takes around 50k characters to block for 2 seconds making this a low severity issue.",
- "severity": "Unknown",
- "solution": "Upgrade to latest versions.",
- "scanner": {
- "id": "gemnasium",
- "name": "Gemnasium"
- },
- "location": {
- "file": "yarn.lock",
- "dependency": {
- "package": {
- "name": "debug"
- },
- "version": "1.0.5"
- }
- },
- "identifiers": [
- {
- "type": "gemnasium",
- "name": "Gemnasium-37283ed4-0380-40d7-ada7-2d994afcc62a",
- "value": "37283ed4-0380-40d7-ada7-2d994afcc62a",
- "url": "https://deps.sec.gitlab.com/packages/npm/debug/versions/1.0.5/advisories"
- }
- ],
- "links": [
- {
- "url": "https://nodesecurity.io/advisories/534"
- },
- {
- "url": "https://github.com/visionmedia/debug/issues/501"
- },
- {
- "url": "https://github.com/visionmedia/debug/pull/504"
- }
- ]
- },
- {
- "id": "5d681b13-e8fa-4668-957e-8d88f932ddc7",
- "category": "dependency_scanning",
- "name": "Authentication bypass via incorrect DOM traversal and canonicalization",
- "message": "Authentication bypass via incorrect DOM traversal and canonicalization in saml2-js",
- "description": "Some XML DOM traversal and canonicalization APIs may be inconsistent in handling of comments within XML nodes. Incorrect use of these APIs by some SAML libraries results in incorrect parsing of the inner text of XML nodes such that any inner text after the comment is lost prior to cryptographically signing the SAML message. Text after the comment, therefore, has no impact on the signature on the SAML message.\r\n\r\nA remote attacker can modify SAML content for a SAML service provider without invalidating the cryptographic signature, which may allow attackers to bypass primary authentication for the affected SAML service provider.",
- "severity": "Unknown",
- "solution": "Upgrade to fixed version.\r\n",
- "scanner": {
- "id": "gemnasium",
- "name": "Gemnasium"
- },
- "location": {
- "file": "yarn.lock",
- "dependency": {
- "package": {
- "name": "saml2-js"
- },
- "version": "1.5.0"
- }
- },
- "identifiers": [
- {
- "type": "gemnasium",
- "name": "Gemnasium-9952e574-7b5b-46fa-a270-aeb694198a98",
- "value": "9952e574-7b5b-46fa-a270-aeb694198a98",
- "url": "https://deps.sec.gitlab.com/packages/npm/saml2-js/versions/1.5.0/advisories"
- },
- {
- "type": "cve",
- "name": "CVE-2017-11429",
- "value": "CVE-2017-11429",
- "url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11429"
- }
- ],
- "links": [
- {
- "url": "https://github.com/Clever/saml2/commit/3546cb61fd541f219abda364c5b919633609ef3d#diff-af730f9f738de1c9ad87596df3f6de84R279"
- },
- {
- "url": "https://github.com/Clever/saml2/issues/127"
- },
- {
- "url": "https://www.kb.cert.org/vuls/id/475445"
- }
- ]
- }
- ],
- "remediations": [
- {
- "fixes": [
- {
- "id": "5d681b13-e8fa-4668-957e-8d88f932ddc7",
- }
- ],
- "summary": "Upgrade saml2-js",
- "diff": "ZGlmZiAtLWdpdCBhL...OR0d1ZUc2THh3UT09Cg==" // some content is omitted for brevity
- }
- ]
-}
-```
+For more details of the dependency scanning report, see:
+
+- [Example dependency scanning report](#example-vulnerability-report).
+- [Dependency scanning report schema](https://gitlab.com/gitlab-org/security-products/security-report-schemas/-/blob/master/dist/dependency-scanning-report-format.json).
### CycloneDX Software Bill of Materials
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/350509) in GitLab 14.8 in [Beta](../../../policy/experiment-beta-support.md#beta).
> - Generally available in GitLab 15.7.
-In addition to the [JSON report file](#reports-json-format), the [Gemnasium](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium)
-Dependency Scanning tool outputs a [CycloneDX](https://cyclonedx.org/) Software Bill of Materials (SBOM) for
-each supported lock or build file it detects. These CycloneDX SBOMs are named
-`gl-sbom-<package-type>-<package-manager>.cdx.json`, and are saved in the same directory
-as the detected lock or build files.
+Dependency Scanning outputs a [CycloneDX](https://cyclonedx.org/) Software Bill of Materials (SBOM)
+for each supported lock or build file it detects.
+
+The CycloneDX SBOMs are:
+
+- Named `gl-sbom-<package-type>-<package-manager>.cdx.json`.
+- Available as job artifacts of the dependency scanning job.
+- Saved in the same directory as the detected lock or build files.
For example, if your project has the following structure:
@@ -1063,12 +986,16 @@ Then the Gemnasium scanner generates the following CycloneDX SBOMs:
└── gl-sbom-go-go.cdx.json
```
-You can download CycloneDX SBOMs [the same way as other job artifacts](../../../ci/jobs/job_artifacts.md#download-job-artifacts).
+#### Merging multiple CycloneDX SBOMs
-### Merging multiple CycloneDX SBOMs
+You can use a CI/CD job to merge the multiple CycloneDX SBOMs into a single SBOM. GitLab uses
+[CycloneDX Properties](https://cyclonedx.org/use-cases/#properties--name-value-store) to store
+implementation-specific details in the metadata of each CycloneDX SBOM, such as the location of
+build and lock files. If multiple CycloneDX SBOMs are merged together, this information is removed
+from the resulting merged file.
-You can use a CI/CD job to merge multiple CycloneDX SBOMs into a single SBOM.
-For example:
+For example, the following `.gitlab-ci.yml` extract demonstrates how the Cyclone SBOM files can be
+merged, and the resulting file validated.
```yaml
stages:
@@ -1110,15 +1037,6 @@ merge cyclonedx sboms:
- gl-sbom-all.cdx.json
```
-GitLab uses [CycloneDX Properties](https://cyclonedx.org/use-cases/#properties--name-value-store)
-to store implementation-specific details in the metadata of each CycloneDX SBOM,
-such as the location of build and lock files. If multiple CycloneDX SBOMs are merged together,
-this information is removed from the resulting merged file.
-
-## Versioning and release process
-
-Check the [Release Process documentation](../../../development/sec/analyzer_development_guide.md#versioning-and-release-process).
-
## Contributing to the vulnerability database
To find a vulnerability, you can search the [`GitLab Advisory Database`](https://advisories.gitlab.com/).
@@ -1170,16 +1088,6 @@ For details on saving and transporting Docker images as a file, see the Docker d
[`docker save`](https://docs.docker.com/engine/reference/commandline/save/), [`docker load`](https://docs.docker.com/engine/reference/commandline/load/),
[`docker export`](https://docs.docker.com/engine/reference/commandline/export/), and [`docker import`](https://docs.docker.com/engine/reference/commandline/import/).
-#### Support for Custom Certificate Authorities
-
-Support for custom certificate authorities was introduced in the following versions.
-
-| Analyzer | Version |
-| -------- | ------- |
-| `gemnasium` | [v2.8.0](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/releases/v2.8.0) |
-| `gemnasium-maven` | [v2.9.0](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium-maven/-/releases/v2.9.0) |
-| `gemnasium-python` | [v2.7.0](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium-python/-/releases/v2.7.0) |
-
### Set dependency scanning CI/CD job variables to use local dependency scanning analyzers
Add the following configuration to your `.gitlab-ci.yml` file. You must change the value of
@@ -1332,3 +1240,114 @@ environment variable due to a possible exploit documented by [CVE-2018-20225](ht
intended to obtain a private package from a private index. This only affects use of the `PIP_EXTRA_INDEX_URL` option, and exploitation
requires that the package does not already exist in the public index (and thus the attacker can put the package there with an arbitrary
version number).
+
+## Example vulnerability report
+
+The following is an example vulnerability report output by dependency scanning:
+
+```json
+{
+ "version": "2.0",
+ "vulnerabilities": [
+ {
+ "id": "51e83874-0ff6-4677-a4c5-249060554eae",
+ "category": "dependency_scanning",
+ "name": "Regular Expression Denial of Service",
+ "message": "Regular Expression Denial of Service in debug",
+ "description": "The debug module is vulnerable to regular expression denial of service when untrusted user input is passed into the `o` formatter. It takes around 50k characters to block for 2 seconds making this a low severity issue.",
+ "severity": "Unknown",
+ "solution": "Upgrade to latest versions.",
+ "scanner": {
+ "id": "gemnasium",
+ "name": "Gemnasium"
+ },
+ "location": {
+ "file": "yarn.lock",
+ "dependency": {
+ "package": {
+ "name": "debug"
+ },
+ "version": "1.0.5"
+ }
+ },
+ "identifiers": [
+ {
+ "type": "gemnasium",
+ "name": "Gemnasium-37283ed4-0380-40d7-ada7-2d994afcc62a",
+ "value": "37283ed4-0380-40d7-ada7-2d994afcc62a",
+ "url": "https://deps.sec.gitlab.com/packages/npm/debug/versions/1.0.5/advisories"
+ }
+ ],
+ "links": [
+ {
+ "url": "https://nodesecurity.io/advisories/534"
+ },
+ {
+ "url": "https://github.com/visionmedia/debug/issues/501"
+ },
+ {
+ "url": "https://github.com/visionmedia/debug/pull/504"
+ }
+ ]
+ },
+ {
+ "id": "5d681b13-e8fa-4668-957e-8d88f932ddc7",
+ "category": "dependency_scanning",
+ "name": "Authentication bypass via incorrect DOM traversal and canonicalization",
+ "message": "Authentication bypass via incorrect DOM traversal and canonicalization in saml2-js",
+ "description": "Some XML DOM traversal and canonicalization APIs may be inconsistent in handling of comments within XML nodes. Incorrect use of these APIs by some SAML libraries results in incorrect parsing of the inner text of XML nodes such that any inner text after the comment is lost prior to cryptographically signing the SAML message. Text after the comment, therefore, has no impact on the signature on the SAML message.\r\n\r\nA remote attacker can modify SAML content for a SAML service provider without invalidating the cryptographic signature, which may allow attackers to bypass primary authentication for the affected SAML service provider.",
+ "severity": "Unknown",
+ "solution": "Upgrade to fixed version.\r\n",
+ "scanner": {
+ "id": "gemnasium",
+ "name": "Gemnasium"
+ },
+ "location": {
+ "file": "yarn.lock",
+ "dependency": {
+ "package": {
+ "name": "saml2-js"
+ },
+ "version": "1.5.0"
+ }
+ },
+ "identifiers": [
+ {
+ "type": "gemnasium",
+ "name": "Gemnasium-9952e574-7b5b-46fa-a270-aeb694198a98",
+ "value": "9952e574-7b5b-46fa-a270-aeb694198a98",
+ "url": "https://deps.sec.gitlab.com/packages/npm/saml2-js/versions/1.5.0/advisories"
+ },
+ {
+ "type": "cve",
+ "name": "CVE-2017-11429",
+ "value": "CVE-2017-11429",
+ "url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11429"
+ }
+ ],
+ "links": [
+ {
+ "url": "https://github.com/Clever/saml2/commit/3546cb61fd541f219abda364c5b919633609ef3d#diff-af730f9f738de1c9ad87596df3f6de84R279"
+ },
+ {
+ "url": "https://github.com/Clever/saml2/issues/127"
+ },
+ {
+ "url": "https://www.kb.cert.org/vuls/id/475445"
+ }
+ ]
+ }
+ ],
+ "remediations": [
+ {
+ "fixes": [
+ {
+ "id": "5d681b13-e8fa-4668-957e-8d88f932ddc7",
+ }
+ ],
+ "summary": "Upgrade saml2-js",
+ "diff": "ZGlmZiAtLWdpdCBhL...OR0d1ZUc2THh3UT09Cg==" // some content is omitted for brevity
+ }
+ ]
+}
+```
diff --git a/doc/user/application_security/dependency_scanning/troubleshooting_dependency_scanning.md b/doc/user/application_security/dependency_scanning/troubleshooting_dependency_scanning.md
index 77579a04c7e..83004459051 100644
--- a/doc/user/application_security/dependency_scanning/troubleshooting_dependency_scanning.md
+++ b/doc/user/application_security/dependency_scanning/troubleshooting_dependency_scanning.md
@@ -65,10 +65,6 @@ Consider updating to Docker `19.03.1` or greater. Older versions are not
affected. Read more in
[this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/13830#note_211354992 "Current SAST container fails").
-## Getting warning message `gl-dependency-scanning-report.json: no matching files`
-
-For information, see the [general Application Security troubleshooting section](../../../ci/jobs/job_artifacts_troubleshooting.md#error-message-no-files-to-upload).
-
## Limitation when using rules:exists
The [dependency scanning CI template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Security/Dependency-Scanning.gitlab-ci.yml)
@@ -129,7 +125,7 @@ The lock file is cached during the build phase and passed to the dependency scan
scan occurs. Because the cache is downloaded before the analyzer run occurs, the existence of a lock
file in the `CI_BUILDS_DIR` directory triggers the dependency scanning job.
-To prevent this warning, lock files should be committed.
+To prevent this warning, lock files should be committed.
## You no longer get the latest Docker image after setting `DS_MAJOR_VERSION` or `DS_ANALYZER_IMAGE`
diff --git a/doc/user/application_security/index.md b/doc/user/application_security/index.md
index e31877d195a..6441f74a41b 100644
--- a/doc/user/application_security/index.md
+++ b/doc/user/application_security/index.md
@@ -247,10 +247,8 @@ Security scan information appears in multiple locations and formats:
### Merge request **(FREE ALL)**
-> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/4393) in GitLab Free 13.5.
-> - Made [available in all tiers](https://gitlab.com/gitlab-org/gitlab/-/issues/273205) in 13.6.
-> - Report download dropdown list [added](https://gitlab.com/gitlab-org/gitlab/-/issues/273418) in 13.7.
-> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/249550) in GitLab 13.9.
+Output of all enabled application security tools is shown in a merge request widget. You can use
+this information to manage the risk of any issues identified in the source branch.
#### All tiers
@@ -284,17 +282,25 @@ The merge request security widget displays only a subset of the vulnerabilities
From the merge request security widget, select **Expand** to unfold the widget, displaying any new and no longer detected (removed) findings by scan type.
-For each security report type, the widget displays the first 25 added and 25 fixed findings, sorted by severity. To see all
-findings, select **View full report** to go directly to the **Security** tab in the latest branch pipeline.
+For each security report type, the widget displays the first 25 added and 25 fixed findings, sorted by severity.
+This is determined by comparing the security reports from the source branch and target branch pipelines.
+
+As an example, consider two pipelines with these scan results:
+
+- The source branch pipeline detects two vulnerabilities identified as `V1` and `V2`.
+- The target branch pipeline detects two vulnerabilities identified as `V1` and `V3`.
+- `V2` will show on the merge request widget as "added".
+- `V3` will show on the merge request widget as "fixed".
+- `V1` exists on both branches and is not shown on the merge request widget.
+
+To see all findings on the source branch of the merge request, select **View full report** to go directly to the **Security** tab in the latest source branch pipeline.
![Security scanning results in a merge request](img/mr_security_scanning_results_v14_3.png)
### Pipeline security tab
-A pipeline's security tab lists all findings in the current branch. It includes findings introduced
-by this branch and vulnerabilities already present in the base branch. These results likely do not
-match the findings displayed in the Merge Request security widget, as those do not include the
-existing vulnerabilities. For more information see
+A pipeline's security tab lists all findings from the security reports in the pipeline's
+job artifacts. For more information see
[Vulnerabilities in a pipeline](vulnerability_report/pipeline.md).
### Security dashboard
diff --git a/doc/user/application_security/policies/img/scan_results_evaluation_white-bg.png b/doc/user/application_security/policies/img/scan_results_evaluation_white-bg.png
index d2f5466e383..ac3164842a4 100644
--- a/doc/user/application_security/policies/img/scan_results_evaluation_white-bg.png
+++ b/doc/user/application_security/policies/img/scan_results_evaluation_white-bg.png
Binary files differ
diff --git a/doc/user/application_security/policies/scan-execution-policies.md b/doc/user/application_security/policies/scan-execution-policies.md
index f299a38dff1..9a6f7581876 100644
--- a/doc/user/application_security/policies/scan-execution-policies.md
+++ b/doc/user/application_security/policies/scan-execution-policies.md
@@ -46,6 +46,10 @@ to remove the `test` stage, jobs will run in the `scan-policies` stage instead.
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i> For a video walkthrough, see [How to set up Security Scan Policies in GitLab](https://youtu.be/ZBcqGmEwORA?si=aeT4EXtmHjosgjBY).
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i> For an overview, see [Enforcing scan execution policies on projects with no GitLab CI/CD configuration](https://www.youtube.com/watch?v=sUfwQQ4-qHs).
+## Requirements and limitations
+
+- The maximum number of scan execution policies is five per security policy project.
+
## Scan execution policy editor
NOTE:
@@ -201,27 +205,22 @@ The keys for a schedule rule are:
## `scan` action type
-> - Scan Execution Policies variable precedence was [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/424028) in GitLab 16.7 [with a flag](../../../administration/feature_flags.md) named `security_policies_variables_precedence`. Enabled by default.
-> - The `custom` scan action type was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126457) in GitLab 16.4 [with a flag](../../../administration/feature_flags.md) named `compliance_pipeline_in_policies`. On GitLab.com, this feature is not available. On self-managed GitLab, by default this feature is not available. To make it available, an administrator can [enable the feature flag](../../../administration/feature_flags.md) named `compliance_pipeline_in_policies`.
+> Scan Execution Policies variable precedence was [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/424028) in GitLab 16.7 [with a flag](../../../administration/feature_flags.md) named `security_policies_variables_precedence`. Enabled by default. [Feature flag removed in GitLab 16.8](https://gitlab.com/gitlab-org/gitlab/-/issues/435727).
This action executes the selected `scan` with additional parameters when conditions for at least one
rule in the defined policy are met.
| Field | Type | Possible values | Description |
|-------|------|-----------------|-------------|
-| `scan` | `string` | `sast`, `sast_iac`, `dast`, `secret_detection`, `container_scanning`, `dependency_scanning`, `custom` | The action's type. |
-| `site_profile` | `string` | Name of the selected [DAST site profile](../dast/proxy-based.md#site-profile). | The DAST site profile to execute the DAST scan. This field should only be set if `scan` type is `dast`. |
-| `scanner_profile` | `string` or `null` | Name of the selected [DAST scanner profile](../dast/proxy-based.md#scanner-profile). | The DAST scanner profile to execute the DAST scan. This field should only be set if `scan` type is `dast`.|
+| `scan` | `string` | `sast`, `sast_iac`, `dast`, `secret_detection`, `container_scanning`, `dependency_scanning` | The action's type. |
+| `site_profile` | `string` | Name of the selected [DAST site profile](../dast/on-demand_scan.md#site-profile). | The DAST site profile to execute the DAST scan. This field should only be set if `scan` type is `dast`. |
+| `scanner_profile` | `string` or `null` | Name of the selected [DAST scanner profile](../dast/on-demand_scan.md#scanner-profile). | The DAST scanner profile to execute the DAST scan. This field should only be set if `scan` type is `dast`.|
| `variables` | `object` | | A set of CI variables, supplied as an array of `key: value` pairs, to apply and enforce for the selected scan. The `key` is the variable name, with its `value` provided as a string. This parameter supports any variable that the GitLab CI job supports for the specified scan. |
| `tags` | `array` of `string` | | A list of runner tags for the policy. The policy jobs are run by runner with the specified tags. |
-| `ci_configuration` <sup>1</sup> | `string` | | GitLab CI YAML as formatted as string. |
-| `ci_configuration_path` <sup>1</sup> | object | Object with project path and file name pointing to a CI configuration. |
-
-1. For `custom` scans, you must specify one of `ci_configuration` or `ci_configuration_path`.
Note the following:
-- You must create the [site profile](../dast/proxy-based.md#site-profile) and [scanner profile](../dast/proxy-based.md#scanner-profile)
+- You must create the [site profile](../dast/on-demand_scan.md#site-profile) and [scanner profile](../dast/on-demand_scan.md#scanner-profile)
with selected names for each project that is assigned to the selected Security Policy Project.
Otherwise, the policy is not applied and a job with an error message is created instead.
- Once you associate the site profile and scanner profile by name in the policy, it is not possible
@@ -237,16 +236,6 @@ Note the following:
- A container scanning scan that is configured for the `pipeline` rule type ignores the agent defined in the `agents` object. The `agents` object is only considered for `schedule` rule types.
An agent with a name provided in the `agents` object must be created and configured for the project.
- Variables defined in a Scan Execution Policy follow the standard [CI/CD variable precedence](../../../ci/variables/index.md#cicd-variable-precedence).
-- `custom` scans are be executed for scheduled rules.
-- Jobs variables and stages definitions from `custom` scans take precedence over the project's CI/CD configuration.
-
-### `ci_configuration_path` object
-
-| Field | Type | Description |
-|-------|------|-------------|
-| `project` | `string` | A project namespace path. |
-| `file` | `string` | The filename of the CI/CD YAML file. |
-| `ref` | `string` (optional) | The branch name, tag name, or commit SHA. |
## Example security policies project
@@ -267,12 +256,6 @@ scan_execution_policy:
- scan: dast
scanner_profile: Scanner Profile A
site_profile: Site Profile B
- - scan: custom
- ci_configuration: |-
- test job:
- stage: test
- script:
- - echo "Hello World"
- name: Enforce DAST and secret detection scans every 10 minutes
description: This policy enforces DAST and secret detection scans to run every 10 minutes
enabled: true
@@ -306,7 +289,6 @@ In this example:
- For every pipeline executed on branches that match the `release/*` wildcard (for example, branch
`release/v1.2.1`)
- DAST scans run with `Scanner Profile A` and `Site Profile B`.
- - A `test job` is injected into the `test` stage of the pipeline, printing `Hello World`.
- DAST and secret detection scans run every 10 minutes. The DAST scan runs with `Scanner Profile C`
and `Site Profile D`.
- Secret detection, container scanning, and SAST scans run for every pipeline executed on the `main`
@@ -340,3 +322,155 @@ this case, two SAST jobs run in the pipeline, one with the developer's variables
If you want to avoid running duplicate scans, you can either remove the scans from the project's `.gitlab-ci.yml` file or disable your
local jobs by setting `SAST_DISABLED: "true"`. Disabling jobs this way does not prevent the security jobs defined by scan execution
policies from running.
+
+## Experimental features **(EXPERIMENT)**
+
+These experimental features have limitations:
+
+1. Enforcing pipeline execution using the pipeline execution action in projects
+ without a `.gitlab-ci.yml` is not supported.
+1. The pipeline execution action cannot be used with a scheduled trigger type.
+
+### Pipeline execution policy action
+
+> The `custom` scan action type was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126457) in GitLab 16.4 [with a flag](../../../administration/feature_flags.md) named `compliance_pipeline_in_policies`.
+
+FLAG:
+On self-managed GitLab, by default this feature is available.
+To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `compliance_pipeline_in_policies`.
+On GitLab.com, this feature is available.
+
+The pipeline execution policy action introduces a new scan action type into
+scan execution policies for creating and enforcing custom CI in your target
+development projects.
+
+This custom scan type uses a remote CI configuration file to define the custom
+CI you want enforced. Scan execution policies then merge this file with the
+project's `.gitlab-ci.yml` to execute the compliance jobs for each project
+enforced by the policy.
+
+#### `ci_configuration_path` object
+
+| Field | Type | Required | Description |
+|-----------|---------------------|----------|-------------|
+| `project` | `string` | true | A project namespace path. |
+| `file` | `string` | true | The file name of the CI/CD YAML file. |
+| `ref` | `string` | false | The branch name, tag name, or commit SHA. If not specified, uses the default branch. |
+
+#### `scan` action type
+
+This action executes the selected `scan` with additional parameters when
+conditions for at least one rule in the defined policy are met.
+
+| Field | Type | Possible values | Description |
+|-------------------------|----------|-----------------|-------------|
+| `scan` | `string` | `custom` | The action's type. |
+| `ci_configuration` | `string` | | GitLab CI YAML as formatted as string. |
+| `ci_configuration_path` | object | | Object with project path and file name pointing to a CI configuration. |
+
+Note the following:
+
+- For `custom` scans, you must specify one of `ci_configuration` or `ci_configuration_path`.
+- `custom` scans are being executed for triggered rules only.
+- Jobs variables and stages definitions from `custom` scans take precedence over the project's CI/CD configuration.
+
+#### Example security policies project
+
+You can use this example in a `.gitlab/security-policies/policy.yml` file stored in a
+[security policy project](index.md#security-policy-project):
+
+```yaml
+---
+scan_execution_policy:
+- name: Create a custom scan that injects test job
+ description: This policy enforces pipeline configuration to have a job with DAST scan for release branches
+ enabled: true
+ rules:
+ - type: pipeline
+ branches:
+ - release/*
+ actions:
+ - scan: custom
+ ci_configuration: |-
+ test job:
+ stage: test
+ script:
+ - echo "Hello World"
+```
+
+In this example a `test job` is injected into the `test` stage of the pipeline, printing `Hello World`.
+
+### Security policy scopes
+
+> The `policy_scope` field was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135398) in GitLab 16.7 [with a flag](../../../administration/feature_flags.md) named `security_policies_policy_scope`.
+
+FLAG:
+On self-managed GitLab, by default this feature is available. To hide the feature,
+an administrator can [disable the feature flag](../../../administration/feature_flags.md)
+named `security_policies_policy_scope`.
+On GitLab.com, this feature is available.
+
+Security policy enforcement depends first on establishing a link between the group, subgroup, or
+project on which you want to enforce policies, and the security policy project that contains the
+policies. For example, if you are linking policies to a group, a group owner must create the link to
+the security policy project. Then, all policies in the security policy project are inherited by all
+projects in the group.
+
+You can refine a security policy's scope to:
+
+- _Include_ only projects containing a compliance framework label.
+- _Include_ or _exclude_ selected projects from enforcement.
+
+#### Policy scope schema
+
+| Field | Type | Required | Possible values | Description |
+|-------|------|----------|-----------------|-------------|
+| `policy_scope` | `object` | false | `compliance_frameworks`, `projects` | Scopes the policy based on compliance framework labels or projects you define. |
+
+#### `policy_scope` scope type
+
+| Field | Type | Possible values | Description |
+|-------|------|-----------------|-------------|
+| `compliance_frameworks` | `object` | `ids` | List of IDs of the compliance frameworks in scope of enforcement, in an `ids` array. |
+| `projects` | `object` | `including`, `excluding` | Use `excluding:` or `including:` then list the IDs of the projects you wish to include or exclude, in an `ids` array. |
+
+#### Example `policy.yml` with security policy scopes
+
+```yaml
+---
+scan_execution_policy:
+- name: Enforce DAST in every release pipeline
+ description: This policy enforces pipeline configuration to have a job with DAST scan for release branches
+ enabled: true
+ rules:
+ - type: pipeline
+ branches:
+ - release/*
+ actions:
+ - scan: dast
+ scanner_profile: Scanner Profile A
+ site_profile: Site Profile B
+ policy_scope:
+ compliance_frameworks:
+ ids:
+ - 2
+ - 11
+- name: Enforce Secret Detection and Container Scanning in every default branch pipeline
+ description: This policy enforces pipeline configuration to have a job with Secret Detection and Container Scanning scans for the default branch
+ enabled: true
+ rules:
+ - type: pipeline
+ branches:
+ - main
+ actions:
+ - scan: secret_detection
+ - scan: sast
+ variables:
+ SAST_EXCLUDED_ANALYZERS: brakeman
+ policy_scope:
+ projects:
+ excluding:
+ ids:
+ - 24
+ - 27
+```
diff --git a/doc/user/application_security/policies/scan-result-policies.md b/doc/user/application_security/policies/scan-result-policies.md
index 0fadd761fe4..e2ec6b8ae56 100644
--- a/doc/user/application_security/policies/scan-result-policies.md
+++ b/doc/user/application_security/policies/scan-result-policies.md
@@ -31,7 +31,7 @@ The following video gives you an overview of GitLab scan result policies:
- You must add the respective [security scanning tools](../index.md#application-coverage).
Otherwise, scan result policies do not have any effect.
-- The maximum number of policies is five.
+- The maximum number of scan result policies is five per security policy project.
- Each policy can have a maximum of five rules.
- All configured scanners must be present in the merge request's latest pipeline. If not, approvals are required even if some vulnerability criteria have not been met.
- Scan result policies evaluate findings and determine approval requirements based on the job artifact reports published in a completed pipeline. However, scan result policies do not check the integrity or authenticity of the scan results generated in the artifact reports.
@@ -45,10 +45,10 @@ A project can have multiple pipeline types configured. A single commit can initi
pipelines, each of which may contain a security scan.
- In GitLab 16.3 and later, the results of all completed pipelines for the latest commit in
-the merge request's source and target branch are evaluated and used to enforce the scan result policy.
-Parent-child pipelines and on-demand DAST pipelines are not considered.
+ the merge request's source and target branch are evaluated and used to enforce the scan result policy.
+ Parent-child pipelines and on-demand DAST pipelines are not considered.
- In GitLab 16.2 and earlier, only the results of the latest completed pipeline were evaluated
-when enforcing scan result policies.
+ when enforcing scan result policies.
## Scan result policy editor
@@ -92,9 +92,6 @@ the following sections and tables provide an alternative.
> The `approval_settings` fields were [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/418752) in GitLab 16.4 [with flags](../../../administration/feature_flags.md) named `scan_result_policies_block_unprotecting_branches`, `scan_result_any_merge_request`, or `scan_result_policies_block_force_push`. See the `approval_settings` section below for more information.
-FLAG:
-On self-managed GitLab, by default the `approval_settings` field is available. To hide the feature, an administrator can [disable the feature flags](../../../administration/feature_flags.md) named `scan_result_policies_block_unprotecting_branches`, `scan_result_any_merge_request` and `scan_result_policies_block_force_push`. See the `approval_settings` section below for more information. On GitLab.com, the `approval_settings` field is available.
-
| Field | Type | Required | Possible values | Description |
|---------------------|--------------------|----------|-----------------|----------------------------------------------------------|
| `name` | `string` | true | | Name of the policy. Maximum of 255 characters. |
@@ -121,7 +118,7 @@ This rule enforces the defined actions based on security scan findings.
| `scanners` | `array` of `string` | true | `sast`, `secret_detection`, `dependency_scanning`, `container_scanning`, `dast`, `coverage_fuzzing`, `api_fuzzing` | The security scanners for this rule to consider. `sast` includes results from both SAST and SAST IaC scanners. |
| `vulnerabilities_allowed` | `integer` | true | Greater than or equal to zero | Number of vulnerabilities allowed before this rule is considered. |
| `severity_levels` | `array` of `string` | true | `info`, `unknown`, `low`, `medium`, `high`, `critical` | The severity levels for this rule to consider. |
-| `vulnerability_states` | `array` of `string` | true | `newly_detected`, `detected`, `confirmed`, `resolved`, `dismissed`, `new_needs_triage`, `new_dismissed` | All vulnerabilities fall into two categories:<br><br>**Newly Detected Vulnerabilities** - the `newly_detected` policy option covers vulnerabilities identified in the merge request branch itself but that do not currently exist on the default branch. This policy option requires a pipeline to complete before the rule is evaluated so that it knows whether vulnerabilities are newly detected or not. Merge requests are blocked until the pipeline and necessary security scans are complete. The `newly_detected` option considers both of the following statuses:<br><br> • Detected<br> • Dismissed<br><br> The `new_needs_triage` option considers the status<br><br> • Detected<br><br> The `new_dismissed` option considers the status<br><br> • Dismissed<br><br>**Pre-Existing Vulnerabilities** - these policy options are evaluated immediately and do not require a pipeline complete as they consider only vulnerabilities previously detected in the default branch.<br><br> • `Detected` - the policy looks for vulnerabilities in the detected state.<br> • `Confirmed` - the policy looks for vulnerabilities in the confirmed state.<br> • `Dismissed` - the policy looks for vulnerabilities in the dismissed state.<br> • `Resolved` - the policy looks for vulnerabilities in the resolved state. |
+| `vulnerability_states` | `array` of `string` | true | `[]` or `newly_detected`, `detected`, `confirmed`, `resolved`, `dismissed`, `new_needs_triage`, `new_dismissed` | All vulnerabilities fall into two categories:<br><br>**Newly Detected Vulnerabilities** - the `newly_detected` policy option covers vulnerabilities identified in the merge request branch itself but that do not currently exist on the default branch. This policy option requires a pipeline to complete before the rule is evaluated so that it knows whether vulnerabilities are newly detected or not. Merge requests are blocked until the pipeline and necessary security scans are complete. The `newly_detected` option considers both of the following statuses:<br><br> • Detected<br> • Dismissed<br><br> The `new_needs_triage` option considers the status<br><br> • Detected<br><br> The `new_dismissed` option considers the status<br><br> • Dismissed<br><br>**Pre-Existing Vulnerabilities** - these policy options are evaluated immediately and do not require a pipeline complete as they consider only vulnerabilities previously detected in the default branch.<br><br> • `Detected` - the policy looks for vulnerabilities in the detected state.<br> • `Confirmed` - the policy looks for vulnerabilities in the confirmed state.<br> • `Dismissed` - the policy looks for vulnerabilities in the dismissed state.<br> • `Resolved` - the policy looks for vulnerabilities in the resolved state. <br><br>An empty array, `[]`, covers the same statuses as `newly_detected`. It is equivalent to specifying `['new_needs_triage', 'new_dismissed']`. |
| `vulnerability_attributes` | `object` | false | `{false_positive: boolean, fix_available: boolean}` | All vulnerability findings are considered by default. But filters can be applied for attributes to consider only vulnerability findings: <br><br> • With a fix available (`fix_available: true`)<br><br> • With no fix available (`fix_available: false`)<br> • That are false positive (`false_positive: true`)<br> • That are not false positive (`false_positive: false`)<br> • Or a combination of both. For example (`fix_available: true, false_positive: false`) |
| `vulnerability_age` | `object` | false | N/A | Filter pre-existing vulnerability findings by age. A vulnerability's age is calculated as the time since it was detected in the project. The criteria are `operator`, `value`, and `interval`.<br>- The `operator` criterion specifies if the age comparison used is older than (`greater_than`) or younger than (`less_than`).<br>- The `value` criterion specifies the numeric value representing the vulnerability's age.<br>- The `interval` criterion specifies the unit of measure of the vulnerability's age: `day`, `week`, `month`, or `year`.<br><br>Example: `operator: greater_than`, `value: 30`, `interval: day`. |
@@ -179,6 +176,7 @@ the defined policy.
## `approval_settings`
+> - The `block_group_branch_modification` field was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/420724) in GitLab 16.8 [with flag](../../../administration/feature_flags.md) named `scan_result_policy_block_group_branch_modification`. Disabled by default.
> - The `block_unprotecting_branches` field was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/423101) in GitLab 16.4 [with flag](../../../administration/feature_flags.md) named `scan_result_policy_settings`. Disabled by default.
> - The `scan_result_policy_settings` feature flag was replaced by the `scan_result_policies_block_unprotecting_branches` feature flag in 16.4.
> - The `block_unprotecting_branches` field was [replaced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137153) by `block_branch_modification` field in GitLab 16.7.
@@ -187,25 +185,26 @@ the defined policy.
> - The `prevent_approval_by_author`, `prevent_approval_by_commit_author`, `remove_approvals_with_new_commit`, and `require_password_to_approve` fields were [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/418752) in GitLab 16.4 [with flag](../../../administration/feature_flags.md) named `scan_result_any_merge_request`. Disabled by default.
> - The above fields were [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/423988) in GitLab 16.6.
> - The above fields were [enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/423988) in GitLab 16.7.
+> - Feature flag `scan_result_any_merge_request` [was removed](https://gitlab.com/gitlab-org/gitlab/-/issues/432127) in GitLab 16.8.
> - The `prevent_pushing_and_force_pushing` field was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/420629) in GitLab 16.4 [with flag](../../../administration/feature_flags.md) named `scan_result_policies_block_force_push`. Disabled by default.
> - The above field was [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/427260) in GitLab 16.6.
> - The above field was [enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/427260) in GitLab 16.7.
FLAG:
On self-managed GitLab, by default the `block_branch_modification` field is available. To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `scan_result_policies_block_unprotecting_branches`. On GitLab.com, this feature is available.
-On self-managed GitLab, by default the `prevent_approval_by_author`, `prevent_approval_by_commit_author`, `remove_approvals_with_new_commit`, and `require_password_to_approve` fields are available. To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `scan_result_any_merge_request`. On GitLab.com, this feature is available.
On self-managed GitLab, by default the `prevent_pushing_and_force_pushing` field is available. To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `scan_result_policies_block_force_push`. On GitLab.com, this feature is available.
The settings set in the policy overwrite settings in the project.
-| Field | Type | Required | Possible values | Applicable rule type | Description |
-|-------------------------------------|-----------|----------|-----------------|----------------------|-------------|
-| `block_branch_modification` | `boolean` | false | `true`, `false` | All | When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy. This ensures users cannot remove protection status from a branch to merge vulnerable code. |
-| `prevent_approval_by_author` | `boolean` | false | `true`, `false` | `Any merge request` | When enabled, merge request authors cannot approve their own MRs. This ensures code authors cannot introduce vulnerabilities and approve code to merge. |
-| `prevent_approval_by_commit_author` | `boolean` | false | `true`, `false` | `Any merge request` | When enabled, users who have contributed code to the MR are ineligible for approval. This ensures code committers cannot introduce vulnerabilities and approve code to merge. |
-| `remove_approvals_with_new_commit` | `boolean` | false | `true`, `false` | `Any merge request` | When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced. |
-| `require_password_to_approve` | `boolean` | false | `true`, `false` | `Any merge request` | When enabled, there will be password confirmation on approvals. Password confirmation adds an extra layer of security. |
-| `prevent_pushing_and_force_pushing` | `boolean` | false | `true`, `false` | All | When enabled, prevents users from pushing and force pushing to a protected branch if that branch is included in the security policy. This ensures users do not bypass the merge request process to add vulnerable code to a branch. |
+| Field | Type | Required | Possible values | Applicable rule type | Description |
+|-------------------------------------|-----------------------|----------|---------------------------------------------------------------|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `block_branch_modification` | `boolean` | false | `true`, `false` | All | When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy. This ensures users cannot remove protection status from a branch to merge vulnerable code. |
+| `block_group_branch_modification` | `boolean` or `object` | false | `true`, `false`, `{ enabled: boolean, exceptions: [string] }` | All | When enabled, prevents a user from removing group-level protected branches on every group the policy applies to. If `block_branch_modification` is `true`, implicitly defaults to `true`. |
+| `prevent_approval_by_author` | `boolean` | false | `true`, `false` | `Any merge request` | When enabled, merge request authors cannot approve their own MRs. This ensures code authors cannot introduce vulnerabilities and approve code to merge. |
+| `prevent_approval_by_commit_author` | `boolean` | false | `true`, `false` | `Any merge request` | When enabled, users who have contributed code to the MR are ineligible for approval. This ensures code committers cannot introduce vulnerabilities and approve code to merge. |
+| `remove_approvals_with_new_commit` | `boolean` | false | `true`, `false` | `Any merge request` | When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced. |
+| `require_password_to_approve` | `boolean` | false | `true`, `false` | `Any merge request` | When enabled, there will be password confirmation on approvals. Password confirmation adds an extra layer of security. |
+| `prevent_pushing_and_force_pushing` | `boolean` | false | `true`, `false` | All | When enabled, prevents users from pushing and force pushing to a protected branch if that branch is included in the security policy. This ensures users do not bypass the merge request process to add vulnerable code to a branch. |
## Example security scan result policies project
@@ -300,10 +299,20 @@ actions:
## Understanding scan result policy approvals
+> The branch comparison logic for `scan_finding` was [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/428518) in GitLab 16.8 [with a flag](../../../administration/feature_flags.md) named `scan_result_policy_merge_base_pipeline`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available, an administrator can [enable the feature flag](../../../administration/feature_flags.md) named `scan_result_policy_merge_base_pipeline`.
+On GitLab.com, this feature is not available.
+
### Scope of scan result policy comparison
-- To determine when approval is required on a merge request, we compare the latest completed pipelines for each supported pipeline source for the source and target branch (for example, `feature`/`main`). This ensures the most comprehensive evaluation of scan results.
-- We compare findings from the latest completed pipelines that ran on `HEAD` of the source and target branch.
+- To determine when approval is required on a merge request, we compare completed pipelines for each supported pipeline source for the source and target branch (for example, `feature`/`main`). This ensures the most comprehensive evaluation of scan results.
+- For the source branch, the comparison pipeline is its latest completed `HEAD` pipeline.
+- For `license_finding` rules, we compare to a common ancestor's latest completed pipeline.
+- For `scan_finding` rules, the comparison pipeline may differ:
+ - If the `scan_result_policy_merge_base_pipeline` feature flag is enabled, we compare to a common ancestor's latest completed pipeline.
+ - Otherwise, we compare to the target branch's latest completed `HEAD` pipeline.
- Scan result policies considers all supported pipeline sources (based on the [`CI_PIPELINE_SOURCE` variable](../../../ci/variables/predefined_variables.md)) when comparing results from both the source and target branches when determining if a merge request requires approval. Pipeline sources `webide` and `parent_pipeline` are not supported.
### Accepting risk and ignoring vulnerabilities in future merge requests
@@ -352,6 +361,78 @@ We have identified in [epic 11020](https://gitlab.com/groups/gitlab-org/-/epics/
- Findings or errors that cause approval to be required on a scan result policy may not be evident in the Security MR Widget. By using `merge base` in [issue 428518](https://gitlab.com/gitlab-org/gitlab/-/issues/428518) some cases will be addressed. We will additionally be [displaying more granular details](https://gitlab.com/groups/gitlab-org/-/epics/11185) about what caused security policy violations.
- Security policy violations are distinct compared to findings displayed in the MR widgets. Some violations may not be present in the MR widget. We are working to harmonize our features in [epic 11020](https://gitlab.com/groups/gitlab-org/-/epics/11020) and to display policy violations explicitly in merge requests in [epic 11185](https://gitlab.com/groups/gitlab-org/-/epics/11185).
+## Experimental features **(EXPERIMENT)**
+
+### Security policy scopes
+
+> The `policy_scope` field was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135398) in GitLab 16.7 [with a flag](../../../administration/feature_flags.md) named `security_policies_policy_scope`.
+
+FLAG:
+On self-managed GitLab, by default this feature is available. To hide the feature,
+an administrator can [disable the feature flag](../../../administration/feature_flags.md)
+named `security_policies_policy_scope`.
+On GitLab.com, this feature is available.
+
+Security policy enforcement depends first on establishing a link between the group, subgroup, or
+project on which you want to enforce policies, and the security policy project that contains the
+policies. For example, if you are linking policies to a group, a group owner must create the link to
+the security policy project. Then, all policies in the security policy project are inherited by all
+projects in the group.
+
+You can refine a security policy's scope to:
+
+- _Include_ only projects containing a compliance framework label.
+- _Include_ or _exclude_ selected projects from enforcement.
+
+#### Policy scope schema
+
+| Field | Type | Required | Possible values | Description |
+|-------|------|----------|-----------------|-------------|
+| `policy_scope` | `object` | false | `compliance_frameworks`, `projects` | Scopes the policy based on compliance framework labels or projects you define. |
+
+#### `policy_scope` scope type
+
+| Field | Type | Possible values | Description |
+|-------|------|-----------------|-------------|
+| `compliance_frameworks` | `object` | `ids` | List of IDs of the compliance frameworks in scope of enforcement, in an `ids` array. |
+| `projects` | `object` | `including`, `excluding` | Use `excluding:` or `including:` then list the IDs of the projects you wish to include or exclude, in an `ids` array. |
+
+#### Example `policy.yml` with security policy scopes
+
+```yaml
+---
+scan_result_policy:
+- name: critical vulnerability CS approvals
+ description: critical severity level only for container scanning
+ enabled: true
+ rules:
+ - type: scan_finding
+ branches:
+ - main
+ scanners:
+ - container_scanning
+ vulnerabilities_allowed: 1
+ severity_levels:
+ - critical
+ vulnerability_states:
+ - newly_detected
+ actions:
+ - type: require_approval
+ approvals_required: 1
+ user_approvers:
+ - adalberto.dare
+ policy_scope:
+ compliance_frameworks:
+ ids:
+ - 2
+ - 11
+ projects:
+ including:
+ ids:
+ - 24
+ - 27
+```
+
## Troubleshooting
### Merge request rules widget shows a scan result policy is invalid or duplicated **(ULTIMATE SELF)**
diff --git a/doc/user/application_security/sast/analyzers.md b/doc/user/application_security/sast/analyzers.md
index a813ac9888d..1f5340758c6 100644
--- a/doc/user/application_security/sast/analyzers.md
+++ b/doc/user/application_security/sast/analyzers.md
@@ -54,7 +54,7 @@ support the following features:
- [Scan projects](index.md#supported-languages-and-frameworks)
- [Multi-project support](index.md#multi-project-support)
- [Offline support](index.md#running-sast-in-an-offline-environment)
-- [Emits JSON report format](index.md#reports-json-format)
+- [Output results in JSON report format](index.md#output)
- [SELinux support](index.md#running-sast-in-selinux)
## Post analyzers
diff --git a/doc/user/application_security/sast/customize_rulesets.md b/doc/user/application_security/sast/customize_rulesets.md
index 992e99f1cc7..a9ef89077ca 100644
--- a/doc/user/application_security/sast/customize_rulesets.md
+++ b/doc/user/application_security/sast/customize_rulesets.md
@@ -28,7 +28,7 @@ You can disable predefined rules for any SAST analyzer.
When you disable a rule:
-- Most analyzers still scan for the vulnerability. The results are removed as a processing step after the scan completes, and they don't appear in the [`gl-sast-report.json` artifact](index.md#reports-json-format).
+- Most analyzers still scan for the vulnerability. The results are removed as a processing step after the scan completes, and they don't appear in the [`gl-sast-report.json` artifact](index.md#output).
- Findings for the disabled rule no longer appear in the [pipeline security tab](../index.md#pipeline-security-tab).
- Existing findings for the disabled rule on the default branch are marked as [`No longer detected`](../vulnerability_report/index.md#activity-filter) in the [vulnerability report](../index.md#vulnerability-report).
@@ -196,7 +196,7 @@ rule that you wish to modify.
| `value` | The value of the identifier used by the predefined rule. |
You can look up the correct values for `type` and `value` by viewing the
-[`gl-sast-report.json`](index.md#reports-json-format) produced by the analyzer.
+[`gl-sast-report.json`](index.md#output) produced by the analyzer.
You can download this file as a job artifact from the analyzer's CI job.
For example, the snippet below shows a finding from a `semgrep` rule with three
diff --git a/doc/user/application_security/sast/img/sast_inline_indicator_v16_7.png b/doc/user/application_security/sast/img/sast_inline_indicator_v16_7.png
index c86f536afc4..582e55f1d0a 100644
--- a/doc/user/application_security/sast/img/sast_inline_indicator_v16_7.png
+++ b/doc/user/application_security/sast/img/sast_inline_indicator_v16_7.png
Binary files differ
diff --git a/doc/user/application_security/sast/img/sast_mr_widget_v16_7.png b/doc/user/application_security/sast/img/sast_mr_widget_v16_7.png
index 199f8b6d322..b293989ae21 100644
--- a/doc/user/application_security/sast/img/sast_mr_widget_v16_7.png
+++ b/doc/user/application_security/sast/img/sast_mr_widget_v16_7.png
Binary files differ
diff --git a/doc/user/application_security/sast/index.md b/doc/user/application_security/sast/index.md
index ab6d5212227..cddd6a1f14d 100644
--- a/doc/user/application_security/sast/index.md
+++ b/doc/user/application_security/sast/index.md
@@ -54,36 +54,39 @@ For more information about our plans for language support in SAST, see the [cate
| Language / framework | [Analyzer](analyzers.md) used for scanning | Minimum supported GitLab version |
|------------------------------|--------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
-| .NET (all versions, C# only) | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 15.4 |
+| .NET (all versions, C# only) | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 15.4 |
| Apex (Salesforce) | [PMD](https://gitlab.com/gitlab-org/security-products/analyzers/pmd-apex) | 12.1 |
-| C | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 14.2 |
+| C | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 14.2 |
| C/C++ | [Flawfinder](https://gitlab.com/gitlab-org/security-products/analyzers/flawfinder) | 10.7 |
| Elixir (Phoenix) | [Sobelow](https://gitlab.com/gitlab-org/security-products/analyzers/sobelow) | 11.1 |
-| Go | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 14.4 |
+| Go | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 14.4 |
| Groovy<sup>1</sup> | [SpotBugs](https://gitlab.com/gitlab-org/security-products/analyzers/spotbugs) with the find-sec-bugs plugin | 11.3 (Gradle) & 11.9 (Maven, SBT) |
| Helm Charts | [Kubesec](https://gitlab.com/gitlab-org/security-products/analyzers/kubesec) | 13.1 |
-| Java (any build system) | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 14.10 |
+| Java (any build system) | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 14.10 |
| Java (Android) | [MobSF (beta)](https://gitlab.com/gitlab-org/security-products/analyzers/mobsf) | 13.5 |
-| JavaScript | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 13.10 |
+| JavaScript | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 13.10 |
| Kotlin (Android) | [MobSF (beta)](https://gitlab.com/gitlab-org/security-products/analyzers/mobsf) | 13.5 |
| Kotlin (General)<sup>1</sup> | [SpotBugs](https://gitlab.com/gitlab-org/security-products/analyzers/spotbugs) with the find-sec-bugs plugin | 13.11 |
| Kubernetes manifests | [Kubesec](https://gitlab.com/gitlab-org/security-products/analyzers/kubesec) | 12.6 |
| Node.js | [NodeJsScan](https://gitlab.com/gitlab-org/security-products/analyzers/nodejs-scan) | 11.1 |
| Objective-C (iOS) | [MobSF (beta)](https://gitlab.com/gitlab-org/security-products/analyzers/mobsf) | 13.5 |
| PHP | [phpcs-security-audit](https://gitlab.com/gitlab-org/security-products/analyzers/phpcs-security-audit) | 10.8 |
-| Python | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 13.9 |
-| React | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 13.10 |
+| Python | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 13.9 |
+| React | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 13.10 |
| Ruby | [brakeman](https://gitlab.com/gitlab-org/security-products/analyzers/brakeman) | 13.9 |
| Ruby on Rails | [brakeman](https://gitlab.com/gitlab-org/security-products/analyzers/brakeman) | 10.3 |
-| Scala (any build system) | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 16.0 |
-| Scala<sup>1</sup> | [SpotBugs](https://gitlab.com/gitlab-org/security-products/analyzers/spotbugs) with the find-sec-bugs plugin | 11.0 (SBT) & 11.9 (Gradle, Maven) |
+| Scala (any build system) | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 16.0 |
+| Scala <sup>1</sup> | [SpotBugs](https://gitlab.com/gitlab-org/security-products/analyzers/spotbugs) with the find-sec-bugs plugin | 11.0 (SBT) & 11.9 (Gradle, Maven) |
| Swift (iOS) | [MobSF (beta)](https://gitlab.com/gitlab-org/security-products/analyzers/mobsf) | 13.5 |
-| TypeScript | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/RULES.md) | 13.10 |
+| TypeScript | [Semgrep](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) with [GitLab-managed rules](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/#sast-rules) | 13.10 |
-1. The SpotBugs-based analyzer supports [Gradle](https://gradle.org/), [Maven](https://maven.apache.org/), and [SBT](https://www.scala-sbt.org/). It can also be used with variants like the
-[Gradle wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html),
-[Grails](https://grails.org/),
-and the [Maven wrapper](https://github.com/takari/maven-wrapper). However, SpotBugs has [limitations](https://gitlab.com/gitlab-org/gitlab/-/issues/350801) when used against [Ant](https://ant.apache.org/)-based projects. We recommend using the Semgrep-based analyzer for Ant-based Java or Scala projects.
+<html>
+<small>Footnotes:
+ <ol>
+ <li>The SpotBugs-based analyzer supports [Gradle](https://gradle.org/), [Maven](https://maven.apache.org/), and [SBT](https://www.scala-sbt.org/). It can also be used with variants like the [Gradle wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html), [Grails](https://grails.org/), and the [Maven wrapper](https://github.com/takari/maven-wrapper). However, SpotBugs has [limitations](https://gitlab.com/gitlab-org/gitlab/-/issues/350801) when used against [Ant](https://ant.apache.org/)-based projects. We recommend using the Semgrep-based analyzer for Ant-based Java or Scala projects.</li>
+ </ol>
+</small>
+</html>
## End of supported analyzers
@@ -220,7 +223,7 @@ as shown in the following table:
| Automatically scan code with [appropriate analyzers](#supported-languages-and-frameworks) | **{check-circle}** | **{check-circle}** |
| [Configure SAST scanners](#configuration) | **{check-circle}** | **{check-circle}** |
| [Customize SAST settings](#available-cicd-variables) | **{check-circle}** | **{check-circle}** |
-| Download [JSON Report](#reports-json-format) | **{check-circle}** | **{check-circle}** |
+| Download [SAST output](#output) | **{check-circle}** | **{check-circle}** |
| See new findings in merge request widget | **{dotted-circle}** | **{check-circle}** |
| See new findings in merge request changes | **{dotted-circle}** | **{check-circle}** |
| [Manage vulnerabilities](../vulnerabilities/index.md) | **{dotted-circle}** | **{check-circle}** |
@@ -230,25 +233,38 @@ as shown in the following table:
| [Detect False Positives](#false-positive-detection) | **{dotted-circle}** | **{check-circle}** |
| [Track moved vulnerabilities](#advanced-vulnerability-tracking) | **{dotted-circle}** | **{check-circle}** |
+## Output
+
+SAST outputs the file `gl-sast-report.json` as a job artifact. The file contains details of all
+detected vulnerabilities. You can
+[download](../../../ci/jobs/job_artifacts.md#download-job-artifacts) the file for processing
+outside GitLab.
+
+For more information, see:
+
+- [SAST report file schema](https://gitlab.com/gitlab-org/security-products/security-report-schemas/-/blob/master/dist/sast-report-format.json)
+- [Example SAST report file](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/qa/expect/js/default/gl-sast-report.json)
+
## View SAST results
-SAST results are shown in the:
+The [SAST report file](#output) is processed by GitLab and the details are shown in the UI:
- Merge request widget
- Merge request changes view
-- Vulnerability Report
+- Vulnerability report
### Merge request widget **(ULTIMATE ALL)**
SAST results display in the merge request widget area if a report from the target
-branch is available for comparison. The merge request widget displays SAST findings and resolutions that
+branch is available for comparison. The merge request widget displays SAST results and resolutions that
were introduced by the changes made in the merge request.
![Security Merge request widget](img/sast_mr_widget_v16_7.png)
### Merge request changes view **(ULTIMATE ALL)**
-> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/10959) in GitLab 16.6 with a [flag](../../../administration/feature_flags.md) named `sast_reports_in_inline_diff`. Disabled by default.
+> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/10959) in GitLab 16.6 with a [flag](../../../administration/feature_flags.md) named `sast_reports_in_inline_diff`. Disabled by default.
+> - Enabled by default in GitLab 16.8.
FLAG:
On self-managed GitLab, by default this feature is not available. To make it available, an administrator can [enable the feature flag](../../../administration/feature_flags.md) named `sast_reports_in_inline_diff`.
@@ -303,10 +319,6 @@ When downloading, you always receive the most recent SAST artifact available.
You can enable and configure SAST by using the UI, either with the default settings or with customizations.
The method you can use depends on your GitLab license tier.
-### Running jobs in merge request pipelines
-
-See [Use security scanning tools with merge request pipelines](../index.md#use-security-scanning-tools-with-merge-request-pipelines)
-
#### Configure SAST with customizations **(ULTIMATE ALL)**
> [Removed](https://gitlab.com/gitlab-org/gitlab/-/issues/410013) individual SAST analyzers configuration options from the UI in GitLab 16.2.
@@ -505,6 +517,10 @@ spotbugs-sast:
sast: gl-sast-report.json
```
+### Running jobs in merge request pipelines
+
+See [Use security scanning tools with merge request pipelines](../index.md#use-security-scanning-tools-with-merge-request-pipelines).
+
### Available CI/CD variables
SAST can be configured using the [`variables`](../../../ci/yaml/index.md#variables) parameter in
@@ -593,6 +609,7 @@ Some analyzers can be customized with CI/CD variables.
| `PHPCS_SECURITY_AUDIT_PHP_EXTENSIONS` | phpcs-security-audit | Comma separated list of additional PHP Extensions. |
| `SAST_SEMGREP_METRICS` | Semgrep | Set to `"false"` to disable sending anonymized scan metrics to [r2c](https://semgrep.dev). Default: `true`. Introduced in GitLab 14.0. GitLab team members can view more information in this confidential issue: `https://gitlab.com/gitlab-org/gitlab/-/issues/330565`. |
| `SAST_SCANNER_ALLOWED_CLI_OPTS` | Semgrep | CLI options (arguments with value, or flags) that are passed to the underlying security scanner when running scan operation. Only a limited set of [options](#security-scanner-configuration) are accepted. Separate a CLI option and its value using either a blank space or equals (`=`) character. For example: `name1 value1` or `name1=value1`. Multiple options must be separated by blank spaces. For example: `name1 value1 name2 value2`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/368565) in GitLab 15.3. |
+| `SAST_RULESET_GIT_REFERENCE` | Semgrep and nodejs-scan | Defines a path to a custom ruleset configuration. If a project has a `.gitlab/sast-ruleset.toml` file committed, that local configuration takes precedence and the file from `SAST_RULESET_GIT_REFERENCE` isn’t used. This variable is available for the Ultimate tier only. |
#### Security scanner configuration
@@ -646,21 +663,6 @@ variables:
SAST_EXPERIMENTAL_FEATURES: "true"
```
-## Reports JSON format
-
-SAST outputs a report file in JSON format. The report file contains details of all found vulnerabilities.
-To download the report file, you can either:
-
-- Download the file from the CI/CD pipelines page.
-- In the pipelines tab on merge requests, set [`artifacts: paths`](../../../ci/yaml/index.md#artifactspaths) to `gl-sast-report.json`.
-
-For information, see [Download job artifacts](../../../ci/jobs/job_artifacts.md#download-job-artifacts).
-
-For details of the report file's schema, see
-[SAST report file schema](https://gitlab.com/gitlab-org/security-products/security-report-schemas/-/blob/master/dist/sast-report-format.json).
-
-For an example SAST report file, see [`gl-sast-report.json`](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep/-/blob/main/qa/expect/js/default/gl-sast-report.json) example.
-
## Running SAST in an offline environment
For self-managed GitLab instances in an environment with limited, restricted, or intermittent access
diff --git a/doc/user/application_security/secret_detection/index.md b/doc/user/application_security/secret_detection/index.md
index bf7375a58d7..9e2d67237d3 100644
--- a/doc/user/application_security/secret_detection/index.md
+++ b/doc/user/application_security/secret_detection/index.md
@@ -56,17 +56,17 @@ If you operate a cloud or SaaS product and you're interested in partnering with
Different features are available in different [GitLab tiers](https://about.gitlab.com/pricing/).
-| Capability | In Free & Premium | In Ultimate |
-|:---------------------------------------------------------------- |:-----------------------|:-----------------------|
-| [Configure Secret Detection scanner](#enable-secret-detection) | **{check-circle}** Yes | **{check-circle}** Yes |
-| [Customize Secret Detection settings](#configure-scan-settings) | **{check-circle}** Yes | **{check-circle}** Yes |
-| Download [JSON Report](../sast/index.md#reports-json-format) | **{check-circle}** Yes | **{check-circle}** Yes |
+| Capability | In Free & Premium | In Ultimate |
+|:-----------------------------------------------------------------------------------------------------|:-----------------------|:-----------------------|
+| [Configure Secret Detection scanner](#enable-secret-detection) | **{check-circle}** Yes | **{check-circle}** Yes |
+| [Customize Secret Detection settings](#configure-scan-settings) | **{check-circle}** Yes | **{check-circle}** Yes |
+| Download [SAST output](../sast/index.md#output) | **{check-circle}** Yes | **{check-circle}** Yes |
| [Check text for potential secrets](#warnings-for-potential-leaks-in-text-content) before it's posted | **{check-circle}** Yes | **{check-circle}** Yes |
-| See new findings in the merge request widget | **{dotted-circle}** No | **{check-circle}** Yes |
-| View identified secrets in the pipelines' **Security** tab | **{dotted-circle}** No | **{check-circle}** Yes |
-| [Manage vulnerabilities](../vulnerability_report/index.md) | **{dotted-circle}** No | **{check-circle}** Yes |
-| [Access the Security Dashboard](../security_dashboard/index.md) | **{dotted-circle}** No | **{check-circle}** Yes |
-| [Customize Secret Detection rulesets](#custom-rulesets) | **{dotted-circle}** No | **{check-circle}** Yes |
+| See new findings in the merge request widget | **{dotted-circle}** No | **{check-circle}** Yes |
+| View identified secrets in the pipelines' **Security** tab | **{dotted-circle}** No | **{check-circle}** Yes |
+| [Manage vulnerabilities](../vulnerability_report/index.md) | **{dotted-circle}** No | **{check-circle}** Yes |
+| [Access the Security Dashboard](../security_dashboard/index.md) | **{dotted-circle}** No | **{check-circle}** Yes |
+| [Customize Secret Detection rulesets](#custom-rulesets) | **{dotted-circle}** No | **{check-circle}** Yes |
## Coverage
@@ -110,17 +110,13 @@ Secret Detection can detect if a secret was added in one commit and removed in a
[merge request pipelines](../../../ci/pipelines/merge_request_pipelines.md). Secret Detection's
results are only available after the pipeline is completed.
-## Running jobs in merge request pipelines
-
-See [Use security scanning tools with merge request pipelines](../index.md#use-security-scanning-tools-with-merge-request-pipelines)
-
## Enable Secret Detection
Prerequisites:
- Linux-based GitLab Runner with the [`docker`](https://docs.gitlab.com/runner/executors/docker.html) or
-[`kubernetes`](https://docs.gitlab.com/runner/install/kubernetes.html) executor. If you're using the
-shared runners on GitLab.com, this is enabled by default.
+ [`kubernetes`](https://docs.gitlab.com/runner/install/kubernetes.html) executor. If you're using the
+ shared runners on GitLab.com, this is enabled by default.
- Windows Runners are not supported.
- CPU architectures other than amd64 are not supported.
- If you use your own runners, make sure the Docker version installed is **not** `19.03.0`. See
@@ -265,6 +261,10 @@ For example:
"A personal token for GitLab will look like glpat-JUST20LETTERSANDNUMB" #gitleaks:allow
```
+### Running jobs in merge request pipelines
+
+See [Use security scanning tools with merge request pipelines](../index.md#use-security-scanning-tools-with-merge-request-pipelines).
+
### Available CI/CD variables
Secret Detection can be customized by defining available CI/CD variables:
diff --git a/doc/user/application_security/secret_detection/pre_receive.md b/doc/user/application_security/secret_detection/pre_receive.md
index 1e7ea4aaaeb..8bb56644926 100644
--- a/doc/user/application_security/secret_detection/pre_receive.md
+++ b/doc/user/application_security/secret_detection/pre_receive.md
@@ -29,7 +29,9 @@ Prerequisites:
## Limitations
-This feature only scans non-binary blobs under 1 MiB in size. Binary blobs and blobs larger than 1 MiB are not scanned.
+- This feature only scans non-binary blobs under 1 MiB in size. Binary blobs and blobs larger than 1 MiB are not scanned.
+- The scan does not analyze the content of a commit if it is identical to the content of another file already present in the source code.
+- The scan skips analyzing files that are renamed, deleted, or moved, unless their content is modified in the same commit.
## Resolve a blocked push
@@ -53,15 +55,7 @@ If the blocked secret appears earlier in your Git history:
## Skip secret detection
-In some cases, it may be necessary to skip pre-receive secret detection. For example, a developer may need to commit a placeholder secret for testing, or a user may want to bypass secret detection due to a Git operation timeout. To skip secret detection for a particular secret, add `# gitleaks:allow` to the end of the line. To skip secret detection for all commits in a push, add `[skip secret detection]` to one of the commit messages. For example:
-
-```ruby
-# This secret will be skipped due to gitleaks:allow.
-FAKE_TOKEN = allowfaketoken123 # gitleaks:allow
-
-# This secret will be scanned, and the push will be rejected.
-REAL_TOKEN = rejectrealtoken123
-```
+In some cases, it may be necessary to skip pre-receive secret detection. For example, a developer may need to commit a placeholder secret for testing, or a user may want to bypass secret detection due to a Git operation timeout. To skip secret detection for all commits in a push, add `[skip secret detection]` to one of the commit messages. For example:
```shell
# These commits are in the same push. Both will not be scanned.
diff --git a/doc/user/application_security/secure_your_application.md b/doc/user/application_security/secure_your_application.md
index b35de7827e8..095796f3dc4 100644
--- a/doc/user/application_security/secure_your_application.md
+++ b/doc/user/application_security/secure_your_application.md
@@ -1,6 +1,7 @@
---
stage: Secure
group: Static Analysis
+description: Container, dependency, and vulnerability scans.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/user/application_security/security_dashboard/index.md b/doc/user/application_security/security_dashboard/index.md
index 405017ab023..e9f3a3a2c0b 100644
--- a/doc/user/application_security/security_dashboard/index.md
+++ b/doc/user/application_security/security_dashboard/index.md
@@ -20,6 +20,12 @@ The data provided by the Security Dashboards can be used supply to insight on wh
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview, see [Security Dashboard](https://www.youtube.com/watch?v=Uo-pDns1OpQ).
+## Vulnerability metrics in the Value Streams Dashboard
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/383697) in GitLab 16.0.
+
+You can view vulnerability metrics also in the [Value Streams Dashboard](../../../user/analytics/value_streams_dashboard.md) comparison panel, which helps you understand security exposure in the context of your organization's software delivery workflows.
+
## Prerequisites
To view the Security Dashboards, the following is required:
diff --git a/doc/user/application_security/vulnerability_report/index.md b/doc/user/application_security/vulnerability_report/index.md
index 23454bf387a..620d8c75e52 100644
--- a/doc/user/application_security/vulnerability_report/index.md
+++ b/doc/user/application_security/vulnerability_report/index.md
@@ -133,6 +133,10 @@ The content of the Project filter depends on the current level:
### Activity filter
+> Introduced in GitLab 16.7 [with a flag](../../../administration/feature_flags.md) named `activity_filter_has_remediations`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default the Solution Available filter is not available. To make it available, an administrator can [enable the feature flag](../../../administration/feature_flags.md) named `activity_filter_has_remediations`. On GitLab.com, this feature is not available. This feature is not ready for production use.
The activity filter behaves differently from the other filters. You can select only one value in
each category. To remove a filter, from the activity filter dropdown list select the filter you want to remove.
@@ -141,7 +145,7 @@ Selection behavior when using the activity filter:
- **Activity**
- **All activity**: Vulnerabilities with any activity status (same as ignoring this filter). Selecting this deselects all other activity filter options.
- **Detection**
- - **Still detected**: Vulnerabilities that are still detected in the latest pipeline scan of the `default` branch.
+ - **Still detected** (default): Vulnerabilities that are still detected in the latest pipeline scan of the `default` branch.
- **No longer detected**: Vulnerabilities that are no longer detected in the latest pipeline scan of the `default` branch.
- **Issue**
- **Has issues**: Vulnerabilities with one or more associated issues.
@@ -149,6 +153,9 @@ Selection behavior when using the activity filter:
- **Merge request**
- **Has merge request**: Vulnerabilities with one or more associated merge requests.
- **Does not have merge request**: Vulnerabilities without an associated merge request.
+- **Solution available**
+ - **Has a solution**: Vulnerabilities with an available solution.
+ - **Does not have a solution**: Vulnerabilities without an available solution.
## View details of a vulnerability
@@ -181,10 +188,13 @@ To change the status of vulnerabilities:
- One or more vulnerabilities, select the checkbox beside each vulnerability.
- All vulnerabilities on the page, select the checkbox in the table header.
1. In the **Set status** dropdown list, select the desired status.
-1. If the **Dismissed** status is chosen, select the desired reason in the **Set dismissal reason** dropdown list.
-1. In the **Add a comment** input, you can provide a comment. For the **Dismissed** status, a comment is required.
+1. If the **Dismiss** status is chosen, select the desired reason in the **Set dismissal reason** dropdown list.
+1. In the **Add a comment** input, you can provide a comment. For the **Dismiss** status, a comment is required.
1. Select **Change status**.
+The status of the selected vulnerabilities is updated and the content of the vulnerability report is
+refreshed.
+
![Project Vulnerability Report](img/project_security_dashboard_status_change_v16_0.png)
## Sort vulnerabilities by date detected
@@ -195,6 +205,8 @@ To sort vulnerabilities by the date each vulnerability was detected, select the
## Export vulnerability details
+> Added "Dismissal Reason" as a column in the CSV export [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/434076) in GitLab 16.8.
+
You can export details of the vulnerabilities listed in the Vulnerability Report. The export format
is CSV (comma separated values). All vulnerabilities are included because filters do not
apply to the export.
@@ -219,6 +231,7 @@ Fields included are:
- Comments
- Full Path
- CVSS Vectors
+- [Dismissal Reason](../vulnerabilities/index.md#vulnerability-dismissal-reasons)
NOTE:
Full details are available through our
diff --git a/doc/user/application_security/vulnerability_report/pipeline.md b/doc/user/application_security/vulnerability_report/pipeline.md
index e60ac7d4c21..41cc323f3e1 100644
--- a/doc/user/application_security/vulnerability_report/pipeline.md
+++ b/doc/user/application_security/vulnerability_report/pipeline.md
@@ -101,6 +101,29 @@ To view findings, either:
NOTE:
This does not apply for the vulnerabilities existing on the default branch.
+## Change status of findings
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/331408) in GitLab 16.7 [with a flag](../../../administration/feature_flags.md) named `pipeline_security_dashboard_graphql`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available, an administrator can [enable the feature flag](../../../administration/feature_flags.md) named `pipeline_security_dashboard_graphql`.
+On GitLab.com, this feature is not available.
+
+To change the status of findings to **Dismiss** or **Needs triage**:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Build > Pipelines**.
+1. Select a pipeline and select the **Security** tab.
+1. To select:
+ - One or more findings, select the checkbox beside each finding.
+ - All findings on the page, select the checkbox in the table header.
+1. In the **Set status** dropdown list, select the desired status.
+1. If the **Dismiss** status is chosen, select the desired reason in the **Set dismissal reason** dropdown list.
+1. In the **Add a comment** input, you can provide a comment. For the **Dismiss** status, a comment is required.
+1. Select **Change status**.
+
+The status of the selected findings is updated and the content of the security tab is refreshed.
+
## Deduplication process
When a pipeline contains jobs that produce multiple security reports of the same type, it is possible that the same
@@ -159,7 +182,7 @@ appear in a report.
- Deduplication result: duplicates because all criteria match, and type identifiers are ignored.
Only one identifier needs to match, in this case CVE-2022-25510.
-The examples above don't include the raw location values. Each scan type defines its own
-`fingerprint_data`, which is used to generate a `SHA1` hash that is used as the `location_fingerprint`.
-You can find definitions for each scan type [`gitlab/lib/gitlab/ci/reports/security/locations`](https://gitlab.com/gitlab-org/gitlab/-/tree/01c69e97340b7c1c7e30c0caec8506910b6503c8/lib/gitlab/ci/reports/security/locations)
-and [`gitlab/ee/lib/gitlab/ci/reports/security/locations`](https://gitlab.com/gitlab-org/gitlab/-/tree/01c69e97340b7c1c7e30c0caec8506910b6503c8/ee/lib/gitlab/ci/reports/security/locations).
+You can find definitions for each scan type [`gitlab/lib/gitlab/ci/reports/security/locations`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/reports/security/locations)
+and [`gitlab/ee/lib/gitlab/ci/reports/security/locations`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/lib/gitlab/ci/reports/security/locations).
+
+For instance, for `container_scanning` type the location is defined by Docker image name without tag. However if the image tag contains at least one letter and/or is longer than 8 characters, it isn't considered a duplicate. So, locations `registry.gitlab.com/group-name/project-name/image1:12345019:libcrypto3` and `registry.gitlab.com/group-name/project-name/image1:libcrypto3` are treated as identical while `registry.gitlab.com/group-name/project-name/image1:v19202021:libcrypto3` and `registry.gitlab.com/group-name/project-name/image1:libcrypto3` are considered different.
diff --git a/doc/user/award_emojis.md b/doc/user/award_emojis.md
deleted file mode 100644
index 09f7b4c77fa..00000000000
--- a/doc/user/award_emojis.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'emoji_reactions.md'
-remove_date: '2023-12-20'
----
-
-This document was moved to [another location](emoji_reactions.md).
-
-<!-- This redirect file can be deleted after <2023-12-20>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/clusters/agent/index.md b/doc/user/clusters/agent/index.md
index 66e67f56172..a764d0006a1 100644
--- a/doc/user/clusters/agent/index.md
+++ b/doc/user/clusters/agent/index.md
@@ -63,9 +63,9 @@ GitLab in a Kubernetes cluster, you might need a different version of Kubernetes
You can upgrade your
Kubernetes version to a supported version at any time:
-- 1.27 (support ends on July 18, 2024 or when 1.30 becomes supported)
-- 1.26 (support ends on March 21, 2024 or when 1.29 becomes supported)
-- 1.25 (support ends on October 22, 2023 or when 1.28 becomes supported)
+- 1.28 (support ends when GitLab version 17.5 is released or when 1.31 becomes supported)
+- 1.27 (support ends when GitLab version 17.2 is released or when 1.30 becomes supported)
+- 1.26 (support ends when GitLab version 16.10 is released or when 1.29 becomes supported)
GitLab aims to support a new minor Kubernetes version three months after its initial release. GitLab supports at least three production-ready Kubernetes minor
versions at any given time.
diff --git a/doc/user/clusters/agent/install/index.md b/doc/user/clusters/agent/install/index.md
index 5b07dbd56d9..b8caf6d0837 100644
--- a/doc/user/clusters/agent/install/index.md
+++ b/doc/user/clusters/agent/install/index.md
@@ -137,7 +137,7 @@ By default, the Helm installation command generated by GitLab:
- Creates a `Secret` resource for the agent's access token. To instead bring your own secret with a token, omit the token (`--set token=...`) and instead use `--set config.secretName=<your secret name>`.
- Creates a `Deployment` resource for the `agentk` pod.
-To see the full list of customizations available, see the Helm chart's [default values file](https://gitlab.com/gitlab-org/charts/gitlab-agent/-/blob/main/values.yaml).
+To see the full list of customizations available, see the Helm chart's [README](https://gitlab.com/gitlab-org/charts/gitlab-agent/-/blob/main/README.md#values).
##### Use the agent when KAS is behind a self-signed certificate
@@ -224,13 +224,19 @@ For the best experience, the version of the agent installed in your cluster shou
### Update the agent version
+NOTE:
+Instead of using `--reuse-values`, you should specify all needed values.
+If you use `--reuse-values`, you might miss new defaults or use deprecated values.
+To retrieve previous `--set` arguments, use `helm get values <release name>`.
+You can save the values to a file with `helm get values gitlab-agent > agent.yaml`, and pass the file to Helm with `-f`:
+`helm upgrade gitlab-agent gitlab/gitlab-agent -f agent.yaml`. This safely replaces the behavior of `--reuse-values`.
+
To update the agent to the latest version, you can run:
```shell
helm repo update
helm upgrade --install gitlab-agent gitlab/gitlab-agent \
--namespace gitlab-agent \
- --reuse-values
```
To set a specific version, you can override the `image.tag` value. For example, to install version `v14.9.1`, run:
@@ -238,7 +244,6 @@ To set a specific version, you can override the `image.tag` value. For example,
```shell
helm upgrade gitlab-agent gitlab/gitlab-agent \
--namespace gitlab-agent \
- --reuse-values \
--set image.tag=v14.9.1
```
diff --git a/doc/user/clusters/agent/kas_glossary.md b/doc/user/clusters/agent/kas_glossary.md
new file mode 100644
index 00000000000..d2d4065f3fb
--- /dev/null
+++ b/doc/user/clusters/agent/kas_glossary.md
@@ -0,0 +1,20 @@
+---
+stage: Deploy
+group: Environments
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Kubernetes integration glossary **(FREE ALL)**
+
+This glossary provides definitions for terms related to the GitLab Kubernetes integration.
+
+| Term | Definition | Scope |
+| --- | --- | --- |
+| GitLab agent for Kubernetes | The overall offering, including related features and the underlying components `agentk` and `kas`. | GitLab, Kubernetes, Flux |
+| `agentk` | The cluster-side component that maintains a secure connection to GitLab for Kubernetes management and deployment automation. | GitLab |
+| GitLab agent server for Kubernetes (`kas`) | The GitLab-side component of GitLab that handles operations and logic for the Kubernetes agent integration. Manages the connection and communication between GitLab and Kubernetes clusters. | GitLab |
+| Pull-based deployment | A deployment method where Flux checks for changes in a Git repository and automatically applies these changes to the cluster. | GitLab, Kubernetes |
+| Push-based deployment | A deployment method where updates are sent from GitLab CI/CD pipelines to the Kubernetes cluster. | GitLab |
+| Flux | An open-source GitOps tool that integrates with the agent for pull-based deployments. | GitOps, Kubernetes |
+| GitOps | A set of practices that involve using Git for version control and collaboration in the management and automation of cloud and Kubernetes resources. | DevOps, Kubernetes |
+| Kubernetes namespace | A logical partition in a Kubernetes cluster that divides cluster resources between multiple users or environments. | Kubernetes |
diff --git a/doc/user/clusters/management_project.md b/doc/user/clusters/management_project.md
index 178f1bd7705..2c748712fe5 100644
--- a/doc/user/clusters/management_project.md
+++ b/doc/user/clusters/management_project.md
@@ -47,7 +47,7 @@ Management projects are restricted to the following:
To use a cluster management project to manage your cluster:
1. Create a new project to serve as the cluster management project
-for your cluster.
+ for your cluster.
1. [Associate the cluster with the management project](#associate-the-cluster-management-project-with-the-cluster).
1. [Configure your cluster's pipelines](#configuring-your-pipeline).
1. [Set the environment scope](#setting-the-environment-scope).
@@ -66,12 +66,12 @@ To associate a cluster management project with your cluster:
1. Select **Kubernetes**.
1. Expand **Advanced settings**.
1. From the **Cluster management project** dropdown list, select the cluster management project
-you created in the previous step.
+ you created in the previous step.
### Configuring your pipeline
After designating a project as the management project for the cluster,
-write a [`.gitlab-ci.yml`](../../ci/yaml/index.md) in that project. For example:
+add a [`.gitlab-ci.yml` file](../../ci/index.md#the-gitlab-ciyml-file) in that project. For example:
```yaml
configure cluster:
@@ -99,7 +99,7 @@ to a management project:
| Production | `production` |
The environments set in the
-[`.gitlab-ci.yml`](../../ci/yaml/index.md) file deploy to the Development, Staging, and Production cluster.
+[`.gitlab-ci.yml` file](../../ci/index.md#the-gitlab-ciyml-file) deploy to the Development, Staging, and Production cluster.
```yaml
stages:
diff --git a/doc/user/compliance/compliance_center/index.md b/doc/user/compliance/compliance_center/index.md
index 63b4560a498..da65cc9ef6e 100644
--- a/doc/user/compliance/compliance_center/index.md
+++ b/doc/user/compliance/compliance_center/index.md
@@ -71,6 +71,29 @@ To update the adherence status for these projects, the group-level or the projec
To comply with GitLab standard, you must have at least two users approve a merge request to get it merged. For more
information, see [Merge request approval rules](../../project/merge_requests/approvals/rules.md).
+### Export standards adherence report for projects in a group
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/413736) in GitLab 16.8 [with a flag](../../../administration/feature_flags.md) named `compliance_standards_adherence_csv_export`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available, an administrator can [enable the feature flag](../../../administration/feature_flags.md)
+named `compliance_standards_adherence_csv_export`. On GitLab.com, this feature is not available. The feature is not ready for production use.
+
+Exports the contents of a standards adherence report for projects in a group. Reports are truncated at 15 MB to avoid a large email attachment.
+
+Prerequisites:
+
+- You must be an administrator or have the Owner role for the group.
+
+To export the standards adherence report for projects in a group:
+
+1. On the left sidebar, select **Search or go to** and find your group.
+1. Select **Secure > Compliance center**.
+1. In the top-right corner, select **Export**.
+1. Select **Export standards adherence report**.
+
+A report is compiled and delivered to your email inbox as an attachment.
+
## Compliance violations report
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/36524) in GitLab 12.8 as Compliance Dashboard.
@@ -391,10 +414,11 @@ Repeat this process to filter by multiple attributes.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/422973) in GitLab 16.5 [with a flag](../../../administration/feature_flags.md) named `compliance_framework_report_ui`. Disabled by default.
> - In GitLab 16.4 and earlier, **Compliance frameworks report** referred to what is now called **Compliance projects report**. The formally-named **Compliance frameworks report** was [renamed to **Compliance projects report**](https://gitlab.com/gitlab-org/gitlab/-/issues/422963) in GitLab 16.5.
+> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140825) in GitLab 16.8.
FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named
-`compliance_framework_report_ui`. On GitLab.com, this feature is not available. The feature is not ready for production use.
+On self-managed GitLab, by default this feature is available. To hide the feature an administrator to [disable the feature flag](../../../administration/feature_flags.md) named
+`compliance_framework_report_ui`. On GitLab.com, this feature is available.
With compliance frameworks report, you can see all the compliance frameworks in a group. Each row of the report shows:
diff --git a/doc/user/compliance/license_list.md b/doc/user/compliance/license_list.md
index 43d76845ffa..3bfc5612db9 100644
--- a/doc/user/compliance/license_list.md
+++ b/doc/user/compliance/license_list.md
@@ -4,9 +4,13 @@ group: Threat Insights
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# License list **(ULTIMATE ALL)**
+<!--- start_remove The following content will be removed on remove_date: '2024-08-15' -->
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13582) in GitLab 12.7.
+# License list (deprecated) **(ULTIMATE ALL)**
+
+WARNING:
+This feature was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/436100) in GitLab 16.8
+and is planned for removal in 17.0. Use the [Dependency List](../application_security/dependency_list/index.md) instead.
The License list allows you to see your project's licenses and key
details about them.
@@ -32,3 +36,5 @@ The licenses are displayed, where:
- **Policy Violation:** The license has a [license policy](license_approval_policies.md) marked as **Deny**.
![License List](img/license_list_v13_0.png)
+
+<!--- end_remove -->
diff --git a/doc/user/custom_roles.md b/doc/user/custom_roles.md
index 1f3628efa39..07e14494ada 100644
--- a/doc/user/custom_roles.md
+++ b/doc/user/custom_roles.md
@@ -1,21 +1,15 @@
---
stage: Govern
-group: Authentication
+group: Authorization
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
# Custom roles **(ULTIMATE ALL)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106256) in GitLab 15.7 [with a flag](../administration/feature_flags.md) named `customizable_roles`.
+> - [Custom roles feature introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106256) in GitLab 15.7 [with a flag](../administration/feature_flags.md) named `customizable_roles`.
> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110810) in GitLab 15.9.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114524) in GitLab 15.10.
-> - The ability for a custom role to view a vulnerability report [introduced](https://gitlab.com/groups/gitlab-org/-/epics/10160) in GitLab 16.1 [with a flag](../administration/feature_flags.md) named `custom_roles_vulnerability`.
-> - Ability to view a vulnerability report [enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123835) in GitLab 16.1.
-> - [Feature flag `custom_roles_vulnerability` removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124049) in GitLab 16.2.
> - Ability to create and remove a custom role with the UI [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393235) in GitLab 16.4.
-> - Ability to manage group members [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/17364) in GitLab 16.5.
-> - Ability to manage project access tokens [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/421778) in GitLab 16.5 [with a flag](../administration/feature_flags.md) named `manage_project_access_tokens`.
-> - Ability to archive projects [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/425957) in GitLab 16.7.
> - Ability to use the UI to add a user to your group with a custom role, change a user's custom role, or remove a custom role from a group member [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393239) in GitLab 16.7.
Custom roles allow group Owners or instance administrators to create roles
@@ -26,6 +20,10 @@ For a demo of the custom roles feature, see [[Demo] Ultimate Guest can view code
You can discuss individual custom role and permission requests in [issue 391760](https://gitlab.com/gitlab-org/gitlab/-/issues/391760).
+## Available permissions
+
+For more information on available permissions, see [custom abilities](custom_roles/abilities.md).
+
## Create a custom role
Prerequisites:
@@ -96,26 +94,6 @@ In **Settings > Roles and Permissions**, the list of all custom roles displays t
To create a custom role, you can also [use the API](../api/member_roles.md#add-a-member-role-to-a-group).
-### Available permissions
-
-The following permissions are available. You can add these permissions in any combination
-to a base role to create a custom role.
-
-Some permissions require having other permissions enabled first. For example, administration of vulnerabilities (`admin_vulnerability`) can only be enabled if reading vulnerabilities (`read_vulnerability`) is also enabled.
-
-These requirements are documented in the `Required permission` column in the following table.
-
-| Permission | Version | Required permission | Description |
-| ------------------------------- | -----------------------| -------------------- | ----------- |
-| `read_code` | GitLab 15.7 and later | Not applicable | View project code. Does not include the ability to pull code. |
-| `read_vulnerability` | GitLab 16.1 and later | Not applicable | View [vulnerability reports](application_security/vulnerability_report/index.md). |
-| `admin_vulnerability` | GitLab 16.1 and later | `read_vulnerability` | Change the [status of vulnerabilities](application_security/vulnerabilities/index.md#vulnerability-status-values). |
-| `read_dependency` | GitLab 16.3 and later | Not applicable | View [project dependencies](application_security/dependency_list/index.md). |
-| `admin_merge_request` | GitLab 16.4 and later | Not applicable | View and approve [merge requests](project/merge_requests/index.md), revoke merge request approval, and view the associated merge request code. <br> Does not allow users to view or change merge request approval rules. |
-| `manage_project_access_tokens` | GitLab 16.5 and later | Not applicable | Create, delete, and list [project access tokens](project/settings/project_access_tokens.md). |
-| `admin_group_member` | GitLab 16.5 and later | Not applicable | Add or remove [group members](group/manage.md). |
-| `archive_project` | GitLab 16.6 and later | Not applicable | Archive and unarchive [projects](project/settings/migrate_projects.md#archive-a-project). |
-
## Billing and seat usage
When you enable a custom role for a user with the Guest role, that user has
@@ -219,8 +197,8 @@ To remove a custom role from a group member:
1. Select the **Max role** dropdown list for the member you want to remove a custom role from.
1. On the **Change role** dialog, select a static role.
-You can update or remove a custom role from a group member also with the [Group and Project Members API endpoint](../api/members.md#edit-a-member-of-a-group-or-project).
-and pass an empty `member_role_id` value:
+You can also use the [Group and Project Members API endpoint](../api/members.md#edit-a-member-of-a-group-or-project)
+to update or remove a custom role from a group member by passing an empty `member_role_id` value:
```shell
# to update a project membership
diff --git a/doc/user/custom_roles/abilities.md b/doc/user/custom_roles/abilities.md
new file mode 100644
index 00000000000..d117a495798
--- /dev/null
+++ b/doc/user/custom_roles/abilities.md
@@ -0,0 +1,65 @@
+---
+stage: Govern
+group: Authorization
+info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
+---
+
+<!---
+ This documentation is auto generated by a Rake task.
+
+ Please do not edit this file directly. To update this file, run:
+ bundle exec rake gitlab:custom_roles:compile_docs
+
+ To make changes to the output of the Rake task,
+ edit `tooling/custom_roles/docs/templates/custom_abilities.md.erb`.
+--->
+
+# Available custom abilities
+
+The following abilities are available. You can add these abilities in any combination
+to a base role to create a custom role.
+
+Some abilities require having other abilities enabled first. For example, administration of vulnerabilities (`admin_vulnerability`) can only be enabled if reading vulnerabilities (`read_vulnerability`) is also enabled.
+
+These requirements are documented in the `Required ability` column in the following table.
+
+## Code review workflow
+
+| Name | Required permission | Description | Introduced in | Feature flag | Enabled in |
+|:-----|:------------|:------------------|:---------|:--------------|:---------|
+| [`admin_merge_request`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128302) | | Allows approval of merge requests. | GitLab [16.4](https://gitlab.com/gitlab-org/gitlab/-/issues/412708) | | |
+| [`read_code`](https://gitlab.com/gitlab-org/gitlab/-/issues/376180) | | Allows read-only access to the source code. | GitLab [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/20277) | `customizable_roles` | GitLab [15.9](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110810) |
+
+## Group and projects
+
+| Name | Required permission | Description | Introduced in | Feature flag | Enabled in |
+|:-----|:------------|:------------------|:---------|:--------------|:---------|
+| [`admin_group_member`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131914) | | Allows admin of group members. | GitLab [16.5](https://gitlab.com/gitlab-org/gitlab/-/issues/17364) | `admin_group_member` | GitLab [16.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136247) |
+
+## Groups and projects
+
+| Name | Required permission | Description | Introduced in | Feature flag | Enabled in |
+|:-----|:------------|:------------------|:---------|:--------------|:---------|
+| [`archive_project`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134998) | | Allows archiving of projects. | GitLab [16.6](https://gitlab.com/gitlab-org/gitlab/-/issues/425957) | `archive_project` | GitLab [16.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139260) |
+| [`remove_project`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139696) | | Allows deletion of projects. | GitLab [16.8](https://gitlab.com/gitlab-org/gitlab/-/issues/425959) | | |
+
+## Infrastructure as code
+
+| Name | Required permission | Description | Introduced in | Feature flag | Enabled in |
+|:-----|:------------|:------------------|:---------|:--------------|:---------|
+| [`admin_terraform_state`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140759) | | Allows to admin terraform state | GitLab [16.8](https://gitlab.com/gitlab-org/gitlab/-/issues/421789) | | |
+
+## System access
+
+| Name | Required permission | Description | Introduced in | Feature flag | Enabled in |
+|:-----|:------------|:------------------|:---------|:--------------|:---------|
+| [`manage_group_access_tokens`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140115) | | Allows manage access to the group access tokens. | GitLab [16.8](https://gitlab.com/gitlab-org/gitlab/-/issues/428353) | | |
+| [`manage_project_access_tokens`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132342) | | Allows manage access to the project access tokens. | GitLab [16.5](https://gitlab.com/gitlab-org/gitlab/-/issues/421778) | `manage_project_access_tokens` | GitLab [16.8](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141294) |
+
+## Vulnerability management
+
+| Name | Required permission | Description | Introduced in | Feature flag | Enabled in |
+|:-----|:------------|:------------------|:---------|:--------------|:---------|
+| [`admin_vulnerability`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121534) | read_vulnerability | Allows admin access to the vulnerability reports. | GitLab [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/412536) | | |
+| [`read_dependency`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126247) | | Allows read-only access to the dependencies. | GitLab [16.3](https://gitlab.com/gitlab-org/gitlab/-/issues/415255) | | |
+| [`read_vulnerability`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120704) | | Allows read-only access to the vulnerability reports. | GitLab [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/399119) | | |
diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md
index 034e2e45127..dfcbc8a171d 100644
--- a/doc/user/discussions/index.md
+++ b/doc/user/discussions/index.md
@@ -163,7 +163,7 @@ To lock an issue or merge request:
1. On the left sidebar, select **Search or go to** and find your project.
1. For merge requests, select **Code > Merge requests**, and find your merge request.
1. For issues, select **Plan > Issues**, and find your issue.
-1. On the top right, select **Merge request actions** or **Issue actions** (**{ellipsis_v}**), then select **Lock discussion**.
+1. In the upper-right corner, select **Merge request actions** or **Issue actions** (**{ellipsis_v}**), then select **Lock discussion**.
A system note is added to the page details.
diff --git a/doc/user/emoji_reactions.md b/doc/user/emoji_reactions.md
index 10385da7cdc..a72c15bb229 100644
--- a/doc/user/emoji_reactions.md
+++ b/doc/user/emoji_reactions.md
@@ -15,8 +15,7 @@ and thumbs-ups. React with emoji on:
- [Issues](project/issues/index.md).
- [Tasks](tasks.md).
-- [Merge requests](project/merge_requests/index.md),
-[snippets](snippets.md).
+- [Merge requests](project/merge_requests/index.md), [snippets](snippets.md).
- [Epics](../user/group/epics/index.md).
- [Objectives and key results](okrs.md).
- Anywhere else you can have a comment thread.
diff --git a/doc/user/feature_flags.md b/doc/user/feature_flags.md
index 83e2926e8e3..ccce9e9f9b4 100644
--- a/doc/user/feature_flags.md
+++ b/doc/user/feature_flags.md
@@ -1,8 +1,8 @@
---
stage: none
group: unassigned
-info: "See the Technical Writers assigned to Development Guidelines: https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-development-guidelines"
-description: "View a list of all the flags available in the GitLab application."
+description: Complete list of flags.
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
layout: 'feature_flags'
---
diff --git a/doc/user/gitlab_com/index.md b/doc/user/gitlab_com/index.md
index 70ac1f737e6..75d0c8fdd12 100644
--- a/doc/user/gitlab_com/index.md
+++ b/doc/user/gitlab_com/index.md
@@ -232,9 +232,8 @@ this limit. Repository limits apply to both public and private projects.
## Default import sources
-> Disabling all importers by default for new GitLab self-managed installations [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118970) in GitLab 16.0.
-
-The import sources that are available by default depend on which GitLab you use:
+The [import sources](../project/import/index.md#supported-import-sources) that are available to you by default depend on
+which GitLab you use:
- GitLab.com: all available import sources are enabled by default.
- GitLab self-managed: no import sources are enabled by default and must be
@@ -246,14 +245,12 @@ The import sources that are available by default depend on which GitLab you use:
| [Bitbucket Server](../project/import/bitbucket_server.md) | **{check-circle}** Yes | **{dotted-circle}** No |
| [FogBugz](../project/import/fogbugz.md) | **{check-circle}** Yes | **{dotted-circle}** No |
| [Gitea](../project/import/gitea.md) | **{check-circle}** Yes | **{dotted-circle}** No |
-| [GitLab by direct transfer](../group/import/index.md#migrate-groups-by-direct-transfer-recommended) | **{check-circle}** Yes | **{dotted-circle}** No |
+| [GitLab by direct transfer](../group/import/index.md) | **{check-circle}** Yes | **{dotted-circle}** No |
| [GitLab using file exports](../project/settings/import_export.md) | **{check-circle}** Yes | **{dotted-circle}** No |
| [GitHub](../project/import/github.md) | **{check-circle}** Yes | **{dotted-circle}** No |
| [Manifest file](../project/import/manifest.md) | **{check-circle}** Yes | **{dotted-circle}** No |
| [Repository by URL](../project/import/repo_by_url.md) | **{check-circle}** Yes | **{dotted-circle}** No |
-[Other importers](../project/import/index.md#available-project-importers) are available.
-
## IP range
GitLab.com uses the IP ranges `34.74.90.64/28` and `34.74.226.0/24` for traffic from its Web/API
@@ -457,7 +454,7 @@ To help avoid abuse, the following are rate limited:
For more information, see:
- [Project import/export rate limits](../../user/project/settings/import_export.md#rate-limits).
-- [Group import/export rate limits](../../user/group/import/index.md#rate-limits).
+- [Group import/export rate limits](../../user/project/settings/import_export.md#rate-limits-1).
### Non-configurable limits
diff --git a/doc/user/gitlab_duo_chat.md b/doc/user/gitlab_duo_chat.md
index ebcb4c69e64..deb908444c3 100644
--- a/doc/user/gitlab_duo_chat.md
+++ b/doc/user/gitlab_duo_chat.md
@@ -4,37 +4,78 @@ group: Duo Chat
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Answer questions with GitLab Duo Chat **(ULTIMATE SAAS BETA)**
+# GitLab Duo Chat **(ULTIMATE ALL BETA)**
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117695) as an [Experiment](../policy/experiment-beta-support.md#experiment) for SaaS in GitLab 16.0.
+> - Changed to [Beta](../policy/experiment-beta-support.md#beta) for SaaS in GitLab 16.6.
+> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11251) as a [Beta](../policy/experiment-beta-support.md#beta) for self-managed in GitLab 16.8.
+
+GitLab Duo Chat is your personal AI-powered assistant for boosting productivity.
+It can assist various tasks of your daily work with the AI-generated content.
+Here are the examples of use cases:
+
+| Feature | Use case example | Supported interfaces | Supported deployments |
+| ------------------------------------- | ---------------- | -------------------------- | --------------------- |
+| [Ask about GitLab](#ask-about-gitlab) | I want to know how to create an issue in GitLab. | GitLab, VS Code, and Web IDE | GitLab.com |
+| [Ask about a specific issue](#ask-about-a-specific-issue) | I want to summarize this issue. | GitLab, VS Code, and Web IDE | GitLab.com, self-managed, and GitLab Dedicated |
+| [Ask about a specific epic](#ask-about-a-specific-epic) | I want to summarize this epic. | GitLab, VS Code, and Web IDE | GitLab.com, self-managed, and GitLab Dedicated |
+| [Ask about code](#ask-about-code) | I want to understand how this code works. | GitLab, VS Code, and Web IDE | GitLab.com, self-managed, and GitLab Dedicated |
+| [Ask about CI/CD](#ask-about-cicd) | I want to create a new CI/CD pipeline configuration. | GitLab, VS Code, and Web IDE | GitLab.com, self-managed, and GitLab Dedicated |
+| [Explain code in the IDE](#explain-code-in-the-ide) | I want to understand how this code works. | VS Code and Web IDE | GitLab.com, self-managed, and GitLab Dedicated |
+| [Refactor code in the IDE](#explain-code-in-the-ide) | I want to write a test for this code. | VS Code and Web IDE | GitLab.com, self-managed, and GitLab Dedicated |
+| [Write tests in the IDE](#write-tests-in-the-ide) | I want to refactor this code. | VS Code and Web IDE | GitLab.com, self-managed, and GitLab Dedicated |
+
+<div class="video-fallback">
+ <a href="https://youtu.be/l6vsd1HMaYA?si=etXpFbj1cBvWyj3_">View how to setup and use GitLab Duo Chat</a>.
+</div>
+<figure class="video-container">
+ <iframe src="https://www.youtube-nocookie.com/embed/l6vsd1HMaYA?si=etXpFbj1cBvWyj3_" frameborder="0" allowfullscreen> </iframe>
+</figure>
-> Introduced in GitLab 16.6 as a [Beta](../policy/experiment-beta-support.md#beta).
-
-You can get AI-generated support from GitLab Duo Chat about:
-
-- How to use GitLab.
-- The contents of an issue or issue.
-- The contents of a code or CI/CD configuration file.
-
-You can also use GitLab Duo Chat to create code and CI/CD files.
+NOTE:
+This is a Beta feature. We're continuously extending the capabilities and reliability of the responses.
-When you get an answer, you can ask follow-up questions to learn more.
+## Features
-This is a Beta feature. We're continuously extending the capabilities and reliability of the responses.
+### Ask about GitLab
-## Ask about GitLab
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117695) for SaaS in GitLab 16.0.
You can ask questions about how GitLab works. Things like:
- `Explain the concept of a 'fork' in a concise manner.`
- `Provide step-by-step instructions on how to reset a user's password.`
-## Ask about your work
+NOTE:
+This feature is not currently supported in self-managed instances.
+See [this epic](https://gitlab.com/groups/gitlab-org/-/epics/11600) for more infomation.
-You can ask about GitLab issues and epics. For example:
+### Ask about a specific issue
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122235) for SaaS in GitLab 16.0.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122235) for self-managed in GitLab 16.8.
+
+You can ask about a specific GitLab issue. For example:
- `Generate a summary for the issue identified via this link: <link to your issue>`
-- `Generate a concise summary of the current issue.`
+- When you are viewing an issue in GitLab, you can ask `Generate a concise summary of the current issue.`
+- `How can I improve the description of <link to your issue> so that readers understand the value and problems to be solved?`
+
+### Ask about a specific epic
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128487) for SaaS in GitLab 16.3.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128487) for self-managed in GitLab 16.8.
+
+You can ask about a specific GitLab epic. For example:
+
+- `Generate a summary for the epic identified via this link: <link to your epic>`
+- `Generate a concise summary of the opened epic.`
+- `What are the unique use cases raised by commenters in <link to your epic>?`
-## Ask about code
+### Ask about code
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122235) for SaaS in GitLab 16.1.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122235) for self-managed in GitLab 16.8.
You can also ask GitLab Duo Chat to generate code:
@@ -45,13 +86,52 @@ And you can ask GitLab Duo Chat to explain code:
- `Provide a clear explanation of the given Ruby code: def sum(a, b) a + b end. Describe what this code does and how it works.`
-## Ask about CI/CD
+### Ask about CI/CD
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/423524) for SaaS in GitLab 16.7.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/423524) for self-managed in GitLab 16.8.
You can ask GitLab Duo Chat to create a CI/CD configuration:
- `Create a .gitlab-ci.yml configuration file for testing and building a Ruby on Rails application in a GitLab CI/CD pipeline.`
-## Ask follow up questions
+### Explain code in the IDE
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429915) for SaaS in GitLab 16.7.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429915) for self-managed in GitLab 16.8.
+
+NOTE:
+This feature is available in VS Code and the Web IDE only.
+
+`/explain` is a special command to explain the selected code in your editor.
+You can also add additional instructions to be considered, for example: `/explain the performance`
+See [Use GitLab Duo Chat in VS Code](#use-gitlab-duo-chat-in-vs-code) for more information.
+
+### Refactor code in the IDE
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429915) for SaaS in GitLab 16.7.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429915) for self-managed in GitLab 16.8.
+
+NOTE:
+This feature is available in VS Code and the Web IDE only.
+
+`/refactor` is a special command to generate a refactoring suggestion for the selected code in your editor.
+You can also add additional instructions to be considered, for example: `/refactor with ActiveRecord`
+See [Use GitLab Duo Chat in the VS Code](#use-gitlab-duo-chat-in-vs-code) for more information.
+
+### Write tests in the IDE
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429915) for SaaS in GitLab 16.7.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429915) for self-managed in GitLab 16.8.
+
+NOTE:
+This feature is available in VS Code and the Web IDE only.
+
+`/tests` is a special command to generate a testing suggestion for the selected code in your editor.
+You can also add additional instructions to be considered, for example: `/tests using the Boost.Test framework`
+See [Use GitLab Duo Chat in the VS Code](#use-gitlab-duo-chat-in-vs-code) for more information.
+
+### Ask follow up questions
You can ask follow-up questions to delve deeper into the topic or task at hand.
This helps you get more detailed and precise responses tailored to your specific needs,
@@ -63,10 +143,43 @@ A follow-up to the question `Write a Ruby function that prints 'Hello, World!' w
## Enable GitLab Duo Chat
+### For SaaS users
+
To use this feature, at least one group you're a member of must
have the [experiment and beta features setting](group/manage.md#enable-experiment-and-beta-features) enabled.
-## Use GitLab Duo Chat
+### For self-managed users
+
+NOTE:
+Usage of GitLab Duo Chat is governed by the [GitLab Testing Agreement](https://about.gitlab.com/handbook/legal/testing-agreement/).
+Learn about [data usage when using GitLab Duo Chat](ai_features.md#data-usage).
+
+Prerequisites:
+
+- You are using GitLab version 16.8 or later.
+- The Ultimate license is activated in your GitLab instance by using [cloud Licensing](https://about.gitlab.com/pricing/licensing-faq/cloud-licensing/).
+- All of the users in your instance have the latest version of their IDE extension.
+- You are an administrator.
+
+To enable GitLab Duo Chat for your self-managed GitLab instance:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > General**.
+1. Expand **AI-powered features** and select **Enable Experiment and Beta AI-powered features**.
+1. Select **Save changes**.
+1. To make sure GitLab Duo Chat works immediately, you must
+ [manually synchronize your subscription](#manually-synchronize-your-subscription).
+
+#### Manually synchronize your subscription
+
+You must [manually synchronize your subscription](../subscriptions/self_managed/index.md#manually-synchronize-your-subscription-details) if either:
+
+- You have just purchased a subscription for the Ultimate tier and have upgraded to GitLab 16.8.
+- You already have a subscription for the Ultimate tier and have upgraded to GitLab 16.8.
+
+Without the manual synchronization, it might take up to 24 hours to activate GitLab Duo Chat on your instance.
+
+## Use GitLab Duo Chat in the GitLab UI
1. In the lower-left corner, select the **Help** icon.
The [new left sidebar must be enabled](../tutorials/left_sidebar/index.md).
@@ -84,13 +197,11 @@ To delete all previous conversations:
1. In the text box, type `/clean` and select **Send**.
-## Use GitLab Duo Chat in the Web IDE and VS Code **(ULTIMATE SAAS EXPERIMENT)**
+## Use GitLab Duo Chat in the Web IDE **(ULTIMATE EXPERIMENT)**
> Introduced in GitLab 16.6 as an [EXPERIMENT](../policy/experiment-beta-support.md#experiment).
-### Web IDE
-
-To use GitLab Duo Chat in the Web IDE on GitLab.com:
+To use GitLab Duo Chat in the Web IDE on GitLab:
1. Open the Web IDE:
1. On the left sidebar, select **Search or go to** and find your project.
@@ -107,9 +218,11 @@ To use GitLab Duo Chat in the Web IDE on GitLab.com:
If you have selected code in the editor, this selection is sent along with your question to the AI. This way you can ask questions about this code selection. For instance, `Could you simplify this?`.
-### GitLab Workflow extension for VS Code
+## Use GitLab Duo Chat in VS Code **(ULTIMATE EXPERIMENT)**
+
+> Introduced in GitLab 16.6 as an [EXPERIMENT](../policy/experiment-beta-support.md#experiment).
-To use GitLab Duo Chat in VS Code:
+To use GitLab Duo Chat in GitLab Workflow extension for VS Code:
1. Install and set up the Workflow extension for VS Code:
1. In VS Code, download and Install the [GitLab Workflow extension for VS Code](../editor_extensions/visual_studio_code/index.md#download-the-extension).
@@ -125,18 +238,26 @@ To use GitLab Duo Chat in VS Code:
If you have selected code in the editor, this selection is sent along with your question to the AI. This way you can ask questions about this code selection. For instance, `Could you simplify this?`.
-### Disable Chat in Web IDE and VS Code
+### Perform standard task in the IDE from the context menu or by using slash commands
+
+Get code explained, code refactored or get tests generated for code. To do so:
+
+1. Select code in your editor in VS Code or in the Web IDE.
+1. Type one the following slash commands into the chat field: [`/explain`](#explain-code-in-the-ide), [`/refactor`](#refactor-code-in-the-ide) or [`/tests`](#write-tests-in-the-ide). Alternatively, use the context menu to perform these tasks.
-To disable GitLab Duo Chat in the Web IDE and VS Code:
+When you use one of the slash commands you can also add additional instructions to be considered, for example: `/tests using the Boost.Test framework`
+
+### Disable Chat in VS Code
+
+To disable GitLab Duo Chat in VS Code:
1. Go to **Settings > Extensions > GitLab Workflow (GitLab VSCode Extension)**.
1. Clear the **Enable GitLab Duo Chat assistant** checkbox.
## Give feedback
-Your feedback is important to us as we continually enhance your GitLab Duo Chat experience:
-
-- **Enhance Your Experience**: Leaving feedback helps us customize the Chat for your needs and improve its performance for everyone.
+Your feedback is important to us as we continually enhance your GitLab Duo Chat experience.
+Leaving feedback helps us customize the Chat for your needs and improve its performance for everyone.
To give feedback about a specific response, use the feedback buttons in the response message.
Or, you can add a comment in the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/430124).
diff --git a/doc/user/group/access_and_permissions.md b/doc/user/group/access_and_permissions.md
index e08cfea7095..4628b7be9ce 100644
--- a/doc/user/group/access_and_permissions.md
+++ b/doc/user/group/access_and_permissions.md
@@ -63,8 +63,8 @@ address. This top-level group setting applies to:
- The GitLab UI, including subgroups, projects, and issues. It does not apply to GitLab Pages.
- [In GitLab 12.3 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/12874), the API.
- In self-managed installations of GitLab 15.1 and later, you can also configure
-[globally-allowed IP address ranges](../../administration/settings/visibility_and_access_controls.md#configure-globally-allowed-ip-address-ranges)
-at the group level.
+ [globally-allowed IP address ranges](../../administration/settings/visibility_and_access_controls.md#configure-globally-allowed-ip-address-ranges)
+ at the group level.
Administrators can combine restricted access by IP address with
[globally-allowed IP addresses](../../administration/settings/visibility_and_access_controls.md#configure-globally-allowed-ip-address-ranges).
@@ -118,7 +118,7 @@ To allow runner downloading, add the [outbound runner CIDR ranges](../gitlab_com
> - Support for restricting access to projects in the group [added](https://gitlab.com/gitlab-org/gitlab/-/issues/14004) in GitLab 14.1.2.
> - Support for restricting group memberships to groups with a subset of the allowed email domains [added](https://gitlab.com/gitlab-org/gitlab/-/issues/354791) in GitLab 15.1.1
-You can prevent users with email addresses in specific domains from being added to a group and its projects. You can define an email domain allowlist at the top-level namespace only. Subgroups do not offer the ability to define an alternative allowlist.
+To ensure only users with email addresses in specific domains are added to a group and its projects, define an email domain allowlist at the top-level namespace. Subgroups do not offer the ability to define an alternative allowlist.
To restrict group access by domain:
diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md
index ded99f7c936..bbd53c09352 100644
--- a/doc/user/group/clusters/index.md
+++ b/doc/user/group/clusters/index.md
@@ -129,7 +129,7 @@ For example, if your project has the following Kubernetes clusters:
| Test | `test` | Group |
| Development| `*` | Group |
-And the following environments are set in [`.gitlab-ci.yml`](../../../ci/yaml/index.md):
+And the following environments are set in the [`.gitlab-ci.yml` file](../../../ci/index.md#the-gitlab-ciyml-file):
```yaml
stages:
diff --git a/doc/user/group/devops_adoption/index.md b/doc/user/group/devops_adoption/index.md
index cdb11bb0548..978c893a0ec 100644
--- a/doc/user/group/devops_adoption/index.md
+++ b/doc/user/group/devops_adoption/index.md
@@ -21,9 +21,9 @@ DevOps Adoption shows you how groups in your organization adopt and use the most
You can use Group DevOps Adoption to:
- Identify specific subgroups that are lagging in their adoption of GitLab features, so you can guide them on
-their DevOps journey.
+ their DevOps journey.
- Find subgroups that have adopted certain features, and provide guidance to other subgroups on
-how to use those features.
+ how to use those features.
- Verify if you are getting the return on investment that you expected from GitLab.
![DevOps Adoption](img/group_devops_adoption_v14_2.png)
@@ -43,11 +43,11 @@ To view DevOps Adoption:
DevOps Adoption shows feature adoption for development, security, and operations.
-| Category | Feature |
-| --- | --- |
-| Development | Approvals<br>Code owners<br>Issues<br>Merge requests |
-| Security | DAST<br>Dependency Scanning<br>Fuzz Testing<br>SAST |
-| Operations | Deployments<br>Pipelines<br>Runners |
+| Category | Feature |
+|-------------|---------|
+| Development | Approvals<br>Code owners<br>Issues<br>Merge requests |
+| Security | DAST<br>Dependency Scanning<br>Fuzz Testing<br>SAST |
+| Operations | Deployments<br>Pipelines<br>Runners |
## Feature adoption
diff --git a/doc/user/group/epics/manage_epics.md b/doc/user/group/epics/manage_epics.md
index 9cdebdd7d9d..286a1c474da 100644
--- a/doc/user/group/epics/manage_epics.md
+++ b/doc/user/group/epics/manage_epics.md
@@ -11,10 +11,6 @@ to them.
## Create an epic
-> - The New Epic form [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/211533) in GitLab 13.2.
-> - In [GitLab 13.7](https://gitlab.com/gitlab-org/gitlab/-/issues/229621) and later, the New Epic button on the Epics list opens the New Epic form.
-> - In [GitLab 13.9](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45948) and later, you can create a new epic from an empty roadmap.
-
Prerequisites:
- You must have at least the Reporter role for the epic's group.
@@ -175,6 +171,9 @@ To do so, either:
- In the upper-right corner, select **epic actions** (**{ellipsis_v}**) and then **Reopen epic**
- Use the `/reopen` [quick action](../../project/quick_actions.md).
+You can also create an epic by
+[promoting an issue](../../project/issues/managing_issues.md#promote-an-issue-to-an-epic).
+
## Go to an epic from an issue
If an issue belongs to an epic, you can go to the parent epic with the
@@ -453,40 +452,6 @@ To move an issue to another epic:
1. Go to the **Child issues and epics** section.
1. Drag issues into the desired parent epic in the visible hierarchy.
-### Promote an issue to an epic
-
-> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/37081) from GitLab Ultimate to GitLab Premium in 12.8.
-
-Prerequisites:
-
-- The project to which the issue belongs must be in a group.
-- You must have at least the Reporter role the project's immediate parent group.
-- You must either:
- - Have at least the Reporter role for the project.
- - Be the author of the issue.
- - Be assigned to the issue.
-
-You can promote an issue to an epic with the `/promote`
-[quick action](../../project/quick_actions.md#issues-merge-requests-and-epics).
-
-NOTE:
-Promoting a confidential issue to an epic makes all information
-related to the issue public as epics are public to group members.
-
-When an issue is promoted to an epic:
-
-- If the issue was confidential, an additional warning is displayed first.
-- An epic is created in the same group as the project of the issue.
-- Subscribers of the issue are notified that the epic was created.
-
-The following issue metadata is copied to the epic:
-
-- Title, description, activity/comment thread.
-- Upvotes and downvotes.
-- Participants.
-- Group labels that the issue already has.
-- Parent epic.
-
### Use an epic template for repeating issues
You can create a spreadsheet template to manage a pattern of consistently repeating issues.
diff --git a/doc/user/group/import/index.md b/doc/user/group/import/index.md
index 28878855098..28e77a942a6 100644
--- a/doc/user/group/import/index.md
+++ b/doc/user/group/import/index.md
@@ -4,7 +4,14 @@ group: Import and Integrate
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Migrating GitLab groups **(FREE ALL)**
+# Migrate GitLab groups and projects by using direct transfer **(FREE ALL)**
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/249160) in GitLab 13.7 for group resources [with a flag](../../feature_flags.md) named `bulk_import`. Disabled by default.
+> - Group items [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/338985) in GitLab 14.3.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/267945) in GitLab 14.4 for project resources [with a flag](../../feature_flags.md) named `bulk_import_projects`. Disabled by default.
+> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/339941) in GitLab 15.6.
+> - New application setting `bulk_import_enabled` [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/383268) in GitLab 15.8. `bulk_import` feature flag removed.
+> - `bulk_import_projects` feature flag [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/339941) in GitLab 15.10.
You can migrate GitLab groups:
@@ -16,19 +23,10 @@ You can migrate GitLab groups:
You can migrate groups in two ways:
- By direct transfer (recommended).
-- By uploading an export file.
+- By [uploading an export file](../../project/settings/import_export.md).
If you migrate from GitLab.com to self-managed GitLab, an administrator can create users on the self-managed GitLab instance.
-## Migrate groups by direct transfer (recommended)
-
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/249160) in GitLab 13.7 for group resources [with a flag](../../feature_flags.md) named `bulk_import`. Disabled by default.
-> - Group items [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/338985) in GitLab 14.3.
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/267945) in GitLab 14.4 for project resources [with a flag](../../feature_flags.md) named `bulk_import_projects`. Disabled by default.
-> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/339941) in GitLab 15.6.
-> - New application setting `bulk_import_enabled` [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/383268) in GitLab 15.8. `bulk_import` feature flag removed.
-> - `bulk_import_projects` feature flag [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/339941) in GitLab 15.10.
-
On self-managed GitLab, by default [migrating group items](#migrated-group-items) is not available. To show the
feature, an administrator can [enable it in application settings](../../../administration/settings/import_and_export_settings.md#enable-migration-of-groups-and-projects-by-direct-transfer).
@@ -59,12 +57,12 @@ We invite you to leave your feedback about migrating by direct transfer in
If you want to move groups instead of copying groups, you can [transfer groups](../manage.md#transfer-a-group) if the
groups are in the same GitLab instance. Transferring groups is a faster and more complete option.
-### Known issues
+## Known issues
See [epic 6629](https://gitlab.com/groups/gitlab-org/-/epics/6629) for a list of known issues for migrating by direct
transfer.
-### Estimating migration duration
+## Estimating migration duration
Estimating the duration of migration by direct transfer is difficult. The following factors affect migration duration:
@@ -111,7 +109,7 @@ There's no exact formula to reliably estimate a migration. However, the average
If you are migrating large projects and encounter problems with timeouts or duration of the migration, see [Reducing migration duration](#reducing-migration-duration).
-### Limits
+## Limits
> Eight hour time limit on migrations [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/429867) in GitLab 16.7.
@@ -138,7 +136,7 @@ You can test the maximum relation size limit using these APIs:
If either API produces files larger than the maximum relation size limit, group migration by direct transfer fails.
-### Visibility rules
+## Visibility rules
After migration:
@@ -154,7 +152,7 @@ After migration:
If you used a private network on your source instance to hide content from the general public,
make sure to have a similar setup on the destination instance, or to import into a private group.
-### Prerequisites
+## Prerequisites
> Requirement for Maintainer role instead of Developer role introduced in GitLab 16.0 and backported to GitLab 15.11.1 and GitLab 15.10.5.
@@ -181,7 +179,7 @@ To migrate groups by direct transfer:
- [Configure `proxy_download`](../../../administration/object_storage.md#configure-the-common-parameters).
- Ensure that the destination GitLab instance has access to the object storage of the source GitLab instance.
-### Prepare user accounts
+## Prepare user accounts
To ensure GitLab maps users and their contributions correctly:
@@ -196,7 +194,7 @@ To ensure GitLab maps users and their contributions correctly:
1. If users already exist on the destination instance and you use [SAML SSO for GitLab.com groups](../../group/saml_sso/index.md), all users must
[link their SAML identity to their GitLab.com account](../../group/saml_sso/index.md#link-saml-to-your-existing-gitlabcom-account).
-### Connect the source GitLab instance
+## Connect the source GitLab instance
Create the group you want to import to and connect the source GitLab instance:
@@ -209,7 +207,7 @@ Create the group you want to import to and connect the source GitLab instance:
1. Enter the [personal access token](../../../user/profile/personal_access_tokens.md) for your source GitLab instance.
1. Select **Connect instance**.
-### Select the groups and projects to import
+## Select the groups and projects to import
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/385689) in GitLab 15.8, option to import groups with or without projects.
@@ -228,7 +226,7 @@ WARNING:
Importing groups with projects is in [Beta](../../../policy/experiment-beta-support.md#beta). This feature is not
ready for production use.
-### Group import history
+## Group import history
> **Partially completed** status [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/394727) in GitLab 16.7.
@@ -248,16 +246,17 @@ To view group import history:
1. In the upper-right corner, select **History**.
1. If there are any errors for a particular import, select **See failures** to see their details.
-### Review results of the import
+## Review results of the import
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429109) in GitLab 16.6 [with a flag](../../feature_flags.md) named `bulk_import_details_page`. Enabled by default.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429109) in GitLab 16.6 [with a flag](../../feature_flags.md) named `bulk_import_details_page`. Enabled by default.
+> - Feature flag `bulk_import_details_page` removed in GitLab 16.8.
To review the results of an import:
1. Go to the [Group import history page](#group-import-history).
1. To see the details of a failed import, select the **See failures** link on any import with a **Failed** or **Partially completed** status.
-### Migrated group items
+## Migrated group items
The group items that are migrated depend on the version of GitLab you use on the destination. To determine if a
specific group item is migrated:
@@ -304,14 +303,14 @@ Group items that are migrated to the destination GitLab instance include:
- Already exists in the destination GitLab instance.
- Has a public email in the source GitLab instance that matches a confirmed email in the destination GitLab instance.
-#### Excluded items
+### Excluded items
Some group items are excluded from migration because they either:
- May contain sensitive information: CI/CD variables, webhooks, and deploy tokens.
- Are not supported: push rules.
-### Migrated project items **(BETA)**
+## Migrated project items **(BETA)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/267945) in GitLab 14.4 [with a flag](../../feature_flags.md) named `bulk_import_projects`. Disabled by default.
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/339941) in GitLab 15.6.
@@ -384,7 +383,7 @@ Project items that are migrated to the destination GitLab instance include:
</small>
</html>
-#### Issue-related items
+### Issue-related items
Issue-related project items that are migrated to the destination GitLab instance include:
@@ -397,7 +396,7 @@ Issue-related project items that are migrated to the destination GitLab instance
| Merge request URL references | [GitLab 15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/267947) |
| Time tracking | [GitLab 14.4](https://gitlab.com/gitlab-org/gitlab/-/issues/267946) |
-#### Merge request-related items
+### Merge request-related items
Merge request-related project items that are migrated to the destination GitLab instance include:
@@ -411,7 +410,7 @@ Merge request-related project items that are migrated to the destination GitLab
| Issue URL references | [GitLab 15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/267947) |
| Time tracking | [GitLab 14.5](https://gitlab.com/gitlab-org/gitlab/-/issues/339403) |
-#### Setting-related items
+### Setting-related items
Setting-related project items that are migrated to the destination GitLab instance include:
@@ -422,7 +421,7 @@ Setting-related project items that are migrated to the destination GitLab instan
| Project properties | [GitLab 14.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75898) |
| Service Desk | [GitLab 14.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75653) |
-#### Excluded items
+### Excluded items
Some project items are excluded from migration because they either:
@@ -443,7 +442,7 @@ Some project items are excluded from migration because they either:
- Pages domains
- Remote mirrors
-### Troubleshooting
+## Troubleshooting
In a [rails console session](../../../administration/operations/rails_console.md#starting-a-rails-console-session),
you can find the failure or error messages for the group import attempt using:
@@ -468,7 +467,7 @@ entities.where(status: [-1]).pluck(:destination_name, :destination_namespace, :s
You can also see all migrated entities with any failures related to them using an
[API endpoint](../../../api/bulk_imports.md#list-all-group-or-project-migrations-entities).
-#### Stale imports
+### Stale imports
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/352985) in GitLab 14.10.
@@ -483,7 +482,7 @@ import = BulkImports::Entity.where(namespace_id: Group.id).map(&:bulk_import)
import.status #=> 3 means that the import timed out.
```
-#### Error: `404 Group Not Found`
+### Error: `404 Group Not Found`
If you attempt to import a group that has a path comprised of only numbers (for example, `5000`), GitLab attempts to
find the group by ID instead of the path. This causes a `404 Group Not Found` error in GitLab 15.4 and earlier.
@@ -499,7 +498,7 @@ To solve this, you must change the source group path to include a non-numerical
- The [Groups API](../../../api/groups.md#update-group).
-#### Other `404` errors
+### Other `404` errors
You can receive other `404` errors when importing a group, for example:
@@ -511,7 +510,7 @@ You can receive other `404` errors when importing a group, for example:
This error indicates a problem transferring from the _source_ instance. To solve this, check that you have met the [prerequisites](#prerequisites) on the source
instance.
-#### Reducing migration duration
+### Reducing migration duration
A single direct transfer migration runs 5 entities (groups or projects) per import at a time, independent of the number of workers available on the destination instance.
That said, having more workers on the destination instance speeds up migration by decreasing the time it takes to import each entity.
@@ -529,157 +528,6 @@ Distributing projects in different groups helps to avoid timeouts. If several la
The GitLab UI can only migrate top-level groups. Using the API, you can also migrate subgroups.
-## Migrate groups by uploading an export file (deprecated)
-
-> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/2888) in GitLab 13.0 as an experimental feature. May change in future releases.
-> - [Deprecated](https://gitlab.com/groups/gitlab-org/-/epics/4619) in GitLab 14.6.
-
-WARNING:
-This feature was [deprecated](https://gitlab.com/groups/gitlab-org/-/epics/4619) in GitLab 14.6 and replaced by
-[migrating groups by direct transfer](#migrate-groups-by-direct-transfer-recommended). However, this feature is still recommended for migrating groups between
-offline systems. To follow progress on an alternative solution for [offline environments](../../application_security/offline_deployments/index.md), see
-[the relevant epic](https://gitlab.com/groups/gitlab-org/-/epics/8985).
-
-Prerequisites:
-
-- Owner role on the group to migrate.
-
-Using file exports, you can:
-
-- Export any group to a file and upload that file to another GitLab instance or to another location on the same instance.
-- Use either the GitLab UI or the [API](../../../api/group_import_export.md).
-- Migrate groups one by one, then export and import each project for the groups one by one.
-
-GitLab maps user contributions correctly when an admin access token is used to perform the import. GitLab does not map
-user contributions correctly when you are importing from a self-managed instance to GitLab.com. Correct mapping of user
-contributions when importing from a self-managed instance to GitLab.com can be preserved with paid involvement of
-Professional Services team.
-
-Note the following:
-
-- Exports are stored in a temporary directory and are deleted every 24 hours by a specific worker.
-- To preserve group-level relationships from imported projects, export and import groups first so that projects can
- be imported into the desired group structure.
-- Imported groups are given a `private` visibility level, unless imported into a parent group.
-- If imported into a parent group, a subgroup inherits the same level of visibility unless otherwise restricted.
-- You can export groups from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/)
- and vice versa. The Enterprise Edition retains some group data that isn't part of the Community Edition. If you're
- exporting a group from the Enterprise Edition to the Community Edition, you may lose this data. For more information,
- see [downgrading from EE to CE](../../../index.md).
-
-### Compatibility
-
-> Support for JSON-formatted project file exports [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/383682) in GitLab 15.8.
-
-Group file exports are in NDJSON format.
-
-You can import group file exports that were exported from a version of GitLab up to two
-[minor](../../../policy/maintenance.md#versioning) versions behind, which is similar to our process for
-[security releases](../../../policy/maintenance.md#security-releases).
-
-For example:
-
-| Destination version | Compatible source versions |
-|:--------------------|:---------------------------|
-| 13.0 | 13.0, 12.10, 12.9 |
-| 13.1 | 13.1, 13.0, 12.10 |
-
-### Exported contents
-
-The [`import_export.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/import_export/group/import_export.yml)
-file for groups lists items exported and imported when migrating groups using file exports. View this file in the branch
-for your version of GitLab to check which items can be imported to the destination GitLab instance. For example,
-[`import_export.yml` on the `14-10-stable-ee` branch](https://gitlab.com/gitlab-org/gitlab/-/blob/14-10-stable-ee/lib/gitlab/import_export/group/import_export.yml).
-
-Group items that are exported include:
-
-- Milestones
-- Group Labels (_without_ associated label priorities)
-- Boards and Board Lists
-- Badges
-- Subgroups (including all the aforementioned data)
-- Epics
- - Epic resource state events ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/291983) in GitLab 15.4)
-- Events
-- [Wikis](../../project/wiki/group.md)
- ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53247) in GitLab 13.9)
-- Iterations cadences ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95372) in 15.4)
-
-Items that are **not** exported include:
-
-- Projects
-- Runner tokens
-- SAML discovery tokens
-
-### Preparation
-
-- To preserve the member list and their respective permissions on imported groups, review the users in these groups. Make
-sure these users exist before importing the desired groups.
-- Users must set a public email in the source GitLab instance that matches their confirmed primary email in the destination GitLab instance. Most users receive an email asking them to confirm their email address.
-
-### Enable export for a group
-
-Prerequisites:
-
-- You must have the Owner role for the group.
-
-To enable import and export for a group:
-
-1. On the left sidebar, at the bottom, select **Admin Area**.
-1. Select **Settings > General**.
-1. Expand **Visibility and access controls**.
-1. In the **Import sources** section, select the checkboxes for the sources you want.
-
-### Export a group
-
-Prerequisites:
-
-- You must have the Owner role for the group.
-
-To export the contents of a group:
-
-1. On the left sidebar, select **Search or go to** and find your group.
-1. Select **Settings > General**.
-1. In the **Advanced** section, select **Export group**.
-1. After the export is generated, you should receive an email with a link to the [exported contents](#exported-contents)
- in a compressed tar archive, with contents in NDJSON format.
-1. Alternatively, you can download the export from the UI:
-
- 1. Return to your group's **Settings > General** page.
- 1. In the **Advanced** section, select **Download export**.
- You can also generate a new file by selecting **Regenerate export**.
-
-You can also export a group [using the API](../../../api/group_import_export.md).
-
-### Import the group
-
-1. On the left sidebar, at the top, select **Create new** (**{plus}**) and **New subgroup**.
-1. Select the **import an existing group** link.
-1. Enter your group name.
-1. Accept or modify the associated group URL.
-1. Select **Choose file...**.
-1. Select the file that you exported in the [Export a group](#export-a-group) section.
-1. To begin importing, select **Import**.
-
-Your newly imported group page appears after the operation completes.
-
-NOTE:
-The maximum import file size can be set by the administrator, default is `0` (unlimited).
-As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the
-[Application settings API](../../../api/settings.md#change-application-settings) or the
-[Admin Area](../../../administration/settings/account_and_limit_settings.md).
-Default [modified](https://gitlab.com/gitlab-org/gitlab/-/issues/251106) from 50 MB to 0 in GitLab 13.8.
-
-### Rate limits
-
-To help avoid abuse, by default, users are rate limited to:
-
-| Request Type | Limit |
-| ---------------- | ---------------------------------------- |
-| Export | 6 groups per minute |
-| Download export | 1 download per group per minute |
-| Import | 6 groups per minute |
-
## Automate group and project import **(PREMIUM ALL)**
For information on automating user, group, and project import API calls, see
diff --git a/doc/user/group/insights/img/insights_example_stacked_bar_chart_v15_4.png b/doc/user/group/insights/img/insights_example_stacked_bar_chart_v15_4.png
deleted file mode 100644
index f7963c170e1..00000000000
--- a/doc/user/group/insights/img/insights_example_stacked_bar_chart_v15_4.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/insights/index.md b/doc/user/group/insights/index.md
index 6ca37cb9a2c..0cb1ad093a5 100644
--- a/doc/user/group/insights/index.md
+++ b/doc/user/group/insights/index.md
@@ -1,94 +1,11 @@
---
-stage: Plan
-group: Optimize
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+redirect_to: '../../project/insights/index.md'
+remove_date: '2024-04-20'
---
-# Insights for groups **(ULTIMATE ALL)**
+This document was moved to [another location](../../project/insights/index.md).
-> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/725) in GitLab 12.0.
-
-Configure insights to explore data about you group's activity, such as
-triage hygiene, issues created or closed in a given period, and average time for merge
-requests to be merged.
-You can also create custom insights reports that are relevant for your group.
-
-## View group insights
-
-Prerequisites:
-
-- You must have [permission](../../permissions.md#group-members-permissions) to view the group.
-- You must have access to a project to view information about its merge requests and issues,
- and permission to view them if they are confidential.
-
-To access your group's insights:
-
-1. On the left sidebar, select **Search or go to** and find your group.
-1. Select **Analyze > Insights**.
-
-## Interact with insights charts
-
-You can interact with the insights charts to view details about your group's activity.
-
-![Insights example stacked bar chart](img/insights_example_stacked_bar_chart_v15_4.png)
-
-### Display different reports
-
-To display one of the available reports on the insights page, from the **Select report** dropdown list,
-select the report you want to display.
-
-### View bar chart annotations
-
-To view annotations, hover over each bar in the chart.
-
-### Zoom in on chart
-
-Insights display data from the last 90 days. You can zoom in to display data only from a subset of the 90-day range.
-
-To do this, select the pause icons (**{status-paused}**) and slide them along the horizontal axis:
-
-- To change the start date, slide the left pause icon to the left or right.
-- To change the end date, slide the right pause icon to the left or right.
-
-### Exclude dimensions from charts
-
-By default, insights display all available dimensions on the chart.
-
-To exclude a dimension, from the legend below the chart, select the name of the dimension.
-
-### Drill down on charts
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/372215/) in GitLab 16.7.
-
-You can drill down into the data of the **Bugs created per month by priority** and **Bugs created per month by severity** charts from the [default configuration file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/fixtures/insights/default.yml).
-
-To view a drill-down report of the data for a specific priority or severity in a month:
-
-- On the chart, select the bar stack you want to drill down on.
-
-## Configure group insights
-
-GitLab reads insights from the
-[default configuration file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/fixtures/insights/default.yml).
-
-To configure group insights:
-
-1. Create a new file [`.gitlab/insights.yml`](../../project/insights/index.md#configure-project-insights)
-in a project that belongs to your group.
-1. On the left sidebar, select **Search or go to** and find your group.
-1. Select **Settings > General**.
-1. Expand **Analytics** and find the **Insights** section.
-1. Select the project that contains your `.gitlab/insights.yml` configuration file.
-1. Select **Save changes**.
-
-<!-- ## Troubleshooting
-
-Include any troubleshooting steps that you can foresee. If you know beforehand what issues
-one might have when setting this up, or when something is changed, or on upgrading, it's
-important to describe those, too. Think of things that may go wrong and include them here.
-This is important to minimize requests for support, and to avoid doc comments with
-questions that you know someone might ask.
-
-Each scenario can be a third-level heading, for example `### Getting error message X`.
-If you have none to add when creating a doc, leave this section in place
-but commented out to help encourage others to add to it in the future. -->
+<!-- This redirect file can be deleted after <YYYY-MM-DD>. -->
+<!-- Redirects that point to other docs in the same project expire in three months. -->
+<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/group/issues_analytics/img/enhanced_issue_analytics_v16_7.png b/doc/user/group/issues_analytics/img/enhanced_issue_analytics_v16_7.png
index 519e56acaa5..b253fe336ee 100644
--- a/doc/user/group/issues_analytics/img/enhanced_issue_analytics_v16_7.png
+++ b/doc/user/group/issues_analytics/img/enhanced_issue_analytics_v16_7.png
Binary files differ
diff --git a/doc/user/group/issues_analytics/index.md b/doc/user/group/issues_analytics/index.md
index 28f4026b3e3..efd4a46c710 100644
--- a/doc/user/group/issues_analytics/index.md
+++ b/doc/user/group/issues_analytics/index.md
@@ -4,17 +4,18 @@ group: Optimize
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Issue analytics for groups **(PREMIUM ALL)**
+# Issue analytics **(PREMIUM ALL)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7478) in GitLab 11.5.
+> - Issue analytics for groups [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7478) in GitLab 11.5.
+> - Issue analytics for projects [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/196561) in GitLab 12.9.
Issue analytics is a bar graph which illustrates the number of issues created each month.
-The default time span is 13 months, which includes the current month, and the 12 months
-prior.
+The default time span is 13 months, which includes the current month, and the 12 months prior.
+Issue analytics is available for projects and groups.
To access the chart:
-1. On the left sidebar, select **Search or go to** and find your group.
+1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Analyze > Issue analytics**.
You can also access the chart from the [Value Streams Dashboard](../../analytics/value_streams_dashboard.md) through the **New issues** drill-down report.
@@ -39,12 +40,11 @@ shows a total of 15 months for the chart in the GitLab.org group.
## Enhanced issue analytics **(ULTIMATE ALL)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/233905/) in GitLab 16.4 [with a flag](../../../administration/feature_flags.md) named `issues_completed_analytics_feature_flag`. Disabled by default.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/233905/) in GitLab 16.3 [with a flag](../../../administration/feature_flags.md) named `issues_completed_analytics_feature_flag`. Disabled by default.
+> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/437542) in GitLab 16.8.
FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available, an administrator can
-[enable the feature flag](../../../administration/feature_flags.md) named `issues_completed_analytics_feature_flag`. On GitLab.com, this feature is not
-available. This feature is not ready for production use.
+On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `issues_completed_analytics_feature_flag`. On GitLab.com, this feature is available.
Enhanced issue analytics display the additional metric "Issues closed", which represents the total number of resolved issues in your group over a selected period.
You can use this metric to improve the overall turn-around time and value delivered to your customers.
diff --git a/doc/user/group/manage.md b/doc/user/group/manage.md
index 877db58b716..58c3f837e26 100644
--- a/doc/user/group/manage.md
+++ b/doc/user/group/manage.md
@@ -165,7 +165,7 @@ Transferring groups moves them from one place to another in the same GitLab inst
- Convert a subgroup into a top-level group by transferring it out of its current group.
If you need to copy a group to a different GitLab instance,
-[migrate the group by direct transfer](import/index.md#migrate-groups-by-direct-transfer-recommended).
+[migrate the group by direct transfer](import/index.md).
When transferring groups, note:
@@ -449,11 +449,6 @@ for the ability to set merge request approval rules for groups is tracked in
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/408158) from GitLab Ultimate to GitLab Premium in 16.0.
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/410801) from GitLab Premium to GitLab Free in 16.0.
-WARNING:
-This feature is in [Beta](../../policy/experiment-beta-support.md#beta).
-Beta users should read about the [known limitations](../project/repository/code_suggestions/index.md#known-limitations).
-We look forward to hearing your [feedback](../project/repository/code_suggestions/index.md#feedback).
-
You can give all users in a group and its subgroups access to
[Code Suggestions](../project/repository/code_suggestions/index.md). This setting
[cascades to all projects](../project/merge_requests/approvals/settings.md#settings-cascading) in the group.
diff --git a/doc/user/group/saml_sso/troubleshooting.md b/doc/user/group/saml_sso/troubleshooting.md
index a2576f37ac9..1e7c749a705 100644
--- a/doc/user/group/saml_sso/troubleshooting.md
+++ b/doc/user/group/saml_sso/troubleshooting.md
@@ -248,6 +248,11 @@ For GitLab.com, alternatively, when users need to [link SAML to their existing G
### Users receive a 404 **(PREMIUM SAAS)**
+If the user receives a `404` after signing in successfully, check if you have IP restrictions configured. IP restriction settings are configured:
+
+- On GitLab.com, [at the group level](../../../user/group/access_and_permissions.md#restrict-group-access-by-ip-address).
+- For GitLab self-managed, [at the instance level](../../../administration/reporting/ip_addr_restrictions.md).
+
Because SAML SSO for groups is a paid feature, your subscription expiring can result in a `404` error when you're signing in using SAML SSO on GitLab.com.
If all users are receiving a `404` when attempting to sign in using SAML, confirm
[there is an active subscription](../../../subscriptions/gitlab_com/index.md#view-your-gitlab-saas-subscription) being used in this SAML SSO namespace.
diff --git a/doc/user/group/saml_sso/troubleshooting_scim.md b/doc/user/group/saml_sso/troubleshooting_scim.md
index 3dcb2d93096..47b2144c7ff 100644
--- a/doc/user/group/saml_sso/troubleshooting_scim.md
+++ b/doc/user/group/saml_sso/troubleshooting_scim.md
@@ -111,6 +111,26 @@ Changing the SAML or SCIM configuration or provider can cause the following prob
the SCIM app.
1. Use the same SCIM API to update the SCIM `extern_uid` for the user on GitLab.com.
+## The member's email address is not allowed for this group
+
+SCIM provisioning may fail with HTTP status `412` and the following error message:
+
+```plaintext
+The member's email address is not allowed for this group. Check with your administrator.
+```
+
+This error occurs when both of the following are true:
+
+- [Restrict group access by domain](../access_and_permissions.md) is configured
+ for the group.
+- The user account being provisioned has an email domain that is not allowed.
+
+To resolve this issue, you can do either of the following:
+
+- Add the user account's email domain to the list of allowed domains.
+- Disable the [Restrict group access by domain](../access_and_permissions.md)
+ feature by removing all domains.
+
## Search Rails logs for SCIM requests **(PREMIUM SAAS)**
GitLab.com administrators can search for SCIM requests in the `api_json.log` using the `pubsub-rails-inf-gprd-*` index in
@@ -149,9 +169,9 @@ The first workaround is:
1. Have the end user [link SAML to their existing GitLab.com account](index.md#link-saml-to-your-existing-gitlabcom-account).
1. After the user has done this, initiate a SCIM sync from your identity provider.
-If the SCIM sync completes without the same error, GitLab has
-successfully linked the SCIM identity to the existing user account, and the user
-should now be able to sign in using SAML SSO.
+ If the SCIM sync completes without the same error, GitLab has
+ successfully linked the SCIM identity to the existing user account, and the user
+ should now be able to sign in using SAML SSO.
If the error persists, the user most likely already exists, has both a SAML and
SCIM identity, and a SCIM identity that is set to `active: false`. To resolve
@@ -166,7 +186,7 @@ this:
If any of this information does not match, [contact GitLab Support](https://support.gitlab.com/).
1. Use the API to [update the SCIM provisioned user's `active` value to `true`](/ee/development/internal_api/index.md#update-a-single-scim-provisioned-user).
1. If the update returns a status code `204`, have the user attempt to sign in
-using SAML SSO.
+ using SAML SSO.
## Azure Active Directory
diff --git a/doc/user/group/subgroups/index.md b/doc/user/group/subgroups/index.md
index a63d4a98fa2..a43de3ef73b 100644
--- a/doc/user/group/subgroups/index.md
+++ b/doc/user/group/subgroups/index.md
@@ -10,12 +10,12 @@ info: To determine the technical writer assigned to the Stage/Group associated w
You can organize GitLab [groups](../index.md) into subgroups. You can use subgroups to:
-- Separate internal and external organizations. Because every subgroup can have its own
+- Separate internal and external content. Because every subgroup can have its own
[visibility level](../../public_access.md), you can host groups for different
purposes under the same parent group.
-- Organize large projects. You can use subgroups to give different access to parts of
+- Organize large projects. You can use subgroups to manage who can access parts of
the source code.
-- Manage people and control visibility. Give a user a different
+- Manage permissions. Give a user a different
[role](../../permissions.md#group-members-permissions) for each group they're [a member of](#subgroup-membership).
Subgroups can:
@@ -25,7 +25,7 @@ Subgroups can:
- Be nested up to 20 levels.
- Use [runners](../../../ci/runners/index.md) registered to parent groups:
- Secrets configured for the parent group are available to subgroup jobs.
- - Users with the Maintainer role in projects that belong to subgroups can see the details of runners registered to
+ - Users with at least the Maintainer role in projects that belong to subgroups can see the details of runners registered to
parent groups.
For example:
@@ -52,7 +52,7 @@ graph TD
Prerequisites:
- To view private nested subgroups, you must be a direct or inherited member of
-the private subgroup.
+ the private subgroup.
To view the subgroups of a group:
@@ -117,7 +117,7 @@ For more information, view the [permissions table](../../permissions.md#group-me
## Subgroup membership
When you add a member to a group, that member is also added to all subgroups of that group.
-The member's permissions are inherited from the group's parent.
+The member's permissions are inherited from the group into all subgroups.
Subgroup members can be:
@@ -189,8 +189,8 @@ Members can be [filtered by inherited or direct membership](../index.md#filter-a
Users with the Owner role in a subgroup can add members to it.
-You can't give a user a role in a subgroup that is lower than the roles the user has in ancestor groups.
-To override a user's role in an ancestor group, add the user to the subgroup again with a higher role.
+You can't give a user a role in a subgroup that is lower than the roles the user has in parent groups.
+To override a user's role in a parent group, add the user to the subgroup again with a higher role.
For example:
- If User 1 is added to group _Two_ with the Developer role, User 1 inherits that role in every subgroup of group _Two_.
@@ -201,7 +201,7 @@ For example:
## Mention subgroups
-Mentioning subgroups ([`@<subgroup_name>`](../../discussions/index.md#mentions)) in issues, commits, and merge requests
+Mentioning subgroups ([`@<subgroup_name>`](../../discussions/index.md#mentions)) in epics, issues, commits, and merge requests
notifies all direct members of that group. Inherited members of a subgroup are not notified by mentions.
Mentioning works the same as for projects and groups, and you can choose the group of members to be notified.
diff --git a/doc/user/group/value_stream_analytics/index.md b/doc/user/group/value_stream_analytics/index.md
index 0fdd572ed7c..7e077c7065c 100644
--- a/doc/user/group/value_stream_analytics/index.md
+++ b/doc/user/group/value_stream_analytics/index.md
@@ -166,7 +166,7 @@ In this example, milestones have been created and CI/CD for testing and setting
- 14:00: Push branch and create a merge request that contains the
[issue closing pattern](../../project/issues/managing_issues.md#closing-issues-automatically).
**Code** stage stops and **Test** and **Review** stages start.
-- GitLab CI/CD takes 5 minutes to run scripts defined in [`.gitlab-ci.yml`](../../../ci/yaml/index.md).
+- GitLab CI/CD takes 5 minutes to run scripts defined in the [`.gitlab-ci.yml` file](../../../ci/index.md#the-gitlab-ciyml-file).
- 19:00: Merge the merge request. **Review** stage stops and **Staging** stage starts.
- 19:30: Deployment to the `production` environment finishes. **Staging** stops.
@@ -305,7 +305,7 @@ In GitLab 13.8 and earlier, deployment frequency metrics are calculated based on
Prerequisites:
- To view deployment metrics, you must have a
-[production environment configured](#how-value-stream-analytics-identifies-the-production-environment).
+ [production environment configured](#how-value-stream-analytics-identifies-the-production-environment).
To view lifecycle metrics:
@@ -442,11 +442,11 @@ After you create a value stream, you can customize it to suit your purposes. To
1. In the upper-right corner, select the dropdown list, then select a value stream.
1. Next to the value stream dropdown list, select **Edit**.
1. Optional:
- - Rename the value stream.
- - Hide or re-order default stages.
- - Remove existing custom stages.
- - To add new stages, select **Add another stage**.
- - Select the start and end events for the stage.
+ - Rename the value stream.
+ - Hide or re-order default stages.
+ - Remove existing custom stages.
+ - To add new stages, select **Add another stage**.
+ - Select the start and end events for the stage.
1. Optional. To undo any modifications, select **Restore value stream defaults**.
1. Select **Save Value Stream**.
diff --git a/doc/user/infrastructure/clusters/connect/new_gke_cluster.md b/doc/user/infrastructure/clusters/connect/new_gke_cluster.md
index 3b20125ff03..839bce217b7 100644
--- a/doc/user/infrastructure/clusters/connect/new_gke_cluster.md
+++ b/doc/user/infrastructure/clusters/connect/new_gke_cluster.md
@@ -52,7 +52,7 @@ To import the project:
This project provides you with:
- A [cluster on Google Cloud Platform (GCP)](https://gitlab.com/gitlab-org/configure/examples/gitlab-terraform-gke/-/blob/master/gke.tf)
-with defaults for name, location, node count, and Kubernetes version.
+ with defaults for name, location, node count, and Kubernetes version.
- The [GitLab agent for Kubernetes](https://gitlab.com/gitlab-org/configure/examples/gitlab-terraform-gke/-/blob/master/agent.tf) installed in the cluster.
## Register the agent
@@ -73,10 +73,10 @@ To create a GitLab agent for Kubernetes:
To set up your project to communicate to GCP and the GitLab API:
1. To authenticate GCP with GitLab, create a [GCP service account](https://cloud.google.com/docs/authentication#service-accounts)
-with following roles: `Compute Network Viewer`, `Kubernetes Engine Admin`, `Service Account User`, and `Service Account Admin`. Both User and Admin
-service accounts are necessary. The User role impersonates the [default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account)
-when [creating the node pool](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/using_gke_with_terraform#node-pool-management).
-The Admin role creates a service account in the `kube-system` namespace.
+ with following roles: `Compute Network Viewer`, `Kubernetes Engine Admin`, `Service Account User`, and `Service Account Admin`. Both User and Admin
+ service accounts are necessary. The User role impersonates the [default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account)
+ when [creating the node pool](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/using_gke_with_terraform#node-pool-management).
+ The Admin role creates a service account in the `kube-system` namespace.
1. Download the JSON file with the service account key you created in the previous step.
1. On your computer, encode the JSON file to `base64` (replace `/path/to/sa-key.json` to the path to your key):
diff --git a/doc/user/infrastructure/iac/index.md b/doc/user/infrastructure/iac/index.md
index d76f5dd736a..616e15dc230 100644
--- a/doc/user/infrastructure/iac/index.md
+++ b/doc/user/infrastructure/iac/index.md
@@ -84,13 +84,13 @@ To use a Terraform template:
```yaml
variables:
- TF_STATE_NAME: default
- # If your terraform files are in a subdirectory, set TF_ROOT accordingly. For example:
- # TF_ROOT: terraform/production
+ TF_STATE_NAME: default
+ # If your terraform files are in a subdirectory, set TF_ROOT accordingly. For example:
+ # TF_ROOT: terraform/production
```
1. Optional. Override in your `.gitlab-ci.yml` file the attributes present
-in the template you fetched to customize your configuration.
+ in the template you fetched to customize your configuration.
### Terraform template recipes
diff --git a/doc/user/infrastructure/index.md b/doc/user/infrastructure/index.md
index 04d6caff0ba..6662f6a9dcb 100644
--- a/doc/user/infrastructure/index.md
+++ b/doc/user/infrastructure/index.md
@@ -1,10 +1,11 @@
---
stage: Deploy
group: Environments
+description: Terraform and Kubernetes deployments.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Infrastructure management **(FREE ALL)**
+# Manage your infrastructure **(FREE ALL)**
With the rise of DevOps and SRE approaches, infrastructure management becomes codified,
automatable, and software development best practices gain their place around infrastructure
diff --git a/doc/user/markdown.md b/doc/user/markdown.md
index 01bd7ce0ba6..372442bb53f 100644
--- a/doc/user/markdown.md
+++ b/doc/user/markdown.md
@@ -25,13 +25,12 @@ When this list is rendered, it looks like this:
- Dog
- Turtle
-These styles are **valid for GitLab only**. The [GitLab documentation website](https://docs.gitlab.com)
-and the [main GitLab website](https://about.gitlab.com) use [Kramdown](https://kramdown.gettalong.org) instead.
-
-You should not view this page in the documentation, but instead [view these styles as they appear on GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md).
+NOTE:
+As this Markdown specification is **valid for GitLab only**, you should
+[view these styles as they appear on GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md).
-GitLab Flavored Markdown extends the [CommonMark specification](https://spec.commonmark.org/current/).
-It was inspired by [GitHub Flavored Markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax).
+We do our best to render the Markdown faithfully here, however the [GitLab documentation website](https://docs.gitlab.com)
+and the [GitLab handbook](https://handbook.gitlab.com) use a different Markdown processor.
## Where you can use GitLab Flavored Markdown
@@ -39,44 +38,58 @@ You can use GitLab Flavored Markdown in the following areas:
- Comments
- Issues
+- Epics
- Merge requests
- Milestones
- Snippets (the snippet must be named with a `.md` extension)
- Wiki pages
- Markdown documents inside repositories
-- Epics
You can also use other rich text files in GitLab. You might have to install a dependency
to do so. For more information, see the [`gitlab-markup` gem project](https://gitlab.com/gitlab-org/gitlab-markup).
### Differences between GitLab Flavored Markdown and standard Markdown
-GitLab uses standard CommonMark formatting. However, GitLab Flavored Markdown
-extends standard Markdown with features made specifically for GitLab.
+<!--
+Use this topic to list features that are not present in standard Markdown.
+Don't repeat this information in each individual topic, unless there's a specific
+reason, like in "Newlines".
+-->
-Features not found in standard Markdown:
+GitLab Flavored Markdown consists of the following:
+
+- Core Markdown features, based on the [CommonMark specification](https://spec.commonmark.org/current/).
+- Extensions from [GitHub Flavored Markdown](https://github.github.com/gfm/).
+- Extensions made specifically for GitLab.
+
+All standard Markdown formatting should work as expected in GitLab. Some standard
+functionality is extended with additional features, without affecting the standard usage.
+
+The following features are not found in standard Markdown:
- [Color chips written in `HEX`, `RGB` or `HSL`](#colors)
- [Diagrams and flowcharts](#diagrams-and-flowcharts)
- [Emoji](#emoji)
+- [Footnotes](#footnotes)
- [Front matter](#front-matter)
+- [GitLab-specific references](#gitlab-specific-references)
- [Inline diffs](#inline-diff)
- [Math equations and symbols written in LaTeX](#math)
-- [Task Lists](#task-lists)
+- [Strikethrough](#emphasis)
- [Table of Contents](#table-of-contents)
-- [Wiki specific Markdown](#wiki-specific-markdown)
+- [Tables](#tables)
+- [Task lists](#task-lists)
+- [Wiki-specific Markdown](#wiki-specific-markdown)
-Features [extended from standard Markdown](#features-extended-from-standard-markdown):
+The following features are extended from standard Markdown:
| Standard Markdown | Extended Markdown in GitLab |
|---------------------------------------|---------------------------------------------------------------------------------------|
-| [blockquotes](#blockquotes) | [multi-line blockquotes](#multiline-blockquote) |
-| [code blocks](#code-spans-and-blocks) | [colored code and syntax highlighting](#colored-code-and-syntax-highlighting) |
-| [emphasis](#emphasis) | [multiple underscores in words](#multiple-underscores-in-words-and-mid-word-emphasis) |
-| [headers](#headers) | [linkable Header IDs](#header-ids-and-links) |
-| [images](#images) | [embedded videos](#videos) and [audio](#audio) |
-| [line breaks](#line-breaks) | [more line break control](#newlines) |
-| [links](#links) | [automatically linking URLs](#url-auto-linking) |
+| [Blockquotes](#blockquotes) | [Multiline blockquotes](#multiline-blockquote) |
+| [Code blocks](#code-spans-and-blocks) | [Colored code and syntax highlighting](#colored-code-and-syntax-highlighting) |
+| [Headings](#headings) | [Linkable heading IDs](#heading-ids-and-links) |
+| [Images](#images) | [Embedded videos](#videos) and [audio](#audio) |
+| [Links](#links) | [Automatically linking URLs](#url-auto-linking) |
## Markdown and accessibility
@@ -85,27 +98,25 @@ This content should be as accessible as possible to your audience.
The following list is not exhaustive, but it provides guidance for some of the GLFM styles to pay
particular attention to:
-### Headings
+### Accessible headings
Use heading formatting to create a logical heading structure.
The structure of headings on a page should make sense, like a good table of contents.
Ensure that there is only one `h1` element on a page, that heading levels are not skipped, and that they are nested correctly.
-### Tables
+### Accessible tables
To keep tables accessible and scannable, tables should not have any empty cells.
If there is no otherwise meaningful value for a cell, consider entering **N/A** for "not applicable" or **None**.
-### Images and videos
+### Accessible images and videos
Describe the image or video in the `[alt text]`. Make the description accurate, succinct, and unique.
Don't use `image of` or `video of` in the description. For more information, see [WebAim Alternative Text](https://webaim.org/techniques/alttext/).
-## Features not found in standard Markdown
-
-The following features are not found in standard Markdown.
+## Colors
-### Colors
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#colors).
Markdown does not support changing text color.
@@ -132,9 +143,6 @@ display a color chip next to the color code. For example:
- `HSLA(540,70%,50%,0.3)`
```
-[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#colors)
-to see the color chips next to the color code:
-
- `#F00`
- `#F00A`
- `#FF0000`
@@ -145,7 +153,7 @@ to see the color chips next to the color code:
- `HSL(540,70%,50%)`
- `HSLA(540,70%,50%,0.3)`
-### Diagrams and flowcharts
+## Diagrams and flowcharts
You can generate diagrams from text by using:
@@ -155,7 +163,9 @@ You can generate diagrams from text by using:
In wikis, you can also add and edit diagrams created with the [diagrams.net editor](#diagramsnet-editor).
-#### Mermaid
+### Mermaid
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#mermaid).
Visit the [official page](https://mermaidjs.github.io/) for more details. The
[Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor/) helps you
@@ -220,24 +230,20 @@ graph TB
end
```
-#### PlantUML
+### PlantUML
PlantUML integration is enabled on GitLab.com. To make PlantUML available in self-managed
installation of GitLab, a GitLab administrator [must enable it](../administration/integration/plantuml.md).
-#### Kroki
+### Kroki
To make Kroki available in GitLab, a GitLab administrator must enable it.
For more information, see the [Kroki integration](../administration/integration/kroki.md) page.
-### Emoji
+## Emoji
[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#emoji).
-::Tabs
-
-:::TabTitle Rendered Markdown
-
Sometimes you want to <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/public/-/emojis/2/monkey.png" width="20px" height="20px" style="display:inline;margin:0;border:0;padding:0;" title=":monkey:" alt=":monkey:"> around a bit and add some <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/public/-/emojis/2/star2.png" width="20px" height="20px" style="display:inline;margin:0;border:0;padding:0;" title=":star2:" alt=":star2:"> to your <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/public/-/emojis/2/speech_balloon.png" width="20px" height="20px" style="display:inline;margin:0;border:0;padding:0;" title=":speech_balloon:" alt=":speech_balloon:">. Well we have a gift for you:
<img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/public/-/emojis/2/zap.png" width="20px" height="20px" style="display:inline;margin:0;border:0;padding:0;" title=":zap:" alt=":zap:">You can use emoji anywhere GitLab Flavored Markdown is supported. <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/public/-/emojis/2/v.png" width="20px" height="20px" style="display:inline;margin:0;border:0;padding:0;" title=":v:" alt=":v:">
@@ -248,7 +254,7 @@ If you're new to this, don't be <img src="https://gitlab.com/gitlab-org/gitlab-f
Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/public/-/emojis/2/thumbsup.png" width="20px" height="20px" style="display:inline;margin:0;border:0;padding:0;" title=":thumbsup:" alt=":thumbsup:">
-:::TabTitle Code
+The above paragraphs in raw Markdown:
```markdown
Sometimes you want to :monkey: around a bit and add some :star2: to your
@@ -267,12 +273,10 @@ Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/)
for a list of all supported emoji codes. :thumbsup:
```
-::EndTabs
-
-#### Emoji and your operating system
+### Emoji and your operating system
The previous emoji example uses hard-coded images. Rendered emoji
-in GitLab may be different depending on the OS and browser used.
+in GitLab might look different depending on the OS and browser used.
Most emoji are natively supported on macOS, Windows, iOS, Android, and fall back on image-based
emoji where there is no support.
@@ -280,14 +284,14 @@ emoji where there is no support.
<!-- vale gitlab.Spelling = NO -->
On Linux, you can download [Noto Color Emoji](https://github.com/googlefonts/noto-emoji)
-to get full native emoji support. Ubuntu 18.04 (like many modern Linux distributions) has
+to get full native emoji support. Ubuntu 22.04 (like many modern Linux distributions) has
this font installed by default.
<!-- vale gitlab.Spelling = YES -->
To learn more about adding custom emoji, see [Custom emoji](emoji_reactions.md#custom-emoji).
-### Front matter
+## Front matter
Front matter is metadata included at the beginning of a Markdown document, preceding
the content. This data can be used by static site generators like [Jekyll](https://jekyllrb.com/docs/front-matter/),
@@ -349,7 +353,7 @@ $example = array(
---
```
-### Inline diff
+## Inline diff
[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#inline-diff).
@@ -377,8 +381,8 @@ However, you cannot mix the wrapping tags:
- [- deletion -}
```
-If your diff includes words in `` `code` `` font, make sure to escape each backtick `` ` `` with a
-backslash <code>&#92;</code>. Otherwise the diff highlight does not render correctly:
+Diff highlighting doesn't work with `` `inline code` ``. If your text includes backticks (`` ` ``), escape
+each backtick with a backslash <code>&#92;</code>:
```markdown
- {+ Just regular text +}
@@ -388,7 +392,7 @@ backslash <code>&#92;</code>. Otherwise the diff highlight does not render corre
![Inline diff with mixed formatting, as rendered by the GitLab interface](img/inline_diff_02_v13_3.png)
-### Math
+## Math
> - LaTeX-compatible fencing [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21757) in GitLab 15.4 [with a flag](../administration/feature_flags.md) named `markdown_dollar_math`. Disabled by default. Enabled on GitLab.com.
> - LaTeX-compatible fencing [generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/371180) in GitLab 15.8. Feature flag `markdown_dollar_math` removed.
@@ -397,7 +401,7 @@ backslash <code>&#92;</code>. Otherwise the diff highlight does not render corre
Math written in LaTeX syntax is rendered with [KaTeX](https://github.com/KaTeX/KaTeX).
_KaTeX only supports a [subset](https://katex.org/docs/supported.html) of LaTeX._
-This syntax also works for the Asciidoctor `:stem: latexmath`. For details, see
+This syntax also works in AsciiDoc wikis and files using `:stem: latexmath`. For details, see
the [Asciidoctor user manual](https://asciidoctor.org/docs/user-manual/#activating-stem-support).
To prevent malicious activity, GitLab renders only the first 50 inline math instances.
@@ -445,7 +449,7 @@ $$
a^2+b^2=c^2
$$
-### Task lists
+## Task lists
> Inapplicable checkboxes [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85982) in GitLab 15.3.
@@ -453,12 +457,12 @@ $$
You can add task lists anywhere Markdown is supported.
-- In issues, merge requests, and comments, you can select the boxes.
+- In issues, merge requests, epics, and comments, you can select the boxes.
- In all other places, you cannot select the boxes. You must edit the Markdown manually
by adding or removing an `x` in the brackets.
Besides complete and incomplete, tasks can also be **inapplicable**. Selecting an inapplicable checkbox
-in an issue, merge request, or comment has no effect.
+in an issue, merge request, epic, or comment has no effect.
To create a task list, follow the format of an ordered or unordered list:
@@ -480,28 +484,40 @@ To create a task list, follow the format of an ordered or unordered list:
![Task list as rendered by GitLab](img/completed_tasks_v15_3.png)
-### Table of contents
+To include task lists in tables, [use HTML list tags or HTML tables](#task-lists-in-tables).
+
+## Table of contents
+
+A table of contents is an unordered list that links to subheadings in the document.
+You can add a table of contents to issues, merge requests, and epics, but you can't add one
+to notes or comments.
+
+Add one of these tags on their own line to the **description** field of any of the supported
+content types:
<!--
-The following paragraphs use HTML to work around a Markdown bug.
-Do not change it back to a Markdown backticks.
+Tags for the table of contents are presented in a code block to work around a Markdown bug.
+Do not change the code block back to single backticks.
For more information, see https://gitlab.com/gitlab-org/gitlab/-/issues/359077.
-->
-<!-- vale gitlab.Uppercase = NO -->
-A table of contents is an unordered list that links to subheadings in the document.
-You can add a table of contents to issues and merge requests, but you can't add one
-to notes or comments. Add either the `[[_TOC_]]` or <code>[TOC]</code> tag on its own line
-to the **Description** field of any of the supported content types:
-<!-- vale gitlab.Uppercase = YES -->
-NOTE:
-A table of contents renders also when you use <code>`[TOC]`</code>, regardless of being on its own line or not.
-This behavior is unintended. For more information, see [issue 359077](https://gitlab.com/gitlab-org/gitlab/-/issues/359077).
+```markdown
+[[_TOC_]]
+or
+[TOC]
+```
- Markdown files.
- Wiki pages.
- Issues.
- Merge requests.
+- Epics.
+
+NOTE:
+A table of contents renders also when you use the TOC code in single square brackets, regardless of
+being on its own line or not.
+This behavior is unintended.
+For more information, see [issue 359077](https://gitlab.com/gitlab-org/gitlab/-/issues/359077).
```markdown
This sentence introduces my wiki page.
@@ -519,11 +535,13 @@ Second section content.
![Preview of an auto-generated table of contents in a Wiki](img/markdown_toc_preview_v12_9.png)
-### Wiki-specific Markdown
+## Wiki-specific Markdown
The following topics show how links inside wikis behave.
-#### Wiki - direct page link
+When linking to wiki pages, you should use the **page slug** rather than the page name.
+
+### Wiki - direct page link
A direct page link includes the slug for a page that points to that page,
at the base level of the wiki.
@@ -534,7 +552,7 @@ This example links to a `documentation` page at the root of your wiki:
[Link to Documentation](documentation)
```
-#### Wiki - direct file link
+### Wiki - direct file link
A direct file link points to a file extension for a file, relative to the current page.
@@ -545,7 +563,7 @@ it links to `<your_wiki>/documentation/file.md`:
[Link to File](file.md)
```
-#### Wiki - hierarchical link
+### Wiki - hierarchical link
A hierarchical link can be constructed relative to the current wiki page by using `./<page>`,
`../<page>`, and so on.
@@ -578,7 +596,7 @@ it links to `<your_wiki>/documentation/main.md`:
[Link to Related Page](../main.md)
```
-#### Wiki - root link
+### Wiki - root link
A root link starts with a `/` and is relative to the wiki root.
@@ -594,7 +612,7 @@ This example links to `<wiki_root>/miscellaneous.md`:
[Link to Related Page](/miscellaneous.md)
```
-#### diagrams.net editor
+### diagrams.net editor
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322174) in GitLab 15.10.
@@ -604,43 +622,54 @@ the plain text editor and the rich text editor.
For more information, see [Diagrams.net](../administration/integration/diagrams_net.md).
-##### Plain text editor
+#### Plain text editor
To create a diagram in the plain text editor:
+1. On the wiki page you want to edit, select **Edit**.
+1. In the text box, make sure you're using the plain text editor
+ (the button on the bottom left says **Switch to rich text editing**).
1. In the editor's toolbar, select **Insert or edit diagram** (**{diagram}**).
-1. Use the diagrams.net editor to create the diagram.
+1. Create the diagram in the [app.diagrams.net](https://app.diagrams.net/) editor.
1. Select **Save & exit**.
A Markdown image reference to the diagram is inserted in the wiki content.
To edit a diagram in the plain text editor:
-1. Place the plain text editor's text field cursor in a Markdown image reference
-that contains the diagram.
-1. Select **Insert or edit diagram** (**{diagram}**) in the plain text editor.
-1. Use the diagrams.net editor to edit the diagram.
+1. On the wiki page you want to edit, select **Edit**.
+1. In the text box, make sure you're using the plain text editor
+ (the button on the bottom left says **Switch to rich text editing**).
+1. Position your cursor in the Markdown image reference that contains the diagram.
+1. Select **Insert or edit diagram** (**{diagram}**).
+1. Edit the diagram in the [app.diagrams.net](https://app.diagrams.net/) editor.
1. Select **Save & exit**.
A Markdown image reference to the diagram is inserted in the wiki content,
replacing the previous diagram.
-##### Rich text editor
+#### Rich text editor
To create a diagram in the rich text editor:
+1. On the wiki page you want to edit, select **Edit**.
+1. In the text box, make sure you're using the rich text editor
+ (the button on the bottom left says **Switch to plain text editing**).
1. In the editor's toolbar, select **More options** (**{plus}**).
1. In the dropdown list, select **Create or edit diagram**.
-1. Use the diagrams.net editor to create the diagram.
+1. Create the diagram in the [app.diagrams.net](https://app.diagrams.net/) editor.
1. Select **Save & exit**.
The diagram as visualized in the diagrams.net editor is inserted in the wiki content.
To edit a diagram in the rich text editor:
+1. On the wiki page you want to edit, select **Edit**.
+1. In the text box, make sure you're using the rich text editor
+ (the button on the bottom left says **Switch to plain text editing**).
1. Select the diagram that you want to edit.
1. In the floating toolbar, select **Edit diagram** (**{diagram}**).
-1. Use the diagrams.net editor to edit the diagram.
+1. Edit the diagram in the [app.diagrams.net](https://app.diagrams.net/) editor.
1. Select **Save & exit**.
The selected diagram is replaced with an updated version.
@@ -657,54 +686,55 @@ version to reference other projects from the same namespace.
GitLab Flavored Markdown recognizes the following:
-| references | input | cross-project reference | shortcut inside same namespace |
-|:----------------------------------------------------------------------------|:------------------------------|:----------------------------------------|:-------------------------------|
-| specific user | `@user_name` | | |
-| specific group | `@group_name` | | |
-| entire team | [`@all`](discussions/index.md#mentioning-all-members) | | |
-| project | `namespace/project>` | | |
-| issue | ``#123`` | `namespace/project#123` | `project#123` |
-| merge request | `!123` | `namespace/project!123` | `project!123` |
-| snippet | `$123` | `namespace/project$123` | `project$123` |
-| [epic](group/epics/index.md) | `&123` | `group1/subgroup&123` | |
-| [iteration](group/iterations/index.md) | `*iteration:"iteration title"`| | |
-| [vulnerability](application_security/vulnerabilities/index.md) <sup>1</sup> | `[vulnerability:123]` | `[vulnerability:namespace/project/123]` | `[vulnerability:project/123]` |
-| feature flag | `[feature_flag:123]` | `[feature_flag:namespace/project/123]` | `[feature_flag:project/123]` |
-| label by ID | `~123` | `namespace/project~123` | `project~123` |
-| one-word label by name | `~bug` | `namespace/project~bug` | `project~bug` |
-| multi-word label by name | `~"feature request"` | `namespace/project~"feature request"` | `project~"feature request"` |
-| scoped label by name | `~"priority::high"` | `namespace/project~"priority::high"` | `project~"priority::high"` |
-| project milestone by ID | `%123` | `namespace/project%123` | `project%123` |
-| one-word milestone by name | `%v1.23` | `namespace/project%v1.23` | `project%v1.23` |
-| multi-word milestone by name | `%"release candidate"` | `namespace/project%"release candidate"` | `project%"release candidate"` |
-| specific commit | `9ba12248` | `namespace/project@9ba12248` | `project@9ba12248` |
-| commit range comparison | `9ba12248...b19a04f5` | `namespace/project@9ba12248...b19a04f5` | `project@9ba12248...b19a04f5` |
-| repository file references | `[README](doc/README.md)` | | |
-| repository file line references | `[README](doc/README.md#L13)` | | |
-| [alert](../operations/incident_management/alerts.md) | `^alert#123` | `namespace/project^alert#123` | `project^alert#123` |
-| contact | `[contact:test@example.com]` | | |
-
-1. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/222483) in GitLab 13.7.
+| References | Input | Cross-project reference | Shortcut inside the same namespace |
+| -------------------------------------------------------------- | ------------------------------ | --------------------------------------- | ---------------------------------- |
+| Specific user | `@user_name` | | |
+| Specific group | `@group_name` | | |
+| Entire team | [`@all`](discussions/index.md#mentioning-all-members) | | |
+| Project | `namespace/project>` | | |
+| Issue | ``#123`` | `namespace/project#123` | `project#123` |
+| Merge request | `!123` | `namespace/project!123` | `project!123` |
+| Snippet | `$123` | `namespace/project$123` | `project$123` |
+| [Epic](group/epics/index.md) | `&123` | `group1/subgroup&123` | |
+| [Iteration](group/iterations/index.md) | `*iteration:"iteration title"` | | |
+| [Vulnerability](application_security/vulnerabilities/index.md) | `[vulnerability:123]` | `[vulnerability:namespace/project/123]` | `[vulnerability:project/123]` |
+| Feature flag | `[feature_flag:123]` | `[feature_flag:namespace/project/123]` | `[feature_flag:project/123]` |
+| Label by ID | `~123` | `namespace/project~123` | `project~123` |
+| Label by name (one word) | `~bug` | `namespace/project~bug` | `project~bug` |
+| Label by name (multiple words) | `~"feature request"` | `namespace/project~"feature request"` | `project~"feature request"` |
+| Label by name (scoped) | `~"priority::high"` | `namespace/project~"priority::high"` | `project~"priority::high"` |
+| Project milestone by ID | `%123` | `namespace/project%123` | `project%123` |
+| Milestone by name (one word) | `%v1.23` | `namespace/project%v1.23` | `project%v1.23` |
+| Milestone by name (multiple words) | `%"release candidate"` | `namespace/project%"release candidate"` | `project%"release candidate"` |
+| Commit (specific) | `9ba12248` | `namespace/project@9ba12248` | `project@9ba12248` |
+| Commit range comparison | `9ba12248...b19a04f5` | `namespace/project@9ba12248...b19a04f5` | `project@9ba12248...b19a04f5` |
+| Repository file reference | `[README](doc/README.md)` | | |
+| Repository file reference (specific line) | `[README](doc/README.md#L13)` | | |
+| [Alert](../operations/incident_management/alerts.md) | `^alert#123` | `namespace/project^alert#123` | `project^alert#123` |
+| [Contact](crm/index.md#contacts) | `[contact:test@example.com]` | | |
For example, referencing an issue by using `#123` formats the output as a link
to issue number 123 with text `#123`. Likewise, a link to issue number 123 is
recognized and formatted with text `#123`. If you don't want `#123` to link to an issue,
add a leading backslash `\#123`.
-In addition to this, links to some objects are also recognized and formatted. Some examples of these are:
+In addition to this, links to some objects are also recognized and formatted.
+For example:
-- Comments on issues: `"https://gitlab.com/gitlab-org/gitlab/-/issues/1234#note_101075757"`, which are rendered as `#1234 (comment 101075757)`
-- The issues designs tab: `"https://gitlab.com/gitlab-org/gitlab/-/issues/1234/designs"`, which are rendered as `#1234 (designs)`.
-- Links to individual designs: `"https://gitlab.com/gitlab-org/gitlab/-/issues/1234/designs/layout.png"`, which are rendered as `#1234[layout.png]`.
+- Comments on issues: `"https://gitlab.com/gitlab-org/gitlab/-/issues/1234#note_101075757"`, rendered as `#1234 (comment 101075757)`
+- The issues designs tab: `"https://gitlab.com/gitlab-org/gitlab/-/issues/1234/designs"`, rendered as `#1234 (designs)`.
+- Links to individual designs: `"https://gitlab.com/gitlab-org/gitlab/-/issues/1234/designs/layout.png"`, rendered as `#1234[layout.png]`.
### Show the issue, merge request, or epic title in the reference
> - Support for issues, merge requests, and epics [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/15694) in GitLab 14.6.
> - Support for work items [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/390854) in GitLab 16.0.
-To include the title in the rendered link of an issue, work item, merge request, or epic, add a plus (`+`)
-at the end of the reference. For example, a reference like `#123+` is rendered as
-`The issue title (#123)`.
+To include the title in the rendered link of an issue, work item, merge request, or epic:
+
+- Add a plus (`+`) at the end of the reference.
+
+For example, a reference like `#123+` is rendered as `The issue title (#123)`.
URL references like `https://gitlab.com/gitlab-org/gitlab/-/issues/1234+` are also expanded.
@@ -713,18 +743,23 @@ URL references like `https://gitlab.com/gitlab-org/gitlab/-/issues/1234+` are al
> - Support for issues and merge requests [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/386937) in GitLab 15.10.
> - Support for work items [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/390854) in GitLab 16.0.
-To include an extended summary in the rendered link of an issue, work item, or merge request, add a `+s`
-at the end of the reference. Summary includes information about **assignees**, **milestone**
-and **health status** of referenced item.
+To include an extended summary in the rendered link of an issue, work item, or merge request:
+
+- Add a `+s` at the end of the reference.
+
+Summary includes information about **assignees**, **milestone** and **health status** of referenced item.
For example, a reference like `#123+s` is rendered as
`The issue title (#123) • First Assignee, Second Assignee+ • v15.10 • Needs attention`.
URL references like `https://gitlab.com/gitlab-org/gitlab/-/issues/1234+s` are also expanded.
-To update the rendered references if the assignee, milestone, or health status changed,
-edit the comment or description and save it.
-For more information, see issue [420807](https://gitlab.com/gitlab-org/gitlab/-/issues/420807).
+To update the rendered references if the assignee, milestone, or health status changed:
+
+- Edit the comment or description and save it.
+
+Issue [420807](https://gitlab.com/gitlab-org/gitlab/-/issues/420807) tracks improving how these
+references refresh.
### Embedding Observability dashboards
@@ -733,16 +768,11 @@ You can embed GitLab Observability UI dashboards descriptions and comments, for
To embed an Observability dashboard URL:
1. In GitLab Observability UI, copy the URL in the address bar.
+1. Paste your link in a comment or description. GitLab Flavored Markdown recognizes the URL and displays the source.
-1. Paste your link wherever you want to embed your dashboard. GitLab Flavored Markdown recognizes the URL and displays the source.
+## Blockquotes
-## Features extended from standard Markdown
-
-All standard Markdown formatting should work as expected in GitLab. Some standard
-functionality is extended with additional features, without affecting the standard usage.
-If a functionality is extended, the new option is listed as a sub-section.
-
-### Blockquotes
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#blockquotes).
Use a blockquote to highlight information, such as a side note. It's generated
by starting the lines of the blockquote with `>`:
@@ -753,7 +783,7 @@ by starting the lines of the blockquote with `>`:
Quote break.
-> This very long line is still quoted properly when it wraps. Keep writing to make sure this line is long enough to actually wrap for everyone. You can also *add* **Markdown** into a blockquote.
+> This very long line is still quoted properly when it wraps. Keep writing to make sure this line is long enough to actually wrap for everyone. You can also *use* **Markdown** in a blockquote.
```
> Blockquotes help you emulate reply text.
@@ -761,14 +791,13 @@ Quote break.
Quote break.
-> This very long line is still quoted properly when it wraps. Keep writing to make sure this line is long enough to actually wrap for everyone. You can also *add* **Markdown** into a blockquote.
+> This very long line is still quoted properly when it wraps. Keep writing to make sure this line is long enough to actually wrap for everyone. You can also *use* **Markdown** in a blockquote.
-#### Multiline blockquote
+### Multiline blockquote
-If this section isn't rendered correctly, [view it in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#multiline-blockquote).
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#multiline-blockquote).
-GitLab Flavored Markdown extends the standard Markdown by also supporting multi-line blockquotes
-fenced by `>>>`, with a blank line before and after the block:
+Create multi-line blockquotes fenced by `>>>`, with a blank line before and after the block:
```markdown
@@ -794,11 +823,13 @@ trigger this problem.
>
> you can quote that without having to manually prepend `>` to every line!
-### Code spans and blocks
+## Code spans and blocks
-You can highlight anything that should be viewed as code and not standard text.
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#code-spans-and-blocks).
-Inline code is highlighted with single backticks `` ` ``:
+Highlight anything that should be viewed as code and not standard text.
+
+Inline code is formatted with single backticks `` ` ``:
```markdown
Inline `code` has `back-ticks around` it.
@@ -811,6 +842,9 @@ Inline `code` has `back-ticks around` it.
To achieve a similar effect for a larger code example, you can:
- Fence an entire block of code with triple backticks (```` ``` ````).
+ - You can use more than three backticks, as long as both the opening and closing set have the same number.
+ Use multiple backticks for example when you want to include [suggestions](project/merge_requests/reviews/suggestions.md#nest-code-blocks-in-suggestions)
+ in your code blocks, or the other way around.
- Fence an entire block of code with triple tildes (`~~~`).
- Indent it four or more spaces.
@@ -852,10 +886,9 @@ is like using
Tildes are OK too.
```
-#### Colored code and syntax highlighting
+### Colored code and syntax highlighting
-If this section isn't rendered correctly,
-[view it in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#colored-code-and-syntax-highlighting).
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#colored-code-and-syntax-highlighting).
GitLab uses the [Rouge Ruby library](https://github.com/rouge-ruby/rouge) for more colorful syntax
highlighting in code blocks. For a list of supported languages visit the
@@ -917,44 +950,45 @@ s = "No highlighting is shown for this line."
But let's throw in a <b>tag</b>.
```
-### Emphasis
+## Emphasis
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#emphasis).
-In Markdown, you can emphasize text in multiple ways. You can italicize, bold, strikethrough,
-and combine these emphasis styles together.
-Strikethrough is not part of the core Markdown standard, but is part of GitLab Flavored Markdown.
+You can emphasize text in multiple ways. Use italics, bold, strikethrough,
+or combine these emphasis styles together.
Examples:
```markdown
-Emphasis, aka italics, with *asterisks* or _underscores_.
+Emphasis, or italics, with *asterisks* or _underscores_.
-Strong emphasis, aka bold, with double **asterisks** or __underscores__.
+Strong emphasis, or bold, with double **asterisks** or __underscores__.
Combined emphasis with **asterisks and _underscores_**.
-Strikethrough uses two tildes. ~~Scratch this.~~
+Strikethrough with double tildes. ~~Scratch this.~~
```
<!-- markdownlint-disable MD050 -->
-Emphasis, aka italics, with *asterisks* or _underscores_.
+Emphasis, or italics, with *asterisks* or _underscores_.
-Strong emphasis, aka bold, with double **asterisks** or __underscores__.
+Strong emphasis, or bold, with double **asterisks** or __underscores__.
Combined emphasis with **asterisks and _underscores_**.
-Strikethrough uses two tildes. ~~Scratch this.~~
+Strikethrough with double tildes. ~~Scratch this.~~
<!-- markdownlint-enable MD050 -->
-#### Multiple underscores in words and mid-word emphasis
+### Multiple underscores in words and mid-word emphasis
-If this section isn't rendered correctly,
-[view it in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#multiple-underscores-in-words).
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#multiple-underscores-in-words).
Avoid italicizing a portion of a word, especially when you're
dealing with code and names that often appear with multiple underscores.
-GitLab Flavored Markdown extends the standard Markdown standard by ignoring multiple underlines in words,
+
+GitLab Flavored Markdown ignores multiple underlines in words,
to allow better rendering of Markdown documents discussing code:
```markdown
@@ -989,9 +1023,11 @@ perform*complicated*task
do*this*and*do*that*and*another thing
-### Footnotes
+## Footnotes
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#footnotes).
-Footnotes add a link to a note that are rendered at the end of a Markdown file.
+Footnotes add a link to a note rendered at the end of a Markdown file.
To make a footnote, you need both a reference tag and a separate line (anywhere in the file) with
the note content.
@@ -1026,7 +1062,9 @@ These are used to force the Vale ReferenceLinks check to skip these examples.
[^footnote-42]: This text is another footnote.
-### Headers
+## Headings
+
+Create headings from 1 to 6 by using `#`.
```markdown
# H1
@@ -1035,9 +1073,11 @@ These are used to force the Vale ReferenceLinks check to skip these examples.
#### H4
##### H5
###### H6
+```
-Alternatively, for H1 and H2, an underline-ish style:
+Alternatively, for H1 and H2, use an underline style:
+```markdown
Alt-H1
======
@@ -1045,111 +1085,121 @@ Alt-H2
------
```
-#### Header IDs and links
+### Heading IDs and links
-GitLab Flavored Markdown extends the standard Markdown standard so that all Markdown-rendered headers automatically
-get IDs, which can be linked to, except in comments.
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#heading-ids-and-links).
+
+All Markdown-rendered headings automatically
+get IDs that can be linked to, except in comments.
On hover, a link to those IDs becomes visible to make it easier to copy the link to
-the header to use it somewhere else.
+the heading to use it somewhere else.
-The IDs are generated from the content of the header according to the following rules:
+The IDs are generated from the content of the heading according to the following rules:
1. All text is converted to lowercase.
1. All non-word text (such as punctuation or HTML) is removed.
1. All spaces are converted to hyphens.
1. Two or more hyphens in a row are converted to one.
-1. If a header with the same ID has already been generated, a unique
+1. If a heading with the same ID has already been generated, a unique
incrementing number is appended, starting at 1.
Example:
```markdown
-# This header has spaces in it
-## This header has a :thumbsup: in it
-# This header has Unicode in it: 한글
-## This header has spaces in it
-### This header has spaces in it
-## This header has 3.5 in it (and parentheses)
+# This heading has spaces in it
+## This heading has a :thumbsup: in it
+# This heading has Unicode in it: 한글
+## This heading has spaces in it
+### This heading has spaces in it
+## This heading has 3.5 in it (and parentheses)
```
Would generate the following link IDs:
-1. `this-header-has-spaces-in-it`
-1. `this-header-has-a-in-it`
-1. `this-header-has-unicode-in-it-한글`
-1. `this-header-has-spaces-in-it-1`
-1. `this-header-has-spaces-in-it-2`
-1. `this-header-has-3-5-in-it-and-parentheses`
+1. `this-heading-has-spaces-in-it`
+1. `this-heading-has-a-in-it`
+1. `this-heading-has-unicode-in-it-한글`
+1. `this-heading-has-spaces-in-it-1`
+1. `this-heading-has-spaces-in-it-2`
+1. `this-heading-has-3-5-in-it-and-parentheses`
-Emoji processing happens before the header IDs are generated. The
+Emoji processing happens before the heading IDs are generated. The
emoji is converted to an image, which is then removed from the ID.
-### Horizontal Rule
+## Horizontal rule
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#horizontal-rule).
Create a horizontal rule by using three or more hyphens, asterisks, or underscores:
```markdown
-Three or more hyphens,
-
---
-asterisks,
-
***
-or underscores
-
___
```
-### Images
+---
-Examples:
+---
+
+---
+
+## Images
+
+Embed images using inline or reference links.
+To see title text, hover over the image.
<!--
-The following codeblock uses HTML to skip the Vale ReferenceLinks test.
-Do not change it back to a markdown codeblock.
+The following examples use HTML to skip the Vale ReferenceLinks test.
+Do not change it back to a markdown codeblocks.
-->
-<!-- markdownlint-disable proper-names -->
+<!--
+DO NOT change the name of markdown_logo.png. This file is used for a test in
+spec/controllers/help_controller_spec.rb.
+-->
-<pre class="highlight"><code>Inline-style (hover to see title text):
+<!--
+The examples below use an in-line link to pass the Vale ReferenceLinks test.
+Do not change to a reference style link.
+-->
-![alt text](img/markdown_logo.png "Title Text")
+Inline-style:
-Reference-style (hover to see title text):
+<!-- markdownlint-disable proper-names -->
-![alt text1][logo]
+<pre class="highlight"><code>
+
+![alt text](img/markdown_logo.png "Title Text")
-&#91;logo]: img/markdown_logo.png "Title Text"
</code></pre>
-<!-- markdownlint-enable proper-names -->
+![alt text](img/markdown_logo.png "Title Text")
-<!--
-DO NOT change the name of markdown_logo.png. This file is used for a test in
-spec/controllers/help_controller_spec.rb.
--->
+Reference-style:
-Inline-style (hover to see title text):
+<pre class="highlight"><code>
-![alt text](img/markdown_logo.png "Title Text")
+![alt text1][logo]
-Reference-style (hover to see title text):
+&#91;logo]: img/markdown_logo.png "Title Text"
-<!--
-The example below uses an in-line link to pass the Vale ReferenceLinks test.
-Do not change to a reference style link.
--->
+</code></pre>
![alt text](img/markdown_logo.png "Title Text")
-#### Change the image or video dimensions
+<!-- markdownlint-enable proper-names -->
+
+### Change the image or video dimensions
> - Support for images [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/28118) in GitLab 15.7.
> - Support for videos [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/17139) in GitLab 15.9.
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#change-the-image-or-video-dimensions).
+
You can control the width and height of an image or video by following the image with
an attribute list.
The value must an integer with a unit of either `px` (default) or `%`.
@@ -1167,50 +1217,45 @@ For example
You can also use the `img` HTML tag instead of Markdown and set its `height` and
`width` parameters.
-#### Videos
+### Videos
-If this section isn't rendered correctly, [view it in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#videos).
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#videos).
Image tags that link to files with a video extension are automatically converted to
a video player. The valid video extensions are `.mp4`, `.m4v`, `.mov`, `.webm`, and `.ogv`:
-```markdown
-Here's a sample video:
+Here's an example video:
+```markdown
![Sample Video](img/markdown_video.mp4)
```
-Here's a sample video:
-
![Sample Video](img/markdown_video.mp4)
-#### Audio
+### Audio
-If this section isn't rendered correctly, [view it in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#audio).
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#audio).
Similar to videos, link tags for files with an audio extension are automatically converted to
an audio player. The valid audio extensions are `.mp3`, `.oga`, `.ogg`, `.spx`, and `.wav`:
-```markdown
-Here's a sample audio clip:
+Here's an example audio clip:
+```markdown
![Sample Audio](img/markdown_audio.mp3)
```
-Here's a sample audio clip:
-
![Sample Audio](img/markdown_audio.mp3)
-### Inline HTML
+## Inline HTML
> Allowing `rel="license"` [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20857) in GitLab 14.6.
-To see the second example of Markdown rendered in HTML,
-[view it in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#inline-html).
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#inline-html).
You can also use raw HTML in your Markdown, and it usually works pretty well.
-See the documentation for HTML::Pipeline's [SanitizationFilter](https://github.com/jch/html-pipeline/blob/v2.12.3/lib/html/pipeline/sanitization_filter.rb#L42)
+See the documentation for `HTML::Pipeline`'s [SanitizationFilter](https://github.com/jch/html-pipeline/blob/v2.12.3/lib/html/pipeline/sanitization_filter.rb#L42)
class for the list of allowed HTML tags and attributes. In addition to the default
`SanitizationFilter` allowlist, GitLab allows `span`, `abbr`, `details` and `summary` elements.
`rel="license"` is allowed on links to support the [Rel-License microformat](https://microformats.org/wiki/rel-license) and license attribution.
@@ -1243,7 +1288,7 @@ are separated into their own lines:
<dt>Markdown in HTML</dt>
<dd>Does *not* work **very** well. HTML tags work, in most cases.</dd>
- <dt>Markdown in HTML</dt>
+ <dt>Markdown in HTML with proper spacing</dt>
<dd>
Does *not* work **very** well. HTML tags work, in most cases.
@@ -1261,7 +1306,7 @@ Markdown is fine in GitLab.
<dt>Markdown in HTML</dt>
<dd>Does *not* work **very** well. HTML tags work, in most cases.</dd>
- <dt>Markdown in HTML</dt>
+ <dt>Markdown in HTML with proper spacing</dt>
<dd>
Does <em>not</em> work <b>very</b> well. HTML tags work, in most cases.
@@ -1269,38 +1314,33 @@ Markdown is fine in GitLab.
</dd>
</dl>
-#### Collapsible section
+### Collapsible section
-To see the second Markdown example rendered in HTML,
-[view it in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#details-and-summary).
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#details-and-summary).
Content can be collapsed using HTML's [`<details>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details)
and [`<summary>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary)
tags. For example, collapse a long log file so it takes up less screen space.
```html
-<p>
<details>
-<summary>Click this to collapse/fold.</summary>
+<summary>Click to expand</summary>
These details <em>remain</em> <strong>hidden</strong> until expanded.
<pre><code>PASTE LOGS HERE</code></pre>
</details>
-</p>
```
-<p>
<details>
-<summary>Click this to collapse/fold.</summary>
+<summary>Click to expand</summary>
These details <em>remain</em> <strong>hidden</strong> until expanded.
<pre><code>PASTE LOGS HERE</code></pre>
</details>
-</p>
---
@@ -1312,7 +1352,7 @@ Remember to leave a blank line before and after any Markdown sections, as shown
<details>
<summary>
-Click this to _collapse/fold._
+Click to _expand._
</summary>
@@ -1331,7 +1371,7 @@ works correctly in GitLab.
-->
<details>
-<summary>Click this to <em>collapse/fold.</em></summary>
+<summary>Click to <em>expand.</em></summary>
These details <em>remain</em> <b>hidden</b> until expanded.
@@ -1339,11 +1379,13 @@ These details <em>remain</em> <b>hidden</b> until expanded.
</details>
-### Line breaks
+## Line breaks
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#line-breaks).
A line break is inserted (a new paragraph starts) if the previous text is
ended with two newlines, like when you press <kbd>Enter</kbd> twice in a row. If you only
-use one newline (select <kbd>Enter</kbd> once), the next sentence remains part of the
+use one newline (press <kbd>Enter</kbd> once), the next sentence remains part of the
same paragraph. Use this approach if you want to keep long lines from wrapping, and keep
them editable:
@@ -1367,7 +1409,7 @@ These lines are only separated by single newlines,
so they *do not break* and just follow the previous lines
in the *same paragraph*.
-#### Newlines
+### Newlines
GitLab Flavored Markdown adheres to the Markdown specification for handling
[paragraphs and line breaks](https://spec.commonmark.org/current/).
@@ -1382,7 +1424,7 @@ paragraph, with a blank line in between:
```markdown
First paragraph.
Another line in the same paragraph.
-A third line in the same paragraph, but this time ending with two spaces.{space}{space}
+A third line in the same paragraph, but this time ending with two spaces.<space><space>
A new line directly under the first paragraph.
Second paragraph.
@@ -1390,7 +1432,9 @@ Another line, this time ending with a backslash.\
A new line due to the previous backslash.
```
-### Links
+## Links
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#links).
You can create links two ways: inline-style and reference-style. For example:
@@ -1404,10 +1448,10 @@ Do not change it back to a markdown codeblock.
- This line shows a [relative link to a file one directory higher](../index.md)
- This line shows a [link that also has title text](https://www.google.com "This link takes you to Google!")
-Using header ID anchors:
+Using heading ID anchors:
-- This line links to [a section on a different Markdown page, using a "#" and the header ID](permissions.md#project-features-permissions)
-- This line links to [a different section on the same page, using a "#" and the header ID](#header-ids-and-links)
+- This line links to [a section on a different Markdown page, using a "#" and the heading ID](permissions.md#project-features-permissions)
+- This line links to [a different section on the same page, using a "#" and the heading ID](#heading-ids-and-links)
Using references:
@@ -1427,10 +1471,10 @@ Some text to show that the reference links can follow later.
- This line shows a [relative link to a file one directory higher](../index.md)
- This line shows a [link that also has title text](https://www.google.com "This link takes you to Google!")
-Using header ID anchors:
+Using heading ID anchors:
-- This line links to [a section on a different Markdown page, using a "#" and the header ID](permissions.md#project-members-permissions)
-- This line links to [a different section on the same page, using a "#" and the header ID](#header-ids-and-links)
+- This line links to [a section on a different Markdown page, using a "#" and the heading ID](permissions.md#project-members-permissions)
+- This line links to [a different section on the same page, using a "#" and the heading ID](#heading-ids-and-links)
Using references:
@@ -1451,9 +1495,11 @@ page, or a wiki page in a project file. The reason: a wiki is always
in a separate Git repository in GitLab. For example, `[I'm a reference-style link](style)`
points the link to `wikis/style` only when the link is inside of a wiki Markdown file.
-#### URL auto-linking
+### URL auto-linking
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#url-auto-linking).
-GitLab Flavored Markdown auto-links almost any URL you put into your text:
+Almost any URL you put into your text is auto-linked:
```markdown
- https://www.google.com
@@ -1469,12 +1515,15 @@ GitLab Flavored Markdown auto-links almost any URL you put into your text:
- <https://www.google.com>
- <https://www.google.com>
- <ftp://ftp.us.debian.org/debian/>
-- <smb://foo/bar/baz>
-- <irc://irc.freenode.net/>
+- <a href="smb://foo/bar/baz/">smb://foo/bar/baz</a>
+- <a href="irc://irc.freenode.net">irc://irc.freenode.net</a>
- <http://localhost:3000>
<!-- vale gitlab.Spelling = YES -->
-### Lists
+
+## Lists
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#lists).
You can create ordered and unordered lists.
@@ -1629,10 +1678,11 @@ For example:
CommonMark ignores the blank line and renders this as one list with paragraph spacing.
-### Superscripts / Subscripts
+## Superscripts / Subscripts
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#superscripts-subscripts).
-CommonMark and GitLab Flavored Markdown don't support the Redcarpet superscript syntax ( `x^2` ).
-Use the standard HTML syntax for superscripts and subscripts:
+For superscripts and subscripts, use the standard HTML syntax:
```html
The formula for water is H<sub>2</sub>O
@@ -1646,7 +1696,11 @@ while the equation for the theory of relativity is E = mc<sup>2</sup>.
<!-- vale gitlab.Spelling = YES -->
-### Keyboard HTML tag
+GitLab Flavored Markdown doesn't support the Redcarpet superscript syntax ( `x^2` ).
+
+## Keyboard HTML tag
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#keyboard-html-tag).
The `<kbd>` element is used to identify text that represents user keyboard input. Text surrounded by `<kbd>` tags is typically displayed in the browser's default monospace font.
@@ -1656,27 +1710,27 @@ Press <kbd>Enter</kbd> to go to the next page.
Press <kbd>Enter</kbd> to go to the next page.
-### Tables
+## Tables
-Tables are not part of the core Markdown specification, but are part of GitLab Flavored Markdown.
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#tables-1).
-#### Markdown
+When creating tables:
-1. The first line contains the headers, separated by "pipes" (`|`).
-1. The second line separates the headers from the cells.
- - The cells can contain only empty spaces, hyphens, and
- (optionally) colons for horizontal alignment.
- - Each cell must contain at least one hyphen, but adding more hyphens to a
- cell does not change the cell's rendering.
- - Any content other than hyphens, whitespace, or colons is not allowed
-1. The third, and any following lines, contain the cell values.
- - You **can't** have cells separated over many lines in the Markdown, they must be kept to single lines,
- but they can be very long. You can also include HTML `<br>` tags to force newlines if needed.
- - The cell sizes **don't** have to match each other. They are flexible, but must be separated
- by pipes (`|`).
- - You **can** have blank cells.
-1. Column widths are calculated dynamically based on the content of the cells.
-1. To use the pipe character (`|`) in the text and not as table delimiter, you must escape it with a backslash (`\|`).
+- The first line contains the headers, separated by "pipes" (`|`).
+- The second line separates the headers from the cells.
+ - The cells can contain only empty spaces, hyphens, and
+ (optionally) colons for horizontal alignment.
+ - Each cell must contain at least one hyphen, but adding more hyphens to a
+ cell does not change the cell's rendering.
+ - Any content other than hyphens, whitespace, or colons is not allowed
+- The third, and any following lines, contain the cell values.
+ - You **can't** have cells separated over many lines in the Markdown, they must be kept to single lines,
+ but they can be very long. You can also include HTML `<br>` tags to force newlines if needed.
+ - The cell sizes **don't** have to match each other. They are flexible, but must be separated
+ by pipes (`|`).
+ - You **can** have blank cells.
+- Column widths are calculated dynamically based on the content of the cells.
+- To use the pipe character (`|`) in the text and not as table delimiter, you must escape it with a backslash (`\|`).
Example:
@@ -1694,6 +1748,10 @@ Example:
| cell 4 | cell 5 is longer | cell 6 is much longer than the others, but that's ok. It eventually wraps the text when the cell is too large for the display size. |
| cell 7 | | cell 9 |
+### Alignment
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#alignment).
+
Additionally, you can choose the alignment of text in columns by adding colons (`:`)
to the sides of the "dash" lines in the second row. This affects every cell in the column:
@@ -1712,6 +1770,10 @@ to the sides of the "dash" lines in the second row. This affects every cell in t
[In GitLab itself](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#tables),
the headers are always left-aligned in Chrome and Firefox, and centered in Safari.
+### Cells with multiple lines
+
+[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#cells-with-multiple-lines).
+
You can use HTML formatting to adjust the rendering of tables. For example, you can
use `<br>` tags to force a cell to have multiple lines:
@@ -1727,45 +1789,49 @@ use `<br>` tags to force a cell to have multiple lines:
| Item1 | This text is on one line |
| Item2 | This item has:<br>- Multiple items<br>- That we want listed separately |
-You can use HTML formatting in GitLab itself to add [task lists](#task-lists) with checkboxes,
-but they do not render properly on `docs.gitlab.com`. These tasks will not save their
-state when selected, like regular GitLab task lists.
-
-```markdown
-| header 1 | header 2 |
-| --- | --- |
-| cell 1 | cell 2 |
-| cell 3 | <ul><li> - [ ] Task one </li><li> - [ ] Task two </li></ul> |
-```
-
-To have fully functioning task lists in a table, create an HTML table with Markdown in the cells:
-
-```html
-<table>
-<thead>
-<tr><th>header 1</th><th>header 2</th></tr>
-</thead>
-<tbody>
-<tr>
-<td>cell 1</td>
-<td>cell 2</td>
-</tr>
-<tr>
-<td>cell 3</td>
-<td>
+### Task lists in tables
+
+To add [task lists](#task-lists) with checkboxes, use HTML formatting. Using either:
+
+- **An HTML table with Markdown in the cells.** Tables formatted this way result in fully functioning
+ task lists.
+
+ ```html
+ <table>
+ <thead>
+ <tr><th>header 1</th><th>header 2</th></tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>cell 1</td>
+ <td>cell 2</td>
+ </tr>
+ <tr>
+ <td>cell 3</td>
+ <td>
+
+ - [ ] Task one
+ - [ ] Task two
+
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ ```
-- [ ] Task one
-- [ ] Task two
+- **A Markdown table with HTML list tags.** These tasks don't save their state when selected.
+ Tables formatted this way do not render properly on `docs.gitlab.com`.
-</td>
-</tr>
-</tbody>
-</table>
-```
+ ```markdown
+ | header 1 | header 2 |
+ | --- | --- |
+ | cell 1 | cell 2 |
+ | cell 3 | <ul><li> - [ ] Task one </li><li> - [ ] Task two </li></ul> |
+ ```
-##### Copy and paste from a spreadsheet
+You can also [create a table in the rich text editor](rich_text_editor.md#tables) and insert a task list then.
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27205) in GitLab 12.7.
+### Copy and paste from a spreadsheet
If you're working in spreadsheet software (for example, Microsoft Excel, Google
Sheets, or Apple Numbers), GitLab creates a Markdown table when you copy and paste
@@ -1779,7 +1845,7 @@ entry and paste the spreadsheet:
![Paste to Markdown table](img/markdown_paste_table_v12_7.png)
-#### JSON
+### JSON
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86353) in GitLab 15.3.
diff --git a/doc/user/okrs.md b/doc/user/okrs.md
index 14e887fe297..1bed94a302b 100644
--- a/doc/user/okrs.md
+++ b/doc/user/okrs.md
@@ -72,7 +72,7 @@ To view an objective:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**.
1. [Filter the list of issues](project/issues/managing_issues.md#filter-the-list-of-issues)
-for `Type = objective`.
+ for `Type = objective`.
1. Select the title of an objective from the list.
## View a key result
@@ -82,7 +82,7 @@ To view a key result:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**.
1. [Filter the list of issues](project/issues/managing_issues.md#filter-the-list-of-issues)
-for `Type = key_result`.
+ for `Type = key_result`.
1. Select the title of a key result from the list.
Alternatively, you can access a key result from the **Child objectives and key results** section in
@@ -220,7 +220,7 @@ Prerequisites:
To promote a key result:
1. [Open the key result](#view-a-key-result).
-1. In the top right corner, select the vertical ellipsis (**{ellipsis_v}**)..
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**).
1. Select **Promote to objective**.
Alternatively, use the `/promote_to objective` [quick action](../user/project/quick_actions.md).
@@ -236,7 +236,7 @@ To copy the objective or key result reference to your clipboard:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**, then select your objective or key result to view it.
-1. In the top right corner, select the vertical ellipsis (**{ellipsis_v}**), then select **Copy Reference**.
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**), then select **Copy Reference**.
You can now paste the reference into another description or comment.
@@ -256,7 +256,7 @@ To copy the objective's or key result's email address:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**, then select your issue to view it.
-1. In the top right corner, select the vertical ellipsis (**{ellipsis_v}**), then select **Copy objective email address** or **Copy key result email address**.
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**), then select **Copy objective email address** or **Copy key result email address**.
## Close an OKR
@@ -443,7 +443,7 @@ Prerequisites:
To change the confidentiality of an existing OKR:
1. [Open the objective](#view-an-objective) or [key result](#view-a-key-result).
-1. In the top right corner, select the vertical ellipsis (**{ellipsis_v}**).
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**).
1. Select **Turn on confidentiality** or **Turn off confidentiality**.
### Who can see confidential OKRs
@@ -498,6 +498,7 @@ or assignees, on the right.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/416558) in GitLab 16.5 [with a flag](../administration/feature_flags.md) named `linked_work_items`. Enabled by default.
> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139394) in GitLab 16.7.
+> - Adding related items by entering their URLs and IDs [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/427594) in GitLab 16.8.
FLAG:
On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../administration/feature_flags.md) named `linked_work_items`.
@@ -522,7 +523,7 @@ To link an item to an objective or key result:
- **Relates to**
- **Blocks**
- **Is blocked by**
-1. Enter the search text of the item.
+1. Enter the search text of the item, URL, or its reference ID.
1. When you have added all the items to be linked, select **Add** below the search box.
When you have finished adding all linked items, you can see
diff --git a/doc/user/organization/index.md b/doc/user/organization/index.md
index c4fff4178f1..ecc62b0d510 100644
--- a/doc/user/organization/index.md
+++ b/doc/user/organization/index.md
@@ -44,6 +44,8 @@ To view the organizations you have access to:
1. On the left sidebar, at the top, select **Create new** (**{plus}**) and **New organization**.
1. In the **Organization name** text box, enter a name for the organization.
1. In the **Organization URL** text box, enter a path for the organization.
+1. In the **Organization description** text box, enter a description for the organization. Supports a [limited subset of Markdown](#supported-markdown-for-organization-description).
+1. In the **Organization avatar** field, select **Upload** or drag and drop an avatar.
1. Select **Create organization**.
## Edit an organization's name
@@ -51,6 +53,10 @@ To view the organizations you have access to:
1. On the left sidebar, select **Organizations** (**{organization}**) and find the organization you want to edit.
1. Select **Settings > General**.
1. In the **Organization name** text box, edit the name.
+1. In the **Organization description** text box, edit the description. Supports a [limited subset of Markdown](#supported-markdown-for-organization-description).
+1. In the **Organization avatar** field, if an avatar is:
+ - Selected, select **Remove avatar** to remove.
+ - Not selected, select **Upload** or drag and drop an avatar.
1. Select **Save changes**.
## Change an organization's URL
@@ -72,6 +78,14 @@ To view the organizations you have access to:
1. On the left sidebar, select **Organizations** (**{organization}**) and find the organization you want to manage.
1. Select **Manage > Users**.
+## Supported Markdown for Organization description
+
+The Organization description field supports a limited subset of [GitLab Flavored Markdown](../markdown.md), including:
+
+- [Emphasis](../markdown.md#emphasis)
+- [Links](../markdown.md#links)
+- [Superscripts / Subscripts](../markdown.md#superscripts--subscripts)
+
## Related topics
- [Organization developer documentation](../../development/organization/index.md)
diff --git a/doc/user/packages/composer_repository/index.md b/doc/user/packages/composer_repository/index.md
index db3d31d3c18..c116a43293b 100644
--- a/doc/user/packages/composer_repository/index.md
+++ b/doc/user/packages/composer_repository/index.md
@@ -128,6 +128,7 @@ Install a package from the package registry so you can use it as a dependency.
Prerequisites:
- A package in the package registry.
+- The package registry is enabled in the project responsible for publishing the package.
- The group ID, which is on the group's home page.
- One of the following token types:
- A [personal access token](../../../user/profile/personal_access_tokens.md)
diff --git a/doc/user/packages/conan_repository/index.md b/doc/user/packages/conan_repository/index.md
index 56ea4fe74b4..72f36ca4e80 100644
--- a/doc/user/packages/conan_repository/index.md
+++ b/doc/user/packages/conan_repository/index.md
@@ -318,11 +318,11 @@ To search by full or partial package name, or by exact recipe, run the
The scope of your search depends on your Conan remote configuration:
- If you have a remote configured for your [instance](#add-a-remote-for-your-instance), your search includes
-all projects you have permission to access. This includes your private projects
- as well as all public projects.
+ all projects you have permission to access. This includes your private projects
+ as well as all public projects.
- If you have a remote configured for a [project](#add-a-remote-for-your-project), your search includes all
-packages in the target project, as long as you have permission to access it.
+ packages in the target project, as long as you have permission to access it.
NOTE:
The limit of the search results is 500 packages, and the results are sorted by the most recently published packages.
diff --git a/doc/user/packages/container_registry/authenticate_with_container_registry.md b/doc/user/packages/container_registry/authenticate_with_container_registry.md
index ae19a891fc9..6e1c0ded758 100644
--- a/doc/user/packages/container_registry/authenticate_with_container_registry.md
+++ b/doc/user/packages/container_registry/authenticate_with_container_registry.md
@@ -20,9 +20,9 @@ All of these authentication methods require the minimum scope:
To authenticate, run the `docker login` command. For example:
- ```shell
- docker login registry.example.com -u <username> -p <token>
- ```
+```shell
+docker login registry.example.com -u <username> -p <token>
+```
## Use GitLab CI/CD to authenticate
diff --git a/doc/user/packages/container_registry/build_and_push_images.md b/doc/user/packages/container_registry/build_and_push_images.md
index 680aab42544..7187f5ef1e9 100644
--- a/doc/user/packages/container_registry/build_and_push_images.md
+++ b/doc/user/packages/container_registry/build_and_push_images.md
@@ -46,7 +46,7 @@ You can configure your `.gitlab-ci.yml` file to build and push container images
## Use GitLab CI/CD
-You can use [GitLab CI/CD](../../../ci/yaml/index.md) to build and push container images to the
+You can use [GitLab CI/CD](../../../ci/index.md) to build and push container images to the
Container Registry. You can use CI/CD to test, build, and deploy your project from the container
image you created.
diff --git a/doc/user/packages/container_registry/delete_container_registry_images.md b/doc/user/packages/container_registry/delete_container_registry_images.md
index 852c20a80f5..73ac0082058 100644
--- a/doc/user/packages/container_registry/delete_container_registry_images.md
+++ b/doc/user/packages/container_registry/delete_container_registry_images.md
@@ -101,7 +101,7 @@ delete_image:
- ./reg rm -d --auth-url $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $IMAGE_TAG
stage: clean
variables:
- IMAGE_TAG: $CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG
+ IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
REG_SHA256: ade837fc5224acd8c34732bf54a94f579b47851cc6a7fd5899a98386b782e228
REG_VERSION: 0.16.1
only:
diff --git a/doc/user/packages/container_registry/reduce_container_registry_storage.md b/doc/user/packages/container_registry/reduce_container_registry_storage.md
index 614639c705f..de24f2618d5 100644
--- a/doc/user/packages/container_registry/reduce_container_registry_storage.md
+++ b/doc/user/packages/container_registry/reduce_container_registry_storage.md
@@ -191,14 +191,14 @@ To create a cleanup policy in the UI:
1. In the **Cleanup policies** section, select **Set cleanup rules**.
1. Complete the fields:
- | Field | Description |
- |----------------------------|-------------------------------------------------|
- | **Toggle** | Turn the policy on or off. |
- | **Run cleanup** | How often the policy should run. |
- | **Keep the most recent** | How many tags to _always_ keep for each image. |
+ | Field | Description |
+ |----------------------------|-------------|
+ | **Toggle** | Turn the policy on or off. |
+ | **Run cleanup** | How often the policy should run. |
+ | **Keep the most recent** | How many tags to _always_ keep for each image. |
| **Keep tags matching** | A regex pattern that determines which tags to preserve. The `latest` tag is always preserved. For all tags, use `.*`. See other [regex pattern examples](#regex-pattern-examples). |
- | **Remove tags older than** | Remove only tags older than X days. |
- | **Remove tags matching** | A regex pattern that determines which tags to remove. This value cannot be blank. For all tags, use `.*`. See other [regex pattern examples](#regex-pattern-examples). |
+ | **Remove tags older than** | Remove only tags older than X days. |
+ | **Remove tags matching** | A regex pattern that determines which tags to remove. This value cannot be blank. For all tags, use `.*`. See other [regex pattern examples](#regex-pattern-examples). |
1. Select **Save**.
@@ -275,9 +275,9 @@ You can use the following application settings to prevent server resource starva
For self-managed instances, those settings can be updated in the [Rails console](../../../administration/operations/rails_console.md#starting-a-rails-console-session):
- ```ruby
- ApplicationSetting.last.update(container_registry_expiration_policies_worker_capacity: 3)
- ```
+```ruby
+ApplicationSetting.last.update(container_registry_expiration_policies_worker_capacity: 3)
+```
They are also available in the [administrator area](../../../administration/admin_area.md):
@@ -292,7 +292,7 @@ You can set, update, and disable the cleanup policies using the GitLab API.
Examples:
- Select all tags, keep at least 1 tag per image, clean up any tag older than 14 days, run once a month, preserve
-any images with the name `main`, and the policy is enabled:
+ any images with the name `main`, and the policy is enabled:
```shell
curl --request PUT --header 'Content-Type: application/json;charset=UTF-8' --header "PRIVATE-TOKEN: <your_access_token>" \
diff --git a/doc/user/packages/maven_repository/index.md b/doc/user/packages/maven_repository/index.md
index 8f702183adc..bd5311276c6 100644
--- a/doc/user/packages/maven_repository/index.md
+++ b/doc/user/packages/maven_repository/index.md
@@ -17,8 +17,6 @@ Supported clients:
- `mvn`. Learn how to build a [Maven](../workflows/build_packages.md#maven) package.
- `gradle`. Learn how to build a [Gradle](../workflows/build_packages.md#gradle) package.
- `sbt`.
- - `sbt` can only be used to [pull dependencies](#install-a-package).
- See this [issue 408479](https://gitlab.com/gitlab-org/gitlab/-/issues/408479) for more details.
## Publish to the GitLab package registry
@@ -255,9 +253,9 @@ credentials += Credentials("GitLab Packages Registry", "<host>", "<name>", "<tok
In this example:
- `<endpoint url>` is the [endpoint URL](#endpoint-urls).
-Example: `https://gitlab.example.com/api/v4/projects/<project_id>/packages/maven`.
+ Example: `https://gitlab.example.com/api/v4/projects/<project_id>/packages/maven`.
- `<host>` is the host present in the `<endpoint url>` without the protocol
-scheme or the port. Example: `gitlab.example.com`.
+ scheme or the port. Example: `gitlab.example.com`.
- `<name>` and `<token>` are explained in the table above.
::EndTabs
@@ -289,11 +287,11 @@ For the instance-level endpoint, ensure the relevant section of your `pom.xml` i
#### Endpoint URLs
-| Endpoint | Endpoint URL for `pom.xml` | Additional information |
-| -------- | ------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
+| Endpoint | Endpoint URL for `pom.xml` | Additional information |
+|----------|--------------------------------------------------------------------------|------------------------|
| Project | `https://gitlab.example.com/api/v4/projects/<project_id>/packages/maven` | Replace `gitlab.example.com` with your domain name. Replace `<project_id>` with your project ID, found on your project's homepage. |
-| Group | `https://gitlab.example.com/api/v4/groups/<group_id>/-/packages/maven` | Replace `gitlab.example.com` with your domain name. Replace `<group_id>` with your group ID, found on your group's homepage. |
-| Instance | `https://gitlab.example.com/api/v4/packages/maven` | Replace `gitlab.example.com` with your domain name. |
+| Group | `https://gitlab.example.com/api/v4/groups/<group_id>/-/packages/maven` | Replace `gitlab.example.com` with your domain name. Replace `<group_id>` with your group ID, found on your group's homepage. |
+| Instance | `https://gitlab.example.com/api/v4/packages/maven` | Replace `gitlab.example.com` with your domain name. |
### Edit the configuration file for publishing
@@ -454,6 +452,35 @@ gradle publish
Go to your project's **Packages and registries** page and view the published packages.
+:::TabTitle `sbt`
+
+Configure the `publishTo` setting in your `build.sbt` file:
+
+```scala
+publishTo := Some("gitlab" at "<endpoint url>")
+```
+
+Ensure the credentials are referenced correctly. See the [`sbt` documentation](https://www.scala-sbt.org/1.x/docs/Publishing.html#Credentials) for more information.
+
+To publish a package using `sbt`:
+
+```shell
+sbt publish
+```
+
+If the deploy is successful, the build success message is displayed:
+
+```shell
+[success] Total time: 1 s, completed Jan 28, 2020 12:08:57 PM
+```
+
+Check the success message to ensure the package was published to the
+correct location:
+
+```shell
+[info] published my-project_2.12 to https://gitlab.example.com/api/v4/projects/PROJECT_ID/packages/maven/com/mycompany/my-project_2.12/0.1.1-SNAPSHOT/my-project_2.12-0.1.1-SNAPSHOT.pom
+```
+
::EndTabs
## Install a package
diff --git a/doc/user/packages/package_registry/dependency_proxy/index.md b/doc/user/packages/package_registry/dependency_proxy/index.md
index 7b5e7a4c624..88e424ed3ac 100644
--- a/doc/user/packages/package_registry/dependency_proxy/index.md
+++ b/doc/user/packages/package_registry/dependency_proxy/index.md
@@ -7,12 +7,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Dependency proxy for packages **(PREMIUM ALL BETA)**
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/3610) in GitLab 16.6 [with a flag](../../../../administration/feature_flags.md) named `packages_dependency_proxy_maven`. Disabled by default.
-> - This feature is in [Beta](../../../../policy/experiment-beta-support.md).
-
-FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available, an administrator can [enable the feature flag](../../../../administration/feature_flags.md) named `packages_dependency_proxy_maven`.
-On GitLab.com, this feature is not available.
-The feature is not ready for production use.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/415218) in GitLab 16.8. Feature flag `packages_dependency_proxy_maven` removed.
The GitLab dependency proxy for packages is a local proxy for frequently pulled packages.
It is implemented as a pull-through cache that works at the project level.
diff --git a/doc/user/packages/terraform_module_registry/index.md b/doc/user/packages/terraform_module_registry/index.md
index 2c9576bf9f7..b4a0597bf60 100644
--- a/doc/user/packages/terraform_module_registry/index.md
+++ b/doc/user/packages/terraform_module_registry/index.md
@@ -48,10 +48,10 @@ You can publish Terraform modules by using the [Terraform Module Registry API](.
Prerequisites:
-- The package name and version [must be unique in the top-level namespace](#how-module-resolution-works).
+- Unless [duplicates are allowed](#allow-duplicate-terraform-modules), the package name and version [must be unique in the top-level namespace](#how-module-resolution-works).
- Your project and group names must not include a dot (`.`). For example, `source = "gitlab.example.com/my.group/project.name"`.
- You must [authenticate with the API](../../../api/rest/index.md#authentication). If authenticating with a deploy token, it must be configured with the `write_package_registry` scope.
-- The name of a module [must be unique in the scope of its group](#how-module-resolution-works), otherwise an
+- Unless [duplicates are allowed](#allow-duplicate-terraform-modules), the name of a module [must be unique in the scope of its group](#how-module-resolution-works), otherwise an
[error occurs](#troubleshooting).
```plaintext
@@ -155,7 +155,23 @@ upload:
```
To trigger this upload job, add a Git tag to your commit. Ensure the tag follows the [Semantic versioning specification](https://semver.org/) that Terraform requires. The `rules:if: $CI_COMMIT_TAG` ensures that only tagged commits to your repository trigger the module upload job.
-For other ways to control jobs in your CI/CD pipeline, refer to the [`.gitlab-ci.yml`](../../../ci/yaml/index.md) keyword reference.
+For other ways to control jobs in your CI/CD pipeline, refer to the [CI/CD YAML syntax reference](../../../ci/yaml/index.md).
+
+### Allow duplicate Terraform modules
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/368040) in GitLab 16.8.
+
+By default, the Terraform Module Registry enforces uniqueness for module names in the same namespace. To allow publishing duplicate module names:
+
+- Enable `terraform_module_duplicates_allowed` for the namespace with the [GraphQl API](../../../api/graphql/reference/index.md#packagesettings).
+
+To allow duplicates with specific names:
+
+1. Ensure `terraform_module_duplicates_allowed` is disabled.
+1. Use `terraform_module_duplicate_exception_regex` to define a regex pattern for the module names you want to allow duplicates for.
+
+The top-level namespace setting takes precedence over the child namespace settings.
+For example, if you enable `terraform_module_duplicates_allowed` for a group, and disable it for a subgroup, duplicates are allowed for all projects in the group and its subgroups.
## Reference a Terraform module
@@ -163,7 +179,9 @@ Prerequisites:
- You need to [authenticate with the API](../../../api/rest/index.md#authentication). If authenticating with a personal access token, it must be configured with the `read_api` scope.
-Authentication tokens (Job Token or Personal Access Token) can be provided for `terraform` in your `~/.terraformrc` or `%APPDATA%/terraform.rc` file:
+### From a namespace
+
+You can provide authentication tokens (job tokens, personal access tokens, or deploy tokens) for `terraform` in your `~/.terraformrc` or `%APPDATA%/terraform.rc` file:
```terraform
credentials "gitlab.com" {
@@ -183,6 +201,32 @@ module "<module>" {
Where `<namespace>` is the [namespace](../../../user/namespace/index.md) of the Terraform Module Registry.
+### From a project
+
+To reference a Terraform module using a project-level source, use the [fetching archives over HTTP](https://developer.hashicorp.com/terraform/language/modules/sources#fetching-archives-over-http) source type provided by Terraform.
+
+You can provide authentication tokens (job tokens, personal access tokens, or deploy tokens) for `terraform` in your `~/.netrc` file:
+
+```netrc
+machine gitlab.com
+login <USERNAME>
+password <TOKEN>
+```
+
+Where `gitlab.com` can be replaced with the hostname of your self-managed GitLab instance, and `<USERNAME>` is your token username.
+
+You can refer to your Terraform module from a downstream Terraform project:
+
+```terraform
+module "<module>" {
+ source = "https://gitlab.com/api/v4/projects/<project-id>/packages/terraform/modules/<module-name>/<module-system>/<module-version>"
+}
+```
+
+If you need to reference the latest version of a module, you can omit the `<module-version>` from the source URL. To prevent future issues, you should reference a specific version if possible.
+
+If there are [duplicate module names](#allow-duplicate-terraform-modules) in the same namespace, referencing the module from the namespace level installs the recently published module. To reference a specific version of a duplicate module, use the [project-level](#from-a-project) source type.
+
## Download a Terraform module
To download a Terraform module:
@@ -249,4 +293,4 @@ For examples of the Terraform Module Registry, check the projects below:
## Troubleshooting
-- Publishing a module with a duplicate name results in a `{"message":"Access Denied"}` error. There's an ongoing discussion about allowing duplicate module names [in this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/368040).
+- Publishing a module with a duplicate name results in a `{"message":"A package with the same name already exists in the namespace"}` error.
diff --git a/doc/user/packages/workflows/build_packages.md b/doc/user/packages/workflows/build_packages.md
index 59508b3e9e2..9d8db546566 100644
--- a/doc/user/packages/workflows/build_packages.md
+++ b/doc/user/packages/workflows/build_packages.md
@@ -276,6 +276,51 @@ OS: Windows 10 10.0 amd64
1. Enter a project name or press <kbd>Enter</kbd> to use the directory name as project name.
+## sbt
+
+### Install sbt
+
+Install sbt to create new sbt projects.
+
+To install sbt for your development environment:
+
+1. Follow the instructions at [scala-sbt.org](https://www.scala-sbt.org/1.x/docs/Setup.html).
+
+1. From your terminal, verify you can use sbt:
+
+ ```shell
+ sbt --version
+ ```
+
+The output is similar to:
+
+```plaintext
+[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
+sbt script version: 1.9.8
+```
+
+### Create a Scala project
+
+1. Open your terminal and create a directory to store the project.
+1. From the new directory, initialize a new project:
+
+ ```shell
+ sbt new scala/scala-seed.g8
+ ```
+
+ The output is:
+
+ ```plaintext
+ Minimum Scala build.
+
+ name [My Something Project]: hello
+
+ Template applied in ./hello
+ ```
+
+1. Enter a project name or press <kbd>Enter</kbd> to use the directory name as project name.
+1. Open the `build.sbt` file and edit it as described in the [sbt documentation](https://www.scala-sbt.org/1.x/docs/Publishing.html) to publish your project to the package registry.
+
## npm
### Install npm
diff --git a/doc/user/permissions.md b/doc/user/permissions.md
index 8c15d696760..05633cac3b0 100644
--- a/doc/user/permissions.md
+++ b/doc/user/permissions.md
@@ -66,7 +66,7 @@ The following table lists project permissions available for each role:
| [Analytics](analytics/index.md):<br>View [merge request analytics](analytics/merge_request_analytics.md) | | ✓ | ✓ | ✓ | ✓ |
| [Analytics](analytics/index.md):<br>View [repository analytics](analytics/repository_analytics.md) | | ✓ | ✓ | ✓ | ✓ |
| [Application security](application_security/index.md):<br>View licenses in [dependency list](application_security/dependency_list/index.md) | | | ✓ | ✓ | ✓ |
-| [Application security](application_security/index.md):<br>Create and run [on-demand DAST scans](application_security/dast/proxy-based.md#on-demand-scans) | | | ✓ | ✓ | ✓ |
+| [Application security](application_security/index.md):<br>Create and run [on-demand DAST scans](application_security/dast/on-demand_scan.md) | | | ✓ | ✓ | ✓ |
| [Application security](application_security/index.md):<br>View [dependency list](application_security/dependency_list/index.md) | | | ✓ | ✓ | ✓ |
| [Application security](application_security/index.md):<br>Create a [CVE ID Request](application_security/cve_id_request.md) | | | | ✓ | ✓ |
| [Application security](application_security/index.md):<br>Create or assign [security policy project](application_security/policies/index.md) | | | | | ✓ |
diff --git a/doc/user/product_analytics/index.md b/doc/user/product_analytics/index.md
index 75e44471f92..54120ff2330 100644
--- a/doc/user/product_analytics/index.md
+++ b/doc/user/product_analytics/index.md
@@ -4,7 +4,7 @@ group: Product Analytics
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Product analytics **(ULTIMATE ALL EXPERIMENT)**
+# Product analytics **(ULTIMATE SAAS BETA)**
> - Introduced in GitLab 15.4 as an [Experiment](../../policy/experiment-beta-support.md#experiment) feature [with a flag](../../administration/feature_flags.md) named `cube_api_proxy`. Disabled by default.
> - `cube_api_proxy` revised to only reference the [Product Analytics API](../../api/product_analytics.md) in GitLab 15.6.
@@ -12,11 +12,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
> - `product_analytics_internal_preview` replaced with `product_analytics_dashboards` in GitLab 15.11.
> - Snowplow integration [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/398253) in GitLab 15.11 [with a flag](../../administration/feature_flags.md) named `product_analytics_snowplow_support`. Disabled by default.
> - Snowplow integration feature flag `product_analytics_snowplow_support` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130228) in GitLab 16.4.
-
-FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available per project or for your entire instance, an administrator can [enable the feature flag](../../administration/feature_flags.md) named `product_analytics_dashboards`.
-On GitLab.com, this feature is not available.
-This feature is not ready for production use.
+> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/414865) from GitLab self-managed to GitLab.com in 16.7.
+> - Enabled in GitLab 16.7 as a [Beta](../../policy/experiment-beta-support.md#beta) feature.
This page is a work in progress, and we're updating the information as we add more features.
For more information, see the [group direction page](https://about.gitlab.com/direction/monitor/product-analytics/).
@@ -30,7 +27,7 @@ To leave feedback about Product Analytics bugs or functionality:
Product analytics uses several tools:
- [**Snowplow**](https://docs.snowplow.io/docs) - A developer-first engine for collecting behavioral data, and passing it through to ClickHouse.
-- [**ClickHouse**](https://clickhouse.com/docs) - A database suited to store, query, and retrieve analytical data.
+- [**ClickHouse**](../../integration/clickhouse.md) - A database suited to store, query, and retrieve analytical data.
- [**Cube**](https://cube.dev/docs/) - A universal semantic layer that provides an API to run queries against the data stored in ClickHouse.
The following diagram illustrates the product analytics flow:
@@ -65,22 +62,23 @@ flowchart TB
> - `cube_api_proxy` removed and replaced with `product_analytics_internal_preview` in GitLab 15.10.
> - `product_analytics_internal_preview` replaced with `product_analytics_dashboards` in GitLab 15.11.
-FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available per project or for your entire instance, an administrator can [enable the feature flags](../../administration/feature_flags.md) named `product_analytics_dashboards`, `product_analytics_admin_settings`, and `combined_analytics_dashboards`.
-On GitLab.com, this feature is not available.
-This feature is not ready for production use.
-
-To track events in your project applications on a self-managed instance,
-you must enable and configure product analytics.
+To track events in your project's applications on GitLab.com,
+you must enable and configure Product Analytics.
Prerequisites:
-- You must be an administrator of a self-managed GitLab instance.
+- You must be an Owner of the group you wish to enable Product Analytics for.
+
+### Group-level settings
-1. On the left sidebar, at the bottom, select **Admin Area**.
+NOTE:
+These group-level settings are available for top-level groups and cascade to all projects that belong to the group.
+
+1. On the left sidebar, select **Search or go to** and find your group.
1. Select **Settings > General**.
-1. Expand the **Analytics** tab and find the **Product analytics** section.
-1. Select **Enable product analytics** and enter the configuration values.
+1. Expand the **Permissions and group features** section.
+1. Check **Use Experiment and Beta features** checkbox.
+1. Check **Use product analytics** checkbox.
1. Select **Save changes**.
### Project-level settings
@@ -90,7 +88,6 @@ have a different configured product analytics instance for your project.
Prerequisites:
-- Product analytics must be enabled at the instance-level.
- You must have at least the Maintainer role for the project or group the project belongs to.
- The project must be in a group namespace.
@@ -109,19 +106,7 @@ To onboard a project:
1. Select **Analyze > Analytics dashboards**.
1. Under **Product analytics**, select **Set up**.
1. Select **Set up product analytics**.
-Your instance is being created, and the project onboarded.
-
-### Onboard an internal project
-
-GitLab team members can enable Product Analytics on their internal projects on GitLab.com (Ultimate) during the experiment phase.
-
-1. Send a message to the Product Analytics team (`#g_analyze_product_analytics`) informing them of the repository to be enabled.
-1. Using ChatOps, enable both the `product_analytics_dashboards` and `combined_analytics_dashboards`:
-
- ```plaintext
- /chatops run feature set product_analytics_dashboards true --project=FULLPATH_TO_PROJECT
- /chatops run feature set combined_analytics_dashboards true --project=FULLPATH_TO_PROJECT
- ```
+ Your instance is being created, and the project onboarded.
## Instrument your application
@@ -138,11 +123,6 @@ To instrument code to collect data, use one or more of the existing SDKs:
> - Introduced in GitLab 15.5 behind the [feature flag](../../administration/feature_flags.md) named `product_analytics_internal_preview`. Disabled by default.
> - `product_analytics_internal_preview` replaced with `product_analytics_dashboards` in GitLab 15.11.
-FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available per project or for your entire instance, an administrator can [enable the feature flag](../../administration/feature_flags.md) named `product_analytics_dashboards`.
-On GitLab.com, this feature is not available.
-This feature is not ready for production use.
-
Product analytics dashboards are a subset of dashboards under [Analytics dashboards](../analytics/analytics_dashboards.md).
Specifically product analytics dashboards and visualizations make use of the `cube_analytics` data type.
@@ -150,6 +130,8 @@ The `cube_analytics` data type connects to the Cube instance defined when [produ
All filters and queries are sent to the Cube instance and the returned data is processed by the
product analytics data source to be rendered by the appropriate visualizations.
+Data table visualizations from `cube_analytics` have an additional configuration option for rendering `links` (array of objects, each with `text` and `href` properties to specify the dimensions to be used in links. If `href` contains multiple dimensions, values are joined into a single URL). See [example](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/validators/json_schemas/analytics_visualization.json?ref_type=heads#L112)).
+
### Filling missing data
- Introduced in GitLab 16.3 behind the [feature flag](../../administration/feature_flags.md) named `product_analytics_dashboards`. Disabled by default.
diff --git a/doc/user/product_analytics/instrumentation/browser_sdk.md b/doc/user/product_analytics/instrumentation/browser_sdk.md
index 6bc9a9ef234..b9cfbc5b2df 100644
--- a/doc/user/product_analytics/instrumentation/browser_sdk.md
+++ b/doc/user/product_analytics/instrumentation/browser_sdk.md
@@ -92,7 +92,7 @@ interface GitLabClientSDKOptions {
### Plugins
- `Client Hints`: An alternative to tracking the User Agent, which is particularly useful in browsers that are freezing the User Agent string.
-Enabling this plugin will automatically capture the following context:
+ Enabling this plugin will automatically capture the following context:
For example,
[iglu:org.ietf/http_client_hints/jsonschema/1-0-0](https://github.com/snowplow/iglu-central/blob/master/schemas/org.ietf/http_client_hints/jsonschema/1-0-0)
@@ -163,12 +163,12 @@ glClient.page(eventAttributes);
The `eventAttributes` object supports the following optional properties:
-| Property | Type | Description |
-| :--------------- | :-------------------------- | :---------------------------------------------------------------------------- |
-| `title` | `String` | Override the default page title. |
-| `contextCallback` | `Function` | A callback that fires on the page view. |
-| `context` | `Object` | Add context (additional information) on the page view. |
-| `timestamp` | `timestamp` | Set the true timestamp or overwrite the device-sent timestamp on an event. |
+| Property | Type | Description |
+|:------------------|:------------|:------------|
+| `title` | `String` | Override the default page title. |
+| `contextCallback` | `Function` | A callback that fires on the page view. |
+| `context` | `Object` | Add context (additional information) on the page view. |
+| `timestamp` | `timestamp` | Set the true timestamp or overwrite the device-sent timestamp on an event. |
### `track`
diff --git a/doc/user/profile/account/create_accounts.md b/doc/user/profile/account/create_accounts.md
index 6c78152fa70..4611b3a6a40 100644
--- a/doc/user/profile/account/create_accounts.md
+++ b/doc/user/profile/account/create_accounts.md
@@ -1,6 +1,7 @@
---
stage: Govern
group: Authentication
+description: Passwords, user moderation, broadcast messages.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md
index 81e2f3d7a55..b903e422a59 100644
--- a/doc/user/profile/index.md
+++ b/doc/user/profile/index.md
@@ -425,7 +425,7 @@ a session if the browser is closed or the existing session expires.
## Related topics
- [Create users](account/create_accounts.md)
-- [Sign in to your GitLab account](../../topics/authentication/index.md)
+- [Sign in to your GitLab account](../../administration/auth/index.md)
- [Change your password](user_passwords.md)
- Receive emails for:
- [Sign-ins from unknown IP addresses or devices](notifications.md#notifications-for-unknown-sign-ins)
diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md
index 9d54381ef87..dec42e74a58 100644
--- a/doc/user/profile/personal_access_tokens.md
+++ b/doc/user/profile/personal_access_tokens.md
@@ -123,8 +123,9 @@ A personal access token can perform actions based on the assigned scopes.
| `sudo` | Grants permission to perform API actions as any user in the system, when authenticated as an administrator. |
| `admin_mode` | Grants permission to perform API actions as an administrator, when Admin Mode is enabled. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107875) in GitLab 15.8.) |
| `create_runner` | Grants permission to create runners. |
-| `ai_features` | Grants permission to perform API actions for GitLab Duo. This scope is designed to work with the GitLab Duo Plugin for JetBrains. For all other extensions, see scope requirements. |
+| `ai_features` | Grants permission to perform API actions for GitLab Duo. This scope is designed to work with the GitLab Duo Plugin for JetBrains. For all other extensions, see scope requirements. |
| `k8s_proxy` | Grants permission to perform Kubernetes API calls using the agent for Kubernetes. |
+| `read_service_ping`| Grant access to download Service Ping payload via API when authenticated as an admin use. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107875) in GitLab 16.8. |
WARNING:
If you enabled [external authorization](../../administration/settings/external_authorization.md), personal access tokens cannot access container or package registries. If you use personal access tokens to access these registries, this measure breaks this use of these tokens. Disable external authorization to use personal access tokens with container or package registries.
diff --git a/doc/user/profile/preferences.md b/doc/user/profile/preferences.md
index 6cc5f7c5039..de8ab4b25e9 100644
--- a/doc/user/profile/preferences.md
+++ b/doc/user/profile/preferences.md
@@ -321,20 +321,14 @@ To access your **Followers** and **Following** tabs:
## Enable Code Suggestions **(FREE SAAS)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121079) in GitLab 16.1 as [Beta](../../policy/experiment-beta-support.md#beta).
-> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8. Available to a percentage of users.
+> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8. UI user setting removed.
-A percentage of users can use Code Suggestions without any additional configuration.
+If Code Suggestions is
+[enabled for your top-level group](../group/manage.md#enable-code-suggestions-for-a-group),
+you can use Code Suggestions after you
+[configure a supported IDE extension](../project/repository/code_suggestions/index.md#supported-editor-extensions).
-If the following options are available to you, it means you are **not** part of the percentage of users
-and you must manually enable Code Suggestions for your account:
-
-1. On the left sidebar, select your avatar.
-1. Select **Preferences**.
-1. Select the **Enable Code Suggestions** checkbox.
-1. Select **Save changes**.
-
-NOTE:
-If Code Suggestions are disabled [for any groups that you belong to](../../user/group/manage.md#enable-code-suggestions-for-a-group), then you cannot enable them for yourself. (Your setting has no effect.)
+If Code Suggestions are disabled [for all the groups that you belong to](../../user/group/manage.md#enable-code-suggestions-for-a-group), then you cannot enable them for yourself.
## Integrate your GitLab instance with third-party services
diff --git a/doc/user/project/changelogs.md b/doc/user/project/changelogs.md
index a15bd39f1b7..df6df1653ac 100644
--- a/doc/user/project/changelogs.md
+++ b/doc/user/project/changelogs.md
@@ -15,7 +15,7 @@ commit author. Changelog formats [can be customized](#customize-the-changelog-ou
Each section in the default changelog has a title containing the version
number and release date, like this:
-````markdown
+```markdown
## 1.0.0 (2021-01-05)
### Features (4 changes)
@@ -24,7 +24,7 @@ number and release date, like this:
- [Feature 2](gitlab-org/gitlab@456abc) ([merge request](gitlab-org/gitlab!456))
- [Feature 3](gitlab-org/gitlab@234abc) by @steve
- [Feature 4](gitlab-org/gitlab@456)
-````
+```
The date format for sections can be customized, but the rest of the title cannot.
When adding new sections, GitLab parses these titles to determine where to place
@@ -121,11 +121,11 @@ these variables:
`### Features`, `### Bug fixes`, and `### Performance improvements`:
```yaml
- ---
- categories:
- feature: Features
- bug: Bug fixes
- performance: Performance improvements
+ ---
+ categories:
+ feature: Features
+ bug: Bug fixes
+ performance: Performance improvements
```
### Custom templates
diff --git a/doc/user/project/clusters/add_existing_cluster.md b/doc/user/project/clusters/add_existing_cluster.md
index 161a698a48c..ea4c345a592 100644
--- a/doc/user/project/clusters/add_existing_cluster.md
+++ b/doc/user/project/clusters/add_existing_cluster.md
@@ -25,7 +25,7 @@ See the prerequisites below to add existing clusters to GitLab.
To add any cluster to GitLab, you need:
- Either a GitLab.com account or an account for a self-managed installation
-running GitLab 12.5 or later.
+ running GitLab 12.5 or later.
- The Maintainer role for group-level and project-level clusters.
- Access to the Admin Area for instance-level clusters.
- A Kubernetes cluster.
@@ -48,7 +48,7 @@ To add an existing **EKS** cluster, you need:
- An Amazon EKS cluster with worker nodes properly configured.
- `kubectl` [installed and configured](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html#get-started-kubectl)
-for access to the EKS cluster.
+ for access to the EKS cluster.
- Ensure the token of the account has administrator privileges for the cluster.
### GKE clusters
@@ -56,8 +56,8 @@ for access to the EKS cluster.
To add an existing **GKE** cluster, you need:
- The `container.clusterRoleBindings.create` permission to create a cluster
-role binding. You can follow the [Google Cloud documentation](https://cloud.google.com/iam/docs/granting-changing-revoking-access)
-to grant access.
+ role binding. You can follow the [Google Cloud documentation](https://cloud.google.com/iam/docs/granting-changing-revoking-access)
+ to grant access.
## How to add an existing cluster
diff --git a/doc/user/project/clusters/add_remove_clusters.md b/doc/user/project/clusters/add_remove_clusters.md
index 940561d70d0..7d18ef0d1e4 100644
--- a/doc/user/project/clusters/add_remove_clusters.md
+++ b/doc/user/project/clusters/add_remove_clusters.md
@@ -39,7 +39,7 @@ When removing a cluster integration, you have two options:
- **Remove integration**: remove only the Kubernetes integration.
- **Remove integration and resources**: remove the cluster integration and
-all GitLab cluster-related resources such as namespaces, roles, and bindings.
+ all GitLab cluster-related resources such as namespaces, roles, and bindings.
To remove the Kubernetes cluster integration:
diff --git a/doc/user/project/clusters/multiple_kubernetes_clusters.md b/doc/user/project/clusters/multiple_kubernetes_clusters.md
index 4fb6ecb1336..9e96438393e 100644
--- a/doc/user/project/clusters/multiple_kubernetes_clusters.md
+++ b/doc/user/project/clusters/multiple_kubernetes_clusters.md
@@ -40,8 +40,8 @@ For example, let's say the following Kubernetes clusters exist in a project:
| Development | `*` |
| Production | `production` |
-And the following environments are set in
-[`.gitlab-ci.yml`](../../../ci/yaml/index.md):
+And the following environments are set in the
+[`.gitlab-ci.yml` file](../../../ci/index.md#the-gitlab-ciyml-file):
```yaml
stages:
diff --git a/doc/user/project/import/github.md b/doc/user/project/import/github.md
index 87467cbc56c..b861fe9d154 100644
--- a/doc/user/project/import/github.md
+++ b/doc/user/project/import/github.md
@@ -480,6 +480,23 @@ repository to be imported manually. Administrators can manually import the repos
project.create_import_state if project.import_state.blank?
# Set state to start
project.import_state.force_start
+
+ # Optional: If your import had certain optional stages selected or a timeout strategy
+ # set, you can reset them here. Below is an example.
+ # The params follow the format documented in the API:
+ # https://docs.gitlab.com/ee/api/import.html#import-repository-from-github
+ Gitlab::GithubImport::Settings
+ .new(project)
+ .write(
+ timeout_strategy: "optimistic",
+ optional_stages: {
+ single_endpoint_issue_events_import: true,
+ single_endpoint_notes_import: true,
+ attachments_import: true,
+ collaborators_import: true
+ }
+ )
+
# Trigger import from second step
Gitlab::GithubImport::Stage::ImportRepositoryWorker.perform_async(project.id)
```
diff --git a/doc/user/project/import/gitlab_com.md b/doc/user/project/import/gitlab_com.md
index e604d9d871b..135b51bf81a 100644
--- a/doc/user/project/import/gitlab_com.md
+++ b/doc/user/project/import/gitlab_com.md
@@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
WARNING:
The GitLab.com importer was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108502) in GitLab 15.8
and removed in GitLab 16.0. To import GitLab projects from GitLab.com to a self-managed GitLab instance use
-[migrating groups and projects by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
+[migrating groups and projects by direct transfer](../../group/import/index.md).
## Related topics
diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md
index 681174400a2..8c9ba408799 100644
--- a/doc/user/project/import/index.md
+++ b/doc/user/project/import/index.md
@@ -4,34 +4,61 @@ group: Import and Integrate
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Import and migrate projects **(FREE ALL)**
+# Import and migrate groups and projects **(FREE ALL)**
-If you want to bring existing projects to GitLab or copy GitLab projects to a different location, you can:
+To bring existing projects to GitLab, or copy GitLab groups and projects to a different location, you can:
-- Import projects from external systems using one of the [available importers](#available-project-importers).
-- Migrate GitLab projects:
- - Between two GitLab self-managed instances.
- - Between a self-managed instance and GitLab.com in both directions.
- - In the same GitLab instance.
+- Migrate GitLab groups and projects by using direct transfer.
+- Import from supported import sources.
+- Import from other import sources.
-For any type of source and target, you can migrate GitLab projects:
+## Migrate from GitLab to GitLab by using direct transfer
-- When [migrating groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended),
- which allows you to migrate all projects in a group simultaneously. Migrating projects by direct transfer is in
- [Beta](../../../policy/experiment-beta-support.md#beta). The feature is not ready for production use.
-- Using [file exports](../settings/import_export.md). With this method you can migrate projects one by one. No network
- connection between instances is required.
+The best way to migrate GitLab groups and projects between GitLab instances, or in the same GitLab instance, is
+[by using direct transfer](../../group/import/index.md).
-If you only need to migrate Git repositories, you can [import each project by URL](repo_by_url.md). However, you can't
-import issues and merge requests this way. To retain metadata like issues and merge requests, either:
+You can also migrate GitLab projects by using a GitLab file export, which is a supported import source.
-- [Migrate projects with groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
- This feature is in [Beta](../../../policy/experiment-beta-support.md#beta). It is not ready for production use.
-- Use [file exports](../settings/import_export.md) to import projects.
+## Supported import sources
-Keep in mind the limitations of [migrating using file exports](../settings/import_export.md#items-that-are-exported).
-When migrating from self-managed to GitLab.com, user associations (such as comment author)
-are changed to the user who is importing the projects.
+> All importers default to disabled for GitLab self-managed installations. This change was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118970) in GitLab 16.0.
+
+The import sources that are available to you by default depend on which GitLab you use:
+
+- GitLab.com: all available import sources are [enabled by default](../../gitlab_com/index.md#default-import-sources).
+- GitLab self-managed: no import sources are enabled by default and must be
+ [enabled](../../../administration/settings/import_and_export_settings.md#configure-allowed-import-sources).
+
+GitLab can import projects from these supported import sources.
+
+| Import source | Description |
+|:----------------------------------------------|:------------|
+| [Bitbucket Cloud](bitbucket.md) | Using [Bitbucket.org as an OmniAuth provider](../../../integration/bitbucket.md), import Bitbucket repositories. |
+| [Bitbucket Server](bitbucket_server.md) | Import repositories from Bitbucket Server (also known as Stash). |
+| [FogBugz](fogbugz.md) | Import FogBuz projects. |
+| [Gitea](gitea.md) | Import Gitea projects. |
+| [GitHub](github.md) | Import from either GitHub.com or GitHub Enterprise. |
+| [GitLab export](../settings/import_export.md) | Migrate projects one by one by using a GitLab export file. |
+| [Manifest file](manifest.md) | Upload a manifest file. |
+| [Repository by URL](repo_by_url.md) | Provide a Git repository URL to create a new project from. |
+
+## Other import sources
+
+You can also read information on importing from these other import sources:
+
+- [ClearCase](clearcase.md)
+- [Concurrent Versions System (CVS)](cvs.md)
+- [Jira (issues only)](jira.md)
+- [Perforce Helix](perforce.md)
+- [Team Foundation Version Control (TFVC)](tfvc.md)
+
+### Import repositories from Subversion
+
+GitLab can not automatically migrate Subversion repositories to Git. Converting Subversion repositories to Git can be
+difficult, but several tools exist including:
+
+- [`git svn`](https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git), for very small and basic repositories.
+- [`reposurgeon`](http://www.catb.org/~esr/reposurgeon/repository-editing.html), for larger and more complex repositories.
## Security
@@ -49,35 +76,6 @@ GitLab self-managed administrators can reduce their attack surface by disabling
In GitLab 16.1 and earlier, you should **not** use direct transfer with [scheduled scan execution policies](../../../user/application_security/policies/scan-execution-policies.md).
-## Available project importers
-
-You can import projects from:
-
-- [Bitbucket Cloud](bitbucket.md)
-- [Bitbucket Server (also known as Stash)](bitbucket_server.md)
-- [ClearCase](clearcase.md)
-- [CVS](cvs.md)
-- [FogBugz](fogbugz.md)
-- [GitHub.com or GitHub Enterprise](github.md)
-- [Gitea](gitea.md)
-- [Perforce](perforce.md)
-- [TFVC](tfvc.md)
-- [Repository by URL](repo_by_url.md)
-- [Uploading a manifest file (AOSP)](manifest.md)
-- [Jira (issues only)](jira.md)
-
-You can also import any Git repository through HTTP from the **New Project** page. If the repository
-is too large, the import can timeout.
-
-You can then [connect your external repository to get CI/CD benefits](../../../ci/ci_cd_for_external_repos/index.md).
-
-## Import from Subversion
-
-GitLab can not automatically migrate Subversion repositories to Git. Converting Subversion repositories to Git can be difficult, but several tools exist including:
-
-- [`git svn`](https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git), for very small and basic repositories.
-- [`reposurgeon`](http://www.catb.org/~esr/reposurgeon/repository-editing.html), for larger and more complex repositories.
-
## Migrate using the API
To migrate all data from self-managed to GitLab.com, you can leverage the [API](../../../api/rest/index.md).
diff --git a/doc/user/project/import/repo_by_url.md b/doc/user/project/import/repo_by_url.md
index 5d67d10582d..3c5a40b8d27 100644
--- a/doc/user/project/import/repo_by_url.md
+++ b/doc/user/project/import/repo_by_url.md
@@ -6,7 +6,10 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Import project from repository by URL **(FREE ALL)**
-You can import your existing repositories by providing the Git URL.
+You can import your existing repositories by providing the Git URL. You can't import GitLab issues and merge requests
+this way. Other methods provide more complete import methods.
+
+If the repository is too large, the import can timeout.
## Prerequisites
diff --git a/doc/user/project/insights/index.md b/doc/user/project/insights/index.md
index 8a91a0c4621..b7addb5131f 100644
--- a/doc/user/project/insights/index.md
+++ b/doc/user/project/insights/index.md
@@ -4,27 +4,28 @@ group: Optimize
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Insights for projects **(ULTIMATE ALL)**
+# Insights **(ULTIMATE ALL)**
-Configure project insights to explore data such as:
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/725) in GitLab 12.0.
+
+Configure insights for your projects and groups to explore data such as:
- Issues created and closed during a specified period.
- Average time for merge requests to be merged.
- Triage hygiene.
-Insights are also available for [groups](../../group/insights/index.md).
+You can also create custom Insights reports that are relevant for your group.
## View project insights
Prerequisites:
-- You must have:
- - Access to a project to view information about its merge requests and issues.
- - Permission to view confidential merge requests and issues in the project.
+- For project insights, you must have access to the project and permission to view information about its merge requests and issues.
+- For group insights, you must have permission to view the group.
-To view project insights:
+To view insights for a project or group:
-1. On the left sidebar, select **Search or go to** and find your project.
+1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Analyze > Insights**.
1. To view a report, select the **Select report** dropdown list.
@@ -35,23 +36,61 @@ You can direct users to a specific report in Insights by using the deep-linked U
To create a deep link, append the report key to the end of the Insights report URL.
For example, a GitLab report with the key `bugsCharts` has the deep link URL `https://gitlab.com/gitlab-org/gitlab/insights/#/bugsCharts`.
+## Interact with Insights charts
+
+You can interact with the insights charts to view details about your group's activity.
+
+### Display different reports
+
+To display one of the available reports on the insights page, from the **Select report** dropdown list,
+select the report you want to display.
+
+### View bar chart annotations
+
+To view annotations, hover over each bar in the chart.
+
+### Zoom in on chart
+
+Insights display data from the last 90 days. You can zoom in to display data only from a subset of the 90-day range.
+
+To do this, select the pause icons (**{status-paused}**) and slide them along the horizontal axis:
+
+- To change the start date, slide the left pause icon to the left or right.
+- To change the end date, slide the right pause icon to the left or right.
+
+### Exclude dimensions from charts
+
+By default, insights display all available dimensions on the chart.
+
+To exclude a dimension, from the legend below the chart, select the name of the dimension.
+
+### Drill down on charts
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/372215/) in GitLab 16.7.
+
+You can drill down into the data of the **Bugs created per month by priority** and **Bugs created per month by severity** charts from the [default configuration file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/fixtures/insights/default.yml).
+
+To view a drill-down report of the data for a specific priority or severity in a month:
+
+- On the chart, select the bar stack you want to drill down on.
+
## Configure project insights
Prerequisites:
- Depending on your project configuration, you must have at least the Developer role.
-Project insights are configured with the [`.gitlab/insights.yml`](#insights-configuration-file) file in the project. If a project doesn't have a configuration file, it uses the [group configuration](../../group/insights/index.md#configure-group-insights).
+Project insights are configured with the [`.gitlab/insights.yml`](#insights-configuration-file) file in the project. If a project doesn't have a configuration file, it uses the [group configuration](#configure-group-insights).
The `.gitlab/insights.yml` file is a YAML file where you define:
- The structure and order of charts in a report.
- The style of charts displayed in the report of your project or group.
-To configure project insights, either:
+To configure project insights, create a file `.gitlab/insights.yml` either:
-- Create a `.gitlab/insights.yml` file locally in the root directory of your project, and push your changes.
-- Create a `.gitlab/insights.yml` file in the UI:
+- Locally, in the root directory of your project, and push your changes.
+- From the UI:
1. On the left sidebar, select **Search or go to** and find your project.
1. Above the file list, select the branch you want to commit to, select the plus icon, then select **New file**.
1. In the **File name** text box, enter `.gitlab/insights.yml`.
@@ -59,7 +98,21 @@ To configure project insights, either:
1. Select **Commit changes**.
After you create the configuration file, you can also
-[use it for the project's group](../../group/insights/index.md#configure-group-insights).
+use it for the project's group.
+
+## Configure group insights
+
+GitLab reads insights from the
+[default configuration file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/fixtures/insights/default.yml).
+
+To configure group insights:
+
+1. In a project that belongs to your group, [create a `.gitlab/insights.yml` file](#configure-project-insights).
+1. On the left sidebar, select **Search or go to** and find your group.
+1. Select **Settings > General**.
+1. Expand **Analytics** and find the **Insights** section.
+1. Select the project that contains your `.gitlab/insights.yml` configuration file.
+1. Select **Save changes**.
## Insights configuration file
@@ -403,7 +456,7 @@ Use `query.environment_tiers` to define an array of environments to include the
Use `projects` to limit where issuables are queried from:
-- If `.gitlab/insights.yml` is used for a [group's insights](../../group/insights/index.md#configure-group-insights), use `projects` to define the projects from which to query issuables. By default, all projects under the group are used.
+- If `.gitlab/insights.yml` is used for a group's insights, use `projects` to define the projects from which to query issuables. By default, all projects under the group are used.
- If `.gitlab/insights.yml` is used for a project's insights, specifying other projects does not yield results. By default, the project is used.
#### `projects.only`
diff --git a/doc/user/project/integrations/apple_app_store.md b/doc/user/project/integrations/apple_app_store.md
index 3031ae42e4d..18022fbaeb8 100644
--- a/doc/user/project/integrations/apple_app_store.md
+++ b/doc/user/project/integrations/apple_app_store.md
@@ -16,19 +16,20 @@ The feature is still in development, but you can:
- [Report a bug](https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/feedback/-/issues/new?issuable_template=report_bug).
- [Share feedback](https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/feedback/-/issues/new?issuable_template=general_feedback).
-With the Apple App Store Connect integration, you can configure your CI/CD pipelines to connect to [App Store Connect](https://appstoreconnect.apple.com) to build and release apps for iOS, iPadOS, macOS, tvOS, and watchOS.
+Use the Apple App Store Connect integration to configure your CI/CD pipelines to connect to [App Store Connect](https://appstoreconnect.apple.com).
+With this integration, you can build and release apps for iOS, iPadOS, macOS, tvOS, and watchOS.
The Apple App Store Connect integration works out of the box with [fastlane](https://fastlane.tools/). You can also use this integration with other build tools.
-## Prerequisites
+## Enable the integration in GitLab
-An Apple ID enrolled in the [Apple Developer Program](https://developer.apple.com/programs/enroll/) is required to enable this integration.
+Prerequisites:
-## Configure GitLab
+- You must have an Apple ID enrolled in the [Apple Developer Program](https://developer.apple.com/programs/enroll/).
+- You must [generate a new private key](https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api) for your project in the Apple App Store Connect portal.
-GitLab supports enabling the Apple App Store Connect integration at the project level. Complete these steps in GitLab:
+To enable the Apple App Store Connect integration in GitLab:
-1. In the Apple App Store Connect portal, generate a new private key for your project by following [these instructions](https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api).
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > Integrations**.
1. Select **Apple App Store Connect**.
@@ -38,7 +39,6 @@ GitLab supports enabling the Apple App Store Connect integration at the project
- **Key ID**: The key ID of the generated private key.
- **Private key**: The generated private key. You can download this key only once.
- **Protected branches and tags only**: Enable to set variables on protected branches and tags only.
-
1. Select **Save changes**.
After you enable the integration:
diff --git a/doc/user/project/integrations/gitlab_slack_app_troubleshooting.md b/doc/user/project/integrations/gitlab_slack_app_troubleshooting.md
index 363e7c2c364..3a1bc746d5b 100644
--- a/doc/user/project/integrations/gitlab_slack_app_troubleshooting.md
+++ b/doc/user/project/integrations/gitlab_slack_app_troubleshooting.md
@@ -10,13 +10,13 @@ When configuring the GitLab for Slack app on GitLab.com, you might encounter the
For self-managed GitLab, see [GitLab for Slack app administration](../../../administration/settings/slack_app.md#troubleshooting).
-## The app does not appear in the list of integrations
+## App does not appear in the list of integrations
The GitLab for Slack app might not appear in the list of integrations. To have the GitLab for Slack app on your self-managed instance, an administrator must [enable the integration](../../../administration/settings/slack_app.md). On GitLab.com, the GitLab for Slack app is available by default.
The GitLab for Slack app is enabled at the project level only. Support for the app at the group and instance levels is proposed in [issue 391526](https://gitlab.com/gitlab-org/gitlab/-/issues/391526).
-## Project or alias not found
+## `Project or alias not found`
Some Slack commands must have a project full path or alias and fail with the following error
if the project cannot be found:
@@ -31,18 +31,19 @@ To resolve this issue, ensure:
- If using a [project alias](gitlab_slack_application.md#create-a-project-alias-for-slash-commands), the alias is correct.
- The GitLab for Slack app is [enabled for the project](gitlab_slack_application.md#from-project-integration-settings).
-## Slash commands return an error in Slack
+## Slash commands return `dispatch_failed` in Slack
Slash commands might return `/gitlab failed with the error "dispatch_failed"` in Slack.
+
To resolve this issue, ensure an administrator has properly configured the [GitLab for Slack app settings](../../../administration/settings/slack_app.md) on your self-managed instance.
-## Notifications are not received to a channel
+## Notifications not received to a channel
If you're not receiving notifications to a Slack channel, ensure:
- The channel name you configured is correct.
- If the channel is private, you've [added the GitLab for Slack app to the channel](gitlab_slack_application.md#receive-notifications-to-a-private-channel).
-## The App Home does not display properly
+## App Home does not display properly
If the [App Home](https://api.slack.com/start/overview#app_home) does not display properly, ensure your [app is up to date](gitlab_slack_application.md#update-the-gitlab-for-slack-app).
diff --git a/doc/user/project/integrations/google_play.md b/doc/user/project/integrations/google_play.md
index 70a1fe5b054..cfe48d11bcb 100644
--- a/doc/user/project/integrations/google_play.md
+++ b/doc/user/project/integrations/google_play.md
@@ -34,7 +34,7 @@ To enable the Google Play integration in GitLab:
1. Select **Google Play**.
1. In **Enable integration**, select the **Active** checkbox.
1. In **Package name**, enter the package name of the app (for example, `com.gitlab.app_name`).
-1. Optional. Under **Protected branches and tags only**, select the **Only set variables on protected branches and tags** checkbox.
+1. Optional. Under **Protected branches and tags only**, select the **Set variables on protected branches and tags only** checkbox.
1. In **Service account key (.JSON)**, drag or upload your key file.
1. Optional. Select **Test settings**.
1. Select **Save changes**.
diff --git a/doc/user/project/integrations/mattermost.md b/doc/user/project/integrations/mattermost.md
index 0a82a94d998..91c8e9ce2f1 100644
--- a/doc/user/project/integrations/mattermost.md
+++ b/doc/user/project/integrations/mattermost.md
@@ -19,8 +19,8 @@ To use the Mattermost integration you must create an incoming webhook integratio
in Mattermost:
1. Sign in to your Mattermost instance.
-1. [Enable incoming webhooks](https://docs.mattermost.com/developer/webhooks-incoming.html#enabling-incoming-webhooks).
-1. [Add an incoming webhook](https://docs.mattermost.com/developer/webhooks-incoming.html#creating-integrations-using-incoming-webhooks).
+1. [Enable incoming webhooks](https://docs.mattermost.com/configure/integrations-configuration-settings.html#enable-incoming-webhooks).
+1. [Add an incoming webhook](https://developers.mattermost.com/integrate/webhooks/incoming/#create-an-incoming-webhook).
1. Choose a display name, description and channel, those can be overridden on GitLab.
1. Save it and copy the **Webhook URL** because we need this later for GitLab.
diff --git a/doc/user/project/integrations/slack.md b/doc/user/project/integrations/slack.md
index 9b92fa35e24..fee6de2af6d 100644
--- a/doc/user/project/integrations/slack.md
+++ b/doc/user/project/integrations/slack.md
@@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
WARNING:
This feature was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/372411) in GitLab 15.9
-and is planned for removal in 17.0. Use the [GitLab for Slack app](gitlab_slack_application.md) instead.
+and is planned for removal in 18.0. Use the [GitLab for Slack app](gitlab_slack_application.md) instead.
This change is a breaking change.
The Slack notifications integration enables your GitLab project to send events
diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md
index 33da78191c0..ccf416fc8c6 100644
--- a/doc/user/project/integrations/webhooks.md
+++ b/doc/user/project/integrations/webhooks.md
@@ -1,6 +1,7 @@
---
stage: Manage
group: Import and Integrate
+description: Custom HTTP callbacks, used to send events.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md
index e6fd302e4f0..39353480908 100644
--- a/doc/user/project/issue_board.md
+++ b/doc/user/project/issue_board.md
@@ -101,7 +101,7 @@ For examples of using issue boards along with [epics](../group/epics/index.md),
- [How to use GitLab for Agile portfolio planning and project management](https://about.gitlab.com/blog/2020/11/11/gitlab-for-agile-portfolio-planning-project-management/) blog post (November 2020)
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
-[Cross-project Agile work management with GitLab](https://www.youtube.com/watch?v=5J0bonGoECs) (15 min, July 2020)
+ [Cross-project Agile work management with GitLab](https://www.youtube.com/watch?v=5J0bonGoECs) (15 min, July 2020)
### Use cases for a single issue board
diff --git a/doc/user/project/issues/managing_issues.md b/doc/user/project/issues/managing_issues.md
index 6f2d0083ae8..b80db3887bf 100644
--- a/doc/user/project/issues/managing_issues.md
+++ b/doc/user/project/issues/managing_issues.md
@@ -355,7 +355,7 @@ To delete an issue:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**, then select your issue to view it.
-1. On the top right corner, select **Issue actions** (**{ellipsis_v}**).
+1. In the upper-right corner, select **Issue actions** (**{ellipsis_v}**).
1. Select **Delete issue**.
Alternatively:
@@ -367,23 +367,44 @@ Alternatively:
## Promote an issue to an epic **(PREMIUM ALL)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3777) in GitLab 11.6.
-> - Moved from GitLab Ultimate to GitLab Premium in 12.8.
-> - Promoting issues to epics via the UI [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/233974) in GitLab 13.6.
-
You can promote an issue to an [epic](../../group/epics/index.md) in the immediate parent group.
+NOTE:
+Promoting a confidential issue to an epic makes all information
+related to the issue public, as epics are public to group members.
+
+When an issue is promoted to an epic:
+
+- If the issue was confidential, an additional warning is displayed first.
+- An epic is created in the same group as the project of the issue.
+- Subscribers of the issue are notified that the epic was created.
+
+The following issue metadata is copied to the epic:
+
+- Title, description, activity, and comment threads.
+- Upvotes and downvotes.
+- Participants.
+- Group labels that the issue had.
+- Parent epic.
+
+Prerequisites:
+
+- The project to which the issue belongs must be in a group.
+- You must have at least the Reporter role the project's immediate parent group.
+- You must either:
+ - Have at least the Reporter role for the project.
+ - Be the author of the issue.
+ - Be assigned to the issue.
+
To promote an issue to an epic:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**, then select your issue to view it.
-1. On the top right corner, select **Issue actions** (**{ellipsis_v}**).
+1. In the upper-right corner, select **Issue actions** (**{ellipsis_v}**).
1. Select **Promote to epic**.
Alternatively, you can use the `/promote` [quick action](../quick_actions.md#issues-merge-requests-and-epics).
-Read more about [promoting an issues to epics](../../group/epics/manage_epics.md#promote-an-issue-to-an-epic).
-
## Promote an issue to an incident
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/296787) in GitLab 14.5.
diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md
index 2cc38e6a31c..f064d867e0f 100644
--- a/doc/user/project/labels.md
+++ b/doc/user/project/labels.md
@@ -14,7 +14,7 @@ you're interested in.
Labels are a key part of [issue boards](issue_board.md). With labels you can:
- Categorize [epics](../group/epics/index.md), issues, and merge requests using colors and descriptive titles like
-`bug`, `feature request`, or `docs`.
+ `bug`, `feature request`, or `docs`.
- Dynamically filter and manage [epics](../group/epics/index.md), issues, and merge requests.
- Search lists of issues, merge requests, and epics, as well as issue boards.
diff --git a/doc/user/project/members/index.md b/doc/user/project/members/index.md
index 92aaee1ae54..66258c3873e 100644
--- a/doc/user/project/members/index.md
+++ b/doc/user/project/members/index.md
@@ -59,6 +59,7 @@ Prerequisites:
- You must have the Owner or Maintainer role.
- [Group membership lock](../../group/access_and_permissions.md#prevent-members-from-being-added-to-projects-in-a-group) must be disabled.
+- If [sign-up is disabled](../../../administration/settings/sign_up_restrictions.md#disable-new-sign-ups), an administrator must add the user by email first.
To add a user to a project:
@@ -156,6 +157,7 @@ To add a group to a project:
The invited group is displayed on the **Groups** tab.
Private groups are masked from unauthorized users.
+With the feature flag `allow_members_to_see_invited_groups_in_access_dropdowns` enabled, private groups are displayed in project settings for protected branches, protected tags, and protected environments.
The members of the invited group are not displayed on the **Members** tab.
The **Members** tab shows:
diff --git a/doc/user/project/members/share_project_with_groups.md b/doc/user/project/members/share_project_with_groups.md
index 3881220ec7a..bf8a7468199 100644
--- a/doc/user/project/members/share_project_with_groups.md
+++ b/doc/user/project/members/share_project_with_groups.md
@@ -16,7 +16,7 @@ For a project that was created by `Group 1`:
- The members of `Group 1` have access to the project.
- The owner of `Group 1` can invite `Group 2` to the project.
-This way, members of both `Group 1` and `Group 2` have access to the shared project.
+ This way, members of both `Group 1` and `Group 2` have access to the shared project.
## Prerequisites
@@ -31,7 +31,7 @@ In addition:
- You must be a member of the group or the subgroup being invited.
- The [visibility level](../../public_access.md) of the group you're inviting
-must be at least as restrictive as that of the project. For example, you can invite:
+ must be at least as restrictive as that of the project. For example, you can invite:
- A _private_ group to a _private_ project
- A _private_ group to an _internal_ project.
- A _private_ group to a _public_ project.
@@ -46,12 +46,9 @@ must be at least as restrictive as that of the project. For example, you can inv
## Share a project with a group
-> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/247208) in GitLab 13.11 from a form to a modal
- window [with a flag](../../feature_flags.md). Disabled by default.
-> - Modal window [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/247208)
- in GitLab 14.8.
-> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/352526) in GitLab 14.9.
- [Feature flag `invite_members_group_modal`](https://gitlab.com/gitlab-org/gitlab/-/issues/352526) removed.
+> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/247208) in GitLab 13.11 from a form to a modal window [with a flag](../../feature_flags.md). Disabled by default.
+> - Modal window [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/247208) in GitLab 14.8.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/352526) in GitLab 14.9. [Feature flag `invite_members_group_modal`](https://gitlab.com/gitlab-org/gitlab/-/issues/352526) removed.
Similar to how you [share a group with another group](../../group/manage.md#share-a-group-with-another-group),
you can share a project with a group by inviting that group to the project.
@@ -101,6 +98,15 @@ NOTE:
The Max role does not elevate the privileges of users.
For example, if a group member has the role of Developer, and the group is invited to a project with a Max role of Maintainer, the member's role is not elevated to Maintainer.
+### Which roles you can assign
+
+In GitLab [16.7](https://gitlab.com/gitlab-org/gitlab/-/issues/233408) and later, the maximum role you can assign depends on whether you have the Owner or Maintainer role for the project. The maximum role you can set is:
+
+- Owner (`50`), if you have the Owner role for the project.
+- Maintainer (`40`), if you have the Maintainer role for the project.
+
+In GitLab 16.6 and earlier, the maximum role you can assign to an invited group is Maintainer (`40`).
+
### View the member's Max role
To view the maximum role assigned to a member:
diff --git a/doc/user/project/merge_requests/approvals/img/group_access_example_01_v16_8.png b/doc/user/project/merge_requests/approvals/img/group_access_example_01_v16_8.png
new file mode 100644
index 00000000000..0b5fbf7e075
--- /dev/null
+++ b/doc/user/project/merge_requests/approvals/img/group_access_example_01_v16_8.png
Binary files differ
diff --git a/doc/user/project/merge_requests/approvals/img/group_access_example_02_v16_8.png b/doc/user/project/merge_requests/approvals/img/group_access_example_02_v16_8.png
new file mode 100644
index 00000000000..49df19f2c46
--- /dev/null
+++ b/doc/user/project/merge_requests/approvals/img/group_access_example_02_v16_8.png
Binary files differ
diff --git a/doc/user/project/merge_requests/approvals/index.md b/doc/user/project/merge_requests/approvals/index.md
index 5436edf9f8d..bf4e2e8334e 100644
--- a/doc/user/project/merge_requests/approvals/index.md
+++ b/doc/user/project/merge_requests/approvals/index.md
@@ -17,15 +17,13 @@ flexibility:
- Create required [rules](rules.md) about the number and type of approvers before work can merge.
- Specify a list of users who act as [code owners](../../codeowners/index.md) for specific files,
and require their approval before work can merge.
+- For GitLab Premium and GitLab Ultimate, configure approvals
+ [for the entire instance](../../../../administration/merge_requests_approvals.md).
You can configure merge request approvals on a per-project basis, and some approvals can be configured
[on the group level](../../../group/manage.md#group-merge-request-approval-settings). Support for
group-level settings for merge request approval rules is tracked in this
-[epic](https://gitlab.com/groups/gitlab-org/-/epics/4367). Administrators of
-[GitLab Premium](https://about.gitlab.com/pricing/) and
-[GitLab Ultimate](https://about.gitlab.com/pricing/) self-managed GitLab instances
-can also configure approvals
-[for the entire instance](../../../../administration/admin_area.md).
+[epic](https://gitlab.com/groups/gitlab-org/-/epics/4367).
## How approvals work
@@ -48,6 +46,8 @@ You can also configure:
- Merge request approval rules and settings through the GitLab UI or with the
[Merge request approvals API](../../../../api/merge_request_approvals.md).
+Approvals cannot be added after a merge request is merged.
+
## Approve a merge request
When an [eligible approver](rules.md#eligible-approvers) visits an open merge request,
@@ -60,9 +60,8 @@ GitLab displays one of these buttons after the body of the merge request:
Eligible approvers can also use the `/approve`
[quick action](../../../project/quick_actions.md) when adding a comment to
-a merge request. [In GitLab 13.10 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/292936),
-if a user approves a merge request and is shown in the reviewer list, a green check mark
-(**{check-circle-filled}**) displays next to their name.
+a merge request. Users in the reviewer list who have approved a merge request display
+a green check mark (**{check-circle-filled}**) next to their name.
After a merge request receives the [number and type of approvals](rules.md) you configure, it can merge
unless it's blocked for another reason. Merge requests can be blocked by other problems,
@@ -80,8 +79,6 @@ of the rule.
## Optional approvals
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27426) in GitLab 13.2.
-
GitLab allows all users with Developer or greater [permissions](../../../permissions.md)
to approve merge requests. Approvals in GitLab Free are optional, and don't prevent
a merge request from merging without approval.
@@ -128,7 +125,7 @@ Invalid approval rules created through a scan result policy are presented with
## Related topics
- [Merge request approvals API](../../../../api/merge_request_approvals.md)
-- [Instance-level approval rules](../../../../administration/admin_area.md) for self-managed installations
+- [Instance-level approval rules](../../../../administration/merge_requests_approvals.md) for self-managed installations
<!-- ## Troubleshooting
diff --git a/doc/user/project/merge_requests/approvals/rules.md b/doc/user/project/merge_requests/approvals/rules.md
index c284df8d9aa..2f1e2a96295 100644
--- a/doc/user/project/merge_requests/approvals/rules.md
+++ b/doc/user/project/merge_requests/approvals/rules.md
@@ -16,7 +16,10 @@ You can define approval rules:
- [As project defaults](#add-an-approval-rule).
- [Per merge request](#edit-or-override-merge-request-approval-rules).
-- [At the instance level](../../../../administration/admin_area.md)
+
+You can configure approval rules:
+
+- [At the instance level](../../../../administration/merge_requests_approvals.md).
If you don't define a [default approval rule](#add-an-approval-rule),
any user can approve a merge request. Even if you don't define a rule, you can still
@@ -311,8 +314,18 @@ For more information about this validation error, read
### Groups need explicit or inherited Developer role on a project
A group created to handle approvals may be created in a different area of the
-project hierarchy than the project requiring review. If this happens, the approvals group
-isn't recognized as a valid Code Owner for the project, nor does it display in the
-project's **Approvals** list. To fix this problem, add the approval group as a shared group
-high enough in the shared hierarchy so the project requiring review inherits this
-group of users.
+project hierarchy than the project requiring review. If this happens, members of the
+group may not be able to approve the merge request as they do not have access to it.
+
+For example:
+
+In the group structure below, project 1 belongs to subgroup 1 and subgroup 4 has users.
+
+![Example scenario - project and group hierarchy](img/group_access_example_01_v16_8.png)
+
+Project 1 has a project level approval rule which assigns subgroup 4 as approvers.
+When a merge request is created approvers from subgroup 4 appear in the eligible approvers list.
+However, as users from subgroup 4 do not have permission to view the merge request, the `404` error is returned.
+To grant membership, the group must be invited as a project member. It is now possible for users from subgroup 4 to approve.
+
+![Project members page showing subgroup 4 as a member](img/group_access_example_02_v16_8.png)
diff --git a/doc/user/project/merge_requests/approvals/settings.md b/doc/user/project/merge_requests/approvals/settings.md
index f9e40a6714c..0120be0cf17 100644
--- a/doc/user/project/merge_requests/approvals/settings.md
+++ b/doc/user/project/merge_requests/approvals/settings.md
@@ -57,7 +57,7 @@ this setting, unless you configure one of these options:
- [Prevent overrides of default approvals](#prevent-editing-approval-rules-in-merge-requests) at
the project level.
- *(Self-managed instances only)* Prevent overrides of default approvals
- [at the instance level](../../../../administration/admin_area.md). When configured
+ [at the instance level](../../../../administration/merge_requests_approvals.md). When configured
at the instance level, you can't edit this setting at the project or individual
merge request levels.
@@ -68,7 +68,7 @@ this setting, unless you configure one of these options:
> - [Feature flag `keep_merge_commits_for_approvals`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131778) removed in GitLab 16.5. This check now includes merge commits.
By default, users who commit to a merge request can still approve it. At both
-the project level or [instance level](../../../../administration/admin_area.md),
+the project level or instance level,
you can prevent committers from approving merge requests that are partially
their own. To do this:
@@ -76,7 +76,7 @@ their own. To do this:
1. In the **Merge request approvals** section, scroll to **Approval settings** and
select **Prevent approvals by users who add commits**.
If this checkbox is cleared, an administrator has disabled it
- [at the instance level](../../../../administration/admin_area.md), and
+ [at the instance level](../../../../administration/merge_requests_approvals.md), and
it can't be changed at the project level.
1. Select **Save changes**.
@@ -116,10 +116,11 @@ When this field is changed, it can affect all open merge requests depending on t
> - Requiring re-authentication by using SAML authentication for GitLab.com groups [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5981) in GitLab 16.6 [with a flag](../../../../administration/feature_flags.md) named `ff_require_saml_auth_to_approve`. Disabled by default.
> - Requiring re-authentication by using SAML authentication for self-managed instances [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/431415) in GitLab 16.7 [with a flag](../../../../administration/feature_flags.md) named `ff_require_saml_auth_to_approve`. Disabled by default.
+> - [Enabled `ff_require_saml_auth_to_approve` by default](https://gitlab.com/gitlab-org/gitlab/-/issues/431714) in GitLab 16.8 for GitLab.com and self-managed instances.
FLAG:
-On self-managed GitLab, by default requiring re-authentication by using SAML authentication is not available. To make it available, an administrator can
-[enable the feature flag](../../../../administration/feature_flags.md) named `ff_require_saml_auth_to_approve`. On GitLab.com, this feature is not available.
+On self-managed GitLab, by default requiring re-authentication by using SAML authentication is available. To hide the feature, an administrator can
+[disable the feature flag](../../../../administration/feature_flags.md) named `ff_require_saml_auth_to_approve`. On GitLab.com, this feature is available.
You can force potential approvers to first authenticate with either:
@@ -184,7 +185,7 @@ To do this:
You can also enforce merge request approval settings:
-- At the [instance level](../../../../administration/admin_area.md), which apply to all groups
+- At the [instance level](../../../../administration/merge_requests_approvals.md), which apply to all groups
on an instance and, therefore, all projects.
- On a [top-level group](../../../group/manage.md#group-merge-request-approval-settings), which apply to all subgroups
and projects.
@@ -194,6 +195,6 @@ that inherited them.
## Related topics
-- [Instance-level merge request approval settings](../../../../administration/admin_area.md)
+- [Instance-level merge request approval settings](../../../../administration/merge_requests_approvals.md)
- [Compliance center](../../../compliance/compliance_center/index.md)
- [Merge request approvals API](../../../../api/merge_request_approvals.md)
diff --git a/doc/user/project/merge_requests/changes.md b/doc/user/project/merge_requests/changes.md
index 780041ac411..094d2cf5730 100644
--- a/doc/user/project/merge_requests/changes.md
+++ b/doc/user/project/merge_requests/changes.md
@@ -162,6 +162,13 @@ per conflicted file on the merge request diff:
![Example of a conflict alert shown in a merge request diff](img/conflict_ui_v15_6.png)
+## Show scanner findings in diff **(ULTIMATE ALL)**
+
+You can show scanner findings in the diff. For details, see:
+
+- [Code Quality findings](../../../ci/testing/code_quality.md#merge-request-changes-view)
+- [Static Analysis findings](../../application_security/sast/index.md#merge-request-changes-view)
+
## Add a comment to a merge request file
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123515) in GitLab 16.1 [with a flag](../../../administration/feature_flags.md) named `comment_on_files`. Enabled by default.
diff --git a/doc/user/project/merge_requests/creating_merge_requests.md b/doc/user/project/merge_requests/creating_merge_requests.md
index 951c848dee1..d2c5b0af339 100644
--- a/doc/user/project/merge_requests/creating_merge_requests.md
+++ b/doc/user/project/merge_requests/creating_merge_requests.md
@@ -155,23 +155,50 @@ You can create a merge request by running Git commands on your local machine.
You can create a merge request from your fork to contribute back to the main project.
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select your fork of the repository.
-1. On the left sidebar, select **Code > Merge requests**, and select **New merge request**.
-1. In the **Source branch** dropdown list box, select the branch in your forked repository as the source branch.
-1. In the **Target branch** dropdown list box, select the branch from the upstream repository as the target branch.
- You can set a [default target project](#set-the-default-target-project) to
- change the default target branch (which can be useful if you are working in a
- forked project).
+1. On the left sidebar, select **Search or go to** and find your fork.
+1. Select **Code > Merge requests**, and select **New merge request**.
+1. For **Source branch**, select the branch in your fork that contains your changes.
+1. For **Target branch**:
+
+ 1. Select the target project. (Make sure to select the upstream project, rather than your fork.)
+ 1. Select a branch from the upstream repository.
+
+ NOTE:
+ If you contribute changes upstream frequently, consider setting a
+ [default target project](#set-the-default-target-project) for your fork.
+
1. Select **Compare branches and continue**.
-1. Select **Create merge request**.
+1. Select **Create merge request**. The merge request is created in the target project,
+ not your fork.
-After your work is merged, if you don't intend to
-make any other contributions to the upstream project, you can
-[unlink your fork](../repository/forking_workflow.md#unlink-a-fork) from its upstream project.
+After your work merges, [unlink your fork](../repository/forking_workflow.md#unlink-a-fork)
+from its upstream project if you don't intend to make more contributions.
For more information, [see the forking workflow documentation](../repository/forking_workflow.md).
+### Set the default target project
+
+By default, merge requests originating from a fork target your fork, not the upstream project.
+If you frequently contribute back to the upstream project, and want to target it
+by default, change the default target for your fork.
+
+Prerequisites:
+
+- You're working in a fork.
+- You must have at least the Developer role, or be allowed to create merge requests in the project.
+- The upstream project allows merge requests to be created.
+- The [visibility settings](../../public_access.md#change-project-visibility) for
+ the fork must match, or be less strict than, the upstream repository. For example:
+ this setting isn't shown if your fork is private, but the upstream is public.
+
+To do this:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Settings > Merge requests**.
+1. In the **Target project** section, select the option you want to use for
+ your default target project.
+1. Select **Save changes**.
+
## By sending an email
You can create a merge request by sending an email message to GitLab.
@@ -179,60 +206,41 @@ The merge request target branch is the project's default branch.
Prerequisites:
+- The merge request must target the current project, not an upstream project.
- A GitLab administrator must configure [incoming email](../../../administration/incoming_email.md).
- A GitLab administrator must configure [Reply by email](../../../administration/reply_by_email.md).
+- You must have at least the Developer role, or be allowed to create merge requests in the project.
To create a merge request by sending an email:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Code > Merge requests**.
-1. In the upper-right corner, select **Email a new merge request to this project**.
- An email address is displayed. Copy this address.
- Ensure you keep this address private.
+1. If the project contains any merge requests, select **Email a new merge request to this project**.
+1. In the dialog, copy the email address shown. Keep this address private. Anyone who
+ has it can create issues or merge requests as if they were you.
1. Open an email and compose a message with the following information:
- The **To** line is the email address you copied.
- - The subject line is the source branch name.
- - The message body is the merge request description.
+ - The **Subject** is the source branch name.
+ - The body of the email is the merge request description.
-1. Send the email message.
+1. To add commits, attach `.patch` files to the message.
+1. Send the email.
A merge request is created.
### Add attachments when creating a merge request by email
-You can add commits to a merge request by adding
-patches as attachments to the email. All attachments with a file name ending in `.patch` are considered patches and are processed
-ordered by name.
+Add commits to a merge request by adding patches as attachments to the email.
-The combined size of the patches can be 2 MB.
-
-If the source branch from the subject does not exist, it is
-created from the repository's HEAD or the specified target branch.
-You can specify the target branch by using the
-[`/target_branch` quick action](../quick_actions.md). If the source
-branch already exists, the patches are applied on top of it.
-
-## Set the default target project
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58093) in GitLab 13.11.
-
-Merge requests have a source and a target project that are the same, unless
-forking is involved. Creating a fork of the project can cause either of these
-scenarios when you create a new merge request:
-
-- You target an upstream project (the project you forked, and the default
- option).
-- You target your own fork.
-
-To have merge requests from a fork by default target your own fork
-(instead of the upstream project), you can change the default.
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Settings > Merge requests**.
-1. In the **Target project** section, select the option you want to use for
- your default target project.
-1. Select **Save changes**.
+- The combined size of the patches must be 2 MB or less.
+- To be considered a patch, the attachment's file name must end in `.patch`.
+- Patches are processed in order by name.
+- If the source branch from the subject does not exist, it is
+ created from the repository's `HEAD`, or the default target branch.
+ To change the target branch manually, use the
+ [`/target_branch` quick action](../quick_actions.md).
+- If the source branch already exists, patches are applied on top of it.
## Troubleshooting
@@ -249,3 +257,14 @@ To make this button appear, one possible workaround is to
[remove your project's fork relationship](../repository/forking_workflow.md#unlink-a-fork).
After removal, the fork relationship cannot be restored. This project can no longer
be able to receive or send merge requests to the source project, or other forks.
+
+### Email message could not be processed
+
+When sending an email to create a merge request, and you attempt to target an
+upstream project, GitLab responds with this error:
+
+```plaintext
+Unfortunately, your email message to GitLab could not be processed.
+
+You are not allowed to perform this action. If you believe this is in error, contact a staff member.
+```
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 a9cad78449b..3a2729bd64b 100644
--- a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md
+++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md
@@ -23,6 +23,9 @@ author can either retry any failed jobs, or push new commits to fix the failure:
- If a retried job succeeds on the second try, the merge request is merged.
- If new commits are added to the merge request, GitLab cancels the request
to ensure the new changes are reviewed before merge.
+- If new commits are added to the target branch of the merge request and
+ fast-forward only merge request is configured, GitLab cancels the request
+ to prevent merge conflicts.
## Auto-merge a merge request
diff --git a/doc/user/project/merge_requests/reviews/index.md b/doc/user/project/merge_requests/reviews/index.md
index 23b1207619e..78e4c19dd57 100644
--- a/doc/user/project/merge_requests/reviews/index.md
+++ b/doc/user/project/merge_requests/reviews/index.md
@@ -19,6 +19,7 @@ review merge requests in Visual Studio Code.
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview, see [Merge request review](https://www.youtube.com/watch?v=2MayfXKpU08&list=PLFGfElNsQthYDx0A_FaNNfUm9NHsK6zED&index=183).
+<!-- Video published on 2023-04-29 -->
## GitLab Duo Suggested Reviewers **(ULTIMATE SAAS)**
@@ -31,6 +32,7 @@ GitLab uses machine learning to suggest reviewers for your merge request.
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview, see [GitLab Duo Suggested Reviewers](https://www.youtube.com/embed/ivwZQgh4Rxw).
+<!-- Video published on 2023-11-03 -->
To suggest reviewers, GitLab uses:
diff --git a/doc/user/project/merge_requests/widgets.md b/doc/user/project/merge_requests/widgets.md
index d60bd660b53..a6680e5e4f4 100644
--- a/doc/user/project/merge_requests/widgets.md
+++ b/doc/user/project/merge_requests/widgets.md
@@ -73,3 +73,9 @@ If you have configured [License Compliance](../../compliance/license_scanning_of
If you have configured [external status checks](status_checks.md) you can
see the status of these checks in merge requests
[in a specific widget](status_checks.md#status-checks-widget).
+
+## Application security scanning
+
+If you have enabled any application security scanning tools, the results are shown in the security
+scanning widget. For more information, see
+[security scanning output in merge request widget](../../application_security/index.md#merge-request).
diff --git a/doc/user/project/milestones/index.md b/doc/user/project/milestones/index.md
index a959507b338..f4df178794d 100644
--- a/doc/user/project/milestones/index.md
+++ b/doc/user/project/milestones/index.md
@@ -142,7 +142,7 @@ To edit a milestone:
1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Plan > Milestones**.
1. Select a milestone's title.
-1. In the top right corner, select **Milestone actions** (**{ellipsis_v}**) and then select **Edit**.
+1. In the upper-right corner, select **Milestone actions** (**{ellipsis_v}**) and then select **Edit**.
1. Edit the title, start date, due date, or description.
1. Select **Save changes**.
@@ -159,7 +159,7 @@ To edit a milestone:
1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Plan > Milestones**.
1. Select a milestone's title.
-1. In the top right corner, select **Milestone actions** (**{ellipsis_v}**) and then select **Delete**.
+1. In the upper-right corner, select **Milestone actions** (**{ellipsis_v}**) and then select **Delete**.
1. Select **Delete milestone**.
## Promote a project milestone to a group milestone
diff --git a/doc/user/project/ml/experiment_tracking/mlflow_client.md b/doc/user/project/ml/experiment_tracking/mlflow_client.md
index 35972f0ad7f..1522fd8e4fc 100644
--- a/doc/user/project/ml/experiment_tracking/mlflow_client.md
+++ b/doc/user/project/ml/experiment_tracking/mlflow_client.md
@@ -39,6 +39,9 @@ To use MLflow client compatibility from a local environment:
1. If the training code contains the call to `mlflow.set_tracking_uri()`, remove it.
+In the model registry, you can copy the tracking URI from the overflow menu in the top right
+by selecting the vertical ellipsis (**{ellipsis_v}**).
+
## Model experiments
When running the training code, MLflow client can be used to create experiments, runs,
@@ -141,11 +144,22 @@ description = 'Model version description'
model_version = client.create_model_version(model_name, source="", description=description)
```
+If the version parameter is not passed, it will be auto-incremented from the latest uploaded
+version. You can set the version by passing a tag during model version creation. The version
+must follow [SemVer](https://semver.org/) format.
+
+```python
+client = MlflowClient()
+model_name = '<your_model_name>'
+version = '<your_version>'
+tags = { "gitlab.version" = version }
+client.create_model)version(model_name, version, description=description, tags=tags)
+```
+
**Notes**
- Argument `run_id` is ignored. Every model version behaves as a Candidate/Run. Creating a mode version from a run is not yet supported.
- Argument `source` is ignored. GitLab will create a package location for the model version files.
-- Argument `tags` is ignored.
- Argument `run_link` is ignored.
- Argument `await_creation_for` is ignored.
diff --git a/doc/user/project/ml/model_registry/index.md b/doc/user/project/ml/model_registry/index.md
index 492ec9940ab..026afc01f22 100644
--- a/doc/user/project/ml/model_registry/index.md
+++ b/doc/user/project/ml/model_registry/index.md
@@ -29,13 +29,14 @@ at least the [Reporter role](../../../permissions.md#roles) to modify or delete
## Exploring models, model versions and model candidates
-Model registry can be accessed on `https/<your-project>-/ml/models`.
+To access the model registry, from the left sidebar, select **Deploy > Model registry**.
## Creating machine learning models and model versions
Models and model versions can be created using the [MLflow](https://www.mlflow.org/docs/latest/tracking.html) client compatibility.
-See [MLflow client compatibility](../experiment_tracking/mlflow_client.md#model-registry) on how to
-create and manage models and model versions.
+For more information about how to create and manage models and model versions, see [MLflow client compatibility](../experiment_tracking/mlflow_client.md#model-registry).
+You can also create models directly on GitLab by selecting **Create Model**
+on the Model registry page.
## Upload files, log metrics, log parameters to a model version
diff --git a/doc/user/project/organize_work_with_projects.md b/doc/user/project/organize_work_with_projects.md
index d41825af613..1371f5e77d0 100644
--- a/doc/user/project/organize_work_with_projects.md
+++ b/doc/user/project/organize_work_with_projects.md
@@ -1,6 +1,7 @@
---
stage: Data Stores
group: Tenant Scale
+description: Project visibility, search, badges, layout.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
index 345a30da198..b34369cb3b7 100644
--- a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
+++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
@@ -47,7 +47,7 @@ this document for an [overview on DNS records](dns_concepts.md).
To add your custom domain to GitLab Pages:
1. On the left sidebar, select **Search or go to** and find your project.
-1. On the left sidebar, select **Deploy > Pages**.
+1. Select **Deploy > Pages**.
1. In the upper-right corner, select **New Domain**.
1. In **Domain**, enter the domain name.
1. Optional. In **Certificate**, turn off the **Automatic certificate management using Let's Encrypt** toggle to add an [SSL/TLS certificate](#adding-an-ssltls-certificate-to-pages). You can also add the certificate and key later.
@@ -158,7 +158,7 @@ If you're using Cloudflare, check
After you have added all the DNS records:
1. On the left sidebar, select **Search or go to** and find your project.
-1. On the left sidebar, select **Deploy > Pages**.
+1. Select **Deploy > Pages**.
1. Next to the domain name, select **Edit**.
1. In **Verification status**, select **Retry verification** (**{retry}**).
@@ -287,7 +287,7 @@ domain (as long as you've set a valid certificate for it).
To enable this setting:
1. On the left sidebar, select **Search or go to** and find your project.
-1. On the left sidebar, select **Deploy > Pages**.
+1. Select **Deploy > Pages**.
1. Select the **Force HTTPS (requires valid certificates)** checkbox.
1. Select **Save changes**.
diff --git a/doc/user/project/pages/getting_started/pages_from_scratch.md b/doc/user/project/pages/getting_started/pages_from_scratch.md
index 9de2703b82b..73583eefdda 100644
--- a/doc/user/project/pages/getting_started/pages_from_scratch.md
+++ b/doc/user/project/pages/getting_started/pages_from_scratch.md
@@ -70,7 +70,7 @@ This specific Ruby image is maintained on [DockerHub](https://hub.docker.com/_/r
Edit your `.gitlab-ci.yml` file and add this text as the first line:
```yaml
-image: ruby:2.7
+image: ruby:3.2
```
If your SSG needs [NodeJS](https://nodejs.org/) to build, you must specify an
@@ -156,7 +156,7 @@ pages:
Your `.gitlab-ci.yml` file should now look like this:
```yaml
-image: ruby:2.7
+image: ruby:3.2
pages:
script:
@@ -185,7 +185,7 @@ GitLab Pages daemon. GitLab runs it in the background and doesn't use a runner.
## Other options for your CI/CD file
If you want to do more advanced tasks, you can update your `.gitlab-ci.yml` file
-with [any of the available settings](../../../../ci/yaml/index.md). You can validate
+with [other CI/CD YAML keywords](../../../../ci/yaml/index.md). You can validate
your `.gitlab-ci.yml` file with the [CI Lint](../../../../ci/lint.md) tool that's included with GitLab.
The following topics show other examples of other options you can add to your CI/CD file.
@@ -198,7 +198,7 @@ First, add a `workflow` section to force the pipeline to run only when changes a
pushed to branches:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -218,7 +218,7 @@ Then configure the pipeline to run the job for the
[default branch](../../repository/branches/default.md) (here, `main`) only.
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -249,7 +249,7 @@ To specify a stage for your job to run in,
add a `stage` line to your CI file:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -273,7 +273,7 @@ Now add another job to the CI file, telling it to
test every push to every branch **except** the `main` branch:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -325,7 +325,7 @@ for both jobs, `pages` and `test`.
Move these commands to a `before_script` section:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -366,7 +366,7 @@ This example caches Jekyll dependencies in a `vendor` directory
when you run `bundle install`:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md
index d658a09e760..00dfe0c66d9 100644
--- a/doc/user/project/pages/index.md
+++ b/doc/user/project/pages/index.md
@@ -226,7 +226,7 @@ Some other examples of mixing [variables](../../../ci/variables/index.md) with s
### Use multiple deployments to create pages environments
-You can use multiple GitLap Pages deployments to create a new [environment](../../../ci/environments/index.md).
+You can use multiple GitLab Pages deployments to create a new [environment](../../../ci/environments/index.md).
For example:
```yaml
diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md
index 42a05e0b1bb..9f40b4d64af 100644
--- a/doc/user/project/pages/introduction.md
+++ b/doc/user/project/pages/introduction.md
@@ -133,8 +133,8 @@ pages:
artifacts:
paths:
- public
- only:
- - main
+ rules:
+ - if: $CI_COMMIT_BRANCH == "main"
```
### `.gitlab-ci.yml` for a static site generator
@@ -145,7 +145,7 @@ See this document for a [step-by-step guide](getting_started/pages_from_scratch.
Remember that GitLab Pages are by default branch/tag agnostic and their
deployment relies solely on what you specify in `.gitlab-ci.yml`. You can limit
-the `pages` job with the [`only` parameter](../../../ci/yaml/index.md#only--except),
+the `pages` job with [`rules:if`](../../../ci/yaml/index.md#rulesif),
whenever a new commit is pushed to a branch used specifically for your
pages.
@@ -175,8 +175,8 @@ pages:
artifacts:
paths:
- public
- only:
- - pages
+ rules:
+ - if: '$CI_COMMIT_REF_NAME == "pages"'
```
See an example that has different files in the [`main` branch](https://gitlab.com/pages/jekyll-branched/tree/main)
diff --git a/doc/user/project/pages/pages_access_control.md b/doc/user/project/pages/pages_access_control.md
index 1c7aa0f182c..07b41f391ba 100644
--- a/doc/user/project/pages/pages_access_control.md
+++ b/doc/user/project/pages/pages_access_control.md
@@ -48,7 +48,8 @@ can access the website.
To sign out of your GitLab Pages website, revoke the application access token
for GitLab Pages:
-1. In the top menu, select your profile, and then select **Settings**.
-1. On the left sidebar, select **Applications**.
-1. Scroll to the **Authorized applications** section, find the **GitLab Pages**
- entry, and select its **Revoke** button.
+1. On the left sidebar, select your avatar.
+1. Select **Edit profile**.
+1. Select **Applications**.
+1. In the **Authorized applications** section, find the **GitLab Pages**
+ entry, and select **Revoke**.
diff --git a/doc/user/project/pages/redirects.md b/doc/user/project/pages/redirects.md
index d13f30060e7..b88e7d2d376 100644
--- a/doc/user/project/pages/redirects.md
+++ b/doc/user/project/pages/redirects.md
@@ -26,7 +26,7 @@ are supported.
| Rewrites (other than `200`) | **{dotted-circle}** No | `/en/* /en/404.html 404` |
| Query parameters | **{dotted-circle}** No | `/store id=:id /blog/:id 301` |
| Force ([shadowing](https://docs.netlify.com/routing/redirects/rewrites-proxies/#shadowing)) | **{dotted-circle}** No | `/app/ /app/index.html 200!` |
-| Domain-level redirects | **{dotted-circle}** No | `http://blog.example.com/* https://www.example.com/blog/:splat 301` |
+| [Domain-level redirects](#domain-level-redirects) | **{check-circle}** Yes | `http://blog.example.com/* https://www.example.com/blog/:splat 301` |
| Redirect by country or language | **{dotted-circle}** No | `/ /anz 302 Country=au,nz` |
| Redirect by role | **{dotted-circle}** No | `/admin/* 200! Role=admin` |
@@ -119,6 +119,31 @@ request matches the `from`:
This status code can be used in combination with [splat rules](#splats) to dynamically
rewrite the URL.
+## Domain-level redirects
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/936) in GitLab 16.8 [with a flag](../../../administration/feature_flags.md) named `FF_ENABLE_DOMAIN_REDIRECT`. Disabled by default.
+
+To create a domain-level redirect, add a domain-level path (beginning with `http://`
+or `https://`) to either:
+
+- The `to` path only.
+- The `from` and `to` paths.
+
+The supported [HTTP status codes](#http-status-codes) are `301` and `302`:
+
+```plaintext
+# 301 permanent redirect
+http://blog.example.com/file_1.html https://www.example.com/blog/file_1.html 301
+/file_2.html https://www.example.com/blog/file_2.html 301
+
+# 302 temporary redirect
+http://blog.example.com/file_3.html https://www.example.com/blog/file_3.html 302
+/file_4.html https://www.example.com/blog/file_4.html 302
+```
+
+Domain-level redirects can be used in combination with [splat rules](#splats) (including splat placeholders)
+to dynamically rewrite the URL path.
+
## Splats
> [Introduced](https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/458) in GitLab 14.3.
diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md
index 0377ab389a5..60b862a4d3b 100644
--- a/doc/user/project/protected_branches.md
+++ b/doc/user/project/protected_branches.md
@@ -395,6 +395,6 @@ third-party Git clients.
### Branch names are case-sensitive
-Branch names in `git` are case-sensitive. When configuring your protected branch
-or [target branch rule](repository/branches/index.md#configure-rules-for-target-branches),
+Branch names in `git` are case-sensitive. When configuring your protected branch,
+or your [target branch workflow](repository/branches/index.md#configure-workflows-for-target-branches),
`dev` is not the same `DEV` or `Dev`.
diff --git a/doc/user/project/releases/index.md b/doc/user/project/releases/index.md
index 6c31b2ad5d3..1d721d71444 100644
--- a/doc/user/project/releases/index.md
+++ b/doc/user/project/releases/index.md
@@ -70,7 +70,7 @@ You should create a release as one of the last steps in your CI/CD pipeline.
Prerequisites:
- You must have at least the Developer role for a project. For more information, read
-[Release permissions](#release-permissions).
+ [Release permissions](#release-permissions).
To create a release in the Releases page:
diff --git a/doc/user/project/releases/release_fields.md b/doc/user/project/releases/release_fields.md
index c74ebaab89d..7c45a510877 100644
--- a/doc/user/project/releases/release_fields.md
+++ b/doc/user/project/releases/release_fields.md
@@ -50,7 +50,8 @@ A release contains the following types of assets:
### Source code
GitLab automatically generates `zip`, `tar.gz`, `tar.bz2`, and `tar`
-archived source code from the given Git tag. These are read-only assets.
+archived source code from the given Git tag. These assets are read-only,
+and [can be downloaded](../repository/index.md#download-the-code-in-a-repository).
### Links
diff --git a/doc/user/project/remote_development/connect_machine.md b/doc/user/project/remote_development/connect_machine.md
index cf46774741c..b37a2c5fc0f 100644
--- a/doc/user/project/remote_development/connect_machine.md
+++ b/doc/user/project/remote_development/connect_machine.md
@@ -4,7 +4,7 @@ group: IDE
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Tutorial: Connect a remote machine to the Web IDE **(FREE ALL BETA)**
+# Tutorial: Connect a remote machine to the Web IDE **(FREE ALL)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/371084) in GitLab 15.7.
@@ -13,9 +13,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
FLAG:
On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available. The feature is not ready for production use.
-WARNING:
-This feature is in [Beta](../../../policy/experiment-beta-support.md#beta) and subject to change without notice.
-
This tutorial shows you how to:
- Create a development environment outside of GitLab.
diff --git a/doc/user/project/remote_development/index.md b/doc/user/project/remote_development/index.md
index ac8d7102e40..65445e54949 100644
--- a/doc/user/project/remote_development/index.md
+++ b/doc/user/project/remote_development/index.md
@@ -4,7 +4,7 @@ group: IDE
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Remote development **(FREE ALL BETA)**
+# Remote development **(FREE ALL)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/371084) in GitLab 15.7.
@@ -13,9 +13,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
FLAG:
On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available. The feature is not ready for production use.
-WARNING:
-This feature is in [Beta](../../../policy/experiment-beta-support.md#beta) and subject to change without notice.
-
You can use remote development to write and compile code hosted on GitLab.
With remote development, you can:
diff --git a/doc/user/project/repository/branches/index.md b/doc/user/project/repository/branches/index.md
index 0a0cbcbb9c8..d6bcae57322 100644
--- a/doc/user/project/repository/branches/index.md
+++ b/doc/user/project/repository/branches/index.md
@@ -35,7 +35,7 @@ To create a new branch from the GitLab UI:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Code > Branches**.
-1. On the top right, select **New branch**.
+1. In the upper-right corner, select **New branch**.
1. Enter a **Branch name**.
1. In **Create from**, select the base of your branch: an existing branch, an existing
tag, or a commit SHA.
@@ -283,62 +283,64 @@ To do this:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Code > Branches**.
-1. On the upper right corner of the page, select **More** **{ellipsis_v}**.
+1. In the upper right corner of the page, select **More** **{ellipsis_v}**.
1. Select **Delete merged branches**.
1. In the dialog, enter the word `delete` to confirm, then select **Delete merged branches**.
-## Configure rules for target branches **(PREMIUM ALL)**
+## Configure workflows for target branches **(PREMIUM ALL)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127115) in GitLab 16.4 [with a flag](../../../../administration/feature_flags.md) named `target_branch_rules_flag`. Enabled by default.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136431) in GitLab 16.7.
Some projects use multiple long-term branches for development, like `develop` and `qa`.
In these projects, you might want to keep `main` as the default branch, but expect
-merge requests to target `develop` or `qa` instead. Target branch rules help ensure
+merge requests to target `develop` or `qa` instead. Target branch workflows help ensure
merge requests target the appropriate development branch for your project.
-When you create a merge request, the rule checks the name of the branch. If the
-branch name matches the rule, the merge request targets the branch you specify
-in the rule. If the branch name does not match, the merge request targets the
+When you create a merge request, the workflow checks the name of the branch. If the
+branch name matches the workflow, the merge request targets the branch you specify. If the branch name does not match, the merge request targets the
default branch of the project.
+Rules are processed on a "first-match" basis - if two rules match the same branch name, the top-most rule is applied.
+
Prerequisites:
- You must have at least the Maintainer role.
-To create a target branch rule:
+To create a target branch workflow:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > Merge requests**.
-1. Select **Add target branch rule**.
-1. For **Rule name**, provide a string or wild card to compare against branch names.
-1. Select the **Target branch** to use when the branch name matches the **Rule name**.
+1. Scroll down to **Merge request branch workflow**
+1. Select **Add branch target**.
+1. For **Branch name pattern**, provide a string or wild card to compare against branch names.
+1. Select the **Target branch** to use when the branch name matches the **Branch name pattern**.
1. Select **Save**.
### Example
-You could configure your project to have the following target branch rules:
+You could configure your project to have the following target branch workflows:
-| Rule name | Target branch |
+| Branch name pattern | Target branch |
|-------------|---------------|
| `feature/*` | `develop` |
| `bug/*` | `develop` |
| `release/*` | `main` |
-These rules simplify the process of creating merge requests for a project that:
+These target branches simplify the process of creating merge requests for a project that:
- Uses `main` to represent the deployed state of your application.
- Tracks current, unreleased development work in another long-running branch, like `develop`.
-If your workflow initially places new features in `develop` instead of `main`, these rules
+If your workflow initially places new features in `develop` instead of `main`, these target branches
ensure all branches matching either `feature/*` or `bug/*` do not target `main` by mistake.
-When you're ready to release to `main`, create a branch named `release/*`, and the rules
+When you're ready to release to `main`, create a branch named `release/*`, and
ensure this branch targets `main`.
-## Delete a target branch rule
+## Delete a target branch workflow
-When you remove a target branch rule, existing merge requests remain unchanged.
+When you remove a target branch workflow, existing merge requests remain unchanged.
Prerequisites:
@@ -348,7 +350,7 @@ To do this:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > Merge requests**.
-1. Select **Delete** on the rule you want to delete.
+1. Select **Delete** on the branch target you want to delete.
## Related topics
diff --git a/doc/user/project/repository/code_suggestions/index.md b/doc/user/project/repository/code_suggestions/index.md
index 9e52da6068c..ed9eeac1c2c 100644
--- a/doc/user/project/repository/code_suggestions/index.md
+++ b/doc/user/project/repository/code_suggestions/index.md
@@ -4,40 +4,45 @@ group: Code Creation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Code Suggestions **(FREE ALL BETA)**
+# Code Suggestions **(FREE ALL)**
> - [Introduced support for Google Vertex AI Codey APIs](https://gitlab.com/groups/gitlab-org/-/epics/10562) in GitLab 16.1.
> - [Removed support for GitLab native model](https://gitlab.com/groups/gitlab-org/-/epics/10752) in GitLab 16.2.
> - [Introduced support for Code Generation](https://gitlab.com/gitlab-org/gitlab/-/issues/415583) in GitLab 16.3.
-
-WARNING:
-This feature is in [Beta](../../../../policy/experiment-beta-support.md#beta).
-Beta users should read about the [known limitations](#known-limitations). We look forward to hearing your [feedback](#feedback).
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/435271) in GitLab 16.7.
Write code more efficiently by using generative AI to suggest code while you're developing.
-With Code Suggestions, you get:
+With [GitLab Duo Code Suggestions](https://about.gitlab.com/solutions/code-suggestions/), you get:
-- Code Completion, which suggests completions the current line you are typing. These suggestions are usually low latency.
-- Code Generation, which generates code based on a natural language code comment block. Generating code can exceed multiple seconds.
+- Code Completion, which suggests completions to the current line you are typing. These suggestions are usually low latency.
+- Code Generation, which generates code based on a natural language code
+ comment block. Write a comment like `# Type more here` to generate the
+ appropriate code, based on the context of your comment and the rest of your code.
+ - Algorithms or large code blocks may take more than 10 seconds to generate.
+ - Streaming of code generation responses is supported in VS Code, leading to faster average response times. Other supported IDEs offer slower response times and will return the generated code in a single block.
## Start using Code Suggestions
GitLab Duo Code Suggestions are available:
-- On [self-managed](self_managed.md) and [SaaS](saas.md). View these pages to get started.
+- In the Premium and Ultimate tier for [self-managed](self_managed.md), and across all tiers for [SaaS](saas.md). View these pages to get started.
- In VS Code, Microsoft Visual Studio, JetBrains IDEs, and Neovim. You must have the corresponding GitLab extension installed.
- In the GitLab Web IDE.
<div class="video-fallback">
- <a href="https://youtu.be/wAYiy05fjF0">View how to setup and use GitLab Duo Code Suggestions</a>.
+ <a href="https://youtu.be/xQUlrbIWo8o">View how to setup and use GitLab Duo Code Suggestions</a>.
</div>
<figure class="video-container">
- <iframe src="https://www.youtube-nocookie.com/embed/wAYiy05fjF0" frameborder="0" allowfullscreen> </iframe>
+ <iframe src="https://www.youtube-nocookie.com/embed/xQUlrbIWo8o" frameborder="0" allowfullscreen> </iframe>
</figure>
-During Beta, usage of Code Suggestions is governed by the [GitLab Testing Agreement](https://about.gitlab.com/handbook/legal/testing-agreement/).
-Learn about [data usage when using Code Suggestions](#code-suggestions-data-usage). As Code Suggestions matures to General Availability it will be governed by our [AI Functionality Terms](https://about.gitlab.com/handbook/legal/ai-functionality-terms/).
+Code Suggestions is available and free to use until February 15, 2024:
+
+- Before February 15, 2024, usage of Code Suggestions is governed by the
+ [GitLab Testing Agreement](https://about.gitlab.com/handbook/legal/testing-agreement/).
+- On February 15, 2024, Code Suggestions becomes a paid add-on and will be governed by our
+ [AI Functionality Terms](https://about.gitlab.com/handbook/legal/ai-functionality-terms/).
## Supported languages
@@ -51,7 +56,11 @@ For languages not listed in the following table, Code Suggestions might not func
### Supported languages in IDEs
-Editor support for languages is documented in the following table.
+Code Suggestions is aware of common popular programming concepts and
+infrastructure-as-code interfaces, like Kubernetes Resource Model (KRM),
+Google Cloud CLI, and Terraform.
+
+The editor supports these languages:
| Language | VS Code | JetBrains IDEs | Visual Studio | Neovim |
|------------------|------------------------|------------------------|------------------------|--------|
@@ -61,16 +70,14 @@ Editor support for languages is documented in the following table.
| Google SQL | **{dotted-circle}** No | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Java | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| JavaScript | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
-| Kotlin | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
+| Kotlin | **{check-circle}** Yes (Requires third-party extension providing Kotlin support) | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| PHP | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Python | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Ruby | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Rust | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
-| Scala | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
+| Scala | **{check-circle}** Yes (Requires third-party extension providing Scala support) | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Swift | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| TypeScript | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
-| Google Cloud | **{dotted-circle}** No | **{dotted-circle}** No | **{dotted-circle}** No | **{dotted-circle}** No |
-| Kubernetes Resource Model (KRM) | **{dotted-circle}** No | **{dotted-circle}** No | **{dotted-circle}** No | **{dotted-circle}** No |
| Terraform | **{check-circle}** Yes (Requires third-party extension providing Terraform support) | **{check-circle}** Yes | **{dotted-circle}** No | **{check-circle}** Yes (Requires third-party extension providing the `terraform` file type) |
NOTE:
@@ -81,18 +88,13 @@ plugin support. Refer to the JetBrains documentation for specifics on your IDE.
Code Suggestions supports a variety of popular editors including:
-- VS Code, using [the VS Code GitLab Workflow extension](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow).
+- VS Code, using [the VS Code GitLab Workflow extension](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow). Supports streaming responses for code generation.
- [GitLab WebIDE (VS Code in the Cloud)](../../../project/web_ide/index.md), with no additional configuration.
- Microsoft Visual Studio, using the [Visual Studio GitLab extension](https://marketplace.visualstudio.com/items?itemName=GitLab.GitLabExtensionForVisualStudio).
- JetBrains IDEs, using the [GitLab plugin](https://plugins.jetbrains.com/plugin/22325-gitlab).
- Neovim, using the [`gitlab.vim` plugin](https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim).
-A [GitLab Language Server for Code Suggestions](https://gitlab.com/gitlab-org/editor-extensions/gitlab-language-server-for-code-suggestions)
-is also in process.
-This improvement should result in:
-
-- Faster iteration and standardization of the IDE extensions.
-- The ability to use Code Suggestions even when an official editor extension isn't available.
+A [GitLab Language Server](https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp) is used in VS Code, Visual Studio, and Neovim. The Language Server supports faster iteration across more platforms. Users can also configure it to support Code Suggestions in IDEs where GitLab doesn't provide official support.
## Code Suggestions data usage
@@ -120,7 +122,7 @@ For self-managed instances that have enabled Code Suggestions and SaaS accounts,
### Inference window context
-Code Suggestions inferences against the currently opened file, the content before and after the cursor, the filename, and the extension type. For more information on possible future context expansion to improve the quality of suggestions, see [epic 11669](https://gitlab.com/groups/gitlab-org/-/epics/11669).
+Code Suggestions inferences against the currently opened file, the content before and after the cursor, the file name, and the extension type. For more information on possible future context expansion to improve the quality of suggestions, see [epic 11669](https://gitlab.com/groups/gitlab-org/-/epics/11669).
### Training data
@@ -133,14 +135,18 @@ For more information on GitLab Code Suggestions data [sub-processors](https://ab
## Known limitations
-While in Beta, we are working on improving the accuracy of overall generated content.
+We are continuing to work on the accuracy of overall generated content.
However, Code Suggestions may generate suggestions that are:
-- Low-quality
-- Incomplete
-- Produce failed pipelines
-- Insecure code
-- Offensive or insensitive
+- Irrelevant.
+- Incomplete.
+- Results in failed pipelines.
+- Potentially insecure.
+- Offensive or insensitive.
+
+When using Code Suggestions, [code review best practice](../../../../development/code_review.md) still applies.
+
+Let us know if you have [feedback](#feedback).
## Progressive enhancement
@@ -151,4 +157,11 @@ Code Suggestions do not prevent you from writing code in your IDE.
## Feedback
-Report issues in the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/405152).
+Let us know about your Code Suggestions experience in [issue 435783](https://gitlab.com/gitlab-org/gitlab/-/issues/435783).
+
+## Troubleshooting
+
+### Disable Code Suggestions
+
+Individual users can disable Code Suggestions by disabling the feature in their
+[installed IDE editor extension](index.md#supported-editor-extensions).
diff --git a/doc/user/project/repository/code_suggestions/repository_xray.md b/doc/user/project/repository/code_suggestions/repository_xray.md
new file mode 100644
index 00000000000..d851ee94e34
--- /dev/null
+++ b/doc/user/project/repository/code_suggestions/repository_xray.md
@@ -0,0 +1,60 @@
+---
+stage: Create
+group: Code Creation
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Repository X-Ray **(PREMIUM)**
+
+Repository X-Ray enhances GitLab Duo Code Suggestions by providing additional context to improve the accuracy and relevance of code recommendations.
+
+Repository X-Ray gives the code assistant more insight into the project's codebase and dependencies to generate better code suggestions. It does this by analyzing key project configuration files such as `Gemfile.lock`, `package.json`, and `go.mod` to build additional context.
+
+By understanding the frameworks, libraries and other dependencies in use, Repository X-Ray helps the code assistant tailor suggestions to match the coding patterns, styles and technologies used in the project. This results in code recommendations that integrate more seamlessly and follow best practices for that stack.
+
+## Supported languages and package managers
+
+| Language | Package Manager | Configuration File |
+| ---------- |-----------------| -------------------- |
+| Go | Go Modules | `go.mod` |
+| JavaScript | NPM, Yarn | `package.json` |
+| Ruby | RubyGems | `Gemfile.lock` |
+| Python | Poetry | `pyproject.toml` |
+| Python | Pip | `requirements.txt` |
+| Python | Conda | `environment.yml` |
+
+## Enable Repository X-Ray
+
+Prerequisites:
+
+- You must have access to [GitLab Duo Code Suggestions](index.md) in the project.
+- GitLab Runner must be set up and enabled for the project, because Repository X-Ray runs analysis pipelines using GitLab runners.
+
+To enable Repository X-Ray, add the following definition job to the project's `.gitlab-ci.yml`.
+
+```yaml
+xray:
+ stage: build
+ image: registry.gitlab.com/gitlab-org/code-creation/repository-x-ray:latest
+ allow_failure: true
+ rules:
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ variables:
+ OUTPUT_DIR: reports
+ script:
+ - x-ray-scan -p "$CI_PROJECT_DIR" -o "$OUTPUT_DIR"
+ artifacts:
+ reports:
+ repository_xray: "$OUTPUT_DIR/*/*.json"
+```
+
+- The `$OUTPUT_DIR` environment variable defines the:
+ - Output directory for reports.
+ - Path that artifacts are uploaded from.
+- The added rules restrict the job to the default branch only. Restricting the job this way ensures development changes do not impact the baseline X-Ray data used for production code suggestions.
+
+After the initial x-ray job completes and uploads the repository analysis reports, no further action is required. Repository X-Ray automatically enriches all code generation requests from that point forward.
+
+The X-Ray data for your project updates each time a CI/CD pipeline containing the `xray`
+job is run. To learn more about pipeline configuration and triggers, see the
+[pipelines documentation](../../../../ci/pipelines/merge_request_pipelines.md).
diff --git a/doc/user/project/repository/code_suggestions/saas.md b/doc/user/project/repository/code_suggestions/saas.md
index 1af5eef585c..4b1cc762406 100644
--- a/doc/user/project/repository/code_suggestions/saas.md
+++ b/doc/user/project/repository/code_suggestions/saas.md
@@ -4,13 +4,14 @@ group: Code Creation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Code Suggestions on GitLab SaaS **(FREE SAAS BETA)**
+# Code Suggestions on GitLab SaaS **(FREE SAAS)**
> - [Introduced](https://about.gitlab.com/releases/2023/02/22/gitlab-15-9-released/#code-suggestions-available-in-closed-beta) in GitLab 15.9 as [Beta](../../../../policy/experiment-beta-support.md#beta) for early access Ultimate customers on GitLab.com.
> - [Enabled](https://gitlab.com/gitlab-org/gitlab/-/issues/408104) as opt-in with GitLab 15.11 as [Beta](../../../../policy/experiment-beta-support.md#beta).
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/408158) from GitLab Ultimate to GitLab Premium in 16.0.
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/410801) from GitLab Premium to GitLab Free in 16.0.
> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121079) in GitLab 16.1.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/435271) in GitLab 16.7.
Write code more efficiently by using generative AI to suggest code while you're developing.
@@ -20,14 +21,14 @@ Learn about [data usage when using Code Suggestions](index.md#code-suggestions-d
## Enable Code Suggestions
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121079) in GitLab 16.1 as [Beta](../../../../policy/experiment-beta-support.md#beta).
-> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8. Available to a percentage of users.
+> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8. UI user setting removed.
A group owner must
[enable Code Suggestions for your top-level group](../../../group/manage.md#enable-code-suggestions-for-a-group).
NOTE:
If you are having issues enabling Code Suggestions, view the
-[troubleshooting guide](troubleshooting.md#code-suggestions-arent-displayed).
+[troubleshooting guide](troubleshooting.md#code-suggestions-are-not-displayed).
## Use Code Suggestions
@@ -35,19 +36,23 @@ Prerequisites:
- You must have configured Code Suggestions in a
[supported IDE editor extension](index.md#supported-editor-extensions).
-- Code Suggestions must be enabled for:
- - [The top-level group](../../../group/manage.md#enable-code-suggestions-for-a-group).
- - [Your own account](../../../profile/preferences.md#enable-code-suggestions), if your
- account is not part of the percentage rollout.
+- Code Suggestions must be enabled for [the top-level group](../../../group/manage.md#enable-code-suggestions-for-a-group).
To use Code Suggestions:
-1. Determine if your user account is part of the percentage rollout. See
- [Enable Code Suggestions](../../../profile/preferences.md#enable-code-suggestions)
- for more information.
1. Author your code. As you type, suggestions are displayed.
Code Suggestions provide code snippets or complete the current line, depending on the cursor position.
-1. Describe the requirements in natural language. Be concise and specific. Code Suggestions generates functions and code snippets as appropriate.
+1. Describe the requirements in natural language. Code Suggestions generates functions and code snippets based on the context provided. To get the best results from code generation:
+ - Be as specific as possible while remaining concise. State the outcome you want to generate (for example, a function) and provide details on what you want to achieve. Add additional information, such as the framework or library you want to use when applicable.
+ For example, to create a Python web service with some specific requirements, you might write something similar to the following:
+
+ ```plaintext
+ # Create a web service using Tornado that allows a user to log in, run a security scan, and review the scan results.
+ # Each action (log in, run a scan, and review results) should be its own resource in the web service
+ ...
+ ```
+
+ - Add a space or go to a new line after each comment. This tells the code generator that you have completed your instructions.
1. To accept a suggestion, press <kbd>Tab</kbd>.
1. To ignore a suggestion, keep typing as you usually would.
1. To explicitly reject a suggestion, press <kbd>Esc</kbd>.
diff --git a/doc/user/project/repository/code_suggestions/self_managed.md b/doc/user/project/repository/code_suggestions/self_managed.md
index 26850bc8b5f..8cd499c13d0 100644
--- a/doc/user/project/repository/code_suggestions/self_managed.md
+++ b/doc/user/project/repository/code_suggestions/self_managed.md
@@ -4,12 +4,13 @@ group: Code Creation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Code Suggestions on self-managed GitLab **(SELF BETA)**
+# Code Suggestions on self-managed GitLab **(PREMIUM SELF)**
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/10653) in GitLab 16.1 as [Beta](../../../../policy/experiment-beta-support.md#beta) on self-managed GitLab.
> - [Introduced support for Google Vertex AI Codey APIs](https://gitlab.com/groups/gitlab-org/-/epics/10562) in GitLab 16.1.
> - [Removed support for GitLab native model](https://gitlab.com/groups/gitlab-org/-/epics/10752) in GitLab 16.2.
> - Code Suggestions in the GitLab WebIDE enabled for all GitLab-hosted customers.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/435271) in GitLab 16.7.
Write code more efficiently by using generative AI to suggest code while you're developing.
@@ -28,16 +29,19 @@ Learn about [data usage when using Code Suggestions](index.md#code-suggestions-d
## Enable Code Suggestions on self-managed GitLab
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/10653) in GitLab 16.1 as [Beta](../../../../policy/experiment-beta-support.md#beta).
-> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8. Available to a percentage of users.
+> - [Enabled self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8.
When you enable Code Suggestions for your self-managed instance, you:
- Agree to the [GitLab testing agreement](https://about.gitlab.com/handbook/legal/testing-agreement/).
- Acknowledge that GitLab sends data from the instance, including personal data, to GitLab.com infrastructure.
-How you enable Code Suggestions for your instance differs depending on your version of GitLab.
+How you enable Code Suggestions for your instance differs depending on your
+version of GitLab. This setting is visible only in self-managed GitLab instances.
-### GitLab 16.3 and later **(PREMIUM)**
+::Tabs
+
+:::TabTitle GitLab 16.3 and later
Prerequisites:
@@ -53,17 +57,12 @@ To enable Code Suggestions for your self-managed GitLab instance:
In GitLab 16.3, you do not need to enter anything into the **Personal access token** field.
In GitLab 16.4 and later, there is no **Personal access token** field.
1. Select **Save changes**.
-
-This setting is visible only in self-managed GitLab instances.
-
-WARNING:
-In GitLab 16.2 and earlier, if you clear the **Turn on Code Suggestions for this instance** checkbox, the users in your instance can still use Code Suggestions for up to one hour, until the issued JSON web token (JWT) expires.
-
-To make sure Code Suggestions works immediately, you must [manually synchronize your subscription](#manually-synchronize-your-subscription).
+1. To make sure Code Suggestions works immediately, you must
+ [manually synchronize your subscription](#manually-synchronize-your-subscription).
The users in your instance can now use Code Suggestions.
-### GitLab 16.2 and earlier
+:::TabTitle GitLab 16.2 and earlier
FLAG:
On self-managed GitLab 16.0 and earlier, GitLab Duo Code Suggestions is not available. To use this feature, you must have GitLab 16.1 or later. For optimal performance and full feature access, you should upgrade to GitLab 16.3 or later, which supports cloud licensing.
@@ -75,7 +74,7 @@ Prerequisites:
- You have a [GitLab SaaS account](https://gitlab.com/users/sign_up). You do not need to have a GitLab SaaS subscription.
NOTE:
-If you do not have a customer success manager, you cannot participate in the free trial of Code Suggestions on self-managed GitLab. Upgrade to GitLab 16.3 to [perform self-service onboarding](#gitlab-163-and-later).
+If you do not have a customer success manager, you cannot participate in the free trial of Code Suggestions on self-managed GitLab. Upgrade to GitLab 16.3 or later to perform self-service onboarding.
Then, you will:
@@ -83,7 +82,7 @@ Then, you will:
1. Enable Code Suggestions for the instance.
1. [Request early access](#request-access-to-code-suggestions) to the Code Suggestions Beta.
-#### Enable Code Suggestions for your SaaS account
+### Enable Code Suggestions for your SaaS account
To enable Code Suggestions for your GitLab SaaS account:
@@ -94,7 +93,7 @@ To enable Code Suggestions for your GitLab SaaS account:
1. In the **Code Suggestions** section, select **Enable Code Suggestions**.
1. Select **Save changes**.
-#### Enable Code Suggestions for the instance
+### Enable Code Suggestions for the instance
To enable Code Suggestions for your self-managed GitLab instance:
@@ -110,7 +109,9 @@ This setting is visible only in self-managed GitLab instances.
WARNING:
If you clear the **Turn on Code Suggestions for this instance** checkbox, the users in your instance can still use Code Suggestions for up to one hour, until the issued JSON web token (JWT) expires.
-#### Request access to Code Suggestions
+::EndTabs
+
+### Request access to Code Suggestions
GitLab provisions access on a customer-by-customer basis for Code Suggestions
on self-managed instances. To request access, contact your customer success manager.
@@ -120,7 +121,7 @@ Your customer success manager then provisions access by commenting on [issue 415
After GitLab has provisioned access to Code Suggestions for your instance,
the users in your instance can now enable Code Suggestions.
-### Configure network and proxy settings
+## Configure network and proxy settings
Configure any firewalls to allow outbound connections to `https://codesuggestions.gitlab.com/`.
@@ -128,7 +129,7 @@ If your GitLab instance uses an HTTP proxy server to access the internet, ensure
the server is configured to allow outbound connections, including the
[`gitlab_workhorse` environment variable](https://docs.gitlab.com/omnibus/settings/environment-variables.html).
-### Upgrade GitLab
+## Upgrade GitLab
In GitLab 16.3 and later, GitLab is enforcing the cloud licensing requirement for Code Suggestions:
@@ -138,11 +139,11 @@ In GitLab 16.3 and later, GitLab is enforcing the cloud licensing requirement fo
If you have a GitLab Free subscription and upgrade to GitLab 16.3 or later,
to continue having early access to Code Suggestions, you must:
-1. Have a [subscription that supports cloud licensing](https://about.gitlab.com/pricing/).
+1. Have a [subscription that supports cloud licensing](https://about.gitlab.com/pricing/licensing-faq/cloud-licensing/).
1. Make sure you have the latest version of your [IDE extension](index.md#supported-editor-extensions).
1. [Manually synchronize your subscription](#manually-synchronize-your-subscription).
-#### Manually synchronize your subscription
+### Manually synchronize your subscription
You must [manually synchronize your subscription](../../../../subscriptions/self_managed/index.md#manually-synchronize-your-subscription-details) if either:
diff --git a/doc/user/project/repository/code_suggestions/troubleshooting.md b/doc/user/project/repository/code_suggestions/troubleshooting.md
index c18ea2dd26b..47327d7a28f 100644
--- a/doc/user/project/repository/code_suggestions/troubleshooting.md
+++ b/doc/user/project/repository/code_suggestions/troubleshooting.md
@@ -4,35 +4,34 @@ group: Code Creation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Troubleshooting Code Suggestions **(FREE ALL BETA)**
+# Troubleshooting Code Suggestions **(FREE ALL)**
When working with GitLab Duo Code Suggestions, you might encounter the following issues.
-## Code Suggestions aren't displayed
+## Code Suggestions are not displayed
If Code Suggestions are not displayed, and you have [installed a supported IDE extension](index.md#supported-editor-extensions), try the following troubleshooting steps.
-In GitLab, ensure Code Suggestions is enabled:
-
-- [For your user account](../../../profile/preferences.md#enable-code-suggestions).
-- [For **all** top-level groups your account belongs to](../../../group/manage.md#enable-code-suggestions-for-a-group). If you don't have a role that lets you view the top-level group's settings, contact a group owner.
+In GitLab, ensure Code Suggestions is enabled for **at least one**
+[top-level group your account belongs to](../../../group/manage.md#enable-code-suggestions-for-a-group).
+If you don't have a role that lets you view the top-level group's settings, contact a group owner.
### Code Suggestions not displayed in VS Code or GitLab WebIDE
-Check all the steps in [Code Suggestions aren't displayed](#code-suggestions-arent-displayed) first.
+Check all the steps in [Code Suggestions are not displayed](#code-suggestions-are-not-displayed) first.
If you are a self-managed user, ensure that Code Suggestions for the [GitLab WebIDE](../../../project/web_ide/index.md) are enabled. The same settings apply to VS Code as local IDE.
1. On the left sidebar, select **Extensions > GitLab Workflow**.
1. Select **Settings** (**{settings}**), and then select **Extension Settings**.
-1. In **GitLab > AI Assisted Code Suggestions**, select the **Enable code completion (Beta)**
+1. In **GitLab > AI Assisted Code Suggestions**, select the **Enable code completion**
checkbox.
If the settings are enabled, but Code Suggestions are still not displayed, try the following steps:
1. Enable the `Debug` checkbox in the GitLab Workflow **Extension Settings**.
1. Open the extension log in **View > Output** and change the dropdown list to **GitLab Workflow** as the log filter. The command palette command is `GitLab: Show Extension Logs`.
-1. Disable and re-enable the **Enable code completion (Beta)** checkbox.
+1. Disable and re-enable the **Enable code completion** checkbox.
1. Verify that the debug log contains similar output:
```shell
@@ -43,7 +42,7 @@ If the settings are enabled, but Code Suggestions are still not displayed, try t
### Code Suggestions not displayed in Microsoft Visual Studio
-Check all the steps in [Code Suggestions aren't displayed](#code-suggestions-arent-displayed) first.
+Check all the steps in [Code Suggestions are not displayed](#code-suggestions-are-not-displayed) first.
1. Ensure you have properly [set up the extension](https://gitlab.com/gitlab-org/editor-extensions/gitlab-visual-studio-extension#setup).
1. From the **Tools > Options** menu, find the **GitLab** option. Ensure **Log Level** is set to **Debug**.
diff --git a/doc/user/project/repository/git_blame.md b/doc/user/project/repository/git_blame.md
index a602638d244..f1fb118b8d5 100644
--- a/doc/user/project/repository/git_blame.md
+++ b/doc/user/project/repository/git_blame.md
@@ -34,6 +34,28 @@ to the left of the user avatar shows the general age of the commit. The newest
commits have a dark blue bar. As the age of the commit increases, the bar color
changes to light gray.
+### View blame directly in the file view
+<!--
+When feature flags `graphql_git_blame`, `blob_blame_info` and `highlight_js_worker` are removed,
+delete this section and update the steps in "View blame for a file".
+-->
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/430950) in GitLab 16.7 [with flags](../../../administration/feature_flags.md) named `graphql_git_blame`, `blob_blame_info` and `highlight_js_worker`. Enabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is available.
+To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `blob_blame_info`.
+On GitLab.com, this feature is available.
+
+When this feature is enabled, you can additionally view blame for a file directly from the file page.
+
+To do so:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Code > Repository**.
+1. Select the file you want to review.
+1. In the file header, select **Blame**, and go to the line you want to see.
+
### Blame previous commit
To see earlier revisions of a specific line:
diff --git a/doc/user/project/repository/gpg_signed_commits/index.md b/doc/user/project/repository/gpg_signed_commits/index.md
deleted file mode 100644
index 592041ef4e2..00000000000
--- a/doc/user/project/repository/gpg_signed_commits/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../signed_commits/gpg.md'
-remove_date: '2023-12-01'
----
-
-This document was moved to [another location](../signed_commits/gpg.md).
-
-<!-- This redirect file can be deleted after <2023-12-01>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md
index dd8ee61f6ae..550ff25e0b1 100644
--- a/doc/user/project/repository/index.md
+++ b/doc/user/project/repository/index.md
@@ -39,7 +39,7 @@ You can upload a file from the GitLab UI.
1. Go to the directory where you want to upload the file.
1. Next to the directory name, select the plus icon (**{plus}**) > **Upload file**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Upload file**.
@@ -85,7 +85,7 @@ Projects that contain a `.xcodeproj` or `.xcworkspace` directory can be cloned
into Xcode on macOS.
1. From the GitLab UI, go to the project's overview page.
-1. Select **Clone**.
+1. In the upper-right corner, select **Code**.
1. Select **Xcode**.
The project is cloned onto your computer and you are
@@ -101,7 +101,7 @@ Visual Studio Code:
- From the GitLab interface:
1. Go to the project's overview page.
- 1. Select **Clone**.
+ 1. In the upper-right corner, select **Code**.
1. Under **Open in your IDE**, select **Visual Studio Code (SSH)** or **Visual Studio Code (HTTPS)**.
1. Select a folder to clone the project into.
@@ -121,16 +121,15 @@ Prerequisites:
To do this:
1. Go to the project's overview page.
-1. Select **Clone**.
+1. In the upper-right corner, select **Code**.
1. Under **Open in your IDE**, select **IntelliJ IDEA (SSH)** or **IntelliJ IDEA (HTTPS)**.
## Download the code in a repository
-> Support for [including Git LFS blobs](../../../topics/git/lfs#lfs-objects-in-project-archives) was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/15079) in GitLab 13.5.
-
You can download the source code that's stored in a repository.
-1. Above the file list, select the download icon (**{download}**).
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Above the file list, select **Code**.
1. From the options, select the files you want to download.
- **Source code:**
diff --git a/doc/user/project/repository/managing_large_repositories.md b/doc/user/project/repository/managing_large_repositories.md
deleted file mode 100644
index 1fedd8da20c..00000000000
--- a/doc/user/project/repository/managing_large_repositories.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'monorepos/index.md'
-remove_date: '2023-12-17'
----
-
-This document was moved to [another location](monorepos/index.md).
-
-<!-- This redirect file can be deleted after <2023-12-17>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/repository/mirror/bidirectional.md b/doc/user/project/repository/mirror/bidirectional.md
index d4ab550cb8a..dc789d28a4f 100644
--- a/doc/user/project/repository/mirror/bidirectional.md
+++ b/doc/user/project/repository/mirror/bidirectional.md
@@ -39,7 +39,7 @@ instance can help reduce race conditions by syncing changes more frequently.
Prerequisites:
- You have configured the [push](push.md#set-up-a-push-mirror-to-another-gitlab-instance-with-2fa-activated)
-and [pull](pull.md#pull-from-a-remote-repository) mirrors in the upstream GitLab instance.
+ and [pull](pull.md#pull-from-a-remote-repository) mirrors in the upstream GitLab instance.
To create the webhook in the downstream instance:
diff --git a/doc/user/project/repository/mirror/index.md b/doc/user/project/repository/mirror/index.md
index 34a2757bb67..9d5048a4fed 100644
--- a/doc/user/project/repository/mirror/index.md
+++ b/doc/user/project/repository/mirror/index.md
@@ -208,4 +208,4 @@ Older versions of SSH may require you to remove `-E md5` from the command.
- [Troubleshooting](troubleshooting.md) for repository mirroring.
- Configure a [Pull Mirroring Interval](../../../../administration/instance_limits.md#pull-mirroring-interval)
- [Disable mirrors for a project](../../../../administration/settings/visibility_and_access_controls.md#enable-project-mirroring)
-- [Secrets file and mirroring](../../../../administration/backup_restore/backup_gitlab.md#when-the-secrets-file-is-lost)
+- [Secrets file and mirroring](../../../../administration/backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost)
diff --git a/doc/user/project/repository/mirror/push.md b/doc/user/project/repository/mirror/push.md
index 3aa4c768ebe..babe99441ef 100644
--- a/doc/user/project/repository/mirror/push.md
+++ b/doc/user/project/repository/mirror/push.md
@@ -161,7 +161,7 @@ To set up a mirror from GitLab to AWS CodeCommit:
1. Copy or download the special Git HTTPS user ID and password.
1. In the AWS CodeCommit console, create a new repository to mirror from your GitLab repository.
-1. Open your new repository, and then select **Clone URL > Clone HTTPS** (not **Clone HTTPS (GRC)**).
+1. Open your new repository, in the upper-right corner, select **Code > Clone HTTPS** (not **Clone HTTPS (GRC)**).
1. In GitLab, open the repository to be push-mirrored.
1. Select **Settings > Repository**, and then expand **Mirroring repositories**.
1. Fill in the **Git repository URL** field using this format, replacing
diff --git a/doc/user/project/repository/mirror/troubleshooting.md b/doc/user/project/repository/mirror/troubleshooting.md
index 57a9351e85d..f252c047072 100644
--- a/doc/user/project/repository/mirror/troubleshooting.md
+++ b/doc/user/project/repository/mirror/troubleshooting.md
@@ -215,3 +215,13 @@ Project.where(mirror: true).each do |project|
project.save
end
```
+
+## `The requested URL returned error: 301`
+
+When mirroring using the `http://` or `https://` protocols, be sure to specify the exact URL to the repository: `https://gitlab.example.com/group/project.git`
+
+HTTP redirects are not followed and omitting `.git` can result in a 301 error:
+
+```plaintext
+13:fetch remote: "fatal: unable to access 'https://gitlab.com/group/project': The requested URL returned error: 301\n": exit status 128.
+```
diff --git a/doc/user/project/repository/push_rules.md b/doc/user/project/repository/push_rules.md
index fc36748a8dd..b15d66e27fb 100644
--- a/doc/user/project/repository/push_rules.md
+++ b/doc/user/project/repository/push_rules.md
@@ -118,20 +118,20 @@ Some validation examples:
- Branches must start with `JIRA-`.
```plaintext
- `^JIRA-`
+ ^JIRA-
```
- Branches must end with `-JIRA`.
```plaintext
- `-JIRA$`
+ -JIRA$
```
- Branches must be between `4` and `15` characters long,
accepting only lowercase letters, numbers and dashes.
```plaintext
- `^[a-z0-9\\-]{4,15}$`
+ ^[a-z0-9\\-]{4,15}$
```
## Prevent unintended consequences
diff --git a/doc/user/project/repository/reducing_the_repo_size_using_git.md b/doc/user/project/repository/reducing_the_repo_size_using_git.md
index a060973d89f..528e9eefa44 100644
--- a/doc/user/project/repository/reducing_the_repo_size_using_git.md
+++ b/doc/user/project/repository/reducing_the_repo_size_using_git.md
@@ -190,7 +190,7 @@ no longer being available.
To clean up a repository:
-1. Go to the project for the repository.
+1. On the left sidebar, select **Search or go to** and find your project.
1. Go to **Settings > Repository**.
1. Upload a list of objects. For example, a `commit-map` file created by `git filter-repo` which is located in the
`filter-repo` directory.
diff --git a/doc/user/project/repository/signed_commits/ssh.md b/doc/user/project/repository/signed_commits/ssh.md
index e1c2a73be3e..1d3fca6d681 100644
--- a/doc/user/project/repository/signed_commits/ssh.md
+++ b/doc/user/project/repository/signed_commits/ssh.md
@@ -156,7 +156,7 @@ To revoke an SSH key:
1. On the left sidebar, select your avatar.
1. Select **Edit profile**.
-1. On the left sidebar, select (**{key}**) **SSH Keys**.
+1. On the left sidebar, select **SSH Keys** (**{key}**).
1. Select **Revoke** next to the SSH key you want to delete.
## Related topics
diff --git a/doc/user/project/repository/ssh_signed_commits/index.md b/doc/user/project/repository/ssh_signed_commits/index.md
deleted file mode 100644
index 89e3d811dba..00000000000
--- a/doc/user/project/repository/ssh_signed_commits/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../signed_commits/ssh.md'
-remove_date: '2023-12-01'
----
-
-This document was moved to [another location](../signed_commits/ssh.md).
-
-<!-- This redirect file can be deleted after <2023-12-01>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/repository/web_editor.md b/doc/user/project/repository/web_editor.md
index 3899890ea7e..d2df9cc18ae 100644
--- a/doc/user/project/repository/web_editor.md
+++ b/doc/user/project/repository/web_editor.md
@@ -20,7 +20,7 @@ To create a text file in the Web Editor:
1. Go to the directory where you want to create the new file.
1. Next to the directory name, select the plus icon (**{plus}**) > **New file**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Commit changes**.
@@ -31,14 +31,14 @@ To create a text file from a template in the Web Editor:
1. On the left sidebar, select **Search or go to** and find your project.
1. Go to the directory where you want to create the new file.
1. Next to the directory name, select the plus icon (**{plus}**) > **New file**.
-1. In **Filename**, enter a filename that GitLab provides a template for:
+1. In **Filename**, enter a name that GitLab provides a template for:
- `.gitignore`
- `.gitlab-ci.yml`
- `LICENSE`
- `Dockerfile`
1. From the **Apply a template** dropdown list, select a template.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Commit changes**.
@@ -50,7 +50,7 @@ To edit a text file in the Web Editor:
1. Go to the file you want to edit.
1. Select **Edit > Edit single file**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Commit changes**.
@@ -72,7 +72,7 @@ To close the preview panel, select the **Write** tab.
### Link to specific lines
To link to single or multiple lines in the Web Editor, add hash
-information to the filename segment of the URL. For example:
+information to the file name segment of the URL. For example:
- `MY_FILE.js#L3` highlights line 3 in `MY_FILE.js`.
- `MY_FILE.js#L3-10` highlights lines 3 to 10 in `MY_FILE.js`.
@@ -90,7 +90,7 @@ To upload a file in the Web Editor:
1. Go to the directory where you want to upload the file.
1. Next to the directory name, select the plus icon (**{plus}**) > **Upload file**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Upload file**.
@@ -102,7 +102,7 @@ To create a directory in the Web Editor:
1. Go to the directory where you want to create the new directory.
1. Next to the directory name, select the plus icon (**{plus}**) > **New directory**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Create directory**.
diff --git a/doc/user/project/repository/x509_signed_commits/index.md b/doc/user/project/repository/x509_signed_commits/index.md
deleted file mode 100644
index ae418581820..00000000000
--- a/doc/user/project/repository/x509_signed_commits/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../signed_commits/x509.md'
-remove_date: '2023-12-01'
----
-
-This document was moved to [another location](../signed_commits/x509.md).
-
-<!-- This redirect file can be deleted after <2023-12-01>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/requirements/index.md b/doc/user/project/requirements/index.md
index 0594f3fe2ee..e489f19585c 100644
--- a/doc/user/project/requirements/index.md
+++ b/doc/user/project/requirements/index.md
@@ -50,7 +50,7 @@ To create a requirement:
1. In a project, go to **Plan > Requirements**.
1. Select **New requirement**.
-1. Enter a title and description and select **Create requirement**.
+1. Enter a title and description and select **New requirement**.
![requirement create view](img/requirement_create_v13_5.png)
@@ -240,7 +240,8 @@ To import requirements:
1. In a project, go to **Plan > Requirements**.
- For a project with requirements, in the
- upper-right corner, select the import icon (**{import}**).
+ upper-right corner, select the vertical ellipsis (**{ellipsis_v}**),
+ then select **Import requirements** (**{import}**).
- For a project without requirements, in the middle of the page, select **Import CSV**.
1. Select the file and select **Import requirements**.
@@ -300,7 +301,8 @@ Prerequisites:
To export requirements:
1. In a project, go to **Plan > Requirements**.
-1. In the upper-right corner, select **Export as CSV** (**{export}**).
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**),
+ then select **Export as CSV** (**{export}**).
A confirmation modal appears.
diff --git a/doc/user/project/service_desk/configure.md b/doc/user/project/service_desk/configure.md
index 91dbe7a38dd..95c15ef42b7 100644
--- a/doc/user/project/service_desk/configure.md
+++ b/doc/user/project/service_desk/configure.md
@@ -63,14 +63,14 @@ For example, you can format the emails to include a header and footer in accorda
organization's brand guidelines. You can also include the following placeholders to display dynamic
content specific to the Service Desk ticket or your GitLab instance.
-| Placeholder | `thank_you.md` | `new_note.md` | Description
-| ---------------------- | ---------------------- | ---------------------- | -----------
-| `%{ISSUE_ID}` | **{check-circle}** Yes | **{check-circle}** Yes | Ticket IID.
-| `%{ISSUE_PATH}` | **{check-circle}** Yes | **{check-circle}** Yes | Project path appended with the ticket IID.
-| `%{ISSUE_URL}` | **{check-circle}** Yes | **{check-circle}** Yes | URL of the ticket. External participants can only view the ticket if the project is public and ticket is not confidential (Service Desk tickets are confidential by default).
-| `%{ISSUE_DESCRIPTION}` | **{check-circle}** Yes | **{check-circle}** Yes | Ticket description. If a user has edited the description, it may contain sensitive information that is not intended to be delivered to external participants. Use this placeholder with care and ideally only if you never modify descriptions or your team is aware of the template design.
-| `%{UNSUBSCRIBE_URL}` | **{check-circle}** Yes | **{check-circle}** Yes | Unsubscribe URL.
-| `%{NOTE_TEXT}` | **{dotted-circle}** No | **{check-circle}** Yes | The new comment added to the ticket by a user. Take care to include this placeholder in `new_note.md`. Otherwise, the requesters may never see the updates on their Service Desk ticket.
+| Placeholder | `thank_you.md` | `new_note.md` | Description |
+|------------------------|------------------------|------------------------|-------------|
+| `%{ISSUE_ID}` | **{check-circle}** Yes | **{check-circle}** Yes | Ticket IID. |
+| `%{ISSUE_PATH}` | **{check-circle}** Yes | **{check-circle}** Yes | Project path appended with the ticket IID. |
+| `%{ISSUE_URL}` | **{check-circle}** Yes | **{check-circle}** Yes | URL of the ticket. External participants can only view the ticket if the project is public and ticket is not confidential (Service Desk tickets are confidential by default). |
+| `%{ISSUE_DESCRIPTION}` | **{check-circle}** Yes | **{check-circle}** Yes | Ticket description. If a user has edited the description, it may contain sensitive information that is not intended to be delivered to external participants. Use this placeholder with care and ideally only if you never modify descriptions or your team is aware of the template design. |
+| `%{UNSUBSCRIBE_URL}` | **{check-circle}** Yes | **{check-circle}** Yes | Unsubscribe URL. |
+| `%{NOTE_TEXT}` | **{dotted-circle}** No | **{check-circle}** Yes | The new comment added to the ticket by a user. Take care to include this placeholder in `new_note.md`. Otherwise, the requesters may never see the updates on their Service Desk ticket. |
### Thank you email
@@ -105,7 +105,7 @@ Instance administrators can add a header, footer or additional text to the GitLa
them to all emails sent from GitLab. If you're using a custom `thank_you.md` or `new_note.md`, to include
this content, add `%{SYSTEM_HEADER}`, `%{SYSTEM_FOOTER}`, or `%{ADDITIONAL_TEXT}` to your templates.
-For more information, see [System header and footer messages](../../../administration/appearance.md#system-header-and-footer-messages) and [custom additional text](../../../administration/settings/email.md#custom-additional-text).
+For more information, see [System header and footer messages](../../../administration/appearance.md#add-system-header-and-footer-messages) and [custom additional text](../../../administration/settings/email.md#custom-additional-text).
## Use a custom template for Service Desk tickets
@@ -165,6 +165,7 @@ the assignees of the issue and creates to-do items for them.
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For a walkthrough, see [a short showcase video](https://youtu.be/163wDM1e43o).
+<!-- Video published on 2023-12-12 -->
Prerequisites:
@@ -191,6 +192,7 @@ Maintain brand identity and instill confidence among support requesters with a d
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview, see [a short showcase video](https://youtu.be/_moD5U3xcQs).
+<!-- Video published on 2023-09-12 -->
This feature is in [Beta](../../../policy/experiment-beta-support.md#beta).
A Beta feature is not production-ready, but is unlikely to change drastically
@@ -225,12 +227,12 @@ Configure and verify a custom email address when you want to send Service Desk e
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**.
-1. Expand **Service Desk** and find the **Custom email** settings.
+1. Expand **Service Desk** and find the **Configure a custom email address** section.
1. Note the presented Service Desk address of this project, and with your email provider
(for example, Gmail), set up email forwarding from the custom email address to the
Service Desk address.
1. Back in GitLab, complete the fields.
-1. Select **Save & test settings**.
+1. Select **Save & test connection**.
The configuration has been saved and the verification of the custom email address is triggered.
@@ -945,7 +947,7 @@ or completely separately.
::EndTabs
1. GitLab offers two methods to transport emails from `mail_room` to the GitLab
-application. You can configure the `delivery_method` for each email setting individually:
+ application. You can configure the `delivery_method` for each email setting individually:
1. Recommended: `webhook` (default in GitLab 15.3 and later) sends the email payload via an API POST request to your GitLab
application. It uses a shared token to authenticate. If you choose this method,
make sure the `mail_room` process can access the API endpoint and distribute the shared
diff --git a/doc/user/project/service_desk/index.md b/doc/user/project/service_desk/index.md
index 9ab69c4bdb8..6a15b9798f7 100644
--- a/doc/user/project/service_desk/index.md
+++ b/doc/user/project/service_desk/index.md
@@ -14,6 +14,10 @@ Service Desk emails are created in your GitLab project as new issues.
Your team can respond directly from the project, while customers interact with the thread only
through email.
+<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
+For a video overview, see [Introducing GitLab Service Desk (GitLab 16.7)](https://www.youtube.com/watch?v=LDVQXv3I5rI).
+<!-- Video published on 2023-12-19 -->
+
## Service Desk workflow
For example, let's assume you develop a game for iOS or Android.
diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md
index fc9b24362e0..f2faa0676b5 100644
--- a/doc/user/project/settings/import_export.md
+++ b/doc/user/project/settings/import_export.md
@@ -4,27 +4,31 @@ group: Import and Integrate
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
---
-# Migrating projects using file exports **(FREE ALL)**
+# Migrate projects and groups by using file exports **(FREE ALL)**
+
+You can migrate projects and groups by using file exports. However, using
+[direct transfer](../../group/import/index.md) is recommended if possible.
+
+## Migrate projects by uploading an export file
Existing projects on any self-managed GitLab instance or GitLab.com can be exported to a file and
-then imported into another GitLab instance. You can also copy GitLab projects to another location with more automation by
-[migrating groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
+then imported into another GitLab instance.
-## Preserving user contributions
+### Preserving user contributions
Preserving user contribution depends on meeting the following requirements:
-### Migrating from GitLab self-managed to GitLab.com
+#### Migrating from GitLab self-managed to GitLab.com
When migrating projects by using file exports, an administrator's access token is required for user contributions to map correctly.
Therefore, user contributions never map correctly when importing file exports from a self-managed instance to GitLab.com. Instead, all GitLab user associations (such as
comment author) are changed to the user importing the project. To preserve contribution history, do one of the following:
-- [Migrate by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
+- [Migrate by direct transfer](../../group/import/index.md).
- Consider paid GitLab [migration services](https://about.gitlab.com/services/migration/).
-### Migrating to GitLab self-managed
+#### Migrating to GitLab self-managed
To ensure GitLab maps users and their contributions correctly:
@@ -43,7 +47,7 @@ That user becomes an author of merge requests created by other users. Supplement
- Added for comments, merge request approvals, linked tasks, and items.
- Not added for the merge request or issue creator, added or removed labels, and merged-by information.
-## Edit project export files
+### Edit project export files
You can add or remove data from export files. For example, you can:
@@ -58,7 +62,7 @@ To edit a project export file:
You can also make sure that all members were exported by checking the `project_members.ndjson` file.
-## Compatibility
+### Compatibility
> Support for JSON-formatted project file exports [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/389888) in GitLab 15.11.
@@ -75,7 +79,7 @@ For example:
| 13.0 | 13.0, 12.10, 12.9 |
| 13.1 | 13.1, 13.0, 12.10 |
-## Configure file exports as an import source **(FREE SELF)**
+### Configure file exports as an import source **(FREE SELF)**
Before you can migrate projects on a self-managed GitLab instance using file exports, GitLab administrators must:
@@ -92,7 +96,7 @@ To enable file exports as an import source for the destination instance:
1. Scroll to **Import sources**.
1. Select the **GitLab export** checkbox.
-## Between CE and EE
+### Between CE and EE
You can export projects from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/)
and vice versa, assuming [compatibility](#compatibility) is met.
@@ -101,7 +105,7 @@ If you're exporting a project from the Enterprise Edition to the Community Editi
data that is retained only in the Enterprise Edition. For more information, see
[downgrading from EE to CE](../../../index.md).
-## Export a project and its data
+### Export a project and its data
Before you can import a project, you must export it.
@@ -124,7 +128,7 @@ To export a project and its data, follow these steps:
The export is generated in your configured `shared_path`, a temporary shared directory, and then
moved to your configured `uploads_directory`. Every 24 hours, a worker deletes these export files.
-### Items that are exported
+#### Items that are exported
Exported project items depend on the version of GitLab you use. To determine if a
specific project item is exported:
@@ -166,7 +170,7 @@ For a quick overview, items that are exported include:
- Project and inherited group members, as long as the user has the Maintainer role in the
exported project's group or is an administrator
-### Items that are not exported
+#### Items that are not exported
Items that are **not** exported include:
@@ -189,7 +193,7 @@ Items that are **not** exported include:
Migrating projects with file exports uses the same export and import mechanisms as creating projects from templates at the [group](../../group/custom_project_templates.md) and
[instance](../../../administration/custom_project_templates.md) levels. Therefore, the list of exported items is the same.
-## Import a project and its data
+### Import a project and its data
> Default maximum import file size [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/251106) from 50 MB to unlimited in GitLab 13.8. Administrators of self-managed instances can [set maximum import file size](#set-maximum-import-file-size). On GitLab.com, the value is [set to 5 GB](../../gitlab_com/index.md#account-and-limit-settings).
@@ -199,7 +203,7 @@ WARNING:
Only import projects from sources you trust. If you import a project from an untrusted source, it
may be possible for an attacker to steal your sensitive data.
-### Prerequisites
+#### Prerequisites
> Requirement for Maintainer role instead of Developer role introduced in GitLab 16.0 and backported to GitLab 15.11.1 and GitLab 15.10.5.
@@ -209,7 +213,7 @@ may be possible for an attacker to steal your sensitive data.
- Review [compatibility](#compatibility) for any issues.
- At least the Maintainer role on the destination group to migrate to.
-### Import a project
+#### Import a project
To import a project:
@@ -222,7 +226,7 @@ To import a project:
To get the status of an import, you can query it through the [API](../../../api/project_import_export.md#import-status).
As described in the API documentation, the query may return an import error or exceptions.
-### Changes to imported items
+#### Changes to imported items
Exported items are imported with the following changes:
@@ -235,11 +239,11 @@ Exported items are imported with the following changes:
Deploy keys aren't imported. To use deploy keys, you must enable them in your imported project and update protected branches.
-### Import large projects **(FREE SELF)**
+#### Import large projects **(FREE SELF)**
If you have a larger project, consider [using a Rake task](../../../administration/raketasks/project_import_export.md#import-large-projects).
-## Set maximum import file size **(FREE SELF)**
+### Set maximum import file size **(FREE SELF)**
Administrators can set the maximum import file size one of two ways:
@@ -248,7 +252,7 @@ Administrators can set the maximum import file size one of two ways:
The default is `0` (unlimited).
-## Rate limits
+### Rate limits
To help avoid abuse, by default, users are rate limited to:
@@ -258,11 +262,161 @@ To help avoid abuse, by default, users are rate limited to:
| Download export | 1 download per group per minute |
| Import | 6 projects per minute |
+## Migrate groups by uploading an export file (deprecated)
+
+> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/2888) in GitLab 13.0 as an experimental feature. May change in future releases.
+> - [Deprecated](https://gitlab.com/groups/gitlab-org/-/epics/4619) in GitLab 14.6.
+
+WARNING:
+This feature was [deprecated](https://gitlab.com/groups/gitlab-org/-/epics/4619) in GitLab 14.6 and replaced by
+[migrating groups by direct transfer](../../group/import/index.md). However, this feature is still recommended for migrating groups between
+offline systems. To follow progress on an alternative solution for [offline environments](../../application_security/offline_deployments/index.md), see
+[the relevant epic](https://gitlab.com/groups/gitlab-org/-/epics/8985).
+
+Prerequisites:
+
+- Owner role on the group to migrate.
+
+Using file exports, you can:
+
+- Export any group to a file and upload that file to another GitLab instance or to another location on the same instance.
+- Use either the GitLab UI or the [API](../../../api/group_import_export.md).
+- Migrate groups one by one, then export and import each project for the groups one by one.
+
+GitLab maps user contributions correctly when an admin access token is used to perform the import. GitLab does not map
+user contributions correctly when you are importing from a self-managed instance to GitLab.com. Correct mapping of user
+contributions when importing from a self-managed instance to GitLab.com can be preserved with paid involvement of
+Professional Services team.
+
+Note the following:
+
+- Exports are stored in a temporary directory and are deleted every 24 hours by a specific worker.
+- To preserve group-level relationships from imported projects, export and import groups first so that projects can
+ be imported into the desired group structure.
+- Imported groups are given a `private` visibility level, unless imported into a parent group.
+- If imported into a parent group, a subgroup inherits the same level of visibility unless otherwise restricted.
+- You can export groups from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/)
+ and vice versa. The Enterprise Edition retains some group data that isn't part of the Community Edition. If you're
+ exporting a group from the Enterprise Edition to the Community Edition, you may lose this data. For more information,
+ see [downgrading from EE to CE](../../../index.md).
+
+### Compatibility
+
+> Support for JSON-formatted project file exports [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/383682) in GitLab 15.8.
+
+Group file exports are in NDJSON format.
+
+You can import group file exports that were exported from a version of GitLab up to two
+[minor](../../../policy/maintenance.md#versioning) versions behind, which is similar to our process for
+[security releases](../../../policy/maintenance.md#security-releases).
+
+For example:
+
+| Destination version | Compatible source versions |
+|:--------------------|:---------------------------|
+| 13.0 | 13.0, 12.10, 12.9 |
+| 13.1 | 13.1, 13.0, 12.10 |
+
+### Exported contents
+
+The [`import_export.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/import_export/group/import_export.yml)
+file for groups lists items exported and imported when migrating groups using file exports. View this file in the branch
+for your version of GitLab to check which items can be imported to the destination GitLab instance. For example,
+[`import_export.yml` on the `14-10-stable-ee` branch](https://gitlab.com/gitlab-org/gitlab/-/blob/14-10-stable-ee/lib/gitlab/import_export/group/import_export.yml).
+
+Group items that are exported include:
+
+- Milestones
+- Group Labels (_without_ associated label priorities)
+- Boards and Board Lists
+- Badges
+- Subgroups (including all the aforementioned data)
+- Epics
+ - Epic resource state events ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/291983) in GitLab 15.4)
+- Events
+- [Wikis](../../project/wiki/group.md)
+ ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53247) in GitLab 13.9)
+- Iterations cadences ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95372) in 15.4)
+
+Items that are **not** exported include:
+
+- Projects
+- Runner tokens
+- SAML discovery tokens
+
+### Preparation
+
+- To preserve the member list and their respective permissions on imported groups, review the users in these groups. Make
+ sure these users exist before importing the desired groups.
+- Users must set a public email in the source GitLab instance that matches their confirmed primary email in the destination GitLab instance. Most users receive an email asking them to confirm their email address.
+
+### Enable export for a group
+
+Prerequisites:
+
+- You must have the Owner role for the group.
+
+To enable import and export for a group:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > General**.
+1. Expand **Visibility and access controls**.
+1. In the **Import sources** section, select the checkboxes for the sources you want.
+
+### Export a group
+
+Prerequisites:
+
+- You must have the Owner role for the group.
+
+To export the contents of a group:
+
+1. On the left sidebar, select **Search or go to** and find your group.
+1. Select **Settings > General**.
+1. In the **Advanced** section, select **Export group**.
+1. After the export is generated, you should receive an email with a link to the [exported contents](#exported-contents)
+ in a compressed tar archive, with contents in NDJSON format.
+1. Alternatively, you can download the export from the UI:
+
+ 1. Return to your group's **Settings > General** page.
+ 1. In the **Advanced** section, select **Download export**.
+ You can also generate a new file by selecting **Regenerate export**.
+
+You can also export a group [using the API](../../../api/group_import_export.md).
+
+### Import the group
+
+1. On the left sidebar, at the top, select **Create new** (**{plus}**) and **New subgroup**.
+1. Select the **import an existing group** link.
+1. Enter your group name.
+1. Accept or modify the associated group URL.
+1. Select **Choose file...**.
+1. Select the file that you exported in the [Export a group](#export-a-group) section.
+1. To begin importing, select **Import**.
+
+Your newly imported group page appears after the operation completes.
+
+NOTE:
+The maximum import file size can be set by the administrator, default is `0` (unlimited).
+As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the
+[Application settings API](../../../api/settings.md#change-application-settings) or the
+[Admin Area](../../../administration/settings/account_and_limit_settings.md).
+Default [modified](https://gitlab.com/gitlab-org/gitlab/-/issues/251106) from 50 MB to 0 in GitLab 13.8.
+
+### Rate limits
+
+To help avoid abuse, by default, users are rate limited to:
+
+| Request Type | Limit |
+|-----------------|-------|
+| Export | 6 groups per minute |
+| Download export | 1 download per group per minute |
+| Import | 6 groups per minute |
+
## Related topics
- [Project import and export API](../../../api/project_import_export.md)
- [Project import and export administration Rake tasks](../../../administration/raketasks/project_import_export.md)
- [Migrating GitLab groups](../../group/import/index.md)
- [Group import and export API](../../../api/group_import_export.md)
-- [Migrate groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
-- [Migrate groups by using file exports](../../group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated).
+- [Migrate groups by direct transfer](../../group/import/index.md).
diff --git a/doc/user/project/settings/project_features_permissions.md b/doc/user/project/settings/project_features_permissions.md
index 27c0668079c..c1fe9045ea5 100644
--- a/doc/user/project/settings/project_features_permissions.md
+++ b/doc/user/project/settings/project_features_permissions.md
@@ -173,7 +173,7 @@ To subscribe to a topic:
- From the **Explore topics** page:
- 1. On the left sidebar, expand the top-most chevron ({**chevron-down**}).
+ 1. On the left sidebar, expand the top-most chevron (**{chevron-down}**).
1. Select **Explore**.
1. Select **Topics**.
1. Select the topic you want to subscribe to.
diff --git a/doc/user/project/use_project_as_go_package.md b/doc/user/project/use_project_as_go_package.md
index 54e9eac7756..bf11cd784cb 100644
--- a/doc/user/project/use_project_as_go_package.md
+++ b/doc/user/project/use_project_as_go_package.md
@@ -10,7 +10,7 @@ Prerequisites:
- Contact your administrator to enable the [GitLab Go Proxy](../packages/go_proxy/index.md).
- To use a private project in a subgroup as a Go package, you must [authenticate Go requests](#authenticate-go-requests-to-private-projects). Go requests that are not authenticated cause
-`go get` to fail. You don't need to authenticate Go requests for projects that are not in subgroups.
+ `go get` to fail. You don't need to authenticate Go requests for projects that are not in subgroups.
To use a project as a Go package, use the `go get` and `godoc.org` discovery requests. You can use the meta tags:
diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md
index 49efd463334..4aaf7f27229 100644
--- a/doc/user/project/web_ide/index.md
+++ b/doc/user/project/web_ide/index.md
@@ -17,71 +17,65 @@ The Web IDE is an advanced editor with commit staging.
You can use the Web IDE to make changes to multiple files directly from the GitLab UI.
For a more basic implementation, see [Web Editor](../repository/web_editor.md).
-To pair the Web IDE with a remote development environment, see [remote development](../remote_development/index.md).
+To pair the Web IDE with a remote development environment, see [Remote development](../remote_development/index.md).
-## Use the Web IDE
+## Open the Web IDE
-To open the Web IDE from the GitLab UI:
+To open the Web IDE:
1. On the left sidebar, select **Search or go to** and find your project.
1. Use the <kbd>.</kbd> keyboard shortcut.
-You can also open the Web IDE from:
+### From a file or directory
-- A file
-- The repository file list
-- A merge request
+To open the Web IDE from a file or directory:
-### From a file or the repository file list
-
-To open the Web IDE from a file or the repository file list:
-
-- In the upper right, select **Edit > Open in Web IDE**.
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Go to your file or directory.
+1. Select **Edit > Open in Web IDE**.
### From a merge request
To open the Web IDE from a merge request:
+1. On the left sidebar, select **Search or go to** and find your project.
1. Go to your merge request.
-1. In the upper-right corner, select **Code > Open in Web IDE**.
+1. In the upper right, select **Code > Open in Web IDE**.
-The Web IDE opens new and modified files in separate tabs and displays changes side by side with the original source.
-To optimize loading time, only the top 10 files (by number of lines changed) are opened automatically.
+The Web IDE opens new and modified files in separate tabs and displays changes side by side.
+To reduce load time, only 10 files with the most lines changed are opened automatically.
-In the file tree, any new or modified file in the merge request is indicated by an icon next to the filename.
-To view changes to a file, right-click the filename and select **Compare with merge request base**.
+On the left **Explorer** sidebar, any new or modified file is indicated
+by the merge request icon (**{merge-request}**) next to the file name.
+To view changes to a file, right-click the file and select **Compare with merge request base**.
-## Open a file in the Web IDE
+## Open a file
-To open any file by its name:
+To open a file by name in the Web IDE:
1. Press <kbd>Command</kbd>+<kbd>P</kbd>.
-1. Enter the name of your file.
+1. In the search box, enter the file name.
-## Search across files
+## Search open files
-You can use the Web IDE to search all files in the opened folder.
-
-To search across files:
+To search across open files in the Web IDE:
1. Press <kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>F</kbd>.
-1. Enter your search term.
-
-In the Web IDE, only partial results from opened files are displayed.
+1. In the search box, enter your search term.
-## View a list of changed files
+## View a list of modified files
-To view a list of files you changed in the Web IDE:
+To view a list of files you modified in the Web IDE:
-- On the activity bar on the left, select **Source Control**,
- or press <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>.
+- On the left activity bar, select **Source Control**, or
+ press <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>.
Your `CHANGES`, `STAGED CHANGES`, and `MERGE CHANGES` are displayed.
For more information, see the [VS Code documentation](https://code.visualstudio.com/docs/sourcecontrol/overview#_commit).
## Restore uncommitted changes
-You don't have to manually save any file you modify in the Web IDE.
+You do not have to manually save any file you modify in the Web IDE.
Modified files are automatically staged and can be [committed](#commit-changes).
Uncommitted changes are saved in your browser's local storage and persist
even if you close the browser tab or refresh the Web IDE.
@@ -93,68 +87,67 @@ To restore uncommitted changes in the Web IDE:
1. In the search box, enter `Local History: Find Entry to Restore`.
1. Select the file that contains the uncommitted changes.
-## Upload a new file
+## Upload a file
+
+To upload a file in the Web IDE:
+
+1. On the left activity bar, select **Explorer**, or
+ press <kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>E</kbd>.
+1. Go to the directory where you want to upload the file.
+ To create a new directory:
-To upload a new file in the Web IDE:
+ - On the left **Explorer** sidebar, in the upper right,
+ select **New Folder** (**{folder-new}**).
-1. On the activity bar on the left, select **Explorer** and go to the directory where you want to upload the file.
-1. Optional. For a new directory, go to the path where you want to have the directory and do one of the following:
- - Right-click the path, and select **New Folder...**. You can create a nested path with `/` (for example, `parentdir/subdir1/subdir2`).
- - In the upper right of the **Explorer** panel, select **New Folder...** (**{folder-new}**).
-1. Enter the name of the new directory, and press <kbd>Enter</kbd>.
-1. Right-click the path, and select **Upload...**.
-1. Select the file you want to upload, then select **Open**. You can upload multiple files at once.
+1. Right-click the directory and select **Upload**.
+1. Select the file you want to upload.
-The new file is uploaded and automatically added to the repository.
+You can upload multiple files at once.
+The files are uploaded and automatically added to the repository.
## Switch branches
-The Web IDE uses the currently selected branch by default.
+The Web IDE uses the current branch by default.
To switch branches in the Web IDE:
-1. On the status bar, in the lower-left corner, select the current branch name.
-1. In the search box, start typing the branch name.
-1. From the dropdown list, select the branch.
+1. On the bottom status bar, on the left, select the current branch name.
+1. Enter or select an existing branch.
## Create a branch
To create a branch from the current branch in the Web IDE:
-1. On the status bar, in the lower-left corner, select the current branch name.
-1. From the dropdown list, select **Create new branch...**.
-1. Enter the branch name.
-1. Press <kbd>Enter</kbd>.
+1. On the bottom status bar, on the left, select the current branch name.
+1. From the dropdown list, select **Create new branch**.
+1. Enter the new branch name.
-If you don't have write access to the repository, **Create new branch...** is not visible.
+If you do not have write access to the repository, **Create new branch** is not visible.
## Commit changes
To commit changes in the Web IDE:
-1. On the activity bar on the left, select **Source Control**,
- or press <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>.
+1. On the left activity bar, select **Source Control**, or
+ press <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>.
1. Enter your commit message.
-1. Select **Commit & Push**.
-1. Commit to the current branch, or [create a new branch](#create-a-branch).
+1. Commit to the current branch or [create a new branch](#create-a-branch).
## Create a merge request
-To create a merge request in the Web IDE:
+To create a [merge request](../merge_requests/index.md) in the Web IDE:
1. [Commit the changes](#commit-changes).
-1. In the pop-up notification in the lower-right corner, select **Create Merge Request**.
- A new window opens for you to create the [merge request](../merge_requests/index.md).
+1. In the notification that appears in the lower right, select **Create MR**.
-To access missed notifications, see [Access notifications](#access-notifications).
+For more information, see [View missed notifications](#view-missed-notifications).
## Use the command palette
-In the Web IDE, you can access many commands through the command palette.
+You can use the command palette to access many commands.
To open the command palette and run a command in the Web IDE:
1. Press <kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd>.
-1. In the search box, start typing the command name.
-1. From the dropdown list, select the command.
+1. Enter or select the command.
## Edit settings
@@ -168,7 +161,8 @@ In the settings editor, you can search for the settings you want to modify.
## Edit keyboard shortcuts
-You can use the keyboard shortcuts editor to view and modify the default keybindings for all available commands.
+You can use the keyboard shortcuts editor to view and modify
+the default keybindings for all available commands.
To open the keyboard shortcuts editor in the Web IDE:
- On the top menu bar, select **File > Preferences > Keyboard Shortcuts**,
@@ -179,13 +173,15 @@ In the keyboard shortcuts editor, you can search for:
- The keybindings you want to change
- The commands you want to add or remove keybindings for
-Keybindings are based on your keyboard layout. If you change your keyboard layout, existing keybindings are updated automatically.
+Keybindings are based on your keyboard layout.
+If you change your keyboard layout, existing keybindings are updated automatically.
-## Change themes
+## Change the color theme
-You can choose between different themes for the Web IDE. The default theme for the Web IDE is **GitLab Dark**.
+You can choose between different color themes for the Web IDE.
+The default theme is **GitLab Dark**.
-To change the Web IDE theme:
+To change the color theme in the Web IDE:
1. On the top menu bar, select **File > Preferences > Theme > Color Theme**,
or press <kbd>Command</kbd>+<kbd>K</kbd> then <kbd>Command</kbd>+<kbd>T</kbd>.
@@ -194,12 +190,13 @@ To change the Web IDE theme:
The active color theme is stored in the [user settings](#edit-settings).
-## Access notifications
+## View missed notifications
-When you perform actions in the Web IDE, notifications appear in the lower-right corner. To access missed notifications:
+When you perform actions in the Web IDE, notifications appear in the lower right.
+To view any notification you might have missed:
-1. On the status bar, in the lower-right corner, select the bell (**{notifications}**) for a list of notifications.
-1. Select the notification you want to access.
+1. On the bottom status bar, on the right, select the bell icon (**{notifications}**) for a list of notifications.
+1. Select the notification you want to view.
<!-- ## Privacy and data collection for extensions
@@ -215,7 +212,7 @@ To protect your privacy and data:
- Carefully review the permissions requested by an extension before you install the extension.
- Keep your extensions up to date to ensure that any security or privacy vulnerabilities are addressed promptly. -->
-## Interactive web terminals for the Web IDE **(BETA)**
+## Interactive web terminals **(BETA)**
WARNING:
This feature is in [Beta](../../../policy/experiment-beta-support.md#beta) and subject to change without notice.
@@ -228,21 +225,25 @@ When you set up a remote development server in the Web IDE, you can use interact
You cannot use interactive web terminals to interact with a runner.
However, you can use a terminal to install dependencies and compile and debug code.
-For more information about configuring a workspace that supports interactive web terminals, see [remote development](../remote_development/index.md).
+For more information, see [Remote development](../remote_development/index.md).
## Related topics
-- [GitLab Duo Chat in the Web IDE](../../gitlab_duo_chat.md#web-ide)
+- [GitLab Duo Chat in the Web IDE](../../gitlab_duo_chat.md#use-gitlab-duo-chat-in-the-web-ide)
## Troubleshooting
When working with the Web IDE, you might encounter the following issues.
-### Character offset in the Web IDE
+### Character offset when typing
-When you type in the Web IDE, you might get a four-character offset. To resolve the issue, do one of the following:
+When you type in the Web IDE, you might get a four-character offset.
+As a workaround:
-- Add `"editor.disableMonospaceOptimizations": true` to your settings.
-- Modify your `"editor.font"` setting.
+1. On the top menu bar, select **File > Preferences > Settings**,
+ or press <kbd>Command</kbd>+<kbd>,</kbd>.
+1. In the upper-right corner, select **Open Settings (JSON)**.
+1. In the `settings.json` file, add `"editor.disableMonospaceOptimizations": true`
+ or modify the `"editor.fontFamily"` setting.
For more information, see [VS Code issue 80170](https://github.com/microsoft/vscode/issues/80170).
diff --git a/doc/user/project/wiki/group.md b/doc/user/project/wiki/group.md
index 64f6fa2c75e..59e949c5218 100644
--- a/doc/user/project/wiki/group.md
+++ b/doc/user/project/wiki/group.md
@@ -37,7 +37,7 @@ To access a group wiki:
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53247) in GitLab 13.9.
Users with the Owner role in a group can
-[import or export a group wiki](../../group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated) when they
+[import or export a group wiki](../../project/settings/import_export.md#migrate-groups-by-uploading-an-export-file-deprecated) when they
import or export a group.
Content created in a group wiki is not deleted when an account is downgraded or a
@@ -47,7 +47,7 @@ the wiki is exported.
To access the group wiki data from the export file if the feature is no longer
available, you have to:
-1. Extract the [export file tarball](../../group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated)
+1. Extract the [export file tarball](../../project/settings/import_export.md#migrate-groups-by-uploading-an-export-file-deprecated)
with this command, replacing `FILENAME` with your file's name:
`tar -xvzf FILENAME.tar.gz`
1. Browse to the `repositories` directory. This directory contains a
diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md
index f4946230360..07c5ce73470 100644
--- a/doc/user/project/wiki/index.md
+++ b/doc/user/project/wiki/index.md
@@ -94,8 +94,12 @@ Users with at least the Developer role can create new wiki pages:
Wikis are based on Git repositories, so you can clone them locally and edit
them like you would do with every other Git repository. To clone a wiki repository
-locally, select **Clone repository** from the right-hand sidebar of any wiki page,
-and follow the on-screen instructions.
+locally:
+
+1. On the left sidebar, select **Search or go to** and find your project or group.
+1. Select **Plan > Wiki**.
+1. On the right sidebar, select **Clone repository**.
+1. Follow the on-screen instructions.
Files you add to your wiki locally must use one of the following
supported extensions, depending on the markup language you wish to use.
@@ -155,7 +159,9 @@ For an example, read [Table of contents](../../markdown.md#table-of-contents).
## Delete a wiki page
-You need at least the Developer role to delete a wiki page:
+Prerequisites:
+
+- You must have at least the Developer role.
1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Plan > Wiki**.
@@ -166,7 +172,9 @@ You need at least the Developer role to delete a wiki page:
## Move a wiki page
-You need at least the Developer role to move a wiki page:
+Prerequisites:
+
+- You must have at least the Developer role.
1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Plan > Wiki**.
@@ -245,8 +253,11 @@ Commits to wikis are not counted in [repository analytics](../../analytics/repos
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23109) in GitLab 13.8, the sidebar can be customized by selecting the **Edit sidebar** button.
-You need at least the Developer role to customize the wiki
-navigation sidebar. This process creates a wiki page named `_sidebar` which fully
+Prerequisites:
+
+- You must have at least the Developer role.
+
+This process creates a wiki page named `_sidebar` which fully
replaces the default sidebar navigation:
1. On the left sidebar, select **Search or go to** and find your project or group.
@@ -312,7 +323,7 @@ To disable a project's internal wiki:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**.
1. Expand **Visibility, project features, permissions**.
-1. Scroll down to find **Wiki** and toggle it off (in gray).
+1. Scroll down to find and turn off the **Wiki** toggle (in gray).
1. Select **Save changes**.
The internal wiki is now disabled, and users and project members:
diff --git a/doc/user/project/working_with_projects.md b/doc/user/project/working_with_projects.md
index 1c60f3bebf3..7d8305519e4 100644
--- a/doc/user/project/working_with_projects.md
+++ b/doc/user/project/working_with_projects.md
@@ -61,7 +61,7 @@ Prerequisites:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**.
1. In the **Project name** text box, enter your project name. See the [limitations on project names](../../user/reserved_names.md).
-1. In the **Project description** text box, enter your project description. The description is limited to 500 characters.
+1. In the **Project description** text box, enter your project description. The description is limited to 2,000 characters.
1. Under **Project avatar**, to change your project avatar, select **Choose file**.
## Star a project
@@ -121,7 +121,7 @@ You can [view projects that are pending deletion](#view-projects-pending-deletio
and use the Rails console to
[find projects that are pending deletion](#find-projects-that-are-pending-deletion).
-### Delete a project immediately
+### Delete a project immediately **(PREMIUM ALL)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/191367) in GitLab 14.1.
> - Option to delete projects immediately from the Admin Area and as a group setting removed [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0.
@@ -144,7 +144,7 @@ To immediately delete a project marked for deletion:
1. In the **Delete this project** section, select **Delete project**.
1. On the confirmation dialog, enter the project name and select **Yes, delete project**.
-### View projects pending deletion
+### View projects pending deletion **(PREMIUM ALL)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/37014) in GitLab 13.3 for Administrators.
> - [Tab renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/347468) from **Deleted projects** in GitLab 14.6.
@@ -309,7 +309,7 @@ Prerequisites:
1. [Create a group](../group/index.md#create-a-group) to track membership of your project.
1. [Set up LDAP synchronization](../../administration/auth/ldap/ldap_synchronization.md) for that group.
1. To use LDAP groups to manage access to a project,
-[add the LDAP-synchronized group as a member](../group/manage.md) to the project.
+ [add the LDAP-synchronized group as a member](../group/manage.md) to the project.
## Troubleshooting
diff --git a/doc/user/public_access.md b/doc/user/public_access.md
index b7ee354ed9a..826f9548982 100644
--- a/doc/user/public_access.md
+++ b/doc/user/public_access.md
@@ -8,11 +8,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w
Projects and groups in GitLab can be private, internal, or public.
-The visibility level of the group or project has no influence on whether members within the group or project can see each other.
-A group or project is an object to allow collaborative work. This is only possible if all members know about each other.
+The visibility level of the project or group does not affect whether members of the project or group can see each other.
+Projects and groups are intended for collaborative work. This work is only possible if all members know about each other.
-Group or project members can see all members of the group or project they belong to.
-Group or project owners can see the origin of membership (the original group or project) of all members.
+Project or group members can see all members of the project or group they belong to.
+Project or group members can see the origin of membership (the original project or group) of all members for the projects and groups they have access to.
## Private projects and groups
@@ -38,15 +38,9 @@ Only internal members can view internal content.
Internal groups can have internal or private subgroups.
-NOTE:
-From July 2019, the `Internal` visibility setting is disabled for new projects, groups,
-and snippets on GitLab.com. Existing projects, groups, and snippets using the `Internal`
-visibility setting keep this setting. For more information, see
-[issue 12388](https://gitlab.com/gitlab-org/gitlab/-/issues/12388).
-
## Public projects and groups
-For public projects, **users who are not authenticated**, including users with the Guest role, can:
+For public projects, **unauthenticated users**, including users with the Guest role, can:
- Clone the project.
- View the public access directory (`/public`).
@@ -56,7 +50,7 @@ Public groups can have public, internal, or private subgroups.
NOTE:
If an administrator restricts the
[**Public** visibility level](../administration/settings/visibility_and_access_controls.md#restrict-visibility-levels),
-then `/public` is visible only to authenticated users.
+then the public access directory (`/public`) is visible only to authenticated users.
## Change project visibility
@@ -85,7 +79,7 @@ Prerequisites:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**.
1. Expand **Visibility, project features, permissions**.
-1. To enable or disable a feature, turn on or off the feature toggle.
+1. To enable or disable a feature, turn on or turn off the feature toggle.
1. Select **Save changes**.
## Change group visibility
@@ -95,9 +89,9 @@ You can change the visibility of all projects in a group.
Prerequisites:
- You must have the Owner role for a group.
-- Subgroups and projects must already have visibility settings that are at least as
+- Projects and subgroups must already have visibility settings that are at least as
restrictive as the new setting of the parent group. For example, you cannot set a group
- to private if a subgroup or project in that group is public.
+ to private if a project or subgroup in that group is public.
1. On the left sidebar, select **Search or go to** and find your group.
1. Select **Settings > General**.
diff --git a/doc/user/search/advanced_search.md b/doc/user/search/advanced_search.md
index 3b715fb13da..757231ffb80 100644
--- a/doc/user/search/advanced_search.md
+++ b/doc/user/search/advanced_search.md
@@ -30,10 +30,10 @@ You can use advanced search in:
## Enable advanced search
-- On GitLab.com, advanced search is enabled for groups with paid subscriptions.
-- For self-managed GitLab instances, an administrator must
+- For [GitLab SaaS](../../subscriptions/gitlab_com/index.md) and [GitLab Dedicated](../../subscriptions/gitlab_dedicated/index.md),
+ advanced search is enabled in paid subscriptions.
+- For [GitLab self-managed](../../subscriptions/self_managed/index.md), an administrator must
[enable advanced search](../../integration/advanced_search/elasticsearch.md#enable-advanced-search).
-- For GitLab Dedicated, advanced search is enabled.
## Syntax
diff --git a/doc/user/storage_management_automation.md b/doc/user/storage_management_automation.md
index f25ae8ba92d..e04a7f1bdee 100644
--- a/doc/user/storage_management_automation.md
+++ b/doc/user/storage_management_automation.md
@@ -78,7 +78,7 @@ For more information, see the [GitLab CLI endpoint documentation](../editor_exte
The storage management and cleanup automation methods described in this page use:
- The [`python-gitlab`](https://python-gitlab.readthedocs.io/en/stable/) library, which provides
-a feature-rich programming interface.
+ a feature-rich programming interface.
- The `get_all_projects_top_level_namespace_storage_analysis_cleanup_example.py` script in the [GitLab API with Python](https://gitlab.com/gitlab-de/use-cases/gitlab-api/gitlab-api-python/) project.
For more information about use cases for the `python-gitlab` library,
diff --git a/doc/user/tasks.md b/doc/user/tasks.md
index 1ec211dcab3..3f26329485b 100644
--- a/doc/user/tasks.md
+++ b/doc/user/tasks.md
@@ -366,7 +366,7 @@ To copy the task reference to your clipboard:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**, then select your issue to view it.
1. In the issue description, in the **Tasks** section, select your task.
-1. In the top right corner, select the vertical ellipsis (**{ellipsis_v}**), then select **Copy Reference**.
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**), then select **Copy Reference**.
You can now paste the reference into another description or comment.
@@ -386,7 +386,7 @@ To copy the task's email address:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**, then select your issue to view it.
-1. In the top right corner, select the vertical ellipsis (**{ellipsis_v}**), then select **Copy task email address**.
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**), then select **Copy task email address**.
## Set an issue as a parent
@@ -442,7 +442,7 @@ Check that box and select **Create task**.
To change the confidentiality of an existing task:
1. [Open the task](#view-tasks).
-1. In the top right corner, select the vertical ellipsis (**{ellipsis_v}**).
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**).
1. Select **Turn on confidentiality**.
### Who can see confidential tasks
@@ -497,6 +497,7 @@ or assignees, on the right.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/416558) in GitLab 16.5 [with a flag](../administration/feature_flags.md) named `linked_work_items`. Disabled by default.
> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139394) in GitLab 16.7.
+> - Adding related items by entering their URLs and IDs [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/427594) in GitLab 16.8.
FLAG:
On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../administration/feature_flags.md) named `linked_work_items`.
@@ -524,7 +525,7 @@ To link an item to a task:
- **relates to**
- **blocks**
- **is blocked by**
-1. Enter the search text of the item.
+1. Enter the search text of the item, URL, or its reference ID.
1. When you have added all the items to be linked, select **Add** below the search box.
When you have finished adding all linked items, you can see
diff --git a/doc/user/usage_quotas.md b/doc/user/usage_quotas.md
index 973ad9d0b07..2dc5c1ef819 100644
--- a/doc/user/usage_quotas.md
+++ b/doc/user/usage_quotas.md
@@ -163,11 +163,11 @@ Storage limits are included in GitLab subscription terms but do not apply. At le
GitLab will notify you of namespaces that exceed, or are close to exceeding, the storage limit.
- In the command-line interface, a notification displays after each `git push`
-action when your namespace has reached between 95% and 100% of your namespace storage quota.
+ action when your namespace has reached between 95% and 100% of your namespace storage quota.
- In the GitLab UI, a notification displays when your namespace has reached between
-75% and 100% of your namespace storage quota.
+ 75% and 100% of your namespace storage quota.
- GitLab sends an email to members with the Owner role to notify them when namespace
-storage usage is at 70%, 85%, 95%, and 100%.
+ storage usage is at 70%, 85%, 95%, and 100%.
## Manage storage usage
diff --git a/doc/user/version.md b/doc/user/version.md
index d39c0394610..2dcaf16d53b 100644
--- a/doc/user/version.md
+++ b/doc/user/version.md
@@ -1,6 +1,7 @@
---
stage: none
group: none
+description: Version information.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/user/workspace/gitlab_agent_configuration.md b/doc/user/workspace/gitlab_agent_configuration.md
index 0e35c72c5ef..bef935f2426 100644
--- a/doc/user/workspace/gitlab_agent_configuration.md
+++ b/doc/user/workspace/gitlab_agent_configuration.md
@@ -20,12 +20,14 @@ provided that the agent is properly configured for remote development.
## Remote development settings
-| Setting | Description |
-|-------------------------------------------------------|:---------------------------------------------------------------------|
-| [`enabled`](#enabled) | Indicates whether remote development is enabled for the GitLab agent |
-| [`dns_zone`](#dns_zone) | DNS zone where workspaces are available |
-| [`gitlab_workspaces_proxy`](#gitlab_workspaces_proxy) | Namespace where [`gitlab-workspaces-proxy`](https://gitlab.com/gitlab-org/remote-development/gitlab-workspaces-proxy) is installed |
-| [`network_policy`](#network_policy) | Firewall rules for workspaces |
+| Setting | Description |
+|-------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------|
+| [`enabled`](#enabled) | Indicates whether remote development is enabled for the GitLab agent. |
+| [`dns_zone`](#dns_zone) | DNS zone where workspaces are available. |
+| [`gitlab_workspaces_proxy`](#gitlab_workspaces_proxy) | Namespace where [`gitlab-workspaces-proxy`](https://gitlab.com/gitlab-org/remote-development/gitlab-workspaces-proxy) is installed. |
+| [`network_policy`](#network_policy) | Firewall rules for workspaces. |
+| [`default_resources_per_workspace_container`](#default_resources_per_workspace_container) | Default requests and limits for CPU and memory per workspace container. |
+| [`max_resources_per_workspace`](#max_resources_per_workspace) | Maximum requests and limits for CPU and memory per workspace. |
NOTE:
If a setting has an invalid value, it's not possible to update any setting until you fix that value.
@@ -85,6 +87,7 @@ The default value is:
```yaml
remote_development:
network_policy:
+ enabled: true
egress:
- allow: "0.0.0.0/0"
except:
@@ -141,6 +144,64 @@ In this example, traffic from the workspace is allowed if:
- The destination IP is any range except `10.0.0.0/8`, `172.16.0.0/12`, or `192.168.0.0/16`.
- The destination IP is `172.16.123.1/32`.
+### `default_resources_per_workspace_container`
+
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11625) in GitLab 16.8.
+
+Use this setting to define the default [requests and limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits)
+for CPU and memory per workspace container.
+Any resources you define in your [devfile](index.md#devfile) override this setting.
+
+For `default_resources_per_workspace_container`, `requests` and `limits` are required.
+For more information about possible CPU and memory values, see [Resource units in Kubernetes](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes).
+
+When you change any of these values, existing workspaces restart immediately for the changes to take effect.
+
+**Example configuration:**
+
+```yaml
+remote_development:
+ default_resources_per_workspace_container:
+ requests:
+ cpu: "0.5"
+ memory: "512Mi"
+ limits:
+ cpu: "1"
+ memory: "1Gi"
+```
+
+### `max_resources_per_workspace`
+
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11625) in GitLab 16.8.
+
+Use this setting to define the maximum [requests and limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits)
+for CPU and memory per workspace.
+
+For `max_resources_per_workspace`, `requests` and `limits` are required.
+For more information about possible CPU and memory values, see:
+
+- [Resource units in Kubernetes](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes)
+- [Resource quotas](https://kubernetes.io/docs/concepts/policy/resource-quotas/)
+
+When you change any of these values, existing workspaces restart immediately for the changes to take effect.
+Workspaces fail when they exceed the values you set for `requests` and `limits`.
+
+**Example configuration:**
+
+```yaml
+remote_development:
+ max_resources_per_workspace:
+ requests:
+ cpu: "1"
+ memory: "1Gi"
+ limits:
+ cpu: "2"
+ memory: "2Gi"
+```
+
+The maximum resources you define must include any resources required for init containers
+to perform bootstrapping operations such as cloning the project repository.
+
## Configuring user access with remote development
You can configure the `user_access` module to access the connected Kubernetes cluster with your GitLab credentials.
diff --git a/doc/user/workspace/index.md b/doc/user/workspace/index.md
index d24102afcf9..5fa6108de6f 100644
--- a/doc/user/workspace/index.md
+++ b/doc/user/workspace/index.md
@@ -67,32 +67,37 @@ The devfile is used to automatically configure the development environment with
This way, you can create consistent and reproducible development environments
regardless of the machine or platform you use.
-### Relevant schema properties
-
-GitLab only supports the `container` and `volume` components in [devfile 2.2.0](https://devfile.io/docs/2.2.0/devfile-schema).
-Use the `container` component to define a container image as the execution environment for a devfile workspace.
+### Validation rules
+
+- `schemaVersion` must be [`2.2.0`](https://devfile.io/docs/2.2.0/devfile-schema).
+- The devfile must have at least one component.
+- For `components`:
+ - Names must not start with `gl-`.
+ - Only [`container`](#container-component-type) and `volume` are supported.
+- For `commands`, IDs must not start with `gl-`.
+- For `events`:
+ - Names must not start with `gl-`.
+ - Only `preStart` is supported.
+- `parent`, `projects`, and `starterProjects` are not supported.
+- For `variables`, keys must not start with `gl-`, `gl_`, `GL-`, or `GL_`.
+
+### `container` component type
+
+Use the `container` component type to define a container image as the execution environment for a workspace.
You can specify the base image, dependencies, and other settings.
-Only these properties are relevant to the GitLab implementation of the `container` component:
-
-| Properties | Definition |
-|----------------| ----------------------------------------------------------------------------------|
-| `image` | Name of the container image to use for the workspace. |
-| `memoryRequest`| Minimum amount of memory the container can use. |
-| `memoryLimit` | Maximum amount of memory the container can use. |
-| `cpuRequest` | Minimum amount of CPU the container can use. |
-| `cpuLimit` | Maximum amount of CPU the container can use. |
-| `env` | Environment variables to use in the container. |
-| `endpoints` | Port mappings to expose from the container. |
-| `volumeMounts` | Storage volume to mount in the container. |
-
-### Using variables in a devfile
-
-You can define variables to use in your devfile.
-The `variables` object is a map of name-value pairs that you can use for string replacement in the devfile.
-
-Variables cannot have names that start with `gl-`, `gl_`, `GL-`, or `GL_`.
-For more information about how and where to use variables, see the [devfile documentation](https://devfile.io/docs/2.2.0/defining-variables).
+The `container` component type supports the following schema properties only:
+
+| Property | Description |
+|----------------| -------------------------------------------------------------------------------------------------------------------------------|
+| `image` | Name of the container image to use for the workspace. |
+| `memoryRequest`| Minimum amount of memory the container can use. |
+| `memoryLimit` | Maximum amount of memory the container can use. |
+| `cpuRequest` | Minimum amount of CPU the container can use. |
+| `cpuLimit` | Maximum amount of CPU the container can use. |
+| `env` | Environment variables to use in the container. Names must not start with `gl-`. |
+| `endpoints` | Port mappings to expose from the container. Names must not start with `gl-`. |
+| `volumeMounts` | Storage volume to mount in the container. |
### Example configurations
diff --git a/gems/config/rubocop.yml b/gems/config/rubocop.yml
index ca46e30e2cd..7cad83bbe66 100644
--- a/gems/config/rubocop.yml
+++ b/gems/config/rubocop.yml
@@ -96,10 +96,6 @@ RSpec/ContextWording:
RSpec/FeatureCategory:
Enabled: false
-# Enable once we drop 3.0 support
-Style/HashSyntax:
- Enabled: false
-
Style/InlineDisableAnnotation:
Enabled: false
@@ -114,3 +110,8 @@ Style/RegexpLiteralMixedPreserve:
- mixed
- mixed_preserve
EnforcedStyle: mixed_preserve
+
+# Short-hand Hash syntax does not work prior 3.1.
+# See https://gitlab.com/gitlab-org/gitlab/-/issues/435940#note_1703307479
+Style/HashSyntax:
+ EnforcedShorthandSyntax: never
diff --git a/gems/gem-pg.gitlab-ci.yml b/gems/gem-pg.gitlab-ci.yml
index c48e18fa297..2806437e15b 100644
--- a/gems/gem-pg.gitlab-ci.yml
+++ b/gems/gem-pg.gitlab-ci.yml
@@ -63,6 +63,7 @@ rubocop:
rules:
- exists: ["$[[inputs.gem_path_prefix]]$[[inputs.gem_name]]/.rubocop.yml"]
script:
+ - $CI_PROJECT_DIR/scripts/validate-monorepo-gem "$[[inputs.gem_name]]"
- bundle exec rubocop
rspec:
diff --git a/gems/gem.gitlab-ci.yml b/gems/gem.gitlab-ci.yml
index a379a887bdd..3ced4b5e364 100644
--- a/gems/gem.gitlab-ci.yml
+++ b/gems/gem.gitlab-ci.yml
@@ -50,6 +50,7 @@ rubocop:
rules:
- exists: ["$[[inputs.gem_path_prefix]]$[[inputs.gem_name]]/.rubocop.yml"]
script:
+ - $CI_PROJECT_DIR/scripts/validate-monorepo-gem "$[[inputs.gem_name]]"
- bundle exec rubocop
rspec:
diff --git a/gems/gitlab-database-load_balancing/Gemfile.lock b/gems/gitlab-database-load_balancing/Gemfile.lock
index b2d66b9a386..9c8653d9389 100644
--- a/gems/gitlab-database-load_balancing/Gemfile.lock
+++ b/gems/gitlab-database-load_balancing/Gemfile.lock
@@ -16,6 +16,7 @@ PATH
remote: ../gitlab-safe_request_store
specs:
gitlab-safe_request_store (0.1.0)
+ rack (~> 2.2.8)
request_store
PATH
@@ -25,7 +26,6 @@ PATH
actionview (>= 6.1.7.2)
activesupport (>= 6.1.7.2)
addressable (~> 2.8)
- nokogiri (~> 1.15.2)
rake (~> 13.0)
PATH
diff --git a/gems/gitlab-housekeeper/Gemfile.lock b/gems/gitlab-housekeeper/Gemfile.lock
index 2b18c02558c..9fbdc246811 100644
--- a/gems/gitlab-housekeeper/Gemfile.lock
+++ b/gems/gitlab-housekeeper/Gemfile.lock
@@ -10,6 +10,7 @@ PATH
remote: .
specs:
gitlab-housekeeper (0.1.0)
+ activesupport
httparty
rubocop
@@ -122,7 +123,7 @@ GEM
hashdiff (>= 0.4.0, < 2.0.0)
PLATFORMS
- arm64-darwin-22
+ ruby
DEPENDENCIES
gitlab-housekeeper!
diff --git a/gems/gitlab-housekeeper/README.md b/gems/gitlab-housekeeper/README.md
index f707b99c6f0..25d68e67bd8 100644
--- a/gems/gitlab-housekeeper/README.md
+++ b/gems/gitlab-housekeeper/README.md
@@ -1,6 +1,86 @@
# Gitlab::Housekeeper
-Housekeeping following https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134487
+This is a gem which can be run locally or in CI to do static and dynamic
+analysis of the GitLab codebase and, using a list of predefined "keeps", it will
+automatically create merge requests for things that developers would have
+otherwise needed to remember to do themselves.
+
+It is analogous to a mix of `rubocop -a` and GitLab Dependency Bot.
+
+The word "keep" is used to describe a specific rule to apply to the code to
+match a required change and actually edit the code. The word "keep" was chosen
+as it sounds like "cop" and is very similar to implementing a rubocop rule as
+well as code to autocorrect the rule.
+
+You can see the existing keeps in
+https://gitlab.com/gitlab-org/gitlab/-/tree/master/keeps .
+
+## How the code is organized
+
+The code is organized in a very similar way to RuboCop in that we have an
+overall gem called `gitlab-housekeeper` that contains the generic logic of
+looping over all `keeps` (analogous to Cops) which are rules for how to detect
+changes that can be made to the code and then actually how to correct them.
+
+Then users of this gem are expected to add a `keeps` directory in their project
+with all the keeps specific to their project. This gem may at some point
+include keeps that are generic enough to be used by other projects.
+
+## How to implement a keep
+
+The only thing you need to implement is an `each_change` method. The method
+should yield changes in the form of a `::Gitlab::Housekeeper::Change` object,
+where each change object represents a merge request that will be created.
+The object describes the files that should be commited and other metadata
+should be added to the merge request. Before yielding the `Change` the keep
+should also edit the files locally.
+
+Here is an example of a very simple keep that creates 3 new files called
+`new_file1.txt`, `new_file2.txt` and `new_file3.txt`:
+
+```ruby
+# keeps/pretty_useless_keep.rb
+
+module Keeps
+ class PrettyUselessKeep < ::Gitlab::Housekeeper::Keep
+ def each_change
+ (1..3).each do |i|
+ file_name = "new_file#{i}.txt"
+
+ `touch #{file_name}`
+
+ identifiers = [self.class.name.demodulize, "new_file#{i}"]
+
+ title = "Make new file #{file_name}"
+
+ description = <<~MARKDOWN
+ ## New files
+
+ This MR makes a new file #{file_name}
+ MARKDOWN
+
+ labels = %w(type::feature)
+
+ changed_files = [file_name]
+
+ yield(::Gitlab::Housekeeper::Change.new(
+ identifiers, title, description, changed_files, labels
+ ))
+ end
+ end
+ end
+end
+```
+
+You can dry-run this locally with the following command:
+
+```
+bundle exec gitlab-housekeeper -r keeps/pretty_useless_keep.rb -k Keeps::PrettyUselessKeep -d -m 3
+```
+
+The `-d` just prints the contents of the merge request. Removing this will
+actually create merge requests and requires setting a few environment
+variables described below.
## Running
@@ -14,7 +94,7 @@ a mistake. The alternative of using your own API token with it's permissions to
1. Create a project access token for that project
1. Set `housekeeper` remote to the fork you created
```
- git remote add housekeeper git@gitlab.com:DylanGriffith/gitlab.git
+ git remote add housekeeper <FORK_GIT_URL>
```
1. Open a Postgres.ai tunnel on localhost port 6305
1. Set the Postgres AI env vars matching the tunnel details for your tunnel
@@ -24,8 +104,8 @@ a mistake. The alternative of using your own API token with it's permissions to
```
1. Set the GitLab client details. Will be used to create MR from housekeeper remote:
```
- export HOUSEKEEPER_FORK_PROJECT_ID=52263761 # Same project as housekeeper remote
- export HOUSEKEEPER_TARGET_PROJECT_ID=52263761 # Can be 278964 (gitlab-org/gitlab) when ready to create real MRs
+ export HOUSEKEEPER_FORK_PROJECT_ID=<FORK_PROJECT_ID> # Same project as housekeeper remote
+ export HOUSEKEEPER_TARGET_PROJECT_ID=<TARGET_PROJECT_ID> # Can be 278964 (gitlab-org/gitlab) when ready to create real MRs
export HOUSEKEEPER_GITLAB_API_TOKEN=the-api-token
```
1. Run it:
diff --git a/gems/gitlab-housekeeper/gitlab-housekeeper.gemspec b/gems/gitlab-housekeeper/gitlab-housekeeper.gemspec
index 798ca5dcfe6..4083b3c2d11 100644
--- a/gems/gitlab-housekeeper/gitlab-housekeeper.gemspec
+++ b/gems/gitlab-housekeeper/gitlab-housekeeper.gemspec
@@ -19,11 +19,12 @@ Gem::Specification.new do |spec|
spec.require_paths = ["lib"]
spec.executables = ['gitlab-housekeeper']
+ spec.add_runtime_dependency 'activesupport'
spec.add_runtime_dependency 'httparty'
spec.add_runtime_dependency 'rubocop'
spec.add_development_dependency 'gitlab-styles'
spec.add_development_dependency 'rspec-rails'
- spec.add_development_dependency "rubocop-rspec"
+ spec.add_development_dependency 'rubocop-rspec'
spec.add_development_dependency 'webmock'
end
diff --git a/gems/gitlab-housekeeper/lib/gitlab/housekeeper/gitlab_client.rb b/gems/gitlab-housekeeper/lib/gitlab/housekeeper/gitlab_client.rb
index b28d44195cb..d2bb5065824 100644
--- a/gems/gitlab-housekeeper/lib/gitlab/housekeeper/gitlab_client.rb
+++ b/gems/gitlab-housekeeper/lib/gitlab/housekeeper/gitlab_client.rb
@@ -13,13 +13,65 @@ module Gitlab
@base_uri = 'https://gitlab.com/api/v4'
end
+ # This looks at the system notes of the merge request to detect if it has been updated by anyone other than the
+ # current housekeeper user. If it has then it assumes that they did this for a reason and we can skip updating
+ # this detail of the merge request. Otherwise we assume we should generate it again using the latest output.
+ def non_housekeeper_changes(
+ source_project_id:,
+ source_branch:,
+ target_branch:,
+ target_project_id:
+ )
+
+ iid = get_existing_merge_request(
+ source_project_id: source_project_id,
+ source_branch: source_branch,
+ target_branch: target_branch,
+ target_project_id: target_project_id
+ )
+
+ return [] if iid.nil?
+
+ merge_request_notes = get_merge_request_notes(target_project_id: target_project_id, iid: iid)
+
+ changes = Set.new
+
+ merge_request_notes.each do |note|
+ next false unless note["system"]
+ next false if note["author"]["id"] == current_user_id
+
+ changes << :title if note['body'].start_with?("changed title from")
+ changes << :description if note['body'] == "changed the description"
+ changes << :code if note['body'].match?(/added \d+ commit/)
+ end
+
+ resource_label_events = get_merge_request_resource_label_events(target_project_id: target_project_id, iid: iid)
+
+ resource_label_events.each do |event|
+ next if event["user"]["id"] == current_user_id
+
+ # Labels are routinely added by both humans and bots, so addition events aren't cause for concern.
+ # However, if labels have been removed it may mean housekeeper added an incorrect label, and we shouldn't
+ # re-add them.
+ #
+ # TODO: Inspect the actual labels housekeeper wants to add, and add if they haven't previously been removed.
+ changes << :labels if event["action"] == "remove"
+ end
+
+ changes.to_a
+ end
+
def create_or_update_merge_request(
source_project_id:,
title:,
description:,
+ labels:,
source_branch:,
target_branch:,
- target_project_id:
+ target_project_id:,
+ update_title:,
+ update_description:,
+ update_labels:
)
existing_iid = get_existing_merge_request(
source_project_id: source_project_id,
@@ -33,13 +85,18 @@ module Gitlab
existing_iid: existing_iid,
title: title,
description: description,
- target_project_id: target_project_id
+ labels: labels,
+ target_project_id: target_project_id,
+ update_title: update_title,
+ update_description: update_description,
+ update_labels: update_labels
)
else
create_merge_request(
source_project_id: source_project_id,
title: title,
description: description,
+ labels: labels,
source_branch: source_branch,
target_branch: target_branch,
target_project_id: target_project_id
@@ -49,6 +106,63 @@ module Gitlab
private
+ def get_merge_request_notes(target_project_id:, iid:)
+ response = HTTParty.get(
+ "#{@base_uri}/projects/#{target_project_id}/merge_requests/#{iid}/notes",
+ query: {
+ per_page: 100
+ },
+ headers: {
+ "Private-Token" => @token
+ }
+ )
+
+ unless (200..299).cover?(response.code)
+ raise Error,
+ "Failed to get merge request notes with response code: #{response.code} and body:\n#{response.body}"
+ end
+
+ JSON.parse(response.body)
+ end
+
+ def get_merge_request_resource_label_events(target_project_id:, iid:)
+ response = HTTParty.get(
+ "#{@base_uri}/projects/#{target_project_id}/merge_requests/#{iid}/resource_label_events",
+ query: {
+ per_page: 100
+ },
+ headers: {
+ "Private-Token" => @token
+ }
+ )
+
+ unless (200..299).cover?(response.code)
+ raise Error,
+ "Failed to get merge request label events with response code: #{response.code} and body:\n#{response.body}"
+ end
+
+ JSON.parse(response.body)
+ end
+
+ def current_user_id
+ @current_user_id = begin
+ response = HTTParty.get(
+ "#{@base_uri}/user",
+ headers: {
+ "Private-Token" => @token
+ }
+ )
+
+ unless (200..299).cover?(response.code)
+ raise Error,
+ "Failed with response code: #{response.code} and body:\n#{response.body}"
+ end
+
+ data = JSON.parse(response.body)
+ data['id']
+ end
+ end
+
def get_existing_merge_request(source_project_id:, source_branch:, target_branch:, target_project_id:)
response = HTTParty.get("#{@base_uri}/projects/#{target_project_id}/merge_requests",
query: {
@@ -78,11 +192,18 @@ module Gitlab
end
def create_merge_request(
- source_project_id:, title:, description:, source_branch:, target_branch:,
- target_project_id:)
+ source_project_id:,
+ title:,
+ description:,
+ labels:,
+ source_branch:,
+ target_branch:,
+ target_project_id:
+ )
response = HTTParty.post("#{@base_uri}/projects/#{source_project_id}/merge_requests", body: {
title: title,
description: description,
+ labels: Array(labels).join(','),
source_branch: source_branch,
target_branch: target_branch,
target_project_id: target_project_id
@@ -98,11 +219,26 @@ module Gitlab
"Failed with response code: #{response.code} and body:\n#{response.body}"
end
- def update_existing_merge_request(existing_iid:, title:, description:, target_project_id:)
- response = HTTParty.put("#{@base_uri}/projects/#{target_project_id}/merge_requests/#{existing_iid}", body: {
- title: title,
- description: description
- }.to_json,
+ def update_existing_merge_request(
+ existing_iid:,
+ title:,
+ description:,
+ labels:,
+ target_project_id:,
+ update_title:,
+ update_description:,
+ update_labels:
+ )
+ body = {}
+
+ body[:title] = title if update_title
+ body[:description] = description if update_description
+ body[:add_labels] = Array(labels).join(',') if update_labels
+
+ return if body.empty?
+
+ response = HTTParty.put("#{@base_uri}/projects/#{target_project_id}/merge_requests/#{existing_iid}",
+ body: body.to_json,
headers: {
'Private-Token' => @token,
'Content-Type' => 'application/json'
diff --git a/gems/gitlab-housekeeper/lib/gitlab/housekeeper/runner.rb b/gems/gitlab-housekeeper/lib/gitlab/housekeeper/runner.rb
index 76d629e29a3..45d52a0bd8b 100644
--- a/gems/gitlab-housekeeper/lib/gitlab/housekeeper/runner.rb
+++ b/gems/gitlab-housekeeper/lib/gitlab/housekeeper/runner.rb
@@ -1,13 +1,14 @@
# frozen_string_literal: true
+require 'active_support/core_ext/string'
require 'gitlab/housekeeper/keep'
-require "gitlab/housekeeper/gitlab_client"
-require "gitlab/housekeeper/git"
+require 'gitlab/housekeeper/gitlab_client'
+require 'gitlab/housekeeper/git'
require 'digest'
module Gitlab
module Housekeeper
- Change = Struct.new(:identifiers, :title, :description, :changed_files)
+ Change = Struct.new(:identifiers, :title, :description, :changed_files, :labels)
class Runner
def initialize(max_mrs: 1, dry_run: false, require: [], keeps: nil)
@@ -59,26 +60,52 @@ module Gitlab
end
def dry_run(change, branch_name)
+ puts "=> #{change.identifiers.join(': ')}"
+
+ if change.labels.present?
+ puts '=> Attributes:'
+ puts "Labels: #{change.labels.join(', ')}"
+ puts
+ end
+
+ puts '=> Title:'
+ puts change.title
puts
- puts "# #{change.title}"
- puts
+
+ puts '=> Description:'
puts change.description
puts
+
+ puts '=> Diff:'
puts Shell.execute('git', '--no-pager', 'diff', 'master', branch_name, '--', *change.changed_files)
+ puts
end
def create(change, branch_name)
dry_run(change, branch_name)
- Shell.execute('git', 'push', '-f', 'housekeeper', "#{branch_name}:#{branch_name}")
+ non_housekeeper_changes = gitlab_client.non_housekeeper_changes(
+ source_project_id: housekeeper_fork_project_id,
+ source_branch: branch_name,
+ target_branch: 'master',
+ target_project_id: housekeeper_target_project_id
+ )
+
+ unless non_housekeeper_changes.include?(:code)
+ Shell.execute('git', 'push', '-f', 'housekeeper', "#{branch_name}:#{branch_name}")
+ end
gitlab_client.create_or_update_merge_request(
source_project_id: housekeeper_fork_project_id,
title: change.title,
description: change.description,
+ labels: change.labels,
source_branch: branch_name,
target_branch: 'master',
- target_project_id: housekeeper_target_project_id
+ target_project_id: housekeeper_target_project_id,
+ update_title: !non_housekeeper_changes.include?(:title),
+ update_description: !non_housekeeper_changes.include?(:description),
+ update_labels: !non_housekeeper_changes.include?(:labels)
)
end
diff --git a/gems/gitlab-housekeeper/spec/gitlab/housekeeper/gitlab_client_spec.rb b/gems/gitlab-housekeeper/spec/gitlab/housekeeper/gitlab_client_spec.rb
index 36b2afdc306..ffb9d2f8d23 100644
--- a/gems/gitlab-housekeeper/spec/gitlab/housekeeper/gitlab_client_spec.rb
+++ b/gems/gitlab-housekeeper/spec/gitlab/housekeeper/gitlab_client_spec.rb
@@ -3,26 +3,225 @@
require 'spec_helper'
require 'gitlab/housekeeper/gitlab_client'
+# rubocop:disable RSpec/MultipleMemoizedHelpers -- there are lots of parameters at play
RSpec.describe ::Gitlab::Housekeeper::GitlabClient do
let(:client) { described_class.new }
+ before do
+ stub_env('HOUSEKEEPER_GITLAB_API_TOKEN', 'the-api-token')
+ end
+
+ describe '#non_housekeeper_changes' do
+ let(:housekeeper_user_id) { 666 }
+
+ let(:added_commit_note) do
+ {
+ id: 1698248524,
+ body: "added 1 commit\n\n<ul><li>41b3a17f - Update stuff to test...",
+ author: { "id" => 1234 },
+ system: true
+ }
+ end
+
+ let(:irrelevant_note1) do
+ {
+ id: 1698248523,
+ body: "changed this line in ...",
+ author: { "id" => 1234 },
+ system: true
+ }
+ end
+
+ let(:not_a_system_note) do
+ {
+ id: 1698248524,
+ body: "added 1 commit\n\n<ul><li>41b3a17f - Update stuff to test...",
+ author: { "id" => 1234 },
+ system: false
+ }
+ end
+
+ let(:updated_title_note) do
+ {
+ id: 1698248527,
+ body: "changed title from **Add sharding{- -}key `namespace_id` to achievements**...",
+ author: { "id" => 1235 },
+ system: true
+ }
+ end
+
+ let(:updated_description_note) do
+ {
+ id: 1698248530,
+ body: "changed the description",
+ author: { "id" => 1236 },
+ system: true
+ }
+ end
+
+ let(:notes) do
+ [irrelevant_note1, not_a_system_note]
+ end
+
+ let(:added_label_event) do
+ {
+ id: 274504558,
+ user: { id: 18645100 },
+ label: { id: 2492649, name: "good label" },
+ action: "add"
+ }
+ end
+
+ let(:removed_label_event) do
+ {
+ id: 274504558,
+ user: { id: 18645100 },
+ label: { id: 2492649, name: "bad label" },
+ action: "remove"
+ }
+ end
+
+ let(:resource_label_events) do
+ [added_label_event]
+ end
+
+ subject(:non_housekeeper_changes) do
+ client.non_housekeeper_changes(
+ source_project_id: 123,
+ target_project_id: 456,
+ source_branch: 'the-source-branch',
+ target_branch: 'the-target-branch'
+ )
+ end
+
+ before do
+ # Get the current housekeeper user
+ stub_request(:get, "https://gitlab.com/api/v4/user")
+ .with(
+ headers: {
+ 'Private-Token' => 'the-api-token'
+ }
+ )
+ .to_return(status: 200, body: { id: housekeeper_user_id }.to_json)
+
+ # Get the id of the current merge request
+ stub_request(:get, "https://gitlab.com/api/v4/projects/456/merge_requests?state=opened&source_branch=the-source-branch&target_branch=the-target-branch&source_project_id=123")
+ .with(
+ headers: {
+ 'Private-Token' => 'the-api-token'
+ }
+ )
+ .to_return(status: 200, body: [{ iid: 8765 }].to_json)
+
+ # Get the notes of the current merge request
+ stub_request(:get, "https://gitlab.com/api/v4/projects/456/merge_requests/8765/notes?per_page=100")
+ .with(
+ headers: {
+ 'Private-Token' => 'the-api-token'
+ }
+ )
+ .to_return(status: 200, body: notes.to_json)
+
+ # Get the label changes for the merge request
+ stub_request(:get, "https://gitlab.com/api/v4/projects/456/merge_requests/8765/resource_label_events?per_page=100")
+ .with(
+ headers: {
+ 'Private-Token' => 'the-api-token'
+ }
+ )
+ .to_return(status: 200, body: resource_label_events.to_json)
+ end
+
+ it 'does not match irrelevant notes' do
+ expect(non_housekeeper_changes).to eq([])
+ end
+
+ context 'when all important things change' do
+ let(:notes) do
+ [not_a_system_note, updated_title_note, updated_description_note, added_commit_note]
+ end
+
+ let(:resource_label_events) do
+ [removed_label_event]
+ end
+
+ it 'returns :title, :description, :code, :labels' do
+ expect(non_housekeeper_changes).to include(:title)
+ expect(non_housekeeper_changes).to include(:description)
+ expect(non_housekeeper_changes).to include(:code)
+ expect(non_housekeeper_changes).to include(:labels)
+ end
+ end
+
+ context 'when title changes' do
+ let(:notes) do
+ [not_a_system_note, updated_title_note]
+ end
+
+ it 'returns :title' do
+ expect(non_housekeeper_changes).to include(:title)
+ expect(non_housekeeper_changes).not_to include(:description)
+ expect(non_housekeeper_changes).not_to include(:code)
+ expect(non_housekeeper_changes).not_to include(:labels)
+ end
+ end
+
+ context 'when description changes' do
+ let(:notes) do
+ [not_a_system_note, updated_description_note]
+ end
+
+ it 'returns :description' do
+ expect(non_housekeeper_changes).not_to include(:title)
+ expect(non_housekeeper_changes).to include(:description)
+ expect(non_housekeeper_changes).not_to include(:code)
+ expect(non_housekeeper_changes).not_to include(:labels)
+ end
+ end
+
+ context 'when labels change' do
+ let(:notes) do
+ [not_a_system_note]
+ end
+
+ let(:resource_label_events) do
+ [added_label_event, removed_label_event]
+ end
+
+ it 'returns :labels' do
+ expect(non_housekeeper_changes).not_to include(:title)
+ expect(non_housekeeper_changes).not_to include(:description)
+ expect(non_housekeeper_changes).not_to include(:code)
+ expect(non_housekeeper_changes).to include(:labels)
+ end
+ end
+
+ context 'when the merge request does not exist' do
+ it 'returns empty array' do
+ expect(non_housekeeper_changes).to eq([])
+ end
+ end
+ end
+
describe '#create_or_update_merge_request' do
let(:params) do
{
source_project_id: 123,
title: 'A new merge request!',
+ labels: %w[label-1 label-2],
description: 'This merge request is pretty good.',
source_branch: 'the-source-branch',
target_branch: 'the-target-branch',
- target_project_id: 456
+ target_project_id: 456,
+ update_title: true,
+ update_description: true,
+ update_labels: true
}
end
let(:existing_mrs) { [] }
before do
- stub_env('HOUSEKEEPER_GITLAB_API_TOKEN', 'the-api-token')
-
# Stub the check to see if the merge request already exists
stub_request(:get, "https://gitlab.com/api/v4/projects/456/merge_requests?state=opened&source_branch=the-source-branch&target_branch=the-target-branch&source_project_id=123")
.with(
@@ -39,6 +238,7 @@ RSpec.describe ::Gitlab::Housekeeper::GitlabClient do
body: {
title: "A new merge request!",
description: "This merge request is pretty good.",
+ labels: "label-1,label-2",
source_branch: "the-source-branch",
target_branch: "the-target-branch",
target_project_id: 456
@@ -64,7 +264,8 @@ RSpec.describe ::Gitlab::Housekeeper::GitlabClient do
.with(
body: {
title: "A new merge request!",
- description: "This merge request is pretty good."
+ description: "This merge request is pretty good.",
+ add_labels: "label-1,label-2"
}.to_json,
headers: {
'Content-Type' => 'application/json',
@@ -85,6 +286,70 @@ RSpec.describe ::Gitlab::Housekeeper::GitlabClient do
expect { client.create_or_update_merge_request(**params) }.to raise_error(described_class::Error)
end
end
+
+ context 'when update_title: false' do
+ it 'does not update the title' do
+ stub = stub_request(:put, "https://gitlab.com/api/v4/projects/456/merge_requests/1234")
+ .with(
+ body: {
+ description: "This merge request is pretty good.",
+ add_labels: "label-1,label-2"
+ }.to_json,
+ headers: {
+ 'Content-Type' => 'application/json',
+ 'Private-Token' => 'the-api-token'
+ }
+ ).to_return(status: 200, body: "")
+
+ client.create_or_update_merge_request(**params.merge(update_title: false))
+ expect(stub).to have_been_requested
+ end
+ end
+
+ context 'when update_description: false' do
+ it 'does not update the description' do
+ stub = stub_request(:put, "https://gitlab.com/api/v4/projects/456/merge_requests/1234")
+ .with(
+ body: {
+ title: "A new merge request!",
+ add_labels: "label-1,label-2"
+ }.to_json,
+ headers: {
+ 'Content-Type' => 'application/json',
+ 'Private-Token' => 'the-api-token'
+ }
+ ).to_return(status: 200, body: "")
+
+ client.create_or_update_merge_request(**params.merge(update_description: false))
+ expect(stub).to have_been_requested
+ end
+ end
+
+ context 'when update_labels: false' do
+ it 'does not update the labels' do
+ stub = stub_request(:put, "https://gitlab.com/api/v4/projects/456/merge_requests/1234")
+ .with(
+ body: {
+ title: "A new merge request!",
+ description: "This merge request is pretty good."
+ }.to_json,
+ headers: {
+ 'Content-Type' => 'application/json',
+ 'Private-Token' => 'the-api-token'
+ }
+ ).to_return(status: 200, body: "")
+
+ client.create_or_update_merge_request(**params.merge(update_labels: false))
+ expect(stub).to have_been_requested
+ end
+ end
+
+ context 'when there is nothing to update' do
+ it 'does not make a request' do
+ client.create_or_update_merge_request(**params.merge(update_description: false, update_title: false,
+ update_labels: false))
+ end
+ end
end
it 'raises an error when unsuccessful response' do
@@ -97,3 +362,4 @@ RSpec.describe ::Gitlab::Housekeeper::GitlabClient do
end
end
end
+# rubocop:enable RSpec/MultipleMemoizedHelpers
diff --git a/gems/gitlab-housekeeper/spec/gitlab/housekeeper/runner_spec.rb b/gems/gitlab-housekeeper/spec/gitlab/housekeeper/runner_spec.rb
index 49b4926dbdd..d1fdbcb1004 100644
--- a/gems/gitlab-housekeeper/spec/gitlab/housekeeper/runner_spec.rb
+++ b/gems/gitlab-housekeeper/spec/gitlab/housekeeper/runner_spec.rb
@@ -3,6 +3,7 @@
require 'spec_helper'
require 'gitlab/housekeeper/runner'
+# rubocop:disable RSpec/MultipleMemoizedHelpers -- there are lots of parameters at play
RSpec.describe ::Gitlab::Housekeeper::Runner do
let(:fake_keep) { instance_double(Class) }
@@ -11,7 +12,8 @@ RSpec.describe ::Gitlab::Housekeeper::Runner do
%w[the identifier for the first change],
"The title of MR1",
"The description of the MR",
- ['change1.txt', 'change2.txt']
+ ['change1.txt', 'change2.txt'],
+ ['example-label']
)
end
@@ -20,7 +22,8 @@ RSpec.describe ::Gitlab::Housekeeper::Runner do
%w[the identifier for the second change],
"The title of MR2",
"The description of the MR",
- ['change1.txt', 'change2.txt']
+ ['change1.txt', 'change2.txt'],
+ ['example-label']
)
end
@@ -29,7 +32,8 @@ RSpec.describe ::Gitlab::Housekeeper::Runner do
%w[the identifier for the third change],
"The title of MR3",
"The description of the MR",
- ['change1.txt', 'change2.txt']
+ ['change1.txt', 'change2.txt'],
+ ['example-label']
)
end
@@ -44,18 +48,34 @@ RSpec.describe ::Gitlab::Housekeeper::Runner do
end
describe '#run' do
+ let(:git) { instance_double(::Gitlab::Housekeeper::Git) }
+ let(:gitlab_client) { instance_double(::Gitlab::Housekeeper::GitlabClient) }
+
before do
stub_env('HOUSEKEEPER_FORK_PROJECT_ID', '123')
stub_env('HOUSEKEEPER_TARGET_PROJECT_ID', '456')
+
+ allow(::Gitlab::Housekeeper::Git).to receive(:new)
+ .and_return(git)
+
+ allow(git).to receive(:with_branch_from_branch)
+ .and_yield
+ allow(git).to receive(:commit_in_branch).with(change1)
+ .and_return('the-identifier-for-the-first-change')
+ allow(git).to receive(:commit_in_branch).with(change2)
+ .and_return('the-identifier-for-the-second-change')
+
+ allow(::Gitlab::Housekeeper::GitlabClient).to receive(:new)
+ .and_return(gitlab_client)
+
+ allow(gitlab_client).to receive(:non_housekeeper_changes)
+ .and_return([])
+
+ allow(::Gitlab::Housekeeper::Shell).to receive(:execute)
end
it 'loops over the keeps and creates MRs limited by max_mrs' do
# Branches get created
- git = instance_double(::Gitlab::Housekeeper::Git)
- expect(::Gitlab::Housekeeper::Git).to receive(:new)
- .and_return(git)
- expect(git).to receive(:with_branch_from_branch)
- .and_yield
expect(git).to receive(:commit_in_branch).with(change1)
.and_return('the-identifier-for-the-first-change')
expect(git).to receive(:commit_in_branch).with(change2)
@@ -76,29 +96,93 @@ RSpec.describe ::Gitlab::Housekeeper::Runner do
'the-identifier-for-the-second-change:the-identifier-for-the-second-change')
# Merge requests get created
- gitlab_client = instance_double(::Gitlab::Housekeeper::GitlabClient)
- expect(::Gitlab::Housekeeper::GitlabClient).to receive(:new)
- .and_return(gitlab_client)
expect(gitlab_client).to receive(:create_or_update_merge_request)
.with(
source_project_id: '123',
title: 'The title of MR1',
description: 'The description of the MR',
+ labels: ['example-label'],
source_branch: 'the-identifier-for-the-first-change',
target_branch: 'master',
- target_project_id: '456'
+ target_project_id: '456',
+ update_title: true,
+ update_description: true,
+ update_labels: true
)
expect(gitlab_client).to receive(:create_or_update_merge_request)
.with(
source_project_id: '123',
title: 'The title of MR2',
description: 'The description of the MR',
+ labels: ['example-label'],
source_branch: 'the-identifier-for-the-second-change',
target_branch: 'master',
- target_project_id: '456'
+ target_project_id: '456',
+ update_title: true,
+ update_description: true,
+ update_labels: true
)
described_class.new(max_mrs: 2, keeps: [fake_keep]).run
end
+
+ context 'when title, description, code has changed already' do
+ it 'does not update the changed details' do
+ # First change has updated code and description so should only update title
+ expect(gitlab_client).to receive(:non_housekeeper_changes)
+ .with(
+ source_project_id: '123',
+ source_branch: 'the-identifier-for-the-first-change',
+ target_branch: 'master',
+ target_project_id: '456'
+ ).and_return([:code, :description])
+
+ # Second change has updated title and description so it should push the code
+ expect(gitlab_client).to receive(:non_housekeeper_changes)
+ .with(
+ source_project_id: '123',
+ source_branch: 'the-identifier-for-the-second-change',
+ target_branch: 'master',
+ target_project_id: '456'
+ ).and_return([:title, :description])
+
+ expect(::Gitlab::Housekeeper::Shell).not_to receive(:execute)
+ .with('git', 'push', '-f', 'housekeeper',
+ 'the-identifier-for-the-first-change:the-identifier-for-the-first-change')
+ expect(::Gitlab::Housekeeper::Shell).to receive(:execute)
+ .with('git', 'push', '-f', 'housekeeper',
+ 'the-identifier-for-the-second-change:the-identifier-for-the-second-change')
+
+ expect(gitlab_client).to receive(:create_or_update_merge_request)
+ .with(
+ source_project_id: '123',
+ title: 'The title of MR1',
+ description: 'The description of the MR',
+ labels: ['example-label'],
+ source_branch: 'the-identifier-for-the-first-change',
+ target_branch: 'master',
+ target_project_id: '456',
+ update_title: true,
+ update_description: false,
+ update_labels: true
+ )
+ expect(gitlab_client).to receive(:create_or_update_merge_request)
+ .with(
+ source_project_id: '123',
+ title: 'The title of MR2',
+ description: 'The description of the MR',
+ labels: ['example-label'],
+ source_branch: 'the-identifier-for-the-second-change',
+ target_branch: 'master',
+ target_project_id: '456',
+ update_title: false,
+ update_description: false,
+ update_labels: true
+ )
+
+ described_class.new(max_mrs: 2, keeps: [fake_keep]).run
+ end
+ end
end
end
+# rubocop:enable RSpec/MultipleMemoizedHelpers
diff --git a/gems/gitlab-http/Gemfile.lock b/gems/gitlab-http/Gemfile.lock
index 5fb1963d8f3..149a6805f05 100644
--- a/gems/gitlab-http/Gemfile.lock
+++ b/gems/gitlab-http/Gemfile.lock
@@ -13,7 +13,6 @@ PATH
actionview (>= 6.1.7.2)
activesupport (>= 6.1.7.2)
addressable (~> 2.8)
- nokogiri (~> 1.15.2)
rake (~> 13.0)
PATH
@@ -24,7 +23,6 @@ PATH
concurrent-ruby (~> 1.2)
httparty (~> 0.21.0)
ipaddress (~> 0.8.3)
- nokogiri (~> 1.15.4)
railties (~> 7)
GEM
diff --git a/gems/gitlab-http/gitlab-http.gemspec b/gems/gitlab-http/gitlab-http.gemspec
index 0033f17447b..27366246bb1 100644
--- a/gems/gitlab-http/gitlab-http.gemspec
+++ b/gems/gitlab-http/gitlab-http.gemspec
@@ -23,7 +23,6 @@ Gem::Specification.new do |spec|
spec.add_runtime_dependency 'concurrent-ruby', '~> 1.2'
spec.add_runtime_dependency 'httparty', '~> 0.21.0'
spec.add_runtime_dependency 'ipaddress', '~> 0.8.3'
- spec.add_runtime_dependency 'nokogiri', '~> 1.15.4'
spec.add_runtime_dependency "railties", "~> 7"
spec.add_development_dependency 'gitlab-styles', '~> 10.1.0'
diff --git a/gems/gitlab-http/lib/gitlab/http_v2/lazy_response.rb b/gems/gitlab-http/lib/gitlab/http_v2/lazy_response.rb
index 65d1ab96644..7c7a44f77e2 100644
--- a/gems/gitlab-http/lib/gitlab/http_v2/lazy_response.rb
+++ b/gems/gitlab-http/lib/gitlab/http_v2/lazy_response.rb
@@ -7,7 +7,7 @@ module Gitlab
attr_reader :promise
- delegate :state, to: :promise
+ delegate :state, :complete?, to: :promise
def initialize(promise, path, options, log_info)
@promise = promise
diff --git a/gems/gitlab-rspec_flaky/lib/gitlab/rspec_flaky/listener.rb b/gems/gitlab-rspec_flaky/lib/gitlab/rspec_flaky/listener.rb
index 6f4dce9df33..c40d9e90b56 100644
--- a/gems/gitlab-rspec_flaky/lib/gitlab/rspec_flaky/listener.rb
+++ b/gems/gitlab-rspec_flaky/lib/gitlab/rspec_flaky/listener.rb
@@ -36,6 +36,10 @@ module Gitlab
end
def dump_summary(_)
+ rails_logger_warn(
+ "\n#{flaky_examples.count} known flaky example(s) detected. " \
+ "Writing this to #{Config.flaky_examples_report_path}.\n"
+ )
Report.new(flaky_examples).write(Config.flaky_examples_report_path)
return unless new_flaky_examples.any?
diff --git a/gems/gitlab-rspec_flaky/spec/gitlab/rspec_flaky/listener_spec.rb b/gems/gitlab-rspec_flaky/spec/gitlab/rspec_flaky/listener_spec.rb
index b46044e4521..a830226d88f 100644
--- a/gems/gitlab-rspec_flaky/spec/gitlab/rspec_flaky/listener_spec.rb
+++ b/gems/gitlab-rspec_flaky/spec/gitlab/rspec_flaky/listener_spec.rb
@@ -197,6 +197,8 @@ RSpec.describe Gitlab::RspecFlaky::Listener, :aggregate_failures do
end
describe '#dump_summary' do
+ subject { listener.dump_summary(nil) }
+
let(:listener) { described_class.new(suite_flaky_example_report.to_json) }
let(:new_flaky_rspec_example) { double(new_example_attrs.merge(attempts: 2)) }
let(:already_flaky_rspec_example) { double(already_flaky_example_attrs.merge(attempts: 2)) }
@@ -207,6 +209,39 @@ RSpec.describe Gitlab::RspecFlaky::Listener, :aggregate_failures do
allow(Kernel).to receive(:warn)
end
+ context 'when not flaky tests were found' do
+ it 'prints a message in the console' do
+ allow(Kernel).to receive(:warn).and_call_original
+
+ expect { subject }.to output(
+ %r{0 known flaky example\(s\) detected\. Writing this to rspec/flaky/report\.json}
+ ).to_stderr
+ end
+ end
+
+ context 'when existing flaky tests were found' do
+ before do
+ listener.example_passed(notification_already_flaky_rspec_example)
+ end
+
+ it 'does write them in the correct report' do
+ report = double
+
+ expect(Gitlab::RspecFlaky::Report).to receive(:new).with(listener.flaky_examples).and_return(report)
+ expect(report).to receive(:write).with(Gitlab::RspecFlaky::Config.flaky_examples_report_path)
+
+ subject
+ end
+
+ it 'prints a message in the console' do
+ allow(Kernel).to receive(:warn).and_call_original
+
+ expect { subject }.to output(
+ %r{1 known flaky example\(s\) detected\. Writing this to rspec/flaky/report\.json}
+ ).to_stderr
+ end
+ end
+
context 'when a report file path is set by FLAKY_RSPEC_REPORT_PATH' do
it 'delegates the writes to RspecFlaky::Report' do
listener.example_passed(notification_new_flaky_rspec_example)
@@ -222,7 +257,7 @@ RSpec.describe Gitlab::RspecFlaky::Listener, :aggregate_failures do
.to receive(:new).with(listener.__send__(:new_flaky_examples)).and_return(report2)
expect(report2).to receive(:write).with(Gitlab::RspecFlaky::Config.new_flaky_examples_report_path)
- listener.dump_summary(nil)
+ subject
end
end
end
diff --git a/gems/gitlab-safe_request_store/Gemfile.lock b/gems/gitlab-safe_request_store/Gemfile.lock
index 50ff694d7d5..d26bab2f4f0 100644
--- a/gems/gitlab-safe_request_store/Gemfile.lock
+++ b/gems/gitlab-safe_request_store/Gemfile.lock
@@ -2,6 +2,7 @@ PATH
remote: .
specs:
gitlab-safe_request_store (0.1.0)
+ rack (~> 2.2.8)
request_store
GEM
@@ -35,7 +36,7 @@ GEM
coderay (~> 1.1)
method_source (~> 1.0)
racc (1.6.2)
- rack (3.0.4.1)
+ rack (2.2.8)
rainbow (3.1.1)
regexp_parser (2.7.0)
request_store (1.5.1)
diff --git a/gems/gitlab-safe_request_store/gitlab-safe_request_store.gemspec b/gems/gitlab-safe_request_store/gitlab-safe_request_store.gemspec
index a685a1eb447..b3ced3929c8 100644
--- a/gems/gitlab-safe_request_store/gitlab-safe_request_store.gemspec
+++ b/gems/gitlab-safe_request_store/gitlab-safe_request_store.gemspec
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
spec.files = Dir['lib/**/*.rb']
spec.require_paths = ["lib"]
+ spec.add_runtime_dependency "rack", "~> 2.2.8"
spec.add_runtime_dependency "request_store"
spec.add_development_dependency "gitlab-styles", "~> 10.1.0"
diff --git a/gems/gitlab-secret_detection/Gemfile.lock b/gems/gitlab-secret_detection/Gemfile.lock
index dd9f621ee4a..029ad5d778e 100644
--- a/gems/gitlab-secret_detection/Gemfile.lock
+++ b/gems/gitlab-secret_detection/Gemfile.lock
@@ -2,6 +2,7 @@ PATH
remote: .
specs:
gitlab-secret_detection (0.1.0)
+ parallel (~> 1.22)
re2 (~> 2.4)
toml-rb (~> 2.2)
@@ -47,7 +48,7 @@ GEM
mini_portile2 (2.8.5)
minitest (5.20.0)
mutex_m (0.2.0)
- parallel (1.23.0)
+ parallel (1.24.0)
parser (3.2.2.4)
ast (~> 2.4.1)
racc
@@ -136,6 +137,7 @@ PLATFORMS
ruby
DEPENDENCIES
+ benchmark-malloc (~> 0.2)
gitlab-secret_detection!
gitlab-styles (~> 11.0)
rspec (~> 3.0)
diff --git a/gems/gitlab-secret_detection/gitlab-secret_detection.gemspec b/gems/gitlab-secret_detection/gitlab-secret_detection.gemspec
index be9db3aa389..147f370a716 100644
--- a/gems/gitlab-secret_detection/gitlab-secret_detection.gemspec
+++ b/gems/gitlab-secret_detection/gitlab-secret_detection.gemspec
@@ -24,9 +24,11 @@ Gem::Specification.new do |spec|
spec.files = Dir['lib/**/*.rb']
spec.require_paths = ["lib"]
+ spec.add_runtime_dependency "parallel", "~> 1.22"
spec.add_runtime_dependency "re2", "~> 2.4"
spec.add_runtime_dependency "toml-rb", "~> 2.2"
+ spec.add_development_dependency "benchmark-malloc", "~> 0.2"
spec.add_development_dependency "gitlab-styles", "~> 11.0"
spec.add_development_dependency "rspec", "~> 3.0"
spec.add_development_dependency "rspec-benchmark", "~> 0.6.0"
diff --git a/gems/gitlab-secret_detection/lib/gitlab/secret_detection/scan.rb b/gems/gitlab-secret_detection/lib/gitlab/secret_detection/scan.rb
index 20d630d5dbb..37103912615 100644
--- a/gems/gitlab-secret_detection/lib/gitlab/secret_detection/scan.rb
+++ b/gems/gitlab-secret_detection/lib/gitlab/secret_detection/scan.rb
@@ -4,6 +4,7 @@ require 'toml-rb'
require 're2'
require 'logger'
require 'timeout'
+require 'parallel'
module Gitlab
module SecretDetection
@@ -23,12 +24,18 @@ module Gitlab
DEFAULT_BLOB_TIMEOUT_SECS = 5
# file path where the secrets ruleset file is located
RULESET_FILE_PATH = File.expand_path('../../gitleaks.toml', __dir__)
- # ignore the scanning of a line which ends with the following keyword
- GITLEAKS_KEYWORD_IGNORE = 'gitleaks:allow'
+ # Max no of child processes to spawn per request
+ # ref: https://gitlab.com/gitlab-org/gitlab/-/issues/430160
+ MAX_PROCS_PER_REQUEST = 5
+ # Minimum cumulative size of the blobs required to spawn and
+ # run the scan within a new subprocess.
+ MIN_CHUNK_SIZE_PER_PROC_BYTES = 2_097_152 # 2MiB
+ # Whether to run scan in subprocesses or not. Default is true.
+ RUN_IN_SUBPROCESS = true
# Initializes the instance with logger along with following operations:
# 1. Parse ruleset for the given +ruleset_path+(default: +RULESET_FILE_PATH+). Raises +RulesetParseError+
- # incase the operation fails.
+ # in case the operation fails.
# 2. Extract keywords from the parsed ruleset to use it for matching keywords before regex operation.
# 3. Build and Compile rule regex patterns obtained from the ruleset. Raises +RulesetCompilationError+
# in case the compilation fails.
@@ -46,13 +53,31 @@ module Gitlab
# +timeout+:: No of seconds(accepts floating point for smaller time values) to limit the total scan duration
# +blob_timeout+:: No of seconds(accepts floating point for smaller time values) to limit
# the scan duration on each blob
+ # +subprocess+:: If passed true, the scan is performed within subprocess instead of main process.
+ # To avoid over-consuming memory by running scan on multiple large blobs within a single subprocess,
+ # it instead groups the blobs into smaller array where each array contains blobs with cumulative size of
+ # +MIN_CHUNK_SIZE_PER_PROC_BYTES+ bytes and each group runs in a separate sub-process. Default value
+ # is true.
+ #
+ # NOTE:
+ # Running the scan in fork mode primarily focuses on reducing the memory consumption of the scan by
+ # offloading regex operations on large blobs to sub-processes. However, it does not assure the improvement
+ # in the overall latency of the scan, specifically in the case of smaller blob sizes, where the overhead of
+ # forking a new process adds to the overall latency of the scan instead. More reference on Subprocess-based
+ # execution is found here: https://gitlab.com/gitlab-org/gitlab/-/issues/430160.
#
# Returns an instance of SecretDetection::Response by following below structure:
# {
# status: One of the SecretDetection::Status values
# results: [SecretDetection::Finding]
# }
- def secrets_scan(blobs, timeout: DEFAULT_SCAN_TIMEOUT_SECS, blob_timeout: DEFAULT_BLOB_TIMEOUT_SECS)
+ #
+ def secrets_scan(
+ blobs,
+ timeout: DEFAULT_SCAN_TIMEOUT_SECS,
+ blob_timeout: DEFAULT_BLOB_TIMEOUT_SECS,
+ subprocess: RUN_IN_SUBPROCESS
+ )
return SecretDetection::Response.new(SecretDetection::Status::INPUT_ERROR) unless validate_scan_input(blobs)
Timeout.timeout(timeout) do
@@ -60,7 +85,11 @@ module Gitlab
next SecretDetection::Response.new(SecretDetection::Status::NOT_FOUND) if matched_blobs.empty?
- secrets = find_secrets_bulk(matched_blobs, blob_timeout)
+ secrets = if subprocess
+ run_scan_within_subprocess(blobs, blob_timeout)
+ else
+ run_scan(blobs, blob_timeout)
+ end
scan_status = overall_scan_status(secrets)
@@ -114,7 +143,7 @@ module Gitlab
secrets_keywords.flatten.compact.to_set
end
- # returns only those blobs that contain atleast one of the keywords
+ # returns only those blobs that contain at least one of the keywords
# from the keywords list
def filter_by_keywords(blobs)
matched_blobs = []
@@ -126,22 +155,43 @@ module Gitlab
matched_blobs.freeze
end
- # finds secrets in the given list of blobs
- def find_secrets_bulk(blobs, blob_timeout)
- found_secrets = []
-
- blobs.each do |blob|
- found_secrets << Timeout.timeout(blob_timeout) { find_secrets(blob) }
+ def run_scan(blobs, blob_timeout)
+ found_secrets = blobs.flat_map do |blob|
+ Timeout.timeout(blob_timeout) do
+ find_secrets(blob)
+ end
rescue Timeout::Error => e
- logger.error "Secret detection scan timed out on the blob(id:#{blob.id}): #{e}"
+ logger.error "Secret Detection scan timed out on the blob(id:#{blob.id}): #{e}"
+ SecretDetection::Finding.new(blob.id,
+ SecretDetection::Status::BLOB_TIMEOUT)
+ end
+
+ found_secrets.freeze
+ end
- found_secrets << SecretDetection::Finding.new(
- blob.id,
- SecretDetection::Status::BLOB_TIMEOUT
- )
+ def run_scan_within_subprocess(blobs, blob_timeout)
+ blob_sizes = blobs.map(&:size)
+ grouped_blob_indicies = group_by_chunk_size(blob_sizes)
+
+ grouped_blobs = grouped_blob_indicies.map { |idx_arr| idx_arr.map { |i| blobs[i] } }
+
+ found_secrets = Parallel.flat_map(
+ grouped_blobs,
+ in_processes: MAX_PROCS_PER_REQUEST,
+ isolation: true # do not reuse sub-processes
+ ) do |grouped_blob|
+ grouped_blob.flat_map do |blob|
+ Timeout.timeout(blob_timeout) do
+ find_secrets(blob)
+ end
+ rescue Timeout::Error => e
+ logger.error "Secret Detection scan timed out on the blob(id:#{blob.id}): #{e}"
+ SecretDetection::Finding.new(blob.id,
+ SecretDetection::Status::BLOB_TIMEOUT)
+ end
end
- found_secrets.flatten.freeze
+ found_secrets.freeze
end
# finds secrets in the given blob with a timeout circuit breaker
@@ -149,10 +199,8 @@ module Gitlab
secrets = []
blob.data.each_line.with_index do |line, index|
- # ignore the line scan if it is suffixed with '#gitleaks:allow'
- next if line.end_with?(GITLEAKS_KEYWORD_IGNORE)
+ patterns = pattern_matcher.match(line, exception: false)
- patterns = pattern_matcher.match(line, :exception => false)
next unless patterns.any?
line_number = index + 1
@@ -172,7 +220,7 @@ module Gitlab
secrets
rescue StandardError => e
- logger.error "Secret detection scan failed on the blob(id:#{blob.id}): #{e}"
+ logger.error "Secret Detection scan failed on the blob(id:#{blob.id}): #{e}"
SecretDetection::Finding.new(blob.id, SecretDetection::Status::SCAN_ERROR)
end
@@ -201,6 +249,35 @@ module Gitlab
SecretDetection::Status::FOUND_WITH_ERRORS
end
end
+
+ # This method accepts an array of blob sizes(in bytes) and groups them into an array
+ # of arrays structure where each element is the group of indicies of the input
+ # array whose cumulative blob sizes has at least +MIN_CHUNK_SIZE_PER_PROC_BYTES+
+ def group_by_chunk_size(blob_size_arr)
+ cumulative_size = 0
+ chunk_indexes = []
+ chunk_idx_start = 0
+
+ blob_size_arr.each_with_index do |size, index|
+ cumulative_size += size
+ next unless cumulative_size >= MIN_CHUNK_SIZE_PER_PROC_BYTES
+
+ chunk_indexes << (chunk_idx_start..index).to_a
+
+ chunk_idx_start = index + 1
+ cumulative_size = 0
+ end
+
+ if cumulative_size.positive? && (chunk_idx_start < blob_size_arr.length)
+ chunk_indexes << if chunk_idx_start == blob_size_arr.length - 1
+ [chunk_idx_start]
+ else
+ (chunk_idx_start..blob_size_arr.length - 1).to_a
+ end
+ end
+
+ chunk_indexes
+ end
end
end
end
diff --git a/gems/gitlab-secret_detection/spec/lib/gitlab/secret_detection/scan_spec.rb b/gems/gitlab-secret_detection/spec/lib/gitlab/secret_detection/scan_spec.rb
index 1e6ccf1e6a0..e69fcceeaab 100644
--- a/gems/gitlab-secret_detection/spec/lib/gitlab/secret_detection/scan_spec.rb
+++ b/gems/gitlab-secret_detection/spec/lib/gitlab/secret_detection/scan_spec.rb
@@ -16,28 +16,28 @@ RSpec.describe Gitlab::SecretDetection::Scan, feature_category: :secret_detectio
{
"id" => "gitlab_personal_access_token",
"description" => "GitLab Personal Access Token",
- "regex" => "glpat-[0-9a-zA-Z_\\-]{20}",
+ "regex" => "\bglpat-[0-9a-zA-Z_-]{20}\b",
"tags" => %w[gitlab revocation_type],
"keywords" => ["glpat"]
},
{
"id" => "gitlab_pipeline_trigger_token",
"description" => "GitLab Pipeline Trigger Token",
- "regex" => "glptt-[0-9a-zA-Z_\\-]{40}",
+ "regex" => "\bglptt-[0-9a-zA-Z_-]{40}\b",
"tags" => ["gitlab"],
"keywords" => ["glptt"]
},
{
"id" => "gitlab_runner_registration_token",
"description" => "GitLab Runner Registration Token",
- "regex" => "GR1348941[0-9a-zA-Z_-]{20}",
+ "regex" => "\bGR1348941[0-9a-zA-Z_-]{20}\b",
"tags" => ["gitlab"],
"keywords" => ["GR1348941"]
},
{
"id" => "gitlab_feed_token_v2",
"description" => "GitLab Feed Token",
- "regex" => "glft-[0-9a-zA-Z_-]{20}",
+ "regex" => "\bglft-[0-9a-zA-Z_-]{20}\b",
"tags" => ["gitlab"],
"keywords" => ["glft"]
}
@@ -98,12 +98,16 @@ RSpec.describe Gitlab::SecretDetection::Scan, feature_category: :secret_detectio
new_blob(id: 111, data: "glpat-12312312312312312312"), # gitleaks:allow
new_blob(id: 222, data: "\n\nglptt-1231231231231231231212312312312312312312"), # gitleaks:allow
new_blob(id: 333, data: "data with no secret"),
- new_blob(id: 444, data: "GR134894112312312312312312312\nglft-12312312312312312312") # gitleaks:allow
+ new_blob(id: 444,
+ data: "GR134894112312312312312312312\nglft-12312312312312312312"), # gitleaks:allow
+ new_blob(id: 555, data: "data with no secret"),
+ new_blob(id: 666, data: "data with no secret"),
+ new_blob(id: 777, data: "\nglptt-1231231231231231231212312312312312312312") # gitleaks:allow
]
end
- it "matches different types of rules" do
- expected_response = Gitlab::SecretDetection::Response.new(
+ let(:expected_response) do
+ Gitlab::SecretDetection::Response.new(
Gitlab::SecretDetection::Status::FOUND,
[
Gitlab::SecretDetection::Finding.new(
@@ -133,11 +137,66 @@ RSpec.describe Gitlab::SecretDetection::Scan, feature_category: :secret_detectio
2,
ruleset['rules'][3]['id'],
ruleset['rules'][3]['description']
+ ),
+ Gitlab::SecretDetection::Finding.new(
+ blobs[6].id,
+ Gitlab::SecretDetection::Status::FOUND,
+ 2,
+ ruleset['rules'][1]['id'],
+ ruleset['rules'][1]['description']
)
]
)
+ end
- expect(scan.secrets_scan(blobs)).to eq(expected_response)
+ it "matches multiple rules when running in main process" do
+ expect(scan.secrets_scan(blobs, subprocess: false)).to eq(expected_response)
+ end
+
+ context "in subprocess" do
+ let(:dummy_lines) do
+ 10_000
+ end
+
+ let(:large_blobs) do
+ dummy_data = "\nrandom data" * dummy_lines
+ [
+ new_blob(id: 111, data: "glpat-12312312312312312312#{dummy_data}"), # gitleaks:allow
+ new_blob(id: 222, data: "\n\nglptt-1231231231231231231212312312312312312312#{dummy_data}"), # gitleaks:allow
+ new_blob(id: 333, data: "data with no secret#{dummy_data}"),
+ new_blob(id: 444,
+ data: "GR134894112312312312312312312\nglft-12312312312312312312#{dummy_data}"), # gitleaks:allow
+ new_blob(id: 555, data: "data with no secret#{dummy_data}"),
+ new_blob(id: 666, data: "data with no secret#{dummy_data}"),
+ new_blob(id: 777, data: "#{dummy_data}\nglptt-1231231231231231231212312312312312312312") # gitleaks:allow
+ ]
+ end
+
+ it "matches multiple rules" do
+ expect(scan.secrets_scan(blobs, subprocess: true)).to eq(expected_response)
+ end
+
+ it "takes at least same time to run as running in main process" do
+ expect { scan.secrets_scan(large_blobs, subprocess: true) }.to perform_faster_than {
+ scan.secrets_scan(large_blobs,
+ subprocess: false)
+ }.once
+ end
+
+ it "allocates less memory than when running in main process" do
+ forked_stats = Benchmark::Malloc.new.run { scan.secrets_scan(large_blobs, subprocess: true) }
+ non_forked_stats = Benchmark::Malloc.new.run { scan.secrets_scan(large_blobs, subprocess: false) }
+
+ max_processes = Gitlab::SecretDetection::Scan::MAX_PROCS_PER_REQUEST
+
+ forked_memory = forked_stats.allocated.total_memory
+ non_forked_memory = non_forked_stats.allocated.total_memory
+ forked_obj_allocs = forked_stats.allocated.total_objects
+ non_forked_obj_allocs = non_forked_stats.allocated.total_objects
+
+ expect(non_forked_memory).to be >= forked_memory * max_processes
+ expect(non_forked_obj_allocs).to be >= forked_obj_allocs * max_processes
+ end
end
end
diff --git a/gems/gitlab-secret_detection/spec/spec_helper.rb b/gems/gitlab-secret_detection/spec/spec_helper.rb
index b694e52d2b6..04cb58edd67 100644
--- a/gems/gitlab-secret_detection/spec/spec_helper.rb
+++ b/gems/gitlab-secret_detection/spec/spec_helper.rb
@@ -2,6 +2,8 @@
require 'gitlab/secret_detection'
require 'rspec-parameterized'
+require 'rspec-benchmark'
+require 'benchmark-malloc'
RSpec.configure do |config|
# Enable flags like --only-failures and --next-failure
@@ -10,9 +12,17 @@ RSpec.configure do |config|
# Disable RSpec exposing methods globally on `Module` and `main`
config.disable_monkey_patching!
+ config.include RSpec::Benchmark::Matchers
+
Dir['./spec/support/**/*.rb'].each { |f| require f }
config.expect_with :rspec do |c|
c.syntax = :expect
end
+
+ # configure benchmark factors
+ RSpec::Benchmark.configure do |cfg|
+ # to avoid retention of allocated memory by the perf tests in the main process
+ cfg.run_in_subprocess = true
+ end
end
diff --git a/gems/gitlab-utils/Gemfile.lock b/gems/gitlab-utils/Gemfile.lock
index ef7c2d57c7a..76c6c1e2110 100644
--- a/gems/gitlab-utils/Gemfile.lock
+++ b/gems/gitlab-utils/Gemfile.lock
@@ -13,7 +13,6 @@ PATH
actionview (>= 6.1.7.2)
activesupport (>= 6.1.7.2)
addressable (~> 2.8)
- nokogiri (~> 1.15.2)
rake (~> 13.0)
GEM
@@ -77,7 +76,7 @@ GEM
method_source (1.0.0)
mini_portile2 (2.8.2)
minitest (5.18.1)
- nokogiri (1.15.2)
+ nokogiri (1.16.0)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
parallel (1.23.0)
diff --git a/gems/gitlab-utils/gitlab-utils.gemspec b/gems/gitlab-utils/gitlab-utils.gemspec
index d5f6deb7fe6..b66f467d0b6 100644
--- a/gems/gitlab-utils/gitlab-utils.gemspec
+++ b/gems/gitlab-utils/gitlab-utils.gemspec
@@ -21,7 +21,6 @@ Gem::Specification.new do |spec|
spec.add_runtime_dependency "actionview", ">= 6.1.7.2"
spec.add_runtime_dependency "activesupport", ">= 6.1.7.2"
spec.add_runtime_dependency "addressable", "~> 2.8"
- spec.add_runtime_dependency "nokogiri", "~> 1.15.2"
spec.add_runtime_dependency "rake", "~> 13.0"
spec.add_development_dependency "factory_bot_rails", "~> 6.2.0"
diff --git a/gems/gitlab-utils/lib/gitlab/utils.rb b/gems/gitlab-utils/lib/gitlab/utils.rb
index b7cb63210ee..d5a514bfae8 100644
--- a/gems/gitlab-utils/lib/gitlab/utils.rb
+++ b/gems/gitlab-utils/lib/gitlab/utils.rb
@@ -261,6 +261,8 @@ module Gitlab
end
end
+ # Use this method to set the `restrict_within_concurrent_ruby` to `true` for the block.
+ # `raise_if_concurrent_ruby!` will use this flag to raise an error if it's set to `true`.
def restrict_within_concurrent_ruby
previous = Thread.current[:restrict_within_concurrent_ruby]
Thread.current[:restrict_within_concurrent_ruby] = true
@@ -270,6 +272,18 @@ module Gitlab
Thread.current[:restrict_within_concurrent_ruby] = previous
end
+ # Use this method to disable the `restrict_within_concurrent_ruby` for the block.
+ # It is mainly used to prevent infinite loop when `ConcurrentRubyThreadIsUsedError` is rescued and sent to Sentry.
+ # More info: https://gitlab.com/gitlab-org/gitlab/-/issues/432145#note_1671305713
+ def allow_within_concurrent_ruby
+ previous = Thread.current[:restrict_within_concurrent_ruby]
+ Thread.current[:restrict_within_concurrent_ruby] = false
+
+ yield
+ ensure
+ Thread.current[:restrict_within_concurrent_ruby] = previous
+ end
+
# Running external methods can allocate I/O bound resources (like PostgreSQL connection or Gitaly)
# This is forbidden when running within a concurrent Ruby thread, for example `async` HTTP requests
# provided by the `gitlab-http` gem.
diff --git a/gems/gitlab-utils/spec/gitlab/utils_spec.rb b/gems/gitlab-utils/spec/gitlab/utils_spec.rb
index 69531225eef..02d288acedf 100644
--- a/gems/gitlab-utils/spec/gitlab/utils_spec.rb
+++ b/gems/gitlab-utils/spec/gitlab/utils_spec.rb
@@ -489,6 +489,26 @@ RSpec.describe Gitlab::Utils, feature_category: :shared do
end
end
+ describe '.allow_within_concurrent_ruby' do
+ it 'assigns restrict_within_concurrent_ruby false to the current thread and ensures it restores' do
+ expect(Thread.current[:restrict_within_concurrent_ruby]).to be_nil
+
+ described_class.allow_within_concurrent_ruby do
+ expect(Thread.current[:restrict_within_concurrent_ruby]).to be(false)
+ end
+
+ expect(Thread.current[:restrict_within_concurrent_ruby]).to be_nil
+ end
+
+ it 'overrides the value of restrict_within_concurrent_ruby' do
+ described_class.restrict_within_concurrent_ruby do
+ described_class.allow_within_concurrent_ruby do
+ expect(Thread.current[:restrict_within_concurrent_ruby]).to be(false)
+ end
+ end
+ end
+ end
+
describe '.raise_if_concurrent_ruby!' do
subject(:raise_if_concurrent_ruby!) { described_class.raise_if_concurrent_ruby!('test') }
diff --git a/glfm_specification/output_example_snapshots/html.yml b/glfm_specification/output_example_snapshots/html.yml
index ca51c26a760..f5cfa95ca52 100644
--- a/glfm_specification/output_example_snapshots/html.yml
+++ b/glfm_specification/output_example_snapshots/html.yml
@@ -285,7 +285,7 @@
canonical: |
<p><em>-</em></p>
static: |-
- <p data-sourcepos="1:2-1:4" dir="auto"><em>-</em></p>
+ <p data-sourcepos="1:2-1:4" dir="auto"><em data-sourcepos="1:2-1:4">-</em></p>
wysiwyg: |-
<p dir="auto"><em>-</em></p>
04_01_00__leaf_blocks__thematic_breaks__015:
@@ -428,14 +428,14 @@
<h1>foo <em>bar</em> *baz*</h1>
static: |-
<h1 data-sourcepos="1:1-1:19" dir="auto">
- <a id="user-content-foo-bar-baz" class="anchor" href="#foo-bar-baz" aria-hidden="true"></a>foo <em>bar</em> *baz*</h1>
+ <a id="user-content-foo-bar-baz" class="anchor" href="#foo-bar-baz" aria-hidden="true"></a>foo <em data-sourcepos="1:7-1:11">bar</em> *baz*</h1>
wysiwyg: |-
<h1 dir="auto">foo <em>bar</em> *baz*</h1>
04_02_00__leaf_blocks__atx_headings__006:
canonical: |
<h1>foo</h1>
static: |-
- <h1 data-sourcepos="1:1-1:22" dir="auto">
+ <h1 data-sourcepos="1:1-1:43" dir="auto">
<a id="user-content-foo" class="anchor" href="#foo" aria-hidden="true"></a>foo</h1>
wysiwyg: |-
<h1 dir="auto">foo</h1>
@@ -481,9 +481,9 @@
<h2>foo</h2>
<h3>bar</h3>
static: |-
- <h2 data-sourcepos="1:1-1:6" dir="auto">
+ <h2 data-sourcepos="1:1-1:9" dir="auto">
<a id="user-content-foo" class="anchor" href="#foo" aria-hidden="true"></a>foo</h2>
- <h3 data-sourcepos="2:3-2:11" dir="auto">
+ <h3 data-sourcepos="2:3-2:18" dir="auto">
<a id="user-content-bar" class="anchor" href="#bar" aria-hidden="true"></a>bar</h3>
wysiwyg: |-
<h2 dir="auto">foo</h2>
@@ -493,9 +493,9 @@
<h1>foo</h1>
<h5>foo</h5>
static: |-
- <h1 data-sourcepos="1:1-1:5" dir="auto">
+ <h1 data-sourcepos="1:1-1:40" dir="auto">
<a id="user-content-foo" class="anchor" href="#foo" aria-hidden="true"></a>foo</h1>
- <h5 data-sourcepos="2:1-2:9" dir="auto">
+ <h5 data-sourcepos="2:1-2:12" dir="auto">
<a id="user-content-foo-1" class="anchor" href="#foo-1" aria-hidden="true"></a>foo</h5>
wysiwyg: |-
<h1 dir="auto">foo</h1>
@@ -504,7 +504,7 @@
canonical: |
<h3>foo</h3>
static: |-
- <h3 data-sourcepos="1:1-1:7" dir="auto">
+ <h3 data-sourcepos="1:1-1:16" dir="auto">
<a id="user-content-foo" class="anchor" href="#foo" aria-hidden="true"></a>foo</h3>
wysiwyg: |-
<h3 dir="auto">foo</h3>
@@ -577,7 +577,7 @@
static: |-
<h2 data-sourcepos="1:1-1:3" dir="auto"></h2>
<h1 data-sourcepos="2:1-2:1" dir="auto"></h1>
- <h3 data-sourcepos="3:1-3:3" dir="auto"></h3>
+ <h3 data-sourcepos="3:1-3:7" dir="auto"></h3>
wysiwyg: |-
<h2 dir="auto"></h2>
<h1 dir="auto"></h1>
@@ -588,10 +588,10 @@
<h2>Foo <em>bar</em></h2>
static: |-
<h1 data-sourcepos="1:1-3:0" dir="auto">
- <a id="user-content-foo-bar" class="anchor" href="#foo-bar" aria-hidden="true"></a>Foo <em>bar</em>
+ <a id="user-content-foo-bar" class="anchor" href="#foo-bar" aria-hidden="true"></a>Foo <em data-sourcepos="1:5-1:9">bar</em>
</h1>
<h2 data-sourcepos="4:1-5:9" dir="auto">
- <a id="user-content-foo-bar-1" class="anchor" href="#foo-bar-1" aria-hidden="true"></a>Foo <em>bar</em>
+ <a id="user-content-foo-bar-1" class="anchor" href="#foo-bar-1" aria-hidden="true"></a>Foo <em data-sourcepos="4:5-4:9">bar</em>
</h2>
wysiwyg: |-
<h1 dir="auto">Foo <em>bar</em></h1>
@@ -602,7 +602,7 @@
baz</em></h1>
static: |-
<h1 data-sourcepos="1:1-3:4" dir="auto">
- <a id="user-content-foo-barbaz" class="anchor" href="#foo-barbaz" aria-hidden="true"></a>Foo <em>bar
+ <a id="user-content-foo-barbaz" class="anchor" href="#foo-barbaz" aria-hidden="true"></a>Foo <em data-sourcepos="1:5-2:4">bar
baz</em>
</h1>
wysiwyg: |-
@@ -614,7 +614,7 @@
baz</em></h1>
static: |-
<h1 data-sourcepos="1:3-3:4" dir="auto">
- <a id="user-content-foo-barbaz" class="anchor" href="#foo-barbaz" aria-hidden="true"></a>Foo <em>bar
+ <a id="user-content-foo-barbaz" class="anchor" href="#foo-barbaz" aria-hidden="true"></a>Foo <em data-sourcepos="1:7-2:6">bar
baz</em>
</h1>
wysiwyg: |-
@@ -1174,7 +1174,7 @@
canonical: |
<p><code>foo</code></p>
static: |-
- <p data-sourcepos="1:1-3:2" dir="auto"><code>foo</code></p>
+ <p data-sourcepos="1:1-3:2" dir="auto"><code data-sourcepos="1:3-3:0">foo</code></p>
wysiwyg: |-
<p dir="auto"><code>foo</code></p>
04_05_00__leaf_blocks__fenced_code_blocks__004:
@@ -1404,7 +1404,7 @@
<p><code> </code>
aaa</p>
static: |-
- <p data-sourcepos="1:1-2:3" dir="auto"><code> </code>
+ <p data-sourcepos="1:1-2:3" dir="auto"><code data-sourcepos="1:4-1:4"> </code>
aaa</p>
wysiwyg: |-
<p dir="auto">
@@ -1508,7 +1508,7 @@
<p><code>aa</code>
foo</p>
static: |-
- <p data-sourcepos="1:1-2:3" dir="auto"><code>aa</code>
+ <p data-sourcepos="1:1-2:3" dir="auto"><code data-sourcepos="1:4-1:7">aa</code>
foo</p>
wysiwyg: |-
<p dir="auto"><code>aa</code>
@@ -1547,7 +1547,7 @@
<table dir="auto"><tr><td>
<pre>
**Hello**,
- <p data-sourcepos="5:1-6:6"><em>world</em>.
+ <p data-sourcepos="5:1-6:6"><em data-sourcepos="5:1-5:7">world</em>.
</p></pre>
</td></tr></table>
wysiwyg: |-
@@ -1609,7 +1609,7 @@
</DIV>
static: |-
<div>
- <p data-sourcepos="3:1-3:10"><em>Markdown</em></p>
+ <p data-sourcepos="3:1-3:10"><em data-sourcepos="3:1-3:10">Markdown</em></p>
</div>
wysiwyg: |-
<div><p dir="auto"><em>Markdown</em></p></div>
@@ -1641,7 +1641,7 @@
static: |-
<div>
*foo*
- <p data-sourcepos="4:1-4:5"><em>bar</em></p>
+ <p data-sourcepos="4:1-4:5"><em data-sourcepos="4:1-4:5">bar</em></p>
</div>
wysiwyg: |-
<div><p dir="auto">
@@ -1774,7 +1774,7 @@
</del>
static: |-
<del>
- <p data-sourcepos="3:1-3:5"><em>foo</em></p>
+ <p data-sourcepos="3:1-3:5"><em data-sourcepos="3:1-3:5">foo</em></p>
</del>
wysiwyg: |-
<p dir="auto"><em><s>foo</s></em></p>
@@ -1782,7 +1782,7 @@
canonical: |
<p><del><em>foo</em></del></p>
static: |-
- <p data-sourcepos="1:1-1:16" dir="auto"><del><em>foo</em></del></p>
+ <p data-sourcepos="1:1-1:16" dir="auto"><del><em data-sourcepos="1:6-1:10">foo</em></del></p>
wysiwyg: |-
<p dir="auto"><em><s>foo</s></em></p>
04_06_00__leaf_blocks__html_blocks__022:
@@ -1900,7 +1900,7 @@
<p><em>foo</em></p>
static: |-
p{color:red;}
- <p data-sourcepos="2:1-2:5" dir="auto"><em>foo</em></p>
+ <p data-sourcepos="2:1-2:5" dir="auto"><em data-sourcepos="2:1-2:5">foo</em></p>
wysiwyg: |-
<p dir="auto"><em>foo</em></p>
04_06_00__leaf_blocks__html_blocks__029:
@@ -1909,7 +1909,7 @@
<p><em>baz</em></p>
static: |-
*bar*
- <p data-sourcepos="2:1-2:5" dir="auto"><em>baz</em></p>
+ <p data-sourcepos="2:1-2:5" dir="auto"><em data-sourcepos="2:1-2:5">baz</em></p>
wysiwyg: |-
<p dir="auto">*bar*
</p>
@@ -2058,7 +2058,7 @@
</div>
static: |-
<div>
- <p data-sourcepos="3:1-3:18"><em>Emphasized</em> text.</p>
+ <p data-sourcepos="3:1-3:18"><em data-sourcepos="3:1-3:12">Emphasized</em> text.</p>
</div>
wysiwyg: |-
<div><p dir="auto"><em>Emphasized</em> text.</p></div>
@@ -2126,7 +2126,7 @@
canonical: |
<p><a href="/url" title="title">foo</a></p>
static: |-
- <p data-sourcepos="3:1-3:5" dir="auto"><a href="/url" title="title">foo</a></p>
+ <p data-sourcepos="3:1-3:5" dir="auto"><a data-sourcepos="3:1-3:5" href="/url" title="title">foo</a></p>
wysiwyg: |-
<pre>[foo]: /url "title"</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">foo</a></p>
@@ -2134,7 +2134,7 @@
canonical: |
<p><a href="/url" title="the title">foo</a></p>
static: |-
- <p data-sourcepos="5:1-5:5" dir="auto"><a href="/url" title="the title">foo</a></p>
+ <p data-sourcepos="5:1-5:5" dir="auto"><a data-sourcepos="5:1-5:5" href="/url" title="the title">foo</a></p>
wysiwyg: |-
<pre>[foo]: /url "the title"</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="the title">foo</a></p>
@@ -2142,7 +2142,7 @@
canonical: |
<p><a href="my_(url)" title="title (with parens)">Foo*bar]</a></p>
static: |-
- <p data-sourcepos="3:1-3:11" dir="auto"><a href="my_(url)" title="title (with parens)">Foo*bar]</a></p>
+ <p data-sourcepos="3:1-3:11" dir="auto"><a data-sourcepos="3:1-3:11" href="my_(url)" title="title (with parens)">Foo*bar]</a></p>
wysiwyg: |-
<pre>[foo*bar\]]: my_(url) "title (with parens)"</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="my_(url)" title="title (with parens)">Foo*bar]</a></p>
@@ -2150,7 +2150,7 @@
canonical: |
<p><a href="my%20url" title="title">Foo bar</a></p>
static: |-
- <p data-sourcepos="5:1-5:9" dir="auto"><a href="my%20url" title="title">Foo bar</a></p>
+ <p data-sourcepos="5:1-5:9" dir="auto"><a data-sourcepos="5:1-5:9" href="my%20url" title="title">Foo bar</a></p>
wysiwyg: |-
<pre>[foo bar]: my url "title"</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="my%20url" title="title">Foo bar</a></p>
@@ -2162,7 +2162,7 @@
line2
">foo</a></p>
static: |-
- <p data-sourcepos="7:1-7:5" dir="auto"><a href="/url" title="
+ <p data-sourcepos="7:1-7:5" dir="auto"><a data-sourcepos="7:1-7:5" href="/url" title="
title
line1
line2
@@ -2195,7 +2195,7 @@
canonical: |
<p><a href="/url">foo</a></p>
static: |-
- <p data-sourcepos="4:1-4:5" dir="auto"><a href="/url">foo</a></p>
+ <p data-sourcepos="4:1-4:5" dir="auto"><a data-sourcepos="4:1-4:5" href="/url">foo</a></p>
wysiwyg: |-
<pre>[foo]: /url</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url">foo</a></p>
@@ -2213,7 +2213,7 @@
canonical: |
<p><a href="">foo</a></p>
static: |-
- <p data-sourcepos="3:1-3:5" dir="auto"><a href="">foo</a></p>
+ <p data-sourcepos="3:1-3:5" dir="auto"><a data-sourcepos="3:1-3:5" href="">foo</a></p>
wysiwyg: |-
<pre>[foo]: </pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="">foo</a></p>
@@ -2231,7 +2231,7 @@
canonical: |
<p><a href="/url%5Cbar*baz" title="foo&quot;bar\baz">foo</a></p>
static: |-
- <p data-sourcepos="3:1-3:5" dir="auto"><a href="/url%5Cbar*baz" title='foo"bar\baz'>foo</a></p>
+ <p data-sourcepos="3:1-3:5" dir="auto"><a data-sourcepos="3:1-3:5" href="/url%5Cbar*baz" title='foo"bar\baz'>foo</a></p>
wysiwyg: |-
<pre>[foo]: /url\bar*baz "foo"bar\baz"</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url%5Cbar*baz" title="foo&quot;bar\baz">foo</a></p>
@@ -2239,7 +2239,7 @@
canonical: |
<p><a href="url">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:5" dir="auto"><a href="url">foo</a></p>
+ <p data-sourcepos="1:1-1:5" dir="auto"><a data-sourcepos="1:1-1:5" href="url">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="url">foo</a></p>
<pre>[foo]: url</pre>
@@ -2247,7 +2247,7 @@
canonical: |
<p><a href="first">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:5" dir="auto"><a href="first">foo</a></p>
+ <p data-sourcepos="1:1-1:5" dir="auto"><a data-sourcepos="1:1-1:5" href="first">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="first">foo</a></p>
<pre>[foo]: first</pre>
@@ -2256,7 +2256,7 @@
canonical: |
<p><a href="/url">Foo</a></p>
static: |-
- <p data-sourcepos="3:1-3:5" dir="auto"><a href="/url">Foo</a></p>
+ <p data-sourcepos="3:1-3:5" dir="auto"><a data-sourcepos="3:1-3:5" href="/url">Foo</a></p>
wysiwyg: |-
<pre>[foo]: /url</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url">Foo</a></p>
@@ -2264,7 +2264,7 @@
canonical: |
<p><a href="/%CF%86%CE%BF%CF%85">αγω</a></p>
static: |-
- <p data-sourcepos="3:1-3:8" dir="auto"><a href="/%CF%86%CE%BF%CF%85">αγω</a></p>
+ <p data-sourcepos="3:1-3:8" dir="auto"><a data-sourcepos="3:1-3:8" href="/%CF%86%CE%BF%CF%85">αγω</a></p>
wysiwyg: |-
<pre>[αγω]: /φου</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/%CF%86%CE%BF%CF%85">αγω</a></p>
@@ -2345,7 +2345,7 @@
</blockquote>
static: |-
<h1 data-sourcepos="1:1-1:7" dir="auto">
- <a id="user-content-foo" class="anchor" href="#foo" aria-hidden="true"></a><a href="/url">Foo</a>
+ <a id="user-content-foo" class="anchor" href="#foo" aria-hidden="true"></a><a data-sourcepos="1:3-1:7" href="/url">Foo</a>
</h1>
<blockquote data-sourcepos="3:1-3:5" dir="auto">
<p data-sourcepos="3:3-3:5">bar</p>
@@ -2361,7 +2361,7 @@
static: |-
<h1 data-sourcepos="1:1-4:5" dir="auto">
<a id="user-content-bar" class="anchor" href="#bar" aria-hidden="true"></a>bar</h1>
- <p data-sourcepos="4:1-4:5" dir="auto"><a href="/url">foo</a></p>
+ <p data-sourcepos="4:1-4:5" dir="auto"><a data-sourcepos="4:1-4:5" href="/url">foo</a></p>
wysiwyg: |-
<pre>[foo]: /url</pre>
<h1 dir="auto">bar</h1>
@@ -2372,7 +2372,7 @@
<a href="/url">foo</a></p>
static: |-
<p data-sourcepos="1:1-3:5" dir="auto">===
- <a href="/url">foo</a></p>
+ <a data-sourcepos="2:1-2:5" href="/url">foo</a></p>
wysiwyg: |-
<pre>[foo]: /url</pre>
<p dir="auto">===
@@ -2383,9 +2383,9 @@
<a href="/bar-url" title="bar">bar</a>,
<a href="/baz-url">baz</a></p>
static: |-
- <p data-sourcepos="6:1-8:5" dir="auto"><a href="/foo-url" title="foo">foo</a>,
- <a href="/bar-url" title="bar">bar</a>,
- <a href="/baz-url">baz</a></p>
+ <p data-sourcepos="6:1-8:5" dir="auto"><a data-sourcepos="6:1-6:5" href="/foo-url" title="foo">foo</a>,
+ <a data-sourcepos="7:1-7:5" href="/bar-url" title="bar">bar</a>,
+ <a data-sourcepos="8:1-8:5" href="/baz-url">baz</a></p>
wysiwyg: |-
<pre>[foo]: /foo-url "foo"</pre>
<pre>[bar]: /bar-url "bar"</pre>
@@ -2399,7 +2399,7 @@
<blockquote>
</blockquote>
static: |-
- <p data-sourcepos="1:1-1:5" dir="auto"><a href="/url">foo</a></p>
+ <p data-sourcepos="1:1-1:5" dir="auto"><a data-sourcepos="1:1-1:5" href="/url">foo</a></p>
<blockquote data-sourcepos="3:1-3:13" dir="auto">
</blockquote>
wysiwyg: |-
@@ -2498,7 +2498,7 @@
<p>aaa<br />
bbb</p>
static: |-
- <p data-sourcepos="1:1-2:8" dir="auto">aaa<br>
+ <p data-sourcepos="1:1-2:8" dir="auto">aaa<br data-sourcepos="1:9-1:9">
bbb</p>
wysiwyg: |-
<p dir="auto">aaa<br>
@@ -2567,14 +2567,14 @@
<table data-sourcepos="1:1-3:9" dir="auto">
<thead>
<tr data-sourcepos="1:1-1:16">
- <th align="center" data-sourcepos="1:2-1:6">abc</th>
- <th align="right" data-sourcepos="1:8-1:15">defghi</th>
+ <th data-sourcepos="1:2-1:6" align="center">abc</th>
+ <th data-sourcepos="1:8-1:15" align="right">defghi</th>
</tr>
</thead>
<tbody>
<tr data-sourcepos="3:1-3:9">
- <td align="center" data-sourcepos="3:1-3:4">bar</td>
- <td align="right" data-sourcepos="3:6-3:9">baz</td>
+ <td data-sourcepos="3:1-3:4" align="center">bar</td>
+ <td data-sourcepos="3:6-3:9" align="right">baz</td>
</tr>
</tbody>
</table>
@@ -2606,10 +2606,10 @@
</thead>
<tbody>
<tr data-sourcepos="3:1-3:13">
- <td data-sourcepos="3:2-3:12">b <code>|</code> az</td>
+ <td data-sourcepos="3:2-3:12">b <code data-sourcepos="3:6-3:6">|</code> az</td>
</tr>
<tr data-sourcepos="4:1-4:15">
- <td data-sourcepos="4:2-4:14">b <strong>|</strong> im</td>
+ <td data-sourcepos="4:2-4:14">b <strong data-sourcepos="4:5-4:9">|</strong> im</td>
</tr>
</tbody>
</table>
@@ -2691,7 +2691,7 @@
</tr>
<tr data-sourcepos="4:1-4:3">
<td data-sourcepos="4:1-4:3">bar</td>
- <td data-sourcepos="4:0-4:0"></td>
+ <td data-sourcepos="4:3-4:0"></td>
</tr>
</tbody>
</table>
@@ -2743,7 +2743,7 @@
<tbody>
<tr data-sourcepos="3:1-3:7">
<td data-sourcepos="3:2-3:6">bar</td>
- <td data-sourcepos="3:0-3:0"></td>
+ <td data-sourcepos="3:6-3:0"></td>
</tr>
<tr data-sourcepos="4:1-4:19">
<td data-sourcepos="4:2-4:6">bar</td>
@@ -3449,7 +3449,7 @@
<li>ok</li>
</ol>
static: |-
- <ol start="123456789" data-sourcepos="1:1-1:13" dir="auto">
+ <ol data-sourcepos="1:1-1:13" start="123456789" dir="auto">
<li data-sourcepos="1:1-1:13">ok</li>
</ol>
wysiwyg: |-
@@ -3467,7 +3467,7 @@
<li>ok</li>
</ol>
static: |-
- <ol start="0" data-sourcepos="1:1-1:5" dir="auto">
+ <ol data-sourcepos="1:1-1:5" start="0" dir="auto">
<li data-sourcepos="1:1-1:5">ok</li>
</ol>
wysiwyg: |-
@@ -3478,7 +3478,7 @@
<li>ok</li>
</ol>
static: |-
- <ol start="3" data-sourcepos="1:1-1:7" dir="auto">
+ <ol data-sourcepos="1:1-1:7" start="3" dir="auto">
<li data-sourcepos="1:1-1:7">ok</li>
</ol>
wysiwyg: |-
@@ -3521,7 +3521,7 @@
</li>
</ol>
static: |-
- <ol start="10" data-sourcepos="1:3-3:14" dir="auto">
+ <ol data-sourcepos="1:3-3:14" start="10" dir="auto">
<li data-sourcepos="1:3-3:14">
<p data-sourcepos="1:8-1:10">foo</p>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -4055,7 +4055,7 @@
</li>
</ol>
static: |-
- <ol start="10" data-sourcepos="1:1-2:9" dir="auto">
+ <ol data-sourcepos="1:1-2:9" start="10" dir="auto">
<li data-sourcepos="1:1-2:9">foo
<ul data-sourcepos="2:5-2:9">
<li data-sourcepos="2:5-2:9">bar</li>
@@ -4073,7 +4073,7 @@
<li>bar</li>
</ul>
static: |-
- <ol start="10" data-sourcepos="1:1-1:7" dir="auto">
+ <ol data-sourcepos="1:1-1:7" start="10" dir="auto">
<li data-sourcepos="1:1-1:7">foo</li>
</ol>
<ul data-sourcepos="2:4-2:8" dir="auto">
@@ -4119,7 +4119,7 @@
<li data-sourcepos="1:1-1:11">
<ul data-sourcepos="1:4-1:11">
<li data-sourcepos="1:4-1:11">
- <ol start="2" data-sourcepos="1:6-1:11">
+ <ol data-sourcepos="1:6-1:11" start="2">
<li data-sourcepos="1:6-1:11">foo</li>
</ol>
</li>
@@ -4186,7 +4186,7 @@
<li data-sourcepos="1:1-1:6">foo</li>
<li data-sourcepos="2:1-2:6">bar</li>
</ol>
- <ol start="3" data-sourcepos="3:1-3:6" dir="auto">
+ <ol data-sourcepos="3:1-3:6" start="3" dir="auto">
<li data-sourcepos="3:1-3:6">baz</li>
</ol>
wysiwyg: |-
@@ -4770,7 +4770,7 @@
canonical: |
<p><code>hi</code>lo`</p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><code>hi</code>lo`</p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><code data-sourcepos="1:2-1:3">hi</code>lo`</p>
wysiwyg: |-
<p dir="auto"><code>hi</code>lo`</p>
06_02_00__inlines__backslash_escapes__001:
@@ -4798,7 +4798,7 @@
static: |-
<p data-sourcepos="1:1-9:51" dir="auto">*not emphasized*
&lt;br/&gt; not a tag
- <a href="/foo">not a link</a>
+ <a data-sourcepos="1:1-1:18" href="/foo">not a link</a>
`not code`
1. not a list
* not a list
@@ -4819,7 +4819,7 @@
canonical: |
<p>\<em>emphasis</em></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto">\<em>emphasis</em></p>
+ <p data-sourcepos="1:1-1:12" dir="auto">\<em data-sourcepos="1:3-1:12">emphasis</em></p>
wysiwyg: |-
<p dir="auto">\<em>emphasis</em></p>
06_02_00__inlines__backslash_escapes__005:
@@ -4827,7 +4827,7 @@
<p>foo<br />
bar</p>
static: |-
- <p data-sourcepos="1:1-2:3" dir="auto">foo<br>
+ <p data-sourcepos="1:1-2:3" dir="auto">foo<br data-sourcepos="1:4-1:5">
bar</p>
wysiwyg: |-
<p dir="auto">foo<br>
@@ -4836,7 +4836,7 @@
canonical: |
<p><code>\[\`</code></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><code>\[\`</code></p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><code data-sourcepos="1:3-1:8">\[\`</code></p>
wysiwyg: |-
<p dir="auto"><code>\[\`</code></p>
06_02_00__inlines__backslash_escapes__007:
@@ -4865,7 +4865,7 @@
canonical: |
<p><a href="http://example.com?find=%5C*">http://example.com?find=\*</a></p>
static: |-
- <p data-sourcepos="1:1-1:28" dir="auto"><a href="http://example.com?find=%5C*" rel="nofollow noreferrer noopener" target="_blank">http://example.com?find=\*</a></p>
+ <p data-sourcepos="1:1-1:28" dir="auto"><a data-sourcepos="1:2-1:29" href="http://example.com?find=%5C*" rel="nofollow noreferrer noopener" target="_blank">http://example.com?find=\*</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://example.com?find=%5C*">http://example.com?find=\*</a></p>
06_02_00__inlines__backslash_escapes__010:
@@ -4879,14 +4879,14 @@
canonical: |
<p><a href="/bar*" title="ti*tle">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:23" dir="auto"><a href="/bar*" title="ti*tle">foo</a></p>
+ <p data-sourcepos="1:1-1:23" dir="auto"><a data-sourcepos="1:1-1:23" href="/bar*" title="ti*tle">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/bar*" title="ti*tle">foo</a></p>
06_02_00__inlines__backslash_escapes__012:
canonical: |
<p><a href="/bar*" title="ti*tle">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:5" dir="auto"><a href="/bar*" title="ti*tle">foo</a></p>
+ <p data-sourcepos="1:1-1:5" dir="auto"><a data-sourcepos="1:1-1:5" href="/bar*" title="ti*tle">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/bar*" title="ti*tle">foo</a></p>
<pre>[foo]: /bar* "ti*tle"</pre>
@@ -4969,14 +4969,14 @@
canonical: |
<p><a href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:37" dir="auto"><a href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
+ <p data-sourcepos="1:1-1:37" dir="auto"><a data-sourcepos="1:1-1:37" href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
06_03_00__inlines__entity_and_numeric_character_references__009:
canonical: |
<p><a href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:5" dir="auto"><a href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
+ <p data-sourcepos="1:1-1:5" dir="auto"><a data-sourcepos="1:1-1:5" href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
<pre>[foo]: /föö "föö"</pre>
@@ -4995,7 +4995,7 @@
canonical: |
<p><code>f&amp;ouml;&amp;ouml;</code></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><code>f&amp;ouml;&amp;ouml;</code></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><code data-sourcepos="1:2-1:14">f&amp;ouml;&amp;ouml;</code></p>
wysiwyg: |-
<p dir="auto"><code>f&amp;ouml;&amp;ouml;</code></p>
06_03_00__inlines__entity_and_numeric_character_references__012:
@@ -5015,7 +5015,7 @@
<em>foo</em></p>
static: |-
<p data-sourcepos="1:1-2:5" dir="auto">*foo*
- <em>foo</em></p>
+ <em data-sourcepos="2:1-2:5">foo</em></p>
wysiwyg: |-
<p dir="auto">*foo*
<em>foo</em></p>
@@ -5054,49 +5054,49 @@
canonical: |
<p>[a](url &quot;tit&quot;)</p>
static: |-
- <p data-sourcepos="1:1-1:24" dir="auto"><a href="url" title="tit">a</a></p>
+ <p data-sourcepos="1:1-1:24" dir="auto"><a data-sourcepos="1:1-1:14" href="url" title="tit">a</a></p>
wysiwyg: |-
<p dir="auto">[a](url "tit")</p>
06_04_00__inlines__code_spans__001:
canonical: |
<p><code>foo</code></p>
static: |-
- <p data-sourcepos="1:1-1:5" dir="auto"><code>foo</code></p>
+ <p data-sourcepos="1:1-1:5" dir="auto"><code data-sourcepos="1:2-1:4">foo</code></p>
wysiwyg: |-
<p dir="auto"><code>foo</code></p>
06_04_00__inlines__code_spans__002:
canonical: |
<p><code>foo ` bar</code></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><code>foo ` bar</code></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><code data-sourcepos="1:3-1:13">foo ` bar</code></p>
wysiwyg: |-
<p dir="auto"><code>foo ` bar</code></p>
06_04_00__inlines__code_spans__003:
canonical: |
<p><code>``</code></p>
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto"><code>``</code></p>
+ <p data-sourcepos="1:1-1:6" dir="auto"><code data-sourcepos="1:2-1:5">``</code></p>
wysiwyg: |-
<p dir="auto"><code>``</code></p>
06_04_00__inlines__code_spans__004:
canonical: |
<p><code> `` </code></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><code> `` </code></p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><code data-sourcepos="1:2-1:7"> `` </code></p>
wysiwyg: |-
<p dir="auto"><code> `` </code></p>
06_04_00__inlines__code_spans__005:
canonical: |
<p><code> a</code></p>
static: |-
- <p data-sourcepos="1:1-1:4" dir="auto"><code> a</code></p>
+ <p data-sourcepos="1:1-1:4" dir="auto"><code data-sourcepos="1:2-1:3"> a</code></p>
wysiwyg: |-
<p dir="auto"><code> a</code></p>
06_04_00__inlines__code_spans__006:
canonical: |
<p><code> b </code></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><code> b </code></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><code data-sourcepos="1:2-1:6"> b </code></p>
wysiwyg: |-
<p dir="auto"><code>&nbsp;b&nbsp;</code></p>
06_04_00__inlines__code_spans__007:
@@ -5104,71 +5104,71 @@
<p><code> </code>
<code> </code></p>
static: |-
- <p data-sourcepos="1:1-2:4" dir="auto"><code> </code>
- <code> </code></p>
+ <p data-sourcepos="1:1-2:4" dir="auto"><code data-sourcepos="1:2-1:3"> </code>
+ <code data-sourcepos="2:2-2:3"> </code></p>
wysiwyg: |-
<p dir="auto"></p>
06_04_00__inlines__code_spans__008:
canonical: |
<p><code>foo bar baz</code></p>
static: |-
- <p data-sourcepos="1:1-5:2" dir="auto"><code>foo bar baz</code></p>
+ <p data-sourcepos="1:1-5:2" dir="auto"><code data-sourcepos="1:3-5:0">foo bar baz</code></p>
wysiwyg: |-
<p dir="auto"><code>foo bar baz</code></p>
06_04_00__inlines__code_spans__009:
canonical: |
<p><code>foo </code></p>
static: |-
- <p data-sourcepos="1:1-3:2" dir="auto"><code>foo </code></p>
+ <p data-sourcepos="1:1-3:2" dir="auto"><code data-sourcepos="1:3-3:0">foo </code></p>
wysiwyg: |-
<p dir="auto"><code>foo </code></p>
06_04_00__inlines__code_spans__010:
canonical: |
<p><code>foo bar baz</code></p>
static: |-
- <p data-sourcepos="1:1-2:4" dir="auto"><code>foo bar baz</code></p>
+ <p data-sourcepos="1:1-2:4" dir="auto"><code data-sourcepos="1:2-2:3">foo bar baz</code></p>
wysiwyg: |-
<p dir="auto"><code>foo bar baz</code></p>
06_04_00__inlines__code_spans__011:
canonical: |
<p><code>foo\</code>bar`</p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><code>foo\</code>bar`</p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><code data-sourcepos="1:2-1:5">foo\</code>bar`</p>
wysiwyg: |-
<p dir="auto"><code>foo\</code>bar`</p>
06_04_00__inlines__code_spans__012:
canonical: |
<p><code>foo`bar</code></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><code>foo`bar</code></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><code data-sourcepos="1:3-1:9">foo`bar</code></p>
wysiwyg: |-
<p dir="auto"><code>foo`bar</code></p>
06_04_00__inlines__code_spans__013:
canonical: |
<p><code>foo `` bar</code></p>
static: |-
- <p data-sourcepos="1:1-1:14" dir="auto"><code>foo `` bar</code></p>
+ <p data-sourcepos="1:1-1:14" dir="auto"><code data-sourcepos="1:2-1:13">foo `` bar</code></p>
wysiwyg: |-
<p dir="auto"><code>foo `` bar</code></p>
06_04_00__inlines__code_spans__014:
canonical: |
<p>*foo<code>*</code></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto">*foo<code>*</code></p>
+ <p data-sourcepos="1:1-1:7" dir="auto">*foo<code data-sourcepos="1:6-1:6">*</code></p>
wysiwyg: |-
<p dir="auto">*foo<code>*</code></p>
06_04_00__inlines__code_spans__015:
canonical: |
<p>[not a <code>link](/foo</code>)</p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto">[not a <code>link](/foo</code>)</p>
+ <p data-sourcepos="1:1-1:20" dir="auto">[not a <code data-sourcepos="1:9-1:18">link](/foo</code>)</p>
wysiwyg: |-
<p dir="auto">[not a <code>link](/foo</code>)</p>
06_04_00__inlines__code_spans__016:
canonical: |
<p><code>&lt;a href=&quot;</code>&quot;&gt;`</p>
static: |-
- <p data-sourcepos="1:1-1:14" dir="auto"><code>&lt;a href="</code>"&gt;`</p>
+ <p data-sourcepos="1:1-1:14" dir="auto"><code data-sourcepos="1:2-1:10">&lt;a href="</code>"&gt;`</p>
wysiwyg: |-
<p dir="auto"><code>&lt;a href="</code>"&gt;`</p>
06_04_00__inlines__code_spans__017:
@@ -5182,14 +5182,14 @@
canonical: |
<p><code>&lt;http://foo.bar.</code>baz&gt;`</p>
static: |-
- <p data-sourcepos="1:1-1:23" dir="auto"><code>&lt;http://foo.bar.</code>baz&gt;`</p>
+ <p data-sourcepos="1:1-1:23" dir="auto"><code data-sourcepos="1:2-1:17">&lt;http://foo.bar.</code>baz&gt;`</p>
wysiwyg: |-
<p dir="auto"><code>&lt;http://foo.bar.</code>baz&gt;`</p>
06_04_00__inlines__code_spans__019:
canonical: |
<p><a href="http://foo.bar.%60baz">http://foo.bar.`baz</a>`</p>
static: |-
- <p data-sourcepos="1:1-1:22" dir="auto"><a href="http://foo.bar.%60baz" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar.`baz</a>`</p>
+ <p data-sourcepos="1:1-1:22" dir="auto"><a data-sourcepos="1:2-1:22" href="http://foo.bar.%60baz" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar.`baz</a>`</p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://foo.bar.%60baz">http://foo.bar.`baz</a>`</p>
06_04_00__inlines__code_spans__020:
@@ -5210,14 +5210,14 @@
canonical: |
<p>`foo<code>bar</code></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto">`foo<code>bar</code></p>
+ <p data-sourcepos="1:1-1:11" dir="auto">`foo<code data-sourcepos="1:7-1:9">bar</code></p>
wysiwyg: |-
<p dir="auto">`foo<code>bar</code></p>
06_05_00__inlines__emphasis_and_strong_emphasis__001:
canonical: |
<p><em>foo bar</em></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto"><em>foo bar</em></p>
+ <p data-sourcepos="1:1-1:9" dir="auto"><em data-sourcepos="1:1-1:9">foo bar</em></p>
wysiwyg: |-
<p dir="auto"><em>foo bar</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__002:
@@ -5245,21 +5245,21 @@
canonical: |
<p>foo<em>bar</em></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto">foo<em>bar</em></p>
+ <p data-sourcepos="1:1-1:8" dir="auto">foo<em data-sourcepos="1:4-1:8">bar</em></p>
wysiwyg: |-
<p dir="auto">foo<em>bar</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__006:
canonical: |
<p>5<em>6</em>78</p>
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto">5<em>6</em>78</p>
+ <p data-sourcepos="1:1-1:6" dir="auto">5<em data-sourcepos="1:2-1:4">6</em>78</p>
wysiwyg: |-
<p dir="auto">5<em>6</em>78</p>
06_05_00__inlines__emphasis_and_strong_emphasis__007:
canonical: |
<p><em>foo bar</em></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto"><em>foo bar</em></p>
+ <p data-sourcepos="1:1-1:9" dir="auto"><em data-sourcepos="1:1-1:9">foo bar</em></p>
wysiwyg: |-
<p dir="auto"><em>foo bar</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__008:
@@ -5308,7 +5308,7 @@
canonical: |
<p>foo-<em>(bar)</em></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto">foo-<em>(bar)</em></p>
+ <p data-sourcepos="1:1-1:11" dir="auto">foo-<em data-sourcepos="1:5-1:11">(bar)</em></p>
wysiwyg: |-
<p dir="auto">foo-<em>(bar)</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__015:
@@ -5346,14 +5346,14 @@
canonical: |
<p><em>(<em>foo</em>)</em></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto"><em>(<em>foo</em>)</em></p>
+ <p data-sourcepos="1:1-1:9" dir="auto"><em data-sourcepos="1:1-1:9">(<em data-sourcepos="1:3-1:7">foo</em>)</em></p>
wysiwyg: |-
<p dir="auto"><em>(foo</em>)</p>
06_05_00__inlines__emphasis_and_strong_emphasis__020:
canonical: |
<p><em>foo</em>bar</p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><em>foo</em>bar</p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><em data-sourcepos="1:1-1:5">foo</em>bar</p>
wysiwyg: |-
<p dir="auto"><em>foo</em>bar</p>
06_05_00__inlines__emphasis_and_strong_emphasis__021:
@@ -5374,7 +5374,7 @@
canonical: |
<p><em>(<em>foo</em>)</em></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto"><em>(<em>foo</em>)</em></p>
+ <p data-sourcepos="1:1-1:9" dir="auto"><em data-sourcepos="1:1-1:9">(<em data-sourcepos="1:3-1:7">foo</em>)</em></p>
wysiwyg: |-
<p dir="auto"><em>(foo</em>)</p>
06_05_00__inlines__emphasis_and_strong_emphasis__024:
@@ -5395,21 +5395,21 @@
canonical: |
<p><em>foo_bar_baz</em></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto"><em>foo_bar_baz</em></p>
+ <p data-sourcepos="1:1-1:13" dir="auto"><em data-sourcepos="1:1-1:13">foo_bar_baz</em></p>
wysiwyg: |-
<p dir="auto"><em>foo_bar_baz</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__027:
canonical: |
<p><em>(bar)</em>.</p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><em>(bar)</em>.</p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><em data-sourcepos="1:1-1:7">(bar)</em>.</p>
wysiwyg: |-
<p dir="auto"><em>(bar)</em>.</p>
06_05_00__inlines__emphasis_and_strong_emphasis__028:
canonical: |
<p><strong>foo bar</strong></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><strong>foo bar</strong></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><strong data-sourcepos="1:1-1:11">foo bar</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo bar</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__029:
@@ -5430,14 +5430,14 @@
canonical: |
<p>foo<strong>bar</strong></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto">foo<strong>bar</strong></p>
+ <p data-sourcepos="1:1-1:10" dir="auto">foo<strong data-sourcepos="1:4-1:10">bar</strong></p>
wysiwyg: |-
<p dir="auto">foo<strong>bar</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__032:
canonical: |
<p><strong>foo bar</strong></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><strong>foo bar</strong></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><strong data-sourcepos="1:1-1:11">foo bar</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo bar</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__033:
@@ -5489,14 +5489,14 @@
canonical: |
<p><strong>foo, <strong>bar</strong>, baz</strong></p>
static: |-
- <p data-sourcepos="1:1-1:21" dir="auto"><strong>foo, bar, baz</strong></p>
+ <p data-sourcepos="1:1-1:21" dir="auto"><strong data-sourcepos="1:1-1:21">foo, bar, baz</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo, bar</strong>, baz</p>
06_05_00__inlines__emphasis_and_strong_emphasis__040:
canonical: |
<p>foo-<strong>(bar)</strong></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto">foo-<strong>(bar)</strong></p>
+ <p data-sourcepos="1:1-1:13" dir="auto">foo-<strong data-sourcepos="1:5-1:13">(bar)</strong></p>
wysiwyg: |-
<p dir="auto">foo-<strong>(bar)</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__041:
@@ -5517,7 +5517,7 @@
canonical: |
<p><em>(<strong>foo</strong>)</em></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><em>(<strong>foo</strong>)</em></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><em data-sourcepos="1:1-1:11">(<strong data-sourcepos="1:3-1:9">foo</strong>)</em></p>
wysiwyg: |-
<p dir="auto"><em>(</em><strong><em>foo</em></strong><em>)</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__044:
@@ -5525,8 +5525,8 @@
<p><strong>Gomphocarpus (<em>Gomphocarpus physocarpus</em>, syn.
<em>Asclepias physocarpa</em>)</strong></p>
static: |-
- <p data-sourcepos="1:1-2:25" dir="auto"><strong>Gomphocarpus (<em>Gomphocarpus physocarpus</em>, syn.
- <em>Asclepias physocarpa</em>)</strong></p>
+ <p data-sourcepos="1:1-2:25" dir="auto"><strong data-sourcepos="1:1-2:25">Gomphocarpus (<em data-sourcepos="1:17-1:42">Gomphocarpus physocarpus</em>, syn.
+ <em data-sourcepos="2:1-2:22">Asclepias physocarpa</em>)</strong></p>
wysiwyg: |-
<p dir="auto"><strong>Gomphocarpus (<em>Gomphocarpus physocarpus</em>, syn.
<em>Asclepias physocarpa</em>)</strong></p>
@@ -5534,14 +5534,14 @@
canonical: |
<p><strong>foo &quot;<em>bar</em>&quot; foo</strong></p>
static: |-
- <p data-sourcepos="1:1-1:19" dir="auto"><strong>foo "<em>bar</em>" foo</strong></p>
+ <p data-sourcepos="1:1-1:19" dir="auto"><strong data-sourcepos="1:1-1:19">foo "<em data-sourcepos="1:8-1:12">bar</em>" foo</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo "<em>bar</em>" foo</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__046:
canonical: |
<p><strong>foo</strong>bar</p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><strong>foo</strong>bar</p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><strong data-sourcepos="1:1-1:7">foo</strong>bar</p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong>bar</p>
06_05_00__inlines__emphasis_and_strong_emphasis__047:
@@ -5562,7 +5562,7 @@
canonical: |
<p><em>(<strong>foo</strong>)</em></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><em>(<strong>foo</strong>)</em></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><em data-sourcepos="1:1-1:11">(<strong data-sourcepos="1:3-1:9">foo</strong>)</em></p>
wysiwyg: |-
<p dir="auto"><em>(</em><strong><em>foo</em></strong><em>)</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__050:
@@ -5583,21 +5583,21 @@
canonical: |
<p><strong>foo__bar__baz</strong></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><strong>foo__bar__baz</strong></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><strong data-sourcepos="1:1-1:17">foo__bar__baz</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo__bar__baz</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__053:
canonical: |
<p><strong>(bar)</strong>.</p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><strong>(bar)</strong>.</p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><strong data-sourcepos="1:1-1:9">(bar)</strong>.</p>
wysiwyg: |-
<p dir="auto"><strong>(bar)</strong>.</p>
06_05_00__inlines__emphasis_and_strong_emphasis__054:
canonical: |
<p><em>foo <a href="/url">bar</a></em></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><em>foo <a href="/url">bar</a></em></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><em data-sourcepos="1:1-1:17">foo <a data-sourcepos="1:6-1:16" href="/url">bar</a></em></p>
wysiwyg: |-
<p dir="auto"><em>foo </em><a target="_blank" rel="noopener noreferrer nofollow" href="/url"><em>bar</em></a></p>
06_05_00__inlines__emphasis_and_strong_emphasis__055:
@@ -5605,7 +5605,7 @@
<p><em>foo
bar</em></p>
static: |-
- <p data-sourcepos="1:1-2:4" dir="auto"><em>foo
+ <p data-sourcepos="1:1-2:4" dir="auto"><em data-sourcepos="1:1-2:4">foo
bar</em></p>
wysiwyg: |-
<p dir="auto"><em>foo
@@ -5614,98 +5614,98 @@
canonical: |
<p><em>foo <strong>bar</strong> baz</em></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><em>foo <strong>bar</strong> baz</em></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><em data-sourcepos="1:1-1:17">foo <strong data-sourcepos="1:6-1:12">bar</strong> baz</em></p>
wysiwyg: |-
<p dir="auto"><em>foo </em><strong><em>bar</em></strong><em> baz</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__057:
canonical: |
<p><em>foo <em>bar</em> baz</em></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><em>foo <em>bar</em> baz</em></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><em data-sourcepos="1:1-1:15">foo <em data-sourcepos="1:6-1:10">bar</em> baz</em></p>
wysiwyg: |-
<p dir="auto"><em>foo bar</em> baz</p>
06_05_00__inlines__emphasis_and_strong_emphasis__058:
canonical: |
<p><em><em>foo</em> bar</em></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><em><em>foo</em> bar</em></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><em data-sourcepos="1:1-1:11"><em data-sourcepos="1:1-1:6">foo</em> bar</em></p>
wysiwyg: |-
<p dir="auto"><em>foo</em> bar</p>
06_05_00__inlines__emphasis_and_strong_emphasis__059:
canonical: |
<p><em>foo <em>bar</em></em></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><em>foo <em>bar</em></em></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><em data-sourcepos="1:1-1:11">foo <em data-sourcepos="1:6-1:11">bar</em></em></p>
wysiwyg: |-
<p dir="auto"><em>foo bar</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__060:
canonical: |
<p><em>foo <strong>bar</strong> baz</em></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><em>foo <strong>bar</strong> baz</em></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><em data-sourcepos="1:1-1:17">foo <strong data-sourcepos="1:6-1:12">bar</strong> baz</em></p>
wysiwyg: |-
<p dir="auto"><em>foo </em><strong><em>bar</em></strong><em> baz</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__061:
canonical: |
<p><em>foo<strong>bar</strong>baz</em></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><em>foo<strong>bar</strong>baz</em></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><em data-sourcepos="1:1-1:15">foo<strong data-sourcepos="1:5-1:11">bar</strong>baz</em></p>
wysiwyg: |-
<p dir="auto"><em>foo</em><strong><em>bar</em></strong><em>baz</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__062:
canonical: |
<p><em>foo**bar</em></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><em>foo**bar</em></p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><em data-sourcepos="1:1-1:10">foo**bar</em></p>
wysiwyg: |-
<p dir="auto"><em>foo**bar</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__063:
canonical: |
<p><em><strong>foo</strong> bar</em></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto"><em><strong>foo</strong> bar</em></p>
+ <p data-sourcepos="1:1-1:13" dir="auto"><em data-sourcepos="1:1-1:13"><strong data-sourcepos="1:1-1:8">foo</strong> bar</em></p>
wysiwyg: |-
<p dir="auto"><strong><em>foo</em></strong><em> bar</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__064:
canonical: |
<p><em>foo <strong>bar</strong></em></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto"><em>foo <strong>bar</strong></em></p>
+ <p data-sourcepos="1:1-1:13" dir="auto"><em data-sourcepos="1:1-1:13">foo <strong data-sourcepos="1:6-1:13">bar</strong></em></p>
wysiwyg: |-
<p dir="auto"><em>foo </em><strong><em>bar</em></strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__065:
canonical: |
<p><em>foo<strong>bar</strong></em></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto"><em>foo<strong>bar</strong></em></p>
+ <p data-sourcepos="1:1-1:12" dir="auto"><em data-sourcepos="1:1-1:12">foo<strong data-sourcepos="1:5-1:12">bar</strong></em></p>
wysiwyg: |-
<p dir="auto"><em>foo</em><strong><em>bar</em></strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__066:
canonical: |
<p>foo<em><strong>bar</strong></em>baz</p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto">foo<em><strong>bar</strong></em>baz</p>
+ <p data-sourcepos="1:1-1:15" dir="auto">foo<em data-sourcepos="1:4-1:12"><strong data-sourcepos="1:4-1:12">bar</strong></em>baz</p>
wysiwyg: |-
<p dir="auto">foo<strong><em>bar</em></strong>baz</p>
06_05_00__inlines__emphasis_and_strong_emphasis__067:
canonical: |
<p>foo<strong><strong><strong>bar</strong></strong></strong>***baz</p>
static: |-
- <p data-sourcepos="1:1-1:24" dir="auto">foo<strong>bar</strong>***baz</p>
+ <p data-sourcepos="1:1-1:24" dir="auto">foo<strong data-sourcepos="1:4-1:21">bar</strong>***baz</p>
wysiwyg: |-
<p dir="auto">foo<strong>bar</strong>***baz</p>
06_05_00__inlines__emphasis_and_strong_emphasis__068:
canonical: |
<p><em>foo <strong>bar <em>baz</em> bim</strong> bop</em></p>
static: |-
- <p data-sourcepos="1:1-1:27" dir="auto"><em>foo <strong>bar <em>baz</em> bim</strong> bop</em></p>
+ <p data-sourcepos="1:1-1:27" dir="auto"><em data-sourcepos="1:1-1:27">foo <strong data-sourcepos="1:6-1:22">bar <em data-sourcepos="1:12-1:16">baz</em> bim</strong> bop</em></p>
wysiwyg: |-
<p dir="auto"><em>foo </em><strong><em>bar baz</em> bim</strong> bop</p>
06_05_00__inlines__emphasis_and_strong_emphasis__069:
canonical: |
<p><em>foo <a href="/url"><em>bar</em></a></em></p>
static: |-
- <p data-sourcepos="1:1-1:19" dir="auto"><em>foo <a href="/url"><em>bar</em></a></em></p>
+ <p data-sourcepos="1:1-1:19" dir="auto"><em data-sourcepos="1:1-1:19">foo <a data-sourcepos="1:6-1:18" href="/url"><em data-sourcepos="1:7-1:11">bar</em></a></em></p>
wysiwyg: |-
<p dir="auto"><em>foo </em><a target="_blank" rel="noopener noreferrer nofollow" href="/url"><em>bar</em></a></p>
06_05_00__inlines__emphasis_and_strong_emphasis__070:
@@ -5726,7 +5726,7 @@
canonical: |
<p><strong>foo <a href="/url">bar</a></strong></p>
static: |-
- <p data-sourcepos="1:1-1:19" dir="auto"><strong>foo <a href="/url">bar</a></strong></p>
+ <p data-sourcepos="1:1-1:19" dir="auto"><strong data-sourcepos="1:1-1:19">foo <a data-sourcepos="1:7-1:17" href="/url">bar</a></strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo </strong><a target="_blank" rel="noopener noreferrer nofollow" href="/url"><strong>bar</strong></a></p>
06_05_00__inlines__emphasis_and_strong_emphasis__073:
@@ -5734,7 +5734,7 @@
<p><strong>foo
bar</strong></p>
static: |-
- <p data-sourcepos="1:1-2:5" dir="auto"><strong>foo
+ <p data-sourcepos="1:1-2:5" dir="auto"><strong data-sourcepos="1:1-2:5">foo
bar</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo
@@ -5743,56 +5743,56 @@
canonical: |
<p><strong>foo <em>bar</em> baz</strong></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><strong>foo <em>bar</em> baz</strong></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><strong data-sourcepos="1:1-1:17">foo <em data-sourcepos="1:7-1:11">bar</em> baz</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo <em>bar</em> baz</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__075:
canonical: |
<p><strong>foo <strong>bar</strong> baz</strong></p>
static: |-
- <p data-sourcepos="1:1-1:19" dir="auto"><strong>foo bar baz</strong></p>
+ <p data-sourcepos="1:1-1:19" dir="auto"><strong data-sourcepos="1:1-1:19">foo bar baz</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo bar</strong> baz</p>
06_05_00__inlines__emphasis_and_strong_emphasis__076:
canonical: |
<p><strong><strong>foo</strong> bar</strong></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><strong>foo bar</strong></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><strong data-sourcepos="1:1-1:15">foo bar</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong> bar</p>
06_05_00__inlines__emphasis_and_strong_emphasis__077:
canonical: |
<p><strong>foo <strong>bar</strong></strong></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><strong>foo bar</strong></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><strong data-sourcepos="1:1-1:15">foo bar</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo bar</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__078:
canonical: |
<p><strong>foo <em>bar</em> baz</strong></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><strong>foo <em>bar</em> baz</strong></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><strong data-sourcepos="1:1-1:17">foo <em data-sourcepos="1:7-1:11">bar</em> baz</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo <em>bar</em> baz</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__079:
canonical: |
<p><strong>foo<em>bar</em>baz</strong></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><strong>foo<em>bar</em>baz</strong></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><strong data-sourcepos="1:1-1:15">foo<em data-sourcepos="1:6-1:10">bar</em>baz</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo<em>bar</em>baz</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__080:
canonical: |
<p><strong><em>foo</em> bar</strong></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto"><strong><em>foo</em> bar</strong></p>
+ <p data-sourcepos="1:1-1:13" dir="auto"><strong data-sourcepos="1:1-1:13"><em data-sourcepos="1:1-1:7">foo</em> bar</strong></p>
wysiwyg: |-
<p dir="auto"><strong><em>foo</em> bar</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__081:
canonical: |
<p><strong>foo <em>bar</em></strong></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto"><strong>foo <em>bar</em></strong></p>
+ <p data-sourcepos="1:1-1:13" dir="auto"><strong data-sourcepos="1:1-1:13">foo <em data-sourcepos="1:7-1:13">bar</em></strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo <em>bar</em></strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__082:
@@ -5800,7 +5800,7 @@
<p><strong>foo <em>bar <strong>baz</strong>
bim</em> bop</strong></p>
static: |-
- <p data-sourcepos="1:1-2:10" dir="auto"><strong>foo <em>bar <strong>baz</strong>
+ <p data-sourcepos="1:1-2:10" dir="auto"><strong data-sourcepos="1:1-2:10">foo <em data-sourcepos="1:7-2:4">bar <strong data-sourcepos="1:12-1:18">baz</strong>
bim</em> bop</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo <em>bar baz</em></strong><em>
@@ -5809,7 +5809,7 @@
canonical: |
<p><strong>foo <a href="/url"><em>bar</em></a></strong></p>
static: |-
- <p data-sourcepos="1:1-1:21" dir="auto"><strong>foo <a href="/url"><em>bar</em></a></strong></p>
+ <p data-sourcepos="1:1-1:21" dir="auto"><strong data-sourcepos="1:1-1:21">foo <a data-sourcepos="1:7-1:19" href="/url"><em data-sourcepos="1:8-1:12">bar</em></a></strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo </strong><a target="_blank" rel="noopener noreferrer nofollow" href="/url"><strong><em>bar</em></strong></a></p>
06_05_00__inlines__emphasis_and_strong_emphasis__084:
@@ -5837,14 +5837,14 @@
canonical: |
<p>foo <em>*</em></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto">foo <em>*</em></p>
+ <p data-sourcepos="1:1-1:8" dir="auto">foo <em data-sourcepos="1:5-1:8">*</em></p>
wysiwyg: |-
<p dir="auto">foo <em>*</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__088:
canonical: |
<p>foo <em>_</em></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto">foo <em>_</em></p>
+ <p data-sourcepos="1:1-1:7" dir="auto">foo <em data-sourcepos="1:5-1:7">_</em></p>
wysiwyg: |-
<p dir="auto">foo <em>_</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__089:
@@ -5858,56 +5858,56 @@
canonical: |
<p>foo <strong>*</strong></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto">foo <strong>*</strong></p>
+ <p data-sourcepos="1:1-1:10" dir="auto">foo <strong data-sourcepos="1:5-1:10">*</strong></p>
wysiwyg: |-
<p dir="auto">foo <strong>*</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__091:
canonical: |
<p>foo <strong>_</strong></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto">foo <strong>_</strong></p>
+ <p data-sourcepos="1:1-1:9" dir="auto">foo <strong data-sourcepos="1:5-1:9">_</strong></p>
wysiwyg: |-
<p dir="auto">foo <strong>_</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__092:
canonical: |
<p>*<em>foo</em></p>
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto">*<em>foo</em></p>
+ <p data-sourcepos="1:1-1:6" dir="auto">*<em data-sourcepos="1:1-1:6">foo</em></p>
wysiwyg: |-
<p dir="auto">*<em>foo</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__093:
canonical: |
<p><em>foo</em>*</p>
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto"><em>foo</em>*</p>
+ <p data-sourcepos="1:1-1:6" dir="auto"><em data-sourcepos="1:1-1:6">foo</em>*</p>
wysiwyg: |-
<p dir="auto"><em>foo</em>*</p>
06_05_00__inlines__emphasis_and_strong_emphasis__094:
canonical: |
<p>*<strong>foo</strong></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto">*<strong>foo</strong></p>
+ <p data-sourcepos="1:1-1:8" dir="auto">*<strong data-sourcepos="1:1-1:8">foo</strong></p>
wysiwyg: |-
<p dir="auto">*<strong>foo</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__095:
canonical: |
<p>***<em>foo</em></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto">***<em>foo</em></p>
+ <p data-sourcepos="1:1-1:8" dir="auto">***<em data-sourcepos="1:1-1:8">foo</em></p>
wysiwyg: |-
<p dir="auto">***<em>foo</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__096:
canonical: |
<p><strong>foo</strong>*</p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><strong>foo</strong>*</p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><strong data-sourcepos="1:1-1:8">foo</strong>*</p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong>*</p>
06_05_00__inlines__emphasis_and_strong_emphasis__097:
canonical: |
<p><em>foo</em>***</p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><em>foo</em>***</p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><em data-sourcepos="1:1-1:8">foo</em>***</p>
wysiwyg: |-
<p dir="auto"><em>foo</em>***</p>
06_05_00__inlines__emphasis_and_strong_emphasis__098:
@@ -5921,14 +5921,14 @@
canonical: |
<p>foo <em>_</em></p>
static: |-
- <p data-sourcepos="1:1-1:29" dir="auto">foo <em>_</em></p>
+ <p data-sourcepos="1:1-1:29" dir="auto">foo <em data-sourcepos="1:5-1:29">_</em></p>
wysiwyg: |-
<p dir="auto">foo <em>_</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__100:
canonical: |
<p>foo <em>*</em></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto">foo <em>*</em></p>
+ <p data-sourcepos="1:1-1:7" dir="auto">foo <em data-sourcepos="1:5-1:7">*</em></p>
wysiwyg: |-
<p dir="auto">foo <em>*</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__101:
@@ -5942,161 +5942,161 @@
canonical: |
<p>foo <strong>_</strong></p>
static: |-
- <p data-sourcepos="1:1-1:31" dir="auto">foo <strong>_</strong></p>
+ <p data-sourcepos="1:1-1:31" dir="auto">foo <strong data-sourcepos="1:5-1:31">_</strong></p>
wysiwyg: |-
<p dir="auto">foo <strong>_</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__103:
canonical: |
<p>foo <strong>*</strong></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto">foo <strong>*</strong></p>
+ <p data-sourcepos="1:1-1:9" dir="auto">foo <strong data-sourcepos="1:5-1:9">*</strong></p>
wysiwyg: |-
<p dir="auto">foo <strong>*</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__104:
canonical: |
<p>_<em>foo</em></p>
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto">_<em>foo</em></p>
+ <p data-sourcepos="1:1-1:6" dir="auto">_<em data-sourcepos="1:1-1:6">foo</em></p>
wysiwyg: |-
<p dir="auto">_<em>foo</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__105:
canonical: |
<p><em>foo</em>_</p>
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto"><em>foo</em>_</p>
+ <p data-sourcepos="1:1-1:6" dir="auto"><em data-sourcepos="1:1-1:6">foo</em>_</p>
wysiwyg: |-
<p dir="auto"><em>foo</em>_</p>
06_05_00__inlines__emphasis_and_strong_emphasis__106:
canonical: |
<p>_<strong>foo</strong></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto">_<strong>foo</strong></p>
+ <p data-sourcepos="1:1-1:8" dir="auto">_<strong data-sourcepos="1:1-1:8">foo</strong></p>
wysiwyg: |-
<p dir="auto">_<strong>foo</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__107:
canonical: |
<p>___<em>foo</em></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto">___<em>foo</em></p>
+ <p data-sourcepos="1:1-1:8" dir="auto">___<em data-sourcepos="1:1-1:8">foo</em></p>
wysiwyg: |-
<p dir="auto">___<em>foo</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__108:
canonical: |
<p><strong>foo</strong>_</p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><strong>foo</strong>_</p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><strong data-sourcepos="1:1-1:8">foo</strong>_</p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong>_</p>
06_05_00__inlines__emphasis_and_strong_emphasis__109:
canonical: |
<p><em>foo</em>___</p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><em>foo</em>___</p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><em data-sourcepos="1:1-1:8">foo</em>___</p>
wysiwyg: |-
<p dir="auto"><em>foo</em>___</p>
06_05_00__inlines__emphasis_and_strong_emphasis__110:
canonical: |
<p><strong>foo</strong></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><strong>foo</strong></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><strong data-sourcepos="1:1-1:7">foo</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__111:
canonical: |
<p><em><em>foo</em></em></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><em><em>foo</em></em></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><em data-sourcepos="1:1-1:7"><em data-sourcepos="1:2-1:6">foo</em></em></p>
wysiwyg: |-
<p dir="auto"><em>foo</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__112:
canonical: |
<p><strong>foo</strong></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><strong>foo</strong></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><strong data-sourcepos="1:1-1:7">foo</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__113:
canonical: |
<p><em><em>foo</em></em></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><em><em>foo</em></em></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><em data-sourcepos="1:1-1:7"><em data-sourcepos="1:2-1:6">foo</em></em></p>
wysiwyg: |-
<p dir="auto"><em>foo</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__114:
canonical: |
<p><strong><strong>foo</strong></strong></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><strong>foo</strong></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><strong data-sourcepos="1:1-1:11">foo</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__115:
canonical: |
<p><strong><strong>foo</strong></strong></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><strong>foo</strong></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><strong data-sourcepos="1:1-1:11">foo</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__116:
canonical: |
<p><strong><strong><strong>foo</strong></strong></strong></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><strong>foo</strong></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><strong data-sourcepos="1:1-1:15">foo</strong></p>
wysiwyg: |-
<p dir="auto"><strong>foo</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__117:
canonical: |
<p><em><strong>foo</strong></em></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto"><em><strong>foo</strong></em></p>
+ <p data-sourcepos="1:1-1:9" dir="auto"><em data-sourcepos="1:1-1:9"><strong data-sourcepos="1:1-1:9">foo</strong></em></p>
wysiwyg: |-
<p dir="auto"><strong><em>foo</em></strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__118:
canonical: |
<p><em><strong><strong>foo</strong></strong></em></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto"><em><strong>foo</strong></em></p>
+ <p data-sourcepos="1:1-1:13" dir="auto"><em data-sourcepos="1:1-1:13"><strong data-sourcepos="1:1-1:13">foo</strong></em></p>
wysiwyg: |-
<p dir="auto"><strong><em>foo</em></strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__119:
canonical: |
<p><em>foo _bar</em> baz_</p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><em>foo _bar</em> baz_</p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><em data-sourcepos="1:1-1:10">foo _bar</em> baz_</p>
wysiwyg: |-
<p dir="auto"><em>foo _bar</em> baz_</p>
06_05_00__inlines__emphasis_and_strong_emphasis__120:
canonical: |
<p><em>foo <strong>bar *baz bim</strong> bam</em></p>
static: |-
- <p data-sourcepos="1:1-1:26" dir="auto"><em>foo <strong>bar *baz bim</strong> bam</em></p>
+ <p data-sourcepos="1:1-1:26" dir="auto"><em data-sourcepos="1:1-1:26">foo <strong data-sourcepos="1:6-1:21">bar *baz bim</strong> bam</em></p>
wysiwyg: |-
<p dir="auto"><em>foo </em><strong><em>bar *baz bim</em></strong><em> bam</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__121:
canonical: |
<p>**foo <strong>bar baz</strong></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto">**foo <strong>bar baz</strong></p>
+ <p data-sourcepos="1:1-1:17" dir="auto">**foo <strong data-sourcepos="1:7-1:17">bar baz</strong></p>
wysiwyg: |-
<p dir="auto">**foo <strong>bar baz</strong></p>
06_05_00__inlines__emphasis_and_strong_emphasis__122:
canonical: |
<p>*foo <em>bar baz</em></p>
static: |-
- <p data-sourcepos="1:1-1:14" dir="auto">*foo <em>bar baz</em></p>
+ <p data-sourcepos="1:1-1:14" dir="auto">*foo <em data-sourcepos="1:6-1:14">bar baz</em></p>
wysiwyg: |-
<p dir="auto">*foo <em>bar baz</em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__123:
canonical: |
<p>*<a href="/url">bar*</a></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto">*<a href="/url">bar*</a></p>
+ <p data-sourcepos="1:1-1:13" dir="auto">*<a data-sourcepos="1:2-1:13" href="/url">bar*</a></p>
wysiwyg: |-
<p dir="auto">*<a target="_blank" rel="noopener noreferrer nofollow" href="/url">bar*</a></p>
06_05_00__inlines__emphasis_and_strong_emphasis__124:
canonical: |
<p>_foo <a href="/url">bar_</a></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto">_foo <a href="/url">bar_</a></p>
+ <p data-sourcepos="1:1-1:17" dir="auto">_foo <a data-sourcepos="1:6-1:17" href="/url">bar_</a></p>
wysiwyg: |-
<p dir="auto">_foo <a target="_blank" rel="noopener noreferrer nofollow" href="/url">bar_</a></p>
06_05_00__inlines__emphasis_and_strong_emphasis__125:
@@ -6124,35 +6124,35 @@
canonical: |
<p><em>a <code>*</code></em></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><em>a <code>*</code></em></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><em data-sourcepos="1:1-1:7">a <code data-sourcepos="1:5-1:5">*</code></em></p>
wysiwyg: |-
<p dir="auto"><em>a <code>*</code></em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__129:
canonical: |
<p><em>a <code>_</code></em></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><em>a <code>_</code></em></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><em data-sourcepos="1:1-1:7">a <code data-sourcepos="1:5-1:5">_</code></em></p>
wysiwyg: |-
<p dir="auto"><em>a <code>_</code></em></p>
06_05_00__inlines__emphasis_and_strong_emphasis__130:
canonical: |
<p>**a<a href="http://foo.bar/?q=**">http://foo.bar/?q=**</a></p>
static: |-
- <p data-sourcepos="1:1-1:25" dir="auto">**a<a href="http://foo.bar/?q=**" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar/?q=**</a></p>
+ <p data-sourcepos="1:1-1:25" dir="auto">**a<a data-sourcepos="1:5-1:26" href="http://foo.bar/?q=**" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar/?q=**</a></p>
wysiwyg: |-
<p dir="auto">**a<a target="_blank" rel="noopener noreferrer nofollow" href="http://foo.bar/?q=**">http://foo.bar/?q=**</a></p>
06_05_00__inlines__emphasis_and_strong_emphasis__131:
canonical: |
<p>__a<a href="http://foo.bar/?q=__">http://foo.bar/?q=__</a></p>
static: |-
- <p data-sourcepos="1:1-1:25" dir="auto">__a<a href="http://foo.bar/?q=__" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar/?q=__</a></p>
+ <p data-sourcepos="1:1-1:25" dir="auto">__a<a data-sourcepos="1:5-1:26" href="http://foo.bar/?q=__" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar/?q=__</a></p>
wysiwyg: |-
<p dir="auto">__a<a target="_blank" rel="noopener noreferrer nofollow" href="http://foo.bar/?q=__">http://foo.bar/?q=__</a></p>
06_06_00__inlines__strikethrough_extension__001:
canonical: |
<p><del>Hi</del> Hello, world!</p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto"><del>Hi</del> Hello, world!</p>
+ <p data-sourcepos="1:1-1:20" dir="auto"><del data-sourcepos="1:1-1:6">Hi</del> Hello, world!</p>
wysiwyg: |-
<p dir="auto"><s>Hi</s> Hello, world!</p>
06_06_00__inlines__strikethrough_extension__002:
@@ -6169,42 +6169,42 @@
canonical: |
<p><a href="/uri" title="title">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto"><a href="/uri" title="title">link</a></p>
+ <p data-sourcepos="1:1-1:20" dir="auto"><a data-sourcepos="1:1-1:20" href="/uri" title="title">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri" title="title">link</a></p>
06_07_00__inlines__links__002:
canonical: |
<p><a href="/uri">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto"><a href="/uri">link</a></p>
+ <p data-sourcepos="1:1-1:12" dir="auto"><a data-sourcepos="1:1-1:12" href="/uri">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">link</a></p>
06_07_00__inlines__links__003:
canonical: |
<p><a href="">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><a href="">link</a></p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><a data-sourcepos="1:1-1:8" href="">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="">link</a></p>
06_07_00__inlines__links__004:
canonical: |
<p><a href="">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><a href="">link</a></p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><a data-sourcepos="1:1-1:10" href="">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="">link</a></p>
06_07_00__inlines__links__005:
canonical: |
<p>[link](/my uri)</p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><a href="/my%20uri">link</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><a data-sourcepos="1:1-1:17" href="/my%20uri">link</a></p>
wysiwyg: |-
<p dir="auto">[link](/my uri)</p>
06_07_00__inlines__links__006:
canonical: |
<p><a href="/my%20uri">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><a href="/my%20uri">link</a></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><a data-sourcepos="1:1-1:17" href="/my%20uri">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/my%20uri">link</a></p>
06_07_00__inlines__links__007:
@@ -6229,14 +6229,14 @@
canonical: |
<p><a href="b)c">a</a></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><a href="b)c">a</a></p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><a data-sourcepos="1:1-1:10" href="b)c">a</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="b)c">a</a></p>
06_07_00__inlines__links__010:
canonical: |
<p>[link](&lt;foo&gt;)</p>
static: |-
- <p data-sourcepos="1:1-1:14" dir="auto"><a href="%3Cfoo%3E">link</a></p>
+ <p data-sourcepos="1:1-1:14" dir="auto"><a data-sourcepos="1:1-1:19" href="%3Cfoo%3E">link</a></p>
wysiwyg: |-
<p dir="auto">[link](&lt;foo&gt;)</p>
06_07_00__inlines__links__011:
@@ -6245,8 +6245,8 @@
[a](&lt;b)c&gt;
[a](<b>c)</p>
static: |-
- <p data-sourcepos="1:1-3:9" dir="auto"><a href="%3Cb">a</a>c
- <a href="%3Cb">a</a>c&gt;
+ <p data-sourcepos="1:1-3:9" dir="auto"><a data-sourcepos="1:1-1:10" href="%3Cb">a</a>c
+ <a data-sourcepos="1:1-1:10" href="%3Cb">a</a>c&gt;
[a](<b>c)</b></p>
wysiwyg: |-
<p dir="auto">[a](&lt;b)c
@@ -6256,35 +6256,35 @@
canonical: |
<p><a href="(foo)">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><a href="(foo)">link</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><a data-sourcepos="1:1-1:15" href="(foo)">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="(foo)">link</a></p>
06_07_00__inlines__links__013:
canonical: |
<p><a href="foo(and(bar))">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:21" dir="auto"><a href="foo(and(bar))">link</a></p>
+ <p data-sourcepos="1:1-1:21" dir="auto"><a data-sourcepos="1:1-1:21" href="foo(and(bar))">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="foo(and(bar))">link</a></p>
06_07_00__inlines__links__014:
canonical: |
<p><a href="foo(and(bar)">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:23" dir="auto"><a href="foo(and(bar)">link</a></p>
+ <p data-sourcepos="1:1-1:23" dir="auto"><a data-sourcepos="1:1-1:23" href="foo(and(bar)">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="foo(and(bar)">link</a></p>
06_07_00__inlines__links__015:
canonical: |
<p><a href="foo(and(bar)">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:22" dir="auto"><a href="foo(and(bar)">link</a></p>
+ <p data-sourcepos="1:1-1:22" dir="auto"><a data-sourcepos="1:1-1:22" href="foo(and(bar)">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="foo(and(bar)">link</a></p>
06_07_00__inlines__links__016:
canonical: |
<p><a href="foo):">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><a>link</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><a data-sourcepos="1:1-1:15">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="foo):">link</a></p>
06_07_00__inlines__links__017:
@@ -6293,9 +6293,9 @@
<p><a href="http://example.com#fragment">link</a></p>
<p><a href="http://example.com?foo=3#frag">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><a href="#fragment">link</a></p>
- <p data-sourcepos="3:1-3:35" dir="auto"><a href="http://example.com#fragment" rel="nofollow noreferrer noopener" target="_blank">link</a></p>
- <p data-sourcepos="5:1-5:37" dir="auto"><a href="http://example.com?foo=3#frag" rel="nofollow noreferrer noopener" target="_blank">link</a></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><a data-sourcepos="1:1-1:17" href="#fragment">link</a></p>
+ <p data-sourcepos="3:1-3:35" dir="auto"><a data-sourcepos="3:1-3:35" href="http://example.com#fragment" rel="nofollow noreferrer noopener" target="_blank">link</a></p>
+ <p data-sourcepos="5:1-5:37" dir="auto"><a data-sourcepos="5:1-5:37" href="http://example.com?foo=3#frag" rel="nofollow noreferrer noopener" target="_blank">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="#fragment">link</a></p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://example.com#fragment">link</a></p>
@@ -6304,21 +6304,21 @@
canonical: |
<p><a href="foo%5Cbar">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><a href="foo%5Cbar">link</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><a data-sourcepos="1:1-1:15" href="foo%5Cbar">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="foo%5Cbar">link</a></p>
06_07_00__inlines__links__019:
canonical: |
<p><a href="foo%20b%C3%A4">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:21" dir="auto"><a href="foo%20b%C3%A4">link</a></p>
+ <p data-sourcepos="1:1-1:21" dir="auto"><a data-sourcepos="1:1-1:21" href="foo%20b%C3%A4">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="foo%20b%C3%A4">link</a></p>
06_07_00__inlines__links__020:
canonical: |
<p><a href="%22title%22">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><a href="%22title%22">link</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><a data-sourcepos="1:1-1:15" href="%22title%22">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="%22title%22">link</a></p>
06_07_00__inlines__links__021:
@@ -6327,23 +6327,23 @@
<a href="/url" title="title">link</a>
<a href="/url" title="title">link</a></p>
static: |-
- <p data-sourcepos="1:1-3:20" dir="auto"><a href="/url" title="title">link</a>
- <a href="/url" title="title">link</a>
- <a href="/url" title="title">link</a></p>
+ <p data-sourcepos="1:1-3:20" dir="auto"><a data-sourcepos="1:1-1:20" href="/url" title="title">link</a>
+ <a data-sourcepos="2:1-2:20" href="/url" title="title">link</a>
+ <a data-sourcepos="3:1-3:20" href="/url" title="title">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">linklinklink</a></p>
06_07_00__inlines__links__022:
canonical: |
<p><a href="/url" title="title &quot;&quot;">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:29" dir="auto"><a href="/url" title='title ""'>link</a></p>
+ <p data-sourcepos="1:1-1:29" dir="auto"><a data-sourcepos="1:1-1:29" href="/url" title='title ""'>link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title &quot;&quot;">link</a></p>
06_07_00__inlines__links__023:
canonical: |
<p><a href="/url%C2%A0%22title%22">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:21" dir="auto"><a href="/url%C2%A0%22title%22">link</a></p>
+ <p data-sourcepos="1:1-1:21" dir="auto"><a data-sourcepos="1:1-1:21" href="/url%C2%A0%22title%22">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url%C2%A0%22title%22">link</a></p>
06_07_00__inlines__links__024:
@@ -6357,14 +6357,14 @@
canonical: |
<p><a href="/url" title="title &quot;and&quot; title">link</a></p>
static: |-
- <p data-sourcepos="1:1-1:32" dir="auto"><a href="/url" title='title "and" title'>link</a></p>
+ <p data-sourcepos="1:1-1:32" dir="auto"><a data-sourcepos="1:1-1:32" href="/url" title='title "and" title'>link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title &quot;and&quot; title">link</a></p>
06_07_00__inlines__links__026:
canonical: |
<p><a href="/uri" title="title">link</a></p>
static: |-
- <p data-sourcepos="1:1-2:12" dir="auto"><a href="/uri" title="title">link</a></p>
+ <p data-sourcepos="1:1-2:12" dir="auto"><a data-sourcepos="1:1-1:25" href="/uri" title="title">link</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri" title="title">link</a></p>
06_07_00__inlines__links__027:
@@ -6378,7 +6378,7 @@
canonical: |
<p><a href="/uri">link [foo [bar]]</a></p>
static: |-
- <p data-sourcepos="1:1-1:24" dir="auto"><a href="/uri">link [foo [bar]]</a></p>
+ <p data-sourcepos="1:1-1:24" dir="auto"><a data-sourcepos="1:1-1:24" href="/uri">link [foo [bar]]</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">link [foo [bar]]</a></p>
06_07_00__inlines__links__029:
@@ -6392,70 +6392,70 @@
canonical: |
<p>[link <a href="/uri">bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto">[link <a href="/uri">bar</a></p>
+ <p data-sourcepos="1:1-1:17" dir="auto">[link <a data-sourcepos="1:7-1:17" href="/uri">bar</a></p>
wysiwyg: |-
<p dir="auto">[link <a target="_blank" rel="noopener noreferrer nofollow" href="/uri">bar</a></p>
06_07_00__inlines__links__031:
canonical: |
<p><a href="/uri">link [bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:18" dir="auto"><a href="/uri">link [bar</a></p>
+ <p data-sourcepos="1:1-1:18" dir="auto"><a data-sourcepos="1:1-1:18" href="/uri">link [bar</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">link [bar</a></p>
06_07_00__inlines__links__032:
canonical: |
<p><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>
static: |-
- <p data-sourcepos="1:1-1:30" dir="auto"><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>
+ <p data-sourcepos="1:1-1:30" dir="auto"><a data-sourcepos="1:1-1:30" href="/uri">link <em data-sourcepos="1:7-1:23">foo <strong data-sourcepos="1:12-1:18">bar</strong> <code data-sourcepos="1:21-1:21">#</code></em></a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">link <em>foo </em><strong><em>bar<code>#</code></em></strong></a></p>
06_07_00__inlines__links__033:
canonical: |
<p><a href="/uri"><img src="moon.jpg" alt="moon" /></a></p>
static: |-
- <p data-sourcepos="1:1-1:25" dir="auto"><a href="/uri"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="moon" decoding="async" class="lazy" data-src="moon.jpg"></a></p>
+ <p data-sourcepos="1:1-1:25" dir="auto"><a data-sourcepos="1:1-1:25" href="/uri"><img data-sourcepos="1:2-1:18" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="moon" decoding="async" class="lazy" data-src="moon.jpg"></a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri"><img src="moon.jpg" alt="moon"></a></p>
06_07_00__inlines__links__034:
canonical: |
<p>[foo <a href="/uri">bar</a>](/uri)</p>
static: |-
- <p data-sourcepos="1:1-1:23" dir="auto">[foo <a href="/uri">bar</a>](/uri)</p>
+ <p data-sourcepos="1:1-1:23" dir="auto">[foo <a data-sourcepos="1:6-1:16" href="/uri">bar</a>](/uri)</p>
wysiwyg: |-
<p dir="auto">[foo <a target="_blank" rel="noopener noreferrer nofollow" href="/uri">bar</a>](/uri)</p>
06_07_00__inlines__links__035:
canonical: |
<p>[foo <em>[bar <a href="/uri">baz</a>](/uri)</em>](/uri)</p>
static: |-
- <p data-sourcepos="1:1-1:37" dir="auto">[foo <em>[bar <a href="/uri">baz</a>](/uri)</em>](/uri)</p>
+ <p data-sourcepos="1:1-1:37" dir="auto">[foo <em data-sourcepos="1:6-1:30">[bar <a data-sourcepos="1:12-1:22" href="/uri">baz</a>](/uri)</em>](/uri)</p>
wysiwyg: |-
<p dir="auto">[foo <em>[bar </em><a target="_blank" rel="noopener noreferrer nofollow" href="/uri"><em>baz</em></a><em>](/uri)</em>](/uri)</p>
06_07_00__inlines__links__036:
canonical: |
<p><img src="uri3" alt="[foo](uri2)" /></p>
static: |-
- <p data-sourcepos="1:1-1:28" dir="auto"><a class="no-attachment-icon" href="uri3" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="[foo](uri2)" decoding="async" class="lazy" data-src="uri3"></a></p>
+ <p data-sourcepos="1:1-1:28" dir="auto"><a class="no-attachment-icon" href="uri3" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:28" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="[foo](uri2)" decoding="async" class="lazy" data-src="uri3"></a></p>
wysiwyg: |-
<p dir="auto"><img src="uri3" alt="[foo](uri2)"></p>
06_07_00__inlines__links__037:
canonical: |
<p>*<a href="/uri">foo*</a></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto">*<a href="/uri">foo*</a></p>
+ <p data-sourcepos="1:1-1:13" dir="auto">*<a data-sourcepos="1:2-1:13" href="/uri">foo*</a></p>
wysiwyg: |-
<p dir="auto">*<a target="_blank" rel="noopener noreferrer nofollow" href="/uri">foo*</a></p>
06_07_00__inlines__links__038:
canonical: |
<p><a href="baz*">foo *bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:16" dir="auto"><a href="baz*">foo *bar</a></p>
+ <p data-sourcepos="1:1-1:16" dir="auto"><a data-sourcepos="1:1-1:16" href="baz*">foo *bar</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="baz*">foo *bar</a></p>
06_07_00__inlines__links__039:
canonical: |
<p><em>foo [bar</em> baz]</p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><em>foo [bar</em> baz]</p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><em data-sourcepos="1:1-1:10">foo [bar</em> baz]</p>
wysiwyg: |-
<p dir="auto"><em>foo [bar</em> baz]</p>
06_07_00__inlines__links__040:
@@ -6469,21 +6469,21 @@
canonical: |
<p>[foo<code>](/uri)</code></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto">[foo<code>](/uri)</code></p>
+ <p data-sourcepos="1:1-1:13" dir="auto">[foo<code data-sourcepos="1:6-1:12">](/uri)</code></p>
wysiwyg: |-
<p dir="auto">[foo<code>](/uri)</code></p>
06_07_00__inlines__links__042:
canonical: |
<p>[foo<a href="http://example.com/?search=%5D(uri)">http://example.com/?search=](uri)</a></p>
static: |-
- <p data-sourcepos="1:1-1:39" dir="auto">[foo<a href="http://example.com/?search=%5D(uri)" rel="nofollow noreferrer noopener" target="_blank">http://example.com/?search=](uri)</a></p>
+ <p data-sourcepos="1:1-1:39" dir="auto">[foo<a data-sourcepos="1:6-1:40" href="http://example.com/?search=%5D(uri)" rel="nofollow noreferrer noopener" target="_blank">http://example.com/?search=](uri)</a></p>
wysiwyg: |-
<p dir="auto">[foo<a target="_blank" rel="noopener noreferrer nofollow" href="http://example.com/?search=%5D(uri)">http://example.com/?search=](uri)</a></p>
06_07_00__inlines__links__043:
canonical: |
<p><a href="/url" title="title">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><a href="/url" title="title">foo</a></p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><a data-sourcepos="1:1-1:10" href="/url" title="title">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">foo</a></p>
<pre>[bar]: /url "title"</pre>
@@ -6491,7 +6491,7 @@
canonical: |
<p><a href="/uri">link [foo [bar]]</a></p>
static: |-
- <p data-sourcepos="1:1-1:23" dir="auto"><a href="/uri">link [foo [bar]]</a></p>
+ <p data-sourcepos="1:1-1:23" dir="auto"><a data-sourcepos="1:1-1:23" href="/uri">link [foo [bar]]</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">link [foo [bar]]</a></p>
<pre>[ref]: /uri</pre>
@@ -6499,7 +6499,7 @@
canonical: |
<p><a href="/uri">link [bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><a href="/uri">link [bar</a></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><a data-sourcepos="1:1-1:17" href="/uri">link [bar</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">link [bar</a></p>
<pre>[ref]: /uri</pre>
@@ -6507,7 +6507,7 @@
canonical: |
<p><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>
static: |-
- <p data-sourcepos="1:1-1:29" dir="auto"><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>
+ <p data-sourcepos="1:1-1:29" dir="auto"><a data-sourcepos="1:1-1:29" href="/uri">link <em data-sourcepos="1:7-1:23">foo <strong data-sourcepos="1:12-1:18">bar</strong> <code data-sourcepos="1:21-1:21">#</code></em></a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">link <em>foo </em><strong><em>bar<code>#</code></em></strong></a></p>
<pre>[ref]: /uri</pre>
@@ -6515,7 +6515,7 @@
canonical: |
<p><a href="/uri"><img src="moon.jpg" alt="moon" /></a></p>
static: |-
- <p data-sourcepos="1:1-1:24" dir="auto"><a href="/uri"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="moon" decoding="async" class="lazy" data-src="moon.jpg"></a></p>
+ <p data-sourcepos="1:1-1:24" dir="auto"><a data-sourcepos="1:1-1:24" href="/uri"><img data-sourcepos="1:2-1:18" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="moon" decoding="async" class="lazy" data-src="moon.jpg"></a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri"><img src="moon.jpg" alt="moon"></a></p>
<pre>[ref]: /uri</pre>
@@ -6523,7 +6523,7 @@
canonical: |
<p>[foo <a href="/uri">bar</a>]<a href="/uri">ref</a></p>
static: |-
- <p data-sourcepos="1:1-1:22" dir="auto">[foo <a href="/uri">bar</a>]<a href="/uri">ref</a></p>
+ <p data-sourcepos="1:1-1:22" dir="auto">[foo <a data-sourcepos="1:6-1:16" href="/uri">bar</a>]<a data-sourcepos="1:18-1:22" href="/uri">ref</a></p>
wysiwyg: |-
<p dir="auto">[foo <a target="_blank" rel="noopener noreferrer nofollow" href="/uri">bar</a>]<a target="_blank" rel="noopener noreferrer nofollow" href="/uri">ref</a></p>
<pre>[ref]: /uri</pre>
@@ -6531,7 +6531,7 @@
canonical: |
<p>[foo <em>bar <a href="/uri">baz</a></em>]<a href="/uri">ref</a></p>
static: |-
- <p data-sourcepos="1:1-1:27" dir="auto">[foo <em>bar <a href="/uri">baz</a></em>]<a href="/uri">ref</a></p>
+ <p data-sourcepos="1:1-1:27" dir="auto">[foo <em data-sourcepos="1:6-1:21">bar <a data-sourcepos="1:11-1:20" href="/uri">baz</a></em>]<a data-sourcepos="1:23-1:27" href="/uri">ref</a></p>
wysiwyg: |-
<p dir="auto">[foo <em>bar </em><a target="_blank" rel="noopener noreferrer nofollow" href="/uri"><em>baz</em></a>]<a target="_blank" rel="noopener noreferrer nofollow" href="/uri">ref</a></p>
<pre>[ref]: /uri</pre>
@@ -6539,7 +6539,7 @@
canonical: |
<p>*<a href="/uri">foo*</a></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto">*<a href="/uri">foo*</a></p>
+ <p data-sourcepos="1:1-1:12" dir="auto">*<a data-sourcepos="1:2-1:12" href="/uri">foo*</a></p>
wysiwyg: |-
<p dir="auto">*<a target="_blank" rel="noopener noreferrer nofollow" href="/uri">foo*</a></p>
<pre>[ref]: /uri</pre>
@@ -6547,7 +6547,7 @@
canonical: |
<p><a href="/uri">foo *bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><a href="/uri">foo *bar</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><a data-sourcepos="1:1-1:15" href="/uri">foo *bar</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">foo *bar</a></p>
<pre>[ref]: /uri</pre>
@@ -6563,7 +6563,7 @@
canonical: |
<p>[foo<code>][ref]</code></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto">[foo<code>][ref]</code></p>
+ <p data-sourcepos="1:1-1:12" dir="auto">[foo<code data-sourcepos="1:6-1:11">][ref]</code></p>
wysiwyg: |-
<p dir="auto">[foo<code>][ref]</code></p>
<pre>[ref]: /uri</pre>
@@ -6571,7 +6571,7 @@
canonical: |
<p>[foo<a href="http://example.com/?search=%5D%5Bref%5D">http://example.com/?search=][ref]</a></p>
static: |-
- <p data-sourcepos="1:1-1:39" dir="auto">[foo<a href="http://example.com/?search=%5D%5Bref%5D" rel="nofollow noreferrer noopener" target="_blank">http://example.com/?search=][ref]</a></p>
+ <p data-sourcepos="1:1-1:39" dir="auto">[foo<a data-sourcepos="1:6-1:40" href="http://example.com/?search=%5D%5Bref%5D" rel="nofollow noreferrer noopener" target="_blank">http://example.com/?search=][ref]</a></p>
wysiwyg: |-
<p dir="auto">[foo<a target="_blank" rel="noopener noreferrer nofollow" href="http://example.com/?search=%5D%5Bref%5D">http://example.com/?search=][ref]</a></p>
<pre>[ref]: /uri</pre>
@@ -6579,7 +6579,7 @@
canonical: |
<p><a href="/url" title="title">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><a href="/url" title="title">foo</a></p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><a data-sourcepos="1:1-1:10" href="/url" title="title">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">foo</a></p>
<pre>[bar]: /url "title"</pre>
@@ -6587,7 +6587,7 @@
canonical: |
<p><a href="/url">Толпой</a> is a Russian word.</p>
static: |-
- <p data-sourcepos="1:1-1:47" dir="auto"><a href="/url">Толпой</a> is a Russian word.</p>
+ <p data-sourcepos="1:1-1:47" dir="auto"><a data-sourcepos="1:1-1:28" href="/url">Толпой</a> is a Russian word.</p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url">Толпой</a> is a Russian word.</p>
<pre>[толпой]: /url</pre>
@@ -6595,7 +6595,7 @@
canonical: |
<p><a href="/url">Baz</a></p>
static: |-
- <p data-sourcepos="4:1-4:14" dir="auto"><a href="/url">Baz</a></p>
+ <p data-sourcepos="4:1-4:14" dir="auto"><a data-sourcepos="4:1-4:14" href="/url">Baz</a></p>
wysiwyg: |-
<pre>[foo bar]: /url</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url">Baz</a></p>
@@ -6603,7 +6603,7 @@
canonical: |
<p>[foo] <a href="/url" title="title">bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto">[foo] <a href="/url" title="title">bar</a></p>
+ <p data-sourcepos="1:1-1:11" dir="auto">[foo] <a data-sourcepos="1:7-1:11" href="/url" title="title">bar</a></p>
wysiwyg: |-
<p dir="auto">[foo] <a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">bar</a></p>
<pre>[bar]: /url "title"</pre>
@@ -6613,7 +6613,7 @@
<a href="/url" title="title">bar</a></p>
static: |-
<p data-sourcepos="1:1-2:5" dir="auto">[foo]
- <a href="/url" title="title">bar</a></p>
+ <a data-sourcepos="2:1-2:5" href="/url" title="title">bar</a></p>
wysiwyg: |-
<p dir="auto">[foo]
<a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">bar</a></p>
@@ -6622,7 +6622,7 @@
canonical: |
<p><a href="/url1">bar</a></p>
static: |-
- <p data-sourcepos="5:1-5:10" dir="auto"><a href="/url1">bar</a></p>
+ <p data-sourcepos="5:1-5:10" dir="auto"><a data-sourcepos="5:1-5:10" href="/url1">bar</a></p>
wysiwyg: |-
<pre>[foo]: /url1</pre>
<pre>[foo]: /url2</pre>
@@ -6669,7 +6669,7 @@
canonical: |
<p><a href="/uri">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto"><a href="/uri">foo</a></p>
+ <p data-sourcepos="1:1-1:12" dir="auto"><a data-sourcepos="1:1-1:12" href="/uri">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">foo</a></p>
<pre>[ref\[]: /uri</pre>
@@ -6677,7 +6677,7 @@
canonical: |
<p><a href="/uri">bar\</a></p>
static: |-
- <p data-sourcepos="3:1-3:7" dir="auto"><a href="/uri">bar\</a></p>
+ <p data-sourcepos="3:1-3:7" dir="auto"><a data-sourcepos="3:1-3:7" href="/uri">bar\</a></p>
wysiwyg: |-
<pre>[bar\\]: /uri</pre>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uri">bar\</a></p>
@@ -6711,7 +6711,7 @@
canonical: |
<p><a href="/url" title="title">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><a href="/url" title="title">foo</a></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><a data-sourcepos="1:1-1:7" href="/url" title="title">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">foo</a></p>
<pre>[foo]: /url "title"</pre>
@@ -6719,7 +6719,7 @@
canonical: |
<p><a href="/url" title="title"><em>foo</em> bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto"><a href="/url" title="title"><em>foo</em> bar</a></p>
+ <p data-sourcepos="1:1-1:13" dir="auto"><a data-sourcepos="1:1-1:13" href="/url" title="title"><em data-sourcepos="1:2-1:6">foo</em> bar</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title"><em>foo</em> bar</a></p>
<pre>[*foo* bar]: /url "title"</pre>
@@ -6727,7 +6727,7 @@
canonical: |
<p><a href="/url" title="title">Foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><a href="/url" title="title">Foo</a></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><a data-sourcepos="1:1-1:7" href="/url" title="title">Foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">Foo</a></p>
<pre>[foo]: /url "title"</pre>
@@ -6736,7 +6736,7 @@
<p><a href="/url" title="title">foo</a>
[]</p>
static: |-
- <p data-sourcepos="1:1-2:2" dir="auto"><a href="/url" title="title">foo</a>
+ <p data-sourcepos="1:1-2:2" dir="auto"><a data-sourcepos="1:1-1:5" href="/url" title="title">foo</a>
[]</p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">foo</a>
@@ -6746,7 +6746,7 @@
canonical: |
<p><a href="/url" title="title">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:5" dir="auto"><a href="/url" title="title">foo</a></p>
+ <p data-sourcepos="1:1-1:5" dir="auto"><a data-sourcepos="1:1-1:5" href="/url" title="title">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">foo</a></p>
<pre>[foo]: /url "title"</pre>
@@ -6754,7 +6754,7 @@
canonical: |
<p><a href="/url" title="title"><em>foo</em> bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><a href="/url" title="title"><em>foo</em> bar</a></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><a data-sourcepos="1:1-1:11" href="/url" title="title"><em data-sourcepos="1:2-1:6">foo</em> bar</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title"><em>foo</em> bar</a></p>
<pre>[*foo* bar]: /url "title"</pre>
@@ -6762,7 +6762,7 @@
canonical: |
<p>[<a href="/url" title="title"><em>foo</em> bar</a>]</p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto">[<a href="/url" title="title"><em>foo</em> bar</a>]</p>
+ <p data-sourcepos="1:1-1:13" dir="auto">[<a data-sourcepos="1:2-1:12" href="/url" title="title"><em data-sourcepos="1:3-1:7">foo</em> bar</a>]</p>
wysiwyg: |-
<p dir="auto">[<a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title"><em>foo</em> bar</a>]</p>
<pre>[*foo* bar]: /url "title"</pre>
@@ -6770,7 +6770,7 @@
canonical: |
<p>[[bar <a href="/url">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto">[[bar <a href="/url">foo</a></p>
+ <p data-sourcepos="1:1-1:11" dir="auto">[[bar <a data-sourcepos="1:7-1:11" href="/url">foo</a></p>
wysiwyg: |-
<p dir="auto">[[bar <a target="_blank" rel="noopener noreferrer nofollow" href="/url">foo</a></p>
<pre>[foo]: /url</pre>
@@ -6778,7 +6778,7 @@
canonical: |
<p><a href="/url" title="title">Foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:5" dir="auto"><a href="/url" title="title">Foo</a></p>
+ <p data-sourcepos="1:1-1:5" dir="auto"><a data-sourcepos="1:1-1:5" href="/url" title="title">Foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">Foo</a></p>
<pre>[foo]: /url "title"</pre>
@@ -6786,7 +6786,7 @@
canonical: |
<p><a href="/url">foo</a> bar</p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto"><a href="/url">foo</a> bar</p>
+ <p data-sourcepos="1:1-1:9" dir="auto"><a data-sourcepos="1:1-1:5" href="/url">foo</a> bar</p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url">foo</a> bar</p>
<pre>[foo]: /url</pre>
@@ -6802,7 +6802,7 @@
canonical: |
<p>*<a href="/url">foo*</a></p>
static: |-
- <p data-sourcepos="3:1-3:7" dir="auto">*<a href="/url">foo*</a></p>
+ <p data-sourcepos="3:1-3:7" dir="auto">*<a data-sourcepos="3:2-3:7" href="/url">foo*</a></p>
wysiwyg: |-
<pre>[foo*]: /url</pre>
<p dir="auto">*<a target="_blank" rel="noopener noreferrer nofollow" href="/url">foo*</a></p>
@@ -6810,7 +6810,7 @@
canonical: |
<p><a href="/url2">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:10" dir="auto"><a href="/url2">foo</a></p>
+ <p data-sourcepos="1:1-1:10" dir="auto"><a data-sourcepos="1:1-1:10" href="/url2">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url2">foo</a></p>
<pre>[foo]: /url1</pre>
@@ -6819,7 +6819,7 @@
canonical: |
<p><a href="/url1">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><a href="/url1">foo</a></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><a data-sourcepos="1:1-1:7" href="/url1">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url1">foo</a></p>
<pre>[foo]: /url1</pre>
@@ -6827,7 +6827,7 @@
canonical: |
<p><a href="">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><a href="">foo</a></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><a data-sourcepos="1:1-1:7" href="">foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="">foo</a></p>
<pre>[foo]: /url1</pre>
@@ -6835,7 +6835,7 @@
canonical: |
<p><a href="/url1">foo</a>(not a link)</p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><a href="/url1">foo</a>(not a link)</p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><a data-sourcepos="1:1-1:5" href="/url1">foo</a>(not a link)</p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url1">foo</a>(not a link)</p>
<pre>[foo]: /url1</pre>
@@ -6843,7 +6843,7 @@
canonical: |
<p>[foo]<a href="/url">bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto">[foo]<a href="/url">bar</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto">[foo]<a data-sourcepos="1:6-1:15" href="/url">bar</a></p>
wysiwyg: |-
<p dir="auto">[foo]<a target="_blank" rel="noopener noreferrer nofollow" href="/url">bar</a></p>
<pre>[baz]: /url</pre>
@@ -6851,7 +6851,7 @@
canonical: |
<p><a href="/url2">foo</a><a href="/url1">baz</a></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto"><a href="/url2">foo</a><a href="/url1">baz</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto"><a data-sourcepos="1:1-1:10" href="/url2">foo</a><a data-sourcepos="1:11-1:15" href="/url1">baz</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/url2">foo</a><a target="_blank" rel="noopener noreferrer nofollow" href="/url1">baz</a></p>
<pre>[baz]: /url1</pre>
@@ -6860,7 +6860,7 @@
canonical: |
<p>[foo]<a href="/url1">bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:15" dir="auto">[foo]<a href="/url1">bar</a></p>
+ <p data-sourcepos="1:1-1:15" dir="auto">[foo]<a data-sourcepos="1:6-1:15" href="/url1">bar</a></p>
wysiwyg: |-
<p dir="auto">[foo]<a target="_blank" rel="noopener noreferrer nofollow" href="/url1">bar</a></p>
<pre>[baz]: /url1</pre>
@@ -6869,14 +6869,14 @@
canonical: |
<p><img src="/url" alt="foo" title="title" /></p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:20" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:20" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="foo" title="title"></p>
06_08_00__inlines__images__002:
canonical: |
<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto"><a class="no-attachment-icon" href="train.jpg" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="train &amp; tracks" decoding="async" class="lazy" data-src="train.jpg"></a></p>
+ <p data-sourcepos="1:1-1:12" dir="auto"><a class="no-attachment-icon" href="train.jpg" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:12" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="train &amp; tracks" decoding="async" class="lazy" data-src="train.jpg"></a></p>
wysiwyg: |-
<p dir="auto"><img src="train.jpg" alt="foo bar" title="train &amp; tracks"></p>
<pre>[foo *bar*]: train.jpg "train &amp; tracks"</pre>
@@ -6884,21 +6884,21 @@
canonical: |
<p><img src="/url2" alt="foo bar" /></p>
static: |-
- <p data-sourcepos="1:1-1:26" dir="auto"><a class="no-attachment-icon" href="/url2" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" decoding="async" class="lazy" data-src="/url2"></a></p>
+ <p data-sourcepos="1:1-1:26" dir="auto"><a class="no-attachment-icon" href="/url2" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:26" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" decoding="async" class="lazy" data-src="/url2"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url2" alt="foo bar"></p>
06_08_00__inlines__images__004:
canonical: |
<p><img src="/url2" alt="foo bar" /></p>
static: |-
- <p data-sourcepos="1:1-1:25" dir="auto"><a class="no-attachment-icon" href="/url2" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" decoding="async" class="lazy" data-src="/url2"></a></p>
+ <p data-sourcepos="1:1-1:25" dir="auto"><a class="no-attachment-icon" href="/url2" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:25" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" decoding="async" class="lazy" data-src="/url2"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url2" alt="foo bar"></p>
06_08_00__inlines__images__005:
canonical: |
<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
static: |-
- <p data-sourcepos="1:1-1:14" dir="auto"><a class="no-attachment-icon" href="train.jpg" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="train &amp; tracks" decoding="async" class="lazy" data-src="train.jpg"></a></p>
+ <p data-sourcepos="1:1-1:14" dir="auto"><a class="no-attachment-icon" href="train.jpg" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:14" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="train &amp; tracks" decoding="async" class="lazy" data-src="train.jpg"></a></p>
wysiwyg: |-
<p dir="auto"><img src="train.jpg" alt="foo bar" title="train &amp; tracks"></p>
<pre>[foo *bar*]: train.jpg "train &amp; tracks"</pre>
@@ -6906,7 +6906,7 @@
canonical: |
<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto"><a class="no-attachment-icon" href="train.jpg" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="train &amp; tracks" decoding="async" class="lazy" data-src="train.jpg"></a></p>
+ <p data-sourcepos="1:1-1:20" dir="auto"><a class="no-attachment-icon" href="train.jpg" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:20" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="train &amp; tracks" decoding="async" class="lazy" data-src="train.jpg"></a></p>
wysiwyg: |-
<p dir="auto"><img src="train.jpg" alt="foo bar" title="train &amp; tracks"></p>
<pre>[foobar]: train.jpg "train &amp; tracks"</pre>
@@ -6914,35 +6914,35 @@
canonical: |
<p><img src="train.jpg" alt="foo" /></p>
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><a class="no-attachment-icon" href="train.jpg" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" decoding="async" class="lazy" data-src="train.jpg"></a></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><a class="no-attachment-icon" href="train.jpg" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:17" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" decoding="async" class="lazy" data-src="train.jpg"></a></p>
wysiwyg: |-
<p dir="auto"><img src="train.jpg" alt="foo"></p>
06_08_00__inlines__images__008:
canonical: |
<p>My <img src="/path/to/train.jpg" alt="foo bar" title="title" /></p>
static: |-
- <p data-sourcepos="1:1-1:45" dir="auto">My <a class="no-attachment-icon" href="/path/to/train.jpg" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="title" decoding="async" class="lazy" data-src="/path/to/train.jpg"></a></p>
+ <p data-sourcepos="1:1-1:45" dir="auto">My <a class="no-attachment-icon" href="/path/to/train.jpg" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:4-1:45" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="title" decoding="async" class="lazy" data-src="/path/to/train.jpg"></a></p>
wysiwyg: |-
<p dir="auto">My <img src="/path/to/train.jpg" alt="foo bar" title="title"></p>
06_08_00__inlines__images__009:
canonical: |
<p><img src="url" alt="foo" /></p>
static: |-
- <p data-sourcepos="1:1-1:13" dir="auto"><a class="no-attachment-icon" href="url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" decoding="async" class="lazy" data-src="url"></a></p>
+ <p data-sourcepos="1:1-1:13" dir="auto"><a class="no-attachment-icon" href="url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:13" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" decoding="async" class="lazy" data-src="url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="url" alt="foo"></p>
06_08_00__inlines__images__010:
canonical: |
<p><img src="/url" alt="" /></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:9" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:9" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt=""></p>
06_08_00__inlines__images__011:
canonical: |
<p><img src="/url" alt="foo" /></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:11" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="foo"></p>
<pre>[bar]: /url</pre>
@@ -6950,7 +6950,7 @@
canonical: |
<p><img src="/url" alt="foo" /></p>
static: |-
- <p data-sourcepos="1:1-1:11" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:11" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:11" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="foo"></p>
<pre>[bar]: /url</pre>
@@ -6958,7 +6958,7 @@
canonical: |
<p><img src="/url" alt="foo" title="title" /></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:8" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="foo" title="title"></p>
<pre>[foo]: /url "title"</pre>
@@ -6966,7 +6966,7 @@
canonical: |
<p><img src="/url" alt="foo bar" title="title" /></p>
static: |-
- <p data-sourcepos="1:1-1:14" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:14" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:14" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="foo bar" title="title"></p>
<pre>[*foo* bar]: /url "title"</pre>
@@ -6974,7 +6974,7 @@
canonical: |
<p><img src="/url" alt="Foo" title="title" /></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="Foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:8" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="Foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="Foo" title="title"></p>
<pre>[foo]: /url "title"</pre>
@@ -6983,7 +6983,7 @@
<p><img src="/url" alt="foo" title="title" />
[]</p>
static: |-
- <p data-sourcepos="1:1-2:2" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" title="title" decoding="async" class="lazy" data-src="/url"></a>
+ <p data-sourcepos="1:1-2:2" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:6" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" title="title" decoding="async" class="lazy" data-src="/url"></a>
[]</p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="foo" title="title">
@@ -6993,7 +6993,7 @@
canonical: |
<p><img src="/url" alt="foo" title="title" /></p>
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:6" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:6" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="foo" title="title"></p>
<pre>[foo]: /url "title"</pre>
@@ -7001,7 +7001,7 @@
canonical: |
<p><img src="/url" alt="foo bar" title="title" /></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:12" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:12" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="foo bar" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="foo bar" title="title"></p>
<pre>[*foo* bar]: /url "title"</pre>
@@ -7019,7 +7019,7 @@
canonical: |
<p><img src="/url" alt="Foo" title="title" /></p>
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="Foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
+ <p data-sourcepos="1:1-1:6" dir="auto"><a class="no-attachment-icon" href="/url" target="_blank" rel="noopener noreferrer"><img data-sourcepos="1:1-1:6" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="Foo" title="title" decoding="async" class="lazy" data-src="/url"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/url" alt="Foo" title="title"></p>
<pre>[foo]: /url "title"</pre>
@@ -7035,7 +7035,7 @@
canonical: |
<p>!<a href="/url" title="title">foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:28" dir="auto"><span data-escaped-char>!</span><a href="/url" title="title">foo</a></p>
+ <p data-sourcepos="1:1-1:28" dir="auto"><span data-escaped-char>!</span><a data-sourcepos="1:24-1:28" href="/url" title="title">foo</a></p>
wysiwyg: |-
<p dir="auto">!<a target="_blank" rel="noopener noreferrer nofollow" href="/url" title="title">foo</a></p>
<pre>[foo]: /url "title"</pre>
@@ -7043,56 +7043,56 @@
canonical: |
<p><a href="http://foo.bar.baz">http://foo.bar.baz</a></p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto"><a href="http://foo.bar.baz" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar.baz</a></p>
+ <p data-sourcepos="1:1-1:20" dir="auto"><a data-sourcepos="1:2-1:21" href="http://foo.bar.baz" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar.baz</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://foo.bar.baz">http://foo.bar.baz</a></p>
06_09_00__inlines__autolinks__002:
canonical: |
<p><a href="http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean">http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean</a></p>
static: |-
- <p data-sourcepos="1:1-1:47" dir="auto"><a href="http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean</a></p>
+ <p data-sourcepos="1:1-1:47" dir="auto"><a data-sourcepos="1:2-1:48" href="http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean" rel="nofollow noreferrer noopener" target="_blank">http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean">http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean</a></p>
06_09_00__inlines__autolinks__003:
canonical: |
<p><a href="irc://foo.bar:2233/baz">irc://foo.bar:2233/baz</a></p>
static: |-
- <p data-sourcepos="1:1-1:24" dir="auto"><a href="irc://foo.bar:2233/baz">irc://foo.bar:2233/baz</a></p>
+ <p data-sourcepos="1:1-1:24" dir="auto"><a data-sourcepos="1:2-1:25" href="irc://foo.bar:2233/baz">irc://foo.bar:2233/baz</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow">irc://foo.bar:2233/baz</a></p>
06_09_00__inlines__autolinks__004:
canonical: |
<p><a href="MAILTO:FOO@BAR.BAZ">MAILTO:FOO@BAR.BAZ</a></p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto"><a href="mailto:FOO@BAR.BAZ">MAILTO:FOO@BAR.BAZ</a></p>
+ <p data-sourcepos="1:1-1:20" dir="auto"><a data-sourcepos="1:2-1:21" href="mailto:FOO@BAR.BAZ">MAILTO:FOO@BAR.BAZ</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="MAILTO:FOO@BAR.BAZ">MAILTO:FOO@BAR.BAZ</a></p>
06_09_00__inlines__autolinks__005:
canonical: |
<p><a href="a+b+c:d">a+b+c:d</a></p>
static: |-
- <p data-sourcepos="1:1-1:9" dir="auto"><a href="a+b+c:d">a+b+c:d</a></p>
+ <p data-sourcepos="1:1-1:9" dir="auto"><a data-sourcepos="1:2-1:10" href="a+b+c:d">a+b+c:d</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow">a+b+c:d</a></p>
06_09_00__inlines__autolinks__006:
canonical: |
<p><a href="made-up-scheme://foo,bar">made-up-scheme://foo,bar</a></p>
static: |-
- <p data-sourcepos="1:1-1:26" dir="auto"><a href="made-up-scheme://foo,bar">made-up-scheme://foo,bar</a></p>
+ <p data-sourcepos="1:1-1:26" dir="auto"><a data-sourcepos="1:2-1:27" href="made-up-scheme://foo,bar">made-up-scheme://foo,bar</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow">made-up-scheme://foo,bar</a></p>
06_09_00__inlines__autolinks__007:
canonical: |
<p><a href="http://../">http://../</a></p>
static: |-
- <p data-sourcepos="1:1-1:12" dir="auto"><a href="http://../" rel="nofollow noreferrer noopener" target="_blank">http://../</a></p>
+ <p data-sourcepos="1:1-1:12" dir="auto"><a data-sourcepos="1:2-1:13" href="http://../" rel="nofollow noreferrer noopener" target="_blank">http://../</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://../">http://../</a></p>
06_09_00__inlines__autolinks__008:
canonical: |
<p><a href="localhost:5001/foo">localhost:5001/foo</a></p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto"><a href="localhost:5001/foo">localhost:5001/foo</a></p>
+ <p data-sourcepos="1:1-1:20" dir="auto"><a data-sourcepos="1:2-1:21" href="localhost:5001/foo">localhost:5001/foo</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow">localhost:5001/foo</a></p>
06_09_00__inlines__autolinks__009:
@@ -7106,21 +7106,21 @@
canonical: |
<p><a href="http://example.com/%5C%5B%5C">http://example.com/\[\</a></p>
static: |-
- <p data-sourcepos="1:1-1:24" dir="auto"><a href="http://example.com/%5C%5B%5C" rel="nofollow noreferrer noopener" target="_blank">http://example.com/\[\</a></p>
+ <p data-sourcepos="1:1-1:24" dir="auto"><a data-sourcepos="1:2-1:25" href="http://example.com/%5C%5B%5C" rel="nofollow noreferrer noopener" target="_blank">http://example.com/\[\</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://example.com/%5C%5B%5C">http://example.com/\[\</a></p>
06_09_00__inlines__autolinks__011:
canonical: |
<p><a href="mailto:foo@bar.example.com">foo@bar.example.com</a></p>
static: |-
- <p data-sourcepos="1:1-1:21" dir="auto"><a href="mailto:foo@bar.example.com">foo@bar.example.com</a></p>
+ <p data-sourcepos="1:1-1:21" dir="auto"><a data-sourcepos="1:2-1:22" href="mailto:foo@bar.example.com">foo@bar.example.com</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="mailto:foo@bar.example.com">foo@bar.example.com</a></p>
06_09_00__inlines__autolinks__012:
canonical: |
<p><a href="mailto:foo+special@Bar.baz-bar0.com">foo+special@Bar.baz-bar0.com</a></p>
static: |-
- <p data-sourcepos="1:1-1:30" dir="auto"><a href="mailto:foo+special@Bar.baz-bar0.com">foo+special@Bar.baz-bar0.com</a></p>
+ <p data-sourcepos="1:1-1:30" dir="auto"><a data-sourcepos="1:2-1:31" href="mailto:foo+special@Bar.baz-bar0.com">foo+special@Bar.baz-bar0.com</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="mailto:foo+special@Bar.baz-bar0.com">foo+special@Bar.baz-bar0.com</a></p>
06_09_00__inlines__autolinks__013:
@@ -7460,7 +7460,7 @@
<p>foo<br />
baz</p>
static: |-
- <p data-sourcepos="1:1-2:3" dir="auto">foo<br>
+ <p data-sourcepos="1:1-2:3" dir="auto">foo<br data-sourcepos="1:6-1:6">
baz</p>
wysiwyg: |-
<p dir="auto">foo<br>
@@ -7470,7 +7470,7 @@
<p>foo<br />
baz</p>
static: |-
- <p data-sourcepos="1:1-2:3" dir="auto">foo<br>
+ <p data-sourcepos="1:1-2:3" dir="auto">foo<br data-sourcepos="1:4-1:5">
baz</p>
wysiwyg: |-
<p dir="auto">foo<br>
@@ -7480,7 +7480,7 @@
<p>foo<br />
baz</p>
static: |-
- <p data-sourcepos="1:1-2:3" dir="auto">foo<br>
+ <p data-sourcepos="1:1-2:3" dir="auto">foo<br data-sourcepos="1:11-1:11">
baz</p>
wysiwyg: |-
<p dir="auto">foo<br>
@@ -7490,7 +7490,7 @@
<p>foo<br />
bar</p>
static: |-
- <p data-sourcepos="1:1-2:8" dir="auto">foo<br>
+ <p data-sourcepos="1:1-2:8" dir="auto">foo<br data-sourcepos="1:6-1:6">
bar</p>
wysiwyg: |-
<p dir="auto">foo<br>
@@ -7500,7 +7500,7 @@
<p>foo<br />
bar</p>
static: |-
- <p data-sourcepos="1:1-2:8" dir="auto">foo<br>
+ <p data-sourcepos="1:1-2:8" dir="auto">foo<br data-sourcepos="1:4-1:5">
bar</p>
wysiwyg: |-
<p dir="auto">foo<br>
@@ -7510,7 +7510,7 @@
<p><em>foo<br />
bar</em></p>
static: |-
- <p data-sourcepos="1:1-2:4" dir="auto"><em>foo<br>
+ <p data-sourcepos="1:1-2:4" dir="auto"><em data-sourcepos="1:1-2:4">foo<br data-sourcepos="1:7-1:7">
bar</em></p>
wysiwyg: |-
<p dir="auto"><em>foo<br>
@@ -7520,7 +7520,7 @@
<p><em>foo<br />
bar</em></p>
static: |-
- <p data-sourcepos="1:1-2:4" dir="auto"><em>foo<br>
+ <p data-sourcepos="1:1-2:4" dir="auto"><em data-sourcepos="1:1-1:10">foo<br data-sourcepos="1:5-1:6">
bar</em></p>
wysiwyg: |-
<p dir="auto"><em>foo<br>
@@ -7529,14 +7529,14 @@
canonical: |
<p><code>code span</code></p>
static: |-
- <p data-sourcepos="1:1-2:5" dir="auto"><code>code span</code></p>
+ <p data-sourcepos="1:1-2:5" dir="auto"><code data-sourcepos="1:2-2:4">code span</code></p>
wysiwyg: |-
<p dir="auto"><code>code span</code></p>
06_13_00__inlines__hard_line_breaks__009:
canonical: |
<p><code>code\ span</code></p>
static: |-
- <p data-sourcepos="1:1-2:5" dir="auto"><code>code\ span</code></p>
+ <p data-sourcepos="1:1-2:5" dir="auto"><code data-sourcepos="1:2-2:4">code\ span</code></p>
wysiwyg: |-
<p dir="auto"><code>code\ span</code></p>
06_13_00__inlines__hard_line_breaks__010:
@@ -7579,7 +7579,7 @@
canonical: |
<h3>foo</h3>
static: |-
- <h3 data-sourcepos="1:1-1:7" dir="auto">
+ <h3 data-sourcepos="1:1-1:9" dir="auto">
<a id="user-content-foo" class="anchor" href="#foo" aria-hidden="true"></a>foo</h3>
wysiwyg: |-
<h3 dir="auto">foo</h3>
@@ -7639,7 +7639,7 @@
<task-button></task-button><input type="checkbox" class="task-list-item-checkbox" disabled> incomplete</li>
</ul>
wysiwyg: |-
- <ul dir="auto" start="1" parens="false" bullet="*" data-type="taskList"><li dir="auto" data-checked="false" data-type="taskItem"><label><input type="checkbox"><span></span></label><div><p dir="auto">incomplete</p></div></li></ul>
+ <ul dir="auto" start="1" parens="false" bullet="*" data-type="taskList"><li dir="auto" data-type="taskItem"><label><input type="checkbox"><span></span></label><div><p dir="auto">incomplete</p></div></li></ul>
07_01_00__gitlab_official_specification_markdown__task_list_items__002:
canonical: |
<ul>
@@ -7822,7 +7822,7 @@
<p>[[<em>TOC</em>]]text</p>
<p>text[TOC]</p>
static: |-
- <p data-sourcepos="1:1-2:4" dir="auto">[[<em>TOC</em>]]
+ <p data-sourcepos="1:1-2:4" dir="auto">[[<em data-sourcepos="1:3-1:7">TOC</em>]]
text</p>
<p data-sourcepos="4:1-5:5" dir="auto">text
[TOC]</p>
@@ -7880,12 +7880,12 @@
canonical: |
<p><a href="groups-test-file">groups-test-file</a></p>
static: |-
- <p data-sourcepos="1:1-1:45" dir="auto"><a href="/groups/glfm_group/-/uploads/groups-test-file" data-canonical-src="/uploads/groups-test-file" data-link="true" class="gfm">groups-test-file</a></p>
+ <p data-sourcepos="1:1-1:45" dir="auto"><a data-sourcepos="1:1-1:45" href="/groups/glfm_group/-/uploads/groups-test-file" data-canonical-src="/uploads/groups-test-file" data-link="true" class="gfm">groups-test-file</a></p>
08_03_00__gitlab_internal_extension_markdown__markdown_preview_api_request_overrides__002:
canonical: |
<p><a href="projects-test-file">projects-test-file</a></p>
static: |-
- <p data-sourcepos="1:1-1:40" dir="auto"><a href="/glfm_group/glfm_project/-/blob/master/projects-test-file" class="gfm">projects-test-file</a></p>
+ <p data-sourcepos="1:1-1:40" dir="auto"><a data-sourcepos="1:1-1:40" href="/glfm_group/glfm_project/-/blob/master/projects-test-file" class="gfm">projects-test-file</a></p>
08_03_00__gitlab_internal_extension_markdown__markdown_preview_api_request_overrides__003:
canonical: |
<p>This project snippet ID reference IS filtered: $88888</p>
@@ -7900,57 +7900,57 @@
canonical: |
<p><a href="project-wikis-test-file">project-wikis-test-file</a></p>
static: |-
- <p data-sourcepos="1:1-1:50" dir="auto"><a href="/glfm_group/glfm_project/-/wikis/project-wikis-test-file" data-canonical-src="project-wikis-test-file">project-wikis-test-file</a></p>
+ <p data-sourcepos="1:1-1:50" dir="auto"><a data-sourcepos="1:1-1:50" href="/glfm_group/glfm_project/-/wikis/project-wikis-test-file" data-canonical-src="project-wikis-test-file">project-wikis-test-file</a></p>
08_03_00__gitlab_internal_extension_markdown__markdown_preview_api_request_overrides__006:
canonical: |
<p><a href="group-wikis-test-file">group-wikis-test-file</a></p>
static: |-
- <p data-sourcepos="1:1-1:46" dir="auto"><a href="/groups/glfm_group/-/wikis/group-wikis-test-file" data-canonical-src="group-wikis-test-file">group-wikis-test-file</a></p>
+ <p data-sourcepos="1:1-1:46" dir="auto"><a data-sourcepos="1:1-1:46" href="/groups/glfm_group/-/wikis/group-wikis-test-file" data-canonical-src="group-wikis-test-file">group-wikis-test-file</a></p>
08_04_01__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_image_for_group__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:69" dir="auto"><a class="no-attachment-icon gfm" href="/groups/glfm_group/-/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" target="_blank" rel="noopener noreferrer" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" data-link="true"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="test-file" decoding="async" class="lazy gfm" data-src="/groups/glfm_group/-/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png"></a></p>
+ <p data-sourcepos="1:1-1:69" dir="auto"><a class="no-attachment-icon gfm" href="/groups/glfm_group/-/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" target="_blank" rel="noopener noreferrer" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" data-link="true"><img data-sourcepos="1:1-1:69" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="test-file" decoding="async" class="lazy gfm" data-src="/groups/glfm_group/-/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" alt="test-file"></p>
08_04_02__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_image_for_project__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:69" dir="auto"><a class="no-attachment-icon gfm" href="/glfm_group/glfm_project/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" target="_blank" rel="noopener noreferrer" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" data-link="true"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="test-file" decoding="async" class="lazy gfm" data-src="/glfm_group/glfm_project/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png"></a></p>
+ <p data-sourcepos="1:1-1:69" dir="auto"><a class="no-attachment-icon gfm" href="/glfm_group/glfm_project/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" target="_blank" rel="noopener noreferrer" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" data-link="true"><img data-sourcepos="1:1-1:69" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="test-file" decoding="async" class="lazy gfm" data-src="/glfm_group/glfm_project/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png"></a></p>
wysiwyg: |-
<p dir="auto"><img src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.png" alt="test-file"></p>
08_04_03__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_image_for_project_wiki__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:27" dir="auto"><a class="no-attachment-icon" href="/glfm_group/glfm_project/-/wikis/test-file.png" target="_blank" rel="noopener noreferrer" data-canonical-src="test-file.png"><img alt="test-file" decoding="async" class="lazy" data-src="/glfm_group/glfm_project/-/wikis/test-file.png" data-canonical-src="test-file.png"></a></p>
+ <p data-sourcepos="1:1-1:27" dir="auto"><a class="no-attachment-icon" href="/glfm_group/glfm_project/-/wikis/test-file.png" target="_blank" rel="noopener noreferrer" data-canonical-src="test-file.png"><img data-sourcepos="1:1-1:27" alt="test-file" decoding="async" class="lazy" data-src="/glfm_group/glfm_project/-/wikis/test-file.png" data-canonical-src="test-file.png"></a></p>
wysiwyg: |-
<p dir="auto"><img src="test-file.png" alt="test-file"></p>
08_04_04__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_link_for_group__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:68" dir="auto"><a href="/groups/glfm_group/-/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip" data-link="true" class="gfm">test-file</a></p>
+ <p data-sourcepos="1:1-1:68" dir="auto"><a data-sourcepos="1:1-1:68" href="/groups/glfm_group/-/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip" data-link="true" class="gfm">test-file</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip">test-file</a></p>
08_04_05__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_link_for_project__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:68" dir="auto"><a href="/glfm_group/glfm_project/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip" data-link="true" class="gfm">test-file</a></p>
+ <p data-sourcepos="1:1-1:68" dir="auto"><a data-sourcepos="1:1-1:68" href="/glfm_group/glfm_project/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip" data-canonical-src="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip" data-link="true" class="gfm">test-file</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uploads/aa45a38ec2cfe97433281b10bbff042c/test-file.zip">test-file</a></p>
08_04_06__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_link_for_project_wiki__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:26" dir="auto"><a href="/glfm_group/glfm_project/-/wikis/test-file.zip" data-canonical-src="test-file.zip">test-file</a></p>
+ <p data-sourcepos="1:1-1:26" dir="auto"><a data-sourcepos="1:1-1:26" href="/glfm_group/glfm_project/-/wikis/test-file.zip" data-canonical-src="test-file.zip">test-file</a></p>
08_04_07__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_link_for_group_wiki__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:26" dir="auto"><a href="/groups/glfm_group/-/wikis/test-file.zip" data-canonical-src="test-file.zip">test-file</a></p>
+ <p data-sourcepos="1:1-1:26" dir="auto"><a data-sourcepos="1:1-1:26" href="/groups/glfm_group/-/wikis/test-file.zip" data-canonical-src="test-file.zip">test-file</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="test-file.zip">test-file</a></p>
08_04_08__gitlab_internal_extension_markdown__migrated_golden_master_examples__audio__001:
@@ -8001,7 +8001,7 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><strong>bold</strong></p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><strong data-sourcepos="1:1-1:8">bold</strong></p>
wysiwyg: |-
<p dir="auto"><strong>bold</strong></p>
08_04_12__gitlab_internal_extension_markdown__migrated_golden_master_examples__bullet_list_style_1__001:
@@ -8081,15 +8081,15 @@
TODO: Write canonical HTML for this example
static: |-
<ul data-sourcepos="1:1-9:25" dir="auto">
- <li data-sourcepos="1:1-1:8"><code>#F00<span class="gfm-color_chip"><span style="background-color: #F00;"></span></span></code></li>
- <li data-sourcepos="2:1-2:9"><code>#F00A<span class="gfm-color_chip"><span style="background-color: #F00A;"></span></span></code></li>
- <li data-sourcepos="3:1-3:11"><code>#FF0000<span class="gfm-color_chip"><span style="background-color: #FF0000;"></span></span></code></li>
- <li data-sourcepos="4:1-4:13"><code>#FF0000AA<span class="gfm-color_chip"><span style="background-color: #FF0000AA;"></span></span></code></li>
- <li data-sourcepos="5:1-5:16"><code>RGB(0,255,0)<span class="gfm-color_chip"><span style="background-color: RGB(0,255,0);"></span></span></code></li>
- <li data-sourcepos="6:1-6:19"><code>RGB(0%,100%,0%)<span class="gfm-color_chip"><span style="background-color: RGB(0%,100%,0%);"></span></span></code></li>
- <li data-sourcepos="7:1-7:21"><code>RGBA(0,255,0,0.3)<span class="gfm-color_chip"><span style="background-color: RGBA(0,255,0,0.3);"></span></span></code></li>
- <li data-sourcepos="8:1-8:20"><code>HSL(540,70%,50%)<span class="gfm-color_chip"><span style="background-color: HSL(540,70%,50%);"></span></span></code></li>
- <li data-sourcepos="9:1-9:25"><code>HSLA(540,70%,50%,0.3)<span class="gfm-color_chip"><span style="background-color: HSLA(540,70%,50%,0.3);"></span></span></code></li>
+ <li data-sourcepos="1:1-1:8"><code data-sourcepos="1:4-1:7">#F00<span class="gfm-color_chip"><span style="background-color: #F00;"></span></span></code></li>
+ <li data-sourcepos="2:1-2:9"><code data-sourcepos="2:4-2:8">#F00A<span class="gfm-color_chip"><span style="background-color: #F00A;"></span></span></code></li>
+ <li data-sourcepos="3:1-3:11"><code data-sourcepos="3:4-3:10">#FF0000<span class="gfm-color_chip"><span style="background-color: #FF0000;"></span></span></code></li>
+ <li data-sourcepos="4:1-4:13"><code data-sourcepos="4:4-4:12">#FF0000AA<span class="gfm-color_chip"><span style="background-color: #FF0000AA;"></span></span></code></li>
+ <li data-sourcepos="5:1-5:16"><code data-sourcepos="5:4-5:15">RGB(0,255,0)<span class="gfm-color_chip"><span style="background-color: RGB(0,255,0);"></span></span></code></li>
+ <li data-sourcepos="6:1-6:19"><code data-sourcepos="6:4-6:18">RGB(0%,100%,0%)<span class="gfm-color_chip"><span style="background-color: RGB(0%,100%,0%);"></span></span></code></li>
+ <li data-sourcepos="7:1-7:21"><code data-sourcepos="7:4-7:20">RGBA(0,255,0,0.3)<span class="gfm-color_chip"><span style="background-color: RGBA(0,255,0,0.3);"></span></span></code></li>
+ <li data-sourcepos="8:1-8:20"><code data-sourcepos="8:4-8:19">HSL(540,70%,50%)<span class="gfm-color_chip"><span style="background-color: HSL(540,70%,50%);"></span></span></code></li>
+ <li data-sourcepos="9:1-9:25"><code data-sourcepos="9:4-9:24">HSLA(540,70%,50%,0.3)<span class="gfm-color_chip"><span style="background-color: HSLA(540,70%,50%,0.3);"></span></span></code></li>
</ul>
wysiwyg: |-
<ul dir="auto" bullet="*"><li dir="auto"><p dir="auto"><code>#F00</code></p></li><li dir="auto"><p dir="auto"><code>#F00A</code></p></li><li dir="auto"><p dir="auto"><code>#FF0000</code></p></li><li dir="auto"><p dir="auto"><code>#FF0000AA</code></p></li><li dir="auto"><p dir="auto"><code>RGB(0,255,0)</code></p></li><li dir="auto"><p dir="auto"><code>RGB(0%,100%,0%)</code></p></li><li dir="auto"><p dir="auto"><code>RGBA(0,255,0,0.3)</code></p></li><li dir="auto"><p dir="auto"><code>HSL(540,70%,50%)</code></p></li><li dir="auto"><p dir="auto"><code>HSLA(540,70%,50%,0.3)</code></p></li></ul>
@@ -8108,7 +8108,7 @@
<dt>Color</dt>
<dt>Colour</dt>
<dd>
- <p data-sourcepos="13:1-13:35">Any hue except <em>white</em> or <strong>black</strong></p>
+ <p data-sourcepos="13:1-13:35">Any hue except <em data-sourcepos="13:16-13:22">white</em> or <strong data-sourcepos="13:27-13:35">black</strong></p>
</dd>
</dl>
wysiwyg: |-
@@ -8186,7 +8186,7 @@
static: |-
<div>plain text</div>
<div>
- <p data-sourcepos="4:1-4:43">just a plain ol' div, not much to <em>expect</em>!</p>
+ <p data-sourcepos="4:1-4:43">just a plain ol' div, not much to <em data-sourcepos="4:35-4:42">expect</em>!</p>
</div>
wysiwyg: |-
<div><p dir="auto">plain text</p></div>
@@ -8204,7 +8204,7 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:17" dir="auto"><em>emphasized text</em></p>
+ <p data-sourcepos="1:1-1:17" dir="auto"><em data-sourcepos="1:1-1:17">emphasized text</em></p>
wysiwyg: |-
<p dir="auto"><em>emphasized text</em></p>
08_04_27__gitlab_internal_extension_markdown__migrated_golden_master_examples__figure__001:
@@ -8212,13 +8212,13 @@
TODO: Write canonical HTML for this example
static: |-
<figure>
- <p data-sourcepos="3:1-3:42"><a class="no-attachment-icon" href="elephant-sunset.jpg" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="Elephant at sunset" decoding="async" class="lazy" data-src="elephant-sunset.jpg"></a></p>
+ <p data-sourcepos="3:1-3:42"><a class="no-attachment-icon" href="elephant-sunset.jpg" target="_blank" rel="noopener noreferrer"><img data-sourcepos="3:1-3:42" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="Elephant at sunset" decoding="async" class="lazy" data-src="elephant-sunset.jpg"></a></p>
<figcaption>An elephant at sunset</figcaption>
</figure>
<figure>
- <p data-sourcepos="9:1-9:44"><a class="no-attachment-icon" href="croc-crocs.jpg" target="_blank" rel="noopener noreferrer"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="A crocodile wearing crocs" decoding="async" class="lazy" data-src="croc-crocs.jpg"></a></p>
+ <p data-sourcepos="9:1-9:44"><a class="no-attachment-icon" href="croc-crocs.jpg" target="_blank" rel="noopener noreferrer"><img data-sourcepos="9:1-9:44" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="A crocodile wearing crocs" decoding="async" class="lazy" data-src="croc-crocs.jpg"></a></p>
<figcaption>
- <p data-sourcepos="13:1-13:28">A crocodile wearing <em>crocs</em>!</p>
+ <p data-sourcepos="13:1-13:28">A crocodile wearing <em data-sourcepos="13:21-13:27">crocs</em>!</p>
</figcaption>
</figure>
wysiwyg: |-
@@ -8227,14 +8227,14 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:46" dir="auto">A footnote reference tag looks like this: <sup class="footnote-ref"><a href="#fn-1-42" id="fnref-1-42" data-footnote-ref>1</a></sup></p>
- <p data-sourcepos="3:1-3:63" dir="auto">This reference tag is a mix of letters and numbers. <sup class="footnote-ref"><a href="#fn-footnote-42" id="fnref-footnote-42" data-footnote-ref>2</a></sup></p>
- <section data-footnotes class="footnotes">
+ <p data-sourcepos="1:1-1:46" dir="auto">A footnote reference tag looks like this: <sup data-sourcepos="1:43-1:46" class="footnote-ref"><a href="#fn-1-42" id="fnref-1-42" data-footnote-ref>1</a></sup></p>
+ <p data-sourcepos="3:1-3:63" dir="auto">This reference tag is a mix of letters and numbers. <sup data-sourcepos="3:53-3:63" class="footnote-ref"><a href="#fn-footnote-42" id="fnref-footnote-42" data-footnote-ref>2</a></sup></p>
+ <section data-sourcepos="5:1-6:0" data-footnotes class="footnotes">
<ol>
- <li id="fn-1-42">
+ <li data-sourcepos="5:1-6:0" id="fn-1-42">
<p data-sourcepos="5:7-5:41">This is the text inside a footnote. <a href="#fnref-1-42" data-footnote-backref data-footnote-backref-idx="1" aria-label="Back to reference 1" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>
</li>
- <li id="fn-footnote-42">
+ <li data-sourcepos="7:1-7:38" id="fn-footnote-42">
<p data-sourcepos="7:14-7:38">This is another footnote. <a href="#fnref-footnote-42" data-footnote-backref data-footnote-backref-idx="2" aria-label="Back to reference 2" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>
</li>
</ol>
@@ -8282,7 +8282,7 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-2:10" dir="auto">This is a line after a<br>
+ <p data-sourcepos="1:1-2:10" dir="auto">This is a line after a<br data-sourcepos="1:23-1:24">
hard break</p>
wysiwyg: |-
<p dir="auto">This is a line after a<br>
@@ -8321,9 +8321,9 @@
canonical: |
TODO: Write canonical HTML for this example
static: "<ul data-sourcepos=\"1:1-15:130\" dir=\"auto\">\n<li data-sourcepos=\"1:1-1:48\">Content
- editor is <del>great</del><ins>amazing</ins>.</li>\n<li data-sourcepos=\"2:1-2:126\">If
- the changes <abbr title=\"Looks good to merge\">LGTM</abbr>, please <abbr title=\"Merge
- when pipeline succeeds\">MWPS</abbr>.</li>\n<li data-sourcepos=\"3:1-3:288\">The
+ editor is <del data-sourcepos=\"1:21-1:29\">great</del><ins>amazing</ins>.</li>\n<li
+ data-sourcepos=\"2:1-2:126\">If the changes <abbr title=\"Looks good to merge\">LGTM</abbr>,
+ please <abbr title=\"Merge when pipeline succeeds\">MWPS</abbr>.</li>\n<li data-sourcepos=\"3:1-3:288\">The
English song <q>Oh I do like to be beside the seaside</q> looks like this in Hebrew:
<span dir=\"rtl\">××”, ×× ×™ ×והב להיות ליד חוף ×”×™×</span>. In the computer's memory,
this is stored as <bdo dir=\"ltr\">××”, ×× ×™ ×והב להיות ליד חוף ×”×™×</bdo>.</li>\n<li
@@ -8342,7 +8342,7 @@
of a triangle is: 1/2 x <var>b</var> x <var>h</var>, where <var>b</var> is the
base, and <var>h</var> is the vertical height.</li>\n<li data-sourcepos=\"13:1-13:35\"><ruby>æ¼¢<rt>ã„ㄢˋ</rt></ruby></li>\n<li
data-sourcepos=\"14:1-14:79\">C<sub>7</sub>H<sub>16</sub> + O<sub>2</sub> \t CO<sub>2</sub>
- + H<sub>2</sub>O</li>\n<li data-sourcepos=\"15:1-15:130\">The <strong>Pythagorean
+ + H<sub>2</sub>O</li>\n<li data-sourcepos=\"15:1-15:130\">The <strong data-sourcepos=\"15:7-15:29\">Pythagorean
theorem</strong> is often expressed as <var>a<sup>2</sup></var> + <var>b<sup>2</sup></var>
= <var>c<sup>2</sup></var>\n</li>\n</ul>"
wysiwyg: "<ul dir=\"auto\" bullet=\"*\"><li dir=\"auto\"><p dir=\"auto\">Content
@@ -8370,14 +8370,14 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:40" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="alt text" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
+ <p data-sourcepos="1:1-1:40" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img data-sourcepos="1:1-1:40" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="alt text" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
wysiwyg: |-
<p dir="auto"><img src="https://gitlab.com/logo.png" alt="alt text"></p>
08_04_37__gitlab_internal_extension_markdown__migrated_golden_master_examples__inline_code__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:6" dir="auto"><code>code</code></p>
+ <p data-sourcepos="1:1-1:6" dir="auto"><code data-sourcepos="1:2-1:5">code</code></p>
wysiwyg: |-
<p dir="auto"><code>code</code></p>
08_04_38__gitlab_internal_extension_markdown__migrated_golden_master_examples__inline_diff__001:
@@ -8401,14 +8401,14 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:28" dir="auto"><a href="https://gitlab.com" rel="nofollow noreferrer noopener" target="_blank">GitLab</a></p>
+ <p data-sourcepos="1:1-1:28" dir="auto"><a data-sourcepos="1:1-1:28" href="https://gitlab.com" rel="nofollow noreferrer noopener" target="_blank">GitLab</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://gitlab.com">GitLab</a></p>
08_04_41__gitlab_internal_extension_markdown__migrated_golden_master_examples__math__001:
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:36" dir="auto">This math is inline <code data-math-style="inline" class="code math js-render-math">a^2+b^2=c^2</code>.</p>
+ <p data-sourcepos="1:1-1:36" dir="auto">This math is inline <code data-sourcepos="1:23-1:33" data-math-style="inline" class="code math js-render-math">a^2+b^2=c^2</code>.</p>
<p data-sourcepos="3:1-3:27" dir="auto">This is on a separate line:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="5:1-7:3" data-canonical-lang="math" data-math-style="display" class="js-render-math code highlight js-syntax-highlight language-math" lang="math" v-pre="true"><code><span id="LC1" class="line" lang="math">a^2+b^2=c^2</span></code></pre>
@@ -8433,7 +8433,7 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <ol start="134" data-sourcepos="1:1-3:16" dir="auto">
+ <ol data-sourcepos="1:1-3:16" start="134" dir="auto">
<li data-sourcepos="1:1-1:16">list item 1</li>
<li data-sourcepos="2:1-2:16">list item 2</li>
<li data-sourcepos="3:1-3:16">list item 3</li>
@@ -8468,7 +8468,7 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <ol start="4893" data-sourcepos="1:1-3:17" class="task-list" dir="auto">
+ <ol data-sourcepos="1:1-3:17" start="4893" class="task-list" dir="auto">
<li data-sourcepos="1:1-1:15" class="task-list-item">
<task-button></task-button><input type="checkbox" class="task-list-item-checkbox" checked disabled> hello</li>
<li data-sourcepos="2:1-2:15" class="task-list-item">
@@ -8477,7 +8477,7 @@
<task-button></task-button><input type="checkbox" class="task-list-item-checkbox" disabled> example</li>
</ol>
wysiwyg: |-
- <ol dir="auto" start="1" parens="false" bullet="*" data-type="taskList"><li dir="auto" data-checked="true" data-type="taskItem"><label><input type="checkbox" checked="checked"><span></span></label><div><p dir="auto">hello</p></div></li><li dir="auto" data-checked="true" data-type="taskItem"><label><input type="checkbox" checked="checked"><span></span></label><div><p dir="auto">world</p></div></li><li dir="auto" data-checked="false" data-type="taskItem"><label><input type="checkbox"><span></span></label><div><p dir="auto">example</p></div></li></ol>
+ <ol dir="auto" start="1" parens="false" bullet="*" data-type="taskList"><li dir="auto" data-checked="true" data-type="taskItem"><label><input type="checkbox" checked="checked"><span></span></label><div><p dir="auto">hello</p></div></li><li dir="auto" data-checked="true" data-type="taskItem"><label><input type="checkbox" checked="checked"><span></span></label><div><p dir="auto">world</p></div></li><li dir="auto" data-type="taskItem"><label><input type="checkbox"><span></span></label><div><p dir="auto">example</p></div></li></ol>
08_04_46__gitlab_internal_extension_markdown__migrated_golden_master_examples__reference_for_project_wiki__001:
canonical: |
TODO: Write canonical HTML for this example
@@ -8489,7 +8489,7 @@
canonical: |
TODO: Write canonical HTML for this example
static: |-
- <p data-sourcepos="1:1-1:7" dir="auto"><del>del</del></p>
+ <p data-sourcepos="1:1-1:7" dir="auto"><del data-sourcepos="1:1-1:7">del</del></p>
wysiwyg: |-
<p dir="auto"><s>del</s></p>
08_04_48__gitlab_internal_extension_markdown__migrated_golden_master_examples__table__001:
@@ -8505,13 +8505,13 @@
</thead>
<tbody>
<tr data-sourcepos="3:1-3:31">
- <td data-sourcepos="3:2-3:9"><code>code</code></td>
- <td data-sourcepos="3:11-3:30">cell with <strong>bold</strong>
+ <td data-sourcepos="3:2-3:9"><code data-sourcepos="3:4-3:7">code</code></td>
+ <td data-sourcepos="3:11-3:30">cell with <strong data-sourcepos="3:22-3:29">bold</strong>
</td>
</tr>
<tr data-sourcepos="4:1-4:35">
- <td data-sourcepos="4:2-4:13"><del>strike</del></td>
- <td data-sourcepos="4:15-4:34">cell with <em>italic</em>
+ <td data-sourcepos="4:2-4:13"><del data-sourcepos="4:3-4:12">strike</del></td>
+ <td data-sourcepos="4:15-4:34">cell with <em data-sourcepos="4:26-4:33">italic</em>
</td>
</tr>
</tbody>
@@ -8596,27 +8596,27 @@
canonical: |
<p><img src="https://gitlab.com/logo.png" width="100" height="100"></p>
static: |-
- <p data-sourcepos="1:1-1:58" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" width="100" height="100" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
+ <p data-sourcepos="1:1-1:58" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img data-sourcepos="1:1-1:32" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" width="100" height="100" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
08_05_00__gitlab_internal_extension_markdown__image_attributes__002:
canonical: |
<p><img src="https://gitlab.com/logo.png" width="100%"></p>
static: |-
- <p data-sourcepos="1:1-1:46" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" width="100%" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
+ <p data-sourcepos="1:1-1:46" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img data-sourcepos="1:1-1:32" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" width="100%" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
08_05_00__gitlab_internal_extension_markdown__image_attributes__003:
canonical: |
<p><img src="https://gitlab.com/logo.png" height="100px"></p>
static: |-
- <p data-sourcepos="1:1-1:48" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" height="100px" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
+ <p data-sourcepos="1:1-1:48" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img data-sourcepos="1:1-1:32" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" height="100px" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
08_05_00__gitlab_internal_extension_markdown__image_attributes__004:
canonical: |
<p><img src="https://gitlab.com/logo.png" width="100" height="100"></p>
static: |-
- <p data-sourcepos="1:1-1:60" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" width="100" height="100" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
+ <p data-sourcepos="1:1-1:60" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img data-sourcepos="1:1-1:32" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" width="100" height="100" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a></p>
08_05_00__gitlab_internal_extension_markdown__image_attributes__005:
canonical: |
<p><img src="https://gitlab.com/logo.png"> {width="100" height="100"}</p>
static: |-
- <p data-sourcepos="1:1-1:59" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a> {width="100" height="100"}</p>
+ <p data-sourcepos="1:1-1:59" dir="auto"><a class="no-attachment-icon" href="https://gitlab.com/logo.png" target="_blank" rel="nofollow noreferrer noopener"><img data-sourcepos="1:1-1:32" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" decoding="async" class="lazy" data-src="https://gitlab.com/logo.png"></a> {width="100" height="100"}</p>
08_06_00__gitlab_internal_extension_markdown__footnotes__001:
canonical: |
<p>
@@ -8639,10 +8639,10 @@
</ol>
</section>
static: |-
- <p data-sourcepos="1:1-1:34" dir="auto">footnote reference tag <sup class="footnote-ref"><a href="#fn-fortytwo-42" id="fnref-fortytwo-42" data-footnote-ref>1</a></sup></p>
- <section data-footnotes class="footnotes">
+ <p data-sourcepos="1:1-1:34" dir="auto">footnote reference tag <sup data-sourcepos="1:24-1:34" class="footnote-ref"><a href="#fn-fortytwo-42" id="fnref-fortytwo-42" data-footnote-ref>1</a></sup></p>
+ <section data-sourcepos="3:1-3:26" data-footnotes class="footnotes">
<ol>
- <li id="fn-fortytwo-42">
+ <li data-sourcepos="3:1-3:26" id="fn-fortytwo-42">
<p data-sourcepos="3:14-3:26">footnote text <a href="#fnref-fortytwo-42" data-footnote-backref data-footnote-backref-idx="1" aria-label="Back to reference 1" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>
</li>
</ol>
@@ -8681,17 +8681,17 @@
</ol>
</section>
static: |-
- <p data-sourcepos="1:1-1:47" dir="auto">This is some text!<sup class="footnote-ref"><a href="#fn-1-42" id="fnref-1-42" data-footnote-ref>1</a></sup>. Other text.<sup class="footnote-ref"><a href="#fn-footnote-42" id="fnref-footnote-42" data-footnote-ref>2</a></sup>.</p>
- <p data-sourcepos="3:1-3:28" dir="auto">Here's a thing<sup class="footnote-ref"><a href="#fn-other-note-42" id="fnref-other-note-42" data-footnote-ref>3</a></sup>.</p>
- <p data-sourcepos="5:1-5:35" dir="auto">And another thing<sup class="footnote-ref"><a href="#fn-codeblock-note-42" id="fnref-codeblock-note-42" data-footnote-ref>4</a></sup>.</p>
+ <p data-sourcepos="1:1-1:47" dir="auto">This is some text!<sup data-sourcepos="1:19-1:22" class="footnote-ref"><a href="#fn-1-42" id="fnref-1-42" data-footnote-ref>1</a></sup>. Other text.<sup data-sourcepos="1:36-1:46" class="footnote-ref"><a href="#fn-footnote-42" id="fnref-footnote-42" data-footnote-ref>2</a></sup>.</p>
+ <p data-sourcepos="3:1-3:28" dir="auto">Here's a thing<sup data-sourcepos="3:15-3:27" class="footnote-ref"><a href="#fn-other-note-42" id="fnref-other-note-42" data-footnote-ref>3</a></sup>.</p>
+ <p data-sourcepos="5:1-5:35" dir="auto">And another thing<sup data-sourcepos="5:18-5:34" class="footnote-ref"><a href="#fn-codeblock-note-42" id="fnref-codeblock-note-42" data-footnote-ref>4</a></sup>.</p>
<p data-sourcepos="7:1-7:36" dir="auto">This doesn't have a referent[^nope].</p>
<p data-sourcepos="17:1-17:3" dir="auto">Hi!</p>
- <section data-footnotes class="footnotes">
+ <section data-sourcepos="15:1-16:0" data-footnotes class="footnotes">
<ol>
- <li id="fn-1-42">
- <p data-sourcepos="15:7-15:40">Some <em>bolded</em> footnote definition. <a href="#fnref-1-42" data-footnote-backref data-footnote-backref-idx="1" aria-label="Back to reference 1" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>
+ <li data-sourcepos="15:1-16:0" id="fn-1-42">
+ <p data-sourcepos="15:7-15:40">Some <em data-sourcepos="15:12-15:19">bolded</em> footnote definition. <a href="#fnref-1-42" data-footnote-backref data-footnote-backref-idx="1" aria-label="Back to reference 1" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>
</li>
- <li id="fn-footnote-42">
+ <li data-sourcepos="19:1-25:0" id="fn-footnote-42">
<blockquote data-sourcepos="20:5-20:39">
<p data-sourcepos="20:7-20:39">Blockquotes can be in a footnote.</p>
</blockquote>
@@ -8701,10 +8701,10 @@
</div>
<p data-sourcepos="24:5-24:37">or, naturally, simple paragraphs. <a href="#fnref-footnote-42" data-footnote-backref data-footnote-backref-idx="2" aria-label="Back to reference 2" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>
</li>
- <li id="fn-other-note-42">
+ <li data-sourcepos="10:1-11:0" id="fn-other-note-42">
<p data-sourcepos="10:22-10:66">no code block here (spaces are stripped away) <a href="#fnref-other-note-42" data-footnote-backref data-footnote-backref-idx="3" aria-label="Back to reference 3" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>
</li>
- <li id="fn-codeblock-note-42">
+ <li data-sourcepos="12:1-14:0" id="fn-codeblock-note-42">
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="13:9-14:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">this is now a code block (8 spaces indentation)</span></code></pre>
<copy-code></copy-code>
@@ -8734,11 +8734,11 @@
</ol>
</section>
static: |-
- <p data-sourcepos="1:1-1:50" dir="auto">This is some text. It has a footnote<sup class="footnote-ref"><a href="#fn-a-footnote-42" id="fnref-a-footnote-42" data-footnote-ref>1</a></sup>.</p>
- <p data-sourcepos="3:1-3:98" dir="auto">This footnote is referenced<sup><a href="#fn-a-footnote" id="fnref-a-footnote-2" data-footnote-ref>1</a></sup> multiple times, in lots of different places.<sup><a href="#fn-a-footnote" id="fnref-a-footnote-3" data-footnote-ref>1</a></sup></p>
- <section data-footnotes class="footnotes">
+ <p data-sourcepos="1:1-1:50" dir="auto">This is some text. It has a footnote<sup data-sourcepos="1:37-1:49" class="footnote-ref"><a href="#fn-a-footnote-42" id="fnref-a-footnote-42" data-footnote-ref>1</a></sup>.</p>
+ <p data-sourcepos="3:1-3:98" dir="auto">This footnote is referenced<sup data-sourcepos="3:28-3:40"><a href="#fn-a-footnote" id="fnref-a-footnote-2" data-footnote-ref>1</a></sup> multiple times, in lots of different places.<sup data-sourcepos="3:86-3:98"><a href="#fn-a-footnote" id="fnref-a-footnote-3" data-footnote-ref>1</a></sup></p>
+ <section data-sourcepos="5:1-5:67" data-footnotes class="footnotes">
<ol>
- <li id="fn-a-footnote-42">
+ <li data-sourcepos="5:1-5:67" id="fn-a-footnote-42">
<p data-sourcepos="5:16-5:67">This footnote definition should have three backrefs. <a href="#fnref-a-footnote-42" data-footnote-backref data-footnote-backref-idx="1" aria-label="Back to reference 1" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a> <a href="#fnref-a-footnote-2" data-footnote-backref data-footnote-backref-idx="1-2" aria-label="Back to reference 1-2"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji><sup>2</sup></a> <a href="#fnref-a-footnote-3" data-footnote-backref data-footnote-backref-idx="1-3" aria-label="Back to reference 1-3"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji><sup>3</sup></a></p>
</li>
</ol>
@@ -8758,10 +8758,10 @@
</ol>
</section>
static: |-
- <p data-sourcepos="1:1-1:35" dir="auto">Hello<sup class="footnote-ref"><a href="#fn-%22%3E%3Cscript%3Ealert(1)%3C/script%3E-42" id="fnref-%22%3E%3Cscript%3Ealert(1)%3C/script%3E-42" data-footnote-ref>1</a></sup></p>
- <section data-footnotes class="footnotes">
+ <p data-sourcepos="1:1-1:35" dir="auto">Hello<sup data-sourcepos="1:6-1:35" class="footnote-ref"><a href="#fn-%22%3E%3Cscript%3Ealert(1)%3C/script%3E-42" id="fnref-%22%3E%3Cscript%3Ealert(1)%3C/script%3E-42" data-footnote-ref>1</a></sup></p>
+ <section data-sourcepos="3:1-3:37" data-footnotes class="footnotes">
<ol>
- <li id="fn-%22%3E%3Cscript%3Ealert(1)%3C/script%3E-42">
+ <li data-sourcepos="3:1-3:37" id="fn-%22%3E%3Cscript%3Ealert(1)%3C/script%3E-42">
<p data-sourcepos="3:33-3:37">pwned <a href="#fnref-%22%3E%3Cscript%3Ealert(1)%3C/script%3E-42" data-footnote-backref data-footnote-backref-idx="1" aria-label="Back to reference 1" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>
</li>
</ol>
@@ -8774,8 +8774,8 @@
<p><del><a href="http://www.google.com">www.google.com</a></del></p>
<p><del><a href="http://google.com">http://google.com</a></del></p>
static: |-
- <p data-sourcepos="1:1-1:18" dir="auto"><del><a href="http://www.google.com" rel="nofollow noreferrer noopener" target="_blank">www.google.com</a></del></p>
- <p data-sourcepos="3:1-3:21" dir="auto"><del><a href="http://google.com" rel="nofollow noreferrer noopener" target="_blank">http://google.com</a></del></p>
+ <p data-sourcepos="1:1-1:18" dir="auto"><del data-sourcepos="1:1-1:18"><a href="http://www.google.com" rel="nofollow noreferrer noopener" target="_blank">www.google.com</a></del></p>
+ <p data-sourcepos="3:1-3:21" dir="auto"><del data-sourcepos="3:1-3:21"><a href="http://google.com" rel="nofollow noreferrer noopener" target="_blank">http://google.com</a></del></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://www.google.com"><s>www.google.com</s></a></p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="http://google.com"><s>http://google.com</s></a></p>
@@ -8828,7 +8828,7 @@
<task-button></task-button><input type="checkbox" class="task-list-item-checkbox" checked disabled> bar</li>
</ul>
wysiwyg: |-
- <ul dir="auto" start="1" parens="false" bullet="*" data-type="taskList"><li dir="auto" data-checked="false" data-type="taskItem"><label><input type="checkbox"><span></span></label><div><p dir="auto">foo</p></div></li><li dir="auto" data-checked="true" data-type="taskItem"><label><input type="checkbox" checked="checked"><span></span></label><div><p dir="auto">bar</p></div></li></ul>
+ <ul dir="auto" start="1" parens="false" bullet="*" data-type="taskList"><li dir="auto" data-type="taskItem"><label><input type="checkbox"><span></span></label><div><p dir="auto">foo</p></div></li><li dir="auto" data-checked="true" data-type="taskItem"><label><input type="checkbox" checked="checked"><span></span></label><div><p dir="auto">bar</p></div></li></ul>
09_04_00__gfm_undocumented_extensions_and_more_robust_test__task_lists__002:
canonical: |
<ul>
diff --git a/glfm_specification/output_example_snapshots/prosemirror_json.yml b/glfm_specification/output_example_snapshots/prosemirror_json.yml
index 95e7003a202..ba2cbc8322c 100644
--- a/glfm_specification/output_example_snapshots/prosemirror_json.yml
+++ b/glfm_specification/output_example_snapshots/prosemirror_json.yml
@@ -2947,7 +2947,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -3011,7 +3012,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -3229,7 +3231,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -3881,7 +3884,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5244,7 +5248,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5263,7 +5268,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5287,7 +5293,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5306,7 +5313,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5344,7 +5352,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5363,7 +5372,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5387,7 +5397,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5406,7 +5417,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5444,7 +5456,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5468,7 +5481,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5505,7 +5519,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5556,7 +5571,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5575,7 +5591,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5599,7 +5616,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5618,7 +5636,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5673,7 +5692,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5692,7 +5712,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5716,7 +5737,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5735,7 +5757,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5759,7 +5782,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5778,7 +5802,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5834,7 +5859,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5853,7 +5879,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5877,7 +5904,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5896,7 +5924,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5914,7 +5943,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5933,7 +5963,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5971,7 +6002,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -5990,7 +6022,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -20562,7 +20595,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": false
+ "checked": false,
+ "inapplicable": false
},
"content": [
{
@@ -20596,7 +20630,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": true
+ "checked": true,
+ "inapplicable": false
},
"content": [
{
@@ -21270,7 +21305,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": true
+ "checked": true,
+ "inapplicable": false
},
"content": [
{
@@ -21292,7 +21328,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": true
+ "checked": true,
+ "inapplicable": false
},
"content": [
{
@@ -21314,7 +21351,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": true
+ "checked": true,
+ "inapplicable": false
},
"content": [
{
@@ -23006,7 +23044,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": true
+ "checked": true,
+ "inapplicable": false
},
"content": [
{
@@ -23023,7 +23062,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": true
+ "checked": true,
+ "inapplicable": false
},
"content": [
{
@@ -23040,7 +23080,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": false
+ "checked": false,
+ "inapplicable": false
},
"content": [
{
@@ -23111,7 +23152,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23130,7 +23172,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23154,7 +23197,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23178,7 +23222,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23211,7 +23256,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23235,7 +23281,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23775,7 +23822,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23794,7 +23842,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23818,7 +23867,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23865,7 +23915,8 @@
"attrs": {
"colspan": 1,
"rowspan": 1,
- "colwidth": null
+ "colwidth": null,
+ "align": "left"
},
"content": [
{
@@ -23913,7 +23964,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": false
+ "checked": false,
+ "inapplicable": false
},
"content": [
{
@@ -23930,7 +23982,8 @@
{
"type": "taskItem",
"attrs": {
- "checked": true
+ "checked": true,
+ "inapplicable": false
},
"content": [
{
diff --git a/glfm_specification/output_example_snapshots/snapshot_spec.html b/glfm_specification/output_example_snapshots/snapshot_spec.html
index 5c38f8ff5f0..ea9c2db5447 100644
--- a/glfm_specification/output_example_snapshots/snapshot_spec.html
+++ b/glfm_specification/output_example_snapshots/snapshot_spec.html
@@ -382,45 +382,45 @@
<a id="user-content-characters-and-lines" class="anchor" href="#characters-and-lines" aria-hidden="true"></a>Characters and lines</h2>
<p data-sourcepos="7:1-8:9" dir="auto">Any sequence of [characters] is a valid CommonMark
document.</p>
-<p data-sourcepos="10:1-13:26" dir="auto">A <a href="@">character</a> is a Unicode code point. Although some
+<p data-sourcepos="10:1-13:26" dir="auto">A <a data-sourcepos="10:3-10:16" href="@">character</a> is a Unicode code point. Although some
code points (for example, combining accents) do not correspond to
characters in an intuitive sense, all code points count as characters
for purposes of this spec.</p>
<p data-sourcepos="15:1-17:22" dir="auto">This spec does not specify an encoding; it thinks of lines as composed
of [characters] rather than bytes. A conforming parser may be limited
to a certain encoding.</p>
-<p data-sourcepos="19:1-21:50" dir="auto">A <a href="@">line</a> is a sequence of zero or more [characters]
-other than newline (<code>U+000A</code>) or carriage return (<code>U+000D</code>),
+<p data-sourcepos="19:1-21:50" dir="auto">A <a data-sourcepos="19:3-19:11" href="@">line</a> is a sequence of zero or more [characters]
+other than newline (<code data-sourcepos="20:22-20:27">U+000A</code>) or carriage return (<code data-sourcepos="20:52-20:57">U+000D</code>),
followed by a [line ending] or by the end of file.</p>
-<p data-sourcepos="23:1-25:18" dir="auto">A <a href="@">line ending</a> is a newline (<code>U+000A</code>), a carriage return
-(<code>U+000D</code>) not followed by a newline, or a carriage return and a
+<p data-sourcepos="23:1-25:18" dir="auto">A <a data-sourcepos="23:3-23:18" href="@">line ending</a> is a newline (<code data-sourcepos="23:35-23:40">U+000A</code>), a carriage return
+(<code data-sourcepos="24:3-24:8">U+000D</code>) not followed by a newline, or a carriage return and a
following newline.</p>
<p data-sourcepos="27:1-28:59" dir="auto">A line containing no characters, or a line containing only spaces
-(<code>U+0020</code>) or tabs (<code>U+0009</code>), is called a <a href="@">blank line</a>.</p>
+(<code data-sourcepos="28:3-28:8">U+0020</code>) or tabs (<code data-sourcepos="28:22-28:27">U+0009</code>), is called a <a data-sourcepos="28:44-28:58" href="@">blank line</a>.</p>
<p data-sourcepos="30:1-30:73" dir="auto">The following definitions of character classes will be used in this spec:</p>
-<p data-sourcepos="32:1-34:52" dir="auto">A <a href="@">whitespace character</a> is a space
-(<code>U+0020</code>), tab (<code>U+0009</code>), newline (<code>U+000A</code>), line tabulation (<code>U+000B</code>),
-form feed (<code>U+000C</code>), or carriage return (<code>U+000D</code>).</p>
-<p data-sourcepos="36:1-37:12" dir="auto"><a href="@">Whitespace</a> is a sequence of one or more [whitespace
+<p data-sourcepos="32:1-34:52" dir="auto">A <a data-sourcepos="32:3-32:27" href="@">whitespace character</a> is a space
+(<code data-sourcepos="33:3-33:8">U+0020</code>), tab (<code data-sourcepos="33:19-33:24">U+0009</code>), newline (<code data-sourcepos="33:39-33:44">U+000A</code>), line tabulation (<code data-sourcepos="33:67-33:72">U+000B</code>),
+form feed (<code data-sourcepos="34:13-34:18">U+000C</code>), or carriage return (<code data-sourcepos="34:44-34:49">U+000D</code>).</p>
+<p data-sourcepos="36:1-37:12" dir="auto"><a data-sourcepos="36:1-36:15" href="@">Whitespace</a> is a sequence of one or more [whitespace
characters].</p>
-<p data-sourcepos="39:1-42:11" dir="auto">A <a href="@">Unicode whitespace character</a> is
-any code point in the Unicode <code>Zs</code> general category, or a tab (<code>U+0009</code>),
-carriage return (<code>U+000D</code>), newline (<code>U+000A</code>), or form feed
-(<code>U+000C</code>).</p>
-<p data-sourcepos="44:1-45:40" dir="auto"><a href="@">Unicode whitespace</a> is a sequence of one
+<p data-sourcepos="39:1-42:11" dir="auto">A <a data-sourcepos="39:3-39:35" href="@">Unicode whitespace character</a> is
+any code point in the Unicode <code data-sourcepos="40:32-40:33">Zs</code> general category, or a tab (<code data-sourcepos="40:65-40:70">U+0009</code>),
+carriage return (<code data-sourcepos="41:19-41:24">U+000D</code>), newline (<code data-sourcepos="41:39-41:44">U+000A</code>), or form feed
+(<code data-sourcepos="42:3-42:8">U+000C</code>).</p>
+<p data-sourcepos="44:1-45:40" dir="auto"><a data-sourcepos="44:1-44:23" href="@">Unicode whitespace</a> is a sequence of one
or more [Unicode whitespace characters].</p>
-<p data-sourcepos="47:1-47:25" dir="auto">A <a href="@">space</a> is <code>U+0020</code>.</p>
-<p data-sourcepos="49:1-50:37" dir="auto">A <a href="@">non-whitespace character</a> is any character
+<p data-sourcepos="47:1-47:25" dir="auto">A <a data-sourcepos="47:3-47:12" href="@">space</a> is <code data-sourcepos="47:18-47:23">U+0020</code>.</p>
+<p data-sourcepos="49:1-50:37" dir="auto">A <a data-sourcepos="49:3-49:31" href="@">non-whitespace character</a> is any character
that is not a [whitespace character].</p>
-<p data-sourcepos="52:1-57:38" dir="auto">An <a href="@">ASCII punctuation character</a>
-is <code>!</code>, <code>"</code>, <code>#</code>, <code>$</code>, <code>%</code>, <code>&amp;</code>, <code>'</code>, <code>(</code>, <code>)</code>,
-<code>*</code>, <code>+</code>, <code>,</code>, <code>-</code>, <code>.</code>, <code>/</code> (U+0021–2F),
-<code>:</code>, <code>;</code>, <code>&lt;</code>, <code>=</code>, <code>&gt;</code>, <code>?</code>, <code>@</code> (U+003A–0040),
-<code>[</code>, <code>\</code>, <code>]</code>, <code>^</code>, <code>_</code>, <code>`</code> (U+005B–0060),
-<code>{</code>, <code>|</code>, <code>}</code>, or <code>~</code> (U+007B–007E).</p>
-<p data-sourcepos="59:1-61:76" dir="auto">A <a href="@">punctuation character</a> is an [ASCII
+<p data-sourcepos="52:1-57:38" dir="auto">An <a data-sourcepos="52:4-52:35" href="@">ASCII punctuation character</a>
+is <code data-sourcepos="53:5-53:5">!</code>, <code data-sourcepos="53:10-53:10">"</code>, <code data-sourcepos="53:15-53:15">#</code>, <code data-sourcepos="53:20-53:20">$</code>, <code data-sourcepos="53:25-53:25">%</code>, <code data-sourcepos="53:30-53:30">&amp;</code>, <code data-sourcepos="53:35-53:35">'</code>, <code data-sourcepos="53:40-53:40">(</code>, <code data-sourcepos="53:45-53:45">)</code>,
+<code data-sourcepos="54:2-54:2">*</code>, <code data-sourcepos="54:7-54:7">+</code>, <code data-sourcepos="54:12-54:12">,</code>, <code data-sourcepos="54:17-54:17">-</code>, <code data-sourcepos="54:22-54:22">.</code>, <code data-sourcepos="54:27-54:27">/</code> (U+0021–2F),
+<code data-sourcepos="55:2-55:2">:</code>, <code data-sourcepos="55:7-55:7">;</code>, <code data-sourcepos="55:12-55:12">&lt;</code>, <code data-sourcepos="55:17-55:17">=</code>, <code data-sourcepos="55:22-55:22">&gt;</code>, <code data-sourcepos="55:27-55:27">?</code>, <code data-sourcepos="55:32-55:32">@</code> (U+003A–0040),
+<code data-sourcepos="56:2-56:2">[</code>, <code data-sourcepos="56:7-56:7">\</code>, <code data-sourcepos="56:12-56:12">]</code>, <code data-sourcepos="56:17-56:17">^</code>, <code data-sourcepos="56:22-56:22">_</code>, <code data-sourcepos="56:28-56:30">`</code> (U+005B–0060),
+<code data-sourcepos="57:2-57:2">{</code>, <code data-sourcepos="57:7-57:7">|</code>, <code data-sourcepos="57:12-57:12">}</code>, or <code data-sourcepos="57:20-57:20">~</code> (U+007B–007E).</p>
+<p data-sourcepos="59:1-61:76" dir="auto">A <a data-sourcepos="59:3-59:28" href="@">punctuation character</a> is an [ASCII
punctuation character] or anything in
-the general Unicode categories <code>Pc</code>, <code>Pd</code>, <code>Pe</code>, <code>Pf</code>, <code>Pi</code>, <code>Po</code>, or <code>Ps</code>.</p>
+the general Unicode categories <code data-sourcepos="61:34-61:35">Pc</code>, <code data-sourcepos="61:40-61:41">Pd</code>, <code data-sourcepos="61:46-61:47">Pe</code>, <code data-sourcepos="61:52-61:53">Pf</code>, <code data-sourcepos="61:58-61:59">Pi</code>, <code data-sourcepos="61:64-61:65">Po</code>, or <code data-sourcepos="61:73-61:74">Ps</code>.</p>
<h2 data-sourcepos="63:1-63:7" dir="auto">
<a id="user-content-tabs" class="anchor" href="#tabs" aria-hidden="true"></a>Tabs</h2>
<p data-sourcepos="65:1-68:16" dir="auto">Tabs in lines are not expanded to [spaces]. However,
@@ -509,12 +509,12 @@ as indentation with four spaces would:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="159:1-166:36" dir="auto">Normally the <code>&gt;</code> that begins a block quote may be followed
+<p data-sourcepos="159:1-166:36" dir="auto">Normally the <code data-sourcepos="159:15-159:15">&gt;</code> that begins a block quote may be followed
optionally by a space, which is not considered part of the
-content. In the following case <code>&gt;</code> is followed by a tab,
+content. In the following case <code data-sourcepos="161:34-161:34">&gt;</code> is followed by a tab,
which is treated as if it were expanded into three spaces.
Since one of these spaces is considered part of the
-delimiter, <code>foo</code> is considered to be indented six spaces
+delimiter, <code data-sourcepos="164:13-164:15">foo</code> is considered to be indented six spaces
inside the block quote context, so we get an indented
code block starting with two spaces.</p>
<div>
@@ -608,15 +608,15 @@ code block starting with two spaces.</p>
</div>
<h2 data-sourcepos="265:1-265:22" dir="auto">
<a id="user-content-insecure-characters" class="anchor" href="#insecure-characters" aria-hidden="true"></a>Insecure characters</h2>
-<p data-sourcepos="267:1-268:42" dir="auto">For security reasons, the Unicode character <code>U+0000</code> must be replaced
-with the REPLACEMENT CHARACTER (<code>U+FFFD</code>).</p>
+<p data-sourcepos="267:1-268:42" dir="auto">For security reasons, the Unicode character <code data-sourcepos="267:46-267:51">U+0000</code> must be replaced
+with the REPLACEMENT CHARACTER (<code data-sourcepos="268:34-268:39">U+FFFD</code>).</p>
<h1 data-sourcepos="270:1-270:20" dir="auto">
<a id="user-content-blocks-and-inlines" class="anchor" href="#blocks-and-inlines" aria-hidden="true"></a>Blocks and inlines</h1>
<p data-sourcepos="272:1-277:54" dir="auto">We can think of a document as a sequence of
-<a href="@">blocks</a>---structural elements like paragraphs, block
+<a data-sourcepos="273:1-273:11" href="@">blocks</a>---structural elements like paragraphs, block
quotations, lists, headings, rules, and code blocks. Some blocks (like
block quotes and list items) contain other blocks; others (like
-headings and paragraphs) contain <a href="@">inline</a> content---text,
+headings and paragraphs) contain <a data-sourcepos="276:34-276:44" href="@">inline</a> content---text,
links, emphasized text, images, code spans, and so on.</p>
<h2 data-sourcepos="279:1-279:13" dir="auto">
<a id="user-content-precedence" class="anchor" href="#precedence" aria-hidden="true"></a>Precedence</h2>
@@ -649,8 +649,8 @@ one block element does not affect the inline parsing of any other.</p>
<h2 data-sourcepos="311:1-311:35" dir="auto">
<a id="user-content-container-blocks-and-leaf-blocks" class="anchor" href="#container-blocks-and-leaf-blocks" aria-hidden="true"></a>Container blocks and leaf blocks</h2>
<p data-sourcepos="313:1-316:13" dir="auto">We can divide blocks into two types:
-<a href="@">container blocks</a>,
-which can contain other blocks, and <a href="@">leaf blocks</a>,
+<a data-sourcepos="314:1-314:21" href="@">container blocks</a>,
+which can contain other blocks, and <a data-sourcepos="315:37-315:52" href="@">leaf blocks</a>,
which cannot.</p>
<h1 data-sourcepos="318:1-318:13" dir="auto">
<a id="user-content-leaf-blocks" class="anchor" href="#leaf-blocks" aria-hidden="true"></a>Leaf blocks</h1>
@@ -659,9 +659,9 @@ Markdown document.</p>
<h2 data-sourcepos="323:1-323:18" dir="auto">
<a id="user-content-thematic-breaks" class="anchor" href="#thematic-breaks" aria-hidden="true"></a>Thematic breaks</h2>
<p data-sourcepos="325:1-328:20" dir="auto">A line consisting of 0-3 spaces of indentation, followed by a sequence
-of three or more matching <code>-</code>, <code>_</code>, or <code>*</code> characters, each followed
+of three or more matching <code data-sourcepos="326:28-326:28">-</code>, <code data-sourcepos="326:33-326:33">_</code>, or <code data-sourcepos="326:41-326:41">*</code> characters, each followed
optionally by any number of spaces or tabs, forms a
-<a href="@">thematic break</a>.</p>
+<a data-sourcepos="328:1-328:19" href="@">thematic break</a>.</p>
<div>
<div><a href="#example-13">Example 13</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -943,16 +943,16 @@ interpretations of a line, the thematic break takes precedence:</p>
</div>
<h2 data-sourcepos="661:1-661:15" dir="auto">
<a id="user-content-atx-headings" class="anchor" href="#atx-headings" aria-hidden="true"></a>ATX headings</h2>
-<p data-sourcepos="663:1-673:35" dir="auto">An <a href="@">ATX heading</a>
+<p data-sourcepos="663:1-673:35" dir="auto">An <a data-sourcepos="663:4-663:19" href="@">ATX heading</a>
consists of a string of characters, parsed as inline content, between an
-opening sequence of 1--6 unescaped <code>#</code> characters and an optional
-closing sequence of any number of unescaped <code>#</code> characters.
-The opening sequence of <code>#</code> characters must be followed by a
-[space] or by the end of line. The optional closing sequence of <code>#</code>s must be
+opening sequence of 1--6 unescaped <code data-sourcepos="665:37-665:37">#</code> characters and an optional
+closing sequence of any number of unescaped <code data-sourcepos="666:46-666:46">#</code> characters.
+The opening sequence of <code data-sourcepos="667:26-667:26">#</code> characters must be followed by a
+[space] or by the end of line. The optional closing sequence of <code data-sourcepos="668:66-668:66">#</code>s must be
preceded by a [space] and may be followed by spaces only. The opening
-<code>#</code> character may be indented 0-3 spaces. The raw contents of the
+<code data-sourcepos="670:2-670:2">#</code> character may be indented 0-3 spaces. The raw contents of the
heading are stripped of leading and trailing spaces before being parsed
-as inline content. The heading level is equal to the number of <code>#</code>
+as inline content. The heading level is equal to the number of <code data-sourcepos="672:66-672:66">#</code>
characters in the opening sequence.</p>
<p data-sourcepos="675:1-675:16" dir="auto">Simple headings:</p>
<div>
@@ -976,7 +976,7 @@ characters in the opening sequence.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="700:1-700:46" dir="auto">More than six <code>#</code> characters is not a heading:</p>
+<p data-sourcepos="700:1-700:46" dir="auto">More than six <code data-sourcepos="700:16-700:16">#</code> characters is not a heading:</p>
<div>
<div><a href="#example-33">Example 33</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -988,11 +988,11 @@ characters in the opening sequence.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="715:1-721:9" dir="auto">At least one space is required between the <code>#</code> characters and the
+<p data-sourcepos="715:1-721:9" dir="auto">At least one space is required between the <code data-sourcepos="715:45-715:45">#</code> characters and the
heading's contents, unless the heading is empty. Note that many
implementations currently do not require the space. However, the
space was required by the
-<a href="http://www.aaronsw.com/2002/atx/atx.py" rel="nofollow noreferrer noopener" target="_blank">original ATX implementation</a>,
+<a data-sourcepos="719:1-719:69" href="http://www.aaronsw.com/2002/atx/atx.py" rel="nofollow noreferrer noopener" target="_blank">original ATX implementation</a>,
and it helps prevent things like the following from being parsed as
headings:</p>
<div>
@@ -1009,7 +1009,7 @@ headings:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="739:1-739:56" dir="auto">This is not a heading, because the first <code>#</code> is escaped:</p>
+<p data-sourcepos="739:1-739:56" dir="auto">This is not a heading, because the first <code data-sourcepos="739:43-739:43">#</code> is escaped:</p>
<div>
<div><a href="#example-35">Example 35</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -1087,7 +1087,7 @@ headings:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="834:1-834:49" dir="auto">A closing sequence of <code>#</code> characters is optional:</p>
+<p data-sourcepos="834:1-834:49" dir="auto">A closing sequence of <code data-sourcepos="834:24-834:24">#</code> characters is optional:</p>
<div>
<div><a href="#example-41">Example 41</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -1127,7 +1127,7 @@ headings:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="883:1-885:8" dir="auto">A sequence of <code>#</code> characters with anything but [spaces] following it
+<p data-sourcepos="883:1-885:8" dir="auto">A sequence of <code data-sourcepos="883:16-883:16">#</code> characters with anything but [spaces] following it
is not a closing sequence, but counts as part of the contents of the
heading:</p>
<div>
@@ -1153,7 +1153,7 @@ heading:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="915:1-916:24" dir="auto">Backslash-escaped <code>#</code> characters do not count as part
+<p data-sourcepos="915:1-916:24" dir="auto">Backslash-escaped <code data-sourcepos="915:20-915:20">#</code> characters do not count as part
of the closing sequence:</p>
<div>
<div><a href="#example-46">Example 46</a></div>
@@ -1220,7 +1220,7 @@ lines, and they can interrupt paragraphs:</p>
</div>
<h2 data-sourcepos="991:1-991:18" dir="auto">
<a id="user-content-setext-headings" class="anchor" href="#setext-headings" aria-hidden="true"></a>Setext headings</h2>
-<p data-sourcepos="993:1-1001:54" dir="auto">A <a href="@">setext heading</a> consists of one or more
+<p data-sourcepos="993:1-1001:54" dir="auto">A <a data-sourcepos="993:3-993:21" href="@">setext heading</a> consists of one or more
lines of text, each containing at least one [non-whitespace
character], with no more than 3 spaces indentation, followed by
a [setext heading underline]. The lines of text must be such
@@ -1229,14 +1229,14 @@ they would be interpreted as a paragraph: they cannot be
interpretable as a [code fence], [ATX heading][ATX headings],
[block quote][block quotes], [thematic break][thematic breaks],
[list item][list items], or [HTML block][HTML blocks].</p>
-<p data-sourcepos="1003:1-1008:40" dir="auto">A <a href="@">setext heading underline</a> is a sequence of
-<code>=</code> characters or a sequence of <code>-</code> characters, with no more than 3
+<p data-sourcepos="1003:1-1008:40" dir="auto">A <a data-sourcepos="1003:3-1003:31" href="@">setext heading underline</a> is a sequence of
+<code data-sourcepos="1004:2-1004:2">=</code> characters or a sequence of <code data-sourcepos="1004:34-1004:34">-</code> characters, with no more than 3
spaces indentation and any number of trailing spaces. If a line
-containing a single <code>-</code> can be interpreted as an
+containing a single <code data-sourcepos="1006:22-1006:22">-</code> can be interpreted as an
empty [list items], it should be interpreted this way
and not as a [setext heading underline].</p>
-<p data-sourcepos="1010:1-1014:8" dir="auto">The heading is a level 1 heading if <code>=</code> characters are used in
-the [setext heading underline], and a level 2 heading if <code>-</code>
+<p data-sourcepos="1010:1-1014:8" dir="auto">The heading is a level 1 heading if <code data-sourcepos="1010:38-1010:38">=</code> characters are used in
+the [setext heading underline], and a level 2 heading if <code data-sourcepos="1011:59-1011:59">-</code>
characters are used. The contents of the heading are the result
of parsing the preceding lines of text as CommonMark inline
content.</p>
@@ -1609,7 +1609,7 @@ in these examples gets interpreted as a thematic break:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="1446:1-1447:22" dir="auto">If you want a heading with <code>&gt; foo</code> as its literal text, you can
+<p data-sourcepos="1446:1-1447:22" dir="auto">If you want a heading with <code data-sourcepos="1446:29-1446:33">&gt; foo</code> as its literal text, you can
use backslash escapes:</p>
<div>
<div><a href="#example-72">Example 72</a></div>
@@ -1623,7 +1623,7 @@ use backslash escapes:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="1463:1-1465:48" dir="auto"><strong>Compatibility note:</strong> Most existing Markdown implementations
+<p data-sourcepos="1463:1-1465:48" dir="auto"><strong data-sourcepos="1463:1-1463:23">Compatibility note:</strong> Most existing Markdown implementations
do not allow the text of setext headings to span multiple lines.
But there is no consensus about how to interpret</p>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -1721,9 +1721,9 @@ underline], such as</p>
</div>
<h2 data-sourcepos="1572:1-1572:23" dir="auto">
<a id="user-content-indented-code-blocks" class="anchor" href="#indented-code-blocks" aria-hidden="true"></a>Indented code blocks</h2>
-<p data-sourcepos="1574:1-1580:44" dir="auto">An <a href="@">indented code block</a> is composed of one or more
+<p data-sourcepos="1574:1-1580:44" dir="auto">An <a data-sourcepos="1574:4-1574:27" href="@">indented code block</a> is composed of one or more
[indented chunks] separated by blank lines.
-An <a href="@">indented chunk</a> is a sequence of non-blank lines,
+An <a data-sourcepos="1576:4-1576:22" href="@">indented chunk</a> is a sequence of non-blank lines,
each indented four or more spaces. The contents of the code block are
the literal contents of the lines, including trailing
[line endings], minus four spaces of indentation.
@@ -1955,14 +1955,14 @@ are not included in it:</p>
</div>
<h2 data-sourcepos="1844:1-1844:21" dir="auto">
<a id="user-content-fenced-code-blocks" class="anchor" href="#fenced-code-blocks" aria-hidden="true"></a>Fenced code blocks</h2>
-<p data-sourcepos="1846:1-1850:61" dir="auto">A <a href="@">code fence</a> is a sequence
-of at least three consecutive backtick characters (<code>`</code>) or
-tildes (<code>~</code>). (Tildes and backticks cannot be mixed.)
-A <a href="@">fenced code block</a>
+<p data-sourcepos="1846:1-1850:61" dir="auto">A <a data-sourcepos="1846:3-1846:17" href="@">code fence</a> is a sequence
+of at least three consecutive backtick characters (<code data-sourcepos="1847:54-1847:56">`</code>) or
+tildes (<code data-sourcepos="1848:10-1848:10">~</code>). (Tildes and backticks cannot be mixed.)
+A <a data-sourcepos="1849:3-1849:24" href="@">fenced code block</a>
begins with a code fence, indented no more than three spaces.</p>
<p data-sourcepos="1852:1-1858:34" dir="auto">The line with the opening code fence may optionally contain some text
following the code fence; this is trimmed of leading and trailing
-whitespace and called the <a href="@">info string</a>. If the [info string] comes
+whitespace and called the <a data-sourcepos="1854:27-1854:42" href="@">info string</a>. If the [info string] comes
after a backtick fence, it may not contain any backtick
characters. (The reason for this restriction is that otherwise
some inline code would be incorrectly interpreted as the
@@ -1988,8 +1988,8 @@ behavior described here.)</p>
a blank line either before or after.</p>
<p data-sourcepos="1882:1-1886:42" dir="auto">The content of a code fence is treated as literal text, not parsed
as inlines. The first word of the [info string] is typically used to
-specify the language of the code sample, and rendered in the <code>class</code>
-attribute of the <code>code</code> tag. However, this spec does not mandate any
+specify the language of the code sample, and rendered in the <code data-sourcepos="1884:63-1884:67">class</code>
+attribute of the <code data-sourcepos="1885:19-1885:22">code</code> tag. However, this spec does not mandate any
particular treatment of the [info string].</p>
<p data-sourcepos="1888:1-1888:40" dir="auto">Here is a simple example with backticks:</p>
<div>
@@ -2376,8 +2376,8 @@ without an intervening blank line:</p>
Although this spec doesn't mandate any particular treatment of
the info string, the first word is typically used to specify
the language of the code block. In HTML output, the language is
-normally indicated by adding a class to the <code>code</code> element consisting
-of <code>language-</code> followed by the language name.</p>
+normally indicated by adding a class to the <code data-sourcepos="2333:46-2333:49">code</code> element consisting
+of <code data-sourcepos="2334:5-2334:13">language-</code> followed by the language name.</p>
<div>
<div><a href="#example-112">Example 112</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -2472,75 +2472,75 @@ of <code>language-</code> followed by the language name.</p>
</div>
<h2 data-sourcepos="2444:1-2444:14" dir="auto">
<a id="user-content-html-blocks" class="anchor" href="#html-blocks" aria-hidden="true"></a>HTML blocks</h2>
-<p data-sourcepos="2446:1-2447:53" dir="auto">An <a href="@">HTML block</a> is a group of lines that is treated
+<p data-sourcepos="2446:1-2447:53" dir="auto">An <a data-sourcepos="2446:4-2446:18" href="@">HTML block</a> is a group of lines that is treated
as raw HTML (and will not be escaped in HTML output).</p>
<p data-sourcepos="2449:1-2457:50" dir="auto">There are seven kinds of [HTML block], which can be defined by their
start and end conditions. The block begins with a line that meets a
-<a href="@">start condition</a> (after up to three spaces optional indentation).
-It ends with the first subsequent line that meets a matching <a href="@">end
+<a data-sourcepos="2451:1-2451:20" href="@">start condition</a> (after up to three spaces optional indentation).
+It ends with the first subsequent line that meets a matching <a data-sourcepos="2453:62-2453:13" href="@">end
condition</a>, or the last line of the document, or the last line of
-the <a href="#container-blocks">container block</a> containing the current HTML
+the <a data-sourcepos="2454:5-2454:40" href="#container-blocks">container block</a> containing the current HTML
block, if no line is encountered that meets the [end condition]. If
the first line meets both the [start condition] and the [end
condition], the block will contain just that line.</p>
<ol data-sourcepos="2459:1-2500:0" dir="auto">
<li data-sourcepos="2459:1-2465:0">
-<p data-sourcepos="2459:5-2464:30"><strong>Start condition:</strong> line begins with the string <code>&lt;script</code>,
-<code>&lt;pre</code>, or <code>&lt;style</code> (case-insensitive), followed by whitespace,
-the string <code>&gt;</code>, or the end of the line.<br>
-<strong>End condition:</strong> line contains an end tag
-<code>&lt;/script&gt;</code>, <code>&lt;/pre&gt;</code>, or <code>&lt;/style&gt;</code> (case-insensitive; it
+<p data-sourcepos="2459:5-2464:30"><strong data-sourcepos="2459:5-2459:24">Start condition:</strong> line begins with the string <code data-sourcepos="2459:56-2459:62">&lt;script</code>,
+<code data-sourcepos="2460:6-2460:9">&lt;pre</code>, or <code data-sourcepos="2460:17-2460:22">&lt;style</code> (case-insensitive), followed by whitespace,
+the string <code data-sourcepos="2461:17-2461:17">&gt;</code>, or the end of the line.<br data-sourcepos="2461:44-2461:45">
+<strong data-sourcepos="2461:46-2461:63">End condition:</strong> line contains an end tag
+<code data-sourcepos="2462:6-2462:14">&lt;/script&gt;</code>, <code data-sourcepos="2462:19-2462:24">&lt;/pre&gt;</code>, or <code data-sourcepos="2462:32-2462:39">&lt;/style&gt;</code> (case-insensitive; it
need not match the start tag).</p>
</li>
<li data-sourcepos="2466:1-2468:0">
-<p data-sourcepos="2466:5-2467:51"><strong>Start condition:</strong> line begins with the string <code>&lt;!--</code>.<br>
-<strong>End condition:</strong> line contains the string <code>--&gt;</code>.</p>
+<p data-sourcepos="2466:5-2467:51"><strong data-sourcepos="2466:5-2466:24">Start condition:</strong> line begins with the string <code data-sourcepos="2466:55-2466:58">&lt;!--</code>.<br data-sourcepos="2466:61-2466:62">
+<strong data-sourcepos="2466:63-2466:80">End condition:</strong> line contains the string <code data-sourcepos="2466:109-2466:111">--&gt;</code>.</p>
</li>
<li data-sourcepos="2469:1-2471:0">
-<p data-sourcepos="2469:5-2470:49"><strong>Start condition:</strong> line begins with the string <code>&lt;?</code>.<br>
-<strong>End condition:</strong> line contains the string <code>?&gt;</code>.</p>
+<p data-sourcepos="2469:5-2470:49"><strong data-sourcepos="2469:5-2469:24">Start condition:</strong> line begins with the string <code data-sourcepos="2469:55-2469:56">&lt;?</code>.<br data-sourcepos="2469:59-2469:60">
+<strong data-sourcepos="2469:61-2469:78">End condition:</strong> line contains the string <code data-sourcepos="2469:106-2469:107">?&gt;</code>.</p>
</li>
<li data-sourcepos="2472:1-2475:0">
-<p data-sourcepos="2472:5-2474:51"><strong>Start condition:</strong> line begins with the string <code>&lt;!</code>
-followed by an uppercase ASCII letter.<br>
-<strong>End condition:</strong> line contains the character <code>&gt;</code>.</p>
+<p data-sourcepos="2472:5-2474:51"><strong data-sourcepos="2472:5-2472:24">Start condition:</strong> line begins with the string <code data-sourcepos="2472:55-2472:56">&lt;!</code>
+followed by an uppercase ASCII letter.<br data-sourcepos="2473:43-2473:44">
+<strong data-sourcepos="2473:45-2473:62">End condition:</strong> line contains the character <code data-sourcepos="2473:93-2473:93">&gt;</code>.</p>
</li>
<li data-sourcepos="2476:1-2479:0">
-<p data-sourcepos="2476:5-2478:50"><strong>Start condition:</strong> line begins with the string
-<code>&lt;![CDATA[</code>.<br>
-<strong>End condition:</strong> line contains the string <code>]]&gt;</code>.</p>
+<p data-sourcepos="2476:5-2478:50"><strong data-sourcepos="2476:5-2476:24">Start condition:</strong> line begins with the string
+<code data-sourcepos="2477:6-2477:14">&lt;![CDATA[</code>.<br data-sourcepos="2477:17-2477:18">
+<strong data-sourcepos="2477:19-2477:36">End condition:</strong> line contains the string <code data-sourcepos="2477:64-2477:66">]]&gt;</code>.</p>
</li>
<li data-sourcepos="2480:1-2494:0">
-<p data-sourcepos="2480:5-2493:54"><strong>Start condition:</strong> line begins the string <code>&lt;</code> or <code>&lt;/</code>
-followed by one of the strings (case-insensitive) <code>address</code>,
-<code>article</code>, <code>aside</code>, <code>base</code>, <code>basefont</code>, <code>blockquote</code>, <code>body</code>,
-<code>caption</code>, <code>center</code>, <code>col</code>, <code>colgroup</code>, <code>dd</code>, <code>details</code>, <code>dialog</code>,
-<code>dir</code>, <code>div</code>, <code>dl</code>, <code>dt</code>, <code>fieldset</code>, <code>figcaption</code>, <code>figure</code>,
-<code>footer</code>, <code>form</code>, <code>frame</code>, <code>frameset</code>,
-<code>h1</code>, <code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>, <code>h6</code>, <code>head</code>, <code>header</code>, <code>hr</code>,
-<code>html</code>, <code>iframe</code>, <code>legend</code>, <code>li</code>, <code>link</code>, <code>main</code>, <code>menu</code>, <code>menuitem</code>,
-<code>nav</code>, <code>noframes</code>, <code>ol</code>, <code>optgroup</code>, <code>option</code>, <code>p</code>, <code>param</code>,
-<code>section</code>, <code>summary</code>, <code>table</code>, <code>tbody</code>, <code>td</code>,
-<code>tfoot</code>, <code>th</code>, <code>thead</code>, <code>title</code>, <code>tr</code>, <code>track</code>, <code>ul</code>, followed
-by [whitespace], the end of the line, the string <code>&gt;</code>, or
-the string <code>/&gt;</code>.<br>
-<strong>End condition:</strong> line is followed by a [blank line].</p>
+<p data-sourcepos="2480:5-2493:54"><strong data-sourcepos="2480:5-2480:24">Start condition:</strong> line begins the string <code data-sourcepos="2480:50-2480:50">&lt;</code> or <code data-sourcepos="2480:57-2480:58">&lt;/</code>
+followed by one of the strings (case-insensitive) <code data-sourcepos="2481:56-2481:62">address</code>,
+<code data-sourcepos="2482:6-2482:12">article</code>, <code data-sourcepos="2482:17-2482:21">aside</code>, <code data-sourcepos="2482:26-2482:29">base</code>, <code data-sourcepos="2482:34-2482:41">basefont</code>, <code data-sourcepos="2482:46-2482:55">blockquote</code>, <code data-sourcepos="2482:60-2482:63">body</code>,
+<code data-sourcepos="2483:6-2483:12">caption</code>, <code data-sourcepos="2483:17-2483:22">center</code>, <code data-sourcepos="2483:27-2483:29">col</code>, <code data-sourcepos="2483:34-2483:41">colgroup</code>, <code data-sourcepos="2483:46-2483:47">dd</code>, <code data-sourcepos="2483:52-2483:58">details</code>, <code data-sourcepos="2483:63-2483:68">dialog</code>,
+<code data-sourcepos="2484:6-2484:8">dir</code>, <code data-sourcepos="2484:13-2484:15">div</code>, <code data-sourcepos="2484:20-2484:21">dl</code>, <code data-sourcepos="2484:26-2484:27">dt</code>, <code data-sourcepos="2484:32-2484:39">fieldset</code>, <code data-sourcepos="2484:44-2484:53">figcaption</code>, <code data-sourcepos="2484:58-2484:63">figure</code>,
+<code data-sourcepos="2485:6-2485:11">footer</code>, <code data-sourcepos="2485:16-2485:19">form</code>, <code data-sourcepos="2485:24-2485:28">frame</code>, <code data-sourcepos="2485:33-2485:40">frameset</code>,
+<code data-sourcepos="2486:6-2486:7">h1</code>, <code data-sourcepos="2486:12-2486:13">h2</code>, <code data-sourcepos="2486:18-2486:19">h3</code>, <code data-sourcepos="2486:24-2486:25">h4</code>, <code data-sourcepos="2486:30-2486:31">h5</code>, <code data-sourcepos="2486:36-2486:37">h6</code>, <code data-sourcepos="2486:42-2486:45">head</code>, <code data-sourcepos="2486:50-2486:55">header</code>, <code data-sourcepos="2486:60-2486:61">hr</code>,
+<code data-sourcepos="2487:6-2487:9">html</code>, <code data-sourcepos="2487:14-2487:19">iframe</code>, <code data-sourcepos="2487:24-2487:29">legend</code>, <code data-sourcepos="2487:34-2487:35">li</code>, <code data-sourcepos="2487:40-2487:43">link</code>, <code data-sourcepos="2487:48-2487:51">main</code>, <code data-sourcepos="2487:56-2487:59">menu</code>, <code data-sourcepos="2487:64-2487:71">menuitem</code>,
+<code data-sourcepos="2488:6-2488:8">nav</code>, <code data-sourcepos="2488:13-2488:20">noframes</code>, <code data-sourcepos="2488:25-2488:26">ol</code>, <code data-sourcepos="2488:31-2488:38">optgroup</code>, <code data-sourcepos="2488:43-2488:48">option</code>, <code data-sourcepos="2488:53-2488:53">p</code>, <code data-sourcepos="2488:58-2488:62">param</code>,
+<code data-sourcepos="2489:6-2489:12">section</code>, <code data-sourcepos="2489:17-2489:23">summary</code>, <code data-sourcepos="2489:28-2489:32">table</code>, <code data-sourcepos="2489:37-2489:41">tbody</code>, <code data-sourcepos="2489:46-2489:47">td</code>,
+<code data-sourcepos="2490:6-2490:10">tfoot</code>, <code data-sourcepos="2490:15-2490:16">th</code>, <code data-sourcepos="2490:21-2490:25">thead</code>, <code data-sourcepos="2490:30-2490:34">title</code>, <code data-sourcepos="2490:39-2490:40">tr</code>, <code data-sourcepos="2490:45-2490:49">track</code>, <code data-sourcepos="2490:54-2490:55">ul</code>, followed
+by [whitespace], the end of the line, the string <code data-sourcepos="2491:55-2491:55">&gt;</code>, or
+the string <code data-sourcepos="2492:17-2492:18">/&gt;</code>.<br data-sourcepos="2492:21-2492:22">
+<strong data-sourcepos="2492:23-2492:40">End condition:</strong> line is followed by a [blank line].</p>
</li>
<li data-sourcepos="2495:1-2500:0">
-<p data-sourcepos="2495:5-2499:54"><strong>Start condition:</strong> line begins with a complete [open tag]
-(with any [tag name] other than <code>script</code>,
-<code>style</code>, or <code>pre</code>) or a complete [closing tag],
-followed only by [whitespace] or the end of the line.<br>
-<strong>End condition:</strong> line is followed by a [blank line].</p>
+<p data-sourcepos="2495:5-2499:54"><strong data-sourcepos="2495:5-2495:24">Start condition:</strong> line begins with a complete [open tag]
+(with any [tag name] other than <code data-sourcepos="2496:38-2496:43">script</code>,
+<code data-sourcepos="2497:6-2497:10">style</code>, or <code data-sourcepos="2497:18-2497:20">pre</code>) or a complete [closing tag],
+followed only by [whitespace] or the end of the line.<br data-sourcepos="2498:58-2498:59">
+<strong data-sourcepos="2498:60-2498:77">End condition:</strong> line is followed by a [blank line].</p>
</li>
</ol>
<p data-sourcepos="2501:1-2506:19" dir="auto">HTML blocks continue until they are closed by their appropriate
-[end condition], or the last line of the document or other <a href="#container-blocks">container
-block</a>. This means any HTML <strong>within an HTML
+[end condition], or the last line of the document or other <a data-sourcepos="2503:60-2503:25" href="#container-blocks">container
+block</a>. This means any HTML <strong data-sourcepos="2503:49-2504:7">within an HTML
block</strong> that might otherwise be recognised as a start condition will
be ignored by the parser and passed through as-is, without changing
the parser's state.</p>
-<p data-sourcepos="2508:1-2510:51" dir="auto">For instance, <code>&lt;pre&gt;</code> within a HTML block started by <code>&lt;table&gt;</code> will not affect
+<p data-sourcepos="2508:1-2510:51" dir="auto">For instance, <code data-sourcepos="2508:16-2508:20">&lt;pre&gt;</code> within a HTML block started by <code data-sourcepos="2508:55-2508:61">&lt;table&gt;</code> will not affect
the parser state; as the HTML block was started in by start condition 6, it
will end at any blank line. This can be surprising:</p>
<div>
@@ -2565,9 +2565,9 @@ will end at any blank line. This can be surprising:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="2535:1-2537:55" dir="auto">In this case, the HTML block is terminated by the newline — the <code>**Hello**</code>
+<p data-sourcepos="2535:1-2537:55" dir="auto">In this case, the HTML block is terminated by the newline — the <code data-sourcepos="2535:68-2535:76">**Hello**</code>
text remains verbatim — and regular parsing resumes, with a paragraph,
-emphasised <code>world</code> and inline and block HTML following.</p>
+emphasised <code data-sourcepos="2537:13-2537:17">world</code> and inline and block HTML following.</p>
<p data-sourcepos="2539:1-2542:65" dir="auto">All types of [HTML blocks] except type 7 may interrupt
a paragraph. Blocks of type 7 may not interrupt a paragraph.
(This restriction is intended to prevent unwanted interpretation
@@ -2789,7 +2789,7 @@ line or the end of the document is reached:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="2796:1-2798:51" dir="auto">To start an [HTML block] with a tag that is <em>not</em> in the
+<p data-sourcepos="2796:1-2798:51" dir="auto">To start an [HTML block] with a tag that is <em data-sourcepos="2796:45-2796:49">not</em> in the
list of block-level tags in (6), you must put the tag by
itself on the first line (and it must be complete):</p>
<div>
@@ -2853,9 +2853,9 @@ itself on the first line (and it must be complete):</p>
</div>
<p data-sourcepos="2868:1-2872:59" dir="auto">These rules are designed to allow us to work with tags that
can function as either block-level or inline-level tags.
-The <code>&lt;del&gt;</code> tag is a nice example. We can surround content with
-<code>&lt;del&gt;</code> tags in three different ways. In this case, we get a raw
-HTML block, because the <code>&lt;del&gt;</code> tag is on a line by itself:</p>
+The <code data-sourcepos="2870:6-2870:10">&lt;del&gt;</code> tag is a nice example. We can surround content with
+<code data-sourcepos="2871:2-2871:6">&lt;del&gt;</code> tags in three different ways. In this case, we get a raw
+HTML block, because the <code data-sourcepos="2872:26-2872:30">&lt;del&gt;</code> tag is on a line by itself:</p>
<div>
<div><a href="#example-136">Example 136</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -2872,7 +2872,7 @@ HTML block, because the <code>&lt;del&gt;</code> tag is on a line by itself:</p>
</div>
</div>
<p data-sourcepos="2891:1-2893:54" dir="auto">In this case, we get a raw HTML block that just includes
-the <code>&lt;del&gt;</code> tag (because it ends with the following blank
+the <code data-sourcepos="2892:6-2892:10">&lt;del&gt;</code> tag (because it ends with the following blank
line). So the contents get interpreted as CommonMark:</p>
<div>
<div><a href="#example-137">Example 137</a></div>
@@ -2891,8 +2891,8 @@ line). So the contents get interpreted as CommonMark:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="2914:1-2917:29" dir="auto">Finally, in this case, the <code>&lt;del&gt;</code> tags are interpreted
-as [raw HTML] <em>inside</em> the CommonMark paragraph. (Because
+<p data-sourcepos="2914:1-2917:29" dir="auto">Finally, in this case, the <code data-sourcepos="2914:29-2914:33">&lt;del&gt;</code> tags are interpreted
+as [raw HTML] <em data-sourcepos="2915:15-2915:22">inside</em> the CommonMark paragraph. (Because
the tag is not on a line by itself, we get inline HTML
rather than an [HTML block].)</p>
<div>
@@ -2907,7 +2907,7 @@ rather than an [HTML block].)</p>
</div>
</div>
<p data-sourcepos="2932:1-2937:50" dir="auto">HTML tags designed to contain literal content
-(<code>script</code>, <code>style</code>, <code>pre</code>), comments, processing instructions,
+(<code data-sourcepos="2933:3-2933:8">script</code>, <code data-sourcepos="2933:13-2933:17">style</code>, <code data-sourcepos="2933:22-2933:24">pre</code>), comments, processing instructions,
and declarations are treated somewhat differently.
Instead of ending at the first blank line, these blocks
end at the first line containing a corresponding end tag.
@@ -3261,7 +3261,7 @@ block]:</p>
specification, which says:</p>
<blockquote data-sourcepos="3338:1-3341:51" dir="auto">
<p data-sourcepos="3338:3-3341:51">The only restrictions are that block-level HTML elements —
-e.g. <code>&lt;div&gt;</code>, <code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. — must be separated from
+e.g. <code data-sourcepos="3339:9-3339:13">&lt;div&gt;</code>, <code data-sourcepos="3339:18-3339:24">&lt;table&gt;</code>, <code data-sourcepos="3339:29-3339:33">&lt;pre&gt;</code>, <code data-sourcepos="3339:38-3339:40">&lt;p&gt;</code>, etc. — must be separated from
surrounding content by blank lines, and the start and end tags of the
block should not be indented with tabs or spaces.</p>
</blockquote>
@@ -3318,12 +3318,12 @@ simply separate the Markdown from the HTML using blank lines:</p>
</div>
<p data-sourcepos="3401:1-3405:22" dir="auto">Some Markdown implementations have adopted a convention of
interpreting content inside tags as text if the open tag has
-the attribute <code>markdown=1</code>. The rule given above seems a simpler and
+the attribute <code data-sourcepos="3403:16-3403:25">markdown=1</code>. The rule given above seems a simpler and
more elegant way of achieving the same expressive power, which is also
much simpler to parse.</p>
<p data-sourcepos="3407:1-3410:59" dir="auto">The main potential drawback is that one can no longer paste HTML
blocks into Markdown documents with 100% reliability. However,
-<em>in most cases</em> this will work fine, because the blank lines in
+<em data-sourcepos="3409:1-3409:15">in most cases</em> this will work fine, because the blank lines in
HTML are usually followed by HTML block tags. For example:</p>
<div>
<div><a href="#example-159">Example 159</a></div>
@@ -3353,7 +3353,7 @@ HTML are usually followed by HTML block tags. For example:</p>
</div>
</div>
<p data-sourcepos="3441:1-3443:23" dir="auto">There are problems, however, if the inner tags are indented
-<em>and</em> separated by spaces, as then they will be interpreted as
+<em data-sourcepos="3442:1-3442:5">and</em> separated by spaces, as then they will be interpreted as
an indented code block:</p>
<div>
<div><a href="#example-160">Example 160</a></div>
@@ -3384,14 +3384,14 @@ an indented code block:</p>
</div>
</div>
<p data-sourcepos="3475:1-3478:26" dir="auto">Fortunately, blank lines are usually not necessary and can be
-deleted. The exception is inside <code>&lt;pre&gt;</code> tags, but as described
-[above][HTML blocks], raw HTML blocks starting with <code>&lt;pre&gt;</code>
-<em>can</em> contain blank lines.</p>
+deleted. The exception is inside <code data-sourcepos="3476:36-3476:40">&lt;pre&gt;</code> tags, but as described
+[above][HTML blocks], raw HTML blocks starting with <code data-sourcepos="3477:54-3477:58">&lt;pre&gt;</code>
+<em data-sourcepos="3478:1-3478:5">can</em> contain blank lines.</p>
<h2 data-sourcepos="3480:1-3480:29" dir="auto">
<a id="user-content-link-reference-definitions" class="anchor" href="#link-reference-definitions" aria-hidden="true"></a>Link reference definitions</h2>
-<p data-sourcepos="3482:1-3490:61" dir="auto">A <a href="@">link reference definition</a>
+<p data-sourcepos="3482:1-3490:61" dir="auto">A <a data-sourcepos="3482:3-3482:32" href="@">link reference definition</a>
consists of a [link label], indented up to three spaces, followed
-by a colon (<code>:</code>), optional [whitespace] (including up to one
+by a colon (<code data-sourcepos="3484:14-3484:14">:</code>), optional [whitespace] (including up to one
[line ending]), a [link destination],
optional [whitespace] (including up to one
[line ending]), and an optional [link
@@ -3848,7 +3848,7 @@ no visible content:</p>
<h2 data-sourcepos="4011:1-4011:13" dir="auto">
<a id="user-content-paragraphs" class="anchor" href="#paragraphs" aria-hidden="true"></a>Paragraphs</h2>
<p data-sourcepos="4013:1-4018:13" dir="auto">A sequence of non-blank lines that cannot be interpreted as other
-kinds of blocks forms a <a href="@">paragraph</a>.
+kinds of blocks forms a <a data-sourcepos="4014:25-4014:38" href="@">paragraph</a>.
The contents of the paragraph are the result of parsing the
paragraph's raw content as inlines. The paragraph's raw content
is formed by concatenating the lines and removing initial and final
@@ -4007,18 +4007,18 @@ is [tight] or [loose].</p>
<div>
<h2 data-sourcepos="4199:1-4199:21">
<a id="user-content-tables-extension" class="anchor" href="#tables-extension" aria-hidden="true"></a>Tables (extension)</h2>
-<p data-sourcepos="4201:1-4202:10">GFM enables the <code>table</code> extension, where an additional leaf block type is
+<p data-sourcepos="4201:1-4202:10">GFM enables the <code data-sourcepos="4201:18-4201:22">table</code> extension, where an additional leaf block type is
available.</p>
-<p data-sourcepos="4204:1-4206:23">A <a href="@">table</a> is an arrangement of data with rows and columns, consisting of a
+<p data-sourcepos="4204:1-4206:23">A <a data-sourcepos="4204:3-4204:12" href="@">table</a> is an arrangement of data with rows and columns, consisting of a
single header row, a [delimiter row] separating the header from the data, and
zero or more data rows.</p>
<p data-sourcepos="4208:1-4212:23">Each row consists of cells containing arbitrary text, in which [inlines] are
-parsed, separated by pipes (<code>|</code>). A leading and trailing pipe is also
+parsed, separated by pipes (<code data-sourcepos="4209:30-4209:30">|</code>). A leading and trailing pipe is also
recommended for clarity of reading, and if there's otherwise parsing ambiguity.
Spaces between pipes and cell content are trimmed. Block-level elements cannot
be inserted in a table.</p>
-<p data-sourcepos="4214:1-4216:40">The <a href="@">delimiter row</a> consists of cells whose only content are hyphens (<code>-</code>),
-and optionally, a leading or trailing colon (<code>:</code>), or both, to indicate left,
+<p data-sourcepos="4214:1-4216:40">The <a data-sourcepos="4214:5-4214:22" href="@">delimiter row</a> consists of cells whose only content are hyphens (<code data-sourcepos="4214:75-4214:75">-</code>),
+and optionally, a leading or trailing colon (<code data-sourcepos="4215:47-4215:47">:</code>), or both, to indicate left,
right, or center alignment respectively.</p>
<div>
<div><a href="#example-198">Example 198</a></div>
@@ -4221,7 +4221,7 @@ cells are inserted. If there are greater, the excess is ignored:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="4431:1-4431:75">If there are no rows in the body, no <code>&lt;tbody&gt;</code> is generated in HTML output:</p>
+<p data-sourcepos="4431:1-4431:75">If there are no rows in the body, no <code data-sourcepos="4431:39-4431:45">&lt;tbody&gt;</code> is generated in HTML output:</p>
<div>
<div><a href="#example-205">Example 205</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -4244,7 +4244,7 @@ cells are inserted. If there are greater, the excess is ignored:</p>
</div>
<h1 data-sourcepos="4455:1-4455:18" dir="auto">
<a id="user-content-container-blocks" class="anchor" href="#container-blocks" aria-hidden="true"></a>Container blocks</h1>
-<p data-sourcepos="4457:1-4460:45" dir="auto">A <a href="#container-blocks">container block</a> is a block that has other
+<p data-sourcepos="4457:1-4460:45" dir="auto">A <a data-sourcepos="4457:3-4457:38" href="#container-blocks">container block</a> is a block that has other
blocks as its contents. There are two basic kinds of container blocks:
[block quotes] and [list items].
[Lists] are meta-containers for [list items].</p>
@@ -4256,40 +4256,40 @@ transforming X in such-and-such a way is a container of type Y
with these blocks as its content.</p>
</blockquote>
<p data-sourcepos="4469:1-4473:52" dir="auto">So, we explain what counts as a block quote or list item by explaining
-how these can be <em>generated</em> from their contents. This should suffice
-to define the syntax, although it does not give a recipe for <em>parsing</em>
+how these can be <em data-sourcepos="4470:18-4470:28">generated</em> from their contents. This should suffice
+to define the syntax, although it does not give a recipe for <em data-sourcepos="4471:62-4471:70">parsing</em>
these constructions. (A recipe is provided below in the section entitled
-<a href="#appendix-a-parsing-strategy">A parsing strategy</a>.)</p>
+<a data-sourcepos="4473:1-4473:50" href="#appendix-a-parsing-strategy">A parsing strategy</a>.)</p>
<h2 data-sourcepos="4475:1-4475:15" dir="auto">
<a id="user-content-block-quotes" class="anchor" href="#block-quotes" aria-hidden="true"></a>Block quotes</h2>
-<p data-sourcepos="4477:1-4479:78" dir="auto">A <a href="@">block quote marker</a>
-consists of 0-3 spaces of initial indent, plus (a) the character <code>&gt;</code> together
-with a following space, or (b) a single character <code>&gt;</code> not followed by a space.</p>
+<p data-sourcepos="4477:1-4479:78" dir="auto">A <a data-sourcepos="4477:3-4477:25" href="@">block quote marker</a>
+consists of 0-3 spaces of initial indent, plus (a) the character <code data-sourcepos="4478:67-4478:67">&gt;</code> together
+with a following space, or (b) a single character <code data-sourcepos="4479:52-4479:52">&gt;</code> not followed by a space.</p>
<p data-sourcepos="4481:1-4481:42" dir="auto">The following rules define [block quotes]:</p>
<ol data-sourcepos="4483:1-4500:0" dir="auto">
<li data-sourcepos="4483:1-4487:0">
-<p data-sourcepos="4483:5-4486:54"><strong>Basic case.</strong> If a string of lines <em>Ls</em> constitute a sequence
-of blocks <em>Bs</em>, then the result of prepending a [block quote
-marker] to the beginning of each line in <em>Ls</em>
-is a <a href="#block-quotes">block quote</a> containing <em>Bs</em>.</p>
+<p data-sourcepos="4483:5-4486:54"><strong data-sourcepos="4483:5-4483:19">Basic case.</strong> If a string of lines <em data-sourcepos="4483:43-4483:46">Ls</em> constitute a sequence
+of blocks <em data-sourcepos="4484:15-4484:18">Bs</em>, then the result of prepending a [block quote
+marker] to the beginning of each line in <em data-sourcepos="4485:46-4485:49">Ls</em>
+is a <a data-sourcepos="4486:10-4486:37" href="#block-quotes">block quote</a> containing <em data-sourcepos="4486:50-4486:53">Bs</em>.</p>
</li>
<li data-sourcepos="4488:1-4497:0">
-<p data-sourcepos="4488:5-4496:48"><strong>Laziness.</strong> If a string of lines <em>Ls</em> constitute a <a href="#block-quotes">block
-quote</a> with contents <em>Bs</em>, then the result of deleting
+<p data-sourcepos="4488:5-4496:48"><strong data-sourcepos="4488:5-4488:17">Laziness.</strong> If a string of lines <em data-sourcepos="4488:41-4488:44">Ls</em> constitute a <a data-sourcepos="4489:59-4489:25" href="#block-quotes">block
+quote</a> with contents <em data-sourcepos="4489:41-4489:44">Bs</em>, then the result of deleting
the initial [block quote marker] from one or
more lines in which the next [non-whitespace character] after the [block
quote marker] is [paragraph continuation
-text] is a block quote with <em>Bs</em> as its content.
-<a href="@">Paragraph continuation text</a> is text
+text] is a block quote with <em data-sourcepos="4493:33-4493:36">Bs</em> as its content.
+<a data-sourcepos="4494:5-4494:36" href="@">Paragraph continuation text</a> is text
that will be parsed as part of the content of a paragraph, but does
not occur at the beginning of the paragraph.</p>
</li>
<li data-sourcepos="4498:1-4500:0">
-<p data-sourcepos="4498:5-4499:65"><strong>Consecutiveness.</strong> A document cannot contain two [block
+<p data-sourcepos="4498:5-4499:65"><strong data-sourcepos="4498:5-4498:24">Consecutiveness.</strong> A document cannot contain two [block
quotes] in a row unless there is a [blank line] between them.</p>
</li>
</ol>
-<p data-sourcepos="4501:1-4501:54" dir="auto">Nothing else counts as a <a href="#block-quotes">block quote</a>.</p>
+<p data-sourcepos="4501:1-4501:54" dir="auto">Nothing else counts as a <a data-sourcepos="4501:26-4501:53" href="#block-quotes">block quote</a>.</p>
<p data-sourcepos="4503:1-4503:25" dir="auto">Here is a simple example:</p>
<div>
<div><a href="#example-206">Example 206</a></div>
@@ -4308,7 +4308,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="4524:1-4524:51" dir="auto">The spaces after the <code>&gt;</code> characters can be omitted:</p>
+<p data-sourcepos="4524:1-4524:51" dir="auto">The spaces after the <code data-sourcepos="4524:23-4524:23">&gt;</code> characters can be omitted:</p>
<div>
<div><a href="#example-207">Example 207</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -4326,7 +4326,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="4545:1-4545:46" dir="auto">The <code>&gt;</code> characters can be indented 1-3 spaces:</p>
+<p data-sourcepos="4545:1-4545:46" dir="auto">The <code data-sourcepos="4545:6-4545:6">&gt;</code> characters can be indented 1-3 spaces:</p>
<div>
<div><a href="#example-208">Example 208</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -4361,7 +4361,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="4586:1-4587:30" dir="auto">The Laziness clause allows us to omit the <code>&gt;</code> before
+<p data-sourcepos="4586:1-4587:30" dir="auto">The Laziness clause allows us to omit the <code data-sourcepos="4586:44-4586:44">&gt;</code> before
[paragraph continuation text]:</p>
<div>
<div><a href="#example-210">Example 210</a></div>
@@ -4401,7 +4401,7 @@ continuation lines:</p>
</div>
<p data-sourcepos="4630:1-4632:61" dir="auto">Laziness only applies to lines that would have been continuations of
paragraphs had they been prepended with [block quote markers].
-For example, the <code>&gt; </code> cannot be omitted in the second line of</p>
+For example, the <code data-sourcepos="4632:19-4632:20">&gt; </code> cannot be omitted in the second line of</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="4634:1-4637:3" data-canonical-lang="markdown" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; foo</span></span>
<span id="LC2" class="line" lang="markdown"><span class="gt">&gt; ---</span></span></code></pre>
@@ -4423,7 +4423,7 @@ For example, the <code>&gt; </code> cannot be omitted in the second line of</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="4658:1-4658:52" dir="auto">Similarly, if we omit the <code>&gt; </code> in the second line of</p>
+<p data-sourcepos="4658:1-4658:52" dir="auto">Similarly, if we omit the <code data-sourcepos="4658:28-4658:29">&gt; </code> in the second line of</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="4660:1-4663:3" data-canonical-lang="markdown" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; - foo</span></span>
<span id="LC2" class="line" lang="markdown"><span class="gt">&gt; - bar</span></span></code></pre>
@@ -4449,7 +4449,7 @@ For example, the <code>&gt; </code> cannot be omitted in the second line of</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="4688:1-4689:53" dir="auto">For the same reason, we can't omit the <code>&gt; </code> in front of
+<p data-sourcepos="4688:1-4689:53" dir="auto">For the same reason, we can't omit the <code data-sourcepos="4688:41-4688:42">&gt; </code> in front of
subsequent lines of an indented or fenced code block:</p>
<div>
<div><a href="#example-214">Example 214</a></div>
@@ -4508,7 +4508,7 @@ continuation line]:</p>
<span id="LC2" class="line" lang="markdown"><span class="gt">&gt; - bar</span></span></code></pre>
<copy-code></copy-code>
</div>
-<p data-sourcepos="4756:1-4758:61" dir="auto">the <code>- bar</code> is indented too far to start a list, and can't
+<p data-sourcepos="4756:1-4758:61" dir="auto">the <code data-sourcepos="4756:6-4756:10">- bar</code> is indented too far to start a list, and can't
be an indented code block because indented code blocks cannot
interrupt paragraphs, so it is [paragraph continuation text].</p>
<p data-sourcepos="4760:1-4760:27" dir="auto">A block quote can be empty:</p>
@@ -4574,7 +4574,7 @@ interrupt paragraphs, so it is [paragraph continuation text].</p>
</div>
</div>
<p data-sourcepos="4833:1-4836:44" dir="auto">(Most current Markdown implementations, including John Gruber's
-original <code>Markdown.pl</code>, will parse this example as a single block quote
+original <code data-sourcepos="4834:11-4834:21">Markdown.pl</code>, will parse this example as a single block quote
with two paragraphs. But it seems better to allow the author to decide
whether two block quotes or one are wanted.)</p>
<p data-sourcepos="4838:1-4839:28" dir="auto">Consecutiveness means that if we put these block quotes together,
@@ -4698,7 +4698,7 @@ a block quote and a following paragraph:</p>
</div>
</div>
<p data-sourcepos="4977:1-4979:19" dir="auto">It is a consequence of the Laziness rule that any number
-of initial <code>&gt;</code>s may be omitted on a continuation line of a
+of initial <code data-sourcepos="4978:13-4978:13">&gt;</code>s may be omitted on a continuation line of a
nested block quote:</p>
<div>
<div><a href="#example-228">Example 228</a></div>
@@ -4742,8 +4742,8 @@ nested block quote:</p>
</div>
<p data-sourcepos="5025:1-5028:8" dir="auto">When including an indented code block in a block quote,
remember that the [block quote marker] includes
-both the <code>&gt;</code> and a following space. So <em>five spaces</em> are needed after
-the <code>&gt;</code>:</p>
+both the <code data-sourcepos="5027:11-5027:11">&gt;</code> and a following space. So <em data-sourcepos="5027:41-5027:53">five spaces</em> are needed after
+the <code data-sourcepos="5028:6-5028:6">&gt;</code>:</p>
<div>
<div><a href="#example-230">Example 230</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -4765,24 +4765,24 @@ the <code>&gt;</code>:</p>
</div>
<h2 data-sourcepos="5052:1-5052:13" dir="auto">
<a id="user-content-list-items" class="anchor" href="#list-items" aria-hidden="true"></a>List items</h2>
-<p data-sourcepos="5054:1-5055:49" dir="auto">A <a href="@">list marker</a> is a
+<p data-sourcepos="5054:1-5055:49" dir="auto">A <a data-sourcepos="5054:3-5054:18" href="@">list marker</a> is a
[bullet list marker] or an [ordered list marker].</p>
-<p data-sourcepos="5057:1-5058:32" dir="auto">A <a href="@">bullet list marker</a>
-is a <code>-</code>, <code>+</code>, or <code>*</code> character.</p>
-<p data-sourcepos="5060:1-5064:18" dir="auto">An <a href="@">ordered list marker</a>
-is a sequence of 1--9 arabic digits (<code>0-9</code>), followed by either a
-<code>.</code> character or a <code>)</code> character. (The reason for the length
+<p data-sourcepos="5057:1-5058:32" dir="auto">A <a data-sourcepos="5057:3-5057:25" href="@">bullet list marker</a>
+is a <code data-sourcepos="5058:7-5058:7">-</code>, <code data-sourcepos="5058:12-5058:12">+</code>, or <code data-sourcepos="5058:20-5058:20">*</code> character.</p>
+<p data-sourcepos="5060:1-5064:18" dir="auto">An <a data-sourcepos="5060:4-5060:27" href="@">ordered list marker</a>
+is a sequence of 1--9 arabic digits (<code data-sourcepos="5061:39-5061:41">0-9</code>), followed by either a
+<code data-sourcepos="5062:2-5062:2">.</code> character or a <code data-sourcepos="5062:21-5062:21">)</code> character. (The reason for the length
limit is that with 10 digits we start seeing integer overflows
in some browsers.)</p>
<p data-sourcepos="5066:1-5066:40" dir="auto">The following rules define [list items]:</p>
<ol data-sourcepos="5068:1-5087:0" dir="auto">
<li data-sourcepos="5068:1-5087:0">
-<p data-sourcepos="5068:5-5076:45"><strong>Basic case.</strong> If a sequence of lines <em>Ls</em> constitute a sequence of
-blocks <em>Bs</em> starting with a [non-whitespace character], and <em>M</em> is a
-list marker of width <em>W</em> followed by 1 ≤ <em>N</em> ≤ 4 spaces, then the result
-of prepending <em>M</em> and the following spaces to the first line of
-<em>Ls</em>, and indenting subsequent lines of <em>Ls</em> by <em>W + N</em> spaces, is a
-list item with <em>Bs</em> as its contents. The type of the list item
+<p data-sourcepos="5068:5-5076:45"><strong data-sourcepos="5068:5-5068:19">Basic case.</strong> If a sequence of lines <em data-sourcepos="5068:45-5068:48">Ls</em> constitute a sequence of
+blocks <em data-sourcepos="5069:12-5069:15">Bs</em> starting with a [non-whitespace character], and <em data-sourcepos="5069:65-5069:67">M</em> is a
+list marker of width <em data-sourcepos="5070:26-5070:28">W</em> followed by 1 ≤ <em data-sourcepos="5070:48-5070:50">N</em> ≤ 4 spaces, then the result
+of prepending <em data-sourcepos="5071:19-5071:21">M</em> and the following spaces to the first line of
+<em data-sourcepos="5072:5-5072:8">Ls</em>, and indenting subsequent lines of <em data-sourcepos="5072:45-5072:48">Ls</em> by <em data-sourcepos="5072:53-5072:59">W + N</em> spaces, is a
+list item with <em data-sourcepos="5073:20-5073:23">Bs</em> as its contents. The type of the list item
(bullet or ordered) is determined by the type of its list marker.
If the list item is ordered, then it is also assigned a start
number, based on the ordered list marker.</p>
@@ -4791,14 +4791,14 @@ number, based on the ordered list marker.</p>
<li data-sourcepos="5080:5-5084:57">When the first list item in a [list] interrupts
a paragraph---that is, when it starts on a line that would
otherwise count as [paragraph continuation text]---then (a)
-the lines <em>Ls</em> must not begin with a blank line, and (b) if
+the lines <em data-sourcepos="5083:18-5083:21">Ls</em> must not begin with a blank line, and (b) if
the list item is ordered, the start number must be 1.</li>
<li data-sourcepos="5085:5-5087:0">If any line is a [thematic break][thematic breaks] then
that line is not a list item.</li>
</ol>
</li>
</ol>
-<p data-sourcepos="5088:1-5088:34" dir="auto">For example, let <em>Ls</em> be the lines</p>
+<p data-sourcepos="5088:1-5088:34" dir="auto">For example, let <em data-sourcepos="5088:18-5088:21">Ls</em> be the lines</p>
<div>
<div><a href="#example-231">Example 231</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -4821,9 +4821,9 @@ that line is not a list item.</li>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="5114:1-5116:30" dir="auto">And let <em>M</em> be the marker <code>1.</code>, and <em>N</em> = 2. Then rule #1 says
+<p data-sourcepos="5114:1-5116:30" dir="auto">And let <em data-sourcepos="5114:9-5114:11">M</em> be the marker <code data-sourcepos="5114:28-5114:29">1.</code>, and <em data-sourcepos="5114:37-5114:39">N</em> = 2. Then rule #1 says
that the following is an ordered list item with start number 1,
-and the same contents as <em>Ls</em>:</p>
+and the same contents as <em data-sourcepos="5116:26-5116:29">Ls</em>:</p>
<div>
<div><a href="#example-232">Example 232</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -4957,11 +4957,11 @@ this example:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="5266:1-5268:67" dir="auto">Here <code>two</code> occurs in the same column as the list marker <code>1.</code>,
+<p data-sourcepos="5266:1-5268:67" dir="auto">Here <code data-sourcepos="5266:7-5266:9">two</code> occurs in the same column as the list marker <code data-sourcepos="5266:58-5266:59">1.</code>,
but is actually contained in the list item, because there is
sufficient indentation after the last containing blockquote marker.</p>
-<p data-sourcepos="5270:1-5273:38" dir="auto">The converse is also possible. In the following example, the word <code>two</code>
-occurs far to the right of the initial text of the list item, <code>one</code>, but
+<p data-sourcepos="5270:1-5273:38" dir="auto">The converse is also possible. In the following example, the word <code data-sourcepos="5270:69-5270:71">two</code>
+occurs far to the right of the initial text of the list item, <code data-sourcepos="5271:64-5271:66">one</code>, but
it is not considered part of the list item, because it is not indented
far enough past the blockquote marker:</p>
<div>
@@ -5142,14 +5142,14 @@ empty lines within the code block verbatim.</p>
<copy-code></copy-code>
</div>
</div>
-<ol start="2" data-sourcepos="5480:1-5490:0" dir="auto">
+<ol data-sourcepos="5480:1-5490:0" start="2" dir="auto">
<li data-sourcepos="5480:1-5490:0">
-<strong>Item starting with indented code.</strong> If a sequence of lines <em>Ls</em>
-constitute a sequence of blocks <em>Bs</em> starting with an indented code
-block, and <em>M</em> is a list marker of width <em>W</em> followed by
-one space, then the result of prepending <em>M</em> and the following
-space to the first line of <em>Ls</em>, and indenting subsequent lines of
-<em>Ls</em> by <em>W + 1</em> spaces, is a list item with <em>Bs</em> as its contents.
+<strong data-sourcepos="5480:5-5480:41">Item starting with indented code.</strong> If a sequence of lines <em data-sourcepos="5480:67-5480:70">Ls</em>
+constitute a sequence of blocks <em data-sourcepos="5481:37-5481:40">Bs</em> starting with an indented code
+block, and <em data-sourcepos="5482:16-5482:18">M</em> is a list marker of width <em data-sourcepos="5482:46-5482:48">W</em> followed by
+one space, then the result of prepending <em data-sourcepos="5483:46-5483:48">M</em> and the following
+space to the first line of <em data-sourcepos="5484:32-5484:35">Ls</em>, and indenting subsequent lines of
+<em data-sourcepos="5485:5-5485:8">Ls</em> by <em data-sourcepos="5485:13-5485:19">W + 1</em> spaces, is a list item with <em data-sourcepos="5485:49-5485:52">Bs</em> as its contents.
If a line is empty, then it need not be indented. The type of the
list item (bullet or ordered) is determined by the type of its list
marker. If the list item is ordered, then it is also assigned a
@@ -5197,8 +5197,8 @@ In the following case that is 6 spaces:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="5539:1-5541:12" dir="auto">If the <em>first</em> block in the list item is an indented code block,
-then by rule #2, the contents must be indented <em>one</em> space after the
+<p data-sourcepos="5539:1-5541:12" dir="auto">If the <em data-sourcepos="5539:8-5539:14">first</em> block in the list item is an indented code block,
+then by rule #2, the contents must be indented <em data-sourcepos="5540:48-5540:52">one</em> space after the
list marker:</p>
<div>
<div><a href="#example-250">Example 250</a></div>
@@ -5326,15 +5326,15 @@ the above case:</p>
<copy-code></copy-code>
</div>
</div>
-<ol start="3" data-sourcepos="5684:1-5695:0" dir="auto">
+<ol data-sourcepos="5684:1-5695:0" start="3" dir="auto">
<li data-sourcepos="5684:1-5695:0">
-<strong>Item starting with a blank line.</strong> If a sequence of lines <em>Ls</em>
+<strong data-sourcepos="5684:5-5684:40">Item starting with a blank line.</strong> If a sequence of lines <em data-sourcepos="5684:66-5684:69">Ls</em>
starting with a single [blank line] constitute a (possibly empty)
-sequence of blocks <em>Bs</em>, not separated from each other by more than
-one blank line, and <em>M</em> is a list marker of width <em>W</em>,
-then the result of prepending <em>M</em> to the first line of <em>Ls</em>, and
-indenting subsequent lines of <em>Ls</em> by <em>W + 1</em> spaces, is a list
-item with <em>Bs</em> as its contents.
+sequence of blocks <em data-sourcepos="5686:24-5686:27">Bs</em>, not separated from each other by more than
+one blank line, and <em data-sourcepos="5687:25-5687:27">M</em> is a list marker of width <em data-sourcepos="5687:55-5687:57">W</em>,
+then the result of prepending <em data-sourcepos="5688:35-5688:37">M</em> to the first line of <em data-sourcepos="5688:60-5688:63">Ls</em>, and
+indenting subsequent lines of <em data-sourcepos="5689:35-5689:38">Ls</em> by <em data-sourcepos="5689:43-5689:49">W + 1</em> spaces, is a list
+item with <em data-sourcepos="5690:15-5690:18">Bs</em> as its contents.
If a line is empty, then it need not be indented. The type of the
list item (bullet or ordered) is determined by the type of its list
marker. If the list item is ordered, then it is also assigned a
@@ -5386,7 +5386,7 @@ following the list marker doesn't change the required indentation:</p>
</div>
</div>
<p data-sourcepos="5746:1-5748:5" dir="auto">A list item can begin with at most one blank line.
-In the following example, <code>foo</code> is not part of the list
+In the following example, <code data-sourcepos="5747:28-5747:30">foo</code> is not part of the list
item:</p>
<div>
<div><a href="#example-258">Example 258</a></div>
@@ -5491,11 +5491,11 @@ item:</p>
<copy-code></copy-code>
</div>
</div>
-<ol start="4" data-sourcepos="5869:1-5874:0" dir="auto">
+<ol data-sourcepos="5869:1-5874:0" start="4" dir="auto">
<li data-sourcepos="5869:1-5874:0">
-<strong>Indentation.</strong> If a sequence of lines <em>Ls</em> constitutes a list item
+<strong data-sourcepos="5869:5-5869:20">Indentation.</strong> If a sequence of lines <em data-sourcepos="5869:46-5869:49">Ls</em> constitutes a list item
according to rule #1, #2, or #3, then the result of indenting each line
-of <em>Ls</em> by 1-3 spaces (the same for each line) also constitutes a
+of <em data-sourcepos="5871:8-5871:11">Ls</em> by 1-3 spaces (the same for each line) also constitutes a
list item with the same contents and attributes. If a line is
empty, then it need not be indented.</li>
</ol>
@@ -5603,16 +5603,16 @@ empty, then it need not be indented.</li>
<copy-code></copy-code>
</div>
</div>
-<ol start="5" data-sourcepos="5992:1-6000:0" dir="auto">
+<ol data-sourcepos="5992:1-6000:0" start="5" dir="auto">
<li data-sourcepos="5992:1-6000:0">
-<strong>Laziness.</strong> If a string of lines <em>Ls</em> constitute a <a href="#list-items">list
-item</a> with contents <em>Bs</em>, then the result of deleting
+<strong data-sourcepos="5992:5-5992:17">Laziness.</strong> If a string of lines <em data-sourcepos="5992:41-5992:44">Ls</em> constitute a <a data-sourcepos="5993:59-5993:22" href="#list-items">list
+item</a> with contents <em data-sourcepos="5993:38-5993:41">Bs</em>, then the result of deleting
some or all of the indentation from one or more lines in which the
next [non-whitespace character] after the indentation is
[paragraph continuation text] is a
list item with the same contents and attributes. The unindented
lines are called
-<a href="@">lazy continuation line</a>s.</li>
+<a data-sourcepos="5999:5-5999:31" href="@">lazy continuation line</a>s.</li>
</ol>
<p data-sourcepos="6001:1-6001:50" dir="auto">Here is an example with [lazy continuation lines]:</p>
<div>
@@ -5700,10 +5700,10 @@ lines are called
<copy-code></copy-code>
</div>
</div>
-<ol start="6" data-sourcepos="6099:1-6101:0" dir="auto">
+<ol data-sourcepos="6099:1-6101:0" start="6" dir="auto">
<li data-sourcepos="6099:1-6101:0">
-<strong>That's all.</strong> Nothing that is not counted as a list item by rules
-#1--5 counts as a <a href="#list-items">list item</a>.</li>
+<strong data-sourcepos="6099:5-6099:19">That's all.</strong> Nothing that is not counted as a list item by rules
+#1--5 counts as a <a data-sourcepos="6100:23-6100:46" href="#list-items">list item</a>.</li>
</ol>
<p data-sourcepos="6102:1-6105:17" dir="auto">The rules for sublists follow from the general rules
[above][List items]. A sublist must be indented the same number
@@ -5879,7 +5879,7 @@ tab."</p>
but here again, Markdown will allow you to be lazy."</p>
</li>
<li data-sourcepos="6292:1-6294:0">
-<p data-sourcepos="6292:4-6293:35">"To put a blockquote within a list item, the blockquote's <code>&gt;</code>
+<p data-sourcepos="6292:4-6293:35">"To put a blockquote within a list item, the blockquote's <code data-sourcepos="6292:63-6292:63">&gt;</code>
delimiters need to be indented."</p>
</li>
<li data-sourcepos="6295:1-6297:0">
@@ -5894,12 +5894,12 @@ must be indented eight spaces instead of the usual four. They also say
that a block quote must be indented, but not by how much; however, the
example given has four spaces indentation. Although nothing is said
about other kinds of block-level content, it is certainly reasonable to
-infer that <em>all</em> block elements under a list item, including other
+infer that <em data-sourcepos="6305:12-6305:16">all</em> block elements under a list item, including other
lists, must be indented four spaces. This principle has been called the
-<em>four-space rule</em>.</p>
+<em data-sourcepos="6307:1-6307:17">four-space rule</em>.</p>
<p data-sourcepos="6309:1-6320:48" dir="auto">The four-space rule is clear and principled, and if the reference
-implementation <code>Markdown.pl</code> had followed it, it probably would have
-become the standard. However, <code>Markdown.pl</code> allowed paragraphs and
+implementation <code data-sourcepos="6310:17-6310:27">Markdown.pl</code> had followed it, it probably would have
+become the standard. However, <code data-sourcepos="6311:33-6311:43">Markdown.pl</code> allowed paragraphs and
sublists to start with only two spaces indentation, at least on the
outer level. Worse, its behavior was inconsistent: a sublist of an
outer-level list needed two spaces indentation, but a sublist of this
@@ -5908,12 +5908,12 @@ implementations of Markdown have developed very different rules for
determining what comes under a list item. (Pandoc and python-Markdown,
for example, stuck with Gruber's syntax description and the four-space
rule, while discount, redcarpet, marked, PHP Markdown, and others
-followed <code>Markdown.pl</code>'s behavior more closely.)</p>
+followed <code data-sourcepos="6320:11-6320:21">Markdown.pl</code>'s behavior more closely.)</p>
<p data-sourcepos="6322:1-6327:45" dir="auto">Unfortunately, given the divergences between implementations, there
is no way to give a spec for list items that will be guaranteed not
to break any existing documents. However, the spec given here should
correctly handle lists formatted with either the four-space rule or
-the more forgiving <code>Markdown.pl</code> behavior, provided they are laid out
+the more forgiving <code data-sourcepos="6326:21-6326:31">Markdown.pl</code> behavior, provided they are laid out
in a way that is natural for a human to read.</p>
<p data-sourcepos="6329:1-6335:22" dir="auto">The strategy here is to let the width and indentation of the list marker
determine the indentation necessary for blocks to fall under the list
@@ -5961,16 +5961,16 @@ unnatural. It is quite unintuitive that</p>
not likely to be guessed, and it trips up beginners regularly.</p>
<p data-sourcepos="6378:1-6382:20" dir="auto">Would it help to adopt a two-space rule? The problem is that such
a rule, together with the rule allowing 1--3 spaces indentation of the
-initial list marker, allows text that is indented <em>less than</em> the
+initial list marker, allows text that is indented <em data-sourcepos="6380:51-6380:61">less than</em> the
original list marker to be included in the list item. For example,
-<code>Markdown.pl</code> parses</p>
+<code data-sourcepos="6382:2-6382:12">Markdown.pl</code> parses</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="6384:1-6388:3" data-canonical-lang="markdown" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p"> -</span> one</span>
<span id="LC2" class="line" lang="markdown"></span>
<span id="LC3" class="line" lang="markdown"> two</span></code></pre>
<copy-code></copy-code>
</div>
-<p data-sourcepos="6390:1-6390:59" dir="auto">as a single list item, with <code>two</code> a continuation paragraph:</p>
+<p data-sourcepos="6390:1-6390:59" dir="auto">as a single list item, with <code data-sourcepos="6390:30-6390:32">two</code> a continuation paragraph:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="6392:1-6399:3" data-canonical-lang="html" class="code highlight js-syntax-highlight language-html" lang="html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;ul&gt;</span></span>
<span id="LC2" class="line" lang="html"><span class="nt">&lt;li&gt;</span></span>
@@ -6004,15 +6004,15 @@ original list marker to be included in the list item. For example,
a fixed indent (say, two spaces, or even one space) from the list marker (which
may itself be indented). This proposal would remove the last anomaly
discussed. Unlike the spec presented above, it would count the following
-as a list item with a subparagraph, even though the paragraph <code>bar</code>
-is not indented as far as the first paragraph <code>foo</code>:</p>
+as a list item with a subparagraph, even though the paragraph <code data-sourcepos="6428:64-6428:66">bar</code>
+is not indented as far as the first paragraph <code data-sourcepos="6429:48-6429:50">foo</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="6431:1-6435:3" data-canonical-lang="markdown" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p"> 10.</span> foo</span>
<span id="LC2" class="line" lang="markdown"></span>
<span id="LC3" class="line" lang="markdown"> bar </span></code></pre>
<copy-code></copy-code>
</div>
-<p data-sourcepos="6437:1-6440:62" dir="auto">Arguably this text does read like a list item with <code>bar</code> as a subparagraph,
+<p data-sourcepos="6437:1-6440:62" dir="auto">Arguably this text does read like a list item with <code data-sourcepos="6437:53-6437:55">bar</code> as a subparagraph,
which may count in favor of the proposal. However, on this proposal indented
code would have to be indented six spaces after the list marker. And this
would break a lot of existing Markdown, which has the pattern:</p>
@@ -6024,8 +6024,8 @@ would break a lot of existing Markdown, which has the pattern:</p>
</div>
<p data-sourcepos="6448:1-6450:28" dir="auto">where the code is indented eight spaces. The spec above, by contrast, will
parse this text as expected, since the code block's indentation is measured
-from the beginning of <code>foo</code>.</p>
-<p data-sourcepos="6452:1-6458:62" dir="auto">The one case that needs special treatment is a list item that <em>starts</em>
+from the beginning of <code data-sourcepos="6450:24-6450:26">foo</code>.</p>
+<p data-sourcepos="6452:1-6458:62" dir="auto">The one case that needs special treatment is a list item that <em data-sourcepos="6452:63-6452:70">starts</em>
with indented code. How much indentation is required in that case, since
we don't have a "first paragraph" to measure from? Rule #2 simply stipulates
that in such cases, we require one space indentation from the list marker
@@ -6035,16 +6035,16 @@ takes four spaces (a common case), but diverge in other cases.</p>
<div>
<h2 data-sourcepos="6462:1-6462:30">
<a id="user-content-task-list-items-extension" class="anchor" href="#task-list-items-extension" aria-hidden="true"></a>Task list items (extension)</h2>
-<p data-sourcepos="6464:1-6465:26">GFM enables the <code>tasklist</code> extension, where an additional processing step is
+<p data-sourcepos="6464:1-6465:26">GFM enables the <code data-sourcepos="6464:18-6464:25">tasklist</code> extension, where an additional processing step is
performed on [list items].</p>
-<p data-sourcepos="6467:1-6469:46">A <a href="@">task list item</a> is a [list item][list items] where the first block in it
+<p data-sourcepos="6467:1-6469:46">A <a data-sourcepos="6467:3-6467:21" href="@">task list item</a> is a [list item][list items] where the first block in it
is a paragraph which begins with a [task list item marker] and at least one
whitespace character before any other content.</p>
-<p data-sourcepos="6471:1-6473:55">A <a href="@">task list item marker</a> consists of an optional number of spaces, a left
-bracket (<code>[</code>), either a whitespace character or the letter <code>x</code> in either
-lowercase or uppercase, and then a right bracket (<code>]</code>).</p>
+<p data-sourcepos="6471:1-6473:55">A <a data-sourcepos="6471:3-6471:28" href="@">task list item marker</a> consists of an optional number of spaces, a left
+bracket (<code data-sourcepos="6472:11-6472:11">[</code>), either a whitespace character or the letter <code data-sourcepos="6472:61-6472:61">x</code> in either
+lowercase or uppercase, and then a right bracket (<code data-sourcepos="6473:52-6473:52">]</code>).</p>
<p data-sourcepos="6475:1-6476:70">When rendered, the [task list item marker] is replaced with a semantic checkbox element;
-in an HTML output, this would be an <code>&lt;input type="checkbox"&gt;</code> element.</p>
+in an HTML output, this would be an <code data-sourcepos="6476:38-6476:60">&lt;input type="checkbox"&gt;</code> element.</p>
<p data-sourcepos="6478:1-6479:50">If the character between the brackets is a whitespace character, the checkbox
is unchecked. Otherwise, the checkbox is checked.</p>
<p data-sourcepos="6481:1-6484:28">This spec does not define how the checkbox elements are interacted with: in practice,
@@ -6092,30 +6092,30 @@ the final rendered document.</p>
</div>
<h2 data-sourcepos="6529:1-6529:8" dir="auto">
<a id="user-content-lists" class="anchor" href="#lists" aria-hidden="true"></a>Lists</h2>
-<p data-sourcepos="6531:1-6533:46" dir="auto">A <a href="@">list</a> is a sequence of one or more
+<p data-sourcepos="6531:1-6533:46" dir="auto">A <a data-sourcepos="6531:3-6531:11" href="@">list</a> is a sequence of one or more
list items [of the same type]. The list items
may be separated by any number of blank lines.</p>
-<p data-sourcepos="6535:1-6540:30" dir="auto">Two list items are <a href="@">of the same type</a>
+<p data-sourcepos="6535:1-6540:30" dir="auto">Two list items are <a data-sourcepos="6535:20-6535:40" href="@">of the same type</a>
if they begin with a [list marker] of the same type.
Two list markers are of the
same type if (a) they are bullet list markers using the same character
-(<code>-</code>, <code>+</code>, or <code>*</code>) or (b) they are ordered list numbers with the same
-delimiter (either <code>.</code> or <code>)</code>).</p>
-<p data-sourcepos="6542:1-6546:39" dir="auto">A list is an <a href="@">ordered list</a>
+(<code data-sourcepos="6539:3-6539:3">-</code>, <code data-sourcepos="6539:8-6539:8">+</code>, or <code data-sourcepos="6539:16-6539:16">*</code>) or (b) they are ordered list numbers with the same
+delimiter (either <code data-sourcepos="6540:20-6540:20">.</code> or <code data-sourcepos="6540:27-6540:27">)</code>).</p>
+<p data-sourcepos="6542:1-6546:39" dir="auto">A list is an <a data-sourcepos="6542:14-6542:30" href="@">ordered list</a>
if its constituent list items begin with
[ordered list markers], and a
-<a href="@">bullet list</a> if its constituent list
+<a data-sourcepos="6545:1-6545:16" href="@">bullet list</a> if its constituent list
items begin with [bullet list markers].</p>
-<p data-sourcepos="6548:1-6551:12" dir="auto">The <a href="@">start number</a>
+<p data-sourcepos="6548:1-6551:12" dir="auto">The <a data-sourcepos="6548:5-6548:21" href="@">start number</a>
of an [ordered list] is determined by the list number of
its initial list item. The numbers of subsequent list items are
disregarded.</p>
-<p data-sourcepos="6553:1-6558:65" dir="auto">A list is <a href="@">loose</a> if any of its constituent
+<p data-sourcepos="6553:1-6558:65" dir="auto">A list is <a data-sourcepos="6553:11-6553:20" href="@">loose</a> if any of its constituent
list items are separated by blank lines, or if any of its constituent
list items directly contain two block-level elements with a blank line
-between them. Otherwise a list is <a href="@">tight</a>.
+between them. Otherwise a list is <a data-sourcepos="6556:36-6556:45" href="@">tight</a>.
(The difference in HTML output is that paragraphs in a loose list are
-wrapped in <code>&lt;p&gt;</code> tags, while paragraphs in a tight list are not.)</p>
+wrapped in <code data-sourcepos="6558:13-6558:15">&lt;p&gt;</code> tags, while paragraphs in a tight list are not.)</p>
<p data-sourcepos="6560:1-6560:64" dir="auto">Changing the bullet or ordered list delimiter starts a new list:</p>
<div>
<div><a href="#example-281">Example 281</a></div>
@@ -6175,14 +6175,14 @@ list:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="6626:1-6627:37" dir="auto"><code>Markdown.pl</code> does not allow this, through fear of triggering a list
+<p data-sourcepos="6626:1-6627:37" dir="auto"><code data-sourcepos="6626:2-6626:12">Markdown.pl</code> does not allow this, through fear of triggering a list
via a numeral in a hard-wrapped line:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="6629:1-6632:3" data-canonical-lang="markdown" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">The number of windows in my house is</span>
<span id="LC2" class="line" lang="markdown"><span class="p">14.</span> The number of doors is 6.</span></code></pre>
<copy-code></copy-code>
</div>
-<p data-sourcepos="6634:1-6636:6" dir="auto">Oddly, though, <code>Markdown.pl</code> <em>does</em> allow a blockquote to
+<p data-sourcepos="6634:1-6636:6" dir="auto">Oddly, though, <code data-sourcepos="6634:17-6634:27">Markdown.pl</code> <em data-sourcepos="6634:30-6634:35">does</em> allow a blockquote to
interrupt a paragraph, even though the same considerations might
apply.</p>
<p data-sourcepos="6638:1-6640:35" dir="auto">In CommonMark, we do allow lists to interrupt paragraphs, for
@@ -6197,7 +6197,7 @@ to start lists without blank lines:</p>
</div>
<p data-sourcepos="6649:1-6649:29" dir="auto">Second, we are attracted to a</p>
<blockquote data-sourcepos="6651:1-6654:54" dir="auto">
-<p data-sourcepos="6651:3-6654:54"><a href="@">principle of uniformity</a>:
+<p data-sourcepos="6651:3-6654:54"><a data-sourcepos="6651:3-6651:30" href="@">principle of uniformity</a>:
if a chunk of text has a certain
meaning, it will continue to have the same meaning when put into a
container block (such as a list item or blockquote).</p>
@@ -6213,7 +6213,7 @@ this principle.) This principle implies that if</p>
</div>
<p data-sourcepos="6666:1-6669:4" dir="auto">is a list item containing a paragraph followed by a nested sublist,
as all Markdown implementations agree it is (though the paragraph
-may be rendered without <code>&lt;p&gt;</code> tags, since the list is "tight"),
+may be rendered without <code data-sourcepos="6668:26-6668:28">&lt;p&gt;</code> tags, since the list is "tight"),
then</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="6671:1-6676:3" data-canonical-lang="markdown" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">I need to buy</span>
@@ -6226,11 +6226,11 @@ then</p>
<p data-sourcepos="6680:1-6685:30" dir="auto">Since it is well established Markdown practice to allow lists to
interrupt paragraphs inside list items, the [principle of
uniformity] requires us to allow this outside list items as
-well. (<a href="http://docutils.sourceforge.net/rst.html" rel="nofollow noreferrer noopener" target="_blank">reStructuredText</a>
+well. (<a data-sourcepos="6683:9-6683:68" href="http://docutils.sourceforge.net/rst.html" rel="nofollow noreferrer noopener" target="_blank">reStructuredText</a>
takes a different approach, requiring blank lines before lists
even inside other list items.)</p>
<p data-sourcepos="6687:1-6689:28" dir="auto">In order to solve of unwanted lists in paragraphs with
-hard-wrapped numerals, we allow only lists starting with <code>1</code> to
+hard-wrapped numerals, we allow only lists starting with <code data-sourcepos="6688:59-6688:59">1</code> to
interrupt paragraphs. Thus,</p>
<div>
<div><a href="#example-284">Example 284</a></div>
@@ -6432,7 +6432,7 @@ item:</p>
</div>
</div>
<p data-sourcepos="6907:1-6909:52" dir="auto">Note, however, that list items may not be indented more than
-three spaces. Here <code>- e</code> is treated as a paragraph continuation
+three spaces. Here <code data-sourcepos="6908:22-6908:24">- e</code> is treated as a paragraph continuation
line, because it is indented more than three spaces:</p>
<div>
<div><a href="#example-292">Example 292</a></div>
@@ -6455,7 +6455,7 @@ line, because it is indented more than three spaces:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="6933:1-6935:11" dir="auto">And here, <code>3. c</code> is treated as in indented code block,
+<p data-sourcepos="6933:1-6935:11" dir="auto">And here, <code data-sourcepos="6933:12-6933:15">3. c</code> is treated as in indented code block,
because it is indented four spaces and preceded by a
blank line.</p>
<div>
@@ -6816,7 +6816,7 @@ Thus, for example, in</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="7335:1-7336:9" dir="auto"><code>hi</code> is parsed as code, leaving the backtick at the end as a literal
+<p data-sourcepos="7335:1-7336:9" dir="auto"><code data-sourcepos="7335:2-7335:3">hi</code> is parsed as code, leaving the backtick at the end as a literal
backtick.</p>
<h2 data-sourcepos="7339:1-7339:20" dir="auto">
<a id="user-content-backslash-escapes" class="anchor" href="#backslash-escapes" aria-hidden="true"></a>Backslash escapes</h2>
@@ -7014,18 +7014,18 @@ blocks and code spans.</p>
<li data-sourcepos="7565:1-7571:0">
<p data-sourcepos="7565:3-7570:9">Entity and character references cannot stand in place of
special characters that define structural elements in
-CommonMark. For example, although <code>&amp;#42;</code> can be used
-in place of a literal <code>*</code> character, <code>&amp;#42;</code> cannot replace
-<code>*</code> in emphasis delimiters, bullet list markers, or thematic
+CommonMark. For example, although <code data-sourcepos="7567:39-7567:43">&amp;#42;</code> can be used
+in place of a literal <code data-sourcepos="7568:26-7568:26">*</code> character, <code data-sourcepos="7568:41-7568:45">&amp;#42;</code> cannot replace
+<code data-sourcepos="7569:4-7569:4">*</code> in emphasis delimiters, bullet list markers, or thematic
breaks.</p>
</li>
</ul>
<p data-sourcepos="7572:1-7574:49" dir="auto">Conforming CommonMark parsers need not store information about
whether a particular character was represented in the source
using a Unicode character or an entity reference.</p>
-<p data-sourcepos="7576:1-7580:47" dir="auto"><a href="@">Entity references</a> consist of <code>&amp;</code> + any of the valid
-HTML5 entity names + <code>;</code>. The
-document <a href="https://html.spec.whatwg.org/multipage/entities.json" rel="nofollow noreferrer noopener" target="_blank">https://html.spec.whatwg.org/multipage/entities.json</a>
+<p data-sourcepos="7576:1-7580:47" dir="auto"><a data-sourcepos="7576:1-7576:22" href="@">Entity references</a> consist of <code data-sourcepos="7576:36-7576:36">&amp;</code> + any of the valid
+HTML5 entity names + <code data-sourcepos="7577:23-7577:23">;</code>. The
+document <a data-sourcepos="7578:11-7578:64" href="https://html.spec.whatwg.org/multipage/entities.json" rel="nofollow noreferrer noopener" target="_blank">https://html.spec.whatwg.org/multipage/entities.json</a>
is used as an authoritative source for the valid entity
references and their corresponding code points.</p>
<div>
@@ -7043,13 +7043,13 @@ references and their corresponding code points.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="7599:1-7605:58" dir="auto"><a href="@">Decimal numeric character
+<p data-sourcepos="7599:1-7605:58" dir="auto"><a data-sourcepos="7600:1-7600:14" href="@">Decimal numeric character
references</a>
-consist of <code>&amp;#</code> + a string of 1--7 arabic digits + <code>;</code>. A
+consist of <code data-sourcepos="7601:13-7601:14">&amp;#</code> + a string of 1--7 arabic digits + <code data-sourcepos="7601:53-7601:53">;</code>. A
numeric character reference is parsed as the corresponding
Unicode character. Invalid Unicode code points will be replaced by
-the REPLACEMENT CHARACTER (<code>U+FFFD</code>). For security reasons,
-the code point <code>U+0000</code> will also be replaced by <code>U+FFFD</code>.</p>
+the REPLACEMENT CHARACTER (<code data-sourcepos="7604:29-7604:34">U+FFFD</code>). For security reasons,
+the code point <code data-sourcepos="7605:17-7605:22">U+0000</code> will also be replaced by <code data-sourcepos="7605:51-7605:56">U+FFFD</code>.</p>
<div>
<div><a href="#example-322">Example 322</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -7061,9 +7061,9 @@ the code point <code>U+0000</code> will also be replaced by <code>U+FFFD</code>.
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="7620:1-7624:62" dir="auto"><a href="@">Hexadecimal numeric character
-references</a> consist of <code>&amp;#</code> +
-either <code>X</code> or <code>x</code> + a string of 1-6 hexadecimal digits + <code>;</code>.
+<p data-sourcepos="7620:1-7624:62" dir="auto"><a data-sourcepos="7621:1-7621:14" href="@">Hexadecimal numeric character
+references</a> consist of <code data-sourcepos="7621:28-7621:29">&amp;#</code> +
+either <code data-sourcepos="7622:9-7622:9">X</code> or <code data-sourcepos="7622:16-7622:16">x</code> + a string of 1-6 hexadecimal digits + <code data-sourcepos="7622:59-7622:59">;</code>.
They too are parsed as the corresponding Unicode character (this
time specified with a hexadecimal numeral instead of decimal).</p>
<div>
@@ -7096,7 +7096,7 @@ time specified with a hexadecimal numeral instead of decimal).</p>
</div>
</div>
<p data-sourcepos="7660:1-7662:60" dir="auto">Although HTML5 does accept some entity references
-without a trailing semicolon (such as <code>&amp;copy</code>), these are not
+without a trailing semicolon (such as <code data-sourcepos="7661:40-7661:44">&amp;copy</code>), these are not
recognized here, because it makes the grammar too ambiguous:</p>
<div>
<div><a href="#example-325">Example 325</a></div>
@@ -7268,16 +7268,16 @@ documents.</p>
</div>
<h2 data-sourcepos="7859:1-7859:13" dir="auto">
<a id="user-content-code-spans" class="anchor" href="#code-spans" aria-hidden="true"></a>Code spans</h2>
-<p data-sourcepos="7861:1-7863:36" dir="auto">A <a href="@">backtick string</a>
-is a string of one or more backtick characters (<code>`</code>) that is neither
+<p data-sourcepos="7861:1-7863:36" dir="auto">A <a data-sourcepos="7861:3-7861:22" href="@">backtick string</a>
+is a string of one or more backtick characters (<code data-sourcepos="7862:51-7862:53">`</code>) that is neither
preceded nor followed by a backtick.</p>
-<p data-sourcepos="7865:1-7868:15" dir="auto">A <a href="@">code span</a> begins with a backtick string and ends with
+<p data-sourcepos="7865:1-7868:15" dir="auto">A <a data-sourcepos="7865:3-7865:16" href="@">code span</a> begins with a backtick string and ends with
a backtick string of equal length. The contents of the code span are
the characters between the two backtick strings, normalized in the
following ways:</p>
<ul data-sourcepos="7870:1-7877:0" dir="auto">
<li data-sourcepos="7870:1-7870:50">First, [line endings] are converted to [spaces].</li>
-<li data-sourcepos="7871:1-7877:0">If the resulting string both begins <em>and</em> ends with a [space]
+<li data-sourcepos="7871:1-7877:0">If the resulting string both begins <em data-sourcepos="7871:39-7871:43">and</em> ends with a [space]
character, but does not consist entirely of [space]
characters, a single [space] character is removed from the
front and back. This allows you to include code that begins
@@ -7323,7 +7323,7 @@ spaces:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="7925:1-7925:39" dir="auto">Note that only <em>one</em> space is stripped:</p>
+<p data-sourcepos="7925:1-7925:39" dir="auto">Note that only <em data-sourcepos="7925:16-7925:20">one</em> space is stripped:</p>
<div>
<div><a href="#example-341">Example 341</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -7418,7 +7418,7 @@ stripped in this way:</p>
</div>
</div>
<p data-sourcepos="8034:1-8036:26" dir="auto">Note that browsers will typically collapse consecutive spaces
-when rendering <code>&lt;code&gt;</code> elements, so it is recommended that
+when rendering <code data-sourcepos="8035:17-8035:22">&lt;code&gt;</code> elements, so it is recommended that
the following CSS be used:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="8038:5-8040:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">code{white-space: pre-wrap;}</span></code></pre>
@@ -7438,8 +7438,8 @@ are treated literally:</p>
</div>
</div>
<p data-sourcepos="8057:1-8059:59" dir="auto">Backslash escapes are never needed, because one can always choose a
-string of <em>n</em> backtick characters as delimiters, where the code does
-not contain any strings of exactly <em>n</em> backtick characters.</p>
+string of <em data-sourcepos="8058:11-8058:13">n</em> backtick characters as delimiters, where the code does
+not contain any strings of exactly <em data-sourcepos="8059:36-8059:38">n</em> backtick characters.</p>
<div>
<div><a href="#example-349">Example 349</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -7464,7 +7464,7 @@ not contain any strings of exactly <em>n</em> backtick characters.</p>
</div>
<p data-sourcepos="8086:1-8089:5" dir="auto">Code span backticks have higher precedence than any other inline
constructs except HTML tags and autolinks. Thus, for example, this is
-not parsed as emphasized text, since the second <code>*</code> is part of a code
+not parsed as emphasized text, since the second <code data-sourcepos="8088:50-8088:50">*</code> is part of a code
span:</p>
<div>
<div><a href="#example-351">Example 351</a></div>
@@ -7577,18 +7577,18 @@ closing backtick strings to be equal in length:</p>
</div>
<h2 data-sourcepos="8224:1-8224:31" dir="auto">
<a id="user-content-emphasis-and-strong-emphasis" class="anchor" href="#emphasis-and-strong-emphasis" aria-hidden="true"></a>Emphasis and strong emphasis</h2>
-<p data-sourcepos="8226:1-8227:73" dir="auto">John Gruber's original <a href="http://daringfireball.net/projects/markdown/syntax#em" rel="nofollow noreferrer noopener" target="_blank">Markdown syntax
+<p data-sourcepos="8226:1-8227:73" dir="auto">John Gruber's original <a data-sourcepos="8227:24-8227:67" href="http://daringfireball.net/projects/markdown/syntax#em" rel="nofollow noreferrer noopener" target="_blank">Markdown syntax
description</a> says:</p>
<blockquote data-sourcepos="8229:1-8232:6" dir="auto">
-<p data-sourcepos="8229:3-8232:6">Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of
-emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an HTML
-<code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML <code>&lt;strong&gt;</code>
+<p data-sourcepos="8229:3-8232:6">Markdown treats asterisks (<code data-sourcepos="8229:31-8229:31">*</code>) and underscores (<code data-sourcepos="8229:53-8229:53">_</code>) as indicators of
+emphasis. Text wrapped with one <code data-sourcepos="8230:36-8230:36">*</code> or <code data-sourcepos="8230:43-8230:43">_</code> will be wrapped with an HTML
+<code data-sourcepos="8231:4-8231:7">&lt;em&gt;</code> tag; double <code data-sourcepos="8231:23-8231:23">*</code>'s or <code data-sourcepos="8231:32-8231:32">_</code>'s will be wrapped with an HTML <code data-sourcepos="8231:67-8231:74">&lt;strong&gt;</code>
tag.</p>
</blockquote>
<p data-sourcepos="8234:1-8238:57" dir="auto">This is enough for most users, but these rules leave much undecided,
especially when it comes to nested emphasis. The original
-<code>Markdown.pl</code> test suite makes it clear that triple <code>***</code> and
-<code>___</code> delimiters can be used for strong emphasis, and most
+<code data-sourcepos="8236:2-8236:12">Markdown.pl</code> test suite makes it clear that triple <code data-sourcepos="8236:54-8236:56">***</code> and
+<code data-sourcepos="8237:2-8237:4">___</code> delimiters can be used for strong emphasis, and most
implementations have also allowed the following patterns:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="8240:1-8246:3" data-canonical-lang="markdown" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gs">***strong emph**</span><span class="err">*</span></span>
@@ -7607,7 +7607,7 @@ entries):</p>
<copy-code></copy-code>
</div>
<p data-sourcepos="8257:1-8260:31" dir="auto">Many implementations have also restricted intraword emphasis to
-the <code>*</code> forms, to avoid unwanted emphasis in words containing
+the <code data-sourcepos="8258:6-8258:6">*</code> forms, to avoid unwanted emphasis in words containing
internal underscores. (It is best practice to put these in code
spans, but users often do not.)</p>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -7617,19 +7617,19 @@ spans, but users often do not.)</p>
</div>
<p data-sourcepos="8267:1-8268:55" dir="auto">The rules given below capture all of these patterns, while allowing
for efficient parsing strategies that do not backtrack.</p>
-<p data-sourcepos="8270:1-8274:38" dir="auto">First, some definitions. A <a href="@">delimiter run</a> is either
-a sequence of one or more <code>*</code> characters that is not preceded or
-followed by a non-backslash-escaped <code>*</code> character, or a sequence
-of one or more <code>_</code> characters that is not preceded or followed by
-a non-backslash-escaped <code>_</code> character.</p>
-<p data-sourcepos="8276:1-8282:37" dir="auto">A <a href="@">left-flanking delimiter run</a> is
+<p data-sourcepos="8270:1-8274:38" dir="auto">First, some definitions. A <a data-sourcepos="8270:29-8270:46" href="@">delimiter run</a> is either
+a sequence of one or more <code data-sourcepos="8271:28-8271:28">*</code> characters that is not preceded or
+followed by a non-backslash-escaped <code data-sourcepos="8272:38-8272:38">*</code> character, or a sequence
+of one or more <code data-sourcepos="8273:17-8273:17">_</code> characters that is not preceded or followed by
+a non-backslash-escaped <code data-sourcepos="8274:26-8274:26">_</code> character.</p>
+<p data-sourcepos="8276:1-8282:37" dir="auto">A <a data-sourcepos="8276:3-8276:34" href="@">left-flanking delimiter run</a> is
a [delimiter run] that is (1) not followed by [Unicode whitespace],
and either (2a) not followed by a [punctuation character], or
(2b) followed by a [punctuation character] and
preceded by [Unicode whitespace] or a [punctuation character].
For purposes of this definition, the beginning and the end of
the line count as Unicode whitespace.</p>
-<p data-sourcepos="8284:1-8290:37" dir="auto">A <a href="@">right-flanking delimiter run</a> is
+<p data-sourcepos="8284:1-8290:37" dir="auto">A <a data-sourcepos="8284:3-8284:35" href="@">right-flanking delimiter run</a> is
a [delimiter run] that is (1) not preceded by [Unicode whitespace],
and either (2a) not preceded by a [punctuation character], or
(2b) preceded by a [punctuation character] and
@@ -7678,51 +7678,51 @@ the line count as Unicode whitespace.</p>
<p data-sourcepos="8326:1-8332:49" dir="auto">(The idea of distinguishing left-flanking and right-flanking
delimiter runs based on the character before and the character
after comes from Roopesh Chander's
-<a href="http://www.vfmd.org/vfmd-spec/specification/#procedure-for-identifying-emphasis-tags" rel="nofollow noreferrer noopener" target="_blank">vfmd</a>.
+<a data-sourcepos="8329:1-8329:92" href="http://www.vfmd.org/vfmd-spec/specification/#procedure-for-identifying-emphasis-tags" rel="nofollow noreferrer noopener" target="_blank">vfmd</a>.
vfmd uses the terminology "emphasis indicator string" instead of "delimiter
run," and its rules for distinguishing left- and right-flanking runs
are a bit more complex than the ones given here.)</p>
<p data-sourcepos="8334:1-8334:56" dir="auto">The following rules define emphasis and strong emphasis:</p>
<ol data-sourcepos="8336:1-8400:0" dir="auto">
<li data-sourcepos="8336:1-8338:0">
-<p data-sourcepos="8336:5-8337:71">A single <code>*</code> character <a href="@">can open emphasis</a>
+<p data-sourcepos="8336:5-8337:71">A single <code data-sourcepos="8336:15-8336:15">*</code> character <a data-sourcepos="8336:28-8336:49" href="@">can open emphasis</a>
iff (if and only if) it is part of a [left-flanking delimiter run].</p>
</li>
<li data-sourcepos="8339:1-8344:0">
-<p data-sourcepos="8339:5-8343:28">A single <code>_</code> character [can open emphasis] iff
+<p data-sourcepos="8339:5-8343:28">A single <code data-sourcepos="8339:15-8339:15">_</code> character [can open emphasis] iff
it is part of a [left-flanking delimiter run]
and either (a) not part of a [right-flanking delimiter run]
or (b) part of a [right-flanking delimiter run]
preceded by punctuation.</p>
</li>
<li data-sourcepos="8345:1-8347:0">
-<p data-sourcepos="8345:5-8346:55">A single <code>*</code> character <a href="@">can close emphasis</a>
+<p data-sourcepos="8345:5-8346:55">A single <code data-sourcepos="8345:15-8345:15">*</code> character <a data-sourcepos="8345:28-8345:50" href="@">can close emphasis</a>
iff it is part of a [right-flanking delimiter run].</p>
</li>
<li data-sourcepos="8348:1-8353:0">
-<p data-sourcepos="8348:5-8352:28">A single <code>_</code> character [can close emphasis] iff
+<p data-sourcepos="8348:5-8352:28">A single <code data-sourcepos="8348:15-8348:15">_</code> character [can close emphasis] iff
it is part of a [right-flanking delimiter run]
and either (a) not part of a [left-flanking delimiter run]
or (b) part of a [left-flanking delimiter run]
followed by punctuation.</p>
</li>
<li data-sourcepos="8354:1-8356:0">
-<p data-sourcepos="8354:5-8355:54">A double <code>**</code> <a href="@">can open strong emphasis</a>
+<p data-sourcepos="8354:5-8355:54">A double <code data-sourcepos="8354:15-8354:16">**</code> <a data-sourcepos="8354:19-8354:47" href="@">can open strong emphasis</a>
iff it is part of a [left-flanking delimiter run].</p>
</li>
<li data-sourcepos="8357:1-8362:0">
-<p data-sourcepos="8357:5-8361:28">A double <code>__</code> [can open strong emphasis] iff
+<p data-sourcepos="8357:5-8361:28">A double <code data-sourcepos="8357:15-8357:16">__</code> [can open strong emphasis] iff
it is part of a [left-flanking delimiter run]
and either (a) not part of a [right-flanking delimiter run]
or (b) part of a [right-flanking delimiter run]
preceded by punctuation.</p>
</li>
<li data-sourcepos="8363:1-8365:0">
-<p data-sourcepos="8363:5-8364:55">A double <code>**</code> <a href="@">can close strong emphasis</a>
+<p data-sourcepos="8363:5-8364:55">A double <code data-sourcepos="8363:15-8363:16">**</code> <a data-sourcepos="8363:19-8363:48" href="@">can close strong emphasis</a>
iff it is part of a [right-flanking delimiter run].</p>
</li>
<li data-sourcepos="8366:1-8371:0">
-<p data-sourcepos="8366:5-8370:28">A double <code>__</code> [can close strong emphasis] iff
+<p data-sourcepos="8366:5-8370:28">A double <code data-sourcepos="8366:15-8366:16">__</code> [can close strong emphasis] iff
it is part of a [right-flanking delimiter run]
and either (a) not part of a [left-flanking delimiter run]
or (b) part of a [left-flanking delimiter run]
@@ -7731,7 +7731,7 @@ followed by punctuation.</p>
<li data-sourcepos="8372:1-8381:0">
<p data-sourcepos="8372:5-8380:19">Emphasis begins with a delimiter that [can open emphasis] and ends
with a delimiter that [can close emphasis], and that uses the same
-character (<code>_</code> or <code>*</code>) as the opening delimiter. The
+character (<code data-sourcepos="8374:17-8374:17">_</code> or <code data-sourcepos="8374:24-8374:24">*</code>) as the opening delimiter. The
opening and closing delimiters must belong to separate
[delimiter runs]. If one of the delimiters can both
open and close emphasis, then the sum of the lengths of the
@@ -7743,7 +7743,7 @@ multiples of 3.</p>
<p data-sourcepos="8382:5-8391:23">Strong emphasis begins with a delimiter that
[can open strong emphasis] and ends with a delimiter that
[can close strong emphasis], and that uses the same character
-(<code>_</code> or <code>*</code>) as the opening delimiter. The
+(<code data-sourcepos="8385:7-8385:7">_</code> or <code data-sourcepos="8385:14-8385:14">*</code>) as the opening delimiter. The
opening and closing delimiters must belong to separate
[delimiter runs]. If one of the delimiters can both open
and close strong emphasis, then the sum of the lengths of
@@ -7752,49 +7752,49 @@ delimiters must not be a multiple of 3 unless both lengths
are multiples of 3.</p>
</li>
<li data-sourcepos="8393:1-8396:0">
-<p data-sourcepos="8393:5-8395:25">A literal <code>*</code> character cannot occur at the beginning or end of
-<code>*</code>-delimited emphasis or <code>**</code>-delimited strong emphasis, unless it
+<p data-sourcepos="8393:5-8395:25">A literal <code data-sourcepos="8393:16-8393:16">*</code> character cannot occur at the beginning or end of
+<code data-sourcepos="8394:6-8394:6">*</code>-delimited emphasis or <code data-sourcepos="8394:32-8394:33">**</code>-delimited strong emphasis, unless it
is backslash-escaped.</p>
</li>
<li data-sourcepos="8397:1-8400:0">
-<p data-sourcepos="8397:5-8399:25">A literal <code>_</code> character cannot occur at the beginning or end of
-<code>_</code>-delimited emphasis or <code>__</code>-delimited strong emphasis, unless it
+<p data-sourcepos="8397:5-8399:25">A literal <code data-sourcepos="8397:16-8397:16">_</code> character cannot occur at the beginning or end of
+<code data-sourcepos="8398:6-8398:6">_</code>-delimited emphasis or <code data-sourcepos="8398:32-8398:33">__</code>-delimited strong emphasis, unless it
is backslash-escaped.</p>
</li>
</ol>
<p data-sourcepos="8401:1-8402:43" dir="auto">Where rules 1--12 above are compatible with multiple parsings,
the following principles resolve ambiguity:</p>
-<ol start="13" data-sourcepos="8404:1-8429:0" dir="auto">
+<ol data-sourcepos="8404:1-8429:0" start="13" dir="auto">
<li data-sourcepos="8404:1-8407:0">
<p data-sourcepos="8404:5-8406:28">The number of nestings should be minimized. Thus, for example,
-an interpretation <code>&lt;strong&gt;...&lt;/strong&gt;</code> is always preferred to
-<code>&lt;em&gt;&lt;em&gt;...&lt;/em&gt;&lt;/em&gt;</code>.</p>
+an interpretation <code data-sourcepos="8405:24-8405:43">&lt;strong&gt;...&lt;/strong&gt;</code> is always preferred to
+<code data-sourcepos="8406:6-8406:26">&lt;em&gt;&lt;em&gt;...&lt;/em&gt;&lt;/em&gt;</code>.</p>
</li>
<li data-sourcepos="8408:1-8410:0">
-<p data-sourcepos="8408:5-8409:49">An interpretation <code>&lt;em&gt;&lt;strong&gt;...&lt;/strong&gt;&lt;/em&gt;</code> is always
-preferred to <code>&lt;strong&gt;&lt;em&gt;...&lt;/em&gt;&lt;/strong&gt;</code>.</p>
+<p data-sourcepos="8408:5-8409:49">An interpretation <code data-sourcepos="8408:24-8408:52">&lt;em&gt;&lt;strong&gt;...&lt;/strong&gt;&lt;/em&gt;</code> is always
+preferred to <code data-sourcepos="8409:19-8409:47">&lt;strong&gt;&lt;em&gt;...&lt;/em&gt;&lt;/strong&gt;</code>.</p>
</li>
<li data-sourcepos="8411:1-8416:0">
<p data-sourcepos="8411:5-8415:34">When two potential emphasis or strong emphasis spans overlap,
so that the second begins before the first ends and ends after
the first ends, the first takes precedence. Thus, for example,
-<code>*foo _bar* baz_</code> is parsed as <code>&lt;em&gt;foo _bar&lt;/em&gt; baz_</code> rather
-than <code>*foo &lt;em&gt;bar* baz&lt;/em&gt;</code>.</p>
+<code data-sourcepos="8414:6-8414:20">*foo _bar* baz_</code> is parsed as <code data-sourcepos="8414:37-8414:58">&lt;em&gt;foo _bar&lt;/em&gt; baz_</code> rather
+than <code data-sourcepos="8415:11-8415:32">*foo &lt;em&gt;bar* baz&lt;/em&gt;</code>.</p>
</li>
<li data-sourcepos="8417:1-8422:0">
<p data-sourcepos="8417:5-8421:49">When there are two potential emphasis or strong emphasis spans
with the same closing delimiter, the shorter one (the one that
opens later) takes precedence. Thus, for example,
-<code>**foo **bar baz**</code> is parsed as <code>**foo &lt;strong&gt;bar baz&lt;/strong&gt;</code>
-rather than <code>&lt;strong&gt;foo **bar baz&lt;/strong&gt;</code>.</p>
+<code data-sourcepos="8420:6-8420:22">**foo **bar baz**</code> is parsed as <code data-sourcepos="8420:39-8420:68">**foo &lt;strong&gt;bar baz&lt;/strong&gt;</code>
+rather than <code data-sourcepos="8421:18-8421:47">&lt;strong&gt;foo **bar baz&lt;/strong&gt;</code>.</p>
</li>
<li data-sourcepos="8423:1-8429:0">
<p data-sourcepos="8423:5-8428:26">Inline code spans, links, images, and HTML tags group more tightly
than emphasis. So, when there is a choice between an interpretation
that contains one of these elements and one that does not, the
-former always wins. Thus, for example, <code>*[foo*](bar)</code> is
-parsed as <code>*&lt;a href="bar"&gt;foo*&lt;/a&gt;</code> rather than as
-<code>&lt;em&gt;[foo&lt;/em&gt;](bar)</code>.</p>
+former always wins. Thus, for example, <code data-sourcepos="8426:46-8426:57">*[foo*](bar)</code> is
+parsed as <code data-sourcepos="8427:16-8427:38">*&lt;a href="bar"&gt;foo*&lt;/a&gt;</code> rather than as
+<code data-sourcepos="8428:6-8428:24">&lt;em&gt;[foo&lt;/em&gt;](bar)</code>.</p>
</li>
</ol>
<p data-sourcepos="8430:1-8430:60" dir="auto">These rules can be illustrated through a series of examples.</p>
@@ -7810,7 +7810,7 @@ parsed as <code>*&lt;a href="bar"&gt;foo*&lt;/a&gt;</code> rather than as
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8447:1-8448:66" dir="auto">This is not emphasis, because the opening <code>*</code> is followed by
+<p data-sourcepos="8447:1-8448:66" dir="auto">This is not emphasis, because the opening <code data-sourcepos="8447:44-8447:44">*</code> is followed by
whitespace, and hence not part of a [left-flanking delimiter run]:</p>
<div>
<div><a href="#example-361">Example 361</a></div>
@@ -7823,7 +7823,7 @@ whitespace, and hence not part of a [left-flanking delimiter run]:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8463:1-8465:44" dir="auto">This is not emphasis, because the opening <code>*</code> is preceded
+<p data-sourcepos="8463:1-8465:44" dir="auto">This is not emphasis, because the opening <code data-sourcepos="8463:44-8463:44">*</code> is preceded
by an alphanumeric and followed by punctuation, and hence
not part of a [left-flanking delimiter run]:</p>
<div>
@@ -7849,7 +7849,7 @@ not part of a [left-flanking delimiter run]:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8495:1-8495:41" dir="auto">Intraword emphasis with <code>*</code> is permitted:</p>
+<p data-sourcepos="8495:1-8495:41" dir="auto">Intraword emphasis with <code data-sourcepos="8495:26-8495:26">*</code> is permitted:</p>
<div>
<div><a href="#example-364">Example 364</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -7884,7 +7884,7 @@ not part of a [left-flanking delimiter run]:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8538:1-8539:11" dir="auto">This is not emphasis, because the opening <code>_</code> is followed by
+<p data-sourcepos="8538:1-8539:11" dir="auto">This is not emphasis, because the opening <code data-sourcepos="8538:44-8538:44">_</code> is followed by
whitespace:</p>
<div>
<div><a href="#example-367">Example 367</a></div>
@@ -7897,7 +7897,7 @@ whitespace:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8554:1-8555:47" dir="auto">This is not emphasis, because the opening <code>_</code> is preceded
+<p data-sourcepos="8554:1-8555:47" dir="auto">This is not emphasis, because the opening <code data-sourcepos="8554:44-8554:44">_</code> is preceded
by an alphanumeric and followed by punctuation:</p>
<div>
<div><a href="#example-368">Example 368</a></div>
@@ -7910,7 +7910,7 @@ by an alphanumeric and followed by punctuation:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8570:1-8570:46" dir="auto">Emphasis with <code>_</code> is not allowed inside words:</p>
+<p data-sourcepos="8570:1-8570:46" dir="auto">Emphasis with <code data-sourcepos="8570:16-8570:16">_</code> is not allowed inside words:</p>
<div>
<div><a href="#example-369">Example 369</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -7944,7 +7944,7 @@ by an alphanumeric and followed by punctuation:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8611:1-8612:47" dir="auto">Here <code>_</code> does not generate emphasis, because the first delimiter run
+<p data-sourcepos="8611:1-8612:47" dir="auto">Here <code data-sourcepos="8611:7-8611:7">_</code> does not generate emphasis, because the first delimiter run
is right-flanking and the second left-flanking:</p>
<div>
<div><a href="#example-372">Example 372</a></div>
@@ -7985,7 +7985,7 @@ not match the opening delimiter:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8662:1-8663:11" dir="auto">This is not emphasis, because the closing <code>*</code> is preceded by
+<p data-sourcepos="8662:1-8663:11" dir="auto">This is not emphasis, because the closing <code data-sourcepos="8662:44-8662:44">*</code> is preceded by
whitespace:</p>
<div>
<div><a href="#example-375">Example 375</a></div>
@@ -8012,7 +8012,7 @@ whitespace:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8695:1-8697:58" dir="auto">This is not emphasis, because the second <code>*</code> is
+<p data-sourcepos="8695:1-8697:58" dir="auto">This is not emphasis, because the second <code data-sourcepos="8695:43-8695:43">*</code> is
preceded by punctuation and followed by an alphanumeric
(hence it is not part of a [right-flanking delimiter run]:</p>
<div>
@@ -8039,7 +8039,7 @@ with this example:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8728:1-8728:39" dir="auto">Intraword emphasis with <code>*</code> is allowed:</p>
+<p data-sourcepos="8728:1-8728:39" dir="auto">Intraword emphasis with <code data-sourcepos="8728:26-8728:26">*</code> is allowed:</p>
<div>
<div><a href="#example-379">Example 379</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -8052,7 +8052,7 @@ with this example:</p>
</div>
</div>
<p data-sourcepos="8744:1-8744:7" dir="auto">Rule 4:</p>
-<p data-sourcepos="8746:1-8747:11" dir="auto">This is not emphasis, because the closing <code>_</code> is preceded by
+<p data-sourcepos="8746:1-8747:11" dir="auto">This is not emphasis, because the closing <code data-sourcepos="8746:44-8746:44">_</code> is preceded by
whitespace:</p>
<div>
<div><a href="#example-380">Example 380</a></div>
@@ -8065,7 +8065,7 @@ whitespace:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8762:1-8763:56" dir="auto">This is not emphasis, because the second <code>_</code> is
+<p data-sourcepos="8762:1-8763:56" dir="auto">This is not emphasis, because the second <code data-sourcepos="8762:43-8762:43">_</code> is
preceded by punctuation and followed by an alphanumeric:</p>
<div>
<div><a href="#example-381">Example 381</a></div>
@@ -8090,7 +8090,7 @@ preceded by punctuation and followed by an alphanumeric:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8793:1-8793:41" dir="auto">Intraword emphasis is disallowed for <code>_</code>:</p>
+<p data-sourcepos="8793:1-8793:41" dir="auto">Intraword emphasis is disallowed for <code data-sourcepos="8793:39-8793:39">_</code>:</p>
<div>
<div><a href="#example-383">Example 383</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -8163,7 +8163,7 @@ followed by whitespace:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8882:1-8884:44" dir="auto">This is not strong emphasis, because the opening <code>**</code> is preceded
+<p data-sourcepos="8882:1-8884:44" dir="auto">This is not strong emphasis, because the opening <code data-sourcepos="8882:51-8882:52">**</code> is preceded
by an alphanumeric and followed by punctuation, and hence
not part of a [left-flanking delimiter run]:</p>
<div>
@@ -8177,7 +8177,7 @@ not part of a [left-flanking delimiter run]:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8899:1-8899:49" dir="auto">Intraword strong emphasis with <code>**</code> is permitted:</p>
+<p data-sourcepos="8899:1-8899:49" dir="auto">Intraword strong emphasis with <code data-sourcepos="8899:33-8899:34">**</code> is permitted:</p>
<div>
<div><a href="#example-390">Example 390</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -8228,7 +8228,7 @@ followed by whitespace:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8961:1-8962:47" dir="auto">This is not strong emphasis, because the opening <code>__</code> is preceded
+<p data-sourcepos="8961:1-8962:47" dir="auto">This is not strong emphasis, because the opening <code data-sourcepos="8961:51-8961:52">__</code> is preceded
by an alphanumeric and followed by punctuation:</p>
<div>
<div><a href="#example-394">Example 394</a></div>
@@ -8241,7 +8241,7 @@ by an alphanumeric and followed by punctuation:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="8977:1-8977:49" dir="auto">Intraword strong emphasis is forbidden with <code>__</code>:</p>
+<p data-sourcepos="8977:1-8977:49" dir="auto">Intraword strong emphasis is forbidden with <code data-sourcepos="8977:46-8977:47">__</code>:</p>
<div>
<div><a href="#example-395">Example 395</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -8314,9 +8314,9 @@ by whitespace:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="9067:1-9068:9" dir="auto">(Nor can it be interpreted as an emphasized <code>*foo bar *</code>, because of
+<p data-sourcepos="9067:1-9068:9" dir="auto">(Nor can it be interpreted as an emphasized <code data-sourcepos="9067:46-9067:55">*foo bar *</code>, because of
Rule 11.)</p>
-<p data-sourcepos="9070:1-9071:56" dir="auto">This is not strong emphasis, because the second <code>**</code> is
+<p data-sourcepos="9070:1-9071:56" dir="auto">This is not strong emphasis, because the second <code data-sourcepos="9070:50-9070:51">**</code> is
preceded by punctuation and followed by an alphanumeric:</p>
<div>
<div><a href="#example-401">Example 401</a></div>
@@ -8392,7 +8392,7 @@ preceded by whitespace:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="9163:1-9164:56" dir="auto">This is not strong emphasis, because the second <code>__</code> is
+<p data-sourcepos="9163:1-9164:56" dir="auto">This is not strong emphasis, because the second <code data-sourcepos="9163:50-9163:51">__</code> is
preceded by punctuation and followed by an alphanumeric:</p>
<div>
<div><a href="#example-407">Example 407</a></div>
@@ -8418,7 +8418,7 @@ with this example:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="9195:1-9195:49" dir="auto">Intraword strong emphasis is forbidden with <code>__</code>:</p>
+<p data-sourcepos="9195:1-9195:49" dir="auto">Intraword strong emphasis is forbidden with <code data-sourcepos="9195:46-9195:47">__</code>:</p>
<div>
<div><a href="#example-409">Example 409</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -8567,7 +8567,7 @@ inside emphasis:</p>
<copy-code></copy-code>
</div>
<p data-sourcepos="9372:1-9377:32" dir="auto">is precluded by the condition that a delimiter that
-can both open and close (like the <code>*</code> after <code>foo</code>)
+can both open and close (like the <code data-sourcepos="9373:36-9373:36">*</code> after <code data-sourcepos="9373:46-9373:48">foo</code>)
cannot form emphasis if the sum of the lengths of
the delimiter runs containing the opening and
closing delimiters is a multiple of 3 unless
@@ -8623,7 +8623,7 @@ omitted:</p>
</div>
</div>
<p data-sourcepos="9441:1-9443:34" dir="auto">When the lengths of the interior closing and opening
-delimiter runs are <em>both</em> multiples of 3, though,
+delimiter runs are <em data-sourcepos="9442:20-9442:25">both</em> multiples of 3, though,
they can match to create emphasis:</p>
<div>
<div><a href="#example-425">Example 425</a></div>
@@ -8926,7 +8926,7 @@ inside strong emphasis:</p>
</div>
</div>
<p data-sourcepos="9806:1-9808:32" dir="auto">Note that when delimiters do not match evenly, Rule 11 determines
-that the excess literal <code>*</code> characters will appear outside of the
+that the excess literal <code data-sourcepos="9807:26-9807:26">*</code> characters will appear outside of the
emphasis, rather than inside it:</p>
<div>
<div><a href="#example-451">Example 451</a></div>
@@ -9073,7 +9073,7 @@ emphasis, rather than inside it:</p>
</div>
</div>
<p data-sourcepos="9982:1-9984:32" dir="auto">Note that when delimiters do not match evenly, Rule 12 determines
-that the excess literal <code>_</code> characters will appear outside of the
+that the excess literal <code data-sourcepos="9983:26-9983:26">_</code> characters will appear outside of the
emphasis, rather than inside it:</p>
<div>
<div><a href="#example-464">Example 464</a></div>
@@ -9385,9 +9385,9 @@ delimiters:</p>
<div>
<h2 data-sourcepos="10357:1-10357:28">
<a id="user-content-strikethrough-extension" class="anchor" href="#strikethrough-extension" aria-hidden="true"></a>Strikethrough (extension)</h2>
-<p data-sourcepos="10359:1-10360:10">GFM enables the <code>strikethrough</code> extension, where an additional emphasis type is
+<p data-sourcepos="10359:1-10360:10">GFM enables the <code data-sourcepos="10359:18-10359:30">strikethrough</code> extension, where an additional emphasis type is
available.</p>
-<p data-sourcepos="10362:1-10362:59">Strikethrough text is any text wrapped in two tildes (<code>~</code>).</p>
+<p data-sourcepos="10362:1-10362:59">Strikethrough text is any text wrapped in two tildes (<code data-sourcepos="10362:56-10362:56">~</code>).</p>
<div>
<div><a href="#example-491">Example 491</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -9424,8 +9424,8 @@ There are two basic kinds of links in Markdown. In [inline links] the
destination and title are given immediately after the link text. In
[reference links] the destination and title are defined elsewhere in
the document.</p>
-<p data-sourcepos="10405:1-10407:22" dir="auto">A <a href="@">link text</a> consists of a sequence of zero or more
-inline elements enclosed by square brackets (<code>[</code> and <code>]</code>). The
+<p data-sourcepos="10405:1-10407:22" dir="auto">A <a data-sourcepos="10405:3-10405:16" href="@">link text</a> consists of a sequence of zero or more
+inline elements enclosed by square brackets (<code data-sourcepos="10406:47-10406:47">[</code> and <code data-sourcepos="10406:55-10406:55">]</code>). The
following rules apply:</p>
<ul data-sourcepos="10409:1-10425:0" dir="auto">
<li data-sourcepos="10409:1-10412:0">
@@ -9436,30 +9436,30 @@ other, the inner-most definition is used.</p>
<li data-sourcepos="10413:1-10417:0">
<p data-sourcepos="10413:3-10416:22">Brackets are allowed in the [link text] only if (a) they
are backslash-escaped or (b) they appear as a matched pair of brackets,
-with an open bracket <code>[</code>, a sequence of zero or more inlines, and
-a close bracket <code>]</code>.</p>
+with an open bracket <code data-sourcepos="10415:25-10415:25">[</code>, a sequence of zero or more inlines, and
+a close bracket <code data-sourcepos="10416:20-10416:20">]</code>.</p>
</li>
<li data-sourcepos="10418:1-10422:0">
<p data-sourcepos="10418:3-10421:25">Backtick [code spans], [autolinks], and raw [HTML tags] bind more tightly
than the brackets in link text. Thus, for example,
-<code>[foo`]`</code> could not be a link text, since the second <code>]</code>
+<code data-sourcepos="10420:5-10420:13">[foo`]`</code> could not be a link text, since the second <code data-sourcepos="10420:61-10420:61">]</code>
is part of a code span.</p>
</li>
<li data-sourcepos="10423:1-10425:0">
<p data-sourcepos="10423:3-10424:78">The brackets in link text bind more tightly than markers for
-[emphasis and strong emphasis]. Thus, for example, <code>*[foo*](url)</code> is a link.</p>
+[emphasis and strong emphasis]. Thus, for example, <code data-sourcepos="10424:55-10424:66">*[foo*](url)</code> is a link.</p>
</li>
</ul>
-<p data-sourcepos="10426:1-10426:42" dir="auto">A <a href="@">link destination</a> consists of either</p>
+<p data-sourcepos="10426:1-10426:42" dir="auto">A <a data-sourcepos="10426:3-10426:23" href="@">link destination</a> consists of either</p>
<ul data-sourcepos="10428:1-10439:0" dir="auto">
<li data-sourcepos="10428:1-10431:0">
-<p data-sourcepos="10428:3-10430:27">a sequence of zero or more characters between an opening <code>&lt;</code> and a
-closing <code>&gt;</code> that contains no line breaks or unescaped
-<code>&lt;</code> or <code>&gt;</code> characters, or</p>
+<p data-sourcepos="10428:3-10430:27">a sequence of zero or more characters between an opening <code data-sourcepos="10428:61-10428:61">&lt;</code> and a
+closing <code data-sourcepos="10429:12-10429:12">&gt;</code> that contains no line breaks or unescaped
+<code data-sourcepos="10430:4-10430:4">&lt;</code> or <code data-sourcepos="10430:11-10430:11">&gt;</code> characters, or</p>
</li>
<li data-sourcepos="10432:1-10439:0">
<p data-sourcepos="10432:3-10438:23">a nonempty sequence of characters that does not start with
-<code>&lt;</code>, does not include ASCII space or control characters, and
+<code data-sourcepos="10433:4-10433:4">&lt;</code>, does not include ASCII space or control characters, and
includes parentheses only if (a) they are backslash-escaped or
(b) they are part of a balanced pair of unescaped parentheses.
(Implementations may impose limits on parentheses nesting to
@@ -9467,34 +9467,34 @@ avoid performance issues, but at least three levels of nesting
should be supported.)</p>
</li>
</ul>
-<p data-sourcepos="10440:1-10440:37" dir="auto">A <a href="@">link title</a> consists of either</p>
+<p data-sourcepos="10440:1-10440:37" dir="auto">A <a data-sourcepos="10440:3-10440:17" href="@">link title</a> consists of either</p>
<ul data-sourcepos="10442:1-10453:0" dir="auto">
<li data-sourcepos="10442:1-10445:0">
<p data-sourcepos="10442:3-10444:23">a sequence of zero or more characters between straight double-quote
-characters (<code>"</code>), including a <code>"</code> character only if it is
+characters (<code data-sourcepos="10443:16-10443:16">"</code>), including a <code data-sourcepos="10443:34-10443:34">"</code> character only if it is
backslash-escaped, or</p>
</li>
<li data-sourcepos="10446:1-10449:0">
<p data-sourcepos="10446:3-10448:23">a sequence of zero or more characters between straight single-quote
-characters (<code>'</code>), including a <code>'</code> character only if it is
+characters (<code data-sourcepos="10447:16-10447:16">'</code>), including a <code data-sourcepos="10447:34-10447:34">'</code> character only if it is
backslash-escaped, or</p>
</li>
<li data-sourcepos="10450:1-10453:0">
<p data-sourcepos="10450:3-10452:20">a sequence of zero or more characters between matching parentheses
-(<code>(...)</code>), including a <code>(</code> or <code>)</code> character only if it is
+(<code data-sourcepos="10451:5-10451:9">(...)</code>), including a <code data-sourcepos="10451:27-10451:27">(</code> or <code data-sourcepos="10451:34-10451:34">)</code> character only if it is
backslash-escaped.</p>
</li>
</ul>
<p data-sourcepos="10454:1-10455:15" dir="auto">Although [link titles] may span multiple lines, they may not contain
a [blank line].</p>
-<p data-sourcepos="10457:1-10467:6" dir="auto">An <a href="@">inline link</a> consists of a [link text] followed immediately
-by a left parenthesis <code>(</code>, optional [whitespace], an optional
+<p data-sourcepos="10457:1-10467:6" dir="auto">An <a data-sourcepos="10457:4-10457:19" href="@">inline link</a> consists of a [link text] followed immediately
+by a left parenthesis <code data-sourcepos="10458:24-10458:24">(</code>, optional [whitespace], an optional
[link destination], an optional [link title] separated from the link
destination by [whitespace], optional [whitespace], and a right
-parenthesis <code>)</code>. The link's text consists of the inlines contained
+parenthesis <code data-sourcepos="10461:14-10461:14">)</code>. The link's text consists of the inlines contained
in the [link text] (excluding the enclosing square brackets).
The link's URI consists of the link destination, excluding enclosing
-<code>&lt;...&gt;</code> if present, with backslash-escapes in effect as described
+<code data-sourcepos="10464:2-10464:6">&lt;...&gt;</code> if present, with backslash-escapes in effect as described
above. The link's title consists of the link title, excluding its
enclosing delimiters, with backslash-escapes in effect as described
above.</p>
@@ -9597,7 +9597,7 @@ even if enclosed in pointy brackets:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="10584:1-10585:19" dir="auto">The destination can contain <code>)</code> if it is enclosed
+<p data-sourcepos="10584:1-10585:19" dir="auto">The destination can contain <code data-sourcepos="10584:30-10584:30">)</code> if it is enclosed
in pointy brackets:</p>
<div>
<div><a href="#example-501">Example 501</a></div>
@@ -9665,7 +9665,7 @@ balanced:</p>
</div>
</div>
<p data-sourcepos="10661:1-10662:13" dir="auto">However, if you have unbalanced parentheses, you need to escape or use the
-<code>&lt;...&gt;</code> form:</p>
+<code data-sourcepos="10662:2-10662:6">&lt;...&gt;</code> form:</p>
<div>
<div><a href="#example-506">Example 506</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -9831,17 +9831,17 @@ Other [Unicode whitespace] like non-breaking space doesn't work.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="10863:1-10876:61" dir="auto">(Note: <code>Markdown.pl</code> did allow double quotes inside a double-quoted
+<p data-sourcepos="10863:1-10876:61" dir="auto">(Note: <code data-sourcepos="10863:10-10863:20">Markdown.pl</code> did allow double quotes inside a double-quoted
title, and its test suite included a test demonstrating this.
But it is hard to see a good rationale for the extra complexity this
brings, since there are already many ways---backslash escaping,
entity and numeric character references, or using a different
quote type for the enclosing title---to write titles containing
-double quotes. <code>Markdown.pl</code>'s handling of titles has a number
+double quotes. <code data-sourcepos="10869:18-10869:28">Markdown.pl</code>'s handling of titles has a number
of other strange features. For example, it allows single-quoted
titles in inline links, but not reference links. And, in
reference links but not inline links, it allows a title to begin
-with <code>"</code> and end with <code>)</code>. <code>Markdown.pl</code> 1.0.1 even allows
+with <code data-sourcepos="10873:7-10873:7">"</code> and end with <code data-sourcepos="10873:24-10873:24">)</code>. <code data-sourcepos="10873:30-10873:40">Markdown.pl</code> 1.0.1 even allows
titles with no closing quotation mark, though 1.0.2b8 does not.
It seems preferable to adopt a simple, rational rule that works
the same way in inline links and link reference definitions.)</p>
@@ -9998,7 +9998,7 @@ emphasis grouping:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="11063:1-11064:11" dir="auto">Note that brackets that <em>aren't</em> part of links do not take
+<p data-sourcepos="11063:1-11064:11" dir="auto">Note that brackets that <em data-sourcepos="11063:25-11063:32">aren't</em> part of links do not take
precedence:</p>
<div>
<div><a href="#example-531">Example 531</a></div>
@@ -10046,23 +10046,23 @@ and autolinks over link grouping:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="11121:1-11123:41" dir="auto">There are three kinds of <a href="@">reference link</a>s:
-<a href="#full-reference-link">full</a>, <a href="#collapsed-reference-link">collapsed</a>,
-and <a href="#shortcut-reference-link">shortcut</a>.</p>
-<p data-sourcepos="11125:1-11127:71" dir="auto">A <a href="@">full reference link</a>
+<p data-sourcepos="11121:1-11123:41" dir="auto">There are three kinds of <a data-sourcepos="11121:26-11121:44" href="@">reference link</a>s:
+<a data-sourcepos="11122:1-11122:28" href="#full-reference-link">full</a>, <a data-sourcepos="11122:31-11122:68" href="#collapsed-reference-link">collapsed</a>,
+and <a data-sourcepos="11123:5-11123:40" href="#shortcut-reference-link">shortcut</a>.</p>
+<p data-sourcepos="11125:1-11127:71" dir="auto">A <a data-sourcepos="11125:3-11125:26" href="@">full reference link</a>
consists of a [link text] immediately followed by a [link label]
that [matches] a [link reference definition] elsewhere in the document.</p>
-<p data-sourcepos="11129:1-11135:9" dir="auto">A <a href="@">link label</a> begins with a left bracket (<code>[</code>) and ends
-with the first right bracket (<code>]</code>) that is not backslash-escaped.
+<p data-sourcepos="11129:1-11135:9" dir="auto">A <a data-sourcepos="11129:3-11129:17" href="@">link label</a> begins with a left bracket (<code data-sourcepos="11129:49-11129:49">[</code>) and ends
+with the first right bracket (<code data-sourcepos="11130:32-11130:32">]</code>) that is not backslash-escaped.
Between these brackets there must be at least one [non-whitespace character].
Unescaped square bracket characters are not allowed inside the
opening and closing square brackets of [link labels]. A link
label can have at most 999 characters inside the square
brackets.</p>
-<p data-sourcepos="11137:1-11144:69" dir="auto">One label <a href="@">matches</a>
+<p data-sourcepos="11137:1-11144:69" dir="auto">One label <a data-sourcepos="11137:11-11137:22" href="@">matches</a>
another just in case their normalized forms are equal. To normalize a
label, strip off the opening and closing brackets,
-perform the <em>Unicode case fold</em>, strip leading and trailing
+perform the <em data-sourcepos="11140:13-11140:31">Unicode case fold</em>, strip leading and trailing
[whitespace] and collapse consecutive internal
[whitespace] to a single space. If there are multiple
matching reference link definitions, the one that comes first in the
@@ -10332,7 +10332,7 @@ intended:</p>
<copy-code></copy-code>
</div>
<p data-sourcepos="11458:1-11464:20" dir="auto">(Note that [shortcut reference links] were introduced by Gruber
-himself in a beta version of <code>Markdown.pl</code>, but never included
+himself in a beta version of <code data-sourcepos="11459:31-11459:41">Markdown.pl</code>, but never included
in the official syntax description. Without shortcut reference
links, it is harmless to allow space between the link text and
link label; but once shortcut references are introduced, it is
@@ -10428,7 +10428,7 @@ backslash-escaped:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="11571:1-11571:55" dir="auto">Note that in this example <code>]</code> is not backslash-escaped:</p>
+<p data-sourcepos="11571:1-11571:55" dir="auto">Note that in this example <code data-sourcepos="11571:28-11571:28">]</code> is not backslash-escaped:</p>
<div>
<div><a href="#example-558">Example 558</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -10475,14 +10475,14 @@ backslash-escaped:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="11626:1-11633:40" dir="auto">A <a href="@">collapsed reference link</a>
+<p data-sourcepos="11626:1-11633:40" dir="auto">A <a data-sourcepos="11626:3-11626:31" href="@">collapsed reference link</a>
consists of a [link label] that [matches] a
[link reference definition] elsewhere in the
-document, followed by the string <code>[]</code>.
+document, followed by the string <code data-sourcepos="11629:35-11629:36">[]</code>.
The contents of the first link label are parsed as inlines,
which are used as the link's text. The link's URI and title are
provided by the matching reference link definition. Thus,
-<code>[foo][]</code> is equivalent to <code>[foo][foo]</code>.</p>
+<code data-sourcepos="11633:2-11633:8">[foo][]</code> is equivalent to <code data-sourcepos="11633:29-11633:38">[foo][foo]</code>.</p>
<div>
<div><a href="#example-561">Example 561</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -10540,14 +10540,14 @@ allowed between the two sets of brackets:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="11703:1-11710:41" dir="auto">A <a href="@">shortcut reference link</a>
+<p data-sourcepos="11703:1-11710:41" dir="auto">A <a data-sourcepos="11703:3-11703:30" href="@">shortcut reference link</a>
consists of a [link label] that [matches] a
[link reference definition] elsewhere in the
-document and is not followed by <code>[]</code> or a link label.
+document and is not followed by <code data-sourcepos="11706:34-11706:35">[]</code> or a link label.
The contents of the first link label are parsed as inlines,
which are used as the link's text. The link's URI and title
are provided by the matching link reference definition.
-Thus, <code>[foo]</code> is equivalent to <code>[foo][]</code>.</p>
+Thus, <code data-sourcepos="11710:8-11710:12">[foo]</code> is equivalent to <code data-sourcepos="11710:33-11710:39">[foo][]</code>.</p>
<div>
<div><a href="#example-565">Example 565</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -10714,8 +10714,8 @@ references:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="11904:1-11905:23" dir="auto">In the following case <code>[bar][baz]</code> is parsed as a reference,
-<code>[foo]</code> as normal text:</p>
+<p data-sourcepos="11904:1-11905:23" dir="auto">In the following case <code data-sourcepos="11904:24-11904:33">[bar][baz]</code> is parsed as a reference,
+<code data-sourcepos="11905:2-11905:6">[foo]</code> as normal text:</p>
<div>
<div><a href="#example-577">Example 577</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -10729,8 +10729,8 @@ references:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="11922:1-11923:19" dir="auto">Here, though, <code>[foo][bar]</code> is parsed as a reference, since
-<code>[bar]</code> is defined:</p>
+<p data-sourcepos="11922:1-11923:19" dir="auto">Here, though, <code data-sourcepos="11922:16-11922:25">[foo][bar]</code> is parsed as a reference, since
+<code data-sourcepos="11923:2-11923:6">[bar]</code> is defined:</p>
<div>
<div><a href="#example-578">Example 578</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -10745,8 +10745,8 @@ references:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="11941:1-11942:65" dir="auto">Here <code>[foo]</code> is not parsed as a shortcut reference, because it
-is followed by a link label (even though <code>[bar]</code> is not defined):</p>
+<p data-sourcepos="11941:1-11942:65" dir="auto">Here <code data-sourcepos="11941:7-11941:11">[foo]</code> is not parsed as a shortcut reference, because it
+is followed by a link label (even though <code data-sourcepos="11942:43-11942:47">[bar]</code> is not defined):</p>
<div>
<div><a href="#example-579">Example 579</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -10765,13 +10765,13 @@ is followed by a link label (even though <code>[bar]</code> is not defined):</p>
<a id="user-content-images" class="anchor" href="#images" aria-hidden="true"></a>Images</h2>
<p data-sourcepos="11963:1-11971:55" dir="auto">Syntax for images is like the syntax for links, with one
difference. Instead of [link text], we have an
-<a href="@">image description</a>. The rules for this are the
+<a data-sourcepos="11965:1-11965:22" href="@">image description</a>. The rules for this are the
same as for [link text], except that (a) an
-image description starts with <code>![</code> rather than <code>[</code>, and
+image description starts with <code data-sourcepos="11967:32-11967:33">![</code> rather than <code data-sourcepos="11967:49-11967:49">[</code>, and
(b) an image description may contain links.
An image description has inline elements
as its contents. When an image is rendered to HTML,
-this is standardly used as the image's <code>alt</code> attribute.</p>
+this is standardly used as the image's <code data-sourcepos="11971:41-11971:43">alt</code> attribute.</p>
<div>
<div><a href="#example-580">Example 580</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -10821,7 +10821,7 @@ this is standardly used as the image's <code>alt</code> attribute.</p>
<p data-sourcepos="12027:1-12032:40" dir="auto">Though this spec is concerned with parsing, not rendering, it is
recommended that in rendering to HTML, only the plain string content
of the [image description] be used. Note that in
-the above example, the alt attribute's value is <code>foo bar</code>, not <code>foo [bar](/url)</code> or <code>foo &lt;a href="/url"&gt;bar&lt;/a&gt;</code>. Only the plain string
+the above example, the alt attribute's value is <code data-sourcepos="12030:50-12030:56">foo bar</code>, not <code data-sourcepos="12030:65-12031:11">foo [bar](/url)</code> or <code data-sourcepos="12031:18-12031:43">foo &lt;a href="/url"&gt;bar&lt;/a&gt;</code>. Only the plain string
content is rendered, without formatting.</p>
<div>
<div><a href="#example-584">Example 584</a></div>
@@ -11034,8 +11034,8 @@ between the two sets of brackets:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12284:1-12285:33" dir="auto">If you just want a literal <code>!</code> followed by bracketed text, you can
-backslash-escape the opening <code>[</code>:</p>
+<p data-sourcepos="12284:1-12285:33" dir="auto">If you just want a literal <code data-sourcepos="12284:29-12284:29">!</code> followed by bracketed text, you can
+backslash-escape the opening <code data-sourcepos="12285:31-12285:31">[</code>:</p>
<div>
<div><a href="#example-600">Example 600</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -11049,8 +11049,8 @@ backslash-escape the opening <code>[</code>:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12302:1-12303:4" dir="auto">If you want a link after a literal <code>!</code>, backslash-escape the
-<code>!</code>:</p>
+<p data-sourcepos="12302:1-12303:4" dir="auto">If you want a link after a literal <code data-sourcepos="12302:37-12302:37">!</code>, backslash-escape the
+<code data-sourcepos="12303:2-12303:2">!</code>:</p>
<div>
<div><a href="#example-601">Example 601</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -11066,19 +11066,19 @@ backslash-escape the opening <code>[</code>:</p>
</div>
<h2 data-sourcepos="12320:1-12320:12" dir="auto">
<a id="user-content-autolinks" class="anchor" href="#autolinks" aria-hidden="true"></a>Autolinks</h2>
-<p data-sourcepos="12322:1-12324:18" dir="auto"><a href="@">Autolink</a>s are absolute URIs and email addresses inside
-<code>&lt;</code> and <code>&gt;</code>. They are parsed as links, with the URL or email address
+<p data-sourcepos="12322:1-12324:18" dir="auto"><a data-sourcepos="12322:1-12322:13" href="@">Autolink</a>s are absolute URIs and email addresses inside
+<code data-sourcepos="12323:2-12323:2">&lt;</code> and <code data-sourcepos="12323:10-12323:10">&gt;</code>. They are parsed as links, with the URL or email address
as the link label.</p>
-<p data-sourcepos="12326:1-12328:52" dir="auto">A <a href="@">URI autolink</a> consists of <code>&lt;</code>, followed by an
-[absolute URI] followed by <code>&gt;</code>. It is parsed as
+<p data-sourcepos="12326:1-12328:52" dir="auto">A <a data-sourcepos="12326:3-12326:19" href="@">URI autolink</a> consists of <code data-sourcepos="12326:34-12326:34">&lt;</code>, followed by an
+[absolute URI] followed by <code data-sourcepos="12327:29-12327:29">&gt;</code>. It is parsed as
a link to the URI, with the URI as the link's label.</p>
-<p data-sourcepos="12330:1-12335:25" dir="auto">An <a href="@">absolute URI</a>,
-for these purposes, consists of a [scheme] followed by a colon (<code>:</code>)
+<p data-sourcepos="12330:1-12335:25" dir="auto">An <a data-sourcepos="12330:4-12330:20" href="@">absolute URI</a>,
+for these purposes, consists of a [scheme] followed by a colon (<code data-sourcepos="12331:66-12331:66">:</code>)
followed by zero or more characters other than ASCII
-[whitespace] and control characters, <code>&lt;</code>, and <code>&gt;</code>. If
+[whitespace] and control characters, <code data-sourcepos="12333:39-12333:39">&lt;</code>, and <code data-sourcepos="12333:48-12333:48">&gt;</code>. If
the URI includes these characters, they must be percent-encoded
-(e.g. <code>%20</code> for a space).</p>
-<p data-sourcepos="12337:1-12340:37" dir="auto">For purposes of this spec, a <a href="@">scheme</a> is any sequence
+(e.g. <code data-sourcepos="12335:8-12335:10">%20</code> for a space).</p>
+<p data-sourcepos="12337:1-12340:37" dir="auto">For purposes of this spec, a <a data-sourcepos="12337:30-12337:40" href="@">scheme</a> is any sequence
of 2--32 characters beginning with an ASCII letter and followed
by any combination of ASCII letters, digits, or the symbols plus
("+"), period ("."), or hyphen ("-").</p>
@@ -11200,13 +11200,13 @@ with their syntax:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12485:1-12488:55" dir="auto">An <a href="@">email autolink</a>
-consists of <code>&lt;</code>, followed by an [email address],
-followed by <code>&gt;</code>. The link's label is the email address,
-and the URL is <code>mailto:</code> followed by the email address.</p>
-<p data-sourcepos="12490:1-12493:83" dir="auto">An <a href="@">email address</a>,
+<p data-sourcepos="12485:1-12488:55" dir="auto">An <a data-sourcepos="12485:4-12485:22" href="@">email autolink</a>
+consists of <code data-sourcepos="12486:14-12486:14">&lt;</code>, followed by an [email address],
+followed by <code data-sourcepos="12487:14-12487:14">&gt;</code>. The link's label is the email address,
+and the URL is <code data-sourcepos="12488:17-12488:23">mailto:</code> followed by the email address.</p>
+<p data-sourcepos="12490:1-12493:83" dir="auto">An <a data-sourcepos="12490:4-12490:21" href="@">email address</a>,
for these purposes, is anything that matches
-the <a href="https://html.spec.whatwg.org/multipage/forms.html#e-mail-state-(type=email)" rel="nofollow noreferrer noopener" target="_blank">non-normative regex from the HTML5
+the <a data-sourcepos="12493:5-12493:82" href="https://html.spec.whatwg.org/multipage/forms.html#e-mail-state-(type=email)" rel="nofollow noreferrer noopener" target="_blank">non-normative regex from the HTML5
spec</a>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="12495:5-12497:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">/^[a-zA-Z0-9.!#$%&amp;'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?</span>
@@ -11318,21 +11318,21 @@ spec</a>:</p>
<div>
<h2 data-sourcepos="12622:1-12622:24">
<a id="user-content-autolinks-extension" class="anchor" href="#autolinks-extension" aria-hidden="true"></a>Autolinks (extension)</h2>
-<p data-sourcepos="12624:1-12625:29">GFM enables the <code>autolink</code> extension, where autolinks will be recognised in a
+<p data-sourcepos="12624:1-12625:29">GFM enables the <code data-sourcepos="12624:18-12624:25">autolink</code> extension, where autolinks will be recognised in a
greater number of conditions.</p>
-<p data-sourcepos="12627:1-12631:8">[Autolink]s can also be constructed without requiring the use of <code>&lt;</code> and to <code>&gt;</code>
+<p data-sourcepos="12627:1-12631:8">[Autolink]s can also be constructed without requiring the use of <code data-sourcepos="12627:67-12627:67">&lt;</code> and to <code data-sourcepos="12627:78-12627:78">&gt;</code>
to delimit them, although they will be recognized under a smaller set of
circumstances. All such recognized autolinks can only come at the beginning of
-a line, after whitespace, or any of the delimiting characters <code>*</code>, <code>_</code>, <code>~</code>,
-and <code>(</code>.</p>
-<p data-sourcepos="12633:1-12639:73">An <a href="@">extended www autolink</a> will be recognized
-when the text <code>www.</code> is found followed by a [valid domain].
-A <a href="@">valid domain</a> consists of segments
-of alphanumeric characters, underscores (<code>_</code>) and hyphens (<code>-</code>)
-separated by periods (<code>.</code>).
+a line, after whitespace, or any of the delimiting characters <code data-sourcepos="12630:64-12630:64">*</code>, <code data-sourcepos="12630:69-12630:69">_</code>, <code data-sourcepos="12630:74-12630:74">~</code>,
+and <code data-sourcepos="12631:6-12631:6">(</code>.</p>
+<p data-sourcepos="12633:1-12639:73">An <a data-sourcepos="12633:4-12633:29" href="@">extended www autolink</a> will be recognized
+when the text <code data-sourcepos="12634:16-12634:19">www.</code> is found followed by a [valid domain].
+A <a data-sourcepos="12635:3-12635:19" href="@">valid domain</a> consists of segments
+of alphanumeric characters, underscores (<code data-sourcepos="12636:43-12636:43">_</code>) and hyphens (<code data-sourcepos="12636:61-12636:61">-</code>)
+separated by periods (<code data-sourcepos="12637:24-12637:24">.</code>).
There must be at least one period,
and no underscores may be present in the last two segments of the domain.</p>
-<p data-sourcepos="12641:1-12641:49">The scheme <code>http</code> will be inserted automatically:</p>
+<p data-sourcepos="12641:1-12641:49">The scheme <code data-sourcepos="12641:13-12641:16">http</code> will be inserted automatically:</p>
<div>
<div><a href="#example-621">Example 621</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -11344,7 +11344,7 @@ and no underscores may be present in the last two segments of the domain.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12655:1-12655:77">After a [valid domain], zero or more non-space non-<code>&lt;</code> characters may follow:</p>
+<p data-sourcepos="12655:1-12655:77">After a [valid domain], zero or more non-space non-<code data-sourcepos="12655:53-12655:53">&lt;</code> characters may follow:</p>
<div>
<div><a href="#example-622">Example 622</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -11356,8 +11356,8 @@ and no underscores may be present in the last two segments of the domain.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12669:1-12669:64">We then apply <a href="@">extended autolink path validation</a> as follows:</p>
-<p data-sourcepos="12671:1-12673:21">Trailing punctuation (specifically, <code>?</code>, <code>!</code>, <code>.</code>, <code>,</code>, <code>:</code>, <code>*</code>, <code>_</code>, and <code>~</code>)
+<p data-sourcepos="12669:1-12669:64">We then apply <a data-sourcepos="12669:15-12669:52" href="@">extended autolink path validation</a> as follows:</p>
+<p data-sourcepos="12671:1-12673:21">Trailing punctuation (specifically, <code data-sourcepos="12671:38-12671:38">?</code>, <code data-sourcepos="12671:43-12671:43">!</code>, <code data-sourcepos="12671:48-12671:48">.</code>, <code data-sourcepos="12671:53-12671:53">,</code>, <code data-sourcepos="12671:58-12671:58">:</code>, <code data-sourcepos="12671:63-12671:63">*</code>, <code data-sourcepos="12671:68-12671:68">_</code>, and <code data-sourcepos="12671:77-12671:77">~</code>)
will not be considered part of the autolink, though they may be included in the
interior of the link:</p>
<div>
@@ -11374,7 +11374,7 @@ interior of the link:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12690:1-12693:76">When an autolink ends in <code>)</code>, we scan the entire autolink for the total number
+<p data-sourcepos="12690:1-12693:76">When an autolink ends in <code data-sourcepos="12690:27-12690:27">)</code>, we scan the entire autolink for the total number
of parentheses. If there is a greater number of closing parentheses than
opening ones, we don't consider the unmatched trailing parentheses part of the
autolink, in order to facilitate including an autolink inside a parenthesis:</p>
@@ -11398,7 +11398,7 @@ autolink, in order to facilitate including an autolink inside a parenthesis:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12716:1-12718:8">This check is only done when the link ends in a closing parentheses <code>)</code>, so if
+<p data-sourcepos="12716:1-12718:8">This check is only done when the link ends in a closing parentheses <code data-sourcepos="12716:70-12716:70">)</code>, so if
the only parentheses are in the interior of the autolink, no special rules are
applied:</p>
<div>
@@ -11412,8 +11412,8 @@ applied:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12732:1-12735:13">If an autolink ends in a semicolon (<code>;</code>), we check to see if it appears to
-resemble an [entity reference][entity references]; if the preceding text is <code>&amp;</code>
+<p data-sourcepos="12732:1-12735:13">If an autolink ends in a semicolon (<code data-sourcepos="12732:38-12732:38">;</code>), we check to see if it appears to
+resemble an [entity reference][entity references]; if the preceding text is <code data-sourcepos="12733:78-12733:78">&amp;</code>
followed by one or more alphanumeric characters. If so, it is excluded from
the autolink:</p>
<div>
@@ -11430,7 +11430,7 @@ the autolink:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12752:1-12752:33"><code>&lt;</code> immediately ends an autolink.</p>
+<p data-sourcepos="12752:1-12752:33"><code data-sourcepos="12752:2-12752:2">&lt;</code> immediately ends an autolink.</p>
<div>
<div><a href="#example-627">Example 627</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -11442,9 +11442,9 @@ the autolink:</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12766:1-12769:36">An <a href="@">extended url autolink</a> will be recognised when one of the schemes
-<code>http://</code>, <code>https://</code>, or <code>ftp://</code>, followed by a [valid domain], then zero or
-more non-space non-<code>&lt;</code> characters according to
+<p data-sourcepos="12766:1-12769:36">An <a data-sourcepos="12766:4-12766:29" href="@">extended url autolink</a> will be recognised when one of the schemes
+<code data-sourcepos="12767:2-12767:8">http://</code>, <code data-sourcepos="12767:13-12767:20">https://</code>, or <code data-sourcepos="12767:28-12767:33">ftp://</code>, followed by a [valid domain], then zero or
+more non-space non-<code data-sourcepos="12768:21-12768:21">&lt;</code> characters according to
[extended autolink path validation]:</p>
<div>
<div><a href="#example-628">Example 628</a></div>
@@ -11463,18 +11463,18 @@ more non-space non-<code>&lt;</code> characters according to
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12790:1-12792:20">An <a href="@">extended email autolink</a> will be recognised when an email address is
+<p data-sourcepos="12790:1-12792:20">An <a data-sourcepos="12790:4-12790:31" href="@">extended email autolink</a> will be recognised when an email address is
recognised within any text node. Email addresses are recognised according to
the following rules:</p>
<ul data-sourcepos="12794:1-12800:0">
-<li data-sourcepos="12794:1-12794:75">One ore more characters which are alphanumeric, or <code>.</code>, <code>-</code>, <code>_</code>, or <code>+</code>.</li>
-<li data-sourcepos="12795:1-12795:16">An <code>@</code> symbol.</li>
-<li data-sourcepos="12796:1-12800:0">One or more characters which are alphanumeric, or <code>-</code> or <code>_</code>,
-separated by periods (<code>.</code>).
+<li data-sourcepos="12794:1-12794:75">One ore more characters which are alphanumeric, or <code data-sourcepos="12794:55-12794:55">.</code>, <code data-sourcepos="12794:60-12794:60">-</code>, <code data-sourcepos="12794:65-12794:65">_</code>, or <code data-sourcepos="12794:73-12794:73">+</code>.</li>
+<li data-sourcepos="12795:1-12795:16">An <code data-sourcepos="12795:7-12795:7">@</code> symbol.</li>
+<li data-sourcepos="12796:1-12800:0">One or more characters which are alphanumeric, or <code data-sourcepos="12796:54-12796:54">-</code> or <code data-sourcepos="12796:61-12796:61">_</code>,
+separated by periods (<code data-sourcepos="12797:26-12797:26">.</code>).
There must be at least one period.
-The last character must not be one of <code>-</code> or <code>_</code>.</li>
+The last character must not be one of <code data-sourcepos="12799:42-12799:42">-</code> or <code data-sourcepos="12799:49-12799:49">_</code>.</li>
</ul>
-<p data-sourcepos="12801:1-12801:71">The scheme <code>mailto:</code> will automatically be added to the generated link:</p>
+<p data-sourcepos="12801:1-12801:71">The scheme <code data-sourcepos="12801:13-12801:19">mailto:</code> will automatically be added to the generated link:</p>
<div>
<div><a href="#example-629">Example 629</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -11486,7 +11486,7 @@ The last character must not be one of <code>-</code> or <code>_</code>.</li>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12815:1-12815:44"><code>+</code> can occur before the <code>@</code>, but not after.</p>
+<p data-sourcepos="12815:1-12815:44"><code data-sourcepos="12815:2-12815:2">+</code> can occur before the <code data-sourcepos="12815:27-12815:27">@</code>, but not after.</p>
<div>
<div><a href="#example-630">Example 630</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -11498,7 +11498,7 @@ The last character must not be one of <code>-</code> or <code>_</code>.</li>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="12829:1-12831:12"><code>.</code>, <code>-</code>, and <code>_</code> can occur on both sides of the <code>@</code>, but only <code>.</code> may occur at
+<p data-sourcepos="12829:1-12831:12"><code data-sourcepos="12829:2-12829:2">.</code>, <code data-sourcepos="12829:7-12829:7">-</code>, and <code data-sourcepos="12829:16-12829:16">_</code> can occur on both sides of the <code data-sourcepos="12829:51-12829:51">@</code>, but only <code data-sourcepos="12829:65-12829:65">.</code> may occur at
the end of the email address, in which case it will not be considered part of
the address:</p>
<div>
@@ -11524,58 +11524,58 @@ the address:</p>
</div>
<h2 data-sourcepos="12856:1-12856:11" dir="auto">
<a id="user-content-raw-html" class="anchor" href="#raw-html" aria-hidden="true"></a>Raw HTML</h2>
-<p data-sourcepos="12858:1-12861:57" dir="auto">Text between <code>&lt;</code> and <code>&gt;</code> that looks like an HTML tag is parsed as a
+<p data-sourcepos="12858:1-12861:57" dir="auto">Text between <code data-sourcepos="12858:15-12858:15">&lt;</code> and <code data-sourcepos="12858:23-12858:23">&gt;</code> that looks like an HTML tag is parsed as a
raw HTML tag and will be rendered in HTML without escaping.
Tag and attribute names are not limited to current HTML tags,
so custom tags (and even, say, DocBook tags) may be used.</p>
<p data-sourcepos="12863:1-12863:29" dir="auto">Here is the grammar for tags:</p>
-<p data-sourcepos="12865:1-12867:14" dir="auto">A <a href="@">tag name</a> consists of an ASCII letter
+<p data-sourcepos="12865:1-12867:14" dir="auto">A <a data-sourcepos="12865:3-12865:15" href="@">tag name</a> consists of an ASCII letter
followed by zero or more ASCII letters, digits, or
-hyphens (<code>-</code>).</p>
-<p data-sourcepos="12869:1-12871:32" dir="auto">An <a href="@">attribute</a> consists of [whitespace],
+hyphens (<code data-sourcepos="12867:11-12867:11">-</code>).</p>
+<p data-sourcepos="12869:1-12871:32" dir="auto">An <a data-sourcepos="12869:4-12869:17" href="@">attribute</a> consists of [whitespace],
an [attribute name], and an optional
[attribute value specification].</p>
-<p data-sourcepos="12873:1-12876:52" dir="auto">An <a href="@">attribute name</a>
-consists of an ASCII letter, <code>_</code>, or <code>:</code>, followed by zero or more ASCII
-letters, digits, <code>_</code>, <code>.</code>, <code>:</code>, or <code>-</code>. (Note: This is the XML
+<p data-sourcepos="12873:1-12876:52" dir="auto">An <a data-sourcepos="12873:4-12873:22" href="@">attribute name</a>
+consists of an ASCII letter, <code data-sourcepos="12874:31-12874:31">_</code>, or <code data-sourcepos="12874:39-12874:39">:</code>, followed by zero or more ASCII
+letters, digits, <code data-sourcepos="12875:19-12875:19">_</code>, <code data-sourcepos="12875:24-12875:24">.</code>, <code data-sourcepos="12875:29-12875:29">:</code>, or <code data-sourcepos="12875:37-12875:37">-</code>. (Note: This is the XML
specification restricted to ASCII. HTML5 is laxer.)</p>
-<p data-sourcepos="12878:1-12881:7" dir="auto">An <a href="@">attribute value specification</a>
+<p data-sourcepos="12878:1-12881:7" dir="auto">An <a data-sourcepos="12878:4-12878:37" href="@">attribute value specification</a>
consists of optional [whitespace],
-a <code>=</code> character, optional [whitespace], and an [attribute
+a <code data-sourcepos="12880:4-12880:4">=</code> character, optional [whitespace], and an [attribute
value].</p>
-<p data-sourcepos="12883:1-12885:72" dir="auto">An <a href="@">attribute value</a>
+<p data-sourcepos="12883:1-12885:72" dir="auto">An <a data-sourcepos="12883:4-12883:23" href="@">attribute value</a>
consists of an [unquoted attribute value],
a [single-quoted attribute value], or a [double-quoted attribute value].</p>
-<p data-sourcepos="12887:1-12889:60" dir="auto">An <a href="@">unquoted attribute value</a>
+<p data-sourcepos="12887:1-12889:60" dir="auto">An <a data-sourcepos="12887:4-12887:32" href="@">unquoted attribute value</a>
is a nonempty string of characters not
-including [whitespace], <code>"</code>, <code>'</code>, <code>=</code>, <code>&lt;</code>, <code>&gt;</code>, or <code>`</code>.</p>
-<p data-sourcepos="12891:1-12893:46" dir="auto">A <a href="@">single-quoted attribute value</a>
-consists of <code>'</code>, zero or more
-characters not including <code>'</code>, and a final <code>'</code>.</p>
-<p data-sourcepos="12895:1-12897:46" dir="auto">A <a href="@">double-quoted attribute value</a>
-consists of <code>"</code>, zero or more
-characters not including <code>"</code>, and a final <code>"</code>.</p>
-<p data-sourcepos="12899:1-12901:31" dir="auto">An <a href="@">open tag</a> consists of a <code>&lt;</code> character, a [tag name],
-zero or more [attributes], optional [whitespace], an optional <code>/</code>
-character, and a <code>&gt;</code> character.</p>
-<p data-sourcepos="12903:1-12904:57" dir="auto">A <a href="@">closing tag</a> consists of the string <code>&lt;/</code>, a
-[tag name], optional [whitespace], and the character <code>&gt;</code>.</p>
-<p data-sourcepos="12906:1-12909:63" dir="auto">An <a href="@">HTML comment</a> consists of <code>&lt;!--</code> + <em>text</em> + <code>--&gt;</code>,
-where <em>text</em> does not start with <code>&gt;</code> or <code>-&gt;</code>, does not end with <code>-</code>,
-and does not contain <code>--</code>. (See the
-<a href="http://www.w3.org/TR/html5/syntax.html#comments" rel="nofollow noreferrer noopener" target="_blank">HTML5 spec</a>.)</p>
-<p data-sourcepos="12911:1-12914:5" dir="auto">A <a href="@">processing instruction</a>
-consists of the string <code>&lt;?</code>, a string
-of characters not including the string <code>?&gt;</code>, and the string
-<code>?&gt;</code>.</p>
-<p data-sourcepos="12916:1-12919:37" dir="auto">A <a href="@">declaration</a> consists of the
-string <code>&lt;!</code>, a name consisting of one or more uppercase ASCII letters,
+including [whitespace], <code data-sourcepos="12889:26-12889:26">"</code>, <code data-sourcepos="12889:31-12889:31">'</code>, <code data-sourcepos="12889:36-12889:36">=</code>, <code data-sourcepos="12889:41-12889:41">&lt;</code>, <code data-sourcepos="12889:46-12889:46">&gt;</code>, or <code data-sourcepos="12889:55-12889:57">`</code>.</p>
+<p data-sourcepos="12891:1-12893:46" dir="auto">A <a data-sourcepos="12891:3-12891:36" href="@">single-quoted attribute value</a>
+consists of <code data-sourcepos="12892:14-12892:14">'</code>, zero or more
+characters not including <code data-sourcepos="12893:27-12893:27">'</code>, and a final <code data-sourcepos="12893:44-12893:44">'</code>.</p>
+<p data-sourcepos="12895:1-12897:46" dir="auto">A <a data-sourcepos="12895:3-12895:36" href="@">double-quoted attribute value</a>
+consists of <code data-sourcepos="12896:14-12896:14">"</code>, zero or more
+characters not including <code data-sourcepos="12897:27-12897:27">"</code>, and a final <code data-sourcepos="12897:44-12897:44">"</code>.</p>
+<p data-sourcepos="12899:1-12901:31" dir="auto">An <a data-sourcepos="12899:4-12899:16" href="@">open tag</a> consists of a <code data-sourcepos="12899:33-12899:33">&lt;</code> character, a [tag name],
+zero or more [attributes], optional [whitespace], an optional <code data-sourcepos="12900:64-12900:64">/</code>
+character, and a <code data-sourcepos="12901:19-12901:19">&gt;</code> character.</p>
+<p data-sourcepos="12903:1-12904:57" dir="auto">A <a data-sourcepos="12903:3-12903:18" href="@">closing tag</a> consists of the string <code data-sourcepos="12903:44-12903:45">&lt;/</code>, a
+[tag name], optional [whitespace], and the character <code data-sourcepos="12904:55-12904:55">&gt;</code>.</p>
+<p data-sourcepos="12906:1-12909:63" dir="auto">An <a data-sourcepos="12906:4-12906:20" href="@">HTML comment</a> consists of <code data-sourcepos="12906:35-12906:38">&lt;!--</code> + <em data-sourcepos="12906:43-12906:48">text</em> + <code data-sourcepos="12906:53-12906:55">--&gt;</code>,
+where <em data-sourcepos="12907:7-12907:12">text</em> does not start with <code data-sourcepos="12907:35-12907:35">&gt;</code> or <code data-sourcepos="12907:42-12907:43">-&gt;</code>, does not end with <code data-sourcepos="12907:66-12907:66">-</code>,
+and does not contain <code data-sourcepos="12908:23-12908:24">--</code>. (See the
+<a data-sourcepos="12909:1-12909:61" href="http://www.w3.org/TR/html5/syntax.html#comments" rel="nofollow noreferrer noopener" target="_blank">HTML5 spec</a>.)</p>
+<p data-sourcepos="12911:1-12914:5" dir="auto">A <a data-sourcepos="12911:3-12911:29" href="@">processing instruction</a>
+consists of the string <code data-sourcepos="12912:25-12912:26">&lt;?</code>, a string
+of characters not including the string <code data-sourcepos="12913:41-12913:42">?&gt;</code>, and the string
+<code data-sourcepos="12914:2-12914:3">?&gt;</code>.</p>
+<p data-sourcepos="12916:1-12919:37" dir="auto">A <a data-sourcepos="12916:3-12916:18" href="@">declaration</a> consists of the
+string <code data-sourcepos="12917:9-12917:10">&lt;!</code>, a name consisting of one or more uppercase ASCII letters,
[whitespace], a string of characters not including the
-character <code>&gt;</code>, and the character <code>&gt;</code>.</p>
-<p data-sourcepos="12921:1-12923:28" dir="auto">A <a href="@">CDATA section</a> consists of
-the string <code>&lt;![CDATA[</code>, a string of characters not including the string
-<code>]]&gt;</code>, and the string <code>]]&gt;</code>.</p>
-<p data-sourcepos="12925:1-12927:21" dir="auto">An <a href="@">HTML tag</a> consists of an [open tag], a [closing tag],
+character <code data-sourcepos="12919:12-12919:12">&gt;</code>, and the character <code data-sourcepos="12919:35-12919:35">&gt;</code>.</p>
+<p data-sourcepos="12921:1-12923:28" dir="auto">A <a data-sourcepos="12921:3-12921:20" href="@">CDATA section</a> consists of
+the string <code data-sourcepos="12922:13-12922:21">&lt;![CDATA[</code>, a string of characters not including the string
+<code data-sourcepos="12923:2-12923:4">]]&gt;</code>, and the string <code data-sourcepos="12923:24-12923:26">]]&gt;</code>.</p>
+<p data-sourcepos="12925:1-12927:21" dir="auto">An <a data-sourcepos="12925:4-12925:16" href="@">HTML tag</a> consists of an [open tag], a [closing tag],
an [HTML comment], a [processing instruction], a [declaration],
or a [CDATA section].</p>
<p data-sourcepos="12929:1-12929:31" dir="auto">Here are some simple open tags:</p>
@@ -11847,20 +11847,20 @@ attributes:</p>
<div>
<h2 data-sourcepos="13258:1-13258:34">
<a id="user-content-disallowed-raw-html-extension" class="anchor" href="#disallowed-raw-html-extension" aria-hidden="true"></a>Disallowed Raw HTML (extension)</h2>
-<p data-sourcepos="13260:1-13261:36">GFM enables the <code>tagfilter</code> extension, where the following HTML tags will be
+<p data-sourcepos="13260:1-13261:36">GFM enables the <code data-sourcepos="13260:18-13260:26">tagfilter</code> extension, where the following HTML tags will be
filtered when rendering HTML output:</p>
<ul data-sourcepos="13263:1-13272:0">
-<li data-sourcepos="13263:1-13263:11"><code>&lt;title&gt;</code></li>
-<li data-sourcepos="13264:1-13264:14"><code>&lt;textarea&gt;</code></li>
-<li data-sourcepos="13265:1-13265:11"><code>&lt;style&gt;</code></li>
-<li data-sourcepos="13266:1-13266:9"><code>&lt;xmp&gt;</code></li>
-<li data-sourcepos="13267:1-13267:12"><code>&lt;iframe&gt;</code></li>
-<li data-sourcepos="13268:1-13268:13"><code>&lt;noembed&gt;</code></li>
-<li data-sourcepos="13269:1-13269:14"><code>&lt;noframes&gt;</code></li>
-<li data-sourcepos="13270:1-13270:12"><code>&lt;script&gt;</code></li>
-<li data-sourcepos="13271:1-13272:0"><code>&lt;plaintext&gt;</code></li>
+<li data-sourcepos="13263:1-13263:11"><code data-sourcepos="13263:4-13263:10">&lt;title&gt;</code></li>
+<li data-sourcepos="13264:1-13264:14"><code data-sourcepos="13264:4-13264:13">&lt;textarea&gt;</code></li>
+<li data-sourcepos="13265:1-13265:11"><code data-sourcepos="13265:4-13265:10">&lt;style&gt;</code></li>
+<li data-sourcepos="13266:1-13266:9"><code data-sourcepos="13266:4-13266:8">&lt;xmp&gt;</code></li>
+<li data-sourcepos="13267:1-13267:12"><code data-sourcepos="13267:4-13267:11">&lt;iframe&gt;</code></li>
+<li data-sourcepos="13268:1-13268:13"><code data-sourcepos="13268:4-13268:12">&lt;noembed&gt;</code></li>
+<li data-sourcepos="13269:1-13269:14"><code data-sourcepos="13269:4-13269:13">&lt;noframes&gt;</code></li>
+<li data-sourcepos="13270:1-13270:12"><code data-sourcepos="13270:4-13270:11">&lt;script&gt;</code></li>
+<li data-sourcepos="13271:1-13272:0"><code data-sourcepos="13271:4-13271:14">&lt;plaintext&gt;</code></li>
</ul>
-<p data-sourcepos="13273:1-13276:71">Filtering is done by replacing the leading <code>&lt;</code> with the entity <code>&amp;lt;</code>. These
+<p data-sourcepos="13273:1-13276:71">Filtering is done by replacing the leading <code data-sourcepos="13273:45-13273:45">&lt;</code> with the entity <code data-sourcepos="13273:65-13273:68">&amp;lt;</code>. These
tags are chosen in particular as they change how HTML is interpreted in a way
unique to them (i.e. nested HTML is interpreted differently), and this is
usually undesireable in the context of other rendered Markdown content.</p>
@@ -11888,8 +11888,8 @@ usually undesireable in the context of other rendered Markdown content.</p>
<a id="user-content-hard-line-breaks" class="anchor" href="#hard-line-breaks" aria-hidden="true"></a>Hard line breaks</h2>
<p data-sourcepos="13303:1-13306:27" dir="auto">A line break (not in a code span or HTML tag) that is preceded
by two or more spaces and does not occur at the end of a block
-is parsed as a <a href="@">hard line break</a> (rendered
-in HTML as a <code>&lt;br /&gt;</code> tag):</p>
+is parsed as a <a data-sourcepos="13305:16-13305:35" href="@">hard line break</a> (rendered
+in HTML as a <code data-sourcepos="13306:15-13306:20">&lt;br /&gt;</code> tag):</p>
<div>
<div><a href="#example-654">Example 654</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -12090,7 +12090,7 @@ other block element:</p>
<a id="user-content-soft-line-breaks" class="anchor" href="#soft-line-breaks" aria-hidden="true"></a>Soft line breaks</h2>
<p data-sourcepos="13543:1-13547:62" dir="auto">A regular line break (not in a code span or HTML tag) that is not
preceded by two or more spaces or a backslash is parsed as a
-<a href="@">softbreak</a>. (A softbreak may be rendered in HTML either as a
+<a data-sourcepos="13545:1-13545:14" href="@">softbreak</a>. (A softbreak may be rendered in HTML either as a
[line ending] or as a space. The result will be the same in
browsers. In the examples here, a [line ending] will be used.)</p>
<div>
@@ -12167,13 +12167,13 @@ be parsed as plain textual content.</p>
<a id="user-content-gitlab-official-specification-markdown" class="anchor" href="#gitlab-official-specification-markdown" aria-hidden="true"></a>GitLab Official Specification Markdown</h1>
<p data-sourcepos="13636:1-13638:104" dir="auto">Note: This specification is a work in progress. Only some of the official GLFM extensions
are defined. We will continue to add any additional ones found in the
-<a href="https://docs.gitlab.com/ee/user/markdown.html" rel="nofollow noreferrer noopener" target="_blank">user-facing documentation for GitLab Flavored Markdown</a>.</p>
+<a data-sourcepos="13638:1-13638:103" href="https://docs.gitlab.com/ee/user/markdown.html" rel="nofollow noreferrer noopener" target="_blank">user-facing documentation for GitLab Flavored Markdown</a>.</p>
<p data-sourcepos="13640:1-13641:69" dir="auto">There is currently only this single top-level heading, but the
examples may be split into multiple top-level headings in the future.</p>
<h2 data-sourcepos="13643:1-13643:18" dir="auto">
<a id="user-content-task-list-items" class="anchor" href="#task-list-items" aria-hidden="true"></a>Task list items</h2>
<p data-sourcepos="13645:1-13646:117" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#task-lists" rel="nofollow noreferrer noopener" target="_blank">Task lists</a> in the GitLab Flavored Markdown documentation.</p>
+<a data-sourcepos="13646:1-13646:70" href="https://docs.gitlab.com/ee/user/markdown.html#task-lists" rel="nofollow noreferrer noopener" target="_blank">Task lists</a> in the GitLab Flavored Markdown documentation.</p>
<p data-sourcepos="13648:1-13651:39" dir="auto">Task list items (checkboxes) are defined as a GitHub Flavored Markdown extension in a section above.
GitLab extends the behavior of task list items to support additional features.
Some of these features are in-progress, and should not yet be considered part of the official
@@ -12236,7 +12236,7 @@ GitLab Flavored Markdown specification.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="13719:1-13720:50" dir="auto">Inapplicable task in a "loose" list. Note that the <code>&lt;del&gt;</code> tag is not applied to the
+<p data-sourcepos="13719:1-13720:50" dir="auto">Inapplicable task in a "loose" list. Note that the <code data-sourcepos="13719:53-13719:57">&lt;del&gt;</code> tag is not applied to the
loose text; it has strikethrough applied with CSS.</p>
<div>
<div><a href="#example-677">Example 677</a></div>
@@ -12267,7 +12267,7 @@ loose text; it has strikethrough applied with CSS.</p>
<h2 data-sourcepos="13749:1-13749:15" dir="auto">
<a id="user-content-front-matter" class="anchor" href="#front-matter" aria-hidden="true"></a>Front matter</h2>
<p data-sourcepos="13751:1-13752:121" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#front-matter" rel="nofollow noreferrer noopener" target="_blank">Front matter</a> in the GitLab Flavored Markdown documentation.</p>
+<a data-sourcepos="13752:1-13752:74" href="https://docs.gitlab.com/ee/user/markdown.html#front-matter" rel="nofollow noreferrer noopener" target="_blank">Front matter</a> in the GitLab Flavored Markdown documentation.</p>
<p data-sourcepos="13754:1-13755:95" dir="auto">Front matter is metadata included at the beginning of a Markdown document, preceding the content.
This data can be used by static site generators like Jekyll, Hugo, and many other applications.</p>
<p data-sourcepos="13757:1-13757:18" dir="auto">YAML front matter:</p>
@@ -12364,15 +12364,15 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
<h2 data-sourcepos="13858:1-13858:20" dir="auto">
<a id="user-content-table-of-contents" class="anchor" href="#table-of-contents" aria-hidden="true"></a>Table of contents</h2>
<p data-sourcepos="13860:1-13862:46" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#table-of-contents" rel="nofollow noreferrer noopener" target="_blank">table of contents</a>
+<a data-sourcepos="13861:1-13861:84" href="https://docs.gitlab.com/ee/user/markdown.html#table-of-contents" rel="nofollow noreferrer noopener" target="_blank">table of contents</a>
in the GitLab Flavored Markdown documentation.</p>
<p data-sourcepos="13864:1-13868:23" dir="auto">NOTE: Because of this bug (<a href="https://gitlab.com/gitlab-org/gitlab/-/issues/359077" rel="nofollow noreferrer noopener" target="_blank">https://gitlab.com/gitlab-org/gitlab/-/issues/359077</a>),
-we cannot actually include the <code>TOC</code> tag with single brackets in backticks
+we cannot actually include the <code data-sourcepos="13865:33-13865:35">TOC</code> tag with single brackets in backticks
in this Markdown document, otherwise it would render a table of contents inline
-right here. So, it's been switched to <code>[</code> + <code>TOC</code> + <code>]</code> instead. This can be reverted
+right here. So, it's been switched to <code data-sourcepos="13867:40-13867:40">[</code> + <code data-sourcepos="13867:46-13867:48">TOC</code> + <code data-sourcepos="13867:54-13867:54">]</code> instead. This can be reverted
once that bug is fixed.</p>
<p data-sourcepos="13870:1-13871:76" dir="auto">A table of contents is an unordered list that links to subheadings in the document.
-Add either the <code>[[_TOC_]]</code> tag or the <code>[</code> + <code>TOC</code> + <code>]</code> tag on its own line.</p>
+Add either the <code data-sourcepos="13871:17-13871:25">[[_TOC_]]</code> tag or the <code data-sourcepos="13871:40-13871:40">[</code> + <code data-sourcepos="13871:46-13871:48">TOC</code> + <code data-sourcepos="13871:54-13871:54">]</code> tag on its own line.</p>
<div>
<div><a href="#example-683">Example 683</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -12463,9 +12463,9 @@ line.</p>
<h2 data-sourcepos="13966:1-13966:8" dir="auto">
<a id="user-content-audio" class="anchor" href="#audio" aria-hidden="true"></a>Audio</h2>
<p data-sourcepos="13968:1-13969:107" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#audio" rel="nofollow noreferrer noopener" target="_blank">audio</a> in the GitLab Flavored Markdown documentation.</p>
+<a data-sourcepos="13969:1-13969:60" href="https://docs.gitlab.com/ee/user/markdown.html#audio" rel="nofollow noreferrer noopener" target="_blank">audio</a> in the GitLab Flavored Markdown documentation.</p>
<p data-sourcepos="13971:1-13973:63" dir="auto">GLFM renders image elements as an audio player as long as the resource’s file extension is
-one of the following supported audio extensions <code>.mp3</code>, <code>.oga</code>, <code>.ogg</code>, <code>.spx</code>, and <code>.wav</code>.
+one of the following supported audio extensions <code data-sourcepos="13972:50-13972:53">.mp3</code>, <code data-sourcepos="13972:58-13972:61">.oga</code>, <code data-sourcepos="13972:66-13972:69">.ogg</code>, <code data-sourcepos="13972:74-13972:77">.spx</code>, and <code data-sourcepos="13972:86-13972:89">.wav</code>.
Audio ignore the alternative text part of an image declaration.</p>
<div>
<div><a href="#example-687">Example 687</a></div>
@@ -12495,9 +12495,9 @@ Audio ignore the alternative text part of an image declaration.</p>
<h2 data-sourcepos="14003:1-14003:8" dir="auto">
<a id="user-content-video" class="anchor" href="#video" aria-hidden="true"></a>Video</h2>
<p data-sourcepos="14005:1-14006:109" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#videos" rel="nofollow noreferrer noopener" target="_blank">videos</a> in the GitLab Flavored Markdown documentation.</p>
+<a data-sourcepos="14006:1-14006:62" href="https://docs.gitlab.com/ee/user/markdown.html#videos" rel="nofollow noreferrer noopener" target="_blank">videos</a> in the GitLab Flavored Markdown documentation.</p>
<p data-sourcepos="14008:1-14010:64" dir="auto">GLFM renders image elements as a video player as long as the resource’s file extension is
-one of the following supported video extensions <code>.mp4</code>, <code>.m4v</code>, <code>.mov</code>, <code>.webm</code>, and <code>.ogv</code>.
+one of the following supported video extensions <code data-sourcepos="14009:51-14009:54">.mp4</code>, <code data-sourcepos="14009:59-14009:62">.m4v</code>, <code data-sourcepos="14009:67-14009:70">.mov</code>, <code data-sourcepos="14009:75-14009:79">.webm</code>, and <code data-sourcepos="14009:88-14009:91">.ogv</code>.
Videos ignore the alternative text part of an image declaration.</p>
<div>
<div><a href="#example-689">Example 689</a></div>
@@ -12526,10 +12526,10 @@ Videos ignore the alternative text part of an image declaration.</p>
</div>
<h2 data-sourcepos="14041:1-14041:41" dir="auto">
<a id="user-content-markdown-preview-api-request-overrides" class="anchor" href="#markdown-preview-api-request-overrides" aria-hidden="true"></a>Markdown Preview API Request Overrides</h2>
-<p data-sourcepos="14043:1-14045:42" dir="auto">This section contains examples of all controllers which use <code>PreviewMarkdown</code> module
-and use different <code>markdown_context_params</code>. They exercise the various <code>preview_markdown</code>
-endpoints via <code>glfm_example_metadata.yml</code>.</p>
-<p data-sourcepos="14048:1-14048:75" dir="auto"><code>preview_markdown</code> exercising <code>groups</code> API endpoint and <code>UploadLinkFilter</code>:</p>
+<p data-sourcepos="14043:1-14045:42" dir="auto">This section contains examples of all controllers which use <code data-sourcepos="14043:62-14043:76">PreviewMarkdown</code> module
+and use different <code data-sourcepos="14044:20-14044:42">markdown_context_params</code>. They exercise the various <code data-sourcepos="14044:73-14044:88">preview_markdown</code>
+endpoints via <code data-sourcepos="14045:16-14045:40">glfm_example_metadata.yml</code>.</p>
+<p data-sourcepos="14048:1-14048:75" dir="auto"><code data-sourcepos="14048:2-14048:17">preview_markdown</code> exercising <code data-sourcepos="14048:32-14048:37">groups</code> API endpoint and <code data-sourcepos="14048:58-14048:73">UploadLinkFilter</code>:</p>
<div>
<div><a href="#example-691">Example 691</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -12541,7 +12541,7 @@ endpoints via <code>glfm_example_metadata.yml</code>.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="14062:1-14062:81" dir="auto"><code>preview_markdown</code> exercising <code>projects</code> API endpoint and <code>RepositoryLinkFilter</code>:</p>
+<p data-sourcepos="14062:1-14062:81" dir="auto"><code data-sourcepos="14062:2-14062:17">preview_markdown</code> exercising <code data-sourcepos="14062:32-14062:39">projects</code> API endpoint and <code data-sourcepos="14062:60-14062:79">RepositoryLinkFilter</code>:</p>
<div>
<div><a href="#example-692">Example 692</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -12553,7 +12553,7 @@ endpoints via <code>glfm_example_metadata.yml</code>.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="14076:1-14076:83" dir="auto"><code>preview_markdown</code> exercising <code>projects</code> API endpoint and <code>SnippetReferenceFilter</code>:</p>
+<p data-sourcepos="14076:1-14076:83" dir="auto"><code data-sourcepos="14076:2-14076:17">preview_markdown</code> exercising <code data-sourcepos="14076:32-14076:39">projects</code> API endpoint and <code data-sourcepos="14076:60-14076:81">SnippetReferenceFilter</code>:</p>
<div>
<div><a href="#example-693">Example 693</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -12565,10 +12565,10 @@ endpoints via <code>glfm_example_metadata.yml</code>.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="14090:1-14093:50" dir="auto"><code>preview_markdown</code> exercising personal (non-project) <code>snippets</code> API endpoint. This is
+<p data-sourcepos="14090:1-14093:50" dir="auto"><code data-sourcepos="14090:2-14090:17">preview_markdown</code> exercising personal (non-project) <code data-sourcepos="14090:55-14090:62">snippets</code> API endpoint. This is
only used by the comment field on personal snippets. It has no unique custom markdown
extension behavior, and specifically does not render snippet references via
-<code>SnippetReferenceFilter</code>, even if the ID is valid.</p>
+<code data-sourcepos="14093:2-14093:23">SnippetReferenceFilter</code>, even if the ID is valid.</p>
<div>
<div><a href="#example-694">Example 694</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -12580,7 +12580,7 @@ extension behavior, and specifically does not render snippet references via
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="14107:1-14107:80" dir="auto"><code>preview_markdown</code> exercising project <code>wikis</code> API endpoint and <code>WikiLinkFilter</code>:</p>
+<p data-sourcepos="14107:1-14107:80" dir="auto"><code data-sourcepos="14107:2-14107:17">preview_markdown</code> exercising project <code data-sourcepos="14107:40-14107:44">wikis</code> API endpoint and <code data-sourcepos="14107:65-14107:78">WikiLinkFilter</code>:</p>
<div>
<div><a href="#example-695">Example 695</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -12592,8 +12592,8 @@ extension behavior, and specifically does not render snippet references via
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="14121:1-14122:63" dir="auto"><code>preview_markdown</code> exercising group <code>wikis</code> API endpoint and <code>WikiLinkFilter</code>. This example
-also requires an EE license enabling the <code>group_wikis</code> feature:</p>
+<p data-sourcepos="14121:1-14122:63" dir="auto"><code data-sourcepos="14121:2-14121:17">preview_markdown</code> exercising group <code data-sourcepos="14121:38-14121:42">wikis</code> API endpoint and <code data-sourcepos="14121:63-14121:76">WikiLinkFilter</code>. This example
+also requires an EE license enabling the <code data-sourcepos="14122:43-14122:53">group_wikis</code> feature:</p>
<div>
<div><a href="#example-696">Example 696</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -13454,12 +13454,12 @@ also requires an EE license enabling the <code>group_wikis</code> feature:</p>
<h2 data-sourcepos="15034:1-15034:19" dir="auto">
<a id="user-content-image-attributes" class="anchor" href="#image-attributes" aria-hidden="true"></a>Image Attributes</h2>
<p data-sourcepos="15036:1-15038:46" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#change-the-image-dimensions" rel="nofollow noreferrer noopener" target="_blank">Change the image dimensions</a>
+<a data-sourcepos="15037:1-15037:104" href="https://docs.gitlab.com/ee/user/markdown.html#change-the-image-dimensions" rel="nofollow noreferrer noopener" target="_blank">Change the image dimensions</a>
in the GitLab Flavored Markdown documentation.</p>
-<p data-sourcepos="15040:1-15041:19" dir="auto">The <code>width</code> and <code>height</code> attributes for an image can be specified directly after
+<p data-sourcepos="15040:1-15041:19" dir="auto">The <code data-sourcepos="15040:6-15040:10">width</code> and <code data-sourcepos="15040:18-15040:23">height</code> attributes for an image can be specified directly after
the image markdown.</p>
<p data-sourcepos="15043:1-15045:21" dir="auto">General syntax conforms to the
-<a href="https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/attributes.md" rel="nofollow noreferrer noopener" target="_blank">commonmark-hs attribute syntax</a>
+<a data-sourcepos="15044:1-15044:123" href="https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/attributes.md" rel="nofollow noreferrer noopener" target="_blank">commonmark-hs attribute syntax</a>
where it makes sense.</p>
<div>
<div><a href="#example-749">Example 749</a></div>
@@ -13472,7 +13472,7 @@ where it makes sense.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="15059:1-15059:41" dir="auto"><code>%</code> and <code>px</code> units may also be specified.</p>
+<p data-sourcepos="15059:1-15059:41" dir="auto"><code data-sourcepos="15059:2-15059:2">%</code> and <code data-sourcepos="15059:10-15059:11">px</code> units may also be specified.</p>
<div>
<div><a href="#example-750">Example 750</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
@@ -13522,7 +13522,7 @@ where it makes sense.</p>
<h2 data-sourcepos="15113:1-15113:12" dir="auto">
<a id="user-content-footnotes-1" class="anchor" href="#footnotes-1" aria-hidden="true"></a>Footnotes</h2>
<p data-sourcepos="15115:1-15116:143" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#footnotes" rel="nofollow noreferrer noopener" target="_blank">the footnotes section of the user-facing documentation for GitLab Flavored Markdown</a>.</p>
+<a data-sourcepos="15116:1-15116:142" href="https://docs.gitlab.com/ee/user/markdown.html#footnotes" rel="nofollow noreferrer noopener" target="_blank">the footnotes section of the user-facing documentation for GitLab Flavored Markdown</a>.</p>
<div>
<div><a href="#example-754">Example 754</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
diff --git a/glfm_specification/output_spec/spec.html b/glfm_specification/output_spec/spec.html
index 6ede9858af1..e4929c1fa5c 100644
--- a/glfm_specification/output_spec/spec.html
+++ b/glfm_specification/output_spec/spec.html
@@ -254,12 +254,12 @@ version: alpha
...</p>
<h1 data-sourcepos="8:1-8:14" dir="auto">
<a id="user-content-introduction" class="anchor" href="#introduction" aria-hidden="true"></a>Introduction</h1>
-<p data-sourcepos="10:1-10:284" dir="auto">GitLab Flavored Markdown (GLFM) extends the <a href="https://spec.commonmark.org/current/" rel="nofollow noreferrer noopener" target="_blank">CommonMark specification</a> and is considered a strict superset of CommonMark. It also incorporates the extensions defined by the <a href="https://github.github.com/gfm/" rel="nofollow noreferrer noopener" target="_blank">GitHub Flavored Markdown specification</a>.</p>
-<p data-sourcepos="12:1-12:433" dir="auto">This specification will define the various official extensions that comprise GLFM. These extensions are GitLab independent - they do not require a GitLab server for parsing or interaction. The intent is to provide a specification that can be implemented in standard markdown editors. This includes many of the features listed in <a href="https://docs.gitlab.com/ee/user/markdown.html" rel="nofollow noreferrer noopener" target="_blank">user-facing documentation for GitLab Flavored Markdown</a>.</p>
+<p data-sourcepos="10:1-10:284" dir="auto">GitLab Flavored Markdown (GLFM) extends the <a data-sourcepos="10:45-10:108" href="https://spec.commonmark.org/current/" rel="nofollow noreferrer noopener" target="_blank">CommonMark specification</a> and is considered a strict superset of CommonMark. It also incorporates the extensions defined by the <a data-sourcepos="10:212-10:283" href="https://github.github.com/gfm/" rel="nofollow noreferrer noopener" target="_blank">GitHub Flavored Markdown specification</a>.</p>
+<p data-sourcepos="12:1-12:433" dir="auto">This specification will define the various official extensions that comprise GLFM. These extensions are GitLab independent - they do not require a GitLab server for parsing or interaction. The intent is to provide a specification that can be implemented in standard markdown editors. This includes many of the features listed in <a data-sourcepos="12:330-12:432" href="https://docs.gitlab.com/ee/user/markdown.html" rel="nofollow noreferrer noopener" target="_blank">user-facing documentation for GitLab Flavored Markdown</a>.</p>
<p data-sourcepos="14:1-14:69" dir="auto">The CommonMark and GitHub specifications will not be duplicated here.</p>
<p data-sourcepos="16:1-19:75" dir="auto">NOTE: The example numbering in this document does not start at "1", because this official specification
only contains a subset of all the examples which are supported by GitLab Flavored Markdown. See
-<a href="https://gitlab.com/gitlab-org/gitlab/-/blob/master/glfm_specification/output_example_snapshots/snapshot_spec.html" rel="nofollow noreferrer noopener" target="_blank"><code>snapshot_spec.html</code></a>
+<a data-sourcepos="18:1-18:137" href="https://gitlab.com/gitlab-org/gitlab/-/blob/master/glfm_specification/output_example_snapshots/snapshot_spec.html" rel="nofollow noreferrer noopener" target="_blank"><code data-sourcepos="18:3-18:20">snapshot_spec.html</code></a>
for a complete list of all examples, which are a superset of examples from:</p>
<ul data-sourcepos="21:1-25:0" dir="auto">
<li data-sourcepos="21:1-21:12">CommonMark</li>
@@ -272,13 +272,13 @@ for a complete list of all examples, which are a superset of examples from:</p>
<a id="user-content-gitlab-official-specification-markdown" class="anchor" href="#gitlab-official-specification-markdown" aria-hidden="true"></a>GitLab Official Specification Markdown</h1>
<p data-sourcepos="29:1-31:104" dir="auto">Note: This specification is a work in progress. Only some of the official GLFM extensions
are defined. We will continue to add any additional ones found in the
-<a href="https://docs.gitlab.com/ee/user/markdown.html" rel="nofollow noreferrer noopener" target="_blank">user-facing documentation for GitLab Flavored Markdown</a>.</p>
+<a data-sourcepos="31:1-31:103" href="https://docs.gitlab.com/ee/user/markdown.html" rel="nofollow noreferrer noopener" target="_blank">user-facing documentation for GitLab Flavored Markdown</a>.</p>
<p data-sourcepos="33:1-34:69" dir="auto">There is currently only this single top-level heading, but the
examples may be split into multiple top-level headings in the future.</p>
<h2 data-sourcepos="36:1-36:18" dir="auto">
<a id="user-content-task-list-items" class="anchor" href="#task-list-items" aria-hidden="true"></a>Task list items</h2>
<p data-sourcepos="38:1-39:117" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#task-lists" rel="nofollow noreferrer noopener" target="_blank">Task lists</a> in the GitLab Flavored Markdown documentation.</p>
+<a data-sourcepos="39:1-39:70" href="https://docs.gitlab.com/ee/user/markdown.html#task-lists" rel="nofollow noreferrer noopener" target="_blank">Task lists</a> in the GitLab Flavored Markdown documentation.</p>
<p data-sourcepos="41:1-44:39" dir="auto">Task list items (checkboxes) are defined as a GitHub Flavored Markdown extension in a section above.
GitLab extends the behavior of task list items to support additional features.
Some of these features are in-progress, and should not yet be considered part of the official
@@ -341,7 +341,7 @@ GitLab Flavored Markdown specification.</p>
<copy-code></copy-code>
</div>
</div>
-<p data-sourcepos="112:1-113:50" dir="auto">Inapplicable task in a "loose" list. Note that the <code>&lt;del&gt;</code> tag is not applied to the
+<p data-sourcepos="112:1-113:50" dir="auto">Inapplicable task in a "loose" list. Note that the <code data-sourcepos="112:53-112:57">&lt;del&gt;</code> tag is not applied to the
loose text; it has strikethrough applied with CSS.</p>
<div>
<div><a href="#example-677">Example 677</a></div>
@@ -372,7 +372,7 @@ loose text; it has strikethrough applied with CSS.</p>
<h2 data-sourcepos="142:1-142:15" dir="auto">
<a id="user-content-front-matter" class="anchor" href="#front-matter" aria-hidden="true"></a>Front matter</h2>
<p data-sourcepos="144:1-145:121" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#front-matter" rel="nofollow noreferrer noopener" target="_blank">Front matter</a> in the GitLab Flavored Markdown documentation.</p>
+<a data-sourcepos="145:1-145:74" href="https://docs.gitlab.com/ee/user/markdown.html#front-matter" rel="nofollow noreferrer noopener" target="_blank">Front matter</a> in the GitLab Flavored Markdown documentation.</p>
<p data-sourcepos="147:1-148:95" dir="auto">Front matter is metadata included at the beginning of a Markdown document, preceding the content.
This data can be used by static site generators like Jekyll, Hugo, and many other applications.</p>
<p data-sourcepos="150:1-150:18" dir="auto">YAML front matter:</p>
@@ -469,15 +469,15 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
<h2 data-sourcepos="251:1-251:20" dir="auto">
<a id="user-content-table-of-contents" class="anchor" href="#table-of-contents" aria-hidden="true"></a>Table of contents</h2>
<p data-sourcepos="253:1-255:46" dir="auto">See
-<a href="https://docs.gitlab.com/ee/user/markdown.html#table-of-contents" rel="nofollow noreferrer noopener" target="_blank">table of contents</a>
+<a data-sourcepos="254:1-254:84" href="https://docs.gitlab.com/ee/user/markdown.html#table-of-contents" rel="nofollow noreferrer noopener" target="_blank">table of contents</a>
in the GitLab Flavored Markdown documentation.</p>
<p data-sourcepos="257:1-261:23" dir="auto">NOTE: Because of this bug (<a href="https://gitlab.com/gitlab-org/gitlab/-/issues/359077" rel="nofollow noreferrer noopener" target="_blank">https://gitlab.com/gitlab-org/gitlab/-/issues/359077</a>),
-we cannot actually include the <code>TOC</code> tag with single brackets in backticks
+we cannot actually include the <code data-sourcepos="258:33-258:35">TOC</code> tag with single brackets in backticks
in this Markdown document, otherwise it would render a table of contents inline
-right here. So, it's been switched to <code>[</code> + <code>TOC</code> + <code>]</code> instead. This can be reverted
+right here. So, it's been switched to <code data-sourcepos="260:40-260:40">[</code> + <code data-sourcepos="260:46-260:48">TOC</code> + <code data-sourcepos="260:54-260:54">]</code> instead. This can be reverted
once that bug is fixed.</p>
<p data-sourcepos="263:1-264:76" dir="auto">A table of contents is an unordered list that links to subheadings in the document.
-Add either the <code>[[_TOC_]]</code> tag or the <code>[</code> + <code>TOC</code> + <code>]</code> tag on its own line.</p>
+Add either the <code data-sourcepos="264:17-264:25">[[_TOC_]]</code> tag or the <code data-sourcepos="264:40-264:40">[</code> + <code data-sourcepos="264:46-264:48">TOC</code> + <code data-sourcepos="264:54-264:54">]</code> tag on its own line.</p>
<div>
<div><a href="#example-683">Example 683</a></div>
<div class="gl-relative markdown-code-block js-markdown-code">
diff --git a/lib/api/admin/ci/variables.rb b/lib/api/admin/ci/variables.rb
index 3277acc1b52..a443f7f3476 100644
--- a/lib/api/admin/ci/variables.rb
+++ b/lib/api/admin/ci/variables.rb
@@ -54,6 +54,10 @@ module API
type: String,
desc: 'The key of the variable. Max 255 characters'
+ optional :description,
+ type: String,
+ desc: 'The description of the variable'
+
requires :value,
type: String,
desc: 'The value of a variable'
@@ -98,6 +102,10 @@ module API
type: String,
desc: 'The key of a variable'
+ optional :description,
+ type: String,
+ desc: 'The description of the variable'
+
optional :value,
type: String,
desc: 'The value of a variable'
diff --git a/lib/api/api.rb b/lib/api/api.rb
index 97e09795f49..94b433193dd 100644
--- a/lib/api/api.rb
+++ b/lib/api/api.rb
@@ -330,7 +330,7 @@ module API
mount ::API::Suggestions
mount ::API::SystemHooks
mount ::API::Tags
- mount ::API::Terraform::Modules::V1::Packages
+ mount ::API::Terraform::Modules::V1::NamespacePackages
mount ::API::Terraform::Modules::V1::ProjectPackages
mount ::API::Terraform::State
mount ::API::Terraform::StateVersion
diff --git a/lib/api/ci/pipelines.rb b/lib/api/ci/pipelines.rb
index b5123ab49dc..f369fc5e183 100644
--- a/lib/api/ci/pipelines.rb
+++ b/lib/api/ci/pipelines.rb
@@ -183,7 +183,7 @@ module API
.new(current_user: current_user, pipeline: pipeline, params: params)
.execute
- builds = builds.with_preloads
+ builds = builds.with_preloads.preload(:metadata) # rubocop:disable CodeReuse/ActiveRecord -- preload job.archived?
present paginate(builds), with: Entities::Ci::Job
end
diff --git a/lib/api/ci/runners.rb b/lib/api/ci/runners.rb
index 17bee275c51..300c30faf4a 100644
--- a/lib/api/ci/runners.rb
+++ b/lib/api/ci/runners.rb
@@ -94,6 +94,14 @@ module API
forbidden!("No access granted") unless can?(current_user, :read_builds, runner)
end
+
+ def preload_job_associations(jobs)
+ jobs.preload( # rubocop: disable CodeReuse/ActiveRecord -- this preload is tightly related to the endpoint
+ :user,
+ { pipeline: { project: [:route, { namespace: :route }] } },
+ { project: [:route, { namespace: :route }] }
+ )
+ end
end
resource :runners do
@@ -217,25 +225,24 @@ module API
end
params do
requires :id, type: Integer, desc: 'The ID of a runner'
+ optional :system_id, type: String, desc: 'System ID associated with the runner manager'
optional :status, type: String, desc: 'Status of the job', values: ::Ci::Build::AVAILABLE_STATUSES
optional :order_by, type: String, desc: 'Order by `id`', values: ::Ci::RunnerJobsFinder::ALLOWED_INDEXED_COLUMNS
optional :sort, type: String, values: %w[asc desc], default: 'desc', desc: 'Sort by `asc` or `desc` order. ' \
- 'Specify `order_by` as well, including for `id`'
+ 'Specify `order_by` as well, including for `id`'
+ optional :cursor, type: String, desc: 'Cursor for obtaining the next set of records'
use :pagination
end
get ':id/jobs' do
runner = get_runner(params[:id])
authenticate_list_runners_jobs!(runner)
+ # Optimize query when filtering by runner managers by not asking for count
+ paginator_params = params[:pagination] == :keyset || params[:system_id].blank? ? {} : { without_count: true }
+
jobs = ::Ci::RunnerJobsFinder.new(runner, current_user, params).execute
- jobs = jobs.preload( # rubocop: disable CodeReuse/ActiveRecord
- [
- :user,
- { pipeline: { project: [:route, { namespace: :route }] } },
- { project: [:route, { namespace: :route }] }
- ]
- )
- jobs = paginate(jobs)
+ jobs = preload_job_associations(jobs)
+ jobs = paginate_with_strategies(jobs, paginator_params: paginator_params)
jobs.each(&:commit) # batch loads all commits in the page
present jobs, with: Entities::Ci::JobBasicWithProject
diff --git a/lib/api/draft_notes.rb b/lib/api/draft_notes.rb
index 6fadc68233d..3d046ec4a9b 100644
--- a/lib/api/draft_notes.rb
+++ b/lib/api/draft_notes.rb
@@ -22,7 +22,9 @@ module API
end
def delete_draft_note(draft_note)
- ::DraftNotes::DestroyService.new(user_project, current_user).execute(draft_note)
+ ::DraftNotes::DestroyService
+ .new(merge_request(params: params), current_user)
+ .execute(draft_note)
end
def publish_draft_note(params:)
diff --git a/lib/api/entities/bulk_imports/entity_failure.rb b/lib/api/entities/bulk_imports/entity_failure.rb
index 08708a7c961..4771e6cb894 100644
--- a/lib/api/entities/bulk_imports/entity_failure.rb
+++ b/lib/api/entities/bulk_imports/entity_failure.rb
@@ -6,7 +6,7 @@ module API
class EntityFailure < Grape::Entity
expose :relation, documentation: { type: 'string', example: 'label' }
expose :exception_message, documentation: { type: 'string', example: 'error message' } do |failure|
- ::Projects::ImportErrorFilter.filter_message(failure.exception_message.truncate(72))
+ ::Projects::ImportErrorFilter.filter_message(failure.exception_message).truncate(255)
end
expose :exception_class, documentation: { type: 'string', example: 'Exception' }
expose :correlation_id_value, documentation: { type: 'string', example: 'dfcf583058ed4508e4c7c617bd7f0edd' }
diff --git a/lib/api/entities/ci/job.rb b/lib/api/entities/ci/job.rb
index d9e6b7eed75..2f748d28abf 100644
--- a/lib/api/entities/ci/job.rb
+++ b/lib/api/entities/ci/job.rb
@@ -12,6 +12,7 @@ module API
expose :runner, with: ::API::Entities::Ci::Runner
expose :artifacts_expire_at,
documentation: { type: 'dateTime', example: '2016-01-19T09:05:50.355Z' }
+ expose :archived?, as: :archived, documentation: { type: 'boolean', example: false }
expose(
:tag_list,
diff --git a/lib/api/entities/diff.rb b/lib/api/entities/diff.rb
index cc53736a5b1..e1e6ce26263 100644
--- a/lib/api/entities/diff.rb
+++ b/lib/api/entities/diff.rb
@@ -16,6 +16,7 @@ module API
expose :new_file?, as: :new_file, documentation: { type: 'boolean' }
expose :renamed_file?, as: :renamed_file, documentation: { type: 'boolean' }
expose :deleted_file?, as: :deleted_file, documentation: { type: 'boolean' }
+ expose :generated?, as: :generated_file, documentation: { type: 'boolean' }
end
end
end
diff --git a/lib/api/entities/group.rb b/lib/api/entities/group.rb
index 1a1765c2e0a..14491c2396a 100644
--- a/lib/api/entities/group.rb
+++ b/lib/api/entities/group.rb
@@ -23,6 +23,7 @@ module API
expose :full_name, :full_path
expose :created_at
expose :parent_id
+ expose :organization_id
expose :shared_runners_setting
expose :custom_attributes, using: 'API::Entities::CustomAttribute', if: :with_custom_attributes
diff --git a/lib/api/entities/merge_request_basic.rb b/lib/api/entities/merge_request_basic.rb
index 56519e2bf08..39bb54bfc5a 100644
--- a/lib/api/entities/merge_request_basic.rb
+++ b/lib/api/entities/merge_request_basic.rb
@@ -97,6 +97,11 @@ module API
expose :squash
expose :squash_on_merge?, as: :squash_on_merge
expose :task_completion_status
+
+ # #cannot_be_merged? is generally indicative of conflicts, and is set via
+ # MergeRequests::MergeabilityCheckService. However, it can also indicate
+ # that either #has_no_commits? or #branch_missing? are true.
+ #
expose :cannot_be_merged?, as: :has_conflicts
expose :mergeable_discussions_state?, as: :blocking_discussions_resolved
diff --git a/lib/api/entities/ml/mlflow/model_version.rb b/lib/api/entities/ml/mlflow/model_version.rb
index 10fdf3822a5..d57def4e1f2 100644
--- a/lib/api/entities/ml/mlflow/model_version.rb
+++ b/lib/api/entities/ml/mlflow/model_version.rb
@@ -18,7 +18,7 @@ module API
expose :run_id
expose :status
expose :status_message
- expose :metadata
+ expose :metadata, as: :tags, using: KeyValue
expose :run_link
expose :aliases, documentation: { is_array: true, type: String }
@@ -68,10 +68,6 @@ module API
""
end
- def metadata
- []
- end
-
def run_link
""
end
diff --git a/lib/api/entities/ml/mlflow/search_experiments.rb b/lib/api/entities/ml/mlflow/search_experiments.rb
new file mode 100644
index 00000000000..9673cb1b6fd
--- /dev/null
+++ b/lib/api/entities/ml/mlflow/search_experiments.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+module API
+ module Entities
+ module Ml
+ module Mlflow
+ class SearchExperiments < Grape::Entity # rubocop:disable Search/NamespacedClass -- Not related to search
+ expose :experiments, with: Experiment
+ expose :next_page_token
+ end
+ end
+ end
+ end
+end
diff --git a/lib/api/entities/pages/deployments.rb b/lib/api/entities/pages/deployments.rb
new file mode 100644
index 00000000000..143fbe93344
--- /dev/null
+++ b/lib/api/entities/pages/deployments.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+module API
+ module Entities
+ module Pages
+ class Deployments < Grape::Entity
+ expose :created_at
+ expose :url
+ expose :path_prefix
+ expose :root_directory
+ end
+ end
+ end
+end
diff --git a/lib/api/entities/pages/project_settings.rb b/lib/api/entities/pages/project_settings.rb
new file mode 100644
index 00000000000..81a48fe8bd3
--- /dev/null
+++ b/lib/api/entities/pages/project_settings.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+module API
+ module Entities
+ module Pages
+ class ProjectSettings < Grape::Entity
+ expose :url
+ expose :deployments, using: "API::Entities::Pages::Deployments"
+ expose :unique_domain_enabled?, as: :is_unique_domain_enabled
+ expose :force_https?, as: :force_https
+ end
+ end
+ end
+end
diff --git a/lib/api/entities/user_preferences.rb b/lib/api/entities/user_preferences.rb
index e04ddd52f29..3824e3f1b37 100644
--- a/lib/api/entities/user_preferences.rb
+++ b/lib/api/entities/user_preferences.rb
@@ -8,5 +8,3 @@ module API
end
end
end
-
-API::Entities::UserPreferences.prepend_mod_with('API::Entities::UserPreferences', with_descendants: true)
diff --git a/lib/api/group_variables.rb b/lib/api/group_variables.rb
index f320fa06394..94702c36c85 100644
--- a/lib/api/group_variables.rb
+++ b/lib/api/group_variables.rb
@@ -106,11 +106,31 @@ module API
declared_params(include_missing: false)
)
- variable = ::Ci::ChangeVariableService.new(
- container: user_group,
- current_user: current_user,
- params: { action: :update, variable_params: filtered_params }
- ).execute
+ # If the 'filter' parameter is provided, the user is updating a scoped variable
+ # and we need to use `find_variable` to make sure we update the correct one.
+ # However, this would result in an error response in case the user attempts to
+ # update a scoped variable without providing a filter. This error response is
+ # technically correct, because updating a scoped variable without specifying
+ # the targeted scope causes non-deterministic behavior. But this endpoint was
+ # originally introduced without the ability to specify a filter, and returning
+ # an error in these cases now would be considered a breaking change.
+ # Thus we only use the new/correct code if the user provided a filter.
+ # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136475
+ if params.key?('filter')
+ variable = find_variable(user_group, params)
+
+ variable = ::Ci::ChangeVariableService.new(
+ container: user_group,
+ current_user: current_user,
+ params: { action: :update, variable: variable, variable_params: filtered_params }
+ ).execute
+ else
+ variable = ::Ci::ChangeVariableService.new(
+ container: user_group,
+ current_user: current_user,
+ params: { action: :update, variable_params: filtered_params }
+ ).execute
+ end
if variable.valid?
present variable, with: Entities::Ci::Variable
diff --git a/lib/api/groups.rb b/lib/api/groups.rb
index 1ff64cd2ffd..7b755a76f29 100644
--- a/lib/api/groups.rb
+++ b/lib/api/groups.rb
@@ -213,11 +213,15 @@ module API
requires :name, type: String, desc: 'The name of the group'
requires :path, type: String, desc: 'The path of the group'
optional :parent_id, type: Integer, desc: 'The parent group id for creating nested group'
+ optional :organization_id, type: Integer, desc: 'The organization id for the group'
use :optional_params
end
post feature_category: :groups_and_projects, urgency: :low do
- parent_group = find_group!(params[:parent_id]) if params[:parent_id].present?
+ organization = find_organization!(params[:organization_id]) if params[:organization_id].present?
+ authorize! :create_group, organization if organization
+
+ parent_group = find_group!(params[:parent_id], organization: organization) if params[:parent_id].present?
if parent_group
authorize! :create_subgroup, parent_group
else
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index f5dcbc07704..a59734d643d 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -184,8 +184,7 @@ module API
return true unless job_token_authentication?
return true unless route_authentication_setting[:job_token_scope] == :project
- ::Feature.enabled?(:ci_job_token_scope, project) &&
- current_authenticated_job.project == project
+ current_authenticated_job.project == project
end
# rubocop: disable CodeReuse/ActiveRecord
@@ -212,18 +211,25 @@ module API
not_found!('Pipeline')
end
+ def find_organization!(id)
+ organization = Organizations::Organization.find_by_id(id)
+ check_organization_access(organization)
+ end
+
# rubocop: disable CodeReuse/ActiveRecord
- def find_group(id)
+ def find_group(id, organization: nil)
+ collection = organization.present? ? Group.in_organization(organization) : Group.all
+
if id.to_s =~ INTEGER_ID_REGEX
- Group.find_by(id: id)
+ collection.find_by(id: id)
else
- Group.find_by_full_path(id)
+ collection.find_by_full_path(id)
end
end
# rubocop: enable CodeReuse/ActiveRecord
- def find_group!(id)
- group = find_group(id)
+ def find_group!(id, organization: nil)
+ group = find_group(id, organization: organization)
check_group_access(group)
end
@@ -836,6 +842,12 @@ module API
@sudo_identifier ||= params[SUDO_PARAM] || env[SUDO_HEADER]
end
+ def check_organization_access(organization)
+ return organization if can?(current_user, :read_organization, organization)
+
+ not_found!('Organization')
+ end
+
def secret_token
Gitlab::Shell.secret_token
end
diff --git a/lib/api/helpers/integrations_helpers.rb b/lib/api/helpers/integrations_helpers.rb
index dd3009ff1d7..b450718a7d0 100644
--- a/lib/api/helpers/integrations_helpers.rb
+++ b/lib/api/helpers/integrations_helpers.rb
@@ -7,35 +7,6 @@ module API
# The data structures inside this model are returned using class methods,
# allowing EE to extend them where necessary.
module IntegrationsHelpers
- def self.chat_notification_settings
- [
- {
- required: true,
- name: :webhook,
- type: String,
- desc: 'The chat webhook'
- },
- {
- required: false,
- name: :username,
- type: String,
- desc: 'The chat username'
- },
- {
- required: false,
- name: :channel,
- type: String,
- desc: 'The default chat channel'
- },
- {
- required: false,
- name: :branches_to_be_notified,
- type: String,
- desc: 'Branches for which notifications are to be sent'
- }
- ].freeze
- end
-
def self.chat_notification_flags
[
{
@@ -129,58 +100,8 @@ module API
'apple-app-store' => ::Integrations::AppleAppStore.api_fields,
'asana' => ::Integrations::Asana.api_fields,
'assembla' => ::Integrations::Assembla.api_fields,
- 'bamboo' => [
- {
- required: true,
- name: :bamboo_url,
- type: String,
- desc: 'Bamboo root URL like https://bamboo.example.com'
- },
- {
- required: false,
- name: :enable_ssl_verification,
- type: ::Grape::API::Boolean,
- desc: 'Enable SSL verification'
- },
- {
- required: true,
- name: :build_key,
- type: String,
- desc: 'Bamboo build plan key like'
- },
- {
- required: true,
- name: :username,
- type: String,
- desc: 'A user with API access, if applicable'
- },
- {
- required: true,
- name: :password,
- type: String,
- desc: 'Password of the user'
- }
- ],
- 'bugzilla' => [
- {
- required: true,
- name: :new_issue_url,
- type: String,
- desc: 'New issue URL'
- },
- {
- required: true,
- name: :issues_url,
- type: String,
- desc: 'Issues URL'
- },
- {
- required: true,
- name: :project_url,
- type: String,
- desc: 'Project URL'
- }
- ],
+ 'bamboo' => ::Integrations::Bamboo.api_fields,
+ 'bugzilla' => ::Integrations::Bugzilla.api_fields,
'buildkite' => [
{
required: true,
@@ -201,54 +122,9 @@ module API
desc: 'DEPRECATED: This parameter has no effect since SSL verification will always be enabled'
}
],
- 'campfire' => [
- {
- required: true,
- name: :token,
- type: String,
- desc: 'Campfire token'
- },
- {
- required: false,
- name: :subdomain,
- type: String,
- desc: 'Campfire subdomain'
- },
- {
- required: false,
- name: :room,
- type: String,
- desc: 'Campfire room'
- }
- ],
- 'confluence' => [
- {
- required: true,
- name: :confluence_url,
- type: String,
- desc: 'The URL of the Confluence Cloud Workspace hosted on atlassian.net'
- }
- ],
- 'custom-issue-tracker' => [
- {
- required: true,
- name: :new_issue_url,
- type: String,
- desc: 'New issue URL'
- },
- {
- required: true,
- name: :issues_url,
- type: String,
- desc: 'Issues URL'
- },
- {
- required: true,
- name: :project_url,
- type: String,
- desc: 'Project URL'
- }
- ],
+ 'campfire' => ::Integrations::Campfire.api_fields,
+ 'confluence' => ::Integrations::Confluence.api_fields,
+ 'custom-issue-tracker' => ::Integrations::CustomIssueTracker.api_fields,
'datadog' => [
{
required: true,
@@ -293,19 +169,9 @@ module API
desc: 'Custom tags in Datadog. Specify one tag per line in the format: "key:value\nkey2:value2"'
}
],
+ 'diffblue-cover' => ::Integrations::DiffblueCover.api_fields,
'discord' => [
- {
- required: true,
- name: :webhook,
- type: String,
- desc: 'Discord webhook. For example, https://discord.com/api/webhooks/…'
- },
- {
- required: false,
- name: :branches_to_be_notified,
- type: String,
- desc: 'Branches for which notifications are to be sent'
- },
+ ::Integrations::Discord.api_fields,
chat_notification_flags,
chat_notification_channels
].flatten,
@@ -355,40 +221,8 @@ module API
desc: 'Branches for which notifications are to be sent'
}
],
- 'external-wiki' => [
- {
- required: true,
- name: :external_wiki_url,
- type: String,
- desc: 'The URL of the external wiki'
- }
- ],
- 'google-play' => [
- {
- required: true,
- name: :package_name,
- type: String,
- desc: 'The package name of the app in Google Play'
- },
- {
- required: true,
- name: :service_account_key,
- type: String,
- desc: 'The Google Play service account key'
- },
- {
- required: true,
- name: :service_account_key_file_name,
- type: String,
- desc: 'The filename of the Google Play service account key'
- },
- {
- required: false,
- name: :google_play_protected_refs,
- type: ::Grape::API::Boolean,
- desc: 'Only enable for protected refs'
- }
- ],
+ 'external-wiki' => ::Integrations::ExternalWiki.api_fields,
+ 'google-play' => ::Integrations::GooglePlay.api_fields,
'hangouts-chat' => [
{
required: true,
@@ -403,32 +237,7 @@ module API
desc: 'Branches for which notifications are to be sent'
}
].flatten,
- 'harbor' => [
- {
- required: true,
- name: :url,
- type: String,
- desc: 'The base URL to the Harbor instance which is being linked to this GitLab project. For example, https://demo.goharbor.io.'
- },
- {
- required: true,
- name: :project_name,
- type: String,
- desc: 'The Project name to the Harbor instance. For example, testproject.'
- },
- {
- required: true,
- name: :username,
- type: String,
- desc: 'The username created from Harbor interface.'
- },
- {
- required: true,
- name: :password,
- type: String,
- desc: 'The password of the user.'
- }
- ],
+ 'harbor' => ::Integrations::Harbor.api_fields,
'irker' => [
{
required: true,
@@ -555,14 +364,7 @@ module API
desc: 'Enable comments inside Jira issues on each GitLab event (commit / merge request)'
}
],
- 'mattermost-slash-commands' => [
- {
- required: true,
- name: :token,
- type: String,
- desc: 'The Mattermost token'
- }
- ],
+ 'mattermost-slash-commands' => ::Integrations::MattermostSlashCommands.api_fields,
'slack-slash-commands' => [
{
required: true,
@@ -697,77 +499,12 @@ module API
desc: 'The sound of the notification'
}
],
- 'redmine' => [
- {
- required: true,
- name: :new_issue_url,
- type: String,
- desc: 'The new issue URL'
- },
- {
- required: true,
- name: :project_url,
- type: String,
- desc: 'The project URL'
- },
- {
- required: true,
- name: :issues_url,
- type: String,
- desc: 'The issues URL'
- }
- ],
- 'ewm' => [
- {
- required: true,
- name: :new_issue_url,
- type: String,
- desc: 'New Issue URL'
- },
- {
- required: true,
- name: :project_url,
- type: String,
- desc: 'Project URL'
- },
- {
- required: true,
- name: :issues_url,
- type: String,
- desc: 'Issues URL'
- }
- ],
- 'youtrack' => [
- {
- required: true,
- name: :project_url,
- type: String,
- desc: 'The project URL'
- },
- {
- required: true,
- name: :issues_url,
- type: String,
- desc: 'The issues URL'
- }
- ],
- 'clickup' => [
- {
- required: true,
- name: :project_url,
- type: String,
- desc: 'The project URL'
- },
- {
- required: true,
- name: :issues_url,
- type: String,
- desc: 'The issues URL'
- }
- ],
+ 'redmine' => ::Integrations::Redmine.api_fields,
+ 'ewm' => ::Integrations::Ewm.api_fields,
+ 'youtrack' => ::Integrations::Youtrack.api_fields,
+ 'clickup' => ::Integrations::Clickup.api_fields,
'slack' => [
- chat_notification_settings,
- chat_notification_flags,
+ ::Integrations::Slack.api_fields,
chat_notification_channels
].flatten,
'microsoft-teams' => [
@@ -786,8 +523,7 @@ module API
chat_notification_flags
].flatten,
'mattermost' => [
- chat_notification_settings,
- chat_notification_flags,
+ ::Integrations::Mattermost.api_fields,
chat_notification_channels
].flatten,
'teamcity' => [
@@ -879,20 +615,7 @@ module API
desc: 'The product ID of ZenTao project'
}
],
- 'squash-tm' => [
- {
- required: true,
- name: :url,
- type: String,
- desc: 'The Squash TM webhook URL'
- },
- {
- required: false,
- name: :token,
- type: String,
- desc: 'The secret token'
- }
- ]
+ 'squash-tm' => ::Integrations::SquashTm.api_fields
}
end
@@ -909,6 +632,7 @@ module API
::Integrations::Confluence,
::Integrations::CustomIssueTracker,
::Integrations::Datadog,
+ ::Integrations::DiffblueCover,
::Integrations::Discord,
::Integrations::DroneCi,
::Integrations::EmailsOnPush,
diff --git a/lib/api/helpers/kubernetes/agent_helpers.rb b/lib/api/helpers/kubernetes/agent_helpers.rb
index eca26c023cf..18f47fa9955 100644
--- a/lib/api/helpers/kubernetes/agent_helpers.rb
+++ b/lib/api/helpers/kubernetes/agent_helpers.rb
@@ -40,7 +40,6 @@ module API
def increment_unique_events
events = params[:unique_counters]&.slice(
- :agent_users_using_ci_tunnel,
:k8s_api_proxy_requests_unique_agents_via_ci_access,
:k8s_api_proxy_requests_unique_agents_via_user_access,
:k8s_api_proxy_requests_unique_agents_via_pat_access,
@@ -60,6 +59,8 @@ module API
)
return if event_lists.blank?
+ event_lists[:agent_users_using_ci_tunnel] = event_lists.values.flatten
+
users, projects = load_users_and_projects(event_lists)
event_lists.each do |event_name, events|
track_events_for(event_name, events, users, projects)
diff --git a/lib/api/helpers/packages/maven.rb b/lib/api/helpers/packages/maven.rb
index 6c50f4c00a1..f7c8da3e641 100644
--- a/lib/api/helpers/packages/maven.rb
+++ b/lib/api/helpers/packages/maven.rb
@@ -19,11 +19,11 @@ module API
documentation: { example: 'mypkg-1.0-SNAPSHOT.jar' }
end
- def extract_format(file_name)
+ def extract_format(file_name, skip_fips_check: false)
name, _, format = file_name.rpartition('.')
if %w[md5 sha1].include?(format)
- unprocessable_entity! if Gitlab::FIPS.enabled? && format == 'md5'
+ unprocessable_entity! if !skip_fips_check && Gitlab::FIPS.enabled? && format == 'md5'
[name, format]
else
diff --git a/lib/api/helpers/user_preferences_helpers.rb b/lib/api/helpers/user_preferences_helpers.rb
deleted file mode 100644
index 846ad354156..00000000000
--- a/lib/api/helpers/user_preferences_helpers.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: true
-
-module API
- module Helpers
- module UserPreferencesHelpers
- extend ActiveSupport::Concern
- extend Grape::API::Helpers
-
- def update_user_namespace_settings(attrs)
- # This method will be redefined in EE.
- attrs
- end
- end
- end
-end
-
-API::Helpers::UserPreferencesHelpers.prepend_mod_with('API::Helpers::UserPreferencesHelpers')
diff --git a/lib/api/internal/kubernetes.rb b/lib/api/internal/kubernetes.rb
index d3a4d94f8ca..286192f8093 100644
--- a/lib/api/internal/kubernetes.rb
+++ b/lib/api/internal/kubernetes.rb
@@ -127,7 +127,6 @@ module API
end
optional :unique_counters, type: Hash do
- optional :agent_users_using_ci_tunnel, type: Array[Integer], desc: 'An array of user ids that have interacted with CI Tunnel'
optional :k8s_api_proxy_requests_unique_users_via_ci_access, type: Array[Integer], desc: 'An array of users that have interacted with the CI tunnel via `ci_access`'
optional :k8s_api_proxy_requests_unique_agents_via_ci_access, type: Array[Integer], desc: 'An array of agents that have interacted with the CI tunnel via `ci_access`'
optional :k8s_api_proxy_requests_unique_users_via_user_access, type: Array[Integer], desc: 'An array of users that have interacted with the CI tunnel via `user_access`'
diff --git a/lib/api/maven_packages.rb b/lib/api/maven_packages.rb
index 14c3fccee32..e969935383a 100644
--- a/lib/api/maven_packages.rb
+++ b/lib/api/maven_packages.rb
@@ -260,7 +260,13 @@ module API
authorize_upload!
bad_request!('File is too large') if user_project.actual_limits.exceeded?(:maven_max_file_size, params[:file].size)
- file_name, format = extract_format(params[:file_name])
+ # In FIPS mode, we've already told Workhorse not to generate a
+ # MD5 checksum via UploadHashFunctions, and the FIPS check above
+ # ensures that Workhorse obeys that. However, Gradle will attempt to issue a PUT request
+ # with the MD5 checksum, and the publish step will fail if this endpoint returns a
+ # 422 (https://github.com/gradle/gradle/blob/v8.5.0/platforms/software/maven/src/main/java/org/gradle/api/publish/maven/internal/publisher/AbstractMavenPublisher.java#L240),
+ # so we need to skip the second FIPS check here.
+ file_name, format = extract_format(params[:file_name], skip_fips_check: true)
::Gitlab::Database::LoadBalancing::Session.current.use_primary do
result = ::Packages::Maven::FindOrCreatePackageService
diff --git a/lib/api/members.rb b/lib/api/members.rb
index 56a15c41e1c..908733d4aa1 100644
--- a/lib/api/members.rb
+++ b/lib/api/members.rb
@@ -176,7 +176,7 @@ module API
source = find_source(source_type, params[:id])
member = source_members(source).find_by!(user_id: params[:user_id])
- check_rate_limit!(:member_delete, scope: [source, current_user])
+ check_rate_limit!(:members_delete, scope: [source, current_user])
destroy_conditionally!(member) do
::Members::DestroyService.new(current_user).execute(member, skip_subresources: params[:skip_subresources], unassign_issuables: params[:unassign_issuables])
diff --git a/lib/api/merge_request_approvals.rb b/lib/api/merge_request_approvals.rb
index d0c9400039a..23d7dafdc0a 100644
--- a/lib/api/merge_request_approvals.rb
+++ b/lib/api/merge_request_approvals.rb
@@ -104,7 +104,8 @@ module API
put 'reset_approvals', urgency: :low do
merge_request = find_project_merge_request(params[:merge_request_iid])
- unauthorized! unless current_user.can?(:reset_merge_request_approvals, merge_request)
+ unauthorized! unless current_user.can?(:reset_merge_request_approvals, merge_request) &&
+ !merge_request.merged?
merge_request.approvals.delete_all
diff --git a/lib/api/ml/mlflow/api_helpers.rb b/lib/api/ml/mlflow/api_helpers.rb
index 66d79753110..c81c66ca798 100644
--- a/lib/api/ml/mlflow/api_helpers.rb
+++ b/lib/api/ml/mlflow/api_helpers.rb
@@ -5,6 +5,7 @@ module API
module Mlflow
module ApiHelpers
OUTER_QUOTES_REGEXP = /^("|')|("|')?$/
+ GITLAB_TAG_PREFIX = 'gitlab.'
def check_api_read!
not_found! unless can?(current_user, :read_model_experiments, user_project)
@@ -113,6 +114,27 @@ module API
{ name: filter }
end
+ def gitlab_tags
+ return unless params[:tags].present?
+
+ tags = params[:tags]
+ gitlab_params = {}
+
+ tags.each do |tag|
+ key, value = tag.values_at(:key, :value)
+
+ gitlab_params[key.delete_prefix(GITLAB_TAG_PREFIX)] = value if key&.starts_with?(GITLAB_TAG_PREFIX)
+ end
+
+ gitlab_params
+ end
+
+ def custom_version
+ return unless gitlab_tags
+
+ gitlab_tags['version']
+ end
+
def find_experiment!(iid, name)
experiment_repository.by_iid_or_name(iid: iid, name: name) || resource_not_found!
end
diff --git a/lib/api/ml/mlflow/experiments.rb b/lib/api/ml/mlflow/experiments.rb
index 1a501291941..511922782e8 100644
--- a/lib/api/ml/mlflow/experiments.rb
+++ b/lib/api/ml/mlflow/experiments.rb
@@ -47,6 +47,42 @@ module API
present response, with: Entities::Ml::Mlflow::ListExperiment
end
+ desc 'Search experiments' do
+ success Entities::Ml::Mlflow::ListExperiment
+ detail 'https://www.mlflow.org/docs/latest/rest-api.html#list-experiments'
+ end
+ params do
+ optional :max_results,
+ type: Integer,
+ desc: 'Maximum number of experiments to fetch in a page. Default is 200, maximum is 1000.',
+ default: 200
+ optional :order_by,
+ type: String,
+ desc: 'Order criteria. Can be by a column of the experiment (created_at, name).',
+ default: 'created_at DESC'
+ optional :page_token,
+ type: String,
+ desc: 'Token for pagination'
+ optional :filter,
+ type: String,
+ desc: 'This parameter is ignored'
+ end
+ post 'search', urgency: :low do
+ max_results = [params[:max_results], 1000].min
+
+ finder_params = model_order_params(params)
+
+ finder = ::Projects::Ml::ExperimentFinder.new(user_project, finder_params)
+ paginator = finder.execute.keyset_paginate(cursor: params[:page_token], per_page: max_results)
+
+ result = {
+ experiments: paginator.records,
+ next_page_token: paginator.cursor_for_next_page
+ }
+
+ present result, with: Entities::Ml::Mlflow::SearchExperiments
+ end
+
desc 'Create experiment' do
success Entities::Ml::Mlflow::NewExperiment
detail 'https://www.mlflow.org/docs/1.28.0/rest-api.html#create-experiment'
diff --git a/lib/api/ml/mlflow/model_versions.rb b/lib/api/ml/mlflow/model_versions.rb
index 4b211cf540c..53ba4ff36f1 100644
--- a/lib/api/ml/mlflow/model_versions.rb
+++ b/lib/api/ml/mlflow/model_versions.rb
@@ -27,13 +27,16 @@ module API
desc: 'Register model under this name This field is required.'
optional :description, type: String,
desc: 'Optional description for model version.'
+ optional :tags, type: Array, desc: 'Additional metadata for a model version.'
end
post 'create', urgency: :low do
present ::Ml::CreateModelVersionService.new(
model,
{
model_name: params[:name],
- description: params[:description]
+ description: params[:description],
+ metadata: params[:tags],
+ version: custom_version
}
).execute,
with: Entities::Ml::Mlflow::ModelVersion,
diff --git a/lib/api/ml/mlflow/registered_models.rb b/lib/api/ml/mlflow/registered_models.rb
index a68a2767a74..3f4996a94c0 100644
--- a/lib/api/ml/mlflow/registered_models.rb
+++ b/lib/api/ml/mlflow/registered_models.rb
@@ -31,13 +31,17 @@ module API
optional :tags, type: Array, desc: 'Additional metadata for registered model.'
end
post 'create', urgency: :low do
- present ::Ml::CreateModelService.new(
+ model = ::Ml::CreateModelService.new(
user_project,
params[:name],
current_user,
params[:description],
params[:tags]
- ).execute,
+ ).execute
+
+ resource_already_exists! unless model.persisted?
+
+ present model,
with: Entities::Ml::Mlflow::RegisteredModel,
root: :registered_model
rescue ActiveRecord::RecordInvalid
diff --git a/lib/api/namespaces.rb b/lib/api/namespaces.rb
index 750dc7fc2a1..17425c288fc 100644
--- a/lib/api/namespaces.rb
+++ b/lib/api/namespaces.rb
@@ -34,6 +34,7 @@ module API
params do
optional :search, type: String, desc: 'Returns a list of namespaces the user is authorized to view based on the search criteria'
optional :owned_only, type: Boolean, desc: 'In GitLab 14.2 and later, returns a list of owned namespaces only'
+ optional :top_level_only, type: Boolean, default: false, desc: 'Only include top level namespaces'
use :pagination
use :optional_list_params_ee
@@ -43,6 +44,8 @@ module API
namespaces = current_user.admin ? Namespace.all : current_user.namespaces(owned_only: owned_only)
+ namespaces = namespaces.top_most if params[:top_level_only]
+
namespaces = namespaces.without_project_namespaces.include_route
namespaces = namespaces.include_gitlab_subscription_with_hosted_plan if Gitlab.ee?
diff --git a/lib/api/npm_project_packages.rb b/lib/api/npm_project_packages.rb
index e1d0455b1e2..c6c99944ca0 100644
--- a/lib/api/npm_project_packages.rb
+++ b/lib/api/npm_project_packages.rb
@@ -1,6 +1,13 @@
# frozen_string_literal: true
module API
class NpmProjectPackages < ::API::Base
+ ERROR_REASON_TO_HTTP_STATUS_MAPPTING = {
+ ::Packages::Npm::CreatePackageService::ERROR_REASON_INVALID_PARAMETER => 400,
+ ::Packages::Npm::CreatePackageService::ERROR_REASON_PACKAGE_LEASE_TAKEN => 400,
+ ::Packages::Npm::CreatePackageService::ERROR_REASON_PACKAGE_EXISTS => 403,
+ ::Packages::Npm::CreatePackageService::ERROR_REASON_PACKAGE_PROTECTED => 403
+ }.freeze
+
helpers ::API::Helpers::Packages::Npm
feature_category :package_registry
@@ -14,6 +21,10 @@ module API
def endpoint_scope
:project
end
+
+ def error_reason_to_http_status(reason)
+ ERROR_REASON_TO_HTTP_STATUS_MAPPTING.fetch(reason, 400)
+ end
end
params do
@@ -74,12 +85,13 @@ module API
else
authorize_create_package!(project)
- created_package = ::Packages::Npm::CreatePackageService
+ service_response = ::Packages::Npm::CreatePackageService
.new(project, current_user, params.merge(build: current_authenticated_job)).execute
- if created_package[:status] == :error
- render_structured_api_error!({ message: created_package[:message], error: created_package[:message] }, created_package[:http_status])
+ if service_response.error?
+ render_structured_api_error!({ message: service_response.message, error: service_response.message }, error_reason_to_http_status(service_response.reason))
else
+ created_package = service_response[:package]
enqueue_sync_metadata_cache_worker(project, created_package.name)
track_package_event('push_package', :npm, category: 'API::NpmPackages', project: project, namespace: project.namespace)
created_package
diff --git a/lib/api/pages.rb b/lib/api/pages.rb
index 0cedf7d975f..30e126b34cb 100644
--- a/lib/api/pages.rb
+++ b/lib/api/pages.rb
@@ -6,7 +6,6 @@ module API
before do
require_pages_config_enabled!
- authenticated_with_can_read_all_resources!
end
params do
@@ -24,12 +23,30 @@ module API
tags %w[pages]
end
delete ':id/pages' do
+ authenticated_with_can_read_all_resources!
authorize! :remove_pages, user_project
::Pages::DeleteService.new(user_project, current_user).execute
no_content!
end
+
+ desc 'Get pages settings' do
+ detail 'Get pages URL and other settings. This feature was introduced in Gitlab 16.8'
+ success code: 200
+ failure [
+ { code: 401, message: 'Unauthorized' },
+ { code: 404, message: 'Not Found' }
+ ]
+ tags %w[pages]
+ end
+ get ':id/pages' do
+ authorize! :read_pages, user_project
+
+ break not_found! unless user_project.pages_enabled?
+
+ present ::Pages::ProjectSettings.new(user_project), with: Entities::Pages::ProjectSettings
+ end
end
end
end
diff --git a/lib/api/terraform/modules/v1/packages.rb b/lib/api/terraform/modules/v1/namespace_packages.rb
index 9e82a849c98..1999fc42aba 100644
--- a/lib/api/terraform/modules/v1/packages.rb
+++ b/lib/api/terraform/modules/v1/namespace_packages.rb
@@ -4,7 +4,7 @@ module API
module Terraform
module Modules
module V1
- class Packages < ::API::Base
+ class NamespacePackages < ::API::Base
include ::API::Helpers::Authentication
helpers ::API::Helpers::PackagesHelpers
helpers ::API::Helpers::Packages::BasicAuthHelpers
@@ -29,8 +29,10 @@ module API
end
helpers do
+ include ::Gitlab::Utils::StrongMemoize
+
params :module_name do
- requires :module_name, type: String, desc: "", regexp: API::NO_SLASH_URL_PART_REGEX
+ requires :module_name, type: String, desc: '', regexp: API::NO_SLASH_URL_PART_REGEX
requires :module_system, type: String, regexp: API::NO_SLASH_URL_PART_REGEX
end
@@ -39,10 +41,9 @@ module API
end
def module_namespace
- strong_memoize(:module_namespace) do
- find_namespace(params[:module_namespace])
- end
+ find_namespace(params[:module_namespace])
end
+ strong_memoize_attr :module_namespace
def finder_params
{
@@ -55,26 +56,23 @@ module API
end
def packages
- strong_memoize(:packages) do
- ::Packages::GroupPackagesFinder.new(
- current_user,
- module_namespace,
- finder_params
- ).execute
- end
+ ::Packages::GroupPackagesFinder.new(
+ current_user,
+ module_namespace,
+ finder_params
+ ).execute
end
+ strong_memoize_attr :packages
def package
- strong_memoize(:package) do
- packages.first
- end
+ packages.first
end
+ strong_memoize_attr :package
def package_file
- strong_memoize(:package_file) do
- package.installable_package_files.first
- end
+ package.installable_package_files.first
end
+ strong_memoize_attr :package_file
end
params do
@@ -82,7 +80,8 @@ module API
includes :module_name
end
- namespace 'packages/terraform/modules/v1/:module_namespace/:module_name/:module_system', requirements: TERRAFORM_MODULE_REQUIREMENTS do
+ namespace 'packages/terraform/modules/v1/:module_namespace/:module_name/:module_system',
+ requirements: TERRAFORM_MODULE_REQUIREMENTS do
authenticate_with do |accept|
accept.token_types(:personal_access_token, :deploy_token, :job_token)
.sent_through(:http_bearer_token)
@@ -118,7 +117,9 @@ module API
get 'download' do
latest_version = packages.order_version.last&.version
- render_api_error!({ error: "No version found for #{params[:module_name]} module" }, :not_found) if latest_version.nil?
+ if latest_version.nil?
+ render_api_error!({ error: "No version found for #{params[:module_name]} module" }, :not_found)
+ end
download_path = api_v4_packages_terraform_modules_v1_module_version_download_path(
{
@@ -145,7 +146,9 @@ module API
get do
latest_package = packages.order_version.last
- render_api_error!({ error: "No version found for #{params[:module_name]} module" }, :not_found) if latest_package&.version.nil?
+ if latest_package&.version.nil?
+ render_api_error!({ error: "No version found for #{params[:module_name]} module" }, :not_found)
+ end
presenter = ::Terraform::ModuleVersionPresenter.new(latest_package, params[:module_system])
present presenter, with: ::API::Entities::Terraform::ModuleVersion
@@ -181,13 +184,18 @@ module API
jwt_token = Gitlab::TerraformRegistryToken.from_token(token_from_namespace_inheritable).encoded
end
- header 'X-Terraform-Get', module_file_path.sub(%r{module_version/file$}, "#{params[:module_version]}/file?token=#{jwt_token}&archive=tgz")
+ header 'X-Terraform-Get',
+ module_file_path.sub(
+ %r{module_version/file$},
+ "#{params[:module_version]}/file?token=#{jwt_token}&archive=tgz"
+ )
status :no_content
end
namespace 'file' do
authenticate_with do |accept|
- accept.token_types(:deploy_token_from_jwt, :job_token_from_jwt, :personal_access_token_from_jwt).sent_through(:token_param)
+ accept.token_types(:deploy_token_from_jwt, :job_token_from_jwt, :personal_access_token_from_jwt)
+ .sent_through(:token_param)
end
desc 'Download specific version of a module' do
@@ -200,9 +208,14 @@ module API
tags %w[terraform_registry]
end
get do
- track_package_event('pull_package', :terraform_module, project: package.project, namespace: module_namespace)
-
- present_carrierwave_file!(package_file.file)
+ track_package_event(
+ 'pull_package',
+ :terraform_module,
+ project: package.project,
+ namespace: module_namespace
+ )
+
+ present_package_file!(package_file)
end
end
diff --git a/lib/api/terraform/modules/v1/project_packages.rb b/lib/api/terraform/modules/v1/project_packages.rb
index 07dfddefefc..c0a84c7b36c 100644
--- a/lib/api/terraform/modules/v1/project_packages.rb
+++ b/lib/api/terraform/modules/v1/project_packages.rb
@@ -16,87 +16,174 @@ module API
require_packages_enabled!
end
- params do
- requires :id, type: String, desc: 'The ID or full path of a project'
- requires :module_name, type: String, desc: "", regexp: API::NO_SLASH_URL_PART_REGEX
- requires :module_system, type: String, regexp: API::NO_SLASH_URL_PART_REGEX
- requires :module_version, type: String, desc: 'Module version', regexp: Gitlab::Regex.semver_regex
- end
+ helpers do
+ params :terraform_get do
+ optional 'terraform-get', type: String, values: %w[1], desc: 'Terraform get redirection flag'
+ end
- resource :projects, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
- namespace ':id/packages/terraform/modules/:module_name/:module_system/*module_version/file' do
- authenticate_with do |accept|
- accept.token_types(:deploy_token).sent_through(:http_deploy_token_header)
- accept.token_types(:job_token).sent_through(:http_job_token_header)
- accept.token_types(:personal_access_token).sent_through(:http_private_token_header)
+ def present_package_file
+ authorize_read_package!(authorized_user_project)
+
+ if declared_params[:'terraform-get'] == '1'
+ header 'X-Terraform-Get', "#{request.url.split('?').first}?archive=tgz"
+ return no_content!
end
- desc 'Workhorse authorize Terraform Module package file' do
- detail 'This feature was introduced in GitLab 13.11'
- success code: 200
- failure [
- { code: 403, message: 'Forbidden' }
- ]
- tags %w[terraform_registry]
+ package = ::Packages::TerraformModule::PackagesFinder
+ .new(authorized_user_project, finder_params)
+ .execute
+ .first
+
+ not_found! unless package
+
+ track_package_event('pull_package', :terraform_module, project: authorized_user_project,
+ namespace: authorized_user_project.namespace)
+
+ present_package_file!(package.installable_package_files.first)
+ end
+
+ def finder_params
+ { package_name: package_name }.tap do |finder_params|
+ finder_params[:package_version] = params[:module_version] if params.key?(:module_version)
end
+ end
+
+ def package_name
+ "#{params[:module_name]}/#{params[:module_system]}"
+ end
+ end
- put 'authorize' do
- authorize_workhorse!(
- subject: authorized_user_project,
- maximum_size: authorized_user_project.actual_limits.terraform_module_max_file_size
- )
+ params do
+ requires :id, types: [String, Integer], allow_blank: false, desc: 'The ID or full path of a project'
+ with(type: String, allow_blank: false, regexp: API::NO_SLASH_URL_PART_REGEX) do
+ requires :module_name, desc: 'Module name', documentation: { example: 'infra-registry' }
+ requires :module_system, desc: 'Module system', documentation: { example: 'aws' }
+ end
+ end
+
+ resource :projects, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
+ namespace ':id/packages/terraform/modules/:module_name/:module_system' do
+ authenticate_with do |accept|
+ accept.token_types(
+ :personal_access_token_with_username,
+ :deploy_token_with_username,
+ :job_token_with_username
+ ).sent_through(:http_basic_auth)
end
- desc 'Upload Terraform Module package file' do
- detail 'This feature was introduced in GitLab 13.11'
- success code: 201
+ desc 'Download the latest version of a module' do
+ detail 'This feature was introduced in GitLab 16.7'
+ success code: 204
failure [
- { code: 400, message: 'Invalid file' },
{ code: 401, message: 'Unauthorized' },
{ code: 403, message: 'Forbidden' },
{ code: 404, message: 'Not found' }
]
- consumes %w[multipart/form-data]
tags %w[terraform_registry]
end
-
params do
- requires :file, type: ::API::Validations::Types::WorkhorseFile,
- desc: 'The package file to be published (generated by Multipart middleware)',
- documentation: { type: 'file' }
+ use :terraform_get
+ end
+ get do
+ present_package_file
end
- put do
- authorize_upload!(authorized_user_project)
-
- bad_request!('File is too large') if authorized_user_project.actual_limits.exceeded?(
- :terraform_module_max_file_size, params[:file].size)
-
- create_package_file_params = {
- module_name: params['module_name'],
- module_system: params['module_system'],
- module_version: params['module_version'],
- file: params['file'],
- build: current_authenticated_job
- }
-
- result = ::Packages::TerraformModule::CreatePackageService
- .new(authorized_user_project, current_user, create_package_file_params)
- .execute
-
- render_api_error!(result[:message], result[:http_status]) if result[:status] == :error
-
- track_package_event('push_package', :terraform_module, project: authorized_user_project,
- namespace: authorized_user_project.namespace)
-
- created!
- rescue ObjectStorage::RemoteStoreError => e
- Gitlab::ErrorTracking.track_exception(
- e,
- extra: { file_name: params[:file_name], project_id: authorized_user_project.id }
- )
-
- forbidden!
+ params do
+ requires :module_version, type: String, allow_blank: false, desc: 'Module version',
+ regexp: Gitlab::Regex.semver_regex
+ end
+ namespace '*module_version' do
+ desc 'Download a specific version of a module' do
+ detail 'This feature was introduced in GitLab 16.7'
+ success code: 204
+ failure [
+ { code: 401, message: 'Unauthorized' },
+ { code: 403, message: 'Forbidden' },
+ { code: 404, message: 'Not found' }
+ ]
+ tags %w[terraform_registry]
+ end
+ params do
+ use :terraform_get
+ end
+ get format: false do
+ present_package_file
+ end
+
+ namespace :file do
+ authenticate_with do |accept|
+ accept.token_types(:deploy_token).sent_through(:http_deploy_token_header)
+ accept.token_types(:job_token).sent_through(:http_job_token_header)
+ accept.token_types(:personal_access_token).sent_through(:http_private_token_header)
+ end
+
+ desc 'Workhorse authorize Terraform Module package file' do
+ detail 'This feature was introduced in GitLab 13.11'
+ success code: 200
+ failure [
+ { code: 403, message: 'Forbidden' }
+ ]
+ tags %w[terraform_registry]
+ end
+
+ put :authorize do
+ authorize_workhorse!(
+ subject: authorized_user_project,
+ maximum_size: authorized_user_project.actual_limits.terraform_module_max_file_size
+ )
+ end
+
+ desc 'Upload Terraform Module package file' do
+ detail 'This feature was introduced in GitLab 13.11'
+ success code: 201
+ failure [
+ { code: 400, message: 'Invalid file' },
+ { code: 401, message: 'Unauthorized' },
+ { code: 403, message: 'Forbidden' },
+ { code: 404, message: 'Not found' }
+ ]
+ consumes %w[multipart/form-data]
+ tags %w[terraform_registry]
+ end
+
+ params do
+ requires :file, type: ::API::Validations::Types::WorkhorseFile,
+ desc: 'The package file to be published (generated by Multipart middleware)',
+ documentation: { type: 'file' }
+ end
+
+ put do
+ authorize_upload!(authorized_user_project)
+
+ bad_request!('File is too large') if authorized_user_project.actual_limits.exceeded?(
+ :terraform_module_max_file_size, params[:file].size
+ )
+
+ create_package_file_params = {
+ module_name: params['module_name'],
+ module_system: params['module_system'],
+ module_version: params['module_version'],
+ file: params['file'],
+ build: current_authenticated_job
+ }
+
+ result = ::Packages::TerraformModule::CreatePackageService
+ .new(authorized_user_project, current_user, create_package_file_params)
+ .execute
+
+ render_api_error!(result.message, result.reason) if result.error?
+
+ track_package_event('push_package', :terraform_module, project: authorized_user_project,
+ namespace: authorized_user_project.namespace)
+
+ created!
+ rescue ObjectStorage::RemoteStoreError => e
+ Gitlab::ErrorTracking.track_exception(e,
+ extra: { file_name: params[:file_name], project_id: authorized_user_project.id })
+
+ forbidden!
+ end
+ end
end
end
end
diff --git a/lib/api/users.rb b/lib/api/users.rb
index 38fa247055e..8b54fb84dd2 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -1077,8 +1077,6 @@ module API
end
end
- helpers Helpers::UserPreferencesHelpers
-
desc "Get the currently authenticated user's SSH keys" do
success Entities::SSHKey
end
@@ -1269,9 +1267,7 @@ module API
optional :view_diffs_file_by_file, type: Boolean, desc: 'Flag indicating the user sees only one file diff per page'
optional :show_whitespace_in_diffs, type: Boolean, desc: 'Flag indicating the user sees whitespace changes in diffs'
optional :pass_user_identities_to_ci_jwt, type: Boolean, desc: 'Flag indicating the user passes their external identities to a CI job as part of a JSON web token.'
- optional :code_suggestions, type: Boolean, desc: 'Flag indicating the user allows code suggestions.' \
- 'Argument is experimental and can be removed in the future without notice.'
- at_least_one_of :view_diffs_file_by_file, :show_whitespace_in_diffs, :pass_user_identities_to_ci_jwt, :code_suggestions
+ at_least_one_of :view_diffs_file_by_file, :show_whitespace_in_diffs, :pass_user_identities_to_ci_jwt
end
put "preferences", feature_category: :user_profile, urgency: :high do
authenticate!
@@ -1280,8 +1276,6 @@ module API
attrs = declared_params(include_missing: false)
- attrs = update_user_namespace_settings(attrs)
-
render_api_error!('400 Bad Request', 400) unless attrs
service = ::UserPreferences::UpdateService.new(current_user, attrs).execute
diff --git a/lib/backup/database_configuration.rb b/lib/backup/database_configuration.rb
index 1a6a476f9c1..a9e3d175c30 100644
--- a/lib/backup/database_configuration.rb
+++ b/lib/backup/database_configuration.rb
@@ -19,7 +19,8 @@ module Backup
@connection_name = connection_name
@source_model = Gitlab::Database.database_base_models_with_gitlab_shared[connection_name] ||
Gitlab::Database.database_base_models_with_gitlab_shared['main']
- @activerecord_database_config = ActiveRecord::Base.configurations.find_db_config(connection_name)
+ @activerecord_database_config = ActiveRecord::Base.configurations.find_db_config(connection_name) ||
+ ActiveRecord::Base.configurations.find_db_config('main')
end
# ENV variables that can override each database configuration
diff --git a/lib/backup/database_model.rb b/lib/backup/database_model.rb
deleted file mode 100644
index 228a7fa5383..00000000000
--- a/lib/backup/database_model.rb
+++ /dev/null
@@ -1,86 +0,0 @@
-# frozen_string_literal: true
-
-module Backup
- class DatabaseModel
- SUPPORTED_OVERRIDES = {
- username: 'PGUSER',
- host: 'PGHOST',
- port: 'PGPORT',
- password: 'PGPASSWORD',
- # SSL
- sslmode: 'PGSSLMODE',
- sslkey: 'PGSSLKEY',
- sslcert: 'PGSSLCERT',
- sslrootcert: 'PGSSLROOTCERT',
- sslcrl: 'PGSSLCRL',
- sslcompression: 'PGSSLCOMPRESSION'
- }.freeze
-
- OVERRIDE_PREFIXES = %w[GITLAB_BACKUP_ GITLAB_OVERRIDE_].freeze
-
- attr_reader :config
-
- def initialize(name)
- configure_model(name)
- end
-
- def connection
- @model.connection
- end
-
- private
-
- def configure_model(name)
- source_model = Gitlab::Database.database_base_models_with_gitlab_shared[name] ||
- Gitlab::Database.database_base_models_with_gitlab_shared['main']
-
- @model = backup_model_for(name)
-
- original_config = source_model.connection_db_config.configuration_hash.dup
-
- @config = config_for_backup(name, original_config)
-
- @model.establish_connection(
- ActiveRecord::DatabaseConfigurations::HashConfig.new(
- source_model.connection_db_config.env_name,
- name.to_s,
- original_config.merge(@config[:activerecord])
- )
- )
-
- Gitlab::Database::LoadBalancing::Setup.new(@model).setup
- end
-
- def backup_model_for(name)
- klass_name = name.camelize
-
- return "#{self.class.name}::#{klass_name}".constantize if self.class.const_defined?(klass_name.to_sym, false)
-
- self.class.const_set(klass_name, Class.new(ApplicationRecord))
- end
-
- def config_for_backup(name, config)
- db_config = {
- activerecord: config,
- pg_env: {}
- }
- SUPPORTED_OVERRIDES.each do |opt, arg|
- # This enables the use of different PostgreSQL settings in
- # case PgBouncer is used. PgBouncer clears the search path,
- # which wreaks havoc on Rails if connections are reused.
- OVERRIDE_PREFIXES.each do |override_prefix|
- override_all = "#{override_prefix}#{arg}"
- override_db = "#{override_prefix}#{name.upcase}_#{arg}"
- val = ENV[override_db].presence || ENV[override_all].presence || config[opt].to_s.presence
-
- next unless val
-
- db_config[:pg_env][arg] = val
- db_config[:activerecord][opt] = val
- end
- end
-
- db_config
- end
- end
-end
diff --git a/lib/banzai/filter/markdown_engines/base.rb b/lib/banzai/filter/markdown_engines/base.rb
index 34f1d4d3da9..66d6440e257 100644
--- a/lib/banzai/filter/markdown_engines/base.rb
+++ b/lib/banzai/filter/markdown_engines/base.rb
@@ -4,8 +4,10 @@ module Banzai
module Filter
module MarkdownEngines
class Base
+ attr_reader :context
+
def initialize(context)
- @context = context
+ @context = context || {}
end
def render(text)
@@ -15,7 +17,7 @@ module Banzai
private
def sourcepos_disabled?
- @context[:no_sourcepos]
+ context[:no_sourcepos]
end
end
end
diff --git a/lib/banzai/filter/markdown_engines/glfm_markdown.rb b/lib/banzai/filter/markdown_engines/glfm_markdown.rb
new file mode 100644
index 00000000000..40539ac7961
--- /dev/null
+++ b/lib/banzai/filter/markdown_engines/glfm_markdown.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+require 'glfm_markdown'
+
+# Use the glfm_markdown gem (https://gitlab.com/gitlab-org/ruby/gems/gitlab-glfm-markdown)
+# to interface with the Rust based `comrak` parser
+# https://github.com/kivikakk/comrak
+module Banzai
+ module Filter
+ module MarkdownEngines
+ class GlfmMarkdown < Base
+ OPTIONS = {
+ autolink: true,
+ footnotes: true,
+ full_info_string: true,
+ github_pre_lang: true,
+ hardbreaks: false,
+ relaxed_autolinks: false,
+ sourcepos: true,
+ smart: false,
+ strikethrough: true,
+ table: true,
+ tagfilter: false,
+ tasklist: false, # still handled by a banzai filter/gem
+ unsafe: true
+ }.freeze
+
+ def render(text)
+ ::GLFMMarkdown.to_html(text, options: render_options)
+ end
+
+ private
+
+ def render_options
+ sourcepos_disabled? ? OPTIONS.merge(sourcepos: false) : OPTIONS
+ end
+ end
+ end
+ end
+end
+
+Banzai::Filter::MarkdownEngines::GlfmMarkdown.prepend_mod
diff --git a/lib/banzai/filter/markdown_filter.rb b/lib/banzai/filter/markdown_filter.rb
index e6a0cdfe020..5f442ed12d4 100644
--- a/lib/banzai/filter/markdown_filter.rb
+++ b/lib/banzai/filter/markdown_filter.rb
@@ -3,12 +3,13 @@
module Banzai
module Filter
class MarkdownFilter < HTML::Pipeline::TextFilter
- DEFAULT_ENGINE = :common_mark
+ RUST_ENGINE = :glfm_markdown # glfm_markdown/comrak
+ RUBY_ENGINE = :common_mark # original commonmarker/cmark-gfm
def initialize(text, context = nil, result = nil)
super(text, context, result)
- @renderer = self.class.render_engine(context[:markdown_engine]).new(context)
+ @renderer = render_engine.new(@context)
@text = @text.delete("\r")
end
@@ -16,13 +17,27 @@ module Banzai
@renderer.render(@text).rstrip
end
- class << self
- def render_engine(engine_from_context)
- "Banzai::Filter::MarkdownEngines::#{engine(engine_from_context)}".constantize
- rescue NameError
- raise NameError, "`#{engine_from_context}` is unknown markdown engine"
- end
+ def render_engine
+ "Banzai::Filter::MarkdownEngines::#{engine}".constantize
+ rescue NameError
+ raise NameError, "`#{engine_class}` is unknown markdown engine"
+ end
+
+ private
+
+ def engine
+ engine = context[:markdown_engine] || default_engine
+
+ engine.to_s.classify
+ end
+
+ def default_engine
+ return RUST_ENGINE if Feature.enabled?(:markdown_rust, context[:project])
+ RUBY_ENGINE
+ end
+
+ class << self
# Parses string representing a sourcepos in format
# "start_row:start_column-end_row:end_column" into 0-based
# attributes. For example, "1:10-14:1" becomes
@@ -42,14 +57,6 @@ module Banzai
end: { row: [1, end_row.to_i].max - 1, col: [1, end_col.to_i].max - 1 }
}
end
-
- private
-
- def engine(engine_from_context)
- engine_from_context ||= DEFAULT_ENGINE
-
- engine_from_context.to_s.classify
- end
end
end
end
diff --git a/lib/banzai/pipeline/gfm_pipeline.rb b/lib/banzai/pipeline/gfm_pipeline.rb
index 1b3905f0dde..474efe71b70 100644
--- a/lib/banzai/pipeline/gfm_pipeline.rb
+++ b/lib/banzai/pipeline/gfm_pipeline.rb
@@ -53,11 +53,11 @@ module Banzai
Filter::References::MergeRequestReferenceFilter,
Filter::References::SnippetReferenceFilter,
Filter::References::CommitRangeReferenceFilter,
- Filter::References::CommitReferenceFilter,
Filter::References::LabelReferenceFilter,
Filter::References::MilestoneReferenceFilter,
Filter::References::AlertReferenceFilter,
- Filter::References::FeatureFlagReferenceFilter
+ Filter::References::FeatureFlagReferenceFilter,
+ Filter::References::CommitReferenceFilter
]
end
diff --git a/lib/bulk_imports/file_downloads/validations.rb b/lib/bulk_imports/file_downloads/validations.rb
index 14f036e469c..261603da2ea 100644
--- a/lib/bulk_imports/file_downloads/validations.rb
+++ b/lib/bulk_imports/file_downloads/validations.rb
@@ -38,20 +38,14 @@ module BulkImports
raise_error 'Invalid downloaded file'
end
- def validate_content_length
- validate_size!(response_headers['content-length'])
- end
-
def validate_size!(size)
- if size.blank?
- raise_error 'Missing content-length header'
- elsif file_size_limit > 0 && size.to_i > file_size_limit
- raise_error format(
- "File size %{size} exceeds limit of %{limit}",
- size: ActiveSupport::NumberHelper.number_to_human_size(size),
- limit: ActiveSupport::NumberHelper.number_to_human_size(file_size_limit)
- )
- end
+ return unless file_size_limit > 0 && size.to_i > file_size_limit
+
+ raise_error format(
+ "File size %{size} exceeds limit of %{limit}",
+ size: ActiveSupport::NumberHelper.number_to_human_size(size),
+ limit: ActiveSupport::NumberHelper.number_to_human_size(file_size_limit)
+ )
end
end
end
diff --git a/lib/click_house/iterator.rb b/lib/click_house/iterator.rb
index 4bfbc624dc7..f17f3efa8a5 100644
--- a/lib/click_house/iterator.rb
+++ b/lib/click_house/iterator.rb
@@ -22,9 +22,10 @@ module ClickHouse
# builder = ClickHouse::QueryBuilder.new('event_authors').where(type: 'some_type')
class Iterator
# rubocop: disable CodeReuse/ActiveRecord -- this is a ClickHouse query builder class usin Arel
- def initialize(query_builder:, connection:)
+ def initialize(query_builder:, connection:, min_value: nil)
@query_builder = query_builder
@connection = connection
+ @min_value = min_value
end
def each_batch(column: :id, of: 10_000)
@@ -36,18 +37,18 @@ module ClickHouse
row = connection.select(min_max_query.to_sql).first
return if row.nil?
- min_value = row['min']
- max_value = row['max']
- return if max_value == 0
+ min = min_value || row['min']
+ max = row['max']
+ return if max == 0
loop do
- break if min_value > max_value
+ break if min > max
yield query_builder
- .where(table[column].gteq(min_value))
- .where(table[column].lt(min_value + of))
+ .where(table[column].gteq(min))
+ .where(table[column].lt(min + of))
- min_value += of
+ min += of
end
end
@@ -55,7 +56,7 @@ module ClickHouse
delegate :table, to: :query_builder
- attr_reader :query_builder, :connection
+ attr_reader :query_builder, :connection, :min_value
# rubocop: enable CodeReuse/ActiveRecord
end
end
diff --git a/lib/container_registry/gitlab_api_client.rb b/lib/container_registry/gitlab_api_client.rb
index 9b6c37da847..276f9b492cb 100644
--- a/lib/container_registry/gitlab_api_client.rb
+++ b/lib/container_registry/gitlab_api_client.rb
@@ -170,7 +170,7 @@ module ContainerRegistry
end
# https://gitlab.com/gitlab-org/container-registry/-/blob/master/docs/spec/gitlab/api.md#list-repository-tags
- def tags(path, page_size: 100, last: nil, before: nil, name: nil, sort: nil)
+ def tags(path, page_size: 100, last: nil, before: nil, name: nil, sort: nil, referrers: nil)
limited_page_size = [page_size, MAX_TAGS_PAGE_SIZE].min
with_token_faraday do |faraday_client|
url = "#{GITLAB_REPOSITORIES_PATH}/#{path}/tags/list/"
@@ -180,6 +180,7 @@ module ContainerRegistry
req.params['before'] = before if before
req.params['name'] = name if name.present?
req.params['sort'] = sort if sort
+ req.params['referrers'] = 'true' if referrers
end
unless response.success?
diff --git a/lib/container_registry/referrer.rb b/lib/container_registry/referrer.rb
new file mode 100644
index 00000000000..e61899b3a1b
--- /dev/null
+++ b/lib/container_registry/referrer.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+module ContainerRegistry
+ class Referrer
+ attr_reader :artifact_type, :digest, :tag
+
+ def initialize(artifact_type, digest, tag)
+ @artifact_type = artifact_type
+ @digest = digest
+ @tag = tag
+ end
+ end
+end
diff --git a/lib/container_registry/tag.rb b/lib/container_registry/tag.rb
index 70742e8bd38..4cf4cd71f86 100644
--- a/lib/container_registry/tag.rb
+++ b/lib/container_registry/tag.rb
@@ -4,7 +4,7 @@ module ContainerRegistry
class Tag
include Gitlab::Utils::StrongMemoize
- attr_reader :repository, :name, :updated_at
+ attr_reader :repository, :name, :updated_at, :referrers, :published_at
attr_writer :created_at, :manifest_digest, :revision, :total_size
delegate :registry, :client, to: :repository
@@ -14,6 +14,10 @@ module ContainerRegistry
@name = name
end
+ def referrers=(refs)
+ @referrers = Array.wrap(refs).map { |ref| Referrer.new(ref['artifactType'], ref['digest'], self) }
+ end
+
def revision
@revision || config_blob&.revision
end
@@ -97,24 +101,20 @@ module ContainerRegistry
# this function will set and memoize a created_at
# to avoid a #config_blob call.
def force_created_at_from_iso8601(string_value)
- date =
- begin
- DateTime.iso8601(string_value)
- rescue ArgumentError
- nil
- end
+ date = parse_iso8601_string(string_value)
instance_variable_set(ivar(:memoized_created_at), date)
end
def updated_at=(string_value)
return unless string_value
- @updated_at =
- begin
- DateTime.iso8601(string_value)
- rescue ArgumentError
- nil
- end
+ @updated_at = parse_iso8601_string(string_value)
+ end
+
+ def published_at=(string_value)
+ return unless string_value
+
+ @published_at = parse_iso8601_string(string_value)
end
def layers
@@ -151,5 +151,13 @@ module ContainerRegistry
client.delete_repository_tag_by_digest(repository.path, digest)
end
+
+ private
+
+ def parse_iso8601_string(string_value)
+ DateTime.iso8601(string_value)
+ rescue ArgumentError
+ nil
+ end
end
end
diff --git a/lib/feature/definition.rb b/lib/feature/definition.rb
index af60fb95c53..14848f22f83 100644
--- a/lib/feature/definition.rb
+++ b/lib/feature/definition.rb
@@ -49,23 +49,27 @@ module Feature
end
unless type.present?
- raise Feature::InvalidFeatureFlagError, "Feature flag '#{name}' is missing type. Ensure to update #{path}"
+ raise Feature::InvalidFeatureFlagError, "Feature flag '#{name}' is missing `type`. Ensure to update #{path}"
end
unless Definition::TYPES.include?(type.to_sym)
raise Feature::InvalidFeatureFlagError, "Feature flag '#{name}' type '#{type}' is invalid. Ensure to update #{path}"
end
- unless File.basename(path, ".yml") == name
+ if File.basename(path, ".yml") != name || File.basename(File.dirname(path)) != type
raise Feature::InvalidFeatureFlagError, "Feature flag '#{name}' has an invalid path: '#{path}'. Ensure to update #{path}"
end
- unless File.basename(File.dirname(path)) == type
- raise Feature::InvalidFeatureFlagError, "Feature flag '#{name}' has an invalid type: '#{path}'. Ensure to update #{path}"
- end
+ validate_default_enabled!
+ end
+ def validate_default_enabled!
if default_enabled.nil?
- raise Feature::InvalidFeatureFlagError, "Feature flag '#{name}' is missing default_enabled. Ensure to update #{path}"
+ raise Feature::InvalidFeatureFlagError, "Feature flag '#{name}' is missing `default_enabled`. Ensure to update #{path}"
+ end
+
+ if default_enabled && !Definition::TYPES.dig(type.to_sym, :can_be_default_enabled)
+ raise Feature::InvalidFeatureFlagError, "Feature flag '#{name}' cannot have `default_enabled` set to `true`. Ensure to update #{path}"
end
end
diff --git a/lib/feature/shared.rb b/lib/feature/shared.rb
index d801070ff1a..fcce2642ef6 100644
--- a/lib/feature/shared.rb
+++ b/lib/feature/shared.rb
@@ -8,21 +8,39 @@ module Feature
module Shared
# optional: defines if a on-disk definition is required for this feature flag type
# rollout_issue: defines if `bin/feature-flag` asks for rollout issue
- # default_enabled: defines a default state of a feature flag when created by `bin/feature-flag`
- # ee_only: defines that a feature flag can only be created in a context of EE
+ # can_be_default_enabled: whether the flag can have `default_enabled` set to `true` or not
# deprecated: defines if a feature flag type that is deprecated and to be removed,
# the deprecated types are hidden from all interfaces
# example: usage being shown when exception is raised
TYPES = {
- development: {
- description: 'Short lived, used to enable unfinished code to be deployed',
+ gitlab_com_derisk: {
+ description: 'Short lived, used to de-risk GitLab.com deployments',
+ optional: false,
+ rollout_issue: true,
+ can_be_default_enabled: false,
+ example: <<-EOS
+ Feature.enabled?(:my_feature_flag, project, type: :gitlab_com_derisk)
+ push_frontend_feature_flag(:my_feature_flag, project)
+ EOS
+ },
+ wip: {
+ description: 'Used to hide unfinished code from anyone',
+ optional: false,
+ rollout_issue: false,
+ can_be_default_enabled: false,
+ example: <<-EOS
+ Feature.enabled?(:my_feature_flag, project, type: :wip)
+ push_frontend_feature_flag(:my_feature_flag, project)
+ EOS
+ },
+ beta: {
+ description: "Use when we aren't confident about scaling/supporting a feature, " \
+ "or when it isn't complete enough for an MVC",
optional: false,
rollout_issue: true,
- ee_only: false,
- default_enabled: false,
+ can_be_default_enabled: true,
example: <<-EOS
- Feature.enabled?(:my_feature_flag, project)
- Feature.enabled?(:my_feature_flag, project, type: :development)
+ Feature.enabled?(:my_feature_flag, project, type: :beta)
push_frontend_feature_flag(:my_feature_flag, project)
EOS
},
@@ -30,27 +48,17 @@ module Feature
description: "Long-lived feature flags that control operational aspects of GitLab's behavior",
optional: false,
rollout_issue: true,
- ee_only: false,
- default_enabled: false,
+ can_be_default_enabled: true,
example: <<-EOS
Feature.enabled?(:my_ops_flag, type: :ops)
push_frontend_feature_flag(:my_ops_flag, project, type: :ops)
EOS
},
- undefined: {
- description: "Feature flags that are undefined in GitLab codebase (should not be used)",
- optional: true,
- rollout_issue: false,
- ee_only: false,
- default_enabled: false,
- example: ''
- },
experiment: {
description: 'Short lived, used specifically to run A/B/n experiments.',
optional: true,
rollout_issue: true,
- ee_only: false,
- default_enabled: false,
+ can_be_default_enabled: false,
example: <<-EOS
experiment(:my_experiment, project: project, actor: current_user) { ...variant code... }
EOS
@@ -59,12 +67,22 @@ module Feature
description: "Feature flags for controlling Sidekiq workers behavior (e.g. deferring jobs)",
optional: true,
rollout_issue: false,
- ee_only: false,
- default_enabled: false,
+ can_be_default_enabled: false,
example: '<<-EOS
Feature.enabled?(:"defer_sidekiq_jobs:AuthorizedProjectsWorker", type: :worker,
default_enabled_if_undefined: false)
EOS'
+ },
+ undefined: {
+ description: "Feature flags that are undefined in GitLab codebase (should not be used)",
+ optional: true,
+ rollout_issue: false,
+ can_be_default_enabled: false,
+ example: ''
+ },
+ development: {
+ deprecated: true,
+ can_be_default_enabled: true
}
}.freeze
@@ -72,6 +90,7 @@ module Feature
# This is done to ease the file comparison
PARAMS = %i[
name
+ feature_issue_url
introduced_by_url
rollout_issue_url
milestone
diff --git a/lib/gitlab/application_rate_limiter.rb b/lib/gitlab/application_rate_limiter.rb
index 3d2f13af9dc..5a2881e6c96 100644
--- a/lib/gitlab/application_rate_limiter.rb
+++ b/lib/gitlab/application_rate_limiter.rb
@@ -30,7 +30,7 @@ module Gitlab
group_download_export: { threshold: -> { application_settings.group_download_export_limit }, interval: 1.minute },
group_import: { threshold: -> { application_settings.group_import_limit }, interval: 1.minute },
group_testing_hook: { threshold: 5, interval: 1.minute },
- member_delete: { threshold: 60, interval: 1.minute },
+ members_delete: { threshold: -> { application_settings.members_delete_limit }, interval: 1.minute },
profile_add_new_email: { threshold: 5, interval: 1.minute },
web_hook_calls: { interval: 1.minute },
web_hook_calls_mid: { interval: 1.minute },
@@ -52,7 +52,7 @@ module Gitlab
project_testing_integration: { threshold: 5, interval: 1.minute },
email_verification: { threshold: 10, interval: 10.minutes },
email_verification_code_send: { threshold: 10, interval: 1.hour },
- phone_verification_challenge: { threshold: 3, interval: 1.day },
+ phone_verification_challenge: { threshold: 2, interval: 1.day },
phone_verification_send_code: { threshold: 5, interval: 1.day },
phone_verification_verify_code: { threshold: 5, interval: 1.day },
namespace_exists: { threshold: 20, interval: 1.minute },
diff --git a/lib/gitlab/application_setting_fetcher.rb b/lib/gitlab/application_setting_fetcher.rb
new file mode 100644
index 00000000000..cc8f67dc541
--- /dev/null
+++ b/lib/gitlab/application_setting_fetcher.rb
@@ -0,0 +1,80 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module ApplicationSettingFetcher
+ class << self
+ def clear_in_memory_application_settings!
+ @in_memory_application_settings = nil
+ end
+
+ def current_application_settings
+ cached_application_settings || uncached_application_settings
+ end
+
+ def current_application_settings?
+ ::ApplicationSetting.current.present?
+ end
+
+ def expire_current_application_settings
+ ::ApplicationSetting.expire
+ end
+
+ private
+
+ def cached_application_settings
+ return in_memory_application_settings if ENV['IN_MEMORY_APPLICATION_SETTINGS'] == 'true'
+
+ begin
+ ::ApplicationSetting.cached
+ rescue StandardError
+ # In case Redis isn't running
+ # or the Redis UNIX socket file is not available
+ # or the DB is not running (we use migrations in the cache key)
+ end
+ end
+
+ def uncached_application_settings
+ return fake_application_settings if Gitlab::Runtime.rake? && !connect_to_db?
+
+ current_settings = ::ApplicationSetting.current
+
+ # If there are pending migrations, it's possible there are columns that
+ # need to be added to the application settings. To prevent Rake tasks
+ # and other callers from failing, use any loaded settings and return
+ # defaults for missing columns.
+ if Gitlab::Runtime.rake? && ::ApplicationSetting.connection.migration_context.needs_migration?
+ db_attributes = current_settings&.attributes || {}
+ fake_application_settings(db_attributes)
+ elsif current_settings.present?
+ current_settings
+ else
+ ::ApplicationSetting.create_from_defaults
+ end
+ rescue ::ApplicationSetting::Recursion
+ in_memory_application_settings
+ end
+
+ def in_memory_application_settings
+ @in_memory_application_settings ||= ::ApplicationSetting.build_from_defaults
+ end
+
+ def fake_application_settings(attributes = {})
+ Gitlab::FakeApplicationSettings.new(::ApplicationSetting.defaults.merge(attributes || {}))
+ end
+
+ def connect_to_db?
+ # When the DBMS is not available, an exception (e.g. PG::ConnectionBad) is raised
+ active_db_connection = begin
+ ::ApplicationSetting.connection.active?
+ rescue StandardError
+ false
+ end
+
+ active_db_connection &&
+ ApplicationSetting.database.cached_table_exists?
+ rescue ActiveRecord::NoDatabaseError
+ false
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/auth.rb b/lib/gitlab/auth.rb
index 8e894be4fc4..bdd1aed4017 100644
--- a/lib/gitlab/auth.rb
+++ b/lib/gitlab/auth.rb
@@ -43,10 +43,13 @@ module Gitlab
WRITE_OBSERVABILITY_SCOPE = :write_observability
OBSERVABILITY_SCOPES = [READ_OBSERVABILITY_SCOPE, WRITE_OBSERVABILITY_SCOPE].freeze
+ # Scopes for Monitor access
+ READ_SERVICE_PING_SCOPE = :read_service_ping
+
# Scopes used for GitLab as admin
SUDO_SCOPE = :sudo
ADMIN_MODE_SCOPE = :admin_mode
- ADMIN_SCOPES = [SUDO_SCOPE, ADMIN_MODE_SCOPE].freeze
+ ADMIN_SCOPES = [SUDO_SCOPE, ADMIN_MODE_SCOPE, READ_SERVICE_PING_SCOPE].freeze
# Default scopes for OAuth applications that don't define their own
DEFAULT_SCOPES = [API_SCOPE].freeze
diff --git a/lib/gitlab/auth/two_factor_auth_verifier.rb b/lib/gitlab/auth/two_factor_auth_verifier.rb
index 4b66aaf0e6a..971f8bb25ce 100644
--- a/lib/gitlab/auth/two_factor_auth_verifier.rb
+++ b/lib/gitlab/auth/two_factor_auth_verifier.rb
@@ -14,13 +14,28 @@ module Gitlab
two_factor_authentication_required? && two_factor_grace_period_expired?
end
+ # rubocop:disable Cop/UserAdmin -- Admin mode does not matter in the context of verifying for two factor statuses
def two_factor_authentication_required?
return false if allow_2fa_bypass_for_provider
Gitlab::CurrentSettings.require_two_factor_authentication? ||
- current_user&.require_two_factor_authentication_from_group?
+ current_user&.require_two_factor_authentication_from_group? ||
+ (Gitlab::CurrentSettings.require_admin_two_factor_authentication && current_user&.admin?) # rubocop:disable Cop/UserAdmin -- It should be applied to any administrator user regardless of admin mode
end
+ def two_factor_authentication_reason
+ if Gitlab::CurrentSettings.require_two_factor_authentication?
+ :global
+ elsif Gitlab::CurrentSettings.require_admin_two_factor_authentication && current_user&.admin?
+ :admin_2fa
+ elsif current_user&.require_two_factor_authentication_from_group?
+ :group
+ else
+ false
+ end
+ end
+ # rubocop:enable Cop/UserAdmin
+
def current_user_needs_to_setup_two_factor?
current_user && !current_user.temp_oauth_email? && !current_user.two_factor_enabled?
end
diff --git a/lib/gitlab/background_migration/backfill_issue_search_data_namespace_id.rb b/lib/gitlab/background_migration/backfill_issue_search_data_namespace_id.rb
new file mode 100644
index 00000000000..56d69a549dc
--- /dev/null
+++ b/lib/gitlab/background_migration/backfill_issue_search_data_namespace_id.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ # Updates issue_search_data.namespace_id with the associated issue's namespace_id
+ class BackfillIssueSearchDataNamespaceId < BatchedMigrationJob # rubocop:disable Search/NamespacedClass -- This is a migration class
+ feature_category :team_planning
+ operation_name :backfill_issue_search_data_namespace_id
+
+ # migrations only version of `issue_search_data` table
+ class IssueSearchData < ::ApplicationRecord # rubocop:disable Search/NamespacedClass -- Inline class for migration
+ self.table_name = 'issue_search_data'
+ end
+
+ def perform
+ each_sub_batch do |sub_batch|
+ issues_by_project = sub_batch
+ .where.not(project_id: nil)
+ .pluck(:project_id, :namespace_id, :id)
+ .group_by(&:first)
+
+ issues_by_project.each do |project_id, issues|
+ namespace_id = issues.first[1]
+ issue_ids = issues.pluck(2)
+
+ IssueSearchData
+ .where(issue_id: issue_ids, project_id: project_id)
+ .update_all(namespace_id: namespace_id)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/backfill_owasp_top_ten_of_vulnerability_reads.rb b/lib/gitlab/background_migration/backfill_owasp_top_ten_of_vulnerability_reads.rb
new file mode 100644
index 00000000000..5d8867a130a
--- /dev/null
+++ b/lib/gitlab/background_migration/backfill_owasp_top_ten_of_vulnerability_reads.rb
@@ -0,0 +1,86 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ # Backfills owasp_top_10 column for vulnerability_reads table.
+ class BackfillOwaspTopTenOfVulnerabilityReads < BatchedMigrationJob
+ operation_name :set_owasp_top_10
+ feature_category :vulnerability_management
+
+ OWASP_TOP_10 = {
+ "A1:2017-Injection" => 1,
+ "A1:2017" => 1,
+ "A2:2017-Broken Authentication" => 2,
+ "A2:2017" => 2,
+ "A3:2017-Sensitive Data Exposure" => 3,
+ "A3:2017" => 3,
+ "A4:2017-XML External Entities (XXE)" => 4,
+ "A4:2017" => 4,
+ "A5:2017-Broken Access Control" => 5,
+ "A5:2017" => 5,
+ "A6:2017-Security Misconfiguration" => 6,
+ "A6:2017" => 6,
+ "A7:2017-Cross-Site Scripting (XSS)" => 7,
+ "A7:2017" => 7,
+ "A8:2017-Insecure Deserialization" => 8,
+ "A8:2017" => 8,
+ "A9:2017-Using Components with Known Vulnerabilities" => 9,
+ "A9:2017" => 9,
+ "A10:2017-Insufficient Logging & Monitoring" => 10,
+ "A10:2017" => 10,
+
+ "A1:2021-Broken Access Control" => 11,
+ "A1:2021" => 11,
+ "A2:2021-Cryptographic Failures" => 12,
+ "A2:2021" => 12,
+ "A3:2021-Injection" => 13,
+ "A3:2021" => 13,
+ "A4:2021-Insecure Design" => 14,
+ "A4:2021" => 14,
+ "A5:2021-Security Misconfiguration" => 15,
+ "A5:2021" => 15,
+ "A6:2021-Vulnerable and Outdated Components" => 16,
+ "A6:2021" => 16,
+ "A7:2021-Identification and Authentication Failures" => 17,
+ "A7:2021" => 17,
+ "A8:2021-Software and Data Integrity Failures" => 18,
+ "A8:2021" => 18,
+ "A9:2021-Security Logging and Monitoring Failures" => 19,
+ "A9:2021" => 19,
+ "A10:2021-Server-Side Request Forgery" => 20,
+ "A10:2021" => 20
+ }.with_indifferent_access.freeze
+
+ UPDATE_SQL = <<-SQL.squish
+ UPDATE vulnerability_reads AS vr
+ SET owasp_top_10 =
+ CASE selected_ids.external_id
+ #{OWASP_TOP_10.map { |external_id, value| "WHEN '#{external_id}' THEN #{value}" }.join(' ')}
+ ELSE vr.owasp_top_10
+ END
+ FROM (
+ SELECT vr.id, vi.external_id
+ FROM vulnerability_reads vr
+ INNER JOIN vulnerability_occurrences vo ON vr.vulnerability_id = vo.vulnerability_id
+ INNER JOIN vulnerability_occurrence_identifiers voi ON vo.id = voi.occurrence_id
+ INNER JOIN vulnerability_identifiers vi ON voi.identifier_id = vi.id
+ WHERE LOWER(vi.external_type) = 'owasp'
+ AND vi.external_id IN (?)
+ AND vr.id IN (?)
+ ) AS selected_ids
+ WHERE vr.id = selected_ids.id
+ SQL
+
+ class VulnerabilitiesRead < ::ApplicationRecord
+ self.table_name = 'vulnerability_reads'
+ end
+
+ def perform
+ each_sub_batch do |sub_batch|
+ update_query = VulnerabilitiesRead.sanitize_sql([UPDATE_SQL, OWASP_TOP_10.keys, sub_batch.select(:id)])
+ connection.execute(update_query)
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_artifact.rb b/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_artifact.rb
new file mode 100644
index 00000000000..73996ce4460
--- /dev/null
+++ b/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_artifact.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ class BackfillPartitionIdCiPipelineArtifact < BatchedMigrationJob
+ operation_name :update_all
+ feature_category :continuous_integration
+
+ def perform
+ return unless uses_multiple_partitions?
+
+ each_sub_batch do |sub_batch|
+ sub_batch
+ .where('ci_pipeline_artifacts.pipeline_id = ci_pipelines.id')
+ .update_all('partition_id = ci_pipelines.partition_id FROM ci_pipelines')
+ end
+ end
+
+ private
+
+ def uses_multiple_partitions?
+ !!connection.select_value(<<~SQL)
+ SELECT true FROM p_ci_builds WHERE partition_id = 101 LIMIT 1
+ SQL
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_chat_data.rb b/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_chat_data.rb
new file mode 100644
index 00000000000..e367872245b
--- /dev/null
+++ b/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_chat_data.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ class BackfillPartitionIdCiPipelineChatData < BatchedMigrationJob
+ operation_name :update
+ feature_category :continuous_integration
+
+ def perform
+ return unless uses_multiple_partitions?
+
+ each_sub_batch do |sub_batch|
+ sub_batch
+ .where('ci_pipeline_chat_data.pipeline_id = ci_pipelines.id')
+ .update_all('partition_id = ci_pipelines.partition_id FROM ci_pipelines')
+ end
+ end
+
+ private
+
+ def uses_multiple_partitions?
+ !!connection.select_value(<<~SQL)
+ SELECT true FROM p_ci_builds WHERE partition_id = 101 LIMIT 1
+ SQL
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_config.rb b/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_config.rb
new file mode 100644
index 00000000000..de20eae8cf0
--- /dev/null
+++ b/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_config.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ class BackfillPartitionIdCiPipelineConfig < BatchedMigrationJob
+ operation_name :update_all
+ feature_category :continuous_integration
+ scope_to ->(relation) { relation.where('ci_pipelines_config.pipeline_id >= ?', first_pipeline_id) }
+
+ def perform
+ each_sub_batch do |sub_batch|
+ sub_batch
+ .where('ci_pipelines_config.pipeline_id = ci_pipelines.id')
+ .update_all('partition_id = ci_pipelines.partition_id FROM ci_pipelines')
+ end
+ end
+
+ private
+
+ def first_pipeline_id
+ first_pipeline_with_partition_101 || max_pipeline_id
+ end
+
+ def first_pipeline_with_partition_101
+ connection.select_value(<<~SQL)
+ SELECT MIN(commit_id) FROM p_ci_builds WHERE partition_id = 101;
+ SQL
+ end
+
+ def max_pipeline_id
+ connection.select_value(<<~SQL)
+ SELECT MAX(pipeline_id) FROM ci_pipelines_config;
+ SQL
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_metadata.rb b/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_metadata.rb
new file mode 100644
index 00000000000..6fa4037f1ac
--- /dev/null
+++ b/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_metadata.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ class BackfillPartitionIdCiPipelineMetadata < BatchedMigrationJob
+ operation_name :update_all
+ feature_category :continuous_integration
+
+ def perform
+ return unless uses_multiple_partitions?
+
+ each_sub_batch do |sub_batch|
+ sub_batch
+ .where('ci_pipeline_metadata.pipeline_id = ci_pipelines.id')
+ .update_all('partition_id = ci_pipelines.partition_id FROM ci_pipelines')
+ end
+ end
+
+ private
+
+ def uses_multiple_partitions?
+ !!connection.select_value(<<~SQL)
+ SELECT true FROM p_ci_builds WHERE partition_id = 101 LIMIT 1
+ SQL
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/backfill_vs_code_settings_version.rb b/lib/gitlab/background_migration/backfill_vs_code_settings_version.rb
new file mode 100644
index 00000000000..83dbf5f3852
--- /dev/null
+++ b/lib/gitlab/background_migration/backfill_vs_code_settings_version.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ class BackfillVsCodeSettingsVersion < BatchedMigrationJob
+ feature_category :web_ide
+ operation_name :backfill_vs_code_settings_version
+ scope_to ->(relation) { relation.where(version: [nil, 0]) }
+
+ class VsCodeSetting < ApplicationRecord
+ DEFAULT_SETTING_VERSIONS = {
+ 'settings' => 2,
+ 'extensions' => 6,
+ 'globalState' => 1,
+ 'keybindings' => 2,
+ 'snippets' => 1,
+ 'machines' => 1,
+ 'tasks' => 1,
+ 'profiles' => 2
+ }.freeze
+
+ self.table_name = 'vs_code_settings'
+ end
+
+ def perform
+ each_sub_batch do |sub_batch|
+ vs_code_settings = sub_batch.map do |vs_code_setting|
+ version = VsCodeSetting::DEFAULT_SETTING_VERSIONS[vs_code_setting.setting_type]
+
+ vs_code_setting.attributes.merge(version: version)
+ end
+
+ VsCodeSetting.upsert_all(vs_code_settings)
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/drop_vulnerabilities_without_finding_id.rb b/lib/gitlab/background_migration/drop_vulnerabilities_without_finding_id.rb
new file mode 100644
index 00000000000..783bf0e2bda
--- /dev/null
+++ b/lib/gitlab/background_migration/drop_vulnerabilities_without_finding_id.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ class DropVulnerabilitiesWithoutFindingId < BatchedMigrationJob
+ operation_name :drop_vulnerabilities_without_finding_id
+ scope_to ->(relation) { relation.where(finding_id: nil) }
+ feature_category :vulnerability_management
+
+ def perform
+ each_sub_batch(&:delete_all)
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/update_workspaces_config_version3.rb b/lib/gitlab/background_migration/update_workspaces_config_version3.rb
new file mode 100644
index 00000000000..8626f7f608d
--- /dev/null
+++ b/lib/gitlab/background_migration/update_workspaces_config_version3.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ # No op on ce
+ class UpdateWorkspacesConfigVersion3 < BatchedMigrationJob
+ feature_category :remote_development
+ def perform; end
+ end
+ end
+end
+
+Gitlab::BackgroundMigration::UpdateWorkspacesConfigVersion3.prepend_mod_with('Gitlab::BackgroundMigration::UpdateWorkspacesConfigVersion3') # rubocop:disable Layout/LineLength -- Injecting extension modules must be done on the last line of this file, outside of any class or module definitions
diff --git a/lib/gitlab/base_doorkeeper_controller.rb b/lib/gitlab/base_doorkeeper_controller.rb
index 91994c2fa95..54cc63ab1a6 100644
--- a/lib/gitlab/base_doorkeeper_controller.rb
+++ b/lib/gitlab/base_doorkeeper_controller.rb
@@ -8,8 +8,6 @@ module Gitlab
include EnforcesTwoFactorAuthentication
include SessionsHelper
- before_action :limit_session_time, if: -> { !current_user }
-
helper_method :can?
end
end
diff --git a/lib/gitlab/bitbucket_server_import/importers/pull_request_importer.rb b/lib/gitlab/bitbucket_server_import/importers/pull_request_importer.rb
index 0d4de385f5e..99f4adbe317 100644
--- a/lib/gitlab/bitbucket_server_import/importers/pull_request_importer.rb
+++ b/lib/gitlab/bitbucket_server_import/importers/pull_request_importer.rb
@@ -10,6 +10,7 @@ module Gitlab
@project = project
@formatter = Gitlab::ImportFormatter.new
@user_finder = UserFinder.new(project)
+ @mentions_converter = Gitlab::BitbucketServerImport::MentionsConverter.new(project.id)
# Object should behave as a object so we can remove object.is_a?(Hash) check
# This will be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/412328
@@ -19,10 +20,6 @@ module Gitlab
def execute
log_info(import_stage: 'import_pull_request', message: 'starting', iid: object[:iid])
- description = ''
- description += author_line
- description += object[:description] if object[:description]
-
attributes = {
iid: object[:iid],
title: object[:title],
@@ -49,7 +46,19 @@ module Gitlab
private
- attr_reader :object, :project, :formatter, :user_finder
+ attr_reader :object, :project, :formatter, :user_finder, :mentions_converter
+
+ def description
+ description = ''
+ description += author_line
+ description += object[:description] if object[:description]
+
+ if Feature.enabled?(:bitbucket_server_convert_mentions_to_users, project.creator)
+ description = mentions_converter.convert(description)
+ end
+
+ description
+ end
def author_line
return '' if user_finder.uid(object)
diff --git a/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer.rb b/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer.rb
index d58f7cec8ff..19e5cdcbdc2 100644
--- a/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer.rb
+++ b/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer.rb
@@ -11,6 +11,7 @@ module Gitlab
@project = project
@user_finder = UserFinder.new(project)
@formatter = Gitlab::ImportFormatter.new
+ @mentions_converter = Gitlab::BitbucketServerImport::MentionsConverter.new(project.id)
@object = hash.with_indifferent_access
end
@@ -43,7 +44,7 @@ module Gitlab
private
- attr_reader :object, :project, :formatter, :user_finder
+ attr_reader :object, :project, :formatter, :user_finder, :mentions_converter
def import_data_valid?
project.import_data&.credentials && project.import_data&.data
@@ -192,12 +193,18 @@ module Gitlab
note = "*By #{comment.author_username} (#{comment.author_email})*\n\n"
end
+ comment_note = if Feature.enabled?(:bitbucket_server_convert_mentions_to_users, project.creator)
+ mentions_converter.convert(comment.note)
+ else
+ comment.note
+ end
+
note +=
# Provide some context for replying
if comment.parent_comment
- "> #{comment.parent_comment.note.truncate(80)}\n\n#{comment.note}"
+ "> #{comment.parent_comment.note.truncate(80)}\n\n#{comment_note}"
else
- comment.note
+ comment_note
end
{
diff --git a/lib/gitlab/bitbucket_server_import/importers/users_importer.rb b/lib/gitlab/bitbucket_server_import/importers/users_importer.rb
index f8d0521afb2..156d89c2732 100644
--- a/lib/gitlab/bitbucket_server_import/importers/users_importer.rb
+++ b/lib/gitlab/bitbucket_server_import/importers/users_importer.rb
@@ -5,7 +5,7 @@ module Gitlab
module Importers
class UsersImporter
include Loggable
- include UserCaching
+ include UserFromMention
BATCH_SIZE = 100
@@ -19,23 +19,26 @@ module Gitlab
def execute
log_info(import_stage: 'import_users', message: 'starting')
- page = 1
+ current = page_counter.current
loop do
log_info(
import_stage: 'import_users',
- message: "importing page #{page} using batch size #{BATCH_SIZE}"
+ message: "importing page #{current} using batch size #{BATCH_SIZE}"
)
- users = client.users(project_key, page_offset: page, limit: BATCH_SIZE).to_a
+ users = client.users(project_key, page_offset: current, limit: BATCH_SIZE).to_a
break if users.empty?
cache_users(users)
- page += 1
+ current += 1
+ page_counter.set(current)
end
+ page_counter.expire!
+
log_info(import_stage: 'import_users', message: 'finished')
end
@@ -47,7 +50,7 @@ module Gitlab
hash[cache_key] = user.email
end
- ::Gitlab::Cache::Import::Caching.write_multiple(users_hash)
+ cache_multiple(users_hash)
end
def client
@@ -57,6 +60,10 @@ module Gitlab
def project_key
project.import_data.data['project_key']
end
+
+ def page_counter
+ @page_counter ||= Gitlab::Import::PageCounter.new(project, :users, 'bitbucket-server-importer')
+ end
end
end
end
diff --git a/lib/gitlab/bitbucket_server_import/mentions_converter.rb b/lib/gitlab/bitbucket_server_import/mentions_converter.rb
new file mode 100644
index 00000000000..8b1eeb6e007
--- /dev/null
+++ b/lib/gitlab/bitbucket_server_import/mentions_converter.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BitbucketServerImport
+ class MentionsConverter
+ include UserFromMention
+
+ MENTIONS_REGEX = User.reference_pattern
+ MENTION_PLACEHOLDER = '~GITLAB_MENTION_PLACEHOLDER~'
+
+ attr_reader :project_id
+
+ def initialize(project_id)
+ @project_id = project_id
+ end
+
+ def convert(text)
+ replace_mentions(text.dup)
+ end
+
+ private
+
+ def replace_mentions(text)
+ mentions = text.scan(MENTIONS_REGEX).flatten
+ altered_mentions = []
+
+ mentions.each do |mention|
+ user = user_from_cache(mention)
+
+ if user
+ altered_mentions << ["@#{mention}", "#{MENTION_PLACEHOLDER}#{user.username}"]
+ next
+ end
+
+ altered_mentions << ["@#{mention}", "`#{MENTION_PLACEHOLDER}#{mention}`"]
+ end
+
+ altered_mentions.each do |original_mention, altered_mention|
+ text.sub!(original_mention, altered_mention)
+ end
+
+ text.gsub(MENTION_PLACEHOLDER, '@')
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/bitbucket_server_import/user_caching.rb b/lib/gitlab/bitbucket_server_import/user_caching.rb
deleted file mode 100644
index 0f0169122c5..00000000000
--- a/lib/gitlab/bitbucket_server_import/user_caching.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# frozen_string_literal: true
-
-module Gitlab
- module BitbucketServerImport
- module UserCaching
- SOURCE_USER_CACHE_KEY = 'bitbucket_server/project/%s/source/username/%s'
-
- def source_user_cache_key(project_id, username)
- format(SOURCE_USER_CACHE_KEY, project_id, username)
- end
- end
- end
-end
diff --git a/lib/gitlab/bitbucket_server_import/user_from_mention.rb b/lib/gitlab/bitbucket_server_import/user_from_mention.rb
new file mode 100644
index 00000000000..907db245760
--- /dev/null
+++ b/lib/gitlab/bitbucket_server_import/user_from_mention.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BitbucketServerImport
+ module UserFromMention
+ SOURCE_USER_CACHE_KEY = 'bitbucket_server/project/%s/source/username/%s'
+
+ def user_from_cache(mention)
+ cached_email = read(mention)
+
+ return unless cached_email
+
+ find_user(cached_email)
+ end
+
+ def cache_multiple(hash)
+ ::Gitlab::Cache::Import::Caching.write_multiple(hash, timeout: timeout)
+ end
+
+ def source_user_cache_key(project_id, username)
+ format(SOURCE_USER_CACHE_KEY, project_id, username)
+ end
+
+ private
+
+ def read(mention)
+ ::Gitlab::Cache::Import::Caching.read(source_user_cache_key(project_id, mention))
+ end
+
+ def find_user(email)
+ User.find_by_any_email(email, confirmed: true)
+ end
+
+ def timeout
+ ::Gitlab::Cache::Import::Caching::LONGER_TIMEOUT
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/cache/import/caching.rb b/lib/gitlab/cache/import/caching.rb
index e81a90831f7..f3251d47e7a 100644
--- a/lib/gitlab/cache/import/caching.rb
+++ b/lib/gitlab/cache/import/caching.rb
@@ -239,6 +239,48 @@ module Gitlab
end
end
+ # Adds a value to a list.
+ #
+ # raw_key - The key of the list to add to.
+ # value - The field value to add to the list.
+ # timeout - The new timeout of the key.
+ # limit - The maximum number of members in the set. Older members will be trimmed to this limit.
+ def self.list_add(raw_key, value, timeout: TIMEOUT, limit: nil)
+ validate_redis_value!(value)
+
+ key = cache_key_for(raw_key)
+
+ with_redis do |redis|
+ redis.multi do |m|
+ m.rpush(key, value)
+ m.ltrim(key, -limit, -1) if limit
+ m.expire(key, timeout)
+ end
+ end
+ end
+
+ # Returns the values of the given list.
+ #
+ # raw_key - The key of the list.
+ def self.values_from_list(raw_key)
+ key = cache_key_for(raw_key)
+
+ with_redis do |redis|
+ redis.lrange(key, 0, -1)
+ end
+ end
+
+ # Deletes a key
+ #
+ # raw_key - Key name
+ def self.del(raw_key)
+ key = cache_key_for(raw_key)
+
+ with_redis do |redis|
+ redis.del(key)
+ end
+ end
+
def self.cache_key_for(raw_key)
"#{Redis::Cache::CACHE_NAMESPACE}:#{raw_key}"
end
diff --git a/lib/gitlab/ci/build/rules.rb b/lib/gitlab/ci/build/rules.rb
index 8b503290e6e..999f41ff46f 100644
--- a/lib/gitlab/ci/build/rules.rb
+++ b/lib/gitlab/ci/build/rules.rb
@@ -6,7 +6,9 @@ module Gitlab
class Rules
include ::Gitlab::Utils::StrongMemoize
- Result = Struct.new(:when, :start_in, :allow_failure, :variables, :needs, :errors, keyword_init: true) do
+ Result = Struct.new(
+ :when, :start_in, :allow_failure, :variables, :needs, :errors, :auto_cancel, keyword_init: true
+ ) do
def build_attributes
needs_job = needs&.dig(:job)
{
@@ -37,7 +39,8 @@ module Gitlab
start_in: matched_rule.attributes[:start_in],
allow_failure: matched_rule.attributes[:allow_failure],
variables: matched_rule.attributes[:variables],
- needs: matched_rule.attributes[:needs]
+ needs: matched_rule.attributes[:needs],
+ auto_cancel: matched_rule.attributes[:auto_cancel]
)
else
Result.new(when: 'never')
diff --git a/lib/gitlab/ci/config/entry/processable.rb b/lib/gitlab/ci/config/entry/processable.rb
index 0b322fd433c..d19140851f5 100644
--- a/lib/gitlab/ci/config/entry/processable.rb
+++ b/lib/gitlab/ci/config/entry/processable.rb
@@ -58,7 +58,8 @@ module Gitlab
description: 'List of evaluable Rules to determine job inclusion.',
inherit: false,
metadata: {
- allowed_when: %w[on_success on_failure always never manual delayed].freeze
+ allowed_when: %w[on_success on_failure always never manual delayed].freeze,
+ allowed_keys: %i[if changes exists when start_in allow_failure variables needs].freeze
}
entry :variables, ::Gitlab::Ci::Config::Entry::Variables,
diff --git a/lib/gitlab/ci/config/entry/rules/rule.rb b/lib/gitlab/ci/config/entry/rules/rule.rb
index 1e7f6056a65..81e67592c29 100644
--- a/lib/gitlab/ci/config/entry/rules/rule.rb
+++ b/lib/gitlab/ci/config/entry/rules/rule.rb
@@ -4,14 +4,16 @@ module Gitlab
module Ci
class Config
module Entry
+ # A rule is a condition that is evaluated before a job is executed.
+ # Until we find a better solution in https://gitlab.com/gitlab-org/gitlab/-/issues/436473,
+ # these two metadata parameters need to be passed to `Entry::Rules`:
+ # - `allowed_when`: a list of allowed values for the `when` keyword.
+ # - `allowed_keys`: a list of allowed keys for each rule.
class Rules::Rule < ::Gitlab::Config::Entry::Node
include ::Gitlab::Config::Entry::Validatable
include ::Gitlab::Config::Entry::Configurable
include ::Gitlab::Config::Entry::Attributable
- ALLOWED_KEYS = %i[if changes exists when start_in allow_failure variables needs].freeze
- ALLOWED_WHEN = %w[on_success on_failure always never manual delayed].freeze
-
attributes :if, :exists, :when, :start_in, :allow_failure
entry :changes, Entry::Rules::Rule::Changes,
@@ -25,10 +27,12 @@ module Gitlab
metadata: { allowed_needs: %i[job] },
inherit: false
+ entry :auto_cancel, Entry::AutoCancel,
+ description: 'Auto-cancel configuration for the pipeline.'
+
validations do
validates :config, presence: true
validates :config, type: { with: Hash }
- validates :config, allowed_keys: ALLOWED_KEYS
validates :config, disallowed_keys: %i[start_in], unless: :specifies_delay?
validates :start_in, presence: true, if: :specifies_delay?
validates :start_in, duration: { limit: '1 week' }, if: :specifies_delay?
@@ -36,15 +40,22 @@ module Gitlab
with_options allow_nil: true do
validates :if, expression: true
validates :exists, array_of_strings: true, length: { maximum: 50 }
- validates :when, allowed_values: { in: ALLOWED_WHEN }
validates :allow_failure, boolean: true
end
validate do
+ # This validation replaces the old `validates :when, allowed_values: { in: ALLOWED_WHEN }` validation.
+ # In https://gitlab.com/gitlab-org/gitlab/-/issues/436473, we'll remove this custom validation.
validates_with Gitlab::Config::Entry::Validators::AllowedValuesValidator,
attributes: %i[when],
allow_nil: true,
in: opt(:allowed_when)
+
+ # This validation replaces the old `validates :config, allowed_keys: ALLOWED_KEYS` validation.
+ # In https://gitlab.com/gitlab-org/gitlab/-/issues/436473, we'll remove this custom validation.
+ validates_with Gitlab::Config::Entry::Validators::AllowedKeysValidator,
+ attributes: %i[config],
+ in: opt(:allowed_keys)
end
end
@@ -52,7 +63,8 @@ module Gitlab
config.merge(
changes: (changes_value if changes_defined?),
variables: (variables_value if variables_defined?),
- needs: (needs_value if needs_defined?)
+ needs: (needs_value if needs_defined?),
+ auto_cancel: (auto_cancel_value if auto_cancel_defined?)
).compact
end
diff --git a/lib/gitlab/ci/config/entry/schemas/imageable/executor_opts.json b/lib/gitlab/ci/config/entry/schemas/imageable/executor_opts.json
index a31374650e6..1098da0111a 100644
--- a/lib/gitlab/ci/config/entry/schemas/imageable/executor_opts.json
+++ b/lib/gitlab/ci/config/entry/schemas/imageable/executor_opts.json
@@ -10,6 +10,11 @@
"type": "string",
"minLength": 1,
"maxLength": 64
+ },
+ "user": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 255
}
},
"additionalProperties": false
diff --git a/lib/gitlab/ci/config/entry/workflow.rb b/lib/gitlab/ci/config/entry/workflow.rb
index 5b81c74fe4d..b201989a9f7 100644
--- a/lib/gitlab/ci/config/entry/workflow.rb
+++ b/lib/gitlab/ci/config/entry/workflow.rb
@@ -19,9 +19,14 @@ module Gitlab
validates :name, allow_nil: true, length: { minimum: 1, maximum: 255 }
end
+ # `start_in`, `allow_failure`, and `needs` should not be allowed but we can't break this behavior now.
+ # More information: https://gitlab.com/gitlab-org/gitlab/-/issues/436473
entry :rules, Entry::Rules,
description: 'List of evaluable Rules to determine Pipeline status.',
- metadata: { allowed_when: %w[always never] }
+ metadata: {
+ allowed_when: %w[always never].freeze,
+ allowed_keys: %i[if changes exists when start_in allow_failure variables needs auto_cancel].freeze
+ }
entry :auto_cancel, Entry::AutoCancel,
description: 'Auto-cancel configuration for this pipeline.'
diff --git a/lib/gitlab/ci/config/external/context.rb b/lib/gitlab/ci/config/external/context.rb
index 0a524fdba66..cbbea3c7c12 100644
--- a/lib/gitlab/ci/config/external/context.rb
+++ b/lib/gitlab/ci/config/external/context.rb
@@ -11,13 +11,16 @@ module Gitlab
include ::Gitlab::Utils::StrongMemoize
- attr_reader :project, :sha, :user, :parent_pipeline, :variables, :pipeline_config
- attr_reader :pipeline, :expandset, :execution_deadline, :logger, :max_includes, :max_total_yaml_size_bytes
+ attr_reader :project, :sha, :user, :parent_pipeline, :variables, :pipeline_config, :parallel_requests,
+ :pipeline, :expandset, :execution_deadline, :logger, :max_includes, :max_total_yaml_size_bytes
attr_accessor :total_file_size_in_bytes
delegate :instrument, to: :logger
+ # We try to keep the number of parallel HTTP requests to a minimum to avoid overloading IO.
+ MAX_PARALLEL_REMOTE_REQUESTS = 2
+
def initialize(
project: nil, pipeline: nil, sha: nil, user: nil, parent_pipeline: nil, variables: nil,
pipeline_config: nil, logger: nil
@@ -30,6 +33,7 @@ module Gitlab
@variables = variables || Ci::Variables::Collection.new
@pipeline_config = pipeline_config
@expandset = []
+ @parallel_requests = []
@execution_deadline = 0
@logger = logger || Gitlab::Ci::Pipeline::Logger.new(project: project)
@max_includes = Gitlab::CurrentSettings.current_application_settings.ci_max_includes
@@ -65,6 +69,7 @@ module Gitlab
ctx.logger = logger
ctx.max_includes = max_includes
ctx.max_total_yaml_size_bytes = max_total_yaml_size_bytes
+ ctx.parallel_requests = parallel_requests
end
end
@@ -76,6 +81,16 @@ module Gitlab
raise TimeoutError if execution_expired?
end
+ def execute_remote_parallel_request(lazy_response)
+ parallel_requests.delete_if(&:complete?)
+
+ # We are "assuming" that the first request in the queue is the first one to complete.
+ # This is good enough approximation.
+ parallel_requests.first&.wait unless parallel_requests.size < MAX_PARALLEL_REMOTE_REQUESTS
+
+ parallel_requests << lazy_response.execute
+ end
+
def sentry_payload
{
user: user.inspect,
@@ -106,7 +121,8 @@ module Gitlab
protected
- attr_writer :pipeline, :expandset, :execution_deadline, :logger, :max_includes, :max_total_yaml_size_bytes
+ attr_writer :pipeline, :expandset, :execution_deadline, :logger, :max_includes, :max_total_yaml_size_bytes,
+ :parallel_requests
private
diff --git a/lib/gitlab/ci/config/external/file/component.rb b/lib/gitlab/ci/config/external/file/component.rb
index 03063e76dde..ab44b424d8d 100644
--- a/lib/gitlab/ci/config/external/file/component.rb
+++ b/lib/gitlab/ci/config/external/file/component.rb
@@ -18,7 +18,12 @@ module Gitlab
def content
return unless component_result.success?
- ::Gitlab::UsageDataCounters::HLLRedisCounter.track_event('cicd_component_usage', values: context.user.id)
+ if context.user.present?
+ ::Gitlab::UsageDataCounters::HLLRedisCounter.track_event(
+ 'cicd_component_usage',
+ values: context.user.id
+ )
+ end
component_payload.fetch(:content)
end
diff --git a/lib/gitlab/ci/config/external/file/remote.rb b/lib/gitlab/ci/config/external/file/remote.rb
index fc90b497f85..266901811f6 100644
--- a/lib/gitlab/ci/config/external/file/remote.rb
+++ b/lib/gitlab/ci/config/external/file/remote.rb
@@ -54,10 +54,12 @@ module Gitlab
private
def fetch_async_content
- return if ::Feature.disabled?(:ci_parallel_remote_includes, context.project)
+ return unless YamlProcessor::FeatureFlags.enabled?(:ci_parallel_remote_includes)
- # It starts fetching the remote content in a separate thread and returns a promise immediately.
- Gitlab::HTTP.get(location, async: true).execute
+ # It starts fetching the remote content in a separate thread and returns a lazy_response immediately.
+ Gitlab::HTTP.get(location, async: true).tap do |lazy_response|
+ context.execute_remote_parallel_request(lazy_response)
+ end
end
strong_memoize_attr :fetch_async_content
diff --git a/lib/gitlab/ci/parsers/sbom/cyclonedx.rb b/lib/gitlab/ci/parsers/sbom/cyclonedx.rb
index 79c1c14dc4e..62cd322e141 100644
--- a/lib/gitlab/ci/parsers/sbom/cyclonedx.rb
+++ b/lib/gitlab/ci/parsers/sbom/cyclonedx.rb
@@ -58,6 +58,7 @@ module Gitlab
def parse_components
data['components']&.each_with_index do |component_data, index|
+ properties = component_data['properties']
component = ::Gitlab::Ci::Reports::Sbom::Component.new(
type: component_data['type'],
name: component_data['name'],
@@ -65,6 +66,7 @@ module Gitlab
version: component_data['version']
)
+ component.properties = CyclonedxProperties.parse_trivy_source(properties) if properties
report.add_component(component) if component.ingestible?
rescue ::Sbom::PackageUrl::InvalidPackageUrl
report.add_error("/components/#{index}/purl is invalid")
diff --git a/lib/gitlab/ci/parsers/sbom/cyclonedx_properties.rb b/lib/gitlab/ci/parsers/sbom/cyclonedx_properties.rb
index 35548358c57..7069e784934 100644
--- a/lib/gitlab/ci/parsers/sbom/cyclonedx_properties.rb
+++ b/lib/gitlab/ci/parsers/sbom/cyclonedx_properties.rb
@@ -5,7 +5,7 @@ module Gitlab
module Parsers
module Sbom
# Parses GitLab CycloneDX metadata properties which are defined by the taxonomy at
- # https://gitlab.com/gitlab-org/security-products/gitlab-cyclonedx-property-taxonomy
+ # https://docs.gitlab.com/ee/development/sec/cyclonedx_property_taxonomy.html
#
# This parser knows how to process schema version 1 and will not attempt to parse
# later versions. Each source type has it's own namespace in the property schema,
@@ -14,10 +14,13 @@ module Gitlab
class CyclonedxProperties
SUPPORTED_SCHEMA_VERSION = '1'
GITLAB_PREFIX = 'gitlab:'
+ AQUASECURITY_PREFIX = 'aquasecurity:'
SOURCE_PARSERS = {
'dependency_scanning' => ::Gitlab::Ci::Parsers::Sbom::Source::DependencyScanning,
- 'container_scanning' => ::Gitlab::Ci::Parsers::Sbom::Source::ContainerScanning
+ 'container_scanning' => ::Gitlab::Ci::Parsers::Sbom::Source::ContainerScanning,
+ 'trivy' => ::Gitlab::Ci::Parsers::Sbom::Source::Trivy
}.freeze
+
SUPPORTED_PROPERTIES = %w[
meta:schema_version
dependency_scanning:category
@@ -29,12 +32,26 @@ module Gitlab
container_scanning:image:tag
container_scanning:operating_system:name
container_scanning:operating_system:version
+ trivy:PkgID
+ trivy:PkgType
+ trivy:SrcName
+ trivy:SrcVersion
+ trivy:SrcRelease
+ trivy:SrcEpoch
+ trivy:Modularitylabel
+ trivy:FilePath
+ trivy:LayerDigest
+ trivy:LayerDiffID
].freeze
def self.parse_source(...)
new(...).parse_source
end
+ def self.parse_trivy_source(...)
+ new(...).parse_trivy_source
+ end
+
def initialize(properties)
@properties = properties
end
@@ -46,6 +63,12 @@ module Gitlab
source
end
+ def parse_trivy_source
+ return unless properties.present?
+
+ source
+ end
+
private
attr_reader :properties
@@ -61,11 +84,15 @@ module Gitlab
# The specification permits the name or value to be absent.
return unless name.present? && value.present?
- return unless name.start_with?(GITLAB_PREFIX)
- namespaced_name = name.delete_prefix(GITLAB_PREFIX)
+ namespaced_name =
+ if name.start_with?(GITLAB_PREFIX)
+ name.delete_prefix(GITLAB_PREFIX)
+ elsif name.start_with?(AQUASECURITY_PREFIX)
+ name.delete_prefix(AQUASECURITY_PREFIX)
+ end
- return unless SUPPORTED_PROPERTIES.include?(namespaced_name)
+ return unless namespaced_name && SUPPORTED_PROPERTIES.include?(namespaced_name)
parse_name_value_pair(namespaced_name, value, data)
end
diff --git a/lib/gitlab/ci/parsers/sbom/source/trivy.rb b/lib/gitlab/ci/parsers/sbom/source/trivy.rb
new file mode 100644
index 00000000000..0218b19e931
--- /dev/null
+++ b/lib/gitlab/ci/parsers/sbom/source/trivy.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Ci
+ module Parsers
+ module Sbom
+ module Source
+ class Trivy < BaseSource
+ private
+
+ def type
+ :trivy
+ end
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/ci/parsers/security/common.rb b/lib/gitlab/ci/parsers/security/common.rb
index be6c6c2558b..ede0f62ea51 100644
--- a/lib/gitlab/ci/parsers/security/common.rb
+++ b/lib/gitlab/ci/parsers/security/common.rb
@@ -20,6 +20,7 @@ module Gitlab
end
def parse!
+ sanitize_json_data
set_report_version
return report_data unless valid?
@@ -43,6 +44,14 @@ module Gitlab
attr_reader :json_data, :report, :validate, :project
+ # PostgreSQL can not save texts with unicode null character
+ # that's why we are escaping that character.
+ def sanitize_json_data
+ return unless json_data.gsub!('\u0000', '\\\\\u0000')
+
+ report.add_warning('Parsing', 'Report artifact contained unicode null characters which are escaped during the ingestion.')
+ end
+
def valid?
return true unless validate
@@ -123,7 +132,6 @@ module Gitlab
uuid: uuid,
report_type: report.type,
name: finding_name(data, identifiers, location),
- compare_key: data['cve'] || '',
location: location,
evidence: evidence,
severity: ::Enums::Vulnerability.parse_severity_level(data['severity']),
diff --git a/lib/gitlab/ci/pipeline/chain/command.rb b/lib/gitlab/ci/pipeline/chain/command.rb
index cc3aa33e93b..7e871732c20 100644
--- a/lib/gitlab/ci/pipeline/chain/command.rb
+++ b/lib/gitlab/ci/pipeline/chain/command.rb
@@ -62,7 +62,7 @@ module Gitlab
end
def before_sha
- self[:before_sha] || checkout_sha || Gitlab::Git::BLANK_SHA
+ self[:before_sha] || checkout_sha || Gitlab::Git::SHA1_BLANK_SHA
end
def protected_ref?
diff --git a/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb b/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb
index ab37eb93f18..5fdba860b0e 100644
--- a/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb
+++ b/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb
@@ -13,13 +13,9 @@ module Gitlab
return if workflow_passed?
- if Feature.enabled?(:always_set_pipeline_failure_reason, @command.project)
- drop_reason = :filtered_by_workflow_rules
- end
-
error(
'Pipeline filtered out by workflow rules.',
- drop_reason: drop_reason
+ drop_reason: :filtered_by_workflow_rules
)
end
diff --git a/lib/gitlab/ci/pipeline/chain/helpers.rb b/lib/gitlab/ci/pipeline/chain/helpers.rb
index 0e55928ff80..5dfe918042e 100644
--- a/lib/gitlab/ci/pipeline/chain/helpers.rb
+++ b/lib/gitlab/ci/pipeline/chain/helpers.rb
@@ -45,7 +45,7 @@ module Gitlab
else
command.increment_pipeline_failure_reason_counter(drop_reason)
- pipeline.set_failed(drop_reason) if Feature.enabled?(:always_set_pipeline_failure_reason, command.project)
+ pipeline.set_failed(drop_reason)
end
end
end
diff --git a/lib/gitlab/ci/pipeline/chain/populate.rb b/lib/gitlab/ci/pipeline/chain/populate.rb
index f73addcd098..e9097182262 100644
--- a/lib/gitlab/ci/pipeline/chain/populate.rb
+++ b/lib/gitlab/ci/pipeline/chain/populate.rb
@@ -18,14 +18,10 @@ module Gitlab
pipeline.stages = @command.pipeline_seed.stages
if stage_names.empty?
- if Feature.enabled?(:always_set_pipeline_failure_reason, @command.project)
- drop_reason = :filtered_by_rules
- end
-
return error(
'Pipeline will not run for the selected trigger. ' \
'The rules configuration prevented any jobs from being added to the pipeline.',
- drop_reason: drop_reason
+ drop_reason: :filtered_by_rules
)
end
diff --git a/lib/gitlab/ci/pipeline/chain/populate_metadata.rb b/lib/gitlab/ci/pipeline/chain/populate_metadata.rb
index 3ac910da752..8e6426be679 100644
--- a/lib/gitlab/ci/pipeline/chain/populate_metadata.rb
+++ b/lib/gitlab/ci/pipeline/chain/populate_metadata.rb
@@ -35,7 +35,10 @@ module Gitlab
end
def set_auto_cancel
- auto_cancel = @command.yaml_processor_result.workflow_auto_cancel
+ auto_cancel_from_config = @command.yaml_processor_result.workflow_auto_cancel || {}
+ auto_cancel_from_rules = @command.workflow_rules_result&.auto_cancel || {}
+
+ auto_cancel = auto_cancel_from_config.merge(auto_cancel_from_rules)
return if auto_cancel.blank?
diff --git a/lib/gitlab/ci/reports/sbom/component.rb b/lib/gitlab/ci/reports/sbom/component.rb
index 59816e75b2c..1a3f689c1d7 100644
--- a/lib/gitlab/ci/reports/sbom/component.rb
+++ b/lib/gitlab/ci/reports/sbom/component.rb
@@ -8,12 +8,14 @@ module Gitlab
include Gitlab::Utils::StrongMemoize
attr_reader :component_type, :version, :path
+ attr_accessor :properties
- def initialize(type:, name:, purl:, version:)
+ def initialize(type:, name:, purl:, version:, properties: nil)
@component_type = type
@name = name
@raw_purl = purl
@version = version
+ @properties = properties
end
def <=>(other)
diff --git a/lib/gitlab/ci/reports/security/finding.rb b/lib/gitlab/ci/reports/security/finding.rb
index fa8494483d3..fbca1e674d1 100644
--- a/lib/gitlab/ci/reports/security/finding.rb
+++ b/lib/gitlab/ci/reports/security/finding.rb
@@ -7,7 +7,6 @@ module Gitlab
class Finding
include ::VulnerabilityFindingHelpers
- attr_reader :compare_key
attr_reader :confidence
attr_reader :identifiers
attr_reader :flags
@@ -34,10 +33,7 @@ module Gitlab
delegate :file_path, :start_line, :end_line, to: :location
- alias_method :cve, :compare_key
-
- def initialize(compare_key:, identifiers:, flags: [], links: [], remediations: [], location:, evidence:, metadata_version:, name:, original_data:, report_type:, scanner:, scan:, uuid:, confidence: nil, severity: nil, details: {}, signatures: [], project_id: nil, vulnerability_finding_signatures_enabled: false, found_by_pipeline: nil, cvss: []) # rubocop:disable Metrics/ParameterLists
- @compare_key = compare_key
+ def initialize(identifiers:, flags: [], links: [], remediations: [], location:, evidence:, metadata_version:, name:, original_data:, report_type:, scanner:, scan:, uuid:, confidence: nil, severity: nil, details: {}, signatures: [], project_id: nil, vulnerability_finding_signatures_enabled: false, found_by_pipeline: nil, cvss: []) # rubocop:disable Metrics/ParameterLists
@confidence = confidence
@identifiers = identifiers
@flags = flags
@@ -65,7 +61,6 @@ module Gitlab
def to_hash
%i[
- compare_key
confidence
identifiers
flags
@@ -84,7 +79,6 @@ module Gitlab
details
signatures
description
- cve
solution
].index_with do |key|
public_send(key) # rubocop:disable GitlabSecurity/PublicSend
@@ -141,7 +135,7 @@ module Gitlab
def <=>(other)
if severity == other.severity
- compare_key <=> other.compare_key
+ uuid <=> other.uuid
else
::Enums::Vulnerability.severity_levels[other.severity] <=>
::Enums::Vulnerability.severity_levels[severity]
@@ -200,7 +194,7 @@ module Gitlab
private
def generate_project_fingerprint
- Digest::SHA1.hexdigest(compare_key)
+ Digest::SHA1.hexdigest(uuid.to_s)
end
def location_fingerprints
diff --git a/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
index a5cddf5d2d7..6f8bed32796 100644
--- a/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- DAST_AUTO_DEPLOY_IMAGE_VERSION: 'v2.71.0'
+ DAST_AUTO_DEPLOY_IMAGE_VERSION: 'v2.76.1'
.dast-auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${DAST_AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
index 0a899f3bb74..52367cfe97d 100644
--- a/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- AUTO_DEPLOY_IMAGE_VERSION: 'v2.71.0'
+ AUTO_DEPLOY_IMAGE_VERSION: 'v2.76.1'
.auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
index 87a7f79c0ce..06dc91a8bbc 100644
--- a/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- AUTO_DEPLOY_IMAGE_VERSION: 'v2.71.0'
+ AUTO_DEPLOY_IMAGE_VERSION: 'v2.76.1'
.auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/lib/gitlab/ci/templates/Security/DAST-On-Demand-Scan.gitlab-ci.yml b/lib/gitlab/ci/templates/Security/DAST-On-Demand-Scan.gitlab-ci.yml
index 1ed4cd86e82..4b60298353d 100644
--- a/lib/gitlab/ci/templates/Security/DAST-On-Demand-Scan.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Security/DAST-On-Demand-Scan.gitlab-ci.yml
@@ -21,7 +21,7 @@ variables:
dast:
stage: dast
image:
- name: "$SECURE_ANALYZERS_PREFIX/dast:$DAST_VERSION"
+ name: "$SECURE_ANALYZERS_PREFIX/dast:$DAST_VERSION$DAST_IMAGE_SUFFIX"
variables:
GIT_STRATEGY: none
allow_failure: true
@@ -30,3 +30,10 @@ dast:
artifacts:
reports:
dast: gl-dast-report.json
+ rules:
+ - if: $CI_GITLAB_FIPS_MODE == "true"
+ variables:
+ DAST_IMAGE_SUFFIX: "-fips"
+ - if: $CI_GITLAB_FIPS_MODE != "true"
+ variables:
+ DAST_IMAGE_SUFFIX: ""
diff --git a/lib/gitlab/ci/templates/Security/DAST-Runner-Validation.gitlab-ci.yml b/lib/gitlab/ci/templates/Security/DAST-Runner-Validation.gitlab-ci.yml
index c75ff2e9ff8..8043b6a95cc 100644
--- a/lib/gitlab/ci/templates/Security/DAST-Runner-Validation.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Security/DAST-Runner-Validation.gitlab-ci.yml
@@ -18,9 +18,16 @@ variables:
validation:
stage: dast
image:
- name: "$CI_TEMPLATE_REGISTRY_HOST/security-products/dast-runner-validation:$DAST_RUNNER_VALIDATION_VERSION"
+ name: "$CI_TEMPLATE_REGISTRY_HOST/security-products/dast-runner-validation:$DAST_RUNNER_VALIDATION_VERSION$DAST_IMAGE_SUFFIX"
variables:
GIT_STRATEGY: none
allow_failure: false
script:
- ~/validate.sh
+ rules:
+ - if: $CI_GITLAB_FIPS_MODE == "true"
+ variables:
+ DAST_IMAGE_SUFFIX: "-fips"
+ - if: $CI_GITLAB_FIPS_MODE != "true"
+ variables:
+ DAST_IMAGE_SUFFIX: ""
diff --git a/lib/gitlab/cleanup/orphan_job_artifact_final_objects/job_artifact_object.rb b/lib/gitlab/cleanup/orphan_job_artifact_final_objects/job_artifact_object.rb
new file mode 100644
index 00000000000..61e7c6c43a6
--- /dev/null
+++ b/lib/gitlab/cleanup/orphan_job_artifact_final_objects/job_artifact_object.rb
@@ -0,0 +1,62 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Cleanup
+ module OrphanJobArtifactFinalObjects
+ class JobArtifactObject
+ include Gitlab::Utils::StrongMemoize
+
+ attr_reader :path, :size
+
+ def initialize(fog_file, bucket_prefix: nil)
+ @fog_file = fog_file
+ @path = fog_file.key
+ @size = fog_file.content_length
+ @bucket_prefix = bucket_prefix
+ end
+
+ def in_final_location?
+ path.include?('/@final/')
+ end
+
+ def orphan?
+ !job_artifact_record_exists? && !pending_direct_upload?
+ end
+
+ def delete
+ fog_file.destroy
+ end
+
+ private
+
+ attr_reader :fog_file, :bucket_prefix
+
+ def job_artifact_record_exists?
+ ::Ci::JobArtifact.exists?(file_final_path: path_without_bucket_prefix) # rubocop:disable CodeReuse/ActiveRecord -- too simple and specific for this usecase to be its own AR method
+ end
+
+ def pending_direct_upload?
+ ::ObjectStorage::PendingDirectUpload.exists?(:artifacts, path_without_bucket_prefix) # rubocop:disable CodeReuse/ActiveRecord -- `exists?` here is not the same as the AR method
+ end
+
+ def path_without_bucket_prefix
+ # `path` contains the fog file's key. It is the object path relative to the artifacts bucket, for example:
+ # aa/bb/abc123/@final/12/34/def12345
+ #
+ # But if the instance is configured to only use a single bucket combined with bucket prefixes,
+ # for example if the `bucket_prefix` is "my/artifacts", the `path` would then look like:
+ # my/artifacts/aa/bb/abc123/@final/12/34/def12345
+ #
+ # For `orphan?` to function properly, we need to strip the bucket_prefix
+ # off of the `path` because we need this to match the correct job artifact record by
+ # its `file_final_path` column, or the pending direct upload redis entry, which both contains
+ # the object's path without `bucket_prefix`.
+ #
+ # If bucket_prefix is not present, this will just return the original path.
+ Pathname.new(path).relative_path_from(bucket_prefix.to_s).to_s
+ end
+ strong_memoize_attr :path_without_bucket_prefix
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/aws.rb b/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/aws.rb
new file mode 100644
index 00000000000..7fedd8f4306
--- /dev/null
+++ b/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/aws.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Cleanup
+ module OrphanJobArtifactFinalObjects
+ module Paginators
+ class Aws < BasePaginator
+ def page_marker_filter_key
+ :marker
+ end
+
+ def max_results_filter_key
+ :max_keys
+ end
+
+ def last_page?(batch)
+ batch.empty?
+ end
+
+ def get_next_marker(batch)
+ batch.last.key
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/base_paginator.rb b/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/base_paginator.rb
new file mode 100644
index 00000000000..7bc7f9c2661
--- /dev/null
+++ b/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/base_paginator.rb
@@ -0,0 +1,49 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Cleanup
+ module OrphanJobArtifactFinalObjects
+ module Paginators
+ class BasePaginator
+ BATCH_SIZE = Rails.env.development? ? 5 : 200
+
+ def initialize(bucket_prefix: nil)
+ @bucket_prefix = bucket_prefix
+ end
+
+ def filters(marker)
+ {
+ page_marker_filter_key => marker,
+ max_results_filter_key => BATCH_SIZE,
+ prefix: bucket_prefix
+ }
+ end
+
+ def last_page?(batch)
+ # Fog providers have different indicators of last page, so we want to delegate this
+ # knowledge to the specific provider implementation.
+ raise NotImplementedError, "Subclasses must define `last_page?(batch)` instance method"
+ end
+
+ def get_next_marker(batch)
+ # Fog providers have different ways to get the next marker, so we want to delegate this
+ # knowledge to the specific provider implementation.
+ raise NotImplementedError, "Subclasses must define `get_next_marker(batch)` instance method"
+ end
+
+ private
+
+ attr_reader :bucket_prefix
+
+ def page_marker_filter_key
+ raise NotImplementedError, "Subclasses must define `page_marker_key` instance method"
+ end
+
+ def max_results_filter_key
+ raise NotImplementedError, "Subclasses must define `max_results_filter_key` instance method"
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/google.rb b/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/google.rb
new file mode 100644
index 00000000000..9b0da9910cd
--- /dev/null
+++ b/lib/gitlab/cleanup/orphan_job_artifact_final_objects/paginators/google.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Cleanup
+ module OrphanJobArtifactFinalObjects
+ module Paginators
+ class Google < BasePaginator
+ def filters(marker)
+ pattern = [bucket_prefix, '*/*/*/@final/**'].compact.join('/')
+ super.merge(match_glob: pattern)
+ end
+
+ def page_marker_filter_key
+ :page_token
+ end
+
+ def max_results_filter_key
+ :max_results
+ end
+
+ def last_page?(batch)
+ batch.next_page_token.nil?
+ end
+
+ def get_next_marker(batch)
+ batch.next_page_token
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/cleanup/orphan_job_artifact_final_objects_cleaner.rb b/lib/gitlab/cleanup/orphan_job_artifact_final_objects_cleaner.rb
new file mode 100644
index 00000000000..4726d68e024
--- /dev/null
+++ b/lib/gitlab/cleanup/orphan_job_artifact_final_objects_cleaner.rb
@@ -0,0 +1,161 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Cleanup
+ class OrphanJobArtifactFinalObjectsCleaner
+ include Gitlab::Utils::StrongMemoize
+
+ UnsupportedProviderError = Class.new(StandardError)
+
+ PAGINATORS = {
+ google: Gitlab::Cleanup::OrphanJobArtifactFinalObjects::Paginators::Google,
+ aws: Gitlab::Cleanup::OrphanJobArtifactFinalObjects::Paginators::Aws
+ }.freeze
+
+ LAST_PAGE_MARKER_REDIS_KEY = 'orphan-job-artifact-objects-cleanup-last-page-marker'
+
+ def initialize(provider: nil, dry_run: true, force_restart: false, logger: Gitlab::AppLogger)
+ @paginator = determine_paginator!(provider)
+ @dry_run = dry_run
+ @force_restart = force_restart
+ @logger = logger
+ end
+
+ def run!
+ log_info('Looking for orphan job artifact objects under the `@final` directories')
+
+ each_final_object do |object|
+ next unless object.orphan?
+
+ object.delete unless dry_run
+ log_info("Delete #{object.path} (#{object.size} bytes)")
+ end
+
+ log_info("Done.")
+ end
+
+ private
+
+ attr_reader :paginator, :dry_run, :force_restart, :logger
+
+ def determine_paginator!(provided_provider)
+ # provider can be nil if user didn't specify it when running the clean up task.
+ # In this case, we automatically determine the provider based on the object storage configuration.
+ provider = provided_provider
+ provider ||= configuration.connection.provider
+ klass = PAGINATORS.fetch(provider.downcase.to_sym)
+ klass.new(bucket_prefix: bucket_prefix)
+ rescue KeyError
+ msg = if provided_provider.present?
+ "The provided provider is unsupported. Please select from #{PAGINATORS.keys.join(', ')}."
+ else
+ <<-MSG.strip_heredoc
+ The provider found in the object storage configuration is unsupported.
+ Please re-run the task and specify a provider from #{PAGINATORS.keys.join(', ')},
+ whichever is compatible with your provider's object storage API."
+ MSG
+ end
+
+ raise UnsupportedProviderError, msg
+ end
+
+ def each_final_object
+ each_batch do |files|
+ files.each_file_this_page do |fog_file|
+ object = ::Gitlab::Cleanup::OrphanJobArtifactFinalObjects::JobArtifactObject.new(
+ fog_file,
+ bucket_prefix: bucket_prefix
+ )
+
+ # We still need to check here if the object is in the final location because
+ # if the provider does not support filtering objects by glob pattern, we will
+ # then receive all job artifact objects here, even the ones not in the @final directory.
+ yield object if object.in_final_location?
+ end
+ end
+ end
+
+ def each_batch
+ next_marker = resume_from_last_page_marker
+
+ loop do
+ batch = fetch_batch(next_marker)
+ yield batch
+
+ break if paginator.last_page?(batch)
+
+ next_marker = paginator.get_next_marker(batch)
+ save_last_page_marker(next_marker)
+ end
+
+ clear_last_page_marker
+ end
+
+ def fetch_batch(marker)
+ page_name = marker ? "marker: #{marker}" : "first page"
+ log_info("Loading page (#{page_name})")
+
+ # We are using files.all instead of files.each because we want to track the
+ # current page token so that we can resume from it if ever the task is abruptly interrupted.
+ artifacts_directory.files.all(
+ paginator.filters(marker)
+ )
+ end
+
+ def resume_from_last_page_marker
+ if force_restart
+ log_info("Force restarted. Will not resume from last known page marker.")
+ nil
+ else
+ get_last_page_marker
+ end
+ end
+
+ def get_last_page_marker
+ Gitlab::Redis::SharedState.with do |redis|
+ marker = redis.get(LAST_PAGE_MARKER_REDIS_KEY)
+ log_info("Resuming from last page marker: #{marker}") if marker
+ marker
+ end
+ end
+
+ def save_last_page_marker(marker)
+ Gitlab::Redis::SharedState.with do |redis|
+ # Set TTL to 1 day (86400 seconds)
+ redis.set(LAST_PAGE_MARKER_REDIS_KEY, marker, ex: 86400)
+ end
+ end
+
+ def clear_last_page_marker
+ Gitlab::Redis::SharedState.with do |redis|
+ redis.del(LAST_PAGE_MARKER_REDIS_KEY)
+ end
+ end
+
+ def connection
+ ::Fog::Storage.new(configuration['connection'].symbolize_keys)
+ end
+
+ def configuration
+ Gitlab.config.artifacts.object_store
+ end
+
+ def bucket
+ configuration.remote_directory
+ end
+
+ def bucket_prefix
+ configuration.bucket_prefix
+ end
+
+ def artifacts_directory
+ connection.directories.new(key: bucket)
+ end
+ strong_memoize_attr :artifacts_directory
+
+ def log_info(msg)
+ logger.info("#{'[DRY RUN] ' if dry_run}#{msg}")
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/cleanup/project_uploads.rb b/lib/gitlab/cleanup/project_uploads.rb
index 918f723cd60..7c376893156 100644
--- a/lib/gitlab/cleanup/project_uploads.rb
+++ b/lib/gitlab/cleanup/project_uploads.rb
@@ -122,7 +122,7 @@ module Gitlab
# rubocop: disable CodeReuse/ActiveRecord
def project_id
- @project_id ||= Project.where_full_path_in([full_path], use_includes: false).pluck(:id)
+ @project_id ||= Project.where_full_path_in([full_path], preload_routes: false).pluck(:id)
end
# rubocop: enable CodeReuse/ActiveRecord
end
diff --git a/lib/gitlab/current_settings.rb b/lib/gitlab/current_settings.rb
index 5c4899da11f..64e0478734b 100644
--- a/lib/gitlab/current_settings.rb
+++ b/lib/gitlab/current_settings.rb
@@ -12,22 +12,18 @@ module Gitlab
end
def current_application_settings
- Gitlab::SafeRequestStore.fetch(:current_application_settings) { ensure_application_settings! }
+ Gitlab::SafeRequestStore.fetch(:current_application_settings) { Gitlab::ApplicationSettingFetcher.current_application_settings }
end
def current_application_settings?
- Gitlab::SafeRequestStore.exist?(:current_application_settings) || ::ApplicationSetting.current.present?
+ Gitlab::SafeRequestStore.exist?(:current_application_settings) || Gitlab::ApplicationSettingFetcher.current_application_settings?
end
def expire_current_application_settings
- ::ApplicationSetting.expire
+ Gitlab::ApplicationSettingFetcher.expire_current_application_settings
Gitlab::SafeRequestStore.delete(:current_application_settings)
end
- def clear_in_memory_application_settings!
- @in_memory_application_settings = nil
- end
-
def method_missing(name, *args, **kwargs, &block)
current_application_settings.send(name, *args, **kwargs, &block) # rubocop:disable GitlabSecurity/PublicSend
end
@@ -35,66 +31,6 @@ module Gitlab
def respond_to_missing?(name, include_private = false)
current_application_settings.respond_to?(name, include_private) || super
end
-
- private
-
- def ensure_application_settings!
- cached_application_settings || uncached_application_settings
- end
-
- def cached_application_settings
- return in_memory_application_settings if ENV['IN_MEMORY_APPLICATION_SETTINGS'] == 'true'
-
- begin
- ::ApplicationSetting.cached
- rescue StandardError
- # In case Redis isn't running
- # or the Redis UNIX socket file is not available
- # or the DB is not running (we use migrations in the cache key)
- end
- end
-
- def uncached_application_settings
- return fake_application_settings if Gitlab::Runtime.rake? && !connect_to_db?
-
- current_settings = ::ApplicationSetting.current
- # If there are pending migrations, it's possible there are columns that
- # need to be added to the application settings. To prevent Rake tasks
- # and other callers from failing, use any loaded settings and return
- # defaults for missing columns.
- if Gitlab::Runtime.rake? && ::ApplicationSetting.connection.migration_context.needs_migration?
- db_attributes = current_settings&.attributes || {}
- fake_application_settings(db_attributes)
- elsif current_settings.present?
- current_settings
- else
- ::ApplicationSetting.create_from_defaults
- end
- rescue ::ApplicationSetting::Recursion
- in_memory_application_settings
- end
-
- def fake_application_settings(attributes = {})
- Gitlab::FakeApplicationSettings.new(::ApplicationSetting.defaults.merge(attributes || {}))
- end
-
- def in_memory_application_settings
- @in_memory_application_settings ||= ::ApplicationSetting.build_from_defaults
- end
-
- def connect_to_db?
- # When the DBMS is not available, an exception (e.g. PG::ConnectionBad) is raised
- active_db_connection = begin
- ::ApplicationSetting.connection.active?
- rescue StandardError
- false
- end
-
- active_db_connection &&
- ApplicationSetting.database.cached_table_exists?
- rescue ActiveRecord::NoDatabaseError
- false
- end
end
end
end
diff --git a/lib/gitlab/database/decomposition/migrate.rb b/lib/gitlab/database/decomposition/migrate.rb
index b6ca5adf857..812e28c573f 100644
--- a/lib/gitlab/database/decomposition/migrate.rb
+++ b/lib/gitlab/database/decomposition/migrate.rb
@@ -52,7 +52,7 @@ module Gitlab
ApplicationRecord.connection.execute(
ApplicationRecord.sanitize_sql([
TABLE_SIZE_QUERY,
- { table_catalog: main_config.dig(:activerecord, :database) }
+ { table_catalog: main_database_name }
])
).first["total"].to_f
end
@@ -86,7 +86,7 @@ module Gitlab
end
def ci_database_connect_ok?
- _, status = with_transient_pg_env(ci_config[:pg_env]) do
+ _, status = with_transient_pg_env(ci_config.pg_env_variables) do
psql_args = ["--dbname=#{ci_database_name}", "-tAc", "select 1"]
Open3.capture2e('psql', *psql_args)
@@ -94,7 +94,7 @@ module Gitlab
unless status.success?
raise MigrateError,
- "Can't connect to database '#{ci_database_name} on host '#{ci_config[:pg_env]['PGHOST']}'. " \
+ "Can't connect to database '#{ci_database_name} on host '#{ci_config.pg_env_variables['PGHOST']}'. " \
"Ensure the database has been created."
end
@@ -107,7 +107,7 @@ module Gitlab
{ table_catalog: ci_database_name }
])
- output, status = with_transient_pg_env(ci_config[:pg_env]) do
+ output, status = with_transient_pg_env(ci_config.pg_env_variables) do
psql_args = ["--dbname=#{ci_database_name}", "-tAc", sql]
Open3.capture2e('psql', *psql_args)
@@ -149,7 +149,7 @@ module Gitlab
end
def import_dump_to_ci_db
- with_transient_pg_env(ci_config[:pg_env]) do
+ with_transient_pg_env(ci_config.pg_env_variables) do
restore_args = ["--jobs=4", "--dbname=#{ci_database_name}"]
Open3.capture2e('pg_restore', *restore_args, @backup_location)
@@ -157,23 +157,27 @@ module Gitlab
end
def dump_main_db
- with_transient_pg_env(main_config[:pg_env]) do
+ with_transient_pg_env(main_config.pg_env_variables) do
args = ['--format=d', '--jobs=4', "--file=#{@backup_location}"]
- Open3.capture2e('pg_dump', *args, main_config.dig(:activerecord, :database))
+ Open3.capture2e('pg_dump', *args, main_database_name)
end
end
def main_config
- @main_config ||= ::Backup::DatabaseModel.new('main').config
+ @main_config ||= ::Backup::DatabaseConfiguration.new('main')
end
def ci_config
- @ci_config ||= ::Backup::DatabaseModel.new('ci').config
+ @ci_config ||= ::Backup::DatabaseConfiguration.new('ci')
+ end
+
+ def main_database_name
+ main_config.activerecord_configuration.database
end
def ci_database_name
- @ci_database_name ||= "#{main_config.dig(:activerecord, :database)}_ci"
+ "#{main_config.activerecord_configuration.database}_ci"
end
end
end
diff --git a/lib/gitlab/database/dictionary.rb b/lib/gitlab/database/dictionary.rb
index 4ef392a4e44..d963d6f288e 100644
--- a/lib/gitlab/database/dictionary.rb
+++ b/lib/gitlab/database/dictionary.rb
@@ -3,6 +3,8 @@
module Gitlab
module Database
class Dictionary
+ ALL_SCOPES = ['', 'views', 'deleted_tables'].freeze
+
def self.entries(scope = '')
@entries ||= {}
@entries[scope] ||= Dir.glob(dictionary_path_globs(scope)).map do |file_path|
@@ -12,6 +14,15 @@ module Gitlab
end
end
+ def self.any_entry(name)
+ ALL_SCOPES.each do |scope|
+ e = entry(name, scope)
+ return e if e
+ end
+
+ nil
+ end
+
def self.entry(name, scope = '')
entries(scope).find do |entry|
entry.key_name == name
@@ -69,6 +80,10 @@ module Gitlab
data['classes']
end
+ def allow_cross_to_schemas(type)
+ data["allow_cross_#{type}"].to_a.map(&:to_sym)
+ end
+
def schema?(schema_name)
gitlab_schema == schema_name.to_s
end
diff --git a/lib/gitlab/database/gitlab_schema_info.rb b/lib/gitlab/database/gitlab_schema_info.rb
index b7ec3dfc893..36e586313a5 100644
--- a/lib/gitlab/database/gitlab_schema_info.rb
+++ b/lib/gitlab/database/gitlab_schema_info.rb
@@ -2,11 +2,6 @@
module Gitlab
module Database
- GitlabSchemaInfoAllowCross = Struct.new(
- :specific_tables,
- keyword_init: true
- )
-
GitlabSchemaInfo = Struct.new(
:name,
:description,
@@ -20,9 +15,12 @@ module Gitlab
def initialize(*)
super
self.name = name.to_sym
- self.allow_cross_joins = convert_array_to_hash(allow_cross_joins)
- self.allow_cross_transactions = convert_array_to_hash(allow_cross_transactions)
- self.allow_cross_foreign_keys = convert_array_to_hash(allow_cross_foreign_keys)
+ self.allow_cross_joins = add_table_specific_allows(
+ :joins, convert_array_to_hash(allow_cross_joins))
+ self.allow_cross_transactions = add_table_specific_allows(
+ :transactions, convert_array_to_hash(allow_cross_transactions))
+ self.allow_cross_foreign_keys = add_table_specific_allows(
+ :foreign_keys, convert_array_to_hash(allow_cross_foreign_keys))
end
def self.load_file(yaml_file)
@@ -31,35 +29,37 @@ module Gitlab
end
def allow_cross_joins?(table_schemas, all_tables)
- allowed_schemas = allow_cross_joins || {}
-
- allowed_for?(allowed_schemas, table_schemas, all_tables)
+ allowed_for?(allow_cross_joins, table_schemas, all_tables)
end
def allow_cross_transactions?(table_schemas, all_tables)
- allowed_schemas = allow_cross_transactions || {}
-
- allowed_for?(allowed_schemas, table_schemas, all_tables)
+ allowed_for?(allow_cross_transactions, table_schemas, all_tables)
end
def allow_cross_foreign_keys?(table_schemas, all_tables)
- allowed_schemas = allow_cross_foreign_keys || {}
-
- allowed_for?(allowed_schemas, table_schemas, all_tables)
+ allowed_for?(allow_cross_foreign_keys, table_schemas, all_tables)
end
private
def allowed_for?(allowed_schemas, table_schemas, all_tables)
+ # Take all the schemas in the query and remove the current schema and all the allowed schemas. If there is
+ # anything left then it's not allowed. Then we even if there is nothing left we continue to verify
+ # `specific_tables` used in the allowed schemas.
denied_schemas = table_schemas - [name]
denied_schemas -= allowed_schemas.keys
return false unless denied_schemas.empty?
+ # Additional validation for specific_tables. We should validate that if `specific_tables` is set then we will
+ # need all the tables to be in the the allowed specific_tables
all_tables.all? do |table|
table_schema = ::Gitlab::Database::GitlabSchema.table_schema!(table)
allowed_tables = allowed_schemas[table_schema]
- allowed_tables.nil? || allowed_tables.specific_tables.include?(table)
+ # If specific tables key is nil? (not present) then we assume all tables are allowed and return true Otherwise
+ # we check every table in the current query is in specific_tables list
+ allowed_tables.nil? ||
+ allowed_tables[:specific_tables].include?(table)
end
end
@@ -72,7 +72,7 @@ module Gitlab
#
# To:
# { :schema_a => nil,
- # :schema_b => { specific_tables : [:table_b_of_schema_b, :table_c_of_schema_b] }
+ # :schema_b => { specific_tables : ['table_b_of_schema_b', 'table_c_of_schema_b'] }
# }
#
def convert_array_to_hash(subject)
@@ -81,15 +81,58 @@ module Gitlab
subject&.each do |item|
if item.is_a?(Hash)
item.each do |key, value|
- result[key.to_sym] = GitlabSchemaInfoAllowCross.new(value || {})
+ result[key.to_sym] = { specific_tables: value[:specific_tables].to_set }
end
else
result[item.to_sym] = nil
end
end
+ result
+ end
+
+ # This method loops over all the `db/docs` files for every table and injects any
+ # allow_cross_joins/allow_cross_transactions/allow_cross_foreign_keys into the specific_tables lists for the
+ # current schema.
+ def add_table_specific_allows(type, schema_allows)
+ result = schema_allows
+ all_table_allows(type).each do |schema_from, tables|
+ # Preserve the meaning of `nil` as defined in convert_array_to_hash as a nil value means that we allow all
+ # tables
+ next if result.key?(schema_from) && result[schema_from].nil?
+
+ # Now we add the table to the specific_tables list because this table specifies it is allowed in this schema
+ result[schema_from] ||= { specific_tables: Set.new }
+ result[schema_from][:specific_tables] += tables
+ end
result.freeze
end
+
+ # For the given type we iterate over all db/docs files build a Hash like:
+ #
+ # {
+ # gitlab_main_cell: ['table_a', 'table_b']
+ # }
+ #
+ # This specifies that in the `gitlab_main_cell` schema the 'table_a` and `table_b` tables are allowing cross
+ # queries with the current schema
+ def all_table_allows(type)
+ @all_table_allows ||= {}
+ @all_table_allows[type] ||= begin
+ result = {}
+ ::Gitlab::Database::Dictionary.entries.each do |entry|
+ allowed_schemas = entry.allow_cross_to_schemas(type)
+ allowed_schemas.each do |schema|
+ # In the context of this GitlabSchemaInfo we only need the tables that have allowed this schema
+ next unless schema == name
+
+ result[entry.gitlab_schema.to_sym] ||= []
+ result[entry.gitlab_schema.to_sym] << entry.key_name
+ end
+ end
+ result
+ end
+ end
end
end
end
diff --git a/lib/gitlab/database/health_status/indicators/prometheus_alert_indicator.rb b/lib/gitlab/database/health_status/indicators/prometheus_alert_indicator.rb
index 3d630d21d4c..6e5c4fe8498 100644
--- a/lib/gitlab/database/health_status/indicators/prometheus_alert_indicator.rb
+++ b/lib/gitlab/database/health_status/indicators/prometheus_alert_indicator.rb
@@ -82,6 +82,7 @@ module Gitlab
def sli_query
{
gitlab_main: prometheus_alert_db_indicators_settings[sli_query_key][:main],
+ gitlab_main_cell: prometheus_alert_db_indicators_settings[sli_query_key][:main_cell],
gitlab_ci: prometheus_alert_db_indicators_settings[sli_query_key][:ci]
}.fetch(gitlab_schema)
end
@@ -90,6 +91,7 @@ module Gitlab
def slo
{
gitlab_main: prometheus_alert_db_indicators_settings[slo_key][:main],
+ gitlab_main_cell: prometheus_alert_db_indicators_settings[slo_key][:main_cell],
gitlab_ci: prometheus_alert_db_indicators_settings[slo_key][:ci]
}.fetch(gitlab_schema)
end
diff --git a/lib/gitlab/database/migration_helpers/v2.rb b/lib/gitlab/database/migration_helpers/v2.rb
index 7cfafa1a6a6..f4f4e8ce22a 100644
--- a/lib/gitlab/database/migration_helpers/v2.rb
+++ b/lib/gitlab/database/migration_helpers/v2.rb
@@ -115,10 +115,13 @@ module Gitlab
# type is used.
# batch_column_name - option is for tables without primary key, in this
# case another unique integer column can be used. Example: :user_id
- def rename_column_concurrently(table, old_column, new_column, type: nil, batch_column_name: :id)
+ def rename_column_concurrently(table, old_column, new_column, type: nil, batch_column_name: :id, type_cast_function: nil)
Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.require_ddl_mode!
- setup_renamed_column(__callee__, table, old_column, new_column, type, batch_column_name)
+ setup_renamed_column(
+ __callee__, table, old_column, new_column,
+ type: type, batch_column_name: batch_column_name, type_cast_function: type_cast_function
+ )
with_lock_retries do
install_bidirectional_triggers(table, old_column, new_column)
@@ -167,7 +170,10 @@ module Gitlab
def undo_cleanup_concurrent_column_rename(table, old_column, new_column, type: nil, batch_column_name: :id)
Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.require_ddl_mode!
- setup_renamed_column(__callee__, table, new_column, old_column, type, batch_column_name)
+ setup_renamed_column(
+ __callee__, table, new_column, old_column,
+ type: type, batch_column_name: batch_column_name
+ )
with_lock_retries do
install_bidirectional_triggers(table, old_column, new_column)
@@ -198,7 +204,7 @@ module Gitlab
private
- def setup_renamed_column(calling_operation, table, old_column, new_column, type, batch_column_name)
+ def setup_renamed_column(calling_operation, table, old_column, new_column, type:, batch_column_name:, type_cast_function: nil)
if transaction_open?
raise "#{calling_operation} can not be run inside a transaction"
end
@@ -220,7 +226,7 @@ module Gitlab
check_trigger_permissions!(table)
unless column_exists?(table, new_column)
- create_column_from(table, old_column, new_column, type: type, batch_column_name: batch_column_name)
+ create_column_from(table, old_column, new_column, type: type, batch_column_name: batch_column_name, type_cast_function: type_cast_function)
end
end
diff --git a/lib/gitlab/database/migrations/batched_background_migration_helpers.rb b/lib/gitlab/database/migrations/batched_background_migration_helpers.rb
index 39706582e3c..5599c65b84e 100644
--- a/lib/gitlab/database/migrations/batched_background_migration_helpers.rb
+++ b/lib/gitlab/database/migrations/batched_background_migration_helpers.rb
@@ -199,7 +199,7 @@ module Gitlab
Gitlab::Database::BackgroundMigration::BatchedMigration.reset_column_information
migration = Gitlab::Database::BackgroundMigration::BatchedMigration.find_for_configuration(
- Gitlab::Database.gitlab_schemas_for_connection(connection),
+ gitlab_schema_from_context,
job_class_name, table_name, column_name, job_arguments
)
diff --git a/lib/gitlab/database/migrations/squasher.rb b/lib/gitlab/database/migrations/squasher.rb
index 98fdf873aa5..3bec9eabbe2 100644
--- a/lib/gitlab/database/migrations/squasher.rb
+++ b/lib/gitlab/database/migrations/squasher.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
module Gitlab
module Database
diff --git a/lib/gitlab/database/namespace_each_batch.rb b/lib/gitlab/database/namespace_each_batch.rb
new file mode 100644
index 00000000000..ffc3e16061c
--- /dev/null
+++ b/lib/gitlab/database/namespace_each_batch.rb
@@ -0,0 +1,223 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Database
+ # This class implements an iterator over the namespace hierarchy which uses a recursive
+ # depth-first algorithm.
+ # You can read more about the algorithm here:
+ # https://docs.gitlab.com/ee/development/database/poc_tree_iterator.html
+ #
+ # With the class, you can iterate over the whole hierarchy including subgroups and project namespaces
+ # or just iterate over the subgroups.
+ #
+ # Usage:
+ #
+ # # To invoke the iterator, you can take any group id.
+ # # Build the cursor object that will be used for tracking our position in the tree hierarchy.
+ # cursor = { current_id: 9970, depth: [9970] }
+ #
+ # # Instantiate the object.
+ # iterator = Gitlab::Database::NamespaceEachBatch.new(namespace_class: Namespace, cursor: cursor)
+ #
+ # iterator.each_batch(of: 100) do |ids|
+ # # return namespace ids which can be Group id or Namespaces::ProjectNamespace id
+ # puts ids
+ # end
+ #
+ # # When you need to break out of the iteration and continue later, you can yield the cursor as a second parameter:
+ # iterator.each_batch(of: 100) do |ids, new_cursor|
+ # save_cursor(new_cursor) && break if limit_reached?
+ # puts ids
+ # end
+ #
+ # You can build a new iterator later and resume the processing.
+ #
+ # # Building an iterator that only returns groups:
+ # iterator = Gitlab::Database::NamespaceEachBatch.new(namespace_class: Group, cursor: cursor)
+ #
+ class NamespaceEachBatch
+ PROJECTIONS = %w[current_id depth ids count index].freeze
+
+ def initialize(namespace_class:, cursor:)
+ @namespace_class = namespace_class
+ set_cursor!(cursor)
+ end
+
+ def each_batch(of: 500)
+ current_cursor = cursor.dup
+
+ first_iteration = true
+ loop do
+ new_cursor, ids = load_batch(cursor: current_cursor, of: of, first_iteration: first_iteration)
+ break if new_cursor.nil?
+
+ first_iteration = false
+ current_cursor = new_cursor
+
+ yield ids, new_cursor
+
+ break if new_cursor[:depth].empty?
+ end
+ end
+
+ private
+
+ attr_reader :namespace_class, :cursor, :namespace_id
+
+ def load_batch(cursor:, of:, first_iteration: false)
+ recursive_scope = build_recursive_query(cursor, of, first_iteration)
+
+ row = Namespace
+ .select(*PROJECTIONS)
+ .from(recursive_scope.arel.as(Namespace.table_name)).order(count: :desc)
+ .limit(1)
+ .first
+
+ return [] unless row
+
+ [{ current_id: row[:current_id], depth: row[:depth] }, row[:ids]]
+ end
+
+ # rubocop: disable Style/AsciiComments -- Rendering a graph
+ # The depth-first algorithm is implemented here. Consider the following group hierarchy:
+ #
+ # ┌──â”
+ # │10│
+ # ┌────┴──┴────â”
+ # │ │
+ # ┌─┴┠┌┴─â”
+ # │41│ │72│
+ # └─┬┘ └──┘
+ # │
+ # ┌─┴â”
+ # ┌────┤32├─────â”
+ # │ └─┬┘ │
+ # │ │ │
+ # ┌─┴┠┌─┴┠┌┴─â”
+ # │11│ │12│ │18│
+ # └──┘ └──┘ └──┘
+ #
+ # 1. Start with node 10 and look up the left-hand child nodes until reaching the leaf. (walk_down)
+ # 2. While walking down, record the depth in an array and also store them in the ids array.
+ # 3. depth: 10, 41, 32, 11 | ids: 10, 41, 32, 11
+ # 4. Start collecting the ids by looking at the nodes on the deepest level. (next_elements)
+ # 5. This gives us the rest of the nodes on the same level (parent_id = 32 AND id > 11)
+ # 6. depth: 10, 41, 32, 11 | ids: 10, 41, 32, 11, 12, 18
+ # 7. When done, move one level up and pop the last value from the depth. (up_one_level)
+ # 8. depth: 10, 41, 32 | ids: 10, 41, 32, 11, 12, 18
+ # 9. Do the same, look at the nodes on the same level: no records, 32 was already collected
+ # 10. depth: 10, 41, 32 | ids: 10, 41, 32, 11, 12, 18
+ # 11. Move one level up again and look at the nodes on the same level.
+ # 12. depth: 10, 41 | ids: 10, 41, 32, 11, 12, 18, 72
+ # 13. Move one level up again, we reached the root node, iteration is done.
+ # 14. depth: 10 | ids: 10, 41, 32, 11, 12, 18, 72
+ #
+ # By tracking the currently accessed node and the depth we can stop and restore the processing of
+ # the hierarchy at any point.
+ #
+ # rubocop: enable Style/AsciiComments
+ def build_recursive_query(cursor, of, first_iteration)
+ ids = first_iteration ? cursor[:current_id] : ''
+
+ recursive_cte = Gitlab::SQL::RecursiveCTE.new(:result,
+ union_args: {
+ remove_order: false,
+ remove_duplicates: false
+ })
+
+ recursive_cte << base_namespace_class.select(
+ Arel.sql(cursor[:current_id].to_s).as('current_id'),
+ Arel.sql("ARRAY[#{cursor[:depth].join(',')}]::int[]").as('depth'),
+ Arel.sql("ARRAY[#{ids}]::int[]").as('ids'),
+ Arel.sql('1::bigint AS count'),
+ Arel.sql('0::bigint AS index')
+ ).from('(VALUES (1)) AS initializer_row')
+ .where_exists(namespace_exists_query)
+
+ cte = Gitlab::SQL::CTE.new(:cte, base_namespace_class.select('result.*').from('result'))
+
+ union_query = base_namespace_class.with(cte.to_arel).from_union(
+ walk_down,
+ next_elements,
+ up_one_level,
+ remove_duplicates: false,
+ remove_order: false
+ ).select(*PROJECTIONS).order(base_namespace_class.arel_table[:index].asc).limit(1)
+
+ recursive_cte << union_query
+
+ base_namespace_class.with
+ .recursive(recursive_cte.to_arel)
+ .from(recursive_cte.alias_to(namespace_class.arel_table))
+ .select(*PROJECTIONS)
+ .limit(of + 1)
+ end
+
+ def namespace_exists_query
+ Namespace.where(id: cursor[:current_id])
+ end
+
+ def walk_down
+ lateral_query = namespace_class
+ .select(:id)
+ .where('parent_id = cte.current_id')
+ .order(:id)
+ .limit(1)
+
+ base_namespace_class.select(
+ base_namespace_class.arel_table[:id].as('current_id'),
+ Arel.sql("cte.depth || #{base_namespace_table}.id").as('depth'),
+ Arel.sql("cte.ids || #{base_namespace_table}.id").as('ids'),
+ Arel.sql('cte.count + 1').as('count'),
+ Arel.sql('1::bigint AS index')
+ ).from("cte, LATERAL (#{lateral_query.to_sql}) #{base_namespace_table}")
+ end
+
+ def next_elements
+ lateral_query = namespace_class
+ .select(:id)
+ .where("#{base_namespace_table}.parent_id = cte.depth[array_length(cte.depth, 1) - 1]")
+ .where("#{base_namespace_table}.id > cte.depth[array_length(cte.depth, 1)]")
+ .order(:id)
+ .limit(1)
+
+ base_namespace_class.select(
+ base_namespace_class.arel_table[:id].as('current_id'),
+ Arel.sql("cte.depth[:array_length(cte.depth, 1) - 1] || #{base_namespace_table}.id").as('depth'),
+ Arel.sql("cte.ids || #{base_namespace_table}.id").as('ids'),
+ Arel.sql('cte.count + 1').as('count'),
+ Arel.sql('2::bigint AS index')
+ ).from("cte, LATERAL (#{lateral_query.to_sql}) #{base_namespace_table}")
+ end
+
+ def up_one_level
+ Namespace.select(
+ Arel.sql('cte.current_id').as('current_id'),
+ Arel.sql('cte.depth[:array_length(cte.depth, 1) - 1]').as('depth'),
+ Arel.sql('cte.ids').as('ids'),
+ Arel.sql('cte.count + 1').as('count'),
+ Arel.sql('3::bigint AS index')
+ ).from('cte')
+ .where('cte.depth <> ARRAY[]::int[]')
+ .limit(1)
+ end
+
+ def base_namespace_class
+ Namespace
+ end
+
+ def base_namespace_table
+ Namespace.quoted_table_name
+ end
+
+ def set_cursor!(original_cursor)
+ raise ArgumentError unless original_cursor[:depth].is_a?(Array)
+
+ @cursor = {
+ current_id: Integer(original_cursor[:current_id]),
+ depth: original_cursor[:depth].map { |value| Integer(value) }
+ }
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/database/partitioning/int_range_partition.rb b/lib/gitlab/database/partitioning/int_range_partition.rb
new file mode 100644
index 00000000000..026738a419b
--- /dev/null
+++ b/lib/gitlab/database/partitioning/int_range_partition.rb
@@ -0,0 +1,84 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Database
+ module Partitioning
+ class IntRangePartition
+ include Comparable
+
+ def self.from_sql(table, partition_name, definition)
+ matches = definition.match(/FOR VALUES FROM \('?(?<from>\d+)'?\) TO \('?(?<to>\d+)'?\)/)
+
+ raise ArgumentError, "Unknown partition definition: #{definition}" unless matches
+
+ to = matches[:to].to_i
+ from = matches[:from].to_i
+
+ new(table, from, to, partition_name: partition_name)
+ end
+
+ attr_reader :table, :from, :to
+
+ def initialize(table, from, to, partition_name: nil)
+ @table = table.to_s
+ @from = from
+ @to = to
+ @partition_name = partition_name
+
+ validate!
+ end
+
+ def partition_name
+ @partition_name || "#{table}_#{from}"
+ end
+
+ def to_sql
+ from_sql = conn.quote(from)
+ to_sql = conn.quote(to)
+
+ <<~SQL
+ CREATE TABLE IF NOT EXISTS #{fully_qualified_partition}
+ PARTITION OF #{conn.quote_table_name(table)}
+ FOR VALUES FROM (#{from_sql}) TO (#{to_sql})
+ SQL
+ end
+
+ def ==(other)
+ table == other.table && partition_name == other.partition_name && from == other.from && to == other.to
+ end
+ alias_method :eql?, :==
+
+ def hash
+ [table, partition_name, from, to].hash
+ end
+
+ def <=>(other)
+ return if table != other.table
+
+ [from.to_i, to.to_i] <=> [other.from.to_i, other.to.to_i]
+ end
+
+ def holds_data?
+ conn.execute("SELECT 1 FROM #{fully_qualified_partition} LIMIT 1").ntuples > 0
+ end
+
+ private
+
+ def validate!
+ raise '`to` statement must be greater than 0' unless to.to_i > 0
+ raise '`from` statement must be greater than 0' unless from.to_i > 0
+ raise '`to` must be greater than `from`' unless to.to_i > from.to_i
+ end
+
+ def fully_qualified_partition
+ format("%s.%s", conn.quote_table_name(Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA),
+ conn.quote_table_name(partition_name))
+ end
+
+ def conn
+ @conn ||= Gitlab::Database::SharedModel.connection
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/database/partitioning/int_range_strategy.rb b/lib/gitlab/database/partitioning/int_range_strategy.rb
new file mode 100644
index 00000000000..605a8daa2bf
--- /dev/null
+++ b/lib/gitlab/database/partitioning/int_range_strategy.rb
@@ -0,0 +1,95 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Database
+ module Partitioning
+ class IntRangeStrategy
+ attr_reader :model, :partitioning_key, :partition_size
+
+ # We create this many partitions in the future
+ HEADROOM = 6
+ MIN_ID = 1
+
+ delegate :table_name, to: :model
+
+ def initialize(model, partitioning_key, partition_size:)
+ @model = model
+ @partitioning_key = partitioning_key
+ @partition_size = partition_size
+ end
+
+ def current_partitions
+ int_range_partitions = Gitlab::Database::PostgresPartition.for_parent_table(table_name).map do |partition|
+ IntRangePartition.from_sql(table_name, partition.name, partition.condition)
+ end
+
+ int_range_partitions.sort
+ end
+
+ # Check the currently existing partitions and determine which ones are missing
+ def missing_partitions
+ desired_partitions - current_partitions
+ end
+
+ def extra_partitions
+ []
+ end
+
+ def after_adding_partitions
+ # No-op, required by the partition manager
+ end
+
+ def validate_and_fix
+ # No-op, required by the partition manager
+ end
+
+ private
+
+ def are_last_partitions_empty?(number_of_partitions)
+ partitions = current_partitions.last(number_of_partitions)
+
+ partitions.none?(&:holds_data?)
+ end
+
+ def desired_partitions
+ end_id = are_partitions_syncronized? ? max_id : max_id + (HEADROOM * partition_size) # Adds 6 new partitions
+
+ create_int_range_partitions(MIN_ID, end_id)
+ end
+
+ def create_int_range_partitions(start_id, end_id)
+ partitions = []
+
+ while start_id < end_id
+ partitions << partition_for(lower_bound: start_id, upper_bound: start_id + partition_size,
+ partition_name: partition_name(start_id))
+
+ start_id += partition_size
+ end
+
+ partitions
+ end
+
+ def max_id
+ last_partition&.to || MIN_ID
+ end
+
+ def are_partitions_syncronized?
+ last_partition && current_partitions.size >= HEADROOM && are_last_partitions_empty?(HEADROOM)
+ end
+
+ def partition_name(lower_bound)
+ "#{table_name}_#{lower_bound}"
+ end
+
+ def last_partition
+ current_partitions.last
+ end
+
+ def partition_for(upper_bound:, lower_bound:, partition_name:)
+ IntRangePartition.new(table_name, lower_bound, upper_bound, partition_name: partition_name)
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/database/partitioning/list/convert_table.rb b/lib/gitlab/database/partitioning/list/convert_table.rb
index 9889d01be76..542a7d0a78d 100644
--- a/lib/gitlab/database/partitioning/list/convert_table.rb
+++ b/lib/gitlab/database/partitioning/list/convert_table.rb
@@ -22,7 +22,7 @@ module Gitlab
@table_name = table_name
@parent_table_name = parent_table_name
@partitioning_column = partitioning_column
- @zero_partition_value = zero_partition_value
+ @zero_partition_value = Array.wrap(zero_partition_value)
end
def prepare_for_partitioning(async: false)
@@ -126,10 +126,11 @@ module Gitlab
.check_constraints
.including_column(partitioning_column)
- check_body = "CHECK ((#{partitioning_column} = #{zero_partition_value}))"
+ array_prefix = "CHECK ((#{partitioning_column} = ANY "
+ single_prefix = "CHECK ((#{partitioning_column} = #{zero_partition_value.join(',')}))"
constraints_on_column.find do |constraint|
- constraint.definition.start_with?(check_body)
+ constraint.definition.start_with?(array_prefix, single_prefix)
end
end
@@ -138,14 +139,14 @@ module Gitlab
raise UnableToPartition, <<~MSG
Table #{table_name} is not ready for partitioning.
- Before partitioning, a check constraint must enforce that (#{partitioning_column} = #{zero_partition_value})
+ Before partitioning, a check constraint must enforce that (#{partitioning_column} IN (#{zero_partition_value.join(',')}))
MSG
end
def add_partitioning_check_constraint(async: false)
return validate_partitioning_constraint_synchronously if partitioning_constraint.present?
- check_body = "#{partitioning_column} = #{connection.quote(zero_partition_value)}"
+ check_body = "#{partitioning_column} IN (#{zero_partition_value.join(',')})"
# Any constraint name would work. The constraint is found based on its definition before partitioning
migration_context.add_check_constraint(
table_name, check_body, PARTITIONING_CONSTRAINT_NAME,
@@ -214,7 +215,7 @@ module Gitlab
<<~SQL
ALTER TABLE #{quote_table_name(parent_table_name)}
ATTACH PARTITION #{table_name}
- FOR VALUES IN (#{zero_partition_value})
+ FOR VALUES IN (#{zero_partition_value.join(',')})
SQL
end
diff --git a/lib/gitlab/database/partitioning_migration_helpers.rb b/lib/gitlab/database/partitioning_migration_helpers.rb
index 3196dd20356..daafda8e7be 100644
--- a/lib/gitlab/database/partitioning_migration_helpers.rb
+++ b/lib/gitlab/database/partitioning_migration_helpers.rb
@@ -6,6 +6,7 @@ module Gitlab
include ForeignKeyHelpers
include TableManagementHelpers
include IndexHelpers
+ include UniquenessHelpers
end
end
end
diff --git a/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb b/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb
index b486ddb8e76..d906ad45430 100644
--- a/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb
+++ b/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb
@@ -368,7 +368,7 @@ module Gitlab
end
def make_partitioned_table_name(table)
- tmp_table_name("#{table}_part")
+ tmp_table_name(table)
end
def make_archived_table_name(table)
diff --git a/lib/gitlab/database/partitioning_migration_helpers/uniqueness_helpers.rb b/lib/gitlab/database/partitioning_migration_helpers/uniqueness_helpers.rb
new file mode 100644
index 00000000000..1c33371057e
--- /dev/null
+++ b/lib/gitlab/database/partitioning_migration_helpers/uniqueness_helpers.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Database
+ module PartitioningMigrationHelpers
+ module UniquenessHelpers
+ include Gitlab::Database::MigrationHelpers
+ include Gitlab::Database::SchemaHelpers
+
+ def ensure_unique_id(table_name)
+ function_name = "assign_#{table_name}_id_value"
+ trigger_name = "assign_#{table_name}_id_trigger"
+
+ return if trigger_exists?(table_name, trigger_name)
+
+ change_column_default(table_name, :id, nil)
+
+ create_trigger_function(function_name) do
+ <<~SQL
+ IF NEW."id" IS NOT NULL THEN
+ RAISE WARNING 'Manually assigning ids is not allowed, the value will be ignored';
+ END IF;
+ NEW."id" := nextval('#{existing_sequence(table_name)}'::regclass);
+ RETURN NEW;
+ SQL
+ end
+
+ create_trigger(table_name, trigger_name, function_name, fires: 'BEFORE INSERT')
+ end
+
+ private
+
+ def existing_sequence(table_name)
+ Gitlab::Database::PostgresSequence.by_table_name(table_name).first
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb b/lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb
index fb25cb70e57..f16b6ca2177 100644
--- a/lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb
+++ b/lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb
@@ -86,7 +86,7 @@ module Gitlab
end
return unless self.in_transaction?
- return if in_factory_bot_create?
+ return if Thread.current[:factory_bot_objects] && Thread.current[:factory_bot_objects] > 0
# PgQuery might fail in some cases due to limited nesting:
# https://github.com/pganalyze/pg_query/issues/209
@@ -192,20 +192,6 @@ module Gitlab
def self.in_transaction?
context[:transaction_depth_by_db].values.any?(&:positive?)
end
-
- # We ignore execution in the #create method from FactoryBot
- # because it is not representative of real code we run in
- # production. There are far too many false positives caused
- # by instantiating objects in different `gitlab_schema` in a
- # FactoryBot `create`.
- def self.in_factory_bot_create?
- Rails.env.test? && caller_locations.any? do |l|
- l.path.end_with?('lib/factory_bot/evaluation.rb') && l.label == 'create' ||
- l.path.end_with?('lib/factory_bot/strategy/create.rb') ||
- l.path.end_with?('lib/factory_bot/strategy/build.rb') ||
- l.path.end_with?('shoulda/matchers/active_record/validate_uniqueness_of_matcher.rb') && l.label == 'create_existing_record'
- end
- end
end
end
end
diff --git a/lib/gitlab/database_importers/work_items/base_type_importer.rb b/lib/gitlab/database_importers/work_items/base_type_importer.rb
index 000a1f50a92..6e6080a0543 100644
--- a/lib/gitlab/database_importers/work_items/base_type_importer.rb
+++ b/lib/gitlab/database_importers/work_items/base_type_importer.rb
@@ -22,7 +22,9 @@ module Gitlab
notifications: 'Notifications',
current_user_todos: 'Current user todos',
award_emoji: 'Award emoji',
- linked_items: 'Linked items'
+ linked_items: 'Linked items',
+ color: 'Color',
+ rolledup_dates: 'Rolledup dates'
}.freeze
WIDGETS_FOR_TYPE = {
@@ -126,7 +128,9 @@ module Gitlab
:notifications,
:current_user_todos,
:award_emoji,
- :linked_items
+ :linked_items,
+ :color,
+ :rolledup_dates
],
ticket: [
:assignees,
diff --git a/lib/gitlab/database_importers/work_items/hierarchy_restrictions_importer.rb b/lib/gitlab/database_importers/work_items/hierarchy_restrictions_importer.rb
index 4e3b685c06c..ec0d9c3f36e 100644
--- a/lib/gitlab/database_importers/work_items/hierarchy_restrictions_importer.rb
+++ b/lib/gitlab/database_importers/work_items/hierarchy_restrictions_importer.rb
@@ -66,7 +66,10 @@ module Gitlab
def self.find_or_create_type(name)
type = ::WorkItems::Type.find_by_name_and_namespace_id(name, nil)
- return type if type
+ if type
+ type.clear_reactive_cache!
+ return type
+ end
Gitlab::DatabaseImporters::WorkItems::BaseTypeImporter.upsert_types
::WorkItems::Type.find_by_name_and_namespace_id(name, nil)
diff --git a/lib/gitlab/dependency_linker.rb b/lib/gitlab/dependency_linker.rb
index db60128b979..d4178173e03 100644
--- a/lib/gitlab/dependency_linker.rb
+++ b/lib/gitlab/dependency_linker.rb
@@ -22,11 +22,19 @@ module Gitlab
LINKERS.find { |linker| linker.support?(blob_name) }
end
- def self.link(blob_name, plain_text, highlighted_text)
+ def self.link(blob_name, plain_text, highlighted_text, used_on: :blob)
linker = linker(blob_name)
return highlighted_text unless linker
+ usage_counter.increment(used_on: used_on)
linker.link(plain_text, highlighted_text)
end
+
+ def self.usage_counter
+ Gitlab::Metrics.counter(
+ :dependency_linker_usage,
+ 'The number of times dependency linker is used'
+ )
+ end
end
end
diff --git a/lib/gitlab/dependency_linker/base_linker.rb b/lib/gitlab/dependency_linker/base_linker.rb
index 74bec55253f..2c9b559c8dc 100644
--- a/lib/gitlab/dependency_linker/base_linker.rb
+++ b/lib/gitlab/dependency_linker/base_linker.rb
@@ -31,13 +31,15 @@ module Gitlab
end
def external_url(name, external_ref)
- return if GIT_INVALID_URL_REGEX.match?(external_ref)
+ ref = external_ref.to_s
- case external_ref
+ return if GIT_INVALID_URL_REGEX.match?(ref)
+
+ case ref
when /\A#{URL_REGEX}\z/o
- external_ref
+ ref
when /\A#{REPO_REGEX}\z/o
- github_url(external_ref)
+ github_url(ref)
else
package_url(name)
end
diff --git a/lib/gitlab/diff/file_collection/paginated_merge_request_diff.rb b/lib/gitlab/diff/file_collection/paginated_merge_request_diff.rb
index 37abad81305..77461db7d7d 100644
--- a/lib/gitlab/diff/file_collection/paginated_merge_request_diff.rb
+++ b/lib/gitlab/diff/file_collection/paginated_merge_request_diff.rb
@@ -15,8 +15,8 @@ module Gitlab
delegate :limit_value, :current_page, :next_page, :prev_page, :total_count,
:total_pages, to: :paginated_collection
- def initialize(merge_request_diff, page, per_page)
- super(merge_request_diff, diff_options: nil)
+ def initialize(merge_request_diff, page, per_page, diff_options)
+ super(merge_request_diff, diff_options: diff_options)
@paginated_collection = load_paginated_collection(page, per_page)
end
diff --git a/lib/gitlab/diff/highlight.rb b/lib/gitlab/diff/highlight.rb
index d2524ae1761..39da9c4e7c8 100644
--- a/lib/gitlab/diff/highlight.rb
+++ b/lib/gitlab/diff/highlight.rb
@@ -90,7 +90,8 @@ module Gitlab
rich_line = syntax_highlighter(diff_line).highlight(
diff_line.text(prefix: false),
plain: plain,
- context: { line_number: diff_line.line }
+ context: { line_number: diff_line.line },
+ used_on: :diff
)
# Only update text if line is found. This will prevent
@@ -143,7 +144,7 @@ module Gitlab
blob.load_all_data!
- blob.present.highlight.lines
+ blob.present.highlight(used_on: :diff).lines
end
def blobs_too_large?
diff --git a/lib/gitlab/diff/rendered/notebook/diff_file_helper.rb b/lib/gitlab/diff/rendered/notebook/diff_file_helper.rb
index ad709a79f30..b4b7d572901 100644
--- a/lib/gitlab/diff/rendered/notebook/diff_file_helper.rb
+++ b/lib/gitlab/diff/rendered/notebook/diff_file_helper.rb
@@ -4,7 +4,7 @@ module Gitlab
module Rendered
module Notebook
module DiffFileHelper
- require 'set'
+ require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
EMBEDDED_IMAGE_PATTERN = ' ![](data:image'
diff --git a/lib/gitlab/encoding_helper.rb b/lib/gitlab/encoding_helper.rb
index b080cb197d4..7ad4cf96dd4 100644
--- a/lib/gitlab/encoding_helper.rb
+++ b/lib/gitlab/encoding_helper.rb
@@ -40,7 +40,7 @@ module Gitlab
"--broken encoding: #{encoding}"
end
- def detect_encoding(data, limit: CharlockHolmes::EncodingDetector::DEFAULT_BINARY_SCAN_LEN, cache_key: nil)
+ def detect_encoding(data, limit: CharlockHolmes::EncodingDetector::DEFAULT_BINARY_SCAN_LEN)
return if data.nil?
CharlockHolmes::EncodingDetector.new(limit).detect(data)
@@ -54,8 +54,8 @@ module Gitlab
# EncodingDetector checks the first 1024 * 1024 bytes for NUL byte, libgit2 checks
# only the first 8000 (https://github.com/libgit2/libgit2/blob/2ed855a9e8f9af211e7274021c2264e600c0f86b/src/filter.h#L15),
# which is what we use below to keep a consistent behavior.
- def detect_libgit2_binary?(data, cache_key: nil)
- detect = detect_encoding(data, limit: 8000, cache_key: cache_key)
+ def detect_libgit2_binary?(data)
+ detect = detect_encoding(data, limit: 8000)
detect && detect[:type] == :binary
end
diff --git a/lib/gitlab/error_tracking.rb b/lib/gitlab/error_tracking.rb
index 239aee97378..c66edfdda10 100644
--- a/lib/gitlab/error_tracking.rb
+++ b/lib/gitlab/error_tracking.rb
@@ -158,10 +158,12 @@ module Gitlab
end
def process_exception(exception, extra:, tags: {}, trackers: default_trackers)
- context_payload = Gitlab::ErrorTracking::ContextPayloadGenerator.generate(exception, extra, tags)
+ Gitlab::Utils.allow_within_concurrent_ruby do
+ context_payload = Gitlab::ErrorTracking::ContextPayloadGenerator.generate(exception, extra, tags)
- trackers.each do |tracker|
- tracker.capture_exception(exception, **context_payload)
+ trackers.each do |tracker|
+ tracker.capture_exception(exception, **context_payload)
+ end
end
end
diff --git a/lib/gitlab/error_tracking/processor/sidekiq_processor.rb b/lib/gitlab/error_tracking/processor/sidekiq_processor.rb
index cc8cfd827f1..a0b6318e066 100644
--- a/lib/gitlab/error_tracking/processor/sidekiq_processor.rb
+++ b/lib/gitlab/error_tracking/processor/sidekiq_processor.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
module Gitlab
module ErrorTracking
diff --git a/lib/gitlab/event_store/event.rb b/lib/gitlab/event_store/event.rb
index ba82ae6dd6a..aecb4fd17c3 100644
--- a/lib/gitlab/event_store/event.rb
+++ b/lib/gitlab/event_store/event.rb
@@ -47,7 +47,7 @@ module Gitlab
def validate_schema!
if self.class.json_schema_valid.nil?
- self.class.json_schema_valid = JSONSchemer.schema(self.class.json_schema).valid?(schema)
+ self.class.json_schema_valid = JSONSchemer.schema(Event.json_schema).valid?(schema)
end
return if self.class.json_schema_valid == true
@@ -60,8 +60,12 @@ module Gitlab
raise Gitlab::EventStore::InvalidEvent, "Event data must be a Hash"
end
- unless JSONSchemer.schema(schema).valid?(data.deep_stringify_keys)
- raise Gitlab::EventStore::InvalidEvent, "Data for event #{self.class} does not match the defined schema: #{schema}"
+ errors = JSONSchemer.schema(schema).validate(data.deep_stringify_keys).map do |error|
+ JSONSchemer::Errors.pretty(error)
+ end
+
+ unless errors.empty?
+ raise Gitlab::EventStore::InvalidEvent, "Data for event #{self.class} does not match the defined schema: #{errors.inspect}"
end
end
diff --git a/lib/gitlab/file_detector.rb b/lib/gitlab/file_detector.rb
index b586c4b5892..0a56cde8cad 100644
--- a/lib/gitlab/file_detector.rb
+++ b/lib/gitlab/file_detector.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
module Gitlab
# Module that can be used to detect if a path points to a special file such as
diff --git a/lib/gitlab/git.rb b/lib/gitlab/git.rb
index 8cbd1a4ce72..894811ecd3c 100644
--- a/lib/gitlab/git.rb
+++ b/lib/gitlab/git.rb
@@ -7,7 +7,8 @@ module Gitlab
# The ID of empty tree.
# https://github.com/git/git/blob/3ad8b5bf26362ac67c9020bf8c30eee54a84f56d/cache.h#L1011-L1012
EMPTY_TREE_ID = '4b825dc642cb6eb9a060e54bf8d69288fbee4904'
- BLANK_SHA = ('0' * 40).freeze
+ SHA1_BLANK_SHA = ('0' * 40).freeze
+ SHA256_BLANK_SHA = ('0' * 64).freeze
COMMIT_ID = /\A#{Gitlab::Git::Commit::RAW_FULL_SHA_PATTERN}\z/
TAG_REF_PREFIX = "refs/tags/"
BRANCH_REF_PREFIX = "refs/heads/"
@@ -79,7 +80,7 @@ module Gitlab
end
def blank_ref?(ref)
- ref == BLANK_SHA
+ ref == SHA1_BLANK_SHA
end
def commit_id?(ref)
diff --git a/lib/gitlab/git/blob.rb b/lib/gitlab/git/blob.rb
index aa59caa4268..6bbb0f4b7a0 100644
--- a/lib/gitlab/git/blob.rb
+++ b/lib/gitlab/git/blob.rb
@@ -110,8 +110,8 @@ module Gitlab
end
end
- def binary?(data, cache_key: nil)
- EncodingHelper.detect_libgit2_binary?(data, cache_key: cache_key)
+ def binary?(data)
+ EncodingHelper.detect_libgit2_binary?(data)
end
def size_could_be_lfs?(size)
diff --git a/lib/gitlab/git/changed_path.rb b/lib/gitlab/git/changed_path.rb
index 033779466f6..11fc7f5bb66 100644
--- a/lib/gitlab/git/changed_path.rb
+++ b/lib/gitlab/git/changed_path.rb
@@ -3,16 +3,28 @@
module Gitlab
module Git
class ChangedPath
- attr_reader :status, :path
+ attr_reader :status, :path, :old_mode, :new_mode
- def initialize(status:, path:)
+ def initialize(status:, path:, old_mode:, new_mode:)
@status = status
@path = path
+ @old_mode = old_mode
+ @new_mode = new_mode
end
def new_file?
status == :ADDED
end
+
+ def submodule_change?
+ # The file mode 160000 represents a "Gitlink" or a git submodule.
+ # The first two digits can be used to distinguish it from regular files.
+ #
+ # 160000 -> 16 -> gitlink
+ # 100644 -> 10 -> regular file
+
+ [old_mode, new_mode].any? { |mode| mode.starts_with?('16') }
+ end
end
end
end
diff --git a/lib/gitlab/git/compare.rb b/lib/gitlab/git/compare.rb
index c6d678c9432..1c60345aea9 100644
--- a/lib/gitlab/git/compare.rb
+++ b/lib/gitlab/git/compare.rb
@@ -48,9 +48,8 @@ module Gitlab
changed_paths = @repository
.find_changed_paths([Gitlab::Git::DiffTree.new(@base.id, @head.id)])
- .map(&:path)
- @repository.detect_generated_files(@base.id, changed_paths)
+ @repository.detect_generated_files(@base.id, @head.id, changed_paths)
end
end
end
diff --git a/lib/gitlab/git/diff.rb b/lib/gitlab/git/diff.rb
index e753d356bc6..a8e680e539b 100644
--- a/lib/gitlab/git/diff.rb
+++ b/lib/gitlab/git/diff.rb
@@ -299,9 +299,9 @@ module Gitlab
@old_path = encode!(gitaly_diff.from_path.dup)
@a_mode = gitaly_diff.old_mode.to_s(8)
@b_mode = gitaly_diff.new_mode.to_s(8)
- @new_file = gitaly_diff.from_id == BLANK_SHA
+ @new_file = gitaly_diff.from_id == SHA1_BLANK_SHA
@renamed_file = gitaly_diff.from_path != gitaly_diff.to_path
- @deleted_file = gitaly_diff.to_id == BLANK_SHA
+ @deleted_file = gitaly_diff.to_id == SHA1_BLANK_SHA
@too_large = gitaly_diff.too_large if gitaly_diff.respond_to?(:too_large)
gitaly_overflow = gitaly_diff.try(:overflow_marker)
@overflow = Diff.collect_patch_overage? && gitaly_overflow
diff --git a/lib/gitlab/git/push.rb b/lib/gitlab/git/push.rb
index 3d533a5185f..fc10b93991c 100644
--- a/lib/gitlab/git/push.rb
+++ b/lib/gitlab/git/push.rb
@@ -9,8 +9,8 @@ module Gitlab
def initialize(project, oldrev, newrev, ref)
@project = project
- @oldrev = oldrev.presence || Gitlab::Git::BLANK_SHA
- @newrev = newrev.presence || Gitlab::Git::BLANK_SHA
+ @oldrev = oldrev.presence || Gitlab::Git::SHA1_BLANK_SHA
+ @newrev = newrev.presence || Gitlab::Git::SHA1_BLANK_SHA
@ref = ref
end
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 312e05b5f54..1bf796e167d 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -398,7 +398,7 @@ module Gitlab
end
def new_blobs(newrevs, dynamic_timeout: nil)
- newrevs = Array.wrap(newrevs).reject { |rev| rev.blank? || rev == ::Gitlab::Git::BLANK_SHA }
+ newrevs = Array.wrap(newrevs).reject { |rev| rev.blank? || rev == ::Gitlab::Git::SHA1_BLANK_SHA }
return [] if newrevs.empty?
newrevs = newrevs.uniq.sort
@@ -416,7 +416,7 @@ module Gitlab
# GitalyClient.medium_timeout and dynamic timeout if the dynamic
# timeout is set, otherwise it'll always use the medium timeout.
def blobs(revisions, with_paths: false, dynamic_timeout: nil)
- revisions = revisions.reject { |rev| rev.blank? || rev == ::Gitlab::Git::BLANK_SHA }
+ revisions = revisions.reject { |rev| rev.blank? || rev == ::Gitlab::Git::SHA1_BLANK_SHA }
return [] if revisions.blank?
@@ -458,7 +458,7 @@ module Gitlab
@raw_changes_between[[old_rev, new_rev]] ||=
begin
- return [] if new_rev.blank? || new_rev == Gitlab::Git::BLANK_SHA
+ return [] if new_rev.blank? || new_rev == Gitlab::Git::SHA1_BLANK_SHA
wrapped_gitaly_errors do
gitaly_repository_client.raw_changes_between(old_rev, new_rev)
@@ -752,7 +752,7 @@ module Gitlab
# new_sha
# reference:
#
- # When new_sha is Gitlab::Git::BLANK_SHA, then this will be deleted
+ # When new_sha is Gitlab::Git::SHA1_BLANK_SHA, then this will be deleted
def update_refs(ref_list)
wrapped_gitaly_errors do
gitaly_ref_client.update_refs(ref_list: ref_list) if ref_list.any?
@@ -1089,6 +1089,10 @@ module Gitlab
@praefect_info_client ||= Gitlab::GitalyClient::PraefectInfoService.new(self)
end
+ def gitaly_analysis_client
+ @gitaly_analysis_client ||= Gitlab::GitalyClient::AnalysisService.new(self)
+ end
+
def branch_names_contains_sha(sha, limit: 0)
gitaly_ref_client.branch_names_contains_sha(sha, limit: limit)
end
@@ -1202,6 +1206,12 @@ module Gitlab
end
end
+ def object_format
+ wrapped_gitaly_errors do
+ gitaly_repository_client.object_format.format
+ end
+ end
+
def get_file_attributes(revision, file_paths, attributes)
wrapped_gitaly_errors do
gitaly_repository_client
@@ -1211,24 +1221,49 @@ module Gitlab
end
end
- def object_format
- wrapped_gitaly_errors do
- gitaly_repository_client.object_format.format
- end
- end
-
# rubocop: disable CodeReuse/ActiveRecord -- not an active record operation
- def detect_generated_files(revision, paths)
- return Set.new if paths.blank?
-
- get_file_attributes(revision, paths, Gitlab::Git::ATTRIBUTE_OVERRIDES[:generated])
+ def detect_generated_files(base, head, changed_paths)
+ return Set.new if changed_paths.blank?
+
+ # Check .gitattributes overrides first
+ checked_files = get_file_attributes(
+ base,
+ changed_paths.map(&:path),
+ Gitlab::Git::ATTRIBUTE_OVERRIDES[:generated]
+ ).map { |attrs| { path: attrs[:path], generated: attrs[:value] == "set" } }
+
+ # Check automatic generated file detection for the remaining paths
+ overridden_paths = checked_files.pluck(:path)
+ remainder = changed_paths.reject { |changed_path| overridden_paths.include?(changed_path.path) }
+ checked_files += check_blobs_generated(base, head, remainder) if remainder.present?
+
+ checked_files
+ .select { |attrs| attrs[:generated] }
.pluck(:path)
.to_set
+
+ rescue Gitlab::Git::CommandError => e
+ # An exception can be raised due to an unknown revision or paths.
+ Gitlab::ErrorTracking.track_exception(
+ e,
+ gl_project_path: @gl_project_path,
+ base: base,
+ head: head,
+ paths: changed_paths.map(&:path)
+ )
+
+ Set.new
end
# rubocop: enable CodeReuse/ActiveRecord
private
+ def check_blobs_generated(base, head, changed_paths)
+ wrapped_gitaly_errors do
+ gitaly_analysis_client.check_blobs_generated(base, head, changed_paths)
+ end
+ end
+
def repository_info_size_megabytes
bytes = gitaly_repository_client.repository_info.size
diff --git a/lib/gitlab/git/tree.rb b/lib/gitlab/git/tree.rb
index 4747ab55c63..6365ac941de 100644
--- a/lib/gitlab/git/tree.rb
+++ b/lib/gitlab/git/tree.rb
@@ -12,15 +12,17 @@ module Gitlab
class << self
# Get list of tree objects
# for repository based on commit sha and path
- def where(
- repository, sha, path = nil, recursive = false, skip_flat_paths = true, rescue_not_found = true,
- pagination_params = nil)
+ def tree_entries(
+ repository:,
+ sha:,
+ path: nil,
+ recursive: false,
+ skip_flat_paths: true,
+ rescue_not_found: true,
+ pagination_params: nil
+ )
path = nil if path == '' || path == '/'
- tree_entries(repository, sha, path, recursive, skip_flat_paths, rescue_not_found, pagination_params)
- end
-
- def tree_entries(repository, sha, path, recursive, skip_flat_paths, rescue_not_found, pagination_params = nil)
wrapped_gitaly_errors do
repository.gitaly_commit_client.tree_entries(
repository, sha, path, recursive, skip_flat_paths, pagination_params)
diff --git a/lib/gitlab/gitaly_client/analysis_service.rb b/lib/gitlab/gitaly_client/analysis_service.rb
new file mode 100644
index 00000000000..9e8e6474a20
--- /dev/null
+++ b/lib/gitlab/gitaly_client/analysis_service.rb
@@ -0,0 +1,67 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module GitalyClient
+ class AnalysisService
+ include Gitlab::EncodingHelper
+ include WithFeatureFlagActors
+
+ def initialize(repository)
+ @repository = repository
+ @gitaly_repo = repository.gitaly_repository
+ @storage = repository.storage
+
+ self.repository_actor = repository
+ end
+
+ def check_blobs_generated(base, head, changed_paths)
+ request_enum = Enumerator.new do |y|
+ changed_paths.each_slice(100).with_index do |paths_subset, i|
+ blobs = paths_subset.filter_map do |changed_path|
+ # Submodule changes should be ignored as the blob won't exist
+ next if changed_path.submodule_change?
+
+ # The Blob won't exist in the base if the file is newly added.
+ # We can use the head to get the blob to handle both added or deleted files.
+ prefix = changed_path.new_file? ? head : base
+ revision = "#{prefix}:#{changed_path.path}"
+
+ Gitaly::CheckBlobsGeneratedRequest::Blob.new(
+ revision: encode_binary(revision),
+ path: encode_binary(changed_path.path)
+ )
+ end
+
+ next if blobs.blank?
+
+ params = { blobs: blobs }
+ # Repository is only needed for the first request
+ params[:repository] = @gitaly_repo if i == 0
+
+ y.yield Gitaly::CheckBlobsGeneratedRequest.new(**params)
+ end
+ end
+
+ return [] if request_enum.count == 0
+
+ response = gitaly_client_call(
+ @repository.storage,
+ :analysis_service,
+ :check_blobs_generated,
+ request_enum,
+ timeout: GitalyClient.medium_timeout
+ )
+
+ result = []
+ response.each do |msg|
+ msg.blobs.each do |blob|
+ path = blob.revision.split(":", 2).last
+ result << { path: path, generated: blob.generated }
+ end
+ end
+
+ result
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/gitaly_client/blobs_stitcher.rb b/lib/gitlab/gitaly_client/blobs_stitcher.rb
index 6c51b4cf8c6..95053207d1a 100644
--- a/lib/gitlab/gitaly_client/blobs_stitcher.rb
+++ b/lib/gitlab/gitaly_client/blobs_stitcher.rb
@@ -41,7 +41,7 @@ module Gitlab
size: blob_data[:size],
commit_id: blob_data[:revision],
data: data,
- binary: Gitlab::Git::Blob.binary?(data, cache_key: blob_data[:oid])
+ binary: Gitlab::Git::Blob.binary?(data)
)
end
end
diff --git a/lib/gitlab/gitaly_client/commit_service.rb b/lib/gitlab/gitaly_client/commit_service.rb
index 3949e8e6416..658801cdedb 100644
--- a/lib/gitlab/gitaly_client/commit_service.rb
+++ b/lib/gitlab/gitaly_client/commit_service.rb
@@ -284,7 +284,9 @@ module Gitlab
msg.paths.map do |path|
Gitlab::Git::ChangedPath.new(
status: path.status,
- path: EncodingHelper.encode!(path.path)
+ path: EncodingHelper.encode!(path.path),
+ old_mode: path.old_mode.to_s(8),
+ new_mode: path.new_mode.to_s(8)
)
end
end
diff --git a/lib/gitlab/github_gists_import/importer/gists_importer.rb b/lib/gitlab/github_gists_import/importer/gists_importer.rb
index 08744dbaf5f..4ed6b2db5f8 100644
--- a/lib/gitlab/github_gists_import/importer/gists_importer.rb
+++ b/lib/gitlab/github_gists_import/importer/gists_importer.rb
@@ -39,7 +39,7 @@ module Gitlab
end
def fetch_gists_to_import
- page_counter = Gitlab::GithubImport::PageCounter.new(user, :gists, 'github-gists-importer')
+ page_counter = Gitlab::Import::PageCounter.new(user, :gists, 'github-gists-importer')
collection = []
client.each_page(:gists, nil, page: page_counter.current) do |page|
diff --git a/lib/gitlab/github_import/attachments_downloader.rb b/lib/gitlab/github_import/attachments_downloader.rb
index df9c6c8342d..e9192b97506 100644
--- a/lib/gitlab/github_import/attachments_downloader.rb
+++ b/lib/gitlab/github_import/attachments_downloader.rb
@@ -11,7 +11,7 @@ module Gitlab
UnsupportedAttachmentError = Class.new(StandardError)
FILENAME_SIZE_LIMIT = 255 # chars before the extension
- DEFAULT_FILE_SIZE_LIMIT = 25.megabytes
+ DEFAULT_FILE_SIZE_LIMIT = Gitlab::CurrentSettings.max_attachment_size.megabytes
TMP_DIR = File.join(Dir.tmpdir, 'github_attachments').freeze
attr_reader :file_url, :filename, :file_size_limit, :options
@@ -26,7 +26,6 @@ module Gitlab
end
def perform
- validate_content_length
validate_filepath
download_url = get_assets_download_redirection_url
@@ -46,11 +45,6 @@ module Gitlab
raise DownloadError, message
end
- def response_headers
- @response_headers ||=
- Gitlab::HTTP.perform_request(Net::HTTP::Head, file_url, {}).headers
- end
-
# Github /assets redirection link will redirect to aws which has its own authorization.
# Keeping our bearer token will cause request rejection
# eg. Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter,
@@ -78,7 +72,19 @@ module Gitlab
def download_from(url)
file = File.open(filepath, 'wb')
- Gitlab::HTTP.perform_request(Net::HTTP::Get, url, stream_body: true) { |batch| file.write(batch) }
+
+ Gitlab::HTTP.perform_request(Net::HTTP::Get, url, stream_body: true) do |chunk|
+ next if [301, 302, 303, 307, 308].include?(chunk.code)
+
+ raise DownloadError, "Error downloading file from #{url}. Error code: #{chunk.code}" if chunk.code != 200
+
+ file.write(chunk)
+ validate_size!(file.size)
+ rescue Gitlab::GithubImport::AttachmentsDownloader::DownloadError
+ delete
+ raise
+ end
+
file
end
diff --git a/lib/gitlab/github_import/events_cache.rb b/lib/gitlab/github_import/events_cache.rb
new file mode 100644
index 00000000000..0986ccfaed1
--- /dev/null
+++ b/lib/gitlab/github_import/events_cache.rb
@@ -0,0 +1,61 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module GithubImport
+ class EventsCache
+ MAX_NUMBER_OF_EVENTS = 100
+ MAX_EVENT_SIZE = 100.kilobytes
+
+ def initialize(project)
+ @project = project
+ end
+
+ # Add issue event as JSON to the cache
+ #
+ # @param record [ActiveRecord::Model] Model that responds to :iid
+ # @param event [GitLab::GitHubImport::Representation::IssueEvent]
+ def add(record, issue_event)
+ json = issue_event.to_hash.to_json
+
+ if json.bytesize > MAX_EVENT_SIZE
+ Logger.warn(
+ message: 'Event too large to cache',
+ project_id: project.id,
+ github_identifiers: issue_event.github_identifiers
+ )
+
+ return
+ end
+
+ Gitlab::Cache::Import::Caching.list_add(events_cache_key(record), json, limit: MAX_NUMBER_OF_EVENTS)
+ end
+
+ # Reads issue events from cache
+ #
+ # @param record [ActiveRecord::Model] Model that responds to :iid
+ # @retun [Array<GitLab::GitHubImport::Representation::IssueEvent>] List of issue events
+ def events(record)
+ events = Gitlab::Cache::Import::Caching.values_from_list(events_cache_key(record)).map do |event|
+ Representation::IssueEvent.from_json_hash(Gitlab::Json.parse(event))
+ end
+
+ events.sort_by(&:created_at)
+ end
+
+ # Deletes the cache
+ #
+ # @param record [ActiveRecord::Model] Model that responds to :iid
+ def delete(record)
+ Gitlab::Cache::Import::Caching.del(events_cache_key(record))
+ end
+
+ private
+
+ attr_reader :project
+
+ def events_cache_key(record)
+ "github-importer/events/#{project.id}/#{record.class.name}/#{record.iid}"
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/github_import/importer/attachments/base_importer.rb b/lib/gitlab/github_import/importer/attachments/base_importer.rb
index eaff99aed43..844008f8087 100644
--- a/lib/gitlab/github_import/importer/attachments/base_importer.rb
+++ b/lib/gitlab/github_import/importer/attachments/base_importer.rb
@@ -16,9 +16,11 @@ module Gitlab
batch.each do |record|
next if already_imported?(record)
- Gitlab::GithubImport::ObjectCounter.increment(project, object_type, :fetched)
+ if has_attachments?(record)
+ Gitlab::GithubImport::ObjectCounter.increment(project, object_type, :fetched)
- yield record
+ yield record
+ end
# We mark the object as imported immediately so we don't end up
# scheduling it multiple times.
@@ -48,6 +50,12 @@ module Gitlab
def object_representation(object)
representation_class.from_db_record(object)
end
+
+ def has_attachments?(object)
+ return true if Feature.disabled?(:github_importer_attachments, project, type: :gitlab_com_derisk)
+
+ object_representation(object).has_attachments?
+ end
end
end
end
diff --git a/lib/gitlab/github_import/importer/events/base_importer.rb b/lib/gitlab/github_import/importer/events/base_importer.rb
index 8218acf2bfb..1ebafec5afc 100644
--- a/lib/gitlab/github_import/importer/events/base_importer.rb
+++ b/lib/gitlab/github_import/importer/events/base_importer.rb
@@ -10,6 +10,7 @@ module Gitlab
# client - An instance of `Gitlab::GithubImport::Client`.
def initialize(project, client)
@project = project
+ @client = client
@user_finder = UserFinder.new(project, client)
end
@@ -20,7 +21,7 @@ module Gitlab
private
- attr_reader :project, :user_finder
+ attr_reader :project, :user_finder, :client
def author_id(issue_event, author_key: :actor)
user_finder.author_id_for(issue_event, author_key: author_key).first
@@ -42,6 +43,10 @@ module Gitlab
belongs_to_key = merge_request_event?(issue_event) ? :merge_request_id : :issue_id
{ belongs_to_key => issuable_db_id(issue_event) }
end
+
+ def import_settings
+ @import_settings ||= Gitlab::GithubImport::Settings.new(project)
+ end
end
end
end
diff --git a/lib/gitlab/github_import/importer/events/commented.rb b/lib/gitlab/github_import/importer/events/commented.rb
new file mode 100644
index 00000000000..c9ebc31fa06
--- /dev/null
+++ b/lib/gitlab/github_import/importer/events/commented.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module GithubImport
+ module Importer
+ module Events
+ class Commented < BaseImporter
+ def execute(issue_event)
+ return true unless import_settings.extended_events?
+
+ note = Representation::Note.from_json_hash(
+ noteable_id: issue_event.issuable_id,
+ noteable_type: issue_event.issuable_type,
+ author: issue_event.actor&.to_hash,
+ note: issue_event.body,
+ created_at: issue_event.created_at,
+ updated_at: issue_event.updated_at,
+ note_id: issue_event.id
+ )
+
+ NoteImporter.new(note, project, client).execute
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/github_import/importer/events/merged.rb b/lib/gitlab/github_import/importer/events/merged.rb
index 6189fa8f429..702ea7f1fd5 100644
--- a/lib/gitlab/github_import/importer/events/merged.rb
+++ b/lib/gitlab/github_import/importer/events/merged.rb
@@ -6,6 +6,8 @@ module Gitlab
module Events
class Merged < BaseImporter
def execute(issue_event)
+ create_note(issue_event) if import_settings.extended_events?
+
create_event(issue_event)
create_state_event(issue_event)
end
@@ -37,6 +39,17 @@ module Gitlab
ResourceStateEvent.create!(attrs)
end
+
+ def create_note(issue_event)
+ pull_request = Representation::PullRequest.from_json_hash({
+ merged_by: issue_event.actor&.to_hash,
+ merged_at: issue_event.created_at,
+ iid: issue_event.issuable_id,
+ state: :closed
+ })
+
+ PullRequests::MergedByImporter.new(pull_request, project, client).execute
+ end
end
end
end
diff --git a/lib/gitlab/github_import/importer/events/reviewed.rb b/lib/gitlab/github_import/importer/events/reviewed.rb
new file mode 100644
index 00000000000..1c0e8a9e6e8
--- /dev/null
+++ b/lib/gitlab/github_import/importer/events/reviewed.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module GithubImport
+ module Importer
+ module Events
+ class Reviewed < BaseImporter
+ def execute(issue_event)
+ return true unless import_settings.extended_events?
+
+ review = Representation::PullRequestReview.new(
+ merge_request_iid: issue_event.issuable_id,
+ author: issue_event.actor&.to_hash,
+ note: issue_event.body.to_s,
+ review_type: issue_event.state.upcase, # On timeline API, the state is in lower case
+ submitted_at: issue_event.submitted_at,
+ review_id: issue_event.id
+ )
+
+ PullRequests::ReviewImporter.new(review, project, client).execute({ add_reviewer: false })
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/github_import/importer/issue_event_importer.rb b/lib/gitlab/github_import/importer/issue_event_importer.rb
index d20482eca6f..9f15e9a25d8 100644
--- a/lib/gitlab/github_import/importer/issue_event_importer.rb
+++ b/lib/gitlab/github_import/importer/issue_event_importer.rb
@@ -22,6 +22,17 @@ module Gitlab
unlabeled
].freeze
+ EXTENDED_SUPPORTED_EVENTS = SUPPORTED_EVENTS + %w[
+ commented
+ reviewed
+ ].freeze
+
+ EVENT_COUNTER_MAP = {
+ 'commented' => 'note',
+ 'reviewed' => 'pull_request_review',
+ 'merged' => 'pull_request_merged_by'
+ }.freeze
+
# issue_event - An instance of `Gitlab::GithubImport::Representation::IssueEvent`.
# project - An instance of `Project`.
# client - An instance of `Gitlab::GithubImport::Client`.
@@ -65,6 +76,10 @@ module Gitlab
Gitlab::GithubImport::Importer::Events::ChangedReviewer
when 'merged'
Gitlab::GithubImport::Importer::Events::Merged
+ when 'commented'
+ Gitlab::GithubImport::Importer::Events::Commented
+ when 'reviewed'
+ Gitlab::GithubImport::Importer::Events::Reviewed
end
end
end
diff --git a/lib/gitlab/github_import/importer/note_attachments_importer.rb b/lib/gitlab/github_import/importer/note_attachments_importer.rb
index 26472b0d468..36a256bbef5 100644
--- a/lib/gitlab/github_import/importer/note_attachments_importer.rb
+++ b/lib/gitlab/github_import/importer/note_attachments_importer.rb
@@ -16,10 +16,9 @@ module Gitlab
end
def execute
- attachments = MarkdownText.fetch_attachments(note_text.text)
- return if attachments.blank?
+ return unless note_text.has_attachments?
- new_text = attachments.reduce(note_text.text) do |text, attachment|
+ new_text = note_text.attachments.reduce(note_text.text) do |text, attachment|
new_url = gitlab_attachment_link(attachment)
text.gsub(attachment.url, new_url)
end
diff --git a/lib/gitlab/github_import/importer/pull_requests/review_importer.rb b/lib/gitlab/github_import/importer/pull_requests/review_importer.rb
index 6df130eb6e8..384880651ef 100644
--- a/lib/gitlab/github_import/importer/pull_requests/review_importer.rb
+++ b/lib/gitlab/github_import/importer/pull_requests/review_importer.rb
@@ -14,10 +14,12 @@ module Gitlab
@review = review
@project = project
@client = client
- @merge_request = project.merge_requests.find_by_id(review.merge_request_id)
+ @merge_request = project.merge_requests.find_by_iid(review.merge_request_iid)
end
- def execute
+ def execute(options = {})
+ options = { add_reviewer: true }.merge(options)
+
user_finder = GithubImport::UserFinder.new(project, client)
gitlab_user_id = user_finder.user_id_for(review.author)
@@ -25,7 +27,7 @@ module Gitlab
if gitlab_user_id
add_review_note!(gitlab_user_id)
add_approval!(gitlab_user_id)
- add_reviewer!(gitlab_user_id)
+ add_reviewer!(gitlab_user_id) if options[:add_reviewer]
else
add_complementary_review_note!(project.creator_id)
end
diff --git a/lib/gitlab/github_import/importer/pull_requests/reviews_importer.rb b/lib/gitlab/github_import/importer/pull_requests/reviews_importer.rb
index 347423b0e21..62c9e6469d7 100644
--- a/lib/gitlab/github_import/importer/pull_requests/reviews_importer.rb
+++ b/lib/gitlab/github_import/importer/pull_requests/reviews_importer.rb
@@ -72,7 +72,7 @@ module Gitlab
merge_requests_to_import.find_each do |merge_request|
# The page counter needs to be scoped by merge request to avoid skipping
# pages of reviews from already imported merge requests.
- page_counter = PageCounter.new(project, page_counter_id(merge_request))
+ page_counter = Gitlab::Import::PageCounter.new(project, page_counter_id(merge_request))
repo = project.import_source
options = collection_options.merge(page: page_counter.current)
diff --git a/lib/gitlab/github_import/importer/replay_events_importer.rb b/lib/gitlab/github_import/importer/replay_events_importer.rb
new file mode 100644
index 00000000000..83578cf7672
--- /dev/null
+++ b/lib/gitlab/github_import/importer/replay_events_importer.rb
@@ -0,0 +1,60 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module GithubImport
+ module Importer
+ class ReplayEventsImporter
+ SUPPORTED_EVENTS = %w[review_request_removed review_requested].freeze
+
+ # replay_event - An instance of `Gitlab::GithubImport::Representation::ReplayEvent`.
+ # project - An instance of `Project`
+ # client - An instance of `Gitlab::GithubImport::Client`
+ def initialize(replay_event, project, client)
+ @project = project
+ @client = client
+ @replay_event = replay_event
+ end
+
+ def execute
+ association = case replay_event.issuable_type
+ when 'MergeRequest'
+ project.merge_requests.find_by_iid(replay_event.issuable_iid)
+ end
+
+ return unless association
+
+ events_cache = EventsCache.new(project)
+
+ handle_review_requests(association, events_cache.events(association))
+
+ events_cache.delete(association)
+ end
+
+ private
+
+ attr_reader :project, :client, :replay_event
+
+ def handle_review_requests(association, events)
+ reviewers = {}
+
+ events.each do |event|
+ case event.event
+ when 'review_requested'
+ reviewers[event.requested_reviewer.login] = event.requested_reviewer.to_hash if event.requested_reviewer
+ when 'review_request_removed'
+ reviewers[event.requested_reviewer.login] = nil if event.requested_reviewer
+ end
+ end
+
+ representation = Representation::PullRequests::ReviewRequests.from_json_hash(
+ merge_request_id: association.id,
+ merge_request_iid: association.iid,
+ users: reviewers.values.compact
+ )
+
+ Importer::PullRequests::ReviewRequestImporter.new(representation, project, client).execute
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer.rb b/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer.rb
index d7fa098a775..126a0b8fa4a 100644
--- a/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer.rb
+++ b/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer.rb
@@ -30,9 +30,11 @@ module Gitlab
compose_associated_id!(parent_record, associated)
- return if already_imported?(associated) || importer_class::SUPPORTED_EVENTS.exclude?(associated[:event])
+ return if already_imported?(associated) || supported_events.exclude?(associated[:event])
- Gitlab::GithubImport::ObjectCounter.increment(project, object_type, :fetched)
+ cache_event(parent_record, associated)
+
+ increment_object_counter(associated[:event])
pull_request = parent_record.is_a? MergeRequest
associated[:issue] = { number: parent_record.iid, pull_request: pull_request }
@@ -64,6 +66,12 @@ module Gitlab
:issue_event
end
+ def increment_object_counter(event_name)
+ counter_type = importer_class::EVENT_COUNTER_MAP[event_name] if import_settings.extended_events?
+ counter_type ||= object_type
+ Gitlab::GithubImport::ObjectCounter.increment(project, counter_type, :fetched)
+ end
+
def collection_method
:issue_timeline
end
@@ -98,6 +106,43 @@ module Gitlab
event[:id] = "cross-reference##{issuable.iid}-in-#{event.dig(:source, :issue, :id)}"
end
+
+ def import_settings
+ @import_settings ||= Gitlab::GithubImport::Settings.new(project)
+ end
+
+ def after_batch_processed(parent)
+ return unless import_settings.extended_events?
+
+ events = events_cache.events(parent)
+
+ return if events.empty?
+
+ hash = Representation::ReplayEvent.new(issuable_type: parent.class.name.to_s, issuable_iid: parent.iid)
+ .to_hash.deep_stringify_keys
+ ReplayEventsWorker.perform_async(project.id, hash, job_waiter.key.to_s)
+ job_waiter.jobs_remaining = Gitlab::Cache::Import::Caching.increment(job_waiter_remaining_cache_key)
+ end
+
+ def supported_events
+ return importer_class::EXTENDED_SUPPORTED_EVENTS if import_settings.extended_events?
+
+ importer_class::SUPPORTED_EVENTS
+ end
+
+ def cache_event(parent_record, associated)
+ return unless import_settings.extended_events?
+
+ return if Importer::ReplayEventsImporter::SUPPORTED_EVENTS.exclude?(associated[:event])
+
+ representation = representation_class.from_api_response(associated)
+
+ events_cache.add(parent_record, representation)
+ end
+
+ def events_cache
+ @events_cache ||= EventsCache.new(project)
+ end
end
end
end
diff --git a/lib/gitlab/github_import/job_delay_calculator.rb b/lib/gitlab/github_import/job_delay_calculator.rb
index 50cad1aae19..a456e198afd 100644
--- a/lib/gitlab/github_import/job_delay_calculator.rb
+++ b/lib/gitlab/github_import/job_delay_calculator.rb
@@ -15,9 +15,9 @@ module Gitlab
private
def calculate_job_delay(job_index)
- multiplier = (job_index / parallel_import_batch[:size])
+ multiplier = (job_index / parallel_import_batch[:size].to_f)
- (multiplier * parallel_import_batch[:delay]).to_i + 1
+ (multiplier * parallel_import_batch[:delay]) + 1
end
end
end
diff --git a/lib/gitlab/github_import/markdown_text.rb b/lib/gitlab/github_import/markdown_text.rb
index 8e9d6d8dd50..5880aa04358 100644
--- a/lib/gitlab/github_import/markdown_text.rb
+++ b/lib/gitlab/github_import/markdown_text.rb
@@ -41,6 +41,8 @@ module Gitlab
def fetch_attachments(text)
attachments = []
+ return attachments if text.nil?
+
doc = CommonMarker.render_doc(text)
doc.walk do |node|
diff --git a/lib/gitlab/github_import/parallel_scheduling.rb b/lib/gitlab/github_import/parallel_scheduling.rb
index ce93b5203df..2286dcf767f 100644
--- a/lib/gitlab/github_import/parallel_scheduling.rb
+++ b/lib/gitlab/github_import/parallel_scheduling.rb
@@ -8,6 +8,8 @@ module Gitlab
attr_reader :project, :client, :page_counter, :already_imported_cache_key,
:job_waiter_cache_key, :job_waiter_remaining_cache_key
+ attr_accessor :job_started_at, :enqueued_job_counter
+
# The base cache key to use for tracking already imported objects.
ALREADY_IMPORTED_CACHE_KEY =
'github-importer/already-imported/%{project}/%{collection}'
@@ -25,7 +27,7 @@ module Gitlab
@project = project
@client = client
@parallel = parallel
- @page_counter = PageCounter.new(project, collection_method)
+ @page_counter = Gitlab::Import::PageCounter.new(project, collection_method)
@already_imported_cache_key = format(ALREADY_IMPORTED_CACHE_KEY, project: project.id,
collection: collection_method)
@job_waiter_cache_key = format(JOB_WAITER_CACHE_KEY, project: project.id, collection: collection_method)
@@ -91,14 +93,15 @@ module Gitlab
end
def spread_parallel_import
- enqueued_job_counter = 0
+ self.job_started_at = Time.current
+ self.enqueued_job_counter = 0
each_object_to_import do |object|
repr = object_representation(object)
- job_delay = calculate_job_delay(enqueued_job_counter)
sidekiq_worker_class.perform_in(job_delay, project.id, repr.to_hash.deep_stringify_keys, job_waiter.key.to_s)
- enqueued_job_counter += 1
+
+ self.enqueued_job_counter += 1
job_waiter.jobs_remaining = Gitlab::Cache::Import::Caching.increment(job_waiter_remaining_cache_key)
end
@@ -246,6 +249,14 @@ module Gitlab
JobWaiter.new(jobs_remaining, key)
end
end
+
+ def job_delay
+ runtime = Time.current - job_started_at
+
+ delay = calculate_job_delay(enqueued_job_counter) - runtime
+
+ delay > 0 ? delay : 1.0.second
+ end
end
end
end
diff --git a/lib/gitlab/github_import/representation/issue_event.rb b/lib/gitlab/github_import/representation/issue_event.rb
index 30608112f85..fc3bc5a48ef 100644
--- a/lib/gitlab/github_import/representation/issue_event.rb
+++ b/lib/gitlab/github_import/representation/issue_event.rb
@@ -8,7 +8,8 @@ module Gitlab
expose_attribute :id, :actor, :event, :commit_id, :label_title, :old_title, :new_title,
:milestone_title, :issue, :source, :assignee, :review_requester,
- :requested_reviewer, :created_at
+ :requested_reviewer, :created_at, :updated_at, :submitted_at,
+ :state, :body
# attributes - A Hash containing the event details. The keys of this
# Hash (and any nested hashes) must be symbols.
@@ -51,7 +52,11 @@ module Gitlab
assignee: user_representation(event[:assignee]),
requested_reviewer: user_representation(event[:requested_reviewer]),
review_requester: user_representation(event[:review_requester]),
- created_at: event[:created_at]
+ created_at: event[:created_at],
+ updated_at: event[:updated_at],
+ submitted_at: event[:submitted_at],
+ state: event[:state],
+ body: event[:body]
)
end
diff --git a/lib/gitlab/github_import/representation/note_text.rb b/lib/gitlab/github_import/representation/note_text.rb
index 43e18a923d6..79bef4ec363 100644
--- a/lib/gitlab/github_import/representation/note_text.rb
+++ b/lib/gitlab/github_import/representation/note_text.rb
@@ -55,6 +55,14 @@ module Gitlab
}.merge(record_type_specific_attribute)
end
+ def has_attachments?
+ attachments.present?
+ end
+
+ def attachments
+ @attachments ||= MarkdownText.fetch_attachments(text)
+ end
+
private
def record_type_specific_attribute
diff --git a/lib/gitlab/github_import/representation/replay_event.rb b/lib/gitlab/github_import/representation/replay_event.rb
new file mode 100644
index 00000000000..2d71c26abbb
--- /dev/null
+++ b/lib/gitlab/github_import/representation/replay_event.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module GithubImport
+ module Representation
+ class ReplayEvent
+ include ToHash
+ include ExposeAttribute
+
+ attr_reader :attributes
+
+ expose_attribute :issuable_type, :issuable_iid
+
+ def self.from_json_hash(raw_hash)
+ new Representation.symbolize_hash(raw_hash)
+ end
+
+ def initialize(attributes)
+ @attributes = attributes
+ end
+
+ def github_identifiers
+ {
+ issuable_type: issuable_type,
+ issuable_iid: issuable_iid
+ }
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/github_import/settings.rb b/lib/gitlab/github_import/settings.rb
index 3947ae3c63d..da5833df3a1 100644
--- a/lib/gitlab/github_import/settings.rb
+++ b/lib/gitlab/github_import/settings.rb
@@ -38,8 +38,13 @@ module Gitlab
}
}.freeze
- def self.stages_array
- OPTIONAL_STAGES.map do |stage_name, data|
+ def self.stages_array(current_user)
+ deprecated_options = %i[single_endpoint_issue_events_import]
+
+ OPTIONAL_STAGES.filter_map do |stage_name, data|
+ next if deprecated_options.include?(stage_name) &&
+ Feature.enabled?(:github_import_extended_events, current_user)
+
{
name: stage_name.to_s,
label: s_(format("GitHubImport|%{text}", text: data[:label])),
@@ -61,7 +66,8 @@ module Gitlab
import_data = project.build_or_assign_import_data(
data: {
optional_stages: optional_stages,
- timeout_strategy: user_settings[:timeout_strategy]
+ timeout_strategy: user_settings[:timeout_strategy],
+ extended_events: user_settings[:extended_events]
},
credentials: project.import_data&.credentials
)
@@ -77,6 +83,10 @@ module Gitlab
!enabled?(stage_name)
end
+ def extended_events?
+ !!project.import_data&.data&.dig('extended_events')
+ end
+
private
attr_reader :project
diff --git a/lib/gitlab/github_import/single_endpoint_notes_importing.rb b/lib/gitlab/github_import/single_endpoint_notes_importing.rb
index 3584288da57..d4d9bd47e63 100644
--- a/lib/gitlab/github_import/single_endpoint_notes_importing.rb
+++ b/lib/gitlab/github_import/single_endpoint_notes_importing.rb
@@ -75,7 +75,7 @@ module Gitlab
batch.each do |parent_record|
# The page counter needs to be scoped by parent_record to avoid skipping
# pages of notes from already imported parent_record.
- page_counter = PageCounter.new(project, page_counter_id(parent_record))
+ page_counter = Gitlab::Import::PageCounter.new(project, page_counter_id(parent_record))
repo = project.import_source
options = collection_options.merge(page: page_counter.current)
@@ -85,6 +85,7 @@ module Gitlab
yield parent_record, page
end
+ after_batch_processed(parent_record)
mark_parent_imported(parent_record)
end
end
@@ -96,6 +97,8 @@ module Gitlab
)
end
+ def after_batch_processed(_parent); end
+
def already_imported_parents
Gitlab::Cache::Import::Caching.values_from_set(parent_imported_cache_key)
end
diff --git a/lib/gitlab/github_import/user_finder.rb b/lib/gitlab/github_import/user_finder.rb
index 4bf2d8a0aca..bec4c7fc4d4 100644
--- a/lib/gitlab/github_import/user_finder.rb
+++ b/lib/gitlab/github_import/user_finder.rb
@@ -12,21 +12,18 @@ module Gitlab
# Lookups are cached even if no ID was found to remove the need for querying
# the database when most queries are not going to return results anyway.
class UserFinder
+ include Gitlab::ExclusiveLeaseHelpers
+
attr_reader :project, :client
- # The base cache key to use for caching user IDs for a given GitHub user
- # ID.
+ # The base cache key to use for caching user IDs for a given GitHub user ID.
ID_CACHE_KEY = 'github-import/user-finder/user-id/%s'
- # The base cache key to use for caching user IDs for a given GitHub email
- # address.
- ID_FOR_EMAIL_CACHE_KEY =
- 'github-import/user-finder/id-for-email/%s'
+ # The base cache key to use for caching user IDs for a given GitHub email address.
+ ID_FOR_EMAIL_CACHE_KEY = 'github-import/user-finder/id-for-email/%s'
- # The base cache key to use for caching the Email addresses of GitHub
- # usernames.
- EMAIL_FOR_USERNAME_CACHE_KEY =
- 'github-import/user-finder/email-for-username/%s'
+ # The base cache key to use for caching the Email addresses of GitHub usernames.
+ EMAIL_FOR_USERNAME_CACHE_KEY = 'github-import/user-finder/email-for-username/%s'
# The base cache key to use for caching the user ETAG response headers
USERNAME_ETAG_CACHE_KEY = 'github-import/user-finder/user-etag/%s'
@@ -218,6 +215,17 @@ module Gitlab
private
+ def lease_key
+ "gitlab:github_import:user_finder:#{project.id}"
+ end
+
+ # Retrieves the email associated with the given username from the cache.
+ #
+ # The return value can be an email, an empty string, or nil.
+ #
+ # If an empty string is returned, it indicates that the user's email was fetched but not set on GitHub.
+ # If nil is returned, it indicates that the user's email wasn't fetched or the cache has expired.
+ # If an email is returned, it means the user has a public email set, and it has been successfully cached.
def read_email_from_cache(username)
Gitlab::Cache::Import::Caching.read(email_cache_key(username))
end
@@ -232,12 +240,27 @@ module Gitlab
end
def fetch_email_from_github(username, etag: nil)
- log(EMAIL_API_CALL_LOGGING_MESSAGE[etag.present?], username: username)
- user = client.user(username, { headers: { 'If-None-Match' => etag }.compact })
+ in_lock(lease_key, ttl: 3.minutes, sleep_sec: 1.second, retries: 30) do |retried|
+ # when retried, check the cache again as the other process that had the lease may have fetched the email
+ if retried
+ email = read_email_from_cache(username)
- user[:email] || '' if user
+ next email if email.present?
+ end
+
+ log(EMAIL_API_CALL_LOGGING_MESSAGE[etag.present?], username: username)
+
+ # Only make a rate-limited API call if the ETAG is not available })
+ user = client.user(username, { headers: { 'If-None-Match' => etag }.compact })
+ user[:email] || '' if user
+ end
end
+ # Caches the email associated to the username
+ #
+ # An empty email is cached when the user email isn't set on GitHub.
+ # This is done to prevent UserFinder from fetching the user's email again when the user's email isn't set on
+ # GitHub
def cache_email!(username, email)
return unless email
@@ -245,6 +268,8 @@ module Gitlab
end
def cache_etag!(username)
+ return unless client.octokit.last_response
+
etag = client.octokit.last_response.headers[:etag]
Gitlab::Cache::Import::Caching.write(etag_cache_key(username), etag)
end
diff --git a/lib/gitlab/gon_helper.rb b/lib/gitlab/gon_helper.rb
index caf7cfb3f76..c4c0e48be3f 100644
--- a/lib/gitlab/gon_helper.rb
+++ b/lib/gitlab/gon_helper.rb
@@ -123,7 +123,7 @@ module Gitlab
end
def add_browsersdk_tracking
- return unless Gitlab.com? && Feature.enabled?(:browsersdk_tracking) && Feature.enabled?(:gl_analytics_tracking,
+ return unless Gitlab.com? && Feature.enabled?(:gl_analytics_tracking,
Feature.current_request)
return if ENV['GITLAB_ANALYTICS_URL'].blank? || ENV['GITLAB_ANALYTICS_ID'].blank?
diff --git a/lib/gitlab/highlight.rb b/lib/gitlab/highlight.rb
index 1a85c57e6b1..40bca7993ce 100644
--- a/lib/gitlab/highlight.rb
+++ b/lib/gitlab/highlight.rb
@@ -2,9 +2,9 @@
module Gitlab
class Highlight
- def self.highlight(blob_name, blob_content, language: nil, plain: false, context: {})
+ def self.highlight(blob_name, blob_content, language: nil, plain: false, context: {}, used_on: :blob)
new(blob_name, blob_content, language: language)
- .highlight(blob_content, continue: false, plain: plain, context: context)
+ .highlight(blob_content, continue: false, plain: plain, context: context, used_on: used_on)
end
def self.too_large?(size)
@@ -18,15 +18,19 @@ module Gitlab
@language = language
@blob_name = blob_name
@blob_content = blob_content
+ @gitlab_highlight_usage_counter = Gitlab::Metrics.counter(
+ :gitlab_highlight_usage,
+ 'The number of times Gitlab::Highlight is used'
+ )
end
- def highlight(text, continue: false, plain: false, context: {})
+ def highlight(text, continue: false, plain: false, context: {}, used_on: :blob)
@context = context
plain ||= self.class.too_large?(text.length)
- highlighted_text = highlight_text(text, continue: continue, plain: plain)
- highlighted_text = link_dependencies(text, highlighted_text) if blob_name
+ highlighted_text = highlight_text(text, continue: continue, plain: plain, used_on: used_on)
+ highlighted_text = link_dependencies(text, highlighted_text, used_on: used_on) if blob_name
highlighted_text
end
@@ -54,7 +58,9 @@ module Gitlab
Rouge::Lexer.find_fancy(@language)
end
- def highlight_text(text, continue: true, plain: false)
+ def highlight_text(text, continue: true, plain: false, used_on: :blob)
+ @gitlab_highlight_usage_counter.increment(used_on: used_on)
+
if plain
highlight_plain(text)
else
@@ -77,8 +83,8 @@ module Gitlab
highlight_plain(text)
end
- def link_dependencies(text, highlighted_text)
- Gitlab::DependencyLinker.link(blob_name, text, highlighted_text)
+ def link_dependencies(text, highlighted_text, used_on: :blob)
+ Gitlab::DependencyLinker.link(blob_name, text, highlighted_text, used_on: used_on)
end
end
end
diff --git a/lib/gitlab/http.rb b/lib/gitlab/http.rb
index 9c9816e142e..958b415e18f 100644
--- a/lib/gitlab/http.rb
+++ b/lib/gitlab/http.rb
@@ -26,13 +26,6 @@ module Gitlab
}.freeze
DEFAULT_READ_TOTAL_TIMEOUT = 30.seconds
- SILENT_MODE_ALLOWED_METHODS = [
- Net::HTTP::Get,
- Net::HTTP::Head,
- Net::HTTP::Options,
- Net::HTTP::Trace
- ].freeze
-
# We are explicitly assigning these constants because they are used in the codebase.
Error = HTTParty::Error
Response = HTTParty::Response
@@ -42,11 +35,7 @@ module Gitlab
class << self
::Gitlab::HTTP_V2::SUPPORTED_HTTP_METHODS.each do |method|
define_method(method) do |path, options = {}, &block|
- if ::Feature.enabled?(:use_gitlab_http_v2, Feature.current_request)
- ::Gitlab::HTTP_V2.public_send(method, path, http_v2_options(options), &block) # rubocop:disable GitlabSecurity/PublicSend
- else
- ::Gitlab::LegacyHTTP.public_send(method, path, options, &block) # rubocop:disable GitlabSecurity/PublicSend
- end
+ ::Gitlab::HTTP_V2.public_send(method, path, http_v2_options(options), &block) # rubocop:disable GitlabSecurity/PublicSend -- method is validated to make sure it is one of the methods in Gitlab::HTTP_V2::SUPPORTED_HTTP_METHODS
end
end
@@ -59,18 +48,14 @@ module Gitlab
# TODO: This method is subject to be removed
# We have this for now because we explicitly use the `perform_request` method in some places.
def perform_request(http_method, path, options, &block)
- if ::Feature.enabled?(:use_gitlab_http_v2, Feature.current_request)
- method_name = http_method::METHOD.downcase.to_sym
-
- unless ::Gitlab::HTTP_V2::SUPPORTED_HTTP_METHODS.include?(method_name)
- raise ArgumentError, "Unsupported HTTP method: '#{method_name}'."
- end
+ method_name = http_method::METHOD.downcase.to_sym
- # Use `::Gitlab::HTTP_V2.get/post/...` methods
- ::Gitlab::HTTP_V2.public_send(method_name, path, http_v2_options(options), &block) # rubocop:disable GitlabSecurity/PublicSend
- else
- ::Gitlab::LegacyHTTP.perform_request(http_method, path, options, &block)
+ unless ::Gitlab::HTTP_V2::SUPPORTED_HTTP_METHODS.include?(method_name)
+ raise ArgumentError, "Unsupported HTTP method: '#{method_name}'."
end
+
+ # Use `::Gitlab::HTTP_V2.get/post/...` methods
+ ::Gitlab::HTTP_V2.public_send(method_name, path, http_v2_options(options), &block) # rubocop:disable GitlabSecurity/PublicSend -- method is validated to make sure it is one of the methods in Gitlab::HTTP_V2::SUPPORTED_HTTP_METHODS
end
private
diff --git a/lib/gitlab/i18n.rb b/lib/gitlab/i18n.rb
index 02afdedb4be..d2f916fb02a 100644
--- a/lib/gitlab/i18n.rb
+++ b/lib/gitlab/i18n.rb
@@ -44,30 +44,30 @@ module Gitlab
TRANSLATION_LEVELS = {
'bg' => 0,
'cs_CZ' => 0,
- 'da_DK' => 28,
- 'de' => 95,
+ 'da_DK' => 27,
+ 'de' => 93,
'en' => 100,
'eo' => 0,
- 'es' => 28,
+ 'es' => 27,
'fil_PH' => 0,
- 'fr' => 99,
+ 'fr' => 97,
'gl_ES' => 0,
'id_ID' => 0,
'it' => 1,
- 'ja' => 98,
- 'ko' => 23,
+ 'ja' => 94,
+ 'ko' => 22,
'nb_NO' => 20,
'nl_NL' => 0,
- 'pl_PL' => 3,
- 'pt_BR' => 60,
- 'ro_RO' => 74,
- 'ru' => 21,
+ 'pl_PL' => 2,
+ 'pt_BR' => 59,
+ 'ro_RO' => 72,
+ 'ru' => 20,
'si_LK' => 11,
'tr_TR' => 8,
'uk' => 51,
- 'zh_CN' => 99,
+ 'zh_CN' => 97,
'zh_HK' => 1,
- 'zh_TW' => 99
+ 'zh_TW' => 97
}.freeze
private_constant :TRANSLATION_LEVELS
diff --git a/lib/gitlab/github_import/page_counter.rb b/lib/gitlab/import/page_counter.rb
index c238ccb8932..44ab9c256d7 100644
--- a/lib/gitlab/github_import/page_counter.rb
+++ b/lib/gitlab/import/page_counter.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
module Gitlab
- module GithubImport
+ module Import
# PageCounter can be used to keep track of the last imported page of a
# collection, allowing workers to resume where they left off in the event of
# an error.
@@ -12,7 +12,7 @@ module Gitlab
CACHE_KEY = '%{import_type}/page-counter/%{object}/%{collection}'
def initialize(object, collection, import_type = 'github-importer')
- @cache_key = CACHE_KEY % { import_type: import_type, object: object.id, collection: collection }
+ @cache_key = format(CACHE_KEY, import_type: import_type, object: object.id, collection: collection)
end
# Sets the page number to the given value.
diff --git a/lib/gitlab/import_export/group/relation_tree_restorer.rb b/lib/gitlab/import_export/group/relation_tree_restorer.rb
index 5453792e904..ae47c95036e 100644
--- a/lib/gitlab/import_export/group/relation_tree_restorer.rb
+++ b/lib/gitlab/import_export/group/relation_tree_restorer.rb
@@ -84,7 +84,8 @@ module Gitlab
source: 'process_relation_item!',
relation_key: relation_key,
relation_index: relation_index,
- exception: e)
+ exception: e,
+ external_identifiers: external_identifiers(data_hash))
end
def save_relation_object(relation_object, relation_key, relation_definition, relation_index)
@@ -314,6 +315,10 @@ module Gitlab
def importable_column_name
@column_name ||= @importable.class.reflect_on_association(:import_failures).foreign_key.to_sym
end
+
+ def external_identifiers(data_hash)
+ { iid: data_hash['iid'] }.compact
+ end
end
end
end
diff --git a/lib/gitlab/import_export/import_failure_service.rb b/lib/gitlab/import_export/import_failure_service.rb
index bf7200726a1..f93822a9d95 100644
--- a/lib/gitlab/import_export/import_failure_service.rb
+++ b/lib/gitlab/import_export/import_failure_service.rb
@@ -13,7 +13,7 @@ module Gitlab
end
def with_retry(action:, relation_key: nil, relation_index: nil)
- on_retry = -> (exception, retry_count, *_args) do
+ on_retry = ->(exception, retry_count, *_args) do
log_import_failure(
source: action,
relation_key: relation_key,
@@ -27,7 +27,8 @@ module Gitlab
end
end
- def log_import_failure(source:, relation_key: nil, relation_index: nil, exception:, retry_count: 0)
+ def log_import_failure(
+ source:, exception:, relation_key: nil, relation_index: nil, retry_count: 0, external_identifiers: {})
attributes = {
relation_index: relation_index,
source: source,
@@ -45,7 +46,8 @@ module Gitlab
exception_class: exception.class.to_s,
exception_message: exception.message.truncate(255),
correlation_id_value: Labkit::Correlation::CorrelationId.current_or_new_id,
- relation_key: relation_key
+ relation_key: relation_key,
+ external_identifiers: external_identifiers
)
)
end
diff --git a/lib/gitlab/import_export/project/import_export.yml b/lib/gitlab/import_export/project/import_export.yml
index e38930ed548..d34cab5ac92 100644
--- a/lib/gitlab/import_export/project/import_export.yml
+++ b/lib/gitlab/import_export/project/import_export.yml
@@ -1054,6 +1054,7 @@ excluded_attributes:
- :state_id
- :start_date_sourcing_epic_id
- :due_date_sourcing_epic_id
+ - :issue_id
epic_issue:
- :epic_id
- :issue_id
diff --git a/lib/gitlab/instrumentation/redis.rb b/lib/gitlab/instrumentation/redis.rb
index 590153ad9cd..3bc9f09d977 100644
--- a/lib/gitlab/instrumentation/redis.rb
+++ b/lib/gitlab/instrumentation/redis.rb
@@ -33,6 +33,10 @@ module Gitlab
super.merge(*STORAGES.flat_map(&:payload))
end
+ def storage_hash
+ @storage_hash ||= STORAGES.index_by { |k| k.name.demodulize }
+ end
+
def detail_store
STORAGES.flat_map do |storage|
storage.detail_store.map { |details| details.merge(storage: storage.name.demodulize) }
diff --git a/lib/gitlab/instrumentation/redis_client_middleware.rb b/lib/gitlab/instrumentation/redis_client_middleware.rb
new file mode 100644
index 00000000000..a49d8370d4c
--- /dev/null
+++ b/lib/gitlab/instrumentation/redis_client_middleware.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+# This module references https://github.com/redis-rb/redis-client#instrumentation-and-middlewares
+# implementing `call`, and `call_pipelined`.
+module Gitlab
+ module Instrumentation
+ module RedisClientMiddleware
+ include RedisHelper
+
+ def call(command, redis_config)
+ instrumentation = instrumentation_class(redis_config)
+
+ result = instrument_call([command], instrumentation) do
+ super
+ end
+
+ measure_io(command, result, instrumentation) if ::RequestStore.active?
+
+ result
+ end
+
+ def call_pipelined(commands, redis_config)
+ instrumentation = instrumentation_class(redis_config)
+
+ result = instrument_call(commands, instrumentation, true) do
+ super
+ end
+
+ measure_io(commands, result, instrumentation) if ::RequestStore.active?
+
+ result
+ end
+
+ private
+
+ def measure_io(command, result, instrumentation)
+ measure_write_size(command, instrumentation)
+ measure_read_size(result, instrumentation)
+ end
+
+ def instrumentation_class(config)
+ Gitlab::Instrumentation::Redis.storage_hash[config.custom[:instrumentation_class]]
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/instrumentation/redis_helper.rb b/lib/gitlab/instrumentation/redis_helper.rb
index ba1c8132250..392a7ebe852 100644
--- a/lib/gitlab/instrumentation/redis_helper.rb
+++ b/lib/gitlab/instrumentation/redis_helper.rb
@@ -15,7 +15,7 @@ module Gitlab
end
yield
- rescue ::Redis::BaseError => ex
+ rescue ::Redis::BaseError, ::RedisClient::Error => ex
if ex.message.start_with?('MOVED', 'ASK')
instrumentation_class.instance_count_cluster_redirection(ex)
else
diff --git a/lib/gitlab/legacy_github_import/user_formatter.rb b/lib/gitlab/legacy_github_import/user_formatter.rb
index 8fd8354e59c..a57edcc7ba4 100644
--- a/lib/gitlab/legacy_github_import/user_formatter.rb
+++ b/lib/gitlab/legacy_github_import/user_formatter.rb
@@ -23,7 +23,7 @@ module Gitlab
def gitlab_id
return @gitlab_id if defined?(@gitlab_id)
- @gitlab_id = find_by_external_uid || find_by_email
+ @gitlab_id = find_by_email
end
private
@@ -45,14 +45,6 @@ module Gitlab
User.find_by_any_email(email)
.try(:id)
end
-
- # rubocop: disable CodeReuse/ActiveRecord
- def find_by_external_uid
- return unless id
-
- User.by_provider_and_extern_uid(:github, id).select(:id).first&.id
- end
- # rubocop: enable CodeReuse/ActiveRecord
end
end
end
diff --git a/lib/gitlab/legacy_http.rb b/lib/gitlab/legacy_http.rb
deleted file mode 100644
index cf6ab80d37f..00000000000
--- a/lib/gitlab/legacy_http.rb
+++ /dev/null
@@ -1,78 +0,0 @@
-# frozen_string_literal: true
-
-#
-# IMPORTANT: With the new development of the 'gitlab-http' gem (https://gitlab.com/gitlab-org/gitlab/-/issues/415686),
-# no additional change should be implemented in this class. This class will be removed after migrating all
-# the usages to the new gem.
-#
-
-require_relative 'http_connection_adapter'
-
-module Gitlab
- class LegacyHTTP # rubocop:disable Gitlab/NamespacedClass
- include HTTParty # rubocop:disable Gitlab/HTTParty
-
- class << self
- alias_method :httparty_perform_request, :perform_request
- end
-
- connection_adapter ::Gitlab::HTTPConnectionAdapter
-
- def self.perform_request(http_method, path, options, &block)
- raise_if_blocked_by_silent_mode(http_method)
-
- log_info = options.delete(:extra_log_info)
- options_with_timeouts =
- if !options.has_key?(:timeout)
- options.with_defaults(Gitlab::HTTP::DEFAULT_TIMEOUT_OPTIONS)
- else
- options
- end
-
- return httparty_perform_request(http_method, path, options_with_timeouts, &block) if options[:stream_body]
-
- start_time = nil
- read_total_timeout = options.fetch(:timeout, Gitlab::HTTP::DEFAULT_READ_TOTAL_TIMEOUT)
-
- httparty_perform_request(http_method, path, options_with_timeouts) do |fragment|
- start_time ||= ::Gitlab::Metrics::System.monotonic_time
- elapsed = ::Gitlab::Metrics::System.monotonic_time - start_time
-
- if elapsed > read_total_timeout
- raise Gitlab::HTTP::ReadTotalTimeout, "Request timed out after #{elapsed} seconds"
- end
-
- yield fragment if block
- end
- rescue HTTParty::RedirectionTooDeep
- raise Gitlab::HTTP::RedirectionTooDeep
- rescue *Gitlab::HTTP::HTTP_ERRORS => e
- extra_info = log_info || {}
- extra_info = log_info.call(e, path, options) if log_info.respond_to?(:call)
- Gitlab::ErrorTracking.log_exception(e, extra_info)
- raise e
- end
-
- def self.try_get(path, options = {}, &block)
- self.get(path, options, &block) # rubocop:disable Style/RedundantSelf
- rescue *Gitlab::HTTP::HTTP_ERRORS
- nil
- end
-
- def self.raise_if_blocked_by_silent_mode(http_method)
- return unless blocked_by_silent_mode?(http_method)
-
- ::Gitlab::SilentMode.log_info(
- message: 'Outbound HTTP request blocked',
- outbound_http_request_method: http_method.to_s
- )
-
- raise Gitlab::HTTP::SilentModeBlockedError,
- 'only get, head, options, and trace methods are allowed in silent mode'
- end
-
- def self.blocked_by_silent_mode?(http_method)
- ::Gitlab::SilentMode.enabled? && Gitlab::HTTP::SILENT_MODE_ALLOWED_METHODS.exclude?(http_method)
- end
- end
-end
diff --git a/lib/gitlab/memory/watchdog/handlers/sidekiq_handler.rb b/lib/gitlab/memory/watchdog/handlers/sidekiq_handler.rb
index 47ed608c576..9da662d5f1b 100644
--- a/lib/gitlab/memory/watchdog/handlers/sidekiq_handler.rb
+++ b/lib/gitlab/memory/watchdog/handlers/sidekiq_handler.rb
@@ -18,8 +18,8 @@ module Gitlab
return true unless @alive
# Tell sidekiq to restart itself
- # Keep extra safe to wait `Sidekiq[:timeout] + 2` seconds before SIGKILL
- send_signal(:TERM, $$, 'gracefully shut down', Sidekiq[:timeout] + 2)
+ # Keep extra safe to wait `Sidekiq.default_configuration[:timeout] + 2` seconds before SIGKILL
+ send_signal(:TERM, $$, 'gracefully shut down', Sidekiq.default_configuration[:timeout] + 2)
return true unless @alive
# Ideally we should never reach this condition
diff --git a/lib/gitlab/middleware/unauthenticated_session_expiry.rb b/lib/gitlab/middleware/unauthenticated_session_expiry.rb
new file mode 100644
index 00000000000..7c5c523c287
--- /dev/null
+++ b/lib/gitlab/middleware/unauthenticated_session_expiry.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Middleware
+ # By default, all sessions are given the same expiration time configured in
+ # the session store (e.g. 1 week). However, unauthenticated users can
+ # generate a lot of sessions, primarily for CSRF verification. It makes
+ # sense to reduce the TTL for unauthenticated to something much lower than
+ # the default (e.g. 2 hours) to limit Redis memory. In addition, Rails
+ # creates a new session after login, so the short TTL doesn't even need to
+ # be extended.
+ class UnauthenticatedSessionExpiry
+ def initialize(app)
+ @app = app
+ end
+
+ def call(env)
+ result = @app.call(env)
+
+ warden = env['warden']
+ user = catch(:warden) { warden && warden.user } # rubocop:disable Cop/BanCatchThrow -- ignore Warden errors since we're outside Warden::Manager
+
+ unless user
+ # This works because Rack uses these options every time a request is handled, and redis-store
+ # uses the Rack setting first:
+ # 1. https://github.com/rack/rack/blob/fdcd03a3c5a1c51d1f96fc97f9dfa1a9deac0c77/lib/rack/session/abstract/id.rb#L342
+ # 2. https://github.com/redis-store/redis-store/blob/3acfa95f4eb6260c714fdb00a3d84be8eedc13b2/lib/redis/store/ttl.rb#L32
+ env['rack.session.options'][:expire_after] = Settings.gitlab['unauthenticated_session_expire_delay']
+ end
+
+ result
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/namespaced_session_store.rb b/lib/gitlab/namespaced_session_store.rb
index f0f24c081c3..957e8fe9b9f 100644
--- a/lib/gitlab/namespaced_session_store.rb
+++ b/lib/gitlab/namespaced_session_store.rb
@@ -2,10 +2,8 @@
module Gitlab
class NamespacedSessionStore
- delegate :[], :[]=, to: :store
-
def initialize(key, session = Session.current)
- @key = key
+ @namespace_key = key
@session = session
end
@@ -13,11 +11,17 @@ module Gitlab
!session.nil?
end
- def store
+ def [](key)
+ return unless session
+
+ session[@namespace_key]&.fetch(key, nil)
+ end
+
+ def []=(key, value)
return unless session
- session[@key] ||= {}
- session[@key]
+ session[@namespace_key] ||= {}
+ session[@namespace_key][key] = value
end
private
diff --git a/lib/gitlab/pagination/keyset/simple_order_builder.rb b/lib/gitlab/pagination/keyset/simple_order_builder.rb
index cbd523389d6..ebed7bd94e4 100644
--- a/lib/gitlab/pagination/keyset/simple_order_builder.rb
+++ b/lib/gitlab/pagination/keyset/simple_order_builder.rb
@@ -34,18 +34,18 @@ module Gitlab
elsif ordered_by_primary_key?
primary_key_order
# Ordered by one non-primary table column. Ex. 'ORDER BY created_at'.
- elsif ordered_by_other_column?
- column_with_tie_breaker_order
+ elsif ordered_by_other_columns?
+ columns_with_tie_breaker_order(order_values)
# Ordered by two table columns with the last column as a tie breaker. Ex. 'ORDER BY created, id ASC'.
- elsif ordered_by_other_column_with_tie_breaker?
- tie_breaker_attribute = order_values.second
+ elsif ordered_by_other_columns_with_tie_breaker?
+ tie_breaker_attribute = order_values.last
tie_breaker_column_order = Gitlab::Pagination::Keyset::ColumnOrderDefinition.new(
attribute_name: model_class.primary_key,
order_expression: tie_breaker_attribute
)
- column_with_tie_breaker_order(tie_breaker_column_order)
+ columns_with_tie_breaker_order(order_values[0...-1], tie_breaker_column_order)
end
order ? [scope.reorder!(order), true] : [scope, false] # [scope, success]
@@ -120,10 +120,12 @@ module Gitlab
])
end
- def column_with_tie_breaker_order(tie_breaker_column_order = default_tie_breaker_column_order)
+ def columns_with_tie_breaker_order(order_values, tie_breaker_column_order = default_tie_breaker_column_order)
+ other_columns = order_values.map { |order_value| column(order_value) }
+
Gitlab::Pagination::Keyset::Order.build(
[
- column(order_values.first),
+ *other_columns,
tie_breaker_column_order
])
end
@@ -175,21 +177,27 @@ module Gitlab
attribute && primary_key?(attribute)
end
- def ordered_by_other_column?
- return unless order_values.one?
+ def ordered_by_other_columns?
+ return unless order_values.size >= 1 && !has_tie_breaker?
- supported_column?(order_values.first)
+ supported_columns?(order_values)
end
- def ordered_by_other_column_with_tie_breaker?
- return unless order_values.size == 2
+ def ordered_by_other_columns_with_tie_breaker?
+ return unless order_values.size >= 2 && supported_columns?(order_values[0...-1])
- return unless supported_column?(order_values.first)
+ has_tie_breaker?
+ end
- tie_breaker_attribute = order_values.second.try(:expr)
+ def has_tie_breaker?
+ tie_breaker_attribute = order_values.last.try(:expr)
tie_breaker_attribute && primary_key?(tie_breaker_attribute)
end
+ def supported_columns?(order_values)
+ order_values.all? { |order_value| supported_column?(order_value) }
+ end
+
def default_tie_breaker_column_order
Gitlab::Pagination::Keyset::ColumnOrderDefinition.new(
attribute_name: model_class.primary_key,
diff --git a/lib/gitlab/patch/sidekiq_cron_poller.rb b/lib/gitlab/patch/sidekiq_cron_poller.rb
index 3f962c47ae9..8c2d1181611 100644
--- a/lib/gitlab/patch/sidekiq_cron_poller.rb
+++ b/lib/gitlab/patch/sidekiq_cron_poller.rb
@@ -7,7 +7,7 @@
require 'sidekiq/version'
require 'sidekiq/cron/version'
-if Gem::Version.new(Sidekiq::VERSION) != Gem::Version.new('6.5.12')
+if Gem::Version.new(Sidekiq::VERSION) != Gem::Version.new('7.1.6')
raise 'New version of sidekiq detected, please remove or update this patch'
end
diff --git a/lib/gitlab/quick_actions/extractor.rb b/lib/gitlab/quick_actions/extractor.rb
index c6a7a39a943..72f4a101809 100644
--- a/lib/gitlab/quick_actions/extractor.rb
+++ b/lib/gitlab/quick_actions/extractor.rb
@@ -142,9 +142,11 @@ module Gitlab
output = "`/#{matched_text[:cmd]}#{" " + matched_text[:arg] if matched_text[:arg]}`"
output += "\n" if matched_text[0].include?("\n")
elsif keep_actions
- # requires an additional newline so that when rendered, it appears
- # on its own line, rather than all on the same line
- output = "\n#{matched_text[0]}\n"
+ # put the command in a new paragraph, but without introducing newlines
+ # so that each command is in its own line, while also preserving sourcemaps
+ # of the content that follows.
+ output = ActionController::Base.helpers.simple_format(matched_text[0].chomp)
+ output += "\n" if matched_text[0].ends_with?("\n")
end
end
diff --git a/lib/gitlab/quick_actions/issuable_actions.rb b/lib/gitlab/quick_actions/issuable_actions.rb
index 2f7fa89019e..e4b195767ea 100644
--- a/lib/gitlab/quick_actions/issuable_actions.rb
+++ b/lib/gitlab/quick_actions/issuable_actions.rb
@@ -197,12 +197,12 @@ module Gitlab
@updates[:subscription_event] = 'unsubscribe'
end
- desc { _('Toggle emoji award') }
+ desc { _('Toggle emoji reaction') }
explanation do |name|
- _("Toggles :%{name}: emoji award.") % { name: name } if name
+ _("Toggles :%{name}: emoji reaction.") % { name: name } if name
end
execution_message do |name|
- _("Toggled :%{name}: emoji award.") % { name: name } if name
+ _("Toggled :%{name}: emoji reaction.") % { name: name } if name
end
params ':emoji:'
types ::Issuable
@@ -213,7 +213,7 @@ module Gitlab
match = emoji_param.match(Banzai::Filter::EmojiFilter.emoji_pattern)
match[1] if match
end
- command :award, :react do |name|
+ command :react, :award do |name|
if name && quick_action_target.user_can_award?(current_user)
@updates[:emoji_award] = name
end
diff --git a/lib/gitlab/quick_actions/issue_actions.rb b/lib/gitlab/quick_actions/issue_actions.rb
index c79432f36cc..b3f56e8590a 100644
--- a/lib/gitlab/quick_actions/issue_actions.rb
+++ b/lib/gitlab/quick_actions/issue_actions.rb
@@ -240,6 +240,26 @@ module Gitlab
@execution_message[:invite_email] = response.message
end
+ desc { _('Remove email participant(s)') }
+ explanation { _('Removes email participant(s).') }
+ params 'email1@example.com email2@example.com (up to 6 emails)'
+ types Issue
+ condition do
+ quick_action_target.persisted? &&
+ Feature.enabled?(:issue_email_participants, parent) &&
+ current_user.can?(:"admin_#{quick_action_target.to_ability_name}", quick_action_target) &&
+ quick_action_target.issue_email_participants.any?
+ end
+ command :remove_email do |emails = ""|
+ response = ::IssueEmailParticipants::DestroyService.new(
+ target: quick_action_target,
+ current_user: current_user,
+ emails: emails.split(' ')
+ ).execute
+
+ @execution_message[:remove_email] = response.message
+ end
+
desc { _('Promote issue to incident') }
explanation { _('Promotes issue to incident') }
execution_message { _('Issue has been promoted to incident') }
diff --git a/lib/gitlab/quick_actions/merge_request_actions.rb b/lib/gitlab/quick_actions/merge_request_actions.rb
index fe18bc8e133..4276091251a 100644
--- a/lib/gitlab/quick_actions/merge_request_actions.rb
+++ b/lib/gitlab/quick_actions/merge_request_actions.rb
@@ -6,6 +6,10 @@ module Gitlab
extend ActiveSupport::Concern
include Gitlab::QuickActions::Dsl
+ REBASE_FAILURE_UNMERGEABLE = 'This merge request is currently in an unmergeable state, and cannot be rebased.'
+ REBASE_FAILURE_PROTECTED_BRANCH = 'This merge request branch is protected from force push.'
+ REBASE_FAILURE_REBASE_IN_PROGRESS = 'A rebase is already in progress.'
+
included do
# MergeRequest only quick actions definitions
desc do
@@ -46,6 +50,10 @@ module Gitlab
@updates[:merge] = params[:merge_request_diff_head_sha]
end
+ ########################################################################
+ #
+ # /rebase
+ #
types MergeRequest
desc do
_('Rebase source branch')
@@ -66,17 +74,17 @@ module Gitlab
end
command :rebase do
unless quick_action_target.permits_force_push?
- @execution_message[:rebase] = _('This merge request branch is protected from force push.')
+ @execution_message[:rebase] = _(REBASE_FAILURE_PROTECTED_BRANCH)
next
end
if quick_action_target.cannot_be_merged?
- @execution_message[:rebase] = _('This merge request cannot be rebased while there are conflicts.')
+ @execution_message[:rebase] = _(REBASE_FAILURE_UNMERGEABLE)
next
end
if quick_action_target.rebase_in_progress?
- @execution_message[:rebase] = _('A rebase is already in progress.')
+ @execution_message[:rebase] = _(REBASE_FAILURE_REBASE_IN_PROGRESS)
next
end
@@ -210,7 +218,7 @@ module Gitlab
explanation { _('Approve the current merge request.') }
types MergeRequest
condition do
- quick_action_target.persisted? && quick_action_target.eligible_for_approval_by?(current_user)
+ quick_action_target.persisted? && quick_action_target.eligible_for_approval_by?(current_user) && !quick_action_target.merged?
end
command :approve do
success = ::MergeRequests::ApprovalService.new(project: quick_action_target.project, current_user: current_user).execute(quick_action_target)
@@ -224,7 +232,7 @@ module Gitlab
explanation { _('Unapprove the current merge request.') }
types MergeRequest
condition do
- quick_action_target.persisted? && quick_action_target.eligible_for_unapproval_by?(current_user)
+ quick_action_target.persisted? && quick_action_target.eligible_for_unapproval_by?(current_user) && !quick_action_target.merged?
end
command :unapprove do
success = ::MergeRequests::RemoveApprovalService.new(project: quick_action_target.project, current_user: current_user).execute(quick_action_target)
diff --git a/lib/gitlab/rack_attack/user_allowlist.rb b/lib/gitlab/rack_attack/user_allowlist.rb
index f3043f44091..c1da1fabef5 100644
--- a/lib/gitlab/rack_attack/user_allowlist.rb
+++ b/lib/gitlab/rack_attack/user_allowlist.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
module Gitlab
module RackAttack
diff --git a/lib/gitlab/redis/multi_store.rb b/lib/gitlab/redis/multi_store.rb
index 6acbf83df24..f5deff96eae 100644
--- a/lib/gitlab/redis/multi_store.rb
+++ b/lib/gitlab/redis/multi_store.rb
@@ -34,7 +34,7 @@ module Gitlab
end
end
- attr_reader :primary_store, :secondary_store, :instance_name
+ attr_reader :primary_pool, :secondary_pool, :instance_name, :primary_store, :secondary_store, :borrow_counter
FAILED_TO_READ_ERROR_MESSAGE = 'Failed to read from the redis default_store.'
FAILED_TO_WRITE_ERROR_MESSAGE = 'Failed to write to the redis non_default_store.'
@@ -127,20 +127,23 @@ module Gitlab
multi
].freeze
- # To transition between two Redis store, `primary_store` should be the target store,
- # and `secondary_store` should be the current store. Transition is controlled with feature flags:
+ # To transition between two Redis store, `primary_pool` should be the connection pool for the target store,
+ # and `secondary_pool` should be the connection pool for the current store.
#
+ # Transition is controlled with feature flags:
# - At the default state, all read and write operations are executed in the secondary instance.
# - Turning use_primary_and_secondary_stores_for_<instance_name> on: The store writes to both instances.
- # The read commands are executed in primary, but fallback to secondary.
+ # The read commands are executed in the default store with no fallbacks.
# Other commands are executed in the the default instance (Secondary).
# - Turning use_primary_store_as_default_for_<instance_name> on: The behavior is the same as above,
# but other commands are executed in the primary now.
# - Turning use_primary_and_secondary_stores_for_<instance_name> off: commands are executed in the primary store.
- def initialize(primary_store, secondary_store, instance_name)
- @primary_store = primary_store
- @secondary_store = secondary_store
+ def initialize(primary_pool, secondary_pool, instance_name)
@instance_name = instance_name
+ @primary_pool = primary_pool
+ @secondary_pool = secondary_pool
+
+ @borrow_counter = "multi_store_borrowed_connection_#{instance_name}".to_sym
validate_stores!
end
@@ -208,6 +211,31 @@ module Gitlab
true
end
+ def with_borrowed_connection
+ primary_pool.with do |ps|
+ secondary_pool.with do |ss|
+ # nested borrows are allowed as ConnectionPool returns the existing connection
+ # which the thread already checked out.
+ Thread.current[borrow_counter] ||= 0
+ Thread.current[borrow_counter] += 1
+
+ # borrow from both pool as feature-flag could change during the period where connections are borrowed
+ # this guarantees that we avoids a NilClass error
+ @primary_store = ps
+ @secondary_store = ss
+
+ yield
+ ensure
+ # only set to nil after all nested borrows are yielded
+ Thread.current[borrow_counter] -= 1
+ if Thread.current[borrow_counter] == 0
+ @primary_store = nil
+ @secondary_store = nil
+ end
+ end
+ end
+ end
+
# This is needed because of Redis::Rack::Connection is requiring Redis::Store
# https://github.com/redis-store/redis-rack/blob/a833086ba494083b6a384a1a4e58b36573a9165d/lib/redis/rack/connection.rb#L15
# Done similarly in https://github.com/lsegal/yard/blob/main/lib/yard/templates/template.rb#L122
@@ -277,13 +305,15 @@ module Gitlab
#
# Let's define it explicitly instead of propagating it to method_missing
def close
- if same_redis_store?
- # if same_redis_store?, `use_primary_store_as_default?` returns false
- # but we should avoid a feature-flag check in `.close` to avoid checking out
- # an ActiveRecord connection during clean up.
- secondary_store.close
- else
- [primary_store, secondary_store].map(&:close).first
+ with_borrowed_connection do
+ if same_redis_store?
+ # if same_redis_store?, `use_primary_store_as_default?` returns false
+ # but we should avoid a feature-flag check in `.close` to avoid checking out
+ # an ActiveRecord connection during clean up.
+ secondary_store.close
+ else
+ [primary_store, secondary_store].map(&:close).first
+ end
end
end
@@ -383,7 +413,8 @@ module Gitlab
def same_redis_store?
strong_memoize(:same_redis_store) do
# <Redis client v4.7.1 for unix:///path_to/redis/redis.socket/5>"
- primary_store.inspect == secondary_store.inspect
+ # no borrowed connections due to endless recursion
+ primary_pool.with(&:inspect) == secondary_pool.with(&:inspect) # rubocop:disable CodeReuse/ActiveRecord
end
end
@@ -418,16 +449,16 @@ module Gitlab
@instance = nil
end
- def redis_store?(store)
- store.is_a?(::Redis)
+ def redis_store?(pool)
+ pool.with { |c| c.instance_of?(Gitlab::Redis::MultiStore) || c.is_a?(::Redis) }
end
def validate_stores!
- raise ArgumentError, 'primary_store is required' unless primary_store
- raise ArgumentError, 'secondary_store is required' unless secondary_store
+ raise ArgumentError, 'primary_store is required' if primary_pool.nil?
+ raise ArgumentError, 'secondary_store is required' if secondary_pool.nil?
raise ArgumentError, 'instance_name is required' unless instance_name
- raise ArgumentError, 'invalid primary_store' unless redis_store?(primary_store)
- raise ArgumentError, 'invalid secondary_store' unless redis_store?(secondary_store)
+ raise ArgumentError, 'invalid primary_store' unless redis_store?(primary_pool)
+ raise ArgumentError, 'invalid secondary_store' unless redis_store?(secondary_pool)
end
end
end
diff --git a/lib/gitlab/redis/multi_store_wrapper.rb b/lib/gitlab/redis/multi_store_wrapper.rb
new file mode 100644
index 00000000000..093a06f2737
--- /dev/null
+++ b/lib/gitlab/redis/multi_store_wrapper.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Redis
+ class MultiStoreWrapper < Wrapper
+ class << self
+ def with
+ multistore_pool.with do |multistore|
+ multistore.with_borrowed_connection do
+ yield multistore
+ end
+ end
+ end
+
+ def multistore_pool
+ @multistore_pool ||= ConnectionPool.new(size: pool_size, name: pool_name) { multistore }
+ end
+
+ def pool_name
+ "#{store_name}MultiStore".underscore
+ end
+
+ def multistore
+ raise NotImplementedError
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/redis/shared_state.rb b/lib/gitlab/redis/shared_state.rb
index d12d3e8c6aa..e631bfaa01c 100644
--- a/lib/gitlab/redis/shared_state.rb
+++ b/lib/gitlab/redis/shared_state.rb
@@ -2,12 +2,9 @@
module Gitlab
module Redis
- class SharedState < ::Gitlab::Redis::Wrapper
- def self.redis
- primary_store = ::Redis.new(ClusterSharedState.params)
- secondary_store = ::Redis.new(params)
-
- MultiStore.new(primary_store, secondary_store, store_name)
+ class SharedState < ::Gitlab::Redis::MultiStoreWrapper
+ def self.multistore
+ MultiStore.new(ClusterSharedState.pool, pool, store_name)
end
end
end
diff --git a/lib/gitlab/redis/wrapper.rb b/lib/gitlab/redis/wrapper.rb
index bb231eec226..1f5d8ab7c9b 100644
--- a/lib/gitlab/redis/wrapper.rb
+++ b/lib/gitlab/redis/wrapper.rb
@@ -19,7 +19,7 @@ module Gitlab
InvalidPathError = Class.new(StandardError)
class << self
- delegate :params, :url, :store, :encrypted_secrets, to: :new
+ delegate :params, :url, :store, :encrypted_secrets, :redis_client_params, to: :new
def with
pool.with { |redis| yield redis }
@@ -30,7 +30,12 @@ module Gitlab
end
def pool
- @pool ||= ConnectionPool.new(size: pool_size, name: store_name.underscore) { redis }
+ @pool ||= if config_fallback &&
+ config_fallback.params.except(:instrumentation_class) == params.except(:instrumentation_class)
+ config_fallback.pool
+ else
+ ConnectionPool.new(size: pool_size, name: store_name.underscore) { redis }
+ end
end
def pool_size
@@ -96,6 +101,33 @@ module Gitlab
redis_store_options
end
+ # redis_client_params modifies redis_store_options to be compatible with redis-client
+ # TODO: when redis-rb is updated to v5, there is no need to support 2 types of config format
+ def redis_client_params
+ options = redis_store_options
+
+ # avoid passing classes into options as Sidekiq scrubs the options with Marshal.dump + Marshal.load
+ # ref https://github.com/sidekiq/sidekiq/blob/v7.1.6/lib/sidekiq/redis_connection.rb#L37
+ #
+ # this does not play well with spring enabled as the forked process references the old constant
+ # we use strings to look up Gitlab::Instrumentation::Redis.storage_hash as a bypass
+ options[:custom] = { instrumentation_class: self.class.store_name }
+
+ # TODO: add support for cluster when upgrading to redis-rb v5.y.z we do not need cluster support
+ # as Sidekiq workload should not and does not run in a Redis Cluster
+ # support to be added in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134862
+ if options[:sentinels]
+ # name is required in RedisClient::SentinelConfig
+ # https://github.com/redis-rb/redis-client/blob/1ab081c1d0e47df5d55e011c9390c70b2eef6731/lib/redis_client/sentinel_config.rb#L17
+ options[:name] = options[:host]
+ options.except(:scheme, :instrumentation_class, :host, :port)
+ else
+ # remove disallowed keys as seen in
+ # https://github.com/redis-rb/redis-client/blob/1ab081c1d0e47df5d55e011c9390c70b2eef6731/lib/redis_client/config.rb#L21
+ options.except(:scheme, :instrumentation_class)
+ end
+ end
+
def url
raw_config_hash[:url]
end
@@ -183,6 +215,7 @@ module Gitlab
config
else
redis_hash = ::Redis::Store::Factory.extract_host_options_from_uri(redis_url)
+ redis_hash[:ssl] = true if redis_hash[:scheme] == 'rediss'
# order is important here, sentinels must be after the connection keys.
# {url: ..., port: ..., sentinels: [...]}
redis_hash.merge(config)
diff --git a/lib/gitlab/runtime.rb b/lib/gitlab/runtime.rb
index 269fb74ceca..e560db7ace8 100644
--- a/lib/gitlab/runtime.rb
+++ b/lib/gitlab/runtime.rb
@@ -89,12 +89,11 @@ module Gitlab
if puma? && ::Puma.respond_to?(:cli_config)
threads += ::Puma.cli_config.options[:max_threads]
elsif sidekiq?
- # 2 extra threads for the pollers in Sidekiq and Sidekiq Cron:
- # https://github.com/ondrejbartas/sidekiq-cron#under-the-hood
+ # Sidekiq has a internal connection pool to handle heartbeat, scheduled polls,
+ # cron polls and housekeeping. max_threads can match Sidekqi process's concurrency.
#
- # These threads execute Sidekiq client middleware when jobs
- # are enqueued and those can access DB / Redis.
- threads += Sidekiq[:concurrency] + 2
+ # The Sidekiq main thread does not perform GitLab-related logic, so we can ignore it.
+ threads = Sidekiq.default_configuration[:concurrency]
end
if puma?
diff --git a/lib/gitlab/security/features.rb b/lib/gitlab/security/features.rb
new file mode 100644
index 00000000000..2176e588d77
--- /dev/null
+++ b/lib/gitlab/security/features.rb
@@ -0,0 +1,134 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Security
+ class Features
+ # rubocop: disable Metrics/AbcSize -- Generate dynamic translation as per
+ # https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic
+ def self.data
+ {
+ sast: {
+ name: _('Static Application Security Testing (SAST)'),
+ short_name: _('SAST'),
+ description: _('Analyze your source code for known vulnerabilities.'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path('user/application_security/sast/index'),
+ configuration_help_path: Gitlab::Routing.url_helpers.help_page_path('user/application_security/sast/index',
+ anchor: 'configuration'),
+ type: 'sast'
+ },
+ sast_iac: {
+ name: _('Infrastructure as Code (IaC) Scanning'),
+ short_name: s_('ciReport|SAST IaC'),
+ description: _('Analyze your infrastructure as code configuration files for known vulnerabilities.'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path('user/application_security/iac_scanning/index'),
+ configuration_help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/iac_scanning/index',
+ anchor: 'configuration'),
+ type: 'sast_iac'
+ },
+ dast: {
+ badge: {
+ text: _('Available on demand'),
+ tooltip_text: _(
+ 'On-demand scans run outside of the DevOps cycle and find vulnerabilities in your projects'),
+ variant: 'info'
+ },
+ secondary: {
+ type: 'dast_profiles',
+ name: _('DAST profiles'),
+ description: s_('SecurityConfiguration|Manage profiles for use by DAST scans.'),
+ configuration_text: s_('SecurityConfiguration|Manage profiles')
+ },
+ name: _('Dynamic Application Security Testing (DAST)'),
+ short_name: s_('ciReport|DAST'),
+ description: s_('ciReport|Analyze a deployed version of your web application for known ' \
+ 'vulnerabilities by examining it from the outside in. DAST works ' \
+ 'by simulating external attacks on your application while it is running.'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path('user/application_security/dast/index'),
+ configuration_help_path: Gitlab::Routing.url_helpers.help_page_path('user/application_security/dast/index',
+ anchor: 'enable-automatic-dast-run'),
+ type: 'dast',
+ anchor: 'dast'
+ },
+ dependency_scanning: {
+ name: _('Dependency Scanning'),
+ description: _('Analyze your dependencies for known vulnerabilities.'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/dependency_scanning/index'),
+ configuration_help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/dependency_scanning/index', anchor: 'configuration'),
+ type: 'dependency_scanning',
+ anchor: 'dependency-scanning'
+ },
+ container_scanning: {
+ name: _('Container Scanning'),
+ description: _('Check your Docker images for known vulnerabilities.'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/container_scanning/index'),
+ configuration_help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/container_scanning/index', anchor: 'configuration'),
+ type: 'container_scanning'
+ },
+ secret_detection: {
+ name: _('Secret Detection'),
+ description: _('Analyze your source code and git history for secrets.'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/secret_detection/index'),
+ configuration_help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/secret_detection/index', anchor: 'configuration'),
+ type: 'secret_detection'
+ },
+ api_fuzzing: {
+ name: _('API Fuzzing'),
+ description: _('Find bugs in your code with API fuzzing.'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/api_fuzzing/index'),
+ type: 'api_fuzzing'
+ },
+ coverage_fuzzing: {
+ name: _('Coverage Fuzzing'),
+ description: _('Find bugs in your code with coverage-guided fuzzing.'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/coverage_fuzzing/index'),
+ configuration_help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/coverage_fuzzing/index', anchor: 'enable-coverage-guided-fuzz-testing'),
+ type: 'coverage_fuzzing',
+ secondary: {
+ type: 'corpus_management',
+ name: _('Corpus Management'),
+ description: s_('SecurityConfiguration|Manage corpus files used as seed ' \
+ 'inputs with coverage-guided fuzzing.'),
+ configuration_text: s_('SecurityConfiguration|Manage corpus')
+ }
+ },
+ breach_and_attack_simulation: {
+ anchor: 'bas',
+ badge: {
+ always_display: true,
+ text: s_('SecurityConfiguration|Incubating feature'),
+ tooltip_text: s_('SecurityConfiguration|Breach and Attack Simulation is an incubating ' \
+ 'feature extending existing security testing by simulating adversary activity.'),
+ variant: 'info'
+ },
+ description: s_('SecurityConfiguration|Simulate breach and attack scenarios against your ' \
+ 'running application by attempting to detect and exploit known vulnerabilities.'),
+ name: s_('SecurityConfiguration|Breach and Attack Simulation (BAS)'),
+ help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/breach_and_attack_simulation/index'),
+ secondary: {
+ configuration_help_path: Gitlab::Routing.url_helpers.help_page_path(
+ 'user/application_security/breach_and_attack_simulation/index',
+ anchor: 'extend-dynamic-application-security-testing-dast'),
+ description: s_('SecurityConfiguration|Enable incubating Breach and Attack Simulation focused ' \
+ 'features such as callback attacks in your DAST scans.'),
+ name: s_('SecurityConfiguration|Out-of-Band Application Security Testing (OAST)')
+ },
+ short_name: s_('SecurityConfiguration|BAS'),
+ type: 'breach_and_attack_simulation'
+ }
+ }.freeze
+ end
+ # rubocop: enable Metrics/AbcSize
+ end
+ end
+end
diff --git a/lib/gitlab/security/scan_configuration.rb b/lib/gitlab/security/scan_configuration.rb
index 18767dd332a..c5faf3f589f 100644
--- a/lib/gitlab/security/scan_configuration.rb
+++ b/lib/gitlab/security/scan_configuration.rb
@@ -37,6 +37,10 @@ module Gitlab
false
end
+ def security_features
+ Features.data[type] || {}
+ end
+
private
attr_reader :project, :configured
diff --git a/lib/gitlab/sidekiq_config.rb b/lib/gitlab/sidekiq_config.rb
index b2ff80b2357..f4dabb7498f 100644
--- a/lib/gitlab/sidekiq_config.rb
+++ b/lib/gitlab/sidekiq_config.rb
@@ -1,6 +1,7 @@
# frozen_string_literal: true
require 'yaml'
+require 'sidekiq/capsule'
module Gitlab
module SidekiqConfig
@@ -161,7 +162,7 @@ module Gitlab
# the current Sidekiq process
def current_worker_queue_mappings
worker_queue_mappings
- .select { |worker, queue| Sidekiq[:queues].include?(queue) }
+ .select { |worker, queue| Sidekiq.default_configuration.queues.include?(queue) }
.to_h
end
diff --git a/lib/gitlab/sidekiq_config/cli_methods.rb b/lib/gitlab/sidekiq_config/cli_methods.rb
index c49180a6c1c..5c69a87f366 100644
--- a/lib/gitlab/sidekiq_config/cli_methods.rb
+++ b/lib/gitlab/sidekiq_config/cli_methods.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require 'yaml'
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
# These methods are called by `sidekiq-cluster`, which runs outside of
# the bundler/Rails context, so we cannot use any gem or Rails methods.
diff --git a/lib/gitlab/sidekiq_logging/structured_logger.rb b/lib/gitlab/sidekiq_logging/structured_logger.rb
index c65d9c5ddd5..4754417639f 100644
--- a/lib/gitlab/sidekiq_logging/structured_logger.rb
+++ b/lib/gitlab/sidekiq_logging/structured_logger.rb
@@ -16,11 +16,11 @@ module Gitlab
ActiveRecord::LogSubscriber.reset_runtime
- Sidekiq.logger.info log_job_start(job, base_payload)
+ @logger.info log_job_start(job, base_payload)
yield
- Sidekiq.logger.info log_job_done(job, started_time, base_payload)
+ @logger.info log_job_done(job, started_time, base_payload)
rescue Sidekiq::JobRetry::Handled => job_exception
# Sidekiq::JobRetry::Handled is raised by the internal Sidekiq
# processor. It is a wrapper around real exception indicating an
@@ -29,11 +29,11 @@ module Gitlab
#
# For more information:
# https://github.com/mperham/sidekiq/blob/v5.2.7/lib/sidekiq/processor.rb#L173
- Sidekiq.logger.warn log_job_done(job, started_time, base_payload, job_exception.cause || job_exception)
+ @logger.warn log_job_done(job, started_time, base_payload, job_exception.cause || job_exception)
raise
rescue StandardError => job_exception
- Sidekiq.logger.warn log_job_done(job, started_time, base_payload, job_exception)
+ @logger.warn log_job_done(job, started_time, base_payload, job_exception)
raise
end
diff --git a/lib/gitlab/sidekiq_middleware/server_metrics.rb b/lib/gitlab/sidekiq_middleware/server_metrics.rb
index 37a9ed37891..e65761fc1b6 100644
--- a/lib/gitlab/sidekiq_middleware/server_metrics.rb
+++ b/lib/gitlab/sidekiq_middleware/server_metrics.rb
@@ -64,7 +64,7 @@ module Gitlab
def initialize_process_metrics
metrics = self.metrics
- metrics[:sidekiq_concurrency].set({}, Sidekiq[:concurrency].to_i)
+ metrics[:sidekiq_concurrency].set({}, Sidekiq.default_configuration[:concurrency].to_i)
return unless ::Feature.enabled?(:sidekiq_job_completion_metric_initialize)
diff --git a/lib/gitlab/sidekiq_migrate_jobs.rb b/lib/gitlab/sidekiq_migrate_jobs.rb
index 2467dd7ca43..cf4893b8745 100644
--- a/lib/gitlab/sidekiq_migrate_jobs.rb
+++ b/lib/gitlab/sidekiq_migrate_jobs.rb
@@ -16,17 +16,14 @@ module Gitlab
# Migrate jobs in SortedSets, i.e. scheduled and retry sets.
def migrate_set(sidekiq_set)
source_queues_regex = Regexp.union(mappings.keys)
- cursor = 0
scanned = 0
migrated = 0
estimated_size = Sidekiq.redis { |c| c.zcard(sidekiq_set) }
logger&.info("Processing #{sidekiq_set} set. Estimated size: #{estimated_size}.")
- begin
- cursor, jobs = Sidekiq.redis { |c| c.zscan(sidekiq_set, cursor) }
-
- jobs.each do |(job, score)|
+ Sidekiq.redis do |c|
+ c.zscan(sidekiq_set) do |job, score|
if scanned > 0 && scanned % LOG_FREQUENCY == 0
logger&.info("In progress. Scanned records: #{scanned}. Migrated records: #{migrated}.")
end
@@ -45,7 +42,7 @@ module Gitlab
migrated += migrate_job_in_set(sidekiq_set, job, score, job_hash)
end
- end while cursor.to_i != 0
+ end
logger&.info("Done. Scanned records: #{scanned}. Migrated records: #{migrated}.")
@@ -61,7 +58,7 @@ module Gitlab
logger&.info("List of queues based on routing rules: #{routing_rules_queues}")
Sidekiq.redis do |conn|
# Redis 6 supports conn.scan_each(match: "queue:*", type: 'list')
- conn.scan_each(match: "queue:*") do |key|
+ conn.scan("MATCH", "queue:*") do |key|
# Redis 5 compatibility
next unless conn.type(key) == 'list'
@@ -101,13 +98,9 @@ module Gitlab
Sidekiq.redis do |connection|
removed = connection.zrem(sidekiq_set, job)
- if removed
- connection.zadd(sidekiq_set, score, Gitlab::Json.dump(job_hash))
+ connection.zadd(sidekiq_set, score, Gitlab::Json.dump(job_hash)) if removed > 0
- 1
- else
- 0
- end
+ removed
end
end
diff --git a/lib/gitlab/sidekiq_status.rb b/lib/gitlab/sidekiq_status.rb
index 496ed9de828..c25e4e776cd 100644
--- a/lib/gitlab/sidekiq_status.rb
+++ b/lib/gitlab/sidekiq_status.rb
@@ -37,7 +37,7 @@ module Gitlab
return unless expire
with_redis do |redis|
- redis.set(key_for(jid), 1, ex: expire)
+ redis.set(key_for(jid), 1, ex: expire.to_i)
end
end
@@ -56,7 +56,7 @@ module Gitlab
# expire - The expiration time of the Redis key.
def self.expire(jid, expire = DEFAULT_EXPIRATION)
with_redis do |redis|
- redis.expire(key_for(jid), expire)
+ redis.expire(key_for(jid), expire.to_i)
end
end
diff --git a/lib/gitlab/ssh/commit.rb b/lib/gitlab/ssh/commit.rb
index 7d7cc529b1a..4ea64e117ac 100644
--- a/lib/gitlab/ssh/commit.rb
+++ b/lib/gitlab/ssh/commit.rb
@@ -10,7 +10,7 @@ module Gitlab
end
def attributes
- signature = ::Gitlab::Ssh::Signature.new(signature_text, signed_text, signer, @commit.committer_email)
+ signature = ::Gitlab::Ssh::Signature.new(signature_text, signed_text, signer, @commit)
{
commit_sha: @commit.sha,
diff --git a/lib/gitlab/ssh/signature.rb b/lib/gitlab/ssh/signature.rb
index 6b0cab75557..5f4b6cdcb8d 100644
--- a/lib/gitlab/ssh/signature.rb
+++ b/lib/gitlab/ssh/signature.rb
@@ -11,11 +11,12 @@ module Gitlab
GIT_NAMESPACE = 'git'
- def initialize(signature_text, signed_text, signer, committer_email)
+ def initialize(signature_text, signed_text, signer, commit)
@signature_text = signature_text
@signed_text = signed_text
@signer = signer
- @committer_email = committer_email
+ @commit = commit
+ @committer_email = commit.committer_email
end
def verification_status
@@ -23,15 +24,8 @@ module Gitlab
next :unverified unless all_attributes_present?
next :verified_system if verified_by_gitlab?
next :unverified unless valid_signature_blob?
- next :unknown_key unless signed_by_key
- next :other_user unless committer
- next :other_user unless signed_by_key.user == committer
-
- if signed_by_user_email_verified?
- :verified
- else
- :unverified
- end
+
+ calculate_verification_status
end
end
@@ -44,15 +38,23 @@ module Gitlab
end
def key_fingerprint
- strong_memoize(:key_fingerprint) { signature&.public_key&.fingerprint }
+ strong_memoize(:key_fingerprint) do
+ public_key = signature&.public_key
+
+ next public_key.public_key.fingerprint if public_key.is_a?(SSHData::Certificate)
+
+ public_key.fingerprint
+ end
end
private
+ attr_reader :commit, :committer_email
+
def all_attributes_present?
# Signing an empty string is valid, but signature_text and committer_email
# must be non-empty.
- @signed_text && @signature_text.present? && @committer_email.present?
+ @signed_text && @signature_text.present? && committer_email.present?
end
# Verifies the signature using the public key embedded in the blob.
@@ -66,14 +68,23 @@ module Gitlab
signature.verify(@signed_text)
end
- def committer
+ def calculate_verification_status
+ return :unknown_key unless signed_by_key
+ return :other_user unless committer?
+ return :unverified unless signed_by_user_email_verified?
+
+ :verified
+ end
+
+ def committer?
# Lookup by email because users can push verified commits that were made
# by someone else. For example: Doing a rebase.
- strong_memoize(:committer) { User.find_by_any_email(@committer_email) }
+ committer = User.find_by_any_email(committer_email)
+ committer && signed_by_key.user == committer
end
def signed_by_user_email_verified?
- signed_by_key.user.verified_emails.include?(@committer_email)
+ signed_by_key.user.verified_emails.include?(committer_email)
end
def signature
@@ -95,3 +106,5 @@ module Gitlab
end
end
end
+
+Gitlab::Ssh::Signature.prepend_mod
diff --git a/lib/gitlab/themes.rb b/lib/gitlab/themes.rb
index 102104644f7..a26b4d5bbcb 100644
--- a/lib/gitlab/themes.rb
+++ b/lib/gitlab/themes.rb
@@ -10,22 +10,22 @@ module Gitlab
APPLICATION_DEFAULT = 3
# Struct class representing a single Theme
- Theme = Struct.new(:id, :name, :css_class, :css_filename, :primary_color)
+ Theme = Struct.new(:id, :name, :css_class, :primary_color)
# All available Themes
def available_themes
[
- Theme.new(1, s_('NavigationTheme|Indigo'), 'ui-indigo', 'theme_indigo', '#222261'),
- Theme.new(6, s_('NavigationTheme|Light Indigo'), 'ui-light-indigo', 'theme_light_indigo', '#41419f'),
- Theme.new(4, s_('NavigationTheme|Blue'), 'ui-blue', 'theme_blue', '#0b2640'),
- Theme.new(7, s_('NavigationTheme|Light Blue'), 'ui-light-blue', 'theme_light_blue', '#145aa1'),
- Theme.new(5, s_('NavigationTheme|Green'), 'ui-green', 'theme_green', '#0e4328'),
- Theme.new(8, s_('NavigationTheme|Light Green'), 'ui-light-green', 'theme_light_green', '#1b653f'),
- Theme.new(9, s_('NavigationTheme|Red'), 'ui-red', 'theme_red', '#580d02'),
- Theme.new(10, s_('NavigationTheme|Light Red'), 'ui-light-red', 'theme_light_red', '#a02e1c'),
- Theme.new(2, s_('NavigationTheme|Gray'), 'ui-gray', 'theme_gray', '#333238'),
- Theme.new(3, s_('NavigationTheme|Light Gray'), 'ui-light-gray', 'theme_light_gray', '#ececef'),
- Theme.new(11, s_('NavigationTheme|Dark Mode (alpha)'), 'gl-dark', nil, '#1f1e24')
+ Theme.new(1, s_('NavigationTheme|Indigo'), 'ui-indigo', '#222261'),
+ Theme.new(6, s_('NavigationTheme|Light Indigo'), 'ui-light-indigo', '#41419f'),
+ Theme.new(4, s_('NavigationTheme|Blue'), 'ui-blue', '#0b2640'),
+ Theme.new(7, s_('NavigationTheme|Light Blue'), 'ui-light-blue', '#145aa1'),
+ Theme.new(5, s_('NavigationTheme|Green'), 'ui-green', '#0e4328'),
+ Theme.new(8, s_('NavigationTheme|Light Green'), 'ui-light-green', '#1b653f'),
+ Theme.new(9, s_('NavigationTheme|Red'), 'ui-red', '#580d02'),
+ Theme.new(10, s_('NavigationTheme|Light Red'), 'ui-light-red', '#a02e1c'),
+ Theme.new(2, s_('NavigationTheme|Gray'), 'ui-gray', '#333238'),
+ Theme.new(3, s_('NavigationTheme|Light Gray'), 'ui-light-gray', '#ececef'),
+ Theme.new(11, s_('NavigationTheme|Dark Mode (alpha)'), 'gl-dark', '#1f1e24')
]
end
diff --git a/lib/gitlab/tracking.rb b/lib/gitlab/tracking.rb
index 0b606b712c7..df10555f006 100644
--- a/lib/gitlab/tracking.rb
+++ b/lib/gitlab/tracking.rb
@@ -33,21 +33,6 @@ module Gitlab
track_struct_event(tracker, category, action, label: label, property: property, value: value, contexts: contexts)
end
- def database_event(category, action, label: nil, property: nil, value: nil, context: [], project: nil, user: nil, namespace: nil, **extra) # rubocop:disable Metrics/ParameterLists
- action = action.to_s
- destination = Gitlab::Tracking::Destinations::DatabaseEventsSnowplow.new
- contexts = [
- Tracking::StandardContext.new(
- namespace_id: namespace&.id,
- plan_name: namespace&.actual_plan_name,
- project_id: project&.id,
- user_id: user&.id,
- **extra).to_context, *context
- ]
-
- track_struct_event(destination, category, action, label: label, property: property, value: value, contexts: contexts)
- end
-
def definition(basename, category: nil, action: nil, label: nil, property: nil, value: nil, context: [], project: nil, user: nil, namespace: nil, **extra) # rubocop:disable Metrics/ParameterLists
definition = YAML.load_file(Rails.root.join("config/events/#{basename}.yml"))
diff --git a/lib/gitlab/tracking/destinations/database_events_snowplow.rb b/lib/gitlab/tracking/destinations/database_events_snowplow.rb
deleted file mode 100644
index 458d7f0c129..00000000000
--- a/lib/gitlab/tracking/destinations/database_events_snowplow.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-# frozen_string_literal: true
-
-module Gitlab
- module Tracking
- module Destinations
- class DatabaseEventsSnowplow < Snowplow
- extend ::Gitlab::Utils::Override
-
- HOSTNAME = 'db-snowplow.trx.gitlab.net'
-
- override :enabled?
- # database events are only collected for SaaS instance
- def enabled?
- ::Gitlab.dev_or_test_env? || ::Gitlab.com?
- end
-
- override :hostname
- def hostname
- return Gitlab::CurrentSettings.snowplow_database_collector_hostname || HOSTNAME if ::Gitlab.com?
-
- 'localhost:9091'
- end
-
- private
-
- override :increment_failed_events_emissions
- def increment_failed_events_emissions(value)
- Gitlab::Metrics.counter(
- :gitlab_db_events_snowplow_failed_events_total,
- 'Number of failed Snowplow events emissions'
- ).increment({}, value.to_i)
- end
-
- override :increment_successful_events_emissions
- def increment_successful_events_emissions(value)
- Gitlab::Metrics.counter(
- :gitlab_db_events_snowplow_successful_events_total,
- 'Number of successful Snowplow events emissions'
- ).increment({}, value.to_i)
- end
-
- override :increment_total_events_counter
- def increment_total_events_counter
- Gitlab::Metrics.counter(
- :gitlab_db_events_snowplow_events_total,
- 'Number of Snowplow events'
- ).increment
- end
- end
- end
- end
-end
diff --git a/lib/gitlab/tracking/event_definition.rb b/lib/gitlab/tracking/event_definition.rb
index 9d197de454e..ce8263e824b 100644
--- a/lib/gitlab/tracking/event_definition.rb
+++ b/lib/gitlab/tracking/event_definition.rb
@@ -27,7 +27,7 @@ module Gitlab
definition = YAML.safe_load(definition)
definition.deep_symbolize_keys!
- self.new(path, definition).tap(&:validate!)
+ self.new(path, definition)
rescue StandardError => e
Gitlab::ErrorTracking.track_and_raise_for_dev_exception(Gitlab::Tracking::InvalidEventError.new(e.message))
end
@@ -51,17 +51,15 @@ module Gitlab
path.delete_prefix(Rails.root.to_s)
end
- def validate!
- SCHEMA.validate(attributes.stringify_keys).each do |error|
- error_message = <<~ERROR_MSG
+ def validation_errors
+ SCHEMA.validate(attributes.stringify_keys).map do |error|
+ <<~ERROR_MSG
+ --------------- VALIDATION ERROR ---------------
+ Definition file: #{path}
Error type: #{error['type']}
Data: #{error['data']}
Path: #{error['data_pointer']}
- Details: #{error['details']}
- Definition file: #{path}
ERROR_MSG
-
- Gitlab::ErrorTracking.track_and_raise_for_dev_exception(Gitlab::Tracking::InvalidEventError.new(error_message))
end
end
diff --git a/lib/gitlab/usage/metric_definition.rb b/lib/gitlab/usage/metric_definition.rb
index 5eddf8da7dd..71d3680e67e 100644
--- a/lib/gitlab/usage/metric_definition.rb
+++ b/lib/gitlab/usage/metric_definition.rb
@@ -59,17 +59,15 @@ module Gitlab
attributes[:value_type] == 'object' && attributes[:value_json_schema].present?
end
- def validate!
- errors.each do |error|
- error_message = <<~ERROR_MSG
+ def validation_errors
+ errors.map do |error|
+ <<~ERROR_MSG
+ --------------- VALIDATION ERROR ---------------
+ Metric file: #{path}
Error type: #{error['type']}
Data: #{error['data']}
Path: #{error['data_pointer']}
- Details: #{error['details']}
- Metric file: #{path}
ERROR_MSG
-
- Gitlab::ErrorTracking.track_and_raise_for_dev_exception(InvalidError.new(error_message))
end
end
diff --git a/lib/gitlab/usage_data_counters/ci_template_unique_counter.rb b/lib/gitlab/usage_data_counters/ci_template_unique_counter.rb
index e0a4f879f48..b8a964be59a 100644
--- a/lib/gitlab/usage_data_counters/ci_template_unique_counter.rb
+++ b/lib/gitlab/usage_data_counters/ci_template_unique_counter.rb
@@ -30,21 +30,6 @@ module Gitlab::UsageDataCounters
Gitlab::Template::GitlabCiYmlTemplate.find(template_name.chomp('.gitlab-ci.yml'))&.full_name
end
- def all_included_templates(template_name)
- expanded_template_name = expand_template_name(template_name)
- results = [expanded_template_name].tap do |result|
- template = Gitlab::Template::GitlabCiYmlTemplate.find(template_name.chomp('.gitlab-ci.yml'))
- data = Gitlab::Ci::Config::Yaml::Loader.new(template.content).load.content
- [data[:include]].compact.flatten.each do |ci_include|
- if ci_include_template = ci_include[:template]
- result.concat(all_included_templates(ci_include_template))
- end
- end
- end
-
- results.uniq.sort_by { _1['name'] }
- end
-
private
def template_to_event_name(template)
diff --git a/lib/gitlab/usage_data_counters/hll_redis_counter.rb b/lib/gitlab/usage_data_counters/hll_redis_counter.rb
index b0444066722..137b6f90545 100644
--- a/lib/gitlab/usage_data_counters/hll_redis_counter.rb
+++ b/lib/gitlab/usage_data_counters/hll_redis_counter.rb
@@ -8,6 +8,7 @@ module Gitlab
module HLLRedisCounter
KEY_EXPIRY_LENGTH = 6.weeks
REDIS_SLOT = 'hll_counters'
+ KEY_OVERRIDES_PATH = Rails.root.join('lib/gitlab/usage_data_counters/hll_redis_key_overrides.yml')
EventError = Class.new(StandardError)
UnknownEvent = Class.new(EventError)
@@ -22,6 +23,7 @@ module Gitlab
include Gitlab::Utils::UsageData
include Gitlab::Usage::TimeFrame
include Gitlab::Usage::TimeSeriesStorable
+ include Gitlab::Utils::StrongMemoize
# Track unique events
#
@@ -105,13 +107,23 @@ module Gitlab
end
def redis_key(event, time)
- raise UnknownEvent, "Unknown event #{event[:name]}" unless known_events_names.include?(event[:name].to_s)
-
- key = "{#{REDIS_SLOT}}_#{event[:name]}"
+ key = redis_key_base(event[:name])
year_week = time.strftime('%G-%V')
- "#{key}-#{year_week}"
+ "{#{REDIS_SLOT}}_#{key}-#{year_week}"
+ end
+
+ def redis_key_base(event_name)
+ raise UnknownEvent, "Unknown event #{event_name}" unless known_events_names.include?(event_name.to_s)
+
+ key_overrides.fetch(event_name, event_name)
end
+
+ def key_overrides
+ YAML.safe_load(File.read(KEY_OVERRIDES_PATH))
+ end
+
+ strong_memoize_attr :key_overrides
end
end
end
diff --git a/lib/gitlab/usage_data_counters/hll_redis_key_overrides.yml b/lib/gitlab/usage_data_counters/hll_redis_key_overrides.yml
new file mode 100644
index 00000000000..0967ef424bc
--- /dev/null
+++ b/lib/gitlab/usage_data_counters/hll_redis_key_overrides.yml
@@ -0,0 +1 @@
+{}
diff --git a/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb b/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb
index d26b7ce951d..db48095ab74 100644
--- a/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb
+++ b/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb
@@ -6,7 +6,6 @@ module Gitlab
MR_DIFFS_ACTION = 'i_code_review_mr_diffs'
MR_DIFFS_SINGLE_FILE_ACTION = 'i_code_review_mr_single_file_diffs'
MR_DIFFS_USER_SINGLE_FILE_ACTION = 'i_code_review_user_single_file_diffs'
- MR_CREATE_ACTION = 'i_code_review_create_mr'
MR_USER_CREATE_ACTION = 'i_code_review_user_create_mr'
MR_CLOSE_ACTION = 'i_code_review_user_close_mr'
MR_REOPEN_ACTION = 'i_code_review_user_reopen_mr'
@@ -64,15 +63,10 @@ module Gitlab
end
def track_create_mr_action(user:, merge_request:)
- track_unique_action_by_merge_request(MR_CREATE_ACTION, merge_request)
-
- project = merge_request.target_project
-
Gitlab::InternalEvents.track_event(
MR_USER_CREATE_ACTION,
user: user,
- project: project,
- namespace: project.namespace
+ project: merge_request.target_project
)
end
diff --git a/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb b/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb
index 557179ad57a..6e4c5d4e845 100644
--- a/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb
+++ b/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb
@@ -19,6 +19,8 @@ module Gitlab
def prepare_name(name, args)
case name
+ when 'react'
+ 'award'
when 'assign'
event_name_for_assign(args)
when 'copy_metadata'
@@ -35,6 +37,8 @@ module Gitlab
event_name_for_unlabel(args)
when 'invite_email'
'invite_email' + event_name_quantifier(args.split)
+ when 'remove_email'
+ 'remove_email' + event_name_quantifier(args.split)
else
name
end
diff --git a/lib/gitlab/usage_data_counters/work_item_activity_unique_counter.rb b/lib/gitlab/usage_data_counters/work_item_activity_unique_counter.rb
index b99c9ebb24f..3a090c0a3d1 100644
--- a/lib/gitlab/usage_data_counters/work_item_activity_unique_counter.rb
+++ b/lib/gitlab/usage_data_counters/work_item_activity_unique_counter.rb
@@ -8,6 +8,7 @@ module Gitlab
WORK_ITEM_DATE_CHANGED = 'users_updating_work_item_dates'
WORK_ITEM_LABELS_CHANGED = 'users_updating_work_item_labels'
WORK_ITEM_MILESTONE_CHANGED = 'users_updating_work_item_milestone'
+ WORK_ITEM_TODO_MARKED = 'users_updating_work_item_todo'
class << self
def track_work_item_created_action(author:)
@@ -30,6 +31,10 @@ module Gitlab
track_unique_action(WORK_ITEM_MILESTONE_CHANGED, author)
end
+ def track_work_item_mark_todo_action(author:)
+ track_unique_action(WORK_ITEM_TODO_MARKED, author)
+ end
+
private
def track_unique_action(action, author)
diff --git a/lib/integrations/google_cloud_platform/artifact_registry/client.rb b/lib/integrations/google_cloud_platform/artifact_registry/client.rb
index ae41aa2614e..32e09821814 100644
--- a/lib/integrations/google_cloud_platform/artifact_registry/client.rb
+++ b/lib/integrations/google_cloud_platform/artifact_registry/client.rb
@@ -15,11 +15,13 @@ module Integrations
end
def list_docker_images(page_token: nil)
+ url = list_docker_images_url
response = ::Gitlab::HTTP.get(
- list_docker_images_url,
+ url,
headers: headers,
query: query_params(page_token: page_token),
- format: :plain # disable httparty json parsing
+ format: :plain, # disable httparty json parsing
+ extra_allowed_uris: [URI(GLGO_BASE_URL)]
)
if response.success?
diff --git a/lib/integrations/google_cloud_platform/base_client.rb b/lib/integrations/google_cloud_platform/base_client.rb
index 56c05e7987b..937454cda43 100644
--- a/lib/integrations/google_cloud_platform/base_client.rb
+++ b/lib/integrations/google_cloud_platform/base_client.rb
@@ -6,7 +6,7 @@ module Integrations
GLGO_BASE_URL = if Gitlab.staging?
'https://glgo.staging.runway.gitlab.net'
else
- 'http://glgo.runway.gitlab.net/'
+ 'https://glgo.runway.gitlab.net'
end
def initialize(project:, user:)
diff --git a/lib/quality/seeders/issues.rb b/lib/quality/seeders/issues.rb
index 813ff0bf097..de7b275d43e 100644
--- a/lib/quality/seeders/issues.rb
+++ b/lib/quality/seeders/issues.rb
@@ -45,7 +45,7 @@ module Quality
created_at += 1.week
- break if created_at > Time.now
+ break if created_at.future?
end
created_issues_count
diff --git a/lib/sidebars/groups/menus/settings_menu.rb b/lib/sidebars/groups/menus/settings_menu.rb
index ece6460bb89..d20dec2f8b9 100644
--- a/lib/sidebars/groups/menus/settings_menu.rb
+++ b/lib/sidebars/groups/menus/settings_menu.rb
@@ -6,28 +6,17 @@ module Sidebars
class SettingsMenu < ::Sidebars::Menu
override :configure_menu_items
def configure_menu_items
- if can?(context.current_user, :admin_group, context.group)
- add_item(general_menu_item)
- add_item(integrations_menu_item)
- add_item(access_tokens_menu_item)
- add_item(group_projects_menu_item)
- add_item(repository_menu_item)
- add_item(ci_cd_menu_item)
- add_item(applications_menu_item)
- add_item(packages_and_registries_menu_item)
- add_item(usage_quotas_menu_item)
- return true
- elsif Gitlab.ee? && can?(context.current_user, :change_push_rules, context.group)
- # Push Rules are the only group setting that can also be edited by maintainers.
- # Create an empty sub-menu here and EE adds Repository menu item (with only Push Rules).
- return true
- elsif Gitlab.ee? && can?(context.current_user, :read_billing, context.group)
- # Billing is the only group setting that is visible to auditors.
- # Create an empty sub-menu here and EE adds Settings menu item (with only Billing).
- return true
- end
-
- false
+ return unless can?(context.current_user, :admin_group, context.group)
+
+ add_item(general_menu_item)
+ add_item(integrations_menu_item)
+ add_item(access_tokens_menu_item)
+ add_item(group_projects_menu_item)
+ add_item(repository_menu_item)
+ add_item(ci_cd_menu_item)
+ add_item(applications_menu_item)
+ add_item(packages_and_registries_menu_item)
+ add_item(usage_quotas_menu_item)
end
override :title
diff --git a/lib/sidebars/organizations/menus/scope_menu.rb b/lib/sidebars/organizations/menus/scope_menu.rb
index a535be21280..559e57bc171 100644
--- a/lib/sidebars/organizations/menus/scope_menu.rb
+++ b/lib/sidebars/organizations/menus/scope_menu.rb
@@ -27,7 +27,7 @@ module Sidebars
override :serialize_as_menu_item_args
def serialize_as_menu_item_args
super.merge({
- avatar: nil,
+ avatar: context.container.avatar_url(size: 48),
entity_id: context.container.id,
super_sidebar_parent: ::Sidebars::StaticMenu,
item_id: :organization_overview
diff --git a/lib/sidebars/projects/menus/packages_registries_menu.rb b/lib/sidebars/projects/menus/packages_registries_menu.rb
index 5a378d5f9a8..0826349f6d3 100644
--- a/lib/sidebars/projects/menus/packages_registries_menu.rb
+++ b/lib/sidebars/projects/menus/packages_registries_menu.rb
@@ -11,6 +11,7 @@ module Sidebars
add_item(infrastructure_registry_menu_item)
add_item(harbor_registry_menu_item)
add_item(model_experiments_menu_item)
+ add_item(model_registry_menu_item)
true
end
@@ -47,7 +48,7 @@ module Sidebars
end
def container_registry_menu_item
- if !::Gitlab.config.registry.enabled || !can?(context.current_user, :read_container_image, context.project)
+ if container_registry_unavailable?
return ::Sidebars::NilMenuItem.new(item_id: :container_registry)
end
@@ -103,11 +104,32 @@ module Sidebars
)
end
+ def model_registry_menu_item
+ unless can?(context.current_user, :read_model_registry, context.project)
+ return ::Sidebars::NilMenuItem.new(item_id: :model_registry)
+ end
+
+ ::Sidebars::MenuItem.new(
+ title: _('Model registry'),
+ link: project_ml_models_path(context.project),
+ super_sidebar_parent: Sidebars::Projects::SuperSidebarMenus::DeployMenu,
+ active_routes: { controller: %w[projects/ml/models] },
+ item_id: :model_registry
+ )
+ end
+
def packages_registry_disabled?
!::Gitlab.config.packages.enabled ||
!can?(context.current_user, :read_package, context.project&.packages_policy_subject)
end
+
+ def container_registry_unavailable?
+ !::Gitlab.config.registry.enabled ||
+ !can?(context.current_user, :read_container_image, context.project)
+ end
end
end
end
end
+
+Sidebars::Projects::Menus::PackagesRegistriesMenu.prepend_mod_with('Sidebars::Projects::Menus::PackagesRegistriesMenu')
diff --git a/lib/sidebars/projects/super_sidebar_menus/deploy_menu.rb b/lib/sidebars/projects/super_sidebar_menus/deploy_menu.rb
index 9f667466d1c..f3f73fc4b78 100644
--- a/lib/sidebars/projects/super_sidebar_menus/deploy_menu.rb
+++ b/lib/sidebars/projects/super_sidebar_menus/deploy_menu.rb
@@ -20,7 +20,8 @@ module Sidebars
:releases,
:feature_flags,
:packages_registry,
- :container_registry
+ :container_registry,
+ :model_registry
].each { |id| add_item(::Sidebars::NilMenuItem.new(item_id: id)) }
end
end
diff --git a/lib/tasks/gitlab/cleanup.rake b/lib/tasks/gitlab/cleanup.rake
index ef9d2b5e13a..c20190a2f64 100644
--- a/lib/tasks/gitlab/cleanup.rake
+++ b/lib/tasks/gitlab/cleanup.rake
@@ -1,7 +1,7 @@
# frozen_string_literal: true
namespace :gitlab do
- require 'set'
+ require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
namespace :cleanup do
desc "GitLab | Cleanup | Block users that have been removed in LDAP"
@@ -51,7 +51,7 @@ namespace :gitlab do
end
end
- desc 'GitLab | Cleanup | Clean orphan job artifact files'
+ desc 'GitLab | Cleanup | Clean orphan job artifact files in local storage'
task orphan_job_artifact_files: :gitlab_environment do
warn_user_is_not_gitlab
@@ -63,6 +63,31 @@ namespace :gitlab do
end
end
+ desc 'GitLab | Cleanup | Clean orphan job artifact files stored in the @final directory in object storage'
+ task :orphan_job_artifact_final_objects, [:provider] => :gitlab_environment do |_, args|
+ warn_user_is_not_gitlab
+
+ force_restart = ENV['FORCE_RESTART'].present?
+
+ begin
+ cleaner = Gitlab::Cleanup::OrphanJobArtifactFinalObjectsCleaner.new(
+ provider: args.provider,
+ force_restart: force_restart,
+ dry_run: dry_run?,
+ logger: logger
+ )
+
+ cleaner.run!
+
+ if dry_run?
+ logger.info "To clean up all orphan files that were found, run this command with DRY_RUN=false".color(:yellow)
+ end
+ rescue Gitlab::Cleanup::OrphanJobArtifactFinalObjectsCleaner::UnsupportedProviderError => e
+ abort %(#{e.message}
+Usage: rake "gitlab:cleanup:orphan_job_artifact_final_objects[provider]")
+ end
+ end
+
desc 'GitLab | Cleanup | Clean orphan LFS file references'
task orphan_lfs_file_references: :gitlab_environment do
warn_user_is_not_gitlab
@@ -136,7 +161,7 @@ namespace :gitlab do
next unless latest_diff_sha
branches_to_delete << { reference: mr.source_branch_ref, old_sha: latest_diff_sha,
-new_sha: Gitlab::Git::BLANK_SHA }
+new_sha: Gitlab::Git::SHA1_BLANK_SHA }
break if number_deleted + branches_to_delete.size >= limit
end
diff --git a/lib/tasks/gitlab/usage_data.rake b/lib/tasks/gitlab/usage_data.rake
index 1cd72ee6a1b..09db25735d7 100644
--- a/lib/tasks/gitlab/usage_data.rake
+++ b/lib/tasks/gitlab/usage_data.rake
@@ -48,39 +48,5 @@ namespace :gitlab do
FileUtils.mkdir_p(path)
File.write(File.join(path, 'sql_metrics_queries.json'), Gitlab::Json.pretty_generate(queries))
end
-
- # Events for templates included via YAML-less Auto-DevOps
- def implicit_auto_devops_includes
- Gitlab::UsageDataCounters::CiTemplateUniqueCounter
- .all_included_templates('Auto-DevOps.gitlab-ci.yml')
- .map { |template| implicit_auto_devops_event(template) }
- .uniq
- .sort_by { _1['name'] }
- end
-
- # Events for templates included in a .gitlab-ci.yml using include:template
- def explicit_template_includes
- Gitlab::UsageDataCounters::CiTemplateUniqueCounter.ci_templates("lib/gitlab/ci/templates/").each_with_object([]) do |template, result|
- expanded_template_name = Gitlab::UsageDataCounters::CiTemplateUniqueCounter.expand_template_name(template)
- next unless expanded_template_name # guard against templates unavailable on FOSS
-
- event_name = Gitlab::UsageDataCounters::CiTemplateUniqueCounter.ci_template_event_name(expanded_template_name, :repository_source)
-
- result << ci_template_event(event_name)
- end
- end
-
- # rubocop:disable Gitlab/NoCodeCoverageComment
- # :nocov: remove in https://gitlab.com/gitlab-org/gitlab/-/issues/299453
- def ci_template_event(event_name)
- { 'name' => event_name }
- end
- # :nocov:
- # rubocop:enable Gitlab/NoCodeCoverageComment
-
- def implicit_auto_devops_event(expanded_template_name)
- event_name = Gitlab::UsageDataCounters::CiTemplateUniqueCounter.ci_template_event_name(expanded_template_name, :auto_devops_source)
- ci_template_event(event_name)
- end
end
end
diff --git a/locale/am_ET/gitlab.po b/locale/am_ET/gitlab.po
index 16922434284..91462ebab84 100644
--- a/locale/am_ET/gitlab.po
+++ b/locale/am_ET/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: am\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d አስተያየት"
msgstr[1] "%d አስተያየቶች"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d መዋጮ"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr "የ%{authorsName} ክር"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr "መለያዠበራሱ ከመወገዱ በáŠá‰µ %{days} ቀናት á‹­á‰
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- የSentry ክስተት: %{errorUrl}- በመጀመሪያ የታየá‹: %{firstSeen}- ለመጨረሻ ጊዜ የታየá‹: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} ተጨማሪ downstream pipelines"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} ተሰርዟáˆ"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ar_SA/gitlab.po b/locale/ar_SA/gitlab.po
index 905fbc1fc46..f6f1b92a546 100644
--- a/locale/ar_SA/gitlab.po
+++ b/locale/ar_SA/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ar\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:33\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -235,15 +235,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -298,15 +289,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -361,15 +343,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -514,6 +487,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -895,6 +877,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -949,15 +934,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -1111,12 +1087,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -1153,6 +1123,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1327,6 +1300,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1630,6 +1609,9 @@ msgstr[5] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1759,7 +1741,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1774,6 +1759,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1828,6 +1816,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1846,6 +1837,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1861,9 +1855,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1903,6 +1909,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1921,9 +1933,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1954,7 +1963,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2374,9 +2383,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2482,7 +2488,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2506,6 +2512,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2605,9 +2638,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2632,6 +2662,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2677,6 +2710,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2998,6 +3034,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3472,6 +3514,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3610,9 +3655,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3766,15 +3808,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3784,9 +3826,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -4144,6 +4183,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -4240,6 +4282,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4858,6 +4903,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4891,6 +4939,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -5002,18 +5053,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5362,6 +5419,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -5392,9 +5458,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5449,6 +5512,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5506,12 +5572,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5533,9 +5605,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5596,9 +5665,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5614,9 +5680,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5692,9 +5755,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5923,14 +5983,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -6100,6 +6154,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -6208,6 +6265,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6316,6 +6376,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6328,16 +6391,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6370,9 +6436,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6433,6 +6496,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6445,16 +6529,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6472,9 +6553,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -7036,9 +7114,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -7102,6 +7177,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -7117,9 +7195,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7339,9 +7414,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7357,6 +7429,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7483,13 +7558,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7591,7 +7663,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7669,6 +7741,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7705,6 +7780,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7798,6 +7879,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7987,12 +8071,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -8017,12 +8095,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -8074,9 +8158,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -8089,9 +8170,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -8101,9 +8179,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -8137,16 +8224,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -8158,7 +8248,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -8173,7 +8263,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -8278,9 +8368,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8638,6 +8725,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8668,13 +8758,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8692,10 +8782,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8740,12 +8830,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8767,7 +8851,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8968,12 +9055,6 @@ msgstr[5] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8992,9 +9073,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -9004,18 +9082,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -9028,51 +9100,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -9085,6 +9133,9 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -9106,9 +9157,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -9202,6 +9250,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -9211,6 +9262,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -9277,15 +9340,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -9343,6 +9418,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9361,6 +9442,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9373,6 +9457,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9673,6 +9760,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9706,9 +9799,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9718,16 +9820,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9745,6 +9856,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9799,7 +9916,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9862,9 +9982,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -10009,6 +10126,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -10030,6 +10150,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -10093,18 +10219,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -10123,16 +10237,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -10144,6 +10258,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10594,6 +10711,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10714,6 +10834,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10726,6 +10849,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10738,6 +10864,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10798,6 +10927,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10855,6 +10987,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10867,6 +11002,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10936,9 +11074,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -11002,6 +11137,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -11020,7 +11158,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -11032,18 +11173,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -11053,25 +11191,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -11080,6 +11239,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -11170,6 +11332,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -11257,13 +11431,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -11287,10 +11470,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11524,9 +11719,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12565,16 +12757,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsSM|Code Suggestions"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12583,7 +12793,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12592,22 +12802,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12742,6 +12952,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12790,6 +13003,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -13072,13 +13291,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -13096,6 +13351,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -13108,6 +13366,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -13117,10 +13378,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -13135,9 +13396,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -13150,6 +13417,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -13180,9 +13450,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -13201,12 +13477,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -13324,6 +13606,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13384,6 +13669,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13411,7 +13702,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13564,6 +13861,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13654,7 +13954,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13897,6 +14197,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -14086,6 +14389,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14437,7 +14743,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14449,6 +14755,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14512,6 +14821,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14584,9 +14896,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14770,6 +15079,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14833,6 +15145,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14863,9 +15178,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14995,9 +15307,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -15034,6 +15343,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -15244,6 +15556,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15454,6 +15769,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15745,9 +16066,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15781,6 +16099,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -16054,9 +16375,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -16090,6 +16408,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -16171,6 +16492,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -16348,9 +16672,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -16363,7 +16684,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16684,6 +17005,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -17014,21 +17338,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -17152,12 +17461,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -17176,9 +17491,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -17188,6 +17500,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -17224,18 +17539,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -17245,6 +17569,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17503,9 +17830,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -18184,6 +18508,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -18325,6 +18694,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18637,6 +19009,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18928,6 +19303,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18994,6 +19372,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -19090,6 +19471,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -19126,6 +19510,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -19141,9 +19528,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -19207,6 +19591,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -19222,9 +19609,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -19312,6 +19696,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19627,6 +20014,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19729,15 +20119,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19750,9 +20137,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19768,9 +20152,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19780,9 +20161,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19798,10 +20176,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20713,9 +21091,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20842,6 +21217,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20935,6 +21313,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20950,16 +21331,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20998,9 +21376,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -21028,18 +21403,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -21148,6 +21514,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21445,6 +21814,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21724,9 +22096,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -22051,6 +22420,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -22402,12 +22774,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -22417,12 +22783,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22531,12 +22891,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22594,9 +22948,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22618,6 +22969,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22705,9 +23059,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22804,9 +23164,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22936,7 +23293,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22954,7 +23311,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -23131,22 +23488,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -23206,6 +23563,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -23227,16 +23587,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -23266,9 +23623,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -23278,9 +23632,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -23395,9 +23746,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23467,6 +23815,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23479,6 +23830,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23515,10 +23869,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23548,9 +23902,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23689,6 +24040,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23782,10 +24136,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -24049,6 +24406,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -24070,6 +24430,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -24112,12 +24475,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -24142,6 +24514,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -24166,6 +24541,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -24208,6 +24589,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -24271,30 +24655,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -24355,7 +24715,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -24397,7 +24757,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24520,6 +24880,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24574,6 +24937,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24838,15 +25210,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "Hide values"
msgstr ""
@@ -24865,6 +25228,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24940,6 +25306,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -25030,6 +25399,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -25129,9 +25501,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -25147,7 +25516,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -25159,7 +25528,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -25231,6 +25603,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25528,9 +25903,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25711,10 +26083,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25729,6 +26101,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25744,6 +26119,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -26230,6 +26608,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -26365,9 +26746,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26758,9 +27136,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26971,10 +27346,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -27301,13 +27676,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -27412,6 +27787,15 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -27421,14 +27805,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27469,6 +27847,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27598,6 +27979,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27727,6 +28111,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27796,15 +28183,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27856,6 +28243,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27904,6 +28297,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -28063,7 +28459,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -28333,6 +28729,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -28342,6 +28741,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -28414,6 +28816,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28534,9 +28939,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28573,6 +28975,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28603,6 +29008,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28702,6 +29221,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28747,7 +29272,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28765,6 +29290,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -29053,9 +29581,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -29086,6 +29611,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -29101,9 +29629,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -29326,7 +29851,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29509,9 +30034,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29545,6 +30067,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29638,39 +30163,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29698,12 +30199,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29758,9 +30253,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -30364,100 +30856,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30766,6 +31261,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -31147,6 +31645,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -31180,15 +31681,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -31198,15 +31693,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -31219,9 +31708,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -31258,6 +31744,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31486,9 +31975,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31582,9 +32077,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31600,6 +32092,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31630,36 +32125,18 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
-msgstr ""
-
-msgid "MlExperimentTracking|Info"
-msgstr ""
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr ""
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|Metrics"
-msgstr ""
-
msgid "MlExperimentTracking|Model candidate details"
msgstr ""
msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Model performance"
-msgstr ""
-
msgid "MlExperimentTracking|Model removed"
msgstr ""
@@ -31675,27 +32152,9 @@ msgstr ""
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr ""
-
msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
-msgstr ""
-
-msgid "MlExperimentTracking|Status"
-msgstr ""
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr ""
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] ""
@@ -31714,22 +32173,109 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr ""
+
+msgid "MlModelRegistry|CI Info"
+msgstr ""
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr ""
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr ""
+msgid "MlModelRegistry|Experiment"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
+msgstr ""
+
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31759,9 +32305,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -32332,9 +32884,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -32347,9 +32896,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32782,15 +33328,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32896,6 +33442,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -33046,18 +33595,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -33067,6 +33604,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -33082,6 +33622,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -33100,6 +33643,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -33226,6 +33772,9 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -33325,6 +33874,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -33373,6 +33928,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -33403,16 +33964,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -33460,6 +34018,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -33484,6 +34045,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33574,6 +34138,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33589,6 +34156,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33601,7 +34171,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33730,6 +34300,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33748,27 +34321,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -34321,9 +34915,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -34360,9 +34951,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -34453,6 +35041,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -34471,6 +35062,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34519,7 +35116,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34546,6 +35152,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34663,6 +35272,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34732,6 +35401,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34807,6 +35479,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -35017,6 +35692,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -35080,6 +35758,12 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -35104,6 +35788,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -35122,6 +35809,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -35188,6 +35878,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -35224,6 +35917,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -35365,6 +36061,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35512,6 +36211,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35656,6 +36358,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -36073,6 +36778,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -36133,12 +36862,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -36157,9 +36880,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -36232,6 +36952,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -36268,6 +36991,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -37186,9 +37915,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -37384,6 +38110,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -37492,6 +38221,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37612,7 +38344,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37978,7 +38710,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -38287,7 +39019,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -38314,10 +39046,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38536,6 +39283,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38623,9 +39373,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38743,6 +39490,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38788,6 +39538,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -39205,29 +39958,14 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -39262,6 +40000,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -39325,6 +40066,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39928,12 +40672,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -40015,9 +40765,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -40063,6 +40810,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -40510,9 +41260,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40693,6 +41440,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40747,6 +41497,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40807,6 +41560,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40909,6 +41665,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40987,6 +41746,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -41044,9 +41806,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -41113,9 +41872,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41578,6 +42334,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41647,7 +42406,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41716,9 +42475,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41842,15 +42598,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "Reveal values"
msgstr ""
@@ -41899,6 +42646,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41959,9 +42715,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -42319,6 +43072,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42601,6 +43357,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42721,7 +43480,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42730,9 +43489,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42967,9 +43723,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -43141,9 +43912,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -43162,6 +43942,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -43183,21 +43966,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -43222,6 +44023,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -43231,6 +44035,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -43246,6 +44053,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -43306,9 +44116,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -43360,34 +44167,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -43414,15 +44212,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -43435,7 +44227,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43588,6 +44398,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43825,6 +44638,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43834,6 +44650,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43891,6 +44737,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43978,7 +44827,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -44080,6 +44929,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -44089,6 +44941,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -44107,12 +44968,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -44125,6 +44992,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -44155,6 +45025,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -44167,10 +45040,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -44179,6 +45052,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -44251,6 +45130,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -44263,7 +45145,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -44278,6 +45163,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -44293,6 +45181,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -44320,6 +45211,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -44350,6 +45244,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -44437,12 +45334,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -44476,6 +45379,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -44509,6 +45418,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44593,12 +45508,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44635,6 +45565,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44821,6 +45754,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44872,6 +45808,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44887,12 +45826,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -45031,6 +45964,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -45130,6 +46066,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -45397,6 +46345,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -45559,9 +46510,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45601,6 +46558,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45661,7 +46624,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45670,6 +46636,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45868,9 +46840,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45886,6 +46855,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45964,24 +46936,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -46039,27 +47020,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -46327,9 +47287,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -46378,19 +47335,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46690,6 +47641,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46747,6 +47701,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46807,7 +47764,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -47149,9 +48106,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -47164,7 +48118,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -47185,12 +48139,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -47386,6 +48334,15 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47686,9 +48643,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47770,9 +48724,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47869,6 +48820,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -48421,9 +49375,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48694,6 +49645,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48703,9 +49657,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48721,21 +49681,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -49036,6 +49981,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -49234,6 +50182,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -49258,6 +50209,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -49276,9 +50233,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -49318,16 +50272,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -49585,6 +50545,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49723,6 +50686,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49774,13 +50740,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
-msgstr ""
-
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49951,6 +50914,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -50146,6 +51112,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -50236,9 +51205,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -50275,6 +51250,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -50467,9 +51445,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50614,12 +51589,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50668,6 +51637,15 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -51319,9 +52297,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -51370,6 +52345,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -51475,7 +52453,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -51490,9 +52468,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -51550,6 +52525,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -51586,6 +52564,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51628,7 +52609,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51640,9 +52621,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51658,10 +52636,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51703,18 +52681,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51787,6 +52753,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51811,16 +52783,43 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51880,10 +52879,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -52018,27 +53017,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -52054,28 +53032,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -52222,12 +53191,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -52303,15 +53266,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -52477,9 +53455,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -52555,7 +53542,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -52606,6 +53593,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52759,6 +53749,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52897,7 +53890,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52912,9 +53908,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52936,13 +53929,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52975,7 +53968,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -53014,7 +54007,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -53041,9 +54034,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -53293,12 +54283,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -53311,6 +54295,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -53380,6 +54370,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -53485,6 +54478,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53935,22 +54931,52 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53968,6 +54994,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -54070,15 +55099,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -54160,9 +55180,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -54181,15 +55198,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -54292,6 +55303,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -54328,6 +55342,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -54403,6 +55420,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -54472,6 +55492,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -55252,6 +56275,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55762,6 +56788,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55789,6 +56818,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55834,6 +56866,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55870,15 +56905,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55909,9 +56956,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55933,12 +56977,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55954,6 +57001,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55963,9 +57013,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -56095,7 +57142,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -56113,6 +57160,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -56191,7 +57241,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -56245,6 +57295,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -56272,6 +57328,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56644,10 +57703,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56701,6 +57760,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56734,6 +57796,9 @@ msgstr[5] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56767,7 +57832,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56779,7 +57844,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56812,6 +57877,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56851,6 +57919,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -57067,6 +58138,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -57079,6 +58153,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -57094,10 +58171,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -57304,6 +58381,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -57337,6 +58417,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -57478,6 +58561,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57721,10 +58807,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57808,9 +58894,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57853,7 +58936,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57895,27 +58978,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -58039,15 +59101,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -58105,9 +59170,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -58603,6 +59665,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58783,6 +59848,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -59128,6 +60196,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -59173,6 +60253,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -59191,6 +60274,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -59224,6 +60310,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -59476,6 +60565,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -59512,9 +60604,6 @@ msgstr[5] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -59695,6 +60784,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59704,6 +60796,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/as_IN/gitlab.po b/locale/as_IN/gitlab.po
index 67e7338d2ea..475f66e9585 100644
--- a/locale/as_IN/gitlab.po
+++ b/locale/as_IN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: as\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/az_AZ/gitlab.po b/locale/az_AZ/gitlab.po
index 4adcf8611e9..a7c6b44210c 100644
--- a/locale/az_AZ/gitlab.po
+++ b/locale/az_AZ/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: az\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ba_RU/gitlab.po b/locale/ba_RU/gitlab.po
index 29af2e0b357..dcc1d050123 100644
--- a/locale/ba_RU/gitlab.po
+++ b/locale/ba_RU/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ba\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -460,6 +452,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -494,15 +489,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -606,12 +592,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -648,6 +628,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -822,6 +805,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1075,6 +1064,9 @@ msgstr[0] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1154,7 +1146,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1169,6 +1164,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1223,6 +1221,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1241,6 +1242,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1256,9 +1260,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1293,6 +1309,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1311,9 +1333,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1344,7 +1363,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1634,9 +1653,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1742,7 +1758,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -1865,9 +1908,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -1887,6 +1927,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -1932,6 +1975,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2253,6 +2299,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2727,6 +2779,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -2865,9 +2920,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3021,15 +3073,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3039,9 +3091,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3399,6 +3448,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3495,6 +3547,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4113,6 +4168,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4146,6 +4204,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4257,18 +4318,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4617,6 +4684,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4647,9 +4723,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4761,12 +4837,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4788,9 +4870,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -4851,9 +4930,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -4869,9 +4945,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -4947,9 +5020,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5178,9 +5248,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5345,6 +5414,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5453,6 +5525,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5561,6 +5636,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5573,16 +5651,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5615,9 +5696,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5678,6 +5756,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5690,16 +5789,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5717,9 +5813,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6231,9 +6324,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6297,6 +6387,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6312,9 +6405,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6504,9 +6594,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6522,6 +6609,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6643,13 +6733,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6741,7 +6828,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6819,6 +6906,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -6948,6 +7044,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7137,12 +7236,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7167,12 +7260,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7224,9 +7323,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7239,9 +7335,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7251,9 +7344,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7287,16 +7389,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr ""
+
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Bamboo build plan key (for example, `KEY`)."
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7308,7 +7413,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7323,7 +7428,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7428,9 +7533,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7788,6 +7890,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7818,13 +7923,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -7842,10 +7947,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -7885,12 +7990,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -7912,7 +8011,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8103,12 +8205,6 @@ msgstr[0] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8127,9 +8223,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8139,18 +8232,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8163,51 +8250,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8236,9 +8302,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8332,6 +8395,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8341,6 +8407,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8407,15 +8485,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8473,6 +8563,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8491,6 +8587,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8503,6 +8602,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8803,6 +8905,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -8836,9 +8944,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -8848,16 +8965,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -8875,6 +9001,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -8929,7 +9061,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -8992,9 +9127,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9134,6 +9266,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9155,6 +9290,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9218,18 +9359,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9248,16 +9377,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9269,6 +9398,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9719,6 +9851,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -9829,6 +9964,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -9841,6 +9979,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -9853,6 +9994,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -9913,6 +10057,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -9970,6 +10117,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -9982,6 +10132,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10051,9 +10204,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10117,6 +10267,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10135,7 +10288,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10168,25 +10321,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10195,6 +10369,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10285,6 +10462,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10372,13 +10561,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10402,10 +10600,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10634,9 +10844,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11670,16 +11877,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11688,7 +11913,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11697,22 +11922,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11842,6 +12067,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -11890,6 +12118,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12167,13 +12401,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12191,6 +12461,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12212,10 +12488,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12230,9 +12506,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12245,6 +12527,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12275,9 +12560,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12296,12 +12587,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12419,6 +12716,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12479,6 +12779,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12506,7 +12812,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12659,6 +12971,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12749,7 +13064,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -12982,6 +13297,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13166,6 +13484,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13517,7 +13838,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13529,6 +13850,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13592,6 +13916,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13664,9 +13991,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -13850,6 +14174,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -13913,6 +14240,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -13943,9 +14273,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14075,9 +14402,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14114,6 +14438,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14324,6 +14651,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14534,6 +14864,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -14820,9 +15156,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -14851,6 +15184,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15119,9 +15455,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15155,6 +15488,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15236,6 +15572,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15413,9 +15752,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15428,7 +15764,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15739,6 +16075,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16059,16 +16398,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16177,12 +16506,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16201,9 +16536,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16213,6 +16545,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16249,18 +16584,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16270,6 +16614,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16513,9 +16860,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17184,6 +17528,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17310,6 +17699,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17612,6 +18004,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -17903,6 +18298,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -17969,6 +18367,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18065,6 +18466,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18101,6 +18505,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18116,9 +18523,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18182,6 +18586,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18197,9 +18604,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18287,6 +18691,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18602,6 +19009,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18704,15 +19114,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18725,9 +19132,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18743,9 +19147,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18755,9 +19156,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18773,10 +19171,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19678,9 +20076,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -19807,6 +20202,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -19890,6 +20288,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -19905,16 +20306,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -19953,9 +20351,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -19983,18 +20378,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20103,6 +20489,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20395,6 +20784,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20674,9 +21066,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -20996,6 +21385,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21337,12 +21729,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21352,12 +21738,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21466,12 +21846,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21529,9 +21903,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21553,6 +21924,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21640,9 +22014,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21871,7 +22248,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -21889,7 +22266,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22066,22 +22443,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22141,6 +22518,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22162,16 +22542,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22201,9 +22578,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22213,9 +22587,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22330,9 +22701,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22402,6 +22770,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22414,6 +22785,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22450,10 +22824,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22483,9 +22857,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22624,6 +22995,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22717,10 +23091,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -22984,6 +23361,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23005,6 +23385,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23047,12 +23430,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23077,6 +23469,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23101,6 +23496,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23143,6 +23544,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23206,30 +23610,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23290,7 +23670,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23332,7 +23712,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23455,6 +23835,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23509,6 +23892,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23763,10 +24155,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-
msgid "Hide values"
msgstr ""
@@ -23785,6 +24173,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -23860,6 +24251,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -23950,6 +24344,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24062,7 +24456,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24074,7 +24468,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24146,6 +24543,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24433,9 +24833,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24611,10 +25008,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24629,6 +25026,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24644,6 +25044,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25130,6 +25533,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25255,9 +25661,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25643,9 +26046,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -25851,10 +26251,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26181,13 +26581,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26292,6 +26692,10 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26301,9 +26705,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26344,6 +26747,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26473,6 +26879,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26602,6 +27011,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26671,15 +27083,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26731,6 +27143,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -26779,6 +27197,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -26938,7 +27359,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27208,6 +27629,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27217,6 +27641,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27289,6 +27716,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27409,9 +27839,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27448,6 +27875,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27478,6 +27908,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27572,6 +28116,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27612,7 +28162,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27630,6 +28180,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -27913,9 +28466,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -27946,6 +28496,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -27961,9 +28514,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28156,7 +28706,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28334,9 +28884,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28370,6 +28917,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28523,12 +29049,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28583,9 +29103,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29189,100 +29706,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29576,6 +30096,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -29957,6 +30480,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -29990,15 +30516,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30008,15 +30528,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30029,9 +30543,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30068,6 +30579,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30291,9 +30805,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30387,9 +30907,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30405,6 +30922,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30435,96 +30955,147 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30549,9 +31120,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31117,9 +31694,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31132,9 +31706,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31562,15 +32133,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31676,6 +32247,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -31821,18 +32395,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -31842,6 +32404,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -31857,6 +32422,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -31875,6 +32443,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32080,6 +32654,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32128,6 +32708,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32158,16 +32744,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32239,6 +32825,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32329,6 +32918,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32344,6 +32936,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32356,7 +32951,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32485,6 +33080,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32503,27 +33101,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33105,9 +33721,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33198,6 +33811,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33216,6 +33832,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33264,7 +33886,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33408,6 +34042,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33477,6 +34171,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33552,6 +34249,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -33762,6 +34462,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -33844,6 +34553,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -33862,6 +34574,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -33928,6 +34643,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -33964,6 +34682,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34105,6 +34826,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34252,6 +34976,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34396,6 +35123,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -34813,6 +35543,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -34873,12 +35627,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -34897,9 +35645,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -34972,6 +35717,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35008,6 +35756,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35926,9 +36680,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36124,6 +36875,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36232,6 +36986,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36352,7 +37109,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36718,7 +37475,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37022,7 +37779,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37049,10 +37806,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37271,6 +38043,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37358,9 +38133,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37478,6 +38250,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37523,6 +38298,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -37940,29 +38718,9 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -37997,6 +38755,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38060,6 +38821,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38653,12 +39417,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38740,9 +39510,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -38788,6 +39555,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39230,9 +40000,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39408,6 +40175,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39462,6 +40232,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39522,6 +40295,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39624,6 +40400,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39702,6 +40481,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -39759,9 +40541,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -39828,9 +40607,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40263,6 +41039,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,7 +41101,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40391,9 +41170,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40517,10 +41293,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-
msgid "Reveal values"
msgstr ""
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40624,9 +41405,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40959,6 +41737,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41231,6 +42012,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41351,7 +42135,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41360,9 +42144,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41587,9 +42368,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -41761,9 +42557,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -41782,6 +42587,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -41803,21 +42611,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -41842,6 +42668,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -41851,6 +42680,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -41866,6 +42698,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -41926,9 +42761,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -41980,34 +42812,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42034,15 +42857,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42055,7 +42872,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42208,6 +43043,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42390,6 +43228,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42399,6 +43240,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42456,6 +43327,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42543,7 +43417,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42645,6 +43519,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42654,6 +43531,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42672,12 +43558,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42690,6 +43582,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -42720,6 +43615,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -42732,10 +43630,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -42744,6 +43642,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -42816,6 +43720,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,7 +43735,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -42843,6 +43753,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -42858,6 +43771,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -42885,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -42910,6 +43829,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -42997,12 +43919,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43036,6 +43964,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43069,6 +44003,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43153,12 +44093,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43195,6 +44150,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43381,6 +44339,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43432,6 +44393,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43447,12 +44411,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43586,6 +44544,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43685,6 +44646,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -43952,6 +44925,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44114,9 +45090,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44156,6 +45138,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44216,7 +45204,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44225,6 +45216,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44423,9 +45420,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44441,6 +45435,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44519,19 +45516,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44589,27 +45600,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -44872,9 +45862,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -44923,19 +45910,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45235,6 +46216,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45292,6 +46276,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45352,7 +46339,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -45709,7 +46693,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -45730,12 +46714,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -45931,6 +46909,10 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46231,9 +47213,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46315,9 +47294,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -46961,9 +47940,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47234,13 +48210,22 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47256,21 +48241,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47551,6 +48521,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -47744,6 +48717,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -47768,6 +48744,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -47786,9 +48768,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -47828,16 +48807,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48085,6 +49070,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48223,6 +49211,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48274,13 +49265,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48451,6 +49439,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48646,6 +49637,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -48736,9 +49730,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -48775,6 +49775,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -48967,9 +49970,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49114,12 +50114,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49809,9 +50807,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -49855,6 +50850,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -49960,7 +50958,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -49975,9 +50973,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50035,6 +51030,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50071,6 +51069,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50113,7 +51114,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50125,9 +51126,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50143,10 +51141,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50188,18 +51186,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50267,6 +51253,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50291,16 +51283,33 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50360,10 +51369,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50498,27 +51507,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50534,28 +51522,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50697,12 +51676,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -50778,15 +51751,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -50952,9 +51940,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51030,7 +52027,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51234,6 +52234,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51372,7 +52375,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51387,9 +52393,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51411,13 +52414,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51450,7 +52453,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51489,7 +52492,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -51768,12 +52768,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -51786,6 +52780,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -51850,6 +52850,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52405,22 +53411,27 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52438,6 +53449,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52540,15 +53554,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52630,9 +53635,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52651,15 +53653,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -52757,6 +53753,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -52788,6 +53787,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -52863,6 +53865,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -52932,6 +53937,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54207,6 +55218,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54229,6 +55243,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54274,6 +55291,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54310,15 +55330,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54349,9 +55381,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54373,12 +55402,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54403,9 +55438,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54535,7 +55567,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54553,6 +55585,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54631,7 +55666,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54685,6 +55720,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -54712,6 +55753,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55079,10 +56123,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55136,6 +56180,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55164,6 +56211,9 @@ msgstr[0] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55197,7 +56247,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55209,7 +56259,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55242,6 +56292,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55281,6 +56334,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55492,6 +56548,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55504,6 +56563,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55519,10 +56581,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55724,6 +56786,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -55757,6 +56822,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -55893,6 +56961,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56121,10 +57192,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56193,9 +57264,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56238,7 +57306,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56275,17 +57343,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56404,15 +57461,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56470,9 +57530,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56923,6 +57980,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57083,6 +58143,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57418,6 +58481,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57463,6 +58538,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57481,6 +58559,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57514,6 +58595,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57746,6 +58830,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -57772,9 +58859,6 @@ msgstr[0] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -57945,6 +59029,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -57954,6 +59041,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/be_BY/gitlab.po b/locale/be_BY/gitlab.po
index 9d642634f0a..12366533103 100644
--- a/locale/be_BY/gitlab.po
+++ b/locale/be_BY/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: be\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:33\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -201,13 +201,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -250,13 +243,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -299,13 +285,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -418,6 +397,13 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -721,6 +707,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -767,15 +756,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -909,12 +889,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -951,6 +925,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1125,6 +1102,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1408,6 +1391,9 @@ msgstr[3] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1517,7 +1503,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1532,6 +1521,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1586,6 +1578,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1619,9 +1617,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1677,9 +1693,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1710,7 +1723,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2078,9 +2091,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,7 +2196,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3312,9 +3361,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3468,15 +3514,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3486,9 +3532,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4560,6 +4609,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4593,6 +4645,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4704,18 +4759,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5064,6 +5125,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -5094,9 +5164,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5208,12 +5278,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5235,9 +5311,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5298,9 +5371,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5316,9 +5386,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5394,9 +5461,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5625,12 +5689,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6131,6 +6200,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,16 +6233,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6170,9 +6257,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6714,9 +6798,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6780,6 +6861,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6795,9 +6879,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7023,6 +7101,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,13 +7228,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7647,12 +7737,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7677,12 +7761,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7734,9 +7824,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7749,9 +7836,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7797,16 +7890,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7818,7 +7914,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7833,7 +7929,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7938,9 +8034,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8758,9 +8815,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8854,6 +8908,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8863,6 +8920,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8929,15 +8998,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9013,6 +9100,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9025,6 +9115,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9325,6 +9418,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9358,9 +9457,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,16 +9478,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9451,7 +9574,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,16 +9893,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10244,6 +10367,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10360,6 +10486,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10372,6 +10501,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10444,6 +10579,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10501,6 +10639,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10582,9 +10726,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,25 +10843,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10816,6 +10984,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10903,13 +11083,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10933,10 +11122,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11168,9 +11369,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12382,6 +12598,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12430,6 +12649,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12710,13 +12935,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,10 +13022,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12773,9 +13040,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12788,6 +13061,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13292,7 +13598,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14069,7 +14381,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14081,6 +14393,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14144,6 +14459,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14216,9 +14534,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14402,6 +14717,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14495,9 +14816,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14627,9 +14945,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14876,6 +15194,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15086,6 +15407,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15375,9 +15702,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15716,6 +16040,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16632,19 +16962,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16786,9 +17109,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16834,18 +17157,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16855,6 +17187,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17107,9 +17442,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17919,6 +18296,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18227,6 +18607,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18518,6 +18901,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18584,6 +18970,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18680,6 +19069,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18716,6 +19108,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18731,9 +19126,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19217,6 +19612,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19319,15 +19717,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20428,6 +20811,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20517,6 +20903,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20532,16 +20921,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20730,6 +21104,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21025,6 +21402,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21976,12 +22356,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21991,12 +22365,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22105,12 +22473,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22510,7 +22875,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,22 +23070,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22780,6 +23145,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,16 +23169,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22852,9 +23214,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22969,9 +23328,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23053,6 +23412,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23263,6 +23622,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23356,10 +23718,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23644,6 +24012,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23686,12 +24057,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,7 +24339,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24094,6 +24462,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Hide values"
msgstr ""
@@ -24433,6 +24806,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,7 +25104,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24797,6 +25179,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25090,9 +25475,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26523,10 +26908,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26853,13 +27238,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26964,6 +27349,13 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27964,6 +28376,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28084,9 +28499,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28123,6 +28535,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28153,6 +28568,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28250,6 +28779,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28293,7 +28828,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28311,6 +28846,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28630,6 +29165,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28858,7 +29393,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29168,39 +29703,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29894,100 +30396,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30704,15 +31215,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30722,15 +31227,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30743,9 +31242,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30782,6 +31278,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31104,9 +31609,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,102 +31657,153 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31846,9 +32408,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31861,9 +32420,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32408,6 +32964,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32610,6 +33163,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32728,6 +33284,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32827,6 +33386,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32875,6 +33440,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32905,16 +33476,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32986,6 +33557,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33076,6 +33650,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33091,6 +33668,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33103,7 +33683,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33858,9 +34459,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34230,6 +34909,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34600,6 +35294,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34618,6 +35315,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34684,6 +35384,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34861,6 +35567,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35008,6 +35717,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35152,6 +35864,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35653,9 +36386,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35728,6 +36458,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35764,6 +36497,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,7 +37850,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37474,7 +38216,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37781,7 +38523,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37808,10 +38550,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38030,6 +38787,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38282,6 +39042,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38699,29 +39462,12 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38756,6 +39502,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38819,6 +39568,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39418,12 +40170,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39505,9 +40263,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40179,6 +40934,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40233,6 +40991,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40293,6 +41054,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40473,6 +41240,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40599,9 +41366,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41312,13 +42076,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Reveal values"
msgstr ""
@@ -41365,6 +42122,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41775,6 +42538,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42053,6 +42819,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,9 +42951,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42415,9 +43181,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42589,9 +43370,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42679,6 +43493,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43251,6 +44074,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,7 +44263,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44311,12 +45260,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44453,6 +45396,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45796,19 +46765,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46108,6 +47071,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46567,9 +47536,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46582,7 +47548,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46603,12 +47569,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46804,6 +47764,13 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47104,9 +48071,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47837,9 +48801,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48117,9 +49081,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48442,6 +49397,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48638,6 +49596,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,16 +49686,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48985,6 +49955,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49123,6 +50096,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,13 +50150,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49867,9 +50855,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50869,7 +51855,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50944,6 +51927,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51022,7 +52011,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51052,10 +52038,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51693,15 +52660,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,7 +52936,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52326,13 +53323,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52683,12 +53677,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53323,22 +54323,42 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53548,9 +54562,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55140,6 +56160,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55309,12 +56347,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55648,6 +56698,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56223,6 +57285,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56705,6 +57779,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,10 +58161,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57385,15 +58445,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57451,9 +58514,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58816,9 +59906,6 @@ msgstr[3] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59004,6 +60094,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/bg/gitlab.po b/locale/bg/gitlab.po
index eb2b1851d2c..bb7ef790f89 100644
--- a/locale/bg/gitlab.po
+++ b/locale/bg/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: bg\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:33\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Клони"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Разглеждане на файловете"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr "Създайте Ñи личен жетон за доÑтъп в акаÑ
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr "ОÑвежаването започна уÑпешно"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "ПоÑледно подаване"
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr "ÐапомнÑне по-къÑно"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr "Преминаване към клон/етикет"
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Това означава, че нÑма да можете да изпращате код, докато не Ñъздадете празно хранилище или не внеÑете ÑъщеÑтвуващо такова."
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Общо време за теÑтване на вÑички подаваниÑ/ÑливаниÑ"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr "Преглед на отворената заÑвка за ÑливанÐ
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Вашето име"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/bn_BD/gitlab.po b/locale/bn_BD/gitlab.po
index 98ce069bac4..782b78e4ead 100644
--- a/locale/bn_BD/gitlab.po
+++ b/locale/bn_BD/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: bn\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/bn_IN/gitlab.po b/locale/bn_IN/gitlab.po
index eb47f72d143..ff3294d5927 100644
--- a/locale/bn_IN/gitlab.po
+++ b/locale/bn_IN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: bn-IN\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/br_FR/gitlab.po b/locale/br_FR/gitlab.po
index da1ee07c4fe..e5c62f174b9 100644
--- a/locale/br_FR/gitlab.po
+++ b/locale/br_FR/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: br-FR\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -218,14 +218,6 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -274,14 +266,6 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -330,14 +314,6 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -466,6 +442,14 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -808,6 +792,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -858,15 +845,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -1010,12 +988,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -1052,6 +1024,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1226,6 +1201,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1519,6 +1500,9 @@ msgstr[4] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1638,7 +1622,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1653,6 +1640,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1707,6 +1697,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1725,6 +1718,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1740,9 +1736,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1781,6 +1789,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1799,9 +1813,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1832,7 +1843,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2226,9 +2237,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2334,7 +2342,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2358,6 +2366,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2457,9 +2492,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2483,6 +2515,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2528,6 +2563,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2849,6 +2887,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3323,6 +3367,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3461,9 +3508,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3617,15 +3661,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3635,9 +3679,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3995,6 +4036,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -4091,6 +4135,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4709,6 +4756,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4742,6 +4792,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4853,18 +4906,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5213,6 +5272,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -5243,9 +5311,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5300,6 +5365,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5357,12 +5425,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5384,9 +5458,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5447,9 +5518,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5465,9 +5533,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5543,9 +5608,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5774,13 +5836,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5949,6 +6006,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -6057,6 +6117,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6165,6 +6228,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6177,16 +6243,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6219,9 +6288,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6282,6 +6348,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6294,16 +6381,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6321,9 +6405,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6875,9 +6956,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6941,6 +7019,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6956,9 +7037,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7172,9 +7250,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7190,6 +7265,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7315,13 +7393,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7421,7 +7496,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7499,6 +7574,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7535,6 +7613,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7628,6 +7712,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7817,12 +7904,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7847,12 +7928,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7904,9 +7991,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7919,9 +8003,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7931,9 +8012,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7967,16 +8057,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7988,7 +8081,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -8003,7 +8096,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -8108,9 +8201,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8468,6 +8558,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8498,13 +8591,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8522,10 +8615,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8569,12 +8662,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8596,7 +8683,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8795,12 +8885,6 @@ msgstr[4] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8819,9 +8903,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8831,18 +8912,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8855,51 +8930,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8911,6 +8962,9 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8932,9 +8986,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -9028,6 +9079,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -9037,6 +9091,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -9103,15 +9169,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -9169,6 +9247,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9187,6 +9271,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9199,6 +9286,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9499,6 +9589,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9532,9 +9628,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9544,16 +9649,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9571,6 +9685,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9625,7 +9745,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9688,9 +9811,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9834,6 +9954,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9855,6 +9978,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9918,18 +10047,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9948,16 +10065,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9969,6 +10086,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10419,6 +10539,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10537,6 +10660,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10549,6 +10675,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10561,6 +10690,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10621,6 +10753,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10678,6 +10813,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10690,6 +10828,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10759,9 +10900,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10825,6 +10963,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10843,7 +10984,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10855,18 +10999,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10876,25 +11017,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10903,6 +11065,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10993,6 +11158,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -11080,13 +11257,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -11110,10 +11296,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11346,9 +11544,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12386,16 +12581,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12404,7 +12617,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12413,22 +12626,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12562,6 +12775,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12610,6 +12826,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12891,13 +13113,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12915,6 +13173,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12927,6 +13188,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12936,10 +13200,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12954,9 +13218,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12969,6 +13239,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12999,9 +13272,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -13020,12 +13299,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -13143,6 +13428,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13203,6 +13491,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13230,7 +13524,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13383,6 +13683,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13473,7 +13776,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13714,6 +14017,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13902,6 +14208,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14253,7 +14562,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14265,6 +14574,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14328,6 +14640,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14400,9 +14715,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14586,6 +14898,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14649,6 +14964,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14679,9 +14997,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14811,9 +15126,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14850,6 +15162,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -15060,6 +15375,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15270,6 +15588,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15560,9 +15884,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15595,6 +15916,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15867,9 +16191,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15903,6 +16224,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15984,6 +16308,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -16161,9 +16488,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -16176,7 +16500,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16495,6 +16819,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16823,20 +17150,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16957,12 +17270,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16981,9 +17300,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16993,6 +17309,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -17029,18 +17348,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -17050,6 +17378,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17305,9 +17636,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17984,6 +18312,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -18122,6 +18495,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18432,6 +18808,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18723,6 +19102,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18789,6 +19171,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18885,6 +19270,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18921,6 +19309,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18936,9 +19327,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -19002,6 +19390,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -19017,9 +19408,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -19107,6 +19495,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19422,6 +19813,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19524,15 +19918,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19545,9 +19936,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19563,9 +19951,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19575,9 +19960,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19593,10 +19975,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20506,9 +20888,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20635,6 +21014,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20726,6 +21108,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20741,16 +21126,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20789,9 +21171,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20819,18 +21198,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20939,6 +21309,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21235,6 +21608,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21514,9 +21890,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21840,6 +22213,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -22189,12 +22565,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -22204,12 +22574,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22318,12 +22682,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22381,9 +22739,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22405,6 +22760,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22492,9 +22850,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22591,9 +22955,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22723,7 +23084,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22741,7 +23102,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22918,22 +23279,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22993,6 +23354,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -23014,16 +23378,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -23053,9 +23414,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -23065,9 +23423,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -23182,9 +23537,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23254,6 +23606,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23266,6 +23621,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23302,10 +23660,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23335,9 +23693,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23476,6 +23831,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23569,10 +23927,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23836,6 +24197,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23857,6 +24221,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23899,12 +24266,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23929,6 +24305,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23953,6 +24332,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23995,6 +24380,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -24058,30 +24446,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -24142,7 +24506,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -24184,7 +24548,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24307,6 +24671,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24361,6 +24728,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24623,14 +24999,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
msgid "Hide values"
msgstr ""
@@ -24649,6 +25017,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24724,6 +25095,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24814,6 +25188,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24912,9 +25289,6 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24930,7 +25304,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24942,7 +25316,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -25014,6 +25391,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25309,9 +25689,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25491,10 +25868,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25509,6 +25886,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25524,6 +25904,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -26010,6 +26393,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -26143,9 +26529,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26535,9 +26918,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26747,10 +27127,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -27077,13 +27457,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -27188,6 +27568,14 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -27197,13 +27585,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27244,6 +27627,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27373,6 +27759,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27502,6 +27891,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27571,15 +27963,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27631,6 +28023,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27679,6 +28077,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27838,7 +28239,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -28108,6 +28509,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -28117,6 +28521,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -28189,6 +28596,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28309,9 +28719,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28348,6 +28755,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28378,6 +28788,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28476,6 +29000,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28520,7 +29050,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28538,6 +29068,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28825,9 +29358,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28858,6 +29388,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28873,9 +29406,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -29092,7 +29622,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29274,9 +29804,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29310,6 +29837,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29403,39 +29933,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29463,12 +29969,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29523,9 +30023,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -30129,100 +30626,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30528,6 +31028,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30909,6 +31412,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30942,15 +31448,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30960,15 +31460,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30981,9 +31475,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -31020,6 +31511,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31247,9 +31741,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31343,9 +31843,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31361,6 +31858,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31391,36 +31891,18 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
-msgstr ""
-
-msgid "MlExperimentTracking|Info"
-msgstr ""
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr ""
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|Metrics"
-msgstr ""
-
msgid "MlExperimentTracking|Model candidate details"
msgstr ""
msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Model performance"
-msgstr ""
-
msgid "MlExperimentTracking|Model removed"
msgstr ""
@@ -31436,27 +31918,9 @@ msgstr ""
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr ""
-
msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
-msgstr ""
-
-msgid "MlExperimentTracking|Status"
-msgstr ""
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr ""
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] ""
@@ -31473,22 +31937,109 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr ""
+
+msgid "MlModelRegistry|CI Info"
+msgstr ""
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr ""
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr ""
+msgid "MlModelRegistry|Experiment"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
+msgstr ""
+
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31517,9 +32068,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -32089,9 +32646,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -32104,9 +32658,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32538,15 +33089,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32652,6 +33203,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32801,18 +33355,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32822,6 +33364,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32837,6 +33382,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32855,6 +33403,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32977,6 +33528,9 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -33076,6 +33630,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -33124,6 +33684,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -33154,16 +33720,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -33211,6 +33774,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -33235,6 +33801,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33325,6 +33894,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33340,6 +33912,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33352,7 +33927,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33481,6 +34056,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33499,27 +34077,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -34070,9 +34669,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -34109,9 +34705,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -34202,6 +34795,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -34220,6 +34816,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34268,7 +34870,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34295,6 +34906,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34412,6 +35026,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34481,6 +35155,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34556,6 +35233,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34766,6 +35446,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34828,6 +35511,12 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34852,6 +35541,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34870,6 +35562,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34936,6 +35631,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34972,6 +35670,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -35113,6 +35814,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35260,6 +35964,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35404,6 +36111,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35821,6 +36531,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35881,12 +36615,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35905,9 +36633,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35980,6 +36705,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -36016,6 +36744,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36934,9 +37668,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -37132,6 +37863,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -37240,6 +37974,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37360,7 +38097,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37726,7 +38463,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -38034,7 +38771,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -38061,10 +38798,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38283,6 +39035,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38370,9 +39125,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38490,6 +39242,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38535,6 +39290,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38952,29 +39710,13 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -39009,6 +39751,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -39072,6 +39817,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39673,12 +40421,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39760,9 +40514,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39808,6 +40559,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -40254,9 +41008,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40436,6 +41187,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40490,6 +41244,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40550,6 +41307,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40652,6 +41412,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40730,6 +41493,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40787,9 +41553,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40856,9 +41619,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41315,6 +42075,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41382,7 +42145,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41451,9 +42214,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41577,14 +42337,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
msgid "Reveal values"
msgstr ""
@@ -41632,6 +42384,15 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41692,9 +42453,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -42047,6 +42805,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42327,6 +43088,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42447,7 +43211,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42456,9 +43220,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42691,9 +43452,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42865,9 +43641,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42886,6 +43671,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42907,21 +43695,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42946,6 +43752,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42955,6 +43764,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42970,6 +43782,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -43030,9 +43845,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -43084,34 +43896,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -43138,15 +43941,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -43159,7 +43956,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43312,6 +44127,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43538,6 +44356,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43547,6 +44368,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43604,6 +44455,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43691,7 +44545,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43793,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43802,6 +44659,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43820,12 +44686,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43838,6 +44710,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43868,6 +44743,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43880,10 +44758,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43892,6 +44770,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43964,6 +44848,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43976,7 +44863,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43991,6 +44881,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -44006,6 +44899,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -44033,6 +44929,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -44062,6 +44961,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -44149,12 +45051,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -44188,6 +45096,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -44221,6 +45135,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44305,12 +45225,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44347,6 +45282,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44533,6 +45471,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44584,6 +45525,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44599,12 +45543,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44742,6 +45680,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44841,6 +45782,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -45108,6 +46061,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -45270,9 +46226,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45312,6 +46274,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45372,7 +46340,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45381,6 +46352,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45579,9 +46556,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45597,6 +46571,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45675,23 +46652,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45749,27 +46736,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -46036,9 +47002,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -46087,19 +47050,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46399,6 +47356,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46456,6 +47416,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46516,7 +47479,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46858,9 +47821,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46873,7 +47833,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46894,12 +47854,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -47095,6 +48049,14 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47395,9 +48357,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47479,9 +48438,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47578,6 +48534,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -48129,9 +49088,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48402,6 +49358,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48410,9 +49369,15 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48428,21 +49393,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48739,6 +49689,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48936,6 +49889,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48960,6 +49916,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48978,9 +49940,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -49020,16 +49979,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -49285,6 +50250,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49423,6 +50391,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49474,13 +50445,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
-msgstr ""
-
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49651,6 +50619,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49846,6 +50817,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49936,9 +50910,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49975,6 +50955,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -50167,9 +51150,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50314,12 +51294,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50368,6 +51342,14 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -51017,9 +51999,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -51067,6 +52046,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -51172,7 +52154,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -51187,9 +52169,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -51247,6 +52226,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -51283,6 +52265,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51325,7 +52310,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51337,9 +52322,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51355,10 +52337,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51400,18 +52382,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51483,6 +52453,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51507,16 +52483,41 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51576,10 +52577,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51714,27 +52715,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51750,28 +52730,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51917,12 +52888,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51998,15 +52963,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -52172,9 +53152,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -52250,7 +53239,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -52301,6 +53290,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52454,6 +53446,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52592,7 +53587,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52607,9 +53605,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52631,13 +53626,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52670,7 +53665,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52709,7 +53704,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52736,9 +53731,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52988,12 +53980,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -53006,6 +53992,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -53074,6 +54066,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -53179,6 +54174,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53629,22 +54627,47 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53662,6 +54685,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53764,15 +54790,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53854,9 +54871,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53875,15 +54889,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53985,6 +54993,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -54095,6 +55109,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -54164,6 +55181,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54944,6 +55964,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55451,6 +56474,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55477,6 +56503,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55522,6 +56551,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55558,15 +56590,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55597,9 +56641,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55621,12 +56662,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55642,6 +56686,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55651,9 +56698,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55783,7 +56827,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55801,6 +56845,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55879,7 +56926,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55933,6 +56980,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55960,6 +57013,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56331,10 +57387,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56388,6 +57444,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56420,6 +57479,9 @@ msgstr[4] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56453,7 +57515,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56465,7 +57527,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56498,6 +57560,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56537,6 +57602,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56752,6 +57820,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56764,6 +57835,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56779,10 +57853,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56988,6 +58062,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -57021,6 +58098,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -57161,6 +58241,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57401,10 +58484,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57485,9 +58568,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57530,7 +58610,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57571,25 +58651,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57712,15 +58773,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57778,9 +58842,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -58267,6 +59328,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58443,6 +59507,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58786,6 +59853,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58831,6 +59910,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58849,6 +59931,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58882,6 +59967,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -59130,6 +60218,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -59164,9 +60255,6 @@ msgstr[4] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -59345,6 +60433,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59354,6 +60445,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/bs_BA/gitlab.po b/locale/bs_BA/gitlab.po
index 360165ad33e..cc836271100 100644
--- a/locale/bs_BA/gitlab.po
+++ b/locale/bs_BA/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: bs\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -184,12 +184,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -226,12 +220,6 @@ msgstr[0] "%d komentar"
msgstr[1] "%d komentara"
msgstr[2] "%d komentara"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -268,12 +256,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d doprinos"
@@ -370,6 +352,12 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -634,6 +622,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -676,15 +667,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -808,12 +790,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -850,6 +826,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1024,6 +1003,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1297,6 +1282,9 @@ msgstr[2] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1396,7 +1384,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1411,6 +1402,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1465,6 +1459,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1483,6 +1480,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1498,9 +1498,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1537,6 +1549,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1555,9 +1573,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1588,7 +1603,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1930,9 +1945,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2038,7 +2050,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2062,6 +2074,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2161,9 +2200,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2185,6 +2221,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2230,6 +2269,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2551,6 +2593,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3025,6 +3073,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Dodaj pod-epik u epik"
@@ -3163,9 +3214,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3319,15 +3367,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3337,9 +3385,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3697,6 +3742,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3793,6 +3841,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4411,6 +4462,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4444,6 +4498,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4555,18 +4612,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4915,6 +4978,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4945,9 +5017,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5002,6 +5071,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5059,12 +5131,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5086,9 +5164,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5149,9 +5224,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5167,9 +5239,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5245,9 +5314,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5476,11 +5542,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5647,6 +5710,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5755,6 +5821,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5863,6 +5932,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5875,16 +5947,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5917,9 +5992,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5980,6 +6052,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5992,16 +6085,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6019,9 +6109,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6553,9 +6640,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6619,6 +6703,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6634,9 +6721,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6838,9 +6922,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6856,6 +6937,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6979,13 +7063,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7081,7 +7162,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7159,6 +7240,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7195,6 +7279,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7288,6 +7378,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7477,12 +7570,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7507,12 +7594,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr "Dnevni prosjek: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7564,9 +7657,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7579,9 +7669,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7591,9 +7678,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7627,16 +7723,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7648,7 +7747,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7663,7 +7762,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7768,9 +7867,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8128,6 +8224,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8158,13 +8257,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8182,10 +8281,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8227,12 +8326,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8254,7 +8347,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8449,12 +8545,6 @@ msgstr[2] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8473,9 +8563,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8485,18 +8572,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8509,51 +8590,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8563,6 +8620,9 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8584,9 +8644,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8680,6 +8737,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8689,6 +8749,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8755,15 +8827,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8821,6 +8905,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8839,6 +8929,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8851,6 +8944,9 @@ msgstr "Grane"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9151,6 +9247,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9184,9 +9286,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9196,16 +9307,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9223,6 +9343,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9277,7 +9403,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9340,9 +9469,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9484,6 +9610,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9505,6 +9634,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9568,18 +9703,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9598,16 +9721,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9619,6 +9742,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10069,6 +10195,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10183,6 +10312,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10195,6 +10327,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10207,6 +10342,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10267,6 +10405,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10324,6 +10465,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10336,6 +10480,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10405,9 +10552,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10471,6 +10615,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10489,7 +10636,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10501,18 +10651,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10522,25 +10669,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10549,6 +10717,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10639,6 +10810,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10726,13 +10909,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10756,10 +10948,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10990,9 +11194,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12028,16 +12229,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12046,7 +12265,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12055,22 +12274,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12202,6 +12421,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12250,6 +12472,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12529,13 +12757,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12553,6 +12817,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12565,6 +12832,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12574,10 +12844,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12592,9 +12862,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12607,6 +12883,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12637,9 +12916,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12658,12 +12943,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12781,6 +13072,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12841,6 +13135,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12868,7 +13168,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13021,6 +13327,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13111,7 +13420,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13348,6 +13657,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13534,6 +13846,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13885,7 +14200,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13897,6 +14212,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13960,6 +14278,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14032,9 +14353,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14218,6 +14536,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14281,6 +14602,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14311,9 +14635,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14443,9 +14764,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14482,6 +14800,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14692,6 +15013,9 @@ msgstr "Kreirano:"
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14902,6 +15226,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15190,9 +15520,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15223,6 +15550,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15493,9 +15823,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15529,6 +15856,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15610,6 +15940,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15787,9 +16120,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15802,7 +16132,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16117,6 +16447,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16441,18 +16774,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16567,12 +16888,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16591,9 +16918,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16603,6 +16927,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16639,18 +16966,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16660,6 +16996,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16909,9 +17248,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17584,6 +17920,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17716,6 +18097,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18022,6 +18406,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18313,6 +18700,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18379,6 +18769,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18475,6 +18868,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18511,6 +18907,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18526,9 +18925,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18592,6 +18988,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18607,9 +19006,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18697,6 +19093,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19012,6 +19411,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19114,15 +19516,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19135,9 +19534,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19153,9 +19549,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19165,9 +19558,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19183,10 +19573,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20092,9 +20482,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20221,6 +20608,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20308,6 +20698,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20323,16 +20716,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20371,9 +20761,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20401,18 +20788,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20521,6 +20899,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20815,6 +21196,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21094,9 +21478,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21418,6 +21799,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21763,12 +22147,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21778,12 +22156,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21892,12 +22264,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21955,9 +22321,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21979,6 +22342,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22066,9 +22432,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22165,9 +22537,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22297,7 +22666,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22315,7 +22684,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22492,22 +22861,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22567,6 +22936,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22588,16 +22960,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22627,9 +22996,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22639,9 +23005,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22756,9 +23119,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22828,6 +23188,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22840,6 +23203,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22876,10 +23242,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22909,9 +23275,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23050,6 +23413,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23143,10 +23509,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23410,6 +23779,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23431,6 +23803,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23473,12 +23848,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23503,6 +23887,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23527,6 +23914,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23569,6 +23962,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23632,30 +24028,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23716,7 +24088,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23758,7 +24130,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23881,6 +24253,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23935,6 +24310,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24193,12 +24577,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Hide values"
msgstr ""
@@ -24217,6 +24595,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24292,6 +24673,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24382,6 +24766,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24478,9 +24865,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24496,7 +24880,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24508,7 +24892,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24580,6 +24967,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24871,9 +25261,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25051,10 +25438,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25069,6 +25456,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25084,6 +25474,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25570,6 +25963,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25699,9 +26095,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26089,9 +26482,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26299,10 +26689,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26629,13 +27019,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26740,6 +27130,12 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26749,11 +27145,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26794,6 +27187,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26923,6 +27319,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27052,6 +27451,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27121,15 +27523,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27181,6 +27583,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27229,6 +27637,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27388,7 +27799,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27658,6 +28069,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27667,6 +28081,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27739,6 +28156,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27859,9 +28279,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27898,6 +28315,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27928,6 +28348,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28024,6 +28558,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28066,7 +28606,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28084,6 +28624,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28369,9 +28912,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28402,6 +28942,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28417,9 +28960,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28624,7 +29164,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28804,9 +29344,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28840,6 +29377,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28933,39 +29473,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28993,12 +29509,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29053,9 +29563,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29659,100 +30166,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30052,6 +30562,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30433,6 +30946,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30466,15 +30982,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30484,15 +30994,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30505,9 +31009,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30544,6 +31045,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30769,9 +31273,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Minute"
@@ -30865,9 +31375,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30883,6 +31390,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30913,100 +31423,151 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31033,9 +31594,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31603,9 +32170,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31618,9 +32182,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32050,15 +32611,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32164,6 +32725,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32311,18 +32875,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32332,6 +32884,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32347,6 +32902,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32365,6 +32923,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32479,6 +33040,9 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32578,6 +33142,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32626,6 +33196,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32656,16 +33232,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32713,6 +33286,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32737,6 +33313,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32827,6 +33406,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32842,6 +33424,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32854,7 +33439,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32983,6 +33568,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33001,27 +33589,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33568,9 +34177,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33607,9 +34213,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33700,6 +34303,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33718,6 +34324,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33766,7 +34378,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33793,6 +34414,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33910,6 +34534,66 @@ msgstr "Pregled"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33979,6 +34663,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34054,6 +34741,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34264,6 +34954,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34324,6 +35017,12 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34348,6 +35047,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34366,6 +35068,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34432,6 +35137,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34468,6 +35176,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34609,6 +35320,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34756,6 +35470,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34900,6 +35617,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35317,6 +36037,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35377,12 +36121,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35401,9 +36139,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35476,6 +36211,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35512,6 +36250,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36430,9 +37174,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36628,6 +37369,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36736,6 +37480,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36856,7 +37603,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37222,7 +37969,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37528,7 +38275,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37555,10 +38302,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37777,6 +38539,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37864,9 +38629,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37984,6 +38746,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38029,6 +38794,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38446,29 +39214,11 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38503,6 +39253,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38566,6 +39319,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39163,12 +39919,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39250,9 +40012,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39298,6 +40057,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39742,9 +40504,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39922,6 +40681,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39976,6 +40738,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40036,6 +40801,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40138,6 +40906,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40216,6 +40987,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr "Uklanja zadatak iz epika."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40273,9 +41047,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40342,9 +41113,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40789,6 +41557,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40852,7 +41623,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40921,9 +41692,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41047,12 +41815,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Reveal values"
msgstr ""
@@ -41098,6 +41860,15 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41158,9 +41929,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41503,6 +42271,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41779,6 +42550,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41899,7 +42673,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41908,9 +42682,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42139,9 +42910,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42313,9 +43099,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42334,6 +43129,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42355,21 +43153,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42394,6 +43210,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42403,6 +43222,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42418,6 +43240,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42478,9 +43303,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42532,34 +43354,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42586,15 +43399,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42607,7 +43414,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42760,6 +43585,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42964,6 +43792,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42973,6 +43804,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43030,6 +43891,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43117,7 +43981,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43219,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43228,6 +44095,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43246,12 +44122,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43264,6 +44146,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43294,6 +44179,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43306,10 +44194,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43318,6 +44206,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43390,6 +44284,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43402,7 +44299,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43417,6 +44317,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43432,6 +44335,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43459,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43486,6 +44395,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43573,12 +44485,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43612,6 +44530,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43645,6 +44569,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43729,12 +44659,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43771,6 +44716,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43957,6 +44905,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44008,6 +44959,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44023,12 +44977,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44164,6 +45112,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44263,6 +45214,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44530,6 +45493,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44692,9 +45658,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44734,6 +45706,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44794,7 +45772,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44803,6 +45784,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45001,9 +45988,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45019,6 +46003,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45097,21 +46084,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45169,27 +46168,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45454,9 +46432,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45505,19 +46480,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45817,6 +46786,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45874,6 +46846,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45934,7 +46909,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46276,9 +47251,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46291,7 +47263,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46312,12 +47284,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46513,6 +47479,12 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46813,9 +47785,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46897,9 +47866,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46996,6 +47962,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47545,9 +48514,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47818,15 +48784,24 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47842,21 +48817,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48145,6 +49105,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48340,6 +49303,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48364,6 +49330,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48382,9 +49354,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48424,16 +49393,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48685,6 +49660,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48823,6 +49801,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48874,13 +49855,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49051,6 +50029,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49246,6 +50227,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49336,9 +50320,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49375,6 +50365,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49567,9 +50560,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49714,12 +50704,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49768,6 +50752,12 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50413,9 +51403,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50461,6 +51448,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50566,7 +51556,7 @@ msgstr ""
msgid "Today"
msgstr "Danas"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50581,9 +51571,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50641,6 +51628,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50677,6 +51667,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50719,7 +51712,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50731,9 +51724,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50749,10 +51739,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50794,18 +51784,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50875,6 +51853,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50899,16 +51883,37 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50968,10 +51973,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51106,27 +52111,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51142,28 +52126,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51307,12 +52282,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51388,15 +52357,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51562,9 +52546,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51640,7 +52633,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51691,6 +52684,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51844,6 +52840,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51982,7 +52981,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51997,9 +52999,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52021,13 +53020,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52060,7 +53059,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52099,7 +53098,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52126,9 +53125,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52378,12 +53374,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52396,6 +53386,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52462,6 +53458,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52567,6 +53566,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53017,22 +54019,37 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53050,6 +54067,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53152,15 +54172,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53242,9 +54253,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53263,15 +54271,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53371,6 +54373,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53404,6 +54409,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53479,6 +54487,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53548,6 +54559,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54328,6 +55342,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54829,6 +55846,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54853,6 +55873,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54898,6 +55921,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54934,15 +55960,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54973,9 +56011,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54997,12 +56032,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55018,6 +56056,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55027,9 +56068,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55159,7 +56197,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55177,6 +56215,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55255,7 +56296,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55309,6 +56350,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55336,6 +56383,9 @@ msgstr "JuÄer"
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55705,10 +56755,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55762,6 +56812,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55792,6 +56845,9 @@ msgstr[2] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55825,7 +56881,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55837,7 +56893,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55870,6 +56926,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55909,6 +56968,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56122,6 +57184,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56134,6 +57199,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56149,10 +57217,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56356,6 +57424,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56389,6 +57460,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56527,6 +57601,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56761,10 +57838,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56839,9 +57916,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56884,7 +57958,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56923,21 +57997,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57058,15 +58117,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57124,9 +58186,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57595,6 +58654,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57763,6 +58825,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58102,6 +59167,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58147,6 +59224,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58165,6 +59245,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58198,6 +59281,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58438,6 +59524,9 @@ msgstr ""
msgid "remove weight"
msgstr "ukloni težinu"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58468,9 +59557,6 @@ msgstr[2] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58645,6 +59731,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58654,6 +59743,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ca_ES/gitlab.po b/locale/ca_ES/gitlab.po
index f152ccd8294..3cf0f07e7bd 100644
--- a/locale/ca_ES/gitlab.po
+++ b/locale/ca_ES/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ca\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:33\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr " Des de %{start} fins %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d comentari"
msgstr[1] "%d comentaris"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr "Àrea d'administració"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Tots"
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr "Anònim"
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Aplicació"
msgid "Application ID"
msgstr "ID de l'aplicació"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr "Afegeix una insígnia"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "Enllaç"
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr "Nom de la branca"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Branques"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr "Activa"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
-msgstr ""
-
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr "Informació del grup:"
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Amaga el valor"
-msgstr[1] "Amaga els valors"
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr "Mètriques"
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "Mètrica nova"
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr "Tanca"
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/cs_CZ/gitlab.po b/locale/cs_CZ/gitlab.po
index 51375655424..c0cb5e43c7c 100644
--- a/locale/cs_CZ/gitlab.po
+++ b/locale/cs_CZ/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: cs\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:33\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -201,13 +201,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -250,13 +243,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -299,13 +285,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -418,6 +397,13 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -721,6 +707,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -767,15 +756,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -909,12 +889,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -951,6 +925,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1125,6 +1102,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1408,6 +1391,9 @@ msgstr[3] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1517,7 +1503,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1532,6 +1521,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1586,6 +1578,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1619,9 +1617,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1677,9 +1693,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1710,7 +1723,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2078,9 +2091,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,7 +2196,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3312,9 +3361,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3468,15 +3514,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3486,9 +3532,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4560,6 +4609,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4593,6 +4645,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4704,18 +4759,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5064,6 +5125,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -5094,9 +5164,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5208,12 +5278,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5235,9 +5311,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5298,9 +5371,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5316,9 +5386,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5394,9 +5461,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5625,12 +5689,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6131,6 +6200,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,16 +6233,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6170,9 +6257,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6714,9 +6798,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6780,6 +6861,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6795,9 +6879,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7023,6 +7101,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,13 +7228,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7647,12 +7737,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7677,12 +7761,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7734,9 +7824,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7749,9 +7836,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7797,16 +7890,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7818,7 +7914,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7833,7 +7929,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7938,9 +8034,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8758,9 +8815,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8854,6 +8908,9 @@ msgstr "Tato větev již existuje"
msgid "Branch name"
msgstr "Název větve"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8863,6 +8920,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8929,15 +8998,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9013,6 +9100,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9025,6 +9115,9 @@ msgstr "Větve"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9325,6 +9418,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9358,9 +9457,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,16 +9478,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9451,7 +9574,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,16 +9893,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10244,6 +10367,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10360,6 +10486,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10372,6 +10501,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10444,6 +10579,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10501,6 +10639,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10582,9 +10726,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,25 +10843,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10816,6 +10984,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10903,13 +11083,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10933,10 +11122,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11168,9 +11369,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12382,6 +12598,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12430,6 +12649,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12710,13 +12935,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,10 +13022,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12773,9 +13040,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12788,6 +13061,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13292,7 +13598,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14069,7 +14381,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14081,6 +14393,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14144,6 +14459,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14216,9 +14534,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14402,6 +14717,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14495,9 +14816,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14627,9 +14945,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14876,6 +15194,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15086,6 +15407,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15375,9 +15702,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15716,6 +16040,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16632,19 +16962,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16786,9 +17109,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16834,18 +17157,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16855,6 +17187,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17107,9 +17442,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17919,6 +18296,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18227,6 +18607,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18518,6 +18901,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18584,6 +18970,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18680,6 +19069,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18716,6 +19108,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18731,9 +19126,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19217,6 +19612,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19319,15 +19717,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20428,6 +20811,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20517,6 +20903,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20532,16 +20921,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20730,6 +21104,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21025,6 +21402,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21976,12 +22356,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21991,12 +22365,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22105,12 +22473,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22510,7 +22875,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,22 +23070,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22780,6 +23145,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,16 +23169,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22852,9 +23214,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22969,9 +23328,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23053,6 +23412,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23263,6 +23622,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23356,10 +23718,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23644,6 +24012,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23686,12 +24057,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,7 +24339,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24094,6 +24462,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Hide values"
msgstr ""
@@ -24433,6 +24806,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,7 +25104,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24797,6 +25179,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25090,9 +25475,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26523,10 +26908,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26853,13 +27238,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26964,6 +27349,13 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27964,6 +28376,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28084,9 +28499,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28123,6 +28535,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28153,6 +28568,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28250,6 +28779,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28293,7 +28828,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28311,6 +28846,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28630,6 +29165,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28858,7 +29393,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29168,39 +29703,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29894,100 +30396,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30704,15 +31215,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30722,15 +31227,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30743,9 +31242,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30782,6 +31278,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31104,9 +31609,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,102 +31657,153 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31846,9 +32408,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31861,9 +32420,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32408,6 +32964,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32610,6 +33163,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32728,6 +33284,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32827,6 +33386,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32875,6 +33440,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32905,16 +33476,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32986,6 +33557,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33076,6 +33650,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33091,6 +33668,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33103,7 +33683,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33858,9 +34459,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr "Přehled"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34230,6 +34909,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34600,6 +35294,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34618,6 +35315,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34684,6 +35384,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34861,6 +35567,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35008,6 +35717,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35152,6 +35864,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35653,9 +36386,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35728,6 +36458,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35764,6 +36497,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,7 +37850,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37474,7 +38216,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37781,7 +38523,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37808,10 +38550,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38030,6 +38787,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38282,6 +39042,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38699,29 +39462,12 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38756,6 +39502,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38819,6 +39568,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39418,12 +40170,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39505,9 +40263,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40179,6 +40934,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40233,6 +40991,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40293,6 +41054,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40473,6 +41240,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40599,9 +41366,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41312,13 +42076,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Reveal values"
msgstr ""
@@ -41365,6 +42122,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41775,6 +42538,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42053,6 +42819,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,9 +42951,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42415,9 +43181,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42589,9 +43370,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42679,6 +43493,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43251,6 +44074,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,7 +44263,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44311,12 +45260,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44453,6 +45396,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45796,19 +46765,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46108,6 +47071,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46567,9 +47536,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46582,7 +47548,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46603,12 +47569,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46804,6 +47764,13 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47104,9 +48071,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47837,9 +48801,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48117,9 +49081,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48442,6 +49397,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48638,6 +49596,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,16 +49686,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48985,6 +49955,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49123,6 +50096,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,13 +50150,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49867,9 +50855,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50869,7 +51855,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50944,6 +51927,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51022,7 +52011,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51052,10 +52038,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51693,15 +52660,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,7 +52936,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52326,13 +53323,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52683,12 +53677,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53323,22 +54323,42 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53548,9 +54562,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55140,6 +56160,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55309,12 +56347,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55648,6 +56698,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56223,6 +57285,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56705,6 +57779,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,10 +58161,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57385,15 +58445,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57451,9 +58514,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58816,9 +59906,6 @@ msgstr[3] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59004,6 +60094,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/cy_GB/gitlab.po b/locale/cy_GB/gitlab.po
index 26fa2d868a3..f78469d1740 100644
--- a/locale/cy_GB/gitlab.po
+++ b/locale/cy_GB/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: cy\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr " %{start} i %{end}"
@@ -235,15 +235,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -298,15 +289,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -361,15 +343,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -514,6 +487,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -895,6 +877,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -949,15 +934,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -1111,12 +1087,6 @@ msgstr "%{days} diwrnod nes bod tagiau'n cael eu tynnu'n awtomatig"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Digwyddiad sentry: %{errorUrl}- Gwelwyd gyntaf: %{firstSeen}- Gwelwyd ddiwethaf: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -1153,6 +1123,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1327,6 +1300,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1630,6 +1609,9 @@ msgstr[5] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1759,7 +1741,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1774,6 +1759,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1828,6 +1816,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1846,6 +1837,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1861,9 +1855,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1903,6 +1909,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1921,9 +1933,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1954,7 +1963,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2374,9 +2383,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2482,7 +2488,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2506,6 +2512,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2605,9 +2638,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2632,6 +2662,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2677,6 +2710,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2998,6 +3034,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3472,6 +3514,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3610,9 +3655,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3766,15 +3808,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3784,9 +3826,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -4144,6 +4183,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -4240,6 +4282,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4858,6 +4903,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4891,6 +4939,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -5002,18 +5053,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5362,6 +5419,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -5392,9 +5458,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5449,6 +5512,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5506,12 +5572,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5533,9 +5605,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5596,9 +5665,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5614,9 +5680,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5692,9 +5755,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5923,14 +5983,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -6100,6 +6154,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -6208,6 +6265,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6316,6 +6376,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6328,16 +6391,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6370,9 +6436,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6433,6 +6496,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6445,16 +6529,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6472,9 +6553,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -7036,9 +7114,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -7102,6 +7177,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -7117,9 +7195,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7339,9 +7414,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7357,6 +7429,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7483,13 +7558,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7591,7 +7663,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7669,6 +7741,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7705,6 +7780,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7798,6 +7879,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7987,12 +8071,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -8017,12 +8095,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -8074,9 +8158,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -8089,9 +8170,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -8101,9 +8179,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -8137,16 +8224,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -8158,7 +8248,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -8173,7 +8263,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -8278,9 +8368,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8638,6 +8725,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8668,13 +8758,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8692,10 +8782,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8740,12 +8830,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8767,7 +8851,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8968,12 +9055,6 @@ msgstr[5] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8992,9 +9073,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -9004,18 +9082,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -9028,51 +9100,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -9085,6 +9133,9 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -9106,9 +9157,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -9202,6 +9250,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -9211,6 +9262,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -9277,15 +9340,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -9343,6 +9418,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9361,6 +9442,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9373,6 +9457,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9673,6 +9760,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9706,9 +9799,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9718,16 +9820,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9745,6 +9856,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9799,7 +9916,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9862,9 +9982,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -10009,6 +10126,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -10030,6 +10150,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -10093,18 +10219,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -10123,16 +10237,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -10144,6 +10258,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10594,6 +10711,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10714,6 +10834,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10726,6 +10849,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10738,6 +10864,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10798,6 +10927,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10855,6 +10987,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10867,6 +11002,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10936,9 +11074,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -11002,6 +11137,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -11020,7 +11158,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -11032,18 +11173,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -11053,25 +11191,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -11080,6 +11239,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -11170,6 +11332,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -11257,13 +11431,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -11287,10 +11470,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11524,9 +11719,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12565,16 +12757,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsSM|Code Suggestions"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12583,7 +12793,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12592,22 +12802,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12742,6 +12952,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12790,6 +13003,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -13072,13 +13291,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -13096,6 +13351,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -13108,6 +13366,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -13117,10 +13378,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -13135,9 +13396,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -13150,6 +13417,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -13180,9 +13450,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -13201,12 +13477,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -13324,6 +13606,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13384,6 +13669,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13411,7 +13702,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13564,6 +13861,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13654,7 +13954,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13897,6 +14197,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -14086,6 +14389,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14437,7 +14743,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14449,6 +14755,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14512,6 +14821,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14584,9 +14896,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14770,6 +15079,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14833,6 +15145,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14863,9 +15178,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14995,9 +15307,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -15034,6 +15343,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -15244,6 +15556,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15454,6 +15769,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15745,9 +16066,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15781,6 +16099,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -16054,9 +16375,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -16090,6 +16408,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -16171,6 +16492,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -16348,9 +16672,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -16363,7 +16684,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16684,6 +17005,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -17014,21 +17338,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -17152,12 +17461,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -17176,9 +17491,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -17188,6 +17500,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -17224,18 +17539,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -17245,6 +17569,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17503,9 +17830,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -18184,6 +18508,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -18325,6 +18694,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18637,6 +19009,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18928,6 +19303,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18994,6 +19372,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -19090,6 +19471,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -19126,6 +19510,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -19141,9 +19528,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -19207,6 +19591,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -19222,9 +19609,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -19312,6 +19696,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19627,6 +20014,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19729,15 +20119,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19750,9 +20137,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19768,9 +20152,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19780,9 +20161,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19798,10 +20176,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20713,9 +21091,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20842,6 +21217,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20935,6 +21313,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20950,16 +21331,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20998,9 +21376,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -21028,18 +21403,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -21148,6 +21514,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21445,6 +21814,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21724,9 +22096,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -22051,6 +22420,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -22402,12 +22774,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -22417,12 +22783,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22531,12 +22891,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22594,9 +22948,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22618,6 +22969,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22705,9 +23059,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22804,9 +23164,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22936,7 +23293,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22954,7 +23311,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -23131,22 +23488,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -23206,6 +23563,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -23227,16 +23587,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -23266,9 +23623,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -23278,9 +23632,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -23395,9 +23746,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23467,6 +23815,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23479,6 +23830,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23515,10 +23869,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23548,9 +23902,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23689,6 +24040,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23782,10 +24136,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -24049,6 +24406,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -24070,6 +24430,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -24112,12 +24475,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -24142,6 +24514,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -24166,6 +24541,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -24208,6 +24589,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -24271,30 +24655,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -24355,7 +24715,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -24397,7 +24757,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24520,6 +24880,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24574,6 +24937,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24838,15 +25210,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "Hide values"
msgstr ""
@@ -24865,6 +25228,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24940,6 +25306,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -25030,6 +25399,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -25129,9 +25501,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -25147,7 +25516,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -25159,7 +25528,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -25231,6 +25603,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25528,9 +25903,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25711,10 +26083,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25729,6 +26101,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25744,6 +26119,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -26230,6 +26608,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -26365,9 +26746,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26758,9 +27136,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26971,10 +27346,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -27301,13 +27676,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -27412,6 +27787,15 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -27421,14 +27805,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27469,6 +27847,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27598,6 +27979,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27727,6 +28111,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27796,15 +28183,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27856,6 +28243,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27904,6 +28297,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -28063,7 +28459,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -28333,6 +28729,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -28342,6 +28741,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -28414,6 +28816,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28534,9 +28939,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28573,6 +28975,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28603,6 +29008,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28702,6 +29221,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28747,7 +29272,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28765,6 +29290,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -29053,9 +29581,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -29086,6 +29611,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -29101,9 +29629,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -29326,7 +29851,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29509,9 +30034,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29545,6 +30067,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29638,39 +30163,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29698,12 +30199,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29758,9 +30253,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -30364,100 +30856,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30766,6 +31261,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -31147,6 +31645,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -31180,15 +31681,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -31198,15 +31693,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -31219,9 +31708,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -31258,6 +31744,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31486,9 +31975,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31582,9 +32077,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31600,6 +32092,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31630,36 +32125,18 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
-msgstr ""
-
-msgid "MlExperimentTracking|Info"
-msgstr ""
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr ""
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|Metrics"
-msgstr ""
-
msgid "MlExperimentTracking|Model candidate details"
msgstr ""
msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Model performance"
-msgstr ""
-
msgid "MlExperimentTracking|Model removed"
msgstr ""
@@ -31675,27 +32152,9 @@ msgstr ""
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr ""
-
msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
-msgstr ""
-
-msgid "MlExperimentTracking|Status"
-msgstr ""
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr ""
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] ""
@@ -31714,22 +32173,109 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr ""
+
+msgid "MlModelRegistry|CI Info"
+msgstr ""
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr ""
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr ""
+msgid "MlModelRegistry|Experiment"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
+msgstr ""
+
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31759,9 +32305,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -32332,9 +32884,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -32347,9 +32896,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32782,15 +33328,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32896,6 +33442,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -33046,18 +33595,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -33067,6 +33604,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -33082,6 +33622,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -33100,6 +33643,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -33226,6 +33772,9 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -33325,6 +33874,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -33373,6 +33928,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -33403,16 +33964,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -33460,6 +34018,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -33484,6 +34045,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33574,6 +34138,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33589,6 +34156,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33601,7 +34171,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33730,6 +34300,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33748,27 +34321,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -34321,9 +34915,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -34360,9 +34951,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -34453,6 +35041,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -34471,6 +35062,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34519,7 +35116,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34546,6 +35152,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34663,6 +35272,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34732,6 +35401,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34807,6 +35479,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -35017,6 +35692,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -35080,6 +35758,12 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -35104,6 +35788,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -35122,6 +35809,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -35188,6 +35878,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -35224,6 +35917,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -35365,6 +36061,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35512,6 +36211,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35656,6 +36358,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -36073,6 +36778,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -36133,12 +36862,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -36157,9 +36880,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -36232,6 +36952,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -36268,6 +36991,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -37186,9 +37915,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -37384,6 +38110,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -37492,6 +38221,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37612,7 +38344,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37978,7 +38710,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -38287,7 +39019,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -38314,10 +39046,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38536,6 +39283,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38623,9 +39373,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38743,6 +39490,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38788,6 +39538,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -39205,29 +39958,14 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -39262,6 +40000,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -39325,6 +40066,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39928,12 +40672,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -40015,9 +40765,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -40063,6 +40810,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -40510,9 +41260,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40693,6 +41440,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40747,6 +41497,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40807,6 +41560,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40909,6 +41665,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40987,6 +41746,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -41044,9 +41806,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -41113,9 +41872,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41578,6 +42334,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41647,7 +42406,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41716,9 +42475,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41842,15 +42598,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "Reveal values"
msgstr ""
@@ -41899,6 +42646,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41959,9 +42715,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -42319,6 +43072,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42601,6 +43357,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42721,7 +43480,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42730,9 +43489,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42967,9 +43723,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -43141,9 +43912,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -43162,6 +43942,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -43183,21 +43966,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -43222,6 +44023,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -43231,6 +44035,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -43246,6 +44053,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -43306,9 +44116,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -43360,34 +44167,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -43414,15 +44212,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -43435,7 +44227,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43588,6 +44398,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43825,6 +44638,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43834,6 +44650,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43891,6 +44737,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43978,7 +44827,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -44080,6 +44929,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -44089,6 +44941,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -44107,12 +44968,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -44125,6 +44992,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -44155,6 +45025,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -44167,10 +45040,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -44179,6 +45052,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -44251,6 +45130,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -44263,7 +45145,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -44278,6 +45163,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -44293,6 +45181,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -44320,6 +45211,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -44350,6 +45244,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -44437,12 +45334,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -44476,6 +45379,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -44509,6 +45418,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44593,12 +45508,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44635,6 +45565,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44821,6 +45754,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44872,6 +45808,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44887,12 +45826,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -45031,6 +45964,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -45130,6 +46066,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -45397,6 +46345,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -45559,9 +46510,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45601,6 +46558,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45661,7 +46624,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45670,6 +46636,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45868,9 +46840,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45886,6 +46855,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45964,24 +46936,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -46039,27 +47020,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -46327,9 +47287,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -46378,19 +47335,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46690,6 +47641,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46747,6 +47701,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46807,7 +47764,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -47149,9 +48106,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -47164,7 +48118,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -47185,12 +48139,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -47386,6 +48334,15 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47686,9 +48643,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47770,9 +48724,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47869,6 +48820,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -48421,9 +49375,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48694,6 +49645,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48703,9 +49657,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48721,21 +49681,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -49036,6 +49981,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -49234,6 +50182,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -49258,6 +50209,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -49276,9 +50233,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -49318,16 +50272,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -49585,6 +50545,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49723,6 +50686,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49774,13 +50740,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
-msgstr ""
-
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49951,6 +50914,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -50146,6 +51112,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -50236,9 +51205,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -50275,6 +51250,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -50467,9 +51445,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50614,12 +51589,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50668,6 +51637,15 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -51319,9 +52297,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -51370,6 +52345,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -51475,7 +52453,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -51490,9 +52468,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -51550,6 +52525,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -51586,6 +52564,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51628,7 +52609,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51640,9 +52621,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51658,10 +52636,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51703,18 +52681,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51787,6 +52753,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51811,16 +52783,43 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51880,10 +52879,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -52018,27 +53017,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -52054,28 +53032,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -52222,12 +53191,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -52303,15 +53266,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -52477,9 +53455,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -52555,7 +53542,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -52606,6 +53593,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52759,6 +53749,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52897,7 +53890,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52912,9 +53908,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52936,13 +53929,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52975,7 +53968,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -53014,7 +54007,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -53041,9 +54034,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -53293,12 +54283,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -53311,6 +54295,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -53380,6 +54370,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -53485,6 +54478,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53935,22 +54931,52 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53968,6 +54994,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -54070,15 +55099,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -54160,9 +55180,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -54181,15 +55198,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -54292,6 +55303,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -54328,6 +55342,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -54403,6 +55420,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -54472,6 +55492,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -55252,6 +56275,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55762,6 +56788,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55789,6 +56818,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55834,6 +56866,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55870,15 +56905,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55909,9 +56956,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55933,12 +56977,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55954,6 +57001,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55963,9 +57013,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -56095,7 +57142,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -56113,6 +57160,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -56191,7 +57241,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -56245,6 +57295,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -56272,6 +57328,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56644,10 +57703,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56701,6 +57760,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56734,6 +57796,9 @@ msgstr[5] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56767,7 +57832,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56779,7 +57844,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56812,6 +57877,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56851,6 +57919,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -57067,6 +58138,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -57079,6 +58153,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -57094,10 +58171,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -57304,6 +58381,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -57337,6 +58417,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -57478,6 +58561,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57721,10 +58807,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57808,9 +58894,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57853,7 +58936,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57895,27 +58978,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -58039,15 +59101,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -58105,9 +59170,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -58603,6 +59665,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58783,6 +59848,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -59128,6 +60196,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -59173,6 +60253,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -59191,6 +60274,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -59224,6 +60310,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -59476,6 +60565,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -59512,9 +60604,6 @@ msgstr[5] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -59695,6 +60784,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59704,6 +60796,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/da_DK/gitlab.po b/locale/da_DK/gitlab.po
index 323a57bdf6f..31438fb03ba 100644
--- a/locale/da_DK/gitlab.po
+++ b/locale/da_DK/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: da\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr " %{start} til %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d kommentar"
msgstr[1] "%d kommentarer"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d kommentar til committen"
-msgstr[1] "%d kommentarer til committen"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d kommentator"
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d fuldført problemstilling"
msgstr[1] "%d fuldførte problemstillinger"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d bidrag"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d problemstilling importeret med etiketten"
msgstr[1] "%d problemstillinger importeret med etiketten"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -374,8 +364,8 @@ msgstr[1] "%d kommentarer mere"
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d pakke"
+msgstr[1] "%d pakker"
msgid "%d pending comment"
msgid_plural "%d pending comments"
@@ -547,6 +537,9 @@ msgstr "%{author_link} skrev:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName}s tråd"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Maskeret:%{code_close} Skjult i joblogge. Skal matche maskeringskrav."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} forfattede %{commit_authored_timeago}"
@@ -707,12 +691,6 @@ msgstr "%{days} dage før mærkater fjernes automatisk"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Sentry-begivenhed: %{errorUrl}- Først set: %{firstSeen}- Sidst set: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}Avanceret søgning%{doc_link_end} er aktiveret."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}Lær om synlighedsniveauer%{docs_link_end}."
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} downstream-pipelines mere"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} slettet"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow} og %{awardsListLength} mere"
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} gren"
@@ -1275,8 +1265,11 @@ msgstr "%{timebox_type} skal have en start- og forfaldsdato"
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "%{title} ændringer"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage} %{percentSymbol} ledig)"
@@ -1290,6 +1283,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage} %{percentSymbol} ledig)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} advarsler fundet:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr "%{user} oprettede en problemstilling: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} er ikke med på listen"
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{wildcards_link_start}Jokertegn%{wildcards_link_end} såsom %{code_tag_start}v*%{code_tag_end} eller %{code_tag_start}*-release%{code_tag_end} understøttes."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' er ikke et gyldigt synlighedsniveau"
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr "(ingen ændringer)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(tjek forløb)"
@@ -1433,11 +1453,8 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(lad den være tom hvis du ikke vil ændre den)"
-msgid "(max size 15 MB)"
-msgstr "(maks. størrelse 15 MB)"
-
msgid "(no user)"
-msgstr ""
+msgstr "(ingen bruger)"
msgid "(optional)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr "+ %{amount} mere"
msgid "+ %{count} more"
msgstr "+ %{count} mere"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1563,7 +1580,7 @@ msgid "/"
msgstr "/"
msgid "/day"
-msgstr ""
+msgstr "/dag"
msgid "0 B"
msgstr ""
@@ -1782,9 +1799,6 @@ msgstr "En grundlæggende side og serverfri funktion der bruger AWS Lambda, AWS
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "En grundlæggende skabelon til at udvikle Linux-programmer med Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "En komplet DevOps-platform"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,8 +1904,8 @@ msgstr "En skabelon der er klar til brug med Android-programmer"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "En skabelon der er klar til brug med iOS Swift-programmer"
-msgid "A rebase is already in progress."
-msgstr "En rebase er allerede i gang."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "Der blev logget ind på din konto fra følgende IP-adresse: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr "API-fuzzing"
msgid "API Help"
msgstr "Hjælp for API"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API-nøgle"
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr "Tilføj godkendelsesregel"
msgid "Add approvers"
msgstr "Tilføj godkendere"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Tilføj underepic til en epic"
@@ -3014,9 +3067,6 @@ msgstr "Tilføj forslag til batch"
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "Tilføj tekst til indlogningssiden. Markdown er aktiveret."
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr "Administrator"
-
msgid "Admin Area"
msgstr "Administratorområde"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "Administratortilstand"
+
msgid "Admin Note"
msgstr "Administratorbemærkning"
@@ -3188,9 +3238,6 @@ msgstr "Administratorunderretninger"
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Administratortilstand allerede aktiveret"
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr "dokumentation"
msgid "AdminUsers|user cap"
msgstr "brugerloft"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,9 +4351,12 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
-msgid "Admin|Geo"
+msgid "Admin|Duo Pro"
msgstr ""
+msgid "Admin|Geo"
+msgstr "Admin|Geo"
+
msgid "Admin|Kubernetes"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr "Efter adgangskoden er blevet opdateret vil du blive omdirigeret til indl
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4766,6 +4831,15 @@ msgstr "Testalertbeskeden burde nu være synlig i din beskedliste."
msgid "Algorithm"
msgstr "Algoritme"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Alle"
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr "Alle miljøer"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr "Alle brugere skal have et navn."
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr "Tillad nøglen at bruge push til depotet"
msgid "Allow use of licensed EE features"
msgstr "Tillad brug af licenserede EE-funktioner"
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Tilladt"
@@ -4937,9 +5017,6 @@ msgstr "Tillader projekter eller undergrupper i gruppen at tilsidesætte den glo
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Giver dig mulighed for at tilføje eller håndtere Kubernetes-klynger."
-
msgid "Almost there"
msgstr "Du er der næsten"
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "En administrator ændrede adgangskoden for din GitLab-konto på %{link_to}."
@@ -5018,9 +5092,6 @@ msgstr "Et program kaldet %{link_to_client} anmoder om adgang til din GitLab-kon
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "En e-mail-underretning blev for nyligt sendt fra administratorpanelet. Vent venligst %{wait_time_in_words} inden der prøves på at sende en ny besked."
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Et tomt GitLab-brugerfelt tilføjer FogBugz-brugerens fulde navn (f.eks. \"Af Ronni Ræv\") i beskrivelsen på alle problemstillinger og kommentarer. Det vil også tilknytte og/eller tildele problemstillingerne og kommentarerne med projektopretteren."
@@ -5096,9 +5167,6 @@ msgstr "Der opstod en fejl under deaktivering af serviceskranke."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Der opstod en fejl under afskedigelse af advarslen. Opdater siden og prøv igen."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Der opstod en fejl under afskedigelse af funktionen fremhævning. Opdater siden og prøv at afskedige igen."
-
msgid "An error occurred while drawing job relationship links."
msgstr "Der opstod en fejl under tegning af jobrelationslinks."
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr "Der opstod en fejl under gemning af ændringer: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr "Analyserer fil …"
msgid "Ancestors"
msgstr "Forfædre"
-msgid "And this registration token:"
-msgstr "Og denne registreringstoken:"
-
msgid "Anonymous"
msgstr "Anonym"
@@ -5829,6 +5904,27 @@ msgstr "Tilføj %{shrug} til slutningen af kommentaren"
msgid "Append the comment with %{tableflip}"
msgstr "Tilføj %{tableflip} til slutningen af kommentaren"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Program"
msgid "Application ID"
msgstr "Program-id"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr "Programgrænser gemt"
@@ -6392,9 +6482,6 @@ msgstr "Arkivér job"
msgid "Archive project"
msgstr "Arkivér projekt"
-msgid "Archive test case"
-msgstr "Arkivér testsag"
-
msgid "Archived"
msgstr "Arkiverede"
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr "Er du sikker på, at du vil slette SSH-nøglen?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Er du sikker på, at du vil udsende miljøet?"
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr "Kommasepareret liste over grene som automatisk skal inspiceres. Lad den
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,14 +6898,11 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr "Mindst én af group_id eller project_id skal være angivet"
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr ""
+msgid "At least one of group_id or project_id must be specified"
+msgstr "Mindst én af group_id eller project_id skal være angivet"
msgid "At risk"
msgstr "I fare"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr "Automatisk løst"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr "Avataren fjernes. Er du sikker?"
msgid "Average per day: %{average}"
msgstr "Gennemsnit pr. dag: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "Tilbage"
@@ -7394,9 +7490,6 @@ msgstr "Tilføj badge"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Tilføjelse af badget mislykkedes. Tjek venligst de indtastede URL'er og prøv igen."
-
msgid "Badges|Badge image URL"
msgstr "URL for badgebillede"
@@ -7409,9 +7502,6 @@ msgstr "Badge gemt."
msgid "Badges|Delete badge?"
msgstr "Slet badge?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Sletning af badget mislykkedes. Prøv venligst igen."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr "Indtast en gyldig URL"
msgid "Badges|Example: %{exampleUrl}"
msgstr "Eksempel: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "Gruppebadge"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "Link"
@@ -7457,18 +7556,21 @@ msgstr "Understøttede %{docsLinkStart}variabler%{docsLinkEnd}: %{placeholders}"
msgid "Badges|The badge was deleted."
msgstr "Badget blev slettet."
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr ""
-
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
msgid "Badges|Your badges"
msgstr "Dine badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr ""
@@ -7478,7 +7580,7 @@ msgstr "URL for Bamboo"
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,8 +7595,8 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "Brugeren med API-adgang til Bamboo-serveren."
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr ""
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr "Begynd med den valgte commit"
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr "Direkte medlemskaber"
msgid "Billing|Enter at least three characters to search."
msgstr "Indtast mindst tre tegn for at søge."
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "Der opstod en fejl under oprettelse af epicen. Prøv venligst igen."
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "Der opstod en fejl under oprettelse af problemstillingen. Prøv venligst igen."
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "Der opstod en fejl under oprettelse af listen. Prøv venligst igen."
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr "Der opstod en fejl under hentning af gruppeprojekter. Prøv venligst ige
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "Der opstod en fejl under hentning af problemstillinger. Genindlæs venligst siden."
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "Der opstod en fejl under hentning af etiketter. Genindlæs venligst siden."
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "Der opstod en fejl under hentning af tavleepicsne. Genindlæs venligst siden."
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "Der opstod en fejl under hentning af tavleproblemstillingerne. Genindlæs venligst siden."
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "Der opstod en fejl under hentning af tavlelisterne. Genindlæs venligst siden."
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "Der opstod en fejl under hentning af tavlesvømmebanerne. Genindlæs venligst siden."
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "Der opstod en fejl under generering af lister. Genindlæs venligst siden."
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "Der opstod en fejl under flytning af epicen. Prøv venligst igen."
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "Der opstod en fejl under flytning af problemstillingen. Prøv venligst igen."
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "Der opstod en fejl under fjernelse af listen. Prøv venligst igen."
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "Der opstod en fejl under opdatering af tavlelisten. Prøv venligst igen."
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Sammenfold"
@@ -8410,9 +8473,6 @@ msgstr "Udfold"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr "Kunne ikke hente blokerende %{issuableType}s"
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8471,7 +8531,7 @@ msgid "Bold text"
msgstr "Fed tekst"
msgid "Bot"
-msgstr ""
+msgstr "Bot"
msgid "Both SSH and HTTP(S)"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr "Grenen er allerede taget"
msgid "Branch name"
msgstr "Grennavn"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Grene"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Gennemse filer"
msgid "Browse templates"
msgstr "Gennemse skabeloner"
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,17 +9136,26 @@ msgstr "Filtrér efter kildegruppe"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Importér grupper fra GitLab"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr ""
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr "Sidst importeret til %{link}"
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr "Kildegruppe"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr "Køb flere pipeline-minutter"
msgid "By %{user_name}"
msgstr "Af %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr "Udsendelsesstrategi"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9322,7 +9454,7 @@ msgid "CICD|Jobs"
msgstr "Job"
msgid "CICD|Limit"
-msgstr ""
+msgstr "CICD|Grænse"
msgid "CICD|Limit access %{italicStart}from%{italicEnd} this project (Deprecated)"
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr "Hvorfor anmode om et CVE-id?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr "Kadence er ikke automatiseret"
@@ -9423,16 +9549,16 @@ msgstr "Campfire-underdomæne (valgfrit)"
msgid "Campfire token"
msgstr "Campfire-token"
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr "Kan ikke anvende da kildegrenen blev slettet."
@@ -9811,7 +9940,7 @@ msgid "Changed the title to \"%{title_param}\"."
msgstr "Ændrede titlen til \"%{title_param}\"."
msgid "Changelog"
-msgstr ""
+msgstr "Ændringslog"
msgid "Changes"
msgstr "Ændringer"
@@ -9894,6 +10023,9 @@ msgstr "om %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr "i %{project_link}"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Tjek igen"
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "CI-minutter"
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr "By"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr "Bekræft køb"
msgid "Checkout|Confirming..."
msgstr "Bekræfter ..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Fortsæt til opkrævning"
@@ -10090,6 +10231,9 @@ msgstr "Gruppe"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Abonnementsdetaljer"
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr "Afgift"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "I alt"
@@ -10228,9 +10378,6 @@ msgstr "Vælg fil ..."
msgid "Choose a file"
msgstr "Vælg en fil"
-msgid "Choose a group"
-msgstr "Vælg en gruppe"
-
msgid "Choose a template"
msgstr "Vælg en skabelon"
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr "Tilstand"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr "Variabler"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10789,7 +10996,7 @@ msgid "Close"
msgstr "Luk"
msgid "Close %{issuableType}"
-msgstr ""
+msgstr "Luk %{issuableType}"
msgid "Close %{issueType}"
msgstr "Luk %{issueType}"
@@ -10812,9 +11019,6 @@ msgstr "Luk epic"
msgid "Close milestone"
msgstr "Luk milepæle"
-msgid "Close sidebar"
-msgstr "Luk sidebjælke"
-
msgid "Close this %{quick_action_target}"
msgstr "Luk denne %{quick_action_target}"
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr "Mønster"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11975,7 +12197,7 @@ msgid "Collapse issues"
msgstr "Sammenfold problemstillinger"
msgid "Collapse jobs"
-msgstr ""
+msgstr "Sammenfold jobs"
msgid "Collapse merge checks"
msgstr ""
@@ -12022,6 +12244,9 @@ msgstr "Farvelæg meddelelser"
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "Kommasepareret liste over e-mailadresser."
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr "Kommentér"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr "Fuldført"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr "Overholdelsesframework"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr "Tilføj framework"
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "Slet overholdelsesframeworket %{framework}"
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr "Navn"
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr "Kan ikke gemme overholdelsesframeworket. Prøv venligst igen"
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr "Konflikt: filen blev omdøbt i kildegrenen men fjernet i målgrenen."
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr "Aftryksmærkater"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr "Bidragsyder"
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Cookiedomæne"
@@ -13776,6 +14097,9 @@ msgstr "Kopiér koder"
msgid "Copy command"
msgstr "Kopiér kommando"
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr "Kopiér kommandoer"
@@ -13831,7 +14155,7 @@ msgid "Copy link"
msgstr "Kopiér link"
msgid "Copy link URL"
-msgstr ""
+msgstr "Kopiér link-URL"
msgid "Copy merge request URL"
msgstr "Kopiér sammenlægningsanmodnings-URL"
@@ -13848,9 +14172,6 @@ msgstr "Kopiér kildegrennavn"
msgid "Copy to clipboard"
msgstr "Kopiér til udklipsholder"
-msgid "Copy token"
-msgstr "Kopiér token"
-
msgid "Copy value"
msgstr "Kopiér værdi"
@@ -14034,6 +14355,9 @@ msgstr "Kunne ikke uploade dine designs da en eller flere af de uploadede filer
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr "Opret en sammenlægningsanmodning"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "Opret en ny %{codeStart}.gitlab-ci.yml%{codeEnd}-fil i roden af depotet for at komme i gang."
@@ -14127,9 +14454,6 @@ msgstr "Opret en personlig adgangstoken på din konto for at bruge pull eller pu
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr "Opret en konto med:"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14230,10 +14554,10 @@ msgid "Create new label"
msgstr "Opret ny etiket"
msgid "Create new..."
-msgstr ""
+msgstr "Opret ny(t) ..."
msgid "Create one"
-msgstr ""
+msgstr "Opret en"
msgid "Create or close an issue."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr "Opret udgivelse"
msgid "Create requirement"
msgstr "Opret krav"
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "Du har ikke tilladelse til at oprette en undergruppe i gruppen."
@@ -14508,6 +14832,9 @@ msgstr "Oprettet"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "Opret en gren og en sammenlægningsanmodning for at løse problemstillingen."
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "Oprettede grenen '%{branch_name}' og en sammenlægningsanmodning for at løse problemstillingen."
@@ -14596,7 +14923,7 @@ msgid "Credit card:"
msgstr "Kreditkort:"
msgid "Critical - S1"
-msgstr ""
+msgstr "Kritisk - S1"
msgid "Critical vulnerabilities present"
msgstr ""
@@ -14605,7 +14932,7 @@ msgid "Crm|Active"
msgstr ""
msgid "Crm|Contact"
-msgstr ""
+msgstr "Crm|Kontakt"
msgid "Crm|Contact has been added."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr "Køb pipeline-minutter"
msgid "CurrentUser|Edit profile"
msgstr "Rediger profil"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15018,7 +15348,7 @@ msgid "DAST profile not found: %{name}"
msgstr ""
msgid "DAST profiles"
-msgstr ""
+msgstr "DAST-profiler"
msgid "DNS"
msgstr "DNS"
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15295,7 +15628,7 @@ msgid "DORA4Metrics|Value Streams Dashboard"
msgstr ""
msgid "DSN"
-msgstr ""
+msgstr "DSN"
msgid "Dashboard"
msgstr "Betjeningspanel"
@@ -15306,9 +15639,6 @@ msgstr "Alle"
msgid "DashboardProjects|Personal"
msgstr "Personlige"
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} og %{secondProject}"
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr "Kunne ikke opdatere skannerprofilen. Prøv venligst igen."
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "Kunne ikke opdatere webstedsprofilen. Prøv venligst igen."
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr "MÃ¥l-URL"
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr "Standardgren"
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Standardbeskrivelsesskabelon for problemstillinger"
@@ -16046,7 +16382,7 @@ msgid "Delete Comment"
msgstr "Slet kommentar"
msgid "Delete File"
-msgstr ""
+msgstr "Slet fil"
msgid "Delete Key"
msgstr "Slet nøgle"
@@ -16061,7 +16397,7 @@ msgid "Delete asset"
msgstr ""
msgid "Delete audio"
-msgstr ""
+msgstr "Slet lyd"
msgid "Delete badge"
msgstr "Slet badge"
@@ -16105,7 +16441,7 @@ msgid "Delete identity"
msgstr ""
msgid "Delete image"
-msgstr ""
+msgstr "Slet billede"
msgid "Delete internal note"
msgstr ""
@@ -16167,7 +16503,7 @@ msgid "Delete user list"
msgstr "Slet brugerliste"
msgid "Delete video"
-msgstr ""
+msgstr "Slet video"
msgid "DeleteProject|Couldn't remove the project. A project repository storage move is in progress. Try again when it's complete."
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr "Afventer sletning. Projektet vil blive slettet %{date}. Depotet og andre
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr "SÃ¥rbarhedsliste til/fra"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr "Afhængighedsproxy"
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr "Brugernavn"
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -16972,7 +17312,7 @@ msgid "Deselect all"
msgstr ""
msgid "Design"
-msgstr ""
+msgstr "Design"
msgid "Design Management files and data"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr "Diff-grænser"
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr "Forkast ændringer til %{path}?"
msgid "Discard draft"
msgstr "Forkast kladde"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord-underretninger"
@@ -17764,7 +18152,7 @@ msgid "Download (%{size})"
msgstr "Download (%{size})"
msgid "Download PDF"
-msgstr ""
+msgstr "Download PDF"
msgid "Download artifacts"
msgstr "Download artefakter"
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "Træk dine designs hertil eller %{linkStart}klik for at uploade%{linkEnd}."
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "Slip eller %{linkStart}upload%{linkEnd} fil for at vedhæfte"
@@ -18055,7 +18446,7 @@ msgid "Edit sidebar"
msgstr "Rediger sidebjælke"
msgid "Edit single file"
-msgstr ""
+msgstr "Rediger én fil"
msgid "Edit table"
msgstr "Rediger tabel"
@@ -18108,6 +18499,9 @@ msgstr "Redigering"
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr "Forløbet tid"
@@ -18174,6 +18568,9 @@ msgstr "E-mail-underretning for ukendte indlogninger"
msgid "Email patch"
msgstr "E-mail-patch"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "E-mail sendt"
@@ -18270,6 +18667,9 @@ msgstr "Tom fil"
msgid "Enable"
msgstr "Aktivér"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr "Aktivér PlantUML"
msgid "Enable SSL verification"
msgstr "Aktivér SSL-verificering"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "Aktivér adgang til ydelseslinjen for ikke-administratorer i en given gruppe."
-msgid "Enable admin mode"
-msgstr "Aktivér administratortilstand"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr "Slutter"
msgid "Ends: %{endsAt}"
msgstr "Slutter: %{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18580,7 +18983,7 @@ msgid "Enter values to populate the .gitlab-ci.yml configuration file."
msgstr ""
msgid "Enter verification code"
-msgstr ""
+msgstr "Indtast bekræftelseskode"
msgid "Enter your Packagist server. Defaults to https://packagist.org."
msgstr "Indtast din Packagist-server. Er som standard https://packagist.org."
@@ -18616,7 +19019,7 @@ msgid "EnterpriseUsers|The user is already an enterprise user of the group"
msgstr ""
msgid "Environment"
-msgstr ""
+msgstr "Miljø"
msgid "Environment scope"
msgstr "Miljøomfang"
@@ -18807,6 +19210,9 @@ msgstr "Ã…bne"
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19090,7 +19484,7 @@ msgid "Epics|Unable to save epic. Please try again"
msgstr "Kan ikke gemme epic. Prøv venligst igen"
msgid "Erased"
-msgstr ""
+msgstr "Slettet"
msgid "Error"
msgstr "Fejl"
@@ -19775,7 +20169,7 @@ msgid "Expand issues"
msgstr "Udfold problemstillinger"
msgid "Expand jobs"
-msgstr ""
+msgstr "Udfold jobs"
msgid "Expand merge checks"
msgstr ""
@@ -19826,7 +20220,7 @@ msgid "ExperimentBadge|What's an Experiment?"
msgstr ""
msgid "Experiments"
-msgstr ""
+msgstr "Eksperimenter"
msgid "Expiration"
msgstr "Udløb"
@@ -19885,9 +20279,6 @@ msgstr "Eksportér %{requirementsCount} krav?"
msgid "Export as CSV"
msgstr "Eksportér som CSV"
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr "Eksportér gruppe"
@@ -20014,6 +20405,9 @@ msgstr "URL for ekstern wiki"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://example.com/xxx/wiki/..."
@@ -20099,6 +20493,9 @@ msgstr "Kunne ikke oprette en gren for problemstillingen. Prøv venligst igen."
msgid "Failed to create a to-do item for the design."
msgstr "Kunne ikke oprette et gøremålselement for designet."
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "Kunne ikke oprette framework"
@@ -20114,16 +20511,13 @@ msgstr "Kunne ikke oprette depot"
msgid "Failed to create resources"
msgstr "Kunne ikke oprette ressourcer"
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr "Kunne ikke oprette wiki"
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr "Kunne ikke indlæse tildelere."
-
msgid "Failed to load assignees. Please try again."
msgstr "Kunne ikke indlæse tildelte. Prøv venligst igen."
@@ -20192,18 +20583,9 @@ msgstr "Kunne ikke indlæse grupper, brugere og udsendelsesnøgler."
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr "Kunne ikke indlæse gennemløb."
-
msgid "Failed to load labels. Please try again."
msgstr "Kunne ikke indlæse etiketter. Prøv venligst igen."
-msgid "Failed to load milestones."
-msgstr "Kunne ikke indlæse milepæle."
-
msgid "Failed to load milestones. Please try again."
msgstr "Kunne ikke indlæse milepæle. Prøv venligst igen."
@@ -20312,6 +20694,9 @@ msgstr "Kunne ikke opdatere framework"
msgid "Failed to update issue status"
msgstr "Kunne ikke opdatere problemstillingsstatus"
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20579,7 +20964,7 @@ msgid "File Hooks"
msgstr "Filhooks"
msgid "File Tree"
-msgstr ""
+msgstr "Filtræ"
msgid "File added"
msgstr "Fil tilføjet"
@@ -20605,6 +20990,9 @@ msgstr "Fil flyttet"
msgid "File name"
msgstr "Filnavn"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21053,7 +21438,7 @@ msgid "ForksDivergence|Up to date with the upstream repository."
msgstr ""
msgid "ForksDivergence|Update fork"
-msgstr ""
+msgstr "ForksDivergence|Opdater forgrening"
msgid "ForksDivergence|View merge request"
msgstr ""
@@ -21124,7 +21509,7 @@ msgid "Frequently searched"
msgstr ""
msgid "Fri"
-msgstr ""
+msgstr "Fre"
msgid "Friday"
msgstr "Fredag"
@@ -21148,7 +21533,7 @@ msgid "From merge request merge until deploy to production"
msgstr "Fra sammenlægning af sammenlægningsanmodning til udsendelse til produktion"
msgid "Full"
-msgstr ""
+msgstr "Fuld"
msgid "Full log"
msgstr ""
@@ -21160,7 +21545,7 @@ msgid "GCP region configured"
msgstr ""
msgid "GPG Key ID:"
-msgstr ""
+msgstr "GPG nøgle-ID:"
msgid "GPG Keys"
msgstr "GPG-nøgler"
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21368,7 +21756,7 @@ msgid "Geo|Edit your search and try again."
msgstr ""
msgid "Geo|Errors:"
-msgstr ""
+msgstr "Geo|Fejl:"
msgid "Geo|External URL"
msgstr ""
@@ -21494,7 +21882,7 @@ msgid "Geo|Pending verification"
msgstr "Afventer verificering"
msgid "Geo|Primary"
-msgstr ""
+msgstr "Geo|Primær"
msgid "Geo|Primary site"
msgstr "Primære websted"
@@ -21550,12 +21938,6 @@ msgstr "Synkroniser igen"
msgid "Geo|Resync all"
msgstr "Synkroniser alle igen"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr "Verificer igen"
msgid "Geo|Reverify all"
msgstr "Verificer alle igen"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Det vil synkronisere alle projekter igen. Det kan tage noget tid af fuldføre. Er du sikker på, at du vil fortsætte?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Det vil verificere alle projekter igen. Det kan tage noget tid af fuldføre. Er du sikker på, at du vil fortsætte?"
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr "primær"
msgid "Geo|secondary"
msgstr "sekundær"
-msgid "Get a free instance review"
-msgstr "FÃ¥ en gratis instanskontrol"
-
msgid "Get a support subscription"
msgstr "FÃ¥ et abonnement med support"
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr "Kom godt i gang!"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHub-import"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "*Sammenlagt af: %{author} kl. %{timestamp}*"
@@ -21941,7 +22317,7 @@ msgid "GitLab group: %{source_link}"
msgstr "GitLab-gruppe: %{source_link}"
msgid "GitLab has redesigned the left sidebar to address customer feedback. View details in %{blog_link_start}this blog post%{link_end}. Here's how to %{issues_link_start}file an issue%{link_end} with the GitLab product team."
-msgstr ""
+msgstr "GitLab har redesignet den venstre sidebjælke for at imødekomme kundernes tilbagemeldinger. Se detaljerne i %{blog_link_start}dette blogindlæg%{link_end}. Du kan %{issues_link_start}oprette en problemstilling%{link_end} til GitLab-produktteamet."
msgid "GitLab informs you if a new version is available. %{link_start}What information does GitLab Inc. collect?%{link_end}"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21968,7 +22341,7 @@ msgid "GitLab is undergoing maintenance"
msgstr ""
msgid "GitLab logo"
-msgstr ""
+msgstr "GitLab-logo"
msgid "GitLab metadata URL"
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr "Ubekræftet"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,11 +22787,8 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
-msgstr ""
+msgstr "GlobalSearch|Skriv %{kbdOpen}/%{kbdClose} for at søge"
msgid "GlobalSearch|Type and press the enter key to submit search."
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr "GÃ¥ til forrige side"
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr "Gå til primære websted"
-
msgid "Go to project"
msgstr "GÃ¥ til projekt"
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr "GÃ¥ til dine udklip"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google Cloud"
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr "OK"
-msgid "Got it!"
-msgstr "OK!"
-
msgid "Grafana URL"
msgstr "Grafana-URL"
@@ -22837,6 +23204,9 @@ msgstr "Gruppeinformation:"
msgid "Group information"
msgstr "Gruppeinformation"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "Gruppér job efter"
@@ -22930,11 +23300,14 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
-msgstr "Kopiér gruppe-id"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "Gruppe-id: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} – ingen slutdato"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr "Badges"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "Kan ikke opdatere stien da der er projekter under gruppen som indeholder Docker-aftryk i deres beholderregister. Fjern venligst først aftrykkene fra dine projekter og prøv igen."
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr "Der var et problem ved opdatering af pipelineindstillingerne: %{error_me
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr "Ofte besøgte"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Her vises grupper du ofte besøger"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Indlæser grupper"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Noget gik galt hos os."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Beklager, ingen grupper matchede din søgning"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr "Udfyld venligst din personlige adgangstoken."
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23913,7 +24301,7 @@ msgid "Helps reduce request volume for protected paths."
msgstr ""
msgid "Hi %{user_name} (%{user_username})!"
-msgstr ""
+msgstr "Hej %{user_name} (%{user_username})!"
msgid "Hi %{username}!"
msgstr "Hej %{username}!"
@@ -23970,7 +24358,7 @@ msgid "Hide shared projects"
msgstr "Skjul delte projekter"
msgid "Hide sidebar"
-msgstr ""
+msgstr "Skjul sidebjælke"
msgid "Hide thread"
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr "Skjul værktøjstips eller popovere"
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Skjul værdi"
-msgstr[1] "Skjul værdier"
-
msgid "Hide values"
msgstr "Skjul værdier"
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24065,7 +24451,7 @@ msgid "Hostname used in private commit emails. %{learn_more}"
msgstr ""
msgid "Hour"
-msgstr ""
+msgstr "Time"
msgid "Hour (UTC)"
msgstr "Time (UTC)"
@@ -24076,6 +24462,9 @@ msgstr "Husarbejde"
msgid "Housekeeping successfully started"
msgstr "Husarbejde startet"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr "Id"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "Id:"
@@ -24236,7 +24628,7 @@ msgid "Icon will be removed. Are you sure?"
msgstr ""
msgid "Id"
-msgstr ""
+msgstr "ID"
msgid "Identifier"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24277,9 +24666,9 @@ msgid "IdentityVerification|Before you finish creating your account, we need to
msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
-msgstr ""
+msgstr "IdentityVerification|Inden du kan logge ind skal du bekræfte din identitet. Indtast følgende kode på indlogningssiden."
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24304,13 +24696,13 @@ msgid "IdentityVerification|Enter a valid code."
msgstr ""
msgid "IdentityVerification|For added security, you'll need to verify your identity in a few quick steps."
-msgstr ""
+msgstr "IdentityVerification|For at øge sikkerheden skal du bekræfte din identitet med nogle få hurtige trin."
msgid "IdentityVerification|For added security, you'll need to verify your identity."
msgstr ""
msgid "IdentityVerification|For added security, you'll need to verify your identity. We've sent a verification code to %{email}"
-msgstr ""
+msgstr "IdentityVerification|For at øge sikkerheden skal du bekræfte din identitet. Vi har sendt en bekræftelseskode til %{email}"
msgid "IdentityVerification|GitLab will not charge or store your payment information, it will only be used for verification."
msgstr ""
@@ -24319,13 +24711,13 @@ msgid "IdentityVerification|Help us keep GitLab secure"
msgstr ""
msgid "IdentityVerification|Help us protect your account"
-msgstr ""
+msgstr "IdentityVerification|Hjælp os med at beskytte din konto"
msgid "IdentityVerification|If you have not recently tried to sign into GitLab, we recommend %{password_link_start}changing your password%{link_end} and %{two_fa_link_start}setting up Two-Factor Authentication%{link_end} to keep your account safe. Your verification code expires after %{expires_in_minutes} minutes."
msgstr ""
msgid "IdentityVerification|If you have not recently tried to sign into GitLab, we recommend changing your password (%{password_link}) and setting up Two-Factor Authentication (%{two_fa_link}) to keep your account safe."
-msgstr ""
+msgstr "IdentityVerification|Hvis du ikke har forsøgt at logge ind på GitLab for nyligt, så anbefaler vi at du ændre din adgangskode (%{password_link}) og opsætter totrinsgodkendelse (%{two_fa_link}) for at holde din konto sikker."
msgid "IdentityVerification|If you've lost access to the email associated to this account or having trouble with the code, %{link_start}here are some other steps you can take.%{link_end}"
msgstr ""
@@ -24352,7 +24744,7 @@ msgid "IdentityVerification|Please enter a valid email address."
msgstr ""
msgid "IdentityVerification|Resend code"
-msgstr ""
+msgstr "IdentityVerification|Send koden igen"
msgid "IdentityVerification|Select country or region"
msgstr ""
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24388,16 +24783,16 @@ msgid "IdentityVerification|Update email"
msgstr ""
msgid "IdentityVerification|Verification code"
-msgstr ""
+msgstr "IdentityVerification|Bekræftelseskode"
msgid "IdentityVerification|Verification code can't be blank."
-msgstr ""
+msgstr "IdentityVerification|Bekræftelseskoden må ikke være tom."
msgid "IdentityVerification|Verification code must be a number."
-msgstr ""
+msgstr "IdentityVerification|Bekræftelseskoden skal være et nummer."
msgid "IdentityVerification|Verification successful"
-msgstr ""
+msgstr "IdentityVerification|Bekræftelse lykkedes"
msgid "IdentityVerification|Verify code"
msgstr ""
@@ -24445,7 +24840,7 @@ msgid "IdentityVerification|Your account has been successfully verified. You'll
msgstr ""
msgid "IdentityVerification|Your verification code expires after %{expires_in_minutes} minutes."
-msgstr ""
+msgstr "IdentityVerification|Din bekræftelseskode udløber efter %{expires_in_minutes} minutter."
msgid "Identity|Active"
msgstr ""
@@ -24520,16 +24915,16 @@ msgid "If you did not perform this request, you can safely ignore this email."
msgstr "Hvis du ikke udførte anmodningen, så er det sikkert for dig at ignorere e-mailen."
msgid "If you did not recently sign in, you should immediately %{password_link_start}change your password%{password_link_end}."
-msgstr "Hvis du ikke loggede ind for nyligt, så skal du straks %{password_link_start}ændre din adgangskode%{password_link_end}."
+msgstr "Hvis du ikke har logget ind for nyligt, så bør du straks %{password_link_start}ændre din adgangskode%{password_link_end}."
msgid "If you did not recently sign in, you should immediately change your password: %{password_link}."
-msgstr "Hvis du ikke loggede ind for nyligt, så skal du straks ændre din adgangskode: %{password_link}."
+msgstr "Hvis du ikke har logget ind for nyligt, så bør du straks ændre din adgangskode: %{password_link}."
msgid "If you did not recently try to sign in, you should immediately %{password_link_start}change your password%{password_link_end}."
-msgstr ""
+msgstr "Hvis du ikke har forsøgt at logge ind for nyligt, så bør du straks %{password_link_start}ændre din adgangskode%{password_link_end}."
msgid "If you did not recently try to sign in, you should immediately change your password: %{password_link}."
-msgstr ""
+msgstr "Hvis du ikke har forsøgt at logge ind for nyligt, så bør du straks ændre din adgangskode: %{password_link}."
msgid "If you do not renew by %{strong}%{downgrades_on}%{strong_close}, you can't use merge approvals, %{end_message}"
msgstr ""
@@ -24544,7 +24939,7 @@ msgid "If you lose your recovery codes you can generate new ones, invalidating a
msgstr ""
msgid "If you recently signed in and recognize the IP address, you may disregard this email."
-msgstr "Hvis du for nyligt har logget ind og genkender IP-adressen, så kan du se bort fra e-mailen."
+msgstr "Hvis du har logget ind for nyligt og genkender IP-adressen, så kan du se bort fra denne e-mail."
msgid "If you recently tried to sign in, but mistakenly entered an incorrect verification code, you can ignore this email."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr "Importér gruppe"
msgid "Import group from file"
msgstr "Importér gruppe fra fil"
-msgid "Import groups"
-msgstr "Importér grupper"
-
msgid "Import history"
msgstr "Importér historik"
@@ -24831,10 +25223,10 @@ msgstr "Importerer ..."
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -24880,7 +25278,7 @@ msgid "Improve quality with test cases"
msgstr ""
msgid "In GitLab"
-msgstr ""
+msgstr "I GitLab"
msgid "In case of pull mirroring, your user will be the author of all events in the activity feed that are the result of an update, like new branches being created or new commits being pushed to existing branches."
msgstr ""
@@ -24907,7 +25305,7 @@ msgid "In this project"
msgstr ""
msgid "In use"
-msgstr ""
+msgstr "I brug"
msgid "InProductMarketing|%{strong_start}GitLab Inc.%{strong_end} 268 Bush Street, #350, San Francisco, CA 94104, USA"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr "Infrastruktur"
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "Installer GitLab Runner og sørg for at det kører."
-
msgid "Installation"
msgstr "Installation"
@@ -25866,9 +26264,6 @@ msgstr "Ugyldig fil."
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr "Ugyldig hash"
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,14 +26800,14 @@ msgstr "Problemstillings-URL"
msgid "IssueTracker|New issue URL"
msgstr "URL for ny problemstilling"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "URL'en til at oprette en problemstilling i den eksterne problemstillingsporing."
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
-msgstr "URL'en til projektet i den eksterne problemstillingsporing."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "URL'en til at vise en problemstilling i den eksterne problemstillingsporing. Skal indeholde %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "Brug Bugzilla som projektets problemstillingssporing."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Beklager, dit filter gav ingen resultater"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "Det er dig"
@@ -26698,6 +27099,9 @@ msgstr "Fejl ved indlæsning af gennemløbskadencer."
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr "Gennemløbskadencer"
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr " på grenen %{branch_link}"
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Jobartefakter"
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27620,7 +28045,7 @@ msgid "Keep divergent refs"
msgstr ""
msgid "Keep sidebar visible"
-msgstr ""
+msgstr "Hold sidebjælke synlig"
msgid "Kerberos access denied"
msgstr "Kerberos-adgang afvist"
@@ -27634,11 +28059,8 @@ msgstr "Nøgle (PEM)"
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
-msgstr ""
+msgstr "Nøgle:"
msgid "Keyboard shortcuts"
msgstr "Tastaturgenveje"
@@ -27673,6 +28095,9 @@ msgstr "Nøgler"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27703,6 +28128,120 @@ msgstr "Kubernetes-klynger"
msgid "Kubernetes deployment not found"
msgstr "Kubernetes-udsendelse ikke fundet"
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,8 +28384,8 @@ msgstr ""
msgid "Last Accessed On"
msgstr "Sidst tilgået"
-msgid "Last Activity"
-msgstr "Sidste aktivitet"
+msgid "Last GitLab activity"
+msgstr ""
msgid "Last Name"
msgstr "Efternavn"
@@ -27857,6 +28402,9 @@ msgstr "Sidst tilgået"
msgid "Last activity"
msgstr "Sidste aktivitet"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Sidste commit"
@@ -27873,7 +28421,7 @@ msgid "Last event"
msgstr ""
msgid "Last login"
-msgstr ""
+msgstr "Seneste indlogning"
msgid "Last modified"
msgstr "Sidst ændret"
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr "Opsæt dit arbejdsområde"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr "Forlad"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "Forlad redigeringstilstand? Alle ændringer som ikke er blevet gemt vil gå tabt."
@@ -28390,7 +28935,7 @@ msgstr "Komponent"
msgid "Licenses|Components"
msgstr "Komponenter"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28455,8 +29000,8 @@ msgstr ""
msgid "Line"
msgid_plural "Lines"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Linje"
+msgstr[1] "Linjer"
msgid "Line changes"
msgstr "Linjeændringer"
@@ -28569,9 +29114,6 @@ msgstr "Liste"
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr "Indlæs mere"
msgid "Load more users"
msgstr "Indlæs flere brugere"
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr "Indlæser"
@@ -28639,7 +29184,7 @@ msgid "Location"
msgstr "Placering"
msgid "Location:"
-msgstr ""
+msgstr "Placering:"
msgid "Lock"
msgstr "LÃ¥s"
@@ -28648,7 +29193,7 @@ msgid "Lock %{issuableType}"
msgstr ""
msgid "Lock File?"
-msgstr ""
+msgstr "LÃ¥s fil?"
msgid "Lock discussion"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr "LÃ¥ser debatten."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr "Mailgun-begivenheder"
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr "%{member_name} inviterede dig til at deltage i GitLab"
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr "Invitation til at deltage i %{project_or_group} %{project_or_group_name}"
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr "MÃ¥linger"
+
msgid "Metrics - Grafana"
msgstr "MÃ¥linger - Grafana"
@@ -30228,15 +30749,9 @@ msgstr "Slet måling"
msgid "Metrics|Delete metric?"
msgstr "Slet måling?"
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr "Til gruppering af lignende målinger"
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "Ny måling"
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr "Der opstod en fejl under forsøg på at validere din forespørgsel"
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Minutter"
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr "Luk"
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "Ændret"
@@ -30810,7 +31382,7 @@ msgid "Modify merge commit"
msgstr "Rediger sammenlægningscommit"
msgid "Mon"
-msgstr ""
+msgstr "Man"
msgid "Monday"
msgstr "Mandag"
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31615,7 +32181,7 @@ msgid "New milestone"
msgstr "Ny milepæl"
msgid "New name"
-msgstr ""
+msgstr "Nyt navn"
msgid "New password"
msgstr "Ny adgangskode"
@@ -31690,7 +32256,7 @@ msgid "Next file in diff"
msgstr "Næste fil i diff"
msgid "Next scan"
-msgstr ""
+msgstr "Næste skanning"
msgid "Next unresolved discussion"
msgstr "Næste uløste debat"
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr "Ingen udsendelser registreret. Brug miljøer til at styre din softwares løbende udsendelse. %{linkStart}Lær mere om udsendelsesjob%{linkEnd}."
-
msgid "No deployments found"
msgstr "Ingen udsendelser fundet"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "Intet slutpunkt angivet"
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr "Ingen forældergruppe"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "Ingen plan"
@@ -31960,7 +32529,7 @@ msgid "No repository"
msgstr "Intet depot"
msgid "No results"
-msgstr ""
+msgstr "Ingen resultater"
msgid "No results found"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr "Normal tekst"
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr "NorthstarNavigation|Ombygget navigation"
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "NorthstarNavigation|Ny navigation"
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "NorthstarNavigation|Ny navigation til/fra"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr "Ikke tilgængelig for beskyttede grene"
msgid "Not confidential"
msgstr "Ikke fortrolig"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr "Ikke startet"
msgid "Not supported"
msgstr "Ikke understøttet"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Bemærkning"
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "Kontrollant: %{users}"
msgstr[1] "Kontrollanter: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr "Underret brugere med e-mail når indlogningsplacering ikke genkendes."
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr "Antal filer berørt"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "Antal replikaer"
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr "Ups, er du sikker?"
-
msgid "Open"
msgstr "Ã…bne"
@@ -33339,7 +33950,7 @@ msgid "Open full view"
msgstr ""
msgid "Open in Gitpod"
-msgstr ""
+msgstr "Ã…bn i Gitpod"
msgid "Open in Web IDE"
msgstr "Ã…bn i web-IDE"
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr "Åbn rå"
-msgid "Open sidebar"
-msgstr "Åbn sidebjælke"
-
msgid "Open: %{open}"
msgstr "Ã…ben: %{open}"
@@ -33375,7 +33983,7 @@ msgid "OpenSearch's region."
msgstr ""
msgid "Opened"
-msgstr ""
+msgstr "Ã…bnet"
msgid "OpenedNDaysAgo|Created"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr "Oversigt"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "Ejet af %{image_tag}"
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr "Instansniveau"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr "Pip-kommando"
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -34180,6 +34890,9 @@ msgstr "Beklager, dit filter gav ingen resultater"
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr "MÃ¥l-SHA: %{sha}"
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr "Kan ikke indlæse pakke"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34253,7 +34969,7 @@ msgid "PackageRegistry|published by %{author}"
msgstr "udgivet af %{author}"
msgid "Packages"
-msgstr ""
+msgstr "Pakker"
msgid "Packages and registries"
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr "Adgangskodegodkendelse er utilgængelig."
msgid "Password confirmation"
msgstr "Bekræftelse af adgangskode"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34376,7 +35095,7 @@ msgid "PasswordPrompt|Please enter your password to confirm"
msgstr ""
msgid "Passwords should be unique and not used for any other sites or services."
-msgstr "Adgangskoder skal være unikke og ikke være brugt på andre websteder eller tjenester."
+msgstr "Adgangskoderne bør være unikke og ikke være brugt på andre websteder eller tjenester."
msgid "Password|Not satisfied"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr "Udfør almindelige operationer på GitLab-projekt"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "Ydelsesoptimering"
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr "Web-IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Pipeline: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr "Indlæser pipelines"
msgid "Pipelines|Loading pipelines"
msgstr "Indlæser pipelines"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr "Mere information"
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Noget gik galt under rensning af runnermellemlager."
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr "Tidligere artefakter"
-
msgid "Previous commit"
msgstr "Forrige commit"
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr "Profil"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr "Brugernavnet blev ændret"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,8 +38027,8 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
-msgstr "Forgreninger"
+msgid "ProjectOverview|Fork"
+msgstr ""
msgid "ProjectOverview|Go to your fork"
msgstr "GÃ¥ til din forgrening"
@@ -37302,11 +38054,26 @@ msgstr "Du har nået din projektgrænse"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "Du skal logge ind for at stjernemarkere et projekt"
-msgid "ProjectPage|Copy project ID"
-msgstr "Kopiér projekt-id"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "Projekt-id: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr ""
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "Tilpas projektets badges."
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr "Projekter med skriveadgang"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Ofte besøgte"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Indlæser projekter"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Her vises projekter du ofte besøger"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Søg efter dine projekter"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Noget gik galt hos os."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Beklager, ingen projekter matchede din søgning"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr "Opret fra skabelon"
msgid "ProjectsNew|Create new project"
msgstr "Opret nyt projekt"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr "Kør CI/CD for eksternt depot"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr "Synlighedsniveau"
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr "Miljø"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr "Hvad er beskyttede mærkater?"
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr "Protip: %{linkStart}Auto DevOps%{linkEnd} bruger Kubernetes-klynger til at udsende din kode!"
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "Udgiv til statussiden"
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr "Tilmeld med totrinsprogram"
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr "PÃ¥mind senere"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Fjern"
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr "Fjern forfaldsdato"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr "Fjern bruger fra gruppe"
msgid "Remove user from project"
msgstr "Fjern bruger fra projekt"
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr "Fjernet"
@@ -39959,6 +40734,9 @@ msgstr "Fjerner alle etiketter."
msgid "Removes an issue from an epic."
msgstr "Fjerner en problemstilling fra en epic."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr "Genåbn epic"
msgid "Reopen milestone"
msgstr "Genåbn milepæl"
-msgid "Reopen test case"
-msgstr "Genåbn testsag"
-
msgid "Reopen this %{quick_action_target}"
msgstr "Genåbn denne %{quick_action_target}"
@@ -40085,9 +40860,6 @@ msgstr "Besvar kommentar"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "Besvar e-mailen direkte eller %{view_it_on_gitlab}."
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr "Besvar …"
@@ -40526,6 +41298,9 @@ msgstr "Anmodninger pr. periode"
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr "Løs tråd"
@@ -40782,11 +41554,6 @@ msgstr "Prøv jobbet igen for at oprette de nødvendige ressourcer."
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Vis værdi"
-msgstr[1] "Vis værdier"
-
msgid "Reveal values"
msgstr "Vis værdier"
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] "Kontrollant"
msgstr[1] "%d kontrollanter"
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr "Kontrollanter"
@@ -40844,7 +41620,7 @@ msgid "Revoke"
msgstr "Tilbagekald"
msgid "Revoke Key"
-msgstr ""
+msgstr "Tilbagekald nøgle"
msgid "Revoked"
msgstr "Tilbagekaldt"
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40916,7 +41689,7 @@ msgid "Run CI/CD pipelines with Jenkins."
msgstr "Kør CI-/CD-pipelines med Jenkins."
msgid "Run again"
-msgstr ""
+msgstr "Kør igen"
msgid "Run housekeeping"
msgstr "Kør husarbejde"
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr "delt"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "Kører"
@@ -41993,7 +42784,7 @@ msgid "SVG could not be rendered correctly: "
msgstr ""
msgid "Sat"
-msgstr ""
+msgstr "Lør"
msgid "Satisfied"
msgstr "Opfyldt"
@@ -42037,9 +42828,18 @@ msgstr "Gemmer"
msgid "Saving project."
msgstr "Gemmer projekt."
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr "Søg efter navn"
msgid "Search files"
msgstr "Søg efter filer"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr "Søg efter navnerum"
@@ -42527,7 +43360,7 @@ msgid "Search or filter results…"
msgstr "Søg efter eller filtrér resultater …"
msgid "Search or go to…"
-msgstr ""
+msgstr "Søg eller gå til …"
msgid "Search page"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr "Hemmelig token"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr "Sikkerhedsbetjeningspanel"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr "Aktivér Auto DevOps"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr "Handlinger"
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr "Kun ejere kan opdatere sikkerhedsregelsætprojekt"
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr "Regelsæt"
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr "Sikkerhedsregelsætprojekt blev linket"
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr "Send underretninger om projektbegivenheder til Mattermost-kanaler. %{doc
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr "Send underretninger om projektbegivenheder til en Discord-kanal. %{docs_link}"
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "Send rapport"
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr "Kontakt venligst en administrator for at få hjælp med at opsætning serviceskranken til din instans."
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr "For at aktivere serviceskranke i instansen skal en instansadministrator først opsætte indgående e-mail."
@@ -44712,9 +45704,6 @@ msgstr "Opsæt CI/CD"
msgid "Set up Jira Integration"
msgstr "Opsæt Jira-integrering"
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ msgstr "Opsæt ny adgangskode"
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
msgstr "Opsæt dit projekt til automatisk at bruge push og/eller pull på ændringer til/fra et andet depot. Grene, mærkater og commits synkroniseres automatisk."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "Indstil vægt"
@@ -44808,20 +45800,33 @@ msgstr "Indstilling"
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr "Indstillinger"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "Alvorlighed"
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -44988,7 +45972,7 @@ msgid "Show latest version"
msgstr "Vis seneste version"
msgid "Show less"
-msgstr ""
+msgstr "Vis færre"
msgid "Show list"
msgstr "Vis liste"
@@ -45163,9 +46147,6 @@ msgstr "Log ind med smartcard"
msgid "Sign in via 2FA code"
msgstr "Log ind via 2FA-kode"
-msgid "Sign in with"
-msgstr "Log ind med"
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr "URL for udlogningsside"
msgid "Sign-up restrictions"
msgstr "Begrænsninger for tilmelding"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "Ved at klikke på %{button_text} accepterer jeg at jeg har læst og accepteret %{link_start}vilkår for tjeneste og privatlivspolitik%{link_end}"
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "Ved at klikke på %{button_text} accepterer jeg at jeg har læst og accepteret GitLabs %{link_start}vilkår for tjeneste og privatlivspolitik%{link_end}"
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr "Smartcard"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45632,7 +46613,7 @@ msgid "Someone edited this test case at the same time you did. The description h
msgstr "Nogen redigerede testsagen på samme tid som dig. Beskrivelsen er blevet opdateret og du skal foretage dine ændringer igen."
msgid "Someone signed in to your %{host} account from a new location"
-msgstr ""
+msgstr "Nogen har logget ind på din %{host}-konto fra en ny placering"
msgid "Someone, hopefully you, has requested to reset the password for your GitLab account on %{link_to_gitlab}."
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr "Noget gik galt"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr "Popularitet"
msgid "SortOptions|Priority"
msgstr "Prioritet"
-msgid "SortOptions|Project"
-msgstr "Projekt"
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,8 +46978,8 @@ msgstr "Seneste med stjerne"
msgid "SortOptions|Size"
msgstr "Størrelse"
-msgid "SortOptions|Sort by:"
-msgstr "Sortér efter:"
+msgid "SortOptions|Sort by"
+msgstr ""
msgid "SortOptions|Sort direction"
msgstr "Sorteringsretning"
@@ -46021,12 +46999,6 @@ msgstr "Start snart"
msgid "SortOptions|Title"
msgstr "Titel"
-msgid "SortOptions|Type"
-msgstr "Type"
-
-msgid "SortOptions|Version"
-msgstr "Version"
-
msgid "SortOptions|Weight"
msgstr "Vægt"
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr "Standard"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr "Stop terminal"
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr "Stop efterligning"
-
msgid "Stop this environment"
msgstr "Stop miljøet"
@@ -46606,9 +47580,6 @@ msgstr "Indsend som ham"
msgid "Submit as spam"
msgstr "Indsend som spam"
-msgid "Submit feedback"
-msgstr "Indsend feedback"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "Tilføj sæder"
@@ -47030,7 +48004,7 @@ msgid "Summary will be generated with the next push to this merge request and wi
msgstr ""
msgid "Sun"
-msgstr ""
+msgstr "Søn"
msgid "Sunday"
msgstr "Søndag"
@@ -47253,9 +48227,6 @@ msgstr "Skift gren"
msgid "Switch branch/tag"
msgstr "Skift gren/mærkat"
-msgid "Switch to GitLab Next"
-msgstr "Skift til GitLab Next"
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,19 +48497,28 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
msgid "Target"
-msgstr ""
+msgstr "MÃ¥l"
msgid "Target Branch"
msgstr "MÃ¥lgren"
@@ -47549,21 +48529,6 @@ msgstr "MÃ¥lsti"
msgid "Target branch"
msgstr "MÃ¥lgren"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr "Test indstillinger"
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr "Flyt testsag"
@@ -47975,7 +48943,7 @@ msgid "Tests"
msgstr "Tests"
msgid "Text"
-msgstr ""
+msgstr "Tekst"
msgid "Text (optional)"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr "Problemstillingsporingen er stedet hvor ting tilføjes som har brug for
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "Problemstillingsporingen er stedet hvor ting tilføjes som har brug for at blive forbedret eller løst i et projekt. Du kan tilmelde eller logge ind for at oprette problemstillinger til projektet."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr "Kommentaren du er ved at redigere er blevet ændret af en anden bruger.
msgid "The commit does not exist"
msgstr "Committen findes ikke"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr "Sammenligningsvisningen kan være upræcis pga. sammenlægningskonflikter."
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr "Navnet på CI-/CD-konfigurationsfilen. En sti relativ til rodmappen er v
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr "Navnet på Jenkins-projektet. Kopiér navnet fra slutningen af URL'en til projektet."
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr "Det angivne faneblad er ugyldigt. Vælg venligst et andet"
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr "Emnet vil blive brugt som titlen på den nye problemstilling og meddelelsen vil blive beskrivelsen. %{quickActionsLinkStart}Hurtighandlinger%{quickActionsLinkEnd} og styling med %{markdownLinkStart}Markdown%{markdownLinkEnd} understøttes."
@@ -48574,15 +49560,12 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
+msgid "There are currently no mirrored repositories."
msgstr ""
-msgid "There are merge conflicts"
-msgstr "Der er sammenlægningskonflikter"
-
msgid "There are no GPG keys associated with this account."
msgstr "Der er ingen GPG-nøgler tilknyttet til kontoen."
@@ -48751,6 +49734,9 @@ msgstr "Der var problemer med at hente projektmærkater."
msgid "There was a problem fetching project users."
msgstr "Der var problemer med at hente projektbrugere."
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr "Der var problemer med at hente seneste grupper."
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr "Vedhæftningen er blevet afkortet for ikke at overstige den maksimale tilladte vedhæftningsstørrelse på %{size_limit}. %{written_count} af %{count} %{issuables} er blevet medtaget. Overvej at eksportere igen med et mindre udvalg af %{issuables}."
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr "Dette er en selvhåndterede instans af GitLab."
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr "Sammenlægningsanmodningen kan ikke rebases mens der er konflikter."
-
msgid "This merge request does not have accessibility reports"
msgstr "Sammenlægningsanmodningen har ikke tilgængelighedsrapporter"
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49640,7 +50634,7 @@ msgid "Throughput"
msgstr ""
msgid "Thu"
-msgstr ""
+msgstr "Tor"
msgid "Thursday"
msgstr "Torsdag"
@@ -50037,7 +51031,7 @@ msgid "Title:"
msgstr "Titel:"
msgid "Titles"
-msgstr ""
+msgstr "Titler"
msgid "To"
msgstr "Til"
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50255,7 +51249,7 @@ msgid "To-Do List"
msgstr "Gøremålsliste"
msgid "To-Do list"
-msgstr ""
+msgstr "Gøremålsliste"
msgid "To-do item successfully marked as done."
msgstr "Gøremålselement mærket som færdig."
@@ -50263,7 +51257,7 @@ msgstr "Gøremålselement mærket som færdig."
msgid "Today"
msgstr "I dag"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,8 +51413,8 @@ msgstr "Commit-liste til/fra"
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
-msgstr "Emojibelønning til/fra"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr ""
@@ -50428,9 +51425,6 @@ msgstr "Fokustilstand til/fra"
msgid "Toggle keyboard shortcuts help dialog"
msgstr "Hjælpedialogen tastaturgenveje til/fra"
-msgid "Toggle navigation"
-msgstr "Navigation til/fra"
-
msgid "Toggle project select"
msgstr ""
@@ -50446,11 +51440,11 @@ msgstr "Ydelseslinje til/fra"
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
-msgstr "Slog til/fra :%{name}: emojibelønning."
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr "Slår til/fra :%{name}: emojibelønning."
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr "GÃ¥ tilbage"
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr "TopNav|Dine betjeningspaneler"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "Brugere i alt"
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr "Tracing"
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr "Trævisning"
msgid "Trending"
msgstr "Tidens trend"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "Opret en ny gruppe for at starte din GitLab Ultimate-prøveperiode."
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50991,7 +51968,7 @@ msgid "Trying to communicate with your device. Plug it in (if you haven't alread
msgstr ""
msgid "Tue"
-msgstr ""
+msgstr "Tir"
msgid "Tuesday"
msgstr "Tirsdag"
@@ -51002,12 +51979,6 @@ msgstr "Sluk"
msgid "Turn on"
msgstr "Tænd"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "URL'en skal begynde med %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd} eller %{codeStart}ftp://%{codeEnd}"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL eller anmodnings-id"
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr "Ukendt svartekst"
msgid "Unknown user"
msgstr "Ukendt bruger"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr "Oplåser debatten."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr "Kunne ikke indstille standardgrenen"
@@ -51645,7 +52646,7 @@ msgid "Upvotes"
msgstr "Opstemmer"
msgid "Usage"
-msgstr ""
+msgstr "Forbrug"
msgid "Usage Trends"
msgstr "Forbrugstrends"
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr "Kodepakker og beholderaftryk."
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr "Noget fik galt under hentning af projektlagerstatistik"
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "Lager"
@@ -52073,12 +53071,6 @@ msgstr "Brug skabelon"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr "Brug linket nedenunder for at bekræfte din e-mailadresse (%{email})"
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr "Brug søgelinjen øverst på siden"
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr "Brugeren %{user} blev fjernet fra %{group}."
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "Bruger-id"
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52538,7 +53542,7 @@ msgid "Username or email"
msgstr "Brugernavn eller e-mail"
msgid "Username or primary email"
-msgstr ""
+msgstr "Brugernavn eller primære e-mail"
msgid "Username:"
msgstr "Brugernavn:"
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "%{stageCount}+ elementer"
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr "Variabler"
-msgid "Variables can be:"
-msgstr "Variabler kan være:"
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr "Vis alle miljøer."
-msgid "View all groups"
-msgstr "Vis alle grupper"
-
msgid "View all issues"
msgstr "Vis alle problemstillinger"
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53032,7 +54031,7 @@ msgid "View issues"
msgstr "Vis problemstillinger"
msgid "View it on GitLab"
-msgstr "Vis den på GitLab"
+msgstr "Vis det på GitLab"
msgid "View job"
msgstr "Vis job"
@@ -53064,6 +54063,9 @@ msgstr "Vis åben sammenlægningsanmodning"
msgid "View page @ "
msgstr "Vis side @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "Vis projekt i administratorområde"
@@ -53096,6 +54098,9 @@ msgstr "Vis dokumentationen"
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr "Visual Studio Code (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Visual Studio Code (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr "SÃ¥rbarheder"
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53682,7 +54693,7 @@ msgid "Vulnerability|Warning: possible secrets detected"
msgstr ""
msgid "WARNING:"
-msgstr ""
+msgstr "ADVARSEL:"
msgid "WARNING: This snippet contains hidden files which might be used to mask malicious behavior. Exercise caution if cloning and executing code from this snippet."
msgstr ""
@@ -53820,10 +54831,10 @@ msgid "WebIDE|Merge request"
msgstr "Sammenlægningsanmodning"
msgid "WebIDE|Quickly and easily edit multiple files in your project."
-msgstr ""
+msgstr "WebIDE|Hurtig og let redigering af flere filer i dit projekt."
msgid "WebIDE|Quickly and easily edit multiple files in your project. Press . to open"
-msgstr ""
+msgstr "WebIDE|Hurtig og let redigering af flere filer i dit projekt. Tryk på . for at åbne"
msgid "WebIDE|This project does not accept unsigned commits."
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr "Hemmelig token"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54081,7 +55095,7 @@ msgid "Website:"
msgstr "Websted:"
msgid "Wed"
-msgstr ""
+msgstr "Ons"
msgid "Wednesday"
msgstr "Onsdag"
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,11 +55882,11 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
-msgstr ""
+msgstr "Arbejdsområder"
msgid "Workspaces|A workspace is a virtual sandbox environment for your code in GitLab."
msgstr ""
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,14 +55981,14 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
msgstr ""
msgid "Workspaces|Workspaces"
-msgstr ""
+msgstr "Workspaces|Arbejdsområder"
msgid "Workspaces|You can't create a workspace for this project"
msgstr ""
@@ -54997,6 +56035,12 @@ msgstr "Skriv dine udgivelsesnoter eller træk dine filer hertil …"
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55024,6 +56068,9 @@ msgstr "I går"
msgid "You"
msgstr "Du"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr "Du har ingen seneste søgninger"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr "Du har ikke tilstrækkelige tilladelser til at konfigurere eskaleringsre
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr "Du har ikke tilstrækkelige tilladelser til at oprette en vagtplan for p
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr "Du har ikke tilstrækkelige tilladelser til at opdatere en vagtplan for projektet"
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "Du har ikke tilstrækkelige tilladelser til at opdatere HTTP-integreringen"
@@ -55595,6 +56651,9 @@ msgstr "Du kan nu lukke milepælen."
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55731,7 +56790,7 @@ msgid "You're not allowed to make changes to this project directly. A fork of th
msgstr "Du har ikke tilladelse til at foretage ændringer direkte i projektet. En forgrening af projektet oprettes som du kan lave ændringer i, så du kan indsende en sammenlægningsanmodning."
msgid "You're receiving this email because of your account on %{host}."
-msgstr "Du modtager e-mailen pga. din konto på %{host}."
+msgstr "Du har modtaget denne e-mail pga. din konto på %{host}."
msgid "You're receiving this email because of your account on %{host}. %{manage_label_subscriptions_link_start}Manage label subscriptions%{manage_label_subscriptions_link_end} &middot; %{help_link_start}Help%{help_link_end}"
msgstr ""
@@ -55805,6 +56864,9 @@ msgid "Your %{strong}%{plan_name}%{strong_close} subscription for %{strong}%{nam
msgstr ""
msgid "Your Activity"
+msgstr "Din aktivitet"
+
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
msgstr ""
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55937,7 +57002,7 @@ msgid "Your action succeeded."
msgstr "Din handling lykkedes."
msgid "Your activity"
-msgstr ""
+msgstr "Din aktivitet"
msgid "Your applications"
msgstr ""
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Dit navn"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr "Dine projekter"
msgid "Your public email will be displayed on your public profile."
msgstr "Din offentlige e-mail vil blive vist på din offentlige profil."
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr "`end_time` skal ikke være mere end en måned efter `start_time`"
@@ -56246,7 +57320,7 @@ msgid "alert"
msgstr "alertbesked"
msgid "all"
-msgstr ""
+msgstr "alle"
msgid "all branches"
msgstr ""
@@ -56335,7 +57409,7 @@ msgid "before"
msgstr ""
msgid "beta"
-msgstr ""
+msgstr "beta"
msgid "blocks"
msgstr "blokerer"
@@ -56441,12 +57515,12 @@ msgstr ""
msgid "cannot be changed"
msgstr "må ikke ændres"
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr ""
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "kan ikke ændres hvis et personligt projekt har beholderregistermærkater."
-msgid "cannot be changed since member is associated with a custom role"
-msgstr ""
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr ""
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "Anvend automatisk patchen i en ny gren"
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr "Beholderskanning"
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr "Der opstod en fejl ved hentning af kodekvalitetsrapporten."
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56903,7 +57961,7 @@ msgid "created pipeline for commit %{linkStart}%{shortId}%{linkEnd}"
msgstr ""
msgid "daily"
-msgstr ""
+msgstr "dagligt"
msgid "data"
msgstr "data"
@@ -57123,7 +58181,7 @@ msgid "help"
msgstr "hjælp"
msgid "hours"
-msgstr ""
+msgstr "timer"
msgid "http:"
msgstr "http:"
@@ -57141,7 +58199,7 @@ msgid "i18n|%{language} (%{percent_translated}%% translated)"
msgstr "%{language} (%{percent_translated} %% oversat)"
msgid "if"
-msgstr ""
+msgstr "hvis"
msgid "image diff"
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr "er ikke gyldig. Gennemløbsgruppen skal matche gennmløbskadencegruppen."
@@ -57353,8 +58414,8 @@ msgstr ""
msgid "line"
msgid_plural "lines"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "linje"
+msgstr[1] "linjer"
msgid "load it anyway"
msgstr "indlæs det alligevel"
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr "skal være en Debian-pakke"
msgid "must be a boolean value"
msgstr "skal være en boolesk værdi"
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58051,7 +59136,7 @@ msgid "projects"
msgstr "projekter"
msgid "random"
-msgstr ""
+msgstr "tilfældig"
msgid "reCAPTCHA"
msgstr "reCAPTCHA"
@@ -58092,6 +59177,9 @@ msgstr "fjern startdato"
msgid "remove weight"
msgstr "fjern vægt"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr "depot:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr "wikien"
@@ -58363,8 +59454,8 @@ msgstr "uploads"
msgid "user"
msgid_plural "users"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "bruger"
+msgstr[1] "brugere"
msgid "user avatar"
msgstr "brugeravatar"
@@ -58403,7 +59494,7 @@ msgid "via merge request %{link}"
msgstr "via sammenlægningsanmodningen %{link}"
msgid "view it on GitLab"
-msgstr "vis den på GitLab"
+msgstr "vis det på GitLab"
msgid "view the blob"
msgstr "vis blob'en"
@@ -58468,7 +59559,7 @@ msgid "yaml invalid"
msgstr "yaml ugyldig"
msgid "you"
-msgstr ""
+msgstr "dig"
msgid "your GitLab instance"
msgstr ""
@@ -58477,7 +59568,7 @@ msgid "your group (%{group_name})"
msgstr ""
msgid "yyyy-mm-dd"
-msgstr ""
+msgstr "åååå-mm-dd"
msgid "{group}"
msgstr "{gruppe}"
diff --git a/locale/de/gitlab.po b/locale/de/gitlab.po
index 5b98eb3de0e..c70887ff7d2 100644
--- a/locale/de/gitlab.po
+++ b/locale/de/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: de\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr " %{start} bis %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] "%d Artefakt"
msgstr[1] "%d Artefakte"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d zugewiesenes Ticket"
-msgstr[1] "%d zugewiesene Tickets"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] "%d Autor"
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d Kommentar"
msgstr[1] "%d Kommentare"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d Kommentar zu diesem Commit"
-msgstr[1] "%d Kommentare zu diesem Commit"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d Kommentator(in)"
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d erledigtes Ticket"
msgstr[1] "%d erledigte Tickets"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d Beitrag"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d Ticket erfolgreich mit dem Label importiert"
msgstr[1] "%d Tickets erfolgreich mit dem Label importiert"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] "%d Element gefunden"
+msgstr[1] "%d Elemente gefunden"
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d Job"
@@ -547,6 +537,9 @@ msgstr "%{author_link} schrieb:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName}s Unterhaltung"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} schlägt %{created_at} vor, %{source_branch} %{copy_button} in %{target_branch} zu mergen."
@@ -585,15 +578,6 @@ msgstr "%{chartTitle} keine Datenreihe"
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr "%{codeStart}$%{codeEnd} wird als Beginn einer Referenz auf eine andere Variable behandelt."
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr "%{code_open}Erweitert:%{code_close} Variablen mit %{code_open}$%{code_close} werden als Beginn einer Referenz auf eine andere Variable behandelt."
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Maskiert:%{code_close} In Job-Logs versteckt. Muss Maskier-Anforderungen erfüllen."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}Geschützt:%{code_close} Nur geschützte Branches oder geschützte Tags sichtbar."
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr " verfasst von %{commit_author_link} %{commit_authored_timeago}"
@@ -707,12 +691,6 @@ msgstr "%{days} Tage, bis Tags automatisch entfernt werden"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Sentry-Event: %{errorUrl}- Zuerst gesehen: %{firstSeen}- Zuletzt gesehen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "Die %{doc_link_start}erweiterte Suche%{doc_link_end} ist deaktiviert, da %{ref_elem} nicht der Standard-Branch ist. %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "Die %{doc_link_start}erweiterte Suche%{doc_link_end} ist aktiviert."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}Erfahre mehr über Sichtbarkeitsstufen.%{docs_link_end}"
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@firma.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} weitere Downstream-Pipelines"
+msgid "%{failures} of %{total} failed"
+msgstr "%{failures} von %{total} fehlgeschlagen"
+
msgid "%{filePath} deleted"
msgstr "%{filePath} gelöscht"
@@ -923,6 +904,12 @@ msgstr "%{linkStart} Mehr erfahren%{linkEnd}."
msgid "%{linkStart}%{linkEnd} review summary"
msgstr "%{linkStart}%{linkEnd} Zusammenfassung der Review"
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow} und %{awardsListLength} weitere"
@@ -1186,6 +1173,9 @@ msgstr[1] "%{strongStart}%{count}%{strongEnd} Commits"
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr "%{strongStart}Tipp:%{strongEnd} Du kannst auch %{linkStart}mit der Merge Requst ID%{linkEnd} auschecken."
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] " Branch%{strong_start}%{branch_count}%{strong_end}"
@@ -1275,8 +1265,11 @@ msgstr "%{timebox_type} muss ein Start- und Enddatum haben"
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
-msgstr "%{title} Änderungen"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage} %{percentSymbol} frei)"
@@ -1290,6 +1283,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage} %{percentSymbol} frei)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} Warnung(en) gefunden:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr "%{total} verbleibendes Ticketgewicht"
@@ -1344,6 +1340,9 @@ msgstr "%{user} hat ein Ticket erstellt: %{issue_link}"
msgid "%{user} user’s menu"
msgstr "%{user} Benutzermenü"
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} ist nicht in der Liste enthalten"
@@ -1362,6 +1361,9 @@ msgstr "%{webhooks_link_start}%{webhook_type}%{webhooks_link_end} ermöglichen e
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{wildcards_link_start}Platzhalter%{wildcards_link_end} wie %{code_tag_start}v*%{code_tag_end} oder %{code_tag_start}*-release%{code_tag_end} werden unterstützt."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr "'%{data_pointer}' muss eine gültige '%{type}' sein"
+
msgid "'%{level}' is not a valid visibility level"
msgstr "„%{level}“ ist kein gültiges Sichtbarkeitslevel"
@@ -1375,9 +1377,21 @@ msgid "'%{value}' days of inactivity must be greater than or equal to 90"
msgstr "'%{value}' Tage der Inaktivität müssen größer oder gleich 90 sein"
msgid "'allow: %{allow}' must be a string"
+msgstr "'allow: %{allow}' muss eine Zeichenfolge sein"
+
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
msgstr ""
msgid "'except: %{except}' must be an array of string"
+msgstr "'except: %{except}' muss ein Zeichenfolgen-Array sein"
+
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
msgstr ""
msgid "'projects' is not yet supported"
@@ -1415,6 +1429,12 @@ msgstr "(Keine Änderungen)"
msgid "(Unlimited pipeline minutes)"
msgstr "(Unbegrenzte Pipeline-Minuten)"
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(Fortschritt überprüfen)"
@@ -1433,9 +1453,6 @@ msgstr "(externe(r) Teilnehmer(in))"
msgid "(leave blank if you don't want to change it)"
msgstr "(lass dieses Feld leer, wenn du es nicht ändern möchtest)"
-msgid "(max size 15 MB)"
-msgstr "(maximale Größe 15 MB)"
-
msgid "(no user)"
msgstr "(kein(e) Benutzer(in))"
@@ -1466,8 +1483,8 @@ msgstr "+ %{amount} weitere"
msgid "+ %{count} more"
msgstr "+ %{count} weitere"
-msgid "+ %{hiddenBranchesLength} more"
-msgstr "+ %{hiddenBranchesLength} weitere"
+msgid "+ %{itemsLength} more"
+msgstr ""
msgid "+ %{moreCount} more"
msgstr "+ %{moreCount} weitere"
@@ -1782,9 +1799,6 @@ msgstr "Eine grundlegende Seite und serverlose Funktion, die AWS Lambda, AWS API
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "Eine grundlegende Vorlage für die Entwicklung von Linux-Programmen in Benutzung von Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "Eine komplette DevOps-Plattform"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1822,7 +1836,7 @@ msgid "A management, operational, or technical control (that is, safeguard or co
msgstr "Eine Management-, Betriebs- oder technische Kontrolle (d. h. Schutz oder Gegenmaßnahme), die von einer Organisation eingesetzt wird, die einen gleichwertigen oder vergleichbaren Schutz für ein Informationssystem bietet."
msgid "A maximum of %{limit} projects can be searched for at one time."
-msgstr ""
+msgstr "Du kannst maximal nach %{limit} Projekten auf einmal suchen."
msgid "A member of the abuse team will review your report as soon as possible."
msgstr "Ein Mitglied des Missbrauchsteams wird deinen Bericht so schnell wie möglich überprüfen."
@@ -1890,8 +1904,8 @@ msgstr "Eine direkt einsatzbereite Vorlage für Android-Apps"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "Eine direkt einsatzbereite Vorlage für IOS Swift-Apps"
-msgid "A rebase is already in progress."
-msgstr "Ein Rebase läuft bereits."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "Eine Anmeldung in dein Konto ging von der folgenden IP-Adresse aus: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr "Aktionen"
msgid "AI-generated summary"
msgstr "KI-generierte Zusammenfassung"
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr "KI-gestützte Funktionen"
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr " Aktiviere %{link_start}KI-gestützte Funktionen%{link_end} für diese Instanz."
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr "Experimentelle und KI-gestützte Beta-Funktionen aktivieren"
+
msgid "AISummary|Generates a summary of all comments"
msgstr "Erstellt eine Zusammenfassung aller Kommentare"
@@ -2013,9 +2054,6 @@ msgstr "Soll die vorhandene Beschreibung durch eine KI-generierte Beschreibung e
msgid "AI|Responses generated by AI"
msgstr "Antworten generiert von KI"
-msgid "AI|Send chat message."
-msgstr "Chat-Nachricht senden"
-
msgid "AI|Something went wrong. Please try again later"
msgstr "Etwas ist schiefgelaufen. Bitte versuche es später erneut"
@@ -2036,6 +2074,9 @@ msgstr "Die vorhandene Beschreibung wird beim Absenden ersetzt."
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr "Es ist zu viele Buchstaben und Wörter. Bitte versuche es mit einem kürzeren Text."
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr "Sende dein Feedback an das GitLab-Team, um mitzuhelfen, die Qualität der Inhalte zu verbessern."
@@ -2081,6 +2122,9 @@ msgstr "API-Fuzzing"
msgid "API Help"
msgstr "API-Hilfe"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API-Schlüssel"
@@ -2402,6 +2446,12 @@ msgstr "Phishing"
msgid "AbuseReport|Phone"
msgstr "Telefon"
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr "Grund"
@@ -2876,6 +2926,9 @@ msgstr "Zustimmungsregel hinzufügen"
msgid "Add approvers"
msgstr "Genehmigungsberechtigte hinzufügen"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Sub-Epic hinzufügen"
@@ -3014,9 +3067,6 @@ msgstr "Vorschlag zum Stapel hinzufügen"
msgid "Add tag"
msgstr "Tag hinzufügen"
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "Text zur Anmeldeseite hinzufügen. Markdown ist aktiviert."
@@ -3170,15 +3220,15 @@ msgstr "Fügt diese %{issuable_type} in Bezug auf die %{issuable_type} hinzu, au
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "Passe an, wie oft das GitLab-UI nach Updates fragt."
-msgid "Admin"
-msgstr "Administrator(in)"
-
msgid "Admin Area"
msgstr "Adminbereich"
msgid "Admin Area / Dashboard"
msgstr "Adminbereich/Dashboard"
+msgid "Admin Mode"
+msgstr "Admin-Modus"
+
msgid "Admin Note"
msgstr "Administrator-Hinweis"
@@ -3188,9 +3238,6 @@ msgstr "Administrator(innen)-Benachrichtigungen"
msgid "Admin message"
msgstr "Admin Nachricht"
-msgid "Admin mode"
-msgstr "Admin-Modus"
-
msgid "Admin mode already enabled"
msgstr "Admin-Modus bereits aktiviert"
@@ -3210,7 +3257,7 @@ msgid "AdminArea|Active users"
msgstr "Aktive Benutzer(innen)"
msgid "AdminArea|All users created in the instance, including users who are not %{billable_users_link_start}billable users%{billable_users_link_end}."
-msgstr "Alle in der Instanz erstellten Benutzer(innen), einschließlich Benutzer(innen), die nicht %{billable_users_link_start}abrechnungsfähige Benutzer(innen) sind%{billable_users_link_end}."
+msgstr "Alle in der Instanz erstellten Benutzer(innen), einschließlich nicht %{billable_users_link_start}abrechnungsfähige Benutzer(innen)%{billable_users_link_end}."
msgid "AdminArea|Are you sure?"
msgstr "Bist du sicher?"
@@ -3246,7 +3293,7 @@ msgid "AdminArea|Documentation"
msgstr ""
msgid "AdminArea|Features"
-msgstr "Features"
+msgstr "Funktionen"
msgid "AdminArea|Get security updates from GitLab and stay up to date"
msgstr "Erhalte Sicherheitsaktualisierungen von GitLab und bleibe auf dem Laufenden"
@@ -3297,13 +3344,13 @@ msgid "AdminArea|No applications found"
msgstr "Keine Anwendungen gefunden"
msgid "AdminArea|Owner"
-msgstr "Inhaber(in)"
+msgstr "Eigentümer(in)"
msgid "AdminArea|Projects"
msgstr "Projekte"
msgid "AdminArea|Reporter"
-msgstr "Reporter"
+msgstr "Reporter(in)"
msgid "AdminArea|Sign up for the GitLab Security Newsletter to get notified for security updates."
msgstr "Melde dich für den Sicherheits-Newsletter von GitLab an, um über Sicherheitsupdates informiert zu werden."
@@ -3333,13 +3380,13 @@ msgid "AdminArea|Users statistics"
msgstr "Benutzerstatistik"
msgid "AdminArea|Users with highest role"
-msgstr "Benutzer(in) mit höchster Rolle"
+msgstr "Benutzer(innen) mit höchster Rolle"
msgid "AdminArea|Users with highest role guest and with a %{strongOpen}Custom Role%{strongClose}."
msgstr "Benutzer(innen) mit der höchsten Gastrolle und mit einer %{strongOpen}benutzerdefinierten Rolle%{strongClose}."
msgid "AdminArea|Users without a Group and Project"
-msgstr "Benutzer(in) ohne Gruppe und Projekt"
+msgstr "Benutzer(innen) ohne Gruppe und Projekt"
msgid "AdminArea|View latest groups"
msgstr "Neuste Gruppen anzeigen"
@@ -3531,7 +3578,7 @@ msgid "AdminSettings|Enable smartcn custom analyzer: Search"
msgstr "Aktiviere den Smartcn benutzerdefinierten Analysator: Suche"
msgid "AdminSettings|Enable the external redirect warning page for job artifacts"
-msgstr ""
+msgstr "Warnseite für externe Umleitungen für Job-Artefakte aktivieren"
msgid "AdminSettings|Enabled"
msgstr "Aktiviert"
@@ -3548,6 +3595,9 @@ msgstr "Eine Liste der enthaltenen Registrierungsfunktionen findest du in %{link
msgid "AdminSettings|Git abuse rate limit"
msgstr "Git-Missbrauchsratengrenze"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr "GitLab verwendet die %{bold_start}Rails-%{bold_end} und %{bold_start}Browser-JavaScript%{bold_end}-Sentry-SDKs, um Ereignisse an Sentry zu senden. Starte GitLab neu, um die Änderungen an den Rails-Integrationseinstellungen anzuwenden."
@@ -3644,6 +3694,9 @@ msgstr "Zu synchronisierende Paketdaten"
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr "Elasticsearch Indizierung anhalten"
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr "Erkennung von Geheimnissen vor dem Empfang"
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr "Verhindern, dass Nicht-Administratoren die ausgewählten Sichtbarkeitsebenen für Gruppen, Projekte und Snippets verwenden."
@@ -3735,7 +3788,7 @@ msgid "AdminSettings|Setting must be greater than 0."
msgstr "Der Wert muss größer als 0 sein."
msgid "AdminSettings|Show a redirect page that warns you about user-generated content in GitLab Pages."
-msgstr ""
+msgstr "Zeigt eine Umleitungsseite an, die vor benutzergenerierten Inhalten in GitLab Pages warnt."
msgid "AdminSettings|Size and domain settings for Pages static sites."
msgstr "Größen- und Domain-Einstellungen für statische Pages-Seiten."
@@ -4262,6 +4315,9 @@ msgstr "Dokumentationen"
msgid "AdminUsers|user cap"
msgstr "Benutzerlimit"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "Administrator(inn)en"
@@ -4295,6 +4351,9 @@ msgstr "Anmeldeinformationen"
msgid "Admin|Deploy Keys"
msgstr "Deploy Keys"
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr "Geo"
@@ -4406,18 +4465,24 @@ msgstr "Nach dem erfolgreichen Ändern des Passwortes wirst du zum Anmeldebildsc
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr "Nach dem Entfernen kann die Fork-Beziehung nur mithilfe der API wiederhergestellt werden. Dieses Projekt wird nicht länger in der Lage sein, Merge Requests an das Upstream-Projekt oder andere Forks zu empfangen oder zu senden."
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
-msgstr "Nachdem die Apple App Store Connect Integration aktiviert ist, werden die folgenden geschützten Variablen für die CI-/CD-Nutzung erstellt."
-
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr "Nachdem der Export abgeschlossen ist, lädst du die Datendatei von einer Benachrichtigungs-E-Mail oder von dieser Seite herunter. Anschließend kannst du die Datendatei von der Seite %{strong_text_start}Neue Gruppe erstellen%{strong_text_end} einer anderen GitLab-Instanz importieren."
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
-msgstr "Nachdem du die Integration aktiviert hast, wird die folgende geschützte Variable für die CI/CD-Verwendung erstellt:"
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
+msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr "Nachdem Du diese Beitragsrichtlinien überprüft hast, bist Du bereit für"
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4766,6 +4831,15 @@ msgstr "Die Testbenachrichtigung sollte nun in Deiner Alarmliste angezeigt werde
msgid "Algorithm"
msgstr "Algorithmus"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Alle"
@@ -4796,11 +4870,8 @@ msgstr "Alle berechtigten Benutzer(innen)"
msgid "All environments"
msgstr "Alle Umgebungen"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
-msgstr ""
+msgstr "Alle Gruppen"
msgid "All groups and projects"
msgstr "Alle Gruppen und Projekte"
@@ -4853,6 +4924,9 @@ msgstr "Alle Benutzer(innen) benötigen einen Namen."
msgid "All users with matching cards"
msgstr "Alle Benutzer(innen) mit übereinstimmenden Karten"
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr "%{strongOpen}%{group_name}%{strongClose} erlauben, Dich anzumelden?"
@@ -4910,12 +4984,18 @@ msgstr "Erlaube diesen Schlüssel in dieses Repository zu übertragen"
msgid "Allow use of licensed EE features"
msgstr "Die Nutzung lizenzierter EE-Funktionen erlauben"
+msgid "Allow users to create organizations"
+msgstr "Benutzer(inne)n das Erstellen von Organisationen erlauben"
+
msgid "Allow users to extend their session"
msgstr "Benutzer(inne)n erlauben, ihre Sitzung zu verlängern"
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr "Erlaube Benutzer(innen), beliebige Anwendungen zur Verwendung von GitLab als OAuth-Anbieter zu registrieren. OAuth-Anwendungen auf Gruppenebene sind von dieser Einstellung nicht betroffen."
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Erlaubt"
@@ -4937,9 +5017,6 @@ msgstr "Projekten und Untergruppen in dieser Gruppe das Ãœberschreiben von globa
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "Ermöglicht Projekten, Fehler mithilfe einer Opstrace-Integration zu verfolgen."
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Ermöglicht dir das Hinzufügen und Verwalten von Kubernetes-Clustern."
-
msgid "Almost there"
msgstr "Fast geschafft"
@@ -5000,9 +5077,6 @@ msgstr "Eine %{link_start}Warnung%{link_end} mit demselben Fingerabdruck ist ber
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr "Ein(e) Administrator(in) hat das maximale Ablaufdatum auf %{maxDate} gesetzt. %{helpLinkStart}Mehr erfahren%{helpLinkEnd}."
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "Ein GitLab-Konto für Enterprise-Benutzer(innen) wurde von deiner Organisation für dich erstellt:"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "Ein(e) Administrator(in) hat das Kennwort für dein GitLab-Konto auf %{link_to}geändert."
@@ -5018,9 +5092,6 @@ msgstr "Eine Anwendung namens %{link_to_client} fordert Zugriff auf dein GitLab-
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "Eine E-Mail-Benachrichtigung wurde kürzlich vom Admin-Panel versendet. Bitte warte %{wait_time_in_words}, bevor du versuchst eine weitere Nachricht zu senden."
-msgid "An email will be sent with the report attached after it is generated."
-msgstr "Nach der Generierung wird eine E-Mail mit dem angehängten Bericht gesendet."
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Bei einem leeren GitLab-Benutzerfeld wird der vollständigen Namen des FogBugz-Benutzers/der FogBugz-Benutzerin (z. B. „Von John Smith“) in die Beschreibung aller Tickets und Kommentare eingefügt. Außerdem werden diese Tickets und Kommentare auch mit dem/der Projektersteller(in) assoziiert und/oder ihm/ihr zugewiesen."
@@ -5096,9 +5167,6 @@ msgstr "Beim Deaktivieren des Service-Desks ist ein Fehler aufgetreten."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Beim Ausblenden des Alarms ist ein Fehler aufgetreten. Aktualisiere die Seite und versuche es erneut."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Beim Ausblenden des Feature-Highlights ist ein Fehler aufgetreten. Aktualisiere die Seite und versuche es erneut auszublenden."
-
msgid "An error occurred while drawing job relationship links."
msgstr "Beim Zeichnen von Jobbeziehungs-Verknüpfungen ist ein Fehler aufgetreten."
@@ -5118,7 +5186,7 @@ msgid "An error occurred while fetching codequality mr diff reports."
msgstr "Beim Abrufen der mr diff-Berichte zur Codequalität ist ein Fehler aufgetreten."
msgid "An error occurred while fetching comments, please try again."
-msgstr ""
+msgstr "Beim Abrufen der Kommentare ist ein Fehler aufgetreten. Bitte versuche es erneut."
msgid "An error occurred while fetching commit data."
msgstr "Während des Abholens der Daten für den Commit sind Fehler aufgetreten."
@@ -5199,7 +5267,7 @@ msgid "An error occurred while fetching this tab."
msgstr "Beim Abrufen des Tabs ist ein Fehler aufgetreten."
msgid "An error occurred while fetching. Please try again."
-msgstr ""
+msgstr "Beim Abrufen ist ein Fehler aufgetreten. Bitte versuche es erneut."
msgid "An error occurred while getting files for - %{branchId}"
msgstr "Beim Abrufen der Dateien für – %{branchId} ist ein Fehler aufgetreten"
@@ -5327,10 +5395,8 @@ msgstr "Beim Abrufen deiner Einstellungen ist ein Fehler aufgetreten. Lade die S
msgid "An error occurred while saving changes: %{error}"
msgstr "Beim Speichern der Änderungen ist ein Fehler aufgetreten: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "Beim Speichern der Einstellung ist ein Fehler aufgetreten"
-msgstr[1] "Beim Speichern der Einstellung ist ein Fehler aufgetreten"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "Beim Speichern deiner Einstellungen ist ein Fehler aufgetreten. Versuche erneut, sie zu speichern."
@@ -5496,6 +5562,9 @@ msgstr "Analyse-Einstellungen für „%{project_name}“ wurden erfolgreich aktu
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr "Fehler beim Abrufen von Daten"
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr "Aktualisieren der Visualisierung %{visualizationName}"
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,18 +5799,21 @@ msgstr ""
msgid "Analytics|Users"
msgstr "Benutzer(innen)"
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr "Verfügbare Dashboards anzeigen"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
msgid "Analytics|Viewport"
msgstr "Darstellungsbereich"
msgid "Analytics|Visualization"
msgstr "Visualisierung"
-msgid "Analytics|Visualization Designer"
-msgstr "Visualisierungs-Designer"
-
msgid "Analytics|Visualization designer"
msgstr "Visualisierungsdesigner"
@@ -5766,9 +5844,6 @@ msgstr "Analysiere die Datei…"
msgid "Ancestors"
msgstr "Vorfahren"
-msgid "And this registration token:"
-msgstr "Und dieses Registrierungstoken:"
-
msgid "Anonymous"
msgstr "Anonym"
@@ -5829,6 +5904,27 @@ msgstr "Beende den Kommentar mit %{shrug}"
msgid "Append the comment with %{tableflip}"
msgstr "Füge %{tableflip} an den Kommentar an"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Ziehe die Datei für den privaten Schlüssel hier her oder %{linkStart} klicke zum Hochladen%{linkEnd}"
@@ -5841,17 +5937,14 @@ msgstr "Fehler: Du versuchst etwas anders als die Datei für einen öffentlichen
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr "Leer lassen, um Ihren aktuellen privaten Schlüssel zu verwenden."
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr "Lege Variablen nur für geschützte Branches und Tags fest"
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr "Nur geschützte Branches und Tags"
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
-msgstr "Die Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
-msgstr "Die Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
msgstr "Der Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Anwendung"
msgid "Application ID"
msgstr "Anwendungs-ID"
-msgid "Application analytics"
-msgstr "Anwendungsanalyse"
-
msgid "Application limits saved successfully"
msgstr "Anwendungslimits erfolgreich gespeichert"
@@ -5893,7 +5983,7 @@ msgid "Application: %{name}"
msgstr "Anwendung: %{name}"
msgid "ApplicationSettings|A Metrics Dashboard menu item appears in the Monitoring section of the Admin Area."
-msgstr "Ein Menüpunkt \"Metrik Dashboard\" erscheint im Abschnitt \"Überwachung\" des Adminbereiches."
+msgstr "Ein Menüpunkt „Metrik Dashboard“ erscheint im Abschnitt „Überwachung“ des Adminbereichs."
msgid "ApplicationSettings|Add a link to Grafana"
msgstr "Link zu Grafana hinzufügen"
@@ -6103,7 +6193,7 @@ msgid "Approval options"
msgstr "Genehmigungsoptionen"
msgid "Approval rejected."
-msgstr ""
+msgstr "Genehmigung abgelehnt."
msgid "Approval rules"
msgstr "Genehmigungs-Regeln"
@@ -6267,7 +6357,7 @@ msgid "ApprovalSettings|Remove approvals by Code Owners if their files changed"
msgstr "Zustimmungen von Code-Eigentümern entfernen, wenn sich ihre Dateien geändert haben"
msgid "ApprovalSettings|Require user re-authentication (password or SAML) to approve"
-msgstr ""
+msgstr "Zur Genehmigung ist eine erneute Benutzerauthentifizierung (Passwort oder SAML) erforderlich"
msgid "ApprovalSettings|There was an error loading merge request approval settings."
msgstr "Beim Laden der Merge-Request-Freigabeeinstellungen ist ein Fehler aufgetreten."
@@ -6392,9 +6482,6 @@ msgstr "Jobs archivieren"
msgid "Archive project"
msgstr "Projekt archivieren"
-msgid "Archive test case"
-msgstr "Testfall archivieren"
-
msgid "Archived"
msgstr "Archiviert"
@@ -6444,7 +6531,7 @@ msgid "Are you sure you want to close this blocked issue?"
msgstr "Möchtest du dieses blockierte Ticket wirklich löschen?"
msgid "Are you sure you want to continue?"
-msgstr ""
+msgstr "Möchtest du wirklich fortfahren?"
msgid "Are you sure you want to delete %{name}?"
msgstr "Möchtest du %{name} wirklich entfernen?"
@@ -6458,6 +6545,9 @@ msgstr "Willst du diesen %{commentType} wirklich löschen?"
msgid "Are you sure you want to delete this SSH key?"
msgstr "Bist du sicher, dass du diesen SSH-Schlüssel löschen möchtest?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "Möchtest du diesen Kommentar wirklich löschen?"
@@ -6473,9 +6563,6 @@ msgstr "Möchtest du dieses Label wirklich löschen?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "Möchtest du wirklich diese Pipeline löschen? Dabei verfallen alle Pipeline-Caches und alle zugehörigen Objekte, wie Builds, Protokolle, Artefakte und Trigger werden gelöscht. Diese Aktion kann nicht rückgängig gemacht werden."
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr "Willst du diese Ziel-Branch-Regel wirklich löschen?"
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Bist du sicher, dass du diese Umgebung bereitstellen möchtest?"
@@ -6671,9 +6758,6 @@ msgstr "Dieses Artefakt wird dauerhaft gelöscht. Alle Berichte, die aus diesem
msgid "Artifacts|Total artifacts size"
msgstr "Gesamtgröße Artefakte"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr "Da es sich um ein neu erstelltes Konto handelt, klicke zunächst auf den Link unten, um dein Konto zu bestätigen."
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "Da wir weiterhin weitere Funktionen für SAST erstellen, würden wir uns über Dein Feedback zur SAST-Konfigurationsfunktion in %{linkStart}diesem Ticket%{linkEnd} freuen."
@@ -6689,6 +6773,9 @@ msgstr "Komma-separierte Liste von Branches, die automatisch überprüft werden.
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr "Benutzerspezifischer Zugriffstoken. Der/die Benutzer(in) muss Zugriff auf die Aufgabe haben. Alle Kommentare werden diesem/dieser Benutzer(in) zugeschrieben."
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr "Bitte eine(n) Betreuer(in), den Importstatus auf weitere Details zu überprüfen."
@@ -6811,15 +6898,12 @@ msgstr "Mindestens eine Zustimmung der Code-Eigentümer(innen) ist erforderlich,
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr "Mindestens ein Feld von %{one_of_required_fields} muss vorhanden sein"
+msgid "At least one of %{params} must be true"
+msgstr ""
+
msgid "At least one of group_id or project_id must be specified"
msgstr "Es muss mindestens eine von group_id oder project_id angegeben werden"
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr "Mindestens eines deiner persönlichen Zugriffstoken ist abgelaufen. %{generate_new}"
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr "Mindestens eines deiner persönlichen Zugriffstoken läuft bald ab. %{generate_new}"
-
msgid "At risk"
msgstr "In Gefahr"
@@ -6911,8 +6995,8 @@ msgstr "AWS-Region"
msgid "AuditStreams|AWS S3"
msgstr "AWS S3"
-msgid "AuditStreams|Access Key Xid"
-msgstr "Zugriffsschlüssel Xid"
+msgid "AuditStreams|Access Key ID"
+msgstr ""
msgid "AuditStreams|Active"
msgstr "Aktiv"
@@ -6989,6 +7073,9 @@ msgstr "Ereignisfilterung (optional)"
msgid "AuditStreams|Filter by audit event type"
msgstr "Filter nach Audit-Ereignistyp"
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr "Google Cloud-Protokoll"
@@ -7025,6 +7112,12 @@ msgstr "Geheimer Zugriffsschlüssel"
msgid "AuditStreams|Select events"
msgstr "Ereignisse auswählen"
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr "Streaming für Audit-Ereignisse einrichten"
@@ -7118,6 +7211,9 @@ msgstr "Authentifizierte Web-Zugriffsraten-Begrenzung in Sekunden"
msgid "Authenticated web requests"
msgstr "Authentifizierte Web-Anfragen"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "Authentifizierung"
@@ -7307,12 +7403,6 @@ msgstr "Automatisch aufgelöst"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "Automatisch die Branches und Tags dieses Projekts aus dem Upstream-Repository aktualisieren."
-msgid "Automation"
-msgstr "Automatisierung"
-
-msgid "Automation|Automation App"
-msgstr "Automatisierungs-App"
-
msgid "Autosave|Note"
msgstr "Notiz"
@@ -7337,12 +7427,18 @@ msgstr "Avatar wird entfernt. Bist du sicher?"
msgid "Average per day: %{average}"
msgstr "Durchschnitt pro Tag: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr "Warten auf Anmeldung des/der Benutzer(in)"
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "Zurück"
@@ -7394,9 +7490,6 @@ msgstr "Badge hinzufügen"
msgid "Badges|Add new badge"
msgstr "Neues Badge hinzufügen"
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Hinzufügen des Badges fehlgeschlagen, bitte überprüfe die eingegebenen URLs und versuche es erneut."
-
msgid "Badges|Badge image URL"
msgstr "Badge-Bild-URL"
@@ -7409,9 +7502,6 @@ msgstr "Badge gespeichert."
msgid "Badges|Delete badge?"
msgstr "Badge löschen?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Löschen des Badges fehlgeschlagen, bitte versuchen es erneut."
-
msgid "Badges|Edit badge"
msgstr "Badge bearbeiten"
@@ -7421,9 +7511,18 @@ msgstr "Gib eine gültige URL ein"
msgid "Badges|Example: %{exampleUrl}"
msgstr "Beispiel: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr "Neues Badge konnte nicht hinzugefügt werden. Überprüfe die URLs und versuche es erneut."
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr "Das Löschen des Badges ist fehlgeschlagen. Bitte versuche es erneut."
+
msgid "Badges|Group Badge"
msgstr "Gruppen-Badge"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr "Wenn du dieses Badge löschst, kannst du es %{strongStart}nicht%{strongEnd} wiederherstellen."
+
msgid "Badges|Link"
msgstr "Link"
@@ -7457,18 +7556,21 @@ msgstr "Unterstützte %{docsLinkStart}Variablen%{docsLinkEnd}: %{placeholders}"
msgid "Badges|The badge was deleted."
msgstr "Das Badge wurde gelöscht."
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr "Diese Gruppe hat keine Badges. Erstelle zunächst oben ein neues Badge."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr "Diese Gruppe hat keine Badges. Vorhandenes Badge hinzufügen oder erstellen."
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr "Dieses Projekt hat keine Badges. Erstelle zunächst oben ein neues Badge."
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "Du wirst dieses Abzeichen löschen. Gelöschte Abzeichen %{strongStart}können nicht%{strongEnd} wiederhergestellt werden."
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr "Dieses Projekt hat keine Badges. Füge zunächst ein neues Badge hinzu."
msgid "Badges|Your badges"
msgstr "Deine Badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7478,8 +7580,8 @@ msgstr "Bamboo URL"
msgid "BambooService|Bamboo build plan key."
msgstr "Bamboo Bauplanschlüssel."
-msgid "BambooService|Bamboo service root URL."
-msgstr "Bamboo Service Root URL."
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr "BambooService|Neuen Build-Schlüssel eingeben"
@@ -7493,8 +7595,8 @@ msgstr "Starte CI/CD Pipelines mit Atlassian Bamboo."
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr "Ausführen von CI/CD-Pipelines mit Atlassian Bamboo. In Bamboo muss eine automatische Revisionskennzeichnung und ein Auslösereignis für das Repository eingerichtet werden. %{docs_link}"
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "Der/die Benutzer(in) mit API-Zugriff auf den Bamboo-Server."
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr "Gesperrt"
@@ -7598,9 +7700,6 @@ msgstr "Bevor du diese Integration aktivierst, erstelle einen Webhook für den R
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "Lies vor dem Einfügen von Code unbedingt den Kommentar, der die einzelnen Code-Gruppen trennt."
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr "Bevor dies zusammengeführt werden kann, muss ein Jira-Ticket im Titel oder in der Beschreibung verlinkt werden"
-
msgid "Begin with the selected commit"
msgstr "Mit dem ausgewählten Commit beginnen"
@@ -7958,6 +8057,9 @@ msgstr "Du kannst jetzt kostenlose Compute-Minuten auf gemeinsam verwendeten Run
msgid "Billings|Your account has been validated"
msgstr "Dein Konto wurde validiert"
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,14 +8090,14 @@ msgstr "Beim Laden der GitLab-Abonnementdetails ist ein Fehler aufgetreten."
msgid "Billing|An error occurred while loading billable members list."
msgstr "Beim Laden der Liste der abrechenbaren Mitglieder ist ein Fehler aufgetreten."
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "Beim Laden der Details für das Add-on „Code-Vorschläge“ ist ein Fehler aufgetreten. Wenn das Problem weiterhin besteht, %{supportLinkStart}wende dich bitte an den Support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr "Beim Laden der Liste der ausstehende Mitglieder ist ein Fehler aufgetreten"
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "Beim Laden der Benutzer(innen) des Add-ons „Code-Vorschläge“ ist ein Fehler aufgetreten. Wenn das Problem weiterhin besteht, wende dich bitte an den %{supportLinkStart}Support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while removing a billable member."
msgstr "Beim Entfernen eines abrechenbaren Mitglieds ist ein Fehler aufgetreten."
@@ -8012,11 +8114,11 @@ msgstr "Direkte Mitgliedschaften"
msgid "Billing|Enter at least three characters to search."
msgstr "Mindestens 3 Zeichen eingeben, um zu suchen."
-msgid "Billing|Error assigning Code Suggestions add-on"
-msgstr "Fehler beim Zuweisen des Add-Ons „Code-Vorschläge“"
+msgid "Billing|Error assigning Duo Pro add-on"
+msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
-msgstr "Fehler beim Aufheben der Zuweisung des Add-Ons „Code-Vorschläge“"
+msgid "Billing|Error un-assigning Duo Pro add-on"
+msgstr ""
msgid "Billing|Explore paid plans"
msgstr "Kostenplichtige Tarife erkunden"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "Um sicherzustellen, dass alle Mitglieder nach Ablauf der Testphase auf die Gruppe zugreifen können, kannst du ein Upgrade auf eine kostenpflichtige Stufe durchführen."
@@ -8083,8 +8179,11 @@ msgstr "Ausstehende Genehmigungen anzeigen"
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "Du bist dabei, Benutzer(in) %{username} aus deinem Abonnement zu entfernen. Wenn du fortfährst, wird der/die Benutzer(in) aus der %{namespace} Gruppe und allen seiner Untergruppen und Projekte entfernt. Diese Aktion kann nicht rückgängig gemacht werden."
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
-msgstr "Du hast alle verfügbaren Plätze für das Add-On „Code-Vorschläge“ zugewiesen. Bitte %{salesLinkStart}wende dich an den Vertrieb%{salesLinkEnd}, wenn du weitere Plätze erwerben möchtest."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
msgstr "Deine Gruppe hat kürzlich zum kostenlosen Tarif gewechselt. %{over_limit_message} Du kannst Platz für neue Mitglieder freimachen, indem du diejenigen entfernst, die keinen Zugang mehr benötigen, oder sie auf „über Limit“ schaltest. Wenn du eine unbegrenzte Anzahl von Mitgliedern haben möchtest, kannst du %{link_start}auf eine kostenpflichtige Stufe upgraden%{link_end}."
@@ -8276,12 +8375,6 @@ msgstr[1] "+ %{displayedIssuablesCount} mehr %{issuableType}s"
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr "Beim Anlegen von %{issuableType} ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "Beim Erstellen des Epics ist ein Fehler aufgetreten. Bitte versuche es erneut."
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "Beim Erstellen des Tickets trat ein Fehler auf. Bitte versuche es erneut."
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "Beim Erstellen der Liste trat ein Fehler auf. Bitte versuche es erneut."
@@ -8300,9 +8393,6 @@ msgstr "Beim Abrufen der Ãœbersicht ist ein Fehler aufgetreten. Bitte versuche e
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr "Beim Abrufen der Ãœbersichten ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "Beim Abrufen der untergeordneten Gruppen ist ein Fehler aufgetreten. Bitte versuche es erneut."
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr "Beim Abrufen der Epics ist ein Fehler aufgetreten. Bitte versuche es erneut."
@@ -8312,18 +8402,12 @@ msgstr "Beim Abrufen von Gruppenprojekten ist ein Fehler aufgetreten. Bitte vers
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr "Beim Abrufen der Gruppen ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "Beim Abrufen der Tickets ist ein Fehler aufgetreten. Bitte lade die Seite neu."
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr "Beim Abrufen von Tickets ist ein Fehler aufgetreten. Bitte versuche es erneut."
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr "Beim Abrufen von Iterationen ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "Beim Abrufen der Labels ist ein Fehler aufgetreten. Bitte lade die Seite neu."
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr "Beim Abrufen von Labels ist ein Fehler aufgetreten. Bitte versuche es erneut."
@@ -8336,51 +8420,27 @@ msgstr "Beim Abrufen von Meilensteinen ist ein Fehler aufgetreten. Bitte versuch
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr "Beim Abrufen aktueller Ãœbersichten ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "Beim Abrufen der Epics der Ãœbersicht ist ein Fehler aufgetreten. Bitte lade die Seite erneut."
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "Beim Abrufen der Tickets der Ãœbersicht ist ein Fehler aufgetreten. Bitte lade die Seite neu."
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "Beim Abrufen der Listen der Ãœbersicht ist ein Fehler aufgetreten. Bitte lade die Seite neu."
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "Beim Abrufen der übergreifenden Themengruppen (swimlanes) im Projektierungsboard ist ein Fehler aufgetreten. Bitte laden die Seite neu laden."
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr "Beim Abrufen der Ãœbersicht ist ein Fehler aufgetreten. Bitte lade die Seite neu."
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr "Beim Abrufen von nicht zugewiesenen Tickets ist ein Fehler aufgetreten. Bitte versuche es erneut."
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr "Beim Abrufen von Benutzer(inne)n ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "Beim Generieren der Listen ist ein Fehler aufgetreten. Bitte lade die Seite neu."
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr "Beim Verschieben von %{issuableType} ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "Beim Verschieben des Epic trat ein Fehler auf. Bitte erneut versuchen."
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "Beim Verschieben des Tickets ist ein Fehler aufgetreten. Bitte versuche es erneut."
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr "Beim Verschieben der Liste ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "Beim Entfernen der Liste ist ein Fehler aufgetreten. Bitte versuche es erneut."
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr "Beim Auswählen der Karte ist ein Fehler aufgetreten. Bitte versuche es erneut."
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "Bei der Aktualisierung der Liste der Ãœbersicht ist ein Fehler aufgetreten. Bitte versuche es erneut."
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr "Beim Aktualisieren der Liste ist ein Fehler aufgetreten. Bitte versuche es erneut."
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] "Blockiert von %{blockedByCount} %{issuableType}"
msgstr[1] "Blockiert von %{blockedByCount} %{issuableType}s"
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Einklappen"
@@ -8410,9 +8473,6 @@ msgstr "Aufklappen"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr "Fehler beim Abrufen der %{issuableType}-Blockierung"
-msgid "Boards|Move card"
-msgstr "Karte verschieben"
-
msgid "Boards|Move to end of list"
msgstr "An das Ende der Liste verschieben"
@@ -8506,6 +8566,9 @@ msgstr "Branch existiert bereits"
msgid "Branch name"
msgstr "Branch-Name"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr "Vorlage für Branch-Namen"
@@ -8515,6 +8578,18 @@ msgstr "Branch nicht geladen - %{branchId}"
msgid "Branch rules"
msgstr "Branch-Regeln"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "%{linkStart}Platzhalter%{linkEnd} wie *-stable oder production/ werden unterstützt"
@@ -8581,15 +8656,27 @@ msgstr "Branch"
msgid "BranchRules|Branch name or pattern"
msgstr "Name des Branches oder Musters"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "Details zu den Branch-Regeln"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr "Auf eine Statusantwort bei Merge Requests prüfen. Fehler blockieren keine Merges. %{linkStart}Mehr erfahren.%{linkEnd}"
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr "Geschützten Branch erstellen"
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "Wildcard erstellen: %{searchTerm}"
@@ -8647,6 +8734,12 @@ msgstr "Benötigt Genehmigung von Code-Eigentümern"
msgid "BranchRules|Roles"
msgstr "Rollen"
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "Prüfung des Status"
@@ -8665,6 +8758,9 @@ msgstr "Benutzer(innen)"
msgid "BranchRules|View details"
msgstr "Details anzeigen"
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "Standard"
@@ -8675,6 +8771,9 @@ msgid "Branches"
msgstr "Branch"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
+msgstr "Das Ziel von Branches, die zu dieser Zeichenfolge passen, wird neu zugewiesen. Wildcards werden unterstützt, und bei Namen wird zwischen Groß- und Kleinschreibung unterschieden."
+
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
msgstr ""
msgid "Branches: %{source_branch} to %{target_branch}"
@@ -8977,6 +9076,12 @@ msgstr "Dateien durchsuchen"
msgid "Browse templates"
msgstr "Vorlagen durchsuchen"
+msgid "Bugs created per month by Priority"
+msgstr "Erstellte Bugs pro Monat nach Priorität"
+
+msgid "Bugs created per month by Severity"
+msgstr "Erstellte Bugs pro Monat nach Schweregrad"
+
msgid "Build cannot be erased"
msgstr "Build kann nicht gelöscht werden"
@@ -9010,9 +9115,18 @@ msgstr "Massenimport|%{feature} (benötigt v%{version})"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr "Achte auf %{linkStart}Sichtbarkeitsregeln%{linkEnd} beim Importieren von Gruppen. "
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr "Überprüfe, ob die Basis-URL der Quellinstanz und das persönliche Zugangstoken die erforderlichen Anforderungen erfüllen."
+
msgid "BulkImport|Destination"
msgstr "Ziel"
+msgid "BulkImport|Direct transfer"
+msgstr "Direkte Ãœbertragung"
+
+msgid "BulkImport|Direct transfer history"
+msgstr "Verlauf der direkten Ãœbertragungen"
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr "Maximale Download-Dateigröße (MB) für direkte Übertragung"
@@ -9022,17 +9136,26 @@ msgstr "Filtere nach Quellgruppe"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr "Folgende Daten werden nicht migriert: %{bullets} Wende dich an den/die Systemadministrator(in) von %{host}, um GitLab zu aktualisieren, wenn du diese Daten für die Migration benötigst"
-msgid "BulkImport|GitLab Migration history"
-msgstr "GitLab-Migrationsverlauf"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
+msgstr "Gruppenimport auf Quell- oder Zielinstanz deaktiviert. Bitte eine(n) Administrator(in), dies für beide Instanzen zu aktivieren, und versuche es erneut."
msgid "BulkImport|History"
msgstr "Verlauf"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr "Import fehlgeschlagen. „%{path}“ existiert bereits. Ändere das Ziel und versuche es erneut."
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr "Import fehlgeschlagen. Das Ziel „%{destination}“ ist ungültig oder du hast keine Berechtigung dafür."
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr "Import fehlgeschlagen. Ziel-URL %{url}"
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr "Import fehlgeschlagen: Das Ziel kann keine Untergruppe der Quellgruppe sein. Ändere das Ziel und versuche es erneut."
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Gruppen von GitLab importieren"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr "Gruppen durch direkte Ãœbertragung importieren"
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr "Import ist abgeschlossen. Wähle einen anderen Namen für den erneuten Import aus"
@@ -9049,6 +9172,12 @@ msgstr "Importieren von Projekten ist eine %{docsLinkStart}Beta%{docsLinkEnd} Fu
msgid "BulkImport|Importing the group failed."
msgstr "Das Importieren der Gruppe ist fehlgeschlagen."
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr "Ungültige Quell-URL. Gib nur die Basis-URL der GitLab-Quellinstanz ein."
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr "Elemente für %{id}, die nicht importiert werden konnten"
+
msgid "BulkImport|Last imported to %{link}"
msgstr "Zuletzt importiert nach %{link}"
@@ -9103,8 +9232,11 @@ msgstr "Quelle"
msgid "BulkImport|Source group"
msgstr "Quellgruppe"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
-msgstr "Vorlage/Dateibasierter Import/GitLab-Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr "Vorlage/Dateibasierter Import/Direkte Ãœbertragung"
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
+msgstr "Nicht unterstützte GitLab-Version. Die älteste unterstützte Version ist „%{version}“."
msgid "BulkImport|Update of import statuses with realtime changes failed"
msgstr "Aktualisierung des Importstatus mit Echtzeitänderungen fehlgeschlagen"
@@ -9166,9 +9298,6 @@ msgstr "Weitere Pipeline Minuten kaufen"
msgid "By %{user_name}"
msgstr "Von %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "Durch die Authentifizierung mit einem an eine Enterprise-E-Mail Adresse gebundenen Konto wird davon ausgegangen, dass dieses Konto ein(e) Enterprise Benutzer(in) ist. "
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr "Standardmäßig die auto-DevOps-Pipeline für alle Projekte nutzen"
msgid "CICD|Deployment strategy"
msgstr "Bereitstellungsstrategie"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr "Die Deaktivierung dieser Funktion ist dauerhaft."
@@ -9330,6 +9462,12 @@ msgstr "Zugriff %{italicEnd}aus%{italicStart} diesem Projekt beschränken (veral
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr "Zugriff %{italicStart}auf%{italicEnd} dieses Projekt beschränken"
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr "Verhindere, dass CI/CD-Job-Token aus diesem Projekt für den Zugriff auf andere Projekte verwendet werden, es sei denn, das andere Projekt wird der Zulassungsliste hinzugefügt. Diese Funktion zu deaktivieren stellt ein Sicherheitsrisiko dar, da nicht autorisierte Projekte versuchen könnten, ein aktives Token abzurufen und auf die API zuzugreifen. %{linkStart}Mehr erfahren%{linkEnd}."
@@ -9393,18 +9531,6 @@ msgstr "VAS-ID anfordern"
msgid "CVE|Why Request a CVE ID?"
msgstr "Wozu eine VAS-ID anfordern?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr "Durch Aktivieren dieser Funktion akzeptierst du die %{linkStart}Nutzungsbedingungen für Tests%{linkEnd}."
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr "Kontinuierliche Prüfung auf Sicherheitslücken"
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr "Erkenne Sicherheitslücken außerhalb einer Pipeline, wenn neue Daten zur GitLab Advisory Database hinzugefügt werden."
-
-msgid "CVS|Toggle CVS"
-msgstr "CVS umschalten"
-
msgid "Cadence is not automated"
msgstr "Rhythmus ist nicht automatisiert"
@@ -9423,18 +9549,18 @@ msgstr "Campfire-Subdomäne (optional)"
msgid "Campfire token"
msgstr "Campfire-Token"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "API-Authentifizierungs-Token von Campfire."
-msgid "CampfireService|From the end of the room URL."
-msgstr "Ab dem Ende der Room-URL."
+msgid "CampfireService|ID portion of the Campfire room URL."
+msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr "Benachrichtigungen über Push-Ereignisse an Campfire-Chaträume senden. %{docs_link}"
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr "Die Subdomain %{code_open}.campfirenow.com%{code_close}."
-
msgid "Can be manually deployed to"
msgstr "Kann manuell bereitgestellt werden für"
@@ -9444,6 +9570,9 @@ msgstr "Kann Gruppen der höchsten Stufe erstellen:"
msgid "Can not delete primary training"
msgstr "Primärschulung kann nicht gelöscht werden"
+msgid "Can only be present for group level value streams"
+msgstr "Kann nur für Wertschöpfungsketten auf Gruppenebene vorhanden sein"
+
msgid "Can't apply as the source branch was deleted."
msgstr "Kann nicht angewendet werden, da der Quellbranch gelöscht wurde."
@@ -9817,7 +9946,7 @@ msgid "Changes"
msgstr "Änderungen"
msgid "Changes requested to the current merge request."
-msgstr ""
+msgstr "Änderungen am aktuellen Merge Request angefordert."
msgid "Changes saved."
msgstr "Änderungen gespeichert."
@@ -9832,7 +9961,7 @@ msgid "Changes to the title have not been saved"
msgstr "Änderungen am Titel wurden nicht gespeichert"
msgid "Changes will not affect existing token expiration dates. %{link_start}How will this affect expiration dates?%{link_end}"
-msgstr ""
+msgstr "Bestehende Token-Ablaufdaten sind von den Änderungen nicht betroffen. %{link_start}Wie wirkt sich dies auf Ablaufdaten aus?%{link_end}"
msgid "Changes:"
msgstr "Änderungen:"
@@ -9894,6 +10023,9 @@ msgstr "in %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr "In %{project_link}"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Erneut prüfen"
@@ -10006,6 +10138,9 @@ msgstr "Ein unbekannter Fehler ist aufgetreten. Bitte versuche es erneut, indem
msgid "Checkout|Billing address"
msgstr "Rechnungsadresse"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "CI-Minuten"
@@ -10018,6 +10153,9 @@ msgstr "Checkout"
msgid "Checkout|City"
msgstr "Stadt"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr "Rechenpaket"
@@ -10030,6 +10168,9 @@ msgstr "Kauf bestätigen"
msgid "Checkout|Confirming..."
msgstr "Bestätigen..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Weiter zur Abrechnung"
@@ -10090,6 +10231,9 @@ msgstr "Gruppe"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr "Ungültiger Gutscheincode. Gib einen gültigen Gutscheincode ein."
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "Diese Zahl muss mindestens %{minimumNumberOfUsers} (deine genutzten Sitze) betragen."
@@ -10147,6 +10291,9 @@ msgstr "Strassenadresse"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "Das Absenden des Kreditkartenformulars ist mit dem Code %{errorCode}: %{errorMessage} fehlgeschlagen"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Abonnementbedingungen"
@@ -10159,6 +10306,9 @@ msgstr "Erfolg: Abonnement"
msgid "Checkout|Tax"
msgstr "Steuern"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "Gesamtsumme"
@@ -10228,9 +10378,6 @@ msgstr "Datei auswählen …"
msgid "Choose a file"
msgstr "Datei auswählen"
-msgid "Choose a group"
-msgstr "Gruppe auswählen"
-
msgid "Choose a template"
msgstr "Vorlage auswählen"
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr "Zurück zum CI/CD-Katalog"
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr "Erstelle ein Repository für die Pipeline-Komponenten und mache die Wiederverwendung von Pipeline-Konfigurationen schneller und einfacher."
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr "Entdecke CI/CD-Komponenten, die deine Pipeline mit zusätzlichem Funktionsumfang verbessern können."
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr "Gehe zum Projekt"
msgid "CiCatalog|Last release at %{date}"
msgstr "Letzte Veröffentlichung am %{date}"
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr "Projekt als CI/CD-Katalogressource markieren"
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr "Projekt als CI/CD-Katalogressource markieren. %{linkStart}Was ist der CI/CD-Katalog?%{linkEnd}"
-
msgid "CiCatalog|No component available"
msgstr "Keine Komponente verfügbar"
msgid "CiCatalog|No release available"
msgstr "Keine Veröffentlichung verfügbar"
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr "Seite %{currentPage} von %{totalPage}"
@@ -10345,26 +10495,47 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr "Freigegeben %{timeAgo} von %{author}"
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
-msgstr "Repositorys mit Pipeline-Komponenten sind in diesem Namensraum verfügbar."
+msgid "CiCatalog|Remove from the CI/CD catalog"
+msgstr "Aus dem CI/CD-Katalog entfernen"
+
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
+msgstr "Projekt aus dem CI/CD-Katalog entfernen?"
+
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr "Projekt als CI/CD-Katalogressource festlegen. %{linkStart}Was ist der CI/CD-Katalog?%{linkEnd}"
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr "Das Projekt und alle veröffentlichten Versionen werden aus dem CI/CD-Katalog entfernt. Wenn du diesen Schalter wieder aktivierst, werden die vorhandenen veröffentlichten Versionen des Projekts dem Katalog nicht wieder hinzugefügt. Du musst eine %{linkStart}neue Veröffentlichung erstellen%{linkEnd}."
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
-msgstr "Das Projekt muss eine README.md-Datei und eine template.yml-Datei enthalten. Wenn aktiviert, ist das Repository im CI/CD-Katalog verfügbar."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr "Das Projekt kann erst dann im CI/CD-Katalog gefunden werden, nachdem das Projekt mindestens eine Veröffentlichung hat."
msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr "Es gab ein Problem beim Abrufen der CI-/CD-Katalogeinstellung."
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
-msgstr "Es gab ein Problem beim Markieren des Projekts als CI/CD Katalogressource."
-
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr "Beim Abrufen der CI/CD-Katalogressourcen ist ein Fehler aufgetreten."
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr "Dieses Projekt ist jetzt keine CI/CD-Katalogressource mehr."
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr "Dieses Projekt ist jetzt eine CI/CD Katalogressource."
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
-msgstr "Dieses Projekt wird als CI/CD Katalogressource gekennzeichnet und wird im CI/CD Katalog sichtbar sein. Diese Aktion kann nicht rückgängig gemacht werden."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr "Das Projekt kann nicht als CI/CD-Katalogressource entfernt werden."
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
+msgstr "Das Projekt kann nicht als CI/CD-Katalogressource festgelegt werden."
msgid "CiCatalog|Unreleased"
msgstr "Unveröffentlicht"
@@ -10372,6 +10543,9 @@ msgstr "Unveröffentlicht"
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr "Wir wollen dir helfen, Repositorys für Pipeline-Komponenten zu erstellen und zu verwalten, und gleichzeitig die Wiederverwendung von Pipeline-Konfigurationen erleichtern. Lass uns wissen, wie wir uns machen!"
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "Datumsbereich: %{range}"
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr "Ein Variablenschlüssel darf nur Buchstaben, Zahlen und das Zeichen „_“ enthalten."
+
msgid "CiVariables|Add variable"
msgstr "Variable hinzufügen"
@@ -10549,14 +10735,23 @@ msgstr "Gebe Variablenwerte an, die in diesem Lauf verwendet werden sollen. Stan
msgid "CiVariables|State"
msgstr "Status"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr "Es gab einen Fehler beim Abrufen der geerbten CI-Variablen."
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr "Diese %{entity} hat %{currentVariableCount} definierte CI/CD-Variablen. Die maximale Anzahl an Variablen pro %{entity} ist %{maxVariableLimit}. Um neue Variablen hinzuzufügen, musst du die Anzahl der definierten Variablen reduzieren."
-msgid "CiVariables|This variable value does not meet the masking requirements."
-msgstr "Dieser Variablenwert entspricht nicht den Maskierungsanforderungen."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
+msgstr ""
msgid "CiVariables|Type"
msgstr "Typ"
@@ -10579,11 +10774,23 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr "Variablen"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr "Variablen, die hier angegeben werden, sind %{boldStart}expandiert%{boldEnd} und nicht %{boldStart}maskiert.%{boldEnd}"
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
-msgstr "Variablen speichern Informationen wie Passwörter und geheime Schlüssel, die du in Jobskripten verwenden kannst. Jede %{entity} kann maximal %{limit} Variablen definieren."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
+msgstr "Du kannst CI/CD-Variablen mit dem gleichen Namen an verschiedenen Stellen verwenden, aber die Variablen könnten sich gegenseitig überschreiben. %{linkStart}Wie werden Variablen priorisiert?%{linkEnd}"
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
msgstr "Du hast die maximale Anzahl verfügbarer Variablen erreicht. Um neue Variablen hinzuzufügen, musst Du die Anzahl der definierten Variablen reduzieren."
@@ -10812,9 +11019,6 @@ msgstr "Epic schließen"
msgid "Close milestone"
msgstr "Meilenstein abschließen"
-msgid "Close sidebar"
-msgstr "Seitenleiste schließen"
-
msgid "Close this %{quick_action_target}"
msgstr "%{quick_action_target} schließen"
@@ -10852,7 +11056,7 @@ msgid "Closing %{issuableType}..."
msgstr "%{issuableType} wird geschlossen..."
msgid "Closing %{workItemType}"
-msgstr ""
+msgstr "%{workItemType} wird geschlossen "
msgid "Cloud Run"
msgstr "Cloud Run"
@@ -11849,26 +12053,44 @@ msgstr "Alle anzeigen"
msgid "CodeOwner|Pattern"
msgstr "Muster"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
-msgstr "Code-Vorschläge"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr "Code-Vorschläge"
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
+msgstr "Codevorschläge für diese Instanz aktivieren"
+
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
msgstr "%{linkStart}Code-Vorschläge%{linkEnd} nutzen generative KI, um dir während der Entwicklung Code vorzuschlagen. "
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr "%{link_start}Was sind Codevorschläge?%{link_end}"
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
-msgstr "Jedem(r) Benutzer(in) kann nur einmal pro abrechenbarem Monat ein Code-Vorschlagsplatz zugewiesen werden."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
+msgstr ""
msgid "CodeSuggestions|Code Suggestions"
msgstr "Codevorschläge"
@@ -11876,29 +12098,29 @@ msgstr "Codevorschläge"
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr "Erweiterung „Code-Vorschläge“"
-msgid "CodeSuggestions|Code Suggestions seats used"
-msgstr "Verwendete Plätze für Codevorschläge"
+msgid "CodeSuggestions|Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
-msgstr "Code-Vorschläge aktivieren"
+msgid "CodeSuggestions|Duo Pro add-on"
+msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
-msgstr "Verbessere dein Programmiererlebnis mit intelligenten Empfehlungen. %{linkStart}Code-Vorschläge%{linkEnd} nutzen generative KI, um dir während der Entwicklung Code vorzuschlagen. "
+msgid "CodeSuggestions|Duo Pro seats used"
+msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
-msgstr "Erhalte Codevorschläge, während du Code in deiner IDE schreibst. %{link_start}Mehr erfahren%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
-msgstr "Einführung zur Erweiterung „Code-Vorschläge“"
+msgid "CodeSuggestions|Introducing Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
-msgstr "Einführung zur Erweiterung „Code-Vorschläge“"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
+msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
msgstr "Projekte in dieser Gruppe können Codevorschläge verwenden."
msgid "CodeSuggestions|Subject to the %{terms_link_start}Testing Terms of Use%{link_end}. Code Suggestions uses third-party AI services."
-msgstr ""
+msgstr "Unterliegt den Nutzungsbedingungen für %{terms_link_start}Tests%{link_end}. Code-Vorschläge nutzen KI-Dienste von Drittanbietern."
msgid "CodeownersValidation|An error occurred while loading the validation errors. Please try again later."
msgstr ""
@@ -12022,6 +12244,9 @@ msgstr "Nachrichten einfärben"
msgid "ComboSearch is not defined"
msgstr "ComboSearch ist nicht definiert"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "Kommagetrennte Liste von E-mail-Adressen."
@@ -12070,6 +12295,12 @@ msgstr "Befehle wurden nicht angewendet"
msgid "Comment"
msgstr "Kommentieren"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "Position „%{label}“ kommentieren"
@@ -12241,7 +12472,7 @@ msgid "Compare %{oldCommitId}...%{newCommitId}"
msgstr "Vergleiche %{oldCommitId}...%{newCommitId}"
msgid "Compare Branches"
-msgstr ""
+msgstr "Branches vergleichen"
msgid "Compare GitLab editions"
msgstr "GitLab-Editionen vergleichen"
@@ -12348,13 +12579,49 @@ msgstr "Fertig"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr "Abgeschlossen in %{duration_seconds} Sekunden (%{relative_time})"
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr "Beispiel: 2dc6aa3"
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr "Bericht zur Ãœberwachungskette exportieren"
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr "Ãœberwachungsbericht exportieren"
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr "Ãœberwachungsbericht eines bestimmten Commits exportieren"
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr "Liste der Projekt-Frameworks exportieren"
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr "Bericht zu Verstößen exportieren"
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr "Ungültiger Hash"
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr "E-Mail mit ausgewähltem Bericht als CSV senden"
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr "Compliance Framework"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr "Zugehörige Projekte"
@@ -12379,11 +12649,14 @@ msgid "ComplianceFrameworksReport|Default"
msgstr "Standard"
msgid "ComplianceFrameworksReport|Description"
-msgstr ""
+msgstr "Beschreibung"
msgid "ComplianceFrameworksReport|Edit framework"
msgstr "Framework bearbeiten"
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr "Aktive Konformitäts-Frameworks"
@@ -12393,12 +12666,12 @@ msgstr "Framework hinzufügen"
msgid "ComplianceFrameworks|Background color"
msgstr "Hintergrundfarbe"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "Abbrechen"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr "Export von Konformitäts-Frameworks"
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr "Konformitäts-Framework erstellt"
@@ -12411,9 +12684,15 @@ msgstr "Konformitäts-Pipeline-Konfiguration (optional)"
msgid "ComplianceFrameworks|Configuration not found"
msgstr "Konfiguration nicht gefunden"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr "Standard ComplianceFramework erfolgreich aktualisiert"
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "Compliance-Framework %{framework} löschen"
@@ -12426,6 +12705,9 @@ msgstr "Beschreibung"
msgid "ComplianceFrameworks|Description is required"
msgstr "Beschreibung erforderlich"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr "Konformitäts-Framework bearbeiten"
@@ -12456,9 +12738,15 @@ msgstr "Name"
msgid "ComplianceFrameworks|Name is required"
msgstr "Name ist erforderlich"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr "Neues Konformitäts-Framework"
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr "Noch keine Regelungen für die Einhaltung der Vorschriften festgelegt"
@@ -12477,12 +12765,18 @@ msgstr "Ultimate-Abonnement erforderlich"
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr "Änderungen am Konformitäts-Framework gespeichert"
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr "Lege die Konfiguration der Konformitäts-Pipeline für Projekte fest, die dieses Framework verwenden. %{linkStart}Wie erstelle ich die Konfiguration?%{linkEnd}"
msgid "ComplianceFrameworks|Set default"
msgstr "Standard festlegen"
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr "Dieses Compliance-Framework kann nicht gespeichert werden. Bitte versuche es erneut"
@@ -12600,6 +12894,9 @@ msgstr "Filterergebnisse aktualisieren?"
msgid "ComplianceReport|Update result"
msgstr "Ergebnis aktualisieren"
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr "Eine Regel wurde konfiguriert, um zu verhindern, dass Merge Requests von Autor(inn)en genehmigt werden."
@@ -12613,7 +12910,7 @@ msgid "ComplianceStandardsAdherence|At least two approvals"
msgstr "Mindestens zwei Genehmigungen"
msgid "ComplianceStandardsAdherence|Check"
-msgstr ""
+msgstr "Prüfen"
msgid "ComplianceStandardsAdherence|Failure reason"
msgstr "Grund für Fehlschlag"
@@ -12631,13 +12928,13 @@ msgid "ComplianceStandardsAdherence|How to fix"
msgstr "Behebung"
msgid "ComplianceStandardsAdherence|Last Scanned"
-msgstr ""
+msgstr "Zuletzt gescannt"
msgid "ComplianceStandardsAdherence|Merge request approval rules"
msgstr "Merge Request-Genehmigungsregeln"
msgid "ComplianceStandardsAdherence|More Information"
-msgstr ""
+msgstr "Weitere Informationen"
msgid "ComplianceStandardsAdherence|No projects with standards adherence checks found"
msgstr "Keine Projekte mit Prüfungen zur Einhaltung von Normen gefunden"
@@ -12658,16 +12955,22 @@ msgid "ComplianceStandardsAdherence|Prevent committers as approvers"
msgstr "Verhindere Committer als Genehmigungsberechtigte"
msgid "ComplianceStandardsAdherence|Project"
+msgstr "Projekt"
+
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
msgstr ""
msgid "ComplianceStandardsAdherence|Requirement"
msgstr "Anforderung"
msgid "ComplianceStandardsAdherence|Standard"
-msgstr ""
+msgstr "Standard"
msgid "ComplianceStandardsAdherence|Status"
-msgstr ""
+msgstr "Status"
msgid "ComplianceStandardsAdherence|Success reason"
msgstr "Grund für Erfolg"
@@ -12685,10 +12988,16 @@ msgid "ComplianceStandardsAdherence|View details"
msgstr "Details anzeigen"
msgid "ComplianceStandardsAdherence|View details (fix available)"
+msgstr "Details anzeigen (Korrektur verfügbar)"
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
-msgstr "Konformitätsverstöße exportieren"
+msgid "ComplianceViolations| Violations export"
+msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
msgstr "Deine als CSV exportierten Konformitätsverstöße für die Gruppe „%{group_name}“ wurde an diese E-Mail angehängt."
@@ -12840,6 +13149,9 @@ msgstr "Repository-Spiegelung konfigurieren."
msgid "Configure repository storage."
msgstr "Repository-Speicher konfigurieren."
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr "Konfiguriere die Erkennung von Geheimnissen für alle Projekte in deiner GitLab-Instanz"
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr "Konfiguriere die Einstellungen für die erweiterte Suche mit Elasticsearch."
@@ -12930,8 +13242,8 @@ msgstr "Konflikt: Diese Datei wurde im Quellbranch umbenannt, aber im Zielbranch
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
-msgstr "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
+msgstr ""
msgid "ConfluenceService|Confluence Workspace"
msgstr "Confluence-Arbeitsbereich"
@@ -13165,6 +13477,9 @@ msgstr "Das Bilderarchiv hat keinen Namen und befindet sich unter der Projekt-UR
msgid "ContainerRegistry|Image tags"
msgstr "Bild-Tags"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr "Ungültiger Tag: Fehlender manifest verdauung"
@@ -13350,6 +13665,9 @@ msgstr "Um deine Suche zu erweitern, änder oder entferne die obigen Filter."
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr "Wir haben Probleme bei der Verbindung mit der Container-Registry. Bitte versuche, die Seite zu aktualisieren. Wenn dieser Fehler weiterhin besteht, lies bitte %{docLinkStart}die Dokumentation zur Fehlerbehebung%{docLinkEnd}."
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr "Während der Umbenennung werden neue Uploads in die Container-Registry blockiert. Laufende Uploads können fehlschlagen und müssen erneut begonnen werden."
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "Mit der Container-Registry erhält jedes Projekt einen eigenen Bereich zum Speichern seiner Docker-Images. %{docLinkStart}Weitere Informationen%{docLinkEnd}"
@@ -13701,8 +14019,8 @@ msgstr "Beiträge für %{calendar_date}"
msgid "Contributor"
msgstr "Mitwirkende(r)"
-msgid "Contributor statistics"
-msgstr "Beitragende Statistik"
+msgid "Contributor analytics"
+msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
msgstr "Lege fest, wie die CI_JOB_TOKEN CI/CD Variable für den API-Zugriff zwischen Projekten verwendet wird."
@@ -13713,6 +14031,9 @@ msgstr "Steuere, ob Inhalte zur Verbesserung der Kund(inn)enerfahrung und Angebo
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr "Konvertiert Arbeitsaufgabe in %{type}. Widgets, die von dem neuen Typ nicht unterstützt werden, werden entfernt."
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Cookie-Domäne"
@@ -13776,6 +14097,9 @@ msgstr "Codes kopieren"
msgid "Copy command"
msgstr "Befehl kopieren"
+msgid "Copy command to finalize manually"
+msgstr "Befehl kopieren und manuell abschließen"
+
msgid "Copy commands"
msgstr "Befehle kopieren"
@@ -13848,9 +14172,6 @@ msgstr "Name des Quell-Branchs kopieren"
msgid "Copy to clipboard"
msgstr "In Zwischenablage kopieren"
-msgid "Copy token"
-msgstr "Token kopieren"
-
msgid "Copy value"
msgstr "Wert kopieren"
@@ -13924,7 +14245,7 @@ msgid "CorpusManagement|Total Size: %{totalSize}"
msgstr "Gesamtgröße: %{totalSize}"
msgid "Correlation ID"
-msgstr ""
+msgstr "Korrelations-ID"
msgid "Cost Factor Settings"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr "Deine Designs konnten nicht hochgeladen werden, da eine oder mehrere hoc
msgid "Couldn't assign policy to project or group"
msgstr "Richtlinie konnte dem Projekt oder der Gruppe nicht zugewiesen werden"
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr "Es konnten keine Ereignistypfilter gefunden werden, bei denen Ereignistyp(en) überwacht werden: %{missing_filters}"
@@ -14097,6 +14421,9 @@ msgstr "Gruppe erstellen"
msgid "Create a merge request"
msgstr "Merge-Request erzeugen"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "Erstelle eine neue %{codeStart}.gitlab-ci.yml%{codeEnd}-Datei am Root des Repositorys, um loszulegen."
@@ -14127,9 +14454,6 @@ msgstr "Erstelle einen persönlichen Zugriffstoken in deinem Konto um mittels %{
msgid "Create a project"
msgstr "Projekt erstellen"
-msgid "Create an account using:"
-msgstr "Ein Konto erstellen mit:"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr "Ticket erstellen. Für jede Warnung wird ein Ticket erstellt."
@@ -14259,9 +14583,6 @@ msgstr "Release erstellen"
msgid "Create requirement"
msgstr "Anforderung erstellen"
-msgid "Create rules for target branches in merge requests."
-msgstr "Erstelle Regeln für Zielbranchen in Merge Requests."
-
msgid "Create service account"
msgstr "Neues Service-Konto hinzufügen"
@@ -14298,6 +14619,9 @@ msgstr "Füge eine Nachricht zum Tag hinzu. Lasse dieses Feld leer, um einen Lig
msgid "CreateGitTag|Set tag message"
msgstr "Tag-Nachricht festlegen"
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "Du hast keine Berechtigung, um eine Untergruppe in dieser Gruppe zu erstellen."
@@ -14508,6 +14832,9 @@ msgstr "Erstellt am"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "Erstellte einen Branch und eine Merge Request um dieses Ticket zu bearbeiten."
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "Erstellte Branch „%{branch_name}“ und eine Merge Request um dieses Ticket zu beenden."
@@ -14718,6 +15045,12 @@ msgstr "Pipeline-Minuten kaufen"
msgid "CurrentUser|Edit profile"
msgstr "Profil bearbeiten"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr "Eine deiner Gruppen läuft aus"
@@ -15005,9 +15338,6 @@ msgstr "nicht erlaubt für das angegebene Startereignis"
msgid "CycleAnalytics|project dropdown filter"
msgstr "Projekt-Dropdown-Filter"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr "das zugewiesene Objekt wird nicht unterstützt"
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr "Die DAG-Visualisierung erfordert mindestens 3 abhängige Jobs."
@@ -15037,6 +15367,9 @@ msgstr "Nutzungsbedingungen für Tests akzeptieren?"
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr "Alle Themen"
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr "Durchschnitt (letzte(r) %{days}Tag(e))"
@@ -15306,9 +15639,6 @@ msgstr "Alle"
msgid "DashboardProjects|Personal"
msgstr "Persönliche"
-msgid "Dashboards"
-msgstr "Dashboards"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} und %{secondProject}"
@@ -15342,6 +15672,9 @@ msgstr "Keine früheren Scans für dieses Projekt gefunden"
msgid "DastConfig|Not enabled"
msgstr "Deaktiviert"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr "/graphql"
@@ -15423,6 +15756,9 @@ msgstr "Das Scannerprofil konnte nicht aktualisiert werden. Bitte versuche es er
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "Das Seitenprofil konnte nicht aktualisiert werden. Bitte versuche es erneut."
+msgid "DastProfiles|Crawl timeout"
+msgstr "Crawl-Zeitüberschreitung"
+
msgid "DastProfiles|DAST profile library"
msgstr "DAST-Profilbibliothek"
@@ -15600,9 +15936,6 @@ msgstr "Seiten-Profile"
msgid "DastProfiles|Site type"
msgstr "Seitentyp"
-msgid "DastProfiles|Spider timeout"
-msgstr "Spider-Timeout"
-
msgid "DastProfiles|Submit button"
msgstr "Schaltfläche Senden"
@@ -15615,8 +15948,8 @@ msgstr "Ziel URL"
msgid "DastProfiles|Target timeout"
msgstr "Timeout-Ziel"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
-msgstr "Die maximale Anzahl von Minuten, die dem Spider zum Durchlaufen der Site erlaubt ist."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
+msgstr "Die maximale Anzahl von Minuten, die dem Crawler zum Durchlaufen der Site erlaubt ist."
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
msgstr "Die maximale Anzahl von Sekunden, die der zu testenden Site erlaubt sind, um auf eine Anfrage zu antworten."
@@ -15928,6 +16261,9 @@ msgstr "Standard-Branch"
msgid "Default branch and protected branches"
msgstr "Standard-Branch und geschützte Branches"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Standard-Beschreibungsvorlage für Tickets"
@@ -16170,10 +16506,10 @@ msgid "Delete video"
msgstr "Video löschen"
msgid "DeleteProject|Couldn't remove the project. A project repository storage move is in progress. Try again when it's complete."
-msgstr ""
+msgstr "Das Projekt konnte nicht entfernt werden. Der Projekt-Repository-Speicher wird derzeit verschoben. Versuche es anschließend erneut."
msgid "DeleteProject|Couldn't remove the project. A related snippet repository storage move is in progress. Try again when it's complete."
-msgstr ""
+msgstr "Das Projekt konnte nicht entfernt werden. Ein zugehöriger Schnipsel-Repository-Speicher wird derzeit verschoben. Versuche es anschließend erneut."
msgid "DeleteProject|Failed to remove design repository. Please try again or contact administrator."
msgstr "Entfernen des Projektarchivs fehlgeschlagen. Bitte versuche es erneut oder kontaktiere deine(n) Administrator(in)."
@@ -16250,17 +16586,6 @@ msgstr "Löschung anstehend. Dieses Projekt wird am %{date} gelöscht. Das Repos
msgid "DeletionSettings|Deletion protection"
msgstr "Löschschutz"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] "Gelöschte Projekte für %{number} Tag behalten"
-msgstr[1] "Gelöschte Projekte für %{number} Tage behalten"
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "Nur Administratoren können Projekte löschen."
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "Eigentümer(innen) und Administratoren können Projekte löschen."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr "Zeitraum, in dem gelöschte Gruppen und Projekte wiederherstellbar bleiben. Persönliche Projekte werden stets sofort gelöscht."
@@ -16372,12 +16697,18 @@ msgstr "Möglicherweise gibt es mehrere Pfade"
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr "Beim Abrufen der Projekte für diese Gruppe ist ein Fehler aufgetreten. Bitte versuche es später erneut."
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr "Diese Gruppe überschreitet die maximale Anzahl von Untergruppen in Höhe von 600. Zurzeit können wir keine genaue Projektliste anzeigen. Rufe die Abhängigkeitenliste einer Untergruppe auf, um diese Informationen anzuzeigen, oder lies die Hilfeseite zur %{linkStart}Abhängigkeitenliste%{linkEnd}, um mehr zu erfahren."
msgid "Dependencies|Toggle vulnerability list"
msgstr "Liste der Sicherheitslücken umschalten"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "Nicht unterstützte Datei(en) erkannt"
@@ -16396,9 +16727,6 @@ msgstr "Abhängigkeitsproxy"
msgid "Dependency Scanning"
msgstr "Abhängigkeitsscanning"
-msgid "Dependency chains are not supported"
-msgstr "Abhängigkeitsketten werden nicht unterstützt"
-
msgid "Dependency list"
msgstr "Liste der Abhängigkeiten"
@@ -16408,6 +16736,9 @@ msgstr "%{docLinkStart}In der Dokumentation%{docLinkEnd} findest du weitere Mög
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr "Alle Objekte im Zwischenspeicher sind zur Löschung vorgesehen."
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr "Gecached %{time}"
@@ -16444,27 +16775,39 @@ msgstr "Zusammenfassung: %{shortDigest}"
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr "Abhängigkeits-Proxy aktivieren"
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr "Aktiviere den Abhängigkeits-Proxy, um Container-Images vom Docker Hub zwischenzuspeichern und den Cache automatisch zu leeren."
msgid "DependencyProxy|Image list"
msgstr "Bildliste"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr "Beispiel: Image-Pull nach Zusammenfassung"
msgid "DependencyProxy|Scheduled for deletion"
msgstr "Zur Löschung vorgesehen"
-msgid "DependencyProxy|There are no images in the cache"
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
msgstr ""
+msgid "DependencyProxy|There are no images in the cache"
+msgstr "Es befinden sich keine Images im Cache"
+
msgid "DependencyProxy|To see the image prefix and what is in the cache, visit the %{linkStart}Dependency Proxy%{linkEnd}"
msgstr "Um das Image-Präfix sowie den Cache-Inhalt anzusehen, besuche den %{linkStart}Abhängigkeits-Proxy%{linkEnd}"
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr "Pulle ein Image nach Tag in deine %{codeStart}.gitlab-ci.yml%{codeEnd}-Datei, um Docker Images im Abhängigkeits-Proxy-Zwischenspeicher zu speichern. Das Image in diesem Beispiel ist %{codeStart}alpine:latest%{codeEnd}."
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr "Ist diese Option aktiviert, werden Images, die älter als 90 Tage sind, aus dem Cache entfernt."
@@ -16711,9 +17054,6 @@ msgstr "Benutzername"
msgid "DeployTokens|Username (optional)"
msgstr "Benutzername (optional)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr "Dein neuer Bereitstellungs-Token Nutzername"
-
msgid "DeployTokens|Your new deploy token"
msgstr "Dein neues Bereitstellungstoken"
@@ -17384,6 +17724,51 @@ msgstr "Diff-Grenzen"
msgid "Diff notes"
msgstr "Diff. Notizen"
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "Unterschied zwischen Startdatum und Jetzt"
@@ -17513,6 +17898,9 @@ msgstr "Änderungen in %{path} verwerfen?"
msgid "Discard draft"
msgstr "Entwurf verwerfen"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord-Benachrichtigungen"
@@ -17817,6 +18205,9 @@ msgstr "Ziehe, um priorisierte Labels neu anzuordnen und ihre relative Prioritä
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "Designs hierherziehen oder %{linkStart}zum Hochladen klicken%{linkEnd}."
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "Datei zum Anhängen ablegen oder%{linkStart}hochladen%{linkEnd}"
@@ -18108,6 +18499,9 @@ msgstr "Bearbeitung"
msgid "Edits"
msgstr "Bearbeitungen"
+msgid "Either the title or description must reference a Jira issue."
+msgstr "Im Titel oder in der Beschreibung muss ein Verweis auf ein Jira-Ticket vorhanden sein."
+
msgid "Elapsed time"
msgstr "Verstrichene Zeit"
@@ -18174,6 +18568,9 @@ msgstr "E-Mail-Benachrichtigung für unbekannte Anmeldungen"
msgid "Email patch"
msgstr "E-Mail-Patch"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "E-Mail verschickt"
@@ -18270,6 +18667,9 @@ msgstr "Leere Datei"
msgid "Enable"
msgstr "Aktivieren"
+msgid "Enable Admin Mode"
+msgstr "Administratormodus aktivieren"
+
msgid "Enable Akismet"
msgstr "Akismet aktivieren"
@@ -18306,6 +18706,9 @@ msgstr "PlantUML aktivieren"
msgid "Enable SSL verification"
msgstr "SSL-Prüfung aktivieren"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr "Snowplow-Tracking aktivieren"
@@ -18321,9 +18724,6 @@ msgstr "Option „Was ist neu“ aktivieren: Nur aktuelle Stufe"
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "Aktiviere den Zugriff auf die Leistungsleiste für Nicht-Administrator(inn)en in einer bestimmten Gruppe."
-msgid "Enable admin mode"
-msgstr "Administratormodus aktivieren"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr "Aktivieren und deaktivieren von Service-Desk. Möglicherweise sind zusätzliche Konfigurationen erforderlich. %{link_start}Mehr erfahren%{link_end}."
@@ -18387,6 +18787,9 @@ msgstr "Aktiviere oder deaktiviere Tastaturkürzel in deinen %{linkStart}Benutze
msgid "Enable or disable version check and Service Ping."
msgstr "Versionsprüfung und den Service Ping aktivieren oder deaktivieren."
+msgid "Enable pre-receive secret detection"
+msgstr "Erkennung von Geheimnissen vor dem Empfang aktivieren"
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr "Aktiviere die Begrenzung der Abfrageraten für Anfragen auf die angegebenen Pfade"
@@ -18402,9 +18805,6 @@ msgstr "Repository-Überprüfungen aktivieren"
msgid "Enable security training"
msgstr "Sicherheitsschulung aktivieren"
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Aktiviere die Sicherheitsschulung, um Deinen Entwickler(inne)n beizubringen, wie Schwachstellen behoben werden können. Entwickler(innen) können Sicherheitsschulungen von ausgewählten Bildungsanbieter(inne)n ansehen, die für die entdeckte Sicherheitslücke relevant sind."
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "Geteilte Runners für alle Projekte und Untergruppen in dieser Gruppe aktivieren."
@@ -18492,6 +18892,9 @@ msgstr "Endet am"
msgid "Ends: %{endsAt}"
msgstr "Endet: %{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "Zwei-Faktor-Authentifizierung erzwingen"
@@ -18807,6 +19210,9 @@ msgstr "Öffnen"
msgid "Environments|Open live environment"
msgstr "Öffne Live-Umgebung"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "Umgebung erneut bereitstellen"
@@ -18909,15 +19315,12 @@ msgstr "Bereitstellungs-Ebene"
msgid "Environment|Deployments"
msgstr "Bereitstellungen"
-msgid "Environment|Environment health"
-msgstr "Umgebungsgesundheit"
+msgid "Environment|Environment status"
+msgstr "Umgebungsstatus"
msgid "Environment|External IP"
msgstr "Externe IP"
-msgid "Environment|Failed"
-msgstr "Fehlgeschlagen"
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr "Jobs"
msgid "Environment|Kubernetes overview"
msgstr "Kubernetes Ãœbersicht"
-msgid "Environment|Pending"
-msgstr "Ausstehend"
-
msgid "Environment|Pods"
msgstr "Pods"
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr "ReplicaSets"
-msgid "Environment|Running"
-msgstr "Wird ausgeführt"
-
msgid "Environment|Services"
msgstr "Dienste"
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr "StatefulSets"
-msgid "Environment|Succeeded"
-msgstr "Erfolgreich"
-
msgid "Environment|Summary"
msgstr "Zusammenfassung"
@@ -18978,12 +19372,12 @@ msgstr "Es gab einen Fehler beim Abrufen von %{resourceType}."
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr "Aus dieser Umgebung hast du keinen Zugriff auf %{resourceType}."
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
-msgstr ""
-
msgid "Environment|Unhealthy"
msgstr "Ungesund"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
+msgstr ""
+
msgid "Epic"
msgstr "Epic"
@@ -19885,9 +20279,6 @@ msgstr "%{requirementsCount} Anforderungen exportieren?"
msgid "Export as CSV"
msgstr "Als CSV exportieren"
-msgid "Export commit custody report"
-msgstr "Commit-Custody-Bericht exportieren"
-
msgid "Export group"
msgstr "Gruppe exportieren"
@@ -20014,6 +20405,9 @@ msgstr "URL des externen Wikis"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr "Von der Menüleiste zu einem externen Wiki verlinken."
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://example.com/xxx/wiki/..."
@@ -20099,6 +20493,9 @@ msgstr "Erstellen eines Branches für dieses Ticket fehlgeschlagen. Bitte versuc
msgid "Failed to create a to-do item for the design."
msgstr "Fehler beim Erstellen einer Aufgabe für das Design."
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "Framework konnte nicht erstellt werden"
@@ -20106,7 +20503,7 @@ msgid "Failed to create import label for jira import."
msgstr "Import-Label für Jira-Import konnte nicht erstellt werden."
msgid "Failed to create organization"
-msgstr ""
+msgstr "Fehler beim Erstellen der Organisation"
msgid "Failed to create repository"
msgstr "Fehler beim Erstellen des Repository"
@@ -20114,18 +20511,15 @@ msgstr "Fehler beim Erstellen des Repository"
msgid "Failed to create resources"
msgstr "Fehler beim Erstellen der Ressourcen"
-msgid "Failed to create target branch rule"
-msgstr "Fehler beim Erstellen der Zielbranch-Regel"
-
msgid "Failed to create wiki"
msgstr "Wiki konnte nicht erstellt werden"
+msgid "Failed to delete branch target"
+msgstr ""
+
msgid "Failed to delete custom emoji. Please try again."
msgstr "Benutzerdefiniertes Emoji konnte nicht gelöscht werden. Bitte erneut versuchen."
-msgid "Failed to delete target branch rule"
-msgstr "Fehler beim Löschen der Zielbranch-Regel"
-
msgid "Failed to deploy to"
msgstr "Bereitstellung fehlgeschlagen für"
@@ -20162,9 +20556,6 @@ msgstr "Fehler beim Laden"
msgid "Failed to load Roadmap"
msgstr "Roadmap konnte nicht geladen werden"
-msgid "Failed to load assignees."
-msgstr "Fehler beim Laden der Beauftragten."
-
msgid "Failed to load assignees. Please try again."
msgstr "Die Beauftragten konnten nicht geladen werden. Bitte versuche es erneut."
@@ -20192,18 +20583,9 @@ msgstr "Fehler beim Laden von Gruppen, Benutzer(inne)n und Bereitstellungsschlü
msgid "Failed to load groups."
msgstr "Fehler beim Laden der Gruppen."
-msgid "Failed to load iteration cadences."
-msgstr "Fehler beim Laden der Iterationskadenzen."
-
-msgid "Failed to load iterations."
-msgstr "Das Laden der Iterationen ist fehlgeschlagen."
-
msgid "Failed to load labels. Please try again."
msgstr "Konnte Etiketts nicht laden. Bitte erneut versuchen."
-msgid "Failed to load milestones."
-msgstr "Die Meilensteine konnten nicht geladen werden."
-
msgid "Failed to load milestones. Please try again."
msgstr "Die Meilensteine konnten nicht geladen werden. Bitte versuche es erneut."
@@ -20312,6 +20694,9 @@ msgstr "Framework konnte nicht aktualisiert werden"
msgid "Failed to update issue status"
msgstr "Ticket-Status konnte nicht aktualisiert werden."
+msgid "Failed to update organization"
+msgstr "Aktualisieren der Organisation fehlgeschlagen"
+
msgid "Failed to update the Canary Ingress."
msgstr "Canary Ingress konnte nicht aktualisiert werden."
@@ -20605,6 +20990,9 @@ msgstr "Datei verschoben"
msgid "File name"
msgstr "Dateiname"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr "Dateiberechtigungen"
@@ -20732,16 +21120,16 @@ msgid "FindFile|Switch branch/tag"
msgstr "Branch/Tag wechseln"
msgid "FindingsDrawer|Code Quality"
-msgstr ""
+msgstr "Codequalität"
msgid "FindingsDrawer|Code Quality Finding"
-msgstr ""
+msgstr "Codequalität-Fund"
msgid "FindingsDrawer|Detected in pipeline"
-msgstr ""
+msgstr "Erkannt in Pipeline"
msgid "FindingsDrawer|SAST Finding"
-msgstr ""
+msgstr "SAST-Fund"
msgid "Fingerprint (MD5)"
msgstr "Fingerabdruck (MD5)"
@@ -20884,9 +21272,6 @@ msgstr "Alle Dateien, die größer als dieses Limit sind, indizieren nur den Dat
msgid "For general work"
msgstr "Für allgemeine Arbeit"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr "Zur individuellen Nutzung erstelle ein separates Konto mit deiner persönlichen E-Mail-Adresse, die nicht an die Enterprise-E-Mail-Domain oder Gruppe gebunden ist."
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr "Erstelle dir für die individuelle Nutzung ein separates Konto unter deiner persönlichen E-Mail-Adresse, die nicht mit der E-Mail-Domäne des Unternehmens verbunden ist."
@@ -21082,34 +21467,34 @@ msgid "Free trial will expire in %{days}"
msgstr "Die kostenlose Testversion läuft in %{days} ab"
msgid "FreeUserCap|Action required: %{namespace_name} group has been placed into a read-only state"
-msgstr ""
+msgstr "Aktion erforderlich: %{namespace_name} Gruppe wurde in einen schreibgeschützten Zustand versetzt"
msgid "FreeUserCap|Explore paid plans"
-msgstr ""
+msgstr "Kostenpflichtige Tarife erkunden"
msgid "FreeUserCap|Explore paid plans:"
-msgstr ""
+msgstr "Kostenpflichtige Tarife erkunden:"
msgid "FreeUserCap|Manage members"
-msgstr ""
+msgstr "Mitglieder verwalten"
msgid "FreeUserCap|Manage members:"
-msgstr ""
+msgstr "Mitglieder verwalten:"
msgid "FreeUserCap|Start a trial:"
-msgstr ""
+msgstr "Testversion starten:"
msgid "FreeUserCap|To remove the %{link_start}read-only%{link_end} state and regain write access, you can reduce the number of users in your top-level group to %{free_user_limit} users or less. You can also %{upgrade_start}upgrade%{upgrade_end} to a paid tier, which do not have user limits. If you need additional time, you can %{trial_start}start a free 30-day trial%{trial_end} which includes unlimited users."
-msgstr ""
+msgstr "Um den %{link_start}Schreibschutz%{link_end} aufzuheben und den Schreibzugriff wiederherzustellen, kannst du die Anzahl der Benutzer(innen) in deiner Gruppe der obersten Ebene auf maximal %{free_user_limit} Benutzer(innen) reduzieren. Du kannst auch ein %{upgrade_start}Upgrade%{upgrade_end} auf einen kostenpflichtigen Tarif ohne Benutzer(innen)-Limits durchführen. Wenn du mehr Zeit brauchst, kannst du eine %{trial_start}kostenlose 30-Tage-Testversion ohne Benutzer(innen)-Limits starten%{trial_end}."
msgid "FreeUserCap|Upgrade:"
-msgstr ""
+msgstr "Upgrade:"
msgid "FreeUserCap|You have exceeded your limit of %{free_user_limit} users for %{namespace_name} group because users were added to a group inherited by a group or project in the %{namespace_name} group."
-msgstr ""
+msgstr "Du hast dein Limit von %{free_user_limit} Benutzer(innen) für die Gruppe %{namespace_name} überschritten, weil Benutzer(innen) zu einer Gruppe hinzugefügt wurden, die von einer Gruppe oder einem Projekt in der Gruppe%{namespace_name} erbt."
msgid "FreeUserCap|You've exceeded your user limit"
-msgstr ""
+msgstr "Du hast dein Benutzer(innen)-Limit überschritten."
msgid "Freeze end"
msgstr "Ende einfrieren"
@@ -21207,6 +21592,9 @@ msgstr "Ursachenanalyse generieren"
msgid "Generate site and private keys at"
msgstr "Generiere Website- und private Schlüssel unter"
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "Via JSON-Daten generiert"
@@ -21550,12 +21938,6 @@ msgstr "Resynchronisierung"
msgid "Geo|Resync all"
msgstr "Resynchronisation"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr "Alle %{projects_count} Projekte neu synchronisieren"
-
-msgid "Geo|Resync project"
-msgstr "Projekt erneut synchronisieren"
-
msgid "Geo|Retry count"
msgstr "Wiederholversuch"
@@ -21565,12 +21947,6 @@ msgstr "Erneut verifizieren"
msgid "Geo|Reverify all"
msgstr "Alle erneut überprüfen"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr "Alle %{projects_count} Projekte neu überprüfen"
-
-msgid "Geo|Reverify project"
-msgstr "Projekt neu verifizieren"
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr "Replikationsstatus überprüfen und Elemente mit der Hauptseite synchronisieren und reverifizieren."
@@ -21679,12 +22055,6 @@ msgstr "Diese GitLab Instanz hat die %{insufficient_license} -Ebene abonniert. G
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr "Dies wird %{replicableType} %{action}. Es kann einige Zeit dauern, bis der Vorgang abgeschlossen ist. Möchtest du wirklich fortfahren?"
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Dadurch werden alle Projekte neu synchronisieren. Es kann einige Zeit dauern, bis der Vorgang abgeschlossen ist. Bist du sicher, dass du fortfahren möchtest?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Dadurch werden alle Projekte neu überprüfen. Es kann einige Zeit dauern, bis der Vorgang abgeschlossen ist. Bist du sicher, dass du fortfahren möchtest?"
-
msgid "Geo|Time in seconds"
msgstr "Zeit in Sekunden"
@@ -21742,9 +22112,6 @@ msgstr "primär"
msgid "Geo|secondary"
msgstr "sekundär"
-msgid "Get a free instance review"
-msgstr "Erhalte eine kostenlose Instanzprüfung"
-
msgid "Get a support subscription"
msgstr "Hole dir ein Support-Abonnement"
@@ -21766,6 +22133,9 @@ msgstr "Beginne mit Fehler-Tracking"
msgid "Get started!"
msgstr "Loslegen!"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21853,9 +22223,15 @@ msgstr "Du kannst nicht mehr als %{maxAllowedUsers} ausgeschlossene Benutzer(inn
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr "GitHub API-Rate Limit überschritten. Versuche es erneut nach %{reset_time}."
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHub-Import"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "*Merged von: %{author} um %{timestamp}*"
@@ -21941,7 +22317,7 @@ msgid "GitLab group: %{source_link}"
msgstr "GitLab-Gruppe: %{source_link}"
msgid "GitLab has redesigned the left sidebar to address customer feedback. View details in %{blog_link_start}this blog post%{link_end}. Here's how to %{issues_link_start}file an issue%{link_end} with the GitLab product team."
-msgstr ""
+msgstr "GitLab hat die linke Seitenleiste umgestaltet, um Kundenfeedback zu berücksichtigen. Weitere Details findest du in %{blog_link_start}diesem Blogbeitrag%{link_end}. Hier erfährst du, wie du %{issues_link_start}ein Problem beim GitLab-Produktteam einreichen%{link_end} kannst."
msgid "GitLab informs you if a new version is available. %{link_start}What information does GitLab Inc. collect?%{link_end}"
msgstr "GitLab informiert dich, wenn eine neue Version verfügbar ist. %{link_start}Welche Informationen sammelt GitLab Inc.?%{link_end}"
@@ -21952,9 +22328,6 @@ msgstr "GitLab ist eine komplette DevOps-Plattform, die als einzelne Anwendung b
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr "GitLab ist eine komplette DevOps-Plattform, die als einzelne Anwendung bereitgestellt wird und grundlegend die Art und Weise,%{br_tag}wie Entwicklungs-, Sicherheits- und Ops-Teams zusammenarbeiten, verändert."
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr "GitLab ist eine einzelne Anwendung für den gesamten Lebenszyklus der Softwareentwicklung. Von der Projektplanung über das Quellcode-Management bis hin zu CI / CD, Überwachung und Sicherheit."
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr "GitLab kann kostenlos verwendet werden. Viele Funktionen für größere Teams sind Teil unserer %{link_start}bezahlten Produkte%{link_end}. Du kannst die Ultimate-Edition kostenlos, ohne Verpflichtung oder Zahlungsinformationen ausprobieren."
@@ -22084,8 +22457,8 @@ msgstr "Ungeprüft"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "Deine Pages-Konfiguration wird aktualisiert..."
-msgid "GitLabPages|Use multiple versions"
-msgstr "Verwende mehrere Versionen"
+msgid "GitLabPages|Use multiple deployments"
+msgstr ""
msgid "GitLabPages|Use unique domain"
msgstr "Verwende eine eindeutige Domain"
@@ -22102,8 +22475,8 @@ msgstr "Wenn aktiviert, wird eine eindeutige Domain für den Zugriff auf Pages g
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr "Wenn aktiviert, werden alle Versuche, deine Website über HTTP zu besuchen, automatisch mit einer Antwort mit dem Statuscode 301 auf HTTPS umgeleitet. Benötigt ein gültiges Zertifikat für alle Domänen. %{docs_link_start}Erfahre mehr.%{link_end}"
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
-msgstr "Wenn dies aktiviert ist, kannst du mehrere Versionen deiner Seiten erstellen"
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
+msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
msgstr "GitLabPages|Bei der Verwendung von Seiten unter der allgemeinen Domain einer GitLab-Instanz (%{pages_host}) kannst du HTTPS nicht mit Subdomains von Subdomains verwenden. Wenn dein Namespace oder Gruppenname einen Punkt enthält, funktioniert er nicht. Dies ist eine Einschränkung des HTTP Over TLS-Protokolls. HTTP-Seiten funktionieren, wenn du HTTP nicht zu HTTPS weiterleitest. %{docs_link_start}Mehr erfahren.%{link_end}"
@@ -22279,24 +22652,24 @@ msgstr "Globale Benachrichtigungsmail"
msgid "Global notification level"
msgstr "Globale Benachrichtigungsstufe"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr " %{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr "%{count} Standard-Ergebnisse gefunden. Verwende die Aufwärts- und Abwärtspfeiltasten, um durch die Ergebnisliste zu navigieren."
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
-msgstr "Die %{link_start}exakte Codesuche (powered by Zoekt)%{link_end} ist aktiviert"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
+msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr "Fehler beim Laden von Aggregationen."
+msgid "GlobalSearch|All available groups"
+msgstr "Alle verfügbaren Gruppen"
+
msgid "GlobalSearch|Archived"
msgstr "Archiviert"
-msgid "GlobalSearch|Close"
-msgstr "Schließen"
-
msgid "GlobalSearch|Command palette"
msgstr ""
@@ -22354,6 +22727,9 @@ msgstr "Merge Requests, bei denen ich Prüfer(in) bin"
msgid "GlobalSearch|No labels found"
msgstr "Keine Labels gefunden"
+msgid "GlobalSearch|Nothing found…"
+msgstr "Nichts gefunden …"
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,18 +22751,15 @@ msgstr "Aktuelle Tickets"
msgid "GlobalSearch|Recent merge requests"
msgstr "Aktuelle Merge Requests"
+msgid "GlobalSearch|Reset"
+msgstr "Zurücksetzen"
+
msgid "GlobalSearch|Result count is over limit."
msgstr "Ergebnisanzahl ist begrenzt."
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr "Ergebnisse aktualisiert. %{count} Ergebnisse verfügbar. Verwende die Aufwärts- und Abwärtspfeiltasten, um durch die Suchergebnisliste zu navigieren, oder die EINGABETASTE zum Absenden."
-msgid "GlobalSearch|Search"
-msgstr "Suche"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "GitLab durchsuchen"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "Suche nach Projekten, Tickets, etc."
@@ -22414,9 +22787,6 @@ msgstr "Der Suchbegriff muss mindestens 3 Zeichen lang sein."
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr "Beim Abrufen der Vorschläge zur Autovervollständigung der Suche ist ein Fehler aufgetreten."
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr "Beim Abrufen des Dokuments „Syntax-Optionen“ ist ein Fehler aufgetreten."
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr "Zu suchender %{kbdOpen}/%{kbdClose} Typ"
@@ -22426,9 +22796,6 @@ msgstr "Gib Text ein und drücke die Eingabetaste, um die Suche auszuführen."
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "Gib Text ein, damit unten neue Vorschläge erscheinen."
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "Benutze die Tastenkürzel %{kbdOpen}/%{kbdClose} um die Suche zu beginnen"
-
msgid "GlobalSearch|Users"
msgstr "Benutzer(innen)"
@@ -22543,9 +22910,6 @@ msgstr "Gehe zur vorherigen Seite"
msgid "Go to previous unresolved thread"
msgstr "zum vorherigen ungelösten Thread gehen"
-msgid "Go to primary site"
-msgstr "Zur Hauptseite"
-
msgid "Go to project"
msgstr "Gehe zum Projekt"
@@ -22615,6 +22979,9 @@ msgstr "Gehe zu deinen Bewertungsanfragen"
msgid "Go to your snippets"
msgstr "Gehe zu deinen Code-Schnipseln"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google Cloud"
@@ -22627,6 +22994,9 @@ msgstr "Google Cloud Projekt"
msgid "Google Cloud authorizations required"
msgstr "Google Cloud-Genehmigungen erforderlich"
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "Abbrechen"
@@ -22663,12 +23033,12 @@ msgstr "GoogleCloud|Berechtigungen widerrufen"
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr "GoogleCloud|Widerrufe GitLab gewährte Autorisierungen. Dienstkonten werden dadurch nicht ungültig."
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
-msgstr "Lege Variablen nur für geschützte Branches und Tags fest"
-
msgid "GooglePlayStore|Protected branches and tags only"
msgstr "Nur geschützte Branches und Tags"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
+msgstr ""
+
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Ziehe deine Schlüsseldatei hierher oder %{linkStart}klicke zum Hochladen%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr "Verwende GitLab zum Erstellen und Veröffentlichen einer App in Google P
msgid "Got it"
msgstr "Verstanden"
-msgid "Got it!"
-msgstr "Verstanden!"
-
msgid "Grafana URL"
msgstr "Grafana URL"
@@ -22837,6 +23204,9 @@ msgstr "Gruppeninfo:"
msgid "Group information"
msgstr "Gruppeninformation"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "Jobs gruppieren nach"
@@ -22930,11 +23300,14 @@ msgstr "Die Gruppe wurde erfolgreich importiert."
msgid "GroupImport|Unable to process group import file"
msgstr "Gruppenimportdatei kann nicht verarbeitet werden"
-msgid "GroupPage|Copy group ID"
-msgstr "Gruppen-ID kopieren"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "Gruppen-ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} – Kein Enddatum"
@@ -23197,6 +23570,9 @@ msgstr "Nachdem die Instanz die Benutzerkapazität erreicht hat, müssen alle Be
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr "Nachdem die Instanz die Benutzerkapazität erreicht hat, müssen alle Benutzer(innen), die hinzugefügt werden oder Zugang beantragen, von einem/einer Administrator(in) genehmigt werden. Für eine unbegrenzte Benutzerkapazität leer lassen. Wenn du die Benutzerkapazität auf unbegrenzt änderst, musst du die %{project_sharing_docs_link_start}Projektfreigabe%{link_end} und die %{group_sharing_docs_link_start}Gruppenfreigabe%{link_end} erneut aktivieren. Durch die Erhöhung der Benutzerkapazität werden ausstehende Benutzer(innen) nicht automatisch genehmigt."
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr "Analysen"
@@ -23218,6 +23594,9 @@ msgstr "Badges"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr "Sei vorsichtig. Das Ändern der übergeordneten Gruppe kann unbeabsichtigte Nebeneffekte haben. %{learn_more_link_start}Mehr erfahren.%{learn_more_link_end}"
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "Der Pfad kann nicht aktualisiert werden, da es in dieser Gruppe Projekte gibt, die Docker-Images in ihrer Container-Registry enthalten. Bitte entferne zuerst die Images aus den Projekten und versuche es erneut."
@@ -23260,12 +23639,21 @@ msgstr "Standardmäßig Auto-DevOps-Pipeline für alle Projekte in dieser Gruppe
msgid "GroupSettings|Email notifications are disabled"
msgstr "E-Mail-Benachrichtigungen sind deaktiviert"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr "Übersichts-Hintergrundaggregation für das Dashboard für Wertschöpfungsketten aktivieren"
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr "Mit dem Aktivieren dieser Funktionen akzeptierst du die %{link_start}GitLab-Testvereinbarung%{link_end}."
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr "Wenn die Sichtbarkeit der übergeordneten Gruppe niedriger ist als die a
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "Mitglieder können keine Gruppen außerhalb von %{group} und seiner Untergruppen einladen"
+msgid "GroupSettings|Namespace setting"
+msgstr "Namensraumeinstellung"
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "Organisationen und Kontakte können erstellt und mit Tickets verknüpft werden."
@@ -23314,6 +23705,12 @@ msgstr "Projekte in %{group} können nicht mit anderen Gruppen geteilt werden"
msgid "GroupSettings|Reporting"
msgstr "Auswertungen"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr "Wähle eine Untergruppe aus, die als Quelle benutzerdefinierter Vorlagen für neue Projekte in dieser Gruppe verwendet werden soll. %{link_start}Erfahre mehr%{link_end}."
@@ -23333,10 +23730,10 @@ msgid "GroupSettings|Select the project containing your custom Insights file."
msgstr "Wähle das Projekt aus, das deine benutzerdefinierte Insights-Datei enthält."
msgid "GroupSettings|Service access tokens expiration enforced setting was not saved"
-msgstr ""
+msgstr "Einstellung zum Erzwingen des Ablaufs von Dienstzugriffstoken wurde nicht gespeichert."
msgid "GroupSettings|Service account token expiration"
-msgstr ""
+msgstr "Ablauf des Dienstkonto-Zugriffstokens"
msgid "GroupSettings|Set a size limit for all content in each Pages site in this group. %{link_start}Learn more.%{link_end}"
msgstr "Lege eine Größenbeschränkung für alle Inhalte in jeder Pages-Seite in dieser Gruppe fest. %{link_start}Erfahre mehr.%{link_end}"
@@ -23356,6 +23753,9 @@ msgstr "Beim Aktualisieren der Pipeline-Einstellungen gab es ein Problem: %{erro
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Diese Einstellung wird auf %{ancestor_group} angewendet und wurde für diese Untergruppe überschrieben."
@@ -23419,30 +23819,6 @@ msgstr "Gruppen sind eine großartige Möglichkeit, Projekte und Personen zu org
msgid "Groups are the best way to manage projects and members."
msgstr "Gruppen sind der beste Weg, um Projekte und Mitglieder zu verwalten."
-msgid "GroupsDropdown|Frequently visited"
-msgstr "Häufig besucht"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Gruppen, die du häufig besuchst, werden hier angezeigt"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Gruppen werden geladen"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "Durchsuche deine Gruppen"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Auf unserer Seite ist etwas schief gelaufen."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Keine Gruppe stimmen mit deiner Suche überein"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "Dieses Feature erfordert einen Browser, der LocalStorage unterstützt"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr "Bearbeitungsmodus umschalten"
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr "Eine Gruppe ist eine Ansammlung mehrerer Projekte."
@@ -23503,8 +23879,8 @@ msgstr "Untergruppe erstellen"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr "Gib die URL für die Quellinstanz ein."
-msgid "GroupsNew|GitLab source instance URL"
-msgstr "URL der GitLab-Quelle"
+msgid "GroupsNew|GitLab source instance base URL"
+msgstr "Basis-URL der GitLab-Quellinstanz"
msgid "GroupsNew|Groups"
msgstr "Gruppen"
@@ -23545,8 +23921,8 @@ msgstr "Bitte deinen/deine Administrator(in), dies in den Administrator-Einstell
msgid "GroupsNew|Please fill in your personal access token."
msgstr "Bitte gib dein persönliches Zugriffstoken ein."
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
-msgstr "Gib Anmeldeinformationen für die Quellinstanz an, aus der importiert werden soll. Du kannst diese Instanz als Quelle zum Verschieben von Gruppen in dieser Instanz bereitstellen."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
+msgstr "Gib Anmeldeinformationen für die %{url_link_start}Quellinstanz%{url_link_end} an, aus der importiert werden soll. Du kannst diese Instanz als Quelle zum Verschieben von Gruppen innerhalb dieser Instanz angeben."
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
msgstr "Denke daran, es auch in der Instanz zu aktivieren, von der du migrierst."
@@ -23668,6 +24044,9 @@ msgstr "Dies wird ein Projekt %{path} erstellen und eine README.md hinzufügen."
msgid "Groups|You're creating a new top-level group"
msgstr "Erstelle eine neue Hauptgruppe"
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "Gast"
@@ -23722,6 +24101,15 @@ msgstr "Passwort für deinen Harbor-Benutzernamen."
msgid "HarborIntegration|The name of the project in Harbor."
msgstr "Der Name des Projekts in Harbor."
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr "Verwende Harbor als Container-Registry für dieses Projekt."
@@ -23978,11 +24366,6 @@ msgstr "Thread ausblenden"
msgid "Hide tooltips or popovers"
msgstr "Tooltips oder Popovers ausblenden"
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Wert ausblenden"
-msgstr[1] "Werte ausblenden"
-
msgid "Hide values"
msgstr "Werte ausblenden"
@@ -24001,6 +24384,9 @@ msgstr "Gibt es ein Framework oder eine Art von Workitem, auf das du in GitLab z
msgid "Hierarchy|Planning hierarchy"
msgstr "Planungshierarchie"
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr "Beim Abrufen von Vorfahren ist etwas schiefgelaufen."
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr "Beim Abrufen von untergeordneten Elements ist etwas schiefgelaufen."
@@ -24076,6 +24462,9 @@ msgstr "Hauswirtschaft"
msgid "Housekeeping successfully started"
msgstr "Bereinigung erfolgreich gestartet"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr "Wie ändere ich mein Passwort in GitLab?"
@@ -24134,7 +24523,7 @@ msgid "I accept the %{terms_link}"
msgstr "Ich akzeptiere die %{terms_link}"
msgid "I am sorry, I am unable to find what you are looking for."
-msgstr ""
+msgstr "Ich habe leider nicht gefunden, wonach du suchst."
msgid "I forgot my password"
msgstr "Ich habe mein Passwort vergessen"
@@ -24166,6 +24555,9 @@ msgstr "Es tut mir leid, ich konnte keine Unterlagen finden, um deine Frage zu b
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24212,10 +24604,10 @@ msgid "INFO: Your SSH key is expiring soon. Please generate a new key."
msgstr "INFO: Dein SSH-Schlüssel läuft bald ab. Bitte generiere einen neuen Schlüssel."
msgid "IP '%{value}' is not a valid CIDR: %{message}"
-msgstr ""
+msgstr "IP „%{value}“ ist kein gültiges CIDR: %{message}"
msgid "IP '%{value}' is not a valid CIDR: IP should be followed by a slash followed by an integer subnet mask (for example: '192.168.1.0/24')"
-msgstr ""
+msgstr "IP '%{value}' ist kein gültiges CIDR: IP muss mit nachstehendem Schrägstrich gefolgt von einer ganzzahligen Subnetzmaske angegeben werden (zum Beispiel: '192.168.1.0/24')."
msgid "IP Address"
msgstr "IP-Adresse"
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] "%d Land gefunden"
msgstr[1] "%d Länder gefunden"
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr "%{linkStart}Neue Telefonnummer eingeben%{linkEnd}"
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr "Ein Code wurde bereits an diese E-Mail-Adresse gesendet. Überprüfe deinen Spam-Ordner oder gib eine andere E-Mail-Adresse ein."
@@ -24279,8 +24668,8 @@ msgstr "Um die Kontoerstellung abzuschliessen, müssen wir deine Identität veri
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "Bevor du dich anmeldest, müssen wir deine Identität überprüfen. Gib den folgenden Code auf der Anmeldeseite ein."
-msgid "IdentityVerification|Complete verification to sign in."
-msgstr "Verifizierung abschließen, um sich anzumelden."
+msgid "IdentityVerification|Complete verification to sign up."
+msgstr "Schließe die Verifizierung ab, um dich anzumelden."
msgid "IdentityVerification|Confirm your email address"
msgstr "Bestätige deine E-Mail-Adresse"
@@ -24291,8 +24680,11 @@ msgstr "Land oder Region"
msgid "IdentityVerification|Didn't receive a code?"
msgstr "Keinen Code erhalten?"
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
-msgstr "Du hast keinen Code erhalten? %{linkStart}Einen neuen Code schicken%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr "Hast du keinen Code erhalten? %{codeLinkStart}Neuen Code senden%{codeLinkEnd} oder %{phoneLinkStart}neue Telefonnummer eingeben%{phoneLinkEnd}"
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
msgid "IdentityVerification|Email update is only offered once."
msgstr "Das E-Mail-Update wird nur einmal angeboten."
@@ -24363,6 +24755,9 @@ msgstr "Neuen Code senden"
msgid "IdentityVerification|Send code"
msgstr "Code senden"
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "Etwas ist schiefgelaufen. Bitte versuche es erneut."
@@ -24652,9 +25047,6 @@ msgstr "Gruppe importieren"
msgid "Import group from file"
msgstr "Gruppe aus Datei importieren"
-msgid "Import groups"
-msgstr "Gruppen importieren"
-
msgid "Import history"
msgstr "Importverlauf"
@@ -24831,12 +25223,12 @@ msgstr "Importiere..."
msgid "Import|An error occurred while fetching import details."
msgstr "Beim Abrufen der Importdetails ist ein Fehler aufgetreten."
+msgid "Import|Failures for %{id}"
+msgstr "Fehler für %{id}"
+
msgid "Import|GitHub import details"
msgstr "GitHub-Importdetails"
-msgid "Import|GitLab Migration details"
-msgstr "GitLab-Migrationsdetails"
-
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
msgstr "Maximale dekomprimierte Dateigröße für Archive aus Importen (MiB)"
@@ -24849,6 +25241,9 @@ msgstr "Maximale Remote-Dateigröße für Importe aus externen Objektspeichern.
msgid "Import|Maximum size of decompressed archive."
msgstr "Maximale Größe des dekomprimierten Archivs."
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr "Darf nur die Basis-URL der GitLab-Quellinstanz enthalten."
+
msgid "Import|No import details"
msgstr "Keine Importdetails"
@@ -24864,6 +25259,9 @@ msgstr "Das Repository konnte nicht importiert werden."
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr "Es gibt kein gültiges Git-Repository unter dieser URL. Falls dein HTTP-Repository nicht öffentlich zugänglich ist, überprüfe deine Zugangsdaten."
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr "Timeout für die Dekomprimierung archivierter Dateien (Sekunden)"
@@ -25350,6 +25748,9 @@ msgstr "Gibt an, ob dieser Runner Jobs ohne Tags auswählen kann"
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "Informiere Benutzer(innen) ohne SSH-Schlüssel, dass einer hinzugefügt werden muss, um pushen über SSH zu ermöglichen."
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr "Infrastruktur"
@@ -25477,9 +25878,6 @@ msgstr "Manche Elemente werden nicht angezeigt, da das Projekt in der Datei „i
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr "Dieses Projekt wird in der Datei „insights.yml“ herausgefiltert (weitere Informationen findest du in der Konfigurationsdatei „projects.only“)."
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "Installiere GitLab Runner und stelle sicher, dass es ausgeführt wird."
-
msgid "Installation"
msgstr "Installation"
@@ -25866,9 +26264,6 @@ msgstr "Ungültige Datei."
msgid "Invalid format selected"
msgstr "Ungültiges Format ausgewählt"
-msgid "Invalid hash"
-msgstr "Ungültiger Hash"
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,11 +26470,11 @@ msgstr "Um mehr Nutzer hinzuzufügen, kann der/die Eigentümer(in) der Gruppe %{
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr "Um weitere Benutzer(innen) in diese Gruppe der obersten Ebene einladen zu können, musst du vorhandene Benutzer(innen) entfernen. Du kannst weiterhin vorhandene Benutzer(innen) aus der Gruppe der obersten Ebene hinzufügen, einschließlich aller Untergruppen und Projekte."
-msgid "InviteMembersModal|Username"
-msgstr ""
+msgid "InviteMembersModal|Username or name"
+msgstr "Benutzername oder Name"
-msgid "InviteMembersModal|Username or email address"
-msgstr "Benutzername oder E-Mail-Adresse"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr "Benutzername, Name oder E-Mail-Adresse"
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr "Du hast nur Platz für %{count} weitere %{members} in %{name}"
@@ -26405,14 +26800,14 @@ msgstr "Ticket-URL"
msgid "IssueTracker|New issue URL"
msgstr "URL zum Anlegen neuer Tickets"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "Die URL zum Erstellen eines Tickets in der externen Ticketverwaltung."
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
-msgstr "Die URL zum Projekt in der externen Ticketverwaltung."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "Die URL zum Anzeigen eines Tickets in der externen Ticketverwaltung. Muss %{colon_id} enthalten."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "Verwende Bugzilla als Ticketverwaltung für dieses Projekt."
@@ -26516,6 +26911,11 @@ msgstr "Erstellte Tickets pro Monat"
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr "Letzte 12 Monate (%{chartDateRange})"
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] "Letzter Monat (%{dateRange})"
+msgstr[1] "Letzte %{monthsCount} Monate (%{dateRange})"
+
msgid "IssuesAnalytics|Opened"
msgstr "Geöffnet"
@@ -26525,10 +26925,8 @@ msgstr "Ãœbersicht"
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Dein Filter hat leider keine Ergebnisse geliefert"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] "Dieser Monat (%{chartDateRange})"
-msgstr[1] "Letzte %{monthsCount} Monate (%{chartDateRange})"
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr "Dieser Monat (%{currentMonthYear})"
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr "Um deine Suche zu erweitern, ändere oder entferne die Filter in der Filterleiste oben."
@@ -26569,6 +26967,9 @@ msgstr "Es sieht so aus, als ob die Abhängigkeitssuche erfolgreich ausgeführt
msgid "It seems that there is currently no available data for code coverage"
msgstr "Es sieht so aus, als wären derzeit keine Daten zur Testabdeckung verfügbar."
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "Das bist du"
@@ -26698,6 +27099,9 @@ msgstr "Fehler beim Laden der Iterationsrhythmen."
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr "Nicht abgeschlossene Tickets werden der nächsten Iteration um %{strongStart}Mitternacht %{timezone}%{strongEnd} hinzugefügt."
+msgid "Iterations|Iteration cadence"
+msgstr "Iterationsrhythmus"
+
msgid "Iterations|Iteration cadences"
msgstr "Iterationsrhythmen"
@@ -26827,6 +27231,9 @@ msgstr "Vorlage für die Jira-GitLab-Benutzerzuordnung"
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr "Bist du ein(e) GitLab-Administrator(in)?"
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr "Namensraum kann nicht gefunden werden. Stelle sicher, dass du ausreichende Berechtigungen hast."
@@ -26896,15 +27303,15 @@ msgstr "Gruppe erfolgreich verknüpft"
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr "Gruppen sind die GitLab-Gruppen und -Untergruppen, die du mit dieser Jira-Instanz verknüpfst."
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr "Jira Connect-Anwendungs-ID"
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "Jira-Connect-Proxy-URL"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr "Gruppen verknüpfen"
@@ -26954,6 +27361,12 @@ msgid "JiraConnect|Tell us what you think!"
msgstr "Sag uns, was du davon hältst!"
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
+msgstr "Der/die Jira-Benutzer(in) ist kein(e) Administrator(in) der Seite oder des Unternehmens. Überprüfe die Berechtigungen in Jira und versuche es erneut."
+
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
msgstr ""
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
@@ -27004,6 +27417,9 @@ msgstr "Die Zugangsdaten für den Zugriff auf Jira dürfen nicht auf die Daten z
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr "Die Zugangsdaten für den Zugriff auf Jira sind nicht gültig. Überprüfe deine %{docs_link_start}Jira-Integrationszugangsdaten%{docs_link_end} und versuche erneut."
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr "in Branch %{branch_link}"
@@ -27163,8 +27579,8 @@ msgstr "Verwende ein Präfix, um Jira-Ticketschlüssel abzugleichen."
msgid "JiraService|Use custom transitions"
msgstr "Benutzerdefinierte Übergänge verwenden"
-msgid "JiraService|Use regular expression to match Jira issue keys."
-msgstr "Verwende einen regulären Ausdruck, um Jira-Vorgangsschlüssel abzugleichen."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
+msgstr "Verwende einen regulären Ausdruck, um Jira-Ticket-Schlüssel abzugleichen. Der reguläre Ausdruck muss der %{link_start}RE2-Syntax%{link_end} entsprechen. Falls leer, wird das Standardverhalten verwendet."
msgid "JiraService|Using Jira for issue tracking?"
msgstr "Verwaltest du deine Tickets mit Jira?"
@@ -27433,6 +27849,9 @@ msgstr "Dauer"
msgid "Job|Erase job log and artifacts"
msgstr "Job-Protokoll und Artefakte löschen"
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr "Externe Links"
@@ -27442,6 +27861,9 @@ msgstr "Fehlgeschlagen"
msgid "Job|Finished at"
msgstr "Beendet am"
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Jobartefakte"
@@ -27514,6 +27936,9 @@ msgstr "Job-Protokoll durchsuchen"
msgid "Job|Show complete raw"
msgstr "Zeige vollständige Rohdaten"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr "Ãœbersprungen"
@@ -27572,7 +27997,7 @@ msgid "Job|manual"
msgstr "Manuell"
msgid "Job|trigger token"
-msgstr ""
+msgstr "Trigger-Token"
msgid "Join GitLab today! You and your team can plan, build, and ship secure code all in one application. Get started here for free!"
msgstr "Werde noch heute Mitglied bei GitLab! Du und dein Team können sicheren Code in einer einzigen Anwendung planen, erstellen und versenden. Jetzt kostenlos loslegen!"
@@ -27634,9 +28059,6 @@ msgstr "Schlüssel (PEM)"
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr "Schlüsselergebnis"
-
msgid "Key:"
msgstr "Schlüssel:"
@@ -27673,6 +28095,9 @@ msgstr "Schlüssel"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27703,6 +28128,120 @@ msgstr "Kubernetes-Cluster"
msgid "Kubernetes deployment not found"
msgstr "Kubernetes-Bereitstellung nicht gefunden"
+msgid "KubernetesDashboard|Age"
+msgstr "Alter"
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr "Agent %{name}, ID #%{id}"
+
+msgid "KubernetesDashboard|Agents"
+msgstr "Agenten"
+
+msgid "KubernetesDashboard|Annotations"
+msgstr "Anmerkungen"
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr "Dashboard"
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr "Fehlgeschlagen"
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr "Art"
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr "Labels"
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr "Name"
+
+msgid "KubernetesDashboard|Namespace"
+msgstr "Namensraum"
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr "Ausstehend"
+
+msgid "KubernetesDashboard|Pod"
+msgstr "Pod"
+
+msgid "KubernetesDashboard|Pods"
+msgstr "Pods"
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr "In Ausführung"
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr "Status"
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr "Erfolgreich"
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27798,6 +28337,12 @@ msgstr "Labels können auf Tickets und Merge Requests angewendet werden. Markier
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr "Labels können auf Tickets, Merge Requests und Epics angewendet werden. Gruppenlabels sind für jedes Projekt innerhalb der Gruppe verfügbar."
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "Labels ohne Tickets in dieser Iteration:"
@@ -27839,8 +28384,8 @@ msgstr "Letzte 24 Stunden"
msgid "Last Accessed On"
msgstr "Letzter Zugriff am"
-msgid "Last Activity"
-msgstr "Letzte Aktivität"
+msgid "Last GitLab activity"
+msgstr ""
msgid "Last Name"
msgstr "Nachname"
@@ -27857,6 +28402,9 @@ msgstr "Letzter Zugriff am"
msgid "Last activity"
msgstr "Letzte Aktivität"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Letzter Commit"
@@ -28054,8 +28602,8 @@ msgstr "Erfahre mehr: %{url}"
msgid "LearnGitLab|%d task to go"
msgid_plural "LearnGitLab|%d tasks to go"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d ausstehende Aufgabe"
+msgstr[1] "%d ausstehende Aufgaben"
msgid "LearnGitLab|%{percentage}%{percentSymbol} completed"
msgstr "%{percentage} %{percentSymbol} abgeschlossen"
@@ -28141,9 +28689,6 @@ msgstr "CI/CD für dein erstes Projekt einrichten"
msgid "LearnGitLab|Set up your workspace"
msgstr "Richte deinen Arbeitsbereich ein"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "Starte eine kostenlose Testversion von GitLab Ultimate"
@@ -28166,7 +28711,7 @@ msgid "LearnGitLab|Use your new GitLab workflow to deploy your application, moni
msgstr "Mit deinem neuen GitLab-Workflow kannst du deine Anwendung bereitstellen, ihre Integrität überwachen und Sicherheitsfunktionen optimieren:"
msgid "LearnGitLab|You completed all tasks!"
-msgstr ""
+msgstr "Du hast alle Aufgaben erledigt!"
msgid "LearnGitLab|Your team is growing! You've successfully invited new team members to the %{projectName} project."
msgstr "Dein Team wächst! Du hast erfolgreich neue Teammitglieder zum Projekt %{projectName}eingeladen."
@@ -28174,6 +28719,9 @@ msgstr "Dein Team wächst! Du hast erfolgreich neue Teammitglieder zum Projekt %
msgid "LearnGitlab|- Included in trial"
msgstr "In der Testversion enthalten"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr "Nach Ablauf deiner 30-tägigen Testversion ist diese Funktion nur noch im %{planName}-Tarif verfügbar."
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr "Wende dich an deine/-n Administrator(in), um diese Funktion zu aktivieren. "
@@ -28189,9 +28737,6 @@ msgstr "Administratorliste anzeigen"
msgid "Leave"
msgstr "Verlassen"
-msgid "Leave admin mode"
-msgstr "Adminmodus verlassen"
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "Bearbeitungsmodus verlassen? Alle nicht gespeicherten Änderungen werden verloren gehen."
@@ -28390,8 +28935,8 @@ msgstr "Komponente"
msgid "Licenses|Components"
msgstr "Komponenten"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
-msgstr "Anzeige der im Projekt gefundenen Lizenzen, die nicht mit den Richtlinien des Projekts übereinstimmen, basierend auf dem %{linkStart}letzten erfolgreichen%{linkEnd} Scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
+msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Ziehe deine Lizenzdatei hierher oder %{linkStart}klicke zum Hochladen%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr "Liste"
msgid "List available repositories"
msgstr "Verfügbare Repositorys auflisten"
-msgid "List of all commits"
-msgstr "Liste aller Commits"
-
msgid "List of suitable GCP locations"
msgstr "Liste geeigneter GCP-Standorte"
@@ -28605,6 +29147,9 @@ msgstr "Mehr laden"
msgid "Load more users"
msgstr "Weitere Benutzer(innen) laden"
+msgid "Load new file"
+msgstr "Neue Datei laden"
+
msgid "Loading"
msgstr "Lade"
@@ -28651,7 +29196,7 @@ msgid "Lock File?"
msgstr "Datei sperren?"
msgid "Lock discussion"
-msgstr ""
+msgstr "Diskussion sperren"
msgid "Lock label after a merge request is merged"
msgstr "Label sperren, nachdem ein Merge Request zusammengeführt wurde"
@@ -28675,7 +29220,7 @@ msgid "Lock the discussion"
msgstr "Diskussion schliessen"
msgid "Lock this discussion? Only %{strongStart}project members%{strongEnd} will be able to comment."
-msgstr ""
+msgstr "Diese Diskussion sperren? Anschließend können nur noch %{strongStart}Projektmitglieder%{strongEnd} Kommentare erstellen."
msgid "Lock to current projects"
msgstr "Auf aktuelle Projekte beschränken"
@@ -28693,44 +29238,20 @@ msgid "Locked the discussion."
msgstr "Die Diskussion wurde gesperrt."
msgid "Locking discussion"
-msgstr ""
+msgstr "Diskussion wird gesperrt"
msgid "Locks the discussion."
msgstr "Diskussion sperren."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "Ãœber GitLab"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr "Vertrieb kontaktieren"
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "GitLab erkunden"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "Erste Schritte"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr "GitLab Learn"
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr "GitLab-Dokumente"
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr "GitLab: die DevOps-Plattform"
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr "Wie GitLab im Vergleich abschneidet"
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr "GitLab installieren"
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr "Preise"
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr "Sprich mit einem Experten/einer Expertin"
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr "Gründe, die für GitLab sprechen"
@@ -28758,12 +29279,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr "Kandidat(in) löschen?"
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr "Experiment löschen?"
@@ -28818,9 +29333,6 @@ msgstr "Mailgun-HTTP-Webhook-Signaturschlüssel"
msgid "Mailgun events"
msgstr "Mailgun-Ereignisse"
-msgid "Main menu"
-msgstr "Hauptmenü"
-
msgid "Maintainer"
msgstr "Betreuer(in)"
@@ -29407,7 +29919,7 @@ msgid "Medium vulnerabilities present"
msgstr "Mittlere Sicherheitslücken vorhanden"
msgid "Member"
-msgstr ""
+msgstr "Mitglied"
msgid "Member since"
msgstr "Mitglied seit"
@@ -29424,101 +29936,104 @@ msgstr "%{member_name} hat dich eingeladen, GitLab beizutreten"
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr "Einladung zum Beitritt zu %{project_or_group} %{project_or_group_name}"
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr "Aktionen"
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr "Neue Rolle hinzufügen"
-msgid "MemberRoles|Are you sure you want to delete this role?"
-msgstr "Bist du sicher, dass du diese Rolle löschen möchtest?"
+msgid "MemberRole|Are you sure you want to delete this role?"
+msgstr "Möchtest du diese Rolle wirklich löschen?"
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr "Basisrolle"
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr "Basisrolle, die als Vorlage verwendet werden soll"
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
-msgstr ""
+msgid "MemberRole|Could not fetch available permissions: %{message}"
+msgstr "Verfügbare Berechtigungen konnten nicht abgerufen werden: %{message}"
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr "Neue Rolle erstellen"
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
+msgstr "Benutzerdefinierte Berechtigungen:"
+
+msgid "MemberRole|Custom roles"
msgstr "Benutzerdefinierte Rollen"
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
-msgstr ""
+msgid "MemberRole|Custom roles based on %{accessLevel}"
+msgstr "Benutzerdefinierte Rollen basierend auf %{accessLevel} "
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Delete role"
msgstr "Rolle löschen"
-msgid "MemberRoles|Description"
+msgid "MemberRole|Description"
msgstr "Beschreibung"
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Enter a short name."
msgstr "Gib einen Kurznamen ein."
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Failed to create role."
msgstr "Rolle konnte nicht erstellt werden."
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to delete the role."
msgstr "Rolle konnte nicht gelöscht werden."
-msgid "MemberRoles|Failed to fetch roles."
-msgstr "Fehler beim Abrufen der Rollen."
+msgid "MemberRole|Failed to fetch roles."
+msgstr "Fehler beim Abrufen von Rollen."
-msgid "MemberRoles|ID"
+msgid "MemberRole|ID"
msgstr "ID"
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Incident manager"
msgstr "Vorfall-Manager"
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
-msgstr ""
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
+msgstr "Stelle sicher, dass diese Gruppe auf der Ultimate-Ebene ist."
-msgid "MemberRoles|Name"
+msgid "MemberRole|Name"
msgstr "Name"
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|No custom roles for this group"
msgstr "Keine benutzerdefinierten Rollen für diese Gruppe"
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Permissions"
msgstr "Berechtigungen"
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Role name"
msgstr "Rollenname"
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role successfully created."
msgstr "Rolle erfolgreich erstellt."
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully deleted."
msgstr "Rolle erfolgreich gelöscht."
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr "Wähle eine Standardrolle aus, um Berechtigungen hinzuzufügen."
-msgid "MemberRoles|Standard roles"
-msgstr ""
+msgid "MemberRole|Standard roles"
+msgstr "Standardrollen"
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr "Wähle „Neue Rolle hinzufügen“ aus, um eine neue Rolle hinzuzufügen."
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr "Wähle eine Gruppe aus und klicke auf „Neue Rolle hinzufügen“, um eine neue Rolle hinzuzufügen."
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
-msgstr ""
-
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
-msgstr "%{requirement} muss aktiviert sein, um %{permission} zu aktivieren."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
+msgstr "Um eine benutzerdefinierte Rolle zu löschen, stelle sicher, dass diese Rolle keinem Gruppenmitglied zugewiesen ist"
msgid "MemberRole|can't be changed"
msgstr "kann nicht geändert werden"
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
-msgstr "Kann nicht geändert werden, da sie bereits einem/einer Benutzer(in) zugewiesen ist. Bitte erstelle stattdessen eine neue Mitgliedsrolle"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
+msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
msgstr "Kann nicht gelöscht werden, da sie bereits einem/einer Benutzer(in) zugewiesen ist. Bitte trenne die Mitgliedsrolle vor dem Löschen von allen Benutzer(inne)n."
@@ -29785,10 +30300,10 @@ msgid "Merge in progress"
msgstr "Zusammenführen läuft"
msgid "Merge now and don't restart train"
-msgstr ""
+msgstr "Jetzt zusammenführen und Zug nicht neu starten"
msgid "Merge now and restart train"
-msgstr ""
+msgstr "Jetzt zusammenführen und Zug neu starten"
msgid "Merge options"
msgstr "Merge-Optionen"
@@ -29814,6 +30329,9 @@ msgstr "Merge-Request-Genehmigungen"
msgid "Merge request author cannot push to target project"
msgstr "Merge Request-Autor(in) kann nicht zum Zielprojekt pushen"
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr "Merge Request Änderungszusammenfassung"
@@ -29872,7 +30390,7 @@ msgid "Merge requests can't be merged if the status checks did not succeed or ar
msgstr "Merge Requests können nicht zusammengeführt werden, wenn die Statusüberprüfung nicht erfolgreich war oder noch läuft."
msgid "Merge train pipelines continue without the merged changes."
-msgstr ""
+msgstr "Merge-Zug-Pipelines werden ohne die zusammengeführten Änderungen fortgesetzt."
msgid "Merge trains"
msgstr "Merge-Züge"
@@ -30195,6 +30713,9 @@ msgstr "Beim Aktualisieren deines Images ist ein Fehler aufgetreten."
msgid "MetricImages|There was an issue uploading your image."
msgstr "Beim Hochladen deines Images ist ein Fehler aufgetreten."
+msgid "Metrics"
+msgstr "Metriken"
+
msgid "Metrics - Grafana"
msgstr "Metriken – Grafana"
@@ -30228,15 +30749,9 @@ msgstr "Metrik löschen"
msgid "Metrics|Delete metric?"
msgstr "Metrik löschen?"
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr "Metrik bearbeiten"
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr "Zum Gruppieren ähnlicher Metriken"
@@ -30246,15 +30761,9 @@ msgstr "Bezeichnung der y-Achse (normalerweise die Einheit). Die x-Achse repräs
msgid "Metrics|Legend label (optional)"
msgstr "Legendenbeschriftung (optional)"
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "Muss eine gültige PromQL-Abfrage sein."
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "Neue Metrik"
@@ -30267,9 +30776,6 @@ msgstr "Prometheus-Abfragedokumentation"
msgid "Metrics|There was an error trying to validate your query"
msgstr "Fehler beim Versuch, deine Anfrage zu validieren"
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr "Bezeichnung der Einheit"
@@ -30306,6 +30812,9 @@ msgstr "z. B. Anfr./Sek."
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr "Min. Wert"
msgid "Minimal Access"
msgstr "Minimaler Zugriff"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr "Minimiere das Risiko, dass an ein Repository in dieser GitLab-Instanz Geheimnisse committet werden."
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "Die Mindestkapazität, die verfügbar sein muss, bevor wir vorsorglich weitere Mirrors planen."
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Minuten"
@@ -30626,9 +31141,6 @@ msgstr "Autor"
msgid "MlExperimentTracking|CI Job"
msgstr "CI-Job"
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr "Kandidat entfernt"
@@ -30644,6 +31156,9 @@ msgstr "Erstellt am"
msgid "MlExperimentTracking|Delete candidate"
msgstr "Kandidat löschen"
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr "Kandidat(in) löschen?"
+
msgid "MlExperimentTracking|Delete experiment"
msgstr "Experiment löschen"
@@ -30674,36 +31189,18 @@ msgstr "Kandidaten filtern"
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr "Probiere die Funktion Modellexperimente aus!"
-msgid "MlExperimentTracking|ID"
-msgstr "ID"
-
-msgid "MlExperimentTracking|Info"
-msgstr "Info"
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr "Protokollierte Kandidaten für Experiment"
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr "MLflow-Ausführungs-ID"
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr "Nachverfolgung von Experimenten mit maschinellem Lernen"
-msgid "MlExperimentTracking|Metadata"
-msgstr "Metadaten"
-
-msgid "MlExperimentTracking|Metrics"
-msgstr "Metriken"
-
msgid "MlExperimentTracking|Model candidate details"
msgstr "Modellkandidatendetails"
msgid "MlExperimentTracking|Model experiments"
msgstr "Modellexperimente"
-msgid "MlExperimentTracking|Model performance"
-msgstr ""
-
msgid "MlExperimentTracking|Model removed"
msgstr ""
@@ -30719,27 +31216,9 @@ msgstr "Keine Kandidaten"
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr "Keine Kandidaten für die Abfrage angemeldet. Erstelle neue Kandidaten mit dem MLflow-Client."
-msgid "MlExperimentTracking|No logged metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr ""
-
msgid "MlExperimentTracking|No name"
msgstr "Kein Name"
-msgid "MlExperimentTracking|Parameters"
-msgstr "Parameter"
-
-msgid "MlExperimentTracking|Status"
-msgstr "Status"
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr "Ausgelöst durch"
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] ""
@@ -30750,22 +31229,109 @@ msgid_plural "MlModelRegistry|%d versions"
msgstr[0] ""
msgstr[1] ""
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr "Artefakte"
+
+msgid "MlModelRegistry|CI Info"
+msgstr "CI-Info"
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr "Kandidat(in) ist nicht mit einem CI-Build verknüpft"
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr ""
+msgid "MlModelRegistry|Experiment"
+msgstr "Experiment"
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr "ID"
+
+msgid "MlModelRegistry|Info"
+msgstr "Info"
+
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr "MLflow-Ausführungs-ID"
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr "Metadaten"
+
+msgid "MlModelRegistry|Model performance"
+msgstr "Performance des Modells"
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
msgstr ""
+msgid "MlModelRegistry|No description provided"
+msgstr "Keine Beschreibung angegeben"
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr "Keine Metadaten erfasst"
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr "Keine Metriken erfasst"
+
+msgid "MlModelRegistry|No logged parameters"
+msgstr "Keine Parameter erfasst"
+
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr "Parameter"
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr "Status"
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr "Ausgelöst durch"
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr "Schließen"
msgid "Model experiments"
msgstr "Modellexperimente"
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr "Modell-Registry"
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "Geändert"
@@ -31360,9 +31932,6 @@ msgstr "Code"
msgid "Navigation|Deploy"
msgstr "Bereitstellung"
-msgid "Navigation|Enter admin mode"
-msgstr "Adminmodus aktivieren"
-
msgid "Navigation|Explore"
msgstr "Erkunden"
@@ -31375,9 +31944,6 @@ msgstr "Häufig besuchte Projekte"
msgid "Navigation|Groups you visit often will appear here."
msgstr "Gruppen, die du oft besuchst, werden hier angezeigt."
-msgid "Navigation|Leave admin mode"
-msgstr "Adminmodus verlassen"
-
msgid "Navigation|Manage"
msgstr "Verwalten"
@@ -31806,15 +32372,15 @@ msgstr "Keine Daten"
msgid "No data available"
msgstr "Keine Daten verfügbar"
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr "Keine Bereitstellungen erkannt. Verwende Umgebungen, um die kontinuierliche Bereitstellung deiner Software zu steuern. %{linkStart}Erfahre mehr über Bereitstellungsjobs.%{linkEnd}"
-
msgid "No deployments found"
msgstr "Keine Deployments gefunden"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr "Es wurden keine E-Mail-Teilnehmer hinzugefügt. Entweder wurden keine bereitgestellt, oder sie existieren bereits."
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "Kein Endpunkt angegeben"
@@ -31920,6 +32486,9 @@ msgstr "Keine anderen Labels mit einem solchen Namen oder einer solchen Beschrei
msgid "No parent group"
msgstr "Keine übergeordnete Gruppe"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "Kein Plan"
@@ -32066,18 +32635,6 @@ msgstr "Normaler Text"
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr "Die neue Navigationseinstellung konnte nicht aktualisiert werden. Bitte versuche es später erneut."
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr "Umgestaltete Navigation"
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "Neue Navigation"
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "Umschalten der neuen Navigation"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr "Nicht alle Browser unterstützen WebAuthn. Daher musst du zuerst eine Zwei-Faktor-Authentifizierungs-App einrichten. Auf diese Weise kannst du dich immer anmelden, auch über einen nicht unterstützten Browser."
@@ -32087,6 +32644,9 @@ msgstr "Nicht alle Browser unterstützen WebAuthn. Du musst deine Wiederherstell
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "Es wurden noch nicht alle Daten verarbeitet. Die Genauigkeit des Diagramms für den ausgewählten Zeitraum ist begrenzt."
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr "Nicht zutreffend."
@@ -32102,6 +32662,9 @@ msgstr "Für geschützte Branches nicht verfügbar"
msgid "Not confidential"
msgstr "Nicht vertraulich"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "Nicht gefunden"
@@ -32120,6 +32683,9 @@ msgstr "Nicht gestartet"
msgid "Not supported"
msgstr "Nicht unterstützt"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Notiz"
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "Prüfer(in): %{users}"
msgstr[1] "Prüfer(innen): %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr "Merge Request-Prüfer(in) ändern"
@@ -32329,6 +32898,12 @@ msgstr "Benachrichtigungen aktiviert"
msgid "Notify users by email when sign-in location is not recognized."
msgstr "Benutzer(innen) per E-Mail benachrichtigen, wenn der Anmeldeort nicht erkannt wird"
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr "Das Ticket %{issue_reference_link} von %{author_link} ist bald fällig."
@@ -32377,6 +32952,12 @@ msgstr "%{paragraph_start}Hallo %{name}!%{paragraph_end} %{paragraph_start}Ein n
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr "%{project_link_start}Lade%{project_link_end} den Projektexport herunter."
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr "%{singular_or_plural_line} %{error_lines}: Der Typ des Arbeitsgegenstandes kann nicht gefunden werden oder wird nicht unterstützt."
@@ -32407,18 +32988,15 @@ msgstr "Ein Remote-Mirror-Update ist fehlgeschlagen."
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr "Nach Ablauf kannst Du %{a_start} ein neues %{a_end} anfordern."
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr "Alle Diskussionen zum Merge Request %{mr_link} wurden von %{name} gelöst"
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr "Und %{total_stripped_new_commits_count} mehr"
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "Beauftragte(r) von %{fromNames} zu %{toNames} geändert"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "Beauftragte(r) geändert zu %{toNames}"
-
msgid "Notify|Author: %{author_name}"
msgstr "Autor(in): %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr "Fehler gefunden in %{singular_or_plural_line}: %{error_lines}. Überprü
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr "Fingerabdruck: %{fingerprint}"
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr "Hier sind die Ergebnisse für deinen CSV-Import für %{project_link}."
@@ -32488,6 +33069,9 @@ msgstr "Wenn du diese Domain nicht mehr mit GitLab Pages verwenden möchtest, en
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr "Falscher %{code_open}From%{code_end}-Header:"
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr "Falsches Verifizierungstoken:"
@@ -32578,6 +33162,9 @@ msgstr "Projekt %{project_name} konnte nicht exportiert werden."
msgid "Notify|Project %{project_name} was exported successfully."
msgstr "Projekt %{project_name} wurde erfolgreich exportiert."
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr "Remote-Mirror"
@@ -32593,6 +33180,9 @@ msgstr "Der/die Administrator(in) hat ein Konto für Dich erstellt. Du bist nun
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "Die Auto-DevOps-Pipeline ist für die Pipeline %{pipeline_link} fehlgeschlagen und wurde für %{project_link} deaktiviert. Um die Auto-DevOps-Pipeline mit deinem Projekt zu verwenden, überprüfe bitte %{supported_langs_link}, passe dein Projekt entsprechend an und aktiviere die Auto-DevOps-Pipeline in deinen %{settings_link}."
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr "Der Diff für diese Datei war nicht enthalten, weil er zu groß ist."
@@ -32605,8 +33195,8 @@ msgstr "Der Download-Link läuft in 24 Stunden ab."
msgid "Notify|The errors we encountered were:"
msgstr "Die aufgetretenen Fehler waren:"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "Die angegebenen Zugangsdaten (Benutzername und Passwort) wurden vom SMTP-Server abgelehnt."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr "Die angegebenen Zugangsdaten (Benutzername und Passwort) wurden vom SMTP-Server abgelehnt oder du musst explizit eine Authentifizierungsmethode festlegen."
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
msgstr "Das Projekt befindet sich jetzt unter %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr "Anzahl der Mitarbeiter"
msgid "Number of files touched"
msgstr "Anzahl der verwendeten Dateien"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "Anzahl der Replikas"
@@ -32752,35 +33345,56 @@ msgstr "Das folgende OKR des %{author_link}s erfordert eine Aktualisierung: %{wo
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr "Eine Aktualisierung ist fällig am: %{update_due_date} "
-msgid "OKR|Existing key result"
-msgstr "Vorhandenes Schlüsselergebnis"
-
-msgid "OKR|Existing objective"
-msgstr "Vorhandenes Ziel"
-
-msgid "OKR|New key result"
-msgstr "Neues Schlüsselergebnis"
+msgid "OWASP Top 10 2017"
+msgstr ""
-msgid "OKR|New objective"
-msgstr "Neues Ziel"
+msgid "OWASP Top 10 2021"
+msgstr ""
msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr "Das Objekt existiert nicht auf dem Server oder du hast keine Berechtigung, auf dieses zuzugreifen"
-msgid "Objective"
-msgstr "Ziel"
+msgid "ObservabilityMetrics|Date"
+msgstr "Datum"
+
+msgid "ObservabilityMetrics|Description"
+msgstr "Beschreibung"
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr "Fehler: Die Metrikdetails konnten nicht geladen werden. Versuch die Seite neu zu laden."
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr "Metriken konnten nicht geladen werden."
+
+msgid "ObservabilityMetrics|Metric Details"
+msgstr "Metrik Details"
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr "Name"
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr "Metriken werden gesucht, beginnend mit …"
+
+msgid "ObservabilityMetrics|Type"
+msgstr "Typ"
+
+msgid "ObservabilityMetrics|Value"
+msgstr "Wert"
+
msgid "Observability|Enable"
msgstr ""
msgid "Observability|Error: Failed to enable GitLab Observability. Please retry later."
-msgstr ""
+msgstr "Fehler: GitLab-Observability konnte nicht aktiviert werden. Bitte versuche es später erneut."
msgid "Observability|Error: Failed to load page. Try reloading the page."
-msgstr ""
+msgstr "Fehler: Die Seite konnte nicht geladen werden. Versuche, die Seite neu zu laden."
msgid "Observability|Get started with GitLab Observability"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr "Nur für dich sichtbar"
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr "Nur „Informant“-Rollen und höher in mindestens den Stufen Premium/Silber können die Produktivitätsanalyse einsehen."
-msgid "Oops, are you sure?"
-msgstr "Bist du sicher?"
-
msgid "Open"
msgstr "Offen"
@@ -33356,9 +33967,6 @@ msgstr "Neues Fenster öffnen"
msgid "Open raw"
msgstr "Rohversion öffnen"
-msgid "Open sidebar"
-msgstr "Seitenleiste öffnen"
-
msgid "Open: %{open}"
msgstr "Offen: %{open}"
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr "Eine Gruppe ist eine Ansammlung mehrerer Projekte und funktioniert wie ein Ordner, wenn du deine Projekte in einer Gruppe organisierst."
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr "Beim Ändern der URL deiner Organisation ist ein Fehler aufgetreten. Bitte versuche es erneut."
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr "Organisations-URL ändern"
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr "Das Ändern der URL einer Organisation kann unerwünschte Nebeneffekte haben."
+
msgid "Organization|Choose what organization you want to see by default."
msgstr "Wähle aus, welche Organisation du standardmäßig sehen möchtest."
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr "Die Organisations-URL ist zu kurz (mindestens 2 Zeichen)."
+
+msgid "Organization|Organization URL successfully changed."
+msgstr "Die Organisations-URL wurde erfolgreich geändert."
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr "Organisationen"
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr "Führe erweiterte Optionen aus, wie etwa das Löschen der Organisation."
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr "Public – Auf die Organisation kann ohne Authentifizierung zugegriffen werden."
@@ -33659,6 +34288,66 @@ msgstr "Ãœbersicht"
msgid "Overwrite diverged branches"
msgstr "Ãœberschreibe abweichende Branches"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "Besitzer(in): %{image_tag}"
@@ -33728,6 +34417,9 @@ msgstr "Paket erfolgreich gelöscht"
msgid "Package file size limits"
msgstr "Größenlimit für Paketdateien"
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr "Paketrezept existiert bereits"
@@ -33803,6 +34495,9 @@ msgstr "App-Gruppe: %{group}"
msgid "PackageRegistry|App name: %{name}"
msgstr "App-Name: %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr "E-Mail-Adresse des Autors bzw. der Autorin: %{authorEmail} "
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr "Gebaut nach Pipeline %{link} ausgelöst am %{datetime} durch %{author}"
@@ -34013,6 +34708,9 @@ msgstr "Instanzebene"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr "Ungültiges Paket: Metadatenextraktion fehlgeschlagen"
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr "Schlüsselwörter: %{keywords} "
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr "Zuletzt heruntergeladene %{dateTime}"
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] "Paket hat %{updatesCount} Aktualisierung archiviert"
msgstr[1] "Paket hat %{updatesCount} archivierte Aktualisierungen"
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr "Paket von Commit %{link} auf Branch %{branch} aktualisiert, von Pipeline %{pipeline} erstellt und in der Registry veröffentlicht am %{datetime}"
@@ -34096,6 +34800,9 @@ msgstr "Pip-Befehl"
msgid "PackageRegistry|Project-level"
msgstr "Projektebene"
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr "Pakete veröffentlichen, wenn der Name oder die Version mit dieser Regex übereinstimmt."
@@ -34114,6 +34821,9 @@ msgstr "Veröffentlicht in Projekt %{projectName}, am: %{date}"
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr "Veröffentlicht in der %{project} Paket-Registry %{datetime}"
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -34180,6 +34890,9 @@ msgstr "Leider hat dein Filter keine Ergebnisse geliefert"
msgid "PackageRegistry|Source project located at %{link}"
msgstr "Quellprojekt befindet sich unter %{link}"
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr "Zusammenfassung: %{summary} "
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr "SHA des Ziels: %{sha}"
@@ -34216,6 +34929,9 @@ msgstr "Fehler beim Abrufen der Versionsinformationen für das Paket"
msgid "PackageRegistry|Unable to load package"
msgstr "Paket konnte nicht geladen werden"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr "Wenn ein Paket mit dem gleichen Namen und der gleichen Version in die Registry hochgeladen wird, werden weitere Assets zum Paket hinzugefügt. Um Speicherplatz zu sparen, solltest du nur die neuesten Assets behalten."
@@ -34357,6 +35073,9 @@ msgstr "Passwort-Authentifizierung ist nicht verfügbar."
msgid "Password confirmation"
msgstr "Passwort bestätigen"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "Passwort erfolgreich geändert"
@@ -34504,6 +35223,9 @@ msgstr "Führe Codeüberprüfungen durch und verbessere die Zusammenarbeit mit M
msgid "Perform common operations on GitLab project"
msgstr "Allgemeine Operationen im GitLab-Projekt ausführen"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "Leistungsoptimierung"
@@ -34648,6 +35370,9 @@ msgstr "Dein Projekt %{projectName} ist nicht in einer Gruppe"
msgid "Phone"
msgstr "Telefon"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr "Gib einen gültigen Code ein.&nbsp;"
@@ -35065,6 +35790,30 @@ msgstr "Web IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Pipeline: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr "%{filename} hinzufügen "
@@ -35125,12 +35874,6 @@ msgstr "Pipelines für neue Änderungen führen dazu, dass ältere ausstehende o
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "Pipeline-Einstellungen für „%{project_name}“ wurden erfolgreich aktualisiert."
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr "KI-Assistent"
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr "Chat mit KI-Assistent"
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr "„Hello World“ mit GitLab CI"
@@ -35149,9 +35892,6 @@ msgstr "Wenn du einen Trigger widerrufst, werden sämtliche Prozesse, die ihn ve
msgid "Pipelines|CI lint"
msgstr "CI-Lint"
-msgid "Pipelines|CI/CD Catalog"
-msgstr "CI/CD-Katalog"
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr "Untergeordnete Pipeline (%{linkStart}übergeordnet%{linkEnd})"
@@ -35224,6 +35964,9 @@ msgstr "Pipelines laden"
msgid "Pipelines|Loading pipelines"
msgstr "Pipelines werden geladen"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr "Von Jenkins zu GitLab CI/CD migrieren"
+
msgid "Pipelines|More Information"
msgstr "Weitere Informationen"
@@ -35260,6 +36003,12 @@ msgstr "Geplant"
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Beim Löschen des Runner-Caches ist etwas schief gelaufen."
+msgid "Pipelines|Start with a migration plan"
+msgstr "Beginne mit einem Migrationsplan"
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr "Nutze einfache, skalierbare Pipelines und CI/CD-fähige Funktionen. Du kannst dir Integrationsergebnisse, Sicherheitsscans, Tests, Testabdeckung und mehr direkt in Merge Requests anzeigen lassen!"
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr "Der Namensraum %{namespace_name} hat %{percentage} %% oder weniger Pipeline-Minuten auf geteilten Runnern übrig. Nachdem diese abgelaufen sind, werden keine Jobs oder Pipelines mehr in den Projekten des Namensraums ausgeführt."
@@ -35303,13 +36052,13 @@ msgid "Pipelines|This pipeline is stuck"
msgstr "Die Pipeline steckt fest"
msgid "Pipelines|This pipeline ran on the contents of the merge request combined with the contents of all other merge requests queued for merging into the target branch."
-msgstr ""
+msgstr "Diese Pipeline hat den Inhalt dieser Merge Request zusammen mit dem Inhalt aller anderen Merge Requests in der Warteschlange für die Zusammenführung in den Zielbranch bearbeitet."
msgid "Pipelines|This pipeline ran on the contents of the merge request combined with the contents of the target branch."
-msgstr ""
+msgstr "Diese Pipeline hat den Inhalt dieser Merge Request zusammen mit dem Inhalt des Zielbranchs bearbeitet."
msgid "Pipelines|This pipeline ran on the contents of the merge request's source branch, not the target branch."
-msgstr ""
+msgstr "Diese Pipeline hat den Quellbranch-Inhalt für diese Merge Request bearbeitet, nicht den des Zielbranchs."
msgid "Pipelines|This pipeline will run code originating from a forked project merge request. This means that the code can potentially have security considerations like exposing CI variables."
msgstr "Diese Pipeline führt Code aus, der von einem Merge Request für ein geforktes Projekt stammt und daher Sicherheitsprobleme enthalten kann, wie etwa offengelegte CI-Variablen."
@@ -35393,7 +36142,7 @@ msgid "Pipelines|merge train"
msgstr "Merge-Zug"
msgid "Pipelines|merged results"
-msgstr ""
+msgstr "Zusammengeführte Ergebnisse"
msgid "Pipelines|stuck"
msgstr "Feststeckend"
@@ -36116,7 +36865,7 @@ msgid "Preferences|This feature is experimental and translations are not yet com
msgstr "Diese Funktion ist experimentell und die Ãœbersetzungen sind noch nicht abgeschlossen."
msgid "Preferences|Time format"
-msgstr ""
+msgstr "Zeit-Format"
msgid "Preferences|Time preferences"
msgstr "Zeiteinstellungen"
@@ -36178,9 +36927,6 @@ msgstr "Vorschau der Nutzdaten"
msgid "Previous"
msgstr "Vorherige"
-msgid "Previous Artifacts"
-msgstr "Vorherige Artefakte"
-
msgid "Previous commit"
msgstr "Vorheriger Commit"
@@ -36263,7 +37009,7 @@ msgid "Product analytics"
msgstr "Produktanalytik"
msgid "Product analytics requires Experiment and Beta features to be enabled."
-msgstr ""
+msgstr "Für die Produktanalyse müssen die Experiment- und Beta-Funktionen aktiviert sein."
msgid "ProductAnalytics|1. Add the NPM package to your package.json using your preferred package manager"
msgstr "1. Füge das NPM-Paket mit deinem bevorzugten Paketmanager zu deiner package.json hinzu"
@@ -36296,7 +37042,7 @@ msgid "ProductAnalytics|All Pages"
msgstr "Alle Seiten"
msgid "ProductAnalytics|All Returning Users Compared"
-msgstr ""
+msgstr "Alle wiederkehrenden Benutzer(innen) im Vergleich"
msgid "ProductAnalytics|All Sessions Compared"
msgstr "Alle Sitzungen im Vergleich"
@@ -36305,7 +37051,7 @@ msgid "ProductAnalytics|An error occurred while fetching data. Refresh the page
msgstr "Beim Abrufen der Daten ist ein Fehler aufgetreten. Aktualisiere die Seite, um es erneut zu versuchen."
msgid "ProductAnalytics|Analytics events by month"
-msgstr ""
+msgstr "Analyseereignisse nach Monat"
msgid "ProductAnalytics|Analyze your product with Product Analytics"
msgstr "Analysiere dein Produkt mit Produktanalyse"
@@ -36329,7 +37075,7 @@ msgid "ProductAnalytics|Compares all events against each other"
msgstr "Vergleicht alle Ereignisse miteinander"
msgid "ProductAnalytics|Compares all returning users against each other"
-msgstr ""
+msgstr "Vergleicht alle wiederkehrenden Benutzer(innen) miteinander"
msgid "ProductAnalytics|Compares all user sessions against each other"
msgstr "Vergleicht alle Benutzersitzungen mit einander"
@@ -36347,7 +37093,7 @@ msgid "ProductAnalytics|Cube API key"
msgstr "Cube API-Schlüssel"
msgid "ProductAnalytics|Current month to date"
-msgstr ""
+msgstr "Aktueller Monat bis heute"
msgid "ProductAnalytics|Details on how to configure product analytics to collect data."
msgstr "Details zur Konfiguration der Produktanalyse für die Datenerfassung."
@@ -36374,22 +37120,25 @@ msgid "ProductAnalytics|For the product analytics dashboard to start showing you
msgstr "Füge den Analytics-Tracking-Code zu deinem Projekt hinzu, um Daten im Produktanalyse-Dashboard anzuzeigen."
msgid "ProductAnalytics|Get started with product analytics"
+msgstr "Erste Schritte mit der Produktanalyse"
+
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
msgstr ""
msgid "ProductAnalytics|How many sessions a user has"
msgstr "Anzahl der Sitzungen eines/einer Benutzer(in)"
msgid "ProductAnalytics|How often users returned compared to all sessions"
-msgstr ""
+msgstr "Häufigkeit wiederkehrender Benutzer(innen) im Vergleich zu allen Sitzungen"
msgid "ProductAnalytics|Instrument your application"
msgstr "Instrumentiere deine Anwendung"
msgid "ProductAnalytics|Learn how to enable product analytics"
-msgstr ""
+msgstr "Erfahre, wie du Produktanalysen aktivieren kannst."
msgid "ProductAnalytics|Learn how to onboard projects"
-msgstr ""
+msgstr "Erfahre, wie du Projekte einbinden kannst."
msgid "ProductAnalytics|Link Click Events"
msgstr ""
@@ -36407,7 +37156,7 @@ msgid "ProductAnalytics|Measure all or specific Page Views"
msgstr "Alle oder bestimmte Seitenaufrufe messen"
msgid "ProductAnalytics|Measure all returning users"
-msgstr ""
+msgstr "Alle wiederkehrenden Benutzer(innen) erfassen"
msgid "ProductAnalytics|Measure all sessions"
msgstr "Alle Sitzungen messen"
@@ -36419,10 +37168,10 @@ msgid "ProductAnalytics|Measuring"
msgstr "Messung"
msgid "ProductAnalytics|Month"
-msgstr ""
+msgstr "Monat"
msgid "ProductAnalytics|No projects found"
-msgstr ""
+msgstr "Keine Projekte gefunden"
msgid "ProductAnalytics|On what do you want to get insights?"
msgstr "Worüber möchtest du Einblicke erhalten? "
@@ -36431,28 +37180,28 @@ msgid "ProductAnalytics|Page Views"
msgstr "Seitenaufrufe"
msgid "ProductAnalytics|Percentage of Users Returning"
-msgstr ""
+msgstr "Prozentsatz der wiederkehrenden Benutzer(innen)"
msgid "ProductAnalytics|Previous month"
-msgstr ""
+msgstr "Vorheriger Monat"
msgid "ProductAnalytics|Product Analytics"
-msgstr ""
+msgstr "Produktanalyse"
msgid "ProductAnalytics|Product analytics onboarding"
msgstr "Produktanalytik Onboarding"
msgid "ProductAnalytics|Product analytics usage is calculated based on the total number of events received from projects within the group. %{linkStart}Learn more%{linkEnd}."
-msgstr ""
+msgstr "Die Nutzung der Produktanalyse wird anhand der Gesamtzahl der Ereignisse aus Projekten innerhalb der Gruppe berechnet. %{linkStart}Mehr erfahren%{linkEnd}."
msgid "ProductAnalytics|Projects"
-msgstr ""
+msgstr "Projekte"
msgid "ProductAnalytics|Projects (%{maxProjects} of %{totalProjects} shown)"
-msgstr ""
+msgstr "Projekte (%{maxProjects} von %{totalProjects} angezeigt)"
msgid "ProductAnalytics|Returning Users"
-msgstr ""
+msgstr "Wiederkehrende Benutzer(innen)"
msgid "ProductAnalytics|SDK application ID"
msgstr "SDK-Anwendungs-ID"
@@ -36479,9 +37228,12 @@ msgid "ProductAnalytics|Snowplow configurator connection string"
msgstr "Verbindungszeichenfolge des Snowplow-Konfigurators"
msgid "ProductAnalytics|Something went wrong while loading product analytics usage data. Refresh the page to try again."
-msgstr ""
+msgstr "Fehler beim Laden der Produktanalyse-Nutzungsdaten. Bitte aktualisiere die Seite, um es erneut zu versuchen."
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
+msgstr "Mit dem Speichern, Abfragen und Visualisieren quantitativer Daten erhältst du Einblicke in den Nutzwert."
+
+msgid "ProductAnalytics|Tell us what you think!"
msgstr ""
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
@@ -36494,31 +37246,31 @@ msgid "ProductAnalytics|The sender of tracking events"
msgstr "Der Absender von Tracking-Ereignissen"
msgid "ProductAnalytics|This group has no projects with product analytics onboarded in the current period."
-msgstr ""
+msgstr "In dieser Gruppe gibt es keine Projekte mit integrierten Produktanalysen für den aktuellen Zeitraum."
msgid "ProductAnalytics|This might take a while, feel free to navigate away from this page and come back later."
msgstr "Dies kann eine Weile dauern. Du kannst diese Seite jederzeit verlassen und später wiederkommen."
msgid "ProductAnalytics|This table excludes projects that do not have product analytics onboarded."
-msgstr ""
+msgstr "Diese Tabelle schließt Projekte aus, bei denen keine Produktanalysen integriert sind."
msgid "ProductAnalytics|To instrument your application, select one of the options below. After an option has been instrumented and data is being collected, this page will progress to the next step."
msgstr "Um deine Anwendung zu instrumentieren, wähle eine der folgenden Optionen aus. Nachdem eine Option instrumentiert und Daten gesammelt wurden, wird auf dieser Seite mit dem nächsten Schritt fortgefahren."
msgid "ProductAnalytics|Track your product's performance, and optimize your product and development processes."
-msgstr ""
+msgstr "Ãœberwache die Leistung deines Produkts und optimiere deine Produkt- und Entwicklungsprozesse."
msgid "ProductAnalytics|Unique Users"
msgstr "Eindeutige Benutzer(innen)"
msgid "ProductAnalytics|Usage by month"
-msgstr ""
+msgstr "Nutzung nach Monat"
msgid "ProductAnalytics|Usage by project"
-msgstr ""
+msgstr "Nutzung nach Projekt"
msgid "ProductAnalytics|Use product analytics"
-msgstr ""
+msgstr "Produktanalyse verwenden"
msgid "ProductAnalytics|Used to retrieve dashboard data from the Cube instance."
msgstr "Wird verwendet, um Dashboard-Daten aus der Cube-Instanz abzurufen."
@@ -36604,8 +37356,8 @@ msgstr "Profil"
msgid "Profile failed to delete"
msgstr "Das Profil konnte nicht gelöscht werden"
-msgid "Profile image guideline"
-msgstr "Richtlinie für Profilbilder"
+msgid "Profile image guidelines"
+msgstr ""
msgid "Profile page:"
msgstr "Profilseite:"
@@ -36970,8 +37722,8 @@ msgstr "Benutzername erfolgreich geändert"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
-msgstr "Webadresse"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "Für wen du arbeitest oder wen du vertrittst."
@@ -37154,7 +37906,7 @@ msgid "Project export started. A download link will be sent by email and made av
msgstr "Projekt-Export gestartet. Ein Download-Link wird per E-Mail verschickt und auf dieser Seite bereitgestellt."
msgid "Project groups"
-msgstr ""
+msgstr "Projektgruppen"
msgid "Project has too many %{label_for_message} to search"
msgstr "Projekt hat zu viele %{label_for_message} zum Durchsuchen"
@@ -37257,8 +38009,8 @@ msgstr "Rollen zum Erstellen von Projekten"
msgid "ProjectExceededSize|Here is the project exceeding the storage quota:%{projects_list}"
msgid_plural "ProjectExceededSize|From the %{repository_size_excess_project_count} projects exceeding the quota, below are the projects using the most storage:%{projects_list}"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Hier ist das Projekt mit überschrittenem Speicherkontingent:%{projects_list}"
+msgstr[1] "Aus den %{repository_size_excess_project_count} Projekten mit überschrittenem Kontingent sind unten diejenigen aufgeführt, die am meisten Speicherplatz belegen:%{projects_list}"
msgid "ProjectFileTree|Name"
msgstr "Name"
@@ -37275,8 +38027,8 @@ msgstr "Deine"
msgid "ProjectOverview|Create new fork"
msgstr "Neuen Fork erstellen"
-msgid "ProjectOverview|Forks"
-msgstr "Forks"
+msgid "ProjectOverview|Fork"
+msgstr "Fork"
msgid "ProjectOverview|Go to your fork"
msgstr "Gehe zu deinem Fork"
@@ -37302,11 +38054,26 @@ msgstr "Du hast dein Projektlimit erreicht"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "Du musst dich anmelden, um ein Projekt zu markieren"
-msgid "ProjectPage|Copy project ID"
-msgstr "Projekt-ID kopieren"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "Projekt-ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr "Projektinformation"
+
+msgid "ProjectPage|Project settings"
+msgstr "Projekteinstellungen"
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr "Der Standard-Branch konnte nicht gefunden werden. Bitte wende dich an deine(n) Administrator(in)."
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr "Standard-Branch konnte nicht geladen werden"
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr "Ein Fehler ist beim Versuch aufgetreten, Projektqualitätsstatistiken abzurufen"
@@ -37524,6 +38291,9 @@ msgstr "%{link_start}Welche Variablen kann ich verwenden?%{link_end}"
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr "Für ein leeres Projekt kann kein Standard Branch ausgewählt werden."
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr "Füge Badges hinzu, um Informationen zu diesem Projekt anzuzeigen."
+
msgid "ProjectSettings|Additional options"
msgstr "Zusätzliche Optionen"
@@ -37611,9 +38381,6 @@ msgstr "Cube API-URL"
msgid "ProjectSettings|Custom dashboard projects"
msgstr "Benutzerdefinierte Dashboard-Projekte"
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "Passe die Badges dieses Projekts an."
-
msgid "ProjectSettings|Data sources"
msgstr "Datenquellen"
@@ -37731,6 +38498,9 @@ msgstr "Lasse dies leer, um die Standardvorlage zu verwenden."
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr "Stelle sicher, dass dieses Muster nicht im Widerspruch zu den %{link_start}Push-Regeln &gt; Branch-Name%{link_end} Einstellungen steht."
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr "Verwalte, wer das Projekt im öffentlichen Zugriffsverzeichnis sehen kann."
@@ -37776,6 +38546,9 @@ msgstr "Zusammenführen ist nur erlaubt, wenn der Quellbranch mit seinem Ziel au
msgid "ProjectSettings|Model experiments"
msgstr "Modellexperimente"
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "Ãœberwachung"
@@ -38193,29 +38966,10 @@ msgstr "Projekte mit diesem Thema"
msgid "Projects with write access"
msgstr "Projekte mit Schreibzugriff"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Häufig besucht"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Lade Projekte"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Projekte, die du häufig besuchst, werden hier angezeigt"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Durchsuche deine Projekte"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Auf unserer Seite ist etwas schief gelaufen."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Entschuldigung, es wurden keine Projekte mit diesen Suchkriterien gefunden"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "Dieses Feature erfordert einen Browser, der LocalStorage unterstützt"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr "Bearbeitungsmodus umschalten"
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "Mit dieser Option kannst du das Repository für dieses Projekt sofort klonen. Überspringe dies, wenn du vorhast, ein vorhandenes Repository zu pushen."
@@ -38250,6 +39004,9 @@ msgstr "Aus Vorlage erstellen"
msgid "ProjectsNew|Create new project"
msgstr "Neues Projekt erstellen"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr "Der Standard-Hashing-Algorithmus ist SHA-1."
+
msgid "ProjectsNew|Description format"
msgstr "Beschreibungsformat"
@@ -38313,6 +39070,9 @@ msgstr "CI/CD für externes Repository ausführen"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr "Fehler beim Vorschlagen eines Pfads. Bitte aktualisiere und versuche es erneut."
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr "Verwende SHA-256 als Repository-Hashing-Algorithmus."
+
msgid "ProjectsNew|Visibility Level"
msgstr "Sichtbarkeits-Level"
@@ -38662,7 +39422,7 @@ msgid "Protected tags"
msgstr "Geschützte Tags"
msgid "ProtectedBranch|%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}*-stable%{code_tag_end} or %{code_tag_start}production/*%{code_tag_end} are supported. %{case_sensitive_link_start}Branch names are case-sensitive.%{case_sensitive_link_end}"
-msgstr ""
+msgstr "%{wildcards_link_start}Wildcards%{wildcards_link_end} wie %{code_tag_start}*-stable%{code_tag_end} oder %{code_tag_start}production/*%{code_tag_end} werden unterstützt. %{case_sensitive_link_start}Bei Branch-Namen wird zwischen Groß- und Kleinschreibung unterschieden.%{case_sensitive_link_end}"
msgid "ProtectedBranch|After you configure a protected branch, merge request approval, or status check, it appears here."
msgstr "Nachdem du einen geschützten Branch konfiguriert hast, wird er hier angezeigt."
@@ -38746,7 +39506,7 @@ msgid "ProtectedBranch|No tags are protected."
msgstr "Keine Tags sind geschützt. "
msgid "ProtectedBranch|Only %{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}*-stable%{code_tag_end} or %{code_tag_start}production/*%{code_tag_end} are supported. %{case_sensitive_link_start}Branch names are case-sensitive.%{case_sensitive_link_end}"
-msgstr ""
+msgstr "Nur %{wildcards_link_start}Wildcards%{wildcards_link_end} wie %{code_tag_start}*-stable%{code_tag_end} oder %{code_tag_start}production/*%{code_tag_end} werden unterstützt. %{case_sensitive_link_start}Bei Branch-Namen wird zwischen Groß- und Kleinschreibung unterschieden.%{case_sensitive_link_end}"
msgid "ProtectedBranch|Protect"
msgstr "Schützen"
@@ -38908,12 +39668,18 @@ msgstr "Genehmiger(innen)"
msgid "ProtectedEnvironment|Environment"
msgstr "Umgebung"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr "Upstream geschützte Umgebungen"
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr "Fehler beim Laden der Details für diese Gruppe."
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr "In diesem Projekt sind keine Umgebungen geschützt."
@@ -38995,9 +39761,6 @@ msgstr "Was sind geschützte Tags?"
msgid "ProtectedTag|default"
msgstr "Standard"
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr "Protip: %{linkStart}Auto-DevOps%{linkEnd} verwendet Kubernetes-Cluster, um deinen Code bereitzustellen!"
-
msgid "Provide Feedback"
msgstr "Feedback geben"
@@ -39043,6 +39806,9 @@ msgstr "Öffentliche Projekte sind eine einfache Möglichkeit, jedermann Lesezug
msgid "Public projects compute cost factor"
msgstr "Rechen-Kostenfaktor für öffentliche Projekte"
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "Auf Statusseite veröffentlichen"
@@ -39486,9 +40252,6 @@ msgstr "Gerät registrieren"
msgid "Register now"
msgstr "Jetzt registrieren"
-msgid "Register the runner with this URL:"
-msgstr "Registriere den Runner mit dieser URL:"
-
msgid "Register with two-factor app"
msgstr "Mit der Zwei-Faktor-App registrieren"
@@ -39665,6 +40428,9 @@ msgstr "Nachricht aus dem kommentierten Tag einschließen."
msgid "Release|Learn more about releases"
msgstr "Mehr über Releases erfahren"
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr "Leer lassen, um den Tag-Namen als Veröffentlichungstitel zu verwenden."
+
msgid "Release|More information"
msgstr "Weitere Informationen"
@@ -39719,6 +40485,9 @@ msgstr "Später erinnern"
msgid "Remote object has no absolute path."
msgstr "Das Remote-Objekt hat keinen absoluten Pfad."
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Entfernen"
@@ -39779,6 +40548,9 @@ msgstr "Beschreibungsverlauf entfernen"
msgid "Remove due date"
msgstr "Fälligkeitsdatum entfernen"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr "Epic-Referenz entfernen"
@@ -39881,6 +40653,9 @@ msgstr "Benutzer(in) aus der Gruppe entfernen"
msgid "Remove user from project"
msgstr "Benutzer(in) aus Projekt entfernen"
+msgid "Remove weight"
+msgstr "Gewichtung entfernen"
+
msgid "Removed"
msgstr "Entfernt"
@@ -39959,6 +40734,9 @@ msgstr "Alle Etiketts entfernen."
msgid "Removes an issue from an epic."
msgstr "Entfernt ein Ticket von einem Epic."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr "Entfernt den Link mit %{issue_ref}."
@@ -40016,9 +40794,6 @@ msgstr "Epic erneut öffnen"
msgid "Reopen milestone"
msgstr "Meilenstein erneut öffnen"
-msgid "Reopen test case"
-msgstr "Testfall erneut öffnen"
-
msgid "Reopen this %{quick_action_target}"
msgstr "Öffnet diese(s) %{quick_action_target} erneut"
@@ -40029,7 +40804,7 @@ msgid "Reopening %{issuableType}..."
msgstr "Wiedereröffnen von %{issuableType}..."
msgid "Reopening %{workItemType}"
-msgstr ""
+msgstr "%{workItemType} wird erneut geöffnet"
msgid "Reopening..."
msgstr "Erneut öffnen..."
@@ -40085,9 +40860,6 @@ msgstr "Auf Kommentar antworten"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "Antworte direkt auf diese E-Mail oder %{view_it_on_gitlab}."
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr "Antworten …"
@@ -40479,10 +41251,10 @@ msgid "Request a new one"
msgstr "Neu anfordern"
msgid "Request changes"
-msgstr ""
+msgstr "Änderungen anfragen"
msgid "Request changes to the current merge request."
-msgstr ""
+msgstr "Änderungen an der aktuellen Merge-Request anfragen."
msgid "Request data is too large"
msgstr "Die Anforderungsdaten sind zu groß"
@@ -40526,9 +41298,12 @@ msgstr "Anfragen pro Periode"
msgid "Require additional authentication for administrative tasks."
msgstr "Zusätzliche Authentifizierung für administrative Aufgaben erforderlich."
-msgid "Require expiration date"
+msgid "Require administrators to enable 2FA"
msgstr ""
+msgid "Require expiration date"
+msgstr "Ablaufdatum vorgeben"
+
msgid "Required approvals (%{approvals_given} given)"
msgstr "Erforderliche Genehmigungen (%{approvals_given} erteilt)"
@@ -40587,8 +41362,8 @@ msgstr "Erfordert eine verifizierte GitLab-E-Mail-Adresse."
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr "Erfordert, dass du Cloud-gehostete Sentry bereitstellst oder einrichtest."
-msgid "Requires your primary GitLab email address."
-msgstr "Erfordert deine primäre GitLab-E-Mail-Adresse."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
+msgstr ""
msgid "Resend"
msgstr "Erneut senden"
@@ -40656,9 +41431,6 @@ msgstr "Konflikte im Quell-Branch lösen"
msgid "Resolve locally"
msgstr "Lokal lösen"
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr "Löse diese Konflikte oder bitte jemanden mit Schreibzugriff auf dieses Repository, sie lokal zu lösen."
-
msgid "Resolve thread"
msgstr "Thread lösen"
@@ -40720,7 +41492,7 @@ msgid "Restart Terminal"
msgstr "Terminal neu starten"
msgid "Restart merge train pipelines with the merged changes."
-msgstr ""
+msgstr "Merge-Zug-Pipelines mit den zusammengeführten Änderungen neu starten."
msgid "Restore"
msgstr "Wiederherstellen"
@@ -40782,11 +41554,6 @@ msgstr "Wiederhole diesen Job, um die erforderlichen Ressourcen zu erstellen."
msgid "Retry verification"
msgstr "Wiederhole die Überprüfung"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Wert anzeigen"
-msgstr[1] "Werte anzeigen"
-
msgid "Reveal values"
msgstr "Werte anzeigen"
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] "Prüfer(in)"
msgstr[1] "%d Prüfer(innen)"
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr "Prüfer(innen)"
@@ -40891,9 +41667,6 @@ msgstr "Die Ursachenanalyse ist eine Funktion, die deine Protokolle analysiert,
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr "Regelname"
-
msgid "Rule name is already taken."
msgstr "Regelname ist bereits vergeben."
@@ -41231,6 +42004,9 @@ msgstr "Bestehende Runner sind nicht betroffen. Um die Runner Registrierung für
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr "Bestehende Runner sind nicht betroffen. Um die Runner Registrierung für alle Projekte zuzulassen, aktiviere diese Einstellung im Adminbereich unter Einstellungen &gt; CI/CD."
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr "Fehler beim Hinzufügen eines Runners zum Projekt"
@@ -41505,6 +42281,9 @@ msgstr "Runner-Registrierung"
msgid "Runners|Runner Registration token"
msgstr "Runner Registrierungsschlüssel"
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr "Runner wurde dem Projekt zugewiesen."
@@ -41625,8 +42404,8 @@ msgstr "Gemeinsam genutzte Runner sind in den Gruppeneinstellungen deaktiviert."
msgid "Runners|Shared runners are disabled."
msgstr "Gemeinsam genutzte Runner sind deaktiviert."
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
-msgstr "Gemeinsame Runner werden für alle Projekte und Untergruppen in dieser Gruppe deaktiviert. Wenn du fortfährst, musst du gemeinsame Runner in den Einstellungen jedes Projekts und jeder Untergruppe manuell wieder aktivieren."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
+msgstr ""
msgid "Runners|Show only inherited"
msgstr "Nur geerbte anzeigen"
@@ -41634,9 +42413,6 @@ msgstr "Nur geerbte anzeigen"
msgid "Runners|Show runner installation and registration instructions"
msgstr "Installations- und Registrierungsanleitung für Runner anzeigen"
-msgid "Runners|Show runner installation instructions"
-msgstr "Installationsanleitung für Runner anzeigen"
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr "Beim Löschen ist etwas schief gelaufen. Bitte aktualisiere die Seite, um es erneut zu versuchen."
@@ -41807,7 +42583,7 @@ msgid "Runners|Version %{version}"
msgstr "Version %{version}"
msgid "Runners|Version starts with"
-msgstr ""
+msgstr "Version beginnt mit"
msgid "Runners|View installation instructions"
msgstr "Installationsanleitungen anzeigen"
@@ -41816,7 +42592,7 @@ msgid "Runners|View metrics"
msgstr "Metriken anzeigen"
msgid "Runners|View runners list"
-msgstr ""
+msgstr "Liste der Runner anzeigen"
msgid "Runners|Wait time (secs)"
msgstr "Wartezeit (Sek.)"
@@ -41863,9 +42639,24 @@ msgstr "Projekt"
msgid "Runners|shared"
msgstr "Geteilt"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "Laufend"
@@ -42037,9 +42828,18 @@ msgstr "Speichern"
msgid "Saving project."
msgstr "Projekt wird gespeichert."
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr "Zeitzone von %{hostname}"
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr "%{period} %{days} um %{time} %{timezoneLabel} %{timezone}"
@@ -42058,6 +42858,9 @@ msgstr "Bedingung hinzufügen"
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr "Neue CI-Variable hinzufügen"
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr "Bedingungen"
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr "Schlüssel"
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr "Zeitzone des Kubernetes-Agenten"
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr "Verlinke eine vorhandene CI-Datei"
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr "Die maximale Anzahl von CI-Kriterien ist eins."
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr "Es kann immer nur eine Variable auf einmal hinzugefügt werden."
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr "CI/CD-Code ausführen"
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr "Namensräume auswählen"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "Scanner-Profil auswählen"
@@ -42127,6 +42951,9 @@ msgstr "Site-Profil auswählen"
msgid "ScanExecutionPolicy|Select timezone"
msgstr "Wähle die Zeitzone"
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr "Der Dateipfad darf nicht leer sein"
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr "Trigger:"
@@ -42142,6 +42969,9 @@ msgstr "Agent"
msgid "ScanExecutionPolicy|branch"
msgstr "Branch"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr "hat ein bestimmtes Tag"
@@ -42202,9 +43032,6 @@ msgstr "Fix verfügbar"
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr "Der verfügbare Fix gilt nur für das Scannen von Containern und Abhängigkeiten"
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr "Falls ausgewählt, überschreiben die folgenden Optionen die %{linkStart}Projekteinstellungen%{linkEnd}, sie wirken sich jedoch ausschließlich auf die in der Richtlinie ausgewählten Branches aus."
@@ -42256,35 +43083,26 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr "Projektgenehmigungseinstellungen überschreiben"
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr "Bereits vorhanden"
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr "Genehmigung durch den/die Autor(in) des Merge Requests verhindern"
-msgid "ScanResultPolicy|Prevent branch protection modification"
-msgstr "Ändern des Branch-Schutzes verhindern"
+msgid "ScanResultPolicy|Prevent branch modification"
+msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr "Pushen verhinderen und Pushen erzwingen"
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr "Geschützte Branch-Einstellungen"
-msgid "ScanResultPolicy|Recommended setting"
-msgstr "Empfohlene Einstellung"
+msgid "ScanResultPolicy|Recommended settings"
+msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
msgstr ""
@@ -42310,15 +43128,9 @@ msgstr "Der Schweregrad lautet:"
msgid "ScanResultPolicy|Status is:"
msgstr "Der Status lautet:"
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr "Unbekannt"
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr "Wenn %{scanType} %{scanners} für %{branches} %{branchExceptions} ausgeführt wird und %{vulnerabilitiesNumber} %{boldDescription} der folgenden Kriterien findet:"
@@ -42331,8 +43143,26 @@ msgstr "Wenn %{scanType} in einem offenen %{branches} %{branchExceptions} mit Zi
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr "Wenn %{scanners} scanner-spezifische Bedingungen in einem offenen Merge-Request zu den %{branches} %{branchExceptions} finden und %{boldDescription} der folgenden Kriterien übereinstimmen"
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
-msgstr "Du hast eine beliebige Option für geschützte Branches als Bedingung ausgewählt. Um dein Projekt besser zu schützen, solltest du die Einstellungen für geschützte Branches aktivieren. %{linkStart}Mehr erfahren.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
+msgstr ""
msgid "ScanResultPolicy|any commits"
msgstr "alle Commits"
@@ -42484,6 +43314,9 @@ msgstr "Suche nach Name"
msgid "Search files"
msgstr "Dateien durchsuchen"
+msgid "Search filters"
+msgstr "Suchfilter"
+
msgid "Search for Namespace"
msgstr "Nach Namensraum suchen"
@@ -42677,6 +43510,9 @@ msgstr "Geheime Erkennung"
msgid "Secret token"
msgstr "Geheimer Token"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr "Dieser Kommentar scheint ein Token aufzuweisen. Möchtest du ihn wirklich hinzufügen?"
@@ -42686,6 +43522,36 @@ msgstr "Diese Beschreibung scheint ein Token aufzuweisen. Möchtest du sie wirkl
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr "Secure Code Warrior"
@@ -42743,6 +43609,9 @@ msgstr "Sicherheits-Dashboard"
msgid "Security Finding not found"
msgstr "Sicherheitsergebnis nicht gefunden"
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr "Das Projekt „Sicherheitsrichtlinie“ existiert bereits."
@@ -42830,8 +43699,8 @@ msgstr "Automatische DevOps aktivieren"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr "Aktiviere die Inkubation von Funktionen, die auf die Verstoß- und Angriffssimulation ausgerichtet sind, wie Rückrufattacken, in deinen DAST-Scans."
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Aktiviere Sicherheitsschulungen, damit deine Entwickler(innen) lernen, wie sie Sicherheitslücken beheben können. Entwickler(innen) können Sicherheitsschulungen von ausgewählten Bildungsanbietern einsehen, die für die entdeckte Sicherheitslücke relevant sind."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
msgid "SecurityConfiguration|Enabled"
msgstr "Aktiviert"
@@ -42932,6 +43801,9 @@ msgstr "mit den Eigenschaften %{licenseState} und"
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr "%{agent} für %{namespaces}"
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr "%{branchName}"
@@ -42941,6 +43813,15 @@ msgstr "%{branchName} (in %{codeStart}%{fullPath}%{codeEnd})"
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr "%{cadence} in %{branches}%{branchExceptionsString}"
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr "%{fileName} wurde erfolgreich geladen."
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr "%{fileName} konnte nicht geladen werden. Bitte versuche es erneut."
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr "%{frameworkName} enthält %{projectLength} %{projects}"
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr "%{licenses} und %{lastLicense}"
@@ -42959,12 +43840,18 @@ msgstr ".yaml-Modus"
msgid "SecurityOrchestration|.yaml preview"
msgstr " .yaml-Vorschau"
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr "Aktionen"
msgid "SecurityOrchestration|Add action"
msgstr "Aktion hinzufügen"
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr "Neue(n) Genehmiger(in) hinzufügen"
@@ -42977,6 +43864,9 @@ msgstr "Nach dem Löschen des Alarms werden die Informationen nie wieder angezei
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "Nach Aktivierung einer Richtlinie auf Gruppenebene gilt diese Richtlinie automatisch für alle Projekte und Untergruppen in dieser Gruppe."
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr "Alle Quellen"
@@ -42999,14 +43889,17 @@ msgid "SecurityOrchestration|Any merge request"
msgstr "Alle Merge Requests"
msgid "SecurityOrchestration|Apply this policy to all projects %{projectScopeType} %{exceptionType} %{projectSelector}"
-msgstr ""
+msgstr "Diese Richtlinie anwenden auf alle Projekte %{projectScopeType} %{exceptionType} %{projectSelector}"
msgid "SecurityOrchestration|Apply this policy to all projects %{projectScopeType} named %{frameworkSelector}"
-msgstr ""
+msgstr "Diese Richtlinie anwenden auf alle Projekte %{projectScopeType} mit dem Namen %{frameworkSelector} "
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr "Möchtest du diese Richtlinie wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden."
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,23 +43912,29 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr "Wähle ein Projekt"
+msgid "SecurityOrchestration|Choose an action"
+msgstr ""
+
msgid "SecurityOrchestration|Choose approver type"
msgstr "Genehmigertyp wählen"
-msgid "SecurityOrchestration|Choose framework labels"
-msgstr ""
-
msgid "SecurityOrchestration|Choose specific role"
msgstr "Wähle eine bestimmte Rolle aus"
msgid "SecurityOrchestration|Clear all"
msgstr "Alle löschen"
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr "Das Konformitäts-Framework enthält keine Projekte"
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr "Erstelle robustere Sicherheitslückenregeln und wende sie auf alle deine Projekte an."
msgid "SecurityOrchestration|Create new framework label"
-msgstr ""
+msgstr "Neues Framework-Label erstellen"
msgid "SecurityOrchestration|Create policy"
msgstr "Richtlinie erstellen"
@@ -43095,14 +43994,17 @@ msgid "SecurityOrchestration|Failed to load cluster agents."
msgstr "Fehler beim Laden der Cluster-Agenten."
msgid "SecurityOrchestration|Failed to load compliance frameworks"
-msgstr ""
+msgstr "Fehler beim Laden der Compliance-Frameworks"
msgid "SecurityOrchestration|Failed to load group projects"
-msgstr ""
+msgstr "Fehler beim Laden der Gruppenprojekte"
msgid "SecurityOrchestration|Failed to load images."
msgstr "Fehler beim Laden der Images."
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,8 +44017,11 @@ msgstr "In großen Gruppen kann die Anwendung von Richtlinienänderungen auf ber
msgid "SecurityOrchestration|Groups"
msgstr "Gruppen"
-msgid "SecurityOrchestration|Hide extra branches"
-msgstr "Zusätzliche Branches ausblenden"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
+msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
msgstr "Wenn ein Scanner eine neu entdeckte kritische Sicherheitslückee in einem offenen Merge Request findet, die auf den Masterbranch abzielt, müssen zwei Genehmigungen von einem beliebigen Mitglied der App-Sicherheit eingeholt werden."
@@ -43130,6 +44035,9 @@ msgstr "Vererbt"
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr "Geerbt von %{namespace}"
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr "Letzter Scanausführung bezüglich %{agent}"
msgid "SecurityOrchestration|License Scan"
msgstr "Lizenz-Scan"
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr "CI/CD-Code aus Datei laden"
+
msgid "SecurityOrchestration|Logic error"
msgstr "Logikfehler"
@@ -43161,7 +44072,7 @@ msgid "SecurityOrchestration|No actions defined - policy will not run."
msgstr "Keine Aktionen definiert –Richtlinie wird nicht ausgeführt."
msgid "SecurityOrchestration|No compliance frameworks"
-msgstr ""
+msgstr "Keine Konformitäts-Frameworks"
msgid "SecurityOrchestration|No description"
msgstr "Keine Beschreibung"
@@ -43172,6 +44083,9 @@ msgstr "Keine Ausnahmen"
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr "Keine Regeln definiert – Richtlinie wird nicht ausgeführt."
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr "Keine Tags verfügbar"
@@ -43198,6 +44112,9 @@ msgstr "Nur Eigentümer können das Security Policy Project aktualisieren"
msgid "SecurityOrchestration|Override the following project settings:"
msgstr "Die folgenden Projekteinstellungen überschreiben:"
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr "Soll der aktuelle CI/CD-Code mit dem Inhalt der neuen Datei überschrieben werden?"
+
msgid "SecurityOrchestration|Policies"
msgstr "Richtlinien"
@@ -43220,7 +44137,7 @@ msgid "SecurityOrchestration|Policy editor"
msgstr "Richtlinieneditor"
msgid "SecurityOrchestration|Policy scope"
-msgstr ""
+msgstr "Geltungsbereich der Richtlinie"
msgid "SecurityOrchestration|Policy status"
msgstr "Richtlinienstatus"
@@ -43285,12 +44202,18 @@ msgstr "Richtlinie für Scan-Ergebnisse"
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr "Der Scan wählt automatisch einen Runner zur Ausführung aus, da keine Tags zu Runnern vorhanden sind. Du kannst %{linkStart}ein neues Tag in den Einstellungen erstellen%{linkEnd}."
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr "Sicherheitsgenehmigungen"
msgid "SecurityOrchestration|Security Scan"
msgstr "Sicherheits-Scan"
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr " Sicherheitsrichtlinienprojekt wurde erfolgreich verknüpft"
@@ -43304,7 +44227,7 @@ msgid "SecurityOrchestration|Select exception branches"
msgstr "Ausgenommene Branches auswählen"
msgid "SecurityOrchestration|Select frameworks"
-msgstr ""
+msgstr "Frameworks auswählen"
msgid "SecurityOrchestration|Select groups"
msgstr "Gruppen auswählen"
@@ -43324,6 +44247,12 @@ msgstr "Benutzer(innen) auswählen"
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr "Schweregrad ist %{severity}."
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr "Etwas ist schiefgelaufen. Richtlinien können nicht abgerufen werden"
@@ -43357,6 +44286,12 @@ msgstr "Dieser %{namespaceType} enthält keine Sicherheitsrichtlinien."
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr "Dieser %{namespaceType} ist nicht mit einem Sicherheitsrichtlinienprojekt verknüpft"
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "Diese Gruppe"
@@ -43441,17 +44376,32 @@ msgstr "YAML"
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr "Du verfügst bereits über die maximale Anzahl von %{maximumAllowed} %{policyType}-Richtlinien."
-msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
+msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr "Du kannst den Schutz dieses Branchs nicht aufheben, da der Schutz durch mindestens eine %{security_policies_link_start}Sicherheitsrichtlinie%{security_policies_link_end} erzwungen wird. %{learn_more_link_start}Mehr erfahren%{learn_more_link_end}."
+
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr "Du hast noch keine Sicherheitsrichtlinien"
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr "Alle Namensräume"
msgid "SecurityOrchestration|all projects in this group"
-msgstr ""
+msgstr "Alle Projekte in dieser Gruppe"
msgid "SecurityOrchestration|any"
msgstr "beliebig"
@@ -43483,9 +44433,12 @@ msgstr "Branches"
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr "durch den Agenten namens %{agents} %{cadence}%{branchExceptionsString}"
-msgid "SecurityOrchestration|except projects"
+msgid "SecurityOrchestration|compliance frameworks"
msgstr ""
+msgid "SecurityOrchestration|except projects"
+msgstr "mit Ausnahme der Projekte"
+
msgid "SecurityOrchestration|group level branch input"
msgstr "Branch-Input auf Gruppenebene"
@@ -43505,7 +44458,7 @@ msgid "SecurityOrchestration|or from:"
msgstr "oder von:"
msgid "SecurityOrchestration|projects with compliance frameworks"
-msgstr ""
+msgstr "Projekte mit Konformitäts-Frameworks"
msgid "SecurityOrchestration|scanner finds"
msgstr "Scanner findet"
@@ -43514,7 +44467,7 @@ msgid "SecurityOrchestration|scanners find"
msgstr "Scanner finden"
msgid "SecurityOrchestration|specific projects"
-msgstr ""
+msgstr "bestimmte Projekte"
msgid "SecurityOrchestration|targeting %{branchTypeText}"
msgstr ""
@@ -43544,7 +44497,7 @@ msgid "SecurityOrchestration|with %{exceptionType} on %{branchSelector}"
msgstr "mit %{exceptionType} auf %{branchSelector}"
msgid "SecurityOrchestration|without exceptions"
-msgstr ""
+msgstr "ohne Ausnahmen"
msgid "SecurityPolicies|Invalid or empty policy"
msgstr "Ungültige oder leere Richtlinie"
@@ -43669,6 +44622,9 @@ msgstr "Abgelehnt (alle Gründe)"
msgid "SecurityReports|Dismissed as..."
msgstr "Abgelehnt als …"
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr "Hat keine Tickets"
@@ -43720,6 +44676,9 @@ msgstr "Die Aktualisierung von Sicherheitslücken mit den folgenden IDs ist fehl
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr "Hat ein Ticket"
@@ -43735,12 +44694,6 @@ msgstr "Image"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr "Untersuche diese Sicherheitslücke, indem du ein Ticket erstellst"
-msgid "SecurityReports|Is available"
-msgstr "Ist verfügbar"
-
-msgid "SecurityReports|Is not available"
-msgstr "Ist nicht verfügbar"
-
msgid "SecurityReports|Issue"
msgstr "Ticket"
@@ -43875,6 +44828,9 @@ msgstr "Immer noch erkannt"
msgid "SecurityReports|Submit vulnerability"
msgstr "Sicherheitslücke absenden"
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr "Der Sicherheitslückenbericht zeigt die Ergebnisse erfolgreicher Scans im Standardbranch deines Projekts, manuell hinzugefügte Sicherheitslückendatensätze und Sicherheitslücken, die beim Scannen von Betriebsumgebungen gefunden wurden. %{linkStart}Mehr erfahren%{linkEnd}."
@@ -43974,6 +44930,18 @@ msgstr "Mit Sicherheitstraining lösen"
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr "Die Schulung von diesem Partner hat Vorrang, wenn mehr als ein Schulungspartner aktiviert ist."
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr "Siehe Beispiel DevOps Score-Seite in unserer Dokumentation."
@@ -44035,7 +45003,7 @@ msgid "Select a label"
msgstr "Ein Label auswählen"
msgid "Select a merge moment"
-msgstr ""
+msgstr "Zusammenführungszeitpunkt auswählen"
msgid "Select a milestone"
msgstr "Einen Meilenstein auswählen"
@@ -44241,6 +45209,9 @@ msgstr "Sende Benachrichtigungen über Projektereignisse an die Mattermost-Kanä
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr "Sende Benachrichtigungen über Projektereignisse an einen Discord-Kanal. %{docs_link}"
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "Bericht senden"
@@ -44302,7 +45273,7 @@ msgid "Service Desk allows people to create issues in your GitLab instance witho
msgstr "Mit dem Service-Desk können Benutzer(innen) Tickets in deiner GitLab-Instanz erstellen, ohne ein eigenes Benutzerkonto zu besitzen. Dies stellt eine eindeutige E-Mail-Adresse für Endbenutzer(innen) zur Verfügung, um Tickets in einem Projekt zu erstellen. Antworten können entweder über die GitLab-Schnittstelle oder per E-Mail gesendet werden. Endbenutzer(innen) sehen Threads nur per E-Mail."
msgid "Service access token expiration"
-msgstr ""
+msgstr "Ablauf des Dienstzugriffstokens"
msgid "Service account"
msgstr "Dienstkonto"
@@ -44311,7 +45282,7 @@ msgid "Service account generated successfully"
msgstr "Dienstkonto erfolgreich erstellt"
msgid "Service account token expiration"
-msgstr ""
+msgstr "Ablauf des Dienstkonto-Zugriffstokens"
msgid "Service accounts"
msgstr "Dienstkonten"
@@ -44341,7 +45312,7 @@ msgid "ServiceDesk|Add external participants from the %{codeStart}Cc%{codeEnd} h
msgstr "Externe Teilnehmer aus dem %{codeStart}Cc%{codeEnd}-Header hinzufügen"
msgid "ServiceDesk|CRAM-MD5"
-msgstr ""
+msgstr "CRAM-MD5"
msgid "ServiceDesk|Cannot create custom email"
msgstr "Benutzerdefinierte E-Mail kann nicht erstellt werden"
@@ -44403,9 +45374,15 @@ msgstr "Aktiviere benutzerdefinierte E-Mail-Adresse"
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr "Wenn du Hilfe bei der Einrichtung des Service-Desks für deine Instanz benötigst, wende dich bitte an einen Administrator."
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr "Falscher Absender-Header"
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr "Falsches Verifizierungstoken"
@@ -44419,13 +45396,13 @@ msgid "ServiceDesk|Keep custom email"
msgstr "Benutzerdefinierte E-Mail-Adresse behalten"
msgid "ServiceDesk|Let GitLab select a server-supported method (recommended)"
-msgstr ""
+msgstr "GitLab eine vom Server unterstützte Methode auswählen lassen (empfohlen)"
msgid "ServiceDesk|Like the author, external participants receive Service Desk emails and can participate in the discussion."
msgstr "Wie der Autor erhalten auch externe Teilnehmer(innen) Service-Desk-E-Mails und können an der Diskussion teilnehmen."
msgid "ServiceDesk|Login"
-msgstr ""
+msgstr "Anmeldung"
msgid "ServiceDesk|Minimum 8 characters long."
msgstr "Mindestens 8 Zeichen lang."
@@ -44437,7 +45414,7 @@ msgid "ServiceDesk|Parameters missing"
msgstr "Parameter fehlen"
msgid "ServiceDesk|Plain"
-msgstr ""
+msgstr "Einfach"
msgid "ServiceDesk|Please share your feedback on this feature in the %{linkStart}feedback issue%{linkEnd}"
msgstr "Bitte teile dein Feedback zu dieser Funktion im %{linkStart}Feedback-Ticket%{linkEnd}"
@@ -44445,6 +45422,12 @@ msgstr "Bitte teile dein Feedback zu dieser Funktion im %{linkStart}Feedback-Tic
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr "Bitte erneut versuchen. Überprüfe die Einstellungen und Zugangsdaten für die E-Mail-Weiterleitung, und starte die Verifizierung erneut."
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr "Benutzerdefinierte E-Mail-Adresse zurücksetzen"
@@ -44458,7 +45441,7 @@ msgid "ServiceDesk|SMTP address is required and must be resolvable."
msgstr "Die SMTP-Adresse ist erforderlich und muss auflösbar sein."
msgid "ServiceDesk|SMTP authentication method"
-msgstr ""
+msgstr "SMTP-Authentifizierungsmethode"
msgid "ServiceDesk|SMTP host"
msgstr ""
@@ -44505,8 +45488,11 @@ msgstr "Service-Desk-Einstellung fehlt"
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr "Einstellung oder Verifizierungsobjekt fehlt"
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "Die angegebenen Zugangsdaten (Benutzername und Passwort) wurden vom SMTP-Server abgelehnt."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr "Die angegebenen Zugangsdaten (Benutzername und Passwort) wurden vom SMTP-Server abgelehnt oder du musst explizit eine Authentifizierungsmethode festlegen."
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
msgstr "Die empfangene E-Mail enthielt nicht das Verifizierungstoken, das an deine E-Mail-Adresse gesendet wurde."
@@ -44514,6 +45500,12 @@ msgstr "Die empfangene E-Mail enthielt nicht das Verifizierungstoken, das an dei
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr "Die Verifizierungs-E-Mail wurde nicht rechtzeitig empfangen. Es braucht etwa 30 Minuten, bis Verifizierungs-E-Mails im Service-Desk deiner Instanz erscheinen. Stelle sicher, dass du die E-Mail-Weiterleitung korrekt eingerichtet hast."
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr "Dieses Ticket wurde erneut geöffnet, da es einen neuen Kommentar von einem externen Teilnehmer oder einer externen Teilnehmerin erhalten hat."
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr "Um den Service-Desk auf dieser Instanz zu aktivieren, muss ein(e) Instanzadministrator(in) zunächst eingehende E-Mails einrichten."
@@ -44712,9 +45704,6 @@ msgstr "CI/CD einrichten"
msgid "Set up Jira Integration"
msgstr "Jira Integration einrichten"
-msgid "Set up a %{type} runner for a project"
-msgstr "Richte einen %{type}-Runner für ein Projekt ein"
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr "Richte ein Hardwaregerät ein, um die Zwei-Faktor-Authentifizierung (2FA) zu aktivieren."
@@ -44730,6 +45719,9 @@ msgstr "Neues Passwort festlegen"
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
msgstr "Richte dein Projekt so ein, dass Änderungen automatisch an ein anderes Repository gesendet bzw. von diesem abgerufen werden. Branches, Tags und Commits werden automatisch synchronisiert."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "Gewichtung festlegen"
@@ -44808,20 +45800,33 @@ msgstr "Einstellung"
msgid "Setting enforced"
msgstr "Einstellung erzwungen"
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] "Einstellung erfolgreich gespeichert"
-msgstr[1] "Einstellungen erfolgreich gespeichert"
-
msgid "Settings"
msgstr "Einstellungen"
msgid "Settings for the License Compliance feature"
msgstr "Einstellungen für die Lizenzkonformitätsfunktion"
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr "Die Einstellungen für die Merge Request-Optionen können nicht geladen werden. Versuche, die Seite neu zu laden."
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "Schweregrad"
@@ -44879,27 +45884,6 @@ msgstr "Begrenzt die Anzahl der Git-Vorgänge, die ein(e) Benutzer(in) pro Minut
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr "Maximale Anzahl an Git-Vorgängen pro Minute"
-msgid "Shimo|Go to Shimo Workspace"
-msgstr "Gehe zu Shimo Workspace"
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr "Link zu einem Shimo Workspace aus der Menüleiste."
-
-msgid "Shimo|Shimo"
-msgstr "Shimo"
-
-msgid "Shimo|Shimo Workspace"
-msgstr "Shimo Workspace"
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr "Shimo Workspace URL"
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr "Shimo Workspace-Integration ist aktiviert"
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr "Du hast die Shimo Workspace-Integration aktiviert. Du kannst dein Wiki direkt in Shimo anzeigen."
-
msgid "Short name"
msgstr "Kurzname"
@@ -45163,9 +46147,6 @@ msgstr "Mit Smart Card anmelden"
msgid "Sign in via 2FA code"
msgstr "Mit 2FA Code anmelden"
-msgid "Sign in with"
-msgstr "Anmelden mit"
-
msgid "Sign in with single sign-on"
msgstr "Mit Single Sign-on anmelden"
@@ -45214,20 +46195,14 @@ msgstr "URL der Abmeldeseite"
msgid "Sign-up restrictions"
msgstr "Registrierungsbeschränkungen"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "Indem du auf %{button_text} klickst oder dich über einen Drittanbieter registrierst, akzeptierst du %{link_start}die Nutzungsbedingungen von GitLab und erkennst die Datenschutz- und Cookie-Richtlinien%{link_end} an."
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "Indem du auf %{button_text} klickst oder dich über einen Drittanbieter registrierst, akzeptierst du die %{link_start}Nutzungsbedingungen und erkennst die Datenschutz- und Cookie-Richtlinien%{link_end} an."
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "Durch Klicken auf %{button_text} bestätige ich, dass ich die %{link_start}Nutzungsbedingungen und Datenschutzrichtlinie%{link_end} gelesen habe und diese akzeptiere"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "Durch Klicken auf %{button_text} bestätige ich, dass ich die %{link_start}Nutzungsbedingungen und Datenschutzrichtlinie%{link_end} von GitLab gelesen habe und diese akzeptiere"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "Mit deiner Anmeldung akzeptierst du die %{link_start}Nutzungsbedingungen und erkennst die Datenschutz- und Cookie-Richtlinien%{link_end} an."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr "Der Vorname ist zu lang (maximal %{max_length} Zeichen)."
@@ -45526,6 +46501,9 @@ msgstr "Smartcard"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "Smartcard-Authentifizierung fehlgeschlagen: Client-Zertifikat-Header fehlt."
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr "Code-Schnipsel"
@@ -45583,6 +46561,9 @@ msgstr "Code-Schnipsel sind auf %{total} Dateien beschränkt."
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr "Code-Schnipsel dürfen keine leeren Dateien enthalten. Stelle sicher, dass alle Dateien Inhalt haben, oder lösche sie."
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45643,7 +46624,7 @@ msgstr "Sonstige"
msgid "Something went wrong"
msgstr "Etwas ist schief gelaufen"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45659,7 +46640,7 @@ msgid "Something went wrong on our end. Please try again."
msgstr "Etwas ist bei Uns schief gelaufen. Bitte versuche es erneut."
msgid "Something went wrong trying to change the locked state of the discussion"
-msgstr ""
+msgstr "Fehler beim Ändern des Sperrzustandes der Diskussion."
msgid "Something went wrong trying to change the locked state of this %{issuableDisplayName}"
msgstr "Beim Ändern des Sperrzustandes von %{issuableDisplayName} ist etwas schiefgelaufen"
@@ -45985,9 +46966,6 @@ msgstr "Beliebtheit"
msgid "SortOptions|Priority"
msgstr "Priorität"
-msgid "SortOptions|Project"
-msgstr "Projekt"
-
msgid "SortOptions|Recent last activity"
msgstr "Letzte Aktivität"
@@ -46000,8 +46978,8 @@ msgstr "Zuletzt markiert"
msgid "SortOptions|Size"
msgstr "Größe"
-msgid "SortOptions|Sort by:"
-msgstr "Sortieren nach:"
+msgid "SortOptions|Sort by"
+msgstr ""
msgid "SortOptions|Sort direction"
msgstr "Sortierrichtung"
@@ -46021,12 +46999,6 @@ msgstr "Baldiger Start"
msgid "SortOptions|Title"
msgstr "Titel"
-msgid "SortOptions|Type"
-msgstr "Typ"
-
-msgid "SortOptions|Version"
-msgstr "Version"
-
msgid "SortOptions|Weight"
msgstr "Gewichtung"
@@ -46073,7 +47045,7 @@ msgid "Source project cannot be found."
msgstr "Quellprojekt kann nicht gefunden werden."
msgid "Source-Branch"
-msgstr ""
+msgstr "Quellbranch"
msgid "SourceEditor|\"el\" parameter is required for createInstance()"
msgstr "„el“-Parameter ist für createInstance() erforderlich"
@@ -46222,6 +47194,11 @@ msgstr "Phase:"
msgid "Standard"
msgstr "Standard"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] "Favorit"
+msgstr[1] "Favoriten"
+
msgid "Star labels to start sorting by priority."
msgstr "Markiere Labels, um die Sortierung nach Priorität zu starten."
@@ -46522,9 +47499,6 @@ msgstr "Terminal stoppen"
msgid "Stop impersonating"
msgstr "Identitätswechsel stoppen"
-msgid "Stop impersonation"
-msgstr "Identitätswechsel stoppen"
-
msgid "Stop this environment"
msgstr "Stoppe diese Umgebung"
@@ -46606,17 +47580,14 @@ msgstr "Als Ham absenden"
msgid "Submit as spam"
msgstr "Als Spam einreichen"
-msgid "Submit feedback"
-msgstr "Feedback senden"
-
msgid "Submit feedback and approve these changes."
-msgstr ""
+msgstr "Feedback abgeben und diese Änderungen genehmigen."
msgid "Submit feedback that should be addressed before merging."
-msgstr ""
+msgstr "Feedback abgeben, das vor dem Zusammenführen berücksichtigt werden sollte."
msgid "Submit general feedback without explicit approval."
-msgstr ""
+msgstr "Allgemeines Feedback ohne ausdrückliche Genehmigung abgeben."
msgid "Submit review"
msgstr "Review senden"
@@ -46705,6 +47676,9 @@ msgstr "Um Änderungen an einem schreibgeschützten Abonnement vorzunehmen oder
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr "Dein Abonnement ist schreibgeschützt"
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "Plätze hinzufügen"
@@ -47253,9 +48227,6 @@ msgstr "Branch wechseln"
msgid "Switch branch/tag"
msgstr "Zu Branch/Tag wechseln"
-msgid "Switch to GitLab Next"
-msgstr "Zu GitLab Next wechseln"
-
msgid "Switch to plain text editing"
msgstr "Zur Plain-Text-Bearbeitung wechseln"
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr "Feedback geben"
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] "Quelle"
msgstr[1] "Quellen"
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr "Was ist ein Fork?"
@@ -47549,21 +48529,6 @@ msgstr "Zielpfad"
msgid "Target branch"
msgstr "Zielbranch"
-msgid "Target branch rule"
-msgstr "Zielbranch-Regel"
-
-msgid "Target branch rule created."
-msgstr "Zielbranch-Regel erstellt."
-
-msgid "Target branch rule deleted."
-msgstr "Zielbranch-Regel gelöscht."
-
-msgid "Target branch rule does not exist"
-msgstr "Zielbranch-Regel existiert nicht"
-
-msgid "Target branch rules"
-msgstr "Zielbranch-Regeln"
-
msgid "Target branch: %{target_branch}"
msgstr "Zielbranch: %{target_branch}"
@@ -47848,6 +48813,9 @@ msgstr "Von KI generierter Test"
msgid "Test settings"
msgstr "Testeinstellungen"
+msgid "Test summary"
+msgstr "Testzusammenfassung"
+
msgid "TestCases|Move test case"
msgstr "Testfall verschieben"
@@ -48042,6 +49010,9 @@ msgstr "Das Ticketsystem ist der Ort, um Dinge hinzuzufügen, die in einem Proje
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "Das Ticketsystem ist der Ort, um Dinge hinzuzufügen, die in einem Projekt verbessert oder Probleme anzuführen, die gelöst werden müssen. Du kannst dich registrieren oder anmelden, um Tickets für dieses Projekt zu erstellen."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr "Die Integration für Slack-Benachrichtigungen ist veraltet und wird in einer zukünftigen Version entfernt. Verwende stattdessen die GitLab für Slack-App, um weiterhin Benachrichtigungen von Slack zu erhalten. %{learn_more_link_start}Mehr erfahren%{link_end}"
@@ -48066,6 +49037,12 @@ msgstr "Die Anwendung wird dort verwendet, wo das Kundengeheimnis vertraulich be
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr "Das zugehörige Ticket #%{issueId} wurde geschlossen, da der Fehler behoben wurde."
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "Der Branch für dieses Projekt enthält keine aktive Pipeline-Konfiguration."
@@ -48084,9 +49061,6 @@ msgstr "Der Kommentar, den du bearbeitest, wurde von einem/einer anderen Benutze
msgid "The commit does not exist"
msgstr "Der Commit existiert nicht"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr "Die Vergleichsansicht ist aufgrund von Merge-Konflikten unter Umständen ungenau."
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr "Die vollständige DevOps-Plattform. Eine Anwendung mit endlosen Möglichkeiten. Viele Unternehmen nutzen die Quellcodeverwaltung, die CI/CD- und Sicherheitsfunktionen und vieles mehr von GitLab, um Software schnell bereitzustellen."
@@ -48126,17 +49100,23 @@ msgstr "Der/die aktuelle Benutzer(in) ist nicht berechtigt, auf das Jobprotokoll
msgid "The current user is not authorized to create the pipeline schedule"
msgstr "Der/die aktuelle Benutzer(in) ist nicht berechtigt, den Pipelineplan zu erstellen."
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr "Der/die aktuelle Benutzer(in) ist nicht berechtigt, den Pipeline-Zeitplan zu aktualisieren"
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr "Die Daten in dieser Pipeline sind zu alt, um als Diagramm gerendert zu werden. Bitte überprüfe die Registerkarte „Jobs“, um auf historische Daten zuzugreifen."
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "Das Datum, an dem die Veröffentlichung fertig ist. Eine Veröffentlichung mit einem Datum in der Zukunft ist als %{linkStart}bevorstehende Version%{linkEnd} gekennzeichnet."
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr "Die Standard-CI/CD-Konfigurationsdatei und der Pfad für neue Projekte."
@@ -48160,16 +49140,16 @@ msgid "The directory has been successfully created."
msgstr "Das Verzeichnus wurde erfolgreich erstellt."
msgid "The discussion in this %{issuableDisplayName} is locked. Only project members can comment."
-msgstr ""
+msgstr "Die Diskussion in diesem(r) %{issuableDisplayName} ist gesperrt. Nur Projektmitglieder können kommentieren."
msgid "The discussion in this %{issuable} is locked. Only project members can comment."
-msgstr ""
+msgstr "Die Diskussion in diesem(r) %{issuable} ist gesperrt. Nur Projektmitglieder können kommentieren."
msgid "The discussion in this %{noteableTypeText} is locked."
-msgstr ""
+msgstr "Die Diskussion in diesem(r) %{noteableTypeText} ist gesperrt."
msgid "The discussion in this merge request is locked."
-msgstr ""
+msgstr "Die Diskussion in dieser Merge Request ist gesperrt."
msgid "The domain you entered is misformatted."
msgstr "Die von dir eingegebene Domain ist falsch formatiert."
@@ -48385,6 +49365,9 @@ msgstr "Der Name der CI/CD-Konfigurationsdatei. Ein Pfad zum Stammverzeichnis is
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr "Der Name des Jenkins-Projekts. Kopiere den Namen vom Ende der URL in das Projekt."
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr "Die Speichergröße des Namensraums (%{current_size}) überschreitet das Limit von %{size_limit} um %{exceeded_size}. Du kannst für dieses Projekt keinen neuen Code mehr pushen. Wende dich bitte an deine(n) GitLab-Administrator(in), um weitere Informationen zu erhalten."
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "Die Anzahl der Änderungen, die beim Klonen eines Repositorys aus GitLab abgerufen werden sollen. Niedrigere Werte können die Pipelineausführung beschleunigen. Auf %{code_open}0%{code_close} oder leer setzen, um alle Branches und Tags für jeden Job abzurufen"
@@ -48523,6 +49506,9 @@ msgstr "Die angegebene Registerkarte ist ungültig. Wähle eine andere Registerk
msgid "The start date must be earlier than the end date."
msgstr "Das Anfangsdatum muss vor dem Enddatum liegen."
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr "Der Betreff wird als Titel des neuen Tickets und die Nachricht als Beschreibung verwendet. %{quickActionsLinkStart}Schnellaktionen%{quickActionsLinkEnd} und Styling mit %{markdownLinkStart}Markdown%{markdownLinkEnd} werden unterstützt."
@@ -48574,15 +49560,12 @@ msgstr "Die Sicherheitslücke wird nicht mehr erkannt. Überprüfe, ob sie behob
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr "Die Sicherheitslücke wird nicht mehr erkannt. Überprüfe, ob sie behoben wurde, bevor du den Status änderst."
+msgid "There are currently no merge request branch targets"
+msgstr ""
+
msgid "There are currently no mirrored repositories."
msgstr "Derzeit gibt es keine gespiegelten Repositorys."
-msgid "There are currently no target branch rules"
-msgstr "Derzeit sind keine Zielbranch-Regeln vorhanden"
-
-msgid "There are merge conflicts"
-msgstr "Es sind Merge-Konflikte vorhanden."
-
msgid "There are no GPG keys associated with this account."
msgstr "Mit diesem Konto sind keine GPG-Schlüssel verknüpft."
@@ -48629,7 +49612,7 @@ msgid "There are no commits yet."
msgstr "Es sind noch keine Commits vorhanden."
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 "Für diese GitLab-Instanz sind keine benutzerdefinierten Projektvorlagen eingerichtet. Diese Vorlagen werden im Admin-Bereich von GitLab aktiviert. Wende dich an deine(n) GitLab-Instanzadministrator(in), um benutzerdefinierte Projektvorlagen einzurichten."
+msgstr "Für diese GitLab-Instanz sind keine benutzerdefinierten Projektvorlagen eingerichtet. Diese Vorlagen werden im Adminbereich von GitLab aktiviert. Wende dich an deine(n) GitLab-Instanzadministrator(in), um benutzerdefinierte Projektvorlagen einzurichten."
msgid "There are no issues to show"
msgstr "Es gibt keine Tickets die angezeigt werden können"
@@ -48751,6 +49734,9 @@ msgstr "Fehler beim Abrufen der Projekt-Tags."
msgid "There was a problem fetching project users."
msgstr "Fehler beim Abrufen der Projektbenutzer(innen)."
+msgid "There was a problem fetching projects."
+msgstr "Beim Abrufen der Projekte ist ein Problem aufgetreten"
+
msgid "There was a problem fetching recent groups."
msgstr "Beim Abrufen von kürzlichen Gruppen ist ein Problem aufgetreten."
@@ -48946,6 +49932,9 @@ msgstr "Diese Beispiele zeigen gängige Methoden zum Auslösen einer Pipeline mi
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr "Es gibt bereits Tickets mit ähnlichem Namen. Es könnte besser sein, dort zu kommentieren, anstatt ein weiteres, ähnliches Ticket zu erstellen."
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr "Diese Runner werden von allen Projekten in dieser Gruppe gemeinsam genutzt."
@@ -48977,7 +49966,7 @@ msgid "This %{issuable} would exceed the maximum number of linked %{issuables} (
msgstr "Dieses %{issuable} würde die maximale Anzahl der verknüpften %{issuables} (%{limit}) überschreiten."
msgid "This %{noteableTypeText} is %{confidentialLinkStart}confidential%{confidentialLinkEnd} and its %{lockedLinkStart}discussion is locked%{lockedLinkEnd}."
-msgstr ""
+msgstr "Diese(r) %{noteableTypeText} ist %{confidentialLinkStart}vertraulich%{confidentialLinkEnd} und die entsprechende %{lockedLinkStart}Diskussion ist gesperrt%{lockedLinkEnd}."
msgid "This %{viewer} could not be displayed because %{reason}. You can %{options} instead."
msgstr "%{viewer} konnte aus dem folgenden Grund nicht angezeigt werden: %{reason}. Stattdessen hast du diese Optionen: %{options}."
@@ -49036,9 +50025,15 @@ msgstr "Dieses Archiv wurde zu oft angefordert. Versuche es später erneut."
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr "Dieser Anhang wurde abgeschnitten, um zu vermeiden, dass die maximal zulässige Anhangsgröße von %{size_limit} überschritten wird. %{written_count} von %{count} %{issuables} wurden berücksichtigt. Ziehe einen erneuten Export mit einer engeren Auswahl an %{issuables} in Betracht."
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr "Dieser Anhang wurde abgeschnitten, um die maximal zulässige Anhangsgröße von %{size_limit} nicht zu überschreiten. %{written_count} von %{total_count} %{object_type} wurden aufgenommen. Erwäge einen erneuten Export mit einer engeren Auswahl von %{object_type}."
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "Dieser Block ist selbstreferenzierend"
@@ -49075,6 +50070,9 @@ msgstr "Dieser Commit wurde in der GitLab-UI angelegt und mit einer von GitLab g
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr "Dieser Commit wurde mit einer %{strong_open}verifizierten%{strong_close} Signatur signiert, und die E-Mail-Adresse des/der Committer(in) wurde verifiziert und gehört derselben Person."
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "Dieser Commit wurde mit einer verifizierten Signatur eines anderen Benutzers/einer anderen Benutzerin signiert."
@@ -49175,7 +50173,7 @@ msgid "This epic does not exist or you don't have sufficient permission."
msgstr "Dieses Epic existiert nicht oder du hast keine ausreichende Berechtigung."
msgid "This feature is only allowed in groups that enable this feature."
-msgstr ""
+msgstr "Diese Funktion ist nur in Gruppen erlaubt, die die Funktion aktiviert haben."
msgid "This feature requires local storage to be enabled"
msgstr "Um diese Funktion verwenden zu können, muss der lokale Speicher aktiviert werden."
@@ -49267,9 +50265,6 @@ msgstr "Dies ist eine private E-Mail-Adresse %{helpIcon}, die nur für dich erst
msgid "This is a security log of authentication events involving your account."
msgstr "Dies ist ein Sicherheitsprotokoll der Authentifizierungsereignisse für dein Konto."
-msgid "This is a self-managed instance of GitLab."
-msgstr "Dies ist eine selbstverwaltete Instanz von GitLab."
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr "Dies ist eine experimentelle Funktion, die von GitLab Incubation Engineering entwickelt wurde."
@@ -49406,7 +50401,7 @@ msgid "This link points to external content"
msgstr "Dieser Link verweist auf externe Inhalte."
msgid "This link will redirect you to %{url}. If this URL looks wrong, please go back or close this window. Do you want to continue?"
-msgstr ""
+msgstr "Dieser Link führt zu %{url}. Wenn dir diese URL merkwürdig vorkommt, kehre zurück oder schließe dieses Fenster. Möchtest du fortfahren?"
msgid "This may expose confidential information as the selected fork is in another namespace that can have other members."
msgstr "Dies kann vertrauliche Informationen offenlegen, da sich der ausgewählte Zweig in einem anderen Namensraum befindet, der andere Mitglieder haben kann."
@@ -49414,12 +50409,6 @@ msgstr "Dies kann vertrauliche Informationen offenlegen, da sich der ausgewählt
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Dies bedeutet, dass du keinen Code pushen kannst, bevor du kein leeres Repository erstellt oder ein existierendes importiert hast."
-msgid "This merge request branch is protected from force push."
-msgstr "Dieser Merge Request-Branch ist vor Force Push geschützt."
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr "Dieser Merge Request kann nicht rebased werden, solange Konflikte vorhanden sind."
-
msgid "This merge request does not have accessibility reports"
msgstr "Diese Merge Request hat keine Barrierefreiheitsberichte"
@@ -49463,11 +50452,16 @@ msgid "This pipeline was created by a schedule."
msgstr ""
msgid "This pipeline was created by an API call authenticated with a trigger token"
-msgstr ""
+msgstr "Diese Pipeline wurde durch einen API-Aufruf erstellt, der mit einem Triggertoken authentifiziert wurde."
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "Dieser Prozess löscht das Projekt-Repository und alle zugehörigen Ressourcen."
@@ -49673,13 +50667,13 @@ msgid "Time (in hours) that users are allowed to skip forced configuration of tw
msgstr "Dauer (in Stunden), für die der/die Benutzer(in) die erzwungene Konfiguration der Zwei-Faktor-Authentifizierung überspringen darf."
msgid "Time Display|12-hour: 2:34 PM"
-msgstr ""
+msgstr "12 Stunden: 2:34 PM"
msgid "Time Display|24-hour: 14:34"
-msgstr ""
+msgstr "24 Stunden: 14:34 Uhr"
msgid "Time Display|System"
-msgstr ""
+msgstr "System"
msgid "Time based: Yes"
msgstr "Zeitbasiert: Ja"
@@ -50111,9 +51105,6 @@ msgstr "Überprüfe, ob die Aktivität von GitLab protokolliert wurde, um sicher
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr "Um sicherzustellen, dass du den Zugriff auf persönliche Inhalte nicht verlierst, verwende dieses Konto nur für Angelegenheiten, die mit %{group_name} zu tun haben."
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr "Um sicherzustellen, dass keine persönlichen Inhalte verloren gehen, sollte dieses Konto nur für Angelegenheiten im Zusammenhang mit %{group_name} verwendet werden."
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr "Um den Status des Repositorys dieses Projekts zum Zeitpunkt einer dieser Versionen zu finden, sieh dir %{link_start}die Tags%{link_end} an"
@@ -50158,6 +51149,9 @@ msgstr "Weitere Informationen zu diesem Projekt findest du unter %{link_to_wiki}
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr "Um die Plätze für alle Mitglieder dieser Gruppe und ihrer Untergruppen und Projekte zu verwalten, besuche die Seite %{link_start}Kontingente%{link_end}."
+msgid "To merge, either the title or description must reference a Jira issue."
+msgstr "Um einen Merge durchzuführen, muss entweder der Titel oder die Beschreibung auf ein Jira-Ticket verweisen."
+
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 "Um ein komplettes GitLab-Projekt von einer GitLab-Installation zu einer anderen umzuziehen oder zu kopieren, navigiere zur Einstellungsseite des Originalprojektes, erzeuge eine Export-Datei und lade sie hier hoch."
@@ -50263,8 +51257,8 @@ msgstr "To-Do wurde erfolgreich als erledigt markiert."
msgid "Today"
msgstr "Heute"
-msgid "Todos count"
-msgstr "Anzahl der Aufgaben"
+msgid "Todos| What actions create to-do items?"
+msgstr ""
msgid "Todos|Added"
msgstr "Hinzugefügt"
@@ -50278,9 +51272,6 @@ msgstr "Jede Aktion"
msgid "Todos|Any Type"
msgstr "Jeder Typ"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr "Bist du auf der Suche nach Aktivitäten? Wirf einen Blick auf %{strongStart}%{openIssuesLinkStart}offene Tickets%{openIssuesLinkEnd}%{strongEnd}, trage zu %{strongStart}%{mergeRequestLinkStart} einem Merge Request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd} bei oder erwähne jemanden in einem Kommentar, um ihm automatisch ein neues Aufgabenelement zuzuweisen."
-
msgid "Todos|Assigned"
msgstr "Zugewiesen"
@@ -50338,6 +51329,9 @@ msgstr "Erwähnt"
msgid "Todos|Merge request"
msgstr "Merge Request"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "Deine Aufgabenliste ist leer. Gute Arbeit!"
@@ -50374,6 +51368,9 @@ msgstr "ha(s)t eine Aufgabe hinzugefügt"
msgid "Todos|has requested access to %{what} %{which}"
msgstr "hat Zugriff auf %{what} %{which} angefordert"
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr "erwähnt %{who}"
@@ -50416,8 +51413,8 @@ msgstr "Commit-Liste ein-/ausklappen"
msgid "Toggle details"
msgstr "Details umschalten"
-msgid "Toggle emoji award"
-msgstr "Emoji-Auszeichnung umschalten"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr ""
@@ -50428,9 +51425,6 @@ msgstr "Fokusmodus umschalten"
msgid "Toggle keyboard shortcuts help dialog"
msgstr "Tastaturkürzel-Hilfedialog umschalten"
-msgid "Toggle navigation"
-msgstr "Navigation umschalten"
-
msgid "Toggle project select"
msgstr "Projektauswahl umschalten"
@@ -50446,11 +51440,11 @@ msgstr "Performance-Leiste umschalten"
msgid "Toggle the navigation sidebar"
msgstr "Navigations-Seitenleiste ein-/ausblenden"
-msgid "Toggled :%{name}: emoji award."
-msgstr "Emoji-Auszeichnung :%{name}: umgeschaltet"
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr "Emoji-Auszeichnung :%{name}: umschalten"
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr "Token"
@@ -50491,18 +51485,6 @@ msgstr "Zu viele Benutzer(innen) gefunden. Schnellaktionen sind auf maximal %{ma
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "Erkunden"
-
-msgid "TopNav|Go back"
-msgstr "Zurück"
-
-msgid "TopNav|Switch to"
-msgstr "Wechseln zu"
-
-msgid "TopNav|Your dashboards"
-msgstr "Deine Dashboards"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "Thema %{source_topic} wurde erfolgreich in Thema %{target_topic} zusammengeführt."
@@ -50571,6 +51553,12 @@ msgstr "Gesamtumfang"
msgid "Total test time for all commits/merges"
msgstr "Gesamte Testzeit für alle Commits/Merges"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "Benutzer(innen) insgesamt"
@@ -50595,18 +51583,37 @@ msgstr "Beginn der Nachverfolgung"
msgid "Tracing"
msgstr "Nachverfolgung"
-msgid "Tracing|%{ms} ms"
-msgstr "%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
-msgid "Tracing|Attribute"
-msgstr "Attribut"
+msgid "Tracing|%{h}h"
+msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|%{m}m"
msgstr ""
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr "Attribut"
+
+msgid "Tracing|Attributes"
+msgstr "Attribute"
+
msgid "Tracing|Date"
msgstr ""
@@ -50617,13 +51624,13 @@ msgid "Tracing|Duration (ms)"
msgstr ""
msgid "Tracing|Error: Failed to load trace details. Try reloading the page."
-msgstr ""
+msgstr "Fehler beim Laden der Nachverfolgungsdetails. Versuche, die Seite neu zu laden."
msgid "Tracing|Error: Something went wrong while fetching the operations. Try again."
-msgstr ""
+msgstr "Fehler beim Abrufen der Vorgänge. Bitte versuche es erneut."
msgid "Tracing|Error: Something went wrong while fetching the services. Try again."
-msgstr ""
+msgstr "Fehler beim Abrufen der Dienste. Bitte versuche es erneut."
msgid "Tracing|Failed to load traces."
msgstr ""
@@ -50662,16 +51669,16 @@ msgid "Tracing|Last 7 days"
msgstr "Letzte 7 Tage"
msgid "Tracing|Metadata"
-msgstr ""
+msgstr "Metadaten"
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
-msgstr ""
+msgstr "Ressourcenattribute"
msgid "Tracing|Select a service to load suggestions"
msgstr ""
@@ -50683,10 +51690,10 @@ msgid "Tracing|Time range"
msgstr ""
msgid "Tracing|Timestamp"
-msgstr ""
+msgstr "Zeitstempel"
msgid "Tracing|Toggle child spans"
-msgstr ""
+msgstr "Untergeordnete Bereiche umschalten"
msgid "Tracing|Trace ID"
msgstr "Spur-ID"
@@ -50802,27 +51809,6 @@ msgstr "Baumstrukturansicht"
msgid "Trending"
msgstr "Beliebt"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,29 +51824,20 @@ msgstr "%{planName}-Testversion"
msgid "Trials|Compare all plans"
msgstr "Alle Pläne vergleichen"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "Erstelle eine neue Gruppe, um deine GitLab Ultimate-Testversion zu starten."
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr "Tag %{daysUsed}/%{duration}"
+msgid "Trials|Don't lose out on additional GitLab features"
+msgstr "Verpasse keine zusätzlichen Funktionen von GitLab"
+
msgid "Trials|Looking to do more with GitLab?"
msgstr "Möchtest du mit GitLab mehr erreichen?"
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
-msgstr "Tarif erweitern für mehr Sicherheitsfunktionen"
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
-msgstr "Mit GitLab Ultimate kannst du Sicherheitslücken in deiner Anwendung erkennen und beheben."
-
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
-msgstr ""
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
+msgstr "Mit einem Upgrade erhältst du den Zugriff auf leistungsstarke Funktionen wie die erweiterte Teamverwaltung für Code, Sicherheit und Berichte zurück."
msgid "Trials|You can apply your trial to a new group or an existing group."
msgstr "Du kannst deine Testversion auf eine neue oder eine vorhandene Gruppe anwenden."
@@ -51002,12 +51979,6 @@ msgstr "Ausschalten"
msgid "Turn on"
msgstr "Einschalten"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr "Zwei-Faktor-Authentifizierung"
@@ -51083,15 +52054,30 @@ msgstr "URL muss ggf. mit Prozentzeichen codiert sein."
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "Die URL muss mit %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd} oder %{codeStart}ftp://%{codeEnd} beginnen."
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr "URL der Grafana-Instanz, auf die über den Menüpunkt „Metrik Dashboard“ verlinkt werden soll."
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr "URL des externen Spam-Prüfungs-Endpunkts"
msgid "URL of the external storage to serve the repository static objects."
msgstr "URL des externen Speichers zur Bereitstellung der statischen Objekte des Repositorys."
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL oder Anfrage-ID"
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr "Nicht berechtigt, eine Umgebung zu erstellen"
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr "Nicht berechtigt, die Umgebung zu aktualisieren"
@@ -51335,8 +52330,8 @@ msgstr "Unbekannter Response Text"
msgid "Unknown user"
msgstr "Unbekannte(r) Benutzer(in)"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
-msgstr "Sofern mit GitLab nicht anders schriftlich vereinbart, erklärst du sich mit dem Klicken auf „Lizenz hochladen“ damit einverstanden, dass deine Nutzung der GitLab-Software den %{eula_link_start}Nutzungsbedingungen%{eula_link_end} unterliegt."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr ""
msgid "Unlimited"
msgstr "Unbegrenzt"
@@ -51363,7 +52358,7 @@ msgid "Unlock account"
msgstr "Konto entsperren"
msgid "Unlock discussion"
-msgstr ""
+msgstr "Diskussion entsperren"
msgid "Unlock more features with GitLab Ultimate"
msgstr "GitLab Ultimate bietet mehr Funktionen"
@@ -51372,7 +52367,7 @@ msgid "Unlock the discussion"
msgstr "Diskussion freigeben"
msgid "Unlock this discussion? %{strongStart}Everyone%{strongEnd} will be able to comment."
-msgstr ""
+msgstr "Diese Diskussion entsperren? Anschließend können %{strongStart}alle Benutzer(innen)%{strongEnd} kommentieren."
msgid "Unlocked"
msgstr "Entsperrt"
@@ -51381,11 +52376,14 @@ msgid "Unlocked the discussion."
msgstr "Diskussion entsperrt."
msgid "Unlocking discussion"
-msgstr ""
+msgstr "Diskussion wird entsperrt"
msgid "Unlocks the discussion."
msgstr "Entsperrt die Diskussion."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "Nicht erreichbar"
@@ -51539,6 +52537,9 @@ msgstr "Abbrechen"
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "Projekt kann nicht umbenannt werden, da es Container-Registry-Tags enthält!"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr "Projekt kann nicht umbenannt werden. Die Überprüfung des Container-Registry-Pfads zum Umbenennen ist fehlgeschlagen: %{error} "
+
msgid "UpdateProject|Could not set the default branch"
msgstr "Der Standard-Branch konnte nicht gesetzt werden"
@@ -51564,7 +52565,7 @@ msgid "UpdateProject|Pruning unreachable objects can lead to repository corrupti
msgstr "Löschen nicht erreichbarer Objekte kann zu einer Beschädigung des Repositorys führen."
msgid "UpdateProject|Updating default branch is blocked by security policy"
-msgstr ""
+msgstr "Das Aktualisieren des Standard-Branchs wird durch eine Sicherheitsrichtlinie blockiert."
msgid "UpdateRepositoryStorage|Timeout waiting for %{type} repository pushes"
msgstr "Zeitüberschreitung beim Warten auf %{type}-Repository-Pushs"
@@ -51677,12 +52678,15 @@ msgstr "%{percentageRemaining}%% verbleibender Namensraum-Speicher."
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr "%{percentageRemaining}%% verbleibender gekaufter Speicher."
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
-msgstr "Demnächst wird ein %{storage_limit_link_start}Speicherlimit für Namensräume%{link_end} für den Namensraum %{strong_start}%{namespace_name}%{strong_end} erzwungen. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
-msgid "UsageQuota|Any additional purchased storage will be displayed here."
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
+msgid "UsageQuota|Any additional purchased storage will be displayed here."
+msgstr "Sämtlicher zusätzlich gekaufter Speicher wird hier angezeigt."
+
msgid "UsageQuota|Audio samples, videos, datasets, and graphics."
msgstr "Hörbeispiele, Videos, Datensätze und Grafiken."
@@ -51692,9 +52696,6 @@ msgstr "Zusätzliche Compute-Minuten kaufen"
msgid "UsageQuota|Buy storage"
msgstr "Speicher kaufen"
-msgid "UsageQuota|Code Suggestions"
-msgstr "Code-Vorschläge"
-
msgid "UsageQuota|Code packages and container images."
msgstr "Code-Pakete und Container-Images."
@@ -51716,15 +52717,15 @@ msgstr "Container-Registry"
msgid "UsageQuota|Dependency proxy"
msgstr "Abhängigkeits-Proxy"
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
msgid "UsageQuota|Filter charts by year"
msgstr "Diagramme nach Jahr filtern"
msgid "UsageQuota|Filter projects data by month"
msgstr "Projektdaten nach Monat filtern"
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "Weitere Informationen zu Speicherlimits findest du in unseren %{faq_link_start}FAQ%{link_end}."
-
msgid "UsageQuota|Git repository."
msgstr "Git-Repository."
@@ -51755,8 +52756,8 @@ msgstr "Mehr über Nutzungsquoten erfahren"
msgid "UsageQuota|Learn more about usage quotas."
msgstr "Mehr über Nutzungsquoten erfahren."
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
-msgstr "Lokaler Proxy für häufig verwendete Upstream-Docker-Images. %{linkStart}Mehr erfahren%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
+msgstr ""
msgid "UsageQuota|Month"
msgstr "Monat"
@@ -51794,8 +52795,8 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
-msgstr ""
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
+msgstr "Projekte in diesem Namensraum haben ein Speicherlimit von %{planLimit}, das auf Repository- und LFS-Objekte angewendet wird."
msgid "UsageQuota|Purchased storage"
msgstr "Gekaufter Speicher"
@@ -51821,9 +52822,6 @@ msgstr "Fehler beim Abrufen der Pipeline-Statistiken"
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr "Beim Abrufen der Projektspeicherstatistik ist etwas schiefgelaufen"
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr "Fehler beim Laden der Nutzungsdetails"
-
msgid "UsageQuota|Storage"
msgstr "Speicher"
@@ -52073,12 +53071,6 @@ msgstr "Vorlage verwenden"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr "Verwende die Option %{strongStart}Test%{strongEnd} oben, um ein Ereignis zu erstellen."
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr "Nutze die Apple App Store Connect-Integration, um dich mit Fastlane in CI-/CD-Pipelines mühelos mit dem Apple App Store zu verbinden."
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr "Nutze die Google Play-Integration, um dich mit Fastlane in CI/CD-Pipelines mit Google Play zu verbinden."
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr "Klicke auf den untenstehenden Link, um deine E-Mail-Adresse zu bestätigen (%{email})"
@@ -52091,6 +53083,12 @@ msgstr "Verwende die Public-Cloud-Instanz-URL (%{kroki_public_url}) oder %{insta
msgid "Use the search bar on the top of this page"
msgstr "Verwende die Suchleiste oben auf dieser Seite"
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr "Hier kannst du deinen Einmalpasswort-Authentifikator und deine WebAuthn-Geräte deaktivieren. Außerdem kannst du neue Wiederherstellungscodes generieren."
@@ -52156,6 +53154,9 @@ msgstr "SCIM-Identität für Benutzer(in) %{user} ist reaktiviert"
msgid "User %{user} was removed from %{group}."
msgstr "Der/die Benutzer(in) %{user} wurde aus der Gruppe %{group} entfernt."
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "Benutzer-ID"
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr "Benutzerbasierte Eskalationsregeln müssen eine(n) Benutzer(in) mit Zugriff auf das Projekt umfassen"
@@ -52711,23 +53715,33 @@ msgstr "Es gibt 0 Elemente, die in dieser Phase für diese Filter in diesem Zeit
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "Mehr als %{stageCount} Elemente"
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr "%{value}M"
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] "%{value} Tag"
+msgstr[1] "%{value} Tage"
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr "%{value}d"
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] "%{value} Stunde"
+msgstr[1] "%{value} Stunden"
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr "%{value}h"
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] "%{value} Minute"
+msgstr[1] "%{value} Minuten"
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr "%{value}m"
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] "%{value} Monat"
+msgstr[1] "%{value} Monate"
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr "%{value}w"
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] "%{value} Woche"
+msgstr[1] "%{value} Wochen"
-msgid "ValueStreamAnalytics|&lt;1m"
-msgstr "&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
+msgstr "&lt;1 Minute"
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
msgstr "Durchschnittliche Anzahl der Bereitstellungen für die Produktion pro Tag."
@@ -52744,6 +53758,9 @@ msgstr "Dashboard"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr "Wertschöpfungskette bearbeiten: %{name}"
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr "Fehler beim Laden der Nutzungsübersichtsdaten"
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr "Dokumente aufrufen"
@@ -52846,15 +53863,6 @@ msgstr "Der Variablenname '%{variable}' darf nicht mit '%{prefix}' beginnen"
msgid "Variables"
msgstr "Variablen"
-msgid "Variables can be:"
-msgstr "Variablen können sein:"
-
-msgid "Variables can have several attributes."
-msgstr "Variablen können mehrere Attribute haben."
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr "In Variablen werden Informationen wie Kennwörter und geheime Schlüssel gespeichert, die du in Job-Skripten verwenden kannst. Alle Projekte in der Instanz können diese Variablen verwenden."
-
msgid "Various container registry settings."
msgstr "Verschiedene Einstellungen für die Container-Registry."
@@ -52936,9 +53944,6 @@ msgstr "Du bist derzeit auf Version %{currentVersion}! Wir empfehlen dringend, u
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr "Du bist derzeit auf Version %{currentVersion}! Wir empfehlen dringend, deine GitLab-Installation unverzüglich auf eine der folgenden Versionen zu aktualisieren: %{latestStableVersions}."
-msgid "VersionCheck|Your GitLab Version"
-msgstr "Deine GitLab-Version"
-
msgid "View File Metadata"
msgstr "Datei-Metadaten ansehen"
@@ -52957,15 +53962,9 @@ msgstr "Alle anzeigen"
msgid "View all environments."
msgstr "Zeige Alle Umgebungen an."
-msgid "View all groups"
-msgstr "Alle Gruppen anzeigen"
-
msgid "View all issues"
msgstr "Alle Tickets anzeigen"
-msgid "View all projects"
-msgstr "Alle Projekte anzeigen"
-
msgid "View blame"
msgstr "Blame anzeigen"
@@ -53064,6 +54063,9 @@ msgstr "Zeige offene Merge Requests"
msgid "View page @ "
msgstr "Seite @ anzeigen "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "Projekt im Adminbereich anzeigen"
@@ -53096,6 +54098,9 @@ msgstr "Dokumentation anzeigen"
msgid "View the latest successful deployment to this environment"
msgstr "Letzte erfolgreiche Bereitstellung in dieser Umgebung anzeigen"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr "Nutzungsbeispiele für Trigger-Token anzeigen"
@@ -53171,6 +54176,9 @@ msgstr "Visual Studio Code (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Visual Studio Code (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr "Der ClickHouse-Datenspeicher ist für diese Gruppe nicht verfügbar"
+
msgid "Vulnerabilities"
msgstr "Sicherheitslücken"
@@ -53226,7 +54234,7 @@ msgid "VulnerabilityExport|CVE"
msgstr "CVE"
msgid "VulnerabilityExport|CVSS Vectors"
-msgstr ""
+msgstr "CVSS-Vektoren"
msgid "VulnerabilityExport|CWE"
msgstr "CWE"
@@ -53240,6 +54248,9 @@ msgstr "Details"
msgid "VulnerabilityExport|Detected At"
msgstr "Erkennungszeitpunkt"
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr "Vollständiger Pfad"
@@ -53310,7 +54321,7 @@ msgid "VulnerabilityManagement|Create Jira issue"
msgstr "Jira-Ticket erstellen"
msgid "VulnerabilityManagement|Dismiss as..."
-msgstr ""
+msgstr "Verwerfen als"
msgid "VulnerabilityManagement|Enter a name"
msgstr "Gib einen Namen ein"
@@ -54020,6 +55031,9 @@ msgstr "SSL-Verifizierung"
msgid "Webhooks|Secret token"
msgstr "Geheim-Token"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "Vertraulicher Teil der URL"
@@ -54518,6 +55532,9 @@ msgstr "Zum Meilenstein hinzufügen"
msgid "WorkItem|All activity"
msgstr "Alle Aktivitäten"
+msgid "WorkItem|Ancestor"
+msgstr "Vorfahre"
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "Möchtest du die Bearbeitung wirklich abbrechen?"
@@ -54541,6 +55558,9 @@ msgstr "Wird blockiert"
msgid "WorkItem|Cancel"
msgstr "Abbrechen"
+msgid "WorkItem|Child items"
+msgstr "Untergeordnete Elemente"
+
msgid "WorkItem|Child objectives and key results"
msgstr "Untergeordnete Ziele und Schlüsselergebnisse"
@@ -54584,6 +55604,9 @@ msgid "WorkItem|Due date"
msgstr "Fälligkeitsdatum"
msgid "WorkItem|Epic"
+msgstr "Epic"
+
+msgid "WorkItem|Existing %{workItemName}"
msgstr ""
msgid "WorkItem|Existing task"
@@ -54622,15 +55645,27 @@ msgstr "Als erledigt markieren"
msgid "WorkItem|Milestone"
msgstr "Meilenstein"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr "Neue(r, s) %{workItemType}"
msgid "WorkItem|New task"
msgstr "Neue Aufgabe"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "Keine Iteration"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "Keine übereinstimmenden Ergebnisse"
@@ -54661,9 +55696,6 @@ msgstr "Ziel"
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr "Nur Projektmitglieder mit mindestens der Rolle Reporter(innen), der/die Autor(in) und Beauftragte können dieses Element (%{workItemType}) anzeigen oder darüber benachrichtigt werden."
-
msgid "WorkItem|Open"
msgstr "Offen"
@@ -54685,14 +55717,17 @@ msgstr "Anforderungen"
msgid "WorkItem|Save and overwrite"
msgstr "Speichern und überschreiben"
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr "Typ auswählen"
+msgid "WorkItem|Show all ancestors"
+msgstr "Alle Vorfahren anzeigen"
+
msgid "WorkItem|Show labels"
-msgstr ""
+msgstr "Labels anzeigen"
msgid "WorkItem|Someone edited the description at the same time you did. If you save it will overwrite their changes. Please confirm you'd like to save your edits."
msgstr "Jemand hat die Beschreibung zur gleichen Zeit bearbeitet. Wenn du es speicherst, werden die Änderungen überschrieben. Bitte bestätige, dass du deine Änderungen speichern möchten."
@@ -54706,6 +55741,9 @@ msgstr "Beim Löschen von %{workItemType}ist etwas schief gelaufen. Bitte versuc
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "Beim Löschen der Aufgabe ist etwas schiefgelaufen. Bitte erneut versuchen"
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr "Fehler beim Abrufen der Iterationen. Versuche es erneut."
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr "Beim Abrufen der Labels ist etwas schief gelaufen. Bitte versuche es erneut."
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "Beim Abrufen der Aufgaben ist etwas schief gelaufen. Bitte aktualisiere diese Seite."
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr "Beim Abrufen der Workitem-Typen ist etwas schiefgelaufen. Bitte erneut versuchen"
@@ -54749,7 +55784,7 @@ msgid "WorkItem|Something went wrong while fetching milestones. Please try again
msgstr "Beim Abrufen von Meilensteinen ist etwas schief gelaufen. Bitte versuche es erneut."
msgid "WorkItem|Something went wrong while fetching the %{workItemType}. Please try again."
-msgstr ""
+msgstr "Fehler beim Abrufen der(s) %{workItemType}. Bitte versuche es erneut."
msgid "WorkItem|Something went wrong while fetching work item award emojis. Please try again."
msgstr ""
@@ -54847,8 +55882,8 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr "bezieht sich auf"
-msgid "WorkItem|the following item(s)"
-msgstr "das/die folgende(n) Element(e)"
+msgid "WorkItem|the following items"
+msgstr ""
msgid "Workspaces"
msgstr "Arbeitsbereiche"
@@ -54865,6 +55900,9 @@ msgstr "Arbeitsbereiche konnten nicht geladen werden"
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr "Cluster-Agenten für dieses Projekt konnten nicht abgerufen werden"
+msgid "Workspaces|Create a new workspace"
+msgstr "Neuen Arbeitsbereich erstellen"
+
msgid "Workspaces|Create workspace"
msgstr "Arbeitsbereich erstellen"
@@ -54943,8 +55981,8 @@ msgstr "Um einen Arbeitsbereich für dieses Projekt zu erstellen, muss ein(e) Ad
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr "Um einen Arbeitsbereich zu erstellen, füge diesem Projekt eine dev-Datei hinzu. Eine dev-Datei ist eine Konfigurationsdatei für deinen Arbeitsbereich."
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
-msgstr "Aktuelle Arbeitsbereiche können nicht geladen werden. Bitte versuche es erneut oder kontaktiere eine(n) Administrator(in)."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
+msgstr ""
msgid "Workspaces|Unknown state"
msgstr "Unbekannter Status"
@@ -54997,6 +56035,12 @@ msgstr "Gib Versionshinweise ein oder ziehe deine Dateien hierher."
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr "Falsche externe UID angegeben. Überprüfe, ob Auth0 korrekt konfiguriert ist."
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "XCode"
@@ -55024,6 +56068,9 @@ msgstr "Gestern"
msgid "You"
msgstr "Du"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr "Du hast bereits eine ausstehende Aufgabe für diesen Alarm."
@@ -55339,10 +56386,10 @@ msgid "You cannot combine replace_ids with add_ids or remove_ids"
msgstr "Du kannst replace_ids nicht mit add_ids oder remove_ids kombinieren"
msgid "You cannot create new projects in your personal namespace because you have reached your personal project limit."
-msgstr ""
+msgstr "Du kannst keine neuen Projekte in deinem persönlichen Namensraum erstellen, da du dein persönliches Projektlimit erreicht hast."
msgid "You cannot create projects in your personal namespace. Contact your GitLab administrator."
-msgstr ""
+msgstr "Du kannst keine Projekte in deinem persönlichen Namensraum erstellen. Wende dich an deine(n) GitLab-Administrator(in)."
msgid "You cannot impersonate a blocked user"
msgstr "Du kannst dich nicht als gesperrte(r) Benutzer(in) anmelden"
@@ -55392,12 +56439,12 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
-msgstr ""
-
msgid "You do not have access to any projects for creating incidents."
msgstr "Du hast keinen Zugriff auf Projekte zum Erstellen von Vorfällen."
+msgid "You do not have access to chat feature."
+msgstr ""
+
msgid "You do not have any subscriptions yet"
msgstr "Du hast noch keine Abonnements"
@@ -55449,6 +56496,9 @@ msgstr "Du hast keine aktuellen Suchanfragen"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr "Du bist nicht dazu berechtigt, diese Bereitstellung zu genehmigen. Wende dich an den/die Eigentümer(in) des Projekts oder der Gruppe, um Hilfe zu erhalten."
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr "Du bist nicht dazu berechtigt, diesen Epic anzuzeigen."
@@ -55478,6 +56528,9 @@ msgstr[1] "Du hast %{pendingMembersCount} ausstehende Mitglieder, die genehmigt
msgid "You have already reported this user"
msgstr "Du hast diese(n) Benutzer(in) bereits gemeldet."
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "Dir wurde %{access_level} Zugriff auf %{source_link} %{source_type} gegeben."
@@ -55511,8 +56564,8 @@ msgstr "Du verfügst nicht über die nötigen Berechtigungen, um Eskalationsrich
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr "Du hast keine Berechtigung, um eine Aufgabe für diesen Alarm zu erstellen."
-msgid "You have insufficient permissions to create a target branch rule"
-msgstr "Du hast nicht die erforderlichen Berechtigungen, um eine Zielbranch-Regel zu erstellen."
+msgid "You have insufficient permissions to create a branch target"
+msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
msgstr "Du hast nicht genügend Berechtigungen, um eine HTTP-Integration für dieses Projekt zu erstellen"
@@ -55521,10 +56574,10 @@ msgid "You have insufficient permissions to create an on-call schedule for this
msgstr "Du hast nicht genügend Berechtigungen, um einen Bereitschaftszeitplan für dieses Projekt zu erstellen"
msgid "You have insufficient permissions to create organizations"
-msgstr ""
+msgstr "Du hast nicht die erforderlichen Berechtigungen, um Organisationen zu erstellen."
-msgid "You have insufficient permissions to delete a target branch rule"
-msgstr "Du hast nicht die erforderlichen Berechtigungen, um eine Zielbranch-Regel zu löschen."
+msgid "You have insufficient permissions to delete a branch target"
+msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
msgstr "Du hast nicht die benötigte Berechtigung um Alarme für dieses Projekt zu verwalten"
@@ -55556,6 +56609,9 @@ msgstr "Du verfügst nicht über die nötigen Berechtigungen, um Kundenkontakte
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr "Du hast nicht genügend Berechtigungen, um einen Bereitschaftszeitplan für dieses Projekt zu erstellen"
+msgid "You have insufficient permissions to update the organization"
+msgstr "Du verfügst nicht über die erforderlichen Berechtigungen, um die Organisation zu aktualisieren"
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "Du hast nicht genügend Berechtigungen, um diese HTTP-Integration zu aktualisieren"
@@ -55595,6 +56651,9 @@ msgstr "Du kannst den Meilenstein jetzt schließen."
msgid "You must be authenticated to access this path."
msgstr "Du musst authentifiziert sein, um auf diesen Pfad zuzugreifen."
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "Du musst angemeldet sein, um in ganz GitLab suchen zu können"
@@ -55707,7 +56766,7 @@ msgid "You'll need to use different branch names to get a valid comparison."
msgstr "Du musst unterschiedliche Branchnamen verwenden, um einen gültigen Vergleich zu erhalten."
msgid "You're about to leave GitLab"
-msgstr ""
+msgstr "Du bist dabei, GitLab zu verlassen."
msgid "You're about to reduce the visibility of the project %{strong_start}%{project_name}%{strong_end} in %{strong_start}%{group_name}%{strong_end}."
msgstr "Du bist dabei, die Sichtbarkeit des Projekts %{strong_start}%{project_name}%{strong_end} in %{strong_start}%{group_name}%{strong_end} zu reduzieren."
@@ -55770,7 +56829,7 @@ msgid "You've already enabled two-factor authentication using one time password
msgstr "Du hast bereits Zwei-Faktor-Authentifizierung mit einem Einmalpasswort-Authentifizierer aktiviert. Um ein anderes Gerät zu registrieren, mußt du zunächst die Zwei-Faktor-Authentifizierung deaktivieren."
msgid "You've reached your limit of %{limit} projects created. Contact your GitLab administrator."
-msgstr ""
+msgstr "Du hast dein Limit von %{limit} erstellten Projekten erreicht. Wende dich an deine(n) GitLab-Administrator(in)."
msgid "You've rejected %{user}"
msgstr "Du hast %{user} abgelehnt"
@@ -55807,6 +56866,9 @@ msgstr "Dein %{strong}%{plan_name}%{strong_close}-Abonnement für %{strong}%{nam
msgid "Your Activity"
msgstr "Deine Aktivität"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr "Deine CI/CD Konfigurationssyntax ist ungültig. Wähle die Registerkarte Validate für weitere Details."
@@ -55819,6 +56881,9 @@ msgstr "Der CSV-Export von %{count} aus dem Projekt %{project_link} wurde dieser
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr "Dein CSV-Export von %{exported_objects} aus dem Projekt %{project_name} (%{project_url}) wurde als Anhang zu dieser E-Mail hinzugefügt."
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr "Deine CSV-Exportanfrage war erfolgreich. Das Ergebnis wird per E-Mail an %{email} gesendet."
@@ -55834,10 +56899,10 @@ msgstr "Dein CSV-Export für die Gruppe %{group_name} wurde als Anhang zu dieser
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr "Deine DevOps-Berichte geben einen Überblick darüber, wie du GitLab aus Sicht der Funktionen nutzt. Damit kannst du sehen, wie du im Vergleich zu anderen Unternehmen und wie deine Teams im Vergleich zueinander abschneiden."
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Dein Name"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr "Der Speicher deines Namensraums ist voll. Dieser Merge Request kann nicht zusammengeführt werden. Um fortzufahren, kannst du %{link_start}deine Speichernutzung verwalten%{link_end}."
+
msgid "Your new %{accessTokenType}"
msgstr "Dein neues %{accessTokenType}"
@@ -56073,6 +57141,9 @@ msgstr "Deine Projekte"
msgid "Your public email will be displayed on your public profile."
msgstr "Deine öffentliche E-Mail-Adresse wird in deinem öffentlichen Profil angezeigt."
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr "Dein Push in dieses Repository wurde abgelehnt, da er das Speicherlimit für Namensräume von %{size_limit} überschreiten würde. Schaffe Platz in deinem Namensraum-Speicher oder kaufe zusätzlichen Speicherplatz. Weitere Informationen dazu, wie du deinen Speicher verwaltest oder zusätzlichen Speicherplatz kaufst, findest du unter%{manage_storage_url}. Weitere Informationen zu eingeschränkten Aktionen findest du unter %{restricted_actions_url}"
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr "Deine Zugangsanfrage konnte nicht bearbeitet werden: %{error_message}"
@@ -56210,6 +57281,9 @@ msgstr "[entfernt]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr "[Unterstützt GitLab-flavored Markdowns, einschließlich Quick Actions]"
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr "`end_time` sollte einen Monat nach `start_time` nicht überschreiten"
@@ -56441,12 +57515,12 @@ msgstr "darf nicht leer sein"
msgid "cannot be changed"
msgstr "kann nicht geändert werden"
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr "kann aufgrund einer bestehenden Verknüpfung mit einer benutzerdefinierten Rolle nicht geändert werden"
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "kann nicht geändert werden, wenn ein persönliches Projekt Container-Registry-Tags enthält."
-msgid "cannot be changed since member is associated with a custom role"
-msgstr "kann nicht geändert werden, da das Mitglied mit einer benutzerdefinierten Rolle verknüpft ist"
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr "kann nicht in %{new_type} geändert werden, wenn eine Verbindung zu einem übergeordneten %{parent_type} besteht."
@@ -56516,9 +57590,6 @@ msgstr "%{degradedNum} verschlechtert"
msgid "ciReport|%{improvedNum} improved"
msgstr "%{improvedNum} verbessert"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr "%{linkStartTag}Erfahre mehr über Codequalitätsberichte%{linkEndTag}"
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr "%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
@@ -56561,8 +57632,8 @@ msgstr "Analysiere eine eingesetzte Version deiner Webanwendung auf bekannte Sch
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "Patch automatisch in einem neuen Branch anwenden"
-msgid "ciReport|Base pipeline codequality artifact not found"
-msgstr "Basis-Pipeline-Codequalitätsartefakt nicht gefunden"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr "öffnet automatisch einen Merge Request mit einer KI-generierten Lösung"
msgid "ciReport|Browser Performance"
msgstr "Browser-Performance"
@@ -56599,19 +57670,6 @@ msgstr "Code Quality hat sich nicht geändert."
msgid "ciReport|Code Quality is loading"
msgstr "Code Quality wird geladen"
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] "Code-Qualität aufgrund von einem neuen Problem verschlechtert"
-msgstr[1] "Code-Qualität aufgrund von %d neuen Problemen verschlechtert"
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] "Code-Qualität aufgrund von einem behobenen Problem verbessert"
-msgstr[1] "Code-Qualität aufgrund von %d behobenen Problemen verbessert"
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr "Der Code-Qualitätsscan hat %{issueCount} Änderungen in zusammengeführten Ergebnissen festgestellt"
-
msgid "ciReport|Container Scanning"
msgstr "Container-Scan"
@@ -56731,15 +57789,18 @@ msgstr "Manuell hinzugefügt"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr "Neue Sicherheitslücken sind Sicherheitslücken, die der Sicherheits-Scan im Merge Request entdeckt, die sich von den vorhandenen Sicherheitslücken im Standard-Branch unterscheiden."
-msgid "ciReport|No changes to code quality"
-msgstr "Keine Änderungen an der Codequalität"
-
msgid "ciReport|No code quality issues found"
msgstr "Keine Probleme mit der Codequalität gefunden"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr "Mit KI lösen"
+
msgid "ciReport|Resolve with merge request"
msgstr "Mit Merge Request lösen"
@@ -56797,9 +57858,6 @@ msgstr "Fehler beim Ausblenden der Sicherheitslücke. Bitte versuche es erneut."
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr "Beim Verwerfen der Sicherheitslücke ist ein Fehler aufgetreten: %{error}"
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr "Fehler beim Abrufen des Codequalitätsberichts."
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "Fehler beim Wiedereinblenden der Sicherheitslücke. Bitte versuche es erneut."
@@ -57259,6 +58317,9 @@ msgstr "ist nicht mit einem SAML-Konto verknüpft oder hat eine inaktive SCIM-Id
msgid "is not one of"
msgstr "ist nicht"
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr "ist nicht gültig. Die Iterationsgruppe muss mit der Iterationsrhythmusgruppe übereinstimmen."
@@ -57423,6 +58484,9 @@ msgstr "Änderungen zusammengeführt in %{targetBranch} mit %{mergeCommitSha}%{s
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "Die Änderungen wurden nicht in zusammengeführt in %{targetBranch}."
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr "Als bereit markieren"
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr "Merge Request enthält keine Änderungen."
@@ -57568,10 +58632,10 @@ msgid "mrWidget|Approve additionally"
msgstr "Zusätzlich bestätigen"
msgid "mrWidget|Approve additionally with SAML"
-msgstr ""
+msgstr "Zusätzlich mit SAML bestätigen"
msgid "mrWidget|Approve with SAML"
-msgstr ""
+msgstr "Mit SAML bestätigen"
msgid "mrWidget|Approved by"
msgstr "Genehmigt von"
@@ -57668,10 +58732,10 @@ msgid "mrWidget|Merged by"
msgstr "Merged von"
msgid "mrWidget|Merging immediately is not recommended. The merged changes could cause pipeline failures on the target branch, and the changes will not be validated against the commits being added by the merge requests currently in the merge train. Read the %{linkStart}documentation%{linkEnd} for more information."
-msgstr ""
+msgstr "Vom sofortigen Zusammenführen wird abgeraten. Die zusammengeführten Änderungen können Pipeline-Fehler im Ziel-Branch verursachen, und die Änderungen werden nicht gegen die Commits validiert, die von den derzeit im Merge-Zug befindlichen Merge Requests hinzugefügt werden. Weitere Informationen findest du in der %{linkStart}Dokumentation%{linkEnd}."
msgid "mrWidget|Merging immediately isn't recommended as it may negatively impact the existing merge train. Read the %{linkStart}documentation%{linkEnd} for more information."
-msgstr ""
+msgstr "Vom sofortigen Zusammenführen wird abgeraten, da es sich negativ auf den vorhandenen Merge-Zug auswirken kann. Weitere Informationen findest du in der %{linkStart}Dokumentation%{linkEnd}."
msgid "mrWidget|Please restore it or use a different %{type} branch."
msgstr "Stelle ihn wieder her oder verwende einen anderen %{type}-Branch."
@@ -57760,6 +58824,18 @@ msgstr "muss ein Debian-Paket sein"
msgid "must be a boolean value"
msgstr "muss ein boolescher Wert sein"
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr "muss eine root Gruppe sein."
@@ -57782,16 +58858,16 @@ msgid "must be after start"
msgstr "muss nach dem Start sein"
msgid "must be an array"
-msgstr ""
+msgstr "muss ein Array sein."
msgid "must be an array of CIDR values"
-msgstr ""
+msgstr "muss ein Array von CIDR-Werten sein."
msgid "must be an array of hash"
-msgstr ""
+msgstr "muss ein Hash-Array sein."
msgid "must be an array of hash containing 'allow' attribute of type string"
-msgstr ""
+msgstr "muss ein Hash-Array sein, das das 'allow'-Attribut als Zeichenfolge enthält."
msgid "must be an email you have verified"
msgstr "muss eine von dir bestätigte E-Mail-Adresse sein"
@@ -57805,6 +58881,9 @@ msgstr "muss mindestens 1 Tag sein"
msgid "must be before %{expiry_date}"
msgstr "muss vor %{expiry_date} liegen"
+msgid "must be enabled."
+msgstr "muss aktiviert sein."
+
msgid "must be false when email confirmation setting is off"
msgstr "muss falsch sein, wenn die E-Mail-Bestätigungseinstellung deaktiviert ist"
@@ -57823,6 +58902,9 @@ msgstr "muss sich innerhalb des Fork-Netzwerks befinden"
msgid "must be less than the limit of %{tag_limit} tags"
msgstr "muss kleiner als das Limit von %{tag_limit} Tags sein"
+msgid "must be one of: %{values}"
+msgstr "muss zu den Folgenden zählen: %{values} "
+
msgid "must be owned by the user's enterprise group"
msgstr "muss im Besitz der Enterprise-Gruppe des/der Benutzer(in) sein"
@@ -57856,6 +58938,9 @@ msgstr "muss ein Repository haben"
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr "das „aktiviert“-Flag muss „true“ sein"
+
msgid "must match %{association}.project_id"
msgstr "muss mit %{association}.project_id übereinstimmen"
@@ -58092,6 +59177,9 @@ msgstr "Startdatum entfernen"
msgid "remove weight"
msgstr "Gewichtung entfernen"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr "%{link_type}-Link entfernt"
@@ -58120,9 +59208,6 @@ msgstr[1] "Repositorys"
msgid "repository:"
msgstr "Repository:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr "Die grundlegende Zugriffsstufe der Rolle stimmt nicht mit der Zugriffsstufe der Mitgliedschaft überein"
-
msgid "rule"
msgid_plural "rules"
msgstr[0] "Regel"
@@ -58295,6 +59380,9 @@ msgstr "Testfall"
msgid "the correct format."
msgstr "das richtige Format."
+msgid "the custom role's base access level does not match the current access level"
+msgstr "die Basis-Zugriffsstufe der benutzerdefinierten Rolle stimmt nicht mit der aktuellen Zugriffsstufe überein"
+
msgid "the following epics"
msgstr "die folgenden Epics"
@@ -58304,6 +59392,9 @@ msgstr "die folgenden Vorfälle oder Tickets"
msgid "the following issues"
msgstr "die folgenden Ticket"
+msgid "the member access level can't be higher than the current user's one"
+msgstr "die Mitglieds-Zugriffsebene kann nicht höher sein als die des aktuellen Benutzers bzw. der aktuellen Benutzerin"
+
msgid "the wiki"
msgstr "das Wiki"
@@ -58332,7 +59423,7 @@ msgid "total must be less than or equal to %{size}"
msgstr "Wert muss kleiner als oder gleich %{size} sein."
msgid "trigger token"
-msgstr ""
+msgstr "Trigger-Token"
msgid "triggered"
msgstr "ausgelöst"
diff --git a/locale/el_GR/gitlab.po b/locale/el_GR/gitlab.po
index 12b43ba762e..3421c2c5665 100644
--- a/locale/el_GR/gitlab.po
+++ b/locale/el_GR/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: el\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/en_GB/gitlab.po b/locale/en_GB/gitlab.po
index 8a139605096..4cf464b6743 100644
--- a/locale/en_GB/gitlab.po
+++ b/locale/en_GB/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: en-GB\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr " %{start} to %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d assigned issue"
-msgstr[1] "%d assigned issues"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d comment"
msgstr[1] "%d comments"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d comment on this commit"
-msgstr[1] "%d comments on this commit"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d commenter"
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d completed issue"
msgstr[1] "%d completed issues"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d contribution"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d issue successfully imported with the label"
msgstr[1] "%d issues successfully imported with the label"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d job"
@@ -547,6 +537,9 @@ msgstr "%{author_link} wrote:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName}'s thread"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} authored %{commit_authored_timeago}"
@@ -707,12 +691,6 @@ msgstr "%{days} days until tags are automatically removed"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} more downstream pipelines"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} deleted"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr "Git abuse rate limit"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "Administrators"
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr "All eligible users"
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "Allows projects to track errors using an Opstrace integration."
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr "An error occurred while retrieving your settings. Reload the page to try
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "An error occurred while saving your settings. Try saving them again."
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "Must be %{minimumNumberOfUsers} (your seats in use) or more."
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr "Colourise messages"
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr "Background colour"
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr "Deletion protection"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "Only administrators can delete projects."
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "Owners and administrators can delete projects."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "Re-deploy environment"
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr "Failed to load groups."
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "Updating your Pages configuration..."
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr " %{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
-msgstr ""
-
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr "Email notifications are disabled"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "Members cannot invite groups outside of %{group} and its subgroups"
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "Organisations and contacts can be created and associated with issues."
@@ -23314,6 +23705,12 @@ msgstr "Projects in %{group} cannot be shared with other groups"
msgid "GroupSettings|Reporting"
msgstr "Reporting"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr "Cannot find namespace. Make sure you have sufficient permissions."
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr "Search job log"
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr "Set up your first project's CI/CD"
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "Start a free trial of GitLab Ultimate"
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr "- Included in trial"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|ID"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr "Notifications turned on."
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,18 +32988,15 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "Assignee changed from %{fromNames} to %{toNames}"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "Assignee changed to %{toNames}"
-
msgid "Notify|Author: %{author_name}"
msgstr ""
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr "If you no longer wish to use this domain with GitLab Pages, please remov
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr "Provide Feedback"
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr "Key: Runners|Existing runners are not affected. To permit runner registr
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr "Inherited"
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,17 +49100,23 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "The date when the release is ready. A release with a date in the future is labelled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr ""
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr "Too many users found. Quick actions are limited to at most %{max_count}
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr "Something went wrong while loading usage details"
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "Are you sure you want to cancel editing?"
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr "Open"
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "Something went wrong when deleting the task. Please try again."
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,8 +57632,8 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
-msgstr "Base pipeline codequality artefact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr ""
msgid "ciReport|Browser Performance"
msgstr ""
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/eo/gitlab.po b/locale/eo/gitlab.po
index 30d3302e36b..f6d2eac82a0 100644
--- a/locale/eo/gitlab.po
+++ b/locale/eo/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: eo\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Branĉoj"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Elekti dosierojn"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr "Kreu propran atingoĵetonon en via konto por ebligi al vi eltiri kaj alp
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr "La refreÅigo komenciÄis sukcese"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Lasta enmetado"
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr "Rememorigu denove"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr "Iri al branĉo/etikedo"
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Ĉi tiu signifas, ke vi ne povos alpuÅi kodon, antaÅ­ ol vi kreos malplenan deponejon aÅ­ enportos jam ekzistantan."
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Totala tempo por la testado de ĉiuj enmetadoj/kunfandoj"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr "Vidi la malfermitan peton pri kunfando"
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Via nomo"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/es/gitlab.po b/locale/es/gitlab.po
index bdb0e29a22f..a2847a88df5 100644
--- a/locale/es/gitlab.po
+++ b/locale/es/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: es-ES\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:33\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr " %{start} hasta %{end}"
@@ -139,8 +139,8 @@ msgstr[1] "%d comentaristas adicionales"
msgid "%d additional committer"
msgid_plural "%d additional committers"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d contribuyente adicional"
+msgstr[1] "%d contribuyentes adicionales"
msgid "%d additional user"
msgid_plural "%d additional users"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d comentario"
msgstr[1] "%d comentarios"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d comentario en este commit"
-msgstr[1] "%d comentarios en este commit"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d ha comentado"
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d incidencia completada"
msgstr[1] "%d incidencias completadas"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d colaboración"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d incidencia importada correctamente con la etiqueta"
msgstr[1] "%d incidencias importadas correctamente con la etiqueta"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d trabajo"
@@ -547,6 +537,9 @@ msgstr "%{author_link} escribió:"
msgid "%{authorsName}'s thread"
msgstr "Hilo de %{authorsName}"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} solicitó fusionar %{source_branch} %{copy_button} en %{target_branch} %{created_at}"
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Enmascarado:%{code_close} Oculto en los registros de los trabajos. Debe coincidir con los requisitos de enmascaramiento."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} creado %{commit_authored_timeago}"
@@ -707,12 +691,6 @@ msgstr "%{days} días hasta que las etiquetas se eliminen automáticamente"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Evento de Sentry: %{errorUrl}- Visto por primera vez: %{firstSeen}- Visto por última vez: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{doc_link_start}La búsqueda avanzada%{doc_link_end} está deshabilitada porque %{ref_elem} no es la rama predeterminada. %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}La búsqueda avanzada%{doc_link_end} está habilitada."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}Sobre los niveles de visibilidad.%{docs_link_end}"
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@empresa.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} más pipelines downstream"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} eliminado"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow}, y %{awardsListLength} más"
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} Branch"
@@ -1275,8 +1265,11 @@ msgstr "%{timebox_type} requiere una fecha de inicio y de vencimiento"
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
-msgstr "%{title} cambios"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} libre)"
@@ -1290,6 +1283,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} libre)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} advertencia(s) encontradas:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr "%{user} creó una incidencia: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} no está incluido en la lista"
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr "'%{data_pointer}' debe ser un '%{type}' válido"
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' no es un nivel de visibilidad válido"
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr "(Sin cambios)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(comprobar el progreso)"
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(Déjelo en blanco si no quiere cambiarlo)"
-msgid "(max size 15 MB)"
-msgstr "(tamaño máximo 15 MB)"
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr "+ %{amount} más"
msgid "+ %{count} more"
msgstr "+ %{count} más"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr "Una página básica y una función serverless que usa AWS Lambda, AWS AP
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "Una plantilla básica para desarrollar programas de Linux usando Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "Una plataforma DevOps completa"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,8 +1904,8 @@ msgstr "Una plantilla lista para utilizar con aplicaciones de Android"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "Una plantilla lista para usar con las aplicaciones iOS basadas en Swift"
-msgid "A rebase is already in progress."
-msgstr "Ya hay un rebase en progreso."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "Se ha realizado un inicio de sesión en su cuenta desde la siguiente dirección IP: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr "Habilitar funciones Beta y Experimentales asistidas por IA"
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr "API Fuzzing"
msgid "API Help"
msgstr "Ayuda de la API"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "Clave API"
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr "Añadir una regla de aprobación"
msgid "Add approvers"
msgstr "Añadir aprobadores"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Añadir una tarea épica hija a otra tarea épica"
@@ -3014,9 +3067,6 @@ msgstr "Añadir sugerencia para el lote"
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "Ajusta la frecuencia con la que la interfaz de usuario de GitLab busca actualizaciones."
-msgid "Admin"
-msgstr "Administrador"
-
msgid "Admin Area"
msgstr "Ãrea de administración"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "Modo de administrador"
+
msgid "Admin Note"
msgstr "Nota del administrador"
@@ -3188,9 +3238,6 @@ msgstr "Administrar notificaciones"
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Ya está habilitado el modo de administración"
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr "docs"
msgid "AdminUsers|user cap"
msgstr "límite de usuarios"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "Administradores"
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr "Después de una actualización correcta de la contraseña, será redirig
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr "Algoritmo"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Todos"
@@ -4796,9 +4870,6 @@ msgstr "Todos los usuarios elegibles"
msgid "All environments"
msgstr "Todos los entornos"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr "Todos los usuarios deben tener un nombre."
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr "Permitir a esta clave hacer push a este repositorio"
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr "Permitir a los usuarios crear organizaciones"
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Permitido"
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Le permite añadir y administrar clusters de Kubernetes."
-
msgid "Almost there"
msgstr "¡Ya queda poco!"
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "Un administrador cambió la contraseña de su cuenta de GitLab en %{link_to}."
@@ -5018,9 +5092,6 @@ msgstr "Una aplicación llamada %{link_to_client} está solicitando el acceso a
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Se agregará a un campo de usuario de Gitlab el nombre completo del usuario de FogBugz (por ejemplo, \"John Smith\") en la descripción de todos los errores y los comentarios. También se asociarán o asignarán estos errores y comentarios al creador del proyecto."
@@ -5096,9 +5167,6 @@ msgstr "Se ha producido un error al deshabilitar Service Desk."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Se ha producido un error al desactivar la alerta. Actualice la página y vuelva a intentarlo."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Se ha producido un error al desactivar la función resaltar. Actualice la página y vuelva a intentarlo."
-
msgid "An error occurred while drawing job relationship links."
msgstr "Se ha producido un error al representar los enlaces de relaciones del trabajo."
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr "Se ha producido un error al guardar los cambios: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "Se ha producido un error al guardar los ajustes."
-msgstr[1] "Se han producido un error al guardar los ajustes."
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr "Analizando archivo…"
msgid "Ancestors"
msgstr "Antepasados"
-msgid "And this registration token:"
-msgstr "Y este token de registro:"
-
msgid "Anonymous"
msgstr "Anónimo"
@@ -5829,6 +5904,27 @@ msgstr "Añadir el comentario con %{shrug}"
msgid "Append the comment with %{tableflip}"
msgstr "Añadir el comentario con %{tableflip}"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Arrastra y suelta tu archivo de claves privadas aquí o %{linkStart}haz clic para cargarlo%{linkEnd}."
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Aplicación"
msgid "Application ID"
msgstr "ID de la aplicación"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr "Los límites de la aplicación se han guardado correctamente"
@@ -6103,7 +6193,7 @@ msgid "Approval options"
msgstr ""
msgid "Approval rejected."
-msgstr ""
+msgstr "Aprobación rechazada."
msgid "Approval rules"
msgstr "Reglas de aprobación"
@@ -6267,7 +6357,7 @@ msgid "ApprovalSettings|Remove approvals by Code Owners if their files changed"
msgstr ""
msgid "ApprovalSettings|Require user re-authentication (password or SAML) to approve"
-msgstr ""
+msgstr "Requiere re-autenticación de usuario (contraseña o SAML) para aprobar"
msgid "ApprovalSettings|There was an error loading merge request approval settings."
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr "Archivar trabajos"
msgid "Archive project"
msgstr "Archivar proyecto"
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr "Archivado"
@@ -6458,6 +6545,9 @@ msgstr "¿Está seguro que quiere eliminar este %{commentType}?"
msgid "Are you sure you want to delete this SSH key?"
msgstr "¿Está seguro de que desea eliminar la clave SSH?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "¿Está seguro que desea eliminar este comentario?"
@@ -6473,9 +6563,6 @@ msgstr "¿Está seguro de que quiere borrar esta etiqueta?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "¿Está seguro que desea eliminar este pipeline? Al hacerlo caducarán todas las cachés del pipeline y se eliminarán todos los objetos relacionados, como construcciones, logs, artefactos y disparadores. Esta acción no se puede deshacer."
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr "¿Estás seguro de que deseas desplegar este entorno?"
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "A medida que continuamos construyendo más características para SAST, nos gustaría conocer su opinión sobre la función de configuración SAST en %{linkStart}esta incidencia%{linkEnd}."
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,14 +6898,11 @@ msgstr "Se requiere al menos la aprobación de un propietario del código para c
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr "Debe especificar por lo menos un group_id o un project_id"
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr ""
+msgid "At least one of group_id or project_id must be specified"
+msgstr "Debe especificar por lo menos un group_id o un project_id"
msgid "At risk"
msgstr "En riesgo"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr "Peticiones web autenticadas"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "Autenticación"
@@ -7307,12 +7403,6 @@ msgstr "Resuelto automáticamente"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "Nota"
@@ -7337,12 +7427,18 @@ msgstr "El avatar será eliminado. ¿Está seguro?"
msgid "Average per day: %{average}"
msgstr "Promedio por día: %{average}"
+msgid "Awaiting review"
+msgstr "Esperando revisión"
+
msgid "Awaiting user signup"
msgstr "En espera del registro de usuario"
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "Atrás"
@@ -7394,9 +7490,6 @@ msgstr "Añadir insignia"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Se ha producido un error al agregar la insignia, por favor, compruebe las URLs introducidas e inténtelo de nuevo."
-
msgid "Badges|Badge image URL"
msgstr "URL de imagen de la insignia"
@@ -7409,9 +7502,6 @@ msgstr "Insignia guardada."
msgid "Badges|Delete badge?"
msgstr "¿Desea eliminar la insignia?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Se ha producido un error al eliminar la insignia. Inténtelo de nuevo."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr "Introduce una URL válida"
msgid "Badges|Example: %{exampleUrl}"
msgstr "Ejemplo: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr "Se ha producido un error al agregar nueva insignia. Revisa las direcciones URL e intenta nuevamente."
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr "Se ha producido un error al borrar la insignia. Intenta nuevamente."
+
msgid "Badges|Group Badge"
msgstr "Insignia del grupo"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr "Una vez eliminada esta insignia, %{strongStart}no podrás%{strongEnd} restaurarla."
+
msgid "Badges|Link"
msgstr "Enlace"
@@ -7457,18 +7556,21 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr "Se ha eliminado la insignia."
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr ""
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr "Este grupo no tiene insignias. Agrega una insignia existente o crea una."
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr ""
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr ""
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr "Este proyecto no insignias. Comienza agregando una nueva insignia."
msgid "Badges|Your badges"
msgstr "Sus insignias"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7478,8 +7580,8 @@ msgstr "URL de Bamboo"
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
-msgstr "URL raíz del servicio Bamboo."
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr ""
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr "Iniciar con el commit seleccionado"
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr "Su cuenta ha sido validada"
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr "Membresías directas"
msgid "Billing|Enter at least three characters to search."
msgstr "Introduzca al menos tres caracteres para buscar."
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "Está a punto de eliminar al usuario %{username} de su suscripción. Si continua, el usuario será eliminado del grupo %{namespace} y todos sus subgrupos y proyectos. Esta acción no se puede deshacer."
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "Se ha producido un error al crear la tarea épica. Por favor, inténtelo de nuevo."
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "Se ha producido un error al crear la incidencia. Por favor, inténtelo de nuevo."
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "Se ha producido un error al crear la lista. Por favor, inténtelo de nuevo."
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "Se ha producido un error al buscar los grupos secundarios. Por favor, inténtelo de nuevo."
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr "Se ha producido un error al obtener los proyectos del grupo. Por favor,
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "Se ha producido un error al obtener las incidencias. Por favor, vuelva a cargar la página."
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "Se ha producido un error al obtener las etiquetas. Por favor, vuelva a cargar la página."
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Contraer"
@@ -8410,9 +8473,6 @@ msgstr "Expandir"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr "La rama ya existe"
msgid "Branch name"
msgstr "Nombre de la rama"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr "Branch no cargada - %{branchId}"
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr "Ver detalles"
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Ramas"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Examinar archivos"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr "La compilación no puede ser borrada"
@@ -9010,9 +9115,18 @@ msgstr "%{feature} (requiere v%{version})"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr "Destino"
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,17 +9136,26 @@ msgstr "Filtrar por grupo de origen"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr "Historial"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr "Importación fallida: el destino no puede ser un subgrupo del grupo de origen. Por favor, cambie el destino y vuelva a intentarlo."
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Importar grupos de GitLab"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr ""
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr "Error al importar el grupo."
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr "Última importación a %{link}"
@@ -9103,7 +9232,10 @@ msgstr "Origen"
msgid "BulkImport|Source group"
msgstr "Grupo de origen"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr "Compre más minutos de pipelines"
msgid "By %{user_name}"
msgstr "Por %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr "De forma predeterminada, todos los proyectos y grupos utilizan la configuración de notificaciones globales."
@@ -9309,6 +9438,9 @@ msgstr "Por defecto al pipeline de Auto DevOps para todos los proyectos"
msgid "CICD|Deployment strategy"
msgstr "Estrategia de despliegue"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr "Solicitar ID de CVE"
msgid "CVE|Why Request a CVE ID?"
msgstr "¿Por qué solicitar un ID de CVE?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr "Cadence no está automatizado"
@@ -9423,18 +9549,18 @@ msgstr "Subdominio de Campfire (opcional)"
msgid "Campfire token"
msgstr "Token de Campfire"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "Token de autenticación de API de Campfire."
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr ""
-
msgid "Can be manually deployed to"
msgstr "Puede ser desplegado manualmente en"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr "en %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr "en %{project_link}"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Verficar de nuevo"
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr "Dirección de facturación"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "Minutos de CI"
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr "Ciudad"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr "Confirmar compra"
msgid "Checkout|Confirming..."
msgstr "Confirmando..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Continuar a la facturación"
@@ -10090,6 +10231,9 @@ msgstr "Grupo"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr "Dirección"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Detalles de la suscripción"
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr "Impuestos"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "Total"
@@ -10228,9 +10378,6 @@ msgstr "Seleccione un archivo..."
msgid "Choose a file"
msgstr "Seleccione un archivo"
-msgid "Choose a group"
-msgstr "Elija un grupo"
-
msgid "Choose a template"
msgstr "Elija una plantilla"
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "Rango de fechas: %{range}"
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr "Estado"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr "Variables"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr "Cerrar épica"
msgid "Close milestone"
msgstr "Cerrar hito"
-msgid "Close sidebar"
-msgstr "Cerrar la barra lateral"
-
msgid "Close this %{quick_action_target}"
msgstr "Cierra este %{quick_action_target}"
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr "Patrón"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr "Colorear mensajes"
msgid "ComboSearch is not defined"
msgstr "ComboSearch no está definido"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "Lista de direcciones de correo electrónico separadas por comas."
@@ -12070,6 +12295,12 @@ msgstr "No se aplicaron los comandos"
msgid "Comment"
msgstr "Comentar"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "Comentario '%{label}' en la posición"
@@ -12348,13 +12579,49 @@ msgstr "Completado"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr "Framework de cumplimiento"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr "Proyectos asociados"
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr "Editar framework"
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,12 +12666,12 @@ msgstr "Añadir framework"
msgid "ComplianceFrameworks|Background color"
msgstr "Color de fondo"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "Cancelar"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr ""
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr ""
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr "Configuración no encontrada"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr "Se requiere una descripción"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr "Nombre"
msgid "ComplianceFrameworks|Name is required"
msgstr "El nombre es obligatorio"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr "Configurar las réplicas del repositorio."
msgid "Configure repository storage."
msgstr "Configurar el almacenamiento del repositorio."
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr "Etiquetas de la imagen"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "Con el registro de contenedores, cada proyecto puede tener su propio espacio para almacenar sus imágenes de Docker. %{docLinkStart}Más Información%{docLinkEnd}"
@@ -13701,7 +14019,7 @@ msgstr "Contribuciones para %{calendar_date}"
msgid "Contributor"
msgstr "Colaborador"
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Dominio de la cookie"
@@ -13776,6 +14097,9 @@ msgstr "Copiar códigos"
msgid "Copy command"
msgstr "Copiar el comando"
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr "Copiar los comandos"
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr "Copiar al portapapeles"
-msgid "Copy token"
-msgstr "Copiar el token"
-
msgid "Copy value"
msgstr "Copiar valor"
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr "Crear un merge request"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr "Crear un token de acceso personal en tu cuenta para actualizar o enviar
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr "Crear una cuenta utilizando:"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr "Crear versión"
msgid "Create requirement"
msgstr "Crear requisito"
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr "Crear cuenta de servicio"
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "No tiene permiso para crear un subgrupo en este grupo."
@@ -14508,6 +14832,9 @@ msgstr "Creado el"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "Creada una rama y un merge request para resolver esta incidencia."
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "Creada una rama '%{branch_name}' y un merge request para resolver esta incidencia."
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr "Editar perfil"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr "Todos"
msgid "DashboardProjects|Personal"
msgstr "Personal"
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "Dashboard|%{firstProject} y %{secondProject}"
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr "Deshabilitado"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr "Tipo de sitio"
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr "URL de destino"
msgid "DastProfiles|Target timeout"
msgstr "Tiempo de espera de destino"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr "Rama por defecto"
msgid "Default branch and protected branches"
msgstr "Ramas por defecto y ramas protegidas"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Plantilla de descripción predeterminada para las incidencias"
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr "DeletionSettings|Protección contra eliminación"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "Sólo los administradores pueden eliminar los proyectos."
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "Los propietarios y los administradores pueden eliminar los proyectos."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "Ficheros no admitidos detectados"
@@ -16396,9 +16727,6 @@ msgstr "Proxy de dependencias"
msgid "Dependency Scanning"
msgstr "Escaneo de dependencias"
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr "En caché %{time}"
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr "Nombre de usuario"
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr "Límites del diff"
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "Diferencia entre la fecha de inicio y ahora"
@@ -17513,6 +17898,9 @@ msgstr "¿Descartar los cambios en %{path}?"
msgid "Discard draft"
msgstr "Descartar borrador"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Notificaciones de Discord"
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "Arrastra y suelta tus diseños aquí o %{linkStart}haz clic para subirlos%{linkEnd}."
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr "Editando"
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr "Tiempo transcurrido"
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr "Enviar parche por correo electrónico"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "Correo enviado"
@@ -18270,6 +18667,9 @@ msgstr "Archivo vacío"
msgid "Enable"
msgstr "Habilitar"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr "Habilitar PlantUML"
msgid "Enable SSL verification"
msgstr "Habilitar verificación SSL"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr "Habilitar el modo de administrador"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr "Habilitar o deshabilitar la comprobación de la versión y el servicio Ping."
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "Forzar la autenticación de doble factor"
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr "Entorno abierto"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "Redesplegar el entorno"
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr "¿Exportar los requisitos de %{requirementsCount}?"
msgid "Export as CSV"
msgstr "Exportar como CSV"
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr "Exportar grupo"
@@ -20014,6 +20405,9 @@ msgstr "URL del wiki externo"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr "Se ha producido un erro al crear una rama para esta incidencia. Por favo
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr "Se ha producido un error al crear el repositorio"
msgid "Failed to create resources"
msgstr "Se ha producido un error al crear los recursos"
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr "Se ha producido un error al crear el wiki"
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr "Se ha producido un error al cargar los grupos."
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr "Se ha producido un error al cargar las etiquetas. Por favor, inténtelo de nuevo."
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr "Se ha producido un error al cargar los hitos. Por favor, inténtelo de nuevo."
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr "Se ha producido un error al actualizar el estado de la incidencia"
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr "Archivo movido"
msgid "File name"
msgstr "Nombre del archivo"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr "Para trabajo general"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr "Resincronizar"
msgid "Geo|Resync all"
msgstr "Volver a sincronizar todo"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr "Contador de reintentos"
@@ -21565,12 +21947,6 @@ msgstr "Volver a comprobar"
msgid "Geo|Reverify all"
msgstr "Volver a comprobar todo"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr "primario"
msgid "Geo|secondary"
msgstr "secundario"
-msgid "Get a free instance review"
-msgstr "Obtenga una revisión de instancia gratuita"
-
msgid "Get a support subscription"
msgstr "Obtenga una suscripción de soporte"
@@ -21766,6 +22133,9 @@ msgstr "Comenzar con el control de errores"
msgid "Get started!"
msgstr "¡Empecemos!"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "Importar desde GitHub"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr "Sin verificar"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "Actualizando su configuración de Pages..."
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr " %{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr "Solicitudes de fusión que he sido un revisor"
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,18 +22751,15 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
-msgstr "Buscar en GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr ""
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr "Presiona la tecla %{kbdOpen}/%{kbdClose} para iniciar una búsqueda"
@@ -22426,9 +22796,6 @@ msgstr "Escribe luego presiona la tecla Intro para ejecutar la búsqueda."
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "Escribe para que aparezcan nuevas sugerencias abajo."
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr "Ir a la página anterior"
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr "Ir al sitio principal"
-
msgid "Go to project"
msgstr "Ir al proyecto"
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr "Ir a sus fragmentos de código"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr "Projecto de Google Cloud"
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr "¡Lo tengo!"
-msgid "Got it!"
-msgstr "¡Lo tengo!"
-
msgid "Grafana URL"
msgstr "URL de Grafana"
@@ -22837,6 +23204,9 @@ msgstr "Información del grupo:"
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "Agrupar trabajos por"
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr "Insignias"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "No se puede actualizar la ruta porque hay proyectos en este grupo que contienen imágenes de Docker en su registro de contenedores. Elimine primero las imágenes de sus proyectos e inténtelo de nuevo."
@@ -23260,12 +23639,21 @@ msgstr "Por defecto, al pipeline de Auto DevOps para todos los proyectos engloba
msgid "GroupSettings|Email notifications are disabled"
msgstr "GroupSettings|Las notificaciones por correo electrónico están deshabilitadas"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr "GroupSettings|Informes"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr "Se ha producido un problema al actualizar la configuración del pipeline
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Esta configuración aplica a %{ancestor_group} y se ha sobreescrito para este subgrupo."
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr "Más visitado"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Sus proyectos más visitados aparecerán aquí"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Cargando grupos"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "Buscar en sus grupos"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Ha ocurrido un error de nuestro lado."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Lo sentimos, no hay grupos que coincidan con su búsqueda"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "Esta característica requiere localStorage en su navegador web"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr "Crear subgrupo"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Ocultar valor"
-msgstr[1] "Ocultar valores"
-
msgid "Hide values"
msgstr "Ocultar valores"
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr "Mantenimiento"
msgid "Housekeeping successfully started"
msgstr "Servicio de limpieza iniciado con éxito"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "Antes de iniciar sesión, necesitamos verificar su identidad. Introduzca el siguiente código en la página de inicio de sesión."
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr "Importar grupos"
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr "Indica si este ejecutor puede seleccionar trabajos sin etiquetas"
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "Informa a los usuarios que no hayan cargado las claves SSH que no pueden hacer push sobre SSH hasta que se agregue una"
+msgid "Information"
+msgstr "Información"
+
msgid "Infrastructure"
msgstr "Infraestructura"
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr "Instalación"
@@ -25866,9 +26264,6 @@ msgstr "Archivo no válido."
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr "Hash no válido"
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26283,7 +26678,7 @@ msgid "Issue analytics"
msgstr ""
msgid "Issue board"
-msgstr ""
+msgstr "Tablero de incidencias"
msgid "Issue boards"
msgstr ""
@@ -26325,7 +26720,7 @@ msgid "Issue title"
msgstr ""
msgid "Issue type"
-msgstr ""
+msgstr "Tipo de incidencia"
msgid "Issue types"
msgstr "Tipos de incidencias"
@@ -26405,13 +26800,13 @@ msgstr "URL de la incidencia"
msgid "IssueTracker|New issue URL"
msgstr "URL de la nueva incidencia"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26454,7 +26849,7 @@ msgid "Issues"
msgstr "Incidencias"
msgid "Issues Completed"
-msgstr ""
+msgstr "Incidencias completadas"
msgid "Issues Rate Limits"
msgstr ""
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Lo sentimos, su filtro no ha producido ningún resultado."
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "¡Es usted!"
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Artefactos del trabajo"
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr "Mostrar trabajo completo en crudo"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr "Clave (PEM)"
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr "Claves"
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27703,6 +28128,120 @@ msgstr "Clústeres de Kubernetes"
msgid "Kubernetes deployment not found"
msgstr "Despliegue de Kubernetes no encontrado"
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "Etiquetas sin incidencias en esta iteración:"
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr "Último acceso el"
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr "Último acceso"
msgid "Last activity"
msgstr "Última actividad"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Último cambio"
@@ -28141,9 +28689,6 @@ msgstr "Configure el sistema de CI/CD de su primer proyecto"
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "Comience una prueba gratuita de GitLab Ultimate"
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr "- Incluido en la versión de prueba"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr "Abandonar"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "¿Desea salir del modo de edición? Se perderán todos los cambios no guardados."
@@ -28390,7 +28935,7 @@ msgstr "Componente"
msgid "Licenses|Components"
msgstr "Componentes"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr "Lista"
msgid "List available repositories"
msgstr "Lista de repositorios disponibles"
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr "Cargar más"
msgid "Load more users"
msgstr "Cargar más usuarios"
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr "Cargando"
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr "Bloquea la discusión."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr "Aprobar los merge request"
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr "Métricas"
+
msgid "Metrics - Grafana"
msgstr "Métricas - Grafana"
@@ -30228,15 +30749,9 @@ msgstr "Eliminar métrica"
msgid "Metrics|Delete metric?"
msgstr "¿Eliminar métrica?"
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr "Para agrupar métricas similares"
@@ -30246,15 +30761,9 @@ msgstr "Etiqueta del eje Y (normalmente la unidad). El eje X siempre representa
msgid "Metrics|Legend label (optional)"
msgstr "Leyenda de la etiqueta (opcional)"
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "Debe ser una consulta PromQL válida."
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "Nueva métrica"
@@ -30267,9 +30776,6 @@ msgstr "Documentción sobre las consultas de Prometheus"
msgid "Metrics|There was an error trying to validate your query"
msgstr "Se ha producido un error al intentar validar su consulta"
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr "Etiqueta de las unidades"
@@ -30306,6 +30812,9 @@ msgstr "por ejemplo, req/seg."
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "Capacidad mínima que debe estar disponible antes de que programemos más mirrors de forma preventiva."
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Minutos"
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] "%d modelo"
+msgstr[1] "%d modelos"
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] "%d modelo"
-msgstr[1] "%d modelos"
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr "Cerrar"
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "Modificado"
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr "Desplegar"
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr "No se han encontrado despliegues"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr "No hay otras etiquetas con ese nombre o descripción"
msgid "No parent group"
msgstr "Ningún grupo padre"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "Sin plan"
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "Todavía no se han procesado todos los datos, la precisión del gráfico para el período de tiempo seleccionado es limitada."
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr "No está disponible para ramas protegidas"
msgid "Not confidential"
msgstr "No es confidencial"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "No encontrado"
@@ -32120,6 +32683,9 @@ msgstr "No iniciado"
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Nota"
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr "Notificaciones activadas."
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr "Número de archivos tocados"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "Número de réplicas"
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
+msgstr "El objeto no existe en el servidor o no tiene permisos para acceder a él"
+
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
-msgstr "El objeto no existe en el servidor o no tiene permisos para acceder a él"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr "Oops, ¿está seguro?"
-
msgid "Open"
msgstr "Abierta"
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr "Abrir raw"
-msgid "Open sidebar"
-msgstr "Abrir barra lateral"
-
msgid "Open: %{open}"
msgstr "Abierto: %{open}"
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33579,7 +34208,7 @@ msgid "Orphaned member"
msgstr "Miembro huérfano"
msgid "Other"
-msgstr ""
+msgstr "Otros"
msgid "Other available runners"
msgstr "Otros ejecutores disponibles"
@@ -33659,6 +34288,66 @@ msgstr "Resumen"
msgid "Overwrite diverged branches"
msgstr "Sobreescribir ramas divergentes"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "Propiedad de %{image_tag}"
@@ -33728,6 +34417,9 @@ msgstr "Paquete eliminado correctamente"
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr "La receta del paquete ya existe"
@@ -33803,6 +34495,9 @@ msgstr "Grupo de aplicaciones: %{group}"
msgid "PackageRegistry|App name: %{name}"
msgstr "Nombre de la aplicación: %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr "Nivel de instancia"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr "Paquete no válido: se ha producido un error en la extracción de metadatos"
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] "El paquete tiene %{updatesCount} actualizacion archivada"
msgstr[1] "El paquete tiene %{updatesCount} actualizaciones archivadas"
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr "Paquete actualizado por el commit %{link} en la rama %{branch}, construido por pipeline %{pipeline}, y publicado en el registro %{datetime}"
@@ -34096,6 +34800,9 @@ msgstr "Comando Pip"
msgid "PackageRegistry|Project-level"
msgstr "Nivel de proyecto"
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr "No se ha podido obtener la información de la versión del paquete."
msgid "PackageRegistry|Unable to load package"
msgstr "Se ha producido un error al cargar el paquete"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr "La autenticación con contraseña no está disponible."
msgid "Password confirmation"
msgstr "Confirmar contraseña"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "La contraseña se ha cambiado correctamente"
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr "Realice operaciones comunes en el proyecto GitLab"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "Optimización del rendimiento"
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr "IDE Web"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Canal: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "La configuración de los pipelines para '%{project_name}' se actualizó correctamente."
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr "Cargar pipelines"
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr "Más información"
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Se ha producido un error durante el proceso de limpieza de la memoria caché de los runners."
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr "Vista previa del payload"
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr "Artefactos anteriores"
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr "Perfil"
msgid "Profile failed to delete"
msgstr "Se ha producido un error al eliminar el perfil"
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr "El nombre de usuario se cambió con éxito"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,8 +38027,8 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
-msgstr "Forks"
+msgid "ProjectOverview|Fork"
+msgstr "Fork"
msgid "ProjectOverview|Go to your fork"
msgstr "Ir a su fork"
@@ -37302,11 +38054,26 @@ msgstr "Ha alcanzado el límite de su proyecto"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "Debe iniciar sesión para marcar como favorito un proyecto"
-msgid "ProjectPage|Copy project ID"
-msgstr "Copiar ID del proyecto"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "ID de proyecto: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr ""
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr "Agrega insignias para mostrar información respecto a este proyecto."
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr "Proyectos con este tema"
msgid "Projects with write access"
msgstr "Proyectos con acceso de escritura"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Visitados frecuentemente"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Cargando proyectos"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Sus proyectos más visitados aparecerán aquí"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Busca en tus proyectos"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Algo salió mal por nuestra parte."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Lo sentimos, no hay proyectos que coincidan con su búsqueda"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "Esta función requiere que el navegador permita la utilización de almacenamiento local (localStorage)"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "Le permite que pueda clonar inmediatamente el repositorio de este proyecto. Puede omitir este paso si planea hacer push a un repositorio existente."
@@ -38250,6 +39004,9 @@ msgstr "Crear desde una plantilla"
msgid "ProjectsNew|Create new project"
msgstr "Crear nuevo proyecto"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr "Formato de la descripción"
@@ -38313,6 +39070,9 @@ msgstr "Ejecutar CI/CD para un repositorio externo"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr "Nivel de visibilidad"
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr "Entorno"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr "Proporcionar comentarios"
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr "Registrarse ahora"
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr "Registrarse con la aplicación de dos factores"
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr "Recordar después"
msgid "Remote object has no absolute path."
msgstr "El objeto remoto no tiene una ruta absoluta."
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Eliminar"
@@ -39779,6 +40548,9 @@ msgstr "Eliminar el historial de descripciones"
msgid "Remove due date"
msgstr "Eliminar la fecha de vencimiento"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr "Eliminado"
@@ -39959,6 +40734,9 @@ msgstr "Elimina todas las etiquetas."
msgid "Removes an issue from an epic."
msgstr "Eliminar una incidencia de una tarea épica."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr "Reabrir la tarea épica"
msgid "Reopen milestone"
msgstr "Reabrir hito"
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr "Reabrir este%{quick_action_target}"
@@ -40085,9 +40860,6 @@ msgstr "Responder a este comentario"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "Responda a este correo directamente o %{view_it_on_gitlab}."
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr "Resolver conflictos en la rama origen"
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr "Resolver el hilo"
@@ -40782,11 +41554,6 @@ msgstr "Vuelva a intentar este trabajo para crear los recursos necesarios."
msgid "Retry verification"
msgstr "Reintentar la verificación"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Mostrar valor"
-msgstr[1] "Mostrar valores"
-
msgid "Reveal values"
msgstr "Mostrar valores"
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] "Revisor"
msgstr[1] "%d Revisores"
+msgid "Reviewer approved changes"
+msgstr "Cambios aprobados por el revisor"
+
+msgid "Reviewer commented"
+msgstr "El revisor dejó un comentario"
+
+msgid "Reviewer requested changes"
+msgstr "El revisor solicitó cambios"
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "En ejecución"
@@ -42037,9 +42828,18 @@ msgstr "Guardando"
msgid "Saving project."
msgstr "Guardar proyecto."
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr "Buscar archivos"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr "Detección de secretos"
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr "Tablero de seguridad"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "SecurityOrchestration|Después de habilitar una política a nivel de grupo, esta política se aplica automáticamente a todos los proyectos y subgrupos de este grupo."
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr "No se puede crear una política vacía"
msgid "SecurityOrchestration|Choose a project"
msgstr "Seleccione un proyecto"
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr "Heredado"
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr "Sobreescribir las siguientes configuraciones del proyecto:"
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr "Este %{namespaceType} no contiene ninguna política de seguridad."
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "Enviar informe"
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr "Configurar CI/CD"
msgid "Set up Jira Integration"
msgstr "Configurar la integración con Jira"
-msgid "Set up a %{type} runner for a project"
-msgstr "Configurar un %{type} ejecutor para un proyecto"
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ msgstr "Establecer una nueva contraseña"
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
msgstr "Configure su proyecto para hacer push o pull de los cambios de manera automática a/desde otro repositorio. Los branchs, los tags y los commits se sincronizarán automáticamente."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "Establecer el peso"
@@ -44808,20 +45800,33 @@ msgstr "Configuración"
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr "Configuración"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr "Shimo"
-
-msgid "Shimo|Shimo Workspace"
-msgstr "Espacio de trabajo de Shimo"
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr "Inicie sesión mediante una tarjeta inteligente"
msgid "Sign in via 2FA code"
msgstr "Inicie sesión mediante un código 2FA"
-msgid "Sign in with"
-msgstr "Iniciar sesión con"
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr "URL de la página de cierre de sesión"
msgid "Sign-up restrictions"
msgstr "Restricciones de registro"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr "Tarjeta inteligente"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "Falló la autenticación de la tarjeta inteligente: falta la cabecera del certificado del cliente."
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr "Este fragmento de código está oculto porque su autor ha sido baneado"
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr "Popularidad"
msgid "SortOptions|Priority"
msgstr "Prioridad"
-msgid "SortOptions|Project"
-msgstr "Proyecto"
-
msgid "SortOptions|Recent last activity"
msgstr "Últimas actividades recientes"
@@ -46000,8 +46978,8 @@ msgstr "Destacados más recientes"
msgid "SortOptions|Size"
msgstr "Tamaño"
-msgid "SortOptions|Sort by:"
-msgstr "Ordenar por:"
+msgid "SortOptions|Sort by"
+msgstr "Ordenar por"
msgid "SortOptions|Sort direction"
msgstr "Dirección de clasificación"
@@ -46021,12 +46999,6 @@ msgstr "Comienza pronto"
msgid "SortOptions|Title"
msgstr "Título"
-msgid "SortOptions|Type"
-msgstr "Tipo"
-
-msgid "SortOptions|Version"
-msgstr "Versión"
-
msgid "SortOptions|Weight"
msgstr "Peso"
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr "Estándar"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr "Detener Terminal"
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr "Detener suplantación"
-
msgid "Stop this environment"
msgstr "Detener este entorno"
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr "Enviar como correo no deseado"
-msgid "Submit feedback"
-msgstr "Enviar comentarios"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr "Cambiar rama"
msgid "Switch branch/tag"
msgstr "Cambiar rama/etiqueta"
-msgid "Switch to GitLab Next"
-msgstr "Cambiar a GitLab Next"
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr "Ruta de destino"
msgid "Target branch"
msgstr "Rama de destino"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr "Mover caso de prueba"
@@ -48042,6 +49010,9 @@ msgstr "El gestor de incidencias es el lugar para añadir cosas que necesitan se
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "El gestor de incidencias es el lugar para añadir cosas que necesitan ser mejoradas o resueltas en un proyecto. Puede registrarse o iniciar sesión para crear incidencias para este proyecto."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr "Se ha cerrado la incidencia asociada #%{issueId} ya que se ha resuelto el error."
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "La rama para este proyecto no tiene una configuración de un pipeline activa."
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr "El commit no existe"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr "El usuario actual no está autorizado a acceder al registro de ejecució
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr "La pestaña especificada no es válida, por favor seleccione otra"
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr "Se ha producido un error al recuperar las etiquetas del proyecto."
msgid "There was a problem fetching project users."
msgstr "Se ha producido un problema al recuperar los usuarios del proyecto."
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr "Se ha producido un problema al recuperar los grupos recientes."
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr "Estas incidencias tienen un título similar al de la incidencia que está creando. Sería mejor hacer un comentario en alguna de estas en vez de crear otra incidencia similar."
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "Este bloque es auto-referencial"
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "Este commit fue firmado con la firma verificada de un usuario diferente."
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr "Esto puede exponer información confidencial ya que el fork seleccionado
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Esto significa que no puede enviar código hasta que cree un repositorio vacío o importe uno existente."
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49946,7 +50940,7 @@ msgid "Timeago|in 1 year"
msgstr "en 1 año"
msgid "Timeago|just now"
-msgstr "solo ahora"
+msgstr "justo ahora"
msgid "Timeago|right now"
msgstr "justo ahora"
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr "Para garantizar que no se pierda el contenido personal, esta cuenta solo debe utilizarse para asuntos relacionados con %{group_name}."
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 "Para mover o copiar todo un proyecto de GitLab de una instalación de GitLab a esta, navegue hasta la página de configuración del proyecto original, genere un archivo de exportación y súbalo aquí."
@@ -50263,7 +51257,7 @@ msgstr "La tarea pendiente se ha marcado como realizada correctamente."
msgid "Today"
msgstr "Hoy"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr "Alternar navegación"
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr "Se encontraron demasiados usuarios. Las acciones rápidas están limitad
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Tiempo total de pruebas para todos los cambios o integraciones"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "Total de usuarios"
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr "Seguimiento"
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,12 +51671,12 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
-msgstr ""
-
msgid "Tracing|Operation"
msgstr ""
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
+msgstr "Actualiza la página, o edita tu filtro de búsqueda e inténtalo de nuevo"
+
msgid "Tracing|Resource attributes"
msgstr ""
@@ -50802,27 +51809,6 @@ msgstr "Vista de árbol"
msgid "Trending"
msgstr "Tendencia"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr "Comparar todos los planes"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr "Desactivar"
msgid "Turn on"
msgstr "Activar"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr "Autenticación de doble factor"
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL o ID de solicitud"
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr "No autorizado para crear un entorno"
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr "Texto de respuesta desconocido"
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr "Desbloquea la discusión."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "Inalcanzable"
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "¡No se puede cambiar el nombre del proyecto porque el registro de contenedores contiene etiquetas!"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr "No se puede establecer la rama por defecto"
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "Almacenamiento"
@@ -52073,12 +53071,6 @@ msgstr "Utilizar plantilla"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr "El usuario %{user} fue eliminado de %{group}."
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "Id de usuario"
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr "Variables"
-msgid "Variables can be:"
-msgstr "Las variables pueden ser:"
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr "Varias opciones de configuración del registro de contenedores."
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr "Su versión de GitLab"
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr "Ver todos los entornos."
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr "Ver todas las incidencias"
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr "Ver anotaciones"
@@ -53064,6 +54063,9 @@ msgstr "Ver solicitud de fusión abierta"
msgid "View page @ "
msgstr "Ver página @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "Ver el proyecto en el área de administración"
@@ -53096,6 +54098,9 @@ msgstr "Ver documentación"
msgid "View the latest successful deployment to this environment"
msgstr "Vea la última despliegue con éxito en este entorno"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr "Visual Studio Code (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Visual Studio Code (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr "Vulnerabilidades"
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr "Verificación SSL"
msgid "Webhooks|Secret token"
msgstr "Token secreto"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "¿Está seguro que desea cancelar la edición?"
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr "Tarea creada"
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr "Añadir tarea"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr "Abrir"
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "Se ha producido un error eliminar una tarea. Por favor, inténtalo de nuevo."
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "Se ha producido un error al obtener las tareas. Por favor, inténtalo de nuevo."
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr "No se pudieron cargar los espacios de trabajo"
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr "No se pudieron recuperar los agentes de clúster para este proyecto"
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr "Crear espacio de trabajo"
@@ -54943,8 +55981,8 @@ msgstr "Un administrador debe %{linkStart}configurar un agente de clúster%{link
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr "Para crear un espacio de trabajo, agrega un devfile a este proyecto. Un devfile es un archivo de configuración para tu espacio de trabajo."
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
-msgstr "No se pudo cargar el espacio de trabajo actual. Por favor, inténtalo de nuevo o contacta con un administrador."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
+msgstr ""
msgid "Workspaces|Unknown state"
msgstr "Estado desconocido"
@@ -54997,6 +56035,12 @@ msgstr "Escribe tus notas de la versión o arrastra y suelta tus archivos aquíâ
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr "UID externo incorrecto. Por favor, asegúrese de que Auth0 está configurado correctamente."
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55024,6 +56068,9 @@ msgstr "Ayer"
msgid "You"
msgstr "Usted"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr "Ya tiene una tarea pendiente para esta alerta"
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr "No tiene ninguna búsquedas reciente"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "Se le ha concedido %{access_level} acceso al %{source_link} %{source_type}."
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr "Puede cerrar el hito ahora."
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "Debe estar conectado para buscar en todo GitLab"
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Tu nombre"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr "Su nuevo %{accessTokenType}"
@@ -56073,6 +57141,9 @@ msgstr "Tus proyectos"
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,12 +57515,12 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr ""
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "no se puede modificar si un proyecto personal ya contiene etiquetas de registro de contenedor."
-msgid "cannot be changed since member is associated with a custom role"
-msgstr ""
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr ""
@@ -56505,7 +57579,7 @@ msgid "ci secure files"
msgstr ""
msgid "ciReport|%{criticalStart}critical%{criticalEnd}, %{highStart}high%{highEnd} and %{otherStart}others%{otherEnd}"
-msgstr ""
+msgstr "%{criticalStart}crítico%{criticalEnd}, %{highStart}alto%{highEnd} y %{otherStart}otros%{otherEnd}"
msgid "ciReport|%{danger_start}%{degradedNum} degraded%{danger_end}, %{same_start}%{sameNum} same%{same_end}, and %{success_start}%{improvedNum} improved%{success_end}"
msgstr ""
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,8 +57632,8 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "Aplicar automáticamente el parche en una nueva rama"
-msgid "ciReport|Base pipeline codequality artifact not found"
-msgstr ""
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr "Abre automáticamente una solicitud de fusión con una solución generada por IA."
msgid "ciReport|Browser Performance"
msgstr ""
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] "La calidad de código se ha degradado debido a que se ha encontrado 1 problema nuevo"
-msgstr[1] "La calidad de código se ha degradado debido a que se han encontrado %d problemas nuevos"
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr "Análisis de contenedores"
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
-msgstr "No hay cambios en la calidad del código"
-
msgid "ciReport|No code quality issues found"
msgstr "No se encontraron problemas de calidad de código"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr "Resolver con IA"
+
msgid "ciReport|Resolve with merge request"
msgstr "Resolver con un merge request"
@@ -56797,9 +57858,6 @@ msgstr "Se ha producido un error al descartar la vulnerabilidad. Por favor, intÃ
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "Se ha producido un error al descartar la vulnerabilidad. Por favor, inténtalo de nuevo."
@@ -57259,6 +58317,9 @@ msgstr "no está vinculado a una cuenta SAML o tiene una identidad SCIM inactiva
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57875,10 +58960,10 @@ msgid "my-awesome-group"
msgstr "mi-asombroso-grupo"
msgid "my-channel"
-msgstr ""
+msgstr "mi-canal"
msgid "my-topic"
-msgstr ""
+msgstr "mi-topic"
msgid "needs to be between 10 minutes and 1 month"
msgstr "el intervalo debe estar comprendido entre 10 minutos y 1 mes"
@@ -57896,22 +58981,22 @@ msgid "no expiration"
msgstr "Sin fecha de vencimiento"
msgid "no name set"
-msgstr ""
+msgstr "no se ha fijado el nombre"
msgid "no one can merge"
msgstr "nadie puede hacer merge"
msgid "no scopes selected"
-msgstr ""
+msgstr "no hay ámbitos seleccionados"
msgid "none"
msgstr "ninguno"
msgid "not authorized to create member"
-msgstr ""
+msgstr "no autorizado a crear miembro"
msgid "not authorized to update member"
-msgstr ""
+msgstr "no está autorizado a actualizar el miembro"
msgid "not found"
msgstr "no encontrado"
@@ -57935,7 +59020,7 @@ msgid "on or after"
msgstr ""
msgid "only available on top-level groups."
-msgstr ""
+msgstr "solo disponible en grupos de nivel superior."
msgid "only supports valid HTTP(S) URLs"
msgstr ""
@@ -57952,13 +59037,13 @@ msgid "or sign in with"
msgstr ""
msgid "organizations can only be added to root groups"
-msgstr ""
+msgstr "las organizaciones solo pueden ser añadidas a los grupos de la raíz"
msgid "packages"
-msgstr ""
+msgstr "paquetes"
msgid "pages"
-msgstr ""
+msgstr "páginas"
msgid "params is empty"
msgstr ""
@@ -57990,16 +59075,16 @@ msgid "personal access tokens"
msgstr "tokens de acceso personal"
msgid "pipelineEditorWalkthrough|Let's do this!"
-msgstr ""
+msgstr "Hagámoslo!"
msgid "pipelineEditorWalkthrough|See how GitLab pipelines work"
-msgstr ""
+msgstr "Ver cómo funcionan los pipelines de GitLab"
msgid "pipelineEditorWalkthrough|This %{codeStart}.gitlab-ci.yml%{codeEnd} file creates a simple test pipeline."
-msgstr ""
+msgstr "Este archivo %{codeStart}.gitlab-ci.yml%{codeEnd} crea un sencillo pipeline de prueba."
msgid "pipelineEditorWalkthrough|Use the %{boldStart}commit changes%{boldEnd} button at the bottom of the page to run the pipeline."
-msgstr ""
+msgstr "Usa el botón %{boldStart}confirmar cambios%{boldEnd} en la parte inferior de la página para ejecutar el pipeline."
msgid "pipelineEditorWalkthrough|You can use the file tree to view your pipeline configuration files. %{linkStart}Learn more%{linkEnd}"
msgstr ""
@@ -58010,7 +59095,7 @@ msgstr[0] "punto"
msgstr[1] "puntos"
msgid "previously merged commits"
-msgstr ""
+msgstr "previas confirmaciones fusionadas"
msgid "private"
msgstr "privado"
@@ -58033,13 +59118,13 @@ msgid "project access tokens"
msgstr "tokens de acceso al proyecto"
msgid "project bots cannot be added to other groups / projects"
-msgstr ""
+msgstr "los bots del proyecto no pueden añadirse a otros grupos/proyectos"
msgid "project is read-only"
-msgstr ""
+msgstr "el proyecto es solo lectura"
msgid "project members"
-msgstr ""
+msgstr "miembros del proyecto"
msgid "project name"
msgstr "nombre del proyecto"
@@ -58060,16 +59145,16 @@ msgid "reCAPTCHA helps prevent credential stuffing."
msgstr ""
msgid "reCAPTCHA private key"
-msgstr ""
+msgstr "Clave privada de reCAPTCHA"
msgid "reCAPTCHA site key"
-msgstr ""
+msgstr "Clave reCAPTCHA del sitio"
msgid "reached maximum depth"
msgstr ""
msgid "recent activity"
-msgstr ""
+msgstr "actividad reciente"
msgid "register"
msgstr "registrar"
@@ -58087,11 +59172,14 @@ msgid "remove due date"
msgstr "eliminar la fecha de vencimiento"
msgid "remove start date"
-msgstr ""
+msgstr "eliminar la fecha de inicio"
msgid "remove weight"
msgstr "eliminar el peso"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58110,7 +59198,7 @@ msgid "reply should have same confidentiality as top-level note"
msgstr ""
msgid "repositories"
-msgstr ""
+msgstr "repositorios"
msgid "repository"
msgid_plural "repositories"
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr "repositorio:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58135,10 +59220,10 @@ msgid "satisfied"
msgstr "satisfecho"
msgid "scan-execution-policy: policy not applied, %{policy_path} file is invalid"
-msgstr ""
+msgstr "scan-execution-policy: política no aplicada, el archivo %{policy_path} no es válido"
msgid "scan-execution-policy: policy not applied, %{policy_path} file is missing"
-msgstr ""
+msgstr "scan-execution-policy: política no aplicada, falta el archivo %{policy_path}"
msgid "scheduled"
msgstr ""
@@ -58158,7 +59243,7 @@ msgid "selective_code_owner_removals can only be enabled when retain_approvals_o
msgstr ""
msgid "severity|Blocker"
-msgstr ""
+msgstr "Bloqueador"
msgid "severity|Critical"
msgstr "Crítica"
@@ -58173,13 +59258,13 @@ msgid "severity|Low"
msgstr "Baja"
msgid "severity|Major"
-msgstr ""
+msgstr "Mayor"
msgid "severity|Medium"
msgstr "Media"
msgid "severity|Minor"
-msgstr ""
+msgstr "Menor"
msgid "severity|None"
msgstr "Ninguna"
@@ -58191,7 +59276,7 @@ msgid "should be a valid NPM package name with optional wildcard characters."
msgstr ""
msgid "should be an array of %{object_name} objects"
-msgstr ""
+msgstr "debe ser una matriz de objetos %{object_name}"
msgid "should be an array of existing user ids. %{invalid} does not exist"
msgstr ""
@@ -58218,7 +59303,7 @@ msgid "site"
msgstr ""
msgid "smartcn custom analyzer"
-msgstr ""
+msgstr "analizador personalizado smartcn"
msgid "snippet"
msgstr ""
@@ -58227,7 +59312,7 @@ msgid "source"
msgstr "origen"
msgid "source diff"
-msgstr ""
+msgstr "fuente diff"
msgid "specific protected branches"
msgstr ""
@@ -58236,7 +59321,7 @@ msgid "specified top is not part of the tree"
msgstr "La parte superior especificada no es parte del árbol"
msgid "spendCommand|%{slash_command} adds or subtracts time already spent."
-msgstr ""
+msgstr "%{slash_command} agrega o resta tiempo al ya transcurrido."
msgid "ssh:"
msgstr "ssh:"
@@ -58263,7 +59348,7 @@ msgid "suggestPipeline|1/2: Choose a template"
msgstr "1/2: Seleccione una plantilla"
msgid "suggestPipeline|2/2: Commit your changes"
-msgstr ""
+msgstr "2/2: Confirmar tus cambios"
msgid "suggestPipeline|Choose %{boldStart}Code Quality%{boldEnd} to add a pipeline that tests the quality of your code."
msgstr ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
@@ -58412,7 +59503,7 @@ msgid "view the source"
msgstr "ver el código fuente"
msgid "visibility"
-msgstr ""
+msgstr "visibilidad"
msgid "vulnerability"
msgid_plural "vulnerabilities"
@@ -58483,8 +59574,8 @@ msgid "{group}"
msgstr "{group}"
msgid "{project}"
-msgstr ""
+msgstr "{project}"
msgid "✔"
-msgstr ""
+msgstr "✔"
diff --git a/locale/et_EE/gitlab.po b/locale/et_EE/gitlab.po
index d76ae987bac..58f7393052d 100644
--- a/locale/et_EE/gitlab.po
+++ b/locale/et_EE/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: et\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/eu_ES/gitlab.po b/locale/eu_ES/gitlab.po
index a75661e044d..b6624f0fce2 100644
--- a/locale/eu_ES/gitlab.po
+++ b/locale/eu_ES/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: eu\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -46,7 +46,7 @@ msgid " and %{sliced}"
msgstr ""
msgid " and leave a comment on"
-msgstr ""
+msgstr " eta utzi iruzkin bat"
msgid " except branch:"
msgid_plural " except branches:"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -414,8 +404,8 @@ msgstr[1] ""
msgid "%d reply"
msgid_plural "%d replies"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Erantzun %d"
+msgstr[1] "%d erantzun"
msgid "%d second"
msgid_plural "%d seconds"
@@ -449,8 +439,8 @@ msgstr[1] ""
msgid "%d template found"
msgid_plural "%d templates found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Txantiloi %d aurkitu da"
+msgstr[1] "%d txantiloi aurkitu dira"
msgid "%d unresolved thread"
msgid_plural "%d unresolved threads"
@@ -459,8 +449,8 @@ msgstr[1] ""
msgid "%d version"
msgid_plural "%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Bertsio %d"
+msgstr[1] "%d bertsio"
msgid "%d vulnerability"
msgid_plural "%d vulnerabilities"
@@ -499,8 +489,8 @@ msgstr[1] ""
msgid "%d week"
msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Aste %d"
+msgstr[1] "%d aste"
msgid "%d work item"
msgid_plural "%d work items"
@@ -509,8 +499,8 @@ msgstr[1] ""
msgid "%d year"
msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Urte %d"
+msgstr[1] "%d urte"
msgid "%s additional commit has been omitted to prevent performance issues."
msgid_plural "%s additional commits have been omitted to prevent performance issues."
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/fa_IR/gitlab.po b/locale/fa_IR/gitlab.po
index a69f2a29030..eeb4ff7eb0f 100644
--- a/locale/fa_IR/gitlab.po
+++ b/locale/fa_IR/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: fa\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/fi_FI/gitlab.po b/locale/fi_FI/gitlab.po
index 892005f5aef..9f153a97ce2 100644
--- a/locale/fi_FI/gitlab.po
+++ b/locale/fi_FI/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: fi\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:24\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/fil_PH/gitlab.po b/locale/fil_PH/gitlab.po
index 3cc28339745..9d7a9334902 100644
--- a/locale/fil_PH/gitlab.po
+++ b/locale/fil_PH/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: fil\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/fr/gitlab.po b/locale/fr/gitlab.po
index d967b37ec26..c7ffc736523 100644
--- a/locale/fr/gitlab.po
+++ b/locale/fr/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: fr\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:33\n"
+"PO-Revision-Date: 2024-01-11 16:23\n"
msgid " %{start} to %{end}"
msgstr " %{start} à %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] "%d artéfact"
msgstr[1] "%d artéfacts"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d ticket assigné"
-msgstr[1] "%d tickets assignés"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] "%d auteur"
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d commentaire"
msgstr[1] "%d commentaires"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d commentaire sur cette validation"
-msgstr[1] "%d commentaires sur cette validation"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d commentateur"
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d ticket résolu"
msgstr[1] "%d tickets résolus"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] "%d cadre de conformité sélectionné"
-msgstr[1] "%d cadres de conformité sélectionnés"
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d contribution"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d ticket importé avec succès avec le label"
msgstr[1] "%d tickets importés avec succès avec le label"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d job"
@@ -547,6 +537,9 @@ msgstr "%{author_link} a écrit :"
msgid "%{authorsName}'s thread"
msgstr "Le fil de conversation de %{authorsName}"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} a demandé de fusionner %{source_branch} %{copy_button} vers %{target_branch} %{created_at}"
@@ -585,15 +578,6 @@ msgstr "Aucune série de données %{chartTitle}"
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr "%{codeStart}$%{codeEnd} sera traité comme le début d'une référence à une autre variable."
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr "%{code_open}Affichée :%{code_close} les variables contenant %{code_open}$%{code_close} seront traitées comme le début d'une référence vers une autre variable."
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Masqué :%{code_close} Masqué dans les journaux des logs. Doit correspondre aux exigences de masquage."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}Protégées :%{code_close} Exposées uniquement aux branches ou étiquettes protégées."
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} a rédigé %{commit_authored_timeago}"
@@ -707,12 +691,6 @@ msgstr "%{days} jours avant la suppression automatique des étiquettes"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Événement Sentry : %{errorUrl}- Vu pour la première fois : %{firstSeen}- Vu pour la dernière fois : %{lastSeen} %{countLabel} : %{count}%{userCountLabel} : %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "La %{doc_link_start}recherche avancée%{doc_link_end} est désactivée car %{ref_elem} n'est pas la branche par défaut. %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}La recherche avancée%{doc_link_end} est activée."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}En savoir plus sur les niveaux de visibilité.%{docs_link_end}"
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@societe.fr"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} pipelines de plus en aval"
+msgid "%{failures} of %{total} failed"
+msgstr "%{failures} en échec sur %{total}"
+
msgid "%{filePath} deleted"
msgstr "%{filePath} supprimé"
@@ -923,6 +904,12 @@ msgstr "%{linkStart} En savoir plus%{linkEnd}."
msgid "%{linkStart}%{linkEnd} review summary"
msgstr "Résumé de revue de code %{linkStart}%{linkEnd}"
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr "La %{linkStart}recherche avancée%{linkEnd} est activée."
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow} et %{awardsListLength} de plus"
@@ -1186,6 +1173,9 @@ msgstr[1] "%{strongStart}%{count}%{strongEnd} validations"
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr "%{strongStart}Astuce :%{strongEnd} vous pouvez également %{linkStart}la vérifier grâce à l'ID de la requête de fusion%{linkEnd}."
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} branche"
@@ -1275,8 +1265,11 @@ msgstr "%{timebox_type} doit avoir une date de début et une date d'échéance"
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
-msgstr "Changements %{title}"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} libre)"
@@ -1290,6 +1283,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} libre)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} avertissement(s) trouvé(s) :"
+msgid "%{total}"
+msgstr "%{total}"
+
msgid "%{total} remaining issue weight"
msgstr "%{total} poids de ticket restants"
@@ -1344,6 +1340,9 @@ msgstr "%{user} a créé un ticket°: %{issue_link}"
msgid "%{user} user’s menu"
msgstr "Menu utilisateur de %{user}"
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} ne fait pas partie de la liste"
@@ -1362,6 +1361,9 @@ msgstr "Les %{webhooks_link_start}%{webhook_type}%{webhooks_link_end} vous perme
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "Les %{wildcards_link_start}caractères génériques%{wildcards_link_end} tels que %{code_tag_start}v*%{code_tag_end} ou %{code_tag_start}*-release%{code_tag_end} sont pris en charge."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr "« %{data_pointer} » doit être un « %{type} » valide"
+
msgid "'%{level}' is not a valid visibility level"
msgstr "«°%{level} » n'est pas un niveau de visibilité valide"
@@ -1377,9 +1379,21 @@ msgstr "« %{value} » jours d'inactivité doit être supérieur ou égal à
msgid "'allow: %{allow}' must be a string"
msgstr "'allow: %{allow}' doit être une chaîne"
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr "'except: %{except}' doit être un tableau de chaînes"
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr "'projets' n'est pas encore pris en charge"
@@ -1415,6 +1429,12 @@ msgstr "(Aucun changement)"
msgid "(Unlimited pipeline minutes)"
msgstr "(Minutes de pipeline illimitées)"
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(suivre la progression)"
@@ -1433,9 +1453,6 @@ msgstr "(participant externe)"
msgid "(leave blank if you don't want to change it)"
msgstr "(laissez vide si vous ne souhaitez pas apporter de modification)"
-msgid "(max size 15 MB)"
-msgstr "(taille max de 15 Mo)"
-
msgid "(no user)"
msgstr "(aucun utilisateur)"
@@ -1466,8 +1483,8 @@ msgstr "+ %{amount} de plus"
msgid "+ %{count} more"
msgstr "+ %{count} de plus"
-msgid "+ %{hiddenBranchesLength} more"
-msgstr "+ %{hiddenBranchesLength} de plus"
+msgid "+ %{itemsLength} more"
+msgstr ""
msgid "+ %{moreCount} more"
msgstr "+ %{moreCount} de plus"
@@ -1782,9 +1799,6 @@ msgstr "Une page de base et une fonction serverless qui utilise AWS Lambda, AWS
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "Un modèle de base pour développer des programmes Linux à l'aide de Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "Une plateforme DevOps complète"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr "Un ticket confidentiel ne doit avoir que des enfants confidentiels. Rendez tous les éléments enfants confidentiels et réessayez."
@@ -1890,8 +1904,8 @@ msgstr "Un modèle prêt à l'emploi à utiliser pour les applications Android"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "Un modèle prêt à l'emploi à utiliser pour les applications iOS en Swift"
-msgid "A rebase is already in progress."
-msgstr "Un rebase est déjà en cours."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "Une connexion à votre compte a été établie à partir de l'adresse IP suivante : %{ip}"
@@ -1914,6 +1928,33 @@ msgstr "Actions IA"
msgid "AI-generated summary"
msgstr "Résumé généré par l'IA"
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr "Génère un résumé de tous les commentaires"
@@ -2013,9 +2054,6 @@ msgstr "Remplacer la description existante par une description générée par l'
msgid "AI|Responses generated by AI"
msgstr "Réponses générées par l'IA"
-msgid "AI|Send chat message."
-msgstr "Envoyer un message de chat."
-
msgid "AI|Something went wrong. Please try again later"
msgstr "Une erreur s'est produite. Veuillez réessayer plus tard"
@@ -2036,6 +2074,9 @@ msgstr "La description existante sera remplacée lors de la soumission."
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr "Il y a trop de texte dans la discussion par chat. Veuillez réessayer avec un texte plus court."
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr "Pour contribuer à améliorer la qualité du contenu, envoyez vos commentaires aux membres de l'équipe GitLab."
@@ -2081,6 +2122,9 @@ msgstr "Test de l'API par injection de données aléatoires"
msgid "API Help"
msgstr "Aide sur l'API"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "Clé de l'API"
@@ -2402,6 +2446,12 @@ msgstr "Hameçonnage"
msgid "AbuseReport|Phone"
msgstr "Téléphone"
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr "Raison"
@@ -2876,6 +2926,9 @@ msgstr "Ajouter une règle d'approbation"
msgid "Add approvers"
msgstr "Ajouter des approbateurs"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Ajouter l'épopée enfant à une épopée"
@@ -2940,7 +2993,7 @@ msgid "Add labels"
msgstr "Ajouter des labels"
msgid "Add license"
-msgstr "Ajouter une licence"
+msgstr "Ajouter la licence"
msgid "Add list"
msgstr "Ajouter une liste"
@@ -3014,9 +3067,6 @@ msgstr "Ajouter une suggestion au lot"
msgid "Add tag"
msgstr "Ajouter une étiquette"
-msgid "Add target branch rule"
-msgstr "Ajouter une règle de branche cible"
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "Ajouter du texte à la page de connexion. Markdown activé."
@@ -3170,15 +3220,15 @@ msgstr "Ajoute cet élément %{issuable_type} comme étant en relation avec l'é
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "Ajuster la fréquence à laquelle l'interface utilisateur de GitLab recherche les mises à jour."
-msgid "Admin"
-msgstr "Administrateur"
-
msgid "Admin Area"
-msgstr "Espace d'administration"
+msgstr "Interface d'administration"
msgid "Admin Area / Dashboard"
msgstr "Espace d'administration/tableau de bord"
+msgid "Admin Mode"
+msgstr "Mode administrateur"
+
msgid "Admin Note"
msgstr "Note de l'administrateur"
@@ -3188,9 +3238,6 @@ msgstr "Notifications d'administration"
msgid "Admin message"
msgstr "Message de l'administrateur"
-msgid "Admin mode"
-msgstr "Mode administrateur"
-
msgid "Admin mode already enabled"
msgstr "Mode Administrateur déjà activé"
@@ -3198,7 +3245,7 @@ msgid "Admin mode disabled"
msgstr "Mode Administrateur désactivé"
msgid "Admin mode enabled"
-msgstr "Mode Administrateur activé"
+msgstr "Mode administrateur activé"
msgid "Admin notes"
msgstr "Notes de l'administrateur"
@@ -3210,7 +3257,7 @@ msgid "AdminArea|Active users"
msgstr "Utilisateurs actifs"
msgid "AdminArea|All users created in the instance, including users who are not %{billable_users_link_start}billable users%{billable_users_link_end}."
-msgstr "Tous les utilisateurs créés sur cette instance, y compris ceux qui ne sont pas des %{billable_users_link_start}utilisateurs facturables%{billable_users_link_end}."
+msgstr "Tous les utilisateurs créés dans cette instance, y compris ceux qui ne sont pas des %{billable_users_link_start}utilisateurs facturables%{billable_users_link_end}."
msgid "AdminArea|Are you sure?"
msgstr "Confirmez-vous ?"
@@ -3548,6 +3595,9 @@ msgstr "Pour obtenir la liste des fonctionnalités d'enregistrement incluses, ve
msgid "AdminSettings|Git abuse rate limit"
msgstr "Taux limite avant abus de Git"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr "GitLab utilise les SDK %{bold_start}Rails%{bold_end} et %{bold_start}Browser JavaScript%{bold_end} de Sentry pour lui envoyer des événements. Pour que les modifications des paramètres de l’intégration de Rails prennent effet, activez les indicateurs de fonctionnalités %{code_start}enable_new_sentry_integration%{code_end} et %{code_start}enable_new_sentry_clientside_integration%{code_end} puis redémarrez GitLab."
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr "GitLab utilise les SDK %{bold_start}Rails%{bold_end} et%{bold_end} Sentry JavaScript %{bold_start}du navigateur pour envoyer des événements à Sentry. Pour que les modifications apportées aux paramètres d'intégration de Rails prennent effet, redémarrez GitLab."
@@ -3644,6 +3694,9 @@ msgstr "Métadonnées du registre de paquets à synchroniser"
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr "Suspendre l'indexation Elasticsearch"
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr "Détection des secrets préréception"
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr "Empêchez les utilisateurs qui ne sont pas des administrateurs d'utiliser les niveaux de visibilité sélectionnés pour les groupes, projets et extraits de code."
@@ -4262,6 +4315,9 @@ msgstr "docs"
msgid "AdminUsers|user cap"
msgstr "plafond d'utilisateurs"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "Administrateurs"
@@ -4295,6 +4351,9 @@ msgstr "Identifiants"
msgid "Admin|Deploy Keys"
msgstr "Clés de déploiement"
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr "Geo"
@@ -4406,18 +4465,24 @@ msgstr "Après modification de votre mot de passe, vous serez redirigé vers l'Ã
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr "Une fois supprimée, la relation de bifurcation ne peut être restaurée qu'à l'aide de l'API. Ce projet ne sera plus en mesure ni de recevoir ni d'envoyer des requêtes de fusion vers le projet en amont ou d'autres bifurcations."
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
-msgstr "Une fois l'intégration Apple App Store Connect activée, les variables protégées suivantes seront créées pour être utilisées avec CI/CD."
-
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr "Une fois l'exportation terminée, téléchargez le fichier de données depuis le courriel de notification ou depuis cette page. Vous pourrez ensuite l'importer sur la page %{strong_text_start}Créer un nouveau groupe%{strong_text_end} d'une autre instance GitLab."
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
-msgstr "Une fois l'intégration activée, la variable protégée suivante est créée pour une utilisation CI/CD :"
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
+msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr "Après avoir pris connaissance de ces consignes de contribution, vous serez prêt à"
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4766,6 +4831,15 @@ msgstr "L'alerte de test devrait maintenant être visible dans votre liste d'ale
msgid "Algorithm"
msgstr "Algorithme"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Tous"
@@ -4796,9 +4870,6 @@ msgstr "Tous les utilisateurs éligibles"
msgid "All environments"
msgstr "Tous les environnements"
-msgid "All frameworks selected"
-msgstr "Tous les cadres sélectionnés"
-
msgid "All groups"
msgstr "Tous les groupes"
@@ -4853,6 +4924,9 @@ msgstr "Tous les utilisateurs doivent avoir un nom."
msgid "All users with matching cards"
msgstr "Tous les utilisateurs avec les cartes correspondantes"
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr "Autoriser %{strongOpen}%{group_name}%{strongClose} à vous connecter ?"
@@ -4910,12 +4984,18 @@ msgstr "Autoriser cette clé à pousser vers ce dépôt"
msgid "Allow use of licensed EE features"
msgstr "Autoriser l'utilisation des fonctionnalités EE sous licence"
+msgid "Allow users to create organizations"
+msgstr "Autoriser les utilisateurs à créer des organisations"
+
msgid "Allow users to extend their session"
msgstr "Autoriser les utilisateurs à prolonger leur session"
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr "Autoriser les utilisateurs à enregistrer n'importe quelle application pour utiliser GitLab en tant que fournisseur OAuth. Ce paramètre n'affecte pas les applications OAuth au niveau du groupe."
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Autorisée"
@@ -4937,9 +5017,6 @@ msgstr "Autorise les projets ou les sous-groupes de ce groupe à outrepasser le
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "Permet aux projets de suivre les erreurs grâce à une intégration Opstrace."
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Permet d'ajouter et de gérer des grappes de serveurs Kubernetes."
-
msgid "Almost there"
msgstr "Nous y sommes presque"
@@ -5000,9 +5077,6 @@ msgstr "Une %{link_start}alerte%{link_end} avec la même empreinte est déjà ou
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr "Un administrateur a défini la date d'expiration maximale au %{maxDate}. %{helpLinkStart}En savoir plus%{helpLinkEnd}."
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "Un compte GitLab d'Utilisateur d'Entreprise a été créé pour vous par votre entreprise°:"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "Un administrateur a modifié le mot de passe de votre compte GitLab sur %{link_to}."
@@ -5018,9 +5092,6 @@ msgstr "Une application appelée %{link_to_client} demande l'accès à votre com
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "Une notification par courriel a récemment été envoyée depuis le panneau d'administration. Veuillez patienter %{wait_time_in_words} avant de tenter l'envoi d'un autre message."
-msgid "An email will be sent with the report attached after it is generated."
-msgstr "Une fois le rapport généré, il sera envoyé en pièce jointe par courriel."
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Un champ utilisateur Gitlab vide ajoutera le nom complet de l'utilisateur FogBugz (p. ex., « Par John Smith ») dans la description de tous les tickets et commentaires. Il associera et/ou assignera ces tickets et commentaires au créateur du projet."
@@ -5096,9 +5167,6 @@ msgstr "Une erreur s'est produite lors de la désactivation du Service d'assista
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Une erreur s'est produite lors du rejet de l'alerte. Actualisez la page et essayez à nouveau."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Une erreur s'est produite lors du rejet de la présentation de la nouvelle fonctionnalité. Actualisez la page et essayez de la rejeter à nouveau."
-
msgid "An error occurred while drawing job relationship links."
msgstr "Une erreur s'est produite lors du tracé des liens de relations entre jobs."
@@ -5327,10 +5395,8 @@ msgstr "Une erreur s'est produite lors de la récupération de vos paramètres.
msgid "An error occurred while saving changes: %{error}"
msgstr "Une erreur s'est produite lors de l'enregistrement des modifications°: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "Une erreur s'est produite lors de la sauvegarde du paramètre"
-msgstr[1] "Une erreur s'est produite lors de la sauvegarde des paramètres"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "Une erreur s'est produite lors de la sauvegarde de vos paramètres. Essayez de les sauvegarder de nouveau."
@@ -5496,6 +5562,9 @@ msgstr "Analyse|Les paramètres d'analyse pour « %{project_name} » ont été
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr "Voulez-vous vraiment annuler la création de ce tableau de bord ?"
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr "Voulez-vous vraiment annuler la modification de ce tableau de bord ?"
@@ -5604,6 +5673,9 @@ msgstr "Nom de l'événement"
msgid "Analytics|Event Props"
msgstr "Props d'événement"
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr "Échec de la récupération des données"
@@ -5712,6 +5784,9 @@ msgstr "Mise à jour du tableau de bord %{dashboardSlug}"
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr "Mise à jour de la visualisation %{visualizationName}"
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr "Utilisez le concepteur de visualisations pour créer des visualisations personnalisées. Après l'avoir enregistrée, vous pourrez l'ajouter à un tableau de bord."
@@ -5724,18 +5799,21 @@ msgstr "Props d'utilisateur"
msgid "Analytics|Users"
msgstr "Utilisateurs"
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr "Voir les tableaux de bord disponibles"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
msgid "Analytics|Viewport"
msgstr "Zone d'affichage"
msgid "Analytics|Visualization"
msgstr "Visualisation"
-msgid "Analytics|Visualization Designer"
-msgstr "Concepteur de visualisation"
-
msgid "Analytics|Visualization designer"
msgstr "Concepteur de visualisation"
@@ -5766,9 +5844,6 @@ msgstr "Analyse du fichier…"
msgid "Ancestors"
msgstr "Ancêtres"
-msgid "And this registration token:"
-msgstr "Et ce jeton d'inscription°:"
-
msgid "Anonymous"
msgstr "Anonyme"
@@ -5829,6 +5904,27 @@ msgstr "Ajouter %{shrug} à la fin du commentaire"
msgid "Append the comment with %{tableflip}"
msgstr "Ajouter %{tableflip} à la fin du commentaire"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Faites glisser votre fichier de clé privée ici ou %{linkStart}cliquez pour le téléverser%{linkEnd}."
@@ -5841,17 +5937,14 @@ msgstr "Erreur : vous essayez de téléverser un fichier autre qu'un fichier de
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr "Laissez vide pour utiliser votre clé privée actuelle."
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr "Ne définir des variables que sur les étiquettes et branches protégées"
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr "Étiquettes et branches protégées uniquement"
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
-msgstr "L'ID d'émetteur Apple App Store Connect."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
-msgstr "L'ID de clé Apple App Store Connect."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
msgstr "La clé privée App Store Connect d'Apple (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Application"
msgid "Application ID"
msgstr "Identifiant de l'application"
-msgid "Application analytics"
-msgstr "Données d'analyse de l'application"
-
msgid "Application limits saved successfully"
msgstr "Limites d'application enregistrées avec succès"
@@ -5893,7 +5983,7 @@ msgid "Application: %{name}"
msgstr "Application : %{name}"
msgid "ApplicationSettings|A Metrics Dashboard menu item appears in the Monitoring section of the Admin Area."
-msgstr "Un élément de menu Tableau de bord des métriques apparaît dans la section Supervision de la section d'administration."
+msgstr "Un élément de menu Tableau de bord des métriques apparaît dans la section Surveillance de l'interface d'administration."
msgid "ApplicationSettings|Add a link to Grafana"
msgstr "Ajouter un lien vers Grafana"
@@ -6103,7 +6193,7 @@ msgid "Approval options"
msgstr "Options d'approbation"
msgid "Approval rejected."
-msgstr "Approbation rejetée."
+msgstr ""
msgid "Approval rules"
msgstr "Règles d'approbation"
@@ -6267,7 +6357,7 @@ msgid "ApprovalSettings|Remove approvals by Code Owners if their files changed"
msgstr "Supprimer les approbations données par les propriétaires du code si leurs fichiers ont été modifiés"
msgid "ApprovalSettings|Require user re-authentication (password or SAML) to approve"
-msgstr "Exiger une réauthentification utilisateur (mot de passe ou SAML) pour approuver"
+msgstr ""
msgid "ApprovalSettings|There was an error loading merge request approval settings."
msgstr "Une erreur s'est produite lors du chargement des paramètres d'approbation des requêtes de fusion."
@@ -6392,9 +6482,6 @@ msgstr "Archiver les jobs"
msgid "Archive project"
msgstr "Archiver le projet"
-msgid "Archive test case"
-msgstr "Archiver le scénario de test"
-
msgid "Archived"
msgstr "Archivées"
@@ -6458,6 +6545,9 @@ msgstr "Voulez-vous vraiment supprimer ce %{commentType} ?"
msgid "Are you sure you want to delete this SSH key?"
msgstr "Voulez-vous vraiment supprimer cette clé SSH°?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "Voulez-vous vraiment supprimer ce commentaire ?"
@@ -6473,9 +6563,6 @@ msgstr "Voulez-vous vraiment supprimer ce label ?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "Voulez-vous vraiment supprimer ce pipeline ? Cette action provoquera l'expiration de tous les caches du pipeline et supprimera tous les objets associés, tels que les compilations, les journaux, les artéfacts et les déclencheurs. Cette action ne peut pas être annulée."
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr "Êtes-vous sûr de vouloir supprimer cette règle de branche cible ?"
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Voulez-vous vraiment déployer cet environnement ?"
@@ -6671,9 +6758,6 @@ msgstr "Cet artefact sera définitivement supprimé. Tous les rapports généré
msgid "Artifacts|Total artifacts size"
msgstr "Taille totale des artéfacts"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr "Comme il s'agit d'un compte créé récemment, cliquez sur le lien ci-dessous pour confirmer votre compte avant de commencer."
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "Nous développons sans cesse de nouvelles fonctionnalités pour SAST. Dans ce cadre, nous souhaiterions connaître votre avis sur la fonctionnalité de configuration SAST via %{linkStart}ce ticket%{linkEnd}."
@@ -6689,6 +6773,9 @@ msgstr "Liste des branches à inspecter automatiquement, séparées par des virg
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr "Jeton d'accès personnel de l'utilisateur. L'utilisateur doit avoir accès à la tâche. Toutes les validations lui seront attribuées."
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr "Demandez à un responsable de vérifier l'état de l'importation pour plus de détails."
@@ -6811,15 +6898,12 @@ msgstr "Au moins une approbation d'un propriétaire de code est requise pour mod
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr "Au moins un champ de %{one_of_required_fields} doit être présent"
+msgid "At least one of %{params} must be true"
+msgstr "Au moins un élément doit être vrai parmi %{params}"
+
msgid "At least one of group_id or project_id must be specified"
msgstr "Au minimum un group_id ou un project_id doit être spécifié"
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr "Au moins l'un de vos jetons d'accès personnel a expiré. %{generate_new}"
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr "Au moins l'un de vos jetons d'accès personnel va bientôt expirer. %{generate_new}"
-
msgid "At risk"
msgstr "À risque"
@@ -6911,8 +6995,8 @@ msgstr "Région AWS"
msgid "AuditStreams|AWS S3"
msgstr "AWS S3"
-msgid "AuditStreams|Access Key Xid"
-msgstr "Xid de la clé d'accès"
+msgid "AuditStreams|Access Key ID"
+msgstr ""
msgid "AuditStreams|Active"
msgstr "Actif"
@@ -6989,6 +7073,9 @@ msgstr "Filtrage des événements (facultatif)"
msgid "AuditStreams|Filter by audit event type"
msgstr "Filtrer par type d'événement d'audit"
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr "Google Cloud Logging"
@@ -7025,6 +7112,12 @@ msgstr "Clé d'accès secrète"
msgid "AuditStreams|Select events"
msgstr "Sélectionner des événements"
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr "Configurer les flux d'événements d'audit"
@@ -7118,6 +7211,9 @@ msgstr "Limitation de fréquence des requêtes Web authentifiées en secondes"
msgid "Authenticated web requests"
msgstr "Requêtes Web authentifiées"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "Authentification"
@@ -7307,12 +7403,6 @@ msgstr "Résolue automatiquement"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "Mettez automatiquement à jour les branches et les étiquettes de ce projet à partir du dépôt en amont."
-msgid "Automation"
-msgstr "Automatisation"
-
-msgid "Automation|Automation App"
-msgstr "Application d'automatisation"
-
msgid "Autosave|Note"
msgstr "Note"
@@ -7337,12 +7427,18 @@ msgstr "Voulez-vous vraiment supprimer l'avatar ?"
msgid "Average per day: %{average}"
msgstr "Moyenne par jour : %{average}"
+msgid "Awaiting review"
+msgstr "En attente d’examen"
+
msgid "Awaiting user signup"
msgstr "En attente d'inscription de l'utilisateur"
msgid "AwardEmoji|No emoji found."
msgstr "Aucun émoji trouvé."
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "Retour"
@@ -7394,9 +7490,6 @@ msgstr "Ajouter un badge"
msgid "Badges|Add new badge"
msgstr "Ajouter un nouveau badge"
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "L'ajout du badge a échoué, veuillez vérifier les URL entrées et réessayez."
-
msgid "Badges|Badge image URL"
msgstr "URL de l'image du badge"
@@ -7409,9 +7502,6 @@ msgstr "Badge enregistré."
msgid "Badges|Delete badge?"
msgstr "Supprimer le badge ?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "La suppression du badge a échoué, veuillez réessayer."
-
msgid "Badges|Edit badge"
msgstr "Modifier le badge"
@@ -7421,9 +7511,18 @@ msgstr "Entrez une URL valide"
msgid "Badges|Example: %{exampleUrl}"
msgstr "Exemple°: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr "L'ajout du nouveau badge a échoué. Vérifiez les URL et réessayez."
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr "La suppression du badge a échoué. Réessayez."
+
msgid "Badges|Group Badge"
msgstr "Badge de groupe"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr "Si vous supprimez ce badge, vous %{strongStart}ne pourrez pas%{strongEnd} le restaurer."
+
msgid "Badges|Link"
msgstr "Lien"
@@ -7457,18 +7556,21 @@ msgstr "%{docsLinkStart}Variables%{docsLinkEnd} prises en charge°: %{placeholde
msgid "Badges|The badge was deleted."
msgstr "Le badge a été supprimé."
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr "Ce groupe n’a aucun badge, commencez par en créer un nouveau ci-dessus."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr "Ce groupe n‘a aucun badge. Ajoutez un badge existant ou créez-en un."
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr "Ce projet n’a aucun badge, commencez par en créer un nouveau ci-dessus."
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "Vous êtes sur le point de supprimer ce badge. Les badges supprimés %{strongStart}ne peuvent pas%{strongEnd} être restaurés."
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr "Ce projet n’a aucun badge. Commencez par en créer un nouveau."
msgid "Badges|Your badges"
msgstr "Vos badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7478,8 +7580,8 @@ msgstr "URL de Bamboo"
msgid "BambooService|Bamboo build plan key."
msgstr "Clé du plan de compilation Bamboo."
-msgid "BambooService|Bamboo service root URL."
-msgstr "URL racine du service Bamboo."
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr "Entrez une nouvelle clé de compilation"
@@ -7493,8 +7595,8 @@ msgstr "Exécutez des pipelines CI/CD avec Atlassian Bamboo."
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr "Exécutez des pipelines CI/CD avec Atlassian Bamboo. Vous devez configurer l'étiquetage automatique des révisions et un déclencheur de dépôt dans Bamboo. %{docs_link}"
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "L'utilisateur ayant accès à l'API du serveur Bamboo."
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr "Banni"
@@ -7598,9 +7700,6 @@ msgstr "Avant d'activer cette intégration, créez un crochet Web pour le salon
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "Avant d'insérer du code, assurez-vous d'avoir lu le commentaire qui sépare chaque groupe de code."
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr "Avant que ceci ne puisse être fusionné, un ticket Jira doit y être relié depuis le titre ou la description."
-
msgid "Begin with the selected commit"
msgstr "Commencer avec la validation sélectionnée"
@@ -7958,6 +8057,9 @@ msgstr "Vous pourrez désormais profiter de minutes de calcul gratuites sur les
msgid "Billings|Your account has been validated"
msgstr "Votre compte a été validé"
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr "Sièges utilisés du forfait SaaS %{plan}"
@@ -7988,14 +8090,14 @@ msgstr "Une erreur s'est produite lors du chargement des détails de l'abonnemen
msgid "Billing|An error occurred while loading billable members list."
msgstr "Une erreur s'est produite lors du chargement de la liste des membres facturables."
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "Une erreur s'est produite lors du chargement des détails du module Suggestions de code. Si le problème persiste, veuillez %{supportLinkStart}contacter le support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr "Une erreur s'est produite lors du chargement de la liste des membres en attente"
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "Une erreur s'est produite lors du chargement des utilisateurs du module Suggestions de code. Si le problème persiste, veuillez %{supportLinkStart}contacter le support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while removing a billable member."
msgstr "Une erreur s'est produite lors de la suppression d'un membre facturable."
@@ -8012,11 +8114,11 @@ msgstr "Adhésions directes"
msgid "Billing|Enter at least three characters to search."
msgstr "Entrez au moins trois caractères pour effectuer une recherche."
-msgid "Billing|Error assigning Code Suggestions add-on"
-msgstr "Erreur lors de l'assignation du module complémentaire Suggestions de code"
+msgid "Billing|Error assigning Duo Pro add-on"
+msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
-msgstr "Erreur lors de l'annulation de l'assignation du module complémentaire Suggestions de code"
+msgid "Billing|Error un-assigning Duo Pro add-on"
+msgstr ""
msgid "Billing|Explore paid plans"
msgstr "Découvrir les forfaits payants"
@@ -8056,12 +8158,6 @@ msgstr "Une erreur s'est produite lors de l'assignation du module à ce membre.
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr "Une erreur s'est produite lors de l'annulation de l'assignation du module complémentaire à ce membre. Si le problème persiste, veuillez %{supportLinkStart}contacter l'équipe d'assistance%{supportLinkEnd}."
-msgid "Billing|Subscription end"
-msgstr "Fin de l'abonnement"
-
-msgid "Billing|Subscription start"
-msgstr "Début de l'abonnement"
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "Pour vous assurer que tous les membres puissent accéder au groupe à la fin de votre période d'essai, vous pouvez effectuer une mise à niveau vers une édition payante."
@@ -8083,8 +8179,11 @@ msgstr "Afficher les approbations en attente"
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "Vous êtes sur le point de supprimer l'utilisateur %{username} de votre abonnement. Si vous continuez, l'utilisateur sera supprimé du groupe %{namespace} ainsi que de tous ses sous-groupes et projets. Cette action ne pourra pas être annulée."
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
-msgstr "Vous avez assigné tous les sièges disponibles pour le module complémentaire Suggestions de code. Veuillez %{salesLinkStart}contacter le service commercial%{salesLinkEnd} si vous souhaitez acheter plus de sièges."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
msgstr "Votre groupe est récemment passé au forfait Gratuit. %{over_limit_message} Vous pouvez libérer de l'espace pour les nouveaux membres en supprimant ceux qui n'ont plus besoin d'accès ou en les basculant au-delà de la limite. Pour que le nombre de membres ne soit plus limité, vous pouvez %{link_start}mettre à niveau%{link_end} vers une édition payante."
@@ -8276,12 +8375,6 @@ msgstr[1] "+ %{displayedIssuablesCount} %{issuableType}s de plus"
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr "Tableaux|Une erreur s'est produite lors de la création de cet élément : %{issuableType}. Veuillez réessayer."
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "Une erreur s'est produite lors de la création de l'épopée. Veuillez réessayer."
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "Une erreur s'est produite lors de la création du ticket. Veuillez réessayer."
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "Une erreur s'est produite lors de la création de la liste. Veuillez réessayer."
@@ -8300,9 +8393,6 @@ msgstr "Une erreur s'est produite lors de la récupération du tableau. Veuillez
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr "Une erreur s'est produite lors de la récupération des tableaux. Veuillez réessayer."
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "Une erreur s'est produite lors de la récupération des groupes enfants. Veuillez réessayer."
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr "Une erreur s'est produite lors de la récupération des épopées. Veuillez réessayer."
@@ -8312,18 +8402,12 @@ msgstr "Une erreur s'est produite lors de la récupération des projets de group
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr "Une erreur s'est produite lors de la récupération des groupes. Veuillez réessayer."
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "Une erreur s'est produite lors de la récupération des tickets. Veuillez recharger la page."
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr "Une erreur s'est produite lors de la récupération des tickets. Veuillez réessayer."
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr "Une erreur s'est produite lors de la récupération des itérations. Veuillez réessayer."
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "Une erreur s'est produite lors de la récupération des labels. Veuillez recharger la page."
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr "Tableaux|Une erreur s'est produite lors de la récupération des labels. Veuillez réessayer."
@@ -8336,51 +8420,27 @@ msgstr "Une erreur s'est produite lors de la récupération des jalons. Veuillez
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr "Tableaux|Une erreur s'est produite lors de la récupération des tableaux récents. Veuillez réessayer."
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "Une erreur s'est produite lors de la récupération des épopées du tableau. Veuillez recharger la page."
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "Une erreur s'est produite lors de la récupération des tickets du tableau. Veuillez recharger la page."
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "Une erreur s'est produite lors de la récupération des listes de tableaux. Veuillez recharger la page."
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "Une erreur s'est produite lors de la récupération des couloirs des tableaux. Veuillez recharger la page."
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr "Une erreur s'est produite lors de la récupération du tableau. Veuillez recharger la page."
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr "Une erreur s'est produite lors de la récupération des tickets non assignés. Veuillez réessayer."
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr "Une erreur s'est produite lors de la récupération des utilisateurs. Veuillez réessayer."
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "Une erreur s'est produite lors de la génération des listes. Veuillez recharger la page."
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr "Tableaux|Une erreur s'est produite lors du déplacement de cet élément : %{issuableType}. Veuillez réessayer."
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "Une erreur s'est produite lors du déplacement de l'épopée. Veuillez réessayer."
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "Une erreur s'est produite lors du déplacement du ticket. Veuillez réessayer."
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr "Une erreur s'est produite lors du déplacement de la liste. Veuillez réessayer."
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "Une erreur s'est produite lors de la suppression de la liste. Veuillez réessayer."
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr "Une erreur s'est produite lors de la sélection de la carte. Veuillez réessayer."
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "Une erreur s'est produite lors de la mise à jour de la liste des tableaux. Veuillez réessayer."
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr "Une erreur s'est produite lors de la mise à jour de la liste. Veuillez réessayer."
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] "Blocage par %{blockedByCount} %{issuableType}"
msgstr[1] "Blocage par %{blockedByCount} %{issuableType}s"
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Réduire"
@@ -8410,9 +8473,6 @@ msgstr "Étendre"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr "Échec de la récupération des %{issuableType}s bloquant(e)s"
-msgid "Boards|Move card"
-msgstr "Déplacer la carte"
-
msgid "Boards|Move to end of list"
msgstr "Déplacer en fin de liste"
@@ -8506,6 +8566,9 @@ msgstr "Ce nom de branche existe déjà"
msgid "Branch name"
msgstr "Nom de la branche"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr "Modèle de nom de branche"
@@ -8515,6 +8578,18 @@ msgstr "Branche non chargée : %{branchId}"
msgid "Branch rules"
msgstr "Règles des branches"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "%{linkStart}Les jokers%{linkEnd} tels que *-stable ou production/ sont pris en charge"
@@ -8581,15 +8656,27 @@ msgstr "Branche"
msgid "BranchRules|Branch name or pattern"
msgstr "Schéma ou nom de la branche"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "Détails des règles de la branche"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr "Vérifiez le statut d'une réponse dans les requêtes de fusion. Les échecs ne bloquent pas les fusions. %{linkStart}En savoir plus.%{linkEnd}"
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr "Créer une branche protégée"
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "Créer un joker : %{searchTerm}"
@@ -8647,6 +8734,12 @@ msgstr "Nécessite l'approbation des propriétaires du code"
msgid "BranchRules|Roles"
msgstr "Rôles"
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "Vérifications d'état"
@@ -8665,6 +8758,9 @@ msgstr "Utilisateurs"
msgid "BranchRules|View details"
msgstr "RèglesBranches|Voir les détails"
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "par défaut"
@@ -8677,6 +8773,9 @@ msgstr "Branches"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr "Les branches correspondant à cette chaîne sont redirigées. Les caractères génériques sont pris en charge et les noms sont sensibles à la casse."
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr "Branches : %{source_branch} vers %{target_branch}"
@@ -8977,6 +9076,12 @@ msgstr "Parcourir les fichiers"
msgid "Browse templates"
msgstr "Parcourir les modèles"
+msgid "Bugs created per month by Priority"
+msgstr "Bogues créés par mois, par priorité"
+
+msgid "Bugs created per month by Severity"
+msgstr "Bogues créés par mois, par gravité"
+
msgid "Build cannot be erased"
msgstr "La compilation ne peut pas être effacée"
@@ -9010,9 +9115,18 @@ msgstr "%{feature} (nécessite la v%{version})"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr "Faites attention aux %{linkStart}règles de visibilité%{linkEnd} lors de l'importation de groupes."
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr "Vérifiez que l’URL de base de l’instance source et le jeton d’accès personnel répondent aux exigences nécessaires."
+
msgid "BulkImport|Destination"
msgstr "Destination"
+msgid "BulkImport|Direct transfer"
+msgstr "Transfert direct"
+
+msgid "BulkImport|Direct transfer history"
+msgstr "Historique des transferts directs"
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr "Taille maximale du fichier à télécharger pour le transfert direct (Mio)"
@@ -9022,17 +9136,26 @@ msgstr "Filtrer par groupe source"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr "Les données suivantes ne seront pas migrées : %{bullets} Contactez l'administrateur système de %{host} pour mettre à niveau GitLab si vous avez besoin d'inclure ces données dans votre migration"
-msgid "BulkImport|GitLab Migration history"
-msgstr "Historique de migration GitLab"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
+msgstr "L'importation de groupes est désactivée sur l'instance source ou sur celle de destination. Demandez à votre administrateur de l'activer sur les deux instances et réessayez."
msgid "BulkImport|History"
msgstr "Historique"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr "Échec de l'importation : « %{path} » existe déjà. Modifiez la destination et réessayez."
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr "Échec de l'importation. La destination « %{destination} » n'est pas valide, ou vous n'avez pas d'autorisations."
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr "Échec de l'importation. URL de destination %{url}"
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr "L'importation a échoué°: la destination ne peut pas être un sous-groupe du groupe source. Modifiez la destination et réessayez."
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Importer des groupes depuis GitLab"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr "Importer des groupes par transfert direct"
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr "L'importation est terminée. Choisissez un autre nom pour la réimportation"
@@ -9049,6 +9172,12 @@ msgstr "L'importation des projets est une fonctionnalité %{docsLinkStart}bêta%
msgid "BulkImport|Importing the group failed."
msgstr "L'importation du groupe a échoué."
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr "URL source non valide. Entrez uniquement l’URL de base de l’instance GitLab source."
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr "Éléments dont l'importation a échoué pour %{id}"
+
msgid "BulkImport|Last imported to %{link}"
msgstr "Dernière importation vers %{link}"
@@ -9103,8 +9232,11 @@ msgstr "Source"
msgid "BulkImport|Source group"
msgstr "Groupe source"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
-msgstr "Modèle/importation de fichier/migration GitLab"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr "Modèle / Importation par fichier / Transfert direct"
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
+msgstr "Version de GitLab non prise en charge. La version minimale prise en charge est « %{version} »."
msgid "BulkImport|Update of import statuses with realtime changes failed"
msgstr "La mise à jour des états d'importation avec des modifications en temps réel a échoué"
@@ -9166,9 +9298,6 @@ msgstr "Acheter plus de minutes de Pipeline"
msgid "By %{user_name}"
msgstr "Par %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "Quand un utilisateur s'authentifie avec un compte lié à une adresse de courriel Entreprise, cela signifie que ce compte est un Utilisateur d'Entreprise. "
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr "Par défaut, tous les projets et groupes utilisent le paramètre de notifications générales."
@@ -9309,6 +9438,9 @@ msgstr "Utiliser par défaut le pipeline Auto DevOps pour tous les projets"
msgid "CICD|Deployment strategy"
msgstr "Stratégie de déploiement"
+msgid "CICD|Developer"
+msgstr "Développeur"
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr "La désactivation de cette fonctionnalité est une modification permanente."
@@ -9330,6 +9462,12 @@ msgstr "CICD|Limiter l'accès %{italicStart}depuis%{italicEnd} ce projet (obsolÃ
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr "CICD|Limiter l'accès %{italicStart}à%{italicEnd} ce projet"
+msgid "CICD|Maintainer"
+msgstr "Responsable"
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr "Les pipelines et les jobs ne peuvent pas être annulés"
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr "Empêchez l'utilisation des jetons de job CI/CD de ce projet pour accéder à d'autres projets à moins que l'autre projet ne soit ajouté à la liste d'autorisations. Désactiver cette fonctionnalité constitue un risque pour la sécurité, car des projets non autorisés peuvent tenter de récupérer un jeton actif et d'accéder à l'API. %{linkStart}En savoir plus%{linkEnd}."
@@ -9393,18 +9531,6 @@ msgstr "Demander un ID de CVE"
msgid "CVE|Why Request a CVE ID?"
msgstr "Pourquoi demander un ID de CVE°?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr "En activant cette fonctionnalité, vous acceptez les %{linkStart}Conditions d'utilisation des tests%{linkEnd}"
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr "Analyse de vulnérabilités en continu"
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr "Détectez les vulnérabilités en dehors d'un pipeline dès lors que de nouvelles données sont ajoutées à la base de données GitLab Advisory."
-
-msgid "CVS|Toggle CVS"
-msgstr "Basculer CVS"
-
msgid "Cadence is not automated"
msgstr "La cadence n'est pas automatisée"
@@ -9423,18 +9549,18 @@ msgstr "Sous-domaine Campfire (facultatif)"
msgid "Campfire token"
msgstr "Jeton Campfire"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "Jeton d'authentification d'API de Campfire."
-msgid "CampfireService|From the end of the room URL."
-msgstr "Depuis la fin de l'URL du salon."
+msgid "CampfireService|ID portion of the Campfire room URL."
+msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr "Envoyer les notifications concernant les événements de poussées aux salons de discussion Campfire. %{docs_link}"
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr "Le sous-domaine %{code_open}.campfirenow.com%{code_close}."
-
msgid "Can be manually deployed to"
msgstr "Peut être déployé manuellement dans"
@@ -9444,6 +9570,9 @@ msgstr "Peut créer des groupes de niveau supérieur :"
msgid "Can not delete primary training"
msgstr "Impossible de supprimer la formation prioritaire"
+msgid "Can only be present for group level value streams"
+msgstr "Ne peut être présent que pour les chaînes de valeur au niveau du groupe"
+
msgid "Can't apply as the source branch was deleted."
msgstr "Impossible d'appliquer car la branche source a été supprimée."
@@ -9894,6 +10023,9 @@ msgstr "en %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr "dans %{project_link}"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Revérifier"
@@ -10006,6 +10138,9 @@ msgstr "Une erreur inconnue s'est produite. Veuillez réessayer en actualisant c
msgid "Checkout|Billing address"
msgstr "Adresse de facturation"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "Minutes CI"
@@ -10018,6 +10153,9 @@ msgstr "Votre commande"
msgid "Checkout|City"
msgstr "Ville"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr "Pack de calcul"
@@ -10030,6 +10168,9 @@ msgstr "Confirmer l'achat"
msgid "Checkout|Confirming..."
msgstr "Confirmation..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Passer à la facturation"
@@ -10090,6 +10231,9 @@ msgstr "Groupe"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr "Code de coupon non valide. Entrez un code de coupon valide."
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "Doit être de %{minimumNumberOfUsers} (votre nombre de sièges en cours d'utilisation) ou plus."
@@ -10147,6 +10291,9 @@ msgstr "Adresse"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "Échec de l'envoi du formulaire de la carte de crédit. Code %{errorCode} : %{errorMessage}"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Détails de l'abonnement"
@@ -10159,6 +10306,9 @@ msgstr "Réussite : abonnement"
msgid "Checkout|Tax"
msgstr "Taxe"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "Total"
@@ -10228,9 +10378,6 @@ msgstr "Choisir un fichier..."
msgid "Choose a file"
msgstr "Choisir un fichier"
-msgid "Choose a group"
-msgstr "Choisissez un groupe"
-
msgid "Choose a template"
msgstr "Choisissez un modèle"
@@ -10294,6 +10441,9 @@ msgstr "Une erreur s’est produite lors de la récupération des composants de
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr "Cet onglet affiche des informations collectées automatiquement sur les composants du dépôt, mais aucune information n’a été trouvée."
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr "Retour au catalogue CI/CD"
@@ -10312,8 +10462,11 @@ msgstr "Composants"
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr "Créez un dépôt de composants de pipeline et rendez la réutilisation des configurations de pipeline plus rapide et plus simple."
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
-msgstr "Découvrez des ressources de configuration CI pour une expérience CI/CD transparente."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr "Découvrez les composants CI/CD qui peuvent améliorer votre pipeline avec des fonctionnalités supplémentaires."
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
+msgstr "Modifiez votre recherche et réessayez. Ou %{linkStart}apprenez à créer un dépôt de composants%{linkEnd}."
msgid "CiCatalog|Get started with the CI/CD Catalog"
msgstr "Commencer avec le catalogue CI/CD"
@@ -10324,18 +10477,15 @@ msgstr "Aller au projet"
msgid "CiCatalog|Last release at %{date}"
msgstr "Dernière release au %{date}"
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr "Marquer le projet comme une ressource de catalogue CI/CD"
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr "Marquez le projet comme une ressource de catalogue CI/CD. %{linkStart}Qu'est-ce que le catalogue CI/CD ?%{linkEnd}"
-
msgid "CiCatalog|No component available"
msgstr "Aucun composant disponible"
msgid "CiCatalog|No release available"
msgstr "Aucune version de release disponible"
+msgid "CiCatalog|No result found"
+msgstr "Aucun résultat trouvé"
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr "Page %{currentPage} sur %{totalPage}"
@@ -10345,26 +10495,47 @@ msgstr "Readme"
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr "Publié %{timeAgo} par %{author}"
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
-msgstr "Dépôts de composants de pipeline disponibles dans cet espace de nommage."
+msgid "CiCatalog|Remove from the CI/CD catalog"
+msgstr "Retirer du catalogue CI/CD"
+
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
+msgstr "Retirer le projet du catalogue CI/CD ?"
+
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr "La recherche doit comporter au moins 3 caractères"
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr "Définir le projet comme une ressource de catalogue CI/CD. %{linkStart}Qu'est-ce que le catalogue CI/CD ?%{linkEnd}"
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr "Le projet et toutes les versions publiées seront supprimés du catalogue CI/CD. Si vous réactivez cette option, les versions existantes du projet ne seront pas ajoutées au catalogue. Vous devez %{linkStart}créer une nouvelle version%{linkEnd}."
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
-msgstr "Le projet doit contenir un fichier README.md et un fichier template.yml. Lorsqu'il est activé, le dépôt est disponible dans le catalogue CI/CD."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr "Le projet pourra être trouvé dans le catalogue CI/CD après la publication d’au moins une version."
msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr "Un problème est survenu lors de la récupération des paramètres du catalogue CI/CD."
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
-msgstr "Un problème est survenu lors du marquage du projet en tant que ressource du catalogue CI/CD."
-
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr "Une erreur s'est produite lors de la récupération des ressources du catalogue CI/CD."
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr "Ce projet n'est plus une ressource du catalogue CI/CD."
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr "Ce projet est maintenant une ressource de catalogue CI/CD."
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
-msgstr "Ce projet sera marqué comme une ressource de catalogue CI/CD et sera visible dans le catalogue CI/CD. Cette action n'est pas réversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr "Impossible de retirer le projet des ressources du catalogue CI/CD."
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
+msgstr "Impossible de définir le projet en tant que ressource du catalogue CI/CD."
msgid "CiCatalog|Unreleased"
msgstr "Non publié"
@@ -10372,6 +10543,9 @@ msgstr "Non publié"
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr "Nous souhaitons vous aider à créer et gérer des dépôts de composants de pipelines tout en facilitant la réutilisation des configurations des pipelines. Dites-nous ce que vous en pensez !"
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "Plage de dates°: %{range}"
@@ -10462,6 +10636,18 @@ msgstr "En attente"
msgid "CiStatusText|Warning"
msgstr "Avertissement"
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr "Une clé de variable ne peut contenir que des lettres, des chiffres et « _ »."
+
msgid "CiVariables|Add variable"
msgstr "Ajouter une variable"
@@ -10549,14 +10735,23 @@ msgstr "Indiquez les valeurs de variables à utiliser lors de cette exécution.
msgid "CiVariables|State"
msgstr "État"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr "La valeur doit comporter au moins %{charsAmount} caractères."
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr "Une erreur s'est produite lors de la récupération des variables CI héritées."
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr "Ce %{entity} comporte %{currentVariableCount} variables CI/CD définies. Le nombre maximum de variables par %{entity} est de %{maxVariableLimit}. Pour en ajouter de nouvelles, vous devez réduire le nombre de variables définies."
-msgid "CiVariables|This variable value does not meet the masking requirements."
-msgstr "Cette valeur de variable ne répond pas aux exigences de masquage."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr "Cette valeur ne peut pas être masquée car elle contient les caractères suivants : %{unsupportedChars} et des caractères d'espacement."
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr "Cette valeur ne peut pas être masquée car elle contient les caractères suivants : %{unsupportedChars}."
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
+msgstr "Cette valeur ne peut pas être masquée car elle contient les caractères suivants : caractères d'espacement."
msgid "CiVariables|Type"
msgstr "Type"
@@ -10579,11 +10774,23 @@ msgstr "La variable sera masquée dans les journaux de jobs. Nécessite des vale
msgid "CiVariables|Variables"
msgstr "Variables"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr "Les variables indiquées ici sont %{boldStart}affichées%{boldEnd} et non %{boldStart}réduites.%{boldEnd}"
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
-msgstr "Les variables stockent des informations, telles que des mots de passe et des clés secrètes, que vous pouvez utiliser dans les scripts de jobs. Chaque %{entity} peut définir un maximum de %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
+msgstr "Vous pouvez utiliser des variables CI/CD avec le même nom à différents endroits, mais ces variables peuvent s'écraser les unes les autres. %{linkStart}Quel est l'ordre de précédence des variables ?%{linkEnd}"
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
msgstr "Vous avez atteint le nombre maximum de variables disponibles. Pour en ajouter de nouvelles, vous devez réduire le nombre de variables définies."
@@ -10812,9 +11019,6 @@ msgstr "Clore l'épopée"
msgid "Close milestone"
msgstr "Fermer le jalon"
-msgid "Close sidebar"
-msgstr "Fermer la barre latérale"
-
msgid "Close this %{quick_action_target}"
msgstr "Fermer l'élément suivant : %{quick_action_target}"
@@ -11849,17 +12053,35 @@ msgstr "Afficher tout"
msgid "CodeOwner|Pattern"
msgstr "Motif"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
-msgstr "En activant cette fonctionnalité, vous acceptez l'%{terms_link_start}Accord de test GitLab%{link_end} et vous reconnaissez le fait que GitLab enverra des données de l'instance, notamment des données à caractère personnel, à nos %{ai_docs_link_start}prestataires en IA%{link_end} afin de fournir cette fonctionnalité."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
msgid "CodeSuggestionsSM|Code Suggestions"
msgstr "Suggestions de code"
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
-msgstr "Activer les suggestions de code pour cette instance %{beta}"
-
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
-msgstr "Activer les suggestions de code pour les utilisateurs de cette instance. %{link_start}Que sont les suggestions de code ?%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
+msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
msgstr "Les %{linkStart}suggestions de code%{linkEnd} utilisent une IA générative pour suggérer du code pendant que vous êtes en train de développer."
@@ -11867,8 +12089,8 @@ msgstr "Les %{linkStart}suggestions de code%{linkEnd} utilisent une IA générat
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr "%{link_start}Que sont les suggestions de code ?%{link_end}"
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
-msgstr "Un utilisateur ne peut se voir assigner un siège de suggestion de code qu'une fois par mois facturable."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
+msgstr ""
msgid "CodeSuggestions|Code Suggestions"
msgstr "Suggestions de code"
@@ -11876,23 +12098,23 @@ msgstr "Suggestions de code"
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr "Module complémentaire Suggestions de code"
-msgid "CodeSuggestions|Code Suggestions seats used"
-msgstr "Sièges utilisés pour suggestions de code "
+msgid "CodeSuggestions|Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
-msgstr "Activer les suggestions de code"
+msgid "CodeSuggestions|Duo Pro add-on"
+msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
-msgstr "Améliorez votre expérience de codage avec des recommandations intelligentes. Les %{linkStart}suggestions de code%{linkEnd} utilisent une IA générative pour proposer du code pendant que vous êtes en train de développer."
+msgid "CodeSuggestions|Duo Pro seats used"
+msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
-msgstr "Obtenez des suggestions de code au fur et à mesure que vous écrivez du code dans votre EDI. %{link_start}En savoir plus%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
-msgstr "Présentation du module complémentaire Suggestions de code"
+msgid "CodeSuggestions|Introducing Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
-msgstr "Introduction aux suggestions de code ‑on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
+msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
msgstr "Les projets dans ce groupe peuvent utiliser les suggestions de code"
@@ -12022,6 +12244,9 @@ msgstr "Coloriser les messages"
msgid "ComboSearch is not defined"
msgstr "ComboSearch n'est pas défini"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "Liste d'adresses de courriel, séparées par des virgules."
@@ -12070,6 +12295,12 @@ msgstr "Les commandes n'ont pas été appliquées"
msgid "Comment"
msgstr "Commenter"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "Position du commentaire « %{label} »"
@@ -12348,14 +12579,50 @@ msgstr "Processus terminé"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr "Terminé en %{duration_seconds} secondes (%{relative_time})"
-msgid "Compliance Center|Export full report as CSV"
-msgstr "Exporter le rapport complet au format CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
-msgstr "Exportez les violations des requêtes de fusion au format CSV. Vous recevrez un courriel une fois l'exportation traitée."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
-msgstr "Exportez les projets au format CSV. Vous recevrez un courriel une fois l'exportation traitée."
+msgid "Compliance Center Export|You will be emailed after the export is processed."
+msgstr ""
msgid "Compliance Center|Frameworks"
msgstr "Cadres"
@@ -12372,6 +12639,9 @@ msgstr "Centre de conformité"
msgid "Compliance framework"
msgstr "Cadriciel de conformité"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr "Projets associés"
@@ -12384,6 +12654,9 @@ msgstr "Description"
msgid "ComplianceFrameworksReport|Edit framework"
msgstr "Modifier le cadriciel"
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr "Cadriciels de conformité actifs"
@@ -12393,12 +12666,12 @@ msgstr "Ajouter un cadriciel"
msgid "ComplianceFrameworks|Background color"
msgstr "Couleur d'arrière-plan"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "Annuler"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr "Exportation des cadres de conformité"
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr "Cadriciel de conformité créé"
@@ -12411,9 +12684,15 @@ msgstr "Configuration du pipeline de conformité (facultatif)"
msgid "ComplianceFrameworks|Configuration not found"
msgstr "Configuration introuvable"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr "Cadriciel de conformité par défaut mis à jour avec succès"
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "Supprimer le cadriciel de conformité %{framework}"
@@ -12426,6 +12705,9 @@ msgstr "Description"
msgid "ComplianceFrameworks|Description is required"
msgstr "La description est requise"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr "Modifier le cadriciel de conformité"
@@ -12456,9 +12738,15 @@ msgstr "Nom"
msgid "ComplianceFrameworks|Name is required"
msgstr "Le nom est requis"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr "Nouveau cadriciel de conformité"
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr "Aucun cadre de conformité n'a encore été mis en place"
@@ -12477,12 +12765,18 @@ msgstr "Nécessite un abonnement Ultimate"
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr "Modifications du cadriciel de conformité enregistrées"
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr "Définir la configuration du pipeline de conformité pour les projets qui utilisent ce cadre. %{linkStart}Comment puis-je créer la configuration ?%{linkEnd}"
msgid "ComplianceFrameworks|Set default"
msgstr "Définir par défaut"
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr "Impossible d'enregistrer ce cadriciel de conformité. Veuillez réessayer"
@@ -12600,6 +12894,9 @@ msgstr "Mettre à jour les résultats filtrés ?"
msgid "ComplianceReport|Update result"
msgstr "Mettre à jour le résultat"
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr "Une règle est configurée pour empêcher les requêtes de fusion approuvées par l'auteur."
@@ -12660,6 +12957,12 @@ msgstr "RespectNormesConformité|Empêcher les validateurs d'agir en tant qu'app
msgid "ComplianceStandardsAdherence|Project"
msgstr "Projet"
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr "Exigence"
@@ -12687,8 +12990,14 @@ msgstr "Voir les détails"
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr "Voir les détails (correctif disponible)"
-msgid "ComplianceViolations|Compliance Violations Export"
-msgstr "Exportation des violations de conformité"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
+msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
msgstr "Votre export CSV de violations de conformité pour le groupe \"%{group_name}\" a été ajouté à ce courriel."
@@ -12840,6 +13149,9 @@ msgstr "Configurez la mise en miroir du dépôt."
msgid "Configure repository storage."
msgstr "Configurer le stockage du dépôt."
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr "Configurez le comportement de la détection de secrets pour tous les projets de votre instance GitLab"
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr "Configurer les paramètres de Recherche avancée avec Elasticsearch."
@@ -12930,8 +13242,8 @@ msgstr "Conflit : Ce fichier a été renommé dans la branche source, mais supp
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
-msgstr "URL de l'espace de travail Confluence Cloud"
+msgid "Confluence Workspace URL"
+msgstr ""
msgid "ConfluenceService|Confluence Workspace"
msgstr "Espace de travail Confluence"
@@ -13165,6 +13477,9 @@ msgstr "Dépôt d'image sans nom sur l'URL du projet."
msgid "ContainerRegistry|Image tags"
msgstr "Étiquettes d'image"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr "Étiquette non valide : empreinte du manifeste manquante"
@@ -13350,6 +13665,9 @@ msgstr "Pour élargir votre recherche, modifiez ou supprimez les filtres ci-dess
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr "Nous rencontrons des difficultés pour nous connecter au Registre de Conteneur. Veuillez essayer de rafraîchir la page. Si cette erreur persiste, veuillez consulter %{docLinkStart}la documentation de dépannage%{docLinkEnd}."
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr "Pendant toute la durée du renommage, les nouveaux téléversements à destination du registre de conteneurs sont bloqués. Ceux en cours pourraient échouer et avoir besoin d'être relancés."
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "Avec le registre de conteneurs, chaque projet peut avoir son propre espace pour stocker ses images Docker. %{docLinkStart}En savoir plus%{docLinkEnd}"
@@ -13701,8 +14019,8 @@ msgstr "Contributions du %{calendar_date}"
msgid "Contributor"
msgstr "Contributeur"
-msgid "Contributor statistics"
-msgstr "Statistiques sur les contributeurs"
+msgid "Contributor analytics"
+msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
msgstr "Contrôlez la façon dont la variable CI/CD CI_JOB_TOKEN CI/CD est utilisée pour l'accès avec l'API entre les projets."
@@ -13713,6 +14031,9 @@ msgstr "Contrôlez l'affichage du contenu d'amélioration de l'expérience clien
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr "Convertit l'élément de travail en %{type}. Les widgets non pris en charge par le nouveau type sont supprimés."
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Domaine de cookie"
@@ -13776,6 +14097,9 @@ msgstr "Copier les codes"
msgid "Copy command"
msgstr "Copier la commande"
+msgid "Copy command to finalize manually"
+msgstr "Copier la commande pour finaliser manuellement"
+
msgid "Copy commands"
msgstr "Copier les commandes"
@@ -13848,9 +14172,6 @@ msgstr "Copier le nom de la branche source"
msgid "Copy to clipboard"
msgstr "Copier dans le presse-papiers"
-msgid "Copy token"
-msgstr "Copier le jeton"
-
msgid "Copy value"
msgstr "Copier la valeur"
@@ -14034,6 +14355,9 @@ msgstr "Impossible de téléverser vos designs car un ou plusieurs fichiers envo
msgid "Couldn't assign policy to project or group"
msgstr "Impossible d'assigner la politique au projet ou au groupe"
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr "Impossible de trouver des filtres pour le type d'événement que le ou les types d'événements d'audit : %{missing_filters}"
@@ -14097,6 +14421,9 @@ msgstr "Créer un groupe"
msgid "Create a merge request"
msgstr "Créer une requête de fusion"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "Créez un nouveau fichier %{codeStart}.gitlab-ci.yml%{codeEnd} à la racine du dépôt pour commencer."
@@ -14127,9 +14454,6 @@ msgstr "Créer un jeton d'accès personnel pour votre compte afin de récupérer
msgid "Create a project"
msgstr "Créer un projet"
-msgid "Create an account using:"
-msgstr "Créer un compte en utilisant :"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr "Créer un incident. Les incidents sont créés pour chaque alerte déclenchée."
@@ -14259,9 +14583,6 @@ msgstr "Créer une release"
msgid "Create requirement"
msgstr "Créer une exigence"
-msgid "Create rules for target branches in merge requests."
-msgstr "Créer des règles pour les branches cibles dans les demandes de fusion."
-
msgid "Create service account"
msgstr "Créer un compte de service"
@@ -14298,6 +14619,9 @@ msgstr "Ajoutez un message à l'étiquette. Si vous laissez le champ vide, une Ã
msgid "CreateGitTag|Set tag message"
msgstr "Configurer le message de l'étiquette"
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "Vous n'avez pas l'autorisation de créer un sous-groupe dans ce groupe."
@@ -14508,6 +14832,9 @@ msgstr "Date de création"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "Branche et requête de fusion créées pour résoudre ce ticket."
+msgid "Created at"
+msgstr "Date de création"
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "Branche « %{branch_name} » et requête de fusion créées pour résoudre ce ticket."
@@ -14718,6 +15045,12 @@ msgstr "Acheter des minutes de pipeline"
msgid "CurrentUser|Edit profile"
msgstr "Modifier le profil"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr "Un de vos groupes est à court de minutes"
@@ -15005,9 +15338,6 @@ msgstr "n'est pas autorisé pour l'événement de début donné"
msgid "CycleAnalytics|project dropdown filter"
msgstr "filtre de la liste déroulante des projets"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr "l'objet assigné n'est pas pris en charge"
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr "La visualisation des DAG nécessite au minimum 3 jobs dépendants."
@@ -15037,6 +15367,9 @@ msgstr "Accepter les conditions d'utilisation des tests ?"
msgid "DORA4Metrics|All labels"
msgstr "Tous les labels"
+msgid "DORA4Metrics|All topics"
+msgstr "Tous les sujets"
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr "Moyenne (%{days} derniers jours)"
@@ -15306,9 +15639,6 @@ msgstr "Tous"
msgid "DashboardProjects|Personal"
msgstr "Personnels"
-msgid "Dashboards"
-msgstr "Tableaux de bord"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} et %{secondProject}"
@@ -15342,6 +15672,9 @@ msgstr "Aucune analyse antérieure trouvée pour ce projet"
msgid "DastConfig|Not enabled"
msgstr "Non activé"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr "/graphql"
@@ -15423,6 +15756,9 @@ msgstr "Impossible de mettre à jour le profil du scanner. Veuillez réessayer."
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "Impossible de mettre à jour le profil de site. Veuillez réessayer."
+msgid "DastProfiles|Crawl timeout"
+msgstr "Délai d'expiration de l'indexation"
+
msgid "DastProfiles|DAST profile library"
msgstr "Bibliothèque de profils DAST"
@@ -15600,9 +15936,6 @@ msgstr "Profils de sites"
msgid "DastProfiles|Site type"
msgstr "Type de site"
-msgid "DastProfiles|Spider timeout"
-msgstr "Délai d'attente de l'araignée"
-
msgid "DastProfiles|Submit button"
msgstr "Bouton d'envoi"
@@ -15615,8 +15948,8 @@ msgstr "URL cible"
msgid "DastProfiles|Target timeout"
msgstr "Délai d'expiration pour la cible"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
-msgstr "Le nombre maximal de secondes autorisé pour le parcours du site par l'araignée."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
+msgstr "Le nombre maximal de minutes autorisé pour le parcours du site par le robot d'indexation."
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
msgstr "Le nombre maximal de secondes autorisé pour que le site en cours de test réponde à une requête."
@@ -15928,6 +16261,9 @@ msgstr "Branche par défaut"
msgid "Default branch and protected branches"
msgstr "Branche par défaut et branches protégées"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Modèle de description par défaut pour les tickets"
@@ -16250,17 +16586,6 @@ msgstr "Suppression en attente. Ce projet sera supprimé le %{date}. Le dépôt
msgid "DeletionSettings|Deletion protection"
msgstr "Protection contre la suppression"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] "Conserver les projets supprimés pendant %{number} jour"
-msgstr[1] "Conserver les projets supprimés pendant %{number} jours"
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "Seuls les administrateurs peuvent supprimer des projets."
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "Les propriétaires et les administrateurs peuvent supprimer des projets."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr "Période pendant laquelle les groupes et les projets supprimés pourront être restaurés. Les projets personnels sont toujours supprimés immédiatement."
@@ -16372,12 +16697,18 @@ msgstr "Il peut y avoir plusieurs chemins d'accès"
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr "Une erreur s'est produite lors de la récupération des licences de ce groupe."
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr "Une erreur s’est produite lors de la récupération des projets de ce groupe. Veuillez réessayer plus tard."
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr "Ce groupe dépasse le nombre maximum de 600 sous-groupes. Nous ne pouvons pas afficher avec précision une liste de projets pour le moment. Veuillez accéder à une liste des dépendances du sous-groupe pour afficher ces informations ou consultez la page d'%{linkStart}aide de la liste des dépendances%{linkEnd} pour en savoir plus."
msgid "Dependencies|Toggle vulnerability list"
msgstr "Basculer la liste des vulnérabilités"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "Fichier(s) non pris en charge détecté(s)"
@@ -16396,9 +16727,6 @@ msgstr "Proxy de dépendance"
msgid "Dependency Scanning"
msgstr "Analyse des dépendances"
-msgid "Dependency chains are not supported"
-msgstr "Les chaînes de dépendances ne sont pas prises en charge"
-
msgid "Dependency list"
msgstr "Liste des dépendances"
@@ -16408,6 +16736,9 @@ msgstr "%{docLinkStart}Consultez la documentation%{docLinkEnd} pour découvrir d
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr "Tous les éléments du cache sont programmés pour suppression."
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr "Mis en cache %{time}"
@@ -16444,18 +16775,27 @@ msgstr "Empreinte : %{shortDigest}"
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr "Activer le proxy de dépendance"
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr "Activer le proxy de dépendance pour mettre en cache les images de conteneurs depuis Docker Hub et vider automatiquement le cache."
msgid "DependencyProxy|Image list"
msgstr "Liste d'images"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr "Tirer l'image par exemple d'empreinte"
msgid "DependencyProxy|Scheduled for deletion"
msgstr "Programmé pour suppression"
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr "Il n'y a aucune image dans le cache"
@@ -16465,6 +16805,9 @@ msgstr "Pour voir le préfixe d'image et ce qu'il y a dans le cache, visitez le
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr "Pour stocker les images Docker dans le cache du proxy de dépendance, tirez une image par étiquette dans votre fichier %{codeStart}.gitlab-ci.yml%{codeEnd}. Dans cet exemple, l'image est %{codeStart}alpine:latest%{codeEnd}"
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr "Cette option activée, les images de plus de 90 jours seront supprimées du cache."
@@ -16711,9 +17054,6 @@ msgstr "Nom d'utilisateur"
msgid "DeployTokens|Username (optional)"
msgstr "Nom d'utilisateur (facultatif)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr "Le nom d'utilisateur de votre nouveau jeton de déploiement"
-
msgid "DeployTokens|Your new deploy token"
msgstr "Votre nouveau jeton de déploiement"
@@ -17384,6 +17724,51 @@ msgstr "Limites du diff"
msgid "Diff notes"
msgstr "Notes de diff"
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "Différence entre la date de début et la date actuelle"
@@ -17513,6 +17898,9 @@ msgstr "Rejeter les modifications apportées à %{path} ?"
msgid "Discard draft"
msgstr "Abandonner le brouillon"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Notifications Discord"
@@ -17817,6 +18205,9 @@ msgstr "Faites glisser les labels prioritaires pour les classer et modifier leur
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "Faites glisser vos designs ici ou %{linkStart}cliquez pour les téléverser%{linkEnd}."
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "Déposer ou %{linkStart}téléverser%{linkEnd} le fichier à joindre"
@@ -18108,6 +18499,9 @@ msgstr "Modification"
msgid "Edits"
msgstr "Modifications"
+msgid "Either the title or description must reference a Jira issue."
+msgstr "Le titre, ou la description, doit faire référence à un ticket Jira."
+
msgid "Elapsed time"
msgstr "Temps écoulé"
@@ -18174,6 +18568,9 @@ msgstr "Notification par courriel pour les connexions inconnues"
msgid "Email patch"
msgstr "Correctif par courriel"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "Le courriel a été envoyé"
@@ -18270,6 +18667,9 @@ msgstr "Fichier vide"
msgid "Enable"
msgstr "Activer"
+msgid "Enable Admin Mode"
+msgstr "Passer en mode Administrateur"
+
msgid "Enable Akismet"
msgstr "Activer Akismet"
@@ -18306,6 +18706,9 @@ msgstr "Activer PlantUML"
msgid "Enable SSL verification"
msgstr "Activer la vérification SSL"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr "Activer le suivi avec Snowplow"
@@ -18321,9 +18724,6 @@ msgstr "Activer les nouveautés°: édition actuelle seulement"
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "Activer l'accès à la barre de performance pour les non-administrateurs d'un groupe donné."
-msgid "Enable admin mode"
-msgstr "Activer le mode admin"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr "Activez et désactivez Service Desk. Une configuration supplémentaire peut se révéler nécessaire. %{link_start}En savoir plus%{link_end}."
@@ -18387,6 +18787,9 @@ msgstr "Activez ou désactivez les raccourcis clavier dans vos %{linkStart}préf
msgid "Enable or disable version check and Service Ping."
msgstr "Activer ou désactiver le contrôle de version et le Ping de Service."
+msgid "Enable pre-receive secret detection"
+msgstr "Activer la détection des secrets préréception"
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr "Activer la limitation de fréquence pour les requêtes vers les chemins d'accès spécifiés"
@@ -18402,9 +18805,6 @@ msgstr "Activer les vérifications de dépôt"
msgid "Enable security training"
msgstr "Activer la formation sur la sécurité"
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Activez la formation sur la sécurité pour aider vos développeurs à apprendre à corriger les vulnérabilités. Les développeurs peuvent voir des formations à la sécurité d'une sélection de plateformes d'apprentissage et en rapport avec la vulnérabilité détectée."
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "Activez les runners partagés pour tous les projets et sous-groupes de ce groupe."
@@ -18492,6 +18892,9 @@ msgstr "Se termine le"
msgid "Ends: %{endsAt}"
msgstr "Se termine : %{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "Imposer l'authentification à deux facteurs"
@@ -18514,7 +18917,7 @@ msgid "Enter a URL for your custom emoji"
msgstr "Entrez une URL pour votre émoji personnalisé"
msgid "Enter a name for your comment template"
-msgstr "Nommer votre modèle de commentaire"
+msgstr "Nommez votre modèle de commentaire"
msgid "Enter a number"
msgstr "Saisissez un nombre"
@@ -18807,6 +19210,9 @@ msgstr "Ouvrir"
msgid "Environments|Open live environment"
msgstr "Ouvrir l'environnement en cours"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "Redéployer l'environnement"
@@ -18909,15 +19315,12 @@ msgstr "Étape de déploiement"
msgid "Environment|Deployments"
msgstr "Déploiements"
-msgid "Environment|Environment health"
-msgstr "Santé environnementale"
+msgid "Environment|Environment status"
+msgstr "Statut de l'environnement"
msgid "Environment|External IP"
msgstr "IP externe"
-msgid "Environment|Failed"
-msgstr "Échec"
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr "Interdit d'accéder à l'agent de cluster à partir de cet environnement."
@@ -18930,9 +19333,6 @@ msgstr "Jobs"
msgid "Environment|Kubernetes overview"
msgstr "Vue d'ensemble de Kubernetes"
-msgid "Environment|Pending"
-msgstr "En attente"
-
msgid "Environment|Pods"
msgstr "Pods"
@@ -18948,9 +19348,6 @@ msgstr "Rapprochement en cours"
msgid "Environment|ReplicaSets"
msgstr "ReplicaSets"
-msgid "Environment|Running"
-msgstr "En cours d'exécution"
-
msgid "Environment|Services"
msgstr "Services"
@@ -18960,9 +19357,6 @@ msgstr "Point mort"
msgid "Environment|StatefulSets"
msgstr "StatefulSets"
-msgid "Environment|Succeeded"
-msgstr "Réussis"
-
msgid "Environment|Summary"
msgstr "Résumé"
@@ -18978,12 +19372,12 @@ msgstr "Une erreur s'est produite lors de la récupération de %{resourceType}."
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr "Absence d'autorisation d'accès à %{resourceType} depuis cet environnement."
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
-msgstr "Non autorisé à accéder à l'agent de cluster à partir de cet environnement. Vérifiez votre authentification et réessayez."
-
msgid "Environment|Unhealthy"
msgstr "En mauvaise santé"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
+msgstr ""
+
msgid "Epic"
msgstr "Épopée"
@@ -19885,9 +20279,6 @@ msgstr "Exporter %{requirementsCount} exigences°?"
msgid "Export as CSV"
msgstr "Exporter en CSV"
-msgid "Export commit custody report"
-msgstr "Exporter le rapport de traçabilité des validations"
-
msgid "Export group"
msgstr "Exporter le groupe"
@@ -20014,6 +20405,9 @@ msgstr "URL du wiki externe"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr "Lien vers un wiki externe depuis la barre latérale."
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://exemple.com/xxx/wiki/..."
@@ -20099,6 +20493,9 @@ msgstr "Échec de la création d'une branche pour ce ticket. Veuillez réessayer
msgid "Failed to create a to-do item for the design."
msgstr "Échec de la création d'un pense-bête pour le design."
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "Échec de la création du cadriciel"
@@ -20114,18 +20511,15 @@ msgstr "Échec de la création du dépôt"
msgid "Failed to create resources"
msgstr "Échec de la création de ressources"
-msgid "Failed to create target branch rule"
-msgstr "Échec de la création de la règle de branche cible"
-
msgid "Failed to create wiki"
msgstr "Échec de la création du wiki"
+msgid "Failed to delete branch target"
+msgstr ""
+
msgid "Failed to delete custom emoji. Please try again."
msgstr "Échec de la suppression de l'émoji personnalisé. Veuillez réessayer."
-msgid "Failed to delete target branch rule"
-msgstr "Échec de la suppression de la règle de branche cible"
-
msgid "Failed to deploy to"
msgstr "Échec du déploiement sur"
@@ -20162,9 +20556,6 @@ msgstr "Échec du chargement"
msgid "Failed to load Roadmap"
msgstr "Échec du chargement de la feuille de route"
-msgid "Failed to load assignees."
-msgstr "Échec du chargement du ou des assignés."
-
msgid "Failed to load assignees. Please try again."
msgstr "Échec du chargement des assignés. Veuillez réessayer."
@@ -20192,18 +20583,9 @@ msgstr "Échec du chargement des groupes, des utilisateurs et des clés de dépl
msgid "Failed to load groups."
msgstr "Échec du chargement des groupes."
-msgid "Failed to load iteration cadences."
-msgstr "Échec du chargement des cadences d'itération."
-
-msgid "Failed to load iterations."
-msgstr "Échec du chargement des itérations."
-
msgid "Failed to load labels. Please try again."
msgstr "Échec du chargement des labels. Veuillez réessayer."
-msgid "Failed to load milestones."
-msgstr "Échec du chargement des jalons."
-
msgid "Failed to load milestones. Please try again."
msgstr "Échec du chargement des jalons. Veuillez réessayer."
@@ -20312,6 +20694,9 @@ msgstr "Échec de la mise à jour du cadriciel"
msgid "Failed to update issue status"
msgstr "Échec de la mise à jour de l'état du ticket"
+msgid "Failed to update organization"
+msgstr "La mise à jour de l'organisation a échoué"
+
msgid "Failed to update the Canary Ingress."
msgstr "Échec de la mise à jour du Canari Ingress."
@@ -20605,6 +20990,9 @@ msgstr "Fichier déplacé"
msgid "File name"
msgstr "Nom du fichier"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr "Permissions du fichier"
@@ -20884,9 +21272,6 @@ msgstr "Pour les fichiers de taille supérieure à cette limite, n'indexer que l
msgid "For general work"
msgstr "Pour un usage générique"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr "Pour une utilisation individuelle, créez un compte distinct avec votre adresse de courriel personnelle, non relié à votre groupe ou domaine de messagerie Entreprise."
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr "Pour une utilisation individuelle, créez un compte distinct avec votre adresse de courriel personnelle, non relié à votre domaine de messagerie Entreprise."
@@ -21207,6 +21592,9 @@ msgstr "Produire une analyse des causes profondes"
msgid "Generate site and private keys at"
msgstr "Générer la clé du site et la clé privée sur"
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "Généré avec les données JSON"
@@ -21550,12 +21938,6 @@ msgstr "Resynchroniser"
msgid "Geo|Resync all"
msgstr "Tout resynchroniser"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr "Resynchroniser l'ensemble des %{projects_count} projets"
-
-msgid "Geo|Resync project"
-msgstr "Resynchroniser le projet"
-
msgid "Geo|Retry count"
msgstr "Nombre de nouvelles tentatives"
@@ -21565,12 +21947,6 @@ msgstr "Revérifier"
msgid "Geo|Reverify all"
msgstr "Tout revérifier"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr "Revérifier l'ensemble des %{projects_count} projets"
-
-msgid "Geo|Reverify project"
-msgstr "Revérifier le projet"
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr "Vérifie l'état de la réplication, et revérifie et resynchronise les éléments avec le site principal."
@@ -21679,12 +22055,6 @@ msgstr "Cette instance GitLab dispose d'une édition %{insufficient_license}. Ge
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr "Cela va %{action} %{replicableType}. Cela peut prendre un certain temps. Voulez-vous vraiment continuer ?"
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Cette action resynchronisera tous les projets. Cela peut prendre un certain temps. Voulez-vous vraiment continuer ?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Cette action revérifiera tous les projets. Cela peut prendre un certain temps. Voulez-vous vraiment continuer ?"
-
msgid "Geo|Time in seconds"
msgstr "Durée en secondes"
@@ -21742,9 +22112,6 @@ msgstr "principal"
msgid "Geo|secondary"
msgstr "secondaire"
-msgid "Get a free instance review"
-msgstr "Obtenez une revue d'instance gratuite"
-
msgid "Get a support subscription"
msgstr "Obtenir un abonnement au support"
@@ -21766,6 +22133,9 @@ msgstr "Premiers pas avec le suivi des erreurs"
msgid "Get started!"
msgstr "Lancez-vous !"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21853,9 +22223,15 @@ msgstr "Vous ne pouvez pas exclure plus de %{maxAllowedUsers} utilisateurs."
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr "La limite de débit de l'API GitHub a été dépassée. Réessayez après %{reset_time}"
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "Importation de GitHub"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "*Fusion par : %{author} le %{timestamp}*"
@@ -21952,9 +22328,6 @@ msgstr "GitLab est une plateforme DevOps complète proposée sous la forme d'une
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr "GitLab est une plateforme DevOps complète proposée sous la forme d'une application unique. Elle révolutionne%{br_tag}la collaboration entre les équipes de développement, de sécurité et d'exploitation"
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr "GitLab est une application tout-en-un pour gérer le cycle de développement logiciel dans son intégralité. Elle couvre toutes les étapes, de la planification du projet et la gestion du code source en passant par l'outil CI / CD, la supervision et la sécurité."
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr "L'utilisation de GitLab est gratuite. Plusieurs fonctionnalités destinées aux équipes plus importantes sont incluses dans nos %{link_start}produits payants%{link_end}. Vous pouvez essayer Ultimate gratuitement sans aucune obligation ni information de paiement."
@@ -22084,8 +22457,8 @@ msgstr "Non vérifiée"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "Mise à jour en cours de la configuration de vos Pages..."
-msgid "GitLabPages|Use multiple versions"
-msgstr "Utiliser plusieurs versions"
+msgid "GitLabPages|Use multiple deployments"
+msgstr ""
msgid "GitLabPages|Use unique domain"
msgstr "Utiliser un domaine unique"
@@ -22102,8 +22475,8 @@ msgstr "Lorsque cette option est activée, un domaine unique est généré pour
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr "Lorsque cette option est activée, toutes les tentatives pour se rendre sur votre site Web via HTTP sont automatiquement redirigées vers HTTPS à l'aide d'une réponse avec le code d'état 301. Cette action nécessite un certificat valide pour tous les domaines. %{docs_link_start}En savoir plus.%{link_end}"
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
-msgstr "Lorsque cette option est activée, vous pouvez créer plusieurs versions du site de vos pages."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
+msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
msgstr "Lors de l'utilisation de Pages sous le domaine générique d'une instance GitLab (%{pages_host}), vous ne pouvez pas utiliser HTTPS avec des sous-domaines de sous-domaines. Si votre espace de nommage ou nom de groupe contient un point, il ne fonctionnera pas. Il s'agit d'une limitation du protocole HTTP Over TLS. Les pages HTTP fonctionneront si vous ne redirigez pas HTTP vers HTTPS. %{docs_link_start}En savoir plus.%{link_end}"
@@ -22279,24 +22652,24 @@ msgstr "Courriel de notification globale"
msgid "Global notification level"
msgstr "Niveau de notification global"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr " %{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr "%{count} résultats par défaut fournis. Utilisez les touches fléchées haut et bas pour parcourir la liste des résultats de la recherche."
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
-msgstr "%{link_start}La recherche de code exact (optimisée par Zoekt)%{link_end} est activée"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr "La %{linkStart}recherche de code exact (optimisée par Zoekt)%{linkEnd} est désactivée car %{ref_elem} n’est pas la branche par défaut. %{docs_link}"
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
+msgstr "La %{linkStart}recherche de code exact (optimisée par Zoekt)%{linkEnd} est activée"
msgid "GlobalSearch|Aggregations load error."
msgstr "Erreur lors du chargement des agrégations."
+msgid "GlobalSearch|All available groups"
+msgstr ""
+
msgid "GlobalSearch|Archived"
msgstr "RechercheGlobale|Éléments archivés"
-msgid "GlobalSearch|Close"
-msgstr "Fermer"
-
msgid "GlobalSearch|Command palette"
msgstr "Palette de commandes"
@@ -22354,6 +22727,9 @@ msgstr "Requêtes de fusion dont je suis relecteur"
msgid "GlobalSearch|No labels found"
msgstr "Aucun label trouvé"
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr "Parmi tous les projets non indexés, seuls les %{max_shown} premiers sont affichés"
@@ -22373,7 +22749,10 @@ msgid "GlobalSearch|Recent issues"
msgstr "Tickets récents"
msgid "GlobalSearch|Recent merge requests"
-msgstr "requêtes de fusion récentes"
+msgstr "Requêtes de fusion récentes"
+
+msgid "GlobalSearch|Reset"
+msgstr ""
msgid "GlobalSearch|Result count is over limit."
msgstr "Le nombre de résultats est supérieur à la limite."
@@ -22381,12 +22760,6 @@ msgstr "Le nombre de résultats est supérieur à la limite."
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr "Résultats mis à jour. %{count} résultats disponibles. Utilisez les touches fléchées haut et bas pour parcourir la liste des résultats de la recherche, ou ENTRÉE pour envoyer."
-msgid "GlobalSearch|Search"
-msgstr "Rechercher"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "Rechercher sur GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "Rechercher des projets, des tickets et d'autres choses."
@@ -22414,9 +22787,6 @@ msgstr "Le terme recherché doit comporter au moins 3 caractères."
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr "Une erreur s'est produite lors de la récupération des suggestions d'autocomplétion de recherche."
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr "Une erreur s'est produite lors de la récupération du document « Options de syntaxe »."
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr "Tapez %{kbdOpen}/%{kbdClose} pour lancer une recherche"
@@ -22426,9 +22796,6 @@ msgstr "Écrivez puis appuyez sur la touche Entrée pour soumettre la recherche.
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "Écrivez pour faire apparaître de nouvelles suggestions ci-dessous."
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "Utilisez le raccourci clavier %{kbdOpen}/%{kbdClose} pour lancer une recherche"
-
msgid "GlobalSearch|Users"
msgstr "Utilisateurs"
@@ -22543,9 +22910,6 @@ msgstr "Accéder à la page précédente"
msgid "Go to previous unresolved thread"
msgstr "Aller au fil de conversation non résolu précédent"
-msgid "Go to primary site"
-msgstr "Aller au site principal"
-
msgid "Go to project"
msgstr "Accéder au projet"
@@ -22615,6 +22979,9 @@ msgstr "Aller à vos requêtes de revue"
msgid "Go to your snippets"
msgstr "Accéder à vos extraits de code"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google Cloud"
@@ -22627,6 +22994,9 @@ msgstr "Projet Google Cloud"
msgid "Google Cloud authorizations required"
msgstr "Autorisations Google Cloud requises"
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "Annuler"
@@ -22663,12 +23033,12 @@ msgstr "Révoquer les autorisations"
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr "Révoquer les autorisations accordées à GitLab. Cela n'invalide pas les comptes de service."
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
-msgstr "Définir des variables uniquement sur les étiquettes et les branches protégées"
-
msgid "GooglePlayStore|Protected branches and tags only"
msgstr "Étiquettes et branches protégées uniquement"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
+msgstr ""
+
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Faites glisser votre fichier de clé ici ou %{linkStart}cliquez pour le téléverser%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr "Utilisez GitLab pour compiler et publier une application sur Google Play
msgid "Got it"
msgstr "Compris"
-msgid "Got it!"
-msgstr "J'ai compris !"
-
msgid "Grafana URL"
msgstr "URL de Grafana"
@@ -22837,6 +23204,9 @@ msgstr "Informations du groupe :"
msgid "Group information"
msgstr "Informations du groupe"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "Grouper les jobs par"
@@ -22930,11 +23300,14 @@ msgstr "Le groupe a été importé avec succès."
msgid "GroupImport|Unable to process group import file"
msgstr "Impossible de traiter le fichier d'importation de groupe"
-msgid "GroupPage|Copy group ID"
-msgstr "Copier l'ID du groupe"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "ID de groupe : %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} – aucune date de fin"
@@ -23197,6 +23570,9 @@ msgstr "Une fois que l’instance a atteint le plafond d'utilisateurs, tout util
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr "Une fois que l'instance a atteint le plafond d'utilisateurs, tout utilisateur qui est ajouté ou qui demande un accès doit être approuvé par un administrateur. Laissez vide pour qu'il n'y ait pas de limite au plafond du nombre d'utilisateurs. Si vous passez le plafond d'un nombre limité à illimité, vous devez réactiver le %{project_sharing_docs_link_start}partage de projet%{link_end} et le %{group_sharing_docs_link_start}partage de groupe%{link_end}. Augmenter le plafond d'utilisateurs n'approuve pas automatiquement les utilisateurs en attente."
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr "Données d'analyse"
@@ -23218,6 +23594,9 @@ msgstr "Badges"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr "Faites attention. Changer le parent d'un groupe peut avoir des effets secondaires inattendus. %{learn_more_link_start}En savoir plus.%{learn_more_link_end}"
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "Impossible de mettre à jour le chemin d'accès car certains projets de ce groupe contiennent des images Docker dans leur registre de conteneurs. Veuillez supprimer les images de vos projets puis réessayer."
@@ -23260,12 +23639,21 @@ msgstr "Utiliser par défaut le pipeline Auto DevOps pour tous les projets de ce
msgid "GroupSettings|Email notifications are disabled"
msgstr "Les notifications par courriel sont désactivées"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr "Activer l'agrégation en arrière-plan de la vue d'ensemble pour le tableau de bord des chaînes de valeur"
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr "L'activation de ces fonctionnalités implique votre acceptation de l'%{link_start}Accord de test de GitLab%{link_end}."
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr "Imposer les certificats SSH"
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr "Expériences et fonctionnalités bêta"
@@ -23290,6 +23678,9 @@ msgstr "Si la visibilité du groupe parent est inférieure à la visibilité act
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "Les membres ne peuvent pas inviter de groupes en dehors de %{group} ou de ses sous-groupes"
+msgid "GroupSettings|Namespace setting"
+msgstr "Paramètre d‘espace de noms"
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "Des organisations et des contacts peuvent être créés et associés à des tickets."
@@ -23314,6 +23705,12 @@ msgstr "Les projets dans %{group} ne peuvent pas être partagés avec d'autres g
msgid "GroupSettings|Reporting"
msgstr "Rapports"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr "Sélectionnez un sous-groupe qui sera utilisé comme source pour les modèles personnalisés des nouveaux projets de ce groupe. %{link_start}En savoir plus%{link_end}."
@@ -23356,6 +23753,9 @@ msgstr "Une erreur s'est produite lors de la mise à jour des paramètres du pip
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr "Ces fonctionnalités sont en cours de développement et peuvent être instables."
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Ce paramètre s'applique au groupe %{ancestor_group} et a été outrepassé pour ce sousâ€groupe."
@@ -23419,30 +23819,6 @@ msgstr "Les groupes sont un excellent moyen d'organiser des projets et des perso
msgid "Groups are the best way to manage projects and members."
msgstr "Les groupes sont le meilleur moyen de gérer des projets et des membres."
-msgid "GroupsDropdown|Frequently visited"
-msgstr "Fréquemment consultés"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Les groupes que vous consultez souvent apparaîtront ici"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Chargement des groupes"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "Chercher dans vos groupes"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Un problème est survenu de notre côté."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Désolé, aucun groupe ne correspond à vos critères de recherche"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "Cette fonctionnalité nécessite la prise en charge de localStorage par votre navigateur"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr "Basculer vers le mode édition"
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr "Un groupe est une collection de plusieurs projets."
@@ -23503,8 +23879,8 @@ msgstr "Créer un sous-groupe"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr "Entrez l'URL de l'instance source."
-msgid "GroupsNew|GitLab source instance URL"
-msgstr "URL de l'instance GitLab source"
+msgid "GroupsNew|GitLab source instance base URL"
+msgstr "URL de base de l'instance GitLab source"
msgid "GroupsNew|Groups"
msgstr "Groupes"
@@ -23545,8 +23921,8 @@ msgstr "Veuillez demander à votre administrateur de l'activer dans les paramèt
msgid "GroupsNew|Please fill in your personal access token."
msgstr "Veuillez renseigner votre jeton d'accès personnel."
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
-msgstr "Fournissez les identifiants de l'instance source depuis laquelle vous importez. Vous pouvez utiliser cette instance comme source pour déplacer des groupes à l'intérieur de celle-ci."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
+msgstr "Indiquez les identifiants de l’%{url_link_start}instance source%{url_link_end} à partir de laquelle faire l'importation. Vous pouvez fournir cette instance en tant que source pour y déplacer des groupes."
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
msgstr "N'oubliez pas de l'activer également sur l'instance à partir de laquelle vous migrez."
@@ -23657,17 +24033,20 @@ msgid "Groups|Subgroup slug"
msgstr "Slug du sous-groupe"
msgid "Groups|There was an error creating the Group README."
-msgstr "Une erreur s'est produite lors de la création du README du groupe."
+msgstr "Une erreur s’est produite lors de la création du README du groupe."
msgid "Groups|This will create a README.md for project %{path}."
msgstr "Un fichier README.md sera créé pour le projet %{path}."
msgid "Groups|This will create a project %{path} and add a README.md."
-msgstr "Un projet sera créé %{path} et un fichier README.md sera ajouté."
+msgstr "Un projet %{path} sera créé et un fichier README.md sera ajouté."
msgid "Groups|You're creating a new top-level group"
msgstr "Vous êtes en train de créer un nouveau groupe principal"
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "Invité"
@@ -23722,6 +24101,15 @@ msgstr "Le mot de passe de votre nom d'utilisateur Harbor."
msgid "HarborIntegration|The name of the project in Harbor."
msgstr "Le nom du projet dans Harbor."
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr "Utilisez Harbor comme registre de conteneur de ce projet."
@@ -23978,11 +24366,6 @@ msgstr "Masquer le fil de conversation"
msgid "Hide tooltips or popovers"
msgstr "Masquer les info-bulles et les popovers"
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Masquer la valeur"
-msgstr[1] "Masquer les valeurs"
-
msgid "Hide values"
msgstr "Masquer les valeurs"
@@ -24001,6 +24384,9 @@ msgstr "Y a-t-il un cadriciel ou un type d'élément de travail auquel vous souh
msgid "Hierarchy|Planning hierarchy"
msgstr "Hiérarchie de planification"
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr "Une erreur s'est produite lors de la récupération des ancêtres."
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr "Une erreur s'est produite lors de la récupération des enfants."
@@ -24076,6 +24462,9 @@ msgstr "Maintenance"
msgid "Housekeeping successfully started"
msgstr "Maintenance démarrée avec succès"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr "Comment puis-je modifier mon mot de passe dans GitLab ?"
@@ -24166,6 +24555,9 @@ msgstr "Je suis désolé, je n'ai pas pu trouver de documentation pour répondre
msgid "ID"
msgstr "Identifiant"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID :"
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] "%d pays trouvé"
msgstr[1] "%d pays trouvés"
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr "%{linkStart}Entrez un nouveau numéro de téléphone%{linkEnd}"
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr "VérificationIdentité|Un code a déjà été envoyé à cette adresse e-mail. Vérifiez le dossier spam ou entrez une autre adresse e-mail."
@@ -24279,8 +24668,8 @@ msgstr "Avant que vous ne terminiez la création de votre compte, nous devons vÃ
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "Avant que vous ne vous connectiez, nous devons vérifier votre identité. Entrez le code suivant sur la page de connexion."
-msgid "IdentityVerification|Complete verification to sign in."
-msgstr "Terminez la vérification pour vous connecter."
+msgid "IdentityVerification|Complete verification to sign up."
+msgstr "Terminez la vérification pour vous inscrire."
msgid "IdentityVerification|Confirm your email address"
msgstr "Confirmez votre adresse de courriel"
@@ -24291,8 +24680,11 @@ msgstr "Pays ou région"
msgid "IdentityVerification|Didn't receive a code?"
msgstr "Vous n'avez pas reçu de code ?"
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
-msgstr "Vous n'avez pas reçu le code ? %{linkStart}Recevoir un nouveau code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr "Vous n’avez pas reçu de code ? %{codeLinkStart}Envoyez-en un nouveau%{codeLinkEnd} ou %{phoneLinkStart}entrez un nouveau numéro de téléphone%{phoneLinkEnd}"
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
msgid "IdentityVerification|Email update is only offered once."
msgstr "VérificationIdentité|La mise à jour de l'adresse e-mail n'est proposée qu'une seule fois."
@@ -24363,6 +24755,9 @@ msgstr "Envoyer un nouveau code"
msgid "IdentityVerification|Send code"
msgstr "Envoyer un code"
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "Une erreur s'est produite. Veuillez réessayer."
@@ -24652,9 +25047,6 @@ msgstr "Importer un groupe"
msgid "Import group from file"
msgstr "Importer un groupe depuis un fichier"
-msgid "Import groups"
-msgstr "Importer des groupes"
-
msgid "Import history"
msgstr "Historique d'importation"
@@ -24831,12 +25223,12 @@ msgstr "Importation en cours..."
msgid "Import|An error occurred while fetching import details."
msgstr "Une erreur s'est produite lors de la récupération des détails de l'importation."
+msgid "Import|Failures for %{id}"
+msgstr "Échecs pour %{id}"
+
msgid "Import|GitHub import details"
msgstr "Détails de l'importation GitHub"
-msgid "Import|GitLab Migration details"
-msgstr "Détails des migrations GitLab"
-
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
msgstr "Taille maximale des fichiers décompressés pour les archives issues des importations (Mio)"
@@ -24849,6 +25241,9 @@ msgstr "Importer|Taille maximale des fichiers distants pour les importations à
msgid "Import|Maximum size of decompressed archive."
msgstr "Taille maximale de l'archive décompressée."
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr "Ne doit contenir que l'URL de base de l'instance GitLab source."
+
msgid "Import|No import details"
msgstr "Aucun détail sur l'importation"
@@ -24864,6 +25259,9 @@ msgstr "Le dépôt n'a pas pu être importé."
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr "Il n'y a pas de dépôt Git valide à cette URL. Si votre dépôt HTTP n'est pas publiquement accessible, vérifiez vos identifiants."
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr "Délai d'expiration pour la décompression des fichiers archivés (secondes)"
@@ -25350,6 +25748,9 @@ msgstr "Indique si ce runner peut choisir des jobs sans étiquettes"
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "Informer les utilisateurs qui n'ont pas téléversé de clés SSH qu'ils ne peuvent pas pousser sur SSH tant qu'ils n'en ont pas ajouté une"
+msgid "Information"
+msgstr "Informations"
+
msgid "Infrastructure"
msgstr "Infrastructure"
@@ -25477,9 +25878,6 @@ msgstr "Certains éléments ne sont pas visibles, car le projet a été filtré
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr "Ce projet est masqué par un filtre du fichier insights.yml (veuillez consulter la configuration projects.only pour en savoir plus)."
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "Installez GitLab Runner et assurez-vous qu'il est en cours d'exécution."
-
msgid "Installation"
msgstr "Installation"
@@ -25866,9 +26264,6 @@ msgstr "Fichier non valide."
msgid "Invalid format selected"
msgstr "Format non valide sélectionné"
-msgid "Invalid hash"
-msgstr "Hash non valide"
-
msgid "Invalid input, please avoid emoji"
msgstr "Entrée non valide, veuillez éviter les émojis"
@@ -26075,11 +26470,11 @@ msgstr "Pour ajouter des membres, un propriétaire de ce groupe peut %{trialLink
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr "Pour inviter des nouveaux utilisateurs à rejoindre ce groupe principal, vous devez supprimer des utilisateurs déjà présents. Vous pouvez toujours ajouter des utilisateurs existants provenant du groupe principal, de ses sous-groupes ou de ses projets."
-msgid "InviteMembersModal|Username"
-msgstr "Nom d'utilisateur"
+msgid "InviteMembersModal|Username or name"
+msgstr "Nom d'utilisateur ou nom"
-msgid "InviteMembersModal|Username or email address"
-msgstr "Nom d'utilisateur ou adresse de messagerie"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr "Nom d'utilisateur, nom ou adresse de courriel"
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr "Vous n'avez de la place que pour %{count} %{members} supplémentaires sur %{name}"
@@ -26405,14 +26800,14 @@ msgstr "URL du ticket"
msgid "IssueTracker|New issue URL"
msgstr "URL de nouveau ticket"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "L'URL pour créer un ticket dans le système de suivi des tickets."
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
-msgstr "L'URL du projet dans le système de suivi des tickets."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "L'URL pour afficher un ticket dans le système de suivi des tickets. Doit contenir %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "Utiliser Bugzilla comme gestionnaire de tickets pour ce projet."
@@ -26516,6 +26911,11 @@ msgstr "Tickets créés par mois"
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr "Les 12 derniers mois (%{chartDateRange})"
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] "Le mois dernier (%{dateRange})"
+msgstr[1] "Les %{monthsCount} derniers mois (%{dateRange})"
+
msgid "IssuesAnalytics|Opened"
msgstr "Ouverts"
@@ -26525,10 +26925,8 @@ msgstr "Vue d'ensemble"
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Désolé, aucun résultat ne correspond à vos critères de recherche"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] "Ce mois-ci (%{chartDateRange})"
-msgstr[1] "Les %{monthsCount} derniers mois (%{chartDateRange})"
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr "Ce mois-ci (%{currentMonthYear})"
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr "Pour élargir votre recherche, modifiez ou supprimez les critères de recherche dans la barre de filtrage ciâ€dessus."
@@ -26569,6 +26967,9 @@ msgstr "L'analyse des dépendances semble avoir été exécutée avec succès, m
msgid "It seems that there is currently no available data for code coverage"
msgstr "Aucune donnée ne semble être actuellement disponible pour la couverture de code"
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "C'est vous"
@@ -26698,6 +27099,9 @@ msgstr "Erreur lors du chargement des cadences d'itération."
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr "Les tickets inachevés seront ajoutés à la prochaine itération à %{strongStart}minuit, %{timezone}%{strongEnd}."
+msgid "Iterations|Iteration cadence"
+msgstr "Cadence d'itération"
+
msgid "Iterations|Iteration cadences"
msgstr "Cadences d'itération"
@@ -26827,6 +27231,9 @@ msgstr "Modèle de correspondances d'utilisateurs Jira-GitLab"
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr "Êtes-vous un administrateur GitLab ?"
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr "Impossible de trouver l'espace de nommage. Assurez-vous d'avoir les permissions suffisantes."
@@ -26896,15 +27303,15 @@ msgstr "Groupe associé avec succès"
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr "Les groupes sont les groupes et sous-groupes de GitLab que vous associez à cette instance de Jira."
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr "Afin de terminer la configuration, vous devez procéder à quelques étapes dans GitLab :"
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr "ID de l'application Jira Connect"
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "URL du proxy Jira Connect"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr "Associer des groupes"
@@ -26956,6 +27363,12 @@ msgstr "Dites-nous ce que vous en pensez !"
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr "L'utilisateur Jira n'est pas un administrateur de site ou d'organisation. Vérifiez les permissions dans Jira et réessayez."
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr "Nous aimerions en savoir plus sur votre expérience avec l'application GitLab pour Jira Cloud."
@@ -27004,6 +27417,9 @@ msgstr "Les identifiants pour accéder à Jira ne donnent pas l'autorisation d'a
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr "Les identifiants pour accéder à Jira ne sont pas valides. Vérifiez les %{docs_link_start}identifiants de votre intégration Jira%{docs_link_end} et réessayez."
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr " sur la branche %{branch_link}"
@@ -27163,8 +27579,8 @@ msgstr "Utilisez un préfixe pour établir la correspondance avec les clés de t
msgid "JiraService|Use custom transitions"
msgstr "Utiliser des transitions personnalisées"
-msgid "JiraService|Use regular expression to match Jira issue keys."
-msgstr "Utilisez une expression rationnelle pour établir la correspondance avec les clés de tickets Jira."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
+msgstr "Utilisez une expression rationnelle pour sélectionner les clés de tickets Jira. Elle doit respecter la %{link_start}syntaxe RE2%{link_end}. Si le champ est vide, le comportement par défaut est utilisé."
msgid "JiraService|Using Jira for issue tracking?"
msgstr "Utiliser Jira pour le suivi des tickets°?"
@@ -27433,6 +27849,9 @@ msgstr "Durée"
msgid "Job|Erase job log and artifacts"
msgstr "Effacer le journal des jobs et les artéfacts"
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr "Liens externes"
@@ -27442,6 +27861,9 @@ msgstr "Échoué"
msgid "Job|Finished at"
msgstr "Terminé à"
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Artéfacts du job"
@@ -27485,7 +27907,7 @@ msgid "Job|Retry"
msgstr "Réessayer"
msgid "Job|Run again"
-msgstr "Exécuter à nouveau"
+msgstr "Réexécuter"
msgid "Job|Runner type"
msgstr "Type de runner"
@@ -27514,6 +27936,9 @@ msgstr "Rechercher dans le journal des jobs"
msgid "Job|Show complete raw"
msgstr "Afficher la version brute complète"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr "Ignoré"
@@ -27634,9 +28059,6 @@ msgstr "Clé (PEM)"
msgid "Key details"
msgstr "Détails de la clé"
-msgid "Key result"
-msgstr "Résultat clé"
-
msgid "Key:"
msgstr "Clé :"
@@ -27673,6 +28095,9 @@ msgstr "Clés"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27703,6 +28128,120 @@ msgstr "Clusters Kubernetes"
msgid "Kubernetes deployment not found"
msgstr "Déploiement de Kubernetes introuvable"
+msgid "KubernetesDashboard|Age"
+msgstr "Ancienneté"
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr "Agent %{name} ID #%{id}"
+
+msgid "KubernetesDashboard|Agents"
+msgstr "Agents"
+
+msgid "KubernetesDashboard|Annotations"
+msgstr "Annotations"
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr "Tableau de bord"
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr "En échec"
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr "Type"
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr "Labels"
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr "Nom"
+
+msgid "KubernetesDashboard|Namespace"
+msgstr "Espace de noms"
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr "En attente"
+
+msgid "KubernetesDashboard|Pod"
+msgstr "Pod"
+
+msgid "KubernetesDashboard|Pods"
+msgstr "Pods"
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr "En cours"
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr "État"
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr "Réussi"
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27798,6 +28337,12 @@ msgstr "Des labels peuvent être appliqués aux tickets et aux requêtes de fusi
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr "Les labels peuvent être appliqués aux tickets, aux requêtes de fusion et aux épopées. Les labels de groupe sont disponibles pour n'importe quel projet au sein du groupe."
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "Labels sans ticket dans cette itération :"
@@ -27839,8 +28384,8 @@ msgstr "Dernières 24 heures"
msgid "Last Accessed On"
msgstr "Dernier accès le"
-msgid "Last Activity"
-msgstr "Dernière Activité"
+msgid "Last GitLab activity"
+msgstr "Dernière activité sur GitLab"
msgid "Last Name"
msgstr "Nom"
@@ -27857,6 +28402,9 @@ msgstr "Dernier accès le"
msgid "Last activity"
msgstr "Dernière activité"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Dernière validation"
@@ -28141,9 +28689,6 @@ msgstr "Configurer CI/CD pour votre premier projet"
msgid "LearnGitLab|Set up your workspace"
msgstr "Configuration de votre espace de travail"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr "Commencer à apprendre GitLab"
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "Commencer un essai gratuit de GitLab Ultimate"
@@ -28174,6 +28719,9 @@ msgstr "Votre équipe s'étoffe ! Vous avez invité avec succès de nouveaux co
msgid "LearnGitlab|- Included in trial"
msgstr "- Inclus dans l'essai"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr "Après votre période d’essai de 30 jours, cette fonctionnalité ne sera disponible que sur l’édition %{planName}."
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr "Contactez votre administrateur pour activer cette action."
@@ -28189,9 +28737,6 @@ msgstr "Voir la liste des administrateurs"
msgid "Leave"
msgstr "Quitter"
-msgid "Leave admin mode"
-msgstr "Quitter le mode administrateur"
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "Quitter le mode édition ? Toutes les modifications non enregistrées seront perdues."
@@ -28390,8 +28935,8 @@ msgstr "Composant"
msgid "Licenses|Components"
msgstr "Composants"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
-msgstr "Affiche les licences détectées dans le projet qui ne sont pas conformes aux politiques du projet, en se basant sur la %{linkStart}dernière analyse réussie%{linkEnd}"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
+msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Faites glisser votre fichier de licence ici ou %{linkStart}cliquez pour le téléverser%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr "Liste"
msgid "List available repositories"
msgstr "Lister les dépôts disponibles"
-msgid "List of all commits"
-msgstr "Liste de toutes les validations"
-
msgid "List of suitable GCP locations"
msgstr "Liste des emplacements GCP appropriés"
@@ -28605,6 +29147,9 @@ msgstr "Charger davantage"
msgid "Load more users"
msgstr "Charger plus d'utilisateurs"
+msgid "Load new file"
+msgstr "Charger le nouveau fichier"
+
msgid "Loading"
msgstr "Chargement en cours"
@@ -28698,39 +29243,15 @@ msgstr "Verrouillage de la discussion"
msgid "Locks the discussion."
msgstr "Verrouille la discussion."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "À propos de GitLab"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr "Contacter le service commercial"
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "Explorer GitLab"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "Démarrer"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr "Apprendre GitLab"
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr "Docs GitLab"
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr "GitLab : la plateforme DevOps"
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr "GitLab par rapport aux autres"
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr "Installer GitLab"
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr "Tarification"
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr "Parler à un expert"
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr "Les raisons de choisir GitLab"
@@ -28758,12 +29279,6 @@ msgstr "Mo"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr "Infos CI"
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr "Supprimer le candidat ?"
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr "Supprimer l'expérience ?"
@@ -28818,9 +29333,6 @@ msgstr "Clé de signature pour le crochet Web HTTP de Mailgun"
msgid "Mailgun events"
msgstr "Événements Mailgun"
-msgid "Main menu"
-msgstr "Menu principal"
-
msgid "Maintainer"
msgstr "Chargé de maintenance"
@@ -29424,101 +29936,104 @@ msgstr "%{member_name} vous a envoyé une invitation à rejoindre GitLab"
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr "Invitation à rejoindre le %{project_or_group} %{project_or_group_name}"
-msgid "MemberRoles|Actions"
-msgstr "Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
-msgid "MemberRoles|Add new role"
-msgstr "Ajouter un nouveau rôle"
+msgid "MemberRole|Actions"
+msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
-msgstr "Voulez-vous vraiment supprimer ce rôle ?"
+msgid "MemberRole|Add new role"
+msgstr ""
-msgid "MemberRoles|Base role"
-msgstr "Rôle de base"
+msgid "MemberRole|Are you sure you want to delete this role?"
+msgstr ""
-msgid "MemberRoles|Base role to use as template"
-msgstr "Rôle de base à utiliser comme modèle"
+msgid "MemberRole|Base role"
+msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
-msgstr "Impossible de récupérer les permissions disponibles : %{message}"
+msgid "MemberRole|Base role to use as template"
+msgstr ""
-msgid "MemberRoles|Create new role"
-msgstr "Créer un nouveau rôle"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
+msgstr ""
-msgid "MemberRoles|Custom roles"
-msgstr "Rôles personnalisés"
+msgid "MemberRole|Create new role"
+msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
-msgstr "Rôles personnalisés basés sur %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
+msgstr "Permissions personnalisées :"
-msgid "MemberRoles|Delete role"
-msgstr "Supprimer le rôle"
+msgid "MemberRole|Custom roles"
+msgstr ""
-msgid "MemberRoles|Description"
-msgstr "Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
+msgstr ""
-msgid "MemberRoles|Enter a short name."
-msgstr "Entrez un nom court."
+msgid "MemberRole|Delete role"
+msgstr ""
-msgid "MemberRoles|Failed to create role."
-msgstr "Échec de la création du rôle."
+msgid "MemberRole|Description"
+msgstr ""
-msgid "MemberRoles|Failed to delete the role."
-msgstr "Échec de la suppression du rôle."
+msgid "MemberRole|Enter a short name."
+msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
-msgstr "Échec de la récupération des rôles."
+msgid "MemberRole|Failed to create role."
+msgstr ""
-msgid "MemberRoles|ID"
-msgstr "ID"
+msgid "MemberRole|Failed to delete the role."
+msgstr ""
-msgid "MemberRoles|Incident manager"
-msgstr "Gestionnaire d'incidents"
+msgid "MemberRole|Failed to fetch roles."
+msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
-msgstr "Assurez-vous que le groupe est dans une édition Ultimate."
+msgid "MemberRole|ID"
+msgstr ""
-msgid "MemberRoles|Name"
-msgstr "Nom"
+msgid "MemberRole|Incident manager"
+msgstr ""
-msgid "MemberRoles|No custom roles for this group"
-msgstr "Aucun rôle personnalisé pour ce groupe"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
+msgstr ""
-msgid "MemberRoles|Permissions"
-msgstr "Permissions"
+msgid "MemberRole|Name"
+msgstr ""
-msgid "MemberRoles|Role name"
-msgstr "Nom du rôle"
+msgid "MemberRole|No custom roles for this group"
+msgstr ""
-msgid "MemberRoles|Role successfully created."
-msgstr "Rôle créé avec succès."
+msgid "MemberRole|Permissions"
+msgstr ""
-msgid "MemberRoles|Role successfully deleted."
-msgstr "Rôle supprimé avec succès."
+msgid "MemberRole|Role name"
+msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
-msgstr "Sélectionnez un rôle standard pour ajouter des permissions."
+msgid "MemberRole|Role successfully created."
+msgstr ""
-msgid "MemberRoles|Standard roles"
-msgstr "Rôles standards"
+msgid "MemberRole|Role successfully deleted."
+msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
-msgstr "Pour ajouter un nouveau rôle, sélectionnez « Ajouter un nouveau rôle »."
+msgid "MemberRole|Select a standard role to add permissions."
+msgstr ""
+
+msgid "MemberRole|Standard roles"
+msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
-msgstr "Pour ajouter un nouveau rôle, sélectionnez un groupe, puis « Ajouter un nouveau rôle »."
+msgid "MemberRole|To add a new role select 'Add new role'."
+msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
-msgstr "Pour supprimer le rôle personnalisé, assurez-vous qu'aucun membre de groupe n'a ce rôle"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
-msgstr "%{requirement} doit être activé pour pouvoir activer %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
+msgstr ""
msgid "MemberRole|can't be changed"
msgstr "ne peut pas être modifié"
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
-msgstr "ne peut pas être modifié, car il est déjà assigné à un utilisateur. Veuillez plutôt créer un nouveau rôle de membre"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
+msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
msgstr "ne peut pas être supprimé, car il est déjà attribué à un utilisateur. Veuillez dissocier le rôle de tous les utilisateurs avant de le supprimer."
@@ -29814,6 +30329,9 @@ msgstr "Approbations de la requête de fusion"
msgid "Merge request author cannot push to target project"
msgstr "L'auteur de la demande de fusion ne peut pas pousser vers le projet cible"
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr "Résumé des modifications de la requête de fusion"
@@ -30195,6 +30713,9 @@ msgstr "Une erreur s'est produite lors de la mise à jour de votre image."
msgid "MetricImages|There was an issue uploading your image."
msgstr "Une erreur s'est produite lors du téléversement de votre image."
+msgid "Metrics"
+msgstr "Métriques"
+
msgid "Metrics - Grafana"
msgstr "Métriques : Grafana"
@@ -30228,15 +30749,9 @@ msgstr "Supprimer une métrique"
msgid "Metrics|Delete metric?"
msgstr "Supprimer la métrique°?"
-msgid "Metrics|Description"
-msgstr "Description"
-
msgid "Metrics|Edit metric"
msgstr "Modifier une métrique"
-msgid "Metrics|Failed to load metrics."
-msgstr "Échec du chargement des métriques."
-
msgid "Metrics|For grouping similar metrics"
msgstr "Pour regrouper des métriques similaires"
@@ -30246,15 +30761,9 @@ msgstr "Libellé de l'axe des Y (généralement l'unité). L'axe des X représen
msgid "Metrics|Legend label (optional)"
msgstr "Libellé de légende (facultatif)"
-msgid "Metrics|Metrics"
-msgstr "Métriques"
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "La requête doit être une requête PromQL valide."
-msgid "Metrics|Name"
-msgstr "Nom"
-
msgid "Metrics|New metric"
msgstr "Nouvelle métrique"
@@ -30267,9 +30776,6 @@ msgstr "Documentation des requêtes Prometheus"
msgid "Metrics|There was an error trying to validate your query"
msgstr "Une erreur s'est produite lors de la tentative pour valider votre requête"
-msgid "Metrics|Type"
-msgstr "Type"
-
msgid "Metrics|Unit label"
msgstr "Label de l'unité"
@@ -30306,6 +30812,9 @@ msgstr "par ex. req/sec"
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr "ID du client"
@@ -30530,9 +31039,15 @@ msgstr "Valeur min."
msgid "Minimal Access"
msgstr "Accès minimal"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr "Minimiser le risque de valider des secrets sur les dépôts de cette instance GitLab."
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "La capacité minimale qui doit être disponible avant de programmer plus de miroirs de manière préemptive."
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr "Rôle minimum requis pour annuler un pipeline ou un job"
+
msgid "Minutes"
msgstr "Minutes"
@@ -30626,9 +31141,6 @@ msgstr "Auteur"
msgid "MlExperimentTracking|CI Job"
msgstr "Job CI"
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr "Le candidat n'est pas relié à une construction CI."
-
msgid "MlExperimentTracking|Candidate removed"
msgstr "Candidat supprimé"
@@ -30644,6 +31156,9 @@ msgstr "Créé"
msgid "MlExperimentTracking|Delete candidate"
msgstr "Supprimer le candidat"
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr "Supprimer le candidat ?"
+
msgid "MlExperimentTracking|Delete experiment"
msgstr "Supprimer l'expérience"
@@ -30674,36 +31189,18 @@ msgstr "Filtrer les candidats"
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr "Démarrez avec les expériences de modèle !"
-msgid "MlExperimentTracking|ID"
-msgstr "ID"
-
-msgid "MlExperimentTracking|Info"
-msgstr "Informations"
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr "Candidats enregistrés pour l'expérience"
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr "ID d'exécution MLflow"
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr "Suivi des expériences d'apprentissage automatique"
-msgid "MlExperimentTracking|Metadata"
-msgstr "Métadonnées"
-
-msgid "MlExperimentTracking|Metrics"
-msgstr "Métriques"
-
msgid "MlExperimentTracking|Model candidate details"
msgstr "Informations sur le candidat du modèle"
msgid "MlExperimentTracking|Model experiments"
msgstr "Expériences avec ce modèle"
-msgid "MlExperimentTracking|Model performance"
-msgstr "Performance du modèle"
-
msgid "MlExperimentTracking|Model removed"
msgstr "Modèle supprimé"
@@ -30719,27 +31216,9 @@ msgstr "Aucun candidat"
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr "Aucun candidat n'a été enregistré pour cette requête. Créez de nouveaux candidats en utilisant le client MLflow."
-msgid "MlExperimentTracking|No logged metadata"
-msgstr "Aucune métadonnée enregistrée"
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr "Aucune métrique enregistrée"
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr "Aucun paramètre enregistré"
-
msgid "MlExperimentTracking|No name"
msgstr "Sans nom"
-msgid "MlExperimentTracking|Parameters"
-msgstr "Paramètres"
-
-msgid "MlExperimentTracking|Status"
-msgstr "Statut"
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr "Déclenché par"
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] "%d modèle"
@@ -30750,23 +31229,110 @@ msgid_plural "MlModelRegistry|%d versions"
msgstr[0] "%d version"
msgstr[1] "%d versions"
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr "Artéfacts"
+
+msgid "MlModelRegistry|CI Info"
+msgstr "Infos CI"
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr "Candidat non relié à une construction CI"
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr "Détails"
+msgid "MlModelRegistry|Experiment"
+msgstr "Expérience"
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr "ID"
+
+msgid "MlModelRegistry|Info"
+msgstr "Info"
+
msgid "MlModelRegistry|Latest version"
msgstr "Dernière version"
+msgid "MlModelRegistry|MLflow run ID"
+msgstr "ID d’exécution de MLflow"
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr "Métadonnées"
+
+msgid "MlModelRegistry|Model performance"
+msgstr "Performance du modèle"
+
msgid "MlModelRegistry|Model registry"
msgstr "Registre de modèles"
-msgid "MlModelRegistry|No models registered in this project"
-msgstr "Aucun modèle enregistré dans ce projet"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr "Aucune métadonnée enregistrée"
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr "Aucune métrique enregistrée"
+
+msgid "MlModelRegistry|No logged parameters"
+msgstr "Aucun paramètre enregistré"
msgid "MlModelRegistry|No registered versions"
msgstr "Aucune version enregistrée"
-msgid "MlModelRegistry|This model has no versions"
-msgstr "Ce modèle n'a pas de versions"
+msgid "MlModelRegistry|Parameters"
+msgstr "Paramètres"
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr "Statut"
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr "Déclenché par"
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
+msgstr ""
msgid "MlModelRegistry|Version candidates"
msgstr "Candidats de version"
@@ -30791,9 +31357,15 @@ msgstr "Fermer"
msgid "Model experiments"
msgstr "Expériences du modèle"
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr "Registre des modèles"
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "Modifié"
@@ -31360,9 +31932,6 @@ msgstr "Code"
msgid "Navigation|Deploy"
msgstr "Déploiement"
-msgid "Navigation|Enter admin mode"
-msgstr "Entrer en mode administrateur"
-
msgid "Navigation|Explore"
msgstr "Explorer"
@@ -31375,9 +31944,6 @@ msgstr "Projets fréquemment consultés"
msgid "Navigation|Groups you visit often will appear here."
msgstr "Les groupes que vous consultez souvent apparaîtront ici."
-msgid "Navigation|Leave admin mode"
-msgstr "Quitter le mode administrateur"
-
msgid "Navigation|Manage"
msgstr "Gestion"
@@ -31806,15 +32372,15 @@ msgstr "Aucune donnée"
msgid "No data available"
msgstr "Aucune donnée disponible"
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr "Aucun déploiement détecté. Utilisez des environnements pour contrôler le déploiement continu de votre logiciel. %{linkStart}En savoir plus sur les jobs de déploiement.%{linkEnd}"
-
msgid "No deployments found"
msgstr "Aucun déploiement trouvé"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr "Aucun participant n'a été ajouté par courriel. Soit aucun n'a été fourni, soit ils existent déjà."
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "Aucun point de terminaison fourni"
@@ -31920,6 +32486,9 @@ msgstr "Aucun autre label avec un tel nom ou une telle description"
msgid "No parent group"
msgstr "Aucun groupe parent"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "Aucun forfait"
@@ -32066,18 +32635,6 @@ msgstr "Texte normal"
msgid "Normal view"
msgstr "Vue normale"
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr "Impossible de mettre à jour la nouvelle préférence de navigation. Veuillez réessayer plus tard."
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr "Refonte de la navigation"
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "Nouvelle navigation"
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "Activer/désactiver la nouvelle navigation"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr "Tous les navigateurs ne prennent pas en charge WebAuthn. Par conséquent, il vous faut d'abord configurer une application d'authentification à deux facteurs. De cette façon, vous serez toujours en mesure de vous connecter, même si vous utilisez un navigateur non pris en charge."
@@ -32087,6 +32644,9 @@ msgstr "Tous les navigateurs ne prennent pas en charge WebAuthn. Vous devez sauv
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "Toutes les données n'ont pas encore été traitées. La précision du graphique pour la période sélectionnée est limitée."
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr "Non applicable."
@@ -32102,6 +32662,9 @@ msgstr "Non disponible pour les branches protégées"
msgid "Not confidential"
msgstr "Non confidentiel"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "Non trouvé"
@@ -32120,6 +32683,9 @@ msgstr "Non démarré"
msgid "Not supported"
msgstr "Non pris en charge"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Note"
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "Relecteur : %{users}"
msgstr[1] "Relecteurs : %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr "Changer la requête de fusion du relecteur"
@@ -32329,6 +32898,12 @@ msgstr "Notifications activées."
msgid "Notify users by email when sign-in location is not recognized."
msgstr "Notifiez les utilisateurs par courriel lorsque l'emplacement de connexion n'est pas reconnu."
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr "Le ticket de %{author_link} arrive bientôt à échéance %{issue_reference_link}."
@@ -32377,6 +32952,12 @@ msgstr "%{paragraph_start}Bonjour %{name} !%{paragraph_end} %{paragraph_start}U
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr "%{project_link_start}Téléchargez%{project_link_end} l'exportation du projet."
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr "%{singular_or_plural_line} %{error_lines} : le type de l'élément de travail est introuvable ou n'est pas pris en charge."
@@ -32407,18 +32988,15 @@ msgstr "Une mise à jour miroir du dépôt distant a échoué."
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr "Après son expiration, vous pourrez %{a_start} effectuer une nouvelle demande %{a_end}."
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr "Toutes les discussions sur la requête de fusion %{mr_link} ont été résolues par %{name}"
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr "Et %{total_stripped_new_commits_count} de plus"
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "La personne assignée est passée de %{fromNames} à %{toNames}"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "La personne assignée est passée à %{toNames}"
-
msgid "Notify|Author: %{author_name}"
msgstr "Auteur : %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr "Erreurs trouvées sur %{singular_or_plural_line} %{error_lines}. Veuill
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr "Empreinte : %{fingerprint}"
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr "Voici les résultats de votre importation CSV pour %{project_link}."
@@ -32488,6 +33069,9 @@ msgstr "Si vous ne souhaitez plus utiliser ce domaine avec GitLab Pages, veuille
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr "En-tête %{code_open}De%{code_end} incorrect :"
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr "Jeton de vérification incorrect :"
@@ -32578,6 +33162,9 @@ msgstr "Le projet %{project_name} n'a pas pu être exporté."
msgid "Notify|Project %{project_name} was exported successfully."
msgstr "Le projet %{project_name} a été exporté avec succès."
+msgid "Notify|Read timeout:"
+msgstr "Expiration du délai d’attente pour la lecture :"
+
msgid "Notify|Remote mirror"
msgstr "Miroir du dépôt distant"
@@ -32593,6 +33180,9 @@ msgstr "L'Administrateur vous a créé un compte. Vous êtes à présent membre
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "Le pipeline Auto DevOps a échoué pour le pipeline %{pipeline_link} et a été désactivé pour %{project_link}. Afin d'utiliser le pipeline Auto DevOps avec votre projet, veuillez examiner ce qui suit : %{supported_langs_link}. Adaptez ensuite votre projet en conséquence et activez le pipeline Auto DevOps dans vos %{settings_link}."
+msgid "Notify|The SMTP server did not respond in time."
+msgstr "Le serveur SMTP n’a pas répondu dans le temps imparti."
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr "Le diff pour ce fichier n'a pas été inclus, car il est trop volumineux."
@@ -32605,8 +33195,8 @@ msgstr "Le lien de téléchargement expirera dans 24 heures."
msgid "Notify|The errors we encountered were:"
msgstr "Voici les erreurs que nous avons rencontrées :"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "Les identifiants fournis (nom d'utilisateur et mot de passe) ont été rejetés par le serveur SMTP."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr "Les identifiants fournis (nom d’utilisateur et mot de passe) ont été rejetés par le serveur SMTP, ou vous devez définir explicitement une méthode d’authentification."
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
msgstr "Le projet se trouve désormais sous %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr "Nombre d'employés"
msgid "Number of files touched"
msgstr "Nombre de fichiers impactés"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "Nombre de répliques"
@@ -32752,27 +33345,48 @@ msgstr "L'OKR %{work_item_link} de %{author_link} nécessite une mise à jour."
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr "Une mise à jour est prévue le : %{update_due_date}"
-msgid "OKR|Existing key result"
-msgstr "Résultat clé existant"
-
-msgid "OKR|Existing objective"
-msgstr "Objectif existant"
-
-msgid "OKR|New key result"
-msgstr "Nouveau résultat clé"
+msgid "OWASP Top 10 2017"
+msgstr ""
-msgid "OKR|New objective"
-msgstr "Nouvel objectif"
+msgid "OWASP Top 10 2021"
+msgstr ""
msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr "L'objet n'existe pas sur le serveur ou vous ne disposez pas des autorisations pour y accéder"
-msgid "Objective"
-msgstr "Objectif"
+msgid "ObservabilityMetrics|Date"
+msgstr "Date"
+
+msgid "ObservabilityMetrics|Description"
+msgstr "Description"
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr "Erreur : Échec du chargement des détails des métriques. Essayez de recharger la page."
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr "Échec du chargement des métriques."
+
+msgid "ObservabilityMetrics|Metric Details"
+msgstr "Détails des métriques"
msgid "ObservabilityMetrics|Metrics"
msgstr "Métriques"
+msgid "ObservabilityMetrics|Name"
+msgstr "Nom"
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr "Rechercher les métriques commençant par..."
+
+msgid "ObservabilityMetrics|Type"
+msgstr "Type"
+
+msgid "ObservabilityMetrics|Value"
+msgstr "Valeur"
+
msgid "Observability|Enable"
msgstr "Activer"
@@ -33317,9 +33931,6 @@ msgstr "Visible uniquement pour vous"
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr "Seuls les rôles «°Rapporteur°» et supérieurs sur les forfaits Premium et au-delà peuvent voir l'analytique de la productivité."
-msgid "Oops, are you sure?"
-msgstr "Oups, voulez-vous vraiment continuer ?"
-
msgid "Open"
msgstr "Ouvert"
@@ -33356,9 +33967,6 @@ msgstr "Ouvrir une nouvelle fenêtre"
msgid "Open raw"
msgstr "Ouvrir la version brute"
-msgid "Open sidebar"
-msgstr "Ouvrir la barre latérale"
-
msgid "Open: %{open}"
msgstr "Ouvert : %{open}"
@@ -33449,6 +34057,9 @@ msgstr "Les %{linkStart}organisations%{linkEnd} sont des conteneurs de premier n
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr "Un groupe est une collection de plusieurs projets. Si vous organisez vos projets dans un groupe, celui-ci fonctionne comme un dossier."
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr "Une erreur s’est produite lors de la modification de l’URL de votre organisation. Veuillez réessayer."
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr "Une erreur s'est produite lors de la création d'une organisation. Veuillez réessayer."
@@ -33467,6 +34078,12 @@ msgstr "Une erreur s'est produite lors du chargement des organisations de l'util
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr "Une erreur s'est produite lors de la mise à jour de votre organisation. Veuillez réessayer."
+msgid "Organization|Change organization URL"
+msgstr "Modifier l’URL de l’organisation"
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr "La modification de l’URL d’une organisation peut avoir des effets secondaires imprévus."
+
msgid "Organization|Choose what organization you want to see by default."
msgstr "Choisissez l'organisation que vous souhaitez définir par défaut."
@@ -33515,8 +34132,17 @@ msgstr "URL de l'organisation"
msgid "Organization|Organization URL is required."
msgstr "L'URL de l'organisation est requise."
-msgid "Organization|Organization URL must be a minimum of two characters."
-msgstr "L'URL de l'organisation doit comporter au moins deux caractères."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr "L’URL de l’organisation est trop courte (le minimum est de 2 caractères)."
+
+msgid "Organization|Organization URL successfully changed."
+msgstr "L’URL de l’organisation a été modifiée avec succès."
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
+msgstr ""
msgid "Organization|Organization name"
msgstr "Nom de l'organisation"
@@ -33542,6 +34168,9 @@ msgstr "L'organisation a été mise à jour avec succès."
msgid "Organization|Organizations"
msgstr "Entreprises"
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr "Effectuez des actions avancées telles que la suppression de l’organisation."
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr "Publique - l'organisation est accessible sans authentification."
@@ -33579,7 +34208,7 @@ msgid "Orphaned member"
msgstr "Membre orphelin"
msgid "Other"
-msgstr ""
+msgstr "Autre"
msgid "Other available runners"
msgstr "Autres runners disponibles"
@@ -33659,6 +34288,66 @@ msgstr "Vue d'ensemble"
msgid "Overwrite diverged branches"
msgstr "Écraser les branches divergentes"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "Appartenant à %{image_tag}"
@@ -33728,6 +34417,9 @@ msgstr "Le paquet a été supprimé avec succès"
msgid "Package file size limits"
msgstr "Limites de taille de fichier des paquets"
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr "La recette du paquet existe déjà"
@@ -33803,6 +34495,9 @@ msgstr "Groupe de l'application : %{group}"
msgid "PackageRegistry|App name: %{name}"
msgstr "Nom de l'application : %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr "Courriel de l'auteur : %{authorEmail}"
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr "Créé par le pipeline %{link} déclenché %{datetime} par %{author}"
@@ -34013,6 +34708,9 @@ msgstr "Niveau instance"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr "Paquet non valide : l'extraction des métadonnées a échoué"
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr "Mots-clés : %{keywords}"
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr "Dernier téléchargement : %{dateTime}"
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] "Le paquet a %{updatesCount} mise à jour archivée"
msgstr[1] "Le paquet a %{updatesCount} mises à jour archivées"
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr "Paquet mis à jour par la validation %{link} sur la branche %{branch}, créé par le pipeline %{pipeline} et publié dans le registre %{datetime}"
@@ -34096,6 +34800,9 @@ msgstr "Commande Pip"
msgid "PackageRegistry|Project-level"
msgstr "Niveau projet"
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr "Publier les paquets si leur nom ou leur version correspond à cette expression rationnelle."
@@ -34114,6 +34821,9 @@ msgstr "Publié sur %{projectName}, le %{date}"
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr "Publié dans le registre de paquets %{project} %{datetime}"
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -34180,6 +34890,9 @@ msgstr "Désolé, aucun résultat ne correspond à votre filtre"
msgid "PackageRegistry|Source project located at %{link}"
msgstr "Projet source situé à %{link}"
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr "Résumé : %{summary}"
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr "SHA cible : %{sha}"
@@ -34216,6 +34929,9 @@ msgstr "Impossible de récupérer les informations de version du paquet."
msgid "PackageRegistry|Unable to load package"
msgstr "Échec du chargement du paquet"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr "Lorsqu'un paquet ayant le même nom et la même version est téléversé dans le registre, des ressources supplémentaires sont ajoutées au paquet. Pour économiser de l'espace de stockage, ne conservez que les ressources les plus récentes."
@@ -34357,6 +35073,9 @@ msgstr "L'authentification par mot de passe n'est pas disponible."
msgid "Password confirmation"
msgstr "Confirmation du mot de passe"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "Mot de passe modifié avec succès"
@@ -34504,6 +35223,9 @@ msgstr "Effectuez des revues de code et améliorez la collaboration avec des req
msgid "Perform common operations on GitLab project"
msgstr "Effectuer des opérations courantes sur le projet GitLab"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "Optimisation des performances"
@@ -34648,6 +35370,9 @@ msgstr "Votre projet %{projectName} n'est pas dans un groupe"
msgid "Phone"
msgstr "Téléphone"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr "Entrez un code valide."
@@ -35065,6 +35790,30 @@ msgstr "Web IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Pipeline : %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr "Ajouter %{filename}"
@@ -35125,12 +35874,6 @@ msgstr "Les pipelines déclenchés lors de nouvelles modifications entraînent l
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "Les paramètres des pipelines pour «°%{project_name} » ont été mis à jour avec succès."
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr "Assistant IA"
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr "Discuter avec l'assistant IA"
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr "« Hello world » avec GitLab CI"
@@ -35149,9 +35892,6 @@ msgstr "En révoquant un déclencheur, vous casserez tous les processus qui l'ut
msgid "Pipelines|CI lint"
msgstr "CI lint"
-msgid "Pipelines|CI/CD Catalog"
-msgstr "Catalogue CI/CD"
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr "Pipeline enfant (%{linkStart}parent%{linkEnd})"
@@ -35224,6 +35964,9 @@ msgstr "Chargement des pipelines"
msgid "Pipelines|Loading pipelines"
msgstr "Chargement des pipelines"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr "Migrer vers GitLab CI/CD depuis Jenkins"
+
msgid "Pipelines|More Information"
msgstr "Plus d'informations"
@@ -35260,6 +36003,12 @@ msgstr "Programmé"
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Une erreur s'est produite lors du nettoyage du cache des exécuteurs."
+msgid "Pipelines|Start with a migration plan"
+msgstr "Commencer avec un plan de migration"
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr "Bénéficiez de pipelines simples et évolutifs ainsi que de fonctionnalités où la CI est activée. Vous pouvez consulter les résultats de l'intégration, les analyses de sécurité, les tests, la couverture du code et bien plus directement dans les demandes de fusion !"
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr "L'espace de nommage %{namespace_name} dispose de %{percentage}%% ou moins de minutes restantes de Pipeline d'Runner Partagé. Une fois qu'elles seront épuisées, aucun nouveau job ni pipeline de ses projets ne sera lancé."
@@ -36178,9 +36927,6 @@ msgstr "Aperçu de la charge utile"
msgid "Previous"
msgstr "Précédent"
-msgid "Previous Artifacts"
-msgstr "Artéfacts précédents"
-
msgid "Previous commit"
msgstr "Commit précédent"
@@ -36376,6 +37122,9 @@ msgstr "Pour que le tableau de bord des données d'analyse des produits commence
msgid "ProductAnalytics|Get started with product analytics"
msgstr "Premiers pas avec l’analyse de produits"
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr "Combien de sessions possède un utilisateur"
@@ -36484,6 +37233,9 @@ msgstr "Une erreur s'est produite lors du chargement des données d'utilisation
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr "Stockez, interrogez et visualisez des données quantitatives pour obtenir un aperçu de la valeur utilisateur."
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr "La chaîne de connexion de votre instance de configurateur Snowplow."
@@ -36557,7 +37309,7 @@ msgid "Productivity analytics can help identify the problems that are delaying y
msgstr "Les données d'analyse de la productivité peuvent contribuer à identifier les problèmes qui ralentissent votre équipe"
msgid "ProductivityAanalytics|Merge requests"
-msgstr "requêtes de fusion"
+msgstr "Requêtes de fusion"
msgid "ProductivityAanalytics|is earlier than the allowed minimum date"
msgstr "précède la date minimale autorisée"
@@ -36581,7 +37333,7 @@ msgid "ProductivityAnalytics|List"
msgstr "Liste"
msgid "ProductivityAnalytics|Merge Requests"
-msgstr "requêtes de fusion"
+msgstr "Requêtes de fusion"
msgid "ProductivityAnalytics|Merge date"
msgstr "Date de fusion"
@@ -36604,8 +37356,8 @@ msgstr "Profil"
msgid "Profile failed to delete"
msgstr "Échec de la suppression du profil"
-msgid "Profile image guideline"
-msgstr "Consignes pour les images du profil"
+msgid "Profile image guidelines"
+msgstr ""
msgid "Profile page:"
msgstr "Page du profil :"
@@ -36970,8 +37722,8 @@ msgstr "Changement de nom d'utilisateur effectué"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr "Utiliser des émojis dans les noms peut sembler amusant, mais essayez plutôt de définir un message expliquant votre statut"
-msgid "Profiles|Website url"
-msgstr "URL du site Web"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "Qui vous représentez ou pour qui vous travaillez."
@@ -37275,8 +38027,8 @@ msgstr "Les vôtres"
msgid "ProjectOverview|Create new fork"
msgstr "Créer une nouvelle bifurcation"
-msgid "ProjectOverview|Forks"
-msgstr "Bifurcations"
+msgid "ProjectOverview|Fork"
+msgstr "Créer une bifurcation"
msgid "ProjectOverview|Go to your fork"
msgstr "Aller à votre bifurcation"
@@ -37302,11 +38054,26 @@ msgstr "Vous avez atteint la limite de votre projet"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "Vous devez vous authentifier afin de pouvoir ajouter une étoile à un projet"
-msgid "ProjectPage|Copy project ID"
-msgstr "Copier l'ID du projet"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr "Informations sur le projet"
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "Identifiant de projet : %{project_id}"
+msgid "ProjectPage|Project settings"
+msgstr "Paramètres du projet"
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr "Une erreur s'est produite lors de la tentative de récupération des statistiques de qualité du projet"
@@ -37524,6 +38291,9 @@ msgstr "%{link_start}Quelles variables puis-je utiliser ?%{link_end}"
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr "Une branche par défaut ne peut pas être choisie pour un projet vide."
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr "Ajoutez des badges pour afficher des informations concernant ce projet."
+
msgid "ProjectSettings|Additional options"
msgstr "Options supplémentaires"
@@ -37611,9 +38381,6 @@ msgstr "URL de l'API Cube"
msgid "ProjectSettings|Custom dashboard projects"
msgstr "Projets de tableaux de bord personnalisés"
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "Personnalisez les badges de ce groupe."
-
msgid "ProjectSettings|Data sources"
msgstr "Sources de données"
@@ -37731,6 +38498,9 @@ msgstr "Laisser vide pour utiliser le modèle par défaut."
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr "Assurez-vous que ce schéma ne contredise pas le paramètre %{link_start}Règles de poussée &gt; Nom de branche%{link_end}."
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr "Gérer qui peut voir le projet dans le répertoire d'accès public."
@@ -37776,6 +38546,9 @@ msgstr "La fusion n'est autorisée que lorsque la branche source est à jour ave
msgid "ProjectSettings|Model experiments"
msgstr "Expériences du modèle"
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "Supervision"
@@ -38193,29 +38966,10 @@ msgstr "Projets sur ce sujet"
msgid "Projects with write access"
msgstr "Projets avec un accès en écriture"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Fréquemment consultés"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Chargement des projets"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Les projets que vous visitez souvent apparaîtront ici"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Chercher dans vos projets"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Un problème est survenu de notre côté."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Désolé, aucun projet ne correspond à votre recherche"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "Cette fonctionnalité nécessite un navigateur prenant en charge localStorage"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr "Basculer vers le mode édition"
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "Vous permet de cloner immédiatement le dépôt de ce projet. Si vous prévoyez de pousser un dépôt existant, vous pouvez ignorer cette option."
@@ -38250,6 +39004,9 @@ msgstr "Créer à partir d'un modèle"
msgid "ProjectsNew|Create new project"
msgstr "Créer un nouveau projet"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr "L’algorithme de hachage par défaut est SHA-1."
+
msgid "ProjectsNew|Description format"
msgstr "Description formatée"
@@ -38313,6 +39070,9 @@ msgstr "Exécuter CI/CD pour un dépôt externe"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr "Impossible de suggérer un chemin d'accès. Veuillez actualiser et réessayer."
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr "Utiliser SHA-256 comme algorithme de hachage du dépôt"
+
msgid "ProjectsNew|Visibility Level"
msgstr "Niveau de visibilité"
@@ -38908,12 +39668,18 @@ msgstr "Approbateurs"
msgid "ProtectedEnvironment|Environment"
msgstr "Environnement"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr "Environnements protégés en amont"
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr "Échec du chargement des informations sur ce groupe."
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr "Aucun environnement de ce projet n'est protégé."
@@ -38995,9 +39761,6 @@ msgstr "Que sont les étiquettes protégées ?"
msgid "ProtectedTag|default"
msgstr "par défaut"
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr "Conseil d'expert : %{linkStart}Auto DevOps%{linkEnd} utilise des grappes de serveurs Kubernetes pour déployer votre code !"
-
msgid "Provide Feedback"
msgstr "Donnez votre avis"
@@ -39043,6 +39806,9 @@ msgstr "Les projets publics sont un moyen simple de permettre à chacun d'avoir
msgid "Public projects compute cost factor"
msgstr "Facteur de coût de calcul des projets publics"
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "Publier sur la page d'état"
@@ -39275,7 +40041,7 @@ msgid "Quick help"
msgstr "Aide rapide"
msgid "README"
-msgstr "LISEZMOI"
+msgstr "README"
msgid "Rails"
msgstr "Rails"
@@ -39486,9 +40252,6 @@ msgstr "Enregistrer un appareil"
msgid "Register now"
msgstr "Inscrivez-vous maintenant"
-msgid "Register the runner with this URL:"
-msgstr "Enregistrez le runner avec cette URL°:"
-
msgid "Register with two-factor app"
msgstr "S'inscrire avec l'application 2FA"
@@ -39665,6 +40428,9 @@ msgstr "Inclure le message de l'étiquette annotée."
msgid "Release|Learn more about releases"
msgstr "En savoir plus sur les releases"
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr "Laisser vide pour utiliser le nom de l’étiquette comme titre de release."
+
msgid "Release|More information"
msgstr "En savoir plus"
@@ -39719,6 +40485,9 @@ msgstr "Me le rappeler ultérieurement"
msgid "Remote object has no absolute path."
msgstr "L'objet distant n'a pas de chemin absolu."
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Supprimer"
@@ -39779,6 +40548,9 @@ msgstr "Supprimer l'historique des descriptions"
msgid "Remove due date"
msgstr "Supprimer la date d'échéance"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr "Supprimer la référence de l'épopée"
@@ -39881,6 +40653,9 @@ msgstr "Supprimer l'utilisateur du groupe"
msgid "Remove user from project"
msgstr "Supprimer l'utilisateur du projet"
+msgid "Remove weight"
+msgstr "Supprimer le poids"
+
msgid "Removed"
msgstr "Supprimée"
@@ -39959,6 +40734,9 @@ msgstr "Supprime tous les labels."
msgid "Removes an issue from an epic."
msgstr "Supprime un ticket d'une épopée."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr "Supprime l'association avec %{issue_ref}."
@@ -40016,9 +40794,6 @@ msgstr "Rouvrir l'épopée"
msgid "Reopen milestone"
msgstr "Rouvrir le jalon"
-msgid "Reopen test case"
-msgstr "Rouvrir le scénario de test"
-
msgid "Reopen this %{quick_action_target}"
msgstr "Rouvrir l'élément suivant : %{quick_action_target}"
@@ -40085,9 +40860,6 @@ msgstr "Répondre au commentaire"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "Répondez directement à ce courriel ou %{view_it_on_gitlab}."
-msgid "Reply..."
-msgstr "Répondre..."
-
msgid "Reply…"
msgstr "Répondre…"
@@ -40526,6 +41298,9 @@ msgstr "Requêtes par période"
msgid "Require additional authentication for administrative tasks."
msgstr "Exiger une authentification supplémentaire pour les tâches administratives."
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr "Exiger une date d’expiration"
@@ -40587,8 +41362,8 @@ msgstr "Nécessite une adresse de courriel GitLab vérifiée."
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr "Nécessite que vous déployiez ou configuriez Sentry dans le Cloud."
-msgid "Requires your primary GitLab email address."
-msgstr "Nécessite votre adresse de courriel GitLab principale."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
+msgstr ""
msgid "Resend"
msgstr "Renvoyer"
@@ -40656,9 +41431,6 @@ msgstr "Résoudre les conflits sur la branche source"
msgid "Resolve locally"
msgstr "Résoudre localement"
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr "Résolvez ces conflits ou demandez à une personne disposant d'un accès en écriture à ce dépôt de les résoudre localement."
-
msgid "Resolve thread"
msgstr "Résoudre le fil de conversation"
@@ -40782,11 +41554,6 @@ msgstr "Retentez ce job afin de créer les ressources nécessaires."
msgid "Retry verification"
msgstr "Relancer la vérification"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Révéler la valeur"
-msgstr[1] "Révéler les valeurs"
-
msgid "Reveal values"
msgstr "Révéler les valeurs"
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] "Relecteur"
msgstr[1] "%d relecteurs"
+msgid "Reviewer approved changes"
+msgstr "Le relecteur a approuvé les modifications"
+
+msgid "Reviewer commented"
+msgstr "Le relecteur a mis un commentaire"
+
+msgid "Reviewer requested changes"
+msgstr "Le relecteur a demandé des modifications"
+
msgid "Reviewers"
msgstr "Relecteurs"
@@ -40891,9 +41667,6 @@ msgstr "L'analyse des causes profondes est une fonctionnalité qui analyse vos j
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr "Nom de la règle"
-
msgid "Rule name is already taken."
msgstr "Le nom de la règle est déjà pris."
@@ -41231,6 +42004,9 @@ msgstr "Les runners existants ne sont pas affectés. Pour permettre l'enregistre
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr "Les runners existants ne sont pas affectés. Pour permettre l'enregistrement de runners pour tous les projets, activez ce paramètre dans l'interface d'administration, dans Paramètres &gt; CI/CD."
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr "Échec de l'ajout du runner au projet"
@@ -41505,6 +42281,9 @@ msgstr "Enregistrement des runners"
msgid "Runners|Runner Registration token"
msgstr "Jeton d'enregistrement du runner"
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr "Runner assigné au projet."
@@ -41625,8 +42404,8 @@ msgstr "Les runners partagés sont désactivés dans les paramètres du groupe."
msgid "Runners|Shared runners are disabled."
msgstr "Les runners partagés sont désactivés."
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
-msgstr "Les runners partagés seront désactivés pour tous les projets et sous-groupes de ce groupe. Si vous continuez, vous devrez les réactiver manuellement dans les paramètres de chaque projet et sous-groupe."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
+msgstr ""
msgid "Runners|Show only inherited"
msgstr "N'afficher que ceux hérités"
@@ -41634,9 +42413,6 @@ msgstr "N'afficher que ceux hérités"
msgid "Runners|Show runner installation and registration instructions"
msgstr "Afficher les instructions d'installation et d'enregistrement de runner"
-msgid "Runners|Show runner installation instructions"
-msgstr "Afficher les instructions d'installation des runners"
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr "Une erreur s'est produite lors de la suppression. Veuillez actualiser la page pour réessayer."
@@ -41863,9 +42639,24 @@ msgstr "projet"
msgid "Runners|shared"
msgstr "partagé"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr "Actions des runners"
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "En cours d'exécution"
@@ -42037,9 +42828,18 @@ msgstr "Sauvegarde"
msgid "Saving project."
msgstr "Sauvegarde du projet."
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr "Fuseau horaire de : %{hostname}"
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr "%{period} %{days} à %{time} %{timezoneLabel} %{timezone}"
@@ -42058,6 +42858,9 @@ msgstr "Ajouter une condition"
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr "Ajouter une nouvelle variable CI"
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr "Choisissez une méthode pour exécuter le code"
+
msgid "ScanExecutionPolicy|Conditions"
msgstr "Conditions"
@@ -42079,21 +42882,39 @@ msgstr "Profils d'analyse DAST"
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr "Profils de site DAST"
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr "S’il existe des variables en conflit avec la configuration locale du pipeline (Ex, gitlab-ci.yml), alors les variables définies ici auront la priorité. %{linkStart}En savoir plus%{linkEnd}."
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr "Insertion d’un bloc de code CI"
+
msgid "ScanExecutionPolicy|Key"
msgstr "Clé"
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr "Fuseau horaire de l'agent Kubernetes"
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr "Reliez un fichier CI existant"
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr "Liaison d’un fichier CI existant"
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr "Le nombre maximal de critères CI est un"
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr "Une seule variable peut être ajoutée à la fois."
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr "Exécuter du code CI/CD"
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr "Exécuter une analyse %{scan} avec les options suivantes :"
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr "Exécuter une analyse"
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr "Étiquettes de runner :"
@@ -42118,6 +42939,9 @@ msgstr "Sélectionner des espaces de nommage"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr "Sélectionner ou créer une clé"
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "Sélectionner un profil de scanner"
@@ -42127,6 +42951,9 @@ msgstr "Sélectionner un profil de site"
msgid "ScanExecutionPolicy|Select timezone"
msgstr "Sélectionner un fuseau horaire"
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr "Le chemin d'accès du fichier ne peut pas être vide"
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr "Déclenche :"
@@ -42142,6 +42969,9 @@ msgstr "agent"
msgid "ScanExecutionPolicy|branch"
msgstr "branche"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr "a une étiquette spécifique"
@@ -42202,9 +43032,6 @@ msgstr "Correctif disponible"
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr "Le correctif disponible ne s'applique qu'à l'analyse des conteneurs et des dépendances"
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr "Si une demande de fusion reçoit toutes les approbations nécessaires à la fusion mais qu'une nouvelle validation est apportée, de nouvelles approbations seront requises. Cela garantit que de nouvelles validations qui pourraient inclure des vulnérabilités ne peuvent pas être présentées."
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr "Si cette option est sélectionnée, les choix suivants écraseront les %{linkStart}paramètres du projet%{linkEnd} mais n'affecteront que les branches sélectionnées dans la politique."
@@ -42256,35 +43083,26 @@ msgstr "Seuls 2 critères de statut sont autorisés"
msgid "ScanResultPolicy|Override project approval settings"
msgstr "Remplacer les paramètres d'approbation du projet"
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr "La confirmation du mot de passe lors des approbations apporte un niveau de sécurité supplémentaire. L’activation de cette option force ce réglage sur tous les projets ciblés par cette politique."
-
msgid "ScanResultPolicy|Pre-existing"
msgstr "Préexistantes"
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr "Empêcher un utilisateur de supprimer une branche de la liste des branches protégées ou de supprimer une branche protégée."
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr "Empêcher l'auteur de la validation de donner son approbation"
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr "Empêcher l'auteur de la requête de fusion de donner son approbation"
-msgid "ScanResultPolicy|Prevent branch protection modification"
-msgstr "Empêcher la modification de la protection des branches"
+msgid "ScanResultPolicy|Prevent branch modification"
+msgstr "Empêcher la modification des branches"
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr "Empêcher de pousser et de forcer les poussées"
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr "Empêcher de pousser et de forcer les poussées vers une branche protégée."
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr "Paramètres des branches protégées"
-msgid "ScanResultPolicy|Recommended setting"
-msgstr "Paramètre recommandé"
+msgid "ScanResultPolicy|Recommended settings"
+msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
msgstr "Supprimer toutes les approbations avec la nouvelle validation"
@@ -42310,15 +43128,9 @@ msgstr "La gravité est :"
msgid "ScanResultPolicy|Status is:"
msgstr "Le statut est :"
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr "L’auteur de la demande de fusion ne peut pas approuver sa propre demande de fusion."
-
msgid "ScanResultPolicy|Unknown"
msgstr "Inconnu"
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr "Les utilisateurs qui ont contribué au code de la MR ne sont pas éligibles à l’approbation, ce qui garantit que les auteurs des validations ne peuvent pas introduire de vulnérabilités ni approuver le code pour la fusion."
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr "PolitiqueRésultatAcquisition|Quand %{scanType} %{scanners} s'exécute(nt) sur les %{branches} %{branchExceptions} et trouve(nt) %{vulnerabilitiesNumber} %{boldDescription} des critères suivants :"
@@ -42331,8 +43143,26 @@ msgstr "Lorsqu'une analyse %{scanType} dans un open qui cible %{branches} %{bran
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr "PolitiqueRésultatAcquisition|Lorsque %{scanners} rencontrent les conditions spécifiées du scanner dans une requête de fusion ouverte ciblant %{branches} %{branchExceptions} et correspondant à %{boldDescription} des critères suivants"
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
-msgstr "Vous avez sélectionné une option de branche protégée comme condition. Pour mieux protéger votre projet, il est recommandé d'activer les paramètres de protection des branches. %{linkStart}En savoir plus.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr "Lorsque cette option est activée, de nouvelles approbations seront nécessaires si une nouvelle validation est faite alors que la demande de fusion avait reçue toutes les approbations requises."
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr "Lorsque cette option est activée, les auteurs de demandes de fusion ne peuvent pas approuver leurs propres demandes de fusion."
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr "Lorsque cette option est activée, empêche un utilisateur de supprimer une branche de la liste des branches protégées, de supprimer une branche protégée et de modifier la branche par défaut dans le cas où celle-ci est intégrée dans une stratégie de sécurité."
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr "Lorsque cette option est activée, empêche de pousser et de forcer les poussées vers une branche protégée si celle-ci est intégrée dans une stratégie de sécurité."
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr "Lorsque cette option est activée, une confirmation du mot de passe sera présente lors des approbations."
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr "Lorsque cette option est activée, les utilisateurs qui ont contribué au code d’une demande de fusion ne seront pas éligibles pour l’approbation."
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
+msgstr ""
msgid "ScanResultPolicy|any commits"
msgstr "toutes les validations"
@@ -42484,6 +43314,9 @@ msgstr "Rechercher par nom"
msgid "Search files"
msgstr "Rechercher des fichiers"
+msgid "Search filters"
+msgstr "Filtres de recherche"
+
msgid "Search for Namespace"
msgstr "Rechercher un espace de nommage"
@@ -42677,6 +43510,9 @@ msgstr "Détection de secret"
msgid "Secret token"
msgstr "Jeton secret"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr "Ce commentaire semble contenir un jeton. Voulez-vous vraiment l'ajouter ?"
@@ -42686,6 +43522,36 @@ msgstr "Cette description semble contenir un jeton. Voulez-vous vraiment l'ajout
msgid "Secrets"
msgstr "Secrets"
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr "Ajoutez un nouveau secret dans le groupe en suivant les instructions du formulaire ci-dessous."
+
+msgid "Secrets|Add secret"
+msgstr "Ajouter un secret"
+
+msgid "Secrets|Audit log"
+msgstr "Journal d'audit"
+
+msgid "Secrets|Edit %{key}"
+msgstr "Modifier %{key}"
+
+msgid "Secrets|New secret"
+msgstr "Nouveau secret"
+
+msgid "Secrets|Secret details"
+msgstr "Détails du secret"
+
+msgid "Secrets|Secret name"
+msgstr "Nom du secret"
+
+msgid "Secrets|Secrets"
+msgstr "Secrets"
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr "Les secrets représentent des informations sensibles dont votre job CI a besoin pour achever son action. Ces informations sensibles peuvent être des éléments tels que des jetons d'API, des identifiants de base de données ou des clés privées. Contrairement aux variables CI/CD qui sont toujours présentées aux jobs, les secrets doivent être exigés par un job de manière explicite. %{linkStart}En savoir plus.%{linkEnd}"
+
+msgid "Secrets|Stored secrets"
+msgstr "Secrets stockés"
+
msgid "Secure Code Warrior"
msgstr "Secure Code Warrior"
@@ -42743,6 +43609,9 @@ msgstr "Tableau de bord de sécurité"
msgid "Security Finding not found"
msgstr "Découverte de sécurité introuvable"
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr "Le projet de stratégie de sécurité existe déjà."
@@ -42830,8 +43699,8 @@ msgstr "Activer Auto DevOps"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr "Activez l'incubation de fonctionnalités axées sur la simulation de brèches et d'attaques, telles que les attaques par appel téléphonique, dans vos analyses DAST."
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Activer la formation sur la sécurité pour aider vos développeurs à apprendre à corriger les vulnérabilités. Les développeurs peuvent voir la formation à la sécurité d'une sélection de plateformes d'apprentissage adaptée à la vulnérabilité détectée."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
msgid "SecurityConfiguration|Enabled"
msgstr "Activé"
@@ -42932,6 +43801,9 @@ msgstr " qui est %{licenseState} et est"
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr "%{agent} pour %{namespaces}"
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr "%{branchName}"
@@ -42941,6 +43813,15 @@ msgstr "%{branchName} (dans %{codeStart}%{fullPath}%{codeEnd})"
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr "%{cadence} sur %{branches}%{branchExceptionsString}"
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr "%{fileName} chargé avec succès."
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr "Le chargement de %{fileName} a échoué. Veuillez réessayer."
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr "%{frameworkName} a %{projectLength} %{projects}"
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr "%{licenses} et %{lastLicense}"
@@ -42959,12 +43840,18 @@ msgstr "Mode .yaml"
msgid "SecurityOrchestration|.yaml preview"
msgstr "Aperçu .yaml"
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr "Un cadre de conformité est un label pour indiquer que votre projet a certaines exigences de conformité. %{linkStart}En savoir plus%{linkEnd}."
+
msgid "SecurityOrchestration|Actions"
msgstr "Actions"
msgid "SecurityOrchestration|Add action"
msgstr "Ajouter une action"
+msgid "SecurityOrchestration|Add new action"
+msgstr "Ajouter une nouvelle action"
+
msgid "SecurityOrchestration|Add new approver"
msgstr "Ajouter un nouvel approbateur"
@@ -42977,6 +43864,9 @@ msgstr "Après avoir rejeté l'alerte, les informations ne seront plus réaffich
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "Une fois une stratégie activée au niveau du groupe, elle s'applique automatiquement à tous les projets et sous-groupes de ce groupe."
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr "Toutes les sources"
@@ -43007,6 +43897,9 @@ msgstr "Appliquer cette stratégie à tous les projets %{projectScopeType} nommÃ
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr "Voulez-vous vraiment supprimer cette politique ? Cette action ne pourra pas être annulée."
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr "Au moins un label de cadre doit être sélectionné"
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr "Runners sélectionnés automatiquement"
@@ -43019,18 +43912,24 @@ msgstr "Impossible de créer une stratégie vide"
msgid "SecurityOrchestration|Choose a project"
msgstr "Choisir un projet"
+msgid "SecurityOrchestration|Choose an action"
+msgstr "Choisissez une action"
+
msgid "SecurityOrchestration|Choose approver type"
msgstr "Choisir le type d'approbateur"
-msgid "SecurityOrchestration|Choose framework labels"
-msgstr "Choisir des labels de cadre"
-
msgid "SecurityOrchestration|Choose specific role"
msgstr "Choisir un rôle spécifique"
msgid "SecurityOrchestration|Clear all"
msgstr "Tout effacer"
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr "Des ID de cadres de conformité ne peuvent être définis que pour des stratégies de groupe"
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr "Le cadre de conformité n‘a aucun projet."
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr "Créez des règles de vulnérabilité plus robustes et appliquez-les à tous vos projets."
@@ -43103,6 +44002,9 @@ msgstr "Échec du chargement des projets du groupe"
msgid "SecurityOrchestration|Failed to load images."
msgstr "Le chargement des images a échoué."
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr "Pour toute demande de fusion qui correspond aux règles de cette politique, seuls les paramètres outrepassant ceux d’approbation du projet s’appliquent. Aucune approbation supplémentaire n’est requise."
@@ -43115,8 +44017,11 @@ msgstr "Pour les groupes nombreux, l'application des modifications de la straté
msgid "SecurityOrchestration|Groups"
msgstr "Groupes"
-msgid "SecurityOrchestration|Hide extra branches"
-msgstr "Masquer les branches supplémentaires"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
+msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
msgstr "Si un scanner quelconque trouve une vulnérabilité critique récemment détectée dans une requête de fusion ouverte ciblant la branche maître, alors exiger deux approbations de tout membre de l'Appli sécurité."
@@ -43130,6 +44035,9 @@ msgstr "Hérité"
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr "Héritée de %{namespace}"
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr "ID(s) de cadre de conformité non valide(s)"
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr "Type de branche non valide détecté : la règle ne sera pas appliquée."
@@ -43145,6 +44053,9 @@ msgstr "Dernière analyse exécutée avec %{agent}"
msgid "SecurityOrchestration|License Scan"
msgstr "Analyse de Licence"
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr "Charger du code CI/CD depuis un fichier"
+
msgid "SecurityOrchestration|Logic error"
msgstr "Erreur de logique"
@@ -43172,6 +44083,9 @@ msgstr "OrchestrationSécurité|Aucune exception"
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr "Aucune règle définie - la politique ne sera pas exécutée."
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr "Aucune étiquette disponible"
@@ -43198,6 +44112,9 @@ msgstr "Seuls les propriétaires peuvent mettre à jour le Projet de Politique d
msgid "SecurityOrchestration|Override the following project settings:"
msgstr "Remplacer les paramètres suivants du projet :"
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr "Écraser le code CI/CD actuel avec le contenu du nouveau fichier ?"
+
msgid "SecurityOrchestration|Policies"
msgstr "Politiques"
@@ -43232,7 +44149,7 @@ msgid "SecurityOrchestration|Require %{approvals} %{plural} from %{approvers} if
msgstr "Nécessite %{approvals} %{plural} de %{approvers} s'il se produit un ou plusieurs des cas suivants :"
msgid "SecurityOrchestration|Required approvals exceed eligible approvers."
-msgstr "Le nombre d'approbations requises dépasse le nombre d'approbateurs éligibles."
+msgstr "Le nombre d'approbations requises dépasse celui des approbateurs éligibles."
msgid "SecurityOrchestration|Requires no approvals if any of the following occur:"
msgstr "N'exiger aucune approbation si l'un des cas suivants se produit :"
@@ -43285,12 +44202,18 @@ msgstr "Politique de résultat d'analyse"
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr "L'analyse choisira automatiquement un runner sur lequel s'exécuter, car les runners ne portent pas d'étiquettes. Vous pouvez %{linkStart}créer une nouvelle étiquette dans les paramètres%{linkEnd}."
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr "Approbations de sécurité"
msgid "SecurityOrchestration|Security Scan"
msgstr "Analyse de sécurité"
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr "La stratégie de sécurité écrase ce paramètre"
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr "Le projet de politique de sécurité a été lié avec succès"
@@ -43324,6 +44247,12 @@ msgstr "Sélectionner des utilisateurs"
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr "La gravité est %{severity}."
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr "Une erreur s'est produite, impossible de récupérer les politiques"
@@ -43357,6 +44286,12 @@ msgstr "Aucune politique de sécurité n'est incluse dans : %{namespaceType}."
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr "Aucun projet de stratégie de sécurité n'est lié à : %{namespaceType}."
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "Ce groupe"
@@ -43441,12 +44376,27 @@ msgstr "YAML"
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr "Vous avez déjà atteint le maximum de %{maximumAllowed} stratégies %{policyType}."
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr "Vous ne pouvez pas modifier la branche par défaut car sa protection est imposée par une ou plusieurs %{security_policies_link_start}stratégies de sécurité%{security_policies_link_end}. %{learn_more_link_start}En savoir plus%{learn_more_link_end}."
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr "Vous ne pouvez pas déprotéger cette branche car sa protection est imposée par une ou plusieurs %{security_policies_link_start}stratégies de sécurité%{security_policies_link_end}. %{learn_more_link_start}En savoir plus%{learn_more_link_end}."
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr "Vous n'avez pas encore de politique de sécurité"
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr "tous les espaces de nommage"
@@ -43483,6 +44433,9 @@ msgstr "branches"
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr "par l'agent nommé %{agents} %{cadence}%{branchExceptionsString}"
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr "cadres de conformité"
+
msgid "SecurityOrchestration|except projects"
msgstr "à l'exception des projets"
@@ -43669,6 +44622,9 @@ msgstr "Rejeté (toutes raisons)"
msgid "SecurityReports|Dismissed as..."
msgstr "Rejeté en tant que..."
+msgid "SecurityReports|Does not have a solution"
+msgstr "N’a pas de solution"
+
msgid "SecurityReports|Does not have issue"
msgstr "N'a pas de ticket"
@@ -43720,6 +44676,9 @@ msgstr "Échec de la mise à jour des vulnérabilités avec les ID suivants : %
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr "Regroupez vos vulnérabilités dans les catégories proposées. Donnez votre avis ou faites des suggestions sur %{feedbackIssueStart}ce ticket%{feedbackIssueEnd}."
+msgid "SecurityReports|Has a solution"
+msgstr "A une solution"
+
msgid "SecurityReports|Has issue"
msgstr "A un ticket"
@@ -43735,12 +44694,6 @@ msgstr "Image"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr "Enquêter sur cette vulnérabilité en créant un ticket"
-msgid "SecurityReports|Is available"
-msgstr "Est disponible"
-
-msgid "SecurityReports|Is not available"
-msgstr "N'est pas disponible"
-
msgid "SecurityReports|Issue"
msgstr "Ticket"
@@ -43875,6 +44828,9 @@ msgstr "Détection toujours active"
msgid "SecurityReports|Submit vulnerability"
msgstr "Soumettre une vulnérabilité"
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr "Le rapport de vulnérabilités montre les résultats des analyses réussies sur la branche par défaut de votre projet, les enregistrements des vulnérabilités ajoutées manuellement et les vulnérabilités trouvées à partir de l'analyse d'environnements opérationnels. %{linkStart}En savoir plus%{linkEnd}."
@@ -43974,6 +44930,18 @@ msgstr "Résoudre avec une formation sur la sécurité"
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr "La formation provenant de ce partenaire est prioritaire lorsqu'il y a plus d'un partenaire de formation activé."
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr "Voir l'exemple de page de score DevOps dans notre documentation."
@@ -44241,6 +45209,9 @@ msgstr "Envoyer des notifications concernant les événements du projet vers des
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr "Envoyer des notifications concernant les événements du projet vers un canal Discord. %{docs_link}"
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "Envoyer le rapport"
@@ -44403,9 +45374,15 @@ msgstr "Activer l'adresse de courriel personnalisée"
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr "Pour obtenir de l'aide sur la mise en place du Service d'Assistance sur votre instance, veuillez contacter un administrateur."
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr "En-tête De incorrect"
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr "Jeton de vérification incorrect"
@@ -44445,6 +45422,12 @@ msgstr "BureauService|Veuillez partager vos commentaires sur cette fonctionnalit
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr "Veuillez réessayer. Vérifiez les paramètres de transfert des courriels et les identifiants, puis relancez la vérification."
+msgid "ServiceDesk|Read timeout"
+msgstr "Expiration du délai d’attente pour la lecture"
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr "Réinitialiser l'adresse de courriel personnalisée"
@@ -44505,8 +45488,11 @@ msgstr "Configuration du Service Desk absente"
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr "Paramètre du Service Desk ou objet de vérification manquant"
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "Les identifiants fournis (nom d'utilisateur et mot de passe) ont été rejetés par le serveur SMTP."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr "Le serveur SMTP n’a pas répondu dans le temps imparti."
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr "Les identifiants fournis (nom d’utilisateur et mot de passe) ont été rejetés par le serveur SMTP, ou vous devez définir explicitement une méthode d’authentification."
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
msgstr "Le courriel reçu ne contenait pas le jeton de vérification qui avait été envoyé à votre adresse de courriel."
@@ -44514,6 +45500,12 @@ msgstr "Le courriel reçu ne contenait pas le jeton de vérification qui avait Ã
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr "Le courriel de vérification n'a pas été reçu à temps. Un délai de 30 minutes est nécessaire pour que les courriels de vérification apparaissent dans le module Service Desk de votre instance. Vérifiez que vous avez correctement configuré le transfert des courriels."
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr "Ce ticket a été rouvert parce qu’il a reçu un nouveau commentaire envoyé par un participant externe."
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr "Pour activer le Service d'Assistance sur cette instance, un administrateur de celle-ci doit au préalable définir une adresse de courriel entrant."
@@ -44712,9 +45704,6 @@ msgstr "Configuration CI/CD"
msgid "Set up Jira Integration"
msgstr "Configurer l'intégration Jira"
-msgid "Set up a %{type} runner for a project"
-msgstr "Mettre en place un runner %{type} pour un projet"
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr "Configurez un périphérique matériel pour activer l'authentification à deux facteurs (A2F)."
@@ -44730,6 +45719,9 @@ msgstr "Définir un nouveau mot de passe"
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
msgstr "Configurez votre projet afin de pouvoir pousser et/ou récupérer automatiquement les modifications vers ou depuis un autre dépôt. Les branches, les étiquettes et les commits seront automatiquement synchronisés."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "Configurer le poids"
@@ -44808,20 +45800,33 @@ msgstr "Paramètre"
msgid "Setting enforced"
msgstr "Paramètre imposé"
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] "Paramètre enregistré avec succès"
-msgstr[1] "Paramètres enregistrés avec succès"
-
msgid "Settings"
msgstr "Paramètres"
msgid "Settings for the License Compliance feature"
msgstr "Paramètres pour la fonctionnalité de conformité de licence"
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr "Impossible de charger les paramètres des options de requête de fusion. Essayez de recharger la page."
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "Gravité"
@@ -44879,27 +45884,6 @@ msgstr "Limitez le nombre d'opérations Git qu'un utilisateur peut effectuer par
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr "Nombre maximum d'opérations Git par minute"
-msgid "Shimo|Go to Shimo Workspace"
-msgstr "Aller sur l'Espace de travail Shimo"
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr "Lier un Espace de travail Shimo à la barre latérale."
-
-msgid "Shimo|Shimo"
-msgstr "Shimo"
-
-msgid "Shimo|Shimo Workspace"
-msgstr "Espace de travail Shimo"
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr "URL de l'Espace de travail Shimo"
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr "L'intégration de l'Espace de travail Shimo est activée"
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr "Vous avez activé l'intégration de l'Espace de travail Shimo. Vous pouvez voir votre wiki directement dans Shimo."
-
msgid "Short name"
msgstr "Nom court"
@@ -45163,9 +46147,6 @@ msgstr "Connexion à l'aide d'une carte à puce"
msgid "Sign in via 2FA code"
msgstr "Connexion via un code A2F"
-msgid "Sign in with"
-msgstr "Connexion avec"
-
msgid "Sign in with single sign-on"
msgstr "Connexion avec l'authentification unique"
@@ -45214,20 +46195,14 @@ msgstr "URL de la page de déconnexion"
msgid "Sign-up restrictions"
msgstr "Restrictions d'inscription"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "En cliquant sur %{button_text} ou en vous inscrivant via un service tiers, vous acceptez les%{link_start} Conditions d'utilisation et reconnaissez avoir pris connaissance de la Politique de confidentialité et de la Politique de gestion des cookies%{link_end} de GitLab."
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "En cliquant sur %{button_text} ou en vous inscrivant via un service tiers, vous acceptez les%{link_start} Conditions d'utilisation et reconnaissez avoir pris connaissance de la Politique de confidentialité et de la Politique de gestion des cookies%{link_end}."
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "En cliquant sur %{button_text}, je reconnais avoir lu et accepté les %{link_start}Conditions générales d'utilisation et la Politique de confidentialité%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "En cliquant sur %{button_text}, je reconnais avoir lu et accepté les %{link_start}Conditions générales d'utilisation et la Politique de confidentialité%{link_end} de GitLab"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "En vous connectant, vous acceptez les %{link_start}Conditions d'utilisation et reconnaissez avoir pris connaissance de la Politique de confidentialité et de la Politique de gestion des cookies%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr "Le prénom est trop long (le maximum est de %{max_length} caractères)."
@@ -45526,6 +46501,9 @@ msgstr "Carte à puce"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "L'authentification par carte à puce a échoué : un enâ€tête de certificat client est manquant."
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr "Extrait"
@@ -45583,6 +46561,9 @@ msgstr "Les extraits de code sont limités à %{total} fichiers."
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr "Les extraits de code ne peuvent pas contenir de fichiers vides. Assurez-vous que tous les fichiers ont du contenu, ou supprimez-les."
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr "Cet extrait est caché car son auteur a été banni"
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45643,8 +46624,8 @@ msgstr "Autre"
msgid "Something went wrong"
msgstr "Une erreur s'est produite"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
-msgstr "Une erreur s'est produite lors de la récupération des découvertes du scanner. Veuillez réessayer."
+msgid "Something went wrong fetching the scanner findings. Please try again."
+msgstr ""
msgid "Something went wrong on our end"
msgstr "Une erreur est survenue de notre côté"
@@ -45985,9 +46966,6 @@ msgstr "Popularité"
msgid "SortOptions|Priority"
msgstr "Priorité"
-msgid "SortOptions|Project"
-msgstr "Projet"
-
msgid "SortOptions|Recent last activity"
msgstr "Dernière activité la plus récente"
@@ -46000,8 +46978,8 @@ msgstr "Favoris les plus récents"
msgid "SortOptions|Size"
msgstr "Taille"
-msgid "SortOptions|Sort by:"
-msgstr "Trier par :"
+msgid "SortOptions|Sort by"
+msgstr "Trier par"
msgid "SortOptions|Sort direction"
msgstr "Sens de tri"
@@ -46021,12 +46999,6 @@ msgstr "Démarrer bientôt"
msgid "SortOptions|Title"
msgstr "Titre"
-msgid "SortOptions|Type"
-msgstr "Type"
-
-msgid "SortOptions|Version"
-msgstr "Version"
-
msgid "SortOptions|Weight"
msgstr "Poids"
@@ -46222,6 +47194,11 @@ msgstr "Étape :"
msgid "Standard"
msgstr "Standard"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] "Favori"
+msgstr[1] "Favoris"
+
msgid "Star labels to start sorting by priority."
msgstr "Mettez des étoiles sur les étiquettes pour les classer par priorité."
@@ -46522,9 +47499,6 @@ msgstr "Arrêter le Terminal"
msgid "Stop impersonating"
msgstr "Mettre fin à l'emprunt d'identité"
-msgid "Stop impersonation"
-msgstr "Arrêter l'usurpation d'identité"
-
msgid "Stop this environment"
msgstr "Arrêter cet environnement"
@@ -46606,9 +47580,6 @@ msgstr "Soumettre comme acceptable"
msgid "Submit as spam"
msgstr "Soumettre comme indésirable"
-msgid "Submit feedback"
-msgstr "Proposer une rétroaction"
-
msgid "Submit feedback and approve these changes."
msgstr "Envoyez des commentaires et approuvez ces modifications."
@@ -46705,6 +47676,9 @@ msgstr "Pour apporter des modifications à un abonnement en lecture seule ou ach
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr "Votre abonnement est en mode lecture seule"
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "Ajouter des sièges"
@@ -47253,9 +48227,6 @@ msgstr "Changer de branche"
msgid "Switch branch/tag"
msgstr "Changer de branche/d'étiquette"
-msgid "Switch to GitLab Next"
-msgstr "Passer à GitLab Next"
-
msgid "Switch to plain text editing"
msgstr "Passer à l'édition en texte brut"
@@ -47526,14 +48497,23 @@ msgstr "GitLab Duo Chat"
msgid "TanukiBot|Give feedback"
msgstr "Donner votre avis"
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] "Source"
msgstr[1] "Sources"
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr "Une erreur s'est produite lors de la communication avec GitLab Duo Chat. Veuillez réessayer plus tard."
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr "Qu'est-ce qu'une bifurcation ?"
@@ -47549,21 +48529,6 @@ msgstr "Chemin cible"
msgid "Target branch"
msgstr "Branche cible"
-msgid "Target branch rule"
-msgstr "Règle de branche cible"
-
-msgid "Target branch rule created."
-msgstr "Règle de branche cible créée."
-
-msgid "Target branch rule deleted."
-msgstr "Règle de branche cible supprimée."
-
-msgid "Target branch rule does not exist"
-msgstr "La règle de branche cible n'existe pas"
-
-msgid "Target branch rules"
-msgstr "Règles de branche cible"
-
msgid "Target branch: %{target_branch}"
msgstr "Branche cible : %{target_branch}"
@@ -47848,6 +48813,9 @@ msgstr "Test généré par l'IA"
msgid "Test settings"
msgstr "Tester les paramètres"
+msgid "Test summary"
+msgstr "Résumé des tests"
+
msgid "TestCases|Move test case"
msgstr "Déplacer le scénario de test"
@@ -48042,6 +49010,9 @@ msgstr "Le gestionnaire de ticket de suivi est un endroit où l'on peut ouvrir u
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "Le système de suivi est un endroit où l'on peut ouvrir un ticket pour signaler des choses à améliorer ou des dysfonctionnements à résoudre dans un projet. Vous pouvez vous inscrire ou vous connecter pour créer des tickets de suivi pour ce projet."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr "L'intégration des notifications Slack est obsolète et sera supprimée dans une prochaine release. Pour continuer à recevoir des notifications de Slack, utilisez l'application GitLab pour Slack à la place. %{learn_more_link_start}En savoir plus%{link_end}."
@@ -48066,6 +49037,12 @@ msgstr "L'application sera utilisée lorsque le secret du client peut être tenu
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr "Le ticket #%{issueId} associé a été fermé car l'erreur est maintenant résolue."
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "La branche de ce projet n'a pas de configuration de pipeline active."
@@ -48084,9 +49061,6 @@ msgstr "Le commentaire que vous êtes en train d'éditer a été modifié par un
msgid "The commit does not exist"
msgstr "La validation n'existe pas"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr "La vue comparative peut être inexacte en raison de conflits de fusion."
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr "La plateforme DevOps complète. Une application unique avec des possibilités infinies. Les entreprises s'appuient sur la gestion du code source, la CI/CD, la sécurité et d'autres fonctionnalités de GitLab pour livrer des logiciels rapidement."
@@ -48126,17 +49100,23 @@ msgstr "L'utilisateur actuel n'est pas autorisé à accéder au journal des jobs
msgid "The current user is not authorized to create the pipeline schedule"
msgstr "L'utilisateur actuel n'est pas autorisé à créer la planification de pipeline"
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr "L'utilisateur actuel n'est pas autorisé à définir les variables de programmation de pipeline"
msgid "The current user is not authorized to update the pipeline schedule"
msgstr "L'utilisateur actuel n'est pas autorisé à mettre à jour planification de pipeline"
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr "Les données de ce pipeline sont trop anciennes pour être rendues sous forme de graphique. Veuillez vérifier l'onglet Jobs pour accéder à l'historique des données."
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "La date à laquelle la release est prête. Une release dont la date est dans le futur porte le label %{linkStart}Release à venir%{linkEnd}."
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr "Le fichier de configuration CI/CD et le chemin par défaut des nouveaux projets."
@@ -48385,6 +49365,9 @@ msgstr "Le nom du fichier de configuration CI/CD. Un chemin relatif au répertoi
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr "Le nom du projet Jenkins. Copiez-le en prenant la fin de l'URL du projet."
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr "La taille du stockage de l’espace de noms (%{current_size}) dépasse de %{exceeded_size} la limite qui est de %{size_limit}. Vous ne serez plus en mesure de pousser de nouveau code sur ce projet. Veuillez contacter votre administrateur GitLab pour en savoir plus."
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "Le nombre de modifications à récupérer depuis GitLab lors du clonage d'un dépôt. Des valeurs plus basses peuvent accélérer l'exécution du pipeline. Définir sur %{code_open}0%{code_close} ou laisser vide pour récupérer toutes les branches et étiquettes pour chaque job"
@@ -48523,6 +49506,9 @@ msgstr "L'onglet spécifié n'est pas valide. Veuillez en sélectionner un autre
msgid "The start date must be earlier than the end date."
msgstr "La date de début doit être antérieure à la date de fin."
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr "Le sujet servira de titre pour le nouveau ticket et le message sera utilisé comme description. Les %{quickActionsLinkStart}actions rapides%{quickActionsLinkEnd} et la mise en forme avec %{markdownLinkStart}Markdown%{markdownLinkEnd} sont prises en charge."
@@ -48574,15 +49560,12 @@ msgstr "La vulnérabilité n'est plus détectée. Vérifiez qu'elle a été corr
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr "La vulnérabilité n'est plus détectée. Vérifiez qu'elle a été remédiée avant de modifier son état."
+msgid "There are currently no merge request branch targets"
+msgstr ""
+
msgid "There are currently no mirrored repositories."
msgstr "Il n'y a actuellement aucun dépôt mis en miroir."
-msgid "There are currently no target branch rules"
-msgstr "Il n'y a actuellement pas de règles de branche cible"
-
-msgid "There are merge conflicts"
-msgstr "Il y a des conflits de fusion"
-
msgid "There are no GPG keys associated with this account."
msgstr "Aucune clé GPG n'est associée à ce compte."
@@ -48629,7 +49612,7 @@ msgid "There are no commits yet."
msgstr "Il n'y a pas encore de validation."
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 "Aucun modèle de projet personnalisé n'a été configuré pour cette instance de GitLab. Ils sont activés à partir de l'Espace d'administration de GitLab. Contactez votre administrateur d'instance GitLab pour configurer des modèles de projet personnalisés."
+msgstr "Aucun modèle de projet personnalisé n'a été configuré pour cette instance GitLab. Ces modèles doivent être activés à partir de l'Interface d'administration de GitLab. Contactez votre administrateur d'instance GitLab pour configurer des modèles de projet personnalisés."
msgid "There are no issues to show"
msgstr "Il n'y a aucun ticket à afficher"
@@ -48751,6 +49734,9 @@ msgstr "Un problème est survenu lors de la récupération des étiquettes du pr
msgid "There was a problem fetching project users."
msgstr "Un problème est survenu lors de la récupération des utilisateurs du projet."
+msgid "There was a problem fetching projects."
+msgstr "Une erreur s’est produite lors de la récupération des projets."
+
msgid "There was a problem fetching recent groups."
msgstr "Une erreur s'est produite lors de la récupération des groupes récents."
@@ -48946,6 +49932,9 @@ msgstr "Ces exemples montrent des méthodes courantes pour déclencher un pipeli
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr "Ces tickets existants ont presque le même titre. Il serait peut-être préférable d'y ajouter un commentaire plutôt que de créer un autre ticket similaire."
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr "Ces runners sont partagés par tous les projets de ce groupe."
@@ -48986,7 +49975,7 @@ msgid "This Cron pattern is invalid"
msgstr "Ce schéma Cron n'est pas valide"
msgid "This GitLab instance does not provide any shared runners yet. Instance administrators can register shared runners in the admin area."
-msgstr "Cette instance de GitLab ne fournit aucun runner partagé pour le moment. Les administrateurs de l'instance peuvent en enregistrer dans l'espace d'administration."
+msgstr "Cette instance GitLab ne fournit aucun runner partagé pour le moment. Les administrateurs de l'instance peuvent en enregistrer dans l'interface d'administration."
msgid "This PDF is too large to display. Please download to view."
msgstr "Ce PDF est trop volumineux pour être affiché. Veuillez le télécharger pour pouvoir le faire."
@@ -49036,9 +50025,15 @@ msgstr "Cette archive a été demandée un trop grand nombre de fois. Réessayez
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr "Cette pièce jointe a été tronquée pour éviter de dépasser la taille maximale autorisée de %{size_limit}. %{written_count} des %{count} %{issuables} ont été inclus. Envisagez de réexporter avec une sélection plus restreinte de %{issuables}."
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr "Cette pièce-jointe a été tronquée pour ne pas dépasser la taille maximale autorisée de %{size_limit}. %{written_count} des %{total_count}  %{object_type} ont été inclus. Envisagez de réexporter en sélectionnant moins de %{object_type}."
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "Ce bloc est autoréférentiel"
@@ -49075,6 +50070,9 @@ msgstr "Cette validation a été créée dans l'UI de GitLab et signée avec une
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr "Cette validation a été signée avec une signature %{strong_open}vérifiée%{strong_close} et le courriel du contributeur a bien été vérifié comme correspondant au même utilisateur."
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "Ce commit a été signé avec la signature vérifiée d'un utilisateur différent."
@@ -49267,9 +50265,6 @@ msgstr "Il s'agit d'une adresse de courriel privée %{helpIcon} générée uniqu
msgid "This is a security log of authentication events involving your account."
msgstr "Ceci est un journal de sécurité des événements d'authentification impliquant votre compte."
-msgid "This is a self-managed instance of GitLab."
-msgstr "Il s'agit d'une instance auto-gérée de GitLab."
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr "Il s'agit d'une fonctionnalité expérimentale développée par GitLab Incubation Engineering."
@@ -49414,12 +50409,6 @@ msgstr "Cela peut exposer des informations confidentielles, car la bifurcation s
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Cela signifie que vous ne pouvez pas pousser du code tant que vous n'avez pas créé un dépôt vide ou que vous n'avez pas importé un dépôt existant."
-msgid "This merge request branch is protected from force push."
-msgstr "La branche de cette requête de fusion est protégée contre les poussées forcées."
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr "Cette requête de fusion ne peut pas être rebasée tant qu'il existe des conflits."
-
msgid "This merge request does not have accessibility reports"
msgstr "Cette requête de fusion ne dispose d'aucun rapport d'accessibilité"
@@ -49468,6 +50457,11 @@ msgstr "Ce pipeline a été créé par un appel à l'API authentifié avec un je
msgid "This pipeline was triggered using the api"
msgstr "Ce pipeline a été déclenché par l'utilisation de l'api"
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "Ce processus supprime le dépôt du projet et toutes les ressources associées."
@@ -50111,9 +51105,6 @@ msgstr "Pour s'assurer que %{project_name} n'est pas planifié pour suppression,
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr "Pour éviter toute perte d'accès au contenu personnel, n'utilisez ce compte qu'en rapport avec %{group_name}."
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr "Pour éviter toute perte de contenu personnel, ce compte ne doit être utilisé qu'en rapport avec %{group_name}."
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr "Pour retrouver l'état du dépôt de ce projet au moment de chacune de ses versions, extrayez-en %{link_start}les étiquettes%{link_end}"
@@ -50158,6 +51149,9 @@ msgstr "Pour en savoir plus sur ce projet, lisez %{link_to_wiki}"
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr "Pour gérer les sièges de tous les membres associés à ce groupe, ses sous-groupes et projets, visitez la %{link_start}page quotas d'utilisation%{link_end}."
+msgid "To merge, either the title or description must reference a Jira issue."
+msgstr "Pour fusionner, le titre ou la description doivent faire référence à un ticket Jira."
+
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 "Pour déplacer ou copier un projet GitLab entier depuis une autre installation de GitLab vers celleâ€ci, accédez à la page des paramètres du projet d'origine, générez un fichier d'exportation et téléversezâ€le ici."
@@ -50263,8 +51257,8 @@ msgstr "Le pense-bête a été marqué comme terminé."
msgid "Today"
msgstr "Aujourd'hui"
-msgid "Todos count"
-msgstr "Nombre de pense-bêtes"
+msgid "Todos| What actions create to-do items?"
+msgstr ""
msgid "Todos|Added"
msgstr "Ajouté"
@@ -50278,9 +51272,6 @@ msgstr "Toute action"
msgid "Todos|Any Type"
msgstr "Tout type"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr "Cherchez-vous des choses à faire ? Jetez un coup d'œil aux %{strongStart}%{openIssuesLinkStart}tickets ouverts%{openIssuesLinkEnd}%{strongEnd}, contribuez à %{strongStart}%{mergeRequestLinkStart}une requête de fusion%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd} ou mentionnez quelqu'un dans un commentaire pour lui assigner automatiquement un nouveau pense-bête."
-
msgid "Todos|Assigned"
msgstr "Assigné"
@@ -50338,6 +51329,9 @@ msgstr "Mentionné"
msgid "Todos|Merge request"
msgstr "Requête de fusion"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "Il n'y a plus aucun pense-bête. Beau travail !"
@@ -50374,6 +51368,9 @@ msgstr "avez ajouté un pense-bête"
msgid "Todos|has requested access to %{what} %{which}"
msgstr "avez demandé accès à : %{which} %{what}"
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr "avez mentionné %{who}"
@@ -50416,8 +51413,8 @@ msgstr "Afficher/masquer la liste des validations"
msgid "Toggle details"
msgstr "Afficher/masquer les détails"
-msgid "Toggle emoji award"
-msgstr "Basculer la récompense émoji"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr "Afficher/masquer le navigateur de fichiers"
@@ -50428,9 +51425,6 @@ msgstr "Activer/désactiver le mode focus"
msgid "Toggle keyboard shortcuts help dialog"
msgstr "Afficher/masquer la boîte de dialogue d'aide sur les raccourcis clavier"
-msgid "Toggle navigation"
-msgstr "Activer/désactiver la navigation"
-
msgid "Toggle project select"
msgstr "Activer/désactiver la sélection de projet"
@@ -50446,11 +51440,11 @@ msgstr "Basculer la barre de performance"
msgid "Toggle the navigation sidebar"
msgstr "Afficher/masquer la barre de navigation"
-msgid "Toggled :%{name}: emoji award."
-msgstr "Récompense émoji :%{name} : basculée."
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr "Basculer la récompense émoji :%{name}."
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr "Jeton"
@@ -50491,18 +51485,6 @@ msgstr "Trop d'utilisateurs trouvés. Les actions rapides sont limitées à %{ma
msgid "Tool"
msgstr "Outil"
-msgid "TopNav|Explore"
-msgstr "Explorer"
-
-msgid "TopNav|Go back"
-msgstr "Retour"
-
-msgid "TopNav|Switch to"
-msgstr "Basculer vers"
-
-msgid "TopNav|Your dashboards"
-msgstr "Vos tableaux de bord"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "Le sujet %{source_topic} a été fusionné avec succès avec le sujet %{target_topic}."
@@ -50571,6 +51553,12 @@ msgstr "Nombre total d'intervalles"
msgid "Total test time for all commits/merges"
msgstr "Temps total de test pour toutes les validations/fusions"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "Nombre total d'utilisateurs"
@@ -50595,8 +51583,30 @@ msgstr "Début du traçage"
msgid "Tracing"
msgstr "Traçage"
-msgid "Tracing|%{ms} ms"
-msgstr "%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
+msgstr ""
+
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
msgid "Tracing|Attribute"
msgstr "Attribut"
@@ -50604,9 +51614,6 @@ msgstr "Attribut"
msgid "Tracing|Attributes"
msgstr "Attributs"
-msgid "Tracing|Check again"
-msgstr "Revérifier"
-
msgid "Tracing|Date"
msgstr "Date"
@@ -50664,12 +51671,12 @@ msgstr "Suivi|7 derniers jours"
msgid "Tracing|Metadata"
msgstr "Métadonnées"
-msgid "Tracing|No traces to display."
-msgstr "Aucune trace à afficher."
-
msgid "Tracing|Operation"
msgstr "Opération"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
+msgstr "Actualisez la page, ou modifiez votre filtre de recherche et réessayez"
+
msgid "Tracing|Resource attributes"
msgstr "Attributs de ressource"
@@ -50802,27 +51809,6 @@ msgstr "Vue arborescente"
msgid "Trending"
msgstr "Tendance"
-msgid "TrialBenefits|Container Scanning"
-msgstr "Analyse de conteneurs"
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr "Test dynamique de sécurité des applications"
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr "Épopées à plusieurs niveaux"
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr "Tableaux de bord de sécurité"
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr "Test statique de sécurité des applications"
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr "Relecteurs suggérés"
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr "Gestion des vulnérabilités"
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr "Commencer l'essai gratuit de GitLab Ultimate"
@@ -50838,29 +51824,20 @@ msgstr "Essai %{planName}"
msgid "Trials|Compare all plans"
msgstr "Comparer tous les forfaits"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr "Félicitations pour avoir commencé votre essai gratuit de 30 jours !"
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "Créez un nouveau groupe pour commencer votre essai GitLab Ultimate."
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr "Jour %{daysUsed}/%{duration}"
+msgid "Trials|Don't lose out on additional GitLab features"
+msgstr "Ne passez pas à côté des fonctionnalités supplémentaires de GitLab"
+
msgid "Trials|Looking to do more with GitLab?"
msgstr "Vous cherchez à en faire plus avec GitLab ?"
-msgid "Trials|Trials benefits"
-msgstr "Avantages des essais"
-
-msgid "Trials|Upgrade your plan for more security features"
-msgstr "Passer à un forfait supérieur pour plus de fonctionnalités de sécurité"
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
-msgstr "Avec GitLab Ultimate, il est possible de détecter et corriger les vulnérabilités de votre application."
-
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
-msgstr "Avec GitLab Ultimate, vous aurez accès à :"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
+msgstr "Faîtes une mise à niveau pour retrouver l'accès à des fonctionnalités puissantes comme la gestion avancée d'équipes pour le code, la sécurité et la création de rapports."
msgid "Trials|You can apply your trial to a new group or an existing group."
msgstr "Vous pouvez appliquer votre essai à un nouveau groupe ou à un groupe existant."
@@ -51002,12 +51979,6 @@ msgstr "Désactiver"
msgid "Turn on"
msgstr "Activer"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter :"
-
msgid "Two-Factor Authentication"
msgstr "Authentification à deux facteurs"
@@ -51083,15 +52054,30 @@ msgstr "L'URL doit être en encodage-pourcent si nécessaire."
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "L'URL doit commencer par %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, ou %{codeStart}ftp://%{codeEnd}"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr "URL de l'instance Grafana à laquelle se relier depuis l'option de menu Tableau de Bord des Métriques."
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr "URL du point de terminaison Spam Check externe"
msgid "URL of the external storage to serve the repository static objects."
msgstr "URL du stockage externe pour desservir les objets statiques du dépôt."
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL ou ID de requête"
@@ -51257,9 +52243,18 @@ msgstr "Non autorisé à créer une règle de protection de paquet"
msgid "Unauthorized to create an environment"
msgstr "Non autorisé à créer un environnement"
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr "Non autorisé à supprimer une règle de protection de paquet"
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr "Non autorisé à mettre à jour une règle de protection de paquet"
+
msgid "Unauthorized to update the environment"
msgstr "Non autorisé à mettre à jour l'environnement"
@@ -51335,8 +52330,8 @@ msgstr "Texte de réponse inconnu"
msgid "Unknown user"
msgstr "Utilisateur inconnu"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
-msgstr "Sauf accord contraire écrit de GitLab, en cliquant sur «°Téléverser la licence°», vous acceptez que votre utilisation du logiciel GitLab soit soumise aux %{eula_link_start}Conditions Générales d'Utilisation%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr "Sauf accord contraire écrit avec GitLab, en cliquant sur « Ajouter la licence », vous acceptez que votre utilisation du logiciel GitLab soit soumise aux %{eula_link_start}Conditions Générales d'Utilisation%{eula_link_end}."
msgid "Unlimited"
msgstr "Illimité"
@@ -51386,6 +52381,9 @@ msgstr "Déverrouillage de la discussion"
msgid "Unlocks the discussion."
msgstr "Déverrouille la discussion."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "Injoignable"
@@ -51539,6 +52537,9 @@ msgstr "Annuler"
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "Impossible de renommer le projet car il contient des étiquettes dans le registre de conteneurs !"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr "Impossible de renommer le projet, la validation du chemin du registre de conteneurs a échoué : %{error}"
+
msgid "UpdateProject|Could not set the default branch"
msgstr "Impossible de configurer la branche par défaut"
@@ -51677,8 +52678,11 @@ msgstr "%{percentageRemaining}%% de stockage d'espace de noms restants."
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr "%{percentageRemaining}%% stockage restant acheté."
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
-msgstr "%{storage_limit_link_start}Une limite de stockage d'espace de nommage%{link_end} sera bientôt imposée pour l'espace de nommage %{strong_start}%{namespace_name}%{strong_end}. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
+msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
msgstr "Tout stockage supplémentaire acheté sera affiché ici."
@@ -51692,9 +52696,6 @@ msgstr "Acheter des minutes de calcul supplémentaires"
msgid "UsageQuota|Buy storage"
msgstr "Acheter du stockage"
-msgid "UsageQuota|Code Suggestions"
-msgstr "Suggestions de code"
-
msgid "UsageQuota|Code packages and container images."
msgstr "Paquets de code et images de conteneur."
@@ -51716,15 +52717,15 @@ msgstr "Registre de conteneur"
msgid "UsageQuota|Dependency proxy"
msgstr "Proxy de dépendance"
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
msgid "UsageQuota|Filter charts by year"
msgstr "Filtrer les graphiques par année"
msgid "UsageQuota|Filter projects data by month"
msgstr "Filtrer les données des projets par mois"
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "Pour plus d'informations sur les limites de stockage, consultez notre %{faq_link_start}FAQ%{link_end}."
-
msgid "UsageQuota|Git repository."
msgstr "Dépôt Git."
@@ -51755,8 +52756,8 @@ msgstr "En savoir plus sur les quotas d'utilisation"
msgid "UsageQuota|Learn more about usage quotas."
msgstr "En savoir plus sur les quotas d'utilisation."
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
-msgstr "Proxy local utilisé pour les images Docker en amont auxquelles les accès sont fréquents. %{linkStart}En savoir plus%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
+msgstr ""
msgid "UsageQuota|Month"
msgstr "Mois"
@@ -51794,8 +52795,8 @@ msgstr "Le calcul précis de la taille du stockage du registre des conteneurs es
msgid "UsageQuota|Product analytics"
msgstr "Analyse des produits"
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
-msgstr "Les projets dans cet espace de noms disposent de %{planLimit} de stockage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
+msgstr "Les projets sous cet espace de noms ont une limite de %{planLimit} de stockage qui s'applique au dépôt et aux objets LFS."
msgid "UsageQuota|Purchased storage"
msgstr "Stockage acheté"
@@ -51821,9 +52822,6 @@ msgstr "Une erreur s'est produite lors de la récupération des statistiques des
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr "Une erreur s'est produite lors de la récupération des statistiques de stockage du projet"
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr "Une erreur s'est produite lors du chargement des informations d'utilisation"
-
msgid "UsageQuota|Storage"
msgstr "Stockage"
@@ -52073,12 +53071,6 @@ msgstr "Utiliser ce modèle"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr "Utiliser l'option %{strongStart}Test%{strongEnd} ci-dessus pour créer un événement."
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr "Utilisez l'intégration App Store Connect d'Apple pour vous connecter facilement à l'App Store d'Apple avec Fastlane dans les pipelines CI/CD."
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr "Utilisez l'intégration de Google Play pour vous y connecter avec fastlane dans des pipelines CI/CD."
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr "Utilisez le lien ci-dessous pour confirmer votre adresse de courriel (%{email})"
@@ -52091,6 +53083,12 @@ msgstr "Utilisez l'URL de l'instance Cloud publique (%{kroki_public_url}) ou %{i
msgid "Use the search bar on the top of this page"
msgstr "Utilisez la barre de recherche en haut de cette page"
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr "Utilisez cette section pour désactiver votre authentificateur de mot de passe à usage unique et vos périphériques WebAuthn. Vous pouvez également générer de nouveaux codes de récupération."
@@ -52156,6 +53154,9 @@ msgstr "L'identité SCIM de l'utilisateur %{user} est réactivée"
msgid "User %{user} was removed from %{group}."
msgstr "L'utilisateur %{user} a été supprimé de %{group}."
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "ID utilisateur"
@@ -52261,6 +53262,9 @@ msgstr "L'utilisateur sera bloqué ! Voulez-vous vraiment continuer ?"
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr "L'utilisateur ne sera pas autorisé à créer d'éventuels pourriels. Voulez-vous vraiment continuer ?"
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr "Les règles d'escalade basées sur l'utilisateur doivent avoir un utilisateur ayant un accès au projet"
@@ -52484,7 +53488,7 @@ msgid "UserProfile|View all"
msgstr "Tout afficher"
msgid "UserProfile|View user in admin area"
-msgstr "Afficher l'utilisateur dans l'espace d'administration"
+msgstr "Afficher l'utilisateur dans l'interface d'administration"
msgid "UserProfile|You are not following other users"
msgstr "Vous ne suivez aucun autre utilisateur"
@@ -52711,23 +53715,33 @@ msgstr "Il n'y a aucun élément à afficher à cette étape, pour ces filtres,
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "%{stageCount}+ éléments"
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr "%{value}M"
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] "%{value} jour"
+msgstr[1] "%{value} jours"
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr "%{value}j"
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] "%{value} heure"
+msgstr[1] "%{value} heures"
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr "%{value}h"
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] "%{value} minute"
+msgstr[1] "%{value} minutes"
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr "%{value}m"
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] "%{value} mois"
+msgstr[1] "%{value} mois"
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr "%{value}w"
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] "%{value} semaine"
+msgstr[1] "%{value} semaines"
-msgid "ValueStreamAnalytics|&lt;1m"
-msgstr "&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
+msgstr "&lt;1 minute"
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
msgstr "Nombre moyen de déploiements en production par jour."
@@ -52744,6 +53758,9 @@ msgstr "Tableau de bord"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr "Modifier la chaîne de valeur : %{name}"
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr "Accéder aux documents"
@@ -52846,15 +53863,6 @@ msgstr "Le nom de variable « %{variable} » ne doit pas commencer par « %{p
msgid "Variables"
msgstr "Variables"
-msgid "Variables can be:"
-msgstr "Les variables peuvent être°:"
-
-msgid "Variables can have several attributes."
-msgstr "Les variables peuvent avoir plusieurs attributs."
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr "Les variables stockent des informations, telles que les mots de passe et les clés secrètes, que vous pouvez utiliser dans les scripts de job. Tous les projets de l'instance peuvent les utiliser."
-
msgid "Various container registry settings."
msgstr "Divers paramètres de registre de conteneur."
@@ -52936,9 +53944,6 @@ msgstr "Vous utilisez actuellement la version %{currentVersion} ! Nous vous rec
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr "Vous utilisez actuellement la version %{currentVersion} ! Nous vous recommandons fortement de mettre à jour votre installation de GitLab immédiatement vers l'une des versions suivantes : %{latestStableVersions}."
-msgid "VersionCheck|Your GitLab Version"
-msgstr "Votre version de GitLab"
-
msgid "View File Metadata"
msgstr "Voir les métadonnées du fichier"
@@ -52957,15 +53962,9 @@ msgstr "Tout afficher"
msgid "View all environments."
msgstr "Voir tous les environnements."
-msgid "View all groups"
-msgstr "Afficher tous les groupes"
-
msgid "View all issues"
msgstr "Voir tous les tickets"
-msgid "View all projects"
-msgstr "Afficher tous les projets"
-
msgid "View blame"
msgstr "Voir les annotations"
@@ -53008,7 +54007,7 @@ msgid "View file @ %{commitSha}"
msgstr "Voir le fichier @ %{commitSha}"
msgid "View group in admin area"
-msgstr "Voir le groupe dans l'espace d'administration"
+msgstr "Afficher le groupe dans l'interface d'administration"
msgid "View group labels"
msgstr "Afficher les labels de groupe"
@@ -53064,8 +54063,11 @@ msgstr "Afficher la requête de fusion ouverte"
msgid "View page @ "
msgstr "Voir la page @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
-msgstr "Voir le projet dans l'espace d'administration"
+msgstr "Afficher le projet dans l'interface d'administration"
msgid "View project labels"
msgstr "Afficher les labels de projet"
@@ -53096,6 +54098,9 @@ msgstr "Afficher la documentation"
msgid "View the latest successful deployment to this environment"
msgstr "Voir le dernier déploiement réussi dans cet environnement"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr "Voir des exemples d'utilisation des jetons de déclenchement"
@@ -53171,6 +54176,9 @@ msgstr "Visual Studio Code (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Visual Studio Code (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr "Vulnérabilités"
@@ -53240,6 +54248,9 @@ msgstr "Détails"
msgid "VulnerabilityExport|Detected At"
msgstr "Détectée le"
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr "Chemin complet"
@@ -54020,6 +55031,9 @@ msgstr "Vérification SSL"
msgid "Webhooks|Secret token"
msgstr "Jeton secret"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "Partie sensible de l'URL"
@@ -54518,6 +55532,9 @@ msgstr "Ajouter au jalon"
msgid "WorkItem|All activity"
msgstr "Toute activité"
+msgid "WorkItem|Ancestor"
+msgstr "Ancêtre"
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "Voulez-vous vraiment annuler la modification ?"
@@ -54541,6 +55558,9 @@ msgstr "Blocage"
msgid "WorkItem|Cancel"
msgstr "Annuler"
+msgid "WorkItem|Child items"
+msgstr "Éléments enfants"
+
msgid "WorkItem|Child objectives and key results"
msgstr "Objectifs et résultats clés de l'enfant"
@@ -54586,6 +55606,9 @@ msgstr "Date d'échéance"
msgid "WorkItem|Epic"
msgstr "Épopée"
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr "Tâche existante"
@@ -54622,15 +55645,27 @@ msgstr "Marquer comme terminé"
msgid "WorkItem|Milestone"
msgstr "Jalon"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr "Nouveau type de %{workItemType}"
msgid "WorkItem|New task"
msgstr "Nouvelle tâche"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "Aucune itération"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "Aucun résultat correspondant"
@@ -54661,9 +55696,6 @@ msgstr "Objectif"
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr "Seulement %{MAX_WORK_ITEMS} éléments peuvent être ajoutés à la fois."
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr "Seuls les membres du projet ayant au moins le rôle de rapporteur, l'auteur et les personnes assignées peuvent voir ceci (%{workItemType}) et recevoir des notifications à son propos."
-
msgid "WorkItem|Open"
msgstr "Ouvert"
@@ -54685,12 +55717,15 @@ msgstr "Exigences"
msgid "WorkItem|Save and overwrite"
msgstr "Enregistrer et écraser"
-msgid "WorkItem|Search existing items"
-msgstr "Rechercher des éléments existants"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
+msgstr ""
msgid "WorkItem|Select type"
msgstr "Sélectionner le type"
+msgid "WorkItem|Show all ancestors"
+msgstr "Afficher tous les ancêtres"
+
msgid "WorkItem|Show labels"
msgstr "Afficher les labels"
@@ -54706,6 +55741,9 @@ msgstr "Une erreur s'est produite lors de la suppression de %{workItemType}. Veu
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "Une erreur s'est produite lors de la suppression de la tâche. Veuillez réessayer."
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr "Une erreur s'est produite lors de la récupération des éléments. Veuillez actualiser cette page."
@@ -54715,9 +55753,6 @@ msgstr "Une erreur s'est produite lors de la récupération des itérations. Veu
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr "Une erreur s'est produite lors de la récupération des labels. Veuillez réessayer."
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "Une erreur s'est produite lors de la récupération des tâches. Veuillez actualiser cette page."
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr "Une erreur s'est produite lors de la récupération des types d'éléments de travail. Veuillez réessayer"
@@ -54847,8 +55882,8 @@ msgstr "élément"
msgid "WorkItem|relates to"
msgstr "en relation avec"
-msgid "WorkItem|the following item(s)"
-msgstr "le ou les éléments suivants"
+msgid "WorkItem|the following items"
+msgstr ""
msgid "Workspaces"
msgstr "Espaces de travail"
@@ -54865,6 +55900,9 @@ msgstr "Impossible de charger les espaces de travail"
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr "Impossible de récupérer les agents de cluster pour ce projet"
+msgid "Workspaces|Create a new workspace"
+msgstr "Créer un nouvel espace de travail"
+
msgid "Workspaces|Create workspace"
msgstr "Créer un espace de travail"
@@ -54943,8 +55981,8 @@ msgstr "Pour créer un espace de travail pour ce projet, un administrateur doit
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr "Pour créer un espace de travail, ajoutez un devfile à ce projet. Un devfile est un fichier de configuration pour votre espace de travail."
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
-msgstr "Impossible de charger les espaces de travail actuels. Veuillez réessayer ou contacter un administrateur."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
+msgstr ""
msgid "Workspaces|Unknown state"
msgstr "Statut inconnu"
@@ -54997,6 +56035,12 @@ msgstr "Ajoutez vos notes de la version de release ou faites glisser vos fichier
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr "Un UID externe incorrect a été fourni. Assurez-vous que Auth0 est configuré correctement."
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55024,6 +56068,9 @@ msgstr "Hier"
msgid "You"
msgstr "Vous"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr "Vous avez déjà un pense-bête en attente pour cette alerte"
@@ -55392,12 +56439,12 @@ msgstr "Vous n'appartenez à aucun groupe pour le moment."
msgid "You do not belong to any projects yet."
msgstr "Vous n'appartenez à aucun projet pour le moment."
-msgid "You do not have access to AI features."
-msgstr "Vous n’avez pas accès aux fonctionnalités d’IA."
-
msgid "You do not have access to any projects for creating incidents."
msgstr "Vous n'avez accès pour créer des incidents dans aucun projet."
+msgid "You do not have access to chat feature."
+msgstr ""
+
msgid "You do not have any subscriptions yet"
msgstr "Vous n'avez souscrit à aucun abonnement pour le moment"
@@ -55449,6 +56496,9 @@ msgstr "Vous n'avez aucune recherche récente"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr "Vous n'avez pas la permission d'approuver ce déploiement. Contactez le propriétaire du projet ou du groupe pour obtenir de l'aide."
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr "Vous n'avez pas la permission de voir cette épopée"
@@ -55478,6 +56528,9 @@ msgstr[1] "Vous avez %{pendingMembersCount} membres en attente qui nécessitent
msgid "You have already reported this user"
msgstr "Vous avez déjà signalé cet utilisateur"
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "Un accès de type %{access_level} vous a été accordé sur le %{source_link} %{source_type}."
@@ -55511,8 +56564,8 @@ msgstr "Vous ne disposez pas des permissions suffisantes pour configurer des pol
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr "Vous n'avez pas les autorisations suffisantes pour créer un pense-bête pour cette alerte"
-msgid "You have insufficient permissions to create a target branch rule"
-msgstr "Vous n'avez pas les permissions suffisantes pour créer une règle de branche cible"
+msgid "You have insufficient permissions to create a branch target"
+msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
msgstr "Vous n'avez pas les permissions suffisantes pour créer une intégration HTTP pour ce projet"
@@ -55523,8 +56576,8 @@ msgstr "Vous n'avez pas les autorisations suffisantes pour créer un calendrier
msgid "You have insufficient permissions to create organizations"
msgstr "Vous n'avez pas les permissions suffisantes pour créer des organisations"
-msgid "You have insufficient permissions to delete a target branch rule"
-msgstr "Vous n'avez pas les permissions suffisantes pour supprimer une règle de branche cible"
+msgid "You have insufficient permissions to delete a branch target"
+msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
msgstr "Vous n'avez pas les permissions suffisantes pour gérer les alertes de ce projet"
@@ -55556,6 +56609,9 @@ msgstr "Vous n'avez pas les permissions suffisantes pour définir des contacts d
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr "Vous n'avez pas les autorisations suffisantes pour créer un calendrier de gardes pour ce projet"
+msgid "You have insufficient permissions to update the organization"
+msgstr "Vous n’avez pas les permissions suffisantes pour mettre à jour l’organisation"
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "Vous n'avez pas les permissions suffisantes pour mettre à jour cette intégration HTTP"
@@ -55595,6 +56651,9 @@ msgstr "Vous pouvez maintenant fermer le jalon."
msgid "You must be authenticated to access this path."
msgstr "Vous devez être authentifié pour accéder à ce chemin."
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "Vous devez être connecté pour effectuer une recherche dans tout GitLab"
@@ -55807,6 +56866,9 @@ msgstr "Votre abonnement %{strong}%{plan_name}%{strong_close} pour %{strong}%{na
msgid "Your Activity"
msgstr "Votre activité"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr "La syntaxe de votre configuration CI/CD n'est pas valide. Sélectionnez l'onglet Valider pour plus de détails."
@@ -55819,6 +56881,9 @@ msgstr "Votre export CSV de %{count} depuis le projet %{project_link} a été aj
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr "Votre exportation CSV de %{exported_objects} depuis le projet %{project_name} (%{project_url}) a été ajoutée en pièce-jointe à ce courriel."
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr "Votre requête d'exportation CSV a réussi. Le résultat sera envoyé par courriel à %{email}."
@@ -55834,11 +56899,11 @@ msgstr "L'exportation CSV de votre chaîne de traçabilité pour le groupe %{gro
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr "Vos Rapports DevOps apportent une vue d'ensemble de la façon dont vous utilisez GitLab du point de vue des fonctionnalités. Utilisez-les pour voir comment vous vous situez vis-à-vis d'autres organisations, et pour que vos équipes se comparent entre elles."
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "Le groupe principal de votre forfait Gratuit,%{group_name}, compte plus de %{free_users_limit} utilisateurs et utilise plus %{free_storage_limit} de données. Une fois les limites d'utilisation appliquées aux groupes principaux du forfait Gratuit, les projets de ce groupe seront en %{read_only_link_start}mode lecture seule%{link_end}. Pour éviter que votre groupe ne passe en lecture seule, vous devez contacter un utilisateur ayant le rôle de Propriétaire pour ce groupe afin de passer à une édition payante ou de gérer votre utilisation. Pour plus d'informations sur les limites d'utilisation à venir, consultez notre %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
+msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "Le groupe principal de votre forfait Gratuit,%{group_name}, compte plus de %{free_users_limit} utilisateurs et utilise plus %{free_storage_limit} de données. Une fois les limites d'utilisation appliquées aux groupes principaux du forfait Gratuit, les projets de ce groupe seront en %{read_only_link_start}mode lecture seule%{link_end}. Vous devez réduire le nombre d'utilisateurs ou passer à une édition payante %{strong_start}avant%{strong_end} de gérer votre utilisation du stockage. Sinon, le groupe principal de votre forfait Gratuit sera immédiatement en lecture seule, car la limite de 5 utilisateurs s'applique. Pour en savoir plus, consultez notre %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
+msgstr ""
msgid "Your GPG keys"
msgstr "Vos clés GPG"
@@ -56040,6 +57105,9 @@ msgstr "Vos attributions de droits vont expirer dans %{days_to_expire} jours"
msgid "Your name"
msgstr "Votre nom"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr "Le stockage de votre espace de noms est plein. Cette demande de fusion ne peut pas être fusionnée. Pour continuer, %{link_start}gérez l’utilisation de votre stockage%{link_end}."
+
msgid "Your new %{accessTokenType}"
msgstr "Votre nouveau %{accessTokenType}"
@@ -56073,6 +57141,9 @@ msgstr "Vos projets"
msgid "Your public email will be displayed on your public profile."
msgstr "Votre adresse de courriel publique sera affichée sur votre profil public."
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr "Votre poussée sur ce dépôt a été rejetée car la limite de stockage de l‘espace de noms qui est de %{size_limit} aurait été dépassée. Réduisez le stockage utilisé sur votre espace de noms ou achetez-en davantage. Consultez %{manage_storage_url}. Pour en savoir plus sur les actions restreintes, consultez %{restricted_actions_url}"
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr "Votre demande d'accès n'a pas pu être traitée : %{error_message}"
@@ -56210,6 +57281,9 @@ msgstr "[Censuré]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr "[Prend en charge le GitLab Flavored Markdown, y compris les actions rapides]"
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr "« end_time » ne devrait pas dépasser « start_time » de plus d'un mois"
@@ -56441,12 +57515,12 @@ msgstr "ne peut pas être vide"
msgid "cannot be changed"
msgstr "ne peut pas être modifié"
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr "impossible à modifier en raison d'une association existante avec un rôle personnalisé"
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "ne peut pas être modifié si un projet personnel contient des étiquettes dans le registre de conteneurs."
-msgid "cannot be changed since member is associated with a custom role"
-msgstr "ne peut pas être modifié, car le membre est associé à un rôle personnalisé"
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr "ne peut pas passer à %{new_type} en cas d'association avec un parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr "%{degradedNum} dégradé(e)s"
msgid "ciReport|%{improvedNum} improved"
msgstr "%{improvedNum} amélioré(e)s"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr "%{linkStartTag}En savoir plus sur les rapports de qualité du code%{linkEndTag}"
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr "%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} dans %{path}"
@@ -56561,8 +57632,8 @@ msgstr "Analyser une version déployée de votre application Web à la recherche
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "Appliquer automatiquement le correctif dans une nouvelle branche"
-msgid "ciReport|Base pipeline codequality artifact not found"
-msgstr "Artéfact de qualité du code du pipeline de base introuvable"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr "Ouvre automatiquement une demande de fusion avec une solution générée par l’IA"
msgid "ciReport|Browser Performance"
msgstr "Performances du navigateur"
@@ -56599,19 +57670,6 @@ msgstr "L'analyse de qualité du code n'a pas changé."
msgid "ciReport|Code Quality is loading"
msgstr "L'analyse de qualité du code est en cours de chargement"
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] "La qualité de code s'est dégradée. Raison : 1 nouveau ticket"
-msgstr[1] "La qualité de code s'est dégradée. Raison : %d nouveaux tickets"
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] "La qualité de code s'est améliorée. Raison : 1 ticket résolu"
-msgstr[1] "La qualité de code s'est améliorée. Raison : %d tickets résolus"
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr "L'analyse de la qualité du code a détecté %{issueCount} changements dans les résultats fusionnés"
-
msgid "ciReport|Container Scanning"
msgstr "Analyse de conteneurs"
@@ -56731,15 +57789,18 @@ msgstr "Ajout manuel"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr "Les nouvelles vulnérabilités sont des vulnérabilités que l'analyse de sécurité a détectées dans la requête de fusion, mais qui sont différentes des vulnérabilités existantes dans la branche par défaut."
-msgid "ciReport|No changes to code quality"
-msgstr "Aucun changement dans la qualité du code"
-
msgid "ciReport|No code quality issues found"
msgstr "Aucun ticket de qualité du code n'a été trouvé"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr "L'analyse du schéma a échoué. Vérifiez la sortie produite par le scanner."
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr "Résoudre avec l'IA"
+
msgid "ciReport|Resolve with merge request"
msgstr "Résoudre avec une requête de fusion"
@@ -56797,9 +57858,6 @@ msgstr "Une erreur s'est produite lors du rejet de la vulnérabilité. Veuillez
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr "Une erreur s'est produite lors du rejet de la vulnérabilité : %{error}"
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr "Une erreur s'est produite lors de la récupération du rapport de qualité du code."
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "Une erreur s'est produite lors de l'annulation du rejet. Veuillez réessayer."
@@ -57259,6 +58317,9 @@ msgstr "n'est soit pas lié à un compte SAML, soit dispose d'une identité SCIM
msgid "is not one of"
msgstr "ne fait pas partie de"
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr "n'est pas valide. Le groupe des itérations doit correspondre au groupe des cadences d'itération."
@@ -57423,6 +58484,9 @@ msgstr "Modifications fusionnées dans %{targetBranch} avec %{mergeCommitSha}%{s
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "Les modifications n'ont pas été fusionnées dans %{targetBranch}."
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr "Marquer comme prête"
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr "La requête de fusion ne contient aucune modification"
@@ -57568,10 +58632,10 @@ msgid "mrWidget|Approve additionally"
msgstr "Approuver en complément"
msgid "mrWidget|Approve additionally with SAML"
-msgstr "Approuver en complément avec SAML"
+msgstr ""
msgid "mrWidget|Approve with SAML"
-msgstr "Approuver avec SAML"
+msgstr ""
msgid "mrWidget|Approved by"
msgstr "Approuvée par"
@@ -57760,6 +58824,18 @@ msgstr "doit être un paquet Debian"
msgid "must be a boolean value"
msgstr "doit être une valeur booléenne"
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr "doit être un groupe racine."
@@ -57805,6 +58881,9 @@ msgstr "doit être d'au moins 1 jour"
msgid "must be before %{expiry_date}"
msgstr "doit être antérieur(e) à %{expiry_date}"
+msgid "must be enabled."
+msgstr "doit être activé."
+
msgid "must be false when email confirmation setting is off"
msgstr "doit avoir la valeur Faux lorsque le paramètre de confirmation de l'adresse de courriel est désactivé"
@@ -57823,6 +58902,9 @@ msgstr "doit se trouver à l'intérieur d'un réseau de bifurcations"
msgid "must be less than the limit of %{tag_limit} tags"
msgstr "doit être inférieur à la limite de %{tag_limit} étiquettes"
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr "doit appartenir au groupe de l'entreprise de l'utilisateur"
@@ -57856,6 +58938,9 @@ msgstr "doit avoir un dépôt"
msgid "must have a valid format and be greater than or equal to zero."
msgstr "doit avoir un format valide et être supérieur ou égal à zéro."
+msgid "must have the 'enabled' flag set to true"
+msgstr "doit avoir le drapeau « enabled » défini à vrai"
+
msgid "must match %{association}.project_id"
msgstr "doit correspondre à %{association}.project_id"
@@ -58092,6 +59177,9 @@ msgstr "supprimer la date de début"
msgid "remove weight"
msgstr "supprimer le poids"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr "a supprimé un lien de type %{link_type}"
@@ -58120,9 +59208,6 @@ msgstr[1] "dépôts"
msgid "repository:"
msgstr "dépôt°:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr "le niveau d'accès de base du rôle ne correspond pas au niveau d'accès de l'attribution des droits"
-
msgid "rule"
msgid_plural "rules"
msgstr[0] "règle"
@@ -58295,6 +59380,9 @@ msgstr "scénario de test"
msgid "the correct format."
msgstr "le format correct."
+msgid "the custom role's base access level does not match the current access level"
+msgstr "le niveau d’accès de base du rôle personnalisé ne correspond pas au niveau d’accès actuel"
+
msgid "the following epics"
msgstr "les épopées suivantes"
@@ -58304,6 +59392,9 @@ msgstr "les tickets ou incidents suivants"
msgid "the following issues"
msgstr "les tickets suivants"
+msgid "the member access level can't be higher than the current user's one"
+msgstr "le niveau d’accès du membre ne peut pas être supérieur à celui de l’utilisateur actuel"
+
msgid "the wiki"
msgstr "le wiki"
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index e0c33088c41..0666d84dbe3 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -172,11 +172,6 @@ msgid_plural "%d authors"
msgstr[0] ""
msgstr[1] ""
-msgid "%d candidate"
-msgid_plural "%d candidates"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d changed file"
msgid_plural "%d changed files"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -588,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -779,9 +760,6 @@ msgstr ""
msgid "%{group_name} is approaching the limit of available seats"
msgstr ""
-msgid "%{group_name} uses group managed accounts. You need to create a new GitLab account which will be managed by %{group_name}."
-msgstr ""
-
msgid "%{group_name}&%{epic_iid} &middot; created %{epic_created} by %{author}"
msgstr ""
@@ -1284,6 +1262,12 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
+
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1353,6 +1337,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1439,6 +1426,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1803,9 +1796,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1911,9 +1901,6 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
-msgstr ""
-
msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
@@ -1938,10 +1925,25 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
msgid "AIPoweredSM|AI-powered features"
msgstr ""
-msgid "AIPoweredSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end}."
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
@@ -2069,6 +2071,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2114,6 +2119,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2435,6 +2443,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2909,6 +2923,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3047,9 +3064,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -4298,6 +4312,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4325,15 +4342,15 @@ msgstr ""
msgid "Admin|CI/CD"
msgstr ""
-msgid "Admin|Code Suggestions"
-msgstr ""
-
msgid "Admin|Credentials"
msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4451,15 +4468,18 @@ msgstr ""
msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
-msgstr ""
-
msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4808,6 +4828,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4892,6 +4921,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4958,6 +4990,9 @@ msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5009,9 +5044,6 @@ msgstr ""
msgid "Alternate support URL for Help page and Help dropdown."
msgstr ""
-msgid "Alternatively, you can convert your account to a managed account by the %{group_name} group."
-msgstr ""
-
msgid "Amazon EKS"
msgstr ""
@@ -5357,11 +5389,6 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "An error occurred while saving the settings."
msgstr ""
@@ -5580,6 +5607,9 @@ msgstr ""
msgid "Analytics|Custom events"
msgstr ""
+msgid "Analytics|DORA performers score for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Dashboard description"
msgstr ""
@@ -5811,9 +5841,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5910,6 +5937,9 @@ msgstr ""
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
+
msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
@@ -6512,6 +6542,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6527,9 +6560,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7403,6 +7433,9 @@ msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7529,6 +7562,12 @@ msgstr ""
msgid "Badges|Your badges"
msgstr ""
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr ""
@@ -7538,7 +7577,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7553,7 +7592,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -8015,6 +8054,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8045,13 +8087,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8069,10 +8111,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8113,12 +8155,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8140,7 +8176,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8333,12 +8372,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8357,9 +8390,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8369,18 +8399,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8393,51 +8417,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8446,6 +8446,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8467,9 +8470,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8563,6 +8563,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8572,6 +8575,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8638,15 +8653,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8704,6 +8731,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8722,6 +8755,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8734,6 +8770,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9507,16 +9546,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -10096,6 +10135,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10108,6 +10150,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10243,6 +10288,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10255,6 +10303,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10387,6 +10438,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10444,15 +10498,15 @@ msgstr ""
msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
-msgstr ""
-
msgid "CiCatalog|Search must be at least 3 characters"
msgstr ""
msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
msgstr ""
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
@@ -10465,6 +10519,9 @@ msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
msgstr ""
@@ -10483,6 +10540,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10573,6 +10633,15 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
msgstr ""
@@ -10702,6 +10771,12 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
@@ -11921,9 +11996,6 @@ msgstr ""
msgid "Code Review Analytics displays a table of open merge requests considered to be in code review. There are currently no merge requests in review for this project and/or filters."
msgstr ""
-msgid "Code Suggestions"
-msgstr ""
-
msgid "Code Suggestions add-on status"
msgstr ""
@@ -11981,6 +12053,18 @@ msgstr ""
msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
@@ -11990,25 +12074,19 @@ msgstr ""
msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
-msgstr ""
-
msgid "CodeSuggestionsSM|Code Suggestions"
msgstr ""
msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
-msgstr ""
-
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12017,22 +12095,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12041,9 +12119,6 @@ msgstr ""
msgid "CodeSuggestions|Subject to the %{terms_link_start}Testing Terms of Use%{link_end}. Code Suggestions uses third-party AI services."
msgstr ""
-msgid "CodeSuggestions|Subject to the %{terms_link_start}Testing Terms of Use%{link_end}. Code Suggestions uses third-party AI services.%{br}To start receiving Code Suggestions after enabling this feature, you must install and configure a %{ide_extension_link_start}supported IDE editor extension%{link_end}."
-msgstr ""
-
msgid "CodeownersValidation|An error occurred while loading the validation errors. Please try again later."
msgstr ""
@@ -12217,6 +12292,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12507,6 +12588,9 @@ msgstr ""
msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
msgid "Compliance Center Export|Export custody report"
msgstr ""
@@ -12522,6 +12606,9 @@ msgstr ""
msgid "Compliance Center Export|Export merge request violations as a CSV file."
msgstr ""
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
msgid "Compliance Center Export|Export violations report"
msgstr ""
@@ -13152,7 +13239,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13387,6 +13474,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13938,6 +14028,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14076,9 +14169,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14262,6 +14352,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14325,6 +14418,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14355,9 +14451,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14487,9 +14580,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14526,6 +14616,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14949,6 +15042,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15236,9 +15335,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15295,6 +15391,9 @@ msgstr ""
msgid "DORA4Metrics|Cycle time"
msgstr ""
+msgid "DORA4Metrics|DORA performers score"
+msgstr ""
+
msgid "DORA4Metrics|Date"
msgstr ""
@@ -15319,7 +15418,10 @@ msgstr ""
msgid "DORA4Metrics|Failed to generate forecast. Try again later. If the problem persists, consider %{linkStart}creating an issue%{linkEnd}."
msgstr ""
-msgid "DORA4Metrics|Failed to load DORA performance scores for Namespace: %{fullPath}"
+msgid "DORA4Metrics|Failed to load DORA performance scores for Group: %{fullPath}"
+msgstr ""
+
+msgid "DORA4Metrics|Failed to load Group: %{fullPath}"
msgstr ""
msgid "DORA4Metrics|Failed to load YAML config from Project: %{fullPath}"
@@ -15420,7 +15522,7 @@ msgstr ""
msgid "DORA4Metrics|Month to date"
msgstr ""
-msgid "DORA4Metrics|No data available for Namespace: %{fullPath}"
+msgid "DORA4Metrics|No data available for Group: %{fullPath}"
msgstr ""
msgid "DORA4Metrics|No incidents during this period"
@@ -15480,9 +15582,6 @@ msgstr ""
msgid "DORA4Metrics|This is a lower-bound approximation. Your group has too many issues and MRs to calculate in real time."
msgstr ""
-msgid "DORA4Metrics|This visualization is not supported for project namespaces."
-msgstr ""
-
msgid "DORA4Metrics|Time to Restore Service"
msgstr ""
@@ -15519,10 +15618,7 @@ msgstr ""
msgid "DORA4Metrics|Took more than 7 days to restore service when a service incident or a defect that impacts users occurs."
msgstr ""
-msgid "DORA4Metrics|Total projects (%{count}) with DORA performers score for %{groupName} group"
-msgstr ""
-
-msgid "DORA4Metrics|Total projects with DORA performers score"
+msgid "DORA4Metrics|Total projects (%{count}) with DORA metrics"
msgstr ""
msgid "DORA4Metrics|Value Streams Dashboard"
@@ -16162,6 +16258,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16484,17 +16583,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16564,6 +16652,9 @@ msgstr ""
msgid "Dependencies|Export as JSON"
msgstr ""
+msgid "Dependencies|Filtering unavailable"
+msgstr ""
+
msgid "Dependencies|Job failed to generate the dependency list"
msgstr ""
@@ -16588,6 +16679,9 @@ msgstr ""
msgid "Dependencies|Projects"
msgstr ""
+msgid "Dependencies|Search or filter dependencies..."
+msgstr ""
+
msgid "Dependencies|Software Bill of Materials (SBOM) based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
@@ -16606,15 +16700,24 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was a problem fetching vulnerabilities."
+msgstr ""
+
msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
msgstr ""
+msgid "Dependencies|This group exceeds the maximum number of 600 sub-groups. We cannot accurately filter or search the dependency list above this maximum. To view or filter a subset of this information, go to a subgroup's dependency list."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16960,9 +17063,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17633,6 +17733,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines."
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines."
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a generative AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key."
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or go to %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17762,6 +17907,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18066,6 +18214,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18294,6 +18445,12 @@ msgstr ""
msgid "Edit link"
msgstr ""
+msgid "Edit merge request"
+msgstr ""
+
+msgid "Edit page"
+msgstr ""
+
msgid "Edit project: %{project_name}"
msgstr ""
@@ -18564,6 +18721,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18747,6 +18907,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19740,6 +19903,9 @@ msgstr ""
msgid "EscalationStatus|Triggered"
msgstr ""
+msgid "Escape"
+msgstr ""
+
msgid "Estimate"
msgstr ""
@@ -19993,9 +20159,6 @@ msgstr ""
msgid "Existing projects will be able to use cleanup policies. Avoid enabling this if an external Container Registry is being used, as there is a performance risk if many images exist on one project."
msgstr ""
-msgid "Existing sign in methods may be removed"
-msgstr ""
-
msgid "Expand"
msgstr ""
@@ -20257,6 +20420,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20342,6 +20508,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20357,16 +20526,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20405,9 +20571,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20435,18 +20598,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20851,6 +21005,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21004,9 +21161,6 @@ msgstr ""
msgid "Finish review"
msgstr ""
-msgid "Finish setting up your dedicated account for %{group_name}."
-msgstr ""
-
msgid "Finished"
msgstr ""
@@ -21396,9 +21550,6 @@ msgstr ""
msgid "Full log"
msgstr ""
-msgid "Full name"
-msgstr ""
-
msgid "GCP region configured"
msgstr ""
@@ -21991,6 +22142,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22183,9 +22337,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22837,6 +22988,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22849,6 +23003,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22885,10 +23042,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23056,6 +23213,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23266,9 +23426,6 @@ msgstr ""
msgid "GroupSAML|Enforce SSO-only authentication for web activity for this group"
msgstr ""
-msgid "GroupSAML|Enforce users to have dedicated group-managed accounts for this group"
-msgstr ""
-
msgid "GroupSAML|Generate a SCIM token"
msgstr ""
@@ -23305,9 +23462,6 @@ msgstr ""
msgid "GroupSAML|No active SAML group links"
msgstr ""
-msgid "GroupSAML|Prohibit outer forks for this group"
-msgstr ""
-
msgid "GroupSAML|Reset SCIM token"
msgstr ""
@@ -23362,21 +23516,12 @@ msgstr ""
msgid "GroupSAML|This will be set as the access level of users added to the group."
msgstr ""
-msgid "GroupSAML|To be able to enable group-managed accounts, you first need to enable enforced SSO."
-msgstr ""
-
-msgid "GroupSAML|To be able to prohibit outer forks, you first need to enforce dedicate group managed accounts."
-msgstr ""
-
msgid "GroupSAML|Use SAML group links to manage group membership using SAML."
msgstr ""
msgid "GroupSAML|Valid SAML Response"
msgstr ""
-msgid "GroupSAML|With prohibit outer forks flag enabled group members will be able to fork project only inside your group."
-msgstr ""
-
msgid "GroupSAML|as %{access_level}"
msgstr ""
@@ -23419,6 +23564,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23440,6 +23588,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23482,6 +23633,9 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
@@ -23491,6 +23645,9 @@ msgstr ""
msgid "GroupSettings|Enforce SSH Certificates"
msgstr ""
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23542,7 +23699,10 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
-msgid "GroupSettings|Security policy custom CI Experiment"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
msgstr ""
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
@@ -23878,6 +24038,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23932,6 +24095,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24188,11 +24360,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24289,6 +24456,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24343,9 +24513,6 @@ msgstr ""
msgid "How to track time"
msgstr ""
-msgid "I accept the %{terms_link}"
-msgstr ""
-
msgid "I am sorry, I am unable to find what you are looking for."
msgstr ""
@@ -24379,6 +24546,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24504,6 +24674,9 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
msgid "IdentityVerification|Email update is only offered once."
msgstr ""
@@ -24573,6 +24746,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25693,9 +25869,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26633,13 +26806,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26800,6 +26973,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27247,6 +27423,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27922,6 +28101,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27964,6 +28146,15 @@ msgstr ""
msgid "KubernetesDashboard|Annotations"
msgstr ""
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
msgid "KubernetesDashboard|DaemonSet"
msgstr ""
@@ -27982,6 +28173,12 @@ msgstr ""
msgid "KubernetesDashboard|Failed"
msgstr ""
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
msgid "KubernetesDashboard|Kind"
msgstr ""
@@ -28024,6 +28221,12 @@ msgstr ""
msgid "KubernetesDashboard|Running"
msgstr ""
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
msgid "KubernetesDashboard|StatefulSet"
msgstr ""
@@ -28036,6 +28239,9 @@ msgstr ""
msgid "KubernetesDashboard|Succeeded"
msgstr ""
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
msgid "KubernetesDashboard|View projects"
msgstr ""
@@ -28137,6 +28343,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28196,6 +28408,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28480,9 +28695,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28783,6 +28995,9 @@ msgstr ""
msgid "Limit the number of pipeline creation requests per minute. This limit includes pipelines created through the UI, the API, and by background processing."
msgstr ""
+msgid "Limit the number of project or group members a user can delete per minute through API requests."
+msgstr ""
+
msgid "Limit the size of Sidekiq jobs stored in Redis."
msgstr ""
@@ -29652,6 +29867,9 @@ msgstr ""
msgid "Maximum requests per minute"
msgstr ""
+msgid "Maximum requests per minute per group / project"
+msgstr ""
+
msgid "Maximum running slices"
msgstr ""
@@ -29730,7 +29948,7 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
msgid "MemberRole|Actions"
@@ -29775,10 +29993,16 @@ msgstr ""
msgid "MemberRole|Failed to create role."
msgstr ""
+msgid "MemberRole|Failed to create role: %{message}"
+msgstr ""
+
msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRole|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role: %{message}"
+msgstr ""
+
+msgid "MemberRole|Failed to fetch roles: %{message}"
msgstr ""
msgid "MemberRole|ID"
@@ -29826,7 +30050,7 @@ msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29841,6 +30065,9 @@ msgstr ""
msgid "Members"
msgstr ""
+msgid "Members API rate limit"
+msgstr ""
+
msgid "Members can be added by project %{i_open}Maintainers%{i_close} or %{i_open}Owners%{i_close}"
msgstr ""
@@ -30123,6 +30350,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30603,6 +30833,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31020,6 +31253,9 @@ msgstr[1] ""
msgid "MlModelRegistry|Add a model"
msgstr ""
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
msgid "MlModelRegistry|Artifacts"
msgstr ""
@@ -31029,9 +31265,21 @@ msgstr ""
msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
msgid "MlModelRegistry|Create a model version"
msgstr ""
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr ""
@@ -31068,6 +31316,9 @@ msgstr ""
msgid "MlModelRegistry|Model registry"
msgstr ""
+msgid "MlModelRegistry|New model"
+msgstr ""
+
msgid "MlModelRegistry|No description provided"
msgstr ""
@@ -31127,9 +31378,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31696,9 +31953,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31711,9 +31965,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32142,15 +32393,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32256,6 +32507,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32411,6 +32665,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32447,6 +32704,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32659,6 +32919,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32707,6 +32973,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32737,16 +33009,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -33097,6 +33366,12 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
+msgid "OWASP Top 10 2017"
+msgstr ""
+
+msgid "OWASP Top 10 2021"
+msgstr ""
+
msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
@@ -33650,9 +33925,6 @@ msgstr ""
msgid "Only policy:"
msgstr ""
-msgid "Only proceed if you trust %{idp_url} to control your GitLab account sign in."
-msgstr ""
-
msgid "Only project members can comment."
msgstr ""
@@ -33884,6 +34156,12 @@ msgstr ""
msgid "Organization|Organization URL successfully changed."
msgstr ""
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
+msgstr ""
+
msgid "Organization|Organization name"
msgstr ""
@@ -34028,6 +34306,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34097,6 +34435,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34447,6 +34788,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34471,6 +34818,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34489,6 +34839,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34594,6 +34947,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34735,6 +35091,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34882,6 +35241,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35026,6 +35388,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35443,12 +35808,39 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while deleting this pipeline subscription."
+msgstr ""
+
msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
msgstr ""
msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
msgstr ""
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscription for this project will be removed. Do you want to continue?"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscription successfully deleted."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35527,9 +35919,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -36763,6 +37152,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36871,6 +37263,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36991,7 +37386,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -38601,6 +38996,11 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -39298,12 +39698,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39430,6 +39836,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39873,9 +40282,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40109,6 +40515,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40169,6 +40578,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40352,6 +40764,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40913,6 +41328,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40971,7 +41389,7 @@ msgstr[1] ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Requires your primary or verified secondary GitLab email address."
@@ -41166,11 +41584,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -41284,9 +41697,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41624,6 +42034,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41898,6 +42311,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42027,9 +42443,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42256,9 +42669,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42271,9 +42699,6 @@ msgstr ""
msgid "SAML SSO"
msgstr ""
-msgid "SAML SSO for %{group_name}"
-msgstr ""
-
msgid "SAML discovery tokens"
msgstr ""
@@ -42703,7 +43128,7 @@ msgstr ""
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42763,7 +43188,7 @@ msgstr ""
msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42955,9 +43380,6 @@ msgstr ""
msgid "Search or filter commits"
msgstr ""
-msgid "Search or filter dependencies..."
-msgstr ""
-
msgid "Search or filter results…"
msgstr ""
@@ -43112,6 +43534,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43208,6 +43633,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43397,6 +43825,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43457,6 +43888,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43592,6 +44026,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43607,6 +44044,9 @@ msgstr ""
msgid "SecurityOrchestration|Hide extra items"
msgstr ""
+msgid "SecurityOrchestration|Hide extra projects"
+msgstr ""
+
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
msgstr ""
@@ -43667,6 +44107,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43783,6 +44226,9 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
@@ -43825,6 +44271,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43858,6 +44310,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43951,6 +44409,18 @@ msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44382,6 +44852,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44760,6 +45233,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -45252,9 +45728,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45270,6 +45743,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45348,11 +45824,6 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
@@ -45365,12 +45836,21 @@ msgstr ""
msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
msgid "Settings|Run customized CI YAML file as security policy actions"
msgstr ""
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45691,9 +46171,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45706,18 +46183,12 @@ msgstr ""
msgid "Sign out"
msgstr ""
-msgid "Sign out & Register"
-msgstr ""
-
msgid "Sign up"
msgstr ""
msgid "Sign up for your free trial with:"
msgstr ""
-msgid "Sign up was successful! Please confirm your email to sign in."
-msgstr ""
-
msgid "Sign-in and Help page"
msgstr ""
@@ -45748,12 +46219,6 @@ msgstr ""
msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Statement%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Statement%{link_end}"
-msgstr ""
-
msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
@@ -46519,9 +46984,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46555,12 +47017,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -48091,21 +48547,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48587,6 +49028,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48614,6 +49058,9 @@ msgstr ""
msgid "The authentication token."
msgstr ""
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -49131,10 +49578,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49503,6 +49950,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49638,6 +50088,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49830,9 +50283,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49977,12 +50427,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50031,6 +50475,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50829,6 +51278,9 @@ msgstr ""
msgid "Today"
msgstr ""
+msgid "Todos| What actions create to-do items?"
+msgstr ""
+
msgid "Todos|Added"
msgstr ""
@@ -50841,9 +51293,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50901,6 +51350,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50982,7 +51434,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51009,10 +51461,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51152,7 +51604,34 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%d error"
+msgid_plural "Tracing|%d errors"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%d match"
+msgid_plural "Tracing|%d matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%d span"
+msgid_plural "Tracing|%d spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
+msgstr ""
+
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
msgstr ""
msgid "Tracing|Attribute"
@@ -51287,9 +51766,6 @@ msgstr ""
msgid "Transfer group to another parent group."
msgstr ""
-msgid "Transfer ownership"
-msgstr ""
-
msgid "Transfer project"
msgstr ""
@@ -51356,27 +51832,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51392,9 +51847,6 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
@@ -51407,15 +51859,9 @@ msgstr ""
msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|Trials benefits"
-msgstr ""
-
msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
-msgstr ""
-
msgid "Trials|You can apply your trial to a new group or an existing group."
msgstr ""
@@ -51631,15 +52077,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51943,6 +52404,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52243,6 +52707,9 @@ msgstr ""
msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
msgstr ""
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
+msgstr ""
+
msgid "UsageQuota|Any additional purchased storage will be displayed here."
msgstr ""
@@ -52255,9 +52722,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52279,6 +52743,9 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
msgid "UsageQuota|Filter charts by year"
msgstr ""
@@ -52315,7 +52782,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52381,9 +52848,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52633,9 +53097,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52648,6 +53109,9 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
msgstr ""
@@ -52824,6 +53288,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53422,12 +53889,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53628,6 +54089,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53660,6 +54124,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53807,6 +54274,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -55213,9 +55683,15 @@ msgstr ""
msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
msgstr ""
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55267,7 +55743,7 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
@@ -55432,7 +55908,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55531,7 +56007,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55641,9 +56117,6 @@ msgstr ""
msgid "You are about to incur additional charges"
msgstr ""
-msgid "You are about to transfer the control of your account to %{group_name} group. This action is NOT reversible, you won't be able to access any of your groups and projects outside of %{group_name} once this transfer is complete."
-msgstr ""
-
msgid "You are already a member of this %{member_source}."
msgstr ""
@@ -55989,10 +56462,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56043,10 +56516,10 @@ msgstr ""
msgid "You don't have any recent searches"
msgstr ""
-msgid "You don't have permission to add email participants."
+msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
-msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
+msgid "You don't have permission to manage email participants."
msgstr ""
msgid "You don't have permission to view this epic"
@@ -56114,7 +56587,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56126,7 +56599,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56273,9 +56746,6 @@ msgstr ""
msgid "You tried to fork %{link_to_the_project} but it failed for the following reason:"
msgstr ""
-msgid "You will be removed from existing projects/groups"
-msgstr ""
-
msgid "You will be the author of all events in the activity feed that are the result of an update, like new branches being created or new commits being pushed to existing branches."
msgstr ""
@@ -56309,9 +56779,6 @@ msgstr ""
msgid "You'll be charged for %{true_up_start}users over license%{true_up_end} on a quarterly or annual basis, depending on the terms of your agreement."
msgstr ""
-msgid "You'll be signed out from your current account automatically."
-msgstr ""
-
msgid "You'll need to use different branch names to get a valid comparison."
msgstr ""
@@ -56461,6 +56928,9 @@ msgstr ""
msgid "Your GPG keys"
msgstr ""
+msgid "Your GitHub access token does not have the correct scope to import collaborators."
+msgstr ""
+
msgid "Your GitLab account has been locked due to an excessive number of unsuccessful sign in attempts. You can wait for your account to automatically unlock in %{duration} or you can click the link below to unlock now."
msgstr ""
@@ -56834,6 +57304,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -58727,6 +59200,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
diff --git a/locale/gl_ES/gitlab.po b/locale/gl_ES/gitlab.po
index 11e1d94049a..8e1498bca9c 100644
--- a/locale/gl_ES/gitlab.po
+++ b/locale/gl_ES/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: gl\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr " %{start} a %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/he_IL/gitlab.po b/locale/he_IL/gitlab.po
index 57f59a07ef8..438085f9ba2 100644
--- a/locale/he_IL/gitlab.po
+++ b/locale/he_IL/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: he\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -201,13 +201,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -250,13 +243,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -299,13 +285,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -418,6 +397,13 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -721,6 +707,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -767,15 +756,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -909,12 +889,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -951,6 +925,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1125,6 +1102,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1408,6 +1391,9 @@ msgstr[3] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1517,7 +1503,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1532,6 +1521,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1586,6 +1578,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1619,9 +1617,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr "(×ין שינויי×)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1677,9 +1693,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1710,7 +1723,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2078,9 +2091,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,7 +2196,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr ""
msgid "Add approvers"
msgstr "הוספת מ×שרי×"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3312,9 +3361,6 @@ msgstr "הוספת הצעה ל×וסף"
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "הוספת טקסט לעמוד הכניסה. ×פשר Markdown."
@@ -3468,15 +3514,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr "ניהול"
-
msgid "Admin Area"
msgstr "×זור ניהול"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "מצב ניהול"
+
msgid "Admin Note"
msgstr "הערות הנהלה"
@@ -3486,9 +3532,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4560,6 +4609,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4593,6 +4645,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4704,18 +4759,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5064,6 +5125,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "הכול"
@@ -5094,9 +5164,6 @@ msgstr ""
msgid "All environments"
msgstr "כל הסביבות"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5208,12 +5278,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5235,9 +5311,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr "כמעט סיימנו"
@@ -5298,9 +5371,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5316,9 +5386,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5394,9 +5461,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5625,12 +5689,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6131,6 +6200,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,16 +6233,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6170,9 +6257,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6714,9 +6798,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6780,6 +6861,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6795,9 +6879,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7023,6 +7101,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,13 +7228,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7647,12 +7737,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7677,12 +7761,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7734,9 +7824,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7749,9 +7836,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7797,16 +7890,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7818,7 +7914,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7833,7 +7929,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7938,9 +8034,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8758,9 +8815,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8854,6 +8908,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8863,6 +8920,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8929,15 +8998,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9013,6 +9100,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9025,6 +9115,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9325,6 +9418,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9358,9 +9457,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,16 +9478,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9451,7 +9574,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,16 +9893,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10244,6 +10367,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10360,6 +10486,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10372,6 +10501,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10444,6 +10579,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10501,6 +10639,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10582,9 +10726,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,25 +10843,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10816,6 +10984,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10903,13 +11083,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10933,10 +11122,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11168,9 +11369,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12382,6 +12598,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12430,6 +12649,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12710,13 +12935,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,10 +13022,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12773,9 +13040,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12788,6 +13061,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13292,7 +13598,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14069,7 +14381,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14081,6 +14393,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14144,6 +14459,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14216,9 +14534,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14402,6 +14717,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14495,9 +14816,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14627,9 +14945,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14876,6 +15194,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15086,6 +15407,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15375,9 +15702,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15716,6 +16040,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16632,19 +16962,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16786,9 +17109,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16834,18 +17157,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16855,6 +17187,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17107,9 +17442,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17919,6 +18296,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18227,6 +18607,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18518,6 +18901,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18584,6 +18970,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18680,6 +19069,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18716,6 +19108,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18731,9 +19126,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19217,6 +19612,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19319,15 +19717,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20428,6 +20811,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20517,6 +20903,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20532,16 +20921,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20730,6 +21104,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21025,6 +21402,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21976,12 +22356,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21991,12 +22365,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22105,12 +22473,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22510,7 +22875,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,22 +23070,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22780,6 +23145,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,16 +23169,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22852,9 +23214,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22969,9 +23328,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23053,6 +23412,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23263,6 +23622,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23356,10 +23718,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23644,6 +24012,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23686,12 +24057,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,7 +24339,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24094,6 +24462,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Hide values"
msgstr ""
@@ -24433,6 +24806,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,7 +25104,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24797,6 +25179,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25090,9 +25475,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26523,10 +26908,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26853,13 +27238,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26964,6 +27349,13 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27964,6 +28376,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28084,9 +28499,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28123,6 +28535,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28153,6 +28568,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28250,6 +28779,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28293,7 +28828,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28311,6 +28846,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28630,6 +29165,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28858,7 +29393,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29168,39 +29703,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29894,100 +30396,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30704,15 +31215,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30722,15 +31227,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30743,9 +31242,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30782,6 +31278,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31104,9 +31609,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,102 +31657,153 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31846,9 +32408,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31861,9 +32420,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32408,6 +32964,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32610,6 +33163,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32728,6 +33284,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32827,6 +33386,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32875,6 +33440,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32905,16 +33476,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32986,6 +33557,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33076,6 +33650,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33091,6 +33668,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33103,7 +33683,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33858,9 +34459,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34230,6 +34909,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34600,6 +35294,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34618,6 +35315,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34684,6 +35384,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34861,6 +35567,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35008,6 +35717,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35152,6 +35864,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35653,9 +36386,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35728,6 +36458,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35764,6 +36497,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,7 +37850,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37474,7 +38216,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37781,7 +38523,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37808,10 +38550,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38030,6 +38787,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38282,6 +39042,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38699,29 +39462,12 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38756,6 +39502,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38819,6 +39568,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39418,12 +40170,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39505,9 +40263,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40179,6 +40934,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40233,6 +40991,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40293,6 +41054,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40473,6 +41240,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40599,9 +41366,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41312,13 +42076,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Reveal values"
msgstr ""
@@ -41365,6 +42122,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41775,6 +42538,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42053,6 +42819,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,9 +42951,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42415,9 +43181,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42589,9 +43370,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42679,6 +43493,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43251,6 +44074,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,7 +44263,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44311,12 +45260,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44453,6 +45396,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45796,19 +46765,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46108,6 +47071,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46567,9 +47536,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46582,7 +47548,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46603,12 +47569,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46804,6 +47764,13 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47104,9 +48071,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47837,9 +48801,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48117,9 +49081,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48442,6 +49397,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48638,6 +49596,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,16 +49686,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48985,6 +49955,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49123,6 +50096,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,13 +50150,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49867,9 +50855,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50869,7 +51855,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50944,6 +51927,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51022,7 +52011,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51052,10 +52038,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51693,15 +52660,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,7 +52936,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52326,13 +53323,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52683,12 +53677,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53323,22 +54323,42 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53548,9 +54562,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55140,6 +56160,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55309,12 +56347,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55648,6 +56698,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56223,6 +57285,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56705,6 +57779,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,10 +58161,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57385,15 +58445,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57451,9 +58514,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58816,9 +59906,6 @@ msgstr[3] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59004,6 +60094,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/hi_IN/gitlab.po b/locale/hi_IN/gitlab.po
index cd3b3eea580..5cd0b3a1922 100644
--- a/locale/hi_IN/gitlab.po
+++ b/locale/hi_IN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: hi\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/hr_HR/gitlab.po b/locale/hr_HR/gitlab.po
index 85070559be5..2049820ebcf 100644
--- a/locale/hr_HR/gitlab.po
+++ b/locale/hr_HR/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: hr\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -184,12 +184,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -226,12 +220,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -268,12 +256,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -370,6 +352,12 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -634,6 +622,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -676,15 +667,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -808,12 +790,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -850,6 +826,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1024,6 +1003,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1297,6 +1282,9 @@ msgstr[2] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1396,7 +1384,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1411,6 +1402,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1465,6 +1459,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1483,6 +1480,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1498,9 +1498,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1537,6 +1549,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1555,9 +1573,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1588,7 +1603,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1930,9 +1945,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2038,7 +2050,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2062,6 +2074,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2161,9 +2200,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2185,6 +2221,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2230,6 +2269,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2551,6 +2593,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3025,6 +3073,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3163,9 +3214,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3319,15 +3367,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3337,9 +3385,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3697,6 +3742,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3793,6 +3841,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4411,6 +4462,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4444,6 +4498,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4555,18 +4612,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4915,6 +4978,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4945,9 +5017,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5002,6 +5071,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5059,12 +5131,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5086,9 +5164,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5149,9 +5224,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5167,9 +5239,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5245,9 +5314,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5476,11 +5542,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5647,6 +5710,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5755,6 +5821,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5863,6 +5932,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5875,16 +5947,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5917,9 +5992,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5980,6 +6052,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5992,16 +6085,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6019,9 +6109,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6553,9 +6640,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6619,6 +6703,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6634,9 +6721,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6838,9 +6922,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6856,6 +6937,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6979,13 +7063,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7081,7 +7162,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7159,6 +7240,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7195,6 +7279,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7288,6 +7378,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7477,12 +7570,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7507,12 +7594,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7564,9 +7657,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7579,9 +7669,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7591,9 +7678,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7627,16 +7723,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7648,7 +7747,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7663,7 +7762,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7768,9 +7867,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8128,6 +8224,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8158,13 +8257,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8182,10 +8281,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8227,12 +8326,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8254,7 +8347,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8449,12 +8545,6 @@ msgstr[2] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8473,9 +8563,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8485,18 +8572,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8509,51 +8590,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8563,6 +8620,9 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8584,9 +8644,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8680,6 +8737,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8689,6 +8749,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8755,15 +8827,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8821,6 +8905,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8839,6 +8929,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8851,6 +8944,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9151,6 +9247,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9184,9 +9286,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9196,16 +9307,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9223,6 +9343,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9277,7 +9403,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9340,9 +9469,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9484,6 +9610,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9505,6 +9634,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9568,18 +9703,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9598,16 +9721,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9619,6 +9742,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10069,6 +10195,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10183,6 +10312,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10195,6 +10327,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10207,6 +10342,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10267,6 +10405,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10324,6 +10465,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10336,6 +10480,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10405,9 +10552,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10471,6 +10615,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10489,7 +10636,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10501,18 +10651,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10522,25 +10669,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10549,6 +10717,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10639,6 +10810,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10726,13 +10909,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10756,10 +10948,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10990,9 +11194,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12028,16 +12229,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12046,7 +12265,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12055,22 +12274,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12202,6 +12421,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12250,6 +12472,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12529,13 +12757,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12553,6 +12817,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12565,6 +12832,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12574,10 +12844,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12592,9 +12862,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12607,6 +12883,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12637,9 +12916,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12658,12 +12943,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12781,6 +13072,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12841,6 +13135,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12868,7 +13168,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13021,6 +13327,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13111,7 +13420,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13348,6 +13657,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13534,6 +13846,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13885,7 +14200,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13897,6 +14212,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13960,6 +14278,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14032,9 +14353,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14218,6 +14536,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14281,6 +14602,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14311,9 +14635,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14443,9 +14764,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14482,6 +14800,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14692,6 +15013,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14902,6 +15226,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15190,9 +15520,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15223,6 +15550,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15493,9 +15823,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15529,6 +15856,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15610,6 +15940,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15787,9 +16120,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15802,7 +16132,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16117,6 +16447,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16441,18 +16774,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16567,12 +16888,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16591,9 +16918,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16603,6 +16927,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16639,18 +16966,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16660,6 +16996,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16909,9 +17248,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17584,6 +17920,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17716,6 +18097,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18022,6 +18406,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18313,6 +18700,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18379,6 +18769,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18475,6 +18868,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18511,6 +18907,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18526,9 +18925,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18592,6 +18988,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18607,9 +19006,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18697,6 +19093,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19012,6 +19411,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19114,15 +19516,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19135,9 +19534,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19153,9 +19549,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19165,9 +19558,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19183,10 +19573,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20092,9 +20482,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20221,6 +20608,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20308,6 +20698,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20323,16 +20716,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20371,9 +20761,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20401,18 +20788,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20521,6 +20899,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20815,6 +21196,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21094,9 +21478,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21418,6 +21799,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21763,12 +22147,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21778,12 +22156,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21892,12 +22264,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21955,9 +22321,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21979,6 +22342,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22066,9 +22432,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22165,9 +22537,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22297,7 +22666,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22315,7 +22684,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22492,22 +22861,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22567,6 +22936,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22588,16 +22960,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22627,9 +22996,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22639,9 +23005,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22756,9 +23119,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22828,6 +23188,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22840,6 +23203,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22876,10 +23242,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22909,9 +23275,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23050,6 +23413,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23143,10 +23509,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23410,6 +23779,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23431,6 +23803,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23473,12 +23848,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23503,6 +23887,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23527,6 +23914,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23569,6 +23962,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23632,30 +24028,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23716,7 +24088,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23758,7 +24130,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23881,6 +24253,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23935,6 +24310,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24193,12 +24577,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Hide values"
msgstr ""
@@ -24217,6 +24595,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24292,6 +24673,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24382,6 +24766,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24478,9 +24865,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24496,7 +24880,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24508,7 +24892,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24580,6 +24967,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24871,9 +25261,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25051,10 +25438,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25069,6 +25456,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25084,6 +25474,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25570,6 +25963,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25699,9 +26095,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26089,9 +26482,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26299,10 +26689,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26629,13 +27019,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26740,6 +27130,12 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26749,11 +27145,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26794,6 +27187,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26923,6 +27319,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27052,6 +27451,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27121,15 +27523,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27181,6 +27583,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27229,6 +27637,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27388,7 +27799,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27658,6 +28069,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27667,6 +28081,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27739,6 +28156,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27859,9 +28279,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27898,6 +28315,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27928,6 +28348,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28024,6 +28558,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28066,7 +28606,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28084,6 +28624,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28369,9 +28912,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28402,6 +28942,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28417,9 +28960,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28624,7 +29164,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28804,9 +29344,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28840,6 +29377,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28933,39 +29473,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28993,12 +29509,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29053,9 +29563,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29659,100 +30166,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30052,6 +30562,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30433,6 +30946,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30466,15 +30982,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30484,15 +30994,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30505,9 +31009,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30544,6 +31045,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30769,9 +31273,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30865,9 +31375,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30883,6 +31390,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30913,100 +31423,151 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31033,9 +31594,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31603,9 +32170,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31618,9 +32182,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32050,15 +32611,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32164,6 +32725,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32311,18 +32875,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32332,6 +32884,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32347,6 +32902,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32365,6 +32923,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32479,6 +33040,9 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32578,6 +33142,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32626,6 +33196,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32656,16 +33232,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32713,6 +33286,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32737,6 +33313,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32827,6 +33406,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32842,6 +33424,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32854,7 +33439,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32983,6 +33568,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33001,27 +33589,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33568,9 +34177,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33607,9 +34213,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33700,6 +34303,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33718,6 +34324,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33766,7 +34378,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33793,6 +34414,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33910,6 +34534,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33979,6 +34663,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34054,6 +34741,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34264,6 +34954,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34324,6 +35017,12 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34348,6 +35047,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34366,6 +35068,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34432,6 +35137,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34468,6 +35176,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34609,6 +35320,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34756,6 +35470,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34900,6 +35617,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35317,6 +36037,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35377,12 +36121,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35401,9 +36139,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35476,6 +36211,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35512,6 +36250,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36430,9 +37174,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36628,6 +37369,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36736,6 +37480,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36856,7 +37603,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37222,7 +37969,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37528,7 +38275,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37555,10 +38302,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37777,6 +38539,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37864,9 +38629,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37984,6 +38746,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38029,6 +38794,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38446,29 +39214,11 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38503,6 +39253,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38566,6 +39319,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39163,12 +39919,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39250,9 +40012,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39298,6 +40057,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39742,9 +40504,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39922,6 +40681,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39976,6 +40738,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40036,6 +40801,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40138,6 +40906,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40216,6 +40987,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40273,9 +41047,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40342,9 +41113,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40789,6 +41557,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40852,7 +41623,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40921,9 +41692,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41047,12 +41815,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Reveal values"
msgstr ""
@@ -41098,6 +41860,15 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41158,9 +41929,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41503,6 +42271,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41779,6 +42550,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41899,7 +42673,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41908,9 +42682,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42139,9 +42910,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42313,9 +43099,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42334,6 +43129,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42355,21 +43153,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42394,6 +43210,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42403,6 +43222,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42418,6 +43240,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42478,9 +43303,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42532,34 +43354,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42586,15 +43399,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42607,7 +43414,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42760,6 +43585,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42964,6 +43792,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42973,6 +43804,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43030,6 +43891,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43117,7 +43981,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43219,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43228,6 +44095,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43246,12 +44122,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43264,6 +44146,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43294,6 +44179,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43306,10 +44194,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43318,6 +44206,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43390,6 +44284,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43402,7 +44299,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43417,6 +44317,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43432,6 +44335,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43459,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43486,6 +44395,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43573,12 +44485,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43612,6 +44530,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43645,6 +44569,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43729,12 +44659,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43771,6 +44716,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43957,6 +44905,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44008,6 +44959,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44023,12 +44977,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44164,6 +45112,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44263,6 +45214,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44530,6 +45493,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44692,9 +45658,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44734,6 +45706,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44794,7 +45772,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44803,6 +45784,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45001,9 +45988,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45019,6 +46003,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45097,21 +46084,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45169,27 +46168,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45454,9 +46432,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45505,19 +46480,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45817,6 +46786,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45874,6 +46846,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45934,7 +46909,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46276,9 +47251,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46291,7 +47263,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46312,12 +47284,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46513,6 +47479,12 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46813,9 +47785,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46897,9 +47866,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46996,6 +47962,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47545,9 +48514,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47818,15 +48784,24 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47842,21 +48817,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48145,6 +49105,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48340,6 +49303,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48364,6 +49330,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48382,9 +49354,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48424,16 +49393,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48685,6 +49660,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48823,6 +49801,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48874,13 +49855,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49051,6 +50029,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49246,6 +50227,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49336,9 +50320,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49375,6 +50365,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49567,9 +50560,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49714,12 +50704,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49768,6 +50752,12 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50413,9 +51403,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50461,6 +51448,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50566,7 +51556,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50581,9 +51571,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50641,6 +51628,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50677,6 +51667,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50719,7 +51712,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50731,9 +51724,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50749,10 +51739,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50794,18 +51784,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50875,6 +51853,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50899,16 +51883,37 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50968,10 +51973,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51106,27 +52111,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51142,28 +52126,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51307,12 +52282,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51388,15 +52357,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51562,9 +52546,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51640,7 +52633,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51691,6 +52684,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51844,6 +52840,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51982,7 +52981,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51997,9 +52999,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52021,13 +53020,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52060,7 +53059,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52099,7 +53098,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52126,9 +53125,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52378,12 +53374,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52396,6 +53386,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52462,6 +53458,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52567,6 +53566,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53017,22 +54019,37 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53050,6 +54067,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53152,15 +54172,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53242,9 +54253,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53263,15 +54271,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53371,6 +54373,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53404,6 +54409,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53479,6 +54487,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53548,6 +54559,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54328,6 +55342,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54829,6 +55846,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54853,6 +55873,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54898,6 +55921,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54934,15 +55960,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54973,9 +56011,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54997,12 +56032,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55018,6 +56056,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55027,9 +56068,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55159,7 +56197,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55177,6 +56215,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55255,7 +56296,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55309,6 +56350,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55336,6 +56383,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55705,10 +56755,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55762,6 +56812,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55792,6 +56845,9 @@ msgstr[2] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55825,7 +56881,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55837,7 +56893,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55870,6 +56926,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55909,6 +56968,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56122,6 +57184,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56134,6 +57199,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56149,10 +57217,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56356,6 +57424,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56389,6 +57460,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56527,6 +57601,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56761,10 +57838,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56839,9 +57916,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56884,7 +57958,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56923,21 +57997,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57058,15 +58117,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57124,9 +58186,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57595,6 +58654,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57763,6 +58825,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58102,6 +59167,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58147,6 +59224,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58165,6 +59245,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58198,6 +59281,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58438,6 +59524,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58468,9 +59557,6 @@ msgstr[2] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58645,6 +59731,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58654,6 +59743,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/hu_HU/gitlab.po b/locale/hu_HU/gitlab.po
index a9fe89d181e..53ca3b3c307 100644
--- a/locale/hu_HU/gitlab.po
+++ b/locale/hu_HU/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: hu\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/hy_AM/gitlab.po b/locale/hy_AM/gitlab.po
index d407a74cba7..ddb17677054 100644
--- a/locale/hy_AM/gitlab.po
+++ b/locale/hy_AM/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: hy-AM\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/id_ID/gitlab.po b/locale/id_ID/gitlab.po
index a5fd077cae0..eb2d20360b6 100644
--- a/locale/id_ID/gitlab.po
+++ b/locale/id_ID/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: id\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -460,6 +452,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -494,15 +489,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -606,12 +592,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -648,6 +628,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -822,6 +805,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1075,6 +1064,9 @@ msgstr[0] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1154,7 +1146,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1169,6 +1164,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1223,6 +1221,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1241,6 +1242,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1256,9 +1260,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1293,6 +1309,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1311,9 +1333,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1344,7 +1363,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1634,9 +1653,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1742,7 +1758,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -1865,9 +1908,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -1887,6 +1927,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -1932,6 +1975,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2253,6 +2299,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2727,6 +2779,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -2865,9 +2920,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3021,15 +3073,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3039,9 +3091,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3399,6 +3448,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3495,6 +3547,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4113,6 +4168,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4146,6 +4204,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4257,18 +4318,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4617,6 +4684,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4647,9 +4723,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4761,12 +4837,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4788,9 +4870,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -4851,9 +4930,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -4869,9 +4945,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -4947,9 +5020,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5178,9 +5248,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5345,6 +5414,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5453,6 +5525,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5561,6 +5636,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5573,16 +5651,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5615,9 +5696,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5678,6 +5756,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5690,16 +5789,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5717,9 +5813,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6231,9 +6324,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6297,6 +6387,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6312,9 +6405,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6504,9 +6594,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6522,6 +6609,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6643,13 +6733,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6741,7 +6828,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6819,6 +6906,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -6948,6 +7044,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7137,12 +7236,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7167,12 +7260,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7224,9 +7323,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7239,9 +7335,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7251,9 +7344,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7287,16 +7389,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr ""
+
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Bamboo build plan key (for example, `KEY`)."
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7308,7 +7413,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7323,7 +7428,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7428,9 +7533,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7788,6 +7890,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7818,13 +7923,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -7842,10 +7947,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -7885,12 +7990,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -7912,7 +8011,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8103,12 +8205,6 @@ msgstr[0] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8127,9 +8223,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8139,18 +8232,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8163,51 +8250,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8236,9 +8302,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8332,6 +8395,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8341,6 +8407,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8407,15 +8485,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8473,6 +8563,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8491,6 +8587,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8503,6 +8602,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8803,6 +8905,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -8836,9 +8944,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -8848,16 +8965,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -8875,6 +9001,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -8929,7 +9061,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -8992,9 +9127,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9134,6 +9266,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9155,6 +9290,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9218,18 +9359,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9248,16 +9377,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9269,6 +9398,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9719,6 +9851,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -9829,6 +9964,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -9841,6 +9979,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -9853,6 +9994,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -9913,6 +10057,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -9970,6 +10117,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -9982,6 +10132,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10051,9 +10204,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10117,6 +10267,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10135,7 +10288,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10168,25 +10321,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10195,6 +10369,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10285,6 +10462,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10372,13 +10561,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10402,10 +10600,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10634,9 +10844,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11670,16 +11877,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11688,7 +11913,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11697,22 +11922,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11842,6 +12067,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -11890,6 +12118,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12167,13 +12401,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12191,6 +12461,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12212,10 +12488,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12230,9 +12506,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12245,6 +12527,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12275,9 +12560,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12296,12 +12587,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12419,6 +12716,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12479,6 +12779,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12506,7 +12812,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12659,6 +12971,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12749,7 +13064,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -12982,6 +13297,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13166,6 +13484,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13517,7 +13838,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13529,6 +13850,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13592,6 +13916,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13664,9 +13991,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -13850,6 +14174,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -13913,6 +14240,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -13943,9 +14273,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14075,9 +14402,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14114,6 +14438,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14324,6 +14651,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14534,6 +14864,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -14820,9 +15156,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -14851,6 +15184,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15119,9 +15455,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15155,6 +15488,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15236,6 +15572,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15413,9 +15752,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15428,7 +15764,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15739,6 +16075,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16059,16 +16398,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16177,12 +16506,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16201,9 +16536,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16213,6 +16545,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16249,18 +16584,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16270,6 +16614,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16513,9 +16860,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17184,6 +17528,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17310,6 +17699,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17612,6 +18004,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -17903,6 +18298,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -17969,6 +18367,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18065,6 +18466,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18101,6 +18505,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18116,9 +18523,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18182,6 +18586,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18197,9 +18604,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18287,6 +18691,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18602,6 +19009,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18704,15 +19114,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18725,9 +19132,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18743,9 +19147,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18755,9 +19156,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18773,10 +19171,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19678,9 +20076,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -19807,6 +20202,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -19890,6 +20288,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -19905,16 +20306,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -19953,9 +20351,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -19983,18 +20378,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20103,6 +20489,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20395,6 +20784,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20674,9 +21066,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -20996,6 +21385,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21337,12 +21729,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21352,12 +21738,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21466,12 +21846,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21529,9 +21903,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21553,6 +21924,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21640,9 +22014,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21871,7 +22248,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -21889,7 +22266,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22066,22 +22443,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22141,6 +22518,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22162,16 +22542,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22201,9 +22578,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22213,9 +22587,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22330,9 +22701,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22402,6 +22770,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22414,6 +22785,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22450,10 +22824,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22483,9 +22857,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22624,6 +22995,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22717,10 +23091,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -22984,6 +23361,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23005,6 +23385,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23047,12 +23430,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23077,6 +23469,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23101,6 +23496,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23143,6 +23544,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23206,30 +23610,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23290,7 +23670,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23332,7 +23712,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23455,6 +23835,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23509,6 +23892,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23763,10 +24155,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-
msgid "Hide values"
msgstr ""
@@ -23785,6 +24173,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -23860,6 +24251,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -23950,6 +24344,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24062,7 +24456,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24074,7 +24468,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24146,6 +24543,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24433,9 +24833,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24611,10 +25008,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24629,6 +25026,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24644,6 +25044,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25130,6 +25533,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25255,9 +25661,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25643,9 +26046,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -25851,10 +26251,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26181,13 +26581,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26292,6 +26692,10 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26301,9 +26705,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26344,6 +26747,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26473,6 +26879,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26602,6 +27011,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26671,15 +27083,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26731,6 +27143,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -26779,6 +27197,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -26938,7 +27359,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27208,6 +27629,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27217,6 +27641,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27289,6 +27716,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27409,9 +27839,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27448,6 +27875,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27478,6 +27908,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27572,6 +28116,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27612,7 +28162,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27630,6 +28180,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -27913,9 +28466,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -27946,6 +28496,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -27961,9 +28514,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28156,7 +28706,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28334,9 +28884,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28370,6 +28917,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28523,12 +29049,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28583,9 +29103,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29189,100 +29706,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29576,6 +30096,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -29957,6 +30480,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -29990,15 +30516,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30008,15 +30528,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30029,9 +30543,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30068,6 +30579,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30291,9 +30805,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30387,9 +30907,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30405,6 +30922,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30435,96 +30955,147 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30549,9 +31120,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31117,9 +31694,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31132,9 +31706,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31562,15 +32133,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31676,6 +32247,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -31821,18 +32395,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -31842,6 +32404,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -31857,6 +32422,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -31875,6 +32443,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32080,6 +32654,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32128,6 +32708,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32158,16 +32744,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32239,6 +32825,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32329,6 +32918,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32344,6 +32936,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32356,7 +32951,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32485,6 +33080,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32503,27 +33101,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33105,9 +33721,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33198,6 +33811,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33216,6 +33832,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33264,7 +33886,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33408,6 +34042,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33477,6 +34171,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33552,6 +34249,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -33762,6 +34462,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -33844,6 +34553,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -33862,6 +34574,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -33928,6 +34643,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -33964,6 +34682,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34105,6 +34826,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34252,6 +34976,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34396,6 +35123,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -34813,6 +35543,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -34873,12 +35627,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -34897,9 +35645,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -34972,6 +35717,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35008,6 +35756,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35926,9 +36680,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36124,6 +36875,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36232,6 +36986,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36352,7 +37109,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36718,7 +37475,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37022,7 +37779,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37049,10 +37806,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37271,6 +38043,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37358,9 +38133,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37478,6 +38250,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37523,6 +38298,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -37940,29 +38718,9 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -37997,6 +38755,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38060,6 +38821,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38653,12 +39417,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38740,9 +39510,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -38788,6 +39555,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39230,9 +40000,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39408,6 +40175,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39462,6 +40232,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39522,6 +40295,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39624,6 +40400,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39702,6 +40481,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -39759,9 +40541,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -39828,9 +40607,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40263,6 +41039,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,7 +41101,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40391,9 +41170,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40517,10 +41293,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-
msgid "Reveal values"
msgstr ""
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40624,9 +41405,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40959,6 +41737,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41231,6 +42012,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41351,7 +42135,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41360,9 +42144,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41587,9 +42368,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -41761,9 +42557,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -41782,6 +42587,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -41803,21 +42611,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -41842,6 +42668,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -41851,6 +42680,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -41866,6 +42698,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -41926,9 +42761,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -41980,34 +42812,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42034,15 +42857,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42055,7 +42872,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42208,6 +43043,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42390,6 +43228,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42399,6 +43240,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42456,6 +43327,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42543,7 +43417,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42645,6 +43519,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42654,6 +43531,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42672,12 +43558,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42690,6 +43582,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -42720,6 +43615,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -42732,10 +43630,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -42744,6 +43642,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -42816,6 +43720,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,7 +43735,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -42843,6 +43753,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -42858,6 +43771,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -42885,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -42910,6 +43829,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -42997,12 +43919,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43036,6 +43964,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43069,6 +44003,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43153,12 +44093,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43195,6 +44150,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43381,6 +44339,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43432,6 +44393,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43447,12 +44411,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43586,6 +44544,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43685,6 +44646,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -43952,6 +44925,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44114,9 +45090,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44156,6 +45138,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44216,7 +45204,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44225,6 +45216,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44423,9 +45420,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44441,6 +45435,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44519,19 +45516,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44589,27 +45600,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -44872,9 +45862,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -44923,19 +45910,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45235,6 +46216,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45292,6 +46276,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45352,7 +46339,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -45709,7 +46693,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -45730,12 +46714,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -45931,6 +46909,10 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46231,9 +47213,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46315,9 +47294,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -46961,9 +47940,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47234,13 +48210,22 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47256,21 +48241,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47551,6 +48521,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -47744,6 +48717,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -47768,6 +48744,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -47786,9 +48768,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -47828,16 +48807,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48085,6 +49070,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48223,6 +49211,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48274,13 +49265,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48451,6 +49439,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48646,6 +49637,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -48736,9 +49730,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -48775,6 +49775,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -48967,9 +49970,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49114,12 +50114,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49809,9 +50807,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -49855,6 +50850,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -49960,7 +50958,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -49975,9 +50973,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50035,6 +51030,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50071,6 +51069,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50113,7 +51114,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50125,9 +51126,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50143,10 +51141,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50188,18 +51186,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50267,6 +51253,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50291,16 +51283,33 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50360,10 +51369,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50498,27 +51507,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50534,28 +51522,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50697,12 +51676,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -50778,15 +51751,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -50952,9 +51940,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51030,7 +52027,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51234,6 +52234,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51372,7 +52375,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51387,9 +52393,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51411,13 +52414,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51450,7 +52453,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51489,7 +52492,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -51768,12 +52768,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -51786,6 +52780,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -51850,6 +52850,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52405,22 +53411,27 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52438,6 +53449,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52540,15 +53554,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52630,9 +53635,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52651,15 +53653,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -52757,6 +53753,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -52788,6 +53787,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -52863,6 +53865,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -52932,6 +53937,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54207,6 +55218,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54229,6 +55243,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54274,6 +55291,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54310,15 +55330,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54349,9 +55381,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54373,12 +55402,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54403,9 +55438,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54535,7 +55567,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54553,6 +55585,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54631,7 +55666,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54685,6 +55720,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -54712,6 +55753,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55079,10 +56123,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55136,6 +56180,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55164,6 +56211,9 @@ msgstr[0] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55197,7 +56247,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55209,7 +56259,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55242,6 +56292,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55281,6 +56334,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55492,6 +56548,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55504,6 +56563,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55519,10 +56581,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55724,6 +56786,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -55757,6 +56822,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -55893,6 +56961,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56121,10 +57192,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56193,9 +57264,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56238,7 +57306,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56275,17 +57343,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56404,15 +57461,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56470,9 +57530,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56923,6 +57980,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57083,6 +58143,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57418,6 +58481,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57463,6 +58538,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57481,6 +58559,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57514,6 +58595,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57746,6 +58830,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -57772,9 +58859,6 @@ msgstr[0] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -57945,6 +59029,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -57954,6 +59041,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ig_NG/gitlab.po b/locale/ig_NG/gitlab.po
index f7de6733a5d..7c80fd8e1e6 100644
--- a/locale/ig_NG/gitlab.po
+++ b/locale/ig_NG/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ig\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:30\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -460,6 +452,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -494,15 +489,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -606,12 +592,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -648,6 +628,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -822,6 +805,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1075,6 +1064,9 @@ msgstr[0] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1154,7 +1146,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1169,6 +1164,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1223,6 +1221,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1241,6 +1242,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1256,9 +1260,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1293,6 +1309,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1311,9 +1333,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1344,7 +1363,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1634,9 +1653,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1742,7 +1758,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -1865,9 +1908,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -1887,6 +1927,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -1932,6 +1975,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2253,6 +2299,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2727,6 +2779,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -2865,9 +2920,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3021,15 +3073,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3039,9 +3091,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3399,6 +3448,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3495,6 +3547,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4113,6 +4168,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4146,6 +4204,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4257,18 +4318,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4617,6 +4684,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4647,9 +4723,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4761,12 +4837,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4788,9 +4870,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -4851,9 +4930,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -4869,9 +4945,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -4947,9 +5020,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5178,9 +5248,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5345,6 +5414,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5453,6 +5525,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5561,6 +5636,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5573,16 +5651,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5615,9 +5696,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5678,6 +5756,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5690,16 +5789,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5717,9 +5813,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6231,9 +6324,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6297,6 +6387,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6312,9 +6405,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6504,9 +6594,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6522,6 +6609,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6643,13 +6733,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6741,7 +6828,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6819,6 +6906,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -6948,6 +7044,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7137,12 +7236,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7167,12 +7260,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7224,9 +7323,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7239,9 +7335,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7251,9 +7344,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7287,16 +7389,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr ""
+
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Bamboo build plan key (for example, `KEY`)."
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7308,7 +7413,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7323,7 +7428,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7428,9 +7533,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7788,6 +7890,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7818,13 +7923,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -7842,10 +7947,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -7885,12 +7990,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -7912,7 +8011,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8103,12 +8205,6 @@ msgstr[0] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8127,9 +8223,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8139,18 +8232,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8163,51 +8250,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8236,9 +8302,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8332,6 +8395,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8341,6 +8407,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8407,15 +8485,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8473,6 +8563,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8491,6 +8587,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8503,6 +8602,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8803,6 +8905,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -8836,9 +8944,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -8848,16 +8965,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -8875,6 +9001,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -8929,7 +9061,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -8992,9 +9127,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9134,6 +9266,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9155,6 +9290,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9218,18 +9359,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9248,16 +9377,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9269,6 +9398,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9719,6 +9851,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -9829,6 +9964,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -9841,6 +9979,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -9853,6 +9994,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -9913,6 +10057,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -9970,6 +10117,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -9982,6 +10132,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10051,9 +10204,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10117,6 +10267,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10135,7 +10288,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10168,25 +10321,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10195,6 +10369,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10285,6 +10462,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10372,13 +10561,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10402,10 +10600,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10634,9 +10844,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11670,16 +11877,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11688,7 +11913,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11697,22 +11922,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11842,6 +12067,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -11890,6 +12118,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12167,13 +12401,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12191,6 +12461,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12212,10 +12488,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12230,9 +12506,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12245,6 +12527,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12275,9 +12560,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12296,12 +12587,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12419,6 +12716,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12479,6 +12779,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12506,7 +12812,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12659,6 +12971,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12749,7 +13064,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -12982,6 +13297,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13166,6 +13484,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13517,7 +13838,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13529,6 +13850,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13592,6 +13916,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13664,9 +13991,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -13850,6 +14174,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -13913,6 +14240,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -13943,9 +14273,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14075,9 +14402,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14114,6 +14438,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14324,6 +14651,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14534,6 +14864,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -14820,9 +15156,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -14851,6 +15184,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15119,9 +15455,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15155,6 +15488,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15236,6 +15572,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15413,9 +15752,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15428,7 +15764,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15739,6 +16075,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16059,16 +16398,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16177,12 +16506,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16201,9 +16536,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16213,6 +16545,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16249,18 +16584,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16270,6 +16614,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16513,9 +16860,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17184,6 +17528,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17310,6 +17699,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17612,6 +18004,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -17903,6 +18298,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -17969,6 +18367,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18065,6 +18466,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18101,6 +18505,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18116,9 +18523,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18182,6 +18586,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18197,9 +18604,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18287,6 +18691,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18602,6 +19009,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18704,15 +19114,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18725,9 +19132,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18743,9 +19147,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18755,9 +19156,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18773,10 +19171,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19678,9 +20076,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -19807,6 +20202,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -19890,6 +20288,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -19905,16 +20306,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -19953,9 +20351,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -19983,18 +20378,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20103,6 +20489,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20395,6 +20784,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20674,9 +21066,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -20996,6 +21385,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21337,12 +21729,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21352,12 +21738,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21466,12 +21846,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21529,9 +21903,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21553,6 +21924,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21640,9 +22014,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21871,7 +22248,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -21889,7 +22266,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22066,22 +22443,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22141,6 +22518,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22162,16 +22542,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22201,9 +22578,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22213,9 +22587,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22330,9 +22701,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22402,6 +22770,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22414,6 +22785,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22450,10 +22824,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22483,9 +22857,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22624,6 +22995,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22717,10 +23091,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -22984,6 +23361,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23005,6 +23385,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23047,12 +23430,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23077,6 +23469,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23101,6 +23496,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23143,6 +23544,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23206,30 +23610,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23290,7 +23670,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23332,7 +23712,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23455,6 +23835,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23509,6 +23892,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23763,10 +24155,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-
msgid "Hide values"
msgstr ""
@@ -23785,6 +24173,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -23860,6 +24251,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -23950,6 +24344,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24062,7 +24456,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24074,7 +24468,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24146,6 +24543,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24433,9 +24833,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24611,10 +25008,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24629,6 +25026,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24644,6 +25044,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25130,6 +25533,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25255,9 +25661,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25643,9 +26046,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -25851,10 +26251,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26181,13 +26581,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26292,6 +26692,10 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26301,9 +26705,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26344,6 +26747,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26473,6 +26879,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26602,6 +27011,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26671,15 +27083,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26731,6 +27143,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -26779,6 +27197,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -26938,7 +27359,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27208,6 +27629,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27217,6 +27641,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27289,6 +27716,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27409,9 +27839,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27448,6 +27875,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27478,6 +27908,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27572,6 +28116,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27612,7 +28162,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27630,6 +28180,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -27913,9 +28466,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -27946,6 +28496,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -27961,9 +28514,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28156,7 +28706,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28334,9 +28884,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28370,6 +28917,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28523,12 +29049,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28583,9 +29103,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29189,100 +29706,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29576,6 +30096,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -29957,6 +30480,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -29990,15 +30516,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30008,15 +30528,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30029,9 +30543,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30068,6 +30579,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30291,9 +30805,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30387,9 +30907,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30405,6 +30922,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30435,96 +30955,147 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30549,9 +31120,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31117,9 +31694,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31132,9 +31706,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31562,15 +32133,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31676,6 +32247,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -31821,18 +32395,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -31842,6 +32404,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -31857,6 +32422,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -31875,6 +32443,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32080,6 +32654,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32128,6 +32708,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32158,16 +32744,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32239,6 +32825,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32329,6 +32918,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32344,6 +32936,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32356,7 +32951,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32485,6 +33080,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32503,27 +33101,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33105,9 +33721,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33198,6 +33811,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33216,6 +33832,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33264,7 +33886,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33408,6 +34042,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33477,6 +34171,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33552,6 +34249,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -33762,6 +34462,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -33844,6 +34553,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -33862,6 +34574,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -33928,6 +34643,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -33964,6 +34682,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34105,6 +34826,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34252,6 +34976,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34396,6 +35123,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -34813,6 +35543,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -34873,12 +35627,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -34897,9 +35645,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -34972,6 +35717,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35008,6 +35756,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35926,9 +36680,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36124,6 +36875,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36232,6 +36986,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36352,7 +37109,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36718,7 +37475,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37022,7 +37779,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37049,10 +37806,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37271,6 +38043,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37358,9 +38133,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37478,6 +38250,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37523,6 +38298,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -37940,29 +38718,9 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -37997,6 +38755,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38060,6 +38821,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38653,12 +39417,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38740,9 +39510,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -38788,6 +39555,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39230,9 +40000,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39408,6 +40175,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39462,6 +40232,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39522,6 +40295,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39624,6 +40400,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39702,6 +40481,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -39759,9 +40541,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -39828,9 +40607,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40263,6 +41039,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,7 +41101,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40391,9 +41170,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40517,10 +41293,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-
msgid "Reveal values"
msgstr ""
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40624,9 +41405,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40959,6 +41737,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41231,6 +42012,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41351,7 +42135,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41360,9 +42144,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41587,9 +42368,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -41761,9 +42557,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -41782,6 +42587,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -41803,21 +42611,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -41842,6 +42668,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -41851,6 +42680,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -41866,6 +42698,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -41926,9 +42761,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -41980,34 +42812,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42034,15 +42857,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42055,7 +42872,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42208,6 +43043,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42390,6 +43228,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42399,6 +43240,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42456,6 +43327,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42543,7 +43417,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42645,6 +43519,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42654,6 +43531,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42672,12 +43558,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42690,6 +43582,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -42720,6 +43615,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -42732,10 +43630,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -42744,6 +43642,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -42816,6 +43720,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,7 +43735,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -42843,6 +43753,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -42858,6 +43771,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -42885,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -42910,6 +43829,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -42997,12 +43919,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43036,6 +43964,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43069,6 +44003,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43153,12 +44093,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43195,6 +44150,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43381,6 +44339,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43432,6 +44393,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43447,12 +44411,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43586,6 +44544,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43685,6 +44646,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -43952,6 +44925,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44114,9 +45090,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44156,6 +45138,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44216,7 +45204,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44225,6 +45216,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44423,9 +45420,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44441,6 +45435,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44519,19 +45516,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44589,27 +45600,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -44872,9 +45862,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -44923,19 +45910,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45235,6 +46216,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45292,6 +46276,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45352,7 +46339,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -45709,7 +46693,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -45730,12 +46714,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -45931,6 +46909,10 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46231,9 +47213,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46315,9 +47294,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -46961,9 +47940,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47234,13 +48210,22 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47256,21 +48241,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47551,6 +48521,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -47744,6 +48717,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -47768,6 +48744,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -47786,9 +48768,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -47828,16 +48807,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48085,6 +49070,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48223,6 +49211,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48274,13 +49265,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48451,6 +49439,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48646,6 +49637,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -48736,9 +49730,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -48775,6 +49775,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -48967,9 +49970,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49114,12 +50114,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49809,9 +50807,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -49855,6 +50850,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -49960,7 +50958,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -49975,9 +50973,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50035,6 +51030,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50071,6 +51069,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50113,7 +51114,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50125,9 +51126,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50143,10 +51141,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50188,18 +51186,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50267,6 +51253,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50291,16 +51283,33 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50360,10 +51369,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50498,27 +51507,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50534,28 +51522,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50697,12 +51676,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -50778,15 +51751,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -50952,9 +51940,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51030,7 +52027,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51234,6 +52234,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51372,7 +52375,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51387,9 +52393,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51411,13 +52414,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51450,7 +52453,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51489,7 +52492,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -51768,12 +52768,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -51786,6 +52780,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -51850,6 +52850,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52405,22 +53411,27 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52438,6 +53449,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52540,15 +53554,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52630,9 +53635,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52651,15 +53653,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -52757,6 +53753,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -52788,6 +53787,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -52863,6 +53865,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -52932,6 +53937,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54207,6 +55218,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54229,6 +55243,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54274,6 +55291,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54310,15 +55330,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54349,9 +55381,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54373,12 +55402,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54403,9 +55438,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54535,7 +55567,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54553,6 +55585,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54631,7 +55666,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54685,6 +55720,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -54712,6 +55753,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55079,10 +56123,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55136,6 +56180,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55164,6 +56211,9 @@ msgstr[0] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55197,7 +56247,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55209,7 +56259,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55242,6 +56292,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55281,6 +56334,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55492,6 +56548,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55504,6 +56563,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55519,10 +56581,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55724,6 +56786,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -55757,6 +56822,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -55893,6 +56961,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56121,10 +57192,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56193,9 +57264,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56238,7 +57306,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56275,17 +57343,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56404,15 +57461,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56470,9 +57530,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56923,6 +57980,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57083,6 +58143,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57418,6 +58481,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57463,6 +58538,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57481,6 +58559,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57514,6 +58595,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57746,6 +58830,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -57772,9 +58859,6 @@ msgstr[0] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -57945,6 +59029,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -57954,6 +59041,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/is_IS/gitlab.po b/locale/is_IS/gitlab.po
index 60f2311537a..3dcc8380071 100644
--- a/locale/is_IS/gitlab.po
+++ b/locale/is_IS/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: is\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/it/gitlab.po b/locale/it/gitlab.po
index 57f194ccd91..ce509daf021 100644
--- a/locale/it/gitlab.po
+++ b/locale/it/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: it\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d commento"
msgstr[1] "%d commenti"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d contribution"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} eliminato"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} branch"
@@ -1275,8 +1265,11 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "%{title} cambiamenti"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' non è un livello di visibilità valido"
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(verifica progresso)"
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr "+ %{count} ulteriori"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Tutto"
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr "La Branch esiste già"
msgid "Branch name"
msgstr "Nome Branch"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Branch"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Guarda i files"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr "Creare un token di accesso sul tuo account per eseguire pull o push tram
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr "Tutti"
msgid "DashboardProjects|Personal"
msgstr "Personale"
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
-msgstr ""
-
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Questa modifica è stata applicata su %{ancestor_group} ed è stata ignorata nel sottogruppo."
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr "Housekeeping iniziato con successo"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Ultimo Commit"
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr "Panoramica"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr "Profilo"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Visitati di frequente"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Caricamento progetti"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "I progetti che visiti spesso appariranno qui"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Cerca tra i tuoi progetti"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Qualcosa è andato storto dalla nostra parte."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Siamo spiacenti, non ci sono progetti che corrispondono alla tua ricerca"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr "Ricordamelo più tardi"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr "Impostazioni"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr "Cambia branch/tag"
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Tempo totale di test per tutti i commits/merges"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr "Mostra la richieste di merge aperte"
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Il tuo nome"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ja/gitlab.po b/locale/ja/gitlab.po
index aa4d0a0d65e..459ad8550bd 100644
--- a/locale/ja/gitlab.po
+++ b/locale/ja/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ja\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr " %{start}ã‹ã‚‰%{end}ã¾ã§"
@@ -79,10 +79,10 @@ msgid "\"%{repository_name}\" size (%{repository_size}) is larger than the limit
msgstr "「%{repository_name}ã€ã®ã‚µã‚¤ã‚º (%{repository_size}) ã¯%{limit}ã®ä¸Šé™ã‚’超ãˆã¦ã„ã¾ã™ã€‚"
msgid "##### ERROR ##### You have used %{usage_percentage} of the storage quota for %{namespace_name} (%{current_size} of %{size_limit}). %{namespace_name} is now read-only. Projects under this namespace are locked and actions will be restricted. To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
-msgstr "##### エラー ##### %{namespace_name}ã®ä¸Šé™%{size_limit}ã® %{usage_percentage}を使用ã—ã¦ã„ã¾ã™ã€‚(ç¾åœ¨ã®å®¹é‡ï¼š%{current_size}). %{namespace_name}ã¯èª­ã¿å–り専用ã«ãªã‚Šã¾ã—ãŸã€‚ã“ã®åå‰ç©ºé–“ã®ãƒ—ロジェクトã¯ãƒ­ãƒƒã‚¯ã•ã‚Œã€æ“作ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚ストレージã®ç®¡ç†ã¾ãŸã¯è¿½åŠ ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®è³¼å…¥ã«ã¤ã„ã¦ã¯ã€%{manage_storage_url}ã‚’å‚ç…§ã—ã¦ãã ã•ã„。ã„ãã¤ã‹ã®æ“作ãŒã¯åˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€%{restricted_actions_url}ã‚’å‚ç…§ã—ã¦ãã ã•ã„"
+msgstr "##### エラー ##### %{namespace_name}ã®ä¸Šé™%{size_limit}ã® %{usage_percentage}を使用ã—ã¦ã„ã¾ã™ã€‚(ç¾åœ¨ã®å®¹é‡ï¼š%{current_size}). %{namespace_name}ã¯èª­ã¿å–り専用ã«ãªã‚Šã¾ã—ãŸã€‚ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ãƒ—ロジェクトã¯ãƒ­ãƒƒã‚¯ã•ã‚Œã€æ“作ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚ストレージã®ç®¡ç†ã¾ãŸã¯è¿½åŠ ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®è³¼å…¥ã«ã¤ã„ã¦ã¯ã€%{manage_storage_url}ã‚’å‚ç…§ã—ã¦ãã ã•ã„。ã„ãã¤ã‹ã®æ“作ãŒã¯åˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€%{restricted_actions_url}ã‚’å‚ç…§ã—ã¦ãã ã•ã„"
msgid "##### WARNING ##### You have used %{usage_percentage} of the storage quota for %{namespace_name} (%{current_size} of %{size_limit}). If %{namespace_name} exceeds the storage quota, all projects in the namespace will be locked and actions will be restricted. To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
-msgstr "#####警告####ã‚ãªãŸã¯%{namespace_name}ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚¯ã‚©ãƒ¼ã‚¿ã®ã†ã¡%{usage_percentage}ã‚’ã™ã§ã«ä½¿ç”¨ã—ã¦ã„ã¾ã™ (%{size_limit}ã®ã†ã¡%{current_size})。%{namespace_name}ãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚¯ã‚©ãƒ¼ã‚¿ã‚’超ãˆã‚‹ã¨ã€ãã®åå‰ç©ºé–“内ã®ã™ã¹ã¦ã®ãƒ—ロジェクトãŒãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚ストレージを管ç†ã™ã‚‹ã‹ã€è¿½åŠ ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’購入ã™ã‚‹ã«ã¯ã€`%{manage_storage_url}`ã‚’å‚ç…§ã—ã¦ãã ã•ã„。制é™ã•ã‚Œã‚‹ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€`%{restricted_actions_url}`ã‚’å‚ç…§ã—ã¦ãã ã•ã„"
+msgstr "#####警告####ã‚ãªãŸã¯%{namespace_name}ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚¯ã‚©ãƒ¼ã‚¿ã®ã†ã¡%{usage_percentage}ã‚’ã™ã§ã«ä½¿ç”¨ã—ã¦ã„ã¾ã™ (%{size_limit}ã®ã†ã¡%{current_size})。%{namespace_name}ãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚¯ã‚©ãƒ¼ã‚¿ã‚’超ãˆã‚‹ã¨ã€ãã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹å†…ã®ã™ã¹ã¦ã®ãƒ—ロジェクトãŒãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚ストレージを管ç†ã™ã‚‹ã‹ã€è¿½åŠ ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’購入ã™ã‚‹ã«ã¯ã€`%{manage_storage_url}`ã‚’å‚ç…§ã—ã¦ãã ã•ã„。制é™ã•ã‚Œã‚‹ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€`%{restricted_actions_url}`ã‚’å‚ç…§ã—ã¦ãã ã•ã„"
msgid "#%{issueIid} (closed)"
msgstr "# %{issueIid} (クローズ)"
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] "%d件ã®ã‚¢ãƒ¼ãƒ†ã‚£ãƒ•ã‚¡ã‚¯ãƒˆ"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d件ã®å‰²ã‚Šå½“ã¦æ¸ˆã¿ã®ã‚¤ã‚·ãƒ¥ãƒ¼"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] "%d人ã®ä½œæˆè€…"
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d件ã®ã‚³ãƒ¡ãƒ³ãƒˆ"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "ã“ã®ã‚³ãƒŸãƒƒãƒˆã¸ã®%d件ã®ã‚³ãƒ¡ãƒ³ãƒˆ"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d人ã®ã‚³ãƒ¡ãƒ³ãƒˆæŠ•ç¨¿è€…"
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] "%d件ã®å®Œäº†ã—ãŸã‚¤ã‚·ãƒ¥ãƒ¼"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "貢献%d件"
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d 件ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’ラベル付ãã§ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã—ãŸ"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d件ã®ã‚¸ãƒ§ãƒ–"
@@ -460,6 +452,9 @@ msgstr "%{author_link} ãŒæ›¸ãã¾ã—ãŸ:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName}ã®ã‚¹ãƒ¬ãƒƒãƒ‰"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author}ãŒ%{source_branch} %{copy_button}ã‹ã‚‰%{target_branch}ã¸%{created_at}マージをリクエストã—ã¾ã—ãŸ"
@@ -494,15 +489,6 @@ msgstr "%{chartTitle}データ系列ãªã—"
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr "%{codeStart}$%{codeEnd}ã¯ã€åˆ¥ã®å¤‰æ•°ã¸ã®å‚ç…§ã®é–‹å§‹ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚"
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr "%{code_open}Expanded:%{code_close} %{code_open}$%{code_close}ã‚’æŒã¤å¤‰æ•°ã¯ã€åˆ¥ã®å¤‰æ•°ã¸ã®å‚ç…§ã®é–‹å§‹ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚"
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}マスク済ã¿:%{code_close}ジョブログã§éžè¡¨ç¤ºã«ã—ã¾ã™ã€‚マスキングã®è¦ä»¶ã‚’満ãŸã™å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}Protected:%{code_close} ä¿è­·ã•ã‚ŒãŸãƒ–ランãƒã‚„ä¿è­·ã‚¿ã‚°ã«ã®ã¿å…¬é–‹ã•ã‚Œã¾ã™ã€‚"
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link}ãŒ%{commit_authored_timeago}ã«ä½œæˆã—ã¾ã—ãŸ"
@@ -606,12 +592,6 @@ msgstr "ã‚¿ã‚°ãŒè‡ªå‹•çš„ã«å‰Šé™¤ã•ã‚Œã‚‹ã¾ã§ %{days} æ—¥"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Sentry イベント: %{errorUrl}- 最åˆã«æ¤œå‡ºã•ã‚ŒãŸã‚¤ãƒ™ãƒ³ãƒˆ: %{firstSeen}- 最後ã«æ¤œå‡ºã•ã‚ŒãŸã‚¤ãƒ™ãƒ³ãƒˆ: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{doc_link_start}高度ãªæ¤œç´¢%{doc_link_end}ã¯ã€%{ref_elem}ãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®ãƒ–ランãƒã§ã¯ãªã„ãŸã‚無効ã«ãªã£ã¦ã„ã¾ã™ã€‚%{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}高度ãªæ¤œç´¢%{doc_link_end}ãŒæœ‰åŠ¹ã§ã™ã€‚"
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}表示レベルã«ã¤ã„ã¦ã€‚%{docs_link_end}"
@@ -648,6 +628,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} 個ã®ãƒ€ã‚¦ãƒ³ã‚¹ãƒˆãƒªãƒ¼ãƒ ãƒ‘イプライン"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath}ãŒå‰Šé™¤ã•ã‚Œã¾ã—ãŸ"
@@ -724,7 +707,7 @@ msgid "%{itemsCount} issues with a limit of %{maxIssueCount}"
msgstr "上é™%{maxIssueCount}件ã®ã†ã¡%{itemsCount}件ã®ã‚¤ã‚·ãƒ¥ãƒ¼"
msgid "%{jobName}"
-msgstr ""
+msgstr "%{jobName}"
msgid "%{jobName} job is being retried"
msgstr "%{jobName}ジョブãŒå†è©¦è¡Œã•ã‚Œã¦ã„ã¾ã™"
@@ -822,6 +805,12 @@ msgstr "%{linkStart}詳ã—ã見る%{linkEnd}。"
msgid "%{linkStart}%{linkEnd} review summary"
msgstr "%{linkStart}%{linkEnd} レビューã®æ¦‚è¦"
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow}ã¨ãã®ä»–%{awardsListLength}件"
@@ -1075,6 +1064,9 @@ msgstr[0] "%{strongStart}%{count}%{strongEnd}件ã®ã‚³ãƒŸãƒƒãƒˆ"
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr "%{strongStart}ヒント:%{strongEnd} %{linkStart}マージ リクエストID㧠ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆ%{linkEnd}ã§ãã¾ã™ã€‚"
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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}個ã®ãƒ–ランãƒ"
@@ -1154,8 +1146,11 @@ msgstr "%{timebox_type}ã«ã¯é–‹å§‹æ—¥ã¨çµ‚了日ãŒå¿…è¦ã§ã™"
msgid "%{time} UTC"
msgstr "%{time}UTC"
-msgid "%{title} changes"
-msgstr "%{title}ã®å¤‰æ›´"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} 空ã)"
@@ -1169,6 +1164,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} 空ã)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} 件ã®è­¦å‘ŠãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ:"
+msgid "%{total}"
+msgstr "%{total}"
+
msgid "%{total} remaining issue weight"
msgstr "%{total}残りイシューã®é‡ã•"
@@ -1223,6 +1221,9 @@ msgstr "%{user}ãŒã‚¤ã‚·ãƒ¥ãƒ¼ã‚’作æˆã—ã¾ã—ãŸ: %{issue_link}"
msgid "%{user} user’s menu"
msgstr "%{user}ユーザーã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼"
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value}ã¯ãƒªã‚¹ãƒˆã«å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -1241,6 +1242,9 @@ msgstr "%{webhooks_link_start}%{webhook_type}%{webhooks_link_end}を使ã†ã¨ã€
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{code_tag_start}v*%{code_tag_end}ã‚„%{code_tag_start}*-リリース%{wildcards_link_start}ã®ã‚ˆã†ãª%{code_tag_end}ワイルドカード%{wildcards_link_end}をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚"
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "「%{level}ã€ã¯æœ‰åŠ¹ãªè¡¨ç¤ºãƒ¬ãƒ™ãƒ«ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -1256,9 +1260,21 @@ msgstr "'%{value}'ã®éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–日数ã¯90以上ã§ãªã‘ã‚Œã°ãªã‚Šã¾
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr "'projects'ã¯ã¾ã ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -1293,6 +1309,12 @@ msgstr "(変更ãªã—)"
msgid "(Unlimited pipeline minutes)"
msgstr "(無制é™ã®ãƒ‘イプライン時間 (分))"
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(進行状æ³ã‚’確èªã™ã‚‹)"
@@ -1311,9 +1333,6 @@ msgstr "(外部ã®å‚加者)"
msgid "(leave blank if you don't want to change it)"
msgstr "(変更ã—ãŸããªã„å ´åˆã€ç©ºç™½ã®ã¾ã¾ã«ã—ã¦ãã ã•ã„)"
-msgid "(max size 15 MB)"
-msgstr "(最大サイズ 15MB)"
-
msgid "(no user)"
msgstr "(ユーザーãªã—)"
@@ -1344,8 +1363,8 @@ msgstr "+ ãã®ä»– %{amount} 件"
msgid "+ %{count} more"
msgstr "+ %{count}以上"
-msgid "+ %{hiddenBranchesLength} more"
-msgstr "+ %{hiddenBranchesLength}以上"
+msgid "+ %{itemsLength} more"
+msgstr ""
msgid "+ %{moreCount} more"
msgstr "+ 他%{moreCount}件"
@@ -1634,9 +1653,6 @@ msgstr "AWS Lambdaã€AWS API Gatewayã€ãŠã‚ˆã³ GitLab Pages を使用ã™ã‚‹åŸº
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "Kotlin Nativeを使用ã—ã¦Linuxプログラムを開発ã™ã‚‹ãŸã‚ã®åŸºæœ¬çš„ãªãƒ†ãƒ³ãƒ—レート"
-msgid "A complete DevOps platform"
-msgstr "完全㪠DevOps ã®ãƒ—ラットフォーム"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr "éžå…¬é–‹ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã®å­ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã¯ã™ã¹ã¦éžå…¬é–‹ã«è¨­å®šã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。対応ã™ã‚‹å­ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’éžå…¬é–‹ã«è¨­å®šã—ã¦ã‹ã‚‰å†è©¦è¡Œã—ã¦ãã ã•ã„。"
@@ -1742,8 +1758,8 @@ msgstr "Androidアプリã§ã™ãã«ä½¿ãˆã‚‹ãƒ†ãƒ³ãƒ—レート"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "iOS Swiftアプリã§ã™ãã«ä½¿ãˆã‚‹ãƒ†ãƒ³ãƒ—レート"
-msgid "A rebase is already in progress."
-msgstr "rebaseを実行ã—ã¦ã„ã¾ã™ã€‚"
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "次㮠IP アドレスã‹ã‚‰ã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¸ã®ã‚µã‚¤ãƒ³ã‚¤ãƒ³ãŒè¡Œã‚ã‚Œã¾ã—ãŸ: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr "AIアクション"
msgid "AI-generated summary"
msgstr "AIãŒç”Ÿæˆã—ãŸæ¦‚è¦"
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr "ã™ã¹ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆã®æ¦‚è¦ã‚’生æˆ"
@@ -1865,9 +1908,6 @@ msgstr "既存ã®èª¬æ˜Žã‚’ã€AI ã§ç”Ÿæˆã—ãŸèª¬æ˜Žã§ç½®ãæ›ãˆã¾ã™ã‹? ã
msgid "AI|Responses generated by AI"
msgstr "AIã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸå¿œç­”"
-msgid "AI|Send chat message."
-msgstr "ãƒãƒ£ãƒƒãƒˆãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡"
-
msgid "AI|Something went wrong. Please try again later"
msgstr "å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚後ã»ã©ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„"
@@ -1887,6 +1927,9 @@ msgstr "é€ä¿¡ã™ã‚‹ã¨ã€æ—¢å­˜ã®èª¬æ˜ŽãŒç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚"
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr "ãƒãƒ£ãƒƒãƒˆã«ãƒ†ã‚­ã‚¹ãƒˆãŒå¤šã™ãŽã¾ã™ã€‚短ã„テキストã§ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr "コンテンツã®å“質をå‘上ã•ã›ã‚‹ãŸã‚ã«ã€GitLabãƒãƒ¼ãƒ ãƒ¡ãƒ³ãƒãƒ¼ã«ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦ãã ã•ã„。"
@@ -1932,6 +1975,9 @@ msgstr "APIファジング"
msgid "API Help"
msgstr "API ヘルプ"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "APIキー"
@@ -2253,6 +2299,12 @@ msgstr "フィッシング"
msgid "AbuseReport|Phone"
msgstr "電話"
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr "ç†ç”±"
@@ -2530,7 +2582,7 @@ msgid "Achievements|Awarded %{timeAgo} by %{namespace}"
msgstr "%{namespace}ã‹ã‚‰æŽˆä¸Žã•ã‚Œã¾ã—ãŸ: %{timeAgo}"
msgid "Achievements|Awarded %{timeAgo} by a private namespace"
-msgstr "プライベートãªåå‰ç©ºé–“ã‹ã‚‰æŽˆä¸Žã•ã‚Œã¾ã—ãŸ: %{timeAgo}"
+msgstr "プライベートãªãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‹ã‚‰æŽˆä¸Žã•ã‚Œã¾ã—ãŸ: %{timeAgo}"
msgid "Achievements|View your achievements on your %{link_start}profile%{link_end}."
msgstr "%{link_start}プロフィール%{link_end} ã«ã‚ãªãŸã®å®Ÿç¸¾ã‚’表示ã—ã¾ã™ã€‚"
@@ -2727,6 +2779,9 @@ msgstr "承èªãƒ«ãƒ¼ãƒ«ã‚’追加"
msgid "Add approvers"
msgstr "承èªè€…を追加"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "エピックã«å­ã‚¨ãƒ”ックを追加"
@@ -2865,9 +2920,6 @@ msgstr "æ案をãƒãƒƒãƒã«è¿½åŠ "
msgid "Add tag"
msgstr "タグを追加"
-msgid "Add target branch rule"
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«ã‚’追加"
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "サインインページã«ãƒ†ã‚­ã‚¹ãƒˆã‚’追加ã—ã¾ã™ã€‚Markdown ãŒæœ‰åŠ¹ã«ãªã£ã¦ã„ã¾ã™ã€‚"
@@ -3021,15 +3073,15 @@ msgstr "ã“ã®%{issuable_type}を作æˆã—ãŸ%{issuable_type}ã«é–¢é€£ã™ã‚‹ã‚ˆã
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "GitLab UI ã®æ›´æ–°é »åº¦ã‚’調整ã—ã¾ã™ã€‚"
-msgid "Admin"
-msgstr "管ç†è€…"
-
msgid "Admin Area"
msgstr "管ç†è€…エリア"
msgid "Admin Area / Dashboard"
msgstr "管ç†ã‚¨ãƒªã‚¢/ダッシュボード"
+msgid "Admin Mode"
+msgstr "管ç†è€…モード"
+
msgid "Admin Note"
msgstr "管ç†è€…メモ"
@@ -3039,9 +3091,6 @@ msgstr "管ç†é€šçŸ¥"
msgid "Admin message"
msgstr "管ç†è€…メッセージ"
-msgid "Admin mode"
-msgstr "管ç†è€…モード"
-
msgid "Admin mode already enabled"
msgstr "管ç†è€…モードã¯ã™ã§ã«æœ‰åŠ¹ã§ã™"
@@ -3100,7 +3149,7 @@ msgid "AdminArea|Features"
msgstr "機能"
msgid "AdminArea|Get security updates from GitLab and stay up to date"
-msgstr "GitLab ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚¢ãƒƒãƒ—デートを入手ã—ã€æœ€æ–°ã®æƒ…報を入手ã™ã‚‹"
+msgstr "GitLab ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚¢ãƒƒãƒ—デートを入手ã—ã€æœ€æ–°ã®çŠ¶æ…‹ã‚’維æŒ"
msgid "AdminArea|Groups"
msgstr "グループ"
@@ -3157,10 +3206,10 @@ msgid "AdminArea|Reporter"
msgstr "レãƒãƒ¼ã‚¿ãƒ¼"
msgid "AdminArea|Sign up for the GitLab Security Newsletter to get notified for security updates."
-msgstr "GitLab セキュリティニュースレターã«ç™»éŒ²ã—ã¦ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£æ›´æ–°ã®é€šçŸ¥ã‚’å—ã‘å–る。"
+msgstr "GitLabセキュリティニュースレターã«ç™»éŒ²ã—ã¦ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ アップデートã®é€šçŸ¥ã‚’å—ã‘å–る。"
msgid "AdminArea|Sign up for the GitLab newsletter"
-msgstr "GitLab ニュースレターã«ç™»éŒ²"
+msgstr "GitLabニュースレターã«ç™»éŒ²"
msgid "AdminArea|Total Billable users"
msgstr "請求ã®å¯èƒ½ãªå…¨ãƒ¦ãƒ¼ã‚¶ãƒ¼"
@@ -3169,7 +3218,7 @@ msgid "AdminArea|Total Non-Billable users"
msgstr "請求ä¸å¯ã®å…¨ãƒ¦ãƒ¼ã‚¶ãƒ¼"
msgid "AdminArea|Total users"
-msgstr "全ユーザー"
+msgstr "ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼"
msgid "AdminArea|Totals"
msgstr "全体"
@@ -3184,13 +3233,13 @@ msgid "AdminArea|Users statistics"
msgstr "ユーザー統計"
msgid "AdminArea|Users with highest role"
-msgstr "最高ä½ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼"
+msgstr "最上ä½ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼"
msgid "AdminArea|Users with highest role guest and with a %{strongOpen}Custom Role%{strongClose}."
msgstr "最上ä½ã®ã‚²ã‚¹ãƒˆãƒ­ãƒ¼ãƒ«ã¨%{strongOpen}カスタムロール%{strongClose}ã‚’æŒã¤ãƒ¦ãƒ¼ã‚¶ãƒ¼ã€‚"
msgid "AdminArea|Users without a Group and Project"
-msgstr "グループã¨ãƒ—ロジェクトã®ãªã„ユーザー"
+msgstr "グループãŠã‚ˆã³ãƒ—ロジェクトãŒãªã„ユーザー"
msgid "AdminArea|View latest groups"
msgstr "最新ã®ã‚°ãƒ«ãƒ¼ãƒ—を表示"
@@ -3399,6 +3448,9 @@ msgstr "å«ã¾ã‚Œã¦ã„る登録機能ã®ãƒªã‚¹ãƒˆã«ã¤ã„ã¦ã¯ã€%{link_start
msgid "AdminSettings|Git abuse rate limit"
msgstr "Gitã®ä¸æ­£åˆ©ç”¨çŽ‡åˆ¶é™"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr "GitLab 㯠%{bold_start}Rails%{bold_end} 㨠%{bold_start}Browser JavaScript%{bold_end} Sentry SDK を使用ã—ã¦ã‚¤ãƒ™ãƒ³ãƒˆã‚’ Sentry ã«é€ä¿¡ã—ã¾ã™ã€‚ Railsçµ±åˆã®è¨­å®šã‚’有効ã«ã™ã‚‹ã«ã¯ã€GitLabã‚’å†èµ·å‹•ã—ã¦ãã ã•ã„。"
@@ -3495,6 +3547,9 @@ msgstr "åŒæœŸã™ã‚‹ãƒ‘ッケージレジストリメタデータ"
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr "Elasticsearchã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ä½œæˆã‚’åœæ­¢"
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr "グループã€ãƒ—ロジェクトã€ã‚¹ãƒ‹ãƒšãƒƒãƒˆã«å¯¾ã—ã¦é¸æŠžã—ãŸå¯è¦–レベルを使用ã—ãªã„よã†ã«ã—ã¾ã™ã€‚"
@@ -3958,7 +4013,7 @@ msgid "AdminUsers|Stop monitoring %{username} for possible spam?"
msgstr ""
msgid "AdminUsers|The maximum compute minutes that jobs in this namespace can use on shared runners each month. Set 0 for unlimited. Set empty to inherit the global setting of %{minutes}"
-msgstr "ã“ã®åå‰ç©ºé–“内ã®ã‚¸ãƒ§ãƒ–ãŒæ¯Žæœˆå…±æœ‰ãƒ©ãƒ³ãƒŠãƒ¼ã§ä½¿ç”¨ã§ãる最大コンピューティング時間。無制é™ã®å ´åˆã¯0ã«è¨­å®šã—ã¾ã™ã€‚%{minutes}ã®ã‚°ãƒ­ãƒ¼ãƒãƒ«è¨­å®šã‚’継承ã™ã‚‹ã«ã¯ã€ç©ºã«è¨­å®šã—ã¾ã™"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹å†…ã®ã‚¸ãƒ§ãƒ–ãŒæ¯Žæœˆå…±æœ‰ãƒ©ãƒ³ãƒŠãƒ¼ã§ä½¿ç”¨ã§ãる最大コンピューティング時間。無制é™ã®å ´åˆã¯0ã«è¨­å®šã—ã¾ã™ã€‚%{minutes}ã®ã‚°ãƒ­ãƒ¼ãƒãƒ«è¨­å®šã‚’継承ã™ã‚‹ã«ã¯ã€ç©ºã«è¨­å®šã—ã¾ã™ã€‚"
msgid "AdminUsers|The user can create issues, notes, snippets, and merge requests that appear to be spam without being blocked."
msgstr ""
@@ -4113,6 +4168,9 @@ msgstr "Docs"
msgid "AdminUsers|user cap"
msgstr "ユーザーキャップ"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "管ç†è€…"
@@ -4146,6 +4204,9 @@ msgstr "èªè¨¼æƒ…å ±"
msgid "Admin|Deploy Keys"
msgstr "デプロイキー"
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr "Geo"
@@ -4222,7 +4283,7 @@ msgid "AdvancedSearch|Introduced in GitLab 13.1, before using %{reindexing_link_
msgstr "GitLab 13.1ã§å°Žå…¥ã•ã‚ŒãŸã€%{reindexing_link_start}ゼロダウンタイムã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å†ä½œæˆ%{link_end}ã¨%{migrations_link_start}高度ãªæ¤œç´¢ã®ç§»è¡Œ%{link_end}を使用ã™ã‚‹å‰ã«ã€%{recreate_link_start}インデックスをå†ä½œæˆã™ã‚‹%{link_end}å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
msgid "AdvancedSearch|None. Select namespaces to index."
-msgstr "ãªã—。インデックスã«åå‰ç©ºé–“ã‚’é¸æŠžã—ã¦ãã ã•ã„。"
+msgstr "ãªã—。インデックスã«ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’é¸æŠžã—ã¦ãã ã•ã„。"
msgid "AdvancedSearch|None. Select projects to index."
msgstr "ãªã—。インデックスã«ãƒ—ロジェクトをé¸æŠžã—ã¦ãã ã•ã„。"
@@ -4237,7 +4298,7 @@ msgid "AdvancedSearch|Reindex required"
msgstr "å†ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒå¿…è¦"
msgid "AdvancedSearch|Select namespaces to index"
-msgstr "インデックスã«åå‰ç©ºé–“ã‚’é¸æŠžã—ã¦ãã ã•ã„。"
+msgstr "インデックスã«ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’é¸æŠžã—ã¦ãã ã•ã„。"
msgid "AdvancedSearch|Select projects to index"
msgstr "インデックスã«ãƒ—ロジェクトをé¸æŠžã—ã¦ãã ã•ã„"
@@ -4257,18 +4318,24 @@ msgstr "パスワードã®æ›´æ–°ã«æˆåŠŸã™ã‚‹ã¨ã€ãƒ­ã‚°ã‚¤ãƒ³ç”»é¢ã«ãƒªãƒ€
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr "一度削除ã™ã‚‹ã¨ã€forkã®é–¢ä¿‚ã‚’å…ƒã«æˆ»ã™ã«ã¯ã“ã®APIを使ã†å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ã“ã®ãƒ—ロジェクトã¯ãã®ã‚¢ãƒƒãƒ—ストリームã¾ãŸã¯ä»–ã®ãƒ•ã‚©ãƒ¼ã‚¯ãƒ—ロジェクトã¸ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’é€ä¿¡ã¾ãŸã¯å—ä¿¡ã§ããªããªã‚Šã¾ã™ã€‚"
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
-msgstr "Appleã®App Store Connectçµ±åˆãŒæœ‰åŠ¹ã«ãªã‚‹ã¨ã€CI/CDã®ä½¿ç”¨ã«ã¯ä»¥ä¸‹ã®ä¿è­·å¤‰æ•°ãŒä½œæˆã•ã‚Œã¾ã™ã€‚"
-
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr "エクスãƒãƒ¼ãƒˆãŒå®Œäº†ã—ãŸã‚‰ã€é€šçŸ¥ãƒ¡ãƒ¼ãƒ«ã¾ãŸã¯ã“ã®ãƒšãƒ¼ã‚¸ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ダウンロードã—ã¾ã™ã€‚ãã®å¾Œã€åˆ¥ã® GitLab インスタンスã®%{strong_text_start}æ–°ã—ã„グループã®ä½œæˆ%{strong_text_end}ページã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’インãƒãƒ¼ãƒˆã§ãã¾ã™ã€‚"
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
-msgstr "çµ±åˆã‚’有効ã«ã™ã‚‹ã¨ã€CI/CD 用ã«æ¬¡ã®ä¿è­·å¤‰ã•ã‚ŒãŸæ•°ãŒä½œæˆã•ã‚Œã¾ã™ã€‚"
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
+msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr "ã“れらã®è²¢çŒ®ã‚¬ã‚¤ãƒ‰ãƒ©ã‚¤ãƒ³ã‚’確èªã—ãŸå¾Œã€æ¬¡ã®ã‚ˆã†ã«è¨­å®šã—ã¾ã™"
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4617,6 +4684,15 @@ msgstr "テストアラートãŒã‚¢ãƒ©ãƒ¼ãƒˆãƒªã‚¹ãƒˆã«è¡¨ç¤ºã•ã‚Œã‚‹ã‚ˆã†ã«
msgid "Algorithm"
msgstr "アルゴリズム"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "ã™ã¹ã¦"
@@ -4647,9 +4723,6 @@ msgstr "ã™ã¹ã¦ã®å¯¾è±¡ãƒ¦ãƒ¼ã‚¶ãƒ¼"
msgid "All environments"
msgstr "ã™ã¹ã¦ã®ç’°å¢ƒ"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr "ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«åå‰ãŒå¿…è¦ã§ã™ã€‚"
msgid "All users with matching cards"
msgstr "カードãŒä¸€è‡´ã™ã‚‹ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼"
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr "%{strongOpen}%{group_name}%{strongClose}ã¸ã®ã‚µã‚¤ãƒ³ã‚¤ãƒ³ã‚’許å¯ã—ã¾ã™ã‹?"
@@ -4761,12 +4837,18 @@ msgstr "ã“ã®ã‚­ãƒ¼ã§ã“ã®ãƒªãƒã‚¸ãƒˆãƒªã«ãƒ—ッシュã§ãるよã†ã«ã™
msgid "Allow use of licensed EE features"
msgstr "ライセンスã•ã‚ŒãŸ EE 機能ã®ä½¿ç”¨ã‚’許å¯ã™ã‚‹"
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr "ユーザーãŒã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’延長ã™ã‚‹ã“ã¨ã‚’許å¯ã™ã‚‹"
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr "GitLabã‚’OAuthプロãƒã‚¤ãƒ€ãƒ¼ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã‚¢ãƒ—リケーションをユーザーãŒç™»éŒ²ã™ã‚‹ã“ã¨ã‚’許å¯ã—ã¾ã™ã€‚ã“ã®è¨­å®šã¯ã‚°ãƒ«ãƒ¼ãƒ—レベルã®OAuthアプリケーションã«ã¯å½±éŸ¿ã—ã¾ã›ã‚“。"
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "許å¯"
@@ -4788,14 +4870,11 @@ msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ—ロジェクトã¾ãŸã¯ã‚µãƒ–グループãŒã‚°
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "Opstraceçµ±åˆã‚’使用ã—ã¦ãƒ—ロジェクトãŒã‚¨ãƒ©ãƒ¼ã‚’追跡ã§ãるよã†ã«ã—ã¾ã™ã€‚"
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Kubernetesクラスターを追加ãŠã‚ˆã³ç®¡ç†ã§ãã¾ã™ã€‚"
-
msgid "Almost there"
-msgstr "ã‚‚ã†å°‘ã—ã§ã™"
+msgstr "登録完了ã¾ã§ã‚ã¨å°‘ã—ã§ã™"
msgid "Almost there..."
-msgstr "ã‚‚ã†å°‘ã—ã§ã™"
+msgstr "登録完了ã¾ã§ã‚ã¨å°‘ã—ã§ã™"
msgid "Already blocked"
msgstr "ブロック済ã¿"
@@ -4851,9 +4930,6 @@ msgstr "åŒã˜ãƒ•ã‚£ãƒ³ã‚¬ãƒ¼ãƒ—リントã®%{link_start}アラート%{link_end}
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr "管ç†è€…ãŒæœ€å¤§æœ‰åŠ¹æœŸé™ã‚’%{maxDate}ã«è¨­å®šã—ã¾ã—ãŸã€‚%{helpLinkStart}詳ã—ã見る%{helpLinkEnd}。"
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "エンタープライズユーザーGitLabアカウントãŒã‚ãªãŸã®çµ„ç¹”ã«ã‚ˆã£ã¦ä½œæˆã•ã‚Œã¾ã—ãŸ"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "管ç†è€…㌠%{link_to} 㧠ã‚ãªãŸã® GitLab アカウントã®ãƒ‘スワードを変更ã—ã¾ã—ãŸã€‚"
@@ -4869,9 +4945,6 @@ msgstr "アプリケーション (%{link_to_client}) ãŒã‚ãªãŸã®GitLabアカ
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "最近ã€ç®¡ç†ãƒ‘ãƒãƒ«ã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ãŒé€ä¿¡ã•ã‚Œã¾ã—ãŸã€‚別ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã™ã‚‹å‰ã« %{wait_time_in_words} ãŠå¾…ã¡ãã ã•ã„。"
-msgid "An email will be sent with the report attached after it is generated."
-msgstr "レãƒãƒ¼ãƒˆãŒç”Ÿæˆã•ã‚ŒãŸå¾Œã«ã€ãƒ¬ãƒãƒ¼ãƒˆã‚’メールã§é€ä¿¡ã—ã¾ã™ã€‚"
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "GitLabユーザフィールドãŒç©ºã®å ´åˆã€ã™ã¹ã¦ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã¨ã‚³ãƒ¡ãƒ³ãƒˆã®èª¬æ˜Žã«FogBugzユーザã®ãƒ•ãƒ«ãƒãƒ¼ãƒ  (例: By John Smith) を追加ã—ã¾ã™ã€‚ã¾ãŸã€ã“れらã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚„コメントをプロジェクト作æˆè€…ã«é–¢é€£ä»˜ã‘ã‚‹ã‹ã€ã¾ãŸã¯å‰²ã‚Šå½“ã¦ã¾ã™ã€‚"
@@ -4947,9 +5020,6 @@ msgstr "サービスデスクã®ç„¡åŠ¹åŒ–中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "アラートã®æ¶ˆåŽ»ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページを更新ã—ã€ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "機能ã®ãƒã‚¤ãƒ©ã‚¤ãƒˆã®æ¶ˆåŽ»ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページを更新ã—ã€ã‚‚ã†ä¸€åº¦æ¶ˆåŽ»ã—ã¦ãã ã•ã„。"
-
msgid "An error occurred while drawing job relationship links."
msgstr "ジョブリレーションリンクã®æ画中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
@@ -5178,9 +5248,8 @@ msgstr "設定ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページをå†èª­
msgid "An error occurred while saving changes: %{error}"
msgstr "変更ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "設定ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "設定ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ä¿å­˜ã—ã¦ãã ã•ã„。"
@@ -5345,6 +5414,9 @@ msgstr "%{project_name} ã®åˆ†æžè¨­å®šã‚’正常ã«æ›´æ–°ã—ã¾ã—ãŸã€‚"
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr "本当ã«ã“ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã®ä½œæˆã‚’キャンセルã—ã¾ã™ã‹?"
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr "本当ã«ã“ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã®ç·¨é›†ã‚’キャンセルã—ã¾ã™ã‹?"
@@ -5453,6 +5525,9 @@ msgstr "イベントã®åå‰"
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr "データã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ"
@@ -5561,6 +5636,9 @@ msgstr "ダッシュボード %{dashboardSlug}ã®æ›´æ–°"
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr "å¯è¦–化ã®%{visualizationName}を更新中"
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr "å¯è¦–化デザイナーを使用ã—ã¦ã€ã‚«ã‚¹ã‚¿ãƒ ã®å¯è¦–化を作æˆã—ã¾ã™ã€‚å¯è¦–化をä¿å­˜ã—ãŸå¾Œã€ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã«è¿½åŠ ã§ãã¾ã™ã€‚"
@@ -5573,18 +5651,21 @@ msgstr ""
msgid "Analytics|Users"
msgstr "ユーザー"
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr "利用å¯èƒ½ãªãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã‚’表示"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
msgid "Analytics|Viewport"
msgstr "ビューãƒãƒ¼ãƒˆ"
msgid "Analytics|Visualization"
msgstr "å¯è¦–化"
-msgid "Analytics|Visualization Designer"
-msgstr "å¯è¦–化デザイナ"
-
msgid "Analytics|Visualization designer"
msgstr "å¯è¦–化デザイナ"
@@ -5615,9 +5696,6 @@ msgstr "ファイルを解æžä¸­â€¦"
msgid "Ancestors"
msgstr "祖先"
-msgid "And this registration token:"
-msgstr "ãã—ã¦ã€ã“ã®ç™»éŒ²ãƒˆãƒ¼ã‚¯ãƒ³:"
-
msgid "Anonymous"
msgstr "匿å"
@@ -5678,6 +5756,27 @@ msgstr "コメントを %{shrug} ã«è¿½åŠ "
msgid "Append the comment with %{tableflip}"
msgstr "コメントã«%{tableflip}を追加ã—ã¾ã™"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "ã“ã“ã«ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ドラッグã™ã‚‹ã‹ã€%{linkStart}ã“ã“%{linkEnd}をクリックã—ã¦ã‚’アップロードã—ã¾ã™ã€‚"
@@ -5690,17 +5789,14 @@ msgstr "エラー:プライベートキーファイル以外ã®ã‚‚ã®ã‚’アッãƒ
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr "ç¾åœ¨ã®ãƒ—ライベートキーを使用ã™ã‚‹ã«ã¯ç©ºã®ã¾ã¾ã«ã—ã¦ãã ã•ã„。"
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr "ä¿è­·ãƒ–ランãƒã¨ä¿è­·ã‚¿ã‚°ã«ã®ã¿å¤‰æ•°ã‚’設定ã™ã‚‹"
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr "ä¿è­·ãƒ–ランãƒã¨ä¿è­·ã‚¿ã‚°ã®ã¿"
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
-msgstr "Appleã®App Store Connect Issuer ID"
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
-msgstr "Appleã®App Store Connect Key ID"
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
msgstr "Apple㮠App Store Connectプライベートキー(.p8)"
@@ -5717,9 +5813,6 @@ msgstr "アプリケーション"
msgid "Application ID"
msgstr "アプリケーションID"
-msgid "Application analytics"
-msgstr "アプリケーション分æž"
-
msgid "Application limits saved successfully"
msgstr "アプリケーション制é™ã¯æ­£å¸¸ã«ä¿å­˜ã•ã‚Œã¾ã—ãŸ"
@@ -5742,7 +5835,7 @@ msgid "Application: %{name}"
msgstr "アプリケーション:%{name}"
msgid "ApplicationSettings|A Metrics Dashboard menu item appears in the Monitoring section of the Admin Area."
-msgstr "管ç†è€…エリアã®ãƒ¢ãƒ‹ã‚¿ãƒªãƒ³ã‚°ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã«ãƒ¡ãƒˆãƒªã‚¯ã‚¹ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼é …ç›®ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚"
+msgstr "メトリクスダッシュボードã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼é …ç›®ã¯ã€ç®¡ç†è€…エリアã®ãƒ¢ãƒ‹ã‚¿ãƒªãƒ³ã‚°ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚"
msgid "ApplicationSettings|Add a link to Grafana"
msgstr "Grafanaã¸ã®ãƒªãƒ³ã‚¯ã‚’追加"
@@ -6157,7 +6250,7 @@ msgid "Approvals|Section: %section"
msgstr "セクション: %section"
msgid "Approvals|The number of people who need to approve this is more than those who are allowed to. Please ask the project owner to update %{securityPolicy}."
-msgstr "ã“ã‚Œã®æ‰¿èªã«å¿…è¦ãªäººæ•°ãŒã€æ‰¿èªã‚’ã§ãる人よりも多ã„ã§ã™ã€‚%{securityPolicy}ã‚’æ›´æ–°ã™ã‚‹ã‚ˆã†ãƒ—ロジェクトã®ã‚ªãƒ¼ãƒŠãƒ¼ã«ä¾é ¼ã—ã¦ãã ã•ã„。"
+msgstr "承èªã«å¿…è¦ãªäººæ•°ãŒã€æ‰¿èªå¯èƒ½ãªäººæ•°ã‚ˆã‚Šã‚‚多ã„ã§ã™ã€‚%{securityPolicy}ã‚’æ›´æ–°ã™ã‚‹ã‚ˆã†ãƒ—ロジェクトã®ã‚ªãƒ¼ãƒŠãƒ¼ã«ä¾é ¼ã—ã¦ãã ã•ã„。"
msgid "Approvals|Verify the number of %{linkStart}eligible security approvers%{linkEnd} matches the required approvers for the security policy."
msgstr "%{linkStart}é©æ ¼ãªã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£æ‰¿èªè€…%{linkEnd}ã®äººæ•°ãŒã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒãƒªã‚·ãƒ¼ã«å¿…è¦ãªæ‰¿èªè€…ã¨ä¸€è‡´ã—ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚"
@@ -6231,9 +6324,6 @@ msgstr "アーカイブジョブ"
msgid "Archive project"
msgstr "プロジェクトをアーカイブ"
-msgid "Archive test case"
-msgstr "テストケースをアーカイブ"
-
msgid "Archived"
msgstr "アーカイブ済ã¿"
@@ -6297,6 +6387,9 @@ msgstr "本当ã«ã“ã®%{commentType}を削除ã—ã¾ã™ã‹?"
msgid "Are you sure you want to delete this SSH key?"
msgstr "ã“ã®SSHキーを削除ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’削除ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?"
@@ -6312,9 +6405,6 @@ msgstr "ã“ã®ãƒ©ãƒ™ãƒ«ã‚’削除ã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "ã“ã®ãƒ‘イプラインを削除ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹? ã“ã‚Œã«ã‚ˆã‚Šã€ã™ã¹ã¦ã®ãƒ‘イプラインキャッシュãŒæœŸé™åˆ‡ã‚Œã«ãªã‚Šã€ãƒ“ルドã€ãƒ­ã‚°ã€ã‚¢ãƒ¼ãƒ†ã‚£ãƒ•ã‚¡ã‚¯ãƒˆã€ãƒˆãƒªã‚¬ãƒ¼ãªã©ã®é–¢é€£ã‚ªãƒ–ジェクトãŒã™ã¹ã¦å‰Šé™¤ã•ã‚Œã¾ã™ã€‚ã“ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¯å…ƒã«æˆ»ã›ã¾ã›ã‚“。"
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr "本当ã«ã“ã®ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãƒ–ランãƒãƒ«ãƒ¼ãƒ«ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ"
-
msgid "Are you sure you want to deploy this environment?"
msgstr "本当ã«ã“ã®ç’°å¢ƒã‚’デプロイã—ã¾ã™ã‹?"
@@ -6504,9 +6594,6 @@ msgstr "ã“ã®ã‚¢ãƒ¼ãƒ†ã‚£ãƒ•ã‚¡ã‚¯ãƒˆã¯å®Œå…¨ã«å‰Šé™¤ã•ã‚Œã¾ã™ã€‚ã“ã®ã‚¢
msgid "Artifacts|Total artifacts size"
msgstr "アーティファクトã®åˆè¨ˆã‚µã‚¤ã‚º"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr "ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯æ–°è¦ã«ä½œæˆã•ã‚ŒãŸã‚‚ã®ã§ã‚ã‚‹ãŸã‚ã€ã¾ãšã¯ä»¥ä¸‹ã®ãƒªãƒ³ã‚¯ã‚’クリックã—ã¦ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’確èªã—ã¦ãã ã•ã„。"
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "SAST ã®ã•ã‚‰ãªã‚‹æ©Ÿèƒ½æ§‹ç¯‰ã‚’進ã‚ã‚‹ã«ã‚ãŸã‚Šã€%{linkStart}ã“ã®ã‚¤ã‚·ãƒ¥ãƒ¼%{linkEnd}ã® SAST 設定機能ã«é–¢ã™ã‚‹ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã‚’ãŠå¾…ã¡ã—ã¦ã„ã¾ã™ã€‚"
@@ -6522,6 +6609,9 @@ msgstr "自動的ã«æ¤œæŸ»ã™ã‚‹ãƒ–ランãƒã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šãƒªã‚¹ãƒˆã€‚ã™
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr "ユーザーã®ãƒ‘ーソナルアクセストークン。ユーザーã¯ã‚¿ã‚¹ã‚¯ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ã™ã¹ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å±žã—ã¾ã™ã€‚"
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr "インãƒãƒ¼ãƒˆã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã®è©³ç´°ã‚’確èªã™ã‚‹ã‚ˆã†ã€ç®¡ç†è€…ã«ä¾é ¼ã—ã¦ãã ã•ã„。"
@@ -6643,15 +6733,12 @@ msgstr "ãã‚Œãžã‚Œã® CODEOWNER ルールã«ä¸€è‡´ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’変更ã
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr "%{one_of_required_fields}ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ãŒå°‘ãªãã¨ã‚‚1ã¤å­˜åœ¨ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
+msgid "At least one of %{params} must be true"
+msgstr ""
+
msgid "At least one of group_id or project_id must be specified"
msgstr "group_id ã¾ãŸã¯ project_id ã‚’ 1 ã¤ä»¥ä¸ŠæŒ‡å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr "パーソナルアクセストークンã®å°‘ãªãã¨ã‚‚1ã¤ã®æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¦ã„ã¾ã™ã€‚%{generate_new}"
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr "パーソナルアクセストークンã®å°‘ãªãã¨ã‚‚1ã¤ã¯æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã‚ˆã†ã¨ã—ã¦ã„ã¾ã™ã€‚%{generate_new}"
-
msgid "At risk"
msgstr "å±é™º"
@@ -6739,10 +6826,10 @@ msgid "AuditStreams|AWS Region"
msgstr ""
msgid "AuditStreams|AWS S3"
-msgstr ""
+msgstr "AWS S3"
-msgid "AuditStreams|Access Key Xid"
-msgstr "アクセスキーXid"
+msgid "AuditStreams|Access Key ID"
+msgstr ""
msgid "AuditStreams|Active"
msgstr "アクティブ"
@@ -6819,6 +6906,9 @@ msgstr "イベントã®ãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚° (ä»»æ„)"
msgid "AuditStreams|Filter by audit event type"
msgstr "監査イベントタイプã§ãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°"
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr "Google Cloud Logging"
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr "イベントをé¸æŠž"
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr "監査イベントã®ã‚¹ãƒˆãƒªãƒ¼ãƒŸãƒ³ã‚°ã‚’設定ã™ã‚‹"
@@ -6948,6 +7044,9 @@ msgstr "èªè¨¼ã•ã‚ŒãŸWebレート制é™æœŸé–“(秒å˜ä½)"
msgid "Authenticated web requests"
msgstr "èªè¨¼ã•ã‚ŒãŸWebリクエスト"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "èªè¨¼"
@@ -7137,12 +7236,6 @@ msgstr "自動解決"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "ã“ã®ãƒ—ロジェクトã®ãƒ–ランãƒã¨ã‚¿ã‚°ã‚’upstreamリãƒã‚¸ãƒˆãƒªã‹ã‚‰è‡ªå‹•çš„ã«æ›´æ–°ã—ã¾ã™ã€‚"
-msgid "Automation"
-msgstr "自動化"
-
-msgid "Automation|Automation App"
-msgstr "自動化アプリ"
-
msgid "Autosave|Note"
msgstr "注æ„"
@@ -7167,12 +7260,18 @@ msgstr "ã‚¢ãƒã‚¿ãƒ¼ã‚’消去ã—ã¾ã™ã€‚本当ã«ã‚ˆã‚ã—ã„ã§ã™ã‹ ?"
msgid "Average per day: %{average}"
msgstr "1æ—¥ã‚ãŸã‚Šã®å¹³å‡: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr "ユーザーã®ã‚µã‚¤ãƒ³ã‚¢ãƒƒãƒ—ã‚’å¾…ã£ã¦ã„ã¾ã™"
msgid "AwardEmoji|No emoji found."
msgstr "絵文字ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "戻る"
@@ -7224,9 +7323,6 @@ msgstr "ãƒãƒƒã‚¸ã‚’追加"
msgid "Badges|Add new badge"
msgstr "æ–°ã—ã„ãƒãƒƒã‚¸ã‚’追加"
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "ãƒãƒƒã‚¸ã®è¿½åŠ ã«å¤±æ•—ã—ã¾ã—ãŸã€‚入力ã—ãŸURLを確èªã—ã¦ã€ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Badges|Badge image URL"
msgstr "ãƒãƒƒã‚¸ç”»åƒã®URL"
@@ -7239,9 +7335,6 @@ msgstr "ãƒãƒƒã‚¸ã‚’ä¿å­˜ã—ã¾ã—ãŸã€‚"
msgid "Badges|Delete badge?"
msgstr "ãƒãƒƒã‚¸ã‚’削除ã—ã¾ã™ã‹ ?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "ãƒãƒƒã‚¸ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Badges|Edit badge"
msgstr "ãƒãƒƒã‚¸ã‚’編集"
@@ -7251,9 +7344,18 @@ msgstr "有効ãªURLを入力ã—ã¦ãã ã•ã„"
msgid "Badges|Example: %{exampleUrl}"
msgstr "例: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "グループãƒãƒƒã‚¸"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "リンク"
@@ -7287,18 +7389,21 @@ msgstr "サãƒãƒ¼ãƒˆã•ã‚Œã‚‹%{docsLinkStart}変数%{docsLinkEnd}: %{placeholder
msgid "Badges|The badge was deleted."
msgstr "ãƒãƒƒã‚¸ãŒå‰Šé™¤ã•ã‚Œã¾ã—ãŸã€‚"
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ãƒãƒƒã‚¸ã¯ã‚ã‚Šã¾ã›ã‚“。上記ã®ãƒãƒƒã‚¸ã‚’作æˆã™ã‚‹ã“ã¨ã‹ã‚‰å§‹ã‚ã¾ã—ょã†ã€‚"
-
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr "ã“ã®ãƒ—ロジェクトã«ã¯ãƒãƒƒã‚¸ã¯ã‚ã‚Šã¾ã›ã‚“。上記ã®æ–°ã—ã„ãƒãƒƒã‚¸ã‚’作æˆã™ã‚‹ã“ã¨ã‹ã‚‰å§‹ã‚ã¾ã—ょã†ã€‚"
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "ã“ã®ãƒãƒƒã‚¸ã‚’削除ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚削除ã•ã‚ŒãŸãƒãƒƒã‚¸ã¯%{strongStart}復元ã§ãã¾ã›ã‚“%{strongEnd}。"
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr ""
msgid "Badges|Your badges"
msgstr "ã‚ãªãŸã®ãƒãƒƒã‚¸"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7308,8 +7413,8 @@ msgstr "Bamboo URL"
msgid "BambooService|Bamboo build plan key."
msgstr "Bambooã®ãƒ“ルドプランキー。"
-msgid "BambooService|Bamboo service root URL."
-msgstr "Bamboo サービスã®ãƒ«ãƒ¼ãƒˆURL。"
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr "æ–°ã—ã„ビルドキーã®å…¥åŠ›"
@@ -7323,8 +7428,8 @@ msgstr "Atlassian Bambooを使ã£ã¦CI/CDパイプラインを実行ã™ã‚‹ã€‚"
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr "Atlassian Bambooã§CI/CDパイプラインを実行ã—ã¾ã™ã€‚Bambooã§è‡ªå‹•ãƒªãƒ“ジョンラベルã¨ãƒªãƒã‚¸ãƒˆãƒªãƒˆãƒªã‚¬ãƒ¼ã‚’設定ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚%{docs_link}"
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "Bambooサーãƒãƒ¼ã¸ã®APIアクセス権をæŒã¤ãƒ¦ãƒ¼ã‚¶ãƒ¼ã€‚"
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr "BANã•ã‚Œã¾ã—ãŸ"
@@ -7428,9 +7533,6 @@ msgstr "ã“ã®çµ±åˆã‚’有効ã«ã™ã‚‹å‰ã«ã€ã“ã®ãƒ—ロジェクトã‹ã‚‰é€š
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "コードを挿入ã™ã‚‹å‰ã«ã€å„コードグループを分離ã—ãŸã‚³ãƒ¡ãƒ³ãƒˆã‚’å¿…ãšèª­ã‚“ã§ãã ã•ã„。"
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr "ã“れをマージã™ã‚‹ã«ã¯ã€ã‚¿ã‚¤ãƒˆãƒ«ã¾ãŸã¯èª¬æ˜Žã«Jiraã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’リンクã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
-
msgid "Begin with the selected commit"
msgstr "é¸æŠžã—ãŸã‚³ãƒŸãƒƒãƒˆã‹ã‚‰é–‹å§‹"
@@ -7477,7 +7579,7 @@ msgid "Billable Users"
msgstr "請求å¯èƒ½ãƒ¦ãƒ¼ã‚¶ãƒ¼"
msgid "Billing"
-msgstr "料金"
+msgstr "価格"
msgid "BillingPlans|%{group_name} is currently using the %{plan_name}"
msgstr "%{group_name}ã®ç¾åœ¨ã®ãƒ—ランã¯%{plan_name}ã§ã™ã€‚"
@@ -7788,6 +7890,9 @@ msgstr "ã“ã‚Œã§ã€å…±æœ‰ãƒ©ãƒ³ãƒŠãƒ¼ã§ç„¡æ–™ã®ã‚³ãƒ³ãƒ”ューティング時
msgid "Billings|Your account has been validated"
msgstr "アカウントãŒèªè¨¼ã•ã‚Œã¾ã—ãŸã€‚"
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr "SaaSプランã€%{plan}ã®ã‚·ãƒ¼ãƒˆãŒä½¿ç”¨ã•ã‚Œã¦ã„ã¾ã™"
@@ -7818,14 +7923,14 @@ msgstr "GitLabサブスクリプションã®è©³ç´°ã‚’読ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼
msgid "Billing|An error occurred while loading billable members list."
msgstr "請求å¯èƒ½ãªãƒ¡ãƒ³ãƒãƒ¼ã®ãƒªã‚¹ãƒˆã®èª­ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "コードæ案アドオンã®è©³ç´°ã®èª­ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚å•é¡ŒãŒè§£æ±ºã—ãªã„å ´åˆã¯ã€ %{supportLinkStart}サãƒãƒ¼ãƒˆã«ãŠå•ã„åˆã‚ã›%{supportLinkEnd}ãã ã•ã„。"
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr "ä¿ç•™ä¸­ã®ãƒ¡ãƒ³ãƒãƒ¼ã®ãƒªã‚¹ãƒˆã®èª­ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "コードæ案アドオンã®è©³ç´°ã®èª­ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚å•é¡ŒãŒè§£æ±ºã—ãªã„å ´åˆã¯ã€ %{supportLinkStart}サãƒãƒ¼ãƒˆã«ãŠå•ã„åˆã‚ã›%{supportLinkEnd}ãã ã•ã„。"
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while removing a billable member."
msgstr "請求å¯èƒ½ãªãƒ¡ãƒ³ãƒãƒ¼ã®ãƒªã‚¹ãƒˆã®æ¶ˆåŽ»ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
@@ -7842,11 +7947,11 @@ msgstr "ダイレクトメンãƒãƒ¼"
msgid "Billing|Enter at least three characters to search."
msgstr "å°‘ãªãã¨ã‚‚3文字以上ã§æ¤œç´¢ã—ã¦ãã ã•ã„."
-msgid "Billing|Error assigning Code Suggestions add-on"
-msgstr "コードæ案アドオンã®å‰²ã‚Šå½“ã¦ã‚¨ãƒ©ãƒ¼"
+msgid "Billing|Error assigning Duo Pro add-on"
+msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
-msgstr "コードæ案アドオンã®å‰²ã‚Šå½“ã¦è§£é™¤ã‚¨ãƒ©ãƒ¼"
+msgid "Billing|Error un-assigning Duo Pro add-on"
+msgstr ""
msgid "Billing|Explore paid plans"
msgstr "有料プランを探索"
@@ -7885,12 +7990,6 @@ msgstr "ã“ã®ãƒ¡ãƒ³ãƒãƒ¼ã«ã‚¢ãƒ‰ã‚ªãƒ³ã‚’割り当ã¦ã‚‹ã¨ãã«å•é¡ŒãŒç™º
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr "ã“ã®ãƒ¡ãƒ³ãƒãƒ¼ã«ã‚¢ãƒ‰ã‚ªãƒ³ã‚’割り当ã¦ã‚’解除ã™ã‚‹ã¨ãã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚å•é¡ŒãŒè§£æ±ºã—ãªã„å ´åˆã¯ã€ %{supportLinkStart}サãƒãƒ¼ãƒˆã«ãŠå•ã„åˆã‚ã›%{supportLinkEnd}ãã ã•ã„。"
-msgid "Billing|Subscription end"
-msgstr "サブスクリプション終了"
-
-msgid "Billing|Subscription start"
-msgstr "サブスクリプション開始"
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "トライアル終了時ã«ã™ã¹ã¦ã®ãƒ¡ãƒ³ãƒãƒ¼ãŒã‚°ãƒ«ãƒ¼ãƒ—ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãるよã†ã«ã™ã‚‹ã«ã¯ã€æœ‰æ–™æž ã«ã‚¢ãƒƒãƒ—グレードã—ã¾ã™ã€‚"
@@ -7912,8 +8011,11 @@ msgstr "ä¿ç•™ä¸­ã®æ‰¿èªã‚’表示"
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "ユーザー%{username}をサブスクリプションã‹ã‚‰å‰Šé™¤ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚続行ã™ã‚‹ã¨ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯%{namespace}グループã¨ãã®ã™ã¹ã¦ã®ã‚µãƒ–グループãŠã‚ˆã³ãƒ—ロジェクトã‹ã‚‰å‰Šé™¤ã•ã‚Œã¾ã™ã€‚ã“ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¯å…ƒã«æˆ»ã›ã¾ã›ã‚“。"
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
-msgstr "利用å¯èƒ½ãªã™ã¹ã¦ã®ã‚³ãƒ¼ãƒ‰æ案アドオンシートを割り当ã¦ã¾ã—ãŸã€‚ã‚‚ã£ã¨ã‚·ãƒ¼ãƒˆã‚’購入ã—ãŸã„%{salesLinkEnd}å ´åˆã¯ã€ã‚»ãƒ¼ãƒ«ã‚¹ãƒãƒ¼ãƒ  %{salesLinkStart}ã¾ã§ã”連絡ãã ã•ã„。"
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
msgstr "ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—ã¯æœ€è¿‘ã€ç„¡æ–™ãƒ—ランを使用ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸã€‚%{over_limit_message}アクセスã™ã‚‹å¿…è¦ãŒãªããªã£ãŸãƒ¡ãƒ³ãƒãƒ¼ã‚’削除ã—ã¦ã€æ–°ã—ã„メンãƒãƒ¼ã®ãŸã‚ã«ã‚¹ãƒšãƒ¼ã‚¹ã‚’作るã‹ã€åˆ¶é™ã‚’増やã™ã‚ˆã†ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚無制é™ã®æ•°ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’å¾—ã‚‹ã«ã¯ã€ãƒ—ランを有料枠ã«%{link_start}アップグレード%{link_end}ã—ã¦ãã ã•ã„。"
@@ -8103,12 +8205,6 @@ msgstr[0] "+ %{displayedIssuablesCount}以上ã®%{issuableType}"
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr " %{issuableType}ã®ä½œæˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "エピックã®ä½œæˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "イシューã®ä½œæˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "リストã®ä½œæˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -8127,9 +8223,6 @@ msgstr "ボードã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr "ボードã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "å­ã‚°ãƒ«ãƒ¼ãƒ—ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr "エピックã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -8139,18 +8232,12 @@ msgstr "グループプロジェクトã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr "グループã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "イシューã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr "イシューã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr "イテレーションã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "ラベルã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページをリロードã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr "ラベルã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -8163,51 +8250,27 @@ msgstr "マイルストーンã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr "最近ã®ãƒœãƒ¼ãƒ‰ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "ボードã®ã‚¨ãƒ”ックã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページをリロードã—ã¦ãã ã•ã„。"
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "ボードã®ã‚¤ã‚·ãƒ¥ãƒ¼å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "ボードリストã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "ボードスイムレーンã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr "ボードã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページをå†èª­ã¿è¾¼ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr "未割り当ã¦ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr "ユーザーã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "リストã®ç”Ÿæˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr " %{issuableType}ã®ç§»å‹•ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "エピックã®ç§»å‹•ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "イシューã®ç§»å‹•ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr "リストã®ç§»å‹•ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "リストã®å‰Šé™¤ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr "カードã®é¸æŠžä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "ボードリストã®æ›´æ–°ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr "リストã®æ›´æ–°ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] "%{issuableType}を%{blockedByCount}件ブロック"
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "折りãŸãŸã‚€"
@@ -8236,9 +8302,6 @@ msgstr "å…¨ã¦è¡¨ç¤º"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr "%{issuableType}ã®ãƒ–ロックをå–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ"
-msgid "Boards|Move card"
-msgstr "カードを移動"
-
msgid "Boards|Move to end of list"
msgstr "リストã®æœ€å¾Œã«ç§»å‹•"
@@ -8332,6 +8395,9 @@ msgstr "ã“ã®åå‰ã®ãƒ–ランãƒã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™"
msgid "Branch name"
msgstr "ブランãƒå"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr "ブランãƒåã®ãƒ†ãƒ³ãƒ—レート"
@@ -8341,6 +8407,18 @@ msgstr "ブランãƒã¯èª­ã¿è¾¼ã¾ã‚Œã¦ã„ã¾ã›ã‚“ - %{branchId}"
msgid "Branch rules"
msgstr "ブランãƒãƒ«ãƒ¼ãƒ«"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "%{linkStart}ワイルドカード%{linkEnd}ã¯*-stableã‚„production/ãªã©ãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã™"
@@ -8407,15 +8485,27 @@ msgstr "ブランãƒ"
msgid "BranchRules|Branch name or pattern"
msgstr "ブランãƒåã¾ãŸã¯ãƒ‘ターン"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "ブランãƒãƒ«ãƒ¼ãƒ«ã®è©³ç´°"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr "マージリクエストã§ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹å¿œç­”を確èªã—ã¾ã™ã€‚失敗ã—ã¦ã‚‚マージをブロックã—ã¾ã›ã‚“。%{linkStart}詳細ã¯ã“ã¡ã‚‰%{linkEnd}"
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr "ä¿è­·ãƒ–ランãƒã‚’作æˆ"
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "ワイルドカードを作æˆ: %{searchTerm}"
@@ -8473,6 +8563,12 @@ msgstr "コードオーナーã‹ã‚‰ã®æ‰¿èªãŒå¿…è¦"
msgid "BranchRules|Roles"
msgstr "ロール"
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "ステータスãƒã‚§ãƒƒã‚¯"
@@ -8491,6 +8587,9 @@ msgstr "ユーザー"
msgid "BranchRules|View details"
msgstr "詳細を表示"
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "デフォルト"
@@ -8503,6 +8602,9 @@ msgstr "ブランãƒ"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr "ブランãƒ: %{source_branch}ã‹ã‚‰%{target_branch}"
@@ -8803,6 +8905,12 @@ msgstr "ファイルをå‚ç…§"
msgid "Browse templates"
msgstr "テンプレートを見る"
+msgid "Bugs created per month by Priority"
+msgstr "月ã‚ãŸã‚Šã®ä½œæˆã•ã‚ŒãŸãƒã‚°ä»¶æ•°ï¼ˆå„ªå…ˆåº¦åˆ¥ï¼‰"
+
+msgid "Bugs created per month by Severity"
+msgstr "月ã‚ãŸã‚Šã®ä½œæˆã•ã‚ŒãŸãƒã‚°ä»¶æ•°ï¼ˆé‡å¤§åº¦åˆ¥ï¼‰"
+
msgid "Build cannot be erased"
msgstr "ビルドã¯æ¶ˆåŽ»ã§ãã¾ã›ã‚“"
@@ -8836,9 +8944,18 @@ msgstr "%{feature} (v%{version} ãŒå¿…è¦)"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr "グループをインãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã€%{linkStart}表示レベル%{linkEnd}ã«æ³¨æ„ã—ã¦ãã ã•ã„。"
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr "ソースインスタンスã®ãƒ™ãƒ¼ã‚¹URLã¨ãƒ‘ーソナルアクセストークンãŒæ±‚ã‚られるè¦ä»¶ã‚’満ãŸã—ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
+
msgid "BulkImport|Destination"
msgstr "移動先"
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr "直接転é€ã®æœ€å¤§ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚º(MiB)"
@@ -8848,17 +8965,26 @@ msgstr "ソースグループã§çµžã‚Šè¾¼ã‚€"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr "以下ã®ãƒ‡ãƒ¼ã‚¿ã¯ç§»è¡Œã•ã‚Œã¾ã›ã‚“: %{bullets} 移行ã«ã“ã®ãƒ‡ãƒ¼ã‚¿ãŒå¿…è¦ãªå ´åˆã¯ã€%{host}ã®ã‚·ã‚¹ãƒ†ãƒ ç®¡ç†è€…ã«é€£çµ¡ã—㦠GitLab をアップグレードã—ã¦ãã ã•ã„"
-msgid "BulkImport|GitLab Migration history"
-msgstr "GitLab移行履歴"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
+msgstr "グループインãƒãƒ¼ãƒˆã¯ã€ã‚½ãƒ¼ã‚¹ã¾ãŸã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆå…ˆã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã§ç„¡åŠ¹ã«ãªã£ã¦ã„ã¾ã™ã€‚両方ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã§æœ‰åŠ¹ã«ã™ã‚‹ã‚ˆã†ã«ç®¡ç†è€…ã«ä¾é ¼ã—ã¦ã€ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
msgid "BulkImport|History"
msgstr "履歴"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr "インãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚「%{path}ã€ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚インãƒãƒ¼ãƒˆå…ˆã‚’変更ã—ã¦ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。"
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr "インãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚インãƒãƒ¼ãƒˆå…ˆã€Œ%{destination}ã€ãŒç„¡åŠ¹ã‹ã€æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr "インãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚インãƒãƒ¼ãƒˆå…ˆã®URL %{url}"
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr "インãƒãƒ¼ãƒˆã«å¤±æ•—: é€ä¿¡å…ˆã‚’ソースグループã®ã‚µãƒ–グループã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。é€ä¿¡å…ˆã‚’変更ã—ã¦å†åº¦ãŠè©¦ã—下ã•ã„。"
-msgid "BulkImport|Import groups from GitLab"
-msgstr "GitLabã‹ã‚‰ã‚°ãƒ«ãƒ¼ãƒ—をインãƒãƒ¼ãƒˆ"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr "インãƒãƒ¼ãƒˆãŒçµ‚了ã—ã¾ã—ãŸã€‚å†ã‚¤ãƒ³ãƒãƒ¼ãƒˆã®ãŸã‚ã«åˆ¥ã®åå‰ã‚’é¸æŠžã—ã¦ãã ã•ã„"
@@ -8875,6 +9001,12 @@ msgstr "プロジェクトã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã¯%{docsLinkStart}ベータ%{docsLi
msgid "BulkImport|Importing the group failed."
msgstr "グループã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ."
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr "無効ãªã‚½ãƒ¼ã‚¹URLã§ã™ã€‚ソースã®GitLabインスタンスã®ãƒ™ãƒ¼ã‚¹URLã®ã¿ã‚’入力ã—ã¦ãã ã•ã„。"
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr "%{link}ã¸ã®æœ€çµ‚インãƒãƒ¼ãƒˆ"
@@ -8929,8 +9061,11 @@ msgstr "ソース"
msgid "BulkImport|Source group"
msgstr "ソースグループ"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
-msgstr "テンプレート/ファイルベースã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ/ GitLab移行"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
+msgstr "サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„GitLabãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã™ã€‚サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„る最å°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ã€Œ%{version}ã€ã§ã™ã€‚"
msgid "BulkImport|Update of import statuses with realtime changes failed"
msgstr "リアルタイムã®å¤‰æ›´ã‚’ä¼´ã†ã‚¤ãƒ³ãƒãƒ¼ãƒˆçŠ¶æ…‹ã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸ"
@@ -8992,9 +9127,6 @@ msgstr "追加ã®ãƒ‘イプライン時間 (分) を購入ã™ã‚‹"
msgid "By %{user_name}"
msgstr "%{user_name} ã«ã‚ˆã‚‹"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "エンタープライズã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é–¢é€£ä»˜ã‘られãŸã‚¢ã‚«ã‚¦ãƒ³ãƒˆã§èªè¨¼ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€GitLabã¯ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãŒã‚¨ãƒ³ã‚¿ãƒ¼ãƒ—ライズユーザーã§ã‚ã‚‹ã¨ã¿ãªã—ã¾ã™ã€‚"
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr "デフォルトã§ã¯ã€ã™ã¹ã¦ã®ãƒ—ロジェクトã¨ã‚°ãƒ«ãƒ¼ãƒ—ã§ã‚°ãƒ­ãƒ¼ãƒãƒ«é€šçŸ¥è¨­å®šã‚’使用ã—ã¾ã™ã€‚"
@@ -9134,6 +9266,9 @@ msgstr "ã™ã¹ã¦ã®ãƒ—ロジェクトã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã® Auto DevOps パイãƒ
msgid "CICD|Deployment strategy"
msgstr "デプロイ戦略"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr "ã“ã®æ©Ÿèƒ½ã‚’無効ã«ã™ã‚‹ã¨æ’ä¹…çš„ãªå¤‰æ›´ã«ãªã‚Šã¾ã™ã€‚"
@@ -9155,6 +9290,12 @@ msgstr "ã“ã®ãƒ—ロジェクト%{italicStart}ã‹ã‚‰%{italicEnd} ã®ã‚¢ã‚¯ã‚»ã‚¹
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr "ã“ã®ãƒ—ロジェクト%{italicStart}ã¸%{italicEnd} ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’制é™ã—ã¾ã™(éžæŽ¨å¥¨"
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr "ä»–ã®ãƒ—ロジェクトãŒè¨±å¯ãƒªã‚¹ãƒˆã«è¿½åŠ ã•ã‚Œã¦ã„ãªã„é™ã‚Šã€ã“ã®ãƒ—ロジェクトã®CI/CDジョブトークンを他ã®ãƒ—ロジェクトã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ã‚’ç¦æ­¢ã—ã¾ã™ã€‚承èªã•ã‚Œã¦ã„ãªã„プロジェクトãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒˆãƒ¼ã‚¯ãƒ³ã‚’å–å¾—ã—ã¦APIã«ã‚¢ã‚¯ã‚»ã‚¹ã—よã†ã¨ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ãŸã‚ã€ã“ã®æ©Ÿèƒ½ã‚’無効ã«ã™ã‚‹ã¨ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒªã‚¹ã‚¯ãŒç”Ÿã˜ã¾ã™ã€‚%{linkStart}詳細ã¯ã“ã¡ã‚‰%{linkEnd} 。"
@@ -9218,18 +9359,6 @@ msgstr "CVE IDをリクエスト"
msgid "CVE|Why Request a CVE ID?"
msgstr "ãªãœCVE IDをリクエストã™ã‚‹ã®ã§ã™ã‹?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr "ã“ã®æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ã“ã¨ã§ã€%{linkStart}テスト利用è¦ç´„%{linkEnd}ã«åŒæ„ã—ãŸã‚‚ã®ã¨ã¿ãªã•ã‚Œã¾ã™"
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr "継続的脆弱性スキャン"
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr "GitLab Advisory Databaseã¸ã®æ–°ã—ã„データã®è¿½åŠ æ™‚ã«ã€ãƒ‘イプライン外ã®è„†å¼±æ€§ã‚’検出ã§ãã¾ã™ã€‚"
-
-msgid "CVS|Toggle CVS"
-msgstr "CVSã®åˆ‡ã‚Šæ›¿ãˆ"
-
msgid "Cadence is not automated"
msgstr "ケイデンスã¯è‡ªå‹•åŒ–ã•ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -9248,18 +9377,18 @@ msgstr "Campfireサブドメイン(オプション)"
msgid "Campfire token"
msgstr "Campfireトークン"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "Campfireã®APIèªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ã€‚"
-msgid "CampfireService|From the end of the room URL."
-msgstr "ルームURLã®æœ«å°¾ã‹ã‚‰ã€‚"
+msgid "CampfireService|ID portion of the Campfire room URL."
+msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr "プッシュイベントã«é–¢ã™ã‚‹é€šçŸ¥ã‚’Campfireãƒãƒ£ãƒƒãƒˆãƒ«ãƒ¼ãƒ ã«é€ä¿¡ã—ã¾ã™ã€‚%{docs_link}"
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr "%{code_open}.campfirenow.com%{code_close}ã®ã‚µãƒ–ドメイン。"
-
msgid "Can be manually deployed to"
msgstr "手動デプロイå¯èƒ½å…ˆ"
@@ -9269,6 +9398,9 @@ msgstr "トップレベルグループを作æˆã§ãã¾ã™:"
msgid "Can not delete primary training"
msgstr "プライマリートレーニングを削除ã§ãã¾ã›ã‚“。"
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr "ソースブランãƒãŒå‰Šé™¤ã•ã‚ŒãŸãŸã‚ã€é©ç”¨ã§ãã¾ã›ã‚“。"
@@ -9312,7 +9444,7 @@ msgid "Can't update snippet: %{err}"
msgstr "スニペットを更新ã§ãã¾ã›ã‚“ã§ã—ãŸ: %{err}"
msgid "Canary"
-msgstr "Canary"
+msgstr "カナリア"
msgid "Canary Ingress does not exist in the environment."
msgstr "カナリアIngressã¯ã“ã®ç’°å¢ƒã«å­˜åœ¨ã—ã¾ã›ã‚“。"
@@ -9719,6 +9851,9 @@ msgstr "%{duration} ã§"
msgid "ChatMessage|in %{project_link}"
msgstr "%{project_link}ã«"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "å†ãƒã‚§ãƒƒã‚¯"
@@ -9829,6 +9964,9 @@ msgstr "ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã“ã®ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã—ã¦
msgid "Checkout|Billing address"
msgstr "請求先ä½æ‰€"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "CI 分"
@@ -9841,6 +9979,9 @@ msgstr "ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆ"
msgid "Checkout|City"
msgstr "市町æ‘"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr "コンピューティングパック"
@@ -9853,6 +9994,9 @@ msgstr "購入を確èª"
msgid "Checkout|Confirming..."
msgstr "確èªã—ã¦ã„ã¾ã™..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "請求ã«é€²ã‚€"
@@ -9902,7 +10046,7 @@ msgid "Checkout|GB"
msgstr "GB"
msgid "Checkout|GitLab group"
-msgstr "GitLab グループ"
+msgstr "GitLabグループ"
msgid "Checkout|GitLab plan"
msgstr "GitLabプラン"
@@ -9913,6 +10057,9 @@ msgstr "グループ"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr "クーãƒãƒ³ã‚³ãƒ¼ãƒ‰ãŒç„¡åŠ¹ã§ã™ã€‚有効ãªã‚¯ãƒ¼ãƒãƒ³ã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ãã ã•ã„。"
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "%{minimumNumberOfUsers} (使用中ã®ã‚·ãƒ¼ãƒˆæ•°) 以上ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。"
@@ -9970,6 +10117,9 @@ msgstr "市区町æ‘以下ã®ä½æ‰€"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "クレジットカードã®ãƒ•ã‚©ãƒ¼ãƒ ã®é€ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸã€‚コード:%{errorCode}ã€%{errorMessage}"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "サブスクリプションã®è©³ç´°"
@@ -9982,6 +10132,9 @@ msgstr "æˆåŠŸ:サブスクリプション"
msgid "Checkout|Tax"
msgstr "税"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "åˆè¨ˆ"
@@ -10051,9 +10204,6 @@ msgstr "ファイルをé¸æŠž..."
msgid "Choose a file"
msgstr "ファイルをé¸æŠžã—ã¦ãã ã•ã„"
-msgid "Choose a group"
-msgstr "グループをé¸æŠž"
-
msgid "Choose a template"
msgstr "テンプレートをé¸æŠžã—ã¦ãã ã•ã„"
@@ -10117,6 +10267,9 @@ msgstr "ã“ã®ãƒªã‚½ãƒ¼ã‚¹ã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™º
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr "CI/CDカタログã«æˆ»ã‚‹"
@@ -10135,7 +10288,10 @@ msgstr "コンãƒãƒ¼ãƒãƒ³ãƒˆ"
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr "パイプラインコンãƒãƒ¼ãƒãƒ³ãƒˆãƒªãƒã‚¸ãƒˆãƒªã‚’作æˆã—ã€ãƒ‘イプライン構æˆã®å†åˆ©ç”¨ã‚’迅速ã‹ã¤å®¹æ˜“ã«ã—ã¾ã™ã€‚"
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr "プロジェクトã«ç§»å‹•"
msgid "CiCatalog|Last release at %{date}"
msgstr "最終リリース: %{date}"
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr "プロジェクトをCI/CDカタログリソースã¨ã—ã¦ãƒžãƒ¼ã‚¯"
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr "プロジェクトをCI/CDカタログリソースã¨ã—ã¦ãƒžãƒ¼ã‚¯ã—ã¾ã™ã€‚%{linkStart}CI/CDカタログã¨ã¯ä½•ã§ã™ã‹?%{linkEnd}"
-
msgid "CiCatalog|No component available"
msgstr "利用å¯èƒ½ãªã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒã‚ã‚Šã¾ã›ã‚“"
msgid "CiCatalog|No release available"
msgstr "利用å¯èƒ½ãªãƒªãƒªãƒ¼ã‚¹ã¯ã‚ã‚Šã¾ã›ã‚“"
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr "Page%{currentPage} / %{totalPage}"
@@ -10168,26 +10321,47 @@ msgstr "Readme"
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr "%{author}ã«ã‚ˆã£ã¦%{timeAgo}ã«ãƒªãƒªãƒ¼ã‚¹"
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
-msgstr "ã“ã®åå‰ç©ºé–“ã§åˆ©ç”¨ã§ãã‚‹ã€ãƒ‘イプラインコンãƒãƒ¼ãƒãƒ³ãƒˆã®ãƒªãƒã‚¸ãƒˆãƒªã€‚"
+msgid "CiCatalog|Remove from the CI/CD catalog"
+msgstr ""
+
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
+msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
-msgstr "プロジェクトã«ã¯README.mdファイルã¨template.ymlファイルãŒå«ã¾ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚有効ã«ã™ã‚‹ã¨ã€CI/CDカタログã§ãƒªãƒã‚¸ãƒˆãƒªã‚’利用å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚"
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr "CI/CDカタログ設定ã®å–得中ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
-msgstr "プロジェクトをCI/CDカタログリソースã¨ã—ã¦ãƒžãƒ¼ã‚¯ã™ã‚‹éš›ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr "CI/CDカタログリソースã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr "ã“ã®ãƒ—ロジェクトã¯ç¾åœ¨ã€CI/CDカタログリソースã§ã™ã€‚"
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
-msgstr "ã“ã®ãƒ—ロジェクトã¯CI/CDカタログリソースã¨ã—ã¦ãƒžãƒ¼ã‚¯ã•ã‚Œã€CI/CDカタログã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ã“ã®æ“作ã¯å–り消ã›ã¾ã›ã‚“。"
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
+msgstr ""
msgid "CiCatalog|Unreleased"
msgstr "未リリース"
@@ -10195,6 +10369,9 @@ msgstr "未リリース"
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr "パイプラインコンãƒãƒ¼ãƒãƒ³ãƒˆãƒªãƒã‚¸ãƒˆãƒªã®ä½œæˆã¨ç®¡ç†ã‚’支æ´ã—ã¤ã¤ã€ãƒ‘イプライン構æˆã®å†åˆ©ç”¨ã‚’容易ã«ã—ã¾ã™ã€‚ã”æ„見・ã”感想をãŠå¯„ã›ãã ã•ã„。"
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "日付範囲: %{range}"
@@ -10285,6 +10462,18 @@ msgstr "待機中"
msgid "CiStatusText|Warning"
msgstr "警告"
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr "変数キーã«ã¯ã€æ–‡å­—ã€æ•°å­—ã€ãŠã‚ˆã³ã€Œ_ã€ã®ã¿ã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
+
msgid "CiVariables|Add variable"
msgstr "変数を追加"
@@ -10372,14 +10561,23 @@ msgstr "ã“ã®å®Ÿè¡Œã§ä½¿ç”¨ã™ã‚‹å¤‰æ•°å€¤ã‚’指定ã—ã¾ã™ã€‚デフォルト
msgid "CiVariables|State"
msgstr "状態"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr "継承ã•ã‚ŒãŸCI変数ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr "ã“ã®%{entity}ã«ã¯ã€å®šç¾©æ¸ˆã¿ã®CI/CD変数ãŒ%{currentVariableCount}個ã‚ã‚Šã¾ã™ã€‚%{entity}ã‚ãŸã‚Šã®å¤‰æ•°ã®æœ€å¤§æ•°ã¯%{maxVariableLimit}ã§ã™ã€‚æ–°ã—ã„変数を追加ã™ã‚‹ã«ã¯ã€å®šç¾©ã•ã‚ŒãŸå¤‰æ•°ã®æ•°ã‚’減らã™å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
-msgid "CiVariables|This variable value does not meet the masking requirements."
-msgstr "ã“ã®å¤‰æ•°ã®å€¤ã¯ãƒžã‚¹ã‚­ãƒ³ã‚°è¦ä»¶ã‚’満ãŸã—ã¦ã„ã¾ã›ã‚“。"
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
+msgstr ""
msgid "CiVariables|Type"
msgstr "種類"
@@ -10402,11 +10600,23 @@ msgstr "変数ã¯ã‚¸ãƒ§ãƒ–ã®ãƒ­ã‚°ã§ãƒžã‚¹ã‚¯ã•ã‚Œã¾ã™ã€‚æ­£è¦è¡¨ç¾ã®æ¡
msgid "CiVariables|Variables"
msgstr "変数"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr "ã“ã“ã§æŒ‡å®šã—ãŸå¤‰æ•°ã¯%{boldStart}展開ã•ã‚Œ%{boldEnd}ã€%{boldStart}マスク%{boldEnd}ã•ã‚Œã¾ã›ã‚“。"
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
-msgstr "変数ã¯ã€ã‚¸ãƒ§ãƒ–スクリプトã§ä½¿ç”¨ã§ãるパスワードや秘密キーãªã©ã®æƒ…報を格ç´ã—ã¾ã™ã€‚%{entity}ã”ã¨ã«%{limit}ã¾ã§å¤‰æ•°ã‚’定義ã§ãã¾ã™ã€‚"
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
+msgstr "別ã®å ´æ‰€ã§ã‚ã‚Œã°åŒã˜åå‰ã®CI/CD変数を使用ã§ãã¾ã™ãŒã€å¤‰æ•°ãŒäº’ã„ã«ä¸Šæ›¸ãã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚%{linkStart}変数ã®å„ªå…ˆé †ä½ã¯ä½•ã§ã™ã‹?%{linkEnd}"
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
msgstr "利用å¯èƒ½ãªå¤‰æ•°ã®æœ€å¤§æ•°ã«é”ã—ã¾ã—ãŸã€‚æ–°ã—ã„変数を追加ã™ã‚‹ã«ã¯ã€å®šç¾©ã•ã‚ŒãŸå¤‰æ•°ã®æ•°ã‚’減らã™å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
@@ -10634,9 +10844,6 @@ msgstr "エピックを閉ã˜ã‚‹"
msgid "Close milestone"
msgstr "マイルストーンを閉ã˜ã‚‹"
-msgid "Close sidebar"
-msgstr "サイドãƒãƒ¼ã‚’é–‰ã˜ã‚‹"
-
msgid "Close this %{quick_action_target}"
msgstr "ã“ã® %{quick_action_target} ã‚’é–‰ã˜ã‚‹"
@@ -10806,7 +11013,7 @@ msgid "CloudSeed|Google Cloud project"
msgstr "Google Cloudプロジェクト"
msgid "CloudSeed|Google Cloud's AI tools are armed with the best of Google's research and technology to help developers focus exclusively on solving problems that matter"
-msgstr "Google Cloudã®AIツールã¯ã€Googleã®æœ€ã‚‚優れãŸç ”究ã¨æŠ€è¡“ã‚’å‚™ãˆã¦ãŠã‚Šã€ãƒ‡ãƒ™ãƒ­ãƒƒãƒ‘ーãŒé‡è¦ãªå•é¡Œã®è§£æ±ºã«å°‚念ã§ãるよã†æ”¯æ´ã—ã¾ã™"
+msgstr "Google Cloudã®AIツールã¯ã€Googleã®æœ€ã‚‚優れãŸç ”究ã¨æŠ€è¡“ã‚’å‚™ãˆã¦ãŠã‚Šã€é–‹ç™ºè€…ãŒé‡è¦ãªå•é¡Œã®è§£æ±ºã«å°‚念ã§ãるよã†æ”¯æ´ã—ã¾ã™"
msgid "CloudSeed|I accept Google Cloud pricing and responsibilities involved with managing database instances"
msgstr "データベースインスタンスã®ç®¡ç†ã«é–¢ã‚ã‚‹Google Cloudã®ä¾¡æ ¼è¨­å®šã¨è²¬ä»»ã‚’承èªã—ã¾ã™"
@@ -11515,7 +11722,7 @@ msgid "ClusterIntegration|The certificate-based method to connect clusters to Gi
msgstr "クラスターを GitLab ã«æŽ¥ç¶šã™ã‚‹ãŸã‚ã®è¨¼æ˜Žæ›¸ãƒ™ãƒ¼ã‚¹ã®æ–¹æ³•ã¯ã€GitLab 14.5 ã§%{linkStart}éžæŽ¨å¥¨%{linkEnd}ã¨ãªã‚Šã¾ã—ãŸã€‚"
msgid "ClusterIntegration|The namespace associated with your project. This will be used for deploy boards, and Web terminals."
-msgstr "プロジェクトã«é–¢é€£ä»˜ã‘ã—ãŸåå‰ç©ºé–“。ã“ã‚Œã¯ã€ãƒ‡ãƒ—ロイボードã€ãŠã‚ˆã³Web端末ã«ä½¿ç”¨ã—ã¾ã™ã€‚"
+msgstr "プロジェクトã«é–¢é€£ä»˜ã‘ã—ãŸãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã€‚ã“ã‚Œã¯ã€ãƒ‡ãƒ—ロイボードã€ãŠã‚ˆã³Web端末ã«ä½¿ç”¨ã—ã¾ã™ã€‚"
msgid "ClusterIntegration|There was a problem authenticating with your cluster. Please ensure your CA Certificate and Token are valid."
msgstr "クラスターã¨ã®èªè¨¼ã«å•é¡ŒãŒã‚ã‚Šã¾ã—ãŸã€‚CA 証明書ã¨ãƒˆãƒ¼ã‚¯ãƒ³ãŒæœ‰åŠ¹ã§ã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
@@ -11670,17 +11877,35 @@ msgstr "ã™ã¹ã¦è¡¨ç¤º"
msgid "CodeOwner|Pattern"
msgstr "パターン"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
-msgstr "ã“ã®æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ã¨ã€ %{terms_link_start}GitLab テスト契約%{link_end}ã«åŒæ„ã—ã€ã“ã®æ©Ÿèƒ½ã‚’æä¾›ã™ã‚‹ãŸã‚ã« GitLab ãŒå€‹äººãƒ‡ãƒ¼ã‚¿ã‚’å«ã‚€ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã‚’当社㮠%{ai_docs_link_start}AI プロãƒã‚¤ãƒ€ãƒ¼%{link_end}ã«é€ä¿¡ã™ã‚‹ã“ã¨ã‚’承èªã—ãŸã“ã¨ã«ãªã‚Šã¾ã™ã€‚"
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
msgid "CodeSuggestionsSM|Code Suggestions"
msgstr "コードã®æ案"
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
-msgstr "ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®ã‚³ãƒ¼ãƒ‰ã®æ案を有効ã«ã™ã‚‹ %{beta}"
-
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
-msgstr "ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¤ã„ã¦ã€ã‚³ãƒ¼ãƒ‰ã®æ案を有効ã«ã—ã¾ã™ã€‚ %{link_start}コードã®æ案ã¨ã¯ä½•ã§ã™ã‹ï¼Ÿ%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
+msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
msgstr "%{linkStart}コードã®æ案%{linkEnd}ã§ã¯ã€é–‹ç™ºä¸­ã«ç”Ÿæˆç³»AIを使用ã—ã¦ã‚³ãƒ¼ãƒ‰ã‚’æ案ã—ã¾ã™ã€‚"
@@ -11688,8 +11913,8 @@ msgstr "%{linkStart}コードã®æ案%{linkEnd}ã§ã¯ã€é–‹ç™ºä¸­ã«ç”Ÿæˆç³»AI
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr "%{link_start}コードæ案ã¨ã¯?%{link_end}"
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
-msgstr "ユーザーã¯ã€å„請求å¯èƒ½æœˆã«ä¸€åº¦ã ã‘コードã®æ案シートを割り当ã¦ã‚‰ã‚Œã¾ã™ã€‚"
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
+msgstr ""
msgid "CodeSuggestions|Code Suggestions"
msgstr "コードã®æ案"
@@ -11697,23 +11922,23 @@ msgstr "コードã®æ案"
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr "コードã®æ案ã®ã‚¢ãƒ‰ã‚ªãƒ³"
-msgid "CodeSuggestions|Code Suggestions seats used"
-msgstr "Code Suggestionsã®ã‚·ãƒ¼ãƒˆãŒä½¿ç”¨ã•ã‚Œã¦ã„ã¾ã™"
+msgid "CodeSuggestions|Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
-msgstr "コードã®æ案を有効化"
+msgid "CodeSuggestions|Duo Pro add-on"
+msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
-msgstr "コーディング体験をインテリジェントãªæ案ã«ã‚ˆã‚Šå‘上ã•ã›ã¾ã™ã€‚%{linkStart}コードã®æ案%{linkEnd}ã§ã¯ã€é–‹ç™ºä¸­ã«ç”Ÿæˆç³»AIを使用ã—ã¦ã‚³ãƒ¼ãƒ‰ã‚’æ案ã—ã¾ã™ã€‚"
+msgid "CodeSuggestions|Duo Pro seats used"
+msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
-msgstr "IDEã§ã®ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã§ã‚µã‚¸ã‚§ã‚¹ãƒãƒ§ãƒ³æ©Ÿèƒ½ã‚’使ã„ã¾ã—ょã†ã€‚ %{link_start}詳細ã¯ã“ã¡ã‚‰%{link_end}。"
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
-msgstr "コードã®æ案ã®ã‚¢ãƒ‰ã‚ªãƒ³ã®ç´¹ä»‹"
+msgid "CodeSuggestions|Introducing Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
-msgstr "コード æ案ã®ã‚¢ãƒ‰ã‚ªãƒ³ã®ç´¹ä»‹"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
+msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ—ロジェクトã§ã¯ã‚³ãƒ¼ãƒ‰ã®æ案を使用ã§ãã¾ã™"
@@ -11738,7 +11963,7 @@ msgid "CodeownersValidation|How are errors handled?"
msgstr "エラーをã©ã®ã‚ˆã†ã«æ‰±ã‚ã‚Œã¾ã™ã‹?"
msgid "CodeownersValidation|Inaccessible owners"
-msgstr "アクセスã§ããªã„所有者"
+msgstr "アクセスã§ããªã„オーナー"
msgid "CodeownersValidation|Less than 1 required approvals"
msgstr "1件未満ã®æ‰¿èªãŒå¿…è¦"
@@ -11842,6 +12067,9 @@ msgstr "メッセージã«è‰²ã‚’付ã‘ã‚‹"
msgid "ComboSearch is not defined"
msgstr "ComboSearch ãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "カンマ区切りã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãƒªã‚¹ãƒˆã€‚"
@@ -11890,6 +12118,12 @@ msgstr "コマンドã¯é©ç”¨ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸ"
msgid "Comment"
msgstr "コメント"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "コメント「%{label}ã€ã®ä½ç½®"
@@ -12167,14 +12401,50 @@ msgstr "完了"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr "%{duration_seconds} 秒ã§å®Œäº† (%{relative_time})"
-msgid "Compliance Center|Export full report as CSV"
-msgstr "完全ãªãƒ¬ãƒãƒ¼ãƒˆã‚’CSVã¨ã—ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
-msgstr "マージリクエストé•åã‚’CSVã¨ã—ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚エクスãƒãƒ¼ãƒˆãŒå‡¦ç†ã•ã‚Œã‚‹ã¨ãƒ¡ãƒ¼ãƒ«ã§é€ä¿¡ã•ã‚Œã¾ã™ã€‚"
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr "プロジェクトフレームワークã®ãƒªã‚¹ãƒˆã‚’エクスãƒãƒ¼ãƒˆã—ã¾ã™"
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
-msgstr "プロジェクトをCSVã¨ã—ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚エクスãƒãƒ¼ãƒˆãŒå‡¦ç†ã•ã‚Œã‚‹ã¨ãƒ¡ãƒ¼ãƒ«ã§é€ä¿¡ã•ã‚Œã¾ã™ã€‚"
+msgid "Compliance Center Export|Export violations report"
+msgstr "é•åレãƒãƒ¼ãƒˆã‚’エクスãƒãƒ¼ãƒˆã—ã¾ã™"
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr "無効ãªãƒãƒƒã‚·ãƒ¥"
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr "é¸æŠžã—ãŸãƒ¬ãƒãƒ¼ãƒˆã®ãƒ¡ãƒ¼ãƒ«ã‚’CSVå½¢å¼ã§é€ä¿¡ã—ã¾ã™"
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
+msgstr ""
msgid "Compliance Center|Frameworks"
msgstr "フレームワーク"
@@ -12191,6 +12461,9 @@ msgstr "コンプライアンスセンター"
msgid "Compliance framework"
msgstr "コンプライアンスフレームワーク"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr "コンプライアンスフレームワークを有効化"
@@ -12212,12 +12488,12 @@ msgstr "フレームワークを追加"
msgid "ComplianceFrameworks|Background color"
msgstr "背景色"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "キャンセル"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr "コンプライアンスフレームワークã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr "コンプライアンスフレームワークを作æˆã—ã¾ã—ãŸ"
@@ -12230,9 +12506,15 @@ msgstr "コンプライアンスパイプラインã®è¨­å®š (オプション)"
msgid "ComplianceFrameworks|Configuration not found"
msgstr "設定ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr "デフォルトã®ã‚³ãƒ³ãƒ—ライアンスフレームワークã¯æ­£å¸¸ã«æ›´æ–°ã•ã‚Œã¾ã—ãŸã€‚"
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "コンプライアンスフレームワーク%{framework}ã®å‰Šé™¤"
@@ -12245,6 +12527,9 @@ msgstr "説明"
msgid "ComplianceFrameworks|Description is required"
msgstr "説明ãŒå¿…è¦ã§ã™"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr "コンプライアンスフレームワークã®ç·¨é›†"
@@ -12275,9 +12560,15 @@ msgstr "åå‰"
msgid "ComplianceFrameworks|Name is required"
msgstr "åå‰ãŒå¿…è¦ã§ã™"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr "æ–°ã—ã„コンプライアンスフレームワーク"
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr "コンプライアンスフレームワークã¯ã¾ã è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -12296,12 +12587,18 @@ msgstr "Ultimateã®ã‚µãƒ–スクリプションãŒå¿…è¦"
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr "コンプライアンスフレームワークã®å¤‰æ›´ã‚’ä¿å­˜ã—ã¾ã—ãŸ"
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr "ã“ã®ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¯ãƒ¼ã‚¯ã‚’使用ã™ã‚‹ãƒ—ロジェクトã®ã‚³ãƒ³ãƒ—ライアンスパイプラインã®è¨­å®šã‚’è¡Œã„ã¾ã™ã€‚%{linkStart}ã©ã†ã™ã‚Œã°ã“ã®è¨­å®šã‚’作æˆã§ãã¾ã™ã‹ ?%{linkEnd}"
msgid "ComplianceFrameworks|Set default"
msgstr "デフォルトを設定"
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr "ã“ã®ã‚³ãƒ³ãƒ—ライアンスフレームワークをä¿å­˜ã§ãã¾ã›ã‚“。もã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„"
@@ -12419,6 +12716,9 @@ msgstr "フィルタçµæžœã‚’æ›´æ–°ã—ã¾ã™ã‹?"
msgid "ComplianceReport|Update result"
msgstr "çµæžœã‚’æ›´æ–°"
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr "作æˆè€…ãŒæ‰¿èªã—ãŸãƒžãƒ¼ã‚¸ リクエストを防ãよã†ã«ãƒ«ãƒ¼ãƒ«ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚"
@@ -12479,6 +12779,12 @@ msgstr "コミッターãŒæ‰¿èªè€…ã«ãªã‚‹ã“ã¨ã‚’防止ã—ã¾ã™"
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr "è¦æ±‚事項"
@@ -12506,8 +12812,14 @@ msgstr "詳細を見る"
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
-msgstr "コンプライアンスé•åã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
+msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
msgstr "エクスãƒãƒ¼ãƒˆã•ã‚ŒãŸã€Œ%{group_name}ã€ã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚³ãƒ³ãƒ—ライアンスé•åã®CSVファイルãŒã“ã®ãƒ¡ãƒ¼ãƒ«ã«æ·»ä»˜ã•ã‚Œã¾ã—ãŸã€‚"
@@ -12659,6 +12971,9 @@ msgstr "リãƒã‚¸ãƒˆãƒªã®ãƒŸãƒ©ãƒ¼ãƒªãƒ³ã‚°ã‚’設定ã—ã¾ã™ã€‚"
msgid "Configure repository storage."
msgstr "リãƒã‚¸ãƒˆãƒªã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’設定ã—ã¾ã™ã€‚"
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr "GitLabインスタンス内ã®ã™ã¹ã¦ã®ãƒ—ロジェクトã«ãŠã‘るシークレット検出ã®å‹•ä½œã‚’設定ã™ã‚‹"
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr "Elasticsearchã®é«˜åº¦ãªæ¤œç´¢ã®è¨­å®šã‚’è¡Œã„ã¾ã™ã€‚"
@@ -12749,8 +13064,8 @@ msgstr "コンフリクト: ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã‚½ãƒ¼ã‚¹ãƒ–ランãƒã§åå‰ã
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
-msgstr "Confluence Cloudã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®URL"
+msgid "Confluence Workspace URL"
+msgstr ""
msgid "ConfluenceService|Confluence Workspace"
msgstr "Confluence ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹"
@@ -12982,6 +13297,9 @@ msgstr "プロジェクトã®URLã«åå‰ãŒãªã„イメージリãƒã‚¸ãƒˆãƒªã€‚
msgid "ContainerRegistry|Image tags"
msgstr "イメージタグ"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr "無効ãªã‚¿ã‚°: マニフェストダイジェストãŒã‚ã‚Šã¾ã›ã‚“"
@@ -13166,6 +13484,9 @@ msgstr "より広ã„範囲を検索ã™ã‚‹ã«ã¯ã€ä¸Šã®ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã‚’変更
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr "コンテナレジストリã¸ã®æŽ¥ç¶šã«å•é¡ŒãŒã‚ã‚Šã¾ã™ã€‚ページを更新ã—ã¦ã¿ã¦ãã ã•ã„。エラーãŒè§£æ±ºã—ãªã„å ´åˆã¯ã€%{docLinkStart}トラブルシューティングã®æ–‡æ›¸%{docLinkEnd}ã‚’ã”覧ãã ã•ã„。"
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "コンテナレジストリã§ã€å„プロジェクト㯠Docker イメージを格ç´ã™ã‚‹å ´æ‰€ã‚’æŒã¦ã¾ã™ã€‚%{docLinkStart}詳細ã¯ã“ã¡ã‚‰%{docLinkEnd}"
@@ -13209,7 +13530,7 @@ msgid "ContextCommits|Failed to delete context commits. Please try again."
msgstr "コンテキストコミットã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
msgid "Continue"
-msgstr "続行"
+msgstr "次ã«é€²ã‚€"
msgid "Continue editing"
msgstr "編集を続ã‘ã‚‹"
@@ -13517,8 +13838,8 @@ msgstr "%{calendar_date} ã®è²¢çŒ®"
msgid "Contributor"
msgstr "コントリビュータ"
-msgid "Contributor statistics"
-msgstr "貢献者ã®çµ±è¨ˆ"
+msgid "Contributor analytics"
+msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
msgstr "プロジェクト間ã®APIアクセスã«CI_JOB_TOKEN CI/CD変数を使用ã™ã‚‹æ–¹æ³•ã‚’制御ã—ã¾ã™ã€‚"
@@ -13529,6 +13850,9 @@ msgstr "GitLab ã§ã‚«ã‚¹ã‚¿ãƒžãƒ¼ã‚¨ã‚¯ã‚¹ãƒšãƒªã‚¨ãƒ³ã‚¹å‘上コンテンツã
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr "作業アイテムを%{type}ã«å¤‰æ›ã—ã¾ã™ã€‚æ–°ã—ã„タイプã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„ウィジェットã¯å‰Šé™¤ã•ã‚Œã¾ã™ã€‚"
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "クッキーã®ãƒ‰ãƒ¡ã‚¤ãƒ³"
@@ -13592,6 +13916,9 @@ msgstr "コードをコピー"
msgid "Copy command"
msgstr "コピーコマンド"
+msgid "Copy command to finalize manually"
+msgstr "コマンドをコピーã—ã¦æ‰‹å‹•ã§ç¢ºå®šã™ã‚‹"
+
msgid "Copy commands"
msgstr "コピーコマンド"
@@ -13664,9 +13991,6 @@ msgstr "ソースブランãƒåをコピー"
msgid "Copy to clipboard"
msgstr "クリップボードã«ã‚³ãƒ”ー"
-msgid "Copy token"
-msgstr "トークンをコピー"
-
msgid "Copy value"
msgstr "値ã®ã‚³ãƒ”ー"
@@ -13850,6 +14174,9 @@ msgstr "デザインをアップロードã§ãã¾ã›ã‚“ã§ã—ãŸã€‚アップロ
msgid "Couldn't assign policy to project or group"
msgstr "プロジェクトã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã«ãƒãƒªã‚·ãƒ¼ã‚’割り当ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ"
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr "イベントタイプを監査ã™ã‚‹ã‚¤ãƒ™ãƒ³ãƒˆã‚¿ã‚¤ãƒ—フィルターãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ:%{missing_filters}"
@@ -13913,6 +14240,9 @@ msgstr "グループを作æˆ"
msgid "Create a merge request"
msgstr "マージリクエストを作æˆ"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "リãƒã‚¸ãƒˆãƒªã®ãƒ«ãƒ¼ãƒˆã«æ–°ã—ã„%{codeStart}.gitlab-ci.yml%{codeEnd}ファイルを作æˆã—ã¦é–‹å§‹ã—ã¾ã™ã€‚"
@@ -13943,9 +14273,6 @@ msgstr "%{protocol}経由ã§ãƒ—ッシュã¾ãŸã¯ãƒ—ルã™ã‚‹ãŸã‚ã®è‡ªåˆ†ç”¨ã
msgid "Create a project"
msgstr "プロジェクトを作æˆ"
-msgid "Create an account using:"
-msgstr "次を使用ã—ã¦ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’作æˆã—ã¾ã™ã€‚"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr "インシデントを作æˆã™ã‚‹ã€‚インシデントã¯ç™ºç”Ÿã—ãŸå„アラート毎ã«ä½œæˆã•ã‚Œã¾ã™ã€‚"
@@ -14075,9 +14402,6 @@ msgstr "リリースを作æˆ"
msgid "Create requirement"
msgstr "è¦æ±‚事項を作æˆ"
-msgid "Create rules for target branches in merge requests."
-msgstr "マージリクエストã§ã®ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãƒ–ランãƒã®ãƒ«ãƒ¼ãƒ«ã‚’作æˆã—ã¾ã™ã€‚"
-
msgid "Create service account"
msgstr "サービスアカウントを作æˆ"
@@ -14114,6 +14438,9 @@ msgstr "ã“ã®ã‚¿ã‚°ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’追加ã—ã¾ã™ã€‚空白ã®ã¾ã¾ã«ã™
msgid "CreateGitTag|Set tag message"
msgstr "タグメッセージを設定"
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã‚µãƒ–グループを作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
@@ -14324,6 +14651,9 @@ msgstr "作æˆæ—¥æ™‚"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "ブランãƒã‚’作æˆã—マージリクエストを作æˆã—ã¾ã—ãŸã€‚ã“ã‚Œã§ã“ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’解決ã§ãã¾ã™ã€‚"
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "「%{branch_name}ã€ãƒ–ランãƒã‚’作æˆã—マージリクエストを作æˆã—ã¾ã—ãŸã€‚ã“ã‚Œã§ã“ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’解決ã§ãã¾ã™ã€‚"
@@ -14534,6 +14864,12 @@ msgstr "パイプラインã®æ™‚é–“ (分) を購入"
msgid "CurrentUser|Edit profile"
msgstr "プロファイルを編集"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr "グループã®1ã¤ãŒæœŸé™åˆ‡ã‚Œã«ãªã‚Šã¾ã™"
@@ -14820,9 +15156,6 @@ msgstr "指定ã•ã‚ŒãŸé–‹å§‹ã‚¤ãƒ™ãƒ³ãƒˆã«ã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“"
msgid "CycleAnalytics|project dropdown filter"
msgstr "プロジェクトドロップダウンフィルター"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr "割り当ã¦ã‚‰ã‚ŒãŸã‚ªãƒ–ジェクトã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr "DAG ã®å¯è¦–化ã«ã¯ã€å°‘ãªãã¨ã‚‚ 3 ã¤ã®ä¾å­˜æ€§ã®ã‚るジョブãŒå¿…è¦ã§ã™ã€‚"
@@ -14851,6 +15184,9 @@ msgstr "テストæ¡ä»¶ã«åŒæ„ã—ã¾ã™ã‹?"
msgid "DORA4Metrics|All labels"
msgstr "ã™ã¹ã¦ã®ãƒ©ãƒ™ãƒ«"
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr "å¹³å‡ (éŽåŽ» %{days}日間)"
@@ -14900,13 +15236,13 @@ msgid "DORA4Metrics|Failed to generate forecast. Try again later. If the problem
msgstr "予測ã®ç”Ÿæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚後ã§ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。å•é¡ŒãŒè§£æ±ºã—ãªã„å ´åˆã¯ã€%{linkStart} イシューã®ä½œæˆ %{linkEnd} を検討ã—ã¦ãã ã•ã„。"
msgid "DORA4Metrics|Failed to load DORA performance scores for Namespace: %{fullPath}"
-msgstr "åå‰ç©ºé–“%{fullPath}ã®DORAパフォーマンススコアã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹%{fullPath}ã®DORAパフォーマンススコアã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ"
msgid "DORA4Metrics|Failed to load YAML config from Project: %{fullPath}"
msgstr "プロジェクトã‹ã‚‰YAML設定ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: %{fullPath}"
msgid "DORA4Metrics|Failed to load comparison chart for Namespace: %{fullPath}"
-msgstr "åå‰ç©ºé–“ã®æ¯”較ãƒãƒ£ãƒ¼ãƒˆã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: %{fullPath}"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®æ¯”較ãƒãƒ£ãƒ¼ãƒˆã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: %{fullPath}"
msgid "DORA4Metrics|Failed to load labels matching the filter: %{labels}"
msgstr "フィルターã¨ä¸€è‡´ã™ã‚‹ãƒ©ãƒ™ãƒ«ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: %{labels}"
@@ -15000,7 +15336,7 @@ msgid "DORA4Metrics|Month to date"
msgstr "月累計"
msgid "DORA4Metrics|No data available for Namespace: %{fullPath}"
-msgstr "åå‰ç©ºé–“%{fullPath}ã®åˆ©ç”¨å¯èƒ½ãªãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚Šã¾ã›ã‚“"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹%{fullPath}ã®åˆ©ç”¨å¯èƒ½ãªãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚Šã¾ã›ã‚“"
msgid "DORA4Metrics|No incidents during this period"
msgstr "ã“ã®æœŸé–“中ã«ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -15060,7 +15396,7 @@ msgid "DORA4Metrics|This is a lower-bound approximation. Your group has too many
msgstr "ã“ã‚Œã¯ä¸‹é™è¿‘似値ã§ã™ã€‚グループã®ã‚¤ã‚·ãƒ¥ãƒ¼ã¨ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒå¤šã™ãŽã‚‹ãŸã‚ã€ãƒªã‚¢ãƒ«ã‚¿ã‚¤ãƒ ã§è¨ˆç®—ã§ãã¾ã›ã‚“。"
msgid "DORA4Metrics|This visualization is not supported for project namespaces."
-msgstr "ã“ã®è¦–覚化ã¯ãƒ—ロジェクトã®åå‰ç©ºé–“ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。"
+msgstr "ã“ã®è¦–覚化ã¯ãƒ—ロジェクトã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。"
msgid "DORA4Metrics|Time to Restore Service"
msgstr "サービス復元ã¾ã§ã®æ™‚é–“"
@@ -15119,9 +15455,6 @@ msgstr "ã™ã¹ã¦"
msgid "DashboardProjects|Personal"
msgstr "個人"
-msgid "Dashboards"
-msgstr "ダッシュボード"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject}ã¨%{secondProject}"
@@ -15155,6 +15488,9 @@ msgstr "ã“ã®ãƒ—ロジェクトã§ä»¥å‰ã®ã‚¹ã‚­ãƒ£ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
msgid "DastConfig|Not enabled"
msgstr "有効ã«ãªã£ã¦ã„ã¾ã›ã‚“"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr "/graphql"
@@ -15236,6 +15572,9 @@ msgstr "スキャナープロファイルを更新ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ã‚‚
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "サイトプロファイルを更新ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
+msgid "DastProfiles|Crawl timeout"
+msgstr "クロールã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ"
+
msgid "DastProfiles|DAST profile library"
msgstr "DASTプロフィールライブラリ"
@@ -15413,9 +15752,6 @@ msgstr "サイトプロファイル"
msgid "DastProfiles|Site type"
msgstr "サイトタイプ"
-msgid "DastProfiles|Spider timeout"
-msgstr "Spider ã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ"
-
msgid "DastProfiles|Submit button"
msgstr "é€ä¿¡ãƒœã‚¿ãƒ³"
@@ -15428,8 +15764,8 @@ msgstr "ターゲット URL"
msgid "DastProfiles|Target timeout"
msgstr "ターゲットタイムアウト"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
-msgstr "spiderãŒã‚µã‚¤ãƒˆã‚’横断ã™ã‚‹ã®ã«è¨±å¯ã•ã‚Œã‚‹æœ€å¤§æ™‚é–“(分)。"
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
+msgstr "クローラーãŒã‚µã‚¤ãƒˆã‚’横断ã™ã‚‹ã®ã«è¨±å¯ã•ã‚Œã‚‹æœ€å¤§æ™‚é–“(分)。"
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
msgstr "テスト中ã®ã‚µã‚¤ãƒˆãŒãƒªã‚¯ã‚¨ã‚¹ãƒˆã«å¿œç­”ã™ã‚‹ãŸã‚ã«è¨±å¯ã•ã‚Œã‚‹æœ€å¤§ç§’数。"
@@ -15739,6 +16075,9 @@ msgstr "デフォルトブランãƒ"
msgid "Default branch and protected branches"
msgstr "デフォルトブランãƒã¨ä¿è­·ãƒ–ランãƒ"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "イシューã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®èª¬æ˜Žãƒ†ãƒ³ãƒ—レート"
@@ -15776,7 +16115,7 @@ msgid "DefaultBranchProtection|Both developers and maintainers can push new comm
msgstr "開発者ã¨ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼ã¯ã€æ–°ã—ã„コミットをプッシュã—ãŸã‚Šã€å¼·åˆ¶çš„ã«ãƒ—ッシュã—ãŸã‚Šã€ãƒ–ランãƒã‚’削除ã—ãŸã‚Šã§ãã¾ã™ã€‚"
msgid "DefaultBranchProtection|Developers can push the initial commit to a repository, but none afterward. Maintainers can always push. No one can force push."
-msgstr "デベロッパーã¯åˆæœŸã‚³ãƒŸãƒƒãƒˆã‚’リãƒã‚¸ãƒˆãƒªã«ãƒ—ッシュã§ãã¾ã™ãŒã€ãã®å¾Œã¯ãƒ—ッシュã§ãã¾ã›ã‚“。メンテナーã¯å¸¸ã«ãƒ—ッシュã§ãã¾ã™ã€‚誰も強制プッシュã¯è¡Œãˆã¾ã›ã‚“。"
+msgstr "開発者ã¯åˆæœŸã‚³ãƒŸãƒƒãƒˆã‚’リãƒã‚¸ãƒˆãƒªã«ãƒ—ッシュã§ãã¾ã™ãŒã€ãã®å¾Œã¯ãƒ—ッシュã§ãã¾ã›ã‚“。メンテナーã¯å¸¸ã«ãƒ—ッシュã§ãã¾ã™ã€‚誰も強制プッシュã¯è¡Œãˆã¾ã›ã‚“。"
msgid "DefaultBranchProtection|Developers cannot push new commits, but are allowed to accept merge requests to the branch. Maintainers can push to the branch."
msgstr "開発者ã¯æ–°ã—ã„コミットをプッシュã§ãã¾ã›ã‚“ãŒã€ãƒ–ランãƒã¸ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’å—ã‘付ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
@@ -16059,16 +16398,6 @@ msgstr "削除ä¿ç•™ä¸­ã§ã™ã€‚ã“ã®ãƒ—ロジェクトã¯%{date}ã«å‰Šé™¤ã•ã‚
msgid "DeletionSettings|Deletion protection"
msgstr "削除ä¿è­·"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] "削除ã—ãŸãƒ—ロジェクトを%{number}日間ä¿æŒã™ã‚‹"
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "プロジェクトを削除ã§ãã‚‹ã®ã¯ç®¡ç†è€…ã®ã¿ã§ã™ã€‚"
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "プロジェクトを削除ã§ãã‚‹ã®ã¯ã‚ªãƒ¼ãƒŠãƒ¼ã¨ç®¡ç†è€…ã®ã¿ã§ã™ã€‚"
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr "削除ã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—ã¨ãƒ—ロジェクトã¯å¾©å…ƒå¯èƒ½ãªæœŸé–“ã§ã™ã€‚個人プロジェクトã¯å¸¸ã«ç›´ã¡ã«å‰Šé™¤ã•ã‚Œã¾ã™ã€‚"
@@ -16177,12 +16506,18 @@ msgstr "複数ã®ãƒ‘スãŒå­˜åœ¨ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™"
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã®å–å¾—ã«å•é¡ŒãŒã‚ã‚Šã¾ã—ãŸã€‚"
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¯ã‚µãƒ–グループã®æœ€å¤§æ•°600を超ãˆã¦ã„ã¾ã™ã€‚ç¾æ™‚点ã§ã¯ãƒ—ロジェクトリストを正確ã«è¡¨ç¤ºã§ãã¾ã›ã‚“。サブグループã®ä¾å­˜é–¢ä¿‚リストã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã“ã®æƒ…報を表示ã™ã‚‹ã‹ã€è©³ç´°ã‚’%{linkStart}ä¾å­˜é–¢ä¿‚リストã®ãƒ˜ãƒ«ãƒ—%{linkEnd}ページã§å‚ç…§ã—ã¦ãã ã•ã„。"
msgid "Dependencies|Toggle vulnerability list"
msgstr "脆弱性リストã®åˆ‡ã‚Šæ›¿ãˆ"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "サãƒãƒ¼ãƒˆã•ã‚Œãªã„ファイルãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ"
@@ -16201,9 +16536,6 @@ msgstr "ä¾å­˜ãƒ—ロキシ"
msgid "Dependency Scanning"
msgstr "Dependency Scanning"
-msgid "Dependency chains are not supported"
-msgstr "ä¾å­˜é–¢ä¿‚ãƒã‚§ãƒ¼ãƒ³ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
msgid "Dependency list"
msgstr "ä¾å­˜é–¢ä¿‚リスト"
@@ -16213,6 +16545,9 @@ msgstr "ä¾å­˜æ€§ãƒ—ロキシキャッシュã«Dockerイメージをä¿å­˜ã™ã‚‹
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr "キャッシュ内ã®ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã¯å‰Šé™¤äºˆå®šã§ã™ã€‚"
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr "%{time}ã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥æ¸ˆã¿"
@@ -16249,18 +16584,27 @@ msgstr "Digest: %{shortDigest}"
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr "ä¾å­˜ãƒ—ロキシを有効化"
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr "ä¾å­˜ãƒ—ロキシを有効ã«ã—ã¦ã€Docker Hub ã‹ã‚‰ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’キャッシュã—ã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’自動的ã«ã‚¯ãƒªã‚¢ã—ã¾ã™ã€‚"
msgid "DependencyProxy|Image list"
msgstr "ç”»åƒãƒªã‚¹ãƒˆ"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr "ダイジェストã®ä¾‹ã§ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’å–å¾—ã™ã‚‹"
msgid "DependencyProxy|Scheduled for deletion"
msgstr "削除スケジュール"
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr "キャッシュã«ç”»åƒãŒã‚ã‚Šã¾ã›ã‚“"
@@ -16270,6 +16614,9 @@ msgstr "イメージプレフィックスã¨ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã®ä¸­èº«ã‚’見るã«
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr "ä¾å­˜ãƒ—ロキシã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã«Dockerイメージをä¿å­˜ã™ã‚‹ã«ã¯ã€%{codeStart}.gitlab-ci.yml%{codeEnd}ファイル内ã®ã‚¿ã‚°ã«ã‚ˆã£ã¦ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’プルã—ã¾ã™ã€‚ã“ã®ä¾‹ã§ã¯ã€ã‚¤ãƒ¡ãƒ¼ã‚¸ã¯ %{codeStart}alpine:latest%{codeEnd}ã§ã™ã€‚"
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr "有効ã«ã™ã‚‹ã¨ã€90 日以上éŽãŽãŸç”»åƒãŒã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‹ã‚‰å‰Šé™¤ã•ã‚Œã¾ã™ã€‚"
@@ -16513,9 +16860,6 @@ msgstr "ユーザーå"
msgid "DeployTokens|Username (optional)"
msgstr "ユーザーå(ä»»æ„)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr "æ–°ã—ã„デプロイトークンã®ãƒ¦ãƒ¼ã‚¶ãƒ¼å"
-
msgid "DeployTokens|Your new deploy token"
msgstr "æ–°è¦ãƒ‡ãƒ—ロイトークン"
@@ -16957,7 +17301,7 @@ msgid "DevOps adoption"
msgstr "DevOps採用"
msgid "Developer"
-msgstr "デベロッパー"
+msgstr "開発者"
msgid "Device name"
msgstr "デãƒã‚¤ã‚¹å"
@@ -17184,6 +17528,51 @@ msgstr "差分ã®åˆ¶é™"
msgid "Diff notes"
msgstr "差分ノート"
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "開始日ã¨ç¾åœ¨ã®é•ã„"
@@ -17310,6 +17699,9 @@ msgstr "%{path}ã®å¤‰æ›´ã‚’破棄ã—ã¾ã™ã‹ ?"
msgid "Discard draft"
msgstr "ドラフトを破棄"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord 通知"
@@ -17427,7 +17819,7 @@ msgid "Do not display content for customer experience improvement and offers fro
msgstr "カスタマーエクスペリエンスをå‘上ã•ã›ã‚‹ãŸã‚ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„やサードパーティã®ã‚ªãƒ•ã‚¡ãƒ¼ã‚’表示ã—ãªã„"
msgid "Do not force push over diverged refs. After the mirror is created, this setting can only be modified using the API. %{mirroring_docs_link_start}Learn more about this option%{link_closing_tag} and %{mirroring_api_docs_link_start}the API.%{link_closing_tag}"
-msgstr "分å²ã—ãŸrefを強制的ã«ãƒ—ッシュã—ãªã„ã§ãã ã•ã„。ミラーãŒä½œæˆã•ã‚ŒãŸå¾Œã€ã“ã®è¨­å®šã¯APIを使用ã—ã¦ã®ã¿å¤‰æ›´ã§ãã¾ã™ã€‚%{mirroring_docs_link_start}ã“ã®ã‚ªãƒ—ション%{link_closing_tag}㨠%{mirroring_api_docs_link_start}APIã®è©³ç´°%{link_closing_tag}ã«ã¤ã„ã¦ã”覧ãã ã•ã„。"
+msgstr "分å²ã—ãŸrefを強制的ã«ãƒ—ッシュã—ãªã„ã§ãã ã•ã„。ミラーリングãŒä½œæˆã•ã‚ŒãŸå¾Œã€ã“ã®è¨­å®šã¯APIを使用ã—ã¦ã®ã¿å¤‰æ›´ã§ãã¾ã™ã€‚%{mirroring_docs_link_start}ã“ã®ã‚ªãƒ—ション%{link_closing_tag}㨠%{mirroring_api_docs_link_start}APIã®è©³ç´°%{link_closing_tag}ã«ã¤ã„ã¦ã”覧ãã ã•ã„。"
msgid "Do not include the username in the URL, use the username field below if required: %{code_open}https://gitlab.company.com/group/project.git%{code_close}."
msgstr "URLã«ãƒ¦ãƒ¼ã‚¶ãƒ¼åã‚’å«ã‚ãªã„ã§ãã ã•ã„。必è¦ãªå ´åˆã¯ä»¥ä¸‹ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åフィールドを使用ã—ã¦ãã ã•ã„: %{code_open}https://gitlab.company.com/group/project.git%{code_close}。"
@@ -17612,6 +18004,9 @@ msgstr "ドラッグã—ã¦ã€å„ªå…ˆé †ä½ã®ä»˜ã„ãŸãƒ©ãƒ™ãƒ«ã‚’並ã¹æ›¿ãˆã€
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "ã“ã“ã«ãƒ‡ã‚¶ã‚¤ãƒ³ã‚’ドラッグã™ã‚‹ã‹ã€%{linkStart}をクリックã—ã¦%{linkEnd}をアップロードã—ã¾ã™ã€‚"
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "添付ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ドロップã¾ãŸã¯%{linkStart}アップロード%{linkEnd}"
@@ -17903,6 +18298,9 @@ msgstr "編集中"
msgid "Edits"
msgstr "編集"
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr "経éŽæ™‚é–“"
@@ -17969,6 +18367,9 @@ msgstr "ä¸æ˜Žãªã‚µã‚¤ãƒ³ã‚¤ãƒ³ã®ãƒ¡ãƒ¼ãƒ«é€šçŸ¥"
msgid "Email patch"
msgstr "パッãƒã‚’メールã™ã‚‹"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "メールé€ä¿¡å®Œäº†"
@@ -18065,6 +18466,9 @@ msgstr "空ã®ãƒ•ã‚¡ã‚¤ãƒ«"
msgid "Enable"
msgstr "有効"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr "Akismetを有効ã«ã™ã‚‹"
@@ -18101,6 +18505,9 @@ msgstr "PlantUML を有効化"
msgid "Enable SSL verification"
msgstr "SSLã®æ¤œè¨¼ã‚’有効ã«ã™ã‚‹"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr "Snowplowã®è¿½è·¡ã‚’有効ã«ã™ã‚‹"
@@ -18116,9 +18523,6 @@ msgstr "æ–°ç€æƒ…å ±ã®è¡¨ç¤ºã‚’有効ã«ã—ã¾ã™: ç¾åœ¨ã®ãƒ†ã‚£ã‚¢ã®ã¿"
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "指定ã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—内ã§ã€ç®¡ç†è€…以外ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚ˆã‚‹ãƒ‘フォーマンスãƒãƒ¼ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’有効ã«ã—ã¾ã™ã€‚"
-msgid "Enable admin mode"
-msgstr "管ç†è€…モードを有効ã«ã™ã‚‹"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr "サービスデスクã®æœ‰åŠ¹åŒ–ã¨ç„¡åŠ¹åŒ–。追加ã§è¨­å®šãŒå¿…è¦ã«ãªã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚%{link_start}詳ã—ãã¯ã“ã¡ã‚‰%{link_end}。"
@@ -18182,6 +18586,9 @@ msgstr "%{linkStart}ユーザー環境設定%{linkEnd}ã§ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚·ãƒ§ãƒ
msgid "Enable or disable version check and Service Ping."
msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãƒã‚§ãƒƒã‚¯ã¨ã‚µãƒ¼ãƒ“ス ping を有効ã¾ãŸã¯ç„¡åŠ¹ã«ã—ã¾ã™ã€‚"
+msgid "Enable pre-receive secret detection"
+msgstr "å—ä¿¡å‰ã®ã‚·ãƒ¼ã‚¯ãƒ¬ãƒƒãƒˆæ¤œå‡ºã‚’有効ã«ã™ã‚‹"
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr "指定ã•ã‚ŒãŸãƒ‘スã¸ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ãƒ¬ãƒ¼ãƒˆåˆ¶é™ã‚’有効ã«ã™ã‚‹"
@@ -18197,9 +18604,6 @@ msgstr "リãƒã‚¸ãƒˆãƒªãƒã‚§ãƒƒã‚¯ã‚’有効ã«ã™ã‚‹"
msgid "Enable security training"
msgstr "セキュリティトレーニングを有効ã«ã™ã‚‹"
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "セキュリティトレーニングを有効ã«ã—ã¦ã€é–‹ç™ºè€…ãŒè„†å¼±æ€§ã‚’修正ã™ã‚‹æ–¹æ³•ã‚’学習ã§ãるよã†ã«ã—ã¾ã™ã€‚開発者ã¯ã€æ¤œå‡ºã•ã‚ŒãŸè„†å¼±æ€§ã«é–¢é€£ã™ã‚‹ã€é¸æŠžã•ã‚ŒãŸæ•™è‚²ãƒ—ロãƒã‚¤ãƒ€ãƒ¼ã‹ã‚‰ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’閲覧ã§ãã¾ã™ã€‚"
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—内ã®ã™ã¹ã¦ã®ãƒ—ロジェクトã¨ã‚µãƒ–グループã§å…±æœ‰Runnerを有効ã«ã—ã¾ã™ã€‚"
@@ -18287,6 +18691,9 @@ msgstr "終了日時:"
msgid "Ends: %{endsAt}"
msgstr "終了: %{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "2è¦ç´ èªè¨¼ã‚’実施ã™ã‚‹"
@@ -18570,7 +18977,7 @@ msgid "Environments|Job"
msgstr "ジョブ"
msgid "Environments|Kubernetes namespace (optional)"
-msgstr "Kubernetes åå‰ç©ºé–“(オプション)"
+msgstr "Kubernetes ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ï¼ˆã‚ªãƒ—ション)"
msgid "Environments|Kustomizations"
msgstr "Kustomizations"
@@ -18602,6 +19009,9 @@ msgstr "オープン"
msgid "Environments|Open live environment"
msgstr "ライブ環境を開ã"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "環境をå†ãƒ‡ãƒ—ロイã™ã‚‹"
@@ -18630,7 +19040,7 @@ msgid "Environments|Select agent"
msgstr "エージェントをé¸æŠž"
msgid "Environments|Select namespace"
-msgstr "åå‰ç©ºé–“ã‚’é¸æŠž"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’é¸æŠž"
msgid "Environments|Select which environments to clean up. Protected environments are excluded. Learn more about cleaning up environments."
msgstr "クリーンアップã™ã‚‹ç’°å¢ƒã‚’é¸æŠžã—ã¾ã™ã€‚ä¿è­·ã•ã‚ŒãŸç’°å¢ƒã¯é™¤å¤–ã•ã‚Œã¾ã™ã€‚環境ã®ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã«ã¤ã„ã¦è©³ã—ãã¯ã“ã¡ã‚‰ã‚’ã”覧ãã ã•ã„。"
@@ -18704,15 +19114,12 @@ msgstr "デプロイã®ãƒ†ã‚£ã‚¢"
msgid "Environment|Deployments"
msgstr "デプロイ"
-msgid "Environment|Environment health"
-msgstr "環境ã®å¥å…¨æ€§"
+msgid "Environment|Environment status"
+msgstr ""
msgid "Environment|External IP"
msgstr "外部IP"
-msgid "Environment|Failed"
-msgstr "失敗"
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr "ã“ã®ç’°å¢ƒã‹ã‚‰ã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“。"
@@ -18725,9 +19132,6 @@ msgstr "ジョブ"
msgid "Environment|Kubernetes overview"
msgstr "Kubernetes概è¦"
-msgid "Environment|Pending"
-msgstr "ä¿ç•™ä¸­"
-
msgid "Environment|Pods"
msgstr "ãƒãƒƒãƒ‰"
@@ -18743,9 +19147,6 @@ msgstr "ç…§åˆä¸­"
msgid "Environment|ReplicaSets"
msgstr "ReplicaSets"
-msgid "Environment|Running"
-msgstr "実行中"
-
msgid "Environment|Services"
msgstr "サービス"
@@ -18755,9 +19156,6 @@ msgstr "åœæ­¢ä¸­"
msgid "Environment|StatefulSets"
msgstr "StatefulSets"
-msgid "Environment|Succeeded"
-msgstr "æˆåŠŸ"
-
msgid "Environment|Summary"
msgstr "概è¦"
@@ -18773,12 +19171,12 @@ msgstr "%{resourceType} ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr "ã“ã®ç’°å¢ƒã‹ã‚‰ %{resourceType} ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
-msgstr "ã“ã®ç’°å¢ƒã‹ã‚‰ã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。èªè¨¼ã‚’確èªã—ã¦ã€ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
msgid "Environment|Unhealthy"
msgstr "ä¸å¥å…¨"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
+msgstr ""
+
msgid "Epic"
msgstr "エピック"
@@ -19206,7 +19604,7 @@ msgid "EscalationPolicies|Choose who to email if those contacted first about an
msgstr "åˆå›žã‚¢ãƒ©ãƒ¼ãƒˆã«å¿œç­”ãŒãªã‹ã£ãŸå ´åˆã€ã ã‚Œã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã™ã‚‹ã‹ã‚’é¸æŠžã—ã¦ãã ã•ã„。"
msgid "EscalationPolicies|Choose who to email if those contacted first about an alert don't respond. To access this feature, ask %{linkStart}a project Owner%{linkEnd} to grant you at least the Maintainer role."
-msgstr "åˆå›žã‚¢ãƒ©ãƒ¼ãƒˆã«å¿œç­”ãŒãªã‹ã£ãŸå ´åˆã€ã ã‚Œã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã™ã‚‹ã‹ã‚’é¸æŠžã—ã¦ãã ã•ã„。ã“ã®æ©Ÿèƒ½ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ã€%{linkStart}プロジェクトã®æ‰€æœ‰è€…%{linkEnd}ã«ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼ã®å½¹å‰²ã‚’付与ã™ã‚‹ã‚ˆã†ä¾é ¼ã—ã¦ãã ã•ã„。"
+msgstr "åˆå›žã‚¢ãƒ©ãƒ¼ãƒˆã«å¿œç­”ãŒãªã‹ã£ãŸå ´åˆã€ã ã‚Œã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã™ã‚‹ã‹ã‚’é¸æŠžã—ã¦ãã ã•ã„。ã“ã®æ©Ÿèƒ½ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ã€%{linkStart}プロジェクトã®ã‚ªãƒ¼ãƒŠãƒ¼%{linkEnd}ã«ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼ã®å½¹å‰²ã‚’付与ã™ã‚‹ã‚ˆã†ä¾é ¼ã—ã¦ãã ã•ã„。"
msgid "EscalationPolicies|Create an escalation policy in GitLab"
msgstr "GitLab ã§ã‚¨ã‚¹ã‚«ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒãƒªã‚·ãƒ¼ã‚’作æˆ"
@@ -19678,9 +20076,6 @@ msgstr "%{requirementsCount}件ã®è¦æ±‚をエクスãƒãƒ¼ãƒˆã—ã¾ã™ã‹?"
msgid "Export as CSV"
msgstr "CSV å½¢å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
-msgid "Export commit custody report"
-msgstr "ä¿å­˜ã•ã‚Œã¦ã„るコミットレãƒãƒ¼ãƒˆã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
-
msgid "Export group"
msgstr "グループã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
@@ -19807,6 +20202,9 @@ msgstr "外部Wiki URL"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr "サイドãƒãƒ¼ã‹ã‚‰å¤–部wikiã«ãƒªãƒ³ã‚¯ã—ã¾ã™ã€‚"
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://example.com/xxx/wiki/..."
@@ -19890,6 +20288,9 @@ msgstr "ã“ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã®ãŸã‚ã®ãƒ–ランãƒã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ
msgid "Failed to create a to-do item for the design."
msgstr "デザインã®ToDoアイテムã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "フレームワークã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ"
@@ -19905,18 +20306,15 @@ msgstr "リãƒã‚¸ãƒˆãƒªã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ"
msgid "Failed to create resources"
msgstr "リソースã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ"
-msgid "Failed to create target branch rule"
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ"
-
msgid "Failed to create wiki"
msgstr "wiki を作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
+msgid "Failed to delete branch target"
+msgstr ""
+
msgid "Failed to delete custom emoji. Please try again."
msgstr "カスタム絵文字ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„."
-msgid "Failed to delete target branch rule"
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ"
-
msgid "Failed to deploy to"
msgstr "次ã¸ã®ãƒ‡ãƒ—ロイã«å¤±æ•—ã—ã¾ã—ãŸ:"
@@ -19953,9 +20351,6 @@ msgstr "読ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ"
msgid "Failed to load Roadmap"
msgstr "ロードマップã®ãƒ­ãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸ"
-msgid "Failed to load assignees."
-msgstr "担当者ã®èª­è¾¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-
msgid "Failed to load assignees. Please try again."
msgstr "担当者ã®ãƒ­ãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -19983,18 +20378,9 @@ msgstr "グループã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã€ãƒ‡ãƒ—ロイキーã®èª­ã¿è¾¼ã¿ã«å¤±æ•—
msgid "Failed to load groups."
msgstr "グループã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-msgid "Failed to load iteration cadences."
-msgstr "イテレーションケイデンスã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-
-msgid "Failed to load iterations."
-msgstr "イテレーションã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-
msgid "Failed to load labels. Please try again."
msgstr "ラベルã®ãƒ­ãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "Failed to load milestones."
-msgstr "マイルストーンã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-
msgid "Failed to load milestones. Please try again."
msgstr "マイルストーンã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -20065,7 +20451,7 @@ msgid "Failed to save merge conflicts resolutions. Please try again!"
msgstr "マージã®ç«¶åˆã®è§£æ±ºã‚’ä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
msgid "Failed to save namespace commit email."
-msgstr "åå‰ç©ºé–“ã®ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒ¼ãƒ«ã®ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒ¼ãƒ«ã®ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
msgid "Failed to save new settings"
msgstr "æ–°ã—ã„設定をä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ"
@@ -20103,6 +20489,9 @@ msgstr "フレームワークã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸ"
msgid "Failed to update issue status"
msgstr "イシューã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸ"
+msgid "Failed to update organization"
+msgstr "組織ã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸ"
+
msgid "Failed to update the Canary Ingress."
msgstr "Canary Ingresã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
@@ -20395,6 +20784,9 @@ msgstr "ファイルを移動ã—ã¾ã—ãŸã€‚"
msgid "File name"
msgstr "ファイルå"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr "ファイルã®è¨±å¯"
@@ -20674,9 +21066,6 @@ msgstr "ã“ã®åˆ¶é™ã‚ˆã‚Šå¤§ããªãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ãƒ•ã‚¡ã‚¤ãƒ«åã®ã¿ã‚’イ
msgid "For general work"
msgstr "一般的ãªä»•äº‹ç”¨"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr "個人ã§ä½¿ç”¨ã™ã‚‹å ´åˆã¯ã€Enterpriseã®ãƒ¡ãƒ¼ãƒ«ãƒ‰ãƒ¡ã‚¤ãƒ³ã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã«é–¢é€£ã—ã¦ã„ãªã„ã€å€‹äººã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã§åˆ¥ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’作æˆã—ã¦ãã ã•ã„。"
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr "個人ã§ä½¿ç”¨ã™ã‚‹å ´åˆã¯ã€ä¼šç¤¾ã®ãƒ¡ãƒ¼ãƒ«ãƒ‰ãƒ¡ã‚¤ãƒ³ã«é–¢é€£ã—ã¦ã„ãªã„ã€å€‹äººã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã§åˆ¥ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’作æˆã—ã¦ãã ã•ã„。"
@@ -20777,7 +21166,7 @@ msgid "ForkProject|Visibility level"
msgstr "表示レベル"
msgid "ForkProject|Want to organize several dependent projects under the same namespace?"
-msgstr "ã„ãã¤ã‹ã®ä¾å­˜ã—ãŸãƒ—ロジェクトをåŒã˜åå‰ç©ºé–“ã§ç®¡ç†ã—ã¾ã™ã‹?"
+msgstr "ã„ãã¤ã‹ã®ä¾å­˜ã—ãŸãƒ—ロジェクトをåŒã˜ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã§ç®¡ç†ã—ã¾ã™ã‹?"
msgid "ForkSuggestion|Cancel"
msgstr "キャンセル"
@@ -20855,7 +21244,7 @@ msgid "Frameworks"
msgstr "フレームワーク"
msgid "Frameworks can not be added to projects in personal namespaces. %{linkStart}What are personal namespaces?%{linkEnd}"
-msgstr "フレームワークã¯å€‹äººã®åå‰ç©ºé–“ã®ãƒ—ロジェクトã«ã¯è¿½åŠ ã§ãã¾ã›ã‚“。%{linkStart}個人ã®åå‰ç©ºé–“ã¨ã¯ä½•ã§ã™ã‹?%{linkEnd}"
+msgstr "フレームワークã¯å€‹äººã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ãƒ—ロジェクトã«ã¯è¿½åŠ ã§ãã¾ã›ã‚“。%{linkStart}個人ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¨ã¯ä½•ã§ã™ã‹?%{linkEnd}"
msgid "Free Trial of GitLab.com Ultimate"
msgstr "GitLab.com究極プランã®ç„¡å„Ÿè©¦ç”¨"
@@ -20996,6 +21385,9 @@ msgstr "根本原因ã®åˆ†æžã‚’生æˆã™ã‚‹"
msgid "Generate site and private keys at"
msgstr "サイトã¨ç§˜å¯†ã‚­ãƒ¼ã‚’生æˆã™ã‚‹"
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "JSONデータã§ç”Ÿæˆ"
@@ -21337,12 +21729,6 @@ msgstr "å†åŒæœŸ"
msgid "Geo|Resync all"
msgstr "ã™ã¹ã¦å†åŒæœŸ"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr "%{projects_count}件ã®ãƒ—ロジェクトã™ã¹ã¦ã‚’å†åŒæœŸ"
-
-msgid "Geo|Resync project"
-msgstr "プロジェクトをå†åŒæœŸ"
-
msgid "Geo|Retry count"
msgstr "å†è©¦è¡Œå›žæ•°"
@@ -21352,12 +21738,6 @@ msgstr "å†æ¤œè¨¼"
msgid "Geo|Reverify all"
msgstr "ã™ã¹ã¦å†æ¤œè¨¼"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr "%{projects_count}件ã®ãƒ—ロジェクトã™ã¹ã¦ã‚’å†æ¤œè¨¼"
-
-msgid "Geo|Reverify project"
-msgstr "プロジェクトをå†æ¤œè¨¼"
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr "レプリケーションã®çŠ¶æ…‹ã‚’レビューã—ã€ãƒ—ライマリサイトã¨ã®é–“ã§é …目をå†åŒæœŸãŠã‚ˆã³å†æ¤œè¨¼ã—ã¾ã™ã€‚"
@@ -21466,12 +21846,6 @@ msgstr "ã“ã®GitLabインスタンスã¯%{insufficient_license}ランクã®ãƒ©ã
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr "ã“ã‚Œã«ã‚ˆã‚Šã€%{replicableType}ã‚’%{action}ã—ã¾ã™ã€‚完了ã«ã¯æ™‚é–“ãŒã‹ã‹ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚本当ã«ç¶šè¡Œã—ã¾ã™ã‹?"
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "ã™ã¹ã¦ã®ãƒ—ロジェクトをå†åŒæœŸã—ã¾ã™ã€‚完了ã«ã¯æ™‚é–“ãŒã‹ã‹ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚本当ã«ç¶šè¡Œã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "ã™ã¹ã¦ã®ãƒ—ロジェクトをå†æ¤œè¨¼ã—ã¾ã™ã€‚完了ã«ã¯æ™‚é–“ãŒã‹ã‹ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚本当ã«ç¶šè¡Œã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?"
-
msgid "Geo|Time in seconds"
msgstr "時間 (秒)"
@@ -21529,9 +21903,6 @@ msgstr "プライマリ"
msgid "Geo|secondary"
msgstr "セカンダリ"
-msgid "Get a free instance review"
-msgstr "ç„¡æ–™ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãƒ¬ãƒ“ューã®å–å¾—"
-
msgid "Get a support subscription"
msgstr "サãƒãƒ¼ãƒˆã‚µãƒ–スクリプションã®å–å¾—"
@@ -21553,6 +21924,9 @@ msgstr "エラー追跡を開始"
msgid "Get started!"
msgstr "始ã‚ã¾ã—ょã†!"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21640,9 +22014,15 @@ msgstr "除外ユーザを%{maxAllowedUsers}人以上指定ã™ã‚‹ã“ã¨ã¯ã§ã
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr "GitHub API ã®åˆ¶é™ã‚’超ãˆã¾ã—ãŸã€‚%{reset_time} 後ã«å†è©¦è¡Œã—ã¦ãã ã•ã„"
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHubã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "*%{author}ãŒ%{timestamp}ã«ãƒžãƒ¼ã‚¸*"
@@ -21725,7 +22105,7 @@ msgid "GitLab for Jira Cloud"
msgstr "GitLabfor Jira Cloud"
msgid "GitLab group: %{source_link}"
-msgstr "GitLab グループ: %{source_link}"
+msgstr "GitLabグループ: %{source_link}"
msgid "GitLab has redesigned the left sidebar to address customer feedback. View details in %{blog_link_start}this blog post%{link_end}. Here's how to %{issues_link_start}file an issue%{link_end} with the GitLab product team."
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr "GitLabã¯ã€å˜ä¸€ã®ã‚¢ãƒ—リケーションã¨ã—ã¦æä¾›ã•ã‚Œã‚‹å®Œ
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr "GitLabã¯ã€å˜ä¸€ã®ã‚¢ãƒ—リケーションã¨ã—ã¦æä¾›ã•ã‚Œã‚‹å®Œå…¨ãªDevOpsプラットフォームã§ã€%{br_tag}開発ãƒãƒ¼ãƒ ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒãƒ¼ãƒ ã€ãŠã‚ˆã³Opsãƒãƒ¼ãƒ ã®å…±åŒä½œæ¥­æ–¹æ³•ã‚’根本的ã«å¤‰é©ã—ã¾ã™"
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr "GitLab ã¯ã€ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢é–‹ç™ºãƒ©ã‚¤ãƒ•ã‚µã‚¤ã‚¯ãƒ«å…¨ä½“をサãƒãƒ¼ãƒˆã™ã‚‹ 1 ã¤ã®ã‚¢ãƒ—リケーションã§ã™ã€‚プロジェクトã®è¨ˆç”»ã¨ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ç®¡ç†ã‹ã‚‰ CI/ CDã€ãƒ¢ãƒ‹ã‚¿ãƒªãƒ³ã‚°ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã¾ã§å«ã¿ã¾ã™ã€‚"
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr "GitLabã¯ç„¡æ–™ã§åˆ©ç”¨ã§ãã¾ã™ã€‚より大ããªãƒãƒ¼ãƒ å‘ã‘ã®å¤šãã®æ©Ÿèƒ½ã¯ã€%{link_start}有料製å“%{link_end}ã®ä¸€éƒ¨ã§ã™ã€‚ã‚ãªãŸã¯ç¾©å‹™è² ã†ã“ã¨ãªãã¾ãŸæ”¯æ‰•ã†ã“ã¨ãªãã€ç„¡æ–™ã§Ulitimateを試ã™ã“ã¨ãŒã§ãã¾ã™ã€‚"
@@ -21871,8 +22248,8 @@ msgstr "未確èª"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "Pagesã®æ§‹æˆã‚’æ›´æ–°ã—ã¦ã„ã¾ã™..."
-msgid "GitLabPages|Use multiple versions"
-msgstr "複数ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’使用"
+msgid "GitLabPages|Use multiple deployments"
+msgstr ""
msgid "GitLabPages|Use unique domain"
msgstr "一æ„ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’使用"
@@ -21889,8 +22266,8 @@ msgstr "有効ã«ã™ã‚‹ã¨ã€ãƒšãƒ¼ã‚¸ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã«ä¸€æ„ã®ãƒ‰
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr "ã“れを有効ã«ã™ã‚‹ã¨ã€HTTP経由ã§ã‚¦ã‚§ãƒ–サイトã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹æ™‚ã€ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚³ãƒ¼ãƒ‰301ã®å¿œç­”を使用ã—ã¦è‡ªå‹•çš„ã«HTTPSã«ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆã•ã‚Œã¾ã™ã€‚ã™ã¹ã¦ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã«æœ‰åŠ¹ãªè¨¼æ˜Žæ›¸ãŒå¿…è¦ã§ã™ã€‚%{docs_link_start}詳ã—ãã¯ã“ã¡ã‚‰ã€‚%{link_end}"
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
-msgstr "有効ã«ã™ã‚‹ã¨ã€ãƒšãƒ¼ã‚¸ã‚µã‚¤ãƒˆã®è¤‡æ•°ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’作æˆã§ãã¾ã™ã€‚"
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
+msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
msgstr "GitLabインスタンスã®æ¨™æº–ドメイン(%{pages_host})ã§Pagesを使用ã™ã‚‹å ´åˆã€ã‚µãƒ–サブドメインã§HTTPSを使用ã§ãã¾ã›ã‚“。ã“ã‚Œã¯ã€åå‰ç©ºé–“やグループåã«ãƒ‰ãƒƒãƒˆãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã«æ©Ÿèƒ½ã—ãªã„ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚ã“ã‚Œã¯ã€HTTP over TLSプロトコルã®åˆ¶é™ã§ã™ã€‚HTTPã‚’HTTPSã«ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆã—ãªã„é™ã‚Šã€HTTPã®ãƒšãƒ¼ã‚¸ã¯å¼•ã続ã機能ã—ã¾ã™ã€‚%{docs_link_start}詳細ã¯ã“ã¡ã‚‰ã€‚%{link_end}"
@@ -22066,24 +22443,24 @@ msgstr "グローãƒãƒ«é€šçŸ¥ãƒ¡ãƒ¼ãƒ«"
msgid "Global notification level"
msgstr "グローãƒãƒ«é€šçŸ¥ãƒ¬ãƒ™ãƒ«"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr "%{search}%{description}%{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr "%{count} 件ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®çµæžœãŒæä¾›ã•ã‚Œã¾ã™ã€‚上下矢å°ã‚­ãƒ¼ã‚’使用ã—ã¦ã€æ¤œç´¢çµæžœãƒªã‚¹ãƒˆã‚’ナビゲートã—ã¾ã™ã€‚"
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
-msgstr "%{link_start}(Zoektã«ã‚ˆã‚‹)完全一致コード検索%{link_end}ãŒæœ‰åŠ¹ã§ã™"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
+msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr "集約ã®èª­ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ã€‚"
+msgid "GlobalSearch|All available groups"
+msgstr "利用å¯èƒ½ãªã™ã¹ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—"
+
msgid "GlobalSearch|Archived"
msgstr "アーカイブ済ã¿"
-msgid "GlobalSearch|Close"
-msgstr "é–‰ã˜ã‚‹"
-
msgid "GlobalSearch|Command palette"
msgstr "コマンドパレット"
@@ -22141,6 +22518,9 @@ msgstr "自分ãŒãƒ¬ãƒ“ュアーã§ã‚るマージリクエスト"
msgid "GlobalSearch|No labels found"
msgstr "ラベルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
+msgid "GlobalSearch|Nothing found…"
+msgstr "何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ..."
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr "インデックスã•ã‚Œã¦ã„ãªã„プロジェクトã®æœ€åˆã®%{max_shown}件ã®ã¿ãŒè¡¨ç¤ºã•ã‚Œã¾ã™"
@@ -22162,18 +22542,15 @@ msgstr "最近ã®ã‚¤ã‚·ãƒ¥ãƒ¼"
msgid "GlobalSearch|Recent merge requests"
msgstr "最近ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆ"
+msgid "GlobalSearch|Reset"
+msgstr "リセット"
+
msgid "GlobalSearch|Result count is over limit."
msgstr "çµæžœã®ä»¶æ•°ãŒåˆ¶é™ã‚’超ãˆã¦ã„ã¾ã™ã€‚"
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr "çµæžœãŒæ›´æ–°ã•ã‚Œã¾ã—ãŸã€‚%{count} 件ã®çµæžœãŒã‚ã‚Šã¾ã™ã€‚上下矢å°ã‚­ãƒ¼ã‚’使用ã—ã¦æ¤œç´¢çµæžœãƒªã‚¹ãƒˆå†…を移動ã—ã¦ã€Enter キーã§é€ä¿¡ã—ã¾ã™ã€‚"
-msgid "GlobalSearch|Search"
-msgstr "検索"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "GitLab を検索"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "プロジェクトやイシューãªã©ã‚’検索ã—ã¾ã™ã€‚"
@@ -22201,9 +22578,6 @@ msgstr "検索語ã¯å°‘ãªãã¨ã‚‚3文字以上ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ã€
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr "検索オートコンプリート候補ã®å–得中ã«ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr "「構文オプションã€ã®æ–‡æ›¸ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr "検索ã™ã‚‹ã«ã¯ %{kbdOpen}/%{kbdClose} ã¨å…¥åŠ›ã—ã¦ãã ã•ã„"
@@ -22213,9 +22587,6 @@ msgstr "検索をé€ä¿¡ã™ã‚‹ã«ã¯ã€Enter キーを入力ã—ã¦ãã ã•ã„。
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "æ–°ã—ã„候補を表示ã™ã‚‹ã«ã¯å…¥åŠ›ã—ã¦ãã ã•ã„。"
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "ショートカットキー%{kbdOpen}/%{kbdClose}を使用ã—ã¦æ¤œç´¢ã‚’開始"
-
msgid "GlobalSearch|Users"
msgstr "ユーザー"
@@ -22330,9 +22701,6 @@ msgstr "å‰ã®ãƒšãƒ¼ã‚¸ã«ç§»å‹•"
msgid "Go to previous unresolved thread"
msgstr "å‰ã®æœªè§£æ±ºã®ã‚¹ãƒ¬ãƒƒãƒ‰ã¸ç§»å‹•"
-msgid "Go to primary site"
-msgstr "プライマリサイトã«ç§»å‹•"
-
msgid "Go to project"
msgstr "プロジェクトã«ç§»å‹•"
@@ -22402,6 +22770,9 @@ msgstr "レビューリクエストã«ç§»å‹•"
msgid "Go to your snippets"
msgstr "ã‚ãªãŸã®ã‚¹ãƒ‹ãƒšãƒƒãƒˆã¸ç§»å‹•"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google Cloud"
@@ -22414,6 +22785,9 @@ msgstr "Google Cloud プロジェクト"
msgid "Google Cloud authorizations required"
msgstr "Google Cloud ã®èªè¨¼ãŒå¿…è¦ã§ã™"
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "キャンセル"
@@ -22450,12 +22824,12 @@ msgstr "èªè¨¼ã‚’失効ã™ã‚‹"
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr "GitLabã«ä»˜ä¸Žã•ã‚ŒãŸèªè¨¼ã‚’失効ã—ã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã£ã¦ã‚µãƒ¼ãƒ“スアカウントãŒç„¡åŠ¹ã«ãªã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。"
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
-msgstr "ä¿è­·ãƒ–ランãƒã¨ä¿è­·ã‚¿ã‚°ã«ã®ã¿å¤‰æ•°ã‚’設定ã™ã‚‹"
-
msgid "GooglePlayStore|Protected branches and tags only"
msgstr "ä¿è­·ãƒ–ランãƒã¨ä¿è­·ã‚¿ã‚°ã®ã¿"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
+msgstr ""
+
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "ã“ã“ã«ã‚­ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ドラッグã™ã‚‹ã‹ã€%{linkStart}ã“ã“をクリックã—ã¦%{linkEnd}キーファイルをアップロードã—ã¾ã™ã€‚"
@@ -22483,9 +22857,6 @@ msgstr "GitLabを使用ã—ã¦ã€ã‚¢ãƒ—リをビルドã—ã¦Google Playã«ãƒªãƒªã
msgid "Got it"
msgstr "了解"
-msgid "Got it!"
-msgstr "OK"
-
msgid "Grafana URL"
msgstr "Grafana ã® URL"
@@ -22624,6 +22995,9 @@ msgstr "グループ情報:"
msgid "Group information"
msgstr "グループ情報"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "ジョブをグループ化"
@@ -22717,11 +23091,14 @@ msgstr "グループã¯æ­£å¸¸ã«ã‚¤ãƒ³ãƒãƒ¼ãƒˆã§ãã¾ã—ãŸã€‚"
msgid "GroupImport|Unable to process group import file"
msgstr "グループã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’処ç†ã§ãã¾ã›ã‚“"
-msgid "GroupPage|Copy group ID"
-msgstr "グループ ID をコピー"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "グループ ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} – 終了日未設定"
@@ -22984,6 +23361,9 @@ msgstr "インスタンスãŒãƒ¦ãƒ¼ã‚¶ãƒ¼ä¸Šé™ã«é”ã—ãŸå¾Œã€è¿½åŠ ã™ã‚‹ãƒ¦
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr "インスタンスãŒãƒ¦ãƒ¼ã‚¶ãƒ¼ä¸Šé™ã«é”ã—ãŸå¾Œã€è¿½åŠ ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¾ãŸã¯ã‚¢ã‚¯ã‚»ã‚¹ã‚’è¦æ±‚ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’管ç†è€…ãŒæ‰¿èªã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ユーザー上é™ã‚’無制é™ã«ã™ã‚‹ã«ã¯ã€ç©ºç™½ã®ã¾ã¾ã«ã—ã¾ã™ã€‚ユーザー上é™ã‚’無制é™ã«å¤‰æ›´ã™ã‚‹å ´åˆã¯ã€%{project_sharing_docs_link_start}プロジェクト共有%{link_end}ãŠã‚ˆã³%{group_sharing_docs_link_start}グループ共有%{link_end}ã‚’å†åº¦æœ‰åŠ¹ã«ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ユーザーã®ä¸Šé™ã‚’増やã—ãŸã¨ã—ã¦ã‚‚ã€ãƒšãƒ³ãƒ‡ã‚£ãƒ³ã‚°ä¸­ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’自動的ã«æ‰¿èªã—ã¾ã›ã‚“。"
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr "分æž"
@@ -23005,6 +23385,9 @@ msgstr "ãƒãƒƒã‚¸"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr "注æ„: グループã®è¦ªã‚’変更ã™ã‚‹ã¨ã€æ„図ã—ãªã„副作用ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚%{learn_more_link_start}詳細ã¯ã“ã¡ã‚‰%{learn_more_link_end}。"
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "コンテナレジストリ㫠Docker イメージをå«ã‚€ãƒ—ロジェクトãŒã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ä¸‹ã«ã‚ã‚‹ãŸã‚ã€ãƒ‘スを更新ã§ãã¾ã›ã‚“。プロジェクトã‹ã‚‰ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’削除ã—ã¦ã€ã‚‚ã†ä¸€åº¦è©¦ã—ã¦ãã ã•ã„。"
@@ -23047,12 +23430,21 @@ msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—内ã®ã™ã¹ã¦ã®ãƒ—ロジェクトã«å¯¾ã—ã¦ãƒ‡ãƒ•
msgid "GroupSettings|Email notifications are disabled"
msgstr "メール通知ãŒç„¡åŠ¹ã§ã™"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr "ãƒãƒªãƒ¥ãƒ¼ã‚¹ãƒˆãƒªãƒ¼ãƒ ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã®æ¦‚è¦ç”»é¢ã®ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§ã®é›†è¨ˆã‚’有効ã«ã™ã‚‹"
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr "ã“れらã®æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ã¨ã€%{link_start}GitLabテスト契約%{link_end}ã«åŒæ„ã—ãŸã‚‚ã®ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr "実験ãŠã‚ˆã³ãƒ™ãƒ¼ã‚¿æ©Ÿèƒ½"
@@ -23077,6 +23469,9 @@ msgstr "親グループã®è¡¨ç¤ºãƒ¬ãƒ™ãƒ«ãŒã‚°ãƒ«ãƒ¼ãƒ—ã®ç¾åœ¨ã®è¡¨ç¤ºãƒ¬ãƒ™
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "メンãƒãƒ¼ã¯%{group}ã¨ãã®ã‚µãƒ–グループ以外ã«ã‚°ãƒ«ãƒ¼ãƒ—を招待ã§ãã¾ã›ã‚“"
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "組織ã¨é€£çµ¡å…ˆã‚’作æˆã—ã€ã‚¤ã‚·ãƒ¥ãƒ¼ã«é–¢é€£ä»˜ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
@@ -23101,6 +23496,12 @@ msgstr "%{group}ã®ãƒ—ロジェクトã¯ä»–ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¨å…±æœ‰ã§ãã¾ã›ã
msgid "GroupSettings|Reporting"
msgstr "レãƒãƒ¼ãƒˆ"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—内ã§æ–°è¦ãƒ—ロジェクトã®ã‚«ã‚¹ã‚¿ãƒ ãƒ†ãƒ³ãƒ—レートã®ã‚½ãƒ¼ã‚¹ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã‚µãƒ–グループをé¸æŠžã—ã¾ã™ã€‚%{link_start}詳細ã¯ã“ã¡ã‚‰%{link_end}。"
@@ -23143,6 +23544,9 @@ msgstr "パイプライン設定ã®æ›´æ–°ä¸­ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚%{e
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr "ã“れらã®æ©Ÿèƒ½ã¯é–‹ç™ºä¸­ã§ã‚ã‚‹ãŸã‚ã€ä¸å®‰å®šãªå ´åˆãŒã‚ã‚Šã¾ã™ã€‚"
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "ã“ã®è¨­å®šã¯%{ancestor_group}ã«é©ç”¨ã•ã‚Œã€ã‚µãƒ–グループã§ä¸Šæ›¸ãã•ã‚Œã¾ã™ã€‚"
@@ -23206,30 +23610,6 @@ msgstr "グループã¯ã€ãƒ—ロジェクトやプロジェクトã®ãƒ¡ãƒ³ãƒãƒ¼
msgid "Groups are the best way to manage projects and members."
msgstr "グループã¯ã€ãƒ—ロジェクトã¨ãƒ¡ãƒ³ãƒãƒ¼ã‚’管ç†ã™ã‚‹ãŸã‚ã®æœ€è‰¯ã®æ–¹æ³•ã§ã™ã€‚"
-msgid "GroupsDropdown|Frequently visited"
-msgstr "よã使ã†ã‚°ãƒ«ãƒ¼ãƒ—"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "よã使ã†ã‚°ãƒ«ãƒ¼ãƒ—ã¯ã“ã“ã«è¡¨ç¤ºã•ã‚Œã¾ã™"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "グループã®èª­ã¿è¾¼ã¿ä¸­"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—を検索"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "GitLabå´ã§å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“。検索æ¡ä»¶ã«ä¸€è‡´ã™ã‚‹ã‚°ãƒ«ãƒ¼ãƒ—ã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "ã“ã®æ©Ÿèƒ½ã‚’使用ã™ã‚‹ã«ã¯ã€ãƒ–ラウザーãŒlocalStorageã«å¯¾å¿œã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr "編集モードã®åˆ‡ã‚Šæ›¿ãˆ"
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr "グループã¨ã¯ã€è¤‡æ•°ã®ãƒ—ロジェクトã®é›†åˆä½“ã§ã™"
@@ -23290,8 +23670,8 @@ msgstr "サブグループを作æˆ"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr "ソースインスタンスã®URLを入力ã—ã¾ã™ã€‚"
-msgid "GroupsNew|GitLab source instance URL"
-msgstr "GitLabソースインスタンスURL"
+msgid "GroupsNew|GitLab source instance base URL"
+msgstr "GitLabソースインスタンスã®ãƒ™ãƒ¼ã‚¹URL"
msgid "GroupsNew|Groups"
msgstr "グループ"
@@ -23332,8 +23712,8 @@ msgstr "管ç†è€…設定ã§æœ‰åŠ¹ã«ã™ã‚‹ã‚ˆã†ç®¡ç†è€…ã«ä¾é ¼ã—ã¦ãã ã•
msgid "GroupsNew|Please fill in your personal access token."
msgstr "パーソナルアクセストークンを入力ã—ã¦ãã ã•ã„。"
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
-msgstr "インãƒãƒ¼ãƒˆã™ã‚‹ã‚½ãƒ¼ã‚¹ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®è³‡æ ¼æƒ…報を入力ã—ã¾ã™ã€‚ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’ソースã¨ã—ã¦ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å†…ã§ã‚°ãƒ«ãƒ¼ãƒ—を移動ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
+msgstr "インãƒãƒ¼ãƒˆã™ã‚‹%{url_link_start}ソースインスタンス%{url_link_end}ã®èªè¨¼æƒ…報を入力ã—ã¾ã™ã€‚ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’ソースã¨ã—ã¦ä½¿ç”¨ã—ã¦ã€ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å†…ã§ã‚°ãƒ«ãƒ¼ãƒ—を移動ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
msgstr "移行元ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã§ã‚‚å¿…ãšæœ‰åŠ¹ã«ã—ã¦ãã ã•ã„。"
@@ -23455,6 +23835,9 @@ msgstr "プロジェクト%{path}を作æˆã—ã€README.mdを追加ã—ã¾ã™ã€‚"
msgid "Groups|You're creating a new top-level group"
msgstr "æ–°ã—ã„トップレベルã®ã‚°ãƒ«ãƒ¼ãƒ—を作æˆã—ã¦ã„ã¾ã™"
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "ゲスト"
@@ -23509,6 +23892,15 @@ msgstr "Herberã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã®ãƒ‘スワード。"
msgid "HarborIntegration|The name of the project in Harbor."
msgstr "Harborã§ã®ãƒ—ロジェクトã®åå‰ã€‚"
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr "ã“ã®ãƒ—ロジェクトã®ã‚³ãƒ³ãƒ†ãƒŠãƒ¬ã‚¸ã‚¹ãƒˆãƒªã¨ã—ã¦Harborを使用ã—ã¾ã™ã€‚"
@@ -23763,10 +24155,6 @@ msgstr "スレッドを隠ã™"
msgid "Hide tooltips or popovers"
msgstr "ツールãƒãƒƒãƒ—ã¾ãŸã¯ãƒãƒƒãƒ—オーãƒãƒ¼ã‚’éš ã™"
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "値をéžè¡¨ç¤º"
-
msgid "Hide values"
msgstr "éžè¡¨ç¤º"
@@ -23785,6 +24173,9 @@ msgstr "GitLab ã§ã‚¢ã‚¯ã‚»ã‚¹ã—ãŸã„フレームワークや作業アイテãƒ
msgid "Hierarchy|Planning hierarchy"
msgstr "計画階層構造"
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr "å­ã®å–得中ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
@@ -23860,6 +24251,9 @@ msgstr "ãƒã‚¦ã‚¹ã‚­ãƒ¼ãƒ”ング"
msgid "Housekeeping successfully started"
msgstr "ãƒã‚¦ã‚¹ã‚­ãƒ¼ãƒ”ングã¯æ­£å¸¸ã«é–‹å§‹ã—ã¾ã—ãŸ"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr "GitLabã§ãƒ‘スワードを変更ã™ã‚‹ã«ã¯ã©ã†ã™ã‚Œã°ã‚ˆã„ã§ã™ã‹?"
@@ -23950,6 +24344,9 @@ msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“ãŒã€ã‚ãªãŸã®è³ªå•ã«ç­”ãˆã‚‹ãŸã‚ã®ãƒ‰
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] "%dã‹å›½ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ"
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr "%{linkStart}æ–°ã—ã„電話番å·ã‚’入力ã—ã¦ãã ã•ã„%{linkEnd}"
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr "コードã¯ã™ã§ã«ã“ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é€ä¿¡ã•ã‚Œã¦ã„ã¾ã™ã€‚スパムフォルダを確èªã™ã‚‹ã‹ã€åˆ¥ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。"
@@ -24062,8 +24456,8 @@ msgstr "アカウントã®ä½œæˆã‚’完了ã™ã‚‹å‰ã«ã€æœ¬äººç¢ºèªã‚’è¡Œã†å¿…
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "サインインã™ã‚‹å‰ã«ã€æœ¬äººç¢ºèªãŒå¿…è¦ã§ã™ã€‚サインインページã«æ¬¡ã®ã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ãã ã•ã„。"
-msgid "IdentityVerification|Complete verification to sign in."
-msgstr "サインインã™ã‚‹ã«ã¯èªè¨¼ã‚’完了ã—ã¦ãã ã•ã„。"
+msgid "IdentityVerification|Complete verification to sign up."
+msgstr "サインアップã™ã‚‹ã«ã¯èªè¨¼ã‚’完了ã—ã¦ãã ã•ã„。"
msgid "IdentityVerification|Confirm your email address"
msgstr "メールアドレスを確èªã—ã¦ãã ã•ã„"
@@ -24074,8 +24468,11 @@ msgstr "国ã¾ãŸã¯åœ°åŸŸ"
msgid "IdentityVerification|Didn't receive a code?"
msgstr "コードをå—ã‘å–ã‚Œã¦ã„ã¾ã›ã‚“ã‹ ?"
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
-msgstr "コードをå—ã‘å–ã£ã¦ã„ã¾ã›ã‚“ã‹ ?%{linkStart}æ–°ã—ã„コードをé€ä¿¡%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr "コードãŒå±Šãã¾ã›ã‚“ã‹?%{codeLinkStart}æ–°ã—ã„コードをé€ä¿¡ã™ã‚‹%{codeLinkEnd}ã‹ã€%{phoneLinkStart}別ã®é›»è©±ç•ªå·ã‚’入力ã—ã¦%{phoneLinkEnd}ãã ã•ã„"
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
msgid "IdentityVerification|Email update is only offered once."
msgstr "メールã®æ›´æ–°ã¯ä¸€åº¦ã ã‘æä¾›ã•ã‚Œã¾ã™ã€‚"
@@ -24146,6 +24543,9 @@ msgstr "æ–°ã—ã„コードをé€ä¿¡"
msgid "IdentityVerification|Send code"
msgstr "コードをé€ä¿¡"
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -24433,9 +24833,6 @@ msgstr "グループをインãƒãƒ¼ãƒˆ"
msgid "Import group from file"
msgstr "ファイルã‹ã‚‰ã‚°ãƒ«ãƒ¼ãƒ—をインãƒãƒ¼ãƒˆ"
-msgid "Import groups"
-msgstr "グループをインãƒãƒ¼ãƒˆ"
-
msgid "Import history"
msgstr "履歴インãƒãƒ¼ãƒˆ"
@@ -24611,12 +25008,12 @@ msgstr "インãƒãƒ¼ãƒˆä¸­..."
msgid "Import|An error occurred while fetching import details."
msgstr "インãƒãƒ¼ãƒˆã®è©³ç´°ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+msgid "Import|Failures for %{id}"
+msgstr ""
+
msgid "Import|GitHub import details"
msgstr "GitHubインãƒãƒ¼ãƒˆã®è©³ç´°"
-msgid "Import|GitLab Migration details"
-msgstr ""
-
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
msgstr "インãƒãƒ¼ãƒˆã‹ã‚‰ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã®æœ€å¤§è§£å‡ãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚º(MiB)"
@@ -24629,6 +25026,9 @@ msgstr "外部オブジェクトストレージã‹ã‚‰ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã®ãŸã‚
msgid "Import|Maximum size of decompressed archive."
msgstr "アーカイブã®å±•é–‹æ™‚ã®æœ€å¤§ã‚µã‚¤ã‚ºã€‚"
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr "ソースã®GitLabインスタンスã®ãƒ™ãƒ¼ã‚¹URLã®ã¿ã‚’入力ã—ã¦ãã ã•ã„。"
+
msgid "Import|No import details"
msgstr "インãƒãƒ¼ãƒˆã®è©³ç´°ãªã—"
@@ -24644,6 +25044,9 @@ msgstr "リãƒã‚¸ãƒˆãƒªã‚’インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr "ã“ã® URL ã¯æœ‰åŠ¹ãª Git リãƒã‚¸ãƒˆãƒªã§ã¯ã‚ã‚Šã¾ã›ã‚“。HTTP ã®ãƒªãƒã‚¸ãƒˆãƒªãŒå…¬é–‹ã•ã‚Œã¦ã„ãªã„å ´åˆã¯ã€èªè¨¼æƒ…報を確èªã—ã¦ãã ã•ã„。"
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr "アーカイブã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’解å‡ã™ã‚‹ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆï¼ˆç§’)"
@@ -25130,6 +25533,9 @@ msgstr "ã“ã®RunnerãŒã‚¿ã‚°ã®ãªã„ジョブをé¸æŠžã§ãã‚‹ã‹ã©ã†ã‹ã‚’
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "SSHキーをアップロードã—ã¦ã„ãªã„ユーザーã«ã€è¿½åŠ ã•ã‚Œã‚‹ã¾ã§SSH経由ã§ãƒ—ッシュã§ããªã„ã“ã¨ã‚’通知"
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr "インフラストラクãƒãƒ£"
@@ -25255,9 +25661,6 @@ msgstr "プロジェクトãŒinsights.ymlファイルã§ãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°ã•
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr "ã“ã®ãƒ—ロジェクト㯠`insights.yml` ファイルã§é™¤å¤–ã•ã‚Œã¾ã™ (詳細ã«ã¤ã„ã¦ã¯ã€`projects.only`設定をå‚ç…§ã—ã¦ãã ã•ã„)。"
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "GitLab Runner をインストールã—ã€å®Ÿè¡Œä¸­ã§ã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
-
msgid "Installation"
msgstr "インストール"
@@ -25643,9 +26046,6 @@ msgstr "無効ãªãƒ•ã‚¡ã‚¤ãƒ«ã§ã™ã€‚"
msgid "Invalid format selected"
msgstr "無効ãªãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã™"
-msgid "Invalid hash"
-msgstr "無効ãªãƒãƒƒã‚·ãƒ¥"
-
msgid "Invalid input, please avoid emoji"
msgstr "入力ãŒç„¡åŠ¹ã§ã™ã€‚絵文字を入れãªã„ã§ãã ã•ã„。"
@@ -25827,7 +26227,7 @@ msgid "InviteMembersModal|Select members"
msgstr ""
msgid "InviteMembersModal|Select members or type email addresses"
-msgstr "メンãƒãƒ¼ã‚’é¸æŠžã—ã¾ã™ã€‚ã¾ãŸã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。"
+msgstr "メンãƒãƒ¼ã‚’é¸æŠžã™ã‚‹ã‹ã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。"
msgid "InviteMembersModal|Show less"
msgstr "表示を減らã™"
@@ -25851,11 +26251,11 @@ msgstr "グループã®ã‚ªãƒ¼ãƒŠãƒ¼ãŒ%{trialLinkStart}トライアルを開始ã
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr "æ–°ã—ã„ユーザーをã“ã®ãƒˆãƒƒãƒ—レベルグループã«æ‹›å¾…ã™ã‚‹ã«ã¯ã€æ—¢å­˜ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’削除ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ãŸã ã—ã€å¼•ã続ãトップレベルグループ (ã™ã¹ã¦ã®ã‚µãƒ–グループã¨ãƒ—ロジェクトをå«ã‚€) ã‹ã‚‰æ—¢å­˜ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’追加ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚"
-msgid "InviteMembersModal|Username"
-msgstr ""
+msgid "InviteMembersModal|Username or name"
+msgstr "ユーザーåã¾ãŸã¯åå‰"
-msgid "InviteMembersModal|Username or email address"
-msgstr "ユーザーåã¾ãŸã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr "ユーザーåã€åå‰ã¾ãŸã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹"
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr "%{name}ã«ã¯ã€ã‚ã¨%{count}人ã®%{members}ã®ã‚¹ãƒšãƒ¼ã‚¹ã—ã‹ã‚ã‚Šã¾ã›ã‚“"
@@ -26181,14 +26581,14 @@ msgstr "イシュー㮠URL"
msgid "IssueTracker|New issue URL"
msgstr "æ–°ã—ã„イシュー㮠URL"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "外部ã®ã‚¤ã‚·ãƒ¥ãƒ¼ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã§ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’作æˆã™ã‚‹ãŸã‚ã® URL。"
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
-msgstr "外部ã®ã‚¤ã‚·ãƒ¥ãƒ¼ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã®ãƒ—ロジェクト㮠URL。"
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "外部ã®ã‚¤ã‚·ãƒ¥ãƒ¼ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã® URL ã§ã™ã€‚%{colon_id}ã‚’å«ã‚€å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "ã“ã®ãƒ—ロジェクトã®ã‚¤ã‚·ãƒ¥ãƒ¼ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã¨ã—ã¦Bugzillaを使用ã—ã¾ã™ã€‚"
@@ -26292,6 +26692,10 @@ msgstr "月ã‚ãŸã‚Šã®ä½œæˆã•ã‚ŒãŸã‚¤ã‚·ãƒ¥ãƒ¼"
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr "éŽåŽ» 12 ヶ月 (%{chartDateRange})"
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] "éŽåŽ»%{monthsCount}ã‹æœˆé–“(%{dateRange})"
+
msgid "IssuesAnalytics|Opened"
msgstr "未完了"
@@ -26301,9 +26705,8 @@ msgstr "概è¦"
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“。指定ã—ãŸãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã§ã¯è©²å½“ã™ã‚‹çµæžœãŒã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] "éŽåŽ» %{monthsCount} 月間(%{chartDateRange})"
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr "今月(%{currentMonthYear})"
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr "検索を拡大ã™ã‚‹ã«ã¯ã€ä¸Šè¨˜ã®ãƒ•ã‚£ãƒ«ã‚¿ãƒãƒ¼ã§ãƒ•ã‚£ãƒ«ã‚¿ã‚’変更ã¾ãŸã¯å‰Šé™¤ã—ã¾ã™."
@@ -26344,6 +26747,9 @@ msgstr "Dependency Scanning ジョブã¯æ­£å¸¸ã«å®Ÿè¡Œã•ã‚ŒãŸã‚ˆã†ã§ã™ãŒã
msgid "It seems that there is currently no available data for code coverage"
msgstr "ç¾åœ¨ã€ã‚³ãƒ¼ãƒ‰ã‚«ãƒãƒ¬ãƒƒã‚¸ã«åˆ©ç”¨ã§ãるデータãŒã‚ã‚Šã¾ã›ã‚“。"
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "ã‚ãªãŸã®ã“ã¨ã§ã™"
@@ -26473,6 +26879,9 @@ msgstr "イテレーションケイデンスã®èª­ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™º
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr "未完了ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã¯ã€%{strongStart}åˆå‰0時%{timezone}%{strongEnd}ã«æ¬¡ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã«è¿½åŠ ã•ã‚Œã¾ã™ã€‚"
+msgid "Iterations|Iteration cadence"
+msgstr "イテレーションケイデンス"
+
msgid "Iterations|Iteration cadences"
msgstr "ケイデンス"
@@ -26602,8 +27011,11 @@ msgstr "Jira-GitLabユーザーマッピングテンプレート"
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr "ã‚ãªãŸã¯GitLabã®ç®¡ç†è€…ã§ã™ã‹?"
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
-msgstr "åå‰ç©ºé–“ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。å分ãªæ¨©é™ãŒã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。å分ãªæ¨©é™ãŒã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
msgid "JiraConnect|Change GitLab version"
msgstr "GitLabã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’変更"
@@ -26671,15 +27083,15 @@ msgstr "グループãŒæ­£å¸¸ã«ãƒªãƒ³ã‚¯ã•ã‚Œã¾ã—ãŸ"
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr "グループã¯ã€ã“ã®Jiraインスタンスã«ãƒªãƒ³ã‚¯ã™ã‚‹GitLabã®ã‚°ãƒ«ãƒ¼ãƒ—やサブグループã§ã™ã€‚"
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr "Jira接続アプリケーションID"
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "Jira Connectã®ãƒ—ロキシURL"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr "グループをリンク"
@@ -26731,6 +27143,12 @@ msgstr "ã”æ„見をãŠèžã‹ã›ãã ã•ã„ï¼"
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr "GitLab for Jira Cloud Appã®ä½¿ç”¨æ„Ÿã«ã¤ã„ã¦ã€ãœã²ãŠèžã‹ã›ãã ã•ã„。"
@@ -26779,6 +27197,9 @@ msgstr "Jira ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ç”¨èªè¨¼æƒ…å ±ãŒãƒ‡ãƒ¼ã‚¿ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’è
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr "Jira ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ç”¨èªè¨¼æƒ…å ±ãŒæœ‰åŠ¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“。%{docs_link_start}Jira インテグレーションã®èªè¨¼æƒ…å ±%{docs_link_end}を確èªã—ã¦ã€ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr "ブランム%{branch_link}"
@@ -26938,8 +27359,8 @@ msgstr "接頭辞を使用ã—ã¦Jiraã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚­ãƒ¼ã‚’一致ã•ã›ã¾ã™ã€
msgid "JiraService|Use custom transitions"
msgstr "カスタムトランジションを使用ã™ã‚‹"
-msgid "JiraService|Use regular expression to match Jira issue keys."
-msgstr "æ­£è¦è¡¨ç¾ã‚’使用ã—ã¦Jiraã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚­ãƒ¼ã‚’一致ã•ã›ã¾ã™ã€‚"
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
+msgstr "æ­£è¦è¡¨ç¾ã‚’使用ã—ã¦Jiraã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚­ãƒ¼ã‚’一致ã•ã›ã¾ã™ã€‚æ­£è¦è¡¨ç¾ã¯ã€%{link_start}RE2%{link_end}構文ã«å¾“ã†å¿…è¦ ãŒã‚ã‚Šã¾ã™ã€‚ 空ã®å ´åˆã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®å‹•ä½œãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
msgid "JiraService|Using Jira for issue tracking?"
msgstr "イシューã®è¿½è·¡ã«Jiraを使ã„ã¾ã™ã‹ï¼Ÿ"
@@ -27208,6 +27629,9 @@ msgstr "所è¦æ™‚é–“"
msgid "Job|Erase job log and artifacts"
msgstr "ジョブã®ãƒ­ã‚°ã¨ã‚¢ãƒ¼ãƒ†ã‚£ãƒ•ã‚¡ã‚¯ãƒˆã‚’消去"
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr "外部リンク"
@@ -27217,6 +27641,9 @@ msgstr "失敗"
msgid "Job|Finished at"
msgstr "完了"
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "ジョブã®ã‚¢ãƒ¼ãƒ†ã‚£ãƒ•ã‚¡ã‚¯ãƒˆ"
@@ -27289,6 +27716,9 @@ msgstr "ジョブログを検索"
msgid "Job|Show complete raw"
msgstr "完全ãªrawを表示"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr "スキップ"
@@ -27409,9 +27839,6 @@ msgstr "キー (PEM)"
msgid "Key details"
msgstr "キーã®è©³ç´°"
-msgid "Key result"
-msgstr "主ãªçµæžœ"
-
msgid "Key:"
msgstr "キー:"
@@ -27448,6 +27875,9 @@ msgstr "キー"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27478,6 +27908,120 @@ msgstr "Kubernetes クラスター"
msgid "Kubernetes deployment not found"
msgstr "Kubernetes ã®ãƒ‡ãƒ—ロイãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27572,6 +28116,12 @@ msgstr "ラベルã¯ã‚¤ã‚·ãƒ¥ãƒ¼ã¨ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«é©ç”¨ã§ãã¾ã™
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr "ラベルã¯ã‚¤ã‚·ãƒ¥ãƒ¼ã€ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã€ã‚¨ãƒ”ックã«é©ç”¨ã§ãã¾ã™ã€‚グループラベルã¯ã‚°ãƒ«ãƒ¼ãƒ—内ã®ä»»æ„ã®ãƒ—ロジェクトã§ä½¿ç”¨ã§ãã¾ã™ã€‚"
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "ã“ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ã‚¤ã‚·ãƒ¥ãƒ¼ã®ãªã„ラベル:"
@@ -27612,8 +28162,8 @@ msgstr "ç›´è¿‘ã®24時間"
msgid "Last Accessed On"
msgstr "最終アクセス"
-msgid "Last Activity"
-msgstr "å‰å›žã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ“ティ"
+msgid "Last GitLab activity"
+msgstr ""
msgid "Last Name"
msgstr "ãŠåå‰(姓)"
@@ -27630,6 +28180,9 @@ msgstr "最終アクセス"
msgid "Last activity"
msgstr "最後ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ“ティー"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "最新コミット"
@@ -27827,7 +28380,7 @@ msgstr "詳細を見る: `%{url}`"
msgid "LearnGitLab|%d task to go"
msgid_plural "LearnGitLab|%d tasks to go"
-msgstr[0] ""
+msgstr[0] "LearnGitLab|%d完了ã™ã¹ãタスク"
msgid "LearnGitLab|%{percentage}%{percentSymbol} completed"
msgstr "%{percentage}%{percentSymbol} 完了"
@@ -27913,9 +28466,6 @@ msgstr "最åˆã®ãƒ—ロジェクトã«CI/CDを設定"
msgid "LearnGitLab|Set up your workspace"
msgstr "ワークスペースを設定"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr "GitLabã®å­¦ç¿’を開始"
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "GitLab Ultimateã®ç„¡æ–™ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã‚’開始"
@@ -27946,6 +28496,9 @@ msgstr "ãƒãƒ¼ãƒ ã¯ç™ºå±•ã—ã¦ã„ã¾ã™! %{projectName} プロジェクトã«æ
msgid "LearnGitlab|- Included in trial"
msgstr "- 試用版ã«å«ã‚ã‚‹"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr "30日間ã®ãƒˆãƒ©ã‚¤ã‚¢ãƒ«å¾Œã¯ã€ã“ã®æ©Ÿèƒ½ã¯%{planName}プランã§ã®ã¿åˆ©ç”¨å¯èƒ½ã§ã™ã€‚"
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr "ã“ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’有効ã«ã™ã‚‹ãŸã‚ã«ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ãã ã•ã„。"
@@ -27961,9 +28514,6 @@ msgstr "管ç†è€…リストを表示"
msgid "Leave"
msgstr "離脱"
-msgid "Leave admin mode"
-msgstr "管ç†è€…モードを終ãˆã‚‹"
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "編集モードを終了ã—ã¾ã™ã‹? ãã®å ´åˆã€ä¿å­˜ã—ã¦ã„ãªã„変更ã¯ã™ã¹ã¦å¤±ã‚ã‚Œã¾ã™ã€‚"
@@ -28156,8 +28706,8 @@ msgstr "コンãƒãƒ¼ãƒãƒ³ãƒˆ"
msgid "Licenses|Components"
msgstr "コンãƒãƒ¼ãƒãƒ³ãƒˆ"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
-msgstr "%{linkStart}最新ã®æˆåŠŸã—ãŸ%{linkEnd}スキャンã«åŸºã¥ã„ã¦ã€ãƒ—ロジェクトã®ãƒãƒªã‚·ãƒ¼ã«æº–æ‹ ã—ã¦ã„ãªã„ã€ãƒ—ロジェクトã§æ¤œå‡ºã•ã‚ŒãŸãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’表示ã—ã¾ã™"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
+msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
msgstr "ã“ã“ã«ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ドラッグã™ã‚‹ã‹ã€%{linkStart}ã“ã“%{linkEnd}をクリックã—ã¦ã‚’アップロードã—ã¾ã™ã€‚"
@@ -28334,9 +28884,6 @@ msgstr "リスト"
msgid "List available repositories"
msgstr "利用å¯èƒ½ãªãƒªãƒã‚¸ãƒˆãƒªã®ãƒªã‚¹ãƒˆ"
-msgid "List of all commits"
-msgstr "全コミットã®ä¸€è¦§"
-
msgid "List of suitable GCP locations"
msgstr "é©åˆ‡ãªGCPロケーションã®ãƒªã‚¹ãƒˆ"
@@ -28370,6 +28917,9 @@ msgstr "æ›´ã«è¡¨ç¤º"
msgid "Load more users"
msgstr "ユーザーを更ã«è¡¨ç¤º"
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr "読ã¿è¾¼ã¿ä¸­"
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr " ディスカッションをロックã™ã‚‹."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "GitLab ã«ã¤ã„ã¦"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr "営業担当者ã«é€£çµ¡"
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "GitLab を見る"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "始ã‚ã‚‹"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr "GitLab ラーニング"
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr "GitLab ドキュメント"
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr "GitLab: DevOps プラットフォーム"
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr "GitLab ã®ç‰¹å¾´"
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr "GitLab をインストール"
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr "価格"
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr "専門家ã¨è©±ã™"
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr "GitLab ã®ç†ç”±"
@@ -28523,12 +29049,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr "CI情報"
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr "候補を削除ã—ã¾ã™ã‹?"
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr "実験を削除ã—ã¾ã™ã‹?"
@@ -28583,9 +29103,6 @@ msgstr "Mailgun ã® HTTPWebhook ç½²åキー"
msgid "Mailgun events"
msgstr "Mailgun イベント"
-msgid "Main menu"
-msgstr "メインメニュー"
-
msgid "Maintainer"
msgstr "メンテナー"
@@ -29070,7 +29587,7 @@ msgid "Maximum number of unique IP addresses per user."
msgstr "ユーザーã‚ãŸã‚Šã®ä¸€æ„ã® IP アドレスã®æœ€å¤§æ•°ã€‚"
msgid "Maximum number of value streams per namespace exceeded"
-msgstr "åå‰ç©ºé–“ã‚ãŸã‚Šã®æœ€å¤§ãƒãƒªãƒ¥ãƒ¼ã‚¹ãƒˆãƒªãƒ¼ãƒ æ•°ã‚’超ãˆã¾ã—ãŸ"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚ãŸã‚Šã®æœ€å¤§ãƒãƒªãƒ¥ãƒ¼ã‚¹ãƒˆãƒªãƒ¼ãƒ æ•°ã‚’超ãˆã¾ã—ãŸ"
msgid "Maximum number of variables loaded (2000)"
msgstr "ロードã™ã‚‹å¤‰æ•°ã®æœ€å¤§æ•° (2000)"
@@ -29189,101 +29706,104 @@ msgstr "%{member_name}ãŒã‚ãªãŸã‚’GitLabã«å‚加ã™ã‚‹ã‚ˆã†æ‹›å¾…ã—ã¾ã—ã
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr "%{project_or_group}ã®%{project_or_group_name}å‚加ã¸ã®æ‹›å¾…"
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr "アクション"
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr "æ–°ã—ã„ロールを追加"
-msgid "MemberRoles|Are you sure you want to delete this role?"
-msgstr "本当ã«ã“ã®ãƒ­ãƒ¼ãƒ«ã‚’削除ã—ã¾ã™ã‹?"
+msgid "MemberRole|Are you sure you want to delete this role?"
+msgstr "本当ã«ã“ã®ãƒ­ãƒ¼ãƒ«ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ"
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr "基本ã®ãƒ­ãƒ¼ãƒ«"
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr "テンプレートã¨ã—ã¦ä½¿ç”¨ã™ã‚‹åŸºæœ¬ã®ãƒ­ãƒ¼ãƒ«"
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
-msgstr ""
+msgid "MemberRole|Could not fetch available permissions: %{message}"
+msgstr "使用å¯èƒ½ãªæ¨©é™ã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %{message} "
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr "æ–°ã—ã„ロールを作æˆ"
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
+msgstr "カスタム権é™:"
+
+msgid "MemberRole|Custom roles"
msgstr "カスタムロール"
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
-msgstr ""
+msgid "MemberRole|Custom roles based on %{accessLevel}"
+msgstr "%{accessLevel}ã«åŸºã¥ãカスタムロール"
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Delete role"
msgstr "ロールを削除"
-msgid "MemberRoles|Description"
+msgid "MemberRole|Description"
msgstr "説明"
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Enter a short name."
msgstr "短ã‚ã®åå‰ã‚’入力ã—ã¾ã™ã€‚"
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Failed to create role."
msgstr "ロールã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to delete the role."
msgstr "ロールã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to fetch roles."
msgstr "ロールã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-msgid "MemberRoles|ID"
+msgid "MemberRole|ID"
msgstr "ID"
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Incident manager"
msgstr "インシデントマãƒãƒ¼ã‚¸ãƒ£ãƒ¼"
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr "グループãŒUltimateプランã«ã‚ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚"
-msgid "MemberRoles|Name"
+msgid "MemberRole|Name"
msgstr "åå‰"
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|No custom roles for this group"
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã‚«ã‚¹ã‚¿ãƒ ãƒ­ãƒ¼ãƒ«ãŒã‚ã‚Šã¾ã›ã‚“"
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Permissions"
msgstr "権é™"
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Role name"
msgstr "ロールã®åå‰"
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role successfully created."
msgstr "ロールã®ä½œæˆã«æˆåŠŸã—ã¾ã—ãŸã€‚"
-msgid "MemberRoles|Role successfully deleted."
-msgstr "ロールã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+msgid "MemberRole|Role successfully deleted."
+msgstr "ロールã®å‰Šé™¤ã«ã«æˆåŠŸã—ã¾ã—ãŸã€‚"
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr "権é™ã‚’追加ã™ã‚‹æ¨™æº–ロールをé¸æŠžã—ã¾ã™ã€‚"
-msgid "MemberRoles|Standard roles"
-msgstr ""
+msgid "MemberRole|Standard roles"
+msgstr "標準ロール"
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr "æ–°ã—ã„ロールを追加ã™ã‚‹ã«ã¯ã€ã€Œæ–°ã—ã„ロールを追加ã€ã‚’é¸æŠžã—ã¾ã™ã€‚"
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr "æ–°ã—ã„ロールを追加ã™ã‚‹ã«ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—ã‚’é¸æŠžã—ã¦ã‹ã‚‰ã€Œæ–°ã—ã„ロールを追加ã€ã‚’é¸æŠžã—ã¾ã™ã€‚"
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr "カスタムロールを削除ã™ã‚‹ã«ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—メンãƒãƒ¼ã«ã“ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ­ãƒ¼ãƒ«ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„"
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
-msgstr "%{permission}を有効ã«ã™ã‚‹ã«ã¯ã€%{requirement}を有効ã«ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
-
msgid "MemberRole|can't be changed"
msgstr "変更ã§ãã¾ã›ã‚“"
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
-msgstr "ã™ã§ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã‚‹ãŸã‚変更ã§ãã¾ã›ã‚“。代ã‚ã‚Šã«æ–°ã—ã„メンãƒãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’作æˆã—ã¦ãã ã•ã„"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
+msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
msgstr "ã™ã§ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã‚‹ãŸã‚ã€å‰Šé™¤ã§ãã¾ã›ã‚“。削除ã™ã‚‹å‰ã«ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ãƒ¡ãƒ³ãƒãƒ¼ã®å½¹å‰²ã‚’解除ã—ã¦ãã ã•ã„。"
@@ -29292,7 +29812,7 @@ msgid "MemberRole|maximum number of Member Roles are already in use by the group
msgstr "メンãƒãƒ¼ãƒ­ãƒ¼ãƒ«ã®æœ€å¤§æ•°ã¯æ—¢ã«ã‚°ãƒ«ãƒ¼ãƒ—ã«ã‚ˆã£ã¦ä½¿ç”¨ã•ã‚Œã¦ã„ã¾ã™ã€‚既存ã®ãƒ¡ãƒ³ãƒãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’削除ã—ã¦ãã ã•ã„。"
msgid "MemberRole|must be top-level namespace"
-msgstr "トップレベルã®åå‰ç©ºé–“ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
+msgstr "トップレベルã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
msgid "Members"
msgstr "メンãƒãƒ¼"
@@ -29576,6 +30096,9 @@ msgstr "マージリクエストã®æ‰¿èª"
msgid "Merge request author cannot push to target project"
msgstr "マージリクエストã®ä½œæˆè€…ã¯ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãƒ—ロジェクトã«ãƒ—ッシュã§ãã¾ã›ã‚“"
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr "マージリクエストã®å¤‰æ›´ã®æ¦‚è¦"
@@ -29957,6 +30480,9 @@ msgstr "イメージを更新ã™ã‚‹éš›ã«ã‚¤ã‚·ãƒ¥ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
msgid "MetricImages|There was an issue uploading your image."
msgstr "イメージをアップロードã™ã‚‹éš›ã«ã‚¤ã‚·ãƒ¥ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+msgid "Metrics"
+msgstr "メトリクス"
+
msgid "Metrics - Grafana"
msgstr "メトリクス - Grafana"
@@ -29990,15 +30516,9 @@ msgstr "メトリクスを削除"
msgid "Metrics|Delete metric?"
msgstr "メトリクスを削除ã—ã¾ã™ã‹?"
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr "メトリクスを編集"
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr "é¡žä¼¼ã®ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’グループ化"
@@ -30008,15 +30528,9 @@ msgstr "y 軸ã®ãƒ©ãƒ™ãƒ« (通常ã¯å˜ä½)。x 軸ã¯å¸¸ã«æ™‚間を表ã—ã¾ã
msgid "Metrics|Legend label (optional)"
msgstr "汎用ラベル (オプション)"
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "有効ãªPromQLクエリã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "æ–°ã—ã„メトリクス"
@@ -30029,9 +30543,6 @@ msgstr "Prometheusクエリã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ"
msgid "Metrics|There was an error trying to validate your query"
msgstr "クエリã®æ¤œè¨¼ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr "ユニットラベル"
@@ -30068,6 +30579,9 @@ msgstr "例:リクエスト毎秒"
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr "クライアント ID"
@@ -30291,9 +30805,15 @@ msgstr "最å°å€¤"
msgid "Minimal Access"
msgstr "最å°ã‚¢ã‚¯ã‚»ã‚¹"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr "ã“ã®GitLabインスタンス内ã®ãƒªãƒã‚¸ãƒˆãƒªã«æ©Ÿå¯†æƒ…å ±ãŒã‚³ãƒŸãƒƒãƒˆã•ã‚Œã‚‹ãƒªã‚¹ã‚¯ã‚’最å°é™ã«æŠ‘ãˆã¾ã™ã€‚"
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "より多ãã®ãƒŸãƒ©ãƒ¼ã‚’優先的ã«ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã™ã‚‹å‰ã«ä½¿ç”¨å¯èƒ½ã«ãªã‚‹ãŸã‚ã®æœ€å°å®¹é‡ã€‚"
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "分"
@@ -30387,9 +30907,6 @@ msgstr "作æˆè€…"
msgid "MlExperimentTracking|CI Job"
msgstr "CIジョブ"
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr "候補ãŒCIビルドã«ãƒªãƒ³ã‚¯ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
msgid "MlExperimentTracking|Candidate removed"
msgstr "候補者ãŒå‰Šé™¤ã•ã‚Œã¾ã—ãŸ"
@@ -30405,6 +30922,9 @@ msgstr "作æˆæ—¥æ™‚"
msgid "MlExperimentTracking|Delete candidate"
msgstr "候補を削除"
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr "実験を削除"
@@ -30435,36 +30955,18 @@ msgstr "候補をフィルター"
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr "モデル実験を始ã‚ã¾ã—ょã†!"
-msgid "MlExperimentTracking|ID"
-msgstr "ID"
-
-msgid "MlExperimentTracking|Info"
-msgstr "情報"
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr "実験用ã«è¨˜éŒ²ã•ã‚ŒãŸå€™è£œè€…"
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr "MLflow実行ID"
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr "機械学習実験ã®è¿½è·¡"
-msgid "MlExperimentTracking|Metadata"
-msgstr "メタデータ"
-
-msgid "MlExperimentTracking|Metrics"
-msgstr "メトリクス"
-
msgid "MlExperimentTracking|Model candidate details"
msgstr "モデル候補ã®è©³ç´°"
msgid "MlExperimentTracking|Model experiments"
msgstr "モデル実験"
-msgid "MlExperimentTracking|Model performance"
-msgstr "モデルパフォーマンス"
-
msgid "MlExperimentTracking|Model removed"
msgstr "モデル消去済ã¿"
@@ -30480,27 +30982,9 @@ msgstr "候補ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr "クエリã«è¨˜éŒ²ã•ã‚ŒãŸå€™è£œã¯ã‚ã‚Šã¾ã›ã‚“。MLflowクライアントを使用ã—ã¦æ–°ã—ã„候補を作æˆã—ã¾ã™ã€‚"
-msgid "MlExperimentTracking|No logged metadata"
-msgstr "記録ã•ã‚ŒãŸãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr "記録ã•ã‚ŒãŸãƒ¡ãƒˆãƒªã‚¯ã‚¹ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr "記録ã•ã‚ŒãŸãƒ‘ラメーターã¯ã‚ã‚Šã¾ã›ã‚“"
-
msgid "MlExperimentTracking|No name"
msgstr "åå‰ãªã—"
-msgid "MlExperimentTracking|Parameters"
-msgstr "パラメータ"
-
-msgid "MlExperimentTracking|Status"
-msgstr "状態"
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr "トリガー元"
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] ""
@@ -30509,23 +30993,110 @@ msgid "MlModelRegistry|%d version"
msgid_plural "MlModelRegistry|%d versions"
msgstr[0] ""
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr ""
+
+msgid "MlModelRegistry|CI Info"
+msgstr ""
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr ""
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr "詳細"
+msgid "MlModelRegistry|Experiment"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
+msgstr ""
+
msgid "MlModelRegistry|Latest version"
msgstr "最新ãƒãƒ¼ã‚¸ãƒ§ãƒ³"
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr "モデルレジストリ"
-msgid "MlModelRegistry|No models registered in this project"
-msgstr "ã“ã®ãƒ—ロジェクトã«ç™»éŒ²ã•ã‚Œã¦ã„るモデルã¯ã‚ã‚Šã¾ã›ã‚“"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr "記録ã•ã‚ŒãŸãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr "記録ã•ã‚ŒãŸãƒ¡ãƒˆãƒªã‚¯ã‚¹ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+msgid "MlModelRegistry|No logged parameters"
+msgstr "記録ã•ã‚ŒãŸãƒ‘ラメーターã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "MlModelRegistry|No registered versions"
msgstr "登録ã•ã‚ŒãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒã‚ã‚Šã¾ã›ã‚“"
-msgid "MlModelRegistry|This model has no versions"
-msgstr "ã“ã®ãƒ¢ãƒ‡ãƒ«ã«ã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr "トリガー元"
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
+msgstr ""
msgid "MlModelRegistry|Version candidates"
msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³å€™è£œ"
@@ -30549,9 +31120,15 @@ msgstr "é–‰ã˜ã‚‹"
msgid "Model experiments"
msgstr "モデル実験"
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr "モデルレジストリ"
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "修正済"
@@ -30787,22 +31364,22 @@ msgid "Namespace ID:"
msgstr "åå‰ç©ºé–“ID:"
msgid "Namespace Limits"
-msgstr "åå‰ç©ºé–“ã®åˆ¶é™"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®åˆ¶é™"
msgid "Namespace Storage"
-msgstr "åå‰ç©ºé–“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸"
msgid "Namespace doesn't exist or you don't have permission."
-msgstr "åå‰ç©ºé–“ãŒå­˜åœ¨ã—ãªã„ã‹ã€æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ãŒå­˜åœ¨ã—ãªã„ã‹ã€æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
msgid "Namespace must be provided."
-msgstr "åå‰ç©ºé–“ã®å…¥åŠ›ãŒå¿…è¦ã§ã™ã€‚"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®å…¥åŠ›ãŒå¿…è¦ã§ã™ã€‚"
msgid "Namespace or group to import repository into does not exist."
-msgstr "リãƒã‚¸ãƒˆãƒªã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆå…ˆã®åå‰ç©ºé–“ã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
+msgstr "リãƒã‚¸ãƒˆãƒªã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆå…ˆã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
msgid "Namespace or project is required"
-msgstr "åå‰ç©ºé–“ã¾ãŸã¯ãƒ—ロジェクトãŒå¿…è¦ã§ã™"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¾ãŸã¯ãƒ—ロジェクトãŒå¿…è¦ã§ã™"
msgid "Namespace:"
msgstr "åå‰ç©ºé–“:"
@@ -30811,13 +31388,13 @@ msgid "NamespaceLimits|%{date} %{linkStart}%{username}%{linkEnd} changed the lim
msgstr "%{date}%{linkStart}%{username} %{linkEnd} ãŒåˆ¶é™ã‚’ %{limit} ã«å¤‰æ›´ã—ã¾ã—㟠"
msgid "NamespaceLimits|Add minimum free storage amount (in MiB) that will be used to enforce storage usage for namespaces on free plan. To remove the limit, set the value to 0 and click \"Update limit\" button."
-msgstr "無料プランã§ã€åå‰ç©ºé–“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®ä½¿ç”¨ã‚’実施ã™ã‚‹ãŸã‚ã«åˆ©ç”¨ã•ã‚Œã‚‹ã€æœ€å°ç©ºãã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸é‡ (å˜ä½: MiB) を追加ã—ã¾ã™ã€‚制é™ã‚’削除ã™ã‚‹ã«ã¯ã€å€¤ã‚’ 0 ã«è¨­å®šã—ã€ã€Œåˆ¶é™ã‚’æ›´æ–°ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚"
+msgstr "無料プランã§ã€ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®ä½¿ç”¨ã‚’実施ã™ã‚‹ãŸã‚ã«åˆ©ç”¨ã•ã‚Œã‚‹ã€æœ€å°ç©ºãã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸é‡ (å˜ä½: MiB) を追加ã—ã¾ã™ã€‚制é™ã‚’削除ã™ã‚‹ã«ã¯ã€å€¤ã‚’ 0 ã«è¨­å®šã—ã€ã€Œåˆ¶é™ã‚’æ›´æ–°ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚"
msgid "NamespaceLimits|Add minimum free storage amount (in MiB) that will be used to set the dashboard limit for namespaces on free plan. To remove the limit, set the value to 0 and click \"Update limit\" button."
-msgstr "無料プランã§åå‰ç©ºé–“ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰åˆ¶é™ã‚’設定ã™ã‚‹éš›ã«ä½¿ç”¨ã•ã‚Œã‚‹ã€æœ€å°ç©ºãã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸é‡ (å˜ä½: MiB) を追加ã—ã¾ã™ã€‚制é™ã‚’削除ã™ã‚‹ã«ã¯ã€å€¤ã‚’ 0 ã«è¨­å®šã—ã€ã€Œåˆ¶é™ã‚’æ›´æ–°ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚"
+msgstr "無料プランã§ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰åˆ¶é™ã‚’設定ã™ã‚‹éš›ã«ä½¿ç”¨ã•ã‚Œã‚‹ã€æœ€å°ç©ºãã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸é‡ (å˜ä½: MiB) を追加ã—ã¾ã™ã€‚制é™ã‚’削除ã™ã‚‹ã«ã¯ã€å€¤ã‚’ 0 ã«è¨­å®šã—ã€ã€Œåˆ¶é™ã‚’æ›´æ–°ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚"
msgid "NamespaceLimits|Add minimum free storage amount (in MiB) that will be used to show notifications for namespace on free plan. To remove the limit, set the value to 0 and click \"Update limit\" button."
-msgstr "無料プランã®åå‰ç©ºé–“ã§é€šçŸ¥ã‚’表示ã™ã‚‹éš›ã«ä½¿ç”¨ã•ã‚Œã‚‹ã€æœ€å°ç©ºãã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸é‡ (å˜ä½: MiB) を追加ã—ã¾ã™ã€‚制é™ã‚’削除ã™ã‚‹ã«ã¯ã€å€¤ã‚’ 0 ã«è¨­å®šã—ã€ã€Œåˆ¶é™ã‚’æ›´æ–°ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚"
+msgstr "無料プランã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã§é€šçŸ¥ã‚’表示ã™ã‚‹éš›ã«ä½¿ç”¨ã•ã‚Œã‚‹ã€æœ€å°ç©ºãã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸é‡ (å˜ä½: MiB) を追加ã—ã¾ã™ã€‚制é™ã‚’削除ã™ã‚‹ã«ã¯ã€å€¤ã‚’ 0 ã«è¨­å®šã—ã€ã€Œåˆ¶é™ã‚’æ›´æ–°ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚"
msgid "NamespaceLimits|Confirm deletion"
msgstr "削除を確èª"
@@ -30838,7 +31415,7 @@ msgid "NamespaceLimits|Deletion confirmation"
msgstr "削除ã®ç¢ºèª"
msgid "NamespaceLimits|Do you confirm the deletion of the selected namespace from the exclusion list?"
-msgstr "除外リストã‹ã‚‰é¸æŠžã—ãŸåå‰ç©ºé–“を削除ã™ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã‹?"
+msgstr "除外リストã‹ã‚‰é¸æŠžã—ãŸãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’削除ã™ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã‹?"
msgid "NamespaceLimits|Enforcement Limit"
msgstr "制é™ã®é©ç”¨"
@@ -30856,10 +31433,10 @@ msgid "NamespaceLimits|Exclude"
msgstr "除外"
msgid "NamespaceLimits|Exclude namespace"
-msgstr "åå‰ç©ºé–“を除外"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’除外"
msgid "NamespaceLimits|Excluded Namespaces"
-msgstr "åå‰ç©ºé–“を除外"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’除外"
msgid "NamespaceLimits|Exclusion added successfully"
msgstr "除外ãŒæ­£å¸¸ã«è¿½åŠ ã•ã‚Œã¾ã—ãŸ"
@@ -30868,7 +31445,7 @@ msgid "NamespaceLimits|Export .csv"
msgstr ".csvをエクスãƒãƒ¼ãƒˆ"
msgid "NamespaceLimits|Export a csv file with Free Tier anonymized namespace storage usage statistics. This is an asynchronous operation, once the file is generated we will send it to your registered email."
-msgstr "無料プランã®åŒ¿å化ã•ã‚ŒãŸåå‰ç©ºé–“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ä½¿ç”¨é‡ã«é–¢ã™ã‚‹çµ±è¨ˆæƒ…報をå«ã‚€CSVファイルをエクスãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ã“ã‚Œã¯éžåŒæœŸã‚ªãƒšãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ã™ã€‚ファイルãŒç”Ÿæˆã•ã‚Œã‚‹ã¨ã€ç™»éŒ²ã•ã‚ŒãŸãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚"
+msgstr "無料プランã®åŒ¿å化ã•ã‚ŒãŸãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ä½¿ç”¨é‡ã«é–¢ã™ã‚‹çµ±è¨ˆæƒ…報をå«ã‚€CSVファイルをエクスãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ã“ã‚Œã¯éžåŒæœŸã‚ªãƒšãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ã™ã€‚ファイルãŒç”Ÿæˆã•ã‚Œã‚‹ã¨ã€ç™»éŒ²ã•ã‚ŒãŸãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚"
msgid "NamespaceLimits|Free Tier"
msgstr "無料プラン"
@@ -30877,10 +31454,10 @@ msgid "NamespaceLimits|NONE"
msgstr "ãªã—"
msgid "NamespaceLimits|Namespace limits could not be loaded. Reload the page to try again."
-msgstr "åå‰ç©ºé–“ã®åˆ¶é™ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“。ページをå†èª­ã¿è¾¼ã¿ã—ã¦ã€å†åº¦ãŠè©¦ã—下ã•ã„。"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®åˆ¶é™ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“。ページをå†èª­ã¿è¾¼ã¿ã—ã¦ã€å†åº¦ãŠè©¦ã—下ã•ã„。"
msgid "NamespaceLimits|Namespaces Statistics"
-msgstr "åå‰ç©ºé–“ã®çµ±è¨ˆ"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®çµ±è¨ˆ"
msgid "NamespaceLimits|Notifications Limit"
msgstr "通知制é™"
@@ -30895,7 +31472,7 @@ msgid "NamespaceLimits|Reason"
msgstr "ç†ç”±"
msgid "NamespaceLimits|Reason for excluding this namespace"
-msgstr "ã“ã®åå‰ç©ºé–“を除外ã—ãŸç†ç”±"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’除外ã—ãŸç†ç”±"
msgid "NamespaceLimits|Set Dashboard limit"
msgstr "ダッシュボードã®åˆ¶é™ã‚’設定"
@@ -30910,37 +31487,37 @@ msgid "NamespaceLimits|Storage Phased Notification"
msgstr "ストレージã®ãƒ•ã‚§ãƒ¼ã‚ºã«é–¢ã™ã‚‹é€šçŸ¥"
msgid "NamespaceLimits|There was an error deleting the namespace: \"%{errorMessage}\"."
-msgstr "åå‰ç©ºé–“ã®å‰Šé™¤ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ:「%{errorMessage}ã€ã€‚"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®å‰Šé™¤ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ:「%{errorMessage}ã€ã€‚"
msgid "NamespaceLimits|There was an error fetching the exclusion list, try refreshing the page."
msgstr "除外リストã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページを更新ã—ã¦ãã ã•ã„。"
msgid "NamespaceLimits|These namespaces won't receive any notifications nor any degraded functionality while they remain on this list"
-msgstr "ã“ã®ãƒªã‚¹ãƒˆã«è¼‰ã£ã¦ã„ã‚‹é™ã‚Šã€ã“れらã®åå‰ç©ºé–“ã¯é€šçŸ¥ã‚’å—ã‘å–ã‚‹ã“ã¨ã‚‚ã€æ©Ÿèƒ½ãŒä½Žä¸‹ã™ã‚‹ã“ã¨ã‚‚ã‚ã‚Šã¾ã›ã‚“"
+msgstr "ã“ã®ãƒªã‚¹ãƒˆã«è¼‰ã£ã¦ã„ã‚‹é™ã‚Šã€ã“れらã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¯é€šçŸ¥ã‚’å—ã‘å–ã‚‹ã“ã¨ã‚‚ã€æ©Ÿèƒ½ãŒä½Žä¸‹ã™ã‚‹ã“ã¨ã‚‚ã‚ã‚Šã¾ã›ã‚“"
msgid "NamespaceLimits|This will change the dashboard limit for all free namespaces except the excluded namespaces, the limit can be removed later."
-msgstr "ã“ã‚Œã¯ã€é™¤å¤–ã•ã‚ŒãŸåå‰ç©ºé–“を除ãã™ã¹ã¦ã®ç„¡æ–™ã®åå‰ç©ºé–“ã«ãŠã‘るダッシュボードã®åˆ¶é™ã‚’変更ã—ã¾ã™ã€‚制é™ã¯å¾Œã§å‰Šé™¤ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚"
+msgstr "ã“ã‚Œã¯ã€é™¤å¤–ã•ã‚ŒãŸãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’除ãã™ã¹ã¦ã®ç„¡æ–™ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã«ãŠã‘るダッシュボードã®åˆ¶é™ã‚’変更ã—ã¾ã™ã€‚制é™ã¯å¾Œã§å‰Šé™¤ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚"
msgid "NamespaceLimits|This will change when free namespaces get storage enforcement except the excluded namespaces, the limit can be removed later."
-msgstr "ã“ã‚Œã¯ã€é™¤å¤–ã•ã‚ŒãŸåå‰ç©ºé–“を除ãã™ã¹ã¦ã®ç„¡æ–™ã®åå‰ç©ºé–“ã«ãŠã„ã¦ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸åˆ¶é™ãŒé©ç”¨ã•ã‚Œã‚‹ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã‚’変更ã—ã¾ã™ã€‚制é™ã¯å¾Œã§å‰Šé™¤ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚"
+msgstr "ã“ã‚Œã¯ã€é™¤å¤–ã•ã‚ŒãŸãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’除ãã™ã¹ã¦ã®ç„¡æ–™ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã«ãŠã„ã¦ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸åˆ¶é™ãŒé©ç”¨ã•ã‚Œã‚‹ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã‚’変更ã—ã¾ã™ã€‚制é™ã¯å¾Œã§å‰Šé™¤ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚"
msgid "NamespaceLimits|This will limit the amount of notifications all free namespaces receives except the excluded namespaces, the limit can be removed later."
-msgstr "ã“ã‚Œã¯ã€é™¤å¤–ã•ã‚ŒãŸåå‰ç©ºé–“を除ãã™ã¹ã¦ã®ç„¡æ–™ã®åå‰ç©ºé–“ã«ãŠã‘る通知ã®é‡ã‚’制é™ã—ã¾ã™ã€‚制é™ã¯å¾Œã§å‰Šé™¤ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚"
+msgstr "ã“ã‚Œã¯ã€é™¤å¤–ã•ã‚ŒãŸãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’除ãã™ã¹ã¦ã®ç„¡æ–™ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã«ãŠã‘る通知ã®é‡ã‚’制é™ã—ã¾ã™ã€‚制é™ã¯å¾Œã§å‰Šé™¤ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚"
msgid "NamespaceLimits|Update limit"
msgstr "制é™ã‚’æ›´æ–°"
msgid "NamespaceLimits|You must select a namespace and add a reason for excluding it"
-msgstr "åå‰ç©ºé–“ã‚’é¸æŠžã—ã€é™¤å¤–ã™ã‚‹ç†ç”±ã‚’追加ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’é¸æŠžã—ã€é™¤å¤–ã™ã‚‹ç†ç”±ã‚’追加ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
msgid "NamespaceStorageSize|%{namespace_name} is now read-only. Your ability to write new data to this namespace is restricted. %{read_only_link_start}Which actions are restricted?%{link_end}"
-msgstr "%{namespace_name}ãŒèª­ã¿å–り専用ã«ãªã‚Šã¾ã—ãŸã€‚ã“ã®åå‰ç©ºé–“ã¸ã®æ–°ã—ã„データã®æ›¸ãè¾¼ã¿ã¯åˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã€‚%{read_only_link_start}ã©ã®ã‚ˆã†ãªæ“作ãŒåˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã‹?%{link_end}"
+msgstr "%{namespace_name}ãŒèª­ã¿å–り専用ã«ãªã‚Šã¾ã—ãŸã€‚ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¸ã®æ–°ã—ã„データã®æ›¸ãè¾¼ã¿ã¯åˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã€‚%{read_only_link_start}ã©ã®ã‚ˆã†ãªæ“作ãŒåˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã‹?%{link_end}"
msgid "NamespaceStorageSize|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
msgstr "ストレージ制é™ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€%{faq_link_start}FAQ%{link_end}ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
msgid "NamespaceStorageSize|If %{namespace_name} exceeds the storage quota, your ability to write new data to this namespace will be restricted. %{read_only_link_start}Which actions become restricted?%{link_end}"
-msgstr "%{namespace_name}ãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸åˆ¶é™ã‚’超ãˆãŸå ´åˆã€ã“ã®åå‰ç©ºé–“ã¸ã®æ–°ã—ã„データã®æ›¸ãè¾¼ã¿ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚%{read_only_link_start}ã©ã®ã‚ˆã†ãªæ“作ãŒåˆ¶é™ã•ã‚Œã¾ã™ã‹?%{link_end}"
+msgstr "%{namespace_name}ãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸åˆ¶é™ã‚’超ãˆãŸå ´åˆã€ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¸ã®æ–°ã—ã„データã®æ›¸ãè¾¼ã¿ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚%{read_only_link_start}ã©ã®ã‚ˆã†ãªæ“作ãŒåˆ¶é™ã•ã‚Œã¾ã™ã‹?%{link_end}"
msgid "NamespaceStorageSize|If a project reaches 100%% of the storage quota (%{free_size_limit}) the project will be in a read-only state, and you won't be able to push to your repository or add large files."
msgstr "プロジェクトãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸åˆ¶é™ã®100%% (%{free_size_limit})ã«é”ã™ã‚‹ã¨ã€ãƒ—ロジェクトã¯èª­ã¿å–り専用状態ã«ãªã‚Šã€ãƒªãƒã‚¸ãƒˆãƒªã«ãƒ—ッシュã—ãŸã‚Šã€å¤§ããªãƒ•ã‚¡ã‚¤ãƒ«ã‚’追加ã—ãŸã‚Šã™ã‚‹ã“ã¨ãŒã§ããªããªã‚Šã¾ã™ã€‚"
@@ -30949,7 +31526,7 @@ msgid "NamespaceStorageSize|To prevent your projects from being in a read-only s
msgstr "プロジェクトãŒèª­ã¿å–り専用状態ã«ãªã‚‰ãªã„よã†ã«ã™ã‚‹ã«ã¯ã€%{manage_storage_link_start}ストレージ使用é‡ã‚’管ç†%{link_end}ã™ã‚‹ã‹ã€ã¾ãŸã¯%{purchase_more_link_start}追加ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’購入%{link_end}ã—ã¦ãã ã•ã„。"
msgid "NamespaceStorageSize|To prevent your projects from being in a read-only state %{manage_storage_link_start}manage your storage usage%{link_end}, or contact a user with the %{group_member_link_start}owner role for this namespace%{link_end} and ask them to %{purchase_more_link_start}purchase more storage%{link_end}."
-msgstr "プロジェクトãŒèª­ã¿å–り専用状態ã«ãªã‚‰ãªã„よã†ã«ã™ã‚‹ã«ã¯ã€%{manage_storage_link_start}ストレージ使用é‡ã‚’管ç†%{link_end}ã™ã‚‹ã‹ã€ã¾ãŸã¯%{group_member_link_start}ã“ã®åå‰ç©ºé–“ã®ã‚ªãƒ¼ãƒŠãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’æŒã¤ãƒ¦ãƒ¼ã‚¶ãƒ¼%{link_end}ã«é€£çµ¡ã—ã¦ã€%{purchase_more_link_start}追加ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’購入%{link_end}ã™ã‚‹ã‚ˆã†ä¾é ¼ã—ã¦ãã ã•ã„。"
+msgstr "プロジェクトãŒèª­ã¿å–り専用状態ã«ãªã‚‰ãªã„よã†ã«ã™ã‚‹ã«ã¯ã€%{manage_storage_link_start}ストレージ使用é‡ã‚’管ç†%{link_end}ã™ã‚‹ã‹ã€ã¾ãŸã¯%{group_member_link_start}ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚ªãƒ¼ãƒŠãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’æŒã¤ãƒ¦ãƒ¼ã‚¶ãƒ¼%{link_end}ã«é€£çµ¡ã—ã¦ã€%{purchase_more_link_start}追加ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’購入%{link_end}ã™ã‚‹ã‚ˆã†ä¾é ¼ã—ã¦ãã ã•ã„。"
msgid "NamespaceStorageSize|To reduce storage usage, reduce git repository and git LFS storage."
msgstr "ストレージ使用é‡ã‚’削減ã™ã‚‹ã«ã¯ã€gitリãƒã‚¸ãƒˆãƒªã¨git LFSストレージを減らã—ã¾ã™ã€‚"
@@ -30989,7 +31566,7 @@ msgid "NamespaceStorage|%{name_with_link} is now read-only. Projects under this
msgstr "%{name_with_link}ãŒèª­ã¿å–り専用ã«ãªã‚Šã¾ã—ãŸã€‚ã“ã®åå‰ç©ºé–“下ã®ãƒ—ロジェクトã¯ãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¯åˆ¶é™ã•ã‚Œã¾ã™ã€‚"
msgid "NamespaceStorage|%{name} is now read-only. Projects under this namespace are locked and actions are restricted."
-msgstr "%{name}ãŒèª­ã¿å–り専用ã«ãªã‚Šã¾ã—ãŸã€‚ã“ã®åå‰ç©ºé–“下ã®ãƒ—ロジェクトã¯ãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¯åˆ¶é™ã•ã‚Œã¾ã™ã€‚"
+msgstr "%{name}ãŒèª­ã¿å–り専用ã«ãªã‚Šã¾ã—ãŸã€‚ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ä¸‹ã®ãƒ—ロジェクトã¯ãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¯åˆ¶é™ã•ã‚Œã¾ã™ã€‚"
msgid "NamespaceStorage|Action required: Storage has been exceeded for %{namespace_name}"
msgstr "アクションãŒå¿…è¦ã§ã™: %{namespace_name}ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸å®¹é‡åˆ¶é™ã‚’超ãˆã¾ã—ãŸ"
@@ -30998,10 +31575,10 @@ msgid "NamespaceStorage|Buy more storage"
msgstr "ストレージã®è¿½åŠ è³¼å…¥"
msgid "NamespaceStorage|If %{name_with_link} exceeds the storage quota, all projects in the namespace will be locked and actions will be restricted."
-msgstr "%{name_with_link}ãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸å®¹é‡ã‚’超ãˆã‚‹ã¨ã€åå‰ç©ºé–“内ã®ã™ã¹ã¦ã®ãƒ—ロジェクトãŒãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚"
+msgstr "%{name_with_link}ãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸å®¹é‡ã‚’超ãˆã‚‹ã¨ã€ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹å†…ã®ã™ã¹ã¦ã®ãƒ—ロジェクトãŒãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚"
msgid "NamespaceStorage|If %{name} exceeds the storage quota, all projects in the namespace will be locked and actions will be restricted."
-msgstr "%{name}ãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸å®¹é‡ã‚’超ãˆã‚‹ã¨ã€åå‰ç©ºé–“内ã®ã™ã¹ã¦ã®ãƒ—ロジェクトãŒãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚"
+msgstr "%{name}ãŒã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸å®¹é‡ã‚’超ãˆã‚‹ã¨ã€ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã™ã¹ã¦ã®ãƒ—ロジェクトãŒãƒ­ãƒƒã‚¯ã•ã‚Œã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒåˆ¶é™ã•ã‚Œã¾ã™ã€‚"
msgid "NamespaceStorage|Learn about which actions are restricted: %{url}"
msgstr "制é™ã•ã‚Œã¦ã„るアクションã«ã¤ã„ã¦å­¦ã¶: %{url}"
@@ -31117,9 +31694,6 @@ msgstr "コード"
msgid "Navigation|Deploy"
msgstr "デプロイ"
-msgid "Navigation|Enter admin mode"
-msgstr "管ç†è€…モードã«ã™ã‚‹"
-
msgid "Navigation|Explore"
msgstr "探索"
@@ -31132,9 +31706,6 @@ msgstr "よã訪れるプロジェクト"
msgid "Navigation|Groups you visit often will appear here."
msgstr "よã使ã†ã‚°ãƒ«ãƒ¼ãƒ—ã¯ã“ã“ã«è¡¨ç¤ºã•ã‚Œã¾ã™."
-msgid "Navigation|Leave admin mode"
-msgstr "管ç†è€…モードを終了ã™ã‚‹"
-
msgid "Navigation|Manage"
msgstr "管ç†"
@@ -31562,15 +32133,15 @@ msgstr "データãŒã‚ã‚Šã¾ã›ã‚“"
msgid "No data available"
msgstr "利用å¯èƒ½ãªãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚Šã¾ã›ã‚“。"
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr "デプロイメントãŒæ¤œå‡ºã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚ソフトウェアã®ç¶™ç¶šçš„デプロイを制御ã™ã‚‹ãŸã‚ã«ç’°å¢ƒã‚’使用ã—ã¦ãã ã•ã„。%{linkStart}デプロイメントジョブã®è©³ç´°ã«ã¤ã„ã¦%{linkEnd}ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
msgid "No deployments found"
msgstr "デプロイãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr "メールå‚加者ãŒè¿½åŠ ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚指定ã•ã‚Œã¦ã„ãªã„ã‹ã€ã™ã§ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "エンドãƒã‚¤ãƒ³ãƒˆãŒã‚ã‚Šã¾ã›ã‚“"
@@ -31676,6 +32247,9 @@ msgstr "ãã®åå‰ã¾ãŸã¯èª¬æ˜Žã®ãƒ©ãƒ™ãƒ«ã¯ä»–ã«ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "No parent group"
msgstr "親グループã¯ã‚ã‚Šã¾ã›ã‚“"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "プランãŒã‚ã‚Šã¾ã›ã‚“"
@@ -31821,18 +32395,6 @@ msgstr "通常テキスト"
msgid "Normal view"
msgstr "通常ã®ãƒ“ュー"
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr "æ–°ã—ã„ナビゲーション設定を更新ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚後ã§ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr "ナビゲーションã®å†è¨­è¨ˆ"
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "æ–°ã—ã„ナビゲーション"
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "æ–°ã—ã„ナビゲーションã®åˆ‡ã‚Šæ›¿ãˆ"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr "WebAuthnデãƒã‚¤ã‚¹ã¯ã„ãã¤ã‹ã®ãƒ–ラウザã§ã—ã‹ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。ãã®ãŸã‚ã€ã¾ãš2è¦ç´ èªè¨¼ã‚¢ãƒ—リを設定ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã‚Šã€ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„ブラウザを使用ã—ã¦ã„ã‚‹å ´åˆã§ã‚‚ã€å¸¸ã«ã‚µã‚¤ãƒ³ã‚¤ãƒ³ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚"
@@ -31842,6 +32404,9 @@ msgstr "ã™ã¹ã¦ã®ãƒ–ラウザãŒWebAuthnをサãƒãƒ¼ãƒˆã—ã¦ã„ã‚‹ã‚ã‘ã§ã
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "ã™ã¹ã¦ã®ãƒ‡ãƒ¼ã‚¿ãŒã¾ã å‡¦ç†ã§ãã¦ã„ã¾ã›ã‚“。ãã®ãŸã‚ã€é¸æŠžã—ãŸæ™‚間範囲ã®ãƒãƒ£ãƒ¼ãƒˆã®ç²¾åº¦ã¯åˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã€‚"
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr "該当ãªã—"
@@ -31857,6 +32422,9 @@ msgstr "ä¿è­·ãƒ–ランãƒã§ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“"
msgid "Not confidential"
msgstr "機密ã§ã¯ãªã„"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
@@ -31875,6 +32443,9 @@ msgstr "開始ã•ã‚Œã¦ã„ã¾ã›ã‚“"
msgid "Not supported"
msgstr "未サãƒãƒ¼ãƒˆ"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "注æ„事項"
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "レビュアー: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr "マージリクエストã®ãƒ¬ãƒ“ュアーを変更"
@@ -32080,6 +32654,12 @@ msgstr "通知をオンã«ã—ã¾ã—ãŸã€‚"
msgid "Notify users by email when sign-in location is not recognized."
msgstr "サインインã®å ´æ‰€ãŒèªè­˜ã•ã‚Œãªã„å ´åˆã€ãƒ¡ãƒ¼ãƒ«ã§ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«é€šçŸ¥ã™ã‚‹ã€‚"
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr "%{author_link}ã®ã‚¤ã‚·ãƒ¥ãƒ¼%{issue_reference_link}ã¯æœŸæ—¥ãŒè¿‘ã¥ã„ã¦ã„ã¾ã™ã€‚"
@@ -32128,6 +32708,12 @@ msgstr "%{paragraph_start}ã“ã‚“ã«ã¡ã¯%{name}ã•ã‚“ !%{paragraph_end} %{parag
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr "プロジェクトã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã‚’%{project_link_start}ダウンロード%{project_link_end}ã—ã¾ã™ã€‚"
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr "%{singular_or_plural_line} %{error_lines}: 作業アイテムタイプãŒè¦‹ã¤ã‹ã‚‰ãªã„ã‹ã€ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。"
@@ -32158,18 +32744,15 @@ msgstr "リモートミラーã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr "有効期é™ãŒåˆ‡ã‚ŒãŸå¾Œã€%{a_start}æ–°ã—ã„リクエスト%{a_end}ãŒã§ãã¾ã™ã€‚"
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr "マージリクエスト%{mr_link}ã®ã™ã¹ã¦ã®ãƒ‡ã‚£ã‚¹ã‚«ãƒƒã‚·ãƒ§ãƒ³ã¯%{name}ã«ã‚ˆã£ã¦è§£æ±ºã•ã‚Œã¾ã—ãŸ"
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr "ãã®ä»–%{total_stripped_new_commits_count}件"
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "担当者を%{fromNames}ã‹ã‚‰%{toNames}ã«å¤‰æ›´ã—ã¾ã—ãŸ"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "担当者を%{toNames}ã«å¤‰æ›´ã—ã¾ã—ãŸ"
-
msgid "Notify|Author: %{author_name}"
msgstr "作者: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr "%{singular_or_plural_line}ã«ã‚¨ãƒ©ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ: %{error_
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr "Fingerprint: %{fingerprint}"
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr "%{project_link}ã®CSVインãƒãƒ¼ãƒˆã®çµæžœã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ã€‚"
@@ -32239,6 +32825,9 @@ msgstr "ã“ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’GitLab Pagesã§ä½¿ç”¨ã—ãŸããªã„å ´åˆã¯ã€Git
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr "%{code_open}From%{code_end}ヘッダーãŒæ­£ã—ãã‚ã‚Šã¾ã›ã‚“:"
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ãŒæ­£ã—ãã‚ã‚Šã¾ã›ã‚“:"
@@ -32329,6 +32918,9 @@ msgstr "プロジェクト%{project_name}ã¯ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§
msgid "Notify|Project %{project_name} was exported successfully."
msgstr "プロジェクト%{project_name}ã¯ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã•ã‚Œã¾ã—ãŸã€‚"
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr "リモートミラー"
@@ -32344,6 +32936,9 @@ msgstr "管ç†è€…ã¯ã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’作æˆã—ã¾ã—ãŸã€‚今ã‚ãª
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "Auto DevOpsパイプラインãŒãƒ‘イプライン%{pipeline_link}ã§å¤±æ•—ã—ã€%{project_link}ã§ç„¡åŠ¹ã«ãªã‚Šã¾ã—ãŸã€‚プロジェクトã§Auto DevOpsパイプラインを使用ã™ã‚‹ã«ã¯ã€%{supported_langs_link}を確èªã—ã€ãã‚Œã«å¿œã˜ã¦ãƒ—ロジェクトを調整ã—ã€%{settings_link}内ã§Auto DevOpsパイプラインをオンã«ã—ã¦ãã ã•ã„。"
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr "ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®å·®åˆ†ã¯å¤§ãéŽãŽã‚‹ãŸã‚ã€å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“。"
@@ -32356,8 +32951,8 @@ msgstr "ダウンロードリンクã®æœ‰åŠ¹æœŸé™ã¯24時間ã§ã™ã€‚"
msgid "Notify|The errors we encountered were:"
msgstr "発生ã—ãŸã‚¨ãƒ©ãƒ¼:"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "指定ã•ã‚ŒãŸãƒ­ã‚°ã‚¤ãƒ³æƒ…å ±(ユーザーåã¨ãƒ‘スワード)ãŒSMTP サーãƒãƒ¼ã«ã‚ˆã£ã¦æ‹’å¦ã•ã‚Œã¾ã—ãŸã€‚"
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
msgstr "ã“ã®ãƒ—ロジェクトã¯ç¾åœ¨ã€%{project_full_name_link_start}%{project_full_name}%{link_end}ã«ã‚ã‚Šã¾ã™ã€‚"
@@ -32485,6 +33080,9 @@ msgstr "従業員数"
msgid "Number of files touched"
msgstr "æ“作ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«æ•°"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "レプリカã®æ•°"
@@ -32503,27 +33101,48 @@ msgstr "%{author_link}ã®OKR %{work_item_link}ã‚’æ›´æ–°ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr "更新期日: %{update_due_date}"
-msgid "OKR|Existing key result"
-msgstr "既存ã®ä¸»è¦ãªçµæžœ"
-
-msgid "OKR|Existing objective"
-msgstr "既存ã®ç›®æ¨™"
-
-msgid "OKR|New key result"
-msgstr "æ–°ã—ã„主è¦ãªçµæžœ"
+msgid "OWASP Top 10 2017"
+msgstr ""
-msgid "OKR|New objective"
-msgstr "æ–°ã—ã„目標"
+msgid "OWASP Top 10 2021"
+msgstr ""
msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr "オブジェクトãŒã‚µãƒ¼ãƒãƒ¼ã«å­˜åœ¨ã—ã¾ã›ã‚“ã€ã¾ãŸã¯ã€ãã‚Œã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
-msgid "Objective"
-msgstr "目標"
+msgid "ObservabilityMetrics|Date"
+msgstr ""
+
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
+msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr "メトリクス"
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr "次ã§å§‹ã¾ã‚‹ãƒ¡ãƒˆãƒªã‚¯ã‚¹ã‚’検索ã—ã¾ã™"
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr "ã‚ãªãŸã«ã®ã¿è¡¨ç¤ºã•ã‚Œã¾ã™"
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr "生産性分æžã‚’表示ã§ãã‚‹ã®ã¯ã€ãƒ—レミアム以上ã®éšŽå±¤ã®ãƒ¬ãƒãƒ¼ã‚¿ãƒ¼ä»¥ä¸Šå½¹å‰²ã®ã¿ã§ã™ã€‚"
-msgid "Oops, are you sure?"
-msgstr "ãŠã£ã¨ã€æœ¬å½“ã«ã‚ˆã‚ã—ã„ã§ã™ã‹ ?"
-
msgid "Open"
msgstr "オープン"
@@ -33105,9 +33721,6 @@ msgstr "æ–°ã—ã„ウィンドウを開ã"
msgid "Open raw"
msgstr "ãã®ã¾ã¾é–‹ã"
-msgid "Open sidebar"
-msgstr "サイドãƒãƒ¼ã‚’é–‹ã"
-
msgid "Open: %{open}"
msgstr "é–‹ã: %{open}"
@@ -33142,7 +33755,7 @@ msgid "Operations"
msgstr "オペレーション"
msgid "Operations Dashboard"
-msgstr "é‹ç”¨ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰"
+msgstr "オペレーションダッシュボード"
msgid "OperationsDashboard|Add a project to the dashboard"
msgstr "ダッシュボードã«ãƒ—ロジェクトを追加"
@@ -33198,6 +33811,9 @@ msgstr "%{linkStart}組織%{linkEnd}ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—やプロジェクトをä¿
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr "グループã¯ã€è¤‡æ•°ã®ãƒ—ロジェクトをã¾ã¨ã‚ã¾ã™ã€‚グループ内ã§ãƒ—ロジェクトを整ç†ã™ã‚‹å ´åˆã¯ã€ãƒ•ã‚©ãƒ«ãƒ€ã®ã‚ˆã†ã«å‹•ä½œã—ã¾ã™ã€‚"
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr "組織ã®ä½œæˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -33216,6 +33832,12 @@ msgstr "組織ã®èª­ã¿è¾¼ã¿ä¸­ã«ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページ
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr "デフォルトã§è¡¨ç¤ºã—ãŸã„組織をé¸æŠžã—ã¾ã™ã€‚"
@@ -33264,7 +33886,16 @@ msgstr "組織ã®URL"
msgid "Organization|Organization URL is required."
msgstr "組織ã®URLãŒå¿…è¦ã§ã™ã€‚"
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr "組織"
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr "パブリック- 組織ã¯èªè¨¼ãªã—ã§ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚"
@@ -33408,6 +34042,66 @@ msgstr "概è¦"
msgid "Overwrite diverged branches"
msgstr "分å²ã—ãŸãƒ–ランãƒã‚’上書ã"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "%{image_tag}ãŒæ‰€æœ‰"
@@ -33477,6 +34171,9 @@ msgstr "パッケージã¯æ­£å¸¸ã«å‰Šé™¤ã•ã‚Œã¾ã—ãŸ"
msgid "Package file size limits"
msgstr "パッケージファイルサイズã®åˆ¶é™"
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr "パッケージã®ãƒ¬ã‚·ãƒ”ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™"
@@ -33552,6 +34249,9 @@ msgstr "アプリグループ: %{group}"
msgid "PackageRegistry|App name: %{name}"
msgstr "アプリå: %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr "作æˆè€…ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹: %{authorEmail} "
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr "%{author}ã«ã‚ˆã£ã¦%{datetime}ã«ãƒ‘イプライン%{link}ã§ãƒ“ルドã•ã‚Œã¾ã—ãŸ"
@@ -33762,6 +34462,9 @@ msgstr "インスタンスレベル"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr "無効ãªãƒ‘ッケージ: メタデータã®æŠ½å‡ºã«å¤±æ•—ã—ã¾ã—ãŸ"
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr "キーワード: %{keywords} "
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr "最終ダウンロード%{dateTime}"
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] "パッケージã«ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã•ã‚ŒãŸæ›´æ–°ãŒ%{updatesCount}件ã‚ã‚Šã¾ã™"
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr "パッケージã¯ãƒ–ランãƒ%{branch}ã®ã‚³ãƒŸãƒƒãƒˆ%{link}ã«ã‚ˆã£ã¦æ›´æ–°ã•ã‚Œã€ãƒ‘イプライン%{pipeline}ã«ã‚ˆã£ã¦ãƒ“ルドã•ã‚Œã€ãƒ¬ã‚¸ã‚¹ãƒˆãƒªã«%{datetime}ã«å…¬é–‹ã•ã‚Œã¾ã™"
@@ -33844,6 +34553,9 @@ msgstr "pip コマンド"
msgid "PackageRegistry|Project-level"
msgstr "プロジェクトレベル"
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr "åå‰ã¾ãŸã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒã“ã®æ­£è¦è¡¨ç¾ã«ä¸€è‡´ã™ã‚‹å ´åˆã€ãƒ‘ッケージを公開ã—ã¾ã™ã€‚"
@@ -33862,6 +34574,9 @@ msgstr "%{date}ã«%{projectName}ã§å…¬é–‹"
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr "%{project}ã®ãƒ‘ッケージレジストリã«%{datetime}ã«å…¬é–‹"
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -33928,6 +34643,9 @@ msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“。指定ã•ã‚ŒãŸãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã§ã¯è©²å½“ã™
msgid "PackageRegistry|Source project located at %{link}"
msgstr "%{link}ã«ã‚るソースプロジェクト"
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr "サマリー: %{summary} "
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr "ターゲットSHA: %{sha}"
@@ -33964,6 +34682,9 @@ msgstr "パッケージã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報をå–å¾—ã§ãã¾ã›ã‚“。"
msgid "PackageRegistry|Unable to load package"
msgstr "パッケージを読ã¿è¾¼ã‚ã¾ã›ã‚“"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr "åŒã˜åå‰ã¨ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ‘ッケージãŒãƒ¬ã‚¸ã‚¹ãƒˆãƒªã«ã‚¢ãƒƒãƒ—ロードã•ã‚Œã‚‹ã¨ã€ã‚ˆã‚Šå¤šãã®ã‚¢ã‚»ãƒƒãƒˆãŒãƒ‘ッケージã«è¿½åŠ ã•ã‚Œã¾ã™ã€‚ストレージスペースを節約ã™ã‚‹ã«ã¯ã€æœ€æ–°ã®ã‚¢ã‚»ãƒƒãƒˆã®ã¿ã‚’ä¿ç®¡ã—ã¦ãã ã•ã„。"
@@ -34105,6 +34826,9 @@ msgstr "パスワードèªè¨¼ã¯ã”利用ã§ãã¾ã›ã‚“。"
msgid "Password confirmation"
msgstr "パスワードã®ç¢ºèª"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "パスワードãŒæ­£å¸¸ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ"
@@ -34252,6 +34976,9 @@ msgstr "コードレビューを実行ã—ã€ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¨ã®ã‚³ãƒ©
msgid "Perform common operations on GitLab project"
msgstr "GitLab プロジェクトã§ä¸€èˆ¬çš„ãªæ“作を実施"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "パフォーマンスã®æœ€é©åŒ–"
@@ -34396,6 +35123,9 @@ msgstr "ã‚ãªãŸã®ãƒ—ロジェクト%{projectName}ã¯ã‚°ãƒ«ãƒ¼ãƒ—ã«å±žã—ã¦ã
msgid "Phone"
msgstr "電話番å·"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr "有効ãªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ãã ã•ã„。"
@@ -34813,6 +35543,30 @@ msgstr "Web IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "パイプライン: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr "%{filename}を追加"
@@ -34873,12 +35627,6 @@ msgstr "æ–°ã—ã„変更ã®ãŸã‚ã®ãƒ‘イプラインã«ã‚ˆã£ã¦ã€åŒã˜ãƒ–ラ
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "%{project_name} ã®ãƒ‘イプライン設定を正常ã«æ›´æ–°ã—ã¾ã—ãŸã€‚"
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr "AIアシスタント"
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr "AIアシスタントã¨ãƒãƒ£ãƒƒãƒˆ"
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr "GitLabCIã§\"Hello world\""
@@ -34897,9 +35645,6 @@ msgstr "トリガーをå–り消ã™ã¨ã€ãれを使用ã—ã¦ã„るプロセス
msgid "Pipelines|CI lint"
msgstr "CI Lint"
-msgid "Pipelines|CI/CD Catalog"
-msgstr "CI/CDカタログ"
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr "å­ãƒ‘イプライン(%{linkStart}親%{linkEnd})"
@@ -34972,6 +35717,9 @@ msgstr "パイプラインを読ã¿è¾¼ã¿ä¸­"
msgid "Pipelines|Loading pipelines"
msgstr "パイプラインを読ã¿è¾¼ã¿ä¸­"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr "詳細情報"
@@ -35008,6 +35756,12 @@ msgstr "スケジュール済ã¿"
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Runnerキャッシュã®ã‚¯ãƒªãƒ¼ãƒ‹ãƒ³ã‚°ä¸­ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr "%{namespace_name}åå‰ç©ºé–“ã¯%{percentage}%%ã¾ãŸã¯ãれ以下ã®å…±æœ‰ Runner パイプライン分ãŒæ®‹ã£ã¦ã„ã¾ã™ã€‚ã“ã‚ŒãŒãªããªã‚‹ã¨ã€ãã®ãƒ—ロジェクトã®æ–°ã—ã„ジョブやパイプラインã¯å®Ÿè¡Œã•ã‚Œãªããªã‚Šã¾ã™ã€‚"
@@ -35926,9 +36680,6 @@ msgstr "ペイロードをプレビュー"
msgid "Previous"
msgstr "å‰"
-msgid "Previous Artifacts"
-msgstr "å‰å›žã®ã‚¢ãƒ¼ãƒ†ã‚£ãƒ•ã‚¡ã‚¯ãƒˆ"
-
msgid "Previous commit"
msgstr "å‰å›žã®ã‚³ãƒŸãƒƒãƒˆ"
@@ -36011,7 +36762,7 @@ msgid "Product analytics"
msgstr "プロダクト分æž"
msgid "Product analytics requires Experiment and Beta features to be enabled."
-msgstr ""
+msgstr "製å“分æžã«ã¯ã€å®Ÿé¨“機能ã¨ãƒ™ãƒ¼ã‚¿æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
msgid "ProductAnalytics|1. Add the NPM package to your package.json using your preferred package manager"
msgstr "1. ãŠå¥½ã¿ã®ãƒ‘ッケージマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã‚’使用ã—ã¦ã€NPMパッケージをpackage.jsonã«è¿½åŠ ã™ã‚‹"
@@ -36044,7 +36795,7 @@ msgid "ProductAnalytics|All Pages"
msgstr "ã™ã¹ã¦ã®ãƒšãƒ¼ã‚¸"
msgid "ProductAnalytics|All Returning Users Compared"
-msgstr ""
+msgstr "ProductAnalytics|ã™ã¹ã¦ã®ãƒªãƒ”ートユーザー比較çµæžœ"
msgid "ProductAnalytics|All Sessions Compared"
msgstr "ã™ã¹ã¦ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³æ¯”較"
@@ -36053,7 +36804,7 @@ msgid "ProductAnalytics|An error occurred while fetching data. Refresh the page
msgstr "データã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚å†è©¦è¡Œã™ã‚‹ã«ã¯ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã—ã¦ãã ã•ã„。"
msgid "ProductAnalytics|Analytics events by month"
-msgstr ""
+msgstr "ProductAnalytics|月別ã®åˆ†æžã‚¤ãƒ™ãƒ³ãƒˆ"
msgid "ProductAnalytics|Analyze your product with Product Analytics"
msgstr "製å“分æžã§è£½å“を分æž"
@@ -36077,7 +36828,7 @@ msgid "ProductAnalytics|Compares all events against each other"
msgstr "ã™ã¹ã¦ã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’互ã„ã«æ¯”較"
msgid "ProductAnalytics|Compares all returning users against each other"
-msgstr ""
+msgstr "ProductAnalytics|ã™ã¹ã¦ã®ãƒªãƒ”ートユーザーを比較ã™ã‚‹"
msgid "ProductAnalytics|Compares all user sessions against each other"
msgstr "ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’互ã„ã«æ¯”較"
@@ -36095,7 +36846,7 @@ msgid "ProductAnalytics|Cube API key"
msgstr "Cube APIキー"
msgid "ProductAnalytics|Current month to date"
-msgstr ""
+msgstr "ProductAnalytics|ç¾åœ¨ã®æœˆã®ç´¯è¨ˆ"
msgid "ProductAnalytics|Details on how to configure product analytics to collect data."
msgstr "データをåŽé›†ã™ã‚‹ãŸã‚ã«è£½å“分æžã‚’構æˆã™ã‚‹æ–¹æ³•ã®è©³ç´°ã€‚"
@@ -36122,22 +36873,25 @@ msgid "ProductAnalytics|For the product analytics dashboard to start showing you
msgstr "製å“分æžãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã§ãƒ‡ãƒ¼ã‚¿ã®è¡¨ç¤ºã‚’開始ã™ã‚‹ã«ã¯ã€åˆ†æžãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚°ã‚³ãƒ¼ãƒ‰ã‚’プロジェクトã«è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
msgid "ProductAnalytics|Get started with product analytics"
+msgstr "ProductAnalytics|製å“分æžã‚’始ã‚ã‚‹"
+
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
msgstr ""
msgid "ProductAnalytics|How many sessions a user has"
msgstr "ユーザーã®ã‚»ãƒƒã‚·ãƒ§ãƒ³æ•°"
msgid "ProductAnalytics|How often users returned compared to all sessions"
-msgstr ""
+msgstr "ProductAnalytics|ã™ã¹ã¦ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã¨æ¯”較ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒªãƒ”ート頻度"
msgid "ProductAnalytics|Instrument your application"
msgstr "アプリケーションを計測ã™ã‚‹"
msgid "ProductAnalytics|Learn how to enable product analytics"
-msgstr ""
+msgstr "ProductAnalytics|製å“分æžã‚’有効ã«ã™ã‚‹æ–¹æ³•ã‚’å­¦ã¶"
msgid "ProductAnalytics|Learn how to onboard projects"
-msgstr ""
+msgstr "ProductAnalytics |プロジェクトã®ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°æ–¹æ³•ã‚’å­¦ã¶"
msgid "ProductAnalytics|Link Click Events"
msgstr "リンククリックイベント"
@@ -36155,7 +36909,7 @@ msgid "ProductAnalytics|Measure all or specific Page Views"
msgstr "ã™ã¹ã¦ã€ã¾ãŸã¯ç‰¹å®šã®ãƒšãƒ¼ã‚¸ãƒ“ューを測定"
msgid "ProductAnalytics|Measure all returning users"
-msgstr ""
+msgstr "ProductAnalytics|ã™ã¹ã¦ã®ãƒªãƒ”ートユーザーを測定ã™ã‚‹"
msgid "ProductAnalytics|Measure all sessions"
msgstr "ã™ã¹ã¦ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’測定ã™ã‚‹"
@@ -36167,10 +36921,10 @@ msgid "ProductAnalytics|Measuring"
msgstr "測定"
msgid "ProductAnalytics|Month"
-msgstr ""
+msgstr "ProductAnalytics|月"
msgid "ProductAnalytics|No projects found"
-msgstr ""
+msgstr "ProductAnalytics|プロジェクトãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
msgid "ProductAnalytics|On what do you want to get insights?"
msgstr "何ã®ã‚¤ãƒ³ã‚µã‚¤ãƒˆã‚’å–å¾—ã—ãŸã„ã§ã™ã‹ï¼Ÿ"
@@ -36179,28 +36933,28 @@ msgid "ProductAnalytics|Page Views"
msgstr "ページビュー"
msgid "ProductAnalytics|Percentage of Users Returning"
-msgstr ""
+msgstr "ProductAnalytics|リピートユーザーã®å‰²åˆ"
msgid "ProductAnalytics|Previous month"
-msgstr ""
+msgstr "ProductAnalytics|å‰æœˆ"
msgid "ProductAnalytics|Product Analytics"
-msgstr ""
+msgstr "ProductAnalytics|製å“分æž"
msgid "ProductAnalytics|Product analytics onboarding"
msgstr "製å“分æžã®ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°"
msgid "ProductAnalytics|Product analytics usage is calculated based on the total number of events received from projects within the group. %{linkStart}Learn more%{linkEnd}."
-msgstr ""
+msgstr "ProductAnalytics|製å“分æžã®ä½¿ç”¨çŠ¶æ³ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—内ã®ãƒ—ロジェクトã‹ã‚‰å—ä¿¡ã—ãŸã‚¤ãƒ™ãƒ³ãƒˆã®åˆè¨ˆæ•°ã«åŸºã¥ã„ã¦è¨ˆç®—ã•ã‚Œã¾ã™ã€‚%{linkStart}詳細ã¯ã“ã¡ã‚‰%{linkEnd}。"
msgid "ProductAnalytics|Projects"
-msgstr ""
+msgstr "ProductAnalytics|プロジェクト"
msgid "ProductAnalytics|Projects (%{maxProjects} of %{totalProjects} shown)"
-msgstr ""
+msgstr "ProductAnalytics|プロジェクト(%{maxProjects} ï¼%{totalProjects} を表示)"
msgid "ProductAnalytics|Returning Users"
-msgstr ""
+msgstr "ProductAnalytics|リピートユーザー"
msgid "ProductAnalytics|SDK application ID"
msgstr "SDKアプリケーションID"
@@ -36227,9 +36981,12 @@ msgid "ProductAnalytics|Snowplow configurator connection string"
msgstr "Snowplowコンフィギュレーター接続文字列"
msgid "ProductAnalytics|Something went wrong while loading product analytics usage data. Refresh the page to try again."
-msgstr ""
+msgstr "ProductAnalytics|製å“分æžã®ä½¿ç”¨ãƒ‡ãƒ¼ã‚¿ã®èª­ã¿è¾¼ã¿ä¸­ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページを更新ã—ã¦ã€ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
+msgstr "ProductAnalytics|定é‡ãƒ‡ãƒ¼ã‚¿ã‚’ä¿å­˜ã€ã‚¯ã‚¨ãƒªã€ãŠã‚ˆã³è¦–覚化ã—ã¦ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ä¾¡å€¤ã®ã‚¤ãƒ³ã‚µã‚¤ãƒˆã‚’å–å¾—ã—ã¾ã™ã€‚"
+
+msgid "ProductAnalytics|Tell us what you think!"
msgstr ""
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
@@ -36242,31 +36999,31 @@ msgid "ProductAnalytics|The sender of tracking events"
msgstr "トラッキングイベントã®é€ä¿¡è€…"
msgid "ProductAnalytics|This group has no projects with product analytics onboarded in the current period."
-msgstr ""
+msgstr "ProductAnalytics|ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã€ç¾åœ¨ã®æœŸé–“ã«è£½å“分æžãŒã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã•ã‚ŒãŸãƒ—ロジェクトã¯ã‚ã‚Šã¾ã›ã‚“。"
msgid "ProductAnalytics|This might take a while, feel free to navigate away from this page and come back later."
msgstr "ã“ã‚Œã«ã¯æ™‚é–“ãŒã‹ã‹ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã‹ã‚‰é›¢ã‚Œã¦å¾Œã§æˆ»ã£ã¦ãã ã•ã£ã¦æ§‹ã„ã¾ã›ã‚“。"
msgid "ProductAnalytics|This table excludes projects that do not have product analytics onboarded."
-msgstr ""
+msgstr "ProductAnalytics |ã“ã®ãƒ†ãƒ¼ãƒ–ルã«ã¯ã€è£½å“分æžãŒã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã•ã‚Œã¦ã„ãªã„プロジェクトã¯å«ã¾ã‚Œã¾ã›ã‚“。"
msgid "ProductAnalytics|To instrument your application, select one of the options below. After an option has been instrumented and data is being collected, this page will progress to the next step."
msgstr "アプリケーションを計測ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ã„ãšã‚Œã‹ã®ã‚ªãƒ—ションをé¸æŠžã—ã¦ãã ã•ã„。オプションã®è¨ˆæ¸¬ãŠã‚ˆã³ãƒ‡ãƒ¼ã‚¿ã®åŽé›†ãŒå®Œäº†ã—ãŸã‚‰ã€ã“ã®ãƒšãƒ¼ã‚¸ã¯æ¬¡ã®ã‚¹ãƒ†ãƒƒãƒ—ã«é€²ã¿ã¾ã™ã€‚"
msgid "ProductAnalytics|Track your product's performance, and optimize your product and development processes."
-msgstr ""
+msgstr "ProductAnalytics|製å“ã®ãƒ‘フォーマンスを追跡ã—ã€è£½å“ã¨é–‹ç™ºãƒ—ロセスを最é©åŒ–ã—ã¾ã™ã€‚"
msgid "ProductAnalytics|Unique Users"
msgstr "ユニークユーザー"
msgid "ProductAnalytics|Usage by month"
-msgstr ""
+msgstr "ProductAnalytics|月別ã®ä½¿ç”¨é‡"
msgid "ProductAnalytics|Usage by project"
-msgstr ""
+msgstr "ProductAnalytics |プロジェクト別ã®ä½¿ç”¨é‡"
msgid "ProductAnalytics|Use product analytics"
-msgstr ""
+msgstr "ProductAnalytics|製å“分æžã‚’使用ã™ã‚‹"
msgid "ProductAnalytics|Used to retrieve dashboard data from the Cube instance."
msgstr "Cubeインスタンスã‹ã‚‰ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã™ã‚‹éš›ã«ä½¿ç”¨ã—ã¾ã™ã€‚"
@@ -36352,8 +37109,8 @@ msgstr "プロフィール"
msgid "Profile failed to delete"
msgstr "プロフィールã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ"
-msgid "Profile image guideline"
-msgstr "プロフィール画åƒã®ã‚¬ã‚¤ãƒ‰ãƒ©ã‚¤ãƒ³"
+msgid "Profile image guidelines"
+msgstr ""
msgid "Profile page:"
msgstr "プロフィールページ:"
@@ -36718,8 +37475,8 @@ msgstr "ユーザーåã¯æ­£å¸¸ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr "åå‰ã«çµµæ–‡å­—を使ã†ã®ã¯æ¥½ã—ãã†ã§ã™ãŒã€ä»£ã‚ã‚Šã«çŠ¶æ…‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’設定ã—ã¦ã¿ã¦ãã ã•ã„"
-msgid "Profiles|Website url"
-msgstr "ウェブサイト㮠URL"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "代表者ã¾ãŸã¯é›‡ç”¨è€…"
@@ -36962,7 +37719,7 @@ msgid "Project visibility level is less restrictive than the group settings."
msgstr "プロジェクトã®è¡¨ç¤ºãƒ¬ãƒ™ãƒ«ã®åˆ¶é™ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—設定ã®åˆ¶é™ã‚ˆã‚Šå°‘ãªã„ã§ã™ã€‚"
msgid "Project visibility level will be changed to match namespace rules when transferring to a group."
-msgstr "プロジェクトをグループã«è»¢é€ã—ãŸå ´åˆã€ãƒ—ロジェクトã®è¡¨ç¤ºãƒ¬ãƒ™ãƒ«ãŒåå‰ç©ºé–“ã®ãƒ«ãƒ¼ãƒ«ã«åˆã‚ã›ã¦å¤‰æ›´ã•ã‚Œã¾ã™ã€‚"
+msgstr "プロジェクトをグループã«è»¢é€ã—ãŸå ´åˆã€ãƒ—ロジェクトã®è¡¨ç¤ºãƒ¬ãƒ™ãƒ«ãŒãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ãƒ«ãƒ¼ãƒ«ã«åˆã‚ã›ã¦å¤‰æ›´ã•ã‚Œã¾ã™ã€‚"
msgid "Project was created and assigned as security policy project, but failed adding users to the project."
msgstr "プロジェクトãŒä½œæˆã•ã‚Œã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒãƒªã‚·ãƒ¼ãƒ—ロジェクトã¨ã—ã¦å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸãŒã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’プロジェクトã«è¿½åŠ ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
@@ -37005,7 +37762,7 @@ msgstr "プロジェクトã®ä½œæˆã‚’許å¯ã•ã‚ŒãŸãƒ­ãƒ¼ãƒ«"
msgid "ProjectExceededSize|Here is the project exceeding the storage quota:%{projects_list}"
msgid_plural "ProjectExceededSize|From the %{repository_size_excess_project_count} projects exceeding the quota, below are the projects using the most storage:%{projects_list}"
-msgstr[0] ""
+msgstr[0] "ProjectExceededSize |クォータを超ãˆãŸ%{repository_size_excess_project_count}ã®ãƒ—ロジェクトã‹ã‚‰ã€æœ€ã‚‚ストレージを使用ã—ã¦ã„るプロジェクトを以下ã«ç¤ºã—ã¾ã™ã€‚%{projects_list}"
msgid "ProjectFileTree|Name"
msgstr "åå‰"
@@ -37022,7 +37779,7 @@ msgstr "ã‚ãªãŸã®"
msgid "ProjectOverview|Create new fork"
msgstr "æ–°ã—ã„フォークを作æˆ"
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr "フォーク"
msgid "ProjectOverview|Go to your fork"
@@ -37049,11 +37806,26 @@ msgstr "プロジェクトã®ä½œæˆåˆ¶é™ã«é”ã—ã¾ã—ãŸ"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "プロジェクトã«ã‚¹ã‚¿ãƒ¼ã‚’付ã‘ã‚‹ã«ã¯ã€ã‚µã‚¤ãƒ³ã‚¤ãƒ³ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
-msgid "ProjectPage|Copy project ID"
-msgstr "プロジェクト ID をコピー"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "プロジェクトID: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr "デフォルトブランãƒãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚システム管ç†è€…ã«ã”相談ãã ã•ã„。"
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr "デフォルトブランãƒã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“"
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr "プロジェクトå“質統計ã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ"
@@ -37271,6 +38043,9 @@ msgstr "%{link_start}ã©ã®ã‚ˆã†ãªå¤‰æ•°ã‚’使用ã§ãã¾ã™ã‹?%{link_end}"
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr "プロジェクトãŒç©ºã®å ´åˆã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®ãƒ–ランãƒã‚’é¸æŠžã§ãã¾ã›ã‚“。"
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr "追加オプション"
@@ -37358,9 +38133,6 @@ msgstr "Cube API URL"
msgid "ProjectSettings|Custom dashboard projects"
msgstr "カスタム ダッシュボード プロジェクト"
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "ã“ã®ãƒ—ロジェクトã®ãƒãƒƒã‚¸ã‚’カスタマイズã—ã¾ã—ょã†ã€‚"
-
msgid "ProjectSettings|Data sources"
msgstr "データソース"
@@ -37478,6 +38250,9 @@ msgstr "デフォルトテンプレートを使用ã™ã‚‹ã«ã¯ç©ºã®ã¾ã¾ã«ã—
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr "ã“ã®ãƒ‘ターンãŒ%{link_start}プッシュルール&gt; ブランãƒå%{link_end}設定ã¨çŸ›ç›¾ã—ã¦ã„ãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr "パブリックアクセスディレクトリã§ãƒ—ロジェクトを閲覧ã§ãるユーザーを管ç†ã—ã¾ã™ã€‚"
@@ -37523,6 +38298,9 @@ msgstr "マージã¯ã€ã‚½ãƒ¼ã‚¹ãƒ–ランãƒãŒã‚¿ãƒ¼ã‚²ãƒƒãƒˆã¨æœ€æ–°ã®çŠ¶æ…‹
msgid "ProjectSettings|Model experiments"
msgstr "モデル実験"
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "モニター"
@@ -37940,29 +38718,9 @@ msgstr "ã“ã®ãƒˆãƒ”ックをå«ã‚€ãƒ—ロジェクト"
msgid "Projects with write access"
msgstr "書ãè¾¼ã¿æ¨©é™ã®ã‚るプロジェクト"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "よã使ã†"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "プロジェクトを読ã¿è¾¼ã¿ä¸­"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "よã使ã†ãƒ—ロジェクトã¯ã“ã“ã«è¡¨ç¤ºã•ã‚Œã¾ã™"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "プロジェクトを検索"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "GitLabå´ã§å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“。検索æ¡ä»¶ã«ä¸€è‡´ã™ã‚‹ãƒ—ロジェクトã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "ã“ã®æ©Ÿèƒ½ã‚’使用ã™ã‚‹ã«ã¯ã€ãƒ–ラウザーãŒlocalStorageã«å¯¾å¿œã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr "編集モードã®åˆ‡ã‚Šæ›¿ãˆ"
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "ã“ã®ãƒ—ロジェクトã®ãƒªãƒã‚¸ãƒˆãƒªã®ã‚¯ãƒ­ãƒ¼ãƒ³ã‚’ã™ãã«ä½œæˆã§ãã¾ã™ã€‚既存ã®ãƒªãƒã‚¸ãƒˆãƒªã‚’プッシュã™ã‚‹å ´åˆã¯ã€ã“れをスキップã—ã¦ãã ã•ã„。"
@@ -37997,6 +38755,9 @@ msgstr "テンプレートã‹ã‚‰ä½œæˆ"
msgid "ProjectsNew|Create new project"
msgstr "æ–°ã—ã„プロジェクトを作æˆ"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr "説明フォーマット"
@@ -38060,11 +38821,14 @@ msgstr "外部リãƒã‚¸ãƒˆãƒªã®CI/CDを実行"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr "パスをæ案ã§ãã¾ã›ã‚“。更新ã—ã¦ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr "表示レベル"
msgid "ProjectsNew|Want to organize several dependent projects under the same namespace? %{link_start}Create a group.%{link_end}"
-msgstr "åŒã˜åå‰ç©ºé–“ã®ä¸‹ã«ã„ãã¤ã‹ã®ä¾å­˜ãƒ—ロジェクトを組織ã—ãŸã„ã§ã™ã‹ï¼Ÿ%{link_start}グループを作æˆã—ã¾ã™ã€‚%{link_end}"
+msgstr "åŒã˜ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ä¸‹ã«ã„ãã¤ã‹ã®ä¾å­˜ãƒ—ロジェクトを組織ã—ãŸã„ã§ã™ã‹ï¼Ÿ%{link_start}グループを作æˆã—ã¾ã™ã€‚%{link_end}"
msgid "ProjectsNew|You can always change your URL later"
msgstr "後ã§ã„ã¤ã§ã‚‚URLを変更ã§ãã¾ã™"
@@ -38653,12 +39417,18 @@ msgstr "承èªè€…"
msgid "ProtectedEnvironment|Environment"
msgstr "環境"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr "アップストリームã§ä¿è­·ã•ã‚ŒãŸç’°å¢ƒ"
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®è©³ç´°ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸã€‚"
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr "ã“ã®ãƒ—ロジェクトã®ç’°å¢ƒã¯ä¿è­·ã•ã‚Œã¦ã„ã¾ã›ã‚“。"
@@ -38705,7 +39475,7 @@ msgid "ProtectedEnvironment|Unprotect environment"
msgstr "環境ã®ä¿è­·ã‚’解除"
msgid "ProtectedEnvironment|Users with at least the Developer role can write to unprotected environments. Are you sure you want to unprotect %{environment_name}?"
-msgstr "デベロッパー以上ã®ãƒ­ãƒ¼ãƒ«ã‚’æŒã¤ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã€ä¿è­·ã•ã‚Œã¦ã„ãªã„環境ã«æ›¸ã込むã“ã¨ãŒã§ãã¾ã™ã€‚本当ã«%{environment_name}ã®ä¿è­·ã‚’解除ã—ã¾ã™ã‹?"
+msgstr "開発者以上ã®ãƒ­ãƒ¼ãƒ«ã‚’æŒã¤ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã€ä¿è­·ã•ã‚Œã¦ã„ãªã„環境ã«æ›¸ã込むã“ã¨ãŒã§ãã¾ã™ã€‚本当ã«%{environment_name}ã®ä¿è­·ã‚’解除ã—ã¾ã™ã‹?"
msgid "ProtectedEnvironment|Your environment can't be unprotected"
msgstr "ã‚ãªãŸã®ç’°å¢ƒã®ä¿è­·ã‚’解除ã§ãã¾ã›ã‚“"
@@ -38740,9 +39510,6 @@ msgstr "ä¿è­·ã‚¿ã‚°ã¨ã¯"
msgid "ProtectedTag|default"
msgstr "デフォルト"
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr "ヒント: %{linkStart}Auto DevOps%{linkEnd} ã¯ã€ã‚³ãƒ¼ãƒ‰ã®ãƒ‡ãƒ—ロイ㫠Kubernetes クラスターを使用ã—ã¾ã™"
-
msgid "Provide Feedback"
msgstr "フィードãƒãƒƒã‚¯ã‚’æä¾›"
@@ -38788,6 +39555,9 @@ msgstr "公開プロジェクトã¯ã€ã ã‚Œã‚‚ãŒèª­ã¿å–り専用ã®ã‚¢ã‚¯ã‚»
msgid "Public projects compute cost factor"
msgstr "パブリックプロジェクトã®ã‚³ãƒ³ãƒ”ューティングコストè¦ç´ "
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "ステータスページã«å…¬é–‹"
@@ -39230,9 +40000,6 @@ msgstr "デãƒã‚¤ã‚¹ã‚’登録ã™ã‚‹"
msgid "Register now"
msgstr "今ã™ã登録"
-msgid "Register the runner with this URL:"
-msgstr "ã“ã®URLã§Runnerを登録:"
-
msgid "Register with two-factor app"
msgstr "2è¦ç´ èªè¨¼ã‚¢ãƒ—リã§ç™»éŒ²"
@@ -39408,6 +40175,9 @@ msgstr "注釈付ãã‚¿ã‚°ã‹ã‚‰ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å«ã‚ã‚‹"
msgid "Release|Learn more about releases"
msgstr "リリースã®è©³ç´°ã«ã¤ã„ã¦"
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr "詳細情報"
@@ -39462,6 +40232,9 @@ msgstr "後ã§é€šçŸ¥"
msgid "Remote object has no absolute path."
msgstr "Remote オブジェクトã«çµ¶å¯¾ãƒ‘スãŒã‚ã‚Šã¾ã›ã‚“。"
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "消去"
@@ -39522,6 +40295,9 @@ msgstr "説明履歴を削除"
msgid "Remove due date"
msgstr "期日を削除"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr "エピックå‚照を削除"
@@ -39624,6 +40400,9 @@ msgstr "ユーザーをグループã‹ã‚‰å‰Šé™¤"
msgid "Remove user from project"
msgstr "プロジェクトã‹ã‚‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’削除"
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr "削除ã—ã¾ã—ãŸ"
@@ -39702,6 +40481,9 @@ msgstr "ã™ã¹ã¦ã®ãƒ©ãƒ™ãƒ«ã‚’削除"
msgid "Removes an issue from an epic."
msgstr "エピックã‹ã‚‰ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’削除"
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr "%{issue_ref}ã¨ã®ãƒªãƒ³ã‚¯ã‚’削除ã—ã¾ã™ã€‚"
@@ -39759,9 +40541,6 @@ msgstr "エピックをå†é–‹"
msgid "Reopen milestone"
msgstr "マイルストーンをå†é–‹"
-msgid "Reopen test case"
-msgstr "テストケースをå†åº¦é–‹ã"
-
msgid "Reopen this %{quick_action_target}"
msgstr "ã“ã® %{quick_action_target} ã‚’å†ã³é–‹ã"
@@ -39828,9 +40607,6 @@ msgstr "コメントã«è¿”ä¿¡"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "ã“ã®ãƒ¡ãƒ¼ãƒ«ã«ç›´æŽ¥è¿”ä¿¡ã™ã‚‹ã‹ã€%{view_it_on_gitlab}。"
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr "返信…"
@@ -40263,6 +41039,9 @@ msgstr "期間ã”ã¨ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆ"
msgid "Require additional authentication for administrative tasks."
msgstr "管ç†ã‚¿ã‚¹ã‚¯ã«ã¯è¿½åŠ ã®èªè¨¼ãŒå¿…è¦ã§ã™ã€‚"
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,8 +41101,8 @@ msgstr "確èªæ¸ˆã¿ã®GitLabメールアドレスãŒå¿…è¦ã§ã™ã€‚"
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr "クラウド型㮠Sentry をデプロイã¾ãŸã¯è¨­å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
-msgid "Requires your primary GitLab email address."
-msgstr "メイン㮠GitLab メールアドレスãŒå¿…è¦ã§ã™ã€‚"
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
+msgstr ""
msgid "Resend"
msgstr "å†é€ä¿¡"
@@ -40391,9 +41170,6 @@ msgstr "ソースブランãƒã§ã®ç«¶åˆã‚’解決ã™ã‚‹"
msgid "Resolve locally"
msgstr "ローカルã§è§£æ±º"
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr "ã“れらã®å•é¡Œã‚’解消ã™ã‚‹ã‹ã€ã¾ãŸã¯ã“ã®ãƒªãƒã‚¸ãƒˆãƒªã¸ã®æ›¸ãè¾¼ã¿ã‚¢ã‚¯ã‚»ã‚¹æ¨©ã‚’æŒã¤äººã«ãƒ­ãƒ¼ã‚«ãƒ«ã§è§£æ±ºã™ã‚‹ã‚ˆã†ä¾é ¼ã—ã¾ã™ã€‚"
-
msgid "Resolve thread"
msgstr "スレッドを解決ã—ã¾ã™ã€‚"
@@ -40517,10 +41293,6 @@ msgstr "å¿…è¦ãªãƒªã‚½ãƒ¼ã‚¹ã‚’作æˆã™ã‚‹ãŸã‚ã«ã“ã®ã‚¸ãƒ§ãƒ–ã‚’å†è©¦è¡Œ
msgid "Retry verification"
msgstr "検証をå†è©¦è¡Œã™ã‚‹"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "値を表示ã™ã‚‹"
-
msgid "Reveal values"
msgstr "値を表示ã™ã‚‹"
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] "%d レビュアー"
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr "レビュアー"
@@ -40624,9 +41405,6 @@ msgstr "根本原因ã®åˆ†æžã¯ã€ãƒ­ã‚°ã‚’分æžã—ã¦ã€ã‚¸ãƒ§ãƒ–ãŒå¤±æ•—ã—
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr "ルールã®åå‰"
-
msgid "Rule name is already taken."
msgstr "ãã®ãƒ«ãƒ¼ãƒ«åã¯æ—¢ã«ä½¿ã‚ã‚Œã¦ã„ã¾ã™ã€‚"
@@ -40959,6 +41737,9 @@ msgstr "既存ã®ãƒ©ãƒ³ãƒŠãƒ¼ã¯å½±éŸ¿ã‚’å—ã‘ã¾ã›ã‚“。ã™ã¹ã¦ã®ã‚°ãƒ«ãƒ¼
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr "既存ã®Runnerã¯å½±éŸ¿ã‚’å—ã‘ã¾ã›ã‚“。ã™ã¹ã¦ã®ãƒ—ロジェクトã®Runnerã§ç™»éŒ²ã‚’許å¯ã™ã‚‹ã«ã¯ã€è¨­å®š&gt CI/CDã®ç®¡ç†ã‚¨ãƒªã‚¢ã§ã“ã®è¨­å®šã‚’有効ã«ã—ã¦ãã ã•ã„。"
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr "プロジェクトã«Runnerを追加ã§ãã¾ã›ã‚“ã§ã—ãŸ"
@@ -41231,6 +42012,9 @@ msgstr "Runnerã®ç™»éŒ²"
msgid "Runners|Runner Registration token"
msgstr "Runner登録トークン"
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr "プロジェクトã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸ Runner"
@@ -41351,8 +42135,8 @@ msgstr "共有Runnerã¯ã‚°ãƒ«ãƒ¼ãƒ—設定ã§ç„¡åŠ¹ã«ãªã£ã¦ã„ã¾ã™."
msgid "Runners|Shared runners are disabled."
msgstr "共有 Runner ã¯ç„¡åŠ¹ã§ã™ã€‚"
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
-msgstr "共有Runnerã¯ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—内ã®ã™ã¹ã¦ã®ãƒ—ロジェクトã¨ã‚µãƒ–グループã§ç„¡åŠ¹ã«ãªã‚Šã¾ã™ã€‚続行ã™ã‚‹å ´åˆã€å„プロジェクトãŠã‚ˆã³ã‚µãƒ–グループã®è¨­å®šã§å…±æœ‰Runnerを手動ã§æœ‰åŠ¹åŒ–ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
+msgstr ""
msgid "Runners|Show only inherited"
msgstr "継承ã•ã‚ŒãŸã‚‚ã®ã®ã¿è¡¨ç¤º"
@@ -41360,9 +42144,6 @@ msgstr "継承ã•ã‚ŒãŸã‚‚ã®ã®ã¿è¡¨ç¤º"
msgid "Runners|Show runner installation and registration instructions"
msgstr "Runner ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ‰‹é †ã¨ç™»éŒ²æ‰‹é †ã‚’表示"
-msgid "Runners|Show runner installation instructions"
-msgstr "Runner ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ‰‹é †ã‚’表示"
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr "削除中ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページをå†èª­ã¿è¾¼ã¿ã—ã¦å†åº¦ãŠè©¦ã—下ã•ã„。"
@@ -41587,9 +42368,24 @@ msgstr "プロジェクト"
msgid "Runners|shared"
msgstr "共有"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr "Runner アクション"
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "実行中"
@@ -41761,9 +42557,18 @@ msgstr "ä¿å­˜ä¸­"
msgid "Saving project."
msgstr "プロジェクトをä¿å­˜"
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr "%{hostname}ã®ã‚¿ã‚¤ãƒ ã‚¾ãƒ¼ãƒ³"
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr "%{time}%{timezoneLabel}%{timezone}ã«ãŠã‘ã‚‹%{period}%{days}"
@@ -41782,6 +42587,9 @@ msgstr "æ¡ä»¶ã‚’追加"
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr "æ–°ã—ã„CI変数を追加"
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr "æ¡ä»¶"
@@ -41803,21 +42611,39 @@ msgstr "DAST スキャンプロファイル"
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr "DAST サイトプロファイル"
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr "キー"
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr "Kubernetesエージェントã®ã‚¿ã‚¤ãƒ ã‚¾ãƒ¼ãƒ³"
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr "CI基準ã®æœ€å¤§æ•°ã¯1ã¤ã§ã™"
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr "一度ã«è¿½åŠ ã§ãる変数㯠1 ã¤ã ã‘ã§ã™ã€‚"
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr "次ã®ã‚ªãƒ—ションã§%{scan}スキャンを実行ã—ã¾ã™:"
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr "Runner ã‚¿ã‚°:"
@@ -41837,11 +42663,14 @@ msgid "ScanExecutionPolicy|Select branches"
msgstr "ブランãƒã‚’é¸æŠž"
msgid "ScanExecutionPolicy|Select namespaces"
-msgstr "åå‰ç©ºé–“ã‚’é¸æŠž"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’é¸æŠž"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr "キーをé¸æŠžã¾ãŸã¯ä½œæˆ"
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "スキャナプロファイルをé¸æŠž"
@@ -41851,6 +42680,9 @@ msgstr "サイトプロファイルをé¸æŠž"
msgid "ScanExecutionPolicy|Select timezone"
msgstr "タイムゾーンをé¸æŠž"
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr "トリガー:"
@@ -41866,11 +42698,14 @@ msgstr "エージェント"
msgid "ScanExecutionPolicy|branch"
msgstr "ブランãƒ"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr "特定ã®ã‚¿ã‚°ãŒã‚ã‚Šã¾ã™"
msgid "ScanExecutionPolicy|in namespaces"
-msgstr "åå‰ç©ºé–“内"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹å†…"
msgid "ScanExecutionPolicy|on %{hostname}"
msgstr "%{hostname}上"
@@ -41926,9 +42761,6 @@ msgstr "修正ãŒåˆ©ç”¨å¯èƒ½"
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr "利用å¯èƒ½ãªä¿®æ­£ã¯ã‚³ãƒ³ãƒ†ãƒŠã¨ä¾å­˜é–¢ä¿‚ã®ã‚¹ã‚­ãƒ£ãƒ³ã«ã®ã¿é©ç”¨ã§ãã¾ã™"
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr "é¸æŠžã—ãŸå ´åˆã€æ¬¡ã®ã‚ªãƒ—ションã«ã‚ˆã‚Š%{linkStart}プロジェクト設定%{linkEnd}ãŒä¸Šæ›¸ãã•ã‚Œã¾ã™ãŒã€ãƒãƒªã‚·ãƒ¼ã§é¸æŠžã•ã‚ŒãŸãƒ–ランãƒã«ã®ã¿å½±éŸ¿ã—ã¾ã™ã€‚"
@@ -41980,35 +42812,26 @@ msgstr "状態ã®æ¡ä»¶ã¯ 2 ã¤ã®ã¿æŒ‡å®šã§ãã¾ã™"
msgid "ScanResultPolicy|Override project approval settings"
msgstr "プロジェクト承èªè¨­å®šã‚’上書ã"
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr "既存"
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr "コミットã®ä½œæˆè€…ã«ã‚ˆã‚‹æ‰¿èªã‚’防止"
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr "マージリクエストã®ä½œæˆè€…ã«ã‚ˆã‚‹æ‰¿èªã‚’防止"
-msgid "ScanResultPolicy|Prevent branch protection modification"
-msgstr "ブランãƒä¿è­·ã®å¤‰æ›´ã‚’防止"
-
-msgid "ScanResultPolicy|Prevent pushing and force pushing"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
+msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
msgid "ScanResultPolicy|Protected branch settings"
msgstr "ä¿è­·ãƒ–ランãƒã®è¨­å®š"
-msgid "ScanResultPolicy|Recommended setting"
-msgstr "推奨設定"
+msgid "ScanResultPolicy|Recommended settings"
+msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
msgstr "æ–°ã—ã„コミットã®éš›ã«ã™ã¹ã¦ã®æ‰¿èªã‚’消去"
@@ -42034,15 +42857,9 @@ msgstr "é‡è¦åº¦ãƒ¬ãƒ™ãƒ«:"
msgid "ScanResultPolicy|Status is:"
msgstr "状態:"
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr "ä¸æ˜Ž"
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr " %{scanType} %{scanners} ã‚’ %{branches} %{branchExceptions} ã«å¯¾ã—ã¦å®Ÿè¡Œã—ã¦ã€ä»¥ä¸‹ã®åŸºæº–ã® %{vulnerabilitiesNumber} %{boldDescription} を見ã¤ã‘ãŸã¨ã:"
@@ -42055,8 +42872,26 @@ msgstr " %{branches} %{branchExceptions}を対象ã¨ã™ã‚‹ã‚ªãƒ¼ãƒ—ンマージã
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr " %{scanners} ㌠%{branches} %{branchExceptions} を対象ã¨ã—ãŸã‚ªãƒ¼ãƒ—ンマージリクエスト内ã§æŒ‡å®šã•ã‚ŒãŸæ¡ä»¶ã«åˆã£ãŸã‚¹ã‚­ãƒ£ãƒŠãƒ¼ã‚’見ã¤ã‘ã€ãã‚ŒãŒæ¬¡ã®åŸºæº–ã® %{boldDescription} ã«ä¸€è‡´ã™ã‚‹å ´åˆ"
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
-msgstr "ä¿è­·ãƒ–ランãƒã‚ªãƒ—ションをæ¡ä»¶ã¨ã—ã¦é¸æŠžã—ã¾ã—ãŸã€‚プロジェクトをよりé©åˆ‡ã«ä¿è­·ã™ã‚‹ã«ã¯ã€ä¿è­·ãƒ–ランãƒè¨­å®šã‚’有効ã«ã™ã‚‹ã“ã¨ã‚’ãŠã™ã™ã‚ã—ã¾ã™ã€‚%{linkStart}詳ã—ã見る。%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
+msgstr ""
msgid "ScanResultPolicy|any commits"
msgstr "ä»»æ„ã®ã‚³ãƒŸãƒƒãƒˆ"
@@ -42208,6 +43043,9 @@ msgstr "åå‰ã§æ¤œç´¢"
msgid "Search files"
msgstr "ファイルを検索"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr "åå‰ç©ºé–“を検索"
@@ -42390,6 +43228,9 @@ msgstr "秘密ã®æ¤œå‡º"
msgid "Secret token"
msgstr "シークレットトークン"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr "ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã«ã¯ãƒˆãƒ¼ã‚¯ãƒ³ãŒå«ã¾ã‚Œã¦ã„るよã†ã§ã™ã€‚本当ã«è¿½åŠ ã—ã¾ã™ã‹ ?"
@@ -42399,6 +43240,36 @@ msgstr "ã“ã®èª¬æ˜Žã«ã¯ãƒˆãƒ¼ã‚¯ãƒ³ãŒå«ã¾ã‚Œã¦ã„るよã†ã§ã™ã€‚本当
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr "Secure Code Warrior"
@@ -42456,6 +43327,9 @@ msgstr "セキュリティダッシュボード"
msgid "Security Finding not found"
msgstr "セキュリティ検索çµæžœãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr "セキュリティãƒãƒªã‚·ãƒ¼ãƒ—ロジェクトã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚"
@@ -42543,8 +43417,8 @@ msgstr "Auto DevOps を有効ã«ã™ã‚‹"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr "DASTスキャンã§ã®ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯æ”»æ’ƒãªã©ã€ä¾µå®³ãŠã‚ˆã³æ”»æ’ƒã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã«ç„¦ç‚¹ã‚’当ã¦ãŸæ©Ÿèƒ½ã®ã‚¤ãƒ³ã‚­ãƒ¥ãƒ™ãƒ¼ã‚·ãƒ§ãƒ³ã‚’有効ã«ã—ã¾ã™ã€‚"
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "セキュリティトレーニングを有効ã«ã—ã¦ã€é–‹ç™ºè€…ãŒè„†å¼±æ€§ã‚’修正ã™ã‚‹æ–¹æ³•ã‚’学習ã§ãるよã†ã«ã—ã¾ã™ã€‚開発者ã¯ã€æ¤œå‡ºã•ã‚ŒãŸè„†å¼±æ€§ã«é–¢é€£ã™ã‚‹ã€é¸æŠžã—ãŸæ•™è‚²ãƒ—ロãƒã‚¤ãƒ€ãƒ¼ã«ã‚ˆã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’閲覧ã§ãã¾ã™ã€‚"
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
msgid "SecurityConfiguration|Enabled"
msgstr "有効"
@@ -42645,6 +43519,9 @@ msgstr "%{licenseState}ã§ã€"
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr "%{namespaces}ã®%{agent}"
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr "%{branchName}"
@@ -42654,6 +43531,15 @@ msgstr "%{branchName} (%{codeStart}%{fullPath}%{codeEnd}内)"
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr "%{branches}%{branchExceptionsString}上ã®%{cadence}"
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr "%{licenses}ã¨%{lastLicense}"
@@ -42672,12 +43558,18 @@ msgstr ".yamlモード"
msgid "SecurityOrchestration|.yaml preview"
msgstr ".yaml ã®ãƒ—レビュー"
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr "アクション"
msgid "SecurityOrchestration|Add action"
msgstr "アクションã®è¿½åŠ "
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr "æ–°ã—ã„承èªè€…を追加"
@@ -42690,6 +43582,9 @@ msgstr "アラートを閉ã˜ã‚‹ã¨ã€æƒ…å ±ã¯äºŒåº¦ã¨è¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "グループレベルã®ãƒãƒªã‚·ãƒ¼ã‚’有効ã«ã™ã‚‹ã¨ã€ã“ã®ãƒãƒªã‚·ãƒ¼ã¯ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ã™ã¹ã¦ã®ãƒ—ロジェクトã¨ã‚µãƒ–グループã«è‡ªå‹•çš„ã«é©ç”¨ã•ã‚Œã¾ã™ã€‚"
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr "ã™ã¹ã¦ã®ã‚½ãƒ¼ã‚¹"
@@ -42712,14 +43607,17 @@ msgid "SecurityOrchestration|Any merge request"
msgstr "ã™ã¹ã¦ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆ"
msgid "SecurityOrchestration|Apply this policy to all projects %{projectScopeType} %{exceptionType} %{projectSelector}"
-msgstr ""
+msgstr "SecurityOrchestration|ã“ã®ãƒãƒªã‚·ãƒ¼ã‚’ã™ã¹ã¦ã®ãƒ—ロジェクトã«é©ç”¨ã™ã‚‹%{projectScopeType} %{exceptionType} %{projectSelector}"
msgid "SecurityOrchestration|Apply this policy to all projects %{projectScopeType} named %{frameworkSelector}"
-msgstr ""
+msgstr "SecurityOrchestration|ã“ã®ãƒãƒªã‚·ãƒ¼ã‚’%{frameworkSelector}ã¨ã„ã†åå‰ã®ä»˜ã„ãŸã™ã¹ã¦ã®ãƒ—ロジェクト%{projectScopeType}ã«é©ç”¨ã—ã¾ã™"
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr "本当ã«ã“ã®ãƒãƒªã‚·ãƒ¼ã‚’削除ã—ã¾ã™ã‹ ?ã“ã®æ“作ã¯å…ƒã«æˆ»ã›ã¾ã›ã‚“。"
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr "自動的ã«é¸æŠžã•ã‚ŒãŸRunner"
@@ -42732,18 +43630,24 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr "プロジェクトをé¸æŠž"
+msgid "SecurityOrchestration|Choose an action"
+msgstr ""
+
msgid "SecurityOrchestration|Choose approver type"
msgstr "承èªè€…タイプをé¸æŠž"
-msgid "SecurityOrchestration|Choose framework labels"
-msgstr ""
-
msgid "SecurityOrchestration|Choose specific role"
msgstr "特定ã®ãƒ­ãƒ¼ãƒ«ã‚’é¸æŠž"
msgid "SecurityOrchestration|Clear all"
msgstr "ã™ã¹ã¦ã‚¯ãƒªã‚¢"
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr "より堅牢ãªè„†å¼±æ€§ãƒ«ãƒ¼ãƒ«ã‚’作æˆã—ã€ã‚ãªãŸã®ãƒ—ロジェクトã™ã¹ã¦ã«é©ç”¨ã—ã¾ã™ã€‚"
@@ -42811,11 +43715,14 @@ msgid "SecurityOrchestration|Failed to load compliance frameworks"
msgstr ""
msgid "SecurityOrchestration|Failed to load group projects"
-msgstr ""
+msgstr "SecurityOrchestration|グループ プロジェクトã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ"
msgid "SecurityOrchestration|Failed to load images."
msgstr "イメージã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,8 +43735,11 @@ msgstr "大è¦æ¨¡ãªã‚°ãƒ«ãƒ¼ãƒ—ã®å ´åˆã€æ—¢å­˜ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«
msgid "SecurityOrchestration|Groups"
msgstr "グループ"
-msgid "SecurityOrchestration|Hide extra branches"
-msgstr "余計ãªãƒ–ランãƒã‚’éžè¡¨ç¤ºã«ã™ã‚‹"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
+msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
msgstr "ã„ãšã‚Œã‹ã®ã‚¹ã‚­ãƒ£ãƒŠãƒ¼ãŒã€masterブランãƒã‚’対象ã¨ã—ãŸã‚ªãƒ¼ãƒ—ンマージリクエストã§æ–°ãŸã«æ¤œå‡ºã•ã‚ŒãŸé‡å¤§ãªè„†å¼±æ€§ã‚’発見ã—ãŸå ´åˆã€ã‚¢ãƒ—リセキュリティã®ã„ãšã‚Œã‹ã®ãƒ¡ãƒ³ãƒãƒ¼ã‹ã‚‰2件ã®æ‰¿èªã‚’å¾—ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
@@ -42843,6 +43753,9 @@ msgstr "継承"
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr "%{namespace}ã‹ã‚‰ç¶™æ‰¿"
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr "無効ãªãƒ–ランãƒã‚¿ã‚¤ãƒ—ãŒæ¤œå‡ºã•ã‚Œã¾ã—㟠- ルールã¯é©ç”¨ã•ã‚Œã¾ã›ã‚“。"
@@ -42858,6 +43771,9 @@ msgstr "%{agent}ã«å¯¾ã—ã¦å®Ÿè¡Œã•ã‚ŒãŸæœ€æ–°ã®ã‚¹ã‚­ãƒ£ãƒ³"
msgid "SecurityOrchestration|License Scan"
msgstr "ライセンススキャン"
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr "ロジックエラー"
@@ -42885,6 +43801,9 @@ msgstr "例外ãªã—"
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr "ルールãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“ - ãƒãƒªã‚·ãƒ¼ã¯å®Ÿè¡Œã•ã‚Œã¾ã›ã‚“。"
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr "利用å¯èƒ½ãªã‚¿ã‚°ã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -42910,6 +43829,9 @@ msgstr "セキュリティãƒãƒªã‚·ãƒ¼ãƒ—ロジェクトを更新ã§ãã‚‹ã®ã¯
msgid "SecurityOrchestration|Override the following project settings:"
msgstr "次ã®ãƒ—ロジェクト設定を上書ãã—ã¾ã™:"
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr "ãƒãƒªã‚·ãƒ¼"
@@ -42932,7 +43854,7 @@ msgid "SecurityOrchestration|Policy editor"
msgstr "ãƒãƒªã‚·ãƒ¼ã‚¨ãƒ‡ã‚£ã‚¿"
msgid "SecurityOrchestration|Policy scope"
-msgstr ""
+msgstr "SecurityOrchestration|ãƒãƒªã‚·ãƒ¼ã®ã‚¹ã‚³ãƒ¼ãƒ—"
msgid "SecurityOrchestration|Policy status"
msgstr "ãƒãƒªã‚·ãƒ¼ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹"
@@ -42997,12 +43919,18 @@ msgstr "スキャンçµæžœãƒãƒªã‚·ãƒ¼"
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr "Runnerã«ã¯ã‚¿ã‚°ãŒå­˜åœ¨ã—ãªã„ãŸã‚ã€å®Ÿè¡Œã™ã‚‹RunnerãŒè‡ªå‹•çš„ã«é¸æŠžã•ã‚Œã¾ã™ã€‚%{linkStart}設定ã§æ–°ã—ã„タグを作æˆ%{linkEnd}ã§ãã¾ã™ã€‚"
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr "セキュリティ承èª"
msgid "SecurityOrchestration|Security Scan"
msgstr "セキュリティスキャン"
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr "セキュリティãƒãƒªã‚·ãƒ¼ãƒ—ロジェクトãŒæ­£å¸¸ã«ãƒªãƒ³ã‚¯ã•ã‚Œã¾ã—ãŸ"
@@ -43036,6 +43964,12 @@ msgstr "ユーザーã®é¸æŠž"
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr "é‡è¦åº¦ã¯%{severity}ã§ã™ã€‚"
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr "å•é¡ŒãŒç™ºç”Ÿã—ãŸãŸã‚ã€ãƒãƒªã‚·ãƒ¼ã‚’フェッãƒã§ãã¾ã›ã‚“"
@@ -43069,6 +44003,12 @@ msgstr "ã“ã®%{namespaceType}ã«ã¯ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒãƒªã‚·ãƒ¼ãŒå«ã¾ã‚Œã
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr "ã“ã®%{namespaceType}ã«ã¯ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒãƒªã‚·ãƒ¼ãƒ—ロジェクトãŒãƒªãƒ³ã‚¯ã—ã¦ã„ã¾ã›ã‚“"
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—"
@@ -43153,17 +44093,32 @@ msgstr "YAML"
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
-msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
+msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr "SecurityOrchestration|1ã¤ä»¥ä¸Šã®%{security_policies_link_start}セキュリティãƒãƒªã‚·ãƒ¼%{security_policies_link_end}ã«ã‚ˆã£ã¦ä¿è­·ãŒé©ç”¨ã•ã‚Œã¦ã„ã‚‹ãŸã‚ã€ã“ã®ãƒ–ランãƒã®ä¿è­·ã‚’解除ã§ãã¾ã›ã‚“。%{learn_more_link_start}詳細ã¯ã“ã¡ã‚‰%{learn_more_link_end}。"
+
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr "ã¾ã ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒãƒªã‚·ãƒ¼ãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
-msgstr "å…¨ã¦ã®åå‰ç©ºé–“"
+msgstr "å…¨ã¦ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹"
msgid "SecurityOrchestration|all projects in this group"
-msgstr ""
+msgstr "SecurityOrchestration|ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ã™ã¹ã¦ã®ãƒ—ロジェクト"
msgid "SecurityOrchestration|any"
msgstr "SecurityOrchestration | ä»»æ„"
@@ -43195,9 +44150,12 @@ msgstr "ブランãƒ"
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr "%{agents}%{cadence}%{branchExceptionsString}ã¨ã„ã†åå‰ã®ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã«ã‚ˆã£ã¦"
-msgid "SecurityOrchestration|except projects"
+msgid "SecurityOrchestration|compliance frameworks"
msgstr ""
+msgid "SecurityOrchestration|except projects"
+msgstr "SecurityOrchestration|除外ã™ã‚‹ãƒ—ロジェクト"
+
msgid "SecurityOrchestration|group level branch input"
msgstr "グループレベルã®ãƒ–ランãƒå…¥åŠ›"
@@ -43217,7 +44175,7 @@ msgid "SecurityOrchestration|or from:"
msgstr "ã¾ãŸã¯æ¬¡ã‹ã‚‰:"
msgid "SecurityOrchestration|projects with compliance frameworks"
-msgstr ""
+msgstr "SecurityOrchestration |コンプライアンスフレームワークをæŒã¤ãƒ—ロジェクト"
msgid "SecurityOrchestration|scanner finds"
msgstr "スキャナーãŒæ¬¡ã‚’検出ã—ãŸå ´åˆ:"
@@ -43226,7 +44184,7 @@ msgid "SecurityOrchestration|scanners find"
msgstr "スキャナーãŒæ¬¡ã‚’検出ã—ãŸå ´åˆ:"
msgid "SecurityOrchestration|specific projects"
-msgstr ""
+msgstr "SecurityOrchestration|特定ã®ãƒ—ロジェクト"
msgid "SecurityOrchestration|targeting %{branchTypeText}"
msgstr "%{branchTypeText}ã®ã‚¿ãƒ¼ã‚²ãƒ†ã‚£ãƒ³ã‚°"
@@ -43241,10 +44199,10 @@ msgid "SecurityOrchestration|the %{branches} branch"
msgstr "%{branches}ブランãƒ"
msgid "SecurityOrchestration|the %{namespaces} and %{lastNamespace} namespaces"
-msgstr "%{namespaces}ã¨%{lastNamespace}åå‰ç©ºé–“"
+msgstr "%{namespaces}ã¨%{lastNamespace}ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹"
msgid "SecurityOrchestration|the %{namespaces} namespace"
-msgstr "%{namespaces}åå‰ç©ºé–“"
+msgstr "%{namespaces}ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹"
msgid "SecurityOrchestration|the default branch"
msgstr "デフォルトブランãƒ"
@@ -43256,7 +44214,7 @@ msgid "SecurityOrchestration|with %{exceptionType} on %{branchSelector}"
msgstr " %{exceptionType}ã‚’ %{branchSelector} ã§"
msgid "SecurityOrchestration|without exceptions"
-msgstr ""
+msgstr "SecurityOrchestration |例外ãªã—"
msgid "SecurityPolicies|Invalid or empty policy"
msgstr "無効ãªãƒãƒªã‚·ãƒ¼ã¾ãŸã¯ç©ºã®ãƒãƒªã‚·ãƒ¼"
@@ -43381,6 +44339,9 @@ msgstr "å´ä¸‹ï¼ˆã™ã¹ã¦ã®ç†ç”±ï¼‰"
msgid "SecurityReports|Dismissed as..."
msgstr "å´ä¸‹ã•ã‚ŒãŸç†ç”±..."
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr "イシューã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -43432,6 +44393,9 @@ msgstr "次ã®IDã®è„†å¼±æ€§ã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸ: %{ids}"
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr "æä¾›ã•ã‚ŒãŸã„ãšã‚Œã‹ã®ã‚«ãƒ†ã‚´ãƒªã§è„†å¼±æ€§ã‚’グループ化ã—ã¾ã™ã€‚%{feedbackIssueStart}ã“ã®ã‚¤ã‚·ãƒ¥ãƒ¼%{feedbackIssueEnd}ã§ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã¾ãŸã¯æ案ã—ã¦ãã ã•ã„。"
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr "イシューãŒã‚ã‚Šã¾ã™"
@@ -43447,12 +44411,6 @@ msgstr "イメージ"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr "イシューを作æˆã—ã¦ã€ã“ã®è„†å¼±æ€§ã‚’調査ã™ã‚‹"
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr "イシュー"
@@ -43586,6 +44544,9 @@ msgstr "ã¾ã æ¤œå‡ºã•ã‚Œã¦ã„ã¾ã™"
msgid "SecurityReports|Submit vulnerability"
msgstr "脆弱性をé€ä¿¡"
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr "脆弱性レãƒãƒ¼ãƒˆã«ã¯ã€ãƒ—ロジェクトã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒ–ランãƒã®æˆåŠŸã—ãŸã‚¹ã‚­ãƒ£ãƒ³çµæžœã€æ‰‹å‹•ã§è¿½åŠ ã•ã‚ŒãŸè„†å¼±æ€§ãƒ¬ã‚³ãƒ¼ãƒ‰ã€ãŠã‚ˆã³é‹ç”¨ç’°å¢ƒã®ã‚¹ã‚­ãƒ£ãƒ³ã‹ã‚‰æ¤œå‡ºã•ã‚ŒãŸè„†å¼±æ€§ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ %{linkStart}詳細ã¯ã“ã¡ã‚‰%{linkEnd} 。"
@@ -43685,6 +44646,18 @@ msgstr "セキュリティトレーニングã§è§£æ±º"
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr "ã“ã®ãƒ‘ートナーã‹ã‚‰ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã¯ã€è¤‡æ•°ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ãƒ‘ートナーãŒæœ‰åŠ¹ãªå ´åˆã«å„ªå…ˆã•ã‚Œã¾ã™ã€‚"
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr "ドキュメント㧠DevOps スコアã®ä¾‹ã®ãƒšãƒ¼ã‚¸å‚ç…§ã—ã¦ãã ã•ã„。"
@@ -43952,6 +44925,9 @@ msgstr "プロジェクトイベントã«é–¢ã™ã‚‹é€šçŸ¥ã‚’ Mattermost ãƒãƒ£ãƒ³
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr "プロジェクトイベントã«é–¢ã™ã‚‹é€šçŸ¥ã‚’ Discord ãƒãƒ£ãƒ³ãƒãƒ«ã«é€ä¿¡ã—ã¾ã™ã€‚%{docs_link}"
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "レãƒãƒ¼ãƒˆã‚’é€ä¿¡"
@@ -44031,7 +45007,7 @@ msgid "ServiceAccount|No more seats are available to create Service Account User
msgstr "サービスアカウントユーザーを作æˆã™ã‚‹ãŸã‚ã«åˆ©ç”¨ã§ãるシートãŒãªããªã‚Šã¾ã—ãŸ"
msgid "ServiceAccount|User does not have permission to create a service account in this namespace."
-msgstr "ã“ã®åå‰ç©ºé–“ã§ã‚µãƒ¼ãƒ“スアカウントを作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã§ã‚µãƒ¼ãƒ“スアカウントを作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
msgid "ServiceAccount|User does not have permission to create a service account."
msgstr "サービスアカウントを作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
@@ -44114,9 +45090,15 @@ msgstr "カスタムメールを有効化"
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr "インスタンスã®ã‚µãƒ¼ãƒ“スデスクã®è¨­å®šã«ã¤ã„ã¦ã¯ã€ç®¡ç†è€…ã«å•ã„åˆã‚ã›ã¦ãã ã•ã„。"
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr "ä¸æ­£ãª From ヘッダー"
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ãŒæ­£ã—ãã‚ã‚Šã¾ã›ã‚“"
@@ -44156,6 +45138,12 @@ msgstr "%{linkStart}フィードãƒãƒƒã‚¯ã‚¤ã‚·ãƒ¥ãƒ¼%{linkEnd} ã§ã“ã®æ©Ÿèƒ½ã
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr "ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。メール転é€è¨­å®šã¨èªè¨¼æƒ…報を確èªã—ã€èªè¨¼ã‚’å†é–‹ã—ã¦ãã ã•ã„。"
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr "カスタムメールをリセット"
@@ -44216,8 +45204,11 @@ msgstr "サービスデスクã®è¨­å®šãŒã‚ã‚Šã¾ã›ã‚“"
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr "サービスデスクã®è¨­å®šã¾ãŸã¯æ¤œè¨¼ã‚ªãƒ–ジェクトãŒã‚ã‚Šã¾ã›ã‚“"
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "指定ã•ã‚ŒãŸãƒ­ã‚°ã‚¤ãƒ³æƒ…å ±(ユーザーåã¨ãƒ‘スワード)ãŒSMTP サーãƒãƒ¼ã«ã‚ˆã£ã¦æ‹’å¦ã•ã‚Œã¾ã—ãŸã€‚"
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
msgstr "å—ä¿¡ã—ãŸãƒ¡ãƒ¼ãƒ«ã«ã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é€ä¿¡ã•ã‚ŒãŸèªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ãŒå«ã¾ã‚Œã¦ã„ã¾ã›ã‚“。"
@@ -44225,6 +45216,12 @@ msgstr "å—ä¿¡ã—ãŸãƒ¡ãƒ¼ãƒ«ã«ã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é€ä¿¡ã•ã‚ŒãŸèªè¨¼
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr "確èªãƒ¡ãƒ¼ãƒ«ã‚’時間内ã«å—ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚確èªãƒ¡ãƒ¼ãƒ«ãŒã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®ã‚µãƒ¼ãƒ“スデスクã«è¡¨ç¤ºã•ã‚Œã‚‹ã¾ã§ã«30分間ã®æ™‚é–“æž ãŒã‚ã‚Šã¾ã™ã€‚ メール転é€ã‚’æ­£ã—ã設定ã—ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr "外部ã®å‚加者ã‹ã‚‰æ–°ã—ã„コメントãŒæŠ•ç¨¿ã•ã‚ŒãŸãŸã‚ã€ã“ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã¯å†é–‹ã•ã‚Œã¾ã—ãŸã€‚"
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr "ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã§ã‚µãƒ¼ãƒ“スデスクを有効ã«ã™ã‚‹ã«ã¯ã€ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ç®¡ç†è€…ãŒæœ€åˆã«å—信メールを設定ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
@@ -44423,9 +45420,6 @@ msgstr "CI/CDを設定"
msgid "Set up Jira Integration"
msgstr "Jira インテグレーションを設定"
-msgid "Set up a %{type} runner for a project"
-msgstr "プロジェクト㫠%{type} Runnerを設定"
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãƒ‡ãƒã‚¤ã‚¹ã‚’設定ã—ã¦ã€2è¦ç´ èªè¨¼ã‚’有効ã«ã—ã¾ã™ã€‚"
@@ -44441,6 +45435,9 @@ 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."
msgstr "別ã®ãƒªãƒã‚¸ãƒˆãƒªã¨ã®é–“ã§å¤‰æ›´ã‚’自動的ã«ãƒ—ッシュã—ãŸã‚Šã€ãƒ—ルã—ãŸã‚Šã™ã‚‹ã‚ˆã†ã€ãƒ—ロジェクトを設定ã—ã¾ã™ã€‚ブランãƒã€ã‚¿ã‚°ã€ãŠã‚ˆã³ã‚³ãƒŸãƒƒãƒˆã¯è‡ªå‹•çš„ã«åŒæœŸã•ã‚Œã¾ã™ã€‚"
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "ウェイトを設定"
@@ -44519,19 +45516,33 @@ msgstr "設定"
msgid "Setting enforced"
msgstr "設定ãŒå®Ÿæ–½ã•ã‚Œã¾ã—ãŸã€‚"
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] "設定ã®ä¿å­˜ã«æˆåŠŸã—ã¾ã—ãŸ"
-
msgid "Settings"
msgstr "設定"
msgid "Settings for the License Compliance feature"
msgstr "ライセンスコンプライアンス機能ã®è¨­å®š"
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr "マージリクエストオプションã®è¨­å®šã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“。ページをå†èª­ã¿è¾¼ã¿ã—ã¦ã¿ã¦ãã ã•ã„。"
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "é‡è¦åº¦"
@@ -44578,7 +45589,7 @@ msgid "SharedRunnersMinutesSettings|Reset compute usage"
msgstr "コンピューティングã®ä½¿ç”¨çŠ¶æ³ã‚’リセットã™ã‚‹"
msgid "SharedRunnersMinutesSettings|When you reset the compute usage for this namespace, the compute usage changes to zero."
-msgstr "ã“ã®åå‰ç©ºé–“ã«å¯¾ã™ã‚‹ã‚³ãƒ³ãƒ”ューティングã®ä½¿ç”¨çŠ¶æ³ã‚’リセットã™ã‚‹ã¨ã€ãã®å€¤ãŒã‚¼ãƒ­ã«å¤‰ã‚ã‚Šã¾ã™ã€‚"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã«å¯¾ã™ã‚‹ã‚³ãƒ³ãƒ”ューティングã®ä½¿ç”¨çŠ¶æ³ã‚’リセットã™ã‚‹ã¨ã€ãã®å€¤ãŒã‚¼ãƒ­ã«å¤‰ã‚ã‚Šã¾ã™ã€‚"
msgid "ShellOperations|Git SSH operations rate limit"
msgstr "git SSHæ“作ã®ãƒ¬ãƒ¼ãƒˆåˆ¶é™"
@@ -44589,27 +45600,6 @@ msgstr "リãƒã‚¸ãƒˆãƒªã”ã¨ã«ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒå®Ÿè¡Œã§ãã‚‹gitæ“作ã®æ•°
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr "1分ã‚ãŸã‚Šã®gitæ“作ã®æœ€å¤§æ•°"
-msgid "Shimo|Go to Shimo Workspace"
-msgstr "Shimo ワークスペースã¸ç§»å‹•"
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr "サイドãƒãƒ¼ã‹ã‚‰ Shimo ワークスペースã«ãƒªãƒ³ã‚¯ã—ã¾ã™ã€‚"
-
-msgid "Shimo|Shimo"
-msgstr "Shimo"
-
-msgid "Shimo|Shimo Workspace"
-msgstr "Shimo ワークスペース"
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr "Shimo ワークスペース㮠URL"
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr "Shimo ワークスペースã®ã‚¤ãƒ³ãƒ†ã‚°ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãŒæœ‰åŠ¹ã«ãªã£ã¦ã„ã¾ã™"
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr "Shimo ワークスペースインテグレーションを有効ã«ã—ã¾ã—ãŸã€‚Wiki 㯠Shimo ã§ç›´æŽ¥ç¢ºèªã§ãã¾ã™ã€‚"
-
msgid "Short name"
msgstr "略称"
@@ -44872,9 +45862,6 @@ msgstr "スマートカードを使ã£ã¦ã‚µã‚¤ãƒ³ã‚¤ãƒ³"
msgid "Sign in via 2FA code"
msgstr "2FA コードã§ã‚µã‚¤ãƒ³ã‚¤ãƒ³"
-msgid "Sign in with"
-msgstr "次ã®æ–¹æ³•ã§ã‚µã‚¤ãƒ³ã‚¤ãƒ³"
-
msgid "Sign in with single sign-on"
msgstr "シングルサインオンã§ã‚µã‚¤ãƒ³ã‚¤ãƒ³ã™ã‚‹"
@@ -44923,20 +45910,14 @@ msgstr "サインアウトページ㮠URL"
msgid "Sign-up restrictions"
msgstr "æ–°è¦ç™»éŒ²ã®åˆ¶é™"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "%{button_text}をクリックã™ã‚‹ã‹ã€ã‚µãƒ¼ãƒ‰ãƒ‘ーティ経由ã§ç™»éŒ²ã™ã‚‹ã“ã¨ã§ã€GitLabã®%{link_start}利用è¦ç´„ã«åŒæ„ã—ã€ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã¨Cookieãƒãƒªã‚·ãƒ¼%{link_end}ã«åŒæ„ã—ãŸã“ã¨ã«ãªã‚Šã¾ã™ã€‚"
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "%{button_text}をクリックã™ã‚‹ã‹ã€ã¾ãŸã¯ç¬¬ä¸‰è€…経由ã§ç™»éŒ²ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€%{link_start}利用è¦ç´„ã«åŒæ„ã—ã€ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã¨Cookieãƒãƒªã‚·ãƒ¼%{link_end}ã«åŒæ„ã—ãŸã“ã¨ã«ãªã‚Šã¾ã™"
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "%{button_text}をクリックã™ã‚‹ã¨ã€%{link_start}ã®åˆ©ç”¨è¦ç´„ã¨ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼%{link_end}を読ã¿ã€æ‰¿è«¾ã—ãŸã“ã¨ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "%{button_text}をクリックã™ã‚‹ã¨ã€GitLab ã®%{link_start}利用è¦ç´„ã¨ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼%{link_end}を読ã¿ã€æ‰¿è«¾ã—ãŸã“ã¨ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "サインアップã™ã‚‹ã“ã¨ã§ã€%{link_start}利用è¦ç´„ã«åŒæ„ã—ã€ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã¨Cookieãƒãƒªã‚·ãƒ¼%{link_end}ã«åŒæ„ã—ãŸã“ã¨ã«ãªã‚Šã¾ã™ã€‚"
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr "ãŠåå‰(å)ãŒé•·ã™ãŽã¾ã™(最大%{max_length}文字)。"
@@ -45235,6 +46216,9 @@ msgstr "スマートカード"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "スマートカードèªè¨¼ã«å¤±æ•—:クライアント証明書ヘッダーãŒã‚ã‚Šã¾ã›ã‚“。"
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr "スニペット"
@@ -45292,6 +46276,9 @@ msgstr "スニペットã¯%{total}個ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«åˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr "スニペットã«ã¯ç©ºã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å«ã‚ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。ã™ã¹ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¸­èº«ãŒã‚ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ã‹ã€å‰Šé™¤ã—ã¦ãã ã•ã„。"
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45352,7 +46339,7 @@ msgstr "ãã®ä»–"
msgid "Something went wrong"
msgstr "å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr "人気順"
msgid "SortOptions|Priority"
msgstr "優先度順"
-msgid "SortOptions|Project"
-msgstr "プロジェクト"
-
msgid "SortOptions|Recent last activity"
msgstr "最新アクティビティ (æ–°ã—ã„é †)"
@@ -45709,8 +46693,8 @@ msgstr "ãŠæ°—ã«å…¥ã‚Š (æ–°ã—ã„é †)"
msgid "SortOptions|Size"
msgstr "サイズ"
-msgid "SortOptions|Sort by:"
-msgstr "並ã¹æ›¿ãˆé †:"
+msgid "SortOptions|Sort by"
+msgstr ""
msgid "SortOptions|Sort direction"
msgstr "ソート順"
@@ -45730,12 +46714,6 @@ msgstr "ã¾ã‚‚ãªã開始ã™ã‚‹é †"
msgid "SortOptions|Title"
msgstr "タイトル"
-msgid "SortOptions|Type"
-msgstr "タイプ"
-
-msgid "SortOptions|Version"
-msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³"
-
msgid "SortOptions|Weight"
msgstr "ウェイト"
@@ -45931,6 +46909,10 @@ msgstr "ステージ:"
msgid "Standard"
msgstr "標準"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr "ラベルをãŠæ°—ã«ã„ã‚Šã«ã—ã¦ã‚½ãƒ¼ãƒˆã®å„ªå…ˆé †ä½ã‚’ã¤ã‘る。"
@@ -45974,7 +46956,7 @@ msgid "Start a %{new_merge_request} with these changes"
msgstr "ã“ã®å¤‰æ›´ã§%{new_merge_request}を開始"
msgid "Start a Free Ultimate Trial"
-msgstr "ç„¡æ–™ã®Ultimateトライアルを始ã‚ã‚‹"
+msgstr "Ultimateã®ç„¡æ–™ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã‚’開始ã™ã‚‹"
msgid "Start a new merge request with these changes"
msgstr "ã“ã®å¤‰æ›´ã‹ã‚‰æ–°ã—ã„マージリクエストを作æˆã™ã‚‹"
@@ -46019,7 +47001,7 @@ msgid "Start time"
msgstr "開始時間"
msgid "Start your Free Ultimate Trial"
-msgstr "ç„¡æ–™ã®Ultimateトライアルを始ã‚ã‚‹"
+msgstr "Ultimateã®ç„¡æ–™ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã‚’開始ã™ã‚‹"
msgid "Start your free trial"
msgstr "無料トライアルを始ã‚ã‚‹"
@@ -46231,9 +47213,6 @@ msgstr "ターミナルをåœæ­¢"
msgid "Stop impersonating"
msgstr "代ç†ã‚’åœæ­¢"
-msgid "Stop impersonation"
-msgstr "代ç†ã‚’åœæ­¢"
-
msgid "Stop this environment"
msgstr "ã“ã®ç’°å¢ƒã‚’åœæ­¢ã™ã‚‹"
@@ -46315,9 +47294,6 @@ msgstr "ãƒãƒ ã¨ã—ã¦é€ä¿¡"
msgid "Submit as spam"
msgstr "スパムã¨ã—ã¦ãƒ¬ãƒãƒ¼ãƒˆ"
-msgid "Submit feedback"
-msgstr "フィードãƒãƒƒã‚¯ã‚’é€ä¿¡"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr "読ã¿å–り専用ã®ã‚µãƒ–スクリプションを変更ã—ãŸã‚Šã€è¿½
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr "サブスクリプションã¯èª­ã¿å–り専用モードã§ã™"
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "シートã®è¿½åŠ "
@@ -46568,7 +47547,7 @@ msgid "Successfully removed email."
msgstr "メールを削除ã—ã¾ã—ãŸã€‚"
msgid "Successfully reset compute usage for namespace."
-msgstr "åå‰ç©ºé–“ã®ã‚³ãƒ³ãƒ”ューティングã®ä½¿ç”¨çŠ¶æ³ã‚’正常ã«ãƒªã‚»ãƒƒãƒˆã—ã¾ã—ãŸã€‚"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚³ãƒ³ãƒ”ューティングã®ä½¿ç”¨çŠ¶æ³ã‚’正常ã«ãƒªã‚»ãƒƒãƒˆã—ã¾ã—ãŸã€‚"
msgid "Successfully scheduled a pipeline to run. Go to the %{pipelines_link_start}Pipelines page%{pipelines_link_end} for details."
msgstr "実行ã™ã‚‹ãƒ‘イプラインをスケジュールã—ã¾ã—ãŸã€‚詳ã—ãã¯%{pipelines_link_start}パイプラインページ%{pipelines_link_end}ã‚’ã”覧ãã ã•ã„。"
@@ -46961,9 +47940,6 @@ msgstr "ブランãƒåˆ‡ã‚Šæ›¿ãˆ"
msgid "Switch branch/tag"
msgstr "ブランム/ ã‚¿ã‚°ã®åˆ‡ã‚Šæ›¿ãˆ"
-msgid "Switch to GitLab Next"
-msgstr "GitLab Next ã«åˆ‡ã‚Šæ›¿ãˆã‚‹"
-
msgid "Switch to plain text editing"
msgstr "テキスト編集ã«åˆ‡ã‚Šæ›¿ãˆã‚‹"
@@ -47234,13 +48210,22 @@ msgstr "GitLab Duo ãƒãƒ£ãƒƒãƒˆ"
msgid "TanukiBot|Give feedback"
msgstr "フィードãƒãƒƒã‚¯ã‚’与ãˆã‚‹"
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] "ソース"
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr "GitLab Duo ãƒãƒ£ãƒƒãƒˆã¨ã®é€šä¿¡ä¸­ã«ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr "フォークã¨ã¯?"
@@ -47256,21 +48241,6 @@ msgstr "対象パス"
msgid "Target branch"
msgstr "ターゲットブランãƒ"
-msgid "Target branch rule"
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«"
-
-msgid "Target branch rule created."
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«ã‚’作æˆã—ã¾ã—ãŸã€‚"
-
-msgid "Target branch rule deleted."
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«ã‚’削除ã—ã¾ã—ãŸã€‚"
-
-msgid "Target branch rule does not exist"
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«ãŒå­˜åœ¨ã—ãªã„"
-
-msgid "Target branch rules"
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«"
-
msgid "Target branch: %{target_branch}"
msgstr "ターゲットブランãƒ: %{target_branch}"
@@ -47551,6 +48521,9 @@ msgstr "AIã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸãƒ†ã‚¹ãƒˆ"
msgid "Test settings"
msgstr "テスト設定"
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr "テストケースを移動"
@@ -47744,6 +48717,9 @@ msgstr "イシュートラッカーã¯ã€ãƒ—ロジェクトを改善ã—ãŸã‚Šè§£
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "イシュートラッカーã¯ã€ãƒ—ロジェクトを改善ã—ãŸã‚Šè§£æ±ºã—ãŸã‚Šã™ã‚‹ãŸã‚ã«å¿…è¦ãªæƒ…報を追加ã™ã‚‹å ´æ‰€ã§ã™ã€‚ã“ã®ãƒ—ロジェクトã«ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’作æˆã™ã‚‹ãŸã‚ã«ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã¾ãŸã¯ã‚µã‚¤ãƒ³ã‚¤ãƒ³ã—ã¦ãã ã•ã„。"
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr "Slack通知インテグレーションã¯éžæŽ¨å¥¨ã§ã‚ã‚Šã€ä»Šå¾Œã®ãƒªãƒªãƒ¼ã‚¹ã§å‰Šé™¤ã•ã‚Œã¾ã™ã€‚Slackã‹ã‚‰é€šçŸ¥ã‚’å—ã‘å–り続ã‘ã‚‹ã«ã¯ã€ä»£ã‚ã‚Šã«GitLab for Slack appを使用ã—ã¦ãã ã•ã„。%{learn_more_link_start}詳細ã¯ã“ã¡ã‚‰%{link_end}。"
@@ -47768,6 +48744,12 @@ msgstr "クライアントシークレットを機密ã«ã§ãる場所ã§ã‚¢ãƒ—
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr "エラーãŒè§£æ±ºã•ã‚ŒãŸãŸã‚ã€é–¢é€£ã™ã‚‹ã‚¤ã‚·ãƒ¥ãƒ¼ #%{issueId} をクローズã—ã¾ã—ãŸã€‚"
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "ã“ã®ãƒ—ロジェクトã®ã“ã®ãƒ–ランãƒã«ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ‘イプライン設定ãŒã‚ã‚Šã¾ã›ã‚“。"
@@ -47786,9 +48768,6 @@ msgstr "編集ã—よã†ã¨ã—ã¦ã„るコメントã¯ã€ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚ˆ
msgid "The commit does not exist"
msgstr "コミットãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr "マージã®ç«¶åˆã®ãŸã‚ã«æ¯”較ビューãŒæ­£ç¢ºã«è¡¨ç¤ºã§ããªã„å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚"
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr "完全ãªDevOpsプラットフォーム。無é™ã®å¯èƒ½æ€§ã‚’æŒã¤ã‚¢ãƒ—リケーション。ã•ã¾ã–ã¾ãªçµ„ç¹”ãŒGitLabã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ç®¡ç†ã€CI/CDã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãªã©ã‚’活用ã—ã¦ã€ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’迅速ã«æä¾›ã—ã¦ã„ã¾ã™ã€‚"
@@ -47828,17 +48807,23 @@ msgstr "ç¾åœ¨ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã‚¸ãƒ§ãƒ–ログã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹æ¨©é™ãŒã‚
msgid "The current user is not authorized to create the pipeline schedule"
msgstr "ç¾åœ¨ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ãƒ‘イプラインã®ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr "ç¾åœ¨ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ãƒ‘イプラインã®ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«å¤‰æ•°ã‚’設定ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
msgid "The current user is not authorized to update the pipeline schedule"
msgstr "ç¾åœ¨ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ãƒ‘イプラインã®ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr "ã“ã®ãƒ‘イプライン内ã®ãƒ‡ãƒ¼ã‚¿ã¯å¤ã™ãŽã¦ã‚°ãƒ©ãƒ•ã¨ã—ã¦ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã§ãã¾ã›ã‚“。履歴データã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ã‚¸ãƒ§ãƒ–タブを確èªã—ã¦ãã ã•ã„。"
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "リリースã®æº–å‚™ãŒæ•´ã£ãŸæ—¥ä»˜ã€‚ãã‚ŒãŒæœªæ¥ã®æ—¥ä»˜ã®å ´åˆã€%{linkStart}今後ã®ãƒªãƒªãƒ¼ã‚¹%{linkEnd}ã¨ã„ã†ãƒ©ãƒ™ãƒ«ãŒä»˜ã‘られã¾ã™ã€‚"
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr "æ–°ã—ã„プロジェクトã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã® CI/CD 設定ファイルã®ãƒ‘ス。"
@@ -48047,7 +49032,7 @@ msgid "The maximum amount of time users have to set up two-factor authentication
msgstr "実施ã•ã‚Œã‚‹å‰ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ2è¦ç´ èªè¨¼ã‚’設定ã™ã‚‹å¿…è¦ãŒã‚る最大時間。"
msgid "The maximum compute minutes that jobs in a namespace can use on shared runners each month. 0 for unlimited."
-msgstr "ã“ã®åå‰ç©ºé–“内ã®ã‚¸ãƒ§ãƒ–ãŒæ¯Žæœˆå…±æœ‰ãƒ©ãƒ³ãƒŠãƒ¼ã§ä½¿ç”¨ã§ãる最大コンピューティング時間。無制é™ã®å ´åˆã¯0ã«ã—ã¾ã™ã€‚"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚¸ãƒ§ãƒ–ãŒæ¯Žæœˆå…±æœ‰ãƒ©ãƒ³ãƒŠãƒ¼ã§ä½¿ç”¨ã§ãる最大コンピューティング時間。無制é™ã®å ´åˆã¯0ã«ã—ã¾ã™ã€‚"
msgid "The maximum file size allowed is %{size}."
msgstr "許å¯ã•ã‚Œã‚‹æœ€å¤§ãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚ºã¯ %{size} ã§ã™ã€‚"
@@ -48085,6 +49070,9 @@ msgstr "CI/CD設定ファイルå。ルートディレクトリã‹ã‚‰ã®ç›¸å¯¾ã
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr "Jenkins プロジェクトã®åå‰ã€‚URLã®æœ€å¾Œã‹ã‚‰ã“ã®ãƒ—ロジェクトã«åå‰ã‚’コピーã—ã¾ã™ã€‚"
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "リãƒã‚¸ãƒˆãƒªã®ã‚¯ãƒ­ãƒ¼ãƒ³ä½œæˆæ™‚ã«GitLabã‹ã‚‰ãƒ•ã‚§ãƒƒãƒã™ã‚‹å¤‰æ›´æ•°ã€‚値をå°ã•ãã™ã‚‹ã“ã¨ã§ã€ãƒ‘イプラインã®å®Ÿè¡Œé€Ÿåº¦ã‚’上ã’ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚å„ジョブã®ã™ã¹ã¦ã®ãƒ–ランãƒã¨ã‚¿ã‚°ã‚’フェッãƒã™ã‚‹ã«ã¯ã€%{code_open}0%{code_close}ã¾ãŸã¯ç©ºç™½ã«è¨­å®šã—ã¾ã™"
@@ -48223,6 +49211,9 @@ msgstr "指定ã—ãŸã‚¿ãƒ–ã¯ç„¡åŠ¹ã§ã™ã€‚別ã®ã‚¿ãƒ–ã‚’é¸æŠžã—ã¦ãã ã•
msgid "The start date must be earlier than the end date."
msgstr "開始日時ã¯çµ‚了日時よりもå‰ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。"
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr "件åã¯æ–°ã—ã„イシューã®ã‚¿ã‚¤ãƒˆãƒ«ã¨ã—ã¦ä½¿ç”¨ã•ã‚Œã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒèª¬æ˜Žæ–‡ã¨ãªã‚Šã¾ã™ã€‚%{quickActionsLinkStart}クイックアクション%{quickActionsLinkEnd}㨠%{markdownLinkStart}Markdown%{markdownLinkEnd} ã«ã‚ˆã‚‹ã‚¹ã‚¿ã‚¤ãƒªãƒ³ã‚°ãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã™ã€‚"
@@ -48274,15 +49265,12 @@ msgstr "脆弱性ãŒæ¤œå‡ºã•ã‚Œãªããªã‚Šã¾ã—ãŸã€‚ステータスを変更
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr "脆弱性ãŒæ¤œå‡ºã•ã‚Œãªããªã‚Šã¾ã—ãŸã€‚ステータスを変更ã™ã‚‹å‰ã«ã€è„†å¼±æ€§ã®ç·©å’Œã¾ãŸã¯å›žé¿ç­–ãŒå®Ÿæ–½ã•ã‚Œã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
+msgid "There are currently no merge request branch targets"
+msgstr ""
+
msgid "There are currently no mirrored repositories."
msgstr "ç¾åœ¨ã€ãƒŸãƒ©ãƒ¼ãƒªãƒ³ã‚°ã•ã‚ŒãŸãƒªãƒã‚¸ãƒˆãƒªã¯ã‚ã‚Šã¾ã›ã‚“。"
-msgid "There are currently no target branch rules"
-msgstr "ç¾åœ¨ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãƒ–ランãƒãƒ«ãƒ¼ãƒ«ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-msgid "There are merge conflicts"
-msgstr "マージã®ç«¶åˆãŒã‚ã‚Šã¾ã™"
-
msgid "There are no GPG keys associated with this account."
msgstr "ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«ç´ä»˜ã„ã¦ã„ã‚‹GPGキーã¯ã‚ã‚Šã¾ã›ã‚“。"
@@ -48329,7 +49317,7 @@ msgid "There are no commits yet."
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 "ã“ã®GitLabインスタンス用ã«è¨­å®šã•ã‚ŒãŸã‚«ã‚¹ã‚¿ãƒ ãƒ—ロジェクトテンプレートã¯ã‚ã‚Šã¾ã›ã‚“。カスタムプロジェクトテンプレートã¯GitLabã®ç®¡ç†è€…エリアã§æœ‰åŠ¹ã«ã§ãã¾ã™ã€‚設定ã™ã‚‹ã«ã¯ã€GitLabインスタンス管ç†è€…ã«é€£çµ¡ã—ã¦ãã ã•ã„。"
msgid "There are no issues to show"
msgstr "表示ã™ã‚‹ã‚¤ã‚·ãƒ¥ãƒ¼ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -48451,6 +49439,9 @@ msgstr "プロジェクトã®ã‚¿ã‚°ã®å–得中ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚
msgid "There was a problem fetching project users."
msgstr "プロジェクトã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®å–得中ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr "最近ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®å–得中ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
@@ -48646,6 +49637,9 @@ msgstr "ã“れらã®ä¾‹ã¯ã€ãƒ‘イプライントリガートークンを使用
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr "既存ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã«åŒæ§˜ã®ã‚¿ã‚¤ãƒˆãƒ«ãŒã‚ã‚Šã¾ã™ã€‚別ã®ä¼¼ãŸã‚ˆã†ãªã‚¤ã‚·ãƒ¥ãƒ¼ã‚’作æˆã™ã‚‹ã‚ˆã‚Šã€ãã“ã«ã‚³ãƒ¡ãƒ³ãƒˆã™ã‚‹æ–¹ãŒè‰¯ã„ã§ã™ã€‚"
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr "ã“れらã®Runnerã¯ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ—ロジェクト間ã§å…±æœ‰ã•ã‚Œã¾ã™ã€‚"
@@ -48736,9 +49730,15 @@ msgstr "ã“ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã¯ä½•åº¦ã‚‚リクエストã•ã‚Œã¦ã„ã¾ã™ã€‚後
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr "ã“ã®æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€æœ€å¤§è¨±å®¹æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚ºã®%{size_limit}を超ãˆãªã„よã†ã«åˆ‡ã‚Šæ¨ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚%{written_count}ã®%{count}ã®%{issuables}ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚é¸æŠžã—ãŸ%{issuables}を絞り込んã§å†ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ã‚’検討ã—ã¦ãã ã•ã„。"
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr "ã“ã®æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€æœ€å¤§è¨±å®¹æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚ºã®%{size_limit}を超ãˆãªã„よã†ã«åˆ‡ã‚Šæ¨ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚%{total_count} %{object_type}ã®%{written_count}ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚%{object_type}ã®é¸æŠžã‚’絞り込んã§å†ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ã‚’検討ã—ã¦ãã ã•ã„。"
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "自己言åŠçš„ãªãƒ–ロックã§ã™ã€‚"
@@ -48775,6 +49775,9 @@ msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã¯GitLab UIã§ä½œæˆã•ã‚Œã€GitLab検証済ã¿ã®ç½²
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã¯%{strong_open}検証済ã¿%{strong_close}ã®ç½²åã§ã‚µã‚¤ãƒ³ã•ã‚Œã¦ãŠã‚Šã€ã“ã®ã‚³ãƒŸãƒƒã‚¿ãƒ¼ã®ãƒ¡ãƒ¼ãƒ«ã¯åŒã˜ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚‚ã®ã§ã‚ã‚‹ã“ã¨ãŒæ¤œè¨¼ã•ã‚Œã¦ã„ã¾ã™ã€‚"
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã¯åˆ¥ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ¤œè¨¼æ¸ˆã¿ç½²åã§ã‚µã‚¤ãƒ³ã•ã‚Œã¦ã„ã¾ã™ã€‚"
@@ -48967,9 +49970,6 @@ msgstr "ã“ã‚Œã¯ã‚ãªãŸã®ãŸã‚ã«ç”Ÿæˆã•ã‚ŒãŸãƒ—ライベートメール
msgid "This is a security log of authentication events involving your account."
msgstr "ã“ã‚Œã¯ã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«é–¢ã‚ã‚‹èªè¨¼ã‚¤ãƒ™ãƒ³ãƒˆã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒ­ã‚°ã§ã™ã€‚"
-msgid "This is a self-managed instance of GitLab."
-msgstr "ã“ã‚Œã¯è‡ªå·±ç®¡ç†ã•ã‚ŒãŸã€GitLabã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã§ã™ã€‚"
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr "ã“ã‚Œã¯GitLabIncubation EngineeringãŒé–‹ç™ºã—ãŸå®Ÿé¨“çš„ãªæ©Ÿèƒ½ã§ã™ã€‚"
@@ -49114,12 +50114,6 @@ msgstr "é¸æŠžã—ãŸãƒ•ã‚©ãƒ¼ã‚¯ã¯ä»–ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’æŒã¤ã“ã¨ãŒã§ãã‚‹
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "ã¤ã¾ã‚Šã€ç©ºã®ãƒªãƒã‚¸ãƒˆãƒªã‚’作æˆã¾ãŸã¯æ—¢å­˜ãƒªãƒã‚¸ãƒˆãƒªã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã‚’è¡Œã‚ãªã‘ã‚Œã°ã€ã‚³ãƒ¼ãƒ‰ã‚’プッシュã§ãã¾ã›ã‚“。"
-msgid "This merge request branch is protected from force push."
-msgstr "ã“ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆãƒ–ランãƒã¯å¼·åˆ¶ãƒ—ッシュã‹ã‚‰ä¿è­·ã•ã‚Œã¦ã„ã¾ã™ã€‚"
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr "競åˆãŒã‚ã‚‹ã®ã§ã€ã“ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯rebaseã§ãã¾ã›ã‚“。"
-
msgid "This merge request does not have accessibility reports"
msgstr "ã“ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã¯ã‚¢ã‚¯ã‚»ã‚·ãƒ“リティレãƒãƒ¼ãƒˆãŒã‚ã‚Šã¾ã›ã‚“"
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "ã“ã®ãƒ—ロセスã¯ã€ãƒ—ロジェクトリãƒã‚¸ãƒˆãƒªã¨é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’削除ã—ã¾ã™ã€‚"
@@ -49809,9 +50807,6 @@ msgstr "%{project_name}ã«å‰Šé™¤ã®äºˆå®šãŒãªã„ã“ã¨ã‚’確èªã™ã‚‹ã«ã¯ã€
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr "個人的ãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ãŒæãªã‚ã‚Œãªã„よã†ã«ã™ã‚‹ãŸã‚ã«ã€%{group_name}ã«é–¢é€£ã™ã‚‹äº‹æŸ„ã«é™ã‚Šã€ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’使用ã—ã¦ãã ã•ã„。"
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr "個人的ãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®æ失を防ããŸã‚ã«ã€ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯%{group_name}ã«é–¢é€£ã™ã‚‹å•é¡Œã«ã®ã¿ä½¿ç”¨ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr "ã“れらã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã„ãšã‚Œã‹ã®æ™‚点ã§ã“ã®ãƒ—ロジェクトã®ãƒªãƒã‚¸ãƒˆãƒªã®çŠ¶æ…‹ã‚’見ã¤ã‘ã‚‹ã«ã¯ã€%{link_start}ã‚¿ã‚°%{link_end}ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。"
@@ -49855,6 +50850,9 @@ msgstr "ã“ã®ãƒ—ロジェクトã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€%{link_to_wiki} ã‚’ã
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr "ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¨ãã®ã‚µãƒ–グループãŠã‚ˆã³ãƒ—ロジェクトã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ¡ãƒ³ãƒãƒ¼ã®ã‚·ãƒ¼ãƒˆã‚’管ç†ã™ã‚‹ã«ã¯ã€%{link_start}使用割り当ã¦ãƒšãƒ¼ã‚¸%{link_end}ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ãã ã•ã„。"
+msgid "To merge, either the title or description must reference a Jira issue."
+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インストールã‹ã‚‰ã“ã®ãƒ—ロジェクトã«ç§»å‹•ã¾ãŸã¯ã‚³ãƒ”ーã™ã‚‹ã«ã¯ã€å…ƒã®ãƒ—ロジェクトã®è¨­å®šãƒšãƒ¼ã‚¸ã«ç§»å‹•ã—ã€ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’生æˆã—ã¦ã“ã“ã«ã‚¢ãƒƒãƒ—ロードã—ã¾ã™ã€‚"
@@ -49960,8 +50958,8 @@ msgstr "To DoアイテムãŒæ­£å¸¸ã«å®Œäº†ã¨ãƒžãƒ¼ã‚¯ã•ã‚Œã¾ã—ãŸã€‚"
msgid "Today"
msgstr "今日"
-msgid "Todos count"
-msgstr "Todos件数"
+msgid "Todos| What actions create to-do items?"
+msgstr ""
msgid "Todos|Added"
msgstr "追加"
@@ -49975,9 +50973,6 @@ msgstr "ä»»æ„ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³"
msgid "Todos|Any Type"
msgstr "ä»»æ„ã®ã‚¿ã‚¤ãƒ—"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr "ã‚„ã‚‹ã¹ãã“ã¨ã‚’ãŠæŽ¢ã—ã§ã™ã‹? %{strongStart}%{openIssuesLinkStart}未解決ã®ã‚¤ã‚·ãƒ¥ãƒ¼%{openIssuesLinkEnd}を確èªã™ã‚‹%{strongEnd}ã€%{strongStart}%{mergeRequestLinkStart}マージリクエスト%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}ã«è²¢çŒ®ã™ã‚‹ã€ã¾ãŸã¯ã‚³ãƒ¡ãƒ³ãƒˆã§ã ã‚Œã‹ã®åå‰ã‚’挙ã’ã¦ã€æ–°ã—ã„To Doアイテムを自動的ã«å‰²ã‚Šå½“ã¦ã¾ã—ょã†ã€‚"
-
msgid "Todos|Assigned"
msgstr "割り当ã¦æ¸ˆ"
@@ -50035,6 +51030,9 @@ msgstr "メンション済ã¿"
msgid "Todos|Merge request"
msgstr "マージリクエスト"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "To-Doリストã«ã¯ä½•ã‚‚ã‚ã‚Šã¾ã›ã‚“。よãã§ãã¾ã—ãŸï¼"
@@ -50071,6 +51069,9 @@ msgstr "Todoを追加ã—ã¾ã—ãŸ"
msgid "Todos|has requested access to %{what} %{which}"
msgstr "%{what}%{which}ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’リクエストã—ã¾ã—ãŸ"
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr "%{who}をメンションã—ã¾ã—ãŸ"
@@ -50113,8 +51114,8 @@ msgstr "コミットリストを切り替ãˆã‚‹"
msgid "Toggle details"
msgstr "詳細を切り替ãˆã‚‹"
-msgid "Toggle emoji award"
-msgstr "絵文字リアクションをトグル"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr "ファイルブラウザを切り替ãˆ"
@@ -50125,9 +51126,6 @@ msgstr "フォーカスモードã®ON/OFF切替"
msgid "Toggle keyboard shortcuts help dialog"
msgstr "キーボードショートカットã®ãƒ˜ãƒ«ãƒ—ダイアログを切り替ãˆã‚‹"
-msgid "Toggle navigation"
-msgstr "案内ã®åˆ‡ã‚Šæ›¿ãˆ"
-
msgid "Toggle project select"
msgstr "プロジェクトã®é¸æŠžã®åˆ‡ã‚Šæ›¿ãˆ"
@@ -50143,11 +51141,11 @@ msgstr "パフォーマンスãƒãƒ¼ã®åˆ‡ã‚Šæ›¿ãˆ"
msgid "Toggle the navigation sidebar"
msgstr "ナビゲーションサイドãƒãƒ¼ã®åˆ‡ã‚Šæ›¿ãˆ"
-msgid "Toggled :%{name}: emoji award."
-msgstr ":%{name}: 絵文字リアクションをトグル。"
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr ":%{name}: 絵文字リアクションをトグル。"
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr "トークン"
@@ -50188,18 +51186,6 @@ msgstr "ユーザーãŒå¤šã™ãŽã¾ã™ã€‚クイックアクションã¯æœ€å¤§%{m
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "探索"
-
-msgid "TopNav|Go back"
-msgstr "戻る"
-
-msgid "TopNav|Switch to"
-msgstr "切り替ãˆ"
-
-msgid "TopNav|Your dashboards"
-msgstr "ダッシュボード"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "トピック%{source_topic}ã¯ãƒˆãƒ”ック%{target_topic} ã«æ­£å¸¸ã«ãƒžãƒ¼ã‚¸ã•ã‚Œã¾ã—ãŸã€‚"
@@ -50267,6 +51253,12 @@ msgstr "åˆè¨ˆã‚¹ãƒ‘ン"
msgid "Total test time for all commits/merges"
msgstr "ã™ã¹ã¦ã®ã‚³ãƒŸãƒƒãƒˆ / マージã®åˆè¨ˆãƒ†ã‚¹ãƒˆæ™‚é–“"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "全ユーザー"
@@ -50291,8 +51283,28 @@ msgstr "トレース開始"
msgid "Tracing"
msgstr "トレーシング"
-msgid "Tracing|%{ms} ms"
-msgstr "%{ms} ミリ秒"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
+msgstr ""
+
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
msgid "Tracing|Attribute"
msgstr "属性"
@@ -50300,9 +51312,6 @@ msgstr "属性"
msgid "Tracing|Attributes"
msgstr ""
-msgid "Tracing|Check again"
-msgstr "ã‚‚ã†ä¸€åº¦ãƒã‚§ãƒƒã‚¯"
-
msgid "Tracing|Date"
msgstr "日付"
@@ -50360,12 +51369,12 @@ msgstr "éŽåŽ» 7 æ—¥"
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
-msgstr "表示ã™ã‚‹ãƒˆãƒ¬ãƒ¼ã‚¹ã¯ã‚ã‚Šã¾ã›ã‚“。"
-
msgid "Tracing|Operation"
msgstr "æ“作"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
+msgstr ""
+
msgid "Tracing|Resource attributes"
msgstr ""
@@ -50379,7 +51388,7 @@ msgid "Tracing|Time range"
msgstr "時間範囲"
msgid "Tracing|Timestamp"
-msgstr ""
+msgstr "追跡|タイムスタンプ"
msgid "Tracing|Toggle child spans"
msgstr ""
@@ -50484,7 +51493,7 @@ msgid "TransferProject|Project with same name or path in target namespace alread
msgstr "移動先ã®åå‰ç©ºé–“ã«ã€åŒã˜åå‰ã¾ãŸã¯åŒã˜ãƒ‘スをæŒã¤ãƒ—ロジェクトãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™"
msgid "TransferProject|Root namespace can't be updated if the project has NPM packages scoped to the current root level namespace."
-msgstr "プロジェクトã«ç¾åœ¨ã®ãƒ«ãƒ¼ãƒˆãƒ¬ãƒ™ãƒ«ã®åå‰ç©ºé–“をスコープã¨ã™ã‚‹NPMパッケージãŒã‚ã‚‹å ´åˆã€ãƒ«ãƒ¼ãƒˆåå‰ç©ºé–“ã¯æ›´æ–°ã§ãã¾ã›ã‚“。"
+msgstr "プロジェクトã«ç¾åœ¨ã®ãƒ«ãƒ¼ãƒˆãƒ¬ãƒ™ãƒ«ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚’スコープã¨ã™ã‚‹NPMパッケージãŒã‚ã‚‹å ´åˆã€ãƒ«ãƒ¼ãƒˆãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¯æ›´æ–°ã§ãã¾ã›ã‚“。"
msgid "TransferProject|You don't have permission to transfer projects into that namespace."
msgstr "ãã®åå‰ç©ºé–“ã«ãƒ—ロジェクトを転é€ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
@@ -50498,27 +51507,6 @@ msgstr "ツリービュー"
msgid "Trending"
msgstr "トレンド"
-msgid "TrialBenefits|Container Scanning"
-msgstr "コンテナスキャン"
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr "動的アプリケーションセキュリティテスト"
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr "マルãƒãƒ¬ãƒ™ãƒ«ã®ã‚¨ãƒ”ック"
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr "セキュリティダッシュボード"
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr "é™çš„アプリケーションセキュリティテスト"
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr "推奨レビュアー"
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr "脆弱性管ç†"
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr "GitLab Ultimateã®ç„¡æ–™ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã‚’始ã‚ã¾ã—ょã†"
@@ -50534,29 +51522,20 @@ msgstr "%{planName}試用版"
msgid "Trials|Compare all plans"
msgstr "ã™ã¹ã¦ã®ãƒ—ランを比較"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr "30日間ã®ç„¡æ–™ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã®åˆ©ç”¨é–‹å§‹ãŠã‚ã§ã¨ã†ã”ã–ã„ã¾ã™!"
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "GitLab Ultimateã®è©¦ç”¨ç‰ˆã‚’開始ã™ã‚‹ã«ã¯ã€æ–°ã—ã„グループを作æˆã—ã¦ãã ã•ã„。"
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr "%{daysUsed}æ—¥ã‚/%{duration}"
+msgid "Trials|Don't lose out on additional GitLab features"
+msgstr ""
+
msgid "Trials|Looking to do more with GitLab?"
msgstr "GitLabã§ã•ã‚‰ã«æ´»ç”¨ã—ã¾ã™ã‹ï¼Ÿ"
-msgid "Trials|Trials benefits"
-msgstr "試用版ã®ç‰¹å…¸"
-
-msgid "Trials|Upgrade your plan for more security features"
-msgstr "より多ãã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£æ©Ÿèƒ½ã®ãŸã‚ã«ãƒ—ランをアップグレード"
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
-msgstr "GitLab Ultimate を使用ã™ã‚‹ã¨ã€ã‚¢ãƒ—リケーションã®è„†å¼±æ€§ã‚’検出ã—ã¦å¯¾å‡¦ã§ãã¾ã™ã€‚"
-
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
-msgstr "GitLab Ultimateã§ã¯ã€æ¬¡ã®æ©Ÿèƒ½ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
+msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
msgstr "試用版を新ã—ã„グループã¾ãŸã¯æ—¢å­˜ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«é©ç”¨ã§ãã¾ã™ã€‚"
@@ -50587,7 +51566,7 @@ msgid "Trial|To activate your trial, we need additional details from you."
msgstr "試用版を有効ã«ã™ã‚‹ã«ã¯ã€è¿½åŠ æƒ…å ±ãŒå¿…è¦ã§ã™ã€‚"
msgid "Trial|Your GitLab Ultimate trial lasts for 30 days, but you can keep your free GitLab account forever. We just need some additional information to activate your trial."
-msgstr "GitLab Ultimate ã®ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã¯ 30 日間ã§ã™ãŒã€ç„¡æ–™ã® GitLab アカウントã¯ã„ã¤ã¾ã§ã‚‚ãŠä½¿ã„ã„ãŸã ã‘ã¾ã™ã€‚トライアルを有効ã«ã™ã‚‹ã«ã¯ã€ã„ãã¤ã‹ã®è¿½åŠ æƒ…報を入力ã—ã¦ãã ã•ã„。"
+msgstr "GitLab Ultimate ã®ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã¯ 30 日間ã§ã™ãŒã€ãƒ•ãƒªãƒ¼ã® GitLab アカウントã¯ç„¡æœŸé™ã§ãŠä½¿ã„ã„ãŸã ã‘ã¾ã™ã€‚トライアルを有効ã«ã™ã‚‹ãŸã‚ã€ä»¥ä¸‹ã®æƒ…報を入力ã—ã¦ãã ã•ã„。"
msgid "Trigger"
msgstr "トリガー"
@@ -50697,12 +51676,6 @@ msgstr "無効ã«ã™ã‚‹"
msgid "Turn on"
msgstr "有効ã«ã™ã‚‹"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr "2è¦ç´ èªè¨¼"
@@ -50778,15 +51751,30 @@ msgstr "URLã¯å¿…è¦ãªå ´åˆãƒ‘ーセントエンコードã•ã‚Œã¦ã„ãªã‘ã‚Œ
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "URL 㯠%{codeStart}http://%{codeEnd}ã€%{codeStart}https://%{codeEnd}ã€ã¾ãŸã¯ %{codeStart}ftp://%{codeEnd} ã®ã„ãšã‚Œã‹ã§é–‹å§‹ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr "メトリクスダッシュボードã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼é …ç›®ã‹ã‚‰ãƒªãƒ³ã‚¯ã™ã‚‹ Grafana インスタンス㮠URL。"
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr "外部スパムãƒã‚§ãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ãƒã‚¤ãƒ³ãƒˆã®URL"
msgid "URL of the external storage to serve the repository static objects."
msgstr "リãƒã‚¸ãƒˆãƒªã®é™çš„オブジェクトをæä¾›ã™ã‚‹ãŸã‚ã®å¤–部ストレージ㮠URL。"
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL ã¾ãŸã¯ リクエスト ID"
@@ -50952,9 +51940,18 @@ msgstr "パッケージã®ä¿è­·ãƒ«ãƒ¼ãƒ«ã‚’作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“
msgid "Unauthorized to create an environment"
msgstr "環境を作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr "環境を更新ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -51030,8 +52027,8 @@ msgstr "ä¸æ˜Žãªå¿œç­”テキスト"
msgid "Unknown user"
msgstr "ä¸æ˜Žãªãƒ¦ãƒ¼ã‚¶ãƒ¼"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
-msgstr "GitLabã¨æ›¸é¢ã§åˆ¥æ®µã®åˆæ„ãŒãªã„é™ã‚Šã€ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’アップロードをクリックã™ã‚‹ã“ã¨ã§ã€GitLabã®ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ä½¿ç”¨ãŒ%{eula_link_start}利用è¦ç´„%{eula_link_end}ã®å¯¾è±¡ã¨ãªã‚‹ã“ã¨ã«åŒæ„ã™ã‚‹ã‚‚ã®ã¨ã—ã¾ã™ã€‚"
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr ""
msgid "Unlimited"
msgstr "無制é™"
@@ -51043,10 +52040,10 @@ msgid "UnlimitedMembersDuringTrialAlert|Explore paid plans"
msgstr "有料プランを確èªã™ã‚‹"
msgid "UnlimitedMembersDuringTrialAlert|Get the most out of your trial with space for more members"
-msgstr "ã•ã‚‰ã«å¤šãã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’招待ã—ã¦ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã‚’最大é™ã«æ´»ç”¨ã—よã†"
+msgstr "ã•ã‚‰ã«å¤šãã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’招待ã—ã¦ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ã‚’最大é™ã«æ´»ç”¨ã—ã¾ã—ょã†"
msgid "UnlimitedMembersDuringTrialAlert|Invite more members"
-msgstr "より多ãã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’招待"
+msgstr "ä»–ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’招待ã™ã‚‹"
msgid "Unlink"
msgstr "リンク解除"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr "ディスカッションã®ãƒ­ãƒƒã‚¯ã‚’解除ã™ã‚‹ã€‚"
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "到é”ä¸å¯èƒ½"
@@ -51234,6 +52234,9 @@ msgstr "キャンセル"
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "プロジェクトåを変更ã§ãã¾ã›ã‚“。プロジェクトã«ã‚³ãƒ³ãƒ†ãƒŠãƒ¬ã‚¸ã‚¹ãƒˆãƒªã‚¿ã‚°ãŒå«ã¾ã‚Œã¦ã„ã‚‹ã‹ã‚‰ã§ã™ã€‚"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr "デフォルトã®ãƒ–ランãƒã‚’設定ã§ãã¾ã›ã‚“"
@@ -51355,10 +52358,10 @@ msgid "UsageQuotas|An error occurred loading the transfer data. Please refresh t
msgstr "転é€ãƒ‡ãƒ¼ã‚¿ã®èª­ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ページを更新ã—ã¦ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。"
msgid "UsageQuotas|Container Registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total."
-msgstr "コンテナレジストリストレージã®çµ±è¨ˆæƒ…å ±ã¯ã€ãƒ—ロジェクトã®åˆè¨ˆã‚’計算ã™ã‚‹ãŸã‚ã«ã¯ä½¿ç”¨ã•ã‚Œã¾ã›ã‚“。ã™ã¹ã¦ã®ä¸€æ„ãªã‚³ãƒ³ãƒ†ãƒŠã®åˆè¨ˆãŒåå‰ç©ºé–“ã®åˆè¨ˆã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã«è¿½åŠ ã•ã‚Œã‚‹ã€åå‰ç©ºé–“ã®ã‚³ãƒ³ãƒ†ãƒŠã®é‡è¤‡ã‚’排除ã—ãŸå¾Œã«ã€ãƒ—ロジェクトã®åˆè¨ˆã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’計算ã—ã¾ã™ã€‚"
+msgstr "コンテナレジストリストレージã®çµ±è¨ˆæƒ…å ±ã¯ã€ãƒ—ロジェクトã®åˆè¨ˆã‚’計算ã™ã‚‹ãŸã‚ã«ã¯ä½¿ç”¨ã•ã‚Œã¾ã›ã‚“。ã™ã¹ã¦ã®ä¸€æ„ãªã‚³ãƒ³ãƒ†ãƒŠã®åˆè¨ˆãŒãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®åˆè¨ˆã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã«è¿½åŠ ã•ã‚Œã‚‹ã€ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚³ãƒ³ãƒ†ãƒŠã®é‡è¤‡ã‚’排除ã—ãŸå¾Œã«ã€ãƒ—ロジェクトã®åˆè¨ˆã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’計算ã—ã¾ã™ã€‚"
msgid "UsageQuotas|Namespace transfer data used"
-msgstr "使用済ã¿ã®åå‰ç©ºé–“転é€ãƒ‡ãƒ¼ã‚¿"
+msgstr "使用済ã¿ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹è»¢é€ãƒ‡ãƒ¼ã‚¿"
msgid "UsageQuota|%{linkStart}Shared runners%{linkEnd} are disabled, so there are no limits set on pipeline usage"
msgstr "%{linkStart}共有ランナー%{linkEnd} ã¯ç„¡åŠ¹ã«ãªã£ã¦ã„ã‚‹ãŸã‚ã€ãƒ‘イプラインã®ä½¿ç”¨ã«åˆ¶é™ã¯è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -51367,13 +52370,16 @@ msgid "UsageQuota|%{linkTitle} help link"
msgstr "%{linkTitle} ヘルプリンク"
msgid "UsageQuota|%{percentageRemaining}%% namespace storage remaining."
-msgstr "åå‰ç©ºé–“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®%{percentageRemaining}%%ãŒæ®‹ã£ã¦ã„ã¾ã™ã€‚"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®%{percentageRemaining}%%ãŒæ®‹ã£ã¦ã„ã¾ã™ã€‚"
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr "購入ã—ãŸã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸å®¹é‡ãŒ%{percentageRemaining}%% 残ã£ã¦ã„ã¾ã™ã€‚"
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
-msgstr "é–“ã‚‚ãªã%{storage_limit_link_start}åå‰ç©ºé–“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸åˆ¶é™%{link_end}ãŒ%{strong_start}%{namespace_name}%{strong_end}ã®åå‰ç©ºé–“ã«é©ç”¨ã•ã‚Œã¾ã™ã€‚%{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
+msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
msgstr ""
@@ -51387,9 +52393,6 @@ msgstr "追加ã®ã‚³ãƒ³ãƒ”ューティング時間を購入"
msgid "UsageQuota|Buy storage"
msgstr "ストレージを購入"
-msgid "UsageQuota|Code Suggestions"
-msgstr "コードã®æ案"
-
msgid "UsageQuota|Code packages and container images."
msgstr "コードパッケージã¨ã‚³ãƒ³ãƒ†ãƒŠã‚¤ãƒ¡ãƒ¼ã‚¸ã€‚"
@@ -51411,15 +52414,15 @@ msgstr "コンテナレジストリ"
msgid "UsageQuota|Dependency proxy"
msgstr "ä¾å­˜ãƒ—ロキシ"
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
msgid "UsageQuota|Filter charts by year"
msgstr "ãƒãƒ£ãƒ¼ãƒˆã‚’年別ã«ãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°ã™ã‚‹"
msgid "UsageQuota|Filter projects data by month"
msgstr "プロジェクトã®ãƒ‡ãƒ¼ã‚¿ã‚’月別ã«çµžã‚Šè¾¼ã¿ã¾ã™"
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "ストレージ制é™ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€%{faq_link_start}FAQ%{link_end}ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-
msgid "UsageQuota|Git repository."
msgstr "Gitリãƒã‚¸ãƒˆãƒª"
@@ -51450,23 +52453,23 @@ msgstr "使用割り当ã¦ã®è©³ç´°ã«ã¤ã„ã¦"
msgid "UsageQuota|Learn more about usage quotas."
msgstr "使用クォータã®è©³ç´°ã«ã¤ã„ã¦ã€‚"
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
-msgstr "é »ç¹ã«ã‚¢ã‚¯ã‚»ã‚¹ã•ã‚Œã‚‹upstream Dockerイメージã«ä½¿ç”¨ã•ã‚Œã‚‹ãƒ­ãƒ¼ã‚«ãƒ«ãƒ—ロキシ。%{linkStart}詳細情報%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
+msgstr ""
msgid "UsageQuota|Month"
msgstr "月"
msgid "UsageQuota|Namespace entities"
-msgstr "åå‰ç©ºé–“ã®å®Ÿä½“"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®å®Ÿä½“"
msgid "UsageQuota|Namespace overview"
-msgstr "åå‰ç©ºé–“ã®æ¦‚è¦"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®æ¦‚è¦"
msgid "UsageQuota|Namespace storage used"
msgstr "使用済ã¿ã®åå‰ç©ºé–“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸"
msgid "UsageQuota|Namespace total storage represents the sum of storage consumed by all projects, Container Registry, and Dependency Proxy."
-msgstr "åå‰ç©ºé–“ã®åˆè¨ˆã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã¯ã€ã™ã¹ã¦ã®ãƒ—ロジェクトã€ã‚³ãƒ³ãƒ†ãƒŠãƒ¬ã‚¸ã‚¹ãƒˆãƒªã€ãŠã‚ˆã³ä¾å­˜é–¢ä¿‚プロキシã«ã‚ˆã£ã¦ä½¿ç”¨ã•ã‚Œã‚‹ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®åˆè¨ˆã‚’示ã—ã¦ã„ã¾ã™ã€‚"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®åˆè¨ˆã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã¯ã€ã™ã¹ã¦ã®ãƒ—ロジェクトã€ã‚³ãƒ³ãƒ†ãƒŠãƒ¬ã‚¸ã‚¹ãƒˆãƒªã€ãŠã‚ˆã³ä¾å­˜é–¢ä¿‚プロキシã«ã‚ˆã£ã¦ä½¿ç”¨ã•ã‚Œã‚‹ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®åˆè¨ˆã‚’示ã—ã¦ã„ã¾ã™ã€‚"
msgid "UsageQuota|No compute usage data available."
msgstr "利用å¯èƒ½ãªã‚³ãƒ³ãƒ”ューティング使用状æ³ãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚Šã¾ã›ã‚“。"
@@ -51489,7 +52492,7 @@ msgstr "コンテナレジストリストレージサイズãŒåŒæœŸæŽ¨å®šã«ã¯
msgid "UsageQuota|Product analytics"
msgstr "製å“分æž"
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr "パイプラインã®çµ±è¨ˆæƒ…å ±ã®å–得中ã«ã€å•é¡ŒãŒç™ºç”Ÿã—ã¾
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr "プロジェクトストレージã®çµ±è¨ˆæƒ…å ±ã®å–得中ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr "使用詳細ã®èª­ã¿è¾¼ã¿ä¸­ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-
msgid "UsageQuota|Storage"
msgstr "ストレージ"
@@ -51544,10 +52544,10 @@ msgid "UsageQuota|The chart and the table below show usage for %{month} %{year}"
msgstr "グラフã¨ä¸‹ã®è¡¨ã¯%{month}%{year}ã®ä½¿ç”¨çŠ¶æ³ã‚’示ã—ã¦ã„ã¾ã™"
msgid "UsageQuota|The namespace is currently using %{strong_start}%{used_storage}%{strong_end} of namespace storage. Group owners can view namespace storage usage and purchase more from %{strong_start}%{usage_quotas_nav_instruction}%{strong_end}. %{docs_link_start}How can I manage my storage%{link_end}?"
-msgstr "ã“ã®åå‰ç©ºé–“ã¯ç¾åœ¨ã€%{strong_start}%{used_storage}%{strong_end}ã®åå‰ç©ºé–“ストレージを使用ã—ã¦ã„ã¾ã™ã€‚グループã®ã‚ªãƒ¼ãƒŠãƒ¼ã¯åå‰ç©ºé–“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ä½¿ç”¨é‡ã‚’確èªã§ãã€%{strong_start}%{usage_quotas_nav_instruction}%{strong_end}ã‹ã‚‰è¿½åŠ è³¼å…¥ã§ãã¾ã™ã€‚%{docs_link_start}ストレージをã©ã®ã‚ˆã†ã«ç®¡ç†ã™ã‚Œã°ã‚ˆã„ã§ã™ã‹%{link_end}?"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¯ç¾åœ¨ã€%{strong_start}%{used_storage}%{strong_end}ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’使用ã—ã¦ã„ã¾ã™ã€‚グループã®ã‚ªãƒ¼ãƒŠãƒ¼ã¯ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ä½¿ç”¨é‡ã‚’確èªã§ãã€%{strong_start}%{usage_quotas_nav_instruction}%{strong_end}ã‹ã‚‰è¿½åŠ è³¼å…¥ã§ãã¾ã™ã€‚%{docs_link_start}ストレージをã©ã®ã‚ˆã†ã«ç®¡ç†ã™ã‚Œã°ã‚ˆã„ã§ã™ã‹%{link_end}?"
msgid "UsageQuota|The namespace is currently using %{strong_start}%{used_storage}%{strong_end} of namespace storage. View and manage your usage from %{strong_start}%{usage_quotas_nav_instruction}%{strong_end}. %{docs_link_start}Learn more%{link_end} about how to reduce your storage."
-msgstr "åå‰ç©ºé–“ã¯ç¾åœ¨ã€åå‰ç©ºé–“ストレージã®%{strong_start}%{used_storage}%{strong_end}を使用ã—ã¦ã„ã¾ã™ã€‚%{strong_start}%{usage_quotas_nav_instruction}%{strong_end}ã®ä½¿ç”¨çŠ¶æ³ã‚’表示ãŠã‚ˆã³ç®¡ç†ã—ã¾ã™ã€‚ストレージを削減ã™ã‚‹æ–¹æ³•ã®%{docs_link_start}詳細ã«ã¤ã„ã¦%{link_end}ã¯ã“ã¡ã‚‰ã‚’ã”覧ãã ã•ã„。"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¯ç¾åœ¨ã€ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®%{strong_start}%{used_storage}%{strong_end}を使用ã—ã¦ã„ã¾ã™ã€‚%{strong_start}%{usage_quotas_nav_instruction}%{strong_end}ã®ä½¿ç”¨çŠ¶æ³ã‚’表示ãŠã‚ˆã³ç®¡ç†ã—ã¾ã™ã€‚ストレージを削減ã™ã‚‹æ–¹æ³•ã®%{docs_link_start}詳細ã«ã¤ã„ã¦%{link_end}ã¯ã“ã¡ã‚‰ã‚’ã”覧ãã ã•ã„。"
msgid "UsageQuota|This namespace has %{planLimit} of storage."
msgstr ""
@@ -51556,7 +52556,7 @@ msgid "UsageQuota|This namespace has no projects which used shared runners in th
msgstr "ã“ã®åå‰ç©ºé–“ã«ã¯ã€ç¾åœ¨ã®æœŸé–“ã«å…±æœ‰Runnerを使用ã—ãŸãƒ—ロジェクトãŒã‚ã‚Šã¾ã›ã‚“"
msgid "UsageQuota|This namespace is under project-level limits, so only repository and LFS storage usage above the limit included in the plan is counted as excess storage. You can increase excess storage limit by purchasing storage packages."
-msgstr "ã“ã®åå‰ç©ºé–“ã¯ãƒ—ロジェクトレベルã®åˆ¶é™ä¸‹ã«ã‚ã‚‹ãŸã‚ã€ãƒ—ランã®åˆ¶é™ã‚’超ãˆã‚‹ãƒªãƒã‚¸ãƒˆãƒªã¨LFSストレージã®ä½¿ç”¨é‡ã®ã¿ãŒè¶…éŽã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã¨ã—ã¦ã‚«ã‚¦ãƒ³ãƒˆã•ã‚Œã¾ã™ã€‚ ストレージパッケージを購入ã—ã¦ã€å®¹é‡åˆ¶é™ã‚’増やã™ã“ã¨ãŒã§ãã¾ã™ã€‚"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¯ãƒ—ロジェクトレベルã®åˆ¶é™ä¸‹ã«ã‚ã‚‹ãŸã‚ã€ãƒ—ランã®åˆ¶é™ã‚’超ãˆã‚‹ãƒªãƒã‚¸ãƒˆãƒªã¨LFSストレージã®ä½¿ç”¨é‡ã®ã¿ãŒè¶…éŽã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã¨ã—ã¦ã‚«ã‚¦ãƒ³ãƒˆã•ã‚Œã¾ã™ã€‚ ストレージパッケージを購入ã—ã¦ã€å®¹é‡åˆ¶é™ã‚’増やã™ã“ã¨ãŒã§ãã¾ã™ã€‚"
msgid "UsageQuota|This table omits projects that used 0 compute minutes or 0 shared runners duration"
msgstr "ã“ã®è¡¨ã§ã¯ã€ã‚³ãƒ³ãƒ”ューティング時間を使用ã—ã¦ã„ãªã„プロジェクトã€ã¾ãŸã¯å…±æœ‰ãƒ©ãƒ³ãƒŠãƒ¼ã‚’使用ã—ã¦ã„ãªã„プロジェクトをçœç•¥ã—ã¾ã™"
@@ -51768,12 +52768,6 @@ msgstr "テンプレートを使用"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr "上記ã®%{strongStart}テスト%{strongEnd}オプションを使用ã—ã¦ã€ã‚¤ãƒ™ãƒ³ãƒˆã‚’作æˆã—ã¾ã™ã€‚"
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr "Appleã®App Store Connectçµ±åˆã‚’使用ã™ã‚‹ã¨ã€CI/CDパイプラインã®Fastlaneã§Apple App Storeã«ç°¡å˜ã«æŽ¥ç¶šã§ãã¾ã™ã€‚"
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr "Google Playインテグレーションを使用ã—ã¦ã€CI/CDパイプラインã§fastlaneã¨Google Playを接続ã—ã¾ã™ã€‚"
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr "メールアドレス %{email} を確èªã™ã‚‹ã«ã¯ã€ä¸‹ã®ãƒªãƒ³ã‚¯ã‚’使ã£ã¦ãã ã•ã„"
@@ -51786,6 +52780,12 @@ msgstr "パブリッククラウドã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®URL(%{kroki_public_ur
msgid "Use the search bar on the top of this page"
msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã®ä¸Šéƒ¨ã«ã‚る検索ãƒãƒ¼ã‚’使用"
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr "ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’使用ã—ã¦ã€ãƒ¯ãƒ³ã‚¿ã‚¤ãƒ ãƒ‘スワードèªè¨¼ãŠã‚ˆã³WebAuthnデãƒã‚¤ã‚¹ã‚’無効ã«ã—ã¾ã™ã€‚ã¾ãŸã€æ–°ã—ã„リカãƒãƒªã‚³ãƒ¼ãƒ‰ã‚’生æˆã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚"
@@ -51850,6 +52850,9 @@ msgstr "ユーザー%{user}ã®SCIM IDãŒå†åº¦æœ‰åŠ¹ã«ãªã‚Šã¾ã—ãŸ"
msgid "User %{user} was removed from %{group}."
msgstr "ユーザーã®%{user}ã¯%{group}ã‹ã‚‰å‰Šé™¤ã•ã‚Œã¾ã—ãŸã€‚"
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "ユーザーID"
@@ -51884,7 +52887,7 @@ msgid "User does not have permission to create a Security Policy project."
msgstr "ユーザーã«ã¯ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒãƒªã‚·ãƒ¼ãƒ—ロジェクトを作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
msgid "User doesn't exist or you don't have permission to change namespace commit emails."
-msgstr "ユーザーãŒå­˜åœ¨ã—ãªã„ã‹ã€ã¾ãŸã¯åå‰ç©ºé–“ã®ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒ¼ãƒ«ã‚’変更ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
+msgstr "ユーザーãŒå­˜åœ¨ã—ãªã„ã‹ã€ã¾ãŸã¯ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒ¼ãƒ«ã‚’変更ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
msgid "User has already been deactivated"
msgstr "ユーザーã¯æ—¢ã«ç„¡åŠ¹åŒ–ã•ã‚Œã¦ã„ã¾ã™"
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr "ユーザーベースã®ã‚¨ã‚¹ã‚«ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒ«ãƒ¼ãƒ«ã«ã¯ã€ãƒ—ロジェクトã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãるユーザーãŒå¿…è¦ã§ã™"
@@ -52405,23 +53411,28 @@ msgstr "ã“ã®æœŸé–“内ã«ã€ã“ã®ã‚¹ãƒ†ãƒ¼ã‚¸ã§ã“れらã®ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã‚’
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "%{stageCount}以上ã®ã‚¢ã‚¤ãƒ†ãƒ "
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr "%{value}月"
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr "%{value}æ—¥"
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr "%{value}時"
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr "%{value}分"
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr "%{value}週"
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
-msgstr "&lt;1分"
+msgid "ValueStreamAnalytics|&lt;1 minute"
+msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
msgstr "1 æ—¥ã‚ãŸã‚Šã®å®Ÿç¨¼åƒç’°å¢ƒã¸ã®å¹³å‡ãƒ‡ãƒ—ロイ数。"
@@ -52438,6 +53449,9 @@ msgstr "ダッシュボード"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr "ãƒãƒªãƒ¥ãƒ¼ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®ç·¨é›†: %{name}"
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr "使用状æ³ã®æ¦‚è¦ãƒ‡ãƒ¼ã‚¿ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ"
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr "ドキュメントã¸ç§»å‹•"
@@ -52540,15 +53554,6 @@ msgstr "変数å「%{variable}ã€ã¯ã€Œ%{prefix}ã€ã§å§‹ã‚ã‚‹ã“ã¨ã¯ã§ãã
msgid "Variables"
msgstr "変数"
-msgid "Variables can be:"
-msgstr "次ã®å¤‰æ•°ã‚’使用ã§ãã¾ã™: "
-
-msgid "Variables can have several attributes."
-msgstr "変数ã¯ã„ãã¤ã‹ã®å±žæ€§ã‚’æŒã¤ã“ã¨ãŒã§ãã¾ã™ã€‚"
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr "変数ã¯ã€ã‚¸ãƒ§ãƒ–ã®ã‚¹ã‚¯ãƒªãƒ—トã§ä½¿ç”¨ã§ãるパスワードや秘密キーãªã©ã®æƒ…報をä¿å­˜ã—ã¾ã™ã€‚インスタンス上ã®ã™ã¹ã¦ã®ãƒ—ロジェクトã¯ã€ã“れらã®å¤‰æ•°ã‚’使用ã§ãã¾ã™ã€‚"
-
msgid "Various container registry settings."
msgstr "å„種コンテナレジストリã®è¨­å®šã€‚"
@@ -52630,9 +53635,6 @@ msgstr "ã‚ãªãŸã¯ç¾åœ¨ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³%{currentVersion}を使用ã—ã¦ã„ã
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr "ã‚ãªãŸã¯ç¾åœ¨ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³%{currentVersion}を使用ã—ã¦ã„ã¾ã™! GitLabインストールをã™ãã«ä»¥ä¸‹ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã„ãšã‚Œã‹ã«ã‚¢ãƒƒãƒ—グレードã™ã‚‹ã“ã¨ã‚’å¼·ããŠå‹§ã‚ã—ã¾ã™: %{latestStableVersions}"
-msgid "VersionCheck|Your GitLab Version"
-msgstr "ç¾åœ¨ã®GitLabãƒãƒ¼ã‚¸ãƒ§ãƒ³"
-
msgid "View File Metadata"
msgstr "ファイルメタデータ照会"
@@ -52651,15 +53653,9 @@ msgstr "ã™ã¹ã¦è¡¨ç¤º"
msgid "View all environments."
msgstr "ã™ã¹ã¦ã®ç’°å¢ƒã‚’表示。"
-msgid "View all groups"
-msgstr "ã™ã¹ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—を表示"
-
msgid "View all issues"
msgstr "ã™ã¹ã¦ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’表示"
-msgid "View all projects"
-msgstr "å…¨ã¦ã®ãƒ—ロジェクトを表示"
-
msgid "View blame"
msgstr "blameを表示"
@@ -52701,7 +53697,7 @@ msgid "View file @ %{commitSha}"
msgstr "%{commitSha}ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示"
msgid "View group in admin area"
-msgstr "管ç†ã‚¨ãƒªã‚¢ã§ã‚°ãƒ«ãƒ¼ãƒ—を表示"
+msgstr "管ç†è€…エリアã§ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®è¡¨ç¤º"
msgid "View group labels"
msgstr "グループラベルを表示"
@@ -52757,8 +53753,11 @@ msgstr "未完了ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’表示"
msgid "View page @ "
msgstr "ページを表示@ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
-msgstr "管ç†ã‚¨ãƒªã‚¢ã§ãƒ—ロジェクトを表示"
+msgstr "管ç†è€…エリアã§ã®ãƒ—ロジェクトã®è¡¨ç¤º"
msgid "View project labels"
msgstr "プロジェクトラベルを表示"
@@ -52788,6 +53787,9 @@ msgstr "文書を表示"
msgid "View the latest successful deployment to this environment"
msgstr "ã“ã®ç’°å¢ƒã¸ã®æœ€æ–°ã®æˆåŠŸã—ãŸãƒ‡ãƒ—ロイメントを表示ã™ã‚‹"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr "トリガトークンã®ä½¿ç”¨ä¾‹ã‚’表示"
@@ -52863,6 +53865,9 @@ msgstr "Visual Studio Code (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Visual Studio Code (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr "ClickHouseデータストアã¯ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“"
+
msgid "Vulnerabilities"
msgstr "脆弱性"
@@ -52932,6 +53937,9 @@ msgstr "詳細"
msgid "VulnerabilityExport|Detected At"
msgstr "検出日時"
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr "フルパス"
@@ -53002,7 +54010,7 @@ msgid "VulnerabilityManagement|Create Jira issue"
msgstr "Jira イシューを作æˆ"
msgid "VulnerabilityManagement|Dismiss as..."
-msgstr ""
+msgstr "VulnerabilityManagement|次ã®å ´åˆã¯ç„¡è¦–ã™ã‚‹"
msgid "VulnerabilityManagement|Enter a name"
msgstr "åå‰ã‚’入力"
@@ -53260,7 +54268,7 @@ msgid "Vulnerability|Namespace"
msgstr "åå‰ç©ºé–“"
msgid "Vulnerability|Namespace:"
-msgstr "åå‰ç©ºé–“:"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹:"
msgid "Vulnerability|Project"
msgstr "プロジェクト"
@@ -53712,6 +54720,9 @@ msgstr "SSL検証"
msgid "Webhooks|Secret token"
msgstr "秘密トークン"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "URLã®æ©Ÿå¯†éƒ¨åˆ†"
@@ -54207,6 +55218,9 @@ msgstr "マイルストーンã«è¿½åŠ "
msgid "WorkItem|All activity"
msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ“ティー"
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "本当ã«ã“ã®ç·¨é›†ã‚’キャンセルã—ã¾ã™ã‹ ?"
@@ -54229,6 +55243,9 @@ msgstr "ブロックã—ã¦ã„ã¾ã™"
msgid "WorkItem|Cancel"
msgstr "キャンセル"
+msgid "WorkItem|Child items"
+msgstr "å­ã‚¢ã‚¤ãƒ†ãƒ "
+
msgid "WorkItem|Child objectives and key results"
msgstr "å­ã®ç›®æ¨™ã¨ä¸»ãªçµæžœ"
@@ -54274,6 +55291,9 @@ msgstr "期é™"
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr "既存ã®ã‚¿ã‚¹ã‚¯"
@@ -54310,15 +55330,27 @@ msgstr "完了ã¨ã—ã¦ãƒžãƒ¼ã‚¯"
msgid "WorkItem|Milestone"
msgstr "マイルストーン"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr "æ–°è¦%{workItemType}"
msgid "WorkItem|New task"
msgstr "æ–°è¦ã‚¿ã‚¹ã‚¯"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "å復ãªã—"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "一致ã™ã‚‹çµæžœãŒã‚ã‚Šã¾ã›ã‚“"
@@ -54349,9 +55381,6 @@ msgstr "目標"
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr "一度ã«è¿½åŠ ã§ãるアイテムã¯%{MAX_WORK_ITEMS}件ã¾ã§ã§ã™ã€‚"
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr "レãƒãƒ¼ã‚¿ãƒ¼ã€ä½œæˆè€…ã€ãŠã‚ˆã³æ‹…当者以上ã®ãƒ­ãƒ¼ãƒ«ã‚’æŒã¤ãƒ—ロジェクトメンãƒãƒ¼ã®ã¿ãŒã€ã“ã®%{workItemType}を表示ã¾ãŸã¯é€šçŸ¥ã‚’å—ã‘å–ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
-
msgid "WorkItem|Open"
msgstr "é–‹ã"
@@ -54373,12 +55402,15 @@ msgstr "è¦æ±‚事項"
msgid "WorkItem|Save and overwrite"
msgstr "ä¿å­˜ã—ã¦ä¸Šæ›¸ã"
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr "種類をé¸æŠž"
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr "%{workItemType}を削除ã™ã‚‹é–“ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "タスクを削除ã™ã‚‹ã¨ãã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr "アイテムã®å–得時ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã“ã®ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã—ã¦ãã ã•ã„。"
@@ -54403,9 +55438,6 @@ msgstr "イテレーションをå–å¾—ã™ã‚‹ã¨ãã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸ
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr "ラベルをå–å¾—ã™ã‚‹ã¨ãã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "タスクをå–å¾—ã™ã‚‹ã¨ãã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã“ã®ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã—ã¦ãã ã•ã„。"
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr "作業アイテムã®ç¨®é¡žã‚’å–å¾—ã™ã‚‹ã¨ãã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -54535,8 +55567,8 @@ msgstr "アイテム"
msgid "WorkItem|relates to"
msgstr "次ã®ã‚¢ã‚¤ãƒ†ãƒ ã«é–¢é€£ã—ã¦ã„ã‚‹"
-msgid "WorkItem|the following item(s)"
-msgstr "次ã®ã‚¢ã‚¤ãƒ†ãƒ "
+msgid "WorkItem|the following items"
+msgstr ""
msgid "Workspaces"
msgstr "ワークスペース"
@@ -54553,6 +55585,9 @@ msgstr "ワークスペースをロードã§ãã¾ã›ã‚“ã§ã—ãŸ"
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr "ã“ã®ãƒ—ロジェクトã®ã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr "ワークスペースを作æˆ"
@@ -54631,8 +55666,8 @@ msgstr "ã“ã®ãƒ—ロジェクトã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’作æˆã™ã‚‹ã«ã¯ã€
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr "ワークスペースを作æˆã™ã‚‹ã«ã¯ã€ã“ã®ãƒ—ロジェクト㫠devfile を追加ã—ã¾ã™ã€‚devfile ã¯ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®æ§‹æˆãƒ•ã‚¡ã‚¤ãƒ«ã§ã™ã€‚"
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
-msgstr "ç¾åœ¨ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“。もã†ä¸€åº¦è©¦ã™ã‹ã€ç®¡ç†è€…ã«å•ã„åˆã‚ã›ã¦ãã ã•ã„。"
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
+msgstr ""
msgid "Workspaces|Unknown state"
msgstr "ä¸æ˜ŽãªçŠ¶æ…‹"
@@ -54685,6 +55720,12 @@ msgstr "リリースノートを書ãã‹ã€ã“ã“ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ドラッグ
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr "é–“é•ã£ãŸå¤–部 UID ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸã€‚Auth0 ãŒæ­£ã—ã設定ã•ã‚Œã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -54712,6 +55753,9 @@ msgstr "昨日"
msgid "You"
msgstr "ã‚ãªãŸ"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr "ã“ã®ã‚¢ãƒ©ãƒ¼ãƒˆã«ã¯æ—¢ã«ä¿ç•™ä¸­ã®todoãŒã‚ã‚Šã¾ã™"
@@ -54795,7 +55839,7 @@ msgid "You are not allowed to download code from this project."
msgstr "ã“ã®ãƒ—ロジェクトã‹ã‚‰ã‚³ãƒ¼ãƒ‰ã‚’ダウンロードã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
msgid "You are not allowed to import projects in this namespace."
-msgstr "ã“ã®åå‰ç©ºé–“ã«ãƒ—ロジェクトをインãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“。"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã«ãƒ—ロジェクトをインãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“。"
msgid "You are not allowed to log in using password"
msgstr "パスワードを使用ã—ã¦ãƒ­ã‚°ã‚¤ãƒ³ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -54831,7 +55875,7 @@ msgid "You are on a read-only GitLab instance."
msgstr "読ã¿å–り専用ã®GitLabインスタンスをå‚照中ã§ã™ã€‚"
msgid "You are receiving this email because you are a Maintainer of the Project."
-msgstr "ã‚ãªãŸã¯ãƒ—ロジェクトã®ç®¡ç†è€…ã§ã‚ã‚‹ãŸã‚ã€ã“ã®ãƒ¡ãƒ¼ãƒ«ã‚’å—ä¿¡ã—ã¦ã„ã¾ã™ã€‚"
+msgstr "ã‚ãªãŸã¯ãƒ—ロジェクトã®ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼ã§ã‚ã‚‹ãŸã‚ã€ã“ã®ãƒ¡ãƒ¼ãƒ«ã‚’å—ä¿¡ã—ã¦ã„ã¾ã™ã€‚"
msgid "You are receiving this email because you are an Owner of the Group."
msgstr "ã‚ãªãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚ªãƒ¼ãƒŠãƒ¼ã§ã‚ã‚‹ãŸã‚ã€ã“ã®ãƒ¡ãƒ¼ãƒ«ã‚’å—ä¿¡ã—ã¦ã„ã¾ã™ã€‚"
@@ -55079,12 +56123,12 @@ msgstr "ã‚ãªãŸã¯ã¾ã ã€ã©ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã‚‚属ã—ã¦ã„ã¾ã›ã‚“。"
msgid "You do not belong to any projects yet."
msgstr "ã‚ãªãŸã¯ã¾ã ã€ã©ã®ãƒ—ロジェクトã«ã‚‚属ã—ã¦ã„ã¾ã›ã‚“。"
-msgid "You do not have access to AI features."
-msgstr ""
-
msgid "You do not have access to any projects for creating incidents."
msgstr "インシデントを作æˆã™ã‚‹ãŸã‚ã®ãƒ—ロジェクトã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
+msgid "You do not have access to chat feature."
+msgstr ""
+
msgid "You do not have any subscriptions yet"
msgstr "サブスクリプションãŒã‚ã‚Šã¾ã›ã‚“"
@@ -55136,6 +56180,9 @@ msgstr "最近ã®æ¤œç´¢çµæžœãŒã‚ã‚Šã¾ã›ã‚“"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr "ã“ã®ãƒ‡ãƒ—ロイを承èªã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。ヘルプã«ã¤ã„ã¦ã¯ã€ãƒ—ロジェクトã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—オーナーã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。"
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr "ã“ã®ã‚¨ãƒ”ックを表示ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -55164,6 +56211,9 @@ msgstr[0] "承èªãŒå¿…è¦ãªä¿ç•™ä¸­ã®ãƒ¡ãƒ³ãƒãƒ¼ãŒ %{pendingMembersCount}ä
msgid "You have already reported this user"
msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’æ—¢ã«å ±å‘Šã—ã¾ã—ãŸ"
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "%{source_link}%{source_type}ã¸ã®%{access_level}アクセス権ãŒä»˜ä¸Žã•ã‚Œã¦ã„ã¾ã™ã€‚"
@@ -55197,8 +56247,8 @@ msgstr "ã“ã®ãƒ—ロジェクトã®ã‚¨ã‚¹ã‚«ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒãƒªã‚·ãƒ¼ã‚’設定
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr "ã“ã®ã‚¢ãƒ©ãƒ¼ãƒˆã®Todoを作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
-msgid "You have insufficient permissions to create a target branch rule"
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«ã‚’作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "You have insufficient permissions to create a branch target"
+msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
msgstr "ã“ã®ãƒ—ロジェクトã®HTTPçµ±åˆã‚’作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -55209,8 +56259,8 @@ msgstr "ã“ã®ãƒ—ロジェクトã®ã‚ªãƒ³ã‚³ãƒ¼ãƒ«ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’作æˆã™
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
-msgstr "ターゲットブランãƒãƒ«ãƒ¼ãƒ«ã‚’削除ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
+msgid "You have insufficient permissions to delete a branch target"
+msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
msgstr "ã“ã®ãƒ—ロジェクトã®ã‚¢ãƒ©ãƒ¼ãƒˆã‚’管ç†ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -55234,7 +56284,7 @@ msgid "You have insufficient permissions to remove this HTTP integration"
msgstr "HTTPインテグレーシを削除ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
msgid "You have insufficient permissions to remove this Namespace Ban"
-msgstr "ã“ã®åå‰ç©ºé–“ã®BANを削除ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
+msgstr "ã“ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®BANを削除ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
msgid "You have insufficient permissions to set customer relations contacts for this issue"
msgstr "ã“ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã«å¯¾ã™ã‚‹é¡§å®¢æ‹…当部門ã®é€£çµ¡å…ˆã‚’設定ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -55242,6 +56292,9 @@ msgstr "ã“ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã«å¯¾ã™ã‚‹é¡§å®¢æ‹…当部門ã®é€£çµ¡å…ˆã‚’設定ã™
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr "ã“ã®ãƒ—ロジェクトã®ã‚ªãƒ³ã‚³ãƒ¼ãƒ«ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。"
+msgid "You have insufficient permissions to update the organization"
+msgstr "組織を更新ã™ã‚‹ãŸã‚ã®å分ãªæ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "ã“ã®ãƒ—ロジェクトã®HTTPインテグレーションを更新ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -55281,6 +56334,9 @@ msgstr "ã“ã‚Œã§ãƒžã‚¤ãƒ«ã‚¹ãƒˆãƒ¼ãƒ³ã‚’クローズã§ãã¾ã™ã€‚"
msgid "You must be authenticated to access this path."
msgstr "ã“ã®ãƒ‘スã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ã€èªè¨¼ãŒå¿…è¦ã§ã™ã€‚"
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "GitLab全体ã«ã‚ãŸã£ã¦æ¤œç´¢ã™ã‚‹ã«ã¯ãƒ­ã‚°ã‚¤ãƒ³ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
@@ -55288,7 +56344,7 @@ msgid "You must confirm your email within %{cut_off_days} days of signing up. If
msgstr "サインアップ後 %{cut_off_days} 日以内ã«ãƒ¡ãƒ¼ãƒ«ã‚’確èªã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ã“ã®æœŸé–“内ã«ãƒ¡ãƒ¼ãƒ«ã‚’確èªã—ãªã„å ´åˆã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯å‰Šé™¤ã•ã‚Œã€GitLab ã«å†åº¦ã‚µã‚¤ãƒ³ã‚¢ãƒƒãƒ—ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
msgid "You must have developer or higher permissions in the associated project to view job logs when debug trace is enabled. To disable debug trace, set the 'CI_DEBUG_TRACE' and 'CI_DEBUG_SERVICES' variables to 'false' in your pipeline configuration or CI/CD settings. If you must view this job log, a project maintainer or owner must add you to the project with developer permissions or higher."
-msgstr "デãƒãƒƒã‚°ãƒˆãƒ¬ãƒ¼ã‚¹ãŒæœ‰åŠ¹ã«ãªã£ã¦ã„ã‚‹ã¨ãã«ã‚¸ãƒ§ãƒ–ログを表示ã™ã‚‹ã«ã¯ã€é–¢é€£ä»˜ã‘られãŸãƒ—ロジェクトã®ãƒ‡ãƒ™ãƒ­ãƒƒãƒ‘ー以上ã®æ¨©é™ãŒå¿…è¦ã§ã™ã€‚デãƒãƒƒã‚°ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’無効ã«ã™ã‚‹ã«ã¯ã€ãƒ‘イプライン設定ã¾ãŸã¯CI/CD設定㧠'CI_DEBUG_TRACE' 変数㨠'CI_DEBUG_SERVICES' 変数を 'false' ã«è¨­å®šã—ã¾ã™ã€‚ã“ã®ã‚¸ãƒ§ãƒ–ログを表示ã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã¯ã€ãƒ—ロジェクト管ç†è€…ã¾ãŸã¯ã‚ªãƒ¼ãƒŠãƒ¼ãŒãƒ‡ãƒ™ãƒ­ãƒƒãƒ‘ー権é™ä»¥ä¸Šã®ãƒ—ロジェクトã«è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
+msgstr "デãƒãƒƒã‚°ãƒˆãƒ¬ãƒ¼ã‚¹ãŒæœ‰åŠ¹ã«ãªã£ã¦ã„ã‚‹ã¨ãã«ã‚¸ãƒ§ãƒ–ログを表示ã™ã‚‹ã«ã¯ã€é–¢é€£ä»˜ã‘られãŸãƒ—ロジェクトã®é–‹ç™ºè€…以上ã®æ¨©é™ãŒå¿…è¦ã§ã™ã€‚デãƒãƒƒã‚°ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’無効ã«ã™ã‚‹ã«ã¯ã€ãƒ‘イプライン設定ã¾ãŸã¯CI/CD設定㧠'CI_DEBUG_TRACE' 変数㨠'CI_DEBUG_SERVICES' 変数を 'false' ã«è¨­å®šã—ã¾ã™ã€‚ã“ã®ã‚¸ãƒ§ãƒ–ログを表示ã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã¯ã€ãƒ—ロジェクト管ç†è€…ã¾ãŸã¯ã‚ªãƒ¼ãƒŠãƒ¼ãŒé–‹ç™ºè€…権é™ä»¥ä¸Šã®ãƒ—ロジェクトã«è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
msgid "You must have maintainer access to force delete a lock"
msgstr "ロックを強制的ã«å‰Šé™¤ã™ã‚‹ã«ã¯ã€ãƒ¡ãƒ³ãƒ†ãƒŠãƒ¼ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©ãŒå¿…è¦ã§ã™"
@@ -55492,6 +56548,9 @@ msgstr "%{strong}%{namespace_name}%{strong_close}ã®%{strong}%{plan_name}%{stron
msgid "Your Activity"
msgstr "ã‚ãªãŸã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ“ティー"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr "CI/CDã®è¨­å®šã®æ§‹æ–‡ãŒç„¡åŠ¹ã§ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€Œæ¤œè¨¼ã€ã‚¿ãƒ–ã‚’é¸æŠžã—ã¦ãã ã•ã„。"
@@ -55504,6 +56563,9 @@ msgstr "%{project_link}プロジェクトã‹ã‚‰ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ãŸ%{count}ã
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr "プロジェクト%{project_name} (%{project_url}) ã‹ã‚‰%{exported_objects}ã‚’CSVファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã€æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦ã“ã®ãƒ¡ãƒ¼ãƒ«ã«è¿½åŠ ã—ã¾ã—ãŸã€‚"
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr "ã‚ãªãŸã®CSVエクスãƒãƒ¼ãƒˆãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯æˆåŠŸã—ã¾ã—ãŸã€‚çµæžœã¯ %{email}ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚"
@@ -55519,11 +56581,11 @@ msgstr "%{group_name}グループã‹ã‚‰å‡ºåŠ›ã—ãŸChain of Custodyã®CSVファã
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr "DevOpsレãƒãƒ¼ãƒˆã§ã¯ã€æ©Ÿèƒ½ã®è¦³ç‚¹ã‹ã‚‰GitLabã‚’ã©ã®ã‚ˆã†ã«ä½¿ç”¨ã—ã¦ã„ã‚‹ã‹ã®æ¦‚è¦ã‚’説明ã—ã¾ã™ã€‚ãれらを使用ã—ã¦ã€ã»ã‹ã®çµ„ç¹”ã¨ã®æ¯”較方法ã€ãŠã‚ˆã³ãƒãƒ¼ãƒ é–“ã®æ¯”較方法を表示ã§ãã¾ã™ã€‚"
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "ç„¡æ–™ã®ãƒˆãƒƒãƒ—レベルグループã®%%{group_name}ã«ã¯%%{free_users_limit}人以上ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã„ã¦ã€%%{free_storage_limit}より多ãã®ãƒ‡ãƒ¼ã‚¿ã‚’使用ã—ã¦ã„ã¾ã™ã€‚ç„¡æ–™ã®ãƒˆãƒƒãƒ—レベルグループã«ä½¿ç”¨åˆ¶é™ãŒé©ç”¨ã•ã‚Œã‚‹ã¨ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—内ã®ãƒ—ロジェクトã¯%%{read_only_link_start}読ã¿å–り専用ã«ãªã‚Šã¾ã™%%{link_end}。グループãŒèª­ã¿å–り専用ã«ãªã‚‰ãªã„よã†ã«ã™ã‚‹ã«ã¯ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚ªãƒ¼ãƒŠãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’æŒã¤ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«é€£çµ¡ã—ã¦ã€æœ‰æ–™ãƒ—ランã«ã‚¢ãƒƒãƒ—グレードã™ã‚‹ã‹ã€ä½¿ç”¨é‡ã‚’管ç†ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚今後ã®ä½¿ç”¨åˆ¶é™ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€%%{faq_link_start}FAQã‚’å‚ç…§ã—ã¦ãã ã•ã„%%{link_end} 。"
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
+msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "ç„¡æ–™ã®ãƒˆãƒƒãƒ—レベルグループ%{group_name}ã«ã¯ã€%{free_users_limit}人以上ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã„ã¦ã€ãƒ‡ãƒ¼ã‚¿ã‚’%{free_storage_limit}以上使用ã—ã¦ã„ã¾ã™ã€‚ç„¡æ–™ã®ãƒˆãƒƒãƒ—レベルグループã«ä½¿ç”¨åˆ¶é™ãŒé©ç”¨ã•ã‚Œã‚‹ã¨ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—内ã®ãƒ—ロジェクトã¯%{read_only_link_start}読ã¿å–り専用ã«ãªã‚Šã¾ã™%{link_end}。ストレージã®ä½¿ç”¨é‡ã‚’管ç†ã™ã‚‹%{strong_start}å‰ã«ã€%{strong_end}ユーザー数を減らã™ã‹ã€æœ‰æ–™ãƒ—ランã«ã‚¢ãƒƒãƒ—グレードã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ãã†ã—ãªã„ã¨ã€5人ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åˆ¶é™ãŒé©ç”¨ã•ã‚Œã‚‹ãŸã‚ã€ç„¡æ–™ã®ãƒˆãƒƒãƒ—レベルグループã¯ã™ãã«èª­ã¿å–り専用ã«ãªã‚Šã¾ã™ã€‚詳ã—ã„情報ã«ã¤ã„ã¦ã¯ã€%{faq_link_start}FAQ%{link_end}ã‚’ã”覧ãã ã•ã„。"
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
+msgstr ""
msgid "Your GPG keys"
msgstr "GPGキー"
@@ -55616,7 +56678,7 @@ msgid "Your account uses dedicated credentials for the \"%{group_name}\" group a
msgstr "ã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯ã€Œ%{group_name}ã€ã‚°ãƒ«ãƒ¼ãƒ—専用ã®èªè¨¼æƒ…報を使用ã—ã¦ãŠã‚Šã€SSOを通ã˜ã¦ã®ã¿æ›´æ–°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
msgid "Your action has been rejected because the namespace storage limit has been reached. For more information, visit %{doc_url}."
-msgstr "åå‰ç©ºé–“ストレージã®åˆ¶é™ã«é”ã—ãŸãŸã‚ã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒæ‹’å¦ã•ã‚Œã¾ã—ãŸã€‚詳細ã«ã¤ã„ã¦ã¯ã€%{doc_url}ã‚’ã”覧ãã ã•ã„。"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®åˆ¶é™ã«é”ã—ãŸãŸã‚ã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒæ‹’å¦ã•ã‚Œã¾ã—ãŸã€‚詳細ã«ã¤ã„ã¦ã¯ã€%{doc_url}ã‚’ã”覧ãã ã•ã„。"
msgid "Your action succeeded."
msgstr "アクションã¯æˆåŠŸã—ã¾ã—ãŸã€‚"
@@ -55724,6 +56786,9 @@ msgstr "メンãƒãƒ¼ã¯%{days_to_expire}日後ã«å¤±åŠ¹ã—ã¾ã™ã€‚"
msgid "Your name"
msgstr "ã‚ãªãŸã®åå‰"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr "ã‚ãªãŸã®æ–°ã—ã„%{accessTokenType}"
@@ -55757,6 +56822,9 @@ msgstr "ã‚ãªãŸã®ãƒ—ロジェクト"
msgid "Your public email will be displayed on your public profile."
msgstr "公開メールをã‚ãªãŸã®å…¬é–‹ãƒ—ロフィールã«è¡¨ç¤ºã—ã¾ã™ã€‚"
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr "åå‰ç©ºé–“ストレージã®åˆ¶é™%{size_limit}を超ãˆã‚‹ãŸã‚ã€ã“ã®ãƒªãƒã‚¸ãƒˆãƒªã¸ã®ãƒ—ッシュã¯å´ä¸‹ã•ã‚Œã¾ã—ãŸã€‚åå‰ç©ºé–“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ä½¿ç”¨é‡ã‚’削減ã™ã‚‹ã‹ã€è¿½åŠ ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’購入ã—ã¦ãã ã•ã„。ストレージを管ç†ã€ã¾ãŸã¯è¿½åŠ ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚’購入ã™ã‚‹ã«ã¯ã€%{manage_storage_url}ã‚’å‚ç…§ã—ã¦ãã ã•ã„。制é™ã•ã‚Œã‚‹ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€%{restricted_actions_url}ã‚’å‚ç…§ã—ã¦ãã ã•ã„"
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr "アクセスリクエストを処ç†ã§ãã¾ã›ã‚“ã§ã—ãŸ: %{error_message}"
@@ -55893,6 +56961,9 @@ msgstr "[Redacted]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr "[クイックアクションをå«ã‚€ã€GitLab風ã®ãƒžãƒ¼ã‚¯ãƒ€ã‚¦ãƒ³ã‚’サãƒãƒ¼ãƒˆ]"
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr "`end_time` 㯠`start_time` ã‹ã‚‰1ã‹æœˆä»¥ä¸Šé›¢ã‚Œã¦ã¯ã„ã‘ã¾ã›ã‚“"
@@ -55946,7 +57017,7 @@ msgid "already assigned to an epic"
msgstr "ã™ã§ã«ã‚¨ãƒ”ックã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™"
msgid "already banned from namespace"
-msgstr "æ—¢ã«åå‰ç©ºé–“ã‹ã‚‰BANã•ã‚Œã¦ã„ã¾ã™"
+msgstr "æ—¢ã«ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã‹ã‚‰BANã•ã‚Œã¦ã„ã¾ã™"
msgid "already being used for another group or project %{timebox_name}."
msgstr "ã™ã§ã«ä»–ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚„ä»–ã®ãƒ—ロジェクトã®%{timebox_name}ã«ä½¿ç”¨ã—ã¦ã„ã¾ã™ã€‚"
@@ -56121,12 +57192,12 @@ msgstr "空白ã«ã¯ã§ãã¾ã›ã‚“"
msgid "cannot be changed"
msgstr "変更ã§ãã¾ã›ã‚“"
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr "カスタムロールã¨ã®æ—¢å­˜ã®é–¢é€£ä»˜ã‘ã®ãŸã‚変更ã§ãã¾ã›ã‚“"
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "個人用プロジェクトã«ã‚³ãƒ³ãƒ†ãƒŠãƒ¬ã‚¸ã‚¹ãƒˆãƒªã‚¿ã‚°ãŒã‚ã‚‹å ´åˆã€å¤‰æ›´ã§ãã¾ã›ã‚“。"
-msgid "cannot be changed since member is associated with a custom role"
-msgstr "メンãƒãƒ¼ãŒã‚«ã‚¹ã‚¿ãƒ ãƒ­ãƒ¼ãƒ«ã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹ãŸã‚ã€å¤‰æ›´ã§ãã¾ã›ã‚“"
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr "親%{new_type}ã«ãƒªãƒ³ã‚¯ã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ã€%{parent_type}ã«å¤‰æ›´ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
@@ -56193,9 +57264,6 @@ msgstr "%{degradedNum}件ã®åŠ£åŒ–"
msgid "ciReport|%{improvedNum} improved"
msgstr "%{improvedNum}件ã®æ”¹å–„"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr "%{linkStartTag}コードå“質レãƒãƒ¼ãƒˆã«ã¤ã„ã¦%{linkEndTag}"
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr "%{path}内ã®%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent}"
@@ -56238,8 +57306,8 @@ msgstr "外部ã‹ã‚‰æ—¢çŸ¥ã®è„†å¼±æ€§ã‚’調ã¹ã¦ã€Webアプリケーション
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "自動的ã«æ–°ã—ã„ブランãƒã«ã“ã®ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹"
-msgid "ciReport|Base pipeline codequality artifact not found"
-msgstr "ベースパイプラインã®ã‚³ãƒ¼ãƒ‰å“質アーティファクトãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr ""
msgid "ciReport|Browser Performance"
msgstr "ブラウザã®ãƒ‘フォーマンス"
@@ -56275,17 +57343,6 @@ msgstr "コードå“質ã¯å¤‰æ›´ã•ã‚Œã¦ã„ã¾ã›ã‚“。"
msgid "ciReport|Code Quality is loading"
msgstr "コードå“質を読ã¿è¾¼ã‚“ã§ã„ã¾ã™"
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] "%d個ã®æ–°ã—ã„イシューã«ã‚ˆã‚Šã‚³ãƒ¼ãƒ‰å“質ãŒä½Žä¸‹ã—ã¾ã—ãŸ"
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] "%d個ã®è§£æ±ºæ¸ˆã¿ã®ã‚¤ã‚·ãƒ¥ãƒ¼ã«ã‚ˆã‚Šã‚³ãƒ¼ãƒ‰å“質ãŒå‘上ã—ã¾ã—ãŸ"
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr "コードå“質スキャンã«ã‚ˆã‚Šã€ãƒžãƒ¼ã‚¸çµæžœã§%{issueCount}個ã®å¤‰æ›´ãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ"
-
msgid "ciReport|Container Scanning"
msgstr "コンテナースキャン"
@@ -56404,15 +57461,18 @@ msgstr "手動ã§è¿½åŠ ã•ã‚Œã¾ã—ãŸ"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr "æ–°ã—ã„脆弱性ã¯ã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒ–ランãƒã®æ—¢å­˜ã®è„†å¼±æ€§ã¨ã¯åˆ¥ã®ã‚‚ã®ã§ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚¹ã‚­ãƒ£ãƒ³ã§ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‹ã‚‰æ¤œå‡ºã—ãŸè„†å¼±æ€§ã§ã™ã€‚"
-msgid "ciReport|No changes to code quality"
-msgstr "コードå“質ã«å¤‰æ›´ã¯ã‚ã‚Šã¾ã›ã‚“"
-
msgid "ciReport|No code quality issues found"
msgstr "コードå“質ã®å•é¡Œã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr "マージリクエストã§è§£æ±º"
@@ -56470,9 +57530,6 @@ msgstr "脆弱性を無視ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr "脆弱性を無視ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %{error}"
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr "コードå“質レãƒãƒ¼ãƒˆã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "無視ã®å–り消ã—中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。"
@@ -56923,6 +57980,9 @@ msgstr "ãŒSAMLアカウントã«ãƒªãƒ³ã‚¯ã•ã‚Œã¦ã„ãªã„ã‹ã€æ‰€æœ‰ã™ã‚‹SC
msgid "is not one of"
msgstr "ãŒæ¬¡ã®1ã¤ã§ã¯ãªã„:"
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr "ã¯æœ‰åŠ¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“。イテレーショングループã¯ã€ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚±ã‚¤ãƒ‡ãƒ³ã‚¹(サイクル)グループã¨ä¸€è‡´ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。"
@@ -57083,6 +58143,9 @@ msgstr "%{mergeCommitSha}%{squashedCommits}㧠%{targetBranch}ã«ãƒžãƒ¼ã‚¸ã•ã‚Œ
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "%{targetBranch}ã«ãƒžãƒ¼ã‚¸ã•ã‚Œãªã‹ã£ãŸå¤‰æ›´ã§ã™ã€‚"
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr "ã“ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã¯å¤‰æ›´ãŒã‚ã‚Šã¾ã›ã‚“"
@@ -57228,10 +58291,10 @@ msgid "mrWidget|Approve additionally"
msgstr "追加ã§æ‰¿èªã™ã‚‹"
msgid "mrWidget|Approve additionally with SAML"
-msgstr ""
+msgstr "SAMLã§è¿½åŠ ã§æ‰¿èªã™ã‚‹"
msgid "mrWidget|Approve with SAML"
-msgstr ""
+msgstr "SAMLã§æ‰¿èªã™ã‚‹"
msgid "mrWidget|Approved by"
msgstr "承èªè€…"
@@ -57418,6 +58481,18 @@ msgstr "Debianパッケージã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid "must be a boolean value"
msgstr "ブール値ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr "最上ä½ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚’é¸æŠžã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。"
@@ -57463,6 +58538,9 @@ msgstr "ã¯1日以上ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid "must be before %{expiry_date}"
msgstr "ã¯%{expiry_date}よりå‰ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr "ã¯ã€ãƒ¡ãƒ¼ãƒ«ã®ç¢ºèªè¨­å®šãŒã‚ªãƒ•ã®å ´åˆã€falseã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
@@ -57473,7 +58551,7 @@ msgid "must be in ISO 8601 format"
msgstr "ISO 8601å½¢å¼ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
msgid "must be in same hierarchy as custom role's namespace"
-msgstr "カスタムロールã®åå‰ç©ºé–“ã¨åŒã˜éšŽå±¤ã«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
+msgstr "カスタムロールã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã¨åŒã˜éšŽå±¤ã«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
msgid "must be inside the fork network"
msgstr "フォークãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯å†…ã«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
@@ -57481,6 +58559,9 @@ msgstr "フォークãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯å†…ã«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
msgid "must be less than the limit of %{tag_limit} tags"
msgstr "%{tag_limit}ã‚¿ã‚°ã®ä¸Šé™ã‚ˆã‚Šã‚‚å°ã•ããªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
+msgid "must be one of: %{values}"
+msgstr "次ã®ã„ãšã‚Œã‹ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“: %{values} "
+
msgid "must be owned by the user's enterprise group"
msgstr "ユーザーã®ã‚¨ãƒ³ã‚¿ãƒ¼ãƒ—ライズグループãŒæ‰€æœ‰ã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
@@ -57494,7 +58575,7 @@ msgid "must be unique by status and elapsed time within a policy"
msgstr "ãƒãƒªã‚·ãƒ¼å†…ã®çŠ¶æ…‹ã¨çµŒéŽæ™‚é–“ã§ä¸€æ„ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
msgid "must be unique. This CA has already been configured for another namespace."
-msgstr "一æ„ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ã“ã® CA ã¯æ—¢ã«åˆ¥ã®åå‰ç©ºé–“用ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚"
+msgstr "一æ„ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ã“ã® CA ã¯æ—¢ã«åˆ¥ã®ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ç”¨ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚"
msgid "must belong to same project of its requirement object."
msgstr "è¦æ±‚オブジェクトã¨åŒã˜ãƒ—ロジェクトã«å±žã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
@@ -57514,6 +58595,9 @@ msgstr "リãƒã‚¸ãƒˆãƒªãŒå¿…è¦ã§ã™"
msgid "must have a valid format and be greater than or equal to zero."
msgstr "有効ãªå½¢å¼ã§ã‚¼ãƒ­ä»¥ä¸Šã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr "%{association}.project_idã¨ä¸€è‡´ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
@@ -57521,7 +58605,7 @@ msgid "must match one of the following file types: %{extension_list}"
msgstr "ã¯æ¬¡ã®ã„ãšã‚Œã‹ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚¿ã‚¤ãƒ—ã«ä¸€è‡´ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™: %{extension_list}"
msgid "must not be an owner of the namespace"
-msgstr "åå‰ç©ºé–“ã®ã‚ªãƒ¼ãƒŠãƒ¼ã§ã‚ã£ã¦ã¯ãªã‚Šã¾ã›ã‚“"
+msgstr "ãƒãƒ¼ãƒ ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚ªãƒ¼ãƒŠãƒ¼ã§ã‚ã£ã¦ã¯ãªã‚Šã¾ã›ã‚“"
msgid "must not contain commonly used combinations of words and letters"
msgstr "一般的ã«ä½¿ç”¨ã•ã‚Œã‚‹å˜èªžã¨æ–‡å­—ã®çµ„ã¿åˆã‚ã›ã‚’å«ã‚ã¦ã¯ã„ã‘ã¾ã›ã‚“"
@@ -57746,6 +58830,9 @@ msgstr "開始日を削除"
msgid "remove weight"
msgstr "ウェイトを削除"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr "%{link_type}リンクを削除ã—ã¾ã—ãŸ"
@@ -57772,9 +58859,6 @@ msgstr[0] "リãƒã‚¸ãƒˆãƒª"
msgid "repository:"
msgstr "リãƒã‚¸ãƒˆãƒª:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr "ロールã®åŸºæœ¬ã‚¢ã‚¯ã‚»ã‚¹ãƒ¬ãƒ™ãƒ«ãŒãƒ¡ãƒ³ãƒãƒ¼ã‚·ãƒƒãƒ—ã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ¬ãƒ™ãƒ«ã¨ä¸€è‡´ã—ã¾ã›ã‚“"
-
msgid "rule"
msgid_plural "rules"
msgstr[0] "ルール"
@@ -57945,6 +59029,9 @@ msgstr "テストケース"
msgid "the correct format."
msgstr "æ­£ã—ã„å½¢å¼ã§ã™"
+msgid "the custom role's base access level does not match the current access level"
+msgstr "カスタムロールã®åŸºæœ¬ã‚¢ã‚¯ã‚»ã‚¹ãƒ¬ãƒ™ãƒ«ãŒç¾åœ¨ã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ¬ãƒ™ãƒ«ã¨ä¸€è‡´ã—ã¾ã›ã‚“"
+
msgid "the following epics"
msgstr "次ã®ã‚¨ãƒ”ック"
@@ -57954,6 +59041,9 @@ msgstr "次ã®ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã¾ãŸã¯ã‚¤ã‚·ãƒ¥ãƒ¼"
msgid "the following issues"
msgstr "次ã®ã‚¤ã‚·ãƒ¥ãƒ¼"
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr "wiki"
diff --git a/locale/ka_GE/gitlab.po b/locale/ka_GE/gitlab.po
index af9d6658d40..e6cf6c66d4b 100644
--- a/locale/ka_GE/gitlab.po
+++ b/locale/ka_GE/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ka\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:34\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/kab/gitlab.po b/locale/kab/gitlab.po
index e1e204286de..3e5cb808724 100644
--- a/locale/kab/gitlab.po
+++ b/locale/kab/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: kab\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:30\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ko/gitlab.po b/locale/ko/gitlab.po
index 25d4427af89..3ee2631e72d 100644
--- a/locale/ko/gitlab.po
+++ b/locale/ko/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ko\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr " %{start}부터 %{end}까지"
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] "%d 아티팩트"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%dê°œì˜ í• ë‹¹ëœ ì´ìŠˆ"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%dê°œì˜ ëŒ“ê¸€"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "ì´ ì»¤ë°‹ì— ëŒ€í•œ %dê°œì˜ ëŒ“ê¸€"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%dëª…ì˜ ëŒ“ê¸€ 작성ìž"
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] "%dê±´ì˜ ì™„ë£Œëœ ì´ìŠˆ"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d 기여"
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%dê±´ì˜ ì´ìŠˆë¥¼ ë¼ë²¨ì„ 통해 성공ì ìœ¼ë¡œ 가져왔습니다"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%dê°œì˜ ìž‘ì—…"
@@ -460,6 +452,9 @@ msgstr "%{author_link}(ì´)ê°€ 작성:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName} ì˜ ìŠ¤ë ˆë“œ"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author}(ì´)ê°€ %{source_branch} %{copy_button}를 %{target_branch} %{created_at}(으)ë¡œ 머지 리퀘스트를 했습니다. "
@@ -494,15 +489,6 @@ msgstr "%{chartTitle} ë°ì´í„° 시리즈 ì—†ìŒ"
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_authored_timeago} ì— %{commit_author_link} ë‹˜ì´ ì»¤ë°‹í–ˆìŠµë‹ˆë‹¤."
@@ -606,12 +592,6 @@ msgstr "태그가 ìžë™ìœ¼ë¡œ 제거 ë  ë•Œê¹Œì§€ %{days}ì¼"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Sentry ì´ë²¤íŠ¸: %{errorUrl}- 첫 발견 시간: %{firstSeen}- 마지막 발견 시간: %{lastSeen}%{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{ref_elem}ì´(ê°€) 기본 브랜치가 아니기 ë•Œë¬¸ì— %{doc_link_start}고급 검색%{doc_link_end}ì´ ë¹„í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤. %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}고급 검색%{doc_link_end}ì´ í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -648,6 +628,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} ì‚­ì œë¨"
@@ -822,6 +805,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1075,6 +1064,9 @@ msgstr[0] "%{strongStart}%{count}%{strongEnd} 커밋"
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} 브랜치"
@@ -1154,8 +1146,11 @@ msgstr "%{timebox_type} ì€(는) 시작날짜와 종료날짜가 있어야합니
msgid "%{time} UTC"
msgstr "%{time} UTC(협정 세계시)"
-msgid "%{title} changes"
-msgstr "%{title} 변경"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1169,6 +1164,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings}ê°œì˜ ê²½ê³  발견ë¨:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr "%{total} ë‚¨ì€ ì´ìŠˆ 가중치"
@@ -1223,6 +1221,9 @@ msgstr "%{user}ì´(ê°€) ì´ìŠˆë¥¼ 만들었습니다: %{issue_link}"
msgid "%{user} user’s menu"
msgstr "%{user} ì‚¬ìš©ìž ë©”ë‰´"
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} ì€(는) 목ë¡ì— í¬í•¨ë˜ì§€ 않습니다"
@@ -1241,6 +1242,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{code_tag_start}v*%{code_tag_end}나, %{code_tag_start}*-릴리스%{code_tag_end}ê°™ì€ %{wildcards_link_start}와ì¼ë“œì¹´ë“œ%{wildcards_link_end}는 지ì›ë©ë‹ˆë‹¤."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' ìˆ˜ì¤€ì€ ì˜¬ë°”ë¥¸ 공개 ìˆ˜ì¤€ì´ ì•„ë‹™ë‹ˆë‹¤"
@@ -1256,9 +1260,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1293,6 +1309,12 @@ msgstr "(변경사항 ì—†ìŒ)"
msgid "(Unlimited pipeline minutes)"
msgstr "(무제한 파ì´í”„ë¼ì¸ 실행시간)"
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(진행 ìƒí™© 확ì¸)"
@@ -1311,9 +1333,6 @@ msgstr "(외부 참가ìž)"
msgid "(leave blank if you don't want to change it)"
msgstr "(변경하지 않으려면 비워 둡니다)"
-msgid "(max size 15 MB)"
-msgstr "(최대 사ì´ì¦ˆ 15MB)"
-
msgid "(no user)"
msgstr "(ì‚¬ìš©ìž ì—†ìŒ)"
@@ -1344,7 +1363,7 @@ msgstr "+ %{amount}ê°œ ë” ìžˆìŒ"
msgid "+ %{count} more"
msgstr "+ %{count} ë”보기"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1634,9 +1653,6 @@ msgstr "ì´ ê¸°ë³¸ 페ì´ì§€ì™€ 서버리스 ê¸°ëŠ¥ì€ AWS Lambda, AWS API Gatew
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr "완벽한 DevOps 플랫í¼"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1742,8 +1758,8 @@ msgstr "안드로ì´ë“œ ì•±ì— ë°”ë¡œ 사용할 수 있는 템플릿입니다"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "iOS 스위프트 ì•±ì— ë°”ë¡œ 사용할 수 있는 템플릿입니다"
-msgid "A rebase is already in progress."
-msgstr "리베ì´ìŠ¤ëŠ” ì´ë¯¸ 진행 중입니다."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "ë‹¤ìŒ IP 주소ì—ì„œ ê³„ì •ì— ë¡œê·¸ì¸í–ˆìŠµë‹ˆë‹¤ : %{ip}"
@@ -1766,6 +1782,33 @@ msgstr "AI ìž‘ì—…"
msgid "AI-generated summary"
msgstr "AI ìƒì„± 요약"
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr "모든 ëŒ“ê¸€ì˜ ìš”ì•½ì„ ìƒì„±í•©ë‹ˆë‹¤."
@@ -1865,9 +1908,6 @@ msgstr "기존 ì„¤ëª…ì„ AI ìƒì„± 설명으로 바꾸시겠습니까? 모든 ë³
msgid "AI|Responses generated by AI"
msgstr "AIì— ì˜í•´ ìƒì„±ëœ 답변"
-msgid "AI|Send chat message."
-msgstr "채팅 메시지 보내기"
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -1887,6 +1927,9 @@ msgstr "제출하면 ê¸°ì¡´ì˜ ì„¤ëª…ì„ ëŒ€ì²´ë©ë‹ˆë‹¤."
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr "ì±„íŒ…ì— í…스트가 너무 많습니다. ë” ì§§ì€ í…스트로 다시 ì‹œë„하십시오."
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -1932,6 +1975,9 @@ msgstr "API í¼ì§•"
msgid "API Help"
msgstr "API ë„움ë§"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API 키"
@@ -2253,6 +2299,12 @@ msgstr "피싱"
msgid "AbuseReport|Phone"
msgstr "ì „í™”"
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr "사유"
@@ -2727,6 +2779,9 @@ msgstr "ìŠ¹ì¸ ê·œì¹™ 추가"
msgid "Add approvers"
msgstr "승ì¸ìž 추가"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -2865,9 +2920,6 @@ msgstr ""
msgid "Add tag"
msgstr "태그 추가"
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "ë¡œê·¸ì¸ íŽ˜ì´ì§€ì— í…스트를 추가합니다. 마í¬ë‹¤ìš´ì´ 활성화ë˜ì—ˆìŠµë‹ˆë‹¤."
@@ -3021,15 +3073,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr "관리ìž"
-
msgid "Admin Area"
msgstr "ê´€ë¦¬ìž ì˜ì—­"
msgid "Admin Area / Dashboard"
msgstr "ê´€ë¦¬ìž ì˜ì—­ / 대시 ë³´ë“œ"
+msgid "Admin Mode"
+msgstr "ê´€ë¦¬ìž ëª¨ë“œ"
+
msgid "Admin Note"
msgstr "ê´€ë¦¬ìž ë…¸íŠ¸"
@@ -3039,9 +3091,6 @@ msgstr "ê´€ë¦¬ìž ì•Œë¦¼"
msgid "Admin message"
msgstr "ê´€ë¦¬ìž ë©”ì‹œì§€"
-msgid "Admin mode"
-msgstr "ê´€ë¦¬ìž ëª¨ë“œ"
-
msgid "Admin mode already enabled"
msgstr "ê´€ë¦¬ìž ëª¨ë“œ ì´ë¯¸ 활성화 ë¨"
@@ -3399,6 +3448,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr "Git 악용 비율 제한"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3495,6 +3547,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr "Elasticsearch ì¸ë±ì‹± ì¼ì‹œ 중지"
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr "관리ìžê°€ ì•„ë‹Œ 사용ìžê°€ 그룹, 프로ì íŠ¸ ë° ìŠ¤ë‹ˆíŽ«ì— ëŒ€í•´ 공개 수준 ì„ íƒì„ 사용하지 못하ë„ë¡ í•©ë‹ˆë‹¤."
@@ -4113,6 +4168,9 @@ msgstr "문서"
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "관리ìž"
@@ -4146,6 +4204,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr "ë°°í¬ í‚¤"
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr "Geo"
@@ -4257,18 +4318,24 @@ msgstr "비밀번호가 성공ì ìœ¼ë¡œ ë³€ê²½ëœ ë’¤ì— ë¡œê·¸ì¸ í™”ë©´ìœ¼ë¡œ
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4617,6 +4684,15 @@ msgstr ""
msgid "Algorithm"
msgstr "알고리즘"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "ì „ì²´"
@@ -4647,9 +4723,6 @@ msgstr "ìžê²©ì´ 있는 모든 사용ìž"
msgid "All environments"
msgstr "모든 환경"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr "모든 사용ìžëŠ” ì´ë¦„ì´ ìžˆì–´ì•¼í•©ë‹ˆë‹¤."
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4761,12 +4837,18 @@ msgstr "ì´ í‚¤ë¥¼ ë ˆí¬ì§€í† ë¦¬ì— 푸시할 수 있게 허용"
msgid "Allow use of licensed EE features"
msgstr "ë¼ì´ì„ ìŠ¤ëœ EE 기능 사용 허용"
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "허용ë¨"
@@ -4788,9 +4870,6 @@ msgstr "ì´ ê·¸ë£¹ì˜ í”„ë¡œì íŠ¸ ë˜ëŠ” 하위 ê·¸ë£¹ì´ ì „ì—­ ì„¤ì •ì„ ìž¬ì
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Kubernetes í´ëŸ¬ìŠ¤í„°ë¥¼ 추가하고 관리 í•  수 ​​있습니다."
-
msgid "Almost there"
msgstr "ê±°ì˜ ë‹¤ ë났습니다"
@@ -4851,9 +4930,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "ë‹¹ì‹ ì˜ ì¡°ì§ì—ì„œ ë‹¹ì‹ ì˜ GitLab 엔터프ë¼ì´ì¦ˆ ì‚¬ìš©ìž ê³„ì •ì„ ìƒì„±í–ˆìŠµë‹ˆë‹¤."
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -4869,9 +4945,6 @@ msgstr "%{link_to_client} ì´ë¼ëŠ” ì‘ìš© í”„ë¡œê·¸ëž¨ì´ GitLab ê³„ì •ì— ëŒ€í
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "최근 ê´€ë¦¬ìž íŒ¨ë„ì—ì„œ ì´ë©”ì¼ ì•Œë¦¼ì´ ì „ì†¡ë˜ì—ˆìŠµë‹ˆë‹¤. 다른 메시지를 보내기 ì „ì— %{wait_time_in_words} 기다리십시오."
-msgid "An email will be sent with the report attached after it is generated."
-msgstr "보고서가 ìƒì„±ë˜ë©´ ì´ë©”ì¼ì— 첨부ë˜ì–´ 발송ë©ë‹ˆë‹¤."
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "비어 있는 GitLab User 필드는 FogBugzì˜ ì‚¬ìš©ìž ì „ì²´ ì´ë¦„ (예 : By í™ ê¸¸ë™)ì„ ì´ìŠˆ ë° ì»¤ë§¨íŠ¸ì˜ ì„¤ëª…ìœ¼ë¡œ 추가 합니다. ë˜í•œ ì´ ì´ìŠˆì™€ 커맨트를 프로ì íŠ¸ 작성ìžì— 알리고 할당 í•  것입니다."
@@ -4947,9 +5020,6 @@ msgstr "서비스 ë°ìŠ¤í¬ë¥¼ 비활성화하는 ë„중 오류가 ë°œìƒí–ˆìŠµë
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Alertì„ í•´ì œí•˜ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 페ì´ì§€ë¥¼ 새로 고친 후 다시 ì‹œë„하십시오."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "기능 ê°•ì¡° 표시를 해제하는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 페ì´ì§€ë¥¼ 새로고침하고, 다시 ì‹œë„해주세요."
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5178,9 +5248,8 @@ msgstr "ì„¤ì •ì„ ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 다시 ì‹œë
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "ì„¤ì •ì„ ì €ìž¥í•˜ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 다시 저장해 보세요."
@@ -5345,6 +5414,9 @@ msgstr "'%{project_name}'ì— ëŒ€í•œ ë¶„ì„ ì„¤ì •ì´ ì„±ê³µì ìœ¼ë¡œ ì—…ë°ì´íŠ
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5453,6 +5525,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr "ë°ì´í„°ë¥¼ 가져오지 못했습니다."
@@ -5561,6 +5636,9 @@ msgstr "대시보드 ì—…ë°ì´íŠ¸ 중 %{dashboardSlug}"
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr "ì‹œê°í™” ì—…ë°ì´íŠ¸ 중 %{visualizationName}"
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5573,18 +5651,21 @@ msgstr ""
msgid "Analytics|Users"
msgstr "사용ìž"
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr "사용가능한 대시보드 보기"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
msgid "Analytics|Viewport"
msgstr "ë·°í¬íŠ¸"
msgid "Analytics|Visualization"
msgstr "ì‹œê°í™”"
-msgid "Analytics|Visualization Designer"
-msgstr "ì‹œê°í™” ë””ìžì´ë„ˆ"
-
msgid "Analytics|Visualization designer"
msgstr "ì‹œê°í™” ë””ìžì´ë„ˆ"
@@ -5615,9 +5696,6 @@ msgstr ""
msgid "Ancestors"
msgstr "ì¡°ìƒ"
-msgid "And this registration token:"
-msgstr "그리고 ì´ ë“±ë¡ í† í°:"
-
msgid "Anonymous"
msgstr "ìµëª…"
@@ -5678,6 +5756,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5690,17 +5789,14 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr "ë³´í˜¸ëœ ë¸Œëžœì¹˜ ë° íƒœê·¸ì—만 변수 설정"
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr "ë³´í˜¸ëœ ë¸Œëžœì¹˜ ë° íƒœê·¸ë§Œ"
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
-msgstr "애플 앱스토어 Connect ë°œí–‰ìž ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
-msgstr "애플 앱스토어 Connect 키 ID"
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
msgstr "애플 앱스토어 Connect ê°œì¸ í‚¤ (.p8)"
@@ -5717,9 +5813,6 @@ msgstr "어플리케ì´ì…˜"
msgid "Application ID"
msgstr "애플리케ì´ì…˜ ID"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6231,9 +6324,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr "ì•„ì¹´ì´ë¸Œ 테스트 ì¼€ì´ìŠ¤"
-
msgid "Archived"
msgstr "ë³´ê´€ë¨"
@@ -6297,6 +6387,9 @@ msgstr "ì´ %{commentType}ì„ ì‚­ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "ì´ ëŒ“ê¸€ì„ ì‚­ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
@@ -6312,9 +6405,6 @@ msgstr "ì´ ë¼ë²¨ì„ 삭제하시겠습니까?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "ì´ íŒŒì´í”„ë¼ì¸ì„ 삭제하시겠습니까? 그렇게 하면 모든 파ì´í”„ë¼ì¸ ìºì‹œê°€ 만료ë˜ê³  빌드, 로그, 아티팩트 ë° íŠ¸ë¦¬ê±°ì™€ ê°™ì€ ëª¨ë“  관련 개체가 ì‚­ì œë©ë‹ˆë‹¤. ì´ ìž‘ì—…ì€ ì·¨ì†Œí•  수 없습니다."
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6504,9 +6594,6 @@ msgstr "ì´ ì•„í‹°íŒ©íŠ¸ëŠ” ì˜êµ¬ì ìœ¼ë¡œ ì‚­ì œë©ë‹ˆë‹¤. ì´ ì•„í‹°íŒ©íŠ¸ì—
msgid "Artifacts|Total artifacts size"
msgstr "ì´ ì•„í‹°íŒ©íŠ¸ í¬ê¸°"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr "새로 ìƒì„±ëœ 계정ì´ë¯€ë¡œ 시작하려면 아래 ë§í¬ë¥¼ í´ë¦­í•˜ì—¬ ê³„ì •ì„ ì¸ì¦í•˜ì„¸ìš”."
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6522,6 +6609,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr "ìžì„¸í•œ 정보를 보려면 관리ìžì—게 가져오기 ìƒíƒœë¥¼ 확ì¸ì„ 요청하세요."
@@ -6643,13 +6733,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6741,7 +6828,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6819,6 +6906,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr "Google í´ë¼ìš°ë“œ 로깅"
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr "ì´ë²¤íŠ¸ ì„ íƒ"
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -6948,6 +7044,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7137,12 +7236,6 @@ msgstr "ìžë™ìœ¼ë¡œ í•´ê²°ë¨"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "업스트림 저장소ì—ì„œ ì´ í”„ë¡œì íŠ¸ì˜ 분기와 태그를 ìžë™ìœ¼ë¡œ ì—…ë°ì´íŠ¸í•©ë‹ˆë‹¤."
-msgid "Automation"
-msgstr "ìžë™í™”"
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "참고"
@@ -7167,12 +7260,18 @@ msgstr "아바타가 ì‚­ì œë©ë‹ˆë‹¤. 확실합니까?"
msgid "Average per day: %{average}"
msgstr "하루 í‰ê· : %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr "ì‚¬ìš©ìž ê°€ìž… 대기 중"
msgid "AwardEmoji|No emoji found."
msgstr "ì´ëª¨ì§€ê°€ 없습니다."
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7224,9 +7323,6 @@ msgstr "배지 추가"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "배지 추가 실패, 입력한 URLì„ í™•ì¸í•˜ì‹œê³  다시 ì‹œë„하십시오."
-
msgid "Badges|Badge image URL"
msgstr "배지 ì´ë¯¸ì§€ URL"
@@ -7239,9 +7335,6 @@ msgstr "배지가 저장ë˜ì—ˆìŠµë‹ˆë‹¤."
msgid "Badges|Delete badge?"
msgstr "배지를 삭제할까요?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "배지 ì‚­ì œ 실패, 다시 ì‹œë„하십시오."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7251,9 +7344,18 @@ msgstr "유효한 URLì„ ìž…ë ¥í•˜ì„¸ìš”"
msgid "Badges|Example: %{exampleUrl}"
msgstr "예: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "그룹 배지"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "ë§í¬"
@@ -7287,18 +7389,21 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr "배지가 ì‚­ì œë˜ì—ˆìŠµë‹ˆë‹¤."
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr ""
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
msgid "Badges|Your badges"
msgstr "내 배지"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7308,7 +7413,7 @@ msgstr "Bamboo URL"
msgid "BambooService|Bamboo build plan key."
msgstr "Bamboo 빌드 êµ¬ë… í‚¤."
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7323,7 +7428,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7428,9 +7533,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr "머지하기 ì „ì— Jira ì´ìŠˆë¥¼ 제목ì´ë‚˜ ì„¤ëª…ì— ì—°ê²°í•´ì•¼ 합니다."
-
msgid "Begin with the selected commit"
msgstr "ì„ íƒí•œ 커밋으로 시작"
@@ -7788,6 +7890,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7818,13 +7923,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -7842,10 +7947,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -7885,12 +7990,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "Billings|í‰ê°€íŒì´ ì¢…ë£Œë  ë•Œ 모든 구성ì›ì´ ê·¸ë£¹ì— ì•¡ì„¸ìŠ¤í•  수 있ë„ë¡ í•˜ë ¤ë©´ 유료 등급으로 업그레ì´ë“œí•´ì•¼ 합니다."
@@ -7912,7 +8011,10 @@ msgstr "대기 ì¤‘ì¸ ìŠ¹ì¸ ìš”ì²­"
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8103,12 +8205,6 @@ msgstr[0] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8127,9 +8223,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8139,18 +8232,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8163,51 +8250,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "ë³´ë“œ 목ë¡ì„ 가져오는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 페ì´ì§€ë¥¼ 새로고침하세요."
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "목ë¡ì„ ìƒì„±í•˜ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 페ì´ì§€ë¥¼ 새로고침하세요."
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "접기"
@@ -8236,9 +8302,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr "ì¹´ë“œ ì´ë™"
-
msgid "Boards|Move to end of list"
msgstr "ëª©ë¡ ë으로 ì´ë™"
@@ -8332,6 +8395,9 @@ msgstr "해당 브랜치는 ì´ë¯¸ 사용중입니다"
msgid "Branch name"
msgstr "브랜치 ì´ë¦„"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8341,6 +8407,18 @@ msgstr ""
msgid "Branch rules"
msgstr "브랜치 규칙"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "*-stable ë˜ëŠ” production/ 와 ê°™ì€ %{linkStart}와ì¼ë“œì¹´ë“œ%{linkEnd}ê°€ 지ì›ë©ë‹ˆë‹¤."
@@ -8407,15 +8485,27 @@ msgstr "브랜치"
msgid "BranchRules|Branch name or pattern"
msgstr "브랜치 ì´ë¦„ ë˜ëŠ” 패턴"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "브랜치 규칙 세부 정보"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr "보호받는 브랜치 ìƒì„±"
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "와ì¼ë“œì¹´ë“œ ìƒì„±: %{searchTerm}"
@@ -8473,6 +8563,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr "ì—­í• "
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "ìƒíƒœ 확ì¸"
@@ -8491,6 +8587,9 @@ msgstr "사용ìž"
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "기본값"
@@ -8503,6 +8602,9 @@ msgstr "브랜치"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr "브랜치들: %{source_branch} ì—ì„œ %{target_branch} ë¡œ"
@@ -8803,6 +8905,12 @@ msgstr "íŒŒì¼ ì°¾ì•„ë³´ê¸°"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr "빌드를 지울 수 없습니다."
@@ -8836,9 +8944,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -8848,16 +8965,25 @@ msgstr "소스 그룹으로 í•„í„°ë§"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -8875,6 +9001,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -8929,7 +9061,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -8992,9 +9127,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr "%{user_name} ì˜í•´ì„œ"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9134,6 +9266,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr "ë°°í¬ ì „ëžµ"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9155,6 +9290,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9218,18 +9359,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9248,16 +9377,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9269,6 +9398,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9719,6 +9851,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "다시 확ì¸"
@@ -9829,6 +9964,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -9841,6 +9979,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -9853,6 +9994,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -9913,6 +10057,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "%{minimumNumberOfUsers} (사용 ì¤‘ì¸ ì¢Œì„) ì´ìƒì´ì–´ì•¼ 합니다."
@@ -9970,6 +10117,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -9982,6 +10132,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10051,9 +10204,6 @@ msgstr "íŒŒì¼ ì„ íƒ..."
msgid "Choose a file"
msgstr "íŒŒì¼ ì„ íƒ"
-msgid "Choose a group"
-msgstr "그룹 ì„ íƒ"
-
msgid "Choose a template"
msgstr "템플릿 ì„ íƒ"
@@ -10117,6 +10267,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10135,7 +10288,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr "파ì´í”„ë¼ì¸ ì»´í¬ë„ŒíŠ¸ 리í¬ì§€í† ë¦¬ë¥¼ 만들고 파ì´í”„ë¼ì¸ êµ¬ì„±ì„ ë” ë¹ ë¥´ê³  쉽게 재사용합니다."
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10168,25 +10321,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
-msgstr "ì´ ë„¤ìž„ìŠ¤íŽ˜ì´ìŠ¤ì— 사용 가능한 파ì´í”„ë¼ì¸ ì»´í¬ë„ŒíŠ¸ 리í¬ì§€í† ë¦¬ìž…니다."
+msgid "CiCatalog|Remove from the CI/CD catalog"
+msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
-msgstr "프로ì íŠ¸ëŠ” README.md 파ì¼ê³¼ template.yml 파ì¼ì„ í¬í•¨í•´ì•¼ 합니다. 활성화ë˜ë©´ CI/CD 카탈로그ì—ì„œ 리í¬ì§€í† ë¦¬ë¥¼ 사용할 수 있습니다."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
+msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10195,6 +10369,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr "우리는 파ì´í”„ë¼ì¸ 구성 요소 리í¬ì§€í† ë¦¬ë¥¼ 만들고 관리하는 ë™ì‹œì— 파ì´í”„ë¼ì¸ êµ¬ì„±ì„ ë” ì‰½ê²Œ 재사용할 수 있ë„ë¡ ë•ê³  싶습니다. 우리가 어떻게 해야 하는지 알려주세요!"
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10285,6 +10462,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10372,13 +10561,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10402,10 +10600,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10634,9 +10844,6 @@ msgstr "ì—픽 닫기"
msgid "Close milestone"
msgstr "마ì¼ìŠ¤í†¤ 닫기"
-msgid "Close sidebar"
-msgstr "사ì´ë“œë°” 닫기"
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11670,16 +11877,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr "패턴"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11688,7 +11913,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11697,22 +11922,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11842,6 +12067,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -11890,6 +12118,12 @@ msgstr ""
msgid "Comment"
msgstr "댓글 달기"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12167,13 +12401,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12191,6 +12461,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12212,10 +12488,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12230,9 +12506,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12245,6 +12527,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12275,9 +12560,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12296,12 +12587,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12419,6 +12716,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12479,6 +12779,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12506,7 +12812,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12659,6 +12971,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr "리í¬ì§€í† ë¦¬ ì €ìž¥ê³µê°„ì„ ì„¤ì •í•©ë‹ˆë‹¤."
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12749,7 +13064,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -12982,6 +13297,9 @@ msgstr "프로ì íŠ¸ URLì— ì´ë¦„ì´ ì—†ëŠ” ì´ë¯¸ì§€ 리í¬ì§€í† ë¦¬"
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13166,6 +13484,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13517,7 +13838,7 @@ msgstr ""
msgid "Contributor"
msgstr "기여ìž"
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13529,6 +13850,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13592,6 +13916,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13664,9 +13991,6 @@ msgstr "소스 브랜치 ì´ë¦„ 복사"
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr "í† í° ë³µì‚¬"
-
msgid "Copy value"
msgstr ""
@@ -13850,6 +14174,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -13913,6 +14240,9 @@ msgstr ""
msgid "Create a merge request"
msgstr "머지 리퀘스트 만들기"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -13943,9 +14273,6 @@ msgstr "%{protocol}ì„ (를) 통해 Pull 하거나 Push í•  ê°œì¸ ì•¡ì„¸ìŠ¤ 토
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14075,9 +14402,6 @@ msgstr "릴리스 ìƒì„±"
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14114,6 +14438,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr "CreateGitTag|태그 메시지를 설정합니다."
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14324,6 +14651,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14534,6 +14864,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr "프로필 편집"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -14820,9 +15156,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -14851,6 +15184,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15119,9 +15455,6 @@ msgstr "모든"
msgid "DashboardProjects|Personal"
msgstr "ê°œì¸"
-msgid "Dashboards"
-msgstr "대시보드"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15155,6 +15488,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr "활성화ë˜ì§€ ì•ŠìŒ"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15236,6 +15572,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15413,9 +15752,6 @@ msgstr "사ì´íŠ¸ 프로필"
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15428,7 +15764,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15739,6 +16075,9 @@ msgstr "기본 브랜치"
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "ì´ìŠˆì˜ 기본 설명 템플릿"
@@ -16059,16 +16398,6 @@ msgstr "ì‚­ì œ 대기 중. ì´ í”„ë¡œì íŠ¸ëŠ” %{date}ì— ì‚­ì œë©ë‹ˆë‹¤. 리í
msgid "DeletionSettings|Deletion protection"
msgstr "삭제 방지"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "관리ìžë§Œ 프로ì íŠ¸ë¥¼ 삭제할 수 있습니다."
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "소유ìžì™€ 관리ìžëŠ” 프로ì íŠ¸ë¥¼ 삭제할 수 있습니다."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16177,12 +16506,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "지ì›ë˜ì§€ 않는 파ì¼(들)ì´ ê°ì§€ë¨"
@@ -16201,9 +16536,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16213,6 +16545,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16249,18 +16584,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16270,6 +16614,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16513,9 +16860,6 @@ msgstr "ì‚¬ìš©ìž ì´ë¦„"
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17184,6 +17528,51 @@ msgstr "Diff 제한"
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17310,6 +17699,9 @@ msgstr "%{path}ì— ëŒ€í•œ 변경 취소?"
msgid "Discard draft"
msgstr "초안 삭제"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17612,6 +18004,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -17903,6 +18298,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -17969,6 +18367,9 @@ msgstr ""
msgid "Email patch"
msgstr "패치를 ì´ë©”ì¼ë¡œ 보냄"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18065,6 +18466,9 @@ msgstr "빈 파ì¼"
msgid "Enable"
msgstr "사용"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18101,6 +18505,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18116,9 +18523,6 @@ msgstr "새로운 기능 메뉴 활성화: 현재 티어 전용"
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18182,6 +18586,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18197,9 +18604,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "ì´ ê·¸ë£¹ì˜ ëª¨ë“  프로ì íŠ¸ ë° í•˜ìœ„ ê·¸ë£¹ì— ëŒ€í•´ 공유 러너를 활성화합니다."
@@ -18287,6 +18691,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18602,6 +19009,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "ìž¬ë°°í¬ í™˜ê²½"
@@ -18704,15 +19114,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18725,9 +19132,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18743,9 +19147,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18755,9 +19156,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18773,10 +19171,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19678,9 +20076,6 @@ msgstr ""
msgid "Export as CSV"
msgstr "CSV로 내보내기"
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -19807,6 +20202,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -19890,6 +20288,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr "ë””ìžì¸ì— 대한 í•  ì¼ ëª©ë¡ì„ ìƒì„±í•˜ì§€ 못했습니다."
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -19905,16 +20306,13 @@ msgstr "리í¬ì§€í† ë¦¬ ìƒì„± 실패"
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -19953,9 +20351,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -19983,18 +20378,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr "ê·¸ë£¹ì„ ë¡œë“œí•˜ì§€ 못했습니다."
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20103,6 +20489,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20395,6 +20784,9 @@ msgstr "íŒŒì¼ ì´ë™ë¨"
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20674,9 +21066,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -20996,6 +21385,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "JSON ë°ì´í„°ë¡œ ìƒì„±"
@@ -21337,12 +21729,6 @@ msgstr "재ë™ê¸°í™”"
msgid "Geo|Resync all"
msgstr "ì „ì²´ 재ë™ê¸°í™”"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr "프로ì íŠ¸ 재ë™ê¸°í™”"
-
msgid "Geo|Retry count"
msgstr "ìž¬ì‹œë„ íšŸìˆ˜"
@@ -21352,12 +21738,6 @@ msgstr "재ì¸ì¦"
msgid "Geo|Reverify all"
msgstr "ì „ì²´ 재ì¸ì¦"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr "프로ì íŠ¸ 재ì¸ì¦"
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr "레플리케ì´ì…˜ ìƒíƒœë¥¼ 리뷰하고, í•­ëª©ì„ í”„ë¼ì´ë¨¸ë¦¬ 사ì´íŠ¸ì™€ 재ë™ê¸°í™” ë° ìž¬ì¸ì¦í•©ë‹ˆë‹¤."
@@ -21466,12 +21846,6 @@ msgstr "ì´ GitLab ì¸ìŠ¤í„´ìŠ¤ëŠ” %{insufficient_license} ìš”ê¸ˆì œì— ê°€ìž…ë
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "ì´ê²ƒì€ 모든 프로ì íŠ¸ë¥¼ 재ë™ê¸°í™”합니다. 완료하는 ë° ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다. ì •ë§ë¡œ 진행하시겠습니까?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "ì´ê²ƒì€ 모든 프로ì íŠ¸ë¥¼ 재ì¸ì¦í•©ë‹ˆë‹¤. 완료하는 ë° ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다. ì •ë§ë¡œ 진행하시겠습니까?"
-
msgid "Geo|Time in seconds"
msgstr "시간 (초)"
@@ -21529,9 +21903,6 @@ msgstr "프ë¼ì´ë¨¸ë¦¬"
msgid "Geo|secondary"
msgstr "세컨ë”리"
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21553,6 +21924,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21640,9 +22014,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHub 가져오기"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21871,7 +22248,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -21889,7 +22266,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22066,23 +22443,23 @@ msgstr ""
msgid "Global notification level"
msgstr "글로벌 알림 수준"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr "%{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr "%{count}ê°œì˜ ê¸°ë³¸ 결과가 제공ë˜ì—ˆìŠµë‹ˆë‹¤. 위/아래 화살표 키를 사용하여 검색 결과를 íƒìƒ‰í•˜ì„¸ìš”."
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
-msgstr "닫기"
+msgid "GlobalSearch|Archived"
+msgstr ""
msgid "GlobalSearch|Command palette"
msgstr ""
@@ -22141,6 +22518,9 @@ msgstr "ë‚´ê°€ 검토ìžì¸ 머지 리퀘스트"
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22162,18 +22542,15 @@ msgstr "GlobalSearch|최근 ì´ìŠˆ"
msgid "GlobalSearch|Recent merge requests"
msgstr "GlobalSearch|최근 머지 리퀘스트"
+msgid "GlobalSearch|Reset"
+msgstr ""
+
msgid "GlobalSearch|Result count is over limit."
msgstr "ê²°ê³¼ 수가 í•œë„를 초과했습니다."
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr "결과가 ì—…ë°ì´íŠ¸ë˜ì—ˆìŠµë‹ˆë‹¤. %{count}ê°œì˜ ê²°ê³¼ë¥¼ 사용할 수 있습니다. 위/아래 화살표 키를 사용하여 검색 결과를 íƒìƒ‰í•˜ê±°ë‚˜ 엔터 키를 눌러 제출하세요."
-msgid "GlobalSearch|Search"
-msgstr "검색"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "GitLab 검색"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "프로ì íŠ¸, ì´ìŠˆ, 기타 검색"
@@ -22201,9 +22578,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr "검색 ìžë™ 완성 ì œì•ˆì„ ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤."
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22213,9 +22587,6 @@ msgstr "입력하고 엔터 키를 눌러 검색하세요."
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "ì•„ëž˜ì— í‘œì‹œí•  새 ì œì•ˆì„ ìž…ë ¥í•˜ì„¸ìš”."
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "단축키 %{kbdOpen}/%{kbdClose}ì„(를) ì´ìš©í•´ ê²€ìƒ‰ì„ ì‹œìž‘í•´ 보세요."
-
msgid "GlobalSearch|Users"
msgstr "사용ìž"
@@ -22330,9 +22701,6 @@ msgstr "ì´ì „ 페ì´ì§€ë¡œ ì´ë™"
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22402,6 +22770,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22414,6 +22785,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22450,10 +22824,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr "GitLabì— ë¶€ì—¬ëœ ìŠ¹ì¸ì„ 취소합니다. ì´ê²ƒì´ 서비스 ê³„ì •ì„ ë¬´íš¨í™”í•˜ì§€ëŠ” 않습니다."
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22483,9 +22857,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr "확ì¸!"
-
msgid "Grafana URL"
msgstr ""
@@ -22624,6 +22995,9 @@ msgstr "그룹 정보:"
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22717,10 +23091,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -22984,6 +23361,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23005,6 +23385,9 @@ msgstr "배지"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23047,12 +23430,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr "ì´ë©”ì¼ ì•Œë¦¼ì´ ë¹„í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤."
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23077,6 +23469,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "ì¡°ì§ ë° ì—°ë½ì²˜ë¥¼ 만들고 ì´ìŠˆì™€ ì—°ê²°í•  수 있습니다."
@@ -23101,6 +23496,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr "GroupSettings|리í¬íŠ¸"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23143,6 +23544,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "ì´ ì„¤ì •ì€ %{ancestor_group} ì— ì ìš©ë˜ê³  ì´ í•˜ìœ„ 그룹ì—ì„œ ìž¬ì •ì˜ ë˜ì—ˆìŠµë‹ˆë‹¤."
@@ -23206,30 +23610,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23290,8 +23670,8 @@ msgstr "하위 그룹 만들기"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr "GroupsNew|소스 ì¸ìŠ¤í„´ìŠ¤ì˜ URLì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤."
-msgid "GroupsNew|GitLab source instance URL"
-msgstr "GroupsNew|GitLab 소스 ì¸ìŠ¤í„´ìŠ¤ URL"
+msgid "GroupsNew|GitLab source instance base URL"
+msgstr ""
msgid "GroupsNew|Groups"
msgstr ""
@@ -23332,7 +23712,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23455,6 +23835,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "ì†ë‹˜"
@@ -23509,6 +23892,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23763,10 +24155,6 @@ msgstr "스레드 숨기기"
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "값 숨기기"
-
msgid "Hide values"
msgstr "값 숨기기"
@@ -23785,6 +24173,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -23860,6 +24251,9 @@ msgstr "정리"
msgid "Housekeeping successfully started"
msgstr "정리가 성공ì ìœ¼ë¡œ 시작ë˜ì—ˆìŠµë‹ˆë‹¤"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -23950,6 +24344,9 @@ msgstr ""
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24062,7 +24456,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24074,7 +24468,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24146,6 +24543,9 @@ msgstr "새 코드 보내기"
msgid "IdentityVerification|Send code"
msgstr "코드 보내기"
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "ì •ìƒì ìœ¼ë¡œ 처리ë˜ì§€ 않았습니다. 다시 ì‹œë„í•´ 주세요."
@@ -24433,9 +24833,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24611,10 +25008,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24629,6 +25026,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24644,6 +25044,9 @@ msgstr "Import|저장소를 ìž„í¬íŠ¸ í•  수 없습니다. "
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25130,6 +25533,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr "ì¸í”„ë¼"
@@ -25255,9 +25661,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr "ì´ í”„ë¡œì íŠ¸ëŠ” insights.yml 파ì¼ì—ì„œ í•„í„°ë§ë©ë‹ˆë‹¤. (ìžì„¸í•œ ë‚´ìš©ì€ projects.only ì„¤ì •ì„ ì°¸ê³ í•˜ì„¸ìš”.)"
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25643,9 +26046,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -25851,10 +26251,10 @@ msgstr "ë” ë§Žì€ íšŒì›ì„ 가입시키기 위해서는 그룹 소유ìžê°€ %{
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26181,13 +26581,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26292,6 +26692,10 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26301,9 +26705,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26344,6 +26747,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "바로 너"
@@ -26473,6 +26879,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26602,6 +27011,9 @@ msgstr "Jira-GitLab ì‚¬ìš©ìž ë§¤í•‘ 템플릿"
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr "네임스페ì´ìŠ¤ë¥¼ ì°¾ì„ ìˆ˜ 없습니다. 충분한 ê¶Œí•œì´ ìžˆëŠ”ì§€ 확ì¸í•˜ì‹­ì‹œì˜¤."
@@ -26671,15 +27083,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr "Jira Connect 애플리케ì´ì…˜ ID"
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "Jira Connect 프ë¡ì‹œ URL"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26731,6 +27143,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -26779,6 +27197,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr "브랜치 %{branch_link}"
@@ -26938,7 +27359,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27208,6 +27629,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27217,6 +27641,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27289,6 +27716,9 @@ msgstr "Job|작업 로그 검색"
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27409,9 +27839,6 @@ msgstr "키 (PEM)"
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr "Key:"
@@ -27448,6 +27875,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27478,6 +27908,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27572,6 +28116,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27612,7 +28162,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr "마지막으로 액세스한 날"
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27630,6 +28180,9 @@ msgstr "마지막으로 액세스한 날"
msgid "Last activity"
msgstr "마지막 활ë™"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "최근 커밋"
@@ -27913,9 +28466,6 @@ msgstr "첫 번째 프로ì íŠ¸ì˜ CI/CD 설정"
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "GitLab Ultimate 무료 í‰ê°€íŒ 시작"
@@ -27946,6 +28496,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr "- í‰ê°€íŒì— í¬í•¨ë¨"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -27961,9 +28514,6 @@ msgstr ""
msgid "Leave"
msgstr "나가기"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28156,7 +28706,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28334,9 +28884,6 @@ msgstr "목ë¡"
msgid "List available repositories"
msgstr "사용 가능한 저장소 목ë¡"
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28370,6 +28917,9 @@ msgstr "ë” ë³´ê¸°"
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28523,12 +29049,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28583,9 +29103,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr "ë©”ì¸ ë©”ë‰´"
-
msgid "Maintainer"
msgstr "관리ìž"
@@ -29189,100 +29706,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29576,6 +30096,9 @@ msgstr "머지 리퀘스트 승ì¸"
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -29957,6 +30480,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -29990,15 +30516,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30008,15 +30528,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30029,9 +30543,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30068,6 +30579,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30291,9 +30805,15 @@ msgstr ""
msgid "Minimal Access"
msgstr "ìµœì†Œí•œì˜ ì•¡ì„¸ìŠ¤"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "분"
@@ -30387,9 +30907,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30405,6 +30922,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30435,96 +30955,147 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgstr "Machine Learning 실험 추ì ."
+
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
-msgstr "Machine Learning 실험 추ì ."
+msgid "MlExperimentTracking|Name"
+msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
+msgid "MlModelRegistry|ID"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30549,9 +31120,15 @@ msgstr "닫기"
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31117,9 +31694,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr "ë°°í¬"
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31132,9 +31706,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31562,15 +32133,15 @@ msgstr ""
msgid "No data available"
msgstr "ìžë£Œ ì—†ìŒ"
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31676,6 +32247,9 @@ msgstr "그런 ì´ë¦„ ë˜ëŠ” 설명ì´ìžˆëŠ” 다른 ë ˆì´ë¸”ì´ ì—†ìŠµë‹ˆë‹¤."
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -31821,18 +32395,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr "새 메뉴 환경 ì„¤ì •ì„ ì—…ë°ì´íŠ¸í•  수 없습니다. ë‚˜ì¤‘ì— ë‹¤ì‹œ ì‹œë„해주세요."
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "새로운 메뉴"
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "새 메뉴 토글"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -31842,6 +32404,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -31857,6 +32422,9 @@ msgstr "프로í…íŠ¸ëœ ë¸Œëžœì¹˜ì—는 사용할 수 없습니다."
msgid "Not confidential"
msgstr "공개ë¨"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -31875,6 +32443,9 @@ msgstr ""
msgid "Not supported"
msgstr "지ì›ë˜ì§€ ì•ŠìŒ"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "리뷰어: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32080,6 +32654,12 @@ msgstr "알림 사용 설정ë¨"
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32128,6 +32708,12 @@ msgstr "Notify|%{paragraph_start}안녕하세요 %{name}!%{paragraph_end} %{para
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32158,18 +32744,15 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr "머지 리퀘스트 %{mr_link} ì— ëŒ€í•œ 모든 í† ë¡ ì´ %{name}ì— ì˜í•´ í•´ê²°ë˜ì—ˆìŠµë‹ˆë‹¤."
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr "그리고 %{total_stripped_new_commits_count} ê°œ ë”"
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "담당ìžê°€ %{fromNames} ì—ì„œ %{toNames}ë¡œ 변경ë¨"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "담당ìžê°€ %{toNames}ë¡œ 변경ë¨"
-
msgid "Notify|Author: %{author_name}"
msgstr ""
@@ -32215,6 +32798,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32239,6 +32825,9 @@ msgstr "ì´ ë„ë©”ì¸ì„ GitLab 페ì´ì§€ì™€ 함께 ë” ì´ìƒ 사용하지 ì•Šì
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32329,6 +32918,9 @@ msgstr "%{project_name} 프로ì íŠ¸ë¥¼ 내보낼 수 없습니다."
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32344,6 +32936,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "ìžë™ DevOps 파ì´í”„ë¼ì¸ì€ 파ì´í”„ë¼ì¸ %{pipeline_link} ì— ëŒ€í•´ 실패했으며 %{project_link}ì— ëŒ€í•´ 비활성화ë˜ì—ˆìŠµë‹ˆë‹¤. 프로ì íŠ¸ì—ì„œ Auto DevOps 파ì´í”„ë¼ì¸ì„ 사용하려면 %{supported_langs_link}를 검토하고 ê·¸ì— ë”°ë¼ í”„ë¡œì íŠ¸ë¥¼ ì¡°ì •í•œ ë‹¤ìŒ %{settings_link}ë‚´ì—ì„œ Auto DevOps 파ì´í”„ë¼ì¸ì„ 켜십시오."
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr "ì´ íŒŒì¼ì— 대한 diff는 너무 커서 í¬í•¨ë˜ì§€ 않았습니다."
@@ -32356,7 +32951,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr "ë°œìƒí•œ 오류는 다ìŒê³¼ 같습니다."
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32485,6 +33080,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32503,27 +33101,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr "ì´ëŸ°, 확실합니까?"
-
msgid "Open"
msgstr "열기"
@@ -33105,9 +33721,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr "사ì´ë“œë°” 열기"
-
msgid "Open: %{open}"
msgstr ""
@@ -33198,6 +33811,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33216,6 +33832,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33264,7 +33886,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr "공개 - ì¸ì¦ ì—†ì´ ì¡°ì§ì— 액세스할 수 있습니다."
@@ -33408,6 +34042,66 @@ msgstr "개요"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33477,6 +34171,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33552,6 +34249,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -33762,6 +34462,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -33844,6 +34553,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -33862,6 +34574,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -33928,6 +34643,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -33964,6 +34682,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34105,6 +34826,9 @@ msgstr "비밀번호 ì¸ì¦ì„ 사용할 수 없습니다."
msgid "Password confirmation"
msgstr "비밀번호 확ì¸"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "비밀번호가 성공ì ìœ¼ë¡œ 변경ë˜ì—ˆìŠµë‹ˆë‹¤."
@@ -34252,6 +34976,9 @@ msgstr "머지 리퀘스트로 코드 리뷰를 수행하고 í˜‘ì—…ì„ ê°•í™”í•©
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "성능 최ì í™”"
@@ -34396,6 +35123,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -34813,6 +35543,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -34873,12 +35627,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -34897,9 +35645,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -34972,6 +35717,9 @@ msgstr "파ì´í”„ë¼ì¸ 로딩중"
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35008,6 +35756,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Runnerì˜ ìºì‹œë¥¼ ë¹„ìš°ë˜ ì¤‘ 오류가 ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤."
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35926,9 +36680,6 @@ msgstr "페ì´ë¡œë“œ 미리보기"
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr "ì´ì „ 커밋"
@@ -36124,6 +36875,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36232,6 +36986,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36352,7 +37109,7 @@ msgstr "프로필"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36718,7 +37475,7 @@ msgstr "ì‚¬ìš©ìž ì´ë¦„ì„ ì„±ê³µì ìœ¼ë¡œ 바꿨습니다"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37022,7 +37779,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr "í¬í¬"
msgid "ProjectOverview|Go to your fork"
@@ -37049,11 +37806,26 @@ msgstr "프로ì íŠ¸ í•œë„ì— ë„달했습니다."
msgid "ProjectOverview|You must sign in to star a project"
msgstr "프로ì íŠ¸ì— ë³„ì„ í‘œì‹œí•˜ë ¤ë©´ 로그ì¸í•´ì•¼í•©ë‹ˆë‹¤."
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "프로ì íŠ¸ ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr ""
@@ -37271,6 +38043,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37358,9 +38133,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37478,6 +38250,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37523,6 +38298,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -37940,29 +38718,9 @@ msgstr ""
msgid "Projects with write access"
msgstr "쓰기 ê¶Œí•œì´ ìžˆëŠ” 프로ì íŠ¸"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "ìžì£¼ 방문하는 프로ì íŠ¸"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "프로ì íŠ¸ 로딩"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "ìžì£¼ 방문하는 프로ì íŠ¸ëŠ” ì—¬ê¸°ì— í‘œì‹œë©ë‹ˆë‹¤"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "프로ì íŠ¸ 검색"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "문제가 ë°œìƒí–ˆìŠµë‹ˆë‹¤."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "죄송합니다, 검색과 ì¼ì¹˜í•˜ëŠ” 프로ì íŠ¸ëŠ” 없습니다."
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "ì´ í”„ë¡œì íŠ¸ì˜ 리í¬ì§€í† ë¦¬ë¥¼ 즉시 복제할 수 있습니다. 기존 리í¬ì§€í† ë¦¬ë¥¼ 푸시할 계íšì´ë¼ë©´ ì´ ë‹¨ê³„ë¥¼ 건너ëœë‹ˆë‹¤."
@@ -37997,6 +38755,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38060,6 +38821,9 @@ msgstr "외부 리í¬ì§€í† ë¦¬ì— 대한 CI/CD 실행"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38653,12 +39417,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr "환경"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr "ProtectedEnvironment|ë³´í˜¸ëœ ì—…ìŠ¤íŠ¸ë¦¼ 환경"
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr "ProtectedEnvironment|ì´ ê·¸ë£¹ì— ëŒ€í•œ 세부 정보를 로드하지 못했습니다."
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr "ì´ í”„ë¡œì íŠ¸ì˜ í™˜ê²½ì€ ë³´í˜¸ë˜ì§€ 않습니다."
@@ -38740,9 +39510,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr "ì˜ê²¬ 보내기"
@@ -38788,6 +39555,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr "공개 프로ì íŠ¸ 컴퓨팅 비용 팩터"
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39230,9 +40000,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39408,6 +40175,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39462,6 +40232,9 @@ msgstr "ë‚˜ì¤‘ì— ë‹¤ì‹œ 알림"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "삭제"
@@ -39522,6 +40295,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr "ì—픽 참조 ì‚­ì œ"
@@ -39624,6 +40400,9 @@ msgstr "그룹ì—ì„œ ì‚¬ìš©ìž ì œê±°"
msgid "Remove user from project"
msgstr "프로ì íŠ¸ì—ì„œ ì‚¬ìš©ìž ì œê±°"
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39702,6 +40481,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -39759,9 +40541,6 @@ msgstr "ì—픽 다시 열기"
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -39828,9 +40607,6 @@ msgstr "댓글로 ì‘답"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40263,6 +41039,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,7 +41101,7 @@ msgstr "확ì¸ëœ GitLab ì´ë©”ì¼ ì£¼ì†Œê°€ 필요합니다."
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40391,9 +41170,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr "ì´ëŸ¬í•œ 충ëŒì„ 해결하거나 ì´ ë¦¬í¬ì§€í† ë¦¬ì— 대한 쓰기 ê¶Œí•œì´ ìžˆëŠ” 사람ì—게 로컬ì—ì„œ 해결하ë„ë¡ ìš”ì²­í•˜ì‹­ì‹œì˜¤."
-
msgid "Resolve thread"
msgstr ""
@@ -40517,10 +41293,6 @@ msgstr ""
msgid "Retry verification"
msgstr "ê²€ì¦ ìž¬ì‹œë„"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "값 표시"
-
msgid "Reveal values"
msgstr ""
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] "%dëª…ì˜ ë¦¬ë·°ì–´"
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr "리뷰어"
@@ -40624,9 +41405,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40959,6 +41737,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41231,6 +42012,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41351,7 +42135,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41360,9 +42144,6 @@ msgstr "ìƒì†ëœ 항목만 표시"
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr "삭제하는 ë™ì•ˆ 문제가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 다시 ì‹œë„하려면 페ì´ì§€ë¥¼ 새로고침하세요."
@@ -41587,9 +42368,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "실행중"
@@ -41761,9 +42557,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -41782,6 +42587,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -41803,21 +42611,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -41842,6 +42668,9 @@ msgstr "네임스페ì´ìŠ¤ ì„ íƒ"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "스ìºë„ˆ 프로필 ì„ íƒ"
@@ -41851,6 +42680,9 @@ msgstr "사ì´íŠ¸ 프로필 ì„ íƒ"
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr "트리거:"
@@ -41866,6 +42698,9 @@ msgstr "ì—ì´ì „트"
msgid "ScanExecutionPolicy|branch"
msgstr "ScanExecutionPolicy|브랜치"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -41926,9 +42761,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -41980,34 +42812,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42034,15 +42857,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42055,7 +42872,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42208,6 +43043,9 @@ msgstr ""
msgid "Search files"
msgstr "íŒŒì¼ ê²€ìƒ‰"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42390,6 +43228,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr "주ì„ì— í† í°ì´ 있는 것 같습니다. 추가하시겠습니까?"
@@ -42399,6 +43240,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42456,6 +43327,9 @@ msgstr "보안 대시보드"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42543,7 +43417,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42645,6 +43519,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42654,6 +43531,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42672,12 +43558,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr "작업 추가"
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr "새 승ì¸ìž 추가"
@@ -42690,6 +43582,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -42720,6 +43615,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -42732,10 +43630,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -42744,6 +43642,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -42816,6 +43720,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr "SecurityOrchestration|ì´ë¯¸ì§€ë¥¼ 로드하지 못했습니다."
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,7 +43735,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -42843,6 +43753,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -42858,6 +43771,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -42885,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -42910,6 +43829,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -42997,12 +43919,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43036,6 +43964,12 @@ msgstr "ì‚¬ìš©ìž ì„ íƒ"
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43069,6 +44003,12 @@ msgstr "SecurityOrchestration|ì´ %{namespaceType} ì—는 보안 ì •ì±…ì´ í¬í•
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43153,12 +44093,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43195,6 +44150,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43381,6 +44339,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43432,6 +44393,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43447,12 +44411,6 @@ msgstr "SecurityReports|ì´ë¯¸ì§€"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43586,6 +44544,9 @@ msgstr "ì•„ì§ ê°ì§€ë¨"
msgid "SecurityReports|Submit vulnerability"
msgstr "취약성 제출"
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43685,6 +44646,18 @@ msgstr "보안 êµìœ¡ìœ¼ë¡œ í•´ê²°"
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -43952,6 +44925,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44114,9 +45090,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44156,6 +45138,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44216,7 +45204,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44225,6 +45216,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44423,9 +45420,6 @@ msgstr "CI/CD 설정"
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44441,6 +45435,9 @@ 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."
msgstr "다른 리í¬ì§€í† ë¦¬ë¡œ/ì—ì„œ ë³€ê²½ì‚¬í•­ì„ ìžë™ìœ¼ë¡œ push ë°/ë˜ëŠ” pull 하ë„ë¡ ë‹¹ì‹ ì˜ í”„ë¡œì íŠ¸ë¥¼ 설정합니다. 브랜치, 태그, ì»¤ë°‹ì€ ëª¨ë‘ ìžë™ìœ¼ë¡œ ë™ê¸°í™”ë©ë‹ˆë‹¤."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "가중치 설정"
@@ -44519,19 +45516,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-
msgid "Settings"
msgstr "설정"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr "머지 ë¦¬í€˜ìŠ¤íŠ¸ì— ëŒ€í•œ 옵션 ì„¤ì •ì„ ë¡œë“œí•  수 없습니다. 페ì´ì§€ë¥¼ 다시 로드해 보십시오."
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44589,27 +45600,6 @@ msgstr "사용ìžê°€ 리í¬ì§€í† ë¦¬ë³„ë¡œ 분당 수행할 수 있는 Git ìž‘ì—
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr "Shimo ìž‘ì—… ê³µê°„ì„ í™œì„±í™”í–ˆìŠµë‹ˆë‹¤. Shimoì—ì„œ ë‹¹ì‹ ì˜ ìœ„í‚¤ë¥¼ ì§ì ‘ ë³¼ 수 있습니다."
-
msgid "Short name"
msgstr ""
@@ -44872,9 +45862,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -44923,20 +45910,14 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr "가입 제한"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "SignUp| %{button_text} ì„ í´ë¦­í•˜ê±°ë‚˜ ì œ3ìžë¥¼ 통해 등ë¡í•˜ë©´ GitLab%{link_start} ì´ìš© ì•½ê´€ì— ë™ì˜í•˜ê³  ê°œì¸ ì •ë³´ 보호 ì •ì±… ë° ì¿ í‚¤ ì •ì±…%{link_end}ì— ë™ì˜í•˜ëŠ” 것입니다."
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "SignUp| %{button_text} ì„ í´ë¦­í•˜ê±°ë‚˜ ì œ3ìžë¥¼ 통해 등ë¡í•˜ë©´ GitLab%{link_start} ì´ìš© ì•½ê´€ì— ë™ì˜í•˜ê³  ê°œì¸ ì •ë³´ 보호 ì •ì±… ë° ì¿ í‚¤ ì •ì±…%{link_end}ì— ë™ì˜í•˜ëŠ” 것입니다."
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "로그ì¸í•˜ë©´ %{link_start}ì´ìš©ì•½ê´€ ë° ê°œì¸ì •ë³´ 보호정책 ë° ì¿ í‚¤ ì •ì±…%{link_end}ì— ë™ì˜í•˜ê²Œ ë©ë‹ˆë‹¤."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr ""
@@ -45235,6 +46216,9 @@ msgstr "스마트카드"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "스마트카드 ì¸ì¦ 실패: í´ë¼ì´ì–¸íŠ¸ ì¸ì¦ì„œ í—¤ë”ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤."
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45292,6 +46276,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45352,7 +46339,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr "ì¸ê¸°"
msgid "SortOptions|Priority"
msgstr "우선 순위"
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -45709,7 +46693,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -45730,12 +46714,6 @@ msgstr "최근 시작"
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr "가중치"
@@ -45931,6 +46909,10 @@ msgstr ""
msgid "Standard"
msgstr "표준"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46231,9 +47213,6 @@ msgstr "í„°ë¯¸ë„ ì¤‘ì§€"
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr "ì´ í™˜ê²½ 중지"
@@ -46315,9 +47294,6 @@ msgstr ""
msgid "Submit as spam"
msgstr "스팸으로 제출"
-msgid "Submit feedback"
-msgstr "피드백 보내기"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -46961,9 +47940,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr "스위치 브랜치/태그"
-msgid "Switch to GitLab Next"
-msgstr "GitLab Next로 전환"
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47234,13 +48210,22 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] "출처"
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47256,21 +48241,6 @@ msgstr ""
msgid "Target branch"
msgstr "ëŒ€ìƒ ë¸Œëžœì¹˜"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47551,6 +48521,9 @@ msgstr ""
msgid "Test settings"
msgstr "테스트 설정"
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -47744,6 +48717,9 @@ msgstr "ì´ìŠˆ 트래커는 프로ì íŠ¸ì—ì„œ 개선해야하거나 í•´ê²°í•´ì•
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "ì´ìŠˆ 트래커는 프로ì íŠ¸ì—ì„œ 개선해야하거나 해결해야할 ì‚¬í•­ì„ ì¶”ê°€í•  수 있는 곳입니다. ì´ í”„ë¡œì íŠ¸ì—ì„œ ì´ìŠˆë¥¼ 만들려면 가입하거나 로그ì¸í•˜ì‹­ì‹œì˜¤."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -47768,6 +48744,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -47786,9 +48768,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -47828,16 +48807,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48085,6 +49070,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "리í¬ì§€í† ë¦¬ë¥¼ cloneí•  ë•Œ GitLabì—ì„œ 가져올 변경 ì‚¬í•­ì˜ ìˆ˜ìž…ë‹ˆë‹¤. ë‚®ì€ ê°’ì€ íŒŒì´í”„ë¼ì¸ 실행 ì†ë„를 ë†’ì¼ ìˆ˜ 있습니다. ê° ìž‘ì—…ì— ëŒ€í•œ 모든 브랜치 ë° íƒœê·¸ë¥¼ 가져오려면 %{code_open}0%{code_close} ë˜ëŠ” 공백으로 설정하세요."
@@ -48223,6 +49211,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48274,13 +49265,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
-msgstr ""
-
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48451,6 +49439,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr "프로ì íŠ¸ 사용ìžë¥¼ 가져오는 ì¤‘ì— ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤."
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48646,6 +49637,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -48736,9 +49730,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "ì´ ë¸”ë¡ì€ ìžì²´ 참조입니다."
@@ -48775,6 +49775,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -48967,9 +49970,6 @@ msgstr "ë‹¹ì‹ ì„ ìœ„í•´ ìƒì„±ëœ ê°œì¸ ì´ë©”ì¼ ì£¼ì†Œ%{helpIcon}입니다.
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49114,12 +50114,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "즉, 빈 리í¬ì§€í† ë¦¬ë¥¼ 만들거나 기존 저장소를 가져올 때까지 코드를 Push í•  수 없습니다."
-msgid "This merge request branch is protected from force push."
-msgstr "ì´ ë¨¸ì§€ 리퀘스트 브랜치는 ê°•ì œ push로부터 보호ë©ë‹ˆë‹¤."
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr "ì´ ë¨¸ì§€ 리퀘스트는 충ëŒì´ 있는 ë™ì•ˆ 리베ì´ìŠ¤í•  수 없습니다."
-
msgid "This merge request does not have accessibility reports"
msgstr "ì´ ë¨¸ì§€ 리퀘스트ì—는 접근성 리í¬íŠ¸ê°€ 없습니다."
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "ì´ í”„ë¡œì„¸ìŠ¤ëŠ” 프로ì íŠ¸ 리í¬ì§€í† ë¦¬ ë° ëª¨ë“  관련 리소스를 삭제합니다."
@@ -49809,9 +50807,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr "ì´ëŸ¬í•œ ë²„ì „ì´ ìžˆì„ ë•Œ ì´ í”„ë¡œì íŠ¸ 리í¬ì§€í† ë¦¬ì˜ ìƒíƒœë¥¼ 찾으려면 %{link_start}태그%{link_end}를 확ì¸í•˜ì‹­ì‹œì˜¤."
@@ -49855,6 +50850,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -49960,8 +50958,8 @@ msgstr "í•  ì¼ í•­ëª©ì´ ì„±ê³µì ìœ¼ë¡œ 완료로 표시ë˜ì—ˆìŠµë‹ˆë‹¤."
msgid "Today"
msgstr "오늘"
-msgid "Todos count"
-msgstr "í•  ì¼ì˜ìˆ˜"
+msgid "Todos| What actions create to-do items?"
+msgstr ""
msgid "Todos|Added"
msgstr "추가ë¨"
@@ -49975,9 +50973,6 @@ msgstr "모든 작업"
msgid "Todos|Any Type"
msgstr "모든 유형"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr "할당ë¨"
@@ -50035,6 +51030,9 @@ msgstr "언급함"
msgid "Todos|Merge request"
msgstr "머지 리퀘스트"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "í•  ì¼ ëª©ë¡ì— ì•„ë¬´ê²ƒë„ ì—†ìŠµë‹ˆë‹¤. 잘 하셨어요!"
@@ -50071,6 +51069,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr "ê°€ %{what} %{which}ì— ëŒ€í•œ 액세스를 요청했습니다"
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50113,7 +51114,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50125,9 +51126,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr "토글 네비게ì´ì…˜"
-
msgid "Toggle project select"
msgstr ""
@@ -50143,10 +51141,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50188,18 +51186,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "íƒìƒ‰"
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr "전환"
-
-msgid "TopNav|Your dashboards"
-msgstr "내 대시보드"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "토픽 %{source_topic} ì´ %{target_topic} í† í”½ì— ì„±ê³µì ìœ¼ë¡œ 병합ë˜ì—ˆìŠµë‹ˆë‹¤."
@@ -50267,6 +51253,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "모든 커밋 / ë¨¸ì§€ì˜ ì´ í…ŒìŠ¤íŠ¸ 시간"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "ì´ ì‚¬ìš©ìž"
@@ -50291,16 +51283,33 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50360,10 +51369,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50498,27 +51507,6 @@ msgstr ""
msgid "Trending"
msgstr "ì¸ê¸°"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50534,28 +51522,19 @@ msgstr "%{planName} í‰ê°€íŒ"
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50697,12 +51676,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "트위터:"
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -50778,15 +51751,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL ë˜ëŠ” 요청 ID"
@@ -50952,9 +51940,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr "í™˜ê²½ì„ ë§Œë“¤ ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤."
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51030,7 +52027,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51234,6 +52234,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51372,7 +52375,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51387,9 +52393,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51411,13 +52414,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51450,7 +52453,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51489,7 +52492,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "저장 공간"
@@ -51768,12 +52768,6 @@ msgstr "템플릿 사용"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -51786,6 +52780,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -51850,6 +52850,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "ì‚¬ìš©ìž ID"
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52405,22 +53411,27 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52438,6 +53449,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52540,15 +53554,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr "여러가지 컨테ì´ë„ˆ 레지스트리 설정."
@@ -52630,9 +53635,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52651,15 +53653,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr "모든 그룹 보기"
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr "모든 프로ì íŠ¸ 보기"
-
msgid "View blame"
msgstr ""
@@ -52757,6 +53753,9 @@ msgstr "열린 머지 리퀘스트보기"
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -52788,6 +53787,9 @@ msgstr "문서 보기"
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -52863,6 +53865,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -52932,6 +53937,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "URLì˜ ë¯¼ê°í•œ 부분"
@@ -54207,6 +55218,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "ì •ë§ íŽ¸ì§‘ì„ ì·¨ì†Œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
@@ -54229,6 +55243,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54274,6 +55291,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54310,15 +55330,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "반복 ì—†ìŒ"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "ì¼ì¹˜í•˜ëŠ” 결과가 없습니다"
@@ -54349,9 +55381,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54373,12 +55402,15 @@ msgstr "요구 사항"
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr "%{workItemType}ì„ ì‚­ì œí•  ë•Œ 문제가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 다시 ì‹
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54403,9 +55438,6 @@ msgstr "ë°˜ë³µì„ ê°€ì ¸ì˜¬ ë•Œ 문제가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 다시 ì‹œë„í•´ ì
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "ìž‘ì—…ì„ ê°€ì ¸ì˜¬ ë•Œ 문제가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì´ íŽ˜ì´ì§€ë¥¼ 새로고침하세요."
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54535,7 +55567,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54553,6 +55585,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54631,7 +55666,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54685,6 +55720,12 @@ msgstr "릴리스 노트를 작성하거나 여기로 파ì¼ì„ ëŒì–´ë‹¤ 놓으
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -54712,6 +55753,9 @@ msgstr "어제"
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr "ì´ ì•Œë¦¼ì— ëŒ€í•´ ì´ë¯¸ 보류 ì¤‘ì¸ ìž‘ì—…ì´ ìžˆìŠµë‹ˆë‹¤."
@@ -55079,10 +56123,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55136,6 +56180,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55164,6 +56211,9 @@ msgstr[0] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55197,7 +56247,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55209,7 +56259,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55242,6 +56292,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55281,6 +56334,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55492,6 +56548,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55504,6 +56563,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55519,10 +56581,10 @@ msgstr "그룹 %{group_name} ì— ëŒ€í•œ CoC CSV 내보내기가 ì´ ì´ë©”ì¼ì—
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "무료 최ìƒìœ„ ê·¸ë£¹ì¸ %{group_name}ì—는 %{free_users_limit}를 초과하는 사용ìžê°€ 있고 %{free_storage_limit}를 초과하는 ë°ì´í„°ë¥¼ 사용합니다. 사용 í•œë„ê°€ 무료 최ìƒìœ„ ê·¸ë£¹ì— ì ìš©ëœ 후 ì´ ê·¸ë£¹ì˜ í”„ë¡œì íŠ¸ëŠ” %{read_only_link_start}ì½ê¸° ì „ìš© ìƒíƒœ%{link_end}ê°€ ë©ë‹ˆë‹¤. ê·¸ë£¹ì´ ì½ê¸° ì „ìš©ì´ ë˜ì§€ ì•Šë„ë¡ í•˜ë ¤ë©´ ì´ ê·¸ë£¹ì˜ ì†Œìœ ìž ì—­í• ì„ ê°€ì§„ 사용ìžì—게 ì—°ë½í•˜ì—¬ 유료 계층으로 업그레ì´ë“œí•˜ê±°ë‚˜ ì‚¬ìš©ëŸ‰ì„ ê´€ë¦¬í•´ì•¼ 합니다. ì˜ˆì •ëœ ì‚¬ìš© ì œí•œì— ëŒ€í•œ ìžì„¸í•œ ë‚´ìš©ì€ %{faq_link_start}FAQ%{link_end}참조하십시오."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
+msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55724,6 +56786,9 @@ msgstr ""
msgid "Your name"
msgstr "ê·€í•˜ì˜ ì´ë¦„"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -55757,6 +56822,9 @@ msgstr "ë‚´ 프로ì íŠ¸"
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -55893,6 +56961,9 @@ msgstr "[Redacted]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56121,11 +57192,11 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
-msgstr "구성ì›ì´ ì‚¬ìš©ìž ì§€ì • ì—­í• ê³¼ ì—°ê²°ë˜ì–´ 있으므로 변경할 수 없습니다."
+msgid "cannot be changed if a personal project has container registry tags."
+msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr ""
@@ -56193,9 +57264,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56238,7 +57306,7 @@ msgstr "웹 ì‘ìš© í”„ë¡œê·¸ëž¨ì˜ ë°°í¬ëœ 버전ì—ì„œ 알려진 취약ì ì„
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56275,17 +57343,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56404,15 +57461,18 @@ msgstr "ciReport|수ë™ìœ¼ë¡œ 추가ë¨"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr "머지 리퀘스트를 통해 해결"
@@ -56470,9 +57530,6 @@ msgstr "ì·¨ì•½ì  í•´ì œì— ì—러가 ìƒê²¼ìŠµë‹ˆë‹¤. 다시 ì‹œë„해주세요
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56923,6 +57980,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57083,6 +58143,9 @@ msgstr "변경 ì‚¬í•­ì´ %{mergeCommitSha}%{squashedCommits}와 함께 %{targetB
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "ë³€ê²½ì‚¬í•­ë“¤ì´ %{targetBranch}ì— ë¨¸ì§€ë˜ì§€ 않았습니다."
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr "병합 ìš”ì²­ì— ë³€ê²½ ì‚¬í•­ì´ ì—†ìŠµë‹ˆë‹¤."
@@ -57418,6 +58481,18 @@ msgstr "Debian 패키지여야 합니다"
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57463,6 +58538,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57481,6 +58559,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57514,6 +58595,9 @@ msgstr "리í¬ì§€í† ë¦¬ê°€ 있어야 합니다"
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57746,6 +58830,9 @@ msgstr ""
msgid "remove weight"
msgstr "가중치 제거"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr "%{link_type} ë§í¬ë¥¼ 제거했습니다"
@@ -57772,9 +58859,6 @@ msgstr[0] "리í¬ì§€í† ë¦¬"
msgid "repository:"
msgstr "리í¬ì§€í† ë¦¬:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr "ì—­í• ì˜ ê¸°ë³¸ 액세스 ìˆ˜ì¤€ì´ ë©¤ë²„ì‹­ì˜ ì•¡ì„¸ìŠ¤ 수준과 ì¼ì¹˜í•˜ì§€ 않습니다."
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -57945,6 +59029,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr "ë‹¤ìŒ ì—픽"
@@ -57954,6 +59041,9 @@ msgstr "ë‹¤ìŒ ì¸ì‹œë˜íŠ¸ í˜¹ì€ ì´ìŠˆ"
msgid "the following issues"
msgstr "ë‹¤ìŒ ì´ìŠˆ"
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ku_TR/gitlab.po b/locale/ku_TR/gitlab.po
index 0b7df5c019f..cef3e26ebcb 100644
--- a/locale/ku_TR/gitlab.po
+++ b/locale/ku_TR/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ku\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ky_KG/gitlab.po b/locale/ky_KG/gitlab.po
index 88f29fadc30..fa9a434ebd2 100644
--- a/locale/ky_KG/gitlab.po
+++ b/locale/ky_KG/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ky\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/lt_LT/gitlab.po b/locale/lt_LT/gitlab.po
index 53888bd1352..8e9010fc863 100644
--- a/locale/lt_LT/gitlab.po
+++ b/locale/lt_LT/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: lt\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -201,13 +201,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -250,13 +243,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -299,13 +285,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -418,6 +397,13 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -721,6 +707,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -767,15 +756,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -909,12 +889,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -951,6 +925,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1125,6 +1102,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1408,6 +1391,9 @@ msgstr[3] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1517,7 +1503,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1532,6 +1521,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1586,6 +1578,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1619,9 +1617,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1677,9 +1693,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1710,7 +1723,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2078,9 +2091,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,7 +2196,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3312,9 +3361,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3468,15 +3514,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3486,9 +3532,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4560,6 +4609,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4593,6 +4645,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4704,18 +4759,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5064,6 +5125,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -5094,9 +5164,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5208,12 +5278,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5235,9 +5311,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5298,9 +5371,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5316,9 +5386,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5394,9 +5461,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5625,12 +5689,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6131,6 +6200,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,16 +6233,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6170,9 +6257,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6714,9 +6798,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6780,6 +6861,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6795,9 +6879,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7023,6 +7101,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,13 +7228,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7647,12 +7737,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7677,12 +7761,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7734,9 +7824,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7749,9 +7836,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7797,16 +7890,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7818,7 +7914,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7833,7 +7929,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7938,9 +8034,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8758,9 +8815,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8854,6 +8908,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8863,6 +8920,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8929,15 +8998,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9013,6 +9100,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9025,6 +9115,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9325,6 +9418,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9358,9 +9457,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,16 +9478,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9451,7 +9574,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,16 +9893,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10244,6 +10367,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10360,6 +10486,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10372,6 +10501,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10444,6 +10579,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10501,6 +10639,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10582,9 +10726,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,25 +10843,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10816,6 +10984,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10903,13 +11083,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10933,10 +11122,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11168,9 +11369,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12382,6 +12598,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12430,6 +12649,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12710,13 +12935,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,10 +13022,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12773,9 +13040,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12788,6 +13061,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13292,7 +13598,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14069,7 +14381,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14081,6 +14393,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14144,6 +14459,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14216,9 +14534,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14402,6 +14717,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14495,9 +14816,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14627,9 +14945,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14876,6 +15194,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15086,6 +15407,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15375,9 +15702,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15716,6 +16040,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16632,19 +16962,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16786,9 +17109,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16834,18 +17157,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16855,6 +17187,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17107,9 +17442,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17919,6 +18296,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18227,6 +18607,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18518,6 +18901,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18584,6 +18970,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18680,6 +19069,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18716,6 +19108,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18731,9 +19126,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19217,6 +19612,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19319,15 +19717,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20428,6 +20811,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20517,6 +20903,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20532,16 +20921,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20730,6 +21104,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21025,6 +21402,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21976,12 +22356,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21991,12 +22365,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22105,12 +22473,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22510,7 +22875,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,22 +23070,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22780,6 +23145,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,16 +23169,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22852,9 +23214,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22969,9 +23328,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23053,6 +23412,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23263,6 +23622,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23356,10 +23718,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23644,6 +24012,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23686,12 +24057,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,7 +24339,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24094,6 +24462,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Hide values"
msgstr ""
@@ -24433,6 +24806,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,7 +25104,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24797,6 +25179,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25090,9 +25475,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26523,10 +26908,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26853,13 +27238,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26964,6 +27349,13 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27964,6 +28376,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28084,9 +28499,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28123,6 +28535,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28153,6 +28568,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28250,6 +28779,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28293,7 +28828,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28311,6 +28846,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28630,6 +29165,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28858,7 +29393,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29168,39 +29703,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29894,100 +30396,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30704,15 +31215,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30722,15 +31227,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30743,9 +31242,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30782,6 +31278,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31104,9 +31609,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,102 +31657,153 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31846,9 +32408,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31861,9 +32420,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32408,6 +32964,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32610,6 +33163,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32728,6 +33284,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32827,6 +33386,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32875,6 +33440,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32905,16 +33476,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32986,6 +33557,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33076,6 +33650,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33091,6 +33668,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33103,7 +33683,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33858,9 +34459,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34230,6 +34909,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34600,6 +35294,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34618,6 +35315,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34684,6 +35384,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34861,6 +35567,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35008,6 +35717,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35152,6 +35864,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35653,9 +36386,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35728,6 +36458,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35764,6 +36497,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,7 +37850,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37474,7 +38216,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37781,7 +38523,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37808,10 +38550,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38030,6 +38787,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38282,6 +39042,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38699,29 +39462,12 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38756,6 +39502,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38819,6 +39568,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39418,12 +40170,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39505,9 +40263,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40179,6 +40934,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40233,6 +40991,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40293,6 +41054,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40473,6 +41240,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40599,9 +41366,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41312,13 +42076,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Reveal values"
msgstr ""
@@ -41365,6 +42122,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41775,6 +42538,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42053,6 +42819,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,9 +42951,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42415,9 +43181,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42589,9 +43370,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42679,6 +43493,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43251,6 +44074,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,7 +44263,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44311,12 +45260,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44453,6 +45396,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45796,19 +46765,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46108,6 +47071,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46567,9 +47536,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46582,7 +47548,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46603,12 +47569,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46804,6 +47764,13 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47104,9 +48071,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47837,9 +48801,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48117,9 +49081,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48442,6 +49397,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48638,6 +49596,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,16 +49686,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48985,6 +49955,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49123,6 +50096,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,13 +50150,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49867,9 +50855,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50869,7 +51855,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50944,6 +51927,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51022,7 +52011,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51052,10 +52038,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51693,15 +52660,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,7 +52936,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52326,13 +53323,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52683,12 +53677,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53323,22 +54323,42 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53548,9 +54562,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55140,6 +56160,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55309,12 +56347,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55648,6 +56698,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56223,6 +57285,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56705,6 +57779,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,10 +58161,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57385,15 +58445,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57451,9 +58514,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58816,9 +59906,6 @@ msgstr[3] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59004,6 +60094,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/mk_MK/gitlab.po b/locale/mk_MK/gitlab.po
index d07f746f3c0..b2c531e82a8 100644
--- a/locale/mk_MK/gitlab.po
+++ b/locale/mk_MK/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: mk\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ml_IN/gitlab.po b/locale/ml_IN/gitlab.po
index 24f1bbf57fa..bdb53cccb1e 100644
--- a/locale/ml_IN/gitlab.po
+++ b/locale/ml_IN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ml-IN\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/mn_MN/gitlab.po b/locale/mn_MN/gitlab.po
index 9a53c8570a3..ea3ee917277 100644
--- a/locale/mn_MN/gitlab.po
+++ b/locale/mn_MN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: mn\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ms_MY/gitlab.po b/locale/ms_MY/gitlab.po
index 40bf3c8492a..637ff8c0110 100644
--- a/locale/ms_MY/gitlab.po
+++ b/locale/ms_MY/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ms\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -460,6 +452,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -494,15 +489,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -606,12 +592,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -648,6 +628,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -822,6 +805,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1075,6 +1064,9 @@ msgstr[0] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1154,7 +1146,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1169,6 +1164,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1223,6 +1221,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1241,6 +1242,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1256,9 +1260,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1293,6 +1309,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1311,9 +1333,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1344,7 +1363,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1634,9 +1653,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1742,7 +1758,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -1865,9 +1908,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -1887,6 +1927,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -1932,6 +1975,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2253,6 +2299,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2727,6 +2779,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -2865,9 +2920,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3021,15 +3073,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3039,9 +3091,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3399,6 +3448,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3495,6 +3547,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4113,6 +4168,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4146,6 +4204,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4257,18 +4318,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4617,6 +4684,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4647,9 +4723,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4761,12 +4837,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4788,9 +4870,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -4851,9 +4930,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -4869,9 +4945,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -4947,9 +5020,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5178,9 +5248,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5345,6 +5414,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5453,6 +5525,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5561,6 +5636,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5573,16 +5651,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5615,9 +5696,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5678,6 +5756,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5690,16 +5789,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5717,9 +5813,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6231,9 +6324,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6297,6 +6387,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6312,9 +6405,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6504,9 +6594,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6522,6 +6609,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6643,13 +6733,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6741,7 +6828,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6819,6 +6906,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -6948,6 +7044,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7137,12 +7236,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7167,12 +7260,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7224,9 +7323,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7239,9 +7335,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7251,9 +7344,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7287,16 +7389,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr ""
+
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Bamboo build plan key (for example, `KEY`)."
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7308,7 +7413,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7323,7 +7428,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7428,9 +7533,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7788,6 +7890,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7818,13 +7923,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -7842,10 +7947,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -7885,12 +7990,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -7912,7 +8011,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8103,12 +8205,6 @@ msgstr[0] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8127,9 +8223,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8139,18 +8232,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8163,51 +8250,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8236,9 +8302,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8332,6 +8395,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8341,6 +8407,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8407,15 +8485,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8473,6 +8563,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8491,6 +8587,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8503,6 +8602,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8803,6 +8905,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -8836,9 +8944,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -8848,16 +8965,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -8875,6 +9001,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -8929,7 +9061,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -8992,9 +9127,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9134,6 +9266,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9155,6 +9290,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9218,18 +9359,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9248,16 +9377,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9269,6 +9398,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9719,6 +9851,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -9829,6 +9964,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -9841,6 +9979,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -9853,6 +9994,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -9913,6 +10057,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -9970,6 +10117,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -9982,6 +10132,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10051,9 +10204,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10117,6 +10267,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10135,7 +10288,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10168,25 +10321,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10195,6 +10369,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10285,6 +10462,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10372,13 +10561,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10402,10 +10600,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10634,9 +10844,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11670,16 +11877,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11688,7 +11913,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11697,22 +11922,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11842,6 +12067,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -11890,6 +12118,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12167,13 +12401,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12191,6 +12461,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12212,10 +12488,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12230,9 +12506,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12245,6 +12527,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12275,9 +12560,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12296,12 +12587,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12419,6 +12716,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12479,6 +12779,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12506,7 +12812,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12659,6 +12971,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12749,7 +13064,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -12982,6 +13297,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13166,6 +13484,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13517,7 +13838,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13529,6 +13850,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13592,6 +13916,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13664,9 +13991,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -13850,6 +14174,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -13913,6 +14240,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -13943,9 +14273,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14075,9 +14402,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14114,6 +14438,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14324,6 +14651,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14534,6 +14864,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -14820,9 +15156,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -14851,6 +15184,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15119,9 +15455,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15155,6 +15488,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15236,6 +15572,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15413,9 +15752,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15428,7 +15764,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15739,6 +16075,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16059,16 +16398,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16177,12 +16506,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16201,9 +16536,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16213,6 +16545,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16249,18 +16584,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16270,6 +16614,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16513,9 +16860,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17184,6 +17528,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17310,6 +17699,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17612,6 +18004,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -17903,6 +18298,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -17969,6 +18367,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18065,6 +18466,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18101,6 +18505,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18116,9 +18523,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18182,6 +18586,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18197,9 +18604,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18287,6 +18691,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18602,6 +19009,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18704,15 +19114,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18725,9 +19132,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18743,9 +19147,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18755,9 +19156,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18773,10 +19171,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19678,9 +20076,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -19807,6 +20202,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -19890,6 +20288,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -19905,16 +20306,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -19953,9 +20351,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -19983,18 +20378,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20103,6 +20489,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20395,6 +20784,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20674,9 +21066,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -20996,6 +21385,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21337,12 +21729,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21352,12 +21738,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21466,12 +21846,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21529,9 +21903,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21553,6 +21924,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21640,9 +22014,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21871,7 +22248,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -21889,7 +22266,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22066,22 +22443,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22141,6 +22518,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22162,16 +22542,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22201,9 +22578,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22213,9 +22587,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22330,9 +22701,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22402,6 +22770,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22414,6 +22785,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22450,10 +22824,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22483,9 +22857,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22624,6 +22995,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22717,10 +23091,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -22984,6 +23361,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23005,6 +23385,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23047,12 +23430,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23077,6 +23469,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23101,6 +23496,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23143,6 +23544,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23206,30 +23610,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23290,7 +23670,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23332,7 +23712,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23455,6 +23835,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23509,6 +23892,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23763,10 +24155,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-
msgid "Hide values"
msgstr ""
@@ -23785,6 +24173,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -23860,6 +24251,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -23950,6 +24344,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24062,7 +24456,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24074,7 +24468,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24146,6 +24543,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24433,9 +24833,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24611,10 +25008,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24629,6 +25026,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24644,6 +25044,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25130,6 +25533,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25255,9 +25661,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25643,9 +26046,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -25851,10 +26251,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26181,13 +26581,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26292,6 +26692,10 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26301,9 +26705,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26344,6 +26747,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26473,6 +26879,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26602,6 +27011,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26671,15 +27083,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26731,6 +27143,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -26779,6 +27197,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -26938,7 +27359,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27208,6 +27629,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27217,6 +27641,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27289,6 +27716,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27409,9 +27839,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27448,6 +27875,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27478,6 +27908,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27572,6 +28116,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27612,7 +28162,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27630,6 +28180,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -27913,9 +28466,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -27946,6 +28496,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -27961,9 +28514,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28156,7 +28706,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28334,9 +28884,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28370,6 +28917,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28523,12 +29049,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28583,9 +29103,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29189,100 +29706,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29576,6 +30096,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -29957,6 +30480,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -29990,15 +30516,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30008,15 +30528,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30029,9 +30543,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30068,6 +30579,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30291,9 +30805,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30387,9 +30907,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30405,6 +30922,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30435,96 +30955,147 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30549,9 +31120,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31117,9 +31694,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31132,9 +31706,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31562,15 +32133,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31676,6 +32247,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -31821,18 +32395,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -31842,6 +32404,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -31857,6 +32422,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -31875,6 +32443,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32080,6 +32654,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32128,6 +32708,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32158,16 +32744,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32239,6 +32825,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32329,6 +32918,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32344,6 +32936,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32356,7 +32951,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32485,6 +33080,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32503,27 +33101,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33105,9 +33721,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33198,6 +33811,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33216,6 +33832,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33264,7 +33886,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33408,6 +34042,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33477,6 +34171,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33552,6 +34249,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -33762,6 +34462,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -33844,6 +34553,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -33862,6 +34574,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -33928,6 +34643,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -33964,6 +34682,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34105,6 +34826,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34252,6 +34976,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34396,6 +35123,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -34813,6 +35543,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -34873,12 +35627,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -34897,9 +35645,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -34972,6 +35717,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35008,6 +35756,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35926,9 +36680,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36124,6 +36875,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36232,6 +36986,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36352,7 +37109,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36718,7 +37475,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37022,7 +37779,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37049,10 +37806,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37271,6 +38043,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37358,9 +38133,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37478,6 +38250,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37523,6 +38298,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -37940,29 +38718,9 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -37997,6 +38755,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38060,6 +38821,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38653,12 +39417,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38740,9 +39510,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -38788,6 +39555,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39230,9 +40000,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39408,6 +40175,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39462,6 +40232,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39522,6 +40295,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39624,6 +40400,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39702,6 +40481,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -39759,9 +40541,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -39828,9 +40607,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40263,6 +41039,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,7 +41101,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40391,9 +41170,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40517,10 +41293,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-
msgid "Reveal values"
msgstr ""
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40624,9 +41405,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40959,6 +41737,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41231,6 +42012,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41351,7 +42135,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41360,9 +42144,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41587,9 +42368,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -41761,9 +42557,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -41782,6 +42587,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -41803,21 +42611,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -41842,6 +42668,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -41851,6 +42680,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -41866,6 +42698,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -41926,9 +42761,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -41980,34 +42812,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42034,15 +42857,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42055,7 +42872,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42208,6 +43043,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42390,6 +43228,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42399,6 +43240,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42456,6 +43327,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42543,7 +43417,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42645,6 +43519,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42654,6 +43531,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42672,12 +43558,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42690,6 +43582,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -42720,6 +43615,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -42732,10 +43630,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -42744,6 +43642,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -42816,6 +43720,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,7 +43735,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -42843,6 +43753,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -42858,6 +43771,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -42885,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -42910,6 +43829,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -42997,12 +43919,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43036,6 +43964,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43069,6 +44003,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43153,12 +44093,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43195,6 +44150,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43381,6 +44339,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43432,6 +44393,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43447,12 +44411,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43586,6 +44544,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43685,6 +44646,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -43952,6 +44925,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44114,9 +45090,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44156,6 +45138,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44216,7 +45204,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44225,6 +45216,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44423,9 +45420,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44441,6 +45435,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44519,19 +45516,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44589,27 +45600,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -44872,9 +45862,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -44923,19 +45910,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45235,6 +46216,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45292,6 +46276,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45352,7 +46339,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -45709,7 +46693,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -45730,12 +46714,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -45931,6 +46909,10 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46231,9 +47213,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46315,9 +47294,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -46961,9 +47940,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47234,13 +48210,22 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47256,21 +48241,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47551,6 +48521,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -47744,6 +48717,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -47768,6 +48744,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -47786,9 +48768,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -47828,16 +48807,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48085,6 +49070,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48223,6 +49211,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48274,13 +49265,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48451,6 +49439,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48646,6 +49637,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -48736,9 +49730,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -48775,6 +49775,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -48967,9 +49970,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49114,12 +50114,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49809,9 +50807,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -49855,6 +50850,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -49960,7 +50958,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -49975,9 +50973,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50035,6 +51030,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50071,6 +51069,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50113,7 +51114,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50125,9 +51126,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50143,10 +51141,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50188,18 +51186,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50267,6 +51253,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50291,16 +51283,33 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50360,10 +51369,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50498,27 +51507,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50534,28 +51522,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50697,12 +51676,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -50778,15 +51751,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -50952,9 +51940,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51030,7 +52027,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51234,6 +52234,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51372,7 +52375,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51387,9 +52393,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51411,13 +52414,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51450,7 +52453,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51489,7 +52492,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -51768,12 +52768,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -51786,6 +52780,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -51850,6 +52850,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52405,22 +53411,27 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52438,6 +53449,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52540,15 +53554,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52630,9 +53635,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52651,15 +53653,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -52757,6 +53753,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -52788,6 +53787,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -52863,6 +53865,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -52932,6 +53937,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54207,6 +55218,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54229,6 +55243,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54274,6 +55291,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54310,15 +55330,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54349,9 +55381,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54373,12 +55402,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54403,9 +55438,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54535,7 +55567,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54553,6 +55585,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54631,7 +55666,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54685,6 +55720,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -54712,6 +55753,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55079,10 +56123,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55136,6 +56180,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55164,6 +56211,9 @@ msgstr[0] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55197,7 +56247,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55209,7 +56259,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55242,6 +56292,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55281,6 +56334,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55492,6 +56548,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55504,6 +56563,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55519,10 +56581,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55724,6 +56786,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -55757,6 +56822,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -55893,6 +56961,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56121,10 +57192,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56193,9 +57264,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56238,7 +57306,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56275,17 +57343,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56404,15 +57461,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56470,9 +57530,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56923,6 +57980,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57083,6 +58143,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57418,6 +58481,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57463,6 +58538,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57481,6 +58559,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57514,6 +58595,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57746,6 +58830,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -57772,9 +58859,6 @@ msgstr[0] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -57945,6 +59029,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -57954,6 +59041,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/nb_NO/gitlab.po b/locale/nb_NO/gitlab.po
index 4ffa9a08e3f..cfd9fcd06bd 100644
--- a/locale/nb_NO/gitlab.po
+++ b/locale/nb_NO/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: nb\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr " %{start} til %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d tildelt sak"
-msgstr[1] "%d tildelte saker"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d kommentar"
msgstr[1] "%d kommentarer"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d kommentar på denne commiten"
-msgstr[1] "%d kommentarer på denne commiten"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d fullført sak"
msgstr[1] "%d fullførte saker"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d bidrag"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d sak vellykket importert med stemplet"
msgstr[1] "%d saker vellykket importert med stemplet"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr "%{author_link} skrev:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName} sin tråd"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} ba om å flette %{source_branch}%{copy_button} inn i %{target_branch} %{created_at}"
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Maskert:%{code_close} Skjult i jobblogger. MÃ¥ oppfylle kravene til maskering."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} forfattet for %{commit_authored_timeago}"
@@ -707,12 +691,6 @@ msgstr "%{days} dager til etikettene fjernes automatisk"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Sentry-hendelse: %{errorUrl}- Først sett: %{firstSeen}- Senest sett: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}Avansert søk%{doc_link_end} er aktivert."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} flere nedstrømsrørledninger"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} slettet"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow}, og %{awardsListLength} til"
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} gren"
@@ -1275,8 +1265,11 @@ msgstr "%{timebox_type} må ha start- og forfallsdato"
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "%{title} endringer"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} ledig)"
@@ -1290,6 +1283,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} ledig)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} advarsel(er) funnet:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr "%{total} saksvekt gjenstår"
@@ -1344,6 +1340,9 @@ msgstr "%{user} opprettet en sak: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} er ikke inkludert i listen"
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{wildcards_link_start}Jokertegn%{wildcards_link_end} slik som %{code_tag_start}v*%{code_tag_end} eller %{code_tag_start}*-release%{code_tag_end} er støttet."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' er ikke et gyldig synlighetsnivå"
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr "(Ingen endringer)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(sjekk fremgang)"
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(la stå tomt hvis du ikke vil endre det)"
-msgid "(max size 15 MB)"
-msgstr "(maks størrelse 15 MB)"
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr "+ %{amount} til"
msgid "+ %{count} more"
msgstr "+ %{count} til"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr "En komplett DevOps-plattform"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr "API-hjelp"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API-nøkkel"
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr "Telefon"
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr "Legg til godkjenningsregel"
msgid "Add approvers"
msgstr "Legg til godkjennere"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr "Legg til forslag i bunken"
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr "Admin"
-
msgid "Admin Area"
msgstr "Admin-område"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "Admin-modus"
+
msgid "Admin Note"
msgstr "Admin-notis"
@@ -3188,9 +3238,6 @@ msgstr "Admin-meldinger"
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Admin-modus er allerede aktivert"
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr "brukergrense"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr "Legitimasjon"
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr "Geo"
@@ -4406,18 +4465,24 @@ msgstr "Etter en vellykket passordoppdatering vil du bli omdirigert til påloggi
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr "Algoritme"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Alle"
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr "Alle miljøer"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr "Alle brukere må ha et navn."
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Tillatt"
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Lar deg legge til og behandle Kubernetes-klynger."
-
msgid "Almost there"
msgstr "Nesten der"
@@ -5000,9 +5077,6 @@ msgstr "En %{link_start}alarm%{link_end} med samme fingeravtrykk er allerede åp
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "En administrator endret passordet til GitLab-kontoen din på %{link_to}."
@@ -5018,9 +5092,6 @@ msgstr "En applikasjon kalt %{link_to_client} ber om tilgang til din GitLab-kont
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Et tomt GitLab-brukerfelt vil legge til FogBugz-brukerens fulle navn (f.eks. \"Av John Smith\") i beskrivelsen av alle saker og kommentarer. Det vil også knytte og/eller tildele disse sakene og kommentarene til prosjektskaperen."
@@ -5096,9 +5167,6 @@ msgstr "En feil oppstod under avskruing av Service Desk."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "En feil oppstod under avvisning av meldingen. Oppdater siden og prøv igjen."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,18 +5799,21 @@ msgstr ""
msgid "Analytics|Users"
msgstr "Brukere"
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
msgid "Analytics|Viewport"
msgstr ""
msgid "Analytics|Visualization"
msgstr "Visualisering"
-msgid "Analytics|Visualization Designer"
-msgstr ""
-
msgid "Analytics|Visualization designer"
msgstr ""
@@ -5766,9 +5844,6 @@ msgstr "Analyserer filen …"
msgid "Ancestors"
msgstr "Forfedre"
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr "Anonym"
@@ -5829,6 +5904,27 @@ msgstr "Tilføy til kommentaren med %{shrug}"
msgid "Append the comment with %{tableflip}"
msgstr "Tilføy kommentaren med %{tableflip}"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Program"
msgid "Application ID"
msgstr "Applikasjon-ID"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr "Arkiver jobber"
msgid "Archive project"
msgstr "Arkiver prosjekt"
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr "Arkivert"
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr "Er du sikker på at du vil slette denne SSH-nøkkelen?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "Er du sikker på at du vil slette denne kommentaren?"
@@ -6473,9 +6563,6 @@ msgstr "Er du sikker på at du vil slette dette stempelet?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "Er du sikker på at du vil slette denne rørledningen? Dette vil tidsutløpe alle rørledningsmellombuffere og slette relaterte objekter, slik som byggversjoner, loggføringer, artefakter og triggere. Denne handlingen kan ikke angres på."
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Er du sikker på at du vil distribuere dette miljøet?"
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr "Minst én godkjenning fra en kodeeier kreves for å endre filer som sams
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "Autentisering"
@@ -7307,12 +7403,6 @@ msgstr "Automatisk oppklart"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr "Automatisering"
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "Notis"
@@ -7337,12 +7427,18 @@ msgstr "Avataren vil bli fjernet. Er du sikker?"
msgid "Average per day: %{average}"
msgstr "Gjennomsnitt per dag: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "Tilbake"
@@ -7394,9 +7490,6 @@ msgstr "Legg til merke"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Legge til merket mislyktes, sjekk de angitte nettadressene og prøv igjen."
-
msgid "Badges|Badge image URL"
msgstr "Merkebilde nettadresse"
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr "Slette badge?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Sletting av merket mislyktes, vennligst prøv igjen."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr "Skriv inn en gyldig URL"
msgid "Badges|Example: %{exampleUrl}"
msgstr "Eksempel: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "Grupper merker"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "Lenke"
@@ -7457,18 +7556,21 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr "Merket ble slettet."
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr ""
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
msgid "Badges|Your badges"
msgstr "Dine merker"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr ""
@@ -7478,7 +7580,7 @@ msgstr "Bamboo-URL"
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr "Begynn med den valgte commiten"
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr "Direkte medlemskap"
msgid "Billing|Enter at least three characters to search."
msgstr "Skriv inn minst tre tegn for å søke."
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Klapp sammen"
@@ -8410,9 +8473,6 @@ msgstr "Utvid"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr "Grenen er allerede i bruk"
msgid "Branch name"
msgstr "Grennavn"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr "Grenen ble ikke lastet inn - %{branchId}"
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr "Gren"
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "Opprett jokertegn: %{searchTerm}"
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr "Brukere"
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "Standard"
@@ -8677,6 +8773,9 @@ msgstr "Grener"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Bla gjennom filer"
msgid "Browse templates"
msgstr "Bla gjennom maler"
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr "Destinasjon"
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,17 +9136,26 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr "Historikk"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Importer grupper fra GitLab"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr ""
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr "Kilde"
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr "Av %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr "Distribusjonsstrategi"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr "Be om CVE-ID"
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr "Kan ikke benytte det, siden kildegrenen ble slettet."
@@ -9894,6 +10023,9 @@ msgstr "i %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr "i %{project_link}"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Sjekk igjen"
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr "Faktureringsadresse"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr "Kasse"
msgid "Checkout|City"
msgstr "By"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr "Bekreft kjøp"
msgid "Checkout|Confirming..."
msgstr "Bekrefter …"
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Fortsett til fakturering"
@@ -10090,6 +10231,9 @@ msgstr "Gruppe"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr "Gateadresse"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Abonnementsdetaljer"
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr "Avgift"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "Totalt"
@@ -10228,9 +10378,6 @@ msgstr "Velg fil …"
msgid "Choose a file"
msgstr "Velg en fil"
-msgid "Choose a group"
-msgstr "Velg en gruppe"
-
msgid "Choose a template"
msgstr "Velg en mal"
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "Datoperiode: %{range}"
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr "Tilstand"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr "Variabler"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr "Lukk epos"
msgid "Close milestone"
msgstr "Lukk milepæl"
-msgid "Close sidebar"
-msgstr "Lukk sidelinje"
-
msgid "Close this %{quick_action_target}"
msgstr "Lukk denne %{quick_action_target}"
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr "Mønster"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsSM|Code Suggestions"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr "Fargelegg meldinger"
msgid "ComboSearch is not defined"
msgstr "ComboSearch er ikke definert"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr "Kommenter"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr "Fullført"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,12 +12666,12 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr "Bakgrunnsfarge"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "Avbryt"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr ""
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr ""
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr "Beskrivelse"
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr "Sett opp kodelagerspeiling."
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr "Bilde-etiketter"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr "For å utvide søket, endre eller fjerne filtrene ovenfor."
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr "Bidrag på %{calendar_date}"
msgid "Contributor"
msgstr "Bidragsyter"
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Infokapseldomene"
@@ -13776,6 +14097,9 @@ msgstr "Kopier koder"
msgid "Copy command"
msgstr "Kopier kommando"
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr "Kopier kommandoer"
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr "Kopier til utklippstavle"
-msgid "Copy token"
-msgstr "Kopier sjetong"
-
msgid "Copy value"
msgstr "Kopier verdi"
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr "Lag en gruppe"
msgid "Create a merge request"
msgstr "Opprett en fletteforespørsel"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr "Lag en konto med:"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr "Opprett utgivelse"
msgid "Create requirement"
msgstr "Opprett krav"
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "Du har ikke tillatelse til å opprette en undergruppe i denne gruppen."
@@ -14508,6 +14832,9 @@ msgstr "Opprettet den"
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr "Rediger profil"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr "Alle"
msgid "DashboardProjects|Personal"
msgstr "Personlig"
-msgid "Dashboards"
-msgstr "Kontrollpaneler"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} og %{secondProject}"
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "Klarte ikke å oppdatere nettstedsprofilen. Vennligst prøv igjen."
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr "Nettstedstype"
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr "MÃ¥l-URL"
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr "Standardgren"
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr "Skru av/på sårbarhetsliste"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr "Avhengighetsmellomtjener"
msgid "Dependency Scanning"
msgstr "Avhengighetsskanning"
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr "Bildeliste"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr "Brukernavn"
msgid "DeployTokens|Username (optional)"
msgstr "Brukernavn (valgfritt)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr "Diff-grenser"
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr "Forkast endringer for %{path}?"
msgid "Discard draft"
msgstr "Forkast utkast"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord-varsler"
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "Dra designene dine hit eller %{linkStart}klikk for å laste opp%{linkEnd}."
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr "Redigerer"
msgid "Edits"
msgstr "Redigeringer"
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr "Forløpt tid"
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr "Send e-post om programrettelse"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "E-post sendt"
@@ -18270,6 +18667,9 @@ msgstr "Tom fil"
msgid "Enable"
msgstr "Slå på"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr "Skru på PlantUML"
msgid "Enable SSL verification"
msgstr "Skru på SSL-verifisering"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr "Skru på admin-modus"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr "Slutter den"
msgid "Ends: %{endsAt}"
msgstr "Slutter: %{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr "Ã…pne"
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr "Ekstern IP"
-msgid "Environment|Failed"
-msgstr "Mislyktes"
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr "Arbeidsplasser"
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr "Utestående"
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr "Kjører"
-
msgid "Environment|Services"
msgstr "Tjenester"
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr "Lyktes"
-
msgid "Environment|Summary"
msgstr "Sammendrag"
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr "Eksporter som CSV"
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr "Eksporter gruppe"
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://example.com/xxx/wiki/..."
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr "Mislyktes i å opprette kodelager"
msgid "Failed to create resources"
msgstr "Mislyktes i å opprette ressurser"
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr "Mislyktes i å opprette wiki"
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr "Klarte ikke å laste inn tilordnede. Vennligst prøv igjen."
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr "Mislyktes i å laste inn iterasjoner."
-
msgid "Failed to load labels. Please try again."
msgstr "Mislyktes i å laste inn stempler. Vennligst prøv igjen."
-msgid "Failed to load milestones."
-msgstr "Mislyktes i å laste inn milepæler."
-
msgid "Failed to load milestones. Please try again."
msgstr "Mislyktes i å laste inn milepæler. Vennligst prøv igjen."
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr "Mislyktes i å oppdatere-sakerstatus"
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr "Fil flyttet"
msgid "File name"
msgstr "Filnavn"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr "For generelt arbeid"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr "Synkroniser på nytt"
msgid "Geo|Resync all"
msgstr "Omsynkroniser alle"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr "Antall forsøk"
@@ -21565,12 +21947,6 @@ msgstr "Re-verifiser"
msgid "Geo|Reverify all"
msgstr "Re-verifiser alle"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr "Tid i sekunder"
@@ -21742,9 +22112,6 @@ msgstr "primær"
msgid "Geo|secondary"
msgstr "sekundær"
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr "Kom i gang!"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHub-import"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "Innflettet av: %{author} kl. %{timestamp}*"
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr "Uverifisert"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,23 +22652,23 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
-msgstr "Lukk"
+msgid "GlobalSearch|Archived"
+msgstr ""
msgid "GlobalSearch|Command palette"
msgstr ""
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,18 +22751,15 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
+msgid "GlobalSearch|Reset"
+msgstr ""
+
msgid "GlobalSearch|Result count is over limit."
msgstr ""
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr "Resultatene er oppdatert. %{count} resultater tilgjengelig. Bruk ↑- og ↓-piltastene for å navigere i søkeresultatlisten, eller ENTER for å sende inn."
-msgid "GlobalSearch|Search"
-msgstr ""
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "Søk på GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "GlobalSearch|Søk etter prosjekter, problemer, osv."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr "Det oppsto en feil under henting av forslag til autofullføring av søk."
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr "Skriv inn og trykk Enter-tasten for å sende inn et søk."
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "Skriv inn for at nye forslag skal vises nedenfor."
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr "Brukere"
@@ -22543,9 +22910,6 @@ msgstr "GÃ¥ til forrige side"
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr "GÃ¥ til hovednettstedet"
-
msgid "Go to project"
msgstr "GÃ¥ til prosjekt"
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr "GÃ¥ til utdragene dine"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "Avbryt"
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr "Jeg forstår"
-msgid "Got it!"
-msgstr "Skjønner!"
-
msgid "Grafana URL"
msgstr "Grafana-nettadresse"
@@ -22837,6 +23204,9 @@ msgstr "Gruppeinfo:"
msgid "Group information"
msgstr "Gruppeinformasjon"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "Gruppér jobber etter"
@@ -22930,11 +23300,14 @@ msgstr "Gruppen ble vellykket importert."
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "Gruppe-ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} - Ingen sluttdato"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr "Merker"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "Kan ikke oppdatere filbanen fordi det er prosjekter innenfor denne gruppen som inneholder Docker-bilder i container-registeret. Fjern bildene fra prosjektene dine først, og prøv så på nytt."
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr "Rapportering"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Denne innstillingen brukes på %{ancestor_group} og har blitt overstyrt i denne undergruppen."
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr "Ofte besøkt"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Grupper du besøker ofte vil vises her"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Laster inn grupper"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "Søk blant gruppene dine"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Noe gikk galt på vår side av linja."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Beklager, ingen grupper samsvarte med søket ditt"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "Gjest"
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Skjul verdien"
-msgstr[1] "Skjul verdiene"
-
msgid "Hide values"
msgstr "Skjul verdier"
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr "Renhold"
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "Noe gikk galt. Vennligst prøv igjen."
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr "Importer gruppe fra fil"
-msgid "Import groups"
-msgstr "Importer grupper"
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr "Importerer …"
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr "Infrastruktur"
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr "Installasjon"
@@ -25866,9 +26264,6 @@ msgstr "Ugyldig fil."
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,11 +26470,11 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
-msgstr "Brukernavn eller e-postadresse"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr ""
@@ -26405,13 +26800,13 @@ msgstr "Sakens URL"
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Beklager, filteret ditt ga ingen resultater"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr "Det ser ut til at det for øyeblikket ikke er tilgjengelige data for kodedekning"
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "Det er deg"
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr "Varighet"
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr "Mislyktes"
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Jobb-artefakter"
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr "Hoppet over"
@@ -27634,9 +28059,6 @@ msgstr "Nøkkel (PEM)"
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr "Nøkler"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "Stempler uten saker i denne iterasjonen:"
@@ -27839,8 +28384,8 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
-msgstr "Nyeste aktivitet"
+msgid "Last GitLab activity"
+msgstr ""
msgid "Last Name"
msgstr "Etternavn"
@@ -27857,6 +28402,9 @@ msgstr "Senest åpnet den"
msgid "Last activity"
msgstr "Nyeste aktivitet"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Seneste commit"
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr "Sett opp arbeidsområdet ditt"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr "Forlat"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr "Komponent"
msgid "Licenses|Components"
msgstr "Komponenter"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr "Liste"
msgid "List available repositories"
msgstr "List opp tilgjengelige kodelagre"
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr "Last inn flere"
msgid "Load more users"
msgstr "Last inn flere brukere"
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr "Laster"
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr "LÃ¥ser diskusjonen."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "Om GitLab"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "Utforsk GitLab"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "Kom i gang"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr "Mailgun-hendelser"
-msgid "Main menu"
-msgstr "Hovedmeny"
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr "kan ikke endres"
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr "Godkjenninger av fletteforespørsel"
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr "MÃ¥ltall"
+
msgid "Metrics - Grafana"
msgstr "MÃ¥ltall - Grafana"
@@ -30228,15 +30749,9 @@ msgstr "Slett måltall"
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr "For gruppering av lignende metrikker"
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "Må være en gyldig PromQL-spørring."
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "Ny metrikk"
@@ -30267,9 +30776,6 @@ msgstr "Prometheus spørrings-dokumentasjon"
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr "Enhets-etikett"
@@ -30306,6 +30812,9 @@ msgstr "f.eks. foresprl./sek"
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Minutter"
@@ -30626,9 +31141,6 @@ msgstr "Skapere"
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,36 +31189,18 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
-msgstr ""
-
-msgid "MlExperimentTracking|Info"
-msgstr "Info"
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr ""
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
-msgstr "Metadata"
-
-msgid "MlExperimentTracking|Metrics"
-msgstr "MÃ¥ltall"
-
msgid "MlExperimentTracking|Model candidate details"
msgstr ""
msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Model performance"
-msgstr ""
-
msgid "MlExperimentTracking|Model removed"
msgstr ""
@@ -30719,27 +31216,9 @@ msgstr ""
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr ""
-
msgid "MlExperimentTracking|No name"
msgstr "Ikke navngitt"
-msgid "MlExperimentTracking|Parameters"
-msgstr "Parametre"
-
-msgid "MlExperimentTracking|Status"
-msgstr "Status"
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr ""
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] ""
@@ -30750,22 +31229,109 @@ msgid_plural "MlModelRegistry|%d versions"
msgstr[0] ""
msgstr[1] ""
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr ""
+
+msgid "MlModelRegistry|CI Info"
+msgstr ""
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr ""
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr ""
+msgid "MlModelRegistry|Experiment"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
+msgstr ""
+
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr "Lukk"
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "Endret"
@@ -31360,9 +31932,6 @@ msgstr "Kode"
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr "Utforsk"
@@ -31375,9 +31944,6 @@ msgstr "Ofte besøkte prosjekter"
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr "Behandle"
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "Ingen endepunkt ble oppgitt"
@@ -31920,6 +32486,9 @@ msgstr "Ingen andre stempler med sådan navn eller beskrivelse"
msgid "No parent group"
msgstr "Ingen overgruppe"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "Ingen plan"
@@ -32066,18 +32635,6 @@ msgstr "Normal tekst"
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr "Ikke tilgjengelig for beskyttede grener"
msgid "Not confidential"
msgstr "Ikke konfidensiell"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "Ikke funnet"
@@ -32120,6 +32683,9 @@ msgstr "Ikke påbegynt"
msgid "Not supported"
msgstr "Ikke støttet"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Notis"
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr "Nedlastingslenken vil utløpe om 24 timer."
msgid "Notify|The errors we encountered were:"
msgstr "Feilene vi kom over var:"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr "Antall ansatte"
msgid "Number of files touched"
msgstr "Antall berørte filer"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "Antall kopier"
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr "Kun synlig for deg"
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr "Oi sann, er du sikker?"
-
msgid "Open"
msgstr "Ã…pen"
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr "Åpne råversjon"
-msgid "Open sidebar"
-msgstr "Ã…pne sidelinje"
-
msgid "Open: %{open}"
msgstr "Ã…pen: %{open}"
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr "Oversikt"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "Eies av %{image_tag}"
@@ -33728,6 +34417,9 @@ msgstr "Pakken ble vellykket slettet"
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr "Appgruppe: %{group}"
msgid "PackageRegistry|App name: %{name}"
msgstr "Appnavn: %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr "Pip-kommando"
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -34180,6 +34890,9 @@ msgstr "Beklager, filteret ditt ga ingen resultater"
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr "Klarte ikke å laste inn pakke"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr "Passordautentisering er utilgjengelig."
msgid "Password confirmation"
msgstr "Passordbekreftelse"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "Passordet ditt ble endret"
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "Optimalisering av ytelsen"
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr "Telefon"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr "Nett-IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Rørledning: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr "Mer informasjon"
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr "Forrige"
-msgid "Previous Artifacts"
-msgstr "Tidligere artefakter"
-
msgid "Previous commit"
msgstr "Forrige commit"
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr "Profil"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,8 +38027,8 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
-msgstr "Utgreininger"
+msgid "ProjectOverview|Fork"
+msgstr "Utgreining"
msgid "ProjectOverview|Go to your fork"
msgstr "GÃ¥ til utgreiningen din"
@@ -37302,11 +38054,26 @@ msgstr "Du har nådd prosjektgrensen"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "Du må logge på for å stjernemerke et prosjekt"
-msgid "ProjectPage|Copy project ID"
-msgstr "Kopier prosjekt-ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "Prosjekt-ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr ""
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr "En standardgren kan ikke velges for et tomt prosjekt."
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "Skjerm"
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr "Prosjekter med skrivetilgang"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Ofte besøkt"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Laster inn prosjekter"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Søk i dine prosjekter"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Noe gikk galt på vår side av linja."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Beklager, ingen prosjekter samsvarer med søket ditt"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr "Opprett fra mal"
msgid "ProjectsNew|Create new project"
msgstr "Opprett nytt prosjekt"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr "Beskrivelsesformat"
@@ -38313,6 +39070,9 @@ msgstr "Kjør CI/CD for et eksternt kodelager"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr "Synlighetsnivå"
@@ -38908,12 +39668,18 @@ msgstr "Godkjennere"
msgid "ProtectedEnvironment|Environment"
msgstr "Miljø"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr "Standard"
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "Publiser på statussiden"
@@ -39486,9 +40252,6 @@ msgstr "Registrer enhet"
msgid "Register now"
msgstr "Registrer deg nå"
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr "Registrer med 2-trinnsapp"
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr "Mer informasjon"
@@ -39719,6 +40485,9 @@ msgstr "PÃ¥minn meg senere"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Fjern"
@@ -39779,6 +40548,9 @@ msgstr "Fjern beskrivelseshistorikken"
msgid "Remove due date"
msgstr "Fjern måldato"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr "Fjern bruker fra gruppe"
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr "Fjernet"
@@ -39959,6 +40734,9 @@ msgstr "Fjerner alle stempler."
msgid "Removes an issue from an epic."
msgstr "Fjerner en sak fra et epos."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr "Gjenåpne epos"
msgid "Reopen milestone"
msgstr "Gjenåpne milepæl"
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr "Gjenåpne denne %{quick_action_target}"
@@ -40085,9 +40860,6 @@ msgstr "Svar på kommentar"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr "Svar …"
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr "Oppklar tråden"
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr "Prøv verifikasjon på nytt"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Avslør verdi"
-msgstr[1] "Avslør verdier"
-
msgid "Reveal values"
msgstr "Avslør verdier"
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr "Anmeldere"
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr "Dette regelnavnet er allerede brukt."
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr "delt"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "Kjører"
@@ -42037,9 +42828,18 @@ msgstr "Lagrer"
msgid "Saving project."
msgstr "Lagrer prosjekt."
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr "Søk etter navn"
msgid "Search files"
msgstr "Søk i filer"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr "Søk etter navneområde"
@@ -42677,6 +43510,9 @@ msgstr "Hemmelig oppdagelse"
msgid "Secret token"
msgstr "Hemmelig sjetong"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr "Sikkerhetskontrollpanel"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr "Aktiver Auto DevOps"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr "Handlinger"
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr "Tøm alle"
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr "Grupper"
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr "Praksiser"
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "Denne gruppen"
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr "Issue"
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "Send inn rapport"
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr "Sett opp CI/CD"
msgid "Set up Jira Integration"
msgstr "Sett opp Jira-integrering"
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ msgstr "Sett opp nytt passord"
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "Bestem vektlegging"
@@ -44808,20 +45800,33 @@ msgstr "Innstilling"
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr "Alternativer"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "Alvorlighetsgrad"
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr "Logg på med smartkort"
msgid "Sign in via 2FA code"
msgstr "Logg på med 2FA-kode"
-msgid "Sign in with"
-msgstr "Logg på med"
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr "Registreringsbegrensninger"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr "Smartkort"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr "Snøplog"
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr "Noe gikk galt"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr "Popularitet"
msgid "SortOptions|Priority"
msgstr "Prioritet"
-msgid "SortOptions|Project"
-msgstr "Prosjekt"
-
msgid "SortOptions|Recent last activity"
msgstr "Nyligste aktivitet"
@@ -46000,8 +46978,8 @@ msgstr "Nylig stjernemerket"
msgid "SortOptions|Size"
msgstr "Størrelse"
-msgid "SortOptions|Sort by:"
-msgstr "Sorter etter:"
+msgid "SortOptions|Sort by"
+msgstr ""
msgid "SortOptions|Sort direction"
msgstr "Sorteringsretning"
@@ -46021,12 +46999,6 @@ msgstr "Starter snart"
msgid "SortOptions|Title"
msgstr "Tittel"
-msgid "SortOptions|Type"
-msgstr "Type"
-
-msgid "SortOptions|Version"
-msgstr "Versjon"
-
msgid "SortOptions|Weight"
msgstr "Vektlegging"
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr "Standard"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr "Stopp terminal"
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr "Stopp dette miljøet"
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr "Send inn som spam"
-msgid "Submit feedback"
-msgstr "Send tilbakemelding"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "Legg til seter"
@@ -47253,9 +48227,6 @@ msgstr "Bytt gren"
msgid "Switch branch/tag"
msgstr "Bytt gren/etikett"
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr "MÃ¥lsti"
msgid "Target branch"
msgstr "MÃ¥lgren"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr "Testinnstillinger"
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr "Flytt testtilfelle"
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr "Programmet vil bli brukt der klienthemmeligheten kan holdes konfidensiel
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr "Commiten finnes ikke"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr "Den nåværende brukeren er ikke autorisert til å få tilgang til jobbl
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,15 +49560,12 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
+msgid "There are currently no mirrored repositories."
msgstr ""
-msgid "There are merge conflicts"
-msgstr "Flettekonflikter er til stede"
-
msgid "There are no GPG keys associated with this account."
msgstr "Det er ingen GPG-nøkler tilknyttet denne kontoen."
@@ -48751,6 +49734,9 @@ msgstr "En feil oppstod under innhenting av prosjektetiketter."
msgid "There was a problem fetching project users."
msgstr "En feil oppstod under innhenting av prosjektbrukere."
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr "En feil oppstod under innhenting av nylige grupper."
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "Denne blokken refererer til seg selv"
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr "Dette kan avsløre konfidensiell informasjon, ettersom den valgte utgrei
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr "For å finne tilstanden til dette prosjektets kodelager på tidspunktet til noen av disse versjonene, se i %{link_start}etikettene%{link_end}"
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr "I dag"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr "Fletteforespørsel"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr "Veksle commit-listen"
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr "Veksle navigasjon"
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "Utforsk"
-
-msgid "TopNav|Go back"
-msgstr "GÃ¥ tilbake"
-
-msgid "TopNav|Switch to"
-msgstr "Bytt til"
-
-msgid "TopNav|Your dashboards"
-msgstr "Dine kontrollbord"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Total testtid for alle commits/innflettinger"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "Totalt antall brukere"
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr "Sporing"
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr "Tre-visning"
msgid "Trending"
msgstr "Populære"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr "Sammenlign alle planer"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr "Slå av"
msgid "Turn on"
msgstr "Slå på"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr "2-trinnautentisering"
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "URL-en må begynne med %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, eller %{codeStart}ftp://%{codeEnd}"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL eller forespørsels-ID"
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr "Ukjent responstekst"
msgid "Unknown user"
msgstr "Ukjent bruker"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr "LÃ¥ser opp diskusjonen."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "Utilgjengelig"
@@ -51539,6 +52537,9 @@ msgstr "Avbryt"
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr "Container-register"
msgid "UsageQuota|Dependency proxy"
msgstr "Avhengighetsmellomtjener"
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr "Lær mer om brukskvoter"
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "Lagring"
@@ -52073,12 +53071,6 @@ msgstr "Bruk mal"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "Brukerens ID"
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,23 +53715,33 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr "%{value}mnd"
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr "%{value}d"
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr "%{value}t"
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr "%{value}m"
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr "%{value}u"
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
-msgstr "&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
+msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
msgstr ""
@@ -52744,6 +53758,9 @@ msgstr "Kontrollpanel"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr "Variabler"
-msgid "Variables can be:"
-msgstr "Variabler kan være:"
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr "Vis alle saker"
-msgid "View all projects"
-msgstr "Vis alle prosjekter"
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr "Vis åpne fletteforespørsler"
msgid "View page @ "
msgstr "Vis side @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr "Vis dokumentasjonen"
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr "Visual Studio Code (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Visual Studio Code (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr "SÃ¥rbarheter"
@@ -53240,6 +54248,9 @@ msgstr "Detaljer"
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr "SSL-verifisering"
msgid "Webhooks|Secret token"
msgstr "Hemmelig sjetong"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr "Legg til milepæl"
msgid "WorkItem|All activity"
msgstr "All aktivitet"
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr "Avbryt"
+msgid "WorkItem|Child items"
+msgstr "Undergjenstander"
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr "Forfallsdato"
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr "Milepæl"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr "Ny oppgave"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "Ingen samsvarende resultater"
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr "Krav"
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr "Velg type"
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55024,6 +56068,9 @@ msgstr "I går"
msgid "You"
msgstr "Du"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr "Du har ingen nylige søk"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "Du har blitt tildelt %{access_level}-tilgang til %{source_link} %{source_type}."
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr "Du kan lukke milepælen nå."
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr "Ditt %{strong}%{plan_name}%{strong_close} abonnement på %{strong}%{name
msgid "Your Activity"
msgstr "Din aktivitet"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Navnet ditt"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr "Dine prosjekter"
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr "[Støtter GitLabs modifiserte Markdown, inkludert hurtighandlinger]"
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56326,7 +57400,7 @@ msgid "attach a new file"
msgstr "legg ved en ny fil"
msgid "authored"
-msgstr "skapt"
+msgstr "utførte for"
msgid "banned user already exists"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr "kan ikke endres"
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr "%{degradedNum} degradert"
msgid "ciReport|%{improvedNum} improved"
msgstr "%{improvedNum} forbedret"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr "Containerskanning"
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
-msgstr "Ingen endringer i kodekvalitet"
-
msgid "ciReport|No code quality issues found"
msgstr "Ingen kodekvalitetssaker ble funnet"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr "må være en Debian-pakke"
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr "fjern startdato"
msgid "remove weight"
msgstr "fjern vektlegging"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] "kodelagre"
msgid "repository:"
msgstr "kodelager:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr "det riktige formatet."
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr "wikien"
diff --git a/locale/ne_NP/gitlab.po b/locale/ne_NP/gitlab.po
index eb10f4097ae..ee615787fb9 100644
--- a/locale/ne_NP/gitlab.po
+++ b/locale/ne_NP/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ne-NP\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/nl_NL/gitlab.po b/locale/nl_NL/gitlab.po
index c226dc82a48..b87328d7868 100644
--- a/locale/nl_NL/gitlab.po
+++ b/locale/nl_NL/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: nl\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:25\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} verwijderd"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,8 +1265,11 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "%{title} wijzigingen"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr "+ %{count} meer"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Alles"
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Applicatie"
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Branches"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Door bestanden bladeren"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
-msgstr ""
-
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/or_IN/gitlab.po b/locale/or_IN/gitlab.po
index cabe00d7582..8eca84f70b0 100644
--- a/locale/or_IN/gitlab.po
+++ b/locale/or_IN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: or\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/pa_IN/gitlab.po b/locale/pa_IN/gitlab.po
index a38222fc027..bd3c8107c5a 100644
--- a/locale/pa_IN/gitlab.po
+++ b/locale/pa_IN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: pa-IN\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/pa_PK/gitlab.po b/locale/pa_PK/gitlab.po
index 9b7bf830ea5..5a4d5e7cf62 100644
--- a/locale/pa_PK/gitlab.po
+++ b/locale/pa_PK/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: pa-PK\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:30\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/pl_PL/gitlab.po b/locale/pl_PL/gitlab.po
index 0f9563cdc9f..b174c3a0cde 100644
--- a/locale/pl_PL/gitlab.po
+++ b/locale/pl_PL/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: pl\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr " %{start} do %{end}"
@@ -201,13 +201,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -250,13 +243,6 @@ msgstr[1] "%d komentarze"
msgstr[2] "%d komentarzy"
msgstr[3] "%d komentarza"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d komentarz do tej zmiany"
-msgstr[1] "%d komentarze do tej zmiany"
-msgstr[2] "%d komentarzy do tej zmiany"
-msgstr[3] "%d komentarza do tej zmiany"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d komentujÄ…cy"
@@ -299,13 +285,6 @@ msgstr[1] "%d zakończone zgłoszenia"
msgstr[2] "%d zakończonych zgłoszeń"
msgstr[3] "%d zakończonego zgłoszenia"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d wkład"
@@ -418,6 +397,13 @@ msgstr[1] "%d zgłoszenia pomyślnie zaimportowane z etykietą"
msgstr[2] "%d zgłoszeń pomyślnie zaimportowanych z etykietą"
msgstr[3] "%d zgłoszenia pomyślnie zaimportowana z etykietą"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -721,6 +707,9 @@ msgstr "%{author_link} napisał(a):"
msgid "%{authorsName}'s thread"
msgstr "wątek użytkownika %{authorsName}"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -767,15 +756,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open} Maskowanie:%{code_close} Ukryte w logu zadań. Musi spełnić wymagania maskowania."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -909,12 +889,6 @@ msgstr "%{days} dni do automatycznego usunięcia tagów"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Wydarzenie Sentry: %{errorUrl}- Pierwsze wystÄ…pienie: %{firstSeen}- Ostatnie wystÄ…pienie: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}Zaawansowane wyszukiwanie%{doc_link_end} jest włączone."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -951,6 +925,9 @@ msgstr "%{emailPrefix}@firma.pl"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} więcej potoków downstream"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} usunięto"
@@ -1125,6 +1102,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1408,6 +1391,9 @@ msgstr[3] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1517,8 +1503,11 @@ msgstr "%{timebox_type} musi mieć datę rozpoczęcia i zakończenia"
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "%{title} zmiany"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} dostępne)"
@@ -1532,6 +1521,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} dostępne)"
msgid "%{total_warnings} warning(s) found:"
msgstr "Znaleziono %{total_warnings} ostrzeżeń:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1586,6 +1578,9 @@ msgstr "%{user} utworzył(a) zgłoszenie: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{wildcards_link_start}Symbole wieloznaczne%{wildcards_link_end} takie jak %{code_tag_start}v*%{code_tag_end} lub %{code_tag_start}*-release%{code_tag_end} są obsługiwane."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' nie jest poprawnym poziomem widoczności"
@@ -1619,9 +1617,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr "(Bez zmian)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(sprawdź postęp)"
@@ -1677,9 +1693,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(pozostaw puste, jeśli nie chcesz tego zmieniać)"
-msgid "(max size 15 MB)"
-msgstr "(maksymalny rozmiar 15 MB)"
-
msgid "(no user)"
msgstr ""
@@ -1710,7 +1723,7 @@ msgstr "+ %{amount} więcej"
msgid "+ %{count} more"
msgstr "+ %{count} więcej"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2078,9 +2091,6 @@ msgstr "Podstawowa strona i funkcja serverless wykorzystujÄ…ca AWS Lambda, AWS A
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "Podstawowy szablon do tworzenia programów Linuksowych przy pomocy Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "Kompletna platforma DevOps"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,8 +2196,8 @@ msgstr "Gotowy do użycia szablon dla aplikacji Androida"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "Gotowy do użycia szablon do dla aplikacji iOS Swift"
-msgid "A rebase is already in progress."
-msgstr "Rebase jest już w trakcie wykonywania"
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "Logowanie do Twojego konta zostało dokonane z następującego adresu IP: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr "Fuzzing API"
msgid "API Help"
msgstr "Pomoc API"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "Klucz API"
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr "Dodaj regułę zatwierdzania"
msgid "Add approvers"
msgstr "Dodaj zatwierdzajÄ…cych"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3312,9 +3361,6 @@ msgstr "Dodaj sugestiÄ™ do zestawu"
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3468,15 +3514,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr "Administrator"
-
msgid "Admin Area"
msgstr "Obszar administratora"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "Tryb administratora"
+
msgid "Admin Note"
msgstr "Notatka administratora"
@@ -3486,9 +3532,6 @@ msgstr "Powiadomienia administacyjne"
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Tryb administratora już jest włączony"
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4560,6 +4609,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4593,6 +4645,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4704,18 +4759,24 @@ msgstr "Po udanej aktualizacji hasła zostaniesz przekierowany do ekranu logowan
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5064,6 +5125,15 @@ msgstr ""
msgid "Algorithm"
msgstr "Algorytm"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Wszystkie"
@@ -5094,9 +5164,6 @@ msgstr ""
msgid "All environments"
msgstr "Wszystkie środowiska"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5208,12 +5278,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Dozwolone"
@@ -5235,9 +5311,6 @@ msgstr "Pozwala projektom lub podgrupom tej grupy na nadpisanie ustawienia globa
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Pozwala Tobie dodawać i zarządzać klastrami Kubernetes."
-
msgid "Almost there"
msgstr "Prawie gotowe"
@@ -5298,9 +5371,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "Konto użytkownika Enterprise GitLab zostało utworzone dla Ciebie przez Twoją organizację:"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "Administrator zmienił hasło dla Twojego konta GitLab na %{link_to}."
@@ -5316,9 +5386,6 @@ msgstr "Aplikacja o nazwie %{link_to_client} prosi o dostęp do Twojego konta w
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "Powiadomienie e-mail zostało niedawno wysłane z panelu administratora. Poczekaj %{wait_time_in_words} przed próbą wysłania kolejnej wiadomości."
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Puste pole Użytkownika GitLabu doda imię i nazwisko użytkownika FogBugz (np. \"John Smith\") w opisie wszystkich zgłoszeń i komentarzy. Będzie również kojarzyć te zgłoszenia i komentarze z twórcą projektu i/lub mu je przypisywać."
@@ -5394,9 +5461,6 @@ msgstr "Wystąpił błąd podczas wyłączania Service Desk."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Podczas ukrywania ostrzeżenia wystąpił błąd. Odśwież stronę i spróbuj ponownie."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Podczas ukrywania opisu funkcji wystąpił błąd. Odśwież stronę i spróbuj ponownie."
-
msgid "An error occurred while drawing job relationship links."
msgstr "Wystąpił błąd podczas rysowania linków relacji pracy."
@@ -5625,12 +5689,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6131,6 +6200,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr "Dodaj %{tableflip} na końcu komentarza"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,16 +6233,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6170,9 +6257,6 @@ msgstr "Aplikacja"
msgid "Application ID"
msgstr "ID aplikacji"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6714,9 +6798,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6780,6 +6861,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6795,9 +6879,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7023,6 +7101,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,13 +7228,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7647,12 +7737,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7677,12 +7761,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7734,9 +7824,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7749,9 +7836,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7797,16 +7890,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7818,7 +7914,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7833,7 +7929,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7938,9 +8034,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8758,9 +8815,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8854,6 +8908,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8863,6 +8920,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8929,15 +8998,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9013,6 +9100,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9025,6 +9115,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9325,6 +9418,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9358,9 +9457,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,16 +9478,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9451,7 +9574,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,16 +9893,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10244,6 +10367,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10360,6 +10486,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10372,6 +10501,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10444,6 +10579,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10501,6 +10639,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10582,9 +10726,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,25 +10843,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10816,6 +10984,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10903,13 +11083,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10933,10 +11122,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11168,9 +11369,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12382,6 +12598,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12430,6 +12649,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12710,13 +12935,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,10 +13022,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12773,9 +13040,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12788,6 +13061,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13292,7 +13598,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14069,7 +14381,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14081,6 +14393,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14144,6 +14459,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14216,9 +14534,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14402,6 +14717,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14495,9 +14816,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14627,9 +14945,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14876,6 +15194,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15086,6 +15407,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15375,9 +15702,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15716,6 +16040,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16632,19 +16962,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16786,9 +17109,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16834,18 +17157,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16855,6 +17187,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17107,9 +17442,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17919,6 +18296,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18227,6 +18607,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18518,6 +18901,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18584,6 +18970,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18680,6 +19069,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18716,6 +19108,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18731,9 +19126,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19217,6 +19612,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19319,15 +19717,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20428,6 +20811,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20517,6 +20903,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20532,16 +20921,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20730,6 +21104,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21025,6 +21402,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21976,12 +22356,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21991,12 +22365,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22105,12 +22473,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22510,7 +22875,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,22 +23070,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22780,6 +23145,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,16 +23169,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
-msgstr ""
-
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22852,9 +23214,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22969,9 +23328,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23053,6 +23412,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23263,6 +23622,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23356,10 +23718,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23644,6 +24012,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23686,12 +24057,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,7 +24339,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24094,6 +24462,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Hide values"
msgstr ""
@@ -24433,6 +24806,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,7 +25104,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24797,6 +25179,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25090,9 +25475,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26523,10 +26908,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26853,13 +27238,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26964,6 +27349,13 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27964,6 +28376,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28084,9 +28499,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28123,6 +28535,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28153,6 +28568,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28250,6 +28779,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28293,7 +28828,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28311,6 +28846,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28630,6 +29165,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28858,7 +29393,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29168,39 +29703,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29894,100 +30396,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30704,15 +31215,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30722,15 +31227,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30743,9 +31242,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30782,6 +31278,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31104,9 +31609,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,102 +31657,153 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31846,9 +32408,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31861,9 +32420,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32408,6 +32964,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32610,6 +33163,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32728,6 +33284,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32827,6 +33386,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32875,6 +33440,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32905,16 +33476,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32986,6 +33557,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33076,6 +33650,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33091,6 +33668,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33103,7 +33683,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33858,9 +34459,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34230,6 +34909,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34600,6 +35294,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34618,6 +35315,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34684,6 +35384,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34861,6 +35567,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35008,6 +35717,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35152,6 +35864,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35653,9 +36386,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35728,6 +36458,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35764,6 +36497,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,7 +37850,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37474,7 +38216,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37781,7 +38523,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37808,10 +38550,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38030,6 +38787,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38282,6 +39042,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38699,29 +39462,12 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38756,6 +39502,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38819,6 +39568,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39418,12 +40170,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39505,9 +40263,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40179,6 +40934,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40233,6 +40991,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40293,6 +41054,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40473,6 +41240,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40599,9 +41366,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr "Rozwiąż konflikty w gałęzi źródłowej"
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41312,13 +42076,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Reveal values"
msgstr ""
@@ -41365,6 +42122,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41775,6 +42538,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42053,6 +42819,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,9 +42951,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42415,9 +43181,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42589,9 +43370,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42679,6 +43493,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43251,6 +44074,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,7 +44263,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44311,12 +45260,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44453,6 +45396,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45796,19 +46765,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46108,6 +47071,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "Uwierzytelnianie karty inteligentnej nie powiodło się: brakuje nagłówka certyfikatu klienta."
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46567,9 +47536,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46582,7 +47548,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46603,12 +47569,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46804,6 +47764,13 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47104,9 +48071,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr "Zatrzymaj impersonifikacjÄ™"
-
msgid "Stop this environment"
msgstr ""
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47837,9 +48801,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48117,9 +49081,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48442,6 +49397,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48638,6 +49596,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,16 +49686,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48985,6 +49955,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49123,6 +50096,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,13 +50150,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49867,9 +50855,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50869,7 +51855,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50944,6 +51927,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51022,7 +52011,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51052,10 +52038,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51693,15 +52660,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,7 +52936,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52326,13 +53323,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52683,12 +53677,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53323,22 +54323,42 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53548,9 +54562,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55140,6 +56160,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55309,12 +56347,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55648,6 +56698,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56223,6 +57285,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56705,6 +57779,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,10 +58161,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57385,15 +58445,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57451,9 +58514,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58816,9 +59906,6 @@ msgstr[3] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59004,6 +60094,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/pt_BR/gitlab.po b/locale/pt_BR/gitlab.po
index b2395cd3e9e..43014aeace0 100644
--- a/locale/pt_BR/gitlab.po
+++ b/locale/pt_BR/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: pt-BR\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr " %{start} até %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] "%d artefato"
msgstr[1] "%d artefatos"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d tarefa não atribuído"
-msgstr[1] "%d tarefas não atribuídas"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d comentário"
msgstr[1] "%d comentários"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d comentário neste commit"
-msgstr[1] "%d comentários neste commit"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d comentarista"
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d problema concluído"
msgstr[1] "%d problemas concluídos"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d contribuição"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d tarefa importada com sucesso com a etiqueta"
msgstr[1] "%d tarefas importadas com sucesso com a etiqueta"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d tarefa"
@@ -547,6 +537,9 @@ msgstr "%{author_link} escreveu:"
msgid "%{authorsName}'s thread"
msgstr "Tópico de %{authorsName}"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} solicitou mesclagem de %{source_branch} %{copy_button} em %{target_branch} %{created_at}"
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr "%{codeStart}$%{codeEnd} será tratado como o início de uma referência a outra variável."
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr "%{code_open}Expandido:%{code_close} Variáveis com %{code_open}$%{code_close} serão tratadas como o início de uma referência a outra variável."
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Mascarado:%{code_close} Escondidos nos registros de tarefas. Deve corresponder a requisitos de mascaramento."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}Protegido:%{code_close} Somente exposto a ramificações ou tags."
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} criou %{commit_authored_timeago}"
@@ -707,12 +691,6 @@ msgstr "%{days} dias até as tags serem removidas automaticamente"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Evento Sentry: %{errorUrl}- Visto pela primeira vez: %{firstSeen}- Visto pela última vez: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{doc_link_start}A pesquisa avançada%{doc_link_end} está desativada, pois %{ref_elem} não é a ramificação padrão. %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}A pesquisa avançada%{doc_link_end} está ativada."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}Aprenda sobre os níveis de visibilidade.%{docs_link_end}"
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@empresa.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} mais downstream pipelines"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} excluído"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr "%{linkStart}A busca avançada%{linkEnd} está ativada."
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow}, e %{awardsListLength} mais"
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} Branch"
@@ -1275,8 +1265,11 @@ msgstr "%{timebox_type} deve ter uma data de início e de vencimento"
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "Alterações de %{title}"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} livre)"
@@ -1290,6 +1283,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} livre)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} aviso(s) encontrados(s):"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr "%{user} criou uma issue: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} não está incluído na lista"
@@ -1362,6 +1361,9 @@ msgstr "%{webhooks_link_start}%{webhook_type}%{webhooks_link_end} permitem que v
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{wildcards_link_start}Caracteres curinga%{wildcards_link_end} como %{code_tag_start}v*%{code_tag_end} ou %{code_tag_start}*release%{code_tag_end} são suportados."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' não é um nível de visibilidade válido"
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr "(Nenhuma alteração)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(verificar progresso)"
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(Deixe em branco se não quiser alterá-lo)"
-msgid "(max size 15 MB)"
-msgstr "(tamanho máximo de 15MB)"
-
msgid "(no user)"
msgstr "(sem usuário)"
@@ -1466,8 +1483,8 @@ msgstr "+ %{amount} mais"
msgid "+ %{count} more"
msgstr "+ %{count} mais"
-msgid "+ %{hiddenBranchesLength} more"
-msgstr "+ %{hiddenBranchesLength} mais"
+msgid "+ %{itemsLength} more"
+msgstr ""
msgid "+ %{moreCount} more"
msgstr "%{moreCount} mais"
@@ -1782,9 +1799,6 @@ msgstr "Uma página básica e função serverless que usa AWS Lambda, o AWS API
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "Um modelo básico para o desenvolvimento de programas Linux usando o Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "Uma plataforma completa de DevOps"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,8 +1904,8 @@ msgstr "Um modelo pronto para uso com aplicativos do Android"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "Um modelo pronto para uso com aplicativos do iOS baseados em Swift"
-msgid "A rebase is already in progress."
-msgstr "Um rebase já está em andamento."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "Um login na sua conta foi feito a partir do seguinte endereço IP: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr "Ações de IA"
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr "Gera um resumo de todos os comentários"
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr "Respostas geradas por AI"
-msgid "AI|Send chat message."
-msgstr "Enviar mensagem de bate-papo"
-
msgid "AI|Something went wrong. Please try again later"
msgstr "Algo deu errado. Por favor, tente novamente mais tarde"
@@ -2036,6 +2074,9 @@ msgstr "A descrição existente será substituída quando você enviar."
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr "Muito texto no chat. Tente novamente com um texto mais curto."
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr "Para ajudar a melhorar a qualidade do conteúdo, envie seu comentário aos membros da equipe do GitLab."
@@ -2081,6 +2122,9 @@ msgstr "Fuzzing API"
msgid "API Help"
msgstr "Ajuda da API"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "Chave de API"
@@ -2259,7 +2303,7 @@ msgid "AbuseReports|%{reportedUser} reported for %{category} by %{count} users"
msgstr "%{reportedUser} relatado para %{category} por %{count} usuários"
msgid "AbuseReports|%{reportedUser} reported for %{category} by %{reporter}"
-msgstr ""
+msgstr "%{reportedUser} relatado para %{category} por %{reporter}"
msgid "AbuseReports|Deleted user"
msgstr "Usuário excluído"
@@ -2402,6 +2446,12 @@ msgstr "Phishing"
msgid "AbuseReport|Phone"
msgstr "Telefone"
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr "Motivo"
@@ -2727,7 +2777,7 @@ msgid "Active group access tokens"
msgstr ""
msgid "Active personal access tokens"
-msgstr ""
+msgstr "Tokens de acesso pessoal ativos"
msgid "Active pipeline trigger tokens"
msgstr "Tokens de gatilho de pipeline ativo"
@@ -2876,6 +2926,9 @@ msgstr "Adicionar regra de aprovação"
msgid "Add approvers"
msgstr "Adicionar aprovadores"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Adicionar épico filho a um épico"
@@ -3014,9 +3067,6 @@ msgstr "Adicionar sugestão ao lote"
msgid "Add tag"
msgstr "Adicionar etiqueta"
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "Adicione texto à página de entrada. Markdown ativado."
@@ -3170,15 +3220,15 @@ msgstr "Adicone essa %{issuable_type} relacionada a %{issuable_type} que foi cri
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "Ajuste a frequência com que a interface do usuário do GitLab para atualizações."
-msgid "Admin"
-msgstr "Administrador"
-
msgid "Admin Area"
msgstr "Ãrea do Administrador"
msgid "Admin Area / Dashboard"
msgstr "Ãrea administrativa / Painel"
+msgid "Admin Mode"
+msgstr "Modo administrador"
+
msgid "Admin Note"
msgstr "Nota do administrador"
@@ -3188,9 +3238,6 @@ msgstr "Notificações do administrador"
msgid "Admin message"
msgstr "Mensagem do administrador"
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Modo administrador já ativado"
@@ -3548,6 +3595,9 @@ msgstr "Para obter uma lista dos recursos de registro incluídos, consulte %{lin
msgid "AdminSettings|Git abuse rate limit"
msgstr "Limite de taxa de abuso do Git"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr "GitLab usa os %{bold_start}Rails%{bold_end} e %{bold_start}Browser JavaScript%{bold_end} SDKs Sentry para enviar eventos para o Sentry. Para que as alterações nas configurações de integração do Rails tenham efeito, reinicie o GitLab."
@@ -3644,6 +3694,9 @@ msgstr "Pacote metadados de registro para sincronizar"
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr "Pausar a indexação do Elasticsearch"
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr "Detecção de segredo pré-recebimento"
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr "Evitar que não administradores usem os níveis de visibilidade selecionados para grupos, projetos e snippets."
@@ -4262,6 +4315,9 @@ msgstr "docs"
msgid "AdminUsers|user cap"
msgstr "limite de usuários"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "Administradores"
@@ -4295,6 +4351,9 @@ msgstr "Credenciais"
msgid "Admin|Deploy Keys"
msgstr "Implantar chaves"
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr "Após uma atualização de senha bem-sucedida, você será redirecionado
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr "Depois de removido, o relacionamento de bifurcação só pode ser restaurado usando a API. Este projeto não poderá mais receber ou enviar solicitações de mesclagem para o fluxo de subida do projeto ou outras bifurcações."
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
-msgstr "Depois que a integração do Apple App Store Connect for ativada, as seguintes variáveis protegidas serão criadas para uso de CI/CD."
-
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr "Depois que a exportação for concluída, baixe o arquivo de dados do e-mail de notificação ou desta página. Você pode então importar o arquivo de dados na página %{strong_text_start}Criar novo grupo%{strong_text_end} de outra instância do GitLab."
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
-msgstr "Depois de ativar a integração, a seguinte variável protegida é criada para uso de CI/CD:"
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
+msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4766,6 +4831,15 @@ msgstr "O alerta de teste agora deve estar visível em sua lista de alertas."
msgid "Algorithm"
msgstr "Algoritmo"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Todos"
@@ -4796,9 +4870,6 @@ msgstr "Todos os usuários elegíveis"
msgid "All environments"
msgstr "Todos os ambientes"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr "Todos os grupos"
@@ -4853,6 +4924,9 @@ msgstr "Todos os usuários devem ter um nome."
msgid "All users with matching cards"
msgstr "Todos os usuários com cartões correspondentes"
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr "Permitir que %{strongOpen}%{group_name}%{strongClose} conecte você?"
@@ -4910,12 +4984,18 @@ msgstr "Permitir que esta chave faça push para este repositório"
msgid "Allow use of licensed EE features"
msgstr "Permitir o uso de funcionalidades da licença EE"
+msgid "Allow users to create organizations"
+msgstr "Permitir que os usuários criem organizações"
+
msgid "Allow users to extend their session"
msgstr "Permitir que usuário estendam sua sessão"
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Permitido"
@@ -4937,9 +5017,6 @@ msgstr "Permite que projetos ou subgrupos neste grupo substituam a configuraçã
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Permite adicionar e gerenciar clusters do Kubernetes."
-
msgid "Almost there"
msgstr "Quase lá"
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "Uma conta do GitLab do usuário empresarial foi criada para você pela sua organização:"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "Um administrador alterou a senha de sua conta GitLab em %{link_to}."
@@ -5018,9 +5092,6 @@ msgstr "Um aplicativo chamado %{link_to_client} está solicitando acesso à sua
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "Uma notificação de e-mail foi enviada recentemente do painel de administrador. Aguarde %{wait_time_in_words} antes de tentar enviar outra mensagem."
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Um campo vazio do usuário do GitLab adicionará o nome completo do usuário do FogBugz (por exemplo, \"Por John Smith\") na descrição de todos os issues e comentários. Ele também irá associar e/ou atribuir essas issues e comentários ao criador do projeto."
@@ -5096,9 +5167,6 @@ msgstr "Um erro ocorreu ao desabilitar a Central de serviços."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Erro ao ignorar alerta. Atualize a página e tente novamente."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Erro ao remover alerta. Atualize a página e tente novamente."
-
msgid "An error occurred while drawing job relationship links."
msgstr "Ocorreu um erro ao desenhar links de relação de trabalho."
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr "Ocorreu um erro ao salvar as alterações: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "Ocorreu um erro ao salvar a configuração"
-msgstr[1] "Ocorreu um erro ao salvar as configurações"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr "Tem certeza de que deseja cancelar a criação deste painel?"
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr "Tem certeza de que deseja cancelar a edição deste painel?"
@@ -5604,6 +5673,9 @@ msgstr "Nome do evento"
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5683,7 +5755,7 @@ msgid "Analytics|Something went wrong while connecting to your data source. See
msgstr ""
msgid "Analytics|Something went wrong while loading available visualizations. Refresh the page to try again."
-msgstr ""
+msgstr "Algo deu errado ao carregar as visualizações. Atualize a página para tentar novamente."
msgid "Analytics|Something went wrong while loading the dashboard. Refresh the page to try again or see %{linkStart}troubleshooting documentation%{linkEnd}."
msgstr "Algo deu errado ao carregar o painel. Atualize a página para tentar novamente ou consulte a %{linkStart}documentação de solução de problemas%{linkEnd}."
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr "Atualizando a visualização %{visualizationName}"
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,18 +5799,21 @@ msgstr ""
msgid "Analytics|Users"
msgstr "Usuários"
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr "Ver painéis disponíveis"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
msgid "Analytics|Viewport"
msgstr ""
msgid "Analytics|Visualization"
msgstr "Visualização"
-msgid "Analytics|Visualization Designer"
-msgstr "Designer de visualização"
-
msgid "Analytics|Visualization designer"
msgstr "Designer de visualização"
@@ -5766,9 +5844,6 @@ msgstr "Analisando arquivo..."
msgid "Ancestors"
msgstr "Ancestrais"
-msgid "And this registration token:"
-msgstr "E esse token de registro:"
-
msgid "Anonymous"
msgstr "Anônimo"
@@ -5829,6 +5904,27 @@ msgstr "Anexar o comentário com %{shrug}"
msgid "Append the comment with %{tableflip}"
msgstr "Anexar o comentário com %{tableflip}"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Arraste seu arquivo de chave privada aqui ou %{linkStart}clique para carregar%{linkEnd}."
@@ -5841,17 +5937,14 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr "Deixe em branco para usar sua chave privada atual."
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr "Apenas defina variáveis em ramificações e tags protegidas"
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr "Apenas ramificações e tags protegidas"
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
-msgstr "O ID do emissor da Apple App Store Connect."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
-msgstr "O ID da chave da App Store Connect."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
msgstr "A Chave privada da Apple App Store Connect (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Aplicativo"
msgid "Application ID"
msgstr "ID da aplicação"
-msgid "Application analytics"
-msgstr "Análise de aplicativos"
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6103,7 +6193,7 @@ msgid "Approval options"
msgstr "Opções de aprovação"
msgid "Approval rejected."
-msgstr "Aprovação rejeitada."
+msgstr ""
msgid "Approval rules"
msgstr "Regra de aprovação"
@@ -6267,7 +6357,7 @@ msgid "ApprovalSettings|Remove approvals by Code Owners if their files changed"
msgstr "Remover aprovações de proprietários de código se seus arquivos foram alterados"
msgid "ApprovalSettings|Require user re-authentication (password or SAML) to approve"
-msgstr "Requer uma nova autenticação do usuário (senha ou SAML) para aprovar"
+msgstr ""
msgid "ApprovalSettings|There was an error loading merge request approval settings."
msgstr "Ocorreu um erro ao carregar as configurações de aprovação de merge request."
@@ -6392,9 +6482,6 @@ msgstr "Arquivar tarefas"
msgid "Archive project"
msgstr "Arquivar projeto"
-msgid "Archive test case"
-msgstr "Arquivar caso de teste"
-
msgid "Archived"
msgstr "Arquivado"
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr "Tem certeza que deseja excluir esta chave SSH?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "Você realmente deseja excluir este comentário?"
@@ -6473,9 +6563,6 @@ msgstr "Você tem certeza que deseja excluir essa etiqueta?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "Tem certeza de que deseja excluir este pipeline? Fazendo isso irá expirar todos os caches de pipeline e excluir todos os objetos relacionados, como builds, logs, artefatos e gatilhos. Esta ação não pode ser desfeita."
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr "Tem certeza de que deseja excluir esta regra de ramificação de destino?"
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Tem certeza de que deseja fazer o deploy deste ambiente?"
@@ -6671,9 +6758,6 @@ msgstr "Este artefato será excluído permanentemente. Quaisquer relatórios ger
msgid "Artifacts|Total artifacts size"
msgstr "Tamanho total dos artefatos"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "À medida que continuamos a construir mais recursos para SAST, adoraríamos seu feedback sobre o recurso de configuração SAST %{linkStart}nessa issue%{linkEnd}."
@@ -6689,6 +6773,9 @@ msgstr "Lista de ramificações separadas por vírgulas para serem automaticamen
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr "Token de acesso pessoal do usuário. O usuário deve ter acesso à tarefa. Todos os comentários são atribuídos a este usuário."
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr "Pelo menos uma aprovação de um proprietário do código é necessária
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,8 +6995,8 @@ msgstr "Região AWS"
msgid "AuditStreams|AWS S3"
msgstr "AWS S3"
-msgid "AuditStreams|Access Key Xid"
-msgstr "Chave de acesso Xid"
+msgid "AuditStreams|Access Key ID"
+msgstr ""
msgid "AuditStreams|Active"
msgstr "Ativo"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr "Registro do Google Cloud"
@@ -7025,6 +7112,12 @@ msgstr "Chave de acesso secreta"
msgid "AuditStreams|Select events"
msgstr "Selecionar eventos"
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr "Configurar streaming para eventos de auditoria"
@@ -7047,7 +7140,7 @@ msgid "AuditStreams|This is great for keeping everything one place."
msgstr "Isso é ótimo para manter tudo em um só lugar."
msgid "AuditStreams|Use the AWS console to view the secret access key. To change the secret access key, replace it with a new secret access key."
-msgstr ""
+msgstr "Use o console AWS para visualizar a chave de acesso secreta. Para alterar a chave de acesso secreta, substitua-a por uma nova chave de acesso secreta."
msgid "AuditStreams|Use the Google Cloud console to view the private key. To change the private key, replace it with a new private key."
msgstr "Use o console do Google Cloud para visualizar a chave privada. Para alterar a chave privada, substitua-a por uma nova chave privada."
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr "Requisições de web autenticadas"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "Autenticação"
@@ -7307,12 +7403,6 @@ msgstr "Resolvido automaticamente"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "Atualiza automaticamente os branches e tags deste projeto do repositório upstream."
-msgid "Automation"
-msgstr "Automação"
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "Nota"
@@ -7337,12 +7427,18 @@ msgstr "Foto de perfil será removida. Tem certeza?"
msgid "Average per day: %{average}"
msgstr "Média diária: %{average}"
+msgid "Awaiting review"
+msgstr "Aguardando análise"
+
msgid "Awaiting user signup"
msgstr "Aguardando cadastro do usuário"
msgid "AwardEmoji|No emoji found."
msgstr "Nenhum emoji encontrado."
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "Voltar"
@@ -7394,9 +7490,6 @@ msgstr "Novo selo"
msgid "Badges|Add new badge"
msgstr "Adicionar novo selo"
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Falha ao adicionar selo, por favor, cheque os URLs inseridos e tente novamente."
-
msgid "Badges|Badge image URL"
msgstr "URL da imagem do selo"
@@ -7409,9 +7502,6 @@ msgstr "Selo salvo."
msgid "Badges|Delete badge?"
msgstr "Apagar selo?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Erro ao apagar selo, por favor, tente novamente."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr "Digite uma URL válida"
msgid "Badges|Example: %{exampleUrl}"
msgstr "Exemplo: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr "Falha ao adicionar novo selo. Verifique os URLs e tente novamente."
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr "Falha ao excluir o selo. Tente novamente."
+
msgid "Badges|Group Badge"
msgstr "Selo de grupo"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr "Se você excluir este selo, você %{strongStart}poderá restaurá%{strongEnd} lo."
+
msgid "Badges|Link"
msgstr "Link"
@@ -7457,18 +7556,21 @@ msgstr "Aprimorar %{docsLinkStart}variáveis%{docsLinkEnd}: %{placeholders}"
msgid "Badges|The badge was deleted."
msgstr "O selo foi apagado."
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr "Este grupo não tem selos, comece por criar um novo acima."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr "Este grupo não possui selos. Adicione um selo existente ou crie um."
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr "Este projeto não possui selos, comece criando um novo acima."
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "Você vai excluir este emblema. Emblemas Excluídos %{strongStart}não podem%{strongEnd} ser restaurado."
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr "Este projeto não possui selos. Comece adicionando um novo selo."
msgid "Badges|Your badges"
msgstr "Seus selos"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7478,8 +7580,8 @@ msgstr "URL de Bamboo"
msgid "BambooService|Bamboo build plan key."
msgstr "Chave do plano de construção do Bamboo."
-msgid "BambooService|Bamboo service root URL."
-msgstr "URL raíz do serviço Bamboo."
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr "Insira a nova chave de construção"
@@ -7493,8 +7595,8 @@ msgstr "Executa CI/CD pipelines com Atlassian Bamboo."
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr "Executa CI/CD pipelines com Atlassian Bamboo. Você deve configurar a rotulagem de revisão automática e um gatilho de repositório no Bamboo. %{docs_link}"
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "O usuário com acesso API ao servidor Bamboo."
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr "Banido"
@@ -7598,9 +7700,6 @@ msgstr "Antes de ativar esta integração, crie um webhook para a sala no Google
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "Antes de inserir o código, tenha certeza de ter lido o comentário que separou cada grupo de código."
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr "Comece com o commit selecionado"
@@ -7958,6 +8057,9 @@ msgstr "Agora você poderá aproveitar os minutos de computação gratuitos em e
msgid "Billings|Your account has been validated"
msgstr "A sua conta foi validada."
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr "Ocorreu um erro ao carregar os detalhes da assinatura do GitLab."
msgid "Billing|An error occurred while loading billable members list."
msgstr "Ocorreu um erro ao carregar a lista de membros faturáveis."
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr "Ocorreu um erro ao carregar a lista de membros pendentes."
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr "Membros diretos"
msgid "Billing|Enter at least three characters to search."
msgstr "Digite pelo menos três caracteres para pesquisar."
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "Para garantir que todos os membros possam acessar o grupo quando sua avaliação terminar, você pode atualizar para um nível pago."
@@ -8083,7 +8179,10 @@ msgstr "Ver aprovações pendentes"
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "Você está prestes a remover o usuário %{username} de sua assinatura. Se você continuar, o usuário será removido do %{namespace} grupo e de todos os seus subgrupos e projetos. Esta ação não pode ser desfeita."
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] "+ %{displayedIssuablesCount} mais %{issuableType}s"
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr "Ocorreu um erro ao buscar os grupos. Por favor, tente novamente."
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "Ocorreu um erro ao buscar a issues. Por favor recarregue a página ."
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "Ocorreu um erro enquanto buscava paineis épicos. Por favor, recarregue a página."
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] "Bloqueado por %{blockedByCount} %{issuableType}"
msgstr[1] "Bloqueado por %{blockedByCount} %{issuableType}s"
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Recolher"
@@ -8410,9 +8473,6 @@ msgstr "Expandir"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr "Mover cartão"
-
msgid "Boards|Move to end of list"
msgstr "Mover para o final da lista"
@@ -8506,6 +8566,9 @@ msgstr "Branch já utilizada"
msgid "Branch name"
msgstr "Nome da ramificação"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr "Modelo de nome de ramificação"
@@ -8515,6 +8578,18 @@ msgstr "Branch não carregado - %{branchId}"
msgid "Branch rules"
msgstr "Regras de ramificação"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "%{linkStart}Curingas%{linkEnd} como *-stable ou production/ são suportados"
@@ -8581,15 +8656,27 @@ msgstr "Ramificação"
msgid "BranchRules|Branch name or pattern"
msgstr "Nome ou padrão da ramificação"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "Detalhes das regras de ramificação"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr "Criar ramificação protegida"
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "Criar curinga: %{searchTerm}"
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr "Cargos"
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "Verificações de status"
@@ -8665,6 +8758,9 @@ msgstr "Usuários"
msgid "BranchRules|View details"
msgstr "Ver detalhes"
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "padrão"
@@ -8677,6 +8773,9 @@ msgstr "Ramificações"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr "Ramificações: %{source_branch} para %{target_branch}"
@@ -8977,6 +9076,12 @@ msgstr "Navegar pelos arquivos"
msgid "Browse templates"
msgstr "Navegar por modelos"
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr "A compilação não pode ser apagada"
@@ -9010,9 +9115,18 @@ msgstr "%{feature} (requer v%{version})"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr "Esteja ciente das %{linkStart}regras de visibilidade%{linkEnd} ao importar grupos."
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr "Destino"
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr "Tamanho máximo do arquivo de download de transferência direta (MiB)"
@@ -9022,17 +9136,26 @@ msgstr "Filtrar por grupo de fonte"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr "Os seguintes dados não serão migrados: %{bullets} Contate o administrador do sistema do %{host} para atualizar o GitLab se você precisa desses dados em sua migração."
-msgid "BulkImport|GitLab Migration history"
-msgstr "Histórico de migração do GitLab"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
+msgstr ""
msgid "BulkImport|History"
msgstr "Histórico"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Importar grupos do GitLab"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr "Importação finalizada. Escolha outro nome para reimportar."
@@ -9049,6 +9172,12 @@ msgstr "Importar projetos é um recurso %{docsLinkStart}Beta%{docsLinkEnd}."
msgid "BulkImport|Importing the group failed."
msgstr "Falha na importação do grupo."
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr "Última importação para %{link}"
@@ -9103,8 +9232,11 @@ msgstr "Fonte"
msgid "BulkImport|Source group"
msgstr "Grupo de fonte"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
-msgstr "Modelo / Importação baseada em arquivo / Migração do GitLab"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
+msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
msgstr ""
@@ -9166,9 +9298,6 @@ msgstr "Compre mais minutos de pipeline"
msgid "By %{user_name}"
msgstr "Por %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "Ao autenticar com uma conta vinculada a um endereço de e-mail corporativo, entende-se que essa conta é um usuário corporativo (Enterprise). "
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr "Por padrão, todos os projetos e grupos usam a configuração de notificações globais."
@@ -9179,7 +9308,7 @@ msgid "By quarter"
msgstr "por trimestre"
msgid "By using a primary email tied to an Enterprise email address, you acknowledge that this account is an Enterprise User."
-msgstr ""
+msgstr "Ao usar um e-mail principal vinculado a um endereço de e-mail corporativo, você reconhece que esta conta é um Usuário Corporativo."
msgid "By week"
msgstr "Por semana"
@@ -9309,6 +9438,9 @@ msgstr "Padrão para pipeline de Auto DevOps para todos os projetos"
msgid "CICD|Deployment strategy"
msgstr "Estratégia de implantação"
+msgid "CICD|Developer"
+msgstr "Desenvolvedor"
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr "A desativação deste recurso é uma mudança permanente."
@@ -9330,6 +9462,12 @@ msgstr "Limitar o acesso %{italicStart}do%{italicEnd} projeto (Obsoleto)"
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr "Limitar o acesso %{italicStart}para%{italicEnd} esse projeto"
+msgid "CICD|Maintainer"
+msgstr "Mantenedor"
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr "Evitar que os tokens de trabalho CI/CD deste projeto sejam usados para acessar outros projetos, a menos que o outro projeto seja adicionado à lista de permissões. É um risco de segurança desabilitar esse recurso, porque projetos não autorizados podem tentar recuperar um token ativo e acessar a API. %{linkStart}Saiba mais%{linkEnd}."
@@ -9393,18 +9531,6 @@ msgstr "Solicitar ID de CVE"
msgid "CVE|Why Request a CVE ID?"
msgstr "Por que solicitar um CVE ID?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr "Ao ativar este recurso, você aceita os %{linkStart}Termos de uso do teste%{linkEnd}"
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr "Verificação contínua de vulnerabilidades"
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr "Detecte vulnerabilidades fora de um pipeline à medida que novos dados são adicionados ao banco de dados consultivo do GitLab."
-
-msgid "CVS|Toggle CVS"
-msgstr "Alternar CVS"
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,18 +9549,18 @@ msgstr "Subdomínio do Campfire (opcional)"
msgid "Campfire token"
msgstr "Token do Campfire"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "Token de autenticação de API do Campfire."
-msgid "CampfireService|From the end of the room URL."
-msgstr "Do final da URL da sala."
+msgid "CampfireService|ID portion of the Campfire room URL."
+msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr "Envia notificações sobre eventos push para salas de bate-papo do Campfire. %{docs_link}"
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr "O subdomínio %{code_open}.campfirenow.com%{code_close}"
-
msgid "Can be manually deployed to"
msgstr "Pode ser implantado manualmente para"
@@ -9444,6 +9570,9 @@ msgstr "Pode criar grupos de nível superior:"
msgid "Can not delete primary training"
msgstr "Não é possível excluir a chave primária"
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr "Não é possível aplicar porque a ramificação de origem foi excluída."
@@ -9894,6 +10023,9 @@ msgstr "em %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr "em %{project_link}"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Verifique Novamente"
@@ -10006,6 +10138,9 @@ msgstr "Ocorreu um erro desconhecido. Tente novamente atualizando esta página."
msgid "Checkout|Billing address"
msgstr "Endereço de cobrança"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "Minutos de CI"
@@ -10018,6 +10153,9 @@ msgstr "Checkout"
msgid "Checkout|City"
msgstr "Cidade"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr "Pacote de computação"
@@ -10030,6 +10168,9 @@ msgstr "Confirmar compra"
msgid "Checkout|Confirming..."
msgstr "Confirmando..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Continuar para a realização da cobrança"
@@ -10090,6 +10231,9 @@ msgstr "Grupo"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr "Código de cupom inválido. Insira um código de cupom válido."
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "Deve ser %{minimumNumberOfUsers} (seus assentos em uso) ou mais."
@@ -10133,7 +10277,7 @@ msgid "Checkout|Select a state"
msgstr "Selecione um estado"
msgid "Checkout|Something went wrong while loading price details."
-msgstr ""
+msgstr "Algo deu errado ao carregar os detalhes do preço."
msgid "Checkout|State"
msgstr "Estado"
@@ -10147,6 +10291,9 @@ msgstr "Endereço da rua"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "O envio do formulário do cartão de crédito falhou com código %{errorCode}: %{errorMessage}"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Detalhes da assinatura"
@@ -10159,6 +10306,9 @@ msgstr "Sucesso: assinatura"
msgid "Checkout|Tax"
msgstr "Impostos"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "Total"
@@ -10228,9 +10378,6 @@ msgstr "Escolher arquivo..."
msgid "Choose a file"
msgstr "Escolha um arquivo"
-msgid "Choose a group"
-msgstr "Escolha um grupo"
-
msgid "Choose a template"
msgstr "Escolha um modelo"
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr "Esta aba exibe informações coletadas automaticamente sobre os componentes no repositório, mas nenhuma informação foi encontrada."
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr "Voltar ao catálogo CI/CD"
@@ -10312,8 +10462,11 @@ msgstr "Componentes"
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr "Crie um repositório de componentes de pipeline e torne mais rápida e fácil a reutilização de configurações de pipeline."
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
-msgstr "Descubra recursos de configuração de CI para uma experiência perfeita de CI/CD."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr "Descubra componentes de CI/CD que podem melhorar seu pipeline com funcionalidades adicionais."
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
+msgstr "Edite sua busca e tente novamente. Ou %{linkStart}aprenda a criar um componente de repositório%{linkEnd}."
msgid "CiCatalog|Get started with the CI/CD Catalog"
msgstr "Introdução ao Catálogo CI/CD"
@@ -10324,18 +10477,15 @@ msgstr "Ir para o projeto"
msgid "CiCatalog|Last release at %{date}"
msgstr "Última versão em %{date}"
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr "Marca o projeto como um recurso do catálogo CI/CD"
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr "Marca o projeto como um recurso do catálogo CI/CD. %{linkStart}O que é o catálogo CI/CD?%{linkEnd}"
-
msgid "CiCatalog|No component available"
msgstr "Nenhum componente disponível"
msgid "CiCatalog|No release available"
msgstr "Nenhuma versão disponível"
+msgid "CiCatalog|No result found"
+msgstr "Nenhum resultado encontrado"
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr "Página %{currentPage} de %{totalPage}"
@@ -10345,26 +10495,47 @@ msgstr "Leiame"
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr "Lançado %{timeAgo} por %{author}"
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
-msgstr "Repositórios de componentes de pipeline disponíveis neste espaço de nome."
+msgid "CiCatalog|Remove from the CI/CD catalog"
+msgstr "Remover do catálogo CI/CD?"
+
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
+msgstr "Remover projeto do catálogo CI/CD?"
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
-msgstr "O projeto deve conter um arquivo README.md e um arquivo template.yml. Quando ativado, o repositório fica disponível no catálogo CI/CD."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr "A busca deve ter pelo menos 3 caracteres"
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr "Ocorreu um problema ao buscar a configuração do catálogo CI/CD."
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
-msgstr "Ocorreu um problema ao marcar o projeto como um recurso do catálogo CI/CD."
-
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr "Ocorreu um erro ao buscar os recursos do catálogo de CI/CD."
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr "Este projeto agora é um recurso do catálogo CI/CD."
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
-msgstr "Este projeto será marcado como um recurso do Catálogo CI/CD e ficará visível no catálogo CI/CD. esta ação não é reversível."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
+msgstr ""
msgid "CiCatalog|Unreleased"
msgstr "Não lançado"
@@ -10372,6 +10543,9 @@ msgstr "Não lançado"
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr "Queremos ajudá-lo a criar e gerenciar repositórios de componentes de pipeline, além de facilitar a reutilização de configurações de pipeline. Deixe-nos saber como estamos fazendo!"
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "Intervalo de datas: %{range}"
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr "Aviso"
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr "Adicionar variável"
@@ -10469,7 +10655,7 @@ msgid "CiVariables|Attributes"
msgstr "Atributos"
msgid "CiVariables|CI/CD Variables"
-msgstr ""
+msgstr "Variáveis CI/CD"
msgid "CiVariables|Cancel"
msgstr "Cancelar"
@@ -10511,7 +10697,7 @@ msgid "CiVariables|Key"
msgstr "Chave"
msgid "CiVariables|Mask variable"
-msgstr ""
+msgstr "Mascarar variável"
msgid "CiVariables|Masked"
msgstr "Mascarada"
@@ -10549,14 +10735,23 @@ msgstr "Especifica os valores das variáveis a serem usadas nesta execução. As
msgid "CiVariables|State"
msgstr "Estado"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr "O valor deve ter pelo menos %{charsAmount} caracteres."
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr "Este %{entity} tem %{currentVariableCount} variáveis de CI/CD definidas. O número máximo de variáveis por %{entity} é %{maxVariableLimit}. Para adicionar novas variáveis, você deve reduzir o número de variáveis definidas."
-msgid "CiVariables|This variable value does not meet the masking requirements."
-msgstr "Este valor de variável não atende aos requisitos de mascaramento."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
+msgstr "Este valor não pode ser mascarado porque contém os seguintes caracteres: caracteres com espaço em branco."
msgid "CiVariables|Type"
msgstr "Tipo"
@@ -10579,11 +10774,23 @@ msgstr "Variável será mascarada nos registros de tarefa. Requer valores para a
msgid "CiVariables|Variables"
msgstr "Variáveis"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr "As variáveis especificadas aqui são %{boldStart}expandidas%{boldEnd} e não %{boldStart}mascaradas.%{boldEnd}"
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
-msgstr "Variáveis armazenam informações, como senhas e chaves secretas, que você pode usar em scripts de tarefa. Cada %{entity} pode definir no máximo %{limit} variável."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
+msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
msgstr ""
@@ -10601,7 +10808,7 @@ msgid "CiVariable|GitLab CI/CD supports OpenID Connect (OIDC) to give your build
msgstr "GitLab CI/CD suporta OpenID Connect (OIDC) para fornecer aos seus trabalhos de construção e implantação acesso a credenciais e serviços de nuvem. %{linkStart}Como configuro o OIDC para meu provedor de nuvem?%{linkEnd}"
msgid "CiVariable|Maximum of %{limit} environments listed. For more environments, enter a search query."
-msgstr ""
+msgstr "Máximo de %{limit} ambientes listados. Para mais ambientes, insira uma consulta de pesquisa."
msgid "CiVariable|New environment"
msgstr "Novo ambiente"
@@ -10812,9 +11019,6 @@ msgstr "Fechar épico"
msgid "Close milestone"
msgstr "Fechar marco"
-msgid "Close sidebar"
-msgstr "Fechar barra lateral"
-
msgid "Close this %{quick_action_target}"
msgstr "Fechar este %{quick_action_target}"
@@ -11849,26 +12053,44 @@ msgstr "Mostrar tudo"
msgid "CodeOwner|Pattern"
msgstr "Padrão"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
msgid "CodeSuggestionsSM|Code Suggestions"
msgstr "Sugestões de código"
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
-msgstr "Ativar sugestões de código para usuários desta instância. %{link_start}O que são sugestões de código?%{link_end}"
-
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
msgstr "%{linkStart}Sugestões de código%{linkEnd} usa uma IA generativa para sugerir código enquanto você está desenvolvendo."
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr "%{link_start}O que são sugestões de código?%{link_end}"
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
-msgstr "Um usuário pode receber uma licença de sugestão de código apenas uma vez em cada mês faturável."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
+msgstr ""
msgid "CodeSuggestions|Code Suggestions"
msgstr "Sugestões de código"
@@ -11876,23 +12098,23 @@ msgstr "Sugestões de código"
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr "Complemento de sugestões de código"
-msgid "CodeSuggestions|Code Suggestions seats used"
-msgstr "Assentos usados em sugestões de código"
+msgid "CodeSuggestions|Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
-msgstr "Ativar sugestões de código"
+msgid "CodeSuggestions|Duo Pro add-on"
+msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
-msgstr "Melhore sua experiência de codificação com recomendações inteligentes. %{linkStart}Sugestões de código%{linkEnd} usa IA generativa para sugerir código enquanto você está desenvolvendo."
+msgid "CodeSuggestions|Duo Pro seats used"
+msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
-msgstr "Obtenha sugestões de código enquanto escreve código em seu IDE. %{link_start}Saiba mais%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
-msgstr "Apresentando o complemento de sugestões de código"
+msgid "CodeSuggestions|Introducing Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
-msgstr "Apresentando o complemento de sugestões de código"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
+msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
msgstr "Projetos neste grupo podem usar sugestões de código"
@@ -12022,6 +12244,9 @@ msgstr "Colorir as mensagem"
msgid "ComboSearch is not defined"
msgstr "ComboSearch não está definido"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "Lista de endereços de e-mail separados por vírgula."
@@ -12070,6 +12295,12 @@ msgstr "Comandos não foram aplicados"
msgid "Comment"
msgstr "Comentar"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "Comentário '%{label}' na posição"
@@ -12348,14 +12579,50 @@ msgstr "Completo"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr "Completado em %{duration_seconds} segundos (%{relative_time})"
-msgid "Compliance Center|Export full report as CSV"
-msgstr "Exportar relatório completo como CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
-msgstr "Exportar violações de solicitação de mesclagem como CSV. Você receberá um e-mail após o processamento da exportação."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
-msgstr "Exportar projetos como CSV. Você receberá um e-mail após o processamento da exportação."
+msgid "Compliance Center Export|You will be emailed after the export is processed."
+msgstr ""
msgid "Compliance Center|Frameworks"
msgstr ""
@@ -12372,6 +12639,9 @@ msgstr "Centro de conformidade"
msgid "Compliance framework"
msgstr "Framework de conformidade"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr "Projetos associados"
@@ -12384,6 +12654,9 @@ msgstr "Descrição"
msgid "ComplianceFrameworksReport|Edit framework"
msgstr "Editar framework"
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr "Estruturas de conformidade ativas"
@@ -12393,12 +12666,12 @@ msgstr "Adicionar framework"
msgid "ComplianceFrameworks|Background color"
msgstr "Cor de fundo"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "Cancelar"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr ""
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr "Framework de conformidade criada"
@@ -12411,9 +12684,15 @@ msgstr "Configuração do pipeline compliance (opcional)"
msgid "ComplianceFrameworks|Configuration not found"
msgstr "Configuração não encontrada"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "Excluir framework de conformidade %{framework}"
@@ -12426,6 +12705,9 @@ msgstr "Descrição"
msgid "ComplianceFrameworks|Description is required"
msgstr "A descrição é necessária"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr "Nome"
msgid "ComplianceFrameworks|Name is required"
msgstr "O nome é necessário"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr "Nova framework de conformidade"
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr "Nenhuma estrutura de conformidade está configurada ainda"
@@ -12477,12 +12765,18 @@ msgstr "Requer assinatura Ultimate"
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12640,7 +12937,7 @@ msgid "ComplianceStandardsAdherence|More Information"
msgstr "Mais informações"
msgid "ComplianceStandardsAdherence|No projects with standards adherence checks found"
-msgstr ""
+msgstr "Não foram encontrados projetos com verificações de conformidade padrão"
msgid "ComplianceStandardsAdherence|No rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr "Projeto"
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr "Ver detalhes (correção disponível)"
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr "Configurar espelhamento de repositório."
msgid "Configure repository storage."
msgstr "Configurar armazenamento de repositório."
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr "Configure o comportamento de detecção de segredo para todos os projetos em sua instância do GitLab"
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,8 +13242,8 @@ msgstr ""
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
-msgstr "URL da área de trabalho do Confluence Cloud"
+msgid "Confluence Workspace URL"
+msgstr ""
msgid "ConfluenceService|Confluence Workspace"
msgstr ""
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr "Tags de imagem"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr "Para ampliar a sua pesquisa, altere ou remova os filtros acima."
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "Com o registro de contêiner, cada projeto pode ter seu próprio espaço para armazenar suas imagens do Docker. %{docLinkStart}Mais informações%{docLinkEnd}"
@@ -13701,8 +14019,8 @@ msgstr "Contribuições para %{calendar_date}"
msgid "Contributor"
msgstr "Contribuidor"
-msgid "Contributor statistics"
-msgstr "Estatísticas do colaborador"
+msgid "Contributor analytics"
+msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
msgstr "Controle como a variável CI_JOB_TOKEN CI/CD é usada para acesso à API entre projetos."
@@ -13713,6 +14031,9 @@ msgstr "Controle se deseja exibir conteúdo de melhoria da experiência do clien
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr "Copiar código"
msgid "Copy command"
msgstr "Copiar comando"
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr "Copiar comandos"
@@ -13848,9 +14172,6 @@ msgstr "Copiar o nome da origem do branch"
msgid "Copy to clipboard"
msgstr "Copiar para área de transferência"
-msgid "Copy token"
-msgstr "Copiar token"
-
msgid "Copy value"
msgstr "Copiar valor"
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr "Não foi possível atribuir política ao projeto ou grupo"
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr "Criar um grupo"
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "Crie um novo arquivo %{codeStart}.gitlab-ci.yml%{codeEnd} na raiz do repositório para começar."
@@ -14127,9 +14454,6 @@ msgstr "Crie um token de acesso pessoal na sua conta para dar pull ou push via %
msgid "Create a project"
msgstr "Crie um projeto"
-msgid "Create an account using:"
-msgstr "Criar uma conta usando:"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr "Criar um incidente. Incidentes são criados para cada alerta acionado."
@@ -14259,9 +14583,6 @@ msgstr "Criar versão"
msgid "Create requirement"
msgstr "Criar requisito"
-msgid "Create rules for target branches in merge requests."
-msgstr "Criar regras para ramificações de destino em solicitações de mesclagem."
-
msgid "Create service account"
msgstr "Criar nova conta de serviço"
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr "Definir mensagem da tag"
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "Você não tem permissão para criar um subgrupo neste grupo."
@@ -14508,6 +14832,9 @@ msgstr "Criado em"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "Criado uma ramificação e uma solicitação de mesclagem para resolver esta issue."
+msgid "Created at"
+msgstr "Criado em"
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "Criado a ramificação '%{branch_name}' e uma solicitação de mesclagem para resolver esta issue."
@@ -14718,6 +15045,12 @@ msgstr "Comprar minutos de pipeline"
msgid "CurrentUser|Edit profile"
msgstr "Editar perfil"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr "Um dos seus grupos está se esgotando"
@@ -15005,9 +15338,6 @@ msgstr "não permitido para o determinado evento de início"
msgid "CycleAnalytics|project dropdown filter"
msgstr "filtro de seleção de projeto"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr "Aceitar os termos de uso do teste?"
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr "Todos os tópicos"
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr "DORA4Metrics|Média (último %{days}d)"
@@ -15306,9 +15639,6 @@ msgstr "Todos"
msgid "DashboardProjects|Personal"
msgstr "Pessoal"
-msgid "Dashboards"
-msgstr "Painéis"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} e %{secondProject}"
@@ -15342,6 +15672,9 @@ msgstr "Nenhuma verificação anterior encontrada para este projeto"
msgid "DastConfig|Not enabled"
msgstr "Não ativado"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr "Perfis do site"
msgid "DastProfiles|Site type"
msgstr "Tipo de site"
-msgid "DastProfiles|Spider timeout"
-msgstr "Tempo limite do Spider"
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,8 +15948,8 @@ msgstr "URL alvo"
msgid "DastProfiles|Target timeout"
msgstr "Tempo limite de destino"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
-msgstr "O número máximo de minutos permitidos para o spider atravessar o site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
+msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
msgstr "O número máximo de segundos permitidos para o site em teste responder a uma solicitação."
@@ -15928,6 +16261,9 @@ msgstr "Ramificação padrão"
msgid "Default branch and protected branches"
msgstr "Branch padrão e branches protegidos"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Modelo de descrição padrão para issues"
@@ -16250,17 +16586,6 @@ msgstr "Exclusão pendente. Este projeto será excluído em %{date}. Repositóri
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "Proprietários e administradores podem excluir projetos."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr "Pode haver vários caminhos"
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr "Alternar lista de vulnerabilidades"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "Arquivo(s) não suportado(s) detectado(s)"
@@ -16396,9 +16727,6 @@ msgstr "Proxy de dependências"
msgid "Dependency Scanning"
msgstr "Verificação de dependência"
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr "Lista de dependências"
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr "Todos os itens no cache estão agendados para remoção."
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr "Ativar proxy de dependências"
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr "Ative oproxy de dependências para armazenar em cache as imagens de contêiner do Docker Hub e limpar automaticamente o cache."
msgid "DependencyProxy|Image list"
msgstr "Lista de imagens"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr "Programado para exclusão"
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr "Não há imagens no cache"
@@ -16465,6 +16805,9 @@ msgstr "Para ver o prefixo da imagem e o que está no cache, visite o %{linkStar
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr "Quando ativado, as imagens com mais de 90 dias serão removidas do cache."
@@ -16711,9 +17054,6 @@ msgstr "Nome de usuário"
msgid "DeployTokens|Username (optional)"
msgstr "Nome de usuário (opcional)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr "Seu novo nome de usuário do token de implantação"
-
msgid "DeployTokens|Your new deploy token"
msgstr "Seu novo token de implantação"
@@ -17384,6 +17724,51 @@ msgstr "Diferenciar limites"
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "Diferença entre a data de início e agora"
@@ -17513,6 +17898,9 @@ msgstr "Descartar as alterações para %{path}?"
msgid "Discard draft"
msgstr "Descartar rascunho"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Notificações do Discord"
@@ -17608,7 +17996,7 @@ msgid "Display as:"
msgstr ""
msgid "Display blame info"
-msgstr ""
+msgstr "Exibir informações de blame"
msgid "Display milestones"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr "Arraste para reordenar as etiquetas priorizadas e alterar sua prioridade
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "Arraste seus projetos aqui ou %{linkStart}clique para enviar%{linkEnd}."
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "Solte ou %{linkStart}envie%{linkEnd} um arquivo para ser anexado"
@@ -18108,6 +18499,9 @@ msgstr "Editando"
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr "Tempo decorrido"
@@ -18174,6 +18568,9 @@ msgstr "Notificação por e-mail para entradas desconhecidas"
msgid "Email patch"
msgstr "Patch de email"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "E-mail enviado"
@@ -18270,6 +18667,9 @@ msgstr "Arquivo vazio"
msgid "Enable"
msgstr "Ativar"
+msgid "Enable Admin Mode"
+msgstr "Ativar modo de administração"
+
msgid "Enable Akismet"
msgstr "Ativar Akismet"
@@ -18306,6 +18706,9 @@ msgstr "Ativar PlantUML"
msgid "Enable SSL verification"
msgstr "Ativar verificação SSL"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr "Ativar rastreamento do Snowplow"
@@ -18321,9 +18724,6 @@ msgstr "Ativar novidades: Somente o nível atual"
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "Ativar acesso à barra de desempenho para não administradores em um determinado grupo."
-msgid "Enable admin mode"
-msgstr "Ativar modo administrativo"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr "Ativar e e desativar a central de serviços. Algumas configurações adicionais podem ser necessárias. %{link_start}Saiba mais%{link_end}."
@@ -18387,6 +18787,9 @@ msgstr "Ative ou desative atalhos de teclado em suas %{linkStart}preferências d
msgid "Enable or disable version check and Service Ping."
msgstr "Ativar ou desativar a verificação de versão e o serviço de ping."
+msgid "Enable pre-receive secret detection"
+msgstr "Ativar detecção de segredo pré-recebimento"
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr "Ativar as verificações de repositório"
msgid "Enable security training"
msgstr "Ativar treinamento de segurança"
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Ative o treinamento de segurança para ajudar seus desenvolvedores a aprender como corrigir vulnerabilidades. Os desenvolvedores podem ver o treinamento de segurança de provedores educacionais selecionados, relevantes para a vulnerabilidade detectada."
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "Ativar executores compartilhados para todos os projetos e subgrupos neste grupo."
@@ -18492,6 +18892,9 @@ msgstr "Termina em"
msgid "Ends: %{endsAt}"
msgstr "Termina em: %{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "Forçar autenticação de dois fatores"
@@ -18807,6 +19210,9 @@ msgstr "Abrir"
msgid "Environments|Open live environment"
msgstr "Abrir ambiente ao vivo"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr "Nível de implantação"
msgid "Environment|Deployments"
msgstr "Implantações"
-msgid "Environment|Environment health"
-msgstr "Saúde do ambiente"
+msgid "Environment|Environment status"
+msgstr "Status do ambiente"
msgid "Environment|External IP"
msgstr "IP externo"
-msgid "Environment|Failed"
-msgstr "Falhou"
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr "Visão geral do Kubernetes"
-msgid "Environment|Pending"
-msgstr "Pendente"
-
msgid "Environment|Pods"
msgstr "Pods"
@@ -18948,9 +19348,6 @@ msgstr "Reconciliando"
msgid "Environment|ReplicaSets"
msgstr "ReplicaSets"
-msgid "Environment|Running"
-msgstr "Executando"
-
msgid "Environment|Services"
msgstr "Serviços"
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr "Bem-sucedido"
-
msgid "Environment|Summary"
msgstr "Resumo"
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr "Exportar %{requirementsCount} requisitos?"
msgid "Export as CSV"
msgstr "Exportar como CSV"
-msgid "Export commit custody report"
-msgstr "Exportar relatório de custódia de commits"
-
msgid "Export group"
msgstr "Exportar grupo"
@@ -20014,6 +20405,9 @@ msgstr "URL da wiki externa"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr "Link para uma wiki externa para a barra lateral."
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://exemplo.com/xxx/wiki/..."
@@ -20099,6 +20493,9 @@ msgstr "Falha ao criar um branch para esta issue. Por favor, tente novamente."
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "alha ao criar o framework"
@@ -20114,16 +20511,13 @@ msgstr "Falha ao criar o repositório"
msgid "Failed to create resources"
msgstr "Falha ao criar recursos"
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr "Falha ao criar a wiki"
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr "Falha ao carregar"
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr "Falha ao carregar os responsáveis"
-
msgid "Failed to load assignees. Please try again."
msgstr "Falha ao carregar os responsáveis. Por favor, tente novamente."
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr "Falha ao carregar as iterações."
-
msgid "Failed to load labels. Please try again."
msgstr "Falha ao carregar a etiqueta. Por favor, tente novamente."
-msgid "Failed to load milestones."
-msgstr "Falha ao carregar os marcos"
-
msgid "Failed to load milestones. Please try again."
msgstr "Falha ao carregar os marcos. Por favor, tente novamente."
@@ -20312,6 +20694,9 @@ msgstr "Falha ao atualizar o framework"
msgid "Failed to update issue status"
msgstr "Erro em atualizar o status da issue"
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr "Arquivo movido"
msgid "File name"
msgstr "Nome do arquivo"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr "Permissões de arquivo"
@@ -20884,11 +21272,8 @@ msgstr "Para arquivos maiores que este limite indexam apenas o nome do arquivo.
msgid "For general work"
msgstr "Para trabalhos gerais"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr "Para uso individual, crie uma conta separada em seu endereço de e-mail pessoal, não vinculada ao domínio ou grupo de e-mail corporativo."
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
-msgstr ""
+msgstr "Para uso individual, crie uma conta separada com seu endereço de e-mail pessoal, não vinculada ao domínio de e-mail corporativo."
msgid "For investigating IT service disruptions or outages"
msgstr "Para investigar interrupções ou interrupções de serviço de TI"
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "Gerado com dados JSON"
@@ -21550,12 +21938,6 @@ msgstr "Ressincronizar"
msgid "Geo|Resync all"
msgstr "Ressincronizar todos"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr "Contagem de retentativas"
@@ -21565,12 +21947,6 @@ msgstr "Verificar novamente"
msgid "Geo|Reverify all"
msgstr "Reverificar todos"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr "Reveja o status da replicação e ressincronize e verifique novamente os itens com o site principal."
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Isso irá ressincronizar todos os projetos. Pode levar algum tempo para ser concluído. Você tem certeza que quer continuar?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr "Tempo em segundos"
@@ -21742,9 +22112,6 @@ msgstr "primário"
msgid "Geo|secondary"
msgstr "secundário"
-msgid "Get a free instance review"
-msgstr "Obter gratuitamente uma instância de revisão"
-
msgid "Get a support subscription"
msgstr "Obtenha uma assinatura de suporte"
@@ -21766,6 +22133,9 @@ msgstr "Comece com o rastreamento de erros"
msgid "Get started!"
msgstr "Vamos começar!"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "Importação do GitHub"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "Mesclado por: %{author} em %{timestamp}*"
@@ -21941,7 +22317,7 @@ msgid "GitLab group: %{source_link}"
msgstr "Grupo do GitLab: %{source_link}"
msgid "GitLab has redesigned the left sidebar to address customer feedback. View details in %{blog_link_start}this blog post%{link_end}. Here's how to %{issues_link_start}file an issue%{link_end} with the GitLab product team."
-msgstr "O GitLab redesenhou a barra lateral esquerda para atender aos comentários dos clientes. Veja os detalhes em %{blog_link_start}esta postagem do blog%{link_end}. Veja como %{issues_link_start}uma issue%{link_end} com a equipe de produto do GitLab."
+msgstr "O GitLab redesenhou a barra lateral esquerda para atender aos comentários dos clientes. Veja os detalhes em %{blog_link_start}esta postagem do blog%{link_end}. Veja como %{issues_link_start}enviar issue%{link_end} com a equipe de produto do GitLab."
msgid "GitLab informs you if a new version is available. %{link_start}What information does GitLab Inc. collect?%{link_end}"
msgstr "O GitLab informa se uma nova versão está disponível. %{link_start}Quais informações o GitLab Inc. coleta?%{link_end}"
@@ -21952,9 +22328,6 @@ msgstr "GitLab é uma plataforma completa de DevOps, entregue como uma única ap
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr "GitLab é uma plataforma completa de DevOps, entregue como uma única aplicação, mudando fundamentalmente o caminho de%{br_tag}desenvolvimento, segurança e equipes de Ops colaboram"
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr "O GitLab é um aplicativo único para todo o ciclo de vida de desenvolvimento de software. Desde planejamento de projetos e gerenciamento de código-fonte até CI/CD, monitoramento e segurança."
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr "O GitLab é gratuito para uso. Muitos recursos para equipes maiores fazem parte de nossos %{link_start}produtos pagos%{link_end}. Você pode experimentar o Ultimate gratuitamente sem nenhuma obrigação ou detalhes de pagamento."
@@ -22084,8 +22457,8 @@ msgstr "Não verificado"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "Atualizando a configuração de suas páginas..."
-msgid "GitLabPages|Use multiple versions"
-msgstr "Usar múltiplas versões"
+msgid "GitLabPages|Use multiple deployments"
+msgstr ""
msgid "GitLabPages|Use unique domain"
msgstr "Usar domínio único"
@@ -22102,8 +22475,8 @@ msgstr "Quando ativado, um domínio único é gerado para acessar as páginas."
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr "Quando ativado, todas as tentativas de visitar seu site através de HTTP são redirecionadas automaticamente para HTTPS usando uma resposta com o código de status 301. Requer um certificado válido para todos os domínios. %{docs_link_start}Saiba mais.%{link_end}"
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
-msgstr "Quando ativado, você pode criar múltiplas versões das páginas do seu site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
+msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
msgstr "Ao usar Pages sob o domínio geral de uma instância do GitLab (%{pages_host}), você não pode usar HTTPS com subdomínios de subdomínios. Se seu namespace ou nome de grupo contiver um ponto, ele não funcionará. Esta é uma limitação do protocolo HTTP sobre TLS. As páginas HTTP funcionam se você não redirecionar HTTP para HTTPS. %{docs_link_start}Saiba mais.%{link_end}"
@@ -22172,7 +22545,7 @@ msgid "GithubImporter|PR mergers"
msgstr ""
msgid "GithubImporter|PR reviewers"
-msgstr ""
+msgstr "Revisores PR"
msgid "GithubImporter|PR reviews"
msgstr ""
@@ -22279,23 +22652,23 @@ msgstr "E-mail de notificação global"
msgid "Global notification level"
msgstr "Nível de notificação global"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr "%{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
-msgstr "Fechar"
+msgid "GlobalSearch|Archived"
+msgstr ""
msgid "GlobalSearch|Command palette"
msgstr "Paleta de comandos"
@@ -22354,6 +22727,9 @@ msgstr "Solicitações de mesclagem que eu seja um revisor"
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr "Apenas os primeiros %{max_shown} projetos não indexados são mostrados"
@@ -22375,18 +22751,15 @@ msgstr "Edições recentes"
msgid "GlobalSearch|Recent merge requests"
msgstr "Solicitações de mesclagem recentes"
+msgid "GlobalSearch|Reset"
+msgstr ""
+
msgid "GlobalSearch|Result count is over limit."
msgstr ""
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
-msgid "GlobalSearch|Search"
-msgstr "Pesquisa"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "Pesquisar no GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "Pesquisar por projetos, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr "Digite %{kbdOpen}para%{kbdClose}"
@@ -22426,9 +22796,6 @@ msgstr "Digite e pressione a tecla Enter para enviar a pesquisa."
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "Digite para que novas sugestões apareçam abaixo."
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "Use a tecla de atalho %{kbdOpen}/%{kbdClose} para iniciar uma pesquisa"
-
msgid "GlobalSearch|Users"
msgstr "Usuários"
@@ -22543,9 +22910,6 @@ msgstr "Voltar para a página anterior"
msgid "Go to previous unresolved thread"
msgstr "Ir para o tópico anterior não resolvido"
-msgid "Go to primary site"
-msgstr "Ir para o site primário"
-
msgid "Go to project"
msgstr "Ir para o projeto"
@@ -22615,6 +22979,9 @@ msgstr "Ir para suas solicitações de revisão"
msgid "Go to your snippets"
msgstr "Ir para seus snippets"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google Cloud"
@@ -22627,6 +22994,9 @@ msgstr "Projeto de Google Cloud"
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "Cancelar"
@@ -22663,12 +23033,12 @@ msgstr "Revogar autorizações"
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
-msgstr "Apenas defina variáveis em ramificações e tags protegidas"
-
msgid "GooglePlayStore|Protected branches and tags only"
msgstr "Apenas ramificações e tags protegidas"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
+msgstr ""
+
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Arraste seu arquivo de chave aqui ou %{linkStart}clique para enviar%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr "Use o GitLab para criar e lançar um aplicativo no Google Play."
msgid "Got it"
msgstr "Entendi"
-msgid "Got it!"
-msgstr "Entendi!"
-
msgid "Grafana URL"
msgstr "URL do Grafana"
@@ -22837,6 +23204,9 @@ msgstr "Info. do grupo:"
msgid "Group information"
msgstr "Informação do grupo"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "Grupo de tarefas por"
@@ -22930,11 +23300,14 @@ msgstr "O grupo foi importado com sucesso."
msgid "GroupImport|Unable to process group import file"
msgstr "Não foi possível processar o arquivo de importação do grupo"
-msgid "GroupPage|Copy group ID"
-msgstr "Copiar ID do grupo"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "Id do grupo: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr ""
@@ -23197,6 +23570,9 @@ msgstr "Após a instância atingir o limite de usuários, qualquer usuário adic
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr "Após a instância atingir o limite de usuários, qualquer usuário adicionado ou que solicite acesso deve ser aprovado por um administrador. Deixe em branco para um limite de usuários ilimitado. Se você alterar o limite de usuários para ilimitado, deverá reativar %{project_sharing_docs_link_start}compartilhamento de projeto%{link_end} e %{group_sharing_docs_link_start}compartilhamento de grupo%{link_end}. Aumentar o limite de usuários não aprova automaticamente os usuários pendentes."
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr "Análises"
@@ -23218,6 +23594,9 @@ msgstr "Selos"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr "Tenha cuidado. Mudar o pai de um grupo pode ter efeitos colaterais indesejados. %{learn_more_link_start}Saiba mais.%{learn_more_link_end}"
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr "Padrão para pipeline de Auto DevOps para todos os projetos dentro deste
msgid "GroupSettings|Email notifications are disabled"
msgstr "As notificações por e-mail estão desativadas"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr "Ativar agregação de plano de fundo da visão geral para o painel de fluxos de valor"
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr "Ativar esses recursos é sua aceitação do %{link_start}Contrato de teste do GitLab%{link_end}."
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr "Aplicar certificados SSH"
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr "Recursos de experimentos e beta"
@@ -23290,6 +23678,9 @@ msgstr "Se a visibilidade do grupo pai for menor que a visibilidade atual do gru
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "Os membros não podem convidar grupos fora de %{group} e seus subgrupos"
+msgid "GroupSettings|Namespace setting"
+msgstr "Configuração de espaço de nome"
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "Organizações e contatos podem ser criados e associados a issues."
@@ -23314,6 +23705,12 @@ msgstr "Projetos em %{group} não podem ser compartilhados com outros grupos"
msgid "GroupSettings|Reporting"
msgstr "Relatórios"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr "Selecione um subgrupo para usar como fonte de modelos personalizados para novos projetos neste grupo. %{link_start}Saiba mais%{link_end}."
@@ -23356,6 +23753,9 @@ msgstr "Ocorreu um problema ao atualizar as configurações do pipeline: %{error
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr "Esses recursos estão sendo desenvolvidos e podem ser instáveis."
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Essa configuração é aplicada no grupo %{ancestor_group} e foi sobrescrita nesse subgrupo."
@@ -23419,30 +23819,6 @@ msgstr "Os grupos são uma ótima maneira de organizar projetos e pessoas."
msgid "Groups are the best way to manage projects and members."
msgstr "Os grupos são a melhor maneira de gerenciar projetos e membros."
-msgid "GroupsDropdown|Frequently visited"
-msgstr "Visitados frequentemente"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Grupos que você visita frequentemente aparecerão aqui"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Carregando grupos"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "Procure seus grupos"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Algo deu errado do nosso lado."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Desculpe, nenhum grupo corresponde à sua pesquisa"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "Esse recurso requer um navegador com suporte a localStorage"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr "Alternar modo de edição"
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,8 +23879,8 @@ msgstr "Criar subgrupo"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr "Insira a URL para a instância de origem."
-msgid "GroupsNew|GitLab source instance URL"
-msgstr "URL da instância de origem do GitLab"
+msgid "GroupsNew|GitLab source instance base URL"
+msgstr ""
msgid "GroupsNew|Groups"
msgstr "Grupos"
@@ -23545,8 +23921,8 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr "Por favor preencha o seu token de acesso pessoal"
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
-msgstr "Forneça credenciais para a instância de origem da qual importar. Você pode fornecer esta instância como uma fonte para mover grupos nesta instância."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
+msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
msgstr ""
@@ -23668,6 +24044,9 @@ msgstr "Isso criará um projeto %{path} e adicionará um README.md."
msgid "Groups|You're creating a new top-level group"
msgstr "Você está criando um novo grupo de nível superior"
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "Visitante"
@@ -23722,6 +24101,15 @@ msgstr "Senha para seu nome de usuário no Harbor."
msgid "HarborIntegration|The name of the project in Harbor."
msgstr "O nome do projeto no Harbor."
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr "Use Harbour como registro de contêineres deste projeto."
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr "Ocultar dicas de ferramentas ou popovers"
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Ocultar valor"
-msgstr[1] "Ocultar valores"
-
msgid "Hide values"
msgstr "Ocultar valores"
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr "Hierarquia de planejamento"
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr "Manutenção"
msgid "Housekeeping successfully started"
msgstr "Manutenção iniciada com sucesso"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] "%d país encontrado"
msgstr[1] "%d países encontrados"
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr "Antes de terminar de criar sua conta, precisamos verificar sua identidad
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr "País ou região"
msgid "IdentityVerification|Didn't receive a code?"
msgstr "Não recebeu um código?"
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr "Enviar um novo código"
msgid "IdentityVerification|Send code"
msgstr "Enviar código"
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr "Importar grupo"
msgid "Import group from file"
msgstr "Importar grupo de arquivo"
-msgid "Import groups"
-msgstr "Importar grupos"
-
msgid "Import history"
msgstr "Importar histórico"
@@ -24831,12 +25223,12 @@ msgstr "Importando..."
msgid "Import|An error occurred while fetching import details."
msgstr ""
+msgid "Import|Failures for %{id}"
+msgstr ""
+
msgid "Import|GitHub import details"
msgstr "Detalhes da importação do GitHub"
-msgid "Import|GitLab Migration details"
-msgstr "Detalhes da migração do GitLab"
-
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
msgstr ""
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr "Sem detalhes de importação"
@@ -24864,6 +25259,9 @@ msgstr "O repositório não pôde ser importado."
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr "Não há um repositório de Git válido neste URL. Se seu repositório HTTP não for acessível publicamente, verifique suas credenciais."
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -24913,7 +25311,7 @@ msgid "InProductMarketing|%{strong_start}GitLab Inc.%{strong_end} 268 Bush Stree
msgstr ""
msgid "InProductMarketing|%{upper_start}Start your 30-day free trial of%{upper_end} %{lower_start}GitLab Ultimate%{lower_end}"
-msgstr ""
+msgstr "%{upper_start}Comece seu teste gratuito de 30 dias do%{upper_end} %{lower_start}GitLab Ultimate%{lower_end}"
msgid "InProductMarketing|Accelerate your digital transform"
msgstr "Acelere sua transformação digital"
@@ -25350,6 +25748,9 @@ msgstr "Indica se este executor pode escolher tarefas sem tags"
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "Informar aos usuários sem chaves SSH configuradas que eles não podem realizar pushes por SSH até que uma seja adicionada"
+msgid "Information"
+msgstr "Informação"
+
msgid "Infrastructure"
msgstr "Infraestrutura"
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "Instale o GitLab Runner e verifique se está em execução."
-
msgid "Installation"
msgstr "Instalação"
@@ -25866,9 +26264,6 @@ msgstr "Arquivo inválido."
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,11 +26470,11 @@ msgstr "Para obter mais membros, um proprietário do grupo pode %{trialLinkStart
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr "Para convidar novos usuários para este grupo de nível superior, você deve remover os usuários existentes. Você ainda pode adicionar usuários existentes do grupo de nível superior, incluindo quaisquer subgrupos e projetos."
-msgid "InviteMembersModal|Username"
-msgstr "Nome de usuário"
+msgid "InviteMembersModal|Username or name"
+msgstr ""
-msgid "InviteMembersModal|Username or email address"
-msgstr "Nome de usuário ou endereço de e-mail"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr "Você só tem espaço para mais %{count} %{members} em %{name}"
@@ -26103,7 +26498,7 @@ msgid "InviteMembers|Invite a group"
msgstr "Convidar grupo"
msgid "InviteMembers|Invite team members"
-msgstr ""
+msgstr "InviteMembers|Convidar membros da equipe"
msgid "InviteMember|Add members to this project and start collaborating with your team."
msgstr "Adicione membros para esse projeto e inicie a colaboração com a sua equipe"
@@ -26405,14 +26800,14 @@ msgstr "URL da issue"
msgid "IssueTracker|New issue URL"
msgstr "Novo URL da issue"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "A URL para criar uma issue no rastreador de issues externo."
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
-msgstr "A URL do projeto no rastreador de issues externo."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "A URL para visualizar um problema no rastreador de problemas externo. Deve conter %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "Use o Bugzilla como rastreador de issue deste projeto."
@@ -26516,6 +26911,11 @@ msgstr "Issues criadas por mês"
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr "Últimos 12 meses (%{chartDateRange})"
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr "Aberta"
@@ -26525,10 +26925,8 @@ msgstr "Visão geral"
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Desculpe, mas o seu filtro não produziu resultados"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr "Parece que atualmente não há dados disponíveis para cobertura de código"
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "É você"
@@ -26698,6 +27099,9 @@ msgstr "Erro ao carregar cadências de iteração."
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr "Cadência de iteração"
+
msgid "Iterations|Iteration cadences"
msgstr "Cadências de iteração"
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr "Você é administrador do GitLab?"
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr "Para concluir a configuração, você precisará concluir algumas etapas no GitLab:"
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "URL do proxy do Jira Connect"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr "Diga-nos o que você pensa!"
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr "O usuário do Jira não é um administrador de site ou organização. Verifique as permissões no Jira e tente novamente."
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr "Adoraríamos saber mais sobre sua experiência com o aplicativo GitLab for Jira Cloud."
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr "na ramificação %{branch_link}"
@@ -27163,8 +27579,8 @@ msgstr "Use um prefixo para corresponder às chaves de pendência do Jira."
msgid "JiraService|Use custom transitions"
msgstr "Usar transições personalizadas"
-msgid "JiraService|Use regular expression to match Jira issue keys."
-msgstr "Use expressão regular para corresponder às chaves de pendência do Jira."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
+msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
msgstr "Usando Jira para rastreamento de issue?"
@@ -27433,6 +27849,9 @@ msgstr "Duração"
msgid "Job|Erase job log and artifacts"
msgstr "Apagar registro de tarefa e artefatos"
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr "Links externos"
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr "Finalizado em"
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Artefatos da tarefa"
@@ -27514,6 +27936,9 @@ msgstr "Pesquisar registro de tarefa"
msgid "Job|Show complete raw"
msgstr "Mostrar raw completo"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27545,7 +27970,7 @@ msgid "Job|This job is stuck because you don't have any active runners that can
msgstr ""
msgid "Job|Update CI/CD variables"
-msgstr ""
+msgstr "Atualizar variáveis de CI/CD"
msgid "Job|Waiting for resource"
msgstr "Aguardando recurso"
@@ -27634,9 +28059,6 @@ msgstr "Chave (PEM)"
msgid "Key details"
msgstr "Detalhes principais"
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr "Chave:"
@@ -27673,6 +28095,9 @@ msgstr "Chaves"
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr "Clusters de Kubernetes"
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr "Agente %{name} ID #%{id}"
+
+msgid "KubernetesDashboard|Agents"
+msgstr "Agentes"
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr "Painel"
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr "Nome"
+
+msgid "KubernetesDashboard|Namespace"
+msgstr "Espaço de nome"
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr "Pods"
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr "Status"
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27798,6 +28337,12 @@ msgstr "As etiquetas podem ser aplicadas a issues e solicitações de mesclagem.
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "Etiquetas sem issues nesta iteração:"
@@ -27839,8 +28384,8 @@ msgstr ""
msgid "Last Accessed On"
msgstr "Acessado pela última vez em"
-msgid "Last Activity"
-msgstr "Última atividade"
+msgid "Last GitLab activity"
+msgstr "Última atividade do GitLab"
msgid "Last Name"
msgstr "Sobrenome"
@@ -27857,6 +28402,9 @@ msgstr "Acessado pela última vez em"
msgid "Last activity"
msgstr "Última atividade"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Último commit"
@@ -28141,9 +28689,6 @@ msgstr "Configure o CI/CD do seu primeiro projeto"
msgid "LearnGitLab|Set up your workspace"
msgstr "Configure sua área de trabalho"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr "Iniciar aprendizagem do GitLab"
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "Comece uma avaliação gratuita do GitLab Ultimate"
@@ -28174,6 +28719,9 @@ msgstr "Sua equipe está crescendo! Você convidou novos membros da equipe para
msgid "LearnGitlab|- Included in trial"
msgstr "- Incluído na avaliação"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr "Entre em contato com seu administrador para ativar esta ação."
@@ -28189,9 +28737,6 @@ msgstr "Ver lista de administradores"
msgid "Leave"
msgstr "Sair"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "Sair do modo de edição? Todas as alterações não salvas serão perdidas."
@@ -28390,7 +28935,7 @@ msgstr "Componente"
msgid "Licenses|Components"
msgstr "Componentes"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr "Lista"
msgid "List available repositories"
msgstr "Listar repositórios disponíveis"
-msgid "List of all commits"
-msgstr "Lista de todos os commits"
-
msgid "List of suitable GCP locations"
msgstr "Lista de localizações adequadas do GCP"
@@ -28605,6 +29147,9 @@ msgstr "Carregar mais"
msgid "Load more users"
msgstr "Carregar mais usuários"
+msgid "Load new file"
+msgstr "Carregar novo arquivo"
+
msgid "Loading"
msgstr "Carregando"
@@ -28675,7 +29220,7 @@ msgid "Lock the discussion"
msgstr "Bloquear discussão"
msgid "Lock this discussion? Only %{strongStart}project members%{strongEnd} will be able to comment."
-msgstr ""
+msgstr "Bloquear esta discussão? Apenas %{strongStart}membros do projeto%{strongEnd} poderão comentar."
msgid "Lock to current projects"
msgstr "Travar para projetos existentes"
@@ -28698,39 +29243,15 @@ msgstr "Bloqueando discussão"
msgid "Locks the discussion."
msgstr "Bloqueia a discussão."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "Sobre o GitLab"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "Explore o GitLab"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "Começar"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr "Instalar o GitLab"
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr "Preço"
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr "Informações de CI"
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr "Excluir candidato?"
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr "Excluir experimento?"
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr "Menu principal"
-
msgid "Maintainer"
msgstr "Mantenedor"
@@ -29424,100 +29936,103 @@ msgstr "%{member_name} convidou você para participar do GitLab"
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
-msgstr "Ações"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
-msgid "MemberRoles|Add new role"
-msgstr "Adicionar nova cargo"
+msgid "MemberRole|Actions"
+msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
-msgstr "Tem certeza que deseja excluir esta função?"
+msgid "MemberRole|Add new role"
+msgstr ""
-msgid "MemberRoles|Base role"
-msgstr "Função base"
+msgid "MemberRole|Are you sure you want to delete this role?"
+msgstr ""
-msgid "MemberRoles|Base role to use as template"
-msgstr "Função base para usar como modelo"
+msgid "MemberRole|Base role"
+msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
-msgstr "Criar nova função"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
+msgstr ""
-msgid "MemberRoles|Custom roles"
-msgstr "Funções personalizadas"
+msgid "MemberRole|Create new role"
+msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
-msgstr "Funções personalizadas baseadas em %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
+msgstr ""
-msgid "MemberRoles|Delete role"
-msgstr "Excluir cargo"
+msgid "MemberRole|Custom roles"
+msgstr ""
-msgid "MemberRoles|Description"
-msgstr "Descrição"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
+msgstr ""
-msgid "MemberRoles|Enter a short name."
-msgstr "Insira um nome curto."
+msgid "MemberRole|Delete role"
+msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
-msgstr "Gerenciador de incidentes"
+msgid "MemberRole|Failed to fetch roles."
+msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
-msgstr "Certifique-se de que o grupo esteja no nível Ultimate."
+msgid "MemberRole|ID"
+msgstr ""
-msgid "MemberRoles|Name"
-msgstr "Nome"
+msgid "MemberRole|Incident manager"
+msgstr ""
-msgid "MemberRoles|No custom roles for this group"
-msgstr "Nenhum cargo personalizado para este grupo"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
+msgstr ""
-msgid "MemberRoles|Permissions"
-msgstr "Permissões"
+msgid "MemberRole|Name"
+msgstr ""
+
+msgid "MemberRole|No custom roles for this group"
+msgstr ""
-msgid "MemberRoles|Role name"
-msgstr "Nome do cargo"
+msgid "MemberRole|Permissions"
+msgstr ""
-msgid "MemberRoles|Role successfully created."
-msgstr "Função criada com sucesso."
+msgid "MemberRole|Role name"
+msgstr ""
-msgid "MemberRoles|Role successfully deleted."
-msgstr "Função excluída com sucesso."
+msgid "MemberRole|Role successfully created."
+msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
-msgstr "Selecione uma função padrão para adicionar permissões."
+msgid "MemberRole|Role successfully deleted."
+msgstr ""
-msgid "MemberRoles|Standard roles"
-msgstr "Funções padrão"
+msgid "MemberRole|Select a standard role to add permissions."
+msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
-msgstr "Para adicionar uma nova função selecione 'Adicionar nova função'."
+msgid "MemberRole|Standard roles"
+msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
-msgstr "Para adicionar um novo cargo, selecione um grupo e, em seguida, 'Adicionar novo cargo'."
+msgid "MemberRole|To add a new role select 'Add new role'."
+msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
-msgstr "Para excluir a função personalizada, certifique-se de que nenhum membro do grupo tenha essa função personalizada"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr "não pode ser alterado"
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr "Aprovações de solicitação de mesclagem"
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr "Resumo de alteração da solicitação de mesclagem"
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr "Métricas"
+
msgid "Metrics - Grafana"
msgstr "Métricas - Grafana"
@@ -30228,15 +30749,9 @@ msgstr "Excluir métrica"
msgid "Metrics|Delete metric?"
msgstr "Excluir métrica?"
-msgid "Metrics|Description"
-msgstr "Descrição"
-
msgid "Metrics|Edit metric"
msgstr "Editar métrica"
-msgid "Metrics|Failed to load metrics."
-msgstr "Falha ao carregar métricas."
-
msgid "Metrics|For grouping similar metrics"
msgstr "Para agrupar métricas similares"
@@ -30246,15 +30761,9 @@ msgstr "Etiqueta do eixo y (geralmente a unidade). O eixo x sempre representa te
msgid "Metrics|Legend label (optional)"
msgstr "Rótulo de legenda (opcional)"
-msgid "Metrics|Metrics"
-msgstr "Métricas"
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "Deve ser uma consulta PromQL válida."
-msgid "Metrics|Name"
-msgstr "Nome"
-
msgid "Metrics|New metric"
msgstr "Nova métrica"
@@ -30267,9 +30776,6 @@ msgstr "Documentação de consulta do Prometheus"
msgid "Metrics|There was an error trying to validate your query"
msgstr "Houve um erro ao tentar validar sua consulta"
-msgid "Metrics|Type"
-msgstr "Tipo"
-
msgid "Metrics|Unit label"
msgstr "Rótulo de unidade"
@@ -30306,6 +30812,9 @@ msgstr "ex., req/seg"
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr "Acesso mínimo"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr "Minimize o risco de segredos serem confirmados em qualquer repositório nesta instância do GitLab."
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "Capacidade mínima para estar disponível antes de agendar mais espelhos preventivamente."
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Minutos"
@@ -30626,9 +31141,6 @@ msgstr "Autor"
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr "Candidato removido"
@@ -30644,6 +31156,9 @@ msgstr "Criado em"
msgid "MlExperimentTracking|Delete candidate"
msgstr "Excluir candidato"
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr "Excluir candidato?"
+
msgid "MlExperimentTracking|Delete experiment"
msgstr "Excluir experimento"
@@ -30674,36 +31189,18 @@ msgstr "Filtrar candidatos"
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr "Comece com experimentos de modelo!"
-msgid "MlExperimentTracking|ID"
-msgstr "ID"
-
-msgid "MlExperimentTracking|Info"
-msgstr "Informações"
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr "Candidatos registrados para experimento"
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr "ID de execução do MLflow"
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr "Acompanhamento de experimentos de aprendizado de máquina"
-msgid "MlExperimentTracking|Metadata"
-msgstr "Metadados"
-
-msgid "MlExperimentTracking|Metrics"
-msgstr "Métricas"
-
msgid "MlExperimentTracking|Model candidate details"
msgstr "Detalhes do candidato do modelo"
msgid "MlExperimentTracking|Model experiments"
msgstr "Experimentos de modelo"
-msgid "MlExperimentTracking|Model performance"
-msgstr "Desempenho do modelo"
-
msgid "MlExperimentTracking|Model removed"
msgstr "Modelo removido"
@@ -30719,27 +31216,9 @@ msgstr "Sem candidatos"
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr "Nenhum candidato registrado para a consulta. Crie novos candidatos usando o cliente MLflow."
-msgid "MlExperimentTracking|No logged metadata"
-msgstr "Nenhum metadado registrado"
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr "Nenhuma métrica registrada"
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr "Nenhum parâmetro registrado"
-
msgid "MlExperimentTracking|No name"
msgstr "Sem nome"
-msgid "MlExperimentTracking|Parameters"
-msgstr "Parâmetros"
-
-msgid "MlExperimentTracking|Status"
-msgstr "Status"
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr "Disparando por"
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] "%d modelo"
@@ -30750,23 +31229,110 @@ msgid_plural "MlModelRegistry|%d versions"
msgstr[0] "%d Versão"
msgstr[1] "%d versões"
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr "Artefatos"
+
+msgid "MlModelRegistry|CI Info"
+msgstr ""
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr ""
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr "Detalhes"
+msgid "MlModelRegistry|Experiment"
+msgstr "Experimento"
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr "ID"
+
+msgid "MlModelRegistry|Info"
+msgstr ""
+
msgid "MlModelRegistry|Latest version"
msgstr "Última versão"
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr "Registro de modelo"
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr "Nenhuma versão registrada"
-msgid "MlModelRegistry|This model has no versions"
-msgstr "Este modelo não possui versões"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr "Status"
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
+msgstr ""
msgid "MlModelRegistry|Version candidates"
msgstr "Candidatos a versão"
@@ -30791,9 +31357,15 @@ msgstr "Fechar"
msgid "Model experiments"
msgstr "Experimentos de modelo"
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "Modificado"
@@ -31360,9 +31932,6 @@ msgstr "Código"
msgid "Navigation|Deploy"
msgstr "Implantar"
-msgid "Navigation|Enter admin mode"
-msgstr "Entrar no modo admin"
-
msgid "Navigation|Explore"
msgstr "Explorar"
@@ -31375,9 +31944,6 @@ msgstr "Projetos visitados com frequência"
msgid "Navigation|Groups you visit often will appear here."
msgstr "Grupos que você visita frequentemente aparecerão aqui."
-msgid "Navigation|Leave admin mode"
-msgstr "Sair do modo admin"
-
msgid "Navigation|Manage"
msgstr "Gerenciar"
@@ -31806,15 +32372,15 @@ msgstr "Sem dados"
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr "Nenhuma implantação encontrada"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr "Sem outras etiquetas com esse nome ou descrição"
msgid "No parent group"
msgstr "Nenhum grupo acima"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr "Texto normal"
msgid "Normal view"
msgstr "Visualização normal"
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr "Não foi possível atualizar a nova preferência de navegação. Por favor, tente novamente mais tarde."
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr "Redesenho da navegação"
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "Nova navegação"
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "Alternar nova navegação"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr "Nem todos os navegadores suportam WebAuthn. Portanto, exigimos que você configure um aplicativo de autenticação de dois fatores primeiro. Dessa forma, você sempre poderá entrar, mesmo em um navegador incompatível."
@@ -32087,6 +32644,9 @@ msgstr "Nem todos os navegadores suportam WebAuthn. Você deve salvar seus códi
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "Nem todos os dados foram processados ainda, a precisão do gráfico para o período selecionado é limitada."
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr "Não disponível para ramificações protegidas"
msgid "Not confidential"
msgstr "Não confidencial"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "Não encontrado"
@@ -32120,6 +32683,9 @@ msgstr "Não iniciado"
msgid "Not supported"
msgstr "Não suportado"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Nota"
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "Revisor: %{users}"
msgstr[1] "Revisores: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr "Alterar revisor de solicitação de mesclagem"
@@ -32329,6 +32898,12 @@ msgstr "Notificações ativadas."
msgid "Notify users by email when sign-in location is not recognized."
msgstr "Notificar usuários por e-mail quando o local de login não for reconhecido"
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,18 +32988,15 @@ msgstr "Uma atualização de espelho remoto falhou."
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "Responsável alterado de %{fromNames} para %{toNames}"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "Responsável alterado para %{toNames}"
-
msgid "Notify|Author: %{author_name}"
msgstr "Autor: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr "Impressão digital: %{fingerprint}"
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr "Se você não quiser mais usar este domínio com o GitLab Pages, remova-
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr "Token de verificação incorreto:"
@@ -32578,6 +33162,9 @@ msgstr "Projeto %{project_name} não pôde ser exportado."
msgid "Notify|Project %{project_name} was exported successfully."
msgstr "O projeto %{project_name} foi exportado com sucesso."
+msgid "Notify|Read timeout:"
+msgstr "Tempo expiração de leitura:"
+
msgid "Notify|Remote mirror"
msgstr "Espelho remoto"
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr "O servidor SMTP não respondeu a tempo."
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,8 +33195,8 @@ msgstr "O link de download expirará em 24 horas."
msgid "Notify|The errors we encountered were:"
msgstr "Os erros que encontramos foram:"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "As credenciais fornecidas (nome de usuário e senha) foram rejeitadas pelo servidor SMTP."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
msgstr ""
@@ -32734,6 +33324,9 @@ msgstr "Número de funcionários"
msgid "Number of files touched"
msgstr "Número de arquivos tocados"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr " O OKR %{work_item_link} de%{author_link}requer uma atualização."
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr "Uma atualização está prevista para: %{update_due_date}"
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
-msgstr ""
+msgid "Object does not exist on the server or you don't have permissions to access it"
+msgstr "O objeto não existe no servidor ou você não tem permissão para acessá-lo"
+
+msgid "ObservabilityMetrics|Date"
+msgstr "Data"
+
+msgid "ObservabilityMetrics|Description"
+msgstr "Descrição"
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
-msgstr "O objeto não existe no servidor ou você não tem permissão para acessá-lo"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr "Métricas"
+msgid "ObservabilityMetrics|Name"
+msgstr "Nome"
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr "Tipo"
+
+msgid "ObservabilityMetrics|Value"
+msgstr "Valor"
+
msgid "Observability|Enable"
msgstr "Ativar"
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr "Oops, você tem certeza?"
-
msgid "Open"
msgstr "Aberto"
@@ -33356,9 +33967,6 @@ msgstr "Abrir uma nova janela"
msgid "Open raw"
msgstr "Abrir raw"
-msgid "Open sidebar"
-msgstr "Abrir barra lateral"
-
msgid "Open: %{open}"
msgstr "Aberto: %{open}"
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr "Ocorreu um erro ao atualizar sua organização. Por favor, tente novamente."
+msgid "Organization|Change organization URL"
+msgstr "Alterar a URL da organização"
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr "Escolha qual organização você deseja ver por padrão."
@@ -33515,7 +34132,16 @@ msgstr "URL da organização"
msgid "Organization|Organization URL is required."
msgstr "URL da organização é obrigatório."
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr "A URL da organização é muito curta (mínimo de 2 caracteres)."
+
+msgid "Organization|Organization URL successfully changed."
+msgstr "A URL da organização foi alterada com sucesso."
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr "Organização foi atualizada com sucesso."
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr "Execute opções avançadas como excluir a organização."
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr "Publico - A organização pode ser acessada sem nenhuma autenticação."
@@ -33579,7 +34208,7 @@ msgid "Orphaned member"
msgstr ""
msgid "Other"
-msgstr ""
+msgstr "Outro"
msgid "Other available runners"
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr "Visão geral"
msgid "Overwrite diverged branches"
msgstr "Substituir ramificações divergentes"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "Propriedade de %{image_tag}"
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr "Construído pelo pipeline %{link} disparado %{datetime} por %{author}"
@@ -34013,6 +34708,9 @@ msgstr "Nível de instância"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr "Último download %{dateTime}"
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr "Nível do projeto"
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr "Publique pacotes se seu nome ou versão corresponder a este regex."
@@ -34114,6 +34821,9 @@ msgstr "Publicado em %{projectName}, %{date}"
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr "Publicado no registro do pacote %{project} há %{datetime}"
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr "SHA de destino: %{sha}"
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr "Quando um pacote com o mesmo nome e versão é carregado no registro, mais ativos são adicionados ao pacote. Para economizar espaço de armazenamento, mantenha apenas os ativos mais recentes."
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr "Configuração da senha"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "Senha modificada com sucesso"
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr "Execute operações comuns no projeto GitLab"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "Otimização de performance"
@@ -34648,6 +35370,9 @@ msgstr "Seu projeto %{projectName} não está em um grupo"
msgid "Phone"
msgstr "Telefone"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr "Digite um código válido."
@@ -35065,6 +35790,30 @@ msgstr "IDE Web"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Pipeline: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr "Os pipelines para novas alterações fazem com que os pipelines pendente
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr "Catálogo CI/CD"
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr "Carregando Pipelines"
msgid "Pipelines|Loading pipelines"
msgstr "Carregando pipelines"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr "Migrar para GitLab CI/CD do Jenkins"
+
msgid "Pipelines|More Information"
msgstr "Mais informações"
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Algo deu errado ao limpar o cache dos executores."
+msgid "Pipelines|Start with a migration plan"
+msgstr "Comece com um plano de migração"
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr "Aproveite pipelines simples e escaláveis e recursos habilitados para CI/CD. Você pode visualizar resultados de integração, verificações de segurança, testes, cobertura de código e muito mais diretamente em solicitações de mesclagem!"
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35831,7 +36580,7 @@ msgid "Please type %{phrase_code} to proceed."
msgstr ""
msgid "Please use this form to report to the administrator users who create spam issues, comments or behave inappropriately."
-msgstr ""
+msgstr "Por favor, use este formulário para relatar aos usuários administradores que criam problemas de spam, comentários ou se comportam de forma inadequada."
msgid "Please wait a few moments while we load the file history for this line."
msgstr "Por favor, aguarde alguns instantes enquanto carregamos o histórico do arquivo para esta linha."
@@ -36178,9 +36927,6 @@ msgstr "Pré-visualização de carga"
msgid "Previous"
msgstr "Anterior"
-msgid "Previous Artifacts"
-msgstr "Artefatos anteriores"
-
msgid "Previous commit"
msgstr "Commit anterior"
@@ -36263,7 +37009,7 @@ msgid "Product analytics"
msgstr "Análise de produtos"
msgid "Product analytics requires Experiment and Beta features to be enabled."
-msgstr ""
+msgstr "A análise do produtos requer que os recursos Experimentos e Beta estejam habilitados."
msgid "ProductAnalytics|1. Add the NPM package to your package.json using your preferred package manager"
msgstr "1. Adicione o pacote NPM ao seu package.json usando seu gerenciador de pacotes preferido"
@@ -36376,6 +37122,9 @@ msgstr "Para que o painel analítico do produto comece a mostrar alguns dados, v
msgid "ProductAnalytics|Get started with product analytics"
msgstr "Comece com a análise de produtos"
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36422,7 +37171,7 @@ msgid "ProductAnalytics|Month"
msgstr ""
msgid "ProductAnalytics|No projects found"
-msgstr ""
+msgstr "Nenhum projeto encontrado"
msgid "ProductAnalytics|On what do you want to get insights?"
msgstr "Sobre o que você deseja obter insights?"
@@ -36443,7 +37192,7 @@ msgid "ProductAnalytics|Product analytics onboarding"
msgstr ""
msgid "ProductAnalytics|Product analytics usage is calculated based on the total number of events received from projects within the group. %{linkStart}Learn more%{linkEnd}."
-msgstr ""
+msgstr "O uso da análise de produto é calculado baseado no número total de eventos recebidos dos projetos dentro do grupo. %{linkStart}Saiba mais%{linkEnd}."
msgid "ProductAnalytics|Projects"
msgstr ""
@@ -36479,9 +37228,12 @@ msgid "ProductAnalytics|Snowplow configurator connection string"
msgstr ""
msgid "ProductAnalytics|Something went wrong while loading product analytics usage data. Refresh the page to try again."
-msgstr ""
+msgstr "Algo deu errado ao carregar os dados de uso da análise do produto. Atualize a página para tentar novamente."
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
+msgstr "Armazene, consulte e visualize dados quantitativos para obter insights sobre o valor do usuário."
+
+msgid "ProductAnalytics|Tell us what you think!"
msgstr ""
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
@@ -36494,31 +37246,31 @@ msgid "ProductAnalytics|The sender of tracking events"
msgstr ""
msgid "ProductAnalytics|This group has no projects with product analytics onboarded in the current period."
-msgstr ""
+msgstr "Este grupo não possui projetos com análise de produtos integrados no período atual."
msgid "ProductAnalytics|This might take a while, feel free to navigate away from this page and come back later."
msgstr ""
msgid "ProductAnalytics|This table excludes projects that do not have product analytics onboarded."
-msgstr ""
+msgstr "Esta tabela exclui projetos que não possuem análise de produto integrada."
msgid "ProductAnalytics|To instrument your application, select one of the options below. After an option has been instrumented and data is being collected, this page will progress to the next step."
msgstr "Para instrumentar sua aplicação, selecione uma das opções abaixo. Depois que uma opção for instrumentada e os dados estiverem sendo coletados, esta página avançará para a próxima etapa."
msgid "ProductAnalytics|Track your product's performance, and optimize your product and development processes."
-msgstr ""
+msgstr "Acompanhe o desempenho do seu produto e otimize o produto e os processos de desenvolvimento."
msgid "ProductAnalytics|Unique Users"
msgstr "Usuários únicos"
msgid "ProductAnalytics|Usage by month"
-msgstr ""
+msgstr "Uso por mês"
msgid "ProductAnalytics|Usage by project"
msgstr ""
msgid "ProductAnalytics|Use product analytics"
-msgstr ""
+msgstr "Usar análises de produtos"
msgid "ProductAnalytics|Used to retrieve dashboard data from the Cube instance."
msgstr "Usado para recuperar dados do painel da instância do Cubo."
@@ -36604,8 +37356,8 @@ msgstr "Perfil"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
-msgstr "Diretriz de imagem de perfil"
+msgid "Profile image guidelines"
+msgstr ""
msgid "Profile page:"
msgstr "Página de perfil:"
@@ -36878,7 +37630,7 @@ msgid "Profiles|Public email"
msgstr "E-mail público"
msgid "Profiles|Publicly visible private SSH keys can compromise your system."
-msgstr ""
+msgstr "Chaves SSH privadas publicamente visíveis podem comprometer seu sistema."
msgid "Profiles|Remove avatar"
msgstr "Remover avatar"
@@ -36970,8 +37722,8 @@ msgstr "Alteração de nome de usuário realizada com sucesso"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr "Usar emojis em nomes parece divertido, mas, em vez disso, tente definir uma mensagem de status"
-msgid "Profiles|Website url"
-msgstr "URL do site"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "Por quem você representa ou trabalha."
@@ -37273,10 +38025,10 @@ msgid "ProjectList|Yours"
msgstr "Seus"
msgid "ProjectOverview|Create new fork"
-msgstr ""
+msgstr "Criar novo fork"
-msgid "ProjectOverview|Forks"
-msgstr "Forks"
+msgid "ProjectOverview|Fork"
+msgstr "Fork"
msgid "ProjectOverview|Go to your fork"
msgstr "Ir para seu fork"
@@ -37302,11 +38054,26 @@ msgstr "Você atingiu seu limite de projetos"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "Você precisa entrar para marcar um projeto como favorito"
-msgid "ProjectPage|Copy project ID"
-msgstr "Copiar ID do projeto"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr "Informações do projeto"
+
+msgid "ProjectPage|Project settings"
+msgstr "Configurações do projeto"
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "ID do Projeto: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr "Ocorreu um erro ao tentar obter as estatísticas de qualidade do projeto"
@@ -37524,6 +38291,9 @@ msgstr "%{link_start}Que variáveis posso usar?%{link_end}"
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr "Uma ramificação padrão não pode ser escolhida para um projeto vazio."
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr "Adicione seloss para exibir informações sobre este projeto."
+
msgid "ProjectSettings|Additional options"
msgstr "Opções adicionais"
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "Personalize os selos deste projeto."
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr "Deixe em branco para usar o modelo padrão."
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr "Gerenciar quem pode ver o projeto no diretório de acesso público."
@@ -37776,6 +38546,9 @@ msgstr "Mesclar só é permitido quando a ramificação de origem está atualiza
msgid "ProjectSettings|Model experiments"
msgstr "Experimentos de modelo"
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "Monitor"
@@ -38193,29 +38966,10 @@ msgstr "Projetos com este tópico"
msgid "Projects with write access"
msgstr "Projetos com acesso de gravação"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Visitados frequentemente"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Carregando projetos"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Projetos que você visita frequentemente aparecerão aqui"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Procure seus projetos"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Algo deu errado do nosso lado."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Desculpe, nenhum projeto corresponde a sua pesquisa"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "Esta funcionalidade necessita de suporte à localStorage do navegador"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr "Alternar modo de edição"
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "Permite que você clone imediatamente o repositório deste projeto. Pule esta etapa se você planeja fazer o push de um repositório existente."
@@ -38250,6 +39004,9 @@ msgstr "Criar a partir de modelo"
msgid "ProjectsNew|Create new project"
msgstr "Criar novo projeto"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr "O algoritmo de hash padrão é SHA-1."
+
msgid "ProjectsNew|Description format"
msgstr "Formato de descrição"
@@ -38313,6 +39070,9 @@ msgstr "Execute CI/CD para um repositório externo"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr "Usar SHA-256 como algoritmo de hash do repositório"
+
msgid "ProjectsNew|Visibility Level"
msgstr "Nível de visibilidade"
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr "Ambiente"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr "O que são tags protegidas?"
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr "Fornecer feedback"
@@ -39043,6 +39806,9 @@ msgstr "Os projectos públicos são uma forma fácil de permitir que todos tenha
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "Publicar na página de status"
@@ -39486,9 +40252,6 @@ msgstr "Registar dispositivo"
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr "Registre o executor com este URL:"
-
msgid "Register with two-factor app"
msgstr "Registre-se com aplicativo de dois fatores"
@@ -39665,6 +40428,9 @@ msgstr "Incluir mensagem da tag anotada."
msgid "Release|Learn more about releases"
msgstr "Saiba mais sobre as versões"
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr "Deixe em branco para usar o nome da tag como título do release."
+
msgid "Release|More information"
msgstr "Mais informações"
@@ -39719,6 +40485,9 @@ msgstr "Lembrar mais tarde"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Remover"
@@ -39779,6 +40548,9 @@ msgstr "Remover histórico de descrição"
msgid "Remove due date"
msgstr "Remover data limite"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr "Remover usuário do grupo"
msgid "Remove user from project"
msgstr "Remover usuário do projeto"
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr "Removido"
@@ -39959,6 +40734,9 @@ msgstr "Remover todas etiquetas."
msgid "Removes an issue from an epic."
msgstr "Remover uma issue de um épico."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr "Reabrir epic"
msgid "Reopen milestone"
msgstr "Reabrir marco"
-msgid "Reopen test case"
-msgstr "Reabrir caso de teste"
-
msgid "Reopen this %{quick_action_target}"
msgstr "Reabrir este %{quick_action_target}"
@@ -40085,9 +40860,6 @@ msgstr "Responder ao comentário"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "Responda a este e-mail diretamente ou %{view_it_on_gitlab}."
-msgid "Reply..."
-msgstr "Responder..."
-
msgid "Reply…"
msgstr "Responder…"
@@ -40526,6 +41298,9 @@ msgstr "Requisições por período"
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr "Exigir data de validade"
@@ -40536,7 +41311,7 @@ msgid "Required approvals (%{approvals_given} given, you've approved)"
msgstr ""
msgid "Required in this project."
-msgstr ""
+msgstr "Necessário neste projeto."
msgid "Required only if you are not using role instance credentials."
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr "Requer que você implante ou configure o Sentry hospedado na nuvem."
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr "Resolver conflitos na branch de origem"
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr "Resolver tópico"
@@ -40782,11 +41554,6 @@ msgstr "Tente novamente este trabalho para criar os recursos necessários."
msgid "Retry verification"
msgstr "Tentar novamente a verificação"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Mostrar valor"
-msgstr[1] "Mostrar valores"
-
msgid "Reveal values"
msgstr "Mostrar valores"
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] "Revisor"
msgstr[1] "%d Revisores"
+msgid "Reviewer approved changes"
+msgstr "Alterações aprovadas pelo revisor"
+
+msgid "Reviewer commented"
+msgstr "O revisor comentou"
+
+msgid "Reviewer requested changes"
+msgstr "O revisor solicitou alterações"
+
msgid "Reviewers"
msgstr "Revisores"
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr "Nome da regra"
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr "Executor atribuído ao projeto."
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr "Mostrar apenas herdados"
msgid "Runners|Show runner installation and registration instructions"
msgstr "Mostrar instruções de instalação e registro do executor"
-msgid "Runners|Show runner installation instructions"
-msgstr "Mostrar instruções de instalação do executor"
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr "projeto"
msgid "Runners|shared"
msgstr "compartilhado"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "Executando"
@@ -42037,9 +42828,18 @@ msgstr "Salvando"
msgid "Saving project."
msgstr "Salvando projeto."
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr "Adicionar condição"
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr "Adicionar nova variável de CI"
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr "Escolha um método para executar o código"
+
msgid "ScanExecutionPolicy|Conditions"
msgstr "Condições"
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr "Chave"
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr "Número máximo de critérios de CI é um"
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr "Apenas uma variável pode ser adicionada por vez."
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr "Executar código CI/CD"
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr "Executar escaneamento"
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr "Selecionar espaços de nome"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "Selecionar perfil de verificação"
@@ -42127,6 +42951,9 @@ msgstr "Selecionar perfil do site"
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr "agente"
msgid "ScanExecutionPolicy|branch"
msgstr "ramificação"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr "tem tag específica"
@@ -42202,9 +43032,6 @@ msgstr "Correção disponível"
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr "Correção disponível é aplicável apenas ao contêiner e verificação de dependência"
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,35 +43083,26 @@ msgstr "Apenas 2 critérios de status são permitidos"
msgid "ScanResultPolicy|Override project approval settings"
msgstr "Substituir configurações de aprovação do projeto"
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr "Pré-existente"
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr "Evitar aprovação pelo autor do commit"
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr "Evitar aprovação pelo autor da solicitação de mesclagem"
-msgid "ScanResultPolicy|Prevent branch protection modification"
-msgstr "Evitar modificação da proteção de ramificação"
+msgid "ScanResultPolicy|Prevent branch modification"
+msgstr "Evitar modificação de ramificação"
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr "Evitar push e forçar push"
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr "Configurações de ramificação protegida"
-msgid "ScanResultPolicy|Recommended setting"
-msgstr "Configuração recomendada"
+msgid "ScanResultPolicy|Recommended settings"
+msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
msgstr "Remover todas as aprovações com novo commit"
@@ -42310,15 +43128,9 @@ msgstr "Severidade é:"
msgid "ScanResultPolicy|Status is:"
msgstr "Status é:"
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr "Desconhecido"
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,8 +43143,26 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
-msgstr "Você selecionou qualquer opção de ramificação protegida como condição. Para proteger melhor o seu projeto, é recomendável ativar as configurações de ramificação protegida. %{linkStart}Saiba mais.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
+msgstr ""
msgid "ScanResultPolicy|any commits"
msgstr "qualquer commit "
@@ -42484,6 +43314,9 @@ msgstr "Pesquisar por nome"
msgid "Search files"
msgstr "Procurar arquivos"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr "Pesquisar por espaço de nome"
@@ -42677,6 +43510,9 @@ msgstr "Detecção de secreto"
msgid "Secret token"
msgstr "Token secreto"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr "Esta descrição parece ter um token nela. Tem certeza de que deseja adi
msgid "Secrets"
msgstr "Segredos"
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr "Adicionar um novo segredo ao grupo seguindo as instruções do formulário abaixo."
+
+msgid "Secrets|Add secret"
+msgstr "Adicionar segredo"
+
+msgid "Secrets|Audit log"
+msgstr "Registro de auditoria"
+
+msgid "Secrets|Edit %{key}"
+msgstr "Editar %{key}"
+
+msgid "Secrets|New secret"
+msgstr "Novo segredo"
+
+msgid "Secrets|Secret details"
+msgstr "Detalhes do segredo"
+
+msgid "Secrets|Secret name"
+msgstr "Nome do segredo"
+
+msgid "Secrets|Secrets"
+msgstr "Segredos"
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr "Os segredos representam informações sensíveis que seu trabalho CI precisa para completar sua função. Essas informações sensíveis podem ser itens como tokens de API, credenciais de banco de dados ou chaves privadas. Ao contrário das variáveis CI/CD, que estão sempre presentes num trabalho, os segredos devem ser explicitamente exigidos no trabalho. %{linkStart}Saiba mais.%{linkEnd}"
+
+msgid "Secrets|Stored secrets"
+msgstr "Segredos salvos"
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr "Painel de segurança"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr "Projeto política de segurança já existe."
@@ -42830,8 +43699,8 @@ msgstr "Ativar Auto DevOps"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr "Ative a incubação de recursos focados na simulação de violação e ataque, como ataques de retorno de chamada em suas verificações DAST."
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Ative o treinamento de segurança para ajudar seus desenvolvedores a aprender como corrigir vulnerabilidades. Os desenvolvedores podem ver o treinamento de segurança de provedores educacionais selecionados, relevantes para a vulnerabilidade detectada."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
msgid "SecurityConfiguration|Enabled"
msgstr "Ativado"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr "%{branchName} (em %{codeStart}%{fullPath}%{codeEnd})"
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr "%{cadence} em %{branches}%{branchExceptionsString}"
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr "%{fileName} carregado com sucesso."
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr "Modo .yaml"
msgid "SecurityOrchestration|.yaml preview"
msgstr "Pré-visualização de .yaml"
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr "Ações"
msgid "SecurityOrchestration|Add action"
msgstr "Adicionar ação"
+msgid "SecurityOrchestration|Add new action"
+msgstr "Adicionar nova ação"
+
msgid "SecurityOrchestration|Add new approver"
msgstr "Adicionar novo aprovador"
@@ -42977,6 +43864,9 @@ msgstr "Após descartar o alerta, as informações nunca mais serão exibidas."
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "Depois de ativar uma política de nível de grupo, esta política se aplica automaticamente a todos os projetos e subgrupos neste grupo."
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr "Todas as fontes"
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr "Tem certeza de que deseja excluir esta política? Essa ação não pode ser desfeita."
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr "Executores selecionados automaticamente"
@@ -43019,18 +43912,24 @@ msgstr "Não é possível criar uma política vazia"
msgid "SecurityOrchestration|Choose a project"
msgstr "Escolha um projeto"
+msgid "SecurityOrchestration|Choose an action"
+msgstr "Alterar uma ação"
+
msgid "SecurityOrchestration|Choose approver type"
msgstr "Escolha o tipo de aprovador"
-msgid "SecurityOrchestration|Choose framework labels"
-msgstr "Escolha etiquetas de framework"
-
msgid "SecurityOrchestration|Choose specific role"
msgstr "Escolha cargo específico"
msgid "SecurityOrchestration|Clear all"
msgstr "Limpar tudo"
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr "Crie regras de vulnerabilidade mais robustas e aplique-as a todos os seus projetos."
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr "Falha ao carregar imagens."
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr "Grupos"
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr "Herdado de %{namespace}"
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr "Tipo de ramificação inválido detectado - a regra não será aplicada."
@@ -43145,6 +44053,9 @@ msgstr "Última verificação executada contra %{agent}"
msgid "SecurityOrchestration|License Scan"
msgstr "Verificação de licença"
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr "Carregar código CI/CD do arquivo"
+
msgid "SecurityOrchestration|Logic error"
msgstr "Erro de lógica"
@@ -43172,6 +44083,9 @@ msgstr "Sem exceções"
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr "Nenhuma regra definida - a política não será executada."
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr "Sem tags disponíveis"
@@ -43198,6 +44112,9 @@ msgstr "Somente proprietários podem atualizar o projeto de política de seguran
msgid "SecurityOrchestration|Override the following project settings:"
msgstr "Substitua as seguintes configurações do projeto:"
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr "Substituir o código CI/CD atual pelo conteúdo do novo arquivo?"
+
msgid "SecurityOrchestration|Policies"
msgstr "Políticas"
@@ -43220,7 +44137,7 @@ msgid "SecurityOrchestration|Policy editor"
msgstr "Editor de política"
msgid "SecurityOrchestration|Policy scope"
-msgstr ""
+msgstr "Escopo da política"
msgid "SecurityOrchestration|Policy status"
msgstr "Status da política"
@@ -43285,12 +44202,18 @@ msgstr "Política de resultados de verificação"
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr "Verificação escolherá automaticamente um executor para executar porque não existem tags nos executores. Você pode %{linkStart}criar uma nova tag nas configurações%{linkEnd}."
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr "Aprovações de segurança"
msgid "SecurityOrchestration|Security Scan"
msgstr "Verificação de segurança"
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr "A política de segurança substitui esta configuração"
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr "Selecionar usuários"
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr "A severidade é %{severity}."
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr "Este %{namespaceType} não está vinculado a um projeto de política de segurança"
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "Este grupo"
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr "Você ainda não tem nenhuma política de segurança"
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr "ramificações"
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr "pelo agente chamado %{agents} %{cadence}%{branchExceptionsString}"
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr "Conformidade dos frameworks"
+
msgid "SecurityOrchestration|except projects"
msgstr "exceto projetos"
@@ -43514,7 +44467,7 @@ msgid "SecurityOrchestration|scanners find"
msgstr ""
msgid "SecurityOrchestration|specific projects"
-msgstr ""
+msgstr "projetos específicos"
msgid "SecurityOrchestration|targeting %{branchTypeText}"
msgstr ""
@@ -43544,7 +44497,7 @@ msgid "SecurityOrchestration|with %{exceptionType} on %{branchSelector}"
msgstr "com %{exceptionType} em %{branchSelector}"
msgid "SecurityOrchestration|without exceptions"
-msgstr ""
+msgstr "sem exceções"
msgid "SecurityPolicies|Invalid or empty policy"
msgstr "Política inválida ou vazia"
@@ -43669,6 +44622,9 @@ msgstr "Ignorado (Vários motivos)"
msgid "SecurityReports|Dismissed as..."
msgstr "Ignorado como..."
+msgid "SecurityReports|Does not have a solution"
+msgstr "Não há solução"
+
msgid "SecurityReports|Does not have issue"
msgstr "Não tem issue"
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr "Agrupe suas vulnerabilidades por uma das categorias fornecidas. Deixe comentários ou sugestões em %{feedbackIssueStart}esta edição%{feedbackIssueEnd}."
+msgid "SecurityReports|Has a solution"
+msgstr "Tem solução"
+
msgid "SecurityReports|Has issue"
msgstr "Tem issue"
@@ -43735,12 +44694,6 @@ msgstr "Imagem"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr "Está disponível"
-
-msgid "SecurityReports|Is not available"
-msgstr "Não está disponível"
-
msgid "SecurityReports|Issue"
msgstr "Issue"
@@ -43875,6 +44828,9 @@ msgstr "Ainda detectado"
msgid "SecurityReports|Submit vulnerability"
msgstr "Enviar vulnerabilidade"
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr "O treinamento deste parceiro tem precedência quando mais de um parceiro de treinamento está ativado."
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr "Envie notificações sobre eventos de projeto para os canais do Mattermo
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr "Envie notificações sobre eventos de projeto para um canal Discord. %{docs_link}"
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "Enviar relatório"
@@ -44341,7 +45312,7 @@ msgid "ServiceDesk|Add external participants from the %{codeStart}Cc%{codeEnd} h
msgstr "Adicionar participantes externos do cabeçalho %{codeStart}Cc%{codeEnd}"
msgid "ServiceDesk|CRAM-MD5"
-msgstr ""
+msgstr "CRAM-MD5"
msgid "ServiceDesk|Cannot create custom email"
msgstr "Não é possível criar um e-mail personalizado"
@@ -44403,9 +45374,15 @@ msgstr "Ativar endereço de e-mail personalizado"
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr "Para obter ajuda na configuração da central de serviços para sua instância, entre em contato com um administrador."
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr "Cabeçalho de origem incorreto"
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr "Token de verificação incorreto"
@@ -44445,6 +45422,12 @@ msgstr "Por favor, compartilhe seus comentários sobre este recurso no %{linkSta
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr "Por favor, tente novamente. Verifique as configurações e credenciais de encaminhamento de e-mail e reinicie a verificação."
+msgid "ServiceDesk|Read timeout"
+msgstr "Tempo de expiração de leitura:"
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr "Redefinir e-mail personalizado"
@@ -44505,8 +45488,11 @@ msgstr "Configuração da Central de serviços ausente"
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr "Configuração da Central de serviços ou objeto de verificação ausente"
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "As credenciais fornecidas (nome de usuário e senha) foram rejeitadas pelo servidor SMTP."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr "O servidor SMTP não respondeu a tempo."
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
msgstr "O e-mail recebido não continha o token de verificação que foi enviado para o seu endereço de e-mail."
@@ -44514,6 +45500,12 @@ msgstr "O e-mail recebido não continha o token de verificação que foi enviado
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr "Para Ativar a central de serviços nesta instância, um administrador de instância deve primeiro configurar o e-mail de entrada."
@@ -44712,9 +45704,6 @@ msgstr "Configurar CI/CD"
msgid "Set up Jira Integration"
msgstr "Configurar integração do Jira"
-msgid "Set up a %{type} runner for a project"
-msgstr "Configurar um executor %{type} para um projeto"
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr "Configure um dispositivo de hardware para habilitar a autenticação de dois fatores (2FA)."
@@ -44730,6 +45719,9 @@ msgstr "Definir uma nova senha"
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
msgstr "Configure seu projeto para fazer push e/ou pull de um repositório para outro automaticamente. Branches, tags e commits serão sincronizados automaticamente."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "Definir peso"
@@ -44808,20 +45800,33 @@ msgstr "Configuração"
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] "Configuração salva com sucesso"
-msgstr[1] "Configurações salvas com sucesso"
-
msgid "Settings"
msgstr "Configurações"
msgid "Settings for the License Compliance feature"
msgstr "Configurações para o recurso de conformidade da licença"
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "Severidade"
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr "Link para um espaço de trabalho Shimo na barra lateral."
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr "Nome curto"
@@ -45163,9 +46147,6 @@ msgstr "Entrar usando o cartão inteligente"
msgid "Sign in via 2FA code"
msgstr "Entrar via código da A2F"
-msgid "Sign in with"
-msgstr "Entrar com"
-
msgid "Sign in with single sign-on"
msgstr "Entrar com entrada única"
@@ -45214,19 +46195,13 @@ msgstr "URL da página de saída"
msgid "Sign-up restrictions"
msgstr "Restrições de cadastro"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr "Cartão inteligente"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "A autenticação do cartão inteligente falhou: o cabeçalho do certificado do cliente está faltando."
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr "Este snippet está oculto porque seu autor foi banido"
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45643,7 +46624,7 @@ msgstr "Outro motivo"
msgid "Something went wrong"
msgstr "Alguma coisa deu errado"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr "Popularidade"
msgid "SortOptions|Priority"
msgstr "Prioridade"
-msgid "SortOptions|Project"
-msgstr "Projeto"
-
msgid "SortOptions|Recent last activity"
msgstr "Atividade mais recente"
@@ -46000,8 +46978,8 @@ msgstr "Favoritado recentemente"
msgid "SortOptions|Size"
msgstr "Tamanho"
-msgid "SortOptions|Sort by:"
-msgstr "Ordenar por:"
+msgid "SortOptions|Sort by"
+msgstr "Ordenar por"
msgid "SortOptions|Sort direction"
msgstr "Sentido da ordenação"
@@ -46021,12 +46999,6 @@ msgstr "Iniciar mais próximo"
msgid "SortOptions|Title"
msgstr "Título"
-msgid "SortOptions|Type"
-msgstr "Tipo"
-
-msgid "SortOptions|Version"
-msgstr "Versão"
-
msgid "SortOptions|Weight"
msgstr "Peso"
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr "Padrão"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr "Favorite etiquetas para começar a classificar por prioridade."
@@ -46522,9 +47499,6 @@ msgstr "Parar terminal"
msgid "Stop impersonating"
msgstr "Parar personificação"
-msgid "Stop impersonation"
-msgstr "Parar representação"
-
msgid "Stop this environment"
msgstr "Parar este ambiente"
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr "Enviar como spam"
-msgid "Submit feedback"
-msgstr "Enviar feedback"
-
msgid "Submit feedback and approve these changes."
msgstr "Envie comentários e aprove essas alterações."
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "Adicionar lugares"
@@ -47253,9 +48227,6 @@ msgstr "Trocar ramificação"
msgid "Switch branch/tag"
msgstr "Trocar ramificação/tag"
-msgid "Switch to GitLab Next"
-msgstr "Mudar para GitLab Next"
-
msgid "Switch to plain text editing"
msgstr "Mudar para edição de texto simples"
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] "Fonte"
msgstr[1] "Fontes"
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr "Ramificação de destino"
-msgid "Target branch rule"
-msgstr "Regra de ramificação de destino"
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr "Regras de ramificação de destino"
-
msgid "Target branch: %{target_branch}"
msgstr "Ramificações de destino: %{target_branch}"
@@ -47848,6 +48813,9 @@ msgstr "Teste gerado por IA"
msgid "Test settings"
msgstr "Testar configurações"
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr "Mover caso de teste"
@@ -48042,6 +49010,9 @@ msgstr "O rastreador de issue é o lugar para adicionar coisas que precisam ser
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "O rastreador de issue é o lugar para adicionar coisas que precisam ser melhoradas ou resolvidas em um projeto. Você pode se registrar ou entrar para criar issues para este projeto."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr "A integração de notificações do Slack está obsoleta e será removida em uma versão futura. Para continuar recebendo notificações do Slack, use o aplicativo GitLab para Slack. %{learn_more_link_start}Saiba mais%{link_end}."
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr "O commit não existe."
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,17 +49100,23 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "A data em que o lançamento está pronto. Uma versão com uma data no futuro é rotulada como %{linkStart}Próxima versão%{linkEnd}."
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr ""
@@ -48385,6 +49365,9 @@ msgstr "O nome do arquivo de configuração de CI/CD. Um caminho relativo ao dir
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr "O nome do projeto Jenkins. Copie o nome do final da URL para o projeto."
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "O número de alterações a serem buscadas no GitLab ao clonar um repositório. Valores mais baixos podem acelerar a execução do pipeline. Defina como %{code_open}0%{code_close} ou em branco para buscar todas as ramificações e tags para cada tarefa"
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr "A data de início deve ser anterior à data de término."
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr "O assunto será usado como título da nova edição e a mensagem será a descrição. %{quickActionsLinkStart}Ações rápidas%{quickActionsLinkEnd} e estilo com %{markdownLinkStart}Markdown%{markdownLinkEnd} são suportados."
@@ -48574,14 +49560,11 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr "Atualmente, não há repositórios espelhados."
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
-msgstr "Existem conflitos de merge"
+msgid "There are currently no mirrored repositories."
+msgstr "Atualmente, não há repositórios espelhados."
msgid "There are no GPG keys associated with this account."
msgstr "Não há chaves GPG associadas a esta conta."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr "Estes exemplos mostram métodos comuns de acionamento de um pipeline com
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr "Esses executores são compartilhados entre projetos neste grupo."
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "Esse bloco é autorreferencial"
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr "Este commit foi assinado com uma assinatura %{strong_open}confirmada%{strong_close} e o e-mail do committer está verificado como pertencente ao mesmo usuário."
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "Este commit foi assinado com uma assinatura verificada de um usuário diferente."
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr "Este é um registro de segurança de eventos de autenticação envolvendo a sua conta."
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr "Este é um recurso experimental desenvolvido pela GitLab Incubation Engineering."
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Isto significa que você não pode entregar código até que crie um repositório vazio ou importe um existente."
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr "Este pipeline foi disparado usando a API"
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "Esse processo exclui o repositório do projeto e todos os recursos relacionados."
@@ -50109,10 +51103,7 @@ msgid "To ensure %{project_name} is unscheduled for deletion, check that activit
msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
-msgstr ""
-
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
+msgstr "Para garantir que não haja perda de acesso ao conteúdo pessoal, use esta conta apenas para assuntos relacionados a %{group_name}."
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50156,6 +51147,9 @@ msgid "To learn more about this project, read %{link_to_wiki}"
msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
+msgstr "Para gerenciar licenças para todos os membros associados a este grupo e seus subgrupos e projetos, visite a página%{link_end}de cotas de uso %{link_start}."
+
+msgid "To merge, either the title or description must reference a Jira issue."
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."
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr "Hoje"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr "Qualquer Ação"
msgid "Todos|Any Type"
msgstr "Qualquer tipo"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr "Você está procurando coisas para fazer? Dê uma olhada em %{strongStart}%{openIssuesLinkStart}issues abertas%{openIssuesLinkEnd}%{strongEnd}, contribua para %{strongStart}%{mergeRequestLinkStart}uma solicitação de mesclagem%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd} ou mencione alguém em um comentário para atribuir automaticamente uma nova tarefa."
-
msgid "Todos|Assigned"
msgstr "Atribuído"
@@ -50338,6 +51329,9 @@ msgstr "Mencionado"
msgid "Todos|Merge request"
msgstr "Solicitação de mesclagem"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "Nada está na sua lista de tarefas. Bom trabalho!"
@@ -50374,6 +51368,9 @@ msgstr "adicionou um item de tarefa"
msgid "Todos|has requested access to %{what} %{which}"
msgstr "pediu acesso a %{what} %{which}"
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,8 +51413,8 @@ msgstr "Alternar lista de commits"
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
-msgstr "Alternar prêmio de emoji"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr "Alternar navegador de arquivos"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr "Ativar o diálogo de ajuda para os atalhos de teclado"
-msgid "Toggle navigation"
-msgstr "Alternar navegação"
-
msgid "Toggle project select"
msgstr "Alternar seleção do projeto"
@@ -50446,11 +51440,11 @@ msgstr "Alternar a barra de desempenho"
msgid "Toggle the navigation sidebar"
msgstr "Alternar a barra lateral de navegação"
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr "Alternar :%{name}: prêmio de emoji."
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr ""
@@ -50491,18 +51485,6 @@ msgstr "Muitos usuários encontrados. Ações rápidas são limitadas a no máxi
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "Explorar"
-
-msgid "TopNav|Go back"
-msgstr "Voltar"
-
-msgid "TopNav|Switch to"
-msgstr "Mudar para"
-
-msgid "TopNav|Your dashboards"
-msgstr "Seus painéis"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "O tópico %{source_topic} foi mesclado com sucesso no tópico %{target_topic}."
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Tempo de teste total para todos os commits/merges"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,8 +51583,30 @@ msgstr ""
msgid "Tracing"
msgstr "Rastreamento"
-msgid "Tracing|%{ms} ms"
-msgstr "%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
+msgstr ""
+
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
msgid "Tracing|Attribute"
msgstr "Atributo"
@@ -50604,9 +51614,6 @@ msgstr "Atributo"
msgid "Tracing|Attributes"
msgstr ""
-msgid "Tracing|Check again"
-msgstr "Verificar novamente"
-
msgid "Tracing|Date"
msgstr "Data"
@@ -50664,14 +51671,14 @@ msgstr "Últimos 7 dias"
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
-msgstr "Nenhum rastreamento para exibir."
-
msgid "Tracing|Operation"
msgstr "Operação"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
+msgstr "Atualize a página ou edite seu filtro de busca e tente novamente"
+
msgid "Tracing|Resource attributes"
-msgstr ""
+msgstr "Atributos de recursos"
msgid "Tracing|Select a service to load suggestions"
msgstr "Selecione um serviço para carregar sugestões"
@@ -50802,27 +51809,6 @@ msgstr "Visão em árvore"
msgid "Trending"
msgstr "Mais populares"
-msgid "TrialBenefits|Container Scanning"
-msgstr "Verificação de contêineres"
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr "Testes de segurança de aplicativos dinâmicos"
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr "Épicos multiníveis"
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr "Painéis de segurança"
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr "Testes estáticos de segurança de aplicativos"
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr "Revisores sugeridos"
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr "Gerenciamento de vulnerabilidades"
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr "Iniciar teste gratuito do GitLab Ultimate"
@@ -50838,29 +51824,20 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr "Comparar todos os planos"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr "Parabéns por iniciar seu teste gratuito de 30 dias!"
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "Crie um novo grupo para iniciar sua avaliação do GitLab Ultimate."
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr "Dia %{daysUsed}/%{duration}"
-msgid "Trials|Looking to do more with GitLab?"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Trials benefits"
-msgstr "Benefícios dos testes"
-
-msgid "Trials|Upgrade your plan for more security features"
-msgstr "Atualize seu plano para obter mais recursos de segurança"
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
-msgstr "Com o GitLab Ultimate, você pode detectar e solucionar vulnerabilidades em seu aplicativo."
+msgid "Trials|Looking to do more with GitLab?"
+msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
-msgstr "Com o GitLab Ultimate, você terá acesso a:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
+msgstr "Atualize para recuperar o acesso a recursos avançados, como gerenciamento avançado de equipe para código, segurança e relatórios."
msgid "Trials|You can apply your trial to a new group or an existing group."
msgstr "Você pode aplicar sua avaliação a um novo grupo ou a um grupo existente."
@@ -51002,12 +51979,6 @@ msgstr "Desligar"
msgid "Turn on"
msgstr "Ativar"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr "Autenticação de dois fatores"
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr "Não autorizado a criar uma regra de proteção de pacote"
msgid "Unauthorized to create an environment"
msgstr "Não autorizado a criar um ambiente"
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr "A atualização da regra de proteção de pacote não está autorizada"
+
msgid "Unauthorized to update the environment"
msgstr "Não autorizado a atualizar um ambiente"
@@ -51335,8 +52330,8 @@ msgstr "Texto de resposta desconhecido."
msgid "Unknown user"
msgstr "Usuario desconhecido"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
-msgstr ""
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr "Salvo acordo em contrário por escrito com o GitLab, ao clicar em \"Adicionar Licença\", você concorda que o uso do Software GitLab está sujeito aos %{eula_link_start}Termos de Serviço%{eula_link_end}."
msgid "Unlimited"
msgstr "Ilimitado"
@@ -51386,6 +52381,9 @@ msgstr "Desbloqueando discussão"
msgid "Unlocks the discussion."
msgstr "Desbloqueia a discussão."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "Inacessível"
@@ -51539,6 +52537,9 @@ msgstr "Cancelar"
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "Não é possível renomear o projeto porque contém tags de registro de contêiner!"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51660,7 +52661,7 @@ msgid "UsageQuotas|An error occurred loading the transfer data. Please refresh t
msgstr ""
msgid "UsageQuotas|Container Registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total."
-msgstr ""
+msgstr "Registro de contêiner não são usados para calcular o armazenamento total do projeto. O armazenamento total do projeto é calculado após a deduplicação do contêiner de espaço de nome, em que o total de todos os contêineres exclusivos é adicionado ao total de armazenamento de espaço de nome."
msgid "UsageQuotas|Namespace transfer data used"
msgstr "Dados de transferência de espaço de nome usado"
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr "Compre minutos de computação adicionais"
msgid "UsageQuota|Buy storage"
msgstr "Comprar armazenamento"
-msgid "UsageQuota|Code Suggestions"
-msgstr "Sugestões de código"
-
msgid "UsageQuota|Code packages and container images."
msgstr "Pacotes de código e imagens de contêiner."
@@ -51716,15 +52717,15 @@ msgstr "Registro de contêiner"
msgid "UsageQuota|Dependency proxy"
msgstr "Proxy de dependência"
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
msgid "UsageQuota|Filter charts by year"
msgstr "Filtrar gráficos por ano"
msgid "UsageQuota|Filter projects data by month"
msgstr "Filtrar dados de projetos por mês"
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "Para obter mais informações sobre limites de armazenamento, consulte nosso %{faq_link_start}FAQ%{link_end}."
-
msgid "UsageQuota|Git repository."
msgstr "Repositório Gif."
@@ -51755,8 +52756,8 @@ msgstr "Saiba mais sobre as cotas de uso"
msgid "UsageQuota|Learn more about usage quotas."
msgstr "Saiba mais sobre as cotas de uso."
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
-msgstr "Proxy local usado para imagens upstream do Docker acessadas com frequência. %{linkStart}Mais informações%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
+msgstr ""
msgid "UsageQuota|Month"
msgstr "Mês"
@@ -51794,8 +52795,8 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr "Análise do produto"
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
-msgstr "Projetos sob este espaço de nome têm %{planLimit} de armazenamento."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
+msgstr ""
msgid "UsageQuota|Purchased storage"
msgstr "Armazenamento comprado"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr "Algo deu errado ao obter estatísticas de armazenamento do projetot"
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "Armazenamento"
@@ -52073,12 +53071,6 @@ msgstr "Utilizar modelo"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr "Use a opção %{strongStart}Teste%{strongEnd} acima para criar um evento."
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr "Use a integração da Apple App Store Connect para se conectar facilmente à Apple App Store com Fastlane em pipelines de CI/CD."
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr "Use a integração do Google Play para se conectar ao Google Play com fastlane em pipelines de CI/CD."
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr "Use esta seção para desabilitar seu autenticador de senha única e dispositivos WebAuthn. Você também pode gerar novos códigos de recuperação."
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr "Existem 0 itens para mostrar neste estágio, para estes filtros, neste i
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "%{stageCount}+ itens"
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr "Painel"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr "Ir para docs"
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr "Variáveis"
-msgid "Variables can be:"
-msgstr "As variáveis podem ser:"
-
-msgid "Variables can have several attributes."
-msgstr "As variáveis podem ter vários atributos."
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr "As variáveis armazenam informações, como senhas e chaves secretas, que podem ser usadas em scripts de tarefa. Todos os projetos na instância podem usar essas variáveis."
-
msgid "Various container registry settings."
msgstr "Várias configurações de registro de contêiner."
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr "Ver tudo"
msgid "View all environments."
msgstr "Ver todos os ambientes."
-msgid "View all groups"
-msgstr "Ver todos os grupos"
-
msgid "View all issues"
msgstr "Ver todas as issues"
-msgid "View all projects"
-msgstr "Ver todos os projetos"
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr "Ver solicitação de mesclagem aberta"
msgid "View page @ "
msgstr "Ver página @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "Ver projeto na área do administrador"
@@ -53096,6 +54098,9 @@ msgstr "Ver a documentação"
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr "Ver exemplos de uso de token de gatilho"
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr "Vulnerabilidades"
@@ -53240,6 +54248,9 @@ msgstr "Detalhes"
msgid "VulnerabilityExport|Detected At"
msgstr "Detectado em"
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr "Caminho completo"
@@ -54020,6 +55031,9 @@ msgstr "Verificação SSL"
msgid "Webhooks|Secret token"
msgstr "Token secreto"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "Parte sensível da URL"
@@ -54518,6 +55532,9 @@ msgstr "Adicionar ao marco"
msgid "WorkItem|All activity"
msgstr "Todas as atividades"
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr "Bloqueando"
msgid "WorkItem|Cancel"
msgstr "Cancelar"
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr "Data de vencimento"
msgid "WorkItem|Epic"
msgstr "Épico"
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr "Tarefa existente"
@@ -54622,15 +55645,27 @@ msgstr "Marcar como concluído"
msgid "WorkItem|Milestone"
msgstr "Marco"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr "Novo %{workItemType}"
msgid "WorkItem|New task"
msgstr "Nova tarefa"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "Sem iteração"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "Nenhum resultado correspondente"
@@ -54661,9 +55696,6 @@ msgstr "Objetivo"
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr "Apenas %{MAX_WORK_ITEMS} itens podem ser adicionados por vez."
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr "WorkItem|Apenas membros do projeto com pelo menos a função Relator, o autor e os responsáveis podem visualizar ou ser notificados sobre isso %{workItemType}"
-
msgid "WorkItem|Open"
msgstr "Abrir"
@@ -54685,12 +55717,15 @@ msgstr "Requisitos"
msgid "WorkItem|Save and overwrite"
msgstr "Salvar e sobrescrever"
-msgid "WorkItem|Search existing items"
-msgstr "Pesquisar itens existentes"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
+msgstr ""
msgid "WorkItem|Select type"
msgstr "Selecione o tipo"
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr "Mostrar etiquetas"
@@ -54706,6 +55741,9 @@ msgstr "Algo deu errado ao excluir o %{workItemType}. Por favor, tente novamente
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "Algo deu errado ao deletar a tarefa. Por favor, tente novamente."
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr "Algo deu errado ao buscar as iterações. Por favor, tente novamente."
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr "Algo deu errado ao buscar etiquetas. Por favor, tente novamente."
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "Algo deu errado ao buscar tarefas. Atualize esta página."
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr "Algo deu errado ao buscar tipos de item de trabalho. Por favor, tente novamente"
@@ -54847,8 +55882,8 @@ msgstr "Item"
msgid "WorkItem|relates to"
msgstr "relacionado a"
-msgid "WorkItem|the following item(s)"
-msgstr "os seguintes itens"
+msgid "WorkItem|the following items"
+msgstr ""
msgid "Workspaces"
msgstr "Espaços de trabalho"
@@ -54865,6 +55900,9 @@ msgstr "Não foi possível carregar os espaços de trabalho"
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr "Criar um novo espaço de trabalho"
+
msgid "Workspaces|Create workspace"
msgstr "Criar espaço de trabalho"
@@ -54943,7 +55981,7 @@ msgstr "Para criar um espaço de trabalho para este projeto, um administrador de
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr "Para criar um espaço de trabalho, adicione um devfile a este projeto. Um devfile é um arquivo de configuração para seu espaço de trabalho."
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr "Escreva suas notas de lançamento ou arraste seus arquivos aqui…"
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55024,6 +56068,9 @@ msgstr "Ontem"
msgid "You"
msgstr "Você"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr "Você não tem nenhuma pesquisa recente"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr "Você já denunciou este usuário"
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "Você recebeu acesso %{access_level} ao %{source_link} %{source_type}."
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "Você deve estar conectado para pesquisar em todo o GitLab"
@@ -55746,7 +56805,7 @@ msgid "You're receiving this email because of your activity on %{host}."
msgstr "Você está recebendo este e-mail devido à sua atividade no %{host}."
msgid "You're receiving this email because of your activity on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
-msgstr ""
+msgstr "Você está recebendo este e-mail por causa de sua conta em %{host}. %{unsubscribe_link_start}Cancelar inscrição%{unsubscribe_link_end} deste tópico &middot; %{manage_notifications_link_start}Gerenciar todas as notificações%{manage_notifications_link_end} &middot; %{help_link_start}Ajuda%{help_link_end}"
msgid "You're receiving this email because you have been assigned an item on %{host}."
msgstr ""
@@ -55764,7 +56823,7 @@ msgid "You're receiving this email because you have been mentioned on %{host}. %
msgstr ""
msgid "You're viewing members of %{strong_start}%{group_name}%{strong_end}."
-msgstr ""
+msgstr "Você está vendo membros de %{strong_start}%{group_name}%{strong_end}."
msgid "You've already enabled two-factor authentication using one time password authenticators. In order to register a different device, you must first disable two-factor authentication."
msgstr "Você já ativou a autenticação de dois fatores usando autenticadores de senha única. Para registrar um dispositivo diferente, você deve primeiro desativar a autenticação de dois fatores."
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr "Sua atividade"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55847,7 +56912,7 @@ msgid "Your GitLab account has been locked due to an excessive number of unsucce
msgstr ""
msgid "Your GitLab account is now an %{source_link}:"
-msgstr ""
+msgstr "Sua conta do GitLab agora é %{source_link}:"
msgid "Your GitLab account is now an Enterprise User (%{source_link}):"
msgstr ""
@@ -55886,7 +56951,7 @@ msgid "Your SSH key was deleted"
msgstr ""
msgid "Your SSH keys"
-msgstr ""
+msgstr "Suas chaves SSH"
msgid "Your Time-based OTP device was registered!"
msgstr ""
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Seu nome"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr "Seus projetos"
msgid "Your public email will be displayed on your public profile."
msgstr "Seu e-mail será exibido no seu perfil público."
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr "[Redacted]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr "não pode estar em branco"
msgid "cannot be changed"
msgstr "não pode ser alterado"
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr "%{improvedNum} melhorado"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr "Analise uma versão implantada de seu aplicativo da Web para vulnerabili
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr "A qualidade de código está carregando"
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr "Verificação de container"
@@ -56731,15 +57789,18 @@ msgstr "Adicionado manualmente"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr "Novas vulnerabilidades são vulnerabilidades que a verificação de segurança detecta na solicitação de mesclagem que são diferentes das vulnerabilidades existentes na ramificação padrão."
-msgid "ciReport|No changes to code quality"
-msgstr "Sem mudanças na qualidade do código"
-
msgid "ciReport|No code quality issues found"
msgstr ""
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr "Resolver com solicitação de mesclagem"
@@ -56797,9 +57858,6 @@ msgstr "Ocorreu um erro ao descartar a vulnerabilidade. Por favor, tente novamen
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "Houve um erro ao reverter o descarte. Por favor, tente novamente."
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr "Alterações mescladas em %{targetBranch} com %{mergeCommitSha}%{squashe
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "As alterações não foram mescladas em %{targetBranch}."
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr "Marcar como finalizado"
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr "A solicitação de mesclagem não contém alterações"
@@ -57568,10 +58632,10 @@ msgid "mrWidget|Approve additionally"
msgstr "Aprovar adicionalmente"
msgid "mrWidget|Approve additionally with SAML"
-msgstr "Aprovar adicionalmente com SAML"
+msgstr ""
msgid "mrWidget|Approve with SAML"
-msgstr "Aprovar com SAML"
+msgstr ""
msgid "mrWidget|Approved by"
msgstr "Aprovado por"
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr "deve ser um grupo raiz."
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr "deve ser falso quando a configuração de confirmação de email estiver desativada"
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr "deve ter um repositório"
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr "deve ter o sinalizador 'habilitado' definido como verdadeiro"
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr "remover data de início"
msgid "remove weight"
msgstr "remover peso"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] "repositórios"
msgid "repository:"
msgstr "repositório:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr "caso de teste"
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr "os seguintes épicos"
@@ -58304,6 +59392,9 @@ msgstr "os seguintes incidentes ou issues"
msgid "the following issues"
msgstr "as seguintes issues"
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr "a wiki"
diff --git a/locale/pt_PT/gitlab.po b/locale/pt_PT/gitlab.po
index 412cabd8244..283430084f7 100644
--- a/locale/pt_PT/gitlab.po
+++ b/locale/pt_PT/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: pt-PT\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d comentário"
msgstr[1] "%d comentários"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d contribuição"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} apagado"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} Ramo"
@@ -1275,8 +1265,11 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "Alterações de %{title}"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' não é um nível de visibilidade válido"
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr "(Sem alterações)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(verificar progresso)"
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr "+ mais %{count}"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Adicionar épico filho a um épico"
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr "Ãrea de Administração"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr "Após uma atualização de palavra-passe bem-sucedida, serás redirecion
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Todos"
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr "Todos os utilizadores devem ter um nome."
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Permite -te adicionar e gerir clusters do Kubernetes."
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr "Uma aplicação chamada %{link_to_client} está a pedir acesso à tua co
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Um campo vazio do Utilizador do GitLab adicionará o nome completo do utilizador do FogBugz (por exemplo, \"Por John Smith\") na descrição de todos os problemas e comentários. Ele também irá associar e/ou atribuir estes problemas e comentários ao criador do projeto."
@@ -5096,9 +5167,6 @@ msgstr "Ocorreu um erro ao desativar a Central de Serviços."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Ocorreu um erro ao dispensar o alerta. Atualiza a página e tenta novamente."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Ocorreu um erro ao dispensar o recurso de destaque. Atualiza a página e tenta dispensar novamente."
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr "Ancestrais"
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr "Anónimo"
@@ -5829,6 +5904,27 @@ msgstr "Anexar o comentário com %{shrug}"
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Aplicação"
msgid "Application ID"
msgstr "ID da Aplicação"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr "Arquivar trabalhos"
msgid "Archive project"
msgstr "Arquivar projeto"
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr "Pelo menos uma aprovação de um código proprietário é necessário pa
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr "Resolvido automaticamente"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "Nota"
@@ -7337,12 +7427,18 @@ msgstr "O avatar será removido. Tens a certeza?"
msgid "Average per day: %{average}"
msgstr "Média diária: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr "Adicionar emblema"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Falha ao adicionar emblema, por favor, verifica os URLs inseridos e tenta novamente."
-
msgid "Badges|Badge image URL"
msgstr "URL da imagem do emblema"
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr "Apagar emblema?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Erro ao apagar emblema, por favor, tenta novamente."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "Emblema do grupo"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "Link"
@@ -7457,18 +7556,21 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr "O emblema foi apagado."
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr ""
-
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
msgid "Badges|Your badges"
msgstr "Os teus emblemas"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr ""
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr "Começar com o envio selecionado"
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Colapsar"
@@ -8410,9 +8473,6 @@ msgstr "Expandir"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr "Ramo já está a ser usado"
msgid "Branch name"
msgstr "Nome do ramo"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr "Ramo não carregado - %{branchId}"
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Ramos"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Procurar ficheiros"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr "Por %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr "Padrão para o pipeline de Auto DevOps para todos os projetos"
msgid "CICD|Deployment strategy"
msgstr "Estratégia de implantação"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Verifica Novamente"
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr "Escolhe um ficheiro"
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr "Escolhe um modelo"
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr "Estado"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr "Fechar épico"
msgid "Close milestone"
msgstr "Fechar objetivo"
-msgid "Close sidebar"
-msgstr "Fechar barra lateral"
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "Informar os utilizadores sem enviar as chaves SSH que não podem empurrar através de SSH até que um seja adicionado"
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr "Houve um erro ao tentar validar a tua consulta"
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr "Nenhumas outras etiquetas com tal nome ou descrição"
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr "Reabrir objetivo"
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 "Para mover ou copiar todo um projeto do GitLab de outra instalação do GitLab para este, navega até a página de definições do projeto original, gera um ficheiro de exportação e envia-o aqui."
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ro_RO/gitlab.po b/locale/ro_RO/gitlab.po
index 050e646051c..3922915d6d0 100644
--- a/locale/ro_RO/gitlab.po
+++ b/locale/ro_RO/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ro\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:33\n"
+"PO-Revision-Date: 2024-01-11 16:23\n"
msgid " %{start} to %{end}"
msgstr " de la %{start} până la %{end}"
@@ -184,12 +184,6 @@ msgstr[0] "%d artefact"
msgstr[1] "%d artefacte"
msgstr[2] "%d de artefacte"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d problemă atribuită"
-msgstr[1] "%d probleme atribuite"
-msgstr[2] "%d de probleme atribuite"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -226,12 +220,6 @@ msgstr[0] "%d comentariu"
msgstr[1] "%d comentarii"
msgstr[2] "%d de comentarii"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d comentariu la acest commit"
-msgstr[1] "%d comentarii la acest commit"
-msgstr[2] "%d de comentarii la acest commit"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d comentator"
@@ -268,12 +256,6 @@ msgstr[0] "%d problemă finalizată"
msgstr[1] "%d probleme finalizate"
msgstr[2] "%d de probleme finalizate"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d contribuție"
@@ -370,6 +352,12 @@ msgstr[0] "%d problemă importată cu succes cu eticheta"
msgstr[1] "%d probleme importate cu succes cu eticheta"
msgstr[2] "%d de probleme importate cu succes cu eticheta"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d job"
@@ -634,6 +622,9 @@ msgstr "%{author_link} a scris:"
msgid "%{authorsName}'s thread"
msgstr "Subiect scris de %{authorsName}"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} a cerut să îmbine %{source_branch} %{copy_button} în %{target_branch} %{created_at}"
@@ -676,15 +667,6 @@ msgstr "%{chartTitle} fără nicio serie de date"
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Mascate:%{code_close} Ascunse în jurnalele jobului. Trebuie să se potrivească cerințelor de mascare."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}Protejate:%{code_close} Expuse numai la ramuri protejate sau la etichete protejate."
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} a redactat %{commit_authored_timeago}"
@@ -808,12 +790,6 @@ msgstr "%{days} zile până când etichetele sunt înlăturate automat"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Eveniment Sentry: %{errorUrl}- Văzut prima dată: %{firstSeen}- Văzut ultima dată: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{doc_link_start}Cercetare avansată%{doc_link_end} este dezactivată deoarece %{ref_elem} nu este ramura implicită. %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}Căutarea avansată%{doc_link_end} este activată."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}Aflați mai multe despre nivelele de vizibilitate.%{docs_link_end}"
@@ -850,6 +826,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} alte pipeline-uri în aval"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} șters"
@@ -1024,6 +1003,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow} și %{awardsListLength} mai mult"
@@ -1297,6 +1282,9 @@ msgstr[2] "%{strongStart}%{count}%{strongEnd} de commit-uri"
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} Ramură"
@@ -1396,8 +1384,11 @@ msgstr "%{timebox_type} trebuie să aibă o dată de început și o dată scaden
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
-msgstr "%{title} modificat(e)"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} gratuit)"
@@ -1411,6 +1402,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} gratuit)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} avertisment(e) găsit(e):"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr "%{total} greutate de problemă rămasă"
@@ -1465,6 +1459,9 @@ msgstr "%{user} a creat o problemă: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} nu face parte din listă"
@@ -1483,6 +1480,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{wildcards_link_start}Jokerii%{wildcards_link_end} cum ar fi %{code_tag_start}v*%{code_tag_end} sau %{code_tag_start}*-lansare%{code_tag_end} sunt acceptați."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' nu este un nivel de vizibilitate valid"
@@ -1498,9 +1498,21 @@ msgstr "'%{value}' de zile de inactivitate trebuie să fie mai mare sau egală c
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1537,6 +1549,12 @@ msgstr "(Nicio schimbare)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(verificați progresul)"
@@ -1555,9 +1573,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(lăsați necompletat dacă nu doriți să o modificați)"
-msgid "(max size 15 MB)"
-msgstr "(mărime maximă 15 MB)"
-
msgid "(no user)"
msgstr "(fără utilizator)"
@@ -1588,7 +1603,7 @@ msgstr "+ %{amount} mai mult"
msgid "+ %{count} more"
msgstr "+ %{count} mai mult"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1930,9 +1945,6 @@ msgstr "O pagină de bază și funcție serverless care utilizează AWS Lambda,
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "Un șablon de bază pentru dezvoltarea de programe Linux folosind Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "O platformă DevOps completă"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2038,8 +2050,8 @@ msgstr "Un șablon gata de utilizare pentru aplicații Android"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "Un șablon gata de utilizare pentru aplicații Swift pentru iOS"
-msgid "A rebase is already in progress."
-msgstr "Un rebase este deja în curs de desfășurare."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "S-a efectuat o autentificare în contul dvs. de la următoarea adresă IP: %{ip}"
@@ -2062,6 +2074,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2161,9 +2200,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2185,6 +2221,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2230,6 +2269,9 @@ msgstr "Fuzzing de API"
msgid "API Help"
msgstr "Ajutor API"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "Cheie API"
@@ -2551,6 +2593,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3025,6 +3073,9 @@ msgstr "Adăugare regulă de aprobare"
msgid "Add approvers"
msgstr "Adăugare aprobatori"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Adăugare epică copil la o epică"
@@ -3163,9 +3214,6 @@ msgstr "Adăugare sugestie la lot"
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "Adăugați text la pagina de autentificare. Markdown activat."
@@ -3319,15 +3367,15 @@ msgstr "Adaugă acest / această %{issuable_type} ca fiind legat(ă) de %{issuab
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "Reglați frecvența cu care GitLab UI verifică pentru actualizări."
-msgid "Admin"
-msgstr "Admin"
-
msgid "Admin Area"
msgstr "Zona Admin"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "Modul Admin"
+
msgid "Admin Note"
msgstr "Notă Admin"
@@ -3337,9 +3385,6 @@ msgstr "Notificări Admin"
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Modul Admin este deja activat"
@@ -3697,6 +3742,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr "Limita ratei de abuz Git"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3793,6 +3841,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr "Întrerupeți indexarea Elasticsearch"
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4411,6 +4462,9 @@ msgstr "documente"
msgid "AdminUsers|user cap"
msgstr "limita de utilizare"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "Administratori"
@@ -4444,6 +4498,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4555,18 +4612,24 @@ msgstr "După o actualizare reușită a parolei, veți fi redirecționat către
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
-msgstr ""
-
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr "După ce exportul este finalizat, descărcați fișierul de date dintr-un e-mail de notificare sau de pe această pagină. Apoi puteți importa fișierul de date de pe pagina %{strong_text_start}Creați un grup nou%{strong_text_end} al unei alte instanțe GitLab."
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr "După revizuirea acestor orientări privind contribuțiile, veți fi gata să"
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4915,6 +4978,15 @@ msgstr "Alerta de test ar trebui să fie acum vizibilă în lista de alerte."
msgid "Algorithm"
msgstr "Algoritm"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Toate"
@@ -4945,9 +5017,6 @@ msgstr "Toți utilizatorii eligibili"
msgid "All environments"
msgstr "Toate mediile"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5002,6 +5071,9 @@ msgstr "Toți utilizatorii trebuie să aibă un nume."
msgid "All users with matching cards"
msgstr "Toți utilizatorii cu carduri care se potrivesc"
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr "Permiteți ca %{strongOpen}%{group_name}%{strongClose} să vă conecteze?"
@@ -5059,12 +5131,18 @@ msgstr "Permiteți acestei chei să facă push către acest repozitoriu"
msgid "Allow use of licensed EE features"
msgstr "Permiteți utilizarea funcțiilor EE licențiate"
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Permis"
@@ -5086,9 +5164,6 @@ msgstr "Permite proiectelor sau subgrupurilor din acest grup să suprascrie seta
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "Permite proiectelor să urmărească erorile cu ajutorul unei integrări Opstrace."
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Vă permite să adăugați și să gestionați clusterele Kubernetes."
-
msgid "Almost there"
msgstr "Aproape acolo"
@@ -5149,9 +5224,6 @@ msgstr "O %{link_start}alertă%{link_end} cu aceeași amprentă este deja deschi
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr "Un administrator a setat data maximă de expirare la %{maxDate}. %{helpLinkStart}Aflați mai multe%{helpLinkEnd}."
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "Organizația dvs. v-a creat un cont GitLab de utilizator Enterprise:"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "Un administrator a schimbat parola pentru contul dvs. GitLab pe %{link_to}."
@@ -5167,9 +5239,6 @@ msgstr "O aplicație numită %{link_to_client} solicită acces la contul dvs. Gi
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "O notificare prin e-mail a fost trimisă recent din panoul de administrare. Vă rugăm să așteptați %{wait_time_in_words} înainte de a încerca să trimiteți un alt mesaj."
-msgid "An email will be sent with the report attached after it is generated."
-msgstr "Un e-mail va fi trimis cu raportul atașat după ce este generat."
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Un câmp gol de utilizator GitLab va adăuga numele complet al utilizatorului FogBugz (de ex. „de John Smithâ€) în descrierea tuturor problemelor È™i comentariilor. De asemenea, va asocia È™i/sau atribui aceste probleme È™i comentarii cu creatorul proiectului."
@@ -5245,9 +5314,6 @@ msgstr "A apărut o eroare la dezactivarea Service Desk."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "A survenit o eroare în timpul respingerii alertei. Actualizați pagina și încercați din nou."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "A survenit o eroare în timpul respingerii evidențierii caracteristicii. Reîmprospătați pagina și încercați să respingeți din nou."
-
msgid "An error occurred while drawing job relationship links."
msgstr "S-a produs o eroare în timpul trasării linkurilor de relaționare a joburilor."
@@ -5476,11 +5542,8 @@ msgstr "S-a produs o eroare în timpul recuperării setărilor. Reîncărcați p
msgid "An error occurred while saving changes: %{error}"
msgstr "A apărut o eroare în timpul salvării modificărilor: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "A apărut o eroare în timpul salvării setării"
-msgstr[1] "A apărut o eroare în timpul salvării setărilor"
-msgstr[2] "A apărut o eroare în timpul salvării setărilor"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "S-a produs o eroare în timpul salvării setărilor. Încercați să le salvați din nou."
@@ -5647,6 +5710,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5755,6 +5821,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5863,6 +5932,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5875,16 +5947,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5917,9 +5992,6 @@ msgstr "Se analizează fișierul…"
msgid "Ancestors"
msgstr "Predecesori"
-msgid "And this registration token:"
-msgstr "Și acest token de înregistrare:"
-
msgid "Anonymous"
msgstr "Anonim"
@@ -5980,6 +6052,27 @@ msgstr "Anexați comentariul cu %{shrug}"
msgid "Append the comment with %{tableflip}"
msgstr "Anexați comentariul cu %{tableflip}"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5992,16 +6085,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6019,9 +6109,6 @@ msgstr "Aplicație"
msgid "Application ID"
msgstr "ID-ul aplicației"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr "Limitele aplicației au fost salvate cu succes"
@@ -6553,9 +6640,6 @@ msgstr "Arhivați joburile"
msgid "Archive project"
msgstr "Arhivare proiect"
-msgid "Archive test case"
-msgstr "Arhivare a cazului de testare"
-
msgid "Archived"
msgstr "Arhivat"
@@ -6619,6 +6703,9 @@ msgstr "Sunteți sigur că doriți să ștergeți acest %{commentType}?"
msgid "Are you sure you want to delete this SSH key?"
msgstr "Sunteți sigur că doriți să ștergeți această cheie SSH?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "Sunteți sigur că doriți să ștergeți acest comentariu?"
@@ -6634,9 +6721,6 @@ msgstr "Sunteți sigur că doriți să ștergeți această etichetă?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "Sunteți sigur că doriți să ștergeți acest pipeline? În acest fel, toate cache-urile de conducte vor expira și se vor șterge toate obiectele conexe, cum ar fi build-urile, jurnalele, artefactele și declanșatoarele. Această acțiune nu poate fi anulată."
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Sunteți sigur că doriți să desfășurați acest mediu?"
@@ -6838,9 +6922,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr "Mărimea totală a artefactelor"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "Pe măsură ce continuăm să dezvoltăm mai multe funcții pentru SAST, ne-ar plăcea să primim feedback-ul dvs. cu privire la funcția de configurare SAST în %{linkStart}această problemă%{linkEnd}."
@@ -6856,6 +6937,9 @@ msgstr "Listă de ramuri, separate prin virgulă, care urmează să fie inspecta
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr "Token de acces personal al utilizatorului. Utilizatorul trebuie să aibă acces la activitatea respectivă. Toate comentariile sunt atribuite acestui utilizator."
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6979,15 +7063,12 @@ msgstr "Este necesară cel puțin o aprobare din partea unui proprietar de cod p
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr "Cel puțin un câmp din %{one_of_required_fields} trebuie să fie prezent."
+msgid "At least one of %{params} must be true"
+msgstr ""
+
msgid "At least one of group_id or project_id must be specified"
msgstr "Cel puțin un group_id sau project_id trebuie să fie specificat"
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr "Cel puțin unul dintre Tokenurile personale de acces a expirat. %{generate_new}"
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr "Cel puțin unul dintre Tokenurile de acces personal va expira în curând. %{generate_new}"
-
msgid "At risk"
msgstr "La risc"
@@ -7081,7 +7162,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7159,6 +7240,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7195,6 +7279,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr "Configurați streamingul pentru evenimentele de audit"
@@ -7288,6 +7378,9 @@ msgstr "Perioada limită a ratei web autentificată (în secunde)"
msgid "Authenticated web requests"
msgstr "Solicitări web autentificate"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "Autentificare"
@@ -7477,12 +7570,6 @@ msgstr "S-a rezolvat automat"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "Actualizați automat ramurile și etichetele acestui proiect din repozitoriul din amonte."
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "Notă"
@@ -7507,12 +7594,18 @@ msgstr "Avatarul va fi înlăturat. Sunteți sigur?"
msgid "Average per day: %{average}"
msgstr "Media pe zi: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr "Așteptăm înscrierea utilizatorului"
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "ÃŽnapoi"
@@ -7564,9 +7657,6 @@ msgstr "Adăugare insignă"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Adăugarea insignei a eșuat, vă rugăm să verificați URL-urile introduse și să încercați din nou."
-
msgid "Badges|Badge image URL"
msgstr "URL-ul imaginii insignei"
@@ -7579,9 +7669,6 @@ msgstr "Insigna a fost salvată."
msgid "Badges|Delete badge?"
msgstr "Ștergeți insigna?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Ștergerea insignei a eșuat, vă rugăm să încercați din nou."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7591,9 +7678,18 @@ msgstr "Introduceți un URL valid"
msgid "Badges|Example: %{exampleUrl}"
msgstr "Exemplu: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "Insigna grupului"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "Link"
@@ -7627,18 +7723,21 @@ msgstr "%{docsLinkStart}Variabilele%{docsLinkEnd} acceptate: %{placeholders}"
msgid "Badges|The badge was deleted."
msgstr "Insigna a fost ștearsă."
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "Sunteți pe cale să ștergeți această insignă. Insignele șterse %{strongStart}nu pot%{strongEnd} fi restaurate."
-
msgid "Badges|Your badges"
msgstr "Insignele dumneavoastră"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7648,8 +7747,8 @@ msgstr "URL Bamboo"
msgid "BambooService|Bamboo build plan key."
msgstr "Cheia planului build al Bamboo."
-msgid "BambooService|Bamboo service root URL."
-msgstr "Adresa URL rădăcină a serviciului Bamboo."
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr "Introduceți noua cheie a build-ului"
@@ -7663,8 +7762,8 @@ msgstr "Executați pipeline-uri CI/CD cu Atlassian Bamboo."
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr "Rulați pipeline-urile CI/CD cu Atlassian Bamboo. Trebuie să configurați etichetarea automată a revizuirilor și un declanșator de repozitoriu în Bamboo. %{docs_link}"
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "Utilizatorul cu acces API la serverul Bamboo."
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr "Interzis"
@@ -7768,9 +7867,6 @@ msgstr "Înainte de a activa această integrare, creați un webhook pentru camer
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "Înainte de a insera codul, asigurați-vă că citiți comentariul care a separat fiecare grup de cod."
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr "Înainte ca aceasta să poată fi îmbinată, o problemă Jira trebuie să fie legată în titlu sau în descriere"
-
msgid "Begin with the selected commit"
msgstr "Începeți cu commit-ul selectat"
@@ -8128,6 +8224,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr "Contul dvs. a fost validat"
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8158,13 +8257,13 @@ msgstr "A apărut o eroare în timpul încărcării detaliilor abonamentului Git
msgid "Billing|An error occurred while loading billable members list."
msgstr "A apărut o eroare la încărcarea listei membrilor facturabili."
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr "S-a produs o eroare în timpul încărcării listei membrilor în așteptare"
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8182,10 +8281,10 @@ msgstr "Membri direcți"
msgid "Billing|Enter at least three characters to search."
msgstr "Introduceți cel puțin trei caractere pentru a căuta."
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8227,12 +8326,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "Pentru a asigura accesul la grup pentru toți membrii după perioada de probă, se poate trece la un nivel plătit."
@@ -8254,7 +8347,10 @@ msgstr "Vizualizați aprobările în așteptare"
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "Sunteți pe cale să înlăturați utilizatorul %{username} din abonament. Dacă veți continua, utilizatorul va fi înlăturat din grupul %{namespace} și din toate subgrupurile și proiectele acestuia. Această acțiune nu poate fi anulată."
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8449,12 +8545,6 @@ msgstr[2] "+ %{displayedIssuablesCount} de %{issuableType} mai mult"
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "A apărut o eroare în timpul creării epicei. Vă rugăm să încercați din nou."
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "A apărut o eroare în timpul creării problemei. Vă rugăm să încercați din nou."
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "A apărut o eroare în timpul creării listei. Vă rugăm să încercați din nou."
@@ -8473,9 +8563,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "S-a produs o eroare în timpul căutării grupurilor copil. Vă rugăm să încercați din nou."
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8485,18 +8572,12 @@ msgstr "A apărut o eroare în timpul preluării proiectelor de grup. Vă rugăm
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "A apărut o eroare în timpul preluării problemelor. Vă rugăm să reîncărcați pagina."
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "A apărut o eroare în timpul preluării etichetelor. Vă rugăm să reîncărcați pagina."
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8509,51 +8590,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "A apărut o eroare în timpul preluării epicelor bordului. Vă rugăm să reîncărcați pagina."
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "A apărut o eroare în timpul preluării problemelor bordului. Vă rugăm să reîncărcați pagina."
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "S-a produs o eroare în timpul preluării listelor bordului. Vă rugăm să reîncărcați pagina."
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "S-a produs o eroare în timpul preluării bordului swimlanes. Vă rugăm să reîncărcați pagina."
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr "S-a produs o eroare în timpul preluării bordului. Vă rugăm să reîncărcați pagina."
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "A apărut o eroare în timpul generării listelor. Vă rugăm să reîncărcați pagina."
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "A apărut o eroare în timpul mutării epicei. Vă rugăm să încercați din nou."
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "A apărut o eroare în timpul mutării problemei. Vă rugăm să încercați din nou."
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "A apărut o eroare în timpul îndepărtării listei. Vă rugăm să încercați din nou."
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "A survenit o eroare în timp ce se actualiza lista bordului. Vă rugăm să încercați din nou."
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8563,6 +8620,9 @@ msgstr[0] "Blocat de %{blockedByCount} %{issuableType}"
msgstr[1] "Blocat de %{blockedByCount} %{issuableType}s"
msgstr[2] "Blocat de %{blockedByCount} de %{issuableType}s"
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Restrângeți"
@@ -8584,9 +8644,6 @@ msgstr "Extindeți"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr "Nu s-a reușit preluarea %{issuableType}s care blochează"
-msgid "Boards|Move card"
-msgstr "Mutați cardul"
-
msgid "Boards|Move to end of list"
msgstr "Mutați la sfârșitul listei"
@@ -8680,6 +8737,9 @@ msgstr "Ramura este deja luată"
msgid "Branch name"
msgstr "Numele ramurii"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr "Șablonul numelui ramurii"
@@ -8689,6 +8749,18 @@ msgstr "Ramura nu a fost încărcată - %{branchId}"
msgid "Branch rules"
msgstr "Reguli pentru ramură"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "%{linkStart}Caracterele wildcard%{linkEnd}, cum ar fi *-stable sau production/, sunt acceptate."
@@ -8755,15 +8827,27 @@ msgstr "Ramura"
msgid "BranchRules|Branch name or pattern"
msgstr "Numele sau modelul ramurii"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "Detaliile regulilor ramurii"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "Creați un wildcard: %{searchTerm}"
@@ -8821,6 +8905,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr "Roluri"
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "Verificări de stare"
@@ -8839,6 +8929,9 @@ msgstr "Utilizatori"
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "implicit"
@@ -8851,6 +8944,9 @@ msgstr "Ramuri"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr "Ramuri: %{source_branch} la %{target_branch}"
@@ -9151,6 +9247,12 @@ msgstr "Răsfoiți fișierele"
msgid "Browse templates"
msgstr "Răsfoiți șabloanele"
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr "Build-ul nu poate fi șters"
@@ -9184,9 +9286,18 @@ msgstr "%{feature} (necesită v%{version})"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr "Destinația"
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9196,17 +9307,26 @@ msgstr "Filtrați după grupul sursă"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr "Următoarele date nu vor fi migrate: %{bullets} Contactați administratorul de sistem al %{host} pentru a actualiza GitLab dacă aveți nevoie de aceste date în migrația dumneavoastră"
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr "Istoric"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr "Importul a eșuat: Destinația nu poate fi un subgrup al grupului sursă. Schimbați destinația și încercați din nou."
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Importați grupuri din GitLab"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr "Importul este finalizat. Alegeți un alt nume pentru reimport"
@@ -9223,6 +9343,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr "Importul grupului a eșuat."
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr "Ultima importare la %{link}"
@@ -9277,8 +9403,11 @@ msgstr "Sursa"
msgid "BulkImport|Source group"
msgstr "Grupul sursă"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
-msgstr "Șablon / Import bazat pe fișiere / Migrație GitLab"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
+msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
msgstr "Actualizarea statusurilor de import cu modificările în timp real a eșuat"
@@ -9340,9 +9469,6 @@ msgstr "Cumpărați mai multe minute Pipeline"
msgid "By %{user_name}"
msgstr "De %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "Prin autentificarea cu un cont legat de o adresă de e-mail Enterprise, se înțelege că acest cont este un utilizator Întreprindere. "
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9484,6 +9610,9 @@ msgstr "Setare implicită pentru pipeline-ul Auto DevOps pentru toate proiectele
msgid "CICD|Deployment strategy"
msgstr "Strategia de implementare"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9505,6 +9634,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9568,18 +9703,6 @@ msgstr "Solicitați ID-ul CVE"
msgid "CVE|Why Request a CVE ID?"
msgstr "De ce să solicitați un ID CVE?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr "Cadența nu este automată"
@@ -9598,18 +9721,18 @@ msgstr "Subdomeniul Campfire (opțional)"
msgid "Campfire token"
msgstr "Tokenul Campfire"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "Token de autentificare API de la Campfire."
-msgid "CampfireService|From the end of the room URL."
-msgstr "Se găsește la sfârșitul URL-ului sălii."
+msgid "CampfireService|ID portion of the Campfire room URL."
+msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr "Trimiteți notificări despre evenimente push către sălile de chat Campfire. %{docs_link}"
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr "Subdomeniul %{code_open}.campfirenow.com%{code_close}."
-
msgid "Can be manually deployed to"
msgstr "Poate fi desfășurat manual la"
@@ -9619,6 +9742,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr "Nu se poate șterge formarea primară"
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr "Nu se poate aplica deoarece ramura sursă a fost ștearsă."
@@ -10069,6 +10195,9 @@ msgstr "în %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr "în %{project_link}"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Verificați din nou"
@@ -10183,6 +10312,9 @@ msgstr "A survenit o eroare necunoscută. Vă rugăm să încercați din nou pri
msgid "Checkout|Billing address"
msgstr "Adresa de facturare"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "Minute CI"
@@ -10195,6 +10327,9 @@ msgstr "Checkout"
msgid "Checkout|City"
msgstr "OraÈ™"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10207,6 +10342,9 @@ msgstr "Confirmați achiziția"
msgid "Checkout|Confirming..."
msgstr "Se confirmă..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Continuați cu facturarea"
@@ -10267,6 +10405,9 @@ msgstr "Grupul"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "Trebuie să fie de cel puțin %{minimumNumberOfUsers} (seat-urile dvs. în uz) sau mai mult."
@@ -10324,6 +10465,9 @@ msgstr "Adresa străzii"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "Trimiterea formularului cardului de credit a eșuat cu codul %{errorCode}: %{errorMessage}"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Detaliile abonamentului"
@@ -10336,6 +10480,9 @@ msgstr "Succes: abonament"
msgid "Checkout|Tax"
msgstr "Taxa"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "Total"
@@ -10405,9 +10552,6 @@ msgstr "Alegeți fișierul..."
msgid "Choose a file"
msgstr "Alegeți un fișier"
-msgid "Choose a group"
-msgstr "Alegeți un grup"
-
msgid "Choose a template"
msgstr "Alegeți un șablon"
@@ -10471,6 +10615,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10489,7 +10636,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10501,18 +10651,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10522,25 +10669,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10549,6 +10717,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "Interval de date: %{range}"
@@ -10639,6 +10810,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10726,13 +10909,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr "Stare"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10756,10 +10948,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr "Variabile"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10990,9 +11194,6 @@ msgstr "Închideți epica"
msgid "Close milestone"
msgstr "Închideți obiectivul"
-msgid "Close sidebar"
-msgstr "Închideți bara laterală"
-
msgid "Close this %{quick_action_target}"
msgstr "Închideți această %{quick_action_target}"
@@ -12028,16 +12229,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr "Model"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12046,7 +12265,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12055,22 +12274,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12202,6 +12421,9 @@ msgstr "Colorați mesajele"
msgid "ComboSearch is not defined"
msgstr "ComboSearch nu este definit"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "Lista adreselor de e-mail separate prin virgulă."
@@ -12250,6 +12472,12 @@ msgstr "Comenzile nu s-au aplicat"
msgid "Comment"
msgstr "Comentariu"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "PoziÈ›ia comentariului „%{label}â€"
@@ -12529,13 +12757,49 @@ msgstr "Completat"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr "S-a completat în %{duration_seconds} (de) secunde (%{relative_time})"
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12553,6 +12817,9 @@ msgstr ""
msgid "Compliance framework"
msgstr "Framework de conformitate"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12565,6 +12832,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12574,12 +12844,12 @@ msgstr "Adăugare framework"
msgid "ComplianceFrameworks|Background color"
msgstr "Culoare de fundal"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "Anulare"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr ""
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr ""
@@ -12592,9 +12862,15 @@ msgstr "Configurarea pipeline-ului de conformitate (opțional)"
msgid "ComplianceFrameworks|Configuration not found"
msgstr "Configurația nu a fost găsită"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "Ștergeți framework-ul de conformitate %{framework}"
@@ -12607,6 +12883,9 @@ msgstr "Descriere"
msgid "ComplianceFrameworks|Description is required"
msgstr "Descrierea este obligatorie"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12637,9 +12916,15 @@ msgstr "Nume"
msgid "ComplianceFrameworks|Name is required"
msgstr "Numele este obligatoriu"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr "Încă nu sunt configurate framework-uri de conformitate"
@@ -12658,12 +12943,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr "Nu se poate salva acest framework de conformitate. Vă rugăm să încercați din nou"
@@ -12781,6 +13072,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12841,6 +13135,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12868,7 +13168,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13021,6 +13327,9 @@ msgstr "Configurați replicarea repozitoriului."
msgid "Configure repository storage."
msgstr "Configurați stocarea repozitoriului."
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr "Configurați setările pentru Căutare avansată cu Elasticsearch."
@@ -13111,8 +13420,8 @@ msgstr "Conflict: Acest fișier a fost redenumit în ramura sursă, dar înlătu
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
-msgstr "URL-ul spațiului de lucru Confluence Cloud"
+msgid "Confluence Workspace URL"
+msgstr ""
msgid "ConfluenceService|Confluence Workspace"
msgstr "Spațiul de lucru Confluence"
@@ -13348,6 +13657,9 @@ msgstr "Repozitoriu de imagini fără nume localizat la adresa URL a proiectului
msgid "ContainerRegistry|Image tags"
msgstr "Etichete de imagine"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr "Etichetă nevalabilă: lipsește digestul manifestului"
@@ -13534,6 +13846,9 @@ msgstr "Pentru a vă extinde căutarea, modificați sau înlăturați filtrele d
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr "Avem probleme cu conectarea la Registrul de container. Vă rugăm să încercați să reîmprospătați pagina. Dacă această eroare persistă, vă rugăm să consultați %{docLinkStart}documentația de depanare%{docLinkEnd}."
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "Cu ajutorul Registrului de container, fiecare proiect poate avea propriul spațiu pentru a-și stoca imaginile Docker. %{docLinkStart}Mai multe informații%{docLinkEnd}"
@@ -13885,7 +14200,7 @@ msgstr "Contribuții pentru %{calendar_date}"
msgid "Contributor"
msgstr "Colaborator"
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13897,6 +14212,9 @@ msgstr "Controlați dacă doriți să afișați conținutul de îmbunătățire
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Domeniul cookie"
@@ -13960,6 +14278,9 @@ msgstr "Copiați codurile"
msgid "Copy command"
msgstr "Copiați comanda"
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr "Copiați comenzile"
@@ -14032,9 +14353,6 @@ msgstr "Copiați numele ramurii sursă"
msgid "Copy to clipboard"
msgstr "Copiați în clipboard"
-msgid "Copy token"
-msgstr "Copiați tokenul"
-
msgid "Copy value"
msgstr "Copiați valoarea"
@@ -14218,6 +14536,9 @@ msgstr "Nu s-au putut încărca design-urile, deoarece unul sau mai multe fișie
msgid "Couldn't assign policy to project or group"
msgstr "Nu s-a putut atribui politica unui proiect sau grup"
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14281,6 +14602,9 @@ msgstr "Creați un grup"
msgid "Create a merge request"
msgstr "Creați un merge request"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "Creați un nou fișier %{codeStart}.gitlab-ci.yml%{codeEnd} la rădăcina repozitoriului pentru a începe."
@@ -14311,9 +14635,6 @@ msgstr "Create un token de acces personal în contul dvs. pentru a utiliza pull
msgid "Create a project"
msgstr "Creați un proiect"
-msgid "Create an account using:"
-msgstr "Creați un cont folosind:"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr "Creați un incident. Incidentele sunt create pentru fiecare alertă declanșată."
@@ -14443,9 +14764,6 @@ msgstr "Creați versiunea"
msgid "Create requirement"
msgstr "Creați o cerință"
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr "Creați un cont de servicii"
@@ -14482,6 +14800,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr "Setați mesajul etichetei"
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "Nu aveți permisiunea de a crea un subgrup în acest grup."
@@ -14692,6 +15013,9 @@ msgstr "Creat pe"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "Am creat o ramură și un merge request pentru a rezolva această problemă."
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "S-a creat ramura „%{branch_name}†și un merge request pentru a rezolva această problemă."
@@ -14902,6 +15226,12 @@ msgstr "Cumpărați minute Pipeline"
msgid "CurrentUser|Edit profile"
msgstr "Editați profilul"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr "Unul dintre grupurile dvs. este pe punctul de a rămâne fără"
@@ -15190,9 +15520,6 @@ msgstr "nepermis pentru evenimentul de start dat"
msgid "CycleAnalytics|project dropdown filter"
msgstr "filtru derulant de proiect"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr "Vizualizarea DAG necesită cel puțin 3 joburi dependente."
@@ -15223,6 +15550,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr "Media (ultimele %{days}d)"
@@ -15493,9 +15823,6 @@ msgstr "Toate"
msgid "DashboardProjects|Personal"
msgstr "Personal"
-msgid "Dashboards"
-msgstr "Tablouri de bord"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} și %{secondProject}"
@@ -15529,6 +15856,9 @@ msgstr "Nu au fost găsite scanări anterioare pentru acest proiect"
msgid "DastConfig|Not enabled"
msgstr "Neactivat"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15610,6 +15940,9 @@ msgstr "Nu s-a putut actualiza profilul scanerului. Vă rugăm să încercați d
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "Nu s-a putut actualiza profilul site-ului. Vă rugăm să încercați din nou."
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr "Biblioteca de profiluri DAST"
@@ -15787,9 +16120,6 @@ msgstr "Profiluri de site"
msgid "DastProfiles|Site type"
msgstr "Tipul site-ului"
-msgid "DastProfiles|Spider timeout"
-msgstr "Timeout Spider"
-
msgid "DastProfiles|Submit button"
msgstr "Buton de trimitere"
@@ -15802,8 +16132,8 @@ msgstr "URL țintă"
msgid "DastProfiles|Target timeout"
msgstr "Timeout țintă"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
-msgstr "Numărul maxim de minute permise pentru ca spiderul să traverseze site-ul."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
+msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
msgstr "Numărul maxim de secunde permise pentru ca site-ul testat să răspundă la o solicitare."
@@ -16117,6 +16447,9 @@ msgstr "Ramura implicită"
msgid "Default branch and protected branches"
msgstr "Ramura implicită și ramurile protejate"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Șablonul de descriere implicit pentru probleme"
@@ -16441,18 +16774,6 @@ msgstr "În așteptarea ștergerii. Acest proiect va fi șters la %{date}. Repoz
msgid "DeletionSettings|Deletion protection"
msgstr "Protecția împotriva ștergerii"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "Numai administratorii pot șterge proiecte."
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "Proprietarii și administratorii pot șterge proiecte."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16567,12 +16888,18 @@ msgstr "Pot exista mai multe căi"
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr "Comută lista vulnerabilităților"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "Fișier(e) neacceptat(e) detectat(e)"
@@ -16591,9 +16918,6 @@ msgstr "Proxy de Dependență"
msgid "Dependency Scanning"
msgstr "Scanarea dependențelor"
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr "Listă de dependențe"
@@ -16603,6 +16927,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr "Toate elementele din cache sunt programate pentru înlăturare."
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr "Cache creat pe %{time}"
@@ -16639,18 +16966,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr "Activați Proxy de Dependență"
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr "Lista de imagini"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr "Programat pentru ștergere"
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr "Nu există imagini în cache"
@@ -16660,6 +16996,9 @@ msgstr "Pentru a vedea prefixul imaginii și ce se află în cache, vizitați %{
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr "Atunci când este activată, imaginile mai vechi de 90 de zile vor fi eliminate din cache."
@@ -16909,9 +17248,6 @@ msgstr "Nume de utilizator"
msgid "DeployTokens|Username (optional)"
msgstr "Nume de utilizator (opțional)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr "Noul dvs. nume de utilizator al Tokenului de implementare"
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17584,6 +17920,51 @@ msgstr "Limite de diff"
msgid "Diff notes"
msgstr "Notele diff-ului"
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "Diferența dintre data de început și acum"
@@ -17716,6 +18097,9 @@ msgstr "Renunțați la modificările aduse la %{path}?"
msgid "Discard draft"
msgstr "Respingeți draftul"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Notificări Discord"
@@ -18022,6 +18406,9 @@ msgstr "Trageți pentru a reordona etichetele prioritizate și a modifica priori
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "Glisați design-urile aici sau %{linkStart}faceți clic pentru a încărca%{linkEnd}."
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "Plasați sau %{linkStart}încărcați%{linkEnd} fișierul pentru a-l atașa"
@@ -18313,6 +18700,9 @@ msgstr "Editare"
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr "Timpul scurs"
@@ -18379,6 +18769,9 @@ msgstr "Notificare prin e-mail pentru înregistrările necunoscute"
msgid "Email patch"
msgstr "Patch e-mail"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "E-mail trimis"
@@ -18475,6 +18868,9 @@ msgstr "Fișier gol"
msgid "Enable"
msgstr "Activați"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr "Activați Akismet"
@@ -18511,6 +18907,9 @@ msgstr "Activați PlantUML"
msgid "Enable SSL verification"
msgstr "Activați verificarea prin SSL"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr "Activați urmărirea Snowplow"
@@ -18526,9 +18925,6 @@ msgstr "ActivaÈ›i „Ce este nouâ€: numai nivelul actual"
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "Activați acces la bara de performanță pentru non-administratori într-un grup specificat."
-msgid "Enable admin mode"
-msgstr "Activați modul admin"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr "Activați și dezactivați Service Desk. Ar putea fi necesare anumite configurări suplimentare. %{link_start}Aflați mai multe%{link_end}."
@@ -18592,6 +18988,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr "Activați sau dezactivați verificarea versiunii și serviciul Ping."
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18607,9 +19006,6 @@ msgstr "Activați verificările repozitoriului"
msgid "Enable security training"
msgstr "Activați formarea de securitate"
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Activați formarea de securitate pentru a-i ajuta pe dezvoltatorii dvs. să învețe cum să remedieze vulnerabilitățile. Dezvoltatorii pot vizualiza cursuri de formare în domeniul securității de la furnizorii educaționali selectați, relevante pentru vulnerabilitatea detectată."
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "Activați executorii partajați pentru toate proiectele și subgrupurile din acest grup."
@@ -18697,6 +19093,9 @@ msgstr "Se termină pe"
msgid "Ends: %{endsAt}"
msgstr "Se încheie: %{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "Impuneți autentificarea cu doi factori"
@@ -19012,6 +19411,9 @@ msgstr "Deschideți"
msgid "Environments|Open live environment"
msgstr "Deschideți mediul live"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "Redistribuirea mediului"
@@ -19114,15 +19516,12 @@ msgstr "Nivel de implementare"
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19135,9 +19534,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19153,9 +19549,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19165,9 +19558,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19183,10 +19573,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20092,9 +20482,6 @@ msgstr "Exportați %{requirementsCount} (de) cerințe?"
msgid "Export as CSV"
msgstr "Exportați ca CSV"
-msgid "Export commit custody report"
-msgstr "Exportați raportul de custodie al commit-ului"
-
msgid "Export group"
msgstr "Export de grup"
@@ -20221,6 +20608,9 @@ msgstr "URL-ul wiki extern"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr "Link către un wiki extern din bara laterală."
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://example.com/xxx/wiki/..."
@@ -20308,6 +20698,9 @@ msgstr "Nu s-a reușit crearea unei ramuri pentru această problemă. Vă rugăm
msgid "Failed to create a to-do item for the design."
msgstr "Nu s-a reușit crearea unei sarcini de-făcut pentru proiect."
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "Nu s-a reușit crearea framework-ului"
@@ -20323,16 +20716,13 @@ msgstr "Nu s-a reușit crearea repozitoriului"
msgid "Failed to create resources"
msgstr "Nu s-a reușit crearea resurselor"
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr "Nu s-a reușit crearea wiki-ului"
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20371,9 +20761,6 @@ msgstr "Nu s-a reușit încărcarea"
msgid "Failed to load Roadmap"
msgstr "Nu s-a reușit încărcarea foii de parcurs"
-msgid "Failed to load assignees."
-msgstr "Nu s-a reușit încărcarea responsabililor."
-
msgid "Failed to load assignees. Please try again."
msgstr "Nu s-a reușit încărcarea responsabililor. Vă rugăm să încercați din nou."
@@ -20401,18 +20788,9 @@ msgstr "Nu s-a reușit încărcarea grupurilor, a utilizatorilor și a cheilor d
msgid "Failed to load groups."
msgstr "Nu s-a reușit încărcarea grupurilor."
-msgid "Failed to load iteration cadences."
-msgstr "Nu s-a reușit încărcarea cadențelor iterației."
-
-msgid "Failed to load iterations."
-msgstr "Nu s-a reușit încărcarea iterațiilor."
-
msgid "Failed to load labels. Please try again."
msgstr "Nu s-a reușit încărcarea etichetelor. Vă rugăm să încercați din nou."
-msgid "Failed to load milestones."
-msgstr "Nu s-a reușit încărcarea reperelor."
-
msgid "Failed to load milestones. Please try again."
msgstr "Nu s-a reușit încărcarea obiectivelor. Vă rugăm să încercați din nou."
@@ -20521,6 +20899,9 @@ msgstr "Nu s-a reușit actualizarea framework-ului"
msgid "Failed to update issue status"
msgstr "Nu s-a reușit actualizarea stării problemei"
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr "Nu s-a reușit actualizarea Canary Ingress."
@@ -20815,6 +21196,9 @@ msgstr "Fișier mutat"
msgid "File name"
msgstr "Numele fișierului"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21094,9 +21478,6 @@ msgstr "Pentru fișiere mai mari decât această limită, indexați numai numele
msgid "For general work"
msgstr "Pentru lucrări generale"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr "Pentru utilizare personală, creați un cont separat cu adresa dvs. de e-mail personală, cont care să nu fie legat de domeniul sau grupul de e-mail Enterprise."
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21418,6 +21799,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr "Generați site-ul și cheile private la"
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "Generat cu date JSON"
@@ -21763,12 +22147,6 @@ msgstr "Resincronizare"
msgid "Geo|Resync all"
msgstr "Resincronizați tot"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr "Resincronizați toate cele %{projects_count} (de) proiecte"
-
-msgid "Geo|Resync project"
-msgstr "Resincronizați proiectul"
-
msgid "Geo|Retry count"
msgstr "Număr de reîncercări"
@@ -21778,12 +22156,6 @@ msgstr "Reverificare"
msgid "Geo|Reverify all"
msgstr "Reverificați tot"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr "Reverificați toate cele %{projects_count} (de) proiecte"
-
-msgid "Geo|Reverify project"
-msgstr "Reverificați proiectul"
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr "Analizați starea replicării și resincronizați și reverificați elementele cu site-ul principal."
@@ -21892,12 +22264,6 @@ msgstr "Această instanță GitLab este abonată la nivelul %{insufficient_licen
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Aceasta va resincroniza toate proiectele. S-ar putea să dureze ceva timp până la finalizare. Sunteți sigur că doriți să continuați?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Aceasta va reverifica toate proiectele. S-ar putea să dureze ceva timp până la finalizare. Sunteți sigur că doriți să continuați?"
-
msgid "Geo|Time in seconds"
msgstr "Timp în secunde"
@@ -21955,9 +22321,6 @@ msgstr "principal"
msgid "Geo|secondary"
msgstr "secundar"
-msgid "Get a free instance review"
-msgstr "Obțineți o revizuire gratuită a instanței"
-
msgid "Get a support subscription"
msgstr "Obțineți un abonament de asistență"
@@ -21979,6 +22342,9 @@ msgstr "Începeți cu urmărirea erorilor"
msgid "Get started!"
msgstr "Începeți!"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -22066,9 +22432,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr "Limita ratei API GitHub a fost depășită. Încercați din nou după %{reset_time}"
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "Import GitHub"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "*ÃŽmbinat de: %{author} la %{timestamp}*"
@@ -22165,9 +22537,6 @@ msgstr "GitLab este o platformă DevOps completă, livrată sub forma unei singu
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr "GitLab este o platformă DevOps completă, livrată sub forma unei singure aplicații, schimbând fundamental%{br_tag}modul de colaborare între echipele de Dezvoltare, Securitate și Operațiuni."
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr "GitLab este o singură aplicație pentru întregul ciclu de dezvoltare software. De la planificarea proiectului și gestionarea codului sursă la CI/CD, monitorizare și securitate."
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr "Utilizarea GitLab este gratuită. Multe caracteristici pentru echipe mai mari fac parte din %{link_start}produsele noastre plătite%{link_end}. Puteți încerca Ultimate gratuit, fără nicio obligație sau detalii de plată."
@@ -22297,7 +22666,7 @@ msgstr "Neconfirmat"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "Actualizarea configurației Pages..."
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22315,7 +22684,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr "Când este activată, toate încercările de a vă vizita site-ul web prin HTTP sunt redirecționate automat către HTTPS utilizând un răspuns cu codul de stare 301. Necesită un certificat valid pentru toate domeniile. %{docs_link_start}Aflați mai multe.%{link_end}"
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22492,22 +22861,22 @@ msgstr ""
msgid "Global notification level"
msgstr "Nivelul global de notificare"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr "%{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr "%{count} (de) rezultate implicite furnizate. Utilizați tastele săgeată sus și jos pentru a naviga în lista de rezultate ale căutării."
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22567,6 +22936,9 @@ msgstr "Merge request-uri pentru care sunt un recenzent"
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22588,18 +22960,15 @@ msgstr "Probleme recente"
msgid "GlobalSearch|Recent merge requests"
msgstr "Merge request-uri recente"
+msgid "GlobalSearch|Reset"
+msgstr ""
+
msgid "GlobalSearch|Result count is over limit."
msgstr ""
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr "Rezultatele s-au actualizat. %{count} (de) rezultate disponibile. Utilizați tastele săgeată sus și jos pentru a naviga în lista de rezultate ale căutării sau tasta ENTER pentru a trimite."
-msgid "GlobalSearch|Search"
-msgstr ""
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "Căutați în GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "Căutați proiecte, probleme etc."
@@ -22627,9 +22996,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr "A apărut o eroare la preluarea sugestiilor de autocompletare a căutării."
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22639,9 +23005,6 @@ msgstr "Tastați și apăsați tasta Enter pentru a trimite căutarea."
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "Tastați pentru ca noile sugestii să apară mai jos."
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "Utilizați tasta rapidă %{kbdOpen}/%{kbdClose} pentru a iniția o căutare"
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22756,9 +23119,6 @@ msgstr "Mergeți la pagina anterioară"
msgid "Go to previous unresolved thread"
msgstr "Mergeți la subiectul anterior nerezolvat"
-msgid "Go to primary site"
-msgstr "Mergeți la site-ul principal"
-
msgid "Go to project"
msgstr "Mergeți la proiect"
@@ -22828,6 +23188,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr "Mergeți la fragmentele dvs. de cod"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google Cloud"
@@ -22840,6 +23203,9 @@ msgstr "Proiectul Google Cloud"
msgid "Google Cloud authorizations required"
msgstr "Sunt necesare autorizări Google Cloud"
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "Anulare"
@@ -22876,10 +23242,10 @@ msgstr "Revocarea autorizațiilor"
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr "Revocarea autorizațiilor acordate către GitLab. Acest lucru nu invalidează conturile de servicii."
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22909,9 +23275,6 @@ msgstr ""
msgid "Got it"
msgstr "Am înțeles"
-msgid "Got it!"
-msgstr "Am înțeles!"
-
msgid "Grafana URL"
msgstr "URL-ul Grafana"
@@ -23050,6 +23413,9 @@ msgstr "Info grup:"
msgid "Group information"
msgstr "Informații despre grup"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "Grupați joburile după"
@@ -23143,11 +23509,14 @@ msgstr "Grupul selectat a fost importat cu succes."
msgid "GroupImport|Unable to process group import file"
msgstr "Nu se poate procesa fișierul de import de grup"
-msgid "GroupPage|Copy group ID"
-msgstr "Copiați ID-ul grupului"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "ID-ul grupului: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} – Fără dată de sfârșit"
@@ -23410,6 +23779,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23431,6 +23803,9 @@ msgstr "Insigne"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr "Aveți grijă. Schimbarea părintelui unui grup poate avea efecte secundare neintenționate. %{learn_more_link_start}Aflați mai multe.%{learn_more_link_end}"
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "Nu se poate actualiza calea de acces deoarece există proiecte din acest grup care conțin imagini Docker în registrul de containere. Vă rugăm să eliminați mai întâi imaginile din proiectele dvs. și să încercați din nou."
@@ -23473,12 +23848,21 @@ msgstr "Setări implicite pentru pipeline-ul Auto DevOps la toate proiectele din
msgid "GroupSettings|Email notifications are disabled"
msgstr "Notificările prin e-mail sunt dezactivate"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23503,6 +23887,9 @@ msgstr "Dacă vizibilitatea grupului părinte este mai mică decât vizibilitate
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "Membrii nu pot invita grupuri din afara grupului %{group} și a subgrupurilor sale"
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "Organizațiile și contactele pot fi create și asociate cu probleme."
@@ -23527,6 +23914,12 @@ msgstr "Proiectele din %{group} nu pot fi partajate cu alte grupuri"
msgid "GroupSettings|Reporting"
msgstr "Raportare"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23569,6 +23962,9 @@ msgstr "A apărut o problemă la actualizarea setărilor pipeline-ului: %{error_
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Această setare se aplică pe %{ancestor_group} și a fost suprascrisă pe acest subgrup."
@@ -23632,30 +24028,6 @@ msgstr "Grupurile sunt o modalitate excelentă de a organiza proiecte și persoa
msgid "Groups are the best way to manage projects and members."
msgstr "Grupurile sunt cel mai bun mod de a gestiona proiectele și membrii."
-msgid "GroupsDropdown|Frequently visited"
-msgstr "Frecvent vizitate"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Grupurile pe care le vizitați frecvent vor apărea aici"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Se încarcă grupurile"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "Căutați grupurile d-voastră"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Ceva nu a mers bine de partea noastră."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Ne pare rău, niciun grup nu corespunde căutării d-voastră"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "Această caracteristică necesită un browser care suportă localStorage"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23716,7 +24088,7 @@ msgstr "Creați un subgrup"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23758,7 +24130,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr "Vă rugăm să completați tokenul de acces personal."
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23881,6 +24253,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr "Creați un nou grup de nivel superior"
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "Invitat"
@@ -23935,6 +24310,15 @@ msgstr "Parola pentru numele dvs. de utilizator Harbor."
msgid "HarborIntegration|The name of the project in Harbor."
msgstr "Numele proiectului în Harbor."
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr "Utilizați Harbor ca registru de containere al acestui proiect."
@@ -24193,12 +24577,6 @@ msgstr "Ascundeți subiectul"
msgid "Hide tooltips or popovers"
msgstr "Ascundeți sfaturile ecran sau sugestiile popover"
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Ascundeți valoarea"
-msgstr[1] "Ascundeți valorile"
-msgstr[2] "Ascundeți valorile"
-
msgid "Hide values"
msgstr "Ascundeți valorile"
@@ -24217,6 +24595,9 @@ msgstr "Există un framework sau un tip de element de lucru la care aÈ›i dori sÄ
msgid "Hierarchy|Planning hierarchy"
msgstr "Ierarhia de planificare"
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24292,6 +24673,9 @@ msgstr "Menaj"
msgid "Housekeeping successfully started"
msgstr "Menajul a început cu succes"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24382,6 +24766,9 @@ msgstr ""
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24478,9 +24865,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24496,7 +24880,7 @@ msgstr "Înaintea creării contului dvs., trebuie să vă verificăm identitatea
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "Înainte de a vă autentifica, trebuie să vă verificăm identitatea. Introduceți următorul cod pe pagina de conectare."
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24508,7 +24892,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr "Nu ați primit un cod?"
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24580,6 +24967,9 @@ msgstr "Trimiteți-mi un nou cod"
msgid "IdentityVerification|Send code"
msgstr "Trimiteți codul"
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "Ceva nu a mers bine. Vă rugăm să încercați din nou."
@@ -24871,9 +25261,6 @@ msgstr "Import de grup"
msgid "Import group from file"
msgstr "Importați grupul din fișier"
-msgid "Import groups"
-msgstr "Import de grupuri"
-
msgid "Import history"
msgstr "Istoricul importului"
@@ -25051,10 +25438,10 @@ msgstr "Importarea..."
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25069,6 +25456,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25084,6 +25474,9 @@ msgstr "Repozitoriul nu a putut fi importat."
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr "Nu există un repozitoriu Git valid la această adresă URL. Dacă depozitul HTTP nu este accesibil publicului, verificați-vă acreditările."
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25570,6 +25963,9 @@ msgstr "Indică dacă acest executor poate alege joburi fără etichete"
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "Informați utilizatorii fără chei SSH încărcate că nu pot face push prin SSH până când nu adaugă una."
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr "Infrastructură"
@@ -25699,9 +26095,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr "Acest proiect este filtrat în fișierul insights.yml (consultați configurația projects.only pentru mai multe informații)."
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "Instalați GitLab Runner și asigurați-vă că rulează."
-
msgid "Installation"
msgstr "Instalare"
@@ -26089,9 +26482,6 @@ msgstr "Fișier nevalid."
msgid "Invalid format selected"
msgstr "Format nevalid selectat"
-msgid "Invalid hash"
-msgstr "Hash nevalid"
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26299,11 +26689,11 @@ msgstr "Se pot obține mai mulți membri dacă un proprietar al grupului %{trial
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
-msgstr "Nume de utilizator sau adresă de e-mail"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr "Mai aveți loc doar pentru încă %{count} %{members} în %{name}"
@@ -26629,14 +27019,14 @@ msgstr "URL-ul problemei"
msgid "IssueTracker|New issue URL"
msgstr "URL-ul noii probleme"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "URL-ul pentru crearea unei probleme în trackerul de probleme extern."
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
-msgstr "URL-ul proiectului din trackerul de probleme extern."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "URL-ul pentru a vizualiza o problemă în trackerul de probleme extern. Trebuie să conțină %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "Folosiți Bugzilla ca tracker de probleme al acestui proiect."
@@ -26740,6 +27130,12 @@ msgstr "Probleme create pe lună"
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26749,11 +27145,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Ne pare rău, filtrul dvs. nu a produs niciun rezultat"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26794,6 +27187,9 @@ msgstr "Se pare că jobul de Scanare a dependențelor a rulat cu succes, dar nu
msgid "It seems that there is currently no available data for code coverage"
msgstr "Se pare că în prezent nu există date disponibile pentru coverage de cod."
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "Sunteți dvs."
@@ -26923,6 +27319,9 @@ msgstr "Eroare la încărcarea cadențelor de iterație."
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr "Cadențe de iterație"
@@ -27052,6 +27451,9 @@ msgstr "Șablon de mapare a utilizatorilor Jira-GitLab"
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr "Nu se găsește spațiul de nume. Asigurați-vă că aveți suficiente permisiuni."
@@ -27121,15 +27523,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr "ID-ul aplicației Jira Connect"
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "URL-ul Proxy Jira Connect"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27181,6 +27583,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27229,6 +27637,9 @@ msgstr "Acreditările pentru accesarea Jira nu sunt permise pentru a accesa date
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr "Acreditările pentru accesarea Jira nu sunt valide. Verificați-vă %{docs_link_start}acreditările de integrare Jira%{docs_link_end} și încercați din nou."
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr " pe ramura %{branch_link}"
@@ -27388,7 +27799,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr "Utilizați tranziții personalizate"
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27658,6 +28069,9 @@ msgstr "Durata"
msgid "Job|Erase job log and artifacts"
msgstr "Ștergeți jurnalul jobului și artefactele"
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27667,6 +28081,9 @@ msgstr "Eșuat"
msgid "Job|Finished at"
msgstr "Terminat la"
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Artefacte de job"
@@ -27739,6 +28156,9 @@ msgstr "Căutați jurnalul de joburi"
msgid "Job|Show complete raw"
msgstr "Afișați brut complet"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr "Sărit"
@@ -27859,9 +28279,6 @@ msgstr "Cheie (PEM)"
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr "Cheie:"
@@ -27898,6 +28315,9 @@ msgstr "Chei"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27928,6 +28348,120 @@ msgstr "Clusterele Kubernetes"
msgid "Kubernetes deployment not found"
msgstr "Implementarea Kubernetes nu a fost găsită"
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -28024,6 +28558,12 @@ msgstr "Etichetele se pot aplica la probleme și la merge request-uri. Marcați
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "Etichete fără probleme în această iterație:"
@@ -28066,8 +28606,8 @@ msgstr ""
msgid "Last Accessed On"
msgstr "Ultimul acces la"
-msgid "Last Activity"
-msgstr "Ultima activitate"
+msgid "Last GitLab activity"
+msgstr ""
msgid "Last Name"
msgstr "Numele de familie"
@@ -28084,6 +28624,9 @@ msgstr "Ultimul acces la"
msgid "Last activity"
msgstr "Ultima activitate"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Ultimul commit"
@@ -28369,9 +28912,6 @@ msgstr "Configurați CI/CD pentru primul dvs. proiect"
msgid "LearnGitLab|Set up your workspace"
msgstr "Configurați-vă spațiul de lucru"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "Începeți o încercare gratuită a GitLab Ultimate"
@@ -28402,6 +28942,9 @@ msgstr "Echipa dvs. se mărește! Ați invitat cu succes noi membri ai echipei l
msgid "LearnGitlab|- Included in trial"
msgstr "- Inclus în încercare"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28417,9 +28960,6 @@ msgstr "Consultați lista de administratori"
msgid "Leave"
msgstr "Părăsiți"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "Părăsiți modul de editare? Toate modificările nesalvate vor fi pierdute."
@@ -28624,8 +29164,8 @@ msgstr "Componentă"
msgid "Licenses|Components"
msgstr "Componente"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
-msgstr "Afișează licențele detectate în proiect care nu sunt în conformitate cu politicile proiectului, pe baza %{linkStart}celei mai recente scanări de succes%{linkEnd}."
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
+msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
msgstr "Trageți fișierul de licență aici sau %{linkStart}faceți clic pentru a-l încărca%{linkEnd}."
@@ -28804,9 +29344,6 @@ msgstr "Listă"
msgid "List available repositories"
msgstr "Listați repozitoriile disponibile"
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr "Lista de locații GCP adecvate"
@@ -28840,6 +29377,9 @@ msgstr "Încărcați mai mult"
msgid "Load more users"
msgstr "Încărcați mai mulți utilizatori"
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr "Se încarcă"
@@ -28933,39 +29473,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr "Închideți discuția."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "Despre GitLab"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "Explorați GitLab"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "Începeți să lucrați"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr "Învățați GitLab"
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr "Documente GitLab"
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr "GitLab: platforma DevOps"
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr "Cum se compară GitLab"
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr "Instalați GitLab"
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr "Prețuri"
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr "Discutați cu un expert"
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28993,12 +29509,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29053,9 +29563,6 @@ msgstr "Cheia de semnare a webhook-ului HTTP Mailgun"
msgid "Mailgun events"
msgstr "Evenimente Mailgun"
-msgid "Main menu"
-msgstr "Meniul principal"
-
msgid "Maintainer"
msgstr "Întreținător"
@@ -29659,100 +30166,103 @@ msgstr "%{member_name} v-a invitat să vă alăturați la GitLab"
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr "Invitație de aderare la %{project_or_group} %{project_or_group_name}"
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30052,6 +30562,9 @@ msgstr "Aprobări de merge request-uri"
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30433,6 +30946,9 @@ msgstr "A apărut o problemă la actualizarea imaginii dvs."
msgid "MetricImages|There was an issue uploading your image."
msgstr "A apărut o problemă la încărcarea imaginii dvs."
+msgid "Metrics"
+msgstr "Metrici"
+
msgid "Metrics - Grafana"
msgstr "Metrici - Grafana"
@@ -30466,15 +30982,9 @@ msgstr "Ștergeți metrica"
msgid "Metrics|Delete metric?"
msgstr "Ștergeți metrica?"
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr "Pentru gruparea metricilor similare"
@@ -30484,15 +30994,9 @@ msgstr "Eticheta axei y (de obicei, unitatea). Axa x reprezintă întotdeauna ti
msgid "Metrics|Legend label (optional)"
msgstr "Legenda etichetei (opțional)"
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "Trebuie să fie o interogare PromQL validă."
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "Noua metrică"
@@ -30505,9 +31009,6 @@ msgstr "Documentația interogării Prometheus"
msgid "Metrics|There was an error trying to validate your query"
msgstr "A apărut o eroare în timpul încercării de validare a interogării dvs."
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr "Eticheta unității"
@@ -30544,6 +31045,9 @@ msgstr "ex. solicitări/sec"
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30769,9 +31273,15 @@ msgstr "Valoare minimă"
msgid "Minimal Access"
msgstr "Acces minim"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "Capacitatea minimă care trebuie să fie disponibilă înainte de a programa mai multe replici în mod preventiv."
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Minute"
@@ -30865,9 +31375,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30883,6 +31390,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30913,100 +31423,151 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31033,9 +31594,15 @@ msgstr "Închideți"
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "Modificat"
@@ -31603,9 +32170,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31618,9 +32182,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32050,15 +32611,15 @@ msgstr ""
msgid "No data available"
msgstr "Nu există date disponibile"
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr "Nu a fost detectată nicio implementare. Utilizați mediile pentru a controla implementarea continuă a software-ului dumneavoastră. %{linkStart}Aflați mai multe despre joburile de implementare.%{linkEnd}"
-
msgid "No deployments found"
msgstr "Nu s-au găsit implementări"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr "Nu au fost adăugați participanți prin e-mail. Fie nu a fost furnizat niciunul, fie aceștia există deja."
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "Nu a fost furnizat niciun punct final"
@@ -32164,6 +32725,9 @@ msgstr "Nicio altă etichetă cu un astfel de nume sau descriere"
msgid "No parent group"
msgstr "Niciun grup părinte"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "Niciun plan"
@@ -32311,18 +32875,6 @@ msgstr "Text normal"
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32332,6 +32884,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "Nu au fost procesate încă toate datele, precizia graficului pentru intervalul de timp selectat este limitată."
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr "Nu se aplică."
@@ -32347,6 +32902,9 @@ msgstr "Nu este disponibil(ă) pentru ramurile protejate"
msgid "Not confidential"
msgstr "Neconfidențial"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "Nu s-a găsit"
@@ -32365,6 +32923,9 @@ msgstr "Nu a început"
msgid "Not supported"
msgstr "Nu este acceptat"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Notă"
@@ -32479,6 +33040,9 @@ msgstr[0] "Recenzent: %{users}"
msgstr[1] "Recenzenți: %{users}"
msgstr[2] "Recenzenți: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr "Schimbați merge request-ul recenzentului"
@@ -32578,6 +33142,12 @@ msgstr "Notificările sunt activate."
msgid "Notify users by email when sign-in location is not recognized."
msgstr "Notificați utilizatorii prin e-mail atunci când locația de conectare nu este recunoscută."
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr "Problema creată de %{author_link} %{issue_reference_link} va expira în curând."
@@ -32626,6 +33196,12 @@ msgstr "%{paragraph_start}Bună, %{name}!%{paragraph_end} %{paragraph_start}A fo
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr "%{project_link_start}Descărcați%{project_link_end} exportul proiectului."
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32656,18 +33232,15 @@ msgstr "O actualizare a replicii remote a eșuat."
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr "După ce acesta expiră, puteți %{a_start} solicita unul nou %{a_end}."
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr "Toate discuțiile legate de merge request-ul %{mr_link} au fost rezolvate de %{name}"
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr "Și încă %{total_stripped_new_commits_count}"
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "Responsabilul a fost schimbat de la %{fromNames} la %{toNames}"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "Responsabilul a fost schimbat pentru %{toNames}"
-
msgid "Notify|Author: %{author_name}"
msgstr "Autor: %{author_name}"
@@ -32713,6 +33286,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr "Amprenta: %{fingerprint}"
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32737,6 +33313,9 @@ msgstr "Dacă nu mai doriți să utilizați acest domeniu cu GitLab Pages, vă r
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32827,6 +33406,9 @@ msgstr "Proiectul %{project_name} nu a putut fi exportat."
msgid "Notify|Project %{project_name} was exported successfully."
msgstr "Exportul proiectului %{project_name} s-a finalizat."
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr "Replicare remote"
@@ -32842,6 +33424,9 @@ msgstr "Administratorul v-a creat un cont. Acum sunteți membru al aplicației G
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "Pipeline-ul Auto DevOps a eșuat pentru pipeline-ul %{pipeline_link} și a fost dezactivat pentru %{project_link}. Pentru a utiliza pipeline-ul Auto DevOps cu proiectul dvs., vă rugăm să revizuiți %{supported_langs_link}, să vă ajustați proiectul în consecință și să activați pipeline-ul Auto DevOps în %{settings_link}."
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr "Diff-ul pentru acest fișier nu a fost inclus pentru că este prea mare."
@@ -32854,7 +33439,7 @@ msgstr "Linkul de descărcare va expira în 24 de ore."
msgid "Notify|The errors we encountered were:"
msgstr "Erorile întâlnite au fost:"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32983,6 +33568,9 @@ msgstr "Numărul de angajați"
msgid "Number of files touched"
msgstr "Numărul de fișiere atinse"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "Numărul de replici"
@@ -33001,27 +33589,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
+msgstr "Obiectul nu există pe server sau nu aveți permisiuni pentru a-l accesa"
+
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
-msgstr "Obiectul nu există pe server sau nu aveți permisiuni pentru a-l accesa"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33568,9 +34177,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr "Numai rolurile „Reporter†și mai sus pe nivelurile Premium și mai sus pot vedea Analizele Productivității."
-msgid "Oops, are you sure?"
-msgstr "Hopa, sunteți sigur?"
-
msgid "Open"
msgstr "Deschis"
@@ -33607,9 +34213,6 @@ msgstr "Deschideți o fereastră nouă"
msgid "Open raw"
msgstr "Deschideți brut"
-msgid "Open sidebar"
-msgstr "Deschideți bara laterală"
-
msgid "Open: %{open}"
msgstr "Deschis: %{open}"
@@ -33700,6 +34303,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33718,6 +34324,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33766,7 +34378,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33793,6 +34414,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33910,6 +34534,66 @@ msgstr "Prezentare generală"
msgid "Overwrite diverged branches"
msgstr "Suprascrieți ramurile divergente"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "Deținut de %{image_tag}"
@@ -33979,6 +34663,9 @@ msgstr "Pachetul a fost șters cu succes"
msgid "Package file size limits"
msgstr "Limitele de mărime a fișierelor din pachet"
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr "Rețeta pachetului există deja"
@@ -34054,6 +34741,9 @@ msgstr "Grupul de aplicații: %{group}"
msgid "PackageRegistry|App name: %{name}"
msgstr "Numele aplicației: %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr "Construit prin pipeline-ul %{link} declanșat pe %{datetime} de %{author}"
@@ -34264,6 +34954,9 @@ msgstr "Nivel de instanță"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr "Pachet invalid: extracția metadatelor a eșuat"
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr "Ultima descărcare %{dateTime}"
@@ -34324,6 +35017,12 @@ msgstr[0] "Pachetul are %{updatesCount} actualizare arhivată"
msgstr[1] "Pachetul are %{updatesCount} actualizări arhivate"
msgstr[2] "Pachetul are %{updatesCount} de actualizări arhivate"
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr "Pachet actualizat de commit-ul %{link} pe ramura %{branch}, construit de pipeline-ul %{pipeline} și publicat în registru la %{datetime}"
@@ -34348,6 +35047,9 @@ msgstr "Comanda Pip"
msgid "PackageRegistry|Project-level"
msgstr "Nivel de proiect"
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr "Publicați pachetele dacă numele sau versiunea lor se potrivește cu acest regex."
@@ -34366,6 +35068,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr "Publicat în Registrul de pachete %{project} la %{datetime}"
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -34432,6 +35137,9 @@ msgstr "Ne pare rău, filtrul dvs. nu a produs rezultate"
msgid "PackageRegistry|Source project located at %{link}"
msgstr "Proiectul sursă se află la %{link}"
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr "SHA țintă: %{sha}"
@@ -34468,6 +35176,9 @@ msgstr "Nu se pot obține informații despre versiunea pachetului."
msgid "PackageRegistry|Unable to load package"
msgstr "Nu se poate încărca pachetul"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr "Atunci când un pachet cu același nume și versiune este încărcat în registru, mai multe active sunt adăugate la pachet. Pentru a economisi spațiu de stocare, păstrați doar cele mai recente active."
@@ -34609,6 +35320,9 @@ msgstr "Autentificarea prin parolă nu este disponibilă."
msgid "Password confirmation"
msgstr "Confirmarea parolei"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "Parola a fost schimbată cu succes"
@@ -34756,6 +35470,9 @@ msgstr "Efectuați revizuiri de cod și îmbunătățiți colaborarea cu merge r
msgid "Perform common operations on GitLab project"
msgstr "Efectuați operații comune în proiectul GitLab"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "Optimizarea performanțelor"
@@ -34900,6 +35617,9 @@ msgstr "Proiectul dvs. %{projectName} nu se află într-un grup"
msgid "Phone"
msgstr "Telefon"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35317,6 +36037,30 @@ msgstr "Web IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Pipeline: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr "Adăugați %{filename}"
@@ -35377,12 +36121,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "Setările pipeline-urilor pentru „%{project_name}†au fost actualizate cu succes."
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr "„Hello world†cu GitLab Cl"
@@ -35401,9 +36139,6 @@ msgstr "Prin revocarea unui declanșator, veți întrerupe toate procesele care
msgid "Pipelines|CI lint"
msgstr "CI lint"
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35476,6 +36211,9 @@ msgstr "Se încarcă pipeline-urile"
msgid "Pipelines|Loading pipelines"
msgstr "Se încarcă pipeline-urile"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr "Mai multe informații"
@@ -35512,6 +36250,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "A apărut o eroare în timpul curățării cache-ului executorilor."
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr "Spațiul de nume %{namespace_name} mai are %{percentage}%% sau mai puține minute rămase de pipeline pentru executorii partajați. După epuizarea lor, nu se va mai executa niciun job sau pipeline nou în proiectele sale."
@@ -36430,9 +37174,6 @@ msgstr "Vizualizare payload"
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr "Artefactele anterioare"
-
msgid "Previous commit"
msgstr "Commit-ul anterior"
@@ -36628,6 +37369,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36736,6 +37480,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36856,8 +37603,8 @@ msgstr "Profil"
msgid "Profile failed to delete"
msgstr "Nu s-a reușit ștergerea profilului"
-msgid "Profile image guideline"
-msgstr "Ghid pentru imaginea de profil"
+msgid "Profile image guidelines"
+msgstr ""
msgid "Profile page:"
msgstr "Pagina de profil:"
@@ -37222,8 +37969,8 @@ msgstr "Nume de utilizator schimbat cu succes"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
-msgstr "URL-ul site-ului web"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "Pe cine reprezentați sau pentru cine lucrați."
@@ -37528,8 +38275,8 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
-msgstr "Forkuri"
+msgid "ProjectOverview|Fork"
+msgstr "Fork"
msgid "ProjectOverview|Go to your fork"
msgstr "Mergeți la forkul d-voastră"
@@ -37555,11 +38302,26 @@ msgstr "ProjectOverview: Ați atins limita proiectului"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "Trebuie să vă conectați pentru a marca un proiect cu o stea"
-msgid "ProjectPage|Copy project ID"
-msgstr "Copiați ID-ul proiectului"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "ID-ul proiectului: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr "A apărut o eroare în timpul încercării de a prelua statisticile privind calitatea proiectului"
@@ -37777,6 +38539,9 @@ msgstr "%{link_start}Ce variabile pot folosi?%{link_end}"
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr "Nu se poate alege o ramură implicită pentru un proiect gol."
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr "Opțiuni suplimentare"
@@ -37864,9 +38629,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "Personalizați insignele acestui proiect."
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37984,6 +38746,9 @@ msgstr "Lăsați necompletat pentru a utiliza șablonul implicit."
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr "Gestionați cine poate vedea proiectul în directorul de acces public."
@@ -38029,6 +38794,9 @@ msgstr "Îmbinarea este permisă numai atunci când ramura sursă este actualiza
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "Monitorizare"
@@ -38446,29 +39214,11 @@ msgstr "Proiecte cu această temă"
msgid "Projects with write access"
msgstr "Proiecte cu acces în scriere"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Vizitate frecvent"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Se încarcă proiectele"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Proiectele pe care le vizitați des vor apărea aici"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Căutați proiectele d-voastră"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Ceva nu a mers bine de partea noastră."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Ne pare rău, niciun proiect nu corespunde căutării d-voastră"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "Această caracteristică necesită un browser care suportă localStorage"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "Vă permite să clonați imediat repozitoriul acestui proiect. Săriți peste această etapă dacă intenționați să faceți un push de repozitoriu existent."
@@ -38503,6 +39253,9 @@ msgstr "Creați dintr-un șablon"
msgid "ProjectsNew|Create new project"
msgstr "Creați un nou proiect"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr "Formatul descrierii"
@@ -38566,6 +39319,9 @@ msgstr "Rulați CI/CD pentru repozitoriul extern"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr "Nivelul de vizibilitate"
@@ -39163,12 +39919,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr "Mediu"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr "Medii protejate în amonte"
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr "Încărcarea detaliilor pentru acest grup a eșuat."
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr "Nu există medii protejate în acest proiect."
@@ -39250,9 +40012,6 @@ msgstr "Ce sunt etichetele protejate?"
msgid "ProtectedTag|default"
msgstr "implicit"
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr "Sfat pro: %{linkStart}Auto DevOps%{linkEnd} folosește clusterele Kubernetes pentru a vă implementa codul!"
-
msgid "Provide Feedback"
msgstr "Oferiți feedback"
@@ -39298,6 +40057,9 @@ msgstr "Proiectele publice sunt o modalitate ușoară de a permite tuturor să a
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "Publicați pe pagina de stare"
@@ -39742,9 +40504,6 @@ msgstr "Înregistrați dispozitivul"
msgid "Register now"
msgstr "Înregistrați-vă acum"
-msgid "Register the runner with this URL:"
-msgstr "Înregistrați executorul cu acest URL:"
-
msgid "Register with two-factor app"
msgstr "Înregistrați-vă cu aplicația cu doi factori"
@@ -39922,6 +40681,9 @@ msgstr "Includeți mesajul din eticheta adnotată."
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39976,6 +40738,9 @@ msgstr "Reamintiți mai târziu"
msgid "Remote object has no absolute path."
msgstr "Obiectul remote nu are cale absolută."
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Înlăturați"
@@ -40036,6 +40801,9 @@ msgstr "Eliminați istoricul descrierilor"
msgid "Remove due date"
msgstr "Înlăturați data scadentă"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40138,6 +40906,9 @@ msgstr "Înlăturați utilizatorul din grup"
msgid "Remove user from project"
msgstr "Înlăturați utilizatorul din proiect"
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr "S-a înlăturat"
@@ -40216,6 +40987,9 @@ msgstr "Înlătură toate etichetele."
msgid "Removes an issue from an epic."
msgstr "Înlătură o problemă dintr-o epică."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40273,9 +41047,6 @@ msgstr "Redeschideți epica"
msgid "Reopen milestone"
msgstr "Redeschideți obiectivul"
-msgid "Reopen test case"
-msgstr "Redeschideți cazul de testare"
-
msgid "Reopen this %{quick_action_target}"
msgstr "Redeschideți acest / această %{quick_action_target}"
@@ -40342,9 +41113,6 @@ msgstr "Răspundeți la comentariu"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "Răspundeți direct la acest e-mail sau %{view_it_on_gitlab}."
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr "Răspunde..."
@@ -40789,6 +41557,9 @@ msgstr "Solicitări pe perioadă"
msgid "Require additional authentication for administrative tasks."
msgstr "Necesită autentificare suplimentară pentru sarcini administrative."
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40852,8 +41623,8 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr "Necesită să implementați sau să configurați Sentry găzduit în cloud."
-msgid "Requires your primary GitLab email address."
-msgstr "Necesită adresa dvs. principală de e-mail GitLab."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
+msgstr ""
msgid "Resend"
msgstr "Retrimiteți"
@@ -40921,9 +41692,6 @@ msgstr "Rezolvați conflictele de pe ramura sursă"
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr "Rezolvați subiectul"
@@ -41047,12 +41815,6 @@ msgstr "Reîncercați acest job pentru a crea resursele necesare."
msgid "Retry verification"
msgstr "Reîncercați verificarea"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Dezvăluiți valoarea"
-msgstr[1] "Dezvăluiți valorile"
-msgstr[2] "Dezvăluiți valorile"
-
msgid "Reveal values"
msgstr "Dezvăluiți valorile"
@@ -41098,6 +41860,15 @@ msgstr[0] "Revizor"
msgstr[1] "%d Revizori"
msgstr[2] "%d de Revizori"
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr "Recenzenți"
@@ -41158,9 +41929,6 @@ msgstr ""
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr "Numele regulii este deja luat."
@@ -41503,6 +42271,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41779,6 +42550,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr "Executorul a fost atribuit proiectului."
@@ -41899,7 +42673,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41908,9 +42682,6 @@ msgstr "Afișați numai cele moștenite"
msgid "Runners|Show runner installation and registration instructions"
msgstr "Afișați instrucțiunile de instalare și înregistrare a executorului"
-msgid "Runners|Show runner installation instructions"
-msgstr "Afișați instrucțiunile de instalare a executorului"
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr "Ceva nu a mers bine în timpul ștergerii. Pentru a încerca din nou, vă rugăm să reîmprospătați pagina."
@@ -42139,9 +42910,24 @@ msgstr ""
msgid "Runners|shared"
msgstr "partajat"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "Rulează"
@@ -42313,9 +43099,18 @@ msgstr "Se salvează"
msgid "Saving project."
msgstr "Se salvează proiectul."
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42334,6 +43129,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42355,21 +43153,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42394,6 +43210,9 @@ msgstr "Selectați spațiile de nume"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "Selectați profilul scanerului"
@@ -42403,6 +43222,9 @@ msgstr "Selectați profilul site-ului"
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42418,6 +43240,9 @@ msgstr "agent"
msgid "ScanExecutionPolicy|branch"
msgstr "ramura"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42478,9 +43303,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42532,34 +43354,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42586,15 +43399,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42607,7 +43414,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42760,6 +43585,9 @@ msgstr "Căutare după nume"
msgid "Search files"
msgstr "Căutați fișiere"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr "Căutați spațiul de nume"
@@ -42964,6 +43792,9 @@ msgstr "Detectarea secretelor"
msgid "Secret token"
msgstr "Token secret"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42973,6 +43804,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr "Secure Code Warrior"
@@ -43030,6 +43891,9 @@ msgstr "Tabloul de bord de securitate"
msgid "Security Finding not found"
msgstr "Detectarea de securitate nu a fost găsită"
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43117,8 +43981,8 @@ msgstr "Activați Auto DevOps"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Activați formarea de securitate pentru a-i ajuta pe dezvoltatorii dvs. să învețe cum să remedieze vulnerabilitățile. Dezvoltatorii pot vizualiza cursuri de formare în domeniul securității de la furnizorii educaționali selectați, relevante pentru vulnerabilitatea detectată."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
msgid "SecurityConfiguration|Enabled"
msgstr "Activat"
@@ -43219,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr "%{agent} pentru %{namespaces}"
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43228,6 +44095,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43246,12 +44122,18 @@ msgstr ".yaml mode"
msgid "SecurityOrchestration|.yaml preview"
msgstr "Previzualizare .yaml"
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr "Acțiuni"
msgid "SecurityOrchestration|Add action"
msgstr "Adăugare acțiune"
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43264,6 +44146,9 @@ msgstr "După anularea alertei, mesajul nu va mai fi afișat niciodată."
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "După activarea unei politici la nivel de grup, această politică se aplică automat tuturor proiectelor și subgrupurilor din acest grup."
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43294,6 +44179,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr "Sunteți sigur că doriți să ștergeți această politică? Această acțiune nu poate fi anulată."
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43306,10 +44194,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr "Alegeți un proiect"
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43318,6 +44206,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr "Creați reguli de vulnerabilitate mai solide și aplicați-le tuturor proiectelor dumneavoastră."
@@ -43390,6 +44284,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr "Nu s-a reușit încărcarea imaginilor."
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43402,7 +44299,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43417,6 +44317,9 @@ msgstr "Moștenit"
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr "Moștenit din %{namespace}"
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43432,6 +44335,9 @@ msgstr "Cea mai recentă scanare executată împotriva %{agent}"
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43459,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr "Nu s-au definit reguli - politica nu se va executa."
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43486,6 +44395,9 @@ msgstr "Numai proprietarii pot actualiza Proiectul politicii de securitate"
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr "Politici"
@@ -43573,12 +44485,18 @@ msgstr "Politica privind rezultatele scanării"
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr "Aprobări de securitate"
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr "Proiectul politicii de securitate a fost conectat cu succes"
@@ -43612,6 +44530,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr "Ceva nu a mers bine, nu se pot prelua politicile"
@@ -43645,6 +44569,12 @@ msgstr "Acest %{namespaceType} nu conține nicio politică de securitate."
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr "Acest %{namespaceType} nu este legat de un proiect de politică de securitate"
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "Acest grup"
@@ -43729,12 +44659,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr "Nu aveți încă nicio politică de securitate"
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr "toate spațiile de nume"
@@ -43771,6 +44716,9 @@ msgstr "ramuri"
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43957,6 +44905,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr "Nu are probleme"
@@ -44008,6 +44959,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr "Are probleme"
@@ -44023,12 +44977,6 @@ msgstr "Imagine"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr "Problema"
@@ -44164,6 +45112,9 @@ msgstr "Încă se detectează"
msgid "SecurityReports|Submit vulnerability"
msgstr "Trimiteți vulnerabilitatea"
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44263,6 +45214,18 @@ msgstr "Rezolvați cu formare de securitate"
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr "Formarea de la acest partener are prioritate atunci când sunt activați mai mulți parteneri de formare."
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr "Consultați pagina de exemple Scor DevOps din documentația noastră."
@@ -44530,6 +45493,9 @@ msgstr "Trimiteți notificări despre evenimentele proiectului către canalele M
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr "Trimiteți notificări despre evenimentele proiectului către un canal Discord. %{docs_link}"
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "Trimiteți un raport"
@@ -44692,9 +45658,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr "Pentru a obține ajutor la configurarea Service Desk pentru instanța dvs., vă rugăm să contactați un administrator."
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44734,6 +45706,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44794,7 +45772,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44803,6 +45784,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr "Pentru a activa Service Desk pe această instanță, un administrator de instanță trebuie mai întâi să configureze e-mailul de intrare."
@@ -45001,9 +45988,6 @@ msgstr "Configurați CI/CD"
msgid "Set up Jira Integration"
msgstr "Configurați integrarea Jira"
-msgid "Set up a %{type} runner for a project"
-msgstr "Configurați un executor %{type} pentru un proiect"
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45019,6 +46003,9 @@ msgstr "Configurați o nouă parolă"
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
msgstr "Configurați-vă proiectul pentru push și/sau pull automat către/de la un alt repozitoriu. Ramurile, etichetele și commit-urile vor fi sincronizate automat."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "Setați greutatea"
@@ -45097,21 +46084,33 @@ msgstr "Setare"
msgid "Setting enforced"
msgstr "Setare impusă"
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] "Setarea a fost salvată cu succes"
-msgstr[1] "Setările au fost salvate cu succes"
-msgstr[2] "Setările au fost salvate cu succes"
-
msgid "Settings"
msgstr "Setări"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr "Nu se pot încărca setările opțiunilor merge request-urilor. Încercați să reîncărcați pagina."
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "Severitate"
@@ -45169,27 +46168,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr "Mergeți la spațiul de lucru Shimo"
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr "Link către un spațiu de lucru Shimo din bara laterală."
-
-msgid "Shimo|Shimo"
-msgstr "Shimo"
-
-msgid "Shimo|Shimo Workspace"
-msgstr "Spațiul de lucru Shimo"
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr "URL-ul spațiului de lucru Shimo"
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr "Integrarea spațiului de lucru Shimo este activată"
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr "Ați activat integrarea spațiului de lucru Shimo. Vă puteți vizualiza wiki-ul direct în Shimo."
-
msgid "Short name"
msgstr ""
@@ -45454,9 +46432,6 @@ msgstr "Conectați-vă cu ajutorul cardului inteligent"
msgid "Sign in via 2FA code"
msgstr "Conectați-vă prin codul 2FA"
-msgid "Sign in with"
-msgstr "Conectați-vă cu"
-
msgid "Sign in with single sign-on"
msgstr "Conectați-vă cu autentificarea unică"
@@ -45505,20 +46480,14 @@ msgstr "URL-ul paginii de deconectare"
msgid "Sign-up restrictions"
msgstr "Restricții de înscriere"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "Făcând clic pe %{button_text} sau înregistrându-vă prin intermediul unei terțe părți, sunteți de acord cu%{link_start} Termenii de utilizare și acceptați Politica de confidențialitate și Politica privind cookie-urile%{link_end} a GitLab"
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "Făcând clic pe %{button_text} sau înregistrându-vă prin intermediul unei terțe părți, sunteți de acord cu%{link_start} Termenii de utilizare și acceptați Politica de confidențialitate și Politica privind cookie-urile%{link_end}"
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "Făcând clic pe %{button_text}, sunt de acord că am citit și acceptat %{link_start}Termenii de utilizare și Politica de confidențialitate%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "Făcând clic pe %{button_text}, sunt de acord că am citit și acceptat %{link_start}Termenii de utilizare și Politica de confidențialitate%{link_end} GitLab"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "Prin conectare, acceptați Termenii de utilizare și recunoașteți %{link_start}Politica de confidențialitate și Politica privind cookie-urile%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr "Prenumele este prea lung (maximum este de %{max_length} de caractere)."
@@ -45817,6 +46786,9 @@ msgstr "Smartcard"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "Autentificarea cu smartcard a eșuat: lipsește antetul certificatului clientului."
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr "Fragment de cod"
@@ -45874,6 +46846,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr "Fragmentele de cod nu pot conține fișiere goale. Asigurați-vă că toate fișierele au conținut sau ștergeți-le."
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45934,7 +46909,7 @@ msgstr ""
msgid "Something went wrong"
msgstr "Ceva nu a mers bine"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46276,9 +47251,6 @@ msgstr "Popularitate"
msgid "SortOptions|Priority"
msgstr "Prioritate"
-msgid "SortOptions|Project"
-msgstr "Proiect"
-
msgid "SortOptions|Recent last activity"
msgstr "Ultima activitate recentă"
@@ -46291,8 +47263,8 @@ msgstr "Cea mai recent marcat cu stea"
msgid "SortOptions|Size"
msgstr "Mărime"
-msgid "SortOptions|Sort by:"
-msgstr "Sortați după:"
+msgid "SortOptions|Sort by"
+msgstr ""
msgid "SortOptions|Sort direction"
msgstr "Direcția sortării"
@@ -46312,12 +47284,6 @@ msgstr "Începe în curând"
msgid "SortOptions|Title"
msgstr "Titlu"
-msgid "SortOptions|Type"
-msgstr "Tip"
-
-msgid "SortOptions|Version"
-msgstr "Versiune"
-
msgid "SortOptions|Weight"
msgstr "Greutate"
@@ -46513,6 +47479,12 @@ msgstr "Etape:"
msgid "Standard"
msgstr "Standard"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46813,9 +47785,6 @@ msgstr "Opriți terminalul"
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr "Opriți impersonarea"
-
msgid "Stop this environment"
msgstr "Opriți acest mediu"
@@ -46897,9 +47866,6 @@ msgstr "Trimiteți ca ham"
msgid "Submit as spam"
msgstr "Trimiteți ca spam"
-msgid "Submit feedback"
-msgstr "Trimiteți un feedback"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46996,6 +47962,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "Adăugați seat-uri"
@@ -47545,9 +48514,6 @@ msgstr "Schimbați branșa"
msgid "Switch branch/tag"
msgstr "Schimbați ramura/eticheta"
-msgid "Switch to GitLab Next"
-msgstr "Treceți la GitLab Next"
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47818,15 +48784,24 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47842,21 +48817,6 @@ msgstr "Calea de destinație"
msgid "Target branch"
msgstr "Ramura țintă"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48145,6 +49105,9 @@ msgstr ""
msgid "Test settings"
msgstr "Setări de testare"
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr "Mutați cazul de testare"
@@ -48340,6 +49303,9 @@ msgstr "Trackerul de probleme este locul în care puteți adăuga lucruri care t
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "Trackerul de probleme este locul în care puteți adăuga lucruri care trebuie îmbunătățite sau rezolvate într-un proiect. Vă puteți înregistra sau autentifica pentru a crea probleme pentru acest proiect."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48364,6 +49330,12 @@ msgstr "Aplicația va fi folosită acolo unde secretul clientului poate fi păst
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr "Problema asociată #%{issueId} a fost închisă, deoarece eroarea a fost rezolvată."
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "Ramura acestui proiect nu are o configurație de pipeline activă."
@@ -48382,9 +49354,6 @@ msgstr "Comentariul pe care îl editați a fost modificat de un alt utilizator.
msgid "The commit does not exist"
msgstr "Commit-ul nu există"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr "Vizualizarea comparativă poate fi inexactă din cauza conflictelor de îmbinare."
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr "Platforma DevOps completă. O singură aplicație cu posibilități infinite. Organizațiile se bazează pe managementul codului sursă, CI/CD, securitate și multe altele de la GitLab pentru a livra rapid software."
@@ -48424,17 +49393,23 @@ msgstr "Utilizatorul curent nu este autorizat să acceseze jurnalul jobului."
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr "Datele acestui pipeline sunt prea vechi pentru a fi redate sub formă de grafic. Vă rugăm să verificați fila Joburi pentru a accesa datele istorice."
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "Data la care versiunea este gata. O versiune cu o dată în viitor este etichetată ca fiind o %{linkStart}Versiune viitoare%{linkEnd}."
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr "Fișierul de configurare CI/CD implicit și calea de acces pentru proiectele noi."
@@ -48685,6 +49660,9 @@ msgstr "Numele fișierului de configurare CI/CD. Calea relativă la directorul r
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr "Numele proiectului Jenkins. Copiați numele de la sfârșitul URL-ului în proiect."
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "Numărul de modificări care trebuie preluate din GitLab atunci când se clonează un repozitoriu. Valorile mai mici pot accelera execuția pipeline-ului. Setați la %{code_open}0%{code_close} sau necompletat pentru a prelua toate ramurile și etichetele pentru fiecare lucrare."
@@ -48823,6 +49801,9 @@ msgstr "Fila specificată nu este validă, vă rugăm să selectați alta"
msgid "The start date must be earlier than the end date."
msgstr "Data de început trebuie să fie anterioară datei de sfârșit."
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr "Subiectul va fi folosit ca titlu al noii probleme, iar mesajul va fi descrierea. Sunt acceptate %{quickActionsLinkStart}acțiunile rapide%{quickActionsLinkEnd} și formatarea cu %{markdownLinkStart}Markdown%{markdownLinkEnd}."
@@ -48874,14 +49855,11 @@ msgstr "Vulnerabilitatea nu mai este detectată. Verificați dacă vulnerabilita
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr "Vulnerabilitatea nu mai este detectată. Verificați dacă vulnerabilitatea a fost remediată înainte de a-i schimba starea."
-msgid "There are currently no mirrored repositories."
-msgstr "În prezent, nu există repozitorii replicate."
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
-msgstr "Există conflicte de îmbinare"
+msgid "There are currently no mirrored repositories."
+msgstr "În prezent, nu există repozitorii replicate."
msgid "There are no GPG keys associated with this account."
msgstr "Nu există chei GPG asociate cu acest cont."
@@ -49051,6 +50029,9 @@ msgstr "A existat o problemă la preluarea etichetelor proiectului."
msgid "There was a problem fetching project users."
msgstr "A existat o problemă la preluarea utilizatorilor proiectului."
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr "A apărut o problemă la preluarea grupurilor recente."
@@ -49246,6 +50227,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr "Aceste probleme existente au un titlu similar. Ar fi mai bine să comentați acolo în loc să creați o altă problemă similară."
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr "Acești executori sunt partajați între proiectele din acest grup."
@@ -49336,9 +50320,15 @@ msgstr "Această arhivă a fost solicitată de prea multe ori. Încercați din n
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr "Acest atașament a fost trunchiat pentru a evita depășirea mărimii maxime admise a atașamentului de %{size_limit}. Au fost incluse %{written_count} din %{count} %{issuables}. Luați în considerare reexportarea cu o selecție mai restrânsă de %{issuables}."
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "Acest bloc este autoreferențial"
@@ -49375,6 +50365,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr "Acest commit a fost semnat cu o semnătură %{strong_open}verificată%{strong_close} și s-a verificat că adresa de e-mail a celui care a făcut comiterea aparține aceluiași utilizator."
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "Acest commit a fost semnat cu semnătura verificată a unui alt utilizator."
@@ -49567,9 +50560,6 @@ msgstr "Aceasta este un e-mail privat %{helpIcon} generat doar pentru dumneavoas
msgid "This is a security log of authentication events involving your account."
msgstr "Acesta este un jurnal de securitate al evenimentelor de autentificare implicând contul dumneavoastră."
-msgid "This is a self-managed instance of GitLab."
-msgstr "Aceasta este o instanță autogestionată a GitLab."
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr "Aceasta este o caracteristică experimentală dezvoltată de GitLab Incubation Engineering."
@@ -49714,12 +50704,6 @@ msgstr "Acest lucru poate expune informații confidențiale, deoarece forkul sel
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Acest lucru înseamnă că nu puteți face push de cod până când nu creați un repozitoriu gol sau importați unul existent."
-msgid "This merge request branch is protected from force push."
-msgstr "Această ramură de merge request este protejată împotriva unui push forțat."
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr "Nu se poate face un rebase al acestui merge request atât timp cât există conflicte."
-
msgid "This merge request does not have accessibility reports"
msgstr "Acest merge request nu are rapoarte de accesibilitate"
@@ -49768,6 +50752,12 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "Acest proces șterge repozitoriul proiectului și toate resursele aferente."
@@ -50413,9 +51403,6 @@ msgstr "Pentru a vă asigura că %{project_name} este deprogramat de la șterger
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr "Pentru a nu pierde conținutul personal, acest cont trebuie utilizat numai pentru aspecte legate de %{group_name}."
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr "Pentru a afla care era starea repozitoriului acestui proiect la momentul oricăreia dintre aceste versiuni, verificați %{link_start}etichetele%{link_end}"
@@ -50461,6 +51448,9 @@ msgstr "Pentru a afla mai multe despre acest proiect, citiți %{link_to_wiki}"
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr "Pentru a gestiona locurile pentru toți membrii asociați cu acest grup și subgrupurile și proiectele sale, vizitați %{link_start}pagina cotelor de utilizare%{link_end}."
+msgid "To merge, either the title or description must reference a Jira issue."
+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 "Pentru a muta sau a copia un întreg proiect GitLab de pe o altă instalație GitLab pe aceasta, navigați pe pagina de setări a proiectului original, generați un fișier de export și încărcați-l aici."
@@ -50566,8 +51556,8 @@ msgstr "Sarcina de-făcut marcată cu succes ca terminată."
msgid "Today"
msgstr "Astăzi"
-msgid "Todos count"
-msgstr "Număr de todos"
+msgid "Todos| What actions create to-do items?"
+msgstr ""
msgid "Todos|Added"
msgstr "Adăugate"
@@ -50581,9 +51571,6 @@ msgstr "Orice acțiune"
msgid "Todos|Any Type"
msgstr "Orice tip"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr "Căutați lucruri de făcut? Aruncați o privire la %{strongStart}%{openIssuesLinkStart}problemele deschise%{openIssuesLinkEnd}%{strongEnd}, contribuiți la %{strongStart}%{mergeRequestLinkStart}un merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd} sau menționați pe cineva într-un comentariu pentru a-i atribui automat un nou element de-făcut."
-
msgid "Todos|Assigned"
msgstr "Atribuite"
@@ -50641,6 +51628,9 @@ msgstr "Menționate"
msgid "Todos|Merge request"
msgstr "Merge request"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "Nu aveți nimic pe lista lucrurilor de-făcut. Bine lucrat!"
@@ -50677,6 +51667,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50719,8 +51712,8 @@ msgstr "Comutare la lista de commit-uri"
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
-msgstr "Schimbați premiul emoji"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr ""
@@ -50731,9 +51724,6 @@ msgstr "Comutați modul focalizare"
msgid "Toggle keyboard shortcuts help dialog"
msgstr "Comutați dialogul de ajutor pentru comenzi rapide de la tastatură"
-msgid "Toggle navigation"
-msgstr "Comutare navigare"
-
msgid "Toggle project select"
msgstr "Comutați selectarea proiectului"
@@ -50749,11 +51739,11 @@ msgstr "Comutați bara de performanță"
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
-msgstr "Premiul emoji :%{name}: a fost comutat."
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr "Comută premiul emoji :%{name}:"
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr "Token"
@@ -50794,18 +51784,6 @@ msgstr "S-au găsit prea mulți utilizatori. Acțiunile rapide sunt limitate la
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "Explorați"
-
-msgid "TopNav|Go back"
-msgstr "ÃŽnapoi"
-
-msgid "TopNav|Switch to"
-msgstr "Comutați la"
-
-msgid "TopNav|Your dashboards"
-msgstr "Tablourile dvs. de bord"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "Îmbinarea subiectului %{source_topic} în subiectul %{target_topic} a reușit."
@@ -50875,6 +51853,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Timpul total de testare pentru toate commit-urile/îmbinările"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "Total utilizatori"
@@ -50899,16 +51883,37 @@ msgstr ""
msgid "Tracing"
msgstr "Urmărire"
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50968,10 +51973,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51106,27 +52111,6 @@ msgstr "Afișaj arborescent"
msgid "Trending"
msgstr "Trenduri"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51142,28 +52126,19 @@ msgstr "Versiune de încercare%{planName}"
msgid "Trials|Compare all plans"
msgstr "Comparați toate planurile"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "Creați un nou grup pentru a începe perioada de încercare GitLab Ultimate."
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr "Ziua %{daysUsed}/%{duration}"
-msgid "Trials|Looking to do more with GitLab?"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51307,12 +52282,6 @@ msgstr "Opriți"
msgid "Turn on"
msgstr "Porniți"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr "Autentificarea cu doi factori"
@@ -51388,15 +52357,30 @@ msgstr "URL-ul trebuie să fie codificat în procente, dacă este necesar."
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "URL-ul trebuie să înceapă cu %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, sau %{codeStart}ftp://%{codeEnd}"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr "URL-ul instanÈ›ei Grafana către care se face legătura din elementul meniului „Tablou de bord de metriciâ€."
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr "URL-ul punctului final extern de Verificare spam"
msgid "URL of the external storage to serve the repository static objects."
msgstr "URL-ul stocării externe care servește obiectele statice ale repozitoriului."
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL-ul sau ID-ul solicitării"
@@ -51562,9 +52546,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51640,8 +52633,8 @@ msgstr "Text de răspuns necunoscut"
msgid "Unknown user"
msgstr "Utilizator necunoscut"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
-msgstr "Dacă nu se convine altfel în scris cu GitLab, făcând clic pe „Încărcare Licență†sunteți de acord că utilizarea software-ului GitLab este supusă %{eula_link_start}Termenilor și condițiilor de utilizare%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr ""
msgid "Unlimited"
msgstr "Nelimitat"
@@ -51691,6 +52684,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr "Deblochează discuția."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "Inaccesibil"
@@ -51844,6 +52840,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "Nu se poate redenumi proiectul deoarece acesta conține etichete de registru container!"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr "Nu s-a putut seta ramura implicită"
@@ -51982,8 +52981,11 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
-msgstr "%{storage_limit_link_start}O limită de stocare a spațiului de nume%{link_end} va fi în curând impusă pentru spațiul de nume %{strong_start}%{namespace_name}%{strong_end}. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
+msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
msgstr ""
@@ -51997,9 +52999,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr "Cumpărați spațiu de stocare"
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr "Pachete de cod și imagini de containere."
@@ -52021,15 +53020,15 @@ msgstr "Registrul de containere"
msgid "UsageQuota|Dependency proxy"
msgstr "Proxy de dependență"
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
msgid "UsageQuota|Filter charts by year"
msgstr ""
msgid "UsageQuota|Filter projects data by month"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "Pentru mai multe informații despre limitele de stocare, consultați %{faq_link_start}Întrebări frecvente%{link_end}."
-
msgid "UsageQuota|Git repository."
msgstr "Repozitoriul Git."
@@ -52060,8 +53059,8 @@ msgstr "Aflați mai multe despre cotele de utilizare"
msgid "UsageQuota|Learn more about usage quotas."
msgstr "Aflați mai multe despre cotele de utilizare."
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
-msgstr "Proxy local utilizat pentru imaginile Docker din amonte accesate frecvent. %{linkStart}Mai multe informații%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
+msgstr ""
msgid "UsageQuota|Month"
msgstr ""
@@ -52099,7 +53098,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52126,9 +53125,6 @@ msgstr "Ceva nu a mers bine în timpul preluării statisticilor pipeline-ului"
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr "Ceva nu a mers bine în timpul preluării statisticilor de stocare a proiectului"
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr "Ceva nu a mers bine la încărcarea detaliilor de utilizare"
-
msgid "UsageQuota|Storage"
msgstr "Stocare"
@@ -52378,12 +53374,6 @@ msgstr "Utilizați șablonul"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr "Utilizați opțiunea %{strongStart}Test%{strongEnd} menționată anterior pentru a crea un eveniment."
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr "Utilizați linkul de mai jos pentru a vă confirma adresa de e-mail (%{email})"
@@ -52396,6 +53386,12 @@ msgstr "Folosiți URL-ul instanței cloud publice (%{kroki_public_url}) sau %{in
msgid "Use the search bar on the top of this page"
msgstr "Utilizați bara de căutare din partea de sus a acestei pagini"
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52462,6 +53458,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr "Utilizatorul %{user} a fost înlăturat din %{group}."
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "ID utilizator"
@@ -52567,6 +53566,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr "Regulile de escaladare bazate pe utilizatori trebuie să aibă un utilizator cu acces la proiect."
@@ -53017,23 +54019,38 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "%{stageCount}+ elemente"
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr "%{value}luni"
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr "%{value}zile"
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr "%{value}ore"
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr "%{value}min"
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr "%{value}săp"
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|&lt;1m"
-msgstr "&lt;1min"
+msgid "ValueStreamAnalytics|&lt;1 minute"
+msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
msgstr "Numărul mediu de implementări în producție pe zi."
@@ -53050,6 +54067,9 @@ msgstr "Tablou de bord"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr "Mergeți la documente"
@@ -53152,15 +54172,6 @@ msgstr ""
msgid "Variables"
msgstr "Variabile"
-msgid "Variables can be:"
-msgstr "Variabilele pot fi:"
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr "Variabilele stochează informații, cum ar fi parolele și cheile secrete, pe care le puteți utiliza în scripturile de job. Toate proiectele din instanță pot utiliza aceste variabile."
-
msgid "Various container registry settings."
msgstr "Diverse setări ale registrului de containere."
@@ -53242,9 +54253,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr "Versiunea dvs. GitLab"
-
msgid "View File Metadata"
msgstr ""
@@ -53263,15 +54271,9 @@ msgstr ""
msgid "View all environments."
msgstr "Vizualizați toate mediile."
-msgid "View all groups"
-msgstr "Afișați toate grupurile"
-
msgid "View all issues"
msgstr "Vizualizați toate problemele"
-msgid "View all projects"
-msgstr "Afișați toate proiectele"
-
msgid "View blame"
msgstr "Vizualizați blame"
@@ -53371,6 +54373,9 @@ msgstr "Vizualizați merge request-ul deschis"
msgid "View page @ "
msgstr "Vizualizați pagina @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "Vizualizați proiectul în Zona Admin"
@@ -53404,6 +54409,9 @@ msgstr "Consultați documentația"
msgid "View the latest successful deployment to this environment"
msgstr "Vizualizați cea mai recentă implementare de succes în acest mediu"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53479,6 +54487,9 @@ msgstr "Codul Visual Studio (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Codul Visual Studio (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr "Vulnerabilități"
@@ -53548,6 +54559,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54328,6 +55342,9 @@ msgstr "Verificarea SSL"
msgid "Webhooks|Secret token"
msgstr "Token secret"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "Părți sensibile din URL"
@@ -54829,6 +55846,9 @@ msgstr "Adăugați un obiectiv"
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "Sunteți sigur că doriți să anulați editarea?"
@@ -54853,6 +55873,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr "Anulare"
+msgid "WorkItem|Child items"
+msgstr "Elemente copil"
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54898,6 +55921,9 @@ msgstr "Data scadenței"
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54934,15 +55960,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr "Obiectiv"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "Nicio iterație"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "Nicio potrivire de rezultate"
@@ -54973,9 +56011,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr "Deschis"
@@ -54997,12 +56032,15 @@ msgstr "Cerințe"
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr "Selectați tipul"
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55018,6 +56056,9 @@ msgstr "Ceva nu a mers bine la ștergerea %{workItemType}. Vă rugăm să încer
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "Ceva nu a mers bine la ștergerea sarcinii. Vă rugăm să încercați din nou."
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55027,9 +56068,6 @@ msgstr "Ceva nu a mers bine la preluarea iterațiilor. Vă rugăm să încercaț
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr "Ceva nu a mers bine la preluarea etichetelor. Vă rugăm să încercați din nou."
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "Ceva nu a mers bine la preluarea sarcinilor. Vă rugăm să reîmprospătați această pagină."
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr "Ceva nu a mers bine la preluarea tipurilor de elemente de lucru. Vă rugăm să încercați din nou"
@@ -55159,7 +56197,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55177,6 +56215,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55255,7 +56296,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55309,6 +56350,12 @@ msgstr "Scrieți-vă notele de lansare sau trageți fișierele aici…"
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr "UID extern greșit furnizat. Asigurați-vă că Auth0 este configurat corect."
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55336,6 +56383,9 @@ msgstr "Ieri"
msgid "You"
msgstr "Dvs."
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr "Aveți deja un element de făcut în așteptare pentru această alertă"
@@ -55705,10 +56755,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55762,6 +56812,9 @@ msgstr "Nu aveți nicio căutare recentă"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55792,6 +56845,9 @@ msgstr[2] "Aveți %{pendingMembersCount} de membri în așteptare care au nevoie
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "Vi s-a acordat acces de %{access_level} la %{source_link} %{source_type}"
@@ -55825,7 +56881,7 @@ msgstr "Nu aveți permisiuni suficiente pentru a configura politicile de escalad
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr "Nu aveți permisiuni suficiente pentru a crea un lucru de făcut pentru această alertă"
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55837,7 +56893,7 @@ msgstr "Nu aveți permisiuni suficiente pentru a crea un program de gardă pentr
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55870,6 +56926,9 @@ msgstr "Aveți permisiuni insuficiente de a seta contacte pentru relațiile cu c
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr "Nu aveți permisiuni suficiente pentru a actualiza un program de gardă pentru acest proiect"
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "Nu aveți permisiuni suficiente pentru a actualiza această integrare HTTP"
@@ -55909,6 +56968,9 @@ msgstr "Puteți închide obiectivul acum."
msgid "You must be authenticated to access this path."
msgstr "Trebuie să fiți autentificat pentru a accesa această cale."
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "Trebuie să fiți autentificat pentru a căuta peste tot în GitLab"
@@ -56122,6 +57184,9 @@ msgstr "Abonamentul dvs. %{strong}%{plan_name}%{strong_close} pentru %{strong}%{
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56134,6 +57199,9 @@ msgstr "Exportul dvs. CSV de %{count} din proiectul %{project_link} a fost adău
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56149,10 +57217,10 @@ msgstr "Exportul raportului CSV al lanțului de custodie pentru grupul %{group_n
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56356,6 +57424,9 @@ msgstr ""
msgid "Your name"
msgstr "Numele dvs."
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr "Noul dvs. %{accessTokenType}"
@@ -56389,6 +57460,9 @@ msgstr "Proiectele dvs."
msgid "Your public email will be displayed on your public profile."
msgstr "E-mailul dvs. public va fi afișat pe profilul dvs. public."
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr "Solicitarea dvs. de acces nu a putut fi procesată: %{error_message}"
@@ -56527,6 +57601,9 @@ msgstr "[Redacted]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr "„end_time†nu trebuie să depășească o lună după „start_timeâ€."
@@ -56761,12 +57838,12 @@ msgstr ""
msgid "cannot be changed"
msgstr "nu se poate modifica"
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr ""
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "nu se poate modifica dacă un proiect personal are etichete de registru container."
-msgid "cannot be changed since member is associated with a custom role"
-msgstr "nu se poate modifica, deoarece membrul este asociat cu un rol personalizat"
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr ""
@@ -56839,9 +57916,6 @@ msgstr "%{degradedNum} degradată(e)"
msgid "ciReport|%{improvedNum} improved"
msgstr "%{improvedNum} îmbunătățită(e)"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr "%{linkStartTag}Aflați mai multe despre rapoartele codequality %{linkEndTag}"
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr "%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} în %{path}"
@@ -56884,8 +57958,8 @@ msgstr "Analizează o versiune implementată a aplicației dvs. web pentru vulne
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "Aplicați automat patch-ul într-o ramură nouă"
-msgid "ciReport|Base pipeline codequality artifact not found"
-msgstr "Artefactul codequality al pipeline-ului de bază nu a fost găsit"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr ""
msgid "ciReport|Browser Performance"
msgstr "Performanța browserului"
@@ -56923,21 +57997,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] "Calitatea codului s-a degradat din cauza unei noi probleme"
-msgstr[1] "Calitatea codului s-a degradat din cauza a %d probleme noi"
-msgstr[2] "Calitatea codului s-a degradat din cauza a %d de probleme noi"
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] "Calitatea codului s-a îmbunătățit datorită unei probleme rezolvate"
-msgstr[1] "Calitatea codului s-a îmbunătățit datorită a %d probleme rezolvate"
-msgstr[2] "Calitatea codului s-a îmbunătățit datorită a %d de probleme rezolvate"
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr "Scanarea calității codului a detectat %{issueCount} modificări în rezultatele îmbinate"
-
msgid "ciReport|Container Scanning"
msgstr "Scanarea containerelor"
@@ -57058,15 +58117,18 @@ msgstr "Adăugat manual"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
-msgstr "Nicio modificare a calității codului"
-
msgid "ciReport|No code quality issues found"
msgstr "Nu s-au găsit probleme de calitate a codului"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr "Rezolvați cu un merge request"
@@ -57124,9 +58186,6 @@ msgstr "A apărut o eroare de respingere a vulnerabilității. Vă rugăm să î
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr "A apărut o eroare la preluarea raportului codequality."
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "A apărut o eroare la anularea respingerii. Vă rugăm să încercați din nou."
@@ -57595,6 +58654,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr "nu este validă. Grupul de iterații trebuie să se potrivească grupului de cadență de iterații."
@@ -57763,6 +58825,9 @@ msgstr "Modificări îmbinate în %{targetBranch} cu %{mergeCommitSha}%{squashed
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "Modificările nu au fost îmbinate în %{targetBranch}."
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58102,6 +59167,18 @@ msgstr "trebuie să fie un pachet Debian"
msgid "must be a boolean value"
msgstr "trebuie să fie o valoare booleană"
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58147,6 +59224,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58165,6 +59245,9 @@ msgstr "trebuie să fie în interiorul rețelei fork."
msgid "must be less than the limit of %{tag_limit} tags"
msgstr "trebuie să fie mai mic(ă) decât limita de %{tag_limit} (de) etichete"
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58198,6 +59281,9 @@ msgstr "trebuie să aibă un repozitoriu"
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr "trebuie să corespundă cu %{association}.project_id"
@@ -58438,6 +59524,9 @@ msgstr "înlăturați data de începere"
msgid "remove weight"
msgstr "înlăturați greutatea"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr "a înlăturat un link %{link_type}"
@@ -58468,9 +59557,6 @@ msgstr[2] ""
msgid "repository:"
msgstr "repozitoriu:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr "nivelul de acces de bază al rolului nu corespunde nivelului de acces al calității de membru"
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58645,6 +59731,9 @@ msgstr ""
msgid "the correct format."
msgstr "formatul corect."
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr "următoarele epice"
@@ -58654,6 +59743,9 @@ msgstr "următoarele incidente sau probleme"
msgid "the following issues"
msgstr "următoarele probleme"
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr "wiki"
diff --git a/locale/ru/gitlab.po b/locale/ru/gitlab.po
index 07157c10fdc..6194a177e15 100644
--- a/locale/ru/gitlab.po
+++ b/locale/ru/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ru\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr " %{start} по %{end}"
@@ -52,10 +52,10 @@ msgstr ""
msgid " except branch:"
msgid_plural " except branches:"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "кроме ветки:"
+msgstr[1] "кроме веток:"
+msgstr[2] "кроме веток:"
+msgstr[3] " кроме веток:"
msgid " or "
msgstr " или "
@@ -201,19 +201,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d назначенное обÑуждение"
-msgstr[1] "%d назначенных обÑуждениÑ"
-msgstr[2] "%d назначенных обÑуждений"
-msgstr[3] "%d назначенных обÑуждений"
-
msgid "%d author"
msgid_plural "%d authors"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%d автор"
+msgstr[1] "%d автора"
+msgstr[2] "%d авторов"
+msgstr[3] "%d авторов"
msgid "%d changed file"
msgid_plural "%d changed files"
@@ -250,13 +243,6 @@ msgstr[1] "%d комментариÑ"
msgstr[2] "%d комментариев"
msgstr[3] "%d комментариев"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d комментарий к Ñтому коммиту"
-msgstr[1] "%d ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ðº Ñтому коммиту"
-msgstr[2] "%d комментариев к Ñтому коммиту"
-msgstr[3] "%d комментариев к Ñтому коммиту"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d комментатор"
@@ -299,13 +285,6 @@ msgstr[1] "%d закрытых обÑуждениÑ"
msgstr[2] "%d закрытых обÑуждений"
msgstr[3] "%d закрытых обÑуждений"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d вклад"
@@ -329,10 +308,10 @@ msgstr[3] "%d дней"
msgid "%d environment found"
msgid_plural "%d environments found"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "найдено %d окружение"
+msgstr[1] "найдено %d окружениÑ"
+msgstr[2] "найдено %d окружений"
+msgstr[3] "найдено %d окружений"
msgid "%d epic"
msgid_plural "%d epics"
@@ -418,6 +397,13 @@ msgstr[1] "%d обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ ÑƒÑпешно импортированы Ñ
msgstr[2] "%d обÑуждений уÑпешно импортированы Ñ Ð¼ÐµÑ‚ÐºÐ¾Ð¹"
msgstr[3] "%d обÑуждений уÑпешно импортированы Ñ Ð¼ÐµÑ‚ÐºÐ¾Ð¹"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -476,10 +462,10 @@ msgstr[3] "%d минут"
msgid "%d month"
msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%d меÑÑц"
+msgstr[1] "%d меÑÑца"
+msgstr[2] "%d меÑÑцев"
+msgstr[3] "%d меÑÑцев"
msgid "%d more comment"
msgid_plural "%d more comments"
@@ -490,10 +476,10 @@ msgstr[3] "еще %d комментариев"
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%d пакет"
+msgstr[1] "%d пакета"
+msgstr[2] "%d пакетов"
+msgstr[3] "%d пакетов"
msgid "%d pending comment"
msgid_plural "%d pending comments"
@@ -532,10 +518,10 @@ msgstr[3] "%d проектов выбрано"
msgid "%d push"
msgid_plural "%d pushes"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%d пуш"
+msgstr[1] "%d пуша"
+msgstr[2] "%d пушей"
+msgstr[3] "%d пушей"
msgid "%d remaining"
msgid_plural "%d remaining"
@@ -560,10 +546,10 @@ msgstr[3] "%d Ñекунд"
msgid "%d snippet"
msgid_plural "%d snippets"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%d Ñниппет"
+msgstr[1] "%d Ñниппета"
+msgstr[2] "%d Ñниппетов"
+msgstr[3] "%d Ñниппетов"
msgid "%d stage"
msgid_plural "%d stages"
@@ -665,10 +651,10 @@ msgstr[3] "найдено %d предупреждений:"
msgid "%d week"
msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%d неделÑ"
+msgstr[1] "%d недели"
+msgstr[2] "%d недель"
+msgstr[3] "%d недель"
msgid "%d work item"
msgid_plural "%d work items"
@@ -679,10 +665,10 @@ msgstr[3] ""
msgid "%d year"
msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%d год"
+msgstr[1] "%d года"
+msgstr[2] "%d лет"
+msgstr[3] "%d лет"
msgid "%s additional commit has been omitted to prevent performance issues."
msgid_plural "%s additional commits have been omitted to prevent performance issues."
@@ -721,6 +707,9 @@ msgstr "%{author_link} напиÑал:"
msgid "%{authorsName}'s thread"
msgstr "тема %{authorsName}"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -767,15 +756,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -787,10 +767,10 @@ msgstr ""
msgid "%{completedCount} of %{count} checklist item completed"
msgid_plural "%{completedCount} of %{count} checklist items completed"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%{completedCount} из %{count} заданий выполнено"
+msgstr[1] "%{completedCount} из %{count} заданий выполнены"
+msgstr[2] "%{completedCount} из %{count} заданий выполнены"
+msgstr[3] "%{completedCount} из %{count} заданий выполнены"
msgid "%{completedWeight} of %{totalWeight} weight completed"
msgstr "Завершено %{completedWeight} из %{totalWeight} приоритета"
@@ -909,12 +889,6 @@ msgstr "%{days} дней до автоматичеÑкого ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ‚
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Событие Sentry: %{errorUrl}- Первый проÑмотр: %{firstSeen}- ПоÑледний проÑмотр: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}РаÑширенный поиÑк%{doc_link_end} включен."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}Узнайте об уровнÑÑ… видимоÑти.%{docs_link_end}"
@@ -951,6 +925,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "%{extra} больше загруженных Ñборочных линий"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} удален"
@@ -1125,6 +1102,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow}, и еще %{awardsListLength}"
@@ -1408,6 +1391,9 @@ msgstr[3] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} Ветка"
@@ -1452,10 +1438,10 @@ msgstr[3] ""
msgid "%{strong_start}%{errors}%{strong_end} %{prefix} finding"
msgid_plural "%{strong_start}%{errors}%{strong_end} %{prefix} findings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%{strong_start}%{errors}%{strong_end} %{prefix} вывод"
+msgstr[1] "%{strong_start}%{errors}%{strong_end} %{prefix} вывода"
+msgstr[2] "%{strong_start}%{errors}%{strong_end} %{prefix} выводов"
+msgstr[3] "%{strong_start}%{errors}%{strong_end} %{prefix} выводов"
msgid "%{strong_start}%{human_size}%{strong_end} Forked Project"
msgstr ""
@@ -1479,10 +1465,10 @@ msgstr[3] "%{strong_start}%{tag_count}%{strong_end} Тегов"
msgid "%{strong_start}%{terraform_states_count}%{strong_end} Terraform State"
msgid_plural "%{strong_start}%{terraform_states_count}%{strong_end} Terraform States"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%{strong_start}%{terraform_states_count}%{strong_end} ÑоÑтоÑние Terraform"
+msgstr[1] "%{strong_start}%{terraform_states_count}%{strong_end} ÑоÑтоÑÐ½Ð¸Ñ Terraform"
+msgstr[2] "%{strong_start}%{terraform_states_count}%{strong_end} ÑоÑтоÑний Terraform"
+msgstr[3] "%{strong_start}%{terraform_states_count}%{strong_end} ÑоÑтоÑний Terraform"
msgid "%{tabname} changed"
msgstr "%{tabname} изменено"
@@ -1517,8 +1503,11 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² %{title}"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1532,6 +1521,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1586,6 +1578,9 @@ msgstr "%{user} Ñоздал обÑуждение: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} не ÑодержитÑÑ Ð² ÑпиÑке"
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "ПоддерживаютÑÑ %{wildcards_link_start}шаблоны%{wildcards_link_end}, такие как %{code_tag_start}v*%{code_tag_end} или %{code_tag_start}*-release%{code_tag_end}."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым уровнем видимоÑти"
@@ -1619,9 +1617,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr "(Без изменений)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(прогреÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸)"
@@ -1677,9 +1693,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(не заполнÑйте, еÑли хотите оÑтавить без изменений)"
-msgid "(max size 15 MB)"
-msgstr "(макÑ. размер 15 Мбайт)"
-
msgid "(no user)"
msgstr ""
@@ -1710,7 +1723,7 @@ msgstr "+%{amount} ещё"
msgid "+ %{count} more"
msgstr "+ ещё %{count}"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1820,10 +1833,10 @@ msgstr ""
msgid "1 Code Quality finding"
msgid_plural "%d Code Quality findings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "1 вывод о качеÑтве кода"
+msgstr[1] "%d вывода о качеÑтве кода"
+msgstr[2] "%d выводов о качеÑтве кода"
+msgstr[3] "%d выводов о качеÑтве кода"
msgid "1 Day"
msgid_plural "%d Days"
@@ -2078,9 +2091,6 @@ msgstr "ОÑÐ½Ð¾Ð²Ð½Ð°Ñ Ñтраница и беÑÑÐµÑ€Ð²ÐµÑ€Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "Базовый шаблон Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ программ Linux Ñ Ð¸Ñпользованием Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "КомплекÑÐ½Ð°Ñ DevOps-платформа"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,8 +2196,8 @@ msgstr "Готовый шаблон Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ñ€Ð¸Ð
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "Готовый шаблон Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñми iOS Swift"
-msgid "A rebase is already in progress."
-msgstr "Перебазирование уже началоÑÑŒ."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "Выполнен вход в вашу учётную запиÑÑŒ Ñо Ñледующего IP-адреÑа: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr ""
msgid "API Help"
msgstr "Справка по API"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "Ключ API"
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr "Добавить правило утверждениÑ"
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Добавить дочерний Ñлемент в другой Ñлемент"
@@ -3312,9 +3361,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3468,15 +3514,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "ÐаÑтройте чаÑтоту обновлений GitLab UI."
-msgid "Admin"
-msgstr "ÐдминиÑтратор"
-
msgid "Admin Area"
msgstr "Панель управлениÑ"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "Режим ÐдминиÑтратора"
+
msgid "Admin Note"
msgstr ""
@@ -3486,9 +3532,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Режим админиÑтратора уже включен"
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4560,6 +4609,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4593,6 +4645,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4704,18 +4759,24 @@ msgstr "ПоÑле уÑпешного Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²Ñ‹ бÑ
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -5064,6 +5125,15 @@ msgstr "ТеÑтовое предупреждение теперь должно
msgid "Algorithm"
msgstr "Ðлгоритм"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Ð’Ñе"
@@ -5094,9 +5164,6 @@ msgstr ""
msgid "All environments"
msgstr "Ð’Ñе окружениÑ"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr "У вÑех пользователей должно быть имÑ."
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5208,12 +5278,18 @@ msgstr "Разрешить Ñтому ключу выполнÑÑ‚ÑŒ push в да
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Разрешено"
@@ -5235,9 +5311,6 @@ msgstr "Разрешает проектам или подгруппам в ÑÑ‚Ð
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "ПозволÑет добавлÑÑ‚ÑŒ и управлÑÑ‚ÑŒ клаÑтерами Kubernetes."
-
msgid "Almost there"
msgstr "Почти готово"
@@ -5298,9 +5371,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "ÐšÐ¾Ñ€Ð¿Ð¾Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ GitLab была Ñоздана Ð´Ð»Ñ Ð²Ð°Ñ Ð²Ð°ÑˆÐµÐ¹ организацией:"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "ÐдминиÑтратор изменил пароль вашей учётной запиÑи GitLab на %{link_to}."
@@ -5316,9 +5386,6 @@ msgstr "Приложение под названием %{link_to_client} запÑ
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "ПуÑтое значение в поле Пользователь Gitlab добавит полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ FogBugz (напр., \"От Ивана Кузнецова\") в опиÑание вÑех обÑуждений и комментариев, а также ÑвÑжет и/или назначит Ñти обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸ комментарии Ñ Ñоздателем проекта."
@@ -5394,9 +5461,6 @@ msgstr "Произошла ошибка при отключении Ñлужбы
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "При отклонении Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾ÑˆÐ»Ð° ошибка. Обновите Ñтраницу и повторите попытку."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Произошла ошибка при отключении ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ функции. Обновите Ñтраницу и повторите попытку."
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5625,12 +5689,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr "Произошла ошибка при Ñохранении изменений: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "Произошла ошибка при Ñохранении параметра"
-msgstr[1] "Произошла ошибка при Ñохранении параметров"
-msgstr[2] "Произошла ошибка при Ñохранении параметров"
-msgstr[3] "Произошла ошибка при Ñохранении параметров"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr "И Ñтот токен региÑтрации:"
-
msgid "Anonymous"
msgstr "Ðноним"
@@ -6131,6 +6200,27 @@ msgstr "Добавить комментарий Ñ %{shrug}"
msgid "Append the comment with %{tableflip}"
msgstr "Добавить комментарий Ñ %{tableflip}"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,16 +6233,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6170,9 +6257,6 @@ msgstr "Приложение"
msgid "Application ID"
msgstr "Идентификатор приложениÑ"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6714,9 +6798,6 @@ msgstr "Ðрхивные заданиÑ"
msgid "Archive project"
msgstr "Ðрхивировать проект"
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr "Ðрхивные"
@@ -6780,6 +6861,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr "Ð’Ñ‹ уверены, что хотите удалить Ñтот SSH ключ?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6795,9 +6879,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Ð’Ñ‹ точно хотите развернуть Ñто окружение?"
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "ПоÑкольку мы продолжаем Ñоздавать больше возможноÑтей Ð´Ð»Ñ SAST, мы будем рады вашему отзыву о функции наÑтройки SAST в %{linkStart}Ñтом обÑуждении%{linkEnd}."
@@ -7023,6 +7101,9 @@ msgstr "СпиÑок разделённых запÑтыми веток, котÐ
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr "ПерÑональный ключ доÑтупа пользователÑ. Пользователь должен иметь доÑтуп к задаче. Ð’Ñе комментарии — от имени Ñтого пользователÑ."
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,14 +7228,11 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr "Должно приÑутÑтвовать Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одно поле из %{one_of_required_fields}"
-msgid "At least one of group_id or project_id must be specified"
-msgstr "По крайней мере одно из значений, group_id или project_id, должно быть указано"
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr ""
+msgid "At least one of group_id or project_id must be specified"
+msgstr "По крайней мере одно из значений, group_id или project_id, должно быть указано"
msgid "At risk"
msgstr "Под угрозой"
@@ -7234,10 +7312,10 @@ msgstr "Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ"
msgid "AuditStreams|%d destination"
msgid_plural "AuditStreams|%d destinations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "AuditStreams|%d направление"
+msgstr[1] "AuditStreams|%d направлениÑ"
+msgstr[2] "AuditStreams|%d направлений"
+msgstr[3] "AuditStreams|%d направлений"
msgid "AuditStreams|A header with this name already exists."
msgstr ""
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "ÐутентификациÑ"
@@ -7647,12 +7737,6 @@ msgstr "Разрешено автоматичеÑки"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "Заметка"
@@ -7677,12 +7761,18 @@ msgstr "Ðватар будет удален. Ð’Ñ‹ уверены?"
msgid "Average per day: %{average}"
msgstr "Ð’ Ñреднем за день: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7734,9 +7824,6 @@ msgstr "Добавить значок"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Добавление значка не удалоÑÑŒ, пожалуйÑта, проверьте введенный URL и попробуйте ещё раз."
-
msgid "Badges|Badge image URL"
msgstr "URL-Ð°Ð´Ñ€ÐµÑ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐºÐ°"
@@ -7749,9 +7836,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr "Удалить значок?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Удаление значка не удалоÑÑŒ, повторите попытку."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "Значок Группы"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "СÑылка"
@@ -7797,18 +7890,21 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr "Значок был удален."
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr ""
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
msgid "Badges|Your badges"
msgstr "Ваши значки"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr ""
@@ -7818,7 +7914,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7833,7 +7929,7 @@ msgstr "ЗапуÑк Ñборочных линий CI/CD Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Atlas
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7938,9 +8034,6 @@ msgstr "Перед включением данной интеграции Ñоз
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "Перед вÑтавкой кода обÑзательно прочтите комментарий, разделÑющий каждую группу кода."
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr "Ðачать Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ коммита"
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr "Введите минимум три Ñимвола Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка."
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "Ð’Ñ‹ ÑобираетеÑÑŒ удалить %{username} из вашей подпиÑки. ЕÑли вы продолжите, пользователь будет удалён из группы %{namespace} и вÑех её подгрупп и проектов. ДейÑтвие не может быть отменено."
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "При Ñоздании цели произошла ошибка. ПожалуйÑта, попробуйте ещё раз."
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "Произошла ошибка при Ñоздании обÑуждениÑ. ПожалуйÑта, попробуйте ещё раз."
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "Произошла ошибка при Ñоздании ÑпиÑка. ПожалуйÑта, попробуйте ещё раз."
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "Произошла ошибка при получении дочерних групп. ПожалуйÑта, попробуйте ещё раз."
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr "Произошла ошибка при получении проекто
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "Возникла ошибка при получении обÑуждений. ПожалуйÑта, перезагрузите Ñтраницу."
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "Произошла ошибка при получении меток. ПожалуйÑта, перезагрузите Ñтраницу."
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "Произошла ошибка при получении ÑпиÑка целей. ПожалуйÑта, перезагрузите Ñтраницу."
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "Произошла ошибка при получении обÑуждений доÑки. ПожалуйÑта, перезагрузите Ñтраницу."
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "Произошла ошибка при получении ÑпиÑка доÑок. ПожалуйÑта, перезагрузите Ñтраницу."
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "Произошла ошибка при получении дорожек доÑки. ПожалуйÑта, перезагрузите Ñтраницу."
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "Произошла ошибка при Ñоздании ÑпиÑков. ПожалуйÑта, перезагрузите Ñтраницу."
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "Произошла ошибка при перемещении цели. ПожалуйÑта, попробуйте ещё раз."
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "Произошла ошибка при перемещении обÑуждениÑ. ПожалуйÑта, попробуйте ещё раз."
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "Произошла ошибка при удалении ÑпиÑка. ПожалуйÑта, попробуйте еще раз."
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "Произошла ошибка при обновлении ÑпиÑка. ПожалуйÑта, попробуйте еще раз."
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Свернуть"
@@ -8758,9 +8815,6 @@ msgstr "Развернуть"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8854,6 +8908,9 @@ msgstr "Ветвь уже ÑущеÑтвует"
msgid "Branch name"
msgstr "Ð˜Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8863,6 +8920,18 @@ msgstr "Ветка не загружена - %{branchId}"
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8929,15 +8998,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9013,6 +9100,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9025,6 +9115,9 @@ msgstr "Ветки"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9325,6 +9418,12 @@ msgstr "ПроÑмотр файлов"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9358,9 +9457,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,17 +9478,26 @@ msgstr "Фильтр по иÑходной группе"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr "Ошибка импорта: меÑто Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ может быть подгруппой иÑходной группы. Измените меÑто Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸ попробуйте ещё раз."
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Импорт групп из GitLab"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr ""
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9451,7 +9574,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr "ИÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr "Купить минут Ð´Ð»Ñ CI"
msgid "By %{user_name}"
msgstr "От %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "При аутентификации Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ учётной запиÑи, привÑзанной к корпоративному адреÑу Ñлектронной почты, подразумеваетÑÑ, что Ñта ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ ÑвлÑетÑÑ ÐºÐ¾Ñ€Ð¿Ð¾Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ð¼ пользователем. "
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr "Параметры автоматичеÑкого DevOps по умолч
msgid "CICD|Deployment strategy"
msgstr "Ð¡Ñ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ñ€Ð°Ð·Ð²Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,16 +9893,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr "Ðевозможно применить, так как иÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° была удалена."
@@ -10244,6 +10367,9 @@ msgstr "в %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Проверить Ñнова"
@@ -10306,10 +10432,10 @@ msgstr ""
msgid "Checkout|%d compute pack"
msgid_plural "Checkout|%d compute packs"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Checkout|%d пакет вычиÑлительного времени"
+msgstr[1] "Checkout|%d пакета вычиÑлительного времени"
+msgstr[2] "Checkout|%d пакетов вычиÑлительного времени"
+msgstr[3] "Checkout|%d пакетов вычиÑлительного времени"
msgid "Checkout|%{cardType} ending in %{lastFourDigits}"
msgstr ""
@@ -10360,6 +10486,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr "Платёжный адреÑ"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10372,6 +10501,9 @@ msgstr "Оформление"
msgid "Checkout|City"
msgstr "Город"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr "Подтвердить покупку"
msgid "Checkout|Confirming..."
msgstr "Подтверждение..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Перейти к оплате"
@@ -10444,6 +10579,9 @@ msgstr "Группа"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10501,6 +10639,9 @@ msgstr "ÐÐ´Ñ€ÐµÑ ÑƒÐ»Ð¸Ñ†Ñ‹"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "Отправка формы кредитной карты не удалаÑÑŒ Ñ ÐºÐ¾Ð´Ð¾Ð¼ %{errorCode}: %{errorMessage}"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Детали подпиÑки"
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr "Ðалоги"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "Итого"
@@ -10582,9 +10726,6 @@ msgstr "Выбрать файл..."
msgid "Choose a file"
msgstr "Выберите файл"
-msgid "Choose a group"
-msgstr "Выберите группу"
-
msgid "Choose a template"
msgstr "Выберите шаблон"
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,25 +10843,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "Диапазон дат: %{range}"
@@ -10816,6 +10984,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10903,13 +11083,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr "СоÑтоÑние"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10933,10 +11122,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr "Переменные"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11168,9 +11369,6 @@ msgstr "Завершить цель"
msgid "Close milestone"
msgstr "Закрыть Ñтап"
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr "Шаблон"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsSM|Code Suggestions"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12263,10 +12479,10 @@ msgstr ""
msgid "CodeownersValidation|Contains %d syntax error."
msgid_plural "CodeownersValidation|Contains %d syntax errors."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "CodeownersValidation|Содержит %d ÑинтакÑичеÑкую ошибку."
+msgstr[1] "CodeownersValidation|Содержит %d ÑинтакÑичеÑких ошибки."
+msgstr[2] "CodeownersValidation|Содержит %d ÑинтакÑичеÑких ошибок."
+msgstr[3] "CodeownersValidation|Содержит %d ÑинтакÑичеÑких ошибок."
msgid "CodeownersValidation|Entries with spaces"
msgstr ""
@@ -12382,6 +12598,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr "ComboSearch не определен"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12430,6 +12649,12 @@ msgstr ""
msgid "Comment"
msgstr "Комментарий"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12710,13 +12935,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,10 +13022,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12773,9 +13040,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12788,6 +13061,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13292,7 +13598,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr "Чтобы раÑширить облаÑÑ‚ÑŒ поиÑка, измениÑ
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr "У Ð½Ð°Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð¸ проблемы Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸ÐµÐ¼ к РееÑтру контейнеров. ПожалуйÑта, попробуйте обновить Ñтраницу. ЕÑли Ñта ошибка повторÑетÑÑ, пожалуйÑта, проÑмотрите %{docLinkStart}документацию по уÑтранению неполадок%{docLinkEnd}."
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "С рееÑтром контейнеров каждый проект может иметь Ñвое меÑто Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñвоих Docker образов. %{docLinkStart}ÐŸÐ¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ%{docLinkEnd}"
@@ -14069,7 +14381,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14081,6 +14393,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14144,6 +14459,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14216,9 +14534,6 @@ msgstr "Скопировать Ð¸Ð¼Ñ Ð¸Ñходной ветки"
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr "Копировать токен"
-
msgid "Copy value"
msgstr ""
@@ -14402,6 +14717,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr ""
msgid "Create a merge request"
msgstr "Создать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14495,9 +14816,6 @@ msgstr "Создать личный токен на аккаунте Ð´Ð»Ñ Ð¿Ð¾
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr "Создать аккаунт Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14627,9 +14945,6 @@ msgstr "Создать релиз"
msgid "Create requirement"
msgstr "Создать требование"
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ прав на Ñоздание подгруппы в Ñтой группе."
@@ -14876,6 +15194,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr "Создана ветка и Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние Ð´Ð»Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñтого обÑуждениÑ."
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "Создана ветка %{branch_name} и Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние Ð´Ð»Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñтого обÑуждениÑ."
@@ -15086,6 +15407,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr "Редактировать профиль"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15375,9 +15702,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr "Выпадающий фильтр проекта"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15395,10 +15719,10 @@ msgstr "DNS"
msgid "DORA4Metrics|%d project"
msgid_plural "DORA4Metrics|%d projects"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "DORA4Metrics|%d проект"
+msgstr[1] "DORA4Metrics|%d проекта"
+msgstr[2] "DORA4Metrics|%d проектов"
+msgstr[3] "DORA4Metrics|%d проектов"
msgid "DORA4Metrics|Accept testing terms"
msgstr ""
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15480,10 +15807,10 @@ msgstr ""
msgid "DORA4Metrics|Has no calculated data."
msgid_plural "DORA4Metrics|Have no calculated data."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "DORA4Metrics|Ðе имеет раÑÑчитанных данных."
+msgstr[1] "DORA4Metrics|Ðе имеют раÑÑчитанных данных."
+msgstr[2] "DORA4Metrics|Ðе имеют раÑÑчитанных данных."
+msgstr[3] "DORA4Metrics|Ðе имеют раÑÑчитанных данных."
msgid "DORA4Metrics|Have 30 or more deploys to production per day."
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr "Ð’Ñе"
msgid "DashboardProjects|Personal"
msgstr "Личные"
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} и %{secondProject}"
@@ -15716,6 +16040,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr "Ветвь по умолчанию"
msgid "Default branch and protected branches"
msgstr "Ветвь по умолчанию и защищенные ветки"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Шаблон опиÑÐ°Ð½Ð¸Ñ Ð¾Ð±Ñуждений по умолчанию."
@@ -16632,19 +16962,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "Обнаружен(ы) неподдерживаемый файл(ы)"
@@ -16786,9 +17109,6 @@ msgstr "ПрокÑи завиÑимоÑтей"
msgid "Dependency Scanning"
msgstr "Сканирование ЗавиÑимоÑтей"
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16834,18 +17157,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16855,6 +17187,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17107,9 +17442,6 @@ msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ"
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "Разница между начальной датой и нынешней"
@@ -17919,6 +18296,9 @@ msgstr "Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² %{path}?"
msgid "Discard draft"
msgstr "Удалить черновик"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord УведомлениÑ"
@@ -18227,6 +18607,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18518,6 +18901,9 @@ msgstr "Редактирование"
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18584,6 +18970,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18680,6 +19069,9 @@ msgstr "ПуÑтой файл"
msgid "Enable"
msgstr "Включить"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18716,6 +19108,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18731,9 +19126,6 @@ msgstr "Включить \"Что нового\": только текущий у
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19217,6 +19612,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr "Открыть живое окружение"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19319,15 +19717,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr "ЭкÑпортировать в CSV"
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20428,6 +20811,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20517,6 +20903,9 @@ msgstr "Ðе удалоÑÑŒ Ñоздать ветку Ð´Ð»Ñ Ñтого обÑу
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20532,16 +20921,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr "Ðе удалоÑÑŒ загрузить Ñтапы. ПожалуйÑта, попробуйте еще раз."
@@ -20730,6 +21104,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21025,6 +21402,9 @@ msgstr "Файл перемещен"
msgid "File name"
msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21976,12 +22356,6 @@ msgstr "РеÑинхронизировать"
msgid "Geo|Resync all"
msgstr "РеÑинхронизировать вÑе"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr "КоличеÑтво повторных попыток"
@@ -21991,12 +22365,6 @@ msgstr "Сверить"
msgid "Geo|Reverify all"
msgstr "Cверить вÑе"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22105,12 +22473,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr "первичный"
msgid "Geo|secondary"
msgstr "вторичный"
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr "Ðачать Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ðº"
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "Импорт из GitHub"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22510,7 +22875,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,22 +23070,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22780,6 +23145,9 @@ msgstr "ЗапроÑÑ‹ на ÑлиÑние, где Ñ Ñ€ÐµÐ²ÑŒÑŽÐµÑ€"
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,18 +23169,15 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
-msgstr "ПоиÑк в GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr ""
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22852,9 +23214,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22969,9 +23328,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr "Перейти к проекту"
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr "Перейти к Ñвоим Ñниппетам"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23053,6 +23412,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr "Готово"
-msgid "Got it!"
-msgstr "ПонÑтно!"
-
msgid "Grafana URL"
msgstr "URL Grafana"
@@ -23263,6 +23622,9 @@ msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ группе:"
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23356,11 +23718,14 @@ msgstr "Группа была уÑпешно импортирована."
msgid "GroupImport|Unable to process group import file"
msgstr "Ðевозможно обработать файл импорта группы"
-msgid "GroupPage|Copy group ID"
-msgstr "Копировать ID группы"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "ID группы: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} – Без конечной даты"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23644,6 +24012,9 @@ msgstr "Значки"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "Ðевозможно обновить путь, поÑкольку в Ñтой группе ÑущеÑтвуют проекты, Ñодержащие Docker-образы в рееÑтрах контейнеров. ПожалуйÑта, Ñначала удалите образы из Ñвоих проектов, а затем попробуйте ещё раз."
@@ -23686,12 +24057,21 @@ msgstr "ИÑпользовать по умолчанию Ñборочные ли
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr "Возникла проблема Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Эта наÑтройка применена в %{ancestor_group} и была переопределена в Ñтой подгруппе."
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr "ЧаÑто поÑещаемые"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Группы, которые вы чаÑто поÑещаете, поÑвÑÑ‚ÑÑ Ð·Ð´ÐµÑÑŒ"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Загрузка групп"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "ПоиÑк в ваших группах"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Что-то пошло не так на нашей Ñтороне."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "К Ñожалению, по вашему запроÑу групп не найдено"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "Эта функциональноÑÑ‚ÑŒ требует поддержки localStorage в вашем браузере"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr "Создать подгруппу"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,7 +24339,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24094,6 +24462,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Скрыть значение"
-msgstr[1] "Скрыть значениÑ"
-msgstr[2] "Скрыть значениÑ"
-msgstr[3] "Скрыть значениÑ"
-
msgid "Hide values"
msgstr "Скрыть значениÑ"
@@ -24433,6 +24806,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr "ОчиÑтка"
msgid "Housekeeping successfully started"
msgstr "ОчиÑтка уÑпешно запущена"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,7 +25104,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24797,6 +25179,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25090,9 +25475,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr "Указывает, может ли Ñтот обработчик зад
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "Сообщать пользователÑм без загруженных SSH ключей, что они не могут отправлÑÑ‚ÑŒ через SSH до тех пор, пока Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один не будет добавлен"
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr "ИнфраÑтруктура"
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr "ÐедопуÑтимый файл."
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26523,10 +26908,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26853,13 +27238,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26964,6 +27349,13 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr "Похоже, работа по Ñканированию завиÑимÐ
msgid "It seems that there is currently no available data for code coverage"
msgstr "Похоже, что в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÑ‚ доÑтупных данных о покрытии кода"
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "Это вы"
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Ðртефакты заданиÑ"
@@ -27964,6 +28376,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr "Показать полный иÑходный текÑÑ‚"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28084,9 +28499,6 @@ msgstr "Ключ (PEM)"
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28123,6 +28535,9 @@ msgstr "Ключи"
msgid "Ki"
msgstr "Ки"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28153,6 +28568,120 @@ msgstr "КлаÑтеры Kubernetes"
msgid "Kubernetes deployment not found"
msgstr "Развёртывание Kubernetes не найдено"
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -28250,6 +28779,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28293,7 +28828,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr "ПоÑледнее обращение"
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28311,6 +28846,9 @@ msgstr "ПоÑледний доÑтуп"
msgid "Last activity"
msgstr "ПоÑледнÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚ÑŒ"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "ПоÑледний коммит"
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28630,6 +29165,9 @@ msgstr "Ваша команда раÑÑ‚Ñ‘Ñ‚! Ð’Ñ‹ уÑпешно приглаÑ
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr "Покинуть"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "Выйти из режима редактированиÑ? Ð’Ñе неÑохраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны."
@@ -28858,7 +29393,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr "Компоненты"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr "СпиÑок"
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr "Загрузка"
@@ -29168,39 +29703,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr "Блокирует диÑкуÑÑию."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr "Мбайт"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29894,100 +30396,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr "Подтверждение запроÑов на ÑлиÑние"
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr "Метрики"
+
msgid "Metrics - Grafana"
msgstr "Метрики - Grafana"
@@ -30704,15 +31215,9 @@ msgstr "Удалить метрику"
msgid "Metrics|Delete metric?"
msgstr "Удалить метрику?"
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr "Ð”Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²ÐºÐ¸ похожих метрик"
@@ -30722,15 +31227,9 @@ msgstr "Метка оÑи Y (обычно Ñто единица измерени
msgid "Metrics|Legend label (optional)"
msgstr "Метка легенды (необÑзательно)"
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "ÐÐ¾Ð²Ð°Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ°"
@@ -30743,9 +31242,6 @@ msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾ запроÑам Prometheus"
msgid "Metrics|There was an error trying to validate your query"
msgstr "Произошла ошибка при попытке проверить ваш запроÑ"
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30782,6 +31278,9 @@ msgstr "например, запроÑов в Ñекунду"
msgid "Mi"
msgstr "Ми"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Минуты"
@@ -31104,9 +31609,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,102 +31657,153 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr "Закрыть"
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31846,9 +32408,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31861,9 +32420,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr "Ð Ð°Ð·Ð²Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ найдены"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "Точка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½Ðµ предоÑтавлена"
@@ -32408,6 +32964,9 @@ msgstr "Ðет других меток Ñ Ñ‚Ð°ÐºÐ¸Ð¼ наименованием
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "Были обработаны не вÑе данные, точноÑÑ‚ÑŒ графика Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ периода времени ограничена."
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr "ÐедоÑтупно Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰ÐµÐ½Ð½Ñ‹Ñ… веток"
msgid "Not confidential"
msgstr "Ðе конфиденциально"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32610,6 +33163,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Заметка"
@@ -32728,6 +33284,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32827,6 +33386,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32875,6 +33440,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32905,16 +33476,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32986,6 +33557,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33076,6 +33650,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33091,6 +33668,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33103,7 +33683,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr "Открыто"
@@ -33858,9 +34459,6 @@ msgstr ""
msgid "Open raw"
msgstr "Открыть иÑходник"
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr "Обзор"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34230,6 +34909,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34600,6 +35294,9 @@ msgstr "Команда pip"
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34618,6 +35315,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34684,6 +35384,9 @@ msgstr "Извините, ваш фильтр иÑключил вÑе резул
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr "Ðевозможно загрузить пакет"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34861,6 +35567,9 @@ msgstr "ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð¾ паролю недоÑтупна."
msgid "Password confirmation"
msgstr "Подтверждение паролÑ"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "Пароль уÑпешно изменён"
@@ -35008,6 +35717,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr "ВыполнÑйте обычные дейÑÑ‚Ð²Ð¸Ñ Ð½Ð°Ð´ проектом GitLab"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "ÐžÐ¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ñти"
@@ -35152,6 +35864,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Ð¡Ð±Ð¾Ñ€Ð¾Ñ‡Ð½Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "ÐаÑтройки Ñборочных линий Ð´Ð»Ñ '%{project_name}' были уÑпешно обновлены."
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35653,9 +36386,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35728,6 +36458,9 @@ msgstr "ЗагружаютÑÑ Ñборочные линии"
msgid "Pipelines|Loading pipelines"
msgstr "Загрузка Ñборочных линий"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr "Больше информации"
@@ -35764,6 +36497,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Что-то пошло не так, при очиÑтке кÑша обработчиков заданий."
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr "Предыдущий коммит"
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,7 +37850,7 @@ msgstr "Профиль"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37474,8 +38216,8 @@ msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑƒÑпешно изменено"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
-msgstr "ÐÐ´Ñ€ÐµÑ Ñайта"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr ""
@@ -37781,7 +38523,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37808,11 +38550,26 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "ID проекта: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr ""
@@ -38030,6 +38787,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "ÐаÑтройте значки Ñтого проекта."
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38282,6 +39042,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38699,29 +39462,12 @@ msgstr "Проекты Ñ Ñтим тегом"
msgid "Projects with write access"
msgstr "Проекты Ñ Ð´Ð¾Ñтупом Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "ЧаÑто поÑещаемые"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Загрузка проектов"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Проекты, которые вы чаÑто поÑещаете, будут отображатьÑÑ Ð·Ð´ÐµÑÑŒ"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "ПоиÑк по вашим проектам"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "У Ð½Ð°Ñ Ñ‡Ñ‚Ð¾-то пошло не так."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "К Ñожалению, по вашему запроÑу проекты не найдены"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "Эта функциональноÑÑ‚ÑŒ требует поддержки localStorage в вашем браузере"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "ПозволÑет вам Ñразу клонировать репозиторий. ПропуÑтите Ñтот пункт, еÑли вы планируете загрузить ÑущеÑтвующий репозиторий."
@@ -38756,6 +39502,9 @@ msgstr "Создать из шаблона"
msgid "ProjectsNew|Create new project"
msgstr "Создать новый проект"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr "Ðапишите неÑколько Ñлов про проект"
@@ -38819,6 +39568,9 @@ msgstr "ЗапуÑтить CI/CD Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ репозиториÑ"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr "Уровень доÑтупа"
@@ -39418,12 +40170,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39505,9 +40263,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr "Совет: %{linkStart}Auto DevOps%{linkEnd} иÑпользует клаÑтеры Kubernetes Ð´Ð»Ñ Ñ€Ð°Ð·Ð²ÐµÑ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ кода!"
-
msgid "Provide Feedback"
msgstr ""
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ помощи приложениÑ"
@@ -40179,6 +40934,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40233,6 +40991,9 @@ msgstr "Ðапомнить позже"
msgid "Remote object has no absolute path."
msgstr "Удаленный объект не имеет абÑолютного пути."
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Удалить"
@@ -40293,6 +41054,9 @@ msgstr "Удалить иÑторию опиÑаний"
msgid "Remove due date"
msgstr "Убрать Ñрок выполнениÑ"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr "Удалить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· группы"
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40473,6 +41240,9 @@ msgstr "УдалÑет вÑе метки."
msgid "Removes an issue from an epic."
msgstr "УдалÑет обÑуждение из цели."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr "Открыть цель повторно"
msgid "Reopen milestone"
msgstr "Вновь открыть Ñтап"
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40599,9 +41366,6 @@ msgstr "Ответить на комментарий"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41312,13 +42076,6 @@ msgstr "Повторите Ñту задание, чтобы Ñоздать не
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Показать значение"
-msgstr[1] "Показать значениÑ"
-msgstr[2] "Показать значениÑ"
-msgstr[3] "Показать значениÑ"
-
msgid "Reveal values"
msgstr "Показать значениÑ"
@@ -41365,6 +42122,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41775,6 +42538,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42053,6 +42819,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,9 +42951,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42415,9 +43181,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "ВыполнÑетÑÑ"
@@ -42589,9 +43370,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42679,6 +43493,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43251,6 +44074,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr "Панель безопаÑноÑти"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,7 +44263,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44311,12 +45260,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44453,6 +45396,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "Отправить отчёт"
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr "ÐаÑтройка CI/CD"
msgid "Set up Jira Integration"
msgstr "ÐаÑтроить интеграцию Ñ Jira"
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr "ÐаÑтройте Ñвой проект, чтобы автоматичеÑки загружать и/или Ñкачивать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²/из другого репозиториÑ. Ветки, теги и коммиты будут ÑинхронизироватьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "УÑтановить приоритет"
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr "ÐаÑтройки"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr "Войдите, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñмарт-карту"
msgid "Sign in via 2FA code"
msgstr "Войти Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ 2FA"
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45796,19 +46765,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr "ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтрации"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46108,6 +47071,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46567,9 +47536,6 @@ msgstr "ПопулÑронÑÑ‚ÑŒ"
msgid "SortOptions|Priority"
msgstr "Приоритет"
-msgid "SortOptions|Project"
-msgstr "Проект"
-
msgid "SortOptions|Recent last activity"
msgstr "По поÑледней активноÑти"
@@ -46582,7 +47548,7 @@ msgstr "Сначала недавно избранные"
msgid "SortOptions|Size"
msgstr "Размер"
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46603,12 +47569,6 @@ msgstr "Ðачатые недавно"
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr "По типу"
-
-msgid "SortOptions|Version"
-msgstr "По верÑии"
-
msgid "SortOptions|Weight"
msgstr "Приоритет"
@@ -46804,6 +47764,13 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47104,9 +48071,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr "ОÑтановить Ñто окружение"
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr "Отправить отзыв"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "Добавить меÑта"
@@ -47837,9 +48801,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr "Переключить ветка/тег"
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48117,9 +49081,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr ""
msgid "Target branch"
msgstr "Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð²ÐµÑ‚ÐºÐ°"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48442,6 +49397,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48638,6 +49596,9 @@ msgstr "Трекер обÑуждений - Ñто меÑто, где можно
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "Трекер обÑуждений - Ñто меÑто, где можно обÑудить то, что необходимо улучшить или иÑправить в проекте. Можете зарегиÑтрироватьÑÑ Ð¸Ð»Ð¸ войти в ÑиÑтему, поÑле чего Ñоздавать обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñтого проекта."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "Ветка Ð´Ð»Ñ Ñтого проекта не имеет активной конфигурации Ñборочной линии."
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr "Этот коммит не ÑущеÑтвует"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,16 +49686,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48985,6 +49955,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49123,6 +50096,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,13 +50150,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
-msgstr ""
-
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "Этот коммит был подпиÑан верифицированной подпиÑью другого пользователÑ."
@@ -49867,9 +50855,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Это означает, что вы не можете отправить код, пока не Ñоздадите пуÑтой репозиторий или не импортируете ÑущеÑтвующий."
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 в другой, перейдите на Ñтраницу наÑтроек иÑходного проекта, Ñоздайте файл ÑкÑпорта и загрузите его здеÑÑŒ."
@@ -50869,7 +51855,7 @@ msgstr "Задача отмечена как выполненнаÑ."
msgid "Today"
msgstr "СегоднÑ"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50944,6 +51927,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51022,7 +52011,7 @@ msgstr "Открыть или закрыть ÑпиÑок коммитов"
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51052,10 +52038,10 @@ msgstr "Показать/Ñкрыть панель производительнÐ
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "Обзор"
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr "Перейти к"
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "Тег %{source_topic} был уÑпешно объединен Ñ Ñ‚ÐµÐ³Ð¾Ð¼ %{target_topic}."
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Общее Ð²Ñ€ÐµÐ¼Ñ Ñ‚ÐµÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð¸ÐºÑаций/ÑлиÑний"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr "ТраÑÑировка"
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr ""
msgid "Trending"
msgstr "ПопулÑрные"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr "Ð”Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ"
@@ -51693,15 +52660,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,7 +52936,7 @@ msgstr "ÐеизвеÑтный текÑÑ‚ ответа"
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr "Разблокирует диÑкуÑÑию."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "Ðе удаетÑÑ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ñ‚ÑŒ проект, потому что он Ñодержит теги рееÑтра контейнеров!"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr "Ðе удалоÑÑŒ уÑтановить ветку по умолчанию"
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52326,13 +53323,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "Хранилище"
@@ -52683,12 +53677,6 @@ msgstr "ИÑпользовать шаблон"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53323,22 +54323,42 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "%{stageCount}+ Ñлементов"
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr "Переменные"
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53548,9 +54562,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr "ПроÑмотреть вÑе группы"
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr "ПроÑмотреть вÑе проекты"
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr "ПроÑмотреть открытый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr "ПроÑмотр поÑледнего уÑпешного Ñ€Ð°Ð·Ð²Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð² Ñто окружение"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55140,6 +56160,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55309,12 +56347,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr "Ðапишите Ñвои заметки к релизу или пере
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55648,6 +56698,9 @@ msgstr "Вчера"
msgid "You"
msgstr "Ð’Ñ‹"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56223,6 +57285,9 @@ msgstr "Теперь вы можете закрыть Ñтап."
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr "Ваше имÑ"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56705,6 +57779,9 @@ msgstr "Ваши проекты"
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,12 +58161,12 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr ""
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "невозможно изменить, еÑли в личном проекте еÑÑ‚ÑŒ метки рееÑтра контейнеров."
-msgid "cannot be changed since member is associated with a custom role"
-msgstr ""
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr ""
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr "Сканирование контейнеров"
@@ -57385,15 +58445,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57451,9 +58514,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr "удалить приоритет"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58816,9 +59906,6 @@ msgstr[3] ""
msgid "repository:"
msgstr "репозиторий:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59004,6 +60094,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/si_LK/gitlab.po b/locale/si_LK/gitlab.po
index 5095e8199b8..77b0288e12b 100644
--- a/locale/si_LK/gitlab.po
+++ b/locale/si_LK/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: si-LK\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr " %{start} සිට %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "අදහස් %d"
msgstr[1] "අදහස් %d"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "අදහස්කරුවන් %d"
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "දà·à¶ºà¶šà¶­à·Šâ€à·€ %d"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr "%{author_link} ලිවීය:"
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@සමà·à¶œà¶¸.ලංකà·"
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} මà·à¶šà·’ණි"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow}, සහ තවත් %{awardsListLength}"
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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}"
@@ -1275,8 +1265,11 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "%{title} වෙනස්කම්"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} නොමිලේ)"
@@ -1290,6 +1283,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} නොමිලà·
msgid "%{total_warnings} warning(s) found:"
msgstr "අවවà·à¶¯ %{total_warnings}ක් හමුවිය:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr "(වෙනස්කම් නà·à¶­)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(වෙනස් නොකළ යුතු නම් හිස්ව තබන්න)"
-msgid "(max size 15 MB)"
-msgstr "(උ. ප්â€à¶»à¶¸à·à¶«à¶º මෙ.බ. 15)"
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr "තවත් + %{amount}"
msgid "+ %{count} more"
msgstr "තවත් + %{count}"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr "යෙ.ක්â€à¶».මු. උදව්"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "යෙ.ක්â€à¶».මු. යතුර"
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr "අනුමත රීතියක් යොදන්න"
msgid "Add approvers"
msgstr "අනුමතකරුවන් යොදන්න"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr "පරිපà·à¶½à¶š"
-
msgid "Admin Area"
msgstr "පරිපà·à¶½à¶± පෙදෙස"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "පරිපà·à¶½à¶š ආකà·à¶»à¶º"
+
msgid "Admin Note"
msgstr "පරිපà·à¶½à¶šà¶œà·š සටහන"
@@ -3188,9 +3238,6 @@ msgstr "පරිපà·à¶½à¶šà¶œà·š දà·à¶±à·”ම්දීම්"
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "පරිපà·à¶½à¶š ආකà·à¶»à¶º දà·à¶±à¶§à¶¸à¶­à·Š සබලයි"
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr "ප්â€à¶»à¶½à·šà¶›à¶±"
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "පරිපà·à¶½à¶šà¶ºà·’න්"
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "අකිස්මෙට්"
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "සියල්ල"
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr "සියළු පරිසර"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr "සියළුම පරිà·à·Šâ€à¶»à·“ලකයින්ට නමà
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "ඉඩ දී ඇත"
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "Opstrace අනුකලනයක් භà·à·€à·’තයෙන් දà·à·‚ නිරීක්ෂණයට ව්â€à¶ºà·à¶´à·˜à¶­à·’ වලට ඉඩදෙන්න."
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr "ඉතà·à¶¸ ආසන්නයි!"
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr "ඔබගේ à·ƒà·à¶šà·ƒà·”ම් ලබ෠ගà·à¶±à·“මේදී à¶
msgid "An error occurred while saving changes: %{error}"
msgstr "වෙනස්කම් සුරà·à¶šà·“මේදී දà·à·‚යකි: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "à·ƒà·à¶šà·ƒà·”ම සුරà·à¶šà·“මේදී දà·à·‚යක් ඇති විය"
-msgstr[1] "à·ƒà·à¶šà·ƒà·”ම් සුරà·à¶šà·“මේදී දà·à·‚යක් ඇති විය"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "ඔබගේ à·ƒà·à¶šà·ƒà·”ම් සුරà·à¶šà·“මේදී දà·à·‚යක් ඇති විය. යළි සුරà·à¶šà·“මට බලන්න."
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr "ගොනුව විà·à·Šà¶½à·šà·‚ණය වෙමින්…"
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr "නිර්නà·à¶¸à·’ක"
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "ඔබගේ බලපත්â€à¶»à¶ºà·š ගොනුව මෙතà·à¶±à¶§ අදින්න à·„à· %{linkStart}උඩුගත කිරීමට%{linkEnd} ඔබන්න."
@@ -5841,16 +5937,13 @@ msgstr "දà·à·‚යකි: ඔබ පෞද්. යතුරේ ගොනුව
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr "ඔබගේ වත්මන් පෞද්. යතුර භà·à·€à·’තයට හිස්ව තබන්න."
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "යෙදුම"
msgid "Application ID"
msgstr "යෙදුමේ à·„à·à¶³à·”."
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr "යෙදුමේ සීම෠සà·à¶»à·Šà¶®à¶šà·€ සුරà·à¶šà·’ණි"
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr "ව්â€à¶ºà·à¶´à·˜à¶­à·’ය සංරක්â€à·‚ණය"
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr "සංරක්â€à·‚ිතයි"
@@ -6458,6 +6545,9 @@ msgstr "ඔබට මෙම %{commentType} මà·à¶šà·“මට වුවමනà·
msgid "Are you sure you want to delete this SSH key?"
msgstr "ඔබට මෙම SSH යතුර මà·à¶šà·“මට වුවමන෠ද?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "ඔබට මෙම අදහස මà·à¶šà·“මට වුවමන෠ද?"
@@ -6473,9 +6563,6 @@ msgstr "ඔබට මෙම නම්පත මà·à¶šà·“මට වුවමනà·
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr "සිදුවීම් තà·à¶»à¶±à·Šà¶±"
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "සටහන"
@@ -7337,12 +7427,18 @@ msgstr "ප්â€à¶»à¶­à·’රූපය ඉවත් කෙරේ. ඔබට à·€à
msgid "Average per day: %{average}"
msgstr "දිනකට à·ƒà·à¶¸à·à¶±à·Šâ€à¶ºà¶º: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "ආපසු"
@@ -7394,9 +7490,6 @@ msgstr "චිහ්නයක් යොදන්න"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "චිහ්නය එක් කිරීම අසමත්! ඇතුල් කළ ඒ.à·ƒ.නි. පරීක්â€à·‚෠කර යළි උත්සà·à·„ කරන්න."
-
msgid "Badges|Badge image URL"
msgstr "චිහ්න රූපයෙහි ඒ.ස.නි."
@@ -7409,9 +7502,6 @@ msgstr "චිහ්නට සුරà·à¶šà·’ණි."
msgid "Badges|Delete badge?"
msgstr "චිහ්නය මකන්නද?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr "වලංගු ඒ.ස.නි. යොදන්න"
msgid "Badges|Example: %{exampleUrl}"
msgstr "නිදසුන: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "සමූහයේ චිහ්නය"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "සබà·à¶³à·’ය"
@@ -7457,18 +7556,21 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr "චිහ්නය මක෠දà·à¶¸à·’ණි."
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr "මෙම සමූහයේ චිහ්න නà·à¶­, ඉහත අළුතින් සෑදීමට à·„à·à¶šà·’ය."
-
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "ඔබ මෙම චිහ්නය මà·à¶šà·“මට à·ƒà·à¶»à·ƒà·™à¶ºà·’. මක෠දà·à¶¸à·– චිහ්න ප්â€à¶»à¶­à·Šâ€à¶ºà¶»à·Šà¶´à¶«à¶º කිරීමට %{strongStart}නොහà·à¶šà·’යි.%{strongEnd}"
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr ""
msgid "Badges|Your badges"
msgstr "ඔබගේ චිහ්න"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr ""
@@ -7478,8 +7580,8 @@ msgstr "බà·à¶¸à·Šà¶¶à·– ඒ.à·ƒ.නි."
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
-msgstr "බà·à¶¸à·Šà¶¶à·– සේවà·à·€à·š මූල ඒ.à·ƒ.නි."
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr "නව තà·à¶±à·“මේ යතුරක් යොදන්න"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr "සෘජු à·ƒà·à¶¸à·à¶¢à·’කත්ව"
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "ඔබගේ නà·à·„à·à·ƒà·”ම අවසන් වූ පසු සියළුම à·ƒà·à¶¸à·à¶¢à·’කයින්ට සමූහය වෙත තවදුරටත් ප්â€à¶»à·€à·šà· වීමට ගෙවන à·ƒà·à¶½à·ƒà·”මකට උත්à·à·Šâ€à¶»à·šà¶«à·’ කිරීමට à·„à·à¶šà·’ය."
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "නම්පත් ගà·à¶±à·“මේදී දà·à·‚යක් ඇති විය. පිටුව යළි පූරණය කරන්න."
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr "සන්ධිස්ථà·à¶± ලබ෠ගà·à¶±à·“මේදී දà·
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "ලේඛන උත්පà·à¶¯à¶±à¶ºà·šà¶¯à·“ දà·à·‚යක් ඇති විය. පිටුව යළි පූරණය කරන්න."
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "ලේඛනය ඉවත් කිරීමේදී දà·à·‚යක් ඇති විය. යළි උත්සà·à·„ කරන්න."
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "හකුළන්න"
@@ -8410,9 +8473,6 @@ msgstr "දිගහරින්න"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr "à·à·à¶›à·à·€ ගෙන ඇත"
msgid "Branch name"
msgstr "à·à·à¶›à·à·€à·š නම"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr "à·à·à¶›à·à·€à·š නීති"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr "කේත හිමිකරුවන්ගේ අනුමà·à¶­à·’à
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "à·à·à¶›à·"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "ගොනු පිරික්සන්න"
msgid "Browse templates"
msgstr "අච්චු පිරික්සන්න"
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr "ගමනà·à¶±à·Šà¶­à¶º"
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,17 +9136,26 @@ msgstr "මූලà·à·à·Šâ€à¶» සමූහයට අනුව පෙරන්
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr "ඉතිහà·à·ƒà¶º"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
-msgstr "ගිට්ලà·à¶¶à·Š වෙතින් සමූහ ආයà·à¶­ කරන්න"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr ""
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr "සමූහය ආයà·à¶­à¶ºà¶§ අසමත් විය."
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr "මූලà·à·à·Šâ€à¶»à¶º"
msgid "BulkImport|Source group"
msgstr "මූලà·à·à·Šâ€à¶» සමූහය"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr "පෙරනිමි පරිදි සියළුම ව්â€à¶ºà·à¶´à·˜à¶­à·’ සහ සමූහ ගà·à¶½à·“ය දà·à¶±à·”ම්දීමේ à·ƒà·à¶šà·ƒà·”ම භà·à·€à·’ත෠කරයි."
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr "CVE à·„à·à¶³à·”. ඉල්ලන්න"
msgid "CVE|Why Request a CVE ID?"
msgstr "CVE à·„à·à¶³à·”. ඉල්ලන්නේ ඇයි?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "නà·à·€à¶­ පරීක්â€à·‚à·à·€"
@@ -10006,6 +10138,9 @@ msgstr "නොදන්න෠දà·à·‚යක් සිදුවී ඇත. මà
msgid "Checkout|Billing address"
msgstr "ලදුපත් ලිපිනය"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "CI විනà·à¶©à·’"
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr "නගරය"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr "මිලදී ගà·à¶±à·“ම තහවුරුව"
msgid "Checkout|Confirming..."
msgstr "තහවුරු වෙමින්..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "ලදුපතට දිගටම"
@@ -10090,6 +10231,9 @@ msgstr "සමූහය"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr "වීදියේ ලිපිනය"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr "ගොනුව තà·à¶»à¶±à·Šà¶±..."
msgid "Choose a file"
msgstr "ගොනුවක් තà·à¶»à¶±à·Šà¶±"
-msgid "Choose a group"
-msgstr "සමූහයක් තà·à¶»à¶±à·Šà¶±"
-
msgid "Choose a template"
msgstr "අච්චුවක් තà·à¶»à¶±à·Šà¶±"
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "දින පරà·à·ƒà¶º: %{range}"
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr "සියල්ල පෙන්වන්න"
msgid "CodeOwner|Pattern"
msgstr "රටà·à·€"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr "විධà·à¶± නොයෙදිණි"
msgid "Comment"
msgstr "අදහස"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr "සම්පූර්ණයි"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr "කà·à·‚්ඨ ආචයනය සකසන්න."
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr "ඔබගේ සෙවීම පුළුල් කිරීමට, ඉà
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr "දà·à¶ºà¶šà¶ºà·"
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr "සමූහයක් à·ƒà·à¶¯à¶±à·Šà¶±"
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr "සේව෠ගිණුමක් à·ƒà·à¶¯à¶±à·Šà¶±"
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "මෙම සමූහයේ උප සමූහයක් සෑදීමට ඔබට අවසර නà·à¶­."
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr "පà·à¶­à·’කඩ සංස්කරණය"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr "සියල්ල"
msgid "DashboardProjects|Personal"
msgstr "පෞද්ගලික"
-msgid "Dashboards"
-msgstr "උපකරණ පුවරු"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr "/graphql"
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr "අඩවි පà·à¶­à·’කඩ"
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "හිමිකරුවන්ට සහ පරිපà·à¶½à¶šà¶ºà·’න්ට ව්â€à¶ºà·à¶´à·˜à¶­à·’ මà·à¶šà·“මට à·„à·à¶šà·’ය."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr "පරිà·à·Šâ€à¶»à·“ලක නà·à¶¸à¶º"
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "ඇමිණීමට ගොනුවක් දමන්න හ෠%{linkStart}උඩුගත කරන්න%{linkEnd}"
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr "CSV ලෙස නිර්යà·à¶­à¶º"
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr "සමූහය නිර්යà·à¶­ කරන්න"
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr "සමූහ පූරණයට අසමත් විය."
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr "සන්ධිස්ථà·à¶± පූරණයට අසමත් විය."
-
msgid "Failed to load milestones. Please try again."
msgstr "සන්ධිස්ථà·à¶± පූරණයට අසමත් විය. නà·à·€à¶­ උත්සà·à·„ කරන්න."
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr "මෙයින් අඩවියේ සහ පෞද්. යතුරු උත්පà·à¶¯à¶±à¶º කරගන්න"
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "ගිට්"
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "ඔබගේ පිටු වින්â€à¶ºà·à·ƒà¶º යà·à·€à¶­à·Šà¶šà·à¶½ වෙමින්..."
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,24 +22652,24 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
+msgid "GlobalSearch|All available groups"
+msgstr ""
+
msgid "GlobalSearch|Archived"
msgstr "සංරක්â€à·‚ිත"
-msgid "GlobalSearch|Close"
-msgstr "වස෠දà·à¶¸à·–"
-
msgid "GlobalSearch|Command palette"
msgstr ""
@@ -22354,6 +22727,9 @@ msgstr "මට සමà·à¶½à·à¶ à¶±à¶ºà¶§ තිබෙන ඒකà·à¶¶à¶¯à·Šà¶°
msgid "GlobalSearch|No labels found"
msgstr "නම්පත් හමු නොවිණි"
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,18 +22751,15 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr "මෑත ඒකà·à¶¶à¶¯à·Šà¶° ඉල්ලීම්"
+msgid "GlobalSearch|Reset"
+msgstr ""
+
msgid "GlobalSearch|Result count is over limit."
msgstr ""
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
-msgid "GlobalSearch|Search"
-msgstr "සොයන්න"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "ගිට්ලà·à¶¶à·Š à·„à·’ සොයන්න"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr ""
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "සෙවීමක් ඇරඹීමට කෙටිමං යතුර %{kbdOpen}/%{kbdClose} භà·à·€à·’ත෠කරන්න"
-
msgid "GlobalSearch|Users"
msgstr "පරිà·à·Šâ€à¶»à·“ලකයින්"
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr "ඔබගේ සමà·à¶½à·à¶ à¶± ඉල්ලීම් වෙත යà¶
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr "ගූගල් ක්ලවුඩ් ව්â€à¶ºà·à¶´à·˜à¶­à·’ය"
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr "සමූහයේ තොරතුරු:"
msgid "Group information"
msgstr "සමූහයේ තොරතුරු"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,11 +23300,14 @@ msgstr "සමූහය à·ƒà·à¶»à·Šà¶®à¶šà·€ ආයà·à¶­ විය."
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
-msgstr "සමූහයේ à·„à·à¶³à·”. පිටපතක්"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "සමූහයේ à·„à·à¶³à·”.: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr ""
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr "විà·à·Šà¶½à·šà·‚"
@@ -23218,6 +23594,9 @@ msgstr "චිහ්න"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr "වි-තà·à¶´à·à¶½à·Š දà·à¶±à·”ම්දීම් අක්â€à¶»à·’යයි"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "à·ƒà·à¶¸à·à¶¢à·’කයින්ට %{group} සමූහයෙන් හ෠එහි උපසමූහ වලින් පිටත සමූහ වලට ආරà·à¶°à¶±à· කළ නොහà·à¶šà·’ය"
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr "%{group} à·„à·’ ඇති ව්â€à¶ºà·à¶´à·˜à¶­à·’ අන් සමà·
msgid "GroupSettings|Reporting"
msgstr "à·€à·à¶»à·Šà¶­à· කිරීම"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr "නිතර ගොඩවà·à¶¯à·”ණු"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "ඔබ නිතර ගොඩවදින සමූහ මෙහි දිස්වේ"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "සමූහ පූරණය වෙමින්"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "ඔබගේ සමූහ සොයන්න"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "ඔබගේ සෙවුමට සමූහ කිසිවක් නොගà·à·…පෙයි"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr "සමූහයක් යනු ව්â€à¶ºà·à¶´à·˜à¶­à·’ කිහිපයක එකතුවකි."
@@ -23503,7 +23879,7 @@ msgstr "උප සමූහයක් à·ƒà·à¶¯à¶±à·Šà¶±"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "à·„à·à¶³à·”.:"
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr "%{linkStart}නව දු.ක. අංකයක් ඇතුල් කරන්න%{linkEnd}"
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,8 +24680,11 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
-msgstr "කේතයක් නොලà·à¶¶à·”නේද? %{linkStart}නව කේතයක් යවන්න%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
msgid "IdentityVerification|Email update is only offered once."
msgstr ""
@@ -24363,6 +24755,9 @@ msgstr "නව කේතයක් යවන්න"
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr "සමූහය ආයà·à¶­ කරන්න"
msgid "Import group from file"
msgstr "ගොනුවකින් සමූහයක් ආයà·à¶­ කරන්න"
-msgid "Import groups"
-msgstr "සමූහ ආයà·à¶­ කරන්න"
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr "තවත් à·ƒà·à¶¸à·à¶¢à·’කයින්ට ඉඩ දීම à·ƒà¶
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "ඔබගේ පෙරීමට කිසිදු ප්â€à¶»à¶­à·’ඵලයක් නà·à¶­"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr "සමූහ සබඳින්න"
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,8 +28384,8 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
-msgstr "අවසà·à¶± ක්â€à¶»à·’යà·à¶šà·à¶»à¶šà¶¸"
+msgid "Last GitLab activity"
+msgstr ""
msgid "Last Name"
msgstr "අග නම"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr "අවසà·à¶± ක්â€à¶»à·’යà·à¶šà·à¶»à¶šà¶¸"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr "ඔබගේ පළමු ව්â€à¶ºà·à¶´à·˜à¶­à·’යේ CI/CD පි
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "ගිට්ලà·à¶¶à·Š ගවේà·à¶±à¶º"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr "ගිට්ලà·à¶¶à·Š ප්â€à¶»à¶½à·šà¶›à¶±"
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr "මෙ.බ."
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr "මේල්ගන් සිදුවීම්"
-msgid "Main menu"
-msgstr "ප්â€à¶»à¶°à·à¶± වට්ටà·à¶»à·”à·€"
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr "ප්â€à¶»à·à¶¸à·’තියස් විමසුම් ප්â€à¶»à
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr "ගවේà·à¶±à¶º"
@@ -31375,9 +31944,6 @@ msgstr "නිතර ගොඩවà·à¶¯à·”ණු ව්â€à¶ºà·à¶´à·˜à¶­à·’"
msgid "Navigation|Groups you visit often will appear here."
msgstr "ඔබ නිතර ගොඩවදින සමූහ මෙහි දිස්වනු ඇත."
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr "දà·à¶±à·”ම්දීම් සක්â€à¶»à·’යයි."
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr "විවෘත"
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr "විà·à·Šà¶½à·šà·‚ණය"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr "Pip විධà·à¶±à¶º"
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -34180,6 +34890,9 @@ msgstr "ඔබගේ පෙරීමට කිසිදු ප්â€à¶»à¶­à·’ඵ
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr "මුරපදය තහවුරු කිරීම"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "මුරපදය à·ƒà·à¶»à·Šà¶®à¶šà·€ වෙනස් විය"
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr "පà·à¶­à·’කඩ"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,8 +37722,8 @@ msgstr "පරිà·à·Šâ€à¶»à·“ලක නà·à¶¸à¶º à·ƒà·à¶»à·Šà¶®à¶šà·€ වෙ
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
-msgstr "අඩවියෙහි ඒ.ස.නි."
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "ඔබගේ නියà·à¶¢à¶±à¶º à·„à· à·€à·à¶©à¶´à¶½."
@@ -37275,7 +38027,7 @@ msgstr "ඔබගේ"
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "නිතර ගොඩවà·à¶¯à·”ණු"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "ඔබ නිතර ගොඩවදින ව්â€à¶ºà·à¶´à·˜à¶­à·’ මෙහි දිස්වේ"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "ඔබගේ ව්â€à¶ºà·à¶´à·˜à¶­à·’ සොයන්න"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr "අච්චුවකින් à·ƒà·à¶¯à¶±à·Šà¶±"
msgid "ProjectsNew|Create new project"
msgstr "නව ව්â€à¶ºà·à¶´à·˜à¶­à·’යක් à·ƒà·à¶¯à¶±à·Šà¶±"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr "සවිස්තරයේ ආකෘතිය"
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr "ප්â€à¶»à¶­à·’පà·à·‚ණ සපයන්න"
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr "නියමිත දිනය ඉවත් කරන්න"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr "සමූහයෙන් පරිà·à·Šâ€à¶»à·“ලකය෠ඉවතà
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,8 +41362,8 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
-msgstr "ඔබගේ ප්â€à¶»à·à¶®à¶¸à·’ක ගිට්ලà·à¶¶à·Š වි-තà·à¶´à·‘ල අවà·à·Šâ€à¶ºà¶ºà·’."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
+msgstr ""
msgid "Resend"
msgstr ""
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr "නම අනුව සොයන්න"
msgid "Search files"
msgstr "ගොනු සොයන්න"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr "ආරක්â€à·‚ණ උපකරණ පුවරුව"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "මෙම සමූහය"
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "තීව්â€à¶»à¶­à·à·€"
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr "ෂිමො à·€à·à¶©à¶¶à·’ම ඒ.à·ƒ.නි."
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr "2FA කේතය මගින් පිවිසෙන්න"
-msgid "Sign in with"
-msgstr "මෙමගින් පිවිසෙන්න"
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,20 +46195,14 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr "ලියà·à¶´à¶¯à·’ංචි සීමà·"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "%{button_text} එබීමෙන් හ෠තෙවන පà·à¶»à·Šà·à·Šà·€à¶ºà¶šà·Š හරහ෠ලියà·à¶´à¶¯à·’ංචි වීමෙන් ඔබ ගිට්ලà·à¶¶à·Š %{link_start}භà·à·€à·’තà·à·€à·š නියම මෙන්ම රහස්â€à¶ºà¶­à· ප්â€à¶»à¶­à·’පත්තිය සහ දත්තකඩ ප්â€à¶»à¶­à·’පත්තිය%{link_end} පිළිගනියි."
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "%{button_text} එබීමෙන් හ෠තෙවන පà·à¶»à·Šà·à·Šà·€à¶ºà¶šà·Š හරහ෠ලියà·à¶´à¶¯à·’ංචි වීමෙන් ඔබ %{link_start}භà·à·€à·’තà·à·€à·š නියම මෙන්ම රහස්â€à¶ºà¶­à· ප්â€à¶»à¶­à·’පත්තිය සහ දත්තකඩ ප්â€à¶»à¶­à·’පත්තිය%{link_end} පිළිගනියි."
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "%{button_text} එබීමෙන්, මම %{link_start}භà·à·€à·’තà·à·€à·š නියම සහ රහස්â€à¶ºà¶­à· ප්â€à¶»à¶­à·’පත්තිය%{link_end} කියව෠පිළිගත් බවට ප්â€à¶»à¶­à·’ඥ෠දෙමි."
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "%{button_text} එබීමෙන්, මම ගිට්ලà·à¶¶à·Š %{link_start}භà·à·€à·’තà·à·€à·š නියම සහ රහස්â€à¶ºà¶­à· ප්â€à¶»à¶­à·’පත්තිය%{link_end} කියව෠පිළිගත් බවට ප්â€à¶»à¶­à·’ඥ෠දෙමි."
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "පිවිසීමෙන් ඔබ %{link_start}භà·à·€à·’තà·à·€à·š නියම මෙන්ම රහස්â€à¶ºà¶­à· ප්â€à¶»à¶­à·’පත්තිය සහ දත්තකඩ ප්â€à¶»à¶­à·’පත්තිය%{link_end} පිළිගනියි."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr "මුල් නම දිග à·€à·à¶©à·’යි (උපරිම අකුරු ගණන %{max_length} කි)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr "ප්â€à¶»à¶¸à·”ඛතà·à·€à¶º"
-msgid "SortOptions|Project"
-msgstr "ව්â€à¶ºà·à¶´à·˜à¶­à·’ය"
-
msgid "SortOptions|Recent last activity"
msgstr "මෑත අවසà·à¶± ක්â€à¶»à·’යà·à¶šà·à¶»à¶šà¶¸"
@@ -46000,7 +46978,7 @@ msgstr "මෑතදී තරු යෙදූ"
msgid "SortOptions|Size"
msgstr "ප්â€à¶»à¶¸à·à¶«à¶º"
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr "සිරà·à·ƒà·’ය"
-msgid "SortOptions|Type"
-msgstr "වර්ගය"
-
-msgid "SortOptions|Version"
-msgstr "අනුවà·à¶¯à¶º"
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr "සම්මත"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr "අග්â€à¶»à¶º නවතන්න"
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr "මෙම පරිසරය නවතන්න"
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr "අයà·à¶ à·’ත ලෙස යොමන්න"
-msgid "Submit feedback"
-msgstr "ප්â€à¶»à¶­à·’පà·à·‚ණ යොමන්න"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "ආසන එක්කරන්න"
@@ -47253,9 +48227,6 @@ msgstr "à·à·à¶›à·à·€ මà·à¶»à·”à·€"
msgid "Switch branch/tag"
msgstr "à·à·à¶›à·à·€/අනන්â€à¶ºà¶±à¶º මà·à¶»à·”à·€"
-msgid "Switch to GitLab Next"
-msgstr "ගිට්ලà·à¶¶à·Š නෙක්â€à·ƒà·Šà¶§à·Š බලන්න"
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr "ඉලක්කගත මà·à¶»à·Šà¶œà¶º"
msgid "Target branch"
msgstr "ඉලක්කගත à·à·à¶›à·à·€"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,15 +49560,12 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
+msgid "There are currently no mirrored repositories."
msgstr ""
-msgid "There are merge conflicts"
-msgstr "ඒකà·à¶¶à¶¯à·Šà¶° à¶à¶§à·Šà¶§à¶± තිබේ"
-
msgid "There are no GPG keys associated with this account."
msgstr ""
@@ -48751,6 +49734,9 @@ msgstr "ව්â€à¶ºà·à¶´à·˜à¶­à·’ අනන්â€à¶ºà¶± ගà·à¶±à·“මේ ද
msgid "There was a problem fetching project users."
msgstr "ව්â€à¶ºà·à¶´à·˜à¶­à·’යේ පරිà·à·Šâ€à¶»à·“ලකයින් ගà·à¶±à·“මේ දී ගà·à¶§à¶½à·”වකි."
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr "මෑත සමූහ ගà·à¶±à·“මේ දී ගà·à¶§à¶½à·”වකි."
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,8 +51257,8 @@ msgstr ""
msgid "Today"
msgstr "අද"
-msgid "Todos count"
-msgstr "කළ-යුතු ගණන"
+msgid "Todos| What actions create to-do items?"
+msgstr ""
msgid "Todos|Added"
msgstr ""
@@ -50278,9 +51272,6 @@ msgstr "ඕනෑම ක්â€à¶»à·’යà·à¶¸à·à¶»à·Šà¶œà¶ºà¶šà·Š"
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr "පà·à·€à¶»à·”ණු"
@@ -50338,6 +51329,9 @@ msgstr "à·ƒà·à¶³à·„ුම්"
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "ඔබගේ කළ-යුතු ලà·à¶ºà·’ස්තුවේ කිසිවක් නà·à¶­. කදිමයි!"
@@ -50374,6 +51368,9 @@ msgstr "කළ-යුතු අථකයක් එක් කර ඇත"
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr "බොහ෠පරිà·à·“ලකයින් හමු විය. ඉà
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "ගවේà·à¶±à¶º"
-
-msgid "TopNav|Go back"
-msgstr "ආපසු යන්න"
-
-msgid "TopNav|Switch to"
-msgstr "මà·à¶»à·” වන්න"
-
-msgid "TopNav|Your dashboards"
-msgstr "ඔබගේ උපකරණ පුවරු"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "මුළු පරිà·à·Šâ€à¶»à·“ලකයින්"
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr "à·à·à¶›à·“ය දà·à¶šà·Šà¶¸"
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr "සියළු à·ƒà·à¶½à·ƒà·”ම් සසඳන්න"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "ඔබගේ ගිට්ලà·à¶¶à·Š අල්ටිමේට් නà·à·„à·à·ƒà·”ම ඇරඹීමට නව සමූහයක් à·ƒà·à¶¯à¶±à·Šà¶±."
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr "දවස් %{daysUsed}/%{duration}"
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr "අක්â€à¶»à·’ය කරන්න"
msgid "Turn on"
msgstr "සක්â€à¶»à·’ය කරන්න"
-msgid "Twitter"
-msgstr "ට්විටර්"
-
-msgid "Twitter:"
-msgstr "ට්විටර්:"
-
msgid "Two-Factor Authentication"
msgstr "ද්වි-à·ƒà·à¶°à¶š සත්â€à¶ºà·à¶´à¶±à¶º"
@@ -51083,15 +52054,30 @@ msgstr "අවà·à·Šâ€à¶º නම් ඒ.à·ƒ.නි. ප්â€à¶»à¶­à·’à·à¶­-à¶
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "ඒ.ස.නි. %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, හ෠%{codeStart}ftp://%{codeEnd} සමඟ ආරම්භ විය යුතුය"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "ඒ.à·ƒ.නි. / ඉල්ලීම් à·„à·à¶³à·”."
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr "නොදන්න෠ප්â€à¶»à¶­à·’චà·à¶» පෙළ"
msgid "Unknown user"
msgstr "නොදන්න෠පරිà·à·Šâ€à¶»à·“ලකයෙකි"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr "à·ƒà·à¶šà¶ à·Šà¶¡à·à·€ අගුළු හරියි."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "ළඟ෠විය නොහà·à¶šà·’ය"
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr "ආචයනය මිලදී ගන්න"
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr "පරà·à¶ºà¶­à·Šà¶­ ප්â€à¶»à¶­à·’යුක්තය"
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "ආචයනය"
@@ -52073,12 +53071,6 @@ msgstr "අච්චුව භà·à·€à·’තය"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "පරිà·à·Šâ€à¶»à·“ලක à·„à·à¶³à·”."
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr "පà·à¶º%{value}"
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr "උපකරණ පුවරුව"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr "ප්â€à¶»à¶½à·šà¶›à¶± වෙත යන්න"
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr "ඔබගේ ගිට්ලà·à¶¶à·Š අනුවà·à¶¯à¶º"
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr "සියළු පරිසර බලන්න."
-msgid "View all groups"
-msgstr "සියළුම සමූහ බලන්න"
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr "සියළුම ව්â€à¶ºà·à¶´à·˜à¶­à·’ බලන්න"
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr "@ පිටුව බලන්න"
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "පරිපà·à¶½à¶š ප්â€à¶»à¶¯à·šà·à¶ºà·š ව්â€à¶ºà·à¶´à·˜à¶­à·’ය බලන්න"
@@ -53096,6 +54098,9 @@ msgstr "ප්â€à¶»à¶½à·šà¶›à¶±à¶º බලන්න"
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr "විෂුවල් ස්ටුඩිය෠කà·à¶©à·Š (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "විෂුවල් ස්ටුඩිය෠කà·à¶©à·Š (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr "SSL සත්â€à¶ºà·à¶´à¶±à¶º"
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr "අවලංගු"
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr "නියමිත දිනය"
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr "සන්ධිස්ථà·à¶±à¶º"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "ගà·à·…පෙන ප්â€à¶»à¶­à·’ඵල නà·à¶­"
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr "විවෘත"
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr "වර්ගය තà·à¶»à¶±à·Šà¶±"
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr "à·€à·à¶©à¶¶à·’ම් පූරණයට නොහà·à¶šà·’ විය"
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr "à·€à·à¶©à¶¶à·’ම à·ƒà·à¶¯à¶±à·Šà¶±"
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr "ඔබගේ නිකුතු සටහන් ලියන්න à·„à·
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55024,6 +56068,9 @@ msgstr "ඊයේ"
msgid "You"
msgstr "ඔබ"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr "ඔබ කිසිදු සමූහයකට අයත් නà·à¶­."
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr "ඔබ සතුව මෑත සෙවීම් නà·à¶­"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr "ඔබට මෙම යෙදවීම අනුමà·à¶­à·’යට අවසර නà·à¶­. උදව් සඳහ෠ව්â€à¶ºà·à¶´à·˜à¶­à·’යේ හ෠සමූහයේ හිමිකරු අමතන්න."
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "ඔබට මෙම HTTP අනුකලනය යà·à·€à¶­à·Šà¶šà·à¶½ කිරීමට ප්â€à¶»à¶¸à·à¶«à·€à¶­à·Š අවසර නà·à¶­"
@@ -55595,6 +56651,9 @@ msgstr "දà·à¶±à·Š සන්ධිස්ථà·à¶±à¶º වස෠දà·à¶¸à·“ම
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "ගිට්ලà·à¶¶à·Š à·„à·’ à·ƒà·à¶¸à¶­à·à¶± සෙවීමට ඇතුළු වී සිටිය යුතුය"
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr "ඔබගේ ක්â€à¶»à·’යà·à¶šà·à¶»à¶šà¶¸à·Š"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "ඔබගේ නම"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr "ඔබගේ නව %{accessTokenType}"
@@ -56073,6 +57141,9 @@ msgstr "ඔබගේ ව්â€à¶ºà·à¶´à·˜à¶­à·’"
msgid "Your public email will be displayed on your public profile."
msgstr "ඔබගේ ප්â€à¶»à·ƒà·’ද්ධ වි-තà·à¶´à·‘ල ප්â€à¶»à·ƒà·’ද්ධ පà·à¶­à·’කඩෙහි දිස්වනු ඇත."
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr "ප්â€à¶»à·€à·šà·à¶º සඳහ෠ඔබගේ ඉල්ලීම à·ƒà·à¶šà·ƒà·“මට නොහà·à¶šà·’ය: %{error_message}"
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr "වෙනස් කළ නොහà·à¶šà·’ය"
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr "%{degradedNum} පිරිහී ඇත"
msgid "ciReport|%{improvedNum} improved"
msgstr "%{improvedNum} à·€à·à¶©à·’ දියුණුයි"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr "%{linkStartTag}කේත ගුණත්â€à·€ à·€à·à¶»à·Šà¶­à· ගà·à¶± තව දà·à¶±à¶œà¶±à·Šà¶±%{linkEndTag}"
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] "නව ගà·à¶§à·…ුවක් නිස෠කේත ගුණත්â€à·€à¶º පිරිහී ඇත"
-msgstr[1] "නව ගà·à¶§à·…à·” %d ක් නිස෠කේත ගුණත්â€à·€à¶º පිරිහී ඇත"
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] "විසඳූ ගà·à¶§à·…ුවක් නිස෠කේත ගුණත්â€à·€à¶º à·€à·à¶©à·’දියුණු විය"
-msgstr[1] "විසඳූ ගà·à¶§à·…à·” %d ක් නිස෠කේත ගුණත්â€à·€à¶º à·€à·à¶©à·’දියුණු විය"
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr "කේත ගුණත්â€à·€ සුපිරික්සීමට ඒකà·à¶¶à¶¯à·Šà¶° ප්â€à¶»à¶­à·’ඵලවල වෙනස්කම් %{issueCount} ක් අනà·à·€à¶»à¶«à¶º විය"
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
-msgstr "කේතයේ ගුණත්â€à·€à¶ºà¶§ වෙනසක් නà·à¶­"
-
msgid "ciReport|No code quality issues found"
msgstr "කේත ගුණත්â€à·€ ගà·à¶§à·…à·” හමු නොවිණි"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr "ඒකà·à¶¶à¶¯à·Šà¶° ඉල්ලීම සමඟ විසඳන්න"
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr "වෙනස්කම් %{targetBranch} වෙත %{mergeCommitSha}%{sq
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "වෙනස්කම් %{targetBranch} වෙත ඒකà·à¶¶à¶¯à·Šà¶° කර නà·à¶­."
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr "ඩෙබියන් ඇසුරුමක් විය යුතුය
msgid "must be a boolean value"
msgstr "බූලියන් අගයක් විය යුතුය"
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr "කà·à·‚්ඨයක් තිබිය යුතුය"
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr "ආරම්භක දිනය ඉවත් කරන්න"
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr "කà·à·‚්ඨය:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr "නිවà·à¶»à¶¯à·’ ආකෘතිය."
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/sk_SK/gitlab.po b/locale/sk_SK/gitlab.po
index f61972d6d30..b714ab70787 100644
--- a/locale/sk_SK/gitlab.po
+++ b/locale/sk_SK/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: sk\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -201,13 +201,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -250,13 +243,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -299,13 +285,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -418,6 +397,13 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -721,6 +707,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -767,15 +756,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -909,12 +889,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -951,6 +925,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1125,6 +1102,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1408,6 +1391,9 @@ msgstr[3] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1517,7 +1503,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1532,6 +1521,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1586,6 +1578,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1619,9 +1617,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1677,9 +1693,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1710,7 +1723,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2078,9 +2091,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,7 +2196,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3312,9 +3361,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3468,15 +3514,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3486,9 +3532,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4560,6 +4609,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4593,6 +4645,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4704,18 +4759,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5064,6 +5125,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -5094,9 +5164,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5208,12 +5278,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5235,9 +5311,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5298,9 +5371,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5316,9 +5386,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5394,9 +5461,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5625,12 +5689,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6131,6 +6200,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,16 +6233,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6170,9 +6257,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6714,9 +6798,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6780,6 +6861,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6795,9 +6879,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7023,6 +7101,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,13 +7228,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7647,12 +7737,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7677,12 +7761,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7734,9 +7824,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7749,9 +7836,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7797,16 +7890,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7818,7 +7914,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7833,7 +7929,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7938,9 +8034,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8758,9 +8815,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8854,6 +8908,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8863,6 +8920,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8929,15 +8998,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9013,6 +9100,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9025,6 +9115,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9325,6 +9418,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9358,9 +9457,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,16 +9478,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9451,7 +9574,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,16 +9893,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10244,6 +10367,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10360,6 +10486,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10372,6 +10501,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10444,6 +10579,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10501,6 +10639,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10582,9 +10726,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,25 +10843,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10816,6 +10984,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10903,13 +11083,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10933,10 +11122,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11168,9 +11369,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12382,6 +12598,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12430,6 +12649,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12710,13 +12935,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,10 +13022,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12773,9 +13040,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12788,6 +13061,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13292,7 +13598,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14069,7 +14381,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14081,6 +14393,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14144,6 +14459,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14216,9 +14534,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14402,6 +14717,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14495,9 +14816,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14627,9 +14945,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14876,6 +15194,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15086,6 +15407,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15375,9 +15702,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15716,6 +16040,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16632,19 +16962,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16786,9 +17109,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16834,18 +17157,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16855,6 +17187,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17107,9 +17442,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17919,6 +18296,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18227,6 +18607,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18518,6 +18901,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18584,6 +18970,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18680,6 +19069,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18716,6 +19108,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18731,9 +19126,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19217,6 +19612,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19319,15 +19717,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20428,6 +20811,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20517,6 +20903,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20532,16 +20921,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20730,6 +21104,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21025,6 +21402,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21976,12 +22356,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21991,12 +22365,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22105,12 +22473,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22510,7 +22875,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,22 +23070,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22780,6 +23145,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,16 +23169,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22852,9 +23214,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22969,9 +23328,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23053,6 +23412,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23263,6 +23622,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23356,10 +23718,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23644,6 +24012,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23686,12 +24057,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,7 +24339,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24094,6 +24462,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Hide values"
msgstr ""
@@ -24433,6 +24806,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,7 +25104,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24797,6 +25179,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25090,9 +25475,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26523,10 +26908,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26853,13 +27238,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26964,6 +27349,13 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27964,6 +28376,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28084,9 +28499,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28123,6 +28535,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28153,6 +28568,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28250,6 +28779,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28293,7 +28828,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28311,6 +28846,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28630,6 +29165,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28858,7 +29393,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29168,39 +29703,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29894,100 +30396,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30704,15 +31215,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30722,15 +31227,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30743,9 +31242,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30782,6 +31278,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31104,9 +31609,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,102 +31657,153 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31846,9 +32408,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31861,9 +32420,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32408,6 +32964,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32610,6 +33163,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32728,6 +33284,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32827,6 +33386,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32875,6 +33440,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32905,16 +33476,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32986,6 +33557,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33076,6 +33650,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33091,6 +33668,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33103,7 +33683,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33858,9 +34459,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34230,6 +34909,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34600,6 +35294,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34618,6 +35315,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34684,6 +35384,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34861,6 +35567,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35008,6 +35717,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35152,6 +35864,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35653,9 +36386,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35728,6 +36458,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35764,6 +36497,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,7 +37850,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37474,7 +38216,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37781,7 +38523,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37808,10 +38550,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38030,6 +38787,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38282,6 +39042,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38699,29 +39462,12 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38756,6 +39502,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38819,6 +39568,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39418,12 +40170,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39505,9 +40263,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40179,6 +40934,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40233,6 +40991,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40293,6 +41054,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40473,6 +41240,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40599,9 +41366,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41312,13 +42076,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Reveal values"
msgstr ""
@@ -41365,6 +42122,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41775,6 +42538,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42053,6 +42819,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,9 +42951,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42415,9 +43181,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42589,9 +43370,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42679,6 +43493,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43251,6 +44074,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,7 +44263,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44311,12 +45260,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44453,6 +45396,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45796,19 +46765,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46108,6 +47071,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46567,9 +47536,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46582,7 +47548,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46603,12 +47569,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46804,6 +47764,13 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47104,9 +48071,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47837,9 +48801,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48117,9 +49081,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48442,6 +49397,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48638,6 +49596,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,16 +49686,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48985,6 +49955,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49123,6 +50096,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,13 +50150,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49867,9 +50855,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50869,7 +51855,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50944,6 +51927,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51022,7 +52011,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51052,10 +52038,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51693,15 +52660,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,7 +52936,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52326,13 +53323,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52683,12 +53677,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53323,22 +54323,42 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53548,9 +54562,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55140,6 +56160,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55309,12 +56347,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55648,6 +56698,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56223,6 +57285,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56705,6 +57779,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,10 +58161,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57385,15 +58445,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57451,9 +58514,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58816,9 +59906,6 @@ msgstr[3] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59004,6 +60094,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/sl_SI/gitlab.po b/locale/sl_SI/gitlab.po
index cf5091eae2f..616cabf394c 100644
--- a/locale/sl_SI/gitlab.po
+++ b/locale/sl_SI/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: sl\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:35\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -201,13 +201,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -250,13 +243,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -299,13 +285,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -418,6 +397,13 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -721,6 +707,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -767,15 +756,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -909,12 +889,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -951,6 +925,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1125,6 +1102,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1408,6 +1391,9 @@ msgstr[3] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1517,7 +1503,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1532,6 +1521,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1586,6 +1578,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1619,9 +1617,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1677,9 +1693,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1710,7 +1723,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2078,9 +2091,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,7 +2196,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3312,9 +3361,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3468,15 +3514,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3486,9 +3532,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4560,6 +4609,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4593,6 +4645,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4704,18 +4759,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -5064,6 +5125,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -5094,9 +5164,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5208,12 +5278,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5235,9 +5311,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5298,9 +5371,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5316,9 +5386,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5394,9 +5461,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5625,12 +5689,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -6131,6 +6200,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,16 +6233,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6170,9 +6257,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6714,9 +6798,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6780,6 +6861,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6795,9 +6879,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -7023,6 +7101,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,13 +7228,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7647,12 +7737,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7677,12 +7761,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7734,9 +7824,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7749,9 +7836,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7797,16 +7890,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7818,7 +7914,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7833,7 +7929,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7938,9 +8034,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8758,9 +8815,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8854,6 +8908,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8863,6 +8920,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8929,15 +8998,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -9013,6 +9100,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -9025,6 +9115,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9325,6 +9418,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9358,9 +9457,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,16 +9478,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9451,7 +9574,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,16 +9893,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10244,6 +10367,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10360,6 +10486,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10372,6 +10501,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10444,6 +10579,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10501,6 +10639,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10582,9 +10726,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,25 +10843,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10816,6 +10984,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10903,13 +11083,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10933,10 +11122,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -11168,9 +11369,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12382,6 +12598,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12430,6 +12649,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12710,13 +12935,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,10 +13022,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12773,9 +13040,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12788,6 +13061,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13292,7 +13598,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -14069,7 +14381,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -14081,6 +14393,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -14144,6 +14459,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14216,9 +14534,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14402,6 +14717,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14495,9 +14816,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14627,9 +14945,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14876,6 +15194,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -15086,6 +15407,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15375,9 +15702,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15716,6 +16040,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16632,19 +16962,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16786,9 +17109,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16834,18 +17157,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16855,6 +17187,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -17107,9 +17442,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17919,6 +18296,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18227,6 +18607,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18518,6 +18901,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18584,6 +18970,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18680,6 +19069,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18716,6 +19108,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18731,9 +19126,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19217,6 +19612,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19319,15 +19717,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20428,6 +20811,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20517,6 +20903,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20532,16 +20921,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20730,6 +21104,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -21025,6 +21402,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21976,12 +22356,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21991,12 +22365,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22105,12 +22473,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22510,7 +22875,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,22 +23070,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22780,6 +23145,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,16 +23169,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22852,9 +23214,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22969,9 +23328,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -23053,6 +23412,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23263,6 +23622,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23356,10 +23718,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23644,6 +24012,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23686,12 +24057,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,7 +24339,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -24094,6 +24462,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Hide values"
msgstr ""
@@ -24433,6 +24806,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,7 +25104,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24797,6 +25179,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -25090,9 +25475,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26523,10 +26908,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26853,13 +27238,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26964,6 +27349,13 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27964,6 +28376,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -28084,9 +28499,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -28123,6 +28535,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -28153,6 +28568,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28250,6 +28779,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28293,7 +28828,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28311,6 +28846,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28630,6 +29165,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28858,7 +29393,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -29168,39 +29703,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29894,100 +30396,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30704,15 +31215,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30722,15 +31227,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30743,9 +31242,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30782,6 +31278,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -31104,9 +31609,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,102 +31657,153 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31846,9 +32408,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31861,9 +32420,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32408,6 +32964,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32610,6 +33163,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32728,6 +33284,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32827,6 +33386,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32875,6 +33440,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32905,16 +33476,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32986,6 +33557,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -33076,6 +33650,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -33091,6 +33668,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -33103,7 +33683,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33858,9 +34459,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -34230,6 +34909,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34600,6 +35294,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34618,6 +35315,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34684,6 +35384,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34861,6 +35567,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -35008,6 +35717,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -35152,6 +35864,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35653,9 +36386,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35728,6 +36458,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35764,6 +36497,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,7 +37850,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37474,7 +38216,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37781,7 +38523,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37808,10 +38550,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -38030,6 +38787,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38282,6 +39042,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38699,29 +39462,12 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38756,6 +39502,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38819,6 +39568,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39418,12 +40170,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39505,9 +40263,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -40179,6 +40934,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40233,6 +40991,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40293,6 +41054,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40473,6 +41240,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40599,9 +41366,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41312,13 +42076,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Reveal values"
msgstr ""
@@ -41365,6 +42122,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41775,6 +42538,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -42053,6 +42819,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,9 +42951,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42415,9 +43181,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42589,9 +43370,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42679,6 +43493,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -43251,6 +44074,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,7 +44263,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44311,12 +45260,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44453,6 +45396,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45796,19 +46765,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -46108,6 +47071,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46567,9 +47536,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46582,7 +47548,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46603,12 +47569,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46804,6 +47764,13 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -47104,9 +48071,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47837,9 +48801,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
@@ -48117,9 +49081,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48442,6 +49397,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48638,6 +49596,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,16 +49686,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48985,6 +49955,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -49123,6 +50096,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,13 +50150,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49867,9 +50855,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50869,7 +51855,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50944,6 +51927,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -51022,7 +52011,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -51052,10 +52038,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51693,15 +52660,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,7 +52936,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52326,13 +53323,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52683,12 +53677,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53323,22 +54323,42 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53548,9 +54562,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -55140,6 +56160,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -55309,12 +56347,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55648,6 +56698,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -56223,6 +57285,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56705,6 +57779,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,10 +58161,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57385,15 +58445,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57451,9 +58514,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58816,9 +59906,6 @@ msgstr[3] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -59004,6 +60094,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/sq_AL/gitlab.po b/locale/sq_AL/gitlab.po
index 8e91f16df27..35a50604370 100644
--- a/locale/sq_AL/gitlab.po
+++ b/locale/sq_AL/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: sq\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/sr_CS/gitlab.po b/locale/sr_CS/gitlab.po
index af04d6a6b8a..868e2fbe347 100644
--- a/locale/sr_CS/gitlab.po
+++ b/locale/sr_CS/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: sr-CS\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:39\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -184,12 +184,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -226,12 +220,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -268,12 +256,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -370,6 +352,12 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -634,6 +622,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -676,15 +667,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -808,12 +790,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -850,6 +826,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1024,6 +1003,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1297,6 +1282,9 @@ msgstr[2] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1396,7 +1384,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1411,6 +1402,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1465,6 +1459,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1483,6 +1480,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1498,9 +1498,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1537,6 +1549,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1555,9 +1573,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1588,7 +1603,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1930,9 +1945,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2038,7 +2050,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2062,6 +2074,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2161,9 +2200,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2185,6 +2221,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2230,6 +2269,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2551,6 +2593,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3025,6 +3073,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3163,9 +3214,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3319,15 +3367,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3337,9 +3385,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3697,6 +3742,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3793,6 +3841,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4411,6 +4462,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4444,6 +4498,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4555,18 +4612,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4915,6 +4978,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4945,9 +5017,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5002,6 +5071,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5059,12 +5131,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5086,9 +5164,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5149,9 +5224,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5167,9 +5239,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5245,9 +5314,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5476,11 +5542,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5647,6 +5710,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5755,6 +5821,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5863,6 +5932,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5875,16 +5947,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5917,9 +5992,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5980,6 +6052,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5992,16 +6085,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6019,9 +6109,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6553,9 +6640,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6619,6 +6703,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6634,9 +6721,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6838,9 +6922,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6856,6 +6937,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6979,13 +7063,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7081,7 +7162,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7159,6 +7240,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7195,6 +7279,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7288,6 +7378,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7477,12 +7570,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7507,12 +7594,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7564,9 +7657,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7579,9 +7669,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7591,9 +7678,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7627,16 +7723,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7648,7 +7747,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7663,7 +7762,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7768,9 +7867,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8128,6 +8224,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8158,13 +8257,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8182,10 +8281,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8227,12 +8326,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8254,7 +8347,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8449,12 +8545,6 @@ msgstr[2] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8473,9 +8563,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8485,18 +8572,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8509,51 +8590,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8563,6 +8620,9 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8584,9 +8644,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8680,6 +8737,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8689,6 +8749,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8755,15 +8827,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8821,6 +8905,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8839,6 +8929,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8851,6 +8944,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9151,6 +9247,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9184,9 +9286,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9196,16 +9307,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9223,6 +9343,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9277,7 +9403,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9340,9 +9469,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9484,6 +9610,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9505,6 +9634,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9568,18 +9703,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9598,16 +9721,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9619,6 +9742,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10069,6 +10195,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10183,6 +10312,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10195,6 +10327,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10207,6 +10342,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10267,6 +10405,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10324,6 +10465,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10336,6 +10480,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10405,9 +10552,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10471,6 +10615,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10489,7 +10636,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10501,18 +10651,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10522,25 +10669,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10549,6 +10717,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10639,6 +10810,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10726,13 +10909,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10756,10 +10948,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10990,9 +11194,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12028,16 +12229,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12046,7 +12265,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12055,22 +12274,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12202,6 +12421,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12250,6 +12472,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12529,13 +12757,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12553,6 +12817,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12565,6 +12832,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12574,10 +12844,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12592,9 +12862,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12607,6 +12883,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12637,9 +12916,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12658,12 +12943,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12781,6 +13072,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12841,6 +13135,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12868,7 +13168,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13021,6 +13327,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13111,7 +13420,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13348,6 +13657,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13534,6 +13846,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13885,7 +14200,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13897,6 +14212,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13960,6 +14278,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14032,9 +14353,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14218,6 +14536,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14281,6 +14602,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14311,9 +14635,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14443,9 +14764,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14482,6 +14800,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14692,6 +15013,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14902,6 +15226,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15190,9 +15520,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15223,6 +15550,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15493,9 +15823,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15529,6 +15856,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15610,6 +15940,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15787,9 +16120,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15802,7 +16132,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16117,6 +16447,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16441,18 +16774,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16567,12 +16888,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16591,9 +16918,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16603,6 +16927,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16639,18 +16966,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16660,6 +16996,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16909,9 +17248,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17584,6 +17920,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17716,6 +18097,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18022,6 +18406,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18313,6 +18700,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18379,6 +18769,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18475,6 +18868,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18511,6 +18907,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18526,9 +18925,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18592,6 +18988,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18607,9 +19006,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18697,6 +19093,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19012,6 +19411,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19114,15 +19516,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19135,9 +19534,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19153,9 +19549,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19165,9 +19558,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19183,10 +19573,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20092,9 +20482,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20221,6 +20608,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20308,6 +20698,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20323,16 +20716,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20371,9 +20761,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20401,18 +20788,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20521,6 +20899,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20815,6 +21196,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21094,9 +21478,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21418,6 +21799,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21763,12 +22147,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21778,12 +22156,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21892,12 +22264,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21955,9 +22321,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21979,6 +22342,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22066,9 +22432,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22165,9 +22537,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22297,7 +22666,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22315,7 +22684,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22492,22 +22861,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22567,6 +22936,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22588,16 +22960,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22627,9 +22996,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22639,9 +23005,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22756,9 +23119,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22828,6 +23188,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22840,6 +23203,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22876,10 +23242,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22909,9 +23275,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23050,6 +23413,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23143,10 +23509,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23410,6 +23779,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23431,6 +23803,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23473,12 +23848,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23503,6 +23887,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23527,6 +23914,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23569,6 +23962,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23632,30 +24028,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23716,7 +24088,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23758,7 +24130,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23881,6 +24253,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23935,6 +24310,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24193,12 +24577,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Hide values"
msgstr ""
@@ -24217,6 +24595,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24292,6 +24673,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24382,6 +24766,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24478,9 +24865,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24496,7 +24880,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24508,7 +24892,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24580,6 +24967,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24871,9 +25261,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25051,10 +25438,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25069,6 +25456,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25084,6 +25474,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25570,6 +25963,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25699,9 +26095,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26089,9 +26482,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26299,10 +26689,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26629,13 +27019,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26740,6 +27130,12 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26749,11 +27145,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26794,6 +27187,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26923,6 +27319,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27052,6 +27451,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27121,15 +27523,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27181,6 +27583,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27229,6 +27637,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27388,7 +27799,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27658,6 +28069,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27667,6 +28081,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27739,6 +28156,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27859,9 +28279,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27898,6 +28315,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27928,6 +28348,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28024,6 +28558,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28066,7 +28606,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28084,6 +28624,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28369,9 +28912,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28402,6 +28942,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28417,9 +28960,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28624,7 +29164,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28804,9 +29344,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28840,6 +29377,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28933,39 +29473,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28993,12 +29509,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29053,9 +29563,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29659,100 +30166,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30052,6 +30562,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30433,6 +30946,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30466,15 +30982,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30484,15 +30994,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30505,9 +31009,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30544,6 +31045,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30769,9 +31273,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30865,9 +31375,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30883,6 +31390,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30913,100 +31423,151 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31033,9 +31594,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31603,9 +32170,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31618,9 +32182,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32050,15 +32611,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32164,6 +32725,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32311,18 +32875,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32332,6 +32884,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32347,6 +32902,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32365,6 +32923,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32479,6 +33040,9 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32578,6 +33142,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32626,6 +33196,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32656,16 +33232,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32713,6 +33286,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32737,6 +33313,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32827,6 +33406,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32842,6 +33424,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32854,7 +33439,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32983,6 +33568,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33001,27 +33589,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33568,9 +34177,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33607,9 +34213,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33700,6 +34303,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33718,6 +34324,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33766,7 +34378,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33793,6 +34414,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33910,6 +34534,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33979,6 +34663,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34054,6 +34741,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34264,6 +34954,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34324,6 +35017,12 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34348,6 +35047,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34366,6 +35068,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34432,6 +35137,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34468,6 +35176,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34609,6 +35320,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34756,6 +35470,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34900,6 +35617,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35317,6 +36037,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35377,12 +36121,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35401,9 +36139,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35476,6 +36211,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35512,6 +36250,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36430,9 +37174,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36628,6 +37369,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36736,6 +37480,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36856,7 +37603,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37222,7 +37969,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37528,7 +38275,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37555,10 +38302,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37777,6 +38539,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37864,9 +38629,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37984,6 +38746,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38029,6 +38794,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38446,29 +39214,11 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38503,6 +39253,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38566,6 +39319,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39163,12 +39919,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39250,9 +40012,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39298,6 +40057,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39742,9 +40504,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39922,6 +40681,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39976,6 +40738,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40036,6 +40801,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40138,6 +40906,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40216,6 +40987,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40273,9 +41047,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40342,9 +41113,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40789,6 +41557,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40852,7 +41623,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40921,9 +41692,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41047,12 +41815,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Reveal values"
msgstr ""
@@ -41098,6 +41860,15 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41158,9 +41929,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41503,6 +42271,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41779,6 +42550,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41899,7 +42673,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41908,9 +42682,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42139,9 +42910,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42313,9 +43099,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42334,6 +43129,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42355,21 +43153,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42394,6 +43210,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42403,6 +43222,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42418,6 +43240,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42478,9 +43303,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42532,34 +43354,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42586,15 +43399,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42607,7 +43414,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42760,6 +43585,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42964,6 +43792,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42973,6 +43804,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43030,6 +43891,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43117,7 +43981,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43219,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43228,6 +44095,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43246,12 +44122,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43264,6 +44146,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43294,6 +44179,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43306,10 +44194,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43318,6 +44206,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43390,6 +44284,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43402,7 +44299,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43417,6 +44317,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43432,6 +44335,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43459,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43486,6 +44395,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43573,12 +44485,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43612,6 +44530,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43645,6 +44569,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43729,12 +44659,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43771,6 +44716,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43957,6 +44905,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44008,6 +44959,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44023,12 +44977,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44164,6 +45112,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44263,6 +45214,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44530,6 +45493,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44692,9 +45658,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44734,6 +45706,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44794,7 +45772,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44803,6 +45784,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45001,9 +45988,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45019,6 +46003,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45097,21 +46084,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45169,27 +46168,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45454,9 +46432,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45505,19 +46480,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45817,6 +46786,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45874,6 +46846,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45934,7 +46909,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46276,9 +47251,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46291,7 +47263,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46312,12 +47284,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46513,6 +47479,12 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46813,9 +47785,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46897,9 +47866,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46996,6 +47962,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47545,9 +48514,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47818,15 +48784,24 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47842,21 +48817,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48145,6 +49105,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48340,6 +49303,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48364,6 +49330,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48382,9 +49354,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48424,16 +49393,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48685,6 +49660,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48823,6 +49801,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48874,13 +49855,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49051,6 +50029,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49246,6 +50227,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49336,9 +50320,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49375,6 +50365,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49567,9 +50560,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49714,12 +50704,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49768,6 +50752,12 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50413,9 +51403,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50461,6 +51448,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50566,7 +51556,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50581,9 +51571,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50641,6 +51628,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50677,6 +51667,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50719,7 +51712,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50731,9 +51724,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50749,10 +51739,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50794,18 +51784,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50875,6 +51853,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50899,16 +51883,37 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50968,10 +51973,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51106,27 +52111,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51142,28 +52126,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51307,12 +52282,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51388,15 +52357,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51562,9 +52546,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51640,7 +52633,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51691,6 +52684,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51844,6 +52840,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51982,7 +52981,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51997,9 +52999,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52021,13 +53020,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52060,7 +53059,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52099,7 +53098,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52126,9 +53125,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52378,12 +53374,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52396,6 +53386,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52462,6 +53458,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52567,6 +53566,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53017,22 +54019,37 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53050,6 +54067,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53152,15 +54172,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53242,9 +54253,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53263,15 +54271,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53371,6 +54373,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53404,6 +54409,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53479,6 +54487,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53548,6 +54559,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54328,6 +55342,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54829,6 +55846,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54853,6 +55873,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54898,6 +55921,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54934,15 +55960,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54973,9 +56011,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54997,12 +56032,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55018,6 +56056,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55027,9 +56068,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55159,7 +56197,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55177,6 +56215,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55255,7 +56296,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55309,6 +56350,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55336,6 +56383,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55705,10 +56755,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55762,6 +56812,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55792,6 +56845,9 @@ msgstr[2] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55825,7 +56881,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55837,7 +56893,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55870,6 +56926,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55909,6 +56968,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56122,6 +57184,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56134,6 +57199,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56149,10 +57217,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56356,6 +57424,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56389,6 +57460,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56527,6 +57601,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56761,10 +57838,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56839,9 +57916,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56884,7 +57958,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56923,21 +57997,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57058,15 +58117,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57124,9 +58186,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57595,6 +58654,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57763,6 +58825,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58102,6 +59167,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58147,6 +59224,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58165,6 +59245,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58198,6 +59281,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58438,6 +59524,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58468,9 +59557,6 @@ msgstr[2] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58645,6 +59731,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58654,6 +59743,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/sr_SP/gitlab.po b/locale/sr_SP/gitlab.po
index eb3aacbdb64..b74fc4feb04 100644
--- a/locale/sr_SP/gitlab.po
+++ b/locale/sr_SP/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: sr\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -184,12 +184,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -226,12 +220,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -268,12 +256,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -370,6 +352,12 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -634,6 +622,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -676,15 +667,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -808,12 +790,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -850,6 +826,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -1024,6 +1003,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1297,6 +1282,9 @@ msgstr[2] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1396,7 +1384,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1411,6 +1402,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1465,6 +1459,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1483,6 +1480,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1498,9 +1498,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1537,6 +1549,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1555,9 +1573,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1588,7 +1603,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1930,9 +1945,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2038,7 +2050,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -2062,6 +2074,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2161,9 +2200,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2185,6 +2221,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2230,6 +2269,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2551,6 +2593,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3025,6 +3073,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3163,9 +3214,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3319,15 +3367,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3337,9 +3385,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3697,6 +3742,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3793,6 +3841,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4411,6 +4462,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4444,6 +4498,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4555,18 +4612,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4915,6 +4978,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4945,9 +5017,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5002,6 +5071,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -5059,12 +5131,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -5086,9 +5164,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5149,9 +5224,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5167,9 +5239,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5245,9 +5314,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5476,11 +5542,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5647,6 +5710,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5755,6 +5821,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5863,6 +5932,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5875,16 +5947,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5917,9 +5992,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5980,6 +6052,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5992,16 +6085,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -6019,9 +6109,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6553,9 +6640,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6619,6 +6703,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6634,9 +6721,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6838,9 +6922,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6856,6 +6937,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6979,13 +7063,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -7081,7 +7162,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7159,6 +7240,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7195,6 +7279,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7288,6 +7378,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7477,12 +7570,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7507,12 +7594,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7564,9 +7657,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7579,9 +7669,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7591,9 +7678,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7627,16 +7723,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7648,7 +7747,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7663,7 +7762,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7768,9 +7867,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -8128,6 +8224,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8158,13 +8257,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8182,10 +8281,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8227,12 +8326,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8254,7 +8347,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8449,12 +8545,6 @@ msgstr[2] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8473,9 +8563,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8485,18 +8572,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8509,51 +8590,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8563,6 +8620,9 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8584,9 +8644,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8680,6 +8737,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8689,6 +8749,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8755,15 +8827,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8821,6 +8905,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8839,6 +8929,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8851,6 +8944,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -9151,6 +9247,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9184,9 +9286,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9196,16 +9307,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9223,6 +9343,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9277,7 +9403,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9340,9 +9469,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9484,6 +9610,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9505,6 +9634,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9568,18 +9703,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9598,16 +9721,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9619,6 +9742,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -10069,6 +10195,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10183,6 +10312,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10195,6 +10327,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10207,6 +10342,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10267,6 +10405,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10324,6 +10465,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10336,6 +10480,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10405,9 +10552,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10471,6 +10615,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10489,7 +10636,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10501,18 +10651,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10522,25 +10669,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10549,6 +10717,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10639,6 +10810,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10726,13 +10909,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10756,10 +10948,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10990,9 +11194,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -12028,16 +12229,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Learn more"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12046,7 +12265,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12055,22 +12274,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12202,6 +12421,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12250,6 +12472,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12529,13 +12757,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12553,6 +12817,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12565,6 +12832,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12574,10 +12844,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12592,9 +12862,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12607,6 +12883,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12637,9 +12916,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12658,12 +12943,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12781,6 +13072,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12841,6 +13135,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12868,7 +13168,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13021,6 +13327,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -13111,7 +13420,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13348,6 +13657,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13534,6 +13846,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13885,7 +14200,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13897,6 +14212,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13960,6 +14278,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -14032,9 +14353,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14218,6 +14536,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14281,6 +14602,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14311,9 +14635,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14443,9 +14764,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14482,6 +14800,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14692,6 +15013,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14902,6 +15226,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15190,9 +15520,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15223,6 +15550,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15493,9 +15823,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15529,6 +15856,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15610,6 +15940,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15787,9 +16120,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15802,7 +16132,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16117,6 +16447,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16441,18 +16774,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16567,12 +16888,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16591,9 +16918,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16603,6 +16927,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16639,18 +16966,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16660,6 +16996,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16909,9 +17248,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17584,6 +17920,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17716,6 +18097,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -18022,6 +18406,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18313,6 +18700,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18379,6 +18769,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18475,6 +18868,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18511,6 +18907,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18526,9 +18925,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18592,6 +18988,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18607,9 +19006,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18697,6 +19093,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -19012,6 +19411,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -19114,15 +19516,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19135,9 +19534,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -19153,9 +19549,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -19165,9 +19558,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -19183,10 +19573,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20092,9 +20482,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20221,6 +20608,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20308,6 +20698,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20323,16 +20716,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20371,9 +20761,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20401,18 +20788,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20521,6 +20899,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20815,6 +21196,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21094,9 +21478,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21418,6 +21799,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21763,12 +22147,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21778,12 +22156,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21892,12 +22264,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21955,9 +22321,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21979,6 +22342,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -22066,9 +22432,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22165,9 +22537,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22297,7 +22666,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22315,7 +22684,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22492,22 +22861,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22567,6 +22936,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22588,16 +22960,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22627,9 +22996,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22639,9 +23005,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22756,9 +23119,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22828,6 +23188,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22840,6 +23203,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22876,10 +23242,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22909,9 +23275,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -23050,6 +23413,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -23143,10 +23509,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23410,6 +23779,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23431,6 +23803,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23473,12 +23848,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23503,6 +23887,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23527,6 +23914,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23569,6 +23962,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23632,30 +24028,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23716,7 +24088,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23758,7 +24130,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23881,6 +24253,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23935,6 +24310,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24193,12 +24577,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Hide values"
msgstr ""
@@ -24217,6 +24595,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24292,6 +24673,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24382,6 +24766,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24478,9 +24865,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24496,7 +24880,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24508,7 +24892,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24580,6 +24967,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24871,9 +25261,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25051,10 +25438,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25069,6 +25456,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25084,6 +25474,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25570,6 +25963,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25699,9 +26095,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -26089,9 +26482,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26299,10 +26689,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26629,13 +27019,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26740,6 +27130,12 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26749,11 +27145,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26794,6 +27187,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26923,6 +27319,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27052,6 +27451,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27121,15 +27523,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27181,6 +27583,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27229,6 +27637,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27388,7 +27799,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27658,6 +28069,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27667,6 +28081,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27739,6 +28156,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27859,9 +28279,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27898,6 +28315,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27928,6 +28348,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -28024,6 +28558,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -28066,7 +28606,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -28084,6 +28624,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28369,9 +28912,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28402,6 +28942,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28417,9 +28960,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28624,7 +29164,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28804,9 +29344,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28840,6 +29377,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28933,39 +29473,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28993,12 +29509,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29053,9 +29563,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29659,100 +30166,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30052,6 +30562,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30433,6 +30946,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30466,15 +30982,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30484,15 +30994,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30505,9 +31009,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30544,6 +31045,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30769,9 +31273,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30865,9 +31375,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30883,6 +31390,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30913,100 +31423,151 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31033,9 +31594,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31603,9 +32170,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31618,9 +32182,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -32050,15 +32611,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -32164,6 +32725,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32311,18 +32875,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32332,6 +32884,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32347,6 +32902,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32365,6 +32923,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32479,6 +33040,9 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32578,6 +33142,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32626,6 +33196,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32656,16 +33232,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32713,6 +33286,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32737,6 +33313,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32827,6 +33406,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32842,6 +33424,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32854,7 +33439,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32983,6 +33568,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33001,27 +33589,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33568,9 +34177,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33607,9 +34213,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33700,6 +34303,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33718,6 +34324,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33766,7 +34378,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33793,6 +34414,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33910,6 +34534,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33979,6 +34663,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34054,6 +34741,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34264,6 +34954,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34324,6 +35017,12 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34348,6 +35047,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34366,6 +35068,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34432,6 +35137,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34468,6 +35176,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34609,6 +35320,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34756,6 +35470,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34900,6 +35617,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35317,6 +36037,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35377,12 +36121,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35401,9 +36139,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35476,6 +36211,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35512,6 +36250,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36430,9 +37174,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36628,6 +37369,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36736,6 +37480,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36856,7 +37603,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -37222,7 +37969,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37528,7 +38275,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37555,10 +38302,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37777,6 +38539,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37864,9 +38629,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37984,6 +38746,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -38029,6 +38794,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38446,29 +39214,11 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38503,6 +39253,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38566,6 +39319,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -39163,12 +39919,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -39250,9 +40012,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39298,6 +40057,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39742,9 +40504,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39922,6 +40681,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39976,6 +40738,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -40036,6 +40801,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40138,6 +40906,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -40216,6 +40987,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40273,9 +41047,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40342,9 +41113,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40789,6 +41557,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40852,7 +41623,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40921,9 +41692,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -41047,12 +41815,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Reveal values"
msgstr ""
@@ -41098,6 +41860,15 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -41158,9 +41929,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41503,6 +42271,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41779,6 +42550,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41899,7 +42673,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41908,9 +42682,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -42139,9 +42910,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42313,9 +43099,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42334,6 +43129,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42355,21 +43153,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42394,6 +43210,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42403,6 +43222,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42418,6 +43240,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42478,9 +43303,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42532,34 +43354,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42586,15 +43399,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42607,7 +43414,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42760,6 +43585,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42964,6 +43792,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42973,6 +43804,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43030,6 +43891,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43117,7 +43981,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -43219,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43228,6 +44095,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43246,12 +44122,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43264,6 +44146,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43294,6 +44179,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43306,10 +44194,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43318,6 +44206,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43390,6 +44284,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43402,7 +44299,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43417,6 +44317,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43432,6 +44335,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43459,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43486,6 +44395,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43573,12 +44485,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43612,6 +44530,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43645,6 +44569,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43729,12 +44659,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43771,6 +44716,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43957,6 +44905,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -44008,6 +44959,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -44023,12 +44977,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -44164,6 +45112,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44263,6 +45214,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44530,6 +45493,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44692,9 +45658,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44734,6 +45706,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44794,7 +45772,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44803,6 +45784,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45001,9 +45988,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45019,6 +46003,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -45097,21 +46084,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -45169,27 +46168,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45454,9 +46432,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45505,19 +46480,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45817,6 +46786,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45874,6 +46846,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45934,7 +46909,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46276,9 +47251,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46291,7 +47263,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46312,12 +47284,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46513,6 +47479,12 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46813,9 +47785,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46897,9 +47866,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46996,6 +47962,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47545,9 +48514,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47818,15 +48784,24 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47842,21 +48817,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48145,6 +49105,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48340,6 +49303,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48364,6 +49330,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48382,9 +49354,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48424,16 +49393,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48685,6 +49660,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48823,6 +49801,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48874,13 +49855,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -49051,6 +50029,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49246,6 +50227,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49336,9 +50320,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49375,6 +50365,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49567,9 +50560,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49714,12 +50704,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49768,6 +50752,12 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50413,9 +51403,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50461,6 +51448,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50566,7 +51556,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50581,9 +51571,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50641,6 +51628,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50677,6 +51667,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50719,7 +51712,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50731,9 +51724,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50749,10 +51739,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50794,18 +51784,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50875,6 +51853,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50899,16 +51883,37 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50968,10 +51973,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51106,27 +52111,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51142,28 +52126,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51307,12 +52282,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51388,15 +52357,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51562,9 +52546,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51640,7 +52633,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51691,6 +52684,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51844,6 +52840,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51982,7 +52981,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51997,9 +52999,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -52021,13 +53020,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52060,7 +53059,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52099,7 +53098,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52126,9 +53125,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52378,12 +53374,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52396,6 +53386,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52462,6 +53458,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52567,6 +53566,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53017,22 +54019,37 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53050,6 +54067,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53152,15 +54172,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -53242,9 +54253,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -53263,15 +54271,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53371,6 +54373,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53404,6 +54409,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53479,6 +54487,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53548,6 +54559,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54328,6 +55342,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54829,6 +55846,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54853,6 +55873,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54898,6 +55921,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54934,15 +55960,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54973,9 +56011,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54997,12 +56032,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -55018,6 +56056,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55027,9 +56068,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55159,7 +56197,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55177,6 +56215,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -55255,7 +56296,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55309,6 +56350,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55336,6 +56383,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55705,10 +56755,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55762,6 +56812,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55792,6 +56845,9 @@ msgstr[2] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55825,7 +56881,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55837,7 +56893,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55870,6 +56926,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55909,6 +56968,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56122,6 +57184,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -56134,6 +57199,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56149,10 +57217,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56356,6 +57424,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56389,6 +57460,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56527,6 +57601,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56761,10 +57838,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56839,9 +57916,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56884,7 +57958,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56923,21 +57997,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -57058,15 +58117,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -57124,9 +58186,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57595,6 +58654,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57763,6 +58825,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58102,6 +59167,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -58147,6 +59224,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58165,6 +59245,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58198,6 +59281,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58438,6 +59524,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58468,9 +59557,6 @@ msgstr[2] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58645,6 +59731,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58654,6 +59743,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/sv_SE/gitlab.po b/locale/sv_SE/gitlab.po
index 7c2670997cb..39c509a5c6c 100644
--- a/locale/sv_SE/gitlab.po
+++ b/locale/sv_SE/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: sv-SE\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr "%{start} till %{end}"
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d tilldelat ärende"
-msgstr[1] "%d tilldelade ärenden"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d kommentar"
msgstr[1] "%d kommentarer"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "%d kommentar till denna commit"
-msgstr[1] "%d kommentarer till denna commit"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d slutfört ärende"
msgstr[1] "%d slutförda ärenden"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr "%{author_link} skrev:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName}s tråd"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} begärde att slå samman %{source_branch} %{copy_button} till %{target_branch} %{created_at}"
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}Maskerad:%{code_close} Gömd i jobbloggar. Måste matcha maskeringskraven."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} skriven %{commit_authored_timeago}"
@@ -707,12 +691,6 @@ msgstr "%{days} dagar tills taggar tas bort automatiskt"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}Lär mer om tillgänglighetsnivåer.%{docs_link_end}"
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@foretag.se"
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} raderad"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} gren"
@@ -1275,8 +1265,11 @@ msgstr ""
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
-msgstr "%{title} ändringar"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} varning(ar) hittade:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr "%{user} skapade ett ärende: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} ingår inte i listan"
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(kontrollera förloppet)"
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr "(lämna tomt om du inte vill ändra det)"
-msgid "(max size 15 MB)"
-msgstr "(max storlek 15 MB)"
-
msgid "(no user)"
msgstr "(ingen användare)"
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr "En komplett DevOps-plattform"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API-nyckel"
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr "Administratörsanteckning"
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Administratörsläget är redan aktiverat"
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr "Avataren kommer att tas bort! Är du säker?"
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
+msgstr ""
+
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New key result"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr "Stoppa terminal"
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr "Stoppa den här miljön"
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr "Idag"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "Totalt antal användare"
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr "Trädvy"
msgid "Trending"
msgstr "Trendande"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr "Stäng av"
msgid "Turn on"
msgstr "Sätt på"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "En URL måste börja med %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, eller %{codeStart}ftp://%{codeEnd}"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr "Variabler"
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr "Visa sida @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55024,6 +56068,9 @@ msgstr "Igår"
msgid "You"
msgstr "Du"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Ditt namn"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr "Dina projekt"
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr "ta bort startdatum"
msgid "remove weight"
msgstr "ta bort vikt"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr "rätt format."
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr "wikin"
diff --git a/locale/sw_KE/gitlab.po b/locale/sw_KE/gitlab.po
index 3803862e66d..6ab44a24252 100644
--- a/locale/sw_KE/gitlab.po
+++ b/locale/sw_KE/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: sw\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ta_IN/gitlab.po b/locale/ta_IN/gitlab.po
index bf5548bb5a2..98c9b732141 100644
--- a/locale/ta_IN/gitlab.po
+++ b/locale/ta_IN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ta\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/th_TH/gitlab.po b/locale/th_TH/gitlab.po
index aa175ec8ffd..0bc5ceb4110 100644
--- a/locale/th_TH/gitlab.po
+++ b/locale/th_TH/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: th\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:37\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -460,6 +452,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -494,15 +489,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -606,12 +592,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -648,6 +628,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -822,6 +805,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1075,6 +1064,9 @@ msgstr[0] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1154,7 +1146,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1169,6 +1164,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1223,6 +1221,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1241,6 +1242,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1256,9 +1260,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1293,6 +1309,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1311,9 +1333,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1344,7 +1363,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1634,9 +1653,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1742,7 +1758,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -1865,9 +1908,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -1887,6 +1927,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -1932,6 +1975,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2253,6 +2299,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2727,6 +2779,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -2865,9 +2920,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3021,15 +3073,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3039,9 +3091,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3399,6 +3448,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3495,6 +3547,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4113,6 +4168,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4146,6 +4204,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4257,18 +4318,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4617,6 +4684,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4647,9 +4723,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4761,12 +4837,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4788,9 +4870,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -4851,9 +4930,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -4869,9 +4945,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -4947,9 +5020,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5178,9 +5248,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5345,6 +5414,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5453,6 +5525,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5561,6 +5636,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5573,16 +5651,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5615,9 +5696,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5678,6 +5756,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5690,16 +5789,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5717,9 +5813,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6231,9 +6324,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6297,6 +6387,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6312,9 +6405,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6504,9 +6594,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6522,6 +6609,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6643,13 +6733,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6741,7 +6828,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6819,6 +6906,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -6948,6 +7044,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7137,12 +7236,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7167,12 +7260,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7224,9 +7323,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7239,9 +7335,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7251,9 +7344,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7287,16 +7389,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr ""
+
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Bamboo build plan key (for example, `KEY`)."
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7308,7 +7413,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7323,7 +7428,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7428,9 +7533,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7788,6 +7890,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7818,13 +7923,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -7842,10 +7947,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -7885,12 +7990,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -7912,7 +8011,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8103,12 +8205,6 @@ msgstr[0] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8127,9 +8223,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8139,18 +8232,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8163,51 +8250,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8236,9 +8302,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8332,6 +8395,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8341,6 +8407,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8407,15 +8485,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8473,6 +8563,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8491,6 +8587,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8503,6 +8602,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8803,6 +8905,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -8836,9 +8944,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -8848,16 +8965,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -8875,6 +9001,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -8929,7 +9061,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -8992,9 +9127,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9134,6 +9266,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9155,6 +9290,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9218,18 +9359,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9248,16 +9377,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9269,6 +9398,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9719,6 +9851,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -9829,6 +9964,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -9841,6 +9979,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -9853,6 +9994,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -9913,6 +10057,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -9970,6 +10117,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -9982,6 +10132,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10051,9 +10204,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10117,6 +10267,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10135,7 +10288,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10168,25 +10321,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10195,6 +10369,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10285,6 +10462,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10372,13 +10561,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10402,10 +10600,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10634,9 +10844,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11670,16 +11877,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11688,7 +11913,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11697,22 +11922,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11842,6 +12067,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -11890,6 +12118,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12167,13 +12401,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12191,6 +12461,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12212,10 +12488,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12230,9 +12506,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12245,6 +12527,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12275,9 +12560,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12296,12 +12587,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12419,6 +12716,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12479,6 +12779,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12506,7 +12812,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12659,6 +12971,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12749,7 +13064,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -12982,6 +13297,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13166,6 +13484,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13517,7 +13838,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13529,6 +13850,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13592,6 +13916,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13664,9 +13991,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -13850,6 +14174,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -13913,6 +14240,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -13943,9 +14273,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14075,9 +14402,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14114,6 +14438,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14324,6 +14651,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14534,6 +14864,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -14820,9 +15156,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -14851,6 +15184,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15119,9 +15455,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15155,6 +15488,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15236,6 +15572,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15413,9 +15752,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15428,7 +15764,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15739,6 +16075,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16059,16 +16398,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16177,12 +16506,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16201,9 +16536,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16213,6 +16545,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16249,18 +16584,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16270,6 +16614,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16513,9 +16860,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17184,6 +17528,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17310,6 +17699,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17612,6 +18004,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -17903,6 +18298,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -17969,6 +18367,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18065,6 +18466,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18101,6 +18505,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18116,9 +18523,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18182,6 +18586,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18197,9 +18604,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18287,6 +18691,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18602,6 +19009,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18704,15 +19114,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18725,9 +19132,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18743,9 +19147,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18755,9 +19156,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18773,10 +19171,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19678,9 +20076,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -19807,6 +20202,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -19890,6 +20288,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -19905,16 +20306,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -19953,9 +20351,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -19983,18 +20378,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20103,6 +20489,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20395,6 +20784,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20674,9 +21066,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -20996,6 +21385,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21337,12 +21729,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21352,12 +21738,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21466,12 +21846,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21529,9 +21903,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21553,6 +21924,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21640,9 +22014,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21871,7 +22248,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -21889,7 +22266,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22066,22 +22443,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22141,6 +22518,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22162,16 +22542,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22201,9 +22578,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22213,9 +22587,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22330,9 +22701,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22402,6 +22770,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22414,6 +22785,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22450,10 +22824,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22483,9 +22857,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22624,6 +22995,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22717,10 +23091,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -22984,6 +23361,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23005,6 +23385,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23047,12 +23430,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23077,6 +23469,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23101,6 +23496,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23143,6 +23544,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23206,30 +23610,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23290,7 +23670,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23332,7 +23712,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23455,6 +23835,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23509,6 +23892,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23763,10 +24155,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-
msgid "Hide values"
msgstr ""
@@ -23785,6 +24173,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -23860,6 +24251,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -23950,6 +24344,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24062,7 +24456,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24074,7 +24468,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24146,6 +24543,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24433,9 +24833,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24611,10 +25008,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24629,6 +25026,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24644,6 +25044,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25130,6 +25533,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25255,9 +25661,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25643,9 +26046,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -25851,10 +26251,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26181,13 +26581,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26292,6 +26692,10 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26301,9 +26705,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26344,6 +26747,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26473,6 +26879,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26602,6 +27011,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26671,15 +27083,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26731,6 +27143,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -26779,6 +27197,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -26938,7 +27359,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27208,6 +27629,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27217,6 +27641,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27289,6 +27716,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27409,9 +27839,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27448,6 +27875,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27478,6 +27908,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27572,6 +28116,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27612,7 +28162,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27630,6 +28180,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -27913,9 +28466,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -27946,6 +28496,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -27961,9 +28514,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28156,7 +28706,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28334,9 +28884,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28370,6 +28917,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28523,12 +29049,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28583,9 +29103,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29189,100 +29706,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29576,6 +30096,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -29957,6 +30480,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -29990,15 +30516,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30008,15 +30528,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30029,9 +30543,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30068,6 +30579,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30291,9 +30805,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30387,9 +30907,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30405,6 +30922,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30435,96 +30955,147 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30549,9 +31120,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31117,9 +31694,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31132,9 +31706,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31562,15 +32133,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31676,6 +32247,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -31821,18 +32395,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -31842,6 +32404,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -31857,6 +32422,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -31875,6 +32443,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32080,6 +32654,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32128,6 +32708,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32158,16 +32744,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32239,6 +32825,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32329,6 +32918,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32344,6 +32936,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32356,7 +32951,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32485,6 +33080,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32503,27 +33101,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33105,9 +33721,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33198,6 +33811,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33216,6 +33832,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33264,7 +33886,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33408,6 +34042,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33477,6 +34171,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33552,6 +34249,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -33762,6 +34462,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -33844,6 +34553,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -33862,6 +34574,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -33928,6 +34643,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -33964,6 +34682,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34105,6 +34826,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34252,6 +34976,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34396,6 +35123,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -34813,6 +35543,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -34873,12 +35627,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -34897,9 +35645,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -34972,6 +35717,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35008,6 +35756,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35926,9 +36680,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36124,6 +36875,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36232,6 +36986,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36352,7 +37109,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36718,7 +37475,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37022,7 +37779,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37049,10 +37806,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37271,6 +38043,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37358,9 +38133,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37478,6 +38250,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37523,6 +38298,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -37940,29 +38718,9 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -37997,6 +38755,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38060,6 +38821,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38653,12 +39417,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38740,9 +39510,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -38788,6 +39555,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39230,9 +40000,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39408,6 +40175,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39462,6 +40232,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39522,6 +40295,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39624,6 +40400,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39702,6 +40481,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -39759,9 +40541,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -39828,9 +40607,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40263,6 +41039,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,7 +41101,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40391,9 +41170,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40517,10 +41293,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-
msgid "Reveal values"
msgstr ""
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40624,9 +41405,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40959,6 +41737,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41231,6 +42012,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41351,7 +42135,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41360,9 +42144,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41587,9 +42368,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -41761,9 +42557,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -41782,6 +42587,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -41803,21 +42611,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -41842,6 +42668,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -41851,6 +42680,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -41866,6 +42698,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -41926,9 +42761,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -41980,34 +42812,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42034,15 +42857,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42055,7 +42872,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42208,6 +43043,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42390,6 +43228,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42399,6 +43240,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42456,6 +43327,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42543,7 +43417,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42645,6 +43519,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42654,6 +43531,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42672,12 +43558,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42690,6 +43582,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -42720,6 +43615,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -42732,10 +43630,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -42744,6 +43642,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -42816,6 +43720,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,7 +43735,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -42843,6 +43753,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -42858,6 +43771,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -42885,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -42910,6 +43829,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -42997,12 +43919,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43036,6 +43964,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43069,6 +44003,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43153,12 +44093,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43195,6 +44150,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43381,6 +44339,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43432,6 +44393,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43447,12 +44411,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43586,6 +44544,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43685,6 +44646,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -43952,6 +44925,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44114,9 +45090,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44156,6 +45138,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44216,7 +45204,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44225,6 +45216,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44423,9 +45420,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44441,6 +45435,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44519,19 +45516,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44589,27 +45600,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -44872,9 +45862,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -44923,19 +45910,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45235,6 +46216,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45292,6 +46276,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45352,7 +46339,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -45709,7 +46693,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -45730,12 +46714,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -45931,6 +46909,10 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46231,9 +47213,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46315,9 +47294,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -46961,9 +47940,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47234,13 +48210,22 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47256,21 +48241,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47551,6 +48521,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -47744,6 +48717,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -47768,6 +48744,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -47786,9 +48768,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -47828,16 +48807,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48085,6 +49070,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48223,6 +49211,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48274,13 +49265,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48451,6 +49439,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48646,6 +49637,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -48736,9 +49730,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -48775,6 +49775,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -48967,9 +49970,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49114,12 +50114,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49809,9 +50807,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -49855,6 +50850,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -49960,7 +50958,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -49975,9 +50973,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50035,6 +51030,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50071,6 +51069,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50113,7 +51114,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50125,9 +51126,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50143,10 +51141,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50188,18 +51186,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50267,6 +51253,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50291,16 +51283,33 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50360,10 +51369,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50498,27 +51507,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50534,28 +51522,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50697,12 +51676,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -50778,15 +51751,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -50952,9 +51940,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51030,7 +52027,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51234,6 +52234,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51372,7 +52375,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51387,9 +52393,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51411,13 +52414,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51450,7 +52453,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51489,7 +52492,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -51768,12 +52768,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -51786,6 +52780,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -51850,6 +52850,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52405,22 +53411,27 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52438,6 +53449,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52540,15 +53554,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52630,9 +53635,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52651,15 +53653,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -52757,6 +53753,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -52788,6 +53787,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -52863,6 +53865,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -52932,6 +53937,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54207,6 +55218,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54229,6 +55243,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54274,6 +55291,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54310,15 +55330,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54349,9 +55381,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54373,12 +55402,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54403,9 +55438,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54535,7 +55567,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54553,6 +55585,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54631,7 +55666,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54685,6 +55720,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -54712,6 +55753,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55079,10 +56123,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55136,6 +56180,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55164,6 +56211,9 @@ msgstr[0] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55197,7 +56247,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55209,7 +56259,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55242,6 +56292,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55281,6 +56334,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55492,6 +56548,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55504,6 +56563,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55519,10 +56581,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55724,6 +56786,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -55757,6 +56822,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -55893,6 +56961,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56121,10 +57192,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56193,9 +57264,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56238,7 +57306,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56275,17 +57343,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56404,15 +57461,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56470,9 +57530,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56923,6 +57980,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57083,6 +58143,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57418,6 +58481,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57463,6 +58538,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57481,6 +58559,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57514,6 +58595,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57746,6 +58830,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -57772,9 +58859,6 @@ msgstr[0] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -57945,6 +59029,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -57954,6 +59041,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ti_ER/gitlab.po b/locale/ti_ER/gitlab.po
new file mode 100644
index 00000000000..44b9d218763
--- /dev/null
+++ b/locale/ti_ER/gitlab.po
@@ -0,0 +1,59581 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: gitlab-ee\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: \n"
+"Language-Team: Tigrinya\n"
+"Language: ti_ER\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Crowdin-Project: gitlab-ee\n"
+"X-Crowdin-Project-ID: 288872\n"
+"X-Crowdin-Language: ti\n"
+"X-Crowdin-File: /master/locale/gitlab.pot\n"
+"X-Crowdin-File-ID: 16\n"
+"PO-Revision-Date: 2024-01-11 16:30\n"
+
+msgid " %{start} to %{end}"
+msgstr ""
+
+msgid " (from %{timeoutSource})"
+msgstr ""
+
+msgid " (squashes %{strongStart}%{count}%{strongEnd} commit)"
+msgid_plural " (squashes %{strongStart}%{count}%{strongEnd} commits)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid " Collected %{time}"
+msgstr ""
+
+msgid " Please sign in."
+msgstr ""
+
+msgid " Try to %{action} this file again."
+msgstr ""
+
+msgid " You need to do this before %{grace_period_deadline}."
+msgstr ""
+
+msgid " and "
+msgstr ""
+
+msgid " and %{sliced}"
+msgstr ""
+
+msgid " and leave a comment on"
+msgstr ""
+
+msgid " except branch:"
+msgid_plural " except branches:"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid " or "
+msgstr ""
+
+msgid " or %{emphasisStart}!merge request id%{emphasisEnd}"
+msgstr ""
+
+msgid " or %{emphasisStart}#id%{emphasisEnd}"
+msgstr ""
+
+msgid " or %{emphasisStart}#issue id%{emphasisEnd}"
+msgstr ""
+
+msgid " or %{emphasisStart}&epic id%{emphasisEnd}"
+msgstr ""
+
+msgid " or references"
+msgstr ""
+
+msgid " reacted with :%{name}:"
+msgstr ""
+
+msgid "\"%{path}\" did not exist on \"%{ref}\""
+msgstr ""
+
+msgid "\"%{repository_name}\" size (%{repository_size}) is larger than the limit of %{limit}."
+msgstr ""
+
+msgid "##### ERROR ##### You have used %{usage_percentage} of the storage quota for %{namespace_name} (%{current_size} of %{size_limit}). %{namespace_name} is now read-only. Projects under this namespace are locked and actions will be restricted. To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
+msgid "##### WARNING ##### You have used %{usage_percentage} of the storage quota for %{namespace_name} (%{current_size} of %{size_limit}). If %{namespace_name} exceeds the storage quota, all projects in the namespace will be locked and actions will be restricted. To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
+msgid "#%{issueIid} (closed)"
+msgstr ""
+
+msgid "#general, #development"
+msgstr ""
+
+msgid "%d Alert"
+msgid_plural "%d Alerts"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d Approval"
+msgid_plural "%d Approvals"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d Module"
+msgid_plural "%d Modules"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d Package"
+msgid_plural "%d Packages"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d Scanned URL"
+msgid_plural "%d Scanned URLs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d URL scanned"
+msgid_plural "%d URLs scanned"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d additional approver"
+msgid_plural "%d additional approvers"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d additional assignee"
+msgid_plural "%d additional assignees"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d additional commenter"
+msgid_plural "%d additional commenters"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d additional committer"
+msgid_plural "%d additional committers"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d additional user"
+msgid_plural "%d additional users"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d approval required"
+msgid_plural "%d approvals required"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d approver"
+msgid_plural "%d approvers"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d approver (you've approved)"
+msgid_plural "%d approvers (you've approved)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d artifact"
+msgid_plural "%d artifacts"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d author"
+msgid_plural "%d authors"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d changed file"
+msgid_plural "%d changed files"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d character remaining"
+msgid_plural "%d characters remaining"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d child epic"
+msgid_plural "%d child epics"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d code quality issue"
+msgid_plural "%d code quality issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d commenter"
+msgid_plural "%d commenters"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d commit"
+msgid_plural "%d commits"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d commit author"
+msgid_plural "%d commit authors"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d commit behind"
+msgid_plural "%d commits behind"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d commit,"
+msgid_plural "%d commits,"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d completed issue"
+msgid_plural "%d completed issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d contribution"
+msgid_plural "%d contributions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d contributor"
+msgid_plural "%d contributors"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d environment found"
+msgid_plural "%d environments found"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d epic"
+msgid_plural "%d epics"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d exporter"
+msgid_plural "%d exporters"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d failed security job"
+msgid_plural "%d failed security jobs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d file"
+msgid_plural "%d files"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d fork"
+msgid_plural "%d forks"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d group"
+msgid_plural "%d groups"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d group found"
+msgid_plural "%d groups found"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d inaccessible merge request"
+msgid_plural "%d inaccessible merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d issue"
+msgid_plural "%d issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d issue in this group"
+msgid_plural "%d issues in this group"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d issue successfully imported with the label"
+msgid_plural "%d issues successfully imported with the label"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d job"
+msgid_plural "%d jobs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d layer"
+msgid_plural "%d layers"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d merge request"
+msgid_plural "%d merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d merge request that you don't have access to."
+msgid_plural "%d merge requests that you don't have access to."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d merge requests"
+msgid_plural "%d merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d metric"
+msgid_plural "%d metrics"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d milestone"
+msgid_plural "%d milestones"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d more comment"
+msgid_plural "%d more comments"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d pending comment"
+msgid_plural "%d pending comments"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d personal project will be removed and cannot be restored."
+msgid_plural "%d personal projects will be removed and cannot be restored."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d previously merged commit"
+msgid_plural "%d previously merged commits"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d project"
+msgid_plural "%d projects"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d project selected"
+msgid_plural "%d projects selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d push"
+msgid_plural "%d pushes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d remaining"
+msgid_plural "%d remaining"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d reply"
+msgid_plural "%d replies"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d second"
+msgid_plural "%d seconds"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d snippet"
+msgid_plural "%d snippets"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d stage"
+msgid_plural "%d stages"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d star"
+msgid_plural "%d stars"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d tag"
+msgid_plural "%d tags"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d tag per image name"
+msgid_plural "%d tags per image name"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d template found"
+msgid_plural "%d templates found"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d unresolved thread"
+msgid_plural "%d unresolved threads"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d version"
+msgid_plural "%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d vulnerability"
+msgid_plural "%d vulnerabilities"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d vulnerability dismissed"
+msgid_plural "%d vulnerabilities dismissed"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d vulnerability set to confirmed"
+msgid_plural "%d vulnerabilities set to confirmed"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d vulnerability set to dismissed"
+msgid_plural "%d vulnerabilities set to dismissed"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d vulnerability set to needs triage"
+msgid_plural "%d vulnerabilities set to needs triage"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d vulnerability set to resolved"
+msgid_plural "%d vulnerabilities set to resolved"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d warning found:"
+msgid_plural "%d warnings found:"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d work item"
+msgid_plural "%d work items"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%s additional commit has been omitted to prevent performance issues."
+msgid_plural "%s additional commits have been omitted to prevent performance issues."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{actionText} %{actionDetail}"
+msgstr ""
+
+msgid "%{actionText} %{actionDetail} %{timeago} by %{author}"
+msgstr ""
+
+msgid "%{actionText} & %{openOrClose} %{noteable}"
+msgstr ""
+
+msgid "%{actionText} & close %{noteable}"
+msgstr ""
+
+msgid "%{actionText} & reopen %{noteable}"
+msgstr ""
+
+msgid "%{address} is an invalid IP address range"
+msgstr ""
+
+msgid "%{author_link} cloned %{original_issue} to %{new_issue}."
+msgstr ""
+
+msgid "%{author_link} cloned %{original_issue}. You don't have access to the new project."
+msgstr ""
+
+msgid "%{author_link} wrote:"
+msgstr ""
+
+msgid "%{authorsName}'s thread"
+msgstr ""
+
+msgid "%{author} has added you as an approver."
+msgstr ""
+
+msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
+msgstr ""
+
+msgid "%{board_target} not found"
+msgstr ""
+
+msgid "%{boldStart}Merge blocked:%{boldEnd} %{count} check failed"
+msgid_plural "%{boldStart}Merge blocked:%{boldEnd} %{count} checks failed"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{boldStart}Ready to merge by members who can write to the target branch.%{boldEnd}"
+msgstr ""
+
+msgid "%{boldStart}Ready to merge!%{boldEnd}"
+msgstr ""
+
+msgid "%{bold_start}%{count}%{bold_end} issue"
+msgid_plural "%{bold_start}%{count}%{bold_end} issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{bold_start}%{count}%{bold_end} member"
+msgid_plural "%{bold_start}%{count}%{bold_end} members"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{bold_start}%{count}%{bold_end} opened merge request"
+msgid_plural "%{bold_start}%{count}%{bold_end} opened merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{chartTitle} no data series"
+msgstr ""
+
+msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "%{commit_author_link} authored %{commit_authored_timeago}"
+msgstr ""
+
+msgid "%{commit_author_link} authored %{commit_authored_timeago} and %{commit_committer_avatar} %{commit_committer_link} committed %{commit_committer_timeago}"
+msgstr ""
+
+msgid "%{completedCount} completed weight"
+msgstr ""
+
+msgid "%{completedCount} of %{count} checklist item completed"
+msgid_plural "%{completedCount} of %{count} checklist items completed"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{completedWeight} of %{totalWeight} weight completed"
+msgstr ""
+
+msgid "%{completed} of %{total} issues closed"
+msgstr ""
+
+msgid "%{completed} of %{total} weight completed"
+msgstr ""
+
+msgid "%{cores} cores"
+msgstr ""
+
+msgid "%{count} %{scope} for term '%{term}'"
+msgstr ""
+
+msgid "%{count} LOC/commit"
+msgstr ""
+
+msgid "%{count} Participant"
+msgid_plural "%{count} Participants"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} approval required from %{name}"
+msgid_plural "%{count} approvals required from %{name}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} approvals from %{name}"
+msgstr ""
+
+msgid "%{count} contact"
+msgid_plural "%{count} contacts"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} files touched"
+msgstr ""
+
+msgid "%{count} group"
+msgid_plural "%{count} groups"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} issue"
+msgid_plural "%{count} issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} item"
+msgid_plural "%{count} items"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} items per page"
+msgstr ""
+
+msgid "%{count} merge request"
+msgid_plural "%{count} merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} more"
+msgstr ""
+
+msgid "%{count} more assignees"
+msgstr ""
+
+msgid "%{count} more release"
+msgid_plural "%{count} more releases"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} of %{required} approvals from %{name}"
+msgstr ""
+
+msgid "%{count} of %{total}"
+msgstr ""
+
+msgid "%{count} project"
+msgid_plural "%{count} projects"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{count} selected"
+msgstr ""
+
+msgid "%{count} tags"
+msgstr ""
+
+msgid "%{count} total weight"
+msgstr ""
+
+msgid "%{days} days until tags are automatically removed"
+msgstr ""
+
+msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
+msgstr ""
+
+msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
+msgstr ""
+
+msgid "%{docs_link_start}Setting up a verified domain%{docs_link_end} requires being linked to a project."
+msgstr ""
+
+msgid "%{docs_link_start}What is Large File Storage?%{docs_link_end}"
+msgstr ""
+
+msgid "%{docs_link_start}What is two-factor authentication?%{docs_link_end}"
+msgstr ""
+
+msgid "%{duration}, queued for %{queuedDuration} seconds"
+msgstr ""
+
+msgid "%{duration}ms"
+msgstr ""
+
+msgid "%{edit_in_new_fork_notice} Try to cherry-pick this commit again."
+msgstr ""
+
+msgid "%{edit_in_new_fork_notice} Try to create a new directory again."
+msgstr ""
+
+msgid "%{edit_in_new_fork_notice} Try to revert this commit again."
+msgstr ""
+
+msgid "%{edit_in_new_fork_notice} Try to upload a file again."
+msgstr ""
+
+msgid "%{emailPrefix}@company.com"
+msgstr ""
+
+msgid "%{extra} more downstream pipelines"
+msgstr ""
+
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
+msgid "%{filePath} deleted"
+msgstr ""
+
+msgid "%{firstLabel} +%{labelCount} more"
+msgstr ""
+
+msgid "%{firstMilestoneName} + %{numberOfOtherMilestones} more"
+msgstr ""
+
+msgid "%{fork_icon} %{source_project_path}:%{source_branch}"
+msgstr ""
+
+msgid "%{gitlab_experience_text}. Don't worry, this information isn't shared outside of your self-managed GitLab instance."
+msgstr ""
+
+msgid "%{gitlab_experience_text}. We won't share this information with anyone."
+msgstr ""
+
+msgid "%{global_id} is not a valid ID for %{expected_types}."
+msgstr ""
+
+msgid "%{group_name} activity"
+msgstr ""
+
+msgid "%{group_name} group members"
+msgstr ""
+
+msgid "%{group_name} is approaching the limit of available seats"
+msgstr ""
+
+msgid "%{group_name} uses group managed accounts. You need to create a new GitLab account which will be managed by %{group_name}."
+msgstr ""
+
+msgid "%{group_name}&%{epic_iid} &middot; created %{epic_created} by %{author}"
+msgstr ""
+
+msgid "%{host} sign-in from new location"
+msgstr ""
+
+msgid "%{human_readable_key} exceeds %{max_value_length} characters"
+msgstr ""
+
+msgid "%{human_readable_key} is less than %{min_value_length} characters"
+msgstr ""
+
+msgid "%{integrations_link_start}Integrations%{link_end} enable you to make third-party applications part of your GitLab workflow. If the available integrations don't meet your needs, consider using a %{webhooks_link_start}webhook%{link_end}."
+msgstr ""
+
+msgid "%{issuableType} will be removed! Are you sure?"
+msgstr ""
+
+msgid "%{issuable_class_name} doesn't exist or you don't have permission to add timelog to it."
+msgstr ""
+
+msgid "%{issuable}(s) already assigned"
+msgstr ""
+
+msgid "%{issueType} actions"
+msgstr ""
+
+msgid "%{issuesSize} with a limit of %{maxIssueCount}"
+msgstr ""
+
+msgid "%{italic_start}What's new%{italic_end} is inactive and cannot be viewed."
+msgstr ""
+
+msgid "%{item_ids} could not be removed due to insufficient permissions"
+msgstr ""
+
+msgid "%{item_ids} could not be removed due to not being linked"
+msgstr ""
+
+msgid "%{itemsCount} issues with a limit of %{maxIssueCount}"
+msgstr ""
+
+msgid "%{jobName}"
+msgstr ""
+
+msgid "%{jobName} job is being retried"
+msgstr ""
+
+msgid "%{jobs} Jobs"
+msgstr ""
+
+msgid "%{key} is not a valid URL."
+msgstr ""
+
+msgid "%{key} is not a valid action."
+msgstr ""
+
+msgid "%{labelStart}Actual response:%{labelEnd} %{headers}"
+msgstr ""
+
+msgid "%{labelStart}Assert:%{labelEnd} %{assertion}"
+msgstr ""
+
+msgid "%{labelStart}Class:%{labelEnd} %{class}"
+msgstr ""
+
+msgid "%{labelStart}Crash Address:%{labelEnd} %{crash_address}"
+msgstr ""
+
+msgid "%{labelStart}Crash State:%{labelEnd} %{crash_state}"
+msgstr ""
+
+msgid "%{labelStart}Crash State:%{labelEnd} %{stacktrace_snippet}"
+msgstr ""
+
+msgid "%{labelStart}Crash Type:%{labelEnd} %{crash_type}"
+msgstr ""
+
+msgid "%{labelStart}Evidence:%{labelEnd} %{evidence}"
+msgstr ""
+
+msgid "%{labelStart}File:%{labelEnd} %{file}"
+msgstr ""
+
+msgid "%{labelStart}Image:%{labelEnd} %{image}"
+msgstr ""
+
+msgid "%{labelStart}Method:%{labelEnd} %{method}"
+msgstr ""
+
+msgid "%{labelStart}Namespace:%{labelEnd} %{namespace}"
+msgstr ""
+
+msgid "%{labelStart}Project:%{labelEnd} %{project}"
+msgstr ""
+
+msgid "%{labelStart}Scanner:%{labelEnd} %{scanner}"
+msgstr ""
+
+msgid "%{labelStart}Sent request:%{labelEnd} %{headers}"
+msgstr ""
+
+msgid "%{labelStart}Severity:%{labelEnd} %{severity}"
+msgstr ""
+
+msgid "%{labelStart}Tool:%{labelEnd} %{reportType}"
+msgstr ""
+
+msgid "%{labelStart}URL:%{labelEnd} %{url}"
+msgstr ""
+
+msgid "%{labelStart}Unmodified response:%{labelEnd} %{headers}"
+msgstr ""
+
+msgid "%{label_for_message} unavailable"
+msgstr ""
+
+msgid "%{label_name} is locked and was not removed"
+msgstr ""
+
+msgid "%{label_name} was removed"
+msgstr ""
+
+msgid "%{lessThan} 1 hour"
+msgstr ""
+
+msgid "%{lets_encrypt_link_start}Let's Encrypt%{lets_encrypt_link_end} is a free, automated, and open certificate authority (CA) that issues digital certificates to enable HTTPS (SSL/TLS) for sites."
+msgstr ""
+
+msgid "%{level_name} is not allowed in a %{group_level_name} group."
+msgstr ""
+
+msgid "%{level_name} is not allowed since the fork source project has lower visibility."
+msgstr ""
+
+msgid "%{linkStart} Learn more%{linkEnd}."
+msgstr ""
+
+msgid "%{linkStart}%{linkEnd} review summary"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
+msgid "%{listToShow}, and %{awardsListLength} more"
+msgstr ""
+
+msgid "%{lock_path} is locked by GitLab User %{lock_user_id}"
+msgstr ""
+
+msgid "%{mergeLength}/%{usersLength} can merge"
+msgstr ""
+
+msgid "%{message} showing first %{warnings_displayed}"
+msgstr ""
+
+msgid "%{milestone} (expired)"
+msgstr ""
+
+msgid "%{milliseconds}ms"
+msgstr ""
+
+msgid "%{minutesUsed} units"
+msgstr ""
+
+msgid "%{model_name} not found"
+msgstr ""
+
+msgid "%{mrText}, this issue will be closed automatically."
+msgstr ""
+
+msgid "%{name_with_link} namespace has %{percent} or less Shared Runner Pipeline minutes remaining. Once it runs out, no new jobs or pipelines in its projects will run."
+msgstr ""
+
+msgid "%{name_with_link} namespace has run out of Shared Runner Pipeline minutes. No new jobs or pipelines in its projects will run."
+msgstr ""
+
+msgid "%{name} (Busy)"
+msgstr ""
+
+msgid "%{name} is already being used for another emoji"
+msgstr ""
+
+msgid "%{name} is reserved for %{type} report type"
+msgstr ""
+
+msgid "%{name} is scheduled for %{action}"
+msgstr ""
+
+msgid "%{name}'s avatar"
+msgstr ""
+
+msgid "%{name}(%{url}) namespace has %{percent} or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
+msgstr ""
+
+msgid "%{name}(%{url}) namespace has run out of Shared Runner Pipeline minutes so no new jobs or pipelines in its projects will run."
+msgstr ""
+
+msgid "%{name}, confirm your email address now!"
+msgstr ""
+
+msgid "%{name}: %{resultsString}"
+msgstr ""
+
+msgid "%{no_of_days} day"
+msgid_plural "%{no_of_days} days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{numberOfSelectedTags} tags"
+msgstr ""
+
+msgid "%{number_commits_behind} commits behind %{default_branch}, %{number_commits_ahead} commits ahead"
+msgstr ""
+
+msgid "%{oneMonthAgo} - %{today}"
+msgstr ""
+
+msgid "%{oneWeekAgo} - %{today}"
+msgstr ""
+
+msgid "%{oneYearAgo} - %{today}"
+msgstr ""
+
+msgid "%{openedEpics} open, %{closedEpics} closed"
+msgstr ""
+
+msgid "%{openedIssues} open, %{closedIssues} closed"
+msgstr ""
+
+msgid "%{over_limit_message} To get more seats, %{link_start}upgrade to a paid tier%{link_end}."
+msgstr ""
+
+msgid "%{percentageUsed}%% used"
+msgstr ""
+
+msgid "%{percentage}%% issues closed"
+msgstr ""
+
+msgid "%{percentage}%% weight completed"
+msgstr ""
+
+msgid "%{percent}%% complete"
+msgstr ""
+
+msgid "%{percent}%{percentSymbol} complete"
+msgstr ""
+
+msgid "%{placeholder} is not a valid color scheme"
+msgstr ""
+
+msgid "%{placeholder} is not a valid theme"
+msgstr ""
+
+msgid "%{policy_link} (notifying after %{elapsed_time} minutes unless %{status})"
+msgstr ""
+
+msgid "%{project_name}"
+msgstr ""
+
+msgid "%{project_path} is a project that you can use to add a README to your GitLab profile. Create a public project and initialize the repository with a README to get started. %{help_link_start}Learn more%{help_link_end}."
+msgstr ""
+
+msgid "%{ref} cannot be added: %{error}"
+msgstr ""
+
+msgid "%{relation_type} epic does not exist."
+msgstr ""
+
+msgid "%{relation_type} epic is not present."
+msgstr ""
+
+msgid "%{releases} release"
+msgid_plural "%{releases} releases"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{remaining_approvals} left"
+msgstr ""
+
+msgid "%{requireStart}Require%{requireEnd} %{approvalsRequired} %{approvalStart}approval%{approvalEnd} from:"
+msgid_plural "%{requireStart}Require%{requireEnd} %{approvalsRequired} %{approvalStart}approvals%{approvalEnd} from:"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{retryButtonStart}Try again%{retryButtonEnd} or %{newFileButtonStart}attach a new file%{newFileButtonEnd}."
+msgstr ""
+
+msgid "%{reviewer_names} was added as a reviewer."
+msgid_plural "%{reviewer_names} were added as reviewers."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{reviewer_names} was removed from reviewers."
+msgid_plural "%{reviewer_names} were removed from reviewers."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{rotation} has been recalculated with the remaining participants. Please review the new setup for %{rotation_link}. It is recommended that you reach out to the current on-call responder to ensure continuity of on-call coverage."
+msgstr ""
+
+msgid "%{rotation} has been recalculated with the remaining participants. Please review the new setup for %{rotation}. It is recommended that you reach out to the current on-call responder to ensure continuity of on-call coverage."
+msgstr ""
+
+msgid "%{scope} results for term '%{term}'"
+msgstr ""
+
+msgid "%{seconds}s"
+msgstr ""
+
+msgid "%{securityScanner} is not enabled for this project. %{linkStart}More information%{linkEnd}"
+msgid_plural "%{securityScanner} are not enabled for this project. %{linkStart}More information%{linkEnd}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{securityScanner} result is not available because a pipeline has not been run since it was enabled. %{linkStart}Run a pipeline%{linkEnd}"
+msgid_plural "%{securityScanner} results are not available because a pipeline has not been run since it was enabled. %{linkStart}Run a pipeline%{linkEnd}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{selectedLabelsCount} label"
+msgid_plural "%{selectedLabelsCount} labels"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{selectedProjectsCount} project"
+msgid_plural "%{selectedProjectsCount} projects"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{size} B"
+msgstr ""
+
+msgid "%{size} GiB"
+msgstr ""
+
+msgid "%{size} KiB"
+msgstr ""
+
+msgid "%{size} MiB"
+msgstr ""
+
+msgid "%{sourceBranch} into %{targetBranch}"
+msgstr ""
+
+msgid "%{source_project_path}:%{source_branch}"
+msgstr ""
+
+msgid "%{source_type} cannot be related to %{type_type}"
+msgstr ""
+
+msgid "%{source_type} cannot block %{type_type}"
+msgstr ""
+
+msgid "%{source} %{copyButton} into %{target}"
+msgstr ""
+
+msgid "%{spammable_titlecase} was submitted to Akismet successfully."
+msgstr ""
+
+msgid "%{spanStart}at line%{spanEnd} %{errorLine}%{errorColumn}"
+msgstr ""
+
+msgid "%{spanStart}in%{spanEnd} %{errorFn}"
+msgstr ""
+
+msgid "%{startDate} – %{dueDate}"
+msgstr ""
+
+msgid "%{startDate} – No due date"
+msgstr ""
+
+msgid "%{statusStart}Dismissed%{statusEnd}"
+msgstr ""
+
+msgid "%{statusStart}Dismissed%{statusEnd} at %{projectLink}"
+msgstr ""
+
+msgid "%{statusStart}Dismissed%{statusEnd} on pipeline %{pipelineLink}"
+msgstr ""
+
+msgid "%{statusStart}Dismissed%{statusEnd} on pipeline %{pipelineLink} at %{projectLink}"
+msgstr ""
+
+msgid "%{statusStart}Dismissed%{statusEnd}: %{dismissalReason}"
+msgstr ""
+
+msgid "%{statusStart}Dismissed%{statusEnd}: %{dismissalReason} at %{projectLink}"
+msgstr ""
+
+msgid "%{statusStart}Dismissed%{statusEnd}: %{dismissalReason} on pipeline %{pipelineLink}"
+msgstr ""
+
+msgid "%{statusStart}Dismissed%{statusEnd}: %{dismissalReason} on pipeline %{pipelineLink} at %{projectLink}"
+msgstr ""
+
+msgid "%{strongOpen}Warning:%{strongClose} SAML group links can cause GitLab to automatically change member roles or remove members from groups."
+msgstr ""
+
+msgid "%{strongStart}%{count}%{strongEnd} commit"
+msgid_plural "%{strongStart}%{count}%{strongEnd} commits"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
+msgstr ""
+
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
+msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
+msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{commit_count}%{strong_end} Commit"
+msgid_plural "%{strong_start}%{commit_count}%{strong_end} Commits"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{count} approval rule%{strong_end} requires eligible members to approve before merging."
+msgid_plural "%{strong_start}%{count} approval rules%{strong_end} require eligible members to approve before merging."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{count} eligible member%{strong_end} must approve to merge."
+msgid_plural "%{strong_start}%{count} eligible members%{strong_end} must approve to merge."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{count} member%{strong_end} must approve to merge. Anyone with role Developer or higher can approve."
+msgid_plural "%{strong_start}%{count} members%{strong_end} must approve to merge. Anyone with role Developer or higher can approve."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{count}%{strong_end} Environment"
+msgid_plural "%{strong_start}%{count}%{strong_end} Environments"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{errors}%{strong_end} %{prefix} finding"
+msgid_plural "%{strong_start}%{errors}%{strong_end} %{prefix} findings"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{human_size}%{strong_end} Forked Project"
+msgstr ""
+
+msgid "%{strong_start}%{human_size}%{strong_end} Project Storage"
+msgstr ""
+
+msgid "%{strong_start}%{release_count}%{strong_end} Release"
+msgid_plural "%{strong_start}%{release_count}%{strong_end} Releases"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{tag_count}%{strong_end} Tag"
+msgid_plural "%{strong_start}%{tag_count}%{strong_end} Tags"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{strong_start}%{terraform_states_count}%{strong_end} Terraform State"
+msgid_plural "%{strong_start}%{terraform_states_count}%{strong_end} Terraform States"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "%{tabname} changed"
+msgstr ""
+
+msgid "%{tags} tag per image name"
+msgstr ""
+
+msgid "%{tags} tags per image name"
+msgstr ""
+
+msgid "%{tag}-%{evidence}-%{filename}"
+msgstr ""
+
+msgid "%{templateType} template applied"
+msgstr ""
+
+msgid "%{template_project_id} is unknown or invalid"
+msgstr ""
+
+msgid "%{text} is available"
+msgstr ""
+
+msgid "%{time_ago}"
+msgstr ""
+
+msgid "%{timebox_type} does not support burnup charts"
+msgstr ""
+
+msgid "%{timebox_type} must have a start and due date"
+msgstr ""
+
+msgid "%{time} UTC"
+msgstr ""
+
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
+
+msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
+msgstr ""
+
+msgid "%{totalIssueWeight} total weight"
+msgstr ""
+
+msgid "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} free)"
+msgstr ""
+
+msgid "%{total_warnings} warning(s) found:"
+msgstr ""
+
+msgid "%{total}"
+msgstr ""
+
+msgid "%{total} remaining issue weight"
+msgstr ""
+
+msgid "%{total} warnings found: showing first %{warningsDisplayed}"
+msgstr ""
+
+msgid "%{type} must be a %{help_link}"
+msgstr ""
+
+msgid "%{type} only supports %{name} name"
+msgstr ""
+
+msgid "%{url} (optional)"
+msgstr ""
+
+msgid "%{userName}'s avatar"
+msgstr ""
+
+msgid "%{user_name} (%{user_username}) was removed from %{rotation} in %{schedule} in %{project}. "
+msgstr ""
+
+msgid "%{user_name} (%{user_username}) was removed from the following escalation policies in %{project_link}: "
+msgstr ""
+
+msgid "%{user_name} (%{user_username}) was removed from the following escalation policies in %{project}:"
+msgstr ""
+
+msgid "%{user_name} profile page"
+msgstr ""
+
+msgid "%{username} has asked for a GitLab account on your instance %{host}:"
+msgstr ""
+
+msgid "%{username} marked merge request %{mr_link} as draft"
+msgstr ""
+
+msgid "%{username} marked merge request %{mr_link} as ready"
+msgstr ""
+
+msgid "%{username}'s avatar"
+msgstr ""
+
+msgid "%{user} created a merge request: %{mr_link}"
+msgstr ""
+
+msgid "%{user} created an epic: %{epic_link}"
+msgstr ""
+
+msgid "%{user} created an issue: %{issue_link}"
+msgstr ""
+
+msgid "%{user} user’s menu"
+msgstr ""
+
+msgid "%{value} is a reserved name"
+msgstr ""
+
+msgid "%{value} is not included in the list"
+msgstr ""
+
+msgid "%{verb} %{time_spent_value} spent time."
+msgstr ""
+
+msgid "%{verb} this %{noun} as a draft."
+msgstr ""
+
+msgid "%{webhooks_link_start}%{webhook_type}%{webhooks_link_end} enable you to send notifications to web applications in response to events in a group or project."
+msgstr ""
+
+msgid "%{webhooks_link_start}%{webhook_type}%{webhooks_link_end} enable you to send notifications to web applications in response to events in a group or project. We recommend using an %{integrations_link_start}integration%{integrations_link_end} in preference to a webhook."
+msgstr ""
+
+msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
+msgstr ""
+
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
+msgid "'%{level}' is not a valid visibility level"
+msgstr ""
+
+msgid "'%{source}' is not a import source"
+msgstr ""
+
+msgid "'%{template_name}' is unknown or invalid"
+msgstr ""
+
+msgid "'%{value}' days of inactivity must be greater than or equal to 90"
+msgstr ""
+
+msgid "'allow: %{allow}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
+msgid "'except: %{except}' must be an array of string"
+msgstr ""
+
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
+msgid "'projects' is not yet supported"
+msgstr ""
+
+msgid "'schemaVersion' '%{given_version}' is not supported, it must be '%{required_version}'"
+msgstr ""
+
+msgid "'starterProjects' is not yet supported"
+msgstr ""
+
+msgid "(%d closed)"
+msgid_plural "(%d closed)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "(%{mrCount} merged)"
+msgstr ""
+
+msgid "(%{value}) has already been taken"
+msgstr ""
+
+msgid "(+%{count}&nbsp;rules)"
+msgstr ""
+
+msgid "(Group Managed Account)"
+msgstr ""
+
+msgid "(Limited to %{quota} pipeline minutes per month)"
+msgstr ""
+
+msgid "(No changes)"
+msgstr ""
+
+msgid "(Unlimited pipeline minutes)"
+msgstr ""
+
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
+msgid "(check progress)"
+msgstr ""
+
+msgid "(deleted)"
+msgstr ""
+
+msgid "(expired)"
+msgstr ""
+
+msgid "(external link)"
+msgstr ""
+
+msgid "(external participant)"
+msgstr ""
+
+msgid "(leave blank if you don't want to change it)"
+msgstr ""
+
+msgid "(no user)"
+msgstr ""
+
+msgid "(optional)"
+msgstr ""
+
+msgid "(removed)"
+msgstr ""
+
+msgid "(required)"
+msgstr ""
+
+msgid "(revoked)"
+msgstr ""
+
+msgid "(this user)"
+msgstr ""
+
+msgid "(we need your current password to confirm your changes)"
+msgstr ""
+
+msgid "* All times are in UTC unless specified"
+msgstr ""
+
+msgid "+ %{amount} more"
+msgstr ""
+
+msgid "+ %{count} more"
+msgstr ""
+
+msgid "+ %{itemsLength} more"
+msgstr ""
+
+msgid "+ %{moreCount} more"
+msgstr ""
+
+msgid "+ %{numberOfHiddenAssignees} more"
+msgstr ""
+
+msgid "+%d more"
+msgid_plural "+%d more"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "+%{more_assignees_count}"
+msgstr ""
+
+msgid "+%{more_assignees_count} more assignees"
+msgstr ""
+
+msgid "+%{more_reviewers_count}"
+msgstr ""
+
+msgid "+%{more_reviewers_count} more reviewers"
+msgstr ""
+
+msgid "+%{tags} more"
+msgstr ""
+
+msgid ", "
+msgstr ""
+
+msgid ", or "
+msgstr ""
+
+msgid "- %{policy_name} (notifying after %{elapsed_time} minutes unless %{status})"
+msgstr ""
+
+msgid "- Add or remove a user."
+msgstr ""
+
+msgid "- Available to run jobs."
+msgstr ""
+
+msgid "- Create or close an issue."
+msgstr ""
+
+msgid "- Create, update, or delete a merge request."
+msgstr ""
+
+msgid "- Event"
+msgid_plural "- Events"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "- Go to the Activity page for %{project_name}."
+msgstr ""
+
+msgid "- List the visible events for %{project_name} using the Events API %{events_api_link}."
+msgstr ""
+
+msgid "- Not available to run jobs."
+msgstr ""
+
+msgid "- Push code to the repository."
+msgstr ""
+
+msgid "- Select -"
+msgstr ""
+
+msgid "- User"
+msgid_plural "- Users"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "- View the last_activity_at attribute for %{project_name} using the Project API %{projects_api_link}."
+msgstr ""
+
+msgid "- of - issues closed"
+msgstr ""
+
+msgid "- of - weight completed"
+msgstr ""
+
+msgid "- show less"
+msgstr ""
+
+msgid "."
+msgstr ""
+
+msgid ".gitlab-ci.yml with aliases/anchors is not supported. Please change the CI configuration manually."
+msgstr ""
+
+msgid "/"
+msgstr ""
+
+msgid "/day"
+msgstr ""
+
+msgid "0 B"
+msgstr ""
+
+msgid "1 Code Quality finding"
+msgid_plural "%d Code Quality findings"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 Day"
+msgid_plural "%d Days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 Issue"
+msgid_plural "%d Issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 closed issue"
+msgid_plural "%{issues} closed issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 closed merge request"
+msgid_plural "%{merge_requests} closed merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 day remaining"
+msgid_plural "%d days remaining"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 day selected"
+msgid_plural "%d days selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 deploy key"
+msgid_plural "%d deploy keys"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 group"
+msgid_plural "%d groups"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 hour"
+msgid_plural "%d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 issue selected"
+msgid_plural "%d issues selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 merge request selected"
+msgid_plural "%d merge requests selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 merged merge request"
+msgid_plural "%{merge_requests} merged merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 minute"
+msgid_plural "%d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 month remaining"
+msgid_plural "%d months remaining"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 open issue"
+msgid_plural "%{issues} open issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 open merge request"
+msgid_plural "%{merge_requests} open merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 pipeline"
+msgid_plural "%d pipelines"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 role"
+msgid_plural "%d roles"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 user"
+msgid_plural "%d users"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 week remaining"
+msgid_plural "%d weeks remaining"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1 year remaining"
+msgid_plural "%d years remaining"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "1-9 contributions"
+msgstr ""
+
+msgid "10-19 contributions"
+msgstr ""
+
+msgid "1000+"
+msgstr ""
+
+msgid "192.168.0.0/24 or 2001:0DB8:1234::/48"
+msgstr ""
+
+msgid "1st contribution!"
+msgstr ""
+
+msgid "20-29 contributions"
+msgstr ""
+
+msgid "2FA"
+msgstr ""
+
+msgid "2FADevice|Registered On"
+msgstr ""
+
+msgid "30+ contributions"
+msgstr ""
+
+msgid "403|Please contact your GitLab administrator to get permission."
+msgstr ""
+
+msgid "403|You don't have the permission to access this page."
+msgstr ""
+
+msgid "404|Make sure the address is correct and the page hasn't moved."
+msgstr ""
+
+msgid "404|Not found"
+msgstr ""
+
+msgid "404|Page Not Found"
+msgstr ""
+
+msgid "404|Please contact your GitLab administrator if you think this is a mistake."
+msgstr ""
+
+msgid "409|Please contact your GitLab administrator if you think this is a mistake."
+msgstr ""
+
+msgid "409|There was a conflict with your request."
+msgstr ""
+
+msgid ":%{startLine} to %{endLine}"
+msgstr ""
+
+msgid "A %{incident_docs_start}modified issue%{incident_docs_end} to guide the resolution of incidents."
+msgstr ""
+
+msgid "A %{linkStart}merge train%{linkEnd} is a queued list of merge requests, each waiting to be merged into the target branch."
+msgstr ""
+
+msgid "A .NET Core console application template, customizable for any .NET Core project"
+msgstr ""
+
+msgid "A CI/CD pipeline must run and be successful before merge."
+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 Gitpod configured Webapplication in Spring and Java"
+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 Let's Encrypt SSL certificate can not be obtained until your domain is verified."
+msgstr ""
+
+msgid "A Work Item can be a parent or a child, but not both."
+msgstr ""
+
+msgid "A basic folder structure of Astro Starter Kit, to help you get started."
+msgstr ""
+
+msgid "A basic folder structure of a Laravel application, to help you get started."
+msgstr ""
+
+msgid "A basic page and serverless function that uses AWS Lambda, AWS API Gateway, and GitLab Pages"
+msgstr ""
+
+msgid "A basic template for developing Linux programs using Kotlin Native"
+msgstr ""
+
+msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
+msgstr ""
+
+msgid "A confidential work item cannot have a parent that already has non-confidential children."
+msgstr ""
+
+msgid "A deleted user"
+msgstr ""
+
+msgid "A different reason"
+msgstr ""
+
+msgid "A file has been changed."
+msgstr ""
+
+msgid "A file was not found."
+msgstr ""
+
+msgid "A file with this name already exists."
+msgstr ""
+
+msgid "A group is a collection of several projects"
+msgstr ""
+
+msgid "A group represents your organization in GitLab. Groups allow you to manage users and collaborate across multiple projects."
+msgstr ""
+
+msgid "A job artifact is an archive of files and directories saved by a job when it finishes."
+msgstr ""
+
+msgid "A limit of %{ci_project_subscriptions_limit} subscriptions to or from a project applies."
+msgstr ""
+
+msgid "A management, operational, or technical control (that is, safeguard or countermeasure) employed by an organization that provides equivalent or comparable protection for an information system."
+msgstr ""
+
+msgid "A maximum of %{limit} projects can be searched for at one time."
+msgstr ""
+
+msgid "A member of the abuse team will review your report as soon as possible."
+msgstr ""
+
+msgid "A new Auto DevOps pipeline has been created, go to the Pipelines page for details"
+msgstr ""
+
+msgid "A new Release %{tag} for %{name} was published. Visit the %{release_link_start}Releases page%{release_link_end} to read more about it."
+msgstr ""
+
+msgid "A new Release %{tag} for %{name} was published. Visit the Releases page to read more about it:"
+msgstr ""
+
+msgid "A new email address has been added to your GitLab account: %{email}"
+msgstr ""
+
+msgid "A new personal access token has been created"
+msgstr ""
+
+msgid "A new personal access token, named %{code_start}%{token_name}%{code_end}, has been created."
+msgstr ""
+
+msgid "A new personal access token, named %{token_name}, has been created."
+msgstr ""
+
+msgid "A non-confidential epic cannot be assigned to a confidential parent epic"
+msgstr ""
+
+msgid "A non-confidential issue cannot have a confidential parent."
+msgstr ""
+
+msgid "A non-confidential work item cannot have a confidential parent."
+msgstr ""
+
+msgid "A parent must be provided when bulk updating issuables"
+msgstr ""
+
+msgid "A personal access token, named %{code_start}%{token_name}%{code_end}, has been revoked."
+msgstr ""
+
+msgid "A personal access token, named %{token_name}, has been revoked."
+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 boilerplate for Salesforce App development with Salesforce Developer tools"
+msgstr ""
+
+msgid "A project boilerplate for Tencent Serverless Framework that uses Next.js SSR"
+msgstr ""
+
+msgid "A project containing issues for each audit inquiry in the HIPAA Audit Protocol published by the U.S. Department of Health & Human Services"
+msgstr ""
+
+msgid "A project’s repository name defines its URL (the one you use to access the project via a browser) and its place on the file disk where GitLab is installed. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "A quarterly reconciliation is due on %{date}"
+msgstr ""
+
+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 release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
+
+msgid "A sign-in to your account has been made from the following IP address: %{ip}"
+msgstr ""
+
+msgid "A template for starting a new TYPO3 project"
+msgstr ""
+
+msgid "A title is required"
+msgstr ""
+
+msgid "A user with write access to the source branch selected this option"
+msgstr ""
+
+msgid "ACTION REQUIRED: Something went wrong while obtaining the Let's Encrypt certificate for GitLab Pages domain '%{domain}'"
+msgstr ""
+
+msgid "AI actions"
+msgstr ""
+
+msgid "AI-generated summary"
+msgstr ""
+
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
+msgid "AISummary|Generates a summary of all comments"
+msgstr ""
+
+msgid "AISummary|View summary"
+msgstr ""
+
+msgid "AI|%{tool} is %{transition} an answer"
+msgstr ""
+
+msgid "AI|AI generated explanations will appear here."
+msgstr ""
+
+msgid "AI|An %{linkStart}Experiment%{linkEnd} is a feature that's in the process of being developed. It's not production-ready. We encourage users to try Experimental features and provide feedback. An Experiment: %{bullets}"
+msgstr ""
+
+msgid "AI|Apply AI-generated description"
+msgstr ""
+
+msgid "AI|Ask a question"
+msgstr ""
+
+msgid "AI|Autocomplete"
+msgstr ""
+
+msgid "AI|Can be removed at any time"
+msgstr ""
+
+msgid "AI|Close the Code Explanation"
+msgstr ""
+
+msgid "AI|Code Explanation"
+msgstr ""
+
+msgid "AI|Creates issue description based on a short prompt"
+msgstr ""
+
+msgid "AI|Description is required"
+msgstr ""
+
+msgid "AI|Experiment"
+msgstr ""
+
+msgid "AI|Explain the code from %{filePath} in human understandable language presented in Markdown format. In the response add neither original code snippet nor any title. `%{text}`. If it is not programming code, say `The selected text is not code. I am afraid this feature is for explaining code only. Would you like to ask a different question about the selected text?` and wait for another question."
+msgstr ""
+
+msgid "AI|Explain your rating to help us improve! (optional)"
+msgstr ""
+
+msgid "AI|For example: Organizations should be able to forecast into the future by using value stream analytics charts. This feature would help them understand how their metrics are trending."
+msgstr ""
+
+msgid "AI|Generate issue description"
+msgstr ""
+
+msgid "AI|GitLab Duo"
+msgstr ""
+
+msgid "AI|GitLab Duo Chat"
+msgstr ""
+
+msgid "AI|Give feedback on AI content"
+msgstr ""
+
+msgid "AI|Give feedback to improve this answer."
+msgstr ""
+
+msgid "AI|Has no support and might not be documented"
+msgstr ""
+
+msgid "AI|Helpful"
+msgstr ""
+
+msgid "AI|How could the content be improved?"
+msgstr ""
+
+msgid "AI|How was the AI content?"
+msgstr ""
+
+msgid "AI|I don't see how I can help. Please give better instructions!"
+msgstr ""
+
+msgid "AI|May be unstable"
+msgstr ""
+
+msgid "AI|May provide inappropriate responses not representative of GitLab's views. Do not input personal data."
+msgstr ""
+
+msgid "AI|New chat"
+msgstr ""
+
+msgid "AI|Populate issue description"
+msgstr ""
+
+msgid "AI|Replace the existing description with an AI-generated description? Any changes you have made will be lost."
+msgstr ""
+
+msgid "AI|Responses generated by AI"
+msgstr ""
+
+msgid "AI|Something went wrong. Please try again later"
+msgstr ""
+
+msgid "AI|Source"
+msgid_plural "AI|Sources"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "AI|Thank you for your feedback."
+msgstr ""
+
+msgid "AI|The container element wasn't found, stopping AI Genie."
+msgstr ""
+
+msgid "AI|The existing description will be replaced when you submit."
+msgstr ""
+
+msgid "AI|There is too much text in the chat. Please try again with a shorter text."
+msgstr ""
+
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
+msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
+msgstr ""
+
+msgid "AI|Unhelpful"
+msgstr ""
+
+msgid "AI|What does the selected code mean?"
+msgstr ""
+
+msgid "AI|What's an Experiment?"
+msgstr ""
+
+msgid "AI|Write a brief description and have AI fill in the details."
+msgstr ""
+
+msgid "AI|Write a summary to fill out the selected issue template"
+msgstr ""
+
+msgid "AI|Wrong"
+msgstr ""
+
+msgid "AI|You are not allowed to copy any part of this output into issues, comments, GitLab source code, commit messages, merge requests or any other user interface in the %{gitlabOrg} or %{gitlabCom} groups."
+msgstr ""
+
+msgid "AI|finding"
+msgstr ""
+
+msgid "AI|generating"
+msgstr ""
+
+msgid "AI|producing"
+msgstr ""
+
+msgid "AI|working on"
+msgstr ""
+
+msgid "API"
+msgstr ""
+
+msgid "API Fuzzing"
+msgstr ""
+
+msgid "API Help"
+msgstr ""
+
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
+msgid "API key"
+msgstr ""
+
+msgid "API?"
+msgstr ""
+
+msgid "APIFuzzing|$VARIABLE_WITH_PASSWORD"
+msgstr ""
+
+msgid "APIFuzzing|$VARIABLE_WITH_USERNAME"
+msgstr ""
+
+msgid "APIFuzzing|API Fuzzing Configuration"
+msgstr ""
+
+msgid "APIFuzzing|Base URL of API testing target. For example, http://www.example.com."
+msgstr ""
+
+msgid "APIFuzzing|Choose a method"
+msgstr ""
+
+msgid "APIFuzzing|Choose a profile"
+msgstr ""
+
+msgid "APIFuzzing|Configure HTTP basic authentication values. Other authentication methods are supported. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "APIFuzzing|Customize your project's API fuzzing configuration options and copy the code snippet to your .gitlab-ci.yml file to apply any changes. Note that this tool does not reflect or update your .gitlab-ci.yml file automatically. For details of more advanced configuration options, see the %{docsLinkStart}GitLab API Fuzzing documentation%{docsLinkEnd}."
+msgstr ""
+
+msgid "APIFuzzing|Enable authentication"
+msgstr ""
+
+msgid "APIFuzzing|Enter the name of the CI variable containing the password. For example, $VARIABLE_WITH_PASSWORD."
+msgstr ""
+
+msgid "APIFuzzing|Enter the name of the CI variable containing the username. For example, $VARIABLE_WITH_USERNAME."
+msgstr ""
+
+msgid "APIFuzzing|File path or URL to APIs to be tested. For example, folder/example_fuzz.har. HAR files may contain sensitive information such as authentication tokens, API keys, and session cookies. We recommend that you review the HAR files' contents before adding them to a repository."
+msgstr ""
+
+msgid "APIFuzzing|File path or URL to OpenAPI specification. For example, folder/openapi.json or http://www.example.com/openapi.json."
+msgstr ""
+
+msgid "APIFuzzing|File path or URL to requests to be tested. For example, folder/example.postman_collection.json."
+msgstr ""
+
+msgid "APIFuzzing|Generate code snippet"
+msgstr ""
+
+msgid "APIFuzzing|Make sure your credentials are secured"
+msgstr ""
+
+msgid "APIFuzzing|Password for basic authentication"
+msgstr ""
+
+msgid "APIFuzzing|Predefined profiles"
+msgstr ""
+
+msgid "APIFuzzing|Scan mode"
+msgstr ""
+
+msgid "APIFuzzing|Scan profile"
+msgstr ""
+
+msgid "APIFuzzing|Show code snippet for the profile"
+msgstr ""
+
+msgid "APIFuzzing|Target URL"
+msgstr ""
+
+msgid "APIFuzzing|There are three ways to perform scans."
+msgstr ""
+
+msgid "APIFuzzing|Tip: Insert the following variables anywhere below stages and include"
+msgstr ""
+
+msgid "APIFuzzing|Tip: Insert this part below all include"
+msgstr ""
+
+msgid "APIFuzzing|Tip: Insert this part below all stages"
+msgstr ""
+
+msgid "APIFuzzing|To prevent a security leak, authentication info must be added as a %{ciVariablesLinkStart}CI variable%{ciVariablesLinkEnd}. A user with maintainer access rights can manage CI variables in the %{ciSettingsLinkStart}Settings%{ciSettingsLinkEnd} area. We detected that you are not a maintainer. Commit your changes and assign them to a maintainer to update the credentials before merging."
+msgstr ""
+
+msgid "APIFuzzing|To prevent a security leak, authentication info must be added as a %{ciVariablesLinkStart}CI variable%{ciVariablesLinkEnd}. As a user with maintainer access rights, you can manage CI variables in the %{ciSettingsLinkStart}Settings%{ciSettingsLinkEnd} area."
+msgstr ""
+
+msgid "APIFuzzing|Username for basic authentication"
+msgstr ""
+
+msgid "APIFuzzing|You may need a maintainer's help to secure your credentials."
+msgstr ""
+
+msgid "APIFuzzing|folder/example.postman_collection.json"
+msgstr ""
+
+msgid "APIFuzzing|folder/example_fuzz.har"
+msgstr ""
+
+msgid "APIFuzzing|folder/openapi.json"
+msgstr ""
+
+msgid "AWS"
+msgstr ""
+
+msgid "AWS Access Key"
+msgstr ""
+
+msgid "AWS OpenSearch IAM credentials"
+msgstr ""
+
+msgid "AWS Secret Access Key"
+msgstr ""
+
+msgid "AWS access key ID (Optional)"
+msgstr ""
+
+msgid "AWS secret access key (Optional)"
+msgstr ""
+
+msgid "Abort"
+msgstr ""
+
+msgid "About GitLab"
+msgstr ""
+
+msgid "About auto deploy"
+msgstr ""
+
+msgid "About this feature"
+msgstr ""
+
+msgid "About your company"
+msgstr ""
+
+msgid "Abuse Reports"
+msgstr ""
+
+msgid "Abuse reports"
+msgstr ""
+
+msgid "Abuse reports notification email"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully banned the user"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully banned the user and closed the report"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully blocked the user"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully blocked the user and closed the report"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully closed the report"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully scheduled the user for deletion"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully scheduled the user for deletion and closed the report"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully trusted the user"
+msgstr ""
+
+msgid "AbuseReportEvent|Successfully trusted the user and closed the report"
+msgstr ""
+
+msgid "AbuseReports|%{reportedUser} reported for %{category} by %{count} users"
+msgstr ""
+
+msgid "AbuseReports|%{reportedUser} reported for %{category} by %{reporter}"
+msgstr ""
+
+msgid "AbuseReports|Deleted user"
+msgstr ""
+
+msgid "AbuseReports|No reports found"
+msgstr ""
+
+msgid "AbuseReport|%{reportLinkStart}Reported%{reportLinkEnd} for %{category} %{timeAgo}."
+msgstr ""
+
+msgid "AbuseReport|Abuse unconfirmed"
+msgstr ""
+
+msgid "AbuseReport|Action"
+msgstr ""
+
+msgid "AbuseReport|Actions"
+msgstr ""
+
+msgid "AbuseReport|Activity"
+msgstr ""
+
+msgid "AbuseReport|Admin profile"
+msgstr ""
+
+msgid "AbuseReport|Ban user"
+msgstr ""
+
+msgid "AbuseReport|Block user"
+msgstr ""
+
+msgid "AbuseReport|Card matches %{cardMatchesLinkStart}%{count} accounts%{cardMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Close report"
+msgstr ""
+
+msgid "AbuseReport|Comment"
+msgstr ""
+
+msgid "AbuseReport|Comments"
+msgstr ""
+
+msgid "AbuseReport|Confirm"
+msgstr ""
+
+msgid "AbuseReport|Confirmed crypto mining"
+msgstr ""
+
+msgid "AbuseReport|Confirmed offensive or abusive behavior"
+msgstr ""
+
+msgid "AbuseReport|Confirmed phishing"
+msgstr ""
+
+msgid "AbuseReport|Confirmed posting of malware"
+msgstr ""
+
+msgid "AbuseReport|Confirmed posting of personal information or credentials"
+msgstr ""
+
+msgid "AbuseReport|Confirmed spam"
+msgstr ""
+
+msgid "AbuseReport|Confirmed trusted user"
+msgstr ""
+
+msgid "AbuseReport|Confirmed violation of a copyright or a trademark"
+msgstr ""
+
+msgid "AbuseReport|Copyright or trademark violation"
+msgstr ""
+
+msgid "AbuseReport|Credit card"
+msgstr ""
+
+msgid "AbuseReport|Crypto Mining"
+msgstr ""
+
+msgid "AbuseReport|Delete user"
+msgstr ""
+
+msgid "AbuseReport|Email"
+msgstr ""
+
+msgid "AbuseReport|Go to comment"
+msgstr ""
+
+msgid "AbuseReport|Go to content"
+msgstr ""
+
+msgid "AbuseReport|Go to epic"
+msgstr ""
+
+msgid "AbuseReport|Go to issue"
+msgstr ""
+
+msgid "AbuseReport|Go to merge request"
+msgstr ""
+
+msgid "AbuseReport|Go to profile"
+msgstr ""
+
+msgid "AbuseReport|Groups"
+msgstr ""
+
+msgid "AbuseReport|Last login"
+msgstr ""
+
+msgid "AbuseReport|Malware"
+msgstr ""
+
+msgid "AbuseReport|Member since"
+msgstr ""
+
+msgid "AbuseReport|No action"
+msgstr ""
+
+msgid "AbuseReport|No user found"
+msgstr ""
+
+msgid "AbuseReport|Normal location"
+msgstr ""
+
+msgid "AbuseReport|Offensive or Abusive"
+msgstr ""
+
+msgid "AbuseReport|Other"
+msgstr ""
+
+msgid "AbuseReport|Past abuse reports"
+msgstr ""
+
+msgid "AbuseReport|Personal information or credentials"
+msgstr ""
+
+msgid "AbuseReport|Phishing"
+msgstr ""
+
+msgid "AbuseReport|Phone"
+msgstr ""
+
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
+msgid "AbuseReport|Reason"
+msgstr ""
+
+msgid "AbuseReport|Reported by"
+msgstr ""
+
+msgid "AbuseReport|Reported by %{name} for %{category}."
+msgstr ""
+
+msgid "AbuseReport|Reported comment"
+msgstr ""
+
+msgid "AbuseReport|Reported content"
+msgstr ""
+
+msgid "AbuseReport|Reported epic"
+msgstr ""
+
+msgid "AbuseReport|Reported issue"
+msgstr ""
+
+msgid "AbuseReport|Reported merge request"
+msgstr ""
+
+msgid "AbuseReport|Reported profile"
+msgstr ""
+
+msgid "AbuseReport|Screenshot of reported abuse"
+msgstr ""
+
+msgid "AbuseReport|Snippets"
+msgstr ""
+
+msgid "AbuseReport|Something else"
+msgstr ""
+
+msgid "AbuseReport|Spam"
+msgstr ""
+
+msgid "AbuseReport|Tier"
+msgstr ""
+
+msgid "AbuseReport|Trust user"
+msgstr ""
+
+msgid "AbuseReport|Verification"
+msgstr ""
+
+msgid "AbuseReport|View screenshot"
+msgstr ""
+
+msgid "Abusive or offensive"
+msgstr ""
+
+msgid "Accept invitation"
+msgstr ""
+
+msgid "Accept terms"
+msgstr ""
+
+msgid "Acceptable for use in this project"
+msgstr ""
+
+msgid "Access Denied"
+msgstr ""
+
+msgid "Access Git repositories or the API."
+msgstr ""
+
+msgid "Access Token"
+msgstr ""
+
+msgid "Access Tokens"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+msgid "Access denied for your LDAP account."
+msgstr ""
+
+msgid "Access expires"
+msgstr ""
+
+msgid "Access forbidden. Check your access level."
+msgstr ""
+
+msgid "Access granted"
+msgstr ""
+
+msgid "Access requests"
+msgstr ""
+
+msgid "Access to '%{classification_label}' not allowed"
+msgstr ""
+
+msgid "AccessDropdown|Deploy Keys"
+msgstr ""
+
+msgid "AccessDropdown|Groups"
+msgstr ""
+
+msgid "AccessDropdown|No role"
+msgstr ""
+
+msgid "AccessDropdown|Roles"
+msgstr ""
+
+msgid "AccessDropdown|Select"
+msgstr ""
+
+msgid "AccessDropdown|Users"
+msgstr ""
+
+msgid "AccessTokens|Access Tokens"
+msgstr ""
+
+msgid "AccessTokens|Access token limit reached"
+msgstr ""
+
+msgid "AccessTokens|Add a %{type}"
+msgstr ""
+
+msgid "AccessTokens|Are you sure?"
+msgstr ""
+
+msgid "AccessTokens|Are you sure? Any RSS or calendar URLs currently in use will stop working."
+msgstr ""
+
+msgid "AccessTokens|Are you sure? Any issue email addresses currently in use will stop working."
+msgstr ""
+
+msgid "AccessTokens|Copy feed token"
+msgstr ""
+
+msgid "AccessTokens|Copy incoming email token"
+msgstr ""
+
+msgid "AccessTokens|Copy static object token"
+msgstr ""
+
+msgid "AccessTokens|Create %{type}"
+msgstr ""
+
+msgid "AccessTokens|Created"
+msgstr ""
+
+msgid "AccessTokens|Feed token"
+msgstr ""
+
+msgid "AccessTokens|For example, the application using the token or the purpose of the token."
+msgstr ""
+
+msgid "AccessTokens|For example, the application using the token or the purpose of the token. Do not give sensitive information for the name of the token, as it will be visible to all %{resource_type} members."
+msgstr ""
+
+msgid "AccessTokens|Incoming email token"
+msgstr ""
+
+msgid "AccessTokens|It cannot be used to access any other data."
+msgstr ""
+
+msgid "AccessTokens|Keep this token secret. Anyone who has it can access repository static objects as if they were you. If that ever happens, %{linkStart}reset this token%{linkEnd}."
+msgstr ""
+
+msgid "AccessTokens|Keep this token secret. Anyone who has it can create issues as if they were you. If that happens, %{linkStart}reset this token%{linkEnd}."
+msgstr ""
+
+msgid "AccessTokens|Keep this token secret. Anyone who has it can read activity and issue RSS feeds or your calendar feed as if they were you. If that happens, %{linkStart}reset this token%{linkEnd}."
+msgstr ""
+
+msgid "AccessTokens|Personal Access Tokens"
+msgstr ""
+
+msgid "AccessTokens|Scopes set the permission levels granted to the token."
+msgstr ""
+
+msgid "AccessTokens|Select a role"
+msgstr ""
+
+msgid "AccessTokens|Select scopes"
+msgstr ""
+
+msgid "AccessTokens|Static object token"
+msgstr ""
+
+msgid "AccessTokens|The last time a token was used"
+msgstr ""
+
+msgid "AccessTokens|They are the only accepted password when you have Two-Factor Authentication (2FA) enabled."
+msgstr ""
+
+msgid "AccessTokens|Token name"
+msgstr ""
+
+msgid "AccessTokens|You can also use personal access tokens to authenticate against Git over HTTP."
+msgstr ""
+
+msgid "AccessTokens|You can generate a personal access token for each application you use that needs access to the GitLab API."
+msgstr ""
+
+msgid "AccessTokens|You can only have one active project access token with a trial license. You cannot generate a new token until the existing token is deleted, or you upgrade your subscription."
+msgstr ""
+
+msgid "AccessTokens|Your feed token authenticates you when your RSS reader loads a personalized RSS feed or when your calendar application loads a personalized calendar. It is visible in those feed URLs."
+msgstr ""
+
+msgid "AccessTokens|Your incoming email token authenticates you when you create a new issue by email, and is included in your personal project-specific email addresses."
+msgstr ""
+
+msgid "AccessTokens|Your static object token authenticates you when repository static objects (such as archives or blobs) are served from an external storage."
+msgstr ""
+
+msgid "AccessibilityReport|Message: %{message}"
+msgstr ""
+
+msgid "AccessibilityReport|The accessibility scanning found an error of the following type: %{code}"
+msgstr ""
+
+msgid "Accessible by any user who is logged in."
+msgstr ""
+
+msgid "Accessible by anyone, regardless of authentication."
+msgstr ""
+
+msgid "Account"
+msgstr ""
+
+msgid "Account ID"
+msgstr ""
+
+msgid "Account and limit"
+msgstr ""
+
+msgid "Account:"
+msgstr ""
+
+msgid "Account: %{account}"
+msgstr ""
+
+msgid "AccountValidation|Fix your pipelines by validating your account"
+msgstr ""
+
+msgid "AccountValidation|I'll bring my own runners"
+msgstr ""
+
+msgid "AccountValidation|In order to use free compute minutes on shared runners, you'll need to validate your account using one of our verification options. If you prefer not to, you can run pipelines by bringing your own runners and disabling shared runners for your project."
+msgstr ""
+
+msgid "AccountValidation|Learn more."
+msgstr ""
+
+msgid "AccountValidation|Looks like you'll need to validate your account to use free compute minutes"
+msgstr ""
+
+msgid "AccountValidation|Validate your account"
+msgstr ""
+
+msgid "AccountValidation|Verification is required to discourage and reduce the abuse on GitLab infrastructure. If you verify with a credit or debit card, %{strong_start}GitLab will not charge your card, it will only be used for validation.%{strong_end} %{learn_more_link}"
+msgstr ""
+
+msgid "Achievements"
+msgstr ""
+
+msgid "Achievements|%{namespace_full_path} awarded you the %{achievement_name} achievement"
+msgstr ""
+
+msgid "Achievements|%{namespace_full_path} awarded you the %{achievement_name} achievement!"
+msgstr ""
+
+msgid "Achievements|%{namespace_link} awarded you the %{bold_start}%{achievement_name}%{bold_end} achievement!"
+msgstr ""
+
+msgid "Achievements|Awarded %{timeAgo} by %{namespace}"
+msgstr ""
+
+msgid "Achievements|Awarded %{timeAgo} by a private namespace"
+msgstr ""
+
+msgid "Achievements|View your achievements on your %{link_start}profile%{link_end}."
+msgstr ""
+
+msgid "Achievements|View your achievements on your profile."
+msgstr ""
+
+msgid "Acknowledge"
+msgstr ""
+
+msgid "Action"
+msgstr ""
+
+msgid "Action '%{action}' in registries is not supported."
+msgstr ""
+
+msgid "Action '%{action}' in registry %{registry_id} entry is not supported."
+msgstr ""
+
+msgid "Action not allowed."
+msgstr ""
+
+msgid "Action to take when receiving an alert. %{docsLink}"
+msgstr ""
+
+msgid "Actions"
+msgstr ""
+
+msgid "Activate Service Desk"
+msgstr ""
+
+msgid "Activated"
+msgstr ""
+
+msgid "Active"
+msgstr ""
+
+msgid "Active Sessions"
+msgstr ""
+
+msgid "Active chat names (%{count})"
+msgstr ""
+
+msgid "Active group access tokens"
+msgstr ""
+
+msgid "Active personal access tokens"
+msgstr ""
+
+msgid "Active pipeline trigger tokens"
+msgstr ""
+
+msgid "Active project access tokens"
+msgstr ""
+
+msgid "Activity"
+msgstr ""
+
+msgid "Activity|An error occurred while retrieving activity. Reload the page to try again."
+msgstr ""
+
+msgid "Add"
+msgstr ""
+
+msgid "Add \"%{value}\""
+msgstr ""
+
+msgid "Add %{child_ref} to this work item as child(ren)."
+msgstr ""
+
+msgid "Add %{linkStart}assets%{linkEnd} to your Release. GitLab automatically includes read-only assets, like source code and release evidence."
+msgstr ""
+
+msgid "Add CHANGELOG"
+msgstr ""
+
+msgid "Add CONTRIBUTING"
+msgstr ""
+
+msgid "Add Kubernetes cluster"
+msgstr ""
+
+msgid "Add LICENSE"
+msgstr ""
+
+msgid "Add License"
+msgstr ""
+
+msgid "Add New Site"
+msgstr ""
+
+msgid "Add README"
+msgstr ""
+
+msgid "Add Wiki"
+msgstr ""
+
+msgid "Add Zoom meeting"
+msgstr ""
+
+msgid "Add a GCP region"
+msgstr ""
+
+msgid "Add a GPG key"
+msgstr ""
+
+msgid "Add a GPG key for secure access to GitLab. %{help_link_start}Learn more%{help_link_end}."
+msgstr ""
+
+msgid "Add a Terms of Service agreement and Privacy Policy for users of this GitLab instance."
+msgstr ""
+
+msgid "Add a bullet list"
+msgstr ""
+
+msgid "Add a checklist"
+msgstr ""
+
+msgid "Add a collapsible section"
+msgstr ""
+
+msgid "Add a comment to this line"
+msgstr ""
+
+msgid "Add a comment to this line or drag for multiple lines"
+msgstr ""
+
+msgid "Add a confidential internal note to this %{noteableDisplayName}."
+msgstr ""
+
+msgid "Add a custom message with details about the instance's shared runners. The message is visible when you view runners for projects and groups. Markdown is supported."
+msgstr ""
+
+msgid "Add a general comment to this %{noteableDisplayName}."
+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 ""
+
+msgid "Add a new comment template"
+msgstr ""
+
+msgid "Add a new issue"
+msgstr ""
+
+msgid "Add a numbered list"
+msgstr ""
+
+msgid "Add a quick action"
+msgstr ""
+
+msgid "Add a related epic"
+msgstr ""
+
+msgid "Add a related issue"
+msgstr ""
+
+msgid "Add a reply"
+msgstr ""
+
+msgid "Add a suffix to Service Desk email address. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Add a table"
+msgstr ""
+
+msgid "Add a timeline event to incident"
+msgstr ""
+
+msgid "Add a title..."
+msgstr ""
+
+msgid "Add a to do"
+msgstr ""
+
+msgid "Add an SSH key"
+msgstr ""
+
+msgid "Add an SSH key for secure access to GitLab. %{help_link_start}Learn more%{help_link_end}."
+msgstr ""
+
+msgid "Add an existing issue"
+msgstr ""
+
+msgid "Add an impersonation token"
+msgstr ""
+
+msgid "Add another link"
+msgstr ""
+
+msgid "Add approval rule"
+msgstr ""
+
+msgid "Add approvers"
+msgstr ""
+
+msgid "Add branch target"
+msgstr ""
+
+msgid "Add child epic to an epic"
+msgstr ""
+
+msgid "Add children to work item"
+msgstr ""
+
+msgid "Add comment now"
+msgstr ""
+
+msgid "Add comment to design"
+msgstr ""
+
+msgid "Add comment to incident timeline"
+msgstr ""
+
+msgid "Add comment..."
+msgstr ""
+
+msgid "Add commit messages as comments to Asana tasks. %{docs_link}"
+msgstr ""
+
+msgid "Add commit messages as comments to Pivotal Tracker stories. %{docs_link}"
+msgstr ""
+
+msgid "Add customer relation contact(s)."
+msgstr ""
+
+msgid "Add customer relation contacts"
+msgstr ""
+
+msgid "Add deploy freeze"
+msgstr ""
+
+msgid "Add deploy keys to grant read/write access to this repository. %{link_start}What are deploy keys?%{link_end}"
+msgstr ""
+
+msgid "Add email participant(s)"
+msgstr ""
+
+msgid "Add environment"
+msgstr ""
+
+msgid "Add existing confidential %{issuableType}"
+msgstr ""
+
+msgid "Add existing issue"
+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 internal note"
+msgstr ""
+
+msgid "Add key"
+msgstr ""
+
+msgid "Add labels"
+msgstr ""
+
+msgid "Add license"
+msgstr ""
+
+msgid "Add list"
+msgstr ""
+
+msgid "Add new"
+msgstr ""
+
+msgid "Add new application"
+msgstr ""
+
+msgid "Add new comment template"
+msgstr ""
+
+msgid "Add new directory"
+msgstr ""
+
+msgid "Add new emoji"
+msgstr ""
+
+msgid "Add new key"
+msgstr ""
+
+msgid "Add new pipeline subscription"
+msgstr ""
+
+msgid "Add new pipeline trigger token"
+msgstr ""
+
+msgid "Add new token"
+msgstr ""
+
+msgid "Add new webhook"
+msgstr ""
+
+msgid "Add or remove a user."
+msgstr ""
+
+msgid "Add or remove previously merged commits"
+msgstr ""
+
+msgid "Add or subtract spent time"
+msgstr ""
+
+msgid "Add people"
+msgstr ""
+
+msgid "Add previously merged commits"
+msgstr ""
+
+msgid "Add project"
+msgstr ""
+
+msgid "Add projects"
+msgstr ""
+
+msgid "Add protected branch"
+msgstr ""
+
+msgid "Add reaction"
+msgstr ""
+
+msgid "Add request manually"
+msgstr ""
+
+msgid "Add start and due date"
+msgstr ""
+
+msgid "Add suggestion to batch"
+msgstr ""
+
+msgid "Add tag"
+msgstr ""
+
+msgid "Add text to the sign-in page. Markdown enabled."
+msgstr ""
+
+msgid "Add time entry"
+msgstr ""
+
+msgid "Add to board"
+msgstr ""
+
+msgid "Add to epic"
+msgstr ""
+
+msgid "Add to merge train"
+msgstr ""
+
+msgid "Add to merge train when pipeline succeeds"
+msgstr ""
+
+msgid "Add to review"
+msgstr ""
+
+msgid "Add to tree"
+msgstr ""
+
+msgid "Add token"
+msgstr ""
+
+msgid "Add topics to projects to help users find them."
+msgstr ""
+
+msgid "Add vulnerability finding"
+msgstr ""
+
+msgid "Add webhook"
+msgstr ""
+
+msgid "Add your team members and others to GitLab."
+msgstr ""
+
+msgid "Add/remove"
+msgstr ""
+
+msgid "AddContextCommits|Add previously merged commits"
+msgstr ""
+
+msgid "AddContextCommits|Add/remove"
+msgstr ""
+
+msgid "AddMember|Invite email is invalid"
+msgstr ""
+
+msgid "AddMember|Invite limit of %{daily_invites} per day exceeded."
+msgstr ""
+
+msgid "AddMember|Invites cannot be blank"
+msgstr ""
+
+msgid "AddMember|No invite source provided."
+msgstr ""
+
+msgid "AddMember|No users specified."
+msgstr ""
+
+msgid "AddMember|Too many users specified (limit is %{user_limit})"
+msgstr ""
+
+msgid "Added"
+msgstr ""
+
+msgid "Added %{epic_ref} as a child epic."
+msgstr ""
+
+msgid "Added %{label_references} %{label_text}."
+msgstr ""
+
+msgid "Added a to do."
+msgstr ""
+
+msgid "Added an issue to an epic."
+msgstr ""
+
+msgid "Added for this merge request"
+msgstr ""
+
+msgid "Added in this version"
+msgstr ""
+
+msgid "Adding new applications is disabled in your GitLab instance. Please contact your GitLab administrator to get the permission."
+msgstr ""
+
+msgid "Additional compute minutes:"
+msgstr ""
+
+msgid "Additional diagram formats"
+msgstr ""
+
+msgid "Additional text"
+msgstr ""
+
+msgid "Additional text for deactivation email"
+msgstr ""
+
+msgid "Additional text for the sign-in and Help page."
+msgstr ""
+
+msgid "Additional text to show on the Help page"
+msgstr ""
+
+msgid "Additional text to show on the sign-in page"
+msgstr ""
+
+msgid "Additional units"
+msgstr ""
+
+msgid "Address"
+msgstr ""
+
+msgid "Adds"
+msgstr ""
+
+msgid "Adds %{epic_ref} as child epic."
+msgstr ""
+
+msgid "Adds %{labels} %{label_text}."
+msgstr ""
+
+msgid "Adds a Zoom meeting."
+msgstr ""
+
+msgid "Adds a resource link"
+msgstr ""
+
+msgid "Adds a resource link for this incident."
+msgstr ""
+
+msgid "Adds a timeline event to incident."
+msgstr ""
+
+msgid "Adds a to do."
+msgstr ""
+
+msgid "Adds an issue to an epic."
+msgstr ""
+
+msgid "Adds email participant(s)."
+msgstr ""
+
+msgid "Adds this %{issuable_type} as related to the %{issuable_type} it was created from"
+msgstr ""
+
+msgid "Adjust how frequently the GitLab UI polls for updates."
+msgstr ""
+
+msgid "Admin Area"
+msgstr ""
+
+msgid "Admin Area / Dashboard"
+msgstr ""
+
+msgid "Admin Mode"
+msgstr ""
+
+msgid "Admin Note"
+msgstr ""
+
+msgid "Admin Notifications"
+msgstr ""
+
+msgid "Admin message"
+msgstr ""
+
+msgid "Admin mode already enabled"
+msgstr ""
+
+msgid "Admin mode disabled"
+msgstr ""
+
+msgid "Admin mode enabled"
+msgstr ""
+
+msgid "Admin notes"
+msgstr ""
+
+msgid "AdminArea|%{billable_users_link_start}Learn more%{billable_users_link_end} about what defines a billable user"
+msgstr ""
+
+msgid "AdminArea|Active users"
+msgstr ""
+
+msgid "AdminArea|All users created in the instance, including users who are not %{billable_users_link_start}billable users%{billable_users_link_end}."
+msgstr ""
+
+msgid "AdminArea|Are you sure?"
+msgstr ""
+
+msgid "AdminArea|Blocked users"
+msgstr ""
+
+msgid "AdminArea|Bots"
+msgstr ""
+
+msgid "AdminArea|Breakdown of Billable users"
+msgstr ""
+
+msgid "AdminArea|Breakdown of Non-Billable users"
+msgstr ""
+
+msgid "AdminArea|Cancel all jobs"
+msgstr ""
+
+msgid "AdminArea|Cancel all running and pending jobs"
+msgstr ""
+
+msgid "AdminArea|Canceling jobs failed"
+msgstr ""
+
+msgid "AdminArea|Components"
+msgstr ""
+
+msgid "AdminArea|Developer"
+msgstr ""
+
+msgid "AdminArea|Documentation"
+msgstr ""
+
+msgid "AdminArea|Features"
+msgstr ""
+
+msgid "AdminArea|Get security updates from GitLab and stay up to date"
+msgstr ""
+
+msgid "AdminArea|Groups"
+msgstr ""
+
+msgid "AdminArea|Guest"
+msgstr ""
+
+msgid "AdminArea|Included Free in license"
+msgstr ""
+
+msgid "AdminArea|Instance OAuth applications"
+msgstr ""
+
+msgid "AdminArea|Latest groups"
+msgstr ""
+
+msgid "AdminArea|Latest projects"
+msgstr ""
+
+msgid "AdminArea|Latest users"
+msgstr ""
+
+msgid "AdminArea|Maintainer"
+msgstr ""
+
+msgid "AdminArea|Manage applications for your instance that can use GitLab as an %{docs_link_start}OAuth provider%{docs_link_end}."
+msgstr ""
+
+msgid "AdminArea|Manage applications for your instance that can use GitLab as an OAuth provider, start by creating a new one above."
+msgstr ""
+
+msgid "AdminArea|Minimal access"
+msgstr ""
+
+msgid "AdminArea|New group"
+msgstr ""
+
+msgid "AdminArea|New project"
+msgstr ""
+
+msgid "AdminArea|New user"
+msgstr ""
+
+msgid "AdminArea|No applications found"
+msgstr ""
+
+msgid "AdminArea|Owner"
+msgstr ""
+
+msgid "AdminArea|Projects"
+msgstr ""
+
+msgid "AdminArea|Reporter"
+msgstr ""
+
+msgid "AdminArea|Sign up for the GitLab Security Newsletter to get notified for security updates."
+msgstr ""
+
+msgid "AdminArea|Sign up for the GitLab newsletter"
+msgstr ""
+
+msgid "AdminArea|Total Billable users"
+msgstr ""
+
+msgid "AdminArea|Total Non-Billable users"
+msgstr ""
+
+msgid "AdminArea|Total users"
+msgstr ""
+
+msgid "AdminArea|Totals"
+msgstr ""
+
+msgid "AdminArea|Updated %{last_update_time}"
+msgstr ""
+
+msgid "AdminArea|Users"
+msgstr ""
+
+msgid "AdminArea|Users statistics"
+msgstr ""
+
+msgid "AdminArea|Users with highest role"
+msgstr ""
+
+msgid "AdminArea|Users with highest role guest and with a %{strongOpen}Custom Role%{strongClose}."
+msgstr ""
+
+msgid "AdminArea|Users without a Group and Project"
+msgstr ""
+
+msgid "AdminArea|View latest groups"
+msgstr ""
+
+msgid "AdminArea|View latest projects"
+msgstr ""
+
+msgid "AdminArea|View latest users"
+msgstr ""
+
+msgid "AdminArea|Yes, proceed"
+msgstr ""
+
+msgid "AdminArea|You're about to cancel all running and pending jobs across this instance. Do you want to proceed?"
+msgstr ""
+
+msgid "AdminArea|active users + blocked users"
+msgstr ""
+
+msgid "AdminArea|total billable + total non-billable"
+msgstr ""
+
+msgid "AdminDashboard|Error loading the statistics. Please try again"
+msgstr ""
+
+msgid "AdminEmail|An error occurred fetching the groups and projects. Please refresh the page to try again."
+msgstr ""
+
+msgid "AdminEmail|Body"
+msgstr ""
+
+msgid "AdminEmail|Body is required."
+msgstr ""
+
+msgid "AdminEmail|Loading groups and projects."
+msgstr ""
+
+msgid "AdminEmail|No groups or projects found."
+msgstr ""
+
+msgid "AdminEmail|Recipient group or project"
+msgstr ""
+
+msgid "AdminEmail|Recipient group or project is required."
+msgstr ""
+
+msgid "AdminEmail|Subject"
+msgstr ""
+
+msgid "AdminEmail|Subject is required."
+msgstr ""
+
+msgid "AdminLabels|Define your default set of project labels"
+msgstr ""
+
+msgid "AdminLabels|Labels created here will be automatically added to new projects."
+msgstr ""
+
+msgid "AdminLabels|They can be used to categorize issues and merge requests."
+msgstr ""
+
+msgid "AdminProjects| You’re about to permanently delete the project %{projectName}, its repository, and all related resources, including issues and merge requests. After you confirm and press %{strong_start}Delete project%{strong_end}, it cannot be undone or recovered."
+msgstr ""
+
+msgid "AdminProjects|Delete"
+msgstr ""
+
+msgid "AdminProjects|Delete Project %{projectName}?"
+msgstr ""
+
+msgid "AdminSettings|%{generate_manually_link_start}Generate%{generate_manually_link_end} Service Ping to preview and download service usage data payload."
+msgstr ""
+
+msgid "AdminSettings|%{setting_name} value used by both Rails and Browser JavaScript SDKs."
+msgstr ""
+
+msgid "AdminSettings|%{setting_name} value used by the Browser JavaScript SDK."
+msgstr ""
+
+msgid "AdminSettings|%{setting_name} value used by the Rails SDK."
+msgstr ""
+
+msgid "AdminSettings|%{strongStart}WARNING:%{strongEnd} Environment variable %{environment_variable} does not exist or is not pointing to a valid directory. %{icon_link}"
+msgstr ""
+
+msgid "AdminSettings|A Let's Encrypt account will be configured for this GitLab instance using this email address. You will receive emails to warn of expiring certificates. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "AdminSettings|Affects all new and existing groups."
+msgstr ""
+
+msgid "AdminSettings|All new projects can use the instance's shared runners by default."
+msgstr ""
+
+msgid "AdminSettings|Allow migrating GitLab groups and projects by direct transfer"
+msgstr ""
+
+msgid "AdminSettings|Auto DevOps domain"
+msgstr ""
+
+msgid "AdminSettings|By default, set a limit to 0 to have no limit."
+msgstr ""
+
+msgid "AdminSettings|CI/CD limits"
+msgstr ""
+
+msgid "AdminSettings|Code can be imported from enabled sources during project creation. OmniAuth must be configured for GitHub %{github_docs_link_start}%{icon}%{github_docs_link_end} and Bitbucket %{bitbucket_docs_link_start}%{icon}%{bitbucket_docs_link_end}."
+msgstr ""
+
+msgid "AdminSettings|Collector host"
+msgstr ""
+
+msgid "AdminSettings|Configure Let's Encrypt"
+msgstr ""
+
+msgid "AdminSettings|Configure limits on the number of repositories users can download, clone, or fork in a given time."
+msgstr ""
+
+msgid "AdminSettings|Configure product analytics to track events within your project applications."
+msgstr ""
+
+msgid "AdminSettings|Configure when inactive projects should be automatically deleted. %{linkStart}What are inactive projects?%{linkEnd}"
+msgstr ""
+
+msgid "AdminSettings|Cube API URL"
+msgstr ""
+
+msgid "AdminSettings|Delete inactive projects"
+msgstr ""
+
+msgid "AdminSettings|Delete inactive projects that exceed"
+msgstr ""
+
+msgid "AdminSettings|Delete project after"
+msgstr ""
+
+msgid "AdminSettings|Disable Elasticsearch until indexing completes."
+msgstr ""
+
+msgid "AdminSettings|Disable feed token"
+msgstr ""
+
+msgid "AdminSettings|Disable public access to Pages sites"
+msgstr ""
+
+msgid "AdminSettings|Display a banner on merge requests in projects with no pipelines to initiate steps to add a .gitlab-ci.yml file."
+msgstr ""
+
+msgid "AdminSettings|Domain verification is an essential security measure for public GitLab sites. Users are required to demonstrate they control a domain before it is enabled. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "AdminSettings|Download payload"
+msgstr ""
+
+msgid "AdminSettings|Elasticsearch indexing"
+msgstr ""
+
+msgid "AdminSettings|Enable Registration Features"
+msgstr ""
+
+msgid "AdminSettings|Enable Sentry for Rails and Browser JavaScript"
+msgstr ""
+
+msgid "AdminSettings|Enable Service Ping"
+msgstr ""
+
+msgid "AdminSettings|Enable collection of application metrics. Restart required. %{link_start}Learn how to export metrics to Prometheus%{link_end}."
+msgstr ""
+
+msgid "AdminSettings|Enable kuromoji custom analyzer: Indexing"
+msgstr ""
+
+msgid "AdminSettings|Enable kuromoji custom analyzer: Search"
+msgstr ""
+
+msgid "AdminSettings|Enable pipeline suggestion banner"
+msgstr ""
+
+msgid "AdminSettings|Enable product analytics"
+msgstr ""
+
+msgid "AdminSettings|Enable shared runners for new projects"
+msgstr ""
+
+msgid "AdminSettings|Enable smartcn custom analyzer: Indexing"
+msgstr ""
+
+msgid "AdminSettings|Enable smartcn custom analyzer: Search"
+msgstr ""
+
+msgid "AdminSettings|Enable the external redirect warning page for job artifacts"
+msgstr ""
+
+msgid "AdminSettings|Enabled"
+msgstr ""
+
+msgid "AdminSettings|Enforce invitation flow for groups and projects"
+msgstr ""
+
+msgid "AdminSettings|Feed token"
+msgstr ""
+
+msgid "AdminSettings|For a list of included Registration Features, see %{link_start}the documentation%{link_end}."
+msgstr ""
+
+msgid "AdminSettings|Git abuse rate limit"
+msgstr ""
+
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
+msgstr ""
+
+msgid "AdminSettings|Group runners expiration"
+msgstr ""
+
+msgid "AdminSettings|I have read and agree to the Let's Encrypt %{link_start}Terms of Service%{link_end} (PDF)."
+msgstr ""
+
+msgid "AdminSettings|If no unit is written, it defaults to seconds. For example, these are all equivalent: %{oneDayInSeconds}, %{oneDayInHoursHumanReadable}, or %{oneDayHumanReadable}. Minimum value is two hours. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "AdminSettings|If not specified at the group or instance level, the default is %{default_initial_branch_name}. Does not affect existing repositories."
+msgstr ""
+
+msgid "AdminSettings|If selected, only administrators are able to create internal groups, projects, and snippets."
+msgstr ""
+
+msgid "AdminSettings|If selected, only administrators are able to create private groups, projects, and snippets."
+msgstr ""
+
+msgid "AdminSettings|If selected, only administrators are able to create public groups, projects, and snippets. Also, profiles are only visible to authenticated users."
+msgstr ""
+
+msgid "AdminSettings|If there isn't any existing index, GitLab creates one."
+msgstr ""
+
+msgid "AdminSettings|Import sources"
+msgstr ""
+
+msgid "AdminSettings|Improve non-code indexing throughput by enqueuing Sidekiq jobs until all documents are processed."
+msgstr ""
+
+msgid "AdminSettings|Inactive project deletion"
+msgstr ""
+
+msgid "AdminSettings|Instance runners expiration"
+msgstr ""
+
+msgid "AdminSettings|Keep the latest artifacts for all jobs in the latest successful pipelines"
+msgstr ""
+
+msgid "AdminSettings|Let's Encrypt email"
+msgstr ""
+
+msgid "AdminSettings|Limit the number of namespaces and projects that can be indexed."
+msgstr ""
+
+msgid "AdminSettings|Maximum duration of a session for Git operations when 2FA is enabled."
+msgstr ""
+
+msgid "AdminSettings|Maximum includes"
+msgstr ""
+
+msgid "AdminSettings|Maximum number of DAG dependencies that a job can have"
+msgstr ""
+
+msgid "AdminSettings|Maximum number of custom domains per project"
+msgstr ""
+
+msgid "AdminSettings|Maximum number of downstream pipelines in a pipeline's hierarchy tree"
+msgstr ""
+
+msgid "AdminSettings|Maximum number of jobs in a single pipeline"
+msgstr ""
+
+msgid "AdminSettings|Maximum number of pipeline schedules"
+msgstr ""
+
+msgid "AdminSettings|Maximum number of pipeline subscriptions to and from a project"
+msgstr ""
+
+msgid "AdminSettings|Maximum number of runners registered per group"
+msgstr ""
+
+msgid "AdminSettings|Maximum number of runners registered per project"
+msgstr ""
+
+msgid "AdminSettings|Minimum size must be at least 0."
+msgstr ""
+
+msgid "AdminSettings|New CI/CD variables in projects and groups default to protected."
+msgstr ""
+
+msgid "AdminSettings|No required configuration"
+msgstr ""
+
+msgid "AdminSettings|Only enable search after installing the plugin, enabling indexing, and recreating the index."
+msgstr ""
+
+msgid "AdminSettings|Package registry metadata to sync"
+msgstr ""
+
+msgid "AdminSettings|Pause Elasticsearch indexing"
+msgstr ""
+
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
+msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
+msgstr ""
+
+msgid "AdminSettings|Preview payload"
+msgstr ""
+
+msgid "AdminSettings|Project export"
+msgstr ""
+
+msgid "AdminSettings|Project runners expiration"
+msgstr ""
+
+msgid "AdminSettings|Protect CI/CD variables by default"
+msgstr ""
+
+msgid "AdminSettings|Requeue indexing workers"
+msgstr ""
+
+msgid "AdminSettings|Require users to prove ownership of custom domains"
+msgstr ""
+
+msgid "AdminSettings|Required pipeline configuration"
+msgstr ""
+
+msgid "AdminSettings|Requires %{linkStart}email notifications%{linkEnd}"
+msgstr ""
+
+msgid "AdminSettings|Restricted visibility levels"
+msgstr ""
+
+msgid "AdminSettings|Save %{name} limits"
+msgstr ""
+
+msgid "AdminSettings|Search with Elasticsearch enabled"
+msgstr ""
+
+msgid "AdminSettings|Select a CI/CD template"
+msgstr ""
+
+msgid "AdminSettings|Select a group to use as a source of custom templates for new projects. %{link_start}Learn more%{link_end}."
+msgstr ""
+
+msgid "AdminSettings|Select to disable public access for Pages sites, which requires users to sign in for access to the Pages sites in your instance. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "AdminSettings|Send email to maintainers after project is inactive for"
+msgstr ""
+
+msgid "AdminSettings|Send warning email"
+msgstr ""
+
+msgid "AdminSettings|Service Ping payload not found in the application cache"
+msgstr ""
+
+msgid "AdminSettings|Service ping is disabled in your configuration file, and cannot be enabled through this form. For more information, see the documentation on %{link_start}deactivating service ping%{link_end}."
+msgstr ""
+
+msgid "AdminSettings|Session duration for Git operations when 2FA is enabled (minutes)"
+msgstr ""
+
+msgid "AdminSettings|Set a CI/CD template as the required pipeline configuration for all projects in the instance. Project CI/CD configuration merges into the required pipeline configuration when the pipeline runs. %{link_start}What is a required pipeline configuration?%{link_end}"
+msgstr ""
+
+msgid "AdminSettings|Set options for cost factors of forks"
+msgstr ""
+
+msgid "AdminSettings|Set the expiration time of authentication tokens of newly registered group runners."
+msgstr ""
+
+msgid "AdminSettings|Set the expiration time of authentication tokens of newly registered instance runners. Authentication tokens are automatically reset at these intervals."
+msgstr ""
+
+msgid "AdminSettings|Set the expiration time of authentication tokens of newly registered project runners."
+msgstr ""
+
+msgid "AdminSettings|Set the initial name and protections for the default branch of new repositories created in the instance."
+msgstr ""
+
+msgid "AdminSettings|Set the maximum number of GitLab Pages custom domains per project (0 for unlimited). %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "AdminSettings|Set the maximum size of GitLab Pages per project (0 for unlimited). %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "AdminSettings|Set visibility of project contents and configure Git access protocols."
+msgstr ""
+
+msgid "AdminSettings|Setting must be greater than 0."
+msgstr ""
+
+msgid "AdminSettings|Show a redirect page that warns you about user-generated content in GitLab Pages."
+msgstr ""
+
+msgid "AdminSettings|Size and domain settings for Pages static sites."
+msgstr ""
+
+msgid "AdminSettings|The URL of your Cube instance."
+msgstr ""
+
+msgid "AdminSettings|The default domain to use for Auto Review Apps and Auto Deploy stages in all projects."
+msgstr ""
+
+msgid "AdminSettings|The host of your data collector instance."
+msgstr ""
+
+msgid "AdminSettings|The latest artifacts for all jobs in the most recent successful pipelines in each project are stored and do not expire."
+msgstr ""
+
+msgid "AdminSettings|The maximum number of included files per pipeline."
+msgstr ""
+
+msgid "AdminSettings|The selected level must be different from the selected default group and project visibility."
+msgstr ""
+
+msgid "AdminSettings|The template for the required pipeline configuration can be one of the GitLab-provided templates, or a custom template added to an instance template repository. %{link_start}How do I create an instance template repository?%{link_end}"
+msgstr ""
+
+msgid "AdminSettings|There are Advanced Search migrations pending that require indexing to pause. Indexing must remain paused until GitLab completes the migrations."
+msgstr ""
+
+msgid "AdminSettings|This cost factor will be applied to the storage consumed by forks."
+msgstr ""
+
+msgid "AdminSettings|This limit cannot be disabled. Set to 0 to block all DAG dependencies."
+msgstr ""
+
+msgid "AdminSettings|To enable Registration Features, first enable Service Ping."
+msgstr ""
+
+msgid "AdminSettings|To help improve GitLab and its user experience, GitLab periodically collects usage information. %{link_start}What information is shared with GitLab Inc.?%{link_end}"
+msgstr ""
+
+msgid "AdminSettings|Total number of jobs in currently active pipelines"
+msgstr ""
+
+msgid "AdminSettings|Use AWS OpenSearch Service with IAM credentials"
+msgstr ""
+
+msgid "AdminSettings|Use for cluster and index migrations. When indexing is paused, GitLab still tracks changes."
+msgstr ""
+
+msgid "AdminSettings|Users and groups must accept the invitation before they're added to a group or project."
+msgstr ""
+
+msgid "AdminSettings|When to delete inactive projects"
+msgstr ""
+
+msgid "AdminSettings|You can enable Registration Features because Service Ping is enabled. To continue using Registration Features in the future, you will also need to register with GitLab via a new cloud licensing service."
+msgstr ""
+
+msgid "AdminSettings|You can't delete projects before the warning email is sent."
+msgstr ""
+
+msgid "AdminSettings|templates found"
+msgstr ""
+
+msgid "AdminStatistics|Active Users"
+msgstr ""
+
+msgid "AdminStatistics|Forks"
+msgstr ""
+
+msgid "AdminStatistics|Issues"
+msgstr ""
+
+msgid "AdminStatistics|Merge requests"
+msgstr ""
+
+msgid "AdminStatistics|Milestones"
+msgstr ""
+
+msgid "AdminStatistics|Notes"
+msgstr ""
+
+msgid "AdminStatistics|SSH Keys"
+msgstr ""
+
+msgid "AdminStatistics|Snippets"
+msgstr ""
+
+msgid "AdminUsers|(Admin)"
+msgstr ""
+
+msgid "AdminUsers|(Banned)"
+msgstr ""
+
+msgid "AdminUsers|(Blocked)"
+msgstr ""
+
+msgid "AdminUsers|(Deactivated)"
+msgstr ""
+
+msgid "AdminUsers|(Internal)"
+msgstr ""
+
+msgid "AdminUsers|(Locked)"
+msgstr ""
+
+msgid "AdminUsers|(Pending approval)"
+msgstr ""
+
+msgid "AdminUsers|2FA Disabled"
+msgstr ""
+
+msgid "AdminUsers|2FA Enabled"
+msgstr ""
+
+msgid "AdminUsers|A user can validate themselves by inputting a credit/debit card, or an admin can manually validate a user. Validated users can use free CI minutes on shared runners."
+msgstr ""
+
+msgid "AdminUsers|Access"
+msgstr ""
+
+msgid "AdminUsers|Access Git repositories"
+msgstr ""
+
+msgid "AdminUsers|Access level"
+msgstr ""
+
+msgid "AdminUsers|Access the API"
+msgstr ""
+
+msgid "AdminUsers|Activate"
+msgstr ""
+
+msgid "AdminUsers|Activate user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Active"
+msgstr ""
+
+msgid "AdminUsers|Adjust the user cap setting on your instance"
+msgstr ""
+
+msgid "AdminUsers|Admin"
+msgstr ""
+
+msgid "AdminUsers|Administrator"
+msgstr ""
+
+msgid "AdminUsers|Admins"
+msgstr ""
+
+msgid "AdminUsers|An error occurred while fetching this user's contributions, and the request cannot return the number of issues, merge requests, groups, and projects linked to this user. If you proceed with deleting the user, all their contributions will still be deleted."
+msgstr ""
+
+msgid "AdminUsers|Approve"
+msgstr ""
+
+msgid "AdminUsers|Approve user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Approved users can:"
+msgstr ""
+
+msgid "AdminUsers|Auditor"
+msgstr ""
+
+msgid "AdminUsers|Auditors have read-only access to all groups, projects, and users."
+msgstr ""
+
+msgid "AdminUsers|Automatically marked as default internal user"
+msgstr ""
+
+msgid "AdminUsers|Avatar"
+msgstr ""
+
+msgid "AdminUsers|Ban user"
+msgstr ""
+
+msgid "AdminUsers|Ban user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Banned"
+msgstr ""
+
+msgid "AdminUsers|Be added to groups and projects"
+msgstr ""
+
+msgid "AdminUsers|Block"
+msgstr ""
+
+msgid "AdminUsers|Block user"
+msgstr ""
+
+msgid "AdminUsers|Block user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Blocked"
+msgstr ""
+
+msgid "AdminUsers|Blocking user has the following effects:"
+msgstr ""
+
+msgid "AdminUsers|Bot"
+msgstr ""
+
+msgid "AdminUsers|Can create top level group"
+msgstr ""
+
+msgid "AdminUsers|Cannot sign in or access instance information"
+msgstr ""
+
+msgid "AdminUsers|Cannot unblock LDAP blocked users"
+msgstr ""
+
+msgid "AdminUsers|Cohorts"
+msgstr ""
+
+msgid "AdminUsers|Compute quota"
+msgstr ""
+
+msgid "AdminUsers|Confirm user"
+msgstr ""
+
+msgid "AdminUsers|Confirm user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Could not load user group counts. Please refresh the page to try again."
+msgstr ""
+
+msgid "AdminUsers|Deactivate"
+msgstr ""
+
+msgid "AdminUsers|Deactivate user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Deactivated"
+msgstr ""
+
+msgid "AdminUsers|Deactivating a user has the following effects:"
+msgstr ""
+
+msgid "AdminUsers|Delete User %{username} and contributions?"
+msgstr ""
+
+msgid "AdminUsers|Delete User %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Delete user"
+msgstr ""
+
+msgid "AdminUsers|Delete user and contributions"
+msgstr ""
+
+msgid "AdminUsers|Export permissions as CSV (max 100,000 users)"
+msgstr ""
+
+msgid "AdminUsers|External"
+msgstr ""
+
+msgid "AdminUsers|External users cannot see internal or private projects unless access is explicitly granted. Also, external users cannot create projects, groups, or personal snippets."
+msgstr ""
+
+msgid "AdminUsers|For more information, please refer to the %{link_start}user account deletion documentation.%{link_end}"
+msgstr ""
+
+msgid "AdminUsers|Here are some helpful links to help you manage your instance:"
+msgstr ""
+
+msgid "AdminUsers|If you have any questions about this process please consult our %{doc_link} or %{support_link}."
+msgstr ""
+
+msgid "AdminUsers|Important information about usage on your GitLab instance"
+msgstr ""
+
+msgid "AdminUsers|Is using seat"
+msgstr ""
+
+msgid "AdminUsers|It's you!"
+msgstr ""
+
+msgid "AdminUsers|LDAP Blocked"
+msgstr ""
+
+msgid "AdminUsers|Learn more about %{link_start}banned users.%{link_end}"
+msgstr ""
+
+msgid "AdminUsers|Limits"
+msgstr ""
+
+msgid "AdminUsers|Linkedin"
+msgstr ""
+
+msgid "AdminUsers|Locked"
+msgstr ""
+
+msgid "AdminUsers|Log in"
+msgstr ""
+
+msgid "AdminUsers|Manage (accept/reject) pending user sign ups"
+msgstr ""
+
+msgid "AdminUsers|New user"
+msgstr ""
+
+msgid "AdminUsers|No users found"
+msgstr ""
+
+msgid "AdminUsers|Owned groups will be left"
+msgstr ""
+
+msgid "AdminUsers|Pending approval"
+msgstr ""
+
+msgid "AdminUsers|Personal projects will be left"
+msgstr ""
+
+msgid "AdminUsers|Personal projects, group and user history will be left intact"
+msgstr ""
+
+msgid "AdminUsers|Private profile"
+msgstr ""
+
+msgid "AdminUsers|Projects, issues, merge requests, and comments of this user are hidden from other users."
+msgstr ""
+
+msgid "AdminUsers|Re-enable spam monitoring for %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Reactivating a user will:"
+msgstr ""
+
+msgid "AdminUsers|Regular"
+msgstr ""
+
+msgid "AdminUsers|Regular users have access to their groups and projects."
+msgstr ""
+
+msgid "AdminUsers|Reject"
+msgstr ""
+
+msgid "AdminUsers|Reject user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Rejected users:"
+msgstr ""
+
+msgid "AdminUsers|Reset link will be generated and sent to the user. User will be forced to set the password on first sign in."
+msgstr ""
+
+msgid "AdminUsers|Restore user access to the account, including web, Git and API."
+msgstr ""
+
+msgid "AdminUsers|Search by name, email, or username"
+msgstr ""
+
+msgid "AdminUsers|Search users"
+msgstr ""
+
+msgid "AdminUsers|Send email to users"
+msgstr ""
+
+msgid "AdminUsers|Skype"
+msgstr ""
+
+msgid "AdminUsers|Sort by"
+msgstr ""
+
+msgid "AdminUsers|Stop monitoring %{username} for possible spam?"
+msgstr ""
+
+msgid "AdminUsers|The maximum compute minutes that jobs in this namespace can use on shared runners each month. Set 0 for unlimited. Set empty to inherit the global setting of %{minutes}"
+msgstr ""
+
+msgid "AdminUsers|The user can create issues, notes, snippets, and merge requests that appear to be spam without being blocked."
+msgstr ""
+
+msgid "AdminUsers|The user can't access git repositories."
+msgstr ""
+
+msgid "AdminUsers|The user can't log in."
+msgstr ""
+
+msgid "AdminUsers|The user has unlimited access to all groups, projects, users, and features."
+msgstr ""
+
+msgid "AdminUsers|The user will be logged out"
+msgstr ""
+
+msgid "AdminUsers|The user will not be able to access git repositories"
+msgstr ""
+
+msgid "AdminUsers|The user will not be able to access the API"
+msgstr ""
+
+msgid "AdminUsers|The user will not be able to use slash commands"
+msgstr ""
+
+msgid "AdminUsers|The user will not receive any notifications"
+msgstr ""
+
+msgid "AdminUsers|To confirm, type %{projectName}"
+msgstr ""
+
+msgid "AdminUsers|To confirm, type %{username}."
+msgstr ""
+
+msgid "AdminUsers|Trust user"
+msgstr ""
+
+msgid "AdminUsers|Trusted"
+msgstr ""
+
+msgid "AdminUsers|Unban user"
+msgstr ""
+
+msgid "AdminUsers|Unban user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Unblock"
+msgstr ""
+
+msgid "AdminUsers|Unblock user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Unlock user %{username}?"
+msgstr ""
+
+msgid "AdminUsers|Untrust user"
+msgstr ""
+
+msgid "AdminUsers|User administration"
+msgstr ""
+
+msgid "AdminUsers|User will not be able to access git repositories"
+msgstr ""
+
+msgid "AdminUsers|User will not be able to login"
+msgstr ""
+
+msgid "AdminUsers|Users"
+msgstr ""
+
+msgid "AdminUsers|Users can still be invited to your instance and/or add themselves if permitted based on your settings. They will not have access to your instance, nor count towards your subscribed seat count until you %{approve_link}."
+msgstr ""
+
+msgid "AdminUsers|Validate user account"
+msgstr ""
+
+msgid "AdminUsers|View pending member requests"
+msgstr ""
+
+msgid "AdminUsers|Website URL"
+msgstr ""
+
+msgid "AdminUsers|What can I do?"
+msgstr ""
+
+msgid "AdminUsers|What does this mean?"
+msgstr ""
+
+msgid "AdminUsers|When banned:"
+msgstr ""
+
+msgid "AdminUsers|When not being monitored for spam:"
+msgstr ""
+
+msgid "AdminUsers|When the user logs back in, their account will reactivate as a fully active account"
+msgstr ""
+
+msgid "AdminUsers|Will be deleted"
+msgstr ""
+
+msgid "AdminUsers|Without projects"
+msgstr ""
+
+msgid "AdminUsers|You are about to permanently delete the user %{username}. Issues, merge requests, and groups linked to them will be transferred to a system-wide \"Ghost-user\". To avoid data loss, consider using the %{strongStart}block user%{strongEnd} feature instead. Once you %{strongStart}Delete user%{strongEnd}, it cannot be undone or recovered."
+msgstr ""
+
+msgid "AdminUsers|You are about to permanently delete the user %{username}. This will delete all issues, merge requests, groups, and projects linked to them. To avoid data loss, consider using the %{strongStart}Block user%{strongEnd} feature instead. After you %{strongStart}Delete user%{strongEnd}, you cannot undo this action or recover the data."
+msgstr ""
+
+msgid "AdminUsers|You can always block their account again if needed."
+msgstr ""
+
+msgid "AdminUsers|You can always deactivate their account again if needed."
+msgstr ""
+
+msgid "AdminUsers|You can always re-activate their account, their data will remain intact."
+msgstr ""
+
+msgid "AdminUsers|You can always unblock their account, their data will remain intact."
+msgstr ""
+
+msgid "AdminUsers|You can ban their account in the future if necessary."
+msgstr ""
+
+msgid "AdminUsers|You can trust this user in the future if necessary."
+msgstr ""
+
+msgid "AdminUsers|You can unban their account in the future. Their data remains intact."
+msgstr ""
+
+msgid "AdminUsers|You can untrust this user in the future."
+msgstr ""
+
+msgid "AdminUsers|You cannot remove your own administrator access."
+msgstr ""
+
+msgid "AdminUsers|You must transfer ownership or delete the groups owned by this user before you can delete their account"
+msgstr ""
+
+msgid "AdminUsers|Your GitLab instance has reached the maximum allowed %{user_doc_link} set by an instance admin."
+msgstr ""
+
+msgid "AdminUsers|approve them"
+msgstr ""
+
+msgid "AdminUsers|contact our support team"
+msgstr ""
+
+msgid "AdminUsers|docs"
+msgstr ""
+
+msgid "AdminUsers|user cap"
+msgstr ""
+
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
+msgid "Administrators"
+msgstr ""
+
+msgid "Administrators are not permitted to connect applications with these scopes: %{code_open}api%{code_close}, %{code_open}read_api%{code_close}, %{code_open}read_repository%{code_close}, %{code_open}write_repository%{code_close}, %{code_open}write_registry%{code_close}, %{code_open}read_registry%{code_close}, and %{code_open}sudo%{code_close}. To permit this, change the %{code_open}disable_admin_oauth_scopes%{code_close} setting using the API."
+msgstr ""
+
+msgid "Admin|Abuse Reports"
+msgstr ""
+
+msgid "Admin|Additional users must be reviewed and approved by a system administrator. Learn more about %{help_link_start}usage caps%{help_link_end}."
+msgstr ""
+
+msgid "Admin|Admin Area"
+msgstr ""
+
+msgid "Admin|Admin notes"
+msgstr ""
+
+msgid "Admin|Analytics"
+msgstr ""
+
+msgid "Admin|Applications"
+msgstr ""
+
+msgid "Admin|CI/CD"
+msgstr ""
+
+msgid "Admin|Credentials"
+msgstr ""
+
+msgid "Admin|Deploy Keys"
+msgstr ""
+
+msgid "Admin|Duo Pro"
+msgstr ""
+
+msgid "Admin|Geo"
+msgstr ""
+
+msgid "Admin|Kubernetes"
+msgstr ""
+
+msgid "Admin|Labels"
+msgstr ""
+
+msgid "Admin|Learn more about quarterly reconciliation"
+msgstr ""
+
+msgid "Admin|Messages"
+msgstr ""
+
+msgid "Admin|Monitoring"
+msgstr ""
+
+msgid "Admin|Note"
+msgstr ""
+
+msgid "Admin|Overview"
+msgstr ""
+
+msgid "Admin|Push Rules"
+msgstr ""
+
+msgid "Admin|Quarterly reconciliation will occur on %{qrtlyDate}"
+msgstr ""
+
+msgid "Admin|Settings"
+msgstr ""
+
+msgid "Admin|Spam Logs"
+msgstr ""
+
+msgid "Admin|Subscription"
+msgstr ""
+
+msgid "Admin|System Hooks"
+msgstr ""
+
+msgid "Admin|The number of max seats in your namespace exceeds the number of seats in your subscription. On %{qrtlyDate}, quarterly reconciliation occurs and you are automatically billed a prorated amount for the overage. No action is needed from you. If you have a credit card on file, it will be charged. Otherwise, you will receive an invoice. For more information about the timing of the invoicing process, view the documentation."
+msgstr ""
+
+msgid "Admin|The number of max users in your instance exceeds the number of users in your license. On %{qrtlyDate}, quarterly reconciliation occurs and you are automatically billed a prorated amount for the overage. No action is needed from you. If you have a credit card on file, it will be charged. Otherwise, you will receive an invoice. For more information about the timing of the invoicing process, view the documentation."
+msgstr ""
+
+msgid "Admin|View pending user approvals"
+msgstr ""
+
+msgid "Admin|Your instance has reached its user cap"
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Advanced Search"
+msgstr ""
+
+msgid "Advanced Settings"
+msgstr ""
+
+msgid "Advanced export options"
+msgstr ""
+
+msgid "AdvancedSearch|Could not fetch index entities. Please try again later."
+msgstr ""
+
+msgid "AdvancedSearch|Elasticsearch version not compatible"
+msgstr ""
+
+msgid "AdvancedSearch|Introduced in GitLab 13.1, before using %{reindexing_link_start}zero-downtime reindexing%{link_end} and %{migrations_link_start}Advanced Search migrations%{link_end}, you need to %{recreate_link_start}recreate your index%{link_end}."
+msgstr ""
+
+msgid "AdvancedSearch|None. Select namespaces to index."
+msgstr ""
+
+msgid "AdvancedSearch|None. Select projects to index."
+msgstr ""
+
+msgid "AdvancedSearch|Pause indexing and upgrade Elasticsearch to a supported version."
+msgstr ""
+
+msgid "AdvancedSearch|Reindex recommended"
+msgstr ""
+
+msgid "AdvancedSearch|Reindex required"
+msgstr ""
+
+msgid "AdvancedSearch|Select namespaces to index"
+msgstr ""
+
+msgid "AdvancedSearch|Select projects to index"
+msgstr ""
+
+msgid "AdvancedSearch|You are using outdated code search mappings. To improve code search quality, we recommend you use %{reindexing_link_start}zero-downtime reindexing%{link_end} or %{recreate_link_start}re-create your index%{link_end}."
+msgstr ""
+
+msgid "AdvancedSearch|You have %{count} pending %{migrations_link_start}advanced search migrations%{link_end} that are obsolete. These migrations might affect your search experience. To resolve the issue, you must %{recreate_link_start}recreate your index%{link_end}."
+msgstr ""
+
+msgid "AdvancedSearch|You have pending obsolete migrations"
+msgstr ""
+
+msgid "After a successful password update you will be redirected to login screen."
+msgstr ""
+
+msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
+msgstr ""
+
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgstr ""
+
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
+msgstr ""
+
+msgid "After you've reviewed these contribution guidelines, you'll be all set to"
+msgstr ""
+
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
+msgid "Akismet"
+msgstr ""
+
+msgid "Akismet API Key"
+msgstr ""
+
+msgid "Akismet helps prevent the creation of spam issues in public projects."
+msgstr ""
+
+msgid "Alert"
+msgstr ""
+
+msgid "AlertManagement|Acknowledged"
+msgstr ""
+
+msgid "AlertManagement|Activity feed"
+msgstr ""
+
+msgid "AlertManagement|Alert"
+msgstr ""
+
+msgid "AlertManagement|Alert assignees: %{assignees}"
+msgstr ""
+
+msgid "AlertManagement|Alert detail"
+msgstr ""
+
+msgid "AlertManagement|Alert details"
+msgstr ""
+
+msgid "AlertManagement|Alert status: %{status}"
+msgstr ""
+
+msgid "AlertManagement|Alerts"
+msgstr ""
+
+msgid "AlertManagement|All alerts"
+msgstr ""
+
+msgid "AlertManagement|Assign status"
+msgstr ""
+
+msgid "AlertManagement|Assignees"
+msgstr ""
+
+msgid "AlertManagement|Authorize external service"
+msgstr ""
+
+msgid "AlertManagement|Create incident"
+msgstr ""
+
+msgid "AlertManagement|Display alerts from all your monitoring tools directly within GitLab. Streamline the investigation of your alerts and the escalation of alerts to incidents."
+msgstr ""
+
+msgid "AlertManagement|Edit"
+msgstr ""
+
+msgid "AlertManagement|Environment"
+msgstr ""
+
+msgid "AlertManagement|Events"
+msgstr ""
+
+msgid "AlertManagement|Incident"
+msgstr ""
+
+msgid "AlertManagement|Key"
+msgstr ""
+
+msgid "AlertManagement|Metrics"
+msgstr ""
+
+msgid "AlertManagement|More information"
+msgstr ""
+
+msgid "AlertManagement|No alert data to display."
+msgstr ""
+
+msgid "AlertManagement|No alerts available to display. See %{linkStart}enabling alert management%{linkEnd} for more information on adding alerts to the list."
+msgstr ""
+
+msgid "AlertManagement|No alerts to display."
+msgstr ""
+
+msgid "AlertManagement|None"
+msgstr ""
+
+msgid "AlertManagement|Open"
+msgstr ""
+
+msgid "AlertManagement|Please try again."
+msgstr ""
+
+msgid "AlertManagement|Reported %{when}"
+msgstr ""
+
+msgid "AlertManagement|Reported %{when} by %{tool}"
+msgstr ""
+
+msgid "AlertManagement|Resolved"
+msgstr ""
+
+msgid "AlertManagement|Runbook"
+msgstr ""
+
+msgid "AlertManagement|Service"
+msgstr ""
+
+msgid "AlertManagement|Severity"
+msgstr ""
+
+msgid "AlertManagement|Start time"
+msgstr ""
+
+msgid "AlertManagement|Status"
+msgstr ""
+
+msgid "AlertManagement|Surface alerts in GitLab"
+msgstr ""
+
+msgid "AlertManagement|There was an error displaying the alert. Please refresh the page to try again."
+msgstr ""
+
+msgid "AlertManagement|There was an error displaying the alerts. Confirm your endpoint's configuration details to ensure alerts appear."
+msgstr ""
+
+msgid "AlertManagement|There was an error while updating the assignees list. Please try again."
+msgstr ""
+
+msgid "AlertManagement|There was an error while updating the assignees of the alert. Please try again."
+msgstr ""
+
+msgid "AlertManagement|There was an error while updating the status of the alert."
+msgstr ""
+
+msgid "AlertManagement|There was an error while updating the to-do item of the alert."
+msgstr ""
+
+msgid "AlertManagement|This assignee cannot be assigned to this alert."
+msgstr ""
+
+msgid "AlertManagement|Tool"
+msgstr ""
+
+msgid "AlertManagement|Triggered"
+msgstr ""
+
+msgid "AlertManagement|Value"
+msgstr ""
+
+msgid "AlertManagement|View incident"
+msgstr ""
+
+msgid "AlertMappingBuilder|Define fallback"
+msgstr ""
+
+msgid "AlertMappingBuilder|GitLab alert key"
+msgstr ""
+
+msgid "AlertMappingBuilder|Make selection"
+msgstr ""
+
+msgid "AlertMappingBuilder|Payload alert key"
+msgstr ""
+
+msgid "AlertMappingBuilder|Select key"
+msgstr ""
+
+msgid "AlertMappingBuilder|Title is a required field for alerts in GitLab. Should the payload field you specified not be available, specifiy which field we should use instead. "
+msgstr ""
+
+msgid "AlertSettings|A webhook URL and authorization key is generated for the integration. After you save the integration, both are visible under the “View credentials†tab."
+msgstr ""
+
+msgid "AlertSettings|Active alerts"
+msgstr ""
+
+msgid "AlertSettings|Add new integration"
+msgstr ""
+
+msgid "AlertSettings|Alert settings"
+msgstr ""
+
+msgid "AlertSettings|Authorization key"
+msgstr ""
+
+msgid "AlertSettings|Configure details"
+msgstr ""
+
+msgid "AlertSettings|Current integrations"
+msgstr ""
+
+msgid "AlertSettings|Customize alert payload mapping (optional)"
+msgstr ""
+
+msgid "AlertSettings|Delete integration"
+msgstr ""
+
+msgid "AlertSettings|Edit integration"
+msgstr ""
+
+msgid "AlertSettings|Edit payload"
+msgstr ""
+
+msgid "AlertSettings|Enable integration"
+msgstr ""
+
+msgid "AlertSettings|Enter an example payload from your selected monitoring tool. This supports sending alerts to a GitLab endpoint."
+msgstr ""
+
+msgid "AlertSettings|Enter integration name"
+msgstr ""
+
+msgid "AlertSettings|Free versions of GitLab are limited to one integration per type. To add more, %{linkStart}upgrade your subscription%{linkEnd}."
+msgstr ""
+
+msgid "AlertSettings|GitLab has created a URL and authorization key for your integration. You can use them to set up a webhook and authorize your endpoint to send alerts to GitLab."
+msgstr ""
+
+msgid "AlertSettings|HTTP Endpoint"
+msgstr ""
+
+msgid "AlertSettings|If you edit the payload, you must re-map the fields again."
+msgstr ""
+
+msgid "AlertSettings|If you reset the authorization key for this project, you must update the key in every enabled alert source."
+msgstr ""
+
+msgid "AlertSettings|Integration successfully saved"
+msgstr ""
+
+msgid "AlertSettings|Name integration"
+msgstr ""
+
+msgid "AlertSettings|Parse payload fields"
+msgstr ""
+
+msgid "AlertSettings|Proceed with editing"
+msgstr ""
+
+msgid "AlertSettings|Prometheus"
+msgstr ""
+
+msgid "AlertSettings|Reset Key"
+msgstr ""
+
+msgid "AlertSettings|Reset the mapping"
+msgstr ""
+
+msgid "AlertSettings|Sample payload has been parsed. You can now map the fields."
+msgstr ""
+
+msgid "AlertSettings|Save & create test alert"
+msgstr ""
+
+msgid "AlertSettings|Save integration"
+msgstr ""
+
+msgid "AlertSettings|Save integration & send"
+msgstr ""
+
+msgid "AlertSettings|Select integration type"
+msgstr ""
+
+msgid "AlertSettings|Send test alert"
+msgstr ""
+
+msgid "AlertSettings|Send without saving"
+msgstr ""
+
+msgid "AlertSettings|The form has unsaved changes"
+msgstr ""
+
+msgid "AlertSettings|The form has unsaved changes. How would you like to proceed?"
+msgstr ""
+
+msgid "AlertSettings|To create a custom mapping, enter an example payload from your monitoring tool, in JSON format. Select the \"Parse payload fields\" button to continue."
+msgstr ""
+
+msgid "AlertSettings|Use the URL and authorization key below to configure how Prometheus sends alerts to GitLab. Review the %{linkStart}GitLab documentation%{linkEnd} to learn how to configure your endpoint."
+msgstr ""
+
+msgid "AlertSettings|Use the URL and authorization key below to configure how an external service sends alerts to GitLab. %{linkStart}How do I configure the endpoint?%{linkEnd}"
+msgstr ""
+
+msgid "AlertSettings|View URL and authorization key"
+msgstr ""
+
+msgid "AlertSettings|View credentials"
+msgstr ""
+
+msgid "AlertSettings|Webhook URL"
+msgstr ""
+
+msgid "AlertSettings|You can map default GitLab alert fields to your payload keys in the dropdowns below."
+msgstr ""
+
+msgid "AlertSettings|{ \"events\": [{ \"application\": \"Name of application\" }] }"
+msgstr ""
+
+msgid "Alerts"
+msgstr ""
+
+msgid "AlertsIntegrations|Alerts will be created through this integration"
+msgstr ""
+
+msgid "AlertsIntegrations|Alerts will not be created through this integration"
+msgstr ""
+
+msgid "AlertsIntegrations|If you delete the %{integrationName} integration, alerts are no longer sent from this endpoint. This action cannot be undone."
+msgstr ""
+
+msgid "AlertsIntegrations|Integration Name"
+msgstr ""
+
+msgid "AlertsIntegrations|Integration payload is invalid."
+msgstr ""
+
+msgid "AlertsIntegrations|No integrations have been added yet."
+msgstr ""
+
+msgid "AlertsIntegrations|The current integration could not be updated. Please try again."
+msgstr ""
+
+msgid "AlertsIntegrations|The integration could not be added. Please try again."
+msgstr ""
+
+msgid "AlertsIntegrations|The integration could not be deleted. Please try again."
+msgstr ""
+
+msgid "AlertsIntegrations|The integration is currently inactive. Enable the integration to send the test alert."
+msgstr ""
+
+msgid "AlertsIntegrations|The integration is deleted."
+msgstr ""
+
+msgid "AlertsIntegrations|The integration is saved."
+msgstr ""
+
+msgid "AlertsIntegrations|The integration token could not be reset. Please try again."
+msgstr ""
+
+msgid "AlertsIntegrations|The test alert should now be visible in your alerts list."
+msgstr ""
+
+msgid "Algorithm"
+msgstr ""
+
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
+msgid "All"
+msgstr ""
+
+msgid "All (default)"
+msgstr ""
+
+msgid "All GitLab"
+msgstr ""
+
+msgid "All Members"
+msgstr ""
+
+msgid "All activity"
+msgstr ""
+
+msgid "All branch names must match %{link_start}this regular expression%{link_end}. If empty, any branch name is allowed."
+msgstr ""
+
+msgid "All branches"
+msgstr ""
+
+msgid "All changes are committed"
+msgstr ""
+
+msgid "All eligible users"
+msgstr ""
+
+msgid "All environments"
+msgstr ""
+
+msgid "All groups"
+msgstr ""
+
+msgid "All groups and projects"
+msgstr ""
+
+msgid "All issues"
+msgstr ""
+
+msgid "All issues for this milestone are closed."
+msgstr ""
+
+msgid "All issues for this milestone are closed. You may close this milestone now."
+msgstr ""
+
+msgid "All merge conflicts were resolved. The merge request can now be merged."
+msgstr ""
+
+msgid "All merge request dependencies have been merged"
+msgstr ""
+
+msgid "All paths are relative to the GitLab URL. Do not include %{relative_url_link_start}relative URLs%{relative_url_link_end}."
+msgstr ""
+
+msgid "All project members"
+msgstr ""
+
+msgid "All projects"
+msgstr ""
+
+msgid "All projects selected"
+msgstr ""
+
+msgid "All protected branches"
+msgstr ""
+
+msgid "All required approvals must be given."
+msgstr ""
+
+msgid "All threads resolved!"
+msgstr ""
+
+msgid "All users in this group must set up two-factor authentication"
+msgstr ""
+
+msgid "All users must accept the Terms of Service and Privacy Policy to access GitLab"
+msgstr ""
+
+msgid "All users must have a name."
+msgstr ""
+
+msgid "All users with matching cards"
+msgstr ""
+
+msgid "All users with matching phone numbers"
+msgstr ""
+
+msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
+msgstr ""
+
+msgid "Allow access to members of the following group"
+msgstr ""
+
+msgid "Allow access to the following IP addresses"
+msgstr ""
+
+msgid "Allow commits from members who can merge to the target branch. %{link_start}About this feature.%{link_end}"
+msgstr ""
+
+msgid "Allow group owners to manage LDAP-related settings"
+msgstr ""
+
+msgid "Allow job retries even if the deployment job is outdated."
+msgstr ""
+
+msgid "Allow job retries for rollback deployments"
+msgstr ""
+
+msgid "Allow new users to create top-level groups"
+msgstr ""
+
+msgid "Allow non-administrators access to the performance bar"
+msgstr ""
+
+msgid "Allow only the selected protocols to be used for Git access."
+msgstr ""
+
+msgid "Allow owners to manage default branch protection per group."
+msgstr ""
+
+msgid "Allow password authentication for Git over HTTP(S)"
+msgstr ""
+
+msgid "Allow password authentication for the web interface"
+msgstr ""
+
+msgid "Allow possible spam"
+msgstr ""
+
+msgid "Allow project maintainers to configure repository mirroring"
+msgstr ""
+
+msgid "Allow projects and subgroups to override the group setting"
+msgstr ""
+
+msgid "Allow public access to pipelines and job details, including output logs and artifacts."
+msgstr ""
+
+msgid "Allow this key to push to this repository"
+msgstr ""
+
+msgid "Allow use of licensed EE features"
+msgstr ""
+
+msgid "Allow users to create organizations"
+msgstr ""
+
+msgid "Allow users to extend their session"
+msgstr ""
+
+msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
+msgstr ""
+
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
+msgid "Allowed"
+msgstr ""
+
+msgid "Allowed email domain restriction only permitted for top-level groups"
+msgstr ""
+
+msgid "Allowed to create"
+msgstr ""
+
+msgid "Allowed to delete projects"
+msgstr ""
+
+msgid "Allowed to fail"
+msgstr ""
+
+msgid "Allows projects or subgroups in this group to override the global setting."
+msgstr ""
+
+msgid "Allows projects to track errors using an Opstrace integration."
+msgstr ""
+
+msgid "Almost there"
+msgstr ""
+
+msgid "Almost there..."
+msgstr ""
+
+msgid "Already blocked"
+msgstr ""
+
+msgid "Already have an account?"
+msgstr ""
+
+msgid "Also called \"Issuer\" or \"Relying party trust identifier\""
+msgstr ""
+
+msgid "Also called \"Relying party service URL\" or \"Reply URL\""
+msgstr ""
+
+msgid "Also remove direct user membership from subgroups and projects"
+msgstr ""
+
+msgid "Also unassign this user from related issues and merge requests"
+msgstr ""
+
+msgid "Alt text"
+msgstr ""
+
+msgid "Alternate support URL for Help page and Help dropdown."
+msgstr ""
+
+msgid "Alternatively, you can convert your account to a managed account by the %{group_name} group."
+msgstr ""
+
+msgid "Amazon EKS"
+msgstr ""
+
+msgid "Amazon EKS integration allows you to provision EKS clusters from GitLab."
+msgstr ""
+
+msgid "AmbiguousRef|There is a branch and a tag with the same name of %{ref}."
+msgstr ""
+
+msgid "AmbiguousRef|View branch"
+msgstr ""
+
+msgid "AmbiguousRef|View tag"
+msgstr ""
+
+msgid "AmbiguousRef|Which reference do you want to view?"
+msgstr ""
+
+msgid "AmbiguousRef|Which reference would you like to view?"
+msgstr ""
+
+msgid "An %{link_start}alert%{link_end} with the same fingerprint is already open. To change the status of this alert, resolve the linked alert."
+msgstr ""
+
+msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
+msgstr ""
+
+msgid "An administrator changed the password for your GitLab account on %{link_to}."
+msgstr ""
+
+msgid "An alert has been resolved in %{project_path}."
+msgstr ""
+
+msgid "An alert has been triggered in %{project_path}."
+msgstr ""
+
+msgid "An application called %{link_to_client} is requesting access to your GitLab account."
+msgstr ""
+
+msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
+msgstr ""
+
+msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
+msgstr ""
+
+msgid "An error has occurred"
+msgstr ""
+
+msgid "An error in reporting in which a test result incorrectly indicates the presence of a vulnerability in a system when the vulnerability is not present."
+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 fetching the project authors."
+msgstr ""
+
+msgid "An error occurred fetching the public deploy keys. Please try again."
+msgstr ""
+
+msgid "An error occurred previewing the blob"
+msgstr ""
+
+msgid "An error occurred when updating the title"
+msgstr ""
+
+msgid "An error occurred while acknowledging the notification. Refresh the page and try again."
+msgstr ""
+
+msgid "An error occurred while adding approvers"
+msgstr ""
+
+msgid "An error occurred while adding formatted title for epic"
+msgstr ""
+
+msgid "An error occurred while approving, please try again."
+msgstr ""
+
+msgid "An error occurred while checking group path. Please refresh and try again."
+msgstr ""
+
+msgid "An error occurred while creating the issue. Please try again."
+msgstr ""
+
+msgid "An error occurred while decoding the file."
+msgstr ""
+
+msgid "An error occurred while deleting an issuable."
+msgstr ""
+
+msgid "An error occurred while deleting the approvers group"
+msgstr ""
+
+msgid "An error occurred while deleting the comment"
+msgstr ""
+
+msgid "An error occurred while deleting the pipeline."
+msgstr ""
+
+msgid "An error occurred while detecting host keys"
+msgstr ""
+
+msgid "An error occurred while disabling Service Desk."
+msgstr ""
+
+msgid "An error occurred while dismissing the alert. Refresh the page and try again."
+msgstr ""
+
+msgid "An error occurred while drawing job relationship links."
+msgstr ""
+
+msgid "An error occurred while enabling Service Desk."
+msgstr ""
+
+msgid "An error occurred while fetching Markdown preview"
+msgstr ""
+
+msgid "An error occurred while fetching ancestors"
+msgstr ""
+
+msgid "An error occurred while fetching branches. Retry the search."
+msgstr ""
+
+msgid "An error occurred while fetching codequality mr diff reports."
+msgstr ""
+
+msgid "An error occurred while fetching comments, please try again."
+msgstr ""
+
+msgid "An error occurred while fetching commit data."
+msgstr ""
+
+msgid "An error occurred while fetching commits. Retry the search."
+msgstr ""
+
+msgid "An error occurred while fetching coverage reports."
+msgstr ""
+
+msgid "An error occurred while fetching environments."
+msgstr ""
+
+msgid "An error occurred while fetching exposed artifacts."
+msgstr ""
+
+msgid "An error occurred while fetching folder content."
+msgstr ""
+
+msgid "An error occurred while fetching issues."
+msgstr ""
+
+msgid "An error occurred while fetching label colors."
+msgstr ""
+
+msgid "An error occurred while fetching labels, please try again."
+msgstr ""
+
+msgid "An error occurred while fetching participants"
+msgstr ""
+
+msgid "An error occurred while fetching participants."
+msgstr ""
+
+msgid "An error occurred while fetching pending comments"
+msgstr ""
+
+msgid "An error occurred while fetching reference"
+msgstr ""
+
+msgid "An error occurred while fetching reviewers."
+msgstr ""
+
+msgid "An error occurred while fetching tags. Retry the search."
+msgstr ""
+
+msgid "An error occurred while fetching terraform reports."
+msgstr ""
+
+msgid "An error occurred while fetching the health status."
+msgstr ""
+
+msgid "An error occurred while fetching the job log."
+msgstr ""
+
+msgid "An error occurred while fetching the job logs."
+msgstr ""
+
+msgid "An error occurred while fetching the job."
+msgstr ""
+
+msgid "An error occurred while fetching the jobs."
+msgstr ""
+
+msgid "An error occurred while fetching the latest pipeline."
+msgstr ""
+
+msgid "An error occurred while fetching the pipelines jobs."
+msgstr ""
+
+msgid "An error occurred while fetching the releases. Please try again."
+msgstr ""
+
+msgid "An error occurred while fetching the template: %{err}"
+msgstr ""
+
+msgid "An error occurred while fetching this tab."
+msgstr ""
+
+msgid "An error occurred while fetching. Please try again."
+msgstr ""
+
+msgid "An error occurred while getting files for - %{branchId}"
+msgstr ""
+
+msgid "An error occurred while getting issue counts"
+msgstr ""
+
+msgid "An error occurred while initializing path locks"
+msgstr ""
+
+msgid "An error occurred while loading a section of this page."
+msgstr ""
+
+msgid "An error occurred while loading all the files."
+msgstr ""
+
+msgid "An error occurred while loading chart data"
+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 ""
+
+msgid "An error occurred while loading filenames"
+msgstr ""
+
+msgid "An error occurred while loading group members."
+msgstr ""
+
+msgid "An error occurred while loading issues"
+msgstr ""
+
+msgid "An error occurred while loading merge requests."
+msgstr ""
+
+msgid "An error occurred while loading projects."
+msgstr ""
+
+msgid "An error occurred while loading the blob controls."
+msgstr ""
+
+msgid "An error occurred while loading the file"
+msgstr ""
+
+msgid "An error occurred while loading the file content."
+msgstr ""
+
+msgid "An error occurred while loading the file."
+msgstr ""
+
+msgid "An error occurred while loading the file. Please try again later."
+msgstr ""
+
+msgid "An error occurred while loading the file. Please try again."
+msgstr ""
+
+msgid "An error occurred while loading the merge request changes."
+msgstr ""
+
+msgid "An error occurred while loading the merge request version data."
+msgstr ""
+
+msgid "An error occurred while loading the merge request."
+msgstr ""
+
+msgid "An error occurred while loading the notification settings. Please try again."
+msgstr ""
+
+msgid "An error occurred while loading the pipelines jobs."
+msgstr ""
+
+msgid "An error occurred while making the request."
+msgstr ""
+
+msgid "An error occurred while moving the issue."
+msgstr ""
+
+msgid "An error occurred while parsing recent searches"
+msgstr ""
+
+msgid "An error occurred while parsing the file."
+msgstr ""
+
+msgid "An error occurred while pasting text in the editor. Please try again."
+msgstr ""
+
+msgid "An error occurred while performing this action."
+msgstr ""
+
+msgid "An error occurred while removing epics."
+msgstr ""
+
+msgid "An error occurred while removing issues."
+msgstr ""
+
+msgid "An error occurred while rendering the editor"
+msgstr ""
+
+msgid "An error occurred while reordering issues."
+msgstr ""
+
+msgid "An error occurred while resetting the compute usage."
+msgstr ""
+
+msgid "An error occurred while retrieving calendar activity"
+msgstr ""
+
+msgid "An error occurred while retrieving diff"
+msgstr ""
+
+msgid "An error occurred while retrieving diff files"
+msgstr ""
+
+msgid "An error occurred while retrieving projects."
+msgstr ""
+
+msgid "An error occurred while retrieving your settings. Reload the page to try again."
+msgstr ""
+
+msgid "An error occurred while saving changes: %{error}"
+msgstr ""
+
+msgid "An error occurred while saving the settings."
+msgstr ""
+
+msgid "An error occurred while saving your settings. Try saving them again."
+msgstr ""
+
+msgid "An error occurred while searching for labels, please try again."
+msgstr ""
+
+msgid "An error occurred while triggering the job."
+msgstr ""
+
+msgid "An error occurred while trying to follow this user, please try again."
+msgstr ""
+
+msgid "An error occurred while trying to render the content editor. Please try again."
+msgstr ""
+
+msgid "An error occurred while trying to run a new pipeline for this merge request."
+msgstr ""
+
+msgid "An error occurred while trying to unfollow this user, please try again."
+msgstr ""
+
+msgid "An error occurred while trying to update the registries: '%{error_message}'."
+msgstr ""
+
+msgid "An error occurred while trying to update the registry: '%{error_message}'."
+msgstr ""
+
+msgid "An error occurred while updating approvers"
+msgstr ""
+
+msgid "An error occurred while updating assignees."
+msgstr ""
+
+msgid "An error occurred while updating configuration."
+msgstr ""
+
+msgid "An error occurred while updating labels."
+msgstr ""
+
+msgid "An error occurred while updating the configuration."
+msgstr ""
+
+msgid "An error occurred while updating the notification settings. Please try again."
+msgstr ""
+
+msgid "An error occurred while uploading the file. Please try again."
+msgstr ""
+
+msgid "An error occurred while validating group path"
+msgstr ""
+
+msgid "An error occurred while validating username"
+msgstr ""
+
+msgid "An error occurred. Please sign in again."
+msgstr ""
+
+msgid "An error occurred. Please try again."
+msgstr ""
+
+msgid "An error occurred. Unable to reopen this merge request."
+msgstr ""
+
+msgid "An example project for managing Kubernetes clusters integrated with GitLab"
+msgstr ""
+
+msgid "An example project that shows off the best practices for setting up GitLab for your own organization, including sample issues, merge requests, and milestones"
+msgstr ""
+
+msgid "An example showing how to use Jsonnet with GitLab dynamic child pipelines"
+msgstr ""
+
+msgid "An incident has been resolved in %{project_path}."
+msgstr ""
+
+msgid "An incident has been triggered in %{project_path}."
+msgstr ""
+
+msgid "An integer value is required for seconds"
+msgstr ""
+
+msgid "An issue already exists"
+msgstr ""
+
+msgid "An issue has been assigned to you."
+msgid_plural "%d issues have been assigned to you."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "An unauthenticated user"
+msgstr ""
+
+msgid "An unexpected error occurred"
+msgstr ""
+
+msgid "An unexpected error occurred while checking the project environment."
+msgstr ""
+
+msgid "An unexpected error occurred while checking the project runners."
+msgstr ""
+
+msgid "An unexpected error occurred while communicating with the Web Terminal."
+msgstr ""
+
+msgid "An unexpected error occurred while loading the code quality diff."
+msgstr ""
+
+msgid "An unexpected error occurred while starting the Web Terminal."
+msgstr ""
+
+msgid "An unexpected error occurred while stopping the Web Terminal."
+msgstr ""
+
+msgid "An unexpected error occurred. Please try again."
+msgstr ""
+
+msgid "An unknown error occurred while loading this graph."
+msgstr ""
+
+msgid "An unknown error occurred."
+msgstr ""
+
+msgid "Analytics"
+msgstr ""
+
+msgid "Analytics dashboards"
+msgstr ""
+
+msgid "Analytics settings"
+msgstr ""
+
+msgid "Analytics|A dashboard with that name already exists."
+msgstr ""
+
+msgid "Analytics|A visualization with that name already exists."
+msgstr ""
+
+msgid "Analytics|Add a visualization"
+msgstr ""
+
+msgid "Analytics|Add to dashboard"
+msgstr ""
+
+msgid "Analytics|Add visualization"
+msgstr ""
+
+msgid "Analytics|Add visualizations"
+msgstr ""
+
+msgid "Analytics|An error occurred while loading data"
+msgstr ""
+
+msgid "Analytics|An error occurred while loading the %{visualizationTitle} visualization."
+msgstr ""
+
+msgid "Analytics|Analytics dashboards"
+msgstr ""
+
+msgid "Analytics|Analytics settings for '%{project_name}' were successfully updated."
+msgstr ""
+
+msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
+msgstr ""
+
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
+msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
+msgstr ""
+
+msgid "Analytics|Browser"
+msgstr ""
+
+msgid "Analytics|Browser Family"
+msgstr ""
+
+msgid "Analytics|By GitLab"
+msgstr ""
+
+msgid "Analytics|Cancel"
+msgstr ""
+
+msgid "Analytics|Charts"
+msgstr ""
+
+msgid "Analytics|Code"
+msgstr ""
+
+msgid "Analytics|Column chart"
+msgstr ""
+
+msgid "Analytics|Configure Dashboard Project"
+msgstr ""
+
+msgid "Analytics|Continue creating"
+msgstr ""
+
+msgid "Analytics|Continue editing"
+msgstr ""
+
+msgid "Analytics|Create dashboard %{dashboardSlug}"
+msgstr ""
+
+msgid "Analytics|Create your dashboard"
+msgstr ""
+
+msgid "Analytics|Create your visualization"
+msgstr ""
+
+msgid "Analytics|Custom dashboards"
+msgstr ""
+
+msgid "Analytics|Custom events"
+msgstr ""
+
+msgid "Analytics|Dashboard description"
+msgstr ""
+
+msgid "Analytics|Dashboard description (optional)"
+msgstr ""
+
+msgid "Analytics|Dashboard not found"
+msgstr ""
+
+msgid "Analytics|Dashboard title"
+msgstr ""
+
+msgid "Analytics|Dashboard was saved successfully"
+msgstr ""
+
+msgid "Analytics|Dashboards are created by editing the groups dashboard files."
+msgstr ""
+
+msgid "Analytics|Dashboards are created by editing the projects dashboard files."
+msgstr ""
+
+msgid "Analytics|Data"
+msgstr ""
+
+msgid "Analytics|Data table"
+msgstr ""
+
+msgid "Analytics|Dates and times are displayed in the UTC timezone"
+msgstr ""
+
+msgid "Analytics|Edit"
+msgstr ""
+
+msgid "Analytics|Edit your dashboard"
+msgstr ""
+
+msgid "Analytics|Element ID"
+msgstr ""
+
+msgid "Analytics|Enter a dashboard description"
+msgstr ""
+
+msgid "Analytics|Enter a dashboard title"
+msgstr ""
+
+msgid "Analytics|Enter a visualization title"
+msgstr ""
+
+msgid "Analytics|Error while saving dashboard"
+msgstr ""
+
+msgid "Analytics|Error while saving visualization."
+msgstr ""
+
+msgid "Analytics|Event Name"
+msgstr ""
+
+msgid "Analytics|Event Props"
+msgstr ""
+
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
+msgid "Analytics|Failed to fetch data"
+msgstr ""
+
+msgid "Analytics|Host"
+msgstr ""
+
+msgid "Analytics|Invalid visualization configuration"
+msgstr ""
+
+msgid "Analytics|Language"
+msgstr ""
+
+msgid "Analytics|Line chart"
+msgstr ""
+
+msgid "Analytics|Link clicks"
+msgstr ""
+
+msgid "Analytics|New dashboard"
+msgstr ""
+
+msgid "Analytics|No dashboard matches the specified URL path."
+msgstr ""
+
+msgid "Analytics|No results match your query or filter."
+msgstr ""
+
+msgid "Analytics|OS"
+msgstr ""
+
+msgid "Analytics|OS Version"
+msgstr ""
+
+msgid "Analytics|Page Language"
+msgstr ""
+
+msgid "Analytics|Page Path"
+msgstr ""
+
+msgid "Analytics|Page Title"
+msgstr ""
+
+msgid "Analytics|Pages"
+msgstr ""
+
+msgid "Analytics|Referer"
+msgstr ""
+
+msgid "Analytics|Resulting Data"
+msgstr ""
+
+msgid "Analytics|Save and add to Dashboard"
+msgstr ""
+
+msgid "Analytics|Save your dashboard"
+msgstr ""
+
+msgid "Analytics|Save your visualization"
+msgstr ""
+
+msgid "Analytics|Select a measurement"
+msgstr ""
+
+msgid "Analytics|Select a visualization type"
+msgstr ""
+
+msgid "Analytics|Single statistic"
+msgstr ""
+
+msgid "Analytics|Single stats"
+msgstr ""
+
+msgid "Analytics|Something is wrong with your panel visualization configuration. See %{linkStart}troubleshooting documentation%{linkEnd}."
+msgstr ""
+
+msgid "Analytics|Something went wrong while connecting to your data source. See %{linkStart}troubleshooting documentation%{linkEnd}."
+msgstr ""
+
+msgid "Analytics|Something went wrong while loading available visualizations. Refresh the page to try again."
+msgstr ""
+
+msgid "Analytics|Something went wrong while loading the dashboard. Refresh the page to try again or see %{linkStart}troubleshooting documentation%{linkEnd}."
+msgstr ""
+
+msgid "Analytics|Something went wrong."
+msgstr ""
+
+msgid "Analytics|Start by choosing a metric"
+msgstr ""
+
+msgid "Analytics|Tables"
+msgstr ""
+
+msgid "Analytics|Target URL"
+msgstr ""
+
+msgid "Analytics|To create your own dashboards, first configure a project to store your dashboards."
+msgstr ""
+
+msgid "Analytics|URL"
+msgstr ""
+
+msgid "Analytics|Updating dashboard %{dashboardSlug}"
+msgstr ""
+
+msgid "Analytics|Updating visualization %{visualizationName}"
+msgstr ""
+
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
+msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
+msgstr ""
+
+msgid "Analytics|User Id"
+msgstr ""
+
+msgid "Analytics|User Props"
+msgstr ""
+
+msgid "Analytics|Users"
+msgstr ""
+
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
+msgid "Analytics|View available dashboards"
+msgstr ""
+
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
+msgid "Analytics|Viewport"
+msgstr ""
+
+msgid "Analytics|Visualization"
+msgstr ""
+
+msgid "Analytics|Visualization designer"
+msgstr ""
+
+msgid "Analytics|Visualization title"
+msgstr ""
+
+msgid "Analytics|Visualization type"
+msgstr ""
+
+msgid "Analytics|Visualization was saved successfully"
+msgstr ""
+
+msgid "Analyze your dependencies for known vulnerabilities."
+msgstr ""
+
+msgid "Analyze your infrastructure as code configuration files for known vulnerabilities."
+msgstr ""
+
+msgid "Analyze your source code and git history for secrets."
+msgstr ""
+
+msgid "Analyze your source code for known vulnerabilities."
+msgstr ""
+
+msgid "Analyzing file…"
+msgstr ""
+
+msgid "Ancestors"
+msgstr ""
+
+msgid "Anonymous"
+msgstr ""
+
+msgid "Anonymous user"
+msgstr ""
+
+msgid "Another issue tracker is already in use. Only one issue tracker service can be active at a time"
+msgstr ""
+
+msgid "Another open merge request already exists for this source branch: %{conflicting_mr_reference}"
+msgstr ""
+
+msgid "Another third-party wiki is already in use. Only one third-party wiki integration can be active at a time"
+msgstr ""
+
+msgid "Anti-spam verification"
+msgstr ""
+
+msgid "Any"
+msgstr ""
+
+msgid "Any %{header}"
+msgstr ""
+
+msgid "Any Author"
+msgstr ""
+
+msgid "Any Milestone"
+msgstr ""
+
+msgid "Any encrypted tokens"
+msgstr ""
+
+msgid "Any label"
+msgstr ""
+
+msgid "Any member with at least Developer permissions on the project."
+msgstr ""
+
+msgid "Any milestone"
+msgstr ""
+
+msgid "App ID"
+msgstr ""
+
+msgid "Appearance"
+msgstr ""
+
+msgid "Appearance was successfully created."
+msgstr ""
+
+msgid "Appearance was successfully updated."
+msgstr ""
+
+msgid "Append the comment with %{shrug}"
+msgstr ""
+
+msgid "Append the comment with %{tableflip}"
+msgstr ""
+
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
+msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
+msgstr ""
+
+msgid "AppleAppStore|Drop your Private Key file to start the upload."
+msgstr ""
+
+msgid "AppleAppStore|Error: You are trying to upload something other than a Private Key file."
+msgstr ""
+
+msgid "AppleAppStore|Leave empty to use your current Private Key."
+msgstr ""
+
+msgid "AppleAppStore|Protected branches and tags only"
+msgstr ""
+
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
+
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
+
+msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
+msgstr ""
+
+msgid "AppleAppStore|Upload a new Apple App Store Connect Private Key (replace %{currentFileName})"
+msgstr ""
+
+msgid "AppleAppStore|Use GitLab to build and release an app in the Apple App Store."
+msgstr ""
+
+msgid "Application"
+msgstr ""
+
+msgid "Application ID"
+msgstr ""
+
+msgid "Application limits saved successfully"
+msgstr ""
+
+msgid "Application settings saved successfully"
+msgstr ""
+
+msgid "Application settings saved successfully."
+msgstr ""
+
+msgid "Application settings update failed"
+msgstr ""
+
+msgid "Application was successfully destroyed."
+msgstr ""
+
+msgid "Application was successfully updated."
+msgstr ""
+
+msgid "Application: %{name}"
+msgstr ""
+
+msgid "ApplicationSettings|A Metrics Dashboard menu item appears in the Monitoring section of the Admin Area."
+msgstr ""
+
+msgid "ApplicationSettings|Add a link to Grafana"
+msgstr ""
+
+msgid "ApplicationSettings|After sign-up text"
+msgstr ""
+
+msgid "ApplicationSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave blank for unlimited."
+msgstr ""
+
+msgid "ApplicationSettings|Allowed domains for sign-ups"
+msgstr ""
+
+msgid "ApplicationSettings|Allows users to delete their own accounts"
+msgstr ""
+
+msgid "ApplicationSettings|Any user that visits %{host} and creates an account must be explicitly approved by an administrator before they can sign in. Only effective if sign-ups are enabled."
+msgstr ""
+
+msgid "ApplicationSettings|Any user that visits %{host} can create an account."
+msgstr ""
+
+msgid "ApplicationSettings|Approve %d user"
+msgid_plural "ApplicationSettings|Approve %d users"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ApplicationSettings|Approve users"
+msgstr ""
+
+msgid "ApplicationSettings|Approve users in the pending approval status?"
+msgstr ""
+
+msgid "ApplicationSettings|Approve users who are pending approval?"
+msgstr ""
+
+msgid "ApplicationSettings|By making this change, you will automatically approve %d user who is pending approval."
+msgid_plural "ApplicationSettings|By making this change, you will automatically approve %d users who are pending approval."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ApplicationSettings|By making this change, you will automatically approve all users who are pending approval."
+msgstr ""
+
+msgid "ApplicationSettings|Denied domains for sign-ups"
+msgstr ""
+
+msgid "ApplicationSettings|Denylist file"
+msgstr ""
+
+msgid "ApplicationSettings|Domain denylist"
+msgstr ""
+
+msgid "ApplicationSettings|Email confirmation settings"
+msgstr ""
+
+msgid "ApplicationSettings|Email restrictions"
+msgstr ""
+
+msgid "ApplicationSettings|Email restrictions for sign-ups"
+msgstr ""
+
+msgid "ApplicationSettings|Enable GitLab for Slack app"
+msgstr ""
+
+msgid "ApplicationSettings|Enable domain denylist for sign-ups"
+msgstr ""
+
+msgid "ApplicationSettings|Enable email restrictions for sign-ups"
+msgstr ""
+
+msgid "ApplicationSettings|Enter denylist manually"
+msgstr ""
+
+msgid "ApplicationSettings|Hard"
+msgstr ""
+
+msgid "ApplicationSettings|Minimum password length (number of characters)"
+msgstr ""
+
+msgid "ApplicationSettings|New users can sign up without confirming their email address."
+msgstr ""
+
+msgid "ApplicationSettings|Off"
+msgstr ""
+
+msgid "ApplicationSettings|Only users with e-mail addresses that match these domain(s) can sign up. Wildcards allowed. Use separate lines for multiple entries. Example: domain.com, *.domain.com"
+msgstr ""
+
+msgid "ApplicationSettings|Require admin approval for new sign-ups"
+msgstr ""
+
+msgid "ApplicationSettings|Require lowercase letters"
+msgstr ""
+
+msgid "ApplicationSettings|Require numbers"
+msgstr ""
+
+msgid "ApplicationSettings|Require symbols"
+msgstr ""
+
+msgid "ApplicationSettings|Require uppercase letters"
+msgstr ""
+
+msgid "ApplicationSettings|Restricts sign-ups for email addresses that match the given regex. %{linkStart}What is the supported syntax?%{linkEnd}"
+msgstr ""
+
+msgid "ApplicationSettings|Save changes"
+msgstr ""
+
+msgid "ApplicationSettings|See %{linkStart}password policy guidelines%{linkEnd}."
+msgstr ""
+
+msgid "ApplicationSettings|Send a confirmation email during sign up. New users can log in immediately, but must confirm their email within three days."
+msgstr ""
+
+msgid "ApplicationSettings|Send a confirmation email during sign up. New users must confirm their email address before they can log in."
+msgstr ""
+
+msgid "ApplicationSettings|Sign-up enabled"
+msgstr ""
+
+msgid "ApplicationSettings|Soft"
+msgstr ""
+
+msgid "ApplicationSettings|Text shown after a user signs up. Markdown enabled."
+msgstr ""
+
+msgid "ApplicationSettings|Upload denylist file"
+msgstr ""
+
+msgid "ApplicationSettings|User cap"
+msgstr ""
+
+msgid "ApplicationSettings|Users with e-mail addresses that match these domain(s) cannot sign up. Wildcards allowed. Use separate lines for multiple entries. Example: domain.com, *.domain.com"
+msgstr ""
+
+msgid "ApplicationSettings|Users with e-mail addresses that match these domain(s) cannot sign up. Wildcards allowed. Use separate lines or commas for multiple entries."
+msgstr ""
+
+msgid "ApplicationSettings|When enabled, new passwords must contain at least one lowercase letter (a-z)."
+msgstr ""
+
+msgid "ApplicationSettings|When enabled, new passwords must contain at least one number (0-9)."
+msgstr ""
+
+msgid "ApplicationSettings|When enabled, new passwords must contain at least one symbol."
+msgstr ""
+
+msgid "ApplicationSettings|When enabled, new passwords must contain at least one uppercase letter (A-Z)."
+msgstr ""
+
+msgid "ApplicationSettings|domain.com"
+msgstr ""
+
+msgid "Applications"
+msgstr ""
+
+msgid "Applied"
+msgstr ""
+
+msgid "Apply"
+msgstr ""
+
+msgid "Apply %d suggestion"
+msgid_plural "Apply %d suggestions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Apply a label"
+msgstr ""
+
+msgid "Apply a template"
+msgstr ""
+
+msgid "Apply suggestion"
+msgstr ""
+
+msgid "Apply template"
+msgstr ""
+
+msgid "Apply this approval rule to all branches or a specific protected branch."
+msgstr ""
+
+msgid "Applying"
+msgstr ""
+
+msgid "Applying a template will replace the existing issue description. Any changes you have made will be lost."
+msgstr ""
+
+msgid "Applying command"
+msgstr ""
+
+msgid "Applying command to %{commandDescription}"
+msgstr ""
+
+msgid "Applying multiple commands"
+msgstr ""
+
+msgid "Applying suggestion..."
+msgstr ""
+
+msgid "Applying suggestions..."
+msgstr ""
+
+msgid "Approval options"
+msgstr ""
+
+msgid "Approval rejected."
+msgstr ""
+
+msgid "Approval rules"
+msgstr ""
+
+msgid "Approval rules reset to project defaults"
+msgstr ""
+
+msgid "Approval settings"
+msgstr ""
+
+msgid "ApprovalRuleRemove|%d member"
+msgid_plural "ApprovalRuleRemove|%d members"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ApprovalRuleRemove|You are about to remove the %{name} approver group which has %{strongStart}%{count} member%{strongEnd}. Approvals from this member are not revoked."
+msgid_plural "ApprovalRuleRemove|You are about to remove the %{name} approver group which has %{strongStart}%{count} members%{strongEnd}. Approvals from these members are not revoked."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ApprovalRuleSummary|%d member"
+msgid_plural "ApprovalRuleSummary|%d members"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ApprovalRuleSummary|%{count} approval required from %{membersCount}"
+msgid_plural "ApprovalRuleSummary|%{count} approvals required from %{membersCount}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ApprovalRule|A merge request author collaborating with a merge request approver"
+msgstr ""
+
+msgid "ApprovalRule|Add approvers"
+msgstr ""
+
+msgid "ApprovalRule|Any"
+msgstr ""
+
+msgid "ApprovalRule|Approval rules"
+msgstr ""
+
+msgid "ApprovalRule|Approvals required"
+msgstr ""
+
+msgid "ApprovalRule|Approver Type"
+msgstr ""
+
+msgid "ApprovalRule|Approvers"
+msgstr ""
+
+msgid "ApprovalRule|Confirmed"
+msgstr ""
+
+msgid "ApprovalRule|Dismissed"
+msgstr ""
+
+msgid "ApprovalRule|Examples: QA, Security."
+msgstr ""
+
+msgid "ApprovalRule|Greater than"
+msgstr ""
+
+msgid "ApprovalRule|Improve your organization's code review with required approvals."
+msgstr ""
+
+msgid "ApprovalRule|Increase quality and maintain standards."
+msgstr ""
+
+msgid "ApprovalRule|Learn more about merge request approval rules."
+msgstr ""
+
+msgid "ApprovalRule|Less than"
+msgstr ""
+
+msgid "ApprovalRule|More than"
+msgstr ""
+
+msgid "ApprovalRule|Name"
+msgstr ""
+
+msgid "ApprovalRule|Need triage"
+msgstr ""
+
+msgid "ApprovalRule|Needs triage"
+msgstr ""
+
+msgid "ApprovalRule|New"
+msgstr ""
+
+msgid "ApprovalRule|Previously existing"
+msgstr ""
+
+msgid "ApprovalRule|Reduce your time to merge."
+msgstr ""
+
+msgid "ApprovalRule|Resolved"
+msgstr ""
+
+msgid "ApprovalRule|Rule name"
+msgstr ""
+
+msgid "ApprovalRule|Search in"
+msgstr ""
+
+msgid "ApprovalRule|Search users or groups"
+msgstr ""
+
+msgid "ApprovalRule|Select eligible approvers by expertise or files changed."
+msgstr ""
+
+msgid "ApprovalRule|Target branch"
+msgstr ""
+
+msgid "ApprovalRule|Try for free"
+msgstr ""
+
+msgid "ApprovalRule|all groups"
+msgstr ""
+
+msgid "ApprovalRule|day(s)"
+msgstr ""
+
+msgid "ApprovalRule|month(s)"
+msgstr ""
+
+msgid "ApprovalRule|project groups"
+msgstr ""
+
+msgid "ApprovalRule|week(s)"
+msgstr ""
+
+msgid "ApprovalRule||year(s)"
+msgstr ""
+
+msgid "ApprovalSettings|Keep approvals"
+msgstr ""
+
+msgid "ApprovalSettings|Merge request approval settings have been updated."
+msgstr ""
+
+msgid "ApprovalSettings|Prevent approval by author"
+msgstr ""
+
+msgid "ApprovalSettings|Prevent approvals by users who add commits"
+msgstr ""
+
+msgid "ApprovalSettings|Prevent editing approval rules in merge requests"
+msgstr ""
+
+msgid "ApprovalSettings|Prevent editing approval rules in projects and merge requests"
+msgstr ""
+
+msgid "ApprovalSettings|Prevent editing approval rules in projects and merge requests."
+msgstr ""
+
+msgid "ApprovalSettings|Remove all approvals"
+msgstr ""
+
+msgid "ApprovalSettings|Remove approvals by Code Owners if their files changed"
+msgstr ""
+
+msgid "ApprovalSettings|Require user re-authentication (password or SAML) to approve"
+msgstr ""
+
+msgid "ApprovalSettings|There was an error loading merge request approval settings."
+msgstr ""
+
+msgid "ApprovalSettings|There was an error updating merge request approval settings."
+msgstr ""
+
+msgid "ApprovalSettings|This setting is configured at the instance level and can only be changed by an administrator."
+msgstr ""
+
+msgid "ApprovalSettings|This setting is configured in %{groupName} and can only be changed in the group settings by an administrator or group owner."
+msgstr ""
+
+msgid "ApprovalSettings|When a commit is added:"
+msgstr ""
+
+msgid "Approvals"
+msgstr ""
+
+msgid "Approvals are optional."
+msgstr ""
+
+msgid "Approvals required"
+msgstr ""
+
+msgid "Approvals|%{count} of %{total}"
+msgstr ""
+
+msgid "Approvals|Action required"
+msgstr ""
+
+msgid "Approvals|Auto approved"
+msgstr ""
+
+msgid "Approvals|It looks like there was a conflict between the rules for approving this Merge Request and the users who were eligible to approve it. As a result, the system has automatically approved it to keep things moving."
+msgstr ""
+
+msgid "Approvals|Rule automatically approved"
+msgstr ""
+
+msgid "Approvals|Rule cannot be approved"
+msgstr ""
+
+msgid "Approvals|Section: %section"
+msgstr ""
+
+msgid "Approvals|The number of people who need to approve this is more than those who are allowed to. Please ask the project owner to update %{securityPolicy}."
+msgstr ""
+
+msgid "Approvals|Verify the number of %{linkStart}eligible security approvers%{linkEnd} matches the required approvers for the security policy."
+msgstr ""
+
+msgid "Approvals|Verify your %{eligibleApproverLinkStart}eligible approvers%{eligibleApproverLinkEnd} and %{approvalSettingsLinkStart}approval settings%{approvalSettingsLinkEnd} agree with each other."
+msgstr ""
+
+msgid "Approvals|Verify your %{linkStart}approval settings%{linkEnd} do not conflict with this rule."
+msgstr ""
+
+msgid "Approve"
+msgstr ""
+
+msgid "Approve All"
+msgstr ""
+
+msgid "Approve a merge request"
+msgstr ""
+
+msgid "Approve a pending member"
+msgid_plural "Approve %d pending members"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Approve merge request"
+msgstr ""
+
+msgid "Approve the current merge request."
+msgstr ""
+
+msgid "Approved"
+msgstr ""
+
+msgid "Approved members will use an additional seat in your subscription, which may override your user cap."
+msgid_plural "Approved members will use an additional %d seats in your subscription, which may override your user cap."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Approved members will use an additional seat in your subscription."
+msgid_plural "Approved members will use an additional %d seats in your subscription."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Approved the current merge request."
+msgstr ""
+
+msgid "Approved-By"
+msgstr ""
+
+msgid "Approver"
+msgstr ""
+
+msgid "Approvers"
+msgstr ""
+
+msgid "Approvers from private group(s) not shown"
+msgstr ""
+
+msgid "Apr"
+msgstr ""
+
+msgid "April"
+msgstr ""
+
+msgid "Architecture not found for OS"
+msgstr ""
+
+msgid "Archive"
+msgstr ""
+
+msgid "Archive jobs"
+msgstr ""
+
+msgid "Archive project"
+msgstr ""
+
+msgid "Archived"
+msgstr ""
+
+msgid "Archived (%{movedToStart}moved%{movedToEnd})"
+msgstr ""
+
+msgid "Archived in this version"
+msgstr ""
+
+msgid "Archived project! Repository and other project resources are read-only"
+msgstr ""
+
+msgid "Archived projects"
+msgstr ""
+
+msgid "Archiving the project makes it entirely read-only. It is hidden from the dashboard and doesn't display in searches. %{strong_start}The repository cannot be committed to, and no issues, comments, or other entities can be created.%{strong_end} %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Are you ABSOLUTELY SURE you wish to remove this group?"
+msgstr ""
+
+msgid "Are you absolutely sure?"
+msgstr ""
+
+msgid "Are you sure that you want to archive this project?"
+msgstr ""
+
+msgid "Are you sure that you want to destroy %{application}"
+msgstr ""
+
+msgid "Are you sure that you want to unarchive this project?"
+msgstr ""
+
+msgid "Are you sure you want to %{action} %{name}?"
+msgstr ""
+
+msgid "Are you sure you want to approve %{user}?"
+msgstr ""
+
+msgid "Are you sure you want to attempt to merge?"
+msgstr ""
+
+msgid "Are you sure you want to cancel editing this %{commentType}?"
+msgstr ""
+
+msgid "Are you sure you want to close this blocked issue?"
+msgstr ""
+
+msgid "Are you sure you want to continue?"
+msgstr ""
+
+msgid "Are you sure you want to delete %{name}?"
+msgstr ""
+
+msgid "Are you sure you want to delete %{name}? This action cannot be undone."
+msgstr ""
+
+msgid "Are you sure you want to delete this %{commentType}?"
+msgstr ""
+
+msgid "Are you sure you want to delete this SSH key?"
+msgstr ""
+
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
+msgid "Are you sure you want to delete this comment?"
+msgstr ""
+
+msgid "Are you sure you want to delete this deploy key?"
+msgstr ""
+
+msgid "Are you sure you want to delete this device? This action cannot be undone."
+msgstr ""
+
+msgid "Are you sure you want to delete this label?"
+msgstr ""
+
+msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
+msgstr ""
+
+msgid "Are you sure you want to deploy this environment?"
+msgstr ""
+
+msgid "Are you sure you want to discard this comment?"
+msgstr ""
+
+msgid "Are you sure you want to discard your changes?"
+msgstr ""
+
+msgid "Are you sure you want to import %d repository?"
+msgid_plural "Are you sure you want to import %d repositories?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Are you sure you want to leave the Web IDE? All unsaved changes will be lost."
+msgstr ""
+
+msgid "Are you sure you want to lock %{path}?"
+msgstr ""
+
+msgid "Are you sure you want to lock this directory?"
+msgstr ""
+
+msgid "Are you sure you want to lose unsaved changes?"
+msgstr ""
+
+msgid "Are you sure you want to lose your issue information?"
+msgstr ""
+
+msgid "Are you sure you want to merge immediately?"
+msgstr ""
+
+msgid "Are you sure you want to re-deploy this environment?"
+msgstr ""
+
+msgid "Are you sure you want to reindex?"
+msgstr ""
+
+msgid "Are you sure you want to remove %{email}?"
+msgstr ""
+
+msgid "Are you sure you want to remove %{group_name}?"
+msgstr ""
+
+msgid "Are you sure you want to remove %{topic_name}?"
+msgstr ""
+
+msgid "Are you sure you want to remove the attachment?"
+msgstr ""
+
+msgid "Are you sure you want to remove the license?"
+msgstr ""
+
+msgid "Are you sure you want to remove this deploy key? If anything is still using this key, it will stop working."
+msgstr ""
+
+msgid "Are you sure you want to remove this identity?"
+msgstr ""
+
+msgid "Are you sure you want to remove this list?"
+msgstr ""
+
+msgid "Are you sure you want to remove this nickname?"
+msgstr ""
+
+msgid "Are you sure you want to reset the error tracking access token?"
+msgstr ""
+
+msgid "Are you sure you want to reset the health check token?"
+msgstr ""
+
+msgid "Are you sure you want to reset the registration token?"
+msgstr ""
+
+msgid "Are you sure you want to retry this migration?"
+msgstr ""
+
+msgid "Are you sure you want to revoke the %{accessTokenType} \"%{tokenName}\"? This action cannot be undone."
+msgstr ""
+
+msgid "Are you sure you want to revoke this SSH key?"
+msgstr ""
+
+msgid "Are you sure you want to revoke this group access token? This action cannot be undone."
+msgstr ""
+
+msgid "Are you sure you want to revoke this personal access token? This action cannot be undone."
+msgstr ""
+
+msgid "Are you sure you want to revoke this project access token? This action cannot be undone."
+msgstr ""
+
+msgid "Are you sure you want to stop this environment?"
+msgstr ""
+
+msgid "Are you sure you want to unlock %{path_lock_path}?"
+msgstr ""
+
+msgid "Are you sure you want to unlock %{path}?"
+msgstr ""
+
+msgid "Are you sure you want to unlock this directory?"
+msgstr ""
+
+msgid "Are you sure you want to unsubscribe from the %{type}: %{link_to_noteable_text}?"
+msgstr ""
+
+msgid "Are you sure?"
+msgstr ""
+
+msgid "Are you sure? All commits that were signed with this GPG key will be unverified."
+msgstr ""
+
+msgid "Are you sure? Removing this GPG key does not affect already signed commits."
+msgstr ""
+
+msgid "Are you sure? The device will be signed out of GitLab and all remember me tokens revoked."
+msgstr ""
+
+msgid "Artifact"
+msgstr ""
+
+msgid "Artifact could not be deleted."
+msgstr ""
+
+msgid "Artifact was successfully deleted."
+msgstr ""
+
+msgid "Artifacts"
+msgstr ""
+
+msgid "Artifacts|%d selected artifact deleted"
+msgid_plural "Artifacts|%d selected artifacts deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Artifacts|%{strongStart}%{count}%{strongEnd} artifact selected"
+msgid_plural "Artifacts|%{strongStart}%{count}%{strongEnd} artifacts selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Artifacts|An error occurred while deleting the artifact"
+msgstr ""
+
+msgid "Artifacts|An error occurred while deleting. Some artifacts may not have been deleted."
+msgstr ""
+
+msgid "Artifacts|An error occurred while retrieving job artifacts"
+msgstr ""
+
+msgid "Artifacts|Artifacts"
+msgstr ""
+
+msgid "Artifacts|Browse"
+msgstr ""
+
+msgid "Artifacts|Clear selection"
+msgstr ""
+
+msgid "Artifacts|Delete %d artifact"
+msgid_plural "Artifacts|Delete %d artifacts"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Artifacts|Delete %d artifact?"
+msgid_plural "Artifacts|Delete %d artifacts?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Artifacts|Delete %{name}?"
+msgstr ""
+
+msgid "Artifacts|Delete artifact"
+msgstr ""
+
+msgid "Artifacts|Delete selected"
+msgstr ""
+
+msgid "Artifacts|Maximum selected artifacts limit reached"
+msgstr ""
+
+msgid "Artifacts|Something went wrong while deleting. Please refresh the page to try again."
+msgstr ""
+
+msgid "Artifacts|The selected artifact will be permanently deleted. Any reports generated from these artifacts will be empty."
+msgid_plural "Artifacts|The selected artifacts will be permanently deleted. Any reports generated from these artifacts will be empty."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Artifacts|This artifact will be permanently deleted. Any reports generated from this artifact will be empty."
+msgstr ""
+
+msgid "Artifacts|Total artifacts size"
+msgstr ""
+
+msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
+msgstr ""
+
+msgid "AsanaService|%{user} pushed to branch %{branch} of %{project_name} ( %{commit_url} ):"
+msgstr ""
+
+msgid "AsanaService|Add commit messages as comments to Asana tasks."
+msgstr ""
+
+msgid "AsanaService|Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
+msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
+msgstr ""
+
+msgid "Ask GitLab Duo"
+msgstr ""
+
+msgid "Ask a maintainer to check the import status for more details."
+msgstr ""
+
+msgid "Ask again later"
+msgstr ""
+
+msgid "Ask someone with write access to resolve it."
+msgstr ""
+
+msgid "Ask your group owner to set up a group runner."
+msgstr ""
+
+msgid "Assertion consumer service URL"
+msgstr ""
+
+msgid "Assets"
+msgstr ""
+
+msgid "Assets:"
+msgstr ""
+
+msgid "Assign"
+msgstr ""
+
+msgid "Assign Iteration"
+msgstr ""
+
+msgid "Assign To"
+msgstr ""
+
+msgid "Assign custom color like #FF0000"
+msgstr ""
+
+msgid "Assign labels"
+msgstr ""
+
+msgid "Assign reviewer"
+msgstr ""
+
+msgid "Assign reviewers"
+msgstr ""
+
+msgid "Assign severity"
+msgstr ""
+
+msgid "Assign some issues to this milestone."
+msgstr ""
+
+msgid "Assign to"
+msgstr ""
+
+msgid "Assign to commenting user"
+msgstr ""
+
+msgid "Assign to me"
+msgstr ""
+
+msgid "Assign yourself"
+msgstr ""
+
+msgid "Assigned"
+msgstr ""
+
+msgid "Assigned %{assignee_users_sentence}."
+msgstr ""
+
+msgid "Assigned %{reviewer_users_sentence} as %{reviewer_text}."
+msgstr ""
+
+msgid "Assigned Issues"
+msgstr ""
+
+msgid "Assigned merge requests"
+msgstr ""
+
+msgid "Assigned projects"
+msgstr ""
+
+msgid "Assigned to %{assigneeName}"
+msgstr ""
+
+msgid "Assigned to %{assignee_name}"
+msgstr ""
+
+msgid "Assigned to me"
+msgstr ""
+
+msgid "Assignee"
+msgid_plural "%d Assignees"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Assignee (optional)"
+msgstr ""
+
+msgid "Assignee has no permissions"
+msgstr ""
+
+msgid "Assignee lists not available with your current license"
+msgstr ""
+
+msgid "Assignees"
+msgstr ""
+
+msgid "Assignees & reviewers"
+msgstr ""
+
+msgid "Assigns %{assignee_users_sentence}."
+msgstr ""
+
+msgid "Assigns %{reviewer_users_sentence} as %{reviewer_text}."
+msgstr ""
+
+msgid "Associated projects"
+msgstr ""
+
+msgid "At least one approval from a code owner is required to change files matching the respective CODEOWNER rules."
+msgstr ""
+
+msgid "At least one field of %{one_of_required_fields} must be present"
+msgstr ""
+
+msgid "At least one of %{params} must be true"
+msgstr ""
+
+msgid "At least one of group_id or project_id must be specified"
+msgstr ""
+
+msgid "At risk"
+msgstr ""
+
+msgid "Attach a file or image"
+msgstr ""
+
+msgid "Attaching File - %{progress}"
+msgstr ""
+
+msgid "Attaching a file"
+msgid_plural "Attaching %d files"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Attaching the file failed."
+msgstr ""
+
+msgid "Attempted sign in to %{host} using an incorrect verification code"
+msgstr ""
+
+msgid "Audit Events"
+msgstr ""
+
+msgid "Audit events"
+msgstr ""
+
+msgid "AuditLogs|(removed)"
+msgstr ""
+
+msgid "AuditLogs|Action"
+msgstr ""
+
+msgid "AuditLogs|Author"
+msgstr ""
+
+msgid "AuditLogs|Date"
+msgstr ""
+
+msgid "AuditLogs|Failed to find %{type}. Please search for another %{type}."
+msgstr ""
+
+msgid "AuditLogs|Failed to find %{type}. Please try again."
+msgstr ""
+
+msgid "AuditLogs|Group Events"
+msgstr ""
+
+msgid "AuditLogs|IP Address"
+msgstr ""
+
+msgid "AuditLogs|Log"
+msgstr ""
+
+msgid "AuditLogs|Member Events"
+msgstr ""
+
+msgid "AuditLogs|No matching %{type} found."
+msgstr ""
+
+msgid "AuditLogs|Object"
+msgstr ""
+
+msgid "AuditLogs|Project Events"
+msgstr ""
+
+msgid "AuditLogs|Target"
+msgstr ""
+
+msgid "AuditLogs|This month"
+msgstr ""
+
+msgid "AuditLogs|User Events"
+msgstr ""
+
+msgid "AuditStreams|%d destination"
+msgid_plural "AuditStreams|%d destinations"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "AuditStreams|A header with this name already exists."
+msgstr ""
+
+msgid "AuditStreams|AKIA1231dsdsdsdsds23"
+msgstr ""
+
+msgid "AuditStreams|AWS Region"
+msgstr ""
+
+msgid "AuditStreams|AWS S3"
+msgstr ""
+
+msgid "AuditStreams|Access Key ID"
+msgstr ""
+
+msgid "AuditStreams|Active"
+msgstr ""
+
+msgid "AuditStreams|Add a new private key"
+msgstr ""
+
+msgid "AuditStreams|Add a new secret access key"
+msgstr ""
+
+msgid "AuditStreams|Add an HTTP endpoint to manage audit logs in third-party systems."
+msgstr ""
+
+msgid "AuditStreams|Add another custom header"
+msgstr ""
+
+msgid "AuditStreams|Add external stream destination"
+msgstr ""
+
+msgid "AuditStreams|Add header"
+msgstr ""
+
+msgid "AuditStreams|Add streaming destination"
+msgstr ""
+
+msgid "AuditStreams|An error occurred when creating external audit event stream destination. Please try it again."
+msgstr ""
+
+msgid "AuditStreams|An error occurred when deleting external audit event stream destination. Please try it again."
+msgstr ""
+
+msgid "AuditStreams|An error occurred when fetching external audit event streams. Please try it again"
+msgstr ""
+
+msgid "AuditStreams|An error occurred when updating external audit event stream destination. Please try it again."
+msgstr ""
+
+msgid "AuditStreams|Are you sure about deleting this destination?"
+msgstr ""
+
+msgid "AuditStreams|Bucket Name"
+msgstr ""
+
+msgid "AuditStreams|Cancel editing"
+msgstr ""
+
+msgid "AuditStreams|Client Email"
+msgstr ""
+
+msgid "AuditStreams|Custom HTTP headers (optional)"
+msgstr ""
+
+msgid "AuditStreams|Delete destination"
+msgstr ""
+
+msgid "AuditStreams|Deleting the streaming destination %{destination} will stop audit events being streamed"
+msgstr ""
+
+msgid "AuditStreams|Destination Name"
+msgstr ""
+
+msgid "AuditStreams|Destination URL"
+msgstr ""
+
+msgid "AuditStreams|Destination has filters applied. %{linkStart}What are filters?%{linkEnd}"
+msgstr ""
+
+msgid "AuditStreams|Destinations receive all audit event data"
+msgstr ""
+
+msgid "AuditStreams|Event filtering (optional)"
+msgstr ""
+
+msgid "AuditStreams|Filter by audit event type"
+msgstr ""
+
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
+msgid "AuditStreams|Google Cloud Logging"
+msgstr ""
+
+msgid "AuditStreams|HTTP endpoint"
+msgstr ""
+
+msgid "AuditStreams|Header"
+msgstr ""
+
+msgid "AuditStreams|Log ID"
+msgstr ""
+
+msgid "AuditStreams|Maximum of %{number} HTTP headers has been reached."
+msgstr ""
+
+msgid "AuditStreams|No header created yet."
+msgstr ""
+
+msgid "AuditStreams|Private key"
+msgstr ""
+
+msgid "AuditStreams|Project ID"
+msgstr ""
+
+msgid "AuditStreams|Remove custom header"
+msgstr ""
+
+msgid "AuditStreams|Save external stream destination"
+msgstr ""
+
+msgid "AuditStreams|Secret Access Key"
+msgstr ""
+
+msgid "AuditStreams|Select events"
+msgstr ""
+
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
+msgid "AuditStreams|Setup streaming for audit events"
+msgstr ""
+
+msgid "AuditStreams|Stream added successfully"
+msgstr ""
+
+msgid "AuditStreams|Stream deleted successfully"
+msgstr ""
+
+msgid "AuditStreams|Stream updated successfully"
+msgstr ""
+
+msgid "AuditStreams|Streams"
+msgstr ""
+
+msgid "AuditStreams|This could include sensitive information. Make sure you trust the destination endpoint."
+msgstr ""
+
+msgid "AuditStreams|This is great for keeping everything one place."
+msgstr ""
+
+msgid "AuditStreams|Use the AWS console to view the secret access key. To change the secret access key, replace it with a new secret access key."
+msgstr ""
+
+msgid "AuditStreams|Use the Google Cloud console to view the private key. To change the private key, replace it with a new private key."
+msgstr ""
+
+msgid "AuditStreams|Value"
+msgstr ""
+
+msgid "AuditStreams|Verification token"
+msgstr ""
+
+msgid "AuditStreams|audit-events"
+msgstr ""
+
+msgid "AuditStreams|bucket-name"
+msgstr ""
+
+msgid "AuditStreams|ex: 1000"
+msgstr ""
+
+msgid "AuditStreams|ex: limitation"
+msgstr ""
+
+msgid "AuditStreams|filtered"
+msgstr ""
+
+msgid "AuditStreams|my-email@my-google-project.iam.gservice.account.com"
+msgstr ""
+
+msgid "AuditStreams|my-google-project"
+msgstr ""
+
+msgid "AuditStreams|us-east-1"
+msgstr ""
+
+msgid "Aug"
+msgstr ""
+
+msgid "August"
+msgstr ""
+
+msgid "Authenticate"
+msgstr ""
+
+msgid "Authenticate user SSH keys without requiring additional configuration. Performance of GitLab can be improved by using the GitLab database instead. %{link_start}How do I configure authentication using the GitLab database? %{link_end}"
+msgstr ""
+
+msgid "Authenticate with GitHub"
+msgstr ""
+
+msgid "Authenticated API rate limit period in seconds"
+msgstr ""
+
+msgid "Authenticated API requests"
+msgstr ""
+
+msgid "Authenticated Git LFS rate limit period in seconds"
+msgstr ""
+
+msgid "Authenticated Git LFS request rate limit"
+msgstr ""
+
+msgid "Authenticated Git LFS requests"
+msgstr ""
+
+msgid "Authenticated web rate limit period in seconds"
+msgstr ""
+
+msgid "Authenticated web requests"
+msgstr ""
+
+msgid "Authenticating..."
+msgstr ""
+
+msgid "Authentication"
+msgstr ""
+
+msgid "Authentication Failure"
+msgstr ""
+
+msgid "Authentication Log"
+msgstr ""
+
+msgid "Authentication error: enable 2FA in your profile settings to continue using GitLab: %{mfa_help_page}"
+msgstr ""
+
+msgid "Authentication failed: %{error_message}"
+msgstr ""
+
+msgid "Authentication log"
+msgstr ""
+
+msgid "Authentication method"
+msgstr ""
+
+msgid "Authentication method updated"
+msgstr ""
+
+msgid "Authentication via WebAuthn device failed."
+msgstr ""
+
+msgid "Author"
+msgstr ""
+
+msgid "Author: %{author_name}"
+msgstr ""
+
+msgid "Authored %{timeago}"
+msgstr ""
+
+msgid "Authored %{timeago} by %{author}"
+msgstr ""
+
+msgid "Authorization code:"
+msgstr ""
+
+msgid "Authorization token duration (minutes)"
+msgstr ""
+
+msgid "Authorization was granted by entering your username and password in the application."
+msgstr ""
+
+msgid "Authorize"
+msgstr ""
+
+msgid "Authorize %{link_to_client} to use your account?"
+msgstr ""
+
+msgid "Authorized %{new_chat_name}"
+msgstr ""
+
+msgid "Authorized At"
+msgstr ""
+
+msgid "Authorized applications"
+msgstr ""
+
+msgid "AuthorizedApplication|Application secret was successfully renewed."
+msgstr ""
+
+msgid "AuthorizedApplication|Are you sure you want to renew this secret? Any applications using the old secret will no longer be able to authenticate with GitLab."
+msgstr ""
+
+msgid "AuthorizedApplication|Are you sure you want to revoke this application?"
+msgstr ""
+
+msgid "AuthorizedApplication|Renew secret"
+msgstr ""
+
+msgid "AuthorizedApplication|Renew secret?"
+msgstr ""
+
+msgid "AuthorizedApplication|Revoke application"
+msgstr ""
+
+msgid "AuthorizedApplication|There was an error trying to renew the application secret. Please try again."
+msgstr ""
+
+msgid "Authors: %{authors}"
+msgstr ""
+
+msgid "Auto DevOps"
+msgstr ""
+
+msgid "Auto DevOps enabled"
+msgstr ""
+
+msgid "Auto stop successfully canceled."
+msgstr ""
+
+msgid "Auto-cancel redundant pipelines"
+msgstr ""
+
+msgid "AutoDevOps|%{auto_devops_start}Automate building, testing, and deploying%{auto_devops_end} your applications based on your continuous integration and delivery configuration. %{quickstart_start}How do I get started?%{quickstart_end}"
+msgstr ""
+
+msgid "AutoDevOps|Auto DevOps"
+msgstr ""
+
+msgid "AutoDevOps|Auto DevOps documentation"
+msgstr ""
+
+msgid "AutoDevOps|Dismiss Auto DevOps box"
+msgstr ""
+
+msgid "AutoDevOps|Enable in settings"
+msgstr ""
+
+msgid "AutoDevOps|It will automatically build, test, and deploy your application based on a predefined CI/CD configuration."
+msgstr ""
+
+msgid "AutoDevOps|Learn more in the %{link_to_documentation}"
+msgstr ""
+
+msgid "AutoDevOps|The Auto DevOps pipeline has been enabled and will be used if no alternative CI configuration file is found."
+msgstr ""
+
+msgid "AutoDevopsAlert|Security testing tools enabled with %{linkStart}Auto DevOps%{linkEnd}"
+msgstr ""
+
+msgid "AutoRemediation| 1 Merge Request"
+msgstr ""
+
+msgid "AutoRemediation|!%{mergeRequestIid}"
+msgstr ""
+
+msgid "AutoRemediation|!%{mergeRequestIid}: Auto-fix"
+msgstr ""
+
+msgid "AutoRemediation|%{mrsCount} ready for review"
+msgstr ""
+
+msgid "AutoRemediation|Auto-fix solutions"
+msgstr ""
+
+msgid "AutoRemediation|If you're using dependency and/or container scanning, and auto-fix is enabled, auto-fix automatically creates merge requests with fixes to vulnerabilities."
+msgstr ""
+
+msgid "AutoRemediation|Introducing GitLab auto-fix"
+msgstr ""
+
+msgid "AutoRollback|Automatic rollbacks start when a critical alert is triggered. If the last successful deployment fails to roll back automatically, it can still be done manually."
+msgstr ""
+
+msgid "AutoRollback|Automatically roll back to the last successful deployment when a critical problem is detected."
+msgstr ""
+
+msgid "AutoRollback|Enable automatic rollbacks"
+msgstr ""
+
+msgid "Autocomplete"
+msgstr ""
+
+msgid "Autocomplete description"
+msgstr ""
+
+msgid "Autocomplete hint"
+msgstr ""
+
+msgid "Autocomplete usage hint"
+msgstr ""
+
+msgid "Automatic certificate management using %{lets_encrypt_link_start}Let's Encrypt%{lets_encrypt_link_end}"
+msgstr ""
+
+msgid "Automatic certificate management using Let's Encrypt"
+msgstr ""
+
+msgid "Automatic deployment rollbacks"
+msgstr ""
+
+msgid "Automatic event tracking provides a traceable history for audits."
+msgstr ""
+
+msgid "Automatically close associated incident when a recovery alert notification resolves an alert"
+msgstr ""
+
+msgid "Automatically resolved"
+msgstr ""
+
+msgid "Automatically update this project's branches and tags from the upstream repository."
+msgstr ""
+
+msgid "Autosave|Note"
+msgstr ""
+
+msgid "Available"
+msgstr ""
+
+msgid "Available ID"
+msgstr ""
+
+msgid "Available group runners: %{runners}"
+msgstr ""
+
+msgid "Available on demand"
+msgstr ""
+
+msgid "Avatar for %{assigneeName}"
+msgstr ""
+
+msgid "Avatar will be removed. Are you sure?"
+msgstr ""
+
+msgid "Average per day: %{average}"
+msgstr ""
+
+msgid "Awaiting review"
+msgstr ""
+
+msgid "Awaiting user signup"
+msgstr ""
+
+msgid "AwardEmoji|No emoji found."
+msgstr ""
+
+msgid "B"
+msgstr ""
+
+msgid "Back"
+msgstr ""
+
+msgid "Back to page %{number}"
+msgstr ""
+
+msgid "Background Color"
+msgstr ""
+
+msgid "Background Jobs"
+msgstr ""
+
+msgid "Background Migrations"
+msgstr ""
+
+msgid "Background color"
+msgstr ""
+
+msgid "BackgroundMigrations|Background Migrations"
+msgstr ""
+
+msgid "BackgroundMigrations|Background migrations are used to perform data migrations whenever a migration exceeds the time limits in our guidelines. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "BackgroundMigrations|Batch size"
+msgstr ""
+
+msgid "BackgroundMigrations|Database"
+msgstr ""
+
+msgid "BackgroundMigrations|Failed jobs:"
+msgstr ""
+
+msgid "BackgroundMigrations|Finished at"
+msgstr ""
+
+msgid "BackgroundMigrations|Started at"
+msgstr ""
+
+msgid "Badge"
+msgstr ""
+
+msgid "Badges"
+msgstr ""
+
+msgid "Badges|Add badge"
+msgstr ""
+
+msgid "Badges|Add new badge"
+msgstr ""
+
+msgid "Badges|Badge image URL"
+msgstr ""
+
+msgid "Badges|Badge image preview"
+msgstr ""
+
+msgid "Badges|Badge saved."
+msgstr ""
+
+msgid "Badges|Delete badge?"
+msgstr ""
+
+msgid "Badges|Edit badge"
+msgstr ""
+
+msgid "Badges|Enter a valid URL"
+msgstr ""
+
+msgid "Badges|Example: %{exampleUrl}"
+msgstr ""
+
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
+msgid "Badges|Group Badge"
+msgstr ""
+
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
+msgid "Badges|Link"
+msgstr ""
+
+msgid "Badges|Name"
+msgstr ""
+
+msgid "Badges|New badge added."
+msgstr ""
+
+msgid "Badges|No badge image"
+msgstr ""
+
+msgid "Badges|No image to preview"
+msgstr ""
+
+msgid "Badges|Project Badge"
+msgstr ""
+
+msgid "Badges|Reload badge image"
+msgstr ""
+
+msgid "Badges|Save changes"
+msgstr ""
+
+msgid "Badges|Saving the badge failed, please check the entered URLs and try again."
+msgstr ""
+
+msgid "Badges|Supported %{docsLinkStart}variables%{docsLinkEnd}: %{placeholders}"
+msgstr ""
+
+msgid "Badges|The badge was deleted."
+msgstr ""
+
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr ""
+
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr ""
+
+msgid "Badges|Your badges"
+msgstr ""
+
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
+msgid "BambooService|Atlassian Bamboo"
+msgstr ""
+
+msgid "BambooService|Bamboo URL"
+msgstr ""
+
+msgid "BambooService|Bamboo build plan key."
+msgstr ""
+
+msgid "BambooService|Bamboo root URL."
+msgstr ""
+
+msgid "BambooService|Enter new build key"
+msgstr ""
+
+msgid "BambooService|Leave blank to use your current build key."
+msgstr ""
+
+msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo."
+msgstr ""
+
+msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
+msgstr ""
+
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
+
+msgid "Banned"
+msgstr ""
+
+msgid "Banner message"
+msgstr ""
+
+msgid "Based on"
+msgstr ""
+
+msgid "Batch size"
+msgstr ""
+
+msgid "Batched Job|Background Migrations"
+msgstr ""
+
+msgid "Batched Job|Batched Job (Id: %{id})"
+msgstr ""
+
+msgid "BatchedJob|Attempts"
+msgstr ""
+
+msgid "BatchedJob|Batch size"
+msgstr ""
+
+msgid "BatchedJob|Batched Jobs"
+msgstr ""
+
+msgid "BatchedJob|Created At"
+msgstr ""
+
+msgid "BatchedJob|Created at"
+msgstr ""
+
+msgid "BatchedJob|Exception Class"
+msgstr ""
+
+msgid "BatchedJob|Exception Message"
+msgstr ""
+
+msgid "BatchedJob|Exception class"
+msgstr ""
+
+msgid "BatchedJob|Exception message"
+msgstr ""
+
+msgid "BatchedJob|Finished at"
+msgstr ""
+
+msgid "BatchedJob|Max Value"
+msgstr ""
+
+msgid "BatchedJob|Max value"
+msgstr ""
+
+msgid "BatchedJob|Min Value"
+msgstr ""
+
+msgid "BatchedJob|Min value"
+msgstr ""
+
+msgid "BatchedJob|Next Status"
+msgstr ""
+
+msgid "BatchedJob|Next status"
+msgstr ""
+
+msgid "BatchedJob|Pause ms"
+msgstr ""
+
+msgid "BatchedJob|Pause time (ms)"
+msgstr ""
+
+msgid "BatchedJob|Previous Status"
+msgstr ""
+
+msgid "BatchedJob|Previous status"
+msgstr ""
+
+msgid "BatchedJob|Started at"
+msgstr ""
+
+msgid "BatchedJob|Transition logs:"
+msgstr ""
+
+msgid "Be careful. Changing the project's namespace can have unintended side effects."
+msgstr ""
+
+msgid "Be careful. Renaming a project's repository can have unintended side effects."
+msgstr ""
+
+msgid "Because you enabled auto-banning, we have also automatically banned this user from %{scope}. If this is a mistake, you can %{link_start}unban them%{link_end}."
+msgstr ""
+
+msgid "Because you enabled auto-banning, we have also automatically banned this user from %{scope}. If this is a mistake, you can unban them: %{url}."
+msgstr ""
+
+msgid "Before enabling this integration, create a webhook for the room in Google Chat where you want to receive notifications from this project. %{docs_link}"
+msgstr ""
+
+msgid "Before inserting code, be sure to read the comment that separated each code group."
+msgstr ""
+
+msgid "Begin with the selected commit"
+msgstr ""
+
+msgid "Below are the fingerprints for the current instance SSH host keys."
+msgstr ""
+
+msgid "Below are the settings for %{link_to_gitlab_pages}."
+msgstr ""
+
+msgid "Below you will find all the groups that are public."
+msgstr ""
+
+msgid "Beta"
+msgstr ""
+
+msgid "BetaBadge|A Beta feature is not production-ready, but is unlikely to change drastically before it's released. We encourage users to try Beta features and provide feedback."
+msgstr ""
+
+msgid "BetaBadge|A Beta feature:"
+msgstr ""
+
+msgid "BetaBadge|Beta"
+msgstr ""
+
+msgid "BetaBadge|Is complete or near completion."
+msgstr ""
+
+msgid "BetaBadge|Is supported by a commercially reasonable effort."
+msgstr ""
+
+msgid "BetaBadge|May be unstable."
+msgstr ""
+
+msgid "BetaBadge|Should not cause data loss."
+msgstr ""
+
+msgid "BetaBadge|What's Beta?"
+msgstr ""
+
+msgid "Bi-weekly code coverage"
+msgstr ""
+
+msgid "Billable Users"
+msgstr ""
+
+msgid "Billing"
+msgstr ""
+
+msgid "BillingPlans|%{group_name} is currently using the %{plan_name}"
+msgstr ""
+
+msgid "BillingPlans|10,000 compute minutes per month"
+msgstr ""
+
+msgid "BillingPlans|10000 compute minutes"
+msgstr ""
+
+msgid "BillingPlans|10GB transfer per month"
+msgstr ""
+
+msgid "BillingPlans|400 compute minutes"
+msgstr ""
+
+msgid "BillingPlans|400 compute minutes per month"
+msgstr ""
+
+msgid "BillingPlans|5 users per namespace"
+msgstr ""
+
+msgid "BillingPlans|50,000 compute minutes per month"
+msgstr ""
+
+msgid "BillingPlans|50000 compute minutes"
+msgstr ""
+
+msgid "BillingPlans|5GB storage"
+msgstr ""
+
+msgid "BillingPlans|@%{user_name} you are currently using the %{plan_name}."
+msgstr ""
+
+msgid "BillingPlans|Advanced CI/CD"
+msgstr ""
+
+msgid "BillingPlans|Advanced application security"
+msgstr ""
+
+msgid "BillingPlans|All plans have unlimited (private) repositories."
+msgstr ""
+
+msgid "BillingPlans|All stages of the DevOps lifecycle"
+msgstr ""
+
+msgid "BillingPlans|All the benefits of Free +"
+msgstr ""
+
+msgid "BillingPlans|All the benefits of Premium +"
+msgstr ""
+
+msgid "BillingPlans|All the features from Free"
+msgstr ""
+
+msgid "BillingPlans|All the features from Premium"
+msgstr ""
+
+msgid "BillingPlans|Billed annually at %{price_per_year} USD"
+msgstr ""
+
+msgid "BillingPlans|Bring your own CI runners"
+msgstr ""
+
+msgid "BillingPlans|Bring your own production environment"
+msgstr ""
+
+msgid "BillingPlans|Check out all groups"
+msgstr ""
+
+msgid "BillingPlans|Company wide portfolio management"
+msgstr ""
+
+msgid "BillingPlans|Compliance"
+msgstr ""
+
+msgid "BillingPlans|Compliance automation"
+msgstr ""
+
+msgid "BillingPlans|Congratulations, your free trial is activated."
+msgstr ""
+
+msgid "BillingPlans|Cross-team project management"
+msgstr ""
+
+msgid "BillingPlans|End of availability for the Bronze Plan"
+msgstr ""
+
+msgid "BillingPlans|Enhance team productivity and collaboration"
+msgstr ""
+
+msgid "BillingPlans|Enterprise agile planning"
+msgstr ""
+
+msgid "BillingPlans|Executive level insights"
+msgstr ""
+
+msgid "BillingPlans|Faster code reviews"
+msgstr ""
+
+msgid "BillingPlans|Free"
+msgstr ""
+
+msgid "BillingPlans|Free forever features for individual users"
+msgstr ""
+
+msgid "BillingPlans|Free guest users"
+msgstr ""
+
+msgid "BillingPlans|Free upgrade!"
+msgstr ""
+
+msgid "BillingPlans|If you would like to downgrade your plan please contact %{support_link_start}Customer Support%{support_link_end}."
+msgstr ""
+
+msgid "BillingPlans|Includes"
+msgstr ""
+
+msgid "BillingPlans|Includes free static websites"
+msgstr ""
+
+msgid "BillingPlans|Learn more about each plan by reading our %{faq_link}, or start a free 30-day trial of GitLab.com Ultimate."
+msgstr ""
+
+msgid "BillingPlans|Learn more about each plan by visiting our %{pricing_page_link}."
+msgstr ""
+
+msgid "BillingPlans|Looking to purchase or manage a subscription for your group? Navigate to your %{groups_link} and go to %{strong_open}Settings &gt; Billing.%{strong_close}"
+msgstr ""
+
+msgid "BillingPlans|Loved and trusted by our customers"
+msgstr ""
+
+msgid "BillingPlans|Manage plan"
+msgstr ""
+
+msgid "BillingPlans|Multi-region support"
+msgstr ""
+
+msgid "BillingPlans|Multiple approval rules"
+msgstr ""
+
+msgid "BillingPlans|Not the group you're looking for? %{all_groups_link}."
+msgstr ""
+
+msgid "BillingPlans|Open Source - MIT License"
+msgstr ""
+
+msgid "BillingPlans|Organization wide security, compliance and planning"
+msgstr ""
+
+msgid "BillingPlans|Portfolio management"
+msgstr ""
+
+msgid "BillingPlans|Premium"
+msgstr ""
+
+msgid "BillingPlans|Pricing page"
+msgstr ""
+
+msgid "BillingPlans|Priority support"
+msgstr ""
+
+msgid "BillingPlans|Ready to explore the value of the paid features today? Start a trial, no credit card required."
+msgstr ""
+
+msgid "BillingPlans|Recommended"
+msgstr ""
+
+msgid "BillingPlans|Release controls"
+msgstr ""
+
+msgid "BillingPlans|Security risk mitigation"
+msgstr ""
+
+msgid "BillingPlans|See all %{plan_name} features"
+msgstr ""
+
+msgid "BillingPlans|Self-managed reliability"
+msgstr ""
+
+msgid "BillingPlans|Spans the DevOps lifecycle"
+msgstr ""
+
+msgid "BillingPlans|Start a free Ultimate trial"
+msgstr ""
+
+msgid "BillingPlans|Still have questions?"
+msgstr ""
+
+msgid "BillingPlans|Support"
+msgstr ""
+
+msgid "BillingPlans|Talk to an expert today."
+msgstr ""
+
+msgid "BillingPlans|Then %{move_link_start}move any projects%{move_link_end} you wish to use with your subscription to that group."
+msgstr ""
+
+msgid "BillingPlans|This group uses the plan associated with its parent group."
+msgstr ""
+
+msgid "BillingPlans|To manage the plan for this group, visit the billing section of %{parent_billing_page_link}."
+msgstr ""
+
+msgid "BillingPlans|Ultimate"
+msgstr ""
+
+msgid "BillingPlans|Upgrade"
+msgstr ""
+
+msgid "BillingPlans|Upgrade to Premium"
+msgstr ""
+
+msgid "BillingPlans|Upgrade to Ultimate"
+msgstr ""
+
+msgid "BillingPlans|Value stream management"
+msgstr ""
+
+msgid "BillingPlans|We're here to help."
+msgstr ""
+
+msgid "BillingPlans|While GitLab is ending availability of the Bronze plan, you can still renew your Bronze subscription one additional time before %{eoa_bronze_plan_end_date}. We are also offering a limited time free upgrade to our Premium Plan (up to 25 users)! Learn more about the changes and offers in our %{announcement_link}."
+msgstr ""
+
+msgid "BillingPlans|You don't have any groups. You'll need to %{create_group_link_start}create one%{create_group_link_end} and %{move_link_start}move your projects to it%{move_link_end}."
+msgstr ""
+
+msgid "BillingPlans|Your GitLab.com %{plan} trial will %{strong_open}expire after %{expiration_date}%{strong_close}. You can retain access to the %{plan} features by upgrading below."
+msgstr ""
+
+msgid "BillingPlans|Your GitLab.com trial expired on %{expiration_date}. You can restore access to the features at any time by upgrading below."
+msgstr ""
+
+msgid "BillingPlans|Your current plan"
+msgstr ""
+
+msgid "BillingPlans|billed annually at %{price_per_year}"
+msgstr ""
+
+msgid "BillingPlans|for the remainder of your subscription"
+msgstr ""
+
+msgid "BillingPlans|frequently asked questions"
+msgstr ""
+
+msgid "BillingPlans|group"
+msgstr ""
+
+msgid "BillingPlans|monthly"
+msgstr ""
+
+msgid "BillingPlans|per user"
+msgstr ""
+
+msgid "BillingPlans|per user/month"
+msgstr ""
+
+msgid "BillingPlan|Upgrade"
+msgstr ""
+
+msgid "BillingPlan|Upgrade for free"
+msgstr ""
+
+msgid "Billings|Error validating card details"
+msgstr ""
+
+msgid "Billings|Free groups are limited to %{number} seats."
+msgstr ""
+
+msgid "Billings|Free seats used"
+msgstr ""
+
+msgid "Billings|Free tier and trial groups can invite a maximum of 20 members per day."
+msgstr ""
+
+msgid "Billings|In a seat"
+msgstr ""
+
+msgid "Billings|Seats in use / Seats available"
+msgstr ""
+
+msgid "Billings|Seats in use / Seats in subscription"
+msgstr ""
+
+msgid "Billings|Shared runners cannot be enabled until a valid credit card is on file."
+msgstr ""
+
+msgid "Billings|To use free compute minutes on shared runners, you'll need to validate your account with a credit card. If you prefer not to provide one, you can run pipelines by bringing your own runners and disabling shared runners for your project. This is required to discourage and reduce abuse on GitLab infrastructure. %{strongStart}GitLab will not charge your card, it will only be used for validation.%{strongEnd} %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "Billings|To use free compute minutes on shared runners, you'll need to validate your account with a credit card. This is required to discourage and reduce abuse on GitLab infrastructure. %{strongStart}GitLab will not charge your card, it will only be used for validation.%{strongEnd}"
+msgstr ""
+
+msgid "Billings|User validation required"
+msgstr ""
+
+msgid "Billings|Validate account"
+msgstr ""
+
+msgid "Billings|Validate user account"
+msgstr ""
+
+msgid "Billings|You'll now be able to take advantage of free compute minutes on shared runners."
+msgstr ""
+
+msgid "Billings|Your account has been validated"
+msgstr ""
+
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
+msgid "Billing|%{plan} SaaS Plan seats used"
+msgstr ""
+
+msgid "Billing|%{user} was successfully approved"
+msgstr ""
+
+msgid "Billing|Add seats"
+msgstr ""
+
+msgid "Billing|All members were successfully approved"
+msgstr ""
+
+msgid "Billing|An email address is only visible for users with public emails."
+msgstr ""
+
+msgid "Billing|An error occurred while approving %{user}"
+msgstr ""
+
+msgid "Billing|An error occurred while approving all members"
+msgstr ""
+
+msgid "Billing|An error occurred while getting a billable member details."
+msgstr ""
+
+msgid "Billing|An error occurred while loading GitLab subscription details."
+msgstr ""
+
+msgid "Billing|An error occurred while loading billable members list."
+msgstr ""
+
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
+
+msgid "Billing|An error occurred while loading pending members list"
+msgstr ""
+
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
+
+msgid "Billing|An error occurred while removing a billable member."
+msgstr ""
+
+msgid "Billing|Awaiting member signup"
+msgstr ""
+
+msgid "Billing|Cannot remove user"
+msgstr ""
+
+msgid "Billing|Direct memberships"
+msgstr ""
+
+msgid "Billing|Enter at least three characters to search."
+msgstr ""
+
+msgid "Billing|Error assigning Duo Pro add-on"
+msgstr ""
+
+msgid "Billing|Error un-assigning Duo Pro add-on"
+msgstr ""
+
+msgid "Billing|Explore paid plans"
+msgstr ""
+
+msgid "Billing|Export list"
+msgstr ""
+
+msgid "Billing|Group invite"
+msgstr ""
+
+msgid "Billing|Groups in the Free tier are limited to %d seat"
+msgid_plural "Billing|Groups in the Free tier are limited to %d seats"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Billing|Members who were invited via a group invitation cannot be removed. You can either remove the entire group, or ask an Owner of the invited group to remove the member."
+msgstr ""
+
+msgid "Billing|No seats available"
+msgstr ""
+
+msgid "Billing|No users to display."
+msgstr ""
+
+msgid "Billing|Private"
+msgstr ""
+
+msgid "Billing|Project invite"
+msgstr ""
+
+msgid "Billing|Remove user %{username} from your subscription"
+msgstr ""
+
+msgid "Billing|Something went wrong when assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
+
+msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
+
+msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
+msgstr ""
+
+msgid "Billing|Toggle seat details"
+msgstr ""
+
+msgid "Billing|Type %{username} to confirm"
+msgstr ""
+
+msgid "Billing|Unlimited members during your trial"
+msgstr ""
+
+msgid "Billing|User was successfully removed"
+msgstr ""
+
+msgid "Billing|View pending approvals"
+msgstr ""
+
+msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
+msgstr ""
+
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgstr ""
+
+msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
+msgstr ""
+
+msgid "Bitbucket Server Import"
+msgstr ""
+
+msgid "Bitbucket Server import"
+msgstr ""
+
+msgid "Bitbucket import"
+msgstr ""
+
+msgid "Blame"
+msgstr ""
+
+msgid "Blame could not be loaded as a single page."
+msgstr ""
+
+msgid "Blame for binary files is not supported."
+msgstr ""
+
+msgid "BlobViewer|If you delete the file, it will be removed from the branch %{branch}."
+msgstr ""
+
+msgid "BlobViewer|This file will still take up space in your LFS storage. %{linkStart}How do I remove tracked objects from Git LFS?%{linkEnd}"
+msgstr ""
+
+msgid "BlobViewer|View on %{environmentName}"
+msgstr ""
+
+msgid "Block user"
+msgstr ""
+
+msgid "Blocked"
+msgstr ""
+
+msgid "Blocked by %d issue"
+msgid_plural "Blocked by %d issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Blocked issue"
+msgstr ""
+
+msgid "Blocked work items are not available for the current subscription tier"
+msgstr ""
+
+msgid "Blocking"
+msgstr ""
+
+msgid "Blocking epics"
+msgstr ""
+
+msgid "Blocking issues"
+msgstr ""
+
+msgid "Blocks"
+msgstr ""
+
+msgid "Blog"
+msgstr ""
+
+msgid "Board scope affects which epics are displayed for anyone who visits this board"
+msgstr ""
+
+msgid "Board scope affects which issues are displayed for anyone who visits this board"
+msgstr ""
+
+msgid "BoardNewEpic|Groups"
+msgstr ""
+
+msgid "BoardNewEpic|Loading groups"
+msgstr ""
+
+msgid "BoardNewEpic|No matching results"
+msgstr ""
+
+msgid "BoardNewEpic|Search groups"
+msgstr ""
+
+msgid "BoardNewIssue|No matching results"
+msgstr ""
+
+msgid "BoardNewIssue|Projects"
+msgstr ""
+
+msgid "BoardNewIssue|Search projects"
+msgstr ""
+
+msgid "BoardNewIssue|Select a project"
+msgstr ""
+
+msgid "BoardScope|%{iterationTitle} iteration in %{iterationCadence}"
+msgstr ""
+
+msgid "BoardScope|An error occurred while getting iterations. Please try again."
+msgstr ""
+
+msgid "BoardScope|An error occurred while getting milestones, please try again."
+msgstr ""
+
+msgid "BoardScope|An error occurred while searching for labels, please try again."
+msgstr ""
+
+msgid "BoardScope|An error occurred while searching for users, please try again."
+msgstr ""
+
+msgid "BoardScope|Any Milestone"
+msgstr ""
+
+msgid "BoardScope|Any assignee"
+msgstr ""
+
+msgid "BoardScope|Any iteration"
+msgstr ""
+
+msgid "BoardScope|Any label"
+msgstr ""
+
+msgid "BoardScope|Assignee"
+msgstr ""
+
+msgid "BoardScope|Choose labels"
+msgstr ""
+
+msgid "BoardScope|Current iteration"
+msgstr ""
+
+msgid "BoardScope|Don't filter milestone"
+msgstr ""
+
+msgid "BoardScope|Edit"
+msgstr ""
+
+msgid "BoardScope|Iteration"
+msgstr ""
+
+msgid "BoardScope|Labels"
+msgstr ""
+
+msgid "BoardScope|Milestone"
+msgstr ""
+
+msgid "BoardScope|No iteration"
+msgstr ""
+
+msgid "BoardScope|No milestone"
+msgstr ""
+
+msgid "BoardScope|Search iterations"
+msgstr ""
+
+msgid "BoardScope|Search milestones"
+msgstr ""
+
+msgid "BoardScope|Select assignee"
+msgstr ""
+
+msgid "BoardScope|Select iteration"
+msgstr ""
+
+msgid "BoardScope|Select labels"
+msgstr ""
+
+msgid "BoardScope|Select milestone"
+msgstr ""
+
+msgid "BoardScope|Started"
+msgstr ""
+
+msgid "BoardScope|Upcoming"
+msgstr ""
+
+msgid "BoardScope|Weight"
+msgstr ""
+
+msgid "Boards"
+msgstr ""
+
+msgid "Boards and board lists"
+msgstr ""
+
+msgid "Boards|+ %{displayedIssuablesCount} more %{issuableType}"
+msgid_plural "Boards|+ %{displayedIssuablesCount} more %{issuableType}s"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while creating the list. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while deleting the list. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching a list. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching board details. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching board. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching boards. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching epics. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching group projects. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching groups. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching issues. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching iterations. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching labels. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching list's information. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching milestones. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching recent boards. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while fetching users. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while moving the issue. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while moving the list. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while selecting the card. Please try again."
+msgstr ""
+
+msgid "Boards|An error occurred while updating the list. Please try again."
+msgstr ""
+
+msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
+msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Boards|Card options"
+msgstr ""
+
+msgid "Boards|Collapse"
+msgstr ""
+
+msgid "Boards|Create new epic"
+msgstr ""
+
+msgid "Boards|Create new issue"
+msgstr ""
+
+msgid "Boards|Edit board"
+msgstr ""
+
+msgid "Boards|Edit list settings"
+msgstr ""
+
+msgid "Boards|Expand"
+msgstr ""
+
+msgid "Boards|Failed to fetch blocking %{issuableType}s"
+msgstr ""
+
+msgid "Boards|Move to end of list"
+msgstr ""
+
+msgid "Boards|Move to start of list"
+msgstr ""
+
+msgid "Boards|New board"
+msgstr ""
+
+msgid "Boards|Retrieving blocking %{issuableType}s"
+msgstr ""
+
+msgid "Boards|View all blocking %{issuableType}s"
+msgstr ""
+
+msgid "Boards|View scope"
+msgstr ""
+
+msgid "Board|Are you sure you want to delete this board?"
+msgstr ""
+
+msgid "Board|Board scope"
+msgstr ""
+
+msgid "Board|Create board"
+msgstr ""
+
+msgid "Board|Create new board"
+msgstr ""
+
+msgid "Board|Delete board"
+msgstr ""
+
+msgid "Board|Edit board"
+msgstr ""
+
+msgid "Board|Enter board name"
+msgstr ""
+
+msgid "Board|Failed to delete board. Please try again."
+msgstr ""
+
+msgid "Board|Load more epics"
+msgstr ""
+
+msgid "Board|Load more issues"
+msgstr ""
+
+msgid "Board|Loading epics"
+msgstr ""
+
+msgid "Bold (%{modifierKey}B)"
+msgstr ""
+
+msgid "Bold text"
+msgstr ""
+
+msgid "Bot"
+msgstr ""
+
+msgid "Both SSH and HTTP(S)"
+msgstr ""
+
+msgid "Branch"
+msgstr ""
+
+msgid "Branch %{branchName} was not found in this project's repository."
+msgstr ""
+
+msgid "Branch %{branch_name} was created. To set up auto deploy, choose a GitLab CI Yaml template and commit your changes. %{link_to_autodeploy_doc}"
+msgstr ""
+
+msgid "Branch Rules"
+msgstr ""
+
+msgid "Branch already exists"
+msgstr ""
+
+msgid "Branch changed"
+msgstr ""
+
+msgid "Branch defaults"
+msgstr ""
+
+msgid "Branch has been updated since the merge was requested."
+msgstr ""
+
+msgid "Branch is already taken"
+msgstr ""
+
+msgid "Branch name"
+msgstr ""
+
+msgid "Branch name pattern"
+msgstr ""
+
+msgid "Branch name template"
+msgstr ""
+
+msgid "Branch not loaded - %{branchId}"
+msgstr ""
+
+msgid "Branch rules"
+msgstr ""
+
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
+msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
+msgstr ""
+
+msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/* are supported."
+msgstr ""
+
+msgid "BranchRules|%{total} approval %{subject}"
+msgstr ""
+
+msgid "BranchRules|%{total} matching %{subject}"
+msgstr ""
+
+msgid "BranchRules|%{total} status %{subject}"
+msgstr ""
+
+msgid "BranchRules|Add branch rule"
+msgstr ""
+
+msgid "BranchRules|After a protected branch is created, it will show up in the list as a branch rule."
+msgstr ""
+
+msgid "BranchRules|All branches"
+msgstr ""
+
+msgid "BranchRules|Allow all users with push access to %{linkStart}force push%{linkEnd}."
+msgstr ""
+
+msgid "BranchRules|Allowed to force push"
+msgstr ""
+
+msgid "BranchRules|Allowed to merge"
+msgstr ""
+
+msgid "BranchRules|Allowed to merge (%{total})"
+msgstr ""
+
+msgid "BranchRules|Allowed to push and merge"
+msgstr ""
+
+msgid "BranchRules|Allowed to push and merge (%{total})"
+msgstr ""
+
+msgid "BranchRules|Allows force push"
+msgstr ""
+
+msgid "BranchRules|Also accepts code pushes that change files listed in CODEOWNERS file."
+msgstr ""
+
+msgid "BranchRules|Also rejects code pushes that change files listed in CODEOWNERS file."
+msgstr ""
+
+msgid "BranchRules|An error occurred while fetching branches."
+msgstr ""
+
+msgid "BranchRules|Approvals"
+msgstr ""
+
+msgid "BranchRules|Approvals to ensure separation of duties for new merge requests. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "BranchRules|Branch"
+msgstr ""
+
+msgid "BranchRules|Branch name or pattern"
+msgstr ""
+
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
+msgid "BranchRules|Branch rules details"
+msgstr ""
+
+msgid "BranchRules|Cancel"
+msgstr ""
+
+msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
+msgid "BranchRules|Create protected branch"
+msgstr ""
+
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
+msgid "BranchRules|Create wildcard: %{searchTerm}"
+msgstr ""
+
+msgid "BranchRules|Does not allow force push"
+msgstr ""
+
+msgid "BranchRules|Does not require approval from code owners"
+msgstr ""
+
+msgid "BranchRules|From users with push access."
+msgstr ""
+
+msgid "BranchRules|Groups"
+msgstr ""
+
+msgid "BranchRules|Keep stable branches secure and force developers to use merge requests. %{linkStart}What are protected branches?%{linkEnd}"
+msgstr ""
+
+msgid "BranchRules|Manage in merge request approvals"
+msgstr ""
+
+msgid "BranchRules|Manage in protected branches"
+msgstr ""
+
+msgid "BranchRules|Manage in status checks"
+msgstr ""
+
+msgid "BranchRules|No data to display"
+msgstr ""
+
+msgid "BranchRules|No matching results"
+msgstr ""
+
+msgid "BranchRules|Protect branch"
+msgstr ""
+
+msgid "BranchRules|Protections"
+msgstr ""
+
+msgid "BranchRules|Reject code pushes that change files listed in the CODEOWNERS file."
+msgstr ""
+
+msgid "BranchRules|Require approval from code owners."
+msgstr ""
+
+msgid "BranchRules|Required approvals (%{total})"
+msgstr ""
+
+msgid "BranchRules|Requires CODEOWNERS approval"
+msgstr ""
+
+msgid "BranchRules|Requires approval from code owners"
+msgstr ""
+
+msgid "BranchRules|Roles"
+msgstr ""
+
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
+msgid "BranchRules|Status checks"
+msgstr ""
+
+msgid "BranchRules|Status checks (%{total})"
+msgstr ""
+
+msgid "BranchRules|Target branch"
+msgstr ""
+
+msgid "BranchRules|To create a branch rule, you first need to create a protected branch."
+msgstr ""
+
+msgid "BranchRules|Users"
+msgstr ""
+
+msgid "BranchRules|View details"
+msgstr ""
+
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
+msgid "BranchRules|default"
+msgstr ""
+
+msgid "BranchRules|protected"
+msgstr ""
+
+msgid "Branches"
+msgstr ""
+
+msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
+msgstr ""
+
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
+msgid "Branches: %{source_branch} to %{target_branch}"
+msgstr ""
+
+msgid "Branches: %{source_branch} → %{target_branch}"
+msgstr ""
+
+msgid "Branches|A branch won't be deleted if it is protected or associated with an open merge request."
+msgstr ""
+
+msgid "Branches|Active"
+msgstr ""
+
+msgid "Branches|Active branches"
+msgstr ""
+
+msgid "Branches|After you confirm and select %{strongStart}%{buttonText},%{strongEnd} you cannot recover this branch."
+msgstr ""
+
+msgid "Branches|All"
+msgstr ""
+
+msgid "Branches|Cancel, keep branch"
+msgstr ""
+
+msgid "Branches|Can’t find HEAD commit for this branch"
+msgstr ""
+
+msgid "Branches|Compare"
+msgstr ""
+
+msgid "Branches|Delete all merged branches?"
+msgstr ""
+
+msgid "Branches|Delete branch"
+msgstr ""
+
+msgid "Branches|Delete branch. Are you ABSOLUTELY SURE?"
+msgstr ""
+
+msgid "Branches|Delete merged branches"
+msgstr ""
+
+msgid "Branches|Delete protected branch"
+msgstr ""
+
+msgid "Branches|Delete protected branch. Are you ABSOLUTELY SURE?"
+msgstr ""
+
+msgid "Branches|Deleting the %{strongStart}%{branchName}%{strongEnd} branch cannot be undone. Are you sure?"
+msgstr ""
+
+msgid "Branches|Filter by branch name"
+msgstr ""
+
+msgid "Branches|New branch"
+msgstr ""
+
+msgid "Branches|No branches to show"
+msgstr ""
+
+msgid "Branches|Overview"
+msgstr ""
+
+msgid "Branches|Please type the following to confirm:"
+msgstr ""
+
+msgid "Branches|Plese type the following to confirm: %{codeStart}delete%{codeEnd}."
+msgstr ""
+
+msgid "Branches|See all branch-related settings together with branch rules"
+msgstr ""
+
+msgid "Branches|Show active branches"
+msgstr ""
+
+msgid "Branches|Show all branches"
+msgstr ""
+
+msgid "Branches|Show more active branches"
+msgstr ""
+
+msgid "Branches|Show more stale branches"
+msgstr ""
+
+msgid "Branches|Show overview of the branches"
+msgstr ""
+
+msgid "Branches|Show stale branches"
+msgstr ""
+
+msgid "Branches|Stale"
+msgstr ""
+
+msgid "Branches|Stale branches"
+msgstr ""
+
+msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart."
+msgstr ""
+
+msgid "Branches|This branch hasn't been merged into %{defaultBranchName}. To avoid data loss, consider merging this branch before deleting it."
+msgstr ""
+
+msgid "Branches|This bulk action is %{strongStart}permanent and cannot be undone or recovered%{strongEnd}."
+msgstr ""
+
+msgid "Branches|This may include merged branches that are not visible on the current screen."
+msgstr ""
+
+msgid "Branches|To discard the local changes and overwrite the branch with the upstream version, delete it here and choose 'Update Now' above."
+msgstr ""
+
+msgid "Branches|Unable to load branches"
+msgstr ""
+
+msgid "Branches|View branch rules"
+msgstr ""
+
+msgid "Branches|Yes, delete branch"
+msgstr ""
+
+msgid "Branches|Yes, delete protected branch"
+msgstr ""
+
+msgid "Branches|You are about to %{strongStart}delete all branches%{strongEnd} that were merged into %{codeStart}%{defaultBranch}%{codeEnd}."
+msgstr ""
+
+msgid "Branches|You can now find an overview of settings for protected branches, merge request approvals, status checks, and security approvals conveniently in one spot."
+msgstr ""
+
+msgid "Branches|You're about to permanently delete the branch %{branchName}."
+msgstr ""
+
+msgid "Branches|You're about to permanently delete the protected branch %{branchName}."
+msgstr ""
+
+msgid "Branches|diverged from upstream"
+msgstr ""
+
+msgid "Branches|protected"
+msgstr ""
+
+msgid "Breadcrumbs"
+msgstr ""
+
+msgid "Broadcast Message was successfully created."
+msgstr ""
+
+msgid "Broadcast Message was successfully updated."
+msgstr ""
+
+msgid "Broadcast Messages"
+msgstr ""
+
+msgid "BroadcastMessages|Add broadcast message"
+msgstr ""
+
+msgid "BroadcastMessages|Add new message"
+msgstr ""
+
+msgid "BroadcastMessages|Allow users to dismiss the broadcast message"
+msgstr ""
+
+msgid "BroadcastMessages|Banner"
+msgstr ""
+
+msgid "BroadcastMessages|Blue"
+msgstr ""
+
+msgid "BroadcastMessages|Dark"
+msgstr ""
+
+msgid "BroadcastMessages|Delete broadcast message"
+msgstr ""
+
+msgid "BroadcastMessages|Delete message"
+msgstr ""
+
+msgid "BroadcastMessages|Dismissable"
+msgstr ""
+
+msgid "BroadcastMessages|Do you really want to delete this broadcast message?"
+msgstr ""
+
+msgid "BroadcastMessages|Ends at"
+msgstr ""
+
+msgid "BroadcastMessages|Git remote responses"
+msgstr ""
+
+msgid "BroadcastMessages|Green"
+msgstr ""
+
+msgid "BroadcastMessages|Indigo"
+msgstr ""
+
+msgid "BroadcastMessages|Leave blank to target all group and project pages."
+msgstr ""
+
+msgid "BroadcastMessages|Light"
+msgstr ""
+
+msgid "BroadcastMessages|Light Blue"
+msgstr ""
+
+msgid "BroadcastMessages|Light Green"
+msgstr ""
+
+msgid "BroadcastMessages|Light Indigo"
+msgstr ""
+
+msgid "BroadcastMessages|Light Red"
+msgstr ""
+
+msgid "BroadcastMessages|Message"
+msgstr ""
+
+msgid "BroadcastMessages|Messages"
+msgstr ""
+
+msgid "BroadcastMessages|No broadcast messages defined yet."
+msgstr ""
+
+msgid "BroadcastMessages|Notification"
+msgstr ""
+
+msgid "BroadcastMessages|One or more roles is required."
+msgstr ""
+
+msgid "BroadcastMessages|Paths can contain wildcards, like */welcome."
+msgstr ""
+
+msgid "BroadcastMessages|Red"
+msgstr ""
+
+msgid "BroadcastMessages|Select at least one role."
+msgstr ""
+
+msgid "BroadcastMessages|Show only to users who have specific roles on groups/project pages"
+msgstr ""
+
+msgid "BroadcastMessages|Show the broadcast message in a command-line interface as a Git remote response"
+msgstr ""
+
+msgid "BroadcastMessages|Show to all users on all pages"
+msgstr ""
+
+msgid "BroadcastMessages|Show to all users on specific matching pages"
+msgstr ""
+
+msgid "BroadcastMessages|Starts at"
+msgstr ""
+
+msgid "BroadcastMessages|Target Path"
+msgstr ""
+
+msgid "BroadcastMessages|Target broadcast message"
+msgstr ""
+
+msgid "BroadcastMessages|Target roles"
+msgstr ""
+
+msgid "BroadcastMessages|Theme"
+msgstr ""
+
+msgid "BroadcastMessages|There was an error adding broadcast message."
+msgstr ""
+
+msgid "BroadcastMessages|There was an error updating broadcast message."
+msgstr ""
+
+msgid "BroadcastMessages|There was an issue deleting this message, please try again later."
+msgstr ""
+
+msgid "BroadcastMessages|Type"
+msgstr ""
+
+msgid "BroadcastMessages|Update broadcast message"
+msgstr ""
+
+msgid "BroadcastMessages|Your message here"
+msgstr ""
+
+msgid "Browse CI/CD Catalog"
+msgstr ""
+
+msgid "Browse Directory"
+msgstr ""
+
+msgid "Browse File"
+msgstr ""
+
+msgid "Browse Files"
+msgstr ""
+
+msgid "Browse files"
+msgstr ""
+
+msgid "Browse templates"
+msgstr ""
+
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
+msgid "Build cannot be erased"
+msgstr ""
+
+msgid "BuildArtifacts|An error occurred while fetching the artifacts"
+msgstr ""
+
+msgid "BuildArtifacts|Loading artifacts"
+msgstr ""
+
+msgid "Building your merge request… This page will update when the build is complete."
+msgstr ""
+
+msgid "Built-in"
+msgstr ""
+
+msgid "Bulk edit"
+msgstr ""
+
+msgid "Bulk request concurrency"
+msgstr ""
+
+msgid "Bulk update"
+msgstr ""
+
+msgid "BulkImport| %{host} is running outdated GitLab version (v%{version})"
+msgstr ""
+
+msgid "BulkImport|%{feature} (require v%{version})"
+msgstr ""
+
+msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
+msgstr ""
+
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
+msgid "BulkImport|Destination"
+msgstr ""
+
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
+msgid "BulkImport|Direct transfer maximum download file size (MiB)"
+msgstr ""
+
+msgid "BulkImport|Filter by source group"
+msgstr ""
+
+msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
+msgstr ""
+
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
+msgstr ""
+
+msgid "BulkImport|History"
+msgstr ""
+
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
+msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
+
+msgid "BulkImport|Import is finished. Pick another name for re-import"
+msgstr ""
+
+msgid "BulkImport|Import with projects"
+msgstr ""
+
+msgid "BulkImport|Import without projects"
+msgstr ""
+
+msgid "BulkImport|Importing projects is a %{docsLinkStart}Beta%{docsLinkEnd} feature."
+msgstr ""
+
+msgid "BulkImport|Importing the group failed."
+msgstr ""
+
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
+msgid "BulkImport|Last imported to %{link}"
+msgstr ""
+
+msgid "BulkImport|Maximum download file size when importing from source GitLab instances by direct transfer."
+msgstr ""
+
+msgid "BulkImport|Name already exists."
+msgstr ""
+
+msgid "BulkImport|Name already used as a target for another group."
+msgstr ""
+
+msgid "BulkImport|New group"
+msgstr ""
+
+msgid "BulkImport|No additional information provided."
+msgstr ""
+
+msgid "BulkImport|No groups found"
+msgstr ""
+
+msgid "BulkImport|No history is available"
+msgstr ""
+
+msgid "BulkImport|No parent"
+msgstr ""
+
+msgid "BulkImport|Only groups that you have the %{role} role for are listed as groups you can import."
+msgstr ""
+
+msgid "BulkImport|Path of the new group."
+msgstr ""
+
+msgid "BulkImport|Project import history"
+msgstr ""
+
+msgid "BulkImport|Re-import creates a new group. It does not sync with the existing group."
+msgstr ""
+
+msgid "BulkImport|Showing %{start}-%{end} of %{total}"
+msgstr ""
+
+msgid "BulkImport|Showing %{start}-%{end} of %{total} that you own from %{link}"
+msgstr ""
+
+msgid "BulkImport|Showing %{start}-%{end} of %{total} that you own matching filter \"%{filter}\" from %{link}"
+msgstr ""
+
+msgid "BulkImport|Source"
+msgstr ""
+
+msgid "BulkImport|Source group"
+msgstr ""
+
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
+msgstr ""
+
+msgid "BulkImport|Update of import statuses with realtime changes failed"
+msgstr ""
+
+msgid "BulkImport|Your imported groups and projects will appear here."
+msgstr ""
+
+msgid "BulkImport|Your imported projects will appear here."
+msgstr ""
+
+msgid "BulkImport|expected an associated Group but has an associated Project"
+msgstr ""
+
+msgid "BulkImport|expected an associated Project but has an associated Group"
+msgstr ""
+
+msgid "BulkImport|must be a group"
+msgstr ""
+
+msgid "BulkImport|must have a relative path structure with no HTTP protocol characters, or leading or trailing forward slashes. Path segments must not start or end with a special character, and must not contain consecutive special characters"
+msgstr ""
+
+msgid "Bulkmport|Over six imports in one minute were attempted. Wait at least one minute and try again."
+msgstr ""
+
+msgid "Bullet list"
+msgstr ""
+
+msgid "Burndown chart"
+msgstr ""
+
+msgid "BurndownChartLabel|Remaining"
+msgstr ""
+
+msgid "Burnup chart"
+msgstr ""
+
+msgid "Burnup chart could not be generated due to too many events"
+msgstr ""
+
+msgid "Business"
+msgstr ""
+
+msgid "Business metrics (Custom)"
+msgstr ""
+
+msgid "Busy"
+msgstr ""
+
+msgid "Buy CI Minutes"
+msgstr ""
+
+msgid "Buy Storage"
+msgstr ""
+
+msgid "Buy more Pipeline minutes"
+msgstr ""
+
+msgid "By %{user_name}"
+msgstr ""
+
+msgid "By default, all projects and groups use the global notifications setting."
+msgstr ""
+
+msgid "By month"
+msgstr ""
+
+msgid "By quarter"
+msgstr ""
+
+msgid "By using a primary email tied to an Enterprise email address, you acknowledge that this account is an Enterprise User."
+msgstr ""
+
+msgid "By week"
+msgstr ""
+
+msgid "ByAuthor|by"
+msgstr ""
+
+msgid "CHANGELOG"
+msgstr ""
+
+msgid "CI Lint"
+msgstr ""
+
+msgid "CI configuration validated, including all configuration added with the %{codeStart}include%{codeEnd} keyword. %{link}"
+msgstr ""
+
+msgid "CI settings"
+msgstr ""
+
+msgid "CI variables"
+msgstr ""
+
+msgid "CI/CD"
+msgstr ""
+
+msgid "CI/CD Analytics"
+msgstr ""
+
+msgid "CI/CD Catalog"
+msgstr ""
+
+msgid "CI/CD Settings"
+msgstr ""
+
+msgid "CI/CD analytics"
+msgstr ""
+
+msgid "CI/CD configuration"
+msgstr ""
+
+msgid "CI/CD configuration file"
+msgstr ""
+
+msgid "CI/CD limits"
+msgstr ""
+
+msgid "CI/CD|No projects have been added to the scope"
+msgstr ""
+
+msgid "CICDAnalytics|%{percent}%{percentSymbol}"
+msgstr ""
+
+msgid "CICDAnalytics|All time"
+msgstr ""
+
+msgid "CICDAnalytics|Change failure rate"
+msgstr ""
+
+msgid "CICDAnalytics|Deployment frequency"
+msgstr ""
+
+msgid "CICDAnalytics|Lead time"
+msgstr ""
+
+msgid "CICDAnalytics|No shared runner minute usage data available"
+msgstr ""
+
+msgid "CICDAnalytics|Projects with releases"
+msgstr ""
+
+msgid "CICDAnalytics|Release"
+msgid_plural "CICDAnalytics|Releases"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "CICDAnalytics|Release statistics"
+msgstr ""
+
+msgid "CICDAnalytics|Releases"
+msgstr ""
+
+msgid "CICDAnalytics|Shared runner duration is the total runtime of all jobs that ran on shared runners"
+msgstr ""
+
+msgid "CICDAnalytics|Shared runner pipeline minute duration by month"
+msgstr ""
+
+msgid "CICDAnalytics|Something went wrong while fetching release statistics"
+msgstr ""
+
+msgid "CICDAnalytics|Time to restore service"
+msgstr ""
+
+msgid "CICDAnalytics|What is shared runner duration?"
+msgstr ""
+
+msgid "CICD|Add a %{base_domain_link_start}base domain%{link_end} to your %{kubernetes_cluster_link_start}Kubernetes cluster%{link_end} for your deployment strategy to work."
+msgstr ""
+
+msgid "CICD|Add a %{kubernetes_cluster_link_start}Kubernetes cluster integration%{link_end} with a domain, or create an AUTO_DEVOPS_PLATFORM_TARGET CI variable."
+msgstr ""
+
+msgid "CICD|Add an existing project to the scope"
+msgstr ""
+
+msgid "CICD|Allow CI job tokens from the following projects to access this project"
+msgstr ""
+
+msgid "CICD|Auto DevOps"
+msgstr ""
+
+msgid "CICD|Automatic deployment to staging, manual deployment to production"
+msgstr ""
+
+msgid "CICD|Continuous deployment to production"
+msgstr ""
+
+msgid "CICD|Continuous deployment to production using timed incremental rollout"
+msgstr ""
+
+msgid "CICD|Default to Auto DevOps pipeline"
+msgstr ""
+
+msgid "CICD|Default to Auto DevOps pipeline for all projects"
+msgstr ""
+
+msgid "CICD|Deployment strategy"
+msgstr ""
+
+msgid "CICD|Developer"
+msgstr ""
+
+msgid "CICD|Disabling this feature is a permanent change."
+msgstr ""
+
+msgid "CICD|Enable feature to limit job token access to the following projects."
+msgstr ""
+
+msgid "CICD|Enable feature to limit job token access, so only the projects in this list can access this project with a CI/CD job token."
+msgstr ""
+
+msgid "CICD|Jobs"
+msgstr ""
+
+msgid "CICD|Limit"
+msgstr ""
+
+msgid "CICD|Limit access %{italicStart}from%{italicEnd} this project (Deprecated)"
+msgstr ""
+
+msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
+msgstr ""
+
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
+msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "CICD|Prevent access to this project from other project CI/CD job tokens, unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "CICD|The %{boldStart}Limit CI_JOB_TOKEN%{boldEnd} scope is deprecated and will be removed the 17.0 milestone. Configure the %{boldStart}CI_JOB_TOKEN%{boldEnd} allowlist instead. %{linkStart}How do I do this?%{linkEnd}"
+msgstr ""
+
+msgid "CICD|The Auto DevOps pipeline runs by default in all projects with no CI/CD configuration file. %{link_start}What is Auto DevOps?%{link_end}"
+msgstr ""
+
+msgid "CICD|The Auto DevOps pipeline runs if no alternative CI configuration file is found."
+msgstr ""
+
+msgid "CICD|There are several CI/CD limits in place."
+msgstr ""
+
+msgid "CICD|Unprotected branches will not have access to the cache from protected branches."
+msgstr ""
+
+msgid "CICD|Use separate caches for protected branches"
+msgstr ""
+
+msgid "CICD|group enabled"
+msgstr ""
+
+msgid "CICD|instance enabled"
+msgstr ""
+
+msgid "CODEOWNERS rule violation"
+msgstr ""
+
+msgid "CONTRIBUTING"
+msgstr ""
+
+msgid "CPU"
+msgstr ""
+
+msgid "CSV is being generated and will be emailed to you upon completion."
+msgstr ""
+
+msgid "CVE|As a maintainer, requesting a CVE for a vulnerability in your project will help your users stay secure and informed."
+msgstr ""
+
+msgid "CVE|CVE ID Request"
+msgstr ""
+
+msgid "CVE|Common Vulnerability Enumeration (CVE) identifiers are used to track distinct vulnerabilities in specific versions of code."
+msgstr ""
+
+msgid "CVE|Create CVE ID Request"
+msgstr ""
+
+msgid "CVE|Enable CVE ID requests in the issue sidebar"
+msgstr ""
+
+msgid "CVE|Request CVE ID"
+msgstr ""
+
+msgid "CVE|Why Request a CVE ID?"
+msgstr ""
+
+msgid "Cadence is not automated"
+msgstr ""
+
+msgid "Calculate the number of slices during reindexing. The multiplier is applied to the number of shards per index. Learn more about %{slice_multiplier_link_start}slice multiplier configuration%{slice_multiplier_link_end}."
+msgstr ""
+
+msgid "Callback URL"
+msgstr ""
+
+msgid "Campfire room ID (optional)"
+msgstr ""
+
+msgid "Campfire subdomain (optional)"
+msgstr ""
+
+msgid "Campfire token"
+msgstr ""
+
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
+msgid "CampfireService|API authentication token from Campfire."
+msgstr ""
+
+msgid "CampfireService|ID portion of the Campfire room URL."
+msgstr ""
+
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgstr ""
+
+msgid "Can be manually deployed to"
+msgstr ""
+
+msgid "Can create top level groups:"
+msgstr ""
+
+msgid "Can not delete primary training"
+msgstr ""
+
+msgid "Can only be present for group level value streams"
+msgstr ""
+
+msgid "Can't apply as the source branch was deleted."
+msgstr ""
+
+msgid "Can't apply as these lines were changed in a more recent version."
+msgstr ""
+
+msgid "Can't apply as this line was changed in a more recent version."
+msgstr ""
+
+msgid "Can't apply this suggestion."
+msgstr ""
+
+msgid "Can't be empty"
+msgstr ""
+
+msgid "Can't contain %{chars}"
+msgstr ""
+
+msgid "Can't contain spaces"
+msgstr ""
+
+msgid "Can't contain spaces, %{chars}"
+msgstr ""
+
+msgid "Can't create snippet: %{err}"
+msgstr ""
+
+msgid "Can't fetch content for the blob: %{err}"
+msgstr ""
+
+msgid "Can't find HEAD commit for this branch"
+msgstr ""
+
+msgid "Can't find variable: ZiteReader"
+msgstr ""
+
+msgid "Can't scan the code?"
+msgstr ""
+
+msgid "Can't update snippet: %{err}"
+msgstr ""
+
+msgid "Canary"
+msgstr ""
+
+msgid "Canary Ingress does not exist in the environment."
+msgstr ""
+
+msgid "Canary weight must be specified and valid range (0..100)."
+msgstr ""
+
+msgid "CanaryIngress|%{boldStart}Canary:%{boldEnd} %{canary}"
+msgstr ""
+
+msgid "CanaryIngress|%{boldStart}Stable:%{boldEnd} %{stable}"
+msgstr ""
+
+msgid "CanaryIngress|Canary"
+msgstr ""
+
+msgid "CanaryIngress|Change ratio"
+msgstr ""
+
+msgid "CanaryIngress|Change the ratio of canary deployments?"
+msgstr ""
+
+msgid "CanaryIngress|Doing so will set a deployment change in progress. This temporarily blocks any further configuration until the deployment is finished."
+msgstr ""
+
+msgid "CanaryIngress|Stable"
+msgstr ""
+
+msgid "CanaryIngress|You are changing the ratio of the canary rollout for %{environment} compared to the stable deployment to:"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Cancel and close"
+msgstr ""
+
+msgid "Cancel downstream pipeline"
+msgstr ""
+
+msgid "Cancel editing"
+msgstr ""
+
+msgid "Cancel index deletion"
+msgstr ""
+
+msgid "Cancel pipeline"
+msgstr ""
+
+msgid "Cancel the running pipeline"
+msgstr ""
+
+msgid "Cancel this job"
+msgstr ""
+
+msgid "Cancel your account"
+msgstr ""
+
+msgid "Cancel, keep project"
+msgstr ""
+
+msgid "Canceled deployment to"
+msgstr ""
+
+msgid "Cancelled"
+msgstr ""
+
+msgid "Cancelling Preview"
+msgstr ""
+
+msgid "Cannot assign a confidential epic to a non-confidential issue. Make the issue confidential and try again"
+msgstr ""
+
+msgid "Cannot be merged automatically"
+msgstr ""
+
+msgid "Cannot create the abuse report. The reported user was invalid. Please try again or contact support."
+msgstr ""
+
+msgid "Cannot create the abuse report. The user has been deleted."
+msgstr ""
+
+msgid "Cannot create the abuse report. This user has been banned."
+msgstr ""
+
+msgid "Cannot delete %{profile_name} referenced in security policy"
+msgstr ""
+
+msgid "Cannot delete the default framework"
+msgstr ""
+
+msgid "Cannot delete the default organization"
+msgstr ""
+
+msgid "Cannot have multiple Jira imports running at the same time"
+msgstr ""
+
+msgid "Cannot have multiple unresolved alerts"
+msgstr ""
+
+msgid "Cannot import because issues are not available in this project."
+msgstr ""
+
+msgid "Cannot load the diagram into the diagrams.net editor"
+msgstr ""
+
+msgid "Cannot make the epic confidential if it contains non-confidential child epics"
+msgstr ""
+
+msgid "Cannot make the epic confidential if it contains non-confidential issues"
+msgstr ""
+
+msgid "Cannot merge"
+msgstr ""
+
+msgid "Cannot merge the source into the target branch, due to a conflict."
+msgstr ""
+
+msgid "Cannot modify %{profile_name} referenced in security policy"
+msgstr ""
+
+msgid "Cannot modify managed Kubernetes cluster"
+msgstr ""
+
+msgid "Cannot modify provider during creation"
+msgstr ""
+
+msgid "Cannot promote issue because it does not belong to a group."
+msgstr ""
+
+msgid "Cannot promote issue due to insufficient permissions."
+msgstr ""
+
+msgid "Cannot push to source branch"
+msgstr ""
+
+msgid "Cannot refer to a group milestone by an internal id!"
+msgstr ""
+
+msgid "Cannot show preview. For previews on sketch files, they must have the file format introduced by Sketch version 43 and above."
+msgstr ""
+
+msgid "Cannot skip two factor authentication setup"
+msgstr ""
+
+msgid "Capacity threshold"
+msgstr ""
+
+msgid "CascadingSettings|Enforce for all subgroups"
+msgstr ""
+
+msgid "CascadingSettings|Setting enforced"
+msgstr ""
+
+msgid "CascadingSettings|Subgroups cannot change this setting."
+msgstr ""
+
+msgid "CascadingSettings|This setting has been enforced by an instance admin."
+msgstr ""
+
+msgid "CascadingSettings|This setting has been enforced by an owner of %{link}."
+msgstr ""
+
+msgid "CascadingSettings|cannot be changed because it is locked by an ancestor"
+msgstr ""
+
+msgid "CascadingSettings|cannot be nil when locking the attribute"
+msgstr ""
+
+msgid "Category"
+msgstr ""
+
+msgid "Cause identified"
+msgstr ""
+
+msgid "Certain user content will be moved to a system-wide \"Ghost User\" in order to maintain content for posterity. For further information, please refer to the %{link_start}user account deletion documentation.%{link_end}"
+msgstr ""
+
+msgid "Certificate"
+msgstr ""
+
+msgid "Certificate (PEM)"
+msgstr ""
+
+msgid "Certificate Issuer"
+msgstr ""
+
+msgid "Certificate Subject"
+msgstr ""
+
+msgid "Change Failure Rate"
+msgstr ""
+
+msgid "Change action"
+msgstr ""
+
+msgid "Change assignee"
+msgstr ""
+
+msgid "Change assignees"
+msgstr ""
+
+msgid "Change assignees."
+msgstr ""
+
+msgid "Change branches"
+msgstr ""
+
+msgid "Change confidentiality"
+msgstr ""
+
+msgid "Change label"
+msgstr ""
+
+msgid "Change made by"
+msgstr ""
+
+msgid "Change milestone"
+msgstr ""
+
+msgid "Change path"
+msgstr ""
+
+msgid "Change reviewers"
+msgstr ""
+
+msgid "Change reviewers."
+msgstr ""
+
+msgid "Change role"
+msgstr ""
+
+msgid "Change status"
+msgstr ""
+
+msgid "Change subscription"
+msgstr ""
+
+msgid "Change template"
+msgstr ""
+
+msgid "Change title"
+msgstr ""
+
+msgid "Change work item parent"
+msgstr ""
+
+msgid "Change work item type"
+msgstr ""
+
+msgid "Change work item's parent to %{parent_ref}."
+msgstr ""
+
+msgid "Change your password"
+msgstr ""
+
+msgid "Change your password or recover your current one."
+msgstr ""
+
+msgid "Change your password."
+msgstr ""
+
+msgid "ChangeReviewer|All reviewers were removed."
+msgstr ""
+
+msgid "ChangeTypeAction|Cherry-pick"
+msgstr ""
+
+msgid "ChangeTypeAction|GitLab will create a branch in your fork and start a merge request."
+msgstr ""
+
+msgid "ChangeTypeAction|Pick into branch"
+msgstr ""
+
+msgid "ChangeTypeAction|Pick into project"
+msgstr ""
+
+msgid "ChangeTypeAction|Revert"
+msgstr ""
+
+msgid "ChangeTypeAction|Revert in branch"
+msgstr ""
+
+msgid "ChangeTypeAction|Search branches"
+msgstr ""
+
+msgid "ChangeTypeAction|Search projects"
+msgstr ""
+
+msgid "ChangeTypeAction|Start a %{newMergeRequest} with these changes"
+msgstr ""
+
+msgid "ChangeTypeAction|Switch branch"
+msgstr ""
+
+msgid "ChangeTypeAction|Switch project"
+msgstr ""
+
+msgid "ChangeTypeAction|This will create a new commit in order to revert the existing changes."
+msgstr ""
+
+msgid "ChangeTypeAction|Your changes will be committed to %{branchName} because a merge request is open."
+msgstr ""
+
+msgid "Changed"
+msgstr ""
+
+msgid "Changed assignees."
+msgstr ""
+
+msgid "Changed merge method to %{merge_method}"
+msgstr ""
+
+msgid "Changed reviewers."
+msgstr ""
+
+msgid "Changed squash option to %{squash_option}"
+msgstr ""
+
+msgid "Changed the title to \"%{title_param}\"."
+msgstr ""
+
+msgid "Changelog"
+msgstr ""
+
+msgid "Changes"
+msgstr ""
+
+msgid "Changes requested to the current merge request."
+msgstr ""
+
+msgid "Changes saved."
+msgstr ""
+
+msgid "Changes suppressed. Click to show."
+msgstr ""
+
+msgid "Changes the title to \"%{title_param}\"."
+msgstr ""
+
+msgid "Changes to the title have not been saved"
+msgstr ""
+
+msgid "Changes will not affect existing token expiration dates. %{link_start}How will this affect expiration dates?%{link_end}"
+msgstr ""
+
+msgid "Changes:"
+msgstr ""
+
+msgid "Characters left"
+msgstr ""
+
+msgid "Characters over limit"
+msgstr ""
+
+msgid "Chat"
+msgstr ""
+
+msgid "ChatMessage|%{project_link}: Pipeline %{pipeline_link} of %{ref_type} %{ref_link} by %{user_combined_name} %{humanized_status} in %{duration}"
+msgstr ""
+
+msgid "ChatMessage|Branch"
+msgstr ""
+
+msgid "ChatMessage|Commit"
+msgstr ""
+
+msgid "ChatMessage|Failed job"
+msgstr ""
+
+msgid "ChatMessage|Failed stage"
+msgstr ""
+
+msgid "ChatMessage|Invalid CI config YAML file"
+msgstr ""
+
+msgid "ChatMessage|Pipeline #%{pipeline_id} %{humanized_status} in %{duration}"
+msgstr ""
+
+msgid "ChatMessage|Pipeline %{pipeline_link} of %{ref_type} %{ref_link} by %{user_combined_name} %{humanized_status}"
+msgstr ""
+
+msgid "ChatMessage|Pipeline name"
+msgstr ""
+
+msgid "ChatMessage|Tag"
+msgstr ""
+
+msgid "ChatMessage|and [%{count} more](%{pipeline_failed_jobs_url})"
+msgstr ""
+
+msgid "ChatMessage|has failed"
+msgstr ""
+
+msgid "ChatMessage|has passed"
+msgstr ""
+
+msgid "ChatMessage|has passed with warnings"
+msgstr ""
+
+msgid "ChatMessage|in %{duration}"
+msgstr ""
+
+msgid "ChatMessage|in %{project_link}"
+msgstr ""
+
+msgid "Check"
+msgstr ""
+
+msgid "Check again"
+msgstr ""
+
+msgid "Check feature availability on namespace plan"
+msgstr ""
+
+msgid "Check out branch"
+msgstr ""
+
+msgid "Check out, review, and resolve locally"
+msgstr ""
+
+msgid "Check the %{code_open}elasticsearch.log%{code_close} file to debug why the migration halted and make any changes before retrying the migration. When you fix the cause of the failure, select %{strong_open}Retry migration%{strong_close}, and the migration is scheduled to retry in the background."
+msgstr ""
+
+msgid "Check the current instance configuration "
+msgstr ""
+
+msgid "Check with your administrator."
+msgstr ""
+
+msgid "Check your Docker images for known vulnerabilities."
+msgstr ""
+
+msgid "Check your sign-up restrictions"
+msgstr ""
+
+msgid "Checkin reminder has been enabled."
+msgstr ""
+
+msgid "Checking %{text} availability…"
+msgstr ""
+
+msgid "Checking approval status"
+msgstr ""
+
+msgid "Checking branch availability..."
+msgstr ""
+
+msgid "Checking branch availability…"
+msgstr ""
+
+msgid "Checking group path availability..."
+msgstr ""
+
+msgid "Checking username availability..."
+msgstr ""
+
+msgid "Checkout"
+msgstr ""
+
+msgid "Checkout|$%{pricePerUserPerYear} per user per year"
+msgstr ""
+
+msgid "Checkout|$%{selectedPlanPrice} per 10 GB storage pack per year"
+msgstr ""
+
+msgid "Checkout|$%{selectedPlanPrice} per pack of 1,000 compute minutes"
+msgstr ""
+
+msgid "Checkout|%d compute pack"
+msgid_plural "Checkout|%d compute packs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Checkout|%{cardType} ending in %{lastFourDigits}"
+msgstr ""
+
+msgid "Checkout|%{name}'s GitLab subscription"
+msgstr ""
+
+msgid "Checkout|%{name}'s compute minutes"
+msgstr ""
+
+msgid "Checkout|%{name}'s storage subscription"
+msgstr ""
+
+msgid "Checkout|%{quantity} GB of storage"
+msgstr ""
+
+msgid "Checkout|%{quantity} compute minutes"
+msgstr ""
+
+msgid "Checkout|%{quantity} storage pack"
+msgid_plural "Checkout|%{quantity} storage packs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Checkout|%{selectedPlanText}"
+msgstr ""
+
+msgid "Checkout|%{startDate} - %{endDate}"
+msgstr ""
+
+msgid "Checkout|(may be %{linkStart}charged upon purchase%{linkEnd})"
+msgstr ""
+
+msgid "Checkout|(x%{numberOfUsers})"
+msgstr ""
+
+msgid "Checkout|(x%{quantity})"
+msgstr ""
+
+msgid "Checkout|Add active users before adding a coupon."
+msgstr ""
+
+msgid "Checkout|An unknown error has occurred. Please try again by refreshing this page."
+msgstr ""
+
+msgid "Checkout|Billing address"
+msgstr ""
+
+msgid "Checkout|Billing contact"
+msgstr ""
+
+msgid "Checkout|CI minutes"
+msgstr ""
+
+msgid "Checkout|Calculating your subscription..."
+msgstr ""
+
+msgid "Checkout|Checkout"
+msgstr ""
+
+msgid "Checkout|City"
+msgstr ""
+
+msgid "Checkout|Company information"
+msgstr ""
+
+msgid "Checkout|Compute pack"
+msgstr ""
+
+msgid "Checkout|Compute packs are only used after you've used your subscription's monthly quota. The additional compute minutes will roll over month to month and are valid for one year."
+msgstr ""
+
+msgid "Checkout|Confirm purchase"
+msgstr ""
+
+msgid "Checkout|Confirming..."
+msgstr ""
+
+msgid "Checkout|Contact information"
+msgstr ""
+
+msgid "Checkout|Continue to billing"
+msgstr ""
+
+msgid "Checkout|Continue to payment"
+msgstr ""
+
+msgid "Checkout|Country"
+msgstr ""
+
+msgid "Checkout|Coupon code (optional)"
+msgstr ""
+
+msgid "Checkout|Coupon has been applied and by continuing with your purchase, you accept and agree to the %{linkStart}Coupon Terms%{linkEnd}."
+msgstr ""
+
+msgid "Checkout|Create a new group"
+msgstr ""
+
+msgid "Checkout|Credit card form failed to load. Please try again."
+msgstr ""
+
+msgid "Checkout|Credit card form failed to load: %{message}"
+msgstr ""
+
+msgid "Checkout|Discount"
+msgstr ""
+
+msgid "Checkout|Edit"
+msgstr ""
+
+msgid "Checkout|Exp %{expirationMonth}/%{expirationYear}"
+msgstr ""
+
+msgid "Checkout|Failed to load countries. Please try again."
+msgstr ""
+
+msgid "Checkout|Failed to load states. Please try again."
+msgstr ""
+
+msgid "Checkout|Failed to load the payment form. Refresh the page and try again."
+msgstr ""
+
+msgid "Checkout|Failed to register credit card. Please try again."
+msgstr ""
+
+msgid "Checkout|GB"
+msgstr ""
+
+msgid "Checkout|GitLab group"
+msgstr ""
+
+msgid "Checkout|GitLab plan"
+msgstr ""
+
+msgid "Checkout|Group"
+msgstr ""
+
+msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
+msgstr ""
+
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
+msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
+msgstr ""
+
+msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use, plus all over limit members) or more. To buy fewer seats, remove members from the group."
+msgstr ""
+
+msgid "Checkout|Must be 1 or more. Cannot be a decimal."
+msgstr ""
+
+msgid "Checkout|Name of company or organization using GitLab"
+msgstr ""
+
+msgid "Checkout|Name: %{errorMessage}"
+msgstr ""
+
+msgid "Checkout|Need more users? Purchase GitLab for your %{company}."
+msgstr ""
+
+msgid "Checkout|Network Error: %{message}"
+msgstr ""
+
+msgid "Checkout|Number of users"
+msgstr ""
+
+msgid "Checkout|Payment method"
+msgstr ""
+
+msgid "Checkout|Pricing reflective of %{linkStart}limited-time offer%{linkEnd}."
+msgstr ""
+
+msgid "Checkout|Purchase details"
+msgstr ""
+
+msgid "Checkout|Select"
+msgstr ""
+
+msgid "Checkout|Select a country"
+msgstr ""
+
+msgid "Checkout|Select a state"
+msgstr ""
+
+msgid "Checkout|Something went wrong while loading price details."
+msgstr ""
+
+msgid "Checkout|State"
+msgstr ""
+
+msgid "Checkout|Storage packs"
+msgstr ""
+
+msgid "Checkout|Street address"
+msgstr ""
+
+msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
+msgstr ""
+
+msgid "Checkout|Subscription contact"
+msgstr ""
+
+msgid "Checkout|Subscription details"
+msgstr ""
+
+msgid "Checkout|Subtotal"
+msgstr ""
+
+msgid "Checkout|Success: subscription"
+msgstr ""
+
+msgid "Checkout|Tax"
+msgstr ""
+
+msgid "Checkout|Tax ID"
+msgstr ""
+
+msgid "Checkout|Total"
+msgstr ""
+
+msgid "Checkout|Total compute minutes: %{quantity}"
+msgstr ""
+
+msgid "Checkout|Total storage: %{quantity} GB"
+msgstr ""
+
+msgid "Checkout|Users"
+msgstr ""
+
+msgid "Checkout|You'll create your new group after checkout"
+msgstr ""
+
+msgid "Checkout|Your organization"
+msgstr ""
+
+msgid "Checkout|Your storage subscription has the same term as your main subscription, and the price is prorated accordingly."
+msgstr ""
+
+msgid "Checkout|Your subscription will be applied to this group"
+msgstr ""
+
+msgid "Checkout|Zip code"
+msgstr ""
+
+msgid "Checkout|a storage subscription"
+msgstr ""
+
+msgid "Checkout|company or team"
+msgstr ""
+
+msgid "Checkout|compute minutes"
+msgstr ""
+
+msgid "Checkout|x %{quantity} %{units} per pack"
+msgstr ""
+
+msgid "Checkout|x %{quantity} %{units} per pack ="
+msgstr ""
+
+msgid "Cherry-pick this commit"
+msgstr ""
+
+msgid "Cherry-pick this merge request"
+msgstr ""
+
+msgid "Child"
+msgstr ""
+
+msgid "Child epic"
+msgstr ""
+
+msgid "Child issues and epics"
+msgstr ""
+
+msgid "Child work item(s) added successfully"
+msgstr ""
+
+msgid "Chinese language support using"
+msgstr ""
+
+msgid "Choose File..."
+msgstr ""
+
+msgid "Choose a file"
+msgstr ""
+
+msgid "Choose a template"
+msgstr ""
+
+msgid "Choose a template..."
+msgstr ""
+
+msgid "Choose a type..."
+msgstr ""
+
+msgid "Choose an option"
+msgstr ""
+
+msgid "Choose file…"
+msgstr ""
+
+msgid "Choose protected branch"
+msgstr ""
+
+msgid "Choose the top-level group for your repository imports."
+msgstr ""
+
+msgid "Choose visibility level, enable/disable project features and their permissions, disable email notifications, and show default emoji reactions."
+msgstr ""
+
+msgid "Choose what content you want to see on a group’s overview page."
+msgstr ""
+
+msgid "Choose which Git strategy to use when fetching the project."
+msgstr ""
+
+msgid "Choose which branches should be mirrored"
+msgstr ""
+
+msgid "Choose which repositories you want to connect and run CI/CD pipelines."
+msgstr ""
+
+msgid "Choose your framework"
+msgstr ""
+
+msgid "Ci config already present"
+msgstr ""
+
+msgid "CiCatalogComponent|Component details not available"
+msgstr ""
+
+msgid "CiCatalogComponent|Default Value"
+msgstr ""
+
+msgid "CiCatalogComponent|Inputs"
+msgstr ""
+
+msgid "CiCatalogComponent|Mandatory"
+msgstr ""
+
+msgid "CiCatalogComponent|Parameters"
+msgstr ""
+
+msgid "CiCatalogComponent|There was an error fetching this resource's components"
+msgstr ""
+
+msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
+msgstr ""
+
+msgid "CiCatalog|All"
+msgstr ""
+
+msgid "CiCatalog|Back to the CI/CD Catalog"
+msgstr ""
+
+msgid "CiCatalog|CI/CD Catalog resource"
+msgstr ""
+
+msgid "CiCatalog|CI/CD catalog resource"
+msgstr ""
+
+msgid "CiCatalog|Component ID not found, or you do not have permission to access component."
+msgstr ""
+
+msgid "CiCatalog|Components"
+msgstr ""
+
+msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
+msgstr ""
+
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|Get started with the CI/CD Catalog"
+msgstr ""
+
+msgid "CiCatalog|Go to the project"
+msgstr ""
+
+msgid "CiCatalog|Last release at %{date}"
+msgstr ""
+
+msgid "CiCatalog|No component available"
+msgstr ""
+
+msgid "CiCatalog|No release available"
+msgstr ""
+
+msgid "CiCatalog|No result found"
+msgstr ""
+
+msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
+msgstr ""
+
+msgid "CiCatalog|Readme"
+msgstr ""
+
+msgid "CiCatalog|Released %{timeAgo} by %{author}"
+msgstr ""
+
+msgid "CiCatalog|Remove from the CI/CD catalog"
+msgstr ""
+
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
+msgstr ""
+
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgstr ""
+
+msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
+msgstr ""
+
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|This project is now a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unreleased"
+msgstr ""
+
+msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
+msgstr ""
+
+msgid "CiCatalog|Your resources"
+msgstr ""
+
+msgid "CiCdAnalytics|Date range: %{range}"
+msgstr ""
+
+msgid "CiStatusLabel|canceled"
+msgstr ""
+
+msgid "CiStatusLabel|created"
+msgstr ""
+
+msgid "CiStatusLabel|failed"
+msgstr ""
+
+msgid "CiStatusLabel|manual action"
+msgstr ""
+
+msgid "CiStatusLabel|passed"
+msgstr ""
+
+msgid "CiStatusLabel|passed with warnings"
+msgstr ""
+
+msgid "CiStatusLabel|pending"
+msgstr ""
+
+msgid "CiStatusLabel|preparing"
+msgstr ""
+
+msgid "CiStatusLabel|running"
+msgstr ""
+
+msgid "CiStatusLabel|scheduled"
+msgstr ""
+
+msgid "CiStatusLabel|skipped"
+msgstr ""
+
+msgid "CiStatusLabel|waiting for callback"
+msgstr ""
+
+msgid "CiStatusLabel|waiting for delayed job"
+msgstr ""
+
+msgid "CiStatusLabel|waiting for manual action"
+msgstr ""
+
+msgid "CiStatusLabel|waiting for resource"
+msgstr ""
+
+msgid "CiStatusText|Blocked"
+msgstr ""
+
+msgid "CiStatusText|Canceled"
+msgstr ""
+
+msgid "CiStatusText|Created"
+msgstr ""
+
+msgid "CiStatusText|Delayed"
+msgstr ""
+
+msgid "CiStatusText|Failed"
+msgstr ""
+
+msgid "CiStatusText|Manual"
+msgstr ""
+
+msgid "CiStatusText|Passed"
+msgstr ""
+
+msgid "CiStatusText|Pending"
+msgstr ""
+
+msgid "CiStatusText|Preparing"
+msgstr ""
+
+msgid "CiStatusText|Running"
+msgstr ""
+
+msgid "CiStatusText|Scheduled"
+msgstr ""
+
+msgid "CiStatusText|Skipped"
+msgstr ""
+
+msgid "CiStatusText|Waiting"
+msgstr ""
+
+msgid "CiStatusText|Warning"
+msgstr ""
+
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
+msgid "CiVariables|Add variable"
+msgstr ""
+
+msgid "CiVariables|Attributes"
+msgstr ""
+
+msgid "CiVariables|CI/CD Variables"
+msgstr ""
+
+msgid "CiVariables|Cancel"
+msgstr ""
+
+msgid "CiVariables|Delete variable"
+msgstr ""
+
+msgid "CiVariables|Do you want to delete the variable %{key}?"
+msgstr ""
+
+msgid "CiVariables|Edit variable"
+msgstr ""
+
+msgid "CiVariables|Environments"
+msgstr ""
+
+msgid "CiVariables|Expand variable reference"
+msgstr ""
+
+msgid "CiVariables|Expanded"
+msgstr ""
+
+msgid "CiVariables|Export variable to pipelines running on protected branches and tags only."
+msgstr ""
+
+msgid "CiVariables|File"
+msgstr ""
+
+msgid "CiVariables|Group"
+msgstr ""
+
+msgid "CiVariables|Input variable key"
+msgstr ""
+
+msgid "CiVariables|Input variable value"
+msgstr ""
+
+msgid "CiVariables|Key"
+msgstr ""
+
+msgid "CiVariables|Mask variable"
+msgstr ""
+
+msgid "CiVariables|Masked"
+msgstr ""
+
+msgid "CiVariables|Maximum number of Inherited Group CI variables loaded (2000)"
+msgstr ""
+
+msgid "CiVariables|Maximum number of variables reached."
+msgstr ""
+
+msgid "CiVariables|Protect variable"
+msgstr ""
+
+msgid "CiVariables|Protected"
+msgstr ""
+
+msgid "CiVariables|Remove inputs"
+msgstr ""
+
+msgid "CiVariables|Remove variable"
+msgstr ""
+
+msgid "CiVariables|Run job"
+msgstr ""
+
+msgid "CiVariables|Run job again"
+msgstr ""
+
+msgid "CiVariables|Scope"
+msgstr ""
+
+msgid "CiVariables|Specify variable values to be used in this run. The variables specified in the configuration file and %{linkStart}CI/CD settings%{linkEnd} are used by default."
+msgstr ""
+
+msgid "CiVariables|State"
+msgstr ""
+
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
+msgid "CiVariables|There was an error fetching the inherited CI variables."
+msgstr ""
+
+msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
+msgstr ""
+
+msgid "CiVariables|Type"
+msgstr ""
+
+msgid "CiVariables|Unselect \"Expand variable reference\" if you want to use the variable value as a raw string."
+msgstr ""
+
+msgid "CiVariables|Value"
+msgstr ""
+
+msgid "CiVariables|Value might contain a variable reference"
+msgstr ""
+
+msgid "CiVariables|Variable value will be evaluated as raw string."
+msgstr ""
+
+msgid "CiVariables|Variable will be masked in job logs. Requires values to meet regular expression requirements."
+msgstr ""
+
+msgid "CiVariables|Variables"
+msgstr ""
+
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
+msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
+msgstr ""
+
+msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
+msgstr ""
+
+msgid "CiVariable|All environments"
+msgstr ""
+
+msgid "CiVariable|Create wildcard"
+msgstr ""
+
+msgid "CiVariable|Define a CI/CD variable in the UI"
+msgstr ""
+
+msgid "CiVariable|GitLab CI/CD supports OpenID Connect (OIDC) to give your build and deployment jobs access to cloud credentials and services. %{linkStart}How do I configure OIDC for my cloud provider?%{linkEnd}"
+msgstr ""
+
+msgid "CiVariable|Maximum of %{limit} environments listed. For more environments, enter a search query."
+msgstr ""
+
+msgid "CiVariable|New environment"
+msgstr ""
+
+msgid "CiVariable|Search environments"
+msgstr ""
+
+msgid "CiVariable|Use OIDC to securely connect to cloud services"
+msgstr ""
+
+msgid "CiVariable|Variable %{key} has been deleted."
+msgstr ""
+
+msgid "CiVariable|Variable %{key} has been successfully added."
+msgstr ""
+
+msgid "CiVariable|Variable %{key} has been updated."
+msgstr ""
+
+msgid "Classification Label (optional)"
+msgstr ""
+
+msgid "ClassificationLabelUnavailable|is unavailable: %{reason}"
+msgstr ""
+
+msgid "Clean up after running %{link_start}git filter-repo%{link_end} on the repository."
+msgstr ""
+
+msgid "Cleanup policies are executed by background workers. This setting defines the maximum number of workers that can run concurrently. Set it to 0 to remove all workers and not execute the cleanup policies."
+msgstr ""
+
+msgid "Cleanup policy maximum number of tags to be deleted"
+msgstr ""
+
+msgid "Cleanup policy maximum processing time (seconds)"
+msgstr ""
+
+msgid "Cleanup policy maximum workers running concurrently"
+msgstr ""
+
+msgid "Clear"
+msgstr ""
+
+msgid "Clear %{count} image from cache?"
+msgid_plural "Clear %{count} images from cache?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Clear All"
+msgstr ""
+
+msgid "Clear all"
+msgstr ""
+
+msgid "Clear all repository checks"
+msgstr ""
+
+msgid "Clear chart filters"
+msgstr ""
+
+msgid "Clear due date"
+msgstr ""
+
+msgid "Clear health status"
+msgstr ""
+
+msgid "Clear recent searches"
+msgstr ""
+
+msgid "Clear repository checks"
+msgstr ""
+
+msgid "Clear search"
+msgstr ""
+
+msgid "Clear search input"
+msgstr ""
+
+msgid "Clear start date"
+msgstr ""
+
+msgid "Clear templates search input"
+msgstr ""
+
+msgid "Clear this checkbox to use a personal access token instead."
+msgstr ""
+
+msgid "Clear this checkbox to use a personal access token or LDAP password instead."
+msgstr ""
+
+msgid "Clear this checkbox to use an external authentication provider instead."
+msgstr ""
+
+msgid "Clear weight"
+msgstr ""
+
+msgid "Cleared health status."
+msgstr ""
+
+msgid "Cleared weight."
+msgstr ""
+
+msgid "Clears health status."
+msgstr ""
+
+msgid "Clears weight."
+msgstr ""
+
+msgid "Click %{link_start}here%{link_end} to view the request."
+msgstr ""
+
+msgid "Click %{link_to} to view the request."
+msgstr ""
+
+msgid "Click the link below to confirm your email address (%{email})"
+msgstr ""
+
+msgid "Click the link below to confirm your email address."
+msgstr ""
+
+msgid "Click to expand"
+msgstr ""
+
+msgid "Click to expand it."
+msgstr ""
+
+msgid "Click to expand text"
+msgstr ""
+
+msgid "Click to hide"
+msgstr ""
+
+msgid "Click to reveal"
+msgstr ""
+
+msgid "Client request timeout"
+msgstr ""
+
+msgid "Clients"
+msgstr ""
+
+msgid "Clientside DSN"
+msgstr ""
+
+msgid "Clientside traces sample rate"
+msgstr ""
+
+msgid "Clone"
+msgstr ""
+
+msgid "Clone repository"
+msgstr ""
+
+msgid "Clone this issue"
+msgstr ""
+
+msgid "Clone with %{http_label}"
+msgstr ""
+
+msgid "Clone with %{protocol}"
+msgstr ""
+
+msgid "Clone with KRB5"
+msgstr ""
+
+msgid "Clone with SSH"
+msgstr ""
+
+msgid "CloneIssue|Cannot clone issue due to insufficient permissions!"
+msgstr ""
+
+msgid "CloneIssue|Cannot clone issue to target project as it is pending deletion."
+msgstr ""
+
+msgid "CloneIssue|Cannot clone issues of '%{issue_type}' type."
+msgstr ""
+
+msgid "Cloned this issue to %{path_to_project}."
+msgstr ""
+
+msgid "Clones this issue, without comments, to %{project}."
+msgstr ""
+
+msgid "Close"
+msgstr ""
+
+msgid "Close %{issuableType}"
+msgstr ""
+
+msgid "Close %{issueType}"
+msgstr ""
+
+msgid "Close %{noteable}"
+msgstr ""
+
+msgid "Close %{tabname}"
+msgstr ""
+
+msgid "Close %{workItemType}"
+msgstr ""
+
+msgid "Close design"
+msgstr ""
+
+msgid "Close epic"
+msgstr ""
+
+msgid "Close milestone"
+msgstr ""
+
+msgid "Close this %{quick_action_target}"
+msgstr ""
+
+msgid "Closed"
+msgstr ""
+
+msgid "Closed %{epicTimeagoDate}"
+msgstr ""
+
+msgid "Closed (moved)"
+msgstr ""
+
+msgid "Closed date"
+msgstr ""
+
+msgid "Closed issues"
+msgstr ""
+
+msgid "Closed this %{quick_action_target}."
+msgstr ""
+
+msgid "Closed this issue. Marked as related to, and a duplicate of, %{duplicate_param}."
+msgstr ""
+
+msgid "Closed: %{closed}"
+msgstr ""
+
+msgid "Closes this %{quick_action_target}."
+msgstr ""
+
+msgid "Closes this issue. Marks as related to, and a duplicate of, %{duplicate_reference}."
+msgstr ""
+
+msgid "Closing %{issuableType}..."
+msgstr ""
+
+msgid "Closing %{workItemType}"
+msgstr ""
+
+msgid "Cloud Run"
+msgstr ""
+
+msgid "Cloud SQL instances are fully managed, relational MySQL databases. Google handles replication, patch management, and database management to ensure availability and performance."
+msgstr ""
+
+msgid "Cloud SQL instances are fully managed, relational SQL Server databases. Google handles replication, patch management, and database management to ensure availability and performance."
+msgstr ""
+
+msgid "Cloud Storage"
+msgstr ""
+
+msgid "CloudSeed|AI / ML"
+msgstr ""
+
+msgid "CloudSeed|All"
+msgstr ""
+
+msgid "CloudSeed|AlloyDB for Postgres"
+msgstr ""
+
+msgid "CloudSeed|Available database services through which instances may be created"
+msgstr ""
+
+msgid "CloudSeed|Cancel"
+msgstr ""
+
+msgid "CloudSeed|Cloud Firestore"
+msgstr ""
+
+msgid "CloudSeed|Cloud SQL for MySQL"
+msgstr ""
+
+msgid "CloudSeed|Cloud SQL for Postgres"
+msgstr ""
+
+msgid "CloudSeed|Cloud SQL for SQL Server"
+msgstr ""
+
+msgid "CloudSeed|Cloud SQL instance creation request successful. Expected resolution time is ~5 minutes."
+msgstr ""
+
+msgid "CloudSeed|Cloud SQL instances are fully managed, relational PostgreSQL databases. Google handles replication, patch management, and database management to ensure availability and performance."
+msgstr ""
+
+msgid "CloudSeed|CloudSQL Instance"
+msgstr ""
+
+msgid "CloudSeed|Configuration"
+msgstr ""
+
+msgid "CloudSeed|Configure via Merge Request"
+msgstr ""
+
+msgid "CloudSeed|Create MySQL Instance"
+msgstr ""
+
+msgid "CloudSeed|Create Postgres Instance"
+msgstr ""
+
+msgid "CloudSeed|Create cluster"
+msgstr ""
+
+msgid "CloudSeed|Create database"
+msgstr ""
+
+msgid "CloudSeed|Create instance"
+msgstr ""
+
+msgid "CloudSeed|Database instance is generated within the selected Google Cloud project"
+msgstr ""
+
+msgid "CloudSeed|Database instances associated with this project"
+msgstr ""
+
+msgid "CloudSeed|Database version"
+msgstr ""
+
+msgid "CloudSeed|Databases"
+msgstr ""
+
+msgid "CloudSeed|Deployments"
+msgstr ""
+
+msgid "CloudSeed|Derive insights from unstructured text using Google machine learning"
+msgstr ""
+
+msgid "CloudSeed|Derive insights from your images in the cloud or at the edge"
+msgstr ""
+
+msgid "CloudSeed|Description"
+msgstr ""
+
+msgid "CloudSeed|Determines memory and virtual cores available to your instance"
+msgstr ""
+
+msgid "CloudSeed|Enhance security by storing database variables in secret managers - learn more about %{docLinkStart}secret management with GitLab%{docLinkEnd}"
+msgstr ""
+
+msgid "CloudSeed|Environment"
+msgstr ""
+
+msgid "CloudSeed|Flexible, scalable NoSQL cloud database for client- and server-side development"
+msgstr ""
+
+msgid "CloudSeed|Fully managed PostgreSQL-compatible service for high-demand workloads"
+msgstr ""
+
+msgid "CloudSeed|Fully managed relational database service for MySQL"
+msgstr ""
+
+msgid "CloudSeed|Fully managed relational database service for PostgreSQL"
+msgstr ""
+
+msgid "CloudSeed|Fully managed relational database service for SQL Server"
+msgstr ""
+
+msgid "CloudSeed|Generated database instance is linked to the selected branch or tag"
+msgstr ""
+
+msgid "CloudSeed|Google Cloud Error - %{message}"
+msgstr ""
+
+msgid "CloudSeed|Google Cloud Project"
+msgstr ""
+
+msgid "CloudSeed|Google Cloud project"
+msgstr ""
+
+msgid "CloudSeed|Google Cloud's AI tools are armed with the best of Google's research and technology to help developers focus exclusively on solving problems that matter"
+msgstr ""
+
+msgid "CloudSeed|I accept Google Cloud pricing and responsibilities involved with managing database instances"
+msgstr ""
+
+msgid "CloudSeed|Instances"
+msgstr ""
+
+msgid "CloudSeed|Language AI"
+msgstr ""
+
+msgid "CloudSeed|Learn more about pricing for %{cloudsqlPricingStart}Cloud SQL%{cloudsqlPricingEnd}, %{alloydbPricingStart}Alloy DB%{alloydbPricingEnd}, %{memorystorePricingStart}Memorystore%{memorystorePricingEnd} and %{firestorePricingStart}Firestore%{firestorePricingEnd}."
+msgstr ""
+
+msgid "CloudSeed|Machine type"
+msgstr ""
+
+msgid "CloudSeed|Make your content and apps multilingual with fast, dynamic machine translation"
+msgstr ""
+
+msgid "CloudSeed|Memorystore for Redis"
+msgstr ""
+
+msgid "CloudSeed|No instances"
+msgstr ""
+
+msgid "CloudSeed|Refs"
+msgstr ""
+
+msgid "CloudSeed|Regions"
+msgstr ""
+
+msgid "CloudSeed|Scalable, secure, and highly available in-memory service for Redis"
+msgstr ""
+
+msgid "CloudSeed|Service"
+msgstr ""
+
+msgid "CloudSeed|Service Account"
+msgstr ""
+
+msgid "CloudSeed|Services"
+msgstr ""
+
+msgid "CloudSeed|There are no instances to display."
+msgstr ""
+
+msgid "CloudSeed|Translation AI"
+msgstr ""
+
+msgid "CloudSeed|Version"
+msgstr ""
+
+msgid "CloudSeed|Vision AI"
+msgstr ""
+
+msgid "Cluster"
+msgstr ""
+
+msgid "Cluster Health"
+msgstr ""
+
+msgid "Cluster cache cleared."
+msgstr ""
+
+msgid "Cluster level"
+msgstr ""
+
+msgid "ClusterAgents|%{linkStart}View the documentation%{linkEnd} for advanced installation. Ensure you have your access token available."
+msgstr ""
+
+msgid "ClusterAgents|%{name} successfully deleted"
+msgstr ""
+
+msgid "ClusterAgents|%{name} successfully revoked"
+msgstr ""
+
+msgid "ClusterAgents|%{number} of %{total} agents"
+msgstr ""
+
+msgid "ClusterAgents|%{number} of %{total} clusters connected through cluster certificates"
+msgstr ""
+
+msgid "ClusterAgents|%{titleIcon}Connected"
+msgstr ""
+
+msgid "ClusterAgents|%{titleIcon}Not connected"
+msgstr ""
+
+msgid "ClusterAgents|%{tokenName} created"
+msgstr ""
+
+msgid "ClusterAgents|%{tokenName} revoked"
+msgstr ""
+
+msgid "ClusterAgents|Access tokens"
+msgstr ""
+
+msgid "ClusterAgents|Add an agent configuration file to %{linkStart}this repository%{linkEnd} and select it, or create a new one to register with GitLab:"
+msgstr ""
+
+msgid "ClusterAgents|Advanced installation methods"
+msgstr ""
+
+msgid "ClusterAgents|Agent"
+msgstr ""
+
+msgid "ClusterAgents|Agent %{strongStart}connected%{strongEnd}"
+msgstr ""
+
+msgid "ClusterAgents|Agent %{strongStart}disconnected%{strongEnd}"
+msgstr ""
+
+msgid "ClusterAgents|Agent ID #%{agentId}"
+msgstr ""
+
+msgid "ClusterAgents|Agent access token:"
+msgstr ""
+
+msgid "ClusterAgents|Agent might not be connected to GitLab"
+msgstr ""
+
+msgid "ClusterAgents|Agent never connected to GitLab"
+msgstr ""
+
+msgid "ClusterAgents|Agent version mismatch"
+msgstr ""
+
+msgid "ClusterAgents|Agent version mismatch and update"
+msgstr ""
+
+msgid "ClusterAgents|Agent version update required"
+msgstr ""
+
+msgid "ClusterAgents|All"
+msgstr ""
+
+msgid "ClusterAgents|An error occurred while loading your agent"
+msgstr ""
+
+msgid "ClusterAgents|An error occurred while loading your agents"
+msgstr ""
+
+msgid "ClusterAgents|An error occurred while retrieving agent activity. Reload the page to try again."
+msgstr ""
+
+msgid "ClusterAgents|An unknown error occurred. Please try again."
+msgstr ""
+
+msgid "ClusterAgents|Are you sure you want to delete this agent? You cannot undo this."
+msgstr ""
+
+msgid "ClusterAgents|Are you sure you want to revoke this token? You cannot undo this action."
+msgstr ""
+
+msgid "ClusterAgents|CI/CD workflow with restricted access"
+msgstr ""
+
+msgid "ClusterAgents|Certificate"
+msgstr ""
+
+msgid "ClusterAgents|Configuration"
+msgstr ""
+
+msgid "ClusterAgents|Connect a Kubernetes cluster"
+msgstr ""
+
+msgid "ClusterAgents|Connect a cluster"
+msgstr ""
+
+msgid "ClusterAgents|Connect a cluster (agent)"
+msgstr ""
+
+msgid "ClusterAgents|Connect a cluster (certificate - deprecated)"
+msgstr ""
+
+msgid "ClusterAgents|Connect a cluster (deprecated)"
+msgstr ""
+
+msgid "ClusterAgents|Connected"
+msgstr ""
+
+msgid "ClusterAgents|Connection status"
+msgstr ""
+
+msgid "ClusterAgents|Copy command"
+msgstr ""
+
+msgid "ClusterAgents|Copy token"
+msgstr ""
+
+msgid "ClusterAgents|Create a cluster"
+msgstr ""
+
+msgid "ClusterAgents|Create agent access token"
+msgstr ""
+
+msgid "ClusterAgents|Create agent: %{searchTerm}"
+msgstr ""
+
+msgid "ClusterAgents|Create token"
+msgstr ""
+
+msgid "ClusterAgents|Created by"
+msgstr ""
+
+msgid "ClusterAgents|Created by %{name} %{time}"
+msgstr ""
+
+msgid "ClusterAgents|Date created"
+msgstr ""
+
+msgid "ClusterAgents|Default configuration"
+msgstr ""
+
+msgid "ClusterAgents|Delete"
+msgstr ""
+
+msgid "ClusterAgents|Delete agent"
+msgstr ""
+
+msgid "ClusterAgents|Deprecated"
+msgstr ""
+
+msgid "ClusterAgents|Description"
+msgstr ""
+
+msgid "ClusterAgents|Event occurred"
+msgstr ""
+
+msgid "ClusterAgents|External project"
+msgstr ""
+
+msgid "ClusterAgents|Failed to create a token"
+msgstr ""
+
+msgid "ClusterAgents|Failed to register an agent"
+msgstr ""
+
+msgid "ClusterAgents|From a terminal, connect to your cluster and run this command. The token is included in the command."
+msgstr ""
+
+msgid "ClusterAgents|GitLab agent"
+msgstr ""
+
+msgid "ClusterAgents|GitLab agent for Kubernetes"
+msgstr ""
+
+msgid "ClusterAgents|Give feedback"
+msgstr ""
+
+msgid "ClusterAgents|How do I register an agent?"
+msgstr ""
+
+msgid "ClusterAgents|How to update an agent?"
+msgstr ""
+
+msgid "ClusterAgents|Install using Helm (recommended)"
+msgstr ""
+
+msgid "ClusterAgents|Integration Status"
+msgstr ""
+
+msgid "ClusterAgents|Last connected %{timeAgo}."
+msgstr ""
+
+msgid "ClusterAgents|Last contact"
+msgstr ""
+
+msgid "ClusterAgents|Learn how to troubleshoot"
+msgstr ""
+
+msgid "ClusterAgents|Make sure you are using a valid token."
+msgstr ""
+
+msgid "ClusterAgents|Name"
+msgstr ""
+
+msgid "ClusterAgents|Never"
+msgstr ""
+
+msgid "ClusterAgents|Never connected"
+msgstr ""
+
+msgid "ClusterAgents|No activity occurred in the past day"
+msgid_plural "ClusterAgents|No activity occurred in the past %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ClusterAgents|No agent access token"
+msgstr ""
+
+msgid "ClusterAgents|No agents"
+msgstr ""
+
+msgid "ClusterAgents|No clusters connected through cluster certificates"
+msgstr ""
+
+msgid "ClusterAgents|Not connected"
+msgstr ""
+
+msgid "ClusterAgents|Premium"
+msgstr ""
+
+msgid "ClusterAgents|Recommended"
+msgstr ""
+
+msgid "ClusterAgents|Register"
+msgstr ""
+
+msgid "ClusterAgents|Registering agent"
+msgstr ""
+
+msgid "ClusterAgents|Requires a Maintainer or greater role to delete agents"
+msgstr ""
+
+msgid "ClusterAgents|Requires a Maintainer or greater role to perform these actions"
+msgstr ""
+
+msgid "ClusterAgents|Requires a Maintainer or greater role to perform this action"
+msgstr ""
+
+msgid "ClusterAgents|Revoke access token?"
+msgstr ""
+
+msgid "ClusterAgents|Revoke token"
+msgstr ""
+
+msgid "ClusterAgents|Security"
+msgstr ""
+
+msgid "ClusterAgents|See agent activity updates, like tokens created or revoked and clusters connected or not connected."
+msgstr ""
+
+msgid "ClusterAgents|Select an agent or enter a name to create new"
+msgstr ""
+
+msgid "ClusterAgents|Tell us what you think"
+msgstr ""
+
+msgid "ClusterAgents|The GitLab agent provides an increased level of security when connecting Kubernetes clusters to GitLab. %{linkStart}Learn more about the GitLab agent.%{linkEnd}"
+msgstr ""
+
+msgid "ClusterAgents|The agent has not been connected in a long time. There might be a connectivity issue. Last contact was %{timeAgo}."
+msgstr ""
+
+msgid "ClusterAgents|The agent uses the token to connect with GitLab."
+msgstr ""
+
+msgid "ClusterAgents|The agent version do not match each other across your cluster's pods. This can happen when a new agent version was just deployed and Kubernetes is shutting down the old pods."
+msgstr ""
+
+msgid "ClusterAgents|This agent has no tokens"
+msgstr ""
+
+msgid "ClusterAgents|To delete the agent, type %{name} to confirm:"
+msgstr ""
+
+msgid "ClusterAgents|To manage more agents, %{linkStart}use Terraform%{linkEnd}."
+msgstr ""
+
+msgid "ClusterAgents|To revoke the token, type %{name} to confirm:"
+msgstr ""
+
+msgid "ClusterAgents|Token created by %{userName}"
+msgstr ""
+
+msgid "ClusterAgents|Token revoked by %{userName}"
+msgstr ""
+
+msgid "ClusterAgents|Unknown user"
+msgstr ""
+
+msgid "ClusterAgents|Use a Helm version compatible with your Kubernetes version (see %{linkStart}Helm version support policy%{linkEnd})."
+msgstr ""
+
+msgid "ClusterAgents|Valid access token"
+msgstr ""
+
+msgid "ClusterAgents|View all %{number} agents"
+msgstr ""
+
+msgid "ClusterAgents|View all %{number} clusters"
+msgstr ""
+
+msgid "ClusterAgents|We only support 100 agents on the UI."
+msgstr ""
+
+msgid "ClusterAgents|We would love to learn more about your experience with the GitLab Agent."
+msgstr ""
+
+msgid "ClusterAgents|What is agent activity?"
+msgstr ""
+
+msgid "ClusterAgents|What is default configuration?"
+msgstr ""
+
+msgid "ClusterAgents|You cannot see this token again after you close this window."
+msgstr ""
+
+msgid "ClusterAgents|You will need to create a token to connect to your agent"
+msgstr ""
+
+msgid "ClusterAgents|Your agent version is out of sync with your GitLab version (v%{version}), which might cause compatibility problems. Update the agent installed on your cluster to the most recent version."
+msgstr ""
+
+msgid "ClusterAgents|Your instance doesn't have the %{linkStart}GitLab Agent Server (KAS)%{linkEnd} set up. Ask a GitLab Administrator to install it."
+msgstr ""
+
+msgid "ClusterAgents|shared"
+msgstr ""
+
+msgid "ClusterAgent|An agent can have only two active tokens at a time"
+msgstr ""
+
+msgid "ClusterAgent|User has insufficient permissions to create a token for this project"
+msgstr ""
+
+msgid "ClusterAgent|User has insufficient permissions to revoke the token for this project"
+msgstr ""
+
+msgid "ClusterAgent|You have insufficient permissions to create a cluster agent for this project"
+msgstr ""
+
+msgid "ClusterAgent|You have insufficient permissions to delete this cluster agent"
+msgstr ""
+
+msgid "ClusterIntegration|%{linkStart}More information%{linkEnd}"
+msgstr ""
+
+msgid "ClusterIntegration|A cluster management project can be used to run deployment jobs with Kubernetes %{code_open}cluster-admin%{code_close} privileges."
+msgstr ""
+
+msgid "ClusterIntegration|A service token scoped to %{code}kube-system%{end_code} with %{code}cluster-admin%{end_code} privileges."
+msgstr ""
+
+msgid "ClusterIntegration|API URL"
+msgstr ""
+
+msgid "ClusterIntegration|API URL should be a valid http/https url."
+msgstr ""
+
+msgid "ClusterIntegration|Add Kubernetes cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Adding a Kubernetes cluster to your group will automatically share the cluster across all your projects. Use review apps, deploy your applications, and easily run your pipelines for all projects using the same cluster."
+msgstr ""
+
+msgid "ClusterIntegration|Adding a Kubernetes cluster will automatically share the cluster across all projects. Use review apps, deploy your applications, and easily run your pipelines for all projects using the same cluster."
+msgstr ""
+
+msgid "ClusterIntegration|Adding an integration to your group will share the cluster across all your projects."
+msgstr ""
+
+msgid "ClusterIntegration|Adding an integration will share the cluster across all projects."
+msgstr ""
+
+msgid "ClusterIntegration|Advanced options on this Kubernetes cluster’s integration"
+msgstr ""
+
+msgid "ClusterIntegration|Allow GitLab to manage namespaces and service accounts for this cluster."
+msgstr ""
+
+msgid "ClusterIntegration|Amazon EKS"
+msgstr ""
+
+msgid "ClusterIntegration|An unknown error occurred while attempting to connect to Kubernetes."
+msgstr ""
+
+msgid "ClusterIntegration|Any project namespaces"
+msgstr ""
+
+msgid "ClusterIntegration|Apply for credit"
+msgstr ""
+
+msgid "ClusterIntegration|Authentication Error"
+msgstr ""
+
+msgid "ClusterIntegration|Base domain"
+msgstr ""
+
+msgid "ClusterIntegration|CA Certificate"
+msgstr ""
+
+msgid "ClusterIntegration|Certificate Authority bundle (PEM format)"
+msgstr ""
+
+msgid "ClusterIntegration|Check your CA certificate"
+msgstr ""
+
+msgid "ClusterIntegration|Check your cluster status"
+msgstr ""
+
+msgid "ClusterIntegration|Check your token"
+msgstr ""
+
+msgid "ClusterIntegration|Choose which of your environments will use this cluster."
+msgstr ""
+
+msgid "ClusterIntegration|Civo Kubernetes"
+msgstr ""
+
+msgid "ClusterIntegration|Clear cluster cache"
+msgstr ""
+
+msgid "ClusterIntegration|Clear the local cache of namespace and service accounts."
+msgstr ""
+
+msgid "ClusterIntegration|Cluster management project"
+msgstr ""
+
+msgid "ClusterIntegration|Cluster name is required."
+msgstr ""
+
+msgid "ClusterIntegration|Clusters are utilized by selecting the nearest ancestor with a matching environment scope. For example, project clusters will override group clusters. %{linkStart}More information%{linkEnd}"
+msgstr ""
+
+msgid "ClusterIntegration|Connect a Kubernetes cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Connect your cluster to GitLab through %{linkStart}cluster certificates%{linkEnd}."
+msgstr ""
+
+msgid "ClusterIntegration|Connection Error"
+msgstr ""
+
+msgid "ClusterIntegration|Copy API URL"
+msgstr ""
+
+msgid "ClusterIntegration|Copy CA Certificate"
+msgstr ""
+
+msgid "ClusterIntegration|Copy Kubernetes cluster name"
+msgstr ""
+
+msgid "ClusterIntegration|Create a Kubernetes cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Deploy each environment to its own namespace. Otherwise, environments within a project share a project-wide namespace. Note that anyone who can trigger a deployment of a namespace can read its secrets. If modified, existing environments will use their current namespaces until the cluster cache is cleared."
+msgstr ""
+
+msgid "ClusterIntegration|Did you know?"
+msgstr ""
+
+msgid "ClusterIntegration|Elastic Kubernetes Service"
+msgstr ""
+
+msgid "ClusterIntegration|Enable or disable GitLab's connection to your Kubernetes cluster."
+msgstr ""
+
+msgid "ClusterIntegration|Enable this setting if using role-based access control (RBAC)."
+msgstr ""
+
+msgid "ClusterIntegration|Enter details about your cluster. %{linkStart}How do I use a certificate to connect to my cluster?%{linkEnd}"
+msgstr ""
+
+msgid "ClusterIntegration|Enter new Service Token"
+msgstr ""
+
+msgid "ClusterIntegration|Enter your Kubernetes cluster certificate details"
+msgstr ""
+
+msgid "ClusterIntegration|Environment scope"
+msgstr ""
+
+msgid "ClusterIntegration|Environment scope is required."
+msgstr ""
+
+msgid "ClusterIntegration|Every new Google Cloud Platform (GCP) account receives $300 in credit upon %{sign_up_link}. In partnership with Google, GitLab is able to offer an additional $200 for both new and existing GCP accounts to get started with GitLab's Google Kubernetes Engine Integration."
+msgstr ""
+
+msgid "ClusterIntegration|GitLab Integration"
+msgstr ""
+
+msgid "ClusterIntegration|GitLab failed to authenticate."
+msgstr ""
+
+msgid "ClusterIntegration|GitLab failed to connect to the cluster."
+msgstr ""
+
+msgid "ClusterIntegration|GitLab-managed cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Google GKE"
+msgstr ""
+
+msgid "ClusterIntegration|Google Kubernetes Engine"
+msgstr ""
+
+msgid "ClusterIntegration|Group cluster"
+msgstr ""
+
+msgid "ClusterIntegration|HTTP Error"
+msgstr ""
+
+msgid "ClusterIntegration|If you do not wish to delete all associated GitLab resources, you can simply remove the integration."
+msgstr ""
+
+msgid "ClusterIntegration|Instance cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Integration disabled"
+msgstr ""
+
+msgid "ClusterIntegration|Integration enabled"
+msgstr ""
+
+msgid "ClusterIntegration|Kubernetes cluster is being created..."
+msgstr ""
+
+msgid "ClusterIntegration|Kubernetes cluster name"
+msgstr ""
+
+msgid "ClusterIntegration|Kubernetes cluster was successfully created."
+msgstr ""
+
+msgid "ClusterIntegration|Learn more about Kubernetes."
+msgstr ""
+
+msgid "ClusterIntegration|Learn more about group Kubernetes clusters"
+msgstr ""
+
+msgid "ClusterIntegration|Learn more about instance Kubernetes clusters"
+msgstr ""
+
+msgid "ClusterIntegration|Make sure your API endpoint is correct"
+msgstr ""
+
+msgid "ClusterIntegration|Manage your Kubernetes cluster by visiting %{provider_link}"
+msgstr ""
+
+msgid "ClusterIntegration|Namespace per environment"
+msgstr ""
+
+msgid "ClusterIntegration|Node calculations use the Kubernetes Metrics API. Make sure your cluster has metrics installed"
+msgstr ""
+
+msgid "ClusterIntegration|Project cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Project namespace (optional, unique)"
+msgstr ""
+
+msgid "ClusterIntegration|Project namespace prefix (optional, unique)"
+msgstr ""
+
+msgid "ClusterIntegration|Provider details"
+msgstr ""
+
+msgid "ClusterIntegration|RBAC-enabled cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Remove Kubernetes cluster integration"
+msgstr ""
+
+msgid "ClusterIntegration|Remove integration"
+msgstr ""
+
+msgid "ClusterIntegration|Remove integration and resources"
+msgstr ""
+
+msgid "ClusterIntegration|Remove integration and resources?"
+msgstr ""
+
+msgid "ClusterIntegration|Remove integration?"
+msgstr ""
+
+msgid "ClusterIntegration|Remove this Kubernetes cluster's configuration from this project. This will not delete your actual Kubernetes cluster."
+msgstr ""
+
+msgid "ClusterIntegration|Save changes"
+msgstr ""
+
+msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Service Token"
+msgstr ""
+
+msgid "ClusterIntegration|Service token is required."
+msgstr ""
+
+msgid "ClusterIntegration|Set a prefix for your namespaces. If not set, defaults to your project path. If modified, existing environments will use their current namespaces until the cluster cache is cleared."
+msgstr ""
+
+msgid "ClusterIntegration|Something went wrong on our end."
+msgstr ""
+
+msgid "ClusterIntegration|Something went wrong while creating your Kubernetes cluster"
+msgstr ""
+
+msgid "ClusterIntegration|Specifying a domain will allow you to use Auto Review Apps and Auto Deploy stages for %{linkStart}Auto DevOps.%{linkEnd} The domain should have a wildcard DNS configured matching the domain. "
+msgstr ""
+
+msgid "ClusterIntegration|The Kubernetes certificate used to authenticate to the cluster."
+msgstr ""
+
+msgid "ClusterIntegration|The URL used to access the Kubernetes API."
+msgstr ""
+
+msgid "ClusterIntegration|The certificate-based Kubernetes integration is deprecated and will be removed in the future. You should %{linkStart}migrate to the GitLab agent for Kubernetes%{linkEnd}. For more information, see the %{deprecationLinkStart}deprecation epic%{deprecationLinkEnd}, or contact GitLab support."
+msgstr ""
+
+msgid "ClusterIntegration|The certificate-based Kubernetes integration is deprecated and will be removed in the future. You should %{linkStart}migrate to the GitLab agent for Kubernetes%{linkEnd}. For more information, see the %{deprecationLinkStart}deprecation epic%{deprecationLinkEnd}."
+msgstr ""
+
+msgid "ClusterIntegration|The certificate-based method to connect clusters to GitLab was %{linkStart}deprecated%{linkEnd} in GitLab 14.5."
+msgstr ""
+
+msgid "ClusterIntegration|The namespace associated with your project. This will be used for deploy boards, and Web terminals."
+msgstr ""
+
+msgid "ClusterIntegration|There was a problem authenticating with your cluster. Please ensure your CA Certificate and Token are valid."
+msgstr ""
+
+msgid "ClusterIntegration|There was an HTTP error when connecting to your cluster."
+msgstr ""
+
+msgid "ClusterIntegration|This is necessary if your integration has become out of sync. The cache is repopulated during the next CI job that requires namespace and service accounts."
+msgstr ""
+
+msgid "ClusterIntegration|This is necessary to clear existing environment-namespace associations from clusters previously managed by GitLab."
+msgstr ""
+
+msgid "ClusterIntegration|This option will allow you to install applications on RBAC clusters."
+msgstr ""
+
+msgid "ClusterIntegration|This process is %{issue_link_start}deprecated%{issue_link_end}. Use the %{docs_link_start}the GitLab agent for Kubernetes%{docs_link_end} instead."
+msgstr ""
+
+msgid "ClusterIntegration|This will permanently delete the following resources:"
+msgstr ""
+
+msgid "ClusterIntegration|To remove your integration and resources, type %{clusterName} to confirm:"
+msgstr ""
+
+msgid "ClusterIntegration|To remove your integration, type %{clusterName} to confirm:"
+msgstr ""
+
+msgid "ClusterIntegration|Troubleshooting tips:"
+msgstr ""
+
+msgid "ClusterIntegration|Unable to Authenticate"
+msgstr ""
+
+msgid "ClusterIntegration|Unable to Connect"
+msgstr ""
+
+msgid "ClusterIntegration|Unknown Error"
+msgstr ""
+
+msgid "ClusterIntegration|Use GitLab to deploy to your cluster, run jobs, use review apps, and more."
+msgstr ""
+
+msgid "ClusterIntegration|Use the %{linkStart}GitLab agent%{linkEnd} to safely connect your Kubernetes clusters to GitLab. You can deploy your applications, run your pipelines, use Review Apps, and much more."
+msgstr ""
+
+msgid "ClusterIntegration|Using AutoDevOps with multiple clusters? %{help_link_start}Read this first.%{help_link_end}"
+msgstr ""
+
+msgid "ClusterIntegration|Where do you want to create a cluster?"
+msgstr ""
+
+msgid "ClusterIntegration|You are about to remove your cluster integration and all GitLab-created resources associated with this cluster."
+msgstr ""
+
+msgid "ClusterIntegration|You are about to remove your cluster integration."
+msgstr ""
+
+msgid "ClusterIntegration|Your cluster API is unreachable. Please ensure your API URL is correct."
+msgstr ""
+
+msgid "ClusterIntegration|sign up"
+msgstr ""
+
+msgid "Clusters|An error occurred while loading clusters"
+msgstr ""
+
+msgid "Code"
+msgstr ""
+
+msgid "Code Coverage: %{coveragePercentage}%{percentSymbol}"
+msgstr ""
+
+msgid "Code Coverage| Empty code coverage data"
+msgstr ""
+
+msgid "Code Coverage|Couldn't fetch the code coverage data"
+msgstr ""
+
+msgid "Code Owner"
+msgstr ""
+
+msgid "Code Owners"
+msgstr ""
+
+msgid "Code Quality"
+msgstr ""
+
+msgid "Code Quality scans found %{degradation} and %{improvement}."
+msgstr ""
+
+msgid "Code Quality scans found %{findings}."
+msgstr ""
+
+msgid "Code Review"
+msgstr ""
+
+msgid "Code Review Analytics displays a table of open merge requests considered to be in code review. There are currently no merge requests in review for this project and/or filters."
+msgstr ""
+
+msgid "Code Suggestions add-on status"
+msgstr ""
+
+msgid "Code block"
+msgstr ""
+
+msgid "Code coverage statistics for %{ref} %{start_date} - %{end_date}"
+msgstr ""
+
+msgid "Code owner approval is required"
+msgstr ""
+
+msgid "Code review"
+msgstr ""
+
+msgid "Code review analytics"
+msgstr ""
+
+msgid "Code snippet"
+msgstr ""
+
+msgid "Code snippet copied. Insert it in the correct location in the YAML file."
+msgstr ""
+
+msgid "CodeIntelligence|This is the definition"
+msgstr ""
+
+msgid "CodeNavigation|No references found"
+msgstr ""
+
+msgid "CodeOwners|An error occurred while loading code owners."
+msgstr ""
+
+msgid "CodeOwners|Assign users and groups as approvers for specific file changes."
+msgstr ""
+
+msgid "CodeOwners|Code owners"
+msgstr ""
+
+msgid "CodeOwners|Code owners are users and groups that can approve specific file changes."
+msgstr ""
+
+msgid "CodeOwners|Hide all"
+msgstr ""
+
+msgid "CodeOwners|Learn more."
+msgstr ""
+
+msgid "CodeOwners|Show all"
+msgstr ""
+
+msgid "CodeOwner|Pattern"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
+msgstr ""
+
+msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgstr ""
+
+msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
+msgstr ""
+
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
+msgstr ""
+
+msgid "CodeSuggestions|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestions|Code Suggestions add-on"
+msgstr ""
+
+msgid "CodeSuggestions|Duo Pro"
+msgstr ""
+
+msgid "CodeSuggestions|Duo Pro add-on"
+msgstr ""
+
+msgid "CodeSuggestions|Duo Pro seats used"
+msgstr ""
+
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
+msgstr ""
+
+msgid "CodeSuggestions|Introducing Duo Pro"
+msgstr ""
+
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
+msgstr ""
+
+msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestions|Subject to the %{terms_link_start}Testing Terms of Use%{link_end}. Code Suggestions uses third-party AI services."
+msgstr ""
+
+msgid "CodeownersValidation|An error occurred while loading the validation errors. Please try again later."
+msgstr ""
+
+msgid "CodeownersValidation|Contains %d syntax error."
+msgid_plural "CodeownersValidation|Contains %d syntax errors."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "CodeownersValidation|Entries with spaces"
+msgstr ""
+
+msgid "CodeownersValidation|Hide errors"
+msgstr ""
+
+msgid "CodeownersValidation|How are errors handled?"
+msgstr ""
+
+msgid "CodeownersValidation|Inaccessible owners"
+msgstr ""
+
+msgid "CodeownersValidation|Less than 1 required approvals"
+msgstr ""
+
+msgid "CodeownersValidation|Line"
+msgstr ""
+
+msgid "CodeownersValidation|Missing section name"
+msgstr ""
+
+msgid "CodeownersValidation|Show errors"
+msgstr ""
+
+msgid "CodeownersValidation|Syntax is valid."
+msgstr ""
+
+msgid "CodeownersValidation|Unparsable sections"
+msgstr ""
+
+msgid "CodeownersValidation|Zero owners"
+msgstr ""
+
+msgid "Cohorts|Inactive users"
+msgstr ""
+
+msgid "Cohorts|Month %{month_index}"
+msgstr ""
+
+msgid "Cohorts|New users"
+msgstr ""
+
+msgid "Cohorts|Registration month"
+msgstr ""
+
+msgid "Cohorts|Returning users"
+msgstr ""
+
+msgid "Cohorts|User cohorts are shown for the last %{months_included} months. Only users with activity are counted in the 'New users' column; inactive users are counted separately."
+msgstr ""
+
+msgid "Collapse"
+msgstr ""
+
+msgid "Collapse AI-generated summary"
+msgstr ""
+
+msgid "Collapse all threads"
+msgstr ""
+
+msgid "Collapse eligible approvers"
+msgstr ""
+
+msgid "Collapse issues"
+msgstr ""
+
+msgid "Collapse jobs"
+msgstr ""
+
+msgid "Collapse merge checks"
+msgstr ""
+
+msgid "Collapse merge details"
+msgstr ""
+
+msgid "Collapse milestones"
+msgstr ""
+
+msgid "Collapse replies"
+msgstr ""
+
+msgid "Collapse settings section"
+msgstr ""
+
+msgid "Collapse sidebar"
+msgstr ""
+
+msgid "Collapses this file (only for you) until it’s changed again."
+msgstr ""
+
+msgid "Collector hostname"
+msgstr ""
+
+msgid "Color"
+msgstr ""
+
+msgid "ColorWidget|An error occurred while updating color."
+msgstr ""
+
+msgid "ColorWidget|Assign epic color"
+msgstr ""
+
+msgid "ColorWidget|Color"
+msgstr ""
+
+msgid "ColorWidget|Error fetching epic color."
+msgstr ""
+
+msgid "Colorize messages"
+msgstr ""
+
+msgid "ComboSearch is not defined"
+msgstr ""
+
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
+msgid "Comma-separated list of email addresses."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command id '%{command}' must not start with '%{prefix}'"
+msgstr ""
+
+msgid "Command line instructions"
+msgstr ""
+
+msgid "CommandPalette|Global Commands"
+msgstr ""
+
+msgid "CommandPalette|Pages"
+msgstr ""
+
+msgid "CommandPalette|Project files"
+msgstr ""
+
+msgid "CommandPalette|Type %{commandHandle} for command, %{userHandle} for user, %{projectHandle} for project, %{pathHandle} for project file, or perform generic search..."
+msgstr ""
+
+msgid "CommandPalette|command"
+msgstr ""
+
+msgid "CommandPalette|go to project file"
+msgstr ""
+
+msgid "CommandPalette|issue (enter at least 3 chars)"
+msgstr ""
+
+msgid "CommandPalette|project (enter at least 3 chars)"
+msgstr ""
+
+msgid "CommandPalette|user (enter at least 3 chars)"
+msgstr ""
+
+msgid "Commands applied"
+msgstr ""
+
+msgid "Commands did not apply"
+msgstr ""
+
+msgid "Comment"
+msgstr ""
+
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
+msgid "Comment '%{label}' position"
+msgstr ""
+
+msgid "Comment Templates"
+msgstr ""
+
+msgid "Comment added to the timeline."
+msgstr ""
+
+msgid "Comment form position"
+msgstr ""
+
+msgid "Comment is being updated"
+msgstr ""
+
+msgid "Comment on lines %{startLine} to %{endLine}"
+msgstr ""
+
+msgid "Comment on this file"
+msgstr ""
+
+msgid "Comment template actions"
+msgstr ""
+
+msgid "Comment templates"
+msgstr ""
+
+msgid "Comment templates can be used when creating comments inside issues, merge requests, and epics."
+msgstr ""
+
+msgid "Comment type"
+msgstr ""
+
+msgid "Comment/Reply (quoting selected text)"
+msgstr ""
+
+msgid "Commenting on files that are only moved or renamed is not supported"
+msgstr ""
+
+msgid "Commenting on files that replace or are replaced by symbolic links is not supported"
+msgstr ""
+
+msgid "Commenting on symbolic links that replace or are replaced by files is not supported"
+msgstr ""
+
+msgid "Commenting on this line is not supported"
+msgstr ""
+
+msgid "Comments"
+msgstr ""
+
+msgid "Commit"
+msgid_plural "Commits"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Commit %{commit_id}"
+msgstr ""
+
+msgid "Commit (when editing commit message)"
+msgstr ""
+
+msgid "Commit Message"
+msgstr ""
+
+msgid "Commit SHA"
+msgstr ""
+
+msgid "Commit changes"
+msgstr ""
+
+msgid "Commit deleted"
+msgstr ""
+
+msgid "Commit message"
+msgstr ""
+
+msgid "Commit message generated by AI"
+msgstr ""
+
+msgid "Commit statistics for %{ref} %{start_time} - %{end_time}"
+msgstr ""
+
+msgid "CommitBoxTitle|Commit"
+msgstr ""
+
+msgid "CommitMessage|Add %{file_name}"
+msgstr ""
+
+msgid "CommitSignature|This commit was signed with a key that was revoked."
+msgstr ""
+
+msgid "CommitSignature|Unverified"
+msgstr ""
+
+msgid "CommitSignature|Unverified signature"
+msgstr ""
+
+msgid "CommitWidget|authored"
+msgstr ""
+
+msgid "Commits"
+msgstr ""
+
+msgid "Commits & branches"
+msgstr ""
+
+msgid "Commits feed"
+msgstr ""
+
+msgid "Commits per day hour (UTC)"
+msgstr ""
+
+msgid "Commits per day of month"
+msgstr ""
+
+msgid "Commits per weekday"
+msgstr ""
+
+msgid "Commits to"
+msgstr ""
+
+msgid "Commits you select appear here. Go to the first tab and select commits to add to this merge request."
+msgstr ""
+
+msgid "Commits:"
+msgstr ""
+
+msgid "Commits|An error occurred while fetching merge requests data."
+msgstr ""
+
+msgid "Commits|No related merge requests found"
+msgstr ""
+
+msgid "Committed by"
+msgstr ""
+
+msgid "Committed-after"
+msgstr ""
+
+msgid "Committed-before"
+msgstr ""
+
+msgid "Commit|Branches"
+msgstr ""
+
+msgid "Commit|Tags"
+msgstr ""
+
+msgid "Commit|There was an error fetching the commit references. Please try again later."
+msgstr ""
+
+msgid "Commit|containing commit"
+msgstr ""
+
+msgid "Community forum"
+msgstr ""
+
+msgid "Company"
+msgstr ""
+
+msgid "Company Name"
+msgstr ""
+
+msgid "Compare"
+msgstr ""
+
+msgid "Compare %{oldCommitId}...%{newCommitId}"
+msgstr ""
+
+msgid "Compare Branches"
+msgstr ""
+
+msgid "Compare GitLab editions"
+msgstr ""
+
+msgid "Compare GitLab plans"
+msgstr ""
+
+msgid "Compare branches and continue"
+msgstr ""
+
+msgid "Compare changes"
+msgstr ""
+
+msgid "Compare changes with the last commit"
+msgstr ""
+
+msgid "Compare changes with the merge request target branch"
+msgstr ""
+
+msgid "Compare revisions"
+msgstr ""
+
+msgid "Compare submodule commit revisions"
+msgstr ""
+
+msgid "Compare with previous version"
+msgstr ""
+
+msgid "CompareRevisions|%{source_branch} and %{target_branch} are the same."
+msgstr ""
+
+msgid "CompareRevisions|Branches"
+msgstr ""
+
+msgid "CompareRevisions|Changes are shown as if the %{boldStart}source%{boldEnd} revision was being merged into the %{boldStart}target%{boldEnd} revision. %{linkStart}Learn more about comparing revisions.%{linkEnd}"
+msgstr ""
+
+msgid "CompareRevisions|Commits on Source (%{commits_amount})"
+msgstr ""
+
+msgid "CompareRevisions|Compare"
+msgstr ""
+
+msgid "CompareRevisions|Compare revisions"
+msgstr ""
+
+msgid "CompareRevisions|Create merge request"
+msgstr ""
+
+msgid "CompareRevisions|Filter by Git revision"
+msgstr ""
+
+msgid "CompareRevisions|Include changes to target since source was created"
+msgstr ""
+
+msgid "CompareRevisions|Only incoming changes from source"
+msgstr ""
+
+msgid "CompareRevisions|Select Git revision"
+msgstr ""
+
+msgid "CompareRevisions|Select branch/tag"
+msgstr ""
+
+msgid "CompareRevisions|Select target project"
+msgstr ""
+
+msgid "CompareRevisions|Show changes"
+msgstr ""
+
+msgid "CompareRevisions|Swap"
+msgstr ""
+
+msgid "CompareRevisions|Swap revisions"
+msgstr ""
+
+msgid "CompareRevisions|Tags"
+msgstr ""
+
+msgid "CompareRevisions|There isn't anything to compare."
+msgstr ""
+
+msgid "CompareRevisions|There was an error while loading the branch/tag list. Please try again."
+msgstr ""
+
+msgid "CompareRevisions|There was an error while searching the branch/tag list. Please try again."
+msgstr ""
+
+msgid "CompareRevisions|View open merge request"
+msgstr ""
+
+msgid "Complete"
+msgstr ""
+
+msgid "Complete verification to sign up."
+msgstr ""
+
+msgid "Complete with errors"
+msgstr ""
+
+msgid "Completed"
+msgstr ""
+
+msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
+msgstr ""
+
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
+msgstr ""
+
+msgid "Compliance Center|Frameworks"
+msgstr ""
+
+msgid "Compliance Center|Standards Adherence"
+msgstr ""
+
+msgid "Compliance Center|Violations"
+msgstr ""
+
+msgid "Compliance center"
+msgstr ""
+
+msgid "Compliance framework"
+msgstr ""
+
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
+msgid "ComplianceFrameworksReport|Associated Projects"
+msgstr ""
+
+msgid "ComplianceFrameworksReport|Default"
+msgstr ""
+
+msgid "ComplianceFrameworksReport|Description"
+msgstr ""
+
+msgid "ComplianceFrameworksReport|Edit framework"
+msgstr ""
+
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
+msgid "ComplianceFrameworks|Active compliance frameworks"
+msgstr ""
+
+msgid "ComplianceFrameworks|Add framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Background color"
+msgstr ""
+
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
+msgid "ComplianceFrameworks|Cancel"
+msgstr ""
+
+msgid "ComplianceFrameworks|Compliance framework created"
+msgstr ""
+
+msgid "ComplianceFrameworks|Compliance framework deleted successfully"
+msgstr ""
+
+msgid "ComplianceFrameworks|Compliance pipeline configuration (optional)"
+msgstr ""
+
+msgid "ComplianceFrameworks|Configuration not found"
+msgstr ""
+
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Default compliance framework successfully updated"
+msgstr ""
+
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
+msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
+msgstr ""
+
+msgid "ComplianceFrameworks|Delete framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Description"
+msgstr ""
+
+msgid "ComplianceFrameworks|Description is required"
+msgstr ""
+
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Edit compliance framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Edit framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Error deleting the compliance framework. Please try again"
+msgstr ""
+
+msgid "ComplianceFrameworks|Error fetching compliance frameworks data. Please refresh the page"
+msgstr ""
+
+msgid "ComplianceFrameworks|Error fetching compliance frameworks data. Please refresh the page or try a different framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Error setting the default compliance frameworks"
+msgstr ""
+
+msgid "ComplianceFrameworks|Frameworks that have been added will appear here, start by creating a new one above."
+msgstr ""
+
+msgid "ComplianceFrameworks|Invalid format"
+msgstr ""
+
+msgid "ComplianceFrameworks|Name"
+msgstr ""
+
+msgid "ComplianceFrameworks|Name is required"
+msgstr ""
+
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
+msgid "ComplianceFrameworks|New compliance framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
+msgstr ""
+
+msgid "ComplianceFrameworks|No framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Remove default"
+msgstr ""
+
+msgid "ComplianceFrameworks|Required format: %{codeStart}path/file.y[a]ml@group-name/project-name%{codeEnd}. %{linkStart}See some examples%{linkEnd}."
+msgstr ""
+
+msgid "ComplianceFrameworks|Requires Ultimate subscription"
+msgstr ""
+
+msgid "ComplianceFrameworks|Saved changes to compliance framework"
+msgstr ""
+
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
+msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
+msgstr ""
+
+msgid "ComplianceFrameworks|Set default"
+msgstr ""
+
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
+msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
+msgstr ""
+
+msgid "ComplianceFrameworks|You are about to permanently delete the compliance framework %{framework} from all projects which currently have it applied, which may remove other functionality. This cannot be undone."
+msgstr ""
+
+msgid "ComplianceFrameworks|Your Compliance Frameworks CSV export for the group \"%{group_name}\" has been attached to this email."
+msgstr ""
+
+msgid "ComplianceFrameworks|Your Compliance Frameworks CSV export for the group %{group_link} has been attached to this email."
+msgstr ""
+
+msgid "ComplianceFrameworks|default"
+msgstr ""
+
+msgid "ComplianceFramework|Add a framework to %{linkStart}%{groupName}%{linkEnd} and it will appear here."
+msgstr ""
+
+msgid "ComplianceFramework|Add framework in %{groupName}"
+msgstr ""
+
+msgid "ComplianceFramework|After a framework is added to %{linkStart}%{groupName}%{linkEnd}, it will appear here."
+msgstr ""
+
+msgid "ComplianceFramework|Edit compliance framework"
+msgstr ""
+
+msgid "ComplianceFramework|New compliance framework"
+msgstr ""
+
+msgid "ComplianceFramework|No compliance frameworks are set up yet"
+msgstr ""
+
+msgid "ComplianceFramework|No pipeline configuration found"
+msgstr ""
+
+msgid "ComplianceReport|Add framework"
+msgstr ""
+
+msgid "ComplianceReport|Apply framework to selected projects"
+msgstr ""
+
+msgid "ComplianceReport|Approved by author"
+msgstr ""
+
+msgid "ComplianceReport|Approved by committer"
+msgstr ""
+
+msgid "ComplianceReport|Choose one bulk action"
+msgstr ""
+
+msgid "ComplianceReport|Choose one framework"
+msgstr ""
+
+msgid "ComplianceReport|Compliance framework"
+msgstr ""
+
+msgid "ComplianceReport|Create a new framework"
+msgstr ""
+
+msgid "ComplianceReport|Do you want to refresh the filtered results to include your change?"
+msgstr ""
+
+msgid "ComplianceReport|Edit the framework"
+msgstr ""
+
+msgid "ComplianceReport|Framework successfully applied"
+msgstr ""
+
+msgid "ComplianceReport|Framework successfully removed"
+msgstr ""
+
+msgid "ComplianceReport|Full target branch name"
+msgstr ""
+
+msgid "ComplianceReport|Less than 2 approvers"
+msgstr ""
+
+msgid "ComplianceReport|No frameworks found"
+msgstr ""
+
+msgid "ComplianceReport|No projects found"
+msgstr ""
+
+msgid "ComplianceReport|No projects found that match filters"
+msgstr ""
+
+msgid "ComplianceReport|No violations found"
+msgstr ""
+
+msgid "ComplianceReport|No violations found. Change search options and try again"
+msgstr ""
+
+msgid "ComplianceReport|Remove framework from selected projects"
+msgstr ""
+
+msgid "ComplianceReport|Search target branch"
+msgstr ""
+
+msgid "ComplianceReport|Select at least one project to apply the bulk action"
+msgstr ""
+
+msgid "ComplianceReport|Unable to load the compliance framework projects report. Refresh the page and try again."
+msgstr ""
+
+msgid "ComplianceReport|Unable to load the compliance framework report. Refresh the page and try again."
+msgstr ""
+
+msgid "ComplianceReport|Unable to load the compliance violations report. Refresh the page and try again."
+msgstr ""
+
+msgid "ComplianceReport|Update filtered results?"
+msgstr ""
+
+msgid "ComplianceReport|Update result"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|A rule is configured to prevent merge requests approved by committers."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|A rule is configured to require two approvals."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|At least two approvals"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Check"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Failure reason"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Have a valid rule that prevents author-approved merge requests from being merged"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Have a valid rule that prevents merge requests with less than two approvals from being merged"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Have a valid rule that prevents users from approving merge requests where they’ve added commits"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|How to fix"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Last Scanned"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Merge request approval rules"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|More Information"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|No projects with standards adherence checks found"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|No rule is configured to prevent author approved merge requests."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|No rule is configured to prevent merge requests approved by committers."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|No rule is configured to require two approvals."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Prevent authors as approvers"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Prevent committers as approvers"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Project"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Requirement"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Standard"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Status"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Success reason"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|The following features help satisfy this requirement."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Unable to load the standards adherence report. Refresh the page and try again."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Update approval settings in the project's merge request settings to satisfy this requirement."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|View details"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|View details (fix available)"
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
+msgstr ""
+
+msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations|Your Compliance Violations CSV export for the group %{group_link} has been attached to this email."
+msgstr ""
+
+msgid "Component"
+msgstr ""
+
+msgid "Component name '%{component}' for command id '%{command}' must not start with '%{prefix}'"
+msgstr ""
+
+msgid "Component name '%{component}' must not start with '%{prefix}'"
+msgstr ""
+
+msgid "Component type '%{type}' is not yet supported"
+msgstr ""
+
+msgid "Components must have a 'name'"
+msgstr ""
+
+msgid "Compute minutes"
+msgstr ""
+
+msgid "Compute quota"
+msgstr ""
+
+msgid "Compute quota:"
+msgstr ""
+
+msgid "Confidential"
+msgstr ""
+
+msgid "Confidential issue"
+msgstr ""
+
+msgid "Confidential note"
+msgstr ""
+
+msgid "Confidentiality"
+msgstr ""
+
+msgid "Configuration help"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Configure %{italic_start}What's new%{italic_end} drawer and content."
+msgstr ""
+
+msgid "Configure %{repository_checks_link_start}repository checks%{link_end} and %{housekeeping_link_start}housekeeping%{link_end} on repositories."
+msgstr ""
+
+msgid "Configure %{snowplow_link_start}Snowplow%{snowplow_link_end} to track events. %{help_link_start}Learn more.%{help_link_end}"
+msgstr ""
+
+msgid "Configure CAPTCHAs, IP address limits, and other anti-spam measures."
+msgstr ""
+
+msgid "Configure Container Scanning in `.gitlab-ci.yml` using the GitLab managed template. You can [add variable overrides](https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings) to customize Container Scanning settings."
+msgstr ""
+
+msgid "Configure Container Scanning in `.gitlab-ci.yml`, creating this file if it does not already exist"
+msgstr ""
+
+msgid "Configure Dependency Scanning in `.gitlab-ci.yml` using the GitLab managed template. You can [add variable overrides](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings) to customize Dependency Scanning settings."
+msgstr ""
+
+msgid "Configure Dependency Scanning in `.gitlab-ci.yml`, creating this file if it does not already exist"
+msgstr ""
+
+msgid "Configure Error Tracking"
+msgstr ""
+
+msgid "Configure GitLab"
+msgstr ""
+
+msgid "Configure GitLab runners to start using the Web Terminal. %{helpStart}Learn more.%{helpEnd}"
+msgstr ""
+
+msgid "Configure Gitaly timeouts."
+msgstr ""
+
+msgid "Configure Integrations"
+msgstr ""
+
+msgid "Configure SAST IaC in `.gitlab-ci.yml` using the GitLab managed template. You can [add variable overrides](https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings) to customize SAST IaC settings."
+msgstr ""
+
+msgid "Configure SAST IaC in `.gitlab-ci.yml`, creating this file if it does not already exist"
+msgstr ""
+
+msgid "Configure SAST in `.gitlab-ci.yml` using the GitLab managed template. You can [add variable overrides](https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings) to customize SAST settings."
+msgstr ""
+
+msgid "Configure SAST in `.gitlab-ci.yml`, creating this file if it does not already exist"
+msgstr ""
+
+msgid "Configure Secret Detection in `.gitlab-ci.yml` using the GitLab managed template. You can [add variable overrides](https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings) to customize Secret Detection settings."
+msgstr ""
+
+msgid "Configure Secret Detection in `.gitlab-ci.yml`, creating this file if it does not already exist"
+msgstr ""
+
+msgid "Configure Sentry integration for error tracking"
+msgstr ""
+
+msgid "Configure a %{codeStart}.gitlab-webide.yml%{codeEnd} file in the %{codeStart}.gitlab%{codeEnd} directory to start using the Web Terminal. %{helpStart}Learn more.%{helpEnd}"
+msgstr ""
+
+msgid "Configure advanced permissions"
+msgstr ""
+
+msgid "Configure advanced permissions, Large File Storage, two-factor authentication, and CI/CD settings."
+msgstr ""
+
+msgid "Configure advanced permissions, Large File Storage, two-factor authentication, and customer relations settings."
+msgstr ""
+
+msgid "Configure checkin reminder frequency"
+msgstr ""
+
+msgid "Configure custom rules for Jira issue key matching"
+msgstr ""
+
+msgid "Configure import sources and settings related to import and export features."
+msgstr ""
+
+msgid "Configure pipeline"
+msgstr ""
+
+msgid "Configure pipelines to deploy web apps, backend services, APIs and static resources to Google Cloud"
+msgstr ""
+
+msgid "Configure region"
+msgstr ""
+
+msgid "Configure region for environment"
+msgstr ""
+
+msgid "Configure regions"
+msgstr ""
+
+msgid "Configure repository mirroring."
+msgstr ""
+
+msgid "Configure repository storage."
+msgstr ""
+
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
+msgid "Configure settings for Advanced Search with Elasticsearch."
+msgstr ""
+
+msgid "Configure specific limits for Files API requests that supersede the general user and IP rate limits."
+msgstr ""
+
+msgid "Configure specific limits for Git LFS requests that supersede the general user and IP rate limits."
+msgstr ""
+
+msgid "Configure specific limits for deprecated API requests that supersede the general user and IP rate limits."
+msgstr ""
+
+msgid "Configure the %{link} integration."
+msgstr ""
+
+msgid "Configure the default first day of the week, time tracking units, and default language."
+msgstr ""
+
+msgid "Configure the way a user creates a new account."
+msgstr ""
+
+msgid "Configure via Merge Request"
+msgstr ""
+
+msgid "Configure which lists are shown for anyone who visits this board"
+msgstr ""
+
+msgid "Configure with a merge request"
+msgstr ""
+
+msgid "Configure your environments to be deployed to specific geographical regions"
+msgstr ""
+
+msgid "Confirm"
+msgstr ""
+
+msgid "Confirm approval"
+msgstr ""
+
+msgid "Confirm destroy application"
+msgstr ""
+
+msgid "Confirm new password"
+msgstr ""
+
+msgid "Confirm user"
+msgstr ""
+
+msgid "Confirm your account"
+msgstr ""
+
+msgid "Confirm your email address"
+msgstr ""
+
+msgid "Confirmation email sent to %{email}"
+msgstr ""
+
+msgid "Confirmation required"
+msgstr ""
+
+msgid "Confirmed at:"
+msgstr ""
+
+msgid "Confirmed:"
+msgstr ""
+
+msgid "Conflict: This file was added both in the source and target branches, but with different contents."
+msgstr ""
+
+msgid "Conflict: This file was modified in both the source and target branches."
+msgstr ""
+
+msgid "Conflict: This file was modified in the source branch, but removed in the target branch."
+msgstr ""
+
+msgid "Conflict: This file was removed in the source branch, but modified in the target branch."
+msgstr ""
+
+msgid "Conflict: This file was removed in the source branch, but renamed in the target branch."
+msgstr ""
+
+msgid "Conflict: This file was renamed differently in the source and target branches."
+msgstr ""
+
+msgid "Conflict: This file was renamed in the source branch, but removed in the target branch."
+msgstr ""
+
+msgid "Confluence"
+msgstr ""
+
+msgid "Confluence Workspace URL"
+msgstr ""
+
+msgid "ConfluenceService|Confluence Workspace"
+msgstr ""
+
+msgid "ConfluenceService|Link to a Confluence Workspace from the sidebar."
+msgstr ""
+
+msgid "ConfluenceService|Link to a Confluence Workspace from the sidebar. Enabling this integration replaces the \"Wiki\" sidebar link with a link to the Confluence Workspace. The GitLab wiki is still available at the original URL."
+msgstr ""
+
+msgid "ConfluenceService|Your GitLab wiki is still available at %{wiki_link}. To re-enable the link to the GitLab wiki, disable this integration."
+msgstr ""
+
+msgid "Congratulations, your free trial is activated."
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Connect a Kubernetes Cluster"
+msgstr ""
+
+msgid "Connect a cluster"
+msgstr ""
+
+msgid "Connect all repositories"
+msgstr ""
+
+msgid "Connect repositories from GitHub"
+msgstr ""
+
+msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled."
+msgstr ""
+
+msgid "Connected"
+msgstr ""
+
+msgid "Connecting"
+msgstr ""
+
+msgid "Connecting to terminal sync service"
+msgstr ""
+
+msgid "Connecting to the remote environment..."
+msgstr ""
+
+msgid "Connecting..."
+msgstr ""
+
+msgid "Connection failure"
+msgstr ""
+
+msgid "Consistency guarantee method"
+msgstr ""
+
+msgid "Contact sales"
+msgstr ""
+
+msgid "Contact support"
+msgstr ""
+
+msgid "Contacts"
+msgstr ""
+
+msgid "Container Registry"
+msgstr ""
+
+msgid "Container Repository"
+msgstr ""
+
+msgid "Container Scanning"
+msgstr ""
+
+msgid "Container must be a group."
+msgstr ""
+
+msgid "Container must be a project or a group."
+msgstr ""
+
+msgid "Container registry images"
+msgstr ""
+
+msgid "Container registry is not enabled on this GitLab instance. Ask an administrator to enable it in order for Auto DevOps to work."
+msgstr ""
+
+msgid "ContainerRegistry| Please visit the %{linkStart}administration settings%{linkEnd} to enable this feature."
+msgstr ""
+
+msgid "ContainerRegistry|%{count} Image repository"
+msgid_plural "ContainerRegistry|%{count} Image repositories"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ContainerRegistry|%{count} tag"
+msgid_plural "ContainerRegistry|%{count} tags"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ContainerRegistry|%{strongStart}Disabled%{strongEnd} - Tags will not be automatically deleted."
+msgstr ""
+
+msgid "ContainerRegistry|%{strongStart}Enabled%{strongEnd} - Tags that match the rules on this page are automatically scheduled for deletion."
+msgstr ""
+
+msgid "ContainerRegistry|%{title} was successfully scheduled for deletion"
+msgstr ""
+
+msgid "ContainerRegistry|-- tags"
+msgstr ""
+
+msgid "ContainerRegistry|Build an image"
+msgstr ""
+
+msgid "ContainerRegistry|CLI Commands"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup disabled"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup in progress"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup incomplete"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup is currently removing tags"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup is disabled for this project"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup is not scheduled."
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup is ongoing"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup pending"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup policies"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup policy for tags is disabled"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup policy successfully saved."
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup ran but some tags were not removed"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup will run %{time}"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup will run in %{time}"
+msgstr ""
+
+msgid "ContainerRegistry|Cleanup will run soon"
+msgstr ""
+
+msgid "ContainerRegistry|Configuration digest: %{digest}"
+msgstr ""
+
+msgid "ContainerRegistry|Configure in settings"
+msgstr ""
+
+msgid "ContainerRegistry|Container Registry"
+msgstr ""
+
+msgid "ContainerRegistry|Copy build command"
+msgstr ""
+
+msgid "ContainerRegistry|Copy image path"
+msgstr ""
+
+msgid "ContainerRegistry|Copy login command"
+msgstr ""
+
+msgid "ContainerRegistry|Copy push command"
+msgstr ""
+
+msgid "ContainerRegistry|Created %{time}"
+msgstr ""
+
+msgid "ContainerRegistry|Delete image repository"
+msgstr ""
+
+msgid "ContainerRegistry|Delete image repository?"
+msgstr ""
+
+msgid "ContainerRegistry|Delete selected tags"
+msgstr ""
+
+msgid "ContainerRegistry|Delete tag"
+msgstr ""
+
+msgid "ContainerRegistry|Deleting the image repository will delete all images and tags inside. This action cannot be undone. Please type the following to confirm: %{code}"
+msgstr ""
+
+msgid "ContainerRegistry|Digest: %{imageId}"
+msgstr ""
+
+msgid "ContainerRegistry|Docker connection error"
+msgstr ""
+
+msgid "ContainerRegistry|Edit cleanup rules"
+msgstr ""
+
+msgid "ContainerRegistry|Enable cleanup policy"
+msgstr ""
+
+msgid "ContainerRegistry|If you are not already logged in, you need to authenticate to the Container Registry by using your GitLab username and password. If you have %{twofaDocLinkStart}Two-Factor Authentication%{twofaDocLinkEnd} enabled, use a %{personalAccessTokensDocLinkStart}Personal Access Token%{personalAccessTokensDocLinkEnd} instead of a password."
+msgstr ""
+
+msgid "ContainerRegistry|Image repository deletion failed"
+msgstr ""
+
+msgid "ContainerRegistry|Image repository not found"
+msgstr ""
+
+msgid "ContainerRegistry|Image repository temporarily cannot be marked for deletion. Please try again in a few minutes. %{docLinkStart}More details%{docLinkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|Image repository will be deleted"
+msgstr ""
+
+msgid "ContainerRegistry|Image repository with no name located at the project URL."
+msgstr ""
+
+msgid "ContainerRegistry|Image tags"
+msgstr ""
+
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
+msgid "ContainerRegistry|Invalid tag: missing manifest digest"
+msgstr ""
+
+msgid "ContainerRegistry|Keep tags matching:"
+msgstr ""
+
+msgid "ContainerRegistry|Keep the most recent:"
+msgstr ""
+
+msgid "ContainerRegistry|Keep these tags"
+msgstr ""
+
+msgid "ContainerRegistry|Login"
+msgstr ""
+
+msgid "ContainerRegistry|Manifest digest: %{digest}"
+msgstr ""
+
+msgid "ContainerRegistry|Missing or insufficient permission, delete button disabled"
+msgstr ""
+
+msgid "ContainerRegistry|Next cleanup scheduled to run on:"
+msgstr ""
+
+msgid "ContainerRegistry|Not yet scheduled"
+msgstr ""
+
+msgid "ContainerRegistry|Note: Any policy update will result in a change to the scheduled run date and time"
+msgstr ""
+
+msgid "ContainerRegistry|Partial cleanup complete"
+msgstr ""
+
+msgid "ContainerRegistry|Please try different search criteria"
+msgstr ""
+
+msgid "ContainerRegistry|Published %{timeInfo}"
+msgstr ""
+
+msgid "ContainerRegistry|Published to the %{repositoryPath} image repository at %{time} on %{date}"
+msgstr ""
+
+msgid "ContainerRegistry|Push an image"
+msgstr ""
+
+msgid "ContainerRegistry|Remember to run %{docLinkStart}garbage collection%{docLinkEnd} to remove the stale data from storage."
+msgstr ""
+
+msgid "ContainerRegistry|Remove repository"
+msgstr ""
+
+msgid "ContainerRegistry|Remove tag"
+msgid_plural "ContainerRegistry|Remove tags"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ContainerRegistry|Remove tags matching:"
+msgstr ""
+
+msgid "ContainerRegistry|Remove tags older than:"
+msgstr ""
+
+msgid "ContainerRegistry|Remove these tags"
+msgstr ""
+
+msgid "ContainerRegistry|Run cleanup:"
+msgstr ""
+
+msgid "ContainerRegistry|Save storage space by automatically deleting tags from the container registry and keeping the ones you want. %{linkStart}How does cleanup work?%{linkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|Set cleanup rules"
+msgstr ""
+
+msgid "ContainerRegistry|Set rules to automatically remove unused packages to save storage space."
+msgstr ""
+
+msgid "ContainerRegistry|Set up cleanup"
+msgstr ""
+
+msgid "ContainerRegistry|Show full path"
+msgstr ""
+
+msgid "ContainerRegistry|Some tags were not deleted"
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while fetching the cleanup policy."
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while fetching the image details."
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while fetching the repository list."
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while fetching the tags list."
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while marking the tag for deletion."
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while marking the tags for deletion."
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while scheduling %{title} for deletion. Please try again."
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while scheduling the image for deletion."
+msgstr ""
+
+msgid "ContainerRegistry|Something went wrong while updating the cleanup policy."
+msgstr ""
+
+msgid "ContainerRegistry|Sorry, your filter produced no results."
+msgstr ""
+
+msgid "ContainerRegistry|Tag successfully marked for deletion."
+msgstr ""
+
+msgid "ContainerRegistry|Tags successfully marked for deletion."
+msgstr ""
+
+msgid "ContainerRegistry|Tags that match %{strongStart}any of%{strongEnd} these rules are %{strongStart}kept%{strongEnd}, even if they match a removal rule below. The %{strongStart}latest%{strongEnd} tag is always kept."
+msgstr ""
+
+msgid "ContainerRegistry|Tags that match these rules are %{strongStart}removed%{strongEnd}, unless a rule above says to keep them."
+msgstr ""
+
+msgid "ContainerRegistry|Tags with names that match this regex pattern are kept. %{linkStart}View regex examples.%{linkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|Tags with names that match this regex pattern are removed. %{linkStart}View regex examples.%{linkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|The cleanup policy timed out before it could delete all tags. An administrator can %{adminLinkStart}run cleanup now manually%{adminLinkEnd} or you can wait for the next scheduled run of the cleanup policy. %{docLinkStart}More information%{docLinkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|The cleanup will continue within %{time}. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|The filter returned no results"
+msgstr ""
+
+msgid "ContainerRegistry|The image repository could not be found."
+msgstr ""
+
+msgid "ContainerRegistry|The last tag related to this image was recently removed. This empty image and any associated data will be automatically removed as part of the regular Garbage Collection process. If you have any questions, contact your administrator."
+msgstr ""
+
+msgid "ContainerRegistry|The requested image repository does not exist or has been deleted. If you think this is an error, try refreshing the page."
+msgstr ""
+
+msgid "ContainerRegistry|The value of this input should be less than 256 characters"
+msgstr ""
+
+msgid "ContainerRegistry|There are no container images available in this group"
+msgstr ""
+
+msgid "ContainerRegistry|There are no container images stored for this project"
+msgstr ""
+
+msgid "ContainerRegistry|There was an error during the deletion of this image repository, please try again."
+msgstr ""
+
+msgid "ContainerRegistry|This image has no active tags"
+msgstr ""
+
+msgid "ContainerRegistry|This image repository has failed to be deleted"
+msgstr ""
+
+msgid "ContainerRegistry|This image repository is scheduled for deletion"
+msgstr ""
+
+msgid "ContainerRegistry|This image repository will be deleted. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|This project's cleanup policy for tags is not enabled."
+msgstr ""
+
+msgid "ContainerRegistry|To widen your search, change or remove the filters above."
+msgstr ""
+
+msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
+msgstr ""
+
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
+msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. Push at least one Docker image in one of this group's projects in order to show up here. %{docLinkStart}More Information%{docLinkEnd}"
+msgstr ""
+
+msgid "ContainerRegistry|You are about to remove %{item} tags. Are you sure?"
+msgstr ""
+
+msgid "ContainerRegistry|You are about to remove %{item}. Are you sure?"
+msgstr ""
+
+msgid "ContainerRegistry|You can add an image to this registry with the following commands:"
+msgstr ""
+
+msgid "Containers"
+msgstr ""
+
+msgid "Contains only whitespace changes."
+msgstr ""
+
+msgid "Content"
+msgstr ""
+
+msgid "Content parsed with %{link}."
+msgstr ""
+
+msgid "ContentEditor|You have to provide a renderMarkdown function or a custom serializer"
+msgstr ""
+
+msgid "Contents of .gitlab-ci.yml"
+msgstr ""
+
+msgid "ContextCommits|Failed to create context commits. Please try again."
+msgstr ""
+
+msgid "ContextCommits|Failed to create/remove context commits. Please try again."
+msgstr ""
+
+msgid "ContextCommits|Failed to delete context commits. Please try again."
+msgstr ""
+
+msgid "Continue"
+msgstr ""
+
+msgid "Continue editing"
+msgstr ""
+
+msgid "Continue to the next step"
+msgstr ""
+
+msgid "Continue with overages"
+msgstr ""
+
+msgid "Continue…"
+msgstr ""
+
+msgid "Continuous Integration and Deployment"
+msgstr ""
+
+msgid "Contribute to GitLab"
+msgstr ""
+
+msgid "Contribution"
+msgstr ""
+
+msgid "Contribution Analytics"
+msgstr ""
+
+msgid "Contribution analytics"
+msgstr ""
+
+msgid "ContributionAnalytics|%{createdCount} created, %{closedCount} closed."
+msgstr ""
+
+msgid "ContributionAnalytics|%{createdCount} created, %{mergedCount} merged, %{closedCount} closed."
+msgstr ""
+
+msgid "ContributionAnalytics|%{pushCount} by %{authorCount}."
+msgstr ""
+
+msgid "ContributionAnalytics|Approved MRs"
+msgstr ""
+
+msgid "ContributionAnalytics|Closed MRs"
+msgstr ""
+
+msgid "ContributionAnalytics|Closed issues"
+msgstr ""
+
+msgid "ContributionAnalytics|Contribution analytics for issues, merge requests and push events since %{start_date}"
+msgstr ""
+
+msgid "ContributionAnalytics|Contributions per group member"
+msgstr ""
+
+msgid "ContributionAnalytics|Failed to load the contribution stats"
+msgstr ""
+
+msgid "ContributionAnalytics|Issues"
+msgstr ""
+
+msgid "ContributionAnalytics|Last 3 months"
+msgstr ""
+
+msgid "ContributionAnalytics|Last month"
+msgstr ""
+
+msgid "ContributionAnalytics|Last week"
+msgstr ""
+
+msgid "ContributionAnalytics|Loading contribution stats for group members"
+msgstr ""
+
+msgid "ContributionAnalytics|Merge requests"
+msgstr ""
+
+msgid "ContributionAnalytics|Merged MRs"
+msgstr ""
+
+msgid "ContributionAnalytics|Name"
+msgstr ""
+
+msgid "ContributionAnalytics|No issues for the selected time period."
+msgstr ""
+
+msgid "ContributionAnalytics|No merge requests for the selected time period."
+msgstr ""
+
+msgid "ContributionAnalytics|No pushes for the selected time period."
+msgstr ""
+
+msgid "ContributionAnalytics|Opened MRs"
+msgstr ""
+
+msgid "ContributionAnalytics|Opened issues"
+msgstr ""
+
+msgid "ContributionAnalytics|Pushed"
+msgstr ""
+
+msgid "ContributionAnalytics|The given date range is larger than %{number_of_days} days"
+msgstr ""
+
+msgid "ContributionAnalytics|The to date is earlier than the given from date"
+msgstr ""
+
+msgid "ContributionAnalytics|There is too much data to calculate. Try lowering the period_limit setting in the insights configuration file."
+msgstr ""
+
+msgid "ContributionAnalytics|Total Contributions"
+msgstr ""
+
+msgid "ContributionEvent|Accepted merge request %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Added design %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Approved merge request %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Archived design in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed Epic %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed incident %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed issue %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed key result %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed merge request %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed milestone %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed objective %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed requirement %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed resource."
+msgstr ""
+
+msgid "ContributionEvent|Closed task %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Closed test case %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Commented on %{noteableLink}."
+msgstr ""
+
+msgid "ContributionEvent|Commented on Epic %{noteableLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Commented on commit %{noteableLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Commented on design %{noteableLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Commented on issue %{noteableLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Commented on merge request %{noteableLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Commented on snippet %{noteableLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Commented on snippet %{noteableLink}."
+msgstr ""
+
+msgid "ContributionEvent|Created project %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Created resource."
+msgstr ""
+
+msgid "ContributionEvent|Created wiki page %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Deleted branch %{refLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Deleted milestone in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Deleted resource."
+msgstr ""
+
+msgid "ContributionEvent|Deleted tag %{refLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Deleted wiki page in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Joined project %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Left project %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Made a private contribution."
+msgstr ""
+
+msgid "ContributionEvent|Opened Epic %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened incident %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened issue %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened key result %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened merge request %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened milestone %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened objective %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened requirement %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened task %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Opened test case %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Pushed a new branch %{refLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Pushed a new tag %{refLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Pushed to branch %{refLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Pushed to tag %{refLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Removed due to membership expiration from %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened Epic %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened incident %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened issue %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened key result %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened merge request %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened milestone %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened objective %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened requirement %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened resource."
+msgstr ""
+
+msgid "ContributionEvent|Reopened task %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Reopened test case %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Updated design %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|Updated resource."
+msgstr ""
+
+msgid "ContributionEvent|Updated wiki page %{targetLink} in %{resourceParentLink}."
+msgstr ""
+
+msgid "ContributionEvent|…and %{count} more commits. %{linkStart}Compare%{linkEnd}."
+msgstr ""
+
+msgid "Contributions for %{calendar_date}"
+msgstr ""
+
+msgid "Contributor"
+msgstr ""
+
+msgid "Contributor analytics"
+msgstr ""
+
+msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
+msgstr ""
+
+msgid "Control whether to display customer experience improvement content and third-party offers in GitLab."
+msgstr ""
+
+msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
+msgstr ""
+
+msgid "Cookie Preferences"
+msgstr ""
+
+msgid "Cookie domain"
+msgstr ""
+
+msgid "Copied"
+msgstr ""
+
+msgid "Copied labels and milestone from %{source_issuable_reference}."
+msgstr ""
+
+msgid "Copy"
+msgstr ""
+
+msgid "Copy %{accessTokenType}"
+msgstr ""
+
+msgid "Copy %{http_label} clone URL"
+msgstr ""
+
+msgid "Copy %{issueType} email address"
+msgstr ""
+
+msgid "Copy %{name}"
+msgstr ""
+
+msgid "Copy %{protocol} clone URL"
+msgstr ""
+
+msgid "Copy ID"
+msgstr ""
+
+msgid "Copy KRB5 clone URL"
+msgstr ""
+
+msgid "Copy SSH clone URL"
+msgstr ""
+
+msgid "Copy SSH public key"
+msgstr ""
+
+msgid "Copy URL"
+msgstr ""
+
+msgid "Copy audio URL"
+msgstr ""
+
+msgid "Copy autocomplete description"
+msgstr ""
+
+msgid "Copy autocomplete usage hint"
+msgstr ""
+
+msgid "Copy branch name"
+msgstr ""
+
+msgid "Copy code"
+msgstr ""
+
+msgid "Copy codes"
+msgstr ""
+
+msgid "Copy command"
+msgstr ""
+
+msgid "Copy command to finalize manually"
+msgstr ""
+
+msgid "Copy commands"
+msgstr ""
+
+msgid "Copy commit SHA"
+msgstr ""
+
+msgid "Copy customize name"
+msgstr ""
+
+msgid "Copy descriptive label"
+msgstr ""
+
+msgid "Copy diagram URL"
+msgstr ""
+
+msgid "Copy environment"
+msgstr ""
+
+msgid "Copy epic URL"
+msgstr ""
+
+msgid "Copy evidence SHA"
+msgstr ""
+
+msgid "Copy failed. Please manually copy the value."
+msgstr ""
+
+msgid "Copy file contents"
+msgstr ""
+
+msgid "Copy file path"
+msgstr ""
+
+msgid "Copy image URL"
+msgstr ""
+
+msgid "Copy issue URL"
+msgstr ""
+
+msgid "Copy issue URL to clipboard"
+msgstr ""
+
+msgid "Copy key"
+msgstr ""
+
+msgid "Copy labels and milestone from %{source_issuable_reference}."
+msgstr ""
+
+msgid "Copy labels and milestone from other issue or merge request in this project"
+msgstr ""
+
+msgid "Copy link"
+msgstr ""
+
+msgid "Copy link URL"
+msgstr ""
+
+msgid "Copy merge request URL"
+msgstr ""
+
+msgid "Copy reference"
+msgstr ""
+
+msgid "Copy secret"
+msgstr ""
+
+msgid "Copy source branch name"
+msgstr ""
+
+msgid "Copy to clipboard"
+msgstr ""
+
+msgid "Copy value"
+msgstr ""
+
+msgid "Copy video URL"
+msgstr ""
+
+msgid "Corpus Management"
+msgstr ""
+
+msgid "Corpus Management|Are you sure you want to delete the corpus?"
+msgstr ""
+
+msgid "CorpusManagement|A corpus is used by fuzz testing to improve coverage. Corpus files can be manually created or auto-generated. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "CorpusManagement|Actions"
+msgstr ""
+
+msgid "CorpusManagement|Corpus file"
+msgstr ""
+
+msgid "CorpusManagement|Corpus files are used in coverage-guided fuzz testing as seed inputs to improve testing."
+msgstr ""
+
+msgid "CorpusManagement|Corpus files must be in *.zip format. Maximum 5 GB"
+msgstr ""
+
+msgid "CorpusManagement|Corpus name"
+msgstr ""
+
+msgid "CorpusManagement|Currently, there are no uploaded or generated corpuses."
+msgstr ""
+
+msgid "CorpusManagement|File too large, Maximum 5 GB"
+msgstr ""
+
+msgid "CorpusManagement|Filename can contain only lowercase letters (a-z), uppercase letter (A-Z), numbers (0-9), dots (.), hyphens (-), or underscores (_)."
+msgstr ""
+
+msgid "CorpusManagement|Fuzz testing corpus management"
+msgstr ""
+
+msgid "CorpusManagement|Last updated"
+msgstr ""
+
+msgid "CorpusManagement|Last used"
+msgstr ""
+
+msgid "CorpusManagement|Latest Job:"
+msgstr ""
+
+msgid "CorpusManagement|Manage your fuzz testing corpus files"
+msgstr ""
+
+msgid "CorpusManagement|New corpus"
+msgstr ""
+
+msgid "CorpusManagement|New upload"
+msgstr ""
+
+msgid "CorpusManagement|Not Set"
+msgstr ""
+
+msgid "CorpusManagement|Target"
+msgstr ""
+
+msgid "CorpusManagement|To use this corpus, edit the corresponding YAML file"
+msgstr ""
+
+msgid "CorpusManagement|Total Size: %{totalSize}"
+msgstr ""
+
+msgid "Correlation ID"
+msgstr ""
+
+msgid "Cost Factor Settings"
+msgstr ""
+
+msgid "Cost factor for forks of projects"
+msgstr ""
+
+msgid "Could not access the Wiki Repository at this time."
+msgstr ""
+
+msgid "Could not apply %{name} command."
+msgstr ""
+
+msgid "Could not apply %{name} command. %{message}."
+msgstr ""
+
+msgid "Could not authorize chat nickname. Try again!"
+msgstr ""
+
+msgid "Could not change HEAD: branch '%{branch}' does not exist"
+msgstr ""
+
+msgid "Could not commit. An unexpected error occurred."
+msgstr ""
+
+msgid "Could not connect to FogBugz, check your URL"
+msgstr ""
+
+msgid "Could not connect to Sentry. Refresh the page to try again."
+msgstr ""
+
+msgid "Could not connect to Web IDE file mirror service."
+msgstr ""
+
+msgid "Could not create Wiki Repository at this time. Please try again later."
+msgstr ""
+
+msgid "Could not create issue"
+msgstr ""
+
+msgid "Could not create wiki page"
+msgstr ""
+
+msgid "Could not delete chat nickname %{chat_name}."
+msgstr ""
+
+msgid "Could not delete wiki page"
+msgstr ""
+
+msgid "Could not draw the lines for job relationships"
+msgstr ""
+
+msgid "Could not fetch policy because existing policy YAML is invalid"
+msgstr ""
+
+msgid "Could not fetch training providers. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "Could not find design."
+msgstr ""
+
+msgid "Could not find iteration"
+msgstr ""
+
+msgid "Could not get the data properly"
+msgstr ""
+
+msgid "Could not load the user chart. Please refresh the page to try again."
+msgstr ""
+
+msgid "Could not load usage counts. Please refresh the page to try again."
+msgstr ""
+
+msgid "Could not remove %{user} from %{group}. Cannot remove last group owner."
+msgstr ""
+
+msgid "Could not remove the trigger."
+msgstr ""
+
+msgid "Could not restore the group"
+msgstr ""
+
+msgid "Could not retrieve the list of branches. Use the YAML editor mode, or refresh this page later. To view the list of branches, go to %{boldStart}Code - Branches%{boldEnd}"
+msgstr ""
+
+msgid "Could not retrieve the list of protected branches. Use the YAML editor mode, or refresh this page later. To view the list of protected branches, go to %{boldStart}Settings - Branches%{boldEnd} and expand %{boldStart}Protected branches%{boldEnd}."
+msgstr ""
+
+msgid "Could not revoke access token %{access_token_name}."
+msgstr ""
+
+msgid "Could not revoke impersonation token %{token_name}."
+msgstr ""
+
+msgid "Could not revoke personal access token %{personal_access_token_name}."
+msgstr ""
+
+msgid "Could not save configuration. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "Could not update wiki page"
+msgstr ""
+
+msgid "Could not upload your designs as one or more files uploaded are not supported."
+msgstr ""
+
+msgid "Couldn't assign policy to project or group"
+msgstr ""
+
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
+msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
+msgstr ""
+
+msgid "Couldn't link %{issuable}. You must have at least the Reporter role in both projects."
+msgstr ""
+
+msgid "Couldn't link epics. You must have at least the Guest role in the epic's group."
+msgstr ""
+
+msgid "Country / Region"
+msgstr ""
+
+msgid "Counts"
+msgstr ""
+
+msgid "Counts reflect children you may not have access to."
+msgstr ""
+
+msgid "Coverage"
+msgstr ""
+
+msgid "Coverage Fuzzing"
+msgstr ""
+
+msgid "Create"
+msgstr ""
+
+msgid "Create %{environment}"
+msgstr ""
+
+msgid "Create %{humanized_resource_name}"
+msgstr ""
+
+msgid "Create %{workspace} label"
+msgstr ""
+
+msgid "Create AI-generated commit message"
+msgstr ""
+
+msgid "Create New Directory"
+msgstr ""
+
+msgid "Create New Domain"
+msgstr ""
+
+msgid "Create a GitLab account first, and then connect it to your %{label} account."
+msgstr ""
+
+msgid "Create a Kubernetes cluster"
+msgstr ""
+
+msgid "Create a Mattermost team for this group"
+msgstr ""
+
+msgid "Create a cluster"
+msgstr ""
+
+msgid "Create a group"
+msgstr ""
+
+msgid "Create a merge request"
+msgstr ""
+
+msgid "Create a merge request branch target."
+msgstr ""
+
+msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
+msgstr ""
+
+msgid "Create a new branch"
+msgstr ""
+
+msgid "Create a new file as there are no files yet. Afterwards, you'll be able to commit your changes."
+msgstr ""
+
+msgid "Create a new fork"
+msgstr ""
+
+msgid "Create a new issue"
+msgstr ""
+
+msgid "Create a new project"
+msgstr ""
+
+msgid "Create a new project on GitLab. Store your files, plan your work, and collaborate on code."
+msgstr ""
+
+msgid "Create a new repository"
+msgstr ""
+
+msgid "Create a personal access token on your account to pull or push via %{protocol}."
+msgstr ""
+
+msgid "Create a project"
+msgstr ""
+
+msgid "Create an incident. Incidents are created for each alert triggered."
+msgstr ""
+
+msgid "Create and provide your GitHub %{link_start}Personal Access Token%{link_end}. You will need to select the %{code_open}repo%{code_close} scope, so we can display a list of your public and private repositories which are available to import."
+msgstr ""
+
+msgid "Create branch"
+msgstr ""
+
+msgid "Create commit"
+msgstr ""
+
+msgid "Create commit..."
+msgstr ""
+
+msgid "Create common files more quickly, and standardize their format."
+msgstr ""
+
+msgid "Create confidential merge request"
+msgstr ""
+
+msgid "Create confidential merge request and branch"
+msgstr ""
+
+msgid "Create custom type"
+msgstr ""
+
+msgid "Create directory"
+msgstr ""
+
+msgid "Create empty repository"
+msgstr ""
+
+msgid "Create epic"
+msgstr ""
+
+msgid "Create file"
+msgstr ""
+
+msgid "Create from"
+msgstr ""
+
+msgid "Create group"
+msgstr ""
+
+msgid "Create group label"
+msgstr ""
+
+msgid "Create identity verification exemption"
+msgstr ""
+
+msgid "Create issue"
+msgstr ""
+
+msgid "Create label"
+msgstr ""
+
+msgid "Create list"
+msgstr ""
+
+msgid "Create lists from labels. Issues with that label appear in that list."
+msgstr ""
+
+msgid "Create merge request"
+msgstr ""
+
+msgid "Create merge request and branch"
+msgstr ""
+
+msgid "Create milestone"
+msgstr ""
+
+msgid "Create new"
+msgstr ""
+
+msgid "Create new %{name} by email"
+msgstr ""
+
+msgid "Create new branch"
+msgstr ""
+
+msgid "Create new confidential %{issuableType}"
+msgstr ""
+
+msgid "Create new directory"
+msgstr ""
+
+msgid "Create new emoji"
+msgstr ""
+
+msgid "Create new file"
+msgstr ""
+
+msgid "Create new file or directory"
+msgstr ""
+
+msgid "Create new label"
+msgstr ""
+
+msgid "Create new..."
+msgstr ""
+
+msgid "Create one"
+msgstr ""
+
+msgid "Create or close an issue."
+msgstr ""
+
+msgid "Create or edit diagram"
+msgstr ""
+
+msgid "Create or import your first project"
+msgstr ""
+
+msgid "Create pipeline trigger token"
+msgstr ""
+
+msgid "Create project"
+msgstr ""
+
+msgid "Create project label"
+msgstr ""
+
+msgid "Create release"
+msgstr ""
+
+msgid "Create requirement"
+msgstr ""
+
+msgid "Create service account"
+msgstr ""
+
+msgid "Create snippet"
+msgstr ""
+
+msgid "Create testing scenarios by defining project conditions in your development platform."
+msgstr ""
+
+msgid "Create topic"
+msgstr ""
+
+msgid "Create user"
+msgstr ""
+
+msgid "Create wildcard"
+msgstr ""
+
+msgid "Create wildcard: %{searchTerm}"
+msgstr ""
+
+msgid "Create your first page"
+msgstr ""
+
+msgid "Create your group"
+msgstr ""
+
+msgid "Create, update, or delete a merge request."
+msgstr ""
+
+msgid "CreateGitTag|Add a message to the tag. Leaving this blank creates a lightweight tag."
+msgstr ""
+
+msgid "CreateGitTag|Set tag message"
+msgstr ""
+
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
+msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
+msgstr ""
+
+msgid "CreateGroup|You don’t have permission to create groups."
+msgstr ""
+
+msgid "CreateTag|Tag"
+msgstr ""
+
+msgid "CreateTimelogForm|Add time entry"
+msgstr ""
+
+msgid "CreateTimelogForm|An error occurred while saving the time entry."
+msgstr ""
+
+msgid "CreateTimelogForm|Cancel"
+msgstr ""
+
+msgid "CreateTimelogForm|Example: 1h 30m"
+msgstr ""
+
+msgid "CreateTimelogForm|How do I track and estimate time?"
+msgstr ""
+
+msgid "CreateTimelogForm|Save"
+msgstr ""
+
+msgid "CreateTimelogForm|Spent at"
+msgstr ""
+
+msgid "CreateTimelogForm|Summary"
+msgstr ""
+
+msgid "CreateTimelogForm|Time spent"
+msgstr ""
+
+msgid "CreateTimelogForm|Track time spent on this %{issuableTypeNameStart}%{issuableTypeNameEnd}. %{timeTrackingDocsLinkStart}%{timeTrackingDocsLinkEnd}"
+msgstr ""
+
+msgid "CreateTimelogForm|issue"
+msgstr ""
+
+msgid "CreateTimelogForm|merge request"
+msgstr ""
+
+msgid "CreateValueStreamForm|%{name} (default)"
+msgstr ""
+
+msgid "CreateValueStreamForm|'%{name}' Value Stream created"
+msgstr ""
+
+msgid "CreateValueStreamForm|'%{name}' Value Stream saved"
+msgstr ""
+
+msgid "CreateValueStreamForm|Add another stage"
+msgstr ""
+
+msgid "CreateValueStreamForm|Add stage"
+msgstr ""
+
+msgid "CreateValueStreamForm|All default stages are currently visible"
+msgstr ""
+
+msgid "CreateValueStreamForm|An error occurred while creating the custom value stream. Try again."
+msgstr ""
+
+msgid "CreateValueStreamForm|Code stage start"
+msgstr ""
+
+msgid "CreateValueStreamForm|Create from default template"
+msgstr ""
+
+msgid "CreateValueStreamForm|Create from no template"
+msgstr ""
+
+msgid "CreateValueStreamForm|Create new Value Stream"
+msgstr ""
+
+msgid "CreateValueStreamForm|Create value stream"
+msgstr ""
+
+msgid "CreateValueStreamForm|Default stages"
+msgstr ""
+
+msgid "CreateValueStreamForm|Default stages can only be hidden or re-ordered"
+msgstr ""
+
+msgid "CreateValueStreamForm|Edit value stream"
+msgstr ""
+
+msgid "CreateValueStreamForm|Editing stage"
+msgstr ""
+
+msgid "CreateValueStreamForm|End event"
+msgstr ""
+
+msgid "CreateValueStreamForm|End event label"
+msgstr ""
+
+msgid "CreateValueStreamForm|End event: "
+msgstr ""
+
+msgid "CreateValueStreamForm|Enter stage name"
+msgstr ""
+
+msgid "CreateValueStreamForm|Enter value stream name"
+msgstr ""
+
+msgid "CreateValueStreamForm|Issue stage end"
+msgstr ""
+
+msgid "CreateValueStreamForm|Maximum length %{maxLength} characters"
+msgstr ""
+
+msgid "CreateValueStreamForm|Minimum length %{minLength} characters"
+msgstr ""
+
+msgid "CreateValueStreamForm|Name is required"
+msgstr ""
+
+msgid "CreateValueStreamForm|New stage"
+msgstr ""
+
+msgid "CreateValueStreamForm|Plan stage start"
+msgstr ""
+
+msgid "CreateValueStreamForm|Please select a start event first"
+msgstr ""
+
+msgid "CreateValueStreamForm|Please select an end event"
+msgstr ""
+
+msgid "CreateValueStreamForm|Recover hidden stage"
+msgstr ""
+
+msgid "CreateValueStreamForm|Restore defaults"
+msgstr ""
+
+msgid "CreateValueStreamForm|Restore stage"
+msgstr ""
+
+msgid "CreateValueStreamForm|Save value stream"
+msgstr ""
+
+msgid "CreateValueStreamForm|Select end event"
+msgstr ""
+
+msgid "CreateValueStreamForm|Select start event"
+msgstr ""
+
+msgid "CreateValueStreamForm|Stage %{index}"
+msgstr ""
+
+msgid "CreateValueStreamForm|Stage name already exists"
+msgstr ""
+
+msgid "CreateValueStreamForm|Stage name is required"
+msgstr ""
+
+msgid "CreateValueStreamForm|Start event"
+msgstr ""
+
+msgid "CreateValueStreamForm|Start event changed, please select a valid end event"
+msgstr ""
+
+msgid "CreateValueStreamForm|Start event label"
+msgstr ""
+
+msgid "CreateValueStreamForm|Start event: "
+msgstr ""
+
+msgid "CreateValueStreamForm|Update stage"
+msgstr ""
+
+msgid "CreateValueStreamForm|Value Stream name"
+msgstr ""
+
+msgid "Created"
+msgstr ""
+
+msgid "Created %{date} ago"
+msgstr ""
+
+msgid "Created %{epicTimeagoDate}"
+msgstr ""
+
+msgid "Created %{timeAgo}"
+msgstr ""
+
+msgid "Created %{timeAgo} by %{author}"
+msgstr ""
+
+msgid "Created %{timeAgo} by %{email} via %{author}"
+msgstr ""
+
+msgid "Created %{time_ago}"
+msgstr ""
+
+msgid "Created %{timestamp}"
+msgstr ""
+
+msgid "Created At"
+msgstr ""
+
+msgid "Created On"
+msgstr ""
+
+msgid "Created a branch and a merge request to resolve this issue."
+msgstr ""
+
+msgid "Created at"
+msgstr ""
+
+msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
+msgstr ""
+
+msgid "Created by %{job}"
+msgstr ""
+
+msgid "Created by me"
+msgstr ""
+
+msgid "Created by:"
+msgstr ""
+
+msgid "Created compliance violations if any were found"
+msgstr ""
+
+msgid "Created date"
+msgstr ""
+
+msgid "Created issue %{issueLink}"
+msgstr ""
+
+msgid "Created issue %{issueLink} at %{projectLink}"
+msgstr ""
+
+msgid "Created merge request %{mergeRequestLink}"
+msgstr ""
+
+msgid "Created merge request %{mergeRequestLink} at %{projectLink}"
+msgstr ""
+
+msgid "Created on"
+msgstr ""
+
+msgid "Created on %{created_at}"
+msgstr ""
+
+msgid "Created on:"
+msgstr ""
+
+msgid "Creates a branch and a merge request to resolve this issue."
+msgstr ""
+
+msgid "Creates a summary of all comments"
+msgstr ""
+
+msgid "Creates branch '%{branch_name}' and a merge request to resolve this issue."
+msgstr ""
+
+msgid "Creating"
+msgstr ""
+
+msgid "Creating epic"
+msgstr ""
+
+msgid "Creation of member role is allowed only for root groups"
+msgstr ""
+
+msgid "Creator"
+msgstr ""
+
+msgid "Credentials"
+msgstr ""
+
+msgid "CredentialsInventory|GPG Keys"
+msgstr ""
+
+msgid "CredentialsInventory|No credentials found"
+msgstr ""
+
+msgid "CredentialsInventory|Personal Access Tokens"
+msgstr ""
+
+msgid "CredentialsInventory|Project and Group Access Tokens"
+msgstr ""
+
+msgid "CredentialsInventory|SSH Keys"
+msgstr ""
+
+msgid "Credit card required to be on file in order to create a pipeline"
+msgstr ""
+
+msgid "Credit card validation record saved"
+msgstr ""
+
+msgid "Credit card:"
+msgstr ""
+
+msgid "Critical - S1"
+msgstr ""
+
+msgid "Critical vulnerabilities present"
+msgstr ""
+
+msgid "Crm|Active"
+msgstr ""
+
+msgid "Crm|Contact"
+msgstr ""
+
+msgid "Crm|Contact has been added."
+msgstr ""
+
+msgid "Crm|Contact has been updated."
+msgstr ""
+
+msgid "Crm|Customer relations contacts"
+msgstr ""
+
+msgid "Crm|Customer relations organizations"
+msgstr ""
+
+msgid "Crm|Default rate"
+msgstr ""
+
+msgid "Crm|Edit contact"
+msgstr ""
+
+msgid "Crm|Edit organization"
+msgstr ""
+
+msgid "Crm|New contact"
+msgstr ""
+
+msgid "Crm|New organization"
+msgstr ""
+
+msgid "Crm|No contacts found"
+msgstr ""
+
+msgid "Crm|No organization"
+msgstr ""
+
+msgid "Crm|No organizations found"
+msgstr ""
+
+msgid "Crm|Organization"
+msgstr ""
+
+msgid "Crm|Organization has been added."
+msgstr ""
+
+msgid "Crm|Organization has been updated."
+msgstr ""
+
+msgid "Cron time zone"
+msgstr ""
+
+msgid "Crowd"
+msgstr ""
+
+msgid "CsvParser|Failed to render the CSV file for the following reasons:"
+msgstr ""
+
+msgid "CsvParser|Quoted field unterminated"
+msgstr ""
+
+msgid "CsvParser|Too few fields"
+msgstr ""
+
+msgid "CsvParser|Too many fields"
+msgstr ""
+
+msgid "CsvParser|Trailing quote on quoted field is malformed"
+msgstr ""
+
+msgid "CsvParser|Unable to auto-detect delimiter; defaulted to \",\""
+msgstr ""
+
+msgid "CsvViewer|No CSV data to display."
+msgstr ""
+
+msgid "CsvViewer|The file is too large to render all the rows. To see the entire file, switch to the raw view."
+msgstr ""
+
+msgid "CsvViewer|View raw data"
+msgstr ""
+
+msgid "Current"
+msgstr ""
+
+msgid "Current Branch"
+msgstr ""
+
+msgid "Current Project"
+msgstr ""
+
+msgid "Current node must be the primary node or you will be locking yourself out"
+msgstr ""
+
+msgid "Current password"
+msgstr ""
+
+msgid "Current sign-in IP:"
+msgstr ""
+
+msgid "Current sign-in at:"
+msgstr ""
+
+msgid "Current sign-in ip"
+msgstr ""
+
+msgid "Current vulnerabilities count"
+msgstr ""
+
+msgid "CurrentUser|Buy Pipeline minutes"
+msgstr ""
+
+msgid "CurrentUser|Edit profile"
+msgstr ""
+
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|One of your groups is running out"
+msgstr ""
+
+msgid "CurrentUser|Preferences"
+msgstr ""
+
+msgid "CurrentUser|Start an Ultimate trial"
+msgstr ""
+
+msgid "CurrentUser|Switch to GitLab Next"
+msgstr ""
+
+msgid "Currently unable to fetch data for this pipeline."
+msgstr ""
+
+msgid "Custom"
+msgstr ""
+
+msgid "Custom (%{language})"
+msgstr ""
+
+msgid "Custom Attributes"
+msgstr ""
+
+msgid "Custom Git clone URL for HTTP(S)"
+msgstr ""
+
+msgid "Custom analyzers: language support"
+msgstr ""
+
+msgid "Custom emoji"
+msgstr ""
+
+msgid "Custom emoji will be available to use in every project in the group."
+msgstr ""
+
+msgid "Custom hostname (for private commit emails)"
+msgstr ""
+
+msgid "Custom metrics"
+msgstr ""
+
+msgid "Custom notification events"
+msgstr ""
+
+msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notificationLinkStart}notification emails%{notificationLinkEnd}."
+msgstr ""
+
+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 ""
+
+msgid "Custom range"
+msgstr ""
+
+msgid "Customer contacts"
+msgstr ""
+
+msgid "Customer experience improvement and third-party offers"
+msgstr ""
+
+msgid "Customer organizations"
+msgstr ""
+
+msgid "Customer relations"
+msgstr ""
+
+msgid "Customer relations contacts"
+msgstr ""
+
+msgid "Customer relations organizations"
+msgstr ""
+
+msgid "Customize CI/CD settings, including Auto DevOps, shared runners, and job artifacts."
+msgstr ""
+
+msgid "Customize colors"
+msgstr ""
+
+msgid "Customize how FogBugz email addresses and usernames are imported into GitLab. In the next step, you'll be able to select the projects you want to import."
+msgstr ""
+
+msgid "Customize icon"
+msgstr ""
+
+msgid "Customize language and region related settings."
+msgstr ""
+
+msgid "Customize name"
+msgstr ""
+
+msgid "Customize your pipeline configuration."
+msgstr ""
+
+msgid "Cycle Time"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|%{label_reference} label was added to the issue"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|%{label_reference} label was added to the merge request"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|%{label_reference} label was removed from the issue"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|%{label_reference} label was removed from the merge request"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue closed"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue created"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue first added to a board"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue first assigned"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue first associated with a milestone"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue first associated with a milestone or first added to a board"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue first mentioned in a commit"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue label was added"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue label was removed"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Issue last edited"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request closed"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request created"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request first assigned"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request first commit time"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request first deployed to production"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request label was added"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request label was removed"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request last build finish time"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request last build start time"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request last edited"
+msgstr ""
+
+msgid "CycleAnalyticsEvent|Merge request merged"
+msgstr ""
+
+msgid "CycleAnalyticsStage|Code"
+msgstr ""
+
+msgid "CycleAnalyticsStage|Issue"
+msgstr ""
+
+msgid "CycleAnalyticsStage|Plan"
+msgstr ""
+
+msgid "CycleAnalyticsStage|Review"
+msgstr ""
+
+msgid "CycleAnalyticsStage|Staging"
+msgstr ""
+
+msgid "CycleAnalyticsStage|Test"
+msgstr ""
+
+msgid "CycleAnalyticsStage|Total"
+msgstr ""
+
+msgid "CycleAnalyticsStage|is not available for the selected group"
+msgstr ""
+
+msgid "CycleAnalytics|%{selectedLabelsCount} selected (%{maxLabels} max)"
+msgstr ""
+
+msgid "CycleAnalytics|'%{name}' is collecting the data. This can take a few minutes."
+msgstr ""
+
+msgid "CycleAnalytics|Average time to completion"
+msgstr ""
+
+msgid "CycleAnalytics|Average time to completion (days)"
+msgstr ""
+
+msgid "CycleAnalytics|Change Failure Rate"
+msgstr ""
+
+msgid "CycleAnalytics|Create a custom value stream to view metrics about stages specific to your development process. Use your value stream to visualize your DevSecOps lifecycle, determine the velocity of your group, and identify inefficient processes."
+msgstr ""
+
+msgid "CycleAnalytics|Custom value streams to measure your DevSecOps lifecycle"
+msgstr ""
+
+msgid "CycleAnalytics|Data is collecting and loading."
+msgstr ""
+
+msgid "CycleAnalytics|Date"
+msgstr ""
+
+msgid "CycleAnalytics|Display chart filters"
+msgstr ""
+
+msgid "CycleAnalytics|If you have recently upgraded your GitLab license from a tier without this feature, it can take up to 30 minutes for data to collect and display."
+msgstr ""
+
+msgid "CycleAnalytics|Lead Time for Changes"
+msgstr ""
+
+msgid "CycleAnalytics|New value stream…"
+msgstr ""
+
+msgid "CycleAnalytics|No data"
+msgstr ""
+
+msgid "CycleAnalytics|Number of tasks"
+msgstr ""
+
+msgid "CycleAnalytics|Only %{maxLabels} labels can be selected at this time"
+msgstr ""
+
+msgid "CycleAnalytics|Project selected"
+msgid_plural "CycleAnalytics|%d projects selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "CycleAnalytics|Select labels"
+msgstr ""
+
+msgid "CycleAnalytics|Show"
+msgstr ""
+
+msgid "CycleAnalytics|Stage time: %{title}"
+msgstr ""
+
+msgid "CycleAnalytics|The average time items spent in this stage. Data limited to items completed within this date range."
+msgstr ""
+
+msgid "CycleAnalytics|The given date range is larger than 180 days"
+msgstr ""
+
+msgid "CycleAnalytics|The total time items spent across each value stream stage. Data limited to items completed within this date range."
+msgstr ""
+
+msgid "CycleAnalytics|There is no data for 'Stage time' available. Adjust the current filters."
+msgstr ""
+
+msgid "CycleAnalytics|There is no data for 'Total time' available. Adjust the current filters."
+msgstr ""
+
+msgid "CycleAnalytics|Time to Restore Service"
+msgstr ""
+
+msgid "CycleAnalytics|Total time"
+msgstr ""
+
+msgid "CycleAnalytics|not allowed for the given start event"
+msgstr ""
+
+msgid "CycleAnalytics|project dropdown filter"
+msgstr ""
+
+msgid "DAG visualization requires at least 3 dependent jobs."
+msgstr ""
+
+msgid "DAST configuration not found"
+msgstr ""
+
+msgid "DAST profile not found: %{name}"
+msgstr ""
+
+msgid "DAST profiles"
+msgstr ""
+
+msgid "DNS"
+msgstr ""
+
+msgid "DORA4Metrics|%d project"
+msgid_plural "DORA4Metrics|%d projects"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "DORA4Metrics|Accept testing terms"
+msgstr ""
+
+msgid "DORA4Metrics|Accept testing terms of use?"
+msgstr ""
+
+msgid "DORA4Metrics|All labels"
+msgstr ""
+
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
+msgid "DORA4Metrics|Average (last %{days}d)"
+msgstr ""
+
+msgid "DORA4Metrics|By enabling this feature, you accept the %{url}"
+msgstr ""
+
+msgid "DORA4Metrics|Change Failure Rate"
+msgstr ""
+
+msgid "DORA4Metrics|Change Failure Rate (Quality)"
+msgstr ""
+
+msgid "DORA4Metrics|Change failure rate"
+msgstr ""
+
+msgid "DORA4Metrics|Change failure rate (percentage)"
+msgstr ""
+
+msgid "DORA4Metrics|Critical Vulnerabilities over time"
+msgstr ""
+
+msgid "DORA4Metrics|Cycle time"
+msgstr ""
+
+msgid "DORA4Metrics|Date"
+msgstr ""
+
+msgid "DORA4Metrics|Days for an open incident"
+msgstr ""
+
+msgid "DORA4Metrics|Days from merge to deploy"
+msgstr ""
+
+msgid "DORA4Metrics|Deployment Frequency"
+msgstr ""
+
+msgid "DORA4Metrics|Deployment Frequency (Velocity)"
+msgstr ""
+
+msgid "DORA4Metrics|Deployment frequency"
+msgstr ""
+
+msgid "DORA4Metrics|Deploys"
+msgstr ""
+
+msgid "DORA4Metrics|Failed to generate forecast. Try again later. If the problem persists, consider %{linkStart}creating an issue%{linkEnd}."
+msgstr ""
+
+msgid "DORA4Metrics|Failed to load DORA performance scores for Namespace: %{fullPath}"
+msgstr ""
+
+msgid "DORA4Metrics|Failed to load YAML config from Project: %{fullPath}"
+msgstr ""
+
+msgid "DORA4Metrics|Failed to load comparison chart for Namespace: %{fullPath}"
+msgstr ""
+
+msgid "DORA4Metrics|Failed to load labels matching the filter: %{labels}"
+msgstr ""
+
+msgid "DORA4Metrics|Filtered by"
+msgstr ""
+
+msgid "DORA4Metrics|Forecast"
+msgstr ""
+
+msgid "DORA4Metrics|Go to docs"
+msgstr ""
+
+msgid "DORA4Metrics|Has no calculated data."
+msgid_plural "DORA4Metrics|Have no calculated data."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "DORA4Metrics|Have 30 or more deploys to production per day."
+msgstr ""
+
+msgid "DORA4Metrics|Have between 1 to 29 deploys to production per day."
+msgstr ""
+
+msgid "DORA4Metrics|Have less than 1 deploy to production per day."
+msgstr ""
+
+msgid "DORA4Metrics|High"
+msgstr ""
+
+msgid "DORA4Metrics|High Vulnerabilities over time"
+msgstr ""
+
+msgid "DORA4Metrics|Issues closed"
+msgstr ""
+
+msgid "DORA4Metrics|Issues created"
+msgstr ""
+
+msgid "DORA4Metrics|Lead Time for Changes"
+msgstr ""
+
+msgid "DORA4Metrics|Lead Time for Changes (Velocity)"
+msgstr ""
+
+msgid "DORA4Metrics|Lead time"
+msgstr ""
+
+msgid "DORA4Metrics|Lead time for changes"
+msgstr ""
+
+msgid "DORA4Metrics|Lead time for changes (median days)"
+msgstr ""
+
+msgid "DORA4Metrics|Low"
+msgstr ""
+
+msgid "DORA4Metrics|Made 15%% or less changes to production resulted in degraded service."
+msgstr ""
+
+msgid "DORA4Metrics|Made between 16%% to 44%% of changes to production resulted in degraded service."
+msgstr ""
+
+msgid "DORA4Metrics|Made more than 45%% of changes to production resulted in degraded service."
+msgstr ""
+
+msgid "DORA4Metrics|Median (last %{days}d)"
+msgstr ""
+
+msgid "DORA4Metrics|Median time (last %{days}d)"
+msgstr ""
+
+msgid "DORA4Metrics|Median time an incident was open in a production environment over the given time period."
+msgstr ""
+
+msgid "DORA4Metrics|Medium"
+msgstr ""
+
+msgid "DORA4Metrics|Merge request throughput"
+msgstr ""
+
+msgid "DORA4Metrics|Metrics comparison for %{name}"
+msgstr ""
+
+msgid "DORA4Metrics|Metrics comparison for %{name} group"
+msgstr ""
+
+msgid "DORA4Metrics|Metrics comparison for %{name} project"
+msgstr ""
+
+msgid "DORA4Metrics|Month to date"
+msgstr ""
+
+msgid "DORA4Metrics|No data available for Namespace: %{fullPath}"
+msgstr ""
+
+msgid "DORA4Metrics|No incidents during this period"
+msgstr ""
+
+msgid "DORA4Metrics|No merge requests were deployed during this period"
+msgstr ""
+
+msgid "DORA4Metrics|Not included"
+msgstr ""
+
+msgid "DORA4Metrics|Number of incidents divided by the number of deployments to a production environment in the given time period."
+msgstr ""
+
+msgid "DORA4Metrics|Past 6 Months"
+msgstr ""
+
+msgid "DORA4Metrics|Percentage of failed deployments"
+msgstr ""
+
+msgid "DORA4Metrics|Predicted number of deployments"
+msgstr ""
+
+msgid "DORA4Metrics|Show forecast"
+msgstr ""
+
+msgid "DORA4Metrics|Some metric charts failed to load"
+msgstr ""
+
+msgid "DORA4Metrics|Some metric comparisons failed to load"
+msgstr ""
+
+msgid "DORA4Metrics|Something went wrong while getting change failure rate data."
+msgstr ""
+
+msgid "DORA4Metrics|Something went wrong while getting deployment frequency data."
+msgstr ""
+
+msgid "DORA4Metrics|Something went wrong while getting lead time data."
+msgstr ""
+
+msgid "DORA4Metrics|Something went wrong while getting time to restore service data."
+msgstr ""
+
+msgid "DORA4Metrics|The Value Streams Dashboard allows all stakeholders from executives to individual contributors to identify trends, patterns, and opportunities for software development improvements."
+msgstr ""
+
+msgid "DORA4Metrics|The chart displays the frequency of deployments to production environment(s) that are based on the %{linkStart}deployment_tier%{linkEnd} value."
+msgstr ""
+
+msgid "DORA4Metrics|The chart displays the median time between a merge request being merged and deployed to production environment(s) that are based on the %{linkStart}deployment_tier%{linkEnd} value."
+msgstr ""
+
+msgid "DORA4Metrics|The forecast might be inaccurate. To improve it, select a wider time frame or try again when more data is available"
+msgstr ""
+
+msgid "DORA4Metrics|This is a lower-bound approximation. Your group has too many issues and MRs to calculate in real time."
+msgstr ""
+
+msgid "DORA4Metrics|This visualization is not supported for project namespaces."
+msgstr ""
+
+msgid "DORA4Metrics|Time to Restore Service"
+msgstr ""
+
+msgid "DORA4Metrics|Time to Restore Service (Quality)"
+msgstr ""
+
+msgid "DORA4Metrics|Time to restore service"
+msgstr ""
+
+msgid "DORA4Metrics|Time to restore service (median days)"
+msgstr ""
+
+msgid "DORA4Metrics|To help us improve the Show forecast feature, please share feedback about your experience in %{linkStart}this issue%{linkEnd}."
+msgstr ""
+
+msgid "DORA4Metrics|To help us improve the Value Stream Management Dashboard, please share feedback about your experience in this %{linkStart}survey%{linkEnd}."
+msgstr ""
+
+msgid "DORA4Metrics|Took 1 day or less to restore service when a service incident or a defect that impacts users occurs."
+msgstr ""
+
+msgid "DORA4Metrics|Took 7 days or less to go from code committed to code successfully running in production."
+msgstr ""
+
+msgid "DORA4Metrics|Took between 2 to 6 days to restore service when a service incident or a defect that impacts users occurs."
+msgstr ""
+
+msgid "DORA4Metrics|Took between 8 to 29 days to go from code committed to code successfully running in production."
+msgstr ""
+
+msgid "DORA4Metrics|Took more than 30 days to go from code committed to code successfully running in production."
+msgstr ""
+
+msgid "DORA4Metrics|Took more than 7 days to restore service when a service incident or a defect that impacts users occurs."
+msgstr ""
+
+msgid "DORA4Metrics|Total projects (%{count}) with DORA performers score for %{groupName} group"
+msgstr ""
+
+msgid "DORA4Metrics|Total projects with DORA performers score"
+msgstr ""
+
+msgid "DORA4Metrics|Value Streams Dashboard"
+msgstr ""
+
+msgid "DSN"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "DashboardProjects|All"
+msgstr ""
+
+msgid "DashboardProjects|Personal"
+msgstr ""
+
+msgid "Dashboard|%{firstProject} and %{secondProject}"
+msgstr ""
+
+msgid "Dashboard|%{firstProject}, %{rest}, and %{secondProject}"
+msgstr ""
+
+msgid "Dashboard|Unable to add %{invalidProjects}. This dashboard is available for public projects, and private projects in groups with a Premium plan."
+msgstr ""
+
+msgid "DastConfig|Customize DAST settings to suit your requirements. Configuration changes made here override those provided by GitLab and are excluded from updates. For details of more advanced configuration options, see the %{docsLinkStart}GitLab DAST documentation%{docsLinkEnd}."
+msgstr ""
+
+msgid "DastConfig|DAST CI/CD configuration"
+msgstr ""
+
+msgid "DastConfig|Enable DAST to automatically test for vulnerabilities in your project's running application, website, or API, in the CI/CD pipeline. Configuration changes must be applied to your .gitlab-ci.yml file to take effect. For details of all configuration options, see the %{linkStart}GitLab DAST documentation%{linkEnd}."
+msgstr ""
+
+msgid "DastConfig|Enabled"
+msgstr ""
+
+msgid "DastConfig|Generate code snippet"
+msgstr ""
+
+msgid "DastConfig|Last scan triggered %{runTimeAgo} in pipeline "
+msgstr ""
+
+msgid "DastConfig|No previous scans found for this project"
+msgstr ""
+
+msgid "DastConfig|Not enabled"
+msgstr ""
+
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
+msgid "DastProfiles|/graphql"
+msgstr ""
+
+msgid "DastProfiles|A passive scan monitors all HTTP messages (requests and responses) sent to the target. An active scan attacks the target to find potential vulnerabilities."
+msgstr ""
+
+msgid "DastProfiles|A scanner profile defines the configuration details of a security scanner. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "DastProfiles|A site profile defines the attributes and configuration details of your deployed application, website, or API. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "DastProfiles|AJAX spider"
+msgstr ""
+
+msgid "DastProfiles|API"
+msgstr ""
+
+msgid "DastProfiles|API endpoint URL"
+msgstr ""
+
+msgid "DastProfiles|Active"
+msgstr ""
+
+msgid "DastProfiles|Additional request headers (optional)"
+msgstr ""
+
+msgid "DastProfiles|Are you sure you want to delete this profile?"
+msgstr ""
+
+msgid "DastProfiles|Attacks the target to find potential vulnerabilities. Active scans are potentially harmful to the site being scanned."
+msgstr ""
+
+msgid "DastProfiles|Authentication"
+msgstr ""
+
+msgid "DastProfiles|Authentication URL"
+msgstr ""
+
+msgid "DastProfiles|Branch missing"
+msgstr ""
+
+msgid "DastProfiles|Change scanner profile"
+msgstr ""
+
+msgid "DastProfiles|Change site profile"
+msgstr ""
+
+msgid "DastProfiles|Choose a scan method"
+msgstr ""
+
+msgid "DastProfiles|Could not create the scanner profile. Please try again."
+msgstr ""
+
+msgid "DastProfiles|Could not create the site profile. Please try again."
+msgstr ""
+
+msgid "DastProfiles|Could not delete scanner profile. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "DastProfiles|Could not delete scanner profiles:"
+msgstr ""
+
+msgid "DastProfiles|Could not delete site profile. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "DastProfiles|Could not delete site profiles:"
+msgstr ""
+
+msgid "DastProfiles|Could not fetch scanner profiles. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "DastProfiles|Could not fetch site profiles. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "DastProfiles|Could not update the scanner profile. Please try again."
+msgstr ""
+
+msgid "DastProfiles|Could not update the site profile. Please try again."
+msgstr ""
+
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
+msgid "DastProfiles|DAST profile library"
+msgstr ""
+
+msgid "DastProfiles|Debug messages"
+msgstr ""
+
+msgid "DastProfiles|Delete profile"
+msgstr ""
+
+msgid "DastProfiles|Edit profile"
+msgstr ""
+
+msgid "DastProfiles|Edit scanner profile"
+msgstr ""
+
+msgid "DastProfiles|Edit site profile"
+msgstr ""
+
+msgid "DastProfiles|Enable Authentication"
+msgstr ""
+
+msgid "DastProfiles|Enable Basic Authentication"
+msgstr ""
+
+msgid "DastProfiles|Enter URLs in a comma-separated list."
+msgstr ""
+
+msgid "DastProfiles|Enter a comma-separated list of request header names and values. DAST adds header to every request."
+msgstr ""
+
+msgid "DastProfiles|Error Details"
+msgstr ""
+
+msgid "DastProfiles|Excluded URLs"
+msgstr ""
+
+msgid "DastProfiles|Excluded URLs (optional)"
+msgstr ""
+
+msgid "DastProfiles|Excluded paths"
+msgstr ""
+
+msgid "DastProfiles|Excluded paths (optional)"
+msgstr ""
+
+msgid "DastProfiles|Headers will appear in vulnerability reports. %{linkStart}Only some headers are automatically masked%{linkEnd}."
+msgstr ""
+
+msgid "DastProfiles|Hide debug messages"
+msgstr ""
+
+msgid "DastProfiles|Include debug messages in the DAST console output."
+msgstr ""
+
+msgid "DastProfiles|Manage %{profileType} profiles"
+msgstr ""
+
+msgid "DastProfiles|Manage profiles"
+msgstr ""
+
+msgid "DastProfiles|Minimum = 0 (no timeout enabled), Maximum = 2880 minutes"
+msgstr ""
+
+msgid "DastProfiles|Minimum = 1 second, Maximum = 3600 seconds"
+msgstr ""
+
+msgid "DastProfiles|Modifying the URL will clear any previously entered values for the additional request headers and password fields."
+msgstr ""
+
+msgid "DastProfiles|Monitors all HTTP requests sent to the target to find potential vulnerabilities."
+msgstr ""
+
+msgid "DastProfiles|Must allow introspection queries to request the API schema. %{linkStart}How do I enable introspection%{linkEnd}?"
+msgstr ""
+
+msgid "DastProfiles|New scanner profile"
+msgstr ""
+
+msgid "DastProfiles|New site profile"
+msgstr ""
+
+msgid "DastProfiles|No scanner profile selected"
+msgstr ""
+
+msgid "DastProfiles|No scanner profiles created yet"
+msgstr ""
+
+msgid "DastProfiles|No site profile selected"
+msgstr ""
+
+msgid "DastProfiles|No site profiles created yet"
+msgstr ""
+
+msgid "DastProfiles|Not Validated"
+msgstr ""
+
+msgid "DastProfiles|Passive"
+msgstr ""
+
+msgid "DastProfiles|Password"
+msgstr ""
+
+msgid "DastProfiles|Password form field"
+msgstr ""
+
+msgid "DastProfiles|Profile in use and cannot be renamed"
+msgstr ""
+
+msgid "DastProfiles|Profile is being used by this on-demand scan"
+msgstr ""
+
+msgid "DastProfiles|Profile name"
+msgstr ""
+
+msgid "DastProfiles|Request headers"
+msgstr ""
+
+msgid "DastProfiles|Retry"
+msgstr ""
+
+msgid "DastProfiles|Run the AJAX spider, in addition to the traditional spider, to crawl the target site."
+msgstr ""
+
+msgid "DastProfiles|Save commonly used configurations for target sites and scan specifications as profiles. Use these with an on-demand scan."
+msgstr ""
+
+msgid "DastProfiles|Save profile"
+msgstr ""
+
+msgid "DastProfiles|Scan Method"
+msgstr ""
+
+msgid "DastProfiles|Scan method"
+msgstr ""
+
+msgid "DastProfiles|Scan mode"
+msgstr ""
+
+msgid "DastProfiles|Scanner name"
+msgstr ""
+
+msgid "DastProfiles|Scanner profile"
+msgstr ""
+
+msgid "DastProfiles|Scanner profiles"
+msgstr ""
+
+msgid "DastProfiles|Select a scanner profile to run a DAST scan"
+msgstr ""
+
+msgid "DastProfiles|Select a site profile to run a DAST scan"
+msgstr ""
+
+msgid "DastProfiles|Select branch"
+msgstr ""
+
+msgid "DastProfiles|Select scanner profile"
+msgstr ""
+
+msgid "DastProfiles|Select site profile"
+msgstr ""
+
+msgid "DastProfiles|Show debug messages"
+msgstr ""
+
+msgid "DastProfiles|Site name"
+msgstr ""
+
+msgid "DastProfiles|Site profile"
+msgstr ""
+
+msgid "DastProfiles|Site profiles"
+msgstr ""
+
+msgid "DastProfiles|Site type"
+msgstr ""
+
+msgid "DastProfiles|Submit button"
+msgstr ""
+
+msgid "DastProfiles|Submit button (optional)"
+msgstr ""
+
+msgid "DastProfiles|Target URL"
+msgstr ""
+
+msgid "DastProfiles|Target timeout"
+msgstr ""
+
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
+msgstr ""
+
+msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
+msgstr ""
+
+msgid "DastProfiles|This profile is currently being used in a policy."
+msgstr ""
+
+msgid "DastProfiles|This scanner profile is currently being used by a policy. To make edits you must remove it from the active policy."
+msgstr ""
+
+msgid "DastProfiles|This site profile is currently being used by a policy. To make edits you must remove it from the active policy."
+msgstr ""
+
+msgid "DastProfiles|Turn on AJAX spider"
+msgstr ""
+
+msgid "DastProfiles|URL"
+msgstr ""
+
+msgid "DastProfiles|URLs to skip during the authenticated scan."
+msgstr ""
+
+msgid "DastProfiles|Username"
+msgstr ""
+
+msgid "DastProfiles|Username form field"
+msgstr ""
+
+msgid "DastProfiles|Validate"
+msgstr ""
+
+msgid "DastProfiles|Validate site profile"
+msgstr ""
+
+msgid "DastProfiles|Validated"
+msgstr ""
+
+msgid "DastProfiles|Validation status"
+msgstr ""
+
+msgid "DastProfiles|Website"
+msgstr ""
+
+msgid "DastProfiles|What does each method do?"
+msgstr ""
+
+msgid "DastProfiles|You can either choose a passive scan or validate the target site from the site profile management page. %{docsLinkStart}Learn more about site validation.%{docsLinkEnd}"
+msgstr ""
+
+msgid "DastProfiles|You cannot run an active scan against an unvalidated site."
+msgstr ""
+
+msgid "DastProfiles|https://example.com/dast_example.har"
+msgstr ""
+
+msgid "DastProfiles|https://example.com/openapi.json"
+msgstr ""
+
+msgid "DastProfiles|https://example.com/postman_collection.json"
+msgstr ""
+
+msgid "DastSiteValidation|Copy HTTP header to clipboard"
+msgstr ""
+
+msgid "DastSiteValidation|Copy Meta tag to clipboard"
+msgstr ""
+
+msgid "DastSiteValidation|Could not create validation token. Please try again."
+msgstr ""
+
+msgid "DastSiteValidation|Could not revoke validation. Please try again."
+msgstr ""
+
+msgid "DastSiteValidation|Download validation text file"
+msgstr ""
+
+msgid "DastSiteValidation|Header validation"
+msgstr ""
+
+msgid "DastSiteValidation|Meta tag validation"
+msgstr ""
+
+msgid "DastSiteValidation|Not validated"
+msgstr ""
+
+msgid "DastSiteValidation|Retry validation"
+msgstr ""
+
+msgid "DastSiteValidation|Revoke validation"
+msgstr ""
+
+msgid "DastSiteValidation|Step 1 - Choose site validation method."
+msgstr ""
+
+msgid "DastSiteValidation|Step 2 - Add the following HTTP header to your site."
+msgstr ""
+
+msgid "DastSiteValidation|Step 2 - Add the following meta tag to your site."
+msgstr ""
+
+msgid "DastSiteValidation|Step 2 - Download the following text file, then upload it to the target site."
+msgstr ""
+
+msgid "DastSiteValidation|Step 3 - Confirm header location."
+msgstr ""
+
+msgid "DastSiteValidation|Step 3 - Confirm meta tag location."
+msgstr ""
+
+msgid "DastSiteValidation|Step 3 - Confirm text file location."
+msgstr ""
+
+msgid "DastSiteValidation|Text file validation"
+msgstr ""
+
+msgid "DastSiteValidation|The validation has failed. Please try again."
+msgstr ""
+
+msgid "DastSiteValidation|The validation is in progress. Please wait..."
+msgstr ""
+
+msgid "DastSiteValidation|This will affect %d other profile targeting the same URL."
+msgid_plural "DastSiteValidation|This will affect %d other profiles targeting the same URL."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "DastSiteValidation|To run an active scan, validate your site. Site profile validation reduces the risk of running an active scan against the wrong website. All site profiles that share the same base URL share the same validation status."
+msgstr ""
+
+msgid "DastSiteValidation|Validate"
+msgstr ""
+
+msgid "DastSiteValidation|Validate site"
+msgstr ""
+
+msgid "DastSiteValidation|Validated"
+msgstr ""
+
+msgid "DastSiteValidation|Validating..."
+msgstr ""
+
+msgid "DastSiteValidation|Validation failed"
+msgstr ""
+
+msgid "DastSiteValidation|Validation failed for %{url}. %{retryButtonStart}Retry validation%{retryButtonEnd}."
+msgstr ""
+
+msgid "DastSiteValidation|Validation succeeded. Both active and passive scans can be run against the target site."
+msgstr ""
+
+msgid "DastSiteValidation|You will not be able to run active scans against %{url}."
+msgstr ""
+
+msgid "Data is still calculating..."
+msgstr ""
+
+msgid "Data refresh"
+msgstr ""
+
+msgid "Data type"
+msgstr ""
+
+msgid "Database '%{database_name}' is using PostgreSQL %{pg_version_current}, but this version of GitLab requires PostgreSQL %{pg_version_minimum}. Please upgrade your environment to a supported PostgreSQL version. See %{pg_requirements_url} for details."
+msgstr ""
+
+msgid "Database update failed"
+msgstr ""
+
+msgid "DatadogIntegration|%{linkOpen}API key%{linkClose} used for authentication with Datadog."
+msgstr ""
+
+msgid "DatadogIntegration|(Advanced) The full URL for your Datadog site."
+msgstr ""
+
+msgid "DatadogIntegration|API URL"
+msgstr ""
+
+msgid "DatadogIntegration|Custom tags in Datadog. Enter one tag per line in the %{codeOpen}key:value%{codeClose} format. %{linkOpen}How do I use tags?%{linkClose}"
+msgstr ""
+
+msgid "DatadogIntegration|Environment"
+msgstr ""
+
+msgid "DatadogIntegration|For self-managed deployments, set the %{codeOpen}env%{codeClose} tag for all the data sent to Datadog. %{linkOpen}How do I use tags?%{linkClose}"
+msgstr ""
+
+msgid "DatadogIntegration|How do I set up this integration?"
+msgstr ""
+
+msgid "DatadogIntegration|Send CI/CD pipeline information to Datadog to monitor for job failures and troubleshoot performance issues. %{docs_link}"
+msgstr ""
+
+msgid "DatadogIntegration|Service"
+msgstr ""
+
+msgid "DatadogIntegration|Tag all data from this GitLab instance in Datadog. Useful when managing several self-managed deployments."
+msgstr ""
+
+msgid "DatadogIntegration|Tags"
+msgstr ""
+
+msgid "DatadogIntegration|The Datadog site to send data to. To send data to the EU site, use %{codeOpen}datadoghq.eu%{codeClose}."
+msgstr ""
+
+msgid "DatadogIntegration|Trace your GitLab pipelines with Datadog."
+msgstr ""
+
+msgid "DatadogIntegration|have an invalid format"
+msgstr ""
+
+msgid "Date"
+msgstr ""
+
+msgid "Date merged"
+msgstr ""
+
+msgid "Date range"
+msgstr ""
+
+msgid "Date range limited to %d day"
+msgid_plural "Date range limited to %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Date range limited to %{number} days"
+msgstr ""
+
+msgid "Date range must be shorter than %{max_range} days."
+msgstr ""
+
+msgid "Date range too large"
+msgstr ""
+
+msgid "DateRange|%{start_date}–%{end_date}"
+msgstr ""
+
+msgid "Day of month"
+msgstr ""
+
+msgid "DayTitle|F"
+msgstr ""
+
+msgid "DayTitle|M"
+msgstr ""
+
+msgid "DayTitle|S"
+msgstr ""
+
+msgid "DayTitle|W"
+msgstr ""
+
+msgid "Days"
+msgstr ""
+
+msgid "Days of inactivity before deactivation"
+msgstr ""
+
+msgid "Days to merge"
+msgstr ""
+
+msgid "Deactivate"
+msgstr ""
+
+msgid "Deactivate dormant users after a period of inactivity"
+msgstr ""
+
+msgid "Dear Administrator,"
+msgstr ""
+
+msgid "Debug"
+msgstr ""
+
+msgid "Dec"
+msgstr ""
+
+msgid "December"
+msgstr ""
+
+msgid "Decline"
+msgstr ""
+
+msgid "Decline and sign out"
+msgstr ""
+
+msgid "Decompressed archive size validation failed."
+msgstr ""
+
+msgid "Decrease"
+msgstr ""
+
+msgid "Decrement suggestion line end"
+msgstr ""
+
+msgid "Decrement suggestion line start"
+msgstr ""
+
+msgid "Default - Never run"
+msgstr ""
+
+msgid "Default CI/CD configuration file"
+msgstr ""
+
+msgid "Default artifacts expiration"
+msgstr ""
+
+msgid "Default branch"
+msgstr ""
+
+msgid "Default branch and protected branches"
+msgstr ""
+
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
+msgid "Default description template for issues"
+msgstr ""
+
+msgid "Default description template for merge requests"
+msgstr ""
+
+msgid "Default first day of the week"
+msgstr ""
+
+msgid "Default first day of the week in calendars and date pickers."
+msgstr ""
+
+msgid "Default language"
+msgstr ""
+
+msgid "Default language for users who are not logged in."
+msgstr ""
+
+msgid "Default projects limit"
+msgstr ""
+
+msgid "Default timeout"
+msgstr ""
+
+msgid "Default: Map a FogBugz account ID to a full name"
+msgstr ""
+
+msgid "DefaultBranchLabel|default"
+msgstr ""
+
+msgid "DefaultBranchProtection|Both developers and maintainers can push new commits, but cannot force push."
+msgstr ""
+
+msgid "DefaultBranchProtection|Both developers and maintainers can push new commits, force push, or delete the branch."
+msgstr ""
+
+msgid "DefaultBranchProtection|Developers can push the initial commit to a repository, but none afterward. Maintainers can always push. No one can force push."
+msgstr ""
+
+msgid "DefaultBranchProtection|Developers cannot push new commits, but are allowed to accept merge requests to the branch. Maintainers can push to the branch."
+msgstr ""
+
+msgid "DefaultBranchProtection|Developers cannot push new commits, but maintainers can. No one can force push."
+msgstr ""
+
+msgid "DefaultBranchProtection|Fully protected"
+msgstr ""
+
+msgid "DefaultBranchProtection|Fully protected after initial push"
+msgstr ""
+
+msgid "DefaultBranchProtection|Not protected"
+msgstr ""
+
+msgid "DefaultBranchProtection|Partially protected"
+msgstr ""
+
+msgid "DefaultBranchProtection|Protected against pushes"
+msgstr ""
+
+msgid "Define a custom deploy freeze pattern with %{cronSyntaxStart}cron syntax%{cronSyntaxEnd}."
+msgstr ""
+
+msgid "Define a custom pattern with cron syntax"
+msgstr ""
+
+msgid "Define custom rules for what constitutes spam, independent of Akismet"
+msgstr ""
+
+msgid "Define how approval rules are applied to merge requests."
+msgstr ""
+
+msgid "Define rules for who can push, merge, and the required approvals for each branch."
+msgstr ""
+
+msgid "Definition"
+msgstr ""
+
+msgid "Delay 2FA enforcement (hours)"
+msgstr ""
+
+msgid "DelayedJobs|Are you sure you want to run %{jobName} immediately? Otherwise this job will run automatically after its timer finishes."
+msgstr ""
+
+msgid "DelayedJobs|Are you sure you want to run %{job_name} immediately? This job will run automatically after it's timer finishes."
+msgstr ""
+
+msgid "DelayedJobs|Are you sure you want to run %{job_name} immediately? This job will run automatically after its timer finishes."
+msgstr ""
+
+msgid "DelayedJobs|Run the delayed job now?"
+msgstr ""
+
+msgid "DelayedJobs|Start now"
+msgstr ""
+
+msgid "DelayedJobs|Unschedule"
+msgstr ""
+
+msgid "DelayedJobs|delayed"
+msgstr ""
+
+msgid "Delete"
+msgstr ""
+
+msgid "Delete %{issuableType}"
+msgstr ""
+
+msgid "Delete %{issuableType}?"
+msgstr ""
+
+msgid "Delete %{name}"
+msgstr ""
+
+msgid "Delete Comment"
+msgstr ""
+
+msgid "Delete File"
+msgstr ""
+
+msgid "Delete Key"
+msgstr ""
+
+msgid "Delete Value Stream"
+msgstr ""
+
+msgid "Delete account"
+msgstr ""
+
+msgid "Delete asset"
+msgstr ""
+
+msgid "Delete audio"
+msgstr ""
+
+msgid "Delete badge"
+msgstr ""
+
+msgid "Delete code block"
+msgstr ""
+
+msgid "Delete column"
+msgid_plural "Delete %d columns"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Delete comment"
+msgstr ""
+
+msgid "Delete comment template"
+msgstr ""
+
+msgid "Delete comment?"
+msgstr ""
+
+msgid "Delete corpus"
+msgstr ""
+
+msgid "Delete custom emoji"
+msgstr ""
+
+msgid "Delete deploy key"
+msgstr ""
+
+msgid "Delete diagram"
+msgstr ""
+
+msgid "Delete epic"
+msgstr ""
+
+msgid "Delete file"
+msgstr ""
+
+msgid "Delete identity"
+msgstr ""
+
+msgid "Delete image"
+msgstr ""
+
+msgid "Delete internal note"
+msgstr ""
+
+msgid "Delete label"
+msgstr ""
+
+msgid "Delete label: %{labelName}"
+msgstr ""
+
+msgid "Delete pipeline"
+msgstr ""
+
+msgid "Delete project"
+msgstr ""
+
+msgid "Delete release"
+msgstr ""
+
+msgid "Delete release %{release}?"
+msgstr ""
+
+msgid "Delete row"
+msgid_plural "Delete %d rows"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Delete selected"
+msgstr ""
+
+msgid "Delete snippet"
+msgstr ""
+
+msgid "Delete snippet?"
+msgstr ""
+
+msgid "Delete source branch"
+msgstr ""
+
+msgid "Delete source branch when merge request is accepted."
+msgstr ""
+
+msgid "Delete subscription"
+msgstr ""
+
+msgid "Delete table"
+msgstr ""
+
+msgid "Delete this attachment"
+msgstr ""
+
+msgid "Delete this epic and all descendants?"
+msgstr ""
+
+msgid "Delete this project"
+msgstr ""
+
+msgid "Delete user list"
+msgstr ""
+
+msgid "Delete video"
+msgstr ""
+
+msgid "DeleteProject|Couldn't remove the project. A project repository storage move is in progress. Try again when it's complete."
+msgstr ""
+
+msgid "DeleteProject|Couldn't remove the project. A related snippet repository storage move is in progress. Try again when it's complete."
+msgstr ""
+
+msgid "DeleteProject|Failed to remove design repository. Please try again or contact administrator."
+msgstr ""
+
+msgid "DeleteProject|Failed to remove events. Please try again or contact administrator."
+msgstr ""
+
+msgid "DeleteProject|Failed to remove project repository. Please try again or contact administrator."
+msgstr ""
+
+msgid "DeleteProject|Failed to remove project snippets. Please try again or contact administrator."
+msgstr ""
+
+msgid "DeleteProject|Failed to remove some tags in project container registry. Please try again or contact administrator."
+msgstr ""
+
+msgid "DeleteProject|Failed to remove webhooks. Please try again or contact administrator."
+msgstr ""
+
+msgid "DeleteProject|Failed to remove wiki repository. Please try again or contact administrator."
+msgstr ""
+
+msgid "DeleteRelease|Are you sure you want to delete this release?"
+msgstr ""
+
+msgid "DeleteRelease|For more details, see %{docsPathStart}Deleting a release%{docsPathEnd}."
+msgstr ""
+
+msgid "DeleteRelease|You are about to delete release %{release} and its assets. The Git tag %{tag} will not be deleted."
+msgstr ""
+
+msgid "DeleteValueStream|'%{name}' Value Stream deleted"
+msgstr ""
+
+msgid "DeleteValueStream|Are you sure you want to delete the \"%{name}\" Value Stream?"
+msgstr ""
+
+msgid "DeleteValueStream|Delete %{name}"
+msgstr ""
+
+msgid "Deleted"
+msgstr ""
+
+msgid "Deleted chat nickname: %{chat_name}!"
+msgstr ""
+
+msgid "Deleted commits:"
+msgstr ""
+
+msgid "Deleted projects cannot be restored!"
+msgstr ""
+
+msgid "Deleted the source branch."
+msgstr ""
+
+msgid "Deletes the source branch"
+msgstr ""
+
+msgid "Deleting"
+msgstr ""
+
+msgid "Deleting a project places it into a read-only state until %{date}, at which point the project will be permanently deleted. Are you ABSOLUTELY sure?"
+msgstr ""
+
+msgid "Deleting protected branches is blocked by security policies"
+msgstr ""
+
+msgid "Deleting the project will delete its repository and all related resources, including issues and merge requests."
+msgstr ""
+
+msgid "Deletion pending. This project will be deleted on %{date}. Repository and other project resources are read-only."
+msgstr ""
+
+msgid "DeletionSettings|Deletion protection"
+msgstr ""
+
+msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
+msgstr ""
+
+msgid "Denied"
+msgstr ""
+
+msgid "Denied authorization of chat nickname %{user_name}."
+msgstr ""
+
+msgid "Denied licenses must be removed or approved."
+msgstr ""
+
+msgid "Deny"
+msgstr ""
+
+msgid "Deny access request"
+msgstr ""
+
+msgid "Dependencies"
+msgstr ""
+
+msgid "Dependencies help page link"
+msgstr ""
+
+msgid "Dependencies|%d additional vulnerability not shown"
+msgid_plural "Dependencies|%d additional vulnerabilities not shown"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Dependencies|%d more"
+msgid_plural "Dependencies|%d more"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Dependencies|%d vulnerability detected"
+msgid_plural "Dependencies|%d vulnerabilities detected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Dependencies|%{locationCount} locations"
+msgstr ""
+
+msgid "Dependencies|%{projectCount} projects"
+msgstr ""
+
+msgid "Dependencies|%{remainingLicensesCount} more"
+msgstr ""
+
+msgid "Dependencies|(top level)"
+msgstr ""
+
+msgid "Dependencies|All"
+msgstr ""
+
+msgid "Dependencies|Component"
+msgstr ""
+
+msgid "Dependencies|Component name"
+msgstr ""
+
+msgid "Dependencies|Dependency path"
+msgstr ""
+
+msgid "Dependencies|Error exporting the dependency list. Please reload the page."
+msgstr ""
+
+msgid "Dependencies|Export as JSON"
+msgstr ""
+
+msgid "Dependencies|Job failed to generate the dependency list"
+msgstr ""
+
+msgid "Dependencies|Learn more about dependency paths"
+msgstr ""
+
+msgid "Dependencies|License"
+msgstr ""
+
+msgid "Dependencies|Location"
+msgstr ""
+
+msgid "Dependencies|Location and dependency path"
+msgstr ""
+
+msgid "Dependencies|Packager"
+msgstr ""
+
+msgid "Dependencies|Project list unavailable"
+msgstr ""
+
+msgid "Dependencies|Projects"
+msgstr ""
+
+msgid "Dependencies|Software Bill of Materials (SBOM) based on the %{linkStart}latest successful%{linkEnd} scan"
+msgstr ""
+
+msgid "Dependencies|Software Bill of Materials (SBOM) based on the latest successful scan of each project."
+msgstr ""
+
+msgid "Dependencies|The %{codeStartTag}dependency_scanning%{codeEndTag} job has failed and cannot generate the list. Please ensure the job is running properly and run the pipeline again."
+msgstr ""
+
+msgid "Dependencies|The component dependency path is based on the lock file. There may be several paths. In these cases, the longest path is displayed."
+msgstr ""
+
+msgid "Dependencies|There may be multiple paths"
+msgstr ""
+
+msgid "Dependencies|There was a problem fetching the licenses for this group."
+msgstr ""
+
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
+msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
+msgstr ""
+
+msgid "Dependencies|Toggle vulnerability list"
+msgstr ""
+
+msgid "Dependencies|Unknown path"
+msgstr ""
+
+msgid "Dependencies|Unsupported file(s) detected"
+msgstr ""
+
+msgid "Dependencies|Vulnerable components"
+msgstr ""
+
+msgid "Dependencies|unknown"
+msgstr ""
+
+msgid "Dependency List has no entries"
+msgstr ""
+
+msgid "Dependency Proxy"
+msgstr ""
+
+msgid "Dependency Scanning"
+msgstr ""
+
+msgid "Dependency list"
+msgstr ""
+
+msgid "DependencyProxy|%{docLinkStart}See the documentation%{docLinkEnd} for other ways to store Docker images in Dependency Proxy cache."
+msgstr ""
+
+msgid "DependencyProxy|All items in the cache are scheduled for removal."
+msgstr ""
+
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
+msgid "DependencyProxy|Cached %{time}"
+msgstr ""
+
+msgid "DependencyProxy|Clear cache"
+msgstr ""
+
+msgid "DependencyProxy|Clear the Dependency Proxy cache automatically"
+msgstr ""
+
+msgid "DependencyProxy|Configure in settings"
+msgstr ""
+
+msgid "DependencyProxy|Contains %{count} blobs of images (%{size})"
+msgstr ""
+
+msgid "DependencyProxy|Copy example"
+msgstr ""
+
+msgid "DependencyProxy|Copy image path"
+msgstr ""
+
+msgid "DependencyProxy|Copy prefix"
+msgstr ""
+
+msgid "DependencyProxy|Dependency Proxy"
+msgstr ""
+
+msgid "DependencyProxy|Dependency Proxy image prefix"
+msgstr ""
+
+msgid "DependencyProxy|Digest: %{shortDigest}"
+msgstr ""
+
+msgid "DependencyProxy|Enable Dependency Proxy"
+msgstr ""
+
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
+msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
+msgstr ""
+
+msgid "DependencyProxy|Image list"
+msgstr ""
+
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
+msgid "DependencyProxy|Pull image by digest example"
+msgstr ""
+
+msgid "DependencyProxy|Scheduled for deletion"
+msgstr ""
+
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
+msgid "DependencyProxy|There are no images in the cache"
+msgstr ""
+
+msgid "DependencyProxy|To see the image prefix and what is in the cache, visit the %{linkStart}Dependency Proxy%{linkEnd}"
+msgstr ""
+
+msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
+msgstr ""
+
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
+msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
+msgstr ""
+
+msgid "Depends on %d merge request being merged"
+msgid_plural "Depends on %d merge requests being merged"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Depends on %{strongStart}%{closedCount} closed%{strongEnd} merge request."
+msgid_plural "Depends on %{strongStart}%{closedCount} closed%{strongEnd} merge requests."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Deploy"
+msgid_plural "Deploys"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Deploy Key"
+msgstr ""
+
+msgid "Deploy Keys"
+msgstr ""
+
+msgid "Deploy Token"
+msgstr ""
+
+msgid "Deploy container based web apps on Google managed clusters"
+msgstr ""
+
+msgid "Deploy freezes"
+msgstr ""
+
+msgid "Deploy key was successfully updated."
+msgstr ""
+
+msgid "Deploy keys"
+msgstr ""
+
+msgid "Deploy keys grant read/write access to all repositories in your instance, start by creating a new one above."
+msgstr ""
+
+msgid "Deploy progress not found. To see pods, ensure your environment matches %{linkStart}deploy board criteria%{linkEnd}."
+msgstr ""
+
+msgid "Deploy static assets and resources to Google managed CDN"
+msgstr ""
+
+msgid "Deploy to..."
+msgstr ""
+
+msgid "DeployBoards|To see deployment progress for your environments, make sure you are deploying to %{codeStart}$KUBE_NAMESPACE%{codeEnd} and annotating with %{codeStart}app.gitlab.com/app=$CI_PROJECT_PATH_SLUG%{codeEnd} and %{codeStart}app.gitlab.com/env=$CI_ENVIRONMENT_SLUG%{codeEnd}."
+msgstr ""
+
+msgid "DeployBoard|Kubernetes Pods"
+msgstr ""
+
+msgid "DeployFreeze|Add a freeze period to prevent unintended releases during a period of time for a given environment. You must update the deployment jobs in %{filename} according to the deploy freezes added here. %{freeze_period_link_start}Learn more.%{freeze_period_link_end}"
+msgstr ""
+
+msgid "DeployFreeze|Add deploy freeze"
+msgstr ""
+
+msgid "DeployFreeze|Delete deploy freeze?"
+msgstr ""
+
+msgid "DeployFreeze|Delete freeze period"
+msgstr ""
+
+msgid "DeployFreeze|Deploy freeze from %{start} to %{end} in %{timezone} will be removed. Are you sure?"
+msgstr ""
+
+msgid "DeployFreeze|Deploy freezes"
+msgstr ""
+
+msgid "DeployFreeze|Freeze end"
+msgstr ""
+
+msgid "DeployFreeze|Freeze start"
+msgstr ""
+
+msgid "DeployFreeze|No deploy freezes exist for this project. To add one, select %{strongStart}Add deploy freeze%{strongEnd} above."
+msgstr ""
+
+msgid "DeployFreeze|Specify deploy freezes using %{cron_syntax_link_start}cron syntax%{cron_syntax_link_end}."
+msgstr ""
+
+msgid "DeployFreeze|Time zone"
+msgstr ""
+
+msgid "DeployKeys|+%{count} others"
+msgstr ""
+
+msgid "DeployKeys|Add new deploy key"
+msgstr ""
+
+msgid "DeployKeys|Add new key"
+msgstr ""
+
+msgid "DeployKeys|Current project"
+msgstr ""
+
+msgid "DeployKeys|Deploy key"
+msgstr ""
+
+msgid "DeployKeys|Enabled deploy keys"
+msgstr ""
+
+msgid "DeployKeys|Error enabling deploy key"
+msgstr ""
+
+msgid "DeployKeys|Error getting deploy keys"
+msgstr ""
+
+msgid "DeployKeys|Error removing deploy key"
+msgstr ""
+
+msgid "DeployKeys|Expand %{count} other projects"
+msgstr ""
+
+msgid "DeployKeys|Grant write permissions to this key"
+msgstr ""
+
+msgid "DeployKeys|Loading deploy keys"
+msgstr ""
+
+msgid "DeployKeys|No deploy keys found, start by adding a new one above."
+msgstr ""
+
+msgid "DeployKeys|Privately accessible deploy keys"
+msgstr ""
+
+msgid "DeployKeys|Project usage"
+msgstr ""
+
+msgid "DeployKeys|Publicly accessible deploy keys"
+msgstr ""
+
+msgid "DeployKeys|Read access only"
+msgstr ""
+
+msgid "DeployTokens|Active deploy tokens"
+msgstr ""
+
+msgid "DeployTokens|Allows read and write access to registry images."
+msgstr ""
+
+msgid "DeployTokens|Allows read and write access to the package registry."
+msgstr ""
+
+msgid "DeployTokens|Allows read, write and delete access to the package registry."
+msgstr ""
+
+msgid "DeployTokens|Allows read-only access to registry images."
+msgstr ""
+
+msgid "DeployTokens|Allows read-only access to the package registry."
+msgstr ""
+
+msgid "DeployTokens|Allows read-only access to the repository."
+msgstr ""
+
+msgid "DeployTokens|Allows write access to registry images."
+msgstr ""
+
+msgid "DeployTokens|Cancel"
+msgstr ""
+
+msgid "DeployTokens|Copy deploy token"
+msgstr ""
+
+msgid "DeployTokens|Copy username"
+msgstr ""
+
+msgid "DeployTokens|Create a new deploy token for all projects in this group. %{link_start}What are deploy tokens?%{link_end}"
+msgstr ""
+
+msgid "DeployTokens|Create deploy token"
+msgstr ""
+
+msgid "DeployTokens|Created"
+msgstr ""
+
+msgid "DeployTokens|Deploy tokens"
+msgstr ""
+
+msgid "DeployTokens|Deploy tokens allow access to packages, your repository, and registry images."
+msgstr ""
+
+msgid "DeployTokens|Enter a unique name for your deploy token."
+msgstr ""
+
+msgid "DeployTokens|Enter a username for your token. Defaults to %{code_start}gitlab+deploy-token-{n}%{code_end}."
+msgstr ""
+
+msgid "DeployTokens|Enter an expiration date for your token. Defaults to never expire."
+msgstr ""
+
+msgid "DeployTokens|Expiration date (optional)"
+msgstr ""
+
+msgid "DeployTokens|Expires"
+msgstr ""
+
+msgid "DeployTokens|Failed to create a new deployment token"
+msgstr ""
+
+msgid "DeployTokens|Group deploy tokens allow access to the packages, repositories, and registry images within the group."
+msgstr ""
+
+msgid "DeployTokens|Name"
+msgstr ""
+
+msgid "DeployTokens|New deploy token"
+msgstr ""
+
+msgid "DeployTokens|Revoke"
+msgstr ""
+
+msgid "DeployTokens|Revoke %{name}"
+msgstr ""
+
+msgid "DeployTokens|Scopes"
+msgstr ""
+
+msgid "DeployTokens|Scopes (select at least one)"
+msgstr ""
+
+msgid "DeployTokens|This %{entity_type} has no active deploy tokens."
+msgstr ""
+
+msgid "DeployTokens|This action cannot be undone."
+msgstr ""
+
+msgid "DeployTokens|This username supports access. %{link_start}What kind of access?%{link_end}"
+msgstr ""
+
+msgid "DeployTokens|Use this token as a password. Save it. This password can %{i_start}not%{i_end} be recovered."
+msgstr ""
+
+msgid "DeployTokens|Username"
+msgstr ""
+
+msgid "DeployTokens|Username (optional)"
+msgstr ""
+
+msgid "DeployTokens|Your new deploy token"
+msgstr ""
+
+msgid "DeployTokens|Your new group deploy token has been created."
+msgstr ""
+
+msgid "DeployTokens|Your new project deploy token has been created."
+msgstr ""
+
+msgid "Deployed"
+msgstr ""
+
+msgid "Deployed to"
+msgstr ""
+
+msgid "Deployed-after"
+msgstr ""
+
+msgid "Deployed-before"
+msgstr ""
+
+msgid "Deploying to"
+msgstr ""
+
+msgid "Deployment"
+msgstr ""
+
+msgid "Deployment Frequency"
+msgstr ""
+
+msgid "Deployment Target|%{linkStart}How to provision or deploy to Kubernetes clusters from GitLab?%{linkEnd}"
+msgstr ""
+
+msgid "Deployment Target|Project deployment target (optional)"
+msgstr ""
+
+msgid "Deployment Target|Select the deployment target"
+msgstr ""
+
+msgid "Deployment approvals is not configured for this environment."
+msgstr ""
+
+msgid "Deployment frequency"
+msgstr ""
+
+msgid "DeploymentApprovals|Allow pipeline triggerer to approve deployment."
+msgstr ""
+
+msgid "DeploymentApprovals|Approvals"
+msgstr ""
+
+msgid "DeploymentApprovals|Approved By"
+msgstr ""
+
+msgid "DeploymentApprovals|Approvers"
+msgstr ""
+
+msgid "DeploymentApprovals|Developers + Maintainers"
+msgstr ""
+
+msgid "DeploymentApprovals|Maintainers"
+msgstr ""
+
+msgid "DeploymentApprovals|Set how approval rules are applied to deployments in protected environments."
+msgstr ""
+
+msgid "DeploymentApproval| Current approvals: %{current}"
+msgstr ""
+
+msgid "DeploymentApproval|Approval options"
+msgstr ""
+
+msgid "DeploymentApproval|Approve or reject deployment #%{deploymentIid}"
+msgstr ""
+
+msgid "DeploymentApproval|Approved %{time}"
+msgstr ""
+
+msgid "DeploymentApproval|Approved by you %{time}"
+msgstr ""
+
+msgid "DeploymentApproval|Approving will run the manual job from deployment #%{deploymentIid}. Rejecting will fail the manual job."
+msgstr ""
+
+msgid "DeploymentApproval|Deployment approved"
+msgstr ""
+
+msgid "DeploymentApproval|Deployment rejected"
+msgstr ""
+
+msgid "DeploymentApproval|Deployment tier: %{tier}"
+msgstr ""
+
+msgid "DeploymentApproval|Environment: %{environment}"
+msgstr ""
+
+msgid "DeploymentApproval|Manual job: %{jobName}"
+msgstr ""
+
+msgid "DeploymentApproval|Rejected %{time}"
+msgstr ""
+
+msgid "DeploymentApproval|Rejected by you %{time}"
+msgstr ""
+
+msgid "DeploymentTarget|Edge Computing (e.g. Cloudflare Workers)"
+msgstr ""
+
+msgid "DeploymentTarget|GitLab Pages"
+msgstr ""
+
+msgid "DeploymentTarget|Heroku"
+msgstr ""
+
+msgid "DeploymentTarget|Infrastructure provider (Terraform, Cloudformation, and so on)"
+msgstr ""
+
+msgid "DeploymentTarget|Kubernetes (GKE, EKS, OpenShift, and so on)"
+msgstr ""
+
+msgid "DeploymentTarget|Managed container runtime (Fargate, Cloud Run, DigitalOcean App)"
+msgstr ""
+
+msgid "DeploymentTarget|Mobile app store"
+msgstr ""
+
+msgid "DeploymentTarget|No deployment planned"
+msgstr ""
+
+msgid "DeploymentTarget|Other hosting service"
+msgstr ""
+
+msgid "DeploymentTarget|Registry (package or container)"
+msgstr ""
+
+msgid "DeploymentTarget|Self-managed container runtime (Podman, Docker Swarm, Docker Compose)"
+msgstr ""
+
+msgid "DeploymentTarget|Serverless backend (Lambda, Cloud functions)"
+msgstr ""
+
+msgid "DeploymentTarget|Virtual machine (for example, EC2)"
+msgstr ""
+
+msgid "DeploymentTarget|Web Deployment Platform (Netlify, Vercel, Gatsby)"
+msgstr ""
+
+msgid "Deployments"
+msgstr ""
+
+msgid "Deployments|%{deployments} environment impacted."
+msgid_plural "Deployments|%{deployments} environments impacted."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Deployments|Define environments in the deploy stage(s) in %{code_open}.gitlab-ci.yml%{code_close} to track deployments here."
+msgstr ""
+
+msgid "Deployments|You don't have any deployments right now."
+msgstr ""
+
+msgid "Deployment|Cancelled"
+msgstr ""
+
+msgid "Deployment|Created"
+msgstr ""
+
+msgid "Deployment|Deployment ID"
+msgstr ""
+
+msgid "Deployment|Failed"
+msgstr ""
+
+msgid "Deployment|Flux sync failed"
+msgstr ""
+
+msgid "Deployment|Flux sync reconciled successfully"
+msgstr ""
+
+msgid "Deployment|Flux sync reconciling"
+msgstr ""
+
+msgid "Deployment|Flux sync stalled"
+msgstr ""
+
+msgid "Deployment|Flux sync status is unavailable"
+msgstr ""
+
+msgid "Deployment|Flux sync status is unknown"
+msgstr ""
+
+msgid "Deployment|Latest Deployed"
+msgstr ""
+
+msgid "Deployment|Needs Approval"
+msgstr ""
+
+msgid "Deployment|Running"
+msgstr ""
+
+msgid "Deployment|Skipped"
+msgstr ""
+
+msgid "Deployment|Success"
+msgstr ""
+
+msgid "Deployment|Sync status is unknown. %{linkStart}How do I configure Flux for my deployment?%{linkEnd}"
+msgstr ""
+
+msgid "Deployment|Triggerer"
+msgstr ""
+
+msgid "Deployment|Unable to detect state. %{linkStart}How are states detected?%{linkEnd}"
+msgstr ""
+
+msgid "Deployment|Unavailable"
+msgstr ""
+
+msgid "Deployment|Unknown"
+msgstr ""
+
+msgid "Deployment|Waiting"
+msgstr ""
+
+msgid "Deprecated API rate limits"
+msgstr ""
+
+msgid "Deprioritize label"
+msgstr ""
+
+msgid "Describe the goal of the changes and what reviewers should be aware of."
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Description (optional)"
+msgstr ""
+
+msgid "Description parsed with %{link_start}GitLab Flavored Markdown%{link_end}"
+msgstr ""
+
+msgid "Description parsed with %{link_start}GitLab Flavored Markdown%{link_end}."
+msgstr ""
+
+msgid "Description:"
+msgstr ""
+
+msgid "Descriptions"
+msgstr ""
+
+msgid "Descriptive label"
+msgstr ""
+
+msgid "Deselect all"
+msgstr ""
+
+msgid "Design"
+msgstr ""
+
+msgid "Design Management files and data"
+msgstr ""
+
+msgid "DesignManagement|%{current_design} of %{designs_count}"
+msgstr ""
+
+msgid "DesignManagement|%{filename} did not change."
+msgid_plural "DesignManagement|The designs you tried uploading did not change."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "DesignManagement|Adding a design with the same filename replaces the file in a new version."
+msgstr ""
+
+msgid "DesignManagement|Archive design"
+msgstr ""
+
+msgid "DesignManagement|Archive designs"
+msgstr ""
+
+msgid "DesignManagement|Archive selected"
+msgstr ""
+
+msgid "DesignManagement|Archived designs will still be available in previous versions of the design collection."
+msgstr ""
+
+msgid "DesignManagement|Are you sure you want to archive the selected designs?"
+msgstr ""
+
+msgid "DesignManagement|Are you sure you want to cancel creating this comment?"
+msgstr ""
+
+msgid "DesignManagement|Are you sure you want to cancel editing this comment?"
+msgstr ""
+
+msgid "DesignManagement|Cancel"
+msgstr ""
+
+msgid "DesignManagement|Click the image where you'd like to start a new discussion"
+msgstr ""
+
+msgid "DesignManagement|Comment"
+msgstr ""
+
+msgid "DesignManagement|Continue creating"
+msgstr ""
+
+msgid "DesignManagement|Continue editing"
+msgstr ""
+
+msgid "DesignManagement|Could not add a new comment. Please try again."
+msgstr ""
+
+msgid "DesignManagement|Could not create new discussion. Please try again."
+msgstr ""
+
+msgid "DesignManagement|Could not delete comment. Please try again."
+msgstr ""
+
+msgid "DesignManagement|Could not update comment. Please try again."
+msgstr ""
+
+msgid "DesignManagement|Could not update description. Please try again."
+msgstr ""
+
+msgid "DesignManagement|Could not update discussion. Please try again."
+msgstr ""
+
+msgid "DesignManagement|Deselect all"
+msgstr ""
+
+msgid "DesignManagement|Design description"
+msgstr ""
+
+msgid "DesignManagement|Designs"
+msgstr ""
+
+msgid "DesignManagement|Discard changes"
+msgstr ""
+
+msgid "DesignManagement|Discussion"
+msgstr ""
+
+msgid "DesignManagement|Download design"
+msgstr ""
+
+msgid "DesignManagement|Edit description"
+msgstr ""
+
+msgid "DesignManagement|Error uploading a new design. Please try again."
+msgstr ""
+
+msgid "DesignManagement|Go back to designs"
+msgstr ""
+
+msgid "DesignManagement|Go to next design"
+msgstr ""
+
+msgid "DesignManagement|Go to previous design"
+msgstr ""
+
+msgid "DesignManagement|None"
+msgstr ""
+
+msgid "DesignManagement|Requested design version does not exist. Showing latest version instead"
+msgstr ""
+
+msgid "DesignManagement|Resolve thread"
+msgstr ""
+
+msgid "DesignManagement|Resolved Comments"
+msgstr ""
+
+msgid "DesignManagement|Save"
+msgstr ""
+
+msgid "DesignManagement|Save comment"
+msgstr ""
+
+msgid "DesignManagement|Select all"
+msgstr ""
+
+msgid "DesignManagement|Some of the designs you tried uploading did not change: %{skippedFiles} and %{moreCount} more."
+msgstr ""
+
+msgid "DesignManagement|Some of the designs you tried uploading did not change: %{skippedFiles}."
+msgstr ""
+
+msgid "DesignManagement|The maximum number of designs allowed to be uploaded is %{upload_limit}. Please try again."
+msgstr ""
+
+msgid "DesignManagement|There was an error moving your designs. Please upload your designs below."
+msgstr ""
+
+msgid "DesignManagement|To upload designs, you'll need to enable LFS and have an admin enable hashed storage. %{requirements_link_start}More information%{requirements_link_end}"
+msgstr ""
+
+msgid "DesignManagement|Unresolve thread"
+msgstr ""
+
+msgid "DesignManagement|Upload designs"
+msgstr ""
+
+msgid "DesignManagement|Upload skipped. %{reason}"
+msgstr ""
+
+msgid "DesignManagement|Write a comment or drag your files here…"
+msgstr ""
+
+msgid "DesignManagement|Your designs are being copied and are on their way… Please refresh to update."
+msgstr ""
+
+msgid "Designs"
+msgstr ""
+
+msgid "Destroy"
+msgstr ""
+
+msgid "Detail"
+msgstr ""
+
+msgid "Details"
+msgstr ""
+
+msgid "Details (default)"
+msgstr ""
+
+msgid "Details block"
+msgstr ""
+
+msgid "Detect host keys"
+msgstr ""
+
+msgid "DevOps Adoption"
+msgstr ""
+
+msgid "DevOps Reports"
+msgstr ""
+
+msgid "DevOps adoption"
+msgstr ""
+
+msgid "Developer"
+msgstr ""
+
+msgid "Device name"
+msgstr ""
+
+msgid "Devices (optional)"
+msgstr ""
+
+msgid "DevopsAdoption|%{adoptedCount}/%{featuresCount} %{title} features adopted"
+msgstr ""
+
+msgid "DevopsAdoption|Add a group to get started"
+msgstr ""
+
+msgid "DevopsAdoption|Add or remove groups"
+msgstr ""
+
+msgid "DevopsAdoption|Add or remove subgroups"
+msgstr ""
+
+msgid "DevopsAdoption|Adopted"
+msgstr ""
+
+msgid "DevopsAdoption|Adoption by group"
+msgstr ""
+
+msgid "DevopsAdoption|Adoption by subgroup"
+msgstr ""
+
+msgid "DevopsAdoption|Adoption over time"
+msgstr ""
+
+msgid "DevopsAdoption|An error occurred while removing the group. Please try again."
+msgstr ""
+
+msgid "DevopsAdoption|Approvals"
+msgstr ""
+
+msgid "DevopsAdoption|Are you sure that you would like to remove %{name} from the table?"
+msgstr ""
+
+msgid "DevopsAdoption|At least one approval on a merge request"
+msgstr ""
+
+msgid "DevopsAdoption|At least one deploy"
+msgstr ""
+
+msgid "DevopsAdoption|At least one issue created"
+msgstr ""
+
+msgid "DevopsAdoption|At least one merge request created"
+msgstr ""
+
+msgid "DevopsAdoption|At least one pipeline successfully run"
+msgstr ""
+
+msgid "DevopsAdoption|Code owners"
+msgstr ""
+
+msgid "DevopsAdoption|Code owners enabled for at least one project"
+msgstr ""
+
+msgid "DevopsAdoption|Confirm remove Group"
+msgstr ""
+
+msgid "DevopsAdoption|DAST"
+msgstr ""
+
+msgid "DevopsAdoption|DAST enabled for at least one project"
+msgstr ""
+
+msgid "DevopsAdoption|Dependency Scanning"
+msgstr ""
+
+msgid "DevopsAdoption|Dependency Scanning enabled for at least one project"
+msgstr ""
+
+msgid "DevopsAdoption|Deploys"
+msgstr ""
+
+msgid "DevopsAdoption|Dev"
+msgstr ""
+
+msgid "DevopsAdoption|DevOps adoption tracks the use of key features across your favorite groups. Add a group to the table to begin."
+msgstr ""
+
+msgid "DevopsAdoption|Edit groups"
+msgstr ""
+
+msgid "DevopsAdoption|Edit subgroups"
+msgstr ""
+
+msgid "DevopsAdoption|Feature adoption is based on usage in the previous calendar month. Data is updated at the beginning of each month. Last updated: %{timestamp}."
+msgstr ""
+
+msgid "DevopsAdoption|Fuzz Testing"
+msgstr ""
+
+msgid "DevopsAdoption|Fuzz Testing enabled for at least one project"
+msgstr ""
+
+msgid "DevopsAdoption|Issues"
+msgstr ""
+
+msgid "DevopsAdoption|MRs"
+msgstr ""
+
+msgid "DevopsAdoption|No results…"
+msgstr ""
+
+msgid "DevopsAdoption|No tracked features"
+msgstr ""
+
+msgid "DevopsAdoption|Not adopted"
+msgstr ""
+
+msgid "DevopsAdoption|Ops"
+msgstr ""
+
+msgid "DevopsAdoption|Overall adoption"
+msgstr ""
+
+msgid "DevopsAdoption|Pipelines"
+msgstr ""
+
+msgid "DevopsAdoption|Remove Group"
+msgstr ""
+
+msgid "DevopsAdoption|Remove Group from the table."
+msgstr ""
+
+msgid "DevopsAdoption|Runner configured for project/group"
+msgstr ""
+
+msgid "DevopsAdoption|Runners"
+msgstr ""
+
+msgid "DevopsAdoption|SAST"
+msgstr ""
+
+msgid "DevopsAdoption|SAST enabled for at least one project"
+msgstr ""
+
+msgid "DevopsAdoption|Sec"
+msgstr ""
+
+msgid "DevopsAdoption|There was an error enabling the current group. Please refresh the page."
+msgstr ""
+
+msgid "DevopsAdoption|There was an error fetching Group adoption data. Please refresh the page."
+msgstr ""
+
+msgid "DevopsAdoption|There was an error fetching Groups. Please refresh the page."
+msgstr ""
+
+msgid "DevopsAdoption|This group has no subgroups"
+msgstr ""
+
+msgid "DevopsAdoption|Total number of features adopted"
+msgstr ""
+
+msgid "DevopsAdoption|You cannot remove the group you are currently in."
+msgstr ""
+
+msgid "DevopsReport|DevOps Score"
+msgstr ""
+
+msgid "DevopsReport|DevOps score metrics are based on usage over the last 30 days. Last updated: %{timestamp}."
+msgstr ""
+
+msgid "DevopsReport|High"
+msgstr ""
+
+msgid "DevopsReport|Leader usage"
+msgstr ""
+
+msgid "DevopsReport|Low"
+msgstr ""
+
+msgid "DevopsReport|Moderate"
+msgstr ""
+
+msgid "DevopsReport|Overview"
+msgstr ""
+
+msgid "DevopsReport|Score"
+msgstr ""
+
+msgid "DevopsReport|Your score"
+msgstr ""
+
+msgid "DevopsReport|Your usage"
+msgstr ""
+
+msgid "Diagram (%{language})"
+msgstr ""
+
+msgid "Diagram saved successfully."
+msgstr ""
+
+msgid "Diagrams.net"
+msgstr ""
+
+msgid "Diagrams.net URL"
+msgstr ""
+
+msgid "Did not delete the source branch."
+msgstr ""
+
+msgid "Didn't receive a confirmation email?"
+msgstr ""
+
+msgid "Didn't receive confirmation instructions?"
+msgstr ""
+
+msgid "Didn't receive unlock instructions?"
+msgstr ""
+
+msgid "Diff files surpassing this limit will be presented as 'too large' and won't be expandable."
+msgstr ""
+
+msgid "Diff limits"
+msgstr ""
+
+msgid "Diff notes"
+msgstr ""
+
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
+msgid "Difference between start date and now"
+msgstr ""
+
+msgid "Different user's signature"
+msgstr ""
+
+msgid "DiffsCompareBaseBranch|(HEAD)"
+msgstr ""
+
+msgid "DiffsCompareBaseBranch|(base)"
+msgstr ""
+
+msgid "Diffs|%d addition"
+msgid_plural "Diffs|%d additions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Diffs|%d deletion"
+msgid_plural "Diffs|%d deletions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Diffs|Expand all lines"
+msgstr ""
+
+msgid "Diffs|Hide whitespace changes"
+msgstr ""
+
+msgid "Diffs|Inline"
+msgstr ""
+
+msgid "Diffs|Next 20 lines"
+msgstr ""
+
+msgid "Diffs|No file name available"
+msgstr ""
+
+msgid "Diffs|Previous 20 lines"
+msgstr ""
+
+msgid "Diffs|Show %{unfoldCount} lines"
+msgstr ""
+
+msgid "Diffs|Show all unchanged lines"
+msgstr ""
+
+msgid "Diffs|Show whitespace changes"
+msgstr ""
+
+msgid "Diffs|Showing %{dropdownStart}%{count} changed file%{dropdownEnd}"
+msgid_plural "Diffs|Showing %{dropdownStart}%{count} changed files%{dropdownEnd}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Diffs|Side-by-side"
+msgstr ""
+
+msgid "Diffs|Something went wrong while fetching diff lines."
+msgstr ""
+
+msgid "Diffs|with %{additions} and %{deletions}"
+msgstr ""
+
+msgid "Dimension"
+msgstr ""
+
+msgid "Direct member"
+msgstr ""
+
+msgid "Direct members"
+msgstr ""
+
+msgid "Direct non-authenticated users to this page."
+msgstr ""
+
+msgid "Direct users to this page after they sign out."
+msgstr ""
+
+msgid "Direction"
+msgstr ""
+
+msgid "Directory name"
+msgstr ""
+
+msgid "Disable"
+msgstr ""
+
+msgid "Disable Two-factor Authentication"
+msgstr ""
+
+msgid "Disable What's new"
+msgstr ""
+
+msgid "Disable for this project"
+msgstr ""
+
+msgid "Disable group runners"
+msgstr ""
+
+msgid "Disable two-factor authentication"
+msgstr ""
+
+msgid "Disabled"
+msgstr ""
+
+msgid "Disabled by %{parent} owner"
+msgstr ""
+
+msgid "Disabled mirrors can only be enabled by instance owners. It is recommended that you delete them."
+msgstr ""
+
+msgid "Discard"
+msgstr ""
+
+msgid "Discard all changes"
+msgstr ""
+
+msgid "Discard all changes?"
+msgstr ""
+
+msgid "Discard changes"
+msgstr ""
+
+msgid "Discard changes to %{path}?"
+msgstr ""
+
+msgid "Discard draft"
+msgstr ""
+
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
+msgid "DiscordService|Discord Notifications"
+msgstr ""
+
+msgid "DiscordService|Override the default webhook (e.g. https://discord.com/api/webhooks/…)"
+msgstr ""
+
+msgid "DiscordService|Send notifications about project events to a Discord channel."
+msgstr ""
+
+msgid "Discover GitLab Geo"
+msgstr ""
+
+msgid "Discover|Check your application for security vulnerabilities that may lead to unauthorized access, data leaks, and denial of services."
+msgstr ""
+
+msgid "Discover|For code that's already live in production, our dashboards give you an easy way to prioritize any issues that are found, empowering your team to ship quickly and securely."
+msgstr ""
+
+msgid "Discover|GitLab will perform static and dynamic tests on the code of your application, looking for known flaws and report them in the merge request so you can fix them before merging."
+msgstr ""
+
+msgid "Discover|Security capabilities, integrated into your development lifecycle"
+msgstr ""
+
+msgid "Discover|See the other features of the %{linkStart}ultimate plan%{linkEnd}"
+msgstr ""
+
+msgid "Discover|Start a free trial"
+msgstr ""
+
+msgid "Discover|Upgrade now"
+msgstr ""
+
+msgid "Discuss a specific suggestion or question internally that needs to be resolved."
+msgstr ""
+
+msgid "Discuss a specific suggestion or question internally."
+msgstr ""
+
+msgid "Discuss a specific suggestion or question that needs to be resolved."
+msgstr ""
+
+msgid "Discuss a specific suggestion or question."
+msgstr ""
+
+msgid "Discussion locked."
+msgstr ""
+
+msgid "Discussion to reply to cannot be found"
+msgstr ""
+
+msgid "Discussion unlocked."
+msgstr ""
+
+msgid "Disk Usage"
+msgstr ""
+
+msgid "Dismiss"
+msgstr ""
+
+msgid "Dismiss %d selected vulnerability as"
+msgid_plural "Dismiss %d selected vulnerabilities as"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Dismiss Alert"
+msgstr ""
+
+msgid "Dismiss merge request promotion"
+msgstr ""
+
+msgid "Dismiss selected"
+msgstr ""
+
+msgid "Dismiss trial promotion"
+msgstr ""
+
+msgid "Dismissed"
+msgstr ""
+
+msgid "Dismissed (%d reason)"
+msgid_plural "Dismissed (%d reasons)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Display"
+msgstr ""
+
+msgid "Display alerts from all configured monitoring tools."
+msgstr ""
+
+msgid "Display as:"
+msgstr ""
+
+msgid "Display blame info"
+msgstr ""
+
+msgid "Display milestones"
+msgstr ""
+
+msgid "Display name"
+msgstr ""
+
+msgid "Display progress of child issues"
+msgstr ""
+
+msgid "Display rendered file"
+msgstr ""
+
+msgid "Display source"
+msgstr ""
+
+msgid "Display time tracking in issues in total hours only. %{link_start}What is time tracking?%{link_end}"
+msgstr ""
+
+msgid "Do not display content for customer experience improvement and offers from third parties"
+msgstr ""
+
+msgid "Do not force push over diverged refs. After the mirror is created, this setting can only be modified using the API. %{mirroring_docs_link_start}Learn more about this option%{link_closing_tag} and %{mirroring_api_docs_link_start}the API.%{link_closing_tag}"
+msgstr ""
+
+msgid "Do not include the username in the URL, use the username field below if required: %{code_open}https://gitlab.company.com/group/project.git%{code_close}."
+msgstr ""
+
+msgid "Do you want to remove this deploy key?"
+msgstr ""
+
+msgid "Dockerfile"
+msgstr ""
+
+msgid "Documentation"
+msgstr ""
+
+msgid "Documentation for popular identity providers"
+msgstr ""
+
+msgid "Documentation pages URL"
+msgstr ""
+
+msgid "Documents reindexed: %{processed_documents} (%{percentage}%%)"
+msgstr ""
+
+msgid "Domain"
+msgstr ""
+
+msgid "Domain Name"
+msgstr ""
+
+msgid "Domain Verification"
+msgstr ""
+
+msgid "DomainVerification|Add Domain"
+msgstr ""
+
+msgid "DomainVerification|Are you sure you want to delete this domain?"
+msgstr ""
+
+msgid "DomainVerification|Delete domain"
+msgstr ""
+
+msgid "DomainVerification|Domain was added"
+msgstr ""
+
+msgid "DomainVerification|Domain was removed"
+msgstr ""
+
+msgid "DomainVerification|Domain was updated"
+msgstr ""
+
+msgid "DomainVerification|Edit Domain"
+msgstr ""
+
+msgid "DomainVerification|Enter your domain"
+msgstr ""
+
+msgid "DomainVerification|Failed to verify domain ownership"
+msgstr ""
+
+msgid "DomainVerification|How do I configure a domain?"
+msgstr ""
+
+msgid "DomainVerification|How to set up DNS records?"
+msgstr ""
+
+msgid "DomainVerification|Manually enter certificate information"
+msgstr ""
+
+msgid "DomainVerification|New Domain"
+msgstr ""
+
+msgid "DomainVerification|No domains configured. Create a domain in a project in this group hierarchy."
+msgstr ""
+
+msgid "DomainVerification|Remove certificate"
+msgstr ""
+
+msgid "DomainVerification|Successfully verified domain ownership"
+msgstr ""
+
+msgid "DomainVerification|The following domains are configured for projects in this group. Users with email addresses that match a verified domain do not need to confirm their account."
+msgstr ""
+
+msgid "DomainVerification|To verify ownership of your domain, add the above key to a TXT record within your DNS configuration within seven days. %{link_to_help}"
+msgstr ""
+
+msgid "Domains"
+msgstr ""
+
+msgid "Don't have a group?"
+msgstr ""
+
+msgid "Don't have an account yet?"
+msgstr ""
+
+msgid "Don't include description in commit message"
+msgstr ""
+
+msgid "Don't paste the private part of the GPG key. Paste the public part which begins with '-----BEGIN PGP PUBLIC KEY BLOCK-----'."
+msgstr ""
+
+msgid "Don't send service data"
+msgstr ""
+
+msgid "Don't show again"
+msgstr ""
+
+msgid "Don't show this again"
+msgstr ""
+
+msgid "Done"
+msgstr ""
+
+msgid "Dormant users"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Download %{format}"
+msgstr ""
+
+msgid "Download %{format}:"
+msgstr ""
+
+msgid "Download (%{fileSizeReadable})"
+msgstr ""
+
+msgid "Download (%{size})"
+msgstr ""
+
+msgid "Download PDF"
+msgstr ""
+
+msgid "Download artifacts"
+msgstr ""
+
+msgid "Download artifacts archive"
+msgstr ""
+
+msgid "Download codes"
+msgstr ""
+
+msgid "Download export"
+msgstr ""
+
+msgid "Download image"
+msgstr ""
+
+msgid "Download raw data (.csv)"
+msgstr ""
+
+msgid "Download source code"
+msgstr ""
+
+msgid "Download this directory"
+msgstr ""
+
+msgid "DownloadCommit|Plain Diff"
+msgstr ""
+
+msgid "DownloadSource|Download"
+msgstr ""
+
+msgid "Downloads"
+msgstr ""
+
+msgid "Downstream"
+msgstr ""
+
+msgid "Downvotes"
+msgstr ""
+
+msgid "Draft"
+msgstr ""
+
+msgid "Draft: %{filename}"
+msgstr ""
+
+msgid "Drag to reorder prioritized labels and change their relative priority."
+msgstr ""
+
+msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
+msgstr ""
+
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
+msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
+msgstr ""
+
+msgid "Drop or %{linkStart}upload%{linkEnd} files to attach"
+msgstr ""
+
+msgid "Drop your designs to start your upload."
+msgstr ""
+
+msgid "Drop your files to start your upload."
+msgstr ""
+
+msgid "DropdownWidget|An error occurred while fetching the assigned %{issuableAttribute} of the selected %{issuableType}."
+msgstr ""
+
+msgid "DropdownWidget|Assign %{issuableAttribute}"
+msgstr ""
+
+msgid "DropdownWidget|Cancel"
+msgstr ""
+
+msgid "DropdownWidget|Edit %{issuableAttribute}"
+msgstr ""
+
+msgid "DropdownWidget|Failed to fetch the %{issuableAttribute} for this %{issuableType}. Please try again."
+msgstr ""
+
+msgid "DropdownWidget|Failed to set %{issuableAttribute} on this %{issuableType}. Please try again."
+msgstr ""
+
+msgid "DropdownWidget|No %{issuableAttribute}"
+msgstr ""
+
+msgid "DropdownWidget|No %{issuableAttribute} found"
+msgstr ""
+
+msgid "DropdownWidget|No open %{issuableAttribute} found"
+msgstr ""
+
+msgid "DropdownWidget|You do not have permission to view the currently assigned %{issuableAttribute} and will not be able to choose it again if you reassign it."
+msgstr ""
+
+msgid "DropdownWidget|You don't have permission to view this %{issuableAttribute}."
+msgstr ""
+
+msgid "Due Date"
+msgstr ""
+
+msgid "Due date"
+msgstr ""
+
+msgid "Due to inactivity, the %{project_link} project is scheduled to be deleted on %{b_open}%{deletion_date}%{b_close}. To unschedule the deletion of %{project_link}, perform some activity on it. For example:"
+msgstr ""
+
+msgid "Due to inactivity, the %{project_name} (%{project_link}) project is scheduled to be deleted on %{deletion_date}. To unschedule the deletion of %{project_name}, perform some activity on it. For example:"
+msgstr ""
+
+msgid "Due to inactivity, this project is scheduled to be deleted on %{deletion_date}. %{link_start}Why is this scheduled?%{link_end}"
+msgstr ""
+
+msgid "Duplicate page: A page with that title already exists"
+msgstr ""
+
+msgid "Duration"
+msgstr ""
+
+msgid "Duration (min)"
+msgstr ""
+
+msgid "Duration|%s days"
+msgstr ""
+
+msgid "Duration|%s hours"
+msgstr ""
+
+msgid "Duration|%s minutes"
+msgstr ""
+
+msgid "Duration|%s months"
+msgstr ""
+
+msgid "Duration|%s seconds"
+msgstr ""
+
+msgid "Duration|%s weeks"
+msgstr ""
+
+msgid "Duration|%s years"
+msgstr ""
+
+msgid "Duration|1 day"
+msgstr ""
+
+msgid "Duration|1 hour"
+msgstr ""
+
+msgid "Duration|1 minute"
+msgstr ""
+
+msgid "Duration|1 month"
+msgstr ""
+
+msgid "Duration|1 week"
+msgstr ""
+
+msgid "Duration|1 year"
+msgstr ""
+
+msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below."
+msgstr ""
+
+msgid "Dynamic Application Security Testing (DAST)"
+msgstr ""
+
+msgid "E-mail:"
+msgstr ""
+
+msgid "Each project can also have an issue tracker and a wiki."
+msgstr ""
+
+msgid "Edit"
+msgstr ""
+
+msgid "Edit %{name}"
+msgstr ""
+
+msgid "Edit %{profileType} profile"
+msgstr ""
+
+msgid "Edit Comment"
+msgstr ""
+
+msgid "Edit Deploy Key"
+msgstr ""
+
+msgid "Edit Geo Site"
+msgstr ""
+
+msgid "Edit Group Hook"
+msgstr ""
+
+msgid "Edit Identity"
+msgstr ""
+
+msgid "Edit Label"
+msgstr ""
+
+msgid "Edit Milestone"
+msgstr ""
+
+msgid "Edit Password"
+msgstr ""
+
+msgid "Edit Pipeline Schedule"
+msgstr ""
+
+msgid "Edit Release"
+msgstr ""
+
+msgid "Edit Slack integration"
+msgstr ""
+
+msgid "Edit Snippet"
+msgstr ""
+
+msgid "Edit System Hook"
+msgstr ""
+
+msgid "Edit application"
+msgstr ""
+
+msgid "Edit audio description"
+msgstr ""
+
+msgid "Edit comment"
+msgstr ""
+
+msgid "Edit comment template"
+msgstr ""
+
+msgid "Edit commit message"
+msgstr ""
+
+msgid "Edit deploy freeze"
+msgstr ""
+
+msgid "Edit deploy key"
+msgstr ""
+
+msgid "Edit description"
+msgstr ""
+
+msgid "Edit diagram description"
+msgstr ""
+
+msgid "Edit environment"
+msgstr ""
+
+msgid "Edit files in the editor and commit changes here"
+msgstr ""
+
+msgid "Edit fork in Web IDE"
+msgstr ""
+
+msgid "Edit group application"
+msgstr ""
+
+msgid "Edit group: %{group_name}"
+msgstr ""
+
+msgid "Edit identity for %{user_name}"
+msgstr ""
+
+msgid "Edit image description"
+msgstr ""
+
+msgid "Edit in pipeline editor"
+msgstr ""
+
+msgid "Edit in single-file editor"
+msgstr ""
+
+msgid "Edit inline"
+msgstr ""
+
+msgid "Edit link"
+msgstr ""
+
+msgid "Edit project: %{project_name}"
+msgstr ""
+
+msgid "Edit public deploy key"
+msgstr ""
+
+msgid "Edit sidebar"
+msgstr ""
+
+msgid "Edit single file"
+msgstr ""
+
+msgid "Edit table"
+msgstr ""
+
+msgid "Edit this file only."
+msgstr ""
+
+msgid "Edit this release"
+msgstr ""
+
+msgid "Edit title and description"
+msgstr ""
+
+msgid "Edit topic: %{topic_name}"
+msgstr ""
+
+msgid "Edit user: %{user_name}"
+msgstr ""
+
+msgid "Edit video description"
+msgstr ""
+
+msgid "Edit wiki page"
+msgstr ""
+
+msgid "Edit your most recent comment in a thread (from an empty textarea)"
+msgstr ""
+
+msgid "Edit your search and try again"
+msgstr ""
+
+msgid "Edit your search filter and try again."
+msgstr ""
+
+msgid "Edit, lint, and visualize your pipeline."
+msgstr ""
+
+msgid "Edited"
+msgstr ""
+
+msgid "Edited %{timeago}"
+msgstr ""
+
+msgid "Edited %{timeago} by %{author}"
+msgstr ""
+
+msgid "Editing"
+msgstr ""
+
+msgid "Edits"
+msgstr ""
+
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
+msgid "Elapsed time"
+msgstr ""
+
+msgid "Elasticsearch HTTP client timeout value in seconds."
+msgstr ""
+
+msgid "Elasticsearch indexing restrictions"
+msgstr ""
+
+msgid "Elasticsearch indexing started"
+msgstr ""
+
+msgid "Elasticsearch migration halted"
+msgstr ""
+
+msgid "Elasticsearch reindexing is already in progress"
+msgstr ""
+
+msgid "Elasticsearch reindexing triggered"
+msgstr ""
+
+msgid "Elasticsearch reindexing was not started: %{errors}"
+msgstr ""
+
+msgid "Elasticsearch zero-downtime reindexing"
+msgstr ""
+
+msgid "Email"
+msgstr ""
+
+msgid "Email %{number}"
+msgstr ""
+
+msgid "Email Notification"
+msgstr ""
+
+msgid "Email a new %{name} to this project"
+msgstr ""
+
+msgid "Email address copied"
+msgstr ""
+
+msgid "Email address suffix"
+msgstr ""
+
+msgid "Email address to use for Service Desk"
+msgstr ""
+
+msgid "Email could not be sent"
+msgstr ""
+
+msgid "Email display name"
+msgstr ""
+
+msgid "Email must be provided."
+msgstr ""
+
+msgid "Email not verified. Please verify your email in Salesforce."
+msgstr ""
+
+msgid "Email notification for unknown sign-ins"
+msgstr ""
+
+msgid "Email patch"
+msgstr ""
+
+msgid "Email reset removed at:"
+msgstr ""
+
+msgid "Email sent"
+msgstr ""
+
+msgid "Email the pipeline status to a list of recipients."
+msgstr ""
+
+msgid "Email updates (optional)"
+msgstr ""
+
+msgid "Email:"
+msgstr ""
+
+msgid "Email: %{email}"
+msgstr ""
+
+msgid "EmailError|It appears that the email is blank. Make sure your reply is at the top of the email, we can't process inline replies."
+msgstr ""
+
+msgid "EmailError|The thread you are replying to no longer exists, perhaps it was deleted? If you believe this is in error, contact a staff member."
+msgstr ""
+
+msgid "EmailError|We couldn't figure out what the email is for. Please create your issue or comment through the web interface."
+msgstr ""
+
+msgid "EmailError|We couldn't figure out what the email is in reply to. Please create your comment through the web interface."
+msgstr ""
+
+msgid "EmailError|We couldn't figure out what user corresponds to the email. Please create your comment through the web interface."
+msgstr ""
+
+msgid "EmailError|We couldn't find the project. Please check if there's any typo."
+msgstr ""
+
+msgid "EmailError|We couldn't process your email because it is too large. Please create your issue or comment through the web interface."
+msgstr ""
+
+msgid "EmailError|You are not allowed to perform this action. If you believe this is in error, contact a staff member."
+msgstr ""
+
+msgid "EmailError|Your account has been blocked. If you believe this is in error, contact a staff member."
+msgstr ""
+
+msgid "EmailParticipantsWarning|%{emails} will be notified of your comment."
+msgstr ""
+
+msgid "EmailParticipantsWarning|%{emails}, %{andMore} will be notified of your comment."
+msgstr ""
+
+msgid "EmailParticipantsWarning|and %{moreCount} more"
+msgstr ""
+
+msgid "EmailVerification|Update your email to a valid permanent address. If you use a temporary email, you won't be able to sign in later."
+msgstr ""
+
+msgid "Emails"
+msgstr ""
+
+msgid "Emails sent to %{email} are also supported."
+msgstr ""
+
+msgid "EmailsOnPushService|Disable code diffs"
+msgstr ""
+
+msgid "EmailsOnPushService|Don't include possibly sensitive code diffs in notification body."
+msgstr ""
+
+msgid "EmailsOnPushService|Email the commits and diff of each push to a list of recipients."
+msgstr ""
+
+msgid "EmailsOnPushService|Emails on push"
+msgstr ""
+
+msgid "EmailsOnPushService|Emails separated by whitespace."
+msgstr ""
+
+msgid "EmailsOnPushService|Send from committer"
+msgstr ""
+
+msgid "EmailsOnPushService|Send notifications from the committer's email address if the domain matches the domain used by your GitLab instance (such as %{domains})."
+msgstr ""
+
+msgid "EmailsOnPushService|tanuki@example.com gitlab@example.com"
+msgstr ""
+
+msgid "Embed"
+msgstr ""
+
+msgid "Emoji"
+msgstr ""
+
+msgid "Empty file"
+msgstr ""
+
+msgid "Enable"
+msgstr ""
+
+msgid "Enable Admin Mode"
+msgstr ""
+
+msgid "Enable Akismet"
+msgstr ""
+
+msgid "Enable Amazon EKS integration"
+msgstr ""
+
+msgid "Enable Auto DevOps"
+msgstr ""
+
+msgid "Enable GitLab Error Tracking"
+msgstr ""
+
+msgid "Enable GitLab Prometheus metrics endpoint"
+msgstr ""
+
+msgid "Enable Gitpod"
+msgstr ""
+
+msgid "Enable Gitpod?"
+msgstr ""
+
+msgid "Enable Invisible Captcha during sign up"
+msgstr ""
+
+msgid "Enable Kroki"
+msgstr ""
+
+msgid "Enable Mailgun event receiver"
+msgstr ""
+
+msgid "Enable PlantUML"
+msgstr ""
+
+msgid "Enable SSL verification"
+msgstr ""
+
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
+msgid "Enable Snowplow tracking"
+msgstr ""
+
+msgid "Enable Spam Check via external API endpoint"
+msgstr ""
+
+msgid "Enable What's new: All tiers"
+msgstr ""
+
+msgid "Enable What's new: Current tier only"
+msgstr ""
+
+msgid "Enable access to the performance bar for non-administrators in a given group."
+msgstr ""
+
+msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
+msgstr ""
+
+msgid "Enable authenticated API request rate limit"
+msgstr ""
+
+msgid "Enable authenticated Git LFS request rate limit"
+msgstr ""
+
+msgid "Enable authenticated web request rate limit"
+msgstr ""
+
+msgid "Enable automatic repository housekeeping"
+msgstr ""
+
+msgid "Enable cleanup policies for projects created earlier than GitLab 12.7."
+msgstr ""
+
+msgid "Enable cleanup policy caching."
+msgstr ""
+
+msgid "Enable diagrams.net"
+msgstr ""
+
+msgid "Enable email notification"
+msgstr ""
+
+msgid "Enable feature to choose access level"
+msgstr ""
+
+msgid "Enable for this project"
+msgstr ""
+
+msgid "Enable group runners"
+msgstr ""
+
+msgid "Enable header and footer in emails"
+msgstr ""
+
+msgid "Enable incident management inbound alert limit"
+msgstr ""
+
+msgid "Enable integration"
+msgstr ""
+
+msgid "Enable logs collection"
+msgstr ""
+
+msgid "Enable maintenance mode"
+msgstr ""
+
+msgid "Enable multipart emails"
+msgstr ""
+
+msgid "Enable only for confidential applications exclusively used by a trusted backend server that can securely store the client secret. Do not enable for native-mobile, single-page, or other JavaScript applications because they cannot keep the client secret confidential."
+msgstr ""
+
+msgid "Enable or disable keyboard shortcuts in your %{linkStart}user preferences%{linkEnd}."
+msgstr ""
+
+msgid "Enable or disable version check and Service Ping."
+msgstr ""
+
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
+msgid "Enable rate limiting for requests to the specified paths"
+msgstr ""
+
+msgid "Enable reCAPTCHA"
+msgstr ""
+
+msgid "Enable reCAPTCHA for login."
+msgstr ""
+
+msgid "Enable repository checks"
+msgstr ""
+
+msgid "Enable security training"
+msgstr ""
+
+msgid "Enable shared runners for all projects and subgroups in this group."
+msgstr ""
+
+msgid "Enable shared runners for this group"
+msgstr ""
+
+msgid "Enable shared runners for this project"
+msgstr ""
+
+msgid "Enable two-factor authentication"
+msgstr ""
+
+msgid "Enable unauthenticated API request rate limit"
+msgstr ""
+
+msgid "Enable unauthenticated web request rate limit"
+msgstr ""
+
+msgid "Enable user deactivation emails"
+msgstr ""
+
+msgid "Enable version check"
+msgstr ""
+
+msgid "EnableReviewApp|Add a job in your CI/CD configuration that:"
+msgstr ""
+
+msgid "EnableReviewApp|Copy snippet"
+msgstr ""
+
+msgid "EnableReviewApp|Have access to infrastructure that can host and deploy the review apps."
+msgstr ""
+
+msgid "EnableReviewApp|Install and configure a runner to do the deployment."
+msgstr ""
+
+msgid "EnableReviewApp|Make sure your project has an environment configured with the target URL set to your website URL. If not, create a new one before continuing."
+msgstr ""
+
+msgid "EnableReviewApp|Only runs for feature branches or merge requests."
+msgstr ""
+
+msgid "EnableReviewApp|Recommended: Set up a job that manually stops the Review Apps."
+msgstr ""
+
+msgid "EnableReviewApp|Review apps are dynamic environments that you can use to provide a live preview of changes made in a feature branch."
+msgstr ""
+
+msgid "EnableReviewApp|To configure a dynamic review app, you must:"
+msgstr ""
+
+msgid "EnableReviewApp|Uses a predefined CI/CD variable like %{codeStart}$(CI_COMMIT_REF_SLUG)%{codeEnd} to dynamically create the review app environments. For example, for a configuration using merge request pipelines:"
+msgstr ""
+
+msgid "EnableReviewApp|Using a static site?"
+msgstr ""
+
+msgid "EnableReviewApp|View more example projects"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Enabled Git access protocols"
+msgstr ""
+
+msgid "Enabled OAuth authentication sources"
+msgstr ""
+
+msgid "End Time"
+msgstr ""
+
+msgid "End time"
+msgstr ""
+
+msgid "Endpoint name '%{endpoint}' of component '%{component}' must not start with '%{prefix}'"
+msgstr ""
+
+msgid "Ends"
+msgstr ""
+
+msgid "Ends on"
+msgstr ""
+
+msgid "Ends: %{endsAt}"
+msgstr ""
+
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
+msgid "Enforce two-factor authentication"
+msgstr ""
+
+msgid "Enforce two-factor authentication for all user sign-ins."
+msgstr ""
+
+msgid "Engine"
+msgstr ""
+
+msgid "Enhance security by storing service account keys in secret managers - learn more about %{docLinkStart}secret management with GitLab%{docLinkEnd}"
+msgstr ""
+
+msgid "Ensure your %{linkStart}environment is part of the deploy stage%{linkEnd} of your CI pipeline to track deployments to your cluster."
+msgstr ""
+
+msgid "Enter %{weights_link_start}weights%{weights_link_end} for storages for new repositories. Configured storages appear below."
+msgstr ""
+
+msgid "Enter a URL for your custom emoji"
+msgstr ""
+
+msgid "Enter a name for your comment template"
+msgstr ""
+
+msgid "Enter a number"
+msgstr ""
+
+msgid "Enter admin mode"
+msgstr ""
+
+msgid "Enter an integer number between 0 and 100"
+msgstr ""
+
+msgid "Enter any color or choose one of the suggested colors below."
+msgstr ""
+
+msgid "Enter any color."
+msgstr ""
+
+msgid "Enter at least three characters to search"
+msgstr ""
+
+msgid "Enter at least three characters to search."
+msgstr ""
+
+msgid "Enter in your Bitbucket Server URL and personal access token below"
+msgstr ""
+
+msgid "Enter license key"
+msgstr ""
+
+msgid "Enter merge request URLs"
+msgstr ""
+
+msgid "Enter new AWS Secret Access Key"
+msgstr ""
+
+msgid "Enter number of issues"
+msgstr ""
+
+msgid "Enter one or more user ID separated by commas"
+msgstr ""
+
+msgid "Enter the %{name} description"
+msgstr ""
+
+msgid "Enter the %{name} title"
+msgstr ""
+
+msgid "Enter the code from your two-factor authenticator app. If you've lost your device, you can enter one of your recovery codes."
+msgstr ""
+
+msgid "Enter the following to confirm:"
+msgstr ""
+
+msgid "Enter the number of seconds, or other human-readable input, like \"1 hour\". This timeout takes precedence over lower timeouts set for the project."
+msgstr ""
+
+msgid "Enter the password for password-protected Elasticsearch servers."
+msgstr ""
+
+msgid "Enter the username for password-protected Elasticsearch servers."
+msgstr ""
+
+msgid "Enter values to populate the .gitlab-ci.yml configuration file."
+msgstr ""
+
+msgid "Enter verification code"
+msgstr ""
+
+msgid "Enter your Packagist server. Defaults to https://packagist.org."
+msgstr ""
+
+msgid "Enter your Packagist token."
+msgstr ""
+
+msgid "Enter your Packagist username."
+msgstr ""
+
+msgid "Enter your password to approve"
+msgstr ""
+
+msgid "Enterprise"
+msgstr ""
+
+msgid "Enterprise User"
+msgstr ""
+
+msgid "Enterprise User Account on GitLab"
+msgstr ""
+
+msgid "Enterprise user associated at: "
+msgstr ""
+
+msgid "Enterprise user of: "
+msgstr ""
+
+msgid "EnterpriseUsers|The user does not match the \"Enterprise User\" definition for the group"
+msgstr ""
+
+msgid "EnterpriseUsers|The user is already an enterprise user of the group"
+msgstr ""
+
+msgid "Environment"
+msgstr ""
+
+msgid "Environment scope"
+msgstr ""
+
+msgid "Environment variables on this GitLab instance are configured to be %{help_link_start}protected%{help_link_end} by default."
+msgstr ""
+
+msgid "Environment:"
+msgstr ""
+
+msgid "EnvironmentDashboard|API"
+msgstr ""
+
+msgid "EnvironmentDashboard|Created through the Deployment API"
+msgstr ""
+
+msgid "EnvironmentDashboard|You are looking at the last updated environment"
+msgstr ""
+
+msgid "Environments"
+msgstr ""
+
+msgid "Environments Dashboard"
+msgstr ""
+
+msgid "Environments allow you to track deployments of your application. To protect this environment, go to the CI/CD settings %{linkStart}Protected environments%{linkEnd} section."
+msgstr ""
+
+msgid "Environments allow you to track deployments of your application.%{linkStart} More information.%{linkEnd}"
+msgstr ""
+
+msgid "Environments in %{name}"
+msgstr ""
+
+msgid "EnvironmentsAlert|%{severity} • %{title} %{text}. %{linkStart}View Details%{linkEnd} · %{startedAt} "
+msgstr ""
+
+msgid "EnvironmentsDashboard|Add a project to the dashboard"
+msgstr ""
+
+msgid "EnvironmentsDashboard|Add projects"
+msgstr ""
+
+msgid "EnvironmentsDashboard|Environments Dashboard"
+msgstr ""
+
+msgid "EnvironmentsDashboard|Job: %{job}"
+msgstr ""
+
+msgid "EnvironmentsDashboard|More actions"
+msgstr ""
+
+msgid "EnvironmentsDashboard|Remove"
+msgstr ""
+
+msgid "EnvironmentsDashboard|The environments dashboard provides a summary of each project's environments' status, including pipeline and alert statuses."
+msgstr ""
+
+msgid "EnvironmentsDashboard|This dashboard displays 3 environments per project, and is linked to the Operations Dashboard. When you add or remove a project from one dashboard, GitLab adds or removes the project from the other. %{linkStart}More information%{linkEnd}"
+msgstr ""
+
+msgid "Environments|A freeze period is in effect from %{startTime} to %{endTime}. Deployments might fail during this time. For more information, see the %{docsLinkStart}deploy freeze documentation%{docsLinkEnd}."
+msgstr ""
+
+msgid "Environments|An error occurred while canceling the auto stop, please try again"
+msgstr ""
+
+msgid "Environments|An error occurred while deleting the environment. Check if the environment stopped; if not, stop it and try again."
+msgstr ""
+
+msgid "Environments|An error occurred while fetching the environments."
+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 ""
+
+msgid "Environments|Are you sure you want to stop this environment?"
+msgstr ""
+
+msgid "Environments|Auto stop"
+msgstr ""
+
+msgid "Environments|Auto stops %{autoStopAt}"
+msgstr ""
+
+msgid "Environments|Clean up"
+msgstr ""
+
+msgid "Environments|Clean up environments"
+msgstr ""
+
+msgid "Environments|Commit"
+msgstr ""
+
+msgid "Environments|Create an environment"
+msgstr ""
+
+msgid "Environments|Delete"
+msgstr ""
+
+msgid "Environments|Delete '%{environmentName}'?"
+msgstr ""
+
+msgid "Environments|Delete environment"
+msgstr ""
+
+msgid "Environments|Deleting the '%{environmentName}' environment cannot be undone. Do you want to delete it anyway?"
+msgstr ""
+
+msgid "Environments|Deploy to..."
+msgstr ""
+
+msgid "Environments|Deployment"
+msgstr ""
+
+msgid "Environments|Deployment %{status}"
+msgstr ""
+
+msgid "Environments|Edit your search and try again"
+msgstr ""
+
+msgid "Environments|Enable Review Apps"
+msgstr ""
+
+msgid "Environments|Enable review apps"
+msgstr ""
+
+msgid "Environments|Environment"
+msgstr ""
+
+msgid "Environments|Environments"
+msgstr ""
+
+msgid "Environments|Environments are places where code gets deployed, such as staging or production. You can create an environment in the UI or in your .gitlab-ci.yml file. You can also enable review apps, which assist with providing an environment to showcase product changes. %{linkStart}Learn more%{linkEnd} about environments."
+msgstr ""
+
+msgid "Environments|Get started with environments"
+msgstr ""
+
+msgid "Environments|GitLab agent"
+msgstr ""
+
+msgid "Environments|HelmReleases"
+msgstr ""
+
+msgid "Environments|Job"
+msgstr ""
+
+msgid "Environments|Kubernetes namespace (optional)"
+msgstr ""
+
+msgid "Environments|Kustomizations"
+msgstr ""
+
+msgid "Environments|Learn more about stopping environments"
+msgstr ""
+
+msgid "Environments|New"
+msgstr ""
+
+msgid "Environments|New Environment"
+msgstr ""
+
+msgid "Environments|New environment"
+msgstr ""
+
+msgid "Environments|No deployments yet"
+msgstr ""
+
+msgid "Environments|No results found"
+msgstr ""
+
+msgid "Environments|Note that this action will stop the environment, but it will %{emphasisStart}not%{emphasisEnd} have an effect on any existing deployment due to no “stop environment action†being defined in the %{ciConfigLinkStart}.gitlab-ci.yml%{ciConfigLinkEnd} file."
+msgstr ""
+
+msgid "Environments|Open"
+msgstr ""
+
+msgid "Environments|Open live environment"
+msgstr ""
+
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
+msgid "Environments|Re-deploy environment"
+msgstr ""
+
+msgid "Environments|Re-deploy environment %{name}?"
+msgstr ""
+
+msgid "Environments|Re-deploy to environment"
+msgstr ""
+
+msgid "Environments|Rollback environment"
+msgstr ""
+
+msgid "Environments|Rollback environment %{name}?"
+msgstr ""
+
+msgid "Environments|Search by environment name"
+msgstr ""
+
+msgid "Environments|Select Flux resource"
+msgstr ""
+
+msgid "Environments|Select Flux resource (optional)"
+msgstr ""
+
+msgid "Environments|Select agent"
+msgstr ""
+
+msgid "Environments|Select namespace"
+msgstr ""
+
+msgid "Environments|Select which environments to clean up. Protected environments are excluded. Learn more about cleaning up environments."
+msgstr ""
+
+msgid "Environments|Show all"
+msgstr ""
+
+msgid "Environments|Stop"
+msgstr ""
+
+msgid "Environments|Stop environment"
+msgstr ""
+
+msgid "Environments|Stop environments that have not been updated since the specified date:"
+msgstr ""
+
+msgid "Environments|Stop unused environments"
+msgstr ""
+
+msgid "Environments|Stopping %{environmentName}"
+msgstr ""
+
+msgid "Environments|There are no deployments for this environment yet. %{linkStart}Learn more about setting up deployments.%{linkEnd}"
+msgstr ""
+
+msgid "Environments|This action will %{docsStart}retry the latest deployment%{docsEnd} with the commit %{commitId}, for this environment. Are you sure you want to continue?"
+msgstr ""
+
+msgid "Environments|This action will %{docsStart}roll back this environment%{docsEnd} to a previously successful deployment for commit %{commitId}. Are you sure you want to continue?"
+msgstr ""
+
+msgid "Environments|Unable to access the following resources from this environment. Check your authorization on the following and try again:"
+msgstr ""
+
+msgid "Environments|Upcoming"
+msgstr ""
+
+msgid "Environments|Upcoming deployment"
+msgstr ""
+
+msgid "Environments|Updated"
+msgstr ""
+
+msgid "Environments|by %{avatar}"
+msgstr ""
+
+msgid "Environments|protected"
+msgstr ""
+
+msgid "Environment|Age"
+msgstr ""
+
+msgid "Environment|Auto stop %{time}"
+msgstr ""
+
+msgid "Environment|Cluster IP"
+msgstr ""
+
+msgid "Environment|Cluster agent not found."
+msgstr ""
+
+msgid "Environment|CronJobs"
+msgstr ""
+
+msgid "Environment|DaemonSets"
+msgstr ""
+
+msgid "Environment|Deployment tier"
+msgstr ""
+
+msgid "Environment|Deployments"
+msgstr ""
+
+msgid "Environment|Environment status"
+msgstr ""
+
+msgid "Environment|External IP"
+msgstr ""
+
+msgid "Environment|Forbidden to access the cluster agent from this environment."
+msgstr ""
+
+msgid "Environment|Healthy"
+msgstr ""
+
+msgid "Environment|Jobs"
+msgstr ""
+
+msgid "Environment|Kubernetes overview"
+msgstr ""
+
+msgid "Environment|Pods"
+msgstr ""
+
+msgid "Environment|Ports"
+msgstr ""
+
+msgid "Environment|Reconciled"
+msgstr ""
+
+msgid "Environment|Reconciling"
+msgstr ""
+
+msgid "Environment|ReplicaSets"
+msgstr ""
+
+msgid "Environment|Services"
+msgstr ""
+
+msgid "Environment|Stalled"
+msgstr ""
+
+msgid "Environment|StatefulSets"
+msgstr ""
+
+msgid "Environment|Summary"
+msgstr ""
+
+msgid "Environment|Sync status"
+msgstr ""
+
+msgid "Environment|There was an error connecting to the cluster agent."
+msgstr ""
+
+msgid "Environment|There was an error fetching %{resourceType}."
+msgstr ""
+
+msgid "Environment|Unauthorized to access %{resourceType} from this environment."
+msgstr ""
+
+msgid "Environment|Unhealthy"
+msgstr ""
+
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
+msgstr ""
+
+msgid "Epic"
+msgstr ""
+
+msgid "Epic Boards"
+msgstr ""
+
+msgid "Epic ID"
+msgstr ""
+
+msgid "Epic actions"
+msgstr ""
+
+msgid "Epic boards"
+msgstr ""
+
+msgid "Epic cannot be found."
+msgstr ""
+
+msgid "Epic details"
+msgstr ""
+
+msgid "Epic events"
+msgstr ""
+
+msgid "Epic not found for given params"
+msgstr ""
+
+msgid "Epic summary"
+msgstr ""
+
+msgid "Epic title"
+msgstr ""
+
+msgid "Epics"
+msgstr ""
+
+msgid "Epics Roadmap"
+msgstr ""
+
+msgid "Epics let you manage your portfolio of projects more efficiently and with less effort"
+msgstr ""
+
+msgid "Epics, issues, and merge requests"
+msgstr ""
+
+msgid "Epics|Add a new epic"
+msgstr ""
+
+msgid "Epics|Add an existing epic"
+msgstr ""
+
+msgid "Epics|Are you sure you want to remove %{bStart}%{targetEpicTitle}%{bEnd} from %{bStart}%{parentEpicTitle}%{bEnd}?"
+msgstr ""
+
+msgid "Epics|Are you sure you want to remove %{bStart}%{targetIssueTitle}%{bEnd} from %{bStart}%{parentEpicTitle}%{bEnd}?"
+msgstr ""
+
+msgid "Epics|Learn more about linking child issues and epics"
+msgstr ""
+
+msgid "Epics|Leave empty to inherit from milestone dates"
+msgstr ""
+
+msgid "Epics|Link child issues and epics together to show that they're related, or that one blocks another."
+msgstr ""
+
+msgid "Epics|Remove epic"
+msgstr ""
+
+msgid "Epics|Remove issue"
+msgstr ""
+
+msgid "Epics|Something went wrong while creating child epics."
+msgstr ""
+
+msgid "Epics|Something went wrong while creating issue."
+msgstr ""
+
+msgid "Epics|Something went wrong while fetching child epics."
+msgstr ""
+
+msgid "Epics|Something went wrong while fetching epics list."
+msgstr ""
+
+msgid "Epics|Something went wrong while moving item."
+msgstr ""
+
+msgid "Epics|Something went wrong while ordering item."
+msgstr ""
+
+msgid "Epics|Something went wrong while updating epics."
+msgstr ""
+
+msgid "Epics|The color for the epic when it's visualized, such as on roadmap timeline bars."
+msgstr ""
+
+msgid "Epics|This epic and any containing child epics are confidential and should only be visible to team members with at least Reporter access."
+msgstr ""
+
+msgid "Epics|This will also remove any descendents of %{bStart}%{targetEpicTitle}%{bEnd} from %{bStart}%{parentEpicTitle}%{bEnd}. Are you sure?"
+msgstr ""
+
+msgid "Epics|Unable to save epic. Please try again"
+msgstr ""
+
+msgid "Erased"
+msgstr ""
+
+msgid "Error"
+msgstr ""
+
+msgid "Error Details"
+msgstr ""
+
+msgid "Error Tracking"
+msgstr ""
+
+msgid "Error creating epic"
+msgstr ""
+
+msgid "Error creating label."
+msgstr ""
+
+msgid "Error creating new directory. Please try again."
+msgstr ""
+
+msgid "Error creating new iteration"
+msgstr ""
+
+msgid "Error creating or updating PreScanVerificationStep: %{errors}"
+msgstr ""
+
+msgid "Error creating repository for snippet with id %{snippet_id}"
+msgstr ""
+
+msgid "Error creating the snippet"
+msgstr ""
+
+msgid "Error creating vulnerability finding: %{errors}"
+msgstr ""
+
+msgid "Error deleting the value stream"
+msgstr ""
+
+msgid "Error fetching branches"
+msgstr ""
+
+msgid "Error fetching burnup chart data"
+msgstr ""
+
+msgid "Error fetching data. Please try again."
+msgstr ""
+
+msgid "Error fetching diverging counts for branches. Please try again."
+msgstr ""
+
+msgid "Error fetching forked projects. Please try again."
+msgstr ""
+
+msgid "Error fetching labels."
+msgstr ""
+
+msgid "Error fetching network graph."
+msgstr ""
+
+msgid "Error fetching payload data."
+msgstr ""
+
+msgid "Error fetching the dependency list. Please check your network connection and try again."
+msgstr ""
+
+msgid "Error loading branch data. Please try again."
+msgstr ""
+
+msgid "Error loading branches."
+msgstr ""
+
+msgid "Error loading burndown chart data"
+msgstr ""
+
+msgid "Error loading file viewer."
+msgstr ""
+
+msgid "Error loading issues"
+msgstr ""
+
+msgid "Error loading iterations"
+msgstr ""
+
+msgid "Error loading last commit."
+msgstr ""
+
+msgid "Error loading markdown preview"
+msgstr ""
+
+msgid "Error loading merge requests."
+msgstr ""
+
+msgid "Error loading milestone tab"
+msgstr ""
+
+msgid "Error loading project data. Please try again."
+msgstr ""
+
+msgid "Error loading template types."
+msgstr ""
+
+msgid "Error loading template."
+msgstr ""
+
+msgid "Error loading viewer"
+msgstr ""
+
+msgid "Error occurred when fetching sidebar data"
+msgstr ""
+
+msgid "Error occurred when saving assignees"
+msgstr ""
+
+msgid "Error occurred when saving reviewers"
+msgstr ""
+
+msgid "Error occurred while updating the issue status"
+msgstr ""
+
+msgid "Error occurred. A blocked user cannot be deactivated"
+msgstr ""
+
+msgid "Error occurred. A blocked user must be unblocked to be activated"
+msgstr ""
+
+msgid "Error occurred. User was not banned"
+msgstr ""
+
+msgid "Error occurred. User was not blocked"
+msgstr ""
+
+msgid "Error occurred. User was not confirmed"
+msgstr ""
+
+msgid "Error occurred. User was not unbanned"
+msgstr ""
+
+msgid "Error occurred. User was not unblocked"
+msgstr ""
+
+msgid "Error occurred. User was not unlocked"
+msgstr ""
+
+msgid "Error occurred. User was not updated"
+msgstr ""
+
+msgid "Error parsing CSV file. Please make sure it has"
+msgstr ""
+
+msgid "Error promoting the note to timeline event: %{error}"
+msgstr ""
+
+msgid "Error rendering Markdown preview"
+msgstr ""
+
+msgid "Error saving credit card validation record"
+msgstr ""
+
+msgid "Error saving label update."
+msgstr ""
+
+msgid "Error setting up editor. Please try again."
+msgstr ""
+
+msgid "Error tracking"
+msgstr ""
+
+msgid "Error updating %{issuableType}"
+msgstr ""
+
+msgid "Error updating status for all to-do items."
+msgstr ""
+
+msgid "Error updating status of to-do item."
+msgstr ""
+
+msgid "Error updating the snippet"
+msgstr ""
+
+msgid "Error uploading file"
+msgstr ""
+
+msgid "Error uploading file. Please try again."
+msgstr ""
+
+msgid "Error while loading the merge request. Please try again."
+msgstr ""
+
+msgid "Error while migrating %{upload_id}: %{error_message}"
+msgstr ""
+
+msgid "Error with Akismet. Please check the logs for more info."
+msgstr ""
+
+msgid "Error: %{error_message}"
+msgstr ""
+
+msgid "Error: %{error}"
+msgstr ""
+
+msgid "Error: Can't edit this file. The fork and upstream project have diverged. %{link_start}Edit the file on the fork %{icon}%{link_end}, and create a merge request."
+msgstr ""
+
+msgid "Error: Couldn't load some or all of the changes."
+msgstr ""
+
+msgid "Error: Gitaly is unavailable. Contact your administrator."
+msgstr ""
+
+msgid "Error: Unable to create deploy freeze"
+msgstr ""
+
+msgid "Error: Unable to delete deploy freeze"
+msgstr ""
+
+msgid "ErrorTracking|Access token is %{token_in_code_tag}"
+msgstr ""
+
+msgid "ErrorTracking|Active"
+msgstr ""
+
+msgid "ErrorTracking|After adding your Auth Token, select the Connect button to load projects."
+msgstr ""
+
+msgid "ErrorTracking|Auth Token"
+msgstr ""
+
+msgid "ErrorTracking|Click Connect to reestablish the connection to Sentry and activate the dropdown."
+msgstr ""
+
+msgid "ErrorTracking|Connection failed. Check Auth Token and try again."
+msgstr ""
+
+msgid "ErrorTracking|Enable error tracking"
+msgstr ""
+
+msgid "ErrorTracking|Error tracking backend"
+msgstr ""
+
+msgid "ErrorTracking|If you self-host Sentry, enter your Sentry instance's full URL. If you use Sentry's hosted solution, enter https://sentry.io"
+msgstr ""
+
+msgid "ErrorTracking|Integrated error tracking is %{epicLinkStart}turned off by default%{epicLinkEnd} and no longer active for this project. To re-enable error tracking on self-hosted instances, you can either %{flagLinkStart}turn on the feature flag%{flagLinkEnd} for integrated error tracking, or provide a %{settingsLinkStart}Sentry API URL and Auth Token%{settingsLinkEnd} on your project settings page. However, error tracking is not ready for production use and cannot be enabled on GitLab.com."
+msgstr ""
+
+msgid "ErrorTracking|Integrated error tracking is %{epicLinkStart}turned off by default%{epicLinkEnd} and no longer active for this project. To re-enable error tracking on self-hosted instances, you can either %{flagLinkStart}turn on the feature flag%{flagLinkEnd} for integrated error tracking, or provide a Sentry API URL and Auth Token below. However, error tracking is not ready for production use and cannot be enabled on GitLab.com."
+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 "ErrorTracking|View project settings"
+msgstr ""
+
+msgid "Errors"
+msgstr ""
+
+msgid "Errors found on line %{line_number}: %{error_lines}. Please check if these lines have a requirement title."
+msgstr ""
+
+msgid "Escalate this incident"
+msgstr ""
+
+msgid "Escalation Policies"
+msgstr ""
+
+msgid "Escalation policies"
+msgstr ""
+
+msgid "Escalation policies may not have more than %{rule_count} rules"
+msgstr ""
+
+msgid "Escalation policies must have at least one rule"
+msgstr ""
+
+msgid "Escalation policy"
+msgstr ""
+
+msgid "Escalation policy:"
+msgstr ""
+
+msgid "EscalationPolicies|%{clockIcon} IF alert is not %{alertStatus} in %{minutes}"
+msgstr ""
+
+msgid "EscalationPolicies|%{notificationIcon} THEN %{doAction} %{forScheduleOrUser}"
+msgstr ""
+
+msgid "EscalationPolicies|+ Add an additional rule"
+msgstr ""
+
+msgid "EscalationPolicies|A schedule is required for adding an escalation policy."
+msgstr ""
+
+msgid "EscalationPolicies|A schedule is required for adding an escalation policy. Please create an on-call schedule first."
+msgstr ""
+
+msgid "EscalationPolicies|A user is required for adding an escalation policy."
+msgstr ""
+
+msgid "EscalationPolicies|Add an escalation policy"
+msgstr ""
+
+msgid "EscalationPolicies|Add escalation policy"
+msgstr ""
+
+msgid "EscalationPolicies|Add policy"
+msgstr ""
+
+msgid "EscalationPolicies|Are you sure you want to delete the \"%{escalationPolicy}\" escalation policy? This action cannot be undone."
+msgstr ""
+
+msgid "EscalationPolicies|Choose who to email if those contacted first about an alert don't respond."
+msgstr ""
+
+msgid "EscalationPolicies|Choose who to email if those contacted first about an alert don't respond. To access this feature, ask %{linkStart}a project Owner%{linkEnd} to grant you at least the Maintainer role."
+msgstr ""
+
+msgid "EscalationPolicies|Create an escalation policy in GitLab"
+msgstr ""
+
+msgid "EscalationPolicies|Delete escalation policy"
+msgstr ""
+
+msgid "EscalationPolicies|Distinguishes this policy from others you may create (for example, \"Critical alert escalation\")."
+msgstr ""
+
+msgid "EscalationPolicies|Edit escalation policy"
+msgstr ""
+
+msgid "EscalationPolicies|Email on-call user in schedule"
+msgstr ""
+
+msgid "EscalationPolicies|Email user"
+msgstr ""
+
+msgid "EscalationPolicies|Escalation policies"
+msgstr ""
+
+msgid "EscalationPolicies|Escalation policy %{obstacle} in project %{project}"
+msgstr ""
+
+msgid "EscalationPolicies|Escalation policy successfully created"
+msgstr ""
+
+msgid "EscalationPolicies|Escalation rules"
+msgstr ""
+
+msgid "EscalationPolicies|Failed to load oncall-schedules"
+msgstr ""
+
+msgid "EscalationPolicies|IF alert is not %{alertStatus} in %{minutes} minutes"
+msgstr ""
+
+msgid "EscalationPolicies|Maximum of 10 rules has been reached."
+msgstr ""
+
+msgid "EscalationPolicies|Minutes must be between 0 and 1440."
+msgstr ""
+
+msgid "EscalationPolicies|More detailed information about your policy."
+msgstr ""
+
+msgid "EscalationPolicies|Remove escalation rule"
+msgstr ""
+
+msgid "EscalationPolicies|Search for user"
+msgstr ""
+
+msgid "EscalationPolicies|Select schedule"
+msgstr ""
+
+msgid "EscalationPolicies|THEN %{doAction} %{scheduleOrUser}"
+msgstr ""
+
+msgid "EscalationPolicies|The escalation policy could not be deleted. Please try again."
+msgstr ""
+
+msgid "EscalationPolicies|The escalation policy could not be updated. Please try again"
+msgstr ""
+
+msgid "EscalationPolicies|This policy has no escalation rules."
+msgstr ""
+
+msgid "EscalationPolicies|When a new alert is received, the users specified in the policy receive an email."
+msgstr ""
+
+msgid "EscalationPolicies|mins"
+msgstr ""
+
+msgid "EscalationStatus|Acknowledged"
+msgstr ""
+
+msgid "EscalationStatus|Resolved"
+msgstr ""
+
+msgid "EscalationStatus|Triggered"
+msgstr ""
+
+msgid "Estimate"
+msgstr ""
+
+msgid "Estimated"
+msgstr ""
+
+msgid "Even if you reach the number of seats in your subscription, you can continue to add users, and GitLab will bill you for the overage."
+msgstr ""
+
+msgid "Event '%{event}' of type '%{event_type}' must not start with '%{prefix}'"
+msgstr ""
+
+msgid "Event tag (optional)"
+msgstr ""
+
+msgid "Event type '%{type}' is not yet supported"
+msgstr ""
+
+msgid "EventFilterBy|Filter by all"
+msgstr ""
+
+msgid "EventFilterBy|Filter by comments"
+msgstr ""
+
+msgid "EventFilterBy|Filter by designs"
+msgstr ""
+
+msgid "EventFilterBy|Filter by epic events"
+msgstr ""
+
+msgid "EventFilterBy|Filter by issue events"
+msgstr ""
+
+msgid "EventFilterBy|Filter by merge events"
+msgstr ""
+
+msgid "EventFilterBy|Filter by push events"
+msgstr ""
+
+msgid "EventFilterBy|Filter by team"
+msgstr ""
+
+msgid "EventFilterBy|Filter by wiki"
+msgstr ""
+
+msgid "Events"
+msgstr ""
+
+msgid "Events API"
+msgstr ""
+
+msgid "Event|accepted"
+msgstr ""
+
+msgid "Event|added"
+msgstr ""
+
+msgid "Event|approved"
+msgstr ""
+
+msgid "Event|closed"
+msgstr ""
+
+msgid "Event|commented on"
+msgstr ""
+
+msgid "Event|created"
+msgstr ""
+
+msgid "Event|deleted"
+msgstr ""
+
+msgid "Event|destroyed"
+msgstr ""
+
+msgid "Event|imported"
+msgstr ""
+
+msgid "Event|joined"
+msgstr ""
+
+msgid "Event|left"
+msgstr ""
+
+msgid "Event|opened"
+msgstr ""
+
+msgid "Event|pushed new"
+msgstr ""
+
+msgid "Event|pushed to"
+msgstr ""
+
+msgid "Event|removed"
+msgstr ""
+
+msgid "Event|removed due to membership expiration from"
+msgstr ""
+
+msgid "Event|updated"
+msgstr ""
+
+msgid "Every %{action} attempt has failed: %{job_error_message}. Please try again."
+msgstr ""
+
+msgid "Every 3 months"
+msgstr ""
+
+msgid "Every 3 months on the %{day} at %{time} %{timezone}"
+msgstr ""
+
+msgid "Every 6 months"
+msgstr ""
+
+msgid "Every 6 months on the %{day} at %{time} %{timezone}"
+msgstr ""
+
+msgid "Every day"
+msgstr ""
+
+msgid "Every day (at %{time})"
+msgstr ""
+
+msgid "Every day at %{time} %{timezone}"
+msgstr ""
+
+msgid "Every month"
+msgstr ""
+
+msgid "Every month (Day %{day} at %{time})"
+msgstr ""
+
+msgid "Every month on the %{day} at %{time} %{timezone}"
+msgstr ""
+
+msgid "Every three months"
+msgstr ""
+
+msgid "Every two weeks"
+msgstr ""
+
+msgid "Every week"
+msgid_plural "Every %d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Every week (%{weekday} at %{time})"
+msgstr ""
+
+msgid "Every week on %{day} at %{time} %{timezone}"
+msgstr ""
+
+msgid "Every year"
+msgstr ""
+
+msgid "Every year on %{day} at %{time} %{timezone}"
+msgstr ""
+
+msgid "Everyone With Access"
+msgstr ""
+
+msgid "Everyone can access the wiki."
+msgstr ""
+
+msgid "Everyone can contribute"
+msgstr ""
+
+msgid "Everything on your to-do list is marked as done."
+msgstr ""
+
+msgid "Everything you need to create a GitLab Pages site using Bridgetown"
+msgstr ""
+
+msgid "Everything you need to create a GitLab Pages site using Gatsby"
+msgstr ""
+
+msgid "Everything you need to create a GitLab Pages site using Hexo"
+msgstr ""
+
+msgid "Everything you need to create a GitLab Pages site using Hugo"
+msgstr ""
+
+msgid "Everything you need to create a GitLab Pages site using Jekyll"
+msgstr ""
+
+msgid "Everything you need to create a GitLab Pages site using Middleman"
+msgstr ""
+
+msgid "Everything you need to create a GitLab Pages site using Pelican"
+msgstr ""
+
+msgid "Everything you need to create a GitLab Pages site using plain HTML"
+msgstr ""
+
+msgid "Evidence collection"
+msgstr ""
+
+msgid "Exactly one of %{attributes} is required"
+msgstr ""
+
+msgid "Example"
+msgstr ""
+
+msgid "Example: (feature|hotfix)\\/*"
+msgstr ""
+
+msgid "Example: (jar|exe)$"
+msgstr ""
+
+msgid "Example: @sub\\.company\\.com$"
+msgstr ""
+
+msgid "Example: Fixes \\d+\\..*"
+msgstr ""
+
+msgid "Example: ssh\\:\\/\\/"
+msgstr ""
+
+msgid "Examples"
+msgstr ""
+
+msgid "Except policy:"
+msgstr ""
+
+msgid "Exceptions"
+msgstr ""
+
+msgid "Excluding 1 project with no DORA metrics"
+msgid_plural "Excluding %d projects with no DORA metrics"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Excluding USB security keys, you should include the browser name together with the device name."
+msgstr ""
+
+msgid "Excluding merge commits. Limited to %{limit} commits."
+msgstr ""
+
+msgid "Excluding merge commits. Limited to 6,000 commits."
+msgstr ""
+
+msgid "Execution time"
+msgstr ""
+
+msgid "Existing branch name, tag, or commit SHA"
+msgstr ""
+
+msgid "Existing projects may be moved into a group"
+msgstr ""
+
+msgid "Existing projects will be able to use cleanup policies. Avoid enabling this if an external Container Registry is being used, as there is a performance risk if many images exist on one project."
+msgstr ""
+
+msgid "Existing sign in methods may be removed"
+msgstr ""
+
+msgid "Expand"
+msgstr ""
+
+msgid "Expand AI-generated summary"
+msgstr ""
+
+msgid "Expand all"
+msgstr ""
+
+msgid "Expand all files"
+msgstr ""
+
+msgid "Expand all threads"
+msgstr ""
+
+msgid "Expand eligible approvers"
+msgstr ""
+
+msgid "Expand file"
+msgstr ""
+
+msgid "Expand issues"
+msgstr ""
+
+msgid "Expand jobs"
+msgstr ""
+
+msgid "Expand merge checks"
+msgstr ""
+
+msgid "Expand merge details"
+msgstr ""
+
+msgid "Expand milestones"
+msgstr ""
+
+msgid "Expand settings section"
+msgstr ""
+
+msgid "Expand sidebar"
+msgstr ""
+
+msgid "Expected documents: %{expected_documents}"
+msgstr ""
+
+msgid "Experiment"
+msgstr ""
+
+msgid "Experiment features' settings not allowed."
+msgstr ""
+
+msgid "ExperimentBadge|An Experiment is a feature that's in the process of being developed. It's not production-ready. We encourage users to try Experimental features and provide feedback."
+msgstr ""
+
+msgid "ExperimentBadge|An Experiment:"
+msgstr ""
+
+msgid "ExperimentBadge|Can be removed at any time."
+msgstr ""
+
+msgid "ExperimentBadge|Can cause data loss."
+msgstr ""
+
+msgid "ExperimentBadge|Experiment"
+msgstr ""
+
+msgid "ExperimentBadge|Has no support and might not be documented."
+msgstr ""
+
+msgid "ExperimentBadge|May be unstable."
+msgstr ""
+
+msgid "ExperimentBadge|What's an Experiment?"
+msgstr ""
+
+msgid "Experiments"
+msgstr ""
+
+msgid "Expiration"
+msgstr ""
+
+msgid "Expiration date"
+msgstr ""
+
+msgid "Expiration date (optional)"
+msgstr ""
+
+msgid "Expired"
+msgstr ""
+
+msgid "Expired %{expiredOn}"
+msgstr ""
+
+msgid "Expired:"
+msgstr ""
+
+msgid "Expires"
+msgstr ""
+
+msgid "Expires %{preposition} %{expires_at}"
+msgstr ""
+
+msgid "Explain why you're reporting the user."
+msgstr ""
+
+msgid "Explore"
+msgstr ""
+
+msgid "Explore groups"
+msgstr ""
+
+msgid "Explore paid plans"
+msgstr ""
+
+msgid "Explore projects"
+msgstr ""
+
+msgid "Explore public projects"
+msgstr ""
+
+msgid "Explore snippets"
+msgstr ""
+
+msgid "Explore topics"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Export %{requirementsCount} requirements?"
+msgstr ""
+
+msgid "Export as CSV"
+msgstr ""
+
+msgid "Export group"
+msgstr ""
+
+msgid "Export issues"
+msgstr ""
+
+msgid "Export merge requests"
+msgstr ""
+
+msgid "Export project"
+msgstr ""
+
+msgid "Export requirements"
+msgstr ""
+
+msgid "Export this group with all related data."
+msgstr ""
+
+msgid "Export this project with all its related data in order to move it to a new GitLab instance. When the exported file is ready, you can download it from this page or from the download link in the email notification you will receive. You can then import it when creating a new project. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Exported requirements"
+msgstr ""
+
+msgid "External URL"
+msgstr ""
+
+msgid "External User:"
+msgstr ""
+
+msgid "External authorization denied access to this project"
+msgstr ""
+
+msgid "External storage URL"
+msgstr ""
+
+msgid "External storage authentication token"
+msgstr ""
+
+msgid "External storage for repository static objects"
+msgstr ""
+
+msgid "ExternalAuthorizationService|Classification label"
+msgstr ""
+
+msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used."
+msgstr ""
+
+msgid "ExternalAuthorization|Access to projects is validated on an external service using their classification label."
+msgstr ""
+
+msgid "ExternalAuthorization|Allow deploy tokens and deploy keys to be used with external authorization"
+msgstr ""
+
+msgid "ExternalAuthorization|Certificate used to authenticate with the external authorization service. If blank, the server certificate is validated when accessing over HTTPS."
+msgstr ""
+
+msgid "ExternalAuthorization|Classification label to use when requesting authorization if no specific label is defined on the project."
+msgstr ""
+
+msgid "ExternalAuthorization|Client authorization certificate"
+msgstr ""
+
+msgid "ExternalAuthorization|Client authorization key"
+msgstr ""
+
+msgid "ExternalAuthorization|Client authorization key password (optional)"
+msgstr ""
+
+msgid "ExternalAuthorization|Default classification label"
+msgstr ""
+
+msgid "ExternalAuthorization|Does not apply if service URL is specified."
+msgstr ""
+
+msgid "ExternalAuthorization|Enable classification control using an external service"
+msgstr ""
+
+msgid "ExternalAuthorization|External authorization"
+msgstr ""
+
+msgid "ExternalAuthorization|External authorization request timeout (seconds)"
+msgstr ""
+
+msgid "ExternalAuthorization|External classification policy authorization."
+msgstr ""
+
+msgid "ExternalAuthorization|Passphrase required to decrypt the private key. Encrypted when stored."
+msgstr ""
+
+msgid "ExternalAuthorization|Period GitLab waits for a response from the external service. If there is no response, access is denied. Default: 0.5 seconds."
+msgstr ""
+
+msgid "ExternalAuthorization|Private key of client authentication certificate. Encrypted when stored."
+msgstr ""
+
+msgid "ExternalAuthorization|Service URL"
+msgstr ""
+
+msgid "ExternalAuthorization|URL to which the projects make authorization requests. If the URL is blank, cross-project features are available and can still specify classification labels for projects."
+msgstr ""
+
+msgid "ExternalIssueIntegration|Another issue tracker is already in use"
+msgstr ""
+
+msgid "ExternalIssueIntegration|Not all data may be displayed here. To view more details or make changes to this issue, go to %{linkStart}%{trackerName}%{linkEnd}."
+msgstr ""
+
+msgid "ExternalIssueIntegration|Only one issue tracker integration can be active at a time. Please disable the active tracker first and try again."
+msgstr ""
+
+msgid "ExternalIssueIntegration|This issue is synchronized with %{trackerName}"
+msgstr ""
+
+msgid "ExternalWikiService|Enter the URL to the external wiki."
+msgstr ""
+
+msgid "ExternalWikiService|External wiki"
+msgstr ""
+
+msgid "ExternalWikiService|External wiki URL"
+msgstr ""
+
+msgid "ExternalWikiService|Link to an external wiki from the sidebar."
+msgstr ""
+
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
+msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
+msgstr ""
+
+msgid "Facebook"
+msgstr ""
+
+msgid "Factually incorrect"
+msgstr ""
+
+msgid "Fail"
+msgstr ""
+
+msgid "Failed"
+msgstr ""
+
+msgid "Failed Jobs"
+msgstr ""
+
+msgid "Failed job"
+msgid_plural "Failed jobs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Failed jobs (%{count})"
+msgstr ""
+
+msgid "Failed on"
+msgstr ""
+
+msgid "Failed to %{action} this work item: %{reason}."
+msgstr ""
+
+msgid "Failed to add a Zoom meeting"
+msgstr ""
+
+msgid "Failed to add a resource link"
+msgstr ""
+
+msgid "Failed to add emoji. Please try again"
+msgstr ""
+
+msgid "Failed to apply commands."
+msgstr ""
+
+msgid "Failed to archive a design. Please try again."
+msgid_plural "Failed to archive designs. Please try again."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Failed to assign a reviewer because no user was specified."
+msgstr ""
+
+msgid "Failed to assign a user because no user was found."
+msgstr ""
+
+msgid "Failed to assign you issues related to the merge request."
+msgstr ""
+
+msgid "Failed to cancel auto stop because failed to update the environment."
+msgstr ""
+
+msgid "Failed to cancel auto stop because the environment is not set as auto stop."
+msgstr ""
+
+msgid "Failed to cancel auto stop because you do not have permission to update the environment."
+msgstr ""
+
+msgid "Failed to change the owner"
+msgstr ""
+
+msgid "Failed to check related branches."
+msgstr ""
+
+msgid "Failed to clone this issue because target project doesn't exist."
+msgstr ""
+
+msgid "Failed to clone this issue: wrong parameters."
+msgstr ""
+
+msgid "Failed to create a branch for this issue. Please try again."
+msgstr ""
+
+msgid "Failed to create a to-do item for the design."
+msgstr ""
+
+msgid "Failed to create branch target"
+msgstr ""
+
+msgid "Failed to create framework"
+msgstr ""
+
+msgid "Failed to create import label for jira import."
+msgstr ""
+
+msgid "Failed to create organization"
+msgstr ""
+
+msgid "Failed to create repository"
+msgstr ""
+
+msgid "Failed to create resources"
+msgstr ""
+
+msgid "Failed to create wiki"
+msgstr ""
+
+msgid "Failed to delete branch target"
+msgstr ""
+
+msgid "Failed to delete custom emoji. Please try again."
+msgstr ""
+
+msgid "Failed to deploy to"
+msgstr ""
+
+msgid "Failed to enqueue the rebase operation, possibly due to a long-lived transaction. Try again later."
+msgstr ""
+
+msgid "Failed to fetch the iteration for this issue. Please try again."
+msgstr ""
+
+msgid "Failed to fetch the iterations for the group. Please try again."
+msgstr ""
+
+msgid "Failed to find import label for Jira import."
+msgstr ""
+
+msgid "Failed to find users for %{missing}"
+msgstr ""
+
+msgid "Failed to generate description"
+msgstr ""
+
+msgid "Failed to generate export, please try again later."
+msgstr ""
+
+msgid "Failed to generate report, please try again after sometime"
+msgstr ""
+
+msgid "Failed to get ref."
+msgstr ""
+
+msgid "Failed to load"
+msgstr ""
+
+msgid "Failed to load Roadmap"
+msgstr ""
+
+msgid "Failed to load assignees. Please try again."
+msgstr ""
+
+msgid "Failed to load authors. Please try again."
+msgstr ""
+
+msgid "Failed to load branches. Please try again."
+msgstr ""
+
+msgid "Failed to load deploy keys."
+msgstr ""
+
+msgid "Failed to load error details from Sentry."
+msgstr ""
+
+msgid "Failed to load errors from Sentry."
+msgstr ""
+
+msgid "Failed to load group activity metrics. Please try again."
+msgstr ""
+
+msgid "Failed to load groups, users and deploy keys."
+msgstr ""
+
+msgid "Failed to load groups."
+msgstr ""
+
+msgid "Failed to load labels. Please try again."
+msgstr ""
+
+msgid "Failed to load milestones. Please try again."
+msgstr ""
+
+msgid "Failed to load projects"
+msgstr ""
+
+msgid "Failed to load related branches"
+msgstr ""
+
+msgid "Failed to load stacktrace."
+msgstr ""
+
+msgid "Failed to make repository read-only. %{reason}"
+msgstr ""
+
+msgid "Failed to mark this issue as a duplicate because referenced issue was not found."
+msgstr ""
+
+msgid "Failed to move this issue because label was not found."
+msgstr ""
+
+msgid "Failed to move this issue because only a single label can be provided."
+msgstr ""
+
+msgid "Failed to move this issue because target project doesn't exist."
+msgstr ""
+
+msgid "Failed to promote label due to internal error. Please contact administrators."
+msgstr ""
+
+msgid "Failed to protect the branch"
+msgstr ""
+
+msgid "Failed to protect the environment"
+msgstr ""
+
+msgid "Failed to publish issue on status page."
+msgstr ""
+
+msgid "Failed to remove a Zoom meeting"
+msgstr ""
+
+msgid "Failed to remove a to-do item for the design."
+msgstr ""
+
+msgid "Failed to remove emoji. Please try again"
+msgstr ""
+
+msgid "Failed to remove mirror."
+msgstr ""
+
+msgid "Failed to remove the pipeline schedule"
+msgstr ""
+
+msgid "Failed to remove timelog"
+msgstr ""
+
+msgid "Failed to remove user identity."
+msgstr ""
+
+msgid "Failed to remove user key."
+msgstr ""
+
+msgid "Failed to retrieve page"
+msgstr ""
+
+msgid "Failed to save merge conflicts resolutions. Please try again!"
+msgstr ""
+
+msgid "Failed to save namespace commit email."
+msgstr ""
+
+msgid "Failed to save new settings"
+msgstr ""
+
+msgid "Failed to save preferences (%{error_message})."
+msgstr ""
+
+msgid "Failed to save preferences."
+msgstr ""
+
+msgid "Failed to save timelog"
+msgstr ""
+
+msgid "Failed to set due date because the date format is invalid."
+msgstr ""
+
+msgid "Failed to set iteration on this issue. Please try again."
+msgstr ""
+
+msgid "Failed to signing using smartcard authentication"
+msgstr ""
+
+msgid "Failed to toggle the to-do status for the design."
+msgstr ""
+
+msgid "Failed to update branch!"
+msgstr ""
+
+msgid "Failed to update environment!"
+msgstr ""
+
+msgid "Failed to update framework"
+msgstr ""
+
+msgid "Failed to update issue status"
+msgstr ""
+
+msgid "Failed to update organization"
+msgstr ""
+
+msgid "Failed to update the Canary Ingress."
+msgstr ""
+
+msgid "Failed to upload object map file"
+msgstr ""
+
+msgid "Failure"
+msgstr ""
+
+msgid "False positive"
+msgstr ""
+
+msgid "Fast timeout"
+msgstr ""
+
+msgid "Faster releases. Better code. Less pain."
+msgstr ""
+
+msgid "Favicon"
+msgstr ""
+
+msgid "Favicon was successfully removed."
+msgstr ""
+
+msgid "Favicon will be removed. Are you sure?"
+msgstr ""
+
+msgid "Feature Flags"
+msgstr ""
+
+msgid "Feature flag status"
+msgstr ""
+
+msgid "Feature flag was not removed."
+msgstr ""
+
+msgid "Feature flag was successfully removed."
+msgstr ""
+
+msgid "FeatureFlags|%d user"
+msgid_plural "FeatureFlags|%d users"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "FeatureFlags|%{percent} by available ID"
+msgstr ""
+
+msgid "FeatureFlags|%{percent} by session ID"
+msgstr ""
+
+msgid "FeatureFlags|%{percent} by user ID"
+msgstr ""
+
+msgid "FeatureFlags|%{percent} randomly"
+msgstr ""
+
+msgid "FeatureFlags|* (All Environments)"
+msgstr ""
+
+msgid "FeatureFlags|API URL"
+msgstr ""
+
+msgid "FeatureFlags|Active"
+msgstr ""
+
+msgid "FeatureFlags|Add strategy"
+msgstr ""
+
+msgid "FeatureFlags|All Environments"
+msgstr ""
+
+msgid "FeatureFlags|All Users"
+msgstr ""
+
+msgid "FeatureFlags|All users"
+msgstr ""
+
+msgid "FeatureFlags|Configure"
+msgstr ""
+
+msgid "FeatureFlags|Configure feature flags"
+msgstr ""
+
+msgid "FeatureFlags|Consider using the more flexible \"Percent rollout\" strategy instead."
+msgstr ""
+
+msgid "FeatureFlags|Create feature flag"
+msgstr ""
+
+msgid "FeatureFlags|Delete %{name}?"
+msgstr ""
+
+msgid "FeatureFlags|Delete feature flag"
+msgstr ""
+
+msgid "FeatureFlags|Description"
+msgstr ""
+
+msgid "FeatureFlags|Edit Feature flag"
+msgstr ""
+
+msgid "FeatureFlags|Edit User List"
+msgstr ""
+
+msgid "FeatureFlags|Enable features for specific users and environments by configuring feature flag strategies."
+msgstr ""
+
+msgid "FeatureFlags|Environment Specs"
+msgstr ""
+
+msgid "FeatureFlags|Feature Flag behavior is built up by creating a set of rules to define the status of target environments. A default wildcard 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 ""
+
+msgid "FeatureFlags|Feature Flag has no strategies"
+msgstr ""
+
+msgid "FeatureFlags|Feature flag"
+msgstr ""
+
+msgid "FeatureFlags|Feature flag %{name} will be removed. Are you sure?"
+msgstr ""
+
+msgid "FeatureFlags|Feature flag User Lists"
+msgstr ""
+
+msgid "FeatureFlags|Feature flag user list details"
+msgstr ""
+
+msgid "FeatureFlags|Feature flags"
+msgstr ""
+
+msgid "FeatureFlags|Feature flags allow you to configure your code into different flavors by dynamically toggling certain functionality."
+msgstr ""
+
+msgid "FeatureFlags|Feature flags limit reached (%{featureFlagsLimit}). Delete one or more feature flags before adding new ones."
+msgstr ""
+
+msgid "FeatureFlags|Get started with feature flags"
+msgstr ""
+
+msgid "FeatureFlags|ID"
+msgstr ""
+
+msgid "FeatureFlags|Inactive"
+msgstr ""
+
+msgid "FeatureFlags|Inactive flag for %{scope}"
+msgstr ""
+
+msgid "FeatureFlags|Install a %{docsLinkAnchoredStart}compatible client library%{docsLinkAnchoredEnd} and specify the API URL, application name, and instance ID during the configuration setup. %{docsLinkStart}More Information%{docsLinkEnd}"
+msgstr ""
+
+msgid "FeatureFlags|Instance ID"
+msgstr ""
+
+msgid "FeatureFlags|List details"
+msgstr ""
+
+msgid "FeatureFlags|Loading feature flags"
+msgstr ""
+
+msgid "FeatureFlags|More information"
+msgstr ""
+
+msgid "FeatureFlags|Name"
+msgstr ""
+
+msgid "FeatureFlags|New"
+msgstr ""
+
+msgid "FeatureFlags|New User List"
+msgstr ""
+
+msgid "FeatureFlags|New feature flag"
+msgstr ""
+
+msgid "FeatureFlags|No user list selected"
+msgstr ""
+
+msgid "FeatureFlags|Percent of users"
+msgstr ""
+
+msgid "FeatureFlags|Percent rollout"
+msgstr ""
+
+msgid "FeatureFlags|Percent rollout must be an integer number between 0 and 100"
+msgstr ""
+
+msgid "FeatureFlags|Remove"
+msgstr ""
+
+msgid "FeatureFlags|Search code references"
+msgstr ""
+
+msgid "FeatureFlags|Set the Unleash client application name to the name of the environment your application runs in. This value is used to match environment scopes. See the %{linkStart}example client configuration%{linkEnd}."
+msgstr ""
+
+msgid "FeatureFlags|Status"
+msgstr ""
+
+msgid "FeatureFlags|Strategies"
+msgstr ""
+
+msgid "FeatureFlags|There was an error fetching the feature flags."
+msgstr ""
+
+msgid "FeatureFlags|To prevent accidental actions we ask you to confirm your intention. Please type %{projectName} to proceed or close this modal to cancel."
+msgstr ""
+
+msgid "FeatureFlags|Try again in a few moments or contact your support team."
+msgstr ""
+
+msgid "FeatureFlags|User IDs"
+msgstr ""
+
+msgid "FeatureFlags|User List"
+msgstr ""
+
+msgid "FeatureFlags|User Lists"
+msgstr ""
+
+msgid "FeatureFlags|View user lists"
+msgstr ""
+
+msgid "FeatureFlag|Percentage"
+msgstr ""
+
+msgid "FeatureFlag|Select a user list"
+msgstr ""
+
+msgid "FeatureFlag|Select the environment scope for this feature flag"
+msgstr ""
+
+msgid "FeatureFlag|There are no configured user lists"
+msgstr ""
+
+msgid "FeatureFlag|Type"
+msgstr ""
+
+msgid "FeatureFlag|User IDs"
+msgstr ""
+
+msgid "FeatureFlag|User List"
+msgstr ""
+
+msgid "Feb"
+msgstr ""
+
+msgid "February"
+msgstr ""
+
+msgid "Fetch and check out this merge request's feature branch:"
+msgstr ""
+
+msgid "Fetching incoming email"
+msgstr ""
+
+msgid "File"
+msgstr ""
+
+msgid "File %{current} of %{total}"
+msgstr ""
+
+msgid "File Hooks"
+msgstr ""
+
+msgid "File Tree"
+msgstr ""
+
+msgid "File added"
+msgstr ""
+
+msgid "File browser"
+msgstr ""
+
+msgid "File deleted"
+msgstr ""
+
+msgid "File hooks are similar to system hooks but are executed as files instead of sending data to a URL."
+msgstr ""
+
+msgid "File is too big (%{fileSize}MiB). Max filesize: %{maxFileSize}MiB."
+msgstr ""
+
+msgid "File mode changed from %{a_mode} to %{b_mode}"
+msgstr ""
+
+msgid "File moved"
+msgstr ""
+
+msgid "File name"
+msgstr ""
+
+msgid "File name of the Google Play service account key."
+msgstr ""
+
+msgid "File permissions"
+msgstr ""
+
+msgid "File renamed with no changes."
+msgstr ""
+
+msgid "File suppressed by a .gitattributes entry or the file's encoding is unsupported."
+msgstr ""
+
+msgid "File templates"
+msgstr ""
+
+msgid "File too large. Secure Files must be less than %{limit} MB."
+msgstr ""
+
+msgid "File upload error."
+msgstr ""
+
+msgid "Filename"
+msgstr ""
+
+msgid "Files"
+msgstr ""
+
+msgid "Files API Rate Limits"
+msgstr ""
+
+msgid "Files breadcrumb"
+msgstr ""
+
+msgid "Files with large changes are collapsed by default."
+msgstr ""
+
+msgid "Files, directories, and submodules in the path %{path} for commit reference %{ref}"
+msgstr ""
+
+msgid "Fill in merge request template"
+msgstr ""
+
+msgid "Fill in the fields below, turn on %{strong_open}Enable SAML authentication for this group%{strong_close}, and press %{strong_open}Save changes%{strong_close}"
+msgstr ""
+
+msgid "Filter"
+msgstr ""
+
+msgid "Filter activity"
+msgstr ""
+
+msgid "Filter by"
+msgstr ""
+
+msgid "Filter by %{page_context_word} that are currently open."
+msgstr ""
+
+msgid "Filter by issues that are currently closed."
+msgstr ""
+
+msgid "Filter by issues that are currently opened."
+msgstr ""
+
+msgid "Filter by label"
+msgstr ""
+
+msgid "Filter by merge requests that are currently closed and unmerged."
+msgstr ""
+
+msgid "Filter by merge requests that are currently merged."
+msgstr ""
+
+msgid "Filter by milestone name"
+msgstr ""
+
+msgid "Filter by name"
+msgstr ""
+
+msgid "Filter by test cases that are currently archived."
+msgstr ""
+
+msgid "Filter by test cases that are currently open."
+msgstr ""
+
+msgid "Filter parameters are not valid. Make sure that the end date is after the start date."
+msgstr ""
+
+msgid "Filter pipelines"
+msgstr ""
+
+msgid "Filter reports"
+msgstr ""
+
+msgid "Filter results"
+msgstr ""
+
+msgid "Filter results by group"
+msgstr ""
+
+msgid "Filter results by project"
+msgstr ""
+
+msgid "Filter results..."
+msgstr ""
+
+msgid "Filter users"
+msgstr ""
+
+msgid "Finalizing"
+msgstr ""
+
+msgid "Find File"
+msgstr ""
+
+msgid "Find bugs in your code with API fuzzing."
+msgstr ""
+
+msgid "Find bugs in your code with coverage-guided fuzzing."
+msgstr ""
+
+msgid "Find by path"
+msgstr ""
+
+msgid "Find file"
+msgstr ""
+
+msgid "FindFile|Switch branch/tag"
+msgstr ""
+
+msgid "FindingsDrawer|Code Quality"
+msgstr ""
+
+msgid "FindingsDrawer|Code Quality Finding"
+msgstr ""
+
+msgid "FindingsDrawer|Detected in pipeline"
+msgstr ""
+
+msgid "FindingsDrawer|SAST Finding"
+msgstr ""
+
+msgid "Fingerprint (MD5)"
+msgstr ""
+
+msgid "Fingerprint (SHA256)"
+msgstr ""
+
+msgid "Fingerprints"
+msgstr ""
+
+msgid "Finish editing this message first!"
+msgstr ""
+
+msgid "Finish review"
+msgstr ""
+
+msgid "Finish setting up your dedicated account for %{group_name}."
+msgstr ""
+
+msgid "Finished"
+msgstr ""
+
+msgid "First Name"
+msgstr ""
+
+msgid "First Seen"
+msgstr ""
+
+msgid "First day of the week"
+msgstr ""
+
+msgid "First name"
+msgstr ""
+
+msgid "First seen"
+msgstr ""
+
+msgid "Fixed"
+msgstr ""
+
+msgid "Fixed burndown chart"
+msgstr ""
+
+msgid "Fixed:"
+msgstr ""
+
+msgid "Flags"
+msgstr ""
+
+msgid "FloC|Configure whether you want to participate in FLoC. %{floc_link_start}What is FLoC?%{floc_link_end}"
+msgstr ""
+
+msgid "FloC|Federated Learning of Cohorts (FLoC)"
+msgstr ""
+
+msgid "FloC|Participate in FLoC"
+msgstr ""
+
+msgid "Focus filter bar"
+msgstr ""
+
+msgid "FogBugz Email"
+msgstr ""
+
+msgid "FogBugz Import"
+msgstr ""
+
+msgid "FogBugz Password"
+msgstr ""
+
+msgid "FogBugz URL"
+msgstr ""
+
+msgid "FogBugz import"
+msgstr ""
+
+msgid "Fogbugz|Fogbugz import failed due to an error: %{error}"
+msgstr ""
+
+msgid "Fogbugz|Project %{repo} could not be found"
+msgstr ""
+
+msgid "Folder/%{name}"
+msgstr ""
+
+msgid "Follow"
+msgstr ""
+
+msgid "Followed Users' Activity"
+msgstr ""
+
+msgid "Followed users"
+msgstr ""
+
+msgid "Following tags don't exist"
+msgstr ""
+
+msgid "Font Color"
+msgstr ""
+
+msgid "Footer message"
+msgstr ""
+
+msgid "For %{link_to_pipeline_ref}"
+msgstr ""
+
+msgid "For %{ref}"
+msgstr ""
+
+msgid "For a faster browsing experience, only %{strongStart}%{visible} of %{total}%{strongEnd} files are shown. Download one of the files below to see all changes."
+msgstr ""
+
+msgid "For a faster browsing experience, only %{strong_open}%{display_size} of %{real_size}%{strong_close} files are shown. Download one of the files below to see all changes."
+msgstr ""
+
+msgid "For a faster browsing experience, some files are collapsed by default."
+msgstr ""
+
+msgid "For additional information, review your %{link_to} or contact your %{project_or_group} owner."
+msgstr ""
+
+msgid "For additional information, review your %{link_to} or contact your group owner."
+msgstr ""
+
+msgid "For additional information, review your %{project_or_group} membership: %{url} or contact your %{project_or_group} owner."
+msgstr ""
+
+msgid "For additional information, review your group membership: %{link_to} or contact your group owner."
+msgstr ""
+
+msgid "For each job, clone the repository."
+msgstr ""
+
+msgid "For each job, re-use the project workspace. If the workspace doesn't exist, use %{code_open}git clone%{code_close}."
+msgstr ""
+
+msgid "For files larger than this limit, only index the file name. The file content is neither indexed nor searchable."
+msgstr ""
+
+msgid "For general work"
+msgstr ""
+
+msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
+msgstr ""
+
+msgid "For investigating IT service disruptions or outages"
+msgstr ""
+
+msgid "For more information on how the number of active users is calculated, see the %{self_managed_subscriptions_doc_link} documentation."
+msgstr ""
+
+msgid "For more information, go to the "
+msgstr ""
+
+msgid "For more information, see the File Hooks documentation."
+msgstr ""
+
+msgid "For the GitLab Team to keep your subscription data up to date, this is a reminder to report your license usage on a monthly basis, or at the cadence set in your agreement with GitLab. This allows us to simplify the billing process for overages and renewals. To report your usage data, export your license usage file and email it to %{renewal_service_email}. If you need an updated license, GitLab will send the license to the email address registered in the %{customers_dot}, and you can upload this license to your instance."
+msgstr ""
+
+msgid "Forbidden"
+msgstr ""
+
+msgid "Forecast horizon must be positive and %{max_horizon} days at the most."
+msgstr ""
+
+msgid "Forgot your password?"
+msgstr ""
+
+msgid "Fork"
+msgstr ""
+
+msgid "Fork Error!"
+msgstr ""
+
+msgid "Fork project"
+msgstr ""
+
+msgid "Fork project?"
+msgstr ""
+
+msgid "ForkProject|A fork is a copy of a project."
+msgstr ""
+
+msgid "ForkProject|All branches"
+msgstr ""
+
+msgid "ForkProject|An error occurred while forking the project. Please try again."
+msgstr ""
+
+msgid "ForkProject|Branches to include"
+msgstr ""
+
+msgid "ForkProject|Cancel"
+msgstr ""
+
+msgid "ForkProject|Create a group"
+msgstr ""
+
+msgid "ForkProject|Fork project"
+msgstr ""
+
+msgid "ForkProject|Forking a repository allows you to make changes without affecting the original project."
+msgstr ""
+
+msgid "ForkProject|Internal"
+msgstr ""
+
+msgid "ForkProject|Only the default branch %{defaultBranch}"
+msgstr ""
+
+msgid "ForkProject|Please select a namespace"
+msgstr ""
+
+msgid "ForkProject|Please select a visibility level"
+msgstr ""
+
+msgid "ForkProject|Private"
+msgstr ""
+
+msgid "ForkProject|Project access must be granted explicitly to each user. If this project is part of a group, access will be granted to members of the group."
+msgstr ""
+
+msgid "ForkProject|Public"
+msgstr ""
+
+msgid "ForkProject|Select a namespace"
+msgstr ""
+
+msgid "ForkProject|Something went wrong while loading data. Please refresh the page to try again."
+msgstr ""
+
+msgid "ForkProject|The project can be accessed by any logged in user."
+msgstr ""
+
+msgid "ForkProject|The project can be accessed without any authentication."
+msgstr ""
+
+msgid "ForkProject|Visibility level"
+msgstr ""
+
+msgid "ForkProject|Want to organize several dependent projects under the same namespace?"
+msgstr ""
+
+msgid "ForkSuggestion|Cancel"
+msgstr ""
+
+msgid "ForkSuggestion|Fork"
+msgstr ""
+
+msgid "ForkSuggestion|You can’t %{edit_start}edit%{edit_end} files directly in this project. Fork this project and submit a merge request with your changes."
+msgstr ""
+
+msgid "ForkedFromProjectPath|Forked from"
+msgstr ""
+
+msgid "ForkedFromProjectPath|Forked from an inaccessible project."
+msgstr ""
+
+msgid "Forking in progress"
+msgstr ""
+
+msgid "Forks"
+msgstr ""
+
+msgid "ForksDivergence|%{aheadLinkStart}%{ahead} %{commit_word} ahead%{aheadLinkEnd} of"
+msgstr ""
+
+msgid "ForksDivergence|%{behindLinkStart}%{behind} %{commit_word} behind%{behindLinkEnd}"
+msgstr ""
+
+msgid "ForksDivergence|%{messages} the upstream repository."
+msgstr ""
+
+msgid "ForksDivergence|Check out to a branch, and merge the changes from the upstream project's default branch. You likely need to resolve conflicts during this step."
+msgstr ""
+
+msgid "ForksDivergence|Create merge request"
+msgstr ""
+
+msgid "ForksDivergence|Failed to fetch fork details. Try again later."
+msgstr ""
+
+msgid "ForksDivergence|Fetch the latest changes from the upstream repository's default branch:"
+msgstr ""
+
+msgid "ForksDivergence|Push the updates to remote:"
+msgstr ""
+
+msgid "ForksDivergence|Resolve merge conflicts manually"
+msgstr ""
+
+msgid "ForksDivergence|Source project has a limited visibility."
+msgstr ""
+
+msgid "ForksDivergence|Successfully fetched and merged from the upstream repository."
+msgstr ""
+
+msgid "ForksDivergence|The upstream changes could not be synchronized to this project due to file conflicts in the default branch. You must resolve the conflicts manually:"
+msgstr ""
+
+msgid "ForksDivergence|This fork has diverged from the upstream repository."
+msgstr ""
+
+msgid "ForksDivergence|Up to date with the upstream repository."
+msgstr ""
+
+msgid "ForksDivergence|Update fork"
+msgstr ""
+
+msgid "ForksDivergence|View merge request"
+msgstr ""
+
+msgid "Framework successfully deleted"
+msgstr ""
+
+msgid "Frameworks"
+msgstr ""
+
+msgid "Frameworks can not be added to projects in personal namespaces. %{linkStart}What are personal namespaces?%{linkEnd}"
+msgstr ""
+
+msgid "Free Trial of GitLab.com Ultimate"
+msgstr ""
+
+msgid "Free groups are limited to %{free_user_limit} member and the remaining members will get a status of over-limit and lose access to the group."
+msgid_plural "Free groups are limited to %{free_user_limit} members and the remaining members will get a status of over-limit and lose access to the group."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Free top-level groups will soon be limited to %{free_users_limit} users and %{free_storage_limit} of data"
+msgstr ""
+
+msgid "Free trial will expire in %{days}"
+msgstr ""
+
+msgid "FreeUserCap|Action required: %{namespace_name} group has been placed into a read-only state"
+msgstr ""
+
+msgid "FreeUserCap|Explore paid plans"
+msgstr ""
+
+msgid "FreeUserCap|Explore paid plans:"
+msgstr ""
+
+msgid "FreeUserCap|Manage members"
+msgstr ""
+
+msgid "FreeUserCap|Manage members:"
+msgstr ""
+
+msgid "FreeUserCap|Start a trial:"
+msgstr ""
+
+msgid "FreeUserCap|To remove the %{link_start}read-only%{link_end} state and regain write access, you can reduce the number of users in your top-level group to %{free_user_limit} users or less. You can also %{upgrade_start}upgrade%{upgrade_end} to a paid tier, which do not have user limits. If you need additional time, you can %{trial_start}start a free 30-day trial%{trial_end} which includes unlimited users."
+msgstr ""
+
+msgid "FreeUserCap|Upgrade:"
+msgstr ""
+
+msgid "FreeUserCap|You have exceeded your limit of %{free_user_limit} users for %{namespace_name} group because users were added to a group inherited by a group or project in the %{namespace_name} group."
+msgstr ""
+
+msgid "FreeUserCap|You've exceeded your user limit"
+msgstr ""
+
+msgid "Freeze end"
+msgstr ""
+
+msgid "Freeze start"
+msgstr ""
+
+msgid "Frequency"
+msgstr ""
+
+msgid "Frequently searched"
+msgstr ""
+
+msgid "Fri"
+msgstr ""
+
+msgid "Friday"
+msgstr ""
+
+msgid "From"
+msgstr ""
+
+msgid "From %{code_open}%{source_title}%{code_close} into"
+msgstr ""
+
+msgid "From %{providerTitle}"
+msgstr ""
+
+msgid "From issue creation until deploy to production"
+msgstr ""
+
+msgid "From line %{line1} to %{line2}"
+msgstr ""
+
+msgid "From merge request merge until deploy to production"
+msgstr ""
+
+msgid "Full"
+msgstr ""
+
+msgid "Full log"
+msgstr ""
+
+msgid "Full name"
+msgstr ""
+
+msgid "GCP region configured"
+msgstr ""
+
+msgid "GPG Key ID:"
+msgstr ""
+
+msgid "GPG Keys"
+msgstr ""
+
+msgid "GPG key mismatch"
+msgstr ""
+
+msgid "GPG keys allow you to verify signed commits."
+msgstr ""
+
+msgid "GPG signature (loading...)"
+msgstr ""
+
+msgid "General"
+msgstr ""
+
+msgid "General Settings"
+msgstr ""
+
+msgid "General pipelines"
+msgstr ""
+
+msgid "General settings"
+msgstr ""
+
+msgid "Generate API key at %{site}"
+msgstr ""
+
+msgid "Generate a default set of labels"
+msgstr ""
+
+msgid "Generate group access tokens scoped to this group for your applications that need access to the GitLab API."
+msgstr ""
+
+msgid "Generate new export"
+msgstr ""
+
+msgid "Generate project access tokens scoped to this project for your applications that need access to the GitLab API."
+msgstr ""
+
+msgid "Generate root cause analysis"
+msgstr ""
+
+msgid "Generate site and private keys at"
+msgstr ""
+
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
+msgid "Generated with JSON data"
+msgstr ""
+
+msgid "Generic"
+msgstr ""
+
+msgid "Generic package file size in bytes"
+msgstr ""
+
+msgid "GenericReport|After"
+msgstr ""
+
+msgid "GenericReport|Before"
+msgstr ""
+
+msgid "GenericReport|Diff"
+msgstr ""
+
+msgid "Geo"
+msgstr ""
+
+msgid "Geo Replication"
+msgstr ""
+
+msgid "Geo Replication - %{node_name}"
+msgstr ""
+
+msgid "Geo Settings"
+msgstr ""
+
+msgid "Geo Sites"
+msgstr ""
+
+msgid "Geo sites"
+msgstr ""
+
+msgid "Geo|%d group selected"
+msgid_plural "Geo|%d groups selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Geo|%d shard selected"
+msgid_plural "Geo|%d shards selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Geo|%{action} %{replicableType}"
+msgstr ""
+
+msgid "Geo|%{boldStart}Not applicable%{boldEnd}: Geo does not verify this component yet. See the %{linkStart}data types we plan to support%{linkEnd}."
+msgstr ""
+
+msgid "Geo|%{component} synced"
+msgstr ""
+
+msgid "Geo|%{component} verified"
+msgstr ""
+
+msgid "Geo|%{label} %{timeAgo}"
+msgstr ""
+
+msgid "Geo|%{label} can't be blank"
+msgstr ""
+
+msgid "Geo|%{label} should be between 1-999"
+msgstr ""
+
+msgid "Geo|%{timeAgoStr} (%{pendingEvents} events)"
+msgstr ""
+
+msgid "Geo|%{title} checksum progress"
+msgstr ""
+
+msgid "Geo|Add New Site"
+msgstr ""
+
+msgid "Geo|Add site"
+msgstr ""
+
+msgid "Geo|All"
+msgstr ""
+
+msgid "Geo|All %{replicableType} are being scheduled for %{action}"
+msgstr ""
+
+msgid "Geo|All %{replicable_name}"
+msgstr ""
+
+msgid "Geo|All projects"
+msgstr ""
+
+msgid "Geo|Allow this secondary site to replicate content on Object Storage"
+msgstr ""
+
+msgid "Geo|Allowed Geo IP"
+msgstr ""
+
+msgid "Geo|Allowed Geo IP can't be blank"
+msgstr ""
+
+msgid "Geo|Allowed Geo IP should be between 1 and 255 characters"
+msgstr ""
+
+msgid "Geo|Allowed Geo IP should contain valid IP addresses"
+msgstr ""
+
+msgid "Geo|Checksummed"
+msgstr ""
+
+msgid "Geo|Choose specific groups or storage shards"
+msgstr ""
+
+msgid "Geo|Comma-separated, e.g. '1.1.1.1, 2.2.2.0/24'"
+msgstr ""
+
+msgid "Geo|Configure various settings for your %{siteType} site. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "Geo|Connection timeout"
+msgstr ""
+
+msgid "Geo|Connection timeout can't be blank"
+msgstr ""
+
+msgid "Geo|Connection timeout must be a number"
+msgstr ""
+
+msgid "Geo|Connection timeout should be between 1-120"
+msgstr ""
+
+msgid "Geo|Consult Geo troubleshooting information"
+msgstr ""
+
+msgid "Geo|Container repositories synchronization concurrency limit"
+msgstr ""
+
+msgid "Geo|Data replication lag"
+msgstr ""
+
+msgid "Geo|Data type"
+msgstr ""
+
+msgid "Geo|Disabled"
+msgstr ""
+
+msgid "Geo|Discover GitLab Geo"
+msgstr ""
+
+msgid "Geo|Does not match the primary storage configuration"
+msgstr ""
+
+msgid "Geo|Edit %{siteType} site"
+msgstr ""
+
+msgid "Geo|Edit Geo Site"
+msgstr ""
+
+msgid "Geo|Edit your search and try again."
+msgstr ""
+
+msgid "Geo|Errors:"
+msgstr ""
+
+msgid "Geo|External URL"
+msgstr ""
+
+msgid "Geo|Failed"
+msgstr ""
+
+msgid "Geo|File synchronization concurrency limit"
+msgstr ""
+
+msgid "Geo|Filter Geo sites"
+msgstr ""
+
+msgid "Geo|Filter by name"
+msgstr ""
+
+msgid "Geo|Geo Settings"
+msgstr ""
+
+msgid "Geo|Geo allows you to choose specific groups or storage shards to replicate."
+msgstr ""
+
+msgid "Geo|Geo can replicate objects stored in Object Storage (AWS S3, or other compatible object storage)."
+msgstr ""
+
+msgid "Geo|Geo sites"
+msgstr ""
+
+msgid "Geo|Geo sites are paused using a command run on the site"
+msgstr ""
+
+msgid "Geo|Go to the primary site"
+msgstr ""
+
+msgid "Geo|Groups to synchronize"
+msgstr ""
+
+msgid "Geo|Healthy"
+msgstr ""
+
+msgid "Geo|If enabled, GitLab will handle Object Storage replication using Geo."
+msgstr ""
+
+msgid "Geo|If you want to make changes, you must visit the primary site."
+msgstr ""
+
+msgid "Geo|In progress"
+msgstr ""
+
+msgid "Geo|Internal URL"
+msgstr ""
+
+msgid "Geo|Internal URL (optional)"
+msgstr ""
+
+msgid "Geo|Last event ID"
+msgstr ""
+
+msgid "Geo|Last event ID from primary"
+msgstr ""
+
+msgid "Geo|Last event ID processed"
+msgstr ""
+
+msgid "Geo|Last time verified"
+msgstr ""
+
+msgid "Geo|Learn more about Geo"
+msgstr ""
+
+msgid "Geo|Learn more about Geo site statuses"
+msgstr ""
+
+msgid "Geo|Limit the number of concurrent operations this secondary site can run in the background."
+msgstr ""
+
+msgid "Geo|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 ""
+
+msgid "Geo|Minimum interval in days"
+msgstr ""
+
+msgid "Geo|Must match with the %{codeStart}external_url%{codeEnd} in %{codeStart}/etc/gitlab/gitlab.rb%{codeEnd}."
+msgstr ""
+
+msgid "Geo|Must match with the %{codeStart}geo_node_name%{codeEnd} in %{codeStart}/etc/gitlab/gitlab.rb%{codeEnd}."
+msgstr ""
+
+msgid "Geo|No %{replicable_type} were found. If you believe this may be an error, please refer to the %{linkStart}Geo Troubleshooting%{linkEnd} documentation for more information."
+msgstr ""
+
+msgid "Geo|No %{replicable} were found. If you believe this may be an error, please refer to the %{linkStart}Geo Troubleshooting%{linkEnd} documentation for more information."
+msgstr ""
+
+msgid "Geo|No Geo site found"
+msgstr ""
+
+msgid "Geo|No available replication slots"
+msgstr ""
+
+msgid "Geo|Nothing found…"
+msgstr ""
+
+msgid "Geo|Nothing to checksum"
+msgstr ""
+
+msgid "Geo|Nothing to synchronize"
+msgstr ""
+
+msgid "Geo|Nothing to verify"
+msgstr ""
+
+msgid "Geo|Object Storage replication"
+msgstr ""
+
+msgid "Geo|Offline"
+msgstr ""
+
+msgid "Geo|Pending synchronization"
+msgstr ""
+
+msgid "Geo|Pending verification"
+msgstr ""
+
+msgid "Geo|Primary"
+msgstr ""
+
+msgid "Geo|Primary site"
+msgstr ""
+
+msgid "Geo|Projects in certain groups"
+msgstr ""
+
+msgid "Geo|Projects in certain storage shards"
+msgstr ""
+
+msgid "Geo|Queued"
+msgstr ""
+
+msgid "Geo|Re-verification interval"
+msgstr ""
+
+msgid "Geo|Remove %{siteType} site"
+msgstr ""
+
+msgid "Geo|Remove site"
+msgstr ""
+
+msgid "Geo|Removing a Geo site stops the synchronization to and from that site. Are you sure?"
+msgstr ""
+
+msgid "Geo|Replicated data is verified with the secondary site(s) using checksums"
+msgstr ""
+
+msgid "Geo|Replicated data is verified with the secondary site(s) using checksums."
+msgstr ""
+
+msgid "Geo|Replication Details"
+msgstr ""
+
+msgid "Geo|Replication slot WAL"
+msgstr ""
+
+msgid "Geo|Replication slots"
+msgstr ""
+
+msgid "Geo|Replication status"
+msgstr ""
+
+msgid "Geo|Replication summary"
+msgstr ""
+
+msgid "Geo|Repository synchronization concurrency limit"
+msgstr ""
+
+msgid "Geo|Resync"
+msgstr ""
+
+msgid "Geo|Resync all"
+msgstr ""
+
+msgid "Geo|Retry count"
+msgstr ""
+
+msgid "Geo|Reverify"
+msgstr ""
+
+msgid "Geo|Reverify all"
+msgstr ""
+
+msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
+msgstr ""
+
+msgid "Geo|Secondary"
+msgstr ""
+
+msgid "Geo|Secondary site"
+msgstr ""
+
+msgid "Geo|Select groups to replicate"
+msgstr ""
+
+msgid "Geo|Select shards to replicate"
+msgstr ""
+
+msgid "Geo|Selective (%{syncLabel})"
+msgstr ""
+
+msgid "Geo|Selective synchronization"
+msgstr ""
+
+msgid "Geo|Set the timeout in seconds to send a secondary site status to the primary and IPs allowed for the secondary sites."
+msgstr ""
+
+msgid "Geo|Set verification limit and frequency."
+msgstr ""
+
+msgid "Geo|Set what should be replicated by this secondary site."
+msgstr ""
+
+msgid "Geo|Shards to synchronize"
+msgstr ""
+
+msgid "Geo|Show more"
+msgstr ""
+
+msgid "Geo|Site name can't be blank"
+msgstr ""
+
+msgid "Geo|Site name should be between 1 and 255 characters"
+msgstr ""
+
+msgid "Geo|Site's status was updated %{timeAgo}."
+msgstr ""
+
+msgid "Geo|Storage config"
+msgstr ""
+
+msgid "Geo|Synced"
+msgstr ""
+
+msgid "Geo|Synchronization"
+msgstr ""
+
+msgid "Geo|Synchronization failed - %{error}"
+msgstr ""
+
+msgid "Geo|Synchronization settings"
+msgstr ""
+
+msgid "Geo|Synchronization status"
+msgstr ""
+
+msgid "Geo|The URL of the primary site that is used internally by the secondary sites."
+msgstr ""
+
+msgid "Geo|The URL of the secondary site that is used internally by the primary site."
+msgstr ""
+
+msgid "Geo|The database is currently %{db_lag} behind the primary site."
+msgstr ""
+
+msgid "Geo|The site is currently %{minutes_behind} behind the primary site."
+msgstr ""
+
+msgid "Geo|There are no %{replicable_type} to show"
+msgstr ""
+
+msgid "Geo|There are no %{replicable} to show"
+msgstr ""
+
+msgid "Geo|There was an error deleting the Geo Site"
+msgstr ""
+
+msgid "Geo|There was an error fetching the Geo Settings"
+msgstr ""
+
+msgid "Geo|There was an error fetching the Geo Sites"
+msgstr ""
+
+msgid "Geo|There was an error fetching the Sites's Groups"
+msgstr ""
+
+msgid "Geo|There was an error saving this Geo Site"
+msgstr ""
+
+msgid "Geo|There was an error scheduling action %{action} for %{replicableType}"
+msgstr ""
+
+msgid "Geo|There was an error updating the Geo Settings"
+msgstr ""
+
+msgid "Geo|This GitLab instance is subscribed to the %{insufficient_license} tier. Geo is only available for users who have at least a Premium subscription."
+msgstr ""
+
+msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
+msgstr ""
+
+msgid "Geo|Time in seconds"
+msgstr ""
+
+msgid "Geo|Tuning settings"
+msgstr ""
+
+msgid "Geo|URL can't be blank"
+msgstr ""
+
+msgid "Geo|URL must be a valid url (ex: https://gitlab.com)"
+msgstr ""
+
+msgid "Geo|Unhealthy"
+msgstr ""
+
+msgid "Geo|Unknown"
+msgstr ""
+
+msgid "Geo|Updated %{timeAgo}"
+msgstr ""
+
+msgid "Geo|Verification"
+msgstr ""
+
+msgid "Geo|Verification concurrency limit"
+msgstr ""
+
+msgid "Geo|Verification failed - %{error}"
+msgstr ""
+
+msgid "Geo|Verification information"
+msgstr ""
+
+msgid "Geo|Verification status"
+msgstr ""
+
+msgid "Geo|Verified"
+msgstr ""
+
+msgid "Geo|With GitLab Geo, you can install a special read-only and replicated instance anywhere."
+msgstr ""
+
+msgid "Geo|You are on a secondary, %{b_open}read-only%{b_close} Geo site."
+msgstr ""
+
+msgid "Geo|You may be able to make a limited amount of changes or perform a limited amount of actions on this page."
+msgstr ""
+
+msgid "Geo|misconfigured"
+msgstr ""
+
+msgid "Geo|primary"
+msgstr ""
+
+msgid "Geo|secondary"
+msgstr ""
+
+msgid "Get a support subscription"
+msgstr ""
+
+msgid "Get free trial"
+msgstr ""
+
+msgid "Get more information about troubleshooting pipelines"
+msgstr ""
+
+msgid "Get started"
+msgstr ""
+
+msgid "Get started with GitLab"
+msgstr ""
+
+msgid "Get started with error tracking"
+msgstr ""
+
+msgid "Get started!"
+msgstr ""
+
+msgid "GiB"
+msgstr ""
+
+msgid "Git"
+msgstr ""
+
+msgid "Git LFS Rate Limits"
+msgstr ""
+
+msgid "Git LFS is not enabled on this GitLab server, contact your admin."
+msgstr ""
+
+msgid "Git LFS objects will be synced if LFS is %{docs_link_start}enabled for the project%{docs_link_end}. Push mirrors will %{strong_open}not%{strong_close} sync LFS objects over SSH."
+msgstr ""
+
+msgid "Git LFS status:"
+msgstr ""
+
+msgid "Git global setup"
+msgstr ""
+
+msgid "Git repository URL"
+msgstr ""
+
+msgid "Git revision"
+msgstr ""
+
+msgid "Git shallow clone"
+msgstr ""
+
+msgid "Git strategy"
+msgstr ""
+
+msgid "Git transfer in progress"
+msgstr ""
+
+msgid "Git version"
+msgstr ""
+
+msgid "GitAbuse|Automatically ban users from this %{scope} when they exceed the specified limits"
+msgstr ""
+
+msgid "GitAbuse|Excluded users"
+msgstr ""
+
+msgid "GitAbuse|Number of repositories"
+msgstr ""
+
+msgid "GitAbuse|Number of repositories can't be blank. Set to 0 for no limit."
+msgstr ""
+
+msgid "GitAbuse|Number of repositories must be a number."
+msgstr ""
+
+msgid "GitAbuse|Number of repositories should be between %{minNumRepos}-%{maxNumRepos}."
+msgstr ""
+
+msgid "GitAbuse|Reporting time period (seconds)"
+msgstr ""
+
+msgid "GitAbuse|Reporting time period can't be blank. Set to 0 for no limit."
+msgstr ""
+
+msgid "GitAbuse|Reporting time period must be a number."
+msgstr ""
+
+msgid "GitAbuse|Reporting time period should be between %{minTimePeriod}-%{maxTimePeriod} seconds."
+msgstr ""
+
+msgid "GitAbuse|Select between %{minAlertedUsers} and %{maxAlertedUsers} users to notify."
+msgstr ""
+
+msgid "GitAbuse|Send notifications to"
+msgstr ""
+
+msgid "GitAbuse|The maximum number of unique repositories a user can download in the specified time period before they're banned."
+msgstr ""
+
+msgid "GitAbuse|Users who are emailed when Git abuse rate limit is exceeded."
+msgstr ""
+
+msgid "GitAbuse|Users who are excluded from the Git abuse rate limit."
+msgstr ""
+
+msgid "GitAbuse|You cannot specify more than %{maxAllowedUsers} excluded users."
+msgstr ""
+
+msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
+msgstr ""
+
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
+msgid "GitHub import"
+msgstr ""
+
+msgid "GitHub repository URL."
+msgstr ""
+
+msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
+msgstr ""
+
+msgid "GitLab"
+msgstr ""
+
+msgid "GitLab (self-managed)"
+msgstr ""
+
+msgid "GitLab / Unsubscribe"
+msgstr ""
+
+msgid "GitLab API"
+msgstr ""
+
+msgid "GitLab Account Request"
+msgstr ""
+
+msgid "GitLab Billing Team."
+msgstr ""
+
+msgid "GitLab Community Edition"
+msgstr ""
+
+msgid "GitLab Duo didn't respond. Try again? If it fails again, your request might be too large."
+msgstr ""
+
+msgid "GitLab Enterprise Edition"
+msgstr ""
+
+msgid "GitLab Error Tracking"
+msgstr ""
+
+msgid "GitLab Import"
+msgstr ""
+
+msgid "GitLab KAS"
+msgstr ""
+
+msgid "GitLab Pages"
+msgstr ""
+
+msgid "GitLab Pages has moved"
+msgstr ""
+
+msgid "GitLab Shell"
+msgstr ""
+
+msgid "GitLab Support Bot"
+msgstr ""
+
+msgid "GitLab User"
+msgstr ""
+
+msgid "GitLab Workhorse"
+msgstr ""
+
+msgid "GitLab account request rejected"
+msgstr ""
+
+msgid "GitLab commit"
+msgstr ""
+
+msgid "GitLab detected an attempt to sign in to your %{host} account using an incorrect verification code"
+msgstr ""
+
+msgid "GitLab detected an attempt to sign in to your %{host} account using an incorrect verification code from the following IP address: %{ip}, at %{time}"
+msgstr ""
+
+msgid "GitLab documentation"
+msgstr ""
+
+msgid "GitLab events trigger webhooks. Use the request details of a webhook to help troubleshoot problems. %{link_start}How do I troubleshoot?%{link_end}"
+msgstr ""
+
+msgid "GitLab export"
+msgstr ""
+
+msgid "GitLab for Jira Cloud"
+msgstr ""
+
+msgid "GitLab group: %{source_link}"
+msgstr ""
+
+msgid "GitLab has redesigned the left sidebar to address customer feedback. View details in %{blog_link_start}this blog post%{link_end}. Here's how to %{issues_link_start}file an issue%{link_end} with the GitLab product team."
+msgstr ""
+
+msgid "GitLab informs you if a new version is available. %{link_start}What information does GitLab Inc. collect?%{link_end}"
+msgstr ""
+
+msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way Development, Security, and Ops teams collaborate"
+msgstr ""
+
+msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
+msgstr ""
+
+msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
+msgstr ""
+
+msgid "GitLab is obtaining a Let's Encrypt SSL certificate for this domain. This process can take some time. Please try again later."
+msgstr ""
+
+msgid "GitLab is open source software to collaborate on code."
+msgstr ""
+
+msgid "GitLab is undergoing maintenance"
+msgstr ""
+
+msgid "GitLab logo"
+msgstr ""
+
+msgid "GitLab metadata URL"
+msgstr ""
+
+msgid "GitLab project export"
+msgstr ""
+
+msgid "GitLab single sign-on URL"
+msgstr ""
+
+msgid "GitLab username"
+msgstr ""
+
+msgid "GitLab uses %{linkStart}Sidekiq%{linkEnd} to process background jobs"
+msgstr ""
+
+msgid "GitLab version"
+msgstr ""
+
+msgid "GitLab will create a branch in your fork and start a merge request."
+msgstr ""
+
+msgid "GitLab.com (SaaS)"
+msgstr ""
+
+msgid "GitLab.com import"
+msgstr ""
+
+msgid "GitLabPagesDomains|Retry"
+msgstr ""
+
+msgid "GitLabPages|%{domain} is not verified. To learn how to verify ownership, visit your %{link_start}domain details%{link_end}."
+msgstr ""
+
+msgid "GitLabPages|Access Control is enabled for this Pages website; only authorized users will be able to access it. To make your website publicly available, navigate to your project's %{strong_start}Settings &gt; General &gt; Visibility%{strong_end} and select %{strong_start}Everyone%{strong_end} in pages section. Read the %{link_start}documentation%{link_end} for more information."
+msgstr ""
+
+msgid "GitLabPages|Access pages"
+msgstr ""
+
+msgid "GitLabPages|Are you sure?"
+msgstr ""
+
+msgid "GitLabPages|Can be overridden per project. For no limit, enter 0. To inherit the value, leave empty."
+msgstr ""
+
+msgid "GitLabPages|Certificate: %{subject}"
+msgstr ""
+
+msgid "GitLabPages|Check the Pipeline Status"
+msgstr ""
+
+msgid "GitLabPages|Configure pages"
+msgstr ""
+
+msgid "GitLabPages|Domains"
+msgstr ""
+
+msgid "GitLabPages|Edit"
+msgstr ""
+
+msgid "GitLabPages|Expired"
+msgstr ""
+
+msgid "GitLabPages|Force HTTPS (requires valid certificates)"
+msgstr ""
+
+msgid "GitLabPages|GitLab Pages are disabled for this project. You can enable them on your project's %{strong_start}Settings &gt; General &gt; Visibility%{strong_end} page."
+msgstr ""
+
+msgid "GitLabPages|Maximum size (MB)"
+msgstr ""
+
+msgid "GitLabPages|New Domain"
+msgstr ""
+
+msgid "GitLabPages|Only project maintainers can remove pages"
+msgstr ""
+
+msgid "GitLabPages|Pages"
+msgstr ""
+
+msgid "GitLabPages|Remove"
+msgstr ""
+
+msgid "GitLabPages|Remove certificate"
+msgstr ""
+
+msgid "GitLabPages|Remove domain"
+msgstr ""
+
+msgid "GitLabPages|Remove pages"
+msgstr ""
+
+msgid "GitLabPages|Removing pages will prevent them from being exposed to the outside world."
+msgstr ""
+
+msgid "GitLabPages|Save changes"
+msgstr ""
+
+msgid "GitLabPages|Something went wrong while obtaining the Let's Encrypt certificate for %{domain}. To retry visit your %{link_start}domain details%{link_end}."
+msgstr ""
+
+msgid "GitLabPages|Start over"
+msgstr ""
+
+msgid "GitLabPages|Support for domains and certificates is disabled. Ask your system's administrator to enable it."
+msgstr ""
+
+msgid "GitLabPages|Unverified"
+msgstr ""
+
+msgid "GitLabPages|Updating your Pages configuration..."
+msgstr ""
+
+msgid "GitLabPages|Use multiple deployments"
+msgstr ""
+
+msgid "GitLabPages|Use unique domain"
+msgstr ""
+
+msgid "GitLabPages|Verified"
+msgstr ""
+
+msgid "GitLabPages|Waiting for the Pages Pipeline to complete..."
+msgstr ""
+
+msgid "GitLabPages|When enabled, a unique domain is generated to access pages."
+msgstr ""
+
+msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
+msgstr ""
+
+msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "GitLabPages|With GitLab Pages you can host your static website directly from your GitLab repository. %{docs_link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "GitLabPages|Your Pages site is not configured yet. See the %{docs_link_start}GitLab Pages documentation%{link_end} to learn how to upload your static site and have GitLab serve it. You can also take some inspiration from the %{samples_link_start}sample Pages projects%{link_end}."
+msgstr ""
+
+msgid "GitLabPages|Your project is configured for GitLab Pages and the pipeline is running..."
+msgstr ""
+
+msgid "Gitaly Servers"
+msgstr ""
+
+msgid "Gitaly timeouts"
+msgstr ""
+
+msgid "Gitaly|Address"
+msgstr ""
+
+msgid "Gitea host URL"
+msgstr ""
+
+msgid "Gitea import"
+msgstr ""
+
+msgid "GithubImporter|%{noteable_type} comment %{note_id}"
+msgstr ""
+
+msgid "GithubImporter|Collaborators"
+msgstr ""
+
+msgid "GithubImporter|Gist with id %{gist_id} failed due to error: %{error}."
+msgstr ""
+
+msgid "GithubImporter|GitHub Gists import finished with errors"
+msgstr ""
+
+msgid "GithubImporter|GitHub gists that were not imported:"
+msgstr ""
+
+msgid "GithubImporter|GitHub gists with more than 10 files must be manually migrated."
+msgstr ""
+
+msgid "GithubImporter|Issue %{issue_iid} attachment"
+msgstr ""
+
+msgid "GithubImporter|Issue links"
+msgstr ""
+
+msgid "GithubImporter|Merge request %{merge_request_iid} attachment"
+msgstr ""
+
+msgid "GithubImporter|Note attachment"
+msgstr ""
+
+msgid "GithubImporter|Note links"
+msgstr ""
+
+msgid "GithubImporter|PR attachments"
+msgstr ""
+
+msgid "GithubImporter|PR mergers"
+msgstr ""
+
+msgid "GithubImporter|PR reviewers"
+msgstr ""
+
+msgid "GithubImporter|PR reviews"
+msgstr ""
+
+msgid "GithubImporter|Please follow %{import_snippets_link_start}Import GitHub gists into GitLab snippets%{import_snippets_link_end} for more details."
+msgstr ""
+
+msgid "GithubImporter|Please follow %{import_snippets_url} for more details."
+msgstr ""
+
+msgid "GithubImporter|Pull request %{pull_request_iid} merger"
+msgstr ""
+
+msgid "GithubImporter|Pull request %{pull_request_iid} review request"
+msgstr ""
+
+msgid "GithubImporter|Pull request review %{review_id}"
+msgstr ""
+
+msgid "GithubImporter|Pull request review comment %{note_id}"
+msgstr ""
+
+msgid "GithubImporter|Pull requests"
+msgstr ""
+
+msgid "GithubImporter|Release %{tag} attachment"
+msgstr ""
+
+msgid "GithubImporter|Release links"
+msgstr ""
+
+msgid "GithubImporter|Your import of GitHub gists into GitLab snippets is complete."
+msgstr ""
+
+msgid "GithubIntegration|Create a %{token_link_start}personal access token%{token_link_end} with %{status_html} access granted and paste it here."
+msgstr ""
+
+msgid "GithubIntegration|Enable static status check names"
+msgstr ""
+
+msgid "GithubIntegration|Obtain statuses for commits and pull requests."
+msgstr ""
+
+msgid "GithubIntegration|Repository URL"
+msgstr ""
+
+msgid "GithubIntegration|Select this if you want GitHub to mark status checks as \"Required\". %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
+msgid "GithubIntegration|Static status check names (optional)"
+msgstr ""
+
+msgid "GithubIntegration|This requires mirroring your GitHub repository to this project. %{docs_link}"
+msgstr ""
+
+msgid "Gitpod"
+msgstr ""
+
+msgid "Gitpod|Enable Gitpod integration"
+msgstr ""
+
+msgid "Gitpod|Gitpod URL"
+msgstr ""
+
+msgid "Gitpod|The URL to your Gitpod instance configured to read your GitLab projects, such as https://gitpod.example.com."
+msgstr ""
+
+msgid "Gitpod|To use Gitpod you must first enable the feature in the integrations section of your %{linkStart}user preferences%{linkEnd}."
+msgstr ""
+
+msgid "Gitpod|To use the integration, each user must also enable Gitpod on their GitLab account. %{help_link_start}How do I enable it?%{help_link_end}"
+msgstr ""
+
+msgid "Gitpod|https://gitpod.example.com"
+msgstr ""
+
+msgid "Give feedback"
+msgstr ""
+
+msgid "Give us some feedback"
+msgstr ""
+
+msgid "Given access %{time_ago}"
+msgstr ""
+
+msgid "Given epic is already related to this epic."
+msgstr ""
+
+msgid "Given inputs not defined in the `spec` section of the included configuration file"
+msgstr ""
+
+msgid "Global SAML group membership lock"
+msgstr ""
+
+msgid "Global Search is disabled for this scope"
+msgstr ""
+
+msgid "Global Shortcuts"
+msgstr ""
+
+msgid "Global notification email"
+msgstr ""
+
+msgid "Global notification level"
+msgstr ""
+
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
+msgstr ""
+
+msgid "GlobalSearch|Aggregations load error."
+msgstr ""
+
+msgid "GlobalSearch|All available groups"
+msgstr ""
+
+msgid "GlobalSearch|Archived"
+msgstr ""
+
+msgid "GlobalSearch|Command palette"
+msgstr ""
+
+msgid "GlobalSearch|Fetching aggregations error."
+msgstr ""
+
+msgid "GlobalSearch|Filters"
+msgstr ""
+
+msgid "GlobalSearch|Group"
+msgstr ""
+
+msgid "GlobalSearch|Groups"
+msgstr ""
+
+msgid "GlobalSearch|Help"
+msgstr ""
+
+msgid "GlobalSearch|In this project"
+msgstr ""
+
+msgid "GlobalSearch|Include archived"
+msgstr ""
+
+msgid "GlobalSearch|Include search results from archived projects"
+msgstr ""
+
+msgid "GlobalSearch|Incremental indexing queue length"
+msgstr ""
+
+msgid "GlobalSearch|Initial indexing queue length"
+msgstr ""
+
+msgid "GlobalSearch|Issues I've created"
+msgstr ""
+
+msgid "GlobalSearch|Issues assigned to me"
+msgstr ""
+
+msgid "GlobalSearch|Labels"
+msgstr ""
+
+msgid "GlobalSearch|Language"
+msgstr ""
+
+msgid "GlobalSearch|Merge requests I've created"
+msgstr ""
+
+msgid "GlobalSearch|Merge requests assigned to me"
+msgstr ""
+
+msgid "GlobalSearch|Merge requests that I'm a reviewer"
+msgstr ""
+
+msgid "GlobalSearch|No labels found"
+msgstr ""
+
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
+msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
+msgstr ""
+
+msgid "GlobalSearch|Places"
+msgstr ""
+
+msgid "GlobalSearch|Project"
+msgstr ""
+
+msgid "GlobalSearch|Projects"
+msgstr ""
+
+msgid "GlobalSearch|Recent epics"
+msgstr ""
+
+msgid "GlobalSearch|Recent issues"
+msgstr ""
+
+msgid "GlobalSearch|Recent merge requests"
+msgstr ""
+
+msgid "GlobalSearch|Reset"
+msgstr ""
+
+msgid "GlobalSearch|Result count is over limit."
+msgstr ""
+
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgstr ""
+
+msgid "GlobalSearch|Search for projects, issues, etc."
+msgstr ""
+
+msgid "GlobalSearch|Search labels"
+msgstr ""
+
+msgid "GlobalSearch|Search results are loading"
+msgstr ""
+
+msgid "GlobalSearch|Settings"
+msgstr ""
+
+msgid "GlobalSearch|Show more"
+msgstr ""
+
+msgid "GlobalSearch|Showing top %{maxItems}"
+msgstr ""
+
+msgid "GlobalSearch|Syntax options"
+msgstr ""
+
+msgid "GlobalSearch|The search term must be at least 3 characters long."
+msgstr ""
+
+msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
+msgstr ""
+
+msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
+msgstr ""
+
+msgid "GlobalSearch|Type and press the enter key to submit search."
+msgstr ""
+
+msgid "GlobalSearch|Type for new suggestions to appear below."
+msgstr ""
+
+msgid "GlobalSearch|Users"
+msgstr ""
+
+msgid "GlobalSearch|What are you searching for?"
+msgstr ""
+
+msgid "GlobalSearch|all GitLab"
+msgstr ""
+
+msgid "GlobalSearch|in %{scope}"
+msgstr ""
+
+msgid "GlobalSearch|projects not indexed"
+msgstr ""
+
+msgid "GlobalShortcuts|Copied reference to clipboard."
+msgstr ""
+
+msgid "GlobalShortcuts|Copied source branch name to clipboard."
+msgstr ""
+
+msgid "GlobalShortcuts|Unable to copy the reference at this time."
+msgstr ""
+
+msgid "GlobalShortcuts|Unable to copy the source branch name at this time."
+msgstr ""
+
+msgid "Globally-allowed IP ranges"
+msgstr ""
+
+msgid "Go Back"
+msgstr ""
+
+msgid "Go Micro is a framework for micro service development"
+msgstr ""
+
+msgid "Go back"
+msgstr ""
+
+msgid "Go back (while searching for files)"
+msgstr ""
+
+msgid "Go back to configuration"
+msgstr ""
+
+msgid "Go full screen"
+msgstr ""
+
+msgid "Go to %{source_name}"
+msgstr ""
+
+msgid "Go to commits"
+msgstr ""
+
+msgid "Go to definition"
+msgstr ""
+
+msgid "Go to environments"
+msgstr ""
+
+msgid "Go to epic"
+msgstr ""
+
+msgid "Go to file"
+msgstr ""
+
+msgid "Go to file permalink (while viewing a file)"
+msgstr ""
+
+msgid "Go to files"
+msgstr ""
+
+msgid "Go to find file"
+msgstr ""
+
+msgid "Go to issue boards"
+msgstr ""
+
+msgid "Go to issues"
+msgstr ""
+
+msgid "Go to jobs"
+msgstr ""
+
+msgid "Go to kubernetes"
+msgstr ""
+
+msgid "Go to merge requests"
+msgstr ""
+
+msgid "Go to next page"
+msgstr ""
+
+msgid "Go to next unresolved thread"
+msgstr ""
+
+msgid "Go to page %{page}"
+msgstr ""
+
+msgid "Go to parent"
+msgstr ""
+
+msgid "Go to parent directory"
+msgstr ""
+
+msgid "Go to pipelines"
+msgstr ""
+
+msgid "Go to previous page"
+msgstr ""
+
+msgid "Go to previous unresolved thread"
+msgstr ""
+
+msgid "Go to project"
+msgstr ""
+
+msgid "Go to releases"
+msgstr ""
+
+msgid "Go to repository charts"
+msgstr ""
+
+msgid "Go to repository graph"
+msgstr ""
+
+msgid "Go to snippets"
+msgstr ""
+
+msgid "Go to the %{b_open}Activity%{b_close} page for %{project_link}."
+msgstr ""
+
+msgid "Go to the 'Admin area &gt; Sign-up restrictions', and check 'Allowed domains for sign-ups'."
+msgstr ""
+
+msgid "Go to the 'Admin area &gt; Sign-up restrictions', and check 'Email restrictions for sign-ups'."
+msgstr ""
+
+msgid "Go to the 'Admin area &gt; Sign-up restrictions', and check the 'Domain denylist'."
+msgstr ""
+
+msgid "Go to the activity feed"
+msgstr ""
+
+msgid "Go to the group’s 'Settings &gt; General' page, and check 'Restrict membership by email domain'."
+msgstr ""
+
+msgid "Go to the milestone list"
+msgstr ""
+
+msgid "Go to the project's activity feed"
+msgstr ""
+
+msgid "Go to the project's overview page"
+msgstr ""
+
+msgid "Go to wiki"
+msgstr ""
+
+msgid "Go to your To-Do list"
+msgstr ""
+
+msgid "Go to your fork"
+msgstr ""
+
+msgid "Go to your groups"
+msgstr ""
+
+msgid "Go to your issues"
+msgstr ""
+
+msgid "Go to your merge requests"
+msgstr ""
+
+msgid "Go to your projects"
+msgstr ""
+
+msgid "Go to your review requests"
+msgstr ""
+
+msgid "Go to your snippets"
+msgstr ""
+
+msgid "Google Artifact Registry"
+msgstr ""
+
+msgid "Google Cloud"
+msgstr ""
+
+msgid "Google Cloud Error - %{error}"
+msgstr ""
+
+msgid "Google Cloud Project"
+msgstr ""
+
+msgid "Google Cloud authorizations required"
+msgstr ""
+
+msgid "Google Play service account key."
+msgstr ""
+
+msgid "GoogleCloud|Cancel"
+msgstr ""
+
+msgid "GoogleCloud|Configured region is linked to the selected branch or tag"
+msgstr ""
+
+msgid "GoogleCloud|Create service account"
+msgstr ""
+
+msgid "GoogleCloud|Generated service account is linked to the selected branch or tag"
+msgstr ""
+
+msgid "GoogleCloud|Google Cloud project"
+msgstr ""
+
+msgid "GoogleCloud|Google OAuth2 token revocation request failed"
+msgstr ""
+
+msgid "GoogleCloud|Google OAuth2 token revocation requested"
+msgstr ""
+
+msgid "GoogleCloud|I understand the responsibilities involved with managing service account keys"
+msgstr ""
+
+msgid "GoogleCloud|New service account is generated for the selected Google Cloud project"
+msgstr ""
+
+msgid "GoogleCloud|Refs"
+msgstr ""
+
+msgid "GoogleCloud|Revoke authorizations"
+msgstr ""
+
+msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
+msgstr ""
+
+msgid "GooglePlayStore|Protected branches and tags only"
+msgstr ""
+
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
+msgstr ""
+
+msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
+msgstr ""
+
+msgid "GooglePlay|Drag your key file to start the upload."
+msgstr ""
+
+msgid "GooglePlay|Error: The file you're trying to upload is not a service account key."
+msgstr ""
+
+msgid "GooglePlay|Google Play"
+msgstr ""
+
+msgid "GooglePlay|Leave empty to use your current service account key."
+msgstr ""
+
+msgid "GooglePlay|Service account key (.JSON)"
+msgstr ""
+
+msgid "GooglePlay|Upload a new service account key (replace %{currentFileName})"
+msgstr ""
+
+msgid "GooglePlay|Use GitLab to build and release an app in Google Play."
+msgstr ""
+
+msgid "Got it"
+msgstr ""
+
+msgid "Grafana URL"
+msgstr ""
+
+msgid "Grant access"
+msgstr ""
+
+msgid "Grant write permissions to this key"
+msgstr ""
+
+msgid "Graph"
+msgstr ""
+
+msgid "GraphQL"
+msgstr ""
+
+msgid "GraphQL endpoint path"
+msgstr ""
+
+msgid "GraphViewType|Job dependencies"
+msgstr ""
+
+msgid "GraphViewType|Show dependencies"
+msgstr ""
+
+msgid "GraphViewType|Stage"
+msgstr ""
+
+msgid "Gravatar"
+msgstr ""
+
+msgid "Gravatar enabled"
+msgstr ""
+
+msgid "Grid"
+msgstr ""
+
+msgid "Group"
+msgstr ""
+
+msgid "Group %{group_name} and its Mattermost team were successfully created."
+msgstr ""
+
+msgid "Group %{group_name} couldn't be exported."
+msgstr ""
+
+msgid "Group %{group_name} was exported successfully."
+msgstr ""
+
+msgid "Group %{group_name} was scheduled for deletion."
+msgstr ""
+
+msgid "Group %{group_name} was successfully created."
+msgstr ""
+
+msgid "Group '%{group_name}' could not be updated."
+msgstr ""
+
+msgid "Group '%{group_name}' was successfully updated."
+msgstr ""
+
+msgid "Group Access Tokens"
+msgstr ""
+
+msgid "Group Git LFS status:"
+msgstr ""
+
+msgid "Group Hooks"
+msgstr ""
+
+msgid "Group Owner must have signed in with SAML before enabling Group Managed Accounts"
+msgstr ""
+
+msgid "Group SAML must be enabled to test"
+msgstr ""
+
+msgid "Group URL"
+msgstr ""
+
+msgid "Group access token creation is disabled in this group."
+msgstr ""
+
+msgid "Group application: %{name}"
+msgstr ""
+
+msgid "Group applications"
+msgstr ""
+
+msgid "Group audit events"
+msgstr ""
+
+msgid "Group avatar"
+msgstr ""
+
+msgid "Group by"
+msgstr ""
+
+msgid "Group by:"
+msgstr ""
+
+msgid "Group description (optional)"
+msgstr ""
+
+msgid "Group export could not be started."
+msgstr ""
+
+msgid "Group export download requests"
+msgstr ""
+
+msgid "Group export error"
+msgstr ""
+
+msgid "Group export link has expired. Please generate a new export from your group settings."
+msgstr ""
+
+msgid "Group export requests"
+msgstr ""
+
+msgid "Group export started. A download link will be sent by email and made available on this page."
+msgstr ""
+
+msgid "Group has been already marked for deletion"
+msgstr ""
+
+msgid "Group has not been marked for deletion"
+msgstr ""
+
+msgid "Group import could not be scheduled"
+msgstr ""
+
+msgid "Group import requests"
+msgstr ""
+
+msgid "Group info:"
+msgstr ""
+
+msgid "Group information"
+msgstr ""
+
+msgid "Group invite"
+msgstr ""
+
+msgid "Group jobs by"
+msgstr ""
+
+msgid "Group members"
+msgstr ""
+
+msgid "Group membership expiration date changed"
+msgstr ""
+
+msgid "Group membership expiration date removed"
+msgstr ""
+
+msgid "Group milestone"
+msgstr ""
+
+msgid "Group name (your organization)"
+msgstr ""
+
+msgid "Group navigation"
+msgstr ""
+
+msgid "Group overview content"
+msgstr ""
+
+msgid "Group path is already taken. We've suggested one that is available."
+msgstr ""
+
+msgid "Group path is available."
+msgstr ""
+
+msgid "Group pipeline minutes were successfully reset."
+msgstr ""
+
+msgid "Group project URLs are prefixed with the group namespace"
+msgstr ""
+
+msgid "Group requires separate account"
+msgstr ""
+
+msgid "Group runners"
+msgstr ""
+
+msgid "Group runners can be managed with the %{link}."
+msgstr ""
+
+msgid "Group variables (inherited)"
+msgstr ""
+
+msgid "Group was exported"
+msgstr ""
+
+msgid "Group was successfully updated."
+msgstr ""
+
+msgid "Group wikis"
+msgstr ""
+
+msgid "Group-level wiki is disabled."
+msgstr ""
+
+msgid "Group: %{group_name}"
+msgstr ""
+
+msgid "GroupActivityMetrics|Issues created"
+msgstr ""
+
+msgid "GroupActivityMetrics|Members added"
+msgstr ""
+
+msgid "GroupActivityMetrics|Merge requests created"
+msgstr ""
+
+msgid "GroupActivityMetrics|Recent activity"
+msgstr ""
+
+msgid "GroupImport|Failed to import group: %{error}"
+msgstr ""
+
+msgid "GroupImport|Group '%{group_name}' is being imported."
+msgstr ""
+
+msgid "GroupImport|Group could not be imported: %{errors}"
+msgstr ""
+
+msgid "GroupImport|Please wait while we import the group for you. Refresh at will."
+msgstr ""
+
+msgid "GroupImport|The group was successfully imported."
+msgstr ""
+
+msgid "GroupImport|Unable to process group import file"
+msgstr ""
+
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
+
+msgid "GroupRoadmap|%{dateWord} – No end date"
+msgstr ""
+
+msgid "GroupRoadmap|%{startDateInWords} – %{endDateInWords}"
+msgstr ""
+
+msgid "GroupRoadmap|Loading epics"
+msgstr ""
+
+msgid "GroupRoadmap|New epic"
+msgstr ""
+
+msgid "GroupRoadmap|No start and end date"
+msgstr ""
+
+msgid "GroupRoadmap|No start date – %{dateWord}"
+msgstr ""
+
+msgid "GroupRoadmap|Something went wrong while fetching epics"
+msgstr ""
+
+msgid "GroupRoadmap|Something went wrong while fetching milestones"
+msgstr ""
+
+msgid "GroupRoadmap|Sorry, no epics matched your search"
+msgstr ""
+
+msgid "GroupRoadmap|The roadmap shows the progress of your epics along a timeline"
+msgstr ""
+
+msgid "GroupRoadmap|This quarter"
+msgstr ""
+
+msgid "GroupRoadmap|This year"
+msgstr ""
+
+msgid "GroupRoadmap|To make your epics appear in the roadmap, add start or due dates to them."
+msgstr ""
+
+msgid "GroupRoadmap|To view the roadmap, add a start or due date to one of the %{linkStart}child epics%{linkEnd}."
+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 ""
+
+msgid "GroupRoadmap|To widen your search, change or remove filters; from %{startDate} to %{endDate}."
+msgstr ""
+
+msgid "GroupRoadmap|View epics list"
+msgstr ""
+
+msgid "GroupRoadmap|Within 3 years"
+msgstr ""
+
+msgid "GroupSAML|\"persistent\" recommended"
+msgstr ""
+
+msgid "GroupSAML|%{group_name} SAML authentication failed: %{message}"
+msgstr ""
+
+msgid "GroupSAML|%{strongOpen}Warning%{strongClose} - Enable %{linkStart}SSO enforcement%{linkEnd} to reduce security risks."
+msgstr ""
+
+msgid "GroupSAML|Active SAML Group Links (%{count})"
+msgstr ""
+
+msgid "GroupSAML|An error occurred generating your SCIM token. Please try again."
+msgstr ""
+
+msgid "GroupSAML|An error occurred resetting your SCIM token. Please try again."
+msgstr ""
+
+msgid "GroupSAML|Are you sure you want to remove the SAML group link?"
+msgstr ""
+
+msgid "GroupSAML|Are you sure you want to reset the SCIM token? SCIM provisioning will stop working until the new token is updated."
+msgstr ""
+
+msgid "GroupSAML|Before enforcing SSO, enable SAML authentication."
+msgstr ""
+
+msgid "GroupSAML|Before enforcing SSO-only authentication for Git activity of all users, enable SSO-only authentication for web activity."
+msgstr ""
+
+msgid "GroupSAML|Certificate fingerprint"
+msgstr ""
+
+msgid "GroupSAML|Configuration"
+msgstr ""
+
+msgid "GroupSAML|Copy SAML Response XML"
+msgstr ""
+
+msgid "GroupSAML|Could not create SAML group link: %{errors}."
+msgstr ""
+
+msgid "GroupSAML|Default membership role"
+msgstr ""
+
+msgid "GroupSAML|Enable SAML authentication for this group"
+msgstr ""
+
+msgid "GroupSAML|Enforce SSO-only authentication for Git and Dependency Proxy activity for this group"
+msgstr ""
+
+msgid "GroupSAML|Enforce SSO-only authentication for web activity for this group"
+msgstr ""
+
+msgid "GroupSAML|Enforce users to have dedicated group-managed accounts for this group"
+msgstr ""
+
+msgid "GroupSAML|Generate a SCIM token"
+msgstr ""
+
+msgid "GroupSAML|Generate a SCIM token to set up your System for Cross-Domain Identity Management."
+msgstr ""
+
+msgid "GroupSAML|Identifier"
+msgstr ""
+
+msgid "GroupSAML|Identity provider single sign-on URL"
+msgstr ""
+
+msgid "GroupSAML|Make sure you save this token — you won't be able to access it again."
+msgstr ""
+
+msgid "GroupSAML|Manage your group’s membership while adding another level of security with SAML."
+msgstr ""
+
+msgid "GroupSAML|Members"
+msgstr ""
+
+msgid "GroupSAML|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 ""
+
+msgid "GroupSAML|NameID"
+msgstr ""
+
+msgid "GroupSAML|NameID Format"
+msgstr ""
+
+msgid "GroupSAML|New SAML group link saved."
+msgstr ""
+
+msgid "GroupSAML|No active SAML group links"
+msgstr ""
+
+msgid "GroupSAML|Prohibit outer forks for this group"
+msgstr ""
+
+msgid "GroupSAML|Reset SCIM token"
+msgstr ""
+
+msgid "GroupSAML|Role to assign members of this SAML group."
+msgstr ""
+
+msgid "GroupSAML|SAML Group Links"
+msgstr ""
+
+msgid "GroupSAML|SAML Group Name"
+msgstr ""
+
+msgid "GroupSAML|SAML Group Name: %{saml_group_name}"
+msgstr ""
+
+msgid "GroupSAML|SAML Name ID and email address do not match your user account. Contact an administrator."
+msgstr ""
+
+msgid "GroupSAML|SAML Response Output"
+msgstr ""
+
+msgid "GroupSAML|SAML Response XML"
+msgstr ""
+
+msgid "GroupSAML|SAML Single Sign On"
+msgstr ""
+
+msgid "GroupSAML|SAML Single Sign On Settings"
+msgstr ""
+
+msgid "GroupSAML|SAML group link was successfully removed."
+msgstr ""
+
+msgid "GroupSAML|SCIM Token"
+msgstr ""
+
+msgid "GroupSAML|SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"."
+msgstr ""
+
+msgid "GroupSAML|Some branches are inaccessible because your SAML session has expired. To access the branches, select the group’s path to reauthenticate."
+msgstr ""
+
+msgid "GroupSAML|Some to-do items may be hidden because your SAML session has expired. Select the group’s path to reauthenticate and view the hidden to-do items."
+msgstr ""
+
+msgid "GroupSAML|The SCIM token is now hidden. To see the value of the token again, you need to %{linkStart}reset it%{linkEnd}."
+msgstr ""
+
+msgid "GroupSAML|The case-sensitive group name that will be sent by the SAML identity provider."
+msgstr ""
+
+msgid "GroupSAML|This will be set as the access level of users added to the group."
+msgstr ""
+
+msgid "GroupSAML|To be able to enable group-managed accounts, you first need to enable enforced SSO."
+msgstr ""
+
+msgid "GroupSAML|To be able to prohibit outer forks, you first need to enforce dedicate group managed accounts."
+msgstr ""
+
+msgid "GroupSAML|Use SAML group links to manage group membership using SAML."
+msgstr ""
+
+msgid "GroupSAML|Valid SAML Response"
+msgstr ""
+
+msgid "GroupSAML|With prohibit outer forks flag enabled group members will be able to fork project only inside your group."
+msgstr ""
+
+msgid "GroupSAML|as %{access_level}"
+msgstr ""
+
+msgid "GroupSAML|must match stored NameID of \"%{extern_uid}\" to identify user and allow sign in"
+msgstr ""
+
+msgid "GroupSAML|recommend persistent ID instead of email"
+msgstr ""
+
+msgid "GroupSaml|Copy SCIM API endpoint URL"
+msgstr ""
+
+msgid "GroupSaml|Copy SCIM token"
+msgstr ""
+
+msgid "GroupSaml|SCIM API endpoint URL"
+msgstr ""
+
+msgid "GroupSaml|Your SCIM token"
+msgstr ""
+
+msgid "GroupSelect|An error occurred fetching the groups. Please refresh the page to try again."
+msgstr ""
+
+msgid "GroupSelect|No matching results"
+msgstr ""
+
+msgid "GroupSelect|Search groups"
+msgstr ""
+
+msgid "GroupSelect|Select a group"
+msgstr ""
+
+msgid "GroupSettings| %{link_start}What do Experiment and Beta mean?%{link_end}"
+msgstr ""
+
+msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}."
+msgstr ""
+
+msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
+msgstr ""
+
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
+msgid "GroupSettings|Analytics"
+msgstr ""
+
+msgid "GroupSettings|Analytics Dashboards"
+msgstr ""
+
+msgid "GroupSettings|Applied to all subgroups unless overridden by a group owner. Groups already added to the project lose access."
+msgstr ""
+
+msgid "GroupSettings|Auto DevOps pipeline was updated for the group"
+msgstr ""
+
+msgid "GroupSettings|Available only on the top-level group. Applies to all subgroups. Groups already shared with a group outside %{group} are still shared unless removed manually."
+msgstr ""
+
+msgid "GroupSettings|Badges"
+msgstr ""
+
+msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
+msgstr ""
+
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
+msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
+msgstr ""
+
+msgid "GroupSettings|Change group URL"
+msgstr ""
+
+msgid "GroupSettings|Changing a group's URL can have unintended side effects."
+msgstr ""
+
+msgid "GroupSettings|Choose a group path that does not start with a dash or end with a period. It can also contain alphanumeric characters and underscores."
+msgstr ""
+
+msgid "GroupSettings|Choose the merge request checks for projects in this group. This setting overrides the same settings configured on each project in this group."
+msgstr ""
+
+msgid "GroupSettings|Compliance frameworks"
+msgstr ""
+
+msgid "GroupSettings|Configure analytics features for this group."
+msgstr ""
+
+msgid "GroupSettings|Configure compliance frameworks to make them available to projects in this group. %{linkStart}What are compliance frameworks?%{linkEnd}"
+msgstr ""
+
+msgid "GroupSettings|Configure limits on the number of repositories users can download, clone, or fork in a given time."
+msgstr ""
+
+msgid "GroupSettings|Custom project templates"
+msgstr ""
+
+msgid "GroupSettings|Customer relations is enabled"
+msgstr ""
+
+msgid "GroupSettings|Customize this group's badges."
+msgstr ""
+
+msgid "GroupSettings|Default to Auto DevOps pipeline for all projects within this group"
+msgstr ""
+
+msgid "GroupSettings|Email notifications are disabled"
+msgstr ""
+
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
+msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
+msgstr ""
+
+msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
+msgid "GroupSettings|Experiment and Beta features"
+msgstr ""
+
+msgid "GroupSettings|Export group"
+msgstr ""
+
+msgid "GroupSettings|Git abuse rate limit"
+msgstr ""
+
+msgid "GroupSettings|Group members are not notified if the group is mentioned."
+msgstr ""
+
+msgid "GroupSettings|Group mentions are disabled"
+msgstr ""
+
+msgid "GroupSettings|If not specified at the group or instance level, the default is %{default_initial_branch_name}. Does not affect existing repositories."
+msgstr ""
+
+msgid "GroupSettings|If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility."
+msgstr ""
+
+msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
+msgstr ""
+
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
+msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
+msgstr ""
+
+msgid "GroupSettings|Overrides user notification preferences for all members of the group, subgroups, and projects."
+msgstr ""
+
+msgid "GroupSettings|Pipeline settings was updated for the group"
+msgstr ""
+
+msgid "GroupSettings|Please choose a group URL with no special characters or spaces."
+msgstr ""
+
+msgid "GroupSettings|Prevent forking outside of the group"
+msgstr ""
+
+msgid "GroupSettings|Prevent forking setting was not saved"
+msgstr ""
+
+msgid "GroupSettings|Projects in %{group} cannot be shared with other groups"
+msgstr ""
+
+msgid "GroupSettings|Reporting"
+msgstr ""
+
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
+msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
+msgstr ""
+
+msgid "GroupSettings|Select parent group"
+msgstr ""
+
+msgid "GroupSettings|Select the project containing Analytics Dashboards configuration files"
+msgstr ""
+
+msgid "GroupSettings|Select the project containing Analytics Dashboards configuration files."
+msgstr ""
+
+msgid "GroupSettings|Select the project containing the %{code_start}.gitlab/insights.yml%{code_end} file"
+msgstr ""
+
+msgid "GroupSettings|Select the project containing your custom Insights file."
+msgstr ""
+
+msgid "GroupSettings|Service access tokens expiration enforced setting was not saved"
+msgstr ""
+
+msgid "GroupSettings|Service account token expiration"
+msgstr ""
+
+msgid "GroupSettings|Set a size limit for all content in each Pages site in this group. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "GroupSettings|Set the initial name and protections for the default branch of new repositories created in the group."
+msgstr ""
+
+msgid "GroupSettings|The Auto DevOps pipeline runs if no alternative CI configuration file is found."
+msgstr ""
+
+msgid "GroupSettings|There was a problem updating Auto DevOps pipeline: %{error_messages}."
+msgstr ""
+
+msgid "GroupSettings|There was a problem updating the pipeline settings: %{error_messages}."
+msgstr ""
+
+msgid "GroupSettings|These features are being developed and might be unstable."
+msgstr ""
+
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
+msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
+msgstr ""
+
+msgid "GroupSettings|This setting is applied on %{ancestor_group}. To share projects in this group with another group, ask the owner to override the setting or %{remove_ancestor_share_with_group_lock}."
+msgstr ""
+
+msgid "GroupSettings|This setting is applied on %{ancestor_group}. You can override the setting or %{remove_ancestor_share_with_group_lock}."
+msgstr ""
+
+msgid "GroupSettings|Transfer group"
+msgstr ""
+
+msgid "GroupSettings|Use Experiment and Beta features"
+msgstr ""
+
+msgid "GroupSettings|Users can create %{link_start_project}project access tokens%{link_end} and %{link_start_group}group access tokens%{link_end} in this group"
+msgstr ""
+
+msgid "GroupSettings|Value Streams Dashboard"
+msgstr ""
+
+msgid "GroupSettings|What are badges?"
+msgstr ""
+
+msgid "GroupSettings|What is Analytics Dashboards?"
+msgstr ""
+
+msgid "GroupSettings|What is Insights?"
+msgstr ""
+
+msgid "GroupSettings|You must have the Owner role in the target group"
+msgstr ""
+
+msgid "GroupSettings|You will need to update your local repositories to point to the new location."
+msgstr ""
+
+msgid "GroupSettings|cannot be changed by you"
+msgstr ""
+
+msgid "GroupSettings|cannot be disabled when the parent group \"Share with group lock\" is enabled, except by the owner of the parent group"
+msgstr ""
+
+msgid "GroupSettings|cannot change when group contains projects with NPM packages"
+msgstr ""
+
+msgid "GroupSettings|remove the share with group lock from %{ancestor_group_name}"
+msgstr ""
+
+msgid "Groups"
+msgstr ""
+
+msgid "Groups (%{count})"
+msgstr ""
+
+msgid "Groups and projects"
+msgstr ""
+
+msgid "Groups are a great way to organize projects and people."
+msgstr ""
+
+msgid "Groups are the best way to manage projects and members."
+msgstr ""
+
+msgid "GroupsEmptyState|A group is a collection of several projects"
+msgstr ""
+
+msgid "GroupsEmptyState|Create new project"
+msgstr ""
+
+msgid "GroupsEmptyState|Create new subgroup"
+msgstr ""
+
+msgid "GroupsEmptyState|Groups are the best way to manage multiple projects and members."
+msgstr ""
+
+msgid "GroupsEmptyState|If you organize your projects under a group, it works like a folder. You can manage your group member's permissions and access to each project in the group."
+msgstr ""
+
+msgid "GroupsEmptyState|No archived projects."
+msgstr ""
+
+msgid "GroupsEmptyState|No groups found"
+msgstr ""
+
+msgid "GroupsEmptyState|No shared projects."
+msgstr ""
+
+msgid "GroupsEmptyState|No subgroups or projects."
+msgstr ""
+
+msgid "GroupsEmptyState|Projects are where you can store your code, access issues, wiki, and other features of Gitlab."
+msgstr ""
+
+msgid "GroupsEmptyState|You do not have necessary permissions to create a subgroup or project in this group. Please contact an owner of this group to create a new subgroup or project."
+msgstr ""
+
+msgid "GroupsNew|%{groupsLinkStart}Groups%{groupsLinkEnd} and %{subgroupsLinkStart}subgroups%{subgroupsLinkEnd} allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects."
+msgstr ""
+
+msgid "GroupsNew|%{linkStart}Groups%{linkEnd} allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects."
+msgstr ""
+
+msgid "GroupsNew|Assemble related projects together and grant members access to several projects at once."
+msgstr ""
+
+msgid "GroupsNew|Connect instance"
+msgstr ""
+
+msgid "GroupsNew|Create a token with %{code_start}api%{code_end} and %{code_start}read_repository%{code_end} scopes in the %{pat_link_start}user settings%{pat_link_end} of the source GitLab instance. For %{short_living_link_start}security reasons%{short_living_link_end}, set a short expiration date for the token. Keep in mind that large migrations take more time."
+msgstr ""
+
+msgid "GroupsNew|Create group"
+msgstr ""
+
+msgid "GroupsNew|Create new group"
+msgstr ""
+
+msgid "GroupsNew|Create subgroup"
+msgstr ""
+
+msgid "GroupsNew|Enter the URL for the source instance."
+msgstr ""
+
+msgid "GroupsNew|GitLab source instance base URL"
+msgstr ""
+
+msgid "GroupsNew|Groups"
+msgstr ""
+
+msgid "GroupsNew|Groups can also be nested by creating %{linkStart}subgroups%{linkEnd}."
+msgstr ""
+
+msgid "GroupsNew|Import a group and related data from another GitLab instance."
+msgstr ""
+
+msgid "GroupsNew|Import group"
+msgstr ""
+
+msgid "GroupsNew|Import groups by direct transfer"
+msgstr ""
+
+msgid "GroupsNew|Importing groups by direct transfer is currently disabled."
+msgstr ""
+
+msgid "GroupsNew|New group"
+msgstr ""
+
+msgid "GroupsNew|New subgroup"
+msgstr ""
+
+msgid "GroupsNew|Not all group items are migrated. %{docs_link_start}What items are migrated%{docs_link_end}?"
+msgstr ""
+
+msgid "GroupsNew|Personal access token"
+msgstr ""
+
+msgid "GroupsNew|Please %{admin_link_start}enable it in the Admin settings%{admin_link_end}."
+msgstr ""
+
+msgid "GroupsNew|Please ask your Administrator to enable it in the Admin settings."
+msgstr ""
+
+msgid "GroupsNew|Please fill in your personal access token."
+msgstr ""
+
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
+msgstr ""
+
+msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
+msgstr ""
+
+msgid "GroupsNew|This feature is deprecated and replaced by group migration by direct transfer. %{docs_link_start}Learn more%{docs_link_end}."
+msgstr ""
+
+msgid "GroupsNew|To import a group, navigate to the group settings for the GitLab source instance, %{link_start}generate an export file%{link_end}, and upload it here."
+msgstr ""
+
+msgid "GroupsNew|Upload file"
+msgstr ""
+
+msgid "GroupsNew|You can also %{linkStart}import an existing group%{linkEnd}."
+msgstr ""
+
+msgid "GroupsNew|e.g. h8d3f016698e..."
+msgstr ""
+
+msgid "GroupsTree|Are you sure you want to leave the \"%{fullName}\" group?"
+msgstr ""
+
+msgid "GroupsTree|Delete"
+msgstr ""
+
+msgid "GroupsTree|Edit"
+msgstr ""
+
+msgid "GroupsTree|Failed to leave the group. Please make sure you are not the only owner."
+msgstr ""
+
+msgid "GroupsTree|Leave group"
+msgstr ""
+
+msgid "GroupsTree|Loading groups"
+msgstr ""
+
+msgid "GroupsTree|Options"
+msgstr ""
+
+msgid "GroupsTree|Search by name"
+msgstr ""
+
+msgid "Groups|Avatar will be removed. Are you sure?"
+msgstr ""
+
+msgid "Groups|Changing group URL can have unintended side effects."
+msgstr ""
+
+msgid "Groups|Checking group URL availability..."
+msgstr ""
+
+msgid "Groups|Create and add README"
+msgstr ""
+
+msgid "Groups|Creating README"
+msgstr ""
+
+msgid "Groups|Enter a descriptive name for your group."
+msgstr ""
+
+msgid "Groups|Group ID"
+msgstr ""
+
+msgid "Groups|Group README"
+msgstr ""
+
+msgid "Groups|Group URL"
+msgstr ""
+
+msgid "Groups|Group avatar"
+msgstr ""
+
+msgid "Groups|Group description (optional)"
+msgstr ""
+
+msgid "Groups|Group name"
+msgstr ""
+
+msgid "Groups|Group path is available."
+msgstr ""
+
+msgid "Groups|Group path is unavailable. Path has been replaced with a suggested available path."
+msgstr ""
+
+msgid "Groups|Learn more about subgroups"
+msgstr ""
+
+msgid "Groups|Members, projects, trials, and paid subscriptions are tied to a specific top-level group. If you are already a member of a top-level group, you can create a subgroup so your new work is part of your existing top-level group. Do you want to create a subgroup instead?"
+msgstr ""
+
+msgid "Groups|Must start with letter, digit, emoji, or underscore. Can also contain periods, dashes, spaces, and parentheses."
+msgstr ""
+
+msgid "Groups|Remove avatar"
+msgstr ""
+
+msgid "Groups|Save changes"
+msgstr ""
+
+msgid "Groups|Subgroup URL"
+msgstr ""
+
+msgid "Groups|Subgroup name"
+msgstr ""
+
+msgid "Groups|Subgroup slug"
+msgstr ""
+
+msgid "Groups|There was an error creating the Group README."
+msgstr ""
+
+msgid "Groups|This will create a README.md for project %{path}."
+msgstr ""
+
+msgid "Groups|This will create a project %{path} and add a README.md."
+msgstr ""
+
+msgid "Groups|You're creating a new top-level group"
+msgstr ""
+
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
+msgid "Guest"
+msgstr ""
+
+msgid "Guideline"
+msgstr ""
+
+msgid "HAR (HTTP Archive)"
+msgstr ""
+
+msgid "HAR file URL"
+msgstr ""
+
+msgid "HAR file path or URL"
+msgstr ""
+
+msgid "HTTP Archive (HAR)"
+msgstr ""
+
+msgid "HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See %{help_page_url}"
+msgstr ""
+
+msgid "Harbor Registry"
+msgstr ""
+
+msgid "HarborIntegration|After the Harbor integration is activated, global variables `$HARBOR_USERNAME`, `$HARBOR_HOST`, `$HARBOR_OCI`, `$HARBOR_PASSWORD`, `$HARBOR_URL` and `$HARBOR_PROJECT` will be created for CI/CD use."
+msgstr ""
+
+msgid "HarborIntegration|Base URL of the Harbor instance."
+msgstr ""
+
+msgid "HarborIntegration|Enter new Harbor password"
+msgstr ""
+
+msgid "HarborIntegration|Harbor URL"
+msgstr ""
+
+msgid "HarborIntegration|Harbor password"
+msgstr ""
+
+msgid "HarborIntegration|Harbor project name"
+msgstr ""
+
+msgid "HarborIntegration|Harbor username"
+msgstr ""
+
+msgid "HarborIntegration|Leave blank to use your current password."
+msgstr ""
+
+msgid "HarborIntegration|Password for your Harbor username."
+msgstr ""
+
+msgid "HarborIntegration|The name of the project in Harbor."
+msgstr ""
+
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
+msgid "HarborIntegration|Use Harbor as this project's container registry."
+msgstr ""
+
+msgid "HarborRegistry|%d artifact"
+msgid_plural "HarborRegistry|%d artifacts"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "HarborRegistry|%{count} Image repository"
+msgid_plural "HarborRegistry|%{count} Image repositories"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "HarborRegistry|-- artifacts"
+msgstr ""
+
+msgid "HarborRegistry|-- tags"
+msgstr ""
+
+msgid "HarborRegistry|Digest: %{imageId}"
+msgstr ""
+
+msgid "HarborRegistry|Harbor Registry"
+msgstr ""
+
+msgid "HarborRegistry|Harbor connection error"
+msgstr ""
+
+msgid "HarborRegistry|Please try different search criteria"
+msgstr ""
+
+msgid "HarborRegistry|Published %{timeInfo}"
+msgstr ""
+
+msgid "HarborRegistry|Root image"
+msgstr ""
+
+msgid "HarborRegistry|Something went wrong while fetching the artifact list."
+msgstr ""
+
+msgid "HarborRegistry|Something went wrong while fetching the repository list."
+msgstr ""
+
+msgid "HarborRegistry|Something went wrong while fetching the tags."
+msgstr ""
+
+msgid "HarborRegistry|Sorry, your filter produced no results."
+msgstr ""
+
+msgid "HarborRegistry|Tag"
+msgstr ""
+
+msgid "HarborRegistry|The filter returned no results"
+msgstr ""
+
+msgid "HarborRegistry|There are no harbor images stored for this project"
+msgstr ""
+
+msgid "HarborRegistry|This image has no artifacts"
+msgstr ""
+
+msgid "HarborRegistry|To widen your search, change or remove the filters above."
+msgstr ""
+
+msgid "HarborRegistry|We are having trouble connecting to the Harbor Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the documentation%{docLinkEnd}."
+msgstr ""
+
+msgid "HarborRegistry|With the Harbor Registry, every project can connect to a harbor space to store its Docker images."
+msgstr ""
+
+msgid "HarborRegistry|With the Harbor Registry, every project can have its own space to store images. %{docLinkStart}More information%{docLinkEnd}"
+msgstr ""
+
+msgid "Hashed Storage must be enabled to use Geo"
+msgstr ""
+
+msgid "Hashed repository storage paths"
+msgstr ""
+
+msgid "Hashed storage can't be disabled anymore for new projects"
+msgstr ""
+
+msgid "Header logo"
+msgstr ""
+
+msgid "Header logo was successfully removed."
+msgstr ""
+
+msgid "Header logo will be removed. Are you sure?"
+msgstr ""
+
+msgid "Header message"
+msgstr ""
+
+msgid "Headers"
+msgstr ""
+
+msgid "Heading 1"
+msgstr ""
+
+msgid "Heading 2"
+msgstr ""
+
+msgid "Heading 3"
+msgstr ""
+
+msgid "Heading 4"
+msgstr ""
+
+msgid "Health"
+msgstr ""
+
+msgid "Health Check"
+msgstr ""
+
+msgid "Health information can be retrieved from the following endpoints. More information is available"
+msgstr ""
+
+msgid "Health status"
+msgstr ""
+
+msgid "HealthCheck|Access token is"
+msgstr ""
+
+msgid "HealthCheck|Healthy"
+msgstr ""
+
+msgid "HealthCheck|No Health Problems Detected"
+msgstr ""
+
+msgid "HealthCheck|Unhealthy"
+msgstr ""
+
+msgid "Hello %{name},"
+msgstr ""
+
+msgid "Hello, %{name}!"
+msgstr ""
+
+msgid "Hello, %{username}!"
+msgstr ""
+
+msgid "HelloMessage|%{handshake_emoji} Contribute to GitLab: %{contribute_link}"
+msgstr ""
+
+msgid "HelloMessage|%{magnifier_emoji} Create a new GitLab issue: %{new_issue_link}"
+msgstr ""
+
+msgid "HelloMessage|%{rocket_emoji} We like your curiosity! Help us improve GitLab by joining the team: %{jobs_page_link}"
+msgstr ""
+
+msgid "HelloMessage|Does this page need fixes or improvements? Open an issue or contribute a merge request to help make GitLab more lovable. At GitLab, everyone can contribute!"
+msgstr ""
+
+msgid "HelloMessage|Welcome to GitLab!"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Help translate GitLab into your language"
+msgstr ""
+
+msgid "Help translate to your language"
+msgstr ""
+
+msgid "Helpful"
+msgstr ""
+
+msgid "Helps prevent bots from brute-force attacks."
+msgstr ""
+
+msgid "Helps prevent bots from creating accounts."
+msgstr ""
+
+msgid "Helps prevent bots from creating accounts. %{link_start}How do I configure it?%{link_end}"
+msgstr ""
+
+msgid "Helps prevent bots from creating issues."
+msgstr ""
+
+msgid "Helps prevent malicious users hide their activity."
+msgstr ""
+
+msgid "Helps reduce request volume (for example, from crawlers or abusive bots)"
+msgstr ""
+
+msgid "Helps reduce request volume for protected paths."
+msgstr ""
+
+msgid "Hi %{user_name} (%{user_username})!"
+msgstr ""
+
+msgid "Hi %{username}!"
+msgstr ""
+
+msgid "Hi %{username},"
+msgstr ""
+
+msgid "Hidden"
+msgstr ""
+
+msgid "Hide"
+msgstr ""
+
+msgid "Hide Live Preview"
+msgstr ""
+
+msgid "Hide archived projects"
+msgstr ""
+
+msgid "Hide comments"
+msgstr ""
+
+msgid "Hide comments on this file"
+msgstr ""
+
+msgid "Hide details"
+msgstr ""
+
+msgid "Hide file browser (or press F)"
+msgstr ""
+
+msgid "Hide file contents"
+msgstr ""
+
+msgid "Hide group projects"
+msgstr ""
+
+msgid "Hide host keys manual input"
+msgstr ""
+
+msgid "Hide list"
+msgstr ""
+
+msgid "Hide marketing-related entries from the Help page"
+msgstr ""
+
+msgid "Hide password"
+msgstr ""
+
+msgid "Hide payload"
+msgstr ""
+
+msgid "Hide shared projects"
+msgstr ""
+
+msgid "Hide sidebar"
+msgstr ""
+
+msgid "Hide thread"
+msgstr ""
+
+msgid "Hide tooltips or popovers"
+msgstr ""
+
+msgid "Hide values"
+msgstr ""
+
+msgid "Hierarchy|Current structure"
+msgstr ""
+
+msgid "Hierarchy|Deliver value more efficiently by breaking down necessary work into a hierarchical structure. This structure helps teams understand scope, priorities, and how work cascades up toward larger goals."
+msgstr ""
+
+msgid "Hierarchy|Help us improve work items in GitLab!"
+msgstr ""
+
+msgid "Hierarchy|Is there a framework or type of work item you wish you had access to in GitLab? Give us your feedback and help us build the experiences valuable to you."
+msgstr ""
+
+msgid "Hierarchy|Planning hierarchy"
+msgstr ""
+
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
+msgid "Hierarchy|Something went wrong while fetching children."
+msgstr ""
+
+msgid "Hierarchy|Take the work items survey"
+msgstr ""
+
+msgid "Hierarchy|These items are unavailable in the current structure."
+msgstr ""
+
+msgid "Hierarchy|Unavailable structure"
+msgstr ""
+
+msgid "Hierarchy|You can start using these items now."
+msgstr ""
+
+msgid "High - S2"
+msgstr ""
+
+msgid "High or unknown vulnerabilities present"
+msgstr ""
+
+msgid "Highest role:"
+msgstr ""
+
+msgid "HighlightBar|Alert events:"
+msgstr ""
+
+msgid "HighlightBar|Alert start time:"
+msgstr ""
+
+msgid "HighlightBar|Original alert:"
+msgstr ""
+
+msgid "HighlightBar|Time to SLA:"
+msgstr ""
+
+msgid "Historical release"
+msgstr ""
+
+msgid "History"
+msgstr ""
+
+msgid "History of authentications"
+msgstr ""
+
+msgid "Home page URL"
+msgstr ""
+
+msgid "Homepage"
+msgstr ""
+
+msgid "Hook execution failed. Ensure the group has a project with commits."
+msgstr ""
+
+msgid "Horizontal rule"
+msgstr ""
+
+msgid "Hostname"
+msgstr ""
+
+msgid "Hostname used in private commit emails. %{learn_more}"
+msgstr ""
+
+msgid "Hour"
+msgstr ""
+
+msgid "Hour (UTC)"
+msgstr ""
+
+msgid "Housekeeping"
+msgstr ""
+
+msgid "Housekeeping successfully started"
+msgstr ""
+
+msgid "How can I make my variables more secure?"
+msgstr ""
+
+msgid "How do I change my password in GitLab?"
+msgstr ""
+
+msgid "How do I clone a repository?"
+msgstr ""
+
+msgid "How do I configure Akismet?"
+msgstr ""
+
+msgid "How do I configure this integration?"
+msgstr ""
+
+msgid "How do I create a template?"
+msgstr ""
+
+msgid "How do I fork a project?"
+msgstr ""
+
+msgid "How do I generate it?"
+msgstr ""
+
+msgid "How do I get started?"
+msgstr ""
+
+msgid "How do I mirror repositories?"
+msgstr ""
+
+msgid "How do I rename an environment?"
+msgstr ""
+
+msgid "How do I set up a Google Chat webhook?"
+msgstr ""
+
+msgid "How do I set up this service?"
+msgstr ""
+
+msgid "How do I use a web terminal?"
+msgstr ""
+
+msgid "How does pull mirroring work?"
+msgstr ""
+
+msgid "How is progress calculated?"
+msgstr ""
+
+msgid "How many seconds an IP counts toward the IP address limit."
+msgstr ""
+
+msgid "How the job limiter handles jobs exceeding the thresholds specified below. The 'track' mode only logs the jobs. The 'compress' mode compresses the jobs and raises an exception if the compressed size exceeds the limit."
+msgstr ""
+
+msgid "How to track time"
+msgstr ""
+
+msgid "I accept the %{terms_link}"
+msgstr ""
+
+msgid "I am sorry, I am unable to find what you are looking for."
+msgstr ""
+
+msgid "I forgot my password"
+msgstr ""
+
+msgid "I want to explore GitLab to see if it’s worth switching to"
+msgstr ""
+
+msgid "I want to learn the basics of Git"
+msgstr ""
+
+msgid "I want to move my repository to GitLab from somewhere else"
+msgstr ""
+
+msgid "I want to store my code"
+msgstr ""
+
+msgid "I want to use GitLab CI with my existing repository"
+msgstr ""
+
+msgid "I'd like to receive updates about GitLab via email"
+msgstr ""
+
+msgid "I'm signing up for GitLab because:"
+msgstr ""
+
+msgid "I'm sorry, I was not able to find any documentation to answer your question."
+msgstr ""
+
+msgid "ID"
+msgstr ""
+
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
+msgid "ID:"
+msgstr ""
+
+msgid "IDE"
+msgstr ""
+
+msgid "IDE|Commit"
+msgstr ""
+
+msgid "IDE|Commit to %{branchName} branch"
+msgstr ""
+
+msgid "IDE|Edit"
+msgstr ""
+
+msgid "IDE|Go to project"
+msgstr ""
+
+msgid "IDE|Review"
+msgstr ""
+
+msgid "IDE|Start a new merge request"
+msgstr ""
+
+msgid "IDE|Successful commit"
+msgstr ""
+
+msgid "IDE|This option is disabled because you are not allowed to create merge requests in this project."
+msgstr ""
+
+msgid "IDE|This option is disabled because you don't have write permissions for the current branch."
+msgstr ""
+
+msgid "IDs with errors: %{error_messages}."
+msgstr ""
+
+msgid "IMPORTANT: Use this setting only for VERY strict auditing purposes. When turned on, nobody will be able to remove the label from any merge requests after they are merged. In addition, nobody will be able to turn off this setting or delete this label."
+msgstr ""
+
+msgid "INFO: Your SSH key has expired. Please generate a new key."
+msgstr ""
+
+msgid "INFO: Your SSH key is expiring soon. Please generate a new key."
+msgstr ""
+
+msgid "IP '%{value}' is not a valid CIDR: %{message}"
+msgstr ""
+
+msgid "IP '%{value}' is not a valid CIDR: IP should be followed by a slash followed by an integer subnet mask (for example: '192.168.1.0/24')"
+msgstr ""
+
+msgid "IP Address"
+msgstr ""
+
+msgid "IP address expiration time"
+msgstr ""
+
+msgid "IP address restrictions"
+msgstr ""
+
+msgid "IP addresses per user"
+msgstr ""
+
+msgid "IP subnet restriction only allowed for top-level groups"
+msgstr ""
+
+msgid "Icon will be removed. Are you sure?"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "Identifier"
+msgstr ""
+
+msgid "Identifiers"
+msgstr ""
+
+msgid "Identities"
+msgstr ""
+
+msgid "Identity verification exemption"
+msgstr ""
+
+msgid "Identity verification exemption has been created."
+msgstr ""
+
+msgid "Identity verification exemption has been removed."
+msgstr ""
+
+msgid "IdentityVerification|%d country found"
+msgid_plural "IdentityVerification|%d countries found"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
+msgstr ""
+
+msgid "IdentityVerification|A new code has been sent to your updated email address."
+msgstr ""
+
+msgid "IdentityVerification|A new code has been sent."
+msgstr ""
+
+msgid "IdentityVerification|Before you finish creating your account, we need to verify your identity. On the verification page, enter the following code."
+msgstr ""
+
+msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
+msgstr ""
+
+msgid "IdentityVerification|Complete verification to sign up."
+msgstr ""
+
+msgid "IdentityVerification|Confirm your email address"
+msgstr ""
+
+msgid "IdentityVerification|Country or region"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code?"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Email update is only offered once."
+msgstr ""
+
+msgid "IdentityVerification|Enter a code."
+msgstr ""
+
+msgid "IdentityVerification|Enter a valid code."
+msgstr ""
+
+msgid "IdentityVerification|For added security, you'll need to verify your identity in a few quick steps."
+msgstr ""
+
+msgid "IdentityVerification|For added security, you'll need to verify your identity."
+msgstr ""
+
+msgid "IdentityVerification|For added security, you'll need to verify your identity. We've sent a verification code to %{email}"
+msgstr ""
+
+msgid "IdentityVerification|GitLab will not charge or store your payment information, it will only be used for verification."
+msgstr ""
+
+msgid "IdentityVerification|Help us keep GitLab secure"
+msgstr ""
+
+msgid "IdentityVerification|Help us protect your account"
+msgstr ""
+
+msgid "IdentityVerification|If you have not recently tried to sign into GitLab, we recommend %{password_link_start}changing your password%{link_end} and %{two_fa_link_start}setting up Two-Factor Authentication%{link_end} to keep your account safe. Your verification code expires after %{expires_in_minutes} minutes."
+msgstr ""
+
+msgid "IdentityVerification|If you have not recently tried to sign into GitLab, we recommend changing your password (%{password_link}) and setting up Two-Factor Authentication (%{two_fa_link}) to keep your account safe."
+msgstr ""
+
+msgid "IdentityVerification|If you've lost access to the email associated to this account or having trouble with the code, %{link_start}here are some other steps you can take.%{link_end}"
+msgstr ""
+
+msgid "IdentityVerification|Maximum login attempts exceeded. Wait %{interval} and try again."
+msgstr ""
+
+msgid "IdentityVerification|Phone number"
+msgstr ""
+
+msgid "IdentityVerification|Phone number is required."
+msgstr ""
+
+msgid "IdentityVerification|Phone number must be %{maxLength} digits or fewer."
+msgstr ""
+
+msgid "IdentityVerification|Phone number must contain only digits."
+msgstr ""
+
+msgid "IdentityVerification|Please enter a valid code"
+msgstr ""
+
+msgid "IdentityVerification|Please enter a valid email address."
+msgstr ""
+
+msgid "IdentityVerification|Resend code"
+msgstr ""
+
+msgid "IdentityVerification|Select country or region"
+msgstr ""
+
+msgid "IdentityVerification|Send a new code"
+msgstr ""
+
+msgid "IdentityVerification|Send code"
+msgstr ""
+
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
+msgid "IdentityVerification|Something went wrong. Please try again."
+msgstr ""
+
+msgid "IdentityVerification|Step %{stepNumber}: Verify a payment method"
+msgstr ""
+
+msgid "IdentityVerification|Step %{stepNumber}: Verify email address"
+msgstr ""
+
+msgid "IdentityVerification|Step %{stepNumber}: Verify phone number"
+msgstr ""
+
+msgid "IdentityVerification|The code has expired. Send a new code and try again."
+msgstr ""
+
+msgid "IdentityVerification|The code is incorrect. Enter it again, or send a new code."
+msgstr ""
+
+msgid "IdentityVerification|There was a problem with the credit card details you entered. Use a different credit card and try again."
+msgstr ""
+
+msgid "IdentityVerification|Update email"
+msgstr ""
+
+msgid "IdentityVerification|Verification code"
+msgstr ""
+
+msgid "IdentityVerification|Verification code can't be blank."
+msgstr ""
+
+msgid "IdentityVerification|Verification code must be a number."
+msgstr ""
+
+msgid "IdentityVerification|Verification successful"
+msgstr ""
+
+msgid "IdentityVerification|Verify code"
+msgstr ""
+
+msgid "IdentityVerification|Verify email address"
+msgstr ""
+
+msgid "IdentityVerification|Verify payment method"
+msgstr ""
+
+msgid "IdentityVerification|Verify phone number"
+msgstr ""
+
+msgid "IdentityVerification|Verify with a credit card instead?"
+msgstr ""
+
+msgid "IdentityVerification|Verify with a phone number instead?"
+msgstr ""
+
+msgid "IdentityVerification|Verify your identity"
+msgstr ""
+
+msgid "IdentityVerification|We sent a new code to +%{phoneNumber}"
+msgstr ""
+
+msgid "IdentityVerification|We've sent a verification code to %{email}"
+msgstr ""
+
+msgid "IdentityVerification|We've sent a verification code to +%{phoneNumber}"
+msgstr ""
+
+msgid "IdentityVerification|You will receive a text containing a code. Standard charges may apply."
+msgstr ""
+
+msgid "IdentityVerification|You've reached the maximum amount of resends. Wait %{interval} and try again."
+msgstr ""
+
+msgid "IdentityVerification|You've reached the maximum amount of tries. Wait %{interval} and try again."
+msgstr ""
+
+msgid "IdentityVerification|You've reached the maximum amount of tries. Wait %{interval} or send a new code and try again."
+msgstr ""
+
+msgid "IdentityVerification|Your account has been successfully verified. You'll be redirected to your account in just a moment. You can also %{redirect_url_start}refresh the page%{redirect_url_end}."
+msgstr ""
+
+msgid "IdentityVerification|Your verification code expires after %{expires_in_minutes} minutes."
+msgstr ""
+
+msgid "Identity|Active"
+msgstr ""
+
+msgid "Identity|Provider ID"
+msgstr ""
+
+msgid "If any indexed field exceeds this limit, it is truncated to this number of characters. The rest of the content is neither indexed nor searchable. This does not apply to repository and wiki indexing. For unlimited characters, set this to 0."
+msgstr ""
+
+msgid "If blank, defaults to %{code_open}Retry later%{code_close}."
+msgstr ""
+
+msgid "If blank, set allowable lifetime to %{instance_level_policy_in_words}, as defined by the instance admin. Once set, existing tokens for users in this group may be revoked."
+msgstr ""
+
+msgid "If checked, group owners can manage LDAP group links and LDAP member overrides"
+msgstr ""
+
+msgid "If checked, new group memberships and permissions can only be added via LDAP synchronization"
+msgstr ""
+
+msgid "If checked, new group memberships and permissions can only be added via SAML Group Links synchronization"
+msgstr ""
+
+msgid "If disabled, a diverged local branch will not be automatically updated with commits from its remote counterpart, to prevent local data loss. If the default branch (%{default_branch}) has diverged and cannot be updated, mirroring will fail. Other diverged branches are silently ignored. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "If disabled, only administrators can configure repository mirroring."
+msgstr ""
+
+msgid "If enabled, all branches will be mirrored."
+msgstr ""
+
+msgid "If enabled, only protected branches will be mirrored."
+msgstr ""
+
+msgid "If the email address is incorrect, you can %{registration_link_start}register again with a different email%{registration_link_end}."
+msgstr ""
+
+msgid "If the number of active users exceeds the user limit, you will be charged for the number of %{users_over_license_link} at your next license reconciliation."
+msgstr ""
+
+msgid "If this email was added in error, you can remove it here:"
+msgstr ""
+
+msgid "If this email was added in error, you can remove it here: %{profile_emails_url}"
+msgstr ""
+
+msgid "If this was a mistake you can %{leave_link_start}leave the %{source_type}%{link_end}."
+msgstr ""
+
+msgid "If this was a mistake you can leave the %{source_type}."
+msgstr ""
+
+msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}"
+msgstr ""
+
+msgid "If you add %{codeStart}needs%{codeEnd} to jobs in your pipeline you'll be able to view the %{codeStart}needs%{codeEnd} relationships between jobs in this tab as a %{linkStart}Directed Acyclic Graph (DAG)%{linkEnd}."
+msgstr ""
+
+msgid "If you are unable to sign in or recover your password, contact a GitLab administrator."
+msgstr ""
+
+msgid "If you did not initiate these sign-in attempts, please reach out to your administrator or enable two-factor authentication (2FA) on your account."
+msgstr ""
+
+msgid "If you did not initiate this change, please contact your administrator immediately."
+msgstr ""
+
+msgid "If you did not perform this request, you can safely ignore this email."
+msgstr ""
+
+msgid "If you did not recently sign in, you should immediately %{password_link_start}change your password%{password_link_end}."
+msgstr ""
+
+msgid "If you did not recently sign in, you should immediately change your password: %{password_link}."
+msgstr ""
+
+msgid "If you did not recently try to sign in, you should immediately %{password_link_start}change your password%{password_link_end}."
+msgstr ""
+
+msgid "If you did not recently try to sign in, you should immediately change your password: %{password_link}."
+msgstr ""
+
+msgid "If you do not renew by %{strong}%{downgrades_on}%{strong_close}, you can't use merge approvals, %{end_message}"
+msgstr ""
+
+msgid "If you don't renew by %{strong}%{downgrades_on}%{strong_close} your instance will become read-only, and you won't be able to create issues or merge requests. You will also lose access to your paid features and support entitlement. %{learn_more_link}"
+msgstr ""
+
+msgid "If you get a lot of false alarms from repository checks, you can clear all repository check information from the database."
+msgstr ""
+
+msgid "If you lose your recovery codes you can generate new ones, invalidating all previous codes."
+msgstr ""
+
+msgid "If you recently signed in and recognize the IP address, you may disregard this email."
+msgstr ""
+
+msgid "If you recently tried to sign in, but mistakenly entered an incorrect verification code, you can ignore this email."
+msgstr ""
+
+msgid "If you want to re-enable two-factor authentication, visit %{two_factor_link}"
+msgstr ""
+
+msgid "If you want to re-enable two-factor authentication, visit the %{settings_link_to} page."
+msgstr ""
+
+msgid "If you want to remove this email address, visit %{profile_link}"
+msgstr ""
+
+msgid "If you want to remove this email address, visit the %{settings_link_to} page."
+msgstr ""
+
+msgid "If you've purchased or renewed your subscription and have an activation code, please enter it below to start the activation process."
+msgstr ""
+
+msgid "If your HTTP repository is not publicly accessible, add your credentials."
+msgstr ""
+
+msgid "Ignore"
+msgstr ""
+
+msgid "Ignored"
+msgstr ""
+
+msgid "Image"
+msgstr ""
+
+msgid "ImageDiffViewer|2-up"
+msgstr ""
+
+msgid "ImageDiffViewer|Onion skin"
+msgstr ""
+
+msgid "ImageDiffViewer|Swipe"
+msgstr ""
+
+msgid "ImageViewerDimensions|H"
+msgstr ""
+
+msgid "ImageViewerDimensions|W"
+msgstr ""
+
+msgid "Images with incorrect dimensions are not resized automatically, and may result in unexpected behavior."
+msgstr ""
+
+msgid "Impact detected"
+msgstr ""
+
+msgid "Impact mitigated"
+msgstr ""
+
+msgid "Impersonate"
+msgstr ""
+
+msgid "Impersonation Tokens"
+msgstr ""
+
+msgid "Impersonation has been disabled"
+msgstr ""
+
+msgid "Impersonation tokens"
+msgstr ""
+
+msgid "Import"
+msgstr ""
+
+msgid "Import %d compatible repository"
+msgid_plural "Import %d compatible repositories"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Import %d repository"
+msgid_plural "Import %d repositories"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Import CSV"
+msgstr ""
+
+msgid "Import an exported GitLab project"
+msgstr ""
+
+msgid "Import and export rate limits"
+msgstr ""
+
+msgid "Import and export settings"
+msgstr ""
+
+msgid "Import failed due to a GitHub error: %{original} (HTTP %{code})"
+msgstr ""
+
+msgid "Import from"
+msgstr ""
+
+msgid "Import from Jira"
+msgstr ""
+
+msgid "Import group"
+msgstr ""
+
+msgid "Import group from file"
+msgstr ""
+
+msgid "Import history"
+msgstr ""
+
+msgid "Import in progress"
+msgstr ""
+
+msgid "Import in progress. Refresh page to see newly added issues."
+msgstr ""
+
+msgid "Import issues"
+msgstr ""
+
+msgid "Import multiple repositories by uploading a manifest file."
+msgstr ""
+
+msgid "Import project"
+msgstr ""
+
+msgid "Import project from"
+msgstr ""
+
+msgid "Import projects from Bitbucket"
+msgstr ""
+
+msgid "Import projects from Bitbucket Server"
+msgstr ""
+
+msgid "Import projects from FogBugz"
+msgstr ""
+
+msgid "Import projects from GitLab.com"
+msgstr ""
+
+msgid "Import projects from Gitea"
+msgstr ""
+
+msgid "Import repositories from Bitbucket Server"
+msgstr ""
+
+msgid "Import repositories from GitHub"
+msgstr ""
+
+msgid "Import repository"
+msgstr ""
+
+msgid "Import requirements"
+msgstr ""
+
+msgid "Import started by: %{importInitiator}"
+msgstr ""
+
+msgid "Import timed out. Import took longer than %{import_jobs_expiration} seconds"
+msgstr ""
+
+msgid "Import with projects"
+msgstr ""
+
+msgid "Import without projects"
+msgstr ""
+
+msgid "ImportAProjectModal|Import from a project"
+msgstr ""
+
+msgid "ImportAProjectModal|Import members from another project"
+msgstr ""
+
+msgid "ImportAProjectModal|Import project members"
+msgstr ""
+
+msgid "ImportAProjectModal|Only project members (not group members) are imported, and they get the same permissions as the project you import from."
+msgstr ""
+
+msgid "ImportAProjectModal|Successfully imported"
+msgstr ""
+
+msgid "ImportAProjectModal|Unable to import project members"
+msgstr ""
+
+msgid "ImportAProjectModal|You're importing members to the %{strongStart}%{name}%{strongEnd} project."
+msgstr ""
+
+msgid "ImportButtons|Connect repositories from"
+msgstr ""
+
+msgid "ImportProjects|%{provider} rate limit exceeded. Try again later"
+msgstr ""
+
+msgid "ImportProjects|Advanced import settings"
+msgstr ""
+
+msgid "ImportProjects|All organizations"
+msgstr ""
+
+msgid "ImportProjects|Blocked import URL: %{message}"
+msgstr ""
+
+msgid "ImportProjects|Cancel import"
+msgstr ""
+
+msgid "ImportProjects|Cancelling project import failed"
+msgstr ""
+
+msgid "ImportProjects|Cancelling project import failed: %{reason}"
+msgstr ""
+
+msgid "ImportProjects|Collaborated"
+msgstr ""
+
+msgid "ImportProjects|Error importing repository %{project_safe_import_url} into %{project_full_path} - %{message}"
+msgstr ""
+
+msgid "ImportProjects|Import repositories"
+msgstr ""
+
+msgid "ImportProjects|Imported files will be kept. You can import this repository again later."
+msgstr ""
+
+msgid "ImportProjects|Importing the project failed"
+msgstr ""
+
+msgid "ImportProjects|Importing the project failed: %{reason}"
+msgstr ""
+
+msgid "ImportProjects|Organization"
+msgstr ""
+
+msgid "ImportProjects|Organizations"
+msgstr ""
+
+msgid "ImportProjects|Owned"
+msgstr ""
+
+msgid "ImportProjects|Re-import creates a new project. It does not sync with the existing project."
+msgstr ""
+
+msgid "ImportProjects|Repository above permitted size limit."
+msgstr ""
+
+msgid "ImportProjects|Requesting namespaces failed"
+msgstr ""
+
+msgid "ImportProjects|Requesting your %{provider} repositories failed"
+msgstr ""
+
+msgid "ImportProjects|Select the repositories you want to import"
+msgstr ""
+
+msgid "ImportProjects|The more information you select, the longer it will take to import"
+msgstr ""
+
+msgid "ImportProjects|The remote data could not be imported."
+msgstr ""
+
+msgid "ImportProjects|The repository could not be created."
+msgstr ""
+
+msgid "ImportProjects|Update of imported projects with realtime changes failed"
+msgstr ""
+
+msgid "Imported requirements"
+msgstr ""
+
+msgid "Importing %d repository"
+msgid_plural "Importing %d repositories"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Importing GitLab projects? Migrating GitLab projects when migrating groups by direct transfer is in Beta. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Importing..."
+msgstr ""
+
+msgid "Import|An error occurred while fetching import details."
+msgstr ""
+
+msgid "Import|Failures for %{id}"
+msgstr ""
+
+msgid "Import|GitHub import details"
+msgstr ""
+
+msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
+msgstr ""
+
+msgid "Import|Maximum import remote file size (MiB)"
+msgstr ""
+
+msgid "Import|Maximum remote file size for imports from external object storages. For example, AWS S3."
+msgstr ""
+
+msgid "Import|Maximum size of decompressed archive."
+msgstr ""
+
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "Import|No import details"
+msgstr ""
+
+msgid "Import|Partially completed"
+msgstr ""
+
+msgid "Import|See failures"
+msgstr ""
+
+msgid "Import|The repository could not be imported."
+msgstr ""
+
+msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
+msgstr ""
+
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
+msgid "Import|Timeout for decompressing archived files (seconds)"
+msgstr ""
+
+msgid "Import|Timeout for decompressing archived files."
+msgstr ""
+
+msgid "Improve customer support with Service Desk"
+msgstr ""
+
+msgid "Improve indexing performance by increasing Sidekiq load. Values greater than the current shard limit (%{limit}) are not allowed."
+msgstr ""
+
+msgid "Improve quality with test cases"
+msgstr ""
+
+msgid "In GitLab"
+msgstr ""
+
+msgid "In case of pull mirroring, your user will be the author of all events in the activity feed that are the result of an update, like new branches being created or new commits being pushed to existing branches."
+msgstr ""
+
+msgid "In each example, replace %{code_start}TOKEN%{code_end} with the trigger token you generated and replace %{code_start}REF_NAME%{code_end} with the branch or tag name."
+msgstr ""
+
+msgid "In progress"
+msgstr ""
+
+msgid "In progress, queued for %{queuedDuration} seconds"
+msgstr ""
+
+msgid "In the background, we're attempting to connect you again."
+msgstr ""
+
+msgid "In this group"
+msgstr ""
+
+msgid "In this page you will find information about the settings that are used in your current instance."
+msgstr ""
+
+msgid "In this project"
+msgstr ""
+
+msgid "In use"
+msgstr ""
+
+msgid "InProductMarketing|%{strong_start}GitLab Inc.%{strong_end} 268 Bush Street, #350, San Francisco, CA 94104, USA"
+msgstr ""
+
+msgid "InProductMarketing|%{upper_start}Start your 30-day free trial of%{upper_end} %{lower_start}GitLab Ultimate%{lower_end}"
+msgstr ""
+
+msgid "InProductMarketing|Accelerate your digital transform"
+msgstr ""
+
+msgid "InProductMarketing|Blog"
+msgstr ""
+
+msgid "InProductMarketing|Built-in security"
+msgstr ""
+
+msgid "InProductMarketing|Deliver software faster"
+msgstr ""
+
+msgid "InProductMarketing|Ensure compliance"
+msgstr ""
+
+msgid "InProductMarketing|Facebook"
+msgstr ""
+
+msgid "InProductMarketing|Free guest users"
+msgstr ""
+
+msgid "InProductMarketing|If you don't want to receive marketing emails directly from GitLab, %{marketing_preference_link}."
+msgstr ""
+
+msgid "InProductMarketing|If you no longer wish to receive marketing emails from us,"
+msgstr ""
+
+msgid "InProductMarketing|Improve collaboration and visibility"
+msgstr ""
+
+msgid "InProductMarketing|Invite unlimited colleagues"
+msgstr ""
+
+msgid "InProductMarketing|No credit card required"
+msgstr ""
+
+msgid "InProductMarketing|No credit card required."
+msgstr ""
+
+msgid "InProductMarketing|Start a Self-Managed trial"
+msgstr ""
+
+msgid "InProductMarketing|Start your 30-day free trial"
+msgstr ""
+
+msgid "InProductMarketing|Team members collaborating"
+msgstr ""
+
+msgid "InProductMarketing|To opt out of these onboarding emails, %{unsubscribe_link}."
+msgstr ""
+
+msgid "InProductMarketing|Twitter"
+msgstr ""
+
+msgid "InProductMarketing|Want to host GitLab on your servers?"
+msgstr ""
+
+msgid "InProductMarketing|YouTube"
+msgstr ""
+
+msgid "InProductMarketing|go to about.gitlab.com"
+msgstr ""
+
+msgid "InProductMarketing|unsubscribe"
+msgstr ""
+
+msgid "InProductMarketing|you may %{unsubscribe_link} at any time."
+msgstr ""
+
+msgid "Inactive"
+msgstr ""
+
+msgid "Incident"
+msgstr ""
+
+msgid "Incident Management Limits"
+msgstr ""
+
+msgid "Incident creation cancelled."
+msgstr ""
+
+msgid "Incident details"
+msgstr ""
+
+msgid "Incident template (optional)."
+msgstr ""
+
+msgid "Incident title"
+msgstr ""
+
+msgid "IncidentManagement|%{hours} hours, %{minutes} minutes remaining"
+msgstr ""
+
+msgid "IncidentManagement|%{minutes} minutes remaining"
+msgstr ""
+
+msgid "IncidentManagement|Achieved SLA"
+msgstr ""
+
+msgid "IncidentManagement|Acknowledged"
+msgstr ""
+
+msgid "IncidentManagement|All"
+msgstr ""
+
+msgid "IncidentManagement|All alerts promoted to incidents are automatically displayed within the list."
+msgstr ""
+
+msgid "IncidentManagement|All alerts promoted to incidents are automatically displayed within the list. You can also create a new incident using the button below."
+msgstr ""
+
+msgid "IncidentManagement|An error occurred while fetching the incident status. Please reload the page."
+msgstr ""
+
+msgid "IncidentManagement|An error occurred while updating the incident status. Please reload the page and try again."
+msgstr ""
+
+msgid "IncidentManagement|Assign paging status"
+msgstr ""
+
+msgid "IncidentManagement|Assignees"
+msgstr ""
+
+msgid "IncidentManagement|Closed"
+msgstr ""
+
+msgid "IncidentManagement|Create incident"
+msgstr ""
+
+msgid "IncidentManagement|Critical - S1"
+msgstr ""
+
+msgid "IncidentManagement|Date created"
+msgstr ""
+
+msgid "IncidentManagement|Display your incidents in a dedicated view"
+msgstr ""
+
+msgid "IncidentManagement|High - S2"
+msgstr ""
+
+msgid "IncidentManagement|Incident"
+msgstr ""
+
+msgid "IncidentManagement|Incidents"
+msgstr ""
+
+msgid "IncidentManagement|Low - S4"
+msgstr ""
+
+msgid "IncidentManagement|Medium - S3"
+msgstr ""
+
+msgid "IncidentManagement|Missed SLA"
+msgstr ""
+
+msgid "IncidentManagement|No incidents to display."
+msgstr ""
+
+msgid "IncidentManagement|None"
+msgstr ""
+
+msgid "IncidentManagement|Open"
+msgstr ""
+
+msgid "IncidentManagement|Page your team with escalation policies"
+msgstr ""
+
+msgid "IncidentManagement|Paged"
+msgstr ""
+
+msgid "IncidentManagement|Published"
+msgstr ""
+
+msgid "IncidentManagement|Published to status page"
+msgstr ""
+
+msgid "IncidentManagement|Resolved"
+msgstr ""
+
+msgid "IncidentManagement|Severity"
+msgstr ""
+
+msgid "IncidentManagement|Status"
+msgstr ""
+
+msgid "IncidentManagement|Stops paging"
+msgstr ""
+
+msgid "IncidentManagement|There are no closed incidents"
+msgstr ""
+
+msgid "IncidentManagement|There was an error displaying the incidents."
+msgstr ""
+
+msgid "IncidentManagement|Time to SLA"
+msgstr ""
+
+msgid "IncidentManagement|Triggered"
+msgstr ""
+
+msgid "IncidentManagement|Unassigned"
+msgstr ""
+
+msgid "IncidentManagement|Unknown"
+msgstr ""
+
+msgid "IncidentManagement|Unpublished"
+msgstr ""
+
+msgid "IncidentManagement|Use escalation policies to automatically page your team when incidents are created."
+msgstr ""
+
+msgid "IncidentSettings|Activate \"time to SLA\" countdown timer"
+msgstr ""
+
+msgid "IncidentSettings|Fine-tune incident settings and set up integrations with external tools to help better manage incidents."
+msgstr ""
+
+msgid "IncidentSettings|Grafana integration"
+msgstr ""
+
+msgid "IncidentSettings|Incident settings"
+msgstr ""
+
+msgid "IncidentSettings|Incidents"
+msgstr ""
+
+msgid "IncidentSettings|Introduce a countdown timer in incident issues to better track Service Level Agreements (SLAs). The timer starts automatically when the incident is created, and sets a time limit for resolving the incident. When activated, the time to SLA countdown appears on all new incidents."
+msgstr ""
+
+msgid "IncidentSettings|PagerDuty integration"
+msgstr ""
+
+msgid "IncidentSettings|Time limit"
+msgstr ""
+
+msgid "IncidentSettings|Time limit must be a multiple of 15 minutes."
+msgstr ""
+
+msgid "IncidentSettings|Time limit must be a valid number."
+msgstr ""
+
+msgid "IncidentSettings|Time limit must be greater than 0."
+msgstr ""
+
+msgid "IncidentSettings|When activated, this applies to all new incidents in the project."
+msgstr ""
+
+msgid "IncidentSettings|hours"
+msgstr ""
+
+msgid "IncidentSettings|minutes"
+msgstr ""
+
+msgid "Incidents"
+msgstr ""
+
+msgid "Incidents|Add image details"
+msgstr ""
+
+msgid "Incidents|Add text or a link to display with your image. If you don't add either, the file name displays instead."
+msgstr ""
+
+msgid "Incidents|Drop or %{linkStart}upload%{linkEnd} a metric screenshot to attach it to the incident"
+msgstr ""
+
+msgid "Incidents|Must start with http or https"
+msgstr ""
+
+msgid "Incident|Add new timeline event"
+msgstr ""
+
+msgid "Incident|Adding an event tag associates the timeline comment with specific incident metrics."
+msgstr ""
+
+msgid "Incident|Alert details"
+msgstr ""
+
+msgid "Incident|Are you sure you want to delete this event?"
+msgstr ""
+
+msgid "Incident|Are you sure you wish to delete this image?"
+msgstr ""
+
+msgid "Incident|Delete event"
+msgstr ""
+
+msgid "Incident|Delete image"
+msgstr ""
+
+msgid "Incident|Deleting %{filename}"
+msgstr ""
+
+msgid "Incident|Edit image text or link"
+msgstr ""
+
+msgid "Incident|Editing %{filename}"
+msgstr ""
+
+msgid "Incident|Error creating incident timeline event: %{error}"
+msgstr ""
+
+msgid "Incident|Error deleting incident timeline event: %{error}"
+msgstr ""
+
+msgid "Incident|Error updating incident timeline event: %{error}"
+msgstr ""
+
+msgid "Incident|Event tag"
+msgstr ""
+
+msgid "Incident|Incident"
+msgstr ""
+
+msgid "Incident|Metrics"
+msgstr ""
+
+msgid "Incident|No timeline items have been added yet."
+msgstr ""
+
+msgid "Incident|Save and add another event"
+msgstr ""
+
+msgid "Incident|Something went wrong while creating the incident timeline event."
+msgstr ""
+
+msgid "Incident|Something went wrong while deleting the incident timeline event."
+msgstr ""
+
+msgid "Incident|Something went wrong while fetching incident timeline events."
+msgstr ""
+
+msgid "Incident|Something went wrong while updating the incident timeline event."
+msgstr ""
+
+msgid "Incident|Summary"
+msgstr ""
+
+msgid "Incident|There was an issue loading alert data. Please try again."
+msgstr ""
+
+msgid "Incident|There was an issue loading incident data. Please try again."
+msgstr ""
+
+msgid "Incident|Timeline"
+msgstr ""
+
+msgid "Incident|Timeline text"
+msgstr ""
+
+msgid "Incident|Timeline text..."
+msgstr ""
+
+msgid "Include author name in notification email body"
+msgstr ""
+
+msgid "Include description in commit message"
+msgstr ""
+
+msgid "Include new features from all tiers."
+msgstr ""
+
+msgid "Include the name of the author of the issue, merge request or comment in the email body. By default, GitLab overrides the email sender's name. Some email servers don't support that option."
+msgstr ""
+
+msgid "Includes LFS objects. It can be overridden per group, or per project. Set to 0 for no limit."
+msgstr ""
+
+msgid "Includes an MVC structure to help you get started"
+msgstr ""
+
+msgid "Includes an MVC structure, Gemfile, Rakefile, along with many others, to help you get started"
+msgstr ""
+
+msgid "Includes an MVC structure, mvnw and pom.xml to help you get started"
+msgstr ""
+
+msgid "Incoming email"
+msgstr ""
+
+msgid "Incoming!"
+msgstr ""
+
+msgid "Incompatible options set!"
+msgstr ""
+
+msgid "Incompatible project"
+msgstr ""
+
+msgid "Incomplete"
+msgstr ""
+
+msgid "Increase"
+msgstr ""
+
+msgid "Increment suggestion line end"
+msgstr ""
+
+msgid "Increment suggestion line start"
+msgstr ""
+
+msgid "Incubation|%{featureName} is in incubating phase"
+msgstr ""
+
+msgid "Incubation|GitLab incubates features to explore new use cases. These features are updated regularly, and support is limited."
+msgstr ""
+
+msgid "Incubation|Give feedback on this feature"
+msgstr ""
+
+msgid "Incubation|Learn more about incubating features"
+msgstr ""
+
+msgid "Indent line"
+msgstr ""
+
+msgid "Index"
+msgstr ""
+
+msgid "Index all projects"
+msgstr ""
+
+msgid "Index deletion is canceled"
+msgstr ""
+
+msgid "Indexing status"
+msgstr ""
+
+msgid "Indicates whether this runner can pick jobs without tags"
+msgstr ""
+
+msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
+msgstr ""
+
+msgid "Information"
+msgstr ""
+
+msgid "Infrastructure"
+msgstr ""
+
+msgid "Infrastructure Registry"
+msgstr ""
+
+msgid "Infrastructure as Code (IaC) Scanning"
+msgstr ""
+
+msgid "InfrastructureRegistry|Copy Terraform Command"
+msgstr ""
+
+msgid "InfrastructureRegistry|Copy Terraform Setup Command"
+msgstr ""
+
+msgid "InfrastructureRegistry|Copy and paste into your Terraform configuration, insert the variables, and run Terraform init:"
+msgstr ""
+
+msgid "InfrastructureRegistry|For more information on the Terraform registry, %{linkStart}see our documentation%{linkEnd}."
+msgstr ""
+
+msgid "InfrastructureRegistry|Publish and share your modules. %{docLinkStart}More information%{docLinkEnd}"
+msgstr ""
+
+msgid "InfrastructureRegistry|Terraform"
+msgstr ""
+
+msgid "InfrastructureRegistry|Terraform Module Registry"
+msgstr ""
+
+msgid "InfrastructureRegistry|Terraform modules are the main way to package and reuse resource configurations with Terraform. Learn more about how to %{noPackagesLinkStart}create Terraform modules%{noPackagesLinkEnd} in GitLab."
+msgstr ""
+
+msgid "InfrastructureRegistry|To authorize access to the Terraform registry:"
+msgstr ""
+
+msgid "InfrastructureRegistry|You have no Terraform modules in your project"
+msgstr ""
+
+msgid "Inherited"
+msgstr ""
+
+msgid "Inherited:"
+msgstr ""
+
+msgid "Inheriting from 'parent' is not yet supported"
+msgstr ""
+
+msgid "Initial default branch name"
+msgstr ""
+
+msgid "Initial default branch protection"
+msgstr ""
+
+msgid "Inline"
+msgstr ""
+
+msgid "Inline math"
+msgstr ""
+
+msgid "InlineFindings|1 Code Quality finding detected"
+msgid_plural "InlineFindings|%d Code Quality findings detected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "InlineFindings|1 SAST finding detected"
+msgid_plural "InlineFindings|%d SAST findings detected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Input host keys manually"
+msgstr ""
+
+msgid "Input the remote repository URL"
+msgstr ""
+
+msgid "Insert"
+msgstr ""
+
+msgid "Insert a %{rows}×%{cols} table"
+msgstr ""
+
+msgid "Insert a quote"
+msgstr ""
+
+msgid "Insert code"
+msgstr ""
+
+msgid "Insert column after"
+msgstr ""
+
+msgid "Insert column before"
+msgstr ""
+
+msgid "Insert comment template"
+msgstr ""
+
+msgid "Insert link (%{modifierKey}K)"
+msgstr ""
+
+msgid "Insert or edit diagram"
+msgstr ""
+
+msgid "Insert row after"
+msgstr ""
+
+msgid "Insert row before"
+msgstr ""
+
+msgid "Insert suggestion"
+msgstr ""
+
+msgid "Insert table"
+msgstr ""
+
+msgid "Insights"
+msgstr ""
+
+msgid "Insights|Configure a custom report for insights into your group processes such as amount of issues, bugs, and merge requests per month. %{linkStart}How do I configure an insights report?%{linkEnd}"
+msgstr ""
+
+msgid "Insights|Some items are not visible beacuse the project was filtered out in the insights.yml file (see the projects.only config in the YAML file or the enabled project features (issues, merge requests) in the project settings)."
+msgstr ""
+
+msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
+msgstr ""
+
+msgid "Installation"
+msgstr ""
+
+msgid "Instance"
+msgid_plural "Instances"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Instance Configuration"
+msgstr ""
+
+msgid "Instance access request"
+msgstr ""
+
+msgid "Instance access request approved"
+msgstr ""
+
+msgid "Instance access request rejected"
+msgstr ""
+
+msgid "Instance audit events"
+msgstr ""
+
+msgid "Instance overview"
+msgstr ""
+
+msgid "Insufficient permissions"
+msgstr ""
+
+msgid "Insufficient permissions for dast_configuration keyword"
+msgstr ""
+
+msgid "Integration"
+msgstr ""
+
+msgid "Integration Settings"
+msgstr ""
+
+msgid "IntegrationEvents|A comment is added"
+msgstr ""
+
+msgid "IntegrationEvents|A confidential issue is created, closed, or reopened"
+msgstr ""
+
+msgid "IntegrationEvents|A deployment is started or finished"
+msgstr ""
+
+msgid "IntegrationEvents|A group is mentioned in a confidential context"
+msgstr ""
+
+msgid "IntegrationEvents|A group is mentioned in a public context"
+msgstr ""
+
+msgid "IntegrationEvents|A merge request is created, merged, closed, or reopened"
+msgstr ""
+
+msgid "IntegrationEvents|A new, unique alert is recorded"
+msgstr ""
+
+msgid "IntegrationEvents|A new, unique vulnerability is recorded (available only in GitLab Ultimate)"
+msgstr ""
+
+msgid "IntegrationEvents|A pipeline status changes"
+msgstr ""
+
+msgid "IntegrationEvents|A push is made to the repository"
+msgstr ""
+
+msgid "IntegrationEvents|A tag is pushed to the repository or removed"
+msgstr ""
+
+msgid "IntegrationEvents|A wiki page is created or updated"
+msgstr ""
+
+msgid "IntegrationEvents|An incident is created, closed, or reopened"
+msgstr ""
+
+msgid "IntegrationEvents|An internal note or comment on a confidential issue is added"
+msgstr ""
+
+msgid "IntegrationEvents|An issue is created, closed, or reopened"
+msgstr ""
+
+msgid "Integrations"
+msgstr ""
+
+msgid "Integrations|%{integrationTitle}: %{status}"
+msgstr ""
+
+msgid "Integrations|%{integration} settings saved and active."
+msgstr ""
+
+msgid "Integrations|%{integration} settings saved, but not active."
+msgstr ""
+
+msgid "Integrations|Active integrations"
+msgstr ""
+
+msgid "Integrations|Add an integration"
+msgstr ""
+
+msgid "Integrations|All details"
+msgstr ""
+
+msgid "Integrations|All projects inheriting these settings will also be reset."
+msgstr ""
+
+msgid "Integrations|An application called %{integration_name} is requesting access to your GitLab account. This application was created by GitLab Inc."
+msgstr ""
+
+msgid "Integrations|An error occurred while loading projects using custom settings."
+msgstr ""
+
+msgid "Integrations|An event will be triggered when one of the following items happen."
+msgstr ""
+
+msgid "Integrations|Authorize %{integration_name} (%{user}) to use your account?"
+msgstr ""
+
+msgid "Integrations|Branches for which notifications are to be sent"
+msgstr ""
+
+msgid "Integrations|Clear if using a self-signed certificate."
+msgstr ""
+
+msgid "Integrations|Comment detail:"
+msgstr ""
+
+msgid "Integrations|Comment settings:"
+msgstr ""
+
+msgid "Integrations|Configure the scope of notifications."
+msgstr ""
+
+msgid "Integrations|Connection details"
+msgstr ""
+
+msgid "Integrations|Connection failed. Check your integration settings."
+msgstr ""
+
+msgid "Integrations|Connection successful."
+msgstr ""
+
+msgid "Integrations|Create new issue in Jira"
+msgstr ""
+
+msgid "Integrations|Create new issue in ZenTao"
+msgstr ""
+
+msgid "Integrations|Default settings are inherited from the group level."
+msgstr ""
+
+msgid "Integrations|Default settings are inherited from the instance level."
+msgstr ""
+
+msgid "Integrations|Drag your file here or %{linkStart}click to upload%{linkEnd}."
+msgstr ""
+
+msgid "Integrations|Drop your file to start the upload."
+msgstr ""
+
+msgid "Integrations|Edit project alias"
+msgstr ""
+
+msgid "Integrations|Enable SSL verification"
+msgstr ""
+
+msgid "Integrations|Enable comments"
+msgstr ""
+
+msgid "Integrations|Enable slash commands and notifications for a Slack workspace."
+msgstr ""
+
+msgid "Integrations|Enter your alias"
+msgstr ""
+
+msgid "Integrations|Error: You are trying to upload something other than an allowed file."
+msgstr ""
+
+msgid "Integrations|GitLab administrators can set up integrations that all groups and projects inherit and use by default. These integrations apply to all groups and projects that don't already use custom settings. You can override custom settings for a group or project if the settings are necessary at that level. Learn more about %{integrations_link_start}instance-level integration management%{link_end}."
+msgstr ""
+
+msgid "Integrations|GitLab administrators can set up integrations that all projects in a group inherit and use by default. These integrations apply to all projects that don't already use custom settings. You can override custom settings for a project if the settings are necessary at that level. Learn more about %{integrations_link_start}group-level integration management%{link_end}."
+msgstr ""
+
+msgid "Integrations|GitLab for Slack app"
+msgstr ""
+
+msgid "Integrations|GitLab for Slack app must be reinstalled to enable notifications"
+msgstr ""
+
+msgid "Integrations|Group-level integration management"
+msgstr ""
+
+msgid "Integrations|Includes Standard, plus the entire commit message, commit hash, and issue IDs"
+msgstr ""
+
+msgid "Integrations|Includes commit title and branch."
+msgstr ""
+
+msgid "Integrations|Instance-level integration management"
+msgstr ""
+
+msgid "Integrations|Integration details"
+msgstr ""
+
+msgid "Integrations|Issues created in Jira are shown here once you have created the issues in project setup in Jira."
+msgstr ""
+
+msgid "Integrations|Keep your PHP dependencies updated on Packagist."
+msgstr ""
+
+msgid "Integrations|Mattermost slash commands"
+msgstr ""
+
+msgid "Integrations|Notification settings"
+msgstr ""
+
+msgid "Integrations|Perform common tasks with slash commands."
+msgstr ""
+
+msgid "Integrations|Projects using custom settings"
+msgstr ""
+
+msgid "Integrations|Projects using custom settings will not be affected."
+msgstr ""
+
+msgid "Integrations|Projects using custom settings will not be impacted unless the project owner chooses to use parent level defaults."
+msgstr ""
+
+msgid "Integrations|Reset integration?"
+msgstr ""
+
+msgid "Integrations|Resetting this integration will clear the settings and deactivate this integration."
+msgstr ""
+
+msgid "Integrations|Restrict to branch (optional)"
+msgstr ""
+
+msgid "Integrations|SSL verification"
+msgstr ""
+
+msgid "Integrations|Save settings?"
+msgstr ""
+
+msgid "Integrations|Saving will update the default settings for all projects that are not using custom settings."
+msgstr ""
+
+msgid "Integrations|Search Jira issues"
+msgstr ""
+
+msgid "Integrations|Search ZenTao issues"
+msgstr ""
+
+msgid "Integrations|Send notifications about project events to Unify Circuit."
+msgstr ""
+
+msgid "Integrations|Send notifications about project events to a Unify Circuit conversation. %{docs_link}"
+msgstr ""
+
+msgid "Integrations|Standard"
+msgstr ""
+
+msgid "Integrations|There are no projects using custom settings"
+msgstr ""
+
+msgid "Integrations|This integration, and inheriting projects were reset."
+msgstr ""
+
+msgid "Integrations|To keep this project going, create a new issue."
+msgstr ""
+
+msgid "Integrations|Trigger"
+msgstr ""
+
+msgid "Integrations|Unable to post to %{channel_list}, please add the GitLab Slack app to any private Slack channels"
+msgstr ""
+
+msgid "Integrations|Use custom settings"
+msgstr ""
+
+msgid "Integrations|Use default settings"
+msgstr ""
+
+msgid "Integrations|You can close this window."
+msgstr ""
+
+msgid "Integrations|You can use this alias in your Slack commands"
+msgstr ""
+
+msgid "Integrations|You haven't activated any integrations yet."
+msgstr ""
+
+msgid "Integrations|You've activated every integration 🎉"
+msgstr ""
+
+msgid "Integrations|ZenTao issues display here when you create issues in your project in ZenTao."
+msgstr ""
+
+msgid "Integrations|can't exceed %{recipients_limit}"
+msgstr ""
+
+msgid "Integration|Branches for which notifications are to be sent"
+msgstr ""
+
+msgid "IntelliJ IDEA (HTTPS)"
+msgstr ""
+
+msgid "IntelliJ IDEA (SSH)"
+msgstr ""
+
+msgid "Interactive mode"
+msgstr ""
+
+msgid "Interested parties can even contribute by pushing commits if they want to."
+msgstr ""
+
+msgid "Internal"
+msgstr ""
+
+msgid "Internal - The group and any internal projects can be viewed by any logged in user except external users."
+msgstr ""
+
+msgid "Internal - The project can be accessed by any logged in user except external users."
+msgstr ""
+
+msgid "Internal error occurred while delivering this webhook."
+msgstr ""
+
+msgid "Internal note"
+msgstr ""
+
+msgid "Internal users"
+msgstr ""
+
+msgid "Internal users cannot be deactivated"
+msgstr ""
+
+msgid "Interval"
+msgstr ""
+
+msgid "Introducing Your DevOps Reports"
+msgstr ""
+
+msgid "Invalid 'schemaVersion' '%{schema_version}'"
+msgstr ""
+
+msgid "Invalid Insights config file detected"
+msgstr ""
+
+msgid "Invalid OS"
+msgstr ""
+
+msgid "Invalid URL"
+msgstr ""
+
+msgid "Invalid URL: %{url}"
+msgstr ""
+
+msgid "Invalid context type. %{type} is expected."
+msgstr ""
+
+msgid "Invalid date"
+msgstr ""
+
+msgid "Invalid date format. Please use UTC format as YYYY-MM-DD"
+msgstr ""
+
+msgid "Invalid dates set"
+msgstr ""
+
+msgid "Invalid feature"
+msgstr ""
+
+msgid "Invalid field"
+msgstr ""
+
+msgid "Invalid file format with specified file type"
+msgstr ""
+
+msgid "Invalid file."
+msgstr ""
+
+msgid "Invalid format selected"
+msgstr ""
+
+msgid "Invalid input, please avoid emoji"
+msgstr ""
+
+msgid "Invalid login or password"
+msgstr ""
+
+msgid "Invalid period"
+msgstr ""
+
+msgid "Invalid pin code."
+msgstr ""
+
+msgid "Invalid policy type"
+msgstr ""
+
+msgid "Invalid repository bundle for snippet with id %{snippet_id}"
+msgstr ""
+
+msgid "Invalid repository path"
+msgstr ""
+
+msgid "Invalid server response"
+msgstr ""
+
+msgid "Invalid status"
+msgstr ""
+
+msgid "Invalid tags"
+msgstr ""
+
+msgid "Invalid two-factor code."
+msgstr ""
+
+msgid "Invalidated"
+msgstr ""
+
+msgid "Investigate vulnerability: %{title}"
+msgstr ""
+
+msgid "Invisible Captcha"
+msgstr ""
+
+msgid "Invisible Captcha helps prevent the creation of spam accounts. It adds a honeypot field and time-sensitive form submission to the account signup form."
+msgstr ""
+
+msgid "Invitation"
+msgstr ""
+
+msgid "Invitation declined"
+msgstr ""
+
+msgid "Invite \"%{email}\" by email"
+msgstr ""
+
+msgid "Invite Members"
+msgstr ""
+
+msgid "Invite a group"
+msgstr ""
+
+msgid "Invite members"
+msgstr ""
+
+msgid "InviteEmail|%{inviter} invited you to join the %{project_or_group_name} %{project_or_group} as a %{role}"
+msgstr ""
+
+msgid "InviteEmail|%{inviter} invited you to join the %{strong_start}%{project_or_group_name}%{strong_end}%{br_tag}%{project_or_group} as a %{role}"
+msgstr ""
+
+msgid "InviteEmail|%{project_or_group} details"
+msgstr ""
+
+msgid "InviteEmail|Groups assemble related projects together and grant members access to several projects at once."
+msgstr ""
+
+msgid "InviteEmail|Join now"
+msgstr ""
+
+msgid "InviteEmail|Join your team on GitLab! %{inviter} invited you to %{project_or_group_name}"
+msgstr ""
+
+msgid "InviteEmail|Join your team on GitLab! You are invited to %{project_or_group_name}"
+msgstr ""
+
+msgid "InviteEmail|Projects are used to host and collaborate on code, track issues, and continuously build, test, and deploy your app with built-in GitLab CI/CD."
+msgstr ""
+
+msgid "InviteEmail|What's it about?"
+msgstr ""
+
+msgid "InviteEmail|You are invited to join the %{strong_start}%{project_or_group_name}%{strong_end}%{br_tag}%{project_or_group} as a %{role}"
+msgstr ""
+
+msgid "InviteEmail|You have been invited to join the %{project_or_group_name} %{project_or_group} as a %{role}"
+msgstr ""
+
+msgid "InviteMembersBanner|Collaborate with your team"
+msgstr ""
+
+msgid "InviteMembersBanner|Invite your colleagues"
+msgstr ""
+
+msgid "InviteMembersBanner|We noticed that you haven't invited anyone to this group. Invite your colleagues so you can discuss issues, collaborate on merge requests, and share your knowledge."
+msgstr ""
+
+msgid "InviteMembersModal| To get more members, the owner of this top-level group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier."
+msgstr ""
+
+msgid "InviteMembersModal|%{linkStart}Read more%{linkEnd} about role permissions"
+msgstr ""
+
+msgid "InviteMembersModal|Access expiration date (optional)"
+msgstr ""
+
+msgid "InviteMembersModal|Add unlimited members with your trial"
+msgstr ""
+
+msgid "InviteMembersModal|Administrators can %{linkStart}add new users by email manually%{linkEnd}. After they've been added, you can invite them to this group with their username."
+msgstr ""
+
+msgid "InviteMembersModal|Cancel"
+msgstr ""
+
+msgid "InviteMembersModal|Close invite team members"
+msgstr ""
+
+msgid "InviteMembersModal|Congratulations on creating your project, you're almost there!"
+msgstr ""
+
+msgid "InviteMembersModal|During your trial, you can invite as many members to %{groupName} as you like. When the trial ends, you'll have a maximum of %{dashboardLimit} members on the Free tier. To get more members, %{linkStart}upgrade to a paid plan%{linkEnd}."
+msgstr ""
+
+msgid "InviteMembersModal|GitLab is better with colleagues!"
+msgstr ""
+
+msgid "InviteMembersModal|How about inviting a colleague or two to join you?"
+msgstr ""
+
+msgid "InviteMembersModal|Invite"
+msgstr ""
+
+msgid "InviteMembersModal|Invite a group"
+msgstr ""
+
+msgid "InviteMembersModal|Invite members"
+msgstr ""
+
+msgid "InviteMembersModal|Inviting a group %{linkStart}adds its members to your group%{linkEnd}, including members who join after the invite. This might put your group over the free %{count} user limit."
+msgstr ""
+
+msgid "InviteMembersModal|Inviting a group %{linkStart}adds its members to your project%{linkEnd}, including members who join after the invite. This might put your group over the free %{count} user limit."
+msgstr ""
+
+msgid "InviteMembersModal|Inviting users by email is disabled"
+msgstr ""
+
+msgid "InviteMembersModal|Manage members"
+msgstr ""
+
+msgid "InviteMembersModal|Members were successfully added"
+msgstr ""
+
+msgid "InviteMembersModal|Please add members to invite"
+msgstr ""
+
+msgid "InviteMembersModal|Review the invite errors and try again:"
+msgstr ""
+
+msgid "InviteMembersModal|Search for a group to invite"
+msgstr ""
+
+msgid "InviteMembersModal|Select a group to invite"
+msgstr ""
+
+msgid "InviteMembersModal|Select a role"
+msgstr ""
+
+msgid "InviteMembersModal|Select members"
+msgstr ""
+
+msgid "InviteMembersModal|Select members or type email addresses"
+msgstr ""
+
+msgid "InviteMembersModal|Show less"
+msgstr ""
+
+msgid "InviteMembersModal|Show more (%{count})"
+msgstr ""
+
+msgid "InviteMembersModal|Something went wrong"
+msgstr ""
+
+msgid "InviteMembersModal|The following %{errorMembersLength} out of %{totalMembersCount} members could not be added"
+msgstr ""
+
+msgid "InviteMembersModal|The following member couldn't be invited"
+msgid_plural "InviteMembersModal|The following %d members couldn't be invited"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "InviteMembersModal|To get more members an owner of the group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier."
+msgstr ""
+
+msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
+msgstr ""
+
+msgid "InviteMembersModal|Username or name"
+msgstr ""
+
+msgid "InviteMembersModal|Username, name or email address"
+msgstr ""
+
+msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
+msgstr ""
+
+msgid "InviteMembersModal|You're inviting a group to the %{strongStart}%{name}%{strongEnd} group."
+msgstr ""
+
+msgid "InviteMembersModal|You're inviting a group to the %{strongStart}%{name}%{strongEnd} project."
+msgstr ""
+
+msgid "InviteMembersModal|You're inviting members to the %{strongStart}%{name}%{strongEnd} group."
+msgstr ""
+
+msgid "InviteMembersModal|You're inviting members to the %{strongStart}%{name}%{strongEnd} project."
+msgstr ""
+
+msgid "InviteMembersModal|You've reached your %{count} %{members} limit for %{name}"
+msgstr ""
+
+msgid "InviteMembers|Invite a group"
+msgstr ""
+
+msgid "InviteMembers|Invite team members"
+msgstr ""
+
+msgid "InviteMember|Add members to this project and start collaborating with your team."
+msgstr ""
+
+msgid "InviteMember|Invite Members (optional)"
+msgstr ""
+
+msgid "InviteMember|Invite another member"
+msgstr ""
+
+msgid "InviteMember|Invite members"
+msgstr ""
+
+msgid "InviteMember|Invite your team"
+msgstr ""
+
+msgid "InviteMember|Invited users will be added with developer level permissions. %{linkStart}View the documentation%{linkEnd} to see how to change this later."
+msgstr ""
+
+msgid "InviteReminderEmail|%{inviter} is still waiting for you to join GitLab"
+msgstr ""
+
+msgid "InviteReminderEmail|%{inviter} is waiting for you to join GitLab"
+msgstr ""
+
+msgid "InviteReminderEmail|%{inviter} is waiting for you to join the %{strong_start}%{project_or_group_name}%{strong_end} %{project_or_group} as a %{role}."
+msgstr ""
+
+msgid "InviteReminderEmail|%{inviter}'s invitation to GitLab is pending"
+msgstr ""
+
+msgid "InviteReminderEmail|Accept invitation"
+msgstr ""
+
+msgid "InviteReminderEmail|Accept invitation: %{invite_url}"
+msgstr ""
+
+msgid "InviteReminderEmail|Decline invitation"
+msgstr ""
+
+msgid "InviteReminderEmail|Decline invitation: %{decline_url}"
+msgstr ""
+
+msgid "InviteReminderEmail|Hey there %{wave_emoji}"
+msgstr ""
+
+msgid "InviteReminderEmail|Hey there!"
+msgstr ""
+
+msgid "InviteReminderEmail|In case you missed it..."
+msgstr ""
+
+msgid "InviteReminderEmail|Invitation pending"
+msgstr ""
+
+msgid "InviteReminderEmail|It's been %{invitation_age} days since %{inviter} invited you to join the %{strong_start}%{project_or_group_name}%{strong_end} %{project_or_group} as a %{role}. What would you like to do?"
+msgstr ""
+
+msgid "InviteReminderEmail|This is a friendly reminder that %{inviter} invited you to join the %{strong_start}%{project_or_group_name}%{strong_end} %{project_or_group} as a %{role}."
+msgstr ""
+
+msgid "Invited"
+msgstr ""
+
+msgid "Invited group allowed email domains must contain a subset of the allowed email domains of the root ancestor group. Go to the group's 'Settings &gt; General' page and check 'Restrict membership by email domain'."
+msgstr ""
+
+msgid "IrkerService|Channels and users separated by whitespaces. %{recipients_docs_link}"
+msgstr ""
+
+msgid "IrkerService|Default IRC URI (optional)"
+msgstr ""
+
+msgid "IrkerService|How to enter channels or users?"
+msgstr ""
+
+msgid "IrkerService|Recipients"
+msgstr ""
+
+msgid "IrkerService|Send update messages to an irker server."
+msgstr ""
+
+msgid "IrkerService|Send update messages to an irker server. Before you can use this, you need to set up the irker daemon. %{docs_link}"
+msgstr ""
+
+msgid "IrkerService|Server host (optional)"
+msgstr ""
+
+msgid "IrkerService|Server port (optional)"
+msgstr ""
+
+msgid "IrkerService|URI to add before each recipient."
+msgstr ""
+
+msgid "IrkerService|irker (IRC gateway)"
+msgstr ""
+
+msgid "IrkerService|irker daemon hostname (defaults to localhost)."
+msgstr ""
+
+msgid "IrkerService|irker daemon port (defaults to 6659)."
+msgstr ""
+
+msgid "Is blocked by"
+msgstr ""
+
+msgid "Is using license seat:"
+msgstr ""
+
+msgid "Is using seat"
+msgstr ""
+
+msgid "IssuableEvents|assigned to"
+msgstr ""
+
+msgid "IssuableEvents|removed review request for"
+msgstr ""
+
+msgid "IssuableEvents|requested review from"
+msgstr ""
+
+msgid "IssuableEvents|resolved all threads"
+msgstr ""
+
+msgid "IssuableEvents|unassigned"
+msgstr ""
+
+msgid "IssuableStatus|Closed"
+msgstr ""
+
+msgid "IssuableStatus|Closed (%{link})"
+msgstr ""
+
+msgid "IssuableStatus|duplicated"
+msgstr ""
+
+msgid "IssuableStatus|moved"
+msgstr ""
+
+msgid "IssuableStatus|promoted"
+msgstr ""
+
+msgid "Issuable|epic"
+msgstr ""
+
+msgid "Issuable|escalation policy"
+msgstr ""
+
+msgid "Issuable|iteration"
+msgstr ""
+
+msgid "Issuable|milestone"
+msgstr ""
+
+msgid "Issue"
+msgstr ""
+
+msgid "Issue %{issue_reference} has already been added to epic %{epic_reference}."
+msgstr ""
+
+msgid "Issue Analytics"
+msgstr ""
+
+msgid "Issue Boards"
+msgstr ""
+
+msgid "Issue ID"
+msgstr ""
+
+msgid "Issue Type"
+msgstr ""
+
+msgid "Issue already promoted to epic."
+msgstr ""
+
+msgid "Issue analytics"
+msgstr ""
+
+msgid "Issue board"
+msgstr ""
+
+msgid "Issue boards"
+msgstr ""
+
+msgid "Issue cannot be found."
+msgstr ""
+
+msgid "Issue created from vulnerability %{vulnerability_link}"
+msgstr ""
+
+msgid "Issue creation requests"
+msgstr ""
+
+msgid "Issue details"
+msgstr ""
+
+msgid "Issue events"
+msgstr ""
+
+msgid "Issue first deployed to production"
+msgstr ""
+
+msgid "Issue has been promoted to incident"
+msgstr ""
+
+msgid "Issue label"
+msgstr ""
+
+msgid "Issue or merge request ID is required"
+msgstr ""
+
+msgid "Issue published on status page."
+msgstr ""
+
+msgid "Issue summary"
+msgstr ""
+
+msgid "Issue title"
+msgstr ""
+
+msgid "Issue type"
+msgstr ""
+
+msgid "Issue types"
+msgstr ""
+
+msgid "Issue update failed"
+msgstr ""
+
+msgid "Issue was closed by %{name} %{reason}"
+msgstr ""
+
+msgid "Issue weight"
+msgstr ""
+
+msgid "IssueAnalytics|Age"
+msgstr ""
+
+msgid "IssueAnalytics|Assignees"
+msgstr ""
+
+msgid "IssueAnalytics|Created by"
+msgstr ""
+
+msgid "IssueAnalytics|Due date"
+msgstr ""
+
+msgid "IssueAnalytics|Failed to load issues. Please try again."
+msgstr ""
+
+msgid "IssueAnalytics|Issue"
+msgstr ""
+
+msgid "IssueAnalytics|Iteration"
+msgstr ""
+
+msgid "IssueAnalytics|Milestone"
+msgstr ""
+
+msgid "IssueAnalytics|Status"
+msgstr ""
+
+msgid "IssueAnalytics|Weight"
+msgstr ""
+
+msgid "IssueBoards|Board"
+msgstr ""
+
+msgid "IssueBoards|Boards"
+msgstr ""
+
+msgid "IssueBoards|Create new board"
+msgstr ""
+
+msgid "IssueBoards|Delete board"
+msgstr ""
+
+msgid "IssueBoards|No matching boards found"
+msgstr ""
+
+msgid "IssueBoards|Select board"
+msgstr ""
+
+msgid "IssueBoards|Some of your boards are hidden, add a license to see them again."
+msgstr ""
+
+msgid "IssueBoards|Switch board"
+msgstr ""
+
+msgid "IssueList|created %{timeAgoString} by %{user}"
+msgstr ""
+
+msgid "IssueTracker|Custom issue tracker"
+msgstr ""
+
+msgid "IssueTracker|Issue URL"
+msgstr ""
+
+msgid "IssueTracker|New issue URL"
+msgstr ""
+
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
+
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
+
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
+
+msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
+msgstr ""
+
+msgid "IssueTracker|Use Bugzilla as this project's issue tracker. %{docs_link}"
+msgstr ""
+
+msgid "IssueTracker|Use ClickUp as this project's issue tracker. %{docs_link}"
+msgstr ""
+
+msgid "IssueTracker|Use Clickup as this project's issue tracker."
+msgstr ""
+
+msgid "IssueTracker|Use IBM Engineering Workflow Management as this project's issue tracker."
+msgstr ""
+
+msgid "IssueTracker|Use IBM Engineering Workflow Management as this project's issue tracker. %{docs_link}"
+msgstr ""
+
+msgid "IssueTracker|Use Redmine as the issue tracker. %{docs_link}"
+msgstr ""
+
+msgid "IssueTracker|Use Redmine as this project's issue tracker."
+msgstr ""
+
+msgid "IssueTracker|Use YouTrack as this project's issue tracker."
+msgstr ""
+
+msgid "IssueTracker|Use YouTrack as this project's issue tracker. %{docs_link}"
+msgstr ""
+
+msgid "IssueTracker|Use a custom issue tracker as this project's issue tracker."
+msgstr ""
+
+msgid "IssueTracker|Use a custom issue tracker that is not in the integration list. %{docs_link}"
+msgstr ""
+
+msgid "Issues"
+msgstr ""
+
+msgid "Issues Completed"
+msgstr ""
+
+msgid "Issues Rate Limits"
+msgstr ""
+
+msgid "Issues and merge requests"
+msgstr ""
+
+msgid "Issues are being rebalanced at the moment, so manual reordering is disabled."
+msgstr ""
+
+msgid "Issues can be bugs, tasks or ideas to be discussed. Also, issues are searchable and filterable."
+msgstr ""
+
+msgid "Issues closed"
+msgstr ""
+
+msgid "Issues exist in projects, so to create an issue, first create a project."
+msgstr ""
+
+msgid "Issues must match this scope to appear in this list."
+msgstr ""
+
+msgid "Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, and other project entities"
+msgstr ""
+
+msgid "Issues with label %{label}"
+msgstr ""
+
+msgid "Issues with no epic assigned"
+msgstr ""
+
+msgid "Issues, merge requests, pushes, and comments."
+msgstr ""
+
+msgid "IssuesAnalytics|Avg/Month:"
+msgstr ""
+
+msgid "IssuesAnalytics|Closed"
+msgstr ""
+
+msgid "IssuesAnalytics|Create issues for projects in your group to track and see metrics for them."
+msgstr ""
+
+msgid "IssuesAnalytics|Failed to load chart. Please try again."
+msgstr ""
+
+msgid "IssuesAnalytics|Get started with issue analytics"
+msgstr ""
+
+msgid "IssuesAnalytics|Issues Opened vs Closed"
+msgstr ""
+
+msgid "IssuesAnalytics|Issues created"
+msgstr ""
+
+msgid "IssuesAnalytics|Issues created per month"
+msgstr ""
+
+msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
+msgstr ""
+
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "IssuesAnalytics|Opened"
+msgstr ""
+
+msgid "IssuesAnalytics|Overview"
+msgstr ""
+
+msgid "IssuesAnalytics|Sorry, your filter produced no results"
+msgstr ""
+
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
+
+msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
+msgstr ""
+
+msgid "IssuesAnalytics|Total:"
+msgstr ""
+
+msgid "Issues|Move selected"
+msgstr ""
+
+msgid "Issues|Tasks and test cases can not be moved."
+msgstr ""
+
+msgid "Issues|Tasks can not be moved."
+msgstr ""
+
+msgid "Issues|Test cases can not be moved."
+msgstr ""
+
+msgid "Issues|There was an error while moving the issues."
+msgstr ""
+
+msgid "Issue|Title"
+msgstr ""
+
+msgid "It looks like you're attempting to activate your subscription. Use %{a_start}the Subscription page%{a_end} instead."
+msgstr ""
+
+msgid "It may be several days before you see feature usage data."
+msgstr ""
+
+msgid "It must have a header row and at least two columns: the first column is the issue title and the second column is the issue description. The separator is automatically detected."
+msgstr ""
+
+msgid "It seems like the Dependency Scanning job ran successfully, but no dependencies have been detected in your project."
+msgstr ""
+
+msgid "It seems that there is currently no available data for code coverage"
+msgstr ""
+
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
+msgid "It's you"
+msgstr ""
+
+msgid "Italic (%{modifierKey}I)"
+msgstr ""
+
+msgid "Italic text"
+msgstr ""
+
+msgid "Item with ID: %{id} cannot be added. You don't have permission to perform this action."
+msgstr ""
+
+msgid "Items are already linked"
+msgstr ""
+
+msgid "Iteration"
+msgstr ""
+
+msgid "Iteration cannot be created for cadence"
+msgstr ""
+
+msgid "Iteration changed to"
+msgstr ""
+
+msgid "Iteration lists not available with your current license"
+msgstr ""
+
+msgid "Iteration removed"
+msgstr ""
+
+msgid "Iteration updated"
+msgstr ""
+
+msgid "Iterations"
+msgstr ""
+
+msgid "Iterations cadence not found"
+msgstr ""
+
+msgid "Iterations cannot be manually added to cadences that use automatic scheduling"
+msgstr ""
+
+msgid "IterationsCadence|The automation start date must come after the active iteration %{iteration_dates}."
+msgstr ""
+
+msgid "IterationsCadence|The automation start date must come after the past iteration %{iteration_dates}."
+msgstr ""
+
+msgid "IterationsCadence|The automation start date would retroactively create a past iteration. %{start_date} is the earliest possible start date."
+msgstr ""
+
+msgid "Iterations|Add iteration"
+msgstr ""
+
+msgid "Iterations|All"
+msgstr ""
+
+msgid "Iterations|All scheduled iterations will remain scheduled even if you use a smaller number."
+msgstr ""
+
+msgid "Iterations|Automatic scheduling"
+msgstr ""
+
+msgid "Iterations|Automation start date"
+msgstr ""
+
+msgid "Iterations|Cadence configuration is invalid."
+msgstr ""
+
+msgid "Iterations|Cadence name"
+msgstr ""
+
+msgid "Iterations|Cancel"
+msgstr ""
+
+msgid "Iterations|Couldn't find iteration cadence"
+msgstr ""
+
+msgid "Iterations|Create cadence"
+msgstr ""
+
+msgid "Iterations|Create iteration"
+msgstr ""
+
+msgid "Iterations|Create iterations automatically on a regular schedule."
+msgstr ""
+
+msgid "Iterations|Delete cadence"
+msgstr ""
+
+msgid "Iterations|Delete iteration cadence?"
+msgstr ""
+
+msgid "Iterations|Delete iteration?"
+msgstr ""
+
+msgid "Iterations|Description"
+msgstr ""
+
+msgid "Iterations|Done"
+msgstr ""
+
+msgid "Iterations|Due date"
+msgstr ""
+
+msgid "Iterations|Duration"
+msgstr ""
+
+msgid "Iterations|Edit cadence"
+msgstr ""
+
+msgid "Iterations|Edit iteration"
+msgstr ""
+
+msgid "Iterations|Edit iteration cadence"
+msgstr ""
+
+msgid "Iterations|Enable automatic scheduling"
+msgstr ""
+
+msgid "Iterations|Enable roll over"
+msgstr ""
+
+msgid "Iterations|Error loading iteration cadences."
+msgstr ""
+
+msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
+msgstr ""
+
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
+msgid "Iterations|Iteration cadences"
+msgstr ""
+
+msgid "Iterations|Iterations are scheduled to start on %{weekday}s."
+msgstr ""
+
+msgid "Iterations|New iteration"
+msgstr ""
+
+msgid "Iterations|New iteration cadence"
+msgstr ""
+
+msgid "Iterations|No closed iterations."
+msgstr ""
+
+msgid "Iterations|No iteration cadences to show."
+msgstr ""
+
+msgid "Iterations|No iterations found"
+msgstr ""
+
+msgid "Iterations|No iterations in cadence."
+msgstr ""
+
+msgid "Iterations|No open iterations."
+msgstr ""
+
+msgid "Iterations|Number of upcoming iterations that should be scheduled at a time."
+msgstr ""
+
+msgid "Iterations|Open"
+msgstr ""
+
+msgid "Iterations|Roll over issues"
+msgstr ""
+
+msgid "Iterations|Save changes"
+msgstr ""
+
+msgid "Iterations|Select duration"
+msgstr ""
+
+msgid "Iterations|Select number"
+msgstr ""
+
+msgid "Iterations|Select start date"
+msgstr ""
+
+msgid "Iterations|Start date"
+msgstr ""
+
+msgid "Iterations|The date of the first iteration to schedule. This date determines the day of the week when each iteration starts."
+msgstr ""
+
+msgid "Iterations|The duration of each iteration (in weeks)."
+msgstr ""
+
+msgid "Iterations|The iteration has been deleted."
+msgstr ""
+
+msgid "Iterations|This will delete the cadence as well as all of the iterations within it."
+msgstr ""
+
+msgid "Iterations|This will remove the iteration from any issues that are assigned to it."
+msgstr ""
+
+msgid "Iterations|Title"
+msgstr ""
+
+msgid "Iterations|Unable to find iteration cadence."
+msgstr ""
+
+msgid "Iterations|Unable to find iteration."
+msgstr ""
+
+msgid "Iterations|Unable to save cadence. Please try again."
+msgstr ""
+
+msgid "Iterations|Upcoming iterations"
+msgstr ""
+
+msgid "Iteration|Dates cannot overlap with other existing Iterations within this iterations cadence"
+msgstr ""
+
+msgid "Iteration|cannot be more than 500 years in the future"
+msgstr ""
+
+msgid "Jan"
+msgstr ""
+
+msgid "January"
+msgstr ""
+
+msgid "Japanese language support using"
+msgstr ""
+
+msgid "Jira display name"
+msgstr ""
+
+msgid "Jira import is already running."
+msgstr ""
+
+msgid "Jira integration not configured."
+msgstr ""
+
+msgid "Jira issue matching"
+msgstr ""
+
+msgid "Jira project key is not configured."
+msgstr ""
+
+msgid "Jira project: %{importProject}"
+msgstr ""
+
+msgid "Jira service not configured."
+msgstr ""
+
+msgid "Jira user"
+msgstr ""
+
+msgid "Jira users have been imported from the configured Jira instance. They can be mapped by selecting a GitLab user from the dropdown in the \"GitLab username\" column. When the form appears, the dropdown defaults to the user conducting the import."
+msgstr ""
+
+msgid "Jira-GitLab user mapping template"
+msgstr ""
+
+msgid "JiraConnect|Are you a GitLab administrator?"
+msgstr ""
+
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
+msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
+msgstr ""
+
+msgid "JiraConnect|Change GitLab version"
+msgstr ""
+
+msgid "JiraConnect|Configure your Jira Connect Application ID."
+msgstr ""
+
+msgid "JiraConnect|Continue setup in GitLab"
+msgstr ""
+
+msgid "JiraConnect|Could not fetch user information from Jira. Check the permissions in Jira and try again."
+msgstr ""
+
+msgid "JiraConnect|Create branch for Jira issue %{jiraIssue}"
+msgstr ""
+
+msgid "JiraConnect|Enable public key storage"
+msgstr ""
+
+msgid "JiraConnect|Ensure your instance URL is correct and your instance is configured correctly. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "JiraConnect|Failed to create branch."
+msgstr ""
+
+msgid "JiraConnect|Failed to create branch. Please try again."
+msgstr ""
+
+msgid "JiraConnect|Failed to link group. Please try again."
+msgstr ""
+
+msgid "JiraConnect|Failed to load Jira Connect Application ID. Please try again."
+msgstr ""
+
+msgid "JiraConnect|Failed to load groups. Please try again."
+msgstr ""
+
+msgid "JiraConnect|Failed to load subscriptions."
+msgstr ""
+
+msgid "JiraConnect|Failed to sign in to GitLab."
+msgstr ""
+
+msgid "JiraConnect|Failed to unlink group. Please try again."
+msgstr ""
+
+msgid "JiraConnect|Failed to update the GitLab instance. See the %{linkStart}troubleshooting documentation%{linkEnd}."
+msgstr ""
+
+msgid "JiraConnect|For example: https://gitlab.example.com"
+msgstr ""
+
+msgid "JiraConnect|GitLab for Jira App"
+msgstr ""
+
+msgid "JiraConnect|GitLab for Jira Configuration"
+msgstr ""
+
+msgid "JiraConnect|GitLab instance URL"
+msgstr ""
+
+msgid "JiraConnect|Group successfully linked"
+msgstr ""
+
+msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
+msgstr ""
+
+msgid "JiraConnect|Jira Connect Application ID"
+msgstr ""
+
+msgid "JiraConnect|Jira Connect Proxy URL"
+msgstr ""
+
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
+msgid "JiraConnect|Link groups"
+msgstr ""
+
+msgid "JiraConnect|Linked groups"
+msgstr ""
+
+msgid "JiraConnect|New branch was successfully created."
+msgstr ""
+
+msgid "JiraConnect|No groups found."
+msgstr ""
+
+msgid "JiraConnect|No linked groups"
+msgstr ""
+
+msgid "JiraConnect|Not seeing your groups? Only groups you have access to appear here."
+msgstr ""
+
+msgid "JiraConnect|Not seeing your groups? Only groups you have at least the Maintainer role for appear here."
+msgstr ""
+
+msgid "JiraConnect|Prerequisites"
+msgstr ""
+
+msgid "JiraConnect|Set up OAuth authentication"
+msgstr ""
+
+msgid "JiraConnect|Set up your instance"
+msgstr ""
+
+msgid "JiraConnect|Setting up this integration is only possible if you're a GitLab administrator."
+msgstr ""
+
+msgid "JiraConnect|Sign in to %{url}"
+msgstr ""
+
+msgid "JiraConnect|Sign in to GitLab to get started."
+msgstr ""
+
+msgid "JiraConnect|Sign in to GitLab to link groups."
+msgstr ""
+
+msgid "JiraConnect|Sign in to link groups"
+msgstr ""
+
+msgid "JiraConnect|Tell us what you think!"
+msgstr ""
+
+msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
+msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
+msgstr ""
+
+msgid "JiraConnect|Welcome to GitLab for Jira"
+msgstr ""
+
+msgid "JiraConnect|What version of GitLab are you using?"
+msgstr ""
+
+msgid "JiraConnect|You can now close this window and return to Jira."
+msgstr ""
+
+msgid "JiraConnect|You don't have permission to create branches for this project. Select a different project or contact the project owner for access. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "JiraConnect|You must use a %{linkStart}supported browser%{linkEnd} to use the GitLab for Jira app."
+msgstr ""
+
+msgid "JiraConnect|You should now see GitLab.com activity inside your Jira Cloud issues. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "JiraConnect|Your browser is not supported"
+msgstr ""
+
+msgid "JiraRequest|A connection error occurred while connecting to Jira. Try your request again."
+msgstr ""
+
+msgid "JiraRequest|A timeout error occurred while connecting to Jira. Try your request again."
+msgstr ""
+
+msgid "JiraRequest|An SSL error occurred while connecting to Jira: %{message}. Try your request again."
+msgstr ""
+
+msgid "JiraRequest|An error occurred while requesting data from Jira. Check your %{docs_link_start}Jira integration configuration%{docs_link_end} and try again."
+msgstr ""
+
+msgid "JiraRequest|An error occurred while requesting data from Jira: %{messages}. Check your %{docs_link_start}Jira integration configuration%{docs_link_end} and try again."
+msgstr ""
+
+msgid "JiraRequest|The Jira API URL for connecting to Jira is not valid. Check your Jira integration API URL and try again."
+msgstr ""
+
+msgid "JiraRequest|The credentials for accessing Jira are not allowed to access the data. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
+msgstr ""
+
+msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
+msgstr ""
+
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
+msgid "JiraService| on branch %{branch_link}"
+msgstr ""
+
+msgid "JiraService|%{jiraDocsLinkStart}Enable the Jira integration%{jiraDocsLinkEnd} to view your Jira issues in GitLab."
+msgstr ""
+
+msgid "JiraService|%{jira_docs_link_start}Enable the Jira integration%{jira_docs_link_end} to view your Jira issues in GitLab."
+msgstr ""
+
+msgid "JiraService|%{user_link} mentioned this issue in %{entity_link} of %{project_link}%{branch}:{quote}%{entity_message}{quote}"
+msgstr ""
+
+msgid "JiraService|API token for Jira Cloud or password for Jira Data Center and Jira Server"
+msgstr ""
+
+msgid "JiraService|API token or password"
+msgstr ""
+
+msgid "JiraService|An error occurred while fetching issue list"
+msgstr ""
+
+msgid "JiraService|Authentication type"
+msgstr ""
+
+msgid "JiraService|Automatically transitions Jira issues to the \"Done\" category. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "JiraService|Base URL of the Jira instance"
+msgstr ""
+
+msgid "JiraService|Basic"
+msgstr ""
+
+msgid "JiraService|Create Jira issues of this type from vulnerabilities."
+msgstr ""
+
+msgid "JiraService|Displaying Jira issues while leaving GitLab issues also enabled might be confusing. Consider %{gitlab_issues_link_start}disabling GitLab issues%{link_end} if they won't otherwise be used."
+msgstr ""
+
+msgid "JiraService|Email for Jira Cloud or username for Jira Data Center and Jira Server"
+msgstr ""
+
+msgid "JiraService|Email or username"
+msgstr ""
+
+msgid "JiraService|Enable Jira issue creation from vulnerabilities"
+msgstr ""
+
+msgid "JiraService|Enable Jira issues"
+msgstr ""
+
+msgid "JiraService|Enable Jira transitions"
+msgstr ""
+
+msgid "JiraService|Events for %{noteable_model_name} are disabled."
+msgstr ""
+
+msgid "JiraService|Failed to load Jira issue. View the issue in Jira, or reload the page."
+msgstr ""
+
+msgid "JiraService|Fetch issue types for this Jira project"
+msgstr ""
+
+msgid "JiraService|For Jira Cloud, the authentication type must be %{basic}"
+msgstr ""
+
+msgid "JiraService|For example, 12, 24"
+msgstr ""
+
+msgid "JiraService|For example, AB"
+msgstr ""
+
+msgid "JiraService|IDs must be a list of numbers that can be split with , or ;"
+msgstr ""
+
+msgid "JiraService|If different from the Web URL"
+msgstr ""
+
+msgid "JiraService|Issues created from vulnerabilities in this project will be Jira issues, even if GitLab issues are enabled."
+msgstr ""
+
+msgid "JiraService|Jira API URL"
+msgstr ""
+
+msgid "JiraService|Jira comments are created when an issue is referenced in a commit."
+msgstr ""
+
+msgid "JiraService|Jira comments are created when an issue is referenced in a merge request."
+msgstr ""
+
+msgid "JiraService|Jira issue prefix"
+msgstr ""
+
+msgid "JiraService|Jira issue regex"
+msgstr ""
+
+msgid "JiraService|Jira issue type"
+msgstr ""
+
+msgid "JiraService|Jira issues"
+msgstr ""
+
+msgid "JiraService|Jira personal access token"
+msgstr ""
+
+msgid "JiraService|Jira personal access token (Jira Data Center and Jira Server only)"
+msgstr ""
+
+msgid "JiraService|Jira project key"
+msgstr ""
+
+msgid "JiraService|Leave blank to use your current configuration"
+msgstr ""
+
+msgid "JiraService|Move to Done"
+msgstr ""
+
+msgid "JiraService|New API token or password"
+msgstr ""
+
+msgid "JiraService|New Jira personal access token"
+msgstr ""
+
+msgid "JiraService|Open Jira"
+msgstr ""
+
+msgid "JiraService|Project key changed, refresh list"
+msgstr ""
+
+msgid "JiraService|Project key is required to generate issue types"
+msgstr ""
+
+msgid "JiraService|Recommended. Only available for Jira Data Center and Jira Server."
+msgstr ""
+
+msgid "JiraService|Select issue type"
+msgstr ""
+
+msgid "JiraService|Set a custom final state by using transition IDs. %{linkStart}Learn about transition IDs%{linkEnd}"
+msgstr ""
+
+msgid "JiraService|Sign in to GitLab to get started."
+msgstr ""
+
+msgid "JiraService|This feature requires a Premium plan."
+msgstr ""
+
+msgid "JiraService|Transition Jira issues to their final state:"
+msgstr ""
+
+msgid "JiraService|Use Jira as this project's issue tracker."
+msgstr ""
+
+msgid "JiraService|Use a prefix to match Jira issue keys."
+msgstr ""
+
+msgid "JiraService|Use custom transitions"
+msgstr ""
+
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
+msgstr ""
+
+msgid "JiraService|Using Jira for issue tracking?"
+msgstr ""
+
+msgid "JiraService|Warning: All GitLab users with access to this GitLab project can view all issues from the Jira project you select."
+msgstr ""
+
+msgid "JiraService|Web URL"
+msgstr ""
+
+msgid "JiraService|When a Jira issue is mentioned in a commit or merge request, a remote link and comment (if enabled) will be created."
+msgstr ""
+
+msgid "JiraService|Work on Jira issues without leaving GitLab. Add a Jira menu to access a read-only list of your Jira issues."
+msgstr ""
+
+msgid "JiraService|Work on Jira issues without leaving GitLab. Add a Jira menu to access a read-only list of your Jira issues. %{jira_issues_link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "JiraService|You must configure Jira before enabling this integration. %{jira_doc_link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Job"
+msgstr ""
+
+msgid "Job Failed #%{build_id}"
+msgstr ""
+
+msgid "Job artifacts"
+msgstr ""
+
+msgid "Job has been erased"
+msgstr ""
+
+msgid "Job has been successfully erased!"
+msgstr ""
+
+msgid "Job has wrong arguments format."
+msgstr ""
+
+msgid "Job is stuck. Check runners."
+msgstr ""
+
+msgid "Job logs and artifacts"
+msgstr ""
+
+msgid "Job was retried"
+msgstr ""
+
+msgid "JobAssistant|Add job"
+msgstr ""
+
+msgid "JobAssistant|Add path"
+msgstr ""
+
+msgid "JobAssistant|Add service"
+msgstr ""
+
+msgid "JobAssistant|Allow failure"
+msgstr ""
+
+msgid "JobAssistant|Artifacts and cache"
+msgstr ""
+
+msgid "JobAssistant|Artifacts exclude paths (optional)"
+msgstr ""
+
+msgid "JobAssistant|Artifacts paths (optional)"
+msgstr ""
+
+msgid "JobAssistant|Cache key (optional)"
+msgstr ""
+
+msgid "JobAssistant|Cache paths (optional)"
+msgstr ""
+
+msgid "JobAssistant|Error - Valid value is between 1 second and 1 week"
+msgstr ""
+
+msgid "JobAssistant|Image"
+msgstr ""
+
+msgid "JobAssistant|Image entrypoint (optional)"
+msgstr ""
+
+msgid "JobAssistant|Image name (optional)"
+msgstr ""
+
+msgid "JobAssistant|Include or exclude jobs in pipelines. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "JobAssistant|Input format"
+msgstr ""
+
+msgid "JobAssistant|Job Setup"
+msgstr ""
+
+msgid "JobAssistant|Job assistant"
+msgstr ""
+
+msgid "JobAssistant|Job name"
+msgstr ""
+
+msgid "JobAssistant|Please enter the parameters."
+msgstr ""
+
+msgid "JobAssistant|Please separate array type fields with new lines"
+msgstr ""
+
+msgid "JobAssistant|Rules"
+msgstr ""
+
+msgid "JobAssistant|Script"
+msgstr ""
+
+msgid "JobAssistant|Service entrypoint (optional)"
+msgstr ""
+
+msgid "JobAssistant|Service name (optional)"
+msgstr ""
+
+msgid "JobAssistant|Services"
+msgstr ""
+
+msgid "JobAssistant|Specify a Docker image that the job runs in. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "JobAssistant|Specify any additional Docker images that your scripts require to run successfully. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "JobAssistant|Specify the %{artifactsLinkStart}artifacts%{artifactsLinkEnd} and %{cacheLinkStart}cache%{cacheLinkEnd} of the job."
+msgstr ""
+
+msgid "JobAssistant|Stage (optional)"
+msgstr ""
+
+msgid "JobAssistant|Tags (optional)"
+msgstr ""
+
+msgid "JobAssistant|When"
+msgstr ""
+
+msgid "JobAssistant|always"
+msgstr ""
+
+msgid "JobAssistant|day(s)"
+msgstr ""
+
+msgid "JobAssistant|delayed"
+msgstr ""
+
+msgid "JobAssistant|manual"
+msgstr ""
+
+msgid "JobAssistant|minute(s)"
+msgstr ""
+
+msgid "JobAssistant|never"
+msgstr ""
+
+msgid "JobAssistant|on_failure"
+msgstr ""
+
+msgid "JobAssistant|on_success"
+msgstr ""
+
+msgid "JobAssistant|second(s)"
+msgstr ""
+
+msgid "JobAssistant|week(s)"
+msgstr ""
+
+msgid "Jobs"
+msgstr ""
+
+msgid "Jobs fail if they run longer than the timeout time. Input value is in seconds by default. Human readable input is also accepted, for example %{code_open}1 hour%{code_close}."
+msgstr ""
+
+msgid "Jobs older than the configured time are considered expired and are archived. Archived jobs can no longer be retried. Leave empty to never archive jobs automatically. The default unit is in days, but you can use other units, for example %{code_open}15 days%{code_close}, %{code_open}1 month%{code_close}, %{code_open}2 years%{code_close}. Minimum value is 1 day."
+msgstr ""
+
+msgid "Jobs|All"
+msgstr ""
+
+msgid "Jobs|Are you sure you want to proceed?"
+msgstr ""
+
+msgid "Jobs|Are you sure you want to retry this job?"
+msgstr ""
+
+msgid "Jobs|Create CI/CD configuration file"
+msgstr ""
+
+msgid "Jobs|Filter jobs"
+msgstr ""
+
+msgid "Jobs|Finished"
+msgstr ""
+
+msgid "Jobs|Job is stuck. Check runners."
+msgstr ""
+
+msgid "Jobs|Jobs are the building blocks of a GitLab CI/CD pipeline. Each job has a specific task, like testing code. To set up jobs in a CI/CD pipeline, add a CI/CD configuration file to your project."
+msgstr ""
+
+msgid "Jobs|No jobs to show"
+msgstr ""
+
+msgid "Jobs|Raw text search is not currently supported for the jobs filtered search feature. Please use the available search tokens."
+msgstr ""
+
+msgid "Jobs|Root cause analysis"
+msgstr ""
+
+msgid "Jobs|Stage"
+msgstr ""
+
+msgid "Jobs|There was a problem fetching the failed jobs."
+msgstr ""
+
+msgid "Jobs|Use jobs to automate your tasks"
+msgstr ""
+
+msgid "Jobs|You're about to retry a job that failed because it attempted to deploy code that is older than the latest deployment. Retrying this job could result in overwriting the environment with the older source code."
+msgstr ""
+
+msgid "Job|%{boldStart}Pipeline%{boldEnd} %{id} %{status}"
+msgstr ""
+
+msgid "Job|%{boldStart}Pipeline%{boldEnd} %{id} %{status} for %{mrId} with %{source}"
+msgstr ""
+
+msgid "Job|%{boldStart}Pipeline%{boldEnd} %{id} %{status} for %{ref}"
+msgstr ""
+
+msgid "Job|%{boldStart}Pipeline%{boldEnd} %{id} for %{mrId} with %{source} into %{target}"
+msgstr ""
+
+msgid "Job|%{searchLength} results found for %{searchTerm}"
+msgstr ""
+
+msgid "Job|Are you sure you want to erase this job log and artifacts?"
+msgstr ""
+
+msgid "Job|Browse"
+msgstr ""
+
+msgid "Job|Cancel"
+msgstr ""
+
+msgid "Job|Canceled"
+msgstr ""
+
+msgid "Job|Complete Raw"
+msgstr ""
+
+msgid "Job|Created"
+msgstr ""
+
+msgid "Job|Download"
+msgstr ""
+
+msgid "Job|Duration"
+msgstr ""
+
+msgid "Job|Erase job log and artifacts"
+msgstr ""
+
+msgid "Job|Exit full screen"
+msgstr ""
+
+msgid "Job|External links"
+msgstr ""
+
+msgid "Job|Failed"
+msgstr ""
+
+msgid "Job|Finished at"
+msgstr ""
+
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
+msgid "Job|Job artifacts"
+msgstr ""
+
+msgid "Job|Job artifacts are files that are configured to be uploaded when a job finishes execution. Artifacts could be compiled files, unit tests or scanning reports, or any other files generated by a job."
+msgstr ""
+
+msgid "Job|Job has been erased"
+msgstr ""
+
+msgid "Job|Job has been erased by %{userLink}"
+msgstr ""
+
+msgid "Job|Job log search"
+msgstr ""
+
+msgid "Job|Keep"
+msgstr ""
+
+msgid "Job|Manual"
+msgstr ""
+
+msgid "Job|No job log"
+msgstr ""
+
+msgid "Job|No search results found"
+msgstr ""
+
+msgid "Job|Passed"
+msgstr ""
+
+msgid "Job|Pending"
+msgstr ""
+
+msgid "Job|Preparing"
+msgstr ""
+
+msgid "Job|Queued"
+msgstr ""
+
+msgid "Job|Retry"
+msgstr ""
+
+msgid "Job|Run again"
+msgstr ""
+
+msgid "Job|Runner type"
+msgstr ""
+
+msgid "Job|Running"
+msgstr ""
+
+msgid "Job|Scheduled"
+msgstr ""
+
+msgid "Job|Scroll to bottom"
+msgstr ""
+
+msgid "Job|Scroll to next failure"
+msgstr ""
+
+msgid "Job|Scroll to top"
+msgstr ""
+
+msgid "Job|Search for substrings in your job log output. Currently search is only supported for the visible job log output, not for any log output that is truncated due to size."
+msgstr ""
+
+msgid "Job|Search job log"
+msgstr ""
+
+msgid "Job|Show complete raw"
+msgstr ""
+
+msgid "Job|Show full screen"
+msgstr ""
+
+msgid "Job|Skipped"
+msgstr ""
+
+msgid "Job|Status"
+msgstr ""
+
+msgid "Job|The artifacts were removed"
+msgstr ""
+
+msgid "Job|The artifacts will be removed"
+msgstr ""
+
+msgid "Job|There was a problem retrying the failed job."
+msgstr ""
+
+msgid "Job|These artifacts are the latest. They will not be deleted (even if expired) until newer artifacts are available."
+msgstr ""
+
+msgid "Job|This job failed because the necessary resources were not successfully created."
+msgstr ""
+
+msgid "Job|This job is stuck because of one of the following problems. There are no active runners online, no runners for the %{linkStart}protected branch%{linkEnd}, or no runners that match all of the job's tags:"
+msgstr ""
+
+msgid "Job|This job is stuck because the project doesn't have any runners online assigned to it."
+msgstr ""
+
+msgid "Job|This job is stuck because you don't have any active runners that can run this job."
+msgstr ""
+
+msgid "Job|Update CI/CD variables"
+msgstr ""
+
+msgid "Job|Waiting for resource"
+msgstr ""
+
+msgid "Job|We could not find this element"
+msgstr ""
+
+msgid "Job|You cannot rerun trigger jobs from this list."
+msgstr ""
+
+msgid "Job|You do not have permission to read this job's log."
+msgstr ""
+
+msgid "Job|You do not have permission to run this job again."
+msgstr ""
+
+msgid "Job|allowed to fail"
+msgstr ""
+
+msgid "Job|delayed"
+msgstr ""
+
+msgid "Job|manual"
+msgstr ""
+
+msgid "Job|trigger token"
+msgstr ""
+
+msgid "Join GitLab today! You and your team can plan, build, and ship secure code all in one application. Get started here for free!"
+msgstr ""
+
+msgid "Join Zoom meeting"
+msgstr ""
+
+msgid "Join a project"
+msgstr ""
+
+msgid "Join your team on GitLab and contribute to an existing project"
+msgstr ""
+
+msgid "Joined %{user_created_time}"
+msgstr ""
+
+msgid "Joined projects (%{projects_count})"
+msgstr ""
+
+msgid "Jul"
+msgstr ""
+
+msgid "July"
+msgstr ""
+
+msgid "Jun"
+msgstr ""
+
+msgid "June"
+msgstr ""
+
+msgid "Just me"
+msgstr ""
+
+msgid "KEY"
+msgstr ""
+
+msgid "Keep"
+msgstr ""
+
+msgid "Keep artifacts from most recent successful jobs"
+msgstr ""
+
+msgid "Keep divergent refs"
+msgstr ""
+
+msgid "Keep sidebar visible"
+msgstr ""
+
+msgid "Kerberos access denied"
+msgstr ""
+
+msgid "Key"
+msgstr ""
+
+msgid "Key (PEM)"
+msgstr ""
+
+msgid "Key details"
+msgstr ""
+
+msgid "Key:"
+msgstr ""
+
+msgid "Keyboard shortcuts"
+msgstr ""
+
+msgid "KeyboardKey|Alt"
+msgstr ""
+
+msgid "KeyboardKey|Ctrl"
+msgstr ""
+
+msgid "KeyboardKey|Ctrl+"
+msgstr ""
+
+msgid "KeyboardKey|Enter"
+msgstr ""
+
+msgid "KeyboardKey|Esc"
+msgstr ""
+
+msgid "KeyboardKey|Shift"
+msgstr ""
+
+msgid "KeyboardShortcuts|No shortcuts matched your search"
+msgstr ""
+
+msgid "KeyboardShortcuts|Search keyboard shortcuts"
+msgstr ""
+
+msgid "Keys"
+msgstr ""
+
+msgid "Ki"
+msgstr ""
+
+msgid "KiB"
+msgstr ""
+
+msgid "Kroki"
+msgstr ""
+
+msgid "Kubernetes"
+msgstr ""
+
+msgid "Kubernetes Cluster"
+msgstr ""
+
+msgid "Kubernetes Clusters"
+msgstr ""
+
+msgid "Kubernetes cluster"
+msgstr ""
+
+msgid "Kubernetes cluster integration and resources are being removed."
+msgstr ""
+
+msgid "Kubernetes cluster integration was successfully removed."
+msgstr ""
+
+msgid "Kubernetes cluster was successfully updated."
+msgstr ""
+
+msgid "Kubernetes clusters"
+msgstr ""
+
+msgid "Kubernetes deployment not found"
+msgstr ""
+
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
+msgid "LDAP"
+msgstr ""
+
+msgid "LDAP Synchronization"
+msgstr ""
+
+msgid "LDAP settings"
+msgstr ""
+
+msgid "LDAP sync in progress. This could take a few minutes. Refresh the page to see the changes."
+msgstr ""
+
+msgid "LDAP synchronizations"
+msgstr ""
+
+msgid "LDAP uid:"
+msgstr ""
+
+msgid "LDAP|Add synchronization"
+msgstr ""
+
+msgid "LDAP|LDAP access"
+msgstr ""
+
+msgid "LDAP|LDAP group cn"
+msgstr ""
+
+msgid "LDAP|LDAP server"
+msgstr ""
+
+msgid "LDAP|LDAP user filter"
+msgstr ""
+
+msgid "LDAP|Sync method"
+msgstr ""
+
+msgid "LFS"
+msgstr ""
+
+msgid "LFS objects"
+msgstr ""
+
+msgid "LFSStatus|Disabled"
+msgstr ""
+
+msgid "LFSStatus|Enabled"
+msgstr ""
+
+msgid "LICENSE"
+msgstr ""
+
+msgid "Label"
+msgstr ""
+
+msgid "Label actions dropdown"
+msgstr ""
+
+msgid "Label added: %{labels}"
+msgid_plural "Labels added: %{labels}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Label priority"
+msgstr ""
+
+msgid "Label was created"
+msgstr ""
+
+msgid "Label was successfully updated."
+msgstr ""
+
+msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more"
+msgstr ""
+
+msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more"
+msgstr ""
+
+msgid "LabelSelect|Labels"
+msgstr ""
+
+msgid "Labels"
+msgstr ""
+
+msgid "Labels can be applied to issues and merge requests to categorize them."
+msgstr ""
+
+msgid "Labels can be applied to issues and merge requests. Group labels are available for any project within the group."
+msgstr ""
+
+msgid "Labels can be applied to issues and merge requests. Star a label to make it a priority label."
+msgstr ""
+
+msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
+msgstr ""
+
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
+msgid "Labels with no issues in this iteration:"
+msgstr ""
+
+msgid "Labels|%{spanStart}Promote label%{spanEnd} %{labelTitle} %{spanStart}to Group Label?%{spanEnd}"
+msgstr ""
+
+msgid "Labels|Promote Label"
+msgstr ""
+
+msgid "Labels|Promoting %{labelTitle} will make it available for all projects inside %{groupName}. Existing project labels with the same title will be merged. If a group label with the same title exists, it will also be merged. This action cannot be reversed."
+msgstr ""
+
+msgid "Label|Assignee"
+msgstr ""
+
+msgid "Language"
+msgstr ""
+
+msgid "Language type"
+msgstr ""
+
+msgid "Large File Storage"
+msgstr ""
+
+msgid "Last %d day"
+msgid_plural "Last %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Last %{days} days"
+msgstr ""
+
+msgid "Last 2 weeks"
+msgstr ""
+
+msgid "Last 24 hours"
+msgstr ""
+
+msgid "Last Accessed On"
+msgstr ""
+
+msgid "Last GitLab activity"
+msgstr ""
+
+msgid "Last Name"
+msgstr ""
+
+msgid "Last Seen"
+msgstr ""
+
+msgid "Last Used"
+msgstr ""
+
+msgid "Last accessed on"
+msgstr ""
+
+msgid "Last activity"
+msgstr ""
+
+msgid "Last attempted number:"
+msgstr ""
+
+msgid "Last commit"
+msgstr ""
+
+msgid "Last contact"
+msgstr ""
+
+msgid "Last edited %{date}"
+msgstr ""
+
+msgid "Last edited by %{link_start}%{avatar} %{name}%{link_end}"
+msgstr ""
+
+msgid "Last event"
+msgstr ""
+
+msgid "Last login"
+msgstr ""
+
+msgid "Last modified"
+msgstr ""
+
+msgid "Last month"
+msgstr ""
+
+msgid "Last name"
+msgstr ""
+
+msgid "Last reply by"
+msgstr ""
+
+msgid "Last repository check (%{last_check_timestamp}) failed. See the 'repocheck.log' file for error messages."
+msgstr ""
+
+msgid "Last seen"
+msgstr ""
+
+msgid "Last sign-in"
+msgstr ""
+
+msgid "Last sign-in IP:"
+msgstr ""
+
+msgid "Last sign-in at:"
+msgstr ""
+
+msgid "Last successful update"
+msgstr ""
+
+msgid "Last successful update %{time}."
+msgstr ""
+
+msgid "Last update"
+msgstr ""
+
+msgid "Last update attempt"
+msgstr ""
+
+msgid "Last updated"
+msgstr ""
+
+msgid "Last updated %{time} ago"
+msgstr ""
+
+msgid "Last used"
+msgstr ""
+
+msgid "Last used %{last_used_at} ago"
+msgstr ""
+
+msgid "Last week"
+msgstr ""
+
+msgid "Last year"
+msgstr ""
+
+msgid "LastPushEvent|You pushed to"
+msgstr ""
+
+msgid "LastPushEvent|at"
+msgstr ""
+
+msgid "Latest AI-generated summary"
+msgstr ""
+
+msgid "Latest changes"
+msgstr ""
+
+msgid "Latest pipeline for the most recent commit on this branch"
+msgstr ""
+
+msgid "Launch a ready-to-code development environment for your project."
+msgstr ""
+
+msgid "Layout|Fixed"
+msgstr ""
+
+msgid "Layout|Fluid"
+msgstr ""
+
+msgid "Lead Time"
+msgstr ""
+
+msgid "Lead Time for Changes"
+msgstr ""
+
+msgid "Lead time"
+msgstr ""
+
+msgid "Learn GitLab"
+msgstr ""
+
+msgid "Learn More"
+msgstr ""
+
+msgid "Learn More."
+msgstr ""
+
+msgid "Learn about signing commits"
+msgstr ""
+
+msgid "Learn about signing commits with SSH keys."
+msgstr ""
+
+msgid "Learn how to %{link_start}contribute to the built-in templates%{link_end}"
+msgstr ""
+
+msgid "Learn how to %{no_packages_link_start}publish and share your packages%{no_packages_link_end} with GitLab."
+msgstr ""
+
+msgid "Learn more"
+msgstr ""
+
+msgid "Learn more about %{name}"
+msgstr ""
+
+msgid "Learn more about Auto DevOps"
+msgstr ""
+
+msgid "Learn more about GitLab"
+msgstr ""
+
+msgid "Learn more about Needs relationships"
+msgstr ""
+
+msgid "Learn more about Service Desk"
+msgstr ""
+
+msgid "Learn more about Web Terminal"
+msgstr ""
+
+msgid "Learn more about X.509 signed commits"
+msgstr ""
+
+msgid "Learn more about adding certificates to your project by following the %{docs_link_start}documentation on GitLab Pages%{docs_link_end}."
+msgstr ""
+
+msgid "Learn more about custom project templates"
+msgstr ""
+
+msgid "Learn more about deploying to a cluster"
+msgstr ""
+
+msgid "Learn more about group-level project templates"
+msgstr ""
+
+msgid "Learn more about groups."
+msgstr ""
+
+msgid "Learn more about issues."
+msgstr ""
+
+msgid "Learn more about linking epics"
+msgstr ""
+
+msgid "Learn more about linking issues"
+msgstr ""
+
+msgid "Learn more about linking issues and incidents"
+msgstr ""
+
+msgid "Learn more about max seats used"
+msgstr ""
+
+msgid "Learn more about seats owed"
+msgstr ""
+
+msgid "Learn more about shards and replicas in the %{configuration_link_start}Advanced Search configuration%{configuration_link_end} documentation. Changes don't take place until you %{recreated_link_start}recreate%{recreated_link_end} the index."
+msgstr ""
+
+msgid "Learn more."
+msgstr ""
+
+msgid "Learn more: %{url}"
+msgstr ""
+
+msgid "LearnGitLab|%d task to go"
+msgid_plural "LearnGitLab|%d tasks to go"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "LearnGitLab|%{percentage}%{percentSymbol} completed"
+msgstr ""
+
+msgid "LearnGitLab|1. Add code to your project"
+msgstr ""
+
+msgid "LearnGitLab|2. Build"
+msgstr ""
+
+msgid "LearnGitLab|Add code"
+msgstr ""
+
+msgid "LearnGitLab|Add code owners"
+msgstr ""
+
+msgid "LearnGitLab|Analyze your application for vulnerabilities with DAST"
+msgstr ""
+
+msgid "LearnGitLab|Complete these tasks first so you can enjoy GitLab's features to their fullest:"
+msgstr ""
+
+msgid "LearnGitLab|Create a repository"
+msgstr ""
+
+msgid "LearnGitLab|Create a workflow for your new workspace, and learn how GitLab features work together:"
+msgstr ""
+
+msgid "LearnGitLab|Create an issue"
+msgstr ""
+
+msgid "LearnGitLab|Create or import your first repository into your new project."
+msgstr ""
+
+msgid "LearnGitLab|Create/import issues (tickets) to collaborate on ideas and plan work."
+msgstr ""
+
+msgid "LearnGitLab|Deploy"
+msgstr ""
+
+msgid "LearnGitLab|Enable require merge approvals"
+msgstr ""
+
+msgid "LearnGitLab|GitLab works best as a team. Invite your colleague to enjoy all features."
+msgstr ""
+
+msgid "LearnGitLab|Invite your colleagues"
+msgstr ""
+
+msgid "LearnGitLab|Learn GitLab"
+msgstr ""
+
+msgid "LearnGitLab|Plan and execute"
+msgstr ""
+
+msgid "LearnGitLab|Prevent unexpected changes to important assets by assigning ownership of files and paths."
+msgstr ""
+
+msgid "LearnGitLab|Ready to get started with GitLab? Follow these steps to set up your workspace, plan and commit changes, and deploy your project."
+msgstr ""
+
+msgid "LearnGitLab|Review and edit proposed changes to source code."
+msgstr ""
+
+msgid "LearnGitLab|Route code reviews to the right reviewers, every time."
+msgstr ""
+
+msgid "LearnGitLab|Save time by automating your integration and deployment tasks."
+msgstr ""
+
+msgid "LearnGitLab|Scan dependencies for licenses"
+msgstr ""
+
+msgid "LearnGitLab|Scan dependencies for vulnerabilities"
+msgstr ""
+
+msgid "LearnGitLab|Set up CI/CD"
+msgstr ""
+
+msgid "LearnGitLab|Set up your first project's CI/CD"
+msgstr ""
+
+msgid "LearnGitLab|Set up your workspace"
+msgstr ""
+
+msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
+msgstr ""
+
+msgid "LearnGitLab|Start with the WebIDE"
+msgstr ""
+
+msgid "LearnGitLab|Submit a merge request (MR)"
+msgstr ""
+
+msgid "LearnGitLab|Try GitLab Ultimate for free"
+msgstr ""
+
+msgid "LearnGitLab|Try all GitLab features for 30 days, no credit card required."
+msgstr ""
+
+msgid "LearnGitLab|Use the built-in editor to create or upload files."
+msgstr ""
+
+msgid "LearnGitLab|Use your new GitLab workflow to deploy your application, monitor its health, and keep it secure:"
+msgstr ""
+
+msgid "LearnGitLab|You completed all tasks!"
+msgstr ""
+
+msgid "LearnGitLab|Your team is growing! You've successfully invited new team members to the %{projectName} project."
+msgstr ""
+
+msgid "LearnGitlab|- Included in trial"
+msgstr ""
+
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
+msgid "LearnGitlab|Contact your administrator to enable this action."
+msgstr ""
+
+msgid "LearnGitlab|Contact your administrator to start a free Ultimate trial."
+msgstr ""
+
+msgid "LearnGitlab|Ok, let's go"
+msgstr ""
+
+msgid "LearnGitlab|View administrator list"
+msgstr ""
+
+msgid "Leave"
+msgstr ""
+
+msgid "Leave edit mode? All unsaved changes will be lost."
+msgstr ""
+
+msgid "Leave feedback"
+msgstr ""
+
+msgid "Leave feedback."
+msgstr ""
+
+msgid "Leave group"
+msgstr ""
+
+msgid "Leave project"
+msgstr ""
+
+msgid "Leave zen mode"
+msgstr ""
+
+msgid "Legacy Prometheus integrations cannot currently be removed"
+msgstr ""
+
+msgid "Legacy Web IDE"
+msgstr ""
+
+msgid "Legacy burndown chart"
+msgstr ""
+
+msgid "Legacy license"
+msgstr ""
+
+msgid "Less Details"
+msgstr ""
+
+msgid "Less restrictive visibility"
+msgstr ""
+
+msgid "Let's Encrypt does not accept emails on example.com"
+msgstr ""
+
+msgid "Let's Encrypt is a free, automated, and open certificate authority (CA) that gives digital certificates in order to enable HTTPS (SSL/TLS) for websites. Learn more about Let's Encrypt configuration by following the %{docs_link_start}documentation on GitLab Pages%{docs_link_end}."
+msgstr ""
+
+msgid "License"
+msgstr ""
+
+msgid "License Compliance"
+msgstr ""
+
+msgid "License Compliance| Used by %{dependencies}"
+msgstr ""
+
+msgid "License compliance"
+msgstr ""
+
+msgid "License key"
+msgstr ""
+
+msgid "License overview"
+msgstr ""
+
+msgid "LicenseCompliance|%{docLinkStart}License Approvals%{docLinkEnd} are active"
+msgstr ""
+
+msgid "LicenseCompliance|%{docLinkStart}License Approvals%{docLinkEnd} are inactive"
+msgstr ""
+
+msgid "LicenseCompliance|Acceptable for use in this project"
+msgstr ""
+
+msgid "LicenseCompliance|Acceptable license to be used in the project"
+msgstr ""
+
+msgid "LicenseCompliance|Add license and related policy"
+msgstr ""
+
+msgid "LicenseCompliance|Add license policy"
+msgstr ""
+
+msgid "LicenseCompliance|Allow"
+msgstr ""
+
+msgid "LicenseCompliance|Allowed"
+msgstr ""
+
+msgid "LicenseCompliance|Denied"
+msgstr ""
+
+msgid "LicenseCompliance|Deny"
+msgstr ""
+
+msgid "LicenseCompliance|Disallow merge request if detected and will instruct developer to remove"
+msgstr ""
+
+msgid "LicenseCompliance|Learn more about %{linkStart}License Approvals%{linkEnd}"
+msgstr ""
+
+msgid "LicenseCompliance|License Compliance detected %d license and policy violation for the source branch only"
+msgid_plural "LicenseCompliance|License Compliance detected %d licenses and policy violations for the source branch only"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "LicenseCompliance|License Compliance detected %d license and policy violation for the source branch only; approval required"
+msgid_plural "LicenseCompliance|License Compliance detected %d licenses and policy violations for the source branch only; approval required"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "LicenseCompliance|License Compliance detected %d license for the source branch only"
+msgid_plural "LicenseCompliance|License Compliance detected %d licenses for the source branch only"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "LicenseCompliance|License Compliance detected %d new license"
+msgid_plural "LicenseCompliance|License Compliance detected %d new licenses"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "LicenseCompliance|License Compliance detected %d new license and policy violation"
+msgid_plural "LicenseCompliance|License Compliance detected %d new licenses and policy violations"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "LicenseCompliance|License Compliance detected %d new license and policy violation; approval required"
+msgid_plural "LicenseCompliance|License Compliance detected %d new licenses and policy violations; approval required"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "LicenseCompliance|License Compliance detected no licenses for the source branch only"
+msgstr ""
+
+msgid "LicenseCompliance|License Compliance detected no new licenses"
+msgstr ""
+
+msgid "LicenseCompliance|License name"
+msgstr ""
+
+msgid "LicenseCompliance|No policy matches this license"
+msgstr ""
+
+msgid "LicenseCompliance|Out-of-compliance with the project's policies and should be removed"
+msgstr ""
+
+msgid "LicenseCompliance|Remove license"
+msgstr ""
+
+msgid "LicenseCompliance|Remove license?"
+msgstr ""
+
+msgid "LicenseCompliance|There are currently no policies in this project."
+msgstr ""
+
+msgid "LicenseCompliance|There are currently no policies that match in this project."
+msgstr ""
+
+msgid "LicenseCompliance|This license already exists in this project."
+msgstr ""
+
+msgid "LicenseCompliance|Uncategorized"
+msgstr ""
+
+msgid "LicenseCompliance|Update approvals"
+msgstr ""
+
+msgid "LicenseCompliance|You are about to remove the license, %{name}, from this project."
+msgstr ""
+
+msgid "LicenseManagement|Allowed"
+msgstr ""
+
+msgid "LicenseManagement|Denied"
+msgstr ""
+
+msgid "LicenseManagement|Uncategorized"
+msgstr ""
+
+msgid "Licensed Enterprise Edition features can be used if the project namespace's plan includes the feature, or if the project is public."
+msgstr ""
+
+msgid "Licensed Features"
+msgstr ""
+
+msgid "Licensed to:"
+msgstr ""
+
+msgid "Licenses"
+msgstr ""
+
+msgid "Licenses|%{remainingComponentsCount} more"
+msgstr ""
+
+msgid "Licenses|Acceptable license to be used in the project"
+msgstr ""
+
+msgid "Licenses|Component"
+msgstr ""
+
+msgid "Licenses|Components"
+msgstr ""
+
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
+msgstr ""
+
+msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
+msgstr ""
+
+msgid "Licenses|Drop your license file to start the upload."
+msgstr ""
+
+msgid "Licenses|Error fetching the license list. Please check your network connection and try again."
+msgstr ""
+
+msgid "Licenses|Error: You are trying to upload something other than a file"
+msgstr ""
+
+msgid "Licenses|License Compliance"
+msgstr ""
+
+msgid "Licenses|Name"
+msgstr ""
+
+msgid "Licenses|Policy"
+msgstr ""
+
+msgid "Licenses|Policy violation: denied"
+msgstr ""
+
+msgid "Licenses|The file could not be uploaded."
+msgstr ""
+
+msgid "Licenses|The license list details information about the licenses used within your project."
+msgstr ""
+
+msgid "Licenses|Unacceptable license, if detected it will disallow a merge request until it's removed"
+msgstr ""
+
+msgid "Licenses|View license details for your project"
+msgstr ""
+
+msgid "Limit display of time tracking units to hours."
+msgstr ""
+
+msgid "Limit sign in from multiple IP addresses"
+msgstr ""
+
+msgid "Limit the number of inbound incident management alerts that can be sent to a project."
+msgstr ""
+
+msgid "Limit the number of issues and epics per minute a user can create through web and API requests."
+msgstr ""
+
+msgid "Limit the number of pipeline creation requests per minute. This limit includes pipelines created through the UI, the API, and by background processing."
+msgstr ""
+
+msgid "Limit the size of Sidekiq jobs stored in Redis."
+msgstr ""
+
+msgid "Limitation on this view"
+msgstr ""
+
+msgid "Limiting mode"
+msgstr ""
+
+msgid "Line"
+msgid_plural "Lines"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Line changes"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Link %{issuableType}s together to show that they're related or that one is blocking others."
+msgstr ""
+
+msgid "Link %{issuableType}s together to show that they're related."
+msgstr ""
+
+msgid "Link (optional)"
+msgstr ""
+
+msgid "Link Sentry to GitLab to discover and view the errors your application generates."
+msgstr ""
+
+msgid "Link an external wiki from the project's sidebar. %{docs_link}"
+msgstr ""
+
+msgid "Link copied to clipboard."
+msgstr ""
+
+msgid "Link does not exist"
+msgstr ""
+
+msgid "Link text"
+msgstr ""
+
+msgid "Link title"
+msgstr ""
+
+msgid "Link title is required"
+msgstr ""
+
+msgid "Link to go to GitLab pipeline documentation"
+msgstr ""
+
+msgid "Link to your Grafana instance."
+msgstr ""
+
+msgid "Linked epics"
+msgstr ""
+
+msgid "Linked incidents or issues"
+msgstr ""
+
+msgid "Linked items"
+msgstr ""
+
+msgid "LinkedIn"
+msgstr ""
+
+msgid "LinkedIn:"
+msgstr ""
+
+msgid "LinkedPipelines|%{counterLabel} more downstream pipelines"
+msgstr ""
+
+msgid "LinkedResources|Add"
+msgstr ""
+
+msgid "LinkedResources|Add a resource link"
+msgstr ""
+
+msgid "LinkedResources|Cancel"
+msgstr ""
+
+msgid "LinkedResources|Error creating resource link for the incident: %{error}"
+msgstr ""
+
+msgid "LinkedResources|Error deleting the linked resource for the incident: %{error}"
+msgstr ""
+
+msgid "LinkedResources|Fetching linked resources"
+msgstr ""
+
+msgid "LinkedResources|Link"
+msgstr ""
+
+msgid "LinkedResources|Linked resources"
+msgstr ""
+
+msgid "LinkedResources|Remove"
+msgstr ""
+
+msgid "LinkedResources|Something went wrong while creating the resource link for the incident."
+msgstr ""
+
+msgid "LinkedResources|Something went wrong while deleting the linked resource for the incident."
+msgstr ""
+
+msgid "LinkedResources|Something went wrong while fetching linked resources for the incident."
+msgstr ""
+
+msgid "LinkedResources|Text (Optional)"
+msgstr ""
+
+msgid "LinkedResources|Use this space to add links to the resources your team needs as they work to resolve the incident."
+msgstr ""
+
+msgid "Links"
+msgstr ""
+
+msgid "List"
+msgstr ""
+
+msgid "List available repositories"
+msgstr ""
+
+msgid "List of suitable GCP locations"
+msgstr ""
+
+msgid "List of users who are allowed to exceed the rate limit. Example: username1, username2"
+msgstr ""
+
+msgid "List options"
+msgstr ""
+
+msgid "List settings"
+msgstr ""
+
+msgid "List the merge requests that must be merged before this one."
+msgstr ""
+
+msgid "List the visible events for %{project_link} using the %{events_api_link}."
+msgstr ""
+
+msgid "List view"
+msgstr ""
+
+msgid "List your Bitbucket Server repositories"
+msgstr ""
+
+msgid "List your Gitea repositories"
+msgstr ""
+
+msgid "Load more"
+msgstr ""
+
+msgid "Load more users"
+msgstr ""
+
+msgid "Load new file"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Loading %{name}"
+msgstr ""
+
+msgid "Loading files, directories, and submodules in the path %{path} for commit reference %{ref}"
+msgstr ""
+
+msgid "Loading full blame..."
+msgstr ""
+
+msgid "Loading more"
+msgstr ""
+
+msgid "Loading snippet"
+msgstr ""
+
+msgid "Loading the GitLab IDE"
+msgstr ""
+
+msgid "Loading..."
+msgstr ""
+
+msgid "Loading…"
+msgstr ""
+
+msgid "Localization"
+msgstr ""
+
+msgid "Location"
+msgstr ""
+
+msgid "Location:"
+msgstr ""
+
+msgid "Lock"
+msgstr ""
+
+msgid "Lock %{issuableType}"
+msgstr ""
+
+msgid "Lock File?"
+msgstr ""
+
+msgid "Lock discussion"
+msgstr ""
+
+msgid "Lock label after a merge request is merged"
+msgstr ""
+
+msgid "Lock memberships to LDAP synchronization"
+msgstr ""
+
+msgid "Lock memberships to SAML Group Links synchronization"
+msgstr ""
+
+msgid "Lock not found"
+msgstr ""
+
+msgid "Lock on merge"
+msgstr ""
+
+msgid "Lock status"
+msgstr ""
+
+msgid "Lock the discussion"
+msgstr ""
+
+msgid "Lock this discussion? Only %{strongStart}project members%{strongEnd} will be able to comment."
+msgstr ""
+
+msgid "Lock to current projects"
+msgstr ""
+
+msgid "Locked"
+msgstr ""
+
+msgid "Locked by %{fileLockUserName}"
+msgstr ""
+
+msgid "Locked files"
+msgstr ""
+
+msgid "Locked the discussion."
+msgstr ""
+
+msgid "Locking discussion"
+msgstr ""
+
+msgid "Locks the discussion."
+msgstr ""
+
+msgid "LoggedOutMarketingHeader|Contact Sales"
+msgstr ""
+
+msgid "LoggedOutMarketingHeader|Explore GitLab"
+msgstr ""
+
+msgid "LoggedOutMarketingHeader|Pricing"
+msgstr ""
+
+msgid "LoggedOutMarketingHeader|Why GitLab"
+msgstr ""
+
+msgid "Login with smartcard"
+msgstr ""
+
+msgid "Logo was successfully removed."
+msgstr ""
+
+msgid "Logo will be removed. Are you sure?"
+msgstr ""
+
+msgid "Logs"
+msgstr ""
+
+msgid "Low - S4"
+msgstr ""
+
+msgid "Low vulnerabilities present"
+msgstr ""
+
+msgid "MB"
+msgstr ""
+
+msgid "MD5"
+msgstr ""
+
+msgid "MLExperimentTracking|Delete experiment?"
+msgstr ""
+
+msgid "MR widget|Back to the merge request"
+msgstr ""
+
+msgid "MR widget|See your pipeline in action"
+msgstr ""
+
+msgid "MR widget|Take a look at our %{beginnerLinkStart}Beginner's Guide to Continuous Integration%{beginnerLinkEnd} and our %{exampleLinkStart}examples of GitLab CI/CD%{exampleLinkEnd} to learn more."
+msgstr ""
+
+msgid "MR widget|The pipeline will test your code on every commit. A %{codeQualityLinkStart}code quality report%{codeQualityLinkEnd} will appear in your merge requests to warn you about potential code degradations."
+msgstr ""
+
+msgid "MRApprovals|Approvals"
+msgstr ""
+
+msgid "MRApprovals|Approved by"
+msgstr ""
+
+msgid "MRApprovals|Approvers"
+msgstr ""
+
+msgid "MRApprovals|Commented by"
+msgstr ""
+
+msgid "MRDiffFile|Changes are too large to be shown."
+msgstr ""
+
+msgid "MRDiffFile|View file @ %{commitSha}"
+msgstr ""
+
+msgid "MRDiff|Show changes only"
+msgstr ""
+
+msgid "MRDiff|Show full file"
+msgstr ""
+
+msgid "Macbook Touch ID on Edge"
+msgstr ""
+
+msgid "Made this %{type} confidential."
+msgstr ""
+
+msgid "Mailgun"
+msgstr ""
+
+msgid "Mailgun HTTP webhook signing key"
+msgstr ""
+
+msgid "Mailgun events"
+msgstr ""
+
+msgid "Maintainer"
+msgstr ""
+
+msgid "Maintenance mode"
+msgstr ""
+
+msgid "Make %{type} confidential"
+msgstr ""
+
+msgid "Make adjustments to how your GitLab instance is set up."
+msgstr ""
+
+msgid "Make and review changes in the browser with the Web IDE"
+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 ""
+
+msgid "Make new users' profiles private by default"
+msgstr ""
+
+msgid "Make sure you choose a strong, unique password."
+msgstr ""
+
+msgid "Make sure you have the correct permissions to link your project."
+msgstr ""
+
+msgid "Make sure you save it - you won't be able to access it again."
+msgstr ""
+
+msgid "Makes this %{type} confidential."
+msgstr ""
+
+msgid "Manage %{workspace} labels"
+msgstr ""
+
+msgid "Manage access"
+msgstr ""
+
+msgid "Manage applications that can use GitLab as an OAuth provider, and applications that you've authorized to use your account."
+msgstr ""
+
+msgid "Manage applications that use GitLab as an OAuth provider."
+msgstr ""
+
+msgid "Manage applications that you've authorized to use your account."
+msgstr ""
+
+msgid "Manage branch rules"
+msgstr ""
+
+msgid "Manage git repositories with fine-grained access controls that keep your code secure."
+msgstr ""
+
+msgid "Manage group labels"
+msgstr ""
+
+msgid "Manage labels"
+msgstr ""
+
+msgid "Manage members"
+msgstr ""
+
+msgid "Manage milestones"
+msgstr ""
+
+msgid "Manage project labels"
+msgstr ""
+
+msgid "Manage projects."
+msgstr ""
+
+msgid "Manage rules"
+msgstr ""
+
+msgid "Manage two-factor authentication"
+msgstr ""
+
+msgid "Manage usage"
+msgstr ""
+
+msgid "Manage your subscription"
+msgstr ""
+
+msgid "Managed Account"
+msgstr ""
+
+msgid "Manifest"
+msgstr ""
+
+msgid "Manifest file"
+msgstr ""
+
+msgid "Manifest file import"
+msgstr ""
+
+msgid "Manifest import"
+msgstr ""
+
+msgid "Manual"
+msgstr ""
+
+msgid "ManualOrdering|Couldn't save the order of the issues"
+msgstr ""
+
+msgid "Manually link this issue by adding it to the linked issue section of the %{linkStart}originating vulnerability%{linkEnd}."
+msgstr ""
+
+msgid "Map a FogBugz account ID to a GitLab user"
+msgstr ""
+
+msgid "Map data from"
+msgstr ""
+
+msgid "Mar"
+msgstr ""
+
+msgid "March"
+msgstr ""
+
+msgid "MardownDrawer|Could not fetch help contents."
+msgstr ""
+
+msgid "Mark as done"
+msgstr ""
+
+msgid "Mark as draft"
+msgstr ""
+
+msgid "Mark as ready"
+msgstr ""
+
+msgid "Mark this issue as a duplicate of another issue"
+msgstr ""
+
+msgid "Mark this issue as blocked by other issues"
+msgstr ""
+
+msgid "Mark this issue as related to another issue"
+msgstr ""
+
+msgid "Mark to do as done"
+msgstr ""
+
+msgid "Markdown Help"
+msgstr ""
+
+msgid "Markdown enabled."
+msgstr ""
+
+msgid "Markdown is supported"
+msgstr ""
+
+msgid "Markdown supported."
+msgstr ""
+
+msgid "MarkdownEditor|Add a link (%{modifierKey}K)"
+msgstr ""
+
+msgid "MarkdownEditor|Add a link (%{modifier_key}K)"
+msgstr ""
+
+msgid "MarkdownEditor|Add bold text (%{modifierKey}B)"
+msgstr ""
+
+msgid "MarkdownEditor|Add bold text (%{modifier_key}B)"
+msgstr ""
+
+msgid "MarkdownEditor|Add italic text (%{modifierKey}I)"
+msgstr ""
+
+msgid "MarkdownEditor|Add italic text (%{modifier_key}I)"
+msgstr ""
+
+msgid "MarkdownEditor|Add strikethrough text (%{modifierKey}%{shiftKey}X)"
+msgstr ""
+
+msgid "MarkdownEditor|Add strikethrough text (%{modifierKey}⇧X)"
+msgstr ""
+
+msgid "MarkdownEditor|Add strikethrough text (%{modifier_key}⇧X)"
+msgstr ""
+
+msgid "MarkdownEditor|Click to expand"
+msgstr ""
+
+msgid "MarkdownEditor|Indent line (%{modifierKey}])"
+msgstr ""
+
+msgid "MarkdownEditor|Indent line (%{modifier_key}])"
+msgstr ""
+
+msgid "MarkdownEditor|Outdent line (%{modifierKey}[)"
+msgstr ""
+
+msgid "MarkdownEditor|Outdent line (%{modifier_key}[)"
+msgstr ""
+
+msgid "MarkdownEditor|header"
+msgstr ""
+
+msgid "Marked"
+msgstr ""
+
+msgid "Marked %{target} as blocked by this issue."
+msgstr ""
+
+msgid "Marked For Deletion At - %{deletion_time}"
+msgstr ""
+
+msgid "Marked as draft. Can only be merged when marked as ready."
+msgstr ""
+
+msgid "Marked as ready. Merging is now allowed."
+msgstr ""
+
+msgid "Marked this %{noun} as ready."
+msgstr ""
+
+msgid "Marked this issue as blocked by %{target}."
+msgstr ""
+
+msgid "Marked this issue as related to %{issue_ref}."
+msgstr ""
+
+msgid "Marked to do as done."
+msgstr ""
+
+msgid "Marks"
+msgstr ""
+
+msgid "Marks this %{noun} as ready."
+msgstr ""
+
+msgid "Marks this issue as related to %{issue_ref}."
+msgstr ""
+
+msgid "Marks to do as done."
+msgstr ""
+
+msgid "Match not found; try refining your search query."
+msgstr ""
+
+msgid "Mattermost"
+msgstr ""
+
+msgid "Mattermost URL:"
+msgstr ""
+
+msgid "Mattermost notifications"
+msgstr ""
+
+msgid "MattermostService|%{link_start}Add a slash command %{icon}%{link_end} in your Mattermost team with the options listed below."
+msgstr ""
+
+msgid "MattermostService|%{link_start}Enable custom slash commands %{icon}%{link_end} on your Mattermost installation."
+msgstr ""
+
+msgid "MattermostService|Add to Mattermost"
+msgstr ""
+
+msgid "MattermostService|After you configure the integration, view your new Mattermost commands by entering"
+msgstr ""
+
+msgid "MattermostService|Command trigger word"
+msgstr ""
+
+msgid "MattermostService|Fill in the word that works best for your team."
+msgstr ""
+
+msgid "MattermostService|Install"
+msgstr ""
+
+msgid "MattermostService|Paste the token into the %{strong_start}Token%{strong_end} field."
+msgstr ""
+
+msgid "MattermostService|Request URL"
+msgstr ""
+
+msgid "MattermostService|Request method"
+msgstr ""
+
+msgid "MattermostService|Response icon"
+msgstr ""
+
+msgid "MattermostService|Response username"
+msgstr ""
+
+msgid "MattermostService|Select the %{strong_start}Active%{strong_end} check box, then select %{strong_start}Save changes%{strong_end} to start using GitLab inside Mattermost!"
+msgstr ""
+
+msgid "MattermostService|Suggestions:"
+msgstr ""
+
+msgid "MattermostService|Use this service to perform common tasks in your project by entering slash commands in Mattermost."
+msgstr ""
+
+msgid "Max 100,000 events"
+msgstr ""
+
+msgid "Max Value"
+msgstr ""
+
+msgid "Max authenticated Git LFS requests per period per user"
+msgstr ""
+
+msgid "Max file size is 200 KiB."
+msgstr ""
+
+msgid "Max role"
+msgstr ""
+
+msgid "Max seats used"
+msgstr ""
+
+msgid "Max session time"
+msgstr ""
+
+msgid "Maximum 20 characters"
+msgstr ""
+
+msgid "Maximum Conan package file size in bytes"
+msgstr ""
+
+msgid "Maximum Helm chart file size in bytes"
+msgstr ""
+
+msgid "Maximum Maven package file size in bytes"
+msgstr ""
+
+msgid "Maximum NuGet package file size in bytes"
+msgstr ""
+
+msgid "Maximum PyPI package file size in bytes"
+msgstr ""
+
+msgid "Maximum Terraform Module package file size in bytes"
+msgstr ""
+
+msgid "Maximum Users"
+msgstr ""
+
+msgid "Maximum allowable lifetime for access token (days)"
+msgstr ""
+
+msgid "Maximum allowed lifetime for SSH keys (days)"
+msgstr ""
+
+msgid "Maximum artifacts size"
+msgstr ""
+
+msgid "Maximum artifacts size (MB)"
+msgstr ""
+
+msgid "Maximum attachment size"
+msgstr ""
+
+msgid "Maximum attachment size (MiB)"
+msgstr ""
+
+msgid "Maximum authenticated API requests per rate limit period per user"
+msgstr ""
+
+msgid "Maximum authenticated web requests per rate limit period per user"
+msgstr ""
+
+msgid "Maximum bulk request size (MiB)"
+msgstr ""
+
+msgid "Maximum capacity"
+msgstr ""
+
+msgid "Maximum character limit - %{limit}"
+msgstr ""
+
+msgid "Maximum concurrency of Elasticsearch bulk requests per indexing operation."
+msgstr ""
+
+msgid "Maximum delay (Minutes)"
+msgstr ""
+
+msgid "Maximum diff patch size"
+msgstr ""
+
+msgid "Maximum diff patch size (bytes)"
+msgstr ""
+
+msgid "Maximum duration of a session."
+msgstr ""
+
+msgid "Maximum export size"
+msgstr ""
+
+msgid "Maximum export size (MiB)"
+msgstr ""
+
+msgid "Maximum field length"
+msgstr ""
+
+msgid "Maximum file size indexed (KiB)"
+msgstr ""
+
+msgid "Maximum file size is 1 MB. Image size must be 32 x 32 pixels. Allowed image formats are %{favicon_extension_allowlist}."
+msgstr ""
+
+msgid "Maximum file size is 1 MB. Pages are optimized for a 128x128 px logo."
+msgstr ""
+
+msgid "Maximum file size is 1MB."
+msgstr ""
+
+msgid "Maximum file size is 1MB. Pages are optimized for a 24px tall header logo"
+msgstr ""
+
+msgid "Maximum files in a diff"
+msgstr ""
+
+msgid "Maximum group export download requests per minute"
+msgstr ""
+
+msgid "Maximum group export requests per minute"
+msgstr ""
+
+msgid "Maximum group import requests per minute"
+msgstr ""
+
+msgid "Maximum import size"
+msgstr ""
+
+msgid "Maximum import size (MiB)"
+msgstr ""
+
+msgid "Maximum job artifact size"
+msgstr ""
+
+msgid "Maximum job timeout"
+msgstr ""
+
+msgid "Maximum job timeout has a value which could not be accepted"
+msgstr ""
+
+msgid "Maximum lines in a diff"
+msgstr ""
+
+msgid "Maximum npm package file size in bytes"
+msgstr ""
+
+msgid "Maximum number of %{name} (%{count}) exceeded"
+msgstr ""
+
+msgid "Maximum number of changes (branches or tags) in a single push above which a bulk push event is created (default is 3). Setting to 0 does not disable throttling."
+msgstr ""
+
+msgid "Maximum number of changes (branches or tags) in a single push above which webhooks and integrations are not triggered (default is 3). Setting to 0 does not disable throttling."
+msgstr ""
+
+msgid "Maximum number of comments exceeded"
+msgstr ""
+
+msgid "Maximum number of mirrors that can be synchronizing at the same time."
+msgstr ""
+
+msgid "Maximum number of projects."
+msgstr ""
+
+msgid "Maximum number of requests per minute"
+msgstr ""
+
+msgid "Maximum number of requests per minute for an authenticated user"
+msgstr ""
+
+msgid "Maximum number of requests per minute for an unauthenticated IP address"
+msgstr ""
+
+msgid "Maximum number of requests per minute for each raw path (default is 300). Set to 0 to disable throttling."
+msgstr ""
+
+msgid "Maximum number of stages per value stream exceeded"
+msgstr ""
+
+msgid "Maximum number of unique IP addresses per user."
+msgstr ""
+
+msgid "Maximum number of value streams per namespace exceeded"
+msgstr ""
+
+msgid "Maximum number of variables loaded (2000)"
+msgstr ""
+
+msgid "Maximum of 255 characters"
+msgstr ""
+
+msgid "Maximum page reached"
+msgstr ""
+
+msgid "Maximum page size"
+msgstr ""
+
+msgid "Maximum project export download requests per minute"
+msgstr ""
+
+msgid "Maximum project export requests per minute"
+msgstr ""
+
+msgid "Maximum project import requests per minute"
+msgstr ""
+
+msgid "Maximum projects allowed in the filter is %{count}"
+msgstr ""
+
+msgid "Maximum push size"
+msgstr ""
+
+msgid "Maximum push size (MiB)"
+msgstr ""
+
+msgid "Maximum requests per 10 minutes per IP address"
+msgstr ""
+
+msgid "Maximum requests per 10 minutes per user"
+msgstr ""
+
+msgid "Maximum requests per minute"
+msgstr ""
+
+msgid "Maximum running slices"
+msgstr ""
+
+msgid "Maximum size limit for a single commit."
+msgstr ""
+
+msgid "Maximum size limit for each repository."
+msgstr ""
+
+msgid "Maximum size of Elasticsearch bulk indexing requests."
+msgstr ""
+
+msgid "Maximum size of export files."
+msgstr ""
+
+msgid "Maximum size of import files."
+msgstr ""
+
+msgid "Maximum size of individual attachments in comments."
+msgstr ""
+
+msgid "Maximum size of pages (MiB)"
+msgstr ""
+
+msgid "Maximum snippet size"
+msgstr ""
+
+msgid "Maximum time between updates that a mirror can have when scheduled to synchronize."
+msgstr ""
+
+msgid "Maximum time that users are allowed to skip the setup of two-factor authentication (in hours). Set to 0 (zero) to enforce at next sign in."
+msgstr ""
+
+msgid "Maximum time, in seconds, for a web terminal websocket connection. 0 for unlimited."
+msgstr ""
+
+msgid "Maximum unauthenticated API requests per rate limit period per IP"
+msgstr ""
+
+msgid "Maximum unauthenticated web requests per rate limit period per IP"
+msgstr ""
+
+msgid "May"
+msgstr ""
+
+msgid "Mean time to merge"
+msgstr ""
+
+msgid "Measured in bytes of code. Excludes generated and vendored code."
+msgstr ""
+
+msgid "Medium - S3"
+msgstr ""
+
+msgid "Medium timeout"
+msgstr ""
+
+msgid "Medium vulnerabilities present"
+msgstr ""
+
+msgid "Member"
+msgstr ""
+
+msgid "Member since"
+msgstr ""
+
+msgid "Member since %{date}"
+msgstr ""
+
+msgid "Member since:"
+msgstr ""
+
+msgid "MemberInviteEmail|%{member_name} invited you to join GitLab"
+msgstr ""
+
+msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
+msgstr ""
+
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
+msgstr ""
+
+msgid "MemberRole|Add new role"
+msgstr ""
+
+msgid "MemberRole|Are you sure you want to delete this role?"
+msgstr ""
+
+msgid "MemberRole|Base role"
+msgstr ""
+
+msgid "MemberRole|Base role to use as template"
+msgstr ""
+
+msgid "MemberRole|Could not fetch available permissions: %{message}"
+msgstr ""
+
+msgid "MemberRole|Create new role"
+msgstr ""
+
+msgid "MemberRole|Custom permissions:"
+msgstr ""
+
+msgid "MemberRole|Custom roles"
+msgstr ""
+
+msgid "MemberRole|Custom roles based on %{accessLevel}"
+msgstr ""
+
+msgid "MemberRole|Delete role"
+msgstr ""
+
+msgid "MemberRole|Description"
+msgstr ""
+
+msgid "MemberRole|Enter a short name."
+msgstr ""
+
+msgid "MemberRole|Failed to create role."
+msgstr ""
+
+msgid "MemberRole|Failed to delete the role."
+msgstr ""
+
+msgid "MemberRole|Failed to fetch roles."
+msgstr ""
+
+msgid "MemberRole|ID"
+msgstr ""
+
+msgid "MemberRole|Incident manager"
+msgstr ""
+
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
+msgstr ""
+
+msgid "MemberRole|Name"
+msgstr ""
+
+msgid "MemberRole|No custom roles for this group"
+msgstr ""
+
+msgid "MemberRole|Permissions"
+msgstr ""
+
+msgid "MemberRole|Role name"
+msgstr ""
+
+msgid "MemberRole|Role successfully created."
+msgstr ""
+
+msgid "MemberRole|Role successfully deleted."
+msgstr ""
+
+msgid "MemberRole|Select a standard role to add permissions."
+msgstr ""
+
+msgid "MemberRole|Standard roles"
+msgstr ""
+
+msgid "MemberRole|To add a new role select 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
+msgstr ""
+
+msgid "MemberRole|can't be changed"
+msgstr ""
+
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
+msgstr ""
+
+msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
+msgstr ""
+
+msgid "MemberRole|maximum number of Member Roles are already in use by the group hierarchy. Please delete an existing Member Role."
+msgstr ""
+
+msgid "MemberRole|must be top-level namespace"
+msgstr ""
+
+msgid "Members"
+msgstr ""
+
+msgid "Members can be added by project %{i_open}Maintainers%{i_close} or %{i_open}Owners%{i_close}"
+msgstr ""
+
+msgid "Members listed as CODEOWNERS of affected files."
+msgstr ""
+
+msgid "Members of %{group} can also merge into this branch: %{branch}"
+msgstr ""
+
+msgid "Members of %{group} can also push to this branch: %{branch}"
+msgstr ""
+
+msgid "Members of a group may only view projects they have permission to access"
+msgstr ""
+
+msgid "MembersOverage|If you continue, the %{groupName} group will have %{quantity} seat in use and will be billed for the overage."
+msgid_plural "MembersOverage|If you continue, the %{groupName} group will have %{quantity} seats in use and will be billed for the overage."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MembersOverage|You are about to incur additional charges"
+msgstr ""
+
+msgid "MembersOverage|Your subscription includes %d seat."
+msgid_plural "MembersOverage|Your subscription includes %d seats."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Membership"
+msgstr ""
+
+msgid "Members|%{group} by %{createdBy}"
+msgstr ""
+
+msgid "Members|%{time} by %{user}"
+msgstr ""
+
+msgid "Members|%{userName} is currently an LDAP user. Editing their permissions will override the settings from the LDAP group sync."
+msgstr ""
+
+msgid "Members|2FA"
+msgstr ""
+
+msgid "Members|A group must have at least one owner. To leave this group, assign a new owner."
+msgstr ""
+
+msgid "Members|A group must have at least one owner. To remove the member, assign a new owner."
+msgstr ""
+
+msgid "Members|A personal project's owner cannot be removed."
+msgstr ""
+
+msgid "Members|Access granted"
+msgstr ""
+
+msgid "Members|Activity"
+msgstr ""
+
+msgid "Members|An error occurred while trying to enable LDAP override, please try again."
+msgstr ""
+
+msgid "Members|An error occurred while trying to revert to LDAP group sync settings, please try again."
+msgstr ""
+
+msgid "Members|An error occurred while updating the member's expiration date, please try again."
+msgstr ""
+
+msgid "Members|An error occurred while updating the member's role, please try again."
+msgstr ""
+
+msgid "Members|Are you sure you want to deny %{usersName}'s request to join \"%{source}\""
+msgstr ""
+
+msgid "Members|Are you sure you want to disable the two-factor authentication for %{userName}?"
+msgstr ""
+
+msgid "Members|Are you sure you want to leave \"%{source}\"?"
+msgstr ""
+
+msgid "Members|Are you sure you want to remove \"%{groupName}\"?"
+msgstr ""
+
+msgid "Members|Are you sure you want to remove %{userName} from \"%{group}\"?"
+msgstr ""
+
+msgid "Members|Are you sure you want to remove this orphaned member from \"%{group}\"?"
+msgstr ""
+
+msgid "Members|Are you sure you want to revoke the invitation for %{inviteEmail} to join \"%{source}\""
+msgstr ""
+
+msgid "Members|Are you sure you want to withdraw your access request for \"%{source}\""
+msgstr ""
+
+msgid "Members|Ban member"
+msgstr ""
+
+msgid "Members|Cannot leave \"%{source}\""
+msgstr ""
+
+msgid "Members|Direct"
+msgstr ""
+
+msgid "Members|Direct member by %{createdBy}"
+msgstr ""
+
+msgid "Members|Disable two-factor authentication"
+msgstr ""
+
+msgid "Members|Disabled"
+msgstr ""
+
+msgid "Members|Edit permissions"
+msgstr ""
+
+msgid "Members|Enabled"
+msgstr ""
+
+msgid "Members|Expiration date removed successfully."
+msgstr ""
+
+msgid "Members|Expiration date updated successfully."
+msgstr ""
+
+msgid "Members|Filter groups"
+msgstr ""
+
+msgid "Members|Filter members"
+msgstr ""
+
+msgid "Members|Inherited"
+msgstr ""
+
+msgid "Members|LDAP override enabled."
+msgstr ""
+
+msgid "Members|Last activity"
+msgstr ""
+
+msgid "Members|Leave \"%{source}\""
+msgstr ""
+
+msgid "Members|Membership"
+msgstr ""
+
+msgid "Members|Private group information is only accessible to its members."
+msgstr ""
+
+msgid "Members|Remove \"%{groupName}\""
+msgstr ""
+
+msgid "Members|Remove group"
+msgstr ""
+
+msgid "Members|Revert to LDAP group sync settings"
+msgstr ""
+
+msgid "Members|Reverted to LDAP group sync settings."
+msgstr ""
+
+msgid "Members|Role updated successfully."
+msgstr ""
+
+msgid "Members|Search groups"
+msgstr ""
+
+msgid "Members|Search invited"
+msgstr ""
+
+msgid "Members|User created"
+msgstr ""
+
+msgid "Members|You cannot remove yourself from a personal project."
+msgstr ""
+
+msgid "Member|Deny access"
+msgstr ""
+
+msgid "Member|Revoke invite"
+msgstr ""
+
+msgid "Memory Usage"
+msgstr ""
+
+msgid "Mentions"
+msgstr ""
+
+msgid "Menu"
+msgstr ""
+
+msgid "Merge"
+msgstr ""
+
+msgid "Merge %d cell"
+msgid_plural "Merge %d cells"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Merge Conflicts"
+msgstr ""
+
+msgid "Merge Request"
+msgstr ""
+
+msgid "Merge Request Analytics"
+msgstr ""
+
+msgid "Merge Requests"
+msgstr ""
+
+msgid "Merge Requests created"
+msgstr ""
+
+msgid "Merge Requests in Review"
+msgstr ""
+
+msgid "Merge Requests merged"
+msgstr ""
+
+msgid "Merge automatically (%{strategy})"
+msgstr ""
+
+msgid "Merge blocked: Merge all open dependent merge requests, and remove all closed dependencies."
+msgstr ""
+
+msgid "Merge blocked: pipeline must succeed. It's waiting for a manual job to continue."
+msgstr ""
+
+msgid "Merge commit message"
+msgstr ""
+
+msgid "Merge conflicts"
+msgstr ""
+
+msgid "Merge conflicts must be resolved."
+msgstr ""
+
+msgid "Merge date & time could not be determined"
+msgstr ""
+
+msgid "Merge details"
+msgstr ""
+
+msgid "Merge events"
+msgstr ""
+
+msgid "Merge immediately"
+msgstr ""
+
+msgid "Merge in progress"
+msgstr ""
+
+msgid "Merge now and don't restart train"
+msgstr ""
+
+msgid "Merge now and restart train"
+msgstr ""
+
+msgid "Merge options"
+msgstr ""
+
+msgid "Merge request"
+msgstr ""
+
+msgid "Merge request %{mr_link} was reviewed by %{mr_author}"
+msgstr ""
+
+msgid "Merge request ID"
+msgstr ""
+
+msgid "Merge request actions"
+msgstr ""
+
+msgid "Merge request analytics"
+msgstr ""
+
+msgid "Merge request approvals"
+msgstr ""
+
+msgid "Merge request author cannot push to target project"
+msgstr ""
+
+msgid "Merge request branch workflow"
+msgstr ""
+
+msgid "Merge request change summary"
+msgstr ""
+
+msgid "Merge request commits"
+msgstr ""
+
+msgid "Merge request dependencies"
+msgstr ""
+
+msgid "Merge request events"
+msgstr ""
+
+msgid "Merge request is blocked by another merge request."
+msgstr ""
+
+msgid "Merge request must be open."
+msgstr ""
+
+msgid "Merge request must be rebased, because a fast-forward merge is not possible."
+msgstr ""
+
+msgid "Merge request must not be draft."
+msgstr ""
+
+msgid "Merge request not merged"
+msgstr ""
+
+msgid "Merge request reports"
+msgstr ""
+
+msgid "Merge request status"
+msgstr ""
+
+msgid "Merge request summaries"
+msgstr ""
+
+msgid "Merge request summary"
+msgstr ""
+
+msgid "Merge request title"
+msgstr ""
+
+msgid "Merge request was set to auto-merge"
+msgstr ""
+
+msgid "Merge requests"
+msgstr ""
+
+msgid "Merge requests and approvals settings have moved."
+msgstr ""
+
+msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others"
+msgstr ""
+
+msgid "Merge requests can't be merged if the status checks did not succeed or are still running."
+msgstr ""
+
+msgid "Merge train pipelines continue without the merged changes."
+msgstr ""
+
+msgid "Merge trains"
+msgstr ""
+
+msgid "Merge unverified changes"
+msgstr ""
+
+msgid "Merge unverified changes?"
+msgstr ""
+
+msgid "Merge when all merge checks pass"
+msgstr ""
+
+msgid "Merge when checks pass"
+msgstr ""
+
+msgid "Merge when pipeline succeeds"
+msgstr ""
+
+msgid "Merge..."
+msgstr ""
+
+msgid "MergeChecks|All threads must be resolved"
+msgstr ""
+
+msgid "MergeChecks|Enable \"Pipelines must succeed\" first."
+msgstr ""
+
+msgid "MergeChecks|Introduces the risk of merging changes that do not pass the pipeline."
+msgstr ""
+
+msgid "MergeChecks|Merge requests can't be merged if the latest pipeline did not succeed or is still running."
+msgstr ""
+
+msgid "MergeChecks|Pipelines must succeed"
+msgstr ""
+
+msgid "MergeChecks|Skipped pipelines are considered successful"
+msgstr ""
+
+msgid "MergeChecks|This setting is configured in group %{groupName} and can only be changed in the group settings by an administrator or group owner."
+msgstr ""
+
+msgid "MergeConflict|Commit to source branch"
+msgstr ""
+
+msgid "MergeConflict|Committing..."
+msgstr ""
+
+msgid "MergeConflict|HEAD//our changes"
+msgstr ""
+
+msgid "MergeConflict|Use ours"
+msgstr ""
+
+msgid "MergeConflict|Use theirs"
+msgstr ""
+
+msgid "MergeConflict|conflict"
+msgstr ""
+
+msgid "MergeConflict|conflicts"
+msgstr ""
+
+msgid "MergeConflict|origin//their changes"
+msgstr ""
+
+msgid "MergeRequestAnalytics|Assignees"
+msgstr ""
+
+msgid "MergeRequestAnalytics|Date Merged"
+msgstr ""
+
+msgid "MergeRequestAnalytics|Line changes"
+msgstr ""
+
+msgid "MergeRequestAnalytics|Merge Request"
+msgstr ""
+
+msgid "MergeRequestAnalytics|Milestone"
+msgstr ""
+
+msgid "MergeRequestAnalytics|Pipelines"
+msgstr ""
+
+msgid "MergeRequestAnalytics|Time to merge"
+msgstr ""
+
+msgid "MergeRequestApprovals|Define approval rules and settings to ensure %{link_start}separation of duties%{link_end} for new merge requests."
+msgstr ""
+
+msgid "MergeRequestApprovals|Enforce %{link_start}separation of duties%{link_end} for all projects."
+msgstr ""
+
+msgid "MergeRequestApprovals|Enforce %{separationLinkStart}separation of duties%{separationLinkEnd} for all projects. %{learnLinkStart}Learn more.%{learnLinkEnd}"
+msgstr ""
+
+msgid "MergeRequestDiffs|Commenting on lines %{selectStart}start%{selectEnd} to %{end}"
+msgstr ""
+
+msgid "MergeRequestDiffs|Select comment starting line"
+msgstr ""
+
+msgid "MergeRequests|Can't perform this action automatically. It may have already been done, or a more recent commit may have updated some of this content. Please perform this action locally."
+msgstr ""
+
+msgid "MergeRequests|Commit cherry-pick failed"
+msgstr ""
+
+msgid "MergeRequests|Commit revert failed"
+msgstr ""
+
+msgid "MergeRequests|Create issue to resolve thread"
+msgstr ""
+
+msgid "MergeRequests|Drafts cannot be merged until marked ready."
+msgstr ""
+
+msgid "MergeRequests|Mark as draft"
+msgstr ""
+
+msgid "MergeRequests|Merge request cherry-pick failed"
+msgstr ""
+
+msgid "MergeRequests|Merge request revert failed"
+msgstr ""
+
+msgid "MergeRequests|Reference copied"
+msgstr ""
+
+msgid "MergeRequests|Squashing failed: Squash the commits locally, resolve any conflicts, then push the branch."
+msgstr ""
+
+msgid "MergeRequests|Squashing not allowed: This project doesn't allow you to squash commits when merging."
+msgstr ""
+
+msgid "MergeRequests|Thread stays resolved"
+msgstr ""
+
+msgid "MergeRequests|Thread stays unresolved"
+msgstr ""
+
+msgid "MergeRequests|Thread will be resolved"
+msgstr ""
+
+msgid "MergeRequests|Thread will be unresolved"
+msgstr ""
+
+msgid "MergeRequests|View file @ %{commitId}"
+msgstr ""
+
+msgid "MergeRequests|View replaced file @ %{commitId}"
+msgstr ""
+
+msgid "MergeRequests|Your comment could not be submitted because %{reason}."
+msgstr ""
+
+msgid "MergeRequests|commented on commit %{commitLink}"
+msgstr ""
+
+msgid "MergeRequests|started a thread"
+msgstr ""
+
+msgid "MergeRequests|started a thread on %{linkStart}a file%{linkEnd}"
+msgstr ""
+
+msgid "MergeRequests|started a thread on %{linkStart}an old version of a file%{linkEnd}"
+msgstr ""
+
+msgid "MergeRequests|started a thread on %{linkStart}an old version of the diff%{linkEnd}"
+msgstr ""
+
+msgid "MergeRequests|started a thread on %{linkStart}the diff%{linkEnd}"
+msgstr ""
+
+msgid "MergeRequests|started a thread on an outdated change in commit %{linkStart}%{commitDisplay}%{linkEnd}"
+msgstr ""
+
+msgid "MergeRequests|started a thread on commit %{linkStart}%{commitDisplay}%{linkEnd}"
+msgstr ""
+
+msgid "MergeRequest|Approved by @%{username}"
+msgstr ""
+
+msgid "MergeRequest|Can't fetch the diff needed to update this view. Please reload this page."
+msgstr ""
+
+msgid "MergeRequest|Can't fetch the single file diff for the discussion. Please reload this page."
+msgstr ""
+
+msgid "MergeRequest|Can't show this merge request because of an internal error. Contact your administrator."
+msgstr ""
+
+msgid "MergeRequest|Can't show this merge request because the fork project was deleted."
+msgstr ""
+
+msgid "MergeRequest|Can't show this merge request because the source branch %{branch_badge} is missing from project %{path_badge}. Close this merge request or update the source branch."
+msgstr ""
+
+msgid "MergeRequest|Can't show this merge request because the target branch %{branch_badge} is missing from project %{path_badge}. Close this merge request or update the target branch."
+msgstr ""
+
+msgid "MergeRequest|Compare %{target} and %{source}"
+msgstr ""
+
+msgid "MergeRequest|Error dismissing suggestion popover. Please try again."
+msgstr ""
+
+msgid "MergeRequest|Error loading full diff. Please try again."
+msgstr ""
+
+msgid "MergeRequest|Failed to load the page"
+msgstr ""
+
+msgid "MergeRequest|No files found"
+msgstr ""
+
+msgid "MergeRequest|Reviewed by @%{username} but not yet approved"
+msgstr ""
+
+msgid "MergeRequest|Search (e.g. *.vue) (%{MODIFIER_KEY}P)"
+msgstr ""
+
+msgid "MergeRequest|Summaries are written by AI"
+msgstr ""
+
+msgid "MergeRequest|Summary notes"
+msgstr ""
+
+msgid "MergeRequest|This description was generated for revision %{revision} using AI"
+msgstr ""
+
+msgid "MergeRequest|This description was generated using AI"
+msgstr ""
+
+msgid "MergeTopics|%{sourceTopic} will be removed"
+msgstr ""
+
+msgid "MergeTopics|All assigned projects will be moved to %{targetTopic}"
+msgstr ""
+
+msgid "MergeTopics|Merge topics"
+msgstr ""
+
+msgid "MergeTopics|Merging topics will cause the following:"
+msgstr ""
+
+msgid "MergeTopics|Move all assigned projects from the source topic to the target topic and remove the source topic."
+msgstr ""
+
+msgid "MergeTopics|Source topic"
+msgstr ""
+
+msgid "MergeTopics|Target topic"
+msgstr ""
+
+msgid "MergeTopics|This action cannot be undone."
+msgstr ""
+
+msgid "Merged"
+msgstr ""
+
+msgid "Merged branches are being deleted. This can take some time depending on the number of branches. Please refresh the page to see changes."
+msgstr ""
+
+msgid "Merged by"
+msgstr ""
+
+msgid "Merged this merge request."
+msgstr ""
+
+msgid "Merged: %{merged}"
+msgstr ""
+
+msgid "Merges this merge request immediately."
+msgstr ""
+
+msgid "Merging immediately isn't recommended as it may negatively impact the existing merge train. Read the %{docsLinkStart}documentation%{docsLinkEnd} for more information."
+msgstr ""
+
+msgid "Mermaid diagram"
+msgstr ""
+
+msgid "Message"
+msgstr ""
+
+msgid "Messages"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+msgid "Method call threshold (ms)"
+msgstr ""
+
+msgid "Metric"
+msgstr ""
+
+msgid "Metric:"
+msgstr ""
+
+msgid "MetricChart|Please select a metric"
+msgstr ""
+
+msgid "MetricChart|There is no data available. Please change your selection."
+msgstr ""
+
+msgid "MetricChart|There is too much data to calculate. Please change your selection."
+msgstr ""
+
+msgid "MetricImages|There was an issue deleting the image."
+msgstr ""
+
+msgid "MetricImages|There was an issue loading metric images."
+msgstr ""
+
+msgid "MetricImages|There was an issue updating your image."
+msgstr ""
+
+msgid "MetricImages|There was an issue uploading your image."
+msgstr ""
+
+msgid "Metrics"
+msgstr ""
+
+msgid "Metrics - Grafana"
+msgstr ""
+
+msgid "Metrics - Prometheus"
+msgstr ""
+
+msgid "Metrics Dashboard"
+msgstr ""
+
+msgid "Metrics Dashboard YAML definition"
+msgstr ""
+
+msgid "Metrics Dashboard YAML definition is invalid:"
+msgstr ""
+
+msgid "Metrics Dashboard YAML definition is valid."
+msgstr ""
+
+msgid "Metrics and profiling"
+msgstr ""
+
+msgid "Metrics:"
+msgstr ""
+
+msgid "Metrics|Create metric"
+msgstr ""
+
+msgid "Metrics|Delete metric"
+msgstr ""
+
+msgid "Metrics|Delete metric?"
+msgstr ""
+
+msgid "Metrics|Edit metric"
+msgstr ""
+
+msgid "Metrics|For grouping similar metrics"
+msgstr ""
+
+msgid "Metrics|Label of the y-axis (usually the unit). The x-axis always represents time."
+msgstr ""
+
+msgid "Metrics|Legend label (optional)"
+msgstr ""
+
+msgid "Metrics|Must be a valid PromQL query."
+msgstr ""
+
+msgid "Metrics|New metric"
+msgstr ""
+
+msgid "Metrics|PromQL query is valid"
+msgstr ""
+
+msgid "Metrics|Prometheus Query Documentation"
+msgstr ""
+
+msgid "Metrics|There was an error trying to validate your query"
+msgstr ""
+
+msgid "Metrics|Unit label"
+msgstr ""
+
+msgid "Metrics|Used as a title for the chart"
+msgstr ""
+
+msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response."
+msgstr ""
+
+msgid "Metrics|Validating query"
+msgstr ""
+
+msgid "Metrics|Y-axis label"
+msgstr ""
+
+msgid "Metrics|You're about to permanently delete this metric. This cannot be undone."
+msgstr ""
+
+msgid "Metrics|e.g. HTTP requests"
+msgstr ""
+
+msgid "Metrics|e.g. Requests/second"
+msgstr ""
+
+msgid "Metrics|e.g. Throughput"
+msgstr ""
+
+msgid "Metrics|e.g. rate(http_requests_total[5m])"
+msgstr ""
+
+msgid "Metrics|e.g. req/sec"
+msgstr ""
+
+msgid "Mi"
+msgstr ""
+
+msgid "MiB"
+msgstr ""
+
+msgid "Microsoft|Client ID"
+msgstr ""
+
+msgid "Microsoft|Client secret"
+msgstr ""
+
+msgid "Microsoft|Enable Microsoft Azure integration for this group"
+msgstr ""
+
+msgid "Microsoft|Graph API endpoint"
+msgstr ""
+
+msgid "Microsoft|Login API endpoint"
+msgstr ""
+
+msgid "Microsoft|Microsoft Azure Integration"
+msgstr ""
+
+msgid "Microsoft|Microsoft Azure integration settings failed to save. %{errors}"
+msgstr ""
+
+msgid "Microsoft|Microsoft Azure integration settings were successfully updated."
+msgstr ""
+
+msgid "Microsoft|Sync group memberships from Microsoft Azure when SAML response includes an overage claim."
+msgstr ""
+
+msgid "Microsoft|Tenant ID"
+msgstr ""
+
+msgid "Microsoft|Use the default value, unless you're using Azure AD for US Government or Azure AD China operated by 22Vianet."
+msgstr ""
+
+msgid "Microsoft|Use the default value, unless you're using using Microsoft Graph for US Government or Microsoft Graph China operated by 22Vianet."
+msgstr ""
+
+msgid "Migrated %{success_count}/%{total_count} files."
+msgstr ""
+
+msgid "Migration"
+msgstr ""
+
+msgid "Migration has been scheduled to be retried"
+msgstr ""
+
+msgid "Migration successful."
+msgstr ""
+
+msgid "Milestone"
+msgid_plural "Milestones"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Milestone actions"
+msgstr ""
+
+msgid "Milestone due date"
+msgstr ""
+
+msgid "Milestone id(s) not found: %{milestones}"
+msgstr ""
+
+msgid "Milestone lists not available with your current license"
+msgstr ""
+
+msgid "Milestone(s) not found: %{milestones}"
+msgstr ""
+
+msgid "MilestoneCombobox|Group milestones"
+msgstr ""
+
+msgid "MilestoneCombobox|No milestone"
+msgstr ""
+
+msgid "MilestoneCombobox|Project milestones"
+msgstr ""
+
+msgid "MilestoneCombobox|Select milestone"
+msgstr ""
+
+msgid "MilestonePage|Copy milestone ID"
+msgstr ""
+
+msgid "MilestonePage|Milestone ID: %{milestone_id}"
+msgstr ""
+
+msgid "MilestoneSidebar|Closed:"
+msgstr ""
+
+msgid "MilestoneSidebar|Copy reference"
+msgstr ""
+
+msgid "MilestoneSidebar|Due date"
+msgstr ""
+
+msgid "MilestoneSidebar|Edit"
+msgstr ""
+
+msgid "MilestoneSidebar|From"
+msgstr ""
+
+msgid "MilestoneSidebar|Issues"
+msgstr ""
+
+msgid "MilestoneSidebar|Merge requests"
+msgstr ""
+
+msgid "MilestoneSidebar|Merged:"
+msgstr ""
+
+msgid "MilestoneSidebar|New Issue"
+msgstr ""
+
+msgid "MilestoneSidebar|New issue"
+msgstr ""
+
+msgid "MilestoneSidebar|No due date"
+msgstr ""
+
+msgid "MilestoneSidebar|No start date"
+msgstr ""
+
+msgid "MilestoneSidebar|None"
+msgstr ""
+
+msgid "MilestoneSidebar|Open:"
+msgstr ""
+
+msgid "MilestoneSidebar|Reference:"
+msgstr ""
+
+msgid "MilestoneSidebar|Start date"
+msgstr ""
+
+msgid "MilestoneSidebar|Toggle sidebar"
+msgstr ""
+
+msgid "MilestoneSidebar|Until"
+msgstr ""
+
+msgid "MilestoneSidebar|complete"
+msgstr ""
+
+msgid "Milestones"
+msgstr ""
+
+msgid "Milestones| You’re about to permanently delete the milestone %{milestoneTitle} and remove it from %{issuesWithCount} and %{mergeRequestsWithCount}. Once deleted, it cannot be undone or recovered."
+msgstr ""
+
+msgid "Milestones| You’re about to permanently delete the milestone %{milestoneTitle}. This milestone is not currently used in any issues or merge requests."
+msgstr ""
+
+msgid "Milestones|Close Milestone"
+msgstr ""
+
+msgid "Milestones|Completed Issues (closed)"
+msgstr ""
+
+msgid "Milestones|Create a milestone to better track your issues and merge requests. %{learn_more_link}"
+msgstr ""
+
+msgid "Milestones|Delete milestone"
+msgstr ""
+
+msgid "Milestones|Delete milestone %{milestoneTitle}?"
+msgstr ""
+
+msgid "Milestones|Failed to delete milestone %{milestoneTitle}"
+msgstr ""
+
+msgid "Milestones|Group Milestone"
+msgstr ""
+
+msgid "Milestones|Milestone %{milestoneTitle} was not found"
+msgstr ""
+
+msgid "Milestones|Ongoing Issues (open and assigned)"
+msgstr ""
+
+msgid "Milestones|Organize issues and merge requests into a cohesive group, and set optional start and due dates. %{learn_more_link}"
+msgstr ""
+
+msgid "Milestones|Project Milestone"
+msgstr ""
+
+msgid "Milestones|Promote %{milestoneTitle} to group milestone?"
+msgstr ""
+
+msgid "Milestones|Promote Milestone"
+msgstr ""
+
+msgid "Milestones|Promote to Group Milestone"
+msgstr ""
+
+msgid "Milestones|Promoting %{milestoneTitle} will make it available for all projects inside %{groupName}. Existing project milestones with the same title will be merged."
+msgstr ""
+
+msgid "Milestones|Reopen Milestone"
+msgstr ""
+
+msgid "Milestones|There are no closed milestones"
+msgstr ""
+
+msgid "Milestones|There are no open milestones"
+msgstr ""
+
+msgid "Milestones|This action cannot be reversed."
+msgstr ""
+
+msgid "Milestones|Unstarted Issues (open and unassigned)"
+msgstr ""
+
+msgid "Milestones|Use milestones to track issues and merge requests over a fixed period of time"
+msgstr ""
+
+msgid "Milestone|%{percentage}%{percent} complete"
+msgstr ""
+
+msgid "Min Value"
+msgstr ""
+
+msgid "Minimal Access"
+msgstr ""
+
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
+msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
+msgstr ""
+
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
+msgid "Minutes"
+msgstr ""
+
+msgid "Mirror all branches"
+msgstr ""
+
+msgid "Mirror branches"
+msgstr ""
+
+msgid "Mirror direction"
+msgstr ""
+
+msgid "Mirror only protected branches"
+msgstr ""
+
+msgid "Mirror repository"
+msgstr ""
+
+msgid "Mirror settings are only available to GitLab administrators."
+msgstr ""
+
+msgid "Mirror specific branches"
+msgstr ""
+
+msgid "Mirror user"
+msgstr ""
+
+msgid "Mirrored from %{link}."
+msgstr ""
+
+msgid "Mirrored repositories"
+msgstr ""
+
+msgid "Mirroring repositories"
+msgstr ""
+
+msgid "Mirroring settings were successfully updated."
+msgstr ""
+
+msgid "Mirroring settings were successfully updated. The project is being updated."
+msgstr ""
+
+msgid "Mirroring was successfully disabled."
+msgstr ""
+
+msgid "Mirroring will only be available if the feature is included in the plan of the selected group or user."
+msgstr ""
+
+msgid "Miscellaneous"
+msgstr ""
+
+msgid "Missing"
+msgstr ""
+
+msgid "Missing OAuth configuration for GitHub."
+msgstr ""
+
+msgid "Missing OS"
+msgstr ""
+
+msgid "Missing arch"
+msgstr ""
+
+msgid "Missing commit signatures endpoint!"
+msgstr ""
+
+msgid "Missing/invalid scope"
+msgstr ""
+
+msgid "MissingSSHKeyWarningLink|Add SSH key"
+msgstr ""
+
+msgid "MissingSSHKeyWarningLink|Don't show again"
+msgstr ""
+
+msgid "MissingSSHKeyWarningLink|You can't push or pull repositories using SSH until you add an SSH key to your profile."
+msgstr ""
+
+msgid "MissingSSHKeyWarningLink|You won't be able to pull or push repositories via SSH until you add an SSH key to your profile"
+msgstr ""
+
+msgid "MlExperimentTracking|-"
+msgstr ""
+
+msgid "MlExperimentTracking|Artifacts"
+msgstr ""
+
+msgid "MlExperimentTracking|Author"
+msgstr ""
+
+msgid "MlExperimentTracking|CI Job"
+msgstr ""
+
+msgid "MlExperimentTracking|Candidate removed"
+msgstr ""
+
+msgid "MlExperimentTracking|Create a new experiment"
+msgstr ""
+
+msgid "MlExperimentTracking|Create new candidates"
+msgstr ""
+
+msgid "MlExperimentTracking|Created at"
+msgstr ""
+
+msgid "MlExperimentTracking|Delete candidate"
+msgstr ""
+
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
+msgid "MlExperimentTracking|Delete experiment"
+msgstr ""
+
+msgid "MlExperimentTracking|Deleting this candidate will delete the associated parameters, metrics, and metadata."
+msgstr ""
+
+msgid "MlExperimentTracking|Deleting this experiment will also delete its candidates and their associated metadata."
+msgstr ""
+
+msgid "MlExperimentTracking|Details"
+msgstr ""
+
+msgid "MlExperimentTracking|Download as CSV"
+msgstr ""
+
+msgid "MlExperimentTracking|Experiment"
+msgstr ""
+
+msgid "MlExperimentTracking|Experiment removed"
+msgstr ""
+
+msgid "MlExperimentTracking|Experiments keep track of comparable model candidates, and determine which parameters provides the best performance. Create experiments using the MLflow client"
+msgstr ""
+
+msgid "MlExperimentTracking|Filter candidates"
+msgstr ""
+
+msgid "MlExperimentTracking|Get started with model experiments!"
+msgstr ""
+
+msgid "MlExperimentTracking|Logged candidates for experiment"
+msgstr ""
+
+msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgstr ""
+
+msgid "MlExperimentTracking|Model candidate details"
+msgstr ""
+
+msgid "MlExperimentTracking|Model experiments"
+msgstr ""
+
+msgid "MlExperimentTracking|Model removed"
+msgstr ""
+
+msgid "MlExperimentTracking|Name"
+msgstr ""
+
+msgid "MlExperimentTracking|No artifacts"
+msgstr ""
+
+msgid "MlExperimentTracking|No candidates"
+msgstr ""
+
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgstr ""
+
+msgid "MlExperimentTracking|No name"
+msgstr ""
+
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr ""
+
+msgid "MlModelRegistry|CI Info"
+msgstr ""
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr ""
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
+msgid "MlModelRegistry|Details"
+msgstr ""
+
+msgid "MlModelRegistry|Experiment"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
+msgstr ""
+
+msgid "MlModelRegistry|Latest version"
+msgstr ""
+
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
+msgid "MlModelRegistry|Model registry"
+msgstr ""
+
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
+msgstr ""
+
+msgid "MlModelRegistry|No registered versions"
+msgstr ""
+
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Version candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Versions"
+msgstr ""
+
+msgid "MlModelRegistry|· No other versions"
+msgid_plural "MlModelRegistry|· %d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Modal updated"
+msgstr ""
+
+msgid "ModalButton|Add projects"
+msgstr ""
+
+msgid "Modal|Close"
+msgstr ""
+
+msgid "Model experiments"
+msgstr ""
+
+msgid "Model registry"
+msgstr ""
+
+msgid "ModelRegistry|Model registry"
+msgstr ""
+
+msgid "ModelRegistry|New model"
+msgstr ""
+
+msgid "Modified"
+msgstr ""
+
+msgid "Modified in this version"
+msgstr ""
+
+msgid "Modify commit message"
+msgstr ""
+
+msgid "Modify commit messages"
+msgstr ""
+
+msgid "Modify merge commit"
+msgstr ""
+
+msgid "Mon"
+msgstr ""
+
+msgid "Monday"
+msgstr ""
+
+msgid "Monitor"
+msgstr ""
+
+msgid "Monitor GitLab with Prometheus."
+msgstr ""
+
+msgid "Monitor Settings"
+msgstr ""
+
+msgid "Monitor your errors directly in GitLab."
+msgstr ""
+
+msgid "Month"
+msgstr ""
+
+msgid "Months"
+msgstr ""
+
+msgid "More Details"
+msgstr ""
+
+msgid "More Information"
+msgstr ""
+
+msgid "More actions"
+msgstr ""
+
+msgid "More details"
+msgstr ""
+
+msgid "More info"
+msgstr ""
+
+msgid "More information"
+msgstr ""
+
+msgid "More information is available|here"
+msgstr ""
+
+msgid "More options"
+msgstr ""
+
+msgid "More than %{number_commits_distance} commits different with %{default_branch}"
+msgstr ""
+
+msgid "More topics"
+msgstr ""
+
+msgid "Most common"
+msgstr ""
+
+msgid "Most relevant"
+msgstr ""
+
+msgid "Most starred"
+msgstr ""
+
+msgid "Move"
+msgstr ""
+
+msgid "Move down"
+msgstr ""
+
+msgid "Move issue"
+msgstr ""
+
+msgid "Move issue from one column of the board to another"
+msgstr ""
+
+msgid "Move selection down"
+msgstr ""
+
+msgid "Move selection up"
+msgstr ""
+
+msgid "Move test case"
+msgstr ""
+
+msgid "Move this issue to another project."
+msgstr ""
+
+msgid "Move up"
+msgstr ""
+
+msgid "MoveIssue|Cannot move issue due to insufficient permissions!"
+msgstr ""
+
+msgid "MoveIssue|Cannot move issue to project it originates from!"
+msgstr ""
+
+msgid "MoveIssue|Cannot move issues of '%{issue_type}' type."
+msgstr ""
+
+msgid "Moved issue to %{label} column in the board."
+msgstr ""
+
+msgid "Moved this issue to %{path_to_project}."
+msgstr ""
+
+msgid "Moves issue to %{label} column in the board."
+msgstr ""
+
+msgid "Moves this issue to %{path_to_project}."
+msgstr ""
+
+msgid "Moving issue"
+msgstr ""
+
+msgid "MrDeploymentActions|Deploy"
+msgstr ""
+
+msgid "MrDeploymentActions|Re-deploy"
+msgstr ""
+
+msgid "MrDeploymentActions|Stop environment"
+msgstr ""
+
+msgid "MrList|Assigned to %{name}"
+msgstr ""
+
+msgid "MrList|Review requested from %{name}"
+msgstr ""
+
+msgid "MrSurvey|By continuing, you acknowledge that responses will be used to improve GitLab and in accordance with the %{linkStart}GitLab Privacy Policy%{linkEnd}."
+msgstr ""
+
+msgid "MrSurvey|How satisfied are you with %{strongStart}speed/performance%{strongEnd} of merge requests?"
+msgstr ""
+
+msgid "MrSurvey|Merge request experience survey"
+msgstr ""
+
+msgid "MrSurvey|Overall, how satisfied are you with merge requests?"
+msgstr ""
+
+msgid "MrSurvey|Thank you for your feedback!"
+msgstr ""
+
+msgid "Multi-project"
+msgstr ""
+
+msgid "Multiple IP address ranges are supported. Does not affect access to the group's settings."
+msgstr ""
+
+msgid "Multiple Prometheus integrations are not supported"
+msgstr ""
+
+msgid "Multiple components '%{name}' have 'gl/inject-editor' attribute"
+msgstr ""
+
+msgid "Multiple integrations of a single type are not supported for this project"
+msgstr ""
+
+msgid "Multiple signatures"
+msgstr ""
+
+msgid "Multiplier to apply to polling intervals. Decimal values are supported. Defaults to 1."
+msgstr ""
+
+msgid "Must be 90 days or more."
+msgstr ""
+
+msgid "My awesome group"
+msgstr ""
+
+msgid "My comment templates"
+msgstr ""
+
+msgid "My company or team"
+msgstr ""
+
+msgid "My topic"
+msgstr ""
+
+msgid "My-Reaction"
+msgstr ""
+
+msgid "NEW"
+msgstr ""
+
+msgid "Name"
+msgstr ""
+
+msgid "Name can contain only lowercase or uppercase letters, digits, emoji, spaces, dots, underscores, dashes, or pluses."
+msgstr ""
+
+msgid "Name can't be blank"
+msgstr ""
+
+msgid "Name has already been taken"
+msgstr ""
+
+msgid "Name is already taken."
+msgstr ""
+
+msgid "Name must start with a letter, digit, emoji, or underscore."
+msgstr ""
+
+msgid "Name new label"
+msgstr ""
+
+msgid "Name to be used as the sender for emails from Service Desk."
+msgstr ""
+
+msgid "Name:"
+msgstr ""
+
+msgid "Namespace"
+msgstr ""
+
+msgid "Namespace ID:"
+msgstr ""
+
+msgid "Namespace Limits"
+msgstr ""
+
+msgid "Namespace Storage"
+msgstr ""
+
+msgid "Namespace doesn't exist or you don't have permission."
+msgstr ""
+
+msgid "Namespace must be provided."
+msgstr ""
+
+msgid "Namespace or group to import repository into does not exist."
+msgstr ""
+
+msgid "Namespace or project is required"
+msgstr ""
+
+msgid "Namespace:"
+msgstr ""
+
+msgid "NamespaceLimits|%{date} %{linkStart}%{username}%{linkEnd} changed the limit to %{limit}"
+msgstr ""
+
+msgid "NamespaceLimits|Add minimum free storage amount (in MiB) that will be used to enforce storage usage for namespaces on free plan. To remove the limit, set the value to 0 and click \"Update limit\" button."
+msgstr ""
+
+msgid "NamespaceLimits|Add minimum free storage amount (in MiB) that will be used to set the dashboard limit for namespaces on free plan. To remove the limit, set the value to 0 and click \"Update limit\" button."
+msgstr ""
+
+msgid "NamespaceLimits|Add minimum free storage amount (in MiB) that will be used to show notifications for namespace on free plan. To remove the limit, set the value to 0 and click \"Update limit\" button."
+msgstr ""
+
+msgid "NamespaceLimits|Confirm deletion"
+msgstr ""
+
+msgid "NamespaceLimits|Confirm limits change"
+msgstr ""
+
+msgid "NamespaceLimits|Dashboard Limit"
+msgstr ""
+
+msgid "NamespaceLimits|Dashboard limit was successfully added"
+msgstr ""
+
+msgid "NamespaceLimits|Dashboard limit was successfully removed"
+msgstr ""
+
+msgid "NamespaceLimits|Deletion confirmation"
+msgstr ""
+
+msgid "NamespaceLimits|Do you confirm the deletion of the selected namespace from the exclusion list?"
+msgstr ""
+
+msgid "NamespaceLimits|Enforcement Limit"
+msgstr ""
+
+msgid "NamespaceLimits|Enforcement limit was successfully added"
+msgstr ""
+
+msgid "NamespaceLimits|Enforcement limit was successfully removed"
+msgstr ""
+
+msgid "NamespaceLimits|Enter a valid number greater or equal to zero."
+msgstr ""
+
+msgid "NamespaceLimits|Exclude"
+msgstr ""
+
+msgid "NamespaceLimits|Exclude namespace"
+msgstr ""
+
+msgid "NamespaceLimits|Excluded Namespaces"
+msgstr ""
+
+msgid "NamespaceLimits|Exclusion added successfully"
+msgstr ""
+
+msgid "NamespaceLimits|Export .csv"
+msgstr ""
+
+msgid "NamespaceLimits|Export a csv file with Free Tier anonymized namespace storage usage statistics. This is an asynchronous operation, once the file is generated we will send it to your registered email."
+msgstr ""
+
+msgid "NamespaceLimits|Free Tier"
+msgstr ""
+
+msgid "NamespaceLimits|NONE"
+msgstr ""
+
+msgid "NamespaceLimits|Namespace limits could not be loaded. Reload the page to try again."
+msgstr ""
+
+msgid "NamespaceLimits|Namespaces Statistics"
+msgstr ""
+
+msgid "NamespaceLimits|Notifications Limit"
+msgstr ""
+
+msgid "NamespaceLimits|Notifications limit was successfully added"
+msgstr ""
+
+msgid "NamespaceLimits|Notifications limit was successfully removed"
+msgstr ""
+
+msgid "NamespaceLimits|Reason"
+msgstr ""
+
+msgid "NamespaceLimits|Reason for excluding this namespace"
+msgstr ""
+
+msgid "NamespaceLimits|Set Dashboard limit"
+msgstr ""
+
+msgid "NamespaceLimits|Set Enforcement limit"
+msgstr ""
+
+msgid "NamespaceLimits|Set Notifications limit"
+msgstr ""
+
+msgid "NamespaceLimits|Storage Phased Notification"
+msgstr ""
+
+msgid "NamespaceLimits|There was an error deleting the namespace: \"%{errorMessage}\"."
+msgstr ""
+
+msgid "NamespaceLimits|There was an error fetching the exclusion list, try refreshing the page."
+msgstr ""
+
+msgid "NamespaceLimits|These namespaces won't receive any notifications nor any degraded functionality while they remain on this list"
+msgstr ""
+
+msgid "NamespaceLimits|This will change the dashboard limit for all free namespaces except the excluded namespaces, the limit can be removed later."
+msgstr ""
+
+msgid "NamespaceLimits|This will change when free namespaces get storage enforcement except the excluded namespaces, the limit can be removed later."
+msgstr ""
+
+msgid "NamespaceLimits|This will limit the amount of notifications all free namespaces receives except the excluded namespaces, the limit can be removed later."
+msgstr ""
+
+msgid "NamespaceLimits|Update limit"
+msgstr ""
+
+msgid "NamespaceLimits|You must select a namespace and add a reason for excluding it"
+msgstr ""
+
+msgid "NamespaceStorageSize|%{namespace_name} is now read-only. Your ability to write new data to this namespace is restricted. %{read_only_link_start}Which actions are restricted?%{link_end}"
+msgstr ""
+
+msgid "NamespaceStorageSize|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgstr ""
+
+msgid "NamespaceStorageSize|If %{namespace_name} exceeds the storage quota, your ability to write new data to this namespace will be restricted. %{read_only_link_start}Which actions become restricted?%{link_end}"
+msgstr ""
+
+msgid "NamespaceStorageSize|If a project reaches 100%% of the storage quota (%{free_size_limit}) the project will be in a read-only state, and you won't be able to push to your repository or add large files."
+msgstr ""
+
+msgid "NamespaceStorageSize|To prevent your projects from being in a read-only state %{manage_storage_link_start}manage your storage usage%{link_end}, or %{purchase_more_link_start}purchase more storage%{link_end}."
+msgstr ""
+
+msgid "NamespaceStorageSize|To prevent your projects from being in a read-only state %{manage_storage_link_start}manage your storage usage%{link_end}, or contact a user with the %{group_member_link_start}owner role for this namespace%{link_end} and ask them to %{purchase_more_link_start}purchase more storage%{link_end}."
+msgstr ""
+
+msgid "NamespaceStorageSize|To reduce storage usage, reduce git repository and git LFS storage."
+msgstr ""
+
+msgid "NamespaceStorageSize|To remove the read-only state %{manage_storage_link_start}manage your storage usage%{link_end}, or %{purchase_more_link_start}purchase more storage%{link_end}."
+msgstr ""
+
+msgid "NamespaceStorageSize|To remove the read-only state %{manage_storage_link_start}manage your storage usage%{link_end}, or contact a user with the %{group_member_link_start}owner role for this namespace%{link_end} and ask them to %{purchase_more_link_start}purchase more storage%{link_end}."
+msgstr ""
+
+msgid "NamespaceStorageSize|To remove the read-only state, reduce git repository and git LFS storage, or %{purchase_more_link_start}purchase more storage%{link_end}."
+msgstr ""
+
+msgid "NamespaceStorageSize|To remove the read-only state, reduce git repository and git LFS storage, or contact a user with the %{group_member_link_start}owner role for this namespace%{link_end} and ask them to %{purchase_more_link_start}purchase more storage%{link_end}."
+msgstr ""
+
+msgid "NamespaceStorageSize|You have consumed all available storage and you can't push or add large files to projects over the free tier limit (%{free_size_limit})."
+msgstr ""
+
+msgid "NamespaceStorageSize|You have reached the free storage limit of %{free_size_limit} for %{namespace_name}"
+msgstr ""
+
+msgid "NamespaceStorageSize|You have reached the free storage limit of %{free_size_limit} on %{readonly_project_count} project"
+msgid_plural "NamespaceStorageSize|You have reached the free storage limit of %{free_size_limit} on %{readonly_project_count} projects"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "NamespaceStorageSize|You have used %{usage_in_percent} of the purchased storage for %{namespace_name}"
+msgstr ""
+
+msgid "NamespaceStorageSize|You have used %{usage_in_percent} of the storage quota for %{namespace_name} (%{used_storage} of %{storage_limit})"
+msgstr ""
+
+msgid "NamespaceStorageSize|You have used all available storage for %{namespace_name}"
+msgstr ""
+
+msgid "NamespaceStorage|%{name_with_link} is now read-only. Projects under this namespace are locked and actions are restricted."
+msgstr ""
+
+msgid "NamespaceStorage|%{name} is now read-only. Projects under this namespace are locked and actions are restricted."
+msgstr ""
+
+msgid "NamespaceStorage|Action required: Storage has been exceeded for %{namespace_name}"
+msgstr ""
+
+msgid "NamespaceStorage|Buy more storage"
+msgstr ""
+
+msgid "NamespaceStorage|If %{name_with_link} exceeds the storage quota, all projects in the namespace will be locked and actions will be restricted."
+msgstr ""
+
+msgid "NamespaceStorage|If %{name} exceeds the storage quota, all projects in the namespace will be locked and actions will be restricted."
+msgstr ""
+
+msgid "NamespaceStorage|Learn about which actions are restricted: %{url}"
+msgstr ""
+
+msgid "NamespaceStorage|Learn about which actions become restricted: %{url}"
+msgstr ""
+
+msgid "NamespaceStorage|Manage your storage usage or purchase additional storage."
+msgstr ""
+
+msgid "NamespaceStorage|See storage usage statistics: %{url}"
+msgstr ""
+
+msgid "NamespaceStorage|Which actions are restricted?"
+msgstr ""
+
+msgid "NamespaceStorage|Which actions become restricted?"
+msgstr ""
+
+msgid "NamespaceStorage|You have used %{used_storage_percentage} of the storage quota for %{name_with_link} (%{current_size} of %{limit})."
+msgstr ""
+
+msgid "NamespaceStorage|You have used %{used_storage_percentage} of the storage quota for %{namespace_name}"
+msgstr ""
+
+msgid "NamespaceStorage|You have used %{used_storage_percentage} of the storage quota for %{name} (%{current_size} of %{limit})."
+msgstr ""
+
+msgid "NamespaceUserCap|Pending users must be reviewed and approved by a group owner. Learn more about %{user_caps_link_start}user caps%{link_end} and %{users_pending_approval_link_start}users pending approval%{link_end}."
+msgstr ""
+
+msgid "NamespaceUserCap|View pending approvals"
+msgstr ""
+
+msgid "NamespaceUserCap|Your group has reached its billable member limit"
+msgstr ""
+
+msgid "Namespaces"
+msgstr ""
+
+msgid "Namespaces to index"
+msgstr ""
+
+msgid "Naming"
+msgstr ""
+
+msgid "Naming, topics, avatar"
+msgstr ""
+
+msgid "Naming, visibility"
+msgstr ""
+
+msgid "Navigate to the project to close the milestone."
+msgstr ""
+
+msgid "Navigation bar"
+msgstr ""
+
+msgid "NavigationTheme|Blue"
+msgstr ""
+
+msgid "NavigationTheme|Dark Mode (alpha)"
+msgstr ""
+
+msgid "NavigationTheme|Gray"
+msgstr ""
+
+msgid "NavigationTheme|Green"
+msgstr ""
+
+msgid "NavigationTheme|Indigo"
+msgstr ""
+
+msgid "NavigationTheme|Light Blue"
+msgstr ""
+
+msgid "NavigationTheme|Light Gray"
+msgstr ""
+
+msgid "NavigationTheme|Light Green"
+msgstr ""
+
+msgid "NavigationTheme|Light Indigo"
+msgstr ""
+
+msgid "NavigationTheme|Light Red"
+msgstr ""
+
+msgid "NavigationTheme|Red"
+msgstr ""
+
+msgid "Navigation|%{title} added to pinned items"
+msgstr ""
+
+msgid "Navigation|%{title} removed from pinned items"
+msgstr ""
+
+msgid "Navigation|Admin Area"
+msgstr ""
+
+msgid "Navigation|Analyze"
+msgstr ""
+
+msgid "Navigation|Build"
+msgstr ""
+
+msgid "Navigation|CI/CD settings"
+msgstr ""
+
+msgid "Navigation|Code"
+msgstr ""
+
+msgid "Navigation|Deploy"
+msgstr ""
+
+msgid "Navigation|Explore"
+msgstr ""
+
+msgid "Navigation|Frequently visited groups"
+msgstr ""
+
+msgid "Navigation|Frequently visited projects"
+msgstr ""
+
+msgid "Navigation|Groups you visit often will appear here."
+msgstr ""
+
+msgid "Navigation|Manage"
+msgstr ""
+
+msgid "Navigation|Merge requests settings"
+msgstr ""
+
+msgid "Navigation|Monitor"
+msgstr ""
+
+msgid "Navigation|Monitor settings"
+msgstr ""
+
+msgid "Navigation|Operate"
+msgstr ""
+
+msgid "Navigation|Pin %{title}"
+msgstr ""
+
+msgid "Navigation|Pin item"
+msgstr ""
+
+msgid "Navigation|Pinned"
+msgstr ""
+
+msgid "Navigation|Plan"
+msgstr ""
+
+msgid "Navigation|Preferences"
+msgstr ""
+
+msgid "Navigation|Primary navigation"
+msgstr ""
+
+msgid "Navigation|Profile"
+msgstr ""
+
+msgid "Navigation|Projects you visit often will appear here."
+msgstr ""
+
+msgid "Navigation|Repository settings"
+msgstr ""
+
+msgid "Navigation|Secure"
+msgstr ""
+
+msgid "Navigation|Unpin %{title}"
+msgstr ""
+
+msgid "Navigation|Unpin item"
+msgstr ""
+
+msgid "Navigation|View all my groups"
+msgstr ""
+
+msgid "Navigation|View all my projects"
+msgstr ""
+
+msgid "Navigation|Your pinned items appear here."
+msgstr ""
+
+msgid "Navigation|Your work"
+msgstr ""
+
+msgid "Nav|Help"
+msgstr ""
+
+msgid "Nav|Home"
+msgstr ""
+
+msgid "Nav|Sign In / Register"
+msgstr ""
+
+msgid "Nav|Sign out and sign in with a different account"
+msgstr ""
+
+msgid "Needs"
+msgstr ""
+
+msgid "Needs attention"
+msgstr ""
+
+msgid "Network"
+msgstr ""
+
+msgid "Never"
+msgstr ""
+
+msgid "New"
+msgstr ""
+
+msgid "New %{type} in %{project}"
+msgstr ""
+
+msgid "New Application"
+msgstr ""
+
+msgid "New Branch"
+msgstr ""
+
+msgid "New Deploy Key"
+msgstr ""
+
+msgid "New Epic"
+msgstr ""
+
+msgid "New File"
+msgstr ""
+
+msgid "New Group"
+msgstr ""
+
+msgid "New Identity"
+msgstr ""
+
+msgid "New Issue"
+msgid_plural "New Issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "New Jira import"
+msgstr ""
+
+msgid "New Label"
+msgstr ""
+
+msgid "New Milestone"
+msgstr ""
+
+msgid "New Pages Domain"
+msgstr ""
+
+msgid "New Password"
+msgstr ""
+
+msgid "New Pipeline Schedule"
+msgstr ""
+
+msgid "New Project"
+msgstr ""
+
+msgid "New Protected Branch"
+msgstr ""
+
+msgid "New Requirement"
+msgstr ""
+
+msgid "New Security findings"
+msgstr ""
+
+msgid "New Snippet"
+msgstr ""
+
+msgid "New User"
+msgstr ""
+
+msgid "New branch"
+msgstr ""
+
+msgid "New branch unavailable"
+msgstr ""
+
+msgid "New code quality findings"
+msgstr ""
+
+msgid "New confidential epic title "
+msgstr ""
+
+msgid "New confidential issue title"
+msgstr ""
+
+msgid "New custom emoji"
+msgstr ""
+
+msgid "New deploy key"
+msgstr ""
+
+msgid "New directory"
+msgstr ""
+
+msgid "New email address added"
+msgstr ""
+
+msgid "New environment"
+msgstr ""
+
+msgid "New epic"
+msgstr ""
+
+msgid "New epic title"
+msgstr ""
+
+msgid "New error tracking access token has been generated!"
+msgstr ""
+
+msgid "New file"
+msgstr ""
+
+msgid "New group"
+msgstr ""
+
+msgid "New group name"
+msgstr ""
+
+msgid "New health check access token has been generated!"
+msgstr ""
+
+msgid "New identity"
+msgstr ""
+
+msgid "New incident"
+msgstr ""
+
+msgid "New incident has been created"
+msgstr ""
+
+msgid "New issue"
+msgstr ""
+
+msgid "New issue title"
+msgstr ""
+
+msgid "New iteration created"
+msgstr ""
+
+msgid "New label"
+msgstr ""
+
+msgid "New list"
+msgstr ""
+
+msgid "New merge request"
+msgstr ""
+
+msgid "New milestone"
+msgstr ""
+
+msgid "New name"
+msgstr ""
+
+msgid "New password"
+msgstr ""
+
+msgid "New project"
+msgstr ""
+
+msgid "New project page"
+msgstr ""
+
+msgid "New project pages"
+msgstr ""
+
+msgid "New project/repository"
+msgstr ""
+
+msgid "New public deploy key"
+msgstr ""
+
+msgid "New related %{issueType}"
+msgstr ""
+
+msgid "New release"
+msgstr ""
+
+msgid "New requirement"
+msgstr ""
+
+msgid "New response for issue #%{issue_iid}:"
+msgstr ""
+
+msgid "New runners registration token has been generated!"
+msgstr ""
+
+msgid "New snippet"
+msgstr ""
+
+msgid "New subgroup"
+msgstr ""
+
+msgid "New tag"
+msgstr ""
+
+msgid "New test case"
+msgstr ""
+
+msgid "New topic"
+msgstr ""
+
+msgid "New users set to external"
+msgstr ""
+
+msgid "New! Suggest changes directly"
+msgstr ""
+
+msgid "Newest first"
+msgstr ""
+
+msgid "Newly-registered users are external by default"
+msgstr ""
+
+msgid "Next"
+msgstr ""
+
+msgid "Next commit"
+msgstr ""
+
+msgid "Next design"
+msgstr ""
+
+msgid "Next file in diff"
+msgstr ""
+
+msgid "Next scan"
+msgstr ""
+
+msgid "Next unresolved discussion"
+msgstr ""
+
+msgid "Next update"
+msgstr ""
+
+msgid "Nickname"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid "No %{header} for this request."
+msgstr ""
+
+msgid "No %{providerTitle} repositories found"
+msgstr ""
+
+msgid "No Epic"
+msgstr ""
+
+msgid "No Google Cloud projects - You need at least one Google Cloud project"
+msgstr ""
+
+msgid "No Matching Results"
+msgstr ""
+
+msgid "No Milestone"
+msgstr ""
+
+msgid "No Scopes"
+msgstr ""
+
+msgid "No Work Item Link found"
+msgstr ""
+
+msgid "No access"
+msgstr ""
+
+msgid "No activities found"
+msgstr ""
+
+msgid "No approvers"
+msgstr ""
+
+msgid "No artifacts found"
+msgstr ""
+
+msgid "No assignee"
+msgstr ""
+
+msgid "No authentication methods configured."
+msgstr ""
+
+msgid "No available branches"
+msgstr ""
+
+msgid "No branch selected"
+msgstr ""
+
+msgid "No branches found"
+msgstr ""
+
+msgid "No change to this %{noun}'s draft status."
+msgstr ""
+
+msgid "No changes"
+msgstr ""
+
+msgid "No changes between %{source} and %{target}"
+msgstr ""
+
+msgid "No child epics match applied filters"
+msgstr ""
+
+msgid "No commenters"
+msgstr ""
+
+msgid "No commits present here"
+msgstr ""
+
+msgid "No committers"
+msgstr ""
+
+msgid "No component has 'gl/inject-editor' attribute"
+msgstr ""
+
+msgid "No components present in devfile"
+msgstr ""
+
+msgid "No confirmation email received? Check your spam folder or %{request_link_start}request new confirmation email%{request_link_end}."
+msgstr ""
+
+msgid "No connection could be made to a Gitaly Server, please check your logs!"
+msgstr ""
+
+msgid "No contributions"
+msgstr ""
+
+msgid "No contributions were found"
+msgstr ""
+
+msgid "No credit card data for matching"
+msgstr ""
+
+msgid "No credit card required."
+msgstr ""
+
+msgid "No data"
+msgstr ""
+
+msgid "No data available"
+msgstr ""
+
+msgid "No deployments found"
+msgstr ""
+
+msgid "No email participants were added. Either none were provided, or they already exist."
+msgstr ""
+
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
+msgid "No endpoint provided"
+msgstr ""
+
+msgid "No errors to display."
+msgstr ""
+
+msgid "No estimate or time spent"
+msgstr ""
+
+msgid "No file chosen."
+msgstr ""
+
+msgid "No file hooks found."
+msgstr ""
+
+msgid "No file selected"
+msgstr ""
+
+msgid "No files"
+msgstr ""
+
+msgid "No files found."
+msgstr ""
+
+msgid "No forks are available to you."
+msgstr ""
+
+msgid "No group provided"
+msgstr ""
+
+msgid "No grouping"
+msgstr ""
+
+msgid "No issues found"
+msgstr ""
+
+msgid "No iteration"
+msgstr ""
+
+msgid "No label"
+msgstr ""
+
+msgid "No labels found"
+msgstr ""
+
+msgid "No labels with such name or description"
+msgstr ""
+
+msgid "No linked issue matches the provided parameter."
+msgstr ""
+
+msgid "No matches found"
+msgstr ""
+
+msgid "No matching %{issuable} found. Make sure that you are adding a valid %{issuable} ID."
+msgstr ""
+
+msgid "No matching %{issuable} found. Make sure that you are adding a valid %{issuable} URL."
+msgstr ""
+
+msgid "No matching labels"
+msgstr ""
+
+msgid "No matching results"
+msgstr ""
+
+msgid "No matching results for \"%{query}\""
+msgstr ""
+
+msgid "No matching work item found."
+msgstr ""
+
+msgid "No matching work item found. Make sure you are adding a valid ID and you have access to the item."
+msgstr ""
+
+msgid "No members found"
+msgstr ""
+
+msgid "No memberships found"
+msgstr ""
+
+msgid "No merge requests found"
+msgstr ""
+
+msgid "No messages were logged"
+msgstr ""
+
+msgid "No milestone"
+msgstr ""
+
+msgid "No more than %{max_issues} issues can be updated at the same time"
+msgstr ""
+
+msgid "No more than %{max_work_items} work items can be modified at the same time."
+msgstr ""
+
+msgid "No options found"
+msgstr ""
+
+msgid "No other labels with such name or description"
+msgstr ""
+
+msgid "No parent group"
+msgstr ""
+
+msgid "No phone number data for matching"
+msgstr ""
+
+msgid "No plan"
+msgstr ""
+
+msgid "No policy matches this license"
+msgstr ""
+
+msgid "No preview for this file type"
+msgstr ""
+
+msgid "No prioritized labels with such name or description"
+msgstr ""
+
+msgid "No prioritized labels yet!"
+msgstr ""
+
+msgid "No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "No projects available."
+msgstr ""
+
+msgid "No projects found"
+msgstr ""
+
+msgid "No public deploy keys"
+msgstr ""
+
+msgid "No public groups"
+msgstr ""
+
+msgid "No ref selected"
+msgstr ""
+
+msgid "No regions configured"
+msgstr ""
+
+msgid "No repository"
+msgstr ""
+
+msgid "No results"
+msgstr ""
+
+msgid "No results found"
+msgstr ""
+
+msgid "No results found."
+msgstr ""
+
+msgid "No runner executable"
+msgstr ""
+
+msgid "No service accounts"
+msgstr ""
+
+msgid "No severity matches the provided parameter"
+msgstr ""
+
+msgid "No slash-separated component can begin with %{sequencePrefixes}"
+msgstr ""
+
+msgid "No slash-separated component can end with %{sequencePostfixes}"
+msgstr ""
+
+msgid "No slash-separated tag name component can be empty"
+msgstr ""
+
+msgid "No source selected"
+msgstr ""
+
+msgid "No stack trace for this error"
+msgstr ""
+
+msgid "No starrers matched your search"
+msgstr ""
+
+msgid "No start date – %{dueDate}"
+msgstr ""
+
+msgid "No suggestions found"
+msgstr ""
+
+msgid "No template"
+msgstr ""
+
+msgid "No template selected"
+msgstr ""
+
+msgid "No test coverage"
+msgstr ""
+
+msgid "No user provided"
+msgstr ""
+
+msgid "No vulnerabilities present"
+msgstr ""
+
+msgid "No webhook events"
+msgstr ""
+
+msgid "No webhooks enabled. Select trigger events above."
+msgstr ""
+
+msgid "No work item IDs provided."
+msgstr ""
+
+msgid "No work item found."
+msgstr ""
+
+msgid "No worries, you can still use all the %{strong}%{plan_name}%{strong_close} features for now. You have %{remaining_days} day to renew your subscription."
+msgid_plural "No worries, you can still use all the %{strong}%{plan_name}%{strong_close} features for now. You have %{remaining_days} days to renew your subscription."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "No wrap"
+msgstr ""
+
+msgid "No. of commits"
+msgstr ""
+
+msgid "Nobody has starred this repository yet"
+msgstr ""
+
+msgid "Node was successfully created."
+msgstr ""
+
+msgid "Node was successfully updated."
+msgstr ""
+
+msgid "Nodes"
+msgstr ""
+
+msgid "Non-admin users are restricted to read-only access, in both GitLab UI and API."
+msgstr ""
+
+msgid "None"
+msgstr ""
+
+msgid "None of the group milestones have the same project as the release"
+msgstr ""
+
+msgid "Normal text"
+msgstr ""
+
+msgid "Normal view"
+msgstr ""
+
+msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
+msgstr ""
+
+msgid "Not all browsers support WebAuthn. You must save your recovery codes after you first register a two-factor authenticator to be able to sign in, even from an unsupported browser."
+msgstr ""
+
+msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
+msgstr ""
+
+msgid "Not applicable"
+msgstr ""
+
+msgid "Not applicable."
+msgstr ""
+
+msgid "Not available"
+msgstr ""
+
+msgid "Not available for private projects"
+msgstr ""
+
+msgid "Not available for protected branches"
+msgstr ""
+
+msgid "Not confidential"
+msgstr ""
+
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
+msgid "Not found"
+msgstr ""
+
+msgid "Not found."
+msgstr ""
+
+msgid "Not permitted to destroy framework"
+msgstr ""
+
+msgid "Not ready yet. Try again later."
+msgstr ""
+
+msgid "Not started"
+msgstr ""
+
+msgid "Not supported"
+msgstr ""
+
+msgid "Not validated"
+msgstr ""
+
+msgid "Note"
+msgstr ""
+
+msgid "Note creation requests"
+msgstr ""
+
+msgid "Note parameters are invalid: %{errors}"
+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 ""
+
+msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token."
+msgstr ""
+
+msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token."
+msgstr ""
+
+msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token."
+msgstr ""
+
+msgid "Note: current forks will keep their visibility level."
+msgstr ""
+
+msgid "NoteForm|Note"
+msgstr ""
+
+msgid "Notes"
+msgstr ""
+
+msgid "Notes rate limit"
+msgstr ""
+
+msgid "Notes|Are you sure you want to cancel creating this %{commentType}?"
+msgstr ""
+
+msgid "Notes|Are you sure you want to cancel creating this comment?"
+msgstr ""
+
+msgid "Notes|Attachments are sent by email. Attachments over 10 MB are sent as links to your GitLab instance, and only accessible to project members."
+msgstr ""
+
+msgid "Notes|Collapse replies"
+msgstr ""
+
+msgid "Notes|Expand replies"
+msgstr ""
+
+msgid "Notes|Internal notes are only visible to members with the role of Reporter or higher"
+msgstr ""
+
+msgid "Notes|Last reply by %{name}"
+msgstr ""
+
+msgid "Notes|Make this an internal note"
+msgstr ""
+
+msgid "Notes|Show all activity"
+msgstr ""
+
+msgid "Notes|Show comments only"
+msgstr ""
+
+msgid "Notes|Show history only"
+msgstr ""
+
+msgid "Notes|This comment has changed since you started editing, please review the %{open_link}updated comment%{close_link} to ensure information is not lost"
+msgstr ""
+
+msgid "Notes|This internal note will always remain confidential"
+msgstr ""
+
+msgid "Notes|You're only seeing %{boldStart}other activity%{boldEnd} in the feed. To add a comment, switch to one of the following options."
+msgstr ""
+
+msgid "Note|The created date provided is too far in the past."
+msgstr ""
+
+msgid "Nothing to preview."
+msgstr ""
+
+msgid "Notification events"
+msgstr ""
+
+msgid "Notification setting - %{notification_title}"
+msgstr ""
+
+msgid "Notification settings saved"
+msgstr ""
+
+msgid "NotificationEmail|Assignee"
+msgid_plural "NotificationEmail|Assignees"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "NotificationEmail|Assignee: %{users}"
+msgid_plural "NotificationEmail|Assignees: %{users}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "NotificationEmail|Reviewer"
+msgid_plural "NotificationEmail|Reviewers"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "NotificationEmail|Reviewer: %{users}"
+msgid_plural "NotificationEmail|Reviewers: %{users}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
+msgid "NotificationEvent|Change reviewer merge request"
+msgstr ""
+
+msgid "NotificationEvent|Close issue"
+msgstr ""
+
+msgid "NotificationEvent|Close merge request"
+msgstr ""
+
+msgid "NotificationEvent|Failed pipeline"
+msgstr ""
+
+msgid "NotificationEvent|Fixed pipeline"
+msgstr ""
+
+msgid "NotificationEvent|Issue due"
+msgstr ""
+
+msgid "NotificationEvent|Merge merge request"
+msgstr ""
+
+msgid "NotificationEvent|Merge when pipeline succeeds"
+msgstr ""
+
+msgid "NotificationEvent|Moved project"
+msgstr ""
+
+msgid "NotificationEvent|New epic"
+msgstr ""
+
+msgid "NotificationEvent|New issue"
+msgstr ""
+
+msgid "NotificationEvent|New merge request"
+msgstr ""
+
+msgid "NotificationEvent|New note"
+msgstr ""
+
+msgid "NotificationEvent|New release"
+msgstr ""
+
+msgid "NotificationEvent|Push to merge request"
+msgstr ""
+
+msgid "NotificationEvent|Reassign issue"
+msgstr ""
+
+msgid "NotificationEvent|Reassign merge request"
+msgstr ""
+
+msgid "NotificationEvent|Reopen issue"
+msgstr ""
+
+msgid "NotificationEvent|Reopen merge request"
+msgstr ""
+
+msgid "NotificationEvent|Successful pipeline"
+msgstr ""
+
+msgid "NotificationLevel|Custom"
+msgstr ""
+
+msgid "NotificationLevel|Disabled"
+msgstr ""
+
+msgid "NotificationLevel|Global"
+msgstr ""
+
+msgid "NotificationLevel|On mention"
+msgstr ""
+
+msgid "NotificationLevel|Participate"
+msgstr ""
+
+msgid "NotificationLevel|Watch"
+msgstr ""
+
+msgid "Notifications"
+msgstr ""
+
+msgid "Notifications have been disabled by the project or group owner"
+msgstr ""
+
+msgid "Notifications off"
+msgstr ""
+
+msgid "Notifications on"
+msgstr ""
+
+msgid "Notifications turned off."
+msgstr ""
+
+msgid "Notifications turned on."
+msgstr ""
+
+msgid "Notify users by email when sign-in location is not recognized."
+msgstr ""
+
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
+msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
+msgstr ""
+
+msgid "Notify|%{author_name} %{action_name} %{ref_type} %{ref_name} at %{project_link}"
+msgstr ""
+
+msgid "Notify|%{changed_files}:"
+msgstr ""
+
+msgid "Notify|%{commit_link} in %{mr_link}"
+msgstr ""
+
+msgid "Notify|%{commits_text} from branch `%{target_branch}`"
+msgstr ""
+
+msgid "Notify|%{committed_by_start} by %{author_name} %{committed_by_end} %{committed_at_start} at %{committed_date} %{committed_at_end}"
+msgstr ""
+
+msgid "Notify|%{invite_email}, now known as %{user_name}, has accepted your invitation to join the %{target_name} %{target_model_name}."
+msgstr ""
+
+msgid "Notify|%{invited_user} has %{highlight_start}declined%{highlight_end} your invitation to join the %{target_link} %{target_name}."
+msgstr ""
+
+msgid "Notify|%{issues} imported."
+msgstr ""
+
+msgid "Notify|%{member_link} requested %{member_role} access to the %{target_source_link} %{target_type}."
+msgstr ""
+
+msgid "Notify|%{mr_highlight}Merge request%{highlight_end} %{mr_link} %{reviewer_highlight}was approved by%{highlight_end} %{reviewer_avatar} %{reviewer_link}"
+msgstr ""
+
+msgid "Notify|%{mr_highlight}Merge request%{highlight_end} %{mr_link} %{reviewer_highlight}was unapproved by%{highlight_end} %{reviewer_avatar} %{reviewer_link}"
+msgstr ""
+
+msgid "Notify|%{name} requested a new review on %{mr_link}."
+msgstr ""
+
+msgid "Notify|%{p_start}To update the remote url in your local repository run (for ssh):%{p_end} %{ssh_url_to_repo} %{p_start}or for http(s):%{p_end} %{http_url_to_repo}"
+msgstr ""
+
+msgid "Notify|%{paragraph_start}Hi %{name}!%{paragraph_end} %{paragraph_start}A new public key was added to your account:%{paragraph_end} %{paragraph_start}title: %{key_title}%{paragraph_end} %{paragraph_start}If this key was added in error, you can remove it under %{removal_link}%{paragraph_end}"
+msgstr ""
+
+msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
+msgstr ""
+
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
+msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
+msgstr ""
+
+msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type is empty."
+msgstr ""
+
+msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type is not available. Please check your license and permissions."
+msgstr ""
+
+msgid "Notify|%{strong_open}%{user_name}%{strong_close} updated the custom email address credentials for the Service Desk of %{project_link_start}%{project_name}%{project_link_end} and triggered the verification process."
+msgstr ""
+
+msgid "Notify|%{update_at_start} Last update at %{update_at_mid} %{last_update_at} %{update_at_end}"
+msgstr ""
+
+msgid "Notify|%{updated_by_user_name} pushed new commits to merge request %{mr_link}"
+msgstr ""
+
+msgid "Notify|%{work_items} successfully imported."
+msgstr ""
+
+msgid "Notify|A new GPG key was added to your account:"
+msgstr ""
+
+msgid "Notify|A remote mirror update has failed."
+msgstr ""
+
+msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
+msgstr ""
+
+msgid "Notify|All assignees were removed."
+msgstr ""
+
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgstr ""
+
+msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgstr ""
+
+msgid "Notify|Author: %{author_name}"
+msgstr ""
+
+msgid "Notify|Auto DevOps pipeline was disabled for %{project}"
+msgstr ""
+
+msgid "Notify|CI/CD project settings"
+msgstr ""
+
+msgid "Notify|Check your forwarding settings and make sure the original email sender remains in the %{code_open}From%{code_end} header."
+msgstr ""
+
+msgid "Notify|Click here to set your password"
+msgstr ""
+
+msgid "Notify|Commit Author"
+msgstr ""
+
+msgid "Notify|Committed by"
+msgstr ""
+
+msgid "Notify|Could not find the following %{column} values in %{project}%{parent_groups_clause}: %{error_lines}"
+msgstr ""
+
+msgid "Notify|Don't want to receive updates from GitLab administrators?"
+msgstr ""
+
+msgid "Notify|Email could not be verified"
+msgstr ""
+
+msgid "Notify|Email successfully verified"
+msgstr ""
+
+msgid "Notify|Error parsing CSV file. Please make sure it has the correct format: a delimited text file that uses a comma to separate values."
+msgstr ""
+
+msgid "Notify|Errors found on %{singular_or_plural_line}: %{error_lines}. Please check if these lines have an issue title."
+msgstr ""
+
+msgid "Notify|Errors found on %{singular_or_plural_line}: %{error_lines}. Please check that these lines have the following fields: %{required_headers}."
+msgstr ""
+
+msgid "Notify|Fingerprint: %{fingerprint}"
+msgstr ""
+
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
+msgid "Notify|Here are the results for your CSV import for %{project_link}."
+msgstr ""
+
+msgid "Notify|Here are the results for your CSV import for %{project_name} (%{project_link})."
+msgstr ""
+
+msgid "Notify|Hi %{username}!"
+msgstr ""
+
+msgid "Notify|Hi %{user}!"
+msgstr ""
+
+msgid "Notify|If this key was added in error, you can remove it under %{removal_link}"
+msgstr ""
+
+msgid "Notify|If this was a mistake you can change these settings or deactivate the custom email address in the project settings."
+msgstr ""
+
+msgid "Notify|If you no longer wish to use this domain with GitLab Pages, please remove it from your GitLab project and delete any related DNS records."
+msgstr ""
+
+msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
+msgstr ""
+
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
+msgid "Notify|Incorrect verification token:"
+msgstr ""
+
+msgid "Notify|Invalid credentials:"
+msgstr ""
+
+msgid "Notify|Issue was %{issue_status} by %{updated_by}"
+msgstr ""
+
+msgid "Notify|Issue was moved to another project."
+msgstr ""
+
+msgid "Notify|Learn more about Auto DevOps"
+msgstr ""
+
+msgid "Notify|Logs may contain sensitive data. Please consider before forwarding this email."
+msgstr ""
+
+msgid "Notify|Merge request %{merge_request} can no longer be merged due to conflict."
+msgstr ""
+
+msgid "Notify|Merge request %{merge_request} was %{mr_status} by %{updated_by}"
+msgstr ""
+
+msgid "Notify|Merge request %{merge_request} was merged"
+msgstr ""
+
+msgid "Notify|Merge request %{mr_link} was closed by %{closed_by}"
+msgstr ""
+
+msgid "Notify|Merge request URL: %{merge_request_url}"
+msgstr ""
+
+msgid "Notify|Merge request was approved"
+msgstr ""
+
+msgid "Notify|Merge request was approved (%{approvals}/%{required_approvals})"
+msgstr ""
+
+msgid "Notify|Merge request was unapproved"
+msgstr ""
+
+msgid "Notify|Merge request was unapproved (%{approvals_count}/%{approvals_required})"
+msgstr ""
+
+msgid "Notify|Milestone changed to %{milestone}"
+msgstr ""
+
+msgid "Notify|Milestone removed"
+msgstr ""
+
+msgid "Notify|New issue: %{project_issue_url}"
+msgstr ""
+
+msgid "Notify|No preview for this file type"
+msgstr ""
+
+msgid "Notify|No work items have been imported."
+msgstr ""
+
+msgid "Notify|Pipeline %{pipeline_link} triggered by"
+msgstr ""
+
+msgid "Notify|Pipeline %{pipeline_name_or_id} has failed!"
+msgstr ""
+
+msgid "Notify|Pipeline %{pipeline_name_or_id} has passed!"
+msgstr ""
+
+msgid "Notify|Pipeline has been fixed and %{pipeline_name_or_id} has passed!"
+msgstr ""
+
+msgid "Notify|Please check that your service provider supports email subaddressing and that you have set up email forwarding correctly."
+msgstr ""
+
+msgid "Notify|Please fix the errors above and try the CSV import again."
+msgstr ""
+
+msgid "Notify|Please fix the lines with errors and try the CSV import again."
+msgstr ""
+
+msgid "Notify|Project %{old_path_with_namespace} was moved to another location."
+msgstr ""
+
+msgid "Notify|Project %{project_name} couldn't be exported."
+msgstr ""
+
+msgid "Notify|Project %{project_name} was exported successfully."
+msgstr ""
+
+msgid "Notify|Read timeout:"
+msgstr ""
+
+msgid "Notify|Remote mirror"
+msgstr ""
+
+msgid "Notify|SMTP host issue:"
+msgstr ""
+
+msgid "Notify|Some values in the \"type\" column could not be matched with supported work item types:"
+msgstr ""
+
+msgid "Notify|The Administrator created an account for you. Now you are a member of the company GitLab application."
+msgstr ""
+
+msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
+msgstr ""
+
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "Notify|The diff for this file was not included because it is too large."
+msgstr ""
+
+msgid "Notify|The diff was not included because it is too large."
+msgstr ""
+
+msgid "Notify|The download link will expire in 24 hours."
+msgstr ""
+
+msgid "Notify|The errors we encountered were:"
+msgstr ""
+
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr ""
+
+msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
+msgstr ""
+
+msgid "Notify|The provided custom email address is %{strong_open}%{email_address}%{strong_close} and uses the SMTP host %{strong_open}%{smtp_host}%{strong_close}."
+msgstr ""
+
+msgid "Notify|The push did not contain any new commits, but force pushed to delete the commits and changes below."
+msgstr ""
+
+msgid "Notify|This issue is due on: %{issue_due_date}"
+msgstr ""
+
+msgid "Notify|This link is valid for %{password_reset_token_valid_time}."
+msgstr ""
+
+msgid "Notify|To enable the custom email address, go to your %{settings_link_start}project's Service Desk settings page%{settings_link_end}."
+msgstr ""
+
+msgid "Notify|To restart the verification process, go to your %{settings_link_start}project's Service Desk settings page%{settings_link_end}."
+msgstr ""
+
+msgid "Notify|Unless you verify your domain by %{time_start}%{time}%{time_end} it will be removed from your GitLab project."
+msgstr ""
+
+msgid "Notify|Verification email not received within timeframe:"
+msgstr ""
+
+msgid "Notify|Verification for custom email %{email} for %{project_name} triggered"
+msgstr ""
+
+msgid "Notify|Verification result for custom email %{email} for %{project_name}"
+msgstr ""
+
+msgid "Notify|Verify custom email address %{email} for %{project_name}"
+msgstr ""
+
+msgid "Notify|We could not verify that we received the email we sent to your email inbox."
+msgstr ""
+
+msgid "Notify|We could not verify your email address %{strong_open}%{email_address}%{strong_close} for the Service Desk of %{project_link_start}%{project_name}%{project_link_end}."
+msgstr ""
+
+msgid "Notify|We did not receive the verification email we sent out to %{strong_open}%{email_address}%{strong_close} in time."
+msgstr ""
+
+msgid "Notify|We wait for 30 minutes for messages to appear in your instance's Service Desk inbox."
+msgstr ""
+
+msgid "Notify|We were not able to make a connection to the specified host or there was an SSL issue."
+msgstr ""
+
+msgid "Notify|You don't have access to the project."
+msgstr ""
+
+msgid "Notify|You have been mentioned in an issue."
+msgstr ""
+
+msgid "Notify|You have been mentioned in merge request %{mr_link}"
+msgstr ""
+
+msgid "Notify|You have been unsubscribed from receiving GitLab administrator notifications."
+msgstr ""
+
+msgid "Notify|Your CSV import for project %{project_link} has been completed."
+msgstr ""
+
+msgid "Notify|Your account has been created successfully."
+msgstr ""
+
+msgid "Notify|Your email address %{strong_open}%{email_address}%{strong_close} for the Service Desk of %{project_link_start}%{project_name}%{project_link_end} was verified successfully."
+msgstr ""
+
+msgid "Notify|Your request to join the %{target_to_join} %{target_type} has been %{denied_tag}."
+msgstr ""
+
+msgid "Notify|currently supported languages"
+msgstr ""
+
+msgid "Notify|deleted"
+msgstr ""
+
+msgid "Notify|login.........................................."
+msgstr ""
+
+msgid "Notify|pushed new"
+msgstr ""
+
+msgid "Notify|pushed to"
+msgstr ""
+
+msgid "Notify|successfully completed %{jobs} in %{stages}."
+msgstr ""
+
+msgid "Nov"
+msgstr ""
+
+msgid "November"
+msgstr ""
+
+msgid "Now, personalize your GitLab experience"
+msgstr ""
+
+msgid "Number of Elasticsearch shards and replicas per index:"
+msgstr ""
+
+msgid "Number of Git pushes after which Gitaly is asked to optimize a repository."
+msgstr ""
+
+msgid "Number of LOCs per commit"
+msgstr ""
+
+msgid "Number of Reports"
+msgstr ""
+
+msgid "Number of commits"
+msgstr ""
+
+msgid "Number of commits per MR"
+msgstr ""
+
+msgid "Number of employees"
+msgstr ""
+
+msgid "Number of files touched"
+msgstr ""
+
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
+msgid "Number of replicas"
+msgstr ""
+
+msgid "Number of shards"
+msgstr ""
+
+msgid "Number of shards for non-code indexing"
+msgstr ""
+
+msgid "OK"
+msgstr ""
+
+msgid "OKRs|%{author_link}'s OKR %{work_item_link} requires an update."
+msgstr ""
+
+msgid "OKRs|An update is due on: %{update_due_date}"
+msgstr ""
+
+msgid "OWASP Top 10 2017"
+msgstr ""
+
+msgid "OWASP Top 10 2021"
+msgstr ""
+
+msgid "Object does not exist on the server or you don't have permissions to access it"
+msgstr ""
+
+msgid "ObservabilityMetrics|Date"
+msgstr ""
+
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
+msgstr ""
+
+msgid "ObservabilityMetrics|Metrics"
+msgstr ""
+
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
+msgid "Observability|Enable"
+msgstr ""
+
+msgid "Observability|Error: Failed to enable GitLab Observability. Please retry later."
+msgstr ""
+
+msgid "Observability|Error: Failed to load page. Try reloading the page."
+msgstr ""
+
+msgid "Observability|Get started with GitLab Observability"
+msgstr ""
+
+msgid "Observability|Monitor your applications with GitLab Observability."
+msgstr ""
+
+msgid "Oct"
+msgstr ""
+
+msgid "October"
+msgstr ""
+
+msgid "Off"
+msgstr ""
+
+msgid "Offline"
+msgstr ""
+
+msgid "Oh no!"
+msgstr ""
+
+msgid "Okay"
+msgstr ""
+
+msgid "Oldest first"
+msgstr ""
+
+msgid "OmniAuth"
+msgstr ""
+
+msgid "On"
+msgstr ""
+
+msgid "On %{end_date}, your trial will end and %{namespace_name} will be limited to %{free_user_limit} member"
+msgid_plural "On %{end_date}, your trial will end and %{namespace_name} will be limited to %{free_user_limit} members"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "On the left sidebar, select %{merge_requests_link} to view them."
+msgstr ""
+
+msgid "On track"
+msgstr ""
+
+msgid "On-call Schedules"
+msgstr ""
+
+msgid "On-call schedules"
+msgstr ""
+
+msgid "On-demand scans run outside of the DevOps cycle and find vulnerabilities in your projects"
+msgstr ""
+
+msgid "OnCallScheduless|Any escalation rules that are using this schedule will also be deleted."
+msgstr ""
+
+msgid "OnCallSchedules|1 day"
+msgstr ""
+
+msgid "OnCallSchedules|2 weeks"
+msgstr ""
+
+msgid "OnCallSchedules|Add a rotation"
+msgstr ""
+
+msgid "OnCallSchedules|Add an additional schedule to your project"
+msgstr ""
+
+msgid "OnCallSchedules|Add rotation"
+msgstr ""
+
+msgid "OnCallSchedules|Add schedule"
+msgstr ""
+
+msgid "OnCallSchedules|Are you sure you want to delete the \"%{deleteRotation}\" rotation? This action cannot be undone."
+msgstr ""
+
+msgid "OnCallSchedules|Are you sure you want to delete the \"%{deleteSchedule}\" schedule? This action cannot be undone."
+msgstr ""
+
+msgid "OnCallSchedules|Collapse schedule"
+msgstr ""
+
+msgid "OnCallSchedules|Create on-call schedules in GitLab"
+msgstr ""
+
+msgid "OnCallSchedules|Currently no rotation"
+msgstr ""
+
+msgid "OnCallSchedules|Delete rotation"
+msgstr ""
+
+msgid "OnCallSchedules|Delete schedule"
+msgstr ""
+
+msgid "OnCallSchedules|Edit rotation"
+msgstr ""
+
+msgid "OnCallSchedules|Edit schedule"
+msgstr ""
+
+msgid "OnCallSchedules|Enable end date"
+msgstr ""
+
+msgid "OnCallSchedules|Expand schedule"
+msgstr ""
+
+msgid "OnCallSchedules|Failed to add rotation"
+msgstr ""
+
+msgid "OnCallSchedules|Failed to add schedule"
+msgstr ""
+
+msgid "OnCallSchedules|Failed to edit schedule"
+msgstr ""
+
+msgid "OnCallSchedules|For this rotation, on-call will be:"
+msgstr ""
+
+msgid "OnCallSchedules|On-call schedule %{obstacle} in project %{project}"
+msgstr ""
+
+msgid "OnCallSchedules|On-call schedules"
+msgstr ""
+
+msgid "OnCallSchedules|Please note, rotations with shifts that are less than four hours are currently not supported in the weekly view."
+msgstr ""
+
+msgid "OnCallSchedules|Removing this user may put their on-call team at risk of missing a notification."
+msgstr ""
+
+msgid "OnCallSchedules|Removing yourself may put your on-call team at risk of missing a notification."
+msgstr ""
+
+msgid "OnCallSchedules|Restrict to time intervals"
+msgstr ""
+
+msgid "OnCallSchedules|Rotation end date/time must come after start date/time"
+msgstr ""
+
+msgid "OnCallSchedules|Rotation length"
+msgstr ""
+
+msgid "OnCallSchedules|Rotation length must be a positive number"
+msgstr ""
+
+msgid "OnCallSchedules|Rotation name cannot be empty"
+msgstr ""
+
+msgid "OnCallSchedules|Rotation participants cannot be empty"
+msgstr ""
+
+msgid "OnCallSchedules|Rotation start date cannot be empty"
+msgstr ""
+
+msgid "OnCallSchedules|Rotations"
+msgstr ""
+
+msgid "OnCallSchedules|Route alerts directly to specific members of your team"
+msgstr ""
+
+msgid "OnCallSchedules|Route alerts directly to specific members of your team. To access this feature, ask %{linkStart}a project Owner%{linkEnd} to grant you at least the Maintainer role."
+msgstr ""
+
+msgid "OnCallSchedules|Select participant"
+msgstr ""
+
+msgid "OnCallSchedules|Select timezone"
+msgstr ""
+
+msgid "OnCallSchedules|Sets the default timezone for the schedule, for all participants"
+msgstr ""
+
+msgid "OnCallSchedules|Successfully created a new rotation"
+msgstr ""
+
+msgid "OnCallSchedules|Successfully edited your rotation"
+msgstr ""
+
+msgid "OnCallSchedules|The rotation could not be deleted. Please try again."
+msgstr ""
+
+msgid "OnCallSchedules|The rotation could not be updated. Please try again."
+msgstr ""
+
+msgid "OnCallSchedules|The schedule could not be deleted. Please try again."
+msgstr ""
+
+msgid "OnCallSchedules|The schedule could not be updated. Please try again."
+msgstr ""
+
+msgid "OnCallSchedules|Try adding a rotation"
+msgstr ""
+
+msgid "OnCallSchedules|User %{name} is currently part of:"
+msgstr ""
+
+msgid "OnCallSchedules|View next timeframe"
+msgstr ""
+
+msgid "OnCallSchedules|View previous timeframe"
+msgstr ""
+
+msgid "OnCallSchedules|You are currently a part of:"
+msgstr ""
+
+msgid "OnCallSchedules|Your schedule has been successfully created. To add individual users to this schedule, use the Add a rotation button. To enable notifications for this schedule, you must also create an %{linkStart}escalation policy%{linkEnd}."
+msgstr ""
+
+msgid "OnDemandScans|%{learnMoreLinkStart}Learn more about on-demand scans%{learnMoreLinkEnd}."
+msgstr ""
+
+msgid "OnDemandScans|%{profileType} profile library"
+msgstr ""
+
+msgid "OnDemandScans|%{textStart}Tags specify which runners process this scan. Runners must have every tag selected.%{textEnd} %{linkStart}What are runner tags?%{linkEnd}"
+msgstr ""
+
+msgid "OnDemandScans|Add a schedule to run this scan at a specified date and time or on a recurring basis. Scheduled scans are automatically saved to scan library."
+msgstr ""
+
+msgid "OnDemandScans|Analyze a deployed version of your web application for known vulnerabilities by examining it from the outside in. DAST works by simulating external attacks on your application while it is running."
+msgstr ""
+
+msgid "OnDemandScans|Are you sure you want to delete this scan?"
+msgstr ""
+
+msgid "OnDemandScans|Cancel"
+msgstr ""
+
+msgid "OnDemandScans|Could not delete saved scan. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "OnDemandScans|Could not fetch on-demand scans. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "OnDemandScans|Could not fetch scanner profiles. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "OnDemandScans|Could not fetch site profiles. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "OnDemandScans|Could not run the scan. Please try again."
+msgstr ""
+
+msgid "OnDemandScans|DAST configuration"
+msgstr ""
+
+msgid "OnDemandScans|DAST scans for vulnerabilities in your project's running application, website, or API. For details of all configuration options, see the %{linkStart}GitLab DAST documentation%{linkEnd}."
+msgstr ""
+
+msgid "OnDemandScans|Define the fundamental configuration options for your on-demand scan."
+msgstr ""
+
+msgid "OnDemandScans|Delete profile"
+msgstr ""
+
+msgid "OnDemandScans|Description"
+msgstr ""
+
+msgid "OnDemandScans|Discard changes"
+msgstr ""
+
+msgid "OnDemandScans|Do you want to discard the changes or keep editing this profile? Unsaved changes will be lost."
+msgstr ""
+
+msgid "OnDemandScans|Dynamic Application Security Testing (DAST)"
+msgstr ""
+
+msgid "OnDemandScans|Edit %{profileType} profile"
+msgstr ""
+
+msgid "OnDemandScans|Edit on-demand DAST scan"
+msgstr ""
+
+msgid "OnDemandScans|Edit on-demand scan"
+msgstr ""
+
+msgid "OnDemandScans|Edit profile"
+msgstr ""
+
+msgid "OnDemandScans|Enable scan schedule"
+msgstr ""
+
+msgid "OnDemandScans|For example: Tests the login page for SQL injections"
+msgstr ""
+
+msgid "OnDemandScans|Keep editing"
+msgstr ""
+
+msgid "OnDemandScans|My daily scan"
+msgstr ""
+
+msgid "OnDemandScans|New %{profileType} profile"
+msgstr ""
+
+msgid "OnDemandScans|New on-demand DAST scan"
+msgstr ""
+
+msgid "OnDemandScans|New on-demand scan"
+msgstr ""
+
+msgid "OnDemandScans|New profile"
+msgstr ""
+
+msgid "OnDemandScans|New scan"
+msgstr ""
+
+msgid "OnDemandScans|No %{profileType} profiles found for DAST"
+msgstr ""
+
+msgid "OnDemandScans|On-demand Scans"
+msgstr ""
+
+msgid "OnDemandScans|On-demand scans"
+msgstr ""
+
+msgid "OnDemandScans|On-demand scans run outside of DevOps cycle and find vulnerabilities in your projects. %{learnMoreLinkStart}Learn more%{learnMoreLinkEnd}."
+msgstr ""
+
+msgid "OnDemandScans|On-demand scans run outside the DevOps cycle and find vulnerabilities in your projects. %{learnMoreLinkStart}Learn more%{learnMoreLinkEnd}"
+msgstr ""
+
+msgid "OnDemandScans|Only project owners and maintainers can select runner tags."
+msgstr ""
+
+msgid "OnDemandScans|Pre-scan verification for %{profile_name} completed with"
+msgstr ""
+
+msgid "OnDemandScans|Repeats"
+msgstr ""
+
+msgid "OnDemandScans|Run scan"
+msgstr ""
+
+msgid "OnDemandScans|Runner tags"
+msgstr ""
+
+msgid "OnDemandScans|Save and run scan"
+msgstr ""
+
+msgid "OnDemandScans|Save scan"
+msgstr ""
+
+msgid "OnDemandScans|Scan configuration"
+msgstr ""
+
+msgid "OnDemandScans|Scan library"
+msgstr ""
+
+msgid "OnDemandScans|Scan name"
+msgstr ""
+
+msgid "OnDemandScans|Scan results will be associated with the selected branch."
+msgstr ""
+
+msgid "OnDemandScans|Scan schedule"
+msgstr ""
+
+msgid "OnDemandScans|Scan type"
+msgstr ""
+
+msgid "OnDemandScans|Select runner tags"
+msgstr ""
+
+msgid "OnDemandScans|Start by creating a new profile. Profiles make it easy to save and reuse configuration details for GitLab’s security tools."
+msgstr ""
+
+msgid "OnDemandScans|Start time"
+msgstr ""
+
+msgid "OnDemandScans|Target"
+msgstr ""
+
+msgid "OnDemandScans|The scan could not be canceled."
+msgstr ""
+
+msgid "OnDemandScans|The scan could not be retried."
+msgstr ""
+
+msgid "OnDemandScans|There are no finished scans."
+msgstr ""
+
+msgid "OnDemandScans|There are no running scans."
+msgstr ""
+
+msgid "OnDemandScans|There are no saved scans."
+msgstr ""
+
+msgid "OnDemandScans|There are no scheduled scans."
+msgstr ""
+
+msgid "OnDemandScans|Timezone"
+msgstr ""
+
+msgid "OnDemandScans|Unable to fetch runner tags. Try reloading the page."
+msgstr ""
+
+msgid "OnDemandScans|Verify configuration"
+msgstr ""
+
+msgid "OnDemandScans|View results"
+msgstr ""
+
+msgid "OnDemandScans|You cannot perform any action on this page because you only have %{linkStart}auditor-level access%{linkEnd} and are not a member of the project."
+msgstr ""
+
+msgid "OnDemandScans|You have unsaved changes"
+msgstr ""
+
+msgid "OnDemandScans|You must create a repository within your project to run an on-demand scan."
+msgstr ""
+
+msgid "OnDemandScans|at"
+msgstr ""
+
+msgid "Once imported, repositories can be mirrored over SSH. Read more %{link_start}here%{link_end}."
+msgstr ""
+
+msgid "One more item"
+msgid_plural "%d more items"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "One or more arguments are invalid: %{args}."
+msgstr ""
+
+msgid "One or more contacts were successfully added."
+msgstr ""
+
+msgid "One or more contacts were successfully removed."
+msgstr ""
+
+msgid "One or more groups that you don't have access to."
+msgstr ""
+
+msgid "One or more of you personal access tokens were revoked"
+msgstr ""
+
+msgid "One or more of your %{provider} projects cannot be imported into GitLab directly because they use Subversion or Mercurial for version control, rather than Git."
+msgstr ""
+
+msgid "One or more of your dependency files are not supported, and the dependency list may be incomplete. Below is a list of supported file types."
+msgstr ""
+
+msgid "One or more of your personal access tokens has expired."
+msgstr ""
+
+msgid "One or more of your personal access tokens have expired."
+msgstr ""
+
+msgid "One or more of your personal access tokens will expire in %{days_to_expire} days or less:"
+msgstr ""
+
+msgid "One or more of your resource access tokens will expire in %{days_to_expire} or less:"
+msgstr ""
+
+msgid "Only %{workspaceType} members with %{permissions} can view or be notified about this %{issuableType}."
+msgstr ""
+
+msgid "Only 'Reporter' roles and above on tiers Premium and above can see Value Stream Analytics."
+msgstr ""
+
+msgid "Only 1 appearances row can exist"
+msgstr ""
+
+msgid "Only HTTP(S)"
+msgstr ""
+
+msgid "Only Issue ID or merge request ID is required"
+msgstr ""
+
+msgid "Only Project Members"
+msgstr ""
+
+msgid "Only SSH"
+msgstr ""
+
+msgid "Only SSH Certificates"
+msgstr ""
+
+msgid "Only accessible by %{membersPageLinkStart}project members%{membersPageLinkEnd}. Membership must be explicitly granted to each user."
+msgstr ""
+
+msgid "Only active projects show up in the search and on the dashboard."
+msgstr ""
+
+msgid "Only effective when remote storage is enabled. Set to 0 for no size limit."
+msgstr ""
+
+msgid "Only include features new to your current subscription tier."
+msgstr ""
+
+msgid "Only log Akismet verdict, do not prevent issue or snippet creation when spam is detected."
+msgstr ""
+
+msgid "Only members of this group can access the wiki."
+msgstr ""
+
+msgid "Only one security policy bot is allowed per project"
+msgstr ""
+
+msgid "Only one source is required but both were provided"
+msgstr ""
+
+msgid "Only policy:"
+msgstr ""
+
+msgid "Only proceed if you trust %{idp_url} to control your GitLab account sign in."
+msgstr ""
+
+msgid "Only project members can comment."
+msgstr ""
+
+msgid "Only projects created under a Ultimate license are available in Security Dashboards."
+msgstr ""
+
+msgid "Only reCAPTCHA v2 is supported:"
+msgstr ""
+
+msgid "Only required if not using role instance credentials."
+msgstr ""
+
+msgid "Only use lowercase letters, numbers, and underscores."
+msgstr ""
+
+msgid "Only verified users with an email address in any of these domains can be added to the group. Multiple domains are supported."
+msgstr ""
+
+msgid "Only visible to you"
+msgstr ""
+
+msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
+msgstr ""
+
+msgid "Open"
+msgstr ""
+
+msgid "Open Selection"
+msgstr ""
+
+msgid "Open color picker"
+msgstr ""
+
+msgid "Open errors"
+msgstr ""
+
+msgid "Open evidence JSON in new tab"
+msgstr ""
+
+msgid "Open full view"
+msgstr ""
+
+msgid "Open in Gitpod"
+msgstr ""
+
+msgid "Open in Web IDE"
+msgstr ""
+
+msgid "Open in file view"
+msgstr ""
+
+msgid "Open in your IDE"
+msgstr ""
+
+msgid "Open new window"
+msgstr ""
+
+msgid "Open raw"
+msgstr ""
+
+msgid "Open: %{open}"
+msgstr ""
+
+msgid "OpenAPI"
+msgstr ""
+
+msgid "OpenAPI Specification file URL"
+msgstr ""
+
+msgid "OpenAPI Specification file path or URL"
+msgstr ""
+
+msgid "OpenSearch's region."
+msgstr ""
+
+msgid "Opened"
+msgstr ""
+
+msgid "OpenedNDaysAgo|Created"
+msgstr ""
+
+msgid "Opens in a new window"
+msgstr ""
+
+msgid "Opens new window"
+msgstr ""
+
+msgid "Operation not allowed"
+msgstr ""
+
+msgid "Operations"
+msgstr ""
+
+msgid "Operations Dashboard"
+msgstr ""
+
+msgid "OperationsDashboard|Add a project to the dashboard"
+msgstr ""
+
+msgid "OperationsDashboard|Add projects"
+msgstr ""
+
+msgid "OperationsDashboard|More information"
+msgstr ""
+
+msgid "OperationsDashboard|Operations Dashboard"
+msgstr ""
+
+msgid "OperationsDashboard|The Operations and Environments dashboards share the same list of projects. When you add or remove a project from one, GitLab adds or removes the project from the other. %{linkStart}More information%{linkEnd}"
+msgstr ""
+
+msgid "OperationsDashboard|The operations dashboard provides a summary of each project's operational health, including pipeline and alert statuses."
+msgstr ""
+
+msgid "Opstrace endpoint for Error Tracking integration"
+msgstr ""
+
+msgid "Optimize repository period"
+msgstr ""
+
+msgid "Optimize your workflow with CI/CD Pipelines"
+msgstr ""
+
+msgid "Optional"
+msgstr ""
+
+msgid "Optionally, you can %{link_to_customize} how FogBugz email addresses and usernames are imported into GitLab."
+msgstr ""
+
+msgid "Options"
+msgstr ""
+
+msgid "Or create your own GitLab account:"
+msgstr ""
+
+msgid "Ordered list"
+msgstr ""
+
+msgid "Organization"
+msgstr ""
+
+msgid "Organizations"
+msgstr ""
+
+msgid "Organization|%{linkStart}Organizations%{linkEnd} are a top-level container to hold your groups and projects."
+msgstr ""
+
+msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
+msgstr ""
+
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
+msgid "Organization|An error occurred creating an organization. Please try again."
+msgstr ""
+
+msgid "Organization|An error occurred loading the groups. Please refresh the page to try again."
+msgstr ""
+
+msgid "Organization|An error occurred loading the organization users. Please refresh the page to try again."
+msgstr ""
+
+msgid "Organization|An error occurred loading the projects. Please refresh the page to try again."
+msgstr ""
+
+msgid "Organization|An error occurred loading user organizations. Please refresh the page to try again."
+msgstr ""
+
+msgid "Organization|An error occurred updating your organization. Please try again."
+msgstr ""
+
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
+msgid "Organization|Choose what organization you want to see by default."
+msgstr ""
+
+msgid "Organization|Copy organization ID"
+msgstr ""
+
+msgid "Organization|Create an organization to contain all of your groups and projects."
+msgstr ""
+
+msgid "Organization|Create organization"
+msgstr ""
+
+msgid "Organization|Frequently visited groups"
+msgstr ""
+
+msgid "Organization|Frequently visited projects"
+msgstr ""
+
+msgid "Organization|Get started with organizations"
+msgstr ""
+
+msgid "Organization|Home organization"
+msgstr ""
+
+msgid "Organization|Manage"
+msgstr ""
+
+msgid "Organization|Must start with a letter, digit, emoji, or underscore. Can also contain periods, dashes, spaces, and parentheses."
+msgstr ""
+
+msgid "Organization|My organization"
+msgstr ""
+
+msgid "Organization|New organization"
+msgstr ""
+
+msgid "Organization|Org ID"
+msgstr ""
+
+msgid "Organization|Organization ID"
+msgstr ""
+
+msgid "Organization|Organization URL"
+msgstr ""
+
+msgid "Organization|Organization URL is required."
+msgstr ""
+
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
+msgstr ""
+
+msgid "Organization|Organization name"
+msgstr ""
+
+msgid "Organization|Organization name is required."
+msgstr ""
+
+msgid "Organization|Organization navigation"
+msgstr ""
+
+msgid "Organization|Organization overview"
+msgstr ""
+
+msgid "Organization|Organization settings"
+msgstr ""
+
+msgid "Organization|Organization successfully created."
+msgstr ""
+
+msgid "Organization|Organization was successfully updated."
+msgstr ""
+
+msgid "Organization|Organizations"
+msgstr ""
+
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
+msgid "Organization|Public - The organization can be accessed without any authentication."
+msgstr ""
+
+msgid "Organization|Search for an organization"
+msgstr ""
+
+msgid "Organization|Search or filter list"
+msgstr ""
+
+msgid "Organization|Select an organization"
+msgstr ""
+
+msgid "Organization|Unable to fetch organizations. Reload the page to try again."
+msgstr ""
+
+msgid "Organization|Update your organization name, description, and avatar."
+msgstr ""
+
+msgid "Organization|View all"
+msgstr ""
+
+msgid "Organization|You can now start using your new organization."
+msgstr ""
+
+msgid "Organization|You don't have any groups yet."
+msgstr ""
+
+msgid "Organization|You don't have any projects yet."
+msgstr ""
+
+msgid "Organization|my-organization"
+msgstr ""
+
+msgid "Orphaned member"
+msgstr ""
+
+msgid "Other"
+msgstr ""
+
+msgid "Other available runners"
+msgstr ""
+
+msgid "Other information"
+msgstr ""
+
+msgid "Other labels"
+msgstr ""
+
+msgid "Other merge requests block this MR"
+msgstr ""
+
+msgid "Other versions"
+msgstr ""
+
+msgid "Other visibility settings have been disabled by the administrator."
+msgstr ""
+
+msgid "Otherwise, click the link below to complete the process."
+msgstr ""
+
+msgid "Otherwise, click the link below to complete the process:"
+msgstr ""
+
+msgid "Our team has been notified. Please try again."
+msgstr ""
+
+msgid "Out-of-compliance with this project's policies and should be removed"
+msgstr ""
+
+msgid "OutboundRequests|Allow requests to the local network from hooks and integrations."
+msgstr ""
+
+msgid "OutboundRequests|Allow requests to the local network from system hooks"
+msgstr ""
+
+msgid "OutboundRequests|Allow requests to the local network from webhooks and integrations"
+msgstr ""
+
+msgid "OutboundRequests|Block all requests, except for IP addresses, IP ranges, and domain names defined in the allowlist"
+msgstr ""
+
+msgid "OutboundRequests|Enforce DNS-rebinding attack protection"
+msgstr ""
+
+msgid "OutboundRequests|Local IP addresses and domain names that hooks and integrations can access"
+msgstr ""
+
+msgid "OutboundRequests|Outbound requests"
+msgstr ""
+
+msgid "OutboundRequests|Requests can be made to these IP addresses and domains even when local requests are not allowed. IP ranges such as %{code_start}1:0:0:0:0:0:0:0/124%{code_end} and %{code_start}127.0.0.0/28%{code_end} are supported. Domain wildcards are not supported. To separate entries, use commas, semicolons, or newlines. The allowlist can have a maximum of 1000 entries. Domains must be IDNA-encoded."
+msgstr ""
+
+msgid "OutboundRequests|Resolve IP addresses for outbound requests to prevent DNS-rebinding attacks."
+msgstr ""
+
+msgid "OutboundRequests|Webhooks and integrations might not work properly."
+msgstr ""
+
+msgid "OutdatedBrowser|GitLab may not work properly, because you are using an outdated web browser."
+msgstr ""
+
+msgid "OutdatedBrowser|Please install a %{browser_link_start}supported web browser%{browser_link_end} for a better experience."
+msgstr ""
+
+msgid "Outdent line"
+msgstr ""
+
+msgid "Overridden"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Overwrite diverged branches"
+msgstr ""
+
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
+msgid "Owned by %{image_tag}"
+msgstr ""
+
+msgid "Owned by anyone"
+msgstr ""
+
+msgid "Owned by me"
+msgstr ""
+
+msgid "Owned by:"
+msgstr ""
+
+msgid "Owner"
+msgstr ""
+
+msgid "Owners and administrators"
+msgstr ""
+
+msgid "Owners can modify this selection."
+msgstr ""
+
+msgid "PQL|An error occurred while sending hand raise lead."
+msgstr ""
+
+msgid "PQL|By providing my contact information, I agree GitLab may contact me via email about its product, services and events. You may opt-out at any time by unsubscribing in emails or visiting our communication preference center."
+msgstr ""
+
+msgid "PQL|Cancel"
+msgstr ""
+
+msgid "PQL|Contact our Sales team"
+msgstr ""
+
+msgid "PQL|Contact sales"
+msgstr ""
+
+msgid "PQL|Hello %{userName}. Before putting you in touch with our sales team, we would like you to verify and complete the information below."
+msgstr ""
+
+msgid "PQL|Message for the Sales team (optional)"
+msgstr ""
+
+msgid "PQL|Please select a city or state"
+msgstr ""
+
+msgid "PQL|Submit information"
+msgstr ""
+
+msgid "PQL|Thank you for reaching out! Our sales team will get back to you soon."
+msgstr ""
+
+msgid "Package Registry"
+msgstr ""
+
+msgid "Package Registry: authenticated API requests"
+msgstr ""
+
+msgid "Package Registry: unauthenticated API requests"
+msgstr ""
+
+msgid "Package already exists"
+msgstr ""
+
+msgid "Package deleted successfully"
+msgstr ""
+
+msgid "Package file size limits"
+msgstr ""
+
+msgid "Package name of the app in Google Play."
+msgstr ""
+
+msgid "Package recipe already exists"
+msgstr ""
+
+msgid "Package registry rate limits"
+msgstr ""
+
+msgid "Package registry types for which metadata is stored, required for License Compliance for CycloneDX files."
+msgstr ""
+
+msgid "Package type"
+msgstr ""
+
+msgid "Package type must be Composer"
+msgstr ""
+
+msgid "Package type must be Conan"
+msgstr ""
+
+msgid "Package type must be Debian"
+msgstr ""
+
+msgid "Package type must be Helm"
+msgstr ""
+
+msgid "Package type must be Maven"
+msgstr ""
+
+msgid "Package type must be NPM"
+msgstr ""
+
+msgid "Package type must be NuGet"
+msgstr ""
+
+msgid "Package type must be PyPi"
+msgstr ""
+
+msgid "Package type must be RPM"
+msgstr ""
+
+msgid "Package type must be RubyGems"
+msgstr ""
+
+msgid "PackageRegistry|%{name} version %{version} was first created %{datetime}"
+msgstr ""
+
+msgid "PackageRegistry|Add Conan Remote"
+msgstr ""
+
+msgid "PackageRegistry|Add Gradle Groovy DSL repository command"
+msgstr ""
+
+msgid "PackageRegistry|Add Gradle Kotlin DSL repository command"
+msgstr ""
+
+msgid "PackageRegistry|Add NuGet Source"
+msgstr ""
+
+msgid "PackageRegistry|Add composer registry"
+msgstr ""
+
+msgid "PackageRegistry|Additional metadata"
+msgstr ""
+
+msgid "PackageRegistry|Allow duplicates"
+msgstr ""
+
+msgid "PackageRegistry|Allow packages with the same name and version to be uploaded to the registry. The newest version of a package is always used when installing."
+msgstr ""
+
+msgid "PackageRegistry|App group: %{group}"
+msgstr ""
+
+msgid "PackageRegistry|App name: %{name}"
+msgstr ""
+
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
+msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
+msgstr ""
+
+msgid "PackageRegistry|Composer"
+msgstr ""
+
+msgid "PackageRegistry|Composer.json with license: %{license} and version: %{version}"
+msgstr ""
+
+msgid "PackageRegistry|Conan"
+msgstr ""
+
+msgid "PackageRegistry|Conan Command"
+msgstr ""
+
+msgid "PackageRegistry|Configure in settings"
+msgstr ""
+
+msgid "PackageRegistry|Configure package forwarding and package file size limits."
+msgstr ""
+
+msgid "PackageRegistry|Copy .pypirc content"
+msgstr ""
+
+msgid "PackageRegistry|Copy Conan Command"
+msgstr ""
+
+msgid "PackageRegistry|Copy Conan Setup Command"
+msgstr ""
+
+msgid "PackageRegistry|Copy Gradle Groovy DSL install command"
+msgstr ""
+
+msgid "PackageRegistry|Copy Gradle Kotlin DSL install command"
+msgstr ""
+
+msgid "PackageRegistry|Copy Maven XML"
+msgstr ""
+
+msgid "PackageRegistry|Copy Maven command"
+msgstr ""
+
+msgid "PackageRegistry|Copy Maven registry XML"
+msgstr ""
+
+msgid "PackageRegistry|Copy NuGet Command"
+msgstr ""
+
+msgid "PackageRegistry|Copy NuGet Setup Command"
+msgstr ""
+
+msgid "PackageRegistry|Copy Pip command"
+msgstr ""
+
+msgid "PackageRegistry|Copy SHA"
+msgstr ""
+
+msgid "PackageRegistry|Copy add Gradle Groovy DSL repository command"
+msgstr ""
+
+msgid "PackageRegistry|Copy add Gradle Kotlin DSL repository command"
+msgstr ""
+
+msgid "PackageRegistry|Copy and paste this inside your %{codeStart}pom.xml%{codeEnd} %{codeStart}dependencies%{codeEnd} block."
+msgstr ""
+
+msgid "PackageRegistry|Copy npm command"
+msgstr ""
+
+msgid "PackageRegistry|Copy npm setup command"
+msgstr ""
+
+msgid "PackageRegistry|Copy registry include"
+msgstr ""
+
+msgid "PackageRegistry|Copy require package include"
+msgstr ""
+
+msgid "PackageRegistry|Copy target SHA"
+msgstr ""
+
+msgid "PackageRegistry|Copy yarn command"
+msgstr ""
+
+msgid "PackageRegistry|Copy yarn setup command"
+msgstr ""
+
+msgid "PackageRegistry|Created by commit %{link} on branch %{branch}"
+msgstr ""
+
+msgid "PackageRegistry|Debian"
+msgstr ""
+
+msgid "PackageRegistry|Delete %{count} assets"
+msgstr ""
+
+msgid "PackageRegistry|Delete Package Version"
+msgstr ""
+
+msgid "PackageRegistry|Delete asset"
+msgstr ""
+
+msgid "PackageRegistry|Delete package"
+msgstr ""
+
+msgid "PackageRegistry|Delete package asset"
+msgstr ""
+
+msgid "PackageRegistry|Delete package version"
+msgstr ""
+
+msgid "PackageRegistry|Delete packages"
+msgstr ""
+
+msgid "PackageRegistry|Delete selected"
+msgstr ""
+
+msgid "PackageRegistry|Delete this package"
+msgstr ""
+
+msgid "PackageRegistry|Deleting all package assets will remove version %{version} of %{name}. Are you sure?"
+msgstr ""
+
+msgid "PackageRegistry|Deleting the last package asset will remove version %{version} of %{name}. Are you sure?"
+msgstr ""
+
+msgid "PackageRegistry|Deleting this package while request forwarding is enabled for the project can pose a security risk. Do you want to delete %{name} version %{version} anyway? %{docLinkStart}What are the risks?%{docLinkEnd}"
+msgstr ""
+
+msgid "PackageRegistry|Duplicate packages"
+msgstr ""
+
+msgid "PackageRegistry|Enforce %{packageType} setting for all subgroups"
+msgstr ""
+
+msgid "PackageRegistry|Enforce %{package_type} setting for all subgroups"
+msgstr ""
+
+msgid "PackageRegistry|Error publishing"
+msgstr ""
+
+msgid "PackageRegistry|Examples of assets include .pom & .jar files"
+msgstr ""
+
+msgid "PackageRegistry|Failed to load the package data"
+msgstr ""
+
+msgid "PackageRegistry|Failed to load version data"
+msgstr ""
+
+msgid "PackageRegistry|For more information on Composer packages in GitLab, %{linkStart}see the documentation.%{linkEnd}"
+msgstr ""
+
+msgid "PackageRegistry|For more information on the Conan registry, %{linkStart}see the documentation%{linkEnd}."
+msgstr ""
+
+msgid "PackageRegistry|For more information on the Maven registry, %{linkStart}see the documentation%{linkEnd}."
+msgstr ""
+
+msgid "PackageRegistry|For more information on the NuGet registry, %{linkStart}see the documentation%{linkEnd}."
+msgstr ""
+
+msgid "PackageRegistry|For more information on the PyPi registry, %{linkStart}see the documentation%{linkEnd}."
+msgstr ""
+
+msgid "PackageRegistry|Forward %{packageType} package requests"
+msgstr ""
+
+msgid "PackageRegistry|Forward %{package_type} package requests"
+msgstr ""
+
+msgid "PackageRegistry|Forward package requests"
+msgstr ""
+
+msgid "PackageRegistry|Forward package requests to a public registry if the packages are not found in the GitLab package registry."
+msgstr ""
+
+msgid "PackageRegistry|Generic"
+msgstr ""
+
+msgid "PackageRegistry|Gradle Groovy DSL"
+msgstr ""
+
+msgid "PackageRegistry|Gradle Groovy DSL install command"
+msgstr ""
+
+msgid "PackageRegistry|Gradle Kotlin DSL"
+msgstr ""
+
+msgid "PackageRegistry|Gradle Kotlin DSL install command"
+msgstr ""
+
+msgid "PackageRegistry|Helm"
+msgstr ""
+
+msgid "PackageRegistry|If you haven't already done so, you will need to add the below to your %{codeStart}.pypirc%{codeEnd} file."
+msgstr ""
+
+msgid "PackageRegistry|If you haven't already done so, you will need to add the below to your %{codeStart}pom.xml%{codeEnd} file."
+msgstr ""
+
+msgid "PackageRegistry|Install package version"
+msgstr ""
+
+msgid "PackageRegistry|Instance-level"
+msgstr ""
+
+msgid "PackageRegistry|Invalid Package: failed metadata extraction"
+msgstr ""
+
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
+msgid "PackageRegistry|Last downloaded %{dateTime}"
+msgstr ""
+
+msgid "PackageRegistry|Learn how to %{noPackagesLinkStart}publish and share your packages%{noPackagesLinkEnd} with GitLab."
+msgstr ""
+
+msgid "PackageRegistry|License information located at %{link}"
+msgstr ""
+
+msgid "PackageRegistry|Manage storage used by package assets"
+msgstr ""
+
+msgid "PackageRegistry|Manually Published"
+msgstr ""
+
+msgid "PackageRegistry|Maven"
+msgstr ""
+
+msgid "PackageRegistry|Maven Command"
+msgstr ""
+
+msgid "PackageRegistry|Maven XML"
+msgstr ""
+
+msgid "PackageRegistry|NuGet"
+msgstr ""
+
+msgid "PackageRegistry|NuGet Command"
+msgstr ""
+
+msgid "PackageRegistry|Number of duplicate assets to keep"
+msgstr ""
+
+msgid "PackageRegistry|Other versions"
+msgstr ""
+
+msgid "PackageRegistry|Package Registry"
+msgstr ""
+
+msgid "PackageRegistry|Package asset deleted successfully"
+msgstr ""
+
+msgid "PackageRegistry|Package assets deleted successfully"
+msgstr ""
+
+msgid "PackageRegistry|Package deleted successfully"
+msgstr ""
+
+msgid "PackageRegistry|Package formats"
+msgstr ""
+
+msgid "PackageRegistry|Package forwarding"
+msgstr ""
+
+msgid "PackageRegistry|Package has %{updatesCount} archived update"
+msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
+msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
+msgstr ""
+
+msgid "PackageRegistry|Packages and assets cleanup is ready to be executed when the next cleanup job runs."
+msgstr ""
+
+msgid "PackageRegistry|Packages and assets will not be deleted until cleanup runs in %{nextRunAt}."
+msgstr ""
+
+msgid "PackageRegistry|Packages deleted successfully"
+msgstr ""
+
+msgid "PackageRegistry|Permanently delete"
+msgstr ""
+
+msgid "PackageRegistry|Permanently delete assets"
+msgstr ""
+
+msgid "PackageRegistry|Pip Command"
+msgstr ""
+
+msgid "PackageRegistry|Project-level"
+msgstr ""
+
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
+msgid "PackageRegistry|Publish packages if their name or version matches this regex."
+msgstr ""
+
+msgid "PackageRegistry|Published %{date}"
+msgstr ""
+
+msgid "PackageRegistry|Published by %{author}, %{date}"
+msgstr ""
+
+msgid "PackageRegistry|Published to %{projectName} by %{author}, %{date}"
+msgstr ""
+
+msgid "PackageRegistry|Published to %{projectName}, %{date}"
+msgstr ""
+
+msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
+msgstr ""
+
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
+msgid "PackageRegistry|PyPI"
+msgstr ""
+
+msgid "PackageRegistry|Recipe: %{recipe}"
+msgstr ""
+
+msgid "PackageRegistry|Registry setup"
+msgstr ""
+
+msgid "PackageRegistry|Remove package"
+msgstr ""
+
+msgid "PackageRegistry|Required Python: %{pythonVersion}"
+msgstr ""
+
+msgid "PackageRegistry|RubyGems"
+msgstr ""
+
+msgid "PackageRegistry|Show Composer commands"
+msgstr ""
+
+msgid "PackageRegistry|Show Conan commands"
+msgstr ""
+
+msgid "PackageRegistry|Show NPM commands"
+msgstr ""
+
+msgid "PackageRegistry|Show Nuget commands"
+msgstr ""
+
+msgid "PackageRegistry|Show PyPi commands"
+msgstr ""
+
+msgid "PackageRegistry|Show Yarn commands"
+msgstr ""
+
+msgid "PackageRegistry|Some of the selected package formats allow request forwarding. Deleting a package while request forwarding is enabled for the project can pose a security risk. Do you want to proceed with deleting the selected packages? %{docLinkStart}What are the risks?%{docLinkEnd}"
+msgstr ""
+
+msgid "PackageRegistry|Something went wrong while deleting packages."
+msgstr ""
+
+msgid "PackageRegistry|Something went wrong while deleting the package asset."
+msgstr ""
+
+msgid "PackageRegistry|Something went wrong while deleting the package assets."
+msgstr ""
+
+msgid "PackageRegistry|Something went wrong while deleting the package."
+msgstr ""
+
+msgid "PackageRegistry|Something went wrong while fetching package assets."
+msgstr ""
+
+msgid "PackageRegistry|Something went wrong while fetching the package history."
+msgstr ""
+
+msgid "PackageRegistry|Something went wrong while fetching the package metadata."
+msgstr ""
+
+msgid "PackageRegistry|Sorry, your filter produced no results"
+msgstr ""
+
+msgid "PackageRegistry|Source project located at %{link}"
+msgstr ""
+
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
+msgid "PackageRegistry|Target SHA: %{sha}"
+msgstr ""
+
+msgid "PackageRegistry|There are no other versions of this package."
+msgstr ""
+
+msgid "PackageRegistry|There are no packages yet"
+msgstr ""
+
+msgid "PackageRegistry|There are security risks if packages are deleted while request forwarding is enabled. %{docLinkStart}What are the risks?%{docLinkEnd}"
+msgstr ""
+
+msgid "PackageRegistry|There are security risks if packages are deleted while request forwarding is enabled. %{docs_link_start}What are the risks?%{docs_link_end}"
+msgstr ""
+
+msgid "PackageRegistry|There was a problem fetching the details for this package."
+msgstr ""
+
+msgid "PackageRegistry|There was a timeout and the package was not published. Delete this package and try again."
+msgstr ""
+
+msgid "PackageRegistry|There was an error publishing a %{packageName} package"
+msgstr ""
+
+msgid "PackageRegistry|This NuGet package has no dependencies."
+msgstr ""
+
+msgid "PackageRegistry|To widen your search, change or remove the filters above."
+msgstr ""
+
+msgid "PackageRegistry|Unable to fetch package version information."
+msgstr ""
+
+msgid "PackageRegistry|Unable to load package"
+msgstr ""
+
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
+msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
+msgstr ""
+
+msgid "PackageRegistry|Yes, delete package"
+msgstr ""
+
+msgid "PackageRegistry|Yes, delete selected packages"
+msgstr ""
+
+msgid "PackageRegistry|You are about to delete %{count} assets. This operation is irreversible."
+msgstr ""
+
+msgid "PackageRegistry|You are about to delete %{count} packages. This operation is irreversible."
+msgstr ""
+
+msgid "PackageRegistry|You are about to delete %{filename}. This is a destructive action that may render your package unusable. Are you sure?"
+msgstr ""
+
+msgid "PackageRegistry|You are about to delete %{name}, are you sure?"
+msgstr ""
+
+msgid "PackageRegistry|You are about to delete version %{version} of %{name}. Are you sure?"
+msgstr ""
+
+msgid "PackageRegistry|You may also need to setup authentication using an auth token. %{linkStart}See the documentation%{linkEnd} to find out more."
+msgstr ""
+
+msgid "PackageRegistry|You will need a %{linkStart}personal access token%{linkEnd}."
+msgstr ""
+
+msgid "PackageRegistry|npm"
+msgstr ""
+
+msgid "PackageRegistry|published by %{author}"
+msgstr ""
+
+msgid "Packages"
+msgstr ""
+
+msgid "Packages and registries"
+msgstr ""
+
+msgid "Packages and registries settings"
+msgstr ""
+
+msgid "Page not found"
+msgstr ""
+
+msgid "PagerDutySettings|Active"
+msgstr ""
+
+msgid "PagerDutySettings|Create a GitLab incident for each PagerDuty incident by %{linkStart}configuring a webhook in PagerDuty%{linkEnd}"
+msgstr ""
+
+msgid "PagerDutySettings|Failed to update Webhook URL"
+msgstr ""
+
+msgid "PagerDutySettings|Reset webhook URL"
+msgstr ""
+
+msgid "PagerDutySettings|Resetting the webhook URL for this project will require updating this integration's settings in PagerDuty."
+msgstr ""
+
+msgid "PagerDutySettings|Webhook URL"
+msgstr ""
+
+msgid "PagerDutySettings|Webhook URL update was successful"
+msgstr ""
+
+msgid "Pages"
+msgstr ""
+
+msgid "Pages Domain"
+msgstr ""
+
+msgid "PagesDomain|Certificate Key is too long. (Max %d bytes)"
+msgstr ""
+
+msgid "Pagination|First"
+msgstr ""
+
+msgid "Pagination|Go to first page"
+msgstr ""
+
+msgid "Pagination|Go to last page"
+msgstr ""
+
+msgid "Pagination|Go to next page"
+msgstr ""
+
+msgid "Pagination|Go to previous page"
+msgstr ""
+
+msgid "Pagination|Last"
+msgstr ""
+
+msgid "Pagination|Last »"
+msgstr ""
+
+msgid "Pagination|Next"
+msgstr ""
+
+msgid "Pagination|Prev"
+msgstr ""
+
+msgid "Pagination|« First"
+msgstr ""
+
+msgid "Parameter"
+msgstr ""
+
+msgid "Parent"
+msgstr ""
+
+msgid "Part of merge request changes"
+msgstr ""
+
+msgid "Participants"
+msgstr ""
+
+msgid "Pass job variables"
+msgstr ""
+
+msgid "Passed"
+msgstr ""
+
+msgid "Passed on"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Password (optional)"
+msgstr ""
+
+msgid "Password authentication is unavailable."
+msgstr ""
+
+msgid "Password confirmation"
+msgstr ""
+
+msgid "Password of the user."
+msgstr ""
+
+msgid "Password successfully changed"
+msgstr ""
+
+msgid "Password was successfully updated. Please sign in again."
+msgstr ""
+
+msgid "PasswordPrompt|Confirm password"
+msgstr ""
+
+msgid "PasswordPrompt|Confirm password to continue"
+msgstr ""
+
+msgid "PasswordPrompt|Password is required"
+msgstr ""
+
+msgid "PasswordPrompt|Please enter your password to confirm"
+msgstr ""
+
+msgid "Passwords should be unique and not used for any other sites or services."
+msgstr ""
+
+msgid "Password|Not satisfied"
+msgstr ""
+
+msgid "Password|Satisfied"
+msgstr ""
+
+msgid "Password|To be satisfied"
+msgstr ""
+
+msgid "Password|requires at least one lowercase letter"
+msgstr ""
+
+msgid "Password|requires at least one number"
+msgstr ""
+
+msgid "Password|requires at least one symbol character"
+msgstr ""
+
+msgid "Password|requires at least one uppercase letter"
+msgstr ""
+
+msgid "Past due"
+msgstr ""
+
+msgid "Paste a public key here."
+msgstr ""
+
+msgid "Paste a public key here. %{link_start}How do I generate it?%{link_end}"
+msgstr ""
+
+msgid "Paste confidential epic link"
+msgstr ""
+
+msgid "Paste confidential issue link"
+msgstr ""
+
+msgid "Paste epic link"
+msgstr ""
+
+msgid "Paste issue link"
+msgstr ""
+
+msgid "Paste link"
+msgstr ""
+
+msgid "Paste project path (i.e. gitlab-org/gitlab)"
+msgstr ""
+
+msgid "Paste this DSN into your Sentry SDK"
+msgstr ""
+
+msgid "Patch to apply"
+msgstr ""
+
+msgid "Patches"
+msgstr ""
+
+msgid "Path"
+msgstr ""
+
+msgid "Path:"
+msgstr ""
+
+msgid "Paths with rate limiting for GET requests"
+msgstr ""
+
+msgid "Paths with rate limiting for POST requests"
+msgstr ""
+
+msgid "Pause"
+msgstr ""
+
+msgid "Pause time (ms)"
+msgstr ""
+
+msgid "Paused"
+msgstr ""
+
+msgid "Paused runners don't accept new jobs"
+msgstr ""
+
+msgid "Peer review by"
+msgstr ""
+
+msgid "Pending"
+msgstr ""
+
+msgid "Pending Deletion"
+msgstr ""
+
+msgid "Pending comments"
+msgstr ""
+
+msgid "Pending comments are hidden until you submit your review."
+msgstr ""
+
+msgid "Pending deletion"
+msgstr ""
+
+msgid "Pending owner action"
+msgstr ""
+
+msgid "Pending sync…"
+msgstr ""
+
+msgid "People without permission will never get a notification and won't be able to comment."
+msgstr ""
+
+msgid "People without permission will never get a notification."
+msgstr ""
+
+msgid "Percent rollout must be an integer number between 0 and 100"
+msgstr ""
+
+msgid "Percentage"
+msgstr ""
+
+msgid "Perform advanced options such as changing path, transferring, exporting, or removing the group."
+msgstr ""
+
+msgid "Perform code reviews and enhance collaboration with merge requests."
+msgstr ""
+
+msgid "Perform common operations on GitLab project"
+msgstr ""
+
+msgid "Performance"
+msgstr ""
+
+msgid "Performance optimization"
+msgstr ""
+
+msgid "PerformanceBar|Backend"
+msgstr ""
+
+msgid "PerformanceBar|Bullet notifications"
+msgstr ""
+
+msgid "PerformanceBar|CPU"
+msgstr ""
+
+msgid "PerformanceBar|CPU flamegraph"
+msgstr ""
+
+msgid "PerformanceBar|ClickHouse queries"
+msgstr ""
+
+msgid "PerformanceBar|DOM Content Loaded"
+msgstr ""
+
+msgid "PerformanceBar|Download"
+msgstr ""
+
+msgid "PerformanceBar|Download memory report"
+msgstr ""
+
+msgid "PerformanceBar|Download report"
+msgstr ""
+
+msgid "PerformanceBar|Elasticsearch calls"
+msgstr ""
+
+msgid "PerformanceBar|External Http calls"
+msgstr ""
+
+msgid "PerformanceBar|First Contentful Paint"
+msgstr ""
+
+msgid "PerformanceBar|Frontend resources"
+msgstr ""
+
+msgid "PerformanceBar|Gitaly calls"
+msgstr ""
+
+msgid "PerformanceBar|Memory"
+msgstr ""
+
+msgid "PerformanceBar|Memory report"
+msgstr ""
+
+msgid "PerformanceBar|Object"
+msgstr ""
+
+msgid "PerformanceBar|Object flamegraph"
+msgstr ""
+
+msgid "PerformanceBar|Redis calls"
+msgstr ""
+
+msgid "PerformanceBar|SQL queries"
+msgstr ""
+
+msgid "PerformanceBar|Show stats"
+msgstr ""
+
+msgid "PerformanceBar|Sort by duration"
+msgstr ""
+
+msgid "PerformanceBar|Sort chronologically"
+msgstr ""
+
+msgid "PerformanceBar|Stats"
+msgstr ""
+
+msgid "PerformanceBar|Total duration"
+msgstr ""
+
+msgid "PerformanceBar|Trace"
+msgstr ""
+
+msgid "PerformanceBar|Wall"
+msgstr ""
+
+msgid "PerformanceBar|Wall flamegraph"
+msgstr ""
+
+msgid "PerformanceBar|Zoekt calls"
+msgstr ""
+
+msgid "PerformanceBar|flamegraph"
+msgstr ""
+
+msgid "Period in seconds"
+msgstr ""
+
+msgid "Permalink"
+msgstr ""
+
+msgid "Permanently remove group"
+msgstr ""
+
+msgid "Permissions"
+msgstr ""
+
+msgid "Permissions Help"
+msgstr ""
+
+msgid "Permissions and group features"
+msgstr ""
+
+msgid "Permissions and project features"
+msgstr ""
+
+msgid "Personal Access Token"
+msgstr ""
+
+msgid "Personal Access Token prefix"
+msgstr ""
+
+msgid "Personal access token"
+msgstr ""
+
+msgid "Personal projects"
+msgstr ""
+
+msgid "Personal projects limit:"
+msgstr ""
+
+msgid "PersonalProject|Learn to move a project to a group"
+msgstr ""
+
+msgid "PersonalProject|Some GitLab features, including the ability to upgrade to a paid plan or start a free trial, are only available for groups and projects inside groups. %{projectName} is a personal project, so none of this is available. We recommend you move your project to a group to unlock GitLab's full potential."
+msgstr ""
+
+msgid "PersonalProject|We have some instructions to help you create a group and move your project into it."
+msgstr ""
+
+msgid "PersonalProject|Your project %{projectName} is not in a group"
+msgstr ""
+
+msgid "Phone"
+msgstr ""
+
+msgid "Phone:"
+msgstr ""
+
+msgid "PhoneVerification|Enter a valid code."
+msgstr ""
+
+msgid "PhoneVerification|Something went wrong. Please try again."
+msgstr ""
+
+msgid "PhoneVerification|The code has expired. Request a new code and try again."
+msgstr ""
+
+msgid "PhoneVerification|There was a problem with the phone number you entered. Enter a different phone number and try again."
+msgstr ""
+
+msgid "PhoneVerification|There was a problem with the phone number you entered. Enter a valid phone number."
+msgstr ""
+
+msgid "PhoneVerification|Verification code can't be blank."
+msgstr ""
+
+msgid "PhoneVerification|You've reached the maximum number of tries. Request a new code and try again."
+msgstr ""
+
+msgid "PhoneVerification|You've reached the maximum number of tries. Wait %{interval} and try again."
+msgstr ""
+
+msgid "Pick a name"
+msgstr ""
+
+msgid "Pipeline"
+msgstr ""
+
+msgid "Pipeline %{label}"
+msgstr ""
+
+msgid "Pipeline %{label} for \"%{dataTitle}\""
+msgstr ""
+
+msgid "Pipeline Editor|Are you sure you want to reset the file to its last committed version?"
+msgstr ""
+
+msgid "Pipeline ID"
+msgstr ""
+
+msgid "Pipeline IID"
+msgstr ""
+
+msgid "Pipeline Schedule"
+msgstr ""
+
+msgid "Pipeline Schedules"
+msgstr ""
+
+msgid "Pipeline URL"
+msgstr ""
+
+msgid "Pipeline creation rate limits"
+msgstr ""
+
+msgid "Pipeline durations for the last 30 commits"
+msgstr ""
+
+msgid "Pipeline editor"
+msgstr ""
+
+msgid "Pipeline must succeed."
+msgstr ""
+
+msgid "Pipeline ran in fork of project"
+msgstr ""
+
+msgid "Pipeline schedules"
+msgstr ""
+
+msgid "Pipeline status emails"
+msgstr ""
+
+msgid "Pipeline subscriptions"
+msgstr ""
+
+msgid "Pipeline subscriptions trigger a new pipeline on the default branch of this project when a pipeline successfully completes for a new tag on the %{default_branch_docs} of the subscribed project."
+msgstr ""
+
+msgid "Pipeline trigger tokens"
+msgstr ""
+
+msgid "Pipeline triggers"
+msgstr ""
+
+msgid "Pipeline: %{status}"
+msgstr ""
+
+msgid "PipelineCharts|An error has occurred when retrieving the analytics data"
+msgstr ""
+
+msgid "PipelineCharts|An error has occurred when retrieving the pipelines data"
+msgstr ""
+
+msgid "PipelineCharts|An unknown error occurred while processing CI/CD analytics."
+msgstr ""
+
+msgid "PipelineCharts|CI/CD Analytics"
+msgstr ""
+
+msgid "PipelineCharts|Failed:"
+msgstr ""
+
+msgid "PipelineCharts|Overall statistics"
+msgstr ""
+
+msgid "PipelineCharts|Success ratio:"
+msgstr ""
+
+msgid "PipelineCharts|Successful:"
+msgstr ""
+
+msgid "PipelineCharts|There was an error parsing the data for the charts."
+msgstr ""
+
+msgid "PipelineCharts|Total:"
+msgstr ""
+
+msgid "PipelineEditorFileTree|Configuration files added with the include keyword"
+msgstr ""
+
+msgid "PipelineEditorFileTree|When you use the include keyword to add pipeline configuration from files in the project, those files will be listed here."
+msgstr ""
+
+msgid "PipelineEditorTutorial|Browse %{linkStart}CI/CD examples and templates%{linkEnd}"
+msgstr ""
+
+msgid "PipelineEditorTutorial|Commit the file to your repository. The pipeline then runs automatically."
+msgstr ""
+
+msgid "PipelineEditorTutorial|Get started with GitLab CI/CD"
+msgstr ""
+
+msgid "PipelineEditorTutorial|GitLab CI/CD can automatically build, test, and deploy your application."
+msgstr ""
+
+msgid "PipelineEditorTutorial|If you’re using a self-managed GitLab instance, %{linkStart}make sure your instance has runners available.%{linkEnd}"
+msgstr ""
+
+msgid "PipelineEditorTutorial|Learn more about %{linkStart}GitLab CI/CD concepts%{linkEnd}"
+msgstr ""
+
+msgid "PipelineEditorTutorial|Make your pipeline more efficient with the %{linkStart}Needs keyword%{linkEnd}"
+msgstr ""
+
+msgid "PipelineEditorTutorial|Resources to help with your CI/CD configuration:"
+msgstr ""
+
+msgid "PipelineEditorTutorial|Select the pipeline ID to view the full details about your first pipeline run."
+msgstr ""
+
+msgid "PipelineEditorTutorial|The pipeline stages and jobs are defined in a %{codeStart}.gitlab-ci.yml%{codeEnd} file. You can edit, visualize and validate the syntax in this file by using the Pipeline Editor."
+msgstr ""
+
+msgid "PipelineEditorTutorial|The pipeline status is at the top of the page."
+msgstr ""
+
+msgid "PipelineEditorTutorial|This template creates a simple test pipeline. To use it:"
+msgstr ""
+
+msgid "PipelineEditorTutorial|Use the Visualize and Lint tabs in the Pipeline Editor to visualize your pipeline and check for any errors or warnings before committing your changes."
+msgstr ""
+
+msgid "PipelineEditorTutorial|View %{linkStart}.gitlab-ci.yml syntax reference%{linkEnd}"
+msgstr ""
+
+msgid "PipelineEditorTutorial|âš™ï¸ Pipeline configuration reference"
+msgstr ""
+
+msgid "PipelineEditorTutorial|💡 Tip: Visualize and validate your pipeline"
+msgstr ""
+
+msgid "PipelineEditorTutorial|🚀 Run your first pipeline"
+msgstr ""
+
+msgid "PipelineEditor|Configuration content has changed. Re-run validation for updated results."
+msgstr ""
+
+msgid "PipelineEditor|Current content in the Edit tab will be used for the simulation."
+msgstr ""
+
+msgid "PipelineEditor|Git push event to the default branch"
+msgstr ""
+
+msgid "PipelineEditor|Other pipeline sources are not available yet."
+msgstr ""
+
+msgid "PipelineEditor|Pipeline Source"
+msgstr ""
+
+msgid "PipelineEditor|Pipeline behavior will be simulated including the %{codeStart}rules%{codeEnd} %{codeStart}only%{codeEnd} %{codeStart}except%{codeEnd} and %{codeStart}needs%{codeEnd} job dependencies."
+msgstr ""
+
+msgid "PipelineEditor|Pipeline behavior will be simulated including the %{codeStart}rules%{codeEnd} %{codeStart}only%{codeEnd} %{codeStart}except%{codeEnd} and %{codeStart}needs%{codeEnd} job dependencies. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "PipelineEditor|Pipeline simulation completed with errors"
+msgstr ""
+
+msgid "PipelineEditor|Simulated a %{codeStart}git push%{codeEnd} event for a default branch. %{codeStart}Rules%{codeEnd}, %{codeStart}only%{codeEnd}, %{codeStart}except%{codeEnd}, and %{codeStart}needs%{codeEnd} job dependencies logic have been evaluated. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "PipelineEditor|Simulation completed successfully"
+msgstr ""
+
+msgid "PipelineEditor|The CI/CD configuration is continuously validated. Errors and warnings are displayed when the CI/CD configuration file is not empty."
+msgstr ""
+
+msgid "PipelineEditor|The full configuration view is displayed when the CI/CD configuration file has valid syntax."
+msgstr ""
+
+msgid "PipelineEditor|The pipeline visualization is displayed when the CI/CD configuration file has valid syntax."
+msgstr ""
+
+msgid "PipelineEditor|This tab will be usable when the CI/CD configuration file is populated with valid syntax."
+msgstr ""
+
+msgid "PipelineEditor|Validate pipeline"
+msgstr ""
+
+msgid "PipelineEditor|Validate pipeline under selected conditions"
+msgstr ""
+
+msgid "PipelineEditor|Validate pipeline under simulated conditions"
+msgstr ""
+
+msgid "PipelineEditor|Validating pipeline... It can take up to a minute."
+msgstr ""
+
+msgid "PipelineEditor|Waiting for CI content to load..."
+msgstr ""
+
+msgid "PipelineGraph|Are you sure you want to retry %{jobName}?"
+msgstr ""
+
+msgid "PipelineGraph|Downstream pipeline might not display in the graph while the new downstream pipeline is being created."
+msgstr ""
+
+msgid "PipelineGraph|Retrying a trigger job will create a new downstream pipeline."
+msgstr ""
+
+msgid "PipelineGraph|What is a downstream pipeline?"
+msgstr ""
+
+msgid "PipelineScheduleIntervalPattern|Custom"
+msgstr ""
+
+msgid "PipelineScheduleIntervalPattern|Set a custom interval with Cron syntax."
+msgstr ""
+
+msgid "PipelineScheduleIntervalPattern|What is Cron syntax?"
+msgstr ""
+
+msgid "PipelineSchedules|A scheduled pipeline starts automatically at regular intervals, like daily or weekly. The pipeline: "
+msgstr ""
+
+msgid "PipelineSchedules|Active"
+msgstr ""
+
+msgid "PipelineSchedules|All"
+msgstr ""
+
+msgid "PipelineSchedules|An error occurred while creating the pipeline schedule."
+msgstr ""
+
+msgid "PipelineSchedules|An error occurred while trying to fetch the pipeline schedule."
+msgstr ""
+
+msgid "PipelineSchedules|An error occurred while updating the pipeline schedule."
+msgstr ""
+
+msgid "PipelineSchedules|Are you sure you want to delete this pipeline schedule?"
+msgstr ""
+
+msgid "PipelineSchedules|Can have custom CI/CD variables."
+msgstr ""
+
+msgid "PipelineSchedules|Create a new pipeline schedule"
+msgstr ""
+
+msgid "PipelineSchedules|Create pipeline schedule"
+msgstr ""
+
+msgid "PipelineSchedules|Cron timezone"
+msgstr ""
+
+msgid "PipelineSchedules|Delete pipeline schedule"
+msgstr ""
+
+msgid "PipelineSchedules|Description"
+msgstr ""
+
+msgid "PipelineSchedules|Edit pipeline schedule"
+msgstr ""
+
+msgid "PipelineSchedules|Inactive"
+msgstr ""
+
+msgid "PipelineSchedules|Interval Pattern"
+msgstr ""
+
+msgid "PipelineSchedules|Last Pipeline"
+msgstr ""
+
+msgid "PipelineSchedules|Learn more in the %{linkStart}scheduled pipelines documentation.%{linkEnd}"
+msgstr ""
+
+msgid "PipelineSchedules|New schedule"
+msgstr ""
+
+msgid "PipelineSchedules|Next Run"
+msgstr ""
+
+msgid "PipelineSchedules|No pipeline schedules"
+msgstr ""
+
+msgid "PipelineSchedules|None"
+msgstr ""
+
+msgid "PipelineSchedules|Only the owner of a pipeline schedule can make changes to it. Do you want to take ownership of this schedule?"
+msgstr ""
+
+msgid "PipelineSchedules|Owner"
+msgstr ""
+
+msgid "PipelineSchedules|Pipeline schedule successfully deleted."
+msgstr ""
+
+msgid "PipelineSchedules|Pipeline schedules"
+msgstr ""
+
+msgid "PipelineSchedules|Provide a short description for this pipeline"
+msgstr ""
+
+msgid "PipelineSchedules|Run pipeline schedule"
+msgstr ""
+
+msgid "PipelineSchedules|Runs for a specific branch or tag."
+msgstr ""
+
+msgid "PipelineSchedules|Runs with the same project permissions as the schedule owner."
+msgstr ""
+
+msgid "PipelineSchedules|Successfully scheduled a pipeline to run. Go to the %{linkStart}Pipelines page%{linkEnd} for details. "
+msgstr ""
+
+msgid "PipelineSchedules|Successfully taken ownership from %{owner}."
+msgstr ""
+
+msgid "PipelineSchedules|Take ownership"
+msgstr ""
+
+msgid "PipelineSchedules|Take ownership of pipeline schedule"
+msgstr ""
+
+msgid "PipelineSchedules|Target"
+msgstr ""
+
+msgid "PipelineSchedules|There was a problem deleting the pipeline schedule."
+msgstr ""
+
+msgid "PipelineSchedules|There was a problem fetching pipeline schedules."
+msgstr ""
+
+msgid "PipelineSchedules|There was a problem playing the pipeline schedule."
+msgstr ""
+
+msgid "PipelineSchedules|There was a problem taking ownership of the pipeline schedule."
+msgstr ""
+
+msgid "PipelineSource|API"
+msgstr ""
+
+msgid "PipelineSource|Chat"
+msgstr ""
+
+msgid "PipelineSource|External"
+msgstr ""
+
+msgid "PipelineSource|External Pull Request"
+msgstr ""
+
+msgid "PipelineSource|Merge Request"
+msgstr ""
+
+msgid "PipelineSource|On-Demand DAST Scan"
+msgstr ""
+
+msgid "PipelineSource|On-Demand DAST Validation"
+msgstr ""
+
+msgid "PipelineSource|Parent Pipeline"
+msgstr ""
+
+msgid "PipelineSource|Pipeline"
+msgstr ""
+
+msgid "PipelineSource|Push"
+msgstr ""
+
+msgid "PipelineSource|Schedule"
+msgstr ""
+
+msgid "PipelineSource|Trigger"
+msgstr ""
+
+msgid "PipelineSource|Web"
+msgstr ""
+
+msgid "PipelineSource|Web IDE"
+msgstr ""
+
+msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
+msgstr ""
+
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
+msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
+msgstr ""
+
+msgid "PipelineWizardDefaultCommitMessage|Update %{filename}"
+msgstr ""
+
+msgid "PipelineWizardInputValidation|At least one entry is required"
+msgstr ""
+
+msgid "PipelineWizardInputValidation|This field is required"
+msgstr ""
+
+msgid "PipelineWizardInputValidation|This value is not valid"
+msgstr ""
+
+msgid "PipelineWizardListWidget|add another step"
+msgstr ""
+
+msgid "PipelineWizardListWidget|remove step"
+msgstr ""
+
+msgid "PipelineWizard|Commit"
+msgstr ""
+
+msgid "PipelineWizard|Commit Message"
+msgstr ""
+
+msgid "PipelineWizard|Commit changes to your file"
+msgstr ""
+
+msgid "PipelineWizard|Commit file to Branch"
+msgstr ""
+
+msgid "PipelineWizard|Commit your new file"
+msgstr ""
+
+msgid "PipelineWizard|The file has been committed."
+msgstr ""
+
+msgid "PipelineWizard|There was a problem committing the changes."
+msgstr ""
+
+msgid "PipelineWizard|There was a problem while checking whether your file already exists in the specified branch."
+msgstr ""
+
+msgid "PipelineWizard|There was an unexpected error trying to set up the template. The error has been logged."
+msgstr ""
+
+msgid "Pipelines"
+msgstr ""
+
+msgid "Pipelines charts"
+msgstr ""
+
+msgid "Pipelines for new changes cause older pending or running pipelines on the same branch to be cancelled."
+msgstr ""
+
+msgid "Pipelines settings for '%{project_name}' were successfully updated."
+msgstr ""
+
+msgid "Pipelines|\"Hello world\" with GitLab CI"
+msgstr ""
+
+msgid "Pipelines|Are you sure you want to run this pipeline?"
+msgstr ""
+
+msgid "Pipelines|Auto DevOps"
+msgstr ""
+
+msgid "Pipelines|Build with confidence"
+msgstr ""
+
+msgid "Pipelines|By revoking a trigger you will break any processes making use of it. Are you sure?"
+msgstr ""
+
+msgid "Pipelines|CI lint"
+msgstr ""
+
+msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
+msgstr ""
+
+msgid "Pipelines|Clear runner caches"
+msgstr ""
+
+msgid "Pipelines|Continuous integration and deployment template to test and deploy your %{name} project."
+msgstr ""
+
+msgid "Pipelines|Copy trigger token"
+msgstr ""
+
+msgid "Pipelines|Could not load artifacts."
+msgstr ""
+
+msgid "Pipelines|Could not load full configuration content"
+msgstr ""
+
+msgid "Pipelines|Description"
+msgstr ""
+
+msgid "Pipelines|Edit"
+msgstr ""
+
+msgid "Pipelines|Editor"
+msgstr ""
+
+msgid "Pipelines|Failed to update. Please reload page to update the list of artifacts."
+msgstr ""
+
+msgid "Pipelines|Full configuration"
+msgstr ""
+
+msgid "Pipelines|Full configuration is view only"
+msgstr ""
+
+msgid "Pipelines|Get familiar with GitLab CI syntax by setting up a simple pipeline running a \"Hello world\" script to see how it runs, explore how CI/CD works."
+msgstr ""
+
+msgid "Pipelines|Get started with GitLab CI/CD"
+msgstr ""
+
+msgid "Pipelines|GitLab CI/CD can automatically build, test, and deploy your code. Let GitLab take care of time consuming tasks, so you can spend more time creating."
+msgstr ""
+
+msgid "Pipelines|Go to the pipeline editor"
+msgstr ""
+
+msgid "Pipelines|If you are unsure, ask a project maintainer to review it for you."
+msgstr ""
+
+msgid "Pipelines|If you are unsure, please ask a project maintainer to review it for you."
+msgstr ""
+
+msgid "Pipelines|It is recommended the code is reviewed thoroughly before running this pipeline with the parent project's CI resource."
+msgstr ""
+
+msgid "Pipelines|Last Used"
+msgstr ""
+
+msgid "Pipelines|Learn the basics of pipelines and .yml files"
+msgstr ""
+
+msgid "Pipelines|Lint"
+msgstr ""
+
+msgid "Pipelines|Loading Pipelines"
+msgstr ""
+
+msgid "Pipelines|Loading pipelines"
+msgstr ""
+
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
+msgid "Pipelines|More Information"
+msgstr ""
+
+msgid "Pipelines|No triggers have been created yet. Add one using the form above."
+msgstr ""
+
+msgid "Pipelines|Owner"
+msgstr ""
+
+msgid "Pipelines|Pipeline Editor"
+msgstr ""
+
+msgid "Pipelines|Pipeline syntax is correct. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "Pipelines|Project cache successfully reset."
+msgstr ""
+
+msgid "Pipelines|Ready to set up CI/CD for your project?"
+msgstr ""
+
+msgid "Pipelines|Rebasing creates a pipeline that runs code originating from a forked project merge request. Consequently there are potential security implications, such as the exposure of CI variables."
+msgstr ""
+
+msgid "Pipelines|Retry %{jobName} Job"
+msgstr ""
+
+msgid "Pipelines|Revoke trigger"
+msgstr ""
+
+msgid "Pipelines|Scheduled"
+msgstr ""
+
+msgid "Pipelines|Something went wrong while cleaning runners cache."
+msgstr ""
+
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
+msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
+msgstr ""
+
+msgid "Pipelines|The %{namespace_name} namespace has exceeded its pipeline minutes quota. Buy additional pipeline minutes, or no new jobs or pipelines in its projects will run."
+msgstr ""
+
+msgid "Pipelines|The CI configuration was not loaded, please try again."
+msgstr ""
+
+msgid "Pipelines|The GitLab CI configuration could not be updated."
+msgstr ""
+
+msgid "Pipelines|There are currently no finished pipelines."
+msgstr ""
+
+msgid "Pipelines|There are currently no pipelines."
+msgstr ""
+
+msgid "Pipelines|There was a problem with loading the pipeline data."
+msgstr ""
+
+msgid "Pipelines|There was an error fetching the pipelines."
+msgstr ""
+
+msgid "Pipelines|There was an error fetching the pipelines. Try again in a few moments or contact your support team."
+msgstr ""
+
+msgid "Pipelines|This GitLab CI configuration is invalid. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "Pipelines|This GitLab CI configuration is invalid:"
+msgstr ""
+
+msgid "Pipelines|This GitLab CI configuration is invalid: %{reason}. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "Pipelines|This GitLab CI configuration is valid."
+msgstr ""
+
+msgid "Pipelines|This pipeline is stuck"
+msgstr ""
+
+msgid "Pipelines|This pipeline ran on the contents of the merge request combined with the contents of all other merge requests queued for merging into the target branch."
+msgstr ""
+
+msgid "Pipelines|This pipeline ran on the contents of the merge request combined with the contents of the target branch."
+msgstr ""
+
+msgid "Pipelines|This pipeline ran on the contents of the merge request's source branch, not the target branch."
+msgstr ""
+
+msgid "Pipelines|This pipeline will run code originating from a forked project merge request. This means that the code can potentially have security considerations like exposing CI variables."
+msgstr ""
+
+msgid "Pipelines|This project is not currently set up to run pipelines."
+msgstr ""
+
+msgid "Pipelines|Token"
+msgstr ""
+
+msgid "Pipelines|Total amount of compute minutes used for the pipeline"
+msgstr ""
+
+msgid "Pipelines|Total number of jobs for the pipeline"
+msgstr ""
+
+msgid "Pipelines|Trigger user has insufficient permissions to project"
+msgstr ""
+
+msgid "Pipelines|Try again in a few moments or contact your support team."
+msgstr ""
+
+msgid "Pipelines|Try test template"
+msgstr ""
+
+msgid "Pipelines|Unable to create pipeline"
+msgstr ""
+
+msgid "Pipelines|Unable to validate CI/CD configuration. See the %{linkStart}GitLab CI/CD troubleshooting guide%{linkEnd} for more details."
+msgstr ""
+
+msgid "Pipelines|Use a sample %{codeStart}.gitlab-ci.yml%{codeEnd} template file to explore how CI/CD works."
+msgstr ""
+
+msgid "Pipelines|Use a template based on your project's language or framework to get started with GitLab CI/CD."
+msgstr ""
+
+msgid "Pipelines|Use template"
+msgstr ""
+
+msgid "Pipelines|Validate"
+msgstr ""
+
+msgid "Pipelines|Validating GitLab CI configuration…"
+msgstr ""
+
+msgid "Pipelines|Visualize"
+msgstr ""
+
+msgid "Pipelines|We'll continuously validate your pipeline configuration. The validation results will appear here."
+msgstr ""
+
+msgid "Pipelines|You should review the code thoroughly before running this pipeline with the parent project's CI/CD resources."
+msgstr ""
+
+msgid "Pipelines|You will see a maximum of 100 jobs in this list. To view all failed jobs, %{linkStart}go to the details page%{linkEnd} of this pipeline."
+msgstr ""
+
+msgid "Pipelines|Your changes have been successfully committed. Now redirecting to the new merge request page."
+msgstr ""
+
+msgid "Pipelines|created"
+msgstr ""
+
+msgid "Pipelines|error"
+msgstr ""
+
+msgid "Pipelines|finished"
+msgstr ""
+
+msgid "Pipelines|invalid"
+msgstr ""
+
+msgid "Pipelines|latest"
+msgstr ""
+
+msgid "Pipelines|merge request"
+msgstr ""
+
+msgid "Pipelines|merge train"
+msgstr ""
+
+msgid "Pipelines|merged results"
+msgstr ""
+
+msgid "Pipelines|stuck"
+msgstr ""
+
+msgid "Pipelines|yaml invalid"
+msgstr ""
+
+msgid "Pipeline|Actions"
+msgstr ""
+
+msgid "Pipeline|Branch name"
+msgstr ""
+
+msgid "Pipeline|Branches or tags could not be loaded."
+msgstr ""
+
+msgid "Pipeline|Canceled"
+msgstr ""
+
+msgid "Pipeline|Checking pipeline status"
+msgstr ""
+
+msgid "Pipeline|Checking pipeline status."
+msgstr ""
+
+msgid "Pipeline|Could not retrieve the pipeline status. For troubleshooting steps, read the %{linkStart}documentation%{linkEnd}."
+msgstr ""
+
+msgid "Pipeline|Created"
+msgstr ""
+
+msgid "Pipeline|Created by"
+msgstr ""
+
+msgid "Pipeline|Creating pipeline."
+msgstr ""
+
+msgid "Pipeline|Date"
+msgstr ""
+
+msgid "Pipeline|Failed"
+msgstr ""
+
+msgid "Pipeline|Manual"
+msgstr ""
+
+msgid "Pipeline|Merge request pipeline"
+msgstr ""
+
+msgid "Pipeline|Merge train pipeline"
+msgstr ""
+
+msgid "Pipeline|Merge train pipeline jobs can not be retried"
+msgstr ""
+
+msgid "Pipeline|Merged result pipeline"
+msgstr ""
+
+msgid "Pipeline|No failed jobs in this pipeline 🎉"
+msgstr ""
+
+msgid "Pipeline|Only the first 100 jobs per stage are displayed"
+msgstr ""
+
+msgid "Pipeline|Passed"
+msgstr ""
+
+msgid "Pipeline|Pending"
+msgstr ""
+
+msgid "Pipeline|Pipeline"
+msgstr ""
+
+msgid "Pipeline|Pipeline %{idStart}#%{idEnd} %{statusStart}%{statusEnd} for %{commitStart}%{commitEnd}"
+msgstr ""
+
+msgid "Pipeline|Pipeline cannot be run."
+msgstr ""
+
+msgid "Pipeline|Pipelines"
+msgstr ""
+
+msgid "Pipeline|Raw text search is not currently supported. Please use the available search tokens."
+msgstr ""
+
+msgid "Pipeline|Run again"
+msgstr ""
+
+msgid "Pipeline|Run for branch name or tag"
+msgstr ""
+
+msgid "Pipeline|Run merge request pipeline"
+msgstr ""
+
+msgid "Pipeline|Run pipeline"
+msgstr ""
+
+msgid "Pipeline|Running"
+msgstr ""
+
+msgid "Pipeline|Skipped"
+msgstr ""
+
+msgid "Pipeline|Source"
+msgstr ""
+
+msgid "Pipeline|Source|Security Policy"
+msgstr ""
+
+msgid "Pipeline|Specify variable values to be used in this run. The values specified in %{linkStart}CI/CD settings%{linkEnd} will be used by default."
+msgstr ""
+
+msgid "Pipeline|Specify variable values to be used in this run. The variables specified in the configuration file as well as %{linkStart}CI/CD settings%{linkEnd} are used by default."
+msgstr ""
+
+msgid "Pipeline|Stages"
+msgstr ""
+
+msgid "Pipeline|Status"
+msgstr ""
+
+msgid "Pipeline|Stop pipeline"
+msgstr ""
+
+msgid "Pipeline|Stop pipeline #%{pipelineId}?"
+msgstr ""
+
+msgid "Pipeline|Tag name"
+msgstr ""
+
+msgid "Pipeline|Test coverage"
+msgstr ""
+
+msgid "Pipeline|This change will decrease the overall test coverage if merged."
+msgstr ""
+
+msgid "Pipeline|This change will increase the overall test coverage if merged."
+msgstr ""
+
+msgid "Pipeline|This change will not change the overall test coverage if merged."
+msgstr ""
+
+msgid "Pipeline|This pipeline ran on the contents of the merge request combined with the contents of all other merge requests queued for merging into the target branch."
+msgstr ""
+
+msgid "Pipeline|This pipeline ran on the contents of the merge request combined with the contents of the target branch."
+msgstr ""
+
+msgid "Pipeline|This pipeline ran on the contents of the merge request's source branch, not the target branch."
+msgstr ""
+
+msgid "Pipeline|To run a merge request pipeline, the jobs in the CI/CD configuration file %{linkStart}must be configured%{linkEnd} to run in merge request pipelines."
+msgstr ""
+
+msgid "Pipeline|To see the remaining jobs, go to the %{boldStart}Jobs%{boldEnd} tab."
+msgstr ""
+
+msgid "Pipeline|Trigger author"
+msgstr ""
+
+msgid "Pipeline|Variables"
+msgstr ""
+
+msgid "Pipeline|View commit"
+msgstr ""
+
+msgid "Pipeline|View pipeline"
+msgstr ""
+
+msgid "Pipeline|We are currently unable to fetch pipeline data"
+msgstr ""
+
+msgid "Pipeline|You're about to stop pipeline #%{pipelineId}."
+msgstr ""
+
+msgid "Pipeline|api"
+msgstr ""
+
+msgid "Pipeline|for"
+msgstr ""
+
+msgid "Pipeline|merge request"
+msgstr ""
+
+msgid "Pipeline|merge train"
+msgstr ""
+
+msgid "Pipeline|merged results"
+msgstr ""
+
+msgid "Pipeline|on"
+msgstr ""
+
+msgid "Pipeline|with stage"
+msgstr ""
+
+msgid "Pipeline|with stages"
+msgstr ""
+
+msgid "PivotalTrackerService|Add commit messages as comments to Pivotal Tracker stories."
+msgstr ""
+
+msgid "PivotalTrackerService|Comma-separated list of branches to automatically inspect. Leave blank to include all branches."
+msgstr ""
+
+msgid "PivotalTrackerService|Pivotal Tracker API token. User must have access to the story. All comments are attributed to this user."
+msgstr ""
+
+msgid "Plain diff"
+msgstr ""
+
+msgid "Plain-text response to send to clients that hit a rate limit"
+msgstr ""
+
+msgid "Plan"
+msgstr ""
+
+msgid "Plan:"
+msgstr ""
+
+msgid "Planning hierarchy"
+msgstr ""
+
+msgid "PlantUML"
+msgstr ""
+
+msgid "PlantUML URL"
+msgstr ""
+
+msgid "PlantUML diagram"
+msgstr ""
+
+msgid "Play"
+msgstr ""
+
+msgid "Play all manual"
+msgstr ""
+
+msgid "Please %{link_to_register} or %{link_to_sign_in} to comment"
+msgstr ""
+
+msgid "Please %{registerLinkStart}register%{registerLinkEnd} or %{signInLinkStart}sign in%{signInLinkEnd} to reply."
+msgstr ""
+
+msgid "Please %{registerLinkStart}register%{registerLinkEnd} or %{signInLinkStart}sign in%{signInLinkEnd} to start a new discussion."
+msgstr ""
+
+msgid "Please %{startTagRegister}register%{endRegisterTag} or %{startTagSignIn}sign in%{endSignInTag} to reply"
+msgstr ""
+
+msgid "Please accept the Terms of Service before continuing."
+msgstr ""
+
+msgid "Please add a comment in the text area above"
+msgstr ""
+
+msgid "Please check the configuration file for this chart"
+msgstr ""
+
+msgid "Please check the configuration file to ensure that a collection of charts has been declared."
+msgstr ""
+
+msgid "Please check the configuration file to ensure that it is available and the YAML is valid"
+msgstr ""
+
+msgid "Please check your email %{email} to confirm your account"
+msgstr ""
+
+msgid "Please check your email (%{email}) to verify that you own this address and unlock the power of CI/CD. Didn't receive it? %{resend_link}. Wrong email address? %{update_link}."
+msgstr ""
+
+msgid "Please click the link in the confirmation email before continuing. It was sent to %{html_tag_strong_start}%{email}%{html_tag_strong_end}."
+msgstr ""
+
+msgid "Please complete the incident creation form."
+msgstr ""
+
+msgid "Please complete your profile with email address"
+msgstr ""
+
+msgid "Please confirm your email address"
+msgstr ""
+
+msgid "Please contact an admin to create runners."
+msgstr ""
+
+msgid "Please contact your GitLab administrator if you think this is an error."
+msgstr ""
+
+msgid "Please contact your administrator with any questions."
+msgstr ""
+
+msgid "Please contact your administrator."
+msgstr ""
+
+msgid "Please convert %{linkStart}them to Git%{linkEnd}, and go through the %{linkToImportFlow} again."
+msgstr ""
+
+msgid "Please copy, download, or print your recovery codes before proceeding."
+msgstr ""
+
+msgid "Please create a password for your new account."
+msgstr ""
+
+msgid "Please create a username with only alphanumeric characters."
+msgstr ""
+
+msgid "Please create an index before enabling indexing"
+msgstr ""
+
+msgid "Please enter a URL for the custom emoji."
+msgstr ""
+
+msgid "Please enter a name for the comment template."
+msgstr ""
+
+msgid "Please enter a name for the custom emoji."
+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 URL format, ex: http://www.example.com/home"
+msgstr ""
+
+msgid "Please enter a valid hex (#RRGGBB or #RGB) color value"
+msgstr ""
+
+msgid "Please enter a valid number"
+msgstr ""
+
+msgid "Please enter a valid time interval"
+msgstr ""
+
+msgid "Please enter a value of 90 days or more"
+msgstr ""
+
+msgid "Please enter the comment template content."
+msgstr ""
+
+msgid "Please enter your current password."
+msgstr ""
+
+msgid "Please fill in a descriptive name for your group."
+msgstr ""
+
+msgid "Please fill in a name for your topic."
+msgstr ""
+
+msgid "Please fill in a title for your topic."
+msgstr ""
+
+msgid "Please fill out this field."
+msgstr ""
+
+msgid "Please follow the %{link_start}Let's Encrypt troubleshooting instructions%{link_end} to re-obtain your Let's Encrypt certificate."
+msgstr ""
+
+msgid "Please follow the Let's Encrypt troubleshooting instructions to re-obtain your Let's Encrypt certificate: %{docs_url}."
+msgstr ""
+
+msgid "Please note that this application is not provided by GitLab and you should verify its authenticity before allowing access."
+msgstr ""
+
+msgid "Please provide a name"
+msgstr ""
+
+msgid "Please provide a name."
+msgstr ""
+
+msgid "Please provide a valid URL."
+msgstr ""
+
+msgid "Please provide a valid email address."
+msgstr ""
+
+msgid "Please provide attributes to update"
+msgstr ""
+
+msgid "Please reach out if you have any questions and we'll be happy to assist."
+msgstr ""
+
+msgid "Please review the %{strong_start}%{contribution_guidelines_start}contribution guidelines%{contribution_guidelines_end}%{strong_end} for this project."
+msgstr ""
+
+msgid "Please review the updated escalation policies for %{project_link}. It is recommended that you reach out to the current on-call responder to ensure continuity of on-call coverage."
+msgstr ""
+
+msgid "Please review the updated escalation policies for %{project}. It is recommended that you reach out to the current on-call responder to ensure continuity of on-call coverage."
+msgstr ""
+
+msgid "Please select a Jira project"
+msgstr ""
+
+msgid "Please select a country / region"
+msgstr ""
+
+msgid "Please select a group"
+msgstr ""
+
+msgid "Please select a valid target branch"
+msgstr ""
+
+msgid "Please select a valid target branch."
+msgstr ""
+
+msgid "Please select and add a member"
+msgstr ""
+
+msgid "Please select at least one filter to see results"
+msgstr ""
+
+msgid "Please select what should be included in each exported requirement."
+msgstr ""
+
+msgid "Please select..."
+msgstr ""
+
+msgid "Please set a new password before proceeding."
+msgstr ""
+
+msgid "Please solve the captcha"
+msgstr ""
+
+msgid "Please try again"
+msgstr ""
+
+msgid "Please try and refresh the page. If the problem persists please contact support."
+msgstr ""
+
+msgid "Please type %{phrase_code} to proceed."
+msgstr ""
+
+msgid "Please use this form to report to the administrator users who create spam issues, comments or behave inappropriately."
+msgstr ""
+
+msgid "Please wait a few moments while we load the file history for this line."
+msgstr ""
+
+msgid "Please wait a moment, this page will automatically refresh when ready."
+msgstr ""
+
+msgid "Please wait for the current action to complete"
+msgstr ""
+
+msgid "Please wait while we connect to your repository. Refresh at will."
+msgstr ""
+
+msgid "Please wait while we import the repository for you. Refresh at will."
+msgstr ""
+
+msgid "Please wait while we prepare for verification."
+msgstr ""
+
+msgid "Pods in use"
+msgstr ""
+
+msgid "Point to any links you like: documentation, built binaries, or other related materials. These can be internal or external links from your GitLab instance. Each URL and link title must be unique."
+msgstr ""
+
+msgid "Policies"
+msgstr ""
+
+msgid "Policy '%{escalation_policy_name}' does not exist."
+msgstr ""
+
+msgid "Policy management project does not have any policies in %{policy_path}"
+msgstr ""
+
+msgid "Policy project doesn't exist"
+msgstr ""
+
+msgid "PolicyRuleMultiSelect|%{firstLabel} +%{numberOfAdditionalLabels} more"
+msgstr ""
+
+msgid "PolicyRuleMultiSelect|All %{itemTypeName}"
+msgstr ""
+
+msgid "PolicyRuleMultiSelect|Clear all"
+msgstr ""
+
+msgid "PolicyRuleMultiSelect|Select %{itemTypeName}"
+msgstr ""
+
+msgid "PolicyRuleMultiSelect|Select all"
+msgstr ""
+
+msgid "Polling interval multiplier"
+msgstr ""
+
+msgid "Popularity"
+msgstr ""
+
+msgid "Port"
+msgstr ""
+
+msgid "Possible to override in each project."
+msgstr ""
+
+msgid "Postman collection"
+msgstr ""
+
+msgid "Postman collection file URL"
+msgstr ""
+
+msgid "Postman collection file path or URL"
+msgstr ""
+
+msgid "Potentially unwanted character detected: Unicode BiDi Control"
+msgstr ""
+
+msgid "Pre-defined push rules"
+msgstr ""
+
+msgid "PreScanVerification|(optional)"
+msgstr ""
+
+msgid "PreScanVerification|Attempts to authenticate with the scan target"
+msgstr ""
+
+msgid "PreScanVerification|Attempts to find and connect to the scan target"
+msgstr ""
+
+msgid "PreScanVerification|Attempts to follow internal links and crawl 3 pages without errors"
+msgstr ""
+
+msgid "PreScanVerification|Authentication"
+msgstr ""
+
+msgid "PreScanVerification|Cancel pre-scan verification"
+msgstr ""
+
+msgid "PreScanVerification|Connection"
+msgstr ""
+
+msgid "PreScanVerification|Download results"
+msgstr ""
+
+msgid "PreScanVerification|Last run %{timeAgo} in pipeline"
+msgstr ""
+
+msgid "PreScanVerification|Pre-scan verification"
+msgstr ""
+
+msgid "PreScanVerification|Save and run verification"
+msgstr ""
+
+msgid "PreScanVerification|Started %{timeAgo} in pipeline"
+msgstr ""
+
+msgid "PreScanVerification|Target exploration"
+msgstr ""
+
+msgid "PreScanVerification|Test your configuration and identify potential errors before running a full scan."
+msgstr ""
+
+msgid "PreScanVerification|The last pre-scan verification job is no longer valid because this scan’s configuration has changed."
+msgstr ""
+
+msgid "PreScanVerification|The pre-scan verification status was reset for this scan"
+msgstr ""
+
+msgid "PreScanVerification|Verification checks"
+msgstr ""
+
+msgid "PreScanVerification|Verification checks are determined by a scan’s configuration details. Changing configuration details may alter or reset the verification checks and their status."
+msgstr ""
+
+msgid "PreScanVerification|Verify configuration"
+msgstr ""
+
+msgid "PreScanVerification|View results"
+msgstr ""
+
+msgid "PreScanVerification|You must complete the scan configuration form before running pre-scan verification"
+msgstr ""
+
+msgid "Preferences"
+msgstr ""
+
+msgid "Preferences saved."
+msgstr ""
+
+msgid "Preferences|%{link_start}List of keyboard shortcuts%{link_end}"
+msgstr ""
+
+msgid "Preferences|Automatically add new list items"
+msgstr ""
+
+msgid "Preferences|Behavior"
+msgstr ""
+
+msgid "Preferences|Choose what content you want to see by default on your homepage."
+msgstr ""
+
+msgid "Preferences|Choose what content you want to see on a project’s overview page."
+msgstr ""
+
+msgid "Preferences|Code Suggestions"
+msgstr ""
+
+msgid "Preferences|Color for added lines"
+msgstr ""
+
+msgid "Preferences|Color for removed lines"
+msgstr ""
+
+msgid "Preferences|Color theme"
+msgstr ""
+
+msgid "Preferences|Configure how dates and times display for you."
+msgstr ""
+
+msgid "Preferences|Content will be a maximum of 1280 pixels wide."
+msgstr ""
+
+msgid "Preferences|Content will span %{percentage} of the page width."
+msgstr ""
+
+msgid "Preferences|Customize integrations with third party services."
+msgstr ""
+
+msgid "Preferences|Customize the appearance of the syntax."
+msgstr ""
+
+msgid "Preferences|Customize the behavior of the system layout and default views."
+msgstr ""
+
+msgid "Preferences|Customize the color of GitLab."
+msgstr ""
+
+msgid "Preferences|Customize the colors of removed and added lines in diffs."
+msgstr ""
+
+msgid "Preferences|Diff colors"
+msgstr ""
+
+msgid "Preferences|Enable %{link_start}Code Suggestions%{link_end} for the following groups.%{br_tag}Only groups that have purchased the Code Suggestion add-on and have available seats are listed here.%{br_tag} If you were expecting to see a group and it is missing from the list, please contact the group owner."
+msgstr ""
+
+msgid "Preferences|Enable Gitpod integration"
+msgstr ""
+
+msgid "Preferences|Enable Zoekt code search"
+msgstr ""
+
+msgid "Preferences|Enable follow users"
+msgstr ""
+
+msgid "Preferences|Enable follow users feature"
+msgstr ""
+
+msgid "Preferences|Enable integrated code intelligence on code views"
+msgstr ""
+
+msgid "Preferences|Enable keyboard shortcuts"
+msgstr ""
+
+msgid "Preferences|Failed to save preferences."
+msgstr ""
+
+msgid "Preferences|For example: 30 minutes ago."
+msgstr ""
+
+msgid "Preferences|Gitpod"
+msgstr ""
+
+msgid "Preferences|Homepage"
+msgstr ""
+
+msgid "Preferences|Instead of all the files changed, show only one file at a time. To switch between files, use the file browser."
+msgstr ""
+
+msgid "Preferences|Integrations"
+msgstr ""
+
+msgid "Preferences|Keyboard shortcuts"
+msgstr ""
+
+msgid "Preferences|Layout width"
+msgstr ""
+
+msgid "Preferences|Must be a number between %{min} and %{max}"
+msgstr ""
+
+msgid "Preferences|Preview"
+msgstr ""
+
+msgid "Preferences|Project overview content"
+msgstr ""
+
+msgid "Preferences|Render whitespace characters in the Web IDE"
+msgstr ""
+
+msgid "Preferences|Show one file at a time on merge request's Changes tab"
+msgstr ""
+
+msgid "Preferences|Show shortcut buttons above files on project overview"
+msgstr ""
+
+msgid "Preferences|Show whitespace changes in diffs"
+msgstr ""
+
+msgid "Preferences|Sourcegraph"
+msgstr ""
+
+msgid "Preferences|Surround text selection when typing quotes or brackets"
+msgstr ""
+
+msgid "Preferences|Syntax highlighting theme"
+msgstr ""
+
+msgid "Preferences|Tab width"
+msgstr ""
+
+msgid "Preferences|This feature is experimental and translations are not yet complete."
+msgstr ""
+
+msgid "Preferences|Time format"
+msgstr ""
+
+msgid "Preferences|Time preferences"
+msgstr ""
+
+msgid "Preferences|Turns on or off the ability to follow or be followed by other users."
+msgstr ""
+
+msgid "Preferences|Turns on or off the preference to search with Zoekt instead of Elasticsearch."
+msgstr ""
+
+msgid "Preferences|Use relative times"
+msgstr ""
+
+msgid "Preferences|When you type in a description or comment box, pressing %{kbdOpen}Enter%{kbdClose} in a list adds a new item below."
+msgstr ""
+
+msgid "Preferences|When you type in a description or comment box, selected text is surrounded by the corresponding character after typing one of the following characters: %{supported_characters}."
+msgstr ""
+
+msgid "Preparing the report for the scan."
+msgstr ""
+
+msgid "Prev"
+msgstr ""
+
+msgid "Prevent auto-stopping"
+msgstr ""
+
+msgid "Prevent environment from auto-stopping"
+msgstr ""
+
+msgid "Prevent outdated deployment jobs"
+msgstr ""
+
+msgid "Prevent project forking outside current group"
+msgstr ""
+
+msgid "Prevent users from changing their profile name"
+msgstr ""
+
+msgid "Prevent users from performing write operations while GitLab maintenance is in progress."
+msgstr ""
+
+msgid "Preview"
+msgstr ""
+
+msgid "Preview Markdown"
+msgstr ""
+
+msgid "Preview changes"
+msgstr ""
+
+msgid "Preview diagram"
+msgstr ""
+
+msgid "Preview payload"
+msgstr ""
+
+msgid "Previous"
+msgstr ""
+
+msgid "Previous commit"
+msgstr ""
+
+msgid "Previous design"
+msgstr ""
+
+msgid "Previous file in diff"
+msgstr ""
+
+msgid "Previous unresolved discussion"
+msgstr ""
+
+msgid "Primary Action"
+msgstr ""
+
+msgid "Primary navigation sidebar"
+msgstr ""
+
+msgid "Print as PDF"
+msgstr ""
+
+msgid "Print codes"
+msgstr ""
+
+msgid "Prioritize"
+msgstr ""
+
+msgid "Prioritize label"
+msgstr ""
+
+msgid "Prioritized"
+msgstr ""
+
+msgid "Prioritized labels"
+msgstr ""
+
+msgid "Priority"
+msgstr ""
+
+msgid "Privacy"
+msgstr ""
+
+msgid "Private"
+msgstr ""
+
+msgid "Private - Guest users are not allowed to view detailed release information like title and source code."
+msgstr ""
+
+msgid "Private - Project access must be granted explicitly to each user. If this project is part of a group, access will be granted to members of the group."
+msgstr ""
+
+msgid "Private - The group and its projects can only be viewed by members."
+msgstr ""
+
+msgid "Private group(s)"
+msgstr ""
+
+msgid "Private profile"
+msgstr ""
+
+msgid "Private profile:"
+msgstr ""
+
+msgid "Private projects can be created in your personal namespace with:"
+msgstr ""
+
+msgid "Private projects compute cost factor"
+msgstr ""
+
+msgid "Problem with %{name} command: %{message}."
+msgstr ""
+
+msgid "Proceed"
+msgstr ""
+
+msgid "Product Analytics"
+msgstr ""
+
+msgid "Product analytics"
+msgstr ""
+
+msgid "Product analytics requires Experiment and Beta features to be enabled."
+msgstr ""
+
+msgid "ProductAnalytics|1. Add the NPM package to your package.json using your preferred package manager"
+msgstr ""
+
+msgid "ProductAnalytics|2. Import the new package into your JS code"
+msgstr ""
+
+msgid "ProductAnalytics|3. Initiate the tracking"
+msgstr ""
+
+msgid "ProductAnalytics|Add another dimension"
+msgstr ""
+
+msgid "ProductAnalytics|Add the script to the page and assign the client SDK to window"
+msgstr ""
+
+msgid "ProductAnalytics|Add the script to the page and assign the client SDK to window:"
+msgstr ""
+
+msgid "ProductAnalytics|After your application has been instrumented and data is being collected, you can visualize and monitor behaviors in your %{linkStart}analytics dashboards%{linkEnd}."
+msgstr ""
+
+msgid "ProductAnalytics|All Events Compared"
+msgstr ""
+
+msgid "ProductAnalytics|All Link Clicks"
+msgstr ""
+
+msgid "ProductAnalytics|All Pages"
+msgstr ""
+
+msgid "ProductAnalytics|All Returning Users Compared"
+msgstr ""
+
+msgid "ProductAnalytics|All Sessions Compared"
+msgstr ""
+
+msgid "ProductAnalytics|An error occurred while fetching data. Refresh the page to try again."
+msgstr ""
+
+msgid "ProductAnalytics|Analytics events by month"
+msgstr ""
+
+msgid "ProductAnalytics|Analyze your product with Product Analytics"
+msgstr ""
+
+msgid "ProductAnalytics|Audience"
+msgstr ""
+
+msgid "ProductAnalytics|Average Per User"
+msgstr ""
+
+msgid "ProductAnalytics|Average Session Duration"
+msgstr ""
+
+msgid "ProductAnalytics|Average duration in minutes"
+msgstr ""
+
+msgid "ProductAnalytics|Back to dashboards"
+msgstr ""
+
+msgid "ProductAnalytics|Compares all events against each other"
+msgstr ""
+
+msgid "ProductAnalytics|Compares all returning users against each other"
+msgstr ""
+
+msgid "ProductAnalytics|Compares all user sessions against each other"
+msgstr ""
+
+msgid "ProductAnalytics|Compares link click events against each other"
+msgstr ""
+
+msgid "ProductAnalytics|Compares page views of all pages against each other"
+msgstr ""
+
+msgid "ProductAnalytics|Creating your product analytics instance..."
+msgstr ""
+
+msgid "ProductAnalytics|Cube API key"
+msgstr ""
+
+msgid "ProductAnalytics|Current month to date"
+msgstr ""
+
+msgid "ProductAnalytics|Details on how to configure product analytics to collect data."
+msgstr ""
+
+msgid "ProductAnalytics|Dimensions"
+msgstr ""
+
+msgid "ProductAnalytics|Event Type"
+msgstr ""
+
+msgid "ProductAnalytics|Events"
+msgstr ""
+
+msgid "ProductAnalytics|Events grouped by %{granularity}"
+msgstr ""
+
+msgid "ProductAnalytics|Events over time"
+msgstr ""
+
+msgid "ProductAnalytics|For more information, see the %{linkStart}docs%{linkEnd}."
+msgstr ""
+
+msgid "ProductAnalytics|For the product analytics dashboard to start showing you some data, you need to add the analytics tracking code to your project."
+msgstr ""
+
+msgid "ProductAnalytics|Get started with product analytics"
+msgstr ""
+
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
+msgid "ProductAnalytics|How many sessions a user has"
+msgstr ""
+
+msgid "ProductAnalytics|How often users returned compared to all sessions"
+msgstr ""
+
+msgid "ProductAnalytics|Instrument your application"
+msgstr ""
+
+msgid "ProductAnalytics|Learn how to enable product analytics"
+msgstr ""
+
+msgid "ProductAnalytics|Learn how to onboard projects"
+msgstr ""
+
+msgid "ProductAnalytics|Link Click Events"
+msgstr ""
+
+msgid "ProductAnalytics|Loading instance"
+msgstr ""
+
+msgid "ProductAnalytics|Measure All tracked Events"
+msgstr ""
+
+msgid "ProductAnalytics|Measure all link click events"
+msgstr ""
+
+msgid "ProductAnalytics|Measure all or specific Page Views"
+msgstr ""
+
+msgid "ProductAnalytics|Measure all returning users"
+msgstr ""
+
+msgid "ProductAnalytics|Measure all sessions"
+msgstr ""
+
+msgid "ProductAnalytics|Measure by unique users"
+msgstr ""
+
+msgid "ProductAnalytics|Measuring"
+msgstr ""
+
+msgid "ProductAnalytics|Month"
+msgstr ""
+
+msgid "ProductAnalytics|No projects found"
+msgstr ""
+
+msgid "ProductAnalytics|On what do you want to get insights?"
+msgstr ""
+
+msgid "ProductAnalytics|Page Views"
+msgstr ""
+
+msgid "ProductAnalytics|Percentage of Users Returning"
+msgstr ""
+
+msgid "ProductAnalytics|Previous month"
+msgstr ""
+
+msgid "ProductAnalytics|Product Analytics"
+msgstr ""
+
+msgid "ProductAnalytics|Product analytics onboarding"
+msgstr ""
+
+msgid "ProductAnalytics|Product analytics usage is calculated based on the total number of events received from projects within the group. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ProductAnalytics|Projects"
+msgstr ""
+
+msgid "ProductAnalytics|Projects (%{maxProjects} of %{totalProjects} shown)"
+msgstr ""
+
+msgid "ProductAnalytics|Returning Users"
+msgstr ""
+
+msgid "ProductAnalytics|SDK application ID"
+msgstr ""
+
+msgid "ProductAnalytics|SDK clients"
+msgstr ""
+
+msgid "ProductAnalytics|SDK host"
+msgstr ""
+
+msgid "ProductAnalytics|Sessions"
+msgstr ""
+
+msgid "ProductAnalytics|Set up Product Analytics to track how your product is performing. Combine it with your GitLab data to better understand where you can improve your product and development processes."
+msgstr ""
+
+msgid "ProductAnalytics|Set up product analytics"
+msgstr ""
+
+msgid "ProductAnalytics|Set up to track how your product is performing and optimize your product and development processes."
+msgstr ""
+
+msgid "ProductAnalytics|Snowplow configurator connection string"
+msgstr ""
+
+msgid "ProductAnalytics|Something went wrong while loading product analytics usage data. Refresh the page to try again."
+msgstr ""
+
+msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
+msgstr ""
+
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
+msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
+msgstr ""
+
+msgid "ProductAnalytics|The host to send all tracking events to"
+msgstr ""
+
+msgid "ProductAnalytics|The sender of tracking events"
+msgstr ""
+
+msgid "ProductAnalytics|This group has no projects with product analytics onboarded in the current period."
+msgstr ""
+
+msgid "ProductAnalytics|This might take a while, feel free to navigate away from this page and come back later."
+msgstr ""
+
+msgid "ProductAnalytics|This table excludes projects that do not have product analytics onboarded."
+msgstr ""
+
+msgid "ProductAnalytics|To instrument your application, select one of the options below. After an option has been instrumented and data is being collected, this page will progress to the next step."
+msgstr ""
+
+msgid "ProductAnalytics|Track your product's performance, and optimize your product and development processes."
+msgstr ""
+
+msgid "ProductAnalytics|Unique Users"
+msgstr ""
+
+msgid "ProductAnalytics|Usage by month"
+msgstr ""
+
+msgid "ProductAnalytics|Usage by project"
+msgstr ""
+
+msgid "ProductAnalytics|Use product analytics"
+msgstr ""
+
+msgid "ProductAnalytics|Used to retrieve dashboard data from the Cube instance."
+msgstr ""
+
+msgid "ProductAnalytics|User Sessions"
+msgstr ""
+
+msgid "ProductAnalytics|User activity"
+msgstr ""
+
+msgid "ProductAnalytics|Users"
+msgstr ""
+
+msgid "ProductAnalytics|Using JS module"
+msgstr ""
+
+msgid "ProductAnalytics|Waiting for events"
+msgstr ""
+
+msgid "ProductAnalytics|What metric do you want to visualize?"
+msgstr ""
+
+msgid "ProductAnalytics|You can instrument your application using a JS module or an HTML script. Follow the instructions below for the option you prefer."
+msgstr ""
+
+msgid "Productivity"
+msgstr ""
+
+msgid "Productivity Analytics"
+msgstr ""
+
+msgid "Productivity analytics"
+msgstr ""
+
+msgid "Productivity analytics can help identify the problems that are delaying your team"
+msgstr ""
+
+msgid "ProductivityAanalytics|Merge requests"
+msgstr ""
+
+msgid "ProductivityAanalytics|is earlier than the allowed minimum date"
+msgstr ""
+
+msgid "ProductivityAnalytics|Ascending"
+msgstr ""
+
+msgid "ProductivityAnalytics|Days"
+msgstr ""
+
+msgid "ProductivityAnalytics|Days to merge"
+msgstr ""
+
+msgid "ProductivityAnalytics|Descending"
+msgstr ""
+
+msgid "ProductivityAnalytics|Hours"
+msgstr ""
+
+msgid "ProductivityAnalytics|List"
+msgstr ""
+
+msgid "ProductivityAnalytics|Merge Requests"
+msgstr ""
+
+msgid "ProductivityAnalytics|Merge date"
+msgstr ""
+
+msgid "ProductivityAnalytics|Merge requests"
+msgstr ""
+
+msgid "ProductivityAnalytics|Time to merge"
+msgstr ""
+
+msgid "ProductivityAnalytics|Trendline"
+msgstr ""
+
+msgid "ProductivityAnalytics|is earlier than the given merged at after date"
+msgstr ""
+
+msgid "Profile"
+msgstr ""
+
+msgid "Profile failed to delete"
+msgstr ""
+
+msgid "Profile image guidelines"
+msgstr ""
+
+msgid "Profile page:"
+msgstr ""
+
+msgid "Profile parameter missing"
+msgstr ""
+
+msgid "ProfileSession|on"
+msgstr ""
+
+msgid "Profiles| You are about to permanently delete %{yourAccount}, and all of the issues, merge requests, and groups linked to your account. Once you confirm %{deleteAccount}, it cannot be undone or recovered."
+msgstr ""
+
+msgid "Profiles| You are about to permanently delete %{yourAccount}, and all of the issues, merge requests, and groups linked to your account. Once you confirm %{deleteAccount}, it cannot be undone or recovered. You might have to wait seven days before creating a new account with the same username or email."
+msgstr ""
+
+msgid "Profiles| You are going to change the username %{currentUsernameBold} to %{newUsernameBold}. Profile and projects will be redirected to the %{newUsername} namespace but this redirect will expire once the %{currentUsername} namespace is registered by another user or group. Please update your Git repository remotes as soon as possible."
+msgstr ""
+
+msgid "Profiles|%{provider} Active"
+msgstr ""
+
+msgid "Profiles|@username"
+msgstr ""
+
+msgid "Profiles|Account could not be deleted. GitLab was unable to verify your identity."
+msgstr ""
+
+msgid "Profiles|Account deletion is not allowed by your administrator."
+msgstr ""
+
+msgid "Profiles|Account deletion is not allowed."
+msgstr ""
+
+msgid "Profiles|Account scheduled for removal."
+msgstr ""
+
+msgid "Profiles|Achievements"
+msgstr ""
+
+msgid "Profiles|Active"
+msgstr ""
+
+msgid "Profiles|Add email address"
+msgstr ""
+
+msgid "Profiles|Add key"
+msgstr ""
+
+msgid "Profiles|Add new email"
+msgstr ""
+
+msgid "Profiles|Add new mirror repository"
+msgstr ""
+
+msgid "Profiles|An error occurred while updating your username, please try again."
+msgstr ""
+
+msgid "Profiles|Avatar cropper"
+msgstr ""
+
+msgid "Profiles|Avatar will be removed. Are you sure?"
+msgstr ""
+
+msgid "Profiles|Begins with %{ssh_key_algorithms}."
+msgstr ""
+
+msgid "Profiles|Bio"
+msgstr ""
+
+msgid "Profiles|Change username"
+msgstr ""
+
+msgid "Profiles|Changing your username can have unintended side effects."
+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 ""
+
+msgid "Profiles|City, country"
+msgstr ""
+
+msgid "Profiles|Commit email"
+msgstr ""
+
+msgid "Profiles|Connect %{provider}"
+msgstr ""
+
+msgid "Profiles|Connect a service for sign-in."
+msgstr ""
+
+msgid "Profiles|Connected Accounts"
+msgstr ""
+
+msgid "Profiles|Control emails linked to your account"
+msgstr ""
+
+msgid "Profiles|Copy SSH key"
+msgstr ""
+
+msgid "Profiles|Created"
+msgstr ""
+
+msgid "Profiles|Current path: %{path}"
+msgstr ""
+
+msgid "Profiles|Current status"
+msgstr ""
+
+msgid "Profiles|Default notification email"
+msgstr ""
+
+msgid "Profiles|Delete account"
+msgstr ""
+
+msgid "Profiles|Deleting an account has the following effects:"
+msgstr ""
+
+msgid "Profiles|Disconnect"
+msgstr ""
+
+msgid "Profiles|Disconnect %{provider}"
+msgstr ""
+
+msgid "Profiles|Discord ID is too long (maximum is %{max_length} characters)."
+msgstr ""
+
+msgid "Profiles|Discord ID is too short (minimum is %{min_length} characters)."
+msgstr ""
+
+msgid "Profiles|Display achievements on your profile"
+msgstr ""
+
+msgid "Profiles|Do not show on profile"
+msgstr ""
+
+msgid "Profiles|Don't display activity-related personal information on your profile."
+msgstr ""
+
+msgid "Profiles|Edit Profile"
+msgstr ""
+
+msgid "Profiles|Email address"
+msgstr ""
+
+msgid "Profiles|Email addresses"
+msgstr ""
+
+msgid "Profiles|Ensure you have two-factor authentication recovery codes stored in a safe place."
+msgstr ""
+
+msgid "Profiles|Enter how your name is pronounced to help people address you correctly."
+msgstr ""
+
+msgid "Profiles|Enter your name, so people you know can recognize you."
+msgstr ""
+
+msgid "Profiles|Enter your password to confirm the email change"
+msgstr ""
+
+msgid "Profiles|Enter your pronouns to let people know how to refer to you."
+msgstr ""
+
+msgid "Profiles|Example: MacBook key"
+msgstr ""
+
+msgid "Profiles|Expiration date"
+msgstr ""
+
+msgid "Profiles|Expired"
+msgstr ""
+
+msgid "Profiles|Expires"
+msgstr ""
+
+msgid "Profiles|Feed token was successfully reset"
+msgstr ""
+
+msgid "Profiles|Full name"
+msgstr ""
+
+msgid "Profiles|GitLab is unable to verify your identity automatically. For security purposes, you must set a password by %{openingTag}resetting your password%{closingTag} to delete your account."
+msgstr ""
+
+msgid "Profiles|If after setting a password, the option to delete your account is still not available, please %{link_start}submit a request%{link_end} to begin the account deletion process."
+msgstr ""
+
+msgid "Profiles|Include private contributions on your profile"
+msgstr ""
+
+msgid "Profiles|Incoming email token was successfully reset"
+msgstr ""
+
+msgid "Profiles|Increase your account's security by enabling two-factor authentication (2FA)."
+msgstr ""
+
+msgid "Profiles|Invalid password"
+msgstr ""
+
+msgid "Profiles|Invalid username"
+msgstr ""
+
+msgid "Profiles|Job title"
+msgstr ""
+
+msgid "Profiles|Key"
+msgstr ""
+
+msgid "Profiles|Key becomes invalid on this date. Maximum lifetime for SSH keys is %{max_ssh_key_lifetime} days"
+msgstr ""
+
+msgid "Profiles|Key titles are publicly visible."
+msgstr ""
+
+msgid "Profiles|Last used"
+msgstr ""
+
+msgid "Profiles|Linked emails"
+msgstr ""
+
+msgid "Profiles|Location"
+msgstr ""
+
+msgid "Profiles|Made a private contribution"
+msgstr ""
+
+msgid "Profiles|Main settings"
+msgstr ""
+
+msgid "Profiles|Manage two-factor authentication"
+msgstr ""
+
+msgid "Profiles|No file chosen."
+msgstr ""
+
+msgid "Profiles|Optional but recommended. If set, key becomes invalid on the specified date."
+msgstr ""
+
+msgid "Profiles|Organization"
+msgstr ""
+
+msgid "Profiles|Path"
+msgstr ""
+
+msgid "Profiles|Position and size your new avatar"
+msgstr ""
+
+msgid "Profiles|Primary email"
+msgstr ""
+
+msgid "Profiles|Private contributions"
+msgstr ""
+
+msgid "Profiles|Profile was successfully updated"
+msgstr ""
+
+msgid "Profiles|Pronouns"
+msgstr ""
+
+msgid "Profiles|Pronunciation"
+msgstr ""
+
+msgid "Profiles|Public avatar"
+msgstr ""
+
+msgid "Profiles|Public email"
+msgstr ""
+
+msgid "Profiles|Publicly visible private SSH keys can compromise your system."
+msgstr ""
+
+msgid "Profiles|Remove avatar"
+msgstr ""
+
+msgid "Profiles|Resend confirmation email"
+msgstr ""
+
+msgid "Profiles|SSH Key: %{title}"
+msgstr ""
+
+msgid "Profiles|Select a service to sign in with."
+msgstr ""
+
+msgid "Profiles|Send confirmation email"
+msgstr ""
+
+msgid "Profiles|Service sign-in"
+msgstr ""
+
+msgid "Profiles|Set new profile picture"
+msgstr ""
+
+msgid "Profiles|Set your local time zone."
+msgstr ""
+
+msgid "Profiles|Some options are unavailable for LDAP accounts"
+msgstr ""
+
+msgid "Profiles|Static object token was successfully reset"
+msgstr ""
+
+msgid "Profiles|Tell us about yourself in fewer than 250 characters."
+msgstr ""
+
+msgid "Profiles|The ability to update your name has been disabled by your administrator."
+msgstr ""
+
+msgid "Profiles|The maximum file size allowed is 200KB."
+msgstr ""
+
+msgid "Profiles|This email will be displayed on your public profile."
+msgstr ""
+
+msgid "Profiles|This email will be used for web based operations, such as edits and merges. %{commit_email_link_start}Learn more.%{commit_email_link_end}"
+msgstr ""
+
+msgid "Profiles|This emoji and message will appear on your profile and throughout the interface."
+msgstr ""
+
+msgid "Profiles|This information will appear on your profile."
+msgstr ""
+
+msgid "Profiles|Time settings"
+msgstr ""
+
+msgid "Profiles|Title"
+msgstr ""
+
+msgid "Profiles|Two-factor authentication"
+msgstr ""
+
+msgid "Profiles|Type your %{confirmationValue} to confirm:"
+msgstr ""
+
+msgid "Profiles|Update profile settings"
+msgstr ""
+
+msgid "Profiles|Update username"
+msgstr ""
+
+msgid "Profiles|Upload new avatar"
+msgstr ""
+
+msgid "Profiles|Usage type"
+msgstr ""
+
+msgid "Profiles|Use a private email - %{email}"
+msgstr ""
+
+msgid "Profiles|User ID"
+msgstr ""
+
+msgid "Profiles|Username change failed - %{message}"
+msgstr ""
+
+msgid "Profiles|Username successfully changed"
+msgstr ""
+
+msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
+msgstr ""
+
+msgid "Profiles|Website URL"
+msgstr ""
+
+msgid "Profiles|Who you represent or work for."
+msgstr ""
+
+msgid "Profiles|You can change your avatar here"
+msgstr ""
+
+msgid "Profiles|You can change your avatar here or remove the current avatar to revert to %{gravatar_link}"
+msgstr ""
+
+msgid "Profiles|You can upload your avatar here"
+msgstr ""
+
+msgid "Profiles|You can upload your avatar here or change it at %{gravatar_link}"
+msgstr ""
+
+msgid "Profiles|You don't have access to delete this user."
+msgstr ""
+
+msgid "Profiles|You must accept the Terms of Service in order to perform this action."
+msgstr ""
+
+msgid "Profiles|You must transfer ownership or delete groups you are an owner of before you can delete your account"
+msgstr ""
+
+msgid "Profiles|You must transfer ownership or delete these groups before you can delete your account."
+msgstr ""
+
+msgid "Profiles|Your Discord user ID. %{external_accounts_link_start}Learn more.%{external_accounts_link_end}"
+msgstr ""
+
+msgid "Profiles|Your LinkedIn profile name from 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 ""
+
+msgid "Profiles|Your location was automatically set based on your %{provider_label} account"
+msgstr ""
+
+msgid "Profiles|Your name was automatically set based on your %{provider_label} account, so people you know can recognize you"
+msgstr ""
+
+msgid "Profiles|Your name was automatically set based on your %{provider_label} account, so people you know can recognize you."
+msgstr ""
+
+msgid "Profiles|https://website.com"
+msgstr ""
+
+msgid "Profiles|username"
+msgstr ""
+
+msgid "Profiles|your account"
+msgstr ""
+
+msgid "Profile|%{job_title} at %{organization}"
+msgstr ""
+
+msgid "Profiling - Performance bar"
+msgstr ""
+
+msgid "Programming languages used in this repository"
+msgstr ""
+
+msgid "Progress"
+msgstr ""
+
+msgid "Progress tracking"
+msgstr ""
+
+msgid "Progressive Web App (PWA)"
+msgstr ""
+
+msgid "Progressive Web App (PWA) icon was successfully removed."
+msgstr ""
+
+msgid "Project"
+msgstr ""
+
+msgid "Project \"%{name}\" is no longer available. Select another project to continue."
+msgstr ""
+
+msgid "Project %{code_open}%{source_project}%{code_close} has more restricted access settings than %{code_open}%{target_project}%{code_close}. To avoid exposing private changes, make sure you're submitting changes to the correct project."
+msgstr ""
+
+msgid "Project %{project_repo} could not be found"
+msgstr ""
+
+msgid "Project & Group can not be assigned at the same time"
+msgstr ""
+
+msgid "Project '%{project_name}' is being imported."
+msgstr ""
+
+msgid "Project '%{project_name}' is in the process of being deleted."
+msgstr ""
+
+msgid "Project '%{project_name}' is restored."
+msgstr ""
+
+msgid "Project '%{project_name}' queued for deletion."
+msgstr ""
+
+msgid "Project '%{project_name}' was successfully created."
+msgstr ""
+
+msgid "Project '%{project_name}' was successfully updated."
+msgstr ""
+
+msgid "Project '%{project_name}' will be deleted on %{date}"
+msgstr ""
+
+msgid "Project Access Tokens"
+msgstr ""
+
+msgid "Project Badges"
+msgstr ""
+
+msgid "Project Files"
+msgstr ""
+
+msgid "Project ID"
+msgstr ""
+
+msgid "Project Templates"
+msgstr ""
+
+msgid "Project URL"
+msgstr ""
+
+msgid "Project access token creation is disabled in this group."
+msgstr ""
+
+msgid "Project already deleted"
+msgstr ""
+
+msgid "Project and wiki repositories"
+msgstr ""
+
+msgid "Project audit events"
+msgstr ""
+
+msgid "Project avatar"
+msgstr ""
+
+msgid "Project cannot be shared with the group it is in or one of its ancestors."
+msgstr ""
+
+msgid "Project configuration, excluding integrations"
+msgstr ""
+
+msgid "Project description (optional)"
+msgstr ""
+
+msgid "Project does not exist or you don't have permission to perform this action"
+msgstr ""
+
+msgid "Project does not have a policy configuration"
+msgstr ""
+
+msgid "Project export could not be deleted."
+msgstr ""
+
+msgid "Project export download requests"
+msgstr ""
+
+msgid "Project export has been deleted."
+msgstr ""
+
+msgid "Project export link has expired. Please generate a new export from your project settings."
+msgstr ""
+
+msgid "Project export requests"
+msgstr ""
+
+msgid "Project export started. A download link will be sent by email and made available on this page."
+msgstr ""
+
+msgid "Project groups"
+msgstr ""
+
+msgid "Project has too many %{label_for_message} to search"
+msgstr ""
+
+msgid "Project import requests"
+msgstr ""
+
+msgid "Project info:"
+msgstr ""
+
+msgid "Project information"
+msgstr ""
+
+msgid "Project members"
+msgstr ""
+
+msgid "Project milestone"
+msgstr ""
+
+msgid "Project must have default branch"
+msgstr ""
+
+msgid "Project name"
+msgstr ""
+
+msgid "Project navigation"
+msgstr ""
+
+msgid "Project or Group"
+msgstr ""
+
+msgid "Project order will not be saved as local storage is not available."
+msgstr ""
+
+msgid "Project path"
+msgstr ""
+
+msgid "Project security status"
+msgstr ""
+
+msgid "Project security status help page"
+msgstr ""
+
+msgid "Project settings were successfully updated."
+msgstr ""
+
+msgid "Project slug"
+msgstr ""
+
+msgid "Project that can be accessed"
+msgstr ""
+
+msgid "Project uploads"
+msgstr ""
+
+msgid "Project visibility level is less restrictive than the group settings."
+msgstr ""
+
+msgid "Project visibility level will be changed to match namespace rules when transferring to a group."
+msgstr ""
+
+msgid "Project was created and assigned as security policy project, but failed adding users to the project."
+msgstr ""
+
+msgid "Project was not found or you do not have permission to add this project to Security Dashboards."
+msgstr ""
+
+msgid "Project with access"
+msgstr ""
+
+msgid "Project: %{name}"
+msgstr ""
+
+msgid "Project:Branches: %{source_project_path}:%{source_branch} to %{target_project_path}:%{target_branch}"
+msgstr ""
+
+msgid "Project:Branches: %{source_project_path}:%{source_branch} → %{target_project_path}:%{target_branch}"
+msgstr ""
+
+msgid "ProjectActivityRSS|Subscribe"
+msgstr ""
+
+msgid "ProjectCreationLevel|Allowed to create projects"
+msgstr ""
+
+msgid "ProjectCreationLevel|Default project creation protection"
+msgstr ""
+
+msgid "ProjectCreationLevel|Developers + Maintainers"
+msgstr ""
+
+msgid "ProjectCreationLevel|Maintainers"
+msgstr ""
+
+msgid "ProjectCreationLevel|No one"
+msgstr ""
+
+msgid "ProjectCreationLevel|Roles allowed to create projects"
+msgstr ""
+
+msgid "ProjectExceededSize|Here is the project exceeding the storage quota:%{projects_list}"
+msgid_plural "ProjectExceededSize|From the %{repository_size_excess_project_count} projects exceeding the quota, below are the projects using the most storage:%{projects_list}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ProjectFileTree|Name"
+msgstr ""
+
+msgid "ProjectFileTree|Show more"
+msgstr ""
+
+msgid "ProjectList|Starred"
+msgstr ""
+
+msgid "ProjectList|Yours"
+msgstr ""
+
+msgid "ProjectOverview|Create new fork"
+msgstr ""
+
+msgid "ProjectOverview|Fork"
+msgstr ""
+
+msgid "ProjectOverview|Go to your fork"
+msgstr ""
+
+msgid "ProjectOverview|Star"
+msgstr ""
+
+msgid "ProjectOverview|Starrer"
+msgstr ""
+
+msgid "ProjectOverview|Starrers"
+msgstr ""
+
+msgid "ProjectOverview|Unstar"
+msgstr ""
+
+msgid "ProjectOverview|You don't have permission to fork this project"
+msgstr ""
+
+msgid "ProjectOverview|You have reached your project limit"
+msgstr ""
+
+msgid "ProjectOverview|You must sign in to star a project"
+msgstr ""
+
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
+
+msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
+msgstr ""
+
+msgid "ProjectQualitySummary|Analysis of your source code's quality and complexity."
+msgstr ""
+
+msgid "ProjectQualitySummary|Blocker"
+msgstr ""
+
+msgid "ProjectQualitySummary|Code quality"
+msgstr ""
+
+msgid "ProjectQualitySummary|Coverage"
+msgstr ""
+
+msgid "ProjectQualitySummary|Critical"
+msgstr ""
+
+msgid "ProjectQualitySummary|Failure"
+msgstr ""
+
+msgid "ProjectQualitySummary|Get insight into the overall percentage of tests in your project that succeed, fail and are skipped."
+msgstr ""
+
+msgid "ProjectQualitySummary|Help us improve this page"
+msgstr ""
+
+msgid "ProjectQualitySummary|Latest pipeline results"
+msgstr ""
+
+msgid "ProjectQualitySummary|Learn more about Code Quality"
+msgstr ""
+
+msgid "ProjectQualitySummary|Learn more about test coverage"
+msgstr ""
+
+msgid "ProjectQualitySummary|Learn more about test reports"
+msgstr ""
+
+msgid "ProjectQualitySummary|Measure of how much of your code is covered by tests."
+msgstr ""
+
+msgid "ProjectQualitySummary|Provide feedback"
+msgstr ""
+
+msgid "ProjectQualitySummary|See full report"
+msgstr ""
+
+msgid "ProjectQualitySummary|See project Code Coverage Statistics"
+msgstr ""
+
+msgid "ProjectQualitySummary|Set up test runs"
+msgstr ""
+
+msgid "ProjectQualitySummary|Set up test runs (opens in a new tab)"
+msgstr ""
+
+msgid "ProjectQualitySummary|Skipped"
+msgstr ""
+
+msgid "ProjectQualitySummary|Success"
+msgstr ""
+
+msgid "ProjectQualitySummary|Test coverage"
+msgstr ""
+
+msgid "ProjectQualitySummary|Test runs"
+msgstr ""
+
+msgid "ProjectQualitySummary|The percentage of tests that succeed, fail, or are skipped."
+msgstr ""
+
+msgid "ProjectQualitySummary|This page helps you understand the code testing trends for your project. Let us know how we can improve it!"
+msgstr ""
+
+msgid "ProjectQualitySummary|Violations"
+msgstr ""
+
+msgid "ProjectQualitySummary|Violations found"
+msgstr ""
+
+msgid "ProjectSelect|No matching results"
+msgstr ""
+
+msgid "ProjectSelect|Search for project"
+msgstr ""
+
+msgid "ProjectSelect|Search projects"
+msgstr ""
+
+msgid "ProjectSelect|Select a project"
+msgstr ""
+
+msgid "ProjectSelect|There was an error fetching the projects. Please try again."
+msgstr ""
+
+msgid "ProjectService|Drone server URL"
+msgstr ""
+
+msgid "ProjectService|Enter new API key"
+msgstr ""
+
+msgid "ProjectService|Enter new password"
+msgstr ""
+
+msgid "ProjectService|Enter new password."
+msgstr ""
+
+msgid "ProjectService|Enter new token"
+msgstr ""
+
+msgid "ProjectService|Jenkins server URL"
+msgstr ""
+
+msgid "ProjectService|Leave blank to use your current API key"
+msgstr ""
+
+msgid "ProjectService|Leave blank to use your current API key."
+msgstr ""
+
+msgid "ProjectService|Leave blank to use your current password"
+msgstr ""
+
+msgid "ProjectService|Leave blank to use your current password."
+msgstr ""
+
+msgid "ProjectService|Leave blank to use your current token."
+msgstr ""
+
+msgid "ProjectService|Mock service URL"
+msgstr ""
+
+msgid "ProjectService|Must have permission to trigger a manual build in TeamCity."
+msgstr ""
+
+msgid "ProjectService|Perform common operations on GitLab project: %{project_name}"
+msgstr ""
+
+msgid "ProjectService|Run CI/CD pipelines with Buildkite."
+msgstr ""
+
+msgid "ProjectService|Run CI/CD pipelines with Drone."
+msgstr ""
+
+msgid "ProjectService|Run CI/CD pipelines with JetBrains TeamCity."
+msgstr ""
+
+msgid "ProjectService|TeamCity server URL"
+msgstr ""
+
+msgid "ProjectService|The build configuration ID of the TeamCity project."
+msgstr ""
+
+msgid "ProjectService|The token you get after you create a Buildkite pipeline with a GitLab repository."
+msgstr ""
+
+msgid "ProjectService|To configure this integration, you should:"
+msgstr ""
+
+msgid "ProjectService|Token for the Drone project."
+msgstr ""
+
+msgid "ProjectService|Trigger event for new comments on confidential issues."
+msgstr ""
+
+msgid "ProjectService|Trigger event for new comments."
+msgstr ""
+
+msgid "ProjectService|Trigger event for new tags pushed to the repository."
+msgstr ""
+
+msgid "ProjectService|Trigger event for pushes to the repository."
+msgstr ""
+
+msgid "ProjectService|Trigger event when a build is created."
+msgstr ""
+
+msgid "ProjectService|Trigger event when a commit is created or updated."
+msgstr ""
+
+msgid "ProjectService|Trigger event when a confidential issue is created, updated, or closed."
+msgstr ""
+
+msgid "ProjectService|Trigger event when a deployment starts or finishes."
+msgstr ""
+
+msgid "ProjectService|Trigger event when a merge request is created, updated, or merged."
+msgstr ""
+
+msgid "ProjectService|Trigger event when a new, unique alert is recorded."
+msgstr ""
+
+msgid "ProjectService|Trigger event when a new, unique vulnerability is recorded. (Note: This feature requires an Ultimate plan.)"
+msgstr ""
+
+msgid "ProjectService|Trigger event when a pipeline status changes."
+msgstr ""
+
+msgid "ProjectService|Trigger event when a wiki page is created or updated."
+msgstr ""
+
+msgid "ProjectService|Trigger event when an incident is created."
+msgstr ""
+
+msgid "ProjectService|Trigger event when an issue is created, updated, or closed."
+msgstr ""
+
+msgid "ProjectSettings|%{link_start}What are description templates?%{link_end}"
+msgstr ""
+
+msgid "ProjectSettings|%{link_start}What variables can I use?%{link_end}"
+msgstr ""
+
+msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
+msgstr ""
+
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
+msgid "ProjectSettings|Additional options"
+msgstr ""
+
+msgid "ProjectSettings|Additional settings that influence how and when merges are done."
+msgstr ""
+
+msgid "ProjectSettings|All merge requests and commits are made against this branch unless you specify a different one."
+msgstr ""
+
+msgid "ProjectSettings|All your dashboard data sources."
+msgstr ""
+
+msgid "ProjectSettings|Allow"
+msgstr ""
+
+msgid "ProjectSettings|Allow anyone to pull from Package Registry"
+msgstr ""
+
+msgid "ProjectSettings|Allow skipping the merge train"
+msgstr ""
+
+msgid "ProjectSettings|Always show thumbs-up and thumbs-down emoji buttons on issues, merge requests, and snippets."
+msgstr ""
+
+msgid "ProjectSettings|Analytics"
+msgstr ""
+
+msgid "ProjectSettings|Analytics Dashboards"
+msgstr ""
+
+msgid "ProjectSettings|Anyone can pull packages with a package manager API."
+msgstr ""
+
+msgid "ProjectSettings|Auto-close referenced issues on default branch"
+msgstr ""
+
+msgid "ProjectSettings|Automatically resolve merge request diff threads when they become outdated"
+msgstr ""
+
+msgid "ProjectSettings|Badges"
+msgstr ""
+
+msgid "ProjectSettings|Branches created from issues follow this pattern."
+msgstr ""
+
+msgid "ProjectSettings|Build, test, and deploy your changes."
+msgstr ""
+
+msgid "ProjectSettings|Checkbox is visible and selected by default."
+msgstr ""
+
+msgid "ProjectSettings|Checkbox is visible and unselected by default."
+msgstr ""
+
+msgid "ProjectSettings|Choose the method, options, checks, and squash options for merge requests. You can also set up merge request templates for different actions."
+msgstr ""
+
+msgid "ProjectSettings|Choose your merge method, merge options, merge checks, and merge suggestions."
+msgstr ""
+
+msgid "ProjectSettings|Choose your merge method, options, checks, and squash options."
+msgstr ""
+
+msgid "ProjectSettings|Collector host"
+msgstr ""
+
+msgid "ProjectSettings|Combine git tags with release notes, release evidence, and assets to create a release."
+msgstr ""
+
+msgid "ProjectSettings|Configure your infrastructure."
+msgstr ""
+
+msgid "ProjectSettings|Connect your instance"
+msgstr ""
+
+msgid "ProjectSettings|Contact an admin to change this setting."
+msgstr ""
+
+msgid "ProjectSettings|Container registry"
+msgstr ""
+
+msgid "ProjectSettings|Cube API URL"
+msgstr ""
+
+msgid "ProjectSettings|Custom dashboard projects"
+msgstr ""
+
+msgid "ProjectSettings|Data sources"
+msgstr ""
+
+msgid "ProjectSettings|Determine what happens to the commit history when you merge a merge request."
+msgstr ""
+
+msgid "ProjectSettings|Do not allow"
+msgstr ""
+
+msgid "ProjectSettings|Enable \"Delete source branch\" option by default"
+msgstr ""
+
+msgid "ProjectSettings|Enable email notifications"
+msgstr ""
+
+msgid "ProjectSettings|Enable merge trains"
+msgstr ""
+
+msgid "ProjectSettings|Enable merged results pipelines"
+msgstr ""
+
+msgid "ProjectSettings|Enable sending email notifications for this project"
+msgstr ""
+
+msgid "ProjectSettings|Enable suggested reviewers"
+msgstr ""
+
+msgid "ProjectSettings|Encourage"
+msgstr ""
+
+msgid "ProjectSettings|Environments"
+msgstr ""
+
+msgid "ProjectSettings|Every merge creates a merge commit."
+msgstr ""
+
+msgid "ProjectSettings|Every project can have its own space to store its Docker images"
+msgstr ""
+
+msgid "ProjectSettings|Every project can make deployments to environments either via CI/CD or API calls. Non-project members have read-only access."
+msgstr ""
+
+msgid "ProjectSettings|Everyone"
+msgstr ""
+
+msgid "ProjectSettings|Existing merge requests and protected branches are not affected."
+msgstr ""
+
+msgid "ProjectSettings|Failed to protect the tag"
+msgstr ""
+
+msgid "ProjectSettings|Failed to update tag!"
+msgstr ""
+
+msgid "ProjectSettings|Fast-forward merge"
+msgstr ""
+
+msgid "ProjectSettings|Fast-forward merges only."
+msgstr ""
+
+msgid "ProjectSettings|Feature flags"
+msgstr ""
+
+msgid "ProjectSettings|Flexible tool to collaboratively develop ideas and plan work in this project."
+msgstr ""
+
+msgid "ProjectSettings|For Gitaly, location of data on the storage. For Gitaly Cluster, location of data on the virtual storage."
+msgstr ""
+
+msgid "ProjectSettings|For Gitaly, name of the storage that stores the repository. For Gitaly Cluster, name of the virtual storage that stores the repository."
+msgstr ""
+
+msgid "ProjectSettings|Forks"
+msgstr ""
+
+msgid "ProjectSettings|Git Large File Storage (LFS)"
+msgstr ""
+
+msgid "ProjectSettings|Global"
+msgstr ""
+
+msgid "ProjectSettings|Highlight the usage of hidden unicode characters. These have innocent uses for right-to-left languages, but can also be used in potential exploits."
+msgstr ""
+
+msgid "ProjectSettings|Housekeeping, export, archive, change path, transfer, and delete."
+msgstr ""
+
+msgid "ProjectSettings|How do they differ?"
+msgstr ""
+
+msgid "ProjectSettings|If merge trains are enabled, merging is only possible if the branch can be rebased without conflicts."
+msgstr ""
+
+msgid "ProjectSettings|Infrastructure"
+msgstr ""
+
+msgid "ProjectSettings|Instrument your application"
+msgstr ""
+
+msgid "ProjectSettings|Instrumentation details"
+msgstr ""
+
+msgid "ProjectSettings|Internal"
+msgstr ""
+
+msgid "ProjectSettings|Issues"
+msgstr ""
+
+msgid "ProjectSettings|LFS objects from this repository are available to forks. %{linkStart}How do I remove them?%{linkEnd}"
+msgstr ""
+
+msgid "ProjectSettings|Leave empty to use default template."
+msgstr ""
+
+msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
+msgstr ""
+
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
+msgid "ProjectSettings|Manage who can see the project in the public access directory."
+msgstr ""
+
+msgid "ProjectSettings|Manages large files such as audio, video, and graphics files."
+msgstr ""
+
+msgid "ProjectSettings|Maximum %{maxLength} characters."
+msgstr ""
+
+msgid "ProjectSettings|Merge checks"
+msgstr ""
+
+msgid "ProjectSettings|Merge commit"
+msgstr ""
+
+msgid "ProjectSettings|Merge commit message template"
+msgstr ""
+
+msgid "ProjectSettings|Merge commit with semi-linear history"
+msgstr ""
+
+msgid "ProjectSettings|Merge method"
+msgstr ""
+
+msgid "ProjectSettings|Merge options"
+msgstr ""
+
+msgid "ProjectSettings|Merge requests"
+msgstr ""
+
+msgid "ProjectSettings|Merge requests approved for merge are queued, and pipelines validate the combined results of the source and target branches before merge. %{link_start}What are merge trains?%{link_end}"
+msgstr ""
+
+msgid "ProjectSettings|Merge requests can be set to merge immediately without interrupting the merge train. Commits in earlier merge train pipelines might not get validated with immediately merged commits."
+msgstr ""
+
+msgid "ProjectSettings|Merge suggestions"
+msgstr ""
+
+msgid "ProjectSettings|Merging is only allowed when the source branch is up-to-date with its target."
+msgstr ""
+
+msgid "ProjectSettings|Model experiments"
+msgstr ""
+
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
+msgid "ProjectSettings|Monitor"
+msgstr ""
+
+msgid "ProjectSettings|Monitor the health of your project and respond to incidents."
+msgstr ""
+
+msgid "ProjectSettings|No merge commits are created."
+msgstr ""
+
+msgid "ProjectSettings|Note: The container registry is always visible when a project is public and the container registry is set to '%{access_level_description}'"
+msgstr ""
+
+msgid "ProjectSettings|Only commits that include a %{code_block_start}Signed-off-by:%{code_block_end} element can be pushed to this repository."
+msgstr ""
+
+msgid "ProjectSettings|Only signed commits can be pushed to this repository."
+msgstr ""
+
+msgid "ProjectSettings|Override instance analytics configuration for this project"
+msgstr ""
+
+msgid "ProjectSettings|Package registry"
+msgstr ""
+
+msgid "ProjectSettings|Pages"
+msgstr ""
+
+msgid "ProjectSettings|Pages for project documentation."
+msgstr ""
+
+msgid "ProjectSettings|Prevents direct linking to potentially sensitive media files"
+msgstr ""
+
+msgid "ProjectSettings|Private"
+msgstr ""
+
+msgid "ProjectSettings|Product analytics"
+msgstr ""
+
+msgid "ProjectSettings|Project visibility"
+msgstr ""
+
+msgid "ProjectSettings|Public"
+msgstr ""
+
+msgid "ProjectSettings|Publish, store, and view packages in a project."
+msgstr ""
+
+msgid "ProjectSettings|Relative path:"
+msgstr ""
+
+msgid "ProjectSettings|Releases"
+msgstr ""
+
+msgid "ProjectSettings|Repository"
+msgstr ""
+
+msgid "ProjectSettings|Require"
+msgstr ""
+
+msgid "ProjectSettings|Require an associated issue from Jira"
+msgstr ""
+
+msgid "ProjectSettings|Require authentication to view media files"
+msgstr ""
+
+msgid "ProjectSettings|Requirements"
+msgstr ""
+
+msgid "ProjectSettings|Requirements management system."
+msgstr ""
+
+msgid "ProjectSettings|Roll out new features without redeploying with feature flags."
+msgstr ""
+
+msgid "ProjectSettings|Search for topic"
+msgstr ""
+
+msgid "ProjectSettings|Security and Compliance"
+msgstr ""
+
+msgid "ProjectSettings|Security and compliance for this project."
+msgstr ""
+
+msgid "ProjectSettings|Select a project"
+msgstr ""
+
+msgid "ProjectSettings|Select the default branch for this project, and configure the template for branch names."
+msgstr ""
+
+msgid "ProjectSettings|Select the project containing Analytics Dashboards configuration files."
+msgstr ""
+
+msgid "ProjectSettings|Set the default behavior of this option in merge requests. Changes to this are also applied to existing merge requests."
+msgstr ""
+
+msgid "ProjectSettings|Share code with others outside the project."
+msgstr ""
+
+msgid "ProjectSettings|Show default emoji reactions"
+msgstr ""
+
+msgid "ProjectSettings|Show link to create or view a merge request when pushing from the command line"
+msgstr ""
+
+msgid "ProjectSettings|Snippets"
+msgstr ""
+
+msgid "ProjectSettings|Squash commit message template"
+msgstr ""
+
+msgid "ProjectSettings|Squash commits when merging"
+msgstr ""
+
+msgid "ProjectSettings|Squashing is always performed. Checkbox is visible and selected, and users cannot change it."
+msgstr ""
+
+msgid "ProjectSettings|Squashing is never performed and the checkbox is hidden."
+msgstr ""
+
+msgid "ProjectSettings|Status checks must succeed"
+msgstr ""
+
+msgid "ProjectSettings|Storage name:"
+msgstr ""
+
+msgid "ProjectSettings|Store custom configuration files."
+msgstr ""
+
+msgid "ProjectSettings|Submit changes to be merged upstream."
+msgstr ""
+
+msgid "ProjectSettings|Target project"
+msgstr ""
+
+msgid "ProjectSettings|The URL of your Cube instance."
+msgstr ""
+
+msgid "ProjectSettings|The commit message used when applying merge request suggestions."
+msgstr ""
+
+msgid "ProjectSettings|The commit message used when merging, if the merge method creates a merge commit."
+msgstr ""
+
+msgid "ProjectSettings|The commit message used when squashing commits."
+msgstr ""
+
+msgid "ProjectSettings|The default target project for merge requests created in this fork project."
+msgstr ""
+
+msgid "ProjectSettings|The default template will be applied on save."
+msgstr ""
+
+msgid "ProjectSettings|The host of your data collector instance."
+msgstr ""
+
+msgid "ProjectSettings|These checks must pass before merge requests can be merged."
+msgstr ""
+
+msgid "ProjectSettings|This project"
+msgstr ""
+
+msgid "ProjectSettings|This setting is applied on the server level and can be overridden by an admin."
+msgstr ""
+
+msgid "ProjectSettings|This setting is applied on the server level but has been overridden for this project."
+msgstr ""
+
+msgid "ProjectSettings|This setting will be applied to all projects unless overridden by an admin."
+msgstr ""
+
+msgid "ProjectSettings|Topics"
+msgstr ""
+
+msgid "ProjectSettings|Topics are publicly visible even on private projects. Do not include sensitive information in topic names. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ProjectSettings|Track machine learning model experiments and artifacts."
+msgstr ""
+
+msgid "ProjectSettings|Transfer project"
+msgstr ""
+
+msgid "ProjectSettings|Upstream project"
+msgstr ""
+
+msgid "ProjectSettings|Used for every new merge request."
+msgstr ""
+
+msgid "ProjectSettings|Users can copy the repository to a new project."
+msgstr ""
+
+msgid "ProjectSettings|Users can only push commits to this repository if the commit author name is consistent with their GitLab account name."
+msgstr ""
+
+msgid "ProjectSettings|Users can only push commits to this repository if the committer email is one of their own verified emails."
+msgstr ""
+
+msgid "ProjectSettings|Users can request access"
+msgstr ""
+
+msgid "ProjectSettings|View and edit files in this project."
+msgstr ""
+
+msgid "ProjectSettings|View and edit files in this project. When set to **Everyone With Access** non-project members have only read access."
+msgstr ""
+
+msgid "ProjectSettings|View project analytics."
+msgstr ""
+
+msgid "ProjectSettings|Visibility options for this fork are limited by the current visibility of the source project."
+msgstr ""
+
+msgid "ProjectSettings|Warn about Potentially Unwanted Characters"
+msgstr ""
+
+msgid "ProjectSettings|What are badges?"
+msgstr ""
+
+msgid "ProjectSettings|What are merge trains?"
+msgstr ""
+
+msgid "ProjectSettings|What is squashing?"
+msgstr ""
+
+msgid "ProjectSettings|When merge request pipelines are enabled in the CI/CD configuration file, pipelines validate the combined results of the source and target branches. %{link_start}How to configure merge request pipelines?%{link_end}"
+msgstr ""
+
+msgid "ProjectSettings|When semi-linear merge is not possible, the user is given the option to rebase."
+msgstr ""
+
+msgid "ProjectSettings|When there is a merge conflict, the user is given the option to rebase."
+msgstr ""
+
+msgid "ProjectSettings|Wiki"
+msgstr ""
+
+msgid "ProjectSettings|With GitLab Pages you can host your static websites on GitLab. GitLab Pages uses a caching mechanism for efficiency. Your changes may not take effect until that cache is invalidated, which usually takes less than a minute."
+msgstr ""
+
+msgid "ProjectSettings|You need to %{linkStart}set up product analytics%{linkEnd} before your application can be instrumented."
+msgstr ""
+
+msgid "ProjectSettings|Your project is set up. %{linkStart}View instrumentation instructions%{linkEnd}."
+msgstr ""
+
+msgid "ProjectSetting|already in use"
+msgstr ""
+
+msgid "ProjectTemplates|.NET Core"
+msgstr ""
+
+msgid "ProjectTemplates|Android"
+msgstr ""
+
+msgid "ProjectTemplates|Astro Tailwind"
+msgstr ""
+
+msgid "ProjectTemplates|GitLab Cluster Management"
+msgstr ""
+
+msgid "ProjectTemplates|Gitpod/Spring Petclinic"
+msgstr ""
+
+msgid "ProjectTemplates|Go Micro"
+msgstr ""
+
+msgid "ProjectTemplates|HIPAA Audit Protocol"
+msgstr ""
+
+msgid "ProjectTemplates|Jsonnet for Dynamic Child Pipelines"
+msgstr ""
+
+msgid "ProjectTemplates|Kotlin Native for Linux"
+msgstr ""
+
+msgid "ProjectTemplates|Laravel Framework"
+msgstr ""
+
+msgid "ProjectTemplates|Netlify/GitBook"
+msgstr ""
+
+msgid "ProjectTemplates|Netlify/Hexo"
+msgstr ""
+
+msgid "ProjectTemplates|Netlify/Hugo"
+msgstr ""
+
+msgid "ProjectTemplates|Netlify/Jekyll"
+msgstr ""
+
+msgid "ProjectTemplates|Netlify/Plain HTML"
+msgstr ""
+
+msgid "ProjectTemplates|NodeJS Express"
+msgstr ""
+
+msgid "ProjectTemplates|Pages/Bridgetown"
+msgstr ""
+
+msgid "ProjectTemplates|Pages/Gatsby"
+msgstr ""
+
+msgid "ProjectTemplates|Pages/Hexo"
+msgstr ""
+
+msgid "ProjectTemplates|Pages/Hugo"
+msgstr ""
+
+msgid "ProjectTemplates|Pages/Jekyll"
+msgstr ""
+
+msgid "ProjectTemplates|Pages/Middleman"
+msgstr ""
+
+msgid "ProjectTemplates|Pages/Pelican"
+msgstr ""
+
+msgid "ProjectTemplates|Pages/Plain HTML"
+msgstr ""
+
+msgid "ProjectTemplates|Ruby on Rails"
+msgstr ""
+
+msgid "ProjectTemplates|SalesforceDX"
+msgstr ""
+
+msgid "ProjectTemplates|Sample GitLab Project"
+msgstr ""
+
+msgid "ProjectTemplates|Serverless Framework/JS"
+msgstr ""
+
+msgid "ProjectTemplates|Spring"
+msgstr ""
+
+msgid "ProjectTemplates|TYPO3 Distribution"
+msgstr ""
+
+msgid "ProjectTemplates|Tencent Serverless Framework/NextjsSSR"
+msgstr ""
+
+msgid "ProjectTemplates|iOS (Swift)"
+msgstr ""
+
+msgid "ProjectTransfer|An error occurred fetching the transfer locations, please refresh the page and try again."
+msgstr ""
+
+msgid "ProjectView|Activity"
+msgstr ""
+
+msgid "ProjectView|Files and Readme (default)"
+msgstr ""
+
+msgid "ProjectView|Readme"
+msgstr ""
+
+msgid "ProjectView|Wiki"
+msgstr ""
+
+msgid "Projects"
+msgstr ""
+
+msgid "Projects (%{count})"
+msgstr ""
+
+msgid "Projects API"
+msgstr ""
+
+msgid "Projects API rate limit"
+msgstr ""
+
+msgid "Projects Successfully Retrieved"
+msgstr ""
+
+msgid "Projects are graded based on the highest severity vulnerability present"
+msgstr ""
+
+msgid "Projects are where you store your code, access issues, wiki and other features of GitLab."
+msgstr ""
+
+msgid "Projects contributed to"
+msgstr ""
+
+msgid "Projects help you organize your work. They contain your file repository, issues, merge requests, and so much more."
+msgstr ""
+
+msgid "Projects in this group can use Git LFS"
+msgstr ""
+
+msgid "Projects shared with %{group_name}"
+msgstr ""
+
+msgid "Projects to index"
+msgstr ""
+
+msgid "Projects with critical vulnerabilities"
+msgstr ""
+
+msgid "Projects with high or unknown vulnerabilities"
+msgstr ""
+
+msgid "Projects with low vulnerabilities"
+msgstr ""
+
+msgid "Projects with medium vulnerabilities"
+msgstr ""
+
+msgid "Projects with no vulnerabilities and security scanning enabled"
+msgstr ""
+
+msgid "Projects with this topic"
+msgstr ""
+
+msgid "Projects with write access"
+msgstr ""
+
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
+msgstr ""
+
+msgid "ProjectsNew|An error occurred while checking group path. Please refresh and try again."
+msgstr ""
+
+msgid "ProjectsNew|Analyze your source code for known security vulnerabilities."
+msgstr ""
+
+msgid "ProjectsNew|Connect your external repository to GitLab CI/CD."
+msgstr ""
+
+msgid "ProjectsNew|Contact an administrator to enable options for importing your project."
+msgstr ""
+
+msgid "ProjectsNew|Create"
+msgstr ""
+
+msgid "ProjectsNew|Create a blank project to store your files, plan your work, and collaborate on code, among other things."
+msgstr ""
+
+msgid "ProjectsNew|Create a project pre-populated with the necessary files to get you started quickly."
+msgstr ""
+
+msgid "ProjectsNew|Create blank project"
+msgstr ""
+
+msgid "ProjectsNew|Create from template"
+msgstr ""
+
+msgid "ProjectsNew|Create new project"
+msgstr ""
+
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
+msgid "ProjectsNew|Description format"
+msgstr ""
+
+msgid "ProjectsNew|Enable Static Application Security Testing (SAST)"
+msgstr ""
+
+msgid "ProjectsNew|Group name"
+msgstr ""
+
+msgid "ProjectsNew|Import"
+msgstr ""
+
+msgid "ProjectsNew|Import project"
+msgstr ""
+
+msgid "ProjectsNew|Include a Getting Started README"
+msgstr ""
+
+msgid "ProjectsNew|Initialize repository with a README"
+msgstr ""
+
+msgid "ProjectsNew|Migrate your data from an external source like GitHub, Bitbucket, or another instance of GitLab."
+msgstr ""
+
+msgid "ProjectsNew|Must start with a lowercase or uppercase letter, digit, emoji, or underscore. Can also contain dots, pluses, dashes, or spaces."
+msgstr ""
+
+msgid "ProjectsNew|New project"
+msgstr ""
+
+msgid "ProjectsNew|No import options available"
+msgstr ""
+
+msgid "ProjectsNew|Pick a group or namespace"
+msgstr ""
+
+msgid "ProjectsNew|Pick a group or namespace where you want to create this project."
+msgstr ""
+
+msgid "ProjectsNew|Project Configuration"
+msgstr ""
+
+msgid "ProjectsNew|Project description %{tag_start}(optional)%{tag_end}"
+msgstr ""
+
+msgid "ProjectsNew|Project name"
+msgstr ""
+
+msgid "ProjectsNew|Projects"
+msgstr ""
+
+msgid "ProjectsNew|Projects are organized into groups"
+msgstr ""
+
+msgid "ProjectsNew|Recommended if you're new to GitLab"
+msgstr ""
+
+msgid "ProjectsNew|Run CI/CD for external repository"
+msgstr ""
+
+msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
+msgstr ""
+
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
+msgid "ProjectsNew|Visibility Level"
+msgstr ""
+
+msgid "ProjectsNew|Want to organize several dependent projects under the same namespace? %{link_start}Create a group.%{link_end}"
+msgstr ""
+
+msgid "ProjectsNew|You can always change your URL later"
+msgstr ""
+
+msgid "ProjectsNew|Your project will be created at:"
+msgstr ""
+
+msgid "Project|already in use"
+msgstr ""
+
+msgid "PrometheusAlerts|exceeded"
+msgstr ""
+
+msgid "PrometheusAlerts|is equal to"
+msgstr ""
+
+msgid "PrometheusAlerts|is less than"
+msgstr ""
+
+msgid "PrometheusService|%{exporters} with %{metrics} were found"
+msgstr ""
+
+msgid "PrometheusService|Active"
+msgstr ""
+
+msgid "PrometheusService|Auto configuration settings are used unless you override their values here."
+msgstr ""
+
+msgid "PrometheusService|Common metrics"
+msgstr ""
+
+msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters."
+msgstr ""
+
+msgid "PrometheusService|Configure GitLab to query a Prometheus installed in one of your clusters."
+msgstr ""
+
+msgid "PrometheusService|Custom metrics"
+msgstr ""
+
+msgid "PrometheusService|Custom metrics require Prometheus installed on a cluster with environment scope \"*\" OR a manually configured Prometheus to be available."
+msgstr ""
+
+msgid "PrometheusService|Enable Prometheus to define custom metrics, using either option above"
+msgstr ""
+
+msgid "PrometheusService|Finding and configuring metrics..."
+msgstr ""
+
+msgid "PrometheusService|Finding custom metrics..."
+msgstr ""
+
+msgid "PrometheusService|IAP_CLIENT_ID.apps.googleusercontent.com"
+msgstr ""
+
+msgid "PrometheusService|Manage clusters"
+msgstr ""
+
+msgid "PrometheusService|Manual configuration"
+msgstr ""
+
+msgid "PrometheusService|Metrics"
+msgstr ""
+
+msgid "PrometheusService|Missing environment variable"
+msgstr ""
+
+msgid "PrometheusService|Monitor application health with Prometheus metrics and dashboards"
+msgstr ""
+
+msgid "PrometheusService|New metric"
+msgstr ""
+
+msgid "PrometheusService|No %{docsUrlStart}common metrics%{docsUrlEnd} were found"
+msgstr ""
+
+msgid "PrometheusService|No custom metrics have been created. Create one using the button above"
+msgstr ""
+
+msgid "PrometheusService|Prometheus cluster integration"
+msgstr ""
+
+msgid "PrometheusService|Select this checkbox to override the auto configuration settings with your own settings."
+msgstr ""
+
+msgid "PrometheusService|The ID of the IAP-secured resource."
+msgstr ""
+
+msgid "PrometheusService|The Prometheus API base URL."
+msgstr ""
+
+msgid "PrometheusService|The contents of the credentials.json file of your service account."
+msgstr ""
+
+msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment"
+msgstr ""
+
+msgid "PrometheusService|To set up automatic monitoring, add the environment variable %{variable} to exporter's queries."
+msgstr ""
+
+msgid "PrometheusService|To use a Prometheus installed on a cluster, deactivate the manual configuration."
+msgstr ""
+
+msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics"
+msgstr ""
+
+msgid "PrometheusService|You have a cluster with the Prometheus integration enabled."
+msgstr ""
+
+msgid "PrometheusService|https://prometheus.example.com/"
+msgstr ""
+
+msgid "PrometheusService|{ \"type\": \"service_account\", \"project_id\": ... }"
+msgstr ""
+
+msgid "Promote"
+msgstr ""
+
+msgid "Promote issue to an epic"
+msgstr ""
+
+msgid "Promote issue to incident"
+msgstr ""
+
+msgid "Promote to epic"
+msgstr ""
+
+msgid "Promote to group label"
+msgstr ""
+
+msgid "Promote to objective"
+msgstr ""
+
+msgid "Promote work item"
+msgstr ""
+
+msgid "PromoteMilestone|Only project milestones can be promoted."
+msgstr ""
+
+msgid "PromoteMilestone|Project does not belong to a group."
+msgstr ""
+
+msgid "PromoteMilestone|Promotion failed - %{message}"
+msgstr ""
+
+msgid "Promoted issue to an epic."
+msgstr ""
+
+msgid "Promotes issue to incident"
+msgstr ""
+
+msgid "Promotes work item to %{type}."
+msgstr ""
+
+msgid "Promotion is not supported."
+msgstr ""
+
+msgid "Promotions|Add %{link_start} description templates %{link_end} to help your contributors to communicate effectively!"
+msgstr ""
+
+msgid "Promotions|Add Group Webhooks and GitLab Enterprise Edition."
+msgstr ""
+
+msgid "Promotions|Better Protected Branches"
+msgstr ""
+
+msgid "Promotions|Burndown Charts are visual representations of the progress of completing a milestone. At a glance, you see the current state for the completion a given milestone. Without them, you would have to organize the data from the milestone and plot it yourself to have the same sense of progress."
+msgstr ""
+
+msgid "Promotions|Buy EE"
+msgstr ""
+
+msgid "Promotions|Buy GitLab Enterprise Edition"
+msgstr ""
+
+msgid "Promotions|Configure Service Desk"
+msgstr ""
+
+msgid "Promotions|Contact an owner of group %{namespace_name} to upgrade the plan."
+msgstr ""
+
+msgid "Promotions|Contact owner %{link_start}%{owner_name}%{link_end} to upgrade the plan."
+msgstr ""
+
+msgid "Promotions|Contact your Administrator to upgrade your license."
+msgstr ""
+
+msgid "Promotions|Dismiss Service Desk promotion"
+msgstr ""
+
+msgid "Promotions|Dismiss burndown charts promotion"
+msgstr ""
+
+msgid "Promotions|Dismiss repository features promotion"
+msgstr ""
+
+msgid "Promotions|Don't show me this again"
+msgstr ""
+
+msgid "Promotions|Epics let you manage your portfolio of projects more efficiently and with less effort by tracking groups of issues that share a theme, across projects and milestones."
+msgstr ""
+
+msgid "Promotions|Get started with GitLab Mobile DevOps"
+msgstr ""
+
+msgid "Promotions|Improve issues management with Issue weight and GitLab Enterprise Edition."
+msgstr ""
+
+msgid "Promotions|Improve merge requests and customer support with GitLab Enterprise Edition."
+msgstr ""
+
+msgid "Promotions|Improve milestones with Burndown Charts."
+msgstr ""
+
+msgid "Promotions|Improve repositories with GitLab Enterprise Edition."
+msgstr ""
+
+msgid "Promotions|Improve search with Advanced Search and GitLab Enterprise Edition."
+msgstr ""
+
+msgid "Promotions|Keep track of events in your project"
+msgstr ""
+
+msgid "Promotions|Merge request approvals"
+msgstr ""
+
+msgid "Promotions|Not now, thanks!"
+msgstr ""
+
+msgid "Promotions|Push Rules"
+msgstr ""
+
+msgid "Promotions|Push Rules are defined per project so you can have different rules applied to different projects depends on your needs."
+msgstr ""
+
+msgid "Promotions|Repository Mirroring"
+msgstr ""
+
+msgid "Promotions|Repository Mirroring is a way to mirror repositories from external sources. It can be used to mirror all branches, tags, and commits that you have in your repository."
+msgstr ""
+
+msgid "Promotions|See the other features in the %{subscription_link_start}Premium plan%{subscription_link_end}"
+msgstr ""
+
+msgid "Promotions|Set the number of necessary approvals and define a list of approvers needed for every merge request in a project."
+msgstr ""
+
+msgid "Promotions|Ship faster with GitLab Mobile DevOps."
+msgstr ""
+
+msgid "Promotions|Start GitLab Ultimate trial"
+msgstr ""
+
+msgid "Promotions|The Advanced Search in GitLab is a powerful search service that saves you time. Instead of creating duplicate code and wasting time, you can now search for code within other teams that can help your own project."
+msgstr ""
+
+msgid "Promotions|This feature is locked."
+msgstr ""
+
+msgid "Promotions|Try it for free"
+msgstr ""
+
+msgid "Promotions|Upgrade plan"
+msgstr ""
+
+msgid "Promotions|Upgrade your plan to activate Advanced Search."
+msgstr ""
+
+msgid "Promotions|Upgrade your plan to activate Audit Events."
+msgstr ""
+
+msgid "Promotions|Upgrade your plan to activate Group Webhooks."
+msgstr ""
+
+msgid "Promotions|Upgrade your plan to improve merge requests."
+msgstr ""
+
+msgid "Promotions|Upgrade your plan to improve milestones with Burndown Charts."
+msgstr ""
+
+msgid "Promotions|Upgrade your plan to improve repositories."
+msgstr ""
+
+msgid "Promotions|Use GitLab Mobile DevOps to quickly build, sign, and release native and cross-platform mobile apps for Android and iOS using GitLab CI/CD."
+msgstr ""
+
+msgid "Promotions|Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group."
+msgstr ""
+
+msgid "Promotions|Weight"
+msgstr ""
+
+msgid "Promotions|Weighting your issue"
+msgstr ""
+
+msgid "Promotions|When you have a lot of issues, it can be hard to get an overview. By adding a weight to your issues, you can get a better idea of the effort, cost, required time, or value of each, and so better manage them."
+msgstr ""
+
+msgid "Promotions|You can restrict access to protected branches by choosing a role (Maintainers, Developers) as well as certain users."
+msgstr ""
+
+msgid "Prompt users to upload SSH keys"
+msgstr ""
+
+msgid "Property 'dedicatedPod' of component '%{name}' is not yet supported"
+msgstr ""
+
+msgid "Protect"
+msgstr ""
+
+msgid "Protect a tag"
+msgstr ""
+
+msgid "Protected"
+msgstr ""
+
+msgid "Protected Branch"
+msgstr ""
+
+msgid "Protected Branches"
+msgstr ""
+
+msgid "Protected Paths: requests"
+msgstr ""
+
+msgid "Protected Tag"
+msgstr ""
+
+msgid "Protected Tags"
+msgstr ""
+
+msgid "Protected branches"
+msgstr ""
+
+msgid "Protected environments"
+msgstr ""
+
+msgid "Protected paths"
+msgstr ""
+
+msgid "Protected tags"
+msgstr ""
+
+msgid "ProtectedBranch|%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}*-stable%{code_tag_end} or %{code_tag_start}production/*%{code_tag_end} are supported. %{case_sensitive_link_start}Branch names are case-sensitive.%{case_sensitive_link_end}"
+msgstr ""
+
+msgid "ProtectedBranch|After you configure a protected branch, merge request approval, or status check, it appears here."
+msgstr ""
+
+msgid "ProtectedBranch|Allow all users with push access to %{tag_start}force push%{tag_end}."
+msgstr ""
+
+msgid "ProtectedBranch|Allow all users with push access to force push."
+msgstr ""
+
+msgid "ProtectedBranch|Allowed to create"
+msgstr ""
+
+msgid "ProtectedBranch|Allowed to force push"
+msgstr ""
+
+msgid "ProtectedBranch|Allowed to force push:"
+msgstr ""
+
+msgid "ProtectedBranch|Allowed to merge"
+msgstr ""
+
+msgid "ProtectedBranch|Allowed to merge:"
+msgstr ""
+
+msgid "ProtectedBranch|Allowed to push and merge"
+msgstr ""
+
+msgid "ProtectedBranch|Allowed to push and merge:"
+msgstr ""
+
+msgid "ProtectedBranch|An error occurred while loading branch rules. Please try again."
+msgstr ""
+
+msgid "ProtectedBranch|Branch"
+msgstr ""
+
+msgid "ProtectedBranch|Branch does not exist."
+msgstr ""
+
+msgid "ProtectedBranch|Branch will be writable for developers. Are you sure?"
+msgstr ""
+
+msgid "ProtectedBranch|Branch:"
+msgstr ""
+
+msgid "ProtectedBranch|By default, protected branches restrict who can modify the branch."
+msgstr ""
+
+msgid "ProtectedBranch|Code owner approval"
+msgstr ""
+
+msgid "ProtectedBranch|Create wildcard"
+msgstr ""
+
+msgid "ProtectedBranch|Does not apply to users **Allowed to push** when pushing directly to the branch. Optional sections are not enforced."
+msgstr ""
+
+msgid "ProtectedBranch|Giving merge rights to a protected branch also gives elevated permissions for certain CI/CD features."
+msgstr ""
+
+msgid "ProtectedBranch|Inherited - This setting can be changed at the group level"
+msgstr ""
+
+msgid "ProtectedBranch|Keep stable branches secure and force developers to use merge requests."
+msgstr ""
+
+msgid "ProtectedBranch|Last commit"
+msgstr ""
+
+msgid "ProtectedBranch|Learn more."
+msgstr ""
+
+msgid "ProtectedBranch|Manage branch related settings in one area with branch rules."
+msgstr ""
+
+msgid "ProtectedBranch|New Protected Tag"
+msgstr ""
+
+msgid "ProtectedBranch|No tags are protected."
+msgstr ""
+
+msgid "ProtectedBranch|Only %{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}*-stable%{code_tag_end} or %{code_tag_start}production/*%{code_tag_end} are supported. %{case_sensitive_link_start}Branch names are case-sensitive.%{case_sensitive_link_end}"
+msgstr ""
+
+msgid "ProtectedBranch|Protect"
+msgstr ""
+
+msgid "ProtectedBranch|Protect a branch"
+msgstr ""
+
+msgid "ProtectedBranch|Protected branches"
+msgstr ""
+
+msgid "ProtectedBranch|Reject code pushes that change files listed in the CODEOWNERS file."
+msgstr ""
+
+msgid "ProtectedBranch|Require approval from code owners:"
+msgstr ""
+
+msgid "ProtectedBranch|Search protected tags"
+msgstr ""
+
+msgid "ProtectedBranch|Select tag or create wildcard"
+msgstr ""
+
+msgid "ProtectedBranch|Tag"
+msgstr ""
+
+msgid "ProtectedBranch|There are currently no protected branches, to protect a branch start by creating a new one above."
+msgstr ""
+
+msgid "ProtectedBranch|Toggle allowed to force push"
+msgstr ""
+
+msgid "ProtectedBranch|Toggle code owner approval"
+msgstr ""
+
+msgid "ProtectedBranch|Unprotect"
+msgstr ""
+
+msgid "ProtectedBranch|Unprotect branch"
+msgstr ""
+
+msgid "ProtectedBranch|View branch rule"
+msgstr ""
+
+msgid "ProtectedBranch|View protected branches as branch rules"
+msgstr ""
+
+msgid "ProtectedBranch|What are protected branches?"
+msgstr ""
+
+msgid "ProtectedBranch|What are the security implications?"
+msgstr ""
+
+msgid "ProtectedBranch|You can add only groups that have this project shared. %{learn_more_link}"
+msgstr ""
+
+msgid "ProtectedBranch|default"
+msgstr ""
+
+msgid "ProtectedEnvironments|%d Approval Rule"
+msgid_plural "ProtectedEnvironments|%d Approval Rules"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ProtectedEnvironments|%d Deployment Rule"
+msgid_plural "ProtectedEnvironments|%d Deployment Rules"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ProtectedEnvironments|Add approval rules"
+msgstr ""
+
+msgid "ProtectedEnvironments|Add deployment rules"
+msgstr ""
+
+msgid "ProtectedEnvironments|Allowed to approve"
+msgstr ""
+
+msgid "ProtectedEnvironments|Allowed to deploy"
+msgstr ""
+
+msgid "ProtectedEnvironments|An error occurred while fetching information on the selected approvers."
+msgstr ""
+
+msgid "ProtectedEnvironments|Approval rules"
+msgstr ""
+
+msgid "ProtectedEnvironments|Approvals required"
+msgstr ""
+
+msgid "ProtectedEnvironments|Create approval rule"
+msgstr ""
+
+msgid "ProtectedEnvironments|Create deployment rule"
+msgstr ""
+
+msgid "ProtectedEnvironments|Delete approver rule"
+msgstr ""
+
+msgid "ProtectedEnvironments|Delete deployer rule"
+msgstr ""
+
+msgid "ProtectedEnvironments|Edit"
+msgstr ""
+
+msgid "ProtectedEnvironments|Number of approvals must be between 1 and 5"
+msgstr ""
+
+msgid "ProtectedEnvironments|Protect an environment"
+msgstr ""
+
+msgid "ProtectedEnvironments|Protected environments"
+msgstr ""
+
+msgid "ProtectedEnvironments|Remove approval rule"
+msgstr ""
+
+msgid "ProtectedEnvironments|Required approval count"
+msgstr ""
+
+msgid "ProtectedEnvironments|Save"
+msgstr ""
+
+msgid "ProtectedEnvironments|Select users"
+msgstr ""
+
+msgid "ProtectedEnvironments|Set which groups, access levels or users are required to approve."
+msgstr ""
+
+msgid "ProtectedEnvironments|Set which groups, access levels or users that are allowed to deploy to this environment"
+msgstr ""
+
+msgid "ProtectedEnvironments|To configure unified approval rules, use the %{apiLinkStart}API%{apiLinkEnd}. Consider using %{docsLinkStart}multiple approval rules%{docsLinkEnd} instead."
+msgstr ""
+
+msgid "ProtectedEnvironments|Unprotect"
+msgstr ""
+
+msgid "ProtectedEnvironments|Users"
+msgstr ""
+
+msgid "ProtectedEnvironment|%{environment_name} will be writable for developers. Are you sure?"
+msgstr ""
+
+msgid "ProtectedEnvironment|Add new protected environment"
+msgstr ""
+
+msgid "ProtectedEnvironment|All environments specified with the deployment tiers below are protected by a parent group. %{link_start}Learn More%{link_end}."
+msgstr ""
+
+msgid "ProtectedEnvironment|Allowed to deploy"
+msgstr ""
+
+msgid "ProtectedEnvironment|Allowed to deploy to %{project} / %{environment}"
+msgstr ""
+
+msgid "ProtectedEnvironment|Approvers"
+msgstr ""
+
+msgid "ProtectedEnvironment|Environment"
+msgstr ""
+
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
+msgid "ProtectedEnvironment|Environments protected upstream"
+msgstr ""
+
+msgid "ProtectedEnvironment|Failed to load details for this group."
+msgstr ""
+
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
+msgid "ProtectedEnvironment|No environments in this project are protected."
+msgstr ""
+
+msgid "ProtectedEnvironment|Only specified groups can execute deployments in protected environments."
+msgstr ""
+
+msgid "ProtectedEnvironment|Only specified users can execute deployments in a protected environment."
+msgstr ""
+
+msgid "ProtectedEnvironment|Parent group"
+msgstr ""
+
+msgid "ProtectedEnvironment|Protect"
+msgstr ""
+
+msgid "ProtectedEnvironment|Protect an environment"
+msgstr ""
+
+msgid "ProtectedEnvironment|Protected Environment (%{protected_environments_count})"
+msgstr ""
+
+msgid "ProtectedEnvironment|Protected Environments"
+msgstr ""
+
+msgid "ProtectedEnvironment|Required approvals"
+msgstr ""
+
+msgid "ProtectedEnvironment|Select an environment"
+msgstr ""
+
+msgid "ProtectedEnvironment|Select environment"
+msgstr ""
+
+msgid "ProtectedEnvironment|Select groups"
+msgstr ""
+
+msgid "ProtectedEnvironment|There are currently no protected environments."
+msgstr ""
+
+msgid "ProtectedEnvironment|Unprotect"
+msgstr ""
+
+msgid "ProtectedEnvironment|Unprotect environment"
+msgstr ""
+
+msgid "ProtectedEnvironment|Users with at least the Developer role can write to unprotected environments. Are you sure you want to unprotect %{environment_name}?"
+msgstr ""
+
+msgid "ProtectedEnvironment|Your environment can't be unprotected"
+msgstr ""
+
+msgid "ProtectedEnvironment|Your environment has been protected."
+msgstr ""
+
+msgid "ProtectedEnvironment|Your environment has been unprotected"
+msgstr ""
+
+msgid "ProtectedTags|Unprotect tag"
+msgstr ""
+
+msgid "ProtectedTags|default"
+msgstr ""
+
+msgid "ProtectedTag|By default, protected tags restrict who can modify the tag."
+msgstr ""
+
+msgid "ProtectedTag|Learn more."
+msgstr ""
+
+msgid "ProtectedTag|Limit access to creating and updating tags."
+msgstr ""
+
+msgid "ProtectedTag|Protected tags"
+msgstr ""
+
+msgid "ProtectedTag|What are protected tags?"
+msgstr ""
+
+msgid "ProtectedTag|default"
+msgstr ""
+
+msgid "Provide Feedback"
+msgstr ""
+
+msgid "Provide a number our sales team can use to call you."
+msgstr ""
+
+msgid "Provide feedback"
+msgstr ""
+
+msgid "Provider"
+msgstr ""
+
+msgid "Provider ID"
+msgstr ""
+
+msgid "Provision instructions"
+msgstr ""
+
+msgid "Provisioned by:"
+msgstr ""
+
+msgid "Public"
+msgstr ""
+
+msgid "Public - The group and any public projects can be viewed without any authentication."
+msgstr ""
+
+msgid "Public - The project can be accessed without any authentication."
+msgstr ""
+
+msgid "Public Access Help"
+msgstr ""
+
+msgid "Public deploy keys"
+msgstr ""
+
+msgid "Public pipelines"
+msgstr ""
+
+msgid "Public projects are an easy way to allow everyone to have read-only access."
+msgstr ""
+
+msgid "Public projects compute cost factor"
+msgstr ""
+
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
+msgid "Publish to status page"
+msgstr ""
+
+msgid "Published"
+msgstr ""
+
+msgid "Published on status page"
+msgstr ""
+
+msgid "Publishes this issue to the associated status page."
+msgstr ""
+
+msgid "Pull"
+msgstr ""
+
+msgid "Pull mirroring updated %{time}."
+msgstr ""
+
+msgid "Pull requests from fork are not supported"
+msgstr ""
+
+msgid "PumbleIntegration|Send notifications about project events to Pumble."
+msgstr ""
+
+msgid "PumbleIntegration|Send notifications about project events to Pumble. %{docs_link}"
+msgstr ""
+
+msgid "Purchase more minutes"
+msgstr ""
+
+msgid "Purchase more storage"
+msgstr ""
+
+msgid "PurchaseStep|An error occurred in the purchase step. If the problem persists please contact support at https://support.gitlab.com."
+msgstr ""
+
+msgid "Purchase|A full name in your profile is required to make a purchase. Check that the full name field in your %{userProfileLinkStart}user profile%{userProfileLinkEnd} has both a first and last name, then retry the purchase. If the problem persists, %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
+
+msgid "Purchase|An error occurred with your purchase because your group is currently linked to an expired subscription. %{supportLinkStart}Open a support ticket%{supportLinkEnd}, and our support team will assist with a workaround."
+msgstr ""
+
+msgid "Purchase|An error occurred with your purchase. We detected a %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd} account that matches your email address, but it has not been linked to your GitLab.com account. Follow the %{linkCustomersPortalHelpLinkStart}instructions to link your Customers Portal account%{linkCustomersPortalHelpLinkEnd}, and retry the purchase. If the problem persists, %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
+
+msgid "Purchase|Your card was declined due to insufficient funds. Make sure you have sufficient funds, then retry the purchase or use a different card. If the problem persists, %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
+
+msgid "Purchase|Your card was declined. Contact your card issuer for more information or %{salesLinkStart}contact our sales team%{salesLinkEnd} to pay with an alternative payment method."
+msgstr ""
+
+msgid "Push"
+msgstr ""
+
+msgid "Push Rule updated successfully."
+msgstr ""
+
+msgid "Push Rules"
+msgstr ""
+
+msgid "Push Rules updated successfully."
+msgstr ""
+
+msgid "Push an existing Git repository"
+msgstr ""
+
+msgid "Push an existing folder"
+msgstr ""
+
+msgid "Push code to the repository."
+msgstr ""
+
+msgid "Push commits to the source branch or add previously merged commits to review them."
+msgstr ""
+
+msgid "Push events"
+msgstr ""
+
+msgid "Push project from command line"
+msgstr ""
+
+msgid "Push the source branch up to GitLab."
+msgstr ""
+
+msgid "Push to create a project"
+msgstr ""
+
+msgid "PushRules|All branch names must match this %{wiki_syntax_link_start}regular expression%{wiki_syntax_link_end}. If empty, any branch name is allowed."
+msgstr ""
+
+msgid "PushRules|All commit author's email must match this %{wiki_syntax_link_start}regular expression%{wiki_syntax_link_end}. If empty, any email is allowed."
+msgstr ""
+
+msgid "PushRules|All commit messages must match this %{wiki_syntax_link_start}regular expression%{wiki_syntax_link_end}. If empty, commit messages are not required to match any expression."
+msgstr ""
+
+msgid "PushRules|All committed filenames cannot match this %{wiki_syntax_link_start}regular expression%{wiki_syntax_link_end}. If empty, any filename is allowed."
+msgstr ""
+
+msgid "PushRules|Branch name"
+msgstr ""
+
+msgid "PushRules|Check %{link_start}Branch defaults &gt; Branch name templates%{link_end} for potential conflicts."
+msgstr ""
+
+msgid "PushRules|Check whether the commit author is a GitLab user"
+msgstr ""
+
+msgid "PushRules|Commit author's email"
+msgstr ""
+
+msgid "PushRules|Commit messages cannot match this %{wiki_syntax_link_start}regular expression%{wiki_syntax_link_end}. If empty, commit messages are not rejected based on any expression."
+msgstr ""
+
+msgid "PushRules|Do not allow users to remove Git tags with %{code_block_start}git push%{code_block_end}"
+msgstr ""
+
+msgid "PushRules|Maximum file size (MB)"
+msgstr ""
+
+msgid "PushRules|Prevent pushing secret files"
+msgstr ""
+
+msgid "PushRules|Prohibited file names"
+msgstr ""
+
+msgid "PushRules|Reject any files likely to contain secrets. %{secret_files_link_start}What secret files are rejected?%{secret_files_link_end}"
+msgstr ""
+
+msgid "PushRules|Reject commits that aren't DCO certified"
+msgstr ""
+
+msgid "PushRules|Reject expression in commit messages"
+msgstr ""
+
+msgid "PushRules|Reject file sizes equal to or greater than this size. If set to 0, files of any size are allowed. This rule does not apply to files tracked by Git LFS."
+msgstr ""
+
+msgid "PushRules|Reject unsigned commits"
+msgstr ""
+
+msgid "PushRules|Require expression in commit messages"
+msgstr ""
+
+msgid "PushRules|Restrict commits to existing GitLab users."
+msgstr ""
+
+msgid "PushRules|Restrict push operations for this project."
+msgstr ""
+
+msgid "PushRules|Save push rules"
+msgstr ""
+
+msgid "PushRules|Select push rules"
+msgstr ""
+
+msgid "PushRules|Users can still delete tags through the GitLab UI."
+msgstr ""
+
+msgid "PushRule|Push rules"
+msgstr ""
+
+msgid "PushRule|Reject inconsistent user name"
+msgstr ""
+
+msgid "PushRule|Reject unverified users"
+msgstr ""
+
+msgid "Pushes"
+msgstr ""
+
+msgid "PushoverService|%{user_name} deleted branch \"%{ref}\"."
+msgstr ""
+
+msgid "PushoverService|%{user_name} push to branch \"%{ref}\"."
+msgstr ""
+
+msgid "PushoverService|%{user_name} pushed new branch \"%{ref}\"."
+msgstr ""
+
+msgid "PushoverService|Enter new user key"
+msgstr ""
+
+msgid "PushoverService|Enter your application key."
+msgstr ""
+
+msgid "PushoverService|Enter your user key."
+msgstr ""
+
+msgid "PushoverService|Get real-time notifications on your device."
+msgstr ""
+
+msgid "PushoverService|High priority"
+msgstr ""
+
+msgid "PushoverService|Leave blank for all active devices."
+msgstr ""
+
+msgid "PushoverService|Leave blank to use your current user key."
+msgstr ""
+
+msgid "PushoverService|Low priority"
+msgstr ""
+
+msgid "PushoverService|Lowest priority"
+msgstr ""
+
+msgid "PushoverService|Normal priority"
+msgstr ""
+
+msgid "PushoverService|See project %{project_full_name}"
+msgstr ""
+
+msgid "PushoverService|Total commits count: %{total_commits_count}"
+msgstr ""
+
+msgid "QualitySummary|Project quality"
+msgstr ""
+
+msgid "Query"
+msgstr ""
+
+msgid "Queued"
+msgstr ""
+
+msgid "Quick actions can be used in description and comment boxes."
+msgstr ""
+
+msgid "Quick help"
+msgstr ""
+
+msgid "README"
+msgstr ""
+
+msgid "Rails"
+msgstr ""
+
+msgid "Rake Tasks Help"
+msgstr ""
+
+msgid "Random"
+msgstr ""
+
+msgid "Rate Limits"
+msgstr ""
+
+msgid "Rate limit"
+msgstr ""
+
+msgid "Rate limit access to specified paths."
+msgstr ""
+
+msgid "Rate limits can help reduce request volume (like from crawlers or abusive bots)."
+msgstr ""
+
+msgid "Raw blob request rate limit per minute"
+msgstr ""
+
+msgid "Raw blob requests"
+msgstr ""
+
+msgid "Re-authentication period expired or never requested. Please try again"
+msgstr ""
+
+msgid "Re-authentication required"
+msgstr ""
+
+msgid "Re-import"
+msgstr ""
+
+msgid "Re-import with projects"
+msgstr ""
+
+msgid "Re-import without projects"
+msgstr ""
+
+msgid "Re-request review"
+msgstr ""
+
+msgid "Read documentation"
+msgstr ""
+
+msgid "Read more"
+msgstr ""
+
+msgid "Read more about GitLab at %{link_to_promo}."
+msgstr ""
+
+msgid "Read the documentation before applying changes."
+msgstr ""
+
+msgid "Read their documentation."
+msgstr ""
+
+msgid "Ready to get started with GitLab? Follow these steps to set up your workspace, plan and commit changes, and deploy your project."
+msgstr ""
+
+msgid "Ready to merge by members who can write to the target branch."
+msgstr ""
+
+msgid "Ready to merge!"
+msgstr ""
+
+msgid "Reauthenticating with SAML provider."
+msgstr ""
+
+msgid "Rebase completed"
+msgstr ""
+
+msgid "Rebase source branch"
+msgstr ""
+
+msgid "Rebase source branch on the target branch."
+msgstr ""
+
+msgid "Recaptcha verified?"
+msgstr ""
+
+msgid "Receive any notifications from GitLab."
+msgstr ""
+
+msgid "Receive notification of abuse reports by email."
+msgstr ""
+
+msgid "Receive notifications about your own activity"
+msgstr ""
+
+msgid "Recent"
+msgstr ""
+
+msgid "Recent Project Activity"
+msgstr ""
+
+msgid "Recent Searches Service is unavailable"
+msgstr ""
+
+msgid "Recent events"
+msgstr ""
+
+msgid "Recent searches"
+msgstr ""
+
+msgid "Recently used"
+msgstr ""
+
+msgid "Reconfigure"
+msgstr ""
+
+msgid "Recover password"
+msgstr ""
+
+msgid "Recovery Codes"
+msgstr ""
+
+msgid "Redirect to SAML provider to test configuration"
+msgstr ""
+
+msgid "Redirecting"
+msgstr ""
+
+msgid "Redis"
+msgstr ""
+
+msgid "Reduce incident management alert volume (for example, if too many issues are being created)."
+msgstr ""
+
+msgid "Reduce project visibility"
+msgstr ""
+
+msgid "Reduce risk and triage fewer vulnerabilities with security training"
+msgstr ""
+
+msgid "Reference"
+msgstr ""
+
+msgid "Reference copied"
+msgstr ""
+
+msgid "References"
+msgstr ""
+
+msgid "References should be in the form of path/to/project!merge_request_id"
+msgstr ""
+
+msgid "Refine your search criteria (select a %{strong_open}group%{strong_close} and %{strong_open}project%{strong_close} when possible)"
+msgstr ""
+
+msgid "Refresh the page and try again."
+msgstr ""
+
+msgid "Refresh the page to view sync status"
+msgstr ""
+
+msgid "Refreshing in a second to show the updated status..."
+msgid_plural "Refreshing in %d seconds to show the updated status..."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Refreshing..."
+msgstr ""
+
+msgid "Regenerate export"
+msgstr ""
+
+msgid "Regenerate instance ID"
+msgstr ""
+
+msgid "Regenerate recovery codes"
+msgstr ""
+
+msgid "Regenerating the instance ID can break integration depending on the client you are using."
+msgstr ""
+
+msgid "Regex pattern"
+msgstr ""
+
+msgid "Region"
+msgstr ""
+
+msgid "Regions"
+msgstr ""
+
+msgid "Register"
+msgstr ""
+
+msgid "Register / Sign In"
+msgstr ""
+
+msgid "Register a WebAuthn device"
+msgstr ""
+
+msgid "Register a one-time password authenticator"
+msgstr ""
+
+msgid "Register a one-time password authenticator or a WebAuthn device first."
+msgstr ""
+
+msgid "Register device"
+msgstr ""
+
+msgid "Register now"
+msgstr ""
+
+msgid "Register with two-factor app"
+msgstr ""
+
+msgid "Register with:"
+msgstr ""
+
+msgid "RegistrationFeatures|Enable Service Ping and register for this feature."
+msgstr ""
+
+msgid "RegistrationFeatures|Read more about the %{link_start}Registration Features Program%{link_end}."
+msgstr ""
+
+msgid "RegistrationFeatures|Want to %{feature_title} for free?"
+msgstr ""
+
+msgid "RegistrationFeatures|send emails to users"
+msgstr ""
+
+msgid "RegistrationFeatures|use this feature"
+msgstr ""
+
+msgid "Registries enqueued to be resynced"
+msgstr ""
+
+msgid "Registries enqueued to be reverified"
+msgstr ""
+
+msgid "Registry entry enqueued to be resynced"
+msgstr ""
+
+msgid "Registry entry enqueued to be reverified"
+msgstr ""
+
+msgid "Registry setup"
+msgstr ""
+
+msgid "Reindexing Status: %{status} (Slice multiplier: %{multiplier}, Maximum running slices: %{max_slices})"
+msgstr ""
+
+msgid "Reject"
+msgstr ""
+
+msgid "Rejected (closed)"
+msgstr ""
+
+msgid "Relate to %{issuable_type} %{add_related_issue_link}"
+msgstr ""
+
+msgid "Related"
+msgstr ""
+
+msgid "Related branches"
+msgstr ""
+
+msgid "Related feature flags"
+msgstr ""
+
+msgid "Related issues"
+msgstr ""
+
+msgid "Related jobs"
+msgstr ""
+
+msgid "Related merge request %{link_to_merge_request} to merge %{link_to_merge_request_source_branch}"
+msgstr ""
+
+msgid "Related merge request %{link_to_merge_request} to merge %{link_to_merge_request_source_branch} into %{link_to_merge_request_target_branch}"
+msgstr ""
+
+msgid "Related merge requests"
+msgstr ""
+
+msgid "Relates to"
+msgstr ""
+
+msgid "Release"
+msgid_plural "Releases"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Release %{deletedRelease} has been successfully deleted."
+msgstr ""
+
+msgid "Release already exists"
+msgstr ""
+
+msgid "Release assets"
+msgstr ""
+
+msgid "Release assets documentation"
+msgstr ""
+
+msgid "Release date"
+msgstr ""
+
+msgid "Release does not exist"
+msgstr ""
+
+msgid "Release does not have the same project as the milestone"
+msgstr ""
+
+msgid "Release notes"
+msgstr ""
+
+msgid "Release notes:"
+msgstr ""
+
+msgid "Release title"
+msgstr ""
+
+msgid "Release with tag \"%{tag}\" was not found"
+msgstr ""
+
+msgid "Release:"
+msgstr ""
+
+msgid "ReleaseAssetLinkType|Image"
+msgstr ""
+
+msgid "ReleaseAssetLinkType|Images"
+msgstr ""
+
+msgid "ReleaseAssetLinkType|Other"
+msgstr ""
+
+msgid "ReleaseAssetLinkType|Package"
+msgstr ""
+
+msgid "ReleaseAssetLinkType|Packages"
+msgstr ""
+
+msgid "ReleaseAssetLinkType|Runbook"
+msgstr ""
+
+msgid "ReleaseAssetLinkType|Runbooks"
+msgstr ""
+
+msgid "Released"
+msgstr ""
+
+msgid "Released date"
+msgstr ""
+
+msgid "Releases"
+msgstr ""
+
+msgid "Releases are based on Git tags. We recommend tags that use semantic versioning, for example %{codeStart}1.0.0%{codeEnd}, %{codeStart}2.1.0-pre%{codeEnd}."
+msgstr ""
+
+msgid "Releases|New"
+msgstr ""
+
+msgid "Releases|Releases"
+msgstr ""
+
+msgid "Releases|Tag message"
+msgstr ""
+
+msgid "Release|Create a new release"
+msgstr ""
+
+msgid "Release|Create tag"
+msgstr ""
+
+msgid "Release|Create tag %{tag}"
+msgstr ""
+
+msgid "Release|Getting started with releases"
+msgstr ""
+
+msgid "Release|Include message from the annotated tag."
+msgstr ""
+
+msgid "Release|Learn more about releases"
+msgstr ""
+
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
+msgid "Release|More information"
+msgstr ""
+
+msgid "Release|Or type a new tag name"
+msgstr ""
+
+msgid "Release|Release %{createdRelease} has been successfully created."
+msgstr ""
+
+msgid "Release|Releases are based on Git tags and mark specific points in a project's development history. They can contain information about the type of changes and can also deliver binaries, like compiled versions of your software."
+msgstr ""
+
+msgid "Release|Search or create tag name"
+msgstr ""
+
+msgid "Release|Select another tag"
+msgstr ""
+
+msgid "Release|Something went wrong while creating a new release."
+msgstr ""
+
+msgid "Release|Something went wrong while deleting the release."
+msgstr ""
+
+msgid "Release|Something went wrong while getting the release details."
+msgstr ""
+
+msgid "Release|Something went wrong while saving the release details."
+msgstr ""
+
+msgid "Release|Unable to fetch the tag notes."
+msgstr ""
+
+msgid "Release|You can edit the content later by editing the release. %{linkStart}How do I edit a release?%{linkEnd}"
+msgstr ""
+
+msgid "Reload page"
+msgstr ""
+
+msgid "Reload the page to try again."
+msgstr ""
+
+msgid "Remediations"
+msgstr ""
+
+msgid "Remember me"
+msgstr ""
+
+msgid "Remind later"
+msgstr ""
+
+msgid "Remote object has no absolute path."
+msgstr ""
+
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
+msgid "Remove"
+msgstr ""
+
+msgid "Remove %{displayReference}"
+msgstr ""
+
+msgid "Remove Zoom meeting"
+msgstr ""
+
+msgid "Remove Zoom meeting."
+msgstr ""
+
+msgid "Remove access"
+msgstr ""
+
+msgid "Remove all or specific assignees"
+msgstr ""
+
+msgid "Remove all or specific labels"
+msgstr ""
+
+msgid "Remove all or specific reviewers"
+msgstr ""
+
+msgid "Remove approvers"
+msgstr ""
+
+msgid "Remove approvers?"
+msgstr ""
+
+msgid "Remove asset link"
+msgstr ""
+
+msgid "Remove assignee"
+msgstr ""
+
+msgid "Remove avatar"
+msgstr ""
+
+msgid "Remove card"
+msgstr ""
+
+msgid "Remove child epic from an epic"
+msgstr ""
+
+msgid "Remove customer relation contact(s)."
+msgstr ""
+
+msgid "Remove customer relation contacts"
+msgstr ""
+
+msgid "Remove deploy key"
+msgstr ""
+
+msgid "Remove description history"
+msgstr ""
+
+msgid "Remove due date"
+msgstr ""
+
+msgid "Remove email participant(s)"
+msgstr ""
+
+msgid "Remove epic reference"
+msgstr ""
+
+msgid "Remove favicon"
+msgstr ""
+
+msgid "Remove file"
+msgstr ""
+
+msgid "Remove fork relationship"
+msgstr ""
+
+msgid "Remove from batch"
+msgstr ""
+
+msgid "Remove from epic"
+msgstr ""
+
+msgid "Remove group"
+msgstr ""
+
+msgid "Remove header logo"
+msgstr ""
+
+msgid "Remove icon"
+msgstr ""
+
+msgid "Remove identity verification exemption"
+msgstr ""
+
+msgid "Remove issue reference"
+msgstr ""
+
+msgid "Remove iteration"
+msgstr ""
+
+msgid "Remove license"
+msgstr ""
+
+msgid "Remove limit"
+msgstr ""
+
+msgid "Remove link"
+msgstr ""
+
+msgid "Remove link with another issue"
+msgstr ""
+
+msgid "Remove list"
+msgstr ""
+
+msgid "Remove log"
+msgstr ""
+
+msgid "Remove logo"
+msgstr ""
+
+msgid "Remove member"
+msgstr ""
+
+msgid "Remove merge request reference"
+msgstr ""
+
+msgid "Remove milestone"
+msgstr ""
+
+msgid "Remove parent epic from an epic"
+msgstr ""
+
+msgid "Remove priority"
+msgstr ""
+
+msgid "Remove reviewer"
+msgstr ""
+
+msgid "Remove runner"
+msgstr ""
+
+msgid "Remove secondary email"
+msgstr ""
+
+msgid "Remove spent time"
+msgstr ""
+
+msgid "Remove summary"
+msgstr ""
+
+msgid "Remove time estimate"
+msgstr ""
+
+msgid "Remove topic avatar"
+msgstr ""
+
+msgid "Remove user"
+msgstr ""
+
+msgid "Remove user from group"
+msgstr ""
+
+msgid "Remove user from project"
+msgstr ""
+
+msgid "Remove weight"
+msgstr ""
+
+msgid "Removed"
+msgstr ""
+
+msgid "Removed %{assignee_text} %{assignee_references}."
+msgstr ""
+
+msgid "Removed %{epic_ref} from child epics."
+msgstr ""
+
+msgid "Removed %{iteration_reference} iteration."
+msgstr ""
+
+msgid "Removed %{label_references} %{label_text}."
+msgstr ""
+
+msgid "Removed %{milestone_reference} milestone."
+msgstr ""
+
+msgid "Removed %{reviewer_text} %{reviewer_references}."
+msgstr ""
+
+msgid "Removed all labels."
+msgstr ""
+
+msgid "Removed an issue from an epic."
+msgstr ""
+
+msgid "Removed group can not be restored!"
+msgstr ""
+
+msgid "Removed link with %{issue_ref}."
+msgstr ""
+
+msgid "Removed parent epic %{epic_ref}."
+msgstr ""
+
+msgid "Removed spent time."
+msgstr ""
+
+msgid "Removed the due date."
+msgstr ""
+
+msgid "Removed time estimate."
+msgstr ""
+
+msgid "Removed upload with id %{id}"
+msgstr ""
+
+msgid "RemovedProjects|No projects pending deletion found"
+msgstr ""
+
+msgid "RemovedProjects|Projects that are pending deletion that you have access to are listed here."
+msgstr ""
+
+msgid "Removes %{assignee_text} %{assignee_references}."
+msgstr ""
+
+msgid "Removes %{epic_ref} from child epics."
+msgstr ""
+
+msgid "Removes %{iteration_reference} iteration."
+msgstr ""
+
+msgid "Removes %{label_references} %{label_text}."
+msgstr ""
+
+msgid "Removes %{milestone_reference} milestone."
+msgstr ""
+
+msgid "Removes %{reviewer_text} %{reviewer_references}."
+msgstr ""
+
+msgid "Removes all labels."
+msgstr ""
+
+msgid "Removes an issue from an epic."
+msgstr ""
+
+msgid "Removes email participant(s)."
+msgstr ""
+
+msgid "Removes link with %{issue_ref}."
+msgstr ""
+
+msgid "Removes parent epic %{epic_ref}."
+msgstr ""
+
+msgid "Removes spent time."
+msgstr ""
+
+msgid "Removes the due date."
+msgstr ""
+
+msgid "Removes time estimate."
+msgstr ""
+
+msgid "Removing this group also removes all child projects, including archived projects, and their resources."
+msgstr ""
+
+msgid "Rename file"
+msgstr ""
+
+msgid "Rename folder"
+msgstr ""
+
+msgid "Rename/Move"
+msgstr ""
+
+msgid "Render diagrams in your documents using PlantUML."
+msgstr ""
+
+msgid "Render diagrams in your documents using diagrams.net."
+msgstr ""
+
+msgid "Renew subscription"
+msgstr ""
+
+msgid "Reopen"
+msgstr ""
+
+msgid "Reopen %{issuableType}"
+msgstr ""
+
+msgid "Reopen %{issueType}"
+msgstr ""
+
+msgid "Reopen %{noteable}"
+msgstr ""
+
+msgid "Reopen %{workItemType}"
+msgstr ""
+
+msgid "Reopen epic"
+msgstr ""
+
+msgid "Reopen milestone"
+msgstr ""
+
+msgid "Reopen this %{quick_action_target}"
+msgstr ""
+
+msgid "Reopened this %{quick_action_target}."
+msgstr ""
+
+msgid "Reopening %{issuableType}..."
+msgstr ""
+
+msgid "Reopening %{workItemType}"
+msgstr ""
+
+msgid "Reopening..."
+msgstr ""
+
+msgid "Reopens this %{quick_action_target}."
+msgstr ""
+
+msgid "Replace"
+msgstr ""
+
+msgid "Replace %{name}"
+msgstr ""
+
+msgid "Replace all labels"
+msgstr ""
+
+msgid "Replace audio"
+msgstr ""
+
+msgid "Replace current template with filled in placeholders"
+msgstr ""
+
+msgid "Replace file"
+msgstr ""
+
+msgid "Replace image"
+msgstr ""
+
+msgid "Replace video"
+msgstr ""
+
+msgid "Replaced all labels with %{label_references} %{label_text}."
+msgstr ""
+
+msgid "Replaces the clone URL root."
+msgstr ""
+
+msgid "ReplicateService|Failed to verify %{type} repository checksum from %{old} to %{new}"
+msgstr ""
+
+msgid "Reply"
+msgstr ""
+
+msgid "Reply by email"
+msgstr ""
+
+msgid "Reply internally"
+msgstr ""
+
+msgid "Reply to comment"
+msgstr ""
+
+msgid "Reply to this email directly or %{view_it_on_gitlab}."
+msgstr ""
+
+msgid "Reply…"
+msgstr ""
+
+msgid "Report Finding not found"
+msgstr ""
+
+msgid "Report abuse"
+msgstr ""
+
+msgid "Report abuse to administrator"
+msgstr ""
+
+msgid "Report and manage standards adherence, violations, and compliance frameworks for the group."
+msgstr ""
+
+msgid "Report couldn't be prepared."
+msgstr ""
+
+msgid "Report for the scan has been removed from the database."
+msgstr ""
+
+msgid "Report version not provided, %{report_type} report type supports versions: %{supported_schema_versions}. GitLab will attempt to validate this report against the earliest supported versions of this report type, to show all the errors but will not ingest the report"
+msgstr ""
+
+msgid "Report your license usage data to GitLab"
+msgstr ""
+
+msgid "ReportAbuse|Add another link"
+msgstr ""
+
+msgid "ReportAbuse|Link to spam"
+msgstr ""
+
+msgid "ReportAbuse|Report abuse to administrator"
+msgstr ""
+
+msgid "ReportAbuse|Screenshot"
+msgstr ""
+
+msgid "ReportAbuse|Screenshot of abuse"
+msgstr ""
+
+msgid "ReportAbuse|Something else."
+msgstr ""
+
+msgid "ReportAbuse|They're being offensive or abusive."
+msgstr ""
+
+msgid "ReportAbuse|They're crypto mining."
+msgstr ""
+
+msgid "ReportAbuse|They're phishing."
+msgstr ""
+
+msgid "ReportAbuse|They're posting malware."
+msgstr ""
+
+msgid "ReportAbuse|They're posting personal information or credentials."
+msgstr ""
+
+msgid "ReportAbuse|They're posting spam."
+msgstr ""
+
+msgid "ReportAbuse|They're violating a copyright or trademark."
+msgstr ""
+
+msgid "ReportAbuse|URL of this user posting spam"
+msgstr ""
+
+msgid "ReportAbuse|Why are you reporting this user?"
+msgstr ""
+
+msgid "Reported %{timeAgo} by %{reportedBy}"
+msgstr ""
+
+msgid "Reporter"
+msgstr ""
+
+msgid "Reporting"
+msgstr ""
+
+msgid "Reports|%{combinedString} and %{resolvedString}"
+msgstr ""
+
+msgid "Reports|%{recentlyFailed} out of %{failed} failed test has failed more than once in the last 14 days"
+msgstr ""
+
+msgid "Reports|%{recentlyFailed} out of %{failed} failed tests has failed more than once in the last 14 days"
+msgid_plural "Reports|%{recentlyFailed} out of %{failed} failed tests have failed more than once in the last 14 days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Reports|Accessibility scanning detected %{strong_start}%{number}%{strong_end} issue for the source branch only"
+msgid_plural "Reports|Accessibility scanning detected %{strong_start}%{number}%{strong_end} issues for the source branch only"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Reports|Accessibility scanning detected no issues for the source branch only"
+msgstr ""
+
+msgid "Reports|Accessibility scanning failed loading results"
+msgstr ""
+
+msgid "Reports|Accessibility scanning results are being parsed"
+msgstr ""
+
+msgid "Reports|Actions"
+msgstr ""
+
+msgid "Reports|An error occurred while loading %{name} results"
+msgstr ""
+
+msgid "Reports|An error occurred while loading report"
+msgstr ""
+
+msgid "Reports|Base report parsing error:"
+msgstr ""
+
+msgid "Reports|Copy failed test names to run locally"
+msgstr ""
+
+msgid "Reports|Copy failed tests"
+msgstr ""
+
+msgid "Reports|Failed %{count} time in %{baseBranch} in the last 14 days"
+msgid_plural "Reports|Failed %{count} times in %{baseBranch} in the last 14 days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Reports|Failed %{count} time in %{base_branch} in the last 14 days"
+msgid_plural "Reports|Failed %{count} times in %{base_branch} in the last 14 days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Reports|Fixed"
+msgstr ""
+
+msgid "Reports|Full report"
+msgstr ""
+
+msgid "Reports|Head report parsing error:"
+msgstr ""
+
+msgid "Reports|Identifier"
+msgstr ""
+
+msgid "Reports|Metrics report scanning detected no new changes"
+msgstr ""
+
+msgid "Reports|Metrics reports are loading"
+msgstr ""
+
+msgid "Reports|Metrics reports changed on %{numberOfChanges} %{pointsString}"
+msgstr ""
+
+msgid "Reports|Metrics reports did not change"
+msgstr ""
+
+msgid "Reports|Metrics reports failed loading results"
+msgstr ""
+
+msgid "Reports|Metrics reports failed to load results"
+msgstr ""
+
+msgid "Reports|Metrics reports: %{strong_start}%{numberOfChanges}%{strong_end} %{changes}"
+msgstr ""
+
+msgid "Reports|New"
+msgstr ""
+
+msgid "Reports|Scanner"
+msgstr ""
+
+msgid "Reports|Severity"
+msgstr ""
+
+msgid "Reports|Test summary"
+msgstr ""
+
+msgid "Reports|Test summary failed to load results"
+msgstr ""
+
+msgid "Reports|Test summary results are loading"
+msgstr ""
+
+msgid "Reports|Tool"
+msgstr ""
+
+msgid "Reports|Vulnerability"
+msgstr ""
+
+msgid "Reports|Vulnerability Name"
+msgstr ""
+
+msgid "Reports|metrics report"
+msgstr ""
+
+msgid "Repositories Analytics"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Analyze repositories for projects in %{groupName}. Data doesn't include projects in subgroups. %{learnMoreLink}."
+msgstr ""
+
+msgid "RepositoriesAnalytics|Average Coverage by Job"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Average coverage"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Average test coverage"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Code Coverage: %{averageCoverage}"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Coverage"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Coverage Jobs"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Download historic test coverage data"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Download historic test coverage data (.csv)"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Download test coverage data (.csv)"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Historic Test Coverage Data is available in raw format (.csv) for further analysis."
+msgstr ""
+
+msgid "RepositoriesAnalytics|In the last day, %{metricValue} job has code coverage."
+msgid_plural "RepositoriesAnalytics|In the last day, %{metricValue} jobs have code coverage."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "RepositoriesAnalytics|In the last day, %{metricValue} project in %{groupName} has code coverage enabled."
+msgid_plural "RepositoriesAnalytics|In the last day, %{metricValue} projects in %{groupName} have code coverage enabled."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "RepositoriesAnalytics|In the last day, on average, %{metricValue} of all jobs are covered."
+msgstr ""
+
+msgid "RepositoriesAnalytics|Jobs with Coverage"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Jobs with Coverage: %{coverageCount}"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Last Update"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Last updated %{timeAgo}"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Latest test coverage results"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Latest test coverage results for all projects in %{groupName} (excluding projects in subgroups)."
+msgstr ""
+
+msgid "RepositoriesAnalytics|No test coverage to display"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Please select a project or multiple projects to display their most recent test coverage data."
+msgstr ""
+
+msgid "RepositoriesAnalytics|Please select projects to display."
+msgstr ""
+
+msgid "RepositoriesAnalytics|Projects with Coverage"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Projects with Coverage: %{projectCount}"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Repositories Analytics"
+msgstr ""
+
+msgid "RepositoriesAnalytics|Test Code Coverage"
+msgstr ""
+
+msgid "RepositoriesAnalytics|There was an error fetching the projects."
+msgstr ""
+
+msgid "Repository"
+msgstr ""
+
+msgid "Repository Analytics"
+msgstr ""
+
+msgid "Repository Graph"
+msgstr ""
+
+msgid "Repository Settings"
+msgstr ""
+
+msgid "Repository already read-only"
+msgstr ""
+
+msgid "Repository analytics"
+msgstr ""
+
+msgid "Repository by URL"
+msgstr ""
+
+msgid "Repository check"
+msgstr ""
+
+msgid "Repository check was triggered."
+msgstr ""
+
+msgid "Repository checks"
+msgstr ""
+
+msgid "Repository cleanup"
+msgstr ""
+
+msgid "Repository cleanup has started. You will receive an email once the cleanup operation is complete."
+msgstr ""
+
+msgid "Repository clone URL"
+msgstr ""
+
+msgid "Repository files count over the limit"
+msgstr ""
+
+msgid "Repository graph"
+msgstr ""
+
+msgid "Repository has an invalid default branch name."
+msgstr ""
+
+msgid "Repository has more than one branch."
+msgstr ""
+
+msgid "Repository has no locks."
+msgstr ""
+
+msgid "Repository has tags."
+msgstr ""
+
+msgid "Repository maintenance"
+msgstr ""
+
+msgid "Repository mirroring"
+msgstr ""
+
+msgid "Repository mirroring configuration"
+msgstr ""
+
+msgid "Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner."
+msgstr ""
+
+msgid "Repository must contain at least 1 file."
+msgstr ""
+
+msgid "Repository size is above the limit."
+msgstr ""
+
+msgid "Repository size limit (MiB)"
+msgstr ""
+
+msgid "Repository storage"
+msgstr ""
+
+msgid "Repository update events"
+msgstr ""
+
+msgid "Repository usage recalculation started"
+msgstr ""
+
+msgid "Repository: %{counter_repositories} / Wikis: %{counter_wikis} / Build Artifacts: %{counter_build_artifacts} / Pipeline Artifacts: %{counter_pipeline_artifacts} / LFS: %{counter_lfs_objects} / Snippets: %{counter_snippets} / Packages: %{counter_packages} / Uploads: %{counter_uploads}"
+msgstr ""
+
+msgid "Request"
+msgstr ""
+
+msgid "Request Access"
+msgstr ""
+
+msgid "Request Headers"
+msgstr ""
+
+msgid "Request a new one"
+msgstr ""
+
+msgid "Request changes"
+msgstr ""
+
+msgid "Request changes to the current merge request."
+msgstr ""
+
+msgid "Request data is too large"
+msgstr ""
+
+msgid "Request details"
+msgstr ""
+
+msgid "Request review from"
+msgstr ""
+
+msgid "Request time"
+msgstr ""
+
+msgid "Request to link SAML account must be authorized"
+msgstr ""
+
+msgid "Requested"
+msgstr ""
+
+msgid "Requested %{time_ago}"
+msgstr ""
+
+msgid "Requested design version does not exist."
+msgstr ""
+
+msgid "Requested review"
+msgstr ""
+
+msgid "Requested states are invalid"
+msgstr ""
+
+msgid "Requests"
+msgstr ""
+
+msgid "Requests for pages at %{code_start}%{help_text_url}%{code_end} redirect to the URL. The destination must meet certain requirements. %{docs_link_start}Learn more.%{docs_link_end}"
+msgstr ""
+
+msgid "Requests per period"
+msgstr ""
+
+msgid "Require additional authentication for administrative tasks."
+msgstr ""
+
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
+msgid "Require expiration date"
+msgstr ""
+
+msgid "Required approvals (%{approvals_given} given)"
+msgstr ""
+
+msgid "Required approvals (%{approvals_given} given, you've approved)"
+msgstr ""
+
+msgid "Required in this project."
+msgstr ""
+
+msgid "Required only if you are not using role instance credentials."
+msgstr ""
+
+msgid "Requirement"
+msgstr ""
+
+msgid "Requirement %{reference} has been added"
+msgstr ""
+
+msgid "Requirement %{reference} has been archived"
+msgstr ""
+
+msgid "Requirement %{reference} has been reopened"
+msgstr ""
+
+msgid "Requirement %{reference} has been updated"
+msgstr ""
+
+msgid "Requirements"
+msgstr ""
+
+msgid "Requirements can be based on users, stakeholders, system, software, or anything else you find important to capture."
+msgstr ""
+
+msgid "Requirement|Legacy requirement ID: %{legacyId}"
+msgstr ""
+
+msgid "Requirement|Legacy requirement IDs are being deprecated. Update your links to reference this item's new ID %{id}. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "Requirement|Requirements have become work items and the legacy requirement IDs are being deprecated. Update your links to reference this item's new ID %{id}. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "Requires %d approval from eligible users."
+msgid_plural "Requires %d approvals from eligible users."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Requires %{count} approval from %{names}."
+msgid_plural "Requires %{count} approvals from %{names}."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Requires a verified GitLab email address."
+msgstr ""
+
+msgid "Requires you to deploy or set up cloud-hosted Sentry."
+msgstr ""
+
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
+msgstr ""
+
+msgid "Resend"
+msgstr ""
+
+msgid "Resend Request"
+msgstr ""
+
+msgid "Resend confirmation e-mail"
+msgstr ""
+
+msgid "Resend confirmation email"
+msgstr ""
+
+msgid "Resend invite"
+msgstr ""
+
+msgid "Resend it"
+msgstr ""
+
+msgid "Resend unlock instructions"
+msgstr ""
+
+msgid "Reset"
+msgstr ""
+
+msgid "Reset error tracking access token"
+msgstr ""
+
+msgid "Reset file"
+msgstr ""
+
+msgid "Reset filters"
+msgstr ""
+
+msgid "Reset health check access token"
+msgstr ""
+
+msgid "Reset password"
+msgstr ""
+
+msgid "Reset registration token"
+msgstr ""
+
+msgid "Reset template"
+msgstr ""
+
+msgid "Reset to project defaults"
+msgstr ""
+
+msgid "Resolve"
+msgstr ""
+
+msgid "Resolve all with new issue"
+msgstr ""
+
+msgid "Resolve any conflicts. %{linkStart}How do I fix them?%{linkEnd}"
+msgstr ""
+
+msgid "Resolve conflicts"
+msgstr ""
+
+msgid "Resolve conflicts on source branch"
+msgstr ""
+
+msgid "Resolve locally"
+msgstr ""
+
+msgid "Resolve thread"
+msgstr ""
+
+msgid "Resolved"
+msgstr ""
+
+msgid "Resolved 1 discussion."
+msgstr ""
+
+msgid "Resolved all discussions."
+msgstr ""
+
+msgid "Resolved by"
+msgstr ""
+
+msgid "Resolved by %{name}"
+msgstr ""
+
+msgid "Resource link added"
+msgstr ""
+
+msgid "Response"
+msgstr ""
+
+msgid "Response didn't include `service_desk_address`"
+msgstr ""
+
+msgid "Response generated by AI"
+msgstr ""
+
+msgid "Response initiated"
+msgstr ""
+
+msgid "Response metrics (AWS ELB)"
+msgstr ""
+
+msgid "Response metrics (Custom)"
+msgstr ""
+
+msgid "Response metrics (HA Proxy)"
+msgstr ""
+
+msgid "Response metrics (NGINX Ingress VTS)"
+msgstr ""
+
+msgid "Response metrics (NGINX Ingress)"
+msgstr ""
+
+msgid "Response metrics (NGINX)"
+msgstr ""
+
+msgid "Response text"
+msgstr ""
+
+msgid "Restart GitLab to apply changes."
+msgstr ""
+
+msgid "Restart Terminal"
+msgstr ""
+
+msgid "Restart merge train pipelines with the merged changes."
+msgstr ""
+
+msgid "Restore"
+msgstr ""
+
+msgid "Restore group"
+msgstr ""
+
+msgid "Restore project"
+msgstr ""
+
+msgid "Restoring projects"
+msgstr ""
+
+msgid "Restoring the group will prevent the group, its subgroups and projects from being removed on this date."
+msgstr ""
+
+msgid "Restoring the project will prevent the project from being removed on this date and restore people's ability to make changes to it."
+msgstr ""
+
+msgid "Restrict access by IP address"
+msgstr ""
+
+msgid "Restrict membership by email domain"
+msgstr ""
+
+msgid "Restrict projects for this runner"
+msgstr ""
+
+msgid "Restricted shift times are not available for hourly shifts"
+msgstr ""
+
+msgid "Results limit reached"
+msgstr ""
+
+msgid "Resume"
+msgstr ""
+
+msgid "Retry"
+msgstr ""
+
+msgid "Retry all failed or cancelled jobs"
+msgstr ""
+
+msgid "Retry downstream pipeline"
+msgstr ""
+
+msgid "Retry job"
+msgstr ""
+
+msgid "Retry migration"
+msgstr ""
+
+msgid "Retry this job"
+msgstr ""
+
+msgid "Retry this job in order to create the necessary resources."
+msgstr ""
+
+msgid "Retry verification"
+msgstr ""
+
+msgid "Reveal values"
+msgstr ""
+
+msgid "Revert this commit"
+msgstr ""
+
+msgid "Revert this merge request"
+msgstr ""
+
+msgid "Review"
+msgstr ""
+
+msgid "Review App|View app"
+msgstr ""
+
+msgid "Review App|View latest app"
+msgstr ""
+
+msgid "Review changes"
+msgstr ""
+
+msgid "Review requests"
+msgstr ""
+
+msgid "Review the changes locally."
+msgstr ""
+
+msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"."
+msgstr ""
+
+msgid "Review the target project before submitting to avoid exposing %{source} changes."
+msgstr ""
+
+msgid "Review time"
+msgstr ""
+
+msgid "Review time is the amount of time since the first comment in a merge request."
+msgstr ""
+
+msgid "Reviewer"
+msgid_plural "%d Reviewers"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
+msgid "Reviewers"
+msgstr ""
+
+msgid "Reviewing"
+msgstr ""
+
+msgid "Reviewing (merge request !%{mergeRequestId})"
+msgstr ""
+
+msgid "Revoke"
+msgstr ""
+
+msgid "Revoke Key"
+msgstr ""
+
+msgid "Revoked"
+msgstr ""
+
+msgid "Revoked access token %{access_token_name}!"
+msgstr ""
+
+msgid "Revoked impersonation token %{token_name}!"
+msgstr ""
+
+msgid "Revoked personal access token %{personal_access_token_name}!"
+msgstr ""
+
+msgid "RightSidebar|Copy email address"
+msgstr ""
+
+msgid "RightSidebar|Issue email"
+msgstr ""
+
+msgid "Roadmap"
+msgstr ""
+
+msgid "Roadmap settings"
+msgstr ""
+
+msgid "Roadmap view"
+msgstr ""
+
+msgid "Role"
+msgstr ""
+
+msgid "Roles and Permissions"
+msgstr ""
+
+msgid "Rollback"
+msgstr ""
+
+msgid "Root cause analysis"
+msgstr ""
+
+msgid "Root cause analysis is a feature that analyzes your logs to determine why a job may have failed and the potential ways to fix it. To generate this analysis, we may share information in your job logs with %{linkStart}Third-Party AI providers%{linkEnd}. Before initiating this analysis, please do not include in your logs any information that could impact the security or privacy of your account."
+msgstr ""
+
+msgid "Ruby"
+msgstr ""
+
+msgid "Rule name is already taken."
+msgstr ""
+
+msgid "Rules that define what git pushes are accepted for a project in this group. All newly created projects in this group will use these settings."
+msgstr ""
+
+msgid "Rules that define what git pushes are accepted for a project. All newly created projects will use these settings."
+msgstr ""
+
+msgid "Run %{code_start}git fsck%{code_end} periodically in all project and wiki repositories to look for silent disk corruption issues."
+msgstr ""
+
+msgid "Run CI/CD pipelines for external repositories"
+msgstr ""
+
+msgid "Run CI/CD pipelines with Jenkins when you push to a repository, or when a merge request is created, updated, or merged. %{docs_link}"
+msgstr ""
+
+msgid "Run CI/CD pipelines with Jenkins."
+msgstr ""
+
+msgid "Run again"
+msgstr ""
+
+msgid "Run housekeeping"
+msgstr ""
+
+msgid "Run housekeeping tasks to automatically optimize Git repositories. Disabling this option will cause performance to degenerate over time."
+msgstr ""
+
+msgid "Run job"
+msgstr ""
+
+msgid "Run manual or delayed jobs"
+msgstr ""
+
+msgid "Run tests against your code live using the Web Terminal"
+msgstr ""
+
+msgid "Run untagged jobs"
+msgstr ""
+
+msgid "Runner"
+msgstr ""
+
+msgid "Runner API"
+msgstr ""
+
+msgid "Runner tokens"
+msgstr ""
+
+msgid "Runner was not updated."
+msgstr ""
+
+msgid "Runner was successfully updated."
+msgstr ""
+
+msgid "RunnerTags|No matching results"
+msgstr ""
+
+msgid "RunnerTags|No tags exist"
+msgstr ""
+
+msgid "RunnerTags|Select runner tags"
+msgstr ""
+
+msgid "Runners"
+msgstr ""
+
+msgid "Runners are processes that pick up and execute CI/CD jobs for GitLab."
+msgstr ""
+
+msgid "Runners page."
+msgstr ""
+
+msgid "Runners|%d selected runner deleted"
+msgid_plural "Runners|%d selected runners deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|%{count} runners in this group"
+msgstr ""
+
+msgid "Runners|%{highlightStart}%{duration}%{highlightEnd} second"
+msgid_plural "Runners|%{highlightStart}%{duration}%{highlightEnd} seconds"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|%{installLinkStart}Upgrade GitLab Runner%{installLinkEnd} to match your GitLab version. %{versionLinkStart}Major and minor versions%{versionLinkEnd} must match."
+msgstr ""
+
+msgid "Runners|%{installLinkStart}Upgrade GitLab Runner%{installLinkEnd} to match your GitLab version. This upgrade is highly recommended for this runner and may contain security or compatibilty fixes. %{versionLinkStart}Major and minor versions%{versionLinkEnd} must match."
+msgstr ""
+
+msgid "Runners|%{linkStart}Create a new runner%{linkEnd} to get started."
+msgstr ""
+
+msgid "Runners|%{link_start}These runners%{link_end} are available to all groups and projects."
+msgstr ""
+
+msgid "Runners|%{percentage} spot."
+msgstr ""
+
+msgid "Runners|%{strongStart}%{count}%{strongEnd} runner selected"
+msgid_plural "Runners|%{strongStart}%{count}%{strongEnd} runners selected"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|%{strongStart}%{count}%{strongEnd} runner will be permanently deleted and no longer available for projects or groups in the instance. Are you sure you want to continue?"
+msgid_plural "Runners|%{strongStart}%{count}%{strongEnd} runners will be permanently deleted and no longer available for projects or groups in the instance. Are you sure you want to continue?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|75th percentile"
+msgstr ""
+
+msgid "Runners|90th percentile"
+msgstr ""
+
+msgid "Runners|99th percentile"
+msgstr ""
+
+msgid "Runners|A capacity of 1 enables warm HA through Auto Scaling group re-spawn. A capacity of 2 enables hot HA because the service is available even when a node is lost. A capacity of 3 or more enables hot HA and manual scaling of runner fleet."
+msgstr ""
+
+msgid "Runners|A new version is available"
+msgstr ""
+
+msgid "Runners|A periodic background task deletes runners that haven't contacted GitLab in more than %{elapsedTime}. Only runners registered in this group are deleted. Runners in subgroups and projects are not. %{linkStart}Can I view how many runners were deleted?%{linkEnd}"
+msgstr ""
+
+msgid "Runners|Active"
+msgstr ""
+
+msgid "Runners|Active runners"
+msgstr ""
+
+msgid "Runners|Add notes such as the runner owner or what it should be used for."
+msgstr ""
+
+msgid "Runners|Add tags to specify jobs that the runner can run. %{helpLinkStart}Learn more.%{helpLinkEnd}"
+msgstr ""
+
+msgid "Runners|Admin area › Runners"
+msgstr ""
+
+msgid "Runners|Administrator"
+msgstr ""
+
+msgid "Runners|All"
+msgstr ""
+
+msgid "Runners|All group runners that have not contacted GitLab in more than %{elapsedTime} are deleted permanently. This task runs periodically in the background."
+msgstr ""
+
+msgid "Runners|Amazon Linux 2 Docker HA with manual scaling and optional scheduling. %{percentage} spot."
+msgstr ""
+
+msgid "Runners|Amazon Linux 2 Docker HA with manual scaling and optional scheduling. Non-spot."
+msgstr ""
+
+msgid "Runners|An error has occurred fetching instructions"
+msgstr ""
+
+msgid "Runners|An error occurred while creating the runner. Please try again."
+msgstr ""
+
+msgid "Runners|An error occurred while deleting. Some runners may not have been deleted."
+msgstr ""
+
+msgid "Runners|An upgrade is available for this runner"
+msgstr ""
+
+msgid "Runners|An upgrade is recommended for this runner"
+msgstr ""
+
+msgid "Runners|Arch/Platform"
+msgstr ""
+
+msgid "Runners|Architecture"
+msgstr ""
+
+msgid "Runners|Are you sure you want to disable shared runners for %{groupName}?"
+msgstr ""
+
+msgid "Runners|Assigned Group"
+msgstr ""
+
+msgid "Runners|Assigned Projects (%{projectCount})"
+msgstr ""
+
+msgid "Runners|Assigned project runners"
+msgstr ""
+
+msgid "Runners|Associated with one or more projects"
+msgstr ""
+
+msgid "Runners|Available"
+msgstr ""
+
+msgid "Runners|Available shared runners: %{count}"
+msgstr ""
+
+msgid "Runners|Available to all projects"
+msgstr ""
+
+msgid "Runners|Available to all projects and subgroups in the group"
+msgstr ""
+
+msgid "Runners|Can run untagged jobs"
+msgstr ""
+
+msgid "Runners|Capacity of 1 enables warm HA through Auto Scaling group re-spawn. Capacity of 2 enables hot HA because the service is available even when a node is lost. Capacity of 3 or more enables hot HA and manual scaling of runner fleet."
+msgstr ""
+
+msgid "Runners|Checkbox"
+msgstr ""
+
+msgid "Runners|Choose an executor when prompted by the command line. Executors run builds in different environments. %{linkStart}Not sure which one to select?%{linkEnd}"
+msgstr ""
+
+msgid "Runners|Choose your preferred GitLab Runner"
+msgstr ""
+
+msgid "Runners|Clear selection"
+msgstr ""
+
+msgid "Runners|Command to register runner"
+msgstr ""
+
+msgid "Runners|Configuration"
+msgstr ""
+
+msgid "Runners|Containers"
+msgstr ""
+
+msgid "Runners|Copy and paste the following command into your command line to register the runner."
+msgstr ""
+
+msgid "Runners|Copy instructions"
+msgstr ""
+
+msgid "Runners|Copy registration token"
+msgstr ""
+
+msgid "Runners|Create a group runner"
+msgstr ""
+
+msgid "Runners|Create a group runner to generate a command that registers the runner with all its configurations."
+msgstr ""
+
+msgid "Runners|Create a project runner"
+msgstr ""
+
+msgid "Runners|Create a project runner to generate a command that registers the runner with all its configurations."
+msgstr ""
+
+msgid "Runners|Create an instance runner"
+msgstr ""
+
+msgid "Runners|Create an instance runner to generate a command that registers the runner with all its configurations."
+msgstr ""
+
+msgid "Runners|Create runner"
+msgstr ""
+
+msgid "Runners|Created %{timeAgo}"
+msgstr ""
+
+msgid "Runners|Created by %{user}"
+msgstr ""
+
+msgid "Runners|Created by %{user} %{timeAgo}"
+msgstr ""
+
+msgid "Runners|Delete"
+msgstr ""
+
+msgid "Runners|Delete %d runner"
+msgid_plural "Runners|Delete %d runners"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|Delete %{count} runners?"
+msgstr ""
+
+msgid "Runners|Delete runner"
+msgstr ""
+
+msgid "Runners|Delete runner %{name}?"
+msgstr ""
+
+msgid "Runners|Delete selected"
+msgstr ""
+
+msgid "Runners|Deploy GitLab Runner in AWS"
+msgstr ""
+
+msgid "Runners|Description"
+msgstr ""
+
+msgid "Runners|Details"
+msgstr ""
+
+msgid "Runners|Don't see what you are looking for? See the full list of options, including a fully customizable option %{linkStart}here%{linkEnd}."
+msgstr ""
+
+msgid "Runners|Download and install binary"
+msgstr ""
+
+msgid "Runners|Download latest binary"
+msgstr ""
+
+msgid "Runners|Edit your search and try again"
+msgstr ""
+
+msgid "Runners|Enable stale runner cleanup"
+msgstr ""
+
+msgid "Runners|Enable stale runner cleanup?"
+msgstr ""
+
+msgid "Runners|Enter the job timeout in seconds. Must be a minimum of 600 seconds."
+msgstr ""
+
+msgid "Runners|Environment"
+msgstr ""
+
+msgid "Runners|Executor"
+msgstr ""
+
+msgid "Runners|Existing runners are not affected. To permit runner registration for all groups, enable this setting in the Admin Area in Settings &gt; CI/CD."
+msgstr ""
+
+msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
+msgstr ""
+
+msgid "Runners|Export as CSV"
+msgstr ""
+
+msgid "Runners|Failed adding runner to project"
+msgstr ""
+
+msgid "Runners|Fetch GitLab Runner release version data from GitLab.com"
+msgstr ""
+
+msgid "Runners|Filter projects"
+msgstr ""
+
+msgid "Runners|Fleet dashboard"
+msgstr ""
+
+msgid "Runners|Get started with runners"
+msgstr ""
+
+msgid "Runners|GitLab Runner must be installed before you can register a runner. %{linkStart}How do I install GitLab Runner?%{linkEnd}"
+msgstr ""
+
+msgid "Runners|Go to %{groupLink} to enable them."
+msgstr ""
+
+msgid "Runners|Go to runners page"
+msgstr ""
+
+msgid "Runners|Group"
+msgstr ""
+
+msgid "Runners|Group area › Runners"
+msgstr ""
+
+msgid "Runners|How do runners pick up jobs?"
+msgstr ""
+
+msgid "Runners|IP Address"
+msgstr ""
+
+msgid "Runners|Idle"
+msgstr ""
+
+msgid "Runners|If both settings are disabled, new runners cannot be registered."
+msgstr ""
+
+msgid "Runners|In GitLab Runner 15.6, the use of registration tokens and runner parameters in the 'register' command was deprecated. They have been replaced by authentication tokens. %{linkStart}How does this impact my current registration workflow?%{linkEnd}"
+msgstr ""
+
+msgid "Runners|Install GitLab Runner"
+msgstr ""
+
+msgid "Runners|Install a runner"
+msgstr ""
+
+msgid "Runners|Instance"
+msgstr ""
+
+msgid "Runners|Instance: Median job queued time"
+msgstr ""
+
+msgid "Runners|Jobs"
+msgstr ""
+
+msgid "Runners|Jobs in projects you have access to."
+msgstr ""
+
+msgid "Runners|Last contact"
+msgstr ""
+
+msgid "Runners|Last contact: %{timeAgo}"
+msgstr ""
+
+msgid "Runners|Locked to this project"
+msgstr ""
+
+msgid "Runners|Maintenance note"
+msgstr ""
+
+msgid "Runners|Make sure the runner is online and available to run jobs (not paused). Jobs display here when the runner picks them up."
+msgstr ""
+
+msgid "Runners|Manually verify that the runner is available to pick up jobs."
+msgstr ""
+
+msgid "Runners|Maximum amount of time the runner can run before it terminates. If a project has a shorter job timeout period, the job timeout period of the instance runner is used instead."
+msgstr ""
+
+msgid "Runners|Maximum job timeout"
+msgstr ""
+
+msgid "Runners|Median"
+msgstr ""
+
+msgid "Runners|Members of the %{type} can register runners"
+msgstr ""
+
+msgid "Runners|Minor version upgrades are available."
+msgstr ""
+
+msgid "Runners|Most recent failures"
+msgstr ""
+
+msgid "Runners|Name"
+msgstr ""
+
+msgid "Runners|Never contacted"
+msgstr ""
+
+msgid "Runners|Never contacted:"
+msgstr ""
+
+msgid "Runners|Never expires"
+msgstr ""
+
+msgid "Runners|New"
+msgstr ""
+
+msgid "Runners|New group runner"
+msgstr ""
+
+msgid "Runners|New group runners can be registered"
+msgstr ""
+
+msgid "Runners|New instance runner"
+msgstr ""
+
+msgid "Runners|New project runner"
+msgstr ""
+
+msgid "Runners|New project runners can be registered"
+msgstr ""
+
+msgid "Runners|New registration token generated!"
+msgstr ""
+
+msgid "Runners|New runner"
+msgstr ""
+
+msgid "Runners|No description"
+msgstr ""
+
+msgid "Runners|No jobs have been run by instance runners in the past 3 hours."
+msgstr ""
+
+msgid "Runners|No results found"
+msgstr ""
+
+msgid "Runners|No spot. Default choice for Windows Shell executor."
+msgstr ""
+
+msgid "Runners|No spot. This is the default choice for Linux Docker executor."
+msgstr ""
+
+msgid "Runners|No, keep shared runners enabled"
+msgstr ""
+
+msgid "Runners|Not accepting jobs"
+msgstr ""
+
+msgid "Runners|Official runner version data is periodically fetched from GitLab.com to determine whether the runners need upgrades."
+msgstr ""
+
+msgid "Runners|Offline"
+msgstr ""
+
+msgid "Runners|Offline:"
+msgstr ""
+
+msgid "Runners|Online"
+msgstr ""
+
+msgid "Runners|Online:"
+msgstr ""
+
+msgid "Runners|Only administrators can view this."
+msgstr ""
+
+msgid "Runners|Operating systems"
+msgstr ""
+
+msgid "Runners|Owner"
+msgstr ""
+
+msgid "Runners|Pause from accepting jobs"
+msgstr ""
+
+msgid "Runners|Paused"
+msgstr ""
+
+msgid "Runners|Permanently delete %d runner"
+msgid_plural "Runners|Permanently delete %d runners"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|Permanently delete runner"
+msgid_plural "Runners|Permanently delete %d runners"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|Platform"
+msgstr ""
+
+msgid "Runners|Project"
+msgstr ""
+
+msgid "Runners|Project runners"
+msgstr ""
+
+msgid "Runners|Project › CI/CD Settings › Runners"
+msgstr ""
+
+msgid "Runners|Property Name"
+msgstr ""
+
+msgid "Runners|Protected"
+msgstr ""
+
+msgid "Runners|Recommended"
+msgstr ""
+
+msgid "Runners|Register"
+msgstr ""
+
+msgid "Runners|Register \"%{runnerDescription}\" runner"
+msgstr ""
+
+msgid "Runners|Register a group runner"
+msgstr ""
+
+msgid "Runners|Register a project runner"
+msgstr ""
+
+msgid "Runners|Register a runner"
+msgstr ""
+
+msgid "Runners|Register an instance runner"
+msgstr ""
+
+msgid "Runners|Register as many runners as you want. You can register runners as separate users, on separate servers, and on your local machine."
+msgstr ""
+
+msgid "Runners|Register runner"
+msgstr ""
+
+msgid "Runners|Registration token"
+msgstr ""
+
+msgid "Runners|Registration token copied!"
+msgstr ""
+
+msgid "Runners|Reset token"
+msgstr ""
+
+msgid "Runners|Resume accepting jobs"
+msgstr ""
+
+msgid "Runners|Revision"
+msgstr ""
+
+msgid "Runners|Runner"
+msgstr ""
+
+msgid "Runners|Runner #%{runner_id}"
+msgstr ""
+
+msgid "Runners|Runner %{name} was deleted"
+msgstr ""
+
+msgid "Runners|Runner %{runnerName} failed to delete"
+msgstr ""
+
+msgid "Runners|Runner Registration"
+msgstr ""
+
+msgid "Runners|Runner Registration token"
+msgstr ""
+
+msgid "Runners|Runner Usage"
+msgstr ""
+
+msgid "Runners|Runner assigned to project."
+msgstr ""
+
+msgid "Runners|Runner authentication token expiration"
+msgstr ""
+
+msgid "Runners|Runner authentication tokens will expire based on a set interval. They will automatically rotate once expired."
+msgstr ""
+
+msgid "Runners|Runner created."
+msgstr ""
+
+msgid "Runners|Runner description"
+msgstr ""
+
+msgid "Runners|Runner has contacted GitLab within the last %{elapsedTime}"
+msgstr ""
+
+msgid "Runners|Runner has never contacted GitLab (when you register a runner, use %{codeStart}gitlab-runner run%{codeEnd} to bring it online)"
+msgstr ""
+
+msgid "Runners|Runner has never contacted this instance"
+msgstr ""
+
+msgid "Runners|Runner has not contacted GitLab in more than %{elapsedTime}"
+msgstr ""
+
+msgid "Runners|Runner is locked and available for currently assigned projects only. Only administrators can change the assigned projects."
+msgstr ""
+
+msgid "Runners|Runner is offline; last contact was %{runner_contact} ago"
+msgstr ""
+
+msgid "Runners|Runner is offline; last contact was %{timeAgo}"
+msgstr ""
+
+msgid "Runners|Runner is online; last contact was %{runner_contact} ago"
+msgstr ""
+
+msgid "Runners|Runner is online; last contact was %{timeAgo}"
+msgstr ""
+
+msgid "Runners|Runner is stale; it has never contacted this instance"
+msgstr ""
+
+msgid "Runners|Runner is stale; last contact was %{runner_contact} ago"
+msgstr ""
+
+msgid "Runners|Runner is stale; last contact was %{timeAgo}"
+msgstr ""
+
+msgid "Runners|Runner performance insights"
+msgstr ""
+
+msgid "Runners|Runner registration"
+msgstr ""
+
+msgid "Runners|Runner statuses"
+msgstr ""
+
+msgid "Runners|Runner unassigned from project."
+msgstr ""
+
+msgid "Runners|Runner version management"
+msgstr ""
+
+msgid "Runners|Runners"
+msgstr ""
+
+msgid "Runners|Runners are either:"
+msgstr ""
+
+msgid "Runners|Runners are grouped when they have the same authentication token. This happens when you re-use a runner configuration in more than one runner manager. %{linkStart}How does this work?%{linkEnd}"
+msgstr ""
+
+msgid "Runners|Runners are the agents that run your CI/CD jobs."
+msgstr ""
+
+msgid "Runners|Runners performance"
+msgstr ""
+
+msgid "Runners|Running"
+msgstr ""
+
+msgid "Runners|Running Jobs"
+msgstr ""
+
+msgid "Runners|Runs untagged jobs"
+msgstr ""
+
+msgid "Runners|Search description..."
+msgstr ""
+
+msgid "Runners|Security or compatibility upgrades are recommended."
+msgstr ""
+
+msgid "Runners|See more %{linkStart}installation methods and architectures%{linkEnd}."
+msgstr ""
+
+msgid "Runners|Select all"
+msgstr ""
+
+msgid "Runners|Select platform specifications to install GitLab Runner."
+msgstr ""
+
+msgid "Runners|Select projects to assign to this runner"
+msgstr ""
+
+msgid "Runners|Select your preferred runner, then choose the capacity for the runner in the AWS CloudFormation console."
+msgstr ""
+
+msgid "Runners|Separate multiple tags with a comma. For example, %{example}."
+msgstr ""
+
+msgid "Runners|Shared runners are disabled in the group settings."
+msgstr ""
+
+msgid "Runners|Shared runners are disabled."
+msgstr ""
+
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
+msgstr ""
+
+msgid "Runners|Show only inherited"
+msgstr ""
+
+msgid "Runners|Show runner installation and registration instructions"
+msgstr ""
+
+msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
+msgstr ""
+
+msgid "Runners|Something went wrong while fetching runner data."
+msgstr ""
+
+msgid "Runners|Something went wrong while fetching the tags suggestions"
+msgstr ""
+
+msgid "Runners|Stale"
+msgstr ""
+
+msgid "Runners|Stale:"
+msgstr ""
+
+msgid "Runners|Status"
+msgstr ""
+
+msgid "Runners|Step 1"
+msgstr ""
+
+msgid "Runners|Step 2"
+msgstr ""
+
+msgid "Runners|Step 3 (optional)"
+msgstr ""
+
+msgid "Runners|Still using registration tokens?"
+msgstr ""
+
+msgid "Runners|Stop the runner from accepting new jobs."
+msgstr ""
+
+msgid "Runners|Support for registration tokens is deprecated"
+msgstr ""
+
+msgid "Runners|System ID"
+msgstr ""
+
+msgid "Runners|Tags"
+msgstr ""
+
+msgid "Runners|Tags control which type of jobs a runner can handle. By tagging a runner, you make sure shared runners only handle the jobs they are equipped to run."
+msgstr ""
+
+msgid "Runners|The %{boldStart}runner authentication token%{boldEnd} %{token} displays here %{boldStart}for a short time only%{boldEnd}. After you register the runner, this token is stored in the %{codeStart}config.toml%{codeEnd} and cannot be accessed again from the UI."
+msgstr ""
+
+msgid "Runners|The %{boldStart}runner authentication token%{boldEnd} is no longer visible, it is stored in the %{codeStart}config.toml%{codeEnd} if you have registered the runner."
+msgstr ""
+
+msgid "Runners|The project, group or instance where the runner was registered. Instance runners are always owned by Administrator."
+msgstr ""
+
+msgid "Runners|The runner will be permanently deleted and no longer available for projects or groups in the instance. Are you sure you want to continue?"
+msgid_plural "Runners|%d runners will be permanently deleted and no longer available for projects or groups in the instance. Are you sure you want to continue?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|The time it takes for an instance runner to pick up a job. Jobs waiting for runners are in the pending state. %{linkStart}How is this calculated?%{linkEnd}"
+msgstr ""
+
+msgid "Runners|The unique ID for each runner that uses this configuration."
+msgstr ""
+
+msgid "Runners|There are no recent runner failures for your instance runners. Error messages will populate here if runners fail."
+msgstr ""
+
+msgid "Runners|There are no runners running jobs right now. Active runners will populate here as they pick up jobs."
+msgstr ""
+
+msgid "Runners|These runners are assigned to this project."
+msgstr ""
+
+msgid "Runners|This group currently has 1 stale runner."
+msgid_plural "Runners|This group currently has %d stale runners."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Runners|This group currently has no stale runners."
+msgstr ""
+
+msgid "Runners|This may not be needed if you manage your runner as a %{linkStart}system or user service%{linkEnd}."
+msgstr ""
+
+msgid "Runners|This registration process is not supported in GitLab Runner 15.9 or earlier and only available as an experimental feature in GitLab Runner 15.10 and 15.11. You should upgrade to %{linkStart}GitLab Runner 16.0%{linkEnd} or later to use a stable version of this registration process."
+msgstr ""
+
+msgid "Runners|This registration process is only supported in GitLab Runner 15.10 or later"
+msgstr ""
+
+msgid "Runners|This runner has not run any jobs"
+msgstr ""
+
+msgid "Runners|This runner has not run any jobs."
+msgstr ""
+
+msgid "Runners|This runner is associated with specific projects."
+msgstr ""
+
+msgid "Runners|This runner is available to all projects and subgroups in a group."
+msgstr ""
+
+msgid "Runners|This runner is outdated, an upgrade is recommended"
+msgstr ""
+
+msgid "Runners|To install Runner in Kubernetes follow the instructions described in the GitLab documentation."
+msgstr ""
+
+msgid "Runners|To install Runner in a container follow the instructions described in the GitLab documentation"
+msgstr ""
+
+msgid "Runners|To register new runners, contact your administrator."
+msgstr ""
+
+msgid "Runners|To register them, go to the %{link_start}group's Runners page%{link_end}."
+msgstr ""
+
+msgid "Runners|To view the runner, go to %{runnerListName}."
+msgstr ""
+
+msgid "Runners|Token expiry"
+msgstr ""
+
+msgid "Runners|UTC Time"
+msgstr ""
+
+msgid "Runners|Understand how long it takes for runners to pick up a job. %{linkStart}How is this calculated?%{linkEnd}"
+msgstr ""
+
+msgid "Runners|Unselect all"
+msgstr ""
+
+msgid "Runners|Up to date"
+msgstr ""
+
+msgid "Runners|Upgrade Status"
+msgstr ""
+
+msgid "Runners|Upgrade available"
+msgstr ""
+
+msgid "Runners|Upgrade recommended"
+msgstr ""
+
+msgid "Runners|Use Group runners when you want all projects in a group to have access to a set of runners."
+msgstr ""
+
+msgid "Runners|Use the dashboard to view performance statistics of your runner fleet."
+msgstr ""
+
+msgid "Runners|Use the runner for jobs without tags in addition to tagged jobs."
+msgstr ""
+
+msgid "Runners|Use the runner for the currently assigned projects only. Only administrators can change the assigned projects."
+msgstr ""
+
+msgid "Runners|Use the runner on pipelines for protected branches only."
+msgstr ""
+
+msgid "Runners|Value"
+msgstr ""
+
+msgid "Runners|Version"
+msgstr ""
+
+msgid "Runners|Version %{version}"
+msgstr ""
+
+msgid "Runners|Version starts with"
+msgstr ""
+
+msgid "Runners|View installation instructions"
+msgstr ""
+
+msgid "Runners|View metrics"
+msgstr ""
+
+msgid "Runners|View runners list"
+msgstr ""
+
+msgid "Runners|Wait time (secs)"
+msgstr ""
+
+msgid "Runners|Wait time to pick a job"
+msgstr ""
+
+msgid "Runners|Windows 2019 Shell with manual scaling and optional scheduling. %{percentage} spot."
+msgstr ""
+
+msgid "Runners|Windows 2019 Shell with manual scaling and optional scheduling. Non-spot."
+msgstr ""
+
+msgid "Runners|Yes, disable shared runners"
+msgstr ""
+
+msgid "Runners|Yes, start deleting stale runners"
+msgstr ""
+
+msgid "Runners|You can set up a project runner to be used by multiple projects but you cannot make this a shared or group runner."
+msgstr ""
+
+msgid "Runners|You have used %{quotaUsed} out of %{quotaLimit} of your shared Runners pipeline minutes."
+msgstr ""
+
+msgid "Runners|You may lose access to the runner token if you leave this page."
+msgstr ""
+
+msgid "Runners|You've created a new runner!"
+msgstr ""
+
+msgid "Runners|active"
+msgstr ""
+
+msgid "Runners|group"
+msgstr ""
+
+msgid "Runners|paused"
+msgstr ""
+
+msgid "Runners|project"
+msgstr ""
+
+msgid "Runners|shared"
+msgstr ""
+
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
+msgid "Runner|Runner actions"
+msgstr ""
+
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
+msgid "Running"
+msgstr ""
+
+msgid "Runs a number of housekeeping tasks within the current repository, such as compressing file revisions and removing unreachable objects."
+msgstr ""
+
+msgid "SAML"
+msgstr ""
+
+msgid "SAML SSO"
+msgstr ""
+
+msgid "SAML SSO for %{group_name}"
+msgstr ""
+
+msgid "SAML discovery tokens"
+msgstr ""
+
+msgid "SAML for %{group_name}"
+msgstr ""
+
+msgid "SAML group membership settings"
+msgstr ""
+
+msgid "SAML single sign-on"
+msgstr ""
+
+msgid "SAML single sign-on for %{group_name}"
+msgstr ""
+
+msgid "SAML|Sign in to %{groupName}"
+msgstr ""
+
+msgid "SAML|The %{strongOpen}%{group_path}%{strongClose} group allows you to sign in using single sign-on."
+msgstr ""
+
+msgid "SAML|The SAML response did not contain an email address. Either the SAML identity provider is not configured to send the attribute, or the identity provider directory does not have an email address value for your user."
+msgstr ""
+
+msgid "SAML|There is already a GitLab account associated with this email address. Sign in with your existing credentials to connect your organization's account"
+msgstr ""
+
+msgid "SAML|To access %{groupName}, you must sign in using single sign-on through an external sign-in page."
+msgstr ""
+
+msgid "SAML|To allow %{strongOpen}%{group_name}%{strongClose} to manage your GitLab account %{strongOpen}%{username}%{strongClose} (%{email}) after you sign in successfully using single sign-on, select %{strongOpen}Authorize%{strongClose}."
+msgstr ""
+
+msgid "SAML|Your organization's SSO has been connected to your GitLab account"
+msgstr ""
+
+msgid "SAST"
+msgstr ""
+
+msgid "SBOMs last updated"
+msgstr ""
+
+msgid "SCIM|SCIM Token"
+msgstr ""
+
+msgid "SCIM|System for Cross-Domain Identity Management."
+msgstr ""
+
+msgid "SHA256"
+msgstr ""
+
+msgid "SSH Key"
+msgstr ""
+
+msgid "SSH Keys"
+msgstr ""
+
+msgid "SSH Keys Help"
+msgstr ""
+
+msgid "SSH fingerprints verify that the client is connecting to the correct host. Check the %{config_link_start}current instance configuration%{config_link_end}."
+msgstr ""
+
+msgid "SSH host key fingerprints"
+msgstr ""
+
+msgid "SSH host keys"
+msgstr ""
+
+msgid "SSH host keys are not available on this system. Please use %{ssh_keyscan} command or contact your GitLab administrator for more information."
+msgstr ""
+
+msgid "SSH key"
+msgstr ""
+
+msgid "SSH key fingerprint:"
+msgstr ""
+
+msgid "SSH keys"
+msgstr ""
+
+msgid "SSH keys allow you to establish a secure connection between your computer and GitLab."
+msgstr ""
+
+msgid "SSH keys with the following fingerprints are scheduled to expire soon. Expired SSH keys can not be used:"
+msgstr ""
+
+msgid "SSH keys with the following fingerprints have expired and can no longer be used:"
+msgstr ""
+
+msgid "SSH public key"
+msgstr ""
+
+msgid "SSHKey|Authentication"
+msgstr ""
+
+msgid "SSHKey|Authentication & Signing"
+msgstr ""
+
+msgid "SSHKey|Signing"
+msgstr ""
+
+msgid "SSL Verification:"
+msgstr ""
+
+msgid "SSL verification"
+msgstr ""
+
+msgid "SVG could not be rendered correctly: "
+msgstr ""
+
+msgid "Sat"
+msgstr ""
+
+msgid "Satisfied"
+msgstr ""
+
+msgid "Saturday"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Save %{name} size limits"
+msgstr ""
+
+msgid "Save Changes"
+msgstr ""
+
+msgid "Save application"
+msgstr ""
+
+msgid "Save changes"
+msgstr ""
+
+msgid "Save changes before testing"
+msgstr ""
+
+msgid "Save comment"
+msgstr ""
+
+msgid "Save deploy freeze"
+msgstr ""
+
+msgid "Save internal note"
+msgstr ""
+
+msgid "Save password"
+msgstr ""
+
+msgid "Saving"
+msgstr ""
+
+msgid "Saving project."
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{hostname}'s timezone"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{rules} actions for %{scopes} %{branches} %{agents} %{branchExceptions} %{namespaces} %{period}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{rules} every time a pipeline runs for %{scopes} %{branches} %{branchExceptions} %{agents} %{namespaces}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|A runner will be selected automatically from those available."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Add condition"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Add new CI variable"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Conditions"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Create new scan profile"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Create new site profile"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Customized CI variables:"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Customized variables will overwrite ones defined in the project CI/CD file and settings"
+msgstr ""
+
+msgid "ScanExecutionPolicy|DAST scan profiles"
+msgstr ""
+
+msgid "ScanExecutionPolicy|DAST site profiles"
+msgstr ""
+
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Key"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Only one variable can be added at a time."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Runner tags:"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Schedule rule component"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Schedules:"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select a scanner"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select agent"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select branches"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select namespaces"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select or Create a Key"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select scanner profile"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select site profile"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Select timezone"
+msgstr ""
+
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Triggers:"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Use a custom key"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Value"
+msgstr ""
+
+msgid "ScanExecutionPolicy|agent"
+msgstr ""
+
+msgid "ScanExecutionPolicy|branch"
+msgstr ""
+
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
+msgid "ScanExecutionPolicy|has specific tag"
+msgstr ""
+
+msgid "ScanExecutionPolicy|in namespaces"
+msgstr ""
+
+msgid "ScanExecutionPolicy|on %{hostname}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|on the Kubernetes agent pod"
+msgstr ""
+
+msgid "ScanExecutionPolicy|selected automatically"
+msgstr ""
+
+msgid "ScanResultPolicy|%{count} licenses"
+msgstr ""
+
+msgid "ScanResultPolicy|Add new criteria"
+msgstr ""
+
+msgid "ScanResultPolicy|Age criteria can only be added for pre-existing vulnerabilities"
+msgstr ""
+
+msgid "ScanResultPolicy|Age is:"
+msgstr ""
+
+msgid "ScanResultPolicy|Attribute is:"
+msgstr ""
+
+msgid "ScanResultPolicy|Attribute:"
+msgstr ""
+
+msgid "ScanResultPolicy|Attributes are automatically applied by the scanners"
+msgstr ""
+
+msgid "ScanResultPolicy|Choose criteria type"
+msgstr ""
+
+msgid "ScanResultPolicy|Clear all"
+msgstr ""
+
+msgid "ScanResultPolicy|Customized CI Variables"
+msgstr ""
+
+msgid "ScanResultPolicy|Don't show me this again"
+msgstr ""
+
+msgid "ScanResultPolicy|Except"
+msgstr ""
+
+msgid "ScanResultPolicy|False positive"
+msgstr ""
+
+msgid "ScanResultPolicy|Fix available"
+msgstr ""
+
+msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
+msgstr ""
+
+msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
+msgstr ""
+
+msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} for approval rules created by this policy."
+msgstr ""
+
+msgid "ScanResultPolicy|Is"
+msgstr ""
+
+msgid "ScanResultPolicy|Is not"
+msgstr ""
+
+msgid "ScanResultPolicy|License is:"
+msgstr ""
+
+msgid "ScanResultPolicy|License scanning allows only one criteria: Status"
+msgstr ""
+
+msgid "ScanResultPolicy|Matching"
+msgstr ""
+
+msgid "ScanResultPolicy|Merge request approval settings"
+msgstr ""
+
+msgid "ScanResultPolicy|New age"
+msgstr ""
+
+msgid "ScanResultPolicy|New attribute"
+msgstr ""
+
+msgid "ScanResultPolicy|New status"
+msgstr ""
+
+msgid "ScanResultPolicy|Newly Detected"
+msgstr ""
+
+msgid "ScanResultPolicy|No settings available for this policy"
+msgstr ""
+
+msgid "ScanResultPolicy|Only 1 age criteria is allowed"
+msgstr ""
+
+msgid "ScanResultPolicy|Only 2 attribute criteria are allowed"
+msgstr ""
+
+msgid "ScanResultPolicy|Only 2 status criteria are allowed"
+msgstr ""
+
+msgid "ScanResultPolicy|Override project approval settings"
+msgstr ""
+
+msgid "ScanResultPolicy|Pre-existing"
+msgstr ""
+
+msgid "ScanResultPolicy|Prevent approval by commit author"
+msgstr ""
+
+msgid "ScanResultPolicy|Prevent approval by merge request's author"
+msgstr ""
+
+msgid "ScanResultPolicy|Prevent branch modification"
+msgstr ""
+
+msgid "ScanResultPolicy|Prevent pushing and force pushing"
+msgstr ""
+
+msgid "ScanResultPolicy|Protected branch settings"
+msgstr ""
+
+msgid "ScanResultPolicy|Recommended settings"
+msgstr ""
+
+msgid "ScanResultPolicy|Remove all approvals with new commit"
+msgstr ""
+
+msgid "ScanResultPolicy|Require the user's password to approve"
+msgstr ""
+
+msgid "ScanResultPolicy|Select a scan type before adding criteria"
+msgstr ""
+
+msgid "ScanResultPolicy|Select all"
+msgstr ""
+
+msgid "ScanResultPolicy|Select license types"
+msgstr ""
+
+msgid "ScanResultPolicy|Select licenses"
+msgstr ""
+
+msgid "ScanResultPolicy|Severity is:"
+msgstr ""
+
+msgid "ScanResultPolicy|Status is:"
+msgstr ""
+
+msgid "ScanResultPolicy|Unknown"
+msgstr ""
+
+msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
+msgstr ""
+
+msgid "ScanResultPolicy|When %{scanType} in an open merge request targeting %{branches} %{branchExceptions} and the licenses match all of the following criteria:"
+msgstr ""
+
+msgid "ScanResultPolicy|When %{scanType} in an open that targets %{branches} %{branchExceptions} with %{commitType}"
+msgstr ""
+
+msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
+msgstr ""
+
+msgid "ScanResultPolicy|any commits"
+msgstr ""
+
+msgid "ScanResultPolicy|any unsigned commits"
+msgstr ""
+
+msgid "ScanResultPolicy|license status"
+msgstr ""
+
+msgid "ScanResultPolicy|matching type"
+msgstr ""
+
+msgid "ScanResultPolicy|scanners"
+msgstr ""
+
+msgid "ScanResultPolicy|severity levels"
+msgstr ""
+
+msgid "ScanResultPolicy|vulnerabilities allowed"
+msgstr ""
+
+msgid "ScanResultPolicy|vulnerabilities that match all"
+msgstr ""
+
+msgid "ScanResultPolicy|vulnerability states"
+msgstr ""
+
+msgid "Scanner"
+msgstr ""
+
+msgid "Scanner profile failed to delete"
+msgstr ""
+
+msgid "Scanner profile not found for given parameters"
+msgstr ""
+
+msgid "Schedule a new pipeline"
+msgstr ""
+
+msgid "Schedule-based escalation rules must have a schedule in the same project as the policy"
+msgstr ""
+
+msgid "Scheduled"
+msgstr ""
+
+msgid "Scheduled Deletion At - %{permanent_deletion_time}"
+msgstr ""
+
+msgid "Scheduled a rebase of branch %{branch}."
+msgstr ""
+
+msgid "Scheduled pipelines cannot run more frequently than once per %{limit} minutes. A pipeline configured to run more frequently only starts after %{limit} minutes have elapsed since the last time it ran."
+msgstr ""
+
+msgid "Scheduled to merge this merge request (%{strategy})."
+msgstr ""
+
+msgid "Schedules"
+msgstr ""
+
+msgid "Schedules to merge this merge request (%{strategy})."
+msgstr ""
+
+msgid "Scope"
+msgstr ""
+
+msgid "Scope board to current iteration"
+msgstr ""
+
+msgid "Scopes"
+msgstr ""
+
+msgid "Scopes (select at least one)"
+msgstr ""
+
+msgid "Scopes can't be blank"
+msgstr ""
+
+msgid "Scopes: %{scope_list}"
+msgstr ""
+
+msgid "Screenshot must be less than 1 MB."
+msgstr ""
+
+msgid "Scroll down"
+msgstr ""
+
+msgid "Scroll left"
+msgstr ""
+
+msgid "Scroll right"
+msgstr ""
+
+msgid "Scroll to bottom"
+msgstr ""
+
+msgid "Scroll to top"
+msgstr ""
+
+msgid "Scroll up"
+msgstr ""
+
+msgid "Search"
+msgstr ""
+
+msgid "Search Within"
+msgstr ""
+
+msgid "Search a group"
+msgstr ""
+
+msgid "Search an environment spec"
+msgstr ""
+
+msgid "Search artifacts"
+msgstr ""
+
+msgid "Search assignees"
+msgstr ""
+
+msgid "Search authors"
+msgstr ""
+
+msgid "Search branch"
+msgstr ""
+
+msgid "Search branches"
+msgstr ""
+
+msgid "Search branches and tags"
+msgstr ""
+
+msgid "Search branches, tags, and commits"
+msgstr ""
+
+msgid "Search by Git revision"
+msgstr ""
+
+msgid "Search by author"
+msgstr ""
+
+msgid "Search by message"
+msgstr ""
+
+msgid "Search by name"
+msgstr ""
+
+msgid "Search files"
+msgstr ""
+
+msgid "Search filters"
+msgstr ""
+
+msgid "Search for Namespace"
+msgstr ""
+
+msgid "Search for a group"
+msgstr ""
+
+msgid "Search for an emoji"
+msgstr ""
+
+msgid "Search for projects, issues, etc."
+msgstr ""
+
+msgid "Search for this text"
+msgstr ""
+
+msgid "Search forks"
+msgstr ""
+
+msgid "Search groups"
+msgstr ""
+
+msgid "Search iterations"
+msgstr ""
+
+msgid "Search labels"
+msgstr ""
+
+msgid "Search merge requests"
+msgstr ""
+
+msgid "Search milestones"
+msgstr ""
+
+msgid "Search or filter commits"
+msgstr ""
+
+msgid "Search or filter dependencies..."
+msgstr ""
+
+msgid "Search or filter results…"
+msgstr ""
+
+msgid "Search or go to…"
+msgstr ""
+
+msgid "Search page"
+msgstr ""
+
+msgid "Search project"
+msgstr ""
+
+msgid "Search projects"
+msgstr ""
+
+msgid "Search protected branches"
+msgstr ""
+
+msgid "Search rate limits"
+msgstr ""
+
+msgid "Search refs"
+msgstr ""
+
+msgid "Search requirements"
+msgstr ""
+
+msgid "Search results"
+msgstr ""
+
+msgid "Search settings"
+msgstr ""
+
+msgid "Search users"
+msgstr ""
+
+msgid "Search your projects"
+msgstr ""
+
+msgid "Search your%{visibility}projects"
+msgstr ""
+
+msgid "Search%{visibility}projects"
+msgstr ""
+
+msgid "SearchCodeResults|of %{link_to_project}"
+msgstr ""
+
+msgid "SearchError|A search query problem has occurred"
+msgstr ""
+
+msgid "SearchError|Learn more about %{search_syntax_link_start} Zoekt search syntax%{search_syntax_link_end}."
+msgstr ""
+
+msgid "SearchError|To resolve the problem, check the query syntax and try again."
+msgstr ""
+
+msgid "SearchResults|Showing %{count} %{scope} for %{term_element}"
+msgstr ""
+
+msgid "SearchResults|Showing %{count} %{scope} for %{term_element} in your personal and project snippets"
+msgstr ""
+
+msgid "SearchResults|Showing %{from} - %{to} of %{count} %{scope} for %{term_element}"
+msgstr ""
+
+msgid "SearchResults|Showing %{from} - %{to} of %{count} %{scope} for %{term_element} in your personal and project snippets"
+msgstr ""
+
+msgid "SearchResults|code result"
+msgid_plural "SearchResults|code results"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|comment"
+msgid_plural "SearchResults|comments"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|commit"
+msgid_plural "SearchResults|commits"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|epic"
+msgid_plural "SearchResults|epics"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|issue"
+msgid_plural "SearchResults|issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|merge request"
+msgid_plural "SearchResults|merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|milestone"
+msgid_plural "SearchResults|milestones"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|project"
+msgid_plural "SearchResults|projects"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|snippet"
+msgid_plural "SearchResults|snippets"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|user"
+msgid_plural "SearchResults|users"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchResults|wiki result"
+msgid_plural "SearchResults|wiki results"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SearchToken|Assignee"
+msgstr ""
+
+msgid "SearchToken|Reviewer"
+msgstr ""
+
+msgid "Searching by both author and message is currently not supported."
+msgstr ""
+
+msgid "Seats"
+msgstr ""
+
+msgid "Seats owed"
+msgstr ""
+
+msgid "Secondary email:"
+msgstr ""
+
+msgid "Seconds"
+msgstr ""
+
+msgid "Secret"
+msgstr ""
+
+msgid "Secret Detection"
+msgstr ""
+
+msgid "Secret token"
+msgstr ""
+
+msgid "Secret token."
+msgstr ""
+
+msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
+msgstr ""
+
+msgid "SecretDetection|This description appears to have a token in it. Are you sure you want to add it?"
+msgstr ""
+
+msgid "Secrets"
+msgstr ""
+
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
+msgid "Secure Code Warrior"
+msgstr ""
+
+msgid "Secure Files"
+msgstr ""
+
+msgid "Secure token that identifies an external storage request."
+msgstr ""
+
+msgid "SecureFiles|%{name} Metadata"
+msgstr ""
+
+msgid "SecureFiles|App"
+msgstr ""
+
+msgid "SecureFiles|Certificates"
+msgstr ""
+
+msgid "SecureFiles|Delete %{name}?"
+msgstr ""
+
+msgid "SecureFiles|Delete secure file"
+msgstr ""
+
+msgid "SecureFiles|Expires at"
+msgstr ""
+
+msgid "SecureFiles|Issuer"
+msgstr ""
+
+msgid "SecureFiles|Name"
+msgstr ""
+
+msgid "SecureFiles|Platforms"
+msgstr ""
+
+msgid "SecureFiles|Secure File %{name} will be permanently deleted. Are you sure?"
+msgstr ""
+
+msgid "SecureFiles|Serial"
+msgstr ""
+
+msgid "SecureFiles|Team"
+msgstr ""
+
+msgid "SecureFiles|UUID"
+msgstr ""
+
+msgid "Security"
+msgstr ""
+
+msgid "Security Dashboard"
+msgstr ""
+
+msgid "Security Finding not found"
+msgstr ""
+
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
+msgid "Security Policy project already exists."
+msgstr ""
+
+msgid "Security and Compliance"
+msgstr ""
+
+msgid "Security capabilities"
+msgstr ""
+
+msgid "Security configuration"
+msgstr ""
+
+msgid "Security dashboard"
+msgstr ""
+
+msgid "Security reports last updated"
+msgstr ""
+
+msgid "SecurityApprovals|A merge request approval is required when test coverage declines."
+msgstr ""
+
+msgid "SecurityApprovals|Coverage-Check"
+msgstr ""
+
+msgid "SecurityApprovals|Learn more about Coverage-Check"
+msgstr ""
+
+msgid "SecurityApprovals|Requires approval for decreases in test coverage. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "SecurityConfiguration|%{featureName} merge request creation mutation failed"
+msgstr ""
+
+msgid "SecurityConfiguration|%{scanType} configuration code snippet"
+msgstr ""
+
+msgid "SecurityConfiguration|An error occurred while creating the merge request."
+msgstr ""
+
+msgid "SecurityConfiguration|Available with Ultimate"
+msgstr ""
+
+msgid "SecurityConfiguration|BAS"
+msgstr ""
+
+msgid "SecurityConfiguration|Breach and Attack Simulation (BAS)"
+msgstr ""
+
+msgid "SecurityConfiguration|Breach and Attack Simulation is an incubating feature extending existing security testing by simulating adversary activity."
+msgstr ""
+
+msgid "SecurityConfiguration|Configuration guide"
+msgstr ""
+
+msgid "SecurityConfiguration|Configuration history"
+msgstr ""
+
+msgid "SecurityConfiguration|Configure %{feature}"
+msgstr ""
+
+msgid "SecurityConfiguration|Configure with a merge request"
+msgstr ""
+
+msgid "SecurityConfiguration|Copy code and open .gitlab-ci.yml file"
+msgstr ""
+
+msgid "SecurityConfiguration|Copy code only"
+msgstr ""
+
+msgid "SecurityConfiguration|Could not retrieve configuration data. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "SecurityConfiguration|Create merge request"
+msgstr ""
+
+msgid "SecurityConfiguration|Customize common SAST settings to suit your requirements. Configuration changes made here override those provided by GitLab and are excluded from updates. For details of more advanced configuration options, see the %{linkStart}GitLab SAST documentation%{linkEnd}."
+msgstr ""
+
+msgid "SecurityConfiguration|Enable %{feature}"
+msgstr ""
+
+msgid "SecurityConfiguration|Enable Auto DevOps"
+msgstr ""
+
+msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
+msgstr ""
+
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
+
+msgid "SecurityConfiguration|Enabled"
+msgstr ""
+
+msgid "SecurityConfiguration|High-level vulnerability statistics across projects and groups"
+msgstr ""
+
+msgid "SecurityConfiguration|Immediately begin risk analysis and remediation with application security features. Start with SAST and Secret Detection, available to all plans. Upgrade to Ultimate to get all features, including:"
+msgstr ""
+
+msgid "SecurityConfiguration|Incubating feature"
+msgstr ""
+
+msgid "SecurityConfiguration|Learn more about vulnerability training"
+msgstr ""
+
+msgid "SecurityConfiguration|Manage corpus"
+msgstr ""
+
+msgid "SecurityConfiguration|Manage corpus files used as seed inputs with coverage-guided fuzzing."
+msgstr ""
+
+msgid "SecurityConfiguration|Manage profiles"
+msgstr ""
+
+msgid "SecurityConfiguration|Manage profiles for use by DAST scans."
+msgstr ""
+
+msgid "SecurityConfiguration|More scan types, including DAST, Dependency Scanning, Fuzzing"
+msgstr ""
+
+msgid "SecurityConfiguration|Not enabled"
+msgstr ""
+
+msgid "SecurityConfiguration|Once you've enabled a scan for the default branch, any subsequent feature branch you create will include the scan. An enabled scanner will not be reflected as such until the pipeline has been successfully executed and it has generated valid artifacts."
+msgstr ""
+
+msgid "SecurityConfiguration|Out-of-Band Application Security Testing (OAST)"
+msgstr ""
+
+msgid "SecurityConfiguration|Quickly enable all continuous testing and compliance tools by enabling %{linkStart}Auto DevOps%{linkEnd}"
+msgstr ""
+
+msgid "SecurityConfiguration|Runtime security metrics for application environments"
+msgstr ""
+
+msgid "SecurityConfiguration|SAST configuration"
+msgstr ""
+
+msgid "SecurityConfiguration|Secure your project"
+msgstr ""
+
+msgid "SecurityConfiguration|Security testing"
+msgstr ""
+
+msgid "SecurityConfiguration|Security training"
+msgstr ""
+
+msgid "SecurityConfiguration|Simulate breach and attack scenarios against your running application by attempting to detect and exploit known vulnerabilities."
+msgstr ""
+
+msgid "SecurityConfiguration|Something went wrong. Please refresh the page, or try again later."
+msgstr ""
+
+msgid "SecurityConfiguration|The status of the tools only applies to the default branch and is based on the %{linkStart}latest pipeline%{linkEnd}."
+msgstr ""
+
+msgid "SecurityConfiguration|Upgrade or start a free trial"
+msgstr ""
+
+msgid "SecurityConfiguration|Using custom settings. You won't receive automatic updates on this variable. %{anchorStart}Restore to default%{anchorEnd}"
+msgstr ""
+
+msgid "SecurityConfiguration|Vulnerability Management"
+msgstr ""
+
+msgid "SecurityConfiguration|Vulnerability details and statistics in the merge request"
+msgstr ""
+
+msgid "SecurityOrchestration| and "
+msgstr ""
+
+msgid "SecurityOrchestration| and all the following apply:"
+msgstr ""
+
+msgid "SecurityOrchestration| for any commits"
+msgstr ""
+
+msgid "SecurityOrchestration| for unsigned commits"
+msgstr ""
+
+msgid "SecurityOrchestration| or "
+msgstr ""
+
+msgid "SecurityOrchestration| that is %{licenseState} and is"
+msgstr ""
+
+msgid "SecurityOrchestration|%{agent} for %{namespaces}"
+msgstr ""
+
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
+msgid "SecurityOrchestration|%{branchName}"
+msgstr ""
+
+msgid "SecurityOrchestration|%{branchName} (in %{codeStart}%{fullPath}%{codeEnd})"
+msgstr ""
+
+msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
+msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
+msgstr ""
+
+msgid "SecurityOrchestration|%{scanners}"
+msgstr ""
+
+msgid "SecurityOrchestration|%{state} and %{statuses}"
+msgstr ""
+
+msgid "SecurityOrchestration|, and %{count} more"
+msgstr ""
+
+msgid "SecurityOrchestration|.yaml mode"
+msgstr ""
+
+msgid "SecurityOrchestration|.yaml preview"
+msgstr ""
+
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "SecurityOrchestration|Actions"
+msgstr ""
+
+msgid "SecurityOrchestration|Add action"
+msgstr ""
+
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
+msgid "SecurityOrchestration|Add new approver"
+msgstr ""
+
+msgid "SecurityOrchestration|Add rule"
+msgstr ""
+
+msgid "SecurityOrchestration|After dismissing the alert, the information will never be shown again."
+msgstr ""
+
+msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
+msgstr ""
+
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
+msgid "SecurityOrchestration|All sources"
+msgstr ""
+
+msgid "SecurityOrchestration|All types"
+msgstr ""
+
+msgid "SecurityOrchestration|An error occurred assigning your security policy project"
+msgstr ""
+
+msgid "SecurityOrchestration|An error occurred unassigning your security policy project"
+msgstr ""
+
+msgid "SecurityOrchestration|An error occurred while fetching the scan result policies."
+msgstr ""
+
+msgid "SecurityOrchestration|And scans to be performed:"
+msgstr ""
+
+msgid "SecurityOrchestration|Any merge request"
+msgstr ""
+
+msgid "SecurityOrchestration|Apply this policy to all projects %{projectScopeType} %{exceptionType} %{projectSelector}"
+msgstr ""
+
+msgid "SecurityOrchestration|Apply this policy to all projects %{projectScopeType} named %{frameworkSelector}"
+msgstr ""
+
+msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
+msgstr ""
+
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
+msgid "SecurityOrchestration|Automatically selected runners"
+msgstr ""
+
+msgid "SecurityOrchestration|Branch types don't match any existing branches."
+msgstr ""
+
+msgid "SecurityOrchestration|Cannot create an empty policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Choose a project"
+msgstr ""
+
+msgid "SecurityOrchestration|Choose an action"
+msgstr ""
+
+msgid "SecurityOrchestration|Choose approver type"
+msgstr ""
+
+msgid "SecurityOrchestration|Choose specific role"
+msgstr ""
+
+msgid "SecurityOrchestration|Clear all"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
+msgstr ""
+
+msgid "SecurityOrchestration|Create new framework label"
+msgstr ""
+
+msgid "SecurityOrchestration|Create policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Create security policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Define this policy's location, conditions and actions."
+msgstr ""
+
+msgid "SecurityOrchestration|Delete policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Delete policy: %{policy}"
+msgstr ""
+
+msgid "SecurityOrchestration|Description"
+msgstr ""
+
+msgid "SecurityOrchestration|Details"
+msgstr ""
+
+msgid "SecurityOrchestration|Direct"
+msgstr ""
+
+msgid "SecurityOrchestration|Don't show the alert anymore"
+msgstr ""
+
+msgid "SecurityOrchestration|Edit policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Edit policy project"
+msgstr ""
+
+msgid "SecurityOrchestration|Edit scan execution policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Edit scan result policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Empty policy name"
+msgstr ""
+
+msgid "SecurityOrchestration|Enabled"
+msgstr ""
+
+msgid "SecurityOrchestration|Enforce security for this project. %{linkStart}More information.%{linkEnd}"
+msgstr ""
+
+msgid "SecurityOrchestration|Every time a pipeline runs for %{branches}%{branchExceptionsString}"
+msgstr ""
+
+msgid "SecurityOrchestration|Exceptions"
+msgstr ""
+
+msgid "SecurityOrchestration|Failed to load cluster agents."
+msgstr ""
+
+msgid "SecurityOrchestration|Failed to load compliance frameworks"
+msgstr ""
+
+msgid "SecurityOrchestration|Failed to load group projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Failed to load images."
+msgstr ""
+
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
+msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
+msgstr ""
+
+msgid "SecurityOrchestration|For any merge request on %{branches}%{commitType}%{branchExceptionsString}"
+msgstr ""
+
+msgid "SecurityOrchestration|For large groups, there may be a significant delay in applying policy changes to pre-existing merge requests. Policy changes typically apply almost immediately for newly created merge requests."
+msgstr ""
+
+msgid "SecurityOrchestration|Groups"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
+msgstr ""
+
+msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
+msgstr ""
+
+msgid "SecurityOrchestration|Individual users"
+msgstr ""
+
+msgid "SecurityOrchestration|Inherited"
+msgstr ""
+
+msgid "SecurityOrchestration|Inherited from %{namespace}"
+msgstr ""
+
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
+msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
+msgstr ""
+
+msgid "SecurityOrchestration|Invalid policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Invalid policy type"
+msgstr ""
+
+msgid "SecurityOrchestration|Latest scan run against %{agent}"
+msgstr ""
+
+msgid "SecurityOrchestration|License Scan"
+msgstr ""
+
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
+msgid "SecurityOrchestration|Logic error"
+msgstr ""
+
+msgid "SecurityOrchestration|New policy"
+msgstr ""
+
+msgid "SecurityOrchestration|New scan execution policy"
+msgstr ""
+
+msgid "SecurityOrchestration|New scan result policy"
+msgstr ""
+
+msgid "SecurityOrchestration|No actions defined - policy will not run."
+msgstr ""
+
+msgid "SecurityOrchestration|No compliance frameworks"
+msgstr ""
+
+msgid "SecurityOrchestration|No description"
+msgstr ""
+
+msgid "SecurityOrchestration|No exceptions"
+msgstr ""
+
+msgid "SecurityOrchestration|No rules defined - policy will not run."
+msgstr ""
+
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
+msgid "SecurityOrchestration|No tags available"
+msgstr ""
+
+msgid "SecurityOrchestration|Non-existing DAST profiles have been detected in the policy yaml. As a result, rule mode has been disabled. To enable rule mode, remove those non-existing profiles from the policy yaml."
+msgstr ""
+
+msgid "SecurityOrchestration|Non-existing tags have been detected in the policy yaml. As a result, rule mode has been disabled. To enable rule mode, remove those non-existing tags from the policy yaml."
+msgstr ""
+
+msgid "SecurityOrchestration|Not enabled"
+msgstr ""
+
+msgid "SecurityOrchestration|On runners with tag:"
+msgid_plural "SecurityOrchestration|On runners with the tags:"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SecurityOrchestration|Only overriding settings will take effect"
+msgstr ""
+
+msgid "SecurityOrchestration|Only owners can update Security Policy Project"
+msgstr ""
+
+msgid "SecurityOrchestration|Override the following project settings:"
+msgstr ""
+
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
+msgid "SecurityOrchestration|Policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Policy Type"
+msgstr ""
+
+msgid "SecurityOrchestration|Policy cannot be enabled for non-existing branches (%{branches})"
+msgstr ""
+
+msgid "SecurityOrchestration|Policy cannot be enabled without branch information"
+msgstr ""
+
+msgid "SecurityOrchestration|Policy changes may take some time to be applied."
+msgstr ""
+
+msgid "SecurityOrchestration|Policy definition"
+msgstr ""
+
+msgid "SecurityOrchestration|Policy editor"
+msgstr ""
+
+msgid "SecurityOrchestration|Policy scope"
+msgstr ""
+
+msgid "SecurityOrchestration|Policy status"
+msgstr ""
+
+msgid "SecurityOrchestration|Policy type"
+msgstr ""
+
+msgid "SecurityOrchestration|Require %{approvals} %{plural} from %{approvers} if any of the following occur:"
+msgstr ""
+
+msgid "SecurityOrchestration|Required approvals exceed eligible approvers."
+msgstr ""
+
+msgid "SecurityOrchestration|Requires no approvals if any of the following occur:"
+msgstr ""
+
+msgid "SecurityOrchestration|Roles"
+msgstr ""
+
+msgid "SecurityOrchestration|Rule mode"
+msgstr ""
+
+msgid "SecurityOrchestration|Rule mode is unavailable for this policy. In some cases, we cannot parse the YAML file back into the rules editor."
+msgstr ""
+
+msgid "SecurityOrchestration|Rules"
+msgstr ""
+
+msgid "SecurityOrchestration|Run %{scannerStart}%{scanner}%{scannerEnd} with the following options:"
+msgstr ""
+
+msgid "SecurityOrchestration|Run a DAST scan with Scan Profile A and Site Profile A when a pipeline run against the main branch."
+msgstr ""
+
+msgid "SecurityOrchestration|Save changes"
+msgstr ""
+
+msgid "SecurityOrchestration|Scan Execution"
+msgstr ""
+
+msgid "SecurityOrchestration|Scan Result"
+msgstr ""
+
+msgid "SecurityOrchestration|Scan execution"
+msgstr ""
+
+msgid "SecurityOrchestration|Scan execution policies can only be created by project owners."
+msgstr ""
+
+msgid "SecurityOrchestration|Scan execution policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Scan result"
+msgstr ""
+
+msgid "SecurityOrchestration|Scan result policies can only be created by project owners."
+msgstr ""
+
+msgid "SecurityOrchestration|Scan result policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
+msgstr ""
+
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
+msgid "SecurityOrchestration|Security Approvals"
+msgstr ""
+
+msgid "SecurityOrchestration|Security Scan"
+msgstr ""
+
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
+msgid "SecurityOrchestration|Security policy project was linked successfully"
+msgstr ""
+
+msgid "SecurityOrchestration|Security policy project was unlinked successfully"
+msgstr ""
+
+msgid "SecurityOrchestration|Select a project to store your security policies in. %{linkStart}More information.%{linkEnd}"
+msgstr ""
+
+msgid "SecurityOrchestration|Select exception branches"
+msgstr ""
+
+msgid "SecurityOrchestration|Select frameworks"
+msgstr ""
+
+msgid "SecurityOrchestration|Select groups"
+msgstr ""
+
+msgid "SecurityOrchestration|Select policy"
+msgstr ""
+
+msgid "SecurityOrchestration|Select scan type"
+msgstr ""
+
+msgid "SecurityOrchestration|Select security project"
+msgstr ""
+
+msgid "SecurityOrchestration|Select users"
+msgstr ""
+
+msgid "SecurityOrchestration|Severity is %{severity}."
+msgstr ""
+
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Sorry, your filter produced no results."
+msgstr ""
+
+msgid "SecurityOrchestration|Source"
+msgstr ""
+
+msgid "SecurityOrchestration|Status"
+msgstr ""
+
+msgid "SecurityOrchestration|Step 1: Choose a policy type"
+msgstr ""
+
+msgid "SecurityOrchestration|Step 2: Policy details"
+msgstr ""
+
+msgid "SecurityOrchestration|Summary"
+msgstr ""
+
+msgid "SecurityOrchestration|The following branches do not exist on this development project: %{branches}. Please review all protected branches to ensure the values are accurate before updating this policy."
+msgstr ""
+
+msgid "SecurityOrchestration|There was a problem creating the new security policy"
+msgstr ""
+
+msgid "SecurityOrchestration|This %{namespaceType} does not contain any security policies."
+msgstr ""
+
+msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This group"
+msgstr ""
+
+msgid "SecurityOrchestration|This is a group-level policy"
+msgstr ""
+
+msgid "SecurityOrchestration|This is a project-level policy"
+msgstr ""
+
+msgid "SecurityOrchestration|This policy doesn't contain any actions or override project approval settings. You cannot create an empty policy."
+msgstr ""
+
+msgid "SecurityOrchestration|This policy is inherited"
+msgstr ""
+
+msgid "SecurityOrchestration|This policy is inherited from %{namespace}"
+msgstr ""
+
+msgid "SecurityOrchestration|This policy is inherited from the %{linkStart}namespace%{linkEnd} and must be edited there"
+msgstr ""
+
+msgid "SecurityOrchestration|This project"
+msgstr ""
+
+msgid "SecurityOrchestration|This view only shows scan results for the agent %{agent}. You can view scan results for all agents in the %{linkStart}Operational Vulnerabilities tab of the vulnerability report%{linkEnd}."
+msgstr ""
+
+msgid "SecurityOrchestration|Timezone is invalid"
+msgstr ""
+
+msgid "SecurityOrchestration|To widen your search, change filters above or select a different security policy project."
+msgstr ""
+
+msgid "SecurityOrchestration|Unlink project"
+msgstr ""
+
+msgid "SecurityOrchestration|Unlinking a security project removes all policies stored in the linked security project. Save to confirm this action."
+msgstr ""
+
+msgid "SecurityOrchestration|Update scan policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Use a scan execution policy to create rules which enforce security scans for particular branches at a certain time. Supported types are SAST, SAST IaC, DAST, Secret detection, Container scanning, and Dependency scanning."
+msgstr ""
+
+msgid "SecurityOrchestration|Use a scan result policy to create rules that check for security vulnerabilities and license compliance before merging a merge request."
+msgstr ""
+
+msgid "SecurityOrchestration|View policy project"
+msgstr ""
+
+msgid "SecurityOrchestration|Vulnerabilities %{vulnerabilityStates}."
+msgstr ""
+
+msgid "SecurityOrchestration|Vulnerabilities are %{vulnerabilityStates}."
+msgstr ""
+
+msgid "SecurityOrchestration|Vulnerability age is greater than %{vulnerabilityAge}."
+msgstr ""
+
+msgid "SecurityOrchestration|Vulnerability age is less than %{vulnerabilityAge}."
+msgstr ""
+
+msgid "SecurityOrchestration|Vulnerability age requires previously existing vulnerability states (detected, confirmed, resolved, or dismissed)"
+msgstr ""
+
+msgid "SecurityOrchestration|When %{scanners} %{vulnerabilitiesAllowed} %{vulnerability} in an open merge request %{targeting}%{branches}%{branchExceptionsString}%{criteriaApply}"
+msgstr ""
+
+msgid "SecurityOrchestration|When license scanner finds any license except %{licenses}%{detection} in an open merge request %{targeting}%{branches}%{branchExceptionsString}"
+msgstr ""
+
+msgid "SecurityOrchestration|When license scanner finds any license matching %{licenses}%{detection} in an open merge request %{targeting}%{branches}%{branchExceptionsString}"
+msgstr ""
+
+msgid "SecurityOrchestration|With the following customized CI variables:"
+msgstr ""
+
+msgid "SecurityOrchestration|YAML"
+msgstr ""
+
+msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
+msgstr ""
+
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
+msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
+msgid "SecurityOrchestration|You don't have any security policies yet"
+msgstr ""
+
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
+msgid "SecurityOrchestration|all namespaces"
+msgstr ""
+
+msgid "SecurityOrchestration|all projects in this group"
+msgstr ""
+
+msgid "SecurityOrchestration|any"
+msgstr ""
+
+msgid "SecurityOrchestration|any branch"
+msgstr ""
+
+msgid "SecurityOrchestration|any default branch"
+msgstr ""
+
+msgid "SecurityOrchestration|any protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|any security scanner finds"
+msgstr ""
+
+msgid "SecurityOrchestration|are false positives"
+msgstr ""
+
+msgid "SecurityOrchestration|are not false positives"
+msgstr ""
+
+msgid "SecurityOrchestration|branch"
+msgstr ""
+
+msgid "SecurityOrchestration|branches"
+msgstr ""
+
+msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
+msgstr ""
+
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
+msgid "SecurityOrchestration|except projects"
+msgstr ""
+
+msgid "SecurityOrchestration|group level branch input"
+msgstr ""
+
+msgid "SecurityOrchestration|group level branch selector"
+msgstr ""
+
+msgid "SecurityOrchestration|have a fix available"
+msgstr ""
+
+msgid "SecurityOrchestration|have no fix available"
+msgstr ""
+
+msgid "SecurityOrchestration|more than %{allowed}"
+msgstr ""
+
+msgid "SecurityOrchestration|or from:"
+msgstr ""
+
+msgid "SecurityOrchestration|projects with compliance frameworks"
+msgstr ""
+
+msgid "SecurityOrchestration|scanner finds"
+msgstr ""
+
+msgid "SecurityOrchestration|scanners find"
+msgstr ""
+
+msgid "SecurityOrchestration|specific projects"
+msgstr ""
+
+msgid "SecurityOrchestration|targeting %{branchTypeText}"
+msgstr ""
+
+msgid "SecurityOrchestration|the %{branches}"
+msgstr ""
+
+msgid "SecurityOrchestration|the %{branches} and %{lastBranch} branches"
+msgstr ""
+
+msgid "SecurityOrchestration|the %{branches} branch"
+msgstr ""
+
+msgid "SecurityOrchestration|the %{namespaces} and %{lastNamespace} namespaces"
+msgstr ""
+
+msgid "SecurityOrchestration|the %{namespaces} namespace"
+msgstr ""
+
+msgid "SecurityOrchestration|the default branch"
+msgstr ""
+
+msgid "SecurityOrchestration|with %{exceptionType}"
+msgstr ""
+
+msgid "SecurityOrchestration|with %{exceptionType} on %{branchSelector}"
+msgstr ""
+
+msgid "SecurityOrchestration|without exceptions"
+msgstr ""
+
+msgid "SecurityPolicies|Invalid or empty policy"
+msgstr ""
+
+msgid "SecurityReports|%{count} Selected"
+msgstr ""
+
+msgid "SecurityReports|%{count}+ projects"
+msgstr ""
+
+msgid "SecurityReports|%{firstProject} and %{secondProject}"
+msgstr ""
+
+msgid "SecurityReports|%{firstProject}, %{secondProject}, and %{rest}"
+msgstr ""
+
+msgid "SecurityReports|A comment is required when dismissing."
+msgstr ""
+
+msgid "SecurityReports|Activity"
+msgstr ""
+
+msgid "SecurityReports|Add a comment"
+msgstr ""
+
+msgid "SecurityReports|Add a comment (required)"
+msgstr ""
+
+msgid "SecurityReports|Add a comment or reason for dismissal"
+msgstr ""
+
+msgid "SecurityReports|Add or remove projects to monitor in the security area. Projects included in this list will have their results displayed in the security dashboard and vulnerability report."
+msgstr ""
+
+msgid "SecurityReports|Add projects"
+msgstr ""
+
+msgid "SecurityReports|All activity"
+msgstr ""
+
+msgid "SecurityReports|All clusters"
+msgstr ""
+
+msgid "SecurityReports|All dismissal reasons"
+msgstr ""
+
+msgid "SecurityReports|All images"
+msgstr ""
+
+msgid "SecurityReports|All projects"
+msgstr ""
+
+msgid "SecurityReports|All severities"
+msgstr ""
+
+msgid "SecurityReports|All statuses"
+msgstr ""
+
+msgid "SecurityReports|All tools"
+msgstr ""
+
+msgid "SecurityReports|Although it's rare to have no vulnerabilities, it can happen. Check your settings to make sure you've set up your dashboard correctly."
+msgstr ""
+
+msgid "SecurityReports|Change status"
+msgstr ""
+
+msgid "SecurityReports|Check the messages generated while parsing the following security reports, as they may prevent the results from being ingested by GitLab. Ensure the security report conforms to a supported %{helpPageLinkStart}JSON schema%{helpPageLinkEnd}."
+msgstr ""
+
+msgid "SecurityReports|Cluster"
+msgstr ""
+
+msgid "SecurityReports|Comment added to '%{vulnerabilityName}'"
+msgstr ""
+
+msgid "SecurityReports|Comment deleted on '%{vulnerabilityName}'"
+msgstr ""
+
+msgid "SecurityReports|Comment edited on '%{vulnerabilityName}'"
+msgstr ""
+
+msgid "SecurityReports|Configure security testing"
+msgstr ""
+
+msgid "SecurityReports|Confirm dismissal"
+msgstr ""
+
+msgid "SecurityReports|Create Issue"
+msgstr ""
+
+msgid "SecurityReports|Create Jira issue"
+msgstr ""
+
+msgid "SecurityReports|Create issue"
+msgstr ""
+
+msgid "SecurityReports|Detection"
+msgstr ""
+
+msgid "SecurityReports|Development vulnerabilities"
+msgstr ""
+
+msgid "SecurityReports|Dismiss as"
+msgstr ""
+
+msgid "SecurityReports|Dismiss vulnerability"
+msgstr ""
+
+msgid "SecurityReports|Dismissal comment"
+msgstr ""
+
+msgid "SecurityReports|Dismissed '%{vulnerabilityName}'"
+msgstr ""
+
+msgid "SecurityReports|Dismissed '%{vulnerabilityName}'. Turn off the hide dismissed toggle to view."
+msgstr ""
+
+msgid "SecurityReports|Dismissed (all reasons)"
+msgstr ""
+
+msgid "SecurityReports|Dismissed as..."
+msgstr ""
+
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
+msgid "SecurityReports|Does not have issue"
+msgstr ""
+
+msgid "SecurityReports|Does not have merge request"
+msgstr ""
+
+msgid "SecurityReports|Download %{artifactName}"
+msgstr ""
+
+msgid "SecurityReports|Download patch to resolve"
+msgstr ""
+
+msgid "SecurityReports|Download results"
+msgstr ""
+
+msgid "SecurityReports|Download scanned URLs"
+msgstr ""
+
+msgid "SecurityReports|Download the patch to apply it manually"
+msgstr ""
+
+msgid "SecurityReports|Edit dismissal"
+msgstr ""
+
+msgid "SecurityReports|Either you don't have permission to view this dashboard or the dashboard has not been setup. Please check your permission settings with your administrator or check your dashboard configurations to proceed."
+msgstr ""
+
+msgid "SecurityReports|Ensure that %{trackingStart}issue tracking%{trackingEnd} is enabled for this project and you have %{permissionsStart}permission to create new issues%{permissionsEnd}."
+msgstr ""
+
+msgid "SecurityReports|Error fetching the vulnerabilities over time. Please check your network connection and try again."
+msgstr ""
+
+msgid "SecurityReports|Error fetching the vulnerability counts. Please check your network connection and try again."
+msgstr ""
+
+msgid "SecurityReports|Error fetching the vulnerability list. Please check your network connection and try again."
+msgstr ""
+
+msgid "SecurityReports|Error parsing security reports"
+msgstr ""
+
+msgid "SecurityReports|Failed to get security report information. Please reload the page or try again later."
+msgstr ""
+
+msgid "SecurityReports|Failed updating vulnerabilities with the following IDs: %{ids}"
+msgstr ""
+
+msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
+msgstr ""
+
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
+msgid "SecurityReports|Has issue"
+msgstr ""
+
+msgid "SecurityReports|Has merge request"
+msgstr ""
+
+msgid "SecurityReports|Hide dismissed"
+msgstr ""
+
+msgid "SecurityReports|Image"
+msgstr ""
+
+msgid "SecurityReports|Investigate this vulnerability by creating an issue"
+msgstr ""
+
+msgid "SecurityReports|Issue"
+msgstr ""
+
+msgid "SecurityReports|Issue Created"
+msgstr ""
+
+msgid "SecurityReports|Issues created from a vulnerability cannot be removed."
+msgstr ""
+
+msgid "SecurityReports|Learn more about setting up your dashboard"
+msgstr ""
+
+msgid "SecurityReports|Manage and track vulnerabilities identified in projects within your group. Vulnerabilities in projects are shown here when security testing is configured."
+msgstr ""
+
+msgid "SecurityReports|Manage and track vulnerabilities identified in your project. Vulnerabilities are shown here when security testing is configured."
+msgstr ""
+
+msgid "SecurityReports|Manage and track vulnerabilities identified in your selected projects. Vulnerabilities for selected projects with security testing configured are shown here."
+msgstr ""
+
+msgid "SecurityReports|Maximum selected projects limit reached"
+msgstr ""
+
+msgid "SecurityReports|Merge Request"
+msgstr ""
+
+msgid "SecurityReports|Monitor vulnerabilities in all of your projects"
+msgstr ""
+
+msgid "SecurityReports|Monitor vulnerabilities in your group"
+msgstr ""
+
+msgid "SecurityReports|Monitor vulnerabilities in your project"
+msgstr ""
+
+msgid "SecurityReports|Monitored projects"
+msgstr ""
+
+msgid "SecurityReports|More info"
+msgstr ""
+
+msgid "SecurityReports|New feature: Grouping"
+msgstr ""
+
+msgid "SecurityReports|No longer detected"
+msgstr ""
+
+msgid "SecurityReports|No vulnerabilities found"
+msgstr ""
+
+msgid "SecurityReports|No vulnerabilities found for this pipeline"
+msgstr ""
+
+msgid "SecurityReports|Oops, something doesn't seem right."
+msgstr ""
+
+msgid "SecurityReports|Operational vulnerabilities"
+msgstr ""
+
+msgid "SecurityReports|Parsing errors and warnings in pipeline"
+msgstr ""
+
+msgid "SecurityReports|Parsing errors in pipeline"
+msgstr ""
+
+msgid "SecurityReports|Parsing warnings in pipeline"
+msgstr ""
+
+msgid "SecurityReports|Project"
+msgstr ""
+
+msgid "SecurityReports|Project was not found or you do not have permission to add this project to Security Dashboards."
+msgstr ""
+
+msgid "SecurityReports|Projects added"
+msgstr ""
+
+msgid "SecurityReports|Remove project from dashboard"
+msgstr ""
+
+msgid "SecurityReports|Report has expired"
+msgstr ""
+
+msgid "SecurityReports|Results show vulnerabilities introduced by the merge request, in addition to existing vulnerabilities from the latest successful pipeline in your project's default branch."
+msgstr ""
+
+msgid "SecurityReports|Scan details"
+msgstr ""
+
+msgid "SecurityReports|Security dashboard"
+msgstr ""
+
+msgid "SecurityReports|Security reports can only be accessed by authorized users."
+msgstr ""
+
+msgid "SecurityReports|Security scans have run"
+msgstr ""
+
+msgid "SecurityReports|Select a project to add by using the project search field above."
+msgstr ""
+
+msgid "SecurityReports|Set dismissal reason"
+msgstr ""
+
+msgid "SecurityReports|Set status"
+msgstr ""
+
+msgid "SecurityReports|Severity"
+msgstr ""
+
+msgid "SecurityReports|Show %d item"
+msgid_plural "SecurityReports|Show %d items"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SecurityReports|Solution available"
+msgstr ""
+
+msgid "SecurityReports|Sometimes a scanner can't determine a finding's severity. Those findings may still be a potential source of risk though. Please review these manually."
+msgstr ""
+
+msgid "SecurityReports|Sorry, your filter produced no results"
+msgstr ""
+
+msgid "SecurityReports|Status"
+msgstr ""
+
+msgid "SecurityReports|Still detected"
+msgstr ""
+
+msgid "SecurityReports|Submit vulnerability"
+msgstr ""
+
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
+msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "SecurityReports|The following security reports contain one or more vulnerability findings that could not be parsed and were not recorded. To investigate a report, download the artifacts in the job output. Ensure the security report conforms to the relevant %{helpPageLinkStart}JSON schema%{helpPageLinkEnd}."
+msgstr ""
+
+msgid "SecurityReports|The security report for this pipeline has %{helpPageLinkStart}expired%{helpPageLinkEnd}. Re-run the pipeline to generate a new security report."
+msgstr ""
+
+msgid "SecurityReports|There was an error adding the comment."
+msgstr ""
+
+msgid "SecurityReports|There was an error creating a Jira issue for the finding. Please try again."
+msgstr ""
+
+msgid "SecurityReports|There was an error creating the issue."
+msgstr ""
+
+msgid "SecurityReports|There was an error creating the issue. Please try again."
+msgstr ""
+
+msgid "SecurityReports|There was an error creating the merge request."
+msgstr ""
+
+msgid "SecurityReports|There was an error creating the merge request. Please try again."
+msgstr ""
+
+msgid "SecurityReports|There was an error deleting the comment."
+msgstr ""
+
+msgid "SecurityReports|There was an error dismissing the finding. Please try again."
+msgstr ""
+
+msgid "SecurityReports|There was an error dismissing the vulnerabilities."
+msgstr ""
+
+msgid "SecurityReports|There was an error dismissing the vulnerability."
+msgstr ""
+
+msgid "SecurityReports|There was an error fetching the finding. Please try again."
+msgstr ""
+
+msgid "SecurityReports|There was an error reverting the dismissal."
+msgstr ""
+
+msgid "SecurityReports|There was an error reverting this dismissal."
+msgstr ""
+
+msgid "SecurityReports|There was an error while generating the report."
+msgstr ""
+
+msgid "SecurityReports|These vulnerabilities were detected in external sources. They are not necessarily tied to your GitLab project. For example, running containers, URLs, and so on."
+msgstr ""
+
+msgid "SecurityReports|This selection is required."
+msgstr ""
+
+msgid "SecurityReports|To widen your search, change or remove filters above"
+msgstr ""
+
+msgid "SecurityReports|Tool"
+msgstr ""
+
+msgid "SecurityReports|Unable to add %{invalidProjectsMessage}: %{errorMessage}"
+msgstr ""
+
+msgid "SecurityReports|Undo dismiss"
+msgstr ""
+
+msgid "SecurityReports|Vulnerability report"
+msgstr ""
+
+msgid "SecurityReports|Warning parsing security reports"
+msgstr ""
+
+msgid "SecurityReports|While it's rare to have no vulnerabilities for your pipeline, it can happen. In any event, we ask that you double check your settings to make sure all security scanning jobs have passed successfully."
+msgstr ""
+
+msgid "SecurityReports|You do not have sufficient permissions to access this report"
+msgstr ""
+
+msgid "SecurityReports|You must sign in as an authorized user to see this report"
+msgstr ""
+
+msgid "SecurityReports|scanned resources"
+msgstr ""
+
+msgid "SecurityTraining|Enable security training to learn how to fix vulnerabilities. View security training from selected educational providers relevant to the detected vulnerability."
+msgstr ""
+
+msgid "SecurityTraining|Primary Training"
+msgstr ""
+
+msgid "SecurityTraining|Resolve with security training"
+msgstr ""
+
+msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
+msgstr ""
+
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
+msgid "See example DevOps Score page in our documentation."
+msgstr ""
+
+msgid "See our website for help"
+msgstr ""
+
+msgid "See the Geo troubleshooting documentation to learn more: %{docs_url}"
+msgstr ""
+
+msgid "See the affected projects in the GitLab admin panel"
+msgstr ""
+
+msgid "See vulnerability %{vulnerability_link} for any Remediation details."
+msgstr ""
+
+msgid "See vulnerability %{vulnerability_link} for any Solution details."
+msgstr ""
+
+msgid "Select"
+msgstr ""
+
+msgid "Select Archive Format"
+msgstr ""
+
+msgid "Select Git revision"
+msgstr ""
+
+msgid "Select Profile"
+msgstr ""
+
+msgid "Select a LDAP group"
+msgstr ""
+
+msgid "Select a branch"
+msgstr ""
+
+msgid "Select a branch to compare"
+msgstr ""
+
+msgid "Select a cluster management project"
+msgstr ""
+
+msgid "Select a color"
+msgstr ""
+
+msgid "Select a color from the color picker or from the presets below."
+msgstr ""
+
+msgid "Select a compliance framework to apply to this project. %{linkStart}How are these added?%{linkEnd}"
+msgstr ""
+
+msgid "Select a file from the left sidebar to begin editing. Afterwards, you'll be able to commit your changes."
+msgstr ""
+
+msgid "Select a group"
+msgstr ""
+
+msgid "Select a label"
+msgstr ""
+
+msgid "Select a merge moment"
+msgstr ""
+
+msgid "Select a milestone"
+msgstr ""
+
+msgid "Select a new namespace"
+msgstr ""
+
+msgid "Select a project"
+msgstr ""
+
+msgid "Select a reason"
+msgstr ""
+
+msgid "Select a repository containing templates for common files."
+msgstr ""
+
+msgid "Select a role"
+msgstr ""
+
+msgid "Select a template repository"
+msgstr ""
+
+msgid "Select all"
+msgstr ""
+
+msgid "Select an assignee"
+msgstr ""
+
+msgid "Select an iteration"
+msgstr ""
+
+msgid "Select assignee"
+msgstr ""
+
+msgid "Select assignees"
+msgstr ""
+
+msgid "Select branch"
+msgstr ""
+
+msgid "Select branch or create wildcard"
+msgstr ""
+
+msgid "Select branches"
+msgstr ""
+
+msgid "Select color"
+msgstr ""
+
+msgid "Select confidentiality"
+msgstr ""
+
+msgid "Select default branch"
+msgstr ""
+
+msgid "Select due date"
+msgstr ""
+
+msgid "Select epic"
+msgstr ""
+
+msgid "Select group"
+msgstr ""
+
+msgid "Select group or project"
+msgstr ""
+
+msgid "Select health status"
+msgstr ""
+
+msgid "Select iteration"
+msgstr ""
+
+msgid "Select label"
+msgstr ""
+
+msgid "Select labels"
+msgstr ""
+
+msgid "Select labels (optional)"
+msgstr ""
+
+msgid "Select merge moment"
+msgstr ""
+
+msgid "Select milestone"
+msgstr ""
+
+msgid "Select private project"
+msgstr ""
+
+msgid "Select project"
+msgstr ""
+
+msgid "Select project to create %{type}"
+msgstr ""
+
+msgid "Select projects"
+msgstr ""
+
+msgid "Select protected branch"
+msgstr ""
+
+msgid "Select protected branches"
+msgstr ""
+
+msgid "Select report"
+msgstr ""
+
+msgid "Select reviewers"
+msgstr ""
+
+msgid "Select severity (optional)"
+msgstr ""
+
+msgid "Select source"
+msgstr ""
+
+msgid "Select source branch"
+msgstr ""
+
+msgid "Select source project"
+msgstr ""
+
+msgid "Select start date"
+msgstr ""
+
+msgid "Select status"
+msgstr ""
+
+msgid "Select strategy activation method"
+msgstr ""
+
+msgid "Select subgroup"
+msgstr ""
+
+msgid "Select subscription"
+msgstr ""
+
+msgid "Select tags"
+msgstr ""
+
+msgid "Select target branch"
+msgstr ""
+
+msgid "Select target branch or tag"
+msgstr ""
+
+msgid "Select target project"
+msgstr ""
+
+msgid "Select timezone"
+msgstr ""
+
+msgid "Select type"
+msgstr ""
+
+msgid "Selected"
+msgstr ""
+
+msgid "Selected commits"
+msgstr ""
+
+msgid "Selected for all items."
+msgstr ""
+
+msgid "Selected for some items."
+msgstr ""
+
+msgid "Selected tag is already in use. Choose another option."
+msgstr ""
+
+msgid "Selecting a GitLab user will add a link to the GitLab user in the descriptions of issues and comments (e.g. \"By %{link_open}@johnsmith%{link_close}\"). It will also associate and/or assign these issues and comments with the selected user."
+msgstr ""
+
+msgid "Send"
+msgstr ""
+
+msgid "Send a single email notification to Owners and Maintainers for new alerts."
+msgstr ""
+
+msgid "Send email"
+msgstr ""
+
+msgid "Send email in multipart format (HTML and plain text). Uncheck to send email messages in plain text only."
+msgstr ""
+
+msgid "Send email notification"
+msgstr ""
+
+msgid "Send emails to users upon account deactivation."
+msgstr ""
+
+msgid "Send message"
+msgstr ""
+
+msgid "Send notifications about project events to Mattermost channels."
+msgstr ""
+
+msgid "Send notifications about project events to Mattermost channels. %{docs_link}"
+msgstr ""
+
+msgid "Send notifications about project events to a Discord channel. %{docs_link}"
+msgstr ""
+
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
+msgid "Send report"
+msgstr ""
+
+msgid "Send service data"
+msgstr ""
+
+msgid "Sentry"
+msgstr ""
+
+msgid "Sentry API URL"
+msgstr ""
+
+msgid "Sentry event"
+msgstr ""
+
+msgid "Sep"
+msgstr ""
+
+msgid "September"
+msgstr ""
+
+msgid "SeriesFinalConjunction|and"
+msgstr ""
+
+msgid "Serve repository static objects (for example, archives and blobs) from external storage."
+msgstr ""
+
+msgid "Server (optional)"
+msgstr ""
+
+msgid "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."
+msgstr ""
+
+msgid "Server version"
+msgstr ""
+
+msgid "Service"
+msgstr ""
+
+msgid "Service Account"
+msgstr ""
+
+msgid "Service Account Key"
+msgstr ""
+
+msgid "Service Accounts"
+msgstr ""
+
+msgid "Service Accounts keys authorize GitLab to deploy your Google Cloud project"
+msgstr ""
+
+msgid "Service Desk"
+msgstr ""
+
+msgid "Service Desk Ticket"
+msgstr ""
+
+msgid "Service Desk allows people to create issues in your GitLab instance without their own user account. It provides a unique email address for end users to create issues in a project. Replies can be sent either through the GitLab interface or by email. End users only see threads through email."
+msgstr ""
+
+msgid "Service access token expiration"
+msgstr ""
+
+msgid "Service account"
+msgstr ""
+
+msgid "Service account generated successfully"
+msgstr ""
+
+msgid "Service account token expiration"
+msgstr ""
+
+msgid "Service accounts"
+msgstr ""
+
+msgid "ServiceAccount|No more seats are available to create Service Account User"
+msgstr ""
+
+msgid "ServiceAccount|User does not have permission to create a service account in this namespace."
+msgstr ""
+
+msgid "ServiceAccount|User does not have permission to create a service account."
+msgstr ""
+
+msgid "ServiceDesk|%{customEmail} with SMTP host %{smtpAddress} is %{badgeStart}verified%{badgeEnd}"
+msgstr ""
+
+msgid "ServiceDesk|A connection to the specified host could not be made or an SSL issue occurred."
+msgstr ""
+
+msgid "ServiceDesk|A verification email has been sent to a sub-address of your custom email address. This can take up to 30 minutes. The screen refreshes automatically."
+msgstr ""
+
+msgid "ServiceDesk|Add email addresses in the %{codeStart}Cc%{codeEnd} header of Service Desk emails to the issue."
+msgstr ""
+
+msgid "ServiceDesk|Add external participants from the %{codeStart}Cc%{codeEnd} header"
+msgstr ""
+
+msgid "ServiceDesk|CRAM-MD5"
+msgstr ""
+
+msgid "ServiceDesk|Cannot create custom email"
+msgstr ""
+
+msgid "ServiceDesk|Cannot update custom email"
+msgstr ""
+
+msgid "ServiceDesk|Check your forwarding settings and make sure the original email sender remains in the From header."
+msgstr ""
+
+msgid "ServiceDesk|Common ports are 587 when using TLS, and 25 when not."
+msgstr ""
+
+msgid "ServiceDesk|Configure a custom email address"
+msgstr ""
+
+msgid "ServiceDesk|Connect a custom email address your customers can use to create Service Desk issues. Forward all emails from your custom email address to the Service Desk email address of this project. GitLab will send Service Desk emails from the custom address on your behalf using your SMTP credentials. %{linkStart}Learn more about prerequisites and the verification process%{linkEnd}."
+msgstr ""
+
+msgid "ServiceDesk|Copy Service Desk email address"
+msgstr ""
+
+msgid "ServiceDesk|Custom email address"
+msgstr ""
+
+msgid "ServiceDesk|Custom email address could not be verified."
+msgstr ""
+
+msgid "ServiceDesk|Custom email address has already been verified."
+msgstr ""
+
+msgid "ServiceDesk|Custom email address verification has already been processed and failed."
+msgstr ""
+
+msgid "ServiceDesk|Custom email already exists"
+msgstr ""
+
+msgid "ServiceDesk|Custom email disabled."
+msgstr ""
+
+msgid "ServiceDesk|Custom email does not exist"
+msgstr ""
+
+msgid "ServiceDesk|Custom email enabled."
+msgstr ""
+
+msgid "ServiceDesk|Custom email is required and must be a valid email address."
+msgstr ""
+
+msgid "ServiceDesk|Email address your customers can use to send support requests. It must support sub-addressing."
+msgstr ""
+
+msgid "ServiceDesk|Enable Service Desk"
+msgstr ""
+
+msgid "ServiceDesk|Enable custom email address"
+msgstr ""
+
+msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
+msgstr ""
+
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
+msgid "ServiceDesk|Incorrect From header"
+msgstr ""
+
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
+msgid "ServiceDesk|Incorrect verification token"
+msgstr ""
+
+msgid "ServiceDesk|Invalid credentials"
+msgstr ""
+
+msgid "ServiceDesk|Issues created from Service Desk emails will appear here. Each comment becomes part of the email conversation."
+msgstr ""
+
+msgid "ServiceDesk|Keep custom email"
+msgstr ""
+
+msgid "ServiceDesk|Let GitLab select a server-supported method (recommended)"
+msgstr ""
+
+msgid "ServiceDesk|Like the author, external participants receive Service Desk emails and can participate in the discussion."
+msgstr ""
+
+msgid "ServiceDesk|Login"
+msgstr ""
+
+msgid "ServiceDesk|Minimum 8 characters long."
+msgstr ""
+
+msgid "ServiceDesk|Or reset and connect a new custom email address to this Service Desk."
+msgstr ""
+
+msgid "ServiceDesk|Parameters missing"
+msgstr ""
+
+msgid "ServiceDesk|Plain"
+msgstr ""
+
+msgid "ServiceDesk|Please share your feedback on this feature in the %{linkStart}feedback issue%{linkEnd}"
+msgstr ""
+
+msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
+msgstr ""
+
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
+msgid "ServiceDesk|Reset custom email"
+msgstr ""
+
+msgid "ServiceDesk|Reset custom email address and delete credentials"
+msgstr ""
+
+msgid "ServiceDesk|Reset custom email address."
+msgstr ""
+
+msgid "ServiceDesk|SMTP address is required and must be resolvable."
+msgstr ""
+
+msgid "ServiceDesk|SMTP authentication method"
+msgstr ""
+
+msgid "ServiceDesk|SMTP host"
+msgstr ""
+
+msgid "ServiceDesk|SMTP host issue"
+msgstr ""
+
+msgid "ServiceDesk|SMTP password"
+msgstr ""
+
+msgid "ServiceDesk|SMTP password is required and must be at least 8 characters long."
+msgstr ""
+
+msgid "ServiceDesk|SMTP port"
+msgstr ""
+
+msgid "ServiceDesk|SMTP port is required and must be a port number larger than 0."
+msgstr ""
+
+msgid "ServiceDesk|SMTP username"
+msgstr ""
+
+msgid "ServiceDesk|SMTP username is required."
+msgstr ""
+
+msgid "ServiceDesk|Save and test connection"
+msgstr ""
+
+msgid "ServiceDesk|Saved custom email address and started verification."
+msgstr ""
+
+msgid "ServiceDesk|Service Desk email address to forward emails to"
+msgstr ""
+
+msgid "ServiceDesk|Service Desk is not enabled"
+msgstr ""
+
+msgid "ServiceDesk|Service Desk is not supported"
+msgstr ""
+
+msgid "ServiceDesk|Service Desk setting missing"
+msgstr ""
+
+msgid "ServiceDesk|Service Desk setting or verification object missing"
+msgstr ""
+
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr ""
+
+msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
+msgstr ""
+
+msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
+msgstr ""
+
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
+msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
+msgstr ""
+
+msgid "ServiceDesk|To use a custom email address for this Service Desk, you'll need to configure and verify an email address again."
+msgstr ""
+
+msgid "ServiceDesk|Use Service Desk to connect with your users and offer customer support through email right inside GitLab"
+msgstr ""
+
+msgid "ServiceDesk|User cannot manage project."
+msgstr ""
+
+msgid "ServiceDesk|Verification email not received within timeframe"
+msgstr ""
+
+msgid "ServiceDesk|Verification failed"
+msgstr ""
+
+msgid "ServiceDesk|Verification started"
+msgstr ""
+
+msgid "ServiceDesk|Verify %{customEmail} with SMTP host %{smtpAddress}:"
+msgstr ""
+
+msgid "ServiceDesk|When enabled, Service Desk emails will be sent using the provided credentials."
+msgstr ""
+
+msgid "ServiceDesk|You are about to %{strongStart}disable the custom email address%{strongEnd} %{customEmail} %{strongStart}and delete its credentials%{strongEnd}."
+msgstr ""
+
+msgid "ServiceDesk|Your users can send emails to this address:"
+msgstr ""
+
+msgid "ServicePing|Service ping is off"
+msgstr ""
+
+msgid "ServicePing|This can be changed at any time in %{link_start}your settings%{link_end}."
+msgstr ""
+
+msgid "ServicePing|To help improve GitLab, we would like to periodically %{link_start}collect usage information%{link_end}."
+msgstr ""
+
+msgid "ServicePing|To view instance-level analytics, ask an admin to turn on %{docLinkStart}service ping%{docLinkEnd}."
+msgstr ""
+
+msgid "ServicePing|Turn on service ping"
+msgstr ""
+
+msgid "ServicePing|Turn on service ping to review instance-level analytics."
+msgstr ""
+
+msgid "Session ID"
+msgstr ""
+
+msgid "Session duration (minutes)"
+msgstr ""
+
+msgid "Session|There was a error loading the user verification challenge. Refresh to try again."
+msgstr ""
+
+msgid "Set %{epic_ref} as the parent epic."
+msgstr ""
+
+msgid "Set a default description template to be used for new issues. %{link_start}What are description templates?%{link_end}"
+msgstr ""
+
+msgid "Set a group, access level or users who are required to deploy."
+msgstr ""
+
+msgid "Set a password on your account to pull or push via %{protocol}."
+msgstr ""
+
+msgid "Set due date"
+msgstr ""
+
+msgid "Set health status"
+msgstr ""
+
+msgid "Set health status to %{health_status}."
+msgstr ""
+
+msgid "Set iteration"
+msgstr ""
+
+msgid "Set limit to 0 to allow any file size."
+msgstr ""
+
+msgid "Set limits for web and API requests."
+msgstr ""
+
+msgid "Set milestone"
+msgstr ""
+
+msgid "Set new password"
+msgstr ""
+
+msgid "Set parent epic to an epic"
+msgstr ""
+
+msgid "Set per-user rate limits for imports and exports of projects and groups."
+msgstr ""
+
+msgid "Set projects and maximum size limits, session duration, user options, and check feature availability for namespace plan."
+msgstr ""
+
+msgid "Set rate limits for package registry API requests that supersede the general user and IP rate limits."
+msgstr ""
+
+msgid "Set rate limits for searches performed by web or API requests."
+msgstr ""
+
+msgid "Set severity"
+msgstr ""
+
+msgid "Set sign-in restrictions for all users."
+msgstr ""
+
+msgid "Set size limits for displaying diffs in the browser."
+msgstr ""
+
+msgid "Set target branch"
+msgstr ""
+
+msgid "Set target branch to %{branch_name}."
+msgstr ""
+
+msgid "Set the Draft status"
+msgstr ""
+
+msgid "Set the Ready status"
+msgstr ""
+
+msgid "Set the default expiration time for job artifacts in all projects. Set to %{code_open}0%{code_close} to never expire artifacts by default. If no unit is written, it defaults to seconds. For example, these are all equivalent: %{code_open}3600%{code_close}, %{code_open}60 minutes%{code_close}, or %{code_open}one hour%{code_close}."
+msgstr ""
+
+msgid "Set the due date to %{due_date}."
+msgstr ""
+
+msgid "Set the iteration to %{iteration_reference}."
+msgstr ""
+
+msgid "Set the maximum number of slices allowed to run concurrently during Elasticsearch reindexing. Learn more about %{max_slices_running_link_start}maximum running slices configuration%{max_slices_link_end}."
+msgstr ""
+
+msgid "Set the maximum session time for a web terminal."
+msgstr ""
+
+msgid "Set the milestone to %{milestone_reference}."
+msgstr ""
+
+msgid "Set the per-IP address rate limit applicable to unauthenticated requests for getting a list of projects via the API."
+msgstr ""
+
+msgid "Set the per-user rate limit for getting a user by ID via the API."
+msgstr ""
+
+msgid "Set the per-user rate limit for notes created by web or API requests."
+msgstr ""
+
+msgid "Set this issue as blocked by %{target}."
+msgstr ""
+
+msgid "Set this issue as blocking %{target}."
+msgstr ""
+
+msgid "Set this number to 0 to disable the limit."
+msgstr ""
+
+msgid "Set time estimate"
+msgstr ""
+
+msgid "Set time estimate to %{time_estimate}."
+msgstr ""
+
+msgid "Set to 0 for no size limit."
+msgstr ""
+
+msgid "Set to 0 to disable the limit."
+msgstr ""
+
+msgid "Set to 0 to disable the limits."
+msgstr ""
+
+msgid "Set to 0 to disable timeout."
+msgstr ""
+
+msgid "Set to auto-merge"
+msgstr ""
+
+msgid "Set up"
+msgstr ""
+
+msgid "Set up CI/CD"
+msgstr ""
+
+msgid "Set up Jira Integration"
+msgstr ""
+
+msgid "Set up a hardware device to enable two-factor authentication (2FA)."
+msgstr ""
+
+msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}"
+msgstr ""
+
+msgid "Set up new device"
+msgstr ""
+
+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."
+msgstr ""
+
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
+msgid "Set weight"
+msgstr ""
+
+msgid "Set weight to %{weight}."
+msgstr ""
+
+msgid "SetStatusModal|Clear status"
+msgstr ""
+
+msgid "SetStatusModal|Clear status after"
+msgstr ""
+
+msgid "SetStatusModal|Displays that you are busy or not able to respond"
+msgstr ""
+
+msgid "SetStatusModal|Edit status"
+msgstr ""
+
+msgid "SetStatusModal|Remove status"
+msgstr ""
+
+msgid "SetStatusModal|Set a status"
+msgstr ""
+
+msgid "SetStatusModal|Set status"
+msgstr ""
+
+msgid "SetStatusModal|Set yourself as busy"
+msgstr ""
+
+msgid "SetStatusModal|Sorry, we weren't able to set your status. Please try again later."
+msgstr ""
+
+msgid "SetStatusModal|Status updated"
+msgstr ""
+
+msgid "SetStatusModal|What's your status?"
+msgstr ""
+
+msgid "SetStatusModal|Your status resets on %{date}."
+msgstr ""
+
+msgid "Sets %{epic_ref} as parent epic."
+msgstr ""
+
+msgid "Sets checkin reminder frequency to %{frequency}."
+msgstr ""
+
+msgid "Sets health status to %{health_status}."
+msgstr ""
+
+msgid "Sets target branch to %{branch_name}."
+msgstr ""
+
+msgid "Sets the due date to %{due_date}."
+msgstr ""
+
+msgid "Sets the iteration to %{iteration_reference}."
+msgstr ""
+
+msgid "Sets the milestone to %{milestone_reference}."
+msgstr ""
+
+msgid "Sets the severity"
+msgstr ""
+
+msgid "Sets time estimate to %{time_estimate}."
+msgstr ""
+
+msgid "Sets weight to %{weight}."
+msgstr ""
+
+msgid "Setting"
+msgstr ""
+
+msgid "Setting enforced"
+msgstr ""
+
+msgid "Settings"
+msgstr ""
+
+msgid "Settings for the License Compliance feature"
+msgstr ""
+
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
+msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
+msgstr ""
+
+msgid "Settings|What is experiment?"
+msgstr ""
+
+msgid "Severity"
+msgstr ""
+
+msgid "Severity updated to %{severity}."
+msgstr ""
+
+msgid "SeverityWidget|Severity"
+msgstr ""
+
+msgid "SeverityWidget|Severity: %{severity}"
+msgstr ""
+
+msgid "SeverityWidget|There was an error while updating severity."
+msgstr ""
+
+msgid "Share"
+msgstr ""
+
+msgid "Share the %{strong_open}GitLab single sign-on URL%{strong_close} with members so they can sign in to your group through your identity provider"
+msgstr ""
+
+msgid "Shared Runners"
+msgstr ""
+
+msgid "Shared Runners:"
+msgstr ""
+
+msgid "Shared projects"
+msgstr ""
+
+msgid "Shared runners"
+msgstr ""
+
+msgid "Shared runners details"
+msgstr ""
+
+msgid "Shared runners enabled cannot be enabled until a valid credit card is on file"
+msgstr ""
+
+msgid "Shared runners help link"
+msgstr ""
+
+msgid "SharedRunnersMinutesSettings|Reset compute usage"
+msgstr ""
+
+msgid "SharedRunnersMinutesSettings|When you reset the compute usage for this namespace, the compute usage changes to zero."
+msgstr ""
+
+msgid "ShellOperations|Git SSH operations rate limit"
+msgstr ""
+
+msgid "ShellOperations|Limit the number of Git operations a user can perform per minute, per repository."
+msgstr ""
+
+msgid "ShellOperations|Maximum number of Git operations per minute"
+msgstr ""
+
+msgid "Short name"
+msgstr ""
+
+msgid "Should these changes be private?"
+msgstr ""
+
+msgid "Should you ever lose your phone or access to your one time password secret, each of these recovery codes can be used one time each to regain access to your account. Please save them in a safe place, or you %{boldStart}will%{boldEnd} lose access to your account."
+msgstr ""
+
+msgid "Show Pipeline ID"
+msgstr ""
+
+msgid "Show Pipeline IID"
+msgstr ""
+
+msgid "Show all %{issuable_type}."
+msgstr ""
+
+msgid "Show all activity"
+msgstr ""
+
+msgid "Show all breadcrumbs"
+msgstr ""
+
+msgid "Show all epics"
+msgstr ""
+
+msgid "Show all issues."
+msgstr ""
+
+msgid "Show all milestones"
+msgstr ""
+
+msgid "Show all test cases."
+msgstr ""
+
+msgid "Show archived projects"
+msgstr ""
+
+msgid "Show archived projects only"
+msgstr ""
+
+msgid "Show changes"
+msgstr ""
+
+msgid "Show closed epics"
+msgstr ""
+
+msgid "Show command"
+msgstr ""
+
+msgid "Show comments"
+msgstr ""
+
+msgid "Show comments on this file"
+msgstr ""
+
+msgid "Show comments only"
+msgstr ""
+
+msgid "Show complete raw log"
+msgstr ""
+
+msgid "Show current status of indexing"
+msgstr ""
+
+msgid "Show details"
+msgstr ""
+
+msgid "Show file browser (or press F)"
+msgstr ""
+
+msgid "Show file contents"
+msgstr ""
+
+msgid "Show full blame"
+msgstr ""
+
+msgid "Show group milestones"
+msgstr ""
+
+msgid "Show labels"
+msgstr ""
+
+msgid "Show latest version"
+msgstr ""
+
+msgid "Show less"
+msgstr ""
+
+msgid "Show list"
+msgstr ""
+
+msgid "Show more"
+msgstr ""
+
+msgid "Show one file at a time"
+msgstr ""
+
+msgid "Show open epics"
+msgstr ""
+
+msgid "Show password"
+msgstr ""
+
+msgid "Show project milestones"
+msgstr ""
+
+msgid "Show sub-group milestones"
+msgstr ""
+
+msgid "Show the Closed list"
+msgstr ""
+
+msgid "Show the Open list"
+msgstr ""
+
+msgid "Show thread"
+msgstr ""
+
+msgid "Show whitespace changes"
+msgstr ""
+
+msgid "ShowcaseSecurity|Access a dedicated area for vulnerability management. This includes a security dashboard, vulnerability report, and settings."
+msgstr ""
+
+msgid "ShowcaseSecurity|Audit your Docker-based app. Scan for known vulnerabilities in the Docker images where your code is shipped."
+msgstr ""
+
+msgid "ShowcaseSecurity|Container scanning"
+msgstr ""
+
+msgid "ShowcaseSecurity|Dependency scanning"
+msgstr ""
+
+msgid "ShowcaseSecurity|Dynamic Application Security Testing (DAST)"
+msgstr ""
+
+msgid "ShowcaseSecurity|Dynamically examine your application for vulnerabilities in deployed environments."
+msgstr ""
+
+msgid "ShowcaseSecurity|Enable SAST"
+msgstr ""
+
+msgid "ShowcaseSecurity|Enable Secret Detection"
+msgstr ""
+
+msgid "ShowcaseSecurity|Enable Static Application Security Testing (SAST)"
+msgstr ""
+
+msgid "ShowcaseSecurity|Find out if your external libraries are safe. Run dependency scanning jobs that check for known vulnerabilities in your external libraries."
+msgstr ""
+
+msgid "ShowcaseSecurity|Identify vulnerabilities in your code now"
+msgstr ""
+
+msgid "ShowcaseSecurity|Scan your code to detect unintentionally committed secrets, like keys, passwords, and API tokens."
+msgstr ""
+
+msgid "ShowcaseSecurity|Scan your source code using GitLab CI/CD and uncover vulnerabilities before deploying."
+msgstr ""
+
+msgid "ShowcaseSecurity|Start a free 30-day Ultimate trial or upgrade your instance to access organization-wide security and compliance features. See the other features of the Ultimate plan."
+msgstr ""
+
+msgid "ShowcaseSecurity|Start a free trial"
+msgstr ""
+
+msgid "ShowcaseSecurity|Take your security to the next level"
+msgstr ""
+
+msgid "ShowcaseSecurity|Upgrade now"
+msgstr ""
+
+msgid "ShowcaseSecurity|Use GitLab CI/CD to analyze your source code for known vulnerabilities. Compare the found vulnerabilities between your source and target branches."
+msgstr ""
+
+msgid "ShowcaseSecurity|Vulnerability management"
+msgstr ""
+
+msgid "Showing %{conflict}"
+msgstr ""
+
+msgid "Showing %{count} of %{total} projects"
+msgstr ""
+
+msgid "Showing %{count} project"
+msgid_plural "Showing %{count} projects"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Showing %{limit} of %{total_count} issues. "
+msgstr ""
+
+msgid "Showing %{pageSize} of %{total} %{issuableType}"
+msgstr ""
+
+msgid "Showing all epics"
+msgstr ""
+
+msgid "Showing all issues"
+msgstr ""
+
+msgid "Showing data for workflow items completed in this date range. Date range limited to %{maxDateRange} days."
+msgstr ""
+
+msgid "Showing first 50 actions."
+msgstr ""
+
+msgid "Showing last %{size} of log -"
+msgstr ""
+
+msgid "Showing latest version"
+msgstr ""
+
+msgid "Showing version #%{versionNumber}"
+msgstr ""
+
+msgid "Side-by-side"
+msgstr ""
+
+msgid "Sidebar|%{name}: %{value}"
+msgstr ""
+
+msgid "Sidebar|Assign health status"
+msgstr ""
+
+msgid "Sidebar|Health status"
+msgstr ""
+
+msgid "Sidebar|No status"
+msgstr ""
+
+msgid "Sidebar|None"
+msgstr ""
+
+msgid "Sidekiq job compression threshold (bytes)"
+msgstr ""
+
+msgid "Sidekiq job size limit (bytes)"
+msgstr ""
+
+msgid "Sidekiq job size limits"
+msgstr ""
+
+msgid "Sign in"
+msgstr ""
+
+msgid "Sign in as a user with the matching email address, add the email to this account, or sign-up for a new account using the matching email."
+msgstr ""
+
+msgid "Sign in preview"
+msgstr ""
+
+msgid "Sign in to GitLab"
+msgstr ""
+
+msgid "Sign in using smart card"
+msgstr ""
+
+msgid "Sign in via 2FA code"
+msgstr ""
+
+msgid "Sign in with single sign-on"
+msgstr ""
+
+msgid "Sign in with smart card"
+msgstr ""
+
+msgid "Sign in/Sign up pages"
+msgstr ""
+
+msgid "Sign out"
+msgstr ""
+
+msgid "Sign out & Register"
+msgstr ""
+
+msgid "Sign up"
+msgstr ""
+
+msgid "Sign up for your free trial with:"
+msgstr ""
+
+msgid "Sign up was successful! Please confirm your email to sign in."
+msgstr ""
+
+msgid "Sign-in and Help page"
+msgstr ""
+
+msgid "Sign-in count:"
+msgstr ""
+
+msgid "Sign-in page"
+msgstr ""
+
+msgid "Sign-in restrictions"
+msgstr ""
+
+msgid "Sign-in text"
+msgstr ""
+
+msgid "Sign-in using %{provider} auth failed"
+msgstr ""
+
+msgid "Sign-out page URL"
+msgstr ""
+
+msgid "Sign-up restrictions"
+msgstr ""
+
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
+
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
+
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
+
+msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
+msgstr ""
+
+msgid "SignUp|Last name is too long (maximum is %{max_length} characters)."
+msgstr ""
+
+msgid "SignUp|Minimum length is %{minimum_password_length} characters."
+msgstr ""
+
+msgid "SignUp|Username is too long (maximum is %{max_length} characters)."
+msgstr ""
+
+msgid "SignUp|Username is too short (minimum is %{min_length} characters)."
+msgstr ""
+
+msgid "Signed in"
+msgstr ""
+
+msgid "Signed in to GitLab"
+msgstr ""
+
+msgid "Signed in to GitLab as %{user_link}"
+msgstr ""
+
+msgid "Signed in with %{authentication} authentication"
+msgstr ""
+
+msgid "Signing in using %{label} has been disabled"
+msgstr ""
+
+msgid "Signing in using your %{label} account without a pre-existing GitLab account is not allowed."
+msgstr ""
+
+msgid "SilentMode|All outbound communications are blocked. %{link_start}Learn more%{link_end}."
+msgstr ""
+
+msgid "SilentMode|Enable silent mode"
+msgstr ""
+
+msgid "SilentMode|Silent mode"
+msgstr ""
+
+msgid "SilentMode|Silent mode %{status}"
+msgstr ""
+
+msgid "SilentMode|Silent mode is enabled"
+msgstr ""
+
+msgid "SilentMode|Suppress outbound communication, such as emails, from GitLab."
+msgstr ""
+
+msgid "SilentMode|There was an error updating the Silent Mode Settings."
+msgstr ""
+
+msgid "Similar issues"
+msgstr ""
+
+msgid "Simulate a pipeline created for the default branch"
+msgstr ""
+
+msgid "Site profile failed to delete"
+msgstr ""
+
+msgid "Site profile not found for given parameters"
+msgstr ""
+
+msgid "Sites"
+msgstr ""
+
+msgid "Size"
+msgstr ""
+
+msgid "Size Limits"
+msgstr ""
+
+msgid "Size limit per repository (MiB)"
+msgstr ""
+
+msgid "Skip to main content"
+msgstr ""
+
+msgid "Skipped"
+msgstr ""
+
+msgid "Skipped deployment to"
+msgstr ""
+
+msgid "Skype:"
+msgstr ""
+
+msgid "Slack logo"
+msgstr ""
+
+msgid "Slack notifications integration is deprecated"
+msgstr ""
+
+msgid "Slack notifications will be brought into the GitLab for Slack app so you can manage both integrations from one place. %{learn_more_link_start}Learn more%{link_end}."
+msgstr ""
+
+msgid "Slack notifications will be deprecated"
+msgstr ""
+
+msgid "SlackIntegration|- *Notifications:* Get notifications to your team's Slack channel about events happening inside your GitLab projects."
+msgstr ""
+
+msgid "SlackIntegration|- *Slash commands:* Quickly open, access, or close issues from Slack using the `%{slash_command}` command. Streamline your GitLab deployments with ChatOps."
+msgstr ""
+
+msgid "SlackIntegration|Are you sure you want to remove this project from the GitLab for Slack app?"
+msgstr ""
+
+msgid "SlackIntegration|Client ID"
+msgstr ""
+
+msgid "SlackIntegration|Client secret"
+msgstr ""
+
+msgid "SlackIntegration|Configure your GitLab for Slack app."
+msgstr ""
+
+msgid "SlackIntegration|Copy the %{link_start}settings%{link_end} from %{strong_open}%{settings_heading}%{strong_close} in your GitLab for Slack app."
+msgstr ""
+
+msgid "SlackIntegration|Create Slack app"
+msgstr ""
+
+msgid "SlackIntegration|Create and read issue data and comments."
+msgstr ""
+
+msgid "SlackIntegration|Download latest manifest file"
+msgstr ""
+
+msgid "SlackIntegration|Generated for %{host} by GitLab %{version}."
+msgstr ""
+
+msgid "SlackIntegration|GitLab for Slack"
+msgstr ""
+
+msgid "SlackIntegration|GitLab for Slack was successfully installed."
+msgstr ""
+
+msgid "SlackIntegration|GitLab slash commands"
+msgstr ""
+
+msgid "SlackIntegration|Install GitLab for Slack app…"
+msgstr ""
+
+msgid "SlackIntegration|Interact with GitLab without leaving your Slack workspace!"
+msgstr ""
+
+msgid "SlackIntegration|Perform deployments."
+msgstr ""
+
+msgid "SlackIntegration|Project alias"
+msgstr ""
+
+msgid "SlackIntegration|Reinstall GitLab for Slack app…"
+msgstr ""
+
+msgid "SlackIntegration|Remove project"
+msgstr ""
+
+msgid "SlackIntegration|Run ChatOps jobs."
+msgstr ""
+
+msgid "SlackIntegration|See the list of available commands in Slack after setting up this integration by entering"
+msgstr ""
+
+msgid "SlackIntegration|Select a GitLab project to link with your Slack workspace."
+msgstr ""
+
+msgid "SlackIntegration|Sends notifications about project events to Slack channels."
+msgstr ""
+
+msgid "SlackIntegration|Signing secret"
+msgstr ""
+
+msgid "SlackIntegration|Step 1: Create your GitLab for Slack app"
+msgstr ""
+
+msgid "SlackIntegration|Step 2: Configure the app settings"
+msgstr ""
+
+msgid "SlackIntegration|Team name"
+msgstr ""
+
+msgid "SlackIntegration|This integration allows users to perform common operations on this project by entering slash commands in Slack."
+msgstr ""
+
+msgid "SlackIntegration|Update to the latest version"
+msgstr ""
+
+msgid "SlackIntegration|Update to the latest version of GitLab for Slack to get notifications"
+msgstr ""
+
+msgid "SlackIntegration|Update to the latest version to receive notifications from GitLab."
+msgstr ""
+
+msgid "SlackIntegration|Update your Slack app"
+msgstr ""
+
+msgid "SlackIntegration|Used for authenticating API requests from the GitLab for Slack app."
+msgstr ""
+
+msgid "SlackIntegration|Used for authenticating OAuth requests from the GitLab for Slack app."
+msgstr ""
+
+msgid "SlackIntegration|Used only for authenticating slash commands from the GitLab for Slack app. This method of authentication is deprecated by Slack."
+msgstr ""
+
+msgid "SlackIntegration|Verification token"
+msgstr ""
+
+msgid "SlackIntegration|When GitLab releases new features for the GitLab for Slack app, you might have to manually update your copy to use the new features."
+msgstr ""
+
+msgid "SlackIntegration|You can now close this window and go to your Slack workspace."
+msgstr ""
+
+msgid "SlackIntegration|You don't have to reauthorize this application if the permission scope changes in future releases."
+msgstr ""
+
+msgid "SlackIntegration|You may need to reinstall the GitLab for Slack app when we %{linkStart}make updates or change permissions%{linkEnd}."
+msgstr ""
+
+msgid "SlackIntegration|You must do this step only once."
+msgstr ""
+
+msgid "SlackIntegration|cannot have more than %{limit} channels"
+msgstr ""
+
+msgid "SlackIntegration|your-project-name-or-alias command"
+msgstr ""
+
+msgid "SlackModal|Are you sure you want to change the project?"
+msgstr ""
+
+msgid "SlackModal|If you change the project, you'll lose any text entered in the form."
+msgstr ""
+
+msgid "SlackModal|If you've entered some text, consider saving it somewhere to avoid losing any content."
+msgstr ""
+
+msgid "SlackService|1. %{slash_command_link_start}Add a slash command%{slash_command_link_end} in your Slack team using this information:"
+msgstr ""
+
+msgid "SlackService|2. Paste the token from Slack in the %{strong_open}Token%{strong_close} field below."
+msgstr ""
+
+msgid "SlackService|3. Select the %{strong_open}Active%{strong_close} checkbox, select %{strong_open}Save changes%{strong_close}, and start using slash commands in Slack!"
+msgstr ""
+
+msgid "SlackService|After setup, get a list of available Slack slash commands by entering"
+msgstr ""
+
+msgid "SlackService|Fill in the word that works best for your team."
+msgstr ""
+
+msgid "SlackService|Perform common operations in this project by entering slash commands in Slack."
+msgstr ""
+
+msgid "Slack|%{asterisk}Channel notifications%{asterisk}"
+msgstr ""
+
+msgid "Slack|%{asterisk}Slash commands%{asterisk}"
+msgstr ""
+
+msgid "Slack|%{emoji}Connected to GitLab account %{account}."
+msgstr ""
+
+msgid "Slack|%{emoji}Welcome to GitLab for Slack!"
+msgstr ""
+
+msgid "Slack|Connect your GitLab account"
+msgstr ""
+
+msgid "Slack|Control GitLab from Slack with %{startMarkup}slash commands%{endMarkup}. For a list of available commands, enter %{command}."
+msgstr ""
+
+msgid "Slack|GitLab for Slack now supports channel-based notifications. Let your team know when new issues are created or new CI/CD jobs are run.%{startMarkup}Learn more%{endMarkup}."
+msgstr ""
+
+msgid "Slack|To start using notifications, %{startMarkup}enable the GitLab for Slack app integration%{endMarkup} in your project settings."
+msgstr ""
+
+msgid "Slack|To start using slash commands, connect your GitLab account."
+msgstr ""
+
+msgid "Slice multiplier"
+msgstr ""
+
+msgid "Smartcard"
+msgstr ""
+
+msgid "Smartcard authentication failed: client certificate header is missing."
+msgstr ""
+
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
+msgid "Snippet"
+msgstr ""
+
+msgid "Snippets"
+msgstr ""
+
+msgid "Snippets with non-text files can only be edited via Git."
+msgstr ""
+
+msgid "SnippetsEmptyState|Code snippets"
+msgstr ""
+
+msgid "SnippetsEmptyState|Documentation"
+msgstr ""
+
+msgid "SnippetsEmptyState|New snippet"
+msgstr ""
+
+msgid "SnippetsEmptyState|No snippets found"
+msgstr ""
+
+msgid "SnippetsEmptyState|Store, share, and embed small pieces of code and text."
+msgstr ""
+
+msgid "SnippetsEmptyState|There are no snippets to show."
+msgstr ""
+
+msgid "Snippets|%{spammable_titlecase} was submitted to Akismet successfully."
+msgstr ""
+
+msgid "Snippets|Add another file %{num}/%{total}"
+msgstr ""
+
+msgid "Snippets|Delete file"
+msgstr ""
+
+msgid "Snippets|Describe what your snippet does or how to use it…"
+msgstr ""
+
+msgid "Snippets|Description (optional)"
+msgstr ""
+
+msgid "Snippets|Error with Akismet. Please check the logs for more info."
+msgstr ""
+
+msgid "Snippets|File name (e.g. test.rb)"
+msgstr ""
+
+msgid "Snippets|Files"
+msgstr ""
+
+msgid "Snippets|Snippets are limited to %{total} files."
+msgstr ""
+
+msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
+msgstr ""
+
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
+msgid "Snowplow"
+msgstr ""
+
+msgid "Soft wrap"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Solution"
+msgstr ""
+
+msgid "Some changes are not shown"
+msgstr ""
+
+msgid "Some changes are not shown."
+msgstr ""
+
+msgid "Some child epics may be hidden due to applied filters"
+msgstr ""
+
+msgid "Some common domains are not allowed. %{learn_more_link}."
+msgstr ""
+
+msgid "Someone edited the %{issuableType} at the same time you did. Review %{linkStart}the %{issuableType}%{linkEnd} and make sure you don't unintentionally overwrite their changes."
+msgstr ""
+
+msgid "Someone edited the file the same time you did. Please check out %{link_start}the file %{icon}%{link_end} and make sure your changes will not unintentionally remove theirs."
+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 ""
+
+msgid "Someone edited this %{model_name} at the same time you did. Please check out the %{link_to_model} and make sure your changes will not unintentionally remove theirs."
+msgstr ""
+
+msgid "Someone edited this %{model_name} at the same time you did. Please refresh your browser and make sure your changes will not unintentionally remove theirs."
+msgstr ""
+
+msgid "Someone edited this merge request at the same time you did. Please refresh the page to see changes."
+msgstr ""
+
+msgid "Someone edited this milestone at the same time you did. Please refresh the page to see changes."
+msgstr ""
+
+msgid "Someone edited this test case at the same time you did. The description has been updated and you will need to make your changes again."
+msgstr ""
+
+msgid "Someone signed in to your %{host} account from a new location"
+msgstr ""
+
+msgid "Someone, hopefully you, has requested to reset the password for your GitLab account on %{link_to_gitlab}."
+msgstr ""
+
+msgid "Something else"
+msgstr ""
+
+msgid "Something went wrong"
+msgstr ""
+
+msgid "Something went wrong fetching the scanner findings. Please try again."
+msgstr ""
+
+msgid "Something went wrong on our end"
+msgstr ""
+
+msgid "Something went wrong on our end."
+msgstr ""
+
+msgid "Something went wrong on our end. Please try again!"
+msgstr ""
+
+msgid "Something went wrong on our end. Please try again."
+msgstr ""
+
+msgid "Something went wrong trying to change the locked state of the discussion"
+msgstr ""
+
+msgid "Something went wrong trying to change the locked state of this %{issuableDisplayName}"
+msgstr ""
+
+msgid "Something went wrong trying to load issue contacts."
+msgstr ""
+
+msgid "Something went wrong when deleting a comment. Please try again"
+msgstr ""
+
+msgid "Something went wrong when deleting a comment. Please try again."
+msgstr ""
+
+msgid "Something went wrong when reordering designs. Please try again"
+msgstr ""
+
+msgid "Something went wrong when sending the incident link to Slack."
+msgstr ""
+
+msgid "Something went wrong when updating a comment. Please try again"
+msgstr ""
+
+msgid "Something went wrong while adding timeline event."
+msgstr ""
+
+msgid "Something went wrong while adding your award. Please try again."
+msgstr ""
+
+msgid "Something went wrong while applying the batch of suggestions. Please try again."
+msgstr ""
+
+msgid "Something went wrong while applying the suggestion. Please try again."
+msgstr ""
+
+msgid "Something went wrong while archiving a requirement."
+msgstr ""
+
+msgid "Something went wrong while closing the epic. Please try again later."
+msgstr ""
+
+msgid "Something went wrong while closing the incident form."
+msgstr ""
+
+msgid "Something went wrong while closing the merge request. Please try again later."
+msgstr ""
+
+msgid "Something went wrong while creating a requirement."
+msgstr ""
+
+msgid "Something went wrong while deleting description changes. Please try again."
+msgstr ""
+
+msgid "Something went wrong while deleting the source branch. Please try again."
+msgstr ""
+
+msgid "Something went wrong while deleting your note. Please try again."
+msgstr ""
+
+msgid "Something went wrong while deploying this environment. Please try again."
+msgstr ""
+
+msgid "Something went wrong while editing your comment. Please try again."
+msgstr ""
+
+msgid "Something went wrong while exporting requirements"
+msgstr ""
+
+msgid "Something went wrong while fetching branches"
+msgstr ""
+
+msgid "Something went wrong while fetching comments. Please try again."
+msgstr ""
+
+msgid "Something went wrong while fetching description changes. Please try again."
+msgstr ""
+
+msgid "Something went wrong while fetching details"
+msgstr ""
+
+msgid "Something went wrong while fetching projects"
+msgstr ""
+
+msgid "Something went wrong while fetching projects."
+msgstr ""
+
+msgid "Something went wrong while fetching related merge requests."
+msgstr ""
+
+msgid "Something went wrong while fetching requirements count."
+msgstr ""
+
+msgid "Something went wrong while fetching requirements list."
+msgstr ""
+
+msgid "Something went wrong while fetching source branches."
+msgstr ""
+
+msgid "Something went wrong while fetching the environments for this merge request. Please try again."
+msgstr ""
+
+msgid "Something went wrong while fetching the packages list."
+msgstr ""
+
+msgid "Something went wrong while obtaining the Let's Encrypt certificate."
+msgstr ""
+
+msgid "Something went wrong while opening the incident form."
+msgstr ""
+
+msgid "Something went wrong while promoting the issue to an epic. Please try again."
+msgstr ""
+
+msgid "Something went wrong while promoting the note to timeline event."
+msgstr ""
+
+msgid "Something went wrong while reopening a requirement."
+msgstr ""
+
+msgid "Something went wrong while reopening the epic. Please try again later."
+msgstr ""
+
+msgid "Something went wrong while reopening the merge request. Please try again later."
+msgstr ""
+
+msgid "Something went wrong while resolving this discussion. Please try again."
+msgstr ""
+
+msgid "Something went wrong while setting %{issuableType} %{dateType} date."
+msgstr ""
+
+msgid "Something went wrong while setting %{issuableType} confidentiality."
+msgstr ""
+
+msgid "Something went wrong while setting %{issuableType} health status."
+msgstr ""
+
+msgid "Something went wrong while setting %{issuableType} notifications."
+msgstr ""
+
+msgid "Something went wrong while setting %{issuableType} to-do item."
+msgstr ""
+
+msgid "Something went wrong while setting %{issuableType} weight."
+msgstr ""
+
+msgid "Something went wrong while stopping this environment. Please try again."
+msgstr ""
+
+msgid "Something went wrong while updating a requirement."
+msgstr ""
+
+msgid "Something went wrong while updating assignees"
+msgstr ""
+
+msgid "Something went wrong while updating the modal."
+msgstr ""
+
+msgid "Something went wrong while updating your list settings"
+msgstr ""
+
+msgid "Something went wrong with your automatic subscription renewal."
+msgstr ""
+
+msgid "Something went wrong, unable to add %{project} to dashboard"
+msgstr ""
+
+msgid "Something went wrong, unable to delete project"
+msgstr ""
+
+msgid "Something went wrong, unable to get projects"
+msgstr ""
+
+msgid "Something went wrong, unable to search projects"
+msgstr ""
+
+msgid "Something went wrong. Please try again later"
+msgstr ""
+
+msgid "Something went wrong. Please try again."
+msgstr ""
+
+msgid "Something went wrong. Unable to create identity verification exemption."
+msgstr ""
+
+msgid "Something went wrong. Unable to remove identity verification exemption."
+msgstr ""
+
+msgid "Sorry, no projects matched your search"
+msgstr ""
+
+msgid "Sorry, you have exceeded the maximum browsable page number. Please use the API to explore further."
+msgstr ""
+
+msgid "Sorry, your filter produced no results"
+msgstr ""
+
+msgid "Sort by"
+msgstr ""
+
+msgid "Sort direction"
+msgstr ""
+
+msgid "Sort direction: Ascending"
+msgstr ""
+
+msgid "Sort direction: Descending"
+msgstr ""
+
+msgid "Sort or filter"
+msgstr ""
+
+msgid "SortOptions|Blocking"
+msgstr ""
+
+msgid "SortOptions|Closed date"
+msgstr ""
+
+msgid "SortOptions|Closed earlier"
+msgstr ""
+
+msgid "SortOptions|Closed recently"
+msgstr ""
+
+msgid "SortOptions|Created date"
+msgstr ""
+
+msgid "SortOptions|Due date"
+msgstr ""
+
+msgid "SortOptions|Due later"
+msgstr ""
+
+msgid "SortOptions|Due soon"
+msgstr ""
+
+msgid "SortOptions|Expired date"
+msgstr ""
+
+msgid "SortOptions|Label priority"
+msgstr ""
+
+msgid "SortOptions|Largest group"
+msgstr ""
+
+msgid "SortOptions|Largest repository"
+msgstr ""
+
+msgid "SortOptions|Last Contact"
+msgstr ""
+
+msgid "SortOptions|Last created"
+msgstr ""
+
+msgid "SortOptions|Latest version"
+msgstr ""
+
+msgid "SortOptions|Least popular"
+msgstr ""
+
+msgid "SortOptions|Less weight"
+msgstr ""
+
+msgid "SortOptions|Manual"
+msgstr ""
+
+msgid "SortOptions|Merged date"
+msgstr ""
+
+msgid "SortOptions|Merged earlier"
+msgstr ""
+
+msgid "SortOptions|Merged recently"
+msgstr ""
+
+msgid "SortOptions|Milestone due date"
+msgstr ""
+
+msgid "SortOptions|Milestone due later"
+msgstr ""
+
+msgid "SortOptions|Milestone due soon"
+msgstr ""
+
+msgid "SortOptions|More weight"
+msgstr ""
+
+msgid "SortOptions|Most popular"
+msgstr ""
+
+msgid "SortOptions|Most stars"
+msgstr ""
+
+msgid "SortOptions|Name"
+msgstr ""
+
+msgid "SortOptions|Name, ascending"
+msgstr ""
+
+msgid "SortOptions|Name, descending"
+msgstr ""
+
+msgid "SortOptions|Oldest created"
+msgstr ""
+
+msgid "SortOptions|Oldest last activity"
+msgstr ""
+
+msgid "SortOptions|Oldest sign in"
+msgstr ""
+
+msgid "SortOptions|Oldest starred"
+msgstr ""
+
+msgid "SortOptions|Oldest updated"
+msgstr ""
+
+msgid "SortOptions|Oldest version"
+msgstr ""
+
+msgid "SortOptions|Popularity"
+msgstr ""
+
+msgid "SortOptions|Priority"
+msgstr ""
+
+msgid "SortOptions|Recent last activity"
+msgstr ""
+
+msgid "SortOptions|Recent sign in"
+msgstr ""
+
+msgid "SortOptions|Recently starred"
+msgstr ""
+
+msgid "SortOptions|Size"
+msgstr ""
+
+msgid "SortOptions|Sort by"
+msgstr ""
+
+msgid "SortOptions|Sort direction"
+msgstr ""
+
+msgid "SortOptions|Stars"
+msgstr ""
+
+msgid "SortOptions|Start date"
+msgstr ""
+
+msgid "SortOptions|Start later"
+msgstr ""
+
+msgid "SortOptions|Start soon"
+msgstr ""
+
+msgid "SortOptions|Title"
+msgstr ""
+
+msgid "SortOptions|Weight"
+msgstr ""
+
+msgid "Source"
+msgstr ""
+
+msgid "Source (branch or tag)"
+msgstr ""
+
+msgid "Source Branch"
+msgstr ""
+
+msgid "Source IP"
+msgstr ""
+
+msgid "Source branch"
+msgstr ""
+
+msgid "Source branch does not exist"
+msgstr ""
+
+msgid "Source branch is protected from force push"
+msgstr ""
+
+msgid "Source branch will be deleted."
+msgstr ""
+
+msgid "Source branch will not be deleted."
+msgstr ""
+
+msgid "Source branch: %{source_branch_open}%{source_branch}%{source_branch_close}"
+msgstr ""
+
+msgid "Source code (%{fileExtension})"
+msgstr ""
+
+msgid "Source is not available"
+msgstr ""
+
+msgid "Source project"
+msgstr ""
+
+msgid "Source project cannot be found."
+msgstr ""
+
+msgid "Source-Branch"
+msgstr ""
+
+msgid "SourceEditor|\"el\" parameter is required for createInstance()"
+msgstr ""
+
+msgid "SourceEditor|%{name} is not registered."
+msgstr ""
+
+msgid "SourceEditor|Extension definition should be either a class or a function"
+msgstr ""
+
+msgid "SourceEditor|Extension definition should be either class, function, or an Array of definitions."
+msgstr ""
+
+msgid "SourceEditor|Extensions Store is required to check for an extension."
+msgstr ""
+
+msgid "SourceEditor|Name conflict for \"%{prop}()\" method."
+msgstr ""
+
+msgid "SourceEditor|No extension for unuse has been specified."
+msgstr ""
+
+msgid "SourceEditor|`definition` property is expected on the extension."
+msgstr ""
+
+msgid "Sourcegraph"
+msgstr ""
+
+msgid "SourcegraphAdmin|Block on private and internal projects"
+msgstr ""
+
+msgid "SourcegraphAdmin|Configure the URL to a Sourcegraph instance which can read your GitLab projects."
+msgstr ""
+
+msgid "SourcegraphAdmin|Enable Sourcegraph"
+msgstr ""
+
+msgid "SourcegraphAdmin|Enable code intelligence powered by %{link_start}Sourcegraph%{link_end} on your GitLab instance's code views and merge requests."
+msgstr ""
+
+msgid "SourcegraphAdmin|Learn more."
+msgstr ""
+
+msgid "SourcegraphAdmin|Only public projects have code intelligence enabled and communicate with Sourcegraph."
+msgstr ""
+
+msgid "SourcegraphAdmin|Save changes"
+msgstr ""
+
+msgid "SourcegraphAdmin|Sourcegraph URL"
+msgstr ""
+
+msgid "SourcegraphAdmin|https://sourcegraph.example.com"
+msgstr ""
+
+msgid "SourcegraphPreferences|This feature is experimental and currently limited to certain projects."
+msgstr ""
+
+msgid "SourcegraphPreferences|This feature is experimental and limited to public projects."
+msgstr ""
+
+msgid "SourcegraphPreferences|This feature is experimental."
+msgstr ""
+
+msgid "SourcegraphPreferences|Uses %{linkStart}Sourcegraph.com%{linkEnd}."
+msgstr ""
+
+msgid "SourcegraphPreferences|Uses a custom %{linkStart}Sourcegraph instance%{linkEnd}."
+msgstr ""
+
+msgid "Spam Check"
+msgstr ""
+
+msgid "Spam Check API key"
+msgstr ""
+
+msgid "Spam Logs"
+msgstr ""
+
+msgid "Spam and Anti-bot Protection"
+msgstr ""
+
+msgid "Spam log successfully submitted as ham."
+msgstr ""
+
+msgid "Specific branches"
+msgstr ""
+
+msgid "Specified URL cannot be used: \"%{reason}\""
+msgstr ""
+
+msgid "Specifies that this issue blocks other issues"
+msgstr ""
+
+msgid "Specify IP ranges that are always allowed for inbound traffic, for use with group-level IP restrictions. Runner and Pages daemon internal IPs should be listed here so that they can access project artifacts."
+msgstr ""
+
+msgid "Specify an email address regex pattern to identify default internal users."
+msgstr ""
+
+msgid "Speed up your pipelines with Needs relationships"
+msgstr ""
+
+msgid "Spent at"
+msgstr ""
+
+msgid "Spent at can't be a future date and time."
+msgstr ""
+
+msgid "Split cell"
+msgstr ""
+
+msgid "Squash commit message"
+msgstr ""
+
+msgid "Squash commits"
+msgstr ""
+
+msgid "Squash commits when merge request is accepted."
+msgstr ""
+
+msgid "SquashTmIntegration|Secret token (optional)"
+msgstr ""
+
+msgid "SquashTmIntegration|Squash TM webhook URL"
+msgstr ""
+
+msgid "SquashTmIntegration|Update Squash TM requirements when GitLab issues are modified."
+msgstr ""
+
+msgid "SquashTmIntegration|Update Squash TM requirements when GitLab issues are modified. %{docs_link}"
+msgstr ""
+
+msgid "Stack trace"
+msgstr ""
+
+msgid "Stacktrace snippet"
+msgstr ""
+
+msgid "Stage"
+msgstr ""
+
+msgid "Stage:"
+msgstr ""
+
+msgid "Standard"
+msgstr ""
+
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Star labels to start sorting by priority."
+msgstr ""
+
+msgid "Star toggle failed. Try again later."
+msgstr ""
+
+msgid "StarProject|Star"
+msgstr ""
+
+msgid "Starred Projects"
+msgstr ""
+
+msgid "Starred Projects' Activity"
+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 "Starrers"
+msgstr ""
+
+msgid "Stars"
+msgstr ""
+
+msgid "Start Date"
+msgstr ""
+
+msgid "Start Time"
+msgstr ""
+
+msgid "Start Web Terminal"
+msgstr ""
+
+msgid "Start a %{new_merge_request} with these changes"
+msgstr ""
+
+msgid "Start a Free Ultimate Trial"
+msgstr ""
+
+msgid "Start a new merge request with these changes"
+msgstr ""
+
+msgid "Start a review"
+msgstr ""
+
+msgid "Start another thread"
+msgstr ""
+
+msgid "Start by choosing a group to start exploring the merge requests in that group. You can then proceed to filter by projects, labels, milestones and authors."
+msgstr ""
+
+msgid "Start cleanup"
+msgstr ""
+
+msgid "Start date"
+msgstr ""
+
+msgid "Start free trial"
+msgstr ""
+
+msgid "Start internal thread"
+msgstr ""
+
+msgid "Start merge train"
+msgstr ""
+
+msgid "Start merge train..."
+msgstr ""
+
+msgid "Start remote connection"
+msgstr ""
+
+msgid "Start search"
+msgstr ""
+
+msgid "Start thread"
+msgstr ""
+
+msgid "Start time"
+msgstr ""
+
+msgid "Start your Free Ultimate Trial"
+msgstr ""
+
+msgid "Start your free trial"
+msgstr ""
+
+msgid "Started"
+msgstr ""
+
+msgid "Started %{startsIn}"
+msgstr ""
+
+msgid "Started asynchronous removal of all repository check states."
+msgstr ""
+
+msgid "Started escalation for this incident."
+msgstr ""
+
+msgid "Starting..."
+msgstr ""
+
+msgid "Starts"
+msgstr ""
+
+msgid "Starts %{startsIn}"
+msgstr ""
+
+msgid "Starts escalations for this incident"
+msgstr ""
+
+msgid "Starts on"
+msgstr ""
+
+msgid "Starts: %{startsAt}"
+msgstr ""
+
+msgid "State your message to activate"
+msgstr ""
+
+msgid "State/Province/City"
+msgstr ""
+
+msgid "Static Application Security Testing (SAST)"
+msgstr ""
+
+msgid "Statistics"
+msgstr ""
+
+msgid "Status"
+msgstr ""
+
+msgid "Status (optional)"
+msgstr ""
+
+msgid "Status checks must pass."
+msgstr ""
+
+msgid "Status was retried."
+msgstr ""
+
+msgid "Status:"
+msgstr ""
+
+msgid "Status: %{title}"
+msgstr ""
+
+msgid "StatusCheck|%{failed} failed"
+msgstr ""
+
+msgid "StatusCheck|%{pending} pending"
+msgstr ""
+
+msgid "StatusCheck|API to check"
+msgstr ""
+
+msgid "StatusCheck|Add status check"
+msgstr ""
+
+msgid "StatusCheck|An error occurred deleting the %{name} status check."
+msgstr ""
+
+msgid "StatusCheck|An error occurred fetching the status checks."
+msgstr ""
+
+msgid "StatusCheck|Apply this status check to all branches or a specific protected branch."
+msgstr ""
+
+msgid "StatusCheck|Check for a status response in merge requests. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "StatusCheck|Examples: QA, Security."
+msgstr ""
+
+msgid "StatusCheck|External API is already in use by another status check."
+msgstr ""
+
+msgid "StatusCheck|Failed to load status checks"
+msgstr ""
+
+msgid "StatusCheck|Invoke an external API as part of the pipeline process."
+msgstr ""
+
+msgid "StatusCheck|No status checks are defined yet."
+msgstr ""
+
+msgid "StatusCheck|Remove status check"
+msgstr ""
+
+msgid "StatusCheck|Remove status check?"
+msgstr ""
+
+msgid "StatusCheck|Service name"
+msgstr ""
+
+msgid "StatusCheck|Status Check ID"
+msgstr ""
+
+msgid "StatusCheck|Status checks"
+msgstr ""
+
+msgid "StatusCheck|Status checks all passed"
+msgstr ""
+
+msgid "StatusCheck|Status checks are API calls to external systems that request the status of an external requirement."
+msgstr ""
+
+msgid "StatusCheck|Status checks are being fetched"
+msgstr ""
+
+msgid "StatusCheck|Status to check"
+msgstr ""
+
+msgid "StatusCheck|Target branch"
+msgstr ""
+
+msgid "StatusCheck|URL parameters are hidden for security reasons. For details of URL parameters, see the configuration for the status check service."
+msgstr ""
+
+msgid "StatusCheck|Update status check"
+msgstr ""
+
+msgid "StatusCheck|What is status check?"
+msgstr ""
+
+msgid "StatusCheck|You are about to remove the %{name} status check."
+msgstr ""
+
+msgid "StatusCheck|status checks"
+msgstr ""
+
+msgid "StatusPage|AWS %{docsLink}"
+msgstr ""
+
+msgid "StatusPage|AWS Secret access key"
+msgstr ""
+
+msgid "StatusPage|AWS access key ID"
+msgstr ""
+
+msgid "StatusPage|AWS region"
+msgstr ""
+
+msgid "StatusPage|Active"
+msgstr ""
+
+msgid "StatusPage|Bucket %{docsLink}"
+msgstr ""
+
+msgid "StatusPage|Configure file storage settings to link issues in this project to an external status page."
+msgstr ""
+
+msgid "StatusPage|S3 Bucket name"
+msgstr ""
+
+msgid "StatusPage|Status page"
+msgstr ""
+
+msgid "StatusPage|Status page URL"
+msgstr ""
+
+msgid "StatusPage|To publish incidents to an external status page, GitLab stores a JSON file in your Amazon S3 account at a location that your external status page service can access. Make sure to also set up %{docsLink}"
+msgstr ""
+
+msgid "StatusPage|configuration documentation"
+msgstr ""
+
+msgid "StatusPage|your status page frontend."
+msgstr ""
+
+msgid "Step %{currentStep} of %{stepCount}"
+msgstr ""
+
+msgid "Step %{step}"
+msgstr ""
+
+msgid "Step 1."
+msgstr ""
+
+msgid "Step 2."
+msgstr ""
+
+msgid "Step 3."
+msgstr ""
+
+msgid "Step 4."
+msgstr ""
+
+msgid "Stop Terminal"
+msgstr ""
+
+msgid "Stop impersonating"
+msgstr ""
+
+msgid "Stop this environment"
+msgstr ""
+
+msgid "Stopped"
+msgstr ""
+
+msgid "Stopping..."
+msgstr ""
+
+msgid "Storage"
+msgstr ""
+
+msgid "Storage nodes for new repositories"
+msgstr ""
+
+msgid "Storage:"
+msgstr ""
+
+msgid "StorageSize|Unknown"
+msgstr ""
+
+msgid "Strikethrough (%{modifierKey}%{shiftKey}X)"
+msgstr ""
+
+msgid "Strikethrough text"
+msgstr ""
+
+msgid "Sub-batch size"
+msgstr ""
+
+msgid "Subdomains of the Pages root domain %{root_domain} are reserved and cannot be used as custom Pages domains."
+msgstr ""
+
+msgid "Subgroup information"
+msgstr ""
+
+msgid "Subgroup milestone"
+msgstr ""
+
+msgid "Subgroup navigation"
+msgstr ""
+
+msgid "SubgroupCreationLevel|Roles allowed to create subgroups"
+msgstr ""
+
+msgid "SubgroupCreationlevel|Allowed to create subgroups"
+msgstr ""
+
+msgid "SubgroupCreationlevel|Maintainers"
+msgstr ""
+
+msgid "SubgroupCreationlevel|Owners"
+msgstr ""
+
+msgid "Subgroups"
+msgstr ""
+
+msgid "Subgroups and projects"
+msgstr ""
+
+msgid "Subgroups can set up their own two-factor authentication rules"
+msgstr ""
+
+msgid "Subject Key Identifier:"
+msgstr ""
+
+msgid "Subkeys:"
+msgstr ""
+
+msgid "Submit"
+msgstr ""
+
+msgid "Submit a review"
+msgstr ""
+
+msgid "Submit as ham"
+msgstr ""
+
+msgid "Submit as spam"
+msgstr ""
+
+msgid "Submit feedback and approve these changes."
+msgstr ""
+
+msgid "Submit feedback that should be addressed before merging."
+msgstr ""
+
+msgid "Submit general feedback without explicit approval."
+msgstr ""
+
+msgid "Submit review"
+msgstr ""
+
+msgid "Submit search"
+msgstr ""
+
+msgid "Submit the current review."
+msgstr ""
+
+msgid "Submitted as ham"
+msgstr ""
+
+msgid "Submitted the current review."
+msgstr ""
+
+msgid "Subscribe"
+msgstr ""
+
+msgid "Subscribe at group level"
+msgstr ""
+
+msgid "Subscribe at project level"
+msgstr ""
+
+msgid "Subscribe to RSS feed"
+msgstr ""
+
+msgid "Subscribe to calendar"
+msgstr ""
+
+msgid "Subscribed"
+msgstr ""
+
+msgid "Subscribed to this %{quick_action_target}."
+msgstr ""
+
+msgid "Subscribed to this project"
+msgstr ""
+
+msgid "Subscribes to this %{quick_action_target}."
+msgstr ""
+
+msgid "Subscription"
+msgstr ""
+
+msgid "Subscription History"
+msgstr ""
+
+msgid "Subscription deletion failed."
+msgstr ""
+
+msgid "Subscription for %{subscription} will be removed. Do you want to continue?"
+msgstr ""
+
+msgid "Subscription service outage"
+msgstr ""
+
+msgid "Subscription successfully applied to \"%{group_name}\""
+msgstr ""
+
+msgid "Subscription successfully created."
+msgstr ""
+
+msgid "Subscription successfully deleted."
+msgstr ""
+
+msgid "SubscriptionBanner|Add new license"
+msgstr ""
+
+msgid "SubscriptionBanner|Export license usage file"
+msgstr ""
+
+msgid "SubscriptionBanner|Upload new license"
+msgstr ""
+
+msgid "SubscriptionMangement|If you'd like to add more seats, upgrade your plan, or purchase additional products, contact your GitLab sales representative."
+msgstr ""
+
+msgid "SubscriptionMangement|This is a custom subscription managed by the GitLab Sales team"
+msgstr ""
+
+msgid "SubscriptionMangement|To make changes to a read-only subscription or purchase additional products, contact your GitLab Partner."
+msgstr ""
+
+msgid "SubscriptionMangement|Your subscription is in read-only mode"
+msgstr ""
+
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
+msgid "SubscriptionTable|Add seats"
+msgstr ""
+
+msgid "SubscriptionTable|An error occurred while loading the subscription details."
+msgstr ""
+
+msgid "SubscriptionTable|Billing"
+msgstr ""
+
+msgid "SubscriptionTable|Free"
+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 ""
+
+msgid "SubscriptionTable|Last invoice"
+msgstr ""
+
+msgid "SubscriptionTable|Last updated at %{seatsLastUpdated} UTC"
+msgstr ""
+
+msgid "SubscriptionTable|Loading subscriptions"
+msgstr ""
+
+msgid "SubscriptionTable|Manage"
+msgstr ""
+
+msgid "SubscriptionTable|Max seats used"
+msgstr ""
+
+msgid "SubscriptionTable|Next invoice"
+msgstr ""
+
+msgid "SubscriptionTable|Refresh Seats"
+msgstr ""
+
+msgid "SubscriptionTable|Renew"
+msgstr ""
+
+msgid "SubscriptionTable|Seats currently in use"
+msgstr ""
+
+msgid "SubscriptionTable|Seats in subscription"
+msgstr ""
+
+msgid "SubscriptionTable|Seats owed"
+msgstr ""
+
+msgid "SubscriptionTable|See usage"
+msgstr ""
+
+msgid "SubscriptionTable|Something went wrong trying to refresh seats"
+msgstr ""
+
+msgid "SubscriptionTable|Subscription end date"
+msgstr ""
+
+msgid "SubscriptionTable|Subscription start date"
+msgstr ""
+
+msgid "SubscriptionTable|This is the last time the GitLab.com team was in contact with you to settle any outstanding balances."
+msgstr ""
+
+msgid "SubscriptionTable|This is the maximum number of users that have existed at the same time since this subscription started."
+msgstr ""
+
+msgid "SubscriptionTable|This is the next date when the GitLab.com team is scheduled to get in contact with you to settle any outstanding balances."
+msgstr ""
+
+msgid "SubscriptionTable|This is the number of seats you will be required to purchase if you update to a paid plan."
+msgstr ""
+
+msgid "SubscriptionTable|Trial"
+msgstr ""
+
+msgid "SubscriptionTable|Trial end date"
+msgstr ""
+
+msgid "SubscriptionTable|Trial start date"
+msgstr ""
+
+msgid "SubscriptionTable|Up to date"
+msgstr ""
+
+msgid "SubscriptionTable|Usage"
+msgstr ""
+
+msgid "SubscriptionTable|Usage count is performed once a day at 12:00 PM."
+msgstr ""
+
+msgid "Subscriptions"
+msgstr ""
+
+msgid "Subscriptions|Activation date"
+msgstr ""
+
+msgid "Subscriptions|End date"
+msgstr ""
+
+msgid "Subscriptions|End date:"
+msgstr ""
+
+msgid "Subscriptions|Last sync"
+msgstr ""
+
+msgid "Subscriptions|None"
+msgstr ""
+
+msgid "Subscriptions|Start date"
+msgstr ""
+
+msgid "Subscription|Your subscription for %{strong}%{namespace_name}%{strong_close} has expired and you are now on %{pricing_link_start}the GitLab Free tier%{pricing_link_end}. Don't worry, your data is safe. Get in touch with our support team (%{support_email}). They'll gladly help with your subscription renewal."
+msgstr ""
+
+msgid "Subtracted"
+msgstr ""
+
+msgid "Subtracts"
+msgstr ""
+
+msgid "Succeeded"
+msgstr ""
+
+msgid "Success"
+msgstr ""
+
+msgid "Successfully activated"
+msgstr ""
+
+msgid "Successfully approved"
+msgstr ""
+
+msgid "Successfully banned"
+msgstr ""
+
+msgid "Successfully blocked"
+msgstr ""
+
+msgid "Successfully confirmed"
+msgstr ""
+
+msgid "Successfully deactivated"
+msgstr ""
+
+msgid "Successfully deleted WebAuthn device."
+msgstr ""
+
+msgid "Successfully linked ID(s): %{item_ids}."
+msgstr ""
+
+msgid "Successfully removed email."
+msgstr ""
+
+msgid "Successfully reset compute usage for namespace."
+msgstr ""
+
+msgid "Successfully scheduled a pipeline to run. Go to the %{pipelines_link_start}Pipelines page%{pipelines_link_end} for details."
+msgstr ""
+
+msgid "Successfully synced %{synced_timeago}."
+msgstr ""
+
+msgid "Successfully trusted"
+msgstr ""
+
+msgid "Successfully unbanned"
+msgstr ""
+
+msgid "Successfully unblocked"
+msgstr ""
+
+msgid "Successfully unlinked IDs: %{item_ids}."
+msgstr ""
+
+msgid "Successfully unlocked"
+msgstr ""
+
+msgid "Successfully untrusted"
+msgstr ""
+
+msgid "Successfully updated %{last_updated_timeago}."
+msgstr ""
+
+msgid "Successfully updated the environment."
+msgstr ""
+
+msgid "Suggest code changes which can be immediately applied in one click. Try it out!"
+msgstr ""
+
+msgid "Suggest test cases"
+msgstr ""
+
+msgid "Suggested change"
+msgstr ""
+
+msgid "SuggestedColors|Blue"
+msgstr ""
+
+msgid "SuggestedColors|Blue-gray"
+msgstr ""
+
+msgid "SuggestedColors|Carrot orange"
+msgstr ""
+
+msgid "SuggestedColors|Charcoal grey"
+msgstr ""
+
+msgid "SuggestedColors|Crimson"
+msgstr ""
+
+msgid "SuggestedColors|Current addition color"
+msgstr ""
+
+msgid "SuggestedColors|Current removal color"
+msgstr ""
+
+msgid "SuggestedColors|Dark coral"
+msgstr ""
+
+msgid "SuggestedColors|Dark sea green"
+msgstr ""
+
+msgid "SuggestedColors|Dark violet"
+msgstr ""
+
+msgid "SuggestedColors|Deep violet"
+msgstr ""
+
+msgid "SuggestedColors|Default addition color"
+msgstr ""
+
+msgid "SuggestedColors|Default removal color"
+msgstr ""
+
+msgid "SuggestedColors|Gray"
+msgstr ""
+
+msgid "SuggestedColors|Green"
+msgstr ""
+
+msgid "SuggestedColors|Green-cyan"
+msgstr ""
+
+msgid "SuggestedColors|Lavender"
+msgstr ""
+
+msgid "SuggestedColors|Magenta-pink"
+msgstr ""
+
+msgid "SuggestedColors|Orange"
+msgstr ""
+
+msgid "SuggestedColors|Purple"
+msgstr ""
+
+msgid "SuggestedColors|Red"
+msgstr ""
+
+msgid "SuggestedColors|Rose red"
+msgstr ""
+
+msgid "SuggestedColors|Titanium yellow"
+msgstr ""
+
+msgid "SuggestedReviewers|Get suggestions for reviewers based on GitLab's machine learning tool."
+msgstr ""
+
+msgid "SuggestedReviewers|Learn about suggested reviewers"
+msgstr ""
+
+msgid "SuggestedReviewers|Suggested reviewers"
+msgstr ""
+
+msgid "SuggestedReviewers|Suggested reviewers help link"
+msgstr ""
+
+msgid "SuggestedReviewers|Suggestions appear in the Reviewer section of the right sidebar"
+msgstr ""
+
+msgid "Suggestion is not applicable as the suggestion was not found."
+msgstr ""
+
+msgid "Suggestion(s)"
+msgstr ""
+
+msgid "Suggestions are not applicable as one or more suggestions were not found."
+msgstr ""
+
+msgid "Suggestions are not applicable as their lines cannot overlap."
+msgstr ""
+
+msgid "Suggestions must all be on the same branch."
+msgstr ""
+
+msgid "Suggestions:"
+msgstr ""
+
+msgid "Suite"
+msgstr ""
+
+msgid "Summarize comments"
+msgstr ""
+
+msgid "Summarize my pending comments"
+msgstr ""
+
+msgid "Summary"
+msgstr ""
+
+msgid "Summary / note"
+msgstr ""
+
+msgid "Summary comment (optional)"
+msgstr ""
+
+msgid "Summary generated by AI"
+msgstr ""
+
+msgid "Summary generated by AI (Experiment)"
+msgstr ""
+
+msgid "Summary will be generated with the next push to this merge request and will appear here."
+msgstr ""
+
+msgid "Sun"
+msgstr ""
+
+msgid "Sunday"
+msgstr ""
+
+msgid "SuperSonics|Activate subscription"
+msgstr ""
+
+msgid "SuperSonics|Activation code"
+msgstr ""
+
+msgid "SuperSonics|Activation not possible due to seat mismatch"
+msgstr ""
+
+msgid "SuperSonics|Activation not possible due to true-up value mismatch"
+msgstr ""
+
+msgid "SuperSonics|Add activation code"
+msgstr ""
+
+msgid "SuperSonics|An error occurred while adding your subscription"
+msgstr ""
+
+msgid "SuperSonics|Billable users"
+msgstr ""
+
+msgid "SuperSonics|Buy subscription"
+msgstr ""
+
+msgid "SuperSonics|Cannot activate instance due to a connectivity issue"
+msgstr ""
+
+msgid "SuperSonics|Cloud licensing"
+msgstr ""
+
+msgid "SuperSonics|Cloud licensing is now available. It's an easier way to activate instances and manage subscriptions. Read more about it in our %{blogPostLinkStart}blog post%{blogPostLinkEnd}. Activation codes are available in the %{portalLinkStart}Customers Portal%{portalLinkEnd}."
+msgstr ""
+
+msgid "SuperSonics|Customers Portal"
+msgstr ""
+
+msgid "SuperSonics|Export license usage file"
+msgstr ""
+
+msgid "SuperSonics|Free trial"
+msgstr ""
+
+msgid "SuperSonics|I agree that my use of the GitLab Software is subject to the Subscription Agreement located at the %{linkStart}Terms of Service%{linkEnd}, unless otherwise agreed to in writing with GitLab."
+msgstr ""
+
+msgid "SuperSonics|Learn how to %{linkStart}activate your subscription%{linkEnd}."
+msgstr ""
+
+msgid "SuperSonics|Learn more about %{activationLinkStart}activating your subscription%{activationLinkEnd}. If you need further assistance, %{supportLinkStart}contact GitLab Support%{supportLinkEnd}."
+msgstr ""
+
+msgid "SuperSonics|Licensed to"
+msgstr ""
+
+msgid "SuperSonics|Maximum users"
+msgstr ""
+
+msgid "SuperSonics|Offline license"
+msgstr ""
+
+msgid "SuperSonics|Online license"
+msgstr ""
+
+msgid "SuperSonics|Paste your activation code"
+msgstr ""
+
+msgid "SuperSonics|Please agree to the Subscription Agreement"
+msgstr ""
+
+msgid "SuperSonics|Ready to get started? A GitLab plan is ideal for scaling organizations and for multi team usage."
+msgstr ""
+
+msgid "SuperSonics|Start free trial"
+msgstr ""
+
+msgid "SuperSonics|Subscription detail synchronization has started and will complete soon."
+msgstr ""
+
+msgid "SuperSonics|Subscription details"
+msgstr ""
+
+msgid "SuperSonics|Subscription details did not synchronize due to a possible connectivity issue with GitLab servers. %{connectivityHelpLinkStart}How do I check connectivity%{connectivityHelpLinkEnd}?"
+msgstr ""
+
+msgid "SuperSonics|Subscription unavailable"
+msgstr ""
+
+msgid "SuperSonics|Sync subscription details"
+msgstr ""
+
+msgid "SuperSonics|Synchronization started"
+msgstr ""
+
+msgid "SuperSonics|The activation code is not valid. Please make sure to copy it exactly from the Customers Portal or confirmation email. Learn more about %{linkStart}activating your subscription%{linkEnd}."
+msgstr ""
+
+msgid "SuperSonics|The activation code should be a 24-character alphanumeric string"
+msgstr ""
+
+msgid "SuperSonics|There is a connectivity issue"
+msgstr ""
+
+msgid "SuperSonics|This is the highest peak of users on your installation since the license started."
+msgstr ""
+
+msgid "SuperSonics|This is the number of %{billableUsersLinkStart}billable users%{billableUsersLinkEnd} on your installation, and this is the minimum number you need to purchase when you renew your license."
+msgstr ""
+
+msgid "SuperSonics|To activate your subscription, your instance needs to connect to GitLab. %{learnMoreLinkStart}Learn more%{learnMoreLinkEnd}."
+msgstr ""
+
+msgid "SuperSonics|User in subscription"
+msgid_plural "SuperSonics|Users in subscription"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "SuperSonics|Users in subscription"
+msgstr ""
+
+msgid "SuperSonics|Users over subscription"
+msgstr ""
+
+msgid "SuperSonics|Users with a Guest role or those who don't belong to a Project or Group will not use a seat from your license."
+msgstr ""
+
+msgid "SuperSonics|You can %{purchaseSubscriptionLinkStart}purchase a new subscription%{purchaseSubscriptionLinkEnd} and try again. If you need further assistance, please %{supportLinkStart}contact GitLab Support%{supportLinkEnd}."
+msgstr ""
+
+msgid "SuperSonics|You can start a free trial of GitLab Ultimate without any obligation or payment details."
+msgstr ""
+
+msgid "SuperSonics|You can sync your subscription data to ensure your details are up to date."
+msgstr ""
+
+msgid "SuperSonics|You do not have an active subscription"
+msgstr ""
+
+msgid "SuperSonics|You have a future dated license"
+msgstr ""
+
+msgid "SuperSonics|You have added a license that activates on %{date}. Please see the subscription history table below for more details."
+msgstr ""
+
+msgid "SuperSonics|You have applied a true-up for %{trueUpQuantity} %{trueUpQuantityUsers} but you need one for %{expectedTrueUpQuantity} %{expectedTrueUpQuantityUsers}. To pay for seat overages, contact your sales representative. For further assistance, contact %{licenseSupportLinkStart}GitLab support%{licenseSupportLinkEnd}."
+msgstr ""
+
+msgid "SuperSonics|You have successfully added a license that activates on %{date}. Please see the subscription history table below for more details."
+msgstr ""
+
+msgid "SuperSonics|You may have entered an expired or ineligible activation code. To request a new activation code, %{purchaseSubscriptionLinkStart}purchase a new subscription%{purchaseSubscriptionLinkEnd} or %{supportLinkStart}contact GitLab Support%{supportLinkEnd} for further assistance."
+msgstr ""
+
+msgid "SuperSonics|You'll be charged for %{trueUpLinkStart}users over license%{trueUpLinkEnd} on a quarterly or annual basis, depending on the terms of your agreement."
+msgstr ""
+
+msgid "SuperSonics|Your %{subscriptionEntryName} cannot be displayed at the moment. Please refresh the page to try again."
+msgstr ""
+
+msgid "SuperSonics|Your current GitLab installation has %{userCount} active %{userCountUsers}, which exceeds your new subscription seat count of %{licenseUserCount} by %{overageCount}. To activate your new subscription, %{purchaseLinkStart}purchase%{purchaseLinkEnd} an additional %{overageCount} %{overageCountSeats}, or %{deactivateLinkStart}deactivate%{deactivateLinkEnd} or %{blockLinkStart}block%{blockLinkEnd} %{overageCount} %{overageCountUsers}. For further assistance, contact %{licenseSupportLinkStart}GitLab support%{licenseSupportLinkEnd}."
+msgstr ""
+
+msgid "SuperSonics|Your future dated license was successfully added"
+msgstr ""
+
+msgid "SuperSonics|Your subscription"
+msgstr ""
+
+msgid "SuperSonics|Your subscription cannot be located"
+msgstr ""
+
+msgid "SuperSonics|Your subscription is expired"
+msgstr ""
+
+msgid "SuperSonics|Your subscription was successfully activated. You can see the details below."
+msgstr ""
+
+msgid "SuperSonics|current subscription"
+msgstr ""
+
+msgid "SuperSonics|future subscriptions"
+msgstr ""
+
+msgid "SuperSonics|past subscriptions"
+msgstr ""
+
+msgid "Support"
+msgstr ""
+
+msgid "Support for custom certificates is disabled. Ask your system's administrator to enable it."
+msgstr ""
+
+msgid "Support page URL"
+msgstr ""
+
+msgid "Surveys|Delighted"
+msgstr ""
+
+msgid "Surveys|Happy"
+msgstr ""
+
+msgid "Surveys|Neutral"
+msgstr ""
+
+msgid "Surveys|Sad"
+msgstr ""
+
+msgid "Surveys|Unhappy"
+msgstr ""
+
+msgid "Switch Branches"
+msgstr ""
+
+msgid "Switch branch"
+msgstr ""
+
+msgid "Switch branch/tag"
+msgstr ""
+
+msgid "Switch to plain text editing"
+msgstr ""
+
+msgid "Switch to rich text editing"
+msgstr ""
+
+msgid "Switch to the source to copy the file contents"
+msgstr ""
+
+msgid "Symbolic link"
+msgstr ""
+
+msgid "Sync LDAP"
+msgstr ""
+
+msgid "Sync now"
+msgstr ""
+
+msgid "Synced"
+msgstr ""
+
+msgid "Synchronize LDAP"
+msgstr ""
+
+msgid "Syncing…"
+msgstr ""
+
+msgid "Syntax is correct."
+msgstr ""
+
+msgid "Syntax is incorrect."
+msgstr ""
+
+msgid "SynthaxHighlightingTheme|Dark"
+msgstr ""
+
+msgid "SynthaxHighlightingTheme|Light"
+msgstr ""
+
+msgid "SynthaxHighlightingTheme|Monokai"
+msgstr ""
+
+msgid "SynthaxHighlightingTheme|None"
+msgstr ""
+
+msgid "SynthaxHighlightingTheme|Solarized Dark"
+msgstr ""
+
+msgid "SynthaxHighlightingTheme|Solarized Light"
+msgstr ""
+
+msgid "System"
+msgstr ""
+
+msgid "System Hooks"
+msgstr ""
+
+msgid "System Hooks Help"
+msgstr ""
+
+msgid "System Info"
+msgstr ""
+
+msgid "System default (%{default})"
+msgstr ""
+
+msgid "System header and footer"
+msgstr ""
+
+msgid "System hooks are triggered on sets of events like creating a project or adding an SSH key. You can also enable extra triggers, such as push events."
+msgstr ""
+
+msgid "System metrics (Custom)"
+msgstr ""
+
+msgid "System metrics (Kubernetes)"
+msgstr ""
+
+msgid "System output"
+msgstr ""
+
+msgid "System started"
+msgstr ""
+
+msgid "TXT"
+msgstr ""
+
+msgid "Table of Contents"
+msgstr ""
+
+msgid "Table of contents"
+msgstr ""
+
+msgid "Tag"
+msgstr ""
+
+msgid "Tag does not exist"
+msgstr ""
+
+msgid "Tag list:"
+msgstr ""
+
+msgid "Tag name"
+msgstr ""
+
+msgid "Tag name cannot be one of the following: %{names}"
+msgstr ""
+
+msgid "Tag name is required."
+msgstr ""
+
+msgid "Tag name should not be empty"
+msgstr ""
+
+msgid "Tag name should not contain any control characters"
+msgstr ""
+
+msgid "Tag name should not contain any of the following: %{substrings}"
+msgstr ""
+
+msgid "Tag name should not end with %{postfixes}"
+msgstr ""
+
+msgid "Tag name should not start with %{prefixes}"
+msgstr ""
+
+msgid "Tag push"
+msgstr ""
+
+msgid "Tag push events"
+msgstr ""
+
+msgid "Tag this commit."
+msgstr ""
+
+msgid "Tagged this commit to %{tag_name} with \"%{message}\"."
+msgstr ""
+
+msgid "Tagged this commit to %{tag_name}."
+msgstr ""
+
+msgid "Tags"
+msgstr ""
+
+msgid "Tags are deleted until the timeout is reached. Any remaining tags are included the next time the policy runs. To remove the time limit, set it to 0."
+msgstr ""
+
+msgid "Tags feed"
+msgstr ""
+
+msgid "Tags this commit to %{tag_name} with \"%{message}\"."
+msgstr ""
+
+msgid "Tags this commit to %{tag_name}."
+msgstr ""
+
+msgid "TagsPage|Are you sure you want to delete this tag?"
+msgstr ""
+
+msgid "TagsPage|Browse commits"
+msgstr ""
+
+msgid "TagsPage|Browse files"
+msgstr ""
+
+msgid "TagsPage|Can't find HEAD commit for this tag"
+msgstr ""
+
+msgid "TagsPage|Cancel"
+msgstr ""
+
+msgid "TagsPage|Cancel, keep tag"
+msgstr ""
+
+msgid "TagsPage|Create release"
+msgstr ""
+
+msgid "TagsPage|Create tag"
+msgstr ""
+
+msgid "TagsPage|Delete protected tag"
+msgstr ""
+
+msgid "TagsPage|Delete tag"
+msgstr ""
+
+msgid "TagsPage|Deleting the %{strongStart}%{tagName}%{strongEnd} protected tag cannot be undone."
+msgstr ""
+
+msgid "TagsPage|Deleting the %{strongStart}%{tagName}%{strongEnd} tag cannot be undone."
+msgstr ""
+
+msgid "TagsPage|Do you want to create a release with the new tag? You can do that in the %{link_start}New release page%{link_end}."
+msgstr ""
+
+msgid "TagsPage|Edit release"
+msgstr ""
+
+msgid "TagsPage|Existing branch name, tag, or commit SHA"
+msgstr ""
+
+msgid "TagsPage|Filter by tag name"
+msgstr ""
+
+msgid "TagsPage|New"
+msgstr ""
+
+msgid "TagsPage|New Tag"
+msgstr ""
+
+msgid "TagsPage|New tag"
+msgstr ""
+
+msgid "TagsPage|Only a project maintainer or owner can delete a protected tag"
+msgstr ""
+
+msgid "TagsPage|Optionally, add a message to the tag. Leaving this blank creates a %{link_start}lightweight tag.%{link_end}"
+msgstr ""
+
+msgid "TagsPage|Permanently delete protected tag?"
+msgstr ""
+
+msgid "TagsPage|Permanently delete tag?"
+msgstr ""
+
+msgid "TagsPage|Please type the following to confirm:"
+msgstr ""
+
+msgid "TagsPage|Repository has no tags yet."
+msgstr ""
+
+msgid "TagsPage|Sorry, your filter produced no results."
+msgstr ""
+
+msgid "TagsPage|Tags"
+msgstr ""
+
+msgid "TagsPage|Tags give the ability to mark specific points in history as being important"
+msgstr ""
+
+msgid "TagsPage|Unable to load tags"
+msgstr ""
+
+msgid "TagsPage|Use git tag command to add a new one:"
+msgstr ""
+
+msgid "TagsPage|Yes, delete protected tag"
+msgstr ""
+
+msgid "TagsPage|Yes, delete tag"
+msgstr ""
+
+msgid "TagsPage|protected"
+msgstr ""
+
+msgid "Take a look at the documentation to discover all of GitLab’s capabilities."
+msgstr ""
+
+msgid "TanukiBot|Ask a question about GitLab"
+msgstr ""
+
+msgid "TanukiBot|For example, %{linkStart}what is a fork%{linkEnd}?"
+msgstr ""
+
+msgid "TanukiBot|GitLab Duo Chat"
+msgstr ""
+
+msgid "TanukiBot|Give feedback"
+msgstr ""
+
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
+msgid "TanukiBot|Source"
+msgid_plural "TanukiBot|Sources"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
+msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
+msgstr ""
+
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
+msgid "TanukiBot|What is a fork?"
+msgstr ""
+
+msgid "Target"
+msgstr ""
+
+msgid "Target Branch"
+msgstr ""
+
+msgid "Target Path"
+msgstr ""
+
+msgid "Target branch"
+msgstr ""
+
+msgid "Target branch: %{target_branch}"
+msgstr ""
+
+msgid "Target roles"
+msgstr ""
+
+msgid "Target-Branch"
+msgstr ""
+
+msgid "Task"
+msgstr ""
+
+msgid "Task ID: %{elastic_task}"
+msgstr ""
+
+msgid "Task list"
+msgstr ""
+
+msgid "Tasks|%{complete_count} of %{total_count} %{checklist_item_noun} completed"
+msgstr ""
+
+msgid "Tasks|%{complete_count}/%{total_count} %{checklist_item_noun}"
+msgstr ""
+
+msgid "Team"
+msgstr ""
+
+msgid "Team domain"
+msgstr ""
+
+msgid "TeamcityIntegration|Trigger TeamCity CI after a merge request has been created or updated"
+msgstr ""
+
+msgid "TeamcityIntegration|Trigger TeamCity CI after every push to the repository, except branch delete"
+msgstr ""
+
+msgid "TelegramIntegration|Leave blank to use your current token."
+msgstr ""
+
+msgid "TelegramIntegration|New token"
+msgstr ""
+
+msgid "TelegramIntegration|Send notifications about project events to Telegram."
+msgstr ""
+
+msgid "TelegramIntegration|Send notifications about project events to Telegram. %{docs_link}"
+msgstr ""
+
+msgid "TelegramIntegration|Unique authentication token."
+msgstr ""
+
+msgid "Telephone number"
+msgstr ""
+
+msgid "Template"
+msgstr ""
+
+msgid "Template to append to all Service Desk issues"
+msgstr ""
+
+msgid "TemplateRepository|Create common files more quickly, and standardize their format."
+msgstr ""
+
+msgid "Templates"
+msgstr ""
+
+msgid "TemporaryStorageIncrease|can only be set once"
+msgstr ""
+
+msgid "TemporaryStorageIncrease|can only be set with more than %{percentage}%% usage"
+msgstr ""
+
+msgid "Terminal"
+msgstr ""
+
+msgid "Terminal for environment"
+msgstr ""
+
+msgid "Terminal sync service is running"
+msgstr ""
+
+msgid "Terms"
+msgstr ""
+
+msgid "Terms of Service Agreement and Privacy Policy"
+msgstr ""
+
+msgid "Terms of Service and Privacy Policy"
+msgstr ""
+
+msgid "Terms of service"
+msgstr ""
+
+msgid "Terraform Module Registry"
+msgstr ""
+
+msgid "Terraform modules"
+msgstr ""
+
+msgid "TerraformBanner|Learn more about GitLab's Backend State"
+msgstr ""
+
+msgid "TerraformBanner|The GitLab managed Terraform state backend can store your Terraform state easily and securely, and spares you from setting up additional remote resources. Its features include: versioning, encryption of the state file both in transit and at rest, locking, and remote Terraform plan/apply execution."
+msgstr ""
+
+msgid "TerraformBanner|Using Terraform? Try the GitLab Managed Terraform State"
+msgstr ""
+
+msgid "TerraformLimits|Learn more about Terraform limits."
+msgstr ""
+
+msgid "TerraformLimits|Limits for Terraform features"
+msgstr ""
+
+msgid "TerraformLimits|Maximum file size (in bytes) of Terraform state files. Set to 0 for no limit."
+msgstr ""
+
+msgid "TerraformLimits|Terraform limits"
+msgstr ""
+
+msgid "TerraformLimits|Terraform state size limit (bytes)"
+msgstr ""
+
+msgid "Terraform|%{name} successfully removed"
+msgstr ""
+
+msgid "Terraform|%{strong_start}%{number}%{strong_end} Terraform report failed to generate"
+msgid_plural "Terraform|%{strong_start}%{number}%{strong_end} Terraform reports failed to generate"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Terraform|%{strong_start}%{number}%{strong_end} Terraform report was generated in your pipelines"
+msgid_plural "Terraform|%{strong_start}%{number}%{strong_end} Terraform reports were generated in your pipelines"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Terraform|%{user} updated %{timeAgo}"
+msgstr ""
+
+msgid "Terraform|A Terraform report failed to generate."
+msgstr ""
+
+msgid "Terraform|A Terraform report was generated in your pipelines."
+msgstr ""
+
+msgid "Terraform|Actions"
+msgstr ""
+
+msgid "Terraform|An error occurred while changing the state file"
+msgstr ""
+
+msgid "Terraform|An error occurred while loading your Terraform States"
+msgstr ""
+
+msgid "Terraform|Are you sure you want to remove the Terraform State %{name}?"
+msgstr ""
+
+msgid "Terraform|Cancel"
+msgstr ""
+
+msgid "Terraform|Cannot remove a locked state"
+msgstr ""
+
+msgid "Terraform|Copy Terraform init command"
+msgstr ""
+
+msgid "Terraform|Deletion in progress"
+msgstr ""
+
+msgid "Terraform|Details"
+msgstr ""
+
+msgid "Terraform|Download JSON"
+msgstr ""
+
+msgid "Terraform|Explore documentation"
+msgstr ""
+
+msgid "Terraform|Failed to load Terraform reports"
+msgstr ""
+
+msgid "Terraform|Generating the report caused an error."
+msgstr ""
+
+msgid "Terraform|Job status"
+msgstr ""
+
+msgid "Terraform|Loading Terraform reports..."
+msgstr ""
+
+msgid "Terraform|Lock"
+msgstr ""
+
+msgid "Terraform|Locked"
+msgstr ""
+
+msgid "Terraform|Locked by %{user} %{timeAgo}"
+msgstr ""
+
+msgid "Terraform|Locking state"
+msgstr ""
+
+msgid "Terraform|Name"
+msgstr ""
+
+msgid "Terraform|Pipeline"
+msgstr ""
+
+msgid "Terraform|Remove"
+msgstr ""
+
+msgid "Terraform|Remove state file and versions"
+msgstr ""
+
+msgid "Terraform|Removed"
+msgstr ""
+
+msgid "Terraform|Removing"
+msgstr ""
+
+msgid "Terraform|Reported Resource Changes: %{addNum} to add, %{changeNum} to change, %{deleteNum} to delete"
+msgstr ""
+
+msgid "Terraform|Terraform init command"
+msgstr ""
+
+msgid "Terraform|Terraform states"
+msgstr ""
+
+msgid "Terraform|The job %{strong_start}%{name}%{strong_end} failed to generate a report."
+msgstr ""
+
+msgid "Terraform|The job %{strong_start}%{name}%{strong_end} generated a report."
+msgstr ""
+
+msgid "Terraform|To get access to this terraform state from your local computer, run the following command at the command line. The first line requires a personal access token with API read and write access. %{linkStart}How do I create a personal access token?%{linkEnd}."
+msgstr ""
+
+msgid "Terraform|To remove the State file and its versions, type %{name} to confirm:"
+msgstr ""
+
+msgid "Terraform|Unknown User"
+msgstr ""
+
+msgid "Terraform|Unlock"
+msgstr ""
+
+msgid "Terraform|Unlocking state"
+msgstr ""
+
+msgid "Terraform|You are about to remove the state file %{name}. This will permanently delete all the State versions and history. The infrastructure provisioned previously will remain intact, and only the state file with all its versions will be removed. This action cannot be undone."
+msgstr ""
+
+msgid "Terraform|You have insufficient permissions to delete this state"
+msgstr ""
+
+msgid "Terraform|Your project doesn't have any Terraform state files"
+msgstr ""
+
+msgid "Test"
+msgstr ""
+
+msgid "Test case"
+msgstr ""
+
+msgid "Test cases"
+msgstr ""
+
+msgid "Test coverage value for this pipeline was calculated by the coverage value of %d job."
+msgid_plural "Test coverage value for this pipeline was calculated by averaging the resulting coverage values of %d jobs."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Test coverage: %d hit"
+msgid_plural "Test coverage: %d hits"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Test generated by AI"
+msgstr ""
+
+msgid "Test settings"
+msgstr ""
+
+msgid "Test summary"
+msgstr ""
+
+msgid "TestCases|Move test case"
+msgstr ""
+
+msgid "TestCases|Moving test case"
+msgstr ""
+
+msgid "TestCases|New test case"
+msgstr ""
+
+msgid "TestCases|Search test cases"
+msgstr ""
+
+msgid "TestCases|Something went wrong while adding test case to a to-do item."
+msgstr ""
+
+msgid "TestCases|Something went wrong while creating a test case."
+msgstr ""
+
+msgid "TestCases|Something went wrong while fetching test case."
+msgstr ""
+
+msgid "TestCases|Something went wrong while fetching test cases list."
+msgstr ""
+
+msgid "TestCases|Something went wrong while marking test case to-do item as done."
+msgstr ""
+
+msgid "TestCases|Something went wrong while moving test case."
+msgstr ""
+
+msgid "TestCases|Something went wrong while updating the test case labels."
+msgstr ""
+
+msgid "TestCases|Something went wrong while updating the test case."
+msgstr ""
+
+msgid "TestCases|Submit test case"
+msgstr ""
+
+msgid "TestHooks|Ensure one of your projects has merge requests."
+msgstr ""
+
+msgid "TestHooks|Ensure the project has CI jobs."
+msgstr ""
+
+msgid "TestHooks|Ensure the project has CI pipelines."
+msgstr ""
+
+msgid "TestHooks|Ensure the project has deployments."
+msgstr ""
+
+msgid "TestHooks|Ensure the project has issues."
+msgstr ""
+
+msgid "TestHooks|Ensure the project has merge requests."
+msgstr ""
+
+msgid "TestHooks|Ensure the project has notes."
+msgstr ""
+
+msgid "TestHooks|Ensure the project has releases."
+msgstr ""
+
+msgid "TestHooks|Ensure the wiki is enabled and has pages."
+msgstr ""
+
+msgid "TestReports|%{count} errors"
+msgstr ""
+
+msgid "TestReports|%{count} failures"
+msgstr ""
+
+msgid "TestReports|%{count} tests"
+msgstr ""
+
+msgid "TestReports|%{rate}%{sign} success rate"
+msgstr ""
+
+msgid "TestReports|Attachment"
+msgstr ""
+
+msgid "TestReports|Copy test name to rerun locally"
+msgstr ""
+
+msgid "TestReports|Job artifacts are expired"
+msgstr ""
+
+msgid "TestReports|Jobs"
+msgstr ""
+
+msgid "TestReports|Learn how to upload pipeline test reports"
+msgstr ""
+
+msgid "TestReports|Learn more about pipeline test reports"
+msgstr ""
+
+msgid "TestReports|No test cases were found in the test report."
+msgstr ""
+
+msgid "TestReports|Test reports require job artifacts but all artifacts are expired. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "TestReports|There are no test cases to display."
+msgstr ""
+
+msgid "TestReports|There are no test reports for this pipeline"
+msgstr ""
+
+msgid "TestReports|There are no test suites to show."
+msgstr ""
+
+msgid "TestReports|There are no tests to display"
+msgstr ""
+
+msgid "TestReports|There was an error fetching the summary."
+msgstr ""
+
+msgid "TestReports|There was an error fetching the test suite."
+msgstr ""
+
+msgid "TestReports|You can configure your job to use unit test reports, and GitLab displays a report here and in the related merge request."
+msgstr ""
+
+msgid "Tests"
+msgstr ""
+
+msgid "Text"
+msgstr ""
+
+msgid "Text (optional)"
+msgstr ""
+
+msgid "Text added to the body of all email messages. %{character_limit} character limit"
+msgstr ""
+
+msgid "Text added to the body of user deactivation email messages. 1000 character limit."
+msgstr ""
+
+msgid "Text style"
+msgstr ""
+
+msgid "Thank you for your business."
+msgstr ""
+
+msgid "Thank you for your report. A GitLab administrator will look into it shortly."
+msgstr ""
+
+msgid "Thank you for your support request! We are tracking your request as ticket #%{issue_iid}, and will respond as soon as we can."
+msgstr ""
+
+msgid "Thanks for signing up to GitLab!"
+msgstr ""
+
+msgid "Thanks for your purchase!"
+msgstr ""
+
+msgid "That's OK, I don't want to renew"
+msgstr ""
+
+msgid "That's it, well done!"
+msgstr ""
+
+msgid "The %{plan_name} is no longer available to purchase. For more information about how this will impact you, check our %{faq_link_start}frequently asked questions%{faq_link_end}."
+msgstr ""
+
+msgid "The %{true_up_start}true-up model%{true_up_end} allows having more users, and additional users will incur a retroactive charge on renewal."
+msgstr ""
+
+msgid "The %{type} contains the following error:"
+msgid_plural "The %{type} contains the following errors:"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "The API key used by GitLab for accessing the Spam Check service endpoint."
+msgstr ""
+
+msgid "The CSV export will be created in the background. Once finished, it will be sent to %{email} in an attachment."
+msgstr ""
+
+msgid "The GitLab subscription service (customers.gitlab.com) is currently experiencing an outage. You can monitor the status and get updates at %{linkStart}status.gitlab.com%{linkEnd}."
+msgstr ""
+
+msgid "The GitLab user to which the Jira user %{jiraDisplayName} will be mapped"
+msgstr ""
+
+msgid "The ID of the application."
+msgstr ""
+
+msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project"
+msgstr ""
+
+msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
+msgstr ""
+
+msgid "The Mattermost token."
+msgstr ""
+
+msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
+msgstr ""
+
+msgid "The Snowplow cookie domain."
+msgstr ""
+
+msgid "The URL of the Jenkins server."
+msgstr ""
+
+msgid "The URL should start with http:// or https://"
+msgstr ""
+
+msgid "The URLs for connecting to Elasticsearch. For clustering, add the URLs separated by commas."
+msgstr ""
+
+msgid "The `/merge` quick action requires the SHA of the head of the branch."
+msgstr ""
+
+msgid "The application will be used where the client secret can be kept confidential. Native mobile apps and Single Page Apps are considered non-confidential."
+msgstr ""
+
+msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
+msgstr ""
+
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
+msgid "The branch for this project has no active pipeline configuration."
+msgstr ""
+
+msgid "The branch or tag does not exist"
+msgstr ""
+
+msgid "The branch to merge into."
+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 ""
+
+msgid "The comment you are editing has been changed by another user. Would you like to keep your changes and overwrite the new description or discard your changes?"
+msgstr ""
+
+msgid "The commit does not exist"
+msgstr ""
+
+msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
+msgstr ""
+
+msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination."
+msgstr ""
+
+msgid "The contact does not belong to the issue group's root ancestor"
+msgstr ""
+
+msgid "The content editor may change the markdown formatting style of the document, which may not match your original markdown style."
+msgstr ""
+
+msgid "The content for this wiki page failed to load. To fix this error, reload the page."
+msgstr ""
+
+msgid "The content for this wiki page failed to render."
+msgstr ""
+
+msgid "The content of this page is not encoded in UTF-8. Edits can only be made via the Git repository."
+msgstr ""
+
+msgid "The contents of this group, its subgroups and projects will be permanently removed after %{deletion_adjourned_period} days on %{date}. After this point, your data cannot be recovered."
+msgstr ""
+
+msgid "The current epic"
+msgstr ""
+
+msgid "The current incident"
+msgstr ""
+
+msgid "The current issue"
+msgstr ""
+
+msgid "The current user is not authorized to access the job log."
+msgstr ""
+
+msgid "The current user is not authorized to create the pipeline schedule"
+msgstr ""
+
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
+msgid "The current user is not authorized to set pipeline schedule variables"
+msgstr ""
+
+msgid "The current user is not authorized to update the pipeline schedule"
+msgstr ""
+
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
+msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
+msgstr ""
+
+msgid "The date when the release is ready."
+msgstr ""
+
+msgid "The default CI/CD configuration file and path for new projects."
+msgstr ""
+
+msgid "The default branch for this project has been changed. Please update your bookmarks."
+msgstr ""
+
+msgid "The default branch of this project clashes with another ref"
+msgstr ""
+
+msgid "The dependency list details information about the components used within your project."
+msgstr ""
+
+msgid "The deployment of this job to %{environmentLink} did not succeed."
+msgstr ""
+
+msgid "The diagrams.net editor could not be loaded."
+msgstr ""
+
+msgid "The directory has been successfully created."
+msgstr ""
+
+msgid "The discussion in this %{issuableDisplayName} is locked. Only project members can comment."
+msgstr ""
+
+msgid "The discussion in this %{issuable} is locked. Only project members can comment."
+msgstr ""
+
+msgid "The discussion in this %{noteableTypeText} is locked."
+msgstr ""
+
+msgid "The discussion in this merge request is locked."
+msgstr ""
+
+msgid "The domain you entered is misformatted."
+msgstr ""
+
+msgid "The domain you entered is not allowed."
+msgstr ""
+
+msgid "The download link will expire in 24 hours."
+msgstr ""
+
+msgid "The environment tiers must be from %{environment_tiers}."
+msgstr ""
+
+msgid "The errors we encountered were:"
+msgstr ""
+
+msgid "The file containing the export is not available yet; it may still be transferring. Please try again later."
+msgstr ""
+
+msgid "The file could not be displayed because it is empty or larger than the maximum file size indexed (%{size})."
+msgstr ""
+
+msgid "The file has been successfully created."
+msgstr ""
+
+msgid "The file has been successfully deleted."
+msgstr ""
+
+msgid "The file you're about to delete is tracked by LFS"
+msgstr ""
+
+msgid "The finding is not a vulnerability because it is part of a test or is test data."
+msgstr ""
+
+msgid "The following %{user} can also merge into this branch: %{branch}"
+msgstr ""
+
+msgid "The following %{user} can also push to this branch: %{branch}"
+msgstr ""
+
+msgid "The following Personal Access Token was revoked by an administrator, %{username}."
+msgstr ""
+
+msgid "The following SSH key was deleted by an administrator, %{username}."
+msgstr ""
+
+msgid "The following files or directories can only be modified by the user who locked them."
+msgstr ""
+
+msgid "The following items will NOT be exported:"
+msgstr ""
+
+msgid "The following items will be exported:"
+msgstr ""
+
+msgid "The following personal access token: %{token_names} was revoked, because a new policy to expire personal access tokens were set."
+msgid_plural "The following personal access tokens: %{token_names} were revoked, because a new policy to expire personal access tokens were set."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "The following personal access tokens have expired:"
+msgstr ""
+
+msgid "The fork relationship has been removed."
+msgstr ""
+
+msgid "The form contains the following error:"
+msgid_plural "The form contains the following errors:"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "The form contains the following warning:"
+msgstr ""
+
+msgid "The git server, Gitaly, is not available at this time. Please contact your administrator."
+msgstr ""
+
+msgid "The global settings require you to enable Two-Factor Authentication for your account."
+msgstr ""
+
+msgid "The group export can be downloaded from:"
+msgstr ""
+
+msgid "The group has already been shared with this group"
+msgstr ""
+
+msgid "The group settings for %{group_links} require you to enable Two-Factor Authentication for your account. You can %{leave_group_links}."
+msgstr ""
+
+msgid "The group_project_ids parameter is only allowed for a group"
+msgstr ""
+
+msgid "The hook URL has changed, and this log entry cannot be retried"
+msgstr ""
+
+msgid "The hostname of your PlantUML server."
+msgstr ""
+
+msgid "The hostname of your Snowplow collector."
+msgstr ""
+
+msgid "The hostname of your diagrams.net server."
+msgstr ""
+
+msgid "The import cannot be canceled because it is %{project_status}"
+msgstr ""
+
+msgid "The import is not complete."
+msgstr ""
+
+msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination."
+msgstr ""
+
+msgid "The interval must be one of %{intervals}."
+msgstr ""
+
+msgid "The invitation can not be found with the provided invite token."
+msgstr ""
+
+msgid "The invitation could not be accepted."
+msgstr ""
+
+msgid "The invitation could not be declined."
+msgstr ""
+
+msgid "The invitation has already been accepted."
+msgstr ""
+
+msgid "The invitation was successfully resent."
+msgstr ""
+
+msgid "The issue was successfully promoted to an epic. Redirecting to epic..."
+msgstr ""
+
+msgid "The last owner cannot be set to awaiting"
+msgstr ""
+
+msgid "The latest artifacts created by jobs in the most recent successful pipeline will be stored."
+msgstr ""
+
+msgid "The latest pipeline for this merge request did not succeed. The latest changes are unverified."
+msgstr ""
+
+msgid "The latest pipeline for this merge request has failed."
+msgstr ""
+
+msgid "The license key is invalid."
+msgstr ""
+
+msgid "The license key is invalid. Make sure it is exactly as you received it from GitLab Inc."
+msgstr ""
+
+msgid "The license was removed. GitLab has fallen back on the previous license."
+msgstr ""
+
+msgid "The license was removed. GitLab now no longer has a valid license."
+msgstr ""
+
+msgid "The license was successfully uploaded and is now active. You can see the details below."
+msgstr ""
+
+msgid "The license was successfully uploaded and will be active from %{starts_at}. You can see the details below."
+msgstr ""
+
+msgid "The license you uploaded is invalid. If the issue persists, contact support at %{link}."
+msgstr ""
+
+msgid "The list creation wizard is already open"
+msgstr ""
+
+msgid "The map can not be displayed because there was an error loading the GeoJSON file."
+msgstr ""
+
+msgid "The maximum amount of time users have to set up two-factor authentication before it's enforced."
+msgstr ""
+
+msgid "The maximum compute minutes that jobs in a namespace can use on shared runners each month. 0 for unlimited."
+msgstr ""
+
+msgid "The maximum file size allowed is %{size}."
+msgstr ""
+
+msgid "The maximum file size for job artifacts."
+msgstr ""
+
+msgid "The maximum file size in megabytes for individual job artifacts."
+msgstr ""
+
+msgid "The maximum file size is %{size}."
+msgstr ""
+
+msgid "The maximum number of tags that a single worker accepts for cleanup. If the number of tags goes above this limit, the list of tags to delete is truncated to this number. To remove this limit, set it to 0."
+msgstr ""
+
+msgid "The merge conflicts for this merge request cannot be resolved through GitLab. Please try to resolve them locally."
+msgstr ""
+
+msgid "The merge conflicts for this merge request have already been resolved."
+msgstr ""
+
+msgid "The merge conflicts for this merge request have already been resolved. Please return to the merge request."
+msgstr ""
+
+msgid "The metric must be one of %{metrics}."
+msgstr ""
+
+msgid "The name \"%{name}\" is already taken in this directory."
+msgstr ""
+
+msgid "The name of the CI/CD configuration file. A path relative to the root directory is optional (for example %{code_open}my/path/.myfile.yml%{code_close})."
+msgstr ""
+
+msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
+msgstr ""
+
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
+msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
+msgstr ""
+
+msgid "The number of merge requests merged by month."
+msgstr ""
+
+msgid "The number of times an upload record could not find its file"
+msgstr ""
+
+msgid "The page could not be displayed because it timed out."
+msgstr ""
+
+msgid "The parent epic is confidential and can only contain confidential epics and issues"
+msgstr ""
+
+msgid "The password for the Jenkins server."
+msgstr ""
+
+msgid "The password for your GitLab account on %{gitlab_url} has successfully been changed."
+msgstr ""
+
+msgid "The password for your GitLab account on %{link_to_gitlab} has successfully been changed."
+msgstr ""
+
+msgid "The pipeline has been deleted"
+msgstr ""
+
+msgid "The project has already been added to your dashboard."
+msgstr ""
+
+msgid "The project is still being deleted. Please try again later."
+msgstr ""
+
+msgid "The project size exceeds the export limit."
+msgstr ""
+
+msgid "The project visibility may have been made more restrictive if the parent group's visibility changed while the deletion was scheduled."
+msgstr ""
+
+msgid "The project was successfully forked."
+msgstr ""
+
+msgid "The project was successfully imported."
+msgstr ""
+
+msgid "The project-group link could not be removed."
+msgstr ""
+
+msgid "The related CI build failed."
+msgstr ""
+
+msgid "The remote mirror URL is invalid."
+msgstr ""
+
+msgid "The remote mirror took to long to complete."
+msgstr ""
+
+msgid "The remote repository is being updated..."
+msgstr ""
+
+msgid "The report artifact provided by the CI build couldn't be parsed."
+msgstr ""
+
+msgid "The report has been successfully prepared."
+msgstr ""
+
+msgid "The repository can be committed to, and issues, comments and other entities can be created."
+msgstr ""
+
+msgid "The repository for this project does not exist."
+msgstr ""
+
+msgid "The repository for this project is empty"
+msgstr ""
+
+msgid "The repository is being updated..."
+msgstr ""
+
+msgid "The repository must be accessible over %{code_open}http://%{code_close}, %{code_open}https://%{code_close} or %{code_open}git://%{code_close}."
+msgstr ""
+
+msgid "The repository must be accessible over %{code_open}http://%{code_close}, %{code_open}https://%{code_close}, %{code_open}ssh://%{code_close} or %{code_open}git://%{code_close}."
+msgstr ""
+
+msgid "The resource that you are attempting to access does not exist or you don't have permission to perform this action."
+msgstr ""
+
+msgid "The scan has been created."
+msgstr ""
+
+msgid "The secret is only available when you create the application or renew the secret."
+msgstr ""
+
+msgid "The selected image is not a valid SVG diagram"
+msgstr ""
+
+msgid "The selected image is not an asset uploaded in the application"
+msgstr ""
+
+msgid "The selected image is too large."
+msgstr ""
+
+msgid "The selected project is not available"
+msgstr ""
+
+msgid "The snippet can be accessed without any authentication."
+msgstr ""
+
+msgid "The snippet can be accessed without any authentication. To embed snippets, a project must be public."
+msgstr ""
+
+msgid "The snippet is visible only to me."
+msgstr ""
+
+msgid "The snippet is visible only to project members."
+msgstr ""
+
+msgid "The snippet is visible to any logged in user except external users."
+msgstr ""
+
+msgid "The source project is a fork"
+msgstr ""
+
+msgid "The source project of this merge request has been removed."
+msgstr ""
+
+msgid "The source topic and the target topic are identical."
+msgstr ""
+
+msgid "The source topic is not a topic."
+msgstr ""
+
+msgid "The specified tab is invalid, please select another"
+msgstr ""
+
+msgid "The start date must be earlier than the end date."
+msgstr ""
+
+msgid "The subdomain setting."
+msgstr ""
+
+msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
+msgstr ""
+
+msgid "The tag name can't be changed for an existing release."
+msgstr ""
+
+msgid "The target topic is not a topic."
+msgstr ""
+
+msgid "The time period in seconds that the maximum requests per project limit applies to."
+msgstr ""
+
+msgid "The update action will time out after %{number_of_minutes} minutes. For big repositories, use a clone/push combination."
+msgstr ""
+
+msgid "The uploaded file was invalid. Supported file extensions are %{extensions}."
+msgstr ""
+
+msgid "The user is being deleted."
+msgstr ""
+
+msgid "The user map has been saved. Continue by selecting the projects you want to import."
+msgstr ""
+
+msgid "The user map is a mapping of the FogBugz users that participated on your projects to the way their email address and usernames will be imported into GitLab. You can change this by populating the table below."
+msgstr ""
+
+msgid "The user you are trying to approve is not pending approval"
+msgstr ""
+
+msgid "The user you are trying to deactivate has been active in the past %{minimum_inactive_days} days and cannot be deactivated"
+msgstr ""
+
+msgid "The username for the Jenkins server."
+msgstr ""
+
+msgid "The value of the provided variable exceeds the %{count} character limit"
+msgstr ""
+
+msgid "The vulnerability is known, and has not been remediated or mitigated, but is considered to be an acceptable business risk."
+msgstr ""
+
+msgid "The vulnerability is known, and has not been remediated or mitigated, but is considered to be in a part of the application that will not be updated."
+msgstr ""
+
+msgid "The vulnerability is no longer detected. Verify the vulnerability has been fixed or removed before changing its status."
+msgstr ""
+
+msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
+msgstr ""
+
+msgid "There are currently no merge request branch targets"
+msgstr ""
+
+msgid "There are currently no mirrored repositories."
+msgstr ""
+
+msgid "There are no GPG keys associated with this account."
+msgstr ""
+
+msgid "There are no GPG keys with access to your account."
+msgstr ""
+
+msgid "There are no SSH keys associated with this account."
+msgstr ""
+
+msgid "There are no SSH keys with access to your account."
+msgstr ""
+
+msgid "There are no Spam Logs"
+msgstr ""
+
+msgid "There are no approval rules for the given `represent_as` parameter. Use a valid User/Group/Role name instead."
+msgstr ""
+
+msgid "There are no archived requirements"
+msgstr ""
+
+msgid "There are no archived test cases"
+msgstr ""
+
+msgid "There are no changed labels"
+msgstr ""
+
+msgid "There are no changes"
+msgstr ""
+
+msgid "There are no charts configured for this page"
+msgstr ""
+
+msgid "There are no closed epics"
+msgstr ""
+
+msgid "There are no closed issues"
+msgstr ""
+
+msgid "There are no closed merge requests"
+msgstr ""
+
+msgid "There are no commits yet."
+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 ""
+
+msgid "There are no issues to show"
+msgstr ""
+
+msgid "There are no issues with the selected labels"
+msgstr ""
+
+msgid "There are no matching files"
+msgstr ""
+
+msgid "There are no open epics"
+msgstr ""
+
+msgid "There are no open issues"
+msgstr ""
+
+msgid "There are no open merge requests"
+msgstr ""
+
+msgid "There are no open requirements"
+msgstr ""
+
+msgid "There are no open test cases"
+msgstr ""
+
+msgid "There are no packages yet"
+msgstr ""
+
+msgid "There are no secure files yet."
+msgstr ""
+
+msgid "There are no topics to show."
+msgstr ""
+
+msgid "There are no variables yet."
+msgstr ""
+
+msgid "There are running deployments on the environment. Please retry later."
+msgstr ""
+
+msgid "There are several file size limits in place for the Package Registry."
+msgstr ""
+
+msgid "There are several rate limits in place to protect the system."
+msgstr ""
+
+msgid "There are several size limits in place."
+msgstr ""
+
+msgid "There is already a repository with that name on disk"
+msgstr ""
+
+msgid "There is already a to-do item for this design."
+msgstr ""
+
+msgid "There is no chart data available."
+msgstr ""
+
+msgid "There is no data available."
+msgstr ""
+
+msgid "There is no data available. Please change your selection."
+msgstr ""
+
+msgid "There is no table data available."
+msgstr ""
+
+msgid "There is too much data to calculate. Please change your selection."
+msgstr ""
+
+msgid "There was a problem communicating with your device."
+msgstr ""
+
+msgid "There was a problem creating the incident. Please try again."
+msgstr ""
+
+msgid "There was a problem fetching CRM contacts."
+msgstr ""
+
+msgid "There was a problem fetching CRM organizations."
+msgstr ""
+
+msgid "There was a problem fetching branches."
+msgstr ""
+
+msgid "There was a problem fetching emoji."
+msgstr ""
+
+msgid "There was a problem fetching epics."
+msgstr ""
+
+msgid "There was a problem fetching failed jobs"
+msgstr ""
+
+msgid "There was a problem fetching groups."
+msgstr ""
+
+msgid "There was a problem fetching iterations."
+msgstr ""
+
+msgid "There was a problem fetching labels."
+msgstr ""
+
+msgid "There was a problem fetching latest labels."
+msgstr ""
+
+msgid "There was a problem fetching linked pipelines."
+msgstr ""
+
+msgid "There was a problem fetching milestones."
+msgstr ""
+
+msgid "There was a problem fetching project branches."
+msgstr ""
+
+msgid "There was a problem fetching project tags."
+msgstr ""
+
+msgid "There was a problem fetching project users."
+msgstr ""
+
+msgid "There was a problem fetching projects."
+msgstr ""
+
+msgid "There was a problem fetching recent groups."
+msgstr ""
+
+msgid "There was a problem fetching recent projects."
+msgstr ""
+
+msgid "There was a problem fetching releases."
+msgstr ""
+
+msgid "There was a problem fetching the job token scope value"
+msgstr ""
+
+msgid "There was a problem fetching the keep latest artifacts setting."
+msgstr ""
+
+msgid "There was a problem fetching the latest pipeline status."
+msgstr ""
+
+msgid "There was a problem fetching the pipeline stage."
+msgstr ""
+
+msgid "There was a problem fetching the pipeline stages."
+msgstr ""
+
+msgid "There was a problem fetching the projects"
+msgstr ""
+
+msgid "There was a problem fetching users."
+msgstr ""
+
+msgid "There was a problem handling the pipeline data."
+msgstr ""
+
+msgid "There was a problem loading this project's readme content."
+msgstr ""
+
+msgid "There was a problem sending the confirmation email"
+msgstr ""
+
+msgid "There was a problem updating the keep latest artifacts setting."
+msgstr ""
+
+msgid "There was an error creating the issue"
+msgstr ""
+
+msgid "There was an error fetching configuration for charts"
+msgstr ""
+
+msgid "There was an error fetching data for the selected stage"
+msgstr ""
+
+msgid "There was an error fetching data for the tasks by type chart"
+msgstr ""
+
+msgid "There was an error fetching label data for the selected group"
+msgstr ""
+
+msgid "There was an error fetching median data for stages"
+msgstr ""
+
+msgid "There was an error fetching projects"
+msgstr ""
+
+msgid "There was an error fetching stage total counts"
+msgstr ""
+
+msgid "There was an error fetching the %{replicableType}"
+msgstr ""
+
+msgid "There was an error fetching the cancelable jobs."
+msgstr ""
+
+msgid "There was an error fetching the deploy freezes."
+msgstr ""
+
+msgid "There was an error fetching the environments information."
+msgstr ""
+
+msgid "There was an error fetching the job."
+msgstr ""
+
+msgid "There was an error fetching the jobs for your project."
+msgstr ""
+
+msgid "There was an error fetching the jobs."
+msgstr ""
+
+msgid "There was an error fetching the number of jobs for your project."
+msgstr ""
+
+msgid "There was an error fetching the number of jobs."
+msgstr ""
+
+msgid "There was an error fetching the top labels for the selected group"
+msgstr ""
+
+msgid "There was an error fetching the variables."
+msgstr ""
+
+msgid "There was an error fetching this merge request's pipelines."
+msgstr ""
+
+msgid "There was an error fetching value stream analytics stages."
+msgstr ""
+
+msgid "There was an error gathering the chart data"
+msgstr ""
+
+msgid "There was an error generating commit message."
+msgstr ""
+
+msgid "There was an error getting the epic participants."
+msgstr ""
+
+msgid "There was an error importing the Jira project."
+msgstr ""
+
+msgid "There was an error loading related feature flags"
+msgstr ""
+
+msgid "There was an error loading users activity calendar."
+msgstr ""
+
+msgid "There was an error parsing the data for this graph."
+msgstr ""
+
+msgid "There was an error removing the e-mail."
+msgstr ""
+
+msgid "There was an error retrieving LDAP groups. Please try again."
+msgstr ""
+
+msgid "There was an error retrieving the Jira users."
+msgstr ""
+
+msgid "There was an error running the job. Please try again."
+msgstr ""
+
+msgid "There was an error saving your changes."
+msgstr ""
+
+msgid "There was an error subscribing to this label."
+msgstr ""
+
+msgid "There was an error syncing project %{name}"
+msgstr ""
+
+msgid "There was an error trying to validate your query"
+msgstr ""
+
+msgid "There was an error updating the Maintenance Mode Settings"
+msgstr ""
+
+msgid "There was an error when reseting email token."
+msgstr ""
+
+msgid "There was an error when subscribing to this label."
+msgstr ""
+
+msgid "There was an error when unsubscribing from this label."
+msgstr ""
+
+msgid "There was an error while fetching the chart data. Please refresh the page to try again."
+msgstr ""
+
+msgid "There was an error while fetching the table data. Please refresh the page to try again."
+msgstr ""
+
+msgid "There was an error while fetching value stream analytics data."
+msgstr ""
+
+msgid "There was an error while fetching value stream analytics duration data."
+msgstr ""
+
+msgid "There was an error while retrying this job"
+msgstr ""
+
+msgid "There was an error with the reCAPTCHA. Please solve the reCAPTCHA again."
+msgstr ""
+
+msgid "There was an summarizing your pending comments."
+msgstr ""
+
+msgid "These branches already have an open merge request: %{link_to_mr}. Select a different source or target branch."
+msgstr ""
+
+msgid "These dates affect how your epics appear in the roadmap. Set a fixed date or one inherited from the milestones assigned to issues in this epic."
+msgstr ""
+
+msgid "These examples show common methods of triggering a pipeline with a pipeline trigger token. The URL and ID for this project is prefilled."
+msgstr ""
+
+msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
+msgstr ""
+
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
+msgid "These runners are shared across projects in this group."
+msgstr ""
+
+msgid "These variables are inherited from the parent group."
+msgstr ""
+
+msgid "These will be sent to %{email} in an attachment once finished."
+msgstr ""
+
+msgid "Things to be aware of before transferring:"
+msgstr ""
+
+msgid "Third Party Advisory Link"
+msgstr ""
+
+msgid "This %{issuableDisplayName} is locked. Only project members can comment."
+msgstr ""
+
+msgid "This %{issuableType} is confidential and should only be visible to team members with at least Reporter access."
+msgstr ""
+
+msgid "This %{issuable} is hidden because its author has been banned."
+msgstr ""
+
+msgid "This %{issuable} is locked. Only %{strong_open}project members%{strong_close} can comment."
+msgstr ""
+
+msgid "This %{issuable} would exceed the maximum number of linked %{issuables} (%{limit})."
+msgstr ""
+
+msgid "This %{noteableTypeText} is %{confidentialLinkStart}confidential%{confidentialLinkEnd} and its %{lockedLinkStart}discussion is locked%{lockedLinkEnd}."
+msgstr ""
+
+msgid "This %{viewer} could not be displayed because %{reason}. You can %{options} instead."
+msgstr ""
+
+msgid "This Cron pattern is invalid"
+msgstr ""
+
+msgid "This GitLab instance does not provide any shared runners yet. Instance administrators can register shared runners in the admin area."
+msgstr ""
+
+msgid "This PDF is too large to display. Please download to view."
+msgstr ""
+
+msgid "This URL already exists."
+msgstr ""
+
+msgid "This action can lead to data loss. To prevent accidental actions we ask you to confirm your intention."
+msgstr ""
+
+msgid "This action cannot be undone, and will permanently delete the %{key} SSH key"
+msgstr ""
+
+msgid "This action cannot be undone, and will permanently delete the %{key} SSH key. All commits signed using this SSH key will be marked as unverified."
+msgstr ""
+
+msgid "This action deletes %{codeOpen}%{project_path_with_namespace}%{codeClose} and everything this project contains. %{strongOpen}There is no going back.%{strongClose}"
+msgstr ""
+
+msgid "This action deletes %{codeOpen}%{project_path_with_namespace}%{codeClose} on %{date} and everything this project contains."
+msgstr ""
+
+msgid "This action deletes %{codeOpen}%{project_path_with_namespace}%{codeClose} on %{date} and everything this project contains. %{strongOpen}There is no going back.%{strongClose}"
+msgstr ""
+
+msgid "This action will %{strongOpen}permanently remove%{strongClose} %{codeOpen}%{group}%{codeClose} %{strongOpen}immediately%{strongClose}."
+msgstr ""
+
+msgid "This also resolves all related threads"
+msgstr ""
+
+msgid "This also resolves this thread"
+msgstr ""
+
+msgid "This application was created by %{user_link}."
+msgstr ""
+
+msgid "This application was created for group %{group_link}."
+msgstr ""
+
+msgid "This application will be able to:"
+msgstr ""
+
+msgid "This archive has been requested too many times. Try again later."
+msgstr ""
+
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
+msgstr ""
+
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
+msgstr ""
+
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
+msgid "This block is self-referential"
+msgstr ""
+
+msgid "This board's scope is reduced"
+msgstr ""
+
+msgid "This branch has diverged from upstream."
+msgstr ""
+
+msgid "This change will remove %{strongOpen}ALL%{strongClose} Premium and Ultimate features for %{strongOpen}ALL%{strongClose} SaaS customers and make tests start failing."
+msgstr ""
+
+msgid "This chart could not be displayed"
+msgstr ""
+
+msgid "This clears repository check states for all projects in the database and cannot be undone. Are you sure?"
+msgstr ""
+
+msgid "This code snippet contains everything reflected in the configuration form. Copy and paste it into %{linkStart}.gitlab-ci.yml%{linkEnd} file and save your changes. Future %{scanType} scans will use these settings."
+msgstr ""
+
+msgid "This comment changed after you started editing it. Review the %{startTag}updated comment%{endTag} to ensure information is not lost."
+msgstr ""
+
+msgid "This comment was generated by AI"
+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 created in the GitLab UI, and signed with a GitLab-verified signature."
+msgstr ""
+
+msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
+msgstr ""
+
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was 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 and the committer email was verified to belong to the same user."
+msgstr ""
+
+msgid "This commit was signed with a verified signature, but the committer email is not associated with the GPG Key."
+msgstr ""
+
+msgid "This commit was signed with an %{strong_open}unverified%{strong_close} signature."
+msgstr ""
+
+msgid "This commit was signed with an unverified signature."
+msgstr ""
+
+msgid "This commit was signed with multiple signatures."
+msgstr ""
+
+msgid "This content could not be displayed because %{reason}. You can %{options} instead."
+msgstr ""
+
+msgid "This content could not be displayed because it is stored in LFS. You can %{linkStart}download it%{linkEnd} instead."
+msgstr ""
+
+msgid "This credential has expired"
+msgstr ""
+
+msgid "This deployment is not waiting for approvals."
+msgstr ""
+
+msgid "This deployment job does not run automatically and must be started manually, but it's older than the latest deployment, and therefore can't run."
+msgstr ""
+
+msgid "This deployment job does not run automatically and must be started manually, but you do not have access to this job's protected environment. The job can only be started by a project member allowed to deploy to the environment."
+msgstr ""
+
+msgid "This device has already been registered with us."
+msgstr ""
+
+msgid "This device has not been registered with us."
+msgstr ""
+
+msgid "This diff is collapsed."
+msgstr ""
+
+msgid "This directory"
+msgstr ""
+
+msgid "This domain is not verified. You will need to verify ownership before access is enabled."
+msgstr ""
+
+msgid "This email address does not look right, are you sure you typed it correctly?"
+msgstr ""
+
+msgid "This email supersedes any previous emails about scheduled deletion you may have received for %{project_link}."
+msgstr ""
+
+msgid "This email supersedes any previous emails about scheduled deletion you may have received for %{project_name}."
+msgstr ""
+
+msgid "This endpoint has been requested too many times. Try again later."
+msgstr ""
+
+msgid "This environment has no deployments yet."
+msgstr ""
+
+msgid "This environment is being deployed"
+msgstr ""
+
+msgid "This environment is being re-deployed"
+msgstr ""
+
+msgid "This environment is not protected."
+msgstr ""
+
+msgid "This environment's canary ingress has been updated recently. Please retry later."
+msgstr ""
+
+msgid "This epic already has the maximum number of child epics."
+msgstr ""
+
+msgid "This epic cannot be added. An epic cannot be added to itself."
+msgstr ""
+
+msgid "This epic cannot be added. It is already an ancestor of the parent epic."
+msgstr ""
+
+msgid "This epic cannot be added. It is already assigned to the parent epic."
+msgstr ""
+
+msgid "This epic cannot be added. One or more epics would exceed the maximum depth (%{max_depth}) from its most distant ancestor."
+msgstr ""
+
+msgid "This epic cannot be added. You don't have access to perform this action."
+msgstr ""
+
+msgid "This epic does not exist or you don't have sufficient permission."
+msgstr ""
+
+msgid "This feature is only allowed in groups that enable this feature."
+msgstr ""
+
+msgid "This feature requires local storage to be enabled"
+msgstr ""
+
+msgid "This field is auto-calculated based on the Progress score of its direct children. You can overwrite this value but it will be replaced by the auto-calculation anytime the Progress score of its direct children are updated."
+msgstr ""
+
+msgid "This field is required"
+msgstr ""
+
+msgid "This field is required."
+msgstr ""
+
+msgid "This file was modified for readability, and can't accept suggestions. Edit it directly."
+msgstr ""
+
+msgid "This form is disabled in preview"
+msgstr ""
+
+msgid "This group"
+msgstr ""
+
+msgid "This group and its subgroups and projects will be placed in a 'pending deletion' state for %{deletion_delayed_period} days, then permanently deleted on %{date}. The group can be fully restored before that date."
+msgstr ""
+
+msgid "This group can't be removed because it is linked to a subscription. To remove this group, %{linkStart}link the subscription%{linkEnd} with a different group."
+msgstr ""
+
+msgid "This group can't be transferred because it is linked to a subscription. To transfer this group, %{linkStart}link the subscription%{linkEnd} with a different group."
+msgstr ""
+
+msgid "This group cannot be invited to a project inside a group with enforced SSO"
+msgstr ""
+
+msgid "This group does not have any group runners yet."
+msgstr ""
+
+msgid "This group has been scheduled for permanent removal on %{date}"
+msgstr ""
+
+msgid "This group has no active access tokens."
+msgstr ""
+
+msgid "This group has no projects yet"
+msgstr ""
+
+msgid "This group is linked to a subscription"
+msgstr ""
+
+msgid "This group is not permitted to create compliance violations"
+msgstr ""
+
+msgid "This group, its subgroups and projects has been scheduled for removal on %{date}."
+msgstr ""
+
+msgid "This group, its subgroups and projects will be removed on %{date} since its parent group '%{parent_group_name}' has been scheduled for removal."
+msgstr ""
+
+msgid "This incident is already escalated with '%{escalation_policy_name}'."
+msgstr ""
+
+msgid "This instance is now read-only. Don't worry, your data is safe. To change to GitLab Free and restore write access to this instance, delete your expired license."
+msgstr ""
+
+msgid "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 ""
+
+msgid "This is a \"Ghost User\", created to hold all issues authored by users that have since been deleted. This user cannot be removed."
+msgstr ""
+
+msgid "This is a Jira user."
+msgstr ""
+
+msgid "This is a child pipeline within the parent pipeline"
+msgstr ""
+
+msgid "This is a confidential %{noteableTypeText}."
+msgstr ""
+
+msgid "This is a delayed job to run in %{remainingTime}"
+msgstr ""
+
+msgid "This is a list of devices that have logged into your account. Revoke any sessions that you do not recognize."
+msgstr ""
+
+msgid "This is a private email address %{helpIcon} generated just for you. Anyone who has it can create issues or merge requests as if they were you. If that happens, %{resetLinkStart}reset this token%{resetLinkEnd}."
+msgstr ""
+
+msgid "This is a security log of authentication events involving your account."
+msgstr ""
+
+msgid "This is an experimental feature developed by GitLab Incubation Engineering."
+msgstr ""
+
+msgid "This is the highest peak of users on your installation since the license started."
+msgstr ""
+
+msgid "This is the number of %{billable_users_link_start}billable users%{billable_users_link_end} on your installation, and this is the minimum number you need to purchase when you renew your license."
+msgstr ""
+
+msgid "This is the only time the secret is accessible. Copy the secret and store it securely."
+msgstr ""
+
+msgid "This is your current session"
+msgstr ""
+
+msgid "This issue cannot be assigned to a confidential epic because it is public."
+msgstr ""
+
+msgid "This issue cannot be made public because it belongs to a confidential epic."
+msgstr ""
+
+msgid "This issue is confidential and should only be visible to team members with at least Reporter access."
+msgstr ""
+
+msgid "This issue is currently blocked by the following issues:"
+msgstr ""
+
+msgid "This issue is hidden because its author has been banned."
+msgstr ""
+
+msgid "This issue is in a child epic of the filtered epic"
+msgstr ""
+
+msgid "This job could not start because it could not retrieve the needed artifacts%{punctuation}%{invalid_dependencies}"
+msgstr ""
+
+msgid "This job depends on upstream jobs that need to succeed in order for this job to be triggered"
+msgstr ""
+
+msgid "This job deploys to the protected environment \"%{environment}\", which requires approvals. You can approve or reject the deployment on the environment details page."
+msgstr ""
+
+msgid "This job does not have a trace."
+msgstr ""
+
+msgid "This job does not run automatically and must be started manually, but you do not have access to it."
+msgstr ""
+
+msgid "This job does not start automatically and must be started manually. You can add CI/CD variables below for last-minute configuration changes before starting the job."
+msgstr ""
+
+msgid "This job has been canceled"
+msgstr ""
+
+msgid "This job has been skipped"
+msgstr ""
+
+msgid "This job has not been triggered yet"
+msgstr ""
+
+msgid "This job has not started yet"
+msgstr ""
+
+msgid "This job is an out-of-date deployment to %{environmentLink} using cluster %{clusterNameOrLink} and namespace %{kubernetesNamespace}."
+msgstr ""
+
+msgid "This job is an out-of-date deployment to %{environmentLink} using cluster %{clusterNameOrLink} and namespace %{kubernetesNamespace}. View the %{deploymentLink}."
+msgstr ""
+
+msgid "This job is an out-of-date deployment to %{environmentLink} using cluster %{clusterNameOrLink}."
+msgstr ""
+
+msgid "This job is an out-of-date deployment to %{environmentLink} using cluster %{clusterNameOrLink}. View the %{deploymentLink}."
+msgstr ""
+
+msgid "This job is an out-of-date deployment to %{environmentLink}."
+msgstr ""
+
+msgid "This job is an out-of-date deployment to %{environmentLink}. View the %{deploymentLink}."
+msgstr ""
+
+msgid "This job is archived. Only the complete pipeline can be retried."
+msgstr ""
+
+msgid "This job is creating a deployment to %{environmentLink} using cluster %{clusterNameOrLink} and namespace %{kubernetesNamespace}."
+msgstr ""
+
+msgid "This job is creating a deployment to %{environmentLink} using cluster %{clusterNameOrLink} and namespace %{kubernetesNamespace}. This will overwrite the %{deploymentLink}."
+msgstr ""
+
+msgid "This job is creating a deployment to %{environmentLink} using cluster %{clusterNameOrLink}."
+msgstr ""
+
+msgid "This job is creating a deployment to %{environmentLink} using cluster %{clusterNameOrLink}. This will overwrite the %{deploymentLink}."
+msgstr ""
+
+msgid "This job is creating a deployment to %{environmentLink}."
+msgstr ""
+
+msgid "This job is creating a deployment to %{environmentLink}. This will overwrite the %{deploymentLink}."
+msgstr ""
+
+msgid "This job is deployed to %{environmentLink} using cluster %{clusterNameOrLink} and namespace %{kubernetesNamespace}."
+msgstr ""
+
+msgid "This job is deployed to %{environmentLink} using cluster %{clusterNameOrLink}."
+msgstr ""
+
+msgid "This job is deployed to %{environmentLink}."
+msgstr ""
+
+msgid "This job is in pending state and is waiting to be picked by a runner"
+msgstr ""
+
+msgid "This job is performing tasks that must complete before it can start"
+msgstr ""
+
+msgid "This job is preparing to start"
+msgstr ""
+
+msgid "This job is waiting for resource: "
+msgstr ""
+
+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 ""
+
+msgid "This license has already expired."
+msgstr ""
+
+msgid "This link points to external content"
+msgstr ""
+
+msgid "This link will redirect you to %{url}. If this URL looks wrong, please go back or close this window. Do you want to continue?"
+msgstr ""
+
+msgid "This may expose confidential information as the selected fork is in another namespace that can have other members."
+msgstr ""
+
+msgid "This means you can not push code until you create an empty repository or import existing one."
+msgstr ""
+
+msgid "This merge request does not have accessibility reports"
+msgstr ""
+
+msgid "This merge request does not have codequality reports"
+msgstr ""
+
+msgid "This merge request is closed. To apply this suggestion, edit this file directly."
+msgstr ""
+
+msgid "This merge request is from a private project to a public project."
+msgstr ""
+
+msgid "This merge request is from a private project to an internal project."
+msgstr ""
+
+msgid "This merge request is from an internal project to a public project."
+msgstr ""
+
+msgid "This merge request was merged. To apply this suggestion, edit this file directly."
+msgstr ""
+
+msgid "This only applies to repository indexing operations."
+msgstr ""
+
+msgid "This page is hosted on GitLab pages but contains user-generated content and may contain malicious code. Do not accept unless you trust the author and source."
+msgstr ""
+
+msgid "This page is unavailable because you are not allowed to read information across multiple projects."
+msgstr ""
+
+msgid "This pipeline makes use of a predefined CI/CD configuration enabled by %{strongStart}Auto DevOps.%{strongEnd}"
+msgstr ""
+
+msgid "This pipeline makes use of a predefined CI/CD configuration enabled by Auto DevOps."
+msgstr ""
+
+msgid "This pipeline was created by a schedule"
+msgstr ""
+
+msgid "This pipeline was created by a schedule."
+msgstr ""
+
+msgid "This pipeline was created by an API call authenticated with a trigger token"
+msgstr ""
+
+msgid "This pipeline was triggered using the api"
+msgstr ""
+
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "This process deletes the project repository and all related resources."
+msgstr ""
+
+msgid "This project can be restored until %{date}."
+msgstr ""
+
+msgid "This project cannot be %{visibilityLevel} because the visibility of %{openShowLink}%{name}%{closeShowLink} is %{visibility}. To make this project %{visibilityLevel}, you must first %{openEditLink}change the visibility%{closeEditLink} of the parent group."
+msgstr ""
+
+msgid "This project does not belong to a group and cannot make use of group runners."
+msgstr ""
+
+msgid "This project does not have %{service_desk_link_start}Service Desk%{service_desk_link_end} enabled, so the user who created the issue will no longer receive email notifications about new activity."
+msgstr ""
+
+msgid "This project does not have a wiki homepage yet"
+msgstr ""
+
+msgid "This project has no active access tokens."
+msgstr ""
+
+msgid "This project is %{strongStart}NOT%{strongEnd} a fork, and has the following:"
+msgstr ""
+
+msgid "This project is %{strongStart}NOT%{strongEnd} a fork. This process deletes the project repository and all related resources."
+msgstr ""
+
+msgid "This project is archived and cannot be commented on."
+msgstr ""
+
+msgid "This project is archived and read-only. To resume pull mirroring, unarchive the project."
+msgstr ""
+
+msgid "This project is hidden because its creator has been banned"
+msgstr ""
+
+msgid "This project is licensed under the %{strong_start}%{license_name}%{strong_end}."
+msgstr ""
+
+msgid "This project is mirrored from %{link}."
+msgstr ""
+
+msgid "This project is not subscribed to any project pipelines."
+msgstr ""
+
+msgid "This project is public. Non-members can guess the Service Desk email address, because it contains the group and project name. %{linkStart}How do I create a custom email address?%{linkEnd}"
+msgstr ""
+
+msgid "This project manages its dependencies using %{strong_start}%{manager_name}%{strong_end}"
+msgstr ""
+
+msgid "This project path either does not exist or you do not have access."
+msgstr ""
+
+msgid "This project reached the limit of custom domains. (Max %d)"
+msgstr ""
+
+msgid "This project was scheduled for deletion, but failed with the following message:"
+msgstr ""
+
+msgid "This project will be deleted on %{date}"
+msgstr ""
+
+msgid "This project will be deleted on %{date} since its parent group '%{parent_group_name}' has been scheduled for deletion."
+msgstr ""
+
+msgid "This project's pipeline configuration is located outside this repository"
+msgstr ""
+
+msgid "This release was created with a date in the past. Evidence collection at the moment of the release is unavailable."
+msgstr ""
+
+msgid "This report uses a supported MAJOR.MINOR schema version but the PATCH version doesn't match any vendored schema version. Validation will be attempted against version %{find_latest_patch_version}"
+msgstr ""
+
+msgid "This repository"
+msgstr ""
+
+msgid "This repository has never been checked."
+msgstr ""
+
+msgid "This repository is currently empty. A new Auto DevOps pipeline will be created after a new file has been pushed to a branch."
+msgstr ""
+
+msgid "This repository was last checked %{last_check_timestamp}. The check %{strong_start}failed.%{strong_end} See the 'repocheck.log' file for error messages."
+msgstr ""
+
+msgid "This repository was last checked %{last_check_timestamp}. The check passed."
+msgstr ""
+
+msgid "This runner will only run on pipelines triggered on protected branches"
+msgstr ""
+
+msgid "This setting can be overridden in each project."
+msgstr ""
+
+msgid "This setting has been configured at the instance level and cannot be overridden per group"
+msgstr ""
+
+msgid "This setting is allowed for forked projects only"
+msgstr ""
+
+msgid "This subscription is for"
+msgstr ""
+
+msgid "This suggestion already matches its content."
+msgstr ""
+
+msgid "This title already exists."
+msgstr ""
+
+msgid "This user cannot be unlocked manually from GitLab"
+msgstr ""
+
+msgid "This user has an unconfirmed email address (%{email}). You may force a confirmation."
+msgstr ""
+
+msgid "This user has an unconfirmed email address. You may force a confirmation."
+msgstr ""
+
+msgid "This user has no active %{accessTokenTypePlural}."
+msgstr ""
+
+msgid "This user has no identities"
+msgstr ""
+
+msgid "This user has no personal projects."
+msgstr ""
+
+msgid "This user has previously committed to the %{name} project."
+msgstr ""
+
+msgid "This user has the %{access} role in the %{name} project."
+msgstr ""
+
+msgid "This user is currently exempt from identity verification. Remove the exemption using the button below."
+msgstr ""
+
+msgid "This user is the author of this %{noteable}."
+msgstr ""
+
+msgid "This user is the author of this %{workItemType}."
+msgstr ""
+
+msgid "This vulnerability was automatically resolved because its vulnerability type was disabled in this project or removed from GitLab's default ruleset. For details about SAST rule changes, see https://docs.gitlab.com/ee/user/application_security/sast/rules#important-rule-changes."
+msgstr ""
+
+msgid "This will invalidate your registered applications and WebAuthn devices."
+msgstr ""
+
+msgid "This will remove the fork relationship between this project and %{fork_source}."
+msgstr ""
+
+msgid "This will remove the fork relationship between this project and other projects in the fork network."
+msgstr ""
+
+msgid "Thread options"
+msgstr ""
+
+msgid "Thread to reply to cannot be found"
+msgstr ""
+
+msgid "Threshold in bytes at which to compress Sidekiq job arguments."
+msgstr ""
+
+msgid "Threshold in bytes at which to reject Sidekiq jobs. Set this to 0 to if you don't want to limit Sidekiq jobs."
+msgstr ""
+
+msgid "Throughput"
+msgstr ""
+
+msgid "Thu"
+msgstr ""
+
+msgid "Thursday"
+msgstr ""
+
+msgid "TierBadgePopover|Enhance team productivity"
+msgstr ""
+
+msgid "TierBadgePopover|Explore paid plans"
+msgstr ""
+
+msgid "TierBadgePopover|Start a free trial"
+msgstr ""
+
+msgid "TierBadgePopover|This group and all its related projects use the %{tier} GitLab tier. %{copyEnd}"
+msgstr ""
+
+msgid "TierBadgePopover|This project uses the %{tier} GitLab tier. %{copyEnd}"
+msgstr ""
+
+msgid "TierBadgePopover|Want to enhance team productivity and access advanced features like Merge Approvals, Push rules, Epics, Code Review Analytics, and Container Scanning? Try all GitLab has to offer for free for 30 days. No credit card required."
+msgstr ""
+
+msgid "TierBadge|Free"
+msgstr ""
+
+msgid "Time"
+msgstr ""
+
+msgid "Time (in hours) that users are allowed to skip forced configuration of two-factor authentication."
+msgstr ""
+
+msgid "Time Display|12-hour: 2:34 PM"
+msgstr ""
+
+msgid "Time Display|24-hour: 14:34"
+msgstr ""
+
+msgid "Time Display|System"
+msgstr ""
+
+msgid "Time based: Yes"
+msgstr ""
+
+msgid "Time before an issue gets scheduled"
+msgstr ""
+
+msgid "Time before an issue starts implementation"
+msgstr ""
+
+msgid "Time between merge request creation and merge/close"
+msgstr ""
+
+msgid "Time estimate"
+msgstr ""
+
+msgid "Time from first comment to last commit"
+msgstr ""
+
+msgid "Time from first commit until first comment"
+msgstr ""
+
+msgid "Time from last commit to merge"
+msgstr ""
+
+msgid "Time of import: %{importTime}"
+msgstr ""
+
+msgid "Time remaining"
+msgstr ""
+
+msgid "Time spent"
+msgstr ""
+
+msgid "Time spent can't be zero."
+msgstr ""
+
+msgid "Time spent must be formatted correctly. For example: 1h 30m."
+msgstr ""
+
+msgid "Time to Merge"
+msgstr ""
+
+msgid "Time to Restore Service"
+msgstr ""
+
+msgid "Time to merge"
+msgstr ""
+
+msgid "Time to subtract exceeds the total time spent"
+msgstr ""
+
+msgid "Time tracking"
+msgstr ""
+
+msgid "Time tracking report"
+msgstr ""
+
+msgid "Time until first merge request"
+msgstr ""
+
+msgid "Time zone"
+msgstr ""
+
+msgid "TimeTrackingEstimated|Est"
+msgstr ""
+
+msgid "TimeTrackingReport|From the start of"
+msgstr ""
+
+msgid "TimeTrackingReport|Run report"
+msgstr ""
+
+msgid "TimeTrackingReport|Something went wrong. Please try again."
+msgstr ""
+
+msgid "TimeTrackingReport|Source"
+msgstr ""
+
+msgid "TimeTrackingReport|Spent at"
+msgstr ""
+
+msgid "TimeTrackingReport|Summary"
+msgstr ""
+
+msgid "TimeTrackingReport|Time spent"
+msgstr ""
+
+msgid "TimeTrackingReport|To the end of"
+msgstr ""
+
+msgid "TimeTrackingReport|Total time spent: "
+msgstr ""
+
+msgid "TimeTrackingReport|User"
+msgstr ""
+
+msgid "TimeTrackingReport|Username"
+msgstr ""
+
+msgid "TimeTracking|%{spentStart}Spent: %{spentEnd}"
+msgstr ""
+
+msgid "TimeTracking|An error occurred while removing the timelog."
+msgstr ""
+
+msgid "TimeTracking|An error occurred while saving the time estimate."
+msgstr ""
+
+msgid "TimeTracking|Delete time spent"
+msgstr ""
+
+msgid "TimeTracking|Edit estimate"
+msgstr ""
+
+msgid "TimeTracking|Edit time estimate"
+msgstr ""
+
+msgid "TimeTracking|Enter time as a total duration (for example, 1mo 2w 3d 5h 10m), or specify hours and minutes (for example, 75:30)."
+msgstr ""
+
+msgid "TimeTracking|Estimate"
+msgstr ""
+
+msgid "TimeTracking|Estimated:"
+msgstr ""
+
+msgid "TimeTracking|How do I estimate and track time?"
+msgstr ""
+
+msgid "TimeTracking|Over by %{timeRemainingHumanReadable}"
+msgstr ""
+
+msgid "TimeTracking|Set estimate"
+msgstr ""
+
+msgid "TimeTracking|Set estimated time to complete this %{issuableTypeName}."
+msgstr ""
+
+msgid "TimeTracking|Set time estimate"
+msgstr ""
+
+msgid "TimeTracking|Spent"
+msgstr ""
+
+msgid "TimeTracking|Time remaining: %{timeRemainingHumanReadable}"
+msgstr ""
+
+msgid "Timeago|%s days ago"
+msgstr ""
+
+msgid "Timeago|%s days remaining"
+msgstr ""
+
+msgid "Timeago|%s hours ago"
+msgstr ""
+
+msgid "Timeago|%s hours remaining"
+msgstr ""
+
+msgid "Timeago|%s minutes ago"
+msgstr ""
+
+msgid "Timeago|%s minutes remaining"
+msgstr ""
+
+msgid "Timeago|%s months ago"
+msgstr ""
+
+msgid "Timeago|%s months remaining"
+msgstr ""
+
+msgid "Timeago|%s seconds remaining"
+msgstr ""
+
+msgid "Timeago|%s weeks ago"
+msgstr ""
+
+msgid "Timeago|%s weeks remaining"
+msgstr ""
+
+msgid "Timeago|%s years ago"
+msgstr ""
+
+msgid "Timeago|%s years remaining"
+msgstr ""
+
+msgid "Timeago|1 day ago"
+msgstr ""
+
+msgid "Timeago|1 day remaining"
+msgstr ""
+
+msgid "Timeago|1 hour ago"
+msgstr ""
+
+msgid "Timeago|1 hour remaining"
+msgstr ""
+
+msgid "Timeago|1 minute ago"
+msgstr ""
+
+msgid "Timeago|1 minute remaining"
+msgstr ""
+
+msgid "Timeago|1 month ago"
+msgstr ""
+
+msgid "Timeago|1 month remaining"
+msgstr ""
+
+msgid "Timeago|1 week ago"
+msgstr ""
+
+msgid "Timeago|1 week remaining"
+msgstr ""
+
+msgid "Timeago|1 year ago"
+msgstr ""
+
+msgid "Timeago|1 year remaining"
+msgstr ""
+
+msgid "Timeago|Past due"
+msgstr ""
+
+msgid "Timeago|in %s days"
+msgstr ""
+
+msgid "Timeago|in %s hours"
+msgstr ""
+
+msgid "Timeago|in %s minutes"
+msgstr ""
+
+msgid "Timeago|in %s months"
+msgstr ""
+
+msgid "Timeago|in %s seconds"
+msgstr ""
+
+msgid "Timeago|in %s weeks"
+msgstr ""
+
+msgid "Timeago|in %s years"
+msgstr ""
+
+msgid "Timeago|in 1 day"
+msgstr ""
+
+msgid "Timeago|in 1 hour"
+msgstr ""
+
+msgid "Timeago|in 1 minute"
+msgstr ""
+
+msgid "Timeago|in 1 month"
+msgstr ""
+
+msgid "Timeago|in 1 week"
+msgstr ""
+
+msgid "Timeago|in 1 year"
+msgstr ""
+
+msgid "Timeago|just now"
+msgstr ""
+
+msgid "Timeago|right now"
+msgstr ""
+
+msgid "Timeline"
+msgstr ""
+
+msgid "Timeline event added successfully."
+msgstr ""
+
+msgid "Timeline|Turn recent updates view off"
+msgstr ""
+
+msgid "Timeline|Turn recent updates view on"
+msgstr ""
+
+msgid "Timelog doesn't exist or you don't have permission to delete it"
+msgstr ""
+
+msgid "Timeout"
+msgstr ""
+
+msgid "Timeout connecting to the Google API. Please try again."
+msgstr ""
+
+msgid "Timeout for moderately fast Gitaly operations (in seconds). Provide a value between Default timeout and Fast timeout."
+msgstr ""
+
+msgid "Timeout for most Gitaly operations (in seconds)."
+msgstr ""
+
+msgid "Timeout for the fastest Gitaly operations (in seconds)."
+msgstr ""
+
+msgid "Timezone"
+msgstr ""
+
+msgid "Time|A"
+msgstr ""
+
+msgid "Time|AM"
+msgstr ""
+
+msgid "Time|P"
+msgstr ""
+
+msgid "Time|PM"
+msgstr ""
+
+msgid "Time|a"
+msgstr ""
+
+msgid "Time|am"
+msgstr ""
+
+msgid "Time|hr"
+msgid_plural "Time|hrs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Time|min"
+msgid_plural "Time|mins"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Time|p"
+msgstr ""
+
+msgid "Time|pm"
+msgstr ""
+
+msgid "Time|s"
+msgstr ""
+
+msgid "Tip: Hover over a job to see the jobs it depends on to run."
+msgstr ""
+
+msgid "Tip: add a %{linkStart}CODEOWNERS%{linkEnd} to automatically add approvers based on file paths and file types."
+msgstr ""
+
+msgid "Title"
+msgstr ""
+
+msgid "Title (required)"
+msgstr ""
+
+msgid "Title:"
+msgstr ""
+
+msgid "Titles"
+msgstr ""
+
+msgid "To"
+msgstr ""
+
+msgid "To %{link_to_help} of your domain, add the above key to a TXT record within your DNS configuration within seven days."
+msgstr ""
+
+msgid "To Do"
+msgstr ""
+
+msgid "To GitLab"
+msgstr ""
+
+msgid "To accept this invitation, create an account or sign in."
+msgstr ""
+
+msgid "To accept this invitation, sign in or create an account."
+msgstr ""
+
+msgid "To accept this invitation, sign in."
+msgstr ""
+
+msgid "To access this domain create a new DNS record"
+msgstr ""
+
+msgid "To add a custom suffix, set up a Service Desk email address. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "To add the entry manually, provide the following details to the application on your phone."
+msgstr ""
+
+msgid "To allow the user to confirm their identity by only confirming an email address and skip phone number and/or credit card verification, create an identity verification exemption using the button below."
+msgstr ""
+
+msgid "To approve this merge request, please enter your password. This project requires all approvals to be authenticated."
+msgstr ""
+
+msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the %{code_open}repo%{code_close} scope, so we can display a list of your public and private repositories which are available to connect."
+msgstr ""
+
+msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories."
+msgstr ""
+
+msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:"
+msgstr ""
+
+msgid "To connect an SVN repository, check out %{svn_link}."
+msgstr ""
+
+msgid "To continue using GitLab Enterprise Edition, upload the %{codeOpen}.gitlab-license%{codeClose} file or enter the license key you have received from GitLab Inc."
+msgstr ""
+
+msgid "To continue, you need to select the link in the confirmation email we sent to verify your email address. If you didn't get our email, select %{strongStart}Resend confirmation email.%{strongEnd}"
+msgstr ""
+
+msgid "To define internal users, first enable new users set to external"
+msgstr ""
+
+msgid "To edit the pipeline configuration, you must go to the project or external site that hosts the file."
+msgstr ""
+
+msgid "To enable Registration Features, first enable Service Ping."
+msgstr ""
+
+msgid "To ensure %{project_link} is unscheduled for deletion, check that activity has been logged by GitLab. For example:"
+msgstr ""
+
+msgid "To ensure %{project_name} is unscheduled for deletion, check that activity has been logged by GitLab. For example:"
+msgstr ""
+
+msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
+msgstr ""
+
+msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
+msgstr ""
+
+msgid "To further protect your account, consider configuring a %{mfa_link_start}two-factor authentication%{mfa_link_end} method."
+msgstr ""
+
+msgid "To further protect your account, consider configuring a two-factor authentication method: %{mfa_link}."
+msgstr ""
+
+msgid "To get started you enter your FogBugz URL and login information below. In the next steps, you'll be able to map users and select the projects you want to import."
+msgstr ""
+
+msgid "To get started, click the link below to confirm your account."
+msgstr ""
+
+msgid "To get started, please enter your Gitea host URL and a %{link_to_personal_token}."
+msgstr ""
+
+msgid "To get started, use the link below to confirm your account."
+msgstr ""
+
+msgid "To go to GitLab Pages, on the left sidebar, select %{pages_link}."
+msgstr ""
+
+msgid "To import an SVN repository, check out %{svn_link}."
+msgstr ""
+
+msgid "To invite more users, you can reduce the number of users in your top-level group to %{free_limit} user or less. You can also upgrade to a paid tier which do not have user limits. If you need additional time, you can start a free 30-day trial which includes unlimited users."
+msgid_plural "To invite more users, you can reduce the number of users in your top-level group to %{free_limit} users or less. You can also upgrade to a paid tier which do not have user limits. If you need additional time, you can start a free 30-day trial which includes unlimited users."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "To keep this project going, create a new issue"
+msgstr ""
+
+msgid "To keep this project going, create a new merge request"
+msgstr ""
+
+msgid "To learn more about this project, read %{link_to_wiki}"
+msgstr ""
+
+msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
+msgstr ""
+
+msgid "To merge, either the title or description must reference a Jira issue."
+msgstr ""
+
+msgid "To move or copy an entire GitLab project from another GitLab installation to this one, navigate to the original project's settings page, generate an export file, and upload it here."
+msgstr ""
+
+msgid "To only use CI/CD features for an external repository, choose %{strong_open}CI/CD for external repo%{strong_close}."
+msgstr ""
+
+msgid "To pass variables to the triggered pipeline, add %{code_start}variables[VARIABLE]=VALUE%{code_end} to the API request."
+msgstr ""
+
+msgid "To personalize your GitLab experience, we'd like to know a bit more about you"
+msgstr ""
+
+msgid "To protect this issue's confidentiality, %{linkStart}fork this project%{linkEnd} and set the fork's visibility to private."
+msgstr ""
+
+msgid "To protect this issue's confidentiality, a private fork of this project was selected."
+msgstr ""
+
+msgid "To reactivate your account, %{gitlab_link_start}sign in to GitLab.%{link_end}"
+msgstr ""
+
+msgid "To reactivate your account, sign in to GitLab at %{gitlab_url}."
+msgstr ""
+
+msgid "To remove the %{link_start}read-only%{link_end} state and regain write access, ask your top-level group owner(s) to reduce the number of users in your top-level group to %{free_limit} users or less, or to upgrade to a paid tier which do not have user limits."
+msgstr ""
+
+msgid "To remove the %{link_start}read-only%{link_end} state and regain write access, you can reduce the number of users in your top-level group to %{free_limit} users or less. You can also upgrade to a paid tier, which do not have user limits. If you need additional time, you can start a free 30-day trial which includes unlimited users."
+msgstr ""
+
+msgid "To resolve this, try to:"
+msgstr ""
+
+msgid "To run CI/CD pipelines with JetBrains TeamCity, input the GitLab project details in the TeamCity project Version Control Settings."
+msgstr ""
+
+msgid "To see all the user's personal access tokens you must impersonate them first."
+msgstr ""
+
+msgid "To see this project's operational details, %{linkStart}upgrade its group plan to Premium%{linkEnd}. You can also remove the project from the dashboard."
+msgstr ""
+
+msgid "To see this project's operational details, contact an owner of group %{groupName} to upgrade the plan. You can also remove the project from the dashboard."
+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 ""
+
+msgid "To set up this feature, contact your administrator."
+msgstr ""
+
+msgid "To set up this integration:"
+msgstr ""
+
+msgid "To specify the notification level per project of a group you belong to, visit the project page and change the notification level there."
+msgstr ""
+
+msgid "To start using GitLab Enterprise Edition, upload the %{codeOpen}.gitlab-license%{codeClose} file or enter the license key you have received from GitLab Inc."
+msgstr ""
+
+msgid "To submit your changes in a merge request, create a new fork."
+msgstr ""
+
+msgid "To submit your changes in a merge request, switch to one of these forks or create a new fork."
+msgstr ""
+
+msgid "To unsubscribe from this issue, please paste the following link into your browser:"
+msgstr ""
+
+msgid "To update Snippets with multiple files, you must use the `files` parameter"
+msgstr ""
+
+msgid "To use Service Desk in this project, you must %{linkStart}activate the issue tracker%{linkEnd}."
+msgstr ""
+
+msgid "To use the additional formats, you must start the required %{container_link_start}companion containers%{container_link_end}."
+msgstr ""
+
+msgid "To use the system's default, set this value to 0."
+msgstr ""
+
+msgid "To view all %{scannedResourcesCount} scanned URLs, %{linkStart}please download the CSV file%{linkEnd}"
+msgstr ""
+
+msgid "To view usage, refresh this page in a few minutes."
+msgstr ""
+
+msgid "To widen your search, change or remove filters above"
+msgstr ""
+
+msgid "To widen your search, change or remove filters above."
+msgstr ""
+
+msgid "To-Do List"
+msgstr ""
+
+msgid "To-Do list"
+msgstr ""
+
+msgid "To-do item successfully marked as done."
+msgstr ""
+
+msgid "Today"
+msgstr ""
+
+msgid "Todos| What actions create to-do items?"
+msgstr ""
+
+msgid "Todos|Added"
+msgstr ""
+
+msgid "Todos|Alert"
+msgstr ""
+
+msgid "Todos|Any Action"
+msgstr ""
+
+msgid "Todos|Any Type"
+msgstr ""
+
+msgid "Todos|Assigned"
+msgstr ""
+
+msgid "Todos|Could not merge"
+msgstr ""
+
+msgid "Todos|Design"
+msgstr ""
+
+msgid "Todos|Do you want to remove the filters?"
+msgstr ""
+
+msgid "Todos|Due %{due_date}"
+msgstr ""
+
+msgid "Todos|Epic"
+msgstr ""
+
+msgid "Todos|Filter by author"
+msgstr ""
+
+msgid "Todos|Filter by group"
+msgstr ""
+
+msgid "Todos|Filter by project"
+msgstr ""
+
+msgid "Todos|Give yourself a pat on the back!"
+msgstr ""
+
+msgid "Todos|Good job! Looks like you don't have anything left on your To-Do List"
+msgstr ""
+
+msgid "Todos|Henceforth, you shall be known as \"To-Do Destroyer\""
+msgstr ""
+
+msgid "Todos|Isn't an empty To-Do List beautiful?"
+msgstr ""
+
+msgid "Todos|Issue"
+msgstr ""
+
+msgid "Todos|It's how you always know what to work on next."
+msgstr ""
+
+msgid "Todos|Mark all as done"
+msgstr ""
+
+msgid "Todos|Member access requested"
+msgstr ""
+
+msgid "Todos|Mentioned"
+msgstr ""
+
+msgid "Todos|Merge request"
+msgstr ""
+
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
+msgid "Todos|Nothing is on your to-do list. Nice work!"
+msgstr ""
+
+msgid "Todos|Nothing left to do. High five!"
+msgstr ""
+
+msgid "Todos|Pipelines"
+msgstr ""
+
+msgid "Todos|Removed from Merge Train"
+msgstr ""
+
+msgid "Todos|Review requested"
+msgstr ""
+
+msgid "Todos|The pipeline failed"
+msgstr ""
+
+msgid "Todos|Undo mark all as done"
+msgstr ""
+
+msgid "Todos|When an issue or merge request is assigned to you, or when you receive a %{strongStart}@mention%{strongEnd} in a comment, this automatically triggers a new item in your To-Do List."
+msgstr ""
+
+msgid "Todos|You're all done!"
+msgstr ""
+
+msgid "Todos|Your To-Do List shows what to work on next"
+msgstr ""
+
+msgid "Todos|added a to-do item"
+msgstr ""
+
+msgid "Todos|has requested access to %{what} %{which}"
+msgstr ""
+
+msgid "Todos|have been added as an approver"
+msgstr ""
+
+msgid "Todos|mentioned %{who}"
+msgstr ""
+
+msgid "Todos|requested a review"
+msgstr ""
+
+msgid "Todos|requested an OKR update for %{what}"
+msgstr ""
+
+msgid "Todos|reviewed your merge request"
+msgstr ""
+
+msgid "Todos|set %{who} as an approver"
+msgstr ""
+
+msgid "Todos|yourself"
+msgstr ""
+
+msgid "Toggle GitLab Next"
+msgstr ""
+
+msgid "Toggle Markdown preview"
+msgstr ""
+
+msgid "Toggle Sidebar"
+msgstr ""
+
+msgid "Toggle backtrace"
+msgstr ""
+
+msgid "Toggle comments for this file"
+msgstr ""
+
+msgid "Toggle commit description"
+msgstr ""
+
+msgid "Toggle commit list"
+msgstr ""
+
+msgid "Toggle details"
+msgstr ""
+
+msgid "Toggle emoji reaction"
+msgstr ""
+
+msgid "Toggle file browser"
+msgstr ""
+
+msgid "Toggle focus mode"
+msgstr ""
+
+msgid "Toggle keyboard shortcuts help dialog"
+msgstr ""
+
+msgid "Toggle project select"
+msgstr ""
+
+msgid "Toggle shortcuts"
+msgstr ""
+
+msgid "Toggle sidebar"
+msgstr ""
+
+msgid "Toggle the Performance Bar"
+msgstr ""
+
+msgid "Toggle the navigation sidebar"
+msgstr ""
+
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
+
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
+
+msgid "Token"
+msgstr ""
+
+msgid "Token Access"
+msgstr ""
+
+msgid "Token name"
+msgstr ""
+
+msgid "Token valid until revoked"
+msgstr ""
+
+msgid "TokenRevocation|This Personal Access Token has been automatically revoked on detection. Consider investigating and rotating before marking this vulnerability as resolved."
+msgstr ""
+
+msgid "Tomorrow"
+msgstr ""
+
+msgid "Too long"
+msgstr ""
+
+msgid "Too many namespaces enabled. Manage them through the console or the API."
+msgstr ""
+
+msgid "Too many projects enabled. Manage them through the console or the API."
+msgstr ""
+
+msgid "Too many references. Quick actions are limited to at most %{max_count} user references"
+msgstr ""
+
+msgid "Too many results to display. Edit your search or add a filter."
+msgstr ""
+
+msgid "Too many users found. Quick actions are limited to at most %{max_count} users"
+msgstr ""
+
+msgid "Tool"
+msgstr ""
+
+msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
+msgstr ""
+
+msgid "Topic %{topic_name} was successfully created."
+msgstr ""
+
+msgid "Topic %{topic_name} was successfully removed."
+msgstr ""
+
+msgid "Topic avatar"
+msgstr ""
+
+msgid "Topic avatar for %{name} will be removed. This cannot be undone."
+msgstr ""
+
+msgid "Topic slug (name)"
+msgstr ""
+
+msgid "Topic title"
+msgstr ""
+
+msgid "Topic was successfully updated."
+msgstr ""
+
+msgid "TopicSelect|%d topic found"
+msgid_plural "TopicSelect|%d topics found"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "TopicSelect|No matching results"
+msgstr ""
+
+msgid "TopicSelect|Search topics"
+msgstr ""
+
+msgid "TopicSelect|Select a topic"
+msgstr ""
+
+msgid "Topics"
+msgstr ""
+
+msgid "Topics could not be merged!"
+msgstr ""
+
+msgid "Topics|Subscribe to the new projects feed"
+msgstr ""
+
+msgid "Total"
+msgstr ""
+
+msgid "Total Score"
+msgstr ""
+
+msgid "Total cores (CPUs)"
+msgstr ""
+
+msgid "Total issue weight"
+msgstr ""
+
+msgid "Total memory (GB)"
+msgstr ""
+
+msgid "Total spans"
+msgstr ""
+
+msgid "Total test time for all commits/merges"
+msgstr ""
+
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
+msgid "Total users"
+msgstr ""
+
+msgid "Total weight"
+msgstr ""
+
+msgid "Total: %{total}"
+msgstr ""
+
+msgid "TotalMilestonesIndicator|1000+"
+msgstr ""
+
+msgid "TotalRefCountIndicator|1000+"
+msgstr ""
+
+msgid "Trace Details"
+msgstr ""
+
+msgid "Trace start"
+msgstr ""
+
+msgid "Tracing"
+msgstr ""
+
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
+msgstr ""
+
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
+msgstr ""
+
+msgid "Tracing|Date"
+msgstr ""
+
+msgid "Tracing|Duration"
+msgstr ""
+
+msgid "Tracing|Duration (ms)"
+msgstr ""
+
+msgid "Tracing|Error: Failed to load trace details. Try reloading the page."
+msgstr ""
+
+msgid "Tracing|Error: Something went wrong while fetching the operations. Try again."
+msgstr ""
+
+msgid "Tracing|Error: Something went wrong while fetching the services. Try again."
+msgstr ""
+
+msgid "Tracing|Failed to load traces."
+msgstr ""
+
+msgid "Tracing|Filter traces"
+msgstr ""
+
+msgid "Tracing|Last 1 hour"
+msgstr ""
+
+msgid "Tracing|Last 12 hours"
+msgstr ""
+
+msgid "Tracing|Last 14 days"
+msgstr ""
+
+msgid "Tracing|Last 15 minutes"
+msgstr ""
+
+msgid "Tracing|Last 24 hours"
+msgstr ""
+
+msgid "Tracing|Last 30 days"
+msgstr ""
+
+msgid "Tracing|Last 30 minutes"
+msgstr ""
+
+msgid "Tracing|Last 4 hours"
+msgstr ""
+
+msgid "Tracing|Last 5 minutes"
+msgstr ""
+
+msgid "Tracing|Last 7 days"
+msgstr ""
+
+msgid "Tracing|Metadata"
+msgstr ""
+
+msgid "Tracing|Operation"
+msgstr ""
+
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
+msgstr ""
+
+msgid "Tracing|Resource attributes"
+msgstr ""
+
+msgid "Tracing|Select a service to load suggestions"
+msgstr ""
+
+msgid "Tracing|Service"
+msgstr ""
+
+msgid "Tracing|Time range"
+msgstr ""
+
+msgid "Tracing|Timestamp"
+msgstr ""
+
+msgid "Tracing|Toggle child spans"
+msgstr ""
+
+msgid "Tracing|Trace ID"
+msgstr ""
+
+msgid "Tracing|Traces"
+msgstr ""
+
+msgid "Tracing|longer than"
+msgstr ""
+
+msgid "Tracing|name"
+msgstr ""
+
+msgid "Tracing|shorter than"
+msgstr ""
+
+msgid "Tracing|value"
+msgstr ""
+
+msgid "Track groups of issues that share a theme, across projects and milestones"
+msgstr ""
+
+msgid "Track important events in your GitLab instance."
+msgstr ""
+
+msgid "Track important events in your group."
+msgstr ""
+
+msgid "Track important events in your project."
+msgstr ""
+
+msgid "Track time with quick actions"
+msgstr ""
+
+msgid "Tracking"
+msgstr ""
+
+msgid "Training mode"
+msgstr ""
+
+msgid "Transfer"
+msgstr ""
+
+msgid "Transfer group to another parent group."
+msgstr ""
+
+msgid "Transfer ownership"
+msgstr ""
+
+msgid "Transfer project"
+msgstr ""
+
+msgid "Transfer your project into another namespace. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "TransferGroup|Cannot transfer group to one of its subgroup."
+msgstr ""
+
+msgid "TransferGroup|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
+msgstr ""
+
+msgid "TransferGroup|Database is not supported."
+msgstr ""
+
+msgid "TransferGroup|Group contains contacts/organizations and you don't have enough permissions to move them to the new root group."
+msgstr ""
+
+msgid "TransferGroup|Group contains projects with NPM packages scoped to the current root level group."
+msgstr ""
+
+msgid "TransferGroup|Group is already a root group."
+msgstr ""
+
+msgid "TransferGroup|Group is already associated to the parent group."
+msgstr ""
+
+msgid "TransferGroup|SAML Provider or SCIM Token is configured for this group."
+msgstr ""
+
+msgid "TransferGroup|The parent group already has a subgroup or a project with the same path."
+msgstr ""
+
+msgid "TransferGroup|Transfer failed: %{error_message}"
+msgstr ""
+
+msgid "TransferGroup|You don't have enough permissions."
+msgstr ""
+
+msgid "TransferProject|Please select a new namespace for your project."
+msgstr ""
+
+msgid "TransferProject|Project cannot be transferred, because tags are present in its container registry"
+msgstr ""
+
+msgid "TransferProject|Project is already in this namespace."
+msgstr ""
+
+msgid "TransferProject|Project with same name or path in target namespace already exists"
+msgstr ""
+
+msgid "TransferProject|Root namespace can't be updated if the project has NPM packages scoped to the current root level namespace."
+msgstr ""
+
+msgid "TransferProject|You don't have permission to transfer projects into that namespace."
+msgstr ""
+
+msgid "TransferProject|You don't have permission to transfer this project."
+msgstr ""
+
+msgid "Tree view"
+msgstr ""
+
+msgid "Trending"
+msgstr ""
+
+msgid "TrialRegistration|Start GitLab Ultimate free trial"
+msgstr ""
+
+msgid "TrialRegistration|To complete registration, we need additional details from you."
+msgstr ""
+
+msgid "TrialRegistration|Your GitLab Ultimate free trial lasts for 30 days. After this period, you can maintain a GitLab Free account forever or upgrade to a paid plan."
+msgstr ""
+
+msgid "Trials|%{planName} Trial"
+msgstr ""
+
+msgid "Trials|Compare all plans"
+msgstr ""
+
+msgid "Trials|Create a new group to start your GitLab Ultimate trial."
+msgstr ""
+
+msgid "Trials|Day %{daysUsed}/%{duration}"
+msgstr ""
+
+msgid "Trials|Don't lose out on additional GitLab features"
+msgstr ""
+
+msgid "Trials|Looking to do more with GitLab?"
+msgstr ""
+
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
+msgstr ""
+
+msgid "Trials|You can apply your trial to a new group or an existing group."
+msgstr ""
+
+msgid "Trials|You've got %{daysRemaining} day remaining on GitLab %{planName}!"
+msgid_plural "Trials|You've got %{daysRemaining} days remaining on GitLab %{planName}!"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Trials|Your 30-day trial has ended"
+msgstr ""
+
+msgid "Trials|Your trial ends on %{boldStart}%{trialEndDate}%{boldEnd}. We hope you’re enjoying the features of GitLab %{planName}. To keep those features after your trial ends, you’ll need to buy a subscription. (You can also choose GitLab Premium if it meets your needs.)"
+msgstr ""
+
+msgid "Trial|Allowed characters: +, 0-9, -, and spaces."
+msgstr ""
+
+msgid "Trial|Continue"
+msgstr ""
+
+msgid "Trial|Please select"
+msgstr ""
+
+msgid "Trial|State/Province"
+msgstr ""
+
+msgid "Trial|To activate your trial, we need additional details from you."
+msgstr ""
+
+msgid "Trial|Your GitLab Ultimate trial lasts for 30 days, but you can keep your free GitLab account forever. We just need some additional information to activate your trial."
+msgstr ""
+
+msgid "Trigger"
+msgstr ""
+
+msgid "Trigger a pipeline for a branch or tag by generating a trigger token and using it with an API call. The token impersonates a user's project access and permissions."
+msgstr ""
+
+msgid "Trigger cluster reindexing"
+msgstr ""
+
+msgid "Trigger cluster reindexing. Only use this with an index that was created in GitLab 13.0 or later."
+msgstr ""
+
+msgid "Trigger job"
+msgstr ""
+
+msgid "Trigger pipelines for mirror updates"
+msgstr ""
+
+msgid "Trigger pipelines when branches or tags are updated in the upstream repository. Depending on the activity of the upstream repository, this may greatly increase the load on your CI runners. Only enable this if you know they can handle the load. %{strong_start}CI will run using the credentials assigned above.%{strong_end} %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Trigger removed."
+msgstr ""
+
+msgid "Trigger repository check"
+msgstr ""
+
+msgid "Trigger token:"
+msgstr ""
+
+msgid "Trigger variables"
+msgstr ""
+
+msgid "Trigger was created successfully."
+msgstr ""
+
+msgid "Trigger was successfully updated."
+msgstr ""
+
+msgid "Triggerer"
+msgstr ""
+
+msgid "Trigger|Description"
+msgstr ""
+
+msgid "Trigger|Trigger description"
+msgstr ""
+
+msgid "Trust user"
+msgstr ""
+
+msgid "Trusted"
+msgstr ""
+
+msgid "Trusted applications are automatically authorized on GitLab OAuth flow. It's highly recommended for the security of users that trusted applications have the confidential setting set to true."
+msgstr ""
+
+msgid "Try adjusting the filters, or creating an issue or merge request to collect more data"
+msgstr ""
+
+msgid "Try again"
+msgstr ""
+
+msgid "Try again?"
+msgstr ""
+
+msgid "Try all GitLab has to offer for 30 days."
+msgstr ""
+
+msgid "Try changing or removing filters."
+msgstr ""
+
+msgid "Try grouping with different labels"
+msgstr ""
+
+msgid "Try out GitLab Pipelines"
+msgstr ""
+
+msgid "Try the troubleshooting steps here."
+msgstr ""
+
+msgid "Try to fork again"
+msgstr ""
+
+msgid "Try to keep the first line under 52 characters and the others under 72."
+msgstr ""
+
+msgid "Try using a different search term to find the file you are looking for."
+msgstr ""
+
+msgid "Trying to communicate with your device. Plug it in (if needed) and press the button on the device now."
+msgstr ""
+
+msgid "Trying to communicate with your device. Plug it in (if you haven't already) and press the button on the device now."
+msgstr ""
+
+msgid "Tue"
+msgstr ""
+
+msgid "Tuesday"
+msgstr ""
+
+msgid "Turn off"
+msgstr ""
+
+msgid "Turn on"
+msgstr ""
+
+msgid "Two-Factor Authentication"
+msgstr ""
+
+msgid "Two-factor Authentication"
+msgstr ""
+
+msgid "Two-factor Authentication Recovery codes"
+msgstr ""
+
+msgid "Two-factor Authentication:"
+msgstr ""
+
+msgid "Two-factor authentication"
+msgstr ""
+
+msgid "Two-factor authentication disabled"
+msgstr ""
+
+msgid "Two-factor authentication for admin mode"
+msgstr ""
+
+msgid "Two-factor authentication grace period"
+msgstr ""
+
+msgid "Two-factor authentication has been disabled for this user"
+msgstr ""
+
+msgid "Two-factor authentication has been disabled for your GitLab account."
+msgstr ""
+
+msgid "Two-factor authentication has been disabled successfully for %{username}!"
+msgstr ""
+
+msgid "Two-factor authentication has been disabled successfully!"
+msgstr ""
+
+msgid "Two-factor authentication is not enabled for this user"
+msgstr ""
+
+msgid "Two-factor grace period"
+msgstr ""
+
+msgid "Type"
+msgstr ""
+
+msgid "Type changed successfully."
+msgstr ""
+
+msgid "Type to search"
+msgstr ""
+
+msgid "URL"
+msgstr ""
+
+msgid "URL is required"
+msgstr ""
+
+msgid "URL is triggered for each branch updated to the repository"
+msgstr ""
+
+msgid "URL is triggered when a merge request is created, updated, or merged"
+msgstr ""
+
+msgid "URL is triggered when a new tag is pushed to the repository"
+msgstr ""
+
+msgid "URL is triggered when repository is updated"
+msgstr ""
+
+msgid "URL must be percent-encoded if necessary."
+msgstr ""
+
+msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
+msgstr ""
+
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
+msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
+msgstr ""
+
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
+msgid "URL of the external Spam Check endpoint"
+msgstr ""
+
+msgid "URL of the external storage to serve the repository static objects."
+msgstr ""
+
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
+msgid "URL or request ID"
+msgstr ""
+
+msgid "UTC"
+msgstr ""
+
+msgid "Unable to apply suggestions to a deleted line."
+msgstr ""
+
+msgid "Unable to build Slack link."
+msgstr ""
+
+msgid "Unable to collect CPU info"
+msgstr ""
+
+msgid "Unable to collect memory info"
+msgstr ""
+
+msgid "Unable to connect to server: %{error}"
+msgstr ""
+
+msgid "Unable to connect to the Jira instance. Please check your Jira integration configuration."
+msgstr ""
+
+msgid "Unable to create link to vulnerability"
+msgstr ""
+
+msgid "Unable to create pipeline"
+msgstr ""
+
+msgid "Unable to fetch branch list for this project."
+msgstr ""
+
+msgid "Unable to fetch branches list, please close the form and try again"
+msgstr ""
+
+msgid "Unable to fetch group. Reload the page to try again."
+msgstr ""
+
+msgid "Unable to fetch groups. Reload the page to try again."
+msgstr ""
+
+msgid "Unable to fetch project. Reload the page to try again."
+msgstr ""
+
+msgid "Unable to fetch projects. Reload the page to try again."
+msgstr ""
+
+msgid "Unable to fetch upstream and downstream pipelines."
+msgstr ""
+
+msgid "Unable to find Jira project to import data from."
+msgstr ""
+
+msgid "Unable to find comment template"
+msgstr ""
+
+msgid "Unable to fully load the default commit message. You can still apply this suggestion and the commit message will be correct."
+msgstr ""
+
+msgid "Unable to generate new instance ID"
+msgstr ""
+
+msgid "Unable to generate tests for specified file."
+msgstr ""
+
+msgid "Unable to load commits. Try again later."
+msgstr ""
+
+msgid "Unable to load file contents. Try again later."
+msgstr ""
+
+msgid "Unable to load refs"
+msgstr ""
+
+msgid "Unable to load the diff"
+msgstr ""
+
+msgid "Unable to load the diff. %{button_try_again}"
+msgstr ""
+
+msgid "Unable to load the merge request widget. Try reloading the page."
+msgstr ""
+
+msgid "Unable to load the page"
+msgstr ""
+
+msgid "Unable to load user list. Reload the page and try again."
+msgstr ""
+
+msgid "Unable to parse JSON"
+msgstr ""
+
+msgid "Unable to parse the vulnerability report's options."
+msgstr ""
+
+msgid "Unable to save iteration. Please try again"
+msgstr ""
+
+msgid "Unable to save your changes. Please try again."
+msgstr ""
+
+msgid "Unable to save your preference"
+msgstr ""
+
+msgid "Unable to schedule a pipeline to run immediately"
+msgstr ""
+
+msgid "Unable to sign you in to the group with SAML due to \"%{reason}\""
+msgstr ""
+
+msgid "Unable to suggest a path. Please refresh and try again."
+msgstr ""
+
+msgid "Unable to update label prioritization at this time"
+msgstr ""
+
+msgid "Unable to update this epic at this time."
+msgstr ""
+
+msgid "Unable to update this issue at this time."
+msgstr ""
+
+msgid "Unapprove a merge request"
+msgstr ""
+
+msgid "Unapprove the current merge request."
+msgstr ""
+
+msgid "Unapproved the current merge request."
+msgstr ""
+
+msgid "Unarchive project"
+msgstr ""
+
+msgid "Unarchiving the project restores its members' ability to make commits, and create issues, comments, and other entities. %{strong_start}After you unarchive the project, it displays in the search and on the dashboard.%{strong_end} %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Unassign from commenting user"
+msgstr ""
+
+msgid "Unassigned"
+msgstr ""
+
+msgid "Unauthenticated API rate limit period in seconds"
+msgstr ""
+
+msgid "Unauthenticated requests"
+msgstr ""
+
+msgid "Unauthenticated web rate limit period in seconds"
+msgstr ""
+
+msgid "Unauthorized to access the cluster agent in this project"
+msgstr ""
+
+msgid "Unauthorized to create a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to create a package protection rule"
+msgstr ""
+
+msgid "Unauthorized to create an environment"
+msgstr ""
+
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to delete a package protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
+msgid "Unauthorized to update the environment"
+msgstr ""
+
+msgid "Unavailable"
+msgstr ""
+
+msgid "Unban"
+msgstr ""
+
+msgid "Uncategorized"
+msgstr ""
+
+msgid "Uncommitted changes will be lost if you change branches. Do you want to continue?"
+msgstr ""
+
+msgid "Undo"
+msgstr ""
+
+msgid "Undo Ignore"
+msgstr ""
+
+msgid "Undo ignore"
+msgstr ""
+
+msgid "Unexpected error"
+msgstr ""
+
+msgid "Unexpected error: Cannot serialize resource"
+msgstr ""
+
+msgid "Unexpected scope"
+msgstr ""
+
+msgid "Unfollow"
+msgstr ""
+
+msgid "Unfortunately, your email message to GitLab could not be processed."
+msgstr ""
+
+msgid "Unhappy?"
+msgstr ""
+
+msgid "Unhelpful or irrelevant"
+msgstr ""
+
+msgid "Units|d"
+msgstr ""
+
+msgid "Units|ms"
+msgstr ""
+
+msgid "Units|s"
+msgstr ""
+
+msgid "Units|sec"
+msgstr ""
+
+msgid "Unknown"
+msgstr ""
+
+msgid "Unknown Error"
+msgstr ""
+
+msgid "Unknown encryption strategy: %{encrypted_strategy}!"
+msgstr ""
+
+msgid "Unknown format"
+msgstr ""
+
+msgid "Unknown response text"
+msgstr ""
+
+msgid "Unknown user"
+msgstr ""
+
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr ""
+
+msgid "Unlimited"
+msgstr ""
+
+msgid "UnlimitedMembersDuringTrialAlert|During your trial, invite as many members as you like to %{group_or_project} to collaborate with you."
+msgstr ""
+
+msgid "UnlimitedMembersDuringTrialAlert|Explore paid plans"
+msgstr ""
+
+msgid "UnlimitedMembersDuringTrialAlert|Get the most out of your trial with space for more members"
+msgstr ""
+
+msgid "UnlimitedMembersDuringTrialAlert|Invite more members"
+msgstr ""
+
+msgid "Unlink"
+msgstr ""
+
+msgid "Unlock"
+msgstr ""
+
+msgid "Unlock account"
+msgstr ""
+
+msgid "Unlock discussion"
+msgstr ""
+
+msgid "Unlock more features with GitLab Ultimate"
+msgstr ""
+
+msgid "Unlock the discussion"
+msgstr ""
+
+msgid "Unlock this discussion? %{strongStart}Everyone%{strongEnd} will be able to comment."
+msgstr ""
+
+msgid "Unlocked"
+msgstr ""
+
+msgid "Unlocked the discussion."
+msgstr ""
+
+msgid "Unlocking discussion"
+msgstr ""
+
+msgid "Unlocks the discussion."
+msgstr ""
+
+msgid "Unpin the file"
+msgstr ""
+
+msgid "Unreachable"
+msgstr ""
+
+msgid "Unrecognized approval status."
+msgstr ""
+
+msgid "Unresolve"
+msgstr ""
+
+msgid "Unresolve thread"
+msgstr ""
+
+msgid "Unresolved"
+msgstr ""
+
+msgid "Unresolved discussions must be resolved."
+msgstr ""
+
+msgid "Unschedule job"
+msgstr ""
+
+msgid "Unselect"
+msgstr ""
+
+msgid "Unselect \"Expand variable reference\" if you want to use the variable value as a raw string."
+msgstr ""
+
+msgid "Unselect all"
+msgstr ""
+
+msgid "Unselected"
+msgstr ""
+
+msgid "Unstar"
+msgstr ""
+
+msgid "Unstarted"
+msgstr ""
+
+msgid "Unsubscribe"
+msgstr ""
+
+msgid "Unsubscribe at group level"
+msgstr ""
+
+msgid "Unsubscribe at project level"
+msgstr ""
+
+msgid "Unsubscribe from %{type}"
+msgstr ""
+
+msgid "Unsubscribed from this %{quick_action_target}."
+msgstr ""
+
+msgid "Unsubscribes from this %{quick_action_target}."
+msgstr ""
+
+msgid "Unsupported forecast type."
+msgstr ""
+
+msgid "Unsupported sort value."
+msgstr ""
+
+msgid "Unsupported todo type passed. Supported todo types are: %{todo_types}"
+msgstr ""
+
+msgid "Untitled"
+msgstr ""
+
+msgid "Untrust user"
+msgstr ""
+
+msgid "Unused"
+msgstr ""
+
+msgid "Unused, previous indices: %{index_names} will be deleted after %{time} automatically."
+msgstr ""
+
+msgid "Unverified"
+msgstr ""
+
+msgid "Unverified signature"
+msgstr ""
+
+msgid "Up to date"
+msgstr ""
+
+msgid "Upcoming"
+msgstr ""
+
+msgid "Upcoming Release"
+msgstr ""
+
+msgid "Update"
+msgstr ""
+
+msgid "Update %{sourcePath} file"
+msgstr ""
+
+msgid "Update Now"
+msgstr ""
+
+msgid "Update Scheduled…"
+msgstr ""
+
+msgid "Update all"
+msgstr ""
+
+msgid "Update appearance settings"
+msgstr ""
+
+msgid "Update approval rule"
+msgstr ""
+
+msgid "Update approvers"
+msgstr ""
+
+msgid "Update failed"
+msgstr ""
+
+msgid "Update it"
+msgstr ""
+
+msgid "Update now"
+msgstr ""
+
+msgid "Update username"
+msgstr ""
+
+msgid "Update your bookmarked URLs as filtered/sorted branches URL has been changed."
+msgstr ""
+
+msgid "Update your group name, description, avatar, and visibility."
+msgstr ""
+
+msgid "Update your project name and description."
+msgstr ""
+
+msgid "Update your project name, topics, description, and avatar."
+msgstr ""
+
+msgid "UpdateProject|Are you sure you want to prune unreachable objects?"
+msgstr ""
+
+msgid "UpdateProject|Are you sure you want to prune?"
+msgstr ""
+
+msgid "UpdateProject|Cancel"
+msgstr ""
+
+msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
+msgstr ""
+
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
+msgid "UpdateProject|Could not set the default branch"
+msgstr ""
+
+msgid "UpdateProject|Could not set the default branch. Do you have a branch named 'HEAD' in your repository? (%{linkStart}How do I fix this?%{linkEnd})"
+msgstr ""
+
+msgid "UpdateProject|Learn more."
+msgstr ""
+
+msgid "UpdateProject|New visibility level not allowed!"
+msgstr ""
+
+msgid "UpdateProject|Project could not be updated!"
+msgstr ""
+
+msgid "UpdateProject|Prune"
+msgstr ""
+
+msgid "UpdateProject|Prune unreachable objects"
+msgstr ""
+
+msgid "UpdateProject|Pruning unreachable objects can lead to repository corruption."
+msgstr ""
+
+msgid "UpdateProject|Updating default branch is blocked by security policy"
+msgstr ""
+
+msgid "UpdateRepositoryStorage|Timeout waiting for %{type} repository pushes"
+msgstr ""
+
+msgid "Updated"
+msgstr ""
+
+msgid "Updated %{timeAgo}"
+msgstr ""
+
+msgid "Updated %{updated_at} by %{updated_by}"
+msgstr ""
+
+msgid "Updated date"
+msgstr ""
+
+msgid "Updating"
+msgstr ""
+
+msgid "Updating…"
+msgstr ""
+
+msgid "Upgrade offers available!"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Upload %{file_name} file"
+msgstr ""
+
+msgid "Upload CSV file"
+msgstr ""
+
+msgid "Upload File"
+msgstr ""
+
+msgid "Upload New File"
+msgstr ""
+
+msgid "Upload a certificate for your domain with all intermediates"
+msgstr ""
+
+msgid "Upload a private key for your certificate"
+msgstr ""
+
+msgid "Upload could not be deleted."
+msgstr ""
+
+msgid "Upload file"
+msgstr ""
+
+msgid "Upload new file"
+msgstr ""
+
+msgid "Upload object map"
+msgstr ""
+
+msgid "Uploaded date"
+msgstr ""
+
+msgid "Uploading changes to terminal"
+msgstr ""
+
+msgid "Uploading..."
+msgstr ""
+
+msgid "Uploading: %{progress}"
+msgstr ""
+
+msgid "Upstream"
+msgstr ""
+
+msgid "Upstream Gitaly has been exhausted. Try again later"
+msgstr ""
+
+msgid "Upvotes"
+msgstr ""
+
+msgid "Usage"
+msgstr ""
+
+msgid "Usage Trends"
+msgstr ""
+
+msgid "Usage statistics"
+msgstr ""
+
+msgid "UsageQuotas|(of %{totalStorageSize})"
+msgstr ""
+
+msgid "UsageQuotas|An error occurred loading the transfer data. Please refresh the page to try again."
+msgstr ""
+
+msgid "UsageQuotas|Container Registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total."
+msgstr ""
+
+msgid "UsageQuotas|Namespace transfer data used"
+msgstr ""
+
+msgid "UsageQuota|%{linkStart}Shared runners%{linkEnd} are disabled, so there are no limits set on pipeline usage"
+msgstr ""
+
+msgid "UsageQuota|%{linkTitle} help link"
+msgstr ""
+
+msgid "UsageQuota|%{percentageRemaining}%% namespace storage remaining."
+msgstr ""
+
+msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
+msgstr ""
+
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
+msgstr ""
+
+msgid "UsageQuota|Any additional purchased storage will be displayed here."
+msgstr ""
+
+msgid "UsageQuota|Audio samples, videos, datasets, and graphics."
+msgstr ""
+
+msgid "UsageQuota|Buy additional compute minutes"
+msgstr ""
+
+msgid "UsageQuota|Buy storage"
+msgstr ""
+
+msgid "UsageQuota|Code packages and container images."
+msgstr ""
+
+msgid "UsageQuota|Compute usage"
+msgstr ""
+
+msgid "UsageQuota|Compute usage by month"
+msgstr ""
+
+msgid "UsageQuota|Compute usage by project"
+msgstr ""
+
+msgid "UsageQuota|Compute usage since %{usageSince}"
+msgstr ""
+
+msgid "UsageQuota|Container Registry"
+msgstr ""
+
+msgid "UsageQuota|Dependency proxy"
+msgstr ""
+
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
+msgid "UsageQuota|Filter charts by year"
+msgstr ""
+
+msgid "UsageQuota|Filter projects data by month"
+msgstr ""
+
+msgid "UsageQuota|Git repository."
+msgstr ""
+
+msgid "UsageQuota|Gitlab-integrated Docker Container Registry for storing Docker Images."
+msgstr ""
+
+msgid "UsageQuota|Group settings %{gt} Usage quotas"
+msgstr ""
+
+msgid "UsageQuota|How are limits applied?"
+msgstr ""
+
+msgid "UsageQuota|Included in %{planName} subscription"
+msgstr ""
+
+msgid "UsageQuota|Includes artifacts, repositories, wiki, and other items."
+msgstr ""
+
+msgid "UsageQuota|Includes project artifacts, repositories, packages, and container registries."
+msgstr ""
+
+msgid "UsageQuota|Job artifacts created by CI/CD."
+msgstr ""
+
+msgid "UsageQuota|Learn more about usage quotas"
+msgstr ""
+
+msgid "UsageQuota|Learn more about usage quotas."
+msgstr ""
+
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
+msgstr ""
+
+msgid "UsageQuota|Month"
+msgstr ""
+
+msgid "UsageQuota|Namespace entities"
+msgstr ""
+
+msgid "UsageQuota|Namespace overview"
+msgstr ""
+
+msgid "UsageQuota|Namespace storage used"
+msgstr ""
+
+msgid "UsageQuota|Namespace total storage represents the sum of storage consumed by all projects, Container Registry, and Dependency Proxy."
+msgstr ""
+
+msgid "UsageQuota|No compute usage data available."
+msgstr ""
+
+msgid "UsageQuota|No projects to display."
+msgstr ""
+
+msgid "UsageQuota|Pending Members"
+msgstr ""
+
+msgid "UsageQuota|Pipeline artifacts and job artifacts, created with CI/CD."
+msgstr ""
+
+msgid "UsageQuota|Pipelines"
+msgstr ""
+
+msgid "UsageQuota|Precise calculation of Container Registry storage size is delayed because it is too large for synchronous estimation. Precise evaluation will be scheduled within 24 hours."
+msgstr ""
+
+msgid "UsageQuota|Product analytics"
+msgstr ""
+
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
+msgstr ""
+
+msgid "UsageQuota|Purchased storage"
+msgstr ""
+
+msgid "UsageQuota|Recalculate repository usage"
+msgstr ""
+
+msgid "UsageQuota|Registry"
+msgstr ""
+
+msgid "UsageQuota|Seats"
+msgstr ""
+
+msgid "UsageQuota|Shared bits of code and text."
+msgstr ""
+
+msgid "UsageQuota|Shared runner duration"
+msgstr ""
+
+msgid "UsageQuota|Something went wrong while fetching pipeline statistics"
+msgstr ""
+
+msgid "UsageQuota|Something went wrong while fetching project storage statistics"
+msgstr ""
+
+msgid "UsageQuota|Storage"
+msgstr ""
+
+msgid "UsageQuota|Storage per project included in %{planName} subscription"
+msgstr ""
+
+msgid "UsageQuota|Storage type"
+msgstr ""
+
+msgid "UsageQuota|Storage usage breakdown"
+msgstr ""
+
+msgid "UsageQuota|Storage used"
+msgstr ""
+
+msgid "UsageQuota|The %{strong_start}%{context_name}%{strong_end} group will be affected by this. "
+msgstr ""
+
+msgid "UsageQuota|The %{strong_start}%{context_name}%{strong_end} project will be affected by this. "
+msgstr ""
+
+msgid "UsageQuota|The chart and the table below show usage for %{month} %{year}"
+msgstr ""
+
+msgid "UsageQuota|The namespace is currently using %{strong_start}%{used_storage}%{strong_end} of namespace storage. Group owners can view namespace storage usage and purchase more from %{strong_start}%{usage_quotas_nav_instruction}%{strong_end}. %{docs_link_start}How can I manage my storage%{link_end}?"
+msgstr ""
+
+msgid "UsageQuota|The namespace is currently using %{strong_start}%{used_storage}%{strong_end} of namespace storage. View and manage your usage from %{strong_start}%{usage_quotas_nav_instruction}%{strong_end}. %{docs_link_start}Learn more%{link_end} about how to reduce your storage."
+msgstr ""
+
+msgid "UsageQuota|This namespace has %{planLimit} of storage."
+msgstr ""
+
+msgid "UsageQuota|This namespace has no projects which used shared runners in the current period"
+msgstr ""
+
+msgid "UsageQuota|This namespace is under project-level limits, so only repository and LFS storage usage above the limit included in the plan is counted as excess storage. You can increase excess storage limit by purchasing storage packages."
+msgstr ""
+
+msgid "UsageQuota|This table omits projects that used 0 compute minutes or 0 shared runners duration"
+msgstr ""
+
+msgid "UsageQuota|Total excess storage"
+msgstr ""
+
+msgid "UsageQuota|Total purchased storage"
+msgstr ""
+
+msgid "UsageQuota|Total storage"
+msgstr ""
+
+msgid "UsageQuota|Transfer"
+msgstr ""
+
+msgid "UsageQuota|Transfer data used"
+msgstr ""
+
+msgid "UsageQuota|Transfer data used by month"
+msgstr ""
+
+msgid "UsageQuota|Transfer type"
+msgstr ""
+
+msgid "UsageQuota|Transfer usage breakout"
+msgstr ""
+
+msgid "UsageQuota|Usage"
+msgstr ""
+
+msgid "UsageQuota|Usage Quotas"
+msgstr ""
+
+msgid "UsageQuota|Usage breakdown"
+msgstr ""
+
+msgid "UsageQuota|Usage by month"
+msgstr ""
+
+msgid "UsageQuota|Usage by project"
+msgstr ""
+
+msgid "UsageQuota|Usage of group resources across the projects in the %{namespaceName} group"
+msgstr ""
+
+msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group"
+msgstr ""
+
+msgid "UsageQuota|Usage of project resources across the %{strong_start}%{project_name}%{strong_end} project"
+msgstr ""
+
+msgid "UsageQuota|Usage of resources across your projects"
+msgstr ""
+
+msgid "UsageQuota|User settings %{gt} Usage quotas"
+msgstr ""
+
+msgid "UsageQuota|Wiki content."
+msgstr ""
+
+msgid "UsageTrends|Could not load the issues and merge requests chart. Please refresh the page to try again."
+msgstr ""
+
+msgid "UsageTrends|Could not load the pipelines chart. Please refresh the page to try again."
+msgstr ""
+
+msgid "UsageTrends|Could not load the projects and groups chart. Please refresh the page to try again."
+msgstr ""
+
+msgid "UsageTrends|Groups"
+msgstr ""
+
+msgid "UsageTrends|Issues"
+msgstr ""
+
+msgid "UsageTrends|Issues & merge requests"
+msgstr ""
+
+msgid "UsageTrends|Items"
+msgstr ""
+
+msgid "UsageTrends|Merge requests"
+msgstr ""
+
+msgid "UsageTrends|Month"
+msgstr ""
+
+msgid "UsageTrends|No data available."
+msgstr ""
+
+msgid "UsageTrends|Pipelines"
+msgstr ""
+
+msgid "UsageTrends|Pipelines canceled"
+msgstr ""
+
+msgid "UsageTrends|Pipelines failed"
+msgstr ""
+
+msgid "UsageTrends|Pipelines skipped"
+msgstr ""
+
+msgid "UsageTrends|Pipelines succeeded"
+msgstr ""
+
+msgid "UsageTrends|Pipelines total"
+msgstr ""
+
+msgid "UsageTrends|Projects"
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the cancelled pipelines. Please try again."
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the failed pipelines. Please try again."
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the groups. Please try again."
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the issues. Please try again."
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the merge requests. Please try again."
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the projects. Please try again."
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the skipped pipelines. Please try again."
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the successful pipelines. Please try again."
+msgstr ""
+
+msgid "UsageTrends|There was an error fetching the total pipelines. Please try again."
+msgstr ""
+
+msgid "UsageTrends|Total groups"
+msgstr ""
+
+msgid "UsageTrends|Total projects"
+msgstr ""
+
+msgid "UsageTrends|Total projects & groups"
+msgstr ""
+
+msgid "UsageTrends|Users"
+msgstr ""
+
+msgid "Use %{code_start}::%{code_end} to create a %{link_start}scoped label set%{link_end} (eg. %{code_start}priority::1%{code_end})"
+msgstr ""
+
+msgid "Use .gitlab-ci.yml"
+msgstr ""
+
+msgid "Use Secure Files to store files used by your pipelines such as Android keystores, or Apple provisioning profiles and signing certificates."
+msgstr ""
+
+msgid "Use a one-time password authenticator on your mobile device or computer to enable two-factor authentication (2FA)."
+msgstr ""
+
+msgid "Use authorized_keys file to authenticate SSH keys"
+msgstr ""
+
+msgid "Use banners and notifications to notify your users about scheduled maintenance, recent upgrades, and more."
+msgstr ""
+
+msgid "Use cURL"
+msgstr ""
+
+msgid "Use custom color #FF0000"
+msgstr ""
+
+msgid "Use double quotes for multiple keywords, such as %{code_open}\"your search\"%{code_close}"
+msgstr ""
+
+msgid "Use hashed storage"
+msgstr ""
+
+msgid "Use hashed storage paths for newly created and renamed repositories. Always enabled since 13.0. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Use issue count"
+msgstr ""
+
+msgid "Use issue weight"
+msgstr ""
+
+msgid "Use issues to collaborate on ideas, solve problems, and plan work"
+msgstr ""
+
+msgid "Use one line per URI"
+msgstr ""
+
+msgid "Use primary email (%{email})"
+msgstr ""
+
+msgid "Use shortcuts"
+msgstr ""
+
+msgid "Use slash commands."
+msgstr ""
+
+msgid "Use template"
+msgstr ""
+
+msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
+msgstr ""
+
+msgid "Use the link below to confirm your email address (%{email})"
+msgstr ""
+
+msgid "Use the link below to confirm your email address."
+msgstr ""
+
+msgid "Use the public cloud instance URL (%{kroki_public_url}) or %{install_link_start}install Kroki%{install_link_end} on your own infrastructure and use your own instance URL."
+msgstr ""
+
+msgid "Use the search bar on the top of this page"
+msgstr ""
+
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
+msgstr ""
+
+msgid "Use this token to validate received payloads."
+msgstr ""
+
+msgid "Use webhook"
+msgstr ""
+
+msgid "Use your global notification setting"
+msgstr ""
+
+msgid "Use your smart card to authenticate with the LDAP server."
+msgstr ""
+
+msgid "Used"
+msgstr ""
+
+msgid "Used by %d package"
+msgid_plural "Used by %d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Used by members to sign in to your group in GitLab"
+msgstr ""
+
+msgid "Used by more than 100,000 organizations, GitLab is the most popular solution to manage git repositories on-premises."
+msgstr ""
+
+msgid "Used for account notifications if a %{openingTag}group-specific email address%{closingTag} is not set."
+msgstr ""
+
+msgid "Used for avatar detection. You can change it in your %{openingTag}profile settings%{closingTag}."
+msgstr ""
+
+msgid "Used for web based operations, such as edits and merges."
+msgstr ""
+
+msgid "Used programming language"
+msgstr ""
+
+msgid "Used to help configure your identity provider"
+msgstr ""
+
+msgid "User"
+msgstr ""
+
+msgid "User %{current_user_username} has started impersonating %{username}"
+msgstr ""
+
+msgid "User %{user_name} will be removed! Are you sure?"
+msgstr ""
+
+msgid "User %{username} was successfully removed."
+msgstr ""
+
+msgid "User %{user} SCIM identity is deactivated"
+msgstr ""
+
+msgid "User %{user} SCIM identity is reactivated"
+msgstr ""
+
+msgid "User %{user} was removed from %{group}."
+msgstr ""
+
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
+msgid "User ID"
+msgstr ""
+
+msgid "User OAuth applications"
+msgstr ""
+
+msgid "User Settings"
+msgstr ""
+
+msgid "User Status"
+msgstr ""
+
+msgid "User and IP rate limits"
+msgstr ""
+
+msgid "User cap"
+msgstr ""
+
+msgid "User cap cannot be enabled. The group or one of its subgroups or projects is shared externally."
+msgstr ""
+
+msgid "User created at"
+msgstr ""
+
+msgid "User deleted own account on %{timestamp}"
+msgstr ""
+
+msgid "User does not have a pending request"
+msgstr ""
+
+msgid "User does not have permission to create a Security Policy project."
+msgstr ""
+
+msgid "User doesn't exist or you don't have permission to change namespace commit emails."
+msgstr ""
+
+msgid "User has already been deactivated"
+msgstr ""
+
+msgid "User identity was successfully created."
+msgstr ""
+
+msgid "User identity was successfully removed."
+msgstr ""
+
+msgid "User identity was successfully updated."
+msgstr ""
+
+msgid "User is blocked"
+msgstr ""
+
+msgid "User is not allowed to resolve thread"
+msgstr ""
+
+msgid "User key"
+msgstr ""
+
+msgid "User key was successfully removed."
+msgstr ""
+
+msgid "User list %{name} will be removed. Are you sure?"
+msgstr ""
+
+msgid "User map"
+msgstr ""
+
+msgid "User pipeline minutes were successfully reset."
+msgstr ""
+
+msgid "User restrictions"
+msgstr ""
+
+msgid "User settings"
+msgstr ""
+
+msgid "User was successfully banned."
+msgstr ""
+
+msgid "User was successfully created."
+msgstr ""
+
+msgid "User was successfully removed from group and any subgroups and projects."
+msgstr ""
+
+msgid "User was successfully removed from group."
+msgstr ""
+
+msgid "User was successfully removed from project."
+msgstr ""
+
+msgid "User was successfully unbanned."
+msgstr ""
+
+msgid "User was successfully updated."
+msgstr ""
+
+msgid "User will be allowed to create possible spam! Are you sure?"
+msgstr ""
+
+msgid "User will be blocked! Are you sure?"
+msgstr ""
+
+msgid "User will not be allowed to create possible spam! Are you sure?"
+msgstr ""
+
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
+msgid "User-based escalation rules must have a user with access to the project"
+msgstr ""
+
+msgid "UserAvailability|%{author}%{badgeStart}Busy%{badgeEnd}"
+msgstr ""
+
+msgid "UserLists|Add"
+msgstr ""
+
+msgid "UserLists|Add Users"
+msgstr ""
+
+msgid "UserLists|Add users"
+msgstr ""
+
+msgid "UserLists|Cancel"
+msgstr ""
+
+msgid "UserLists|Create"
+msgstr ""
+
+msgid "UserLists|Define a set of users to be used within feature flag strategies"
+msgstr ""
+
+msgid "UserLists|Edit"
+msgstr ""
+
+msgid "UserLists|Edit %{name}"
+msgstr ""
+
+msgid "UserLists|Enter a comma separated list of user IDs. These IDs should be the users of the system in which the feature flag is set, not GitLab IDs"
+msgstr ""
+
+msgid "UserLists|Feature flag user list"
+msgstr ""
+
+msgid "UserLists|Get started with user lists"
+msgstr ""
+
+msgid "UserLists|Lists allow you to define a set of users to be used with feature flags. %{linkStart}Read more about feature flag lists.%{linkEnd}"
+msgstr ""
+
+msgid "UserLists|Loading user lists"
+msgstr ""
+
+msgid "UserLists|Name"
+msgstr ""
+
+msgid "UserLists|New list"
+msgstr ""
+
+msgid "UserLists|New user list"
+msgstr ""
+
+msgid "UserLists|Save"
+msgstr ""
+
+msgid "UserLists|There are no users"
+msgstr ""
+
+msgid "UserLists|There was an error fetching the user lists."
+msgstr ""
+
+msgid "UserLists|User ID"
+msgstr ""
+
+msgid "UserLists|User IDs"
+msgstr ""
+
+msgid "UserLists|User Lists"
+msgstr ""
+
+msgid "UserLists|User lists allow you to define a set of users to use with Feature Flags."
+msgstr ""
+
+msgid "UserList|Delete %{name}?"
+msgstr ""
+
+msgid "UserList|created %{timeago}"
+msgstr ""
+
+msgid "UserProfile|%{count} %{file}"
+msgstr ""
+
+msgid "UserProfile|%{id} · created %{created} by %{author}"
+msgstr ""
+
+msgid "UserProfile|Activity"
+msgstr ""
+
+msgid "UserProfile|An error occurred loading the activity. Please refresh the page to try again."
+msgstr ""
+
+msgid "UserProfile|An error occurred loading the followers. Please refresh the page to try again."
+msgstr ""
+
+msgid "UserProfile|An error occurred loading the following. Please refresh the page to try again."
+msgstr ""
+
+msgid "UserProfile|An error occurred loading the personal projects. Please refresh the page to try again."
+msgstr ""
+
+msgid "UserProfile|Blocked user"
+msgstr ""
+
+msgid "UserProfile|Bot activity"
+msgstr ""
+
+msgid "UserProfile|Busy"
+msgstr ""
+
+msgid "UserProfile|Contributed projects"
+msgstr ""
+
+msgid "UserProfile|Copy user ID: %{id}"
+msgstr ""
+
+msgid "UserProfile|Edit profile"
+msgstr ""
+
+msgid "UserProfile|Explore public groups to find projects to contribute to."
+msgstr ""
+
+msgid "UserProfile|Failed to set avatar. Please reload the page to try again."
+msgstr ""
+
+msgid "UserProfile|Followers"
+msgstr ""
+
+msgid "UserProfile|Following"
+msgstr ""
+
+msgid "UserProfile|Get started with snippets"
+msgstr ""
+
+msgid "UserProfile|Groups"
+msgstr ""
+
+msgid "UserProfile|Groups are the best way to manage projects and members."
+msgstr ""
+
+msgid "UserProfile|Join or create a group to start contributing by commenting on issues or submitting merge requests!"
+msgstr ""
+
+msgid "UserProfile|Most Recent Activity"
+msgstr ""
+
+msgid "UserProfile|No snippets found."
+msgstr ""
+
+msgid "UserProfile|Overview"
+msgstr ""
+
+msgid "UserProfile|Personal projects"
+msgstr ""
+
+msgid "UserProfile|Pronounced as: %{pronunciation}"
+msgstr ""
+
+msgid "UserProfile|Retry"
+msgstr ""
+
+msgid "UserProfile|Snippets"
+msgstr ""
+
+msgid "UserProfile|Snippets in GitLab can either be private, internal, or public."
+msgstr ""
+
+msgid "UserProfile|Star projects to track their progress and show your appreciation."
+msgstr ""
+
+msgid "UserProfile|Starred projects"
+msgstr ""
+
+msgid "UserProfile|Store, share, and embed bits of code and text."
+msgstr ""
+
+msgid "UserProfile|Subscribe"
+msgstr ""
+
+msgid "UserProfile|There are no projects available to be displayed here."
+msgstr ""
+
+msgid "UserProfile|This user doesn't have any followers"
+msgstr ""
+
+msgid "UserProfile|This user doesn't have any followers."
+msgstr ""
+
+msgid "UserProfile|This user doesn't have any snippets"
+msgstr ""
+
+msgid "UserProfile|This user has a private profile"
+msgstr ""
+
+msgid "UserProfile|This user hasn't contributed to any projects"
+msgstr ""
+
+msgid "UserProfile|This user hasn't starred any projects"
+msgstr ""
+
+msgid "UserProfile|This user is blocked"
+msgstr ""
+
+msgid "UserProfile|This user isn't following other users"
+msgstr ""
+
+msgid "UserProfile|This user isn't following other users."
+msgstr ""
+
+msgid "UserProfile|Unconfirmed user"
+msgstr ""
+
+msgid "UserProfile|User ID copied to clipboard"
+msgstr ""
+
+msgid "UserProfile|User profile navigation"
+msgstr ""
+
+msgid "UserProfile|View all"
+msgstr ""
+
+msgid "UserProfile|View user in admin area"
+msgstr ""
+
+msgid "UserProfile|You are not following other users"
+msgstr ""
+
+msgid "UserProfile|You are not following other users."
+msgstr ""
+
+msgid "UserProfile|You can create a group for several dependent projects."
+msgstr ""
+
+msgid "UserProfile|You do not have any followers"
+msgstr ""
+
+msgid "UserProfile|You do not have any followers."
+msgstr ""
+
+msgid "UserProfile|You haven't created any personal projects."
+msgstr ""
+
+msgid "UserProfile|You haven't created any snippets."
+msgstr ""
+
+msgid "UserProfile|Your projects can be available publicly, internally, or privately, at your choice."
+msgstr ""
+
+msgid "UserProfile|at"
+msgstr ""
+
+msgid "UserProfile|made a private contribution"
+msgstr ""
+
+msgid "UserProfile|updated %{updated}"
+msgstr ""
+
+msgid "Username"
+msgstr ""
+
+msgid "Username (optional)"
+msgstr ""
+
+msgid "Username and Password"
+msgstr ""
+
+msgid "Username is already taken."
+msgstr ""
+
+msgid "Username is available."
+msgstr ""
+
+msgid "Username or email"
+msgstr ""
+
+msgid "Username or primary email"
+msgstr ""
+
+msgid "Username:"
+msgstr ""
+
+msgid "Username: %{username}"
+msgstr ""
+
+msgid "Users"
+msgstr ""
+
+msgid "Users API rate limit"
+msgstr ""
+
+msgid "Users can launch a development environment from a GitLab browser tab when the %{linkStart}Gitpod%{linkEnd} integration is enabled."
+msgstr ""
+
+msgid "Users can reactivate their account by signing in. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Users can render diagrams in AsciiDoc, Markdown, reStructuredText, and Textile documents using Kroki."
+msgstr ""
+
+msgid "Users can request access (if visibility is public or internal)"
+msgstr ""
+
+msgid "Users can select 'Remember me' on sign-in to keep their session active beyond the session duration. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "Users cannot be added to projects in this group"
+msgstr ""
+
+msgid "Users in License"
+msgstr ""
+
+msgid "Users or groups set as approvers in the project's or merge request's settings."
+msgstr ""
+
+msgid "Users over License"
+msgstr ""
+
+msgid "Users requesting access to"
+msgstr ""
+
+msgid "Users to exclude from the rate limit"
+msgstr ""
+
+msgid "Users with a Guest role or those who don't belong to a Project or Group will not use a seat from your license."
+msgstr ""
+
+msgid "UsersSelect|%{name} + %{length} more"
+msgstr ""
+
+msgid "UsersSelect|Any User"
+msgstr ""
+
+msgid "UsersSelect|Assignee"
+msgstr ""
+
+msgid "UsersSelect|No assignee - %{openingTag} assign yourself %{closingTag}"
+msgstr ""
+
+msgid "UsersSelect|Unassigned"
+msgstr ""
+
+msgid "User|Data Analyst"
+msgstr ""
+
+msgid "User|Development Team Lead"
+msgstr ""
+
+msgid "User|Devops Engineer"
+msgstr ""
+
+msgid "User|Other"
+msgstr ""
+
+msgid "User|Product Designer"
+msgstr ""
+
+msgid "User|Product Manager"
+msgstr ""
+
+msgid "User|Security Analyst"
+msgstr ""
+
+msgid "User|Software Developer"
+msgstr ""
+
+msgid "User|Systems Administrator"
+msgstr ""
+
+msgid "Uses GitLab as an alternative to Sentry."
+msgstr ""
+
+msgid "Using %{code_start}::%{code_end} denotes a %{link_start}scoped label set%{link_end}"
+msgstr ""
+
+msgid "Using HTML script"
+msgstr ""
+
+msgid "Using required encryption strategy when encrypted field is missing!"
+msgstr ""
+
+msgid "Using the %{codeStart}needs%{codeEnd} keyword makes jobs run before their stage is reached. Jobs run as soon as their %{codeStart}needs%{codeEnd} relationships are met, which speeds up your pipelines."
+msgstr ""
+
+msgid "Validate"
+msgstr ""
+
+msgid "Validate your GitLab CI configuration"
+msgstr ""
+
+msgid "Validate your GitLab CI configuration file"
+msgstr ""
+
+msgid "Validated at"
+msgstr ""
+
+msgid "Validated at:"
+msgstr ""
+
+msgid "Validated:"
+msgstr ""
+
+msgid "Validations failed."
+msgstr ""
+
+msgid "Validation|can contain only lowercase letters, digits, '_' and '-'. Must start with a letter, and cannot end with '-' or '_'"
+msgstr ""
+
+msgid "Validation|groupId parameter is invalid"
+msgstr ""
+
+msgid "Validation|must belong to the same project"
+msgstr ""
+
+msgid "Validation|parameters are invalid"
+msgstr ""
+
+msgid "Validation|percentage must be a string between 0 and 100 inclusive"
+msgstr ""
+
+msgid "Validation|rollout must be a string between 0 and 100 inclusive"
+msgstr ""
+
+msgid "Validation|strategy name is invalid"
+msgstr ""
+
+msgid "Value"
+msgstr ""
+
+msgid "Value Stream Analytics"
+msgstr ""
+
+msgid "Value Stream Analytics can help you determine your team’s velocity"
+msgstr ""
+
+msgid "Value Streams Dashboard | DORA"
+msgstr ""
+
+msgid "Value stream"
+msgstr ""
+
+msgid "Value stream analytics"
+msgstr ""
+
+msgid "ValueStreamAnalyticsStage|There are 0 items to show in this stage, for these filters, within this time range."
+msgstr ""
+
+msgid "ValueStreamAnalytics|%{stageCount}+ items"
+msgstr ""
+
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ValueStreamAnalytics|&lt;1 minute"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Average number of deployments to production per day."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Average number of deployments to production per day. This metric measures how often value is delivered to end users."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Critical vulnerabilities over time."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Dashboard"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Go to docs"
+msgstr ""
+
+msgid "ValueStreamAnalytics|High vulnerabilities over time."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Lifecycle metrics"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Median time an incident was open on a production environment in the given time period."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Median time between merge request merge and deployment to a production environment for all MRs deployed in the given time period."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Median time from issue created to issue closed."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Median time from the earliest commit of a linked issue's merge request to when that issue is closed."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Merge request analytics"
+msgstr ""
+
+msgid "ValueStreamAnalytics|New Value Stream"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Number of commits pushed to the default branch"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Number of issues closed by month."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Number of new issues created."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Percentage of deployments that cause an incident in production."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Shows %{selectedSubjectFilterText} and %{labelsCount} for group '%{groupName}' and %{projectsCount} from %{createdAfter} to %{createdBefore}"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Shows %{selectedSubjectFilterText} and %{labelsCount} for group '%{groupName}' from %{createdAfter} to %{createdBefore}"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Shows %{selectedSubjectFilterText} for group '%{groupName}' and %{projectsCount} from %{createdAfter} to %{createdBefore}"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Shows %{selectedSubjectFilterText} for group '%{groupName}' from %{createdAfter} to %{createdBefore}"
+msgstr ""
+
+msgid "ValueStreamAnalytics|Tasks by type"
+msgstr ""
+
+msgid "ValueStreamAnalytics|The number of merge requests merged by month."
+msgstr ""
+
+msgid "ValueStreamAnalytics|The time it takes an organization to recover from a failure in production."
+msgstr ""
+
+msgid "ValueStreamAnalytics|The time to successfully deliver a commit into production. This metric reflects the efficiency of CI/CD pipelines."
+msgstr ""
+
+msgid "ValueStreamAnalytics|There was an error while fetching value stream analytics %{requestTypeName} data."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Total number of deploys to production."
+msgstr ""
+
+msgid "ValueStreamAnalytics|Value stream"
+msgstr ""
+
+msgid "ValueStreamAnalytics|View details"
+msgstr ""
+
+msgid "ValueStreamEvent|Items in stage"
+msgstr ""
+
+msgid "ValueStreamEvent|Only items that reached their stop event."
+msgstr ""
+
+msgid "ValueStreamEvent|Stage time (median)"
+msgstr ""
+
+msgid "ValueStreamEvent|Start"
+msgstr ""
+
+msgid "ValueStreamEvent|Stop"
+msgstr ""
+
+msgid "Variable"
+msgstr ""
+
+msgid "Variable (default)"
+msgstr ""
+
+msgid "Variable name '%{variable}' must not start with '%{prefix}'"
+msgstr ""
+
+msgid "Variables"
+msgstr ""
+
+msgid "Various container registry settings."
+msgstr ""
+
+msgid "Various email settings."
+msgstr ""
+
+msgid "Various settings that affect GitLab performance."
+msgstr ""
+
+msgid "Verification status"
+msgstr ""
+
+msgid "VerificationReminder|Pipeline failing? To keep GitLab spam and abuse free we ask that you verify your identity."
+msgstr ""
+
+msgid "VerificationReminder|Until then, shared runners will be unavailable. %{validateLinkStart}Validate your account%{validateLinkEnd} or %{docsLinkStart}use your own runners%{docsLinkEnd}."
+msgstr ""
+
+msgid "VerificationReminder|Your account has been validated"
+msgstr ""
+
+msgid "VerificationReminder|You’ll now be able to take advantage of free compute minutes on shared runners."
+msgstr ""
+
+msgid "Verifications status"
+msgstr ""
+
+msgid "Verified"
+msgstr ""
+
+msgid "Verified commit"
+msgstr ""
+
+msgid "Verify SAML Configuration"
+msgstr ""
+
+msgid "Verify code"
+msgstr ""
+
+msgid "Version"
+msgstr ""
+
+msgid "Version %{report_version} for report type %{report_type} is unsupported, supported versions for this report type are: %{supported_schema_versions}. GitLab will attempt to validate this report against the earliest supported versions of this report type, to show all the errors but will not ingest the report"
+msgstr ""
+
+msgid "Version %{versionNumber}"
+msgstr ""
+
+msgid "Version %{versionNumber} (latest)"
+msgstr ""
+
+msgid "VersionCheck|%{details}"
+msgstr ""
+
+msgid "VersionCheck|Important notice - Critical security release"
+msgstr ""
+
+msgid "VersionCheck|Learn more about this critical security release."
+msgstr ""
+
+msgid "VersionCheck|Remind me again in 3 days"
+msgstr ""
+
+msgid "VersionCheck|Up to date"
+msgstr ""
+
+msgid "VersionCheck|Update ASAP"
+msgstr ""
+
+msgid "VersionCheck|Update available"
+msgstr ""
+
+msgid "VersionCheck|Upgrade now"
+msgstr ""
+
+msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation immediately."
+msgstr ""
+
+msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
+msgstr ""
+
+msgid "View File Metadata"
+msgstr ""
+
+msgid "View Stage: %{title}"
+msgstr ""
+
+msgid "View alert details at"
+msgstr ""
+
+msgid "View alert details."
+msgstr ""
+
+msgid "View all"
+msgstr ""
+
+msgid "View all environments."
+msgstr ""
+
+msgid "View all issues"
+msgstr ""
+
+msgid "View blame"
+msgstr ""
+
+msgid "View blame as separate pages"
+msgstr ""
+
+msgid "View blame prior to this change"
+msgstr ""
+
+msgid "View card matches"
+msgstr ""
+
+msgid "View dependency details for your project"
+msgstr ""
+
+msgid "View deployment"
+msgstr ""
+
+msgid "View details"
+msgstr ""
+
+msgid "View details: %{details_url}"
+msgstr ""
+
+msgid "View documentation"
+msgstr ""
+
+msgid "View environment details page"
+msgstr ""
+
+msgid "View exposed artifact"
+msgid_plural "View %d exposed artifacts"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "View file @ "
+msgstr ""
+
+msgid "View file @ %{commitSha}"
+msgstr ""
+
+msgid "View group in admin area"
+msgstr ""
+
+msgid "View group labels"
+msgstr ""
+
+msgid "View group pipeline usage quota"
+msgstr ""
+
+msgid "View incident details at"
+msgstr ""
+
+msgid "View incident details."
+msgstr ""
+
+msgid "View incident issues."
+msgstr ""
+
+msgid "View issue"
+msgstr ""
+
+msgid "View issues"
+msgstr ""
+
+msgid "View it on GitLab"
+msgstr ""
+
+msgid "View job"
+msgstr ""
+
+msgid "View job currently using resource"
+msgstr ""
+
+msgid "View jobs"
+msgstr ""
+
+msgid "View labels"
+msgstr ""
+
+msgid "View log"
+msgstr ""
+
+msgid "View members"
+msgstr ""
+
+msgid "View milestones"
+msgstr ""
+
+msgid "View on %{url}"
+msgstr ""
+
+msgid "View open merge request"
+msgstr ""
+
+msgid "View page @ "
+msgstr ""
+
+msgid "View phone number matches"
+msgstr ""
+
+msgid "View project in admin area"
+msgstr ""
+
+msgid "View project labels"
+msgstr ""
+
+msgid "View public GPG key"
+msgid_plural "View public GPG keys"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "View replaced file @ "
+msgstr ""
+
+msgid "View seat usage"
+msgstr ""
+
+msgid "View summary notes"
+msgstr ""
+
+msgid "View supported languages and frameworks"
+msgstr ""
+
+msgid "View the %{code_open}last_activity_at%{code_close} attribute for %{project_link} using the %{projects_api_link}."
+msgstr ""
+
+msgid "View the documentation"
+msgstr ""
+
+msgid "View the latest successful deployment to this environment"
+msgstr ""
+
+msgid "View the publishing guide"
+msgstr ""
+
+msgid "View trigger token usage examples"
+msgstr ""
+
+msgid "View usage details"
+msgstr ""
+
+msgid "View users statistics"
+msgstr ""
+
+msgid "Viewed"
+msgstr ""
+
+msgid "Viewing commit"
+msgstr ""
+
+msgid "Violation"
+msgstr ""
+
+msgid "Visibility and access controls"
+msgstr ""
+
+msgid "Visibility level"
+msgstr ""
+
+msgid "Visibility level:"
+msgstr ""
+
+msgid "Visibility settings have been disabled by the administrator."
+msgstr ""
+
+msgid "Visibility, project features, permissions"
+msgstr ""
+
+msgid "Visibility:"
+msgstr ""
+
+msgid "VisibilityLevel|Internal"
+msgstr ""
+
+msgid "VisibilityLevel|Private"
+msgstr ""
+
+msgid "VisibilityLevel|Project access must be granted explicitly to each user. If this project is part of a group, access is granted to members of the group."
+msgstr ""
+
+msgid "VisibilityLevel|Public"
+msgstr ""
+
+msgid "VisibilityLevel|The group and any internal projects can be viewed by any logged in user except external users."
+msgstr ""
+
+msgid "VisibilityLevel|The group and any public projects can be viewed without any authentication."
+msgstr ""
+
+msgid "VisibilityLevel|The group and its projects can only be viewed by members."
+msgstr ""
+
+msgid "VisibilityLevel|The group, any public projects, and any of their members, issues, and merge requests can be viewed without authentication. Public groups and projects will be indexed by search engines. Read more about %{free_user_limit_doc_link_start}free user limits%{link_end}, or %{group_billings_link_start}upgrade to a paid tier%{link_end}."
+msgstr ""
+
+msgid "VisibilityLevel|The project can be accessed by any logged in user except external users."
+msgstr ""
+
+msgid "VisibilityLevel|The project can be accessed without any authentication."
+msgstr ""
+
+msgid "VisibilityLevel|Unknown"
+msgstr ""
+
+msgid "Visual Studio Code (HTTPS)"
+msgstr ""
+
+msgid "Visual Studio Code (SSH)"
+msgstr ""
+
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
+msgid "Vulnerabilities"
+msgstr ""
+
+msgid "Vulnerabilities over time"
+msgstr ""
+
+msgid "Vulnerability"
+msgstr ""
+
+msgid "Vulnerability Report"
+msgstr ""
+
+msgid "Vulnerability remediated. Review before resolving."
+msgstr ""
+
+msgid "Vulnerability report"
+msgstr ""
+
+msgid "Vulnerability resolved in %{branch}"
+msgstr ""
+
+msgid "Vulnerability resolved in the default branch"
+msgstr ""
+
+msgid "VulnerabilityChart|%{formattedStartDate} to today"
+msgstr ""
+
+msgid "VulnerabilityChart|Severity"
+msgstr ""
+
+msgid "VulnerabilityDismissalReasons|Acceptable risk"
+msgstr ""
+
+msgid "VulnerabilityDismissalReasons|False positive"
+msgstr ""
+
+msgid "VulnerabilityDismissalReasons|Mitigating control"
+msgstr ""
+
+msgid "VulnerabilityDismissalReasons|Not applicable"
+msgstr ""
+
+msgid "VulnerabilityDismissalReasons|Used in tests"
+msgstr ""
+
+msgid "VulnerabilityExport|Activity"
+msgstr ""
+
+msgid "VulnerabilityExport|Additional Info"
+msgstr ""
+
+msgid "VulnerabilityExport|CVE"
+msgstr ""
+
+msgid "VulnerabilityExport|CVSS Vectors"
+msgstr ""
+
+msgid "VulnerabilityExport|CWE"
+msgstr ""
+
+msgid "VulnerabilityExport|Comments"
+msgstr ""
+
+msgid "VulnerabilityExport|Details"
+msgstr ""
+
+msgid "VulnerabilityExport|Detected At"
+msgstr ""
+
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
+msgid "VulnerabilityExport|Full Path"
+msgstr ""
+
+msgid "VulnerabilityExport|Group Name"
+msgstr ""
+
+msgid "VulnerabilityExport|Location"
+msgstr ""
+
+msgid "VulnerabilityExport|Other Identifiers"
+msgstr ""
+
+msgid "VulnerabilityExport|Project Name"
+msgstr ""
+
+msgid "VulnerabilityExport|Scanner Name"
+msgstr ""
+
+msgid "VulnerabilityExport|Severity"
+msgstr ""
+
+msgid "VulnerabilityExport|Status"
+msgstr ""
+
+msgid "VulnerabilityExport|Tool"
+msgstr ""
+
+msgid "VulnerabilityExport|Vulnerability"
+msgstr ""
+
+msgid "VulnerabilityManagement|%{statusStart}Confirmed%{statusEnd} · %{timeago} by %{user}"
+msgstr ""
+
+msgid "VulnerabilityManagement|%{statusStart}Detected%{statusEnd} · %{timeago} in pipeline %{pipelineLink}"
+msgstr ""
+
+msgid "VulnerabilityManagement|%{statusStart}Dismissed%{statusEnd} · %{timeago} by %{user}"
+msgstr ""
+
+msgid "VulnerabilityManagement|%{statusStart}Dismissed%{statusEnd}: %{dismissalReason} · %{timeago} by %{user}"
+msgstr ""
+
+msgid "VulnerabilityManagement|%{statusStart}Resolved%{statusEnd} · %{timeago} by %{user}"
+msgstr ""
+
+msgid "VulnerabilityManagement|(optional) Include the solution to the vulnerability if available."
+msgstr ""
+
+msgid "VulnerabilityManagement|A removed or remediated vulnerability"
+msgstr ""
+
+msgid "VulnerabilityManagement|A true-positive and will fix"
+msgstr ""
+
+msgid "VulnerabilityManagement|A verified true-positive vulnerability"
+msgstr ""
+
+msgid "VulnerabilityManagement|Add vulnerability finding"
+msgstr ""
+
+msgid "VulnerabilityManagement|An unverified non-confirmed finding"
+msgstr ""
+
+msgid "VulnerabilityManagement|Could not process %{issueReference}: %{errorMessage}."
+msgstr ""
+
+msgid "VulnerabilityManagement|Create Jira issue"
+msgstr ""
+
+msgid "VulnerabilityManagement|Dismiss as..."
+msgstr ""
+
+msgid "VulnerabilityManagement|Enter a name"
+msgstr ""
+
+msgid "VulnerabilityManagement|Enter the CVE or CWE code"
+msgstr ""
+
+msgid "VulnerabilityManagement|Enter the CVE or CWE identifier URL"
+msgstr ""
+
+msgid "VulnerabilityManagement|Fetching linked Jira issues"
+msgstr ""
+
+msgid "VulnerabilityManagement|Identifier code and URL are required fields"
+msgstr ""
+
+msgid "VulnerabilityManagement|Manually add a vulnerability entry into the vulnerability report."
+msgstr ""
+
+msgid "VulnerabilityManagement|Name is a required field"
+msgstr ""
+
+msgid "VulnerabilityManagement|Needs triage"
+msgstr ""
+
+msgid "VulnerabilityManagement|Read more about related issues"
+msgstr ""
+
+msgid "VulnerabilityManagement|Related Jira issues"
+msgstr ""
+
+msgid "VulnerabilityManagement|Requires assessment"
+msgstr ""
+
+msgid "VulnerabilityManagement|Select a method"
+msgstr ""
+
+msgid "VulnerabilityManagement|Select a severity level"
+msgstr ""
+
+msgid "VulnerabilityManagement|Select a status"
+msgstr ""
+
+msgid "VulnerabilityManagement|Severity is a required field"
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong while creating vulnerability"
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong while trying to delete the comment. Please try again later."
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong while trying to fetch related Jira issues. Please check the %{linkStart}Jira integration settings%{linkEnd} and try again."
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong while trying to refresh the vulnerability. Please try again later."
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong while trying to retrieve the vulnerability history. Please try again later."
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong while trying to save the comment. Please try again later."
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong while trying to unlink the issue. Please try again later."
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong, could not get user."
+msgstr ""
+
+msgid "VulnerabilityManagement|Something went wrong, could not update vulnerability state."
+msgstr ""
+
+msgid "VulnerabilityManagement|Status is a required field"
+msgstr ""
+
+msgid "VulnerabilityManagement|Submit vulnerability"
+msgstr ""
+
+msgid "VulnerabilityManagement|Summary, detailed description, steps to reproduce, etc."
+msgstr ""
+
+msgid "VulnerabilityManagement|Verified as fixed or mitigated"
+msgstr ""
+
+msgid "VulnerabilityManagement|Vulnerability name or type. Ex: Cross-site scripting"
+msgstr ""
+
+msgid "VulnerabilityManagement|Will not fix or a false-positive"
+msgstr ""
+
+msgid "VulnerabilityManagement|invalid issue link or ID"
+msgstr ""
+
+msgid "VulnerabilityStatusTypes|Confirmed"
+msgstr ""
+
+msgid "VulnerabilityStatusTypes|Dismissed"
+msgstr ""
+
+msgid "VulnerabilityStatusTypes|Needs triage"
+msgstr ""
+
+msgid "VulnerabilityStatusTypes|Resolved"
+msgstr ""
+
+msgid "Vulnerability|%{file} was not found in commit %{ref}"
+msgstr ""
+
+msgid "Vulnerability|%{scannerName} (version %{scannerVersion})"
+msgstr ""
+
+msgid "Vulnerability|Activity"
+msgstr ""
+
+msgid "Vulnerability|Actual Response"
+msgstr ""
+
+msgid "Vulnerability|Actual received response is the one received when this fault was detected"
+msgstr ""
+
+msgid "Vulnerability|Actual response:"
+msgstr ""
+
+msgid "Vulnerability|Add another identifier"
+msgstr ""
+
+msgid "Vulnerability|Additional Info"
+msgstr ""
+
+msgid "Vulnerability|Assert:"
+msgstr ""
+
+msgid "Vulnerability|Bug Bounty"
+msgstr ""
+
+msgid "Vulnerability|CVSS v3"
+msgstr ""
+
+msgid "Vulnerability|Class"
+msgstr ""
+
+msgid "Vulnerability|Cluster"
+msgstr ""
+
+msgid "Vulnerability|Code Review"
+msgstr ""
+
+msgid "Vulnerability|Comments"
+msgstr ""
+
+msgid "Vulnerability|Could not load prompt."
+msgstr ""
+
+msgid "Vulnerability|Crash address"
+msgstr ""
+
+msgid "Vulnerability|Crash address:"
+msgstr ""
+
+msgid "Vulnerability|Crash state"
+msgstr ""
+
+msgid "Vulnerability|Crash type"
+msgstr ""
+
+msgid "Vulnerability|Crash type:"
+msgstr ""
+
+msgid "Vulnerability|Description"
+msgstr ""
+
+msgid "Vulnerability|Details"
+msgstr ""
+
+msgid "Vulnerability|Detected"
+msgstr ""
+
+msgid "Vulnerability|Detection method"
+msgstr ""
+
+msgid "Vulnerability|Download"
+msgstr ""
+
+msgid "Vulnerability|Enter the associated CVE or CWE entries for this vulnerability."
+msgstr ""
+
+msgid "Vulnerability|Evidence"
+msgstr ""
+
+msgid "Vulnerability|Evidence:"
+msgstr ""
+
+msgid "Vulnerability|Explain this vulnerability"
+msgstr ""
+
+msgid "Vulnerability|Explain this vulnerability and how to mitigate it with AI"
+msgstr ""
+
+msgid "Vulnerability|Explain vulnerability"
+msgstr ""
+
+msgid "Vulnerability|External Security Report"
+msgstr ""
+
+msgid "Vulnerability|False positive detected"
+msgstr ""
+
+msgid "Vulnerability|File"
+msgstr ""
+
+msgid "Vulnerability|File:"
+msgstr ""
+
+msgid "Vulnerability|GitLab Security Report"
+msgstr ""
+
+msgid "Vulnerability|GitLab has identified sensitive strings in the code snippet for the AI prompt, indicating a possible leaked secret. Please review your code before utilizing the Explain This Vulnerability feature. If you still wish to proceed and send the %{linkStart}code%{linkEnd} to the AI, click the checkbox below."
+msgstr ""
+
+msgid "Vulnerability|Hide prompt"
+msgstr ""
+
+msgid "Vulnerability|Identifier"
+msgstr ""
+
+msgid "Vulnerability|Identifier URL"
+msgstr ""
+
+msgid "Vulnerability|Identifier code"
+msgstr ""
+
+msgid "Vulnerability|Identifiers"
+msgstr ""
+
+msgid "Vulnerability|Image"
+msgstr ""
+
+msgid "Vulnerability|Image:"
+msgstr ""
+
+msgid "Vulnerability|Information related to how the vulnerability was discovered and its impact on the system."
+msgstr ""
+
+msgid "Vulnerability|Links"
+msgstr ""
+
+msgid "Vulnerability|Location"
+msgstr ""
+
+msgid "Vulnerability|Method"
+msgstr ""
+
+msgid "Vulnerability|Namespace"
+msgstr ""
+
+msgid "Vulnerability|Namespace:"
+msgstr ""
+
+msgid "Vulnerability|Project"
+msgstr ""
+
+msgid "Vulnerability|Project:"
+msgstr ""
+
+msgid "Vulnerability|Providing the source code improves the response quality. If security is a concern, you can send basic vulnerability info for a generic example."
+msgstr ""
+
+msgid "Vulnerability|Remove identifier row"
+msgstr ""
+
+msgid "Vulnerability|Reproduction Assets"
+msgstr ""
+
+msgid "Vulnerability|Request"
+msgstr ""
+
+msgid "Vulnerability|Request/Response"
+msgstr ""
+
+msgid "Vulnerability|Response generated by AI"
+msgstr ""
+
+msgid "Vulnerability|Scanner Provider"
+msgstr ""
+
+msgid "Vulnerability|Scanner:"
+msgstr ""
+
+msgid "Vulnerability|Security Audit"
+msgstr ""
+
+msgid "Vulnerability|Select a severity"
+msgstr ""
+
+msgid "Vulnerability|Send code with prompt"
+msgstr ""
+
+msgid "Vulnerability|Sending code to AI"
+msgstr ""
+
+msgid "Vulnerability|Sent request:"
+msgstr ""
+
+msgid "Vulnerability|Set the status of the vulnerability finding based on the information available to you."
+msgstr ""
+
+msgid "Vulnerability|Severity"
+msgstr ""
+
+msgid "Vulnerability|Severity:"
+msgstr ""
+
+msgid "Vulnerability|Show prompt"
+msgstr ""
+
+msgid "Vulnerability|Something went wrong while trying to get the source file."
+msgstr ""
+
+msgid "Vulnerability|Stacktrace snippet:"
+msgstr ""
+
+msgid "Vulnerability|Status"
+msgstr ""
+
+msgid "Vulnerability|Status:"
+msgstr ""
+
+msgid "Vulnerability|The scanner determined this vulnerability to be a false positive. Verify the evaluation before changing its status. %{linkStart}Learn more about false positive detection.%{linkEnd}"
+msgstr ""
+
+msgid "Vulnerability|The unmodified response is the original response that had no mutations done to the request"
+msgstr ""
+
+msgid "Vulnerability|This is a beta feature that uses AI to explain the vulnerability and provide recommendations. Use this feature with caution as we continue to iterate. Please provide your feedback and ideas in %{linkStart}this issue%{linkEnd}."
+msgstr ""
+
+msgid "Vulnerability|Tool"
+msgstr ""
+
+msgid "Vulnerability|Tool:"
+msgstr ""
+
+msgid "Vulnerability|Training"
+msgstr ""
+
+msgid "Vulnerability|Training not available for this vulnerability."
+msgstr ""
+
+msgid "Vulnerability|URL:"
+msgstr ""
+
+msgid "Vulnerability|Unmodified Response"
+msgstr ""
+
+msgid "Vulnerability|Unmodified response:"
+msgstr ""
+
+msgid "Vulnerability|View training"
+msgstr ""
+
+msgid "Vulnerability|Vulnerable class:"
+msgstr ""
+
+msgid "Vulnerability|Vulnerable method:"
+msgstr ""
+
+msgid "Vulnerability|Warning: possible secrets detected"
+msgstr ""
+
+msgid "WARNING:"
+msgstr ""
+
+msgid "WARNING: This snippet contains hidden files which might be used to mask malicious behavior. Exercise caution if cloning and executing code from this snippet."
+msgstr ""
+
+msgid "Wait for the file to load to copy its contents"
+msgstr ""
+
+msgid "Waiting for approvals"
+msgstr ""
+
+msgid "Waiting for merge (open and assigned)"
+msgstr ""
+
+msgid "Want to see the data? Please ask an administrator for access."
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+msgid "Warning:"
+msgstr ""
+
+msgid "Warning: Displaying this diagram might cause performance issues on this page."
+msgstr ""
+
+msgid "Warning: Synchronizing LDAP removes direct members' access."
+msgstr ""
+
+msgid "We also use email for avatar detection if no avatar is uploaded."
+msgstr ""
+
+msgid "We are currently unable to fetch data for the pipeline header."
+msgstr ""
+
+msgid "We are currently unable to fetch data for this graph."
+msgstr ""
+
+msgid "We could not determine the path to remove the epic"
+msgstr ""
+
+msgid "We could not determine the path to remove the issue"
+msgstr ""
+
+msgid "We couldn't find any %{scope} matching %{term}"
+msgstr ""
+
+msgid "We couldn't find any %{scope} matching %{term} in group %{group}"
+msgstr ""
+
+msgid "We couldn't find any %{scope} matching %{term} in project %{project}"
+msgstr ""
+
+msgid "We detected potential spam in the %{humanized_resource_name}. Please solve the reCAPTCHA to proceed."
+msgstr ""
+
+msgid "We found your token in a public project and have automatically revoked it to protect your account."
+msgstr ""
+
+msgid "We have found the following errors:"
+msgstr ""
+
+msgid "We heard back from your device. You have been authenticated."
+msgstr ""
+
+msgid "We invite you to %{featureLinkStart}request a feature%{featureLinkEnd}, %{bugLinkStart}report a bug%{bugLinkEnd} or %{feedbackLinkStart}share feedback%{feedbackLinkEnd}"
+msgstr ""
+
+msgid "We recommend a work email address."
+msgstr ""
+
+msgid "We recommend that you buy additional Pipeline minutes to avoid any interruption of service."
+msgstr ""
+
+msgid "We recommend that you buy additional Pipeline minutes to resume normal service."
+msgstr ""
+
+msgid "We recommend using cloud-based authenticator applications that can restore access if you lose your hardware device."
+msgstr ""
+
+msgid "We sent you an email with reset password instructions"
+msgstr ""
+
+msgid "We tried to automatically renew your subscription for %{strong}%{namespace_name}%{strong_close} on %{expires_on} but something went wrong so your subscription was downgraded to the free plan. Don't worry, your data is safe. We suggest you check your payment method and get in touch with our support team (%{support_link}). They'll gladly help with your subscription renewal."
+msgstr ""
+
+msgid "We want to be sure it is you, please confirm you are not a robot."
+msgstr ""
+
+msgid "We want to let you know %{username} has exceeded the Git rate limit due to them downloading more than %{max_project_downloads} project %{repositories_text} within %{within_text}."
+msgstr ""
+
+msgid "We will notify %{inviter} that you declined their invitation to join GitLab. You will stop receiving reminders."
+msgstr ""
+
+msgid "We would like to inform you that your subscription GitLab Enterprise Edition %{plan_name} is nearing its user limit. You have %{active_user_count} active users, which is almost at the user limit of %{maximum_user_count}."
+msgstr ""
+
+msgid "We'll use this to help surface the right features and information to you."
+msgstr ""
+
+msgid "We're experiencing difficulties and this tab content is currently unavailable."
+msgstr ""
+
+msgid "We've detected some unusual activity"
+msgstr ""
+
+msgid "We've detected unusual activity"
+msgstr ""
+
+msgid "We've found no vulnerabilities"
+msgstr ""
+
+msgid "Web IDE"
+msgstr ""
+
+msgid "Web Terminal"
+msgstr ""
+
+msgid "Web terminal"
+msgstr ""
+
+msgid "WebAuthn Devices (%{length})"
+msgstr ""
+
+msgid "WebAuthn only works with HTTPS-enabled websites. Contact your administrator for more details."
+msgstr ""
+
+msgid "WebIDE|Fork project"
+msgstr ""
+
+msgid "WebIDE|Go to fork"
+msgstr ""
+
+msgid "WebIDE|Merge request"
+msgstr ""
+
+msgid "WebIDE|Quickly and easily edit multiple files in your project."
+msgstr ""
+
+msgid "WebIDE|Quickly and easily edit multiple files in your project. Press . to open"
+msgstr ""
+
+msgid "WebIDE|This project does not accept unsigned commits."
+msgstr ""
+
+msgid "WebIDE|This project does not accept unsigned commits. You can’t commit changes through the Web IDE."
+msgstr ""
+
+msgid "WebIDE|You can’t edit files directly in this project. Fork this project and submit a merge request with your changes."
+msgstr ""
+
+msgid "WebIDE|You can’t edit files directly in this project. Go to your fork and submit a merge request with your changes."
+msgstr ""
+
+msgid "WebIDE|You need permission to edit files directly in this project."
+msgstr ""
+
+msgid "WebexTeamsService|Send notifications about project events to Webex Teams."
+msgstr ""
+
+msgid "WebexTeamsService|Send notifications about project events to a Webex Teams conversation. %{docs_link}"
+msgstr ""
+
+msgid "WebexTeamsService|Webex Teams"
+msgstr ""
+
+msgid "Webhook"
+msgstr ""
+
+msgid "Webhook Logs"
+msgstr ""
+
+msgid "Webhook Settings"
+msgstr ""
+
+msgid "Webhook events will be displayed here."
+msgstr ""
+
+msgid "Webhook was created"
+msgstr ""
+
+msgid "Webhook was deleted"
+msgstr ""
+
+msgid "Webhook was scheduled for deletion"
+msgstr ""
+
+msgid "Webhook was updated"
+msgstr ""
+
+msgid "Webhook:"
+msgstr ""
+
+msgid "Webhooks"
+msgstr ""
+
+msgid "Webhooks Help"
+msgstr ""
+
+msgid "Webhooks|+ Mask another portion of URL"
+msgstr ""
+
+msgid "Webhooks|A comment is added to a confidential issue."
+msgstr ""
+
+msgid "Webhooks|A comment is added to an issue or merge request."
+msgstr ""
+
+msgid "Webhooks|A confidential issue is created, updated, closed, or reopened."
+msgstr ""
+
+msgid "Webhooks|A deployment starts, finishes, fails, or is canceled."
+msgstr ""
+
+msgid "Webhooks|A feature flag is turned on or off."
+msgstr ""
+
+msgid "Webhooks|A group member is created, updated, or removed."
+msgstr ""
+
+msgid "Webhooks|A job's status changes."
+msgstr ""
+
+msgid "Webhooks|A merge request is created, updated, or merged."
+msgstr ""
+
+msgid "Webhooks|A new tag is pushed to the repository."
+msgstr ""
+
+msgid "Webhooks|A pipeline's status changes."
+msgstr ""
+
+msgid "Webhooks|A release is created, updated, or deleted."
+msgstr ""
+
+msgid "Webhooks|A subgroup is created or removed."
+msgstr ""
+
+msgid "Webhooks|A webhook in this group was automatically disabled after being retried multiple times."
+msgstr ""
+
+msgid "Webhooks|A webhook in this project was automatically disabled after being retried multiple times."
+msgstr ""
+
+msgid "Webhooks|A wiki page is created or updated."
+msgstr ""
+
+msgid "Webhooks|An emoji is awarded or revoked. %{help_link}?"
+msgstr ""
+
+msgid "Webhooks|An issue is created, updated, closed, or reopened."
+msgstr ""
+
+msgid "Webhooks|Are you sure you want to delete this group hook?"
+msgstr ""
+
+msgid "Webhooks|Are you sure you want to delete this project hook?"
+msgstr ""
+
+msgid "Webhooks|Are you sure you want to delete this webhook?"
+msgstr ""
+
+msgid "Webhooks|Confidential comments"
+msgstr ""
+
+msgid "Webhooks|Confidential issues events"
+msgstr ""
+
+msgid "Webhooks|Delete webhook"
+msgstr ""
+
+msgid "Webhooks|Deployment events"
+msgstr ""
+
+msgid "Webhooks|Do not show sensitive data such as tokens in the UI."
+msgstr ""
+
+msgid "Webhooks|Enable SSL verification"
+msgstr ""
+
+msgid "Webhooks|Failed to connect"
+msgstr ""
+
+msgid "Webhooks|Fails to connect"
+msgstr ""
+
+msgid "Webhooks|Feature flag events"
+msgstr ""
+
+msgid "Webhooks|Go to webhooks"
+msgstr ""
+
+msgid "Webhooks|How it looks in the UI"
+msgstr ""
+
+msgid "Webhooks|Issues events"
+msgstr ""
+
+msgid "Webhooks|Job events"
+msgstr ""
+
+msgid "Webhooks|Mask portions of URL"
+msgstr ""
+
+msgid "Webhooks|Member events"
+msgstr ""
+
+msgid "Webhooks|Merge request events"
+msgstr ""
+
+msgid "Webhooks|Must match part of URL"
+msgstr ""
+
+msgid "Webhooks|Pipeline events"
+msgstr ""
+
+msgid "Webhooks|Regular expression"
+msgstr ""
+
+msgid "Webhooks|Regular expressions such as %{REGEX_CODE} are supported."
+msgstr ""
+
+msgid "Webhooks|Releases events"
+msgstr ""
+
+msgid "Webhooks|Response body is empty"
+msgstr ""
+
+msgid "Webhooks|Response headers data is empty"
+msgstr ""
+
+msgid "Webhooks|SSL verification"
+msgstr ""
+
+msgid "Webhooks|Secret token"
+msgstr ""
+
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
+msgid "Webhooks|Sensitive portion of URL"
+msgstr ""
+
+msgid "Webhooks|Show full URL"
+msgstr ""
+
+msgid "Webhooks|Subgroup events"
+msgstr ""
+
+msgid "Webhooks|Tag push events"
+msgstr ""
+
+msgid "Webhooks|The webhook %{help_link_start}failed to connect%{help_link_end}, and will retry in %{retry_time}. To re-enable it, check %{strong_start}Recent events%{strong_end} for error details, then test your settings below."
+msgstr ""
+
+msgid "Webhooks|The webhook failed to connect, and is disabled. To re-enable it, check %{strong_start}Recent events%{strong_end} for error details, then test your settings below."
+msgstr ""
+
+msgid "Webhooks|Trigger"
+msgstr ""
+
+msgid "Webhooks|URL must be percent-encoded if it contains one or more special characters."
+msgstr ""
+
+msgid "Webhooks|URL preview"
+msgstr ""
+
+msgid "Webhooks|Used to validate received payloads. Sent with the request in the %{code_start}X-Gitlab-Token%{code_end} HTTP header."
+msgstr ""
+
+msgid "Webhooks|Webhook disabled"
+msgstr ""
+
+msgid "Webhooks|Webhook failed to connect"
+msgstr ""
+
+msgid "Webhooks|Webhook fails to connect"
+msgstr ""
+
+msgid "Webhooks|Webhook rate limit has been reached"
+msgstr ""
+
+msgid "Webhooks|Webhooks for %{root_namespace} are now disabled because they've been triggered more than %{limit} times per minute. They'll be automatically re-enabled in the next minute."
+msgstr ""
+
+msgid "Webhooks|Wiki page events"
+msgstr ""
+
+msgid "Webhooks|Wildcard pattern"
+msgstr ""
+
+msgid "Webhooks|Wildcards such as %{WILDCARD_CODE_STABLE} or %{WILDCARD_CODE_PRODUCTION} are supported."
+msgstr ""
+
+msgid "Website"
+msgstr ""
+
+msgid "Website:"
+msgstr ""
+
+msgid "Wed"
+msgstr ""
+
+msgid "Wednesday"
+msgstr ""
+
+msgid "Weekday"
+msgstr ""
+
+msgid "Weeks"
+msgstr ""
+
+msgid "Weight"
+msgstr ""
+
+msgid "Weight %{weight}"
+msgstr ""
+
+msgid "Welcome back! Your account had been deactivated due to inactivity but is now reactivated."
+msgstr ""
+
+msgid "Welcome to GitLab"
+msgstr ""
+
+msgid "Welcome to GitLab, %{first_name}!"
+msgstr ""
+
+msgid "Welcome to GitLab,%{br_tag}%{name}!"
+msgstr ""
+
+msgid "Welcome, %{name}!"
+msgstr ""
+
+msgid "What are some examples?"
+msgstr ""
+
+msgid "What does the setting affect?"
+msgstr ""
+
+msgid "What does this command do?"
+msgstr ""
+
+msgid "What is GitLab Runner?"
+msgstr ""
+
+msgid "What is Markdown?"
+msgstr ""
+
+msgid "What is a compute quota?"
+msgstr ""
+
+msgid "What is listed here?"
+msgstr ""
+
+msgid "What is repository mirroring?"
+msgstr ""
+
+msgid "What is root cause analysis?"
+msgstr ""
+
+msgid "What is squashing?"
+msgstr ""
+
+msgid "What templates can I create?"
+msgstr ""
+
+msgid "What variables can I use?"
+msgstr ""
+
+msgid "What will you use this group for?"
+msgstr ""
+
+msgid "What would you like to do?"
+msgstr ""
+
+msgid "What's new"
+msgstr ""
+
+msgid "When a deployment job is successful, prevent older deployment jobs that are still pending."
+msgstr ""
+
+msgid "When a runner is locked, it cannot be assigned to other projects"
+msgstr ""
+
+msgid "When all the merge checks for this merge request pass, it will %{linkStart}automatically merge%{linkEnd}."
+msgstr ""
+
+msgid "When enabled, SSH keys with no expiry date or an invalid expiration date are no longer accepted. Leave blank for no limit."
+msgstr ""
+
+msgid "When enabled, cleanup policies execute faster but put more load on Redis."
+msgstr ""
+
+msgid "When enabled, job logs are collected by Datadog and displayed along with pipeline execution traces."
+msgstr ""
+
+msgid "When left blank, default value of 365 is applied. When set, value must be 365 or less. When changed, existing access tokens with an expiration date beyond the maximum allowable lifetime are revoked."
+msgstr ""
+
+msgid "When merge requests and commits in the default branch close, any issues they reference also close."
+msgstr ""
+
+msgid "When the pipeline for this merge request succeeds, it will %{linkStart}automatically merge%{linkEnd}."
+msgstr ""
+
+msgid "When this merge request is accepted"
+msgid_plural "When these merge requests are accepted"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "When using the %{code_open}http://%{code_close} or %{code_open}https://%{code_close} protocols, please provide the exact URL to the repository. HTTP redirects will not be followed."
+msgstr ""
+
+msgid "When you transfer your project to a group, you can easily manage multiple projects, view usage quotas for storage, pipeline minutes, and users, and start a trial or upgrade to a paid tier."
+msgstr ""
+
+msgid "When your trial ends, you'll have a maximum of %d member on the Free tier, or you can get more by upgrading to a paid tier."
+msgid_plural "When your trial ends, you'll have a maximum of %d members on the Free tier, or you can get more by upgrading to a paid tier."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "When your trial ends, you'll move to the Free tier, which has a limit of %{free_user_limit} seat. %{free_user_limit} seat will remain active, and members not occupying a seat will have the %{link_start}Over limit status%{link_end} and lose access to this group."
+msgid_plural "When your trial ends, you'll move to the Free tier, which has a limit of %{free_user_limit} seats. %{free_user_limit} seats will remain active, and members not occupying a seat will have the %{link_start}Over limit status%{link_end} and lose access to this group."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "When:"
+msgstr ""
+
+msgid "Which API requests are affected?"
+msgstr ""
+
+msgid "Which emoji events trigger webhooks"
+msgstr ""
+
+msgid "While it's rare to have no vulnerabilities, it can happen. In any event, we ask that you please double check your settings to make sure you've set up your dashboard correctly."
+msgstr ""
+
+msgid "Who can approve?"
+msgstr ""
+
+msgid "Who can see this group?"
+msgstr ""
+
+msgid "Who will be able to see this group?"
+msgstr ""
+
+msgid "Who will be using GitLab?"
+msgstr ""
+
+msgid "Who will be using this GitLab subscription?"
+msgstr ""
+
+msgid "Who will be using this GitLab trial?"
+msgstr ""
+
+msgid "Who will be using this group?"
+msgstr ""
+
+msgid "Why are you signing up? (optional)"
+msgstr ""
+
+msgid "Why can't I approve?"
+msgstr ""
+
+msgid "Wiki"
+msgstr ""
+
+msgid "Wiki page"
+msgstr ""
+
+msgid "Wiki page was successfully created."
+msgstr ""
+
+msgid "Wiki page was successfully deleted."
+msgstr ""
+
+msgid "Wiki page was successfully updated."
+msgstr ""
+
+msgid "WikiClone|Clone your wiki"
+msgstr ""
+
+msgid "WikiClone|Git Access"
+msgstr ""
+
+msgid "WikiClone|Install Gollum"
+msgstr ""
+
+msgid "WikiClone|Start Gollum and edit locally"
+msgstr ""
+
+msgid "WikiEdit|There is already a page with the same title in that path."
+msgstr ""
+
+msgid "WikiEmptyIssueMessage|Suggest wiki improvement"
+msgstr ""
+
+msgid "WikiEmptyIssueMessage|You must be a group member in order to add wiki pages. If you have suggestions for how to improve the wiki for this group, consider opening an issue in the %{issues_link}."
+msgstr ""
+
+msgid "WikiEmptyIssueMessage|You must be a project member in order to add wiki pages. If you have suggestions for how to improve the wiki for this project, consider opening an issue in the %{issues_link}."
+msgstr ""
+
+msgid "WikiEmptyIssueMessage|issue tracker"
+msgstr ""
+
+msgid "WikiEmpty| Have a Confluence wiki already? Use that instead."
+msgstr ""
+
+msgid "WikiEmpty|A wiki is where you can store all the details about your group. This can include why you've created it, its principles, how to use it, and so on."
+msgstr ""
+
+msgid "WikiEmpty|A wiki is where you can store all the details about your project. This can include why you've created it, its principles, how to use it, and so on."
+msgstr ""
+
+msgid "WikiEmpty|Confluence is enabled"
+msgstr ""
+
+msgid "WikiEmpty|Create your first page"
+msgstr ""
+
+msgid "WikiEmpty|Enable the Confluence Wiki integration"
+msgstr ""
+
+msgid "WikiEmpty|Go to Confluence"
+msgstr ""
+
+msgid "WikiEmpty|Suggest wiki improvement"
+msgstr ""
+
+msgid "WikiEmpty|The wiki lets you write documentation for your group"
+msgstr ""
+
+msgid "WikiEmpty|The wiki lets you write documentation for your project"
+msgstr ""
+
+msgid "WikiEmpty|This group has no wiki pages"
+msgstr ""
+
+msgid "WikiEmpty|This project has no wiki pages"
+msgstr ""
+
+msgid "WikiEmpty|You must be a group member in order to add wiki pages."
+msgstr ""
+
+msgid "WikiEmpty|You must be a project member in order to add wiki pages."
+msgstr ""
+
+msgid "WikiEmpty|You've enabled the Confluence Workspace integration. Your wiki will be viewable directly within Confluence. We are hard at work integrating Confluence more seamlessly into GitLab. If you'd like to stay up to date, follow our %{wiki_confluence_epic_link_start}Confluence epic%{wiki_confluence_epic_link_end}."
+msgstr ""
+
+msgid "WikiHistoricalPage|Browse history"
+msgstr ""
+
+msgid "WikiHistoricalPage|Go to most recent version"
+msgstr ""
+
+msgid "WikiHistoricalPage|This is an old version of this page."
+msgstr ""
+
+msgid "WikiPageConfirmDelete|Are you sure you want to delete this page?"
+msgstr ""
+
+msgid "WikiPageConfirmDelete|Delete page"
+msgstr ""
+
+msgid "WikiPageConfirmDelete|Delete page %{pageTitle}?"
+msgstr ""
+
+msgid "WikiPageConflictMessage|Someone edited the page the same time you did. Please check out %{wikiLinkStart}the page%{wikiLinkEnd} and make sure your changes will not unintentionally remove theirs."
+msgstr ""
+
+msgid "WikiPage|Cancel"
+msgstr ""
+
+msgid "WikiPage|Commit message"
+msgstr ""
+
+msgid "WikiPage|Content"
+msgstr ""
+
+msgid "WikiPage|Create %{pageTitle}"
+msgstr ""
+
+msgid "WikiPage|Create page"
+msgstr ""
+
+msgid "WikiPage|Format"
+msgstr ""
+
+msgid "WikiPage|Learn more."
+msgstr ""
+
+msgid "WikiPage|Page title"
+msgstr ""
+
+msgid "WikiPage|Save changes"
+msgstr ""
+
+msgid "WikiPage|Tip: You can move this page by adding the path to the beginning of the title."
+msgstr ""
+
+msgid "WikiPage|Tip: You can specify the full path for the new file. We will automatically create any missing directories."
+msgstr ""
+
+msgid "WikiPage|Title"
+msgstr ""
+
+msgid "WikiPage|To link to a (new) page, simply type %{linkExample}. More examples are in the %{linkStart}documentation%{linkEnd}."
+msgstr ""
+
+msgid "WikiPage|Update %{pageTitle}"
+msgstr ""
+
+msgid "WikiPage|Write your content or drag files here…"
+msgstr ""
+
+msgid "Wiki|Create New Page"
+msgstr ""
+
+msgid "Wiki|Edit Page"
+msgstr ""
+
+msgid "Wiki|New page"
+msgstr ""
+
+msgid "Wiki|Page history"
+msgstr ""
+
+msgid "Wiki|Page version"
+msgstr ""
+
+msgid "Wiki|Pages"
+msgstr ""
+
+msgid "Wiki|The sidebar failed to load. You can reload the page to try again."
+msgstr ""
+
+msgid "Wiki|View All Pages"
+msgstr ""
+
+msgid "Wiki|Wiki Pages"
+msgstr ""
+
+msgid "Will be created"
+msgstr ""
+
+msgid "Will be mapped to"
+msgstr ""
+
+msgid "Will be released"
+msgstr ""
+
+msgid "Will deploy to"
+msgstr ""
+
+msgid "Wireframe"
+msgstr ""
+
+msgid "With requirements, you can set criteria to check your products against."
+msgstr ""
+
+msgid "Withdraw Access Request"
+msgstr ""
+
+msgid "Won't fix / Accept risk"
+msgstr ""
+
+msgid "Work Item type with id %{id} was not found"
+msgstr ""
+
+msgid "Work in progress (open and unassigned)"
+msgstr ""
+
+msgid "Work in progress limit"
+msgstr ""
+
+msgid "Work item parent set successfully"
+msgstr ""
+
+msgid "Work item promoted successfully."
+msgstr ""
+
+msgid "WorkItem|%{count} more assignees"
+msgstr ""
+
+msgid "WorkItem|%{invalidWorkItemsList} cannot be added: Cannot assign a non-confidential %{childWorkItemType} to a confidential parent %{parentWorkItemType}. Make the selected %{childWorkItemType} confidential and try again."
+msgstr ""
+
+msgid "WorkItem|%{workItemType} deleted"
+msgstr ""
+
+msgid "WorkItem|A non-confidential %{workItemType} cannot be assigned to a confidential parent %{parentWorkItemType}."
+msgstr ""
+
+msgid "WorkItem|Activity"
+msgstr ""
+
+msgid "WorkItem|Add"
+msgstr ""
+
+msgid "WorkItem|Add %{workItemType}"
+msgstr ""
+
+msgid "WorkItem|Add %{workItemType}s"
+msgstr ""
+
+msgid "WorkItem|Add a maximum of %{MAX_WORK_ITEMS} items at a time."
+msgstr ""
+
+msgid "WorkItem|Add a title"
+msgstr ""
+
+msgid "WorkItem|Add a to do"
+msgstr ""
+
+msgid "WorkItem|Add assignee"
+msgstr ""
+
+msgid "WorkItem|Add assignees"
+msgstr ""
+
+msgid "WorkItem|Add due date"
+msgstr ""
+
+msgid "WorkItem|Add start date"
+msgstr ""
+
+msgid "WorkItem|Add to iteration"
+msgstr ""
+
+msgid "WorkItem|Add to milestone"
+msgstr ""
+
+msgid "WorkItem|All activity"
+msgstr ""
+
+msgid "WorkItem|Ancestor"
+msgstr ""
+
+msgid "WorkItem|Are you sure you want to cancel editing?"
+msgstr ""
+
+msgid "WorkItem|Are you sure you want to delete the %{workItemType}? This action cannot be reversed."
+msgstr ""
+
+msgid "WorkItem|Assign parent"
+msgstr ""
+
+msgid "WorkItem|Assignee"
+msgid_plural "WorkItem|Assignees"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "WorkItem|Blocked by"
+msgstr ""
+
+msgid "WorkItem|Blocking"
+msgstr ""
+
+msgid "WorkItem|Cancel"
+msgstr ""
+
+msgid "WorkItem|Child items"
+msgstr ""
+
+msgid "WorkItem|Child objectives and key results"
+msgstr ""
+
+msgid "WorkItem|Child removal reverted"
+msgstr ""
+
+msgid "WorkItem|Child removed"
+msgstr ""
+
+msgid "WorkItem|Closed"
+msgstr ""
+
+msgid "WorkItem|Comments only"
+msgstr ""
+
+msgid "WorkItem|Convert to task"
+msgstr ""
+
+msgid "WorkItem|Converted to task"
+msgstr ""
+
+msgid "WorkItem|Copy %{workItemType} email address"
+msgstr ""
+
+msgid "WorkItem|Create %{workItemType}"
+msgstr ""
+
+msgid "WorkItem|Create work item"
+msgstr ""
+
+msgid "WorkItem|Dates"
+msgstr ""
+
+msgid "WorkItem|Delete %{workItemType}"
+msgstr ""
+
+msgid "WorkItem|Discard changes"
+msgstr ""
+
+msgid "WorkItem|Due date"
+msgstr ""
+
+msgid "WorkItem|Epic"
+msgstr ""
+
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
+msgid "WorkItem|Existing task"
+msgstr ""
+
+msgid "WorkItem|History only"
+msgstr ""
+
+msgid "WorkItem|Incident"
+msgstr ""
+
+msgid "WorkItem|Issue"
+msgstr ""
+
+msgid "WorkItem|Iteration"
+msgstr ""
+
+msgid "WorkItem|Key Result"
+msgstr ""
+
+msgid "WorkItem|Key result"
+msgstr ""
+
+msgid "WorkItem|Link items together to show that they're related or that one is blocking others."
+msgstr ""
+
+msgid "WorkItem|Linked Items"
+msgstr ""
+
+msgid "WorkItem|Linked item removed"
+msgstr ""
+
+msgid "WorkItem|Mark as done"
+msgstr ""
+
+msgid "WorkItem|Milestone"
+msgstr ""
+
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
+msgid "WorkItem|New %{workItemType}"
+msgstr ""
+
+msgid "WorkItem|New task"
+msgstr ""
+
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
+msgid "WorkItem|No iteration"
+msgstr ""
+
+msgid "WorkItem|No matches found"
+msgstr ""
+
+msgid "WorkItem|No matching results"
+msgstr ""
+
+msgid "WorkItem|No milestone"
+msgstr ""
+
+msgid "WorkItem|No objectives or key results are currently assigned."
+msgstr ""
+
+msgid "WorkItem|No tasks are currently assigned. Use tasks to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|None"
+msgstr ""
+
+msgid "WorkItem|Notifications"
+msgstr ""
+
+msgid "WorkItem|Notifications turned off."
+msgstr ""
+
+msgid "WorkItem|Notifications turned on."
+msgstr ""
+
+msgid "WorkItem|Objective"
+msgstr ""
+
+msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
+msgstr ""
+
+msgid "WorkItem|Open"
+msgstr ""
+
+msgid "WorkItem|Parent"
+msgstr ""
+
+msgid "WorkItem|Promoted to objective."
+msgstr ""
+
+msgid "WorkItem|Related to"
+msgstr ""
+
+msgid "WorkItem|Remove"
+msgstr ""
+
+msgid "WorkItem|Requirements"
+msgstr ""
+
+msgid "WorkItem|Save and overwrite"
+msgstr ""
+
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
+msgstr ""
+
+msgid "WorkItem|Select type"
+msgstr ""
+
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
+msgid "WorkItem|Show labels"
+msgstr ""
+
+msgid "WorkItem|Someone edited the description at the same time you did. If you save it will overwrite their changes. Please confirm you'd like to save your edits."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when creating %{workItemType}. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when deleting the %{workItemType}. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when deleting the task. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when fetching iterations. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when fetching labels. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
+msgstr ""
+
+msgid "WorkItem|Something went wrong when fetching work items. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when removing item. Please refresh this page."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when trying to add a child. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when trying to create a child. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong when trying to link a item. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while copying the %{workItemType} email address. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while copying the %{workItemType} reference. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while fetching items. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while fetching milestones. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while fetching the %{workItemType}. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while fetching work item award emojis. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while promoting the %{workItemType}. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while removing child."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while undoing child removal."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while updating the %{workItemType}. Please try again."
+msgstr ""
+
+msgid "WorkItem|Something went wrong while updating the work item. Please try again."
+msgstr ""
+
+msgid "WorkItem|Start date"
+msgstr ""
+
+msgid "WorkItem|Task"
+msgstr ""
+
+msgid "WorkItem|Task actions"
+msgstr ""
+
+msgid "WorkItem|Task deleted"
+msgstr ""
+
+msgid "WorkItem|Task reverted"
+msgstr ""
+
+msgid "WorkItem|Tasks"
+msgstr ""
+
+msgid "WorkItem|Test case"
+msgstr ""
+
+msgid "WorkItem|The current key result"
+msgstr ""
+
+msgid "WorkItem|The current objective"
+msgstr ""
+
+msgid "WorkItem|The current task"
+msgstr ""
+
+msgid "WorkItem|This %{workItemType} is confidential and should only be visible to team members with at least Reporter access"
+msgstr ""
+
+msgid "WorkItem|This work item is not available. It either doesn't exist or you don't have permission to view it."
+msgstr ""
+
+msgid "WorkItem|Title cannot have more than %{WORK_ITEM_TITLE_MAX_LENGTH} characters."
+msgstr ""
+
+msgid "WorkItem|Turn off confidentiality"
+msgstr ""
+
+msgid "WorkItem|Turn on confidentiality"
+msgstr ""
+
+msgid "WorkItem|Unassign"
+msgstr ""
+
+msgid "WorkItem|Undo"
+msgstr ""
+
+msgid "WorkItem|View current version"
+msgstr ""
+
+msgid "WorkItem|Work item"
+msgstr ""
+
+msgid "WorkItem|Work item not found"
+msgstr ""
+
+msgid "WorkItem|Work items"
+msgstr ""
+
+msgid "WorkItem|You're only seeing %{boldStart}other activity%{boldEnd} in the feed. To add a comment, switch to one of the following options."
+msgstr ""
+
+msgid "WorkItem|blocks"
+msgstr ""
+
+msgid "WorkItem|is blocked by"
+msgstr ""
+
+msgid "WorkItem|item"
+msgstr ""
+
+msgid "WorkItem|relates to"
+msgstr ""
+
+msgid "WorkItem|the following items"
+msgstr ""
+
+msgid "Workspaces"
+msgstr ""
+
+msgid "Workspaces|A workspace is a virtual sandbox environment for your code in GitLab."
+msgstr ""
+
+msgid "Workspaces|Cancel"
+msgstr ""
+
+msgid "Workspaces|Could not load workspaces"
+msgstr ""
+
+msgid "Workspaces|Could not retrieve cluster agents for this project"
+msgstr ""
+
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
+msgid "Workspaces|Create workspace"
+msgstr ""
+
+msgid "Workspaces|Creating"
+msgstr ""
+
+msgid "Workspaces|Develop anywhere"
+msgstr ""
+
+msgid "Workspaces|Error"
+msgstr ""
+
+msgid "Workspaces|Failed"
+msgstr ""
+
+msgid "Workspaces|Failed to create workspace"
+msgstr ""
+
+msgid "Workspaces|Failed to update workspace"
+msgstr ""
+
+msgid "Workspaces|GitLab Workspaces is a powerful collaborative platform that provides a comprehensive set of tools for software development teams to manage their entire development lifecycle."
+msgstr ""
+
+msgid "Workspaces|New workspace"
+msgstr ""
+
+msgid "Workspaces|Restart"
+msgstr ""
+
+msgid "Workspaces|Restarting"
+msgstr ""
+
+msgid "Workspaces|Running"
+msgstr ""
+
+msgid "Workspaces|Select cluster agent"
+msgstr ""
+
+msgid "Workspaces|Select default editor"
+msgstr ""
+
+msgid "Workspaces|Select project"
+msgstr ""
+
+msgid "Workspaces|Start"
+msgstr ""
+
+msgid "Workspaces|Starting"
+msgstr ""
+
+msgid "Workspaces|Stop"
+msgstr ""
+
+msgid "Workspaces|Stopped"
+msgstr ""
+
+msgid "Workspaces|Stopping"
+msgstr ""
+
+msgid "Workspaces|Terminate"
+msgstr ""
+
+msgid "Workspaces|Terminated"
+msgstr ""
+
+msgid "Workspaces|Terminating"
+msgstr ""
+
+msgid "Workspaces|Time before automatic termination"
+msgstr ""
+
+msgid "Workspaces|To create a workspace for this project, an administrator must %{linkStart}configure a cluster agent%{linkEnd} for the project's group."
+msgstr ""
+
+msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
+msgstr ""
+
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
+msgstr ""
+
+msgid "Workspaces|Unknown state"
+msgstr ""
+
+msgid "Workspaces|Workspaces"
+msgstr ""
+
+msgid "Workspaces|You can't create a workspace for this project"
+msgstr ""
+
+msgid "Workspaces|Your workspaces"
+msgstr ""
+
+msgid "Would you like to create a new branch?"
+msgstr ""
+
+msgid "Would you like to try auto-generating a branch name?"
+msgstr ""
+
+msgid "Write"
+msgstr ""
+
+msgid "Write a comment or drag your files here…"
+msgstr ""
+
+msgid "Write a comment…"
+msgstr ""
+
+msgid "Write a description or drag your files here…"
+msgstr ""
+
+msgid "Write a description..."
+msgstr ""
+
+msgid "Write a description…"
+msgstr ""
+
+msgid "Write an internal note or drag your files here…"
+msgstr ""
+
+msgid "Write comment template content here…"
+msgstr ""
+
+msgid "Write milestone description..."
+msgstr ""
+
+msgid "Write your release notes or drag your files here…"
+msgstr ""
+
+msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
+msgstr ""
+
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
+msgid "Xcode"
+msgstr ""
+
+msgid "YYYY-MM-DD"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "Yes or No"
+msgstr ""
+
+msgid "Yes, add it"
+msgstr ""
+
+msgid "Yes, close issue"
+msgstr ""
+
+msgid "Yes, delete project"
+msgstr ""
+
+msgid "Yesterday"
+msgstr ""
+
+msgid "You"
+msgstr ""
+
+msgid "You already have access."
+msgstr ""
+
+msgid "You already have pending todo for this alert"
+msgstr ""
+
+msgid "You are about to add %{usersTag} people to the discussion. They will all receive a notification."
+msgstr ""
+
+msgid "You are about to clear %{count} image from the cache. Once you confirm, the next time a pipeline runs it must pull an image or tag from Docker Hub. Are you sure?"
+msgid_plural "You are about to clear %{count} images from the cache. Once you confirm, the next time a pipeline runs it must pull an image or tag from Docker Hub. Are you sure?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "You are about to delete this forked project containing:"
+msgstr ""
+
+msgid "You are about to delete this project containing:"
+msgstr ""
+
+msgid "You are about to incur additional charges"
+msgstr ""
+
+msgid "You are about to transfer the control of your account to %{group_name} group. This action is NOT reversible, you won't be able to access any of your groups and projects outside of %{group_name} once this transfer is complete."
+msgstr ""
+
+msgid "You are already a member of this %{member_source}."
+msgstr ""
+
+msgid "You are already impersonating another user"
+msgstr ""
+
+msgid "You are an admin, which means granting access to %{client_name} will allow them to interact with GitLab as an admin as well. Proceed with caution."
+msgstr ""
+
+msgid "You are attempting to delete a file that has been previously updated."
+msgstr ""
+
+msgid "You are attempting to update a file that has changed since you started editing it."
+msgstr ""
+
+msgid "You are being redirected away from GitLab"
+msgstr ""
+
+msgid "You are billed if you exceed this number. %{qsrOverageLinkStart}How does billing work?%{qsrOverageLinkEnd}"
+msgstr ""
+
+msgid "You are currently offline, or the GitLab instance is not reachable."
+msgstr ""
+
+msgid "You are going to delete %{project_full_name}. Deleted projects CANNOT be restored! Are you ABSOLUTELY sure?"
+msgstr ""
+
+msgid "You are going to remove %{group_name}. This will also delete all of its subgroups and projects. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?"
+msgstr ""
+
+msgid "You are going to remove the fork relationship from %{project_full_name}. Are you ABSOLUTELY sure?"
+msgstr ""
+
+msgid "You are going to transfer %{group_name} to another namespace. Are you ABSOLUTELY sure?"
+msgstr ""
+
+msgid "You are going to transfer %{project_full_name} to another namespace. Are you ABSOLUTELY sure?"
+msgstr ""
+
+msgid "You are going to turn off the confidentiality. This means %{strongStart}everyone%{strongEnd} will be able to see%{commentText} this %{issuableType}."
+msgstr ""
+
+msgid "You are going to turn on confidentiality. Only %{context} members with %{strongStart}%{permissions}%{strongEnd} can view or be notified about this %{issuableType}."
+msgstr ""
+
+msgid "You are not allowed to %{action} a user"
+msgstr ""
+
+msgid "You are not allowed to approve a user"
+msgstr ""
+
+msgid "You are not allowed to change the Work Item type to %{name}."
+msgstr ""
+
+msgid "You are not allowed to create this tag as it is protected."
+msgstr ""
+
+msgid "You are not allowed to download code from this project."
+msgstr ""
+
+msgid "You are not allowed to import projects in this namespace."
+msgstr ""
+
+msgid "You are not allowed to log in using password"
+msgstr ""
+
+msgid "You are not allowed to reject a user"
+msgstr ""
+
+msgid "You are not allowed to unlink your primary login account"
+msgstr ""
+
+msgid "You are not authorized to delete this site profile"
+msgstr ""
+
+msgid "You are not authorized to perform this action"
+msgstr ""
+
+msgid "You are not authorized to run this manual job"
+msgstr ""
+
+msgid "You are not authorized to update this profile"
+msgstr ""
+
+msgid "You are not authorized to update this scanner profile"
+msgstr ""
+
+msgid "You are not authorized to upload metric images"
+msgstr ""
+
+msgid "You are now impersonating %{username}"
+msgstr ""
+
+msgid "You are on a read-only GitLab instance."
+msgstr ""
+
+msgid "You are receiving this email because you are a Maintainer of the Project."
+msgstr ""
+
+msgid "You are receiving this email because you are an Owner of the Group."
+msgstr ""
+
+msgid "You are receiving this message because you are a GitLab administrator for %{url}."
+msgstr ""
+
+msgid "You are trying to upload something other than an image. Please upload a .png, .jpg, .jpeg, .gif, .bmp, .tiff or .ico."
+msgstr ""
+
+msgid "You can %{gitlabLinkStart}resolve conflicts on GitLab%{gitlabLinkEnd} or %{resolveLocallyStart}resolve them locally%{resolveLocallyEnd}."
+msgstr ""
+
+msgid "You can %{resolveLocallyStart}resolve them locally%{resolveLocallyEnd}."
+msgstr ""
+
+msgid "You can adjust rules on auto-banning %{link_start}here%{link_end}."
+msgstr ""
+
+msgid "You can adjust rules on auto-banning here: %{url}."
+msgstr ""
+
+msgid "You can also create a project from the command line."
+msgstr ""
+
+msgid "You can also press Ctrl-Enter"
+msgstr ""
+
+msgid "You can also press ⌘-Enter"
+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 also use group access tokens with Git to authenticate over HTTP(S). %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "You can also use project access tokens with Git to authenticate over HTTP(S). %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "You can always edit this later"
+msgstr ""
+
+msgid "You can check it in your %{pat_link_start}personal access tokens%{pat_link_end} settings."
+msgstr ""
+
+msgid "You can check it in your in your personal access tokens settings %{pat_link}."
+msgstr ""
+
+msgid "You can check your tokens or create a new one in your %{pat_link_start}personal access tokens settings%{pat_link_end}."
+msgstr ""
+
+msgid "You can check your tokens or create a new one in your personal access tokens settings %{pat_link}."
+msgstr ""
+
+msgid "You can create a new %{link}."
+msgstr ""
+
+msgid "You can create a new %{name} inside this project by sending an email to the following email address:"
+msgstr ""
+
+msgid "You can create a new Personal Access Token by visiting %{link}"
+msgstr ""
+
+msgid "You can create a new SSH key by visiting %{link}"
+msgstr ""
+
+msgid "You can create a new one or check them in your %{link_start}access tokens%{link_end} settings."
+msgstr ""
+
+msgid "You can create a new one or check them in your %{pat_link_start}personal access tokens%{pat_link_end} settings."
+msgstr ""
+
+msgid "You can create a new one or check them in your %{ssh_key_link_start}SSH keys%{ssh_key_link_end} settings."
+msgstr ""
+
+msgid "You can create a new one or check them in your SSH keys settings %{ssh_key_link}."
+msgstr ""
+
+msgid "You can create a new one or check them in your access token settings: %{target_url}"
+msgstr ""
+
+msgid "You can create a new one or check them in your personal access tokens settings %{pat_link}."
+msgstr ""
+
+msgid "You can create new ones at your %{pat_link_start}Personal Access Tokens%{pat_link_end} settings"
+msgstr ""
+
+msgid "You can create new ones at your Personal Access Tokens settings %{pat_link}"
+msgstr ""
+
+msgid "You can easily contribute to them by requesting to join these groups."
+msgstr ""
+
+msgid "You can enable Registration Features because Service Ping is enabled. To continue using Registration Features in the future, you will also need to register with GitLab via a new cloud licensing service."
+msgstr ""
+
+msgid "You can enable group access token creation in %{link_start}group settings%{link_end}."
+msgstr ""
+
+msgid "You can enable project access token creation in %{link_start}group settings%{link_end}."
+msgstr ""
+
+msgid "You can enter up to 280 characters"
+msgstr ""
+
+msgid "You can filter by 'days to merge' by clicking on the columns in the chart."
+msgstr ""
+
+msgid "You can find more information about GitLab subscriptions in %{subscriptions_doc_link}."
+msgstr ""
+
+msgid "You can get started by cloning the repository or start adding files to it with one of the following options."
+msgstr ""
+
+msgid "You can invite a new member to %{project_name} or invite another group."
+msgstr ""
+
+msgid "You can invite a new member to %{project_name}."
+msgstr ""
+
+msgid "You can invite another group to %{project_name}."
+msgstr ""
+
+msgid "You can modify this job's CI/CD variables before running it again."
+msgstr ""
+
+msgid "You can move around the graph by using the arrow keys."
+msgstr ""
+
+msgid "You can notify the app / group or a project by sending them an email notification"
+msgstr ""
+
+msgid "You can now close this window."
+msgstr ""
+
+msgid "You can now submit a merge request to get this change into the original branch."
+msgstr ""
+
+msgid "You can now submit a merge request to get this change into the original project."
+msgstr ""
+
+msgid "You can only add up to %{max_contacts} contacts at one time"
+msgstr ""
+
+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 ""
+
+msgid "You can only transfer the project to namespaces you manage."
+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 ""
+
+msgid "You can set up jobs to only use runners with specific tags. Separate tags with commas."
+msgstr ""
+
+msgid "You can specify notification level per group or per project."
+msgstr ""
+
+msgid "You can still use and manage existing tokens. %{link_start}Learn more.%{link_end}"
+msgstr ""
+
+msgid "You can view the source or %{linkStart}%{cloneIcon} clone the repository%{linkEnd}"
+msgstr ""
+
+msgid "You can't approve because you added one or more commits to this merge request."
+msgstr ""
+
+msgid "You can't follow more than %{limit} users. To follow more users, unfollow some others."
+msgstr ""
+
+msgid "You cannot %{action} %{state} users."
+msgstr ""
+
+msgid "You cannot access the raw file. Please wait a minute."
+msgstr ""
+
+msgid "You cannot add any more epics. This epic already has maximum number of child epics."
+msgstr ""
+
+msgid "You cannot approve your own deployment. This configuration can be adjusted in the protected environment settings."
+msgstr ""
+
+msgid "You cannot combine replace_ids with add_ids or remove_ids"
+msgstr ""
+
+msgid "You cannot create new projects in your personal namespace because you have reached your personal project limit."
+msgstr ""
+
+msgid "You cannot create projects in your personal namespace. Contact your GitLab administrator."
+msgstr ""
+
+msgid "You cannot impersonate a blocked user"
+msgstr ""
+
+msgid "You cannot impersonate a user who cannot log in"
+msgstr ""
+
+msgid "You cannot impersonate a user with an expired password"
+msgstr ""
+
+msgid "You cannot impersonate an internal user"
+msgstr ""
+
+msgid "You cannot play this scheduled pipeline at the moment. Please wait a minute."
+msgstr ""
+
+msgid "You cannot rename an environment after it's created."
+msgstr ""
+
+msgid "You cannot set yourself to awaiting"
+msgstr ""
+
+msgid "You cannot verify %{value} because it is a popular public email domain."
+msgstr ""
+
+msgid "You cannot write to a read-only secondary GitLab Geo instance. Please use %{link_to_primary_node} instead."
+msgstr ""
+
+msgid "You cannot write to this read-only GitLab instance."
+msgstr ""
+
+msgid "You can’t edit files directly in this project."
+msgstr ""
+
+msgid "You can’t edit files directly in this project. Fork this project and submit a merge request with your changes."
+msgstr ""
+
+msgid "You could not create a new trigger."
+msgstr ""
+
+msgid "You currently have no custom domains."
+msgstr ""
+
+msgid "You do not belong to any groups yet."
+msgstr ""
+
+msgid "You do not belong to any projects yet."
+msgstr ""
+
+msgid "You do not have access to any projects for creating incidents."
+msgstr ""
+
+msgid "You do not have access to chat feature."
+msgstr ""
+
+msgid "You do not have any subscriptions yet"
+msgstr ""
+
+msgid "You do not have permission to access DORA4 metrics."
+msgstr ""
+
+msgid "You do not have permission to access dora metrics."
+msgstr ""
+
+msgid "You do not have permission to approve a member"
+msgstr ""
+
+msgid "You do not have permission to leave this %{namespaceType}."
+msgstr ""
+
+msgid "You do not have permission to run a pipeline on this branch."
+msgstr ""
+
+msgid "You do not have permission to run the Web Terminal. Please contact a project administrator."
+msgstr ""
+
+msgid "You do not have permission to set a member awaiting"
+msgstr ""
+
+msgid "You do not have permission to update the environment."
+msgstr ""
+
+msgid "You do not have permissions to run the import."
+msgstr ""
+
+msgid "You don't have any WebAuthn devices registered yet."
+msgstr ""
+
+msgid "You don't have any active chat names."
+msgstr ""
+
+msgid "You don't have any applications."
+msgstr ""
+
+msgid "You don't have any authorized applications."
+msgstr ""
+
+msgid "You don't have any open merge requests"
+msgstr ""
+
+msgid "You don't have any recent searches"
+msgstr ""
+
+msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
+msgstr ""
+
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
+msgid "You don't have permission to view this epic"
+msgstr ""
+
+msgid "You don't have permissions to import this project"
+msgstr ""
+
+msgid "You don't have sufficient permission to perform this action."
+msgstr ""
+
+msgid "You don't have the %{role} role for any groups in this instance."
+msgstr ""
+
+msgid "You don't have write access to the source branch."
+msgstr ""
+
+msgid "You don’t have access to Productivity Analytics in this group"
+msgstr ""
+
+msgid "You don’t have access to Value Stream Analytics for this group"
+msgstr ""
+
+msgid "You have %{pendingMembersCount} pending member that needs approval."
+msgid_plural "You have %{pendingMembersCount} pending members that need approval."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "You have already reported this user"
+msgstr ""
+
+msgid "You have already requested access."
+msgstr ""
+
+msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
+msgstr ""
+
+msgid "You have been granted %{access_level} access to the %{source_name} %{source_type}."
+msgstr ""
+
+msgid "You have been granted %{member_human_access} access to group %{name}."
+msgstr ""
+
+msgid "You have been granted %{member_human_access} access to project %{name}."
+msgstr ""
+
+msgid "You have been invited by %{link_to_inviter} to join %{source_name} %{strong_open}%{link_to_source}%{strong_close} as %{role}"
+msgstr ""
+
+msgid "You have been redirected to the only result; see the %{a_start}search results%{a_end} instead."
+msgstr ""
+
+msgid "You have been unsubscribed from this thread."
+msgstr ""
+
+msgid "You have declined the invitation to join %{title} %{name}."
+msgstr ""
+
+msgid "You have imported from this project %{numberOfPreviousImports} times before. Each new import will create duplicate issues."
+msgstr ""
+
+msgid "You have insufficient permissions to configure escalation policies for this project"
+msgstr ""
+
+msgid "You have insufficient permissions to create a Todo for this alert"
+msgstr ""
+
+msgid "You have insufficient permissions to create a branch target"
+msgstr ""
+
+msgid "You have insufficient permissions to create an HTTP integration for this project"
+msgstr ""
+
+msgid "You have insufficient permissions to create an on-call schedule for this project"
+msgstr ""
+
+msgid "You have insufficient permissions to create organizations"
+msgstr ""
+
+msgid "You have insufficient permissions to delete a branch target"
+msgstr ""
+
+msgid "You have insufficient permissions to manage alerts for this project"
+msgstr ""
+
+msgid "You have insufficient permissions to manage resource links for this incident"
+msgstr ""
+
+msgid "You have insufficient permissions to manage timeline event tags for this project"
+msgstr ""
+
+msgid "You have insufficient permissions to manage timeline events for this incident"
+msgstr ""
+
+msgid "You have insufficient permissions to remove an on-call rotation from this project"
+msgstr ""
+
+msgid "You have insufficient permissions to remove an on-call schedule from this project"
+msgstr ""
+
+msgid "You have insufficient permissions to remove this HTTP integration"
+msgstr ""
+
+msgid "You have insufficient permissions to remove this Namespace Ban"
+msgstr ""
+
+msgid "You have insufficient permissions to set customer relations contacts for this issue"
+msgstr ""
+
+msgid "You have insufficient permissions to update an on-call schedule for this project"
+msgstr ""
+
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
+msgid "You have insufficient permissions to update this HTTP integration"
+msgstr ""
+
+msgid "You have insufficient permissions to view shifts for this rotation"
+msgstr ""
+
+msgid "You have more active users than are allowed by your license. Before %{date} GitLab must reconcile your subscription. To complete this process, export your license usage file and email it to %{renewal_service_email}. A new license will be emailed to the email address registered in the %{customers_dot}. You can add this license to your instance."
+msgstr ""
+
+msgid "You have more active users than are allowed by your license. GitLab must now reconcile your subscription. To complete this process, export your license usage file and email it to %{renewal_service_email}. A new license will be emailed to the email address registered in the %{customers_dot}. You can add this license to your instance."
+msgstr ""
+
+msgid "You have no permissions"
+msgstr ""
+
+msgid "You have no saved replies yet."
+msgstr ""
+
+msgid "You have not added any approvers. Start by adding users or groups."
+msgstr ""
+
+msgid "You have set up 2FA for your account! If you lose access to your 2FA device, you can use your recovery codes to access your account. Alternatively, if you upload an SSH key, you can %{anchorOpen}use that key to generate additional recovery codes%{anchorClose}."
+msgstr ""
+
+msgid "You have successfully purchased %{product}. You'll receive a receipt by email. Your purchase may take a minute to sync, so refresh the page if you don't see it yet."
+msgstr ""
+
+msgid "You have unsaved changes"
+msgstr ""
+
+msgid "You left the \"%{membershipable_human_name}\" %{source_type}."
+msgstr ""
+
+msgid "You may close the milestone now."
+msgstr ""
+
+msgid "You must be authenticated to access this path."
+msgstr ""
+
+msgid "You must be logged in to search"
+msgstr ""
+
+msgid "You must be logged in to search across all of GitLab"
+msgstr ""
+
+msgid "You must confirm your email within %{cut_off_days} days of signing up. If you do not confirm your email in this timeframe, your account will be deleted and you will need to sign up for GitLab again."
+msgstr ""
+
+msgid "You must have developer or higher permissions in the associated project to view job logs when debug trace is enabled. To disable debug trace, set the 'CI_DEBUG_TRACE' and 'CI_DEBUG_SERVICES' variables to 'false' in your pipeline configuration or CI/CD settings. If you must view this job log, a project maintainer or owner must add you to the project with developer permissions or higher."
+msgstr ""
+
+msgid "You must have maintainer access to force delete a lock"
+msgstr ""
+
+msgid "You must provide a valid current password"
+msgstr ""
+
+msgid "You must provide a valid current password."
+msgstr ""
+
+msgid "You must provide at least one filter argument for this query"
+msgstr ""
+
+msgid "You must provide your current password in order to change it."
+msgstr ""
+
+msgid "You must save your recovery codes after you first register a two-factor authenticator, so you do not lose access to your account. %{linkStart}See the documentation on managing your WebAuthn device for more information.%{linkEnd}"
+msgstr ""
+
+msgid "You must sign in to search for specific projects."
+msgstr ""
+
+msgid "You must solve the CAPTCHA in order to submit"
+msgstr ""
+
+msgid "You need a different license to enable FileLocks feature"
+msgstr ""
+
+msgid "You need git-lfs version %{min_git_lfs_version} (or greater) to continue. Please visit https://git-lfs.github.com"
+msgstr ""
+
+msgid "You need permission."
+msgstr ""
+
+msgid "You need to register a two-factor authentication app before you can set up a device."
+msgstr ""
+
+msgid "You need to set terms to be enforced"
+msgstr ""
+
+msgid "You need to specify both an Access Token and a Host URL."
+msgstr ""
+
+msgid "You need to upload a GitLab project export archive (ending in .gz)."
+msgstr ""
+
+msgid "You need to verify your primary email first before enabling Two-Factor Authentication."
+msgstr ""
+
+msgid "You see projects here when you're added to a group or project."
+msgstr ""
+
+msgid "You should add a %{linkStart}.gitlab-ci.yml%{linkEnd} file to this project to avoid pipeline failures. %{compliancePipelineLinkStart}Why?%{compliancePipelineLinkEnd}"
+msgstr ""
+
+msgid "You successfully declined the invitation"
+msgstr ""
+
+msgid "You tried to fork %{link_to_the_project} but it failed for the following reason:"
+msgstr ""
+
+msgid "You will be removed from existing projects/groups"
+msgstr ""
+
+msgid "You will be the author of all events in the activity feed that are the result of an update, like new branches being created or new commits being pushed to existing branches."
+msgstr ""
+
+msgid "You will first need to set up Jira Integration to use this feature."
+msgstr ""
+
+msgid "You will lose all changes you've made to this file. This action cannot be undone."
+msgstr ""
+
+msgid "You will lose all uncommitted changes you've made in this project. This action cannot be undone."
+msgstr ""
+
+msgid "You will need to update your local repositories to point to the new location."
+msgstr ""
+
+msgid "You will not get any notifications via email"
+msgstr ""
+
+msgid "You will only receive notifications for the events you choose"
+msgstr ""
+
+msgid "You will only receive notifications for threads you have participated in"
+msgstr ""
+
+msgid "You will receive notifications for any activity"
+msgstr ""
+
+msgid "You will receive notifications only for comments in which you were @mentioned"
+msgstr ""
+
+msgid "You'll be charged for %{true_up_start}users over license%{true_up_end} on a quarterly or annual basis, depending on the terms of your agreement."
+msgstr ""
+
+msgid "You'll be signed out from your current account automatically."
+msgstr ""
+
+msgid "You'll need to use different branch names to get a valid comparison."
+msgstr ""
+
+msgid "You're about to leave GitLab"
+msgstr ""
+
+msgid "You're about to reduce the visibility of the project %{strong_start}%{project_name}%{strong_end} in %{strong_start}%{group_name}%{strong_end}."
+msgstr ""
+
+msgid "You're about to reduce the visibility of the project %{strong_start}%{project_name}%{strong_end}."
+msgstr ""
+
+msgid "You're at the first commit"
+msgstr ""
+
+msgid "You're at the last commit"
+msgstr ""
+
+msgid "You're not allowed to %{tag_start}edit%{tag_end} files in this project directly. Please fork this project, make your changes there, and submit a merge request."
+msgstr ""
+
+msgid "You're not allowed to make changes to this project directly. A fork of this project has been created that you can make changes in, so you can submit a merge request."
+msgstr ""
+
+msgid "You're not allowed to make changes to this project directly. A fork of this project is being created that you can make changes in, so you can submit a merge request."
+msgstr ""
+
+msgid "You're receiving this email because of your account on %{host}."
+msgstr ""
+
+msgid "You're receiving this email because of your account on %{host}. %{manage_label_subscriptions_link_start}Manage label subscriptions%{manage_label_subscriptions_link_end} &middot; %{help_link_start}Help%{help_link_end}"
+msgstr ""
+
+msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
+msgstr ""
+
+msgid "You're receiving this email because of your account on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
+msgstr ""
+
+msgid "You're receiving this email because of your activity on %{host}."
+msgstr ""
+
+msgid "You're receiving this email because of your activity on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
+msgstr ""
+
+msgid "You're receiving this email because you have been assigned an item on %{host}."
+msgstr ""
+
+msgid "You're receiving this email because you have been assigned an item on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
+msgstr ""
+
+msgid "You're receiving this email because you have been mentioned on %{host}."
+msgstr ""
+
+msgid "You're receiving this email because you have been mentioned on %{host}. %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
+msgstr ""
+
+msgid "You're receiving this email because you have been mentioned on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
+msgstr ""
+
+msgid "You're viewing members of %{strong_start}%{group_name}%{strong_end}."
+msgstr ""
+
+msgid "You've already enabled two-factor authentication using one time password authenticators. In order to register a different device, you must first disable two-factor authentication."
+msgstr ""
+
+msgid "You've reached your limit of %{limit} projects created. Contact your GitLab administrator."
+msgstr ""
+
+msgid "You've rejected %{user}"
+msgstr ""
+
+msgid "You've successfully purchased the %{plan} plan subscription for 1 user and you'll receive a receipt by email. Your purchase may take a minute to sync, refresh the page if your subscription details haven't displayed yet."
+msgid_plural "You've successfully purchased the %{plan} plan subscription for %{quantity} users and you'll receive a receipt by email. Your purchase may take a minute to sync, refresh the page if your subscription details haven't displayed yet."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "YouTube"
+msgstr ""
+
+msgid "Your %{changes_link} have been committed successfully."
+msgstr ""
+
+msgid "Your %{group} membership will now expire in %{days}."
+msgstr ""
+
+msgid "Your %{plan_name} subscription will expire on %{expires_on}"
+msgstr ""
+
+msgid "Your %{plan} plan will be applied to your group."
+msgstr ""
+
+msgid "Your %{spammable_entity_type} has been recognized as spam. Please, change the content or solve the reCAPTCHA to proceed."
+msgstr ""
+
+msgid "Your %{spammable_entity_type} has been recognized as spam. Please, change the content to proceed."
+msgstr ""
+
+msgid "Your %{strong}%{plan_name}%{strong_close} subscription for %{strong}%{namespace_name}%{strong_close} will expire on %{strong}%{expires_on}%{strong_close}."
+msgstr ""
+
+msgid "Your Activity"
+msgstr ""
+
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
+msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
+msgstr ""
+
+msgid "Your CSV export has started. It will be emailed to %{email} when complete."
+msgstr ""
+
+msgid "Your CSV export of %{count} from project %{project_link} has been added to this email as an attachment."
+msgstr ""
+
+msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
+msgstr ""
+
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
+msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
+msgstr ""
+
+msgid "Your CSV import for project"
+msgstr ""
+
+msgid "Your Chain of Custody CSV export for the group %{group_link} has been added to this email as an attachment."
+msgstr ""
+
+msgid "Your Chain of Custody CSV export for the group %{group_name} has been added to this email as an attachment."
+msgstr ""
+
+msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
+msgstr ""
+
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
+msgstr ""
+
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
+msgstr ""
+
+msgid "Your GPG keys"
+msgstr ""
+
+msgid "Your GitLab account has been locked due to an excessive number of unsuccessful sign in attempts. You can wait for your account to automatically unlock in %{duration} or you can click the link below to unlock now."
+msgstr ""
+
+msgid "Your GitLab account is now an %{source_link}:"
+msgstr ""
+
+msgid "Your GitLab account is now an Enterprise User (%{source_link}):"
+msgstr ""
+
+msgid "Your GitLab account request has been approved!"
+msgstr ""
+
+msgid "Your GitLab group"
+msgstr ""
+
+msgid "Your GitLab instance allows anyone to register for an account, which is a security risk on public-facing GitLab instances. You should deactivate new sign ups if public users aren't expected to register for an account."
+msgstr ""
+
+msgid "Your GitLab version"
+msgstr ""
+
+msgid "Your Groups"
+msgstr ""
+
+msgid "Your Personal Access Token was revoked"
+msgstr ""
+
+msgid "Your Projects (default)"
+msgstr ""
+
+msgid "Your Projects' Activity"
+msgstr ""
+
+msgid "Your SSH key has expired"
+msgstr ""
+
+msgid "Your SSH key is expiring soon."
+msgstr ""
+
+msgid "Your SSH key was deleted"
+msgstr ""
+
+msgid "Your SSH keys"
+msgstr ""
+
+msgid "Your Time-based OTP device was registered!"
+msgstr ""
+
+msgid "Your To-Do List"
+msgstr ""
+
+msgid "Your WebAuthn device did not send a valid JSON response."
+msgstr ""
+
+msgid "Your WebAuthn device was registered!"
+msgstr ""
+
+msgid "Your access request to the %{source_type} has been withdrawn."
+msgstr ""
+
+msgid "Your account has been blocked. Contact %{support} for assistance."
+msgstr ""
+
+msgid "Your account has been blocked. Contact your GitLab administrator for assistance."
+msgstr ""
+
+msgid "Your account has been deactivated"
+msgstr ""
+
+msgid "Your account has been deactivated by your administrator. Please log back in to reactivate your account."
+msgstr ""
+
+msgid "Your account has been deactivated. You will not be able to: "
+msgstr ""
+
+msgid "Your account is authenticated with SSO or SAML. To %{push_pull_link_start}push and pull%{link_end} over %{protocol} with Git using this account, you must %{set_password_link_start}set a password%{link_end} or %{set_up_pat_link_start}set up a Personal Access Token%{link_end} to use instead of a password. For more information, see %{clone_with_https_link_start}Clone with HTTPS%{link_end}."
+msgstr ""
+
+msgid "Your account is authenticated with SSO or SAML. To %{push_pull_link_start}push and pull%{link_end} over %{protocol} with Git using this account, you must %{set_up_pat_link_start}set up a Personal Access Token%{link_end} to use instead of a password. For more information, see %{clone_with_https_link_start}Clone with HTTPS%{link_end}."
+msgstr ""
+
+msgid "Your account is locked."
+msgstr ""
+
+msgid "Your account uses dedicated credentials for the \"%{group_name}\" group and can only be updated through SSO."
+msgstr ""
+
+msgid "Your action has been rejected because the namespace storage limit has been reached. For more information, visit %{doc_url}."
+msgstr ""
+
+msgid "Your action succeeded."
+msgstr ""
+
+msgid "Your activity"
+msgstr ""
+
+msgid "Your applications"
+msgstr ""
+
+msgid "Your authorized applications"
+msgstr ""
+
+msgid "Your browser doesn't support WebAuthn. Please use a supported browser, e.g. Chrome (67+) or Firefox (60+)."
+msgstr ""
+
+msgid "Your changes can be committed to %{branch_name} because a merge request is open."
+msgstr ""
+
+msgid "Your changes have been committed. Commit %{commitId} %{commitStats}"
+msgstr ""
+
+msgid "Your changes have been saved"
+msgstr ""
+
+msgid "Your changes have been successfully committed."
+msgstr ""
+
+msgid "Your comment could not be submitted because %{reason}."
+msgstr ""
+
+msgid "Your comment could not be submitted! Please check your network connection and try again."
+msgstr ""
+
+msgid "Your comment could not be updated because %{reason}."
+msgstr ""
+
+msgid "Your comment will be discarded."
+msgstr ""
+
+msgid "Your current password is required to register a new device."
+msgstr ""
+
+msgid "Your current password is required to register a two-factor authenticator app."
+msgstr ""
+
+msgid "Your deployment services will be broken, you will need to manually fix the services after renaming."
+msgstr ""
+
+msgid "Your device is not compatible with GitLab. Please try another device"
+msgstr ""
+
+msgid "Your device needs to be set up. Plug it in (if needed) and click the button on the left."
+msgstr ""
+
+msgid "Your device was successfully set up! Give it a name and register it with the GitLab server."
+msgstr ""
+
+msgid "Your feedback is important to us 👋"
+msgstr ""
+
+msgid "Your file must contain a column named %{codeStart}title%{codeEnd}. A %{codeStart}description%{codeEnd} column is optional. The maximum file size allowed is 10 MB."
+msgstr ""
+
+msgid "Your free group is now limited to %d member"
+msgid_plural "Your free group is now limited to %d members"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your instance has %{remaining_user_count} users remaining of the %{total_user_count} included in your subscription. You can add more users than the number included in your license, and we will include the overage in your next bill."
+msgstr ""
+
+msgid "Your instance has exceeded your subscription's licensed user count."
+msgstr ""
+
+msgid "Your instance is approaching its licensed user count"
+msgstr ""
+
+msgid "Your issues are being imported. Once finished, you'll get a confirmation email."
+msgstr ""
+
+msgid "Your issues will be imported in the background. Once finished, you'll get a confirmation email."
+msgstr ""
+
+msgid "Your license does not support on-call rotations"
+msgstr ""
+
+msgid "Your license does not support on-call schedules"
+msgstr ""
+
+msgid "Your license is valid from"
+msgstr ""
+
+msgid "Your membership in %{group} no longer expires."
+msgstr ""
+
+msgid "Your membership in %{link_to} %{project_or_group_name} will expire in %{days_formatted}."
+msgstr ""
+
+msgid "Your membership in %{project_or_group} %{project_or_group_name} will expire in %{days_formatted}."
+msgstr ""
+
+msgid "Your membership will expire in %{days_to_expire} days"
+msgstr ""
+
+msgid "Your name"
+msgstr ""
+
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
+msgid "Your new %{accessTokenType}"
+msgstr ""
+
+msgid "Your new %{accessTokenType} has been created."
+msgstr ""
+
+msgid "Your new comment"
+msgstr ""
+
+msgid "Your password"
+msgstr ""
+
+msgid "Your password reset token has expired."
+msgstr ""
+
+msgid "Your personal access token has been revoked"
+msgstr ""
+
+msgid "Your personal access tokens have expired"
+msgstr ""
+
+msgid "Your personal access tokens will expire in %{days_to_expire} days or less"
+msgstr ""
+
+msgid "Your profile"
+msgstr ""
+
+msgid "Your projects"
+msgstr ""
+
+msgid "Your public email will be displayed on your public profile."
+msgstr ""
+
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
+msgid "Your request for access could not be processed: %{error_message}"
+msgstr ""
+
+msgid "Your request for access has been queued for review."
+msgstr ""
+
+msgid "Your request to join %{host} has been rejected."
+msgstr ""
+
+msgid "Your requirements are being imported. Once finished, you'll receive a confirmation email."
+msgstr ""
+
+msgid "Your requirements will be imported in the background. After it's finished, you'll get a confirmation email."
+msgstr ""
+
+msgid "Your resource access tokens will expire in %{days_to_expire} or less"
+msgstr ""
+
+msgid "Your search didn't match any commits."
+msgstr ""
+
+msgid "Your search didn't match any commits. Try a different query."
+msgstr ""
+
+msgid "Your search timed out"
+msgstr ""
+
+msgid "Your sign-in page is %{url}."
+msgstr ""
+
+msgid "Your subscription expired!"
+msgstr ""
+
+msgid "Your subscription has %{remaining_seat_count} out of %{total_seat_count} seat remaining."
+msgid_plural "Your subscription has %{remaining_seat_count} out of %{total_seat_count} seats remaining."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your top-level group %{namespace_name} has reached the %{free_limit} user limit"
+msgstr ""
+
+msgid "Your top-level group %{namespace_name} is over the %{free_limit} user limit and has been placed in a read-only state."
+msgstr ""
+
+msgid "Your top-level group is over the user limit and has been placed in a read-only state."
+msgstr ""
+
+msgid "Your update failed. You can only upload one design when dropping onto an existing design."
+msgstr ""
+
+msgid "Your update failed. You must upload a file with the same file name when dropping onto an existing design."
+msgstr ""
+
+msgid "Your username is %{username}."
+msgstr ""
+
+msgid "Your work"
+msgstr ""
+
+msgid "Your work items are being imported. Once finished, you'll receive a confirmation email."
+msgstr ""
+
+msgid "You’re about to permanently delete the %{issuableType} ‘%{strongOpen}%{issuableTitle}%{strongClose}’. To avoid data loss, consider %{strongOpen}closing this %{issuableType}%{strongClose} instead. Once deleted, it cannot be undone or recovered."
+msgstr ""
+
+msgid "ZenTaoIntegration|Failed to load ZenTao issue. View the issue in ZenTao, or reload the page."
+msgstr ""
+
+msgid "ZenTaoIntegration|This is a ZenTao user."
+msgstr ""
+
+msgid "ZenTaoIntegration|ZenTao user"
+msgstr ""
+
+msgid "ZentaoIntegration|An error occurred while requesting data from the ZenTao service."
+msgstr ""
+
+msgid "ZentaoIntegration|Base URL of the ZenTao instance."
+msgstr ""
+
+msgid "ZentaoIntegration|Before you enable this integration, you must configure ZenTao. For more details, read the %{link_start}ZenTao integration documentation%{link_end}."
+msgstr ""
+
+msgid "ZentaoIntegration|Enter new ZenTao API token"
+msgstr ""
+
+msgid "ZentaoIntegration|If different from Web URL."
+msgstr ""
+
+msgid "ZentaoIntegration|Open ZenTao"
+msgstr ""
+
+msgid "ZentaoIntegration|Use ZenTao as this project's issue tracker."
+msgstr ""
+
+msgid "ZentaoIntegration|ZenTao"
+msgstr ""
+
+msgid "ZentaoIntegration|ZenTao API URL (optional)"
+msgstr ""
+
+msgid "ZentaoIntegration|ZenTao API token"
+msgstr ""
+
+msgid "ZentaoIntegration|ZenTao Product ID"
+msgstr ""
+
+msgid "ZentaoIntegration|ZenTao Web URL"
+msgstr ""
+
+msgid "ZentaoIntegration|ZenTao issues"
+msgstr ""
+
+msgid "Zoom in"
+msgstr ""
+
+msgid "Zoom meeting added"
+msgstr ""
+
+msgid "Zoom meeting removed"
+msgstr ""
+
+msgid "Zoom out"
+msgstr ""
+
+msgid "[No reason]"
+msgstr ""
+
+msgid "[REDACTED]"
+msgstr ""
+
+msgid "[Redacted]"
+msgstr ""
+
+msgid "[Supports GitLab-flavored markdown, including quick actions]"
+msgstr ""
+
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
+msgid "`end_time` should not exceed one month after `start_time`"
+msgstr ""
+
+msgid "`start_time` should precede `end_time`"
+msgstr ""
+
+msgid "a deleted user"
+msgstr ""
+
+msgid "about 1 hour"
+msgid_plural "about %d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "access:"
+msgstr ""
+
+msgid "add at least one file to the repository"
+msgstr ""
+
+msgid "added %{emails}"
+msgstr ""
+
+msgid "added a %{link_type} link"
+msgstr ""
+
+msgid "added a Zoom call to this issue"
+msgstr ""
+
+msgid "ago"
+msgstr ""
+
+msgid "alert"
+msgstr ""
+
+msgid "all"
+msgstr ""
+
+msgid "all branches"
+msgstr ""
+
+msgid "all default branches"
+msgstr ""
+
+msgid "all protected branches"
+msgstr ""
+
+msgid "allowed to fail"
+msgstr ""
+
+msgid "already assigned to an epic"
+msgstr ""
+
+msgid "already banned from namespace"
+msgstr ""
+
+msgid "already being used for another group or project %{timebox_name}."
+msgstr ""
+
+msgid "already being used for another iteration within this cadence."
+msgstr ""
+
+msgid "already has a \"created\" issue link"
+msgstr ""
+
+msgid "already shared with this group"
+msgstr ""
+
+msgid "and"
+msgstr ""
+
+msgid "any-approver for the group already exists"
+msgstr ""
+
+msgid "any-approver for the merge request already exists"
+msgstr ""
+
+msgid "any-approver for the project already exists"
+msgstr ""
+
+msgid "approval"
+msgid_plural "approvals"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "archived"
+msgstr ""
+
+msgid "archived:"
+msgstr ""
+
+msgid "artifacts"
+msgstr ""
+
+msgid "assign yourself"
+msgstr ""
+
+msgid "assigned"
+msgstr ""
+
+msgid "assigned you"
+msgstr ""
+
+msgid "at"
+msgstr ""
+
+msgid "at least the Reporter role"
+msgstr ""
+
+msgid "at least the Reporter role, the author, and assignees"
+msgstr ""
+
+msgid "attach a new file"
+msgstr ""
+
+msgid "authored"
+msgstr ""
+
+msgid "banned user already exists"
+msgstr ""
+
+msgid "before"
+msgstr ""
+
+msgid "beta"
+msgstr ""
+
+msgid "blocks"
+msgstr ""
+
+msgid "branch"
+msgid_plural "branches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "branch name"
+msgstr ""
+
+msgid "branches"
+msgstr ""
+
+msgid "builds"
+msgstr ""
+
+msgid "by"
+msgstr ""
+
+msgid "cURL:"
+msgstr ""
+
+msgid "can contain only digits"
+msgstr ""
+
+msgid "can contain only letters of the Base64 alphabet (RFC4648) with the addition of '@', ':' and '.'"
+msgstr ""
+
+msgid "can contain only lowercase letters, digits, and '_'."
+msgstr ""
+
+msgid "can not be changed for existing notes"
+msgstr ""
+
+msgid "can not be changed to %{new_type}"
+msgstr ""
+
+msgid "can not be changed when assigned to an epic"
+msgstr ""
+
+msgid "can not be set for template labels"
+msgstr ""
+
+msgid "can not be set for this resource"
+msgstr ""
+
+msgid "can not be set for this type of note"
+msgstr ""
+
+msgid "can not be true if shared runners are enabled"
+msgstr ""
+
+msgid "can only be changed by a group admin."
+msgstr ""
+
+msgid "can only have one escalation policy"
+msgstr ""
+
+msgid "can't be blank"
+msgstr ""
+
+msgid "can't be enabled when delayed group deletion is disabled"
+msgstr ""
+
+msgid "can't be nil"
+msgstr ""
+
+msgid "can't be solely blank"
+msgstr ""
+
+msgid "can't be the same as the source project"
+msgstr ""
+
+msgid "can't include: %{invalid_storages}"
+msgstr ""
+
+msgid "can't reference a branch that does not exist"
+msgstr ""
+
+msgid "cannot assign a linked work item as a parent"
+msgstr ""
+
+msgid "cannot assign a non-confidential work item to a confidential parent. Make the work item confidential and try again."
+msgstr ""
+
+msgid "cannot be a date in the past"
+msgstr ""
+
+msgid "cannot be added since you've reached your %{free_limit} member limit for %{namespace_name}"
+msgstr ""
+
+msgid "cannot be associated with a subgroup"
+msgstr ""
+
+msgid "cannot be associated with both a Group and a Project"
+msgstr ""
+
+msgid "cannot be blank"
+msgstr ""
+
+msgid "cannot be changed"
+msgstr ""
+
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr ""
+
+msgid "cannot be changed if a personal project has container registry tags."
+msgstr ""
+
+msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
+msgstr ""
+
+msgid "cannot be changed to %{new_type} with these child item types."
+msgstr ""
+
+msgid "cannot be enabled"
+msgstr ""
+
+msgid "cannot be enabled because parent group does not allow it"
+msgstr ""
+
+msgid "cannot be enabled because parent group has shared Runners disabled"
+msgstr ""
+
+msgid "cannot be enabled unless all domains have TLS certificates"
+msgstr ""
+
+msgid "cannot be enabled until a valid credit card is on file"
+msgstr ""
+
+msgid "cannot be used because it belongs to a compromised private key. Stop using this key and generate a new one."
+msgstr ""
+
+msgid "cannot be used for user namespace"
+msgstr ""
+
+msgid "cannot contain HTML/XML tags, including any word between angle brackets (&lt;,&gt;)."
+msgstr ""
+
+msgid "cannot include leading slash or directory traversal."
+msgstr ""
+
+msgid "cannot merge"
+msgstr ""
+
+msgid "change"
+msgid_plural "changes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "changes"
+msgstr ""
+
+msgid "check"
+msgid_plural "checks"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "checklist item"
+msgid_plural "checklist items"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ci secure files"
+msgstr ""
+
+msgid "ciReport|%{criticalStart}critical%{criticalEnd}, %{highStart}high%{highEnd} and %{otherStart}others%{otherEnd}"
+msgstr ""
+
+msgid "ciReport|%{danger_start}%{degradedNum} degraded%{danger_end}, %{same_start}%{sameNum} same%{same_end}, and %{success_start}%{improvedNum} improved%{success_end}"
+msgstr ""
+
+msgid "ciReport|%{degradedNum} degraded"
+msgstr ""
+
+msgid "ciReport|%{improvedNum} improved"
+msgstr ""
+
+msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
+msgstr ""
+
+msgid "ciReport|%{remainingPackagesCount} more"
+msgstr ""
+
+msgid "ciReport|%{sameNum} same"
+msgstr ""
+
+msgid "ciReport|%{scanner} detected %{atleastStart}at least%{atleastEnd} %{number} new potential %{vulnStr}"
+msgstr ""
+
+msgid "ciReport|%{scanner} detected %{number} new potential %{vulnStr}"
+msgstr ""
+
+msgid "ciReport|%{scanner} detected %{strong_start}%{number}%{strong_end} new potential %{vulnStr}"
+msgstr ""
+
+msgid "ciReport|%{scanner} detected no new %{vulnStr}"
+msgstr ""
+
+msgid "ciReport|%{scanner} detected no new potential vulnerabilities"
+msgstr ""
+
+msgid "ciReport|%{scanner}: Loading resulted in an error"
+msgstr ""
+
+msgid "ciReport|API Fuzzing"
+msgstr ""
+
+msgid "ciReport|API fuzzing"
+msgstr ""
+
+msgid "ciReport|All tools"
+msgstr ""
+
+msgid "ciReport|Analyze a deployed version of your web application for known vulnerabilities by examining it from the outside in. DAST works by simulating external attacks on your application while it is running."
+msgstr ""
+
+msgid "ciReport|Automatically apply the patch in a new branch"
+msgstr ""
+
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr ""
+
+msgid "ciReport|Browser Performance"
+msgstr ""
+
+msgid "ciReport|Browser performance test metrics results are being parsed"
+msgstr ""
+
+msgid "ciReport|Browser performance test metrics: "
+msgstr ""
+
+msgid "ciReport|Browser performance test metrics: %{strong_start}%{changesFound}%{strong_end} change"
+msgid_plural "ciReport|Browser performance test metrics: %{strong_start}%{changesFound}%{strong_end} changes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ciReport|Browser performance test metrics: No changes"
+msgstr ""
+
+msgid "ciReport|Checks"
+msgstr ""
+
+msgid "ciReport|Cluster Image Scanning"
+msgstr ""
+
+msgid "ciReport|Code Quality"
+msgstr ""
+
+msgid "ciReport|Code Quality failed to load results"
+msgstr ""
+
+msgid "ciReport|Code Quality hasn't changed."
+msgstr ""
+
+msgid "ciReport|Code Quality is loading"
+msgstr ""
+
+msgid "ciReport|Container Scanning"
+msgstr ""
+
+msgid "ciReport|Container scanning"
+msgstr ""
+
+msgid "ciReport|Container scanning detects known vulnerabilities in your docker images."
+msgstr ""
+
+msgid "ciReport|Coverage Fuzzing"
+msgstr ""
+
+msgid "ciReport|Coverage fuzzing"
+msgstr ""
+
+msgid "ciReport|Create Jira issue"
+msgstr ""
+
+msgid "ciReport|Create a merge request to implement this solution, or download and apply the patch manually."
+msgstr ""
+
+msgid "ciReport|Create issue"
+msgstr ""
+
+msgid "ciReport|DAST"
+msgstr ""
+
+msgid "ciReport|Dependency Scanning"
+msgstr ""
+
+msgid "ciReport|Dependency scanning"
+msgstr ""
+
+msgid "ciReport|Detects known vulnerabilities in your source code's dependencies."
+msgstr ""
+
+msgid "ciReport|Detects known vulnerabilities in your source code."
+msgstr ""
+
+msgid "ciReport|Detects known vulnerabilities in your web application."
+msgstr ""
+
+msgid "ciReport|Detects secrets and credentials vulnerabilities in your source code."
+msgstr ""
+
+msgid "ciReport|Download patch to resolve"
+msgstr ""
+
+msgid "ciReport|Download the patch to apply it manually"
+msgstr ""
+
+msgid "ciReport|Dynamic Application Security Testing (DAST)"
+msgstr ""
+
+msgid "ciReport|Failed to load %{reportName} report"
+msgstr ""
+
+msgid "ciReport|Failed to load Code Quality report"
+msgstr ""
+
+msgid "ciReport|Fixed"
+msgstr ""
+
+msgid "ciReport|Fixed:"
+msgstr ""
+
+msgid "ciReport|Found %{issuesWithCount}"
+msgstr ""
+
+msgid "ciReport|Full report"
+msgstr ""
+
+msgid "ciReport|Generic Report"
+msgstr ""
+
+msgid "ciReport|Investigate this vulnerability by creating an issue"
+msgstr ""
+
+msgid "ciReport|License Compliance"
+msgstr ""
+
+msgid "ciReport|License Compliance failed loading results"
+msgstr ""
+
+msgid "ciReport|License Compliance test metrics results are being parsed"
+msgstr ""
+
+msgid "ciReport|Load Performance"
+msgstr ""
+
+msgid "ciReport|Load performance test metrics detected %{strong_start}%{changesFound}%{strong_end} change"
+msgid_plural "ciReport|Load performance test metrics detected %{strong_start}%{changesFound}%{strong_end} changes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ciReport|Load performance test metrics results are being parsed"
+msgstr ""
+
+msgid "ciReport|Load performance test metrics: "
+msgstr ""
+
+msgid "ciReport|Load performance test metrics: No changes"
+msgstr ""
+
+msgid "ciReport|Loading %{reportName} report"
+msgstr ""
+
+msgid "ciReport|Loading Code Quality report"
+msgstr ""
+
+msgid "ciReport|Manage licenses"
+msgstr ""
+
+msgid "ciReport|Manually added"
+msgstr ""
+
+msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
+msgstr ""
+
+msgid "ciReport|No code quality issues found"
+msgstr ""
+
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
+msgid "ciReport|RPS"
+msgstr ""
+
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
+msgid "ciReport|Resolve with merge request"
+msgstr ""
+
+msgid "ciReport|SAST"
+msgstr ""
+
+msgid "ciReport|SAST IaC"
+msgstr ""
+
+msgid "ciReport|Secret Detection"
+msgstr ""
+
+msgid "ciReport|Secret detection"
+msgstr ""
+
+msgid "ciReport|Security reports failed loading results"
+msgstr ""
+
+msgid "ciReport|Security scan results"
+msgstr ""
+
+msgid "ciReport|Security scanning"
+msgstr ""
+
+msgid "ciReport|Security scanning is loading"
+msgstr ""
+
+msgid "ciReport|Showing %{fetchedItems} of %{totalItems} items"
+msgstr ""
+
+msgid "ciReport|Solution"
+msgstr ""
+
+msgid "ciReport|Something went wrong while fetching the finding. Please try again later."
+msgstr ""
+
+msgid "ciReport|Static Application Security Testing (SAST)"
+msgstr ""
+
+msgid "ciReport|TTFB P90"
+msgstr ""
+
+msgid "ciReport|TTFB P95"
+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 ""
+
+msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
+msgstr ""
+
+msgid "ciReport|There was an error reverting the dismissal. Please try again."
+msgstr ""
+
+msgid "ciReport|There was an error reverting the dismissal: %{error}"
+msgstr ""
+
+msgid "ciReport|This report contains all Code Quality issues in the source branch."
+msgstr ""
+
+msgid "ciReport|Used by %{packagesString}"
+msgid_plural "ciReport|Used by %{packagesString}, and %{lastPackage}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "ciReport|View full report"
+msgstr ""
+
+msgid "ciReport|in"
+msgstr ""
+
+msgid "closed"
+msgstr ""
+
+msgid "closed %{timeago}"
+msgstr ""
+
+msgid "closed issue"
+msgid_plural "closed issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "comment"
+msgstr ""
+
+msgid "commented"
+msgstr ""
+
+msgid "commented on %{link_to_project}"
+msgstr ""
+
+msgid "commit"
+msgid_plural "commits"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "commit %{commit_id}"
+msgstr ""
+
+msgid "committed"
+msgstr ""
+
+msgid "complete"
+msgstr ""
+
+msgid "compliance violation has already been recorded"
+msgstr ""
+
+msgid "contacts can only be added to root groups"
+msgstr ""
+
+msgid "container registry images"
+msgstr ""
+
+msgid "contains URLs that exceed the %{limit} character limit"
+msgstr ""
+
+msgid "contains URLs that exceed the 1024 character limit (%{urls})"
+msgstr ""
+
+msgid "contains invalid URLs (%{urls})"
+msgstr ""
+
+msgid "contribute to this project."
+msgstr ""
+
+msgid "could not read private key, is the passphrase correct?"
+msgstr ""
+
+msgid "created %{issuable_created} by %{author}"
+msgstr ""
+
+msgid "created %{timeAgoString} by %{email} via %{user}"
+msgstr ""
+
+msgid "created %{timeAgo}"
+msgstr ""
+
+msgid "created %{timeAgo} by %{author}"
+msgstr ""
+
+msgid "created %{timeAgo} by %{author} in %{project_link}"
+msgstr ""
+
+msgid "created %{timeAgo} by %{email} via %{author}"
+msgstr ""
+
+msgid "created by"
+msgstr ""
+
+msgid "created pipeline for commit %{linkStart}%{shortId}%{linkEnd}"
+msgstr ""
+
+msgid "daily"
+msgstr ""
+
+msgid "data"
+msgstr ""
+
+msgid "database"
+msgstr ""
+
+msgid "date must not be after 9999-12-31"
+msgstr ""
+
+msgid "day"
+msgid_plural "days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "days"
+msgstr ""
+
+msgid "default"
+msgstr ""
+
+msgid "default branch"
+msgstr ""
+
+msgid "deleted"
+msgstr ""
+
+msgid "denied"
+msgstr ""
+
+msgid "deploy"
+msgstr ""
+
+msgid "design"
+msgstr ""
+
+msgid "disabled"
+msgstr ""
+
+msgid "does not exist"
+msgstr ""
+
+msgid "does not have a supported extension. Only %{extension_list} are supported"
+msgstr ""
+
+msgid "does not match dast_site.project"
+msgstr ""
+
+msgid "does not match dast_site_validation.project"
+msgstr ""
+
+msgid "download it"
+msgstr ""
+
+msgid "draft"
+msgid_plural "drafts"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "e.g. %{token}"
+msgstr ""
+
+msgid "eg party_tanuki"
+msgstr ""
+
+msgid "eg. dev/*"
+msgstr ""
+
+msgid "element is not a hierarchy"
+msgstr ""
+
+msgid "eligible users"
+msgstr ""
+
+msgid "email address settings"
+msgstr ""
+
+msgid "enabled"
+msgstr ""
+
+msgid "encrypted: needs to be a :required, :optional or :migrating!"
+msgstr ""
+
+msgid "ending with a reserved file extension is not allowed."
+msgstr ""
+
+msgid "entries cannot be larger than 255 characters"
+msgstr ""
+
+msgid "entries cannot be nil"
+msgstr ""
+
+msgid "entries cannot contain HTML tags"
+msgstr ""
+
+msgid "epic"
+msgstr ""
+
+msgid "error"
+msgstr ""
+
+msgid "estimateCommand|%{slash_command} overwrites the total estimated time."
+msgstr ""
+
+msgid "example.com"
+msgstr ""
+
+msgid "exceeds maximum length (100 user ids)"
+msgstr ""
+
+msgid "exceeds maximum length (100 usernames)"
+msgstr ""
+
+msgid "exceeds the limit of %{bytes} bytes"
+msgstr ""
+
+msgid "exceeds the limit of %{bytes} bytes for directory name \"%{dirname}\""
+msgstr ""
+
+msgid "exceeds the limit of %{count} links"
+msgstr ""
+
+msgid "expired on %{timebox_due_date}"
+msgstr ""
+
+msgid "expires on %{timebox_due_date}"
+msgstr ""
+
+msgid "external link"
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "failed to dismiss associated finding(id=%{finding_id}): %{message}"
+msgstr ""
+
+msgid "failed to dismiss security finding: %{message}"
+msgstr ""
+
+msgid "failed to revert associated finding(id=%{finding_id}) to detected"
+msgstr ""
+
+msgid "failed to revoke token"
+msgstr ""
+
+msgid "file"
+msgid_plural "files"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "finding is not found or is already attached to a vulnerability"
+msgstr ""
+
+msgid "for Workspace must have an associated RemoteDevelopmentAgentConfig"
+msgstr ""
+
+msgid "for this project"
+msgstr ""
+
+msgid "fork"
+msgstr ""
+
+msgid "from"
+msgstr ""
+
+msgid "from %d job"
+msgid_plural "from %d jobs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "from yourself"
+msgstr ""
+
+msgid "frontmatter"
+msgstr ""
+
+msgid "group"
+msgstr ""
+
+msgid "group access token"
+msgstr ""
+
+msgid "group access tokens"
+msgstr ""
+
+msgid "group members"
+msgstr ""
+
+msgid "groups"
+msgstr ""
+
+msgid "had %{count} failed job"
+msgid_plural "had %{count} failed jobs"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "has already been linked to another vulnerability"
+msgstr ""
+
+msgid "has already been taken"
+msgstr ""
+
+msgid "has already been taken as Codename"
+msgstr ""
+
+msgid "has already been taken as Suite"
+msgstr ""
+
+msgid "has been completed."
+msgstr ""
+
+msgid "has too deep level of nesting"
+msgstr ""
+
+msgid "help"
+msgstr ""
+
+msgid "hours"
+msgstr ""
+
+msgid "http:"
+msgstr ""
+
+msgid "http://www.example.com"
+msgstr ""
+
+msgid "https://bamboo.example.com"
+msgstr ""
+
+msgid "https://your-bitbucket-server"
+msgstr ""
+
+msgid "i18n|%{language} (%{percent_translated}%% translated)"
+msgstr ""
+
+msgid "if"
+msgstr ""
+
+msgid "image diff"
+msgstr ""
+
+msgid "impersonation token"
+msgstr ""
+
+msgid "impersonation tokens"
+msgstr ""
+
+msgid "import flow"
+msgstr ""
+
+msgid "in"
+msgstr ""
+
+msgid "in %{duration} and was queued for %{queued_duration}"
+msgstr ""
+
+msgid "in %{duration}, using %{compute_minutes} compute minutes, and was queued for %{queued_duration}"
+msgstr ""
+
+msgid "in group %{link_to_group}"
+msgstr ""
+
+msgid "in project %{link_to_project}"
+msgstr ""
+
+msgid "incident"
+msgstr ""
+
+msgid "instance completed"
+msgid_plural "instances completed"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "internal note"
+msgstr ""
+
+msgid "invalid milestone state `%{state}`"
+msgstr ""
+
+msgid "invalidated"
+msgstr ""
+
+msgid "is"
+msgstr ""
+
+msgid "is a parent or child of this %{item}"
+msgstr ""
+
+msgid "is already associated to a GitLab Issue. New issue will not be associated."
+msgstr ""
+
+msgid "is already linked to this vulnerability"
+msgstr ""
+
+msgid "is already present in ancestors"
+msgstr ""
+
+msgid "is an invalid IP address range"
+msgstr ""
+
+msgid "is blocked by"
+msgstr ""
+
+msgid "is currently immutable, and cannot be updated. Create a new agent instead."
+msgstr ""
+
+msgid "is forbidden by a top-level group"
+msgstr ""
+
+msgid "is invalid because there is downstream lock"
+msgstr ""
+
+msgid "is invalid because there is upstream lock"
+msgstr ""
+
+msgid "is not"
+msgstr ""
+
+msgid "is not a descendant of the Group owning the template"
+msgstr ""
+
+msgid "is not a valid X509 certificate."
+msgstr ""
+
+msgid "is not allowed for sign-up. Please use your regular email address."
+msgstr ""
+
+msgid "is not allowed for this group."
+msgstr ""
+
+msgid "is not allowed for this project."
+msgstr ""
+
+msgid "is not allowed since the group is not top-level group."
+msgstr ""
+
+msgid "is not allowed to add this type of parent"
+msgstr ""
+
+msgid "is not allowed to point to itself"
+msgstr ""
+
+msgid "is not allowed. Please use your regular email address."
+msgstr ""
+
+msgid "is not in the group enforcing Group Managed Account"
+msgstr ""
+
+msgid "is not linked to a SAML account or has an inactive SCIM identity. For information on how to resolve this error, see the %{troubleshoot_link_start}troubleshooting SCIM documentation%{troubleshoot_link_end}."
+msgstr ""
+
+msgid "is not one of"
+msgstr ""
+
+msgid "is not part of the given organization"
+msgstr ""
+
+msgid "is not valid. The iteration group has to match the iteration cadence group."
+msgstr ""
+
+msgid "is not verified."
+msgstr ""
+
+msgid "is one of"
+msgstr ""
+
+msgid "is read-only"
+msgstr ""
+
+msgid "is too long (%{current_value}). The maximum size is %{max_size}."
+msgstr ""
+
+msgid "is too long (%{size}). The maximum size is %{max_size}."
+msgstr ""
+
+msgid "is too long (maximum is %{count} characters)"
+msgstr ""
+
+msgid "is too long (maximum is 100 entries)"
+msgstr ""
+
+msgid "is too long (maximum is 1000 entries)"
+msgstr ""
+
+msgid "issue"
+msgid_plural "issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "issues at risk"
+msgstr ""
+
+msgid "issues need attention"
+msgstr ""
+
+msgid "issues on track"
+msgstr ""
+
+msgid "it is larger than %{limit}"
+msgstr ""
+
+msgid "it is stored as a job artifact"
+msgstr ""
+
+msgid "it is stored externally"
+msgstr ""
+
+msgid "it is stored in LFS"
+msgstr ""
+
+msgid "it is too large"
+msgstr ""
+
+msgid "jigsaw is not defined"
+msgstr ""
+
+msgid "key result"
+msgstr ""
+
+msgid "kuromoji custom analyzer"
+msgstr ""
+
+msgid "last commit:"
+msgstr ""
+
+msgid "latest"
+msgstr ""
+
+msgid "latest deployment"
+msgstr ""
+
+msgid "latest version"
+msgstr ""
+
+msgid "leave %{group_name}"
+msgstr ""
+
+msgid "less than a minute"
+msgstr ""
+
+msgid "level: %{level}"
+msgstr ""
+
+msgid "lfs objects"
+msgstr ""
+
+msgid "limit of %{project_limit} reached"
+msgstr ""
+
+msgid "line"
+msgid_plural "lines"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "load it anyway"
+msgstr ""
+
+msgid "loading"
+msgstr ""
+
+msgid "locked by %{path_lock_user_name} %{created_at}"
+msgstr ""
+
+msgid "manual"
+msgstr ""
+
+msgid "math|Displaying this math block may cause performance issues on this page."
+msgstr ""
+
+msgid "math|There was an error rendering this math block. %{katexMessage}"
+msgstr ""
+
+msgid "math|This math block exceeds %{maxMathChars} characters, and may cause performance issues on this page."
+msgstr ""
+
+msgid "math|Too many expansions. Consider using multiple math blocks."
+msgstr ""
+
+msgid "member"
+msgid_plural "members"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "merge request"
+msgid_plural "merge requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "mergedCommitsAdded| (commits were squashed)"
+msgstr ""
+
+msgid "milestone"
+msgstr ""
+
+msgid "milestone should belong either to a project or a group."
+msgstr ""
+
+msgid "missing"
+msgstr ""
+
+msgid "months"
+msgstr ""
+
+msgid "most recent deployment"
+msgstr ""
+
+msgid "mrWidgetCommitsAdded|%{commitCount} and %{mergeCommitCount} will be added to %{targetBranch}%{squashedCommits}."
+msgstr ""
+
+msgid "mrWidgetCommitsAdded|%{commitCount} will be added to %{targetBranch}."
+msgstr ""
+
+msgid "mrWidgetCommitsAdded|%{strongStart}1%{strongEnd} merge commit"
+msgstr ""
+
+msgid "mrWidgetCommitsAdded|Changes merged into %{targetBranch} with %{mergeCommitSha}%{squashedCommits}."
+msgstr ""
+
+msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
+msgstr ""
+
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
+msgid "mrWidgetNothingToMerge|Merge request contains no changes"
+msgstr ""
+
+msgid "mrWidgetNothingToMerge|Use merge requests to propose changes to your project and discuss them with your team. To make changes, use the %{boldStart}Code%{boldEnd} dropdown list above, then test them with %{linkStart}CI/CD%{linkEnd} before merging."
+msgstr ""
+
+msgid "mrWidget|%{boldHeaderStart}Looks like there's no pipeline here.%{boldHeaderEnd}"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} Select %{boldStart}Mark as ready%{boldEnd} to remove it from Draft status."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} Users who can write to the source or target branches can resolve the conflicts."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} a Jira issue key must be mentioned in the title or description."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} all required approvals must be given."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} all status checks must pass."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} all threads must be resolved."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} denied licenses must be removed."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} fast-forward merge is not possible. To merge this request, first rebase locally."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} merge conflicts must be resolved."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} new changes were just added."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} pipeline must succeed. It's waiting for a manual action to continue."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} pipeline must succeed. Push a commit that fixes the failure or %{linkStart}learn about other solutions.%{linkEnd}"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} the source branch must be rebased onto the target branch."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge blocked:%{boldEnd} you can only merge after the above items are resolved."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge unavailable:%{boldEnd} merge requests are read-only in a secondary Geo node."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merge unavailable:%{boldEnd} merge requests are read-only on archived projects."
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} Changes are being shipped…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} Changes will land soon…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} Drum roll, please…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} Everything's good…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} Lift-off in 5… 4… 3…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} Take a deep breath and relax…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} The changes are leaving the station…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} This is going to be great…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Merging!%{boldEnd} We're almost there…"
+msgstr ""
+
+msgid "mrWidget|%{boldStart}Ready to be merged automatically.%{boldEnd} Ask someone with write access to this repository to merge this request."
+msgstr ""
+
+msgid "mrWidget|%{dangerStart}%{rules} rule can't be approved%{dangerEnd}"
+msgstr ""
+
+msgid "mrWidget|%{dangerStart}%{rules} rules can't be approved%{dangerEnd}"
+msgstr ""
+
+msgid "mrWidget|%{mergeError}."
+msgstr ""
+
+msgid "mrWidget|%{mergeError}. Try again."
+msgstr ""
+
+msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB"
+msgstr ""
+
+msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB"
+msgstr ""
+
+msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB"
+msgstr ""
+
+msgid "mrWidget|%{rules} invalid rule has been approved automatically"
+msgstr ""
+
+msgid "mrWidget|%{rules} invalid rules have been approved automatically"
+msgstr ""
+
+msgid "mrWidget|A new merge train has started and this merge request is the first of the queue."
+msgstr ""
+
+msgid "mrWidget|Added to the merge train by %{merge_author}"
+msgstr ""
+
+msgid "mrWidget|Added to the merge train. There are %{mergeTrainPosition} merge requests waiting to be merged"
+msgstr ""
+
+msgid "mrWidget|An error occurred while removing your approval."
+msgstr ""
+
+msgid "mrWidget|An error occurred while retrieving approval data for this merge request."
+msgstr ""
+
+msgid "mrWidget|An error occurred while submitting your approval."
+msgstr ""
+
+msgid "mrWidget|Approval is optional"
+msgstr ""
+
+msgid "mrWidget|Approval password is invalid."
+msgstr ""
+
+msgid "mrWidget|Approve"
+msgstr ""
+
+msgid "mrWidget|Approve additionally"
+msgstr ""
+
+msgid "mrWidget|Approve additionally with SAML"
+msgstr ""
+
+msgid "mrWidget|Approve with SAML"
+msgstr ""
+
+msgid "mrWidget|Approved by"
+msgstr ""
+
+msgid "mrWidget|Approved by you"
+msgstr ""
+
+msgid "mrWidget|Approved by you and others"
+msgstr ""
+
+msgid "mrWidget|Are you sure you want to rebase?"
+msgstr ""
+
+msgid "mrWidget|Assign yourself to these issues"
+msgstr ""
+
+msgid "mrWidget|Assign yourself to this issue"
+msgstr ""
+
+msgid "mrWidget|Auto-merge enabled"
+msgstr ""
+
+msgid "mrWidget|Cancel auto-merge"
+msgstr ""
+
+msgid "mrWidget|Checking if merge request can be merged…"
+msgstr ""
+
+msgid "mrWidget|Cherry-pick"
+msgstr ""
+
+msgid "mrWidget|Cherry-pick this merge request in a new merge request"
+msgstr ""
+
+msgid "mrWidget|Closed"
+msgstr ""
+
+msgid "mrWidget|Closed by"
+msgstr ""
+
+msgid "mrWidget|Closes issue"
+msgid_plural "mrWidget|Closes issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "mrWidget|Delete source branch"
+msgstr ""
+
+msgid "mrWidget|Deployment statistics are not available currently"
+msgstr ""
+
+msgid "mrWidget|Did not close"
+msgstr ""
+
+msgid "mrWidget|Failed to load deployment statistics"
+msgstr ""
+
+msgid "mrWidget|GitLab %{linkStart}CI/CD can automatically build, test, and deploy your application.%{linkEnd} It only takes a few minutes to get started, and we can help you create a pipeline configuration file."
+msgstr ""
+
+msgid "mrWidget|Go to first unresolved thread"
+msgstr ""
+
+msgid "mrWidget|Hide %{widget} details"
+msgstr ""
+
+msgid "mrWidget|If the %{type} branch exists in your local repository, you can merge this merge request manually using the command line."
+msgstr ""
+
+msgid "mrWidget|If the last pipeline ran in the fork project, it may be inaccurate. Before merge, we advise running a pipeline in this project."
+msgstr ""
+
+msgid "mrWidget|Loading deployment statistics"
+msgstr ""
+
+msgid "mrWidget|Mark as ready"
+msgstr ""
+
+msgid "mrWidget|Members who can merge are allowed to add commits."
+msgstr ""
+
+msgid "mrWidget|Mentions issue"
+msgid_plural "mrWidget|Mentions issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "mrWidget|Merge blocked: all required approvals must be given."
+msgstr ""
+
+msgid "mrWidget|Merge failed."
+msgstr ""
+
+msgid "mrWidget|Merged by"
+msgstr ""
+
+msgid "mrWidget|Merging immediately is not recommended. The merged changes could cause pipeline failures on the target branch, and the changes will not be validated against the commits being added by the merge requests currently in the merge train. Read the %{linkStart}documentation%{linkEnd} for more information."
+msgstr ""
+
+msgid "mrWidget|Merging immediately isn't recommended as it may negatively impact the existing merge train. Read the %{linkStart}documentation%{linkEnd} for more information."
+msgstr ""
+
+msgid "mrWidget|Please restore it or use a different %{type} branch."
+msgstr ""
+
+msgid "mrWidget|Rebase"
+msgstr ""
+
+msgid "mrWidget|Rebase in progress"
+msgstr ""
+
+msgid "mrWidget|Rebase without pipeline"
+msgstr ""
+
+msgid "mrWidget|Refresh"
+msgstr ""
+
+msgid "mrWidget|Refresh now"
+msgstr ""
+
+msgid "mrWidget|Refreshing now"
+msgstr ""
+
+msgid "mrWidget|Remove from merge train"
+msgstr ""
+
+msgid "mrWidget|Resolve conflicts"
+msgstr ""
+
+msgid "mrWidget|Resolve locally"
+msgstr ""
+
+msgid "mrWidget|Revert"
+msgstr ""
+
+msgid "mrWidget|Revert this merge request in a new merge request"
+msgstr ""
+
+msgid "mrWidget|Revoke approval"
+msgstr ""
+
+msgid "mrWidget|Set by %{merge_author} to be added to the merge train when the pipeline succeeds"
+msgstr ""
+
+msgid "mrWidget|Set by %{merge_author} to be merged automatically when all merge checks pass"
+msgstr ""
+
+msgid "mrWidget|Set by %{merge_author} to be merged automatically when the pipeline succeeds"
+msgstr ""
+
+msgid "mrWidget|Set by %{merge_author} to start a merge train when the pipeline succeeds"
+msgstr ""
+
+msgid "mrWidget|Show %{widget} details"
+msgstr ""
+
+msgid "mrWidget|The %{type} branch %{codeStart}%{name}%{codeEnd} does not exist."
+msgstr ""
+
+msgid "mrWidget|The source branch is %{link} the target branch."
+msgstr ""
+
+msgid "mrWidget|This merge request failed to be merged automatically"
+msgstr ""
+
+msgid "mrWidget|To approve this merge request, please enter your password. This project requires all approvals to be authenticated."
+msgstr ""
+
+msgid "mrWidget|To change these default messages, edit the templates for both the merge and squash commit messages. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "mrWidget|To change this default message, edit the template for merge commit messages. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "mrWidget|To change this default message, edit the template for squash commit messages. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "mrWidget|Your merge request is almost ready!"
+msgstr ""
+
+msgid "mrWidget|Your password"
+msgstr ""
+
+msgid "must be a Debian package"
+msgstr ""
+
+msgid "must be a boolean value"
+msgstr ""
+
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
+msgid "must be a root group."
+msgstr ""
+
+msgid "must be a root namespace"
+msgstr ""
+
+msgid "must be a valid IPv4 or IPv6 address"
+msgstr ""
+
+msgid "must be a valid json schema"
+msgstr ""
+
+msgid "must be a valid syntax highlighting theme ID"
+msgstr ""
+
+msgid "must be a value between 0 and 1"
+msgstr ""
+
+msgid "must be after start"
+msgstr ""
+
+msgid "must be an array"
+msgstr ""
+
+msgid "must be an array of CIDR values"
+msgstr ""
+
+msgid "must be an array of hash"
+msgstr ""
+
+msgid "must be an array of hash containing 'allow' attribute of type string"
+msgstr ""
+
+msgid "must be an email you have verified"
+msgstr ""
+
+msgid "must be associated with a Group or a Project"
+msgstr ""
+
+msgid "must be at least 1 day"
+msgstr ""
+
+msgid "must be before %{expiry_date}"
+msgstr ""
+
+msgid "must be enabled."
+msgstr ""
+
+msgid "must be false when email confirmation setting is off"
+msgstr ""
+
+msgid "must be greater than start date"
+msgstr ""
+
+msgid "must be in ISO 8601 format"
+msgstr ""
+
+msgid "must be in same hierarchy as custom role's namespace"
+msgstr ""
+
+msgid "must be inside the fork network"
+msgstr ""
+
+msgid "must be less than the limit of %{tag_limit} tags"
+msgstr ""
+
+msgid "must be one of: %{values}"
+msgstr ""
+
+msgid "must be owned by the user's enterprise group"
+msgstr ""
+
+msgid "must be set for a project namespace"
+msgstr ""
+
+msgid "must be specified"
+msgstr ""
+
+msgid "must be unique by status and elapsed time within a policy"
+msgstr ""
+
+msgid "must be unique. This CA has already been configured for another namespace."
+msgstr ""
+
+msgid "must belong to same project of its requirement object."
+msgstr ""
+
+msgid "must belong to same project of the work item."
+msgstr ""
+
+msgid "must contain only a discord user ID."
+msgstr ""
+
+msgid "must contain only a mastodon username."
+msgstr ""
+
+msgid "must have a repository"
+msgstr ""
+
+msgid "must have a valid format and be greater than or equal to zero."
+msgstr ""
+
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
+msgid "must match %{association}.project_id"
+msgstr ""
+
+msgid "must match one of the following file types: %{extension_list}"
+msgstr ""
+
+msgid "must not be an owner of the namespace"
+msgstr ""
+
+msgid "must not contain commonly used combinations of words and letters"
+msgstr ""
+
+msgid "must only contain letters, digits, forward-slash, underscore, hyphen or period"
+msgstr ""
+
+msgid "my-awesome-group"
+msgstr ""
+
+msgid "my-channel"
+msgstr ""
+
+msgid "my-topic"
+msgstr ""
+
+msgid "needs to be between 10 minutes and 1 month"
+msgstr ""
+
+msgid "never"
+msgstr ""
+
+msgid "never expires"
+msgstr ""
+
+msgid "new merge request"
+msgstr ""
+
+msgid "no expiration"
+msgstr ""
+
+msgid "no name set"
+msgstr ""
+
+msgid "no one can merge"
+msgstr ""
+
+msgid "no scopes selected"
+msgstr ""
+
+msgid "none"
+msgstr ""
+
+msgid "not authorized to create member"
+msgstr ""
+
+msgid "not authorized to update member"
+msgstr ""
+
+msgid "not found"
+msgstr ""
+
+msgid "nounSeries|%{firstItem} and %{lastItem}"
+msgstr ""
+
+msgid "nounSeries|%{item}"
+msgstr ""
+
+msgid "nounSeries|%{item}, %{nextItem}"
+msgstr ""
+
+msgid "nounSeries|%{item}, and %{lastItem}"
+msgstr ""
+
+msgid "objective"
+msgstr ""
+
+msgid "on or after"
+msgstr ""
+
+msgid "only available on top-level groups."
+msgstr ""
+
+msgid "only supports valid HTTP(S) URLs"
+msgstr ""
+
+msgid "open issue"
+msgid_plural "open issues"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "or"
+msgstr ""
+
+msgid "or sign in with"
+msgstr ""
+
+msgid "organizations can only be added to root groups"
+msgstr ""
+
+msgid "packages"
+msgstr ""
+
+msgid "pages"
+msgstr ""
+
+msgid "params is empty"
+msgstr ""
+
+msgid "parent"
+msgid_plural "parents"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "parent already has maximum number of children."
+msgstr ""
+
+msgid "parent must be in the same project or group as child."
+msgstr ""
+
+msgid "password"
+msgstr ""
+
+msgid "pending comment"
+msgstr ""
+
+msgid "pending deletion"
+msgstr ""
+
+msgid "personal access token"
+msgstr ""
+
+msgid "personal access tokens"
+msgstr ""
+
+msgid "pipelineEditorWalkthrough|Let's do this!"
+msgstr ""
+
+msgid "pipelineEditorWalkthrough|See how GitLab pipelines work"
+msgstr ""
+
+msgid "pipelineEditorWalkthrough|This %{codeStart}.gitlab-ci.yml%{codeEnd} file creates a simple test pipeline."
+msgstr ""
+
+msgid "pipelineEditorWalkthrough|Use the %{boldStart}commit changes%{boldEnd} button at the bottom of the page to run the pipeline."
+msgstr ""
+
+msgid "pipelineEditorWalkthrough|You can use the file tree to view your pipeline configuration files. %{linkStart}Learn more%{linkEnd}"
+msgstr ""
+
+msgid "point"
+msgid_plural "points"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "previously merged commits"
+msgstr ""
+
+msgid "private"
+msgstr ""
+
+msgid "private key does not match certificate."
+msgstr ""
+
+msgid "processing"
+msgstr ""
+
+msgid "project"
+msgid_plural "projects"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "project access token"
+msgstr ""
+
+msgid "project access tokens"
+msgstr ""
+
+msgid "project bots cannot be added to other groups / projects"
+msgstr ""
+
+msgid "project is read-only"
+msgstr ""
+
+msgid "project members"
+msgstr ""
+
+msgid "project name"
+msgstr ""
+
+msgid "project namespace cannot be the parent of another namespace"
+msgstr ""
+
+msgid "projects"
+msgstr ""
+
+msgid "random"
+msgstr ""
+
+msgid "reCAPTCHA"
+msgstr ""
+
+msgid "reCAPTCHA helps prevent credential stuffing."
+msgstr ""
+
+msgid "reCAPTCHA private key"
+msgstr ""
+
+msgid "reCAPTCHA site key"
+msgstr ""
+
+msgid "reached maximum depth"
+msgstr ""
+
+msgid "recent activity"
+msgstr ""
+
+msgid "register"
+msgstr ""
+
+msgid "relates to"
+msgstr ""
+
+msgid "remaining"
+msgstr ""
+
+msgid "remove"
+msgstr ""
+
+msgid "remove due date"
+msgstr ""
+
+msgid "remove start date"
+msgstr ""
+
+msgid "remove weight"
+msgstr ""
+
+msgid "removed %{emails}"
+msgstr ""
+
+msgid "removed a %{link_type} link"
+msgstr ""
+
+msgid "removed a Zoom call from this issue"
+msgstr ""
+
+msgid "rendered diff"
+msgstr ""
+
+msgid "reply"
+msgid_plural "replies"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "reply should have same confidentiality as top-level note"
+msgstr ""
+
+msgid "repositories"
+msgstr ""
+
+msgid "repository"
+msgid_plural "repositories"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "repository:"
+msgstr ""
+
+msgid "rule"
+msgid_plural "rules"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "running"
+msgstr ""
+
+msgid "satisfied"
+msgstr ""
+
+msgid "scan-execution-policy: policy not applied, %{policy_path} file is invalid"
+msgstr ""
+
+msgid "scan-execution-policy: policy not applied, %{policy_path} file is missing"
+msgstr ""
+
+msgid "scheduled"
+msgstr ""
+
+msgid "seat"
+msgid_plural "seats"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "security Reports|There was an error creating the merge request"
+msgstr ""
+
+msgid "security policy bot users cannot be added to other projects"
+msgstr ""
+
+msgid "selective_code_owner_removals can only be enabled when retain_approvals_on_push is enabled"
+msgstr ""
+
+msgid "severity|Blocker"
+msgstr ""
+
+msgid "severity|Critical"
+msgstr ""
+
+msgid "severity|High"
+msgstr ""
+
+msgid "severity|Info"
+msgstr ""
+
+msgid "severity|Low"
+msgstr ""
+
+msgid "severity|Major"
+msgstr ""
+
+msgid "severity|Medium"
+msgstr ""
+
+msgid "severity|Minor"
+msgstr ""
+
+msgid "severity|None"
+msgstr ""
+
+msgid "severity|Unknown"
+msgstr ""
+
+msgid "should be a valid NPM package name with optional wildcard characters."
+msgstr ""
+
+msgid "should be an array of %{object_name} objects"
+msgstr ""
+
+msgid "should be an array of existing user ids. %{invalid} does not exist"
+msgstr ""
+
+msgid "should be an array of existing usernames. %{invalid} does not exist"
+msgstr ""
+
+msgid "should be greater than or equal to %{access} inherited membership from group %{group_name}"
+msgstr ""
+
+msgid "show %{count} more"
+msgstr ""
+
+msgid "show fewer"
+msgstr ""
+
+msgid "show less"
+msgstr ""
+
+msgid "sign in"
+msgstr ""
+
+msgid "site"
+msgstr ""
+
+msgid "smartcn custom analyzer"
+msgstr ""
+
+msgid "snippet"
+msgstr ""
+
+msgid "source"
+msgstr ""
+
+msgid "source diff"
+msgstr ""
+
+msgid "specific protected branches"
+msgstr ""
+
+msgid "specified top is not part of the tree"
+msgstr ""
+
+msgid "spendCommand|%{slash_command} adds or subtracts time already spent."
+msgstr ""
+
+msgid "ssh:"
+msgstr ""
+
+msgid "started a discussion on %{design_link}"
+msgstr ""
+
+msgid "started on %{timebox_start_date}"
+msgstr ""
+
+msgid "starts on %{timebox_start_date}"
+msgstr ""
+
+msgid "structure is too large. Maximum size is %{max_size} characters"
+msgstr ""
+
+msgid "stuck"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+msgid "suggestPipeline|1/2: Choose a template"
+msgstr ""
+
+msgid "suggestPipeline|2/2: Commit your changes"
+msgstr ""
+
+msgid "suggestPipeline|Choose %{boldStart}Code Quality%{boldEnd} to add a pipeline that tests the quality of your code."
+msgstr ""
+
+msgid "suggestPipeline|The template is ready! You can now commit it to create your first pipeline."
+msgstr ""
+
+msgid "suggestPipeline|We’re adding a GitLab CI configuration file to add a pipeline to the project. You could create it manually, but we recommend that you start with a GitLab template that works out of the box."
+msgstr ""
+
+msgid "supported SSH public key."
+msgstr ""
+
+msgid "tag name"
+msgstr ""
+
+msgid "targeting "
+msgstr ""
+
+msgid "task"
+msgstr ""
+
+msgid "terraform states"
+msgstr ""
+
+msgid "test case"
+msgstr ""
+
+msgid "the correct format."
+msgstr ""
+
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
+msgid "the following epics"
+msgstr ""
+
+msgid "the following incidents or issues"
+msgstr ""
+
+msgid "the following issues"
+msgstr ""
+
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
+msgid "the wiki"
+msgstr ""
+
+msgid "then"
+msgstr ""
+
+msgid "this document"
+msgstr ""
+
+msgid "time summary"
+msgstr ""
+
+msgid "to yourself"
+msgstr ""
+
+msgid "today"
+msgstr ""
+
+msgid "toggle collapse"
+msgstr ""
+
+msgid "token already revoked"
+msgstr ""
+
+msgid "total must be less than or equal to %{size}"
+msgstr ""
+
+msgid "trigger token"
+msgstr ""
+
+msgid "triggered"
+msgstr ""
+
+msgid "two-factor authentication settings"
+msgstr ""
+
+msgid "type must be Debian"
+msgstr ""
+
+msgid "type parameter is missing and is required"
+msgstr ""
+
+msgid "unicode domains should use IDNA encoding"
+msgstr ""
+
+msgid "updated"
+msgstr ""
+
+msgid "updated %{timeAgo}"
+msgstr ""
+
+msgid "updated %{time_ago}"
+msgstr ""
+
+msgid "uploads"
+msgstr ""
+
+msgid "user"
+msgid_plural "users"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "user avatar"
+msgstr ""
+
+msgid "user namespace cannot be the parent of another namespace"
+msgstr ""
+
+msgid "username"
+msgstr ""
+
+msgid "v%{version} published %{timeAgo}"
+msgstr ""
+
+msgid "value for '%{storage}' must be an integer"
+msgstr ""
+
+msgid "value for '%{storage}' must be between 0 and 100"
+msgstr ""
+
+msgid "verify ownership"
+msgstr ""
+
+msgid "version %{report_version} for report type %{report_type} is deprecated. However, GitLab will still attempt to parse and ingest this report. Upgrade the security report to one of the following versions: %{current_schema_versions}."
+msgstr ""
+
+msgid "version %{versionIndex}"
+msgstr ""
+
+msgid "via"
+msgstr ""
+
+msgid "via %{closed_via}"
+msgstr ""
+
+msgid "via merge request %{link}"
+msgstr ""
+
+msgid "view it on GitLab"
+msgstr ""
+
+msgid "view the blob"
+msgstr ""
+
+msgid "view the source"
+msgstr ""
+
+msgid "visibility"
+msgstr ""
+
+msgid "vulnerability"
+msgid_plural "vulnerabilities"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "vulnerability|Add a comment"
+msgstr ""
+
+msgid "vulnerability|Add a comment or reason for dismissal"
+msgstr ""
+
+msgid "vulnerability|Add comment"
+msgstr ""
+
+msgid "vulnerability|Add comment & dismiss"
+msgstr ""
+
+msgid "vulnerability|Add comment and dismiss"
+msgstr ""
+
+msgid "vulnerability|Dismiss vulnerability"
+msgstr ""
+
+msgid "vulnerability|Save comment"
+msgstr ""
+
+msgid "vulnerability|Undo dismiss"
+msgstr ""
+
+msgid "vulnerability|dismissed"
+msgstr ""
+
+msgid "was set to auto-merge by"
+msgstr ""
+
+msgid "weekly"
+msgstr ""
+
+msgid "wiki page"
+msgstr ""
+
+msgid "with %{additions} additions, %{deletions} deletions."
+msgstr ""
+
+msgid "with expiry changing from %{old_expiry} to %{new_expiry}"
+msgstr ""
+
+msgid "with expiry remaining unchanged at %{old_expiry}"
+msgstr ""
+
+msgid "yaml invalid"
+msgstr ""
+
+msgid "you"
+msgstr ""
+
+msgid "your GitLab instance"
+msgstr ""
+
+msgid "your group (%{group_name})"
+msgstr ""
+
+msgid "yyyy-mm-dd"
+msgstr ""
+
+msgid "{group}"
+msgstr ""
+
+msgid "{project}"
+msgstr ""
+
+msgid "✔"
+msgstr ""
+
diff --git a/locale/tr_TR/gitlab.po b/locale/tr_TR/gitlab.po
index e475cb91da7..c425ee9075a 100644
--- a/locale/tr_TR/gitlab.po
+++ b/locale/tr_TR/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: tr\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] "%d yorum"
msgstr[1] "%d yorum"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "Bu işlem hakkında %d yorum"
-msgstr[1] "Bu işlem hakkında %d yorum"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d yorumcu"
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] "%d tamamlanmış konu"
msgstr[1] "%d tamamlanmış konu"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d katkı"
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] "%d sorun etiketle başarıyla içe aktarıldı"
msgstr[1] "%d sorun etiketle başarıyla içe aktarıldı"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr "%{author_link} yazdı:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName} kiÅŸisinin konusu"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr "%{days} gün sonra etiketler otomatik olarak kaldırılacak"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr "%{emailPrefix}@sirket.com"
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} silindi"
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} Dal"
@@ -1275,8 +1265,11 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "%{title} deÄŸiÅŸiklik"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1290,6 +1283,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} boÅŸ)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} uyarı bulundu:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr "%{user} bir sorun oluÅŸturdu: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "'%{level}' geçerli bir görünürlük seviyesi değil"
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr "(DeÄŸiÅŸiklik yok)"
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(ilerlemeyi kontrol et)"
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr "(en yüksek boyut 15 MB)"
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr "%{amount} tane daha"
msgid "+ %{count} more"
msgstr "+ %{count} daha"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr "API Yardımı"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API anahtarı"
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr "Onay kuralı ekle"
msgid "Add approvers"
msgstr "Onaylayan ekle"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Bir epiÄŸe alt epik ekle"
@@ -3014,9 +3067,6 @@ msgstr "Yığına bir öneri ekleyin."
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr "Yönetici"
-
msgid "Admin Area"
msgstr "Yönetici alanı"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr "Yönetici Modu"
+
msgid "Admin Note"
msgstr "Yönetici Mesajı"
@@ -3188,9 +3238,6 @@ msgstr "Yönetici Bildirimleri"
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr "Yönetici modu zaten etkin"
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr "Başarılı bir şifre güncellemesinden sonra giriş ekranına yönlend
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr "Algoritma"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Tümü"
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr "Tüm ortamlar"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr "Tüm kullanıcıların bir adı olmalıdır."
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Ä°zin verildi"
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "Kubernetes kümelerini eklemeye ve yönetmenize olanak tanır."
-
msgid "Almost there"
msgstr "Neredeyse tamamlandı"
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr "%{link_to_client} adlı uygulama, GitLab hesabınıza erişim talep ediy
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr "Servis Masası devre dışı bırakılırken bir hata oluştu."
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Uyarıyı kaldırırken bir sorun oluştu. Sayfayı yenileyin ve yeniden deneyin."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "Özellik vurgusunu gönderirken bir hata oluştu. Sayfayı yenileyin ve tekrar gönderin."
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr "Atalar"
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr "Anonim"
@@ -5829,6 +5904,27 @@ msgstr "Yorumu %{shrug} ile ekle"
msgid "Append the comment with %{tableflip}"
msgstr "Yorumu %{tableflip} ile ekle"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr "Uygulama"
msgid "Application ID"
msgstr "Uygulama KimliÄŸi"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr "ArÅŸiv iÅŸleri"
msgid "Archive project"
msgstr "Projeyi arÅŸivle"
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr "ArÅŸivlenmiÅŸ"
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Bu ortamı dağıtmak istediğinizden emin misiniz?"
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr "Otomatik olarak çözüldü"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "Not"
@@ -7337,12 +7427,18 @@ msgstr "Profil resmi kaldırılacak. Emin misiniz?"
msgid "Average per day: %{average}"
msgstr "Günlük ortalama: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr "Rozet ekle"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Rozetin eklenmesi başarısız oldu, lütfen girilen bağlantıları kontrol edin ve tekrar deneyin."
-
msgid "Badges|Badge image URL"
msgstr "Rozet resim bağlantısı"
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr "Rozet silinsin mi?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Rozet resmi silinemedi, lütfen daha sonra tekrar deneyin."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "Grup Rozeti"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "Bağlantı"
@@ -7457,18 +7556,21 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr "Rozet silindi."
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr ""
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
msgid "Badges|Your badges"
msgstr "Rozetleriniz"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr ""
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr "Seçili işlem ile başla"
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Daralt"
@@ -8410,9 +8473,6 @@ msgstr "GeniÅŸlet"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr "Dal zaten alınmış"
msgid "Branch name"
msgstr "Dal adı"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr "Dal yüklü değil - %{branchId}"
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr "Dallar"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr "Dosyalara gözat"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr "Kaynak gruba göre filtrele"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr "Daha fazla İş Hattı dakikası satın al"
msgid "By %{user_name}"
msgstr "%{user_name} tarafından"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr "Tüm projeler için varsayılan Otomatik DevOps iş hattı"
msgid "CICD|Deployment strategy"
msgstr "Dağıtım stratejisi"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr "%{duration} içinde"
msgid "ChatMessage|in %{project_link}"
msgstr "%{project_link} içinde"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Tekrar kontrol et"
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr "Fatura adresi"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr "Ödeme"
msgid "Checkout|City"
msgstr "Åžehir"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr "Satın almayı onayla"
msgid "Checkout|Confirming..."
msgstr "Onaylanıyor..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Faturalandırmaya devam et"
@@ -10090,6 +10231,9 @@ msgstr "Grup"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr "Bir dosya seç"
-msgid "Choose a group"
-msgstr "Bir grup seçin"
-
msgid "Choose a template"
msgstr "Bir şablon seçin"
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr "DeÄŸiÅŸkenler"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr "EpiÄŸi kapat"
msgid "Close milestone"
msgstr "Dönüm noktasını kapat"
-msgid "Close sidebar"
-msgstr "Kenar çubuğunu kapat"
-
msgid "Close this %{quick_action_target}"
msgstr "Bunu kapat %{quick_action_target}"
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr "Desen"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsSM|Code Suggestions"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr "Komutlar uygulanmadı"
msgid "Comment"
msgstr "Yorum"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Çerez etki alanı"
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr "Komutu kopyala"
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr "Komutları kopyala"
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr "Erişim anahtarını kopyala"
-
msgid "Copy value"
msgstr "DeÄŸeri kopyala"
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr "BirleÅŸtirme isteÄŸi oluÅŸtur"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr "Gereksinim oluÅŸtur"
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr "OluÅŸturulma tarihi"
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr "İş Hattı dakikası satın al"
msgid "CurrentUser|Edit profile"
msgstr "Profili düzenle"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr "Tümü"
msgid "DashboardProjects|Personal"
msgstr "KiÅŸisel"
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr "Varsayılan dal"
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Sorunlar için varsayılan açıklama şablonu"
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr "Güvenlik açığı listesini aç/kapat"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr "Kullanıcı adı"
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr "%{path} yolundaki değişiklikler yok sayılsın mı?"
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord Bildirimleri"
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr "Düzenleme"
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr "E-posta yaması"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "E-posta gönderildi"
@@ -18270,6 +18667,9 @@ msgstr "BoÅŸ dosya"
msgid "Enable"
msgstr "EtkinleÅŸtir"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr "CSV olarak dışa aktar"
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr "Depo oluşturulamadı"
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr "Viki oluşturulamadı"
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr "Dosya adı"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr "Yeniden senkronize et"
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr "Yeniden doÄŸrula"
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr "birincil"
msgid "Geo|secondary"
msgstr "ikincil"
-msgid "Get a free instance review"
-msgstr "Ücretsiz bir örnek incelemesi alın"
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHub içe aktarma"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr "Doğrulanmadı"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,18 +22751,15 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
-msgstr "GitLab'da ara"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr ""
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr "Projeye git"
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr "Parçacıklarınıza gidin"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr "Anladım!"
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr "Rozetler"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr "Sık ziyaret edilenler"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Sık ziyaret ettiğiniz gruplar burada görünecek"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Gruplar yükleniyor"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "Gruplarınızı arayın"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "Bizim tarafımızdan bir şeyler ters gitti."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Üzgünüz, aramanızla eşleşen hiçbir grup bulunamadı"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "Bu özellik tarayıcıda yerel depolama desteği gerektiriyor"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "DeÄŸeri gizle"
-msgstr[1] "DeÄŸerleri gizle"
-
msgid "Hide values"
msgstr "DeÄŸerleri gizle"
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr "Temizlik hizmeti"
msgid "Housekeeping successfully started"
msgstr "Temizlik hizmeti başarıyla başlatıldı"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr "Grubu dosyadan içe aktar"
-msgid "Import groups"
-msgstr "Grupları içeri aktar"
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Üzgünüz, süzgeciniz sonuç üretmedi"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "Bu sensin"
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr "Kubernetes dağıtımı bulunamadı"
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr "Son EriÅŸim Tarihi"
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr "Son eriÅŸim tarihi:"
msgid "Last activity"
msgstr "Son etkinlik"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "Son iÅŸlem"
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr "Ayrıl"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr "Liste"
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr "Tartışmayı kilitler."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr "MB"
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr "Birleştirme isteği onayları"
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr "Metrikler"
+
msgid "Metrics - Grafana"
msgstr "Metrikler - Grafana"
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr "Birim etiketi"
@@ -30306,6 +30812,9 @@ msgstr "ör. ist/sn"
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Dakika"
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr "Kapat"
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr "Dağıtım bulunamadı"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr "Gizli deÄŸil"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "Ä°nceleyici: %{users}"
msgstr[1] "Ä°nceleyici: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr "Oops, emin misin?"
-
msgid "Open"
msgstr "Açık"
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr "Ham olarak aç"
-msgid "Open sidebar"
-msgstr "Kenar çubuğunu aç"
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr "Genel bakış"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr "Üzgünüz, filtreniz sonuç vermedi"
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr "Åžifre doÄŸrulama"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "Şifre başarıyla değiştirildi"
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "'%{project_name}' için iş hattı ayarları başarıyla güncellendi."
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr "İş Hatları Yükleniyor"
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr "Önizleme yükü"
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr "Önceki işlem"
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr "Profil"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr "Kullanıcı adı başarıyla değiştirildi"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,8 +38027,8 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
-msgstr "Çatallar"
+msgid "ProjectOverview|Fork"
+msgstr "Çatalla"
msgid "ProjectOverview|Go to your fork"
msgstr "Çatalınıza gidin"
@@ -37302,11 +38054,26 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "Proje KimliÄŸi: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr ""
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "Sık ziyaret edilenler"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Projeler yükleniyor"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Sık ziyaret ettiğiniz projeler burada görünecektir"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Projelerinizi arayın"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "Bizim tarafımızdan bir şeyler ters gitti."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Üzgünüz, aramanızla eşleşen hiçbir proje yok"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr "Åžablondan oluÅŸtur"
msgid "ProjectsNew|Create new project"
msgstr "Yeni proje oluÅŸtur"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr "Açıklama formatı"
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr "Görünürlük Seviyesi"
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr "Daha sonra hatırlat"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Kaldır"
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr "Bitiş tarihini kaldır"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr "Epikten bir sorunu kaldırır."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr "Epiği yeniden aç"
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "Çalışıyor"
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr "Dosyaları ara"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr "Güvenlik Kontrol Panosu"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr "CI/CD'yi kur"
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ msgstr "Yeni ÅŸifre ayarla"
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr "Ayarlar"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "Önem"
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr "Akıllı kart kullanarak oturum açın"
msgid "Sign in via 2FA code"
msgstr "2FA kodu ile oturum açın"
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr "Kayıt kısıtlamaları"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr "Popülerlik"
msgid "SortOptions|Priority"
msgstr "Öncelik"
-msgid "SortOptions|Project"
-msgstr "Proje"
-
msgid "SortOptions|Recent last activity"
msgstr "Son etkinlik"
@@ -46000,8 +46978,8 @@ msgstr "Yakınlarda yıldızlanan"
msgid "SortOptions|Size"
msgstr "Boyut"
-msgid "SortOptions|Sort by:"
-msgstr "Sıralama:"
+msgid "SortOptions|Sort by"
+msgstr ""
msgid "SortOptions|Sort direction"
msgstr "Sıralama yönü"
@@ -46021,12 +46999,6 @@ msgstr "Yakında başlat"
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr "Tür"
-
-msgid "SortOptions|Version"
-msgstr "Sürüm"
-
msgid "SortOptions|Weight"
msgstr "Ağırlık"
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr "Standart"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr "Spam olarak gönder"
-msgid "Submit feedback"
-msgstr "Geri bildirim gönder"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr "Dal/etiketi deÄŸiÅŸtir"
-msgid "Switch to GitLab Next"
-msgstr "GitLab Next'e geçin"
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr "Hedef Yol"
msgid "Target branch"
msgstr "Hedef dal"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr "Hata giderildiği için, ilgili #%{issueId} sorunu kapatıldı."
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are currently no target branch rules"
-msgstr ""
-
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Bu, boş bir havuz oluşturmadan veya mevcut olanı içe aktarmadan kodu zorlayamazsınız anlamına gelir."
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr "Yapılacaklar öğesi başarıyla bitti olarak işaretlendi."
msgid "Today"
msgstr "Bugün"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,8 +51413,8 @@ msgstr "İşlem listesini aç/kapat"
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
-msgstr "İfade ödülünü aç/kapat"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr ""
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr "Gezinmeyi aç/kapat"
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr "Performans Çubuğunu aç/kapat"
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr "Öne Çıkanlar"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr "İki Aşamalı Kimlik Doğrulama"
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr "Bilinmeyen yanıt metni"
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "Depolama"
@@ -52073,12 +53071,6 @@ msgstr "Åžablonu kullan"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr "Açık birleştirme isteğini görüntüle"
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr "Adınız"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr "Projeleriniz"
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
-msgstr "Kod kalitesinde deÄŸiÅŸiklik yok"
-
msgid "ciReport|No code quality issues found"
msgstr ""
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr "ağırlığı kaldır"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/uk/gitlab.po b/locale/uk/gitlab.po
index 496cfef5fb9..e884d9f0ded 100644
--- a/locale/uk/gitlab.po
+++ b/locale/uk/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: uk\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr " %{start} до %{end}"
@@ -201,13 +201,6 @@ msgstr[1] "%d артефакти"
msgstr[2] "%d артефактів"
msgstr[3] "%d артефактів"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d призначена задача"
-msgstr[1] "%d призначені задачі"
-msgstr[2] "%d призначених задач"
-msgstr[3] "%d призначених задач"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -250,13 +243,6 @@ msgstr[1] "%d коментарі"
msgstr[2] "%d коментарів"
msgstr[3] "%d коментарів"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d коментатор"
@@ -299,13 +285,6 @@ msgstr[1] "%d задачі завершено"
msgstr[2] "%d задач завершено"
msgstr[3] "%d задач завершено"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d внеÑок"
@@ -418,6 +397,13 @@ msgstr[1] "%d задачі уÑпішно імпортовані з міткою
msgstr[2] "%d задач уÑпішно імпортовані з міткою"
msgstr[3] "%d задач уÑпішно імпортовані з міткою"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d завданнÑ"
@@ -721,6 +707,9 @@ msgstr "%{author_link} напиÑав:"
msgid "%{authorsName}'s thread"
msgstr "Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ %{authorsName}"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} запрошує об'єднати %{source_branch} %{copy_button} в %{target_branch} %{created_at}"
@@ -767,15 +756,6 @@ msgstr "%{chartTitle} немає Ñерії даних"
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr "%{codeStart}$%{codeEnd} буде розглÑдатиÑÑ Ñк початок поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° іншу змінну."
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr "%{code_open}Розширено:%{code_close} Змінні з %{code_open}$%{code_close} розглÑдатимутьÑÑ Ñк початок поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° іншу змінну."
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}ЗамаÑковано:%{code_close} Сховано в журналах завдань. Повинні відповідати вимогам до маÑкуваннÑ."
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}Захищений:%{code_close} Відкритий лише захищеними гілками або тегами."
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "%{commit_author_link} автор %{commit_authored_timeago}"
@@ -787,10 +767,10 @@ msgstr "%{completedCount} заповнена вага"
msgid "%{completedCount} of %{count} checklist item completed"
msgid_plural "%{completedCount} of %{count} checklist items completed"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%{completedCount} з %{count} Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾"
+msgstr[1] "%{completedCount} з %{count} завдань завершено"
+msgstr[2] "%{completedCount} з %{count} завдань завершено"
+msgstr[3] "%{completedCount} з %{count} завдань завершено"
msgid "%{completedWeight} of %{totalWeight} weight completed"
msgstr "%{completedWeight} з %{totalWeight} ваги виконано"
@@ -909,12 +889,6 @@ msgstr "%{days} днів до того, Ñк теги будуть видалеÐ
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Ð¿Ð¾Ð´Ñ–Ñ Ñƒ Sentry: %{errorUrl}- Вперше помічено: %{firstSeen}- ВоÑтаннє помічено: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{doc_link_start}Розширений пошук%{doc_link_end} вимкнено, оÑкільки %{ref_elem} не Ñ” гілкою за замовчуваннÑм. %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}Розширений пошук%{doc_link_end} увімкнено."
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}ДовідайтеÑÑŒ про рівні видимоÑÑ‚Ñ–.%{docs_link_end}"
@@ -951,6 +925,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "Ще %{extra} наÑтупних конвеєрів"
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "%{filePath} видалено"
@@ -1125,6 +1102,12 @@ msgstr "%{linkStart} ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ%{linkEnd}."
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow}та %{awardsListLength} ще"
@@ -1408,6 +1391,9 @@ msgstr[3] "%{strongStart}%{count}%{strongEnd} комітів"
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr "%{strongStart}Порада:%{strongEnd} Ви також можете %{linkStart}переглÑнути за допомогою запиту на злиттÑ%{linkEnd}."
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} Гілка"
@@ -1517,8 +1503,11 @@ msgstr "%{timebox_type} повинні мати дату початку Ñ– заÐ
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
-msgstr "%{title} зміни"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} вільно)"
@@ -1532,6 +1521,9 @@ msgstr "%{totalMemory} (%{freeSpacePercentage}%{percentSymbol} вільно)"
msgid "%{total_warnings} warning(s) found:"
msgstr "%{total_warnings} попереджень знайдено:"
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr "%{total} загальна вага відкритих задач"
@@ -1586,6 +1578,9 @@ msgstr "%{user} Ñтворив задачу: %{issue_link}"
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} не включено до ÑпиÑку"
@@ -1604,6 +1599,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{wildcards_link_start}Шаблони%{wildcards_link_end} такі Ñк %{code_tag_start}v *%{code_tag_end} або %{code_tag_start}* -релізи%{code_tag_end}підтримуютьÑÑ."
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr "\"%{level}\" не Ñ” допуÑтимим рівнем видимоÑÑ‚Ñ–"
@@ -1619,9 +1617,21 @@ msgstr "«%{value}» днів бездіÑльноÑÑ‚Ñ– має бути білÑ
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1659,6 +1669,12 @@ msgstr "(Ðемає змін)"
msgid "(Unlimited pipeline minutes)"
msgstr "(Ðеобмежена кількіÑÑ‚ÑŒ хвилин конвеєра)"
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(перевірити прогреÑ)"
@@ -1677,9 +1693,6 @@ msgstr "(зовнішній учаÑник)"
msgid "(leave blank if you don't want to change it)"
msgstr "(залишіть порожнім, Ñкщо ви не хочете змінювати)"
-msgid "(max size 15 MB)"
-msgstr "(макÑимальний розмір 15 Мб)"
-
msgid "(no user)"
msgstr "(нема кориÑтувача)"
@@ -1710,7 +1723,7 @@ msgstr "+ %{amount} більше"
msgid "+ %{count} more"
msgstr "+ ще %{count}"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -2078,9 +2091,6 @@ msgstr "Базова Ñторінка та Serverless функціÑ, що виÐ
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "ОÑновний шаблон розробки програм Linux за допомогою Kotlin Native"
-msgid "A complete DevOps platform"
-msgstr "Повноцінна DevOps платформа"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -2186,8 +2196,8 @@ msgstr "Готовий шаблон Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð· Android Ð
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "Готовий шаблон Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð· iOS Swift заÑтоÑунками"
-msgid "A rebase is already in progress."
-msgstr "ÐŸÐµÑ€ÐµÐ±Ð°Ð·ÑƒÐ²Ð°Ð½Ð½Ñ (rebase) вже в прогреÑÑ–."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "Вхід до вашого облікового запиÑу був зроблений з наÑтупної IP-адреÑи: %{ip}"
@@ -2210,6 +2220,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2309,9 +2346,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr "ÐадіÑлати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð² чат."
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2334,6 +2368,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2379,6 +2416,9 @@ msgstr "API Fuzzing"
msgid "API Help"
msgstr "Довідка API"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API ключ"
@@ -2575,7 +2615,7 @@ msgid "AbuseReport|Action"
msgstr ""
msgid "AbuseReport|Actions"
-msgstr ""
+msgstr "Дії"
msgid "AbuseReport|Activity"
msgstr "ÐктивніÑÑ‚ÑŒ"
@@ -2700,6 +2740,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -3174,6 +3220,9 @@ msgstr "Додати правило затвердженнÑ"
msgid "Add approvers"
msgstr "Додати затверджуючих оÑіб"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "Додати дочірній епік до епіка"
@@ -3247,7 +3296,7 @@ msgid "Add new"
msgstr ""
msgid "Add new application"
-msgstr "Додати новий додаток"
+msgstr "Додати новий заÑтоÑунок"
msgid "Add new comment template"
msgstr ""
@@ -3312,9 +3361,6 @@ msgstr "Додати пропозицію до пакета"
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "Додати текÑÑ‚ до Ñторінки входу. Markdown увімкнено."
@@ -3468,15 +3514,15 @@ msgstr "Додайте цей %{issuable_type} Ñк пов'Ñзаний з %{iss
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "Ðалаштувати чаÑтоту оновлень інтерфейÑу Gitlab."
-msgid "Admin"
-msgstr "ÐдмініÑтратор"
-
msgid "Admin Area"
msgstr "ОблаÑÑ‚ÑŒ адмініÑтратора"
msgid "Admin Area / Dashboard"
msgstr "ОблаÑÑ‚ÑŒ адмініÑтратора / Панель керуваннÑ"
+msgid "Admin Mode"
+msgstr "Режим адмініÑтратора"
+
msgid "Admin Note"
msgstr "Примітка ÐдмініÑтратора"
@@ -3486,9 +3532,6 @@ msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратора"
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr "Режим адмініÑтратора"
-
msgid "Admin mode already enabled"
msgstr "Режим адмініÑтратора вже ввімкнено"
@@ -3846,6 +3889,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr "Ліміт кількоÑÑ‚Ñ– порушень Git"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3942,6 +3988,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr "Заборонити не адмініÑтраторам викориÑтовувати вибрані рівні видимоÑÑ‚Ñ– Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿, проєктів Ñ– Ñніпетів."
@@ -4560,6 +4609,9 @@ msgstr "документи"
msgid "AdminUsers|user cap"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "ÐдмініÑтратори"
@@ -4593,6 +4645,9 @@ msgstr "Облікові дані"
msgid "Admin|Deploy Keys"
msgstr "Ключі Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ"
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr "Geo"
@@ -4704,18 +4759,24 @@ msgstr "ПіÑÐ»Ñ ÑƒÑпішного Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²Ð¸ пеÑ
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
-msgstr "ПіÑÐ»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ— інтеграції Apple App Store Connect будуть Ñтворені такі захищені змінні Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ CI/CD."
-
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr "ПіÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÐµÐºÑпорту завантажте файл даних із Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾Ñ— пошти або з цієї Ñторінки. Потім ви можете імпортувати файл даних із %{strong_text_start}Створити нову Ñторінку групи %{strong_text_end} іншого інÑтанÑа GitLab."
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr "ПіÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк ви ознайомитеÑÑ Ð· цими принципами внеÑÐµÐ½Ð½Ñ Ð²ÐºÐ»Ð°Ð´Ñ–Ð², ви будете готові до"
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -5064,6 +5125,15 @@ msgstr "Тепер теÑтове Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути виÐ
msgid "Algorithm"
msgstr "Ðлгоритм"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "Ð’ÑÑ–"
@@ -5094,9 +5164,6 @@ msgstr "УÑÑ– дозволені кориÑтувачі"
msgid "All environments"
msgstr "Ð’ÑÑ– Ñередовища"
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -5151,6 +5218,9 @@ msgstr "Ð’ÑÑ– кориÑтувачі повинні мати імена."
msgid "All users with matching cards"
msgstr "Ð’ÑÑ– кориÑтувачі з картами, що збігаютьÑÑ"
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr "Дозволити %{strongOpen}%{group_name}%{strongClose} щоб увійти?"
@@ -5208,12 +5278,18 @@ msgstr "Дозволити відправлÑти ключ до цього реÐ
msgid "Allow use of licensed EE features"
msgstr "Дозволити викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ñ–Ñ†ÐµÐ½Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… функцій EE"
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "Дозволено"
@@ -5235,9 +5311,6 @@ msgstr "ДозволÑÑ” проєктам або підгрупам у цій г
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "ДозволÑÑ” проєктам відÑтежувати помилки за допомогою Opstrace інтеграції."
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "ДозволÑÑ” додавати та керувати клаÑтерами Kubernetes."
-
msgid "Almost there"
msgstr "Майже готово"
@@ -5298,9 +5371,6 @@ msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ %{link_start}%{link_end} з тим Ñамим Ð
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "Ваша Ð¾Ñ€Ð³Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ñтворила вам обліковий Ð·Ð°Ð¿Ð¸Ñ Enterprise User GitLab:"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "ÐдмініÑтратор змінив пароль вашого облікового запиÑу GitLab на %{link_to}."
@@ -5311,14 +5381,11 @@ msgid "An alert has been triggered in %{project_path}."
msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñпрацювало через %{project_path}."
msgid "An application called %{link_to_client} is requesting access to your GitLab account."
-msgstr "Додаток під назвою %{link_to_client} запитує доÑтуп до вашого GitLab аккаунту."
+msgstr "ЗаÑтоÑунок під назвою %{link_to_client} запитує доÑтуп до вашого акаунта GitLab."
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾ÑŽ поштою нещодавно надіÑлано з панелі адмініÑтратора. Зачекайте, будь лаÑка, %{wait_time_in_words}, перш ніж намагатиÑÑ Ð½Ð°Ð´Ñ–Ñлати інше повідомленнÑ."
-msgid "An email will be sent with the report attached after it is generated."
-msgstr "ПіÑÐ»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð²Ñ–Ñ‚Ñƒ буде надіÑлано електронний лиÑÑ‚ із вкладеннÑм."
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "Порожнє поле Gitlab-кориÑтувача буде заповнено іменем кориÑтувача з FogBugz (наприклад \"John Smith\") в опиÑÑ– вÑÑ–Ñ… задач та коментарів. Крім того ці задачі та коментарі будуть аÑоційовані з та/або призначені на автора проєкту."
@@ -5394,9 +5461,6 @@ msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð¡Ð»ÑƒÐ¶Ð
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "Помилка при відхиленні попередженнÑ. Оновіть Ñторінку та Ñпробуйте знову."
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при відхиленні Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ функцію. Оновіть Ñторінку Ñ– Ñпробуйте знову."
-
msgid "An error occurred while drawing job relationship links."
msgstr "ВідбулаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¼Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñилань на відноÑини між завданнÑми."
@@ -5625,12 +5689,8 @@ msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¸Ñ
msgid "An error occurred while saving changes: %{error}"
msgstr "Під Ñ‡Ð°Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при збереженні ваших параметрів. Спробуйте зберегти Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð¾Ð²Ñƒ."
@@ -5798,6 +5858,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5906,6 +5969,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -6014,6 +6080,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -6026,16 +6095,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -6068,9 +6140,6 @@ msgstr "Ðналізуємо файл…"
msgid "Ancestors"
msgstr "Предки"
-msgid "And this registration token:"
-msgstr "І цей реєÑтраційний токен:"
-
msgid "Anonymous"
msgstr "Ðнонімно"
@@ -6131,6 +6200,27 @@ msgstr "Додати коментар з %{shrug}"
msgid "Append the comment with %{tableflip}"
msgstr "Додати коментар з %{tableflip}"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -6143,17 +6233,14 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr "Ð’Ñтановлюйте змінні лише на захищених гілках Ñ– тегах"
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr "Лише захищені гілки та теги"
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
-msgstr "Ідентифікатор емітента Apple App Store Connect."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
-msgstr "Ідентифікатор ключа Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Apple App Store."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
msgstr ""
@@ -6165,14 +6252,11 @@ msgid "AppleAppStore|Use GitLab to build and release an app in the Apple App Sto
msgstr "ВикориÑтовуйте Gitlab Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° випуÑку програми у магазині Apple App Store."
msgid "Application"
-msgstr "Додаток"
+msgstr "ЗаÑтоÑунок"
msgid "Application ID"
msgstr "Ідентифікатор заÑтоÑунку"
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr "Ліміти заÑтоÑунку уÑпішно збережено"
@@ -6192,7 +6276,7 @@ msgid "Application was successfully updated."
msgstr "ЗаÑтоÑунок було уÑпішно оновлено."
msgid "Application: %{name}"
-msgstr "Додаток: %{name}"
+msgstr "ЗаÑтоÑунок: %{name}"
msgid "ApplicationSettings|A Metrics Dashboard menu item appears in the Monitoring section of the Admin Area."
msgstr "Пункт меню ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ¸ відображаєтьÑÑ Ð² розділі «Моніторинг в облаÑÑ‚Ñ– ÐдмініÑтратора»."
@@ -6714,9 +6798,6 @@ msgstr "Ðрхівувати завданнÑ"
msgid "Archive project"
msgstr "Ðрхівувати проєкт"
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr "Заархівовано"
@@ -6780,6 +6861,9 @@ msgstr "Ви певні, що хочете видалити цей %{commentType
msgid "Are you sure you want to delete this SSH key?"
msgstr "Ви впевнені, що хочете видалити цей SSH-ключ?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "Ви впевнені, що хочете видалити цей коментар?"
@@ -6795,9 +6879,6 @@ msgstr "Ви впевнені, що хочете видалити цю міткÑ
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "Ви впевнені, що хочете видалити цей конвеєр? Це призведе до Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ñƒ дії вÑÑ–Ñ… кешів конвеєра та Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… пов'Ñзаних об'єктів, таких Ñк ÑкладаннÑ, журнали, артефакти та тригери. Ð¦Ñ Ð´Ñ–Ñ Ð½Ðµ може бути ÑкаÑована."
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr "Ви впевнені, що хочете розгорнути це Ñередовище?"
@@ -7005,9 +7086,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr "Загальний розмір артефактів"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "ОÑкільки ми продовжуємо Ñтворювати більше функцій Ð´Ð»Ñ SAST, ми хотіли б отримати ваші відгуки про функцію конфігурації SAST у %{linkStart}цій задачі%{linkEnd}."
@@ -7023,6 +7101,9 @@ msgstr "СпиÑок гілок, розділених комами, Ð´Ð»Ñ Ð°Ð²Ñ
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -7147,15 +7228,12 @@ msgstr "Потрібне щонайменше одне затвердженнÑ
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr "Принаймні одне поле %{one_of_required_fields} має бути приÑутнім"
+msgid "At least one of %{params} must be true"
+msgstr ""
+
msgid "At least one of group_id or project_id must be specified"
msgstr "Треба зазначити принаймні group_id або project_id"
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr "Щонайменше один із ваших ПерÑональних Токенів ДоÑтупу проÑтрочено. %{generate_new}"
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr "Щонайменше один із ваших ПерÑональних Токенів ДоÑтупу незабаром буде проÑтрочено. %{generate_new}"
-
msgid "At risk"
msgstr "З ризиком"
@@ -7251,7 +7329,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -7329,6 +7407,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7365,6 +7446,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7458,6 +7545,9 @@ msgstr "Період Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡Ð°Ñтоти веб в ÑекундаÑ
msgid "Authenticated web requests"
msgstr "Ðутентифіковані веб-запити"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "ÐвтентифікаціÑ"
@@ -7647,12 +7737,6 @@ msgstr "Вирішено автоматично"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "Ðвтоматично оновлювати гілки та теги цього проєкту із репозиторію upstream."
-msgid "Automation"
-msgstr "ÐвтоматизаціÑ"
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr "Примітка"
@@ -7677,12 +7761,18 @@ msgstr "Ðватар буде видалено. Ви впевнені?"
msgid "Average per day: %{average}"
msgstr "Ð’ Ñередньому за день: %{average}"
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації кориÑтувача"
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "Ðазад"
@@ -7734,9 +7824,6 @@ msgstr "Додати значок"
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐºÐ° не вдалоÑÑ, будь лаÑка перевірте введений URL Ñ– Ñпробуйте знову."
-
msgid "Badges|Badge image URL"
msgstr "URL-адреÑа Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐºÐ°"
@@ -7749,9 +7836,6 @@ msgstr "Значок збережено."
msgid "Badges|Delete badge?"
msgstr "Видалити значок?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐºÐ° не вдалоÑÑ, будь лаÑка Ñпробуйте ще раз."
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7761,9 +7845,18 @@ msgstr "Введіть дійÑну URL-адреÑу"
msgid "Badges|Example: %{exampleUrl}"
msgstr "Приклад: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "Значок групи"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "ПоÑиланнÑ"
@@ -7797,18 +7890,21 @@ msgstr "ПідтримуєтьÑÑ %{docsLinkStart}змінні%{docsLinkEnd}: %
msgid "Badges|The badge was deleted."
msgstr "Значок був видалений."
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "Ви збираєтеÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ цей значок. Видалені значки %{strongStart}не можуть%{strongEnd} бути відновлені."
-
msgid "Badges|Your badges"
msgstr "Ваші значки"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7818,8 +7914,8 @@ msgstr "Bamboo URL"
msgid "BambooService|Bamboo build plan key."
msgstr "Ключ до плану збірки Bamboo."
-msgid "BambooService|Bamboo service root URL."
-msgstr "Кореневий URL ÑервіÑу Bamboo."
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr ""
@@ -7833,8 +7929,8 @@ msgstr "ЗапуÑтити CI/CD конвеєри за допомогою Atlass
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr "ЗапуÑтити CI/CD конвеєри за допомогою Atlassian Bamboo. Ви маєте налаштувати автоматичну перевірку та тригер репозиторію в Bamboo. %{docs_link}"
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "КориÑтувач із API доÑтупом до Bambooo Ñервера."
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr "Заблокований"
@@ -7938,9 +8034,6 @@ msgstr "Перш ніж увімкнути цю інтеграцію, Ñтвор
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "Перед вÑтавкою коду обов'Ñзково прочитайте коментар, Ñкий розділÑÑ” кожну групу коду."
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr "Перед тим, Ñк це вдаÑÑ‚ÑŒÑÑ Ð·Ð»Ð¸Ñ‚Ð¸, задача з Jira повинна бути вказана в заголовку або опиÑÑ–"
-
msgid "Begin with the selected commit"
msgstr "Почати із виділеного коміту"
@@ -7990,31 +8083,31 @@ msgid "Billing"
msgstr "Білінг"
msgid "BillingPlans|%{group_name} is currently using the %{plan_name}"
-msgstr ""
+msgstr "%{group_name} викориÑтовує %{plan_name}"
msgid "BillingPlans|10,000 compute minutes per month"
-msgstr ""
+msgstr "10 000 обчиÑлювальних хвилин на міÑÑць"
msgid "BillingPlans|10000 compute minutes"
-msgstr ""
+msgstr "10000 обчиÑлювальних хвилин"
msgid "BillingPlans|10GB transfer per month"
msgstr "10Гб передачі на міÑÑць"
msgid "BillingPlans|400 compute minutes"
-msgstr ""
+msgstr "400 обчиÑлювальних хвилин"
msgid "BillingPlans|400 compute minutes per month"
-msgstr ""
+msgstr "400 обчиÑлювальних хвилин на міÑÑць"
msgid "BillingPlans|5 users per namespace"
-msgstr ""
+msgstr "5 кориÑтувачів на проÑÑ‚Ñ–Ñ€ імен"
msgid "BillingPlans|50,000 compute minutes per month"
-msgstr ""
+msgstr "50 000 обчиÑлювальних хвилин на міÑÑць"
msgid "BillingPlans|50000 compute minutes"
-msgstr ""
+msgstr "50000 обчиÑлювальних хвилин"
msgid "BillingPlans|5GB storage"
msgstr "5 ГБ Ñховища"
@@ -8023,7 +8116,7 @@ msgid "BillingPlans|@%{user_name} you are currently using the %{plan_name}."
msgstr "@%{user_name} наразі ви викориÑтовуєте %{plan_name}."
msgid "BillingPlans|Advanced CI/CD"
-msgstr ""
+msgstr "Розширений CI/CD"
msgid "BillingPlans|Advanced application security"
msgstr ""
@@ -8089,10 +8182,10 @@ msgid "BillingPlans|Faster code reviews"
msgstr ""
msgid "BillingPlans|Free"
-msgstr ""
+msgstr "Безплатно"
msgid "BillingPlans|Free forever features for individual users"
-msgstr ""
+msgstr "Безкоштовні функції назавжди Ð´Ð»Ñ Ñ–Ð½Ð´Ð¸Ð²Ñ–Ð´ÑƒÐ°Ð»ÑŒÐ½Ð¸Ñ… кориÑтувачів"
msgid "BillingPlans|Free guest users"
msgstr ""
@@ -8104,7 +8197,7 @@ msgid "BillingPlans|If you would like to downgrade your plan please contact %{su
msgstr "Якщо ви хочете перейти на нижчий план, будь лаÑка, зв'ÑжітьÑÑ Ð· %{support_link_start}Службою підтримки%{support_link_end}."
msgid "BillingPlans|Includes"
-msgstr ""
+msgstr "Включає"
msgid "BillingPlans|Includes free static websites"
msgstr ""
@@ -8134,7 +8227,7 @@ msgid "BillingPlans|Not the group you're looking for? %{all_groups_link}."
msgstr ""
msgid "BillingPlans|Open Source - MIT License"
-msgstr ""
+msgstr "Відкритий код – Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ MIT"
msgid "BillingPlans|Organization wide security, compliance and planning"
msgstr ""
@@ -8149,7 +8242,7 @@ msgid "BillingPlans|Pricing page"
msgstr "Сторінка цін"
msgid "BillingPlans|Priority support"
-msgstr ""
+msgstr "Пріоритетна підтримка"
msgid "BillingPlans|Ready to explore the value of the paid features today? Start a trial, no credit card required."
msgstr ""
@@ -8170,7 +8263,7 @@ msgid "BillingPlans|Self-managed reliability"
msgstr ""
msgid "BillingPlans|Spans the DevOps lifecycle"
-msgstr ""
+msgstr "Охоплює життєвий цикл DevOps"
msgid "BillingPlans|Start a free Ultimate trial"
msgstr "Розпочати безкоштовну пробну верÑÑ–ÑŽ Ultimate"
@@ -8245,7 +8338,7 @@ msgid "BillingPlans|per user"
msgstr "За кориÑтувача"
msgid "BillingPlans|per user/month"
-msgstr ""
+msgstr "за кориÑтувача/міÑÑць"
msgid "BillingPlan|Upgrade"
msgstr "Підвищити"
@@ -8298,6 +8391,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr "Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ð±ÑƒÐ»Ð¾ перевірено"
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -8328,13 +8424,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr "Виникла помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑпиÑку учаÑників в очікуванні"
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8352,10 +8448,10 @@ msgstr "ПрÑме членÑтво"
msgid "Billing|Enter at least three characters to search."
msgstr "Введіть щонайменше три Ñимволи Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ."
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8398,12 +8494,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "Щоб переконатиÑÑ, що вÑÑ– учаÑники можуть отримати доÑтуп до групи, коли завершитьÑÑ Ð¿Ñ€Ð¾Ð±Ð½Ð° верÑÑ–Ñ, ви можете оновити Ñ—Ñ— до платного рівнÑ."
@@ -8425,7 +8515,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "Ви збираєтеÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ кориÑтувача %{username} з вашої підпиÑки. Якщо ви продовжите, кориÑтувача буде видалено з групи %{namespace} та вÑÑ–Ñ… Ñ—Ñ— підгруп та проєктів. Цю дію не можна буде відмінити."
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8622,12 +8715,6 @@ msgstr[3] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐµÐ¿Ñ–ÐºÑƒ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ– ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÑпиÑку ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
@@ -8646,9 +8733,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½Ñ–Ñ… груп ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8658,18 +8742,12 @@ msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¾Ð²Ð¸Ñ… проєктів ÑÑ‚Ð
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, перезавантажте Ñторінку."
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼Ñ–Ñ‚Ð¾Ðº ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, перезавантажте Ñторінку."
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8682,51 +8760,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÐµÐ¿Ñ–ÐºÑ–Ð² дошки ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, перезавантажте Ñторінку."
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡ дошки ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, перезавантажте Ñторінку."
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑків дошки ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, перезавантажте Ñторінку."
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡ дошки ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, перезавантажте Ñторінку."
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾ÑˆÐºÐ¸ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, перезавантажте Ñторінку."
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÑпиÑків ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, перезавантажте Ñторінку."
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ ÐµÐ¿Ñ–ÐºÑƒ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ– ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "Під Ñ‡Ð°Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑпиÑку ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "Під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑпиÑку дошки ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8737,6 +8791,9 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "Згорнути"
@@ -8744,7 +8801,7 @@ msgid "Boards|Create new epic"
msgstr ""
msgid "Boards|Create new issue"
-msgstr ""
+msgstr "Створити нову задачу"
msgid "Boards|Edit board"
msgstr "Редагувати дошку"
@@ -8758,9 +8815,6 @@ msgstr "Розгорнути"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr "Помилка при отриманні Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ %{issuableType}s"
-msgid "Boards|Move card"
-msgstr "ПереміÑтити картку"
-
msgid "Boards|Move to end of list"
msgstr "ПереміÑтити до ÐºÑ–Ð½Ñ†Ñ ÑпиÑку"
@@ -8854,6 +8908,9 @@ msgstr "Гілка вже Ñ–Ñнує"
msgid "Branch name"
msgstr "Ðазва гілки"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr "Шаблон назви гілки"
@@ -8863,6 +8920,18 @@ msgstr "Гілку не завантажено: %{branchId}"
msgid "Branch rules"
msgstr "Правила гілки"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "ПідтримуютьÑÑ%{linkStart}шаблони%{linkEnd}, такі Ñк *-stable або production/."
@@ -8929,15 +8998,27 @@ msgstr "Гілка"
msgid "BranchRules|Branch name or pattern"
msgstr "Ðазва або шаблон гілки"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "Деталі правил гілки"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr "Створити захищену гілку"
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "Створити шаблон: %{searchTerm}"
@@ -8995,6 +9076,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr "Ролі"
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "Перевірка ÑтатуÑу"
@@ -9013,6 +9100,9 @@ msgstr "КориÑтувачі"
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "за умовчаннÑм"
@@ -9025,6 +9115,9 @@ msgstr "Гілки"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr "Гілки: %{source_branch} до %{target_branch}"
@@ -9325,6 +9418,12 @@ msgstr "ПереглÑд файлів"
msgid "Browse templates"
msgstr "ОглÑд шаблонів"
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr "Ðе вдалоÑÑ Ñтерти збірку"
@@ -9358,9 +9457,18 @@ msgstr "%{feature} (потрібна v%{version})"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr "ПризначеннÑ"
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9370,17 +9478,26 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr "Такі дані не будуть перенеÑені: %{bullets} ЗвернітьÑÑ Ð´Ð¾ ÑиÑтемного адмініÑтратора %{host} Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ GitLab, Ñкщо вам необхідно перенеÑти ці дані"
-msgid "BulkImport|GitLab Migration history"
-msgstr "ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ð¹ GitLab"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
+msgstr ""
msgid "BulkImport|History"
msgstr "ІÑторіÑ"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
-msgstr "Імпорт груп із GitLab"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr ""
@@ -9397,6 +9514,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr "Ðе вдалоÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ групу."
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr "ВоÑтаннє імпортовано до %{link}"
@@ -9451,7 +9574,10 @@ msgstr "Джерело"
msgid "BulkImport|Source group"
msgstr "Група джерел"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9514,9 +9640,6 @@ msgstr "Купити більше хвилин конвеєра"
msgid "By %{user_name}"
msgstr "Від %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "Підтверджуючи обліковий запиÑ, прив'Ñзаний до електронної пошти Enterprise, можна зрозуміти, що цей обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ” кориÑтувачем Enterprise. "
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9659,6 +9782,9 @@ msgstr "ВикориÑтовувати Auto DevOps конвеєр за замоÐ
msgid "CICD|Deployment strategy"
msgstr "Ð¡Ñ‚Ñ€Ð°Ñ‚ÐµÐ³Ñ–Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ"
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9680,6 +9806,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9743,18 +9875,6 @@ msgstr "Запит CVE ID"
msgid "CVE|Why Request a CVE ID?"
msgstr "Чому запит на CVE ID?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9773,18 +9893,18 @@ msgstr ""
msgid "Campfire token"
msgstr "Campfire токен"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "API Токен автентифікації від Campfire"
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr ""
-
msgid "Can be manually deployed to"
msgstr "Можна вручну розгорнути на"
@@ -9794,6 +9914,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr "Ðе вдаєтьÑÑ Ð·Ð°ÑтоÑувати, оÑкільки гілку джерела видалено."
@@ -10146,13 +10269,13 @@ msgid "Changed"
msgstr "Змінено"
msgid "Changed assignees."
-msgstr ""
+msgstr "Змінено виконавців."
msgid "Changed merge method to %{merge_method}"
msgstr ""
msgid "Changed reviewers."
-msgstr ""
+msgstr "Змінені оглÑдачі."
msgid "Changed squash option to %{squash_option}"
msgstr ""
@@ -10244,6 +10367,9 @@ msgstr "за %{duration}"
msgid "ChatMessage|in %{project_link}"
msgstr "в %{project_link}"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "Перевірити знову"
@@ -10360,6 +10486,9 @@ msgstr "Виникла невідома помилка. Будь лаÑка, ÑÐ
msgid "Checkout|Billing address"
msgstr "Платіжна адреÑа"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "CI хвилини"
@@ -10372,6 +10501,9 @@ msgstr "ÐžÑ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ"
msgid "Checkout|City"
msgstr "МіÑто"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10384,6 +10516,9 @@ msgstr "Підтвердити покупку"
msgid "Checkout|Confirming..."
msgstr "ПідтвердженнÑ..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "Перейти до оплати"
@@ -10444,6 +10579,9 @@ msgstr "Група"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "Має бути %{minimumNumberOfUsers} (ваші вільні міÑцÑ) або більше."
@@ -10501,6 +10639,9 @@ msgstr "ÐдреÑа"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ форму кредитної картки з кодом %{errorCode}: %{errorMessage}"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "Деталі підпиÑки"
@@ -10513,6 +10654,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr "Податки"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "Ð’Ñього"
@@ -10582,9 +10726,6 @@ msgstr "Виберіть файл..."
msgid "Choose a file"
msgstr "Виберіть файл"
-msgid "Choose a group"
-msgstr "Вибрати групу"
-
msgid "Choose a template"
msgstr "Виберіть шаблон"
@@ -10648,6 +10789,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10666,7 +10810,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10678,18 +10825,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr "Позначте проєкт Ñк реÑÑƒÑ€Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ CI/CD"
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr "Позначити проєкт Ñк реÑÑƒÑ€Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ CI/CD. %{linkStart}Що таке каталог CI/CD?%{linkEnd}"
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10699,26 +10843,47 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
-msgstr "Цей проєкт буде позначено Ñк реÑÑƒÑ€Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ CI/CD Ñ– буде видимим у каталозі CI/CD. Цю дію не можна ÑкаÑувати."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
+msgstr ""
msgid "CiCatalog|Unreleased"
msgstr ""
@@ -10726,6 +10891,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "Діапазон дат: %{range}"
@@ -10775,47 +10943,59 @@ msgid "CiStatusLabel|waiting for resource"
msgstr "Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑу"
msgid "CiStatusText|Blocked"
-msgstr ""
+msgstr "Заблоковано"
msgid "CiStatusText|Canceled"
-msgstr ""
+msgstr "СкаÑовано"
msgid "CiStatusText|Created"
-msgstr ""
+msgstr "Створено"
msgid "CiStatusText|Delayed"
-msgstr ""
+msgstr "Відкладено"
msgid "CiStatusText|Failed"
msgstr "Ðевдало"
msgid "CiStatusText|Manual"
-msgstr ""
+msgstr "Вручну"
msgid "CiStatusText|Passed"
msgstr "Виконано"
msgid "CiStatusText|Pending"
-msgstr ""
+msgstr "В очікуванні"
msgid "CiStatusText|Preparing"
-msgstr ""
+msgstr "Підготовка"
msgid "CiStatusText|Running"
msgstr "ВиконуєтьÑÑ"
msgid "CiStatusText|Scheduled"
-msgstr ""
+msgstr "Заплановано"
msgid "CiStatusText|Skipped"
-msgstr ""
+msgstr "Пропущено"
msgid "CiStatusText|Waiting"
-msgstr ""
+msgstr "ОчікуваннÑ"
msgid "CiStatusText|Warning"
msgstr "ПопередженнÑ"
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr "Ключ змінної може міÑтити лише літери, цифри Ñ– '_'."
+
msgid "CiVariables|Add variable"
msgstr "Додати змінну"
@@ -10832,22 +11012,22 @@ msgid "CiVariables|Delete variable"
msgstr "Видалити змінну"
msgid "CiVariables|Do you want to delete the variable %{key}?"
-msgstr ""
+msgstr "Ви хочете видалити змінну %{key}?"
msgid "CiVariables|Edit variable"
-msgstr ""
+msgstr "Редагувати змінну"
msgid "CiVariables|Environments"
msgstr "Середовища"
msgid "CiVariables|Expand variable reference"
-msgstr ""
+msgstr "Розкрити поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° змінну"
msgid "CiVariables|Expanded"
msgstr "Розширені"
msgid "CiVariables|Export variable to pipelines running on protected branches and tags only."
-msgstr ""
+msgstr "ЕкÑпортувати змінну в конвеєри, що працюють лише на захищених гілках Ñ– тегах."
msgid "CiVariables|File"
msgstr "Файл"
@@ -10871,7 +11051,7 @@ msgid "CiVariables|Masked"
msgstr "Приховано"
msgid "CiVariables|Maximum number of Inherited Group CI variables loaded (2000)"
-msgstr ""
+msgstr "МакÑимальна кількіÑÑ‚ÑŒ завантажених змінних CI групи CI (2000)"
msgid "CiVariables|Maximum number of variables reached."
msgstr "ДоÑÑгнута макÑимальна кількіÑÑ‚ÑŒ змінних."
@@ -10883,7 +11063,7 @@ msgid "CiVariables|Protected"
msgstr "Захищений"
msgid "CiVariables|Remove inputs"
-msgstr ""
+msgstr "Видалити вхідні дані"
msgid "CiVariables|Remove variable"
msgstr "Видалити змінну"
@@ -10903,45 +11083,66 @@ msgstr "Вкажіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ…, Ñкі будуть ви
msgid "CiVariables|State"
msgstr "Стан"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” міÑтити принаймні %{charsAmount} Ñимволів."
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
-msgstr ""
+msgstr "Помилка при отриманні уÑпадкованих змінних CI."
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
-msgstr ""
+msgstr "Ð¦Ñ %{entity} має %{currentVariableCount} визначених змінних CI/CD. МакÑимальна кількіÑÑ‚ÑŒ змінних Ð´Ð»Ñ %{entity} Ñтановить %{maxVariableLimit}. Щоб додати нові змінні, ви повинні зменшити кількіÑÑ‚ÑŒ визначених змінних."
-msgid "CiVariables|This variable value does not meet the masking requirements."
-msgstr ""
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr "Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ можна замаÑкувати, оÑкільки воно міÑтить такі Ñимволи: %{unsupportedChars} Ñ– пробіли."
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr "Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ можна замаÑкувати, оÑкільки воно міÑтить такі Ñимволи: %{unsupportedChars}."
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
+msgstr "Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ можна замаÑкувати, оÑкільки воно міÑтить такі Ñимволи: пробіли."
msgid "CiVariables|Type"
msgstr "Тип"
msgid "CiVariables|Unselect \"Expand variable reference\" if you want to use the variable value as a raw string."
-msgstr ""
+msgstr "Зніміть прапорець \"Розкрити поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° змінну\", Ñкщо ви хочете викориÑтовувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— Ñк необроблений Ñ€Ñдок."
msgid "CiVariables|Value"
msgstr "ЗначеннÑ"
msgid "CiVariables|Value might contain a variable reference"
-msgstr ""
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ міÑтити поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° змінну"
msgid "CiVariables|Variable value will be evaluated as raw string."
-msgstr ""
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— буде оцінено Ñк необроблений Ñ€Ñдок."
msgid "CiVariables|Variable will be masked in job logs. Requires values to meet regular expression requirements."
-msgstr ""
+msgstr "Змінна буде замаÑкована в журналі завдань. Вимагає значеннÑ, щоб задовольнити регулÑрні вимоги до виразу."
msgid "CiVariables|Variables"
msgstr "Змінні"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr "Змінні, вказані тут, %{boldStart}розгорнуті%{boldEnd}, Ñ– не %{boldStart}замаÑковані.%{boldEnd}"
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
-msgstr "Змінні зберігають інформацію, наприклад, паролі та Ñекретні ключі, Ñку ви можете викориÑтовувати у ÑценаріÑÑ… завдань. Кожна %{entity} може визначити макÑимум %{limit} змінних."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
-msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
msgstr ""
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
+msgstr "Ви можете викориÑтовувати змінні CI/CD з таким же ім'Ñм в різних міÑцÑÑ…, але змінні можуть перезапиÑувати одна одну. %{linkStart}Який порÑдок Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ…?%{linkEnd}"
+
+msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
+msgstr "Ви доÑÑгли макÑимальної кількоÑÑ‚Ñ– змінних, доÑтупних Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ. Ð”Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… змінних ви повинні зменшити кількіÑÑ‚ÑŒ заданих змінних."
+
msgid "CiVariable|All environments"
msgstr "Ð’ÑÑ– Ñередовища"
@@ -11168,9 +11369,6 @@ msgstr "Закрити епік"
msgid "Close milestone"
msgstr "Закрити етап"
-msgid "Close sidebar"
-msgstr "Закрити бічну панель"
-
msgid "Close this %{quick_action_target}"
msgstr "Закрити %{quick_action_target}"
@@ -12207,16 +12405,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr "Шаблон"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
-msgstr "Увімкнути можливіÑÑ‚ÑŒ автоматичних рекомендацій коду Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ інÑтанÑу %{beta}."
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -12225,7 +12441,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr "%{link_start}Що таке пропозиції коду?%{link_end}"
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -12234,22 +12450,22 @@ msgstr "Пропозиції коду"
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
-msgstr "Увімкнути можливіÑÑ‚ÑŒ автоматичних рекомендацій коду"
+msgid "CodeSuggestions|Duo Pro add-on"
+msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
-msgstr "Отримайте пропозиції щодо коду під Ñ‡Ð°Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ в Ñередовищі IDE. %{link_start}ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12329,7 +12545,7 @@ msgid "Collapse all threads"
msgstr "Згорнути вÑÑ– теми"
msgid "Collapse eligible approvers"
-msgstr ""
+msgstr "Згорнути відповідні затверджувачі"
msgid "Collapse issues"
msgstr "Згорнути задачі"
@@ -12382,6 +12598,9 @@ msgstr "Розфарбувати повідомленнÑ"
msgid "ComboSearch is not defined"
msgstr "ComboSearch не визначено"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "СпиÑок Ð°Ð´Ñ€ÐµÑ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾Ñ— пошти, відокремлених комами."
@@ -12430,6 +12649,12 @@ msgstr "Команди не заÑтоÑовано"
msgid "Comment"
msgstr "Коментар"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "Коментувати позицію \"%{label}\""
@@ -12710,13 +12935,49 @@ msgstr "Завершено"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr "Завершено за %{duration_seconds} Ñекунд (%{relative_time})"
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12734,6 +12995,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12746,6 +13010,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12755,12 +13022,12 @@ msgstr "Додати фреймворк"
msgid "ComplianceFrameworks|Background color"
msgstr "Колір тла"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "СкаÑувати"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr ""
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr ""
@@ -12773,9 +13040,15 @@ msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ– конвеєру (н
msgid "ComplianceFrameworks|Configuration not found"
msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ знайдена"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "Видалити фреймворк відповідноÑÑ‚Ñ– %{framework}"
@@ -12788,6 +13061,9 @@ msgstr "ОпиÑ"
msgid "ComplianceFrameworks|Description is required"
msgstr "Потрібен опиÑ"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12818,9 +13094,15 @@ msgstr "Ðазва"
msgid "ComplianceFrameworks|Name is required"
msgstr "Потрібна назва"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12839,12 +13121,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr "Ð’Ñтановити за замовчуваннÑм"
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ цей фреймворк відповідноÑÑ‚Ñ–. Будь лаÑка, Ñпробуйте ще раз"
@@ -12927,7 +13215,7 @@ msgid "ComplianceReport|No frameworks found"
msgstr ""
msgid "ComplianceReport|No projects found"
-msgstr ""
+msgstr "Ðе знайдено жодного проєкту"
msgid "ComplianceReport|No projects found that match filters"
msgstr ""
@@ -12962,6 +13250,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -13022,6 +13313,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -13049,7 +13346,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -13202,6 +13505,9 @@ msgstr "Ðалаштувати Ð²Ñ–Ð´Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–
msgid "Configure repository storage."
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища репозиторію."
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ð³Ð¾ пошуку за допомогою Elasticsearch."
@@ -13292,8 +13598,8 @@ msgstr "Конфлікт: цей файл було перейменовано у
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
-msgstr "URL-адреÑа робочої облаÑÑ‚Ñ– Confluence Cloud"
+msgid "Confluence Workspace URL"
+msgstr ""
msgid "ConfluenceService|Confluence Workspace"
msgstr "Робоча облаÑÑ‚ÑŒ Confluence"
@@ -13531,6 +13837,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr "Теги образів"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr "ÐедійÑний тег: відÑутній дайджеÑÑ‚ маніфеÑту"
@@ -13680,7 +13989,7 @@ msgid "ContainerRegistry|The image repository could not be found."
msgstr "Репозиторій образів не знайдено."
msgid "ContainerRegistry|The last tag related to this image was recently removed. This empty image and any associated data will be automatically removed as part of the regular Garbage Collection process. If you have any questions, contact your administrator."
-msgstr "ОÑтанній тег Ñкий відноÑивÑÑ Ð´Ð¾ цього образу нещодавно було видалено. Цей порожній образ та вÑÑ– пов’Ñзані дані будуть автоматично видалені під Ñ‡Ð°Ñ Ñ€ÐµÐ³ÑƒÐ»Ñрного \"збору ÑміттÑ\". Якщо у Ð²Ð°Ñ Ñ” питаннÑ, звернітьÑÑ Ð´Ð¾ Ñвого адмініÑтратора."
+msgstr "ОÑтанній тег, пов'Ñзаний з цим образом, було нещодавно видалено. Це порожній образ Ñ– вÑÑ– пов'Ñзані з ним дані будуть автоматично видалені в рамках регулÑрного процеÑу збору ÑміттÑ. Якщо у Ð²Ð°Ñ Ð²Ð¸Ð½Ð¸ÐºÐ»Ð¸ запитаннÑ, звернітьÑÑ Ð´Ð¾ вашого адмініÑтратора."
msgid "ContainerRegistry|The requested image repository does not exist or has been deleted. If you think this is an error, try refreshing the page."
msgstr ""
@@ -13718,6 +14027,9 @@ msgstr "Щоб розширити пошук, змініть або видалі
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr "У Ð½Ð°Ñ Ð²Ð¸Ð½Ð¸ÐºÐ»Ð¸ проблеми з підключеннÑм до реєÑтру контейнерів. Будь лаÑка, Ñпробуйте оновити Ñторінку. Якщо Ñ†Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° не зникає, переглÑньте %{docLinkStart}документацію з уÑÑƒÐ½ÐµÐ½Ð½Ñ Ð½ÐµÑправноÑтей%{docLinkEnd}."
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "За допомогою РеєÑтру контейнерів, кожен проєкт може мати влаÑний проÑÑ‚Ñ–Ñ€ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð·Ñ–Ð² Docker. %{docLinkStart}ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ%{docLinkEnd}"
@@ -14069,8 +14381,8 @@ msgstr "ВнеÑки за %{calendar_date}"
msgid "Contributor"
msgstr "Співавтор"
-msgid "Contributor statistics"
-msgstr "СтатиÑтика учаÑників"
+msgid "Contributor analytics"
+msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¼, Ñк змінна CI_JOB_TOKEN CI/CD викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупу до API між проєктами."
@@ -14081,6 +14393,9 @@ msgstr "Контролює, чи показувати контент покраÑ
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Домен cookie"
@@ -14144,6 +14459,9 @@ msgstr "Скопіювати коди"
msgid "Copy command"
msgstr "Скопіювати команду"
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr "Скопіювати команди"
@@ -14216,9 +14534,6 @@ msgstr "Копіювати назву гілки-джерела"
msgid "Copy to clipboard"
msgstr "Копіювати в буфер обміну"
-msgid "Copy token"
-msgstr "Скопіювати токен"
-
msgid "Copy value"
msgstr "Копіювати значеннÑ"
@@ -14402,6 +14717,9 @@ msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ ваші дизайни, оÑ
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14465,6 +14783,9 @@ msgstr "Створити групу"
msgid "Create a merge request"
msgstr "Створити запит на злиттÑ"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "Створити новий файл %{codeStart}.gitlab-ci.yml%{codeEnd} в кореневому каталозі репозиторію, щоб почати."
@@ -14475,7 +14796,7 @@ msgid "Create a new file as there are no files yet. Afterwards, you'll be able t
msgstr "Створити новий файл, тому що наразі немає жодного файлу. Пізніше ви зможете закомітити ваші зміни."
msgid "Create a new fork"
-msgstr ""
+msgstr "Створити новий форк"
msgid "Create a new issue"
msgstr "Створити нову задачу"
@@ -14495,9 +14816,6 @@ msgstr "Створити токен доÑтупу Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ аккаÑ
msgid "Create a project"
msgstr "Створити проєкт"
-msgid "Create an account using:"
-msgstr "Створити обліковий Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° допомогою:"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr "Створити інцидент. Інциденти ÑтворюютьÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ попередженнÑ."
@@ -14627,9 +14945,6 @@ msgstr "Створити реліз"
msgid "Create requirement"
msgstr "Створити вимогу"
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr "Створити ÑервіÑний обліковий запиÑ"
@@ -14666,6 +14981,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr "УÑтановити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‚ÐµÐ³Ñƒ"
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” дозволу Ñтворювати підгрупу в цій групі."
@@ -14876,6 +15194,9 @@ msgstr "Створено"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "Створено гілку та запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð´Ð»Ñ Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— задачі."
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "Створено гілку \"%{branch_name}\" та запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð´Ð»Ñ Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— задачі."
@@ -15086,9 +15407,15 @@ msgstr "Придбати хвилини конвеєрів"
msgid "CurrentUser|Edit profile"
msgstr "Редагувати профіль"
-msgid "CurrentUser|One of your groups is running out"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
msgstr ""
+msgid "CurrentUser|One of your groups is running out"
+msgstr "Ð’ одній з ваших груп закінчуєтьÑÑ Ñ‡Ð°Ñ"
+
msgid "CurrentUser|Preferences"
msgstr "Параметри"
@@ -15375,9 +15702,6 @@ msgstr "не дозволена Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ñ— початкової подіÑ
msgid "CycleAnalytics|project dropdown filter"
msgstr "випадаючий ÑпиÑок проєктів"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr "Призначений об'єкт не підтримуєтьÑÑ"
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr "Ð”Ð»Ñ Ð²Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— DAG потрібно щонайменше 3 залежних завданнÑ."
@@ -15409,6 +15733,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr "Ð’ Ñередньому (оÑтанні %{days}d)"
@@ -15501,7 +15828,7 @@ msgid "DORA4Metrics|High Vulnerabilities over time"
msgstr ""
msgid "DORA4Metrics|Issues closed"
-msgstr ""
+msgstr "Закриті задачі"
msgid "DORA4Metrics|Issues created"
msgstr ""
@@ -15680,9 +16007,6 @@ msgstr "Ð’ÑÑ–"
msgid "DashboardProjects|Personal"
msgstr "ОÑобиÑÑ‚Ñ–"
-msgid "Dashboards"
-msgstr "Панелі керуваннÑ"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} Ñ– %{secondProject}"
@@ -15716,6 +16040,9 @@ msgstr "Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ проєкту не знайдено попереднÑ
msgid "DastConfig|Not enabled"
msgstr "Ðе увімкнено"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15797,6 +16124,9 @@ msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ профіль Ñканера. Буд
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ профіль Ñайту. Будь лаÑка, Ñпробуйте ще раз."
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15974,9 +16304,6 @@ msgstr "Профілі Ñайту"
msgid "DastProfiles|Site type"
msgstr "Тип Ñайту"
-msgid "DastProfiles|Spider timeout"
-msgstr "Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð²ÑƒÐºÐ°"
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15989,7 +16316,7 @@ msgstr "Цільова URL-адреÑа"
msgid "DastProfiles|Target timeout"
msgstr "Цільовий Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -16306,6 +16633,9 @@ msgstr "Гілка за замовчуваннÑм"
msgid "Default branch and protected branches"
msgstr "Гілка за замовчуваннÑм Ñ– захищені гілки"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "Шаблон опиÑу задач за замовчуваннÑм"
@@ -16632,19 +16962,6 @@ msgstr "ОчікуєтьÑÑ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ. Цей проєкт буде в
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "Лише адмініÑтратори можуть видалÑти проєкти."
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "ВлаÑники та адмініÑтратори можуть видалÑти проєкти."
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16762,12 +17079,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr "Увімкнути/вимкнути ÑпиÑок вразливоÑтей"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "ВиÑвлено непідтимувані файли"
@@ -16786,9 +17109,6 @@ msgstr "ПрокÑÑ– залежноÑтей"
msgid "Dependency Scanning"
msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñтей"
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr "СпиÑок залежноÑтей"
@@ -16798,6 +17118,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr "Кешовано %{time}"
@@ -16826,7 +17149,7 @@ msgid "DependencyProxy|Dependency Proxy"
msgstr "ПрокÑÑ– залежноÑтей"
msgid "DependencyProxy|Dependency Proxy image prefix"
-msgstr ""
+msgstr "ЗалежніÑÑ‚ÑŒ ÐŸÑ€ÐµÑ„Ñ–ÐºÑ Ð¾Ð±Ñ€Ð°Ð·Ñƒ прокÑÑ–-Ñервера"
msgid "DependencyProxy|Digest: %{shortDigest}"
msgstr "ДайджеÑÑ‚: %{shortDigest}"
@@ -16834,18 +17157,27 @@ msgstr "ДайджеÑÑ‚: %{shortDigest}"
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr "Увімкнути прокÑÑ– залежноÑтей"
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr "СпиÑок образів"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr "Ðемає образів у кеші"
@@ -16855,6 +17187,9 @@ msgstr "Щоб переглÑнути Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ Ð¾Ð±Ñ€Ð°Ð·Ñ–Ð² та вміÑ
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr "Якщо увімкнено, образ, що зберігаютьÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ ніж 90 днів, будуть видалені з кешу."
@@ -17107,9 +17442,6 @@ msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
msgid "DeployTokens|Username (optional)"
msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача (необов'Ñзково)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr "Ваше нове ім'Ñ Ð´Ð»Ñ Ñ‚Ð¾ÐºÐµÐ½Ñƒ розгортаннÑ"
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17367,7 +17699,7 @@ msgid "Descriptive label"
msgstr "Мітка Ð´Ð»Ñ Ð¾Ð¿Ð¸Ñу"
msgid "Deselect all"
-msgstr ""
+msgstr "СкаÑувати вибір"
msgid "Design"
msgstr "Дизайн"
@@ -17509,7 +17841,7 @@ msgid "DesignManagement|There was an error moving your designs. Please upload yo
msgstr ""
msgid "DesignManagement|To upload designs, you'll need to enable LFS and have an admin enable hashed storage. %{requirements_link_start}More information%{requirements_link_end}"
-msgstr ""
+msgstr "Щоб завантажувати дизайни, вам потрібно увімкнути LFS Ñ– дозволити адмініÑтратору викориÑтовувати хешоване Ñховище. %{requirements_link_start}Додаткова інформаціÑ%{requirements_link_end}"
msgid "DesignManagement|Unresolve thread"
msgstr ""
@@ -17784,6 +18116,51 @@ msgstr "Diff обмеженнÑ"
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "Ð Ñ–Ð·Ð½Ð¸Ñ†Ñ Ð¼Ñ–Ð¶ датою початку та теперішньою"
@@ -17919,6 +18296,9 @@ msgstr "Відхилити зміни до %{path}?"
msgid "Discard draft"
msgstr "Видалити чернетку"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord СповіщеннÑ"
@@ -17965,13 +18345,13 @@ msgid "Discuss a specific suggestion or question."
msgstr "Обговорити конкретну пропозицію чи питаннÑ."
msgid "Discussion locked."
-msgstr ""
+msgstr "ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¾."
msgid "Discussion to reply to cannot be found"
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ обговореннÑ, на Ñке потрібно відповіÑти"
msgid "Discussion unlocked."
-msgstr ""
+msgstr "ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¾."
msgid "Disk Usage"
msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¸Ñку"
@@ -18227,6 +18607,9 @@ msgstr "ПеретÑгніть, щоб змінити порÑдок пріорÐ
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "ПеретÑгніть Ñвої проєкти Ñюди або %{linkStart}, щоб завантажити%{linkEnd}."
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "Перекиньте або %{linkStart}завантажте%{linkEnd} файл, щоб прикріпити"
@@ -18518,6 +18901,9 @@ msgstr "РедагуваннÑ"
msgid "Edits"
msgstr "РедагуваннÑ"
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr "Витрачений чаÑ"
@@ -18584,6 +18970,9 @@ msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾ÑŽ поштою про неві
msgid "Email patch"
msgstr "Email-патч"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "ЛиÑта відправлено"
@@ -18680,6 +19069,9 @@ msgstr "Порожній файл"
msgid "Enable"
msgstr "Увімкнути"
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr "Увімкнути Akismet"
@@ -18716,6 +19108,9 @@ msgstr "Увімкнути PlantUML"
msgid "Enable SSL verification"
msgstr "Увімкнути перевірку SSL"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr "Увімкнути відÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Snowplow"
@@ -18731,9 +19126,6 @@ msgstr "Увімкнути Що нового: тільки поточний рі
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "Увімкнути доÑтуп до панелі продуктивноÑÑ‚Ñ– Ð´Ð»Ñ Ð½Ðµ адмініÑтраторів у певній групі."
-msgid "Enable admin mode"
-msgstr "Увімкнути режим адмініÑтратора"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr "Ð£Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñ‚Ð° Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñлужби підтримки. Може знадобитиÑÑ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ðµ налаштуваннÑ. %{link_start}ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ%{link_end}."
@@ -18797,6 +19189,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr "Увімкніть або вимкніть перевірку верÑій та СервіÑний пінг."
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18812,9 +19207,6 @@ msgstr ""
msgid "Enable security training"
msgstr "Увімкнути Ñ‚Ñ€ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸"
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Увімкніть Ñ‚Ñ€ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸, щоб допомогти вашим розробникам навчитиÑÑ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»Ñти вразливоÑÑ‚Ñ–. Розробники можуть переглÑдати Ñ‚Ñ€ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ вибраних оÑвітніх провайдерів, що ÑтоÑуютьÑÑ Ð²Ð¸Ñвленої вразливоÑÑ‚Ñ–."
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "Увімкнути загальні раннери Ð´Ð»Ñ Ð²ÑÑ–Ñ… проєктів Ñ– підгруп у цій групі."
@@ -18902,6 +19294,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr "ЗакінчуєтьÑÑ: %{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "ЗаÑтоÑовувати двофакторну аутентифікацію"
@@ -19217,6 +19612,9 @@ msgstr "Відкрити"
msgid "Environments|Open live environment"
msgstr "Відкрити працююче Ñередовище"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "Повторно розгорнути Ñередовище"
@@ -19319,15 +19717,12 @@ msgstr "Рівень розгортаннÑ"
msgid "Environment|Deployments"
msgstr "Deployments"
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr "Ðевдало"
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -19340,9 +19735,6 @@ msgstr "Jobs"
msgid "Environment|Kubernetes overview"
msgstr "ОглÑд Kubernetes"
-msgid "Environment|Pending"
-msgstr "В очікуванні"
-
msgid "Environment|Pods"
msgstr ""
@@ -19358,9 +19750,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr "ReplicaSets"
-msgid "Environment|Running"
-msgstr "ВиконуєтьÑÑ"
-
msgid "Environment|Services"
msgstr "СервіÑи"
@@ -19370,9 +19759,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr "StatefulSets"
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr "ПідÑумок"
@@ -19388,10 +19774,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -20180,7 +20566,7 @@ msgid "Expand all threads"
msgstr "Розгорнути вÑÑ– теми"
msgid "Expand eligible approvers"
-msgstr ""
+msgstr "Розгорнути відповідні затверджувачі"
msgid "Expand file"
msgstr "Розгорнути файл"
@@ -20210,7 +20596,7 @@ msgid "Expected documents: %{expected_documents}"
msgstr ""
msgid "Experiment"
-msgstr ""
+msgstr "ЕкÑперимент"
msgid "Experiment features' settings not allowed."
msgstr ""
@@ -20299,9 +20685,6 @@ msgstr ""
msgid "Export as CSV"
msgstr "ЕкÑпортувати Ñк CSV"
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr "ЕкÑпортувати групу"
@@ -20428,6 +20811,9 @@ msgstr "URL-адреÑа зовнішньої вікі"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° зовнішню вікі з бічної панелі."
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://example.com/xxx/wiki/..."
@@ -20517,6 +20903,9 @@ msgstr "Ðе вдалоÑÑ Ñтворити гілку Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— зада
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "Ðе вдалоÑÑ Ñтворити фреймворк"
@@ -20532,16 +20921,13 @@ msgstr "Ðе вдалоÑÑ Ñтворити репозиторій"
msgid "Failed to create resources"
msgstr "Ðе вдалоÑÑ Ñтворити реÑурÑ"
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr "Ðе вдалоÑÑ Ñтворити вікі"
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20580,9 +20966,6 @@ msgstr "Ðеможливо завантажити"
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ виконавців."
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20610,18 +20993,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ групи."
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ ітерації."
-
msgid "Failed to load labels. Please try again."
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ мітки. Будь лаÑка, Ñпробуйте ще раз."
-msgid "Failed to load milestones."
-msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ етапи."
-
msgid "Failed to load milestones. Please try again."
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ етапи. Будь лаÑка, Ñпробуйте ще раз."
@@ -20730,6 +21104,9 @@ msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ фреймворк"
msgid "Failed to update issue status"
msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð·Ð°Ð´Ð°Ñ‡Ñ–"
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Canary Ingress."
@@ -21025,6 +21402,9 @@ msgstr "Файл переміщено"
msgid "File name"
msgstr "Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -21071,7 +21451,7 @@ msgid "Filter"
msgstr "Фільтр"
msgid "Filter activity"
-msgstr ""
+msgstr "Фільтрувати активніÑÑ‚ÑŒ"
msgid "Filter by"
msgstr "Фільтрувати за"
@@ -21304,9 +21684,6 @@ msgstr ""
msgid "For general work"
msgstr "Ð”Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ñ— роботи"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21350,7 +21727,7 @@ msgid "ForkProject|A fork is a copy of a project."
msgstr "Форк є копією проєкту."
msgid "ForkProject|All branches"
-msgstr ""
+msgstr "Ð’ÑÑ– гілки"
msgid "ForkProject|An error occurred while forking the project. Please try again."
msgstr "Виникла помилка при Ñтворенні форку проєкту. Будь лаÑка, Ñпробуйте ще раз."
@@ -21629,6 +22006,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr "Згенеруйте Ñайт Ñ– приватні ключі за адреÑою"
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "Згенеровано за допомогою даних JSON"
@@ -21976,12 +22356,6 @@ msgstr "Повторна ÑинхронізаціÑ"
msgid "Geo|Resync all"
msgstr "Повторна ÑинхронізаціÑ"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr "КількіÑÑ‚ÑŒ Ñпроб"
@@ -21991,12 +22365,6 @@ msgstr "Повторно перевірити"
msgid "Geo|Reverify all"
msgstr "Повторно перевірити вÑе"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -22073,7 +22441,7 @@ msgid "Geo|The site is currently %{minutes_behind} behind the primary site."
msgstr ""
msgid "Geo|There are no %{replicable_type} to show"
-msgstr ""
+msgstr "Ðемає %{replicable_type} Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ"
msgid "Geo|There are no %{replicable} to show"
msgstr "Ðемає %{replicable} Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ"
@@ -22105,12 +22473,6 @@ msgstr "Цей інÑÑ‚Ð°Ð½Ñ GitLab підпиÑаний на рівень %{in
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Це призведе до повторної Ñинхронізації вÑÑ–Ñ… проєктів. Ðа це може знадобитиÑÑ Ð´ÐµÑкий чаÑ. Ви впевнені, що хочете продовжити?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "Це призведе до повторної перевірки вÑÑ–Ñ… проєктів. Ðа це може знадобитиÑÑ Ð´ÐµÑкий чаÑ. Ви впевнені, що хочете продовжити?"
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -22168,9 +22530,6 @@ msgstr "оÑновний"
msgid "Geo|secondary"
msgstr "вторинний"
-msgid "Get a free instance review"
-msgstr "Отримайте безкоштовну оцінку інÑтанÑа"
-
msgid "Get a support subscription"
msgstr ""
@@ -22192,6 +22551,9 @@ msgstr "Розпочати роботу з відÑтеженнÑм помило
msgid "Get started!"
msgstr "Розпочати!"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -22279,9 +22641,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr "Перевищено Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾ÑÑ‚Ñ– GitHub API. Спробуйте знову через %{reset_time}"
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHub-імпорт"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -22378,9 +22746,6 @@ msgstr "GitLab — це повноцінна платформа DevOps, Ñка Ð
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr "GitLab Ñ” окремою програмою Ð´Ð»Ñ Ð²Ñього життєвого циклу розробки програмного забезпеченнÑ. Від Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð²Ð¸Ñ…Ñ–Ð´Ð½Ð¸Ð¼Ð¸ кодами до CI/CD, моніторингу та безпеки."
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr "GitLab Ñ” безкоштовним Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ. Багато функцій Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¸Ñ… команд Ñ” чаÑтиною наших %{link_start}платних продуктів%{link_end}. Ви можете Ñпробувати Ultimate безкоштовно без жодних платіжних реквізитів."
@@ -22510,7 +22875,7 @@ msgstr "Ðепідтверджено"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ— ваших Ñторінок..."
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22528,7 +22893,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr "Якщо ввімкнено, уÑÑ– Ñпроби відвідати ваш вебÑайт через HTTP автоматично перенаправлÑÑŽÑ‚ÑŒÑÑ Ð½Ð° HTTPS за допомогою відповіді з кодом ÑтатуÑу 301. Потрібний дійÑний Ñертифікат Ð´Ð»Ñ Ð²ÑÑ–Ñ… доменів. %{docs_link_start}ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.%{link_end}"
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22705,23 +23070,23 @@ msgstr "Глобальна електронна пошта Ð´Ð»Ñ Ñповіще
msgid "Global notification level"
msgstr "Глобальний рівень ÑповіщеннÑ"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr "%{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr "%{count} надано результати за замовчуваннÑм. ВикориÑтовуйте верхні та нижні клавіші зі Ñтрілками, щоб перейти до ÑпиÑку результатів пошуку."
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
-msgstr "Закрити"
+msgid "GlobalSearch|Archived"
+msgstr ""
msgid "GlobalSearch|Command palette"
msgstr ""
@@ -22763,7 +23128,7 @@ msgid "GlobalSearch|Issues assigned to me"
msgstr "Задачі призначені Ð´Ð»Ñ Ð¼ÐµÐ½Ðµ"
msgid "GlobalSearch|Labels"
-msgstr ""
+msgstr "Мітки"
msgid "GlobalSearch|Language"
msgstr "Мова"
@@ -22780,6 +23145,9 @@ msgstr "Запити на злиттÑ, Ñкі Ñ Ð¾Ð³Ð»Ñдаю"
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22801,18 +23169,15 @@ msgstr "Свіжі задачі"
msgid "GlobalSearch|Recent merge requests"
msgstr "ОÑтанні запити на злиттÑ"
+msgid "GlobalSearch|Reset"
+msgstr ""
+
msgid "GlobalSearch|Result count is over limit."
msgstr ""
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
-msgid "GlobalSearch|Search"
-msgstr "Пошук"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "Пошук в GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "Пошук проєктів, задач і т.д."
@@ -22840,9 +23205,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr "Введіть %{kbdOpen}/%{kbdClose} Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ"
@@ -22852,9 +23214,6 @@ msgstr "Введіть та натиÑніть клавішу Enter Ð´Ð»Ñ Ð¿Ñ–Ð
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "Введіть, щоб нижче з'ÑвилиÑÑ Ð½Ð¾Ð²Ñ– пропозиції."
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "ВикориÑтовуйте клавішу швидкого доÑтупу %{kbdOpen}/%{kbdClose}, щоб почати пошук"
-
msgid "GlobalSearch|Users"
msgstr "КориÑтувачі"
@@ -22862,7 +23221,7 @@ msgid "GlobalSearch|What are you searching for?"
msgstr ""
msgid "GlobalSearch|all GitLab"
-msgstr ""
+msgstr "У вÑьому GitLab"
msgid "GlobalSearch|in %{scope}"
msgstr "в %{scope}"
@@ -22969,9 +23328,6 @@ msgstr "Перейти до попередньої Ñторінки"
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr "Перейдіть на оÑновний Ñайт"
-
msgid "Go to project"
msgstr "Перейти до проєкту"
@@ -23041,6 +23397,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr "Перейти до ваших Ñніпетів"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google Cloud"
@@ -23053,6 +23412,9 @@ msgstr "Проєкт Google Cloud"
msgid "Google Cloud authorizations required"
msgstr "Потрібно авторизуватиÑÑ Ð² Google Cloud"
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "СкаÑувати"
@@ -23089,10 +23451,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -23122,9 +23484,6 @@ msgstr ""
msgid "Got it"
msgstr "Зрозуміло"
-msgid "Got it!"
-msgstr "Зрозуміло!"
-
msgid "Grafana URL"
msgstr "URL-адреÑа Grafana"
@@ -23210,7 +23569,7 @@ msgid "Group application: %{name}"
msgstr "ЗаÑтоÑунок групи: %{name}"
msgid "Group applications"
-msgstr ""
+msgstr "Групові заÑтоÑунки"
msgid "Group audit events"
msgstr "Групові події аудиту"
@@ -23263,6 +23622,9 @@ msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ групу:"
msgid "Group information"
msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ групу"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "Групувати Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°"
@@ -23356,11 +23718,14 @@ msgstr "Група уÑпішно імпортована."
msgid "GroupImport|Unable to process group import file"
msgstr "Ðе вдаєтьÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ файл імпорту групи"
-msgid "GroupPage|Copy group ID"
-msgstr "Копіювати ID групи"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "Ідентифікатор групи: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} – дати Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”"
@@ -23623,6 +23988,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr "Ðналітика"
@@ -23644,6 +24012,9 @@ msgstr "Значки"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr "Будьте обережні. Зміна батьків групи може мати небажані наÑлідки. %{learn_more_link_start}ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.%{learn_more_link_end}"
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ шлÑÑ… тому що в цій групі Ñ” проєкти із образами Docker у Ñвоїх РеєÑтрах контейнерів. Будь лаÑка, Ñпочатку видаліть ці образи з ваших проєктів Ñ– Ñпробуйте знову."
@@ -23686,12 +24057,21 @@ msgstr "ВикориÑтовувати за замовчуваннÑм конвÐ
msgid "GroupSettings|Email notifications are disabled"
msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾ÑŽ поштою вимкнено"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23716,6 +24096,9 @@ msgstr "Якщо видиміÑÑ‚ÑŒ батьківÑької групи нижч
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "УчаÑники не можуть запрошувати групи за межами %{group} та Ñ—Ñ— підгруп"
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23740,6 +24123,12 @@ msgstr "Проєкти в %{group} не можуть бути Ñпільними
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23782,6 +24171,9 @@ msgstr "Проблема при оновленні налаштувань кон
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "Цей параметр заÑтоÑовано до %{ancestor_group} Ñ– його було перевизначено в цій підгрупі."
@@ -23845,30 +24237,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr "ЧаÑто відвідувані"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "Групи, Ñкі ви чаÑто відвідуєте, будуть відображені тут"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "Пошук по ваших групах"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "ЩоÑÑŒ пішло не так з нашого боку."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "Ðа жаль жодна группа не задовольнÑÑ” параметрам вашого запиту"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "Ð¦Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” підтримки localStorage вашим браузером"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr "Перемикач режиму редагуваннÑ"
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23929,7 +24297,7 @@ msgstr "Створити підгрупу"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23971,11 +24339,11 @@ msgstr "Будь лаÑка, звернітьÑÑ Ð´Ð¾ Ñвого ÐдмініÑ
msgid "GroupsNew|Please fill in your personal access token."
msgstr "Будь лаÑка, заповніть ваш оÑобиÑтий токен доÑтупу."
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
-msgstr ""
+msgstr "Ðе забудьте увімкнути його також на інÑтанÑÑ–, з Ñкого ви мігруєте."
msgid "GroupsNew|This feature is deprecated and replaced by group migration by direct transfer. %{docs_link_start}Learn more%{docs_link_end}."
msgstr "Ð¦Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð·Ð°Ñтаріла Ñ– замінена на групову міграцію шлÑхом прÑмого перенеÑеннÑ. %{docs_link_start}ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ%{docs_link_end}."
@@ -24094,6 +24462,9 @@ msgstr "Це Ñтворить проєкт %{path} та додаÑÑ‚ÑŒ README.md
msgid "Groups|You're creating a new top-level group"
msgstr "Ви Ñтворюєте нову групу верхнього рівнÑ"
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "ГіÑÑ‚ÑŒ"
@@ -24148,6 +24519,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -24408,13 +24788,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "Сховати значеннÑ"
-msgstr[1] "Сховати значеннÑ"
-msgstr[2] "Сховати значень"
-msgstr[3] "Сховати значень"
-
msgid "Hide values"
msgstr "Сховати значеннÑ"
@@ -24433,6 +24806,9 @@ msgstr "Чи Ñ–Ñнує фреймворк або тип робочого еле
msgid "Hierarchy|Planning hierarchy"
msgstr "Ð†Ñ”Ñ€Ð°Ñ€Ñ…Ñ–Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ"
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24508,6 +24884,9 @@ msgstr "ОчищеннÑ"
msgid "Housekeeping successfully started"
msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑƒÑпішно розпочато"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24598,6 +24977,9 @@ msgstr ""
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24695,9 +25077,6 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24713,7 +25092,7 @@ msgstr "Перед тим, Ñк ви завершите ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±Ð
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "Перед тим, Ñк ви ввійдете в ÑиÑтему, нам потрібно підтвердити вашу оÑобу. Введіть наÑтупний код на Ñторінці входу."
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24725,8 +25104,11 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr "Ðе отримали код?"
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
-msgstr "Ðе отримали код? %{linkStart}Ðадішліть новий код%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
msgid "IdentityVerification|Email update is only offered once."
msgstr ""
@@ -24797,6 +25179,9 @@ msgstr "ÐадіÑлати новий код"
msgid "IdentityVerification|Send code"
msgstr "ÐадіÑлати код"
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "ЩоÑÑŒ пішло не так. Будь лаÑка, Ñпробуйте ще раз."
@@ -24939,7 +25324,7 @@ msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commit
msgstr "При викориÑтанні GitHub, ви побачите ÑтатуÑи конвеєрів Ð´Ð»Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð² Ñ– запитів на злиттÑ. %{more_info_link}"
msgid "If you add %{codeStart}needs%{codeEnd} to jobs in your pipeline you'll be able to view the %{codeStart}needs%{codeEnd} relationships between jobs in this tab as a %{linkStart}Directed Acyclic Graph (DAG)%{linkEnd}."
-msgstr ""
+msgstr "Якщо ви додаÑте %{codeStart}needs%{codeEnd} до завдань у конвеєрі, ви зможете переглÑнути взаємозв'Ñзок %{codeStart}needs%{codeEnd} між завданнÑми на цій вкладці у виглÑді %{linkStart}ÑпрÑмованого ациклічного графа (DAG)%{linkEnd}."
msgid "If you are unable to sign in or recover your password, contact a GitLab administrator."
msgstr "Якщо вам не вдалоÑÑ ÑƒÐ²Ñ–Ð¹Ñ‚Ð¸ або відновити пароль, звернітьÑÑ Ð´Ð¾ адмініÑтратора GitLab."
@@ -25090,9 +25475,6 @@ msgstr "Імпортувати групу"
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -25271,10 +25653,10 @@ msgstr "Імпорт..."
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -25289,6 +25671,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -25304,6 +25689,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr "За цією URL-адреÑою немає дійÑного репозиторію Git. Якщо ваш репозиторій HTTP не Ñ” загальнодоÑтупним, перевірте Ñвої облікові дані."
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25790,6 +26178,9 @@ msgstr "Вказує на те, чи може даний раннер викон
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "ПовідомлÑти кориÑтувачам без клічів SSH, що без них вони не зможуть відправлÑти код через SSH"
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr "ІнфраÑтруктура"
@@ -25921,9 +26312,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "Ð’Ñтановіть GitLab раннер Ñ– переконайтеÑÑ, що він працює."
-
msgid "Installation"
msgstr "УÑтановка"
@@ -26190,7 +26578,7 @@ msgid "Integrations|Standard"
msgstr ""
msgid "Integrations|There are no projects using custom settings"
-msgstr ""
+msgstr "Ðемає проєктів із кориÑтувацькими налаштуваннÑми"
msgid "Integrations|This integration, and inheriting projects were reset."
msgstr ""
@@ -26312,9 +26700,6 @@ msgstr "Ðеправильний файл."
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr "ÐедійÑний хеш"
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26433,7 +26818,7 @@ msgid "InviteMembersModal|Add unlimited members with your trial"
msgstr ""
msgid "InviteMembersModal|Administrators can %{linkStart}add new users by email manually%{linkEnd}. After they've been added, you can invite them to this group with their username."
-msgstr ""
+msgstr "ÐдмініÑтратори можуть %{linkStart}додавати нових кориÑтувачів електронною поштою вручну%{linkEnd}. ПіÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾ Ñк Ñ—Ñ… буде додано, ви можете запроÑити Ñ—Ñ… до цієї групи за допомогою Ñ—Ñ… імені кориÑтувача."
msgid "InviteMembersModal|Cancel"
msgstr "СкаÑувати"
@@ -26469,7 +26854,7 @@ msgid "InviteMembersModal|Inviting a group %{linkStart}adds its members to your
msgstr ""
msgid "InviteMembersModal|Inviting users by email is disabled"
-msgstr ""
+msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів електронною поштою вимкнено"
msgid "InviteMembersModal|Manage members"
msgstr ""
@@ -26493,7 +26878,7 @@ msgid "InviteMembersModal|Select a role"
msgstr "Вибрати роль"
msgid "InviteMembersModal|Select members"
-msgstr ""
+msgstr "Вибрати учаÑників"
msgid "InviteMembersModal|Select members or type email addresses"
msgstr "Виберіть учаÑників або введіть адреÑи електронної пошти"
@@ -26523,11 +26908,11 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
-msgstr "Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача або адреÑа електронної пошти"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr ""
@@ -26833,7 +27218,7 @@ msgid "IssueBoards|No matching boards found"
msgstr "Ðе знайдено відповідних дошок"
msgid "IssueBoards|Select board"
-msgstr ""
+msgstr "Обрати дошку"
msgid "IssueBoards|Some of your boards are hidden, add a license to see them again."
msgstr "ДеÑкі з ваших дошок Ñ” прихованими, додайте ліцензію, щоб побачити Ñ—Ñ… знову."
@@ -26853,14 +27238,14 @@ msgstr "URL-адреÑа задачі"
msgid "IssueTracker|New issue URL"
msgstr "URL-адреÑа нової задачі"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "URL-адреÑа Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡ у зовнішньому реєÑтрі задач."
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "URL-адреÑа Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду задачі у зовнішньому реєÑтрі задач. Має міÑтити %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "ВикориÑтовуйте Bugzilla Ñк трекер задач цього проєкту."
@@ -26920,7 +27305,7 @@ msgid "Issues closed"
msgstr "Задачі закриті"
msgid "Issues exist in projects, so to create an issue, first create a project."
-msgstr ""
+msgstr "Задачі Ñ–Ñнують у проєктах, тому, щоб Ñтворити задачу, Ñпочатку Ñтворіть проєкт."
msgid "Issues must match this scope to appear in this list."
msgstr "Задачі мають відповідати цій облаÑÑ‚Ñ–, щоб з’ÑвитиÑÑ Ð² цьому ÑпиÑку."
@@ -26964,6 +27349,13 @@ msgstr "Створені задачі за міÑÑць"
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26973,12 +27365,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "Ðа жаль, немає результатів, Ñкі відповідають фільтру"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -27019,6 +27407,9 @@ msgstr "ЗдаєтьÑÑ, що робота ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ
msgid "It seems that there is currently no available data for code coverage"
msgstr "ЗдаєтьÑÑ, наразі немає доÑтупних даних Ð´Ð»Ñ Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐºÐ¾Ð´Ñƒ"
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "Це ви"
@@ -27148,6 +27539,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -27277,6 +27671,9 @@ msgstr "Шаблон зіÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів Jira-GitLab
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -27346,15 +27743,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr "Ідентифікатор заÑтоÑунку Jira Connect"
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "URL-адреÑа прокÑÑ– з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Jira"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -27406,6 +27803,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27454,6 +27857,9 @@ msgstr "Облікові дані Ð´Ð»Ñ Ð´Ð¾Ñтупу до Jira не маютÑ
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr "Облікові дані Ð´Ð»Ñ Ð´Ð¾Ñтупу до Jira недійÑні. Перевірте Ñвої %{docs_link_start}облікові дані інтеграції Jira%{docs_link_end} та Ñпробуйте знову."
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr " у гілці %{branch_link}"
@@ -27613,7 +28019,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27883,6 +28289,9 @@ msgstr "ТриваліÑÑ‚ÑŒ"
msgid "Job|Erase job log and artifacts"
msgstr "Стерти лог завдань та артефакти"
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27892,6 +28301,9 @@ msgstr "Ðевдало"
msgid "Job|Finished at"
msgstr "Завершено о"
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "Ðртефакти завдань"
@@ -27964,6 +28376,9 @@ msgstr "Пошук журналу завдань"
msgid "Job|Show complete raw"
msgstr "Показати повний неформатований"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr "Пропущені"
@@ -27986,7 +28401,7 @@ msgid "Job|This job failed because the necessary resources were not successfully
msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»Ð¾ÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ тому що необхідні реÑурÑи не було уÑпішно Ñтворені."
msgid "Job|This job is stuck because of one of the following problems. There are no active runners online, no runners for the %{linkStart}protected branch%{linkEnd}, or no runners that match all of the job's tags:"
-msgstr ""
+msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°ÑÑ‚Ñ€Ñгло через одну з наÑтупних проблем. Ðемає активних раннерів онлайн, немає раннерів Ð´Ð»Ñ %{linkStart}захищеної гілки%{linkEnd} або немає раннерів, Ñкі відповідають уÑім тегам завданнÑ:"
msgid "Job|This job is stuck because the project doesn't have any runners online assigned to it."
msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ðµ, тому що цей проєкт не має жодних раннерів призначених Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾."
@@ -28084,9 +28499,6 @@ msgstr "Ключ (PEM)"
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr "Ключ:"
@@ -28123,6 +28535,9 @@ msgstr "Ключі"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -28153,6 +28568,120 @@ msgstr "Kubernetes-клаÑтери"
msgid "Kubernetes deployment not found"
msgstr "Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Kubernetes не знайдено"
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr "Ðгент %{name} ID #%{id}"
+
+msgid "KubernetesDashboard|Agents"
+msgstr "Ðгенти"
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -28250,6 +28779,12 @@ msgstr "Мітки можуть бути заÑтоÑовані до задач
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "Мітки без задач у цій ітерації:"
@@ -28293,8 +28828,8 @@ msgstr "ОÑтанні 24 години"
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
-msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ–ÑÑ‚ÑŒ"
+msgid "Last GitLab activity"
+msgstr ""
msgid "Last Name"
msgstr "Прізвище"
@@ -28311,6 +28846,9 @@ msgstr "ОÑтанній доÑтуп"
msgid "Last activity"
msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ–ÑÑ‚ÑŒ"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "ОÑтанній коміт"
@@ -28393,7 +28931,7 @@ msgid "LastPushEvent|at"
msgstr "в"
msgid "Latest AI-generated summary"
-msgstr ""
+msgstr "ОÑтанній підÑумок, згенерований штучним інтелектом"
msgid "Latest changes"
msgstr "ОÑтанні зміни"
@@ -28597,9 +29135,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "Розпочати безкоштовну пробну верÑÑ–ÑŽ GitLab Ultimate"
@@ -28630,6 +29165,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr "ЗвернітьÑÑ Ð´Ð¾ Ñвого адмініÑтратора, щоб увімкнути цю дію."
@@ -28645,9 +29183,6 @@ msgstr ""
msgid "Leave"
msgstr "Вийти"
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "Вийти з режиму редагуваннÑ? УÑÑ– незбережені зміни буде втрачено."
@@ -28858,7 +29393,7 @@ msgstr "Компонент"
msgid "Licenses|Components"
msgstr "Компоненти"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -29039,9 +29574,6 @@ msgstr "СпиÑок"
msgid "List available repositories"
msgstr "СпиÑок доÑтупних репозиторіїв"
-msgid "List of all commits"
-msgstr "СпиÑок вÑÑ–Ñ… комітів"
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -29075,6 +29607,9 @@ msgstr "Завантажити ще"
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr "ЗавантаженнÑ"
@@ -29121,7 +29656,7 @@ msgid "Lock File?"
msgstr "Заблокувати файл?"
msgid "Lock discussion"
-msgstr ""
+msgstr "Заблокувати можливіÑÑ‚ÑŒ обговореннÑ"
msgid "Lock label after a merge request is merged"
msgstr ""
@@ -29145,7 +29680,7 @@ msgid "Lock the discussion"
msgstr "Заблокувати обговореннÑ"
msgid "Lock this discussion? Only %{strongStart}project members%{strongEnd} will be able to comment."
-msgstr ""
+msgstr "Заблокувати це обговореннÑ? Коментувати зможуть лише учаÑники проєкту %{strongStart}%{strongEnd}."
msgid "Lock to current projects"
msgstr "Закріпити за поточними проєктами"
@@ -29163,44 +29698,20 @@ msgid "Locked the discussion."
msgstr "ДиÑкуÑÑ–ÑŽ закрито."
msgid "Locking discussion"
-msgstr ""
+msgstr "Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ"
msgid "Locks the discussion."
msgstr "Блокує обговореннÑ."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "Про GitLab"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "ОглÑд GitLab"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "Ð”Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr "ДізнайтеÑÑ Ð¿Ñ€Ð¾ GitLab"
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ GitLab"
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr "GitLab: платформа DevOps"
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr "Ð’Ñтановити GitLab"
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr "Ціни"
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr "Поговорити з екÑпертом"
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -29228,12 +29739,6 @@ msgstr "МБ"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -29288,9 +29793,6 @@ msgstr "Ключ підпиÑу вебхука HTTP Mailgun"
msgid "Mailgun events"
msgstr "подіÑми Mailgun"
-msgid "Main menu"
-msgstr "Головне меню"
-
msgid "Maintainer"
msgstr "Керівник"
@@ -29894,100 +30396,103 @@ msgstr "%{member_name} запроÑив Ð²Ð°Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ GitLa
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ %{project_or_group} %{project_or_group_name}"
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -30290,6 +30795,9 @@ msgstr "Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² на злиттÑ"
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30354,10 +30862,10 @@ msgid "Merge trains"
msgstr ""
msgid "Merge unverified changes"
-msgstr ""
+msgstr "Об'єднати неперевірені зміни"
msgid "Merge unverified changes?"
-msgstr ""
+msgstr "Об'єднати неперевірені зміни?"
msgid "Merge when all merge checks pass"
msgstr ""
@@ -30671,6 +31179,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr "Метрики"
+
msgid "Metrics - Grafana"
msgstr "Метрики - Grafana"
@@ -30704,15 +31215,9 @@ msgstr "Видалити метрику"
msgid "Metrics|Delete metric?"
msgstr "Видалити метрику?"
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr "Ð”Ð»Ñ Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð±Ð½Ð¸Ñ… метрик"
@@ -30722,15 +31227,9 @@ msgstr "Мітка оÑÑ– y (зазвичай Ð¾Ð´Ð¸Ð½Ð¸Ñ†Ñ Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð
msgid "Metrics|Legend label (optional)"
msgstr "Заголовок легенди (необов’Ñзковий)"
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "Має бути коректним запитом PromQL."
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr "Ðова метрика"
@@ -30743,9 +31242,6 @@ msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ Ð¿Ð¾ запитам Prometheus"
msgid "Metrics|There was an error trying to validate your query"
msgstr "Помилка при перевірці вашого запиту"
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr "Одиниці вимірюваннÑ"
@@ -30782,6 +31278,9 @@ msgstr "напр. зап/Ñек"
msgid "Mi"
msgstr "Мі"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -31008,9 +31507,15 @@ msgstr "Мінімальне значеннÑ"
msgid "Minimal Access"
msgstr "Мінімальний ДоÑтуп"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "Мінімальна доÑтупна пропуÑкна здатніÑÑ‚ÑŒ необхідна Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку попередньої Ñинхронізації дзеркал."
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr "Хвилин"
@@ -31104,9 +31609,6 @@ msgstr "Ðвтор"
msgid "MlExperimentTracking|CI Job"
msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ CI"
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -31122,6 +31624,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -31152,36 +31657,18 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr "Розпочати роботу з екÑпериментальними моделÑми!"
-msgid "MlExperimentTracking|ID"
-msgstr ""
-
-msgid "MlExperimentTracking|Info"
-msgstr ""
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr ""
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|Metrics"
-msgstr "Метрики"
-
msgid "MlExperimentTracking|Model candidate details"
msgstr ""
msgid "MlExperimentTracking|Model experiments"
msgstr "Модель екÑпериментів."
-msgid "MlExperimentTracking|Model performance"
-msgstr ""
-
msgid "MlExperimentTracking|Model removed"
msgstr ""
@@ -31197,27 +31684,9 @@ msgstr ""
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr ""
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr ""
-
msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
-msgstr "Параметри"
-
-msgid "MlExperimentTracking|Status"
-msgstr "СтатуÑ"
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr "Ініційовано"
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] ""
@@ -31232,22 +31701,109 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr ""
+
+msgid "MlModelRegistry|CI Info"
+msgstr ""
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr ""
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr ""
+msgid "MlModelRegistry|Experiment"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
+msgstr ""
+
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -31275,9 +31831,15 @@ msgstr "Закрити"
msgid "Model experiments"
msgstr "Модель екÑпериментів."
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "Змінено"
@@ -31846,9 +32408,6 @@ msgstr "Код"
msgid "Navigation|Deploy"
msgstr "РозгортаннÑ"
-msgid "Navigation|Enter admin mode"
-msgstr "Перейти в режим адмініÑтратора"
-
msgid "Navigation|Explore"
msgstr "ОглÑд"
@@ -31861,9 +32420,6 @@ msgstr "ЧаÑто відвідувані проєкти"
msgid "Navigation|Groups you visit often will appear here."
msgstr "Тут з'ÑвлÑÑ‚ÑŒÑÑ Ð³Ñ€ÑƒÐ¿Ð¸, Ñкі ви чаÑто відвідуєте."
-msgid "Navigation|Leave admin mode"
-msgstr "Вийти з режиму адмініÑтратора"
-
msgid "Navigation|Manage"
msgstr "УправліннÑ"
@@ -31958,7 +32514,7 @@ msgid "New %{type} in %{project}"
msgstr ""
msgid "New Application"
-msgstr "Ðовий додаток"
+msgstr "Ðовий заÑтоÑунок"
msgid "New Branch"
msgstr "Ðова Гілка"
@@ -32294,15 +32850,15 @@ msgstr ""
msgid "No data available"
msgstr "Ðемає даних"
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr "Ðе знайдено розгортань"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "ВідÑÑƒÑ‚Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ° підключеннÑ"
@@ -32408,6 +32964,9 @@ msgstr "Ðемає інших міток з таким іменем або опÐ
msgid "No parent group"
msgstr "Ðемає батьківÑької групи"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32442,7 +33001,7 @@ msgid "No ref selected"
msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ðµ вибрано"
msgid "No regions configured"
-msgstr ""
+msgstr "Ðемає налаштованих регіонів"
msgid "No repository"
msgstr "Ðемає репозиторію"
@@ -32460,7 +33019,7 @@ msgid "No runner executable"
msgstr ""
msgid "No service accounts"
-msgstr ""
+msgstr "Ðемає Ñлужбових облікових запиÑів"
msgid "No severity matches the provided parameter"
msgstr ""
@@ -32556,18 +33115,6 @@ msgstr "Звичайний текÑÑ‚"
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ—. Будь лаÑка, Ñпробуйте ще раз пізніше."
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr "Перероблений дизайн навігації"
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "Ðова навігаціÑ"
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "Перейти до нової навігації"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32577,6 +33124,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "Ще не вÑÑ– дані оброблені, тому точніÑÑ‚ÑŒ графіку Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ чаÑового проміжку обмежена."
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32592,6 +33142,9 @@ msgstr "ÐедоÑтупно Ð´Ð»Ñ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ñ… гілок"
msgid "Not confidential"
msgstr "Ðе конфіденційно"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "Ðе знайдено"
@@ -32610,6 +33163,9 @@ msgstr "Ðе розпочато"
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "Примітка"
@@ -32728,6 +33284,9 @@ msgstr[1] "ОглÑдачі: %{users}"
msgstr[2] "ОглÑдачів: %{users}"
msgstr[3] "ОглÑдачів: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr "ЗмінюєтьÑÑ Ð¾Ð³Ð»Ñдач Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на об'єднаннÑ"
@@ -32827,6 +33386,12 @@ msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾."
msgid "Notify users by email when sign-in location is not recognized."
msgstr "Сповіщайте кориÑтувачів електронною поштою, коли міÑце входу не розпізнаєтьÑÑ."
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr "Задача кориÑтувача %{author_link} %{issue_reference_link} Ñкоро має бути завершена."
@@ -32875,6 +33440,12 @@ msgstr "%{paragraph_start}Привіт %{name}!%{paragraph_end} %{paragraph_star
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr "%{project_link_start}Завантажте%{project_link_end} екÑпорт проєкту."
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr "%{singular_or_plural_line} %{error_lines}: тип робочого елемента не знайдено або не підтримуєтьÑÑ."
@@ -32905,18 +33476,15 @@ msgstr "Помилка Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ дзеркалÐ
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr "ПіÑÐ»Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ñƒ дії ви можете %{a_start} подати запит на новий %{a_end}."
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr "Ð’ÑÑ– Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ запиту на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ %{mr_link} були вирішені %{name}"
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr "Та ще %{total_stripped_new_commits_count}"
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð²Ñ†Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ з %{fromNames} на %{toNames}"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð²Ñ†Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ на %{toNames}"
-
msgid "Notify|Author: %{author_name}"
msgstr "Ðвтор: %{author_name}"
@@ -32962,6 +33530,9 @@ msgstr "Помилки знайдено на %{singular_or_plural_line}: %{error
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr "Відбиток: %{fingerprint}"
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr "ОÑÑŒ результати імпорту CSV Ð´Ð»Ñ %{project_link}."
@@ -32986,6 +33557,9 @@ msgstr "Якщо ви більше не бажаєте викориÑтовувÐ
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr "Ðевірний токен підтвердженнÑ:"
@@ -33076,6 +33650,9 @@ msgstr "Проєкт %{project_name} не вдалоÑÑ ÐµÐºÑпортуватÐ
msgid "Notify|Project %{project_name} was exported successfully."
msgstr "Проєкт %{project_name} уÑпішно екÑпортовано."
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr "Віддалене дзеркало"
@@ -33091,6 +33668,9 @@ msgstr "ÐдмініÑтратор Ñтворив Ð´Ð»Ñ Ð²Ð°Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "Конвеєр Auto DevOps завершивÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ð° %{pipeline_link} Ñ– його вимкнено Ð´Ð»Ñ %{project_link}. Щоб викориÑтовувати конвеєр Auto DevOps за допомогою вашого проєкту, будь лаÑка, переглÑньте %{supported_langs_link} Ðалаштуйте Ñвій проєкт відповідно та увімкніть конвеєр Auto DevOps у вашому %{settings_link}."
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr "Ð Ñ–Ð·Ð½Ð¸Ñ†Ñ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу не була включена, тому що він завеликий."
@@ -33103,7 +33683,7 @@ msgstr "Термін дії поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°ÐºÑ–
msgid "Notify|The errors we encountered were:"
msgstr "Помилки, з Ñкими ми зіткнулиÑÑ, були:"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -33232,6 +33812,9 @@ msgstr "КількіÑÑ‚ÑŒ працівників"
msgid "Number of files touched"
msgstr "КількіÑÑ‚ÑŒ змінених файлів"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -33250,27 +33833,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
+msgstr "Об’єкт не Ñ–Ñнує на Ñервері або у Ð²Ð°Ñ Ð½Ðµ має до нього доÑтупу"
+
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Description"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
-msgstr "Об’єкт не Ñ–Ñнує на Ñервері або у Ð²Ð°Ñ Ð½Ðµ має до нього доÑтупу"
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33663,10 +34267,10 @@ msgid "OnDemandScans|The scan could not be retried."
msgstr ""
msgid "OnDemandScans|There are no finished scans."
-msgstr ""
+msgstr "Ðемає завершених Ñканувань."
msgid "OnDemandScans|There are no running scans."
-msgstr ""
+msgstr "Ðемає запущених Ñканувань."
msgid "OnDemandScans|There are no saved scans."
msgstr ""
@@ -33684,7 +34288,7 @@ msgid "OnDemandScans|Verify configuration"
msgstr ""
msgid "OnDemandScans|View results"
-msgstr ""
+msgstr "ПереглÑнути результати"
msgid "OnDemandScans|You cannot perform any action on this page because you only have %{linkStart}auditor-level access%{linkEnd} and are not a member of the project."
msgstr ""
@@ -33819,9 +34423,6 @@ msgstr "Видно лише вам"
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr "Лише ролі \"Репортер\" та вище на рівнÑÑ… Premium та вище можуть переглÑдати аналітику продуктивноÑÑ‚Ñ–."
-msgid "Oops, are you sure?"
-msgstr "Ой, а ви впевнені?"
-
msgid "Open"
msgstr "Відкрито"
@@ -33858,9 +34459,6 @@ msgstr "Відкрити нове вікно"
msgid "Open raw"
msgstr "Відкрити в неформатованому виглÑді"
-msgid "Open sidebar"
-msgstr "Розгорніть бічну панель"
-
msgid "Open: %{open}"
msgstr "Відкрити: %{open}"
@@ -33951,6 +34549,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33969,6 +34570,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -34017,7 +34624,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -34044,6 +34660,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -34161,6 +34780,66 @@ msgstr "ОглÑд"
msgid "Overwrite diverged branches"
msgstr "ПерезапиÑати розбіжні гілки"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "ВлаÑник %{image_tag}"
@@ -34230,6 +34909,9 @@ msgstr "Пакет уÑпішно видалено"
msgid "Package file size limits"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ файлу пакета"
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -34273,7 +34955,7 @@ msgid "Package type must be RubyGems"
msgstr ""
msgid "PackageRegistry|%{name} version %{version} was first created %{datetime}"
-msgstr ""
+msgstr "%{name} верÑÑ–Ñ %{version} була Ñтворена вперше %{datetime}"
msgid "PackageRegistry|Add Conan Remote"
msgstr ""
@@ -34305,6 +34987,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr "Ðазва заÑтоÑунку: %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34405,7 +35090,7 @@ msgid "PackageRegistry|Delete Package Version"
msgstr "Видалити верÑÑ–ÑŽ пакету"
msgid "PackageRegistry|Delete asset"
-msgstr ""
+msgstr "Видалити реÑурÑ"
msgid "PackageRegistry|Delete package"
msgstr "Видалити пакет"
@@ -34435,7 +35120,7 @@ msgid "PackageRegistry|Deleting this package while request forwarding is enabled
msgstr ""
msgid "PackageRegistry|Duplicate packages"
-msgstr ""
+msgstr "Дублювати пакети"
msgid "PackageRegistry|Enforce %{packageType} setting for all subgroups"
msgstr "ПримуÑово %{packageType} Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… підгруп"
@@ -34515,6 +35200,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr "ОÑтаннє Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ %{dateTime}"
@@ -34576,6 +35264,12 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr "Пакет оновлено через коміт %{link} в гілці %{branch}, побудований через конвеєр %{pipeline}та опублікований в реєÑÑ‚Ñ€ %{datetime}"
@@ -34600,6 +35294,9 @@ msgstr "Команда pip"
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34610,12 +35307,15 @@ msgid "PackageRegistry|Published by %{author}, %{date}"
msgstr ""
msgid "PackageRegistry|Published to %{projectName} by %{author}, %{date}"
-msgstr ""
+msgstr "Опубліковано %{projectName} від %{author}, %{date}"
msgid "PackageRegistry|Published to %{projectName}, %{date}"
msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
+msgstr "Опубліковано до реєÑтру пакунків %{project} %{datetime}"
+
+msgid "PackageRegistry|Push protected up to access level"
msgstr ""
msgid "PackageRegistry|PyPI"
@@ -34684,6 +35384,9 @@ msgstr "Ðа жаль, немає результатів, Ñкі відповіÐ
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34720,6 +35423,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ пакет"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr "Коли пакет із такою ж назвою та верÑією завантажуєтьÑÑ Ð´Ð¾ реєÑтру, до пакета додаєтьÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ реÑурÑів. Щоб заощадити міÑце, зберігайте лише найновіші реÑурÑи."
@@ -34861,6 +35567,9 @@ msgstr "Парольна Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð½ÐµÐ´Ð¾Ñтупна."
msgid "Password confirmation"
msgstr "ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "Пароль змінено уÑпішно"
@@ -34868,16 +35577,16 @@ msgid "Password was successfully updated. Please sign in again."
msgstr ""
msgid "PasswordPrompt|Confirm password"
-msgstr ""
+msgstr "Підтвердити пароль"
msgid "PasswordPrompt|Confirm password to continue"
msgstr ""
msgid "PasswordPrompt|Password is required"
-msgstr ""
+msgstr "Потрібен пароль"
msgid "PasswordPrompt|Please enter your password to confirm"
-msgstr ""
+msgstr "Будь лаÑка, введіть ваш пароль Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ"
msgid "Passwords should be unique and not used for any other sites or services."
msgstr "Паролі повинні бути унікальними Ñ– не викориÑтовуватиÑÑ Ð´Ð»Ñ Ð±ÑƒÐ´ÑŒ-Ñких інших Ñайтів або ÑервіÑів."
@@ -34895,7 +35604,7 @@ msgid "Password|requires at least one lowercase letter"
msgstr ""
msgid "Password|requires at least one number"
-msgstr ""
+msgstr "потрібно принаймні одне чиÑло"
msgid "Password|requires at least one symbol character"
msgstr ""
@@ -35008,6 +35717,9 @@ msgstr "Виконуйте перевірку коду та покращуйте
msgid "Perform common operations on GitLab project"
msgstr "Виконати звичайні операції на проєкті GitLab"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "ÐžÐ¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚Ñ–"
@@ -35152,6 +35864,9 @@ msgstr "Ваш проєкт %{projectName} не входить до групи"
msgid "Phone"
msgstr "Телефон"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35569,6 +36284,30 @@ msgstr "Веб-IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "Конвеєр: %{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35629,12 +36368,6 @@ msgstr "Конвеєри Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… змін ÑпричинÑÑŽÑ‚ÑŒ віÐ
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ñ–Ð² Ð´Ð»Ñ \"%{project_name}\" уÑпішно оновлено."
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr "\"Hello world\" з GitLab CI"
@@ -35648,22 +36381,19 @@ msgid "Pipelines|Build with confidence"
msgstr "Виконуйте збірки із впевненіÑÑ‚ÑŽ"
msgid "Pipelines|By revoking a trigger you will break any processes making use of it. Are you sure?"
-msgstr ""
+msgstr "Відкликавши тригер, ви перервете вÑÑ– процеÑи, Ñкі його викориÑтовують. Ви впевнені?"
msgid "Pipelines|CI lint"
msgstr "Перевірка конфігурації"
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
-msgstr ""
+msgstr "Дочірній конвеєр (%{linkStart}батьківÑький%{linkEnd})"
msgid "Pipelines|Clear runner caches"
msgstr "ОчиÑтити кеш раннер"
msgid "Pipelines|Continuous integration and deployment template to test and deploy your %{name} project."
-msgstr ""
+msgstr "Шаблон безперервної інтеграції та Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚ÐµÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проєкту %{name}."
msgid "Pipelines|Copy trigger token"
msgstr "Скопіювати токен тригера"
@@ -35684,7 +36414,7 @@ msgid "Pipelines|Editor"
msgstr "Редактор"
msgid "Pipelines|Failed to update. Please reload page to update the list of artifacts."
-msgstr ""
+msgstr "Помилка оновленнÑ. Будь лаÑка, перезавантажте Ñторінку, щоб оновити ÑпиÑок артефактів."
msgid "Pipelines|Full configuration"
msgstr "Повна конфігураціÑ"
@@ -35693,31 +36423,31 @@ msgid "Pipelines|Full configuration is view only"
msgstr "Повна ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð´Ð¾Ñтупна лише Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду"
msgid "Pipelines|Get familiar with GitLab CI syntax by setting up a simple pipeline running a \"Hello world\" script to see how it runs, explore how CI/CD works."
-msgstr ""
+msgstr "ОзнайомтеÑÑŒ з ÑинтакÑиÑом GitLab CI шлÑхом Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñтого конвеєра, Ñкий виконує Ñкрипт \"Привіт Ñвіт\", щоб побачити Ñк він виконуєтьÑÑ, доÑлідити Ñк працює CI/CD"
msgid "Pipelines|Get started with GitLab CI/CD"
msgstr "Розпочати роботу з GitLab CI/CD"
msgid "Pipelines|GitLab CI/CD can automatically build, test, and deploy your code. Let GitLab take care of time consuming tasks, so you can spend more time creating."
-msgstr ""
+msgstr "GitLab CI/CD може автоматично збирати, теÑтувати та розгортати ваш код. Дозвольте GitLab подбати про трудоміÑткі завданнÑ, щоб ви могли приділÑти більше чаÑу творчоÑÑ‚Ñ–."
msgid "Pipelines|Go to the pipeline editor"
msgstr "Перейти до редактора конвеєрів"
msgid "Pipelines|If you are unsure, ask a project maintainer to review it for you."
-msgstr ""
+msgstr "Якщо ви не впевнені, попроÑÑ–Ñ‚ÑŒ керівника проєкту переглÑнути його Ð´Ð»Ñ Ð²Ð°Ñ."
msgid "Pipelines|If you are unsure, please ask a project maintainer to review it for you."
-msgstr ""
+msgstr "Якщо ви не впевнені, будь лаÑка, попроÑÑ–Ñ‚ÑŒ керівника проєкту переглÑнути його."
msgid "Pipelines|It is recommended the code is reviewed thoroughly before running this pipeline with the parent project's CI resource."
-msgstr ""
+msgstr "Рекомендовано переглÑнути код перед запуÑком цього конвеєра зі реÑурÑом CI проєкту."
msgid "Pipelines|Last Used"
msgstr "ОÑтанній викориÑтаний"
msgid "Pipelines|Learn the basics of pipelines and .yml files"
-msgstr ""
+msgstr "ДізнайтеÑÑ Ð¿Ñ€Ð¾ оÑнови конвеєрів та .yml файлів"
msgid "Pipelines|Lint"
msgstr "Перевірка конфігурації (Lint)"
@@ -35728,6 +36458,9 @@ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ñ–Ð²"
msgid "Pipelines|Loading pipelines"
msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ñ–Ð²"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr "Мігрувати до GitLab CI/CD від Jenkins"
+
msgid "Pipelines|More Information"
msgstr "Більше інформації"
@@ -35747,13 +36480,13 @@ msgid "Pipelines|Project cache successfully reset."
msgstr "Кеш проєкту уÑпішно очищено."
msgid "Pipelines|Ready to set up CI/CD for your project?"
-msgstr ""
+msgstr "Готові налаштувати CI/CD Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проєкту?"
msgid "Pipelines|Rebasing creates a pipeline that runs code originating from a forked project merge request. Consequently there are potential security implications, such as the exposure of CI variables."
msgstr ""
msgid "Pipelines|Retry %{jobName} Job"
-msgstr ""
+msgstr "Повторити Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ %{jobName}"
msgid "Pipelines|Revoke trigger"
msgstr "Відкликати тригер"
@@ -35764,17 +36497,23 @@ msgstr "Заплановано"
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "Помилка при очищенні кеша раннерів."
+msgid "Pipelines|Start with a migration plan"
+msgstr "Розпочати з плану міграції"
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr "СкориÑтайтеÑÑ Ð¿ÐµÑ€ÐµÐ²Ð°Ð³Ð°Ð¼Ð¸ проÑтих, маÑштабованих конвеєрів Ñ– функцій із підтримкою CI/CD. Ви можете переглÑдати результати інтеграції, ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸, теÑти, Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐºÐ¾Ð´Ñƒ та інше безпоÑередньо в запитах на злиттÑ!"
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
-msgstr ""
+msgstr "У проÑторі імен %%{namespace_name} залишилоÑÑ %{percentage}%% або менше хвилин конвеєра Ñпільного запуÑку. ПіÑÐ»Ñ Ð¹Ð¾Ð³Ð¾ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ буде запущено жодного нового Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ конвеєра у його проєктах."
msgid "Pipelines|The %{namespace_name} namespace has exceeded its pipeline minutes quota. Buy additional pipeline minutes, or no new jobs or pipelines in its projects will run."
msgstr "ПроÑÑ‚Ñ–Ñ€ імен %{namespace_name} перевищив квоту хвилин конвеєра. Купуйте додаткові хвилини конвеєра, інакше у проєктах цього проÑтору імен не буде запущено нові Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ конвеєри."
msgid "Pipelines|The CI configuration was not loaded, please try again."
-msgstr ""
+msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ CI не була завантажена, будь лаÑка, Ñпробуйте ще раз."
msgid "Pipelines|The GitLab CI configuration could not be updated."
-msgstr ""
+msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ GitLab CI не може бути оновлена."
msgid "Pipelines|There are currently no finished pipelines."
msgstr "Ð’ даний Ñ‡Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” завершених конвеєрів."
@@ -35783,10 +36522,10 @@ msgid "Pipelines|There are currently no pipelines."
msgstr "Ð’ даний Ñ‡Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” конвеєрів."
msgid "Pipelines|There was a problem with loading the pipeline data."
-msgstr ""
+msgstr "Виникла проблема із завантаженнÑм даних конвеєра."
msgid "Pipelines|There was an error fetching the pipelines."
-msgstr ""
+msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ñ–Ð² ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
msgid "Pipelines|There was an error fetching the pipelines. Try again in a few moments or contact your support team."
msgstr "Помилка при отриманні конвеєрів. Спробуйте знову через декілька хвилин, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки."
@@ -35801,22 +36540,22 @@ msgid "Pipelines|This GitLab CI configuration is invalid: %{reason}. %{linkStart
msgstr "Ð¦Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ GitLab CI недійÑна: %{reason}. %{linkStart}ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ%{linkEnd}"
msgid "Pipelines|This GitLab CI configuration is valid."
-msgstr ""
+msgstr "Ð¦Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ GitLab CI дійÑна."
msgid "Pipelines|This pipeline is stuck"
-msgstr ""
+msgstr "Цей конвеєр заÑÑ‚Ñ€Ñг"
msgid "Pipelines|This pipeline ran on the contents of the merge request combined with the contents of all other merge requests queued for merging into the target branch."
-msgstr ""
+msgstr "Цей конвеєр працював із вміÑтом цього запиту на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð² поєднанні з вміÑтом уÑÑ–Ñ… інших запитів на злиттÑ, поÑтавлених у чергу Ð´Ð»Ñ Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð² цільову гілку."
msgid "Pipelines|This pipeline ran on the contents of the merge request combined with the contents of the target branch."
-msgstr ""
+msgstr "Цей конвеєр працював із вміÑтом цього запиту на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð² поєднанні з вміÑтом цільової гілки."
msgid "Pipelines|This pipeline ran on the contents of the merge request's source branch, not the target branch."
-msgstr ""
+msgstr "Цей конвеєр працює на вміÑÑ‚Ñ– гілки-джерела запиту на злиттÑ, а не цільової гілки."
msgid "Pipelines|This pipeline will run code originating from a forked project merge request. This means that the code can potentially have security considerations like exposing CI variables."
-msgstr ""
+msgstr "Цей конвеєр виконуватиме код, отриманий із запиту на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñƒ з форком. Це означає, що код потенційно може мати проблеми з безпекою, наприклад, розкривати змінні CI."
msgid "Pipelines|This project is not currently set up to run pipelines."
msgstr "Цей проєкт в даний Ñ‡Ð°Ñ Ð½Ðµ налаштований Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку конвеєрів."
@@ -35831,10 +36570,10 @@ msgid "Pipelines|Total number of jobs for the pipeline"
msgstr "Загальна кількіÑÑ‚ÑŒ завдань Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ð°"
msgid "Pipelines|Trigger user has insufficient permissions to project"
-msgstr ""
+msgstr "КориÑтувач тригера має недоÑтатні дозволи Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñƒ"
msgid "Pipelines|Try again in a few moments or contact your support team."
-msgstr ""
+msgstr "Повторіть Ñпробу за декілька хвилин або звернітьÑÑ Ð´Ð¾ Ñвоєї Ñлужби підтримки."
msgid "Pipelines|Try test template"
msgstr "Спробуйте теÑтовий шаблон"
@@ -35843,7 +36582,7 @@ msgid "Pipelines|Unable to create pipeline"
msgstr "Ðе вдалоÑÑ Ñтворити конвеєр"
msgid "Pipelines|Unable to validate CI/CD configuration. See the %{linkStart}GitLab CI/CD troubleshooting guide%{linkEnd} for more details."
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ конфігурацію CI/CD. ПереглÑньте %{linkStart}поÑібник з уÑÑƒÐ½ÐµÐ½Ð½Ñ Ð½ÐµÑправноÑтей GitLab CI/CD%{linkEnd} Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації."
msgid "Pipelines|Use a sample %{codeStart}.gitlab-ci.yml%{codeEnd} template file to explore how CI/CD works."
msgstr "ВикориÑтовуйте зразок шаблону %{codeStart}.gitlab-ci.yml%{codeEnd}, щоб дізнатиÑÑ, Ñк працює CI/CD."
@@ -35864,19 +36603,19 @@ msgid "Pipelines|Visualize"
msgstr "ВізуалізаціÑ"
msgid "Pipelines|We'll continuously validate your pipeline configuration. The validation results will appear here."
-msgstr ""
+msgstr "Ми поÑтійно перевірÑємо вашу конфігурацію конвеєра. Результати перевірки з'ÑвлÑÑ‚ÑŒÑÑ Ñ‚ÑƒÑ‚."
msgid "Pipelines|You should review the code thoroughly before running this pipeline with the parent project's CI/CD resources."
-msgstr ""
+msgstr "Ви повинні ретельно переглÑнути код, перш ніж запуÑкати цей конвеєр з реÑурÑами CI/CD батьківÑького проєкту."
msgid "Pipelines|You will see a maximum of 100 jobs in this list. To view all failed jobs, %{linkStart}go to the details page%{linkEnd} of this pipeline."
-msgstr ""
+msgstr "Ви побачите макÑимум 100 завдань в цьому ÑпиÑку. Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду вÑÑ–Ñ… невдалих завдань, %{linkStart}перейдіть на Ñторінку подробиць%{linkEnd} цього конвеєра."
msgid "Pipelines|Your changes have been successfully committed. Now redirecting to the new merge request page."
-msgstr ""
+msgstr "Ваші зміни було уÑпішно закомічено. Зараз перенаправлÑєтьÑÑ Ð½Ð° нову Ñторінку запиту на злиттÑ."
msgid "Pipelines|created"
-msgstr ""
+msgstr "Ñтворено"
msgid "Pipelines|error"
msgstr "помилка"
@@ -35897,7 +36636,7 @@ msgid "Pipelines|merge train"
msgstr ""
msgid "Pipelines|merged results"
-msgstr ""
+msgstr "об’єднані результати"
msgid "Pipelines|stuck"
msgstr "заÑÑ‚Ñ€Ñг"
@@ -35912,7 +36651,7 @@ msgid "Pipeline|Branch name"
msgstr "Ім'Ñ Ð³Ñ–Ð»ÐºÐ¸"
msgid "Pipeline|Branches or tags could not be loaded."
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ гілки або теги."
msgid "Pipeline|Canceled"
msgstr "СкаÑовано"
@@ -35933,7 +36672,7 @@ msgid "Pipeline|Created by"
msgstr "Створено"
msgid "Pipeline|Creating pipeline."
-msgstr ""
+msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ð°."
msgid "Pipeline|Date"
msgstr "Дата"
@@ -35957,7 +36696,7 @@ msgid "Pipeline|Merged result pipeline"
msgstr "Конвеєр результату злиттÑ"
msgid "Pipeline|No failed jobs in this pipeline 🎉"
-msgstr ""
+msgstr "У цьому конвеєрі немає невдалих завдань 🎉"
msgid "Pipeline|Only the first 100 jobs per stage are displayed"
msgstr ""
@@ -35981,10 +36720,10 @@ msgid "Pipeline|Pipelines"
msgstr "Конвеєр"
msgid "Pipeline|Raw text search is not currently supported. Please use the available search tokens."
-msgstr ""
+msgstr "Пошук по необробленому текÑту наразі не підтримуєтьÑÑ. Будь лаÑка, викориÑтовуйте доÑтупні пошукові токени."
msgid "Pipeline|Run again"
-msgstr ""
+msgstr "ЗапуÑтити знову"
msgid "Pipeline|Run for branch name or tag"
msgstr "Виконати за назвою гілки або тегом"
@@ -36032,13 +36771,13 @@ msgid "Pipeline|Test coverage"
msgstr "ТеÑтове покриттÑ"
msgid "Pipeline|This change will decrease the overall test coverage if merged."
-msgstr ""
+msgstr "Ð¦Ñ Ð·Ð¼Ñ–Ð½Ð° зменшить загальне теÑтове Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñƒ разі злиттÑ."
msgid "Pipeline|This change will increase the overall test coverage if merged."
-msgstr ""
+msgstr "Ð¦Ñ Ð·Ð¼Ñ–Ð½Ð° збільшить загальне теÑтове Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñƒ разі злиттÑ."
msgid "Pipeline|This change will not change the overall test coverage if merged."
-msgstr ""
+msgstr "Ð¦Ñ Ð·Ð¼Ñ–Ð½Ð° не змінить загальне теÑтове Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñƒ разі злиттÑ."
msgid "Pipeline|This pipeline ran on the contents of the merge request combined with the contents of all other merge requests queued for merging into the target branch."
msgstr ""
@@ -36074,7 +36813,7 @@ msgid "Pipeline|You're about to stop pipeline #%{pipelineId}."
msgstr ""
msgid "Pipeline|api"
-msgstr ""
+msgstr "api"
msgid "Pipeline|for"
msgstr "ДлÑ"
@@ -36086,7 +36825,7 @@ msgid "Pipeline|merge train"
msgstr ""
msgid "Pipeline|merged results"
-msgstr ""
+msgstr "об’єднані результати"
msgid "Pipeline|on"
msgstr "в"
@@ -36182,7 +36921,7 @@ msgid "Please confirm your email address"
msgstr ""
msgid "Please contact an admin to create runners."
-msgstr ""
+msgstr "Будь лаÑка, звернітьÑÑ Ð´Ð¾ адмініÑтратора, щоб Ñтворити раннери."
msgid "Please contact your GitLab administrator if you think this is an error."
msgstr ""
@@ -36682,9 +37421,6 @@ msgstr "Попередній переглÑд кориÑного навантаÐ
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr "Попередні артефакти"
-
msgid "Previous commit"
msgstr "Попередній коміт"
@@ -36880,6 +37616,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36926,7 +37665,7 @@ msgid "ProductAnalytics|Month"
msgstr ""
msgid "ProductAnalytics|No projects found"
-msgstr ""
+msgstr "Ðе знайдено жодного проєкту"
msgid "ProductAnalytics|On what do you want to get insights?"
msgstr ""
@@ -36988,6 +37727,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -37108,8 +37850,8 @@ msgstr "Профіль"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
-msgstr "Рекомендації щодо Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽ"
+msgid "Profile image guidelines"
+msgstr ""
msgid "Profile page:"
msgstr ""
@@ -37474,8 +38216,8 @@ msgstr "Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача уÑпішно збережено"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
-msgstr "ÐдреÑа Ñайту"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "Кого ви предÑтавлÑєте або на кого працюєте."
@@ -37779,10 +38521,10 @@ msgid "ProjectList|Yours"
msgstr "Ваші"
msgid "ProjectOverview|Create new fork"
-msgstr ""
+msgstr "Створити новий форк"
-msgid "ProjectOverview|Forks"
-msgstr "Форки"
+msgid "ProjectOverview|Fork"
+msgstr "Форк"
msgid "ProjectOverview|Go to your fork"
msgstr "Перейти до вашого форку"
@@ -37808,11 +38550,26 @@ msgstr "Ви доÑÑгли Ñвого ліміту по кількоÑÑ‚Ñ– пр
msgid "ProjectOverview|You must sign in to star a project"
msgstr "Ви повинні увійти, щоб додати проєкт в обрані"
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "ID проєкту: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ проєкт"
+
+msgid "ProjectPage|Project settings"
+msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñƒ"
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr ""
@@ -38030,6 +38787,9 @@ msgstr "%{link_start}Які змінні Ñ Ð¼Ð¾Ð¶Ñƒ викориÑтовуваÑ
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr "Додаткові параметри"
@@ -38117,9 +38877,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "Ðалаштувати значки цього проєкту."
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -38237,6 +38994,9 @@ msgstr "Залиште порожнім, щоб викориÑтовувати Ñ
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¼, хто може бачити проєкт в каталозі публічного доÑтупу"
@@ -38282,6 +39042,9 @@ msgstr "Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾ лише тоді, коли гілка-Ð
msgid "ProjectSettings|Model experiments"
msgstr "Модель екÑпериментів."
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "Моніторинг"
@@ -38699,29 +39462,12 @@ msgstr ""
msgid "Projects with write access"
msgstr "Проєкти з правом на запиÑ"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "ЧаÑто відвідувані"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñ–Ð²"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "Проєкти, Ñкі ви чаÑто відвідуєте, будуть відображені тут"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "Пошук по ваших проєктах"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "ЩоÑÑŒ пішло не так з нашого боку."
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "Ðа жаль, по вашоу запиту проєктів не знайдено"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "Ð¦Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” підтримки localStorage вашим браузером"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr "Перемикач режиму редагуваннÑ"
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "ДозволÑÑ” негайно зклонувати репозиторій цього проєкту. ПропуÑÑ‚Ñ–Ñ‚ÑŒ, Ñкщо ви плануєте розміÑтити тут вже Ñ–Ñнуючий репозиторій."
@@ -38756,6 +39502,9 @@ msgstr "Створити із шаблону"
msgid "ProjectsNew|Create new project"
msgstr "Створити новий проєкт"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr "Формат опиÑу"
@@ -38819,6 +39568,9 @@ msgstr "ЗапуÑтити CI/CD Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ репозитоÑ
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr "Рівень видимоÑÑ‚Ñ–"
@@ -39418,12 +40170,18 @@ msgstr "Затверджуючі оÑоби"
msgid "ProtectedEnvironment|Environment"
msgstr "Середовище"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ деталі цієї групи."
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr "Жодне Ñередовище в цьому проєкті не Ñ” захищеним."
@@ -39505,9 +40263,6 @@ msgstr "Що таке захищені теги?"
msgid "ProtectedTag|default"
msgstr "за умовчаннÑм"
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr "Ðадати відгук"
@@ -39553,6 +40308,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39998,9 +40756,6 @@ msgstr ""
msgid "Register now"
msgstr "ЗареєÑтруватиÑÑŒ зараз"
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr "ЗареєÑтрувати за допомогою двофакторного заÑтоÑунку"
@@ -40179,6 +40934,9 @@ msgstr "Включити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· анотованого те
msgid "Release|Learn more about releases"
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про релізи"
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -40225,7 +40983,7 @@ msgid "Remediations"
msgstr ""
msgid "Remember me"
-msgstr ""
+msgstr "Запам'Ñтати мене"
msgid "Remind later"
msgstr "Ðагадати пізніше"
@@ -40233,6 +40991,9 @@ msgstr "Ðагадати пізніше"
msgid "Remote object has no absolute path."
msgstr "Віддалений об’єкт не має абÑолютного шлÑху."
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "Видалити"
@@ -40293,6 +41054,9 @@ msgstr ""
msgid "Remove due date"
msgstr "Видалити заплановану дату завершеннÑ"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -40395,6 +41159,9 @@ msgstr "Видалити кориÑтувача з групи"
msgid "Remove user from project"
msgstr "Видалити кориÑтувача з проєкту"
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr "Видалено"
@@ -40473,6 +41240,9 @@ msgstr "ВидалÑÑ” вÑÑ– мітки."
msgid "Removes an issue from an epic."
msgstr "ВидалÑÑ” задачу із епіка."
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40530,9 +41300,6 @@ msgstr "Повторне Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐµÐ¿Ñ–ÐºÑƒ"
msgid "Reopen milestone"
msgstr "Повторне Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐµÑ‚Ð°Ð¿Ñƒ"
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr "Повторно відкрити %{quick_action_target}"
@@ -40599,9 +41366,6 @@ msgstr "ВідповіÑти на коментар"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "ВідповіÑти на це електронне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ %{view_it_on_gitlab}."
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr "ВідповіÑти…"
@@ -41052,6 +41816,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr "Вимагати додаткової автентифікації Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтративних завдань."
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -41117,7 +41884,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -41186,9 +41953,6 @@ msgstr "Вирішити конфлікти у гілці-джерелі"
msgid "Resolve locally"
msgstr "Вирішити локально"
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr "Закрити обговореннÑ"
@@ -41312,13 +42076,6 @@ msgstr "ПерезапуÑтити це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб
msgid "Retry verification"
msgstr "Повторити перевірку"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "Показати значеннÑ"
-msgstr[1] "Показати значеннÑ"
-msgstr[2] "Показати значень"
-msgstr[3] "Показати значень"
-
msgid "Reveal values"
msgstr "Показати значеннÑ"
@@ -41365,6 +42122,15 @@ msgstr[1] "%d ОглÑдача"
msgstr[2] "%d ОглÑдачів"
msgstr[3] "%d ОглÑдачів"
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr "ОглÑдачі"
@@ -41425,9 +42191,6 @@ msgstr ""
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41450,7 +42213,7 @@ msgid "Run CI/CD pipelines with Jenkins."
msgstr ""
msgid "Run again"
-msgstr ""
+msgstr "ЗапуÑтити знову"
msgid "Run housekeeping"
msgstr "ЗапуÑтити очищеннÑ"
@@ -41474,7 +42237,7 @@ msgid "Runner"
msgstr "Раннер"
msgid "Runner API"
-msgstr ""
+msgstr "API раннера"
msgid "Runner tokens"
msgstr "Токени раннера"
@@ -41577,7 +42340,7 @@ msgid "Runners|Add notes such as the runner owner or what it should be used for.
msgstr ""
msgid "Runners|Add tags to specify jobs that the runner can run. %{helpLinkStart}Learn more.%{helpLinkEnd}"
-msgstr ""
+msgstr "Додайте теги, щоб вказати завданнÑ, Ñкі ранер може виконувати. %{helpLinkStart}ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.%{helpLinkEnd}"
msgid "Runners|Admin area › Runners"
msgstr ""
@@ -41685,31 +42448,31 @@ msgid "Runners|Create a group runner"
msgstr "Створити груповий раннер"
msgid "Runners|Create a group runner to generate a command that registers the runner with all its configurations."
-msgstr ""
+msgstr "Створити груповий раннер Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— команди, Ñка реєÑтрує раннер з уÑіма його конфігураціÑми."
msgid "Runners|Create a project runner"
-msgstr ""
+msgstr "Створити раннер проєкту"
msgid "Runners|Create a project runner to generate a command that registers the runner with all its configurations."
msgstr ""
msgid "Runners|Create an instance runner"
-msgstr ""
+msgstr "Створити раннера інÑтанÑу"
msgid "Runners|Create an instance runner to generate a command that registers the runner with all its configurations."
msgstr "Створіть інÑÑ‚Ð°Ð½Ñ Ñ€Ð°Ð½Ð½ÐµÑ€Ð°, щоб Ñтворити команду, Ñка зареєÑтрує раннер з уÑіма його конфігураціÑми."
msgid "Runners|Create runner"
-msgstr ""
+msgstr "Створити раннер"
msgid "Runners|Created %{timeAgo}"
msgstr "Створено %{timeAgo}"
msgid "Runners|Created by %{user}"
-msgstr ""
+msgstr "Створено %{user}"
msgid "Runners|Created by %{user} %{timeAgo}"
-msgstr ""
+msgstr "Створено %{user} %{timeAgo}"
msgid "Runners|Delete"
msgstr "Видалити"
@@ -41761,7 +42524,7 @@ msgid "Runners|Enable stale runner cleanup?"
msgstr "Увімкнути Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ñтарілого раннер?"
msgid "Runners|Enter the job timeout in seconds. Must be a minimum of 600 seconds."
-msgstr ""
+msgstr "Введіть Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð² Ñекундах. Повинно бути не менше 600 Ñекунд."
msgid "Runners|Environment"
msgstr "Середовище"
@@ -41775,6 +42538,9 @@ msgstr "ІÑнуючі раннери не впливають. Щоб дозво
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr "Це не вплине на Ñ–Ñнуючих раннерів. Щоб дозволити реєÑтрацію раннерів Ð´Ð»Ñ Ð²ÑÑ–Ñ… проєктів, увімкніть це Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð² облаÑÑ‚Ñ– адмініÑтратора в розділі Параметри &gt; CI/CD."
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41818,7 +42584,7 @@ msgid "Runners|If both settings are disabled, new runners cannot be registered."
msgstr "Якщо обидва Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾, нові раннери не можуть бути зареєÑтровані."
msgid "Runners|In GitLab Runner 15.6, the use of registration tokens and runner parameters in the 'register' command was deprecated. They have been replaced by authentication tokens. %{linkStart}How does this impact my current registration workflow?%{linkEnd}"
-msgstr ""
+msgstr "У GitLab Runner 15.6 викориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð¾ÐºÐµÐ½Ñ–Ð² реєÑтрації та параметрів раннера в команді 'register' було ÑкаÑовано. Їх замінено на токени автентифікації. %{linkStart}Як це впливає на мій поточний робочий Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ€ÐµÑ”Ñтрації?%{linkEnd}"
msgid "Runners|Install GitLab Runner"
msgstr ""
@@ -41851,7 +42617,7 @@ msgid "Runners|Maintenance note"
msgstr "Примітка до обÑлуговуваннÑ"
msgid "Runners|Make sure the runner is online and available to run jobs (not paused). Jobs display here when the runner picks them up."
-msgstr ""
+msgstr "ПереконайтеÑÑ, що раннер Ñ” онлайн та доÑтупним Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку завдань (не призупиненим). Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶Ð°Ñ‚Ð¸Ð¼ÑƒÑ‚ÑŒÑÑ Ñ‚ÑƒÑ‚, коли раннер Ñ—Ñ… підбиратиме."
msgid "Runners|Manually verify that the runner is available to pick up jobs."
msgstr ""
@@ -41963,10 +42729,10 @@ msgstr "Призупинено"
msgid "Runners|Permanently delete %d runner"
msgid_plural "Runners|Permanently delete %d runners"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Ðазавжди видалити %d раннер"
+msgstr[1] "Ðазавжди видалити %d раннери"
+msgstr[2] "Ðазавжди видалити %d раннерів"
+msgstr[3] "Ðазавжди видалити %d раннерів"
msgid "Runners|Permanently delete runner"
msgid_plural "Runners|Permanently delete %d runners"
@@ -42053,6 +42819,9 @@ msgstr "РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ñ€Ð°Ð½Ð½ÐµÑ€Ð°"
msgid "Runners|Runner Registration token"
msgstr "Токен реєÑтрації Раннера"
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr "Раннер призначено Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñƒ."
@@ -42165,7 +42934,7 @@ msgid "Runners|Select your preferred runner, then choose the capacity for the ru
msgstr "Виберіть потрібний вам раннер, а потім виберіть ємніÑÑ‚ÑŒ Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾ в конÑолі AWS CloudFormation."
msgid "Runners|Separate multiple tags with a comma. For example, %{example}."
-msgstr ""
+msgstr "Розділіть кілька тегів комами. Ðаприклад, %{example}."
msgid "Runners|Shared runners are disabled in the group settings."
msgstr ""
@@ -42173,7 +42942,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -42182,14 +42951,11 @@ msgstr "Показати тільки уÑпадковані"
msgid "Runners|Show runner installation and registration instructions"
msgstr "Показати інÑтрукції Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð° реєÑтрації раннер"
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr "Проблема при видаленні. Будь лаÑка, оновіть Ñторінку, щоб Ñпробувати знову."
msgid "Runners|Something went wrong while fetching runner data."
-msgstr ""
+msgstr "ЩоÑÑŒ пішло не так під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… про раннерів."
msgid "Runners|Something went wrong while fetching the tags suggestions"
msgstr ""
@@ -42281,7 +43047,7 @@ msgid "Runners|This registration process is only supported in GitLab Runner 15.1
msgstr "Цей Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ€ÐµÑ”Ñтрації підтримуєтьÑÑ Ð»Ð¸ÑˆÐµ в GitLab Runner 15.10 або пізніше"
msgid "Runners|This runner has not run any jobs"
-msgstr ""
+msgstr "Цей раннер не виконував жодного завданнÑ"
msgid "Runners|This runner has not run any jobs."
msgstr "Цей раннер не має жодного завданнÑ."
@@ -42398,7 +43164,7 @@ msgid "Runners|You may lose access to the runner token if you leave this page."
msgstr ""
msgid "Runners|You've created a new runner!"
-msgstr ""
+msgstr "Ви Ñтворили новий раннер!"
msgid "Runners|active"
msgstr "активні"
@@ -42415,9 +43181,24 @@ msgstr "проєкт"
msgid "Runners|shared"
msgstr "Ñпільний"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "ВиконуєтьÑÑ"
@@ -42521,7 +43302,7 @@ msgid "SSH keys with the following fingerprints are scheduled to expire soon. Ex
msgstr ""
msgid "SSH keys with the following fingerprints have expired and can no longer be used:"
-msgstr ""
+msgstr "Термін дії ключів SSH із такими відбитками закінчивÑÑ, Ñ– Ñ—Ñ… більше не можна викориÑтовувати:"
msgid "SSH public key"
msgstr "Відкритий SSH-ключ"
@@ -42589,9 +43370,18 @@ msgstr "ЗбереженнÑ"
msgid "Saving project."
msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñƒ."
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42610,6 +43400,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42631,21 +43424,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42670,6 +43481,9 @@ msgstr "Вибрати проÑтори імен"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "Виберіть профіль Ñканера"
@@ -42679,6 +43493,9 @@ msgstr "Вибрати профіль Ñайту"
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42694,6 +43511,9 @@ msgstr "агент"
msgid "ScanExecutionPolicy|branch"
msgstr "гілка"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42754,9 +43574,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42808,34 +43625,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42862,15 +43670,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42883,7 +43685,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -43036,6 +43856,9 @@ msgstr "Пошук за іменем"
msgid "Search files"
msgstr "Пошук файлів"
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr "Пошук проÑтору імен"
@@ -43115,7 +43938,7 @@ msgid "Search your projects"
msgstr "Пошук у ваших проєктах"
msgid "Search your%{visibility}projects"
-msgstr ""
+msgstr "Пошук у ваших проєктах%{visibility}"
msgid "Search%{visibility}projects"
msgstr "Пошук%{visibility}проєктів"
@@ -43251,6 +44074,9 @@ msgstr "ВиÑÐ²Ð»ÐµÐ½Ð½Ñ Ñекретів"
msgid "Secret token"
msgstr "Секретний токен"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -43260,6 +44086,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -43317,6 +44173,9 @@ msgstr "Панель безпеки"
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -43404,8 +44263,8 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "Увімкніть Ð½Ð°Ð²Ñ‡Ð°Ð½Ð½Ñ Ð· безпеки, щоб допомогти вашим розробникам дізнатиÑÑ Ñк виправити вразливоÑÑ‚Ñ–. Розробники можуть переглÑдати Ð½Ð°Ð²Ñ‡Ð°Ð½Ð½Ñ Ð· безпеки від вибраних оÑвітніх провайдерів, що ÑтоÑуютьÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ñ— вразливоÑÑ‚Ñ–."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
msgid "SecurityConfiguration|Enabled"
msgstr ""
@@ -43506,6 +44365,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -43515,6 +44377,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -43533,12 +44404,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr "Дії"
msgid "SecurityOrchestration|Add action"
msgstr "Додати дію"
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -43551,6 +44428,9 @@ msgstr "ПіÑÐ»Ñ Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ, інформа
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr "Ð’ÑÑ– джерела"
@@ -43581,6 +44461,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43593,10 +44476,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43605,6 +44488,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43677,6 +44566,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ образи."
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43689,7 +44581,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43704,6 +44599,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43719,6 +44617,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43746,6 +44647,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43774,6 +44678,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr "Політики"
@@ -43861,12 +44768,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43900,6 +44813,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43933,6 +44852,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -44017,12 +44942,27 @@ msgstr "YAML"
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -44059,6 +44999,9 @@ msgstr "гілки"
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -44245,6 +45188,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr "Ðе має задачі"
@@ -44296,6 +45242,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr "Має задачу"
@@ -44311,12 +45260,6 @@ msgstr "Образ"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr "Задача"
@@ -44453,6 +45396,9 @@ msgstr "Ð’Ñе ще виÑвлено"
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -44552,6 +45498,18 @@ msgstr "Вирішити проблему за допомогою тренінг
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr "Див. приклад Ñторінки результатів DevOps у нашій документації."
@@ -44819,6 +45777,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "ÐадіÑлати звіт"
@@ -44981,9 +45942,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -45023,6 +45990,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -45083,7 +46056,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -45092,6 +46068,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -45290,9 +46272,6 @@ msgstr "Параметри CI/CD"
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -45308,6 +46287,9 @@ 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."
msgstr "Ðалаштуйте Ñвій проєкт, щоб автоматично відправлÑти/отримувати зміни з іншого репозиторію. Гілки, теги та коміти автоматично будуть ÑинхронізуватиÑÑ."
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "Ð’Ñтановити вагу"
@@ -45386,22 +46368,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Settings"
msgstr "Параметри"
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "СерйозніÑÑ‚ÑŒ"
@@ -45459,27 +46452,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr "Коротке ім'Ñ"
@@ -45523,7 +46495,7 @@ msgid "Show archived projects only"
msgstr "Показувати лише архівовані проєкти"
msgid "Show changes"
-msgstr ""
+msgstr "Показати зміни"
msgid "Show closed epics"
msgstr ""
@@ -45745,9 +46717,6 @@ msgstr "Увійти за допомогою Ñмарт-карти"
msgid "Sign in via 2FA code"
msgstr "Увійти за допомогою коду двофакторної автентифікції"
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr "Увійти за допомогою єдиного входу"
@@ -45796,20 +46765,14 @@ msgstr "URL-адреÑа Ñторінки виходу"
msgid "Sign-up restrictions"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ€ÐµÑ”Ñтрації"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "ÐатиÑнувши %{button_text} або зареєÑтрувавшиÑÑŒ через третю Ñторону, ви приймаєте Умови викориÑÑ‚Ð°Ð½Ð½Ñ GitLab%{link_start} Ñ– погоджуєтеÑÑ Ð· Політикою конфіденційноÑÑ‚Ñ– та Політикою файлів cookie%{link_end}"
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "ÐатиÑнувши %{button_text} або зареєÑтрувавшиÑÑŒ через третю Ñторону, ви приймаєте%{link_start} Умови викориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð° погоджуєтеÑÑ Ð· Політикою конфіденційноÑÑ‚Ñ– та Політикою щодо файлів cookie%{link_end}"
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "Увійшовши, ви приймаєте %{link_start}Умови викориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð° погоджуєтеÑÑ Ð· Політикою конфіденційноÑÑ‚Ñ– та Політикою щодо файлів cookie%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr ""
@@ -46108,6 +47071,9 @@ msgstr "Смарт-карта"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "Ðе вдалоÑÑ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ñмарт-карту: відÑутній заголовок в Ñертифікаті клієнта."
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr "Сніпет"
@@ -46165,6 +47131,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -46225,7 +47194,7 @@ msgstr ""
msgid "Something went wrong"
msgstr "ЩоÑÑŒ пішло не так"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -46370,22 +47339,22 @@ msgid "Something went wrong while resolving this discussion. Please try again."
msgstr "Помилка при завершенні обговореннÑ. Будь лаÑка, Ñпробуйте пізніше."
msgid "Something went wrong while setting %{issuableType} %{dateType} date."
-msgstr ""
+msgstr "ЩоÑÑŒ пішло не так під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ñ‚Ð¸ %{issuableType} %{dateType}."
msgid "Something went wrong while setting %{issuableType} confidentiality."
-msgstr ""
+msgstr "ЩоÑÑŒ пішло не так під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð´ÐµÐ½Ñ†Ñ–Ð¹Ð½Ð¾ÑÑ‚Ñ– %{issuableType}."
msgid "Something went wrong while setting %{issuableType} health status."
-msgstr ""
+msgstr "ЩоÑÑŒ пішло не так під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñтану Ð·Ð´Ð¾Ñ€Ð¾Ð²â€™Ñ %{issuableType}."
msgid "Something went wrong while setting %{issuableType} notifications."
-msgstr ""
+msgstr "ЩоÑÑŒ пішло не так під Ñ‡Ð°Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñповіщень %{issuableType}."
msgid "Something went wrong while setting %{issuableType} to-do item."
msgstr ""
msgid "Something went wrong while setting %{issuableType} weight."
-msgstr ""
+msgstr "ЩоÑÑŒ пішло не так під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð³Ð¸ %{issuableType}."
msgid "Something went wrong while stopping this environment. Please try again."
msgstr "Проблема при зупинці Ñередовища. Будь лаÑка, Ñпробуйте знову."
@@ -46567,9 +47536,6 @@ msgstr "ПопулÑрніÑÑ‚ÑŒ"
msgid "SortOptions|Priority"
msgstr "Пріоритет"
-msgid "SortOptions|Project"
-msgstr "Проєкт"
-
msgid "SortOptions|Recent last activity"
msgstr "Ðайновіша оÑÑ‚Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ–ÑÑ‚ÑŒ"
@@ -46582,8 +47548,8 @@ msgstr "Ðещодавно в обраних"
msgid "SortOptions|Size"
msgstr "Розмір"
-msgid "SortOptions|Sort by:"
-msgstr "Сортувати за:"
+msgid "SortOptions|Sort by"
+msgstr ""
msgid "SortOptions|Sort direction"
msgstr "ÐапрÑмок ÑортуваннÑ"
@@ -46603,12 +47569,6 @@ msgstr "Розпочатий нещодавно"
msgid "SortOptions|Title"
msgstr "Заголовок"
-msgid "SortOptions|Type"
-msgstr "Тип"
-
-msgid "SortOptions|Version"
-msgstr "ВерÑÑ–Ñ"
-
msgid "SortOptions|Weight"
msgstr "Вага"
@@ -46757,7 +47717,7 @@ msgid "Specify an email address regex pattern to identify default internal users
msgstr "Вкажіть шаблон адреÑи електронної пошти у виглÑді регулÑрного виразу Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб автоматично визначати внутрішніх кориÑтувачів."
msgid "Speed up your pipelines with Needs relationships"
-msgstr ""
+msgstr "ПриÑкорюйте Ñвої конвеєри за допомогою зв'Ñзків з потребами"
msgid "Spent at"
msgstr "Витрачено о"
@@ -46804,6 +47764,13 @@ msgstr "СтадіÑ:"
msgid "Standard"
msgstr "Стандарт"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Star labels to start sorting by priority."
msgstr "Додавайте мітки в обране, щоб Ñортувати за пріоритетом."
@@ -47104,9 +48071,6 @@ msgstr "Зупинити термінал"
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr "Зупинити імітуваннÑ"
-
msgid "Stop this environment"
msgstr "Зупинити це Ñередовище"
@@ -47188,9 +48152,6 @@ msgstr ""
msgid "Submit as spam"
msgstr "Позначити Ñк Ñпам"
-msgid "Submit feedback"
-msgstr "ÐадіÑлати відгук"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -47287,6 +48248,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47837,9 +48801,6 @@ msgstr "Перемкнути гілку"
msgid "Switch branch/tag"
msgstr "Перейти в гілку/тег"
-msgid "Switch to GitLab Next"
-msgstr "Перейти на GitLab Next"
-
msgid "Switch to plain text editing"
msgstr "Перейти до Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ текÑту"
@@ -48110,6 +49071,9 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] "Джерело"
@@ -48117,9 +49081,15 @@ msgstr[1] "Джерела"
msgstr[2] "Джерел"
msgstr[3] "Джерел"
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -48135,21 +49105,6 @@ msgstr "Цільовий шлÑÑ…"
msgid "Target branch"
msgstr "Цільова гілка"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -48172,7 +49127,7 @@ msgid "Tasks|%{complete_count} of %{total_count} %{checklist_item_noun} complete
msgstr "%{complete_count} з %{total_count} %{checklist_item_noun} завершено"
msgid "Tasks|%{complete_count}/%{total_count} %{checklist_item_noun}"
-msgstr ""
+msgstr "%{complete_count}/%{total_count} %{checklist_item_noun}"
msgid "Team"
msgstr "Команда"
@@ -48442,6 +49397,9 @@ msgstr "ТеÑÑ‚, Ñтворений штучним інтелектом"
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48533,7 +49491,7 @@ msgid "TestReports|Jobs"
msgstr "ЗавданнÑ"
msgid "TestReports|Learn how to upload pipeline test reports"
-msgstr ""
+msgstr "ДізнайтеÑÑ Ñк завантажити звіти про теÑÑ‚ конвеєрів"
msgid "TestReports|Learn more about pipeline test reports"
msgstr ""
@@ -48548,7 +49506,7 @@ msgid "TestReports|There are no test cases to display."
msgstr "Ðемає теÑтів Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ."
msgid "TestReports|There are no test reports for this pipeline"
-msgstr ""
+msgstr "Ð’ цьому конвеєрі немає теÑтових звітів"
msgid "TestReports|There are no test suites to show."
msgstr "Ðемає наборів теÑтів Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ."
@@ -48563,7 +49521,7 @@ msgid "TestReports|There was an error fetching the test suite."
msgstr ""
msgid "TestReports|You can configure your job to use unit test reports, and GitLab displays a report here and in the related merge request."
-msgstr ""
+msgstr "Ви можете налаштувати Ñвоє Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð²Ñ–Ñ‚Ñ–Ð² про юніт-теÑти, Ñ– GitLab відобразить звіт тут Ñ– у відповідному запиті на злиттÑ."
msgid "Tests"
msgstr "ТеÑти"
@@ -48638,6 +49596,9 @@ msgstr "Трекер задач — це міÑце, де можна додатÐ
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "Трекер задач — це міÑце, де можна додати речі, Ñкі потрібно покращити або розв’Ñзати в проєкті. Ви можете зареєÑтруватиÑÑ Ð°Ð±Ð¾ увійти, щоб Ñтворювати задачу в цьому проєкті."
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr "Ð†Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ Ñповіщень зі Slack заÑтаріла Ñ– буде видалена в наÑтупному випуÑку. Щоб продовжувати отримувати ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ñ– Slack, викориÑтовуйте заÑтоÑунок GitLab Ð´Ð»Ñ Slack. %{learn_more_link_start}ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ%{link_end}."
@@ -48662,6 +49623,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "Ð¦Ñ Ð³Ñ–Ð»ÐºÐ° Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ проєкту не має активної конфігурації конвеєра."
@@ -48680,9 +49647,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48722,17 +49686,23 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr "Дані в цьому конвеєрі занадто Ñтарі, щоб Ñ—Ñ… було предÑтавлено Ñк графік. Будь лаÑка, перевірте вкладку Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð´Ð¾Ñтупу до Ñ–Ñторії даних."
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "Дата, коли реліз буде готовий. Реліз із датою у майбутньому позначаєтьÑÑ Ñк %{linkStart}ÐаÑтупний реліз%{linkEnd}."
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr "Файл конфігурації CI/CD за замовчуваннÑм та шлÑÑ… Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… проєктів."
@@ -48911,10 +49881,10 @@ msgid "The latest artifacts created by jobs in the most recent successful pipeli
msgstr "ОÑтанні артефакти, Ñтворені завданнÑми в оÑтанніх уÑпішних конвеєрах, будуть зберігатиÑÑ."
msgid "The latest pipeline for this merge request did not succeed. The latest changes are unverified."
-msgstr ""
+msgstr "ОÑтанній конвеєр Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиту на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ вдавÑÑ. ОÑтанні зміни не перевірені."
msgid "The latest pipeline for this merge request has failed."
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити оÑтанній конвеєр Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиту на злиттÑ."
msgid "The license key is invalid."
msgstr ""
@@ -48985,6 +49955,9 @@ msgstr "Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ конфігурації CI/CD. ШлÑÑ… до корÐ
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "КількіÑÑ‚ÑŒ змін, Ñкі будуть отримувати від GitLab при клонуванні репозиторію. Менші Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ приÑкорити Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ð°. Ð’Ñтановіть в %{code_open}0%{code_close} або порожнє, щоб отримати вÑÑ– гілки Ñ– теґи Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ завданнÑ"
@@ -49123,6 +50096,9 @@ msgstr "Вказана вкладка недійÑна. Будь лаÑка, вÐ
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -49174,14 +50150,11 @@ msgstr "ВразливіÑÑ‚ÑŒ більше не виÑвлÑєтьÑÑ. ПерÐ
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr "ВразливіÑÑ‚ÑŒ більше не виÑвлÑєтьÑÑ. Перевірте, що цю вразливіÑÑ‚ÑŒ виправлено перед тим, Ñк змінювати ÑтатуÑ."
-msgid "There are currently no mirrored repositories."
-msgstr "Ðаразі немає віддзеркалених репозиторіїв."
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
-msgstr "Ñ–Ñнують конфлікти при злитті"
+msgid "There are currently no mirrored repositories."
+msgstr "Ðаразі немає віддзеркалених репозиторіїв."
msgid "There are no GPG keys associated with this account."
msgstr "Ðемає GPG ключів, пов’Ñзаних із цим обліковим запиÑом."
@@ -49351,6 +50324,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -49546,6 +50522,9 @@ msgstr "Ці приклади показують загальні методи Ð
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr "Ці Ñ–Ñнуючі проблеми мають подібні заголовки. Можливо, краще додати коментар до однієї з них заміÑÑ‚ÑŒ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ—."
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr "Ці раннери Ñ” Ñпільними Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñ–Ð² у цій групі."
@@ -49636,9 +50615,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "Цей блок поÑилаєтьÑÑ Ñам на Ñебе"
@@ -49675,6 +50660,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr "Цей коміт було підпиÑано підпиÑом %{strong_open}перевіреним%{strong_close}, а електронну пошту учаÑника перевірено на приналежніÑÑ‚ÑŒ тому ж кориÑтувачеві."
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "Цей коміт підпиÑано перевіреним підпиÑом іншого кориÑтувача."
@@ -49867,11 +50855,8 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr "Це журнал безпеки подій автентифікації, пов'Ñзаних з вашим обліковим запиÑом."
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
-msgstr ""
+msgstr "Це екÑпериментальна функціÑ, розроблена GitLab Incubation Engineering."
msgid "This is the highest peak of users on your installation since the license started."
msgstr ""
@@ -50014,12 +50999,6 @@ msgstr "Це може розкрити конфіденційну інформа
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Це означає, що ви не можете відправлÑти код, поки не Ñтворите порожній репозиторій або не імпортуєте Ñ–Ñнуючий."
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -50045,7 +51024,7 @@ msgid "This only applies to repository indexing operations."
msgstr ""
msgid "This page is hosted on GitLab pages but contains user-generated content and may contain malicious code. Do not accept unless you trust the author and source."
-msgstr ""
+msgstr "Ð¦Ñ Ñторінка розміщена на Ñторінках GitLab, але міÑтить кориÑтувацький контент Ñ– може міÑтити шкідливий код. Ðе завантажуйте, Ñкщо не довірÑєте автору та джерелу."
msgid "This page is unavailable because you are not allowed to read information across multiple projects."
msgstr "Ð¦Ñ Ñторінка недоÑтупна, тому що ви не можете переглÑдати інформацію по кількох проєктах."
@@ -50068,6 +51047,13 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "Цей Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð¸Ð´Ð°Ð»ÑÑ” репозиторій проєкту Ñ– вÑÑ– пов'Ñзані з ним реÑурÑи."
@@ -50078,7 +51064,7 @@ msgid "This project cannot be %{visibilityLevel} because the visibility of %{ope
msgstr ""
msgid "This project does not belong to a group and cannot make use of group runners."
-msgstr ""
+msgstr "Цей проєкт не належить до групи Ñ– не може викориÑтовувати групові раннери."
msgid "This project does not have %{service_desk_link_start}Service Desk%{service_desk_link_end} enabled, so the user who created the issue will no longer receive email notifications about new activity."
msgstr ""
@@ -50201,13 +51187,13 @@ msgid "This user has previously committed to the %{name} project."
msgstr ""
msgid "This user has the %{access} role in the %{name} project."
-msgstr ""
+msgstr "Цей кориÑтувач має роль %{access} у проєкті %{name}."
msgid "This user is currently exempt from identity verification. Remove the exemption using the button below."
msgstr ""
msgid "This user is the author of this %{noteable}."
-msgstr ""
+msgstr "Цей кориÑтувач Ñ” автором цього %{noteable}."
msgid "This user is the author of this %{workItemType}."
msgstr "Цей кориÑтувач Ñ” автором цього %{workItemType}."
@@ -50626,7 +51612,7 @@ msgid "Time|s"
msgstr "Ñекунд(а)"
msgid "Tip: Hover over a job to see the jobs it depends on to run."
-msgstr ""
+msgstr "Підказка: Ðаведіть курÑор на завданнÑ, щоб побачити завданнÑ, від Ñких воно залежить."
msgid "Tip: add a %{linkStart}CODEOWNERS%{linkEnd} to automatically add approvers based on file paths and file types."
msgstr ""
@@ -50715,9 +51701,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50764,6 +51747,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 до цього, перейдіть на Ñторінку налаштувань оригіналу проєкту, Ñтворіть файл екÑпорту та надішліть його Ñюди."
@@ -50869,7 +51855,7 @@ msgstr "ÐÐ°Ð³Ð°Ð´ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑпішно позначене Ñк викон
msgid "Today"
msgstr "Сьогодні"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50884,9 +51870,6 @@ msgstr "Будь-Ñка діÑ"
msgid "Todos|Any Type"
msgstr "Будь-Ñкий тип"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr "Ви шукаєте Ñправи, Ñкі потрібно виконати? ПодивітьÑÑ Ð½Ð° %{strongStart}%{openIssuesLinkStart}відкриті задачі%{openIssuesLinkEnd}%{strongEnd}, внеÑÑ–Ñ‚ÑŒ Ñвій внеÑок в %{strongStart}%{mergeRequestLinkStart}запит на злиттÑ%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, або згадайте когоÑÑŒ у коментарі, щоб автоматично призначити їм нову Ñправу Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-
msgid "Todos|Assigned"
msgstr "Призначено"
@@ -50944,6 +51927,9 @@ msgstr "Згадувано"
msgid "Todos|Merge request"
msgstr "Запит на злиттÑ"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50980,6 +51966,9 @@ msgstr "додано нагадуваннÑ"
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr "Згадані %{who}"
@@ -51022,8 +52011,8 @@ msgstr "Відкрити або закрити ÑпиÑок комітів"
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
-msgstr "Увімкнути/вимкнути Ñмайлики-нагороди"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr ""
@@ -51034,9 +52023,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr "Відкривати вікно довідки з комбінаціÑми клавіш"
-msgid "Toggle navigation"
-msgstr "Переключити навігацію"
-
msgid "Toggle project select"
msgstr ""
@@ -51052,11 +52038,11 @@ msgstr "Увімкнути/вимкнути панель продуктивноÑ
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
-msgstr "Увімкнено/вимкнено :%{name}: Ñмайлик-винагороду."
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr "Вмикає/вимикає %{name} Ñмайлик-нагороду."
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr ""
@@ -51097,18 +52083,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr "ОглÑд"
-
-msgid "TopNav|Go back"
-msgstr "ПовернутиÑÑ"
-
-msgid "TopNav|Switch to"
-msgstr "Перейти до"
-
-msgid "TopNav|Your dashboards"
-msgstr "Ваші панелі керуваннÑ"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "Тему %{source_topic} уÑпішно об'єднано з темою %{target_topic}."
@@ -51179,6 +52153,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "Загальний чаÑ, щоб перевірити вÑÑ– коміти/злиттÑ"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "Ð’Ñього кориÑтувачів"
@@ -51203,16 +52183,39 @@ msgstr ""
msgid "Tracing"
msgstr "ВідÑтеженнÑ"
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -51272,10 +52275,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -51410,27 +52413,6 @@ msgstr "У виглÑді дерева"
msgid "Trending"
msgstr "ПопулÑрні"
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -51446,28 +52428,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr "ПорівнÑти вÑÑ– плани"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51612,12 +52585,6 @@ msgstr "Вимкнути"
msgid "Turn on"
msgstr "Увімкнути"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr "Двофакторна автентифікаціÑ"
@@ -51664,7 +52631,7 @@ msgid "Type"
msgstr "Тип"
msgid "Type changed successfully."
-msgstr ""
+msgstr "Тип уÑпішно змінений."
msgid "Type to search"
msgstr "Введіть Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ"
@@ -51693,15 +52660,30 @@ msgstr "URL-адреÑа повинна бути закодована у відÑ
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr "URL-адреÑу інÑтанÑу Grafana, на Ñкий потрібно поÑилатиÑÑ Ð· пункту меню Панелі моніторингу Metrics."
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr "URL-адреÑа зовнішньої кінцевої точки перевірки Ñпаму"
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL або ідентифікатор запиту"
@@ -51867,9 +52849,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51945,8 +52936,8 @@ msgstr "Ðевідомий текÑÑ‚ відповіді"
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
-msgstr "Якщо інше не узгоджено з GitLab у пиÑьмовій формі, натиÑкаючи \"Завантажити ліцензію\", ви погоджуєтеÑÑ Ð· тим, що викориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ð°Ð¼Ð¸ програмного Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ GitLab регулюєтьÑÑ %{eula_link_start}Умовами Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ñлуг%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr ""
msgid "Unlimited"
msgstr "Без обмежень"
@@ -51973,7 +52964,7 @@ msgid "Unlock account"
msgstr ""
msgid "Unlock discussion"
-msgstr ""
+msgstr "Розблокувати обговореннÑ"
msgid "Unlock more features with GitLab Ultimate"
msgstr ""
@@ -51996,6 +52987,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr "Розблоковує обговореннÑ."
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -52149,6 +53143,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "Ðеможливо перейменувати проєкт, тому що він має теги в реєÑтрі контейнерів!"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr "Ðеможливо вÑтановити гілку за замовчуваннÑм"
@@ -52287,7 +53284,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -52302,9 +53302,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr "Пакети коду та образи контейнерів."
@@ -52326,13 +53323,13 @@ msgstr "РеєÑÑ‚Ñ€ контейнерів"
msgid "UsageQuota|Dependency proxy"
msgstr "ПрокÑÑ– залежноÑтей"
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -52365,7 +53362,7 @@ msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ²Ð¾
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -52404,7 +53401,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -52431,9 +53428,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr "Сховище"
@@ -52660,7 +53654,7 @@ msgid "Use issue count"
msgstr ""
msgid "Use issue weight"
-msgstr ""
+msgstr "ВикориÑтовувати вагу задачі"
msgid "Use issues to collaborate on ideas, solve problems, and plan work"
msgstr "ВикориÑтовуйте задачі Ð´Ð»Ñ Ñпільної роботи над ідеÑми, вирішеннÑм проблем та плануваннÑм роботи"
@@ -52683,12 +53677,6 @@ msgstr "ВикориÑтовувати шаблон"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr "ВикориÑтовувати інтеграцію Apple App Store Ð´Ð»Ñ Ð»ÐµÐ³ÐºÐ¾Ð³Ð¾ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Apple App Store з Fastlane в CI/CD конвеєрах."
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52701,6 +53689,12 @@ msgstr "ВикориÑтовуйте публічну URL-адреÑу інÑÑ‚Ð
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52768,6 +53762,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr "КориÑтувач %{user} був видалений з %{group}."
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "ID КориÑтувача"
@@ -52873,6 +53870,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -53138,7 +54138,7 @@ msgid "Username (optional)"
msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача (необов'Ñзково)"
msgid "Username and Password"
-msgstr ""
+msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача та пароль"
msgid "Username is already taken."
msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача вже зайнÑто."
@@ -53255,7 +54255,7 @@ msgid "Using required encryption strategy when encrypted field is missing!"
msgstr "ВикориÑтовуєтьÑÑ Ð¾Ð±Ð¾Ð²â€™Ñзкова ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ñ–Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸ відÑутньому полі Ð´Ð»Ñ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ значеннÑ!"
msgid "Using the %{codeStart}needs%{codeEnd} keyword makes jobs run before their stage is reached. Jobs run as soon as their %{codeStart}needs%{codeEnd} relationships are met, which speeds up your pipelines."
-msgstr ""
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ Ñлова %{codeStart}needs%{codeEnd} змушує Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ доÑÑÐ³Ð½ÐµÐ½Ð½Ñ Ñ—Ñ…Ð½ÑŒÐ¾Ð³Ð¾ етапу. Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð¿ÑƒÑкаютьÑÑ, Ñк тільки доÑÑгаєтьÑÑ ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ %{codeStart}needs%{codeEnd}, що приÑкорює роботу конвеєра."
msgid "Validate"
msgstr "Перевірити"
@@ -53318,27 +54318,47 @@ msgid "Value stream analytics"
msgstr ""
msgid "ValueStreamAnalyticsStage|There are 0 items to show in this stage, for these filters, within this time range."
-msgstr ""
+msgstr "ДоÑтупно 0 елементів, на цьому етапі, Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… фільтрів в межах цього чаÑового діапазону."
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -53356,6 +54376,9 @@ msgstr "Панель керуваннÑ"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -53363,7 +54386,7 @@ msgid "ValueStreamAnalytics|High vulnerabilities over time."
msgstr ""
msgid "ValueStreamAnalytics|Lifecycle metrics"
-msgstr ""
+msgstr "Метрики життєвого циклу"
msgid "ValueStreamAnalytics|Median time an incident was open on a production environment in the given time period."
msgstr ""
@@ -53435,7 +54458,7 @@ msgid "ValueStreamEvent|Items in stage"
msgstr ""
msgid "ValueStreamEvent|Only items that reached their stop event."
-msgstr ""
+msgstr "Лише елементи, Ñкі доÑÑгли Ñвоєї події зупинки."
msgid "ValueStreamEvent|Stage time (median)"
msgstr ""
@@ -53458,15 +54481,6 @@ msgstr ""
msgid "Variables"
msgstr "Змінні"
-msgid "Variables can be:"
-msgstr "Змінні можуть бути:"
-
-msgid "Variables can have several attributes."
-msgstr "Змінні можуть мати декілька атрибутів."
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr "Змінні зберігають інформацію, наприклад, паролі та Ñекретні ключі, Ñку ви можете викориÑтовувати у ÑценаріÑÑ… завдань. Ці змінні можуть викориÑтовувати вÑÑ– проєкти в інÑтанÑÑ–."
-
msgid "Various container registry settings."
msgstr "Різноманітні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтру контейнерів."
@@ -53548,9 +54562,6 @@ msgstr "Ви зараз на верÑÑ–Ñ— %{currentVersion}! Ми наполег
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr "Ви зараз на верÑÑ–Ñ— %{currentVersion}! Ми наполегливо рекомендуємо негайно оновити інÑталÑцію GitLab до однієї з наÑтупних верÑій: %{latestStableVersions}."
-msgid "VersionCheck|Your GitLab Version"
-msgstr "Ваша верÑÑ–Ñ GitLab"
-
msgid "View File Metadata"
msgstr ""
@@ -53569,15 +54580,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr "ПереглÑнути вÑÑ– групи"
-
msgid "View all issues"
msgstr "ПроглÑнути вÑÑ– задачі"
-msgid "View all projects"
-msgstr "ПереглÑнути вÑÑ– проєкти"
-
msgid "View blame"
msgstr ""
@@ -53678,6 +54683,9 @@ msgstr "ПереглÑнути відкритий запит на злиттÑ"
msgid "View page @ "
msgstr "ПереглÑнути Ñторінку @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "ПереглÑнути проєкт в облаÑÑ‚Ñ– адмініÑтратора"
@@ -53712,6 +54720,9 @@ msgstr "ПереглÑнути документацію"
msgid "View the latest successful deployment to this environment"
msgstr "ПереглÑнути оÑтаннє уÑпішне Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° це Ñередовище"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr "ПереглÑнути приклади викориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð¾ÐºÐµÐ½Ñ–Ð² тригера"
@@ -53787,6 +54798,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr "ВразливоÑÑ‚Ñ–"
@@ -53856,6 +54870,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54636,6 +55653,9 @@ msgstr "Перевірка SSL"
msgid "Webhooks|Secret token"
msgstr "Секретний токен"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "Чутлива чаÑтина URL"
@@ -54913,7 +55933,7 @@ msgid "WikiEmpty| Have a Confluence wiki already? Use that instead."
msgstr ""
msgid "WikiEmpty|A wiki is where you can store all the details about your group. This can include why you've created it, its principles, how to use it, and so on."
-msgstr ""
+msgstr "Вікі - це міÑце, де ви можете зберігати вÑÑŽ інформацію про вашу групу. Сюди може входити Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ те, чому ви Ñтворили групу, Ñ—Ñ— принципи, Ñк нею кориÑтуватиÑÑ Ñ‚Ð¾Ñ‰Ð¾."
msgid "WikiEmpty|A wiki is where you can store all the details about your project. This can include why you've created it, its principles, how to use it, and so on."
msgstr "Вікі дозволÑÑ” зберігати інформацію про ваш проєкт. Ðаприклад причину ÑтвореннÑ, принципи, Ñк його викориÑтовувати Ñ– Ñ‚. д."
@@ -54934,7 +55954,7 @@ msgid "WikiEmpty|Suggest wiki improvement"
msgstr "Запропонувати Ð¿Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–ÐºÑ–"
msgid "WikiEmpty|The wiki lets you write documentation for your group"
-msgstr ""
+msgstr "Вікі дозволÑÑ” пиÑати документацію Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— групи"
msgid "WikiEmpty|The wiki lets you write documentation for your project"
msgstr "Вікі дозволÑÑŽÑ‚ÑŒ пиÑати документацію Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проєкту"
@@ -55140,6 +56160,9 @@ msgstr "Додати в етап"
msgid "WorkItem|All activity"
msgstr "УÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ–ÑÑ‚ÑŒ"
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -55165,6 +56188,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr "СкаÑувати"
+msgid "WorkItem|Child items"
+msgstr "Дочірні елементи"
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -55210,6 +56236,9 @@ msgstr "Запланована дата завершеннÑ"
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr "ІÑнуюче підзавданнÑ"
@@ -55246,15 +56275,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr "Етап"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr "Ðове підзавданнÑ"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "Ðемає ітерації"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "Ðемає відповідних результатів"
@@ -55285,9 +56326,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr "Лише учаÑники проєкту з принаймні роллю Репортера, автор та призначені оÑоби можуть переглÑдати або отримувати ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ цей %{workItemType}."
-
msgid "WorkItem|Open"
msgstr "Відкрити"
@@ -55309,15 +56347,18 @@ msgstr "Вимоги"
msgid "WorkItem|Save and overwrite"
msgstr "Зберегти та перезапиÑати"
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr "Вибрати тип"
-msgid "WorkItem|Show labels"
+msgid "WorkItem|Show all ancestors"
msgstr ""
+msgid "WorkItem|Show labels"
+msgstr "Показати мітки"
+
msgid "WorkItem|Someone edited the description at the same time you did. If you save it will overwrite their changes. Please confirm you'd like to save your edits."
msgstr ""
@@ -55330,6 +56371,9 @@ msgstr "ЩоÑÑŒ пішло не так під Ñ‡Ð°Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ %{workI
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -55339,9 +56383,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr "Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼Ñ–Ñ‚Ð¾Ðº ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз."
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "ЩоÑÑŒ пішло не так при отриманні ÑпиÑку елементів. Будь лаÑка, оновіть цю Ñторінку."
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -55471,7 +56512,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -55489,6 +56530,9 @@ msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ робочі проÑтори
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ агентів клаÑтера Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ проєкту"
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr "Створити робочий проÑÑ‚Ñ–Ñ€"
@@ -55532,7 +56576,7 @@ msgid "Workspaces|Select default editor"
msgstr ""
msgid "Workspaces|Select project"
-msgstr ""
+msgstr "Обрати проєкт"
msgid "Workspaces|Start"
msgstr "ЗапуÑтити"
@@ -55541,7 +56585,7 @@ msgid "Workspaces|Starting"
msgstr ""
msgid "Workspaces|Stop"
-msgstr ""
+msgstr "Зупинити"
msgid "Workspaces|Stopped"
msgstr ""
@@ -55567,7 +56611,7 @@ msgstr "Ð”Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‡Ð¾Ñ— облаÑÑ‚Ñ– Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -55621,6 +56665,12 @@ msgstr "Створити Ð¾Ð¿Ð¸Ñ Ñ€ÐµÐ»Ñ–Ð·Ñƒ або перетÑгніть Ñ„Ð
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr "Ðадано неправильний зовнішній UID. Будь лаÑка, налаштуйте Auth0 правильно."
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -55648,6 +56698,9 @@ msgstr "Вчора"
msgid "You"
msgstr "Ви"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55692,7 +56745,7 @@ msgid "You are being redirected away from GitLab"
msgstr "Ð’Ð°Ñ Ð±ÑƒÐ´Ðµ перенаправлено з GitLab"
msgid "You are billed if you exceed this number. %{qsrOverageLinkStart}How does billing work?%{qsrOverageLinkEnd}"
-msgstr ""
+msgstr "Якщо ви перевищите це чиÑло, вам буде виÑтавлено рахунок. %{qsrOverageLinkStart}Як працює виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð²?%{qsrOverageLinkEnd}"
msgid "You are currently offline, or the GitLab instance is not reachable."
msgstr ""
@@ -55848,7 +56901,7 @@ msgid "You can create a new one or check them in your %{pat_link_start}personal
msgstr ""
msgid "You can create a new one or check them in your %{ssh_key_link_start}SSH keys%{ssh_key_link_end} settings."
-msgstr ""
+msgstr "Ви можете Ñтворити новий або перевірити Ñ—Ñ… у налаштуваннÑÑ… %{ssh_key_link_start}SSH-ключі%{ssh_key_link_end}."
msgid "You can create a new one or check them in your SSH keys settings %{ssh_key_link}."
msgstr ""
@@ -56018,10 +57071,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -56075,6 +57128,9 @@ msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” недавніх пошуків"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -56106,6 +57162,9 @@ msgstr[3] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "Вам надано %{access_level} доÑтуп до %{source_link} %{source_type}."
@@ -56139,7 +57198,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -56151,7 +57210,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -56184,6 +57243,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інтеграції HTTP"
@@ -56223,6 +57285,9 @@ msgstr "Зараз ви можете закрити цей етап."
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -56414,7 +57479,7 @@ msgid "YouTube"
msgstr "YouTube"
msgid "Your %{changes_link} have been committed successfully."
-msgstr ""
+msgstr "Ваші %{changes_link} були уÑпішно закомічені."
msgid "Your %{group} membership will now expire in %{days}."
msgstr ""
@@ -56437,6 +57502,9 @@ msgstr ""
msgid "Your Activity"
msgstr "Ваша ÐктивніÑÑ‚ÑŒ"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr "Ваш ÑинтакÑÐ¸Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ— CI/CD недійÑний. Виберіть вкладку «Перевірити», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ."
@@ -56449,6 +57517,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -56464,10 +57535,10 @@ msgstr "Ваш ланцюг CSV Custody Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¸ %{group_name} було
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr "Ваші звіти DevOps дають оглÑд того, Ñк ви викориÑтовуєте GitLab з точки зору функцій. ВикориÑтовуйте Ñ—Ñ…, щоб побачити, Ñк ви порівнюєтеÑÑŒ з іншими організаціÑми та Ñк ваші команди порівнюютьÑÑ Ð¼Ñ–Ð¶ Ñобою."
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56672,6 +57743,9 @@ msgstr ""
msgid "Your name"
msgstr "Ваше ім'Ñ"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr "Ваш новий %{accessTokenType}"
@@ -56705,6 +57779,9 @@ msgstr "Ваші проєкти"
msgid "Your public email will be displayed on your public profile."
msgstr "Ваша загальнодоÑтупна електронна адреÑа відображатиметьÑÑ Ñƒ вашому публічному профілі."
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56844,6 +57921,9 @@ msgstr "[Redacted]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -57081,12 +58161,12 @@ msgstr "Ðе може бути порожнім"
msgid "cannot be changed"
msgstr ""
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr ""
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "не може бути змінено Ñкщо в реєÑтрі контейнерів оÑобиÑтого проєкту Ñ” теги."
-msgid "cannot be changed since member is associated with a custom role"
-msgstr "не можна змінити, оÑкільки учаÑник пов’Ñзаний зі Ñпеціальною роллю"
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr ""
@@ -57131,7 +58211,7 @@ msgstr[2] ""
msgstr[3] ""
msgid "changes"
-msgstr ""
+msgstr "зміни"
msgid "check"
msgid_plural "checks"
@@ -57162,9 +58242,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr "%{linkStartTag}ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про звіти про ÑкіÑÑ‚ÑŒ коду %{linkEndTag}"
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -57207,7 +58284,7 @@ msgstr "Проаналізуйте розгорнуту верÑÑ–ÑŽ вашогÐ
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "Ðвтоматично заÑтоÑувати патч у новій гілці"
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -57247,23 +58324,6 @@ msgstr "ЯкіÑÑ‚ÑŒ коду не змінилаÑÑ."
msgid "ciReport|Code Quality is loading"
msgstr "ЯкіÑÑ‚ÑŒ коду завантажуєтьÑÑ"
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð°"
@@ -57385,15 +58445,18 @@ msgstr "Додано вручну"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr "Ðові вразливоÑÑ‚Ñ– - це вразливоÑÑ‚Ñ–, Ñкі виÑвлÑÑ” аналіз безпеки у запиті на злиттÑ, відмінні від Ñ–Ñнуючих вразливоÑтей у гілці за замовчуваннÑм."
-msgid "ciReport|No changes to code quality"
-msgstr "Ðемає змін у ÑкоÑÑ‚Ñ– коду"
-
msgid "ciReport|No code quality issues found"
msgstr ""
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr "Вирішити за допомогою запиту на злиттÑ"
@@ -57451,9 +58514,6 @@ msgstr "Помилка при відхиленні вразливоÑÑ‚Ñ–. БуÐ
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "Помилка при відміні відхиленнÑ. Будь лаÑка, Ñпробуйте знову."
@@ -57539,7 +58599,7 @@ msgid "could not read private key, is the passphrase correct?"
msgstr "неможливо зчитати приватний ключ, чи є пароль правильним?"
msgid "created %{issuable_created} by %{author}"
-msgstr "Ñтворено %{issuable_created} кориÑтувачем %{author}"
+msgstr "Ñтворена %{issuable_created} кориÑтувачем %{author}"
msgid "created %{timeAgoString} by %{email} via %{user}"
msgstr "Ñтворено %{timeAgoString} за допомогою %{email} через %{user}"
@@ -57931,6 +58991,9 @@ msgstr ""
msgid "is not one of"
msgstr "не є одним з"
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -58103,6 +59166,9 @@ msgstr "Зміни злиті в %{targetBranch} з %{mergeCommitSha}%{squashedC
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "Зміни не були злиті в %{targetBranch}."
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -58433,7 +59499,7 @@ msgid "mrWidget|To change this default message, edit the template for squash com
msgstr ""
msgid "mrWidget|Your merge request is almost ready!"
-msgstr ""
+msgstr "Ваш запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¼Ð°Ð¹Ð¶Ðµ готовий!"
msgid "mrWidget|Your password"
msgstr "Ваш пароль"
@@ -58444,6 +59510,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr "має бути кореневою групою."
@@ -58489,6 +59567,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -58507,6 +59588,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -58540,6 +59624,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58784,6 +59871,9 @@ msgstr ""
msgid "remove weight"
msgstr "видалити вагу"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr "видалено поÑÐ¸Ð»Ð°Ð½Ð½Ñ %{link_type}"
@@ -58816,9 +59906,6 @@ msgstr[3] "репозиторіїв"
msgid "repository:"
msgstr "репозиторій:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] "правило"
@@ -58972,7 +60059,7 @@ msgid "suggestPipeline|The template is ready! You can now commit it to create yo
msgstr ""
msgid "suggestPipeline|We’re adding a GitLab CI configuration file to add a pipeline to the project. You could create it manually, but we recommend that you start with a GitLab template that works out of the box."
-msgstr ""
+msgstr "Ми додаємо конфігураційний файл GitLab CI, щоб додати конвеєр до проєкту. Ви можете Ñтворити його вручну, але ми рекомендуємо почати з шаблону GitLab, Ñкий працює з коробки."
msgid "supported SSH public key."
msgstr "підтримує відкритий ключ SSH."
@@ -58995,6 +60082,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr "наÑтупні епіки"
@@ -59004,6 +60094,9 @@ msgstr "наÑтупні інциденти або задачі"
msgid "the following issues"
msgstr "наÑтупні задачі"
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/ur_PK/gitlab.po b/locale/ur_PK/gitlab.po
index 52cfe62899c..72fc0572f53 100644
--- a/locale/ur_PK/gitlab.po
+++ b/locale/ur_PK/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: ur-PK\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/uz_UZ/gitlab.po b/locale/uz_UZ/gitlab.po
index 3cbc519a83e..df74f364178 100644
--- a/locale/uz_UZ/gitlab.po
+++ b/locale/uz_UZ/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: uz\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:29\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -167,11 +167,6 @@ msgid_plural "%d artifacts"
msgstr[0] ""
msgstr[1] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -202,11 +197,6 @@ msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -237,11 +227,6 @@ msgid_plural "%d completed issues"
msgstr[0] ""
msgstr[1] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -322,6 +307,11 @@ msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
msgstr[1] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -547,6 +537,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -585,15 +578,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -707,12 +691,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -749,6 +727,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -923,6 +904,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1186,6 +1173,9 @@ msgstr[1] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1275,7 +1265,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1290,6 +1283,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1344,6 +1340,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1362,6 +1361,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1377,9 +1379,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1415,6 +1429,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1433,9 +1453,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1466,7 +1483,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1782,9 +1799,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1890,7 +1904,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1914,6 +1928,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -2013,9 +2054,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -2036,6 +2074,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -2081,6 +2122,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2402,6 +2446,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2876,6 +2926,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -3014,9 +3067,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3170,15 +3220,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3188,9 +3238,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3548,6 +3595,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3644,6 +3694,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4262,6 +4315,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4295,6 +4351,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4406,18 +4465,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4766,6 +4831,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4796,9 +4870,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4853,6 +4924,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4910,12 +4984,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4937,9 +5017,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -5000,9 +5077,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -5018,9 +5092,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -5096,9 +5167,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5327,10 +5395,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
-msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5496,6 +5562,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5604,6 +5673,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5712,6 +5784,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5724,16 +5799,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5766,9 +5844,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5829,6 +5904,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5841,16 +5937,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5868,9 +5961,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6392,9 +6482,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6458,6 +6545,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6473,9 +6563,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6671,9 +6758,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6689,6 +6773,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6811,13 +6898,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6911,7 +6995,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6989,6 +7073,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -7025,6 +7112,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -7118,6 +7211,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7307,12 +7403,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7337,12 +7427,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7394,9 +7490,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7409,9 +7502,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7421,9 +7511,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7457,16 +7556,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7478,7 +7580,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7493,7 +7595,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7598,9 +7700,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7958,6 +8057,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7988,13 +8090,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -8012,10 +8114,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -8056,12 +8158,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -8083,7 +8179,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8276,12 +8375,6 @@ msgstr[1] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8300,9 +8393,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8312,18 +8402,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8336,51 +8420,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8389,6 +8449,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8410,9 +8473,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8506,6 +8566,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8515,6 +8578,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8581,15 +8656,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8647,6 +8734,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8665,6 +8758,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8677,6 +8773,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8977,6 +9076,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -9010,9 +9115,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -9022,16 +9136,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -9049,6 +9172,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -9103,7 +9232,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -9166,9 +9298,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9309,6 +9438,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9330,6 +9462,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9393,18 +9531,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9423,16 +9549,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9444,6 +9570,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9894,6 +10023,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -10006,6 +10138,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -10018,6 +10153,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -10030,6 +10168,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -10090,6 +10231,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -10147,6 +10291,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -10159,6 +10306,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10228,9 +10378,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10294,6 +10441,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10312,7 +10462,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10324,18 +10477,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10345,25 +10495,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10372,6 +10543,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10462,6 +10636,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10549,13 +10735,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10579,10 +10774,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10812,9 +11019,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11849,16 +12053,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11867,7 +12089,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11876,22 +12098,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -12022,6 +12244,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -12070,6 +12295,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12348,13 +12579,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export violations report"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12372,6 +12639,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12384,6 +12654,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12393,10 +12666,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12411,9 +12684,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12426,6 +12705,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12456,9 +12738,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12477,12 +12765,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12600,6 +12894,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12660,6 +12957,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12687,7 +12990,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12840,6 +13149,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12930,7 +13242,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -13165,6 +13477,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13350,6 +13665,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13701,7 +14019,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13713,6 +14031,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13776,6 +14097,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13848,9 +14172,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -14034,6 +14355,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -14097,6 +14421,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -14127,9 +14454,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14259,9 +14583,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14298,6 +14619,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14508,6 +14832,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14718,6 +15045,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -15005,9 +15338,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -15037,6 +15367,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15306,9 +15639,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15342,6 +15672,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15423,6 +15756,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15600,9 +15936,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15615,7 +15948,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15928,6 +16261,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16250,17 +16586,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16372,12 +16697,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16396,9 +16727,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16408,6 +16736,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16444,18 +16775,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16465,6 +16805,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16711,9 +17054,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17384,6 +17724,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17513,6 +17898,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17817,6 +18205,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -18108,6 +18499,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -18174,6 +18568,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18270,6 +18667,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18306,6 +18706,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18321,9 +18724,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18387,6 +18787,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18402,9 +18805,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18492,6 +18892,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18807,6 +19210,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18909,15 +19315,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18930,9 +19333,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18948,9 +19348,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18960,9 +19357,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18978,10 +19372,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19885,9 +20279,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -20014,6 +20405,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -20099,6 +20493,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -20114,16 +20511,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -20162,9 +20556,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -20192,18 +20583,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20312,6 +20694,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20605,6 +20990,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20884,9 +21272,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -21207,6 +21592,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21550,12 +21938,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21565,12 +21947,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21679,12 +22055,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21742,9 +22112,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21766,6 +22133,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21853,9 +22223,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21952,9 +22328,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -22084,7 +22457,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -22102,7 +22475,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22279,22 +22652,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22354,6 +22727,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22375,16 +22751,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22414,9 +22787,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22426,9 +22796,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22543,9 +22910,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22615,6 +22979,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22627,6 +22994,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22663,10 +23033,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22696,9 +23066,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22837,6 +23204,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22930,10 +23300,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -23197,6 +23570,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23218,6 +23594,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23260,12 +23639,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23290,6 +23678,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23314,6 +23705,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23356,6 +23753,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23419,30 +23819,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23503,7 +23879,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23545,7 +23921,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23668,6 +24044,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23722,6 +24101,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23978,11 +24366,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Hide values"
msgstr ""
@@ -24001,6 +24384,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -24076,6 +24462,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -24166,6 +24555,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24261,9 +24653,6 @@ msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
msgstr[1] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24279,7 +24668,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24291,7 +24680,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24363,6 +24755,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24652,9 +25047,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24831,10 +25223,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24849,6 +25241,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24864,6 +25259,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25350,6 +25748,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25477,9 +25878,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25866,9 +26264,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -26075,10 +26470,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26405,13 +26800,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26516,6 +26911,11 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26525,10 +26925,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
-msgstr[1] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26569,6 +26967,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26698,6 +27099,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26827,6 +27231,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26896,15 +27303,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26956,6 +27363,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -27004,6 +27417,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -27163,7 +27579,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27433,6 +27849,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27442,6 +27861,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27514,6 +27936,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27634,9 +28059,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27673,6 +28095,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27703,6 +28128,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27798,6 +28337,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27839,7 +28384,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27857,6 +28402,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -28141,9 +28689,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -28174,6 +28719,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -28189,9 +28737,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28390,7 +28935,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28569,9 +29114,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28605,6 +29147,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28698,39 +29243,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28758,12 +29279,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28818,9 +29333,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29424,100 +29936,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29814,6 +30329,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -30195,6 +30713,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -30228,15 +30749,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30246,15 +30761,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30267,9 +30776,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30306,6 +30812,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30530,9 +31039,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30626,9 +31141,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30644,6 +31156,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30674,98 +31189,149 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
-msgstr[1] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30791,9 +31357,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31360,9 +31932,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31375,9 +31944,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31806,15 +32372,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31920,6 +32486,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -32066,18 +32635,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -32087,6 +32644,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -32102,6 +32662,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -32120,6 +32683,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -32230,6 +32796,9 @@ msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
msgstr[1] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32329,6 +32898,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32377,6 +32952,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32407,16 +32988,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32464,6 +33042,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32488,6 +33069,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32578,6 +33162,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32593,6 +33180,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32605,7 +33195,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32734,6 +33324,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32752,27 +33345,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33317,9 +33931,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33356,9 +33967,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33449,6 +34057,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33467,6 +34078,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33515,7 +34132,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33542,6 +34168,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33659,6 +34288,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33728,6 +34417,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33803,6 +34495,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -34013,6 +34708,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -34072,6 +34770,12 @@ msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
msgstr[1] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -34096,6 +34800,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -34114,6 +34821,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -34180,6 +34890,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -34216,6 +34929,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34357,6 +35073,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34504,6 +35223,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34648,6 +35370,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -35065,6 +35790,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -35125,12 +35874,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -35149,9 +35892,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -35224,6 +35964,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35260,6 +36003,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -36178,9 +36927,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36376,6 +37122,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36484,6 +37233,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36604,7 +37356,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36970,7 +37722,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37275,7 +38027,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37302,10 +38054,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37524,6 +38291,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37611,9 +38381,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37731,6 +38498,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37776,6 +38546,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -38193,29 +38966,10 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
+msgstr[1] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -38250,6 +39004,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38313,6 +39070,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38908,12 +39668,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38995,9 +39761,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -39043,6 +39806,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39486,9 +40252,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39665,6 +40428,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39719,6 +40485,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39779,6 +40548,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39881,6 +40653,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39959,6 +40734,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -40016,9 +40794,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -40085,9 +40860,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40526,6 +41298,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40587,7 +41362,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40656,9 +41431,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40782,11 +41554,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Reveal values"
msgstr ""
@@ -40831,6 +41598,15 @@ msgid_plural "%d Reviewers"
msgstr[0] ""
msgstr[1] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40891,9 +41667,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -41231,6 +42004,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41505,6 +42281,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41625,7 +42404,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41634,9 +42413,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41863,9 +42639,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -42037,9 +42828,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -42058,6 +42858,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -42079,21 +42882,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -42118,6 +42939,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -42127,6 +42951,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -42142,6 +42969,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -42202,9 +43032,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -42256,34 +43083,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42310,15 +43128,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42331,7 +43143,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42484,6 +43314,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42677,6 +43510,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42686,6 +43522,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42743,6 +43609,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42830,7 +43699,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42932,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42941,6 +43813,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42959,12 +43840,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42977,6 +43864,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -43007,6 +43897,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -43019,10 +43912,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -43031,6 +43924,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -43103,6 +44002,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -43115,7 +44017,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -43130,6 +44035,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -43145,6 +44053,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -43172,6 +44083,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -43198,6 +44112,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -43285,12 +44202,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43324,6 +44247,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43357,6 +44286,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43441,12 +44376,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43483,6 +44433,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43669,6 +44622,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43720,6 +44676,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43735,12 +44694,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43875,6 +44828,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43974,6 +44930,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -44241,6 +45209,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44403,9 +45374,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44445,6 +45422,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44505,7 +45488,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44514,6 +45500,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44712,9 +45704,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44730,6 +45719,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44808,20 +45800,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-msgstr[1] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44879,27 +45884,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -45163,9 +46147,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -45214,19 +46195,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45526,6 +46501,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45583,6 +46561,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45643,7 +46624,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45985,9 +46966,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -46000,7 +46978,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -46021,12 +46999,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -46222,6 +47194,11 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46522,9 +47499,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46606,9 +47580,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46705,6 +47676,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -47253,9 +48227,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47526,14 +48497,23 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
msgstr[1] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47549,21 +48529,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47848,6 +48813,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -48042,6 +49010,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -48066,6 +49037,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -48084,9 +49061,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -48126,16 +49100,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48385,6 +49365,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48523,6 +49506,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48574,13 +49560,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48751,6 +49734,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48946,6 +49932,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -49036,9 +50025,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -49075,6 +50070,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -49267,9 +50265,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49414,12 +50409,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49468,6 +50457,11 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -50111,9 +51105,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -50158,6 +51149,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -50263,7 +51257,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -50278,9 +51272,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50338,6 +51329,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50374,6 +51368,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50416,7 +51413,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50428,9 +51425,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50446,10 +51440,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50491,18 +51485,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50571,6 +51553,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50595,16 +51583,35 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
+msgstr ""
+
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50664,10 +51671,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50802,27 +51809,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50838,28 +51824,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -51002,12 +51979,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -51083,15 +52054,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -51257,9 +52243,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51335,7 +52330,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51386,6 +52381,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51539,6 +52537,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51677,7 +52678,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51692,9 +52696,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51716,13 +52717,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51755,7 +52756,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51794,7 +52795,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51821,9 +52822,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -52073,12 +53071,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -52091,6 +53083,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -52156,6 +53154,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -52261,6 +53262,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52711,22 +53715,32 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52744,6 +53758,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52846,15 +53863,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52936,9 +53944,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52957,15 +53962,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -53064,6 +54063,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -53096,6 +54098,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -53171,6 +54176,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -53240,6 +54248,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -54020,6 +55031,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54518,6 +55532,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54541,6 +55558,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54586,6 +55606,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54622,15 +55645,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54661,9 +55696,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54685,12 +55717,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54706,6 +55741,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54715,9 +55753,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54847,7 +55882,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54865,6 +55900,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54943,7 +55981,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54997,6 +56035,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -55024,6 +56068,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55392,10 +56439,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55449,6 +56496,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55478,6 +56528,9 @@ msgstr[1] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55511,7 +56564,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55523,7 +56576,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55556,6 +56609,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55595,6 +56651,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55807,6 +56866,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55819,6 +56881,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55834,10 +56899,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -56040,6 +57105,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -56073,6 +57141,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -56210,6 +57281,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56441,10 +57515,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56516,9 +57590,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56561,7 +57632,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56599,19 +57670,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56731,15 +57789,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56797,9 +57858,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -57259,6 +58317,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57423,6 +58484,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57760,6 +58824,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57805,6 +58881,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57823,6 +58902,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57856,6 +58938,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -58092,6 +59177,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -58120,9 +59208,6 @@ msgstr[1] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -58295,6 +59380,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -58304,6 +59392,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/vi_VN/gitlab.po b/locale/vi_VN/gitlab.po
index b2a96004534..ef9e9744ea7 100644
--- a/locale/vi_VN/gitlab.po
+++ b/locale/vi_VN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: vi\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -460,6 +452,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -494,15 +489,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -606,12 +592,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -648,6 +628,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr ""
@@ -822,6 +805,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1075,6 +1064,9 @@ msgstr[0] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1154,7 +1146,10 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
@@ -1169,6 +1164,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1223,6 +1221,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1241,6 +1242,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1256,9 +1260,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1293,6 +1309,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1311,9 +1333,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1344,7 +1363,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr ""
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1634,9 +1653,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1742,7 +1758,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -1865,9 +1908,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -1887,6 +1927,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -1932,6 +1975,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2253,6 +2299,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2727,6 +2779,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -2865,9 +2920,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3021,15 +3073,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr ""
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3039,9 +3091,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3399,6 +3448,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3495,6 +3547,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4113,6 +4168,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4146,6 +4204,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4257,18 +4318,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4617,6 +4684,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr ""
@@ -4647,9 +4723,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4761,12 +4837,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4788,9 +4870,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr ""
-
msgid "Almost there"
msgstr ""
@@ -4851,9 +4930,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -4869,9 +4945,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -4947,9 +5020,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr ""
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5178,9 +5248,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5345,6 +5414,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5453,6 +5525,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5561,6 +5636,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5573,16 +5651,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5615,9 +5696,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5678,6 +5756,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5690,16 +5789,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5717,9 +5813,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6231,9 +6324,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6297,6 +6387,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6312,9 +6405,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6504,9 +6594,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6522,6 +6609,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6643,13 +6733,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6741,7 +6828,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6819,6 +6906,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -6948,6 +7044,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7137,12 +7236,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7167,12 +7260,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7224,9 +7323,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7239,9 +7335,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr ""
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr ""
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7251,9 +7344,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr ""
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr ""
@@ -7287,16 +7389,19 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr ""
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr ""
+
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
+msgid "Badges|Your badges"
msgstr ""
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Bamboo build plan key (for example, `KEY`)."
msgstr ""
-msgid "Badges|Your badges"
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
msgstr ""
msgid "BambooService|Atlassian Bamboo"
@@ -7308,7 +7413,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7323,7 +7428,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7428,9 +7533,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr ""
@@ -7788,6 +7890,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7818,13 +7923,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -7842,10 +7947,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -7885,12 +7990,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -7912,7 +8011,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8103,12 +8205,6 @@ msgstr[0] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8127,9 +8223,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8139,18 +8232,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8163,51 +8250,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8236,9 +8302,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8332,6 +8395,9 @@ msgstr ""
msgid "Branch name"
msgstr ""
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8341,6 +8407,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8407,15 +8485,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8473,6 +8563,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8491,6 +8587,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8503,6 +8602,9 @@ msgstr ""
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8803,6 +8905,12 @@ msgstr ""
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -8836,9 +8944,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -8848,16 +8965,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -8875,6 +9001,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -8929,7 +9061,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -8992,9 +9127,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9134,6 +9266,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9155,6 +9290,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9218,18 +9359,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9248,16 +9377,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9269,6 +9398,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9719,6 +9851,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -9829,6 +9964,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -9841,6 +9979,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -9853,6 +9994,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -9913,6 +10057,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -9970,6 +10117,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -9982,6 +10132,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10051,9 +10204,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10117,6 +10267,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10135,7 +10288,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10168,25 +10321,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10195,6 +10369,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10285,6 +10462,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10372,13 +10561,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10402,10 +10600,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10634,9 +10844,6 @@ msgstr ""
msgid "Close milestone"
msgstr ""
-msgid "Close sidebar"
-msgstr ""
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11670,16 +11877,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11688,7 +11913,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11697,22 +11922,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11842,6 +12067,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -11890,6 +12118,12 @@ msgstr ""
msgid "Comment"
msgstr ""
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12167,13 +12401,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks"
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12191,6 +12461,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12212,10 +12488,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12230,9 +12506,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12245,6 +12527,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12275,9 +12560,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12296,12 +12587,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12419,6 +12716,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12479,6 +12779,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12506,7 +12812,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12659,6 +12971,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12749,7 +13064,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -12982,6 +13297,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13166,6 +13484,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13517,7 +13838,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13529,6 +13850,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13592,6 +13916,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13664,9 +13991,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -13850,6 +14174,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -13913,6 +14240,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -13943,9 +14273,6 @@ msgstr ""
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14075,9 +14402,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14114,6 +14438,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14324,6 +14651,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14534,6 +14864,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -14820,9 +15156,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -14851,6 +15184,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15119,9 +15455,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15155,6 +15488,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15236,6 +15572,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15413,9 +15752,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15428,7 +15764,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15739,6 +16075,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16059,16 +16398,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16177,12 +16506,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16201,9 +16536,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16213,6 +16545,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16249,18 +16584,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16270,6 +16614,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16513,9 +16860,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17184,6 +17528,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17310,6 +17699,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17612,6 +18004,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -17903,6 +18298,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -17969,6 +18367,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18065,6 +18466,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18101,6 +18505,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18116,9 +18523,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18182,6 +18586,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18197,9 +18604,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18287,6 +18691,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18602,6 +19009,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18704,15 +19114,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18725,9 +19132,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18743,9 +19147,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18755,9 +19156,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18773,10 +19171,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19678,9 +20076,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -19807,6 +20202,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -19890,6 +20288,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -19905,16 +20306,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -19953,9 +20351,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -19983,18 +20378,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20103,6 +20489,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20395,6 +20784,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20674,9 +21066,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -20996,6 +21385,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21337,12 +21729,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21352,12 +21738,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21466,12 +21846,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21529,9 +21903,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21553,6 +21924,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21640,9 +22014,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21871,7 +22248,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -21889,7 +22266,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22066,22 +22443,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22141,6 +22518,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22162,16 +22542,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
-msgstr ""
-
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22201,9 +22578,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22213,9 +22587,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22330,9 +22701,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22402,6 +22770,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22414,6 +22785,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22450,10 +22824,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22483,9 +22857,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22624,6 +22995,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22717,10 +23091,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -22984,6 +23361,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23005,6 +23385,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23047,12 +23430,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23077,6 +23469,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23101,6 +23496,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23143,6 +23544,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23206,30 +23610,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23290,7 +23670,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23332,7 +23712,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23455,6 +23835,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23509,6 +23892,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23763,10 +24155,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-
msgid "Hide values"
msgstr ""
@@ -23785,6 +24173,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -23860,6 +24251,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -23950,6 +24344,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24062,7 +24456,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24074,7 +24468,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24146,6 +24543,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24433,9 +24833,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24611,10 +25008,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24629,6 +25026,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24644,6 +25044,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25130,6 +25533,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25255,9 +25661,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25643,9 +26046,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -25851,10 +26251,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26181,13 +26581,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26292,6 +26692,10 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26301,9 +26705,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26344,6 +26747,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26473,6 +26879,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26602,6 +27011,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26671,15 +27083,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26731,6 +27143,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -26779,6 +27197,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -26938,7 +27359,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27208,6 +27629,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27217,6 +27641,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27289,6 +27716,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27409,9 +27839,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27448,6 +27875,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27478,6 +27908,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27572,6 +28116,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27612,7 +28162,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27630,6 +28180,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr ""
@@ -27913,9 +28466,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -27946,6 +28496,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -27961,9 +28514,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28156,7 +28706,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28334,9 +28884,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28370,6 +28917,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28523,12 +29049,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28583,9 +29103,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29189,100 +29706,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29576,6 +30096,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -29957,6 +30480,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -29990,15 +30516,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30008,15 +30528,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30029,9 +30543,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30068,6 +30579,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30291,9 +30805,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30387,9 +30907,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30405,6 +30922,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30435,96 +30955,147 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30549,9 +31120,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31117,9 +31694,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31132,9 +31706,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31562,15 +32133,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31676,6 +32247,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -31821,18 +32395,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -31842,6 +32404,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -31857,6 +32422,9 @@ msgstr ""
msgid "Not confidential"
msgstr ""
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -31875,6 +32443,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32080,6 +32654,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32128,6 +32708,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32158,16 +32744,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|And %{total_stripped_new_commits_count} more"
-msgstr ""
-
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32239,6 +32825,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32329,6 +32918,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32344,6 +32936,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32356,7 +32951,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32485,6 +33080,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32503,27 +33101,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr ""
+
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33105,9 +33721,6 @@ msgstr ""
msgid "Open raw"
msgstr ""
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33198,6 +33811,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33216,6 +33832,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33264,7 +33886,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33408,6 +34042,66 @@ msgstr ""
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33477,6 +34171,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33552,6 +34249,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -33762,6 +34462,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -33844,6 +34553,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -33862,6 +34574,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -33928,6 +34643,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -33964,6 +34682,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34105,6 +34826,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34252,6 +34976,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34396,6 +35123,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -34813,6 +35543,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -34873,12 +35627,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -34897,9 +35645,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -34972,6 +35717,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35008,6 +35756,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35926,9 +36680,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36124,6 +36875,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36232,6 +36986,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36352,7 +37109,7 @@ msgstr ""
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36718,7 +37475,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37022,7 +37779,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37049,10 +37806,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr ""
+
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37271,6 +38043,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37358,9 +38133,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37478,6 +38250,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37523,6 +38298,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -37940,29 +38718,9 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -37997,6 +38755,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38060,6 +38821,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38653,12 +39417,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38740,9 +39510,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -38788,6 +39555,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39230,9 +40000,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39408,6 +40175,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39462,6 +40232,9 @@ msgstr ""
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39522,6 +40295,9 @@ msgstr ""
msgid "Remove due date"
msgstr ""
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39624,6 +40400,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39702,6 +40481,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -39759,9 +40541,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr ""
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -39828,9 +40607,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40263,6 +41039,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,7 +41101,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40391,9 +41170,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40517,10 +41293,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-
msgid "Reveal values"
msgstr ""
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40624,9 +41405,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40959,6 +41737,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41231,6 +42012,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41351,7 +42135,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41360,9 +42144,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41587,9 +42368,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -41761,9 +42557,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -41782,6 +42587,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -41803,21 +42611,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -41842,6 +42668,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -41851,6 +42680,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -41866,6 +42698,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -41926,9 +42761,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -41980,34 +42812,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42034,15 +42857,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42055,7 +42872,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42208,6 +43043,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42390,6 +43228,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42399,6 +43240,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42456,6 +43327,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42543,7 +43417,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42645,6 +43519,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42654,6 +43531,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42672,12 +43558,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42690,6 +43582,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -42720,6 +43615,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -42732,10 +43630,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -42744,6 +43642,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -42816,6 +43720,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,7 +43735,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -42843,6 +43753,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -42858,6 +43771,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -42885,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -42910,6 +43829,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -42997,12 +43919,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43036,6 +43964,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43069,6 +44003,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43153,12 +44093,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43195,6 +44150,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43381,6 +44339,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43432,6 +44393,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43447,12 +44411,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43586,6 +44544,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43685,6 +44646,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -43952,6 +44925,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44114,9 +45090,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44156,6 +45138,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44216,7 +45204,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44225,6 +45216,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44423,9 +45420,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44441,6 +45435,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44519,19 +45516,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44589,27 +45600,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -44872,9 +45862,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -44923,19 +45910,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45235,6 +46216,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45292,6 +46276,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45352,7 +46339,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -45709,7 +46693,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -45730,12 +46714,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr ""
@@ -45931,6 +46909,10 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46231,9 +47213,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46315,9 +47294,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr ""
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -46961,9 +47940,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47234,13 +48210,22 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47256,21 +48241,6 @@ msgstr ""
msgid "Target branch"
msgstr ""
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47551,6 +48521,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -47744,6 +48717,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -47768,6 +48744,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -47786,9 +48768,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -47828,16 +48807,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48085,6 +49070,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48223,6 +49211,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48274,13 +49265,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48451,6 +49439,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48646,6 +49637,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -48736,9 +49730,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -48775,6 +49775,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -48967,9 +49970,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49114,12 +50114,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49809,9 +50807,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -49855,6 +50850,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -49960,7 +50958,7 @@ msgstr ""
msgid "Today"
msgstr ""
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -49975,9 +50973,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50035,6 +51030,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50071,6 +51069,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50113,7 +51114,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50125,9 +51126,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50143,10 +51141,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50188,18 +51186,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50267,6 +51253,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr ""
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50291,16 +51283,33 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{m}m"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50360,10 +51369,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50498,27 +51507,6 @@ msgstr ""
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50534,28 +51522,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
-msgstr ""
-
-msgid "Trials|Trials benefits"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50697,12 +51676,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -50778,15 +51751,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -50952,9 +51940,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51030,7 +52027,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51234,6 +52234,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51372,7 +52375,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51387,9 +52393,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51411,13 +52414,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51450,7 +52453,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51489,7 +52492,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -51768,12 +52768,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -51786,6 +52780,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -51850,6 +52850,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52405,22 +53411,27 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52438,6 +53449,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52540,15 +53554,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52630,9 +53635,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52651,15 +53653,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -52757,6 +53753,9 @@ msgstr ""
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -52788,6 +53787,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -52863,6 +53865,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -52932,6 +53937,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54207,6 +55218,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54229,6 +55243,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54274,6 +55291,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54310,15 +55330,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54349,9 +55381,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54373,12 +55402,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54403,9 +55438,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54535,7 +55567,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54553,6 +55585,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54631,7 +55666,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54685,6 +55720,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -54712,6 +55753,9 @@ msgstr ""
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55079,10 +56123,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55136,6 +56180,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55164,6 +56211,9 @@ msgstr[0] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55197,7 +56247,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55209,7 +56259,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55242,6 +56292,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55281,6 +56334,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55492,6 +56548,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55504,6 +56563,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55519,10 +56581,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55724,6 +56786,9 @@ msgstr ""
msgid "Your name"
msgstr ""
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -55757,6 +56822,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -55893,6 +56961,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56121,10 +57192,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56193,9 +57264,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56238,7 +57306,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56275,17 +57343,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56404,15 +57461,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
+msgid "ciReport|No code quality issues found"
msgstr ""
-msgid "ciReport|No code quality issues found"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
msgstr ""
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56470,9 +57530,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56923,6 +57980,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57083,6 +58143,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57418,6 +58481,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57463,6 +58538,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57481,6 +58559,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57514,6 +58595,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57746,6 +58830,9 @@ msgstr ""
msgid "remove weight"
msgstr ""
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -57772,9 +58859,6 @@ msgstr[0] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -57945,6 +59029,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -57954,6 +59041,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/zh_CN/gitlab.po b/locale/zh_CN/gitlab.po
index b00db008b66..3810794591b 100644
--- a/locale/zh_CN/gitlab.po
+++ b/locale/zh_CN/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: zh-CN\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:26\n"
msgid " %{start} to %{end}"
msgstr "从%{start}到%{end}"
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] "%d 个产物"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d 个已分é…的议题"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] "%d å作者"
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%dæ¡è¯„论"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "æ­¤æ交的%dæ¡è¯„论"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d ä½è¯„论者"
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] "%d个已完æˆçš„议题"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] "已选择 %d 个åˆè§„框架"
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d个贡献"
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] "使用标记æˆåŠŸå¯¼å…¥%d个议题"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] "找到了 %d 个项目"
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d 个作业"
@@ -460,6 +452,9 @@ msgstr "%{author_link}写é“:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName}的主题"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author}请求将%{source_branch}%{copy_button}åˆå¹¶åˆ°%{target_branch} %{created_at}"
@@ -494,15 +489,6 @@ msgstr "%{chartTitle} 没有数æ®ï¼"
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr "%{codeStart}$%{codeEnd} 将被视为对å¦ä¸€ä¸ªå˜é‡çš„引用的开始。"
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr "%{code_open}Expanded:%{code_close} å˜é‡å¸¦æœ‰ %{code_open}$%{code_close} 符å·å°†è¢«å½“作一个引用å¦ä¸€ä¸ªå˜é‡çš„开始。"
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}éšè—:%{code_close} éšè—在作业日志中。必须符åˆéšè—è¦æ±‚。"
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}å—ä¿æŠ¤ï¼š%{code_close} 仅暴露于å—ä¿æŠ¤çš„分支或标签。"
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "由 %{commit_author_link} 创作于 %{commit_authored_timeago}"
@@ -606,12 +592,6 @@ msgstr "%{days}天,直到标签被自动删除"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Sentry事件: %{errorUrl}- 首次出现: %{firstSeen}- 最åŽå‡ºçŽ°: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{doc_link_start}高级æœç´¢%{doc_link_end}ç¦ç”¨ï¼Œå› ä¸º %{ref_elem} ä¸æ˜¯é»˜è®¤åˆ†æ”¯ã€‚ %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}高级æœç´¢%{doc_link_end} å·²å¯ç”¨ã€‚"
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}了解å¯è§æ€§çº§åˆ«ã€‚%{docs_link_end}"
@@ -648,6 +628,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "å¦å¤– %{extra} 个下游æµæ°´çº¿"
+msgid "%{failures} of %{total} failed"
+msgstr "%{total}次中失败了%{failures}次"
+
msgid "%{filePath} deleted"
msgstr "%{filePath} 已删除"
@@ -822,6 +805,12 @@ msgstr "%{linkStart}了解更多%{linkEnd}。"
msgid "%{linkStart}%{linkEnd} review summary"
msgstr "%{linkStart}%{linkEnd} 评审摘è¦"
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr "%{linkStart}高级æœç´¢%{linkEnd} å·²å¯ç”¨ã€‚"
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow},还有 %{awardsListLength} 个。"
@@ -1075,6 +1064,9 @@ msgstr[0] "%{strongStart}%{count}%{strongEnd} æ交"
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr "%{strongStart}æ示:%{strongEnd}您也å¯ä»¥%{linkStart}用åˆå¹¶è¯·æ±‚ ID 检出%{linkEnd}。"
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} 个分支"
@@ -1154,8 +1146,11 @@ msgstr "%{timebox_type}必须有开始日期和截止日期"
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
-msgstr "%{title}更改"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (剩余%{freeSpacePercentage}%{percentSymbol})"
@@ -1169,6 +1164,9 @@ msgstr "%{totalMemory} (剩余%{freeSpacePercentage}%{percentSymbol})"
msgid "%{total_warnings} warning(s) found:"
msgstr "找到%{total_warnings}个警告(s): "
+msgid "%{total}"
+msgstr "%{total}"
+
msgid "%{total} remaining issue weight"
msgstr "%{total}剩余议题æƒé‡"
@@ -1223,6 +1221,9 @@ msgstr "%{user} 创建了一个议题:%{issue_link}"
msgid "%{user} user’s menu"
msgstr "%{user} 用户的èœå•"
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "列表中ä¸åŒ…å«%{value}"
@@ -1241,6 +1242,9 @@ msgstr "%{webhooks_link_start}%{webhook_type}%{webhooks_link_end} 使您能够å
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "支æŒ%{wildcards_link_start}通é…符%{wildcards_link_end} ,例如 %{code_tag_start}v *%{code_tag_end} 或 %{code_tag_start}* -release%{code_tag_end}。"
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr "“%{data_pointer}â€å¿…须是有效的“%{type}â€"
+
msgid "'%{level}' is not a valid visibility level"
msgstr "“%{level}â€ä¸æ˜¯æœ‰æ•ˆçš„å¯è§æ€§çº§åˆ«"
@@ -1256,9 +1260,21 @@ msgstr "'%{value}' ä¸æ´»åŠ¨çš„天数必须大于或等于 90"
msgid "'allow: %{allow}' must be a string"
msgstr "'allow: %{allow}' 必须是字符串"
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr "' except: %{except}' 必须是字符串数组"
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr "å°šä¸æ”¯æŒ “projectsâ€"
@@ -1293,6 +1309,12 @@ msgstr "(æ— å˜æ›´å†…容)"
msgid "(Unlimited pipeline minutes)"
msgstr "(无é™æµæ°´çº¿åˆ†é’Ÿæ•°ï¼‰"
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(检查进度)"
@@ -1311,9 +1333,6 @@ msgstr "(外部å‚与者)"
msgid "(leave blank if you don't want to change it)"
msgstr "(如果您ä¸æƒ³æ›´æ”¹ï¼Œè¯·ç•™ç©º)"
-msgid "(max size 15 MB)"
-msgstr "(最大 15 MB)"
-
msgid "(no user)"
msgstr "(无用户)"
@@ -1344,8 +1363,8 @@ msgstr "+ 其余 %{amount} 项"
msgid "+ %{count} more"
msgstr "+ 其余%{count}项"
-msgid "+ %{hiddenBranchesLength} more"
-msgstr "+ %{hiddenBranchesLength} 更多"
+msgid "+ %{itemsLength} more"
+msgstr ""
msgid "+ %{moreCount} more"
msgstr "+ 其余%{moreCount}项"
@@ -1634,9 +1653,6 @@ msgstr "使用AWS Lambda,AWS API网关和GitLab Pages的基本页é¢å’Œæ— æœå
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "使用Kotlin Nativeå¼€å‘Linux程åºçš„基本模æ¿"
-msgid "A complete DevOps platform"
-msgstr "一个完整的DevOpså¹³å°"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr "ç§å¯†è®®é¢˜å¿…é¡»åªæœ‰ç§å¯†å­çº§ã€‚将所有å­é¡¹ç›®è®¾ç½®ä¸ºç§å¯†ï¼Œç„¶åŽé‡è¯•ã€‚"
@@ -1742,8 +1758,8 @@ msgstr "适用于 Android 应用的éšæ—¶å¯ç”¨çš„模æ¿"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "适用于 iOS Swift 应用的éšæ—¶å¯ç”¨çš„模æ¿"
-msgid "A rebase is already in progress."
-msgstr "å˜åŸº(rebase)正在进行中"
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "您的å¸æˆ·å·²ä»Žä¸‹åˆ—IP地å€ç™»å½•: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr "AI æ“作"
msgid "AI-generated summary"
msgstr "AI 生æˆçš„摘è¦"
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr "人工智能驱动的功能"
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr "为此实例å¯ç”¨ %{link_start}AI 功能%{link_end}。"
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr "å¯ç”¨å®žéªŒå’Œæµ‹è¯•ç‰ˆ AI 功能"
+
msgid "AISummary|Generates a summary of all comments"
msgstr "生æˆæ‰€æœ‰è¯„论的摘è¦"
@@ -1865,9 +1908,6 @@ msgstr "用 AI 生æˆçš„æ述替æ¢çŽ°æœ‰æ述?您所åšçš„任何更改都å°
msgid "AI|Responses generated by AI"
msgstr "ç”± AI 生æˆçš„å“应"
-msgid "AI|Send chat message."
-msgstr "å‘é€èŠå¤©æ¶ˆæ¯ã€‚"
-
msgid "AI|Something went wrong. Please try again later"
msgstr "出错了。请ç¨åŽå†è¯•"
@@ -1887,6 +1927,9 @@ msgstr "现有æ述将在æ交åŽè¢«è¦†ç›–。"
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr "èŠå¤©ä¸­çš„文本太多。请使用较短的文本é‡è¯•ã€‚"
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr "为了帮助我们æ高内容质é‡ï¼Œè¯·å°†æ‚¨çš„å馈å‘é€ç»™æžç‹GitLab 团队。"
@@ -1932,6 +1975,9 @@ msgstr "API模糊测试"
msgid "API Help"
msgstr "API帮助"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API密钥"
@@ -2253,6 +2299,12 @@ msgstr "网络钓鱼"
msgid "AbuseReport|Phone"
msgstr "电è¯"
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr "原因"
@@ -2727,6 +2779,9 @@ msgstr "添加批准规则"
msgid "Add approvers"
msgstr "添加核准人"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "添加å­å²è¯—到å²è¯—"
@@ -2865,9 +2920,6 @@ msgstr "将建议加入批é‡å¤„ç†"
msgid "Add tag"
msgstr "添加标签"
-msgid "Add target branch rule"
-msgstr "添加目标分支规则"
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "将文本添加到登录页é¢ã€‚Markdownå·²å¯ç”¨ã€‚"
@@ -3021,15 +3073,15 @@ msgstr "添加与创建它的 %{issuable_type} å…³è”çš„æ­¤ %{issuable_type}"
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "调整 GitLab UI 轮询更新的频率。"
-msgid "Admin"
-msgstr "管ç†å‘˜"
-
msgid "Admin Area"
msgstr "管ç†ä¸­å¿ƒ"
msgid "Admin Area / Dashboard"
msgstr "管ç†ä¸­å¿ƒ / 仪表盘"
+msgid "Admin Mode"
+msgstr "管ç†å‘˜æ¨¡å¼"
+
msgid "Admin Note"
msgstr "管ç†å‘˜å¤‡æ³¨"
@@ -3039,9 +3091,6 @@ msgstr "管ç†å‘˜é€šçŸ¥"
msgid "Admin message"
msgstr "管ç†å‘˜æ¶ˆæ¯"
-msgid "Admin mode"
-msgstr "管ç†å‘˜æ¨¡å¼"
-
msgid "Admin mode already enabled"
msgstr "管ç†å‘˜æ¨¡å¼å·²å¯ç”¨"
@@ -3399,6 +3448,9 @@ msgstr "有关包å«çš„注册功能的列表,请查阅 %{link_start}文档%{li
msgid "AdminSettings|Git abuse rate limit"
msgstr "Git 滥用率é™åˆ¶"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr "æžç‹GitLab 使用 %{bold_start}Rails%{bold_end} å’Œ %{bold_start}æµè§ˆå™¨ JavaScript%{bold_end} Sentry SDK 将事件å‘é€åˆ° Sentry。è¦ä½¿ Rails 集æˆè®¾ç½®æ›´æ”¹ç”Ÿæ•ˆï¼Œè¯·å¯ç”¨ %{code_start}enable_new_sentry_integration%{code_end} å’Œ %{code_start}enable_new_sentry_clientside_integration%{code_end} 功能标志并é‡æ–°å¯åŠ¨ æžç‹GitLab。"
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr "æžç‹GitLab 使用 %{bold_start}Rails%{bold_end} å’Œ %{bold_start}æµè§ˆå™¨ JavaScript%{bold_end} Sentry SDK 将事件å‘é€åˆ° Sentry。è¦ä½¿ Rails 集æˆè®¾ç½®çš„更改生效,请é‡æ–°å¯åŠ¨æžç‹GitLab。"
@@ -3495,6 +3547,9 @@ msgstr "è¦åŒæ­¥çš„软件包库元数æ®"
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr "æš‚åœElasticsearch 索引"
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr "预接收 Secret 检测"
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr "防止éžç®¡ç†å‘˜ä½¿ç”¨ç¾¤ç»„ã€é¡¹ç›®å’Œä»£ç ç‰‡æ®µçš„选定å¯è§æ€§çº§åˆ«ã€‚"
@@ -4113,6 +4168,9 @@ msgstr "文档"
msgid "AdminUsers|user cap"
msgstr "用户上é™"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "管ç†å‘˜"
@@ -4146,6 +4204,9 @@ msgstr "凭æ®"
msgid "Admin|Deploy Keys"
msgstr "部署密钥"
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr "Geo"
@@ -4257,18 +4318,24 @@ msgstr "密ç æ›´æ–°æˆåŠŸåŽï¼Œæ‚¨å°†è¢«é‡å®šå‘到登录页é¢ã€‚"
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr "删除åŽï¼Œåªèƒ½é€šè¿‡ API æ¢å¤æ´¾ç”Ÿå…³ç³»ã€‚该项目将无法å†æŽ¥æ”¶æˆ–å‘é€åˆå¹¶è¯·æ±‚到上游项目或其他分支。"
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
-msgstr "激活 Apple App Store Connect 集æˆåŽï¼Œå°†åˆ›å»ºä»¥ä¸‹å—ä¿æŠ¤å˜é‡ä»¥ä¾› CI/CD 使用。"
-
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr "导出完æˆåŽï¼Œä»Žé€šçŸ¥ç”µå­é‚®ä»¶æˆ–此页é¢ä¸‹è½½æ•°æ®æ–‡ä»¶ã€‚ 然åŽæ‚¨å¯ä»¥ä»Žå¦ä¸€ä¸ª GitLab 实例的 %{strong_text_start}创建新群组%{strong_text_end} 页é¢å¯¼å…¥æ•°æ®æ–‡ä»¶ã€‚"
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
-msgstr "当您å¯ç”¨é›†æˆåŽï¼Œå°†ä¼šåˆ›å»ºä»¥ä¸‹çš„å—ä¿æŠ¤å˜é‡ä»¥ä¾› CI/CD 使用"
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
+msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr "在阅读这些贡献指å—åŽï¼Œæ‚¨å°†å‡†å¤‡å¥½"
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4617,6 +4684,15 @@ msgstr "测试警报现在应该在您的警报列表中å¯è§ã€‚"
msgid "Algorithm"
msgstr "算法"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "全部"
@@ -4647,9 +4723,6 @@ msgstr "所有符åˆæ¡ä»¶çš„用户"
msgid "All environments"
msgstr "所有环境"
-msgid "All frameworks selected"
-msgstr "已选择的所有框架"
-
msgid "All groups"
msgstr "所有群组"
@@ -4704,6 +4777,9 @@ msgstr "所有的用户都必须具有å称。"
msgid "All users with matching cards"
msgstr "所有具有匹é…å¡ç‰‡çš„用户"
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr "å…许登录到 %{strongOpen}%{group_name}%{strongClose} å—?"
@@ -4761,12 +4837,18 @@ msgstr "å…许此密钥推é€åˆ°è¿™ä¸ªä»“库"
msgid "Allow use of licensed EE features"
msgstr "å…许使用许å¯çš„EE功能"
+msgid "Allow users to create organizations"
+msgstr "å…许用户创建组织"
+
msgid "Allow users to extend their session"
msgstr "å…许用户延长他们的会è¯"
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr "å…许用户注册任æ„应用程åºä»¥å°†æžç‹GitLab 作为 OAuth 供应商。此设置ä¸å½±å“群组级别的 OAuth 应用程åºã€‚"
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "å·²å…许"
@@ -4788,9 +4870,6 @@ msgstr "å…许该组中的项目或å­ç»„覆盖全局设置。"
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "å…许项目使用 Opstrace 集æˆè·Ÿè¸ªé”™è¯¯ã€‚"
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "这里å¯ä»¥æ·»åŠ å’Œç®¡ç† Kubernetes 集群。"
-
msgid "Almost there"
msgstr "å³å°†å®Œæˆ"
@@ -4851,9 +4930,6 @@ msgstr "具有相åŒæŒ‡çº¹çš„%{link_start}警报%{link_end}已打开。è¦æ›´æ”¹
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr "管ç†å‘˜å·²å°†æœ€é•¿åˆ°æœŸæ—¥æœŸè®¾ç½®ä¸º %{maxDate}。%{helpLinkStart}了解更多%{helpLinkEnd}。"
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "您的组织已ç»ä¸ºæ‚¨åˆ›å»ºäº†ä¼ä¸š GitLab è´¦å·ï¼š"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "管ç†å‘˜ä¿®æ”¹äº†æ‚¨åœ¨%{link_to}上的GitLabå¸æˆ·å¯†ç ã€‚"
@@ -4869,9 +4945,6 @@ msgstr "应用%{link_to_client}请求访问您的 GitLab å¸æˆ·ã€‚"
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "已从管ç†é¢æ¿å‘é€è¿‡äº†ä¸€å°ç”µå­é‚®ä»¶é€šçŸ¥ã€‚请等待 %{wait_time_in_words} åŽå†æ¬¡å°è¯•å‘é€ã€‚"
-msgid "An email will be sent with the report attached after it is generated."
-msgstr "报告生æˆåŽï¼Œå°†å‘é€ä¸€å°é™„有此报告的电å­é‚®ä»¶ã€‚"
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "空GitLab用户字段将在所有问题和注释的æ述中添加FogBugz用户的全å(例如“By John Smithâ€ï¼‰ã€‚它还将与项目创建者关è”å’Œ/或分é…这些问题和评论。"
@@ -4947,9 +5020,6 @@ msgstr "ç¦ç”¨æœåŠ¡å°æ—¶å‘生错误。"
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "消除警报时å‘生错误。请刷新页é¢å¹¶å†æ¬¡å°è¯•ã€‚"
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "关闭功能çªå‡ºæ˜¾ç¤ºæ—¶å‘生错误。请刷新页é¢å¹¶å†æ¬¡å°è¯•ã€‚"
-
msgid "An error occurred while drawing job relationship links."
msgstr "绘制作业关系链接时出错。"
@@ -5178,9 +5248,8 @@ msgstr "检索您的设置时出错。é‡æ–°åŠ è½½é¡µé¢ä»¥é‡è¯•ã€‚"
msgid "An error occurred while saving changes: %{error}"
msgstr "ä¿å­˜æ›´æ”¹æ—¶å‘生错误:%{error}"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "ä¿å­˜è®¾ç½®æ—¶å‘生错误。"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "ä¿å­˜æ‚¨çš„设置时å‘生错误。请å°è¯•å†æ¬¡ä¿å­˜ã€‚"
@@ -5345,6 +5414,9 @@ msgstr "%{project_name} 的分æžè®¾ç½®å·²æˆåŠŸæ›´æ–°ã€‚"
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr "您确定è¦å–消创建此仪表盘å—?"
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr "您确定è¦å–消编辑此仪表盘å—?"
@@ -5453,6 +5525,9 @@ msgstr "事件å称"
msgid "Analytics|Event Props"
msgstr "事件属性"
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr "抓å–æ•°æ®å¤±è´¥"
@@ -5561,6 +5636,9 @@ msgstr "更新仪表盘 %{dashboardSlug}"
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr "正在更新å¯è§†åŒ–åˆ†æž %{visualizationName}"
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr "使用å¯è§†åŒ–设计器创建自定义å¯è§†åŒ–。ä¿å­˜å¯è§†åŒ–åŽï¼Œæ‚¨å¯ä»¥å°†å…¶æ·»åŠ åˆ°ä»ªè¡¨ç›˜ä¸­ã€‚"
@@ -5573,18 +5651,21 @@ msgstr "用户属性"
msgid "Analytics|Users"
msgstr "用户"
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr "查看å¯ç”¨çš„仪表盘"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
msgid "Analytics|Viewport"
msgstr "视å£"
msgid "Analytics|Visualization"
msgstr "å¯è§†åŒ–"
-msgid "Analytics|Visualization Designer"
-msgstr "å¯è§†åŒ–设计师"
-
msgid "Analytics|Visualization designer"
msgstr "å¯è§†åŒ–分æžè®¾è®¡å¸ˆ"
@@ -5615,9 +5696,6 @@ msgstr "分æžæ–‡ä»¶â€¦"
msgid "Ancestors"
msgstr "祖先"
-msgid "And this registration token:"
-msgstr "以åŠæ­¤æ³¨å†Œä»¤ç‰Œï¼š"
-
msgid "Anonymous"
msgstr "匿å"
@@ -5678,6 +5756,27 @@ msgstr "追加 %{shrug} 到评论"
msgid "Append the comment with %{tableflip}"
msgstr "追加%{tableflip}到评论"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "拖动您的ç§é’¥æ–‡ä»¶åˆ°æ­¤å¤„或 %{linkStart}点击上传%{linkEnd}。"
@@ -5690,17 +5789,14 @@ msgstr "错误:您正在上传一个éžç§é’¥æ–‡ä»¶ã€‚"
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr "留空则使用您当å‰çš„ç§é’¥ã€‚"
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr "仅在å—ä¿æŠ¤çš„分支和标签上设置å˜é‡"
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr "ä»…å—ä¿æŠ¤çš„分支和标签"
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
-msgstr "Apple App Store Connect å‘行者 ID。"
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
-msgstr "Apple App Store Connect 密钥 ID。"
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
msgstr "Apple App Store Connect Private Key(.p8)"
@@ -5717,9 +5813,6 @@ msgstr "应用"
msgid "Application ID"
msgstr "应用程åºID"
-msgid "Application analytics"
-msgstr "应用程åºåˆ†æž"
-
msgid "Application limits saved successfully"
msgstr "应用程åºé™åˆ¶ä¿å­˜æˆåŠŸ"
@@ -6231,9 +6324,6 @@ msgstr "归档作业"
msgid "Archive project"
msgstr "归档项目"
-msgid "Archive test case"
-msgstr "归档测试用例"
-
msgid "Archived"
msgstr "已存档"
@@ -6297,6 +6387,9 @@ msgstr "您确定è¦åˆ é™¤%{commentType}å—?"
msgid "Are you sure you want to delete this SSH key?"
msgstr "您确定è¦åˆ é™¤æ­¤SSH密钥å—?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "您确定è¦åˆ é™¤æ­¤è¯„论å—?"
@@ -6312,9 +6405,6 @@ msgstr "您确定è¦åˆ é™¤æ­¤æ ‡è®°å—?"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "确定è¦åˆ é™¤è¿™æ¡æµæ°´çº¿å—? 删除æ“作将使所有æµæ°´çº¿ç¼“存过期,并删除所有相关的对象,如构建ã€æ—¥å¿—ã€äº§ç‰©å’Œè§¦å‘器。 æ­¤æ“作ä¸å¯é€†ã€‚"
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr "您确定è¦åˆ é™¤è¿™ä¸ªç›®æ ‡åˆ†æ”¯è§„则å—?"
-
msgid "Are you sure you want to deploy this environment?"
msgstr "您确定è¦éƒ¨ç½²æ­¤çŽ¯å¢ƒå—?"
@@ -6504,9 +6594,6 @@ msgstr "此产物将被永久删除。任何从由此产物所生æˆçš„报告都
msgid "Artifacts|Total artifacts size"
msgstr "产物总大å°"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr "由于这是一个新创建的账户,因此è¦å¼€å§‹ä½¿ç”¨ï¼Œè¯·å•å‡»ä¸‹é¢çš„链接æ¥ç¡®è®¤æ‚¨çš„账户。"
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "éšç€æˆ‘们继续为SAST添加更多的功能,我们éžå¸¸æ¬¢è¿Žæ‚¨é€šè¿‡%{linkStart}此议题%{linkEnd}为SASTé…置功能æä¾›å馈。"
@@ -6522,6 +6609,9 @@ msgstr "将自动检查以逗å·åˆ†éš”的分支列表。留空则包å«æ‰€æœ‰åˆ†
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr "用户的个人访问令牌。用户必须å¯ä»¥è®¿é—®ä»»åŠ¡ã€‚所有评论都归于此用户。"
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr "如果您想了解更多详情,请è”系仓库维护者检查导入状æ€ã€‚"
@@ -6643,15 +6733,12 @@ msgstr "至少需è¦ä¸€ä¸ªä»£ç æ‰€æœ‰è€…批准,以便更改符åˆç›¸åº”çš„ CO
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr "至少一个 %{one_of_required_fields} 字段必须存在"
+msgid "At least one of %{params} must be true"
+msgstr "%{params} 中至少有一个为 true"
+
msgid "At least one of group_id or project_id must be specified"
msgstr "必须指定至少一个group_id或 project_id"
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr "您的个人访问令牌中至少有一个已过期。%{generate_new}"
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr "您的个人访问令牌中至少有一个å³å°†è¿‡æœŸã€‚%{generate_new}"
-
msgid "At risk"
msgstr "存在风险"
@@ -6741,8 +6828,8 @@ msgstr "AWS 区域"
msgid "AuditStreams|AWS S3"
msgstr "AWS S3"
-msgid "AuditStreams|Access Key Xid"
-msgstr "访问密钥 Xid"
+msgid "AuditStreams|Access Key ID"
+msgstr ""
msgid "AuditStreams|Active"
msgstr "有效"
@@ -6819,6 +6906,9 @@ msgstr "事件过滤(å¯é€‰ï¼‰"
msgid "AuditStreams|Filter by audit event type"
msgstr "按审计事件类型过滤"
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr "Google Cloud 日志"
@@ -6855,6 +6945,12 @@ msgstr "ç§å¯†è®¿é—®ç§˜é’¥"
msgid "AuditStreams|Select events"
msgstr "选择事件"
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr "为审计事件设置事件æµ"
@@ -6948,6 +7044,9 @@ msgstr "ç»è¿‡èº«ä»½éªŒè¯çš„ Web 速率é™åˆ¶æœŸï¼ˆä»¥ç§’为å•ä½ï¼‰"
msgid "Authenticated web requests"
msgstr "ç»è¿‡èº«ä»½éªŒè¯çš„ Web 请求"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "认è¯æ–¹å¼"
@@ -7137,12 +7236,6 @@ msgstr "自动解决"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "自动从上游仓库更新此项目的分支和标签。"
-msgid "Automation"
-msgstr "自动化"
-
-msgid "Automation|Automation App"
-msgstr "自动化应用"
-
msgid "Autosave|Note"
msgstr "注æ„"
@@ -7167,12 +7260,18 @@ msgstr "å³å°†åˆ é™¤å¤´åƒã€‚确定继续å—?"
msgid "Average per day: %{average}"
msgstr "å¹³å‡æ¯å¤©: %{average}"
+msgid "Awaiting review"
+msgstr "待审核"
+
msgid "Awaiting user signup"
msgstr "等待用户注册"
msgid "AwardEmoji|No emoji found."
msgstr "未找到表情符å·ã€‚"
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "返回"
@@ -7224,9 +7323,6 @@ msgstr "添加徽章"
msgid "Badges|Add new badge"
msgstr "添加新徽章"
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "添加徽章失败,请检查输入的网å€å¹¶é‡è¯•ã€‚"
-
msgid "Badges|Badge image URL"
msgstr "徽章图片网å€"
@@ -7239,9 +7335,6 @@ msgstr "徽章已ä¿å­˜ã€‚"
msgid "Badges|Delete badge?"
msgstr "删除徽章�"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "删除徽章失败,请é‡è¯•ã€‚"
-
msgid "Badges|Edit badge"
msgstr "编辑徽章"
@@ -7251,9 +7344,18 @@ msgstr "输入一个有效的URL"
msgid "Badges|Example: %{exampleUrl}"
msgstr "示例: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr "添加新徽章失败。请检查 URL,然åŽé‡è¯•ã€‚"
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr "未能删除徽章。请é‡è¯•ã€‚"
+
msgid "Badges|Group Badge"
msgstr "群组徽章"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr "删除此徽章åŽå°† %{strongStart}无法%{strongEnd} æ¢å¤ã€‚"
+
msgid "Badges|Link"
msgstr "链接"
@@ -7287,18 +7389,21 @@ msgstr "支æŒ%{docsLinkStart}å˜é‡%{docsLinkEnd}:%{placeholders}"
msgid "Badges|The badge was deleted."
msgstr "徽章已删除。"
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr "此群组没有徽章,首先在上é¢åˆ›å»ºä¸€ä¸ªæ–°å¾½ç« ã€‚"
-
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr "此项目没有徽章,首先在上é¢åˆ›å»ºä¸€ä¸ªæ–°å¾½ç« ã€‚"
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr "此组没有徽章。添加现有徽章或创建徽章。"
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "您将删除此徽章。已删除的徽章%{strongStart}将无法æ¢å¤%{strongEnd}。"
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr "此项目没有徽章,请先创建第一个徽章。"
msgid "Badges|Your badges"
msgstr "您的徽章"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7308,8 +7413,8 @@ msgstr "Bamboo URL"
msgid "BambooService|Bamboo build plan key."
msgstr "Bamboo构建计划密钥。"
-msgid "BambooService|Bamboo service root URL."
-msgstr "BambooæœåŠ¡æ ¹URL。"
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr "输入新的构建密钥"
@@ -7323,8 +7428,8 @@ msgstr "用 Atlassian Bamboo è¿è¡Œ CI/CD æµæ°´çº¿ã€‚"
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr "使用 Atlassian Bamboo è¿è¡ŒCI/CDæµæ°´çº¿ã€‚您必须在 Bamboo 中设置自动修订标记和仓库触å‘器。 %{docs_link}"
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "对 Bamboo æœåŠ¡å™¨å…·æœ‰ API 访问æƒé™çš„用户。"
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr "å·²å°ç¦"
@@ -7428,9 +7533,6 @@ msgstr "在å¯ç”¨æ­¤é›†æˆä¹‹å‰ï¼Œè¯·åœ¨ Google Chat 中为您希望从该项ç›
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "在æ’入代ç ä¹‹å‰ï¼Œè¯·åŠ¡å¿…阅读分隔æ¯ä¸ªä»£ç ç»„的注释。"
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr "在åˆå¹¶ä¹‹å‰ï¼Œå¿…须在标题或æ述中链接Jira议题"
-
msgid "Begin with the selected commit"
msgstr "从选定的æ交开始"
@@ -7788,6 +7890,9 @@ msgstr "您现在å¯ä»¥ä½¿ç”¨å…±äº« runners çš„å…费计算分钟数。"
msgid "Billings|Your account has been validated"
msgstr "您的å¸æˆ·å·²é€šè¿‡éªŒè¯"
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr "使用 %{plan} SaaS 方案席ä½"
@@ -7818,14 +7923,14 @@ msgstr "加载订阅信æ¯æ—¶å‘生错误。"
msgid "Billing|An error occurred while loading billable members list."
msgstr "加载计费æˆå‘˜åˆ—表时å‘生错误。"
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "加载代ç å»ºè®®é™„加组件的详细信æ¯æ—¶å‘生错误。如果问题ä»ç„¶å­˜åœ¨ï¼Œè¯· %{supportLinkStart}è”系支æŒäººå‘˜%{supportLinkEnd}。"
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr "加载待处ç†æˆå‘˜åˆ—表时出错"
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "加载代ç å»ºè®®æ’件用户时å‘生错误。如果问题ä»ç„¶å­˜åœ¨ï¼Œè¯· %{supportLinkStart}è”系支æŒäººå‘˜%{supportLinkEnd}。"
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while removing a billable member."
msgstr "删除计费æˆå‘˜æ—¶å‘生错误。"
@@ -7842,11 +7947,11 @@ msgstr "直接æˆå‘˜"
msgid "Billing|Enter at least three characters to search."
msgstr "请至少输入三个字符æ‰å¯æœç´¢ã€‚"
-msgid "Billing|Error assigning Code Suggestions add-on"
-msgstr "分é…代ç å»ºè®®æ’件时出错"
+msgid "Billing|Error assigning Duo Pro add-on"
+msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
-msgstr "å–消分é…代ç å»ºè®®é™„加组件时出错"
+msgid "Billing|Error un-assigning Duo Pro add-on"
+msgstr ""
msgid "Billing|Explore paid plans"
msgstr "æµè§ˆä»˜è´¹æ–¹æ¡ˆ"
@@ -7885,12 +7990,6 @@ msgstr "将附加组件分é…给该æˆå‘˜æ—¶å‡ºçŽ°é—®é¢˜ã€‚如果问题ä»ç„¶å­˜
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr "å–消分é…该æˆå‘˜çš„附加组件时出现问题。如果问题ä»ç„¶å­˜åœ¨ï¼Œè¯· %{supportLinkStart}è”系支æŒäººå‘˜%{supportLinkEnd}。"
-msgid "Billing|Subscription end"
-msgstr "订阅结æŸ"
-
-msgid "Billing|Subscription start"
-msgstr "订阅开始"
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "为确ä¿æ‰€æœ‰æˆå‘˜åœ¨æ‚¨çš„试用期结æŸæ—¶éƒ½å¯ä»¥è®¿é—®è¯¥ç¾¤ç»„,您å¯ä»¥å‡çº§åˆ°ä»˜è´¹ç‰ˆã€‚"
@@ -7912,8 +8011,11 @@ msgstr "查看待审批"
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "您将è¦ä»Žè®¢é˜…中删除用户%{username}。如果继续,该用户将从 %{namespace} 群组åŠå…¶æ‰€æœ‰å­ç»„和项目中删除。此æ“作无法撤消。"
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
-msgstr "您已分é…所有å¯ç”¨çš„代ç å»ºè®®é™„加席ä½ã€‚如果您想购买更多å席,请 %{salesLinkStart}è”系销售人员%{salesLinkEnd}。"
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
msgstr "您的群组最近更改为使用基础版。%{over_limit_message}您å¯ä»¥é€šè¿‡åˆ é™¤ä¸å†éœ€è¦è®¿é—®æƒé™çš„æˆå‘˜ï¼Œæˆ–将其切æ¢ä¸ºè¶…é™çŠ¶æ€ï¼Œæ¥ä¸ºæ–°æˆå‘˜é‡Šæ”¾å¸­ä½ã€‚è¦èŽ·å¾—æ— é™æ•°é‡çš„æˆå‘˜ï¼Œæ‚¨å¯ä»¥%{link_start}å‡çº§%{link_end}到专业版或旗舰版。"
@@ -8103,12 +8205,6 @@ msgstr[0] "+ %{displayedIssuablesCount} 更多 %{issuableType}"
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr "创建 %{issuableType} 时出错。请é‡è¯•ã€‚"
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "创建å²è¯—æ—¶å‘生了错误。请é‡è¯•ã€‚"
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "创建列表时å‘生错误。请å†è¯•ä¸€é。"
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "创建列表时å‘生错误。请å†è¯•ä¸€é。"
@@ -8127,9 +8223,6 @@ msgstr "获å–看æ¿æ—¶å‡ºé”™ï¼Œè¯·é‡è¯•ã€‚"
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr "获å–看æ¿æ—¶å‡ºé”™ï¼Œè¯·é‡è¯•ã€‚"
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "获å–å­ç¾¤ç»„æ—¶å‘生错误,请é‡è¯•ã€‚"
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr "获å–å²è¯—时出错,请é‡è¯•ã€‚"
@@ -8139,18 +8232,12 @@ msgstr "获å–群组项目时å‘生错误。请é‡è¯•ã€‚"
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr "获å–群组时出错。请é‡è¯•ã€‚"
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "获å–议题时å‘生错误。请é‡æ–°åŠ è½½é¡µé¢ã€‚"
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr "获å–议题时出错,请é‡è¯•ã€‚"
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr "获å–迭代时出错,请é‡è¯•ã€‚"
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "获å–标记时å‘生错误。请é‡æ–°åŠ è½½é¡µé¢ã€‚"
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr "获å–标记时出错,请é‡è¯•ã€‚"
@@ -8163,51 +8250,27 @@ msgstr "获å–里程碑时出错,请é‡è¯•ã€‚"
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr "获å–最近看æ¿æ—¶å‡ºé”™ï¼Œè¯·é‡è¯•ã€‚"
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "获å–å²è¯—看æ¿æ—¶å‘生错误。请é‡æ–°åŠ è½½é¡µé¢ã€‚"
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "读å–看æ¿è®®é¢˜æ—¶å‡ºé”™ã€‚请é‡è¯•ã€‚"
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "获å–看æ¿åˆ—表时å‘生错误。请é‡æ–°åŠ è½½é¡µé¢ã€‚"
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "读å–看æ¿æ³³é“时出错。请é‡æ–°åŠ è½½é¡µé¢ã€‚"
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr "在获å–看æ¿æ—¶å‘生错误。请é‡æ–°åŠ è½½é¡µé¢ã€‚"
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr "获å–未指派议题时出错,请é‡è¯•ã€‚"
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr "获å–用户时出错,请é‡è¯•ã€‚"
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "生æˆåˆ—表时å‘生错误。请é‡æ–°åŠ è½½é¡µé¢ã€‚"
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr "移动 %{issuableType} 时出错,请é‡è¯•ã€‚"
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "移动议题时å‘生错误,请å†è¯•ä¸€é"
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "移动议题时å‘生错误,请å†è¯•ä¸€é"
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr "移动列表时出错,请é‡è¯•ã€‚"
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "移除列表时å‘生错误。请é‡è¯•ã€‚"
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr "选择å¡ç‰‡æ—¶å‡ºé”™ï¼Œè¯·é‡è¯•ã€‚"
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "更新看æ¿åˆ—表时å‘生错误。请é‡è¯•ã€‚"
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr "更新列表时出错,请é‡è¯•ã€‚"
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] "被 %{blockedByCount} %{issuableType}ç¦ç”¨"
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "收起"
@@ -8236,9 +8302,6 @@ msgstr "展开"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr "无法获å–ç¦ç”¨çš„ %{issuableType}"
-msgid "Boards|Move card"
-msgstr "移动å¡ç‰‡"
-
msgid "Boards|Move to end of list"
msgstr "移动至列表底部"
@@ -8332,6 +8395,9 @@ msgstr "分支已被采用"
msgid "Branch name"
msgstr "分支å称"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr "分支å称模æ¿"
@@ -8341,6 +8407,18 @@ msgstr "分支未载入 - %{branchId}"
msgid "Branch rules"
msgstr "分支规则"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "%{linkStart}支æŒé€šé…符%{linkEnd} ,例如 *-stable 或 production/"
@@ -8407,15 +8485,27 @@ msgstr "分支"
msgid "BranchRules|Branch name or pattern"
msgstr "分支å称或样å¼"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "分支规则详情"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr "检查åˆå¹¶è¯·æ±‚中的状æ€å“应,失败ä¸ä¼šé˜»æ­¢åˆå¹¶ã€‚%{linkStart} 了解更多信æ¯ã€‚%{linkEnd}"
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr "创建å—ä¿æŠ¤çš„分支"
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "创建通é…符:%{searchTerm}"
@@ -8473,6 +8563,12 @@ msgstr "需è¦ä»£ç æ‰€æœ‰è€…的批准。"
msgid "BranchRules|Roles"
msgstr "角色"
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "状æ€æ£€æŸ¥"
@@ -8491,6 +8587,9 @@ msgstr "用户"
msgid "BranchRules|View details"
msgstr "查看详情"
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "默认"
@@ -8503,6 +8602,9 @@ msgstr "分支"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr "与此字符串匹é…的分支将被é‡å®šå‘。支æŒé€šé…符,å称区分大å°å†™ã€‚"
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr "分支:%{source_branch} 到 %{target_branch}"
@@ -8803,6 +8905,12 @@ msgstr "æµè§ˆæ–‡ä»¶"
msgid "Browse templates"
msgstr "æµè§ˆæ¨¡æ¿"
+msgid "Bugs created per month by Priority"
+msgstr "按优先级æ¯æœˆåˆ›å»ºçš„错误"
+
+msgid "Bugs created per month by Severity"
+msgstr "按严é‡ç¨‹åº¦æ¯æœˆåˆ›å»ºçš„错误"
+
msgid "Build cannot be erased"
msgstr "构建无法被删除"
@@ -8836,9 +8944,18 @@ msgstr "%{feature}ï¼ˆéœ€è¦ v%{version})"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr "导入群组时注æ„%{linkStart}å¯è§æ€§è§„则%{linkEnd}。"
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr "请检查æºå®žä¾‹çš„ URL 和个人访问令牌是å¦ç¬¦åˆå¿…è¦çš„è¦æ±‚。"
+
msgid "BulkImport|Destination"
msgstr "目标"
+msgid "BulkImport|Direct transfer"
+msgstr "直接传输"
+
+msgid "BulkImport|Direct transfer history"
+msgstr "直接传输历å²è®°å½•"
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr "直接传输下载文件大å°ä¸Šé™(MiB)"
@@ -8848,17 +8965,26 @@ msgstr "按æºç¾¤ç»„过滤"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr "以下数æ®å°†ä¸ä¼šè¢«è¿ç§»ï¼š%{bullets} 如果您在è¿ç§»ä¸­éœ€è¦æ­¤æ•°æ®ï¼Œè¯· %{host} 系统管ç†å‘˜å‡çº§ GitLab"
-msgid "BulkImport|GitLab Migration history"
-msgstr "GitLab Migration 历å²"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
+msgstr "组导入在æºå®žä¾‹æˆ–目标实例上被ç¦ç”¨äº†ã€‚请è”系管ç†å‘˜åœ¨ä¸¤ä¸ªå®žä¾‹ä¸Šå¯ç”¨å®ƒï¼Œç„¶åŽé‡è¯•ã€‚"
msgid "BulkImport|History"
msgstr "历å²"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr "导入失败。 “%{path}â€å·²å­˜åœ¨ã€‚更改目的地并é‡è¯•ã€‚"
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr "导入失败。目标“%{destination}â€æ— æ•ˆï¼Œæˆ–者您没有æƒé™ã€‚"
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr "å¯¼å…¥å¤±è´¥ã€‚ç›®æ ‡ç½‘å€ %{url}"
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr "导入失败:目标ä¸èƒ½æ˜¯æºç»„çš„å­ç»„。更改目标,然åŽé‡è¯•ã€‚"
-msgid "BulkImport|Import groups from GitLab"
-msgstr "从GitLab导入群组"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr "通过直接传输导入组"
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr "导入已完æˆï¼Œè¯·é€‰æ‹©å¦ä¸€ä¸ªå称å†å¯¼å…¥"
@@ -8875,6 +9001,12 @@ msgstr "导入项目是 %{docsLinkStart}Beta%{docsLinkEnd} 功能。"
msgid "BulkImport|Importing the group failed."
msgstr "导入群组失败。"
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr "无效的æºURL。åªè¾“å…¥æºçš„æžç‹GitLab 实例的基本 URL。"
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr " %{id} 中导入失败的项目"
+
msgid "BulkImport|Last imported to %{link}"
msgstr "上次导入到 %{link}"
@@ -8929,8 +9061,11 @@ msgstr "æº"
msgid "BulkImport|Source group"
msgstr "æºç¾¤ç»„"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
-msgstr "模版/基于文件导入/GitLab è¿ç§»"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr "模æ¿/基于文件的导入/直接传输"
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
+msgstr "ä¸å—支æŒçš„æžç‹GitLab 版本。支æŒçš„最低版本为“%{version}â€ã€‚"
msgid "BulkImport|Update of import statuses with realtime changes failed"
msgstr "更新具有实时å˜æ›´çš„导入状æ€å¤±è´¥"
@@ -8992,9 +9127,6 @@ msgstr "购买更多æµæ°´çº¿æ—¶é—´"
msgid "By %{user_name}"
msgstr "ç”± %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "通过与ä¼ä¸šç”µå­é‚®ä»¶åœ°å€ç»‘定的账å·è¿›è¡Œèº«ä»½éªŒè¯ï¼Œè¯´æ˜Žè¯¥è´¦å·æ˜¯ä¼ä¸šç”¨æˆ·ã€‚ "
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr "默认情况下,所有项目和群组都使用全局通知设置。"
@@ -9134,6 +9266,9 @@ msgstr "所有项目默认使用Auto DevOpsæµæ°´çº¿"
msgid "CICD|Deployment strategy"
msgstr "部署策略"
+msgid "CICD|Developer"
+msgstr "å¼€å‘者"
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr "ç¦ç”¨æ­¤åŠŸèƒ½æ˜¯æ°¸ä¹…性更改。"
@@ -9155,6 +9290,12 @@ msgstr "é™åˆ¶%{italicStart}从%{italicEnd}此项目访问(已废弃)"
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr "é™åˆ¶%{italicStart}访问到%{italicEnd}此项目(已废弃)"
+msgid "CICD|Maintainer"
+msgstr "维护者"
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr "无法å–消管é“和任务"
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr "防止此项目中的 CI/CD 作业令牌被用于访问其他项目,除éžå°†å…¶ä»–项目添加到白åå•ä¸­ã€‚ç¦ç”¨æ­¤åŠŸèƒ½å­˜åœ¨å®‰å…¨é£Žé™©ï¼Œå› ä¸ºæœªç»æŽˆæƒçš„项目å¯èƒ½ä¼šå°è¯•æ£€ç´¢æ´»åŠ¨ä»¤ç‰Œå¹¶è®¿é—® API。%{linkStart}了解更多%{linkEnd}。"
@@ -9218,18 +9359,6 @@ msgstr "请求CVE ID"
msgid "CVE|Why Request a CVE ID?"
msgstr "为什么è¦è¯·æ±‚一个 CVE ID?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr "å¯ç”¨æ­¤åŠŸèƒ½è¡¨ç¤ºæ‚¨æŽ¥å—%{linkStart}测试使用æ¡æ¬¾%{linkEnd}。"
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr "æŒç»­æ€§æ¼æ´žæ‰«æ"
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr "将新资料加入到æžç‹GitLab 咨询资料库时,检测æµæ°´çº¿å¤–çš„æ¼æ´žã€‚"
-
-msgid "CVS|Toggle CVS"
-msgstr "åˆ‡æ¢ CVS"
-
msgid "Cadence is not automated"
msgstr "Cadence ä¸æ˜¯è‡ªåŠ¨åŒ–çš„"
@@ -9248,18 +9377,18 @@ msgstr "Campfire å­åŸŸï¼ˆå¯é€‰ï¼‰"
msgid "Campfire token"
msgstr "Campfire 令牌"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "æ¥è‡ª Campfire çš„ API 身份验è¯ä»¤ç‰Œã€‚"
-msgid "CampfireService|From the end of the room URL."
-msgstr "从房间 URL 的末尾开始。"
+msgid "CampfireService|ID portion of the Campfire room URL."
+msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr "å‘ Campfire èŠå¤©å®¤å‘é€æœ‰å…³æŽ¨é€äº‹ä»¶çš„通知。 %{docs_link}"
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr "%{code_open}.campfirenow.com%{code_close} å­åŸŸå。"
-
msgid "Can be manually deployed to"
msgstr "å¯ä»¥æ‰‹åŠ¨éƒ¨ç½²åˆ°"
@@ -9269,6 +9398,9 @@ msgstr "å¯ä»¥åˆ›å»ºé¡¶çº§ç¾¤ç»„:"
msgid "Can not delete primary training"
msgstr "ä¸èƒ½åˆ é™¤åˆçº§åŸ¹è®­"
+msgid "Can only be present for group level value streams"
+msgstr "åªèƒ½å‡ºçŽ°åœ¨ç¾¤ç»„级别的价值æµä¸­"
+
msgid "Can't apply as the source branch was deleted."
msgstr "由于æºåˆ†æ”¯å·²åˆ é™¤ï¼Œå› æ­¤æ— æ³•åº”用。"
@@ -9719,6 +9851,9 @@ msgstr "在%{duration}åŽ"
msgid "ChatMessage|in %{project_link}"
msgstr "在%{project_link}中"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "å†æ¬¡æ£€æŸ¥"
@@ -9829,6 +9964,9 @@ msgstr "出现未知错误。请刷新此页é¢å†è¯•ã€‚"
msgid "Checkout|Billing address"
msgstr "å¸å•åœ°å€"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "CI 分钟"
@@ -9841,6 +9979,9 @@ msgstr " 支付"
msgid "Checkout|City"
msgstr "城市"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr "计算å•ä½åŒ…"
@@ -9853,6 +9994,9 @@ msgstr "确认购买"
msgid "Checkout|Confirming..."
msgstr "正在确认..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "继续计费"
@@ -9913,6 +10057,9 @@ msgstr "群组"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr "优惠券ç æ— æ•ˆã€‚请输入有效的优惠券ç ã€‚"
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "必须为 %{minimumNumberOfUsers} (使用中的席ä½æ•°ï¼‰æˆ–更多。"
@@ -9970,6 +10117,9 @@ msgstr "è¡—é“地å€"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "æ交信用å¡è¡¨å•å¤±è´¥ï¼Œä»£ç ä¸º %{errorCode}: %{errorMessage}"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "订阅详情"
@@ -9982,6 +10132,9 @@ msgstr "æˆåŠŸ: 订阅"
msgid "Checkout|Tax"
msgstr "税é¢"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "总计"
@@ -10051,9 +10204,6 @@ msgstr "选择文件 …"
msgid "Choose a file"
msgstr "选择一个文件"
-msgid "Choose a group"
-msgstr "选择一个群组"
-
msgid "Choose a template"
msgstr "选择一个模æ¿"
@@ -10117,6 +10267,9 @@ msgstr "获å–此资æºçš„组件时出错"
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr "此选项å¡æ˜¾ç¤ºè‡ªåŠ¨æ”¶é›†çš„有关仓库中组件的信æ¯ï¼Œä½†æœªæ‰¾åˆ°ä»»ä½•ä¿¡æ¯ã€‚"
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr "返回 CI/CD 目录"
@@ -10135,8 +10288,11 @@ msgstr "组件"
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr "创建一个æµæ°´çº¿ç»„件仓库,并使æµæ°´çº¿é…置更快,更容易。"
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
-msgstr "å‘现 CI é…置资æºä»¥å®žçŽ°æ— ç¼ CI/CD 体验。"
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr "å‘现 CI/CD 组件å¯ä»¥é€šè¿‡å…¶ä»–功能改进您的管é“。"
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
+msgstr "编辑您的æœç´¢å¹¶é‡è¯•ã€‚或者 %{linkStart}学习创建组件存储库%{linkEnd}。"
msgid "CiCatalog|Get started with the CI/CD Catalog"
msgstr "从 CI/CD 目录开始"
@@ -10147,18 +10303,15 @@ msgstr "跳转到项目"
msgid "CiCatalog|Last release at %{date}"
msgstr "最åŽå‘布于 %{date}"
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr "将项目标记为 CI/CD 目录资æº"
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr "将项目标记为 CI/CD 目录资æºã€‚%{linkStart}什么是 CI/CD 目录?%{linkEnd}"
-
msgid "CiCatalog|No component available"
msgstr "æ— å¯ç”¨ç»„件"
msgid "CiCatalog|No release available"
msgstr "æ— å¯ç”¨å‘布"
+msgid "CiCatalog|No result found"
+msgstr "找ä¸åˆ°ç»“æžœ"
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr "第 %{currentPage} 页,共 %{totalPage} 页"
@@ -10168,26 +10321,47 @@ msgstr "自述文件"
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr "ç”± %{author} å‘布于 %{timeAgo}"
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
-msgstr "此命å空间中å¯ç”¨çš„æµæ°´çº¿ç»„件的仓库。"
+msgid "CiCatalog|Remove from the CI/CD catalog"
+msgstr "从 CI/CD 目录删除"
+
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
+msgstr "从 CI/CD 目录中删除项目?"
+
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr "æœç´¢å¿…须至少 3 个字符"
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr "将项目标记为 CI/CD 目录资æºã€‚%{linkStart}什么是 CI/CD 目录?%{linkEnd}"
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr "项目和任何已å‘布的版本将从 CI/CD 目录中删除。如果é‡æ–°å¯ç”¨æ­¤åˆ‡æ¢ï¼Œé¡¹ç›®çš„现有版本ä¸ä¼šé‡æ–°æ·»åŠ åˆ°ç›®å½•ä¸­ã€‚您必须 %{linkStart}创建新版本%{linkEnd}。"
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
-msgstr "该项目必须包å«ä¸€ä¸ª README.md 文件和一个 template.yml 文件。å¯ç”¨åŽï¼Œä»“库将在 CI/CD 目录中å¯ç”¨ã€‚"
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr "项目至少有一个版本åŽï¼ŒCI/CD 目录中将å¯æ‰¾åˆ°è¯¥é¡¹ç›®ã€‚"
msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr "èŽ·å– CI/CD 目录时出错。"
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
-msgstr "将项目标记为 CI/CD 目录资æºæ—¶å‡ºé”™ã€‚"
-
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr "èŽ·å– CI/CD 目录资æºæ—¶å‡ºé”™ã€‚"
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr "此项目ä¸å†æ˜¯ CI/CD 目录资æºã€‚"
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr "此项目现在是 CI/CD 目录资æºã€‚"
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
-msgstr "此项目将被标记为 CI/CD 目录资æºå¹¶åœ¨ CI/CD 目录中å¯è§ã€‚æ­¤æ“作ä¸å¯é€†ã€‚"
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr "无法删除作为CI/CD 目录资æºçš„项目。"
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
+msgstr "无法将项目设置为 CI/CD 目录资æºã€‚"
msgid "CiCatalog|Unreleased"
msgstr "未å‘布"
@@ -10195,6 +10369,9 @@ msgstr "未å‘布"
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr "我们想帮助您创建和管ç†æµæ°´çº¿ç»„件仓库,åŒæ—¶ä¹Ÿä½¿å…¶æ›´å®¹æ˜“é‡ç”¨æµæ°´çº¿é…置。"
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "日期范围:%{range}"
@@ -10285,6 +10462,18 @@ msgstr "等待中"
msgid "CiStatusText|Warning"
msgstr "警告"
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr "å˜é‡ååªèƒ½åŒ…å«å­—æ¯ã€æ•°å­—和下划线“_â€ã€‚"
+
msgid "CiVariables|Add variable"
msgstr "添加å˜é‡"
@@ -10372,14 +10561,23 @@ msgstr "指定è¦åœ¨æ­¤è¿è¡Œä¸­ä½¿ç”¨çš„å˜é‡å€¼ã€‚默认使用é…置文件中
msgid "CiVariables|State"
msgstr "状æ€"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr "值至少需è¦åŒ…å« %{charsAmount} 个字符。"
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr "获å–继承的 CI å˜é‡æ—¶å‡ºé”™ã€‚"
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr "æ­¤ %{entity} 有 %{currentVariableCount} 个定义的 CI/CD å˜é‡ã€‚æ¯ä¸ª %{entity} 的最大å˜é‡æ•°æ˜¯ %{maxVariableLimit}。è¦æ·»åŠ æ–°å˜é‡ï¼Œæ‚¨å¿…é¡»å‡å°‘定义å˜é‡çš„æ•°é‡ã€‚"
-msgid "CiVariables|This variable value does not meet the masking requirements."
-msgstr "æ­¤å˜é‡çš„值ä¸ç¬¦åˆéšè—è¦æ±‚。"
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr "无法å±è”½æ­¤å€¼ï¼Œå› ä¸ºå®ƒåŒ…å«ä»¥ä¸‹å­—符: %{unsupportedChars} 和空格。"
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr "无法å±è”½æ­¤å€¼ï¼Œå› ä¸ºå®ƒåŒ…å«ä»¥ä¸‹å­—符: %{unsupportedChars}。"
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
+msgstr "此值ä¸èƒ½è¢«æŽ©ç›–,因为它包å«ç©ºæ ¼ã€‚"
msgid "CiVariables|Type"
msgstr "类型"
@@ -10402,11 +10600,23 @@ msgstr "å˜é‡å°†åœ¨ä½œä¸šæ—¥å¿—中被éšè—。需è¦å€¼æ»¡è¶³æ­£åˆ™è¡¨è¾¾å¼è¦
msgid "CiVariables|Variables"
msgstr "å˜é‡"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr "此处指定的å˜é‡%{boldStart}对外显示%{boldEnd},ä¸æ˜¯%{boldStart}éšè—çš„%{boldEnd}。"
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
-msgstr "å˜é‡å­˜å‚¨æ‚¨å¯ä»¥åœ¨ä½œä¸šè„šæœ¬ä¸­ä½¿ç”¨çš„ä¿¡æ¯ï¼Œå¦‚密ç å’Œå¯†é’¥ã€‚æ¯ä¸ª %{entity} 最多å¯ä»¥å®šä¹‰ %{limit} 个å˜é‡ã€‚"
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
+msgstr "您å¯ä»¥åœ¨ä¸åŒä½ç½®ä½¿ç”¨å…·æœ‰ç›¸åŒå称的 CI/CD å˜é‡ï¼Œä½†å˜é‡å¯èƒ½ä¼šç›¸äº’覆盖。 %{linkStart}å˜é‡çš„优先顺åºæ˜¯ä»€ä¹ˆï¼Ÿ%{linkEnd}"
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
msgstr "您已达到å¯ç”¨å˜é‡çš„最大数é‡ã€‚è¦æ·»åŠ æ–°å˜é‡ï¼Œæ‚¨å¿…é¡»å‡å°‘定义å˜é‡çš„æ•°é‡ã€‚"
@@ -10634,9 +10844,6 @@ msgstr "关闭å²è¯—"
msgid "Close milestone"
msgstr "关闭里程碑"
-msgid "Close sidebar"
-msgstr "关闭侧边æ "
-
msgid "Close this %{quick_action_target}"
msgstr "关闭此%{quick_action_target}"
@@ -11670,17 +11877,35 @@ msgstr "全部展示"
msgid "CodeOwner|Pattern"
msgstr "模å¼"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
-msgstr "å¯ç”¨æ­¤åŠŸèƒ½å³è¡¨ç¤ºæ‚¨åŒæ„ %{terms_link_start}GitLab 测试åè®®%{link_end} 并知晓 GitLab 会将实例中的数æ®ï¼ˆåŒ…括个人数æ®ï¼‰å‘é€ç»™æˆ‘们的 %{ai_docs_link_start}AI æ供商%{link_end}æ¥æ供此功能。"
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
msgid "CodeSuggestionsSM|Code Suggestions"
msgstr "代ç å»ºè®®"
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
-msgstr "为此实例å¯ç”¨ä»£ç å»ºè®® %{beta}"
-
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
-msgstr "为此实例的用户å¯ç”¨ä»£ç å»ºè®®ã€‚%{link_start}什么是代ç å»ºè®®ï¼Ÿ%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
+msgstr "为此实例å¯ç”¨ä»£ç å»ºè®®"
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
msgstr "%{linkStart}代ç å»ºè®®%{linkEnd} 在您开å‘时使用生æˆå¼ AI 为代ç æ供建议。"
@@ -11688,8 +11913,8 @@ msgstr "%{linkStart}代ç å»ºè®®%{linkEnd} 在您开å‘时使用生æˆå¼ AI 为
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr "%{link_start}什么是代ç å»ºè®®ï¼Ÿ%{link_end}"
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
-msgstr "æ¯ä¸ªè®¡è´¹æœˆåªèƒ½ä¸ºç”¨æˆ·åˆ†é…一次代ç å»ºè®®å¸­ä½ã€‚"
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
+msgstr ""
msgid "CodeSuggestions|Code Suggestions"
msgstr "代ç å»ºè®®"
@@ -11697,23 +11922,23 @@ msgstr "代ç å»ºè®®"
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr "代ç å»ºè®®æ’件"
-msgid "CodeSuggestions|Code Suggestions seats used"
-msgstr "已使用的代ç å»ºè®®å¸­ä½"
+msgid "CodeSuggestions|Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
-msgstr "å¯ç”¨ä»£ç å»ºè®®"
+msgid "CodeSuggestions|Duo Pro add-on"
+msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
-msgstr "使用智能推è优化您的编程体验。%{linkStart}代ç å»ºè®®%{linkEnd}使用生æˆå¼ AI 为您在开å‘过程中æ供代ç å»ºè®®ã€‚"
+msgid "CodeSuggestions|Duo Pro seats used"
+msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
-msgstr "在 IDE 中编写代ç æ—¶èŽ·å–代ç å»ºè®®ã€‚%{link_start}了解更多%{link_end}。"
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
-msgstr "介ç»ä»£ç å»ºè®®æ’件"
+msgid "CodeSuggestions|Introducing Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
-msgstr "介ç»ä»£ç å»ºè®®æ’件"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
+msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
msgstr "此群组中的项目å¯ä»¥ä½¿ç”¨ä»£ç å»ºè®®"
@@ -11842,6 +12067,9 @@ msgstr "为消æ¯ç€è‰²"
msgid "ComboSearch is not defined"
msgstr "ComboSearch未定义"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "逗å·åˆ†éš”的电å­é‚®ä»¶åœ°å€åˆ—表。"
@@ -11890,6 +12118,12 @@ msgstr "命令未使用"
msgid "Comment"
msgstr "添加评论"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "评论%{label}'çš„ä½ç½®"
@@ -12167,14 +12401,50 @@ msgstr "已完æˆ"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr "在 %{duration_seconds} 秒内完æˆï¼ˆ%{relative_time})"
-msgid "Compliance Center|Export full report as CSV"
-msgstr "导出完整报告为 CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr "示例:2dc6a3"
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr "导出链监管报告"
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr "导出监管报告"
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr "导出特定æ交的监管报告"
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr "导出项目框架列表"
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
-msgstr "å°†åˆå¹¶è¯·æ±‚è¿è§„导出为 CSV。导出处ç†å®ŒæˆåŽï¼Œæ‚¨å°†æ”¶åˆ°ç”µå­é‚®ä»¶ã€‚"
+msgid "Compliance Center Export|Export violations report"
+msgstr "导出è¿è§„报告"
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
-msgstr "将项目导出为 CSV æ ¼å¼ ã€‚å¯¼å‡ºå®ŒæˆåŽæ‚¨å°†æ”¶åˆ°é‚®ä»¶ã€‚"
+msgid "Compliance Center Export|Invalid hash"
+msgstr "无效的哈希值"
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr "以 CSV æ ¼å¼å‘é€é€‰å®šçš„电å­é‚®ä»¶"
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
+msgstr ""
msgid "Compliance Center|Frameworks"
msgstr "框架"
@@ -12191,6 +12461,9 @@ msgstr "åˆè§„中心"
msgid "Compliance framework"
msgstr "åˆè§„框架"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr "相关项目"
@@ -12203,6 +12476,9 @@ msgstr "æè¿°"
msgid "ComplianceFrameworksReport|Edit framework"
msgstr "编辑框架"
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr "åˆè§„框架|主动åˆè§„框架"
@@ -12212,12 +12488,12 @@ msgstr "添加框架"
msgid "ComplianceFrameworks|Background color"
msgstr "背景颜色"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "å–消"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr "åˆè§„框架导出"
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr "已创建åˆè§„框架"
@@ -12230,9 +12506,15 @@ msgstr "åˆè§„æµæ°´çº¿é…置(å¯é€‰ï¼‰"
msgid "ComplianceFrameworks|Configuration not found"
msgstr "找ä¸åˆ°é…ç½®"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr "默认åˆè§„框架已æˆåŠŸæ›´æ–°"
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "删除åˆè§„框架%{framework}"
@@ -12245,6 +12527,9 @@ msgstr "æè¿°"
msgid "ComplianceFrameworks|Description is required"
msgstr "æ述是必需的"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr "编辑åˆè§„框架"
@@ -12275,9 +12560,15 @@ msgstr "å称"
msgid "ComplianceFrameworks|Name is required"
msgstr "å称是必需的"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr "新建åˆè§„框架"
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr "尚未设置åˆè§„框架"
@@ -12296,12 +12587,18 @@ msgstr "需è¦æ——舰版订阅"
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr "å·²ä¿å­˜å¯¹åˆè§„框架的更改"
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr "为使用此框架的项目设置åˆè§„æµæ°´çº¿é…置。 %{linkStart}如何创建é…置?%{linkEnd}"
msgid "ComplianceFrameworks|Set default"
msgstr "设置默认值"
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr "无法ä¿å­˜æ­¤åˆè§„性框架。请é‡è¯•"
@@ -12419,6 +12716,9 @@ msgstr "更新过滤结果?"
msgid "ComplianceReport|Update result"
msgstr "更新结果"
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr "å·²é…ç½®ç¦æ­¢ä½œè€…批准åˆå¹¶è¯·æ±‚的规则。"
@@ -12479,6 +12779,12 @@ msgstr "阻止æ交者作为核准人"
msgid "ComplianceStandardsAdherence|Project"
msgstr "项目"
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr "需求"
@@ -12506,8 +12812,14 @@ msgstr "查看详情"
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr "查看详情(å¯ç”¨çš„ä¿®å¤ï¼‰"
-msgid "ComplianceViolations|Compliance Violations Export"
-msgstr "è¿çº¦è¡Œä¸ºè®°å½•å¯¼å‡º"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
+msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
msgstr "您的群组 “%{group_name}†的è¿è§„ CSV 记录文件已导出并附加到邮件的附件中。"
@@ -12659,6 +12971,9 @@ msgstr "é…置仓库镜åƒã€‚"
msgid "Configure repository storage."
msgstr "é…置仓库存储。"
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr "é…置您æžç‹GitLab 实例中所有项目的密钥检测行为"
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr "使用 Elasticsearch é…置高级æœç´¢çš„设置。"
@@ -12749,8 +13064,8 @@ msgstr "冲çªï¼šæ­¤æ–‡ä»¶åœ¨æºåˆ†æ”¯ä¸­è¢«é‡å‘½å,但在目标分支中被
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
-msgstr "Confluence 云工作区 URL"
+msgid "Confluence Workspace URL"
+msgstr ""
msgid "ConfluenceService|Confluence Workspace"
msgstr "Confluence工作区"
@@ -12982,6 +13297,9 @@ msgstr "ä½äºŽé¡¹ç›® URL 中的没有å称的镜åƒä»“库。"
msgid "ContainerRegistry|Image tags"
msgstr "é•œåƒæ ‡ç­¾"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr "无效标签:缺少æ述摘è¦"
@@ -13166,6 +13484,9 @@ msgstr "è¦æ‰©å¤§æœç´¢èŒƒå›´ï¼Œè¯·æ›´æ”¹æˆ–删除上é¢çš„筛选器。"
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr "连接到容器镜åƒåº“出错。请å°è¯•åˆ·æ–°é¡µé¢ã€‚如果此错误ä»ç„¶å­˜åœ¨ï¼Œè¯·æŸ¥çœ‹ %{docLinkStart}故障排查文档%{docLinkEnd}。"
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr "当é‡å‘½å正在进行时,新上传到容器注册表的行为被阻止。当å‰ä¸Šä¼ å¯èƒ½å¤±è´¥ï¼Œéœ€è¦é‡æ–°æ£€ç´¢ã€‚"
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "在容器镜åƒåº“中,æ¯ä¸ªé¡¹ç›®éƒ½æœ‰è‡ªå·±çš„空间æ¥å­˜å‚¨å®¹å™¨é•œåƒã€‚ %{docLinkStart}更多信æ¯%{docLinkEnd}"
@@ -13517,8 +13838,8 @@ msgstr "%{calendar_date}的贡献"
msgid "Contributor"
msgstr "贡献者"
-msgid "Contributor statistics"
-msgstr "贡献者统计"
+msgid "Contributor analytics"
+msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
msgstr "控制 CI_JOB_TOKEN CI/CD å˜é‡å¦‚何用于项目之间的 API 访问。"
@@ -13529,6 +13850,9 @@ msgstr "控制是å¦åœ¨ GitLab 中显示客户体验改进内容和第三方优æ
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr "将工作项转æ¢ä¸º %{type}。新类型ä¸æ”¯æŒçš„å°éƒ¨ä»¶å·²è¢«åˆ é™¤ã€‚"
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Cookie域"
@@ -13592,6 +13916,9 @@ msgstr "å¤åˆ¶ä»£ç "
msgid "Copy command"
msgstr "å¤åˆ¶å‘½ä»¤"
+msgid "Copy command to finalize manually"
+msgstr "å¤åˆ¶å‘½ä»¤æ‰‹åŠ¨å®Œæˆ"
+
msgid "Copy commands"
msgstr "å¤åˆ¶å‘½ä»¤"
@@ -13664,9 +13991,6 @@ msgstr "å¤åˆ¶æºåˆ†æ”¯å称"
msgid "Copy to clipboard"
msgstr "å¤åˆ¶åˆ°å‰ªè´´æ¿"
-msgid "Copy token"
-msgstr "å¤åˆ¶ä»¤ç‰Œ"
-
msgid "Copy value"
msgstr "å¤åˆ¶å€¼"
@@ -13850,6 +14174,9 @@ msgstr "无法上传您的设计,因为ä¸æ”¯æŒå·²ä¸Šä¼ ä¸€ä¸ªæˆ–多个的文
msgid "Couldn't assign policy to project or group"
msgstr "无法将策略分é…给项目或群组"
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr "找ä¸åˆ°å®¡è®¡äº‹ä»¶ç±»åž‹çš„事件类型过滤器:%{missing_filters}"
@@ -13913,6 +14240,9 @@ msgstr "创建群组"
msgid "Create a merge request"
msgstr "创建一个åˆå¹¶ç”³è¯·"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "在仓库的根目录创建一个新的 %{codeStart}.gitlab-ci.yml%{codeEnd} 文件以开始æ“作。"
@@ -13943,9 +14273,6 @@ msgstr "在å¸æˆ·ä¸Šåˆ›å»ºä¸ªäººè®¿é—®ä»¤ç‰Œï¼Œä»¥é€šè¿‡ %{protocol} æ¥æ‹‰å–æˆ
msgid "Create a project"
msgstr "创建项目"
-msgid "Create an account using:"
-msgstr "使用以下方å¼åˆ›å»ºå¸æˆ·ï¼š"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr "创建一个事件,æ¯æ¬¡è§¦å‘的警报都会创建事件。"
@@ -14075,9 +14402,6 @@ msgstr "创建å‘布"
msgid "Create requirement"
msgstr "创建需求"
-msgid "Create rules for target branches in merge requests."
-msgstr "为åˆå¹¶è¯·æ±‚中的目标分支创建规则。"
-
msgid "Create service account"
msgstr "创建æœåŠ¡å¸æˆ·"
@@ -14114,6 +14438,9 @@ msgstr "添加消æ¯åˆ°æ ‡ç­¾ã€‚留空将创建一个轻é‡æ ‡ç­¾ã€‚"
msgid "CreateGitTag|Set tag message"
msgstr "设置标签消æ¯"
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "您无æƒåœ¨æ­¤ç¾¤ç»„中创建å­ç¾¤ç»„。"
@@ -14324,6 +14651,9 @@ msgstr "创建于"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "创建了一个分支和一个åˆå¹¶è¯·æ±‚æ¥è§£å†³æ­¤è®®é¢˜ã€‚"
+msgid "Created at"
+msgstr "创建于"
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "创建了分支“%{branch_name}â€å’Œåˆå¹¶è¯·æ±‚以解决此议题。"
@@ -14534,6 +14864,12 @@ msgstr "è´­ä¹°æµæ°´çº¿åˆ†é’Ÿ"
msgid "CurrentUser|Edit profile"
msgstr "编辑个人资料"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr "您的群组之一正在用完"
@@ -14820,9 +15156,6 @@ msgstr "ä¸é€‚用于给定的开始事件"
msgid "CycleAnalytics|project dropdown filter"
msgstr "项目下拉列表筛选器"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr "ä¸æ”¯æŒåˆ†é…的对象"
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr "DAGå¯è§†åŒ–至少需è¦3个ä¾èµ–作业。"
@@ -14851,6 +15184,9 @@ msgstr "接å—测试使用æ¡æ¬¾ï¼Ÿ"
msgid "DORA4Metrics|All labels"
msgstr "所有标记"
+msgid "DORA4Metrics|All topics"
+msgstr "所有主题"
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr "å¹³å‡ï¼ˆæœ€è¿‘%{days}天)"
@@ -15119,9 +15455,6 @@ msgstr "所有"
msgid "DashboardProjects|Personal"
msgstr "个人"
-msgid "Dashboards"
-msgstr "仪表盘"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} 和 %{secondProject}"
@@ -15155,6 +15488,9 @@ msgstr "未找到此项目以å‰çš„扫æ"
msgid "DastConfig|Not enabled"
msgstr "未å¯ç”¨"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr "/graphql"
@@ -15236,6 +15572,9 @@ msgstr "无法更新扫æ工具é…置。请é‡è¯•ã€‚"
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "无法更新站点é…置。请é‡è¯•ã€‚"
+msgid "DastProfiles|Crawl timeout"
+msgstr "Crawl 超时"
+
msgid "DastProfiles|DAST profile library"
msgstr "DAST é…置文件库"
@@ -15413,9 +15752,6 @@ msgstr "站点é…置文件"
msgid "DastProfiles|Site type"
msgstr "站点类型"
-msgid "DastProfiles|Spider timeout"
-msgstr "爬虫超时"
-
msgid "DastProfiles|Submit button"
msgstr "æ交按钮"
@@ -15428,8 +15764,8 @@ msgstr "目标URL"
msgid "DastProfiles|Target timeout"
msgstr "目标超时"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
-msgstr "爬虫é历站点所å…许的最大分钟数。"
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
+msgstr "å…许爬虫é历站点的最大分钟数。"
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
msgstr "被测站点å“应请求所å…许的最大秒数。"
@@ -15739,6 +16075,9 @@ msgstr "默认分支"
msgid "Default branch and protected branches"
msgstr "默认分支和å—ä¿æŠ¤çš„分支"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "议题的默认æ述模æ¿"
@@ -16059,16 +16398,6 @@ msgstr "删除æ“作等待处ç†ã€‚此项目将于%{date}被删除。仓库和å…
msgid "DeletionSettings|Deletion protection"
msgstr "删除ä¿æŠ¤"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] "将已删除的项目ä¿ç•™ %{number} 天"
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "åªæœ‰ç®¡ç†å‘˜æ‰å¯ä»¥åˆ é™¤é¡¹ç›®ã€‚"
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "项目所有者和管ç†å‘˜å¯ä»¥åˆ é™¤é¡¹ç›®ã€‚"
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr "删除的群组和项目ä»ç„¶å¯ä»¥æ¢å¤çš„时长。个人项目总是立å³åˆ é™¤ã€‚"
@@ -16177,12 +16506,18 @@ msgstr "å¯èƒ½æœ‰å¤šä¸ªè·¯å¾„"
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr "获å–此群组的许å¯è¯æ—¶å‡ºçŽ°é—®é¢˜ã€‚"
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr "获å–该群组的项目时出错。请ç¨åŽå†è¯•ã€‚"
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr "该群组的数é‡è¶…过了最大å­ç»„æ•° 600 çš„é™åˆ¶ã€‚ç›®å‰æˆ‘们无法准确显示项目列表。请访问å­ç»„ä¾èµ–项列表以查看此信æ¯ï¼Œæˆ–å‚阅 %{linkStart}ä¾èµ–项列表帮助 %{linkEnd} 页以了解更多信æ¯ã€‚"
msgid "Dependencies|Toggle vulnerability list"
msgstr "切æ¢æ¼æ´žåˆ—表"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "检测到ä¸æ”¯æŒçš„文件"
@@ -16201,9 +16536,6 @@ msgstr "ä¾èµ–项代ç†"
msgid "Dependency Scanning"
msgstr "ä¾èµ–项扫æ"
-msgid "Dependency chains are not supported"
-msgstr "ä¸æ”¯æŒä¾èµ–链"
-
msgid "Dependency list"
msgstr "ä¾èµ–列表"
@@ -16213,6 +16545,9 @@ msgstr "è¦äº†è§£æœ‰å…³åœ¨ä¾èµ–代ç†ç¼“存中存储 Docker é•œåƒçš„其他方æ
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr "缓存中的所有事项都已计划移除。"
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr "已缓存 %{time}"
@@ -16249,18 +16584,27 @@ msgstr "Digest:%{shortDigest}"
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr "å¯ç”¨ä¾èµ–代ç†"
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr "å¯ç”¨ä¾èµ–代ç†ä»¥ç¼“å­˜æ¥è‡ª Docker Hub 的容器镜åƒå¹¶è‡ªåŠ¨æ¸…除缓存。"
msgid "DependencyProxy|Image list"
msgstr "é•œåƒåˆ—表"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr "通过 digest 示例拉å–é•œåƒ"
msgid "DependencyProxy|Scheduled for deletion"
msgstr "计划删除"
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr "缓存中没有镜åƒ"
@@ -16270,6 +16614,9 @@ msgstr "è¦æŸ¥çœ‹é•œåƒå‰ç¼€å’Œç¼“存中的内容,请访问 %{linkStart}Depen
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr "è¦å°† Docker é•œåƒå­˜å‚¨åœ¨ Dependency Proxy 缓存中,请按 %{codeStart}.gitlab-ci.yml%{codeEnd} 文件中的标签拉å–é•œåƒã€‚在此示例中,镜åƒä¸º %{codeStart}alpine:latest%{codeEnd}"
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr "å¯ç”¨åŽï¼Œè¶…过 90 天的镜åƒå°†ä»Žç¼“存中删除。"
@@ -16513,9 +16860,6 @@ msgstr "用户å"
msgid "DeployTokens|Username (optional)"
msgstr "用户å (å¯é€‰)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr "您的新部署令牌用户å"
-
msgid "DeployTokens|Your new deploy token"
msgstr "您的新部署令牌"
@@ -17184,6 +17528,51 @@ msgstr "差异é™åˆ¶"
msgid "Diff notes"
msgstr "差异注释"
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "开始日期和现在之间的差异"
@@ -17310,6 +17699,9 @@ msgstr "放弃对 %{path} 的更改å—?"
msgid "Discard draft"
msgstr "å–消"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord 通知"
@@ -17612,6 +18004,9 @@ msgstr "在列表中上下拖动优先标记以更改它们的优先级。"
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "将您的设计拖到此处,或 %{linkStart}点击上传%{linkEnd}。"
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "拖放或 %{linkStart}上传%{linkEnd} 文件以附加文件"
@@ -17903,6 +18298,9 @@ msgstr "编辑中"
msgid "Edits"
msgstr "编辑"
+msgid "Either the title or description must reference a Jira issue."
+msgstr "标题或æ述必须引用 Jira 问题。"
+
msgid "Elapsed time"
msgstr "已用时间"
@@ -17969,6 +18367,9 @@ msgstr "未知登录邮件通知"
msgid "Email patch"
msgstr "电å­é‚®ä»¶è¡¥ä¸"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "邮件已å‘é€"
@@ -18065,6 +18466,9 @@ msgstr "空文件"
msgid "Enable"
msgstr "å¯ç”¨"
+msgid "Enable Admin Mode"
+msgstr "å¯ç”¨ç®¡ç†æ¨¡å¼"
+
msgid "Enable Akismet"
msgstr "å¯ç”¨ Akismet"
@@ -18101,6 +18505,9 @@ msgstr "å¯ç”¨PlantUML"
msgid "Enable SSL verification"
msgstr "å¯ç”¨ SSL 验è¯"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr "å¯ç”¨Snowplow跟踪"
@@ -18116,9 +18523,6 @@ msgstr "å¯ç”¨æ–°åŠŸèƒ½ï¼šä»…当å‰çº§åˆ«"
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "å…许给定群组中的éžç®¡ç†å‘˜è®¿é—®æ€§èƒ½æ ã€‚"
-msgid "Enable admin mode"
-msgstr "å¯ç”¨ç®¡ç†æ¨¡å¼"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr "å¯ç”¨å’Œç¦ç”¨æœåŠ¡å°ã€‚å¯èƒ½éœ€è¦ä¸€äº›é¢å¤–çš„é…置。 %{link_start}了解更多%{link_end}。"
@@ -18182,6 +18586,9 @@ msgstr "在您的 %{linkStart}用户å好设置%{linkEnd}中å¯ç”¨æˆ–ç¦ç”¨é”®ç
msgid "Enable or disable version check and Service Ping."
msgstr "å¯ç”¨æˆ–ç¦ç”¨ç‰ˆæœ¬æ£€æŸ¥å’ŒæœåŠ¡Ping。"
+msgid "Enable pre-receive secret detection"
+msgstr "å¯ç”¨é¢„接收密钥检测"
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr "å¯ç”¨å¯¹æŒ‡å®šè·¯å¾„请求的速率é™åˆ¶"
@@ -18197,9 +18604,6 @@ msgstr "å¯ç”¨ä»“库检查"
msgid "Enable security training"
msgstr "å¯ç”¨å®‰å…¨åŸ¹è®­"
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "å¯ç”¨å®‰å…¨åŸ¹è®­ï¼Œå¸®åŠ©æ‚¨çš„å¼€å‘者们学习如何修å¤æ¼æ´žã€‚å¼€å‘者å¯ä»¥é€šè¿‡æ‚¨é€‰æ‹©çš„培训供应商,选择与检测到的æ¼æ´žç›¸å…³çš„安全培训。"
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "为该组中的所有项目和å­ç»„å¯ç”¨å…±äº«Runner。"
@@ -18287,6 +18691,9 @@ msgstr "结æŸäºŽ"
msgid "Ends: %{endsAt}"
msgstr "结æŸäºŽï¼š%{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "强制执行åŒé‡è®¤è¯"
@@ -18602,6 +19009,9 @@ msgstr "打开"
msgid "Environments|Open live environment"
msgstr "打开è¿è¡Œä¸­çš„环境"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "é‡æ–°éƒ¨ç½²çŽ¯å¢ƒ"
@@ -18704,15 +19114,12 @@ msgstr "部署级别"
msgid "Environment|Deployments"
msgstr "Deployments"
-msgid "Environment|Environment health"
-msgstr "环境å¥åº·çŠ¶æ€"
+msgid "Environment|Environment status"
+msgstr "环境状æ€"
msgid "Environment|External IP"
msgstr "外部 IP"
-msgid "Environment|Failed"
-msgstr "失败"
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr "ç¦æ­¢ä»Žæ­¤çŽ¯å¢ƒè®¿é—®é›†ç¾¤ä»£ç†ã€‚"
@@ -18725,9 +19132,6 @@ msgstr "Jobs"
msgid "Environment|Kubernetes overview"
msgstr "Kubernetes 概览"
-msgid "Environment|Pending"
-msgstr "等待中"
-
msgid "Environment|Pods"
msgstr "Pods"
@@ -18743,9 +19147,6 @@ msgstr "åŒæ­¥ä¸­"
msgid "Environment|ReplicaSets"
msgstr "ReplicaSets"
-msgid "Environment|Running"
-msgstr "è¿è¡Œä¸­"
-
msgid "Environment|Services"
msgstr "æœåŠ¡"
@@ -18755,9 +19156,6 @@ msgstr "å·²åœæ­¢"
msgid "Environment|StatefulSets"
msgstr "StatefulSets"
-msgid "Environment|Succeeded"
-msgstr "æˆåŠŸ"
-
msgid "Environment|Summary"
msgstr "摘è¦"
@@ -18773,12 +19171,12 @@ msgstr "èŽ·å– %{resourceType} 时出错。"
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr "未ç»æŽˆæƒä»Žæ­¤çŽ¯å¢ƒè®¿é—® %{resourceType}。"
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
-msgstr "æ— æƒä»Žæ­¤çŽ¯å¢ƒè®¿é—®é›†ç¾¤ä»£ç†ã€‚检查您的身份验è¯å¹¶é‡è¯•ã€‚"
-
msgid "Environment|Unhealthy"
msgstr "ä¸å¥åº·"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
+msgstr ""
+
msgid "Epic"
msgstr "å²è¯—"
@@ -19678,9 +20076,6 @@ msgstr "导出 %{requirementsCount} 个需求?"
msgid "Export as CSV"
msgstr "导出为 CSV"
-msgid "Export commit custody report"
-msgstr "导出æ交监管报告"
-
msgid "Export group"
msgstr "导出群组"
@@ -19807,6 +20202,9 @@ msgstr "外部Wiki URL"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr "从侧边æ é“¾æŽ¥åˆ°å¤–部 wiki。"
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://example.com/xxx/wiki/..."
@@ -19890,6 +20288,9 @@ msgstr "无法为此问题创建分支。请å†è¯•ä¸€æ¬¡ã€‚"
msgid "Failed to create a to-do item for the design."
msgstr "无法为设计创建待办事项。"
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "创建框架失败"
@@ -19905,18 +20306,15 @@ msgstr "创建仓库失败"
msgid "Failed to create resources"
msgstr "创建资æºå¤±è´¥"
-msgid "Failed to create target branch rule"
-msgstr "创建目标分支规则失败"
-
msgid "Failed to create wiki"
msgstr "创建Wiki失败"
+msgid "Failed to delete branch target"
+msgstr ""
+
msgid "Failed to delete custom emoji. Please try again."
msgstr "删除自定义表情失败,请é‡è¯•ã€‚"
-msgid "Failed to delete target branch rule"
-msgstr "删除目标分支规则失败"
-
msgid "Failed to deploy to"
msgstr "无法部署到"
@@ -19953,9 +20351,6 @@ msgstr "加载失败"
msgid "Failed to load Roadmap"
msgstr "加载路线图失败"
-msgid "Failed to load assignees."
-msgstr "加载指派人失败。"
-
msgid "Failed to load assignees. Please try again."
msgstr "加载指派人失败。请é‡è¯•ã€‚"
@@ -19983,18 +20378,9 @@ msgstr "无法加载群组,用户和部署密钥。"
msgid "Failed to load groups."
msgstr "加载群组失败。"
-msgid "Failed to load iteration cadences."
-msgstr "加载迭代周期失败。"
-
-msgid "Failed to load iterations."
-msgstr "加载迭代失败。"
-
msgid "Failed to load labels. Please try again."
msgstr "加载标记失败。请é‡è¯•ã€‚"
-msgid "Failed to load milestones."
-msgstr "加载里程碑失败。"
-
msgid "Failed to load milestones. Please try again."
msgstr "加载里程碑失败。请é‡è¯•ã€‚"
@@ -20103,6 +20489,9 @@ msgstr "更新框架失败"
msgid "Failed to update issue status"
msgstr "更新议题状æ€å¤±è´¥"
+msgid "Failed to update organization"
+msgstr "更新组织失败"
+
msgid "Failed to update the Canary Ingress."
msgstr "无法更新Canary Ingress。"
@@ -20395,6 +20784,9 @@ msgstr "文件已移动"
msgid "File name"
msgstr "文件å称"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr "文件æƒé™"
@@ -20674,9 +21066,6 @@ msgstr "对于大于此é™åˆ¶çš„文件,仅索引文件å,文件内容既ä¸
msgid "For general work"
msgstr "关于一般性工作"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr "对于个人使用,请在您的个人电å­é‚®ä»¶åœ°å€ä¸‹åˆ›å»ºä¸€ä¸ªå•ç‹¬çš„è´¦å·ï¼Œä¸è¦ç»‘定到ä¼ä¸šç”µå­é‚®ä»¶åŸŸæˆ–组。"
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr "对于个人使用,请在您的个人电å­é‚®ä»¶åœ°å€ä¸‹åˆ›å»ºä¸€ä¸ªå•ç‹¬çš„è´¦å·ï¼Œä¸è¦ç»‘定到ä¼ä¸šç”µå­é‚®ä»¶åŸŸå。"
@@ -20996,6 +21385,9 @@ msgstr "生æˆæ ¹æœ¬åŽŸå› åˆ†æž"
msgid "Generate site and private keys at"
msgstr "生æˆç«™ç‚¹å’Œç§é’¥åœ¨"
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "使用 JSON æ•°æ®ç”Ÿæˆ"
@@ -21337,12 +21729,6 @@ msgstr "é‡æ–°åŒæ­¥"
msgid "Geo|Resync all"
msgstr "é‡æ–°åŒæ­¥æ‰€æœ‰"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr "é‡æ–°åŒæ­¥æ‰€æœ‰ %{projects_count} 个项目"
-
-msgid "Geo|Resync project"
-msgstr "é‡æ–°åŒæ­¥é¡¹ç›®"
-
msgid "Geo|Retry count"
msgstr "é‡è¯•è®¡æ•°"
@@ -21352,12 +21738,6 @@ msgstr "é‡æ–°æ ¡éªŒ"
msgid "Geo|Reverify all"
msgstr "é‡æ–°æ ¡éªŒæ‰€æœ‰"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr "é‡æ–°éªŒè¯æ‰€æœ‰ %{projects_count} 个项目"
-
-msgid "Geo|Reverify project"
-msgstr "é‡æ–°éªŒè¯é¡¹ç›®"
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr "查看å¤åˆ¶çŠ¶æ€å¹¶ä¸Žä¸»è¦ç«™ç‚¹é‡æ–°åŒæ­¥å’Œé‡æ–°éªŒè¯é¡¹ç›®ã€‚"
@@ -21466,12 +21846,6 @@ msgstr "此实例已订阅到 %{insufficient_license} 级别。Geo 仅适用于è
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr "这将会 %{action} %{replicableType},å¯èƒ½éœ€è¦ä¸€äº›æ—¶é—´æ¥å®Œæˆï¼Œæ‚¨ç¡®å®šè¦ç»§ç»­å—?"
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "å°†è¦é‡æ–°åŒæ­¥æ‰€æœ‰é¡¹ç›®ã€‚å¯èƒ½éœ€è¦ä¸€äº›æ—¶é—´å®Œæˆã€‚确定继续å—?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "å°†è¦é‡æ–°æ ¡éªŒæ‰€æœ‰é¡¹ç›®ã€‚å¯èƒ½éœ€è¦ä¸€äº›æ—¶é—´å®Œæˆã€‚确定继续å—?"
-
msgid "Geo|Time in seconds"
msgstr "时间(秒)"
@@ -21529,9 +21903,6 @@ msgstr "主è¦èŠ‚点"
msgid "Geo|secondary"
msgstr "次è¦èŠ‚点"
-msgid "Get a free instance review"
-msgstr "获得å…费的实例评估"
-
msgid "Get a support subscription"
msgstr "获å–支æŒè®¢é˜…"
@@ -21553,6 +21924,9 @@ msgstr "开始使用错误跟踪"
msgid "Get started!"
msgstr "开始å§ï¼"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21640,9 +22014,15 @@ msgstr "您ä¸èƒ½æŒ‡å®šè¶…过 %{maxAllowedUsers} 个除外的用户。"
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr "GitHub API速率超过é™åˆ¶ã€‚请在%{reset_time}åŽé‡è¯•"
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHub导入"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "*åˆå¹¶è€…:%{author} 于 %{timestamp}*"
@@ -21728,7 +22108,7 @@ msgid "GitLab group: %{source_link}"
msgstr "GitLab 群组:%{source_link}"
msgid "GitLab has redesigned the left sidebar to address customer feedback. View details in %{blog_link_start}this blog post%{link_end}. Here's how to %{issues_link_start}file an issue%{link_end} with the GitLab product team."
-msgstr ""
+msgstr "æžç‹GitLab é‡æ–°è®¾è®¡äº†å·¦ä¾§è¾¹æ æ¥è§£å†³å®¢æˆ·å馈。查看 %{blog_link_start}这篇åšæ–‡%{link_end} 了解详情。如何å‘æžç‹GitLab 产å“团队 %{issues_link_start}æ交问题%{link_end}。"
msgid "GitLab informs you if a new version is available. %{link_start}What information does GitLab Inc. collect?%{link_end}"
msgstr "如果有新版本å¯ç”¨ï¼ŒGitLab 会通知您。%{link_start}GitLab Inc. 收集哪些信æ¯ï¼Ÿ%{link_end}"
@@ -21739,9 +22119,6 @@ msgstr "GitLab是一个完整的DevOpså¹³å°ï¼Œä½œä¸ºå•ä¸ªåº”用程åºå‘ˆçŽ°ï¼Œ
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr "GitLab是一个完整的DevOpså¹³å°ï¼Œä½œä¸ºå•ä¸ªåº”用程åºå‘ˆçŽ°ï¼Œä»Žæ ¹æœ¬ä¸Šæ”¹å˜äº†%{br_tag}å¼€å‘,安全和è¿ç»´å›¢é˜Ÿçš„å作方å¼"
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr "GitLab是æœåŠ¡äºŽæ•´ä¸ªè½¯ä»¶å¼€å‘生命周期的å•ä¸€åº”用程åºã€‚从项目规划和æºç ç®¡ç†åˆ°CI/CDã€ç›‘控和安全。"
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr "大型团队的许多功能是我们 %{link_start}付费产å“%{link_end} 的一部分。您å¯ä»¥å…费试用专业版。"
@@ -21871,8 +22248,8 @@ msgstr "未验è¯"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "正在更新您的页é¢é…ç½®..."
-msgid "GitLabPages|Use multiple versions"
-msgstr "使用多个版本"
+msgid "GitLabPages|Use multiple deployments"
+msgstr ""
msgid "GitLabPages|Use unique domain"
msgstr "使用唯一域å"
@@ -21889,8 +22266,8 @@ msgstr "å¯ç”¨åŽï¼Œä¼šç”Ÿæˆä¸€ä¸ªå”¯ä¸€çš„域åæ¥è®¿é—®é¡µé¢ã€‚"
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr "å¯ç”¨åŽï¼Œæ‰€æœ‰é€šè¿‡HTTP的访问å°è¯•éƒ½ä¼šè‡ªåŠ¨é‡å®šå‘到HTTPS,使用状æ€ä»£ç 301。 需è¦å¯¹æ‰€æœ‰åŸŸå有效的è¯ä¹¦ã€‚%{docs_link_start}了解更多信æ¯ã€‚%{link_end}"
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
-msgstr "å¯ç”¨åŽï¼Œæ‚¨å¯ä»¥åˆ›å»ºå¤šä¸ªé¡µé¢ç«™ç‚¹çš„版本。"
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
+msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
msgstr "当在 GitLab 实例 (%{pages_host})的一般域å下使用 Pages 时,您ä¸èƒ½ä½¿ç”¨ HTTPS 与å­åŸŸçš„å­åŸŸå。 如果您的命å空间或群组å称包å«ä¸€ä¸ªç‚¹ï¼Œè¯¥å称无效。这是一个 HTTP On TLS å议的é™åˆ¶ã€‚ 如果您ä¸å°† HTTP é‡å®šå‘到 HTTPS ,HTTP 页é¢å¯ä»¥æ­£å¸¸å·¥ä½œã€‚ %{docs_link_start}了解更多信æ¯ã€‚%{link_end}"
@@ -22066,24 +22443,24 @@ msgstr "全局通知电å­é‚®ä»¶"
msgid "Global notification level"
msgstr "全局通知级别"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr "%{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr "æä¾› %{count} 个默认结果,使用上下箭头键导航æœç´¢ç»“果列表。"
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
-msgstr "å·²å¯ç”¨%{link_start}精确代ç æœç´¢ï¼ˆç”± Zoekt æ供)%{link_end}"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr "ç¦ç”¨ %{linkStart}精确代ç æœç´¢ï¼ˆç”± Zoekt æ供支æŒï¼‰%{linkEnd} ,因为 %{ref_elem} ä¸æ˜¯é»˜è®¤åˆ†æ”¯ã€‚%{docs_link}"
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
+msgstr "å·²å¯ç”¨%{linkStart}精确代ç æœç´¢ï¼ˆç”± Zoekt æ供)%{linkEnd}"
msgid "GlobalSearch|Aggregations load error."
msgstr "èšåˆåŠ è½½é”™è¯¯ã€‚"
+msgid "GlobalSearch|All available groups"
+msgstr "所有å¯ç”¨ç»„"
+
msgid "GlobalSearch|Archived"
msgstr "已存档"
-msgid "GlobalSearch|Close"
-msgstr "关闭"
-
msgid "GlobalSearch|Command palette"
msgstr "命令é¢æ¿"
@@ -22141,6 +22518,9 @@ msgstr "我作为审核者的åˆå¹¶è¯·æ±‚"
msgid "GlobalSearch|No labels found"
msgstr "未找到标记"
+msgid "GlobalSearch|Nothing found…"
+msgstr "找ä¸åˆ°â€¦"
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr "ä»…æ˜¾ç¤ºæœªç´¢å¼•é¡¹ç›®çš„å‰ %{max_shown}"
@@ -22162,18 +22542,15 @@ msgstr "最近的议题"
msgid "GlobalSearch|Recent merge requests"
msgstr "最近的åˆå¹¶è¯·æ±‚"
+msgid "GlobalSearch|Reset"
+msgstr "é‡ç½®"
+
msgid "GlobalSearch|Result count is over limit."
msgstr "结果计数超过é™åˆ¶ã€‚"
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr "结果已更新, %{count} 个结果å¯ç”¨ï¼Œä½¿ç”¨ä¸Šä¸‹ç®­å¤´é”®æµè§ˆæœç´¢ç»“果列表,或使用 ENTER é”®æ交。"
-msgid "GlobalSearch|Search"
-msgstr "æœç´¢"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "æœç´¢ GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "æœç´¢é¡¹ç›®ã€è®®é¢˜ç­‰ã€‚"
@@ -22201,9 +22578,6 @@ msgstr "æœç´¢è¯çš„长度必须至少为 3 个字符。"
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr "获å–æœç´¢è‡ªåŠ¨å®Œæˆå»ºè®®æ—¶å‡ºé”™ã€‚"
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr "获å–“语法选项â€æ–‡æ¡£æ—¶å‡ºé”™ã€‚"
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr "输入 %{kbdOpen}/%{kbdClose} 进行æœç´¢"
@@ -22213,9 +22587,6 @@ msgstr "输入并按回车键æ交æœç´¢ã€‚"
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "新建议在下é¢æ˜¾ç¤ºã€‚"
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "使用快æ·é”® %{kbdOpen}/%{kbdClose} 开始æœç´¢"
-
msgid "GlobalSearch|Users"
msgstr "用户"
@@ -22330,9 +22701,6 @@ msgstr "转到上一页"
msgid "Go to previous unresolved thread"
msgstr "å‰å¾€ä¸Šä¸€ä¸ªæœªè§£å†³çš„主题"
-msgid "Go to primary site"
-msgstr "转到主站点"
-
msgid "Go to project"
msgstr "跳转到项目"
@@ -22402,6 +22770,9 @@ msgstr "转到您的审核请求"
msgid "Go to your snippets"
msgstr "转到您的代ç ç‰‡æ®µ"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google Cloud"
@@ -22414,6 +22785,9 @@ msgstr "Google Cloud 项目"
msgid "Google Cloud authorizations required"
msgstr "éœ€è¦ Google Cloud 授æƒ"
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "å–消"
@@ -22450,12 +22824,12 @@ msgstr "撤销授æƒ"
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr "撤销授予 GitLab 的授æƒï¼Œä¸ä¼šä½¿æœåŠ¡å¸æˆ·å¤±æ•ˆã€‚"
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
-msgstr "仅在å—ä¿æŠ¤çš„分支和标签上设置å˜é‡"
-
msgid "GooglePlayStore|Protected branches and tags only"
msgstr "ä»…é™å—ä¿æŠ¤çš„分支和标签"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
+msgstr ""
+
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "将您的密钥文件拖动到此处,或%{linkStart}点击上传%{linkEnd}"
@@ -22483,9 +22857,6 @@ msgstr "使用 GitLab 在 Google Play 中构建和å‘布应用程åºã€‚"
msgid "Got it"
msgstr "知é“了"
-msgid "Got it!"
-msgstr "了解ï¼"
-
msgid "Grafana URL"
msgstr "Grafana网å€"
@@ -22624,6 +22995,9 @@ msgstr "群组信æ¯"
msgid "Group information"
msgstr "群组信æ¯"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "分组作业按"
@@ -22694,7 +23068,7 @@ msgid "GroupActivityMetrics|Members added"
msgstr "添加新æˆå‘˜æ•°"
msgid "GroupActivityMetrics|Merge requests created"
-msgstr "åˆå¹¶è¯·æ±‚已创建"
+msgstr "已创建的åˆå¹¶è¯·æ±‚"
msgid "GroupActivityMetrics|Recent activity"
msgstr "最近活动"
@@ -22717,11 +23091,14 @@ msgstr "群组已æˆåŠŸå¯¼å…¥ã€‚"
msgid "GroupImport|Unable to process group import file"
msgstr "无法处ç†ç¾¤ç»„导入文件"
-msgid "GroupPage|Copy group ID"
-msgstr "å¤åˆ¶ç¾¤ç»„ ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "群组 ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} - 无结æŸæ—¥æœŸ"
@@ -22984,6 +23361,9 @@ msgstr "当实例达到用户上é™åŽï¼Œä»»ä½•æ–°å¢žçš„用户或请求访问的
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr "当执行个体达到用户上é™åŽï¼Œä»»ä½•æ–°å¢žçš„用户或请求访问的用户都需è¦ç”±ç®¡ç†å‘˜è¿›è¡Œå®¡æ ¸æ‰èƒ½æ‰¹å‡†ã€‚ è‹¥è¦æ— é™åˆ¶ç”¨æˆ·ä¸Šé™ï¼Œè¯·ç•™ç©ºè¯¥æ ä½ã€‚ 如果您将用户上é™æ”¹ä¸ºæ— é™åˆ¶ï¼Œæ‚¨å¿…é¡»é‡æ–°å¯ç”¨é¡¹ç›®åˆ†äº«å’Œç¾¤ç»„分享。 详细资讯请å‚考 %{project_sharing_docs_link_start}项目分享%{link_end} å’Œ %{group_sharing_docs_link_start}群组分享%{link_end}。增加用户上é™ä¸ä¼šè‡ªåŠ¨æ‰¹å‡†å¾…定的用户。"
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr "分æž"
@@ -23005,6 +23385,9 @@ msgstr "徽章"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr "注æ„,更改群组的父级å¯èƒ½ä¼šäº§ç”Ÿæ„想ä¸åˆ°çš„副作用。%{learn_more_link_start}了解更多。%{learn_more_link_end}"
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "无法更新路径。因为此群组下的项目包å«äº†å®¹å™¨é•œåƒåº“çš„Dockeré•œåƒã€‚请先从您的项目中删除镜åƒåŽé‡è¯•ã€‚"
@@ -23047,12 +23430,21 @@ msgstr "默认为此群组中所有项目的 Auto DevOps æµæ°´çº¿"
msgid "GroupSettings|Email notifications are disabled"
msgstr "电å­é‚®ä»¶é€šçŸ¥å·²ç¦ç”¨"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr "å¯ç”¨ä»·å€¼æµä»ªè¡¨ç›˜çš„åŽå°èšåˆ"
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr "å¯ç”¨è¿™äº›åŠŸèƒ½å³è¡¨ç¤ºæ‚¨æŽ¥å— %{link_start}æžç‹GitLab 测试åè®®%{link_end}。"
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr "å¯ç”¨ SSH è¯ä¹¦"
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr "实验和 Beta 功能"
@@ -23077,6 +23469,9 @@ msgstr "如果父组的å¯è§æ€§ä½ŽäºŽè¯¥ç»„的当å‰å¯è§æ€§ï¼Œåˆ™å­ç»„和项
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "æˆå‘˜ä¸èƒ½é‚€è¯· %{group} åŠå…¶å­ç»„之外的群组"
+msgid "GroupSettings|Namespace setting"
+msgstr "命å空间设置"
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "组织和è”系人å¯ä»¥è¢«åˆ›å»ºå¹¶å…³è”到议题。"
@@ -23101,6 +23496,12 @@ msgstr "%{group} 中的项目ä¸èƒ½ä¸Žå…¶ä»–群组共享"
msgid "GroupSettings|Reporting"
msgstr "报告"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr "选择一个å­ç»„,作为此群组中新项目的自定义模æ¿æºã€‚%{link_start}了解更多%{link_end}。"
@@ -23143,6 +23544,9 @@ msgstr "æ›´æ–°æµæ°´çº¿è®¾ç½®æ—¶å‡ºçŽ°é—®é¢˜: %{error_messages}。"
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr "这些功能正在开å‘中,å¯èƒ½è¿è¡Œä¸ç¨³å®šã€‚"
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "此设置已ç»åº”用于 %{ancestor_group},并已覆盖此å­ç»„的设置。"
@@ -23206,30 +23610,6 @@ msgstr "群组是组织项目和人员的好方法。"
msgid "Groups are the best way to manage projects and members."
msgstr "群组是管ç†é¡¹ç›®å’Œæˆå‘˜çš„最佳方å¼ã€‚"
-msgid "GroupsDropdown|Frequently visited"
-msgstr "ç»å¸¸è®¿é—®çš„群组"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "您ç»å¸¸è®¿é—®çš„群组将出现在这里"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "加载群组中"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "æœç´¢æ‚¨çš„群组"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "å‘生了内部错误."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "对ä¸èµ·ï¼Œæœªæœç´¢åˆ°ä»»ä½•ç¬¦åˆçš„群组"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "此功能需è¦æµè§ˆå™¨æœ¬åœ°å­˜å‚¨æ”¯æŒ"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr "切æ¢ç¼–辑模å¼"
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr "群组是多个项目的集åˆ"
@@ -23290,8 +23670,8 @@ msgstr "创建å­ç»„"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr "输入æºå®žä¾‹çš„ URL。"
-msgid "GroupsNew|GitLab source instance URL"
-msgstr "GitLab æºå®žä¾‹ URL"
+msgid "GroupsNew|GitLab source instance base URL"
+msgstr "æžç‹GitLab æºå®žä¾‹åŸºç¡€ URL"
msgid "GroupsNew|Groups"
msgstr "群组"
@@ -23332,8 +23712,8 @@ msgstr "请询问您的管ç†å‘˜åœ¨ç®¡ç†å‘˜è®¾ç½®ä¸­å¯ç”¨å®ƒã€‚"
msgid "GroupsNew|Please fill in your personal access token."
msgstr "请填写个人访问令牌。"
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
-msgstr "GroupsNew|为è¦ä»Žä¸­å¯¼å…¥çš„æºå®žä¾‹æ供凭æ®ã€‚您å¯ä»¥æ供此实例作为在此实例中移动组的æºã€‚"
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
+msgstr "为è¦ä»Žä¸­å¯¼å…¥çš„ %{url_link_start}æºå®žä¾‹%{url_link_end} æ供凭æ®ã€‚您å¯ä»¥æ供此实例作为在该实例内移动组的æºã€‚"
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
msgstr "记得在您è¦ä»Žä¸­è¿ç§»çš„实例上也å¯ç”¨å®ƒã€‚"
@@ -23455,6 +23835,9 @@ msgstr "将创建一个项目 %{path} 并添加一个README.md。"
msgid "Groups|You're creating a new top-level group"
msgstr "您正在创建一个新的顶级群组"
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "访客"
@@ -23509,6 +23892,15 @@ msgstr "您的 Harbor 用户å的密ç ã€‚"
msgid "HarborIntegration|The name of the project in Harbor."
msgstr "Harbor 中的项目å称。"
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr "使用 Harbor 作为该项目的容器镜åƒåº“。"
@@ -23763,10 +24155,6 @@ msgstr "éšè—主题"
msgid "Hide tooltips or popovers"
msgstr "éšè—工具æ示或弹出窗å£"
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "éšè—值"
-
msgid "Hide values"
msgstr "éšè—值"
@@ -23785,6 +24173,9 @@ msgstr "是å¦æœ‰æ‚¨å¸Œæœ›åœ¨ GitLab 中访问的框架或工作项类型?给æ
msgid "Hierarchy|Planning hierarchy"
msgstr "规划结构"
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr "获å–祖先时出错了。"
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr "获å–å­é¡¹æ—¶å‡ºé”™ã€‚"
@@ -23860,6 +24251,9 @@ msgstr "例行维护"
msgid "Housekeeping successfully started"
msgstr "已开始维护"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr "如何更改我的密ç ï¼Ÿ"
@@ -23950,6 +24344,9 @@ msgstr "很抱歉,我找ä¸åˆ°ä»»ä½•æ–‡æ¡£ä»¥å›žç­”您的问题。"
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] "找到 %d 个国家"
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr "%{linkStart}输入一个新的电è¯å·ç %{linkEnd}"
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr "å·²å‘é€éªŒè¯ç åˆ°æ­¤ç”µå­é‚®ä»¶åœ°å€ã€‚检查您的垃圾邮件文件夹或输入其他电å­é‚®ä»¶åœ°å€ã€‚"
@@ -24062,8 +24456,8 @@ msgstr "在您完æˆåˆ›å»ºå¸æˆ·ä¹‹å‰ï¼Œæˆ‘们需è¦éªŒè¯æ‚¨çš„身份。在验
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "在您登录之å‰ï¼Œæˆ‘们需è¦éªŒè¯æ‚¨çš„身份。请在登录页é¢è¾“入以下验è¯ç ã€‚"
-msgid "IdentityVerification|Complete verification to sign in."
-msgstr "完æˆéªŒè¯ä»¥ç™»å½•ã€‚"
+msgid "IdentityVerification|Complete verification to sign up."
+msgstr "完æˆéªŒè¯ä»¥æ³¨å†Œã€‚"
msgid "IdentityVerification|Confirm your email address"
msgstr "确认您的电å­é‚®ä»¶åœ°å€"
@@ -24074,8 +24468,11 @@ msgstr "国家或地区"
msgid "IdentityVerification|Didn't receive a code?"
msgstr "未收到验è¯ç ï¼Ÿ"
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
-msgstr "没有收到验è¯ç ï¼Ÿ%{linkStart}å‘é€æ–°çš„验è¯ç %{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr "没有收到验è¯ç ï¼Ÿ %{codeLinkStart}å‘é€æ–°ä»£ç %{codeLinkEnd} 或 %{phoneLinkStart}输入新电è¯å·ç %{phoneLinkEnd}"
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
msgid "IdentityVerification|Email update is only offered once."
msgstr "电å­é‚®ä»¶åªèƒ½æ›´æ–°ä¸€æ¬¡ã€‚"
@@ -24146,6 +24543,9 @@ msgstr "å‘é€æ–°çš„验è¯ç "
msgid "IdentityVerification|Send code"
msgstr "å‘é€éªŒè¯ç "
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "出错了,请å†è¯•ä¸€æ¬¡ã€‚"
@@ -24315,7 +24715,7 @@ msgid "If you did not recently try to sign in, you should immediately change you
msgstr "如果您最近没有å°è¯•ç™»å½•ï¼Œè¯·ç«‹å³æ›´æ”¹å¯†ç ï¼š%{password_link}。"
msgid "If you do not renew by %{strong}%{downgrades_on}%{strong_close}, you can't use merge approvals, %{end_message}"
-msgstr "如果您没有在 %{strong}%{downgrades_on}%{strong_close} 之å‰å®Œæˆç»­è®¢ï¼Œåˆ™ä¸èƒ½ç»§ç»­åˆå¹¶æ‰¹å‡†ï¼Œ %{end_message}"
+msgstr "如果您没有在 %{strong}%{downgrades_on}%{strong_close} 之å‰å®Œæˆç»­è®¢ï¼Œåˆ™ä¸èƒ½ä½¿ç”¨åˆå¹¶æ‰¹å‡†ï¼Œ %{end_message}"
msgid "If you don't renew by %{strong}%{downgrades_on}%{strong_close} your instance will become read-only, and you won't be able to create issues or merge requests. You will also lose access to your paid features and support entitlement. %{learn_more_link}"
msgstr "如果您没有在 %{strong}%{downgrades_on}%{strong_close} 之å‰å®Œæˆç»­è®¢ï¼Œæ‚¨çš„实例将å˜ä¸ºåªè¯»ï¼Œå¹¶ä¸”您将无法创建任何议题或åˆå¹¶è¯·æ±‚。您还将失去对付费功能和客æœæ”¯æŒçš„æƒé™ã€‚%{learn_more_link}"
@@ -24433,9 +24833,6 @@ msgstr "导入群组"
msgid "Import group from file"
msgstr "从文件导入群组"
-msgid "Import groups"
-msgstr "导入群组"
-
msgid "Import history"
msgstr "导入历å²"
@@ -24611,12 +25008,12 @@ msgstr "导入中..."
msgid "Import|An error occurred while fetching import details."
msgstr "获å–导入详细信æ¯æ—¶å‡ºé”™ã€‚"
+msgid "Import|Failures for %{id}"
+msgstr "%{id} 失败"
+
msgid "Import|GitHub import details"
msgstr "GitHub 导入详情"
-msgid "Import|GitLab Migration details"
-msgstr "æžç‹GitLab è¿ç§»è¯¦ç»†ä¿¡æ¯"
-
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
msgstr "导入的归档文件的最大解压缩文件大å°(MiB)"
@@ -24629,6 +25026,9 @@ msgstr "从外部对象存储(例如 AWS S3)导入的最大远端文件大å°
msgid "Import|Maximum size of decompressed archive."
msgstr "解压存档的最大大å°ã€‚"
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr "å¿…é¡»åªåŒ…å«æºæžç‹GitLab 实例的基本URL。"
+
msgid "Import|No import details"
msgstr "无导入详情"
@@ -24644,6 +25044,9 @@ msgstr "仓库无法导入。"
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr "在此 URL 上没有有效的 Git 仓库。如果您的 HTTP 仓库ä¸èƒ½å…¬å¼€è®¿é—®ï¼Œè¯·éªŒè¯æ‚¨çš„凭æ®ã€‚"
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr "解压归档文件的超时时间(秒)"
@@ -25130,6 +25533,9 @@ msgstr "指示此 runner 是å¦å¯ä»¥é€‰æ‹©æ— æ ‡ç­¾çš„作业"
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "通知用户没有上传SSH密钥,如果没有SSH秘钥,将无法通过SSH推é€ã€‚"
+msgid "Information"
+msgstr "ä¿¡æ¯"
+
msgid "Infrastructure"
msgstr "基础设施"
@@ -25255,9 +25661,6 @@ msgstr "æŸäº›é¡¹ç›®ä¸å¯è§ï¼Œå› ä¸ºé¡¹ç›®åœ¨ insights.yml 文件中被过滤æ
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr "此项目已在insights.yml文件中筛选掉(è§projects.onlyé…置以了解更多信æ¯)。"
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "安装 GitLab Runner 并确ä¿å…¶æ­£åœ¨è¿è¡Œã€‚"
-
msgid "Installation"
msgstr "安装"
@@ -25643,9 +26046,6 @@ msgstr "无效的文件。"
msgid "Invalid format selected"
msgstr "选定的格å¼æ— æ•ˆ"
-msgid "Invalid hash"
-msgstr "无效哈希"
-
msgid "Invalid input, please avoid emoji"
msgstr "输入无效,请é¿å…使用表情符å·"
@@ -25749,7 +26149,7 @@ msgid "InviteMembersBanner|Invite your colleagues"
msgstr "邀请您的åŒäº‹"
msgid "InviteMembersBanner|We noticed that you haven't invited anyone to this group. Invite your colleagues so you can discuss issues, collaborate on merge requests, and share your knowledge."
-msgstr "ç›®å‰æ‚¨è¿˜æ²¡æœ‰é‚€è¯·ä»»ä½•äººåŠ å…¥è¿™ä¸ªç¾¤ç»„。 您å¯ä»¥é‚€è¯·æ‚¨çš„åŒäº‹åˆ°ç¾¤ç»„ç§ï¼Œä»¥æ–¹ä¾¿è®¨è®ºé—®é¢˜ï¼Œåœ¨åˆå¹¶è¯·æ±‚中进行å作,以åŠåˆ†äº«æ‚¨çš„知识。"
+msgstr "ç›®å‰æ‚¨è¿˜æ²¡æœ‰é‚€è¯·ä»»ä½•äººåŠ å…¥è¿™ä¸ªç¾¤ç»„。 您å¯ä»¥é‚€è¯·æ‚¨çš„åŒäº‹åˆ°ç¾¤ç»„中,以便讨论问题,在åˆå¹¶è¯·æ±‚中进行å作,以åŠåˆ†äº«æ‚¨çš„知识。"
msgid "InviteMembersModal| To get more members, the owner of this top-level group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier."
msgstr "è¦èŽ·å¾—更多æˆå‘˜ï¼Œè¯¥é¡¶çº§ç¾¤ç»„的所有者å¯ä»¥ %{trialLinkStart}开始试用%{trialLinkEnd} 或 %{upgradeLinkStart}å‡çº§%{upgradeLinkEnd} 到付费等级。"
@@ -25851,11 +26251,11 @@ msgstr "è¦èŽ·å¾—更多æˆå‘˜ï¼Œç¾¤ç»„的所有者å¯ä»¥ %{trialLinkStart}开始
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr "è¦é‚€è¯·æ–°ç”¨æˆ·åŠ å…¥æ­¤é¡¶çº§ç¾¤ç»„,您必须删除现有用户。您ä»ç„¶å¯ä»¥ä»Žé¡¶çº§ç¾¤ç»„添加现有用户,包括任何å­ç¾¤ç»„和项目。"
-msgid "InviteMembersModal|Username"
-msgstr "用户å"
+msgid "InviteMembersModal|Username or name"
+msgstr "用户å或å称"
-msgid "InviteMembersModal|Username or email address"
-msgstr "用户å或电å­é‚®ä»¶åœ°å€"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr "用户åã€å称或电å­é‚®ä»¶åœ°å€"
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr "在 %{name},您åªæœ‰ %{count} 个更多的 %{members} 的空间"
@@ -26181,14 +26581,14 @@ msgstr "议题 URL"
msgid "IssueTracker|New issue URL"
msgstr "新建议题URL"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "在外部议题跟踪器中创建议题的 URL。"
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
-msgstr "外部议题跟踪器中项目的 URL。"
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "在外部议题跟踪器中查看议题的 URLã€‚å¿…é¡»åŒ…å« %{colon_id}。"
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "使用 Bugzilla 作为该项目的议题跟踪器。"
@@ -26292,6 +26692,10 @@ msgstr "æ¯æœˆåˆ›å»ºçš„议题"
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr "过去 12 个月 (%{chartDateRange})"
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr "已打开"
@@ -26301,9 +26705,8 @@ msgstr "概览"
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "对ä¸èµ·ï¼Œæ— ç¬¦åˆç­›é€‰å™¨çš„结果"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr "本月 (%{currentMonthYear})"
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr "è¦æ‰©å¤§æœç´¢èŒƒå›´ï¼Œè¯·æ›´æ”¹æˆ–删除上é¢è¿‡æ»¤æ ä¸­çš„过滤器。"
@@ -26344,6 +26747,9 @@ msgstr "ä¾èµ–项扫æ作业è¿è¡ŒæˆåŠŸï¼Œä½†æ‚¨çš„项目中没有检测到ä¾
msgid "It seems that there is currently no available data for code coverage"
msgstr "ç›®å‰ä¼¼ä¹Žæ— å¯ç”¨æ•°æ®æ¥è¿›è¡Œä»£ç è¦†ç›–率计算"
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "你自己"
@@ -26473,6 +26879,9 @@ msgstr "加载迭代周期时出错。"
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr "未完æˆçš„议题将在 %{strongStart}åˆå¤œ%{strongEnd} %{timezone} 添加到下一次迭代。"
+msgid "Iterations|Iteration cadence"
+msgstr "迭代周期"
+
msgid "Iterations|Iteration cadences"
msgstr "迭代周期"
@@ -26602,6 +27011,9 @@ msgstr "Jira-GitLab用户映射模æ¿"
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr "您是 GitLab 管ç†å‘˜å—?"
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr "找ä¸åˆ°å‘½å空间。确ä¿æ‚¨æœ‰è¶³å¤Ÿçš„æƒé™ã€‚"
@@ -26671,15 +27083,15 @@ msgstr "å…³è”群组æˆåŠŸ"
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr "群组是您关è”到此 Jira 实例的 GitLab 群组和å­ç»„。"
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr "为了完æˆè®¾ç½®ï¼Œæ‚¨éœ€è¦åœ¨æžç‹GitLab 中完æˆå‡ ä¸ªæ­¥éª¤ï¼š"
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr "Jira Connect Application ID"
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "Jira Connect Proxy URL"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr "å…³è”群组"
@@ -26731,6 +27143,12 @@ msgstr "告诉我们您的想法ï¼"
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr "Jira 用户ä¸æ˜¯ç«™ç‚¹æˆ–组织管ç†å‘˜ã€‚检查 Jira 中的æƒé™ï¼Œç„¶åŽé‡è¯•ã€‚"
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr "我们很想详细了解您使用 GitLab for Jira Cloud 应用程åºçš„体验。"
@@ -26779,6 +27197,9 @@ msgstr "访问Jira的凭æ®ä¸å…许访问数æ®ã€‚%{docs_link_start}检查您çš
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr "访问 Jira 的凭æ®æ— æ•ˆã€‚检查您的 %{docs_link_start}Jira 集æˆå‡­æ®%{docs_link_end} 并é‡è¯•ã€‚"
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr "于分支%{branch_link}"
@@ -26873,7 +27294,7 @@ msgid "JiraService|Jira issue prefix"
msgstr "Jira 议题å‰ç¼€"
msgid "JiraService|Jira issue regex"
-msgstr "|Jira 议题正则表达å¼"
+msgstr "Jira 议题正则表达å¼"
msgid "JiraService|Jira issue type"
msgstr "Jira 议题类型"
@@ -26938,8 +27359,8 @@ msgstr "使用å‰ç¼€æ¥åŒ¹é… Jira 议题密钥。"
msgid "JiraService|Use custom transitions"
msgstr "使用自定义转æ¢"
-msgid "JiraService|Use regular expression to match Jira issue keys."
-msgstr "使用正则表达å¼åŒ¹é… Jira 议题密钥。"
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
+msgstr "使用正则表达å¼æ¥åŒ¹é… Jira 的议题关键字。正则表达å¼å¿…é¡»éµå¾ª %{link_start}RE2 语法%{link_end}。如果为空,则使用默认行为。"
msgid "JiraService|Using Jira for issue tracking?"
msgstr "使用Jira进行议题跟踪å—?"
@@ -27208,6 +27629,9 @@ msgstr "时长"
msgid "Job|Erase job log and artifacts"
msgstr "擦除作业日志和产物"
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr "外部链接"
@@ -27217,6 +27641,9 @@ msgstr "失败"
msgid "Job|Finished at"
msgstr "完æˆäºŽ"
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "作业产物"
@@ -27289,6 +27716,9 @@ msgstr "æœç´¢ä½œä¸šæ—¥å¿—"
msgid "Job|Show complete raw"
msgstr "显示完整æº"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr "已跳过"
@@ -27409,9 +27839,6 @@ msgstr "秘钥 (PEM)"
msgid "Key details"
msgstr "密钥详细信æ¯"
-msgid "Key result"
-msgstr "关键结果"
-
msgid "Key:"
msgstr "Key:"
@@ -27448,6 +27875,9 @@ msgstr "é”®"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27478,6 +27908,120 @@ msgstr "Kubernetes 集群"
msgid "Kubernetes deployment not found"
msgstr "找ä¸åˆ°Kubernetes部署"
+msgid "KubernetesDashboard|Age"
+msgstr "年龄"
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr "ä»£ç† %{name} ID #%{id}"
+
+msgid "KubernetesDashboard|Agents"
+msgstr "代ç†"
+
+msgid "KubernetesDashboard|Annotations"
+msgstr "注释"
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr "仪表æ¿"
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr "注释"
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr "ç§ç±»"
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr "标记"
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr "å称"
+
+msgid "KubernetesDashboard|Namespace"
+msgstr "命å空间"
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr "待定"
+
+msgid "KubernetesDashboard|Pod"
+msgstr "Pod"
+
+msgid "KubernetesDashboard|Pods"
+msgstr "Pods"
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr "正在è¿è¡Œ"
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr "状æ€"
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr "æˆåŠŸ"
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27572,6 +28116,12 @@ msgstr "标记å¯ä»¥åˆ†é…给议题和åˆå¹¶è¯·æ±‚。为标记加星标å¯ä»¥ä½¿
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr "标记å¯ä»¥åˆ†é…给议题ã€åˆå¹¶è¯·æ±‚å’Œå²è¯—。群组标记å¯ç”¨äºŽç¾¤ç»„中的所有项目。"
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "此迭代中没有议题的标记:"
@@ -27612,8 +28162,8 @@ msgstr "过去 24 å°æ—¶"
msgid "Last Accessed On"
msgstr "最åŽè®¿é—®äºŽ"
-msgid "Last Activity"
-msgstr "最近活动"
+msgid "Last GitLab activity"
+msgstr "上次的æžç‹ GitLab 活动"
msgid "Last Name"
msgstr "姓"
@@ -27630,6 +28180,9 @@ msgstr "最åŽè®¿é—®æ—¶é—´"
msgid "Last activity"
msgstr "上次活动"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "最åŽæ交"
@@ -27913,9 +28466,6 @@ msgstr "设置您的第一个项目的 CI/CD"
msgid "LearnGitLab|Set up your workspace"
msgstr "设置您的工作区"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr "开始学习æžç‹GitLab"
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "å…费试用专业版"
@@ -27946,6 +28496,9 @@ msgstr "您的团队正在æˆé•¿ï¼æ‚¨å·²æˆåŠŸåœ°é‚€è¯·äº†æ–°çš„团队æˆå‘˜åˆ°
msgid "LearnGitlab|- Included in trial"
msgstr "- 包括在试用中"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr "30 天试用åŽï¼Œæ­¤åŠŸèƒ½ä»…在 %{planName} 层å¯ç”¨ã€‚"
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr "请è”系您的管ç†å‘˜ä»¥å¯ç”¨æ­¤æ“作。"
@@ -27961,9 +28514,6 @@ msgstr "查看管ç†å‘˜åˆ—表"
msgid "Leave"
msgstr "退出"
-msgid "Leave admin mode"
-msgstr "离开管ç†å‘˜æ¨¡å¼"
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "退出编辑模å¼ï¼Ÿæ‰€æœ‰æœªä¿å­˜çš„更改都将丢失。"
@@ -28156,8 +28706,8 @@ msgstr "组件"
msgid "Licenses|Components"
msgstr "组件"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
-msgstr "基于 %{linkStart}最新æˆåŠŸçš„%{linkEnd} 扫æ,显示项目中检测到的ä¸ç¬¦åˆé¡¹ç›®ç­–略的许å¯è¯"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
+msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
msgstr "将您的许å¯è¯æ–‡ä»¶æ‹–动到此处,或 %{linkStart}点击上传%{linkEnd}"
@@ -28334,9 +28884,6 @@ msgstr "列表"
msgid "List available repositories"
msgstr "列出å¯ç”¨ä»“库"
-msgid "List of all commits"
-msgstr "所有æ交列表"
-
msgid "List of suitable GCP locations"
msgstr "åˆé€‚çš„ GCP ä½ç½®åˆ—表"
@@ -28370,6 +28917,9 @@ msgstr "加载更多"
msgid "Load more users"
msgstr "加载更多用户"
+msgid "Load new file"
+msgstr "加载新文件"
+
msgid "Loading"
msgstr "加载中"
@@ -28463,39 +29013,15 @@ msgstr "é”定讨论"
msgid "Locks the discussion."
msgstr "é”定讨论."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "关于 GitLab"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr "è”系销售"
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "æµè§ˆ GitLab"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "开始使用"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr "GitLab 学习"
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr "GitLab 文档"
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr "GitLab:DevOps å¹³å°"
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr "与åŒç±»äº§å“相比"
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr "安装 GitLab"
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr "定价"
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr "与专家交谈"
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr "为什么选择 GitLab"
@@ -28523,12 +29049,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr "CI ä¿¡æ¯"
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr "删除候选项?"
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr "删除实验?"
@@ -28583,9 +29103,6 @@ msgstr "Mailgun HTTP webhook ç­¾å密钥"
msgid "Mailgun events"
msgstr "Mailgun事件"
-msgid "Main menu"
-msgstr "主èœå•"
-
msgid "Maintainer"
msgstr "维护者"
@@ -29189,101 +29706,104 @@ msgstr "%{member_name}邀请您使用GitLab"
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr "邀请加入%{project_or_group}%{project_or_group_name}"
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr "动作"
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr "添加新角色"
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr "您确定è¦åˆ é™¤æ­¤è§’色å—?"
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr "基本角色"
-msgid "MemberRoles|Base role to use as template"
-msgstr "用作模æ¿çš„基本角色"
+msgid "MemberRole|Base role to use as template"
+msgstr "è¦ç”¨ä½œæ¨¡æ¿çš„基本角色"
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr "无法获å–å¯ç”¨æƒé™ï¼š%{message}"
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr "创建新角色"
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
+msgstr "æƒé™:"
+
+msgid "MemberRole|Custom roles"
msgstr "自定义角色"
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
-msgstr "基于 %{accessLevel}的自定义角色"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
+msgstr "基于 %{accessLevel} 的自定义角色"
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Delete role"
msgstr "删除角色"
-msgid "MemberRoles|Description"
+msgid "MemberRole|Description"
msgstr "æè¿°"
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Enter a short name."
msgstr "请输入一个简短的å称。"
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Failed to create role."
msgstr "创建角色失败。"
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to delete the role."
msgstr "删除角色失败。"
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to fetch roles."
msgstr "获å–角色失败。"
-msgid "MemberRoles|ID"
+msgid "MemberRole|ID"
msgstr "ID"
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Incident manager"
msgstr "事件管ç†å™¨"
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr "请确ä¿è¯¥ç¾¤ç»„的订阅级别为旗舰版。"
-msgid "MemberRoles|Name"
+msgid "MemberRole|Name"
msgstr "å称"
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|No custom roles for this group"
msgstr "此群组没有自定义角色"
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Permissions"
msgstr "æƒé™"
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Role name"
msgstr "角色å称"
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role successfully created."
msgstr "角色创建æˆåŠŸã€‚"
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully deleted."
msgstr "角色删除æˆåŠŸã€‚"
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr "选择è¦æ·»åŠ æƒé™çš„标准角色。"
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Standard roles"
msgstr "标准角色"
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr "è¦æ·»åŠ æ–°è§’色,请选择“添加新角色â€ã€‚"
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr "è¦æ·»åŠ æ–°è§’色,请选择一个群组,然åŽæ·»åŠ æ–°è§’色。"
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr "è‹¥è¦åˆ é™¤è‡ªå®šä¹‰è§’色,请确ä¿æ²¡æœ‰ç¾¤ç»„æˆå‘˜æ‹¥æœ‰è¯¥è‡ªå®šä¹‰è§’色"
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
-msgstr "å¿…é¡»å¯ç”¨ %{requirement} æ‰èƒ½å¯ç”¨ %{permission}。"
-
msgid "MemberRole|can't be changed"
msgstr "无法更改"
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
-msgstr "无法更改,因为它已分é…给用户。请改为创建新的æˆå‘˜è§’色"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
+msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
msgstr "无法删除,因为它已分é…给用户。删除å‰è¯·è§£é™¤æˆå‘˜è§’色与所有用户的关è”。"
@@ -29576,6 +30096,9 @@ msgstr "åˆå¹¶è¯·æ±‚批准"
msgid "Merge request author cannot push to target project"
msgstr "åˆå¹¶è¯·æ±‚作者无法推é€åˆ°ç›®æ ‡é¡¹ç›®"
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr "åˆå¹¶è¯·æ±‚å˜æ›´æ‘˜è¦"
@@ -29957,6 +30480,9 @@ msgstr "更新您的指标图åƒæ—¶å‡ºçŽ°é—®é¢˜ã€‚"
msgid "MetricImages|There was an issue uploading your image."
msgstr "上传您的指标图åƒæ—¶å‡ºçŽ°é—®é¢˜ã€‚"
+msgid "Metrics"
+msgstr "指标"
+
msgid "Metrics - Grafana"
msgstr "指标 - Grafana"
@@ -29990,15 +30516,9 @@ msgstr "删除指标"
msgid "Metrics|Delete metric?"
msgstr "删除指标?"
-msgid "Metrics|Description"
-msgstr "æè¿°"
-
msgid "Metrics|Edit metric"
msgstr "编辑指标"
-msgid "Metrics|Failed to load metrics."
-msgstr "无法加载指标。"
-
msgid "Metrics|For grouping similar metrics"
msgstr "用于分组类似指标"
@@ -30008,15 +30528,9 @@ msgstr "Y 轴是标记(通常是å•ä½ï¼‰ï¼ŒX 轴总是代表时间。"
msgid "Metrics|Legend label (optional)"
msgstr "图例标记(å¯é€‰ï¼‰"
-msgid "Metrics|Metrics"
-msgstr "指标"
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "必须是有效的 PromQL 查询。"
-msgid "Metrics|Name"
-msgstr "å称"
-
msgid "Metrics|New metric"
msgstr "创建指标"
@@ -30029,9 +30543,6 @@ msgstr "Prometheus查询文档"
msgid "Metrics|There was an error trying to validate your query"
msgstr "å°è¯•éªŒè¯æ‚¨çš„查询时出错"
-msgid "Metrics|Type"
-msgstr "类型"
-
msgid "Metrics|Unit label"
msgstr "å•ä½æ ‡è®°"
@@ -30068,6 +30579,9 @@ msgstr "例如:req / sec"
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr "客户端 ID"
@@ -30291,9 +30805,15 @@ msgstr "最å°å€¼"
msgid "Minimal Access"
msgstr "最å°è®¿é—®æƒé™"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr "最大é™åº¦åœ°é™ä½Žå¯†é’¥è¢«æ交到此æžç‹GitLab 实例中的任何存储库的风险。"
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "在我们预先安排更多镜åƒä¹‹å‰å¯ç”¨çš„最å°å®¹é‡ã€‚"
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr "å–消管é“或作业所需的最低角色"
+
msgid "Minutes"
msgstr "分钟"
@@ -30387,9 +30907,6 @@ msgstr "作者"
msgid "MlExperimentTracking|CI Job"
msgstr "CI 作业"
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr "候选项未链接到 CI 构建"
-
msgid "MlExperimentTracking|Candidate removed"
msgstr "候选项已删除"
@@ -30405,6 +30922,9 @@ msgstr "创建于"
msgid "MlExperimentTracking|Delete candidate"
msgstr "删除候选项"
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr "删除候选项?"
+
msgid "MlExperimentTracking|Delete experiment"
msgstr "删除实验"
@@ -30435,36 +30955,18 @@ msgstr "筛选候选项"
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr "开始使用模型实验ï¼"
-msgid "MlExperimentTracking|ID"
-msgstr "ID"
-
-msgid "MlExperimentTracking|Info"
-msgstr "ä¿¡æ¯"
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr "已记录的候选实验"
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr "MLflow è¿è¡Œ ID"
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr "机器学习实验跟踪"
-msgid "MlExperimentTracking|Metadata"
-msgstr "Metadata"
-
-msgid "MlExperimentTracking|Metrics"
-msgstr "指标"
-
msgid "MlExperimentTracking|Model candidate details"
msgstr "模型候选项详情"
msgid "MlExperimentTracking|Model experiments"
msgstr "模型实验"
-msgid "MlExperimentTracking|Model performance"
-msgstr "模型性能"
-
msgid "MlExperimentTracking|Model removed"
msgstr "模型已删除"
@@ -30480,27 +30982,9 @@ msgstr "没有候选项"
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr "没有为查询记录候选项。使用 MLflow 客户端创建新候选项。"
-msgid "MlExperimentTracking|No logged metadata"
-msgstr "未记录的元数æ®"
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr "未记录的指标"
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr "未记录的å‚æ•°"
-
msgid "MlExperimentTracking|No name"
msgstr "æ— å称"
-msgid "MlExperimentTracking|Parameters"
-msgstr "å‚æ•°"
-
-msgid "MlExperimentTracking|Status"
-msgstr "状æ€"
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr "触å‘者"
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] "%d 模型"
@@ -30509,23 +30993,110 @@ msgid "MlModelRegistry|%d version"
msgid_plural "MlModelRegistry|%d versions"
msgstr[0] "%d 版本"
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr "产物"
+
+msgid "MlModelRegistry|CI Info"
+msgstr "CI ä¿¡æ¯"
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr "未链接到 CI 构建的候选项"
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr "详细信æ¯"
+msgid "MlModelRegistry|Experiment"
+msgstr "测试"
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr "ID"
+
+msgid "MlModelRegistry|Info"
+msgstr "ä¿¡æ¯"
+
msgid "MlModelRegistry|Latest version"
msgstr "最新版本"
+msgid "MlModelRegistry|MLflow run ID"
+msgstr "MLflow è¿è¡Œ ID"
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr "元数æ®"
+
+msgid "MlModelRegistry|Model performance"
+msgstr "模型性能"
+
msgid "MlModelRegistry|Model registry"
msgstr "模型注册表"
-msgid "MlModelRegistry|No models registered in this project"
-msgstr "此项目中没有注册模型"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr "未æä¾›æè¿°"
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr "无记录元数æ®"
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr "无记录的指标"
+
+msgid "MlModelRegistry|No logged parameters"
+msgstr "无记录å‚æ•°"
msgid "MlModelRegistry|No registered versions"
msgstr "无注册版本"
-msgid "MlModelRegistry|This model has no versions"
-msgstr "此模型没有版本"
+msgid "MlModelRegistry|Parameters"
+msgstr "å‚æ•°"
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr "状æ€"
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr "触å‘者"
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
+msgstr ""
msgid "MlModelRegistry|Version candidates"
msgstr "候选版本"
@@ -30549,9 +31120,15 @@ msgstr "关闭"
msgid "Model experiments"
msgstr "模型实验"
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr "模型库"
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "已修改"
@@ -31117,9 +31694,6 @@ msgstr "代ç "
msgid "Navigation|Deploy"
msgstr "部署"
-msgid "Navigation|Enter admin mode"
-msgstr "进入管ç†å‘˜æ¨¡å¼"
-
msgid "Navigation|Explore"
msgstr "探索"
@@ -31132,9 +31706,6 @@ msgstr "常用项目"
msgid "Navigation|Groups you visit often will appear here."
msgstr "您ç»å¸¸è®¿é—®çš„群组将出现在这里。"
-msgid "Navigation|Leave admin mode"
-msgstr "离开管ç†å‘˜æ¨¡å¼"
-
msgid "Navigation|Manage"
msgstr "管ç†"
@@ -31562,15 +32133,15 @@ msgstr "æ— æ•°æ®"
msgid "No data available"
msgstr "æ— å¯ç”¨æ•°æ®"
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr "未检测到部署。使用环境æ¥æŽ§åˆ¶è½¯ä»¶çš„æŒç»­éƒ¨ç½²ã€‚ %{linkStart}了解有关部署作业的更多信æ¯ã€‚%{linkEnd}"
-
msgid "No deployments found"
msgstr "没有找到部署"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr "没有添加电å­é‚®ä»¶å‚与者。没有æ供或它们已ç»å­˜åœ¨ã€‚"
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "未æ供端点"
@@ -31676,6 +32247,9 @@ msgstr "没有其他具有此类å称或æ述的标记"
msgid "No parent group"
msgstr "父群组ä¸å­˜åœ¨"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "没有计划"
@@ -31821,18 +32395,6 @@ msgstr "普通文本"
msgid "Normal view"
msgstr "标准视图"
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr "无法更新新的导航å好设置。请ç¨åŽå†è¯•ã€‚"
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr "新导航"
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "新版导航æ "
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "切æ¢æ–°å¯¼èˆª"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr "并éžæ‰€æœ‰æµè§ˆå™¨éƒ½æ”¯æŒWebAuthn。因此,我们需è¦æ‚¨é¦–先设置一个åŒé‡èº«ä»½éªŒè¯åº”用。这样å³ä½¿æ‚¨ä½¿ç”¨çš„æµè§ˆå™¨ä¸å—支æŒï¼Œæ‚¨ä¹Ÿå¯ä»¥ç™»å½•ã€‚"
@@ -31842,6 +32404,9 @@ msgstr "并éžæ‰€æœ‰æµè§ˆå™¨éƒ½æ”¯æŒ WebAuthn。首次注册åŒé‡èº«ä»½éªŒè¯
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "尚未处ç†æ‰€æœ‰æ•°æ®ï¼Œå› æ­¤æ‰€é€‰æ—¶é—´èŒƒå›´å†…图表的ä¸ä¸€å®šå®Œå…¨å‡†ç¡®ã€‚"
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr "ä¸é€‚用。"
@@ -31857,6 +32422,9 @@ msgstr "对å—ä¿æŠ¤çš„分支ä¸å¯ç”¨"
msgid "Not confidential"
msgstr "éžç§å¯†"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "未找到"
@@ -31875,6 +32443,9 @@ msgstr "未开始"
msgid "Not supported"
msgstr "ä¸æ”¯æŒ"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "备注"
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "审核者: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr "更改åˆå¹¶è¯·æ±‚的审核者"
@@ -32080,6 +32654,12 @@ msgstr "通知已开å¯ã€‚"
msgid "Notify users by email when sign-in location is not recognized."
msgstr "无法识别登录ä½ç½®æ—¶é€šè¿‡ç”µå­é‚®ä»¶é€šçŸ¥ç”¨æˆ·ã€‚"
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr "%{author_link} 的议题 %{issue_reference_link} å³å°†åˆ°æœŸã€‚"
@@ -32128,6 +32708,12 @@ msgstr "%{paragraph_start}Hi %{name}ï¼%{paragraph_end} %{paragraph_start}您的
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr "%{project_link_start}下载%{project_link_end} 项目导出。"
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr "%{singular_or_plural_line} %{error_lines}:找ä¸åˆ°æˆ–ä¸æ”¯æŒå·¥ä½œé¡¹ç±»åž‹ã€‚"
@@ -32158,18 +32744,15 @@ msgstr "远程镜åƒæ›´æ–°å¤±è´¥ã€‚"
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr "到期åŽï¼Œæ‚¨å¯ä»¥%{a_start}请求一个新的%{a_end}。"
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr "关于åˆå¹¶è¯·æ±‚ %{mr_link} 的所有讨论å‡å·²ç”± %{name} 解决"
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr "还有 %{total_stripped_new_commits_count} 个更多"
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "指派人从 %{fromNames} 更改为 %{toNames}"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "指派人更改为 %{toNames}"
-
msgid "Notify|Author: %{author_name}"
msgstr "作者:%{author_name}"
@@ -32215,6 +32798,9 @@ msgstr "在 %{singular_or_plural_line}: %{error_lines} 上å‘现错误。请检æ
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr "指纹:%{fingerprint}"
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr "这是 %{project_link}的 CSV 导入结果。"
@@ -32239,6 +32825,9 @@ msgstr "如果您ä¸å†æƒ³åœ¨ Pages 中使用这个域å,请从您的项目ä¸
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr "ä¸æ­£ç¡®çš„ %{code_open}From%{code_end} header:"
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr "ä¸æ­£ç¡®çš„验è¯ä»¤ç‰Œ: "
@@ -32329,6 +32918,9 @@ msgstr "项目 %{project_name} 无法导出。"
msgid "Notify|Project %{project_name} was exported successfully."
msgstr "项目 %{project_name} å·²æˆåŠŸå¯¼å‡ºã€‚"
+msgid "Notify|Read timeout:"
+msgstr "读å–超时:"
+
msgid "Notify|Remote mirror"
msgstr "远程镜åƒ"
@@ -32344,6 +32936,9 @@ msgstr "管ç†å‘˜ä¸ºæ‚¨åˆ›å»ºäº†ä¸€ä¸ªå¸æˆ·ã€‚现在您是公å¸åº”用程åºçš„
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "æµæ°´çº¿ %{pipeline_link} çš„ Auto DevOps æµæ°´çº¿å¤±è´¥ï¼Œå·²åœ¨ %{project_link} 中被ç¦ç”¨ã€‚为了使用 Auto DevOps æµæ°´çº¿å’Œæ‚¨çš„项目,请查看 %{supported_langs_link},相应调整您的项目,并在您的 %{settings_link} 内开å¯Auto DevOps æµæ°´çº¿ã€‚"
+msgid "Notify|The SMTP server did not respond in time."
+msgstr "SMTPæœåŠ¡å™¨æ²¡æœ‰åŠæ—¶å“应。"
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr "未包å«æ­¤æ–‡ä»¶çš„差异,因为它太大。"
@@ -32356,8 +32951,8 @@ msgstr "下载链接将于24å°æ—¶åŽè¿‡æœŸã€‚"
msgid "Notify|The errors we encountered were:"
msgstr "我们é‡åˆ°çš„错误是:"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "æ供的凭æ®ï¼ˆç”¨æˆ·å和密ç ï¼‰è¢« SMTP æœåŠ¡å™¨æ‹’ç»ã€‚"
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr "给定的凭è¯ï¼ˆç”¨æˆ·å和密ç ï¼‰è¢« SMTP æœåŠ¡å™¨æ‹’ç»ï¼Œæˆ–者您需è¦æ˜Žç¡®è®¾ç½®éªŒè¯æ–¹æ³•ã€‚"
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
msgstr "该项目现在ä½äºŽ %{project_full_name_link_start}%{project_full_name}%{link_end}下。"
@@ -32485,6 +33080,9 @@ msgstr "员工人数"
msgid "Number of files touched"
msgstr "改动的文件数"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "副本数"
@@ -32503,27 +33101,48 @@ msgstr "%{author_link} çš„OKR %{work_item_link} 需è¦æ›´æ–°ã€‚"
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr "更新截止日期: %{update_due_date}"
-msgid "OKR|Existing key result"
-msgstr "现有关键结果"
-
-msgid "OKR|Existing objective"
-msgstr "现有目标"
-
-msgid "OKR|New key result"
-msgstr "新建关键结果"
+msgid "OWASP Top 10 2017"
+msgstr ""
-msgid "OKR|New objective"
-msgstr "新建目标"
+msgid "OWASP Top 10 2021"
+msgstr ""
msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr "对象在æœåŠ¡å™¨ä¸Šä¸å­˜åœ¨, 或者您没有访问它的æƒé™"
-msgid "Objective"
-msgstr "目标"
+msgid "ObservabilityMetrics|Date"
+msgstr "日期"
+
+msgid "ObservabilityMetrics|Description"
+msgstr "æè¿°"
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr "错误:加载指标详情失败。请å°è¯•é‡æ–°åŠ è½½é¡µé¢ã€‚"
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr "加载指标失败。"
+
+msgid "ObservabilityMetrics|Metric Details"
+msgstr "指标详细信æ¯"
msgid "ObservabilityMetrics|Metrics"
msgstr "指标"
+msgid "ObservabilityMetrics|Name"
+msgstr "å称"
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr "从开始æœç´¢æŒ‡æ ‡..."
+
+msgid "ObservabilityMetrics|Type"
+msgstr "类型"
+
+msgid "ObservabilityMetrics|Value"
+msgstr "值"
+
msgid "Observability|Enable"
msgstr "å¯ç”¨"
@@ -33066,9 +33685,6 @@ msgstr "仅自己å¯è§"
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr "åªæœ‰åœ¨ä¸“业版åŠä»¥ä¸Šç‰ˆæœ¬ä¸­ï¼Œâ€œæŠ¥å‘Šè€…â€åŠä»¥ä¸Šè§’色æ‰èƒ½çœ‹åˆ°ç”Ÿäº§åŠ›åˆ†æžã€‚"
-msgid "Oops, are you sure?"
-msgstr "您确定å—?"
-
msgid "Open"
msgstr "开放中"
@@ -33105,9 +33721,6 @@ msgstr "打开新窗å£"
msgid "Open raw"
msgstr "打开原始文件"
-msgid "Open sidebar"
-msgstr "打开侧边æ "
-
msgid "Open: %{open}"
msgstr "å¼€å¯: %{open}"
@@ -33198,6 +33811,9 @@ msgstr "%{linkStart}组织%{linkEnd} 是ä¿å­˜æ‚¨çš„群组和项目的顶级容å
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr "群组是多个项目的集åˆã€‚如果您在一个群组下组织项目,其è¿ä½œæ–¹å¼ç±»ä¼¼äºŽæ–‡ä»¶å¤¹ã€‚"
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr "更改您的组织 URL æ—¶å‘生错误。请å†è¯•ä¸€æ¬¡ã€‚"
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr "创建组织时出错。请å†è¯•ä¸€æ¬¡ã€‚"
@@ -33216,6 +33832,12 @@ msgstr "加载用户组织时出错。请刷新页é¢å†è¯•ä¸€æ¬¡ã€‚"
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr "更新您的组织时出错。请å†è¯•ä¸€æ¬¡ã€‚"
+msgid "Organization|Change organization URL"
+msgstr "更改组织 URL"
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr "更改一个组织的 URL å¯èƒ½ä¼šäº§ç”Ÿæ„外的副作用。"
+
msgid "Organization|Choose what organization you want to see by default."
msgstr "选择您想è¦é»˜è®¤æŸ¥çœ‹çš„组织。"
@@ -33264,7 +33886,16 @@ msgstr "组织 URL"
msgid "Organization|Organization URL is required."
msgstr "组织 URL 为必填项。"
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr "组织 URL 太短(最å°ä¸º 2 个字符)。"
+
+msgid "Organization|Organization URL successfully changed."
+msgstr "组织 URL 更改æˆåŠŸã€‚"
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr "组织已æˆåŠŸæ›´æ–°ã€‚"
msgid "Organization|Organizations"
msgstr "组织|组织"
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr "执行高级选项,如删除组织。"
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr "公开 - 无需身份验è¯å³å¯è®¿é—®è¯¥ç»„织。"
@@ -33328,7 +33962,7 @@ msgid "Orphaned member"
msgstr "孤儿æˆå‘˜"
msgid "Other"
-msgstr ""
+msgstr "其他"
msgid "Other available runners"
msgstr "其它å¯ç”¨çš„Runner"
@@ -33408,6 +34042,66 @@ msgstr "概览"
msgid "Overwrite diverged branches"
msgstr "覆盖分å‰åˆ†æ”¯"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "由%{image_tag}拥有"
@@ -33477,6 +34171,9 @@ msgstr "包已æˆåŠŸåˆ é™¤"
msgid "Package file size limits"
msgstr "软件包文件大å°é™åˆ¶"
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr "软件包构æˆå·²å­˜åœ¨"
@@ -33552,6 +34249,9 @@ msgstr "应用分组: %{group}"
msgid "PackageRegistry|App name: %{name}"
msgstr "应用å称: %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr "作者电å­é‚®ä»¶ï¼š %{authorEmail}"
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr "ç”±%{author}在%{datetime}触å‘çš„æµæ°´çº¿%{link}所构建"
@@ -33762,6 +34462,9 @@ msgstr "实例级别"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr "无效的软件包:元数æ®æå–失败"
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr "关键字: %{keywords}"
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr "上次下载于 %{dateTime}"
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] "软件包有 %{updatesCount} 个存档更新"
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr "软件包由分支%{branch}上的%{link}æ交所更新,由æµæ°´çº¿%{pipeline}构建并于%{datetime}å‘布到库"
@@ -33844,6 +34553,9 @@ msgstr "Pip命令"
msgid "PackageRegistry|Project-level"
msgstr "项目级别"
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr "如果软件包å称或版本符åˆæ­¤æ­£åˆ™è¡¨è¾¾å¼ï¼Œåˆ™å‘布软件包。"
@@ -33862,6 +34574,9 @@ msgstr "于 %{date} å‘布到 %{projectName}"
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr "于%{datetime}å‘布到%{project}软件包注册表"
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -33928,6 +34643,9 @@ msgstr "对ä¸èµ·ï¼Œæ²¡æœ‰ç¬¦åˆç­›é€‰å™¨çš„任何结果"
msgid "PackageRegistry|Source project located at %{link}"
msgstr "æºé¡¹ç›®ä½äºŽ%{link}"
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr "摘è¦ï¼š%{summary}"
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr "目标 SHA:%{sha}"
@@ -33964,6 +34682,9 @@ msgstr "无法获å–软件包版本信æ¯ã€‚"
msgid "PackageRegistry|Unable to load package"
msgstr "无法加载软件包"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr "当一个åŒååŒç‰ˆæœ¬çš„包被上传到仓库时,更多的 assets 被添加到包中。为了节çœå­˜å‚¨ç©ºé—´ï¼Œè¯·ä»…ä¿ç•™æœ€æ–°çš„ assets。"
@@ -34105,6 +34826,9 @@ msgstr "密ç éªŒè¯ä¸å¯ç”¨ã€‚"
msgid "Password confirmation"
msgstr "密ç ç¡®è®¤"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "密ç ä¿®æ”¹æˆåŠŸ"
@@ -34252,6 +34976,9 @@ msgstr "执行代ç å®¡æŸ¥å¹¶é€šè¿‡åˆå¹¶è¯·æ±‚增强å作。"
msgid "Perform common operations on GitLab project"
msgstr "在GitLab项目上执行常è§æ“作"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "性能优化"
@@ -34396,6 +35123,9 @@ msgstr "您的项目 %{projectName} ä¸åœ¨ç¾¤ç»„中"
msgid "Phone"
msgstr "电è¯"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr "请输入验è¯ç ã€‚"
@@ -34813,6 +35543,30 @@ msgstr "Web IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "æµæ°´çº¿ï¼š%{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr "添加 %{filename}"
@@ -34873,12 +35627,6 @@ msgstr "æ–°å˜æ›´çš„æµæ°´çº¿ä¼šå¯¼è‡´åŒä¸€åˆ†æ”¯ä¸Šè¾ƒæ—§çš„挂起æµæ°´çº¿ï¼Œ
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "“%{project_name}â€çš„æµæ°´çº¿è®¾ç½®å·²æˆåŠŸæ›´æ–°ã€‚"
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr "AI 助ç†"
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr "与 AI 助ç†èŠå¤©"
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr "使用 GitLab CI 实现 \"Hello world\""
@@ -34897,9 +35645,6 @@ msgstr "通过撤销触å‘器将会影å“任何正在调用它的应用。您确
msgid "Pipelines|CI lint"
msgstr "CI lint"
-msgid "Pipelines|CI/CD Catalog"
-msgstr "CI/CD 目录"
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr "å­æµæ°´çº¿ï¼ˆ%{linkStart}父æµæ°´çº¿%{linkEnd})"
@@ -34972,6 +35717,9 @@ msgstr "载入æµæ°´çº¿"
msgid "Pipelines|Loading pipelines"
msgstr "正在加载æµæ°´çº¿"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr "从 Jenkins è¿ç§»åˆ°æžç‹GitLab CI/CD"
+
msgid "Pipelines|More Information"
msgstr "更多信æ¯"
@@ -35008,6 +35756,12 @@ msgstr "已计划"
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "清ç†runner缓存时å‘生错误。"
+msgid "Pipelines|Start with a migration plan"
+msgstr "以è¿ç§»è®¡åˆ’开始"
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr "利用简å•ã€å¯æ‰©å±•çš„管é“å’Œæ”¯æŒ CI/CD 的功能,您å¯ä»¥åœ¨åˆå¹¶è¯·æ±‚中直接查看集æˆç»“æžœã€å®‰å…¨æ‰«æã€æµ‹è¯•ã€ä»£ç è¦†ç›–率等ï¼"
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr "%{namespace_name} 命å空间还有 %{percentage}%% 或更少的共享Runneræµæ°´çº¿å‰©ä½™åˆ†é’Ÿæ•°ã€‚它用完åŽï¼Œå…¶é¡¹ç›®ä¸­çš„新作业或æµæ°´çº¿å°†ä¸ä¼šè¿è¡Œã€‚"
@@ -35926,9 +36680,6 @@ msgstr "预览有效数æ®"
msgid "Previous"
msgstr "上一页"
-msgid "Previous Artifacts"
-msgstr "å‰ä¸€ä¸ªäº§ç‰©"
-
msgid "Previous commit"
msgstr "上一次æ交"
@@ -36124,6 +36875,9 @@ msgstr "è¦è®©äº§å“分æžä»ªè¡¨ç›˜å¼€å§‹å‘您显示一些数æ®ï¼Œæ‚¨éœ€è¦å°†
msgid "ProductAnalytics|Get started with product analytics"
msgstr "开始产å“分æž"
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr "一个用户有多少会è¯"
@@ -36232,6 +36986,9 @@ msgstr "加载产å“分æžä½¿ç”¨æ•°æ®æ—¶å‡ºé”™ã€‚刷新页é¢ç„¶åŽé‡è¯•ã€‚"
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr "存储ã€æŸ¥è¯¢å’Œå¯è§†åŒ–定é‡æ•°æ®ä»¥æ·±å…¥äº†è§£ç”¨æˆ·ä»·å€¼ã€‚"
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr "Snowplow é…置器实例的连接字符串。"
@@ -36352,8 +37109,8 @@ msgstr "用户资料"
msgid "Profile failed to delete"
msgstr "删除失败"
-msgid "Profile image guideline"
-msgstr "个人资料图片指å—"
+msgid "Profile image guidelines"
+msgstr ""
msgid "Profile page:"
msgstr "个人资料页:"
@@ -36718,8 +37475,8 @@ msgstr "用户å更改æˆåŠŸ"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr "在姓å中使用表情符å·ä¼¼ä¹Žå¾ˆæœ‰è¶£ï¼Œä½†è¯·å°è¯•è®¾ç½®çŠ¶æ€ä¿¡æ¯"
-msgid "Profiles|Website url"
-msgstr "网站 URL"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "您代表è°æˆ–为è°å·¥ä½œã€‚"
@@ -37022,7 +37779,7 @@ msgstr "您的"
msgid "ProjectOverview|Create new fork"
msgstr "创建新的派生项目"
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr "派生"
msgid "ProjectOverview|Go to your fork"
@@ -37049,11 +37806,26 @@ msgstr "您已达到项目数é‡é™åˆ¶"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "登录åŽæ‰èƒ½æ˜Ÿæ ‡é¡¹ç›®"
-msgid "ProjectPage|Copy project ID"
-msgstr "å¤åˆ¶é¡¹ç›®ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "项目ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr "项目信æ¯"
+
+msgid "ProjectPage|Project settings"
+msgstr "项目设置"
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr "找ä¸åˆ°é»˜è®¤åˆ†æ”¯ã€‚请è”系您的管ç†å‘˜ã€‚"
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr "无法加载默认分支"
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr "å°è¯•èŽ·å–项目质é‡ç»Ÿè®¡ä¿¡æ¯æ—¶å‡ºé”™"
@@ -37271,6 +38043,9 @@ msgstr "%{link_start}我å¯ä»¥ä½¿ç”¨å“ªäº›å˜é‡ï¼Ÿ%{link_end}"
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr "ä¸èƒ½ä¸ºç©ºé¡¹ç›®é€‰æ‹©é»˜è®¤åˆ†æ”¯ã€‚"
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr "添加徽章以显示有关此项目的信æ¯ã€‚"
+
msgid "ProjectSettings|Additional options"
msgstr "其他选项"
@@ -37358,9 +38133,6 @@ msgstr "Cube API URL"
msgid "ProjectSettings|Custom dashboard projects"
msgstr "自定义仪表盘项目"
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "自定义此项目的徽章。"
-
msgid "ProjectSettings|Data sources"
msgstr "æ•°æ®æº"
@@ -37478,6 +38250,9 @@ msgstr "留空使用默认模æ¿ã€‚"
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr "ç¡®ä¿æ­¤æ¨¡å¼ä¸Ž %{link_start}推é€è§„则 &gt; 分支å称%{link_end} 中的设置ä¸å†²çªã€‚"
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr "管ç†è°å¯ä»¥åœ¨å…¬å…±è®¿é—®ç›®å½•ä¸­çœ‹åˆ°è¿™ä¸ªé¡¹ç›®ã€‚"
@@ -37523,6 +38298,9 @@ msgstr "åªæœ‰å½“æºåˆ†æ”¯ä¸Žå…¶ç›®æ ‡æ˜¯æœ€æ–°çš„时候,æ‰å…许åˆå¹¶ã€‚"
msgid "ProjectSettings|Model experiments"
msgstr "模型实验"
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "监控"
@@ -37940,29 +38718,9 @@ msgstr "与此主题相关的项目"
msgid "Projects with write access"
msgstr "具有写入æƒé™çš„项目"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "ç»å¸¸è®¿é—®"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "加载项目中"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "您ç»å¸¸è®¿é—®çš„项目将出现在这里"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "æœç´¢æ‚¨çš„项目"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "å‘生了内部错误"
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "对ä¸èµ·ï¼Œæœªæœç´¢åˆ°ç¬¦åˆæ¡ä»¶çš„项目"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "此功能需è¦æµè§ˆå™¨æ”¯æŒæœ¬åœ°å­˜å‚¨"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr "切æ¢ç¼–辑模å¼"
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "å…许您立å³å…‹éš†è¿™ä¸ªé¡¹ç›®çš„仓库。如果您计划推é€ä¸€ä¸ªçŽ°æœ‰çš„仓库,请跳过这个步骤。"
@@ -37997,6 +38755,9 @@ msgstr "从模æ¿åˆ›å»º"
msgid "ProjectsNew|Create new project"
msgstr "创建新项目"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr "默认散列算法是 SHA-1。"
+
msgid "ProjectsNew|Description format"
msgstr "æè¿°æ ¼å¼"
@@ -38060,6 +38821,9 @@ msgstr "为外部仓库è¿è¡ŒCI/CD"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr "无法建议路径。请刷新并é‡è¯•ã€‚"
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr "使用 SHA-256 作为仓库哈希算法"
+
msgid "ProjectsNew|Visibility Level"
msgstr "å¯è§æ€§çº§åˆ«"
@@ -38653,12 +39417,18 @@ msgstr "核准人"
msgid "ProtectedEnvironment|Environment"
msgstr "环境"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr "上游ä¿æŠ¤çš„环境"
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr "无法加载此群组的详细信æ¯ã€‚"
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr "此项目中没有环境å—到ä¿æŠ¤ã€‚"
@@ -38740,9 +39510,6 @@ msgstr "什么是å—ä¿æŠ¤çš„标签?"
msgid "ProtectedTag|default"
msgstr "默认"
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr "æ示:%{linkStart}Auto DevOps%{linkEnd} 使用 Kubernetes 集群æ¥éƒ¨ç½²æ‚¨çš„代ç ï¼"
-
msgid "Provide Feedback"
msgstr "æä¾›å馈"
@@ -38788,6 +39555,9 @@ msgstr "公开项目是使æ¯ä¸ªäººéƒ½èƒ½å¤Ÿåªè¯»è®¿é—®çš„一ç§ç®€å•æ–¹å¼ã€‚
msgid "Public projects compute cost factor"
msgstr "公开项目计算消耗系数"
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "å‘布到状æ€é¡µ"
@@ -39230,9 +40000,6 @@ msgstr "注册设备"
msgid "Register now"
msgstr "ç«‹å³æ³¨å†Œ"
-msgid "Register the runner with this URL:"
-msgstr "使用此网å€æ³¨å†ŒRunner:"
-
msgid "Register with two-factor app"
msgstr "使用åŒé‡è®¤è¯åº”用注册"
@@ -39408,6 +40175,9 @@ msgstr "包å«æ¥è‡ªæ³¨é‡Šæ ‡ç­¾çš„消æ¯ã€‚"
msgid "Release|Learn more about releases"
msgstr "了解更多有关å‘布的信æ¯"
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr "留空以使用标签å称作为å‘布标题。"
+
msgid "Release|More information"
msgstr "更多信æ¯"
@@ -39462,6 +40232,9 @@ msgstr "ç¨åŽæ醒"
msgid "Remote object has no absolute path."
msgstr "远程对象没有ç»å¯¹è·¯å¾„。"
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "删除"
@@ -39522,6 +40295,9 @@ msgstr "删除æ述历å²"
msgid "Remove due date"
msgstr "删除截止日期"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr "删除å²è¯—引用"
@@ -39624,6 +40400,9 @@ msgstr "从群组中删除用户"
msgid "Remove user from project"
msgstr "从项目中删除用户"
+msgid "Remove weight"
+msgstr "移除æƒé‡"
+
msgid "Removed"
msgstr "已删除"
@@ -39702,6 +40481,9 @@ msgstr "删除所有标记。"
msgid "Removes an issue from an epic."
msgstr "从å²è¯—中移除一个议题。"
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr "删除与 %{issue_ref} çš„å…³è”。"
@@ -39759,9 +40541,6 @@ msgstr "é‡æ–°å¼€å¯å²è¯—"
msgid "Reopen milestone"
msgstr "é‡æ–°æ‰“开里程碑"
-msgid "Reopen test case"
-msgstr "é‡æ–°æ‰“开测试用例"
-
msgid "Reopen this %{quick_action_target}"
msgstr "é‡æ–°æ‰“å¼€%{quick_action_target}"
@@ -39828,9 +40607,6 @@ msgstr "回å¤è¯„论"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "直接回å¤æ­¤é‚®ä»¶æˆ– %{view_it_on_gitlab}。"
-msgid "Reply..."
-msgstr "回å¤..."
-
msgid "Reply…"
msgstr "回å¤â€¦"
@@ -40263,6 +41039,9 @@ msgstr "æ¯ä¸ªå‘¨æœŸçš„请求"
msgid "Require additional authentication for administrative tasks."
msgstr "需è¦å¯¹ç®¡ç†ä»»åŠ¡è¿›è¡Œé¢å¤–的身份验è¯ã€‚"
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr "需è¦åˆ°æœŸæ—¥æœŸ"
@@ -40322,8 +41101,8 @@ msgstr "需è¦ç»è¿‡éªŒè¯çš„ GitLab 电å­é‚®ä»¶åœ°å€ã€‚"
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr "需è¦æ‚¨éƒ¨ç½²æˆ–设置云托管的 Sentry。"
-msgid "Requires your primary GitLab email address."
-msgstr "需è¦æ‚¨çš„主GitLab电å­é‚®ä»¶åœ°å€ã€‚"
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
+msgstr ""
msgid "Resend"
msgstr "é‡æ–°å‘é€"
@@ -40391,9 +41170,6 @@ msgstr "在æºåˆ†æ”¯ä¸Šè§£å†³å†²çª"
msgid "Resolve locally"
msgstr "本地解决"
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr "解决这些冲çªæˆ–请具有仓库写入æƒé™çš„用户在本地解决它们。"
-
msgid "Resolve thread"
msgstr "解决主题"
@@ -40517,10 +41293,6 @@ msgstr "é‡è¯•æ­¤ä½œä¸šä»¥åˆ›å»ºå¿…è¦çš„资æºã€‚"
msgid "Retry verification"
msgstr "é‡è¯•éªŒè¯"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "显示值"
-
msgid "Reveal values"
msgstr "显示值"
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] "%dä½å®¡æ ¸è€…"
+msgid "Reviewer approved changes"
+msgstr "审核者批准的更改"
+
+msgid "Reviewer commented"
+msgstr "审核者评论"
+
+msgid "Reviewer requested changes"
+msgstr "审核者请求更改"
+
msgid "Reviewers"
msgstr "审核者"
@@ -40624,9 +41405,6 @@ msgstr "根因分æžæ˜¯ä¸€é¡¹åŠŸèƒ½ï¼Œå¯åˆ†æžæ‚¨çš„日志以确定作业å¯èƒ½
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr "规则å称"
-
msgid "Rule name is already taken."
msgstr "规则å称已被使用。"
@@ -40959,6 +41737,9 @@ msgstr "现有 runner ä¸å—å½±å“。è¦å…许所有群组注册 runner,请在
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr "现有 runners ä¸å—å½±å“。è¦å…许所有项目注册 runner,请在设置 &gt; CI/CD 的管ç†ä¸­å¿ƒå†…å¯ç”¨æ­¤è®¾ç½®ã€‚"
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr "添加 runner 到项目失败"
@@ -41231,6 +42012,9 @@ msgstr "Runner 注册"
msgid "Runners|Runner Registration token"
msgstr "Runner 注册令牌"
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr "分é…给项目的runner"
@@ -41351,8 +42135,8 @@ msgstr "在群组设置中ç¦ç”¨å…±äº« Runner"
msgid "Runners|Shared runners are disabled."
msgstr "共享 runners å·²ç¦ç”¨ã€‚"
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
-msgstr "此群组中的所有项目和å­ç»„å°†ç¦ç”¨å…±äº« runners。如果您继续,您必须在æ¯ä¸ªé¡¹ç›®å’Œå­ç»„的设置中手动é‡æ–°å¯ç”¨å…±äº« runners。"
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
+msgstr ""
msgid "Runners|Show only inherited"
msgstr "åªæ˜¾ç¤ºç»§æ‰¿çš„"
@@ -41360,9 +42144,6 @@ msgstr "åªæ˜¾ç¤ºç»§æ‰¿çš„"
msgid "Runners|Show runner installation and registration instructions"
msgstr "显示runner安装和注册说明"
-msgid "Runners|Show runner installation instructions"
-msgstr "显示 Runner 安装说明"
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr "删除时出错。请刷新页é¢é‡è¯•ã€‚"
@@ -41587,9 +42368,24 @@ msgstr "项目"
msgid "Runners|shared"
msgstr "共享"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr "Runner æ“作"
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "è¿è¡Œä¸­"
@@ -41761,9 +42557,18 @@ msgstr "ä¿å­˜ä¸­"
msgid "Saving project."
msgstr "正在ä¿å­˜é¡¹ç›®ã€‚"
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr "%{hostname} 的时区"
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr "%{period} %{days} 于 %{time} %{timezoneLabel} %{timezone}"
@@ -41782,6 +42587,9 @@ msgstr "添加æ¡ä»¶"
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr "添加新的 CI å˜é‡"
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr "选择执行代ç çš„方法"
+
msgid "ScanExecutionPolicy|Conditions"
msgstr "æ¡ä»¶"
@@ -41803,21 +42611,39 @@ msgstr "DAST 扫æé…置文件"
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr "DAST 站点é…置文件"
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr "如果与本地管é“é…置(例如 gitlab-ci.yml)存在任何冲çªçš„å˜é‡ï¼Œåˆ™æ­¤å¤„定义的å˜é‡å°†ä¼˜å…ˆã€‚ %{linkStart}了解更多%{linkEnd}。"
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr "æ’å…¥ CI 代ç å—"
+
msgid "ScanExecutionPolicy|Key"
msgstr "密钥"
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr "Kubernetes 代ç†çš„时区"
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr "链接现有的 CI 文件"
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr "链接现有的 CI 文件"
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr "CI æ¡ä»¶çš„最大数é‡ä¸º 1"
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr "一次åªèƒ½æ·»åŠ ä¸€ä¸ªå˜é‡ã€‚"
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr "è¿è¡Œ CI/CD 代ç "
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr "使用以下选项è¿è¡Œ %{scan} 扫æ:"
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr "执行扫æ"
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr "Runner 标签:"
@@ -41842,6 +42668,9 @@ msgstr "选择命å空间"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr "选择或创建密钥"
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "选择扫æ器é…置文件"
@@ -41851,6 +42680,9 @@ msgstr "选择站点é…置文件"
msgid "ScanExecutionPolicy|Select timezone"
msgstr "选择时区"
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr "文件路径ä¸èƒ½ä¸ºç©º"
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr "触å‘器:"
@@ -41866,6 +42698,9 @@ msgstr "代ç†"
msgid "ScanExecutionPolicy|branch"
msgstr "分支"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr "有特定标签"
@@ -41926,9 +42761,6 @@ msgstr "å¯ç”¨ä¿®å¤"
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr "å¯ç”¨çš„ä¿®å¤ä»…适用于容器和ä¾èµ–项扫æ"
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr "如果 MR 收到åˆå¹¶æ‰€éœ€çš„所有批准,但éšåŽæ·»åŠ äº†æ–°çš„æ交,则需è¦é‡æ–°è¿›è¡Œæ‰¹å‡†ã€‚è¿™å¯ç¡®ä¿ä¸å¼•å…¥å¯èƒ½åŒ…å«æ¼æ´žçš„æ–°æ交。"
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr "如果选择,以下选项将覆盖 %{linkStart}项目设置%{linkEnd} ,但仅影å“策略中选择的分支。"
@@ -41980,35 +42812,26 @@ msgstr "åªå…许 2 个状æ€æ¡ä»¶"
msgid "ScanResultPolicy|Override project approval settings"
msgstr "覆盖项目审批设置"
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr "批准时的密ç ç¡®è®¤æ供了é¢å¤–的安全级别。å¯ç”¨æ­¤åŠŸèƒ½ä¼šå¼ºåˆ¶æ‰§è¡Œæ­¤ç­–略针对的所有项目的设置。"
-
msgid "ScanResultPolicy|Pre-existing"
msgstr "预先存在"
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr "ç¦æ­¢ç”¨æˆ·ä»Žå—ä¿æŠ¤åˆ†æ”¯åˆ—表中删除分支或删除å—ä¿æŠ¤åˆ†æ”¯ã€‚"
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr "ç¦æ­¢æ交作者批准"
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr "ä¸å…许åˆå¹¶è¯·æ±‚作者进行批准"
-msgid "ScanResultPolicy|Prevent branch protection modification"
-msgstr "阻止修改分支ä¿æŠ¤"
+msgid "ScanResultPolicy|Prevent branch modification"
+msgstr "防止分支修改"
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr "ç¦æ­¢æŽ¨é€å’Œå¼ºåˆ¶æŽ¨é€"
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr "ç¦æ­¢æŽ¨é€å’Œå¼ºåˆ¶æŽ¨é€åˆ°å—ä¿æŠ¤åˆ†æ”¯ã€‚"
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr "å—ä¿æŠ¤çš„分支设置"
-msgid "ScanResultPolicy|Recommended setting"
-msgstr "推è设置"
+msgid "ScanResultPolicy|Recommended settings"
+msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
msgstr "删除新æ交的所有批准"
@@ -42034,15 +42857,9 @@ msgstr "严é‡çº§åˆ«ï¼š"
msgid "ScanResultPolicy|Status is:"
msgstr "状æ€ï¼š"
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr "åˆå¹¶è¯·æ±‚作者无法批准自己的åˆå¹¶è¯·æ±‚。"
-
msgid "ScanResultPolicy|Unknown"
msgstr "未知"
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr "å‘ MR 贡献代ç çš„用户ä¸å¯ä»¥æ‰¹å‡†è¯¥ MR,这å¯ä»¥ç¡®ä¿ä»£ç æ交者无法引入æ¼æ´žå¹¶æ‰¹å‡†ä»£ç åˆå¹¶ã€‚"
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr "当 %{scanType} %{scanners} 在 %{branches} %{branchExceptions} è¿è¡Œï¼Œå¹¶æ‰¾åˆ°ç¬¦åˆä»¥ä¸‹æ¡ä»¶çš„ %{vulnerabilitiesNumber} 个 %{boldDescription} 时:"
@@ -42055,8 +42872,26 @@ msgstr "当 %{scanType} 处于通过 %{commitType} æŒ‡å‘ %{branches} %{branchE
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr "当 %{scanners} 在 %{branches} %{branchExceptions} 分支的开放åˆå¹¶è¯·æ±‚中,找到指定的扫æ器æ¡ä»¶å¹¶åŒ¹é…以下æ¡ä»¶çš„ %{boldDescription}"
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
-msgstr "您已选å–ä»»æ„å—ä¿æŠ¤åˆ†æ”¯é€‰é¡¹ä½œä¸ºæ¡ä»¶ã€‚为了更好地ä¿æŠ¤æ‚¨çš„项目,建议å¯ç”¨ä¿æŠ¤åˆ†æ”¯è®¾ç½®ã€‚%{linkStart}获å–更多信æ¯ã€‚%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr "å¯ç”¨æ—¶ï¼Œå¦‚æžœ MR 收到所有必è¦çš„批准åŽæœ‰æ–°çš„æ交被添加,则需è¦æ–°çš„批准。"
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr "å¯ç”¨åŽï¼ŒMR 的作者ä¸èƒ½æ‰¹å‡†ä»–们自己的 MR。"
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr "å¯ç”¨æ—¶ï¼Œç”¨æˆ·å°†æ— æ³•ä»Žå—ä¿æŠ¤çš„分支列表中删除分支ã€æ— æ³•åˆ é™¤å—ä¿æŠ¤çš„分支ã€æ— æ³•ä¿®æ”¹é»˜è®¤åˆ†æ”¯ï¼ˆå¦‚果该分支包å«åœ¨å®‰å…¨ç­–略中)"
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr "å¯ç”¨æ—¶ï¼Œå¦‚果分支包å«åœ¨å®‰å…¨ç­–略中,则阻止推é€å’Œå¼ºåˆ¶æŽ¨é€ã€‚"
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr "如果å¯ç”¨ï¼Œæ‰¹å‡†æ—¶å°†éœ€è¦å¯†ç ç¡®è®¤ã€‚"
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr "如果å¯ç”¨ï¼Œå·²ä¸º MR 贡献代ç çš„用户将ä¸èƒ½æ‰¹å‡†æ­¤ MR。"
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
+msgstr ""
msgid "ScanResultPolicy|any commits"
msgstr "任何æ交"
@@ -42208,6 +43043,9 @@ msgstr "按å称æœç´¢"
msgid "Search files"
msgstr "æœç´¢æ–‡ä»¶"
+msgid "Search filters"
+msgstr "æœç´¢è¿‡æ»¤å™¨"
+
msgid "Search for Namespace"
msgstr "æœç´¢å‘½å空间"
@@ -42390,6 +43228,9 @@ msgstr "Secret 检测"
msgid "Secret token"
msgstr "Secret令牌"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr "此评论å¯èƒ½åŒ…å«ä¸€ä¸ªä»¤ç‰Œã€‚您确定è¦æ·»åŠ å—?"
@@ -42399,6 +43240,36 @@ msgstr "æ­¤æè¿°å¯èƒ½åŒ…å«ä¸€ä¸ªä»¤ç‰Œã€‚您确定è¦æ·»åŠ å—?"
msgid "Secrets"
msgstr "Secret"
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr "按照下é¢è¡¨æ ¼ä¸­çš„说明添加一个新的密钥。"
+
+msgid "Secrets|Add secret"
+msgstr "添加密钥"
+
+msgid "Secrets|Audit log"
+msgstr "审计日志"
+
+msgid "Secrets|Edit %{key}"
+msgstr "编辑 %{key}"
+
+msgid "Secrets|New secret"
+msgstr "新密钥"
+
+msgid "Secrets|Secret details"
+msgstr "密钥详细信æ¯"
+
+msgid "Secrets|Secret name"
+msgstr "密钥å称"
+
+msgid "Secrets|Secrets"
+msgstr "密钥"
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr "密钥表示您的 CI 作业所需的æ•æ„Ÿä¿¡æ¯ã€‚这些æ•æ„Ÿä¿¡æ¯å¯ä»¥æ˜¯ API 令牌ã€æ•°æ®åº“凭æ®æˆ–ç§é’¥ç­‰é¡¹ç›®ã€‚与始终å‘作业æ供的 CI/CD å˜é‡ä¸åŒï¼Œä½œä¸šå¿…须明确è¦æ±‚机密。 %{linkStart}了解更多。%{linkEnd}"
+
+msgid "Secrets|Stored secrets"
+msgstr "存储的密钥"
+
msgid "Secure Code Warrior"
msgstr "Secure Code Warrior"
@@ -42456,6 +43327,9 @@ msgstr "安全仪表盘"
msgid "Security Finding not found"
msgstr "未找到安全å‘现结果"
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr "安全策略项目已ç»å­˜åœ¨ã€‚"
@@ -42543,8 +43417,8 @@ msgstr "å¯ç”¨Auto DevOps"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr "å¯ç”¨å­µåŒ–中的破å和攻击模拟专用功能,例如在您的 DAST 扫æ中的回调攻击。"
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "å¯ç”¨å®‰å…¨åŸ¹è®­ï¼Œå¸®åŠ©æ‚¨çš„å¼€å‘人员学习如何修å¤æ¼æ´žã€‚å¼€å‘者å¯ä»¥æŸ¥çœ‹é€‰å®šçš„教育æ供者æ供的与å‘现的脆弱性相关的安全培训。"
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
msgid "SecurityConfiguration|Enabled"
msgstr "å¯ç”¨"
@@ -42645,6 +43519,9 @@ msgstr "是 %{licenseState} 并且是"
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr "%{namespaces} 使用的 %{agent}"
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr "%{branchName}"
@@ -42654,6 +43531,15 @@ msgstr "%{branchName}(在 %{codeStart}%{fullPath}%{codeEnd} 中)"
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr "%{cadence} 于 %{branches}%{branchExceptionsString}"
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr "%{fileName} 加载æˆåŠŸã€‚"
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr "%{fileName} 加载失败。请å†è¯•ä¸€æ¬¡ã€‚"
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr "%{frameworkName} 有 %{projectLength} 个 %{projects}"
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr "%{licenses} 和 %{lastLicense}"
@@ -42672,12 +43558,18 @@ msgstr ".yaml 模å¼"
msgid "SecurityOrchestration|.yaml preview"
msgstr ".yaml 预览"
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr "åˆè§„性框架是一个标签,用于标识您的项目具有æŸäº›åˆè§„性è¦æ±‚。 %{linkStart}了解更多%{linkEnd}."
+
msgid "SecurityOrchestration|Actions"
msgstr "行动"
msgid "SecurityOrchestration|Add action"
msgstr "添加æ“作"
+msgid "SecurityOrchestration|Add new action"
+msgstr "添加新æ“作"
+
msgid "SecurityOrchestration|Add new approver"
msgstr "添加新的核准人"
@@ -42690,6 +43582,9 @@ msgstr "解除警报åŽï¼Œè¯¥ä¿¡æ¯å°†ä¸å†æ˜¾ç¤ºã€‚"
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "å¯ç”¨ç¾¤ç»„级策略åŽï¼Œè¯¥ç­–略自动应用于该群组中的所有项目和å­ç»„。"
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr "所有æ¥æº"
@@ -42720,6 +43615,9 @@ msgstr "将此策略应用于所有项目%{projectScopeType}%{frameworkSelector}
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr "确定è¦åˆ é™¤æ­¤ç­–ç•¥å—?此æ“作无法撤消。"
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr "至少选择一个框架标签"
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr "自动选择的 runners"
@@ -42732,18 +43630,24 @@ msgstr "无法创建空策略"
msgid "SecurityOrchestration|Choose a project"
msgstr "选择项目"
+msgid "SecurityOrchestration|Choose an action"
+msgstr "选择一个æ“作"
+
msgid "SecurityOrchestration|Choose approver type"
msgstr "选择核准人类型"
-msgid "SecurityOrchestration|Choose framework labels"
-msgstr "选择框架标签"
-
msgid "SecurityOrchestration|Choose specific role"
msgstr "选择特定角色"
msgid "SecurityOrchestration|Clear all"
msgstr "清除所有"
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr "åˆè§„框架 ID åªèƒ½ä¸ºç¾¤ç»„策略设置"
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr "åˆè§„框架没有项目"
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr "创建更强大的æ¼æ´žè§„则并将其应用于您的所有项目。"
@@ -42816,6 +43720,9 @@ msgstr "加载群组项目失败"
msgid "SecurityOrchestration|Failed to load images."
msgstr "加载镜åƒå¤±è´¥ã€‚"
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr "对于与此策略规则匹é…的任何 MR,仅适用覆盖项目审批设置。无需é¢å¤–批准。"
@@ -42828,8 +43735,11 @@ msgstr "对于大型群组,对原已存在的åˆå¹¶è¯·æ±‚应用策略å˜æ›´å¯
msgid "SecurityOrchestration|Groups"
msgstr "群组"
-msgid "SecurityOrchestration|Hide extra branches"
-msgstr "éšè—é¢å¤–的分支"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
+msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
msgstr "如果任何扫æ器在针对主分支的开放åˆå¹¶è¯·æ±‚中å‘现新检测的严é‡æ¼æ´žï¼Œç„¶åŽéœ€è¦ä»»ä½• App security æˆå‘˜çš„两次批准。"
@@ -42843,6 +43753,9 @@ msgstr "继承"
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr "继承自 %{namespace}"
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr "无效的åˆè§„框架 ID"
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr "检测到无效的分支类型 - 规则将ä¸è¢«åº”用。"
@@ -42858,6 +43771,9 @@ msgstr "针对 %{agent} è¿è¡Œçš„最新扫æ"
msgid "SecurityOrchestration|License Scan"
msgstr "许å¯è¯æ‰«æ"
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr "从文件中加载 CI/CD 代ç "
+
msgid "SecurityOrchestration|Logic error"
msgstr "逻辑错误"
@@ -42885,6 +43801,9 @@ msgstr "无异常"
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr "未定义规则 - 策略无法è¿è¡Œã€‚"
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr "没有å¯ç”¨çš„标签"
@@ -42910,6 +43829,9 @@ msgstr "åªæœ‰æ‰€æœ‰è€…å¯ä»¥æ›´æ–°å®‰å…¨ç­–略项目"
msgid "SecurityOrchestration|Override the following project settings:"
msgstr "覆盖以下项目设置:"
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr "用新文件的内容覆盖当å‰çš„ CI/CD 代ç ï¼Ÿ"
+
msgid "SecurityOrchestration|Policies"
msgstr "ç­–ç•¥"
@@ -42997,12 +43919,18 @@ msgstr "扫æ结果策略"
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr "扫æ将自动选择è¦è¿è¡Œçš„ runner,因为 runner 上ä¸å­˜åœ¨ä»»ä½•æ ‡ç­¾ã€‚您å¯ä»¥%{linkStart}在设置中创建新标签%{linkEnd}。"
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr "安全批准"
msgid "SecurityOrchestration|Security Scan"
msgstr "安全扫æ"
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr "安全策略覆盖此设置"
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr "安全策略项目已æˆåŠŸè¿žæŽ¥"
@@ -43036,6 +43964,12 @@ msgstr "选择用户"
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr "严é‡æ€§æ˜¯ %{severity}。"
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr "出现错误,无法获å–ç­–ç•¥"
@@ -43069,6 +44003,12 @@ msgstr "æ­¤ %{namespaceType} ä¸åŒ…å«ä»»ä½•å®‰å…¨ç­–略。"
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr "æ­¤ %{namespaceType} 没有关è”到安全策略项目"
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "此群组"
@@ -43153,12 +44093,27 @@ msgstr "YAML"
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr "您已拥有最多 %{maximumAllowed} %{policyType} ç§ç­–略。"
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr "您无法更改默认分支,因为它的ä¿æŠ¤æ˜¯ç”±ä¸€ä¸ªæˆ–多个 %{security_policies_link_start}安全策略%{security_policies_link_end}强制执行的。 %{learn_more_link_start}了解更多%{learn_more_link_end}."
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr "您无法å–消ä¿æŠ¤è¯¥åˆ†æ”¯ï¼Œå› ä¸ºå…¶ç”±ä¸€ä¸ªæˆ–多个 %{security_policies_link_start}安全策略%{security_policies_link_end}进行ä¿æŠ¤ã€‚%{learn_more_link_start}了解更多%{learn_more_link_end}"
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr "您还没有任何安全策略"
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr "所有命å空间"
@@ -43195,6 +44150,9 @@ msgstr "分支"
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr "在å为 %{agents} %{cadence}%{branchExceptionsString} 的代ç†ä¸Šæ‰§è¡Œ"
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr "åˆè§„框架"
+
msgid "SecurityOrchestration|except projects"
msgstr "ä¸åŒ…括项目"
@@ -43381,6 +44339,9 @@ msgstr "已忽略(所有原因)"
msgid "SecurityReports|Dismissed as..."
msgstr "已忽略..."
+msgid "SecurityReports|Does not have a solution"
+msgstr "没有解决方案"
+
msgid "SecurityReports|Does not have issue"
msgstr "没有问题"
@@ -43432,6 +44393,9 @@ msgstr "无法更新具有以下 ID çš„æ¼æ´žï¼š%{ids}"
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr "有解决方案"
+
msgid "SecurityReports|Has issue"
msgstr "有问题"
@@ -43447,12 +44411,6 @@ msgstr "é•œåƒ"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr "通过创建议题æ¥è°ƒæŸ¥è¯¥æ¼æ´ž"
-msgid "SecurityReports|Is available"
-msgstr "å¯ç”¨"
-
-msgid "SecurityReports|Is not available"
-msgstr "ä¸å¯ç”¨"
-
msgid "SecurityReports|Issue"
msgstr "问题"
@@ -43586,6 +44544,9 @@ msgstr "ä»ç„¶æ£€æµ‹åˆ°"
msgid "SecurityReports|Submit vulnerability"
msgstr "æ交æ¼æ´ž"
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr "æ¼æ´žæŠ¥å‘Šæ˜¾ç¤ºå¯¹é¡¹ç›®é»˜è®¤åˆ†æ”¯çš„æˆåŠŸæ‰«æ结果,手动添加的æ¼æ´žè®°å½•ä»¥åŠä»Žæ‰«ææ“作环境中å‘现的æ¼æ´žã€‚%{linkStart}了解更多。%{linkEnd}"
@@ -43685,6 +44646,18 @@ msgstr "通过安全培训解决问题"
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr "当多个培训åˆä½œä¼™ä¼´å¯ç”¨æ—¶ï¼Œæ¥è‡ªæ­¤åˆä½œä¼™ä¼´çš„培训将优先进行。"
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr "请å‚阅我们文档中的示例 DevOps Score 页é¢ã€‚"
@@ -43952,6 +44925,9 @@ msgstr "å‘ Mattermost 频é“å‘é€æœ‰å…³é¡¹ç›®äº‹ä»¶çš„通知。 %{docs_link}"
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr "å‘ Discord 频é“å‘é€æœ‰å…³é¡¹ç›®äº‹ä»¶çš„通知。 %{docs_link}"
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "å‘é€æŠ¥å‘Š"
@@ -44114,9 +45090,15 @@ msgstr "å¯ç”¨è‡ªå®šä¹‰ç”µå­é‚®ä»¶åœ°å€"
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr "有关为您的实例设置æœåŠ¡å°çš„帮助,请è”系管ç†å‘˜ã€‚"
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr "å‘件人标头ä¸æ­£ç¡®"
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr "验è¯ä»¤ç‰Œä¸æ­£ç¡®"
@@ -44156,6 +45138,12 @@ msgstr "请在%{linkStart}å馈议题%{linkEnd}中分享您对此功能的åé¦
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr "请é‡è¯•ã€‚检查电å­é‚®ä»¶è½¬å‘设置和凭æ®ï¼Œç„¶åŽé‡æ–°å¯åŠ¨éªŒè¯ã€‚"
+msgid "ServiceDesk|Read timeout"
+msgstr "读å–超时"
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr "é‡ç½®è‡ªå®šä¹‰ç”µå­é‚®ä»¶"
@@ -44216,8 +45204,11 @@ msgstr "缺少æœåŠ¡å°è®¾ç½®"
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr "缺少æœåŠ¡å°è®¾ç½®æˆ–验è¯å¯¹è±¡"
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "给定的凭æ®ï¼ˆç”¨æˆ·å和密ç ï¼‰è¢« SMTP æœåŠ¡å™¨æ‹’ç»ã€‚"
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr "SMTP æœåŠ¡å™¨æ²¡æœ‰åŠæ—¶å“应。"
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr "SMTP æœåŠ¡å™¨æ‹’ç»äº†å‡­è¯ï¼ˆç”¨æˆ·å和密ç ï¼‰ï¼Œæˆ–者您需è¦æ˜Žç¡®è®¾ç½®éªŒè¯æ–¹æ³•ã€‚"
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
msgstr "收到的电å­é‚®ä»¶æ²¡æœ‰åŒ…å«å‘é€åˆ°æ‚¨çš„电å­é‚®ä»¶åœ°å€çš„验è¯ä»¤ç‰Œã€‚"
@@ -44225,6 +45216,12 @@ msgstr "收到的电å­é‚®ä»¶æ²¡æœ‰åŒ…å«å‘é€åˆ°æ‚¨çš„电å­é‚®ä»¶åœ°å€çš„验
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr "未åŠæ—¶æ”¶åˆ°éªŒè¯é‚®ä»¶ã€‚验è¯ç”µå­é‚®ä»¶åº”当在 30 分钟内出现在您实例的æœåŠ¡å°ä¸­ã€‚ç¡®ä¿æ‚¨å·²æ­£ç¡®è®¾ç½®ç”µå­é‚®ä»¶è½¬å‘。"
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr "此问题已é‡æ–°æ‰“开,因为它收到了外部å‚与者的新评论。"
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr "è¦åœ¨æ­¤å®žä¾‹ä¸Šå¯ç”¨æœåŠ¡å°ï¼Œå®žä¾‹ç®¡ç†å‘˜å¿…须首先设置接收电å­é‚®ä»¶åœ°å€ã€‚"
@@ -44423,9 +45420,6 @@ msgstr "é…ç½® CI/CD"
msgid "Set up Jira Integration"
msgstr "设置Jira集æˆ"
-msgid "Set up a %{type} runner for a project"
-msgstr "为项目设置一个 %{type} 的 Runner"
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr "设置硬件设备,å¯ç”¨åŒé‡èº«ä»½éªŒè¯ (2FA)。"
@@ -44441,6 +45435,9 @@ 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."
msgstr "设置项目以自动推é€å’Œ/或从å¦ä¸€ä¸ªä»“库中æå–更改。分支,标签和æ交将自动åŒæ­¥ã€‚"
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "设置æƒé‡"
@@ -44519,19 +45516,33 @@ msgstr "设置"
msgid "Setting enforced"
msgstr "强制设置"
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] "设置已æˆåŠŸä¿å­˜"
-
msgid "Settings"
msgstr "设置"
msgid "Settings for the License Compliance feature"
msgstr "许å¯è¯åˆè§„功能设置"
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr "无法加载åˆå¹¶è¯·æ±‚选项设置。å°è¯•é‡æ–°åŠ è½½é¡µé¢ã€‚"
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "严é‡ç¨‹åº¦"
@@ -44589,27 +45600,6 @@ msgstr "é™åˆ¶ç”¨æˆ·æ¯åˆ†é’Ÿæ¯ä¸ªä»“库å¯ä»¥æ‰§è¡Œçš„ Git æ“作数"
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr "æ¯åˆ†é’Ÿæœ€å¤§ Git æ“作数"
-msgid "Shimo|Go to Shimo Workspace"
-msgstr "转到石墨工作区"
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr "从侧边æ é“¾æŽ¥åˆ°çŸ³å¢¨å·¥ä½œåŒºã€‚"
-
-msgid "Shimo|Shimo"
-msgstr "石墨"
-
-msgid "Shimo|Shimo Workspace"
-msgstr "石墨工作区"
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr "石墨工作区 URL"
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr "石墨工作区集æˆå·²å¯ç”¨"
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr "您已å¯ç”¨çŸ³å¢¨å·¥ä½œåŒºé›†æˆã€‚您å¯ä»¥ç›´æŽ¥åœ¨çŸ³å¢¨æŸ¥çœ‹æ‚¨çš„wiki。"
-
msgid "Short name"
msgstr "简称"
@@ -44872,9 +45862,6 @@ msgstr "使用智能å¡ç™»å½•"
msgid "Sign in via 2FA code"
msgstr "通过2FA代ç ç™»å½•"
-msgid "Sign in with"
-msgstr "登录方å¼"
-
msgid "Sign in with single sign-on"
msgstr "使用å•ç‚¹ç™»å½•ï¼ˆSSO)进行登录"
@@ -44923,20 +45910,14 @@ msgstr "退出页é¢URL"
msgid "Sign-up restrictions"
msgstr "注册é™åˆ¶"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "点击 %{button_text} 或通过第三方注册,å³è¡¨ç¤ºæ‚¨æŽ¥å—%{link_start}使用æ¡æ¬¾å¹¶æŽ¥å—éšç§æ”¿ç­–å’Œ Cookie 政策%{link_end}"
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "点击 %{button_text} 或通过第三方注册,å³è¡¨ç¤ºæ‚¨æŽ¥å—%{link_start}使用æ¡æ¬¾å¹¶æŽ¥å—éšç§æ”¿ç­–å’Œ Cookie 政策%{link_end}"
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "通过点击 %{button_text},我åŒæ„æˆ‘å·²é˜…è¯»å¹¶æŽ¥å— %{link_start}使用æ¡æ¬¾å’Œéšç§æ”¿ç­–%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "点击 %{button_text},我åŒæ„æˆ‘å·²é˜…è¯»å¹¶æŽ¥å— GitLab %{link_start}使用æ¡æ¬¾å’Œéšç§æ”¿ç­–%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "登录å³è¡¨ç¤ºæ‚¨æŽ¥å—%{link_start}使用æ¡æ¬¾å¹¶æŽ¥å—éšç§æ”¿ç­–å’Œ Cookie 政策%{link_end}。"
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr "å字太长(最多%{max_length}字符)。"
@@ -45235,6 +46216,9 @@ msgstr "智能å¡"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "智能å¡èº«ä»½éªŒè¯å¤±è´¥ï¼šç¼ºå°‘客户端è¯ä¹¦æŠ¥å¤´ã€‚"
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr "代ç ç‰‡æ®µ"
@@ -45292,6 +46276,9 @@ msgstr "代ç ç‰‡æ®µä»…é™ %{total} 个文件。"
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr "代ç ç‰‡æ®µä¸èƒ½åŒ…å«ç©ºæ–‡ä»¶ã€‚ç¡®ä¿æ‰€æœ‰æ–‡ä»¶éƒ½åŒ…å«å†…容,或删除。"
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr "这个代ç ç‰‡æ®µè¢«éšè—,因为其作者已被å°ç¦"
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45352,8 +46339,8 @@ msgstr "其他原因"
msgid "Something went wrong"
msgstr "出错了"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
-msgstr "获å–扫æ器结果时出错。请å†è¯•ä¸€æ¬¡ã€‚"
+msgid "Something went wrong fetching the scanner findings. Please try again."
+msgstr ""
msgid "Something went wrong on our end"
msgstr "出错了,抱歉。"
@@ -45694,9 +46681,6 @@ msgstr "人气"
msgid "SortOptions|Priority"
msgstr "优先"
-msgid "SortOptions|Project"
-msgstr "项目"
-
msgid "SortOptions|Recent last activity"
msgstr "最近一次活动"
@@ -45709,8 +46693,8 @@ msgstr "最近星标"
msgid "SortOptions|Size"
msgstr "大å°"
-msgid "SortOptions|Sort by:"
-msgstr "排åºæ–¹å¼ï¼š"
+msgid "SortOptions|Sort by"
+msgstr "排åºæ–¹å¼"
msgid "SortOptions|Sort direction"
msgstr "排åºæ–¹å‘"
@@ -45730,12 +46714,6 @@ msgstr "现在开始"
msgid "SortOptions|Title"
msgstr "标题"
-msgid "SortOptions|Type"
-msgstr "类型"
-
-msgid "SortOptions|Version"
-msgstr "版本"
-
msgid "SortOptions|Weight"
msgstr "æƒé‡"
@@ -45931,6 +46909,10 @@ msgstr "阶段:"
msgid "Standard"
msgstr "标准"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] "星标"
+
msgid "Star labels to start sorting by priority."
msgstr "星标标记,开始按优先级排åºã€‚"
@@ -46231,9 +47213,6 @@ msgstr "åœæ­¢ç»ˆç«¯"
msgid "Stop impersonating"
msgstr "åœæ­¢æ¨¡æ‹Ÿ"
-msgid "Stop impersonation"
-msgstr "åœæ­¢èº«ä»½æ¨¡æ‹Ÿ"
-
msgid "Stop this environment"
msgstr "åœæ­¢å½“å‰çŽ¯å¢ƒ"
@@ -46315,9 +47294,6 @@ msgstr "以ham身份æ交"
msgid "Submit as spam"
msgstr "垃圾信æ¯ä¸¾æŠ¥"
-msgid "Submit feedback"
-msgstr "æ交å馈"
-
msgid "Submit feedback and approve these changes."
msgstr "æ交å馈并批准这些更改。"
@@ -46414,6 +47390,9 @@ msgstr "è¦æ›´æ”¹åªè¯»è®¢é˜…或购买其他产å“,请è”系您的 GitLab åˆä
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr "您的订阅为åªè¯»æ¨¡å¼"
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "添加席ä½"
@@ -46961,9 +47940,6 @@ msgstr "切æ¢åˆ†æ”¯"
msgid "Switch branch/tag"
msgstr "切æ¢åˆ†æ”¯/标签"
-msgid "Switch to GitLab Next"
-msgstr "切æ¢åˆ°GitLab 预览版"
-
msgid "Switch to plain text editing"
msgstr "切æ¢åˆ°çº¯æ–‡æœ¬ç¼–辑"
@@ -47234,13 +48210,22 @@ msgstr "GitLab Duo Chat"
msgid "TanukiBot|Give feedback"
msgstr "æä¾›å馈"
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] "æº"
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr "与 GitLab Duo Chat 通信时出错。请ç¨åŽå†è¯•ã€‚"
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr "什么是派生?"
@@ -47256,21 +48241,6 @@ msgstr "目标路径"
msgid "Target branch"
msgstr "目标分支"
-msgid "Target branch rule"
-msgstr "目标分支规则"
-
-msgid "Target branch rule created."
-msgstr "目标分支规则已创建。"
-
-msgid "Target branch rule deleted."
-msgstr "目标分支规则已删除。"
-
-msgid "Target branch rule does not exist"
-msgstr "目标分支规则ä¸å­˜åœ¨"
-
-msgid "Target branch rules"
-msgstr "目标分支规则"
-
msgid "Target branch: %{target_branch}"
msgstr "目标分支:%{target_branch}"
@@ -47551,6 +48521,9 @@ msgstr "ç”± AI 生æˆçš„测试"
msgid "Test settings"
msgstr "测试设置"
+msgid "Test summary"
+msgstr "测试摘è¦"
+
msgid "TestCases|Move test case"
msgstr "移动测试用例"
@@ -47744,6 +48717,9 @@ msgstr "议题跟踪用于管ç†éœ€æ±‚改进或者解决的问题"
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "议题跟踪用于管ç†éœ€æ±‚改进或者解决的问题。请注册或登录åŽä¸ºå½“å‰é¡¹ç›®åˆ›å»ºè®®é¢˜ã€‚"
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr "Slack 通知集æˆå·²å¼ƒç”¨ï¼Œå°†åœ¨æœªæ¥ç‰ˆæœ¬ä¸­åˆ é™¤ã€‚è¦ç»§ç»­æŽ¥æ”¶æ¥è‡ª Slack 的通知,请改用 GitLab for Slack 应用程åºã€‚ %{learn_more_link_start}了解更多%{link_end}。"
@@ -47768,6 +48744,12 @@ msgstr "应用程åºå¯ç”¨äºŽå®¢æˆ·ç«¯å¯†é’¥å¯ä»¥ä¿æŒä¿å¯†çš„地方。原生
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr "相关的议题#%{issueId}已关闭,因为该错误已ç»è§£å†³ã€‚"
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "此项目的分支没有活跃的æµæ°´çº¿é…置。"
@@ -47786,9 +48768,6 @@ msgstr "您正在编辑的评论已被其他用户更改。您想ä¿ç•™æ‚¨çš„æ›´
msgid "The commit does not exist"
msgstr "æ­¤æ交ä¸å­˜åœ¨"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr "由于存在åˆå¹¶å†²çªï¼Œå¯¹æ¯”视图å¯èƒ½ä¸å‡†ç¡®ã€‚"
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr "完整的 DevOps å¹³å°ã€‚一个具有无é™å¯èƒ½æ€§çš„应用程åºã€‚组织ä¾é æºä»£ç ç®¡ç†ï¼ŒCI/CD,安全,以åŠæ›´å¤šæ¥å¿«é€Ÿäº¤ä»˜è½¯ä»¶ã€‚"
@@ -47828,17 +48807,23 @@ msgstr "当å‰ç”¨æˆ·æ— æƒè®¿é—®ä½œä¸šæ—¥å¿—。"
msgid "The current user is not authorized to create the pipeline schedule"
msgstr "当å‰ç”¨æˆ·æ— æƒåˆ›å»ºæµæ°´çº¿è®¡åˆ’"
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr "当å‰ç”¨æˆ·æ— æƒè®¾ç½®æµæ°´çº¿è®¡åˆ’å˜é‡"
msgid "The current user is not authorized to update the pipeline schedule"
msgstr "当å‰ç”¨æˆ·æ— æƒæ›´æ–°æµæ°´çº¿è®¡åˆ’"
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr "æ­¤æµæ°´çº¿ä¸­çš„æ•°æ®å¤ªæ—§ï¼Œæ— æ³•å‘ˆçŽ°ä¸ºå›¾å½¢ã€‚请检查作业选项å¡ä»¥è®¿é—®åŽ†å²æ•°æ®ã€‚"
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "å‘布准备就绪的日期。具有未æ¥æ—¥æœŸçš„版本被标记为%{linkStart}å³å°†åˆ°æ¥çš„å‘布%{linkEnd}。"
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr "新项目的默认 CI/CD é…置文件和路径。"
@@ -48085,6 +49070,9 @@ msgstr "CI/CD é…置文件的å称。相对于根目录的路径是å¯é€‰çš„(
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr "Jenkins 项目的å称。将 URL 末尾的å称å¤åˆ¶åˆ°é¡¹ç›®ä¸­ã€‚"
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr "命åç©ºé—´å­˜å‚¨å¤§å° (%{current_size}) 超出 %{size_limit} çš„é™åˆ¶ %{exceeded_size}。您将无法将新代ç æŽ¨é€åˆ°è¯¥é¡¹ç›®ã€‚请è”系您的æžç‹GitLab 管ç†å‘˜ä»¥èŽ·å–更多信æ¯ã€‚"
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "克隆仓库时è¦ä»Ž GitLab 获å–的更改数é‡ï¼Œè¾ƒä½Žçš„值å¯ä»¥åŠ é€Ÿæµæ°´çº¿æ‰§è¡Œã€‚ 设置为 %{code_open}0%{code_close} 或空白以获å–æ¯ä¸ªä½œä¸šçš„所有分支和标签"
@@ -48223,6 +49211,9 @@ msgstr "指定标签页无效,请选择å¦ä¸€ä¸ª"
msgid "The start date must be earlier than the end date."
msgstr "开始日期必须早于结æŸæ—¥æœŸã€‚"
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr "该主题将用作新议题的标题,信æ¯å°†ä½œä¸ºè¯´æ˜Žã€‚ æ”¯æŒ %{quickActionsLinkStart}快速æ“作%{quickActionsLinkEnd} 并使用支æŒçš„ %{markdownLinkStart}Markdown%{markdownLinkEnd} 风格。"
@@ -48274,15 +49265,12 @@ msgstr "æ¼æ´žå·²ä¸å†è¢«æ£€æµ‹åˆ°ã€‚请在更改其状æ€å‰ç¡®ä¿æ¼æ´žå·²ä¿®
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr "æ¼æ´žå·²ä¸å†è¢«æ£€æµ‹åˆ°ã€‚请在更改其状æ€å‰ç¡®ä¿æ¼æ´žå·²ä¿®è¡¥ã€‚"
+msgid "There are currently no merge request branch targets"
+msgstr ""
+
msgid "There are currently no mirrored repositories."
msgstr "ç›®å‰æ²¡æœ‰é•œåƒçš„仓库。"
-msgid "There are currently no target branch rules"
-msgstr "当å‰æ²¡æœ‰ç›®æ ‡åˆ†æ”¯è§„则"
-
-msgid "There are merge conflicts"
-msgstr "存在åˆå¹¶å†²çª"
-
msgid "There are no GPG keys associated with this account."
msgstr "没有与此账户关è”çš„GPG密钥。"
@@ -48451,6 +49439,9 @@ msgstr "获å–项目标签时出错。"
msgid "There was a problem fetching project users."
msgstr "获å–项目用户时出错。"
+msgid "There was a problem fetching projects."
+msgstr "获å–项目标签时出错。"
+
msgid "There was a problem fetching recent groups."
msgstr "获å–最近的群组时出现问题。"
@@ -48646,6 +49637,9 @@ msgstr "这些示例展示了使用æµæ°´çº¿è§¦å‘令牌触å‘æµæ°´çº¿çš„常用
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr "这些现有的议题具有类似的标题。在那里评论å¯èƒ½æ›´å¥½ï¼Œè€Œä¸æ˜¯åˆ›å»ºå¦ä¸€ä¸ªç±»ä¼¼çš„问题。"
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr "这些Runner在该群组中的项目之间共享。"
@@ -48736,9 +49730,15 @@ msgstr "请求此存档的次数过多。ç¨åŽå†è¯•ã€‚"
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr "此附件已被截断,以é¿å…超过最大å…è®¸çš„é™„ä»¶å¤§å° %{size_limit}。 其中包括%{count} 个%{issuables} 中的%{written_count}个。考虑缩å°é€‰æ‹©çš„ %{issuables} å†å¯¼å‡ºã€‚"
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr "此附件已被截断,以é¿å…超过最大å…è®¸çš„é™„ä»¶å¤§å° %{size_limit}。 其中包括 %{total_count} 个 %{object_type} 中的 %{written_count} 个。考虑缩å°é€‰æ‹©çš„ %{object_type} å†å¯¼å‡ºã€‚"
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "该阻塞为自我引用"
@@ -48775,6 +49775,9 @@ msgstr "æ­¤æ交是在 UI 中创建的,并使用ç»éªŒè¯çš„ç­¾å进行签ç½
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr "æ­¤æ交使用%{strong_open}已验è¯çš„%{strong_close}ç­¾å进行签署,并且已验è¯æ交者的电å­é‚®ä»¶å±žäºŽåŒä¸€ç”¨æˆ·ã€‚"
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "æ­¤æ交使用其他用户的已验è¯ç­¾å进行签å。"
@@ -48967,9 +49970,6 @@ msgstr "这是专为您生æˆçš„ç§äººç”µå­é‚®ä»¶åœ°å€ %{helpIcon} 任何拥æœ
msgid "This is a security log of authentication events involving your account."
msgstr "这是涉åŠæ‚¨å¸æˆ·çš„身份验è¯äº‹ä»¶çš„安全日志。"
-msgid "This is a self-managed instance of GitLab."
-msgstr "这是GitLab的自管ç†å®žä¾‹ã€‚"
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr "这是 GitLab Incubation Engineering å¼€å‘的一项实验性功能。"
@@ -49114,12 +50114,6 @@ msgstr "æ­¤æ“作å¯èƒ½ä¼šæ³„æ¼ç§å¯†ä¿¡æ¯ï¼Œå› ä¸ºé€‰å®šçš„派生ä½äºŽå¦ä¸€
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "在创建一个空的仓库或导入现有仓库之å‰ï¼Œå°†æ— æ³•æŽ¨é€ä»£ç ã€‚"
-msgid "This merge request branch is protected from force push."
-msgstr "这个åˆå¹¶è¯·æ±‚分支ä¸ä¼šè¢«å¼ºåˆ¶æŽ¨é€ã€‚"
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr "存在冲çªæ—¶ï¼Œæ­¤åˆå¹¶è¯·æ±‚无法 rebase。"
-
msgid "This merge request does not have accessibility reports"
msgstr "æ­¤åˆå¹¶è¯·æ±‚没有无障ç¢æ€§æ‰«æ报告"
@@ -49168,6 +50162,10 @@ msgstr "该æµæ°´çº¿æ˜¯é€šè¿‡ä½¿ç”¨è§¦å‘令牌进行身份验è¯çš„ API 调用å
msgid "This pipeline was triggered using the api"
msgstr "该æµæ°´çº¿æ˜¯ä½¿ç”¨ api 触å‘çš„"
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "æ­¤æµç¨‹å°†åˆ é™¤é¡¹ç›®ä»“库和所有相关资æºã€‚"
@@ -49809,9 +50807,6 @@ msgstr "ä¸ºç¡®ä¿ %{project_name} 未计划删除,请检查是å¦å·²è®°å½•æ´»å
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr "为确ä¿ä¸ä¼šä¸¢å¤±å¯¹ä¸ªäººå†…容的访问æƒé™ï¼Œè¯·ä»…使用此账户处ç†ä¸Ž %{group_name} 相关的事务。"
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr "为ä¿è¯ä¸ªäººå†…容ä¸ä¸¢å¤±ï¼Œæœ¬è´¦å·ä»…用于与 %{group_name}相关的事项。"
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr "è¦åœ¨ä»»ä½•è¿™äº›ç‰ˆæœ¬ä¸­æŸ¥æ‰¾æ­¤é¡¹ç›®å­˜å‚¨åº“的状æ€ï¼Œè¯·æ£€æŸ¥ %{link_start}标签%{link_end}。"
@@ -49855,6 +50850,9 @@ msgstr "è¦äº†è§£æ›´å¤šå…³äºŽæ­¤é¡¹ç›®çš„ä¿¡æ¯ï¼Œè¯·é˜…读 %{link_to_wiki}"
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr "è¦ç®¡ç†ä¸Žè¯¥ç¾¤ç»„åŠå…¶å­ç»„和项目关è”的所有æˆå‘˜çš„席ä½ï¼Œè¯·è®¿é—®%{link_start}使用é…é¢é¡µé¢%{link_end}。"
+msgid "To merge, either the title or description must reference a Jira issue."
+msgstr "è¦åˆå¹¶ï¼Œæ ‡é¢˜æˆ–æ述必须引用 Jira 议题。"
+
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æœåŠ¡å™¨ç§»åŠ¨æˆ–å¤åˆ¶åˆ°æ­¤æœåŠ¡å™¨ï¼Œè¯·è®¿é—®åŽŸé¡¹ç›®çš„设置页é¢ï¼Œç”Ÿæˆå¯¼å‡ºæ–‡ä»¶ï¼Œç„¶åŽåœ¨æ­¤å¤„上载。"
@@ -49960,8 +50958,8 @@ msgstr "待办事项已æˆåŠŸæ ‡è®°ä¸ºå·²å®Œæˆã€‚"
msgid "Today"
msgstr "今日"
-msgid "Todos count"
-msgstr "待办事项计数"
+msgid "Todos| What actions create to-do items?"
+msgstr ""
msgid "Todos|Added"
msgstr "已添加"
@@ -49975,9 +50973,6 @@ msgstr "任何æ“作"
msgid "Todos|Any Type"
msgstr "任何类型"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr "您正在寻找è¦åšçš„事情å—? 查看 %{strongStart}%{openIssuesLinkStart}打开的议题%{openIssuesLinkEnd}%{strongEnd},贡献给 %{strongStart}%{mergeRequestLinkStart}åˆå¹¶è¯·æ±‚%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd},或在评论中æåŠæŸäººï¼Œè‡ªåŠ¨åˆ†é…新的待办事项。"
-
msgid "Todos|Assigned"
msgstr "已分é…"
@@ -50035,6 +51030,9 @@ msgstr "å·²æåŠ"
msgid "Todos|Merge request"
msgstr "åˆå¹¶è¯·æ±‚"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "您的待办事项列表中没有任何事项。"
@@ -50071,6 +51069,9 @@ msgstr "添加了一个待办事项"
msgid "Todos|has requested access to %{what} %{which}"
msgstr "已请求访问 %{what} %{which}"
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr "æåŠäº† %{who}"
@@ -50113,8 +51114,8 @@ msgstr "展开或éšè—æ交列表"
msgid "Toggle details"
msgstr "切æ¢è¯¦ç»†ä¿¡æ¯"
-msgid "Toggle emoji award"
-msgstr "切æ¢è¡¨æƒ…符å·èµžèµ"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr "开关文件æµè§ˆå™¨"
@@ -50125,9 +51126,6 @@ msgstr "åˆ‡æ¢ focus 模å¼"
msgid "Toggle keyboard shortcuts help dialog"
msgstr "切æ¢é”®ç›˜å¿«æ·é”®å¸®åŠ©å¯¹è¯æ¡†"
-msgid "Toggle navigation"
-msgstr "切æ¢å¯¼èˆª"
-
msgid "Toggle project select"
msgstr "切æ¢é¡¹ç›®é€‰æ‹©"
@@ -50143,11 +51141,11 @@ msgstr "切æ¢æ€§èƒ½æ "
msgid "Toggle the navigation sidebar"
msgstr "切æ¢å¯¼èˆªä¾§è¾¹æ "
-msgid "Toggled :%{name}: emoji award."
-msgstr "åˆ‡æ¢ :%{name}: 表情符å·èµžèµã€‚"
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr "åˆ‡æ¢ :%{name}: 表情符å·èµžèµã€‚"
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr "令牌"
@@ -50188,18 +51186,6 @@ msgstr "找到了太多用户。快速æ“作仅é™äºŽæœ€å¤š %{max_count} 个用æ
msgid "Tool"
msgstr "工具"
-msgid "TopNav|Explore"
-msgstr "探索"
-
-msgid "TopNav|Go back"
-msgstr "返回"
-
-msgid "TopNav|Switch to"
-msgstr "切æ¢åˆ°"
-
-msgid "TopNav|Your dashboards"
-msgstr "您的仪表盘"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "主题 %{source_topic} å·²æˆåŠŸåˆå¹¶åˆ°ä¸»é¢˜ %{target_topic} 中。"
@@ -50267,6 +51253,12 @@ msgstr "总跨度"
msgid "Total test time for all commits/merges"
msgstr "所有æ交和åˆå¹¶çš„总测试时间"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "用户总数"
@@ -50291,8 +51283,28 @@ msgstr "开始跟踪"
msgid "Tracing"
msgstr "跟踪"
-msgid "Tracing|%{ms} ms"
-msgstr "%{ms} 毫秒"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
+msgstr ""
+
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
msgid "Tracing|Attribute"
msgstr "属性"
@@ -50300,9 +51312,6 @@ msgstr "属性"
msgid "Tracing|Attributes"
msgstr "属性"
-msgid "Tracing|Check again"
-msgstr "å†æ¬¡æŸ¥çœ‹"
-
msgid "Tracing|Date"
msgstr "日期"
@@ -50360,12 +51369,12 @@ msgstr "最近 7 天"
msgid "Tracing|Metadata"
msgstr "元数æ®"
-msgid "Tracing|No traces to display."
-msgstr "没有å¯æ˜¾ç¤ºçš„跟踪。"
-
msgid "Tracing|Operation"
msgstr "è¿ç»´"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
+msgstr "刷新页é¢æˆ–编辑您的æœç´¢è¿‡æ»¤å™¨å¹¶é‡è¯•"
+
msgid "Tracing|Resource attributes"
msgstr "资æºå±žæ€§"
@@ -50498,27 +51507,6 @@ msgstr "树形视图"
msgid "Trending"
msgstr "热门"
-msgid "TrialBenefits|Container Scanning"
-msgstr "容器扫æ"
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr "动æ€åº”用程åºå®‰å…¨æµ‹è¯•"
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr "多级å²è¯—"
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr "安全仪表盘"
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr "é™æ€åº”用安全测试"
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr "推è审阅者"
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr "æ¼æ´žç®¡ç†"
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr "开始å…费试用专业版"
@@ -50534,29 +51522,20 @@ msgstr "%{planName} 试用"
msgid "Trials|Compare all plans"
msgstr "比较所有方案"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr "æ­å–œæ‚¨å¼€å§‹ 60天 å…费试用ï¼"
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "创建一个新群组以开始您的旗舰版试用。"
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr "第 %{daysUsed}/%{duration} 天"
+msgid "Trials|Don't lose out on additional GitLab features"
+msgstr "ä¸è¦é”™è¿‡æžç‹GitLab 的其他功能"
+
msgid "Trials|Looking to do more with GitLab?"
msgstr "希望使用 GitLab åšæ›´å¤šäº‹æƒ…?"
-msgid "Trials|Trials benefits"
-msgstr "试用的好处"
-
-msgid "Trials|Upgrade your plan for more security features"
-msgstr "å‡çº§æ‚¨çš„计划以获得更多安全功能"
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
-msgstr "使用旗舰版,您å¯ä»¥æ£€æµ‹å¹¶è§£å†³åº”用程åºä¸­çš„æ¼æ´žã€‚"
-
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
-msgstr "使用æžç‹GitLab 旗舰版,您将å¯ä»¥è®¿é—®ï¼š"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
+msgstr "å‡çº§ä»¥é‡æ–°èŽ·å¾—强大功能,如高级团队管ç†ä»£ç ã€å®‰å…¨å’ŒæŠ¥å‘Šã€‚"
msgid "Trials|You can apply your trial to a new group or an existing group."
msgstr "您å¯ä»¥å°†æ‚¨åœ¨ä¸€ä¸ªæ–°ç¾¤ç»„或一个现有群组上é¢è¿›è¡Œè¯•ç”¨ã€‚"
@@ -50697,12 +51676,6 @@ msgstr "关闭"
msgid "Turn on"
msgstr "打开"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr "åŒé‡è®¤è¯"
@@ -50778,15 +51751,30 @@ msgstr "如有必è¦ï¼ŒURL å¿…é¡»ç»è¿‡ç™¾åˆ†æ¯”ç¼–ç ã€‚"
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "URL必须以%{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}或%{codeStart}ftp://%{codeEnd}开始"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr "è¦ä»ŽæŒ‡æ ‡ä»ªè¡¨ç›˜èœå•é¡¹é“¾æŽ¥åˆ° Grafana 实例的 URL。"
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr "外部垃圾信æ¯æ£€æŸ¥ç«¯ç‚¹URL"
msgid "URL of the external storage to serve the repository static objects."
msgstr "用于为仓库é™æ€å¯¹è±¡æä¾›æœåŠ¡çš„外部存储的 URL。"
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL或请求ID"
@@ -50952,9 +51940,18 @@ msgstr "æ— æƒåˆ›å»ºè½¯ä»¶åŒ…ä¿æŠ¤è§„则"
msgid "Unauthorized to create an environment"
msgstr "æ— æƒåˆ›å»ºçŽ¯å¢ƒ"
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr "æ— æƒåˆ é™¤åŒ…ä¿æŠ¤è§„则"
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr "æ— æƒæ›´æ–°è½¯ä»¶åŒ…çš„ä¿æŠ¤è§„则"
+
msgid "Unauthorized to update the environment"
msgstr "æ— æƒæ›´æ–°çŽ¯å¢ƒ"
@@ -51030,8 +52027,8 @@ msgstr "未知的å“应文本"
msgid "Unknown user"
msgstr "未知用户"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
-msgstr "除éžä¸ŽGitLabå¦æœ‰ä¹¦é¢å议,å¦åˆ™å•å‡»â€œä¸Šä¼ è®¸å¯â€å³è¡¨ç¤ºæ‚¨åŒæ„使用GitLab软件应éµå®ˆ %{eula_link_start}æœåŠ¡æ¡æ¬¾%{eula_link_end}。"
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr "除éžä¸Žæžç‹GitLab å¦æœ‰ä¹¦é¢çº¦å®šï¼Œå¦åˆ™å•å‡»â€œæ·»åŠ è®¸å¯è¯â€å³è¡¨ç¤ºæ‚¨åŒæ„æžç‹ GitLab 软件的 %{eula_link_start}æœåŠ¡æ¡æ¬¾%{eula_link_end}。"
msgid "Unlimited"
msgstr "æ— é™"
@@ -51081,6 +52078,9 @@ msgstr "解é”讨论"
msgid "Unlocks the discussion."
msgstr "解é”讨论。"
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "无法访问"
@@ -51234,6 +52234,9 @@ msgstr "å–消"
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "因为项目容器镜åƒåº“已有标签,无法更新当å‰é¡¹ç›®ï¼"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr "无法é‡å‘½å项目,容器注册表路径é‡å‘½å验è¯å¤±è´¥ï¼š %{error}"
+
msgid "UpdateProject|Could not set the default branch"
msgstr "无法设置默认分支"
@@ -51372,8 +52375,11 @@ msgstr "剩余 %{percentageRemaining}%% 命å空间存储。"
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr "购买的存储容é‡å‰©ä½™ %{percentageRemaining}%%。"
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
-msgstr "%{storage_limit_link_start}命å空间存储é™åˆ¶%{link_end}将很快在 %{strong_start}%{namespace_name}%{strong_end} 命å空间中执行。%{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
+msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
msgstr "é¢å¤–购买的存储空间将显示在此处。"
@@ -51387,9 +52393,6 @@ msgstr "è´­ä¹°é¢å¤–的计算分钟数"
msgid "UsageQuota|Buy storage"
msgstr "购买存储"
-msgid "UsageQuota|Code Suggestions"
-msgstr "代ç å»ºè®®"
-
msgid "UsageQuota|Code packages and container images."
msgstr "代ç åŒ…和容器镜åƒã€‚"
@@ -51411,15 +52414,15 @@ msgstr "容器镜åƒåº“"
msgid "UsageQuota|Dependency proxy"
msgstr "ä¾èµ–代ç†"
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
msgid "UsageQuota|Filter charts by year"
msgstr "按年筛选图表"
msgid "UsageQuota|Filter projects data by month"
msgstr "按月过滤项目数æ®"
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "关于存储é™åˆ¶çš„更多信æ¯ï¼Œè¯·å‚阅我们的 %{faq_link_start}常è§é—®é¢˜%{link_end}。"
-
msgid "UsageQuota|Git repository."
msgstr "Git仓库。"
@@ -51450,8 +52453,8 @@ msgstr "了解有关使用é…é¢çš„更多信æ¯"
msgid "UsageQuota|Learn more about usage quotas."
msgstr "了解有关使用é…é¢çš„更多信æ¯ã€‚"
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
-msgstr "ç»å¸¸è®¿é—®çš„ Docker 上游镜åƒä½¿ç”¨çš„本地代ç†ã€‚%{linkStart}更多信æ¯%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
+msgstr ""
msgid "UsageQuota|Month"
msgstr "月份"
@@ -51489,8 +52492,8 @@ msgstr "容器镜åƒåº“存储大å°çš„精确计算被延迟,因为它过大,
msgid "UsageQuota|Product analytics"
msgstr "产å“分æž"
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
-msgstr "此命å空间下的项目拥有 %{planLimit} 存储空间。"
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
+msgstr "此命å空间下的项目对存储库和 LFS 对象应用 %{planLimit} 的存储é™åˆ¶ã€‚"
msgid "UsageQuota|Purchased storage"
msgstr "购买的存储"
@@ -51516,9 +52519,6 @@ msgstr "获å–æµæ°´çº¿ç»Ÿè®¡æ—¶å‡ºçŽ°é”™è¯¯"
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr "获å–项目存储统计时出现错误"
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr "加载使用详情时出错"
-
msgid "UsageQuota|Storage"
msgstr "存储"
@@ -51768,12 +52768,6 @@ msgstr "使用模æ¿"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr "使用上é¢çš„ %{strongStart}测试%{strongEnd} 选项创建事件。"
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr "使用 Apple App Store Connect 集æˆï¼Œé€šè¿‡ CI/CD æµæ°´çº¿ä¸­çš„ Fastlane è½»æ¾è¿žæŽ¥åˆ° Apple App Store。"
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr "使用 Google Play 集æˆï¼Œé€šè¿‡ CI/CD æµæ°´çº¿ä¸­çš„快速通é“连接到 Google Play。"
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr "使用以下链接确认您的电å­é‚®ä»¶åœ°å€ (%{email})"
@@ -51786,6 +52780,12 @@ msgstr "使用公共云实例 URL (%{kroki_public_url}) 或 %{install_link_start
msgid "Use the search bar on the top of this page"
msgstr "使用本页顶部的æœç´¢æ "
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr "使用此部分ç¦ç”¨ä¸€æ¬¡æ€§å¯†ç éªŒè¯å™¨å’Œ WebAuthn 设备。您也å¯ä»¥ç”Ÿæˆæ–°çš„æ¢å¤ç ã€‚"
@@ -51850,6 +52850,9 @@ msgstr "用户 %{user} SCIM 身份已é‡æ–°æ¿€æ´»"
msgid "User %{user} was removed from %{group}."
msgstr "用户 %{user} 已从 %{group} 移除。"
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "用户ID"
@@ -51955,6 +52958,9 @@ msgstr "您确定è¦å±è”½ç”¨æˆ·å—?"
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr "用户将ä¸å¯ä»¥åˆ›å»ºå¯èƒ½çš„垃圾邮件ï¼æ‚¨ç¡®å®šå—?"
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr "基于用户的å‡çº§è§„则必须有一个用户å¯ä»¥è®¿é—®é¡¹ç›®"
@@ -52405,23 +53411,28 @@ msgstr "在此时间范围内,对于这些过滤器,此阶段有 0 项è¦æ˜¾
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "%{stageCount}+ 项"
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr "%{value}月"
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] "%{value}天"
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr "%{value}天"
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] "%{value}å°æ—¶"
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr "%{value}å°æ—¶"
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] "%{value}分钟"
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr "%{value}分钟"
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] "%{value} 个月"
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr "%{value}周"
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] "%{value}周"
-msgid "ValueStreamAnalytics|&lt;1m"
-msgstr "&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
+msgstr "&lt;1 分钟"
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
msgstr "æ¯å¤©ç”Ÿäº§çŽ¯å¢ƒéƒ¨ç½²çš„å¹³å‡æ•°ã€‚"
@@ -52438,6 +53449,9 @@ msgstr "仪表盘"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr "编辑价值æµï¼š%{name}"
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr "使用情况概览数æ®åŠ è½½å¤±è´¥"
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr "转到文档"
@@ -52540,15 +53554,6 @@ msgstr "å˜é‡å称 “%{variable}†ä¸èƒ½ä»¥ “%{prefix}†开头"
msgid "Variables"
msgstr "å˜é‡"
-msgid "Variables can be:"
-msgstr "å˜é‡å¯ä»¥æ˜¯ï¼š"
-
-msgid "Variables can have several attributes."
-msgstr "å˜é‡å¯ä»¥æœ‰å¤šä¸ªå±žæ€§ã€‚"
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr "å˜é‡å­˜å‚¨ä¿¡æ¯ï¼Œå¦‚密ç å’Œå¯†é’¥ï¼Œæ‚¨å¯ä»¥åœ¨ä½œä¸šè„šæœ¬ä¸­ä½¿ç”¨ã€‚实例上的所有项目都å¯ä»¥ä½¿ç”¨è¿™äº›å˜é‡ã€‚"
-
msgid "Various container registry settings."
msgstr "容器镜åƒåº“相关设置。"
@@ -52630,9 +53635,6 @@ msgstr "您当å‰ä½¿ç”¨çš„是版本 %{currentVersion}ï¼æˆ‘们强烈建议立å³
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr "您当å‰ä½¿ç”¨çš„是 %{currentVersion} 版本ï¼æˆ‘们强烈建议您立å³å‡çº§åˆ°ä»¥ä¸‹ç‰ˆæœ¬ä¹‹ä¸€ï¼š%{latestStableVersions}。"
-msgid "VersionCheck|Your GitLab Version"
-msgstr "您的 GitLab 版本"
-
msgid "View File Metadata"
msgstr "查看文件元数æ®"
@@ -52651,15 +53653,9 @@ msgstr "查看全部"
msgid "View all environments."
msgstr "查看所有环境。"
-msgid "View all groups"
-msgstr "查看所有群组"
-
msgid "View all issues"
msgstr "查看所有议题"
-msgid "View all projects"
-msgstr "查看所有项目"
-
msgid "View blame"
msgstr "查看 blame"
@@ -52725,7 +53721,7 @@ msgid "View issues"
msgstr "查看议题"
msgid "View it on GitLab"
-msgstr "使用GitLab查看"
+msgstr "使用æžç‹GitLab 查看"
msgid "View job"
msgstr "查看作业"
@@ -52757,6 +53753,9 @@ msgstr "查看待处ç†çš„åˆå¹¶è¯·æ±‚"
msgid "View page @ "
msgstr "查看页é¢@ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "在管ç†ä¸­å¿ƒæŸ¥çœ‹é¡¹ç›®"
@@ -52788,6 +53787,9 @@ msgstr "查看文档"
msgid "View the latest successful deployment to this environment"
msgstr "查看此环境最新æˆåŠŸéƒ¨ç½²"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr "查看触å‘令牌用法示例"
@@ -52863,6 +53865,9 @@ msgstr "Visual Studio Code (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Visual Studio Code (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr "此群组ä¸å¯ç”¨ ClickHouse æ•°æ®å­˜å‚¨"
+
msgid "Vulnerabilities"
msgstr "æ¼æ´ž"
@@ -52932,6 +53937,9 @@ msgstr "详情"
msgid "VulnerabilityExport|Detected At"
msgstr "检测时间"
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr "完整路径"
@@ -53712,6 +54720,9 @@ msgstr "SSL验è¯"
msgid "Webhooks|Secret token"
msgstr "Secret 令牌"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "URL çš„æ•æ„Ÿéƒ¨åˆ†"
@@ -53889,11 +54900,11 @@ msgstr "当您将您的项目转移到一个群组时,你å¯ä»¥è½»æ¾åœ°ç®¡ç†
msgid "When your trial ends, you'll have a maximum of %d member on the Free tier, or you can get more by upgrading to a paid tier."
msgid_plural "When your trial ends, you'll have a maximum of %d members on the Free tier, or you can get more by upgrading to a paid tier."
-msgstr[0] ""
+msgstr[0] "当您的试用结æŸæ—¶ï¼Œæ‚¨æœ€å¤šå¯ä»¥æœ‰ %d 个基础版æˆå‘˜ï¼Œæˆ–者您å¯ä»¥é€šè¿‡å‡çº§åˆ°ä»˜è´¹ç‰ˆæœ¬æ¥èŽ·å¾—更多æˆå‘˜å¸­ä½ã€‚"
msgid "When your trial ends, you'll move to the Free tier, which has a limit of %{free_user_limit} seat. %{free_user_limit} seat will remain active, and members not occupying a seat will have the %{link_start}Over limit status%{link_end} and lose access to this group."
msgid_plural "When your trial ends, you'll move to the Free tier, which has a limit of %{free_user_limit} seats. %{free_user_limit} seats will remain active, and members not occupying a seat will have the %{link_start}Over limit status%{link_end} and lose access to this group."
-msgstr[0] ""
+msgstr[0] "当您的试用期结æŸæ—¶ï¼Œæ‚¨å°†è½¬åˆ°å…费版,席ä½é™åˆ¶ä¸º %{free_user_limit} 个。%{free_user_limit} 个席ä½å°†ä¿æŒæ´»åŠ¨çŠ¶æ€ï¼Œæœªå ç”¨å¸­ä½çš„æˆå‘˜å°†å¤„于%{link_start}超é™çŠ¶æ€%{link_end}并无法访问该群组。"
msgid "When:"
msgstr "当:"
@@ -54207,6 +55218,9 @@ msgstr "添加到里程碑"
msgid "WorkItem|All activity"
msgstr "所有活动"
+msgid "WorkItem|Ancestor"
+msgstr "祖先"
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "您确定è¦å–消编辑å—?"
@@ -54229,6 +55243,9 @@ msgstr "阻塞"
msgid "WorkItem|Cancel"
msgstr "å–消"
+msgid "WorkItem|Child items"
+msgstr "å­é¡¹"
+
msgid "WorkItem|Child objectives and key results"
msgstr "å­ç›®æ ‡å’Œå…³é”®ç»“æžœ"
@@ -54274,6 +55291,9 @@ msgstr "截止日期"
msgid "WorkItem|Epic"
msgstr "å²è¯—"
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr "现有任务"
@@ -54310,15 +55330,27 @@ msgstr "标记为完æˆ"
msgid "WorkItem|Milestone"
msgstr "里程碑"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr "新建 %{workItemType}"
msgid "WorkItem|New task"
msgstr "新建任务"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "无迭代"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "没有匹é…的结果"
@@ -54349,9 +55381,6 @@ msgstr "目标"
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr "一次åªèƒ½æ·»åŠ  %{MAX_WORK_ITEMS} 项目。"
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr "åªæœ‰ä½œè€…ã€æŒ‡æ´¾äººå’Œè‡³å°‘是报告者的项目æˆå‘˜ï¼Œå¯ä»¥æŸ¥çœ‹æˆ–收到有关此 %{workItemType} 的通知。"
-
msgid "WorkItem|Open"
msgstr "开放"
@@ -54373,12 +55402,15 @@ msgstr "è¦æ±‚"
msgid "WorkItem|Save and overwrite"
msgstr "ä¿å­˜å¹¶è¦†ç›–"
-msgid "WorkItem|Search existing items"
-msgstr "æœç´¢çŽ°æœ‰é¡¹ç›®"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
+msgstr ""
msgid "WorkItem|Select type"
msgstr "选择类型"
+msgid "WorkItem|Show all ancestors"
+msgstr "显示所有上级"
+
msgid "WorkItem|Show labels"
msgstr "显示标签"
@@ -54394,6 +55426,9 @@ msgstr "删除 %{workItemType} 时出现问题。请å†è¯•ä¸€æ¬¡ã€‚"
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "删除任务时出错。请é‡è¯•ã€‚"
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr "获å–项目时出错。请刷新此页é¢ã€‚"
@@ -54403,9 +55438,6 @@ msgstr "获å–迭代时出错。请å†è¯•ä¸€æ¬¡ã€‚"
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr "获å–标记时出错。请é‡è¯•ã€‚"
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "获å–任务时出错。请刷新此页é¢ã€‚"
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr "获å–工作项类型时出现错误,请å†è¯•ä¸€æ¬¡ã€‚"
@@ -54535,8 +55567,8 @@ msgstr "项目"
msgid "WorkItem|relates to"
msgstr "å…³è”到"
-msgid "WorkItem|the following item(s)"
-msgstr "以下项目"
+msgid "WorkItem|the following items"
+msgstr ""
msgid "Workspaces"
msgstr "工作区"
@@ -54553,6 +55585,9 @@ msgstr "无法加载工作区"
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr "无法检索此项目的集群代ç†"
+msgid "Workspaces|Create a new workspace"
+msgstr "创建新工作区"
+
msgid "Workspaces|Create workspace"
msgstr "创建工作区"
@@ -54631,8 +55666,8 @@ msgstr "è¦ä¸ºæ­¤é¡¹ç›®åˆ›å»ºå·¥ä½œåŒºï¼Œç®¡ç†å‘˜å¿…é¡»%{linkStart}为项目所
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr "è¦åˆ›å»ºå·¥ä½œåŒºï¼Œè¯·æ·»åŠ ä¸€ä¸ª devfile 到此项目,devfile 是您工作区的é…置文件。"
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
-msgstr "无法加载当å‰å·¥ä½œåŒºã€‚请é‡è¯•æˆ–è”系管ç†å‘˜ã€‚"
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
+msgstr ""
msgid "Workspaces|Unknown state"
msgstr "未知状æ€"
@@ -54685,6 +55720,12 @@ msgstr "编写å‘行说明(Release Notes) 或将文件拖动到此处..."
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr "æ供了错误的外部UID。请正确é…ç½®Auth0。"
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -54712,6 +55753,9 @@ msgstr "昨天"
msgid "You"
msgstr "您"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr "您已有针对此警报的待处ç†çš„待办事项"
@@ -55079,12 +56123,12 @@ msgstr "您还ä¸å±žäºŽä»»ä½•ç¾¤ç»„。"
msgid "You do not belong to any projects yet."
msgstr "您还ä¸å±žäºŽä»»ä½•é¡¹ç›®ã€‚"
-msgid "You do not have access to AI features."
-msgstr "您无æƒä½¿ç”¨ AI 功能。"
-
msgid "You do not have access to any projects for creating incidents."
msgstr "您没有æƒé™è®¿é—®ä»»ä½•ç”¨äºŽåˆ›å»ºäº‹ä»¶çš„项目。"
+msgid "You do not have access to chat feature."
+msgstr ""
+
msgid "You do not have any subscriptions yet"
msgstr "您当å‰å°šæœªè®¢é˜…任何计划"
@@ -55136,6 +56180,9 @@ msgstr "您没有任何近期的æœç´¢"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr "您无æƒæ‰¹å‡†æ­¤éƒ¨ç½²ã€‚è”系项目或群组所有者寻求帮助。"
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr "您没有æƒé™æŸ¥çœ‹è¿™ä¸ªå²è¯—。"
@@ -55164,6 +56211,9 @@ msgstr[0] "您有 %{pendingMembersCount} 个待处ç†æˆå‘˜éœ€è¦æ‰¹å‡†ã€‚"
msgid "You have already reported this user"
msgstr "您已ç»ä¸¾æŠ¥äº†æ­¤ç”¨æˆ·"
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "你已被授予 %{access_level} 访问 %{source_link} %{source_type} çš„æƒé™ã€‚"
@@ -55197,8 +56247,8 @@ msgstr "您没有足够的æƒé™ä¸ºæ­¤é¡¹ç›®é…ç½®å‡çº§ç­–ç•¥"
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr "您没有足够的æƒé™ä¸ºè¿™ä¸ªè­¦æŠ¥åˆ›å»ºå¾…办事项"
-msgid "You have insufficient permissions to create a target branch rule"
-msgstr "您没有足够的æƒé™åˆ›å»ºç›®æ ‡åˆ†æ”¯è§„则"
+msgid "You have insufficient permissions to create a branch target"
+msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
msgstr "您没有足够的æƒé™ä¸ºæ­¤é¡¹ç›®åˆ›å»ºHTTP集æˆ"
@@ -55209,8 +56259,8 @@ msgstr "您没有足够的æƒé™æ¥åˆ›å»ºæ­¤é¡¹ç›®çš„待命计划"
msgid "You have insufficient permissions to create organizations"
msgstr "您没有足够的æƒé™åˆ›å»ºç»„织"
-msgid "You have insufficient permissions to delete a target branch rule"
-msgstr "您没有足够的æƒé™åˆ é™¤ç›®æ ‡åˆ†æ”¯è§„则"
+msgid "You have insufficient permissions to delete a branch target"
+msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
msgstr "您没有足够的æƒé™ç®¡ç†æ­¤é¡¹ç›®çš„警报"
@@ -55242,6 +56292,9 @@ msgstr "您没有足够的æƒé™ä¸ºæ­¤è®®é¢˜è®¾ç½®å®¢æˆ·å…³ç³»è”系人"
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr "您没有足够的æƒé™æ¥æ›´æ–°æ­¤é¡¹ç›®çš„on-call计划"
+msgid "You have insufficient permissions to update the organization"
+msgstr "您没有足够的æƒé™æ¥æ›´æ–°ç»„织"
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "您没有足够的æƒé™æ¥æ›´æ–°æ­¤HTTP集æˆ"
@@ -55281,6 +56334,9 @@ msgstr "你现在å¯ä»¥å…³é—­è¿™ä¸ªé‡Œç¨‹ç¢‘。"
msgid "You must be authenticated to access this path."
msgstr "您必须ç»è¿‡è®¤è¯æ‰èƒ½è®¿é—®æ­¤è·¯å¾„。"
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "您必须登录æ‰èƒ½åœ¨æ•´ä¸ªGitLab中进行æœç´¢"
@@ -55417,28 +56473,28 @@ msgid "You're not allowed to make changes to this project directly. A fork of th
msgstr "您ä¸èƒ½ç›´æŽ¥å¯¹æ­¤é¡¹ç›®è¿›è¡Œæ›´æ”¹ã€‚此项目的派生项目正在创建,您å¯ä»¥åœ¨æ´¾ç”Ÿé¡¹ç›®ä¸­è¿›è¡Œæ›´æ”¹ï¼Œä»¥ä¾¿æ交åˆå¹¶è¯·æ±‚。"
msgid "You're receiving this email because of your account on %{host}."
-msgstr "您收到这å°ç”µå­é‚®ä»¶ï¼Œæ˜¯å› ä¸ºæ‚¨åœ¨ %{host} 拥有å¸æˆ·ã€‚"
+msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host} 上的账户所进行的é…置。"
msgid "You're receiving this email because of your account on %{host}. %{manage_label_subscriptions_link_start}Manage label subscriptions%{manage_label_subscriptions_link_end} &middot; %{help_link_start}Help%{help_link_end}"
-msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host}上的å¸æˆ·ã€‚%{manage_label_subscriptions_link_start}管ç†æ ‡è®°è®¢é˜…%{manage_label_subscriptions_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
+msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host}上的账户所进行的é…置。%{manage_label_subscriptions_link_start}管ç†æ ‡è®°è®¢é˜…%{manage_label_subscriptions_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
-msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host}上的å¸æˆ·ã€‚%{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
+msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host}上的账户所进行的é…置。%{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
msgid "You're receiving this email because of your account on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
-msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host}上的å¸æˆ·ã€‚从此主题%{unsubscribe_link_start}å–消订阅%{unsubscribe_link_end} &middot; %{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
+msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host}上的账户所进行的é…置。%{unsubscribe_link_start}å–消订阅%{unsubscribe_link_end}此主题 &middot; %{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
msgid "You're receiving this email because of your activity on %{host}."
msgstr "您在%{host}上有活动,因此收到此电å­é‚®ä»¶ã€‚"
msgid "You're receiving this email because of your activity on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
-msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host}上的活动。从此主题%{unsubscribe_link_start}å–消订阅%{unsubscribe_link_end} &middot; %{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
+msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host}上的活动。%{unsubscribe_link_start}å–消订阅%{unsubscribe_link_end}此主题 &middot; %{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
msgid "You're receiving this email because you have been assigned an item on %{host}."
msgstr "您收到此电å­é‚®ä»¶æ˜¯å› ä¸º%{host}上有æŸä¸ªé¡¹ç›®æŒ‡æ´¾ç»™æ‚¨ã€‚"
msgid "You're receiving this email because you have been assigned an item on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
-msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host} 上指派了一个事项。从此主题%{unsubscribe_link_start}å–消订阅%{unsubscribe_link_end} &middot; %{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
+msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host} 上被指派了一个事项。%{unsubscribe_link_start}å–消订阅%{unsubscribe_link_end}此主题 &middot; %{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
msgid "You're receiving this email because you have been mentioned on %{host}."
msgstr "您收到此电å­é‚®ä»¶æ˜¯å› ä¸º%{host}上æåŠäº†æ‚¨ã€‚"
@@ -55447,7 +56503,7 @@ msgid "You're receiving this email because you have been mentioned on %{host}. %
msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host} 上被æåŠã€‚%{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
msgid "You're receiving this email because you have been mentioned on %{host}. %{unsubscribe_link_start}Unsubscribe%{unsubscribe_link_end} from this thread &middot; %{manage_notifications_link_start}Manage all notifications%{manage_notifications_link_end} &middot; %{help_link_start}Help%{help_link_end}"
-msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host} 上指派了一个事项。从此主题%{unsubscribe_link_start}å–消订阅%{unsubscribe_link_end} &middot; %{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
+msgstr "您收到这å°ç”µå­é‚®ä»¶æ˜¯å› ä¸ºæ‚¨åœ¨ %{host} 上被æåŠã€‚%{unsubscribe_link_start}å–消订阅%{unsubscribe_link_end}此主题 &middot; %{manage_notifications_link_start}管ç†æ‰€æœ‰é€šçŸ¥%{manage_notifications_link_end} &middot; %{help_link_start}帮助%{help_link_end}"
msgid "You're viewing members of %{strong_start}%{group_name}%{strong_end}."
msgstr "您正在查看 %{strong_start}%{group_name}%{strong_end} çš„æˆå‘˜ã€‚"
@@ -55492,6 +56548,9 @@ msgstr "您为%{strong}%{namespace_name}%{strong_close}的%{strong}%{plan_name}%
msgid "Your Activity"
msgstr "您的活动"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr "您的 CI/CD é…置语法无效。选择验è¯é€‰é¡¹å¡äº†è§£æ›´å¤šè¯¦æƒ…。"
@@ -55504,6 +56563,9 @@ msgstr "您从项目%{project_link}导出包å«%{count}çš„CSV文件已作为附ä
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr "您从项目 %{project_name} (%{project_url}ï¼‰å¯¼å‡ºåŒ…å« %{exported_objects} çš„CSV文件已作为附件添加到此电å­é‚®ä»¶ä¸­ã€‚"
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr "您的 CSV 导出请求已æˆåŠŸã€‚结果将通过电å­é‚®ä»¶å‘é€è‡³ %{email}。"
@@ -55519,10 +56581,10 @@ msgstr "您对群组 %{group_name} 的监管链 CSV 导出已作为附件添加å
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr "您的 DevOps 报告从功能角度概述了您如何使用 GitLab。使用它们æ¥æŸ¥çœ‹æ‚¨ä¸Žå…¶ä»–组织的比较情况,以åŠæ‚¨çš„团队之间的比较情况。"
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55547,7 +56609,7 @@ msgid "Your GitLab instance allows anyone to register for an account, which is a
msgstr "您的 GitLab 实例å…许任何人注册一个å¸æˆ·ï¼Œé¢å‘公众的 GitLab 实例存在安全风险。如果ä¸å¸Œæœ›å…¬ä¼—用户注册å¸æˆ·ï¼Œæ‚¨åº”该åœç”¨æ–°çš„注册。"
msgid "Your GitLab version"
-msgstr "您的 GitLab 版本"
+msgstr "您的æžç‹GitLab 版本"
msgid "Your Groups"
msgstr "您的群组"
@@ -55724,6 +56786,9 @@ msgstr "您的æˆå‘˜èµ„格将在 %{days_to_expire} 天åŽåˆ°æœŸ"
msgid "Your name"
msgstr "您的åå­—"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr "您的命å空间存储已满。无法åˆå¹¶æ­¤åˆå¹¶è¯·æ±‚。è¦ç»§ç»­ï¼Œ 请%{link_start}管ç†æ‚¨çš„存储使用情况%{link_end}。"
+
msgid "Your new %{accessTokenType}"
msgstr "您的新 %{accessTokenType}"
@@ -55757,6 +56822,9 @@ msgstr "您的项目"
msgid "Your public email will be displayed on your public profile."
msgstr "您的公开电å­é‚®ä»¶å°†æ˜¾ç¤ºåœ¨æ‚¨çš„公开个人资料中。"
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr "您对此存储库的推é€å·²è¢«æ‹’ç»ï¼Œå› ä¸ºå®ƒå°†è¶…出命å空间存储é™åˆ¶ %{size_limit}。您å¯ä»¥å‡å°‘命å空间存储或购买é¢å¤–存储。è¦ç®¡ç†å­˜å‚¨æˆ–è´­ä¹°é¢å¤–存储,请å‚阅 %{manage_storage_url}。è¦äº†è§£æœ‰å…³é™åˆ¶æ“作的更多信æ¯ï¼Œè¯·å‚阅 %{restricted_actions_url}"
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr "无法处ç†æ‚¨çš„请求:%{error_message}"
@@ -55893,6 +56961,9 @@ msgstr "[Redacted]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr "[æ”¯æŒ GitLab-flavered markdown,包括快速æ“作]"
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr "`end_time` ä¸åº”超过 `start_time` åŽçš„一个月"
@@ -56121,12 +57192,12 @@ msgstr "ä¸èƒ½ä¸ºç©º"
msgid "cannot be changed"
msgstr "无法更改"
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr "存在具有自定义角色的关è”,所以无法更改"
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "如果个人项目具有容器镜åƒåº“标签,则无法更改。"
-msgid "cannot be changed since member is associated with a custom role"
-msgstr "无法更改,因为æˆå‘˜ä¸Žè‡ªå®šä¹‰è§’色关è”"
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr "å…³è”到父 %{parent_type} æ—¶ä¸èƒ½æ›´æ”¹ä¸º %{new_type}。"
@@ -56193,9 +57264,6 @@ msgstr "å·²é™ä½Ž%{degradedNum}"
msgid "ciReport|%{improvedNum} improved"
msgstr "已改进%{improvedNum}"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr "%{linkStartTag}了解有关代ç è´¨é‡æŠ¥å‘Šçš„更多信æ¯%{linkEndTag}"
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr "%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} 于 %{path}"
@@ -56238,8 +57306,8 @@ msgstr "通过从外å‘内检查æ¥åˆ†æžæ‚¨çš„ Web 应用程åºçš„已部署版æ
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "在新分支中自动应用补ä¸"
-msgid "ciReport|Base pipeline codequality artifact not found"
-msgstr "找ä¸åˆ°åŸºå‡†æµæ°´çº¿ä»£ç è´¨é‡äº§ç‰©"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr "自动打开一个由AI 生æˆçš„解决方案的åˆå¹¶è¯·æ±‚"
msgid "ciReport|Browser Performance"
msgstr "æµè§ˆå™¨æ€§èƒ½"
@@ -56275,17 +57343,6 @@ msgstr "代ç è´¨é‡æ²¡æœ‰å˜åŒ–。"
msgid "ciReport|Code Quality is loading"
msgstr "代ç è´¨é‡æ­£åœ¨åŠ è½½"
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] "代ç è´¨é‡å›  %d 个新问题而下é™"
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] "代ç è´¨é‡å›  %d 个新问题而æå‡"
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr "代ç è´¨é‡æ‰«æ在åˆå¹¶ç»“果中检测到 %{issueCount} 个更改"
-
msgid "ciReport|Container Scanning"
msgstr "容器扫æ"
@@ -56404,15 +57461,18 @@ msgstr "已手动添加"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr "æ–°æ¼æ´žæ˜¯å®‰å…¨æ‰«æ在åˆå¹¶è¯·æ±‚中检测到的,与默认分支中的现有æ¼æ´žä¸åŒçš„æ¼æ´žã€‚"
-msgid "ciReport|No changes to code quality"
-msgstr "代ç è´¨é‡æ— å˜åŒ–"
-
msgid "ciReport|No code quality issues found"
msgstr "未å‘现代ç è´¨é‡é—®é¢˜"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr "è§£æž schema 失败。请检查扫æ器的输出。"
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr "通过 AI 解决"
+
msgid "ciReport|Resolve with merge request"
msgstr "通过åˆå¹¶è¯·æ±‚解决"
@@ -56470,9 +57530,6 @@ msgstr "忽略此æ¼æ´žæ—¶å‘生错误。请å†è¯•ä¸€æ¬¡ã€‚"
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr "忽略æ¼æ´žæ—¶å‡ºé”™ï¼š%{error}"
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr "获å–代ç è´¨é‡æŠ¥å‘Šæ—¶å‡ºé”™ã€‚"
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "å–消忽略æ“作时å‘生错误。请å†è¯•ä¸€æ¬¡ã€‚"
@@ -56923,6 +57980,9 @@ msgstr "未关è”到 SAML 账户或具有éžæ´»åŠ¨ SCIM 身份。有关如何解
msgid "is not one of"
msgstr "ä¸æ˜¯å…¶ä¸­ä¹‹ä¸€"
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr "无效。迭代群组必须与迭代周期组匹é…。"
@@ -57083,6 +58143,9 @@ msgstr "å·²åˆå¹¶åˆ° %{targetBranch} çš„ %{mergeCommitSha}%{squashedCommits} çš„
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "更改未åˆå¹¶åˆ°åˆ†æ”¯ %{targetBranch}。"
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr "标记为已准备好"
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr "åˆå¹¶è¯·æ±‚ä¸åŒ…å«ä»»ä½•æ›´æ”¹"
@@ -57418,6 +58481,18 @@ msgstr "必须是 Debian 软件包"
msgid "must be a boolean value"
msgstr "必须是布尔值"
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr "必须为根群组。"
@@ -57463,6 +58538,9 @@ msgstr "必须至少为 1 天"
msgid "must be before %{expiry_date}"
msgstr "必须在 %{expiry_date} 之å‰"
+msgid "must be enabled."
+msgstr "å¿…é¡»å¯ç”¨"
+
msgid "must be false when email confirmation setting is off"
msgstr "当电å­é‚®ä»¶ç¡®è®¤è®¾ç½®å…³é—­æ—¶å¿…须为 false"
@@ -57481,6 +58559,9 @@ msgstr "必须在派生(fork)网络内"
msgid "must be less than the limit of %{tag_limit} tags"
msgstr "å¿…é¡»å°äºŽ %{tag_limit} 个标签的数é‡é™åˆ¶"
+msgid "must be one of: %{values}"
+msgstr "必须是以下之一: %{values}"
+
msgid "must be owned by the user's enterprise group"
msgstr "必须属于用户所属ä¼ä¸šé›†å›¢"
@@ -57514,6 +58595,9 @@ msgstr "必须有一个仓库"
msgid "must have a valid format and be greater than or equal to zero."
msgstr "必须具有有效格å¼å¹¶ä¸”大于等于零。"
+msgid "must have the 'enabled' flag set to true"
+msgstr "必须将 “å¯ç”¨â€ 标志设置为 true"
+
msgid "must match %{association}.project_id"
msgstr "å¿…é¡»åŒ¹é… %{association}.project_id"
@@ -57746,6 +58830,9 @@ msgstr "删除开始日期"
msgid "remove weight"
msgstr "移除æƒé‡"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr "删除了一个 %{link_type} 链接"
@@ -57772,9 +58859,6 @@ msgstr[0] "仓库"
msgid "repository:"
msgstr "仓库:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr "基于角色的访问级别ä¸åŒ¹é…æˆå‘˜çš„访问级别"
-
msgid "rule"
msgid_plural "rules"
msgstr[0] "规则"
@@ -57945,6 +59029,9 @@ msgstr "测试用例"
msgid "the correct format."
msgstr "正确的格å¼ã€‚"
+msgid "the custom role's base access level does not match the current access level"
+msgstr "自定义角色的基本访问级别与当å‰è®¿é—®çº§åˆ«ä¸åŒ¹é…"
+
msgid "the following epics"
msgstr "下列å²è¯—"
@@ -57954,6 +59041,9 @@ msgstr "下列事件或议题"
msgid "the following issues"
msgstr "下列议题"
+msgid "the member access level can't be higher than the current user's one"
+msgstr "æˆå‘˜è®¿é—®çº§åˆ«ä¸èƒ½é«˜äºŽå½“å‰ç”¨æˆ·çš„级别"
+
msgid "the wiki"
msgstr "wiki"
@@ -58052,7 +59142,7 @@ msgid "via merge request %{link}"
msgstr "通过åˆå¹¶è¯·æ±‚%{link}"
msgid "view it on GitLab"
-msgstr "使用GitLab查看"
+msgstr "使用æžç‹GitLab 查看"
msgid "view the blob"
msgstr "查看blob"
diff --git a/locale/zh_HK/gitlab.po b/locale/zh_HK/gitlab.po
index 40db58e5094..9e907f55bf5 100644
--- a/locale/zh_HK/gitlab.po
+++ b/locale/zh_HK/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: zh-HK\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:38\n"
+"PO-Revision-Date: 2024-01-11 16:28\n"
msgid " %{start} to %{end}"
msgstr ""
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] ""
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] ""
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] ""
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d 則留言"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] ""
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] ""
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] ""
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] ""
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] ""
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] ""
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] ""
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] ""
@@ -460,6 +452,9 @@ msgstr ""
msgid "%{authorsName}'s thread"
msgstr ""
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr ""
@@ -494,15 +489,6 @@ msgstr ""
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr ""
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr ""
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr ""
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr ""
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr ""
@@ -606,12 +592,6 @@ msgstr ""
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr ""
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr ""
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr ""
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr ""
@@ -648,6 +628,9 @@ msgstr ""
msgid "%{extra} more downstream pipelines"
msgstr ""
+msgid "%{failures} of %{total} failed"
+msgstr ""
+
msgid "%{filePath} deleted"
msgstr "已刪除 %{filePath}"
@@ -822,6 +805,12 @@ msgstr ""
msgid "%{linkStart}%{linkEnd} review summary"
msgstr ""
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr ""
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr ""
@@ -1075,6 +1064,9 @@ msgstr[0] ""
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr ""
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+msgstr ""
+
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
msgstr[0] ""
@@ -1154,8 +1146,11 @@ msgstr ""
msgid "%{time} UTC"
msgstr ""
-msgid "%{title} changes"
-msgstr "%{title} 變更"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr ""
@@ -1169,6 +1164,9 @@ msgstr ""
msgid "%{total_warnings} warning(s) found:"
msgstr ""
+msgid "%{total}"
+msgstr ""
+
msgid "%{total} remaining issue weight"
msgstr ""
@@ -1223,6 +1221,9 @@ msgstr ""
msgid "%{user} user’s menu"
msgstr ""
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr ""
@@ -1241,6 +1242,9 @@ msgstr ""
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr ""
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr ""
+
msgid "'%{level}' is not a valid visibility level"
msgstr ""
@@ -1256,9 +1260,21 @@ msgstr ""
msgid "'allow: %{allow}' must be a string"
msgstr ""
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr ""
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr ""
@@ -1293,6 +1309,12 @@ msgstr ""
msgid "(Unlimited pipeline minutes)"
msgstr ""
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr ""
@@ -1311,9 +1333,6 @@ msgstr ""
msgid "(leave blank if you don't want to change it)"
msgstr ""
-msgid "(max size 15 MB)"
-msgstr ""
-
msgid "(no user)"
msgstr ""
@@ -1344,7 +1363,7 @@ msgstr ""
msgid "+ %{count} more"
msgstr "+ %{count} 以上"
-msgid "+ %{hiddenBranchesLength} more"
+msgid "+ %{itemsLength} more"
msgstr ""
msgid "+ %{moreCount} more"
@@ -1634,9 +1653,6 @@ msgstr ""
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr ""
-msgid "A complete DevOps platform"
-msgstr ""
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr ""
@@ -1742,7 +1758,7 @@ msgstr ""
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr ""
-msgid "A rebase is already in progress."
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr ""
msgid "AI-generated summary"
msgstr ""
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr ""
@@ -1865,9 +1908,6 @@ msgstr ""
msgid "AI|Responses generated by AI"
msgstr ""
-msgid "AI|Send chat message."
-msgstr ""
-
msgid "AI|Something went wrong. Please try again later"
msgstr ""
@@ -1887,6 +1927,9 @@ msgstr ""
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr ""
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr ""
@@ -1932,6 +1975,9 @@ msgstr ""
msgid "API Help"
msgstr ""
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr ""
@@ -2253,6 +2299,12 @@ msgstr ""
msgid "AbuseReport|Phone"
msgstr ""
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr ""
@@ -2727,6 +2779,9 @@ msgstr ""
msgid "Add approvers"
msgstr ""
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr ""
@@ -2865,9 +2920,6 @@ msgstr ""
msgid "Add tag"
msgstr ""
-msgid "Add target branch rule"
-msgstr ""
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr ""
@@ -3021,15 +3073,15 @@ msgstr ""
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr ""
-msgid "Admin"
-msgstr ""
-
msgid "Admin Area"
msgstr "管ç†å€åŸŸ"
msgid "Admin Area / Dashboard"
msgstr ""
+msgid "Admin Mode"
+msgstr ""
+
msgid "Admin Note"
msgstr ""
@@ -3039,9 +3091,6 @@ msgstr ""
msgid "Admin message"
msgstr ""
-msgid "Admin mode"
-msgstr ""
-
msgid "Admin mode already enabled"
msgstr ""
@@ -3399,6 +3448,9 @@ msgstr ""
msgid "AdminSettings|Git abuse rate limit"
msgstr ""
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr ""
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr ""
@@ -3495,6 +3547,9 @@ msgstr ""
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr ""
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr ""
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr ""
@@ -4113,6 +4168,9 @@ msgstr ""
msgid "AdminUsers|user cap"
msgstr ""
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr ""
@@ -4146,6 +4204,9 @@ msgstr ""
msgid "Admin|Deploy Keys"
msgstr ""
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr ""
@@ -4257,18 +4318,24 @@ msgstr ""
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr ""
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
+msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr ""
-msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
+msgid "After the report is generated, an email will be sent with the report attached."
msgstr ""
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr ""
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr ""
@@ -4617,6 +4684,15 @@ msgstr ""
msgid "Algorithm"
msgstr ""
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "全部"
@@ -4647,9 +4723,6 @@ msgstr ""
msgid "All environments"
msgstr ""
-msgid "All frameworks selected"
-msgstr ""
-
msgid "All groups"
msgstr ""
@@ -4704,6 +4777,9 @@ msgstr ""
msgid "All users with matching cards"
msgstr ""
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr ""
@@ -4761,12 +4837,18 @@ msgstr ""
msgid "Allow use of licensed EE features"
msgstr ""
+msgid "Allow users to create organizations"
+msgstr ""
+
msgid "Allow users to extend their session"
msgstr ""
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr ""
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr ""
@@ -4788,9 +4870,6 @@ msgstr ""
msgid "Allows projects to track errors using an Opstrace integration."
msgstr ""
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "å…許您增加和管ç†Kuberneteså¢é›†ã€‚"
-
msgid "Almost there"
msgstr ""
@@ -4851,9 +4930,6 @@ msgstr ""
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr ""
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr ""
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr ""
@@ -4869,9 +4945,6 @@ msgstr ""
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr ""
-msgid "An email will be sent with the report attached after it is generated."
-msgstr ""
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr ""
@@ -4947,9 +5020,6 @@ msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "當解除通知時錯誤發生。請嘗試é‡æ–°æ•´ç†é é¢ä¸¦é‡è©¦ã€‚"
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "解除亮高顯示時發生錯誤,請é‡æ–°æ•´ç†é é¢å†æ¬¡å˜—試。"
-
msgid "An error occurred while drawing job relationship links."
msgstr ""
@@ -5178,9 +5248,8 @@ msgstr ""
msgid "An error occurred while saving changes: %{error}"
msgstr ""
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -5345,6 +5414,9 @@ msgstr ""
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr ""
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr ""
@@ -5453,6 +5525,9 @@ msgstr ""
msgid "Analytics|Event Props"
msgstr ""
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr ""
@@ -5561,6 +5636,9 @@ msgstr ""
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr ""
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr ""
@@ -5573,16 +5651,19 @@ msgstr ""
msgid "Analytics|Users"
msgstr ""
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr ""
-msgid "Analytics|Viewport"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
msgstr ""
-msgid "Analytics|Visualization"
+msgid "Analytics|Viewport"
msgstr ""
-msgid "Analytics|Visualization Designer"
+msgid "Analytics|Visualization"
msgstr ""
msgid "Analytics|Visualization designer"
@@ -5615,9 +5696,6 @@ msgstr ""
msgid "Ancestors"
msgstr ""
-msgid "And this registration token:"
-msgstr ""
-
msgid "Anonymous"
msgstr ""
@@ -5678,6 +5756,27 @@ msgstr ""
msgid "Append the comment with %{tableflip}"
msgstr ""
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
@@ -5690,16 +5789,13 @@ msgstr ""
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr ""
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr ""
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only"
msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
+msgid "AppleAppStore|Set variables on protected branches and tags only."
msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
@@ -5717,9 +5813,6 @@ msgstr ""
msgid "Application ID"
msgstr ""
-msgid "Application analytics"
-msgstr ""
-
msgid "Application limits saved successfully"
msgstr ""
@@ -6231,9 +6324,6 @@ msgstr ""
msgid "Archive project"
msgstr ""
-msgid "Archive test case"
-msgstr ""
-
msgid "Archived"
msgstr ""
@@ -6297,6 +6387,9 @@ msgstr ""
msgid "Are you sure you want to delete this SSH key?"
msgstr ""
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr ""
@@ -6312,9 +6405,6 @@ msgstr ""
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr ""
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr ""
-
msgid "Are you sure you want to deploy this environment?"
msgstr ""
@@ -6504,9 +6594,6 @@ msgstr ""
msgid "Artifacts|Total artifacts size"
msgstr ""
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr ""
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr ""
@@ -6522,6 +6609,9 @@ msgstr ""
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr ""
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr ""
@@ -6643,13 +6733,10 @@ msgstr ""
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr ""
-msgid "At least one of group_id or project_id must be specified"
+msgid "At least one of %{params} must be true"
msgstr ""
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr ""
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
+msgid "At least one of group_id or project_id must be specified"
msgstr ""
msgid "At risk"
@@ -6741,7 +6828,7 @@ msgstr ""
msgid "AuditStreams|AWS S3"
msgstr ""
-msgid "AuditStreams|Access Key Xid"
+msgid "AuditStreams|Access Key ID"
msgstr ""
msgid "AuditStreams|Active"
@@ -6819,6 +6906,9 @@ msgstr ""
msgid "AuditStreams|Filter by audit event type"
msgstr ""
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr ""
@@ -6855,6 +6945,12 @@ msgstr ""
msgid "AuditStreams|Select events"
msgstr ""
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr ""
@@ -6948,6 +7044,9 @@ msgstr ""
msgid "Authenticated web requests"
msgstr ""
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr ""
@@ -7137,12 +7236,6 @@ msgstr ""
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr ""
-msgid "Automation"
-msgstr ""
-
-msgid "Automation|Automation App"
-msgstr ""
-
msgid "Autosave|Note"
msgstr ""
@@ -7167,12 +7260,18 @@ msgstr ""
msgid "Average per day: %{average}"
msgstr ""
+msgid "Awaiting review"
+msgstr ""
+
msgid "Awaiting user signup"
msgstr ""
msgid "AwardEmoji|No emoji found."
msgstr ""
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr ""
@@ -7224,9 +7323,6 @@ msgstr ""
msgid "Badges|Add new badge"
msgstr ""
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr ""
-
msgid "Badges|Badge image URL"
msgstr ""
@@ -7239,9 +7335,6 @@ msgstr ""
msgid "Badges|Delete badge?"
msgstr "你確定è¦åˆªé™¤å¾½ç« å—Žï¼Ÿ"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "刪除徽章失敗,請ç¨å€™é‡è©¦"
-
msgid "Badges|Edit badge"
msgstr ""
@@ -7251,9 +7344,18 @@ msgstr ""
msgid "Badges|Example: %{exampleUrl}"
msgstr ""
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr ""
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr ""
+
msgid "Badges|Group Badge"
msgstr "群組徽章"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr ""
+
msgid "Badges|Link"
msgstr "連çµ"
@@ -7287,18 +7389,21 @@ msgstr ""
msgid "Badges|The badge was deleted."
msgstr "此徽章已移除"
-msgid "Badges|This group has no badges, start by creating a new one above."
+msgid "Badges|This group has no badges. Add an existing badge or create one."
msgstr ""
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr ""
-
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
+msgid "Badges|This project has no badges. Start by adding a new badge."
msgstr ""
msgid "Badges|Your badges"
msgstr "您的徽章"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr ""
@@ -7308,7 +7413,7 @@ msgstr ""
msgid "BambooService|Bamboo build plan key."
msgstr ""
-msgid "BambooService|Bamboo service root URL."
+msgid "BambooService|Bamboo root URL."
msgstr ""
msgid "BambooService|Enter new build key"
@@ -7323,7 +7428,7 @@ msgstr ""
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr ""
-msgid "BambooService|The user with API access to the Bamboo server."
+msgid "BambooService|User with API access to the Bamboo server."
msgstr ""
msgid "Banned"
@@ -7428,9 +7533,6 @@ msgstr ""
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr ""
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr ""
-
msgid "Begin with the selected commit"
msgstr "從é¸å®šçš„變更紀錄開始"
@@ -7788,6 +7890,9 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr ""
@@ -7818,13 +7923,13 @@ msgstr ""
msgid "Billing|An error occurred while loading billable members list."
msgstr ""
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr ""
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
msgid "Billing|An error occurred while removing a billable member."
@@ -7842,10 +7947,10 @@ msgstr ""
msgid "Billing|Enter at least three characters to search."
msgstr ""
-msgid "Billing|Error assigning Code Suggestions add-on"
+msgid "Billing|Error assigning Duo Pro add-on"
msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
+msgid "Billing|Error un-assigning Duo Pro add-on"
msgstr ""
msgid "Billing|Explore paid plans"
@@ -7885,12 +7990,6 @@ msgstr ""
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr ""
-msgid "Billing|Subscription end"
-msgstr ""
-
-msgid "Billing|Subscription start"
-msgstr ""
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
@@ -7912,7 +8011,10 @@ msgstr ""
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr ""
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
@@ -8103,12 +8205,6 @@ msgstr[0] ""
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr ""
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr ""
@@ -8127,9 +8223,6 @@ msgstr ""
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr ""
@@ -8139,18 +8232,12 @@ msgstr ""
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr ""
@@ -8163,51 +8250,27 @@ msgstr ""
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr ""
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr ""
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr ""
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr ""
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr ""
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr ""
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr ""
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr ""
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr ""
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr ""
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr ""
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr ""
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr ""
@@ -8236,9 +8302,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
-msgid "Boards|Move card"
-msgstr ""
-
msgid "Boards|Move to end of list"
msgstr ""
@@ -8332,6 +8395,9 @@ msgstr "分支已被採å–"
msgid "Branch name"
msgstr "分支å稱"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr ""
@@ -8341,6 +8407,18 @@ msgstr ""
msgid "Branch rules"
msgstr ""
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr ""
@@ -8407,15 +8485,27 @@ msgstr ""
msgid "BranchRules|Branch name or pattern"
msgstr ""
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr ""
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr ""
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr ""
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr ""
@@ -8473,6 +8563,12 @@ msgstr ""
msgid "BranchRules|Roles"
msgstr ""
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr ""
@@ -8491,6 +8587,9 @@ msgstr ""
msgid "BranchRules|View details"
msgstr ""
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr ""
@@ -8503,6 +8602,9 @@ msgstr "分支"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr ""
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr ""
@@ -8803,6 +8905,12 @@ msgstr "ç€è¦½æ–‡ä»¶"
msgid "Browse templates"
msgstr ""
+msgid "Bugs created per month by Priority"
+msgstr ""
+
+msgid "Bugs created per month by Severity"
+msgstr ""
+
msgid "Build cannot be erased"
msgstr ""
@@ -8836,9 +8944,18 @@ msgstr ""
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr ""
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr ""
+
msgid "BulkImport|Destination"
msgstr ""
+msgid "BulkImport|Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Direct transfer history"
+msgstr ""
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr ""
@@ -8848,16 +8965,25 @@ msgstr ""
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr ""
-msgid "BulkImport|GitLab Migration history"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
msgstr ""
msgid "BulkImport|History"
msgstr ""
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr ""
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr ""
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr ""
-msgid "BulkImport|Import groups from GitLab"
+msgid "BulkImport|Import groups by direct transfer"
msgstr ""
msgid "BulkImport|Import is finished. Pick another name for re-import"
@@ -8875,6 +9001,12 @@ msgstr ""
msgid "BulkImport|Importing the group failed."
msgstr ""
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr ""
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr ""
+
msgid "BulkImport|Last imported to %{link}"
msgstr ""
@@ -8929,7 +9061,10 @@ msgstr ""
msgid "BulkImport|Source group"
msgstr ""
-msgid "BulkImport|Template / File-based import / GitLab Migration"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr ""
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
msgstr ""
msgid "BulkImport|Update of import statuses with realtime changes failed"
@@ -8992,9 +9127,6 @@ msgstr ""
msgid "By %{user_name}"
msgstr ""
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr ""
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr ""
@@ -9134,6 +9266,9 @@ msgstr ""
msgid "CICD|Deployment strategy"
msgstr ""
+msgid "CICD|Developer"
+msgstr ""
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr ""
@@ -9155,6 +9290,12 @@ msgstr ""
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr ""
+msgid "CICD|Maintainer"
+msgstr ""
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr ""
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -9218,18 +9359,6 @@ msgstr ""
msgid "CVE|Why Request a CVE ID?"
msgstr ""
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr ""
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr ""
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr ""
-
-msgid "CVS|Toggle CVS"
-msgstr ""
-
msgid "Cadence is not automated"
msgstr ""
@@ -9248,16 +9377,16 @@ msgstr ""
msgid "Campfire token"
msgstr ""
-msgid "CampfireService|API authentication token from Campfire."
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
msgstr ""
-msgid "CampfireService|From the end of the room URL."
+msgid "CampfireService|API authentication token from Campfire."
msgstr ""
-msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
+msgid "CampfireService|ID portion of the Campfire room URL."
msgstr ""
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
+msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr ""
msgid "Can be manually deployed to"
@@ -9269,6 +9398,9 @@ msgstr ""
msgid "Can not delete primary training"
msgstr ""
+msgid "Can only be present for group level value streams"
+msgstr ""
+
msgid "Can't apply as the source branch was deleted."
msgstr ""
@@ -9719,6 +9851,9 @@ msgstr ""
msgid "ChatMessage|in %{project_link}"
msgstr ""
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr ""
@@ -9829,6 +9964,9 @@ msgstr ""
msgid "Checkout|Billing address"
msgstr ""
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr ""
@@ -9841,6 +9979,9 @@ msgstr ""
msgid "Checkout|City"
msgstr ""
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr ""
@@ -9853,6 +9994,9 @@ msgstr ""
msgid "Checkout|Confirming..."
msgstr ""
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr ""
@@ -9913,6 +10057,9 @@ msgstr ""
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr ""
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr ""
@@ -9970,6 +10117,9 @@ msgstr ""
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr ""
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr ""
@@ -9982,6 +10132,9 @@ msgstr ""
msgid "Checkout|Tax"
msgstr ""
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr ""
@@ -10051,9 +10204,6 @@ msgstr ""
msgid "Choose a file"
msgstr ""
-msgid "Choose a group"
-msgstr ""
-
msgid "Choose a template"
msgstr ""
@@ -10117,6 +10267,9 @@ msgstr ""
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr ""
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr ""
@@ -10135,7 +10288,10 @@ msgstr ""
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr ""
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr ""
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
msgstr ""
msgid "CiCatalog|Get started with the CI/CD Catalog"
@@ -10147,18 +10303,15 @@ msgstr ""
msgid "CiCatalog|Last release at %{date}"
msgstr ""
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr ""
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr ""
-
msgid "CiCatalog|No component available"
msgstr ""
msgid "CiCatalog|No release available"
msgstr ""
+msgid "CiCatalog|No result found"
+msgstr ""
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr ""
@@ -10168,25 +10321,46 @@ msgstr ""
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr ""
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
+msgid "CiCatalog|Remove from the CI/CD catalog"
msgstr ""
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
msgstr ""
-msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr ""
+
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr ""
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
msgstr ""
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr ""
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr ""
+
+msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr ""
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr ""
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr ""
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr ""
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr ""
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
msgstr ""
msgid "CiCatalog|Unreleased"
@@ -10195,6 +10369,9 @@ msgstr ""
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr ""
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr ""
@@ -10285,6 +10462,18 @@ msgstr ""
msgid "CiStatusText|Warning"
msgstr ""
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr ""
+
msgid "CiVariables|Add variable"
msgstr ""
@@ -10372,13 +10561,22 @@ msgstr ""
msgid "CiVariables|State"
msgstr ""
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr ""
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr ""
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr ""
-msgid "CiVariables|This variable value does not meet the masking requirements."
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr ""
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
msgstr ""
msgid "CiVariables|Type"
@@ -10402,10 +10600,22 @@ msgstr ""
msgid "CiVariables|Variables"
msgstr ""
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr ""
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
msgstr ""
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
@@ -10634,9 +10844,6 @@ msgstr ""
msgid "Close milestone"
msgstr "關閉里程碑"
-msgid "Close sidebar"
-msgstr "關閉å´é‚Šæ¬„"
-
msgid "Close this %{quick_action_target}"
msgstr ""
@@ -11670,16 +11877,34 @@ msgstr ""
msgid "CodeOwner|Pattern"
msgstr ""
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
msgstr ""
-msgid "CodeSuggestionsSM|Code Suggestions"
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
msgstr ""
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Code Suggestions"
+msgstr ""
+
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
@@ -11688,7 +11913,7 @@ msgstr ""
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr ""
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
msgstr ""
msgid "CodeSuggestions|Code Suggestions"
@@ -11697,22 +11922,22 @@ msgstr ""
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr ""
-msgid "CodeSuggestions|Code Suggestions seats used"
+msgid "CodeSuggestions|Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
+msgid "CodeSuggestions|Duo Pro add-on"
msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
+msgid "CodeSuggestions|Duo Pro seats used"
msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
+msgid "CodeSuggestions|Introducing Duo Pro"
msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
@@ -11842,6 +12067,9 @@ msgstr ""
msgid "ComboSearch is not defined"
msgstr ""
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr ""
@@ -11890,6 +12118,12 @@ msgstr ""
msgid "Comment"
msgstr "留言"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr ""
@@ -12167,13 +12401,49 @@ msgstr ""
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr ""
-msgid "Compliance Center|Export full report as CSV"
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
msgstr ""
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
msgstr ""
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
+msgid "Compliance Center Export|Export custody report"
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr ""
+
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr ""
+
+msgid "Compliance Center Export|Invalid hash"
+msgstr ""
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr ""
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
msgstr ""
msgid "Compliance Center|Frameworks"
@@ -12191,6 +12461,9 @@ msgstr ""
msgid "Compliance framework"
msgstr ""
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr ""
@@ -12203,6 +12476,9 @@ msgstr ""
msgid "ComplianceFrameworksReport|Edit framework"
msgstr ""
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr ""
@@ -12212,10 +12488,10 @@ msgstr ""
msgid "ComplianceFrameworks|Background color"
msgstr ""
-msgid "ComplianceFrameworks|Cancel"
+msgid "ComplianceFrameworks|Basic information"
msgstr ""
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
+msgid "ComplianceFrameworks|Cancel"
msgstr ""
msgid "ComplianceFrameworks|Compliance framework created"
@@ -12230,9 +12506,15 @@ msgstr ""
msgid "ComplianceFrameworks|Configuration not found"
msgstr ""
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr ""
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr ""
@@ -12245,6 +12527,9 @@ msgstr ""
msgid "ComplianceFrameworks|Description is required"
msgstr ""
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr ""
@@ -12275,9 +12560,15 @@ msgstr ""
msgid "ComplianceFrameworks|Name is required"
msgstr ""
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr ""
@@ -12296,12 +12587,18 @@ msgstr ""
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr ""
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr ""
msgid "ComplianceFrameworks|Set default"
msgstr ""
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr ""
@@ -12419,6 +12716,9 @@ msgstr ""
msgid "ComplianceReport|Update result"
msgstr ""
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr ""
@@ -12479,6 +12779,12 @@ msgstr ""
msgid "ComplianceStandardsAdherence|Project"
msgstr ""
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr ""
@@ -12506,7 +12812,13 @@ msgstr ""
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr ""
-msgid "ComplianceViolations|Compliance Violations Export"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
@@ -12659,6 +12971,9 @@ msgstr ""
msgid "Configure repository storage."
msgstr ""
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr ""
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr ""
@@ -12749,7 +13064,7 @@ msgstr ""
msgid "Confluence"
msgstr ""
-msgid "Confluence Cloud Workspace URL"
+msgid "Confluence Workspace URL"
msgstr ""
msgid "ConfluenceService|Confluence Workspace"
@@ -12982,6 +13297,9 @@ msgstr ""
msgid "ContainerRegistry|Image tags"
msgstr ""
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr ""
@@ -13166,6 +13484,9 @@ msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr ""
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
@@ -13517,7 +13838,7 @@ msgstr ""
msgid "Contributor"
msgstr ""
-msgid "Contributor statistics"
+msgid "Contributor analytics"
msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
@@ -13529,6 +13850,9 @@ msgstr ""
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr ""
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr ""
@@ -13592,6 +13916,9 @@ msgstr ""
msgid "Copy command"
msgstr ""
+msgid "Copy command to finalize manually"
+msgstr ""
+
msgid "Copy commands"
msgstr ""
@@ -13664,9 +13991,6 @@ msgstr ""
msgid "Copy to clipboard"
msgstr ""
-msgid "Copy token"
-msgstr ""
-
msgid "Copy value"
msgstr ""
@@ -13850,6 +14174,9 @@ msgstr ""
msgid "Couldn't assign policy to project or group"
msgstr ""
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr ""
@@ -13913,6 +14240,9 @@ msgstr ""
msgid "Create a merge request"
msgstr ""
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr ""
@@ -13943,9 +14273,6 @@ msgstr "在帳戶上創建個人訪å•ä»¤ç‰Œï¼Œä»¥é€šéŽ %{protocol} 來拉å–æˆ
msgid "Create a project"
msgstr ""
-msgid "Create an account using:"
-msgstr ""
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr ""
@@ -14075,9 +14402,6 @@ msgstr ""
msgid "Create requirement"
msgstr ""
-msgid "Create rules for target branches in merge requests."
-msgstr ""
-
msgid "Create service account"
msgstr ""
@@ -14114,6 +14438,9 @@ msgstr ""
msgid "CreateGitTag|Set tag message"
msgstr ""
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr ""
@@ -14324,6 +14651,9 @@ msgstr ""
msgid "Created a branch and a merge request to resolve this issue."
msgstr ""
+msgid "Created at"
+msgstr ""
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr ""
@@ -14534,6 +14864,12 @@ msgstr ""
msgid "CurrentUser|Edit profile"
msgstr ""
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr ""
@@ -14820,9 +15156,6 @@ msgstr ""
msgid "CycleAnalytics|project dropdown filter"
msgstr ""
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr ""
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr ""
@@ -14851,6 +15184,9 @@ msgstr ""
msgid "DORA4Metrics|All labels"
msgstr ""
+msgid "DORA4Metrics|All topics"
+msgstr ""
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr ""
@@ -15119,9 +15455,6 @@ msgstr ""
msgid "DashboardProjects|Personal"
msgstr ""
-msgid "Dashboards"
-msgstr ""
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr ""
@@ -15155,6 +15488,9 @@ msgstr ""
msgid "DastConfig|Not enabled"
msgstr ""
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr ""
@@ -15236,6 +15572,9 @@ msgstr ""
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr ""
+msgid "DastProfiles|Crawl timeout"
+msgstr ""
+
msgid "DastProfiles|DAST profile library"
msgstr ""
@@ -15413,9 +15752,6 @@ msgstr ""
msgid "DastProfiles|Site type"
msgstr ""
-msgid "DastProfiles|Spider timeout"
-msgstr ""
-
msgid "DastProfiles|Submit button"
msgstr ""
@@ -15428,7 +15764,7 @@ msgstr ""
msgid "DastProfiles|Target timeout"
msgstr ""
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
msgstr ""
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
@@ -15739,6 +16075,9 @@ msgstr ""
msgid "Default branch and protected branches"
msgstr ""
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr ""
@@ -16059,16 +16398,6 @@ msgstr ""
msgid "DeletionSettings|Deletion protection"
msgstr ""
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] ""
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr ""
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr ""
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr ""
@@ -16177,12 +16506,18 @@ msgstr ""
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr ""
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr ""
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr ""
msgid "Dependencies|Toggle vulnerability list"
msgstr ""
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr ""
@@ -16201,9 +16536,6 @@ msgstr ""
msgid "Dependency Scanning"
msgstr ""
-msgid "Dependency chains are not supported"
-msgstr ""
-
msgid "Dependency list"
msgstr ""
@@ -16213,6 +16545,9 @@ msgstr ""
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr ""
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr ""
@@ -16249,18 +16584,27 @@ msgstr ""
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr ""
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr ""
msgid "DependencyProxy|Image list"
msgstr ""
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr ""
msgid "DependencyProxy|Scheduled for deletion"
msgstr ""
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr ""
@@ -16270,6 +16614,9 @@ msgstr ""
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr ""
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr ""
@@ -16513,9 +16860,6 @@ msgstr ""
msgid "DeployTokens|Username (optional)"
msgstr ""
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr ""
-
msgid "DeployTokens|Your new deploy token"
msgstr ""
@@ -17184,6 +17528,51 @@ msgstr ""
msgid "Diff notes"
msgstr ""
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr ""
@@ -17310,6 +17699,9 @@ msgstr ""
msgid "Discard draft"
msgstr ""
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr ""
@@ -17612,6 +18004,9 @@ msgstr ""
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr ""
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr ""
@@ -17903,6 +18298,9 @@ msgstr ""
msgid "Edits"
msgstr ""
+msgid "Either the title or description must reference a Jira issue."
+msgstr ""
+
msgid "Elapsed time"
msgstr ""
@@ -17969,6 +18367,9 @@ msgstr ""
msgid "Email patch"
msgstr ""
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr ""
@@ -18065,6 +18466,9 @@ msgstr ""
msgid "Enable"
msgstr ""
+msgid "Enable Admin Mode"
+msgstr ""
+
msgid "Enable Akismet"
msgstr ""
@@ -18101,6 +18505,9 @@ msgstr ""
msgid "Enable SSL verification"
msgstr ""
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr ""
@@ -18116,9 +18523,6 @@ msgstr ""
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr ""
-msgid "Enable admin mode"
-msgstr ""
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -18182,6 +18586,9 @@ msgstr ""
msgid "Enable or disable version check and Service Ping."
msgstr ""
+msgid "Enable pre-receive secret detection"
+msgstr ""
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr ""
@@ -18197,9 +18604,6 @@ msgstr ""
msgid "Enable security training"
msgstr ""
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr ""
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr ""
@@ -18287,6 +18691,9 @@ msgstr ""
msgid "Ends: %{endsAt}"
msgstr ""
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr ""
@@ -18602,6 +19009,9 @@ msgstr ""
msgid "Environments|Open live environment"
msgstr ""
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr ""
@@ -18704,15 +19114,12 @@ msgstr ""
msgid "Environment|Deployments"
msgstr ""
-msgid "Environment|Environment health"
+msgid "Environment|Environment status"
msgstr ""
msgid "Environment|External IP"
msgstr ""
-msgid "Environment|Failed"
-msgstr ""
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr ""
@@ -18725,9 +19132,6 @@ msgstr ""
msgid "Environment|Kubernetes overview"
msgstr ""
-msgid "Environment|Pending"
-msgstr ""
-
msgid "Environment|Pods"
msgstr ""
@@ -18743,9 +19147,6 @@ msgstr ""
msgid "Environment|ReplicaSets"
msgstr ""
-msgid "Environment|Running"
-msgstr ""
-
msgid "Environment|Services"
msgstr ""
@@ -18755,9 +19156,6 @@ msgstr ""
msgid "Environment|StatefulSets"
msgstr ""
-msgid "Environment|Succeeded"
-msgstr ""
-
msgid "Environment|Summary"
msgstr ""
@@ -18773,10 +19171,10 @@ msgstr ""
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr ""
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
+msgid "Environment|Unhealthy"
msgstr ""
-msgid "Environment|Unhealthy"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
msgstr ""
msgid "Epic"
@@ -19678,9 +20076,6 @@ msgstr ""
msgid "Export as CSV"
msgstr ""
-msgid "Export commit custody report"
-msgstr ""
-
msgid "Export group"
msgstr ""
@@ -19807,6 +20202,9 @@ msgstr ""
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr ""
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr ""
@@ -19890,6 +20288,9 @@ msgstr ""
msgid "Failed to create a to-do item for the design."
msgstr ""
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr ""
@@ -19905,16 +20306,13 @@ msgstr ""
msgid "Failed to create resources"
msgstr ""
-msgid "Failed to create target branch rule"
-msgstr ""
-
msgid "Failed to create wiki"
msgstr ""
-msgid "Failed to delete custom emoji. Please try again."
+msgid "Failed to delete branch target"
msgstr ""
-msgid "Failed to delete target branch rule"
+msgid "Failed to delete custom emoji. Please try again."
msgstr ""
msgid "Failed to deploy to"
@@ -19953,9 +20351,6 @@ msgstr ""
msgid "Failed to load Roadmap"
msgstr ""
-msgid "Failed to load assignees."
-msgstr ""
-
msgid "Failed to load assignees. Please try again."
msgstr ""
@@ -19983,18 +20378,9 @@ msgstr ""
msgid "Failed to load groups."
msgstr ""
-msgid "Failed to load iteration cadences."
-msgstr ""
-
-msgid "Failed to load iterations."
-msgstr ""
-
msgid "Failed to load labels. Please try again."
msgstr ""
-msgid "Failed to load milestones."
-msgstr ""
-
msgid "Failed to load milestones. Please try again."
msgstr ""
@@ -20103,6 +20489,9 @@ msgstr ""
msgid "Failed to update issue status"
msgstr ""
+msgid "Failed to update organization"
+msgstr ""
+
msgid "Failed to update the Canary Ingress."
msgstr ""
@@ -20395,6 +20784,9 @@ msgstr ""
msgid "File name"
msgstr ""
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr ""
@@ -20674,9 +21066,6 @@ msgstr ""
msgid "For general work"
msgstr ""
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr ""
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr ""
@@ -20996,6 +21385,9 @@ msgstr ""
msgid "Generate site and private keys at"
msgstr ""
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr ""
@@ -21337,12 +21729,6 @@ msgstr ""
msgid "Geo|Resync all"
msgstr ""
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Resync project"
-msgstr ""
-
msgid "Geo|Retry count"
msgstr ""
@@ -21352,12 +21738,6 @@ msgstr ""
msgid "Geo|Reverify all"
msgstr ""
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr ""
-
-msgid "Geo|Reverify project"
-msgstr ""
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr ""
@@ -21466,12 +21846,6 @@ msgstr ""
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr ""
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr ""
-
msgid "Geo|Time in seconds"
msgstr ""
@@ -21529,9 +21903,6 @@ msgstr ""
msgid "Geo|secondary"
msgstr ""
-msgid "Get a free instance review"
-msgstr ""
-
msgid "Get a support subscription"
msgstr ""
@@ -21553,6 +21924,9 @@ msgstr ""
msgid "Get started!"
msgstr ""
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr ""
@@ -21640,9 +22014,15 @@ msgstr ""
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr ""
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr ""
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr ""
@@ -21739,9 +22119,6 @@ msgstr ""
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr ""
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr ""
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr ""
@@ -21871,7 +22248,7 @@ msgstr ""
msgid "GitLabPages|Updating your Pages configuration..."
msgstr ""
-msgid "GitLabPages|Use multiple versions"
+msgid "GitLabPages|Use multiple deployments"
msgstr ""
msgid "GitLabPages|Use unique domain"
@@ -21889,7 +22266,7 @@ msgstr ""
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr ""
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
@@ -22066,22 +22443,22 @@ msgstr ""
msgid "Global notification level"
msgstr ""
-msgid "GlobalSearch| %{search} %{description} %{scope}"
+msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr ""
-msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
msgstr ""
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
msgstr ""
msgid "GlobalSearch|Aggregations load error."
msgstr ""
-msgid "GlobalSearch|Archived"
+msgid "GlobalSearch|All available groups"
msgstr ""
-msgid "GlobalSearch|Close"
+msgid "GlobalSearch|Archived"
msgstr ""
msgid "GlobalSearch|Command palette"
@@ -22141,6 +22518,9 @@ msgstr ""
msgid "GlobalSearch|No labels found"
msgstr ""
+msgid "GlobalSearch|Nothing found…"
+msgstr ""
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr ""
@@ -22162,16 +22542,13 @@ msgstr ""
msgid "GlobalSearch|Recent merge requests"
msgstr ""
-msgid "GlobalSearch|Result count is over limit."
+msgid "GlobalSearch|Reset"
msgstr ""
-msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
-msgstr ""
-
-msgid "GlobalSearch|Search"
+msgid "GlobalSearch|Result count is over limit."
msgstr ""
-msgid "GlobalSearch|Search GitLab"
+msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr ""
msgid "GlobalSearch|Search for projects, issues, etc."
@@ -22201,9 +22578,6 @@ msgstr ""
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr ""
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr ""
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr ""
@@ -22213,9 +22587,6 @@ msgstr ""
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr ""
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr ""
-
msgid "GlobalSearch|Users"
msgstr ""
@@ -22330,9 +22701,6 @@ msgstr ""
msgid "Go to previous unresolved thread"
msgstr ""
-msgid "Go to primary site"
-msgstr ""
-
msgid "Go to project"
msgstr ""
@@ -22402,6 +22770,9 @@ msgstr ""
msgid "Go to your snippets"
msgstr ""
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr ""
@@ -22414,6 +22785,9 @@ msgstr ""
msgid "Google Cloud authorizations required"
msgstr ""
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr ""
@@ -22450,10 +22824,10 @@ msgstr ""
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr ""
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
+msgid "GooglePlayStore|Protected branches and tags only"
msgstr ""
-msgid "GooglePlayStore|Protected branches and tags only"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
msgstr ""
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
@@ -22483,9 +22857,6 @@ msgstr ""
msgid "Got it"
msgstr ""
-msgid "Got it!"
-msgstr ""
-
msgid "Grafana URL"
msgstr ""
@@ -22624,6 +22995,9 @@ msgstr ""
msgid "Group information"
msgstr ""
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr ""
@@ -22717,10 +23091,13 @@ msgstr ""
msgid "GroupImport|Unable to process group import file"
msgstr ""
-msgid "GroupPage|Copy group ID"
+msgid "GroupPage|Copy group ID: %{id}"
msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
+
+msgid "GroupPage|Group ID: %{id}"
msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
@@ -22984,6 +23361,9 @@ msgstr ""
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr ""
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr ""
@@ -23005,6 +23385,9 @@ msgstr ""
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr ""
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr ""
@@ -23047,12 +23430,21 @@ msgstr ""
msgid "GroupSettings|Email notifications are disabled"
msgstr ""
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr ""
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr ""
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr ""
@@ -23077,6 +23469,9 @@ msgstr ""
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr ""
+msgid "GroupSettings|Namespace setting"
+msgstr ""
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr ""
@@ -23101,6 +23496,12 @@ msgstr ""
msgid "GroupSettings|Reporting"
msgstr ""
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr ""
@@ -23143,6 +23544,9 @@ msgstr ""
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr ""
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr ""
@@ -23206,30 +23610,6 @@ msgstr ""
msgid "Groups are the best way to manage projects and members."
msgstr ""
-msgid "GroupsDropdown|Frequently visited"
-msgstr ""
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr ""
-
-msgid "GroupsDropdown|Loading groups"
-msgstr ""
-
-msgid "GroupsDropdown|Search your groups"
-msgstr ""
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr ""
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr ""
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr ""
@@ -23290,7 +23670,7 @@ msgstr ""
msgid "GroupsNew|Enter the URL for the source instance."
msgstr ""
-msgid "GroupsNew|GitLab source instance URL"
+msgid "GroupsNew|GitLab source instance base URL"
msgstr ""
msgid "GroupsNew|Groups"
@@ -23332,7 +23712,7 @@ msgstr ""
msgid "GroupsNew|Please fill in your personal access token."
msgstr ""
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
msgstr ""
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
@@ -23455,6 +23835,9 @@ msgstr ""
msgid "Groups|You're creating a new top-level group"
msgstr ""
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr ""
@@ -23509,6 +23892,15 @@ msgstr ""
msgid "HarborIntegration|The name of the project in Harbor."
msgstr ""
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr ""
@@ -23763,10 +24155,6 @@ msgstr ""
msgid "Hide tooltips or popovers"
msgstr ""
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] ""
-
msgid "Hide values"
msgstr ""
@@ -23785,6 +24173,9 @@ msgstr ""
msgid "Hierarchy|Planning hierarchy"
msgstr ""
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr ""
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr ""
@@ -23860,6 +24251,9 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr "已開始維護"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr ""
@@ -23950,6 +24344,9 @@ msgstr ""
msgid "ID"
msgstr ""
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr ""
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] ""
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr ""
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr ""
@@ -24062,7 +24456,7 @@ msgstr ""
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr ""
-msgid "IdentityVerification|Complete verification to sign in."
+msgid "IdentityVerification|Complete verification to sign up."
msgstr ""
msgid "IdentityVerification|Confirm your email address"
@@ -24074,7 +24468,10 @@ msgstr ""
msgid "IdentityVerification|Didn't receive a code?"
msgstr ""
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
msgstr ""
msgid "IdentityVerification|Email update is only offered once."
@@ -24146,6 +24543,9 @@ msgstr ""
msgid "IdentityVerification|Send code"
msgstr ""
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr ""
@@ -24433,9 +24833,6 @@ msgstr ""
msgid "Import group from file"
msgstr ""
-msgid "Import groups"
-msgstr ""
-
msgid "Import history"
msgstr ""
@@ -24611,10 +25008,10 @@ msgstr ""
msgid "Import|An error occurred while fetching import details."
msgstr ""
-msgid "Import|GitHub import details"
+msgid "Import|Failures for %{id}"
msgstr ""
-msgid "Import|GitLab Migration details"
+msgid "Import|GitHub import details"
msgstr ""
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
@@ -24629,6 +25026,9 @@ msgstr ""
msgid "Import|Maximum size of decompressed archive."
msgstr ""
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr ""
+
msgid "Import|No import details"
msgstr ""
@@ -24644,6 +25044,9 @@ msgstr ""
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr ""
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr ""
@@ -25130,6 +25533,9 @@ msgstr ""
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr ""
+msgid "Information"
+msgstr ""
+
msgid "Infrastructure"
msgstr ""
@@ -25255,9 +25661,6 @@ msgstr ""
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr ""
-msgid "Install GitLab Runner and ensure it's running."
-msgstr ""
-
msgid "Installation"
msgstr ""
@@ -25643,9 +26046,6 @@ msgstr ""
msgid "Invalid format selected"
msgstr ""
-msgid "Invalid hash"
-msgstr ""
-
msgid "Invalid input, please avoid emoji"
msgstr ""
@@ -25851,10 +26251,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr ""
-msgid "InviteMembersModal|Username"
+msgid "InviteMembersModal|Username or name"
msgstr ""
-msgid "InviteMembersModal|Username or email address"
+msgid "InviteMembersModal|Username, name or email address"
msgstr ""
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
@@ -26181,13 +26581,13 @@ msgstr ""
msgid "IssueTracker|New issue URL"
msgstr ""
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
+msgid "IssueTracker|URL of the project in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
@@ -26292,6 +26692,10 @@ msgstr ""
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr ""
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] ""
+
msgid "IssuesAnalytics|Opened"
msgstr ""
@@ -26301,9 +26705,8 @@ msgstr ""
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr ""
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] ""
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr ""
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr ""
@@ -26344,6 +26747,9 @@ msgstr ""
msgid "It seems that there is currently no available data for code coverage"
msgstr ""
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr ""
@@ -26473,6 +26879,9 @@ msgstr ""
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr ""
+msgid "Iterations|Iteration cadence"
+msgstr ""
+
msgid "Iterations|Iteration cadences"
msgstr ""
@@ -26602,6 +27011,9 @@ msgstr ""
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr ""
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr ""
@@ -26671,15 +27083,15 @@ msgstr ""
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr ""
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr ""
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr ""
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr ""
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr ""
@@ -26731,6 +27143,12 @@ msgstr ""
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr ""
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr ""
@@ -26779,6 +27197,9 @@ msgstr ""
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr ""
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr ""
@@ -26938,7 +27359,7 @@ msgstr ""
msgid "JiraService|Use custom transitions"
msgstr ""
-msgid "JiraService|Use regular expression to match Jira issue keys."
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
msgstr ""
msgid "JiraService|Using Jira for issue tracking?"
@@ -27208,6 +27629,9 @@ msgstr ""
msgid "Job|Erase job log and artifacts"
msgstr ""
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr ""
@@ -27217,6 +27641,9 @@ msgstr ""
msgid "Job|Finished at"
msgstr ""
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr ""
@@ -27289,6 +27716,9 @@ msgstr ""
msgid "Job|Show complete raw"
msgstr ""
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr ""
@@ -27409,9 +27839,6 @@ msgstr ""
msgid "Key details"
msgstr ""
-msgid "Key result"
-msgstr ""
-
msgid "Key:"
msgstr ""
@@ -27448,6 +27875,9 @@ msgstr ""
msgid "Ki"
msgstr ""
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr ""
@@ -27478,6 +27908,120 @@ msgstr ""
msgid "Kubernetes deployment not found"
msgstr ""
+msgid "KubernetesDashboard|Age"
+msgstr ""
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr ""
+
+msgid "KubernetesDashboard|Agents"
+msgstr ""
+
+msgid "KubernetesDashboard|Annotations"
+msgstr ""
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr ""
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr ""
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr ""
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr ""
+
+msgid "KubernetesDashboard|Namespace"
+msgstr ""
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr ""
+
+msgid "KubernetesDashboard|Pod"
+msgstr ""
+
+msgid "KubernetesDashboard|Pods"
+msgstr ""
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr ""
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr ""
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr ""
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr ""
@@ -27572,6 +28116,12 @@ msgstr ""
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr ""
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr ""
@@ -27612,7 +28162,7 @@ msgstr ""
msgid "Last Accessed On"
msgstr ""
-msgid "Last Activity"
+msgid "Last GitLab activity"
msgstr ""
msgid "Last Name"
@@ -27630,6 +28180,9 @@ msgstr ""
msgid "Last activity"
msgstr ""
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "最後æ交"
@@ -27913,9 +28466,6 @@ msgstr ""
msgid "LearnGitLab|Set up your workspace"
msgstr ""
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr ""
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
@@ -27946,6 +28496,9 @@ msgstr ""
msgid "LearnGitlab|- Included in trial"
msgstr ""
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr ""
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr ""
@@ -27961,9 +28514,6 @@ msgstr ""
msgid "Leave"
msgstr ""
-msgid "Leave admin mode"
-msgstr ""
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr ""
@@ -28156,7 +28706,7 @@ msgstr ""
msgid "Licenses|Components"
msgstr ""
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
@@ -28334,9 +28884,6 @@ msgstr ""
msgid "List available repositories"
msgstr ""
-msgid "List of all commits"
-msgstr ""
-
msgid "List of suitable GCP locations"
msgstr ""
@@ -28370,6 +28917,9 @@ msgstr ""
msgid "Load more users"
msgstr ""
+msgid "Load new file"
+msgstr ""
+
msgid "Loading"
msgstr ""
@@ -28463,39 +29013,15 @@ msgstr ""
msgid "Locks the discussion."
msgstr ""
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr ""
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr ""
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr ""
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr ""
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr ""
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr ""
@@ -28523,12 +29049,6 @@ msgstr ""
msgid "MD5"
msgstr ""
-msgid "MLExperimentTracking|CI Info"
-msgstr ""
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr ""
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr ""
@@ -28583,9 +29103,6 @@ msgstr ""
msgid "Mailgun events"
msgstr ""
-msgid "Main menu"
-msgstr ""
-
msgid "Maintainer"
msgstr ""
@@ -29189,100 +29706,103 @@ msgstr ""
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr ""
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
msgstr ""
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Actions"
msgstr ""
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Add new role"
msgstr ""
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr ""
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role"
msgstr ""
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
+msgid "MemberRole|Base role to use as template"
msgstr ""
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
msgstr ""
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Create new role"
msgstr ""
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom permissions:"
msgstr ""
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Custom roles"
msgstr ""
-msgid "MemberRoles|Description"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr ""
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Delete role"
msgstr ""
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Description"
msgstr ""
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Enter a short name."
msgstr ""
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to create role."
msgstr ""
-msgid "MemberRoles|ID"
+msgid "MemberRole|Failed to delete the role."
msgstr ""
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Failed to fetch roles."
msgstr ""
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|ID"
msgstr ""
-msgid "MemberRoles|Name"
+msgid "MemberRole|Incident manager"
msgstr ""
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr ""
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Name"
msgstr ""
-msgid "MemberRoles|Role name"
+msgid "MemberRole|No custom roles for this group"
msgstr ""
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Permissions"
msgstr ""
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role name"
msgstr ""
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Role successfully created."
msgstr ""
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Role successfully deleted."
msgstr ""
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr ""
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|Standard roles"
msgstr ""
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr ""
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
+msgstr ""
+
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr ""
msgid "MemberRole|can't be changed"
msgstr ""
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
@@ -29576,6 +30096,9 @@ msgstr ""
msgid "Merge request author cannot push to target project"
msgstr ""
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr ""
@@ -29957,6 +30480,9 @@ msgstr ""
msgid "MetricImages|There was an issue uploading your image."
msgstr ""
+msgid "Metrics"
+msgstr ""
+
msgid "Metrics - Grafana"
msgstr ""
@@ -29990,15 +30516,9 @@ msgstr ""
msgid "Metrics|Delete metric?"
msgstr ""
-msgid "Metrics|Description"
-msgstr ""
-
msgid "Metrics|Edit metric"
msgstr ""
-msgid "Metrics|Failed to load metrics."
-msgstr ""
-
msgid "Metrics|For grouping similar metrics"
msgstr ""
@@ -30008,15 +30528,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
-msgid "Metrics|Metrics"
-msgstr ""
-
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
-msgid "Metrics|Name"
-msgstr ""
-
msgid "Metrics|New metric"
msgstr ""
@@ -30029,9 +30543,6 @@ msgstr ""
msgid "Metrics|There was an error trying to validate your query"
msgstr ""
-msgid "Metrics|Type"
-msgstr ""
-
msgid "Metrics|Unit label"
msgstr ""
@@ -30068,6 +30579,9 @@ msgstr ""
msgid "Mi"
msgstr ""
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr ""
@@ -30291,9 +30805,15 @@ msgstr ""
msgid "Minimal Access"
msgstr ""
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr ""
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr ""
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr ""
+
msgid "Minutes"
msgstr ""
@@ -30387,9 +30907,6 @@ msgstr ""
msgid "MlExperimentTracking|CI Job"
msgstr ""
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr ""
-
msgid "MlExperimentTracking|Candidate removed"
msgstr ""
@@ -30405,6 +30922,9 @@ msgstr ""
msgid "MlExperimentTracking|Delete candidate"
msgstr ""
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr ""
+
msgid "MlExperimentTracking|Delete experiment"
msgstr ""
@@ -30435,96 +30955,147 @@ msgstr ""
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr ""
-msgid "MlExperimentTracking|ID"
+msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr ""
-msgid "MlExperimentTracking|Info"
+msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr ""
-msgid "MlExperimentTracking|Logged candidates for experiment"
+msgid "MlExperimentTracking|Model candidate details"
msgstr ""
-msgid "MlExperimentTracking|MLflow run ID"
+msgid "MlExperimentTracking|Model experiments"
msgstr ""
-msgid "MlExperimentTracking|Machine learning experiment tracking"
+msgid "MlExperimentTracking|Model removed"
msgstr ""
-msgid "MlExperimentTracking|Metadata"
+msgid "MlExperimentTracking|Name"
msgstr ""
-msgid "MlExperimentTracking|Metrics"
+msgid "MlExperimentTracking|No artifacts"
msgstr ""
-msgid "MlExperimentTracking|Model candidate details"
+msgid "MlExperimentTracking|No candidates"
msgstr ""
-msgid "MlExperimentTracking|Model experiments"
+msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr ""
-msgid "MlExperimentTracking|Model performance"
+msgid "MlExperimentTracking|No name"
msgstr ""
-msgid "MlExperimentTracking|Model removed"
+msgid "MlModelRegistry|%d model"
+msgid_plural "MlModelRegistry|%d models"
+msgstr[0] ""
+
+msgid "MlModelRegistry|%d version"
+msgid_plural "MlModelRegistry|%d versions"
+msgstr[0] ""
+
+msgid "MlModelRegistry|Add a model"
msgstr ""
-msgid "MlExperimentTracking|Name"
+msgid "MlModelRegistry|An error has occurred when saving the model."
msgstr ""
-msgid "MlExperimentTracking|No artifacts"
+msgid "MlModelRegistry|Artifacts"
msgstr ""
-msgid "MlExperimentTracking|No candidates"
+msgid "MlModelRegistry|CI Info"
msgstr ""
-msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
+msgid "MlModelRegistry|Candidate not linked to a CI build"
msgstr ""
-msgid "MlExperimentTracking|No logged metadata"
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
msgstr ""
-msgid "MlExperimentTracking|No logged metrics"
+msgid "MlModelRegistry|Copy MLflow tracking URL"
msgstr ""
-msgid "MlExperimentTracking|No logged parameters"
+msgid "MlModelRegistry|Create a model version"
msgstr ""
-msgid "MlExperimentTracking|No name"
+msgid "MlModelRegistry|Create model"
msgstr ""
-msgid "MlExperimentTracking|Parameters"
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
msgstr ""
-msgid "MlExperimentTracking|Status"
+msgid "MlModelRegistry|Details"
msgstr ""
-msgid "MlExperimentTracking|Triggered by"
+msgid "MlModelRegistry|Experiment"
msgstr ""
-msgid "MlModelRegistry|%d model"
-msgid_plural "MlModelRegistry|%d models"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|%d version"
-msgid_plural "MlModelRegistry|%d versions"
-msgstr[0] ""
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
-msgid "MlModelRegistry|Details"
+msgid "MlModelRegistry|ID"
+msgstr ""
+
+msgid "MlModelRegistry|Info"
msgstr ""
msgid "MlModelRegistry|Latest version"
msgstr ""
+msgid "MlModelRegistry|MLflow run ID"
+msgstr ""
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr ""
+
+msgid "MlModelRegistry|Model performance"
+msgstr ""
+
msgid "MlModelRegistry|Model registry"
msgstr ""
-msgid "MlModelRegistry|No models registered in this project"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr ""
+
+msgid "MlModelRegistry|No logged parameters"
msgstr ""
msgid "MlModelRegistry|No registered versions"
msgstr ""
-msgid "MlModelRegistry|This model has no versions"
+msgid "MlModelRegistry|Parameters"
+msgstr ""
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr ""
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr ""
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
msgstr ""
msgid "MlModelRegistry|Version candidates"
@@ -30549,9 +31120,15 @@ msgstr ""
msgid "Model experiments"
msgstr ""
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr ""
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr ""
@@ -31117,9 +31694,6 @@ msgstr ""
msgid "Navigation|Deploy"
msgstr ""
-msgid "Navigation|Enter admin mode"
-msgstr ""
-
msgid "Navigation|Explore"
msgstr ""
@@ -31132,9 +31706,6 @@ msgstr ""
msgid "Navigation|Groups you visit often will appear here."
msgstr ""
-msgid "Navigation|Leave admin mode"
-msgstr ""
-
msgid "Navigation|Manage"
msgstr ""
@@ -31562,15 +32133,15 @@ msgstr ""
msgid "No data available"
msgstr ""
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr ""
-
msgid "No deployments found"
msgstr ""
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr ""
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr ""
@@ -31676,6 +32247,9 @@ msgstr ""
msgid "No parent group"
msgstr ""
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr ""
@@ -31821,18 +32395,6 @@ msgstr ""
msgid "Normal view"
msgstr ""
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr ""
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr ""
-
-msgid "NorthstarNavigation|New navigation"
-msgstr ""
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr ""
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr ""
@@ -31842,6 +32404,9 @@ msgstr ""
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr ""
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr ""
@@ -31857,6 +32422,9 @@ msgstr ""
msgid "Not confidential"
msgstr "éžéš±å¯†"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr ""
@@ -31875,6 +32443,9 @@ msgstr ""
msgid "Not supported"
msgstr ""
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr ""
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] ""
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr ""
@@ -32080,6 +32654,12 @@ msgstr ""
msgid "Notify users by email when sign-in location is not recognized."
msgstr ""
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr ""
@@ -32128,6 +32708,12 @@ msgstr ""
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr ""
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr ""
@@ -32158,16 +32744,13 @@ msgstr ""
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr ""
-msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
-msgstr ""
-
-msgid "Notify|And %{total_stripped_new_commits_count} more"
+msgid "Notify|All assignees were removed."
msgstr ""
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
+msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr ""
-msgid "Notify|Assignee changed to %{toNames}"
+msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr ""
msgid "Notify|Author: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr ""
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr ""
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr ""
@@ -32239,6 +32825,9 @@ msgstr ""
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr ""
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr ""
@@ -32329,6 +32918,9 @@ msgstr ""
msgid "Notify|Project %{project_name} was exported successfully."
msgstr ""
+msgid "Notify|Read timeout:"
+msgstr ""
+
msgid "Notify|Remote mirror"
msgstr ""
@@ -32344,6 +32936,9 @@ msgstr ""
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr ""
+msgid "Notify|The SMTP server did not respond in time."
+msgstr ""
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr ""
@@ -32356,7 +32951,7 @@ msgstr ""
msgid "Notify|The errors we encountered were:"
msgstr ""
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
@@ -32485,6 +33080,9 @@ msgstr ""
msgid "Number of files touched"
msgstr ""
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr ""
@@ -32503,27 +33101,48 @@ msgstr ""
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr ""
-msgid "OKR|Existing key result"
+msgid "OWASP Top 10 2017"
msgstr ""
-msgid "OKR|Existing objective"
+msgid "OWASP Top 10 2021"
msgstr ""
-msgid "OKR|New key result"
+msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr ""
-msgid "OKR|New objective"
+msgid "ObservabilityMetrics|Date"
msgstr ""
-msgid "Object does not exist on the server or you don't have permissions to access it"
+msgid "ObservabilityMetrics|Description"
+msgstr ""
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr ""
+
+msgid "ObservabilityMetrics|Failed to load metrics."
msgstr ""
-msgid "Objective"
+msgid "ObservabilityMetrics|Metric Details"
msgstr ""
msgid "ObservabilityMetrics|Metrics"
msgstr ""
+msgid "ObservabilityMetrics|Name"
+msgstr ""
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr ""
+
+msgid "ObservabilityMetrics|Type"
+msgstr ""
+
+msgid "ObservabilityMetrics|Value"
+msgstr ""
+
msgid "Observability|Enable"
msgstr ""
@@ -33066,9 +33685,6 @@ msgstr ""
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr ""
-msgid "Oops, are you sure?"
-msgstr ""
-
msgid "Open"
msgstr ""
@@ -33105,9 +33721,6 @@ msgstr ""
msgid "Open raw"
msgstr "打開原文件"
-msgid "Open sidebar"
-msgstr ""
-
msgid "Open: %{open}"
msgstr ""
@@ -33198,6 +33811,9 @@ msgstr ""
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr ""
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr ""
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr ""
@@ -33216,6 +33832,12 @@ msgstr ""
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr ""
+msgid "Organization|Change organization URL"
+msgstr ""
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr ""
+
msgid "Organization|Choose what organization you want to see by default."
msgstr ""
@@ -33264,7 +33886,16 @@ msgstr ""
msgid "Organization|Organization URL is required."
msgstr ""
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr ""
+
+msgid "Organization|Organization URL successfully changed."
+msgstr ""
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr ""
msgid "Organization|Organizations"
msgstr ""
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr ""
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr ""
@@ -33408,6 +34042,66 @@ msgstr "概覽"
msgid "Overwrite diverged branches"
msgstr ""
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr ""
@@ -33477,6 +34171,9 @@ msgstr ""
msgid "Package file size limits"
msgstr ""
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr ""
@@ -33552,6 +34249,9 @@ msgstr ""
msgid "PackageRegistry|App name: %{name}"
msgstr ""
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr ""
@@ -33762,6 +34462,9 @@ msgstr ""
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr ""
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr ""
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] ""
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr ""
@@ -33844,6 +34553,9 @@ msgstr ""
msgid "PackageRegistry|Project-level"
msgstr ""
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr ""
@@ -33862,6 +34574,9 @@ msgstr ""
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr ""
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr ""
@@ -33928,6 +34643,9 @@ msgstr ""
msgid "PackageRegistry|Source project located at %{link}"
msgstr ""
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr ""
@@ -33964,6 +34682,9 @@ msgstr ""
msgid "PackageRegistry|Unable to load package"
msgstr ""
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr ""
@@ -34105,6 +34826,9 @@ msgstr ""
msgid "Password confirmation"
msgstr ""
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr ""
@@ -34252,6 +34976,9 @@ msgstr ""
msgid "Perform common operations on GitLab project"
msgstr ""
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr ""
@@ -34396,6 +35123,9 @@ msgstr ""
msgid "Phone"
msgstr ""
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr ""
@@ -34813,6 +35543,30 @@ msgstr ""
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr ""
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr ""
@@ -34873,12 +35627,6 @@ msgstr ""
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr ""
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr ""
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr ""
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr ""
@@ -34897,9 +35645,6 @@ msgstr ""
msgid "Pipelines|CI lint"
msgstr ""
-msgid "Pipelines|CI/CD Catalog"
-msgstr ""
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr ""
@@ -34972,6 +35717,9 @@ msgstr ""
msgid "Pipelines|Loading pipelines"
msgstr ""
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr ""
+
msgid "Pipelines|More Information"
msgstr ""
@@ -35008,6 +35756,12 @@ msgstr ""
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr ""
+msgid "Pipelines|Start with a migration plan"
+msgstr ""
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr ""
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr ""
@@ -35926,9 +36680,6 @@ msgstr ""
msgid "Previous"
msgstr ""
-msgid "Previous Artifacts"
-msgstr ""
-
msgid "Previous commit"
msgstr ""
@@ -36124,6 +36875,9 @@ msgstr ""
msgid "ProductAnalytics|Get started with product analytics"
msgstr ""
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr ""
@@ -36232,6 +36986,9 @@ msgstr ""
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr ""
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr ""
@@ -36352,7 +37109,7 @@ msgstr "個人資料"
msgid "Profile failed to delete"
msgstr ""
-msgid "Profile image guideline"
+msgid "Profile image guidelines"
msgstr ""
msgid "Profile page:"
@@ -36718,7 +37475,7 @@ msgstr ""
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr ""
-msgid "Profiles|Website url"
+msgid "Profiles|Website URL"
msgstr ""
msgid "Profiles|Who you represent or work for."
@@ -37022,7 +37779,7 @@ msgstr ""
msgid "ProjectOverview|Create new fork"
msgstr ""
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr ""
msgid "ProjectOverview|Go to your fork"
@@ -37049,10 +37806,25 @@ msgstr ""
msgid "ProjectOverview|You must sign in to star a project"
msgstr ""
-msgid "ProjectPage|Copy project ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr ""
+
+msgid "ProjectPage|Project settings"
+msgstr ""
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
+msgid "ProjectPage|Unable to load default branch"
msgstr ""
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
@@ -37271,6 +38043,9 @@ msgstr ""
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr ""
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr ""
+
msgid "ProjectSettings|Additional options"
msgstr ""
@@ -37358,9 +38133,6 @@ msgstr ""
msgid "ProjectSettings|Custom dashboard projects"
msgstr ""
-msgid "ProjectSettings|Customize this project's badges."
-msgstr ""
-
msgid "ProjectSettings|Data sources"
msgstr ""
@@ -37478,6 +38250,9 @@ msgstr ""
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr ""
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr ""
@@ -37523,6 +38298,9 @@ msgstr ""
msgid "ProjectSettings|Model experiments"
msgstr ""
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr ""
@@ -37940,29 +38718,9 @@ msgstr ""
msgid "Projects with write access"
msgstr ""
-msgid "ProjectsDropdown|Frequently visited"
-msgstr ""
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr ""
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr ""
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr ""
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr ""
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr ""
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr ""
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr ""
@@ -37997,6 +38755,9 @@ msgstr ""
msgid "ProjectsNew|Create new project"
msgstr ""
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr ""
+
msgid "ProjectsNew|Description format"
msgstr ""
@@ -38060,6 +38821,9 @@ msgstr ""
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr ""
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr ""
+
msgid "ProjectsNew|Visibility Level"
msgstr ""
@@ -38653,12 +39417,18 @@ msgstr ""
msgid "ProtectedEnvironment|Environment"
msgstr ""
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr ""
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr ""
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr ""
@@ -38740,9 +39510,6 @@ msgstr ""
msgid "ProtectedTag|default"
msgstr ""
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr ""
-
msgid "Provide Feedback"
msgstr ""
@@ -38788,6 +39555,9 @@ msgstr ""
msgid "Public projects compute cost factor"
msgstr ""
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr ""
@@ -39230,9 +40000,6 @@ msgstr ""
msgid "Register now"
msgstr ""
-msgid "Register the runner with this URL:"
-msgstr ""
-
msgid "Register with two-factor app"
msgstr ""
@@ -39408,6 +40175,9 @@ msgstr ""
msgid "Release|Learn more about releases"
msgstr ""
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr ""
+
msgid "Release|More information"
msgstr ""
@@ -39462,6 +40232,9 @@ msgstr "ç¨å¾Œæ醒"
msgid "Remote object has no absolute path."
msgstr ""
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr ""
@@ -39522,6 +40295,9 @@ msgstr ""
msgid "Remove due date"
msgstr "刪除截止日期"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr ""
@@ -39624,6 +40400,9 @@ msgstr ""
msgid "Remove user from project"
msgstr ""
+msgid "Remove weight"
+msgstr ""
+
msgid "Removed"
msgstr ""
@@ -39702,6 +40481,9 @@ msgstr ""
msgid "Removes an issue from an epic."
msgstr ""
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr ""
@@ -39759,9 +40541,6 @@ msgstr ""
msgid "Reopen milestone"
msgstr "é‡æ–°é–‹å•Ÿé‡Œç¨‹ç¢‘"
-msgid "Reopen test case"
-msgstr ""
-
msgid "Reopen this %{quick_action_target}"
msgstr ""
@@ -39828,9 +40607,6 @@ msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr ""
-msgid "Reply..."
-msgstr ""
-
msgid "Reply…"
msgstr ""
@@ -40263,6 +41039,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr ""
@@ -40322,7 +41101,7 @@ msgstr ""
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr ""
-msgid "Requires your primary GitLab email address."
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
msgstr ""
msgid "Resend"
@@ -40391,9 +41170,6 @@ msgstr ""
msgid "Resolve locally"
msgstr ""
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr ""
-
msgid "Resolve thread"
msgstr ""
@@ -40517,10 +41293,6 @@ msgstr ""
msgid "Retry verification"
msgstr ""
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] ""
-
msgid "Reveal values"
msgstr ""
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] ""
+msgid "Reviewer approved changes"
+msgstr ""
+
+msgid "Reviewer commented"
+msgstr ""
+
+msgid "Reviewer requested changes"
+msgstr ""
+
msgid "Reviewers"
msgstr ""
@@ -40624,9 +41405,6 @@ msgstr ""
msgid "Ruby"
msgstr ""
-msgid "Rule name"
-msgstr ""
-
msgid "Rule name is already taken."
msgstr ""
@@ -40959,6 +41737,9 @@ msgstr ""
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr ""
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr ""
@@ -41231,6 +42012,9 @@ msgstr ""
msgid "Runners|Runner Registration token"
msgstr ""
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr ""
@@ -41351,7 +42135,7 @@ msgstr ""
msgid "Runners|Shared runners are disabled."
msgstr ""
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
msgstr ""
msgid "Runners|Show only inherited"
@@ -41360,9 +42144,6 @@ msgstr ""
msgid "Runners|Show runner installation and registration instructions"
msgstr ""
-msgid "Runners|Show runner installation instructions"
-msgstr ""
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr ""
@@ -41587,9 +42368,24 @@ msgstr ""
msgid "Runners|shared"
msgstr ""
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr ""
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr ""
@@ -41761,9 +42557,18 @@ msgstr ""
msgid "Saving project."
msgstr ""
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr ""
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr ""
@@ -41782,6 +42587,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr ""
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Conditions"
msgstr ""
@@ -41803,21 +42611,39 @@ msgstr ""
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr ""
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr ""
+
msgid "ScanExecutionPolicy|Key"
msgstr ""
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr ""
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr ""
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr ""
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr ""
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr ""
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr ""
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr ""
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr ""
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr ""
@@ -41842,6 +42668,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr ""
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr ""
@@ -41851,6 +42680,9 @@ msgstr ""
msgid "ScanExecutionPolicy|Select timezone"
msgstr ""
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr ""
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr ""
@@ -41866,6 +42698,9 @@ msgstr ""
msgid "ScanExecutionPolicy|branch"
msgstr ""
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr ""
@@ -41926,9 +42761,6 @@ msgstr ""
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr ""
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr ""
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr ""
@@ -41980,34 +42812,25 @@ msgstr ""
msgid "ScanResultPolicy|Override project approval settings"
msgstr ""
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr ""
-
msgid "ScanResultPolicy|Pre-existing"
msgstr ""
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr ""
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr ""
-msgid "ScanResultPolicy|Prevent branch protection modification"
+msgid "ScanResultPolicy|Prevent branch modification"
msgstr ""
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr ""
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr ""
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr ""
-msgid "ScanResultPolicy|Recommended setting"
+msgid "ScanResultPolicy|Recommended settings"
msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
@@ -42034,15 +42857,9 @@ msgstr ""
msgid "ScanResultPolicy|Status is:"
msgstr ""
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr ""
-
msgid "ScanResultPolicy|Unknown"
msgstr ""
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr ""
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr ""
@@ -42055,7 +42872,25 @@ msgstr ""
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr ""
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr ""
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr ""
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
msgstr ""
msgid "ScanResultPolicy|any commits"
@@ -42208,6 +43043,9 @@ msgstr ""
msgid "Search files"
msgstr ""
+msgid "Search filters"
+msgstr ""
+
msgid "Search for Namespace"
msgstr ""
@@ -42390,6 +43228,9 @@ msgstr ""
msgid "Secret token"
msgstr ""
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr ""
@@ -42399,6 +43240,36 @@ msgstr ""
msgid "Secrets"
msgstr ""
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr ""
+
+msgid "Secrets|Add secret"
+msgstr ""
+
+msgid "Secrets|Audit log"
+msgstr ""
+
+msgid "Secrets|Edit %{key}"
+msgstr ""
+
+msgid "Secrets|New secret"
+msgstr ""
+
+msgid "Secrets|Secret details"
+msgstr ""
+
+msgid "Secrets|Secret name"
+msgstr ""
+
+msgid "Secrets|Secrets"
+msgstr ""
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr ""
+
+msgid "Secrets|Stored secrets"
+msgstr ""
+
msgid "Secure Code Warrior"
msgstr ""
@@ -42456,6 +43327,9 @@ msgstr ""
msgid "Security Finding not found"
msgstr ""
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr ""
@@ -42543,7 +43417,7 @@ msgstr ""
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr ""
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
msgstr ""
msgid "SecurityConfiguration|Enabled"
@@ -42645,6 +43519,9 @@ msgstr ""
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr ""
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr ""
@@ -42654,6 +43531,15 @@ msgstr ""
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr ""
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr ""
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr ""
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr ""
@@ -42672,12 +43558,18 @@ msgstr ""
msgid "SecurityOrchestration|.yaml preview"
msgstr ""
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr ""
+
msgid "SecurityOrchestration|Actions"
msgstr ""
msgid "SecurityOrchestration|Add action"
msgstr ""
+msgid "SecurityOrchestration|Add new action"
+msgstr ""
+
msgid "SecurityOrchestration|Add new approver"
msgstr ""
@@ -42690,6 +43582,9 @@ msgstr ""
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr ""
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr ""
@@ -42720,6 +43615,9 @@ msgstr ""
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr ""
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr ""
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr ""
@@ -42732,10 +43630,10 @@ msgstr ""
msgid "SecurityOrchestration|Choose a project"
msgstr ""
-msgid "SecurityOrchestration|Choose approver type"
+msgid "SecurityOrchestration|Choose an action"
msgstr ""
-msgid "SecurityOrchestration|Choose framework labels"
+msgid "SecurityOrchestration|Choose approver type"
msgstr ""
msgid "SecurityOrchestration|Choose specific role"
@@ -42744,6 +43642,12 @@ msgstr ""
msgid "SecurityOrchestration|Clear all"
msgstr ""
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr ""
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr ""
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr ""
@@ -42816,6 +43720,9 @@ msgstr ""
msgid "SecurityOrchestration|Failed to load images."
msgstr ""
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr ""
@@ -42828,7 +43735,10 @@ msgstr ""
msgid "SecurityOrchestration|Groups"
msgstr ""
-msgid "SecurityOrchestration|Hide extra branches"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
@@ -42843,6 +43753,9 @@ msgstr ""
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr ""
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr ""
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr ""
@@ -42858,6 +43771,9 @@ msgstr ""
msgid "SecurityOrchestration|License Scan"
msgstr ""
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr ""
+
msgid "SecurityOrchestration|Logic error"
msgstr ""
@@ -42885,6 +43801,9 @@ msgstr ""
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr ""
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr ""
@@ -42910,6 +43829,9 @@ msgstr ""
msgid "SecurityOrchestration|Override the following project settings:"
msgstr ""
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr ""
+
msgid "SecurityOrchestration|Policies"
msgstr ""
@@ -42997,12 +43919,18 @@ msgstr ""
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr ""
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr ""
msgid "SecurityOrchestration|Security Scan"
msgstr ""
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr ""
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr ""
@@ -43036,6 +43964,12 @@ msgstr ""
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr ""
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr ""
@@ -43069,6 +44003,12 @@ msgstr ""
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr ""
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr ""
@@ -43153,12 +44093,27 @@ msgstr ""
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr ""
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr ""
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr ""
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr ""
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr ""
@@ -43195,6 +44150,9 @@ msgstr ""
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr ""
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr ""
+
msgid "SecurityOrchestration|except projects"
msgstr ""
@@ -43381,6 +44339,9 @@ msgstr ""
msgid "SecurityReports|Dismissed as..."
msgstr ""
+msgid "SecurityReports|Does not have a solution"
+msgstr ""
+
msgid "SecurityReports|Does not have issue"
msgstr ""
@@ -43432,6 +44393,9 @@ msgstr ""
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr ""
+msgid "SecurityReports|Has a solution"
+msgstr ""
+
msgid "SecurityReports|Has issue"
msgstr ""
@@ -43447,12 +44411,6 @@ msgstr ""
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr ""
-msgid "SecurityReports|Is available"
-msgstr ""
-
-msgid "SecurityReports|Is not available"
-msgstr ""
-
msgid "SecurityReports|Issue"
msgstr ""
@@ -43586,6 +44544,9 @@ msgstr ""
msgid "SecurityReports|Submit vulnerability"
msgstr ""
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr ""
@@ -43685,6 +44646,18 @@ msgstr ""
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr ""
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr ""
@@ -43952,6 +44925,9 @@ msgstr ""
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr ""
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr ""
@@ -44114,9 +45090,15 @@ msgstr ""
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr ""
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr ""
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr ""
@@ -44156,6 +45138,12 @@ msgstr ""
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr ""
+msgid "ServiceDesk|Read timeout"
+msgstr ""
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr ""
@@ -44216,7 +45204,10 @@ msgstr ""
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr ""
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr ""
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
msgstr ""
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
@@ -44225,6 +45216,12 @@ msgstr ""
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr ""
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr ""
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr ""
@@ -44423,9 +45420,6 @@ msgstr ""
msgid "Set up Jira Integration"
msgstr ""
-msgid "Set up a %{type} runner for a project"
-msgstr ""
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr ""
@@ -44441,6 +45435,9 @@ 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."
msgstr ""
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr ""
@@ -44519,19 +45516,33 @@ msgstr ""
msgid "Setting enforced"
msgstr ""
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] ""
-
msgid "Settings"
msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr ""
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr ""
@@ -44589,27 +45600,6 @@ msgstr ""
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr ""
-msgid "Shimo|Go to Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr ""
-
-msgid "Shimo|Shimo"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr ""
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr ""
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr ""
-
msgid "Short name"
msgstr ""
@@ -44872,9 +45862,6 @@ msgstr ""
msgid "Sign in via 2FA code"
msgstr ""
-msgid "Sign in with"
-msgstr ""
-
msgid "Sign in with single sign-on"
msgstr ""
@@ -44923,19 +45910,13 @@ msgstr ""
msgid "Sign-up restrictions"
msgstr ""
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr ""
-
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
@@ -45235,6 +46216,9 @@ msgstr ""
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr ""
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr ""
@@ -45292,6 +46276,9 @@ msgstr ""
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr ""
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr ""
+
msgid "Snowplow"
msgstr ""
@@ -45352,7 +46339,7 @@ msgstr ""
msgid "Something went wrong"
msgstr ""
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
+msgid "Something went wrong fetching the scanner findings. Please try again."
msgstr ""
msgid "Something went wrong on our end"
@@ -45694,9 +46681,6 @@ msgstr ""
msgid "SortOptions|Priority"
msgstr ""
-msgid "SortOptions|Project"
-msgstr ""
-
msgid "SortOptions|Recent last activity"
msgstr ""
@@ -45709,7 +46693,7 @@ msgstr ""
msgid "SortOptions|Size"
msgstr ""
-msgid "SortOptions|Sort by:"
+msgid "SortOptions|Sort by"
msgstr ""
msgid "SortOptions|Sort direction"
@@ -45730,12 +46714,6 @@ msgstr ""
msgid "SortOptions|Title"
msgstr ""
-msgid "SortOptions|Type"
-msgstr ""
-
-msgid "SortOptions|Version"
-msgstr ""
-
msgid "SortOptions|Weight"
msgstr "權é‡"
@@ -45931,6 +46909,10 @@ msgstr ""
msgid "Standard"
msgstr ""
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] ""
+
msgid "Star labels to start sorting by priority."
msgstr ""
@@ -46231,9 +47213,6 @@ msgstr ""
msgid "Stop impersonating"
msgstr ""
-msgid "Stop impersonation"
-msgstr ""
-
msgid "Stop this environment"
msgstr ""
@@ -46315,9 +47294,6 @@ msgstr ""
msgid "Submit as spam"
msgstr ""
-msgid "Submit feedback"
-msgstr "æ交æ„見"
-
msgid "Submit feedback and approve these changes."
msgstr ""
@@ -46414,6 +47390,9 @@ msgstr ""
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr ""
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr ""
@@ -46961,9 +47940,6 @@ msgstr ""
msgid "Switch branch/tag"
msgstr "切æ›åˆ†æ”¯/標籤"
-msgid "Switch to GitLab Next"
-msgstr ""
-
msgid "Switch to plain text editing"
msgstr ""
@@ -47234,13 +48210,22 @@ msgstr ""
msgid "TanukiBot|Give feedback"
msgstr ""
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] ""
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr ""
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr ""
@@ -47256,21 +48241,6 @@ msgstr ""
msgid "Target branch"
msgstr "目標分支"
-msgid "Target branch rule"
-msgstr ""
-
-msgid "Target branch rule created."
-msgstr ""
-
-msgid "Target branch rule deleted."
-msgstr ""
-
-msgid "Target branch rule does not exist"
-msgstr ""
-
-msgid "Target branch rules"
-msgstr ""
-
msgid "Target branch: %{target_branch}"
msgstr ""
@@ -47551,6 +48521,9 @@ msgstr ""
msgid "Test settings"
msgstr ""
+msgid "Test summary"
+msgstr ""
+
msgid "TestCases|Move test case"
msgstr ""
@@ -47744,6 +48717,9 @@ msgstr ""
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr ""
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr ""
@@ -47768,6 +48744,12 @@ msgstr ""
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr ""
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr ""
@@ -47786,9 +48768,6 @@ msgstr ""
msgid "The commit does not exist"
msgstr ""
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr ""
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr ""
@@ -47828,16 +48807,22 @@ msgstr ""
msgid "The current user is not authorized to create the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr ""
msgid "The current user is not authorized to update the pipeline schedule"
msgstr ""
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr ""
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgid "The date when the release is ready."
msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
@@ -48085,6 +49070,9 @@ msgstr ""
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr ""
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr ""
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr ""
@@ -48223,6 +49211,9 @@ msgstr ""
msgid "The start date must be earlier than the end date."
msgstr ""
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr ""
@@ -48274,13 +49265,10 @@ msgstr ""
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr ""
-msgid "There are currently no mirrored repositories."
-msgstr ""
-
-msgid "There are currently no target branch rules"
+msgid "There are currently no merge request branch targets"
msgstr ""
-msgid "There are merge conflicts"
+msgid "There are currently no mirrored repositories."
msgstr ""
msgid "There are no GPG keys associated with this account."
@@ -48451,6 +49439,9 @@ msgstr ""
msgid "There was a problem fetching project users."
msgstr ""
+msgid "There was a problem fetching projects."
+msgstr ""
+
msgid "There was a problem fetching recent groups."
msgstr ""
@@ -48646,6 +49637,9 @@ msgstr ""
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr ""
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr ""
@@ -48736,9 +49730,15 @@ msgstr ""
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr ""
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr ""
@@ -48775,6 +49775,9 @@ msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr ""
@@ -48967,9 +49970,6 @@ msgstr ""
msgid "This is a security log of authentication events involving your account."
msgstr ""
-msgid "This is a self-managed instance of GitLab."
-msgstr ""
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr ""
@@ -49114,12 +50114,6 @@ msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "在創建壹個空的存儲庫或導入ç¾æœ‰å­˜å„²åº«ä¹‹å‰ï¼Œæ‚¨å°‡ç„¡æ³•æŽ¨é€ä»£ç¢¼ã€‚"
-msgid "This merge request branch is protected from force push."
-msgstr ""
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr ""
-
msgid "This merge request does not have accessibility reports"
msgstr ""
@@ -49168,6 +50162,10 @@ msgstr ""
msgid "This pipeline was triggered using the api"
msgstr ""
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr ""
@@ -49809,9 +50807,6 @@ msgstr ""
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr ""
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr ""
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr ""
@@ -49855,6 +50850,9 @@ msgstr ""
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr ""
+msgid "To merge, either the title or description must reference a Jira issue."
+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 ""
@@ -49960,7 +50958,7 @@ msgstr ""
msgid "Today"
msgstr "今天"
-msgid "Todos count"
+msgid "Todos| What actions create to-do items?"
msgstr ""
msgid "Todos|Added"
@@ -49975,9 +50973,6 @@ msgstr ""
msgid "Todos|Any Type"
msgstr ""
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr ""
-
msgid "Todos|Assigned"
msgstr ""
@@ -50035,6 +51030,9 @@ msgstr ""
msgid "Todos|Merge request"
msgstr ""
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr ""
@@ -50071,6 +51069,9 @@ msgstr ""
msgid "Todos|has requested access to %{what} %{which}"
msgstr ""
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr ""
@@ -50113,7 +51114,7 @@ msgstr ""
msgid "Toggle details"
msgstr ""
-msgid "Toggle emoji award"
+msgid "Toggle emoji reaction"
msgstr ""
msgid "Toggle file browser"
@@ -50125,9 +51126,6 @@ msgstr ""
msgid "Toggle keyboard shortcuts help dialog"
msgstr ""
-msgid "Toggle navigation"
-msgstr ""
-
msgid "Toggle project select"
msgstr ""
@@ -50143,10 +51141,10 @@ msgstr ""
msgid "Toggle the navigation sidebar"
msgstr ""
-msgid "Toggled :%{name}: emoji award."
+msgid "Toggled :%{name}: emoji reaction."
msgstr ""
-msgid "Toggles :%{name}: emoji award."
+msgid "Toggles :%{name}: emoji reaction."
msgstr ""
msgid "Token"
@@ -50188,18 +51186,6 @@ msgstr ""
msgid "Tool"
msgstr ""
-msgid "TopNav|Explore"
-msgstr ""
-
-msgid "TopNav|Go back"
-msgstr ""
-
-msgid "TopNav|Switch to"
-msgstr ""
-
-msgid "TopNav|Your dashboards"
-msgstr ""
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr ""
@@ -50267,6 +51253,12 @@ msgstr ""
msgid "Total test time for all commits/merges"
msgstr "所有æ交和åˆä½µçš„總測試時間"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr ""
@@ -50291,16 +51283,33 @@ msgstr ""
msgid "Tracing"
msgstr ""
-msgid "Tracing|%{ms} ms"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
msgstr ""
-msgid "Tracing|Attribute"
+msgid "Tracing|%{ms}ms"
msgstr ""
-msgid "Tracing|Attributes"
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
+
+msgid "Tracing|Attribute"
msgstr ""
-msgid "Tracing|Check again"
+msgid "Tracing|Attributes"
msgstr ""
msgid "Tracing|Date"
@@ -50360,10 +51369,10 @@ msgstr ""
msgid "Tracing|Metadata"
msgstr ""
-msgid "Tracing|No traces to display."
+msgid "Tracing|Operation"
msgstr ""
-msgid "Tracing|Operation"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
msgstr ""
msgid "Tracing|Resource attributes"
@@ -50498,27 +51507,6 @@ msgstr "樹狀顯示"
msgid "Trending"
msgstr ""
-msgid "TrialBenefits|Container Scanning"
-msgstr ""
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr ""
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr ""
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr ""
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr ""
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr ""
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr ""
@@ -50534,28 +51522,19 @@ msgstr ""
msgid "Trials|Compare all plans"
msgstr ""
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr ""
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr ""
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr ""
-msgid "Trials|Looking to do more with GitLab?"
+msgid "Trials|Don't lose out on additional GitLab features"
msgstr ""
-msgid "Trials|Trials benefits"
-msgstr ""
-
-msgid "Trials|Upgrade your plan for more security features"
-msgstr ""
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
+msgid "Trials|Looking to do more with GitLab?"
msgstr ""
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
msgstr ""
msgid "Trials|You can apply your trial to a new group or an existing group."
@@ -50697,12 +51676,6 @@ msgstr ""
msgid "Turn on"
msgstr ""
-msgid "Twitter"
-msgstr ""
-
-msgid "Twitter:"
-msgstr ""
-
msgid "Two-Factor Authentication"
msgstr ""
@@ -50778,15 +51751,30 @@ msgstr ""
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr ""
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr ""
msgid "URL of the external storage to serve the repository static objects."
msgstr ""
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr ""
@@ -50952,9 +51940,18 @@ msgstr ""
msgid "Unauthorized to create an environment"
msgstr ""
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr ""
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr ""
+
msgid "Unauthorized to update the environment"
msgstr ""
@@ -51030,7 +52027,7 @@ msgstr ""
msgid "Unknown user"
msgstr ""
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
msgstr ""
msgid "Unlimited"
@@ -51081,6 +52078,9 @@ msgstr ""
msgid "Unlocks the discussion."
msgstr ""
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr ""
@@ -51234,6 +52234,9 @@ msgstr ""
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr ""
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr ""
+
msgid "UpdateProject|Could not set the default branch"
msgstr ""
@@ -51372,7 +52375,10 @@ msgstr ""
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr ""
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
@@ -51387,9 +52393,6 @@ msgstr ""
msgid "UsageQuota|Buy storage"
msgstr ""
-msgid "UsageQuota|Code Suggestions"
-msgstr ""
-
msgid "UsageQuota|Code packages and container images."
msgstr ""
@@ -51411,13 +52414,13 @@ msgstr ""
msgid "UsageQuota|Dependency proxy"
msgstr ""
-msgid "UsageQuota|Filter charts by year"
+msgid "UsageQuota|Duo Pro"
msgstr ""
-msgid "UsageQuota|Filter projects data by month"
+msgid "UsageQuota|Filter charts by year"
msgstr ""
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "UsageQuota|Filter projects data by month"
msgstr ""
msgid "UsageQuota|Git repository."
@@ -51450,7 +52453,7 @@ msgstr ""
msgid "UsageQuota|Learn more about usage quotas."
msgstr ""
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
msgstr ""
msgid "UsageQuota|Month"
@@ -51489,7 +52492,7 @@ msgstr ""
msgid "UsageQuota|Product analytics"
msgstr ""
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
msgstr ""
msgid "UsageQuota|Purchased storage"
@@ -51516,9 +52519,6 @@ msgstr ""
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr ""
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr ""
-
msgid "UsageQuota|Storage"
msgstr ""
@@ -51768,12 +52768,6 @@ msgstr ""
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr ""
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr ""
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr ""
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr ""
@@ -51786,6 +52780,12 @@ msgstr ""
msgid "Use the search bar on the top of this page"
msgstr ""
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr ""
@@ -51850,6 +52850,9 @@ msgstr ""
msgid "User %{user} was removed from %{group}."
msgstr ""
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr ""
@@ -51955,6 +52958,9 @@ msgstr ""
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr ""
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr ""
@@ -52405,22 +53411,27 @@ msgstr ""
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr ""
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr ""
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] ""
-msgid "ValueStreamAnalytics|&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
msgstr ""
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
@@ -52438,6 +53449,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr ""
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr ""
@@ -52540,15 +53554,6 @@ msgstr ""
msgid "Variables"
msgstr ""
-msgid "Variables can be:"
-msgstr ""
-
-msgid "Variables can have several attributes."
-msgstr ""
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr ""
-
msgid "Various container registry settings."
msgstr ""
@@ -52630,9 +53635,6 @@ msgstr ""
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr ""
-msgid "VersionCheck|Your GitLab Version"
-msgstr ""
-
msgid "View File Metadata"
msgstr ""
@@ -52651,15 +53653,9 @@ msgstr ""
msgid "View all environments."
msgstr ""
-msgid "View all groups"
-msgstr ""
-
msgid "View all issues"
msgstr ""
-msgid "View all projects"
-msgstr ""
-
msgid "View blame"
msgstr ""
@@ -52757,6 +53753,9 @@ msgstr "查看開啟的åˆä¸¦è«‹æ±‚"
msgid "View page @ "
msgstr ""
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr ""
@@ -52788,6 +53787,9 @@ msgstr ""
msgid "View the latest successful deployment to this environment"
msgstr ""
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr ""
@@ -52863,6 +53865,9 @@ msgstr ""
msgid "Visual Studio Code (SSH)"
msgstr ""
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr ""
+
msgid "Vulnerabilities"
msgstr ""
@@ -52932,6 +53937,9 @@ msgstr ""
msgid "VulnerabilityExport|Detected At"
msgstr ""
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr ""
@@ -53712,6 +54720,9 @@ msgstr ""
msgid "Webhooks|Secret token"
msgstr ""
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr ""
@@ -54207,6 +55218,9 @@ msgstr ""
msgid "WorkItem|All activity"
msgstr ""
+msgid "WorkItem|Ancestor"
+msgstr ""
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr ""
@@ -54229,6 +55243,9 @@ msgstr ""
msgid "WorkItem|Cancel"
msgstr ""
+msgid "WorkItem|Child items"
+msgstr ""
+
msgid "WorkItem|Child objectives and key results"
msgstr ""
@@ -54274,6 +55291,9 @@ msgstr ""
msgid "WorkItem|Epic"
msgstr ""
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr ""
@@ -54310,15 +55330,27 @@ msgstr ""
msgid "WorkItem|Milestone"
msgstr ""
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr ""
msgid "WorkItem|New task"
msgstr ""
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr ""
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr ""
@@ -54349,9 +55381,6 @@ msgstr ""
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr ""
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr ""
-
msgid "WorkItem|Open"
msgstr ""
@@ -54373,12 +55402,15 @@ msgstr ""
msgid "WorkItem|Save and overwrite"
msgstr ""
-msgid "WorkItem|Search existing items"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
msgstr ""
msgid "WorkItem|Select type"
msgstr ""
+msgid "WorkItem|Show all ancestors"
+msgstr ""
+
msgid "WorkItem|Show labels"
msgstr ""
@@ -54394,6 +55426,9 @@ msgstr ""
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr ""
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr ""
@@ -54403,9 +55438,6 @@ msgstr ""
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr ""
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr ""
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr ""
@@ -54535,7 +55567,7 @@ msgstr ""
msgid "WorkItem|relates to"
msgstr ""
-msgid "WorkItem|the following item(s)"
+msgid "WorkItem|the following items"
msgstr ""
msgid "Workspaces"
@@ -54553,6 +55585,9 @@ msgstr ""
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr ""
+msgid "Workspaces|Create a new workspace"
+msgstr ""
+
msgid "Workspaces|Create workspace"
msgstr ""
@@ -54631,7 +55666,7 @@ msgstr ""
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr ""
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
msgstr ""
msgid "Workspaces|Unknown state"
@@ -54685,6 +55720,12 @@ msgstr ""
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr ""
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr ""
@@ -54712,6 +55753,9 @@ msgstr "昨天"
msgid "You"
msgstr ""
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr ""
@@ -55079,10 +56123,10 @@ msgstr ""
msgid "You do not belong to any projects yet."
msgstr ""
-msgid "You do not have access to AI features."
+msgid "You do not have access to any projects for creating incidents."
msgstr ""
-msgid "You do not have access to any projects for creating incidents."
+msgid "You do not have access to chat feature."
msgstr ""
msgid "You do not have any subscriptions yet"
@@ -55136,6 +56180,9 @@ msgstr ""
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr ""
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr ""
@@ -55164,6 +56211,9 @@ msgstr[0] ""
msgid "You have already reported this user"
msgstr ""
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr ""
@@ -55197,7 +56247,7 @@ msgstr ""
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr ""
-msgid "You have insufficient permissions to create a target branch rule"
+msgid "You have insufficient permissions to create a branch target"
msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
@@ -55209,7 +56259,7 @@ msgstr ""
msgid "You have insufficient permissions to create organizations"
msgstr ""
-msgid "You have insufficient permissions to delete a target branch rule"
+msgid "You have insufficient permissions to delete a branch target"
msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
@@ -55242,6 +56292,9 @@ msgstr ""
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr ""
+msgid "You have insufficient permissions to update the organization"
+msgstr ""
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr ""
@@ -55281,6 +56334,9 @@ msgstr ""
msgid "You must be authenticated to access this path."
msgstr ""
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr ""
@@ -55492,6 +56548,9 @@ msgstr ""
msgid "Your Activity"
msgstr ""
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr ""
@@ -55504,6 +56563,9 @@ msgstr ""
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr ""
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr ""
@@ -55519,10 +56581,10 @@ msgstr ""
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
msgstr ""
msgid "Your GPG keys"
@@ -55724,6 +56786,9 @@ msgstr ""
msgid "Your name"
msgstr "您的åå­—"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr ""
+
msgid "Your new %{accessTokenType}"
msgstr ""
@@ -55757,6 +56822,9 @@ msgstr ""
msgid "Your public email will be displayed on your public profile."
msgstr ""
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr ""
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr ""
@@ -55893,6 +56961,9 @@ msgstr ""
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr ""
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr ""
@@ -56121,10 +57192,10 @@ msgstr ""
msgid "cannot be changed"
msgstr ""
-msgid "cannot be changed if a personal project has container registry tags."
+msgid "cannot be changed because of an existing association with a custom role"
msgstr ""
-msgid "cannot be changed since member is associated with a custom role"
+msgid "cannot be changed if a personal project has container registry tags."
msgstr ""
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
@@ -56193,9 +57264,6 @@ msgstr ""
msgid "ciReport|%{improvedNum} improved"
msgstr ""
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr ""
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr ""
@@ -56238,7 +57306,7 @@ msgstr ""
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr ""
-msgid "ciReport|Base pipeline codequality artifact not found"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
msgstr ""
msgid "ciReport|Browser Performance"
@@ -56275,17 +57343,6 @@ msgstr ""
msgid "ciReport|Code Quality is loading"
msgstr ""
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] ""
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr ""
-
msgid "ciReport|Container Scanning"
msgstr ""
@@ -56404,15 +57461,18 @@ msgstr ""
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr ""
-msgid "ciReport|No changes to code quality"
-msgstr "程å¼ç¢¼å“質沒有變更"
-
msgid "ciReport|No code quality issues found"
msgstr ""
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr ""
+
msgid "ciReport|RPS"
msgstr ""
+msgid "ciReport|Resolve with AI"
+msgstr ""
+
msgid "ciReport|Resolve with merge request"
msgstr ""
@@ -56470,9 +57530,6 @@ msgstr ""
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr ""
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr ""
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr ""
@@ -56923,6 +57980,9 @@ msgstr ""
msgid "is not one of"
msgstr ""
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr ""
@@ -57083,6 +58143,9 @@ msgstr ""
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr ""
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr ""
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr ""
@@ -57418,6 +58481,18 @@ msgstr ""
msgid "must be a boolean value"
msgstr ""
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr ""
@@ -57463,6 +58538,9 @@ msgstr ""
msgid "must be before %{expiry_date}"
msgstr ""
+msgid "must be enabled."
+msgstr ""
+
msgid "must be false when email confirmation setting is off"
msgstr ""
@@ -57481,6 +58559,9 @@ msgstr ""
msgid "must be less than the limit of %{tag_limit} tags"
msgstr ""
+msgid "must be one of: %{values}"
+msgstr ""
+
msgid "must be owned by the user's enterprise group"
msgstr ""
@@ -57514,6 +58595,9 @@ msgstr ""
msgid "must have a valid format and be greater than or equal to zero."
msgstr ""
+msgid "must have the 'enabled' flag set to true"
+msgstr ""
+
msgid "must match %{association}.project_id"
msgstr ""
@@ -57746,6 +58830,9 @@ msgstr ""
msgid "remove weight"
msgstr "移除權é‡"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr ""
@@ -57772,9 +58859,6 @@ msgstr[0] ""
msgid "repository:"
msgstr ""
-msgid "role's base access level does not match the access level of the membership"
-msgstr ""
-
msgid "rule"
msgid_plural "rules"
msgstr[0] ""
@@ -57945,6 +59029,9 @@ msgstr ""
msgid "the correct format."
msgstr ""
+msgid "the custom role's base access level does not match the current access level"
+msgstr ""
+
msgid "the following epics"
msgstr ""
@@ -57954,6 +59041,9 @@ msgstr ""
msgid "the following issues"
msgstr ""
+msgid "the member access level can't be higher than the current user's one"
+msgstr ""
+
msgid "the wiki"
msgstr ""
diff --git a/locale/zh_TW/gitlab.po b/locale/zh_TW/gitlab.po
index c6ef863eb02..1c3b0b5ac1b 100644
--- a/locale/zh_TW/gitlab.po
+++ b/locale/zh_TW/gitlab.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-Language: zh-TW\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
"X-Crowdin-File-ID: 16\n"
-"PO-Revision-Date: 2023-11-13 13:36\n"
+"PO-Revision-Date: 2024-01-11 16:27\n"
msgid " %{start} to %{end}"
msgstr " %{start} 到 %{end}"
@@ -79,10 +79,10 @@ msgid "\"%{repository_name}\" size (%{repository_size}) is larger than the limit
msgstr "\"%{repository_name}\" 的檔案大å°ï¼ˆ%{repository_size})大於 %{limit} é™åˆ¶ã€‚"
msgid "##### ERROR ##### You have used %{usage_percentage} of the storage quota for %{namespace_name} (%{current_size} of %{size_limit}). %{namespace_name} is now read-only. Projects under this namespace are locked and actions will be restricted. To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
-msgstr "##### 錯誤 ##### 您已使用 %{namespace_name} %{usage_percentage}(of %{size_limit} çš„ %{current_size})的儲存é¡åº¦ã€‚ %{namespace_name} ç¾åœ¨æ˜¯å”¯è®€çš„,該命å空間下的專案已被鎖定,æ“作將å—到é™åˆ¶ã€‚è¦ç®¡ç†å„²å­˜ç©ºé–“或購買é¡å¤–的儲存空間,請åƒé–± %{manage_storage_url}。è¦äº†è§£æœ‰é—œå—é™æ“作的更多信æ¯ï¼Œè«‹åƒé–± %{restricted_actions_url}"
+msgstr ""
msgid "##### WARNING ##### You have used %{usage_percentage} of the storage quota for %{namespace_name} (%{current_size} of %{size_limit}). If %{namespace_name} exceeds the storage quota, all projects in the namespace will be locked and actions will be restricted. To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
-msgstr "##### 警告 ##### 您已使用 %{namespace_name} %{usage_percentage}(of %{size_limit} çš„ %{current_size})的儲存é¡åº¦ã€‚ 如果 %{namespace_name} 超éŽå­˜å„²é…é¡ï¼Œå‘½å空間中的所有專案將被鎖定並é™åˆ¶æ“作,è¦ç®¡ç†å„²å­˜æˆ–購買é¡å¤–儲存,請åƒé–± %{manage_storage_url},è¦äº†è§£æœ‰é—œå—é™æ“作的更多信æ¯ï¼Œè«‹åƒé–± %{restricted_actions_url}"
+msgstr ""
msgid "#%{issueIid} (closed)"
msgstr "#%{issueIid}(已關閉)"
@@ -150,10 +150,6 @@ msgid "%d artifact"
msgid_plural "%d artifacts"
msgstr[0] "%d 個產物"
-msgid "%d assigned issue"
-msgid_plural "%d assigned issues"
-msgstr[0] "%d 個已指派的議題"
-
msgid "%d author"
msgid_plural "%d authors"
msgstr[0] "%d ä½ä½œè€…"
@@ -178,10 +174,6 @@ msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d 則留言"
-msgid "%d comment on this commit"
-msgid_plural "%d comments on this commit"
-msgstr[0] "此更動有 %d 個留言"
-
msgid "%d commenter"
msgid_plural "%d commenters"
msgstr[0] "%d ä½è©•è«–者"
@@ -206,10 +198,6 @@ msgid "%d completed issue"
msgid_plural "%d completed issues"
msgstr[0] "%d 個完æˆçš„è­°é¡Œ"
-msgid "%d compliance framework selected"
-msgid_plural "%d compliance frameworks selected"
-msgstr[0] "é¸æ“‡%d åˆè¦æ¡†æž¶"
-
msgid "%d contribution"
msgid_plural "%d contributions"
msgstr[0] "%d 個貢ç»"
@@ -274,6 +262,10 @@ msgid "%d issue successfully imported with the label"
msgid_plural "%d issues successfully imported with the label"
msgstr[0] "用標籤æˆåŠŸåŒ¯å…¥ %d 個議題"
+msgid "%d item found"
+msgid_plural "%d items found"
+msgstr[0] "æœå°‹åˆ° %d é …ç›®"
+
msgid "%d job"
msgid_plural "%d jobs"
msgstr[0] "%d 個工作"
@@ -460,6 +452,9 @@ msgstr "%{author_link} 說:"
msgid "%{authorsName}'s thread"
msgstr "%{authorsName} 的話題"
+msgid "%{author} has added you as an approver."
+msgstr ""
+
msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
msgstr "%{author} 請求將 %{source_branch} %{copy_button} åˆä½µåˆ° %{target_branch} %{created_at}"
@@ -494,15 +489,6 @@ msgstr "%{chartTitle} 沒有資料系列"
msgid "%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable."
msgstr "%{codeStart}$%{codeEnd} 將被視是為å°å¦ä¸€å€‹è®Šæ•¸å¼•ç”¨çš„啟始。"
-msgid "%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
-msgstr "%{code_open}Expanded:%{code_close} 帶有 %{code_open}$%{code_close} 的變數將被視為是å°å¦ä¸€å€‹è®Šæ•¸å¼•ç”¨çš„啟始。"
-
-msgid "%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
-msgstr "%{code_open}éš±è—:%{code_close} éš±è—於作業日誌之中。必須符åˆéš±è—è¦å®šã€‚"
-
-msgid "%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
-msgstr "%{code_open}å—ä¿è­·çš„:%{code_close} 僅公開於å—ä¿è­·çš„分支或標籤。"
-
msgid "%{commit_author_link} authored %{commit_authored_timeago}"
msgstr "由 %{commit_author_link} 於 %{commit_authored_timeago} 建立"
@@ -606,12 +592,6 @@ msgstr "%{days}天,直到標籤被自動刪除"
msgid "%{description}- Sentry event: %{errorUrl}- First seen: %{firstSeen}- Last seen: %{lastSeen} %{countLabel}: %{count}%{userCountLabel}: %{userCount}"
msgstr "%{description}- Sentry 事件:%{errorUrl}- 首次出ç¾ï¼š%{firstSeen}- 最後出ç¾ï¼š%{lastSeen} %{countLabel}:%{count}%{userCountLabel}:%{userCount}"
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
-msgstr "%{doc_link_start}進階æœå°‹%{doc_link_end} 被ç¦ç”¨ï¼Œå› ç‚º %{ref_elem} ä¸æ˜¯é è¨­åˆ†æ”¯ã€‚ %{docs_link}"
-
-msgid "%{doc_link_start}Advanced search%{doc_link_end} is enabled."
-msgstr "%{doc_link_start}進階æœå°‹%{doc_link_end} 已啟用。"
-
msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}"
msgstr "%{docs_link_start}暸解能見度等級%{docs_link_end}"
@@ -648,6 +628,9 @@ msgstr "%{emailPrefix}@company.com"
msgid "%{extra} more downstream pipelines"
msgstr "還有 %{extra} 個下游æµæ°´ç·š"
+msgid "%{failures} of %{total} failed"
+msgstr "失敗 %{failures} 次,共 %{total} 次"
+
msgid "%{filePath} deleted"
msgstr "%{filePath} 已刪除"
@@ -822,6 +805,12 @@ msgstr "%{linkStart} 了解更多 %{linkEnd}。"
msgid "%{linkStart}%{linkEnd} review summary"
msgstr "%{linkStart}%{linkEnd} 審閱摘è¦"
+msgid "%{linkStart}Advanced search%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr ""
+
+msgid "%{linkStart}Advanced search%{linkEnd} is enabled."
+msgstr "%{linkStart}進階æœå°‹%{linkEnd} 已啟用。"
+
msgid "%{listToShow}, and %{awardsListLength} more"
msgstr "%{listToShow}個,還有 %{awardsListLength} 個。"
@@ -1075,6 +1064,9 @@ msgstr[0] "%{strongStart}%{count}%{strongEnd} 次æ交"
msgid "%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}."
msgstr "%{strongStart}秘訣:%{strongEnd}您也å¯ä»¥%{linkStart}使用åˆä½µè«‹æ±‚ ID 簽出%{linkEnd}。"
+msgid "%{strong_start}%{author}%{strong_end} has added you as an approver."
+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} 個分支"
@@ -1154,8 +1146,11 @@ msgstr "%{timebox_type} 必須有開始日期和截止日期"
msgid "%{time} UTC"
msgstr "%{time} UTC"
-msgid "%{title} changes"
-msgstr "%{title} 變更"
+msgid "%{title} username."
+msgstr ""
+
+msgid "%{title} webhook (for example, `%{example}`)."
+msgstr ""
msgid "%{totalCpu} (%{freeSpacePercentage}%{percentSymbol} free)"
msgstr "%{totalCpu} (剩餘%{freeSpacePercentage}%{percentSymbol})"
@@ -1169,6 +1164,9 @@ msgstr "%{totalMemory} (剩餘%{freeSpacePercentage}%{percentSymbol})"
msgid "%{total_warnings} warning(s) found:"
msgstr "ç™¼ç¾ %{total_warnings} 個警告:"
+msgid "%{total}"
+msgstr "%{total}"
+
msgid "%{total} remaining issue weight"
msgstr "%{total} 剩餘議題權é‡"
@@ -1223,6 +1221,9 @@ msgstr "%{user} 建立了一個議題: %{issue_link}"
msgid "%{user} user’s menu"
msgstr "%{user} 使用者é¸å–®"
+msgid "%{value} is a reserved name"
+msgstr ""
+
msgid "%{value} is not included in the list"
msgstr "%{value} 未包å«åœ¨åˆ—表中"
@@ -1241,6 +1242,9 @@ msgstr "%{webhooks_link_start}%{webhook_type}%{webhooks_link_end} å¯ä»¥åœ¨ç¾¤çµ
msgid "%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported."
msgstr "%{wildcards_link_start}è¬ç”¨å­—å…ƒ%{wildcards_link_end} ä¾‹å¦‚æ”¯æ´ %{code_tag_start}v*%{code_tag_end} 或 %{code_tag_start}*-release%{code_tag_end}。"
+msgid "'%{data_pointer}' must be a valid '%{type}'"
+msgstr "“%{data_pointer}â€å¿…須是有效的“%{type}â€"
+
msgid "'%{level}' is not a valid visibility level"
msgstr "「%{level}ã€ä¸æ˜¯æœ‰æ•ˆçš„å¯è¦‹æ€§ç´šåˆ¥"
@@ -1256,9 +1260,21 @@ msgstr "「%{value}ã€å¤©çš„éžæ´»èºå¤©æ•¸å¿…須大於或等於 90"
msgid "'allow: %{allow}' must be a string"
msgstr "'allow: %{allow}' 必須是字串"
+msgid "'cpu: %{cpu}' must be a string"
+msgstr ""
+
+msgid "'cpu: %{cpu}' must match the regex '%{cpu_regex}'"
+msgstr ""
+
msgid "'except: %{except}' must be an array of string"
msgstr "' except: %{except}' 必須是字串陣列"
+msgid "'memory: %{memory}' must be a string"
+msgstr ""
+
+msgid "'memory: %{memory}' must match the regex '%{memory_regex}'"
+msgstr ""
+
msgid "'projects' is not yet supported"
msgstr "\"專案\"尚未被支æ´"
@@ -1293,6 +1309,12 @@ msgstr "(無變更)"
msgid "(Unlimited pipeline minutes)"
msgstr "(無é™åˆ¶çš„æµæ°´ç·šåˆ†é˜æ•¸ï¼‰"
+msgid "(banned)"
+msgstr ""
+
+msgid "(blocked)"
+msgstr ""
+
msgid "(check progress)"
msgstr "(檢查進度)"
@@ -1311,9 +1333,6 @@ msgstr "(外部åƒèˆ‡è€…)"
msgid "(leave blank if you don't want to change it)"
msgstr "(如果您ä¸æƒ³æ›´æ”¹ï¼Œè«‹ç•™ç©ºï¼‰"
-msgid "(max size 15 MB)"
-msgstr "(最大15 MB)"
-
msgid "(no user)"
msgstr "(無使用者)"
@@ -1344,8 +1363,8 @@ msgstr "+ 其餘 %{amount} 項"
msgid "+ %{count} more"
msgstr "+ 其餘 %{count} 項"
-msgid "+ %{hiddenBranchesLength} more"
-msgstr "+ 更多的 %{hiddenBranchesLength}"
+msgid "+ %{itemsLength} more"
+msgstr ""
msgid "+ %{moreCount} more"
msgstr "+ 其餘 %{moreCount} 項"
@@ -1634,9 +1653,6 @@ msgstr "使用 AWS Lambdaã€AWS API é–˜é“åŠ GitLab Pages 的基本é é¢å’Œç„¡
msgid "A basic template for developing Linux programs using Kotlin Native"
msgstr "一個使用 Kotlin Native 為開發 Linux 程å¼çš„基本範本"
-msgid "A complete DevOps platform"
-msgstr "一個完整的 DevOps å¹³å°"
-
msgid "A confidential issue must have only confidential children. Make any child items confidential and try again."
msgstr "機密議題必須åªæœ‰æ©Ÿå¯†å­ç´šï¼Œå°‡æ‰€æœ‰å­é …目設為機密,然後é‡è©¦ã€‚"
@@ -1742,8 +1758,8 @@ msgstr "é©ç”¨æ–¼ Android 應用程å¼çš„樣æ¿æº–備就緒"
msgid "A ready-to-go template for use with iOS Swift apps"
msgstr "é©ç”¨æ–¼ iOS Swift 應用程å¼çš„樣æ¿æº–備就緒"
-msgid "A rebase is already in progress."
-msgstr "變基 (Rebase) 作業已在進行中。"
+msgid "A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
+msgstr ""
msgid "A sign-in to your account has been made from the following IP address: %{ip}"
msgstr "你的帳號已被從下列的IP登入: %{ip}"
@@ -1766,6 +1782,33 @@ msgstr "AI 動作"
msgid "AI-generated summary"
msgstr "AI 生æˆçš„摘è¦"
+msgid "AIAgents|AI Agents"
+msgstr ""
+
+msgid "AIAgents|Create agent"
+msgstr ""
+
+msgid "AIAgents|New AI Agent"
+msgstr ""
+
+msgid "AIAgents|New agent"
+msgstr ""
+
+msgid "AIAgent|AI Agent: %{agentId}"
+msgstr ""
+
+msgid "AIPoweredSM|AI-powered features"
+msgstr ""
+
+msgid "AIPoweredSM|By enabling this feature, you agree to the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "AIPoweredSM|Enable %{link_start}AI-powered features%{link_end} for this instance."
+msgstr ""
+
+msgid "AIPoweredSM|Enable Experiment and Beta AI-powered features"
+msgstr ""
+
msgid "AISummary|Generates a summary of all comments"
msgstr "產生所有評論的摘è¦"
@@ -1865,9 +1908,6 @@ msgstr "用 AI 生æˆçš„æ述替æ›ç¾æœ‰çš„æ述?您所åšçš„任何更改éƒ
msgid "AI|Responses generated by AI"
msgstr "AI 生æˆçš„回應"
-msgid "AI|Send chat message."
-msgstr "發é€èŠå¤©æ¶ˆæ¯ã€‚"
-
msgid "AI|Something went wrong. Please try again later"
msgstr "發生錯誤,請ç¨å¾Œå†è©¦"
@@ -1887,6 +1927,9 @@ msgstr "ç¾æœ‰æ述將會在您æ交後被替æ›ã€‚"
msgid "AI|There is too much text in the chat. Please try again with a shorter text."
msgstr "èŠå¤©ä¸­çš„文字太多。請使用較短的文字é‡è©¦ã€‚"
+msgid "AI|This is an experiment feature that uses AI to provide recommendations for resolving this vulnerability. Use this feature with caution."
+msgstr ""
+
msgid "AI|To help improve the quality of the content, send your feedback to GitLab team members."
msgstr "為了å”助改善內容å“質,請將您的回饋寄é€çµ¦ GitLab 團隊æˆå“¡ã€‚"
@@ -1932,6 +1975,9 @@ msgstr "API 模糊測試"
msgid "API Help"
msgstr "API 說明"
+msgid "API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**."
+msgstr ""
+
msgid "API key"
msgstr "API 金鑰"
@@ -2253,6 +2299,12 @@ msgstr "網絡釣魚"
msgid "AbuseReport|Phone"
msgstr "電話"
+msgid "AbuseReport|Phone matches %{phoneMatchesLinkStart}%{count} accounts%{phoneMatchesLinkEnd}"
+msgstr ""
+
+msgid "AbuseReport|Phone number"
+msgstr ""
+
msgid "AbuseReport|Reason"
msgstr "原因"
@@ -2727,6 +2779,9 @@ msgstr "加入核准è¦å‰‡"
msgid "Add approvers"
msgstr "新增核准者"
+msgid "Add branch target"
+msgstr ""
+
msgid "Add child epic to an epic"
msgstr "加入å­å²è©© (epic) 到å²è©© (epic) "
@@ -2865,9 +2920,6 @@ msgstr "批次添加建議"
msgid "Add tag"
msgstr "新增標籤"
-msgid "Add target branch rule"
-msgstr "增加目標分支è¦å‰‡"
-
msgid "Add text to the sign-in page. Markdown enabled."
msgstr "加入文字到登入é é¢ã€‚Markdown 已啟用。"
@@ -3021,15 +3073,15 @@ msgstr "將 %{issuable_type} 新增為與創建它的 %{issuable_type} 相關"
msgid "Adjust how frequently the GitLab UI polls for updates."
msgstr "調整 GitLab UI 輪詢的更新頻率。"
-msgid "Admin"
-msgstr "管ç†å“¡"
-
msgid "Admin Area"
msgstr "管ç†ä¸­å¿ƒ"
msgid "Admin Area / Dashboard"
msgstr "儀表æ¿"
+msgid "Admin Mode"
+msgstr "管ç†å“¡æ¨¡å¼"
+
msgid "Admin Note"
msgstr "管ç†å“¡å‚™è¨»"
@@ -3039,9 +3091,6 @@ msgstr "管ç†å“¡é€šçŸ¥"
msgid "Admin message"
msgstr "管ç†å“¡è¨Šæ¯"
-msgid "Admin mode"
-msgstr "管ç†å“¡æ¨¡å¼"
-
msgid "Admin mode already enabled"
msgstr "管ç†å“¡æ¨¡å¼å·²å•Ÿç”¨"
@@ -3399,6 +3448,9 @@ msgstr "有關已包å«çš„註冊功能清單,請åƒé–± %{link_start}文件%{li
msgid "AdminSettings|Git abuse rate limit"
msgstr "Git 濫用率é™åˆ¶"
+msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, enable the %{code_start}enable_new_sentry_integration%{code_end} and %{code_start}enable_new_sentry_clientside_integration%{code_end} feature flags and restart GitLab."
+msgstr "GitLab 使用 %{bold_start}Rails%{bold_end} å’Œ %{bold_start}ç€è¦½å™¨ JavaScript%{bold_end} Sentry SDK 將事件傳é€åˆ° Sentry。若è¦è®“ Rails æ•´åˆè¨­å®šè®Šæ›´ç”Ÿæ•ˆï¼Œè«‹å•Ÿç”¨ %{code_start}enable_new_sentry_integration%{code_end} å’Œ %{code_start}enable_new_sentry_clientside_integration%{code_end} 功能性標誌並é‡æ–°å•Ÿå‹• GitLab。"
+
msgid "AdminSettings|GitLab uses the %{bold_start}Rails%{bold_end} and %{bold_start}Browser JavaScript%{bold_end} Sentry SDKs to send events to Sentry. For changes to Rails integration settings to take effect, restart GitLab."
msgstr "GitLab 使用 %{bold_start}Rails%{bold_end} å’Œ %{bold_start}ç€è¦½å™¨ JavaScript%{bold_end} Sentry SDK 來將事件發é€åˆ° Sentry。è¦ä½¿ Rails æ•´åˆè¨­å®šçš„更改生效,請é‡æ–°å•Ÿå‹• GitLab。"
@@ -3495,6 +3547,9 @@ msgstr "è¦åŒæ­¥çš„軟體包註冊表元數據"
msgid "AdminSettings|Pause Elasticsearch indexing"
msgstr "æš«åœ Elasticsearch 索引建立"
+msgid "AdminSettings|Pre-receive secret detection"
+msgstr "é æŽ¥æ”¶æ•æ„Ÿè¨Šæ¯åµæ¸¬"
+
msgid "AdminSettings|Prevent non-administrators from using the selected visibility levels for groups, projects and snippets."
msgstr "防止éžç®¡ç†è€…å°ç¾¤çµ„ã€å°ˆæ¡ˆå’Œç¨‹å¼ç¢¼ç‰‡æ®µä½¿ç”¨å·²é¸å–çš„çš„å¯è¦‹æ€§ç´šåˆ¥ã€‚"
@@ -4113,6 +4168,9 @@ msgstr "文件"
msgid "AdminUsers|user cap"
msgstr "使用者上é™"
+msgid "Administrator users are required to enable Two-Factor Authentication for their account."
+msgstr ""
+
msgid "Administrators"
msgstr "系統管ç†å“¡"
@@ -4146,6 +4204,9 @@ msgstr "憑證"
msgid "Admin|Deploy Keys"
msgstr "部署金鑰"
+msgid "Admin|Duo Pro"
+msgstr ""
+
msgid "Admin|Geo"
msgstr "Geo"
@@ -4257,18 +4318,24 @@ msgstr "密碼更新æˆåŠŸå¾Œï¼Œæ‚¨å°‡è¢«é‡æ–°å°Žå‘至登入é é¢ã€‚"
msgid "After it is removed, the fork relationship can only be restored by using the API. This project will no longer be able to receive or send merge requests to the upstream project or other forks."
msgstr "移除後,åªèƒ½é€šéŽAPIæ¢å¾©åˆ†å‰(fork)關係。該專案將無法å†æŽ¥æ”¶æˆ–發é€åˆä½µè«‹æ±‚到上游專案或其他分å‰(fork)。"
-msgid "After the Apple App Store Connect integration is activated, the following protected variables will be created for CI/CD use."
-msgstr "å•Ÿå‹• App Store Connect æ•´åˆå¾Œï¼Œå°‡æœƒå»ºç«‹ä»¥ä¸‹å—ä¿è­·çš„變數供 CI/CD 使用。"
-
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
msgstr "匯出完æˆå¾Œï¼Œå¾žé€šçŸ¥é›»å­éƒµä»¶æˆ–æ­¤é é¢ä¸‹è¼‰æ•¸æ“šæ–‡ä»¶ã€‚然後,您å¯ä»¥å¾žå¦ä¸€å€‹ GitLab 執行個體的 %{strong_text_start}建立新群組%{strong_text_end} é é¢åŒ¯å…¥æ•¸æ“šæ–‡ä»¶ã€‚"
-msgid "After you enable the integration, the following protected variable is created for CI/CD use:"
-msgstr "啟用整åˆå¾Œï¼Œå°‡å»ºç«‹ä¸‹åˆ—å—ä¿è­·è®Šæ•¸ä¾› CI/CD 使用:"
+msgid "After the report is generated, an email will be sent with the report attached."
+msgstr ""
+
+msgid "After you enable the integration, the following protected variables are created for CI/CD use:"
+msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr "在閱讀這些貢ç»æŒ‡å—後,您將準備好"
+msgid "AiAgents|AI Agents"
+msgstr ""
+
+msgid "AiAgents|AI agent"
+msgstr ""
+
msgid "Akismet"
msgstr "Akismet"
@@ -4617,6 +4684,15 @@ msgstr "測試警示ç¾åœ¨æ‡‰è©²é¡¯ç¤ºåœ¨æ‚¨çš„警示列表中。"
msgid "Algorithm"
msgstr "演算法"
+msgid "Align column center"
+msgstr ""
+
+msgid "Align column left"
+msgstr ""
+
+msgid "Align column right"
+msgstr ""
+
msgid "All"
msgstr "全部"
@@ -4647,9 +4723,6 @@ msgstr "所有符åˆæ¢ä»¶ä½¿ç”¨è€…"
msgid "All environments"
msgstr "全部環境"
-msgid "All frameworks selected"
-msgstr "é¸æ“‡æ‰€æœ‰æ¡†æž¶"
-
msgid "All groups"
msgstr "所有群組"
@@ -4704,6 +4777,9 @@ msgstr "所有的使用者都必須具有å稱。"
msgid "All users with matching cards"
msgstr "所有æ“有匹é…å¡çš„使用者"
+msgid "All users with matching phone numbers"
+msgstr ""
+
msgid "Allow %{strongOpen}%{group_name}%{strongClose} to sign you in?"
msgstr "å…許 %{strongOpen}%{group_name}%{strongClose} 登入嗎?"
@@ -4761,12 +4837,18 @@ msgstr "å…許此金鑰推é€åˆ°æ­¤ç‰ˆæœ¬åº«"
msgid "Allow use of licensed EE features"
msgstr "å…許使用許å¯çš„ EE 功能"
+msgid "Allow users to create organizations"
+msgstr "å…許使用者建立組織"
+
msgid "Allow users to extend their session"
msgstr "å…許使用者延長他們的會話 (session)"
msgid "Allow users to register any application to use GitLab as an OAuth provider. This setting does not affect group-level OAuth applications."
msgstr "å…許使用者註冊任何應用程åºä»¥ä½¿ç”¨ GitLab 作為 OAuth æ供商,此設置ä¸æœƒå½±éŸ¿ç¾¤çµ„級別的 OAuth 應用程å¼ã€‚"
+msgid "Allow users with up to Guest role to create groups and personal projects"
+msgstr ""
+
msgid "Allowed"
msgstr "å·²å…許"
@@ -4788,9 +4870,6 @@ msgstr "å…許該群組中的專案或å­ç¾¤çµ„覆寫全局設置。"
msgid "Allows projects to track errors using an Opstrace integration."
msgstr "å…許專案使用 Opstrace æ•´åˆä¾†è¿½è¸ªéŒ¯èª¤ã€‚"
-msgid "Allows you to add and manage Kubernetes clusters."
-msgstr "讓你能加入åŠç®¡ç† Kubernetes å¢é›†ã€‚"
-
msgid "Almost there"
msgstr "å³å°‡å®Œæˆ"
@@ -4851,9 +4930,6 @@ msgstr "具有相åŒæŒ‡ç´‹çš„ %{link_start}警示%{link_end} 已開啟。è¦æ›´æ
msgid "An Administrator has set the maximum expiration date to %{maxDate}. %{helpLinkStart}Learn more%{helpLinkEnd}."
msgstr "管ç†å“¡å·²å°‡æœ€çµ‚的到期日期設置為 %{maxDate}。 %{helpLinkStart}了解更多%{helpLinkEnd}。"
-msgid "An Enterprise User GitLab account has been created for you by your organization:"
-msgstr "您的組織已為您創建了一個ä¼æ¥­ä½¿ç”¨è€… GitLab 帳號:"
-
msgid "An administrator changed the password for your GitLab account on %{link_to}."
msgstr "管ç†å“¡åœ¨ %{link_to}上更改了您 GitLab 帳號的密碼。"
@@ -4869,9 +4945,6 @@ msgstr "æ‡‰ç”¨ç¨‹å¼ %{link_to_client} 請求存å–您的 GitLab 帳號。"
msgid "An email notification was recently sent from the admin panel. Please wait %{wait_time_in_words} before attempting to send another message."
msgstr "管ç†é¢æ¿å‰›æ‰ç™¼é€äº†ä¸€å°é›»å­éƒµä»¶é€šçŸ¥ã€‚請等待 %{wait_time_in_words} ,然後å†å˜—試發é€å¦ä¸€æ¢è¨Šæ¯ã€‚"
-msgid "An email will be sent with the report attached after it is generated."
-msgstr "報告產生後,將發é€ä¸€å°é™„有該報告的電å­éƒµä»¶ã€‚"
-
msgid "An empty GitLab User field will add the FogBugz user's full name (e.g. \"By John Smith\") in the description of all issues and comments. It will also associate and/or assign these issues and comments with the project creator."
msgstr "空 GitLab 使用者欄ä½å°‡åœ¨æ‰€æœ‰è­°é¡ŒåŠç•™è¨€çš„æ述中加入 FogBugz 使用者的全å(例如「由 John Smithã€ï¼‰ã€‚其還會與專案建立者關è¯å’Œï¼æˆ–分é…這些議題或留言。"
@@ -4947,9 +5020,6 @@ msgstr "åœç”¨æœå‹™å°æ™‚發生錯誤。"
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr "忽略警告時發生錯誤。請é‡æ–°æ•´ç†é é¢ä¸¦å†æ¬¡å˜—試。"
-msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
-msgstr "忽略功能çªé¡¯æ™‚發生錯誤。請é‡æ–°æ•´ç†é é¢ä¸¦å†æ¬¡å˜—試。"
-
msgid "An error occurred while drawing job relationship links."
msgstr "繪製作業關係éˆæŽ¥æ™‚發生錯誤。"
@@ -5178,9 +5248,8 @@ msgstr "讀å–您的設定時發生錯誤。é‡æ–°è¼‰å…¥é é¢ç™¼ç”ŸéŒ¯èª¤é‡è©¦
msgid "An error occurred while saving changes: %{error}"
msgstr "儲存變更:%{error}時發生錯誤"
-msgid "An error occurred while saving the setting"
-msgid_plural "An error occurred while saving the settings"
-msgstr[0] "儲存設定時發生錯誤"
+msgid "An error occurred while saving the settings."
+msgstr ""
msgid "An error occurred while saving your settings. Try saving them again."
msgstr "儲存您的設定時發生錯誤。試著å†æ¬¡å„²å­˜æ‚¨çš„設定。"
@@ -5345,6 +5414,9 @@ msgstr "“%{project_name}â€çš„分æžè¨­å®šå·²æˆåŠŸæ›´æ–°ã€‚"
msgid "Analytics|Are you sure you want to cancel creating this dashboard?"
msgstr "您確定è¦å–消建立此儀表æ¿å—Žï¼Ÿ"
+msgid "Analytics|Are you sure you want to cancel creating this visualization?"
+msgstr ""
+
msgid "Analytics|Are you sure you want to cancel editing this dashboard?"
msgstr "您確定è¦å–消編輯此儀表æ¿å—Žï¼Ÿ"
@@ -5453,6 +5525,9 @@ msgstr "事件å稱"
msgid "Analytics|Event Props"
msgstr "事件屬性"
+msgid "Analytics|Exclude anonymous users"
+msgstr ""
+
msgid "Analytics|Failed to fetch data"
msgstr "讀å–資料失敗"
@@ -5561,6 +5636,9 @@ msgstr "分æžæ›´æ–°å„€è¡¨æ¿ %{dashboardSlug}"
msgid "Analytics|Updating visualization %{visualizationName}"
msgstr "分æžæ›´æ–°å¯è¦–化 %{visualizationName}"
+msgid "Analytics|Usage overview for %{namespaceName} group"
+msgstr ""
+
msgid "Analytics|Use the visualization designer to create custom visualizations. After you save a visualization, you can add it to a dashboard."
msgstr "使用視覺化設計師建立自定義的視覺化。ä¿å­˜è¦–覺化後,您å¯ä»¥å°‡å…¶åŠ åˆ°å„€è¡¨æ¿ä¸­ã€‚"
@@ -5573,18 +5651,21 @@ msgstr "使用者屬性"
msgid "Analytics|Users"
msgstr "使用者"
+msgid "Analytics|Value Streams Dashboard"
+msgstr ""
+
msgid "Analytics|View available dashboards"
msgstr "查看å¯ç”¨çš„儀表æ¿"
+msgid "Analytics|View metrics only for users who have consented to activity tracking."
+msgstr ""
+
msgid "Analytics|Viewport"
msgstr "視å£"
msgid "Analytics|Visualization"
msgstr "視覺化"
-msgid "Analytics|Visualization Designer"
-msgstr "視覺化設計師"
-
msgid "Analytics|Visualization designer"
msgstr "視覺化設計師"
@@ -5615,9 +5696,6 @@ msgstr "正在分æžæ–‡ä»¶â€¦"
msgid "Ancestors"
msgstr "祖先"
-msgid "And this registration token:"
-msgstr "以åŠè©²è¨»å†Šæ†‘證:"
-
msgid "Anonymous"
msgstr "匿å"
@@ -5678,6 +5756,27 @@ msgstr "添加 %{shrug} 到留言"
msgid "Append the comment with %{tableflip}"
msgstr "添加 %{tableflip} 到留言"
+msgid "Append the hostname of your GitLab instance to the status check name."
+msgstr ""
+
+msgid "Apple App Store Connect private key file name."
+msgstr ""
+
+msgid "Apple App Store Connect private key."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect issuer ID."
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID"
+msgstr ""
+
+msgid "AppleAppStore|Apple App Store Connect key ID."
+msgstr ""
+
msgid "AppleAppStore|Drag your Private Key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "將您的ç§é‘°æ–‡ä»¶æ‹–放到此處或 %{linkStart}單擊上傳%{linkEnd}。"
@@ -5690,17 +5789,14 @@ msgstr "錯誤:您正在嘗試上傳ç§é‘°æ–‡ä»¶ä»¥å¤–的內容。"
msgid "AppleAppStore|Leave empty to use your current Private Key."
msgstr "留空以使用您當å‰çš„ç§é‘°ã€‚"
-msgid "AppleAppStore|Only set variables on protected branches and tags"
-msgstr "僅在å—ä¿è­·çš„分支和標籤上設定變數"
-
msgid "AppleAppStore|Protected branches and tags only"
msgstr "僅é™å—ä¿è­·çš„分支和標籤"
-msgid "AppleAppStore|The Apple App Store Connect Issuer ID."
-msgstr "Apple App Store Connect 發行者 ID。"
+msgid "AppleAppStore|Set variables on protected branches and tags only"
+msgstr ""
-msgid "AppleAppStore|The Apple App Store Connect Key ID."
-msgstr "Apple App Store Connect 金鑰 ID。"
+msgid "AppleAppStore|Set variables on protected branches and tags only."
+msgstr ""
msgid "AppleAppStore|The Apple App Store Connect Private Key (.p8)"
msgstr "Apple App Store 連çµç§é‘° (.p8)。"
@@ -5717,9 +5813,6 @@ msgstr "應用程å¼"
msgid "Application ID"
msgstr "æ‡‰ç”¨ç¨‹å¼ ID"
-msgid "Application analytics"
-msgstr "應用程å¼åˆ†æž"
-
msgid "Application limits saved successfully"
msgstr "應用程å¼é™åˆ¶å„²å­˜æˆåŠŸ"
@@ -6109,7 +6202,7 @@ msgid "ApprovalSettings|Remove approvals by Code Owners if their files changed"
msgstr "如果程å¼ç¢¼æ“有者的文件發生更改,則移除他們的核准"
msgid "ApprovalSettings|Require user re-authentication (password or SAML) to approve"
-msgstr "需è¦ä½¿ç”¨è€…é‡æ–°é€²è¡Œèº«ä»½é©—證(密碼或 SAML)æ‰èƒ½æ‰¹å‡†"
+msgstr "需è¦ä½¿ç”¨è€…é‡æ–°é€²è¡Œèº«ä»½é©—證(密碼或 SAML)æ‰èƒ½æ ¸å‡†"
msgid "ApprovalSettings|There was an error loading merge request approval settings."
msgstr "加載åˆä½µè«‹æ±‚核准設定時發生錯誤。"
@@ -6231,9 +6324,6 @@ msgstr "歸檔作業"
msgid "Archive project"
msgstr "歸檔專案"
-msgid "Archive test case"
-msgstr "歸檔測試案例"
-
msgid "Archived"
msgstr "å·²å°å­˜"
@@ -6297,6 +6387,9 @@ msgstr "您確定è¦åˆªé™¤æ­¤ %{commentType} 嗎?"
msgid "Are you sure you want to delete this SSH key?"
msgstr "您確定è¦åˆªé™¤é€™å€‹ SSH 金鑰?"
+msgid "Are you sure you want to delete this branch target?"
+msgstr ""
+
msgid "Are you sure you want to delete this comment?"
msgstr "您確定è¦åˆªé™¤é€™å€‹ç•™è¨€ï¼Ÿ"
@@ -6312,9 +6405,6 @@ msgstr "您確定è¦åˆªé™¤é€™å€‹æ¨™ç±¤å—Žï¼Ÿ"
msgid "Are you sure you want to delete this pipeline? Doing so will expire all pipeline caches and delete all related objects, such as builds, logs, artifacts, and triggers. This action cannot be undone."
msgstr "您確定刪除這個æµæ°´ç·šå—Žï¼Ÿé€™éº¼åšæœƒå°‡æ‰€æœ‰æµæ°´ç·šå¿«å–設æˆéŽæœŸï¼Œä¸¦åˆªé™¤æ‰€æœ‰ç›¸é—œç‰©ä»¶ï¼Œä¾‹å¦‚組建ã€æ—¥èªŒã€ç”¢ç‰©åŠè§¸ç™¼å™¨ã€‚這個動作ä¸èƒ½å¾©åŽŸã€‚"
-msgid "Are you sure you want to delete this target branch rule?"
-msgstr "是å¦ç¢ºå¯¦è¦åˆªé™¤æ­¤ç›®æ¨™åˆ†æ”¯è¦å‰‡ï¼Ÿ"
-
msgid "Are you sure you want to deploy this environment?"
msgstr "您確定è¦éƒ¨ç½²æ­¤ç’°å¢ƒå—Žï¼Ÿ"
@@ -6504,9 +6594,6 @@ msgstr "該產物將被永久刪除,任何從該產物所生æˆçš„報告都會
msgid "Artifacts|Total artifacts size"
msgstr "總產物大å°"
-msgid "As this is a newly created account, to get started, click the link below to confirm your account."
-msgstr "由於這是一個新建的帳號,請點擊下é¢çš„éˆçµä»¥ç¢ºèªæ‚¨çš„帳號並開始使用。"
-
msgid "As we continue to build more features for SAST, we'd love your feedback on the SAST configuration feature in %{linkStart}this issue%{linkEnd}."
msgstr "隨著我們繼續為 SAST å»ºç«‹æ›´å¤šåŠŸèƒ½ï¼Œæˆ‘å€‘å¸Œæœ›æ‚¨å° %{linkStart} 本期 %{linkEnd} 中的 SAST é…置功能æä¾›å饋。"
@@ -6522,6 +6609,9 @@ msgstr "è¦è‡ªå‹•æª¢æŸ¥çš„以逗號分隔的分支列表。留空以包括所有
msgid "AsanaService|User Personal Access Token. User must have access to the task. All comments are attributed to this user."
msgstr "使用者個人存å–令牌。使用者必須æ“有存å–任務的權é™ã€‚將會以使用者的身分進行所有留言。"
+msgid "Ask GitLab Duo"
+msgstr ""
+
msgid "Ask a maintainer to check the import status for more details."
msgstr "è¦æ±‚維護者檢查匯入狀態以å–得更多詳細資訊。"
@@ -6643,15 +6733,12 @@ msgstr "至少需è¦ä¸€å€‹ç¨‹å¼ç¢¼æ‰€æœ‰è€…核准,以便變更符åˆç›¸æ‡‰çš„
msgid "At least one field of %{one_of_required_fields} must be present"
msgstr "%{one_of_required_fields} 中至少è¦æœ‰ä¸€å€‹æ¬„ä½å­˜åœ¨"
+msgid "At least one of %{params} must be true"
+msgstr "至少必須有一個 %{params} 為真。"
+
msgid "At least one of group_id or project_id must be specified"
msgstr "必須指定至少一個group_id或 project_id"
-msgid "At least one of your Personal Access Tokens is expired. %{generate_new}"
-msgstr "您的個人存å–令牌中至少有一個已éŽæœŸã€‚ %{generate_new}"
-
-msgid "At least one of your Personal Access Tokens will expire soon. %{generate_new}"
-msgstr "您的個人存å–令牌中至少有一個å³å°‡éŽæœŸã€‚ %{generate_new}"
-
msgid "At risk"
msgstr "存在風險"
@@ -6741,8 +6828,8 @@ msgstr "AWS å€åŸŸ"
msgid "AuditStreams|AWS S3"
msgstr "AWS S3"
-msgid "AuditStreams|Access Key Xid"
-msgstr "å­˜å–金鑰 Xid"
+msgid "AuditStreams|Access Key ID"
+msgstr ""
msgid "AuditStreams|Active"
msgstr "活動"
@@ -6819,6 +6906,9 @@ msgstr "事件éŽæ¿¾ (å¯é¸)"
msgid "AuditStreams|Filter by audit event type"
msgstr "按審計事件類型éŽæ¿¾"
+msgid "AuditStreams|Filter by groups or projects"
+msgstr ""
+
msgid "AuditStreams|Google Cloud Logging"
msgstr "Google 雲日誌\n"
@@ -6855,6 +6945,12 @@ msgstr "祕密存å–金鑰"
msgid "AuditStreams|Select events"
msgstr "é¸å–事件"
+msgid "AuditStreams|Select namespace"
+msgstr ""
+
+msgid "AuditStreams|Select projects"
+msgstr ""
+
msgid "AuditStreams|Setup streaming for audit events"
msgstr "為審計事件設置事件æµç¨‹"
@@ -6948,6 +7044,9 @@ msgstr "經éŽèº«ä»½é©—證的 Web 速率é™åˆ¶æœŸï¼ˆä»¥ç§’為單ä½ï¼‰"
msgid "Authenticated web requests"
msgstr "經éŽèº«ä»½é©—證的 Web 請求"
+msgid "Authenticating..."
+msgstr ""
+
msgid "Authentication"
msgstr "èªè­‰"
@@ -7137,12 +7236,6 @@ msgstr "自動解決"
msgid "Automatically update this project's branches and tags from the upstream repository."
msgstr "從上游版本庫自動更新該專案的分支和標籤。"
-msgid "Automation"
-msgstr "自動化"
-
-msgid "Automation|Automation App"
-msgstr "自動化應用"
-
msgid "Autosave|Note"
msgstr "注æ„"
@@ -7167,12 +7260,18 @@ msgstr "å³å°‡ç§»é™¤é ­åƒã€‚確定繼續嗎?"
msgid "Average per day: %{average}"
msgstr "å¹³å‡æ¯å¤©: %{average}"
+msgid "Awaiting review"
+msgstr "等待審查"
+
msgid "Awaiting user signup"
msgstr "等待使用者註冊"
msgid "AwardEmoji|No emoji found."
msgstr "未找到表情符號。"
+msgid "B"
+msgstr ""
+
msgid "Back"
msgstr "返回"
@@ -7224,9 +7323,6 @@ msgstr "加入徽章"
msgid "Badges|Add new badge"
msgstr "新增徽章"
-msgid "Badges|Adding the badge failed, please check the entered URLs and try again."
-msgstr "加入徽章失敗,請檢查輸入的網å€ä¸¦é‡è©¦ã€‚"
-
msgid "Badges|Badge image URL"
msgstr "徽章圖片網å€"
@@ -7239,9 +7335,6 @@ msgstr "徽章已儲存。"
msgid "Badges|Delete badge?"
msgstr "刪除徽章嗎?"
-msgid "Badges|Deleting the badge failed, please try again."
-msgstr "刪除徽章失敗,請é‡è©¦ã€‚"
-
msgid "Badges|Edit badge"
msgstr "編輯徽章"
@@ -7251,9 +7344,18 @@ msgstr "輸入有效的網å€"
msgid "Badges|Example: %{exampleUrl}"
msgstr "範例: %{exampleUrl}"
+msgid "Badges|Failed to add new badge. Check the URLs, then try again."
+msgstr "新增徽章失敗,請檢查 URL,然後å†è©¦ä¸€æ¬¡ã€‚"
+
+msgid "Badges|Failed to delete the badge. Try again."
+msgstr "刪除徽章失敗,請å†è©¦ä¸€æ¬¡ã€‚"
+
msgid "Badges|Group Badge"
msgstr "群組徽章"
+msgid "Badges|If you delete this badge, you %{strongStart}cannot%{strongEnd} restore it."
+msgstr "若您刪除此徽章,您就%{strongStart}無法%{strongEnd}將其還原。"
+
msgid "Badges|Link"
msgstr "連çµ"
@@ -7287,18 +7389,21 @@ msgstr "徽章|支æŒ%{docsLinkStart}變é‡%{docsLinkEnd}:%{placeholders}"
msgid "Badges|The badge was deleted."
msgstr "徽章已刪除。"
-msgid "Badges|This group has no badges, start by creating a new one above."
-msgstr "該群組沒有徽章,請先在上é¢å»ºç«‹ä¸€å€‹æ–°å¾½ç« ã€‚"
-
-msgid "Badges|This project has no badges, start by creating a new one above."
-msgstr "該專案沒有徽章,請先在上é¢å»ºç«‹ä¸€å€‹æ–°å¾½ç« ã€‚"
+msgid "Badges|This group has no badges. Add an existing badge or create one."
+msgstr "此群組沒有徽章。新增既有的徽章或建立新的。"
-msgid "Badges|You are going to delete this badge. Deleted badges %{strongStart}cannot%{strongEnd} be restored."
-msgstr "徽章|您將刪除此徽章。已刪除的徽章 %{strongStart}將無法æ¢å¾©%{strongEnd}。"
+msgid "Badges|This project has no badges. Start by adding a new badge."
+msgstr "此專案沒有徽章。請先建立新徽章。"
msgid "Badges|Your badges"
msgstr "您的徽章"
+msgid "Bamboo build plan key (for example, `KEY`)."
+msgstr ""
+
+msgid "Bamboo root URL (for example, `https://bamboo.example.com`)."
+msgstr ""
+
msgid "BambooService|Atlassian Bamboo"
msgstr "Atlassian Bamboo"
@@ -7308,8 +7413,8 @@ msgstr "Bamboo URL"
msgid "BambooService|Bamboo build plan key."
msgstr "Bamboo 構建計劃密鑰。"
-msgid "BambooService|Bamboo service root URL."
-msgstr "Bamboo æœå‹™æ ¹ URL。"
+msgid "BambooService|Bamboo root URL."
+msgstr ""
msgid "BambooService|Enter new build key"
msgstr "輸入新的構建密鑰"
@@ -7323,8 +7428,8 @@ msgstr "BambooService | 使用 Atlassian Bamboo é‹è¡Œ CI/CD æµæ°´ç·šã€‚"
msgid "BambooService|Run CI/CD pipelines with Atlassian Bamboo. You must set up automatic revision labeling and a repository trigger in Bamboo. %{docs_link}"
msgstr "BambooService|使用 Atlassian Bamboo é‹è¡Œ CI/CD æµæ°´ç·šã€‚您必須在 Bamboo 中設置自動修訂標籤和儲存庫觸發器。 %{docs_link}"
-msgid "BambooService|The user with API access to the Bamboo server."
-msgstr "BambooService|å° Bamboo æœå‹™å™¨å…·æœ‰ API 訪å•æ¬Šé™çš„使用者。"
+msgid "BambooService|User with API access to the Bamboo server."
+msgstr ""
msgid "Banned"
msgstr "å·²å°éŽ–"
@@ -7428,9 +7533,6 @@ msgstr "在啟用此集æˆä¹‹å‰ï¼Œè«‹åœ¨ Google Chat 中為您希望從該項ç›
msgid "Before inserting code, be sure to read the comment that separated each code group."
msgstr "在æ’入代碼之å‰ï¼Œè«‹å‹™å¿…閱讀分隔æ¯å€‹ä»£ç¢¼ç¾¤çµ„的註解。"
-msgid "Before this can be merged, a Jira issue must be linked in the title or description"
-msgstr "在åˆä½µä¹‹å‰ï¼Œå¿…須在標題或æ述中éˆæŽ¥ Jira è­°é¡Œ"
-
msgid "Begin with the selected commit"
msgstr "從é¸å®šçš„æ交開始"
@@ -7510,7 +7612,7 @@ msgid "BillingPlans|5GB storage"
msgstr "5GB 存儲空間"
msgid "BillingPlans|@%{user_name} you are currently using the %{plan_name}."
-msgstr "計費計畫|%{user_name},您正在使用%{plan_name}計畫。"
+msgstr "%{user_name},您正在使用%{plan_name}計畫。"
msgid "BillingPlans|Advanced CI/CD"
msgstr "進階 CI/CD"
@@ -7558,13 +7660,13 @@ msgid "BillingPlans|Compliance automation"
msgstr "åˆè¦æ€§è‡ªå‹•åŒ–"
msgid "BillingPlans|Congratulations, your free trial is activated."
-msgstr "計費計畫|æ­å–œï¼Œæ‚¨çš„å…費試用計畫已啟用。"
+msgstr "æ­å–œï¼Œæ‚¨çš„å…費試用計畫已啟用。"
msgid "BillingPlans|Cross-team project management"
msgstr "跨團隊專案管ç†"
msgid "BillingPlans|End of availability for the Bronze Plan"
-msgstr "計費計畫|銅級方案已çµæŸ"
+msgstr "銅級方案已çµæŸ"
msgid "BillingPlans|Enhance team productivity and collaboration"
msgstr "æ高團隊生產力與å”åŒåˆä½œ"
@@ -7788,6 +7890,9 @@ msgstr "您ç¾åœ¨å¯ä»¥ä½¿ç”¨å…±äº«åŸ·è¡Œå™¨çš„å…費計算時間。"
msgid "Billings|Your account has been validated"
msgstr "您的帳號已經驗證"
+msgid "Billing|%{plan} Plan"
+msgstr ""
+
msgid "Billing|%{plan} SaaS Plan seats used"
msgstr "%{plan} SaaS 計劃已使用的席次"
@@ -7818,14 +7923,14 @@ msgstr "載入 GitLab 訂閱詳細資訊時發生錯誤。"
msgid "Billing|An error occurred while loading billable members list."
msgstr "載入計費æˆå“¡åˆ—表時發生錯誤。"
-msgid "Billing|An error occurred while loading details for the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "載入程å¼ç¢¼å»ºè­°é™„加元件的詳細訊æ¯æ™‚發生錯誤,如果å•é¡Œä»ç„¶å­˜åœ¨ï¼Œè«‹ %{supportLinkStart}è¯ç¹«æ”¯æ´äººå“¡%{supportLinkEnd}。"
+msgid "Billing|An error occurred while loading details for the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while loading pending members list"
msgstr "加載待定æˆå“¡æ¸…單時發生錯誤"
-msgid "Billing|An error occurred while loading users of the Code Suggestions add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
-msgstr "載入使用者程å¼ç¢¼å»ºè­°é™„加元件時發生錯誤,如果å•é¡Œä»ç„¶å­˜åœ¨ï¼Œè«‹ %{supportLinkStart}è¯ç¹« %{supportLinkEnd}支æ´éƒ¨é–€ã€‚"
+msgid "Billing|An error occurred while loading users of the Duo Pro add-on. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
+msgstr ""
msgid "Billing|An error occurred while removing a billable member."
msgstr "移除計費會員時發生錯誤。"
@@ -7842,11 +7947,11 @@ msgstr "直接會員"
msgid "Billing|Enter at least three characters to search."
msgstr "請輸入最少 3 個字元來æœå°‹ã€‚"
-msgid "Billing|Error assigning Code Suggestions add-on"
-msgstr "指派程å¼ç¢¼å»ºè­°é™„加元件時錯誤"
+msgid "Billing|Error assigning Duo Pro add-on"
+msgstr ""
-msgid "Billing|Error un-assigning Code Suggestions add-on"
-msgstr "å–消指派程å¼ç¢¼å»ºè­°é™„加元件時錯誤"
+msgid "Billing|Error un-assigning Duo Pro add-on"
+msgstr ""
msgid "Billing|Explore paid plans"
msgstr "ç€è¦½ä»˜è²»è¨ˆåŠƒ"
@@ -7885,12 +7990,6 @@ msgstr "將附加元件指派給該æˆå“¡æ™‚發生å•é¡Œï¼Œå¦‚æžœå•é¡Œä»ç„¶å­˜
msgid "Billing|Something went wrong when un-assigning the add-on to this member. If the problem persists, please %{supportLinkStart}contact support%{supportLinkEnd}."
msgstr "å–消指派該æˆå“¡çš„附加元件時發生å•é¡Œï¼Œå¦‚æžœå•é¡Œä»ç„¶å­˜åœ¨ï¼Œè«‹ %{supportLinkStart}è¯ç¹«æ”¯æ´äººå“¡%{supportLinkEnd}。"
-msgid "Billing|Subscription end"
-msgstr "訂閱çµæŸ"
-
-msgid "Billing|Subscription start"
-msgstr "訂閱開始"
-
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr "為了確ä¿åœ¨æ‚¨çš„試用期çµæŸæ™‚,所有的æˆå“¡éƒ½å¯ä»¥è¨ªå•è©²ç¾¤çµ„,您å¯ä»¥å‡ç´šåˆ°ä»˜è²»ç‰ˆã€‚"
@@ -7912,8 +8011,11 @@ msgstr "檢視等待中的核准"
msgid "Billing|You are about to remove user %{username} from your subscription. If you continue, the user will be removed from the %{namespace} group and all its subgroups and projects. This action can't be undone."
msgstr "您將è¦å¾žè¨‚閱中移除使用者%{username}。如果繼續,該使用者將從 %{namespace} 群組åŠå…¶æ‰€æœ‰å­çµ„和項目中刪除。此æ“作無法撤消。"
-msgid "Billing|You have assigned all available Code Suggestions add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
-msgstr "您已指派所有å¯ç”¨çš„程å¼ç¢¼å»ºè­°é™„加元件席次,如果您想購買更多席次,請 %{salesLinkStart}è¯ç¹«éŠ·å”®%{salesLinkEnd}。"
+msgid "Billing|You can upgrade to a paid tier to get access to more features."
+msgstr ""
+
+msgid "Billing|You have assigned all available Duo Pro add-on seats. Please %{salesLinkStart}contact sales%{salesLinkEnd} if you would like to purchase more seats."
+msgstr ""
msgid "Billing|Your group recently changed to use the Free plan. %{over_limit_message} You can free up space for new members by removing those who no longer need access or toggling them to over-limit. To get an unlimited number of members, you can %{link_start}upgrade%{link_end} to a paid tier."
msgstr "您的群組最近更改為使用å…費計劃。 %{over_limit_message} 您å¯ä»¥é€šéŽåˆªé™¤ä¸å†éœ€è¦è¨ªå•æ¬Šé™çš„æˆå“¡æˆ–將其切æ›ç‚ºè¶…é™ä¾†ç‚ºæ–°æˆå“¡é‡‹æ”¾ç©ºé–“。è¦ç²å¾—ç„¡é™æ•¸é‡çš„會員,您å¯ä»¥ %{link_start}å‡ç´š%{link_end} 到付費等級。"
@@ -8103,12 +8205,6 @@ msgstr[0] "+ %{displayedIssuablesCount} 更多 %{issuableType}"
msgid "Boards|An error occurred while creating the %{issuableType}. Please try again."
msgstr "在建立 %{issuableType} çš„éŽç¨‹ä¸­ç™¼ç”ŸéŒ¯èª¤ï¼Œè«‹é‡è©¦ã€‚"
-msgid "Boards|An error occurred while creating the epic. Please try again."
-msgstr "建立å²è©© (epic) 時發生錯誤,請é‡è©¦ã€‚"
-
-msgid "Boards|An error occurred while creating the issue. Please try again."
-msgstr "建立議題時發生錯誤。請é‡è©¦ã€‚"
-
msgid "Boards|An error occurred while creating the list. Please try again."
msgstr "建立清單時發生錯誤。請é‡è©¦ã€‚"
@@ -8127,9 +8223,6 @@ msgstr "讀å–看æ¿æ™‚發生錯誤,請é‡è©¦ã€‚"
msgid "Boards|An error occurred while fetching boards. Please try again."
msgstr "讀å–看æ¿æ™‚發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "Boards|An error occurred while fetching child groups. Please try again."
-msgstr "抓å–å­ç¾¤çµ„時發生錯誤。請é‡è©¦ã€‚"
-
msgid "Boards|An error occurred while fetching epics. Please try again."
msgstr "在讀å–å²è©©(epics)時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
@@ -8139,18 +8232,12 @@ msgstr "抓å–群組專案時發生錯誤。請é‡è©¦ã€‚"
msgid "Boards|An error occurred while fetching groups. Please try again."
msgstr "æ“·å–群組時發生錯誤。請é‡è©¦ã€‚"
-msgid "Boards|An error occurred while fetching issues. Please reload the page."
-msgstr "抓å–議題時發生錯誤。請é‡æ–°è¼‰å…¥é é¢ã€‚"
-
msgid "Boards|An error occurred while fetching issues. Please try again."
msgstr "在讀å–議題時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
msgid "Boards|An error occurred while fetching iterations. Please try again."
msgstr "讀å–迭代時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "Boards|An error occurred while fetching labels. Please reload the page."
-msgstr "抓å–標籤時發生錯誤。請é‡æ–°è¼‰å…¥é é¢ã€‚"
-
msgid "Boards|An error occurred while fetching labels. Please try again."
msgstr "讀å–標籤時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
@@ -8163,51 +8250,27 @@ msgstr "讀å–里程碑時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
msgid "Boards|An error occurred while fetching recent boards. Please try again."
msgstr "讀å–最新的看版時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "Boards|An error occurred while fetching the board epics. Please reload the page."
-msgstr "æ“·å–看æ¿å²è©© (epic) 時發生錯誤,請é‡æ–°è¼‰å…¥é é¢ã€‚"
-
-msgid "Boards|An error occurred while fetching the board issues. Please reload the page."
-msgstr "抓å–看æ¿è­°é¡Œæ™‚發生錯誤。請é‡æ–°è¼‰å…¥é é¢ã€‚"
-
msgid "Boards|An error occurred while fetching the board lists. Please reload the page."
msgstr "抓å–看æ¿æ¸…單時發生錯誤。請é‡æ–°è¼‰å…¥é é¢ã€‚"
-msgid "Boards|An error occurred while fetching the board swimlanes. Please reload the page."
-msgstr "抓å–çœ‹æ¿ swimlanes 時發生錯誤。請é‡æ–°åŠ è¼‰é é¢ã€‚"
-
-msgid "Boards|An error occurred while fetching the board. Please reload the page."
-msgstr "抓å–看æ¿æ™‚發生錯誤。請é‡æ–°åŠ è¼‰é é¢ã€‚"
-
msgid "Boards|An error occurred while fetching unassigned issues. Please try again."
msgstr "讀å–尚未å—指派的議題時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
msgid "Boards|An error occurred while fetching users. Please try again."
msgstr "讀å–使用者時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "Boards|An error occurred while generating lists. Please reload the page."
-msgstr "產生清單時發生錯誤。請é‡æ–°åŠ è¼‰é é¢ã€‚"
-
msgid "Boards|An error occurred while moving the %{issuableType}. Please try again."
msgstr "移動 %{issuableType} 時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "Boards|An error occurred while moving the epic. Please try again."
-msgstr "移動å²è©© (epic) 時發生錯誤。請é‡è©¦ã€‚"
-
msgid "Boards|An error occurred while moving the issue. Please try again."
msgstr "移動å•é¡Œ (issue)時發生錯誤。請é‡è©¦ã€‚"
msgid "Boards|An error occurred while moving the list. Please try again."
msgstr "移動列表時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "Boards|An error occurred while removing the list. Please try again."
-msgstr "移動清單時發生錯誤。請é‡è©¦ã€‚"
-
msgid "Boards|An error occurred while selecting the card. Please try again."
msgstr "é¸å–å¡ç‰‡æ™‚發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "Boards|An error occurred while updating the board list. Please try again."
-msgstr "更新看æ¿æ¸…單時發生錯誤。請é‡è©¦ã€‚"
-
msgid "Boards|An error occurred while updating the list. Please try again."
msgstr "更新列表時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
@@ -8215,6 +8278,9 @@ msgid "Boards|Blocked by %{blockedByCount} %{issuableType}"
msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] "被 %{blockedByCount} %{issuableType}ç¦ç”¨"
+msgid "Boards|Card options"
+msgstr ""
+
msgid "Boards|Collapse"
msgstr "收起"
@@ -8236,9 +8302,6 @@ msgstr "展開"
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr "無法抓å–ç¦ç”¨çš„ %{issuableType}"
-msgid "Boards|Move card"
-msgstr "移動å¡ç‰‡"
-
msgid "Boards|Move to end of list"
msgstr "移動到列表末尾"
@@ -8332,6 +8395,9 @@ msgstr "分支已被採用"
msgid "Branch name"
msgstr "分支å稱"
+msgid "Branch name pattern"
+msgstr ""
+
msgid "Branch name template"
msgstr "分支å稱範本"
@@ -8341,6 +8407,18 @@ msgstr "分支未被載入 - %{branchId}"
msgid "Branch rules"
msgstr "分支è¦å‰‡"
+msgid "Branch target"
+msgstr ""
+
+msgid "Branch target created."
+msgstr ""
+
+msgid "Branch target deleted."
+msgstr ""
+
+msgid "Branch target does not exist"
+msgstr ""
+
msgid "BranchRules|%{linkStart}Wildcards%{linkEnd} such as *-stable or production/ are supported"
msgstr "%{linkStart}è¬ç”¨å­—å…ƒ%{linkEnd} å¯æ”¯æ´å¦‚ *-stable 或 production/* 。"
@@ -8407,15 +8485,27 @@ msgstr "分支"
msgid "BranchRules|Branch name or pattern"
msgstr "分支å稱或樣å¼"
+msgid "BranchRules|Branch rule created."
+msgstr ""
+
msgid "BranchRules|Branch rules details"
msgstr "分支è¦å‰‡è©³ç´°è³‡è¨Š"
+msgid "BranchRules|Cancel"
+msgstr ""
+
msgid "BranchRules|Check for a status response in merge requests. Failures do not block merges. %{linkStart}Learn more.%{linkEnd}"
msgstr "在åˆä½µè«‹æ±‚中檢查狀態回應。失敗並ä¸æœƒé˜»æ­¢åˆä½µã€‚%{linkStart}å–得更多資訊。%{linkEnd}"
+msgid "BranchRules|Create branch rule"
+msgstr ""
+
msgid "BranchRules|Create protected branch"
msgstr "建立å—ä¿è­·åˆ†æ”¯"
+msgid "BranchRules|Create wildcard"
+msgstr ""
+
msgid "BranchRules|Create wildcard: %{searchTerm}"
msgstr "建立è¬ç”¨å­—元:%{searchTerm}"
@@ -8473,6 +8563,12 @@ msgstr "需è¦ç¨‹å¼ç¢¼æ“有者的核准。"
msgid "BranchRules|Roles"
msgstr "角色"
+msgid "BranchRules|Select Branch or create wildcard"
+msgstr ""
+
+msgid "BranchRules|Something went wrong while creating branch rule."
+msgstr ""
+
msgid "BranchRules|Status checks"
msgstr "狀態檢查"
@@ -8491,6 +8587,9 @@ msgstr "使用者"
msgid "BranchRules|View details"
msgstr "檢視詳細資訊"
+msgid "BranchRules|Wildcards such as *-stable or production/* are supported"
+msgstr ""
+
msgid "BranchRules|default"
msgstr "é è¨­"
@@ -8503,6 +8602,9 @@ msgstr "分支"
msgid "Branches matching this string are retargeted. Wildcards are supported, and names are case-sensitive."
msgstr "與此字串相符的分支將被é‡å®šå‘,支æ´è¬ç”¨å­—元,並且å稱å€åˆ†å¤§å°å¯«ã€‚"
+msgid "Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`."
+msgstr ""
+
msgid "Branches: %{source_branch} to %{target_branch}"
msgstr "分支:%{source_branch} 到 %{target_branch}"
@@ -8803,6 +8905,12 @@ msgstr "ç€è¦½æ–‡ä»¶"
msgid "Browse templates"
msgstr "ç€è¦½ç¯„本"
+msgid "Bugs created per month by Priority"
+msgstr "æ¯å€‹æœˆæŒ‰å„ªå…ˆé †åºå»ºç«‹çš„錯誤"
+
+msgid "Bugs created per month by Severity"
+msgstr "æ¯å€‹æœˆæŒ‰åš´é‡ç¨‹åº¦å»ºç«‹çš„錯誤"
+
msgid "Build cannot be erased"
msgstr "建置無法抹除"
@@ -8836,9 +8944,18 @@ msgstr "%{feature}ï¼ˆéœ€è¦ v%{version})"
msgid "BulkImport|Be aware of %{linkStart}visibility rules%{linkEnd} when importing groups."
msgstr "åŒ¯å…¥ç¾¤çµ„æ™‚è«‹æ³¨æ„ %{linkStart}å¯è¦‹æ€§è¦å‰‡%{linkEnd}。"
+msgid "BulkImport|Check that the source instance base URL and the personal access token meet the necessary requirements."
+msgstr "請確èªä¾†æºå¯¦ä¾‹çš„基本 URL 和個人訪å•ä»¤ç‰Œæ˜¯å¦ç¬¦åˆå¿…è¦è¦æ±‚。"
+
msgid "BulkImport|Destination"
msgstr "BulkImport|目的地"
+msgid "BulkImport|Direct transfer"
+msgstr "直接傳輸"
+
+msgid "BulkImport|Direct transfer history"
+msgstr "直接傳輸歷å²è¨˜éŒ„"
+
msgid "BulkImport|Direct transfer maximum download file size (MiB)"
msgstr "ç›´æŽ¥å‚³è¼¸æœ€å¤§ä¸‹è¼‰æ–‡ä»¶å¤§å° (MiB)"
@@ -8848,17 +8965,26 @@ msgstr "BulkImport|ä¾ç¾¤çµ„來æºç¯©é¸"
msgid "BulkImport|Following data will not be migrated: %{bullets} Contact system administrator of %{host} to upgrade GitLab if you need this data in your migration"
msgstr "以下資料將ä¸æœƒè¢«é·ç§»ï¼š%{bullets} 如果您在é·ç§»ä¸­éœ€è¦æ­¤è³‡æ–™ï¼Œè«‹è¯ç¹« %{host} 系統管ç†å“¡å‡ç´š GitLab"
-msgid "BulkImport|GitLab Migration history"
-msgstr "GitLab é·ç§»æ­·å²ç´€éŒ„"
+msgid "BulkImport|Group import disabled on source or destination instance. Ask an administrator to enable it on both instances and try again."
+msgstr "來æºæˆ–目的地實例上已åœç”¨ç¾¤çµ„匯入,請求管ç†å“¡åœ¨å…©å€‹å¯¦ä¾‹ä¸Šå•Ÿç”¨å®ƒï¼Œç„¶å¾Œé‡è©¦ã€‚"
msgid "BulkImport|History"
msgstr "BulkImport|æ­·å²"
+msgid "BulkImport|Import failed. '%{path}' already exists. Change the destination and try again."
+msgstr "匯入失敗,'%{path}'已經存在,更改目的地,然後é‡è©¦ã€‚"
+
+msgid "BulkImport|Import failed. Destination '%{destination}' is invalid, or you don't have permission."
+msgstr "匯入失敗,目的地 '%{destination}' 無效,或者您沒有權é™ã€‚"
+
+msgid "BulkImport|Import failed. Destination URL %{url}"
+msgstr "åŒ¯å…¥å¤±æ•—ï¼Œç›®æ¨™ç¶²å€ %{url}"
+
msgid "BulkImport|Import failed: Destination cannot be a subgroup of the source group. Change the destination and try again."
msgstr "BulkImport|匯入失敗:目的地ä¸èƒ½æ˜¯ä¾†æºç¾¤çµ„çš„å­ç¾¤çµ„。請變更目的地,並é‡è©¦ã€‚"
-msgid "BulkImport|Import groups from GitLab"
-msgstr "BulkImport|從 GitLab 匯入群組"
+msgid "BulkImport|Import groups by direct transfer"
+msgstr "由直接傳輸匯入群組"
msgid "BulkImport|Import is finished. Pick another name for re-import"
msgstr "BulkImport|匯入已完æˆã€‚é¸æ“‡å¦ä¸€å€‹å稱以é‡æ–°åŒ¯å…¥"
@@ -8875,6 +9001,12 @@ msgstr "匯入專案為%{docsLinkStart}測試版%{docsLinkEnd}功能。"
msgid "BulkImport|Importing the group failed."
msgstr "匯入群組失敗。"
+msgid "BulkImport|Invalid source URL. Enter only the base URL of the source GitLab instance."
+msgstr "無效的來æºURL,åªèƒ½è¼¸å…¥ä¾†æºGitLab實例的基本URL。"
+
+msgid "BulkImport|Items that failed to be imported for %{id}"
+msgstr "導入失敗的項目為 %{id}"
+
msgid "BulkImport|Last imported to %{link}"
msgstr "上次匯入到 %{link}"
@@ -8929,8 +9061,11 @@ msgstr "來æº"
msgid "BulkImport|Source group"
msgstr "來æºç¾¤çµ„"
-msgid "BulkImport|Template / File-based import / GitLab Migration"
-msgstr "模版 / 基於文件匯入 / GitLab é·ç§»"
+msgid "BulkImport|Template / File-based import / Direct transfer"
+msgstr "範本 / 以文件型å¼åŒ¯å…¥ / 直接傳輸"
+
+msgid "BulkImport|Unsupported GitLab version. Minimum supported version is '%{version}'."
+msgstr "ä¸æ”¯æ´çš„GitLab版本,最低支æ´ç‰ˆæœ¬æ˜¯'%{version}'。"
msgid "BulkImport|Update of import statuses with realtime changes failed"
msgstr "更新實時變動的匯入狀態失敗"
@@ -8992,9 +9127,6 @@ msgstr "購買更多æµæ°´ç·šåˆ†é˜æ•¸"
msgid "By %{user_name}"
msgstr "ç”± %{user_name}"
-msgid "By authenticating with an account tied to an Enterprise e-mail address, it is understood that this account is an Enterprise User. "
-msgstr "通éŽä½¿ç”¨èˆ‡ä¼æ¥­é›»å­éƒµä»¶åœ°å€ç¶å®šçš„帳號進行身份驗證,å¯ä»¥å¾—知該帳號是ä¼æ¥­ä½¿ç”¨è€…。 "
-
msgid "By default, all projects and groups use the global notifications setting."
msgstr "é è¨­æƒ…æ³ä¸‹ï¼Œæ‰€æœ‰å°ˆæ¡ˆå’Œç¾¤çµ„都使用全局通知設置。"
@@ -9134,6 +9266,9 @@ msgstr "所有項目é è¨­ä½¿ç”¨Auto DevOpsæµæ°´ç·š"
msgid "CICD|Deployment strategy"
msgstr "部署策略"
+msgid "CICD|Developer"
+msgstr "開發者"
+
msgid "CICD|Disabling this feature is a permanent change."
msgstr "ç¦ç”¨è©²åŠŸèƒ½æ˜¯æ°¸ä¹…性的變更。"
@@ -9155,6 +9290,12 @@ msgstr "é™åˆ¶ %{italicStart} 從 %{italicEnd} 該專案存å–(已棄用)"
msgid "CICD|Limit access %{italicStart}to%{italicEnd} this project"
msgstr "é™åˆ¶ %{italicStart} å° %{italicEnd} 該專案的存å–"
+msgid "CICD|Maintainer"
+msgstr "維護者"
+
+msgid "CICD|Pipelines and jobs cannot be cancelled"
+msgstr "æµæ°´ç·šå’Œä½œæ¥­ç„¡æ³•è¢«å–消"
+
msgid "CICD|Prevent CI/CD job tokens from this project from being used to access other projects unless the other project is added to the allowlist. It is a security risk to disable this feature, because unauthorized projects might attempt to retrieve an active token and access the API. %{linkStart}Learn more%{linkEnd}."
msgstr "除éžå°‡å…¶ä»–專案加入到å…許清單中,å¦å‰‡ç¦æ­¢ä½¿ç”¨æ­¤å°ˆæ¡ˆçš„ CI/CD 作業令牌來存å–其他專案。ç¦ç”¨æ­¤åŠŸèƒ½å°‡å¸¶ä¾†å®‰å…¨é¢¨éšªï¼Œå› ç‚ºæœªç¶“授權的專案å¯èƒ½æœƒå˜—試擷å–æœ‰æ•ˆçš„ä»¤ç‰Œä¸¦å­˜å– API,%{linkStart}了解更多%{linkEnd}。"
@@ -9218,18 +9359,6 @@ msgstr "申請 CVE ID"
msgid "CVE|Why Request a CVE ID?"
msgstr "為什麼è¦ç”³è«‹ä¸€å€‹ CVE ID?"
-msgid "CVS|By enabling this feature, you accept the %{linkStart}Testing Terms of Use%{linkEnd}"
-msgstr "啟用此功能å³è¡¨ç¤ºæ‚¨æŽ¥å— %{linkStart}測試使用æ¢æ¬¾%{linkEnd}"
-
-msgid "CVS|Continuous Vulnerability Scan"
-msgstr "æŒçºŒæ€§æ¼æ´žæŽƒæ"
-
-msgid "CVS|Detect vulnerabilities outside a pipeline as new data is added to the GitLab Advisory Database."
-msgstr "在將新資料加入到GitLab咨詢資料庫時,檢測æµæ°´ç·šå¤–çš„æ¼æ´žã€‚"
-
-msgid "CVS|Toggle CVS"
-msgstr "åˆ‡æ› CVS"
-
msgid "Cadence is not automated"
msgstr "Cadence ä¸æ˜¯è‡ªå‹•åŒ–çš„"
@@ -9248,18 +9377,18 @@ msgstr "Campfire å­åŸŸï¼ˆå¯é¸ï¼‰"
msgid "Campfire token"
msgstr "Campfire 令牌"
+msgid "CampfireService|%{code_open}.campfirenow.com%{code_close} subdomain."
+msgstr ""
+
msgid "CampfireService|API authentication token from Campfire."
msgstr "來自 Campfire 的 API 身份驗證令牌。"
-msgid "CampfireService|From the end of the room URL."
-msgstr "從 room URL 的末尾開始。"
+msgid "CampfireService|ID portion of the Campfire room URL."
+msgstr ""
msgid "CampfireService|Send notifications about push events to Campfire chat rooms. %{docs_link}"
msgstr "å‘ Campfire èŠå¤©å®¤ç™¼é€æœ‰é—œæŽ¨é€äº‹ä»¶çš„通知。 %{docs_link}"
-msgid "CampfireService|The %{code_open}.campfirenow.com%{code_close} subdomain."
-msgstr "%{code_open}.campfirenow.com%{code_close} å­åŸŸå。"
-
msgid "Can be manually deployed to"
msgstr "å¯ä»¥æ‰‹å‹•éƒ¨ç½²åˆ°"
@@ -9269,6 +9398,9 @@ msgstr "å¯ä»¥å»ºç«‹æœ€ä¸Šå±¤ç¾¤çµ„:"
msgid "Can not delete primary training"
msgstr "ä¸èƒ½åˆªé™¤åˆç´šåŸ¹è¨“"
+msgid "Can only be present for group level value streams"
+msgstr "åªèƒ½å‡ºç¾åœ¨ç¾¤çµ„層級的價值æµä¸­"
+
msgid "Can't apply as the source branch was deleted."
msgstr "由於來æºåˆ†æ”¯å·²åˆªé™¤ï¼Œå› æ­¤ç„¡æ³•å¥—用。"
@@ -9719,6 +9851,9 @@ msgstr "在%{duration}後"
msgid "ChatMessage|in %{project_link}"
msgstr "在%{project_link}中"
+msgid "Check"
+msgstr ""
+
msgid "Check again"
msgstr "å†æ¬¡æª¢æŸ¥"
@@ -9829,6 +9964,9 @@ msgstr "發生未知錯誤,請é‡æ–°æ•´ç†æ­¤é é¢å†è©¦ã€‚"
msgid "Checkout|Billing address"
msgstr "帳單地å€"
+msgid "Checkout|Billing contact"
+msgstr ""
+
msgid "Checkout|CI minutes"
msgstr "CI 分é˜"
@@ -9841,6 +9979,9 @@ msgstr " çµå¸³"
msgid "Checkout|City"
msgstr "城市"
+msgid "Checkout|Company information"
+msgstr ""
+
msgid "Checkout|Compute pack"
msgstr "計算包"
@@ -9853,6 +9994,9 @@ msgstr "確èªè³¼è²·"
msgid "Checkout|Confirming..."
msgstr "正在確èª..."
+msgid "Checkout|Contact information"
+msgstr ""
+
msgid "Checkout|Continue to billing"
msgstr "繼續計費"
@@ -9913,6 +10057,9 @@ msgstr "群組"
msgid "Checkout|Invalid coupon code. Enter a valid coupon code."
msgstr "優惠券代碼無效。請輸入有效的優惠券代碼。"
+msgid "Checkout|Manage the subscription and billing contacts for your billing account in the %{customersPortalLinkStart}Customers Portal%{customersPortalLinkEnd}. Learn more about %{manageContactsLinkStart}how to manage your contacts%{manageContactsLinkEnd}."
+msgstr ""
+
msgid "Checkout|Must be %{minimumNumberOfUsers} (your seats in use) or more."
msgstr "此數字必須為 %{minimumNumberOfUsers} (使用中的席ä½æ•¸ï¼‰æˆ–更多。"
@@ -9970,6 +10117,9 @@ msgstr "è¡—é“地å€"
msgid "Checkout|Submitting the credit card form failed with code %{errorCode}: %{errorMessage}"
msgstr "æ交信用å¡è¡¨æ ¼å¤±æ•—,錯誤碼 %{errorCode}: %{errorMessage}"
+msgid "Checkout|Subscription contact"
+msgstr ""
+
msgid "Checkout|Subscription details"
msgstr "訂閱詳細資訊"
@@ -9982,6 +10132,9 @@ msgstr "æˆåŠŸ: 訂閱"
msgid "Checkout|Tax"
msgstr "稅é¡"
+msgid "Checkout|Tax ID"
+msgstr ""
+
msgid "Checkout|Total"
msgstr "總計"
@@ -10051,9 +10204,6 @@ msgstr "é¸æ“‡æ–‡ä»¶..."
msgid "Choose a file"
msgstr "é¸æ“‡ä¸€å€‹æ–‡ä»¶"
-msgid "Choose a group"
-msgstr "é¸æ“‡ä¸€å€‹ç¾¤çµ„"
-
msgid "Choose a template"
msgstr "é¸æ“‡ä¸€å€‹ç¯„本"
@@ -10117,6 +10267,9 @@ msgstr "ç²å–此資æºçš„元件時發生錯誤"
msgid "CiCatalogComponent|This tab displays auto-collected information about the components in the repository, but no information was found."
msgstr "這個標籤顯示了版本庫中元件的自動收集資訊,但未找到任何資訊。"
+msgid "CiCatalog|All"
+msgstr ""
+
msgid "CiCatalog|Back to the CI/CD Catalog"
msgstr "返回 CI/CD 目錄"
@@ -10135,8 +10288,11 @@ msgstr "元件"
msgid "CiCatalog|Create a pipeline component repository and make reusing pipeline configurations faster and easier."
msgstr "建立æµæ°´ç·šå…ƒä»¶ç‰ˆæœ¬åº«ï¼Œä½¿é‡è¤‡ä½¿ç”¨æµæ°´ç·šé…置更快更簡單。"
-msgid "CiCatalog|Discover CI configuration resources for a seamless CI/CD experience."
-msgstr "查找CI é…置資æºä»¥å¯¦ç¾ç„¡ç¸« CI/CD 體驗。"
+msgid "CiCatalog|Discover CI/CD components that can improve your pipeline with additional functionality."
+msgstr "ç¾å¯ä»¥æ”¹å–„您的æµæ°´ç·šä¸¦å¢žåŠ åŠŸèƒ½çš„CI/CD元件。"
+
+msgid "CiCatalog|Edit your search and try again. Or %{linkStart}learn to create a component repository%{linkEnd}."
+msgstr "編輯您的查尋並且é‡è©¦ï¼Œæˆ– %{linkStart}學習建立組件庫%{linkEnd}。"
msgid "CiCatalog|Get started with the CI/CD Catalog"
msgstr "開始使用 CI/CD 目錄"
@@ -10147,18 +10303,15 @@ msgstr "å‰å¾€é€™å€‹å°ˆæ¡ˆ"
msgid "CiCatalog|Last release at %{date}"
msgstr "最後發佈於 %{date}"
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource"
-msgstr "將專案標示為 CI/CD 目錄資æº"
-
-msgid "CiCatalog|Mark project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
-msgstr "將專案標示為 CI/CD 目錄資æºï¼Œ%{linkStart}什麼是 CI/CD 目錄?%{linkEnd}"
-
msgid "CiCatalog|No component available"
msgstr "沒有å¯ç”¨çš„元件"
msgid "CiCatalog|No release available"
msgstr "沒有å¯ç”¨çš„發布版本"
+msgid "CiCatalog|No result found"
+msgstr "未找到çµæžœ"
+
msgid "CiCatalog|Page %{currentPage} of %{totalPage}"
msgstr "第 %{currentPage} é ï¼Œå…± %{totalPage} é ã€‚"
@@ -10168,26 +10321,47 @@ msgstr "讀我檔案"
msgid "CiCatalog|Released %{timeAgo} by %{author}"
msgstr "由 %{author} 於 %{timeAgo} 發布"
-msgid "CiCatalog|Repositories of pipeline components available in this namespace."
-msgstr "此命å空間中å¯ç”¨çš„æµæ°´ç·šå…ƒä»¶ç‰ˆæœ¬åº«ã€‚"
+msgid "CiCatalog|Remove from the CI/CD catalog"
+msgstr "從 CI/CD 目錄移除"
+
+msgid "CiCatalog|Remove project from the CI/CD Catalog?"
+msgstr "從 CI/CD 目錄移除專案?"
+
+msgid "CiCatalog|Search must be at least 3 characters"
+msgstr "æŸ¥å°‹å¿…é ˆè‡³å°‘åŒ…å« 3 個字元"
-msgid "CiCatalog|The project must contain a README.md file and a template.yml file. When enabled, the repository is available in the CI/CD Catalog."
-msgstr "該專案必須包å«ä¸€å€‹ readme.md 文件和 template.yml 文件,啟用後,該版本庫å¯åœ¨ CI/CD 目錄中使用。"
+msgid "CiCatalog|Set project as a CI/CD Catalog resource. %{linkStart}What is the CI/CD Catalog?%{linkEnd}"
+msgstr "將專案設定為 CI/CD 目錄資æºï¼Œ%{linkStart}什麼是 CI/CD 目錄?%{linkEnd}"
+
+msgid "CiCatalog|The CI/CD components in this project can be published in the CI/CD Catalog by creating a release. We recommend using the %{linkStart}release%{linkEnd} keyword in a CI/CD job to release new component versions for the Catalog."
+msgstr ""
+
+msgid "CiCatalog|The project and any released versions will be removed from the CI/CD Catalog. If you re-enable this toggle, the project's existing releases are not re-added to the catalog. You must %{linkStart}create a new release%{linkEnd}."
+msgstr "專案與任何已釋出的版本將從 CI/CD 目錄中移除。若您é‡æ–°å•Ÿç”¨æ­¤é–‹é—œï¼Œå‰‡å°ˆæ¡ˆçš„既有版本將ä¸æœƒé‡æ–°æ–°å¢žè‡³ç›®éŒ„。您必須%{linkStart}建立新版本%{linkEnd}。"
+
+msgid "CiCatalog|The project will be findable in the CI/CD Catalog after the project has at least one release."
+msgstr "專案釋出至少一個版本後,å³å¯åœ¨ CI/CD 目錄中找到該專案。"
msgid "CiCatalog|There was a problem fetching the CI/CD Catalog setting."
msgstr "è®€å– CI/CD 目錄設定時出ç¾å•é¡Œã€‚"
-msgid "CiCatalog|There was a problem marking the project as a CI/CD Catalog resource."
-msgstr "將專案標示為 CI/CD 目錄資æºæ™‚出ç¾å•é¡Œã€‚"
-
msgid "CiCatalog|There was an error fetching CI/CD Catalog resources."
msgstr "æ“·å– CI/CD 目錄資æºæ™‚發生錯誤。"
+msgid "CiCatalog|There was an error fetching the CI/CD Catalog resource count."
+msgstr ""
+
+msgid "CiCatalog|This project is no longer a CI/CD Catalog resource."
+msgstr "此專案ä¸å†æ˜¯ CI/CD 目錄資æºã€‚"
+
msgid "CiCatalog|This project is now a CI/CD Catalog resource."
msgstr "該專案ç¾åœ¨æ˜¯ CI/CD 目錄資æºã€‚"
-msgid "CiCatalog|This project will be marked as a CI/CD Catalog resource and will be visible in the CI/CD Catalog. This action is not reversible."
-msgstr "這個專案將被標示為 CI/CD 目錄資æºï¼Œä¸¦ä¸”會在 CI/CD 目錄中å¯è¦‹ï¼Œé€™å€‹æ“作是ä¸å¯é€†çš„。"
+msgid "CiCatalog|Unable to remove project as a CI/CD Catalog resource."
+msgstr "無法將專案作為 CI/CD 目錄資æºç§»é™¤ã€‚"
+
+msgid "CiCatalog|Unable to set project as a CI/CD Catalog resource."
+msgstr "無法將專案設定為 CI/CD 目錄資æºã€‚"
msgid "CiCatalog|Unreleased"
msgstr "未發布"
@@ -10195,6 +10369,9 @@ msgstr "未發布"
msgid "CiCatalog|We want to help you create and manage pipeline component repositories, while also making it easier to reuse pipeline configurations. Let us know how we're doing!"
msgstr "我們希望å”助您建立與管ç†æµæ°´ç·šå…ƒä»¶ç‰ˆæœ¬åº«ï¼ŒåŒæ™‚é‚„å¯ä»¥æ›´è¼•é¬†åœ°é‡ç”¨æµæ°´ç·šé…置,讓我們知é“我們的表ç¾å¦‚何ï¼"
+msgid "CiCatalog|Your resources"
+msgstr ""
+
msgid "CiCdAnalytics|Date range: %{range}"
msgstr "日期範åœï¼š%{range}"
@@ -10285,6 +10462,18 @@ msgstr "等待中"
msgid "CiStatusText|Warning"
msgstr "警告"
+msgid "CiVariables|%{code_open}Expanded:%{code_close} Variables with %{code_open}$%{code_close} will be treated as the start of a reference to another variable."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements."
+msgstr ""
+
+msgid "CiVariables|%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags."
+msgstr ""
+
+msgid "CiVariables|A variable key can only contain letters, numbers, and '_'."
+msgstr "變數éµåƒ…能包å«å­—æ¯ã€æ•¸å­—與「_ã€ã€‚"
+
msgid "CiVariables|Add variable"
msgstr "新增變數"
@@ -10372,14 +10561,23 @@ msgstr "指定è¦åœ¨æ­¤æ¬¡åŸ·è¡Œä¸­ä½¿ç”¨çš„變數值,é è¨­ä½¿ç”¨é…置文件
msgid "CiVariables|State"
msgstr "狀態"
+msgid "CiVariables|The value must have at least %{charsAmount} characters."
+msgstr "è©²æ•¸å€¼å¿…é ˆè‡³å°‘åŒ…å« %{charsAmount} 個字元。"
+
msgid "CiVariables|There was an error fetching the inherited CI variables."
msgstr "讀å–繼承的 CI 變數時出ç¾éŒ¯èª¤ã€‚"
msgid "CiVariables|This %{entity} has %{currentVariableCount} defined CI/CD variables. The maximum number of variables per %{entity} is %{maxVariableLimit}. To add new variables, you must reduce the number of defined variables."
msgstr "該 %{entity} 具有 %{currentVariableCount} 已定義的 CI/CD 變數,æ¯å€‹ %{entity} 的最大變數數é‡ç‚º %{maxVariableLimit},è¦å¢žåŠ æ–°çš„變數,您必須先減少已定義變數的數é‡ã€‚"
-msgid "CiVariables|This variable value does not meet the masking requirements."
-msgstr "此變數的值ä¸ç¬¦åˆé®ç½©è¦æ±‚。"
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars} and whitespace characters."
+msgstr "無法é®è”½è©²æ•¸å€¼ï¼Œå› ç‚ºå®ƒåŒ…å«ä»¥ä¸‹å­—元:%{unsupportedChars} 與空格字元。"
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: %{unsupportedChars}."
+msgstr "無法é®è”½è©²æ•¸å€¼ï¼Œå› ç‚ºå®ƒåŒ…å«ä»¥ä¸‹å­—元:%{unsupportedChars}。"
+
+msgid "CiVariables|This value cannot be masked because it contains the following characters: whitespace characters."
+msgstr "無法é®è”½è©²æ•¸å€¼ï¼Œå› ç‚ºå®ƒåŒ…å«ä»¥ä¸‹å­—元:空白字元。"
msgid "CiVariables|Type"
msgstr "é¡žåž‹"
@@ -10402,11 +10600,23 @@ msgstr "變數將在作業紀錄中被é®è”½ã€‚需è¦å€¼ä¾†æ»¿è¶³æ­£è¦è¡¨ç¤ºå¼
msgid "CiVariables|Variables"
msgstr "變數"
+msgid "CiVariables|Variables can be accidentally exposed in a job log, or maliciously sent to a third party server. The masked variable feature can help reduce the risk of accidentally exposing variable values, but is not a guaranteed method to prevent malicious users from accessing variables."
+msgstr ""
+
+msgid "CiVariables|Variables can have several attributes."
+msgstr ""
+
msgid "CiVariables|Variables specified here are %{boldStart}expanded%{boldEnd} and not %{boldStart}masked.%{boldEnd}"
msgstr "此處指定的變數是 %{boldStart}expanded%{boldEnd} 而ä¸æ˜¯ %{boldStart}masked.%{boldEnd}"
-msgid "CiVariables|Variables store information, like passwords and secret keys, that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
-msgstr "變數儲存您å¯ä»¥åœ¨ä½œæ¥­è…³æœ¬ä¸­ä½¿ç”¨çš„資訊,例如密碼和密鑰,æ¯å€‹ %{entity} 最多å¯ä»¥å®šç¾© %{limit} 個變數。"
+msgid "CiVariables|Variables store information that you can use in job scripts. All projects on the instance can use these variables."
+msgstr ""
+
+msgid "CiVariables|Variables store information that you can use in job scripts. Each %{entity} can define a maximum of %{limit} variables."
+msgstr ""
+
+msgid "CiVariables|You can use CI/CD variables with the same name in different places, but the variables might overwrite each other. %{linkStart}What is the order of precedence for variables?%{linkEnd}"
+msgstr "您å¯ä»¥åœ¨ä¸åŒçš„ä½ç½®ä½¿ç”¨ç›¸åŒå稱的 CI/CD 變數,但變數å¯èƒ½æœƒç›¸äº’覆寫。%{linkStart}變數的優先順åºæ˜¯ä»€éº¼ï¼Ÿ%{linkEnd}"
msgid "CiVariables|You have reached the maximum number of variables available. To add new variables, you must reduce the number of defined variables."
msgstr "您已é”到å¯ä½¿ç”¨è®Šæ•¸çš„最大數é‡ï¼Œè¦å¢žåŠ æ–°çš„變數,您必須先減少已定義變數的數é‡ã€‚"
@@ -10634,9 +10844,6 @@ msgstr "關閉å²è©© (epic)"
msgid "Close milestone"
msgstr "關閉里程碑"
-msgid "Close sidebar"
-msgstr "關閉å´é‚Šæ¬„"
-
msgid "Close this %{quick_action_target}"
msgstr "關閉此%{quick_action_target}"
@@ -11670,17 +11877,35 @@ msgstr "顯示全部"
msgid "CodeOwner|Pattern"
msgstr "模å¼"
-msgid "CodeSuggestionsSM|By enabling this feature, you agree to the %{terms_link_start}GitLab Testing Agreement%{link_end} and acknowledge that GitLab will send data from the instance, including personal data, to our %{ai_docs_link_start}AI providers%{link_end} to provide this feature."
-msgstr "程å¼ç¢¼å»ºè­°SM啟用此功能å³è¡¨ç¤ºæ‚¨åŒæ„ %{terms_link_start}GitLab 測試å”è­°%{link_end} 並èªåŒ GitLab 會將實例中的數據(包括個人數據)發é€çµ¦æˆ‘們的 %{ai_docs_link_start}AI æ供商%{link_end} 以æ供此功能。"
+msgid "CodeSuggestionsGAAlert| (Code Suggestions transitions to a paid feature on %{date}.)"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Code Suggestions is now part of Duo Pro. Free access is ending soon."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Contact Sales"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Continue accelerating your development with GitLab Duo Pro. Starting %{ga_date}, Code Suggestions will be part of Duo Pro, and a paid subscription will be required for access. Upgrade before %{promo_price_end_date} to lock in the introductory price of $9 per user. After this date, the price increases to $19 per user."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Dismiss Code Suggestions banner"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Learn more"
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Quickly and securely author code by getting suggestions in %{link_start}your IDE%{link_end} while you type. Available in multiple languages. Try Code Suggestions today."
+msgstr ""
+
+msgid "CodeSuggestionsGAAlert|Try GitLab Duo Code Suggestions today"
+msgstr ""
msgid "CodeSuggestionsSM|Code Suggestions"
msgstr "程å¼ç¢¼å»ºè­° "
-msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance %{beta}"
-msgstr "程å¼ç¢¼å»ºè­°SM為此實例啟用程å¼ç¢¼ç¢¼å»ºè­° %{beta}"
-
-msgid "CodeSuggestionsSM|Enable Code Suggestions for users of this instance. %{link_start}What are Code Suggestions?%{link_end}"
-msgstr "程å¼ç¢¼å»ºè­°SM為此實例的用戶啟用程å¼ç¢¼å»ºè­°ã€‚ %{link_start}什麼是程å¼ç¢¼å»ºè­°ï¼Ÿ%{link_end}"
+msgid "CodeSuggestionsSM|Enable Code Suggestions for this instance"
+msgstr ""
msgid "CodeSuggestions|%{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
msgstr "%{linkStart}程å¼ç¢¼å»ºè­°%{linkEnd} 在您開發時使用生æˆå¼ AI 來建議程å¼ç¢¼ã€‚"
@@ -11688,8 +11913,8 @@ msgstr "%{linkStart}程å¼ç¢¼å»ºè­°%{linkEnd} 在您開發時使用生æˆå¼ AI
msgid "CodeSuggestions|%{link_start}What are code suggestions?%{link_end}"
msgstr "%{link_start}什麼是程å¼ç¢¼å»ºè­°ï¼Ÿ%{link_end}"
-msgid "CodeSuggestions|A user can be assigned a Code Suggestion seat only once each billable month."
-msgstr "æ¯ä½ä½¿ç”¨è€…æ¯å€‹è¨ˆè²»æœˆä»½åªèƒ½è¢«åˆ†é…一次程å¼ç¢¼å»ºè­°å¸­æ¬¡ã€‚"
+msgid "CodeSuggestions|A user can be assigned a Duo Pro seat only once each billable month."
+msgstr ""
msgid "CodeSuggestions|Code Suggestions"
msgstr "程å¼ç¢¼å»ºè­° "
@@ -11697,23 +11922,23 @@ msgstr "程å¼ç¢¼å»ºè­° "
msgid "CodeSuggestions|Code Suggestions add-on"
msgstr "程å¼ç¢¼å»ºè­°é™„加元件"
-msgid "CodeSuggestions|Code Suggestions seats used"
-msgstr "已使用的程å¼ç¢¼å»ºè­°å¸­æ¬¡"
+msgid "CodeSuggestions|Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Enable Code Suggestions"
-msgstr "啟用程å¼ç¢¼å»ºè­°"
+msgid "CodeSuggestions|Duo Pro add-on"
+msgstr ""
-msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Code Suggestions%{linkEnd} uses generative AI to suggest code while you're developing."
-msgstr "強化您寫程å¼çš„體驗,享å—智慧型建議。%{linkStart}程å¼ç¢¼å»ºè­°%{linkEnd}使用產生å¼äººå·¥æ™ºæ…§åœ¨æ‚¨é–‹ç™¼æ™‚æ供程å¼ç¢¼å»ºè­°ã€‚"
+msgid "CodeSuggestions|Duo Pro seats used"
+msgstr ""
-msgid "CodeSuggestions|Get code suggestions as you write code in your IDE. %{link_start}Learn more%{link_end}."
-msgstr "在您的整åˆé–‹ç™¼ç’°å¢ƒä¸­ç·¨å¯«ç¨‹å¼ç¢¼æ™‚,å¯ä»¥ç²å¾—程å¼ç¢¼å»ºè­°ã€‚%{link_start}了解更多%{link_end}。"
+msgid "CodeSuggestions|Enhance your coding experience with intelligent recommendations. %{linkStart}Duo Pro%{linkEnd} offers features that use generative AI to suggest code."
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code Suggestions add-on"
-msgstr "導入程å¼ç¢¼å»ºè­°æ“´å……功能"
+msgid "CodeSuggestions|Introducing Duo Pro"
+msgstr ""
-msgid "CodeSuggestions|Introducing the Code&nbsp;Suggestions add&#8209;on"
-msgstr "引入程å¼ç¢¼å»ºè­°æ“´å……功能"
+msgid "CodeSuggestions|Manage seat assignments for Duo Pro across your instance."
+msgstr ""
msgid "CodeSuggestions|Projects in this group can use Code Suggestions"
msgstr "該群組中的專案å¯ä»¥ä½¿ç”¨ç¨‹å¼ç¢¼å»ºè­°"
@@ -11842,6 +12067,9 @@ msgstr "為消æ¯è‘—色"
msgid "ComboSearch is not defined"
msgstr "ComboSearch未定義"
+msgid "Comma-separated list of branches to be automatically inspected. Leave blank to include all branches."
+msgstr ""
+
msgid "Comma-separated list of email addresses."
msgstr "逗號分隔的電å­éƒµä»¶åœ°å€åˆ—表。"
@@ -11890,6 +12118,12 @@ msgstr "指令未使用"
msgid "Comment"
msgstr "è©•è«–"
+msgid "Comment & close %{workItemType}"
+msgstr ""
+
+msgid "Comment & reopen %{workItemType}"
+msgstr ""
+
msgid "Comment '%{label}' position"
msgstr "留言%{label}'çš„ä½ç½®"
@@ -12167,14 +12401,50 @@ msgstr "已完æˆ"
msgid "Completed in %{duration_seconds} seconds (%{relative_time})"
msgstr "在 %{duration_seconds} 秒內完æˆï¼ˆ%{relative_time})"
-msgid "Compliance Center|Export full report as CSV"
-msgstr "將完整報告匯出為 CSV "
+msgid "Compliance Center Export|Example: 2dc6aa3"
+msgstr "範例:2dc6aa3"
+
+msgid "Compliance Center Export|Export chain of custody report"
+msgstr "匯出監管éˆå ±å‘ŠåŒ¯å‡º"
+
+msgid "Compliance Center Export|Export chain of custody report as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export chain of custody report of a specific commit as a CSV file (limited to 15MB)."
+msgstr ""
+
+msgid "Compliance Center Export|Export contents of the standards adherence report as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export custody report"
+msgstr "匯出監管報告"
+
+msgid "Compliance Center Export|Export custody report of a specific commit"
+msgstr "匯出特定æ交的監管報告"
+
+msgid "Compliance Center Export|Export list of project frameworks"
+msgstr "匯出專案框架列表"
-msgid "Compliance Center|Export merge request violations as CSV. You will be emailed after the export is processed."
-msgstr "å°‡åˆä½µè«‹æ±‚é•è¦æƒ…æ³åŒ¯å‡ºç‚ºCSVæ ¼å¼ï¼Œè™•ç†å®Œç•¢å¾Œï¼Œæ‚¨å°‡æ”¶åˆ°éƒµä»¶é€šçŸ¥ã€‚"
+msgid "Compliance Center Export|Export list of project frameworks as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export merge request violations as a CSV file."
+msgstr ""
+
+msgid "Compliance Center Export|Export standards adherence report"
+msgstr ""
+
+msgid "Compliance Center Export|Export violations report"
+msgstr "匯出é•è¦å ±å‘Š"
-msgid "Compliance Center|Export projects as CSV. You will be emailed after the export is processed."
-msgstr "將項目匯出為CSVæ ¼å¼ï¼ŒåŒ¯å‡ºè™•ç†å®Œæˆå¾Œï¼Œæ‚¨å°‡æ”¶åˆ°éƒµä»¶é€šçŸ¥ã€‚"
+msgid "Compliance Center Export|Invalid hash"
+msgstr "無效 hash"
+
+msgid "Compliance Center Export|Send email of the chosen report as CSV"
+msgstr "以 CSV æ ¼å¼å‚³é€æ‰€é¸å ±å‘Šçš„é›»å­éƒµä»¶"
+
+msgid "Compliance Center Export|You will be emailed after the export is processed."
+msgstr ""
msgid "Compliance Center|Frameworks"
msgstr "框架"
@@ -12191,6 +12461,9 @@ msgstr "åˆè¦ä¸­å¿ƒ"
msgid "Compliance framework"
msgstr "åˆè¦æ¡†æž¶"
+msgid "ComplianceChainOfCustody| Chain of custody export"
+msgstr ""
+
msgid "ComplianceFrameworksReport|Associated Projects"
msgstr "相關專案"
@@ -12203,6 +12476,9 @@ msgstr "æè¿°"
msgid "ComplianceFrameworksReport|Edit framework"
msgstr "編輯框架"
+msgid "ComplianceFrameworks| Frameworks export"
+msgstr ""
+
msgid "ComplianceFrameworks|Active compliance frameworks"
msgstr "主動åˆè¦æ¡†æž¶"
@@ -12212,12 +12488,12 @@ msgstr "添加框架"
msgid "ComplianceFrameworks|Background color"
msgstr "背景é¡è‰²"
+msgid "ComplianceFrameworks|Basic information"
+msgstr ""
+
msgid "ComplianceFrameworks|Cancel"
msgstr "å–消"
-msgid "ComplianceFrameworks|Compliance Frameworks Export"
-msgstr "åˆè¦æ€§æ¡†æž¶åŒ¯å‡º"
-
msgid "ComplianceFrameworks|Compliance framework created"
msgstr "已建立åˆè¦æž¶æ§‹"
@@ -12230,9 +12506,15 @@ msgstr "åˆè¦æµæ°´ç·šçµ„態設定(å¯é¸ï¼‰"
msgid "ComplianceFrameworks|Configuration not found"
msgstr "找ä¸åˆ°çµ„態設定"
+msgid "ComplianceFrameworks|Create a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Default compliance framework successfully updated"
msgstr "é è¨­åˆè¦æ€§æ¡†æž¶å·²æˆåŠŸæ›´æ–°"
+msgid "ComplianceFrameworks|Default framework will be applied automatically to any new project created in the group or sub group."
+msgstr ""
+
msgid "ComplianceFrameworks|Delete compliance framework %{framework}"
msgstr "刪除%{framework}åˆè¦æ¡†æž¶"
@@ -12245,6 +12527,9 @@ msgstr "æè¿°"
msgid "ComplianceFrameworks|Description is required"
msgstr "å¿…è¦çš„æè¿°"
+msgid "ComplianceFrameworks|Edit a compliance framework"
+msgstr ""
+
msgid "ComplianceFrameworks|Edit compliance framework"
msgstr "編輯åˆè¦æ¡†æž¶"
@@ -12275,9 +12560,15 @@ msgstr "å稱"
msgid "ComplianceFrameworks|Name is required"
msgstr "å稱是必è¦çš„"
+msgid "ComplianceFrameworks|Name, description"
+msgstr ""
+
msgid "ComplianceFrameworks|New compliance framework"
msgstr "æ–°åˆè¦æž¶æ§‹"
+msgid "ComplianceFrameworks|New framework"
+msgstr ""
+
msgid "ComplianceFrameworks|No compliance frameworks are set up yet"
msgstr "尚未設置åˆè¦æ¡†æž¶"
@@ -12296,12 +12587,18 @@ msgstr "éœ€è¦ GitLab Ultimate 訂閱方å¯ä½¿ç”¨"
msgid "ComplianceFrameworks|Saved changes to compliance framework"
msgstr "å·²ä¿å­˜å°åˆè¦æ€§æ¡†æž¶çš„更改"
+msgid "ComplianceFrameworks|Set as default"
+msgstr ""
+
msgid "ComplianceFrameworks|Set compliance pipeline configuration for projects that use this framework. %{linkStart}How do I create the configuration?%{linkEnd}"
msgstr "使用此框架為專案設定åˆè¦æ€§æµæ°´ç·šé…置。%{linkStart}我該如何創建é…置?%{linkEnd}"
msgid "ComplianceFrameworks|Set default"
msgstr "設定é è¨­"
+msgid "ComplianceFrameworks|There can be only one default framework."
+msgstr ""
+
msgid "ComplianceFrameworks|Unable to save this compliance framework. Please try again"
msgstr "無法ä¿å­˜æ­¤åˆè¦æ€§æ¡†æž¶ï¼Œè«‹é‡è©¦"
@@ -12419,6 +12716,9 @@ msgstr "更新篩é¸çµæžœï¼Ÿ"
msgid "ComplianceReport|Update result"
msgstr "æ›´æ–°çµæžœ"
+msgid "ComplianceStandardsAdherence| Standards adherence export"
+msgstr ""
+
msgid "ComplianceStandardsAdherence|A rule is configured to prevent author approved merge requests."
msgstr "å·²é…ç½®è¦å‰‡ä¾†é˜²æ­¢ä½œè€…核准åˆä½µè«‹æ±‚。"
@@ -12479,6 +12779,12 @@ msgstr "ç¦æ­¢æ交者作為審核者"
msgid "ComplianceStandardsAdherence|Project"
msgstr "專案"
+msgid "ComplianceStandardsAdherence|Raw filter values is not currently supported. Please use available values."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Raw text search is not currently supported. Please use the available filters."
+msgstr ""
+
msgid "ComplianceStandardsAdherence|Requirement"
msgstr "需求"
@@ -12506,8 +12812,14 @@ msgstr "檢視詳細資訊"
msgid "ComplianceStandardsAdherence|View details (fix available)"
msgstr "查看詳細資料(å¯ä¿®å¾©ï¼‰"
-msgid "ComplianceViolations|Compliance Violations Export"
-msgstr "é•è¦é•æ³•åŒ¯å‡º"
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group \"%{group_name}\" is attached to this email."
+msgstr ""
+
+msgid "ComplianceStandardsAdherence|Your standards adherence CSV export for the group %{group_link} is attached to this email."
+msgstr ""
+
+msgid "ComplianceViolations| Violations export"
+msgstr ""
msgid "ComplianceViolations|Your Compliance Violations CSV export for the group \"%{group_name}\" has been attached to this email."
msgstr "您的åˆè¦é•è¦ CSV 匯出文件已附加在此電å­éƒµä»¶ä¸­çš„群組 \"%{group_name}\"。"
@@ -12659,6 +12971,9 @@ msgstr "版本庫映åƒè¨­å®šã€‚"
msgid "Configure repository storage."
msgstr "版本庫儲存空間設定。"
+msgid "Configure secret detection behavior for all projects in your GitLab instance"
+msgstr "為 GitLab 執行個體中的所有專案é…ç½®æ•æ„Ÿè¨Šæ¯åµæ¸¬è¡Œç‚º"
+
msgid "Configure settings for Advanced Search with Elasticsearch."
msgstr "使用 Elasticsearch é…置進階æœå°‹çš„設定。"
@@ -12749,8 +13064,8 @@ msgstr "è¡çªï¼šè©²æª”案在來æºåˆ†æ”¯ä¸­å·²è¢«é‡æ–°å‘½å,但在目標分
msgid "Confluence"
msgstr "Confluence"
-msgid "Confluence Cloud Workspace URL"
-msgstr "Confluence é›²å·¥ä½œå€ URL"
+msgid "Confluence Workspace URL"
+msgstr ""
msgid "ConfluenceService|Confluence Workspace"
msgstr "Confluence工作å€"
@@ -12982,6 +13297,9 @@ msgstr "ContainerRegistry|在專案的 URL 中沒有å稱的映åƒæª”版本庫ã
msgid "ContainerRegistry|Image tags"
msgstr "ContainerRegistry|映åƒæª”標籤"
+msgid "ContainerRegistry|Includes both tagged and untagged images"
+msgstr ""
+
msgid "ContainerRegistry|Invalid tag: missing manifest digest"
msgstr "ContainerRegistry|無效標籤:缺少摘è¦æ¸…å–®"
@@ -13166,6 +13484,9 @@ msgstr "è¦æ“´å¤§æœç´¢ç¯„åœï¼Œè«‹æ›´æ”¹æˆ–刪除上é¢çš„éŽæ¿¾å™¨ã€‚"
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr "連接到容器映åƒåº«å‡ºéŒ¯ã€‚請嘗試é‡æ–°è¼‰å…¥é é¢ã€‚如果此錯誤ä»ç„¶å­˜åœ¨ï¼Œè«‹æŸ¥çœ‹ %{docLinkStart}故障排除文件%{docLinkEnd}。"
+msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
+msgstr "進行é‡æ–°å‘½å時,到容器登錄æœå‹™çš„新上傳將會被å°éŽ–。正在進行的上傳å¯èƒ½æœƒå¤±æ•—,需è¦é‡è©¦ã€‚"
+
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr "在容器映åƒåº«ä¸­ï¼Œæ¯å€‹é …目都有自己的空間來儲存容器映åƒã€‚%{docLinkStart}更多訊æ¯%{docLinkEnd}"
@@ -13517,8 +13838,8 @@ msgstr "%{calendar_date}çš„è²¢ç»"
msgid "Contributor"
msgstr "è²¢ç»è€…"
-msgid "Contributor statistics"
-msgstr "è²¢ç»è€…統計"
+msgid "Contributor analytics"
+msgstr ""
msgid "Control how the CI_JOB_TOKEN CI/CD variable is used for API access between projects."
msgstr "控制 CI_JOB_TOKEN CI/CD 變é‡å¦‚何用於專案之間的 API å­˜å–。"
@@ -13529,6 +13850,9 @@ msgstr "控制是å¦åœ¨ GitLab 中顯示客戶體驗改進內容和第三方優æ
msgid "Converts work item to %{type}. Widgets not supported in new type are removed."
msgstr "將工作項轉æ›ç‚º %{type},新類型ä¸æ”¯æŒçš„å°å·¥ä»¶å·²è¢«ç§»é™¤ã€‚"
+msgid "Cookie Preferences"
+msgstr ""
+
msgid "Cookie domain"
msgstr "Cookie域"
@@ -13592,6 +13916,9 @@ msgstr "複製代碼"
msgid "Copy command"
msgstr "複製指令"
+msgid "Copy command to finalize manually"
+msgstr "手動複製命令以完æˆ"
+
msgid "Copy commands"
msgstr "複製指令"
@@ -13664,9 +13991,6 @@ msgstr "複製來æºåˆ†æ”¯å稱"
msgid "Copy to clipboard"
msgstr "複製到剪貼簿"
-msgid "Copy token"
-msgstr "複製令牌"
-
msgid "Copy value"
msgstr "複製數值"
@@ -13850,6 +14174,9 @@ msgstr "無法上傳您的設計,一個或數個已上傳的檔案ä¸è¢«æ”¯æ´
msgid "Couldn't assign policy to project or group"
msgstr "無法將策略分é…給專案或群組"
+msgid "Couldn't fetch the pinned file."
+msgstr ""
+
msgid "Couldn't find event type filters where audit event type(s): %{missing_filters}"
msgstr "無法找到事件審核類型: %{missing_filters} éŽæ¿¾å™¨"
@@ -13913,6 +14240,9 @@ msgstr "建立群組"
msgid "Create a merge request"
msgstr "建立一個åˆä½µç”³è«‹"
+msgid "Create a merge request branch target."
+msgstr ""
+
msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started."
msgstr "在版本庫的根目錄創建一個新的 %{codeStart}.gitlab-ci.yml%{codeEnd} 文件以開始æ“作。"
@@ -13943,9 +14273,6 @@ msgstr "在帳號上建立個人存å–令牌,並以此 %{protocol} 來 pull æˆ
msgid "Create a project"
msgstr "建立一個專案"
-msgid "Create an account using:"
-msgstr "使用以下方å¼å»ºç«‹å¸³è™Ÿï¼š"
-
msgid "Create an incident. Incidents are created for each alert triggered."
msgstr "建立一個事件(incident),æ¯å€‹è§¸ç™¼çš„警報都會被建立一個事件(Incidents)。"
@@ -14075,9 +14402,6 @@ msgstr "建立發布版本"
msgid "Create requirement"
msgstr "建立需求"
-msgid "Create rules for target branches in merge requests."
-msgstr "在åˆä½µè«‹æ±‚中為目標分支創建è¦å‰‡ã€‚"
-
msgid "Create service account"
msgstr "建立æœå‹™å¸³è™Ÿ"
@@ -14114,6 +14438,9 @@ msgstr "為標籤新增一則訊æ¯ï¼Œç•™ç©ºå‰‡å»ºç«‹è¼•é‡æ¨™ç±¤ã€‚"
msgid "CreateGitTag|Set tag message"
msgstr "設定標籤訊æ¯"
+msgid "CreateGroup|You don't have permission to create a group in the provided organization."
+msgstr ""
+
msgid "CreateGroup|You don’t have permission to create a subgroup in this group."
msgstr "您無權在此群組中建立å­ç¾¤çµ„。"
@@ -14324,6 +14651,9 @@ msgstr "已建立於"
msgid "Created a branch and a merge request to resolve this issue."
msgstr "已建立了一個分支和一個åˆä½µè«‹æ±‚來解決此議題。"
+msgid "Created at"
+msgstr "建立於"
+
msgid "Created branch '%{branch_name}' and a merge request to resolve this issue."
msgstr "已建立分支「%{branch_name}ã€èˆ‡åˆä½µè«‹æ±‚來解決此議題。"
@@ -14534,6 +14864,12 @@ msgstr "購買æµæ°´ç·šåˆ†é˜"
msgid "CurrentUser|Edit profile"
msgstr "編輯個人資料"
+msgid "CurrentUser|Enter Admin Mode"
+msgstr ""
+
+msgid "CurrentUser|Leave Admin Mode"
+msgstr ""
+
msgid "CurrentUser|One of your groups is running out"
msgstr "您的一個群組å³å°‡ç”¨å®Œ"
@@ -14820,9 +15156,6 @@ msgstr "ä¸é©ç”¨æ–¼çµ¦å®šçš„開始事件"
msgid "CycleAnalytics|project dropdown filter"
msgstr "項目下拉é¸å–®éŽæ¿¾å™¨"
-msgid "CycleAnalytics|the assigned object is not supported"
-msgstr "ä¸æ”¯æ´è¢«æŒ‡æ´¾çš„物件"
-
msgid "DAG visualization requires at least 3 dependent jobs."
msgstr "DAGå¯è¦–化至少需è¦3個相關作業。"
@@ -14851,6 +15184,9 @@ msgstr "接å—測試使用æ¢æ¬¾ï¼Ÿ"
msgid "DORA4Metrics|All labels"
msgstr "DORA4指標所有標籤"
+msgid "DORA4Metrics|All topics"
+msgstr "所有主題"
+
msgid "DORA4Metrics|Average (last %{days}d)"
msgstr "å¹³å‡ï¼ˆæœ€è¿‘%{days}天)"
@@ -15119,9 +15455,6 @@ msgstr "全部"
msgid "DashboardProjects|Personal"
msgstr "個人"
-msgid "Dashboards"
-msgstr "儀表æ¿"
-
msgid "Dashboard|%{firstProject} and %{secondProject}"
msgstr "%{firstProject} 和 %{secondProject}"
@@ -15155,6 +15488,9 @@ msgstr "未找到該專案之å‰çš„掃æ"
msgid "DastConfig|Not enabled"
msgstr "未啟用"
+msgid "DastProfiles|%{linkStart}Headers may appear in vulnerability reports%{linkEnd}."
+msgstr ""
+
msgid "DastProfiles|/graphql"
msgstr "/graphql"
@@ -15236,6 +15572,9 @@ msgstr "無法更新掃æ器設定檔。請é‡è©¦ã€‚"
msgid "DastProfiles|Could not update the site profile. Please try again."
msgstr "無法更新站點設定檔。請é‡è©¦ã€‚"
+msgid "DastProfiles|Crawl timeout"
+msgstr "抓å–超時"
+
msgid "DastProfiles|DAST profile library"
msgstr "DAST 個人文件庫"
@@ -15413,9 +15752,6 @@ msgstr "站點é…置文件"
msgid "DastProfiles|Site type"
msgstr "站點類型"
-msgid "DastProfiles|Spider timeout"
-msgstr "爬蟲超時"
-
msgid "DastProfiles|Submit button"
msgstr "æ交按鈕"
@@ -15428,8 +15764,8 @@ msgstr "目標URL"
msgid "DastProfiles|Target timeout"
msgstr "目標超時"
-msgid "DastProfiles|The maximum number of minutes allowed for the spider to traverse the site."
-msgstr "爬蟲é歷站點所å…許的最大分é˜æ•¸ã€‚"
+msgid "DastProfiles|The maximum number of minutes allowed for the crawler to traverse the site."
+msgstr "å…許爬網程å¼é歷網站的最大分é˜æ•¸ã€‚"
msgid "DastProfiles|The maximum number of seconds allowed for the site under test to respond to a request."
msgstr "被測站點回應請求所å…許的最大秒數。"
@@ -15739,6 +16075,9 @@ msgstr "é è¨­åˆ†æ”¯"
msgid "Default branch and protected branches"
msgstr "é è¨­åˆ†æ”¯å’Œå—ä¿è­·çš„分支"
+msgid "Default channel to use if no other channel is configured."
+msgstr ""
+
msgid "Default description template for issues"
msgstr "議題的é è¨­æ述範本"
@@ -16059,16 +16398,6 @@ msgstr "等待刪除中。此專案將於 %{date} 被刪除。版本庫和其他
msgid "DeletionSettings|Deletion protection"
msgstr "刪除ä¿è­·æŽªæ–½"
-msgid "DeletionSettings|Keep deleted projects for %{number} day"
-msgid_plural "DeletionSettings|Keep deleted projects for %{number} days"
-msgstr[0] "ä¿ç•™å·²åˆªé™¤çš„專案 %{number} 天"
-
-msgid "DeletionSettings|Only administrators can delete projects."
-msgstr "åªæœ‰ç³»çµ±ç®¡ç†å“¡å¯ä»¥åˆªé™¤å°ˆæ¡ˆã€‚"
-
-msgid "DeletionSettings|Owners and administrators can delete projects."
-msgstr "所有者和系統管ç†å“¡å¯ä»¥åˆªé™¤å°ˆæ¡ˆã€‚"
-
msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for. Personal projects are always deleted immediately."
msgstr "已刪除的群組和專案將ä¿ç•™å¯é‚„原的期é™ï¼Œå€‹äººå°ˆæ¡ˆå‰‡å°‡ç«‹å³åˆªé™¤ã€‚"
@@ -16177,12 +16506,18 @@ msgstr "å¯èƒ½æœ‰å¤šå€‹è·¯å¾‘"
msgid "Dependencies|There was a problem fetching the licenses for this group."
msgstr "å–得該群組的許å¯è­‰æ™‚出ç¾å•é¡Œã€‚"
+msgid "Dependencies|There was an error fetching the projects for this group. Please try again later."
+msgstr "å–得此群組的專案時發生錯誤。請ç¨å¾Œå†è©¦ã€‚"
+
msgid "Dependencies|This group exceeds the maximum number of sub-groups of 600. We cannot accurately display a project list at this time. Please access a sub-group dependency list to view this information or see the %{linkStart}dependency list help %{linkEnd} page to learn more."
msgstr "æ­¤ç¾¤çµ„çš„ä¸‹å±¤ç¾¤çµ„æ•¸è¶…éŽ 600 個的上é™ã€‚ç›®å‰æˆ‘們無法準確顯示專案清單。請存å–å­ç¾¤çµ„ä¾è³´é—œä¿‚清單以檢視此資訊,或åƒé–±%{linkStart}ä¾è³´é—œä¿‚清單說明%{linkEnd}é é¢ä»¥å–得更多資訊。"
msgid "Dependencies|Toggle vulnerability list"
msgstr "切æ›æ¼æ´žæ¸…å–®"
+msgid "Dependencies|Unknown path"
+msgstr ""
+
msgid "Dependencies|Unsupported file(s) detected"
msgstr "檢測到ä¸æ”¯æ´çš„文件"
@@ -16201,9 +16536,6 @@ msgstr "ä¾è³´é …代ç†"
msgid "Dependency Scanning"
msgstr "ä¾è³´é …掃æ"
-msgid "Dependency chains are not supported"
-msgstr "ä¸æ”¯æ´ä¾è³´éˆ"
-
msgid "Dependency list"
msgstr "ä¾è³´é …列表"
@@ -16213,6 +16545,9 @@ msgstr "%{docLinkStart}有關將docker映åƒå„²å­˜åœ¨ä¾è³´é …代ç†ç·©å­˜ä¸­çš„
msgid "DependencyProxy|All items in the cache are scheduled for removal."
msgstr "所有快å–緩存中的項目將被列入刪除排程"
+msgid "DependencyProxy|Base URL of the external registry."
+msgstr ""
+
msgid "DependencyProxy|Cached %{time}"
msgstr "ä¾è³´ä»£ç†|å·²å¿«å– %{time}"
@@ -16249,18 +16584,27 @@ msgstr "摘è¦ï¼š %{shortDigest}"
msgid "DependencyProxy|Enable Dependency Proxy"
msgstr "啟用ä¾è³´é …代ç†"
+msgid "DependencyProxy|Enable the Dependency Proxy for packages, and configure connection settings for external registries."
+msgstr ""
+
msgid "DependencyProxy|Enable the Dependency Proxy to cache container images from Docker Hub and automatically clear the cache."
msgstr "啟用ä¾è³´ä»£ç†ä»¥å¾žDocker Hub緩存容器映åƒä¸¦è‡ªå‹•æ¸…除緩存。"
msgid "DependencyProxy|Image list"
msgstr "映åƒæª”清單"
+msgid "DependencyProxy|Password for your external registry."
+msgstr ""
+
msgid "DependencyProxy|Pull image by digest example"
msgstr "é€éŽæ‘˜è¦ç¯„例拉å–映åƒ"
msgid "DependencyProxy|Scheduled for deletion"
msgstr "é å®šåˆªé™¤"
+msgid "DependencyProxy|Something went wrong while fetching the dependency proxy settings."
+msgstr ""
+
msgid "DependencyProxy|There are no images in the cache"
msgstr "å¿«å–中沒有映åƒæª”"
@@ -16270,6 +16614,9 @@ msgstr "欲查看映åƒæª”å‰ç¶´å’Œå¿«å–中的內容,請å‰å¾€ %{linkStart} ä
msgid "DependencyProxy|To store docker images in Dependency Proxy cache, pull an image by tag in your %{codeStart}.gitlab-ci.yml%{codeEnd} file. In this example, the image is %{codeStart}alpine:latest%{codeEnd}"
msgstr "è¦å°‡ docker 映åƒå„²å­˜åœ¨ä¾è³´ä»£ç†ç·©å­˜ä¸­ï¼Œè«‹æŒ‰ %{codeStart}.gitlab-ci.yml%{codeEnd} 文件中的標籤拉å–映åƒã€‚在此示例中,映åƒç‚º %{codeStart}alpine:latest%{codeEnd}"
+msgid "DependencyProxy|Username of the external registry."
+msgstr ""
+
msgid "DependencyProxy|When enabled, images older than 90 days will be removed from the cache."
msgstr "å•Ÿç”¨å¾Œï¼Œè¶…éŽ 90 天的映åƒæª”將從快å–中移除。"
@@ -16513,9 +16860,6 @@ msgstr "使用者å稱"
msgid "DeployTokens|Username (optional)"
msgstr "使用者å稱 (å¯é¸)"
-msgid "DeployTokens|Your new Deploy Token username"
-msgstr "您的新部署令牌使用者å稱"
-
msgid "DeployTokens|Your new deploy token"
msgstr "您的新部署令牌"
@@ -17184,6 +17528,51 @@ msgstr "差異é™åˆ¶"
msgid "Diff notes"
msgstr "差界說明"
+msgid "DiffblueCover|Access token"
+msgstr ""
+
+msgid "DiffblueCover|Access token name used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Access token secret used by Diffblue Cover in pipelines"
+msgstr ""
+
+msgid "DiffblueCover|Automatically write comprehensive, human-like Java unit tests."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover is a reinforcement learning AI platform that automatically writes comprehensive, human-like Java unit tests. Integrate the power of Diffblue Cover into your CI/CD workflow for fully autonomous operation."
+msgstr ""
+
+msgid "DiffblueCover|Diffblue Cover license key"
+msgstr ""
+
+msgid "DiffblueCover|Enter your Diffblue Cover license key or visit %{diffblue_link} to obtain a free trial license."
+msgstr ""
+
+msgid "DiffblueCover|Integration details"
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current license key."
+msgstr ""
+
+msgid "DiffblueCover|Leave blank to use your current secret value."
+msgstr ""
+
+msgid "DiffblueCover|License key"
+msgstr ""
+
+msgid "DiffblueCover|My token name"
+msgstr ""
+
+msgid "DiffblueCover|Name"
+msgstr ""
+
+msgid "DiffblueCover|Secret"
+msgstr ""
+
+msgid "DiffblueCover|Try Diffblue Cover"
+msgstr ""
+
msgid "Difference between start date and now"
msgstr "開始日期和ç¾åœ¨ä¹‹é–“的差異"
@@ -17310,6 +17699,9 @@ msgstr "æ”¾æ£„å° %{path} 的變更嗎?"
msgid "Discard draft"
msgstr "å–消"
+msgid "Discord webhook (for example, `https://discord.com/api/webhooks/…`)."
+msgstr ""
+
msgid "DiscordService|Discord Notifications"
msgstr "Discord 通知"
@@ -17612,6 +18004,9 @@ msgstr "拖動以é‡æ–°æŽ’列優先標籤並更改它們的相å°å„ªå…ˆåºã€‚"
msgid "Drag your designs here or %{linkStart}click to upload%{linkEnd}."
msgstr "將您的設計拖到此處或 %{linkStart} 點擊上傳 %{linkEnd}。"
+msgid "Drop or %{linkStart}upload%{linkEnd} an avatar."
+msgstr ""
+
msgid "Drop or %{linkStart}upload%{linkEnd} file to attach"
msgstr "拖放或 %{linkStart}上傳%{linkEnd} 文件以附加文件"
@@ -17903,6 +18298,9 @@ msgstr "編輯中"
msgid "Edits"
msgstr "編輯"
+msgid "Either the title or description must reference a Jira issue."
+msgstr "標題或æ述必須引用 Jira 議題。"
+
msgid "Elapsed time"
msgstr "已經éŽæ™‚é–“"
@@ -17969,6 +18367,9 @@ msgstr "未知登錄的電å­éƒµä»¶é€šçŸ¥"
msgid "Email patch"
msgstr "é›»å­éƒµä»¶è£œä¸"
+msgid "Email reset removed at:"
+msgstr ""
+
msgid "Email sent"
msgstr "é›»å­éƒµä»¶å·²å‚³é€"
@@ -18065,6 +18466,9 @@ msgstr "空文件"
msgid "Enable"
msgstr "啟用"
+msgid "Enable Admin Mode"
+msgstr "啟用管ç†æ¨¡å¼"
+
msgid "Enable Akismet"
msgstr "啟用 Akismet"
@@ -18101,6 +18505,9 @@ msgstr "啟用PlantUML"
msgid "Enable SSL verification"
msgstr "啟用 SSL 驗證"
+msgid "Enable SSL verification. Defaults to `true` (enabled)."
+msgstr ""
+
msgid "Enable Snowplow tracking"
msgstr "啟用 Snowplow 追蹤"
@@ -18116,9 +18523,6 @@ msgstr "啟用新功能:僅當å‰ç´šåˆ¥"
msgid "Enable access to the performance bar for non-administrators in a given group."
msgstr "å…許該群組中的éžç®¡ç†å“¡è¨ªå•æ€§èƒ½æ¬„。"
-msgid "Enable admin mode"
-msgstr "啟用管ç†æ¨¡å¼"
-
msgid "Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}."
msgstr "啟用和ç¦ç”¨æœå‹™å°ã€‚å¯èƒ½éœ€è¦ä¸€äº›é¡å¤–çš„é…置。 %{link_start}瞭解更多%{link_end}。"
@@ -18182,6 +18586,9 @@ msgstr "在您的%{linkStart}使用者å好設定%{linkEnd}中啟用或åœç”¨é
msgid "Enable or disable version check and Service Ping."
msgstr "啟用或ç¦ç”¨ç‰ˆæœ¬æª¢æŸ¥å’ŒService Ping。"
+msgid "Enable pre-receive secret detection"
+msgstr "啟用é æŽ¥æ”¶æ•æ„Ÿè¨Šæ¯åµæ¸¬"
+
msgid "Enable rate limiting for requests to the specified paths"
msgstr "為指定路徑的請求啟用速率é™åˆ¶"
@@ -18197,9 +18604,6 @@ msgstr "啟用版本庫檢查"
msgid "Enable security training"
msgstr "啟用安全培訓"
-msgid "Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "啟用安全培訓,幫助您的開發者們學習如何修復æ¼æ´žã€‚開發者å¯ä»¥é€šéŽæ‚¨é¸æ“‡çš„培訓供應商,é¸æ“‡èˆ‡æª¢æ¸¬åˆ°çš„æ¼æ´žç›¸é—œçš„安全培訓。"
-
msgid "Enable shared runners for all projects and subgroups in this group."
msgstr "為該群組中的所有專案和å­ç¾¤çµ„啟用共享執行器。"
@@ -18287,6 +18691,9 @@ msgstr "çµæŸæ–¼"
msgid "Ends: %{endsAt}"
msgstr "çµæŸæ–¼ï¼š%{endsAt}"
+msgid "Enforce Two-Factor authentication for administrator users"
+msgstr ""
+
msgid "Enforce two-factor authentication"
msgstr "強制執行雙因å­èªè­‰"
@@ -18602,6 +19009,9 @@ msgstr "é–‹å•Ÿ"
msgid "Environments|Open live environment"
msgstr "開啟執行中的環境"
+msgid "Environments|Or select namespace: %{searchTerm}"
+msgstr ""
+
msgid "Environments|Re-deploy environment"
msgstr "é‡æ–°éƒ¨ç½²ç’°å¢ƒ"
@@ -18704,15 +19114,12 @@ msgstr "部署層級"
msgid "Environment|Deployments"
msgstr "部署"
-msgid "Environment|Environment health"
-msgstr "環境å¥åº·ç‹€æ…‹"
+msgid "Environment|Environment status"
+msgstr "環境狀態"
msgid "Environment|External IP"
msgstr "外部 IP"
-msgid "Environment|Failed"
-msgstr "失敗"
-
msgid "Environment|Forbidden to access the cluster agent from this environment."
msgstr "環境ç¦æ­¢å¾žæ­¤ç’°å¢ƒå­˜å–å¢é›†ä»£ç†ã€‚"
@@ -18725,9 +19132,6 @@ msgstr "任務"
msgid "Environment|Kubernetes overview"
msgstr "Kubernetes 概覽"
-msgid "Environment|Pending"
-msgstr "等候中"
-
msgid "Environment|Pods"
msgstr "Pods"
@@ -18743,9 +19147,6 @@ msgstr "調整中"
msgid "Environment|ReplicaSets"
msgstr "ReplicaSets"
-msgid "Environment|Running"
-msgstr "執行中"
-
msgid "Environment|Services"
msgstr "æœå‹™"
@@ -18755,9 +19156,6 @@ msgstr "å·²åœæ»¯"
msgid "Environment|StatefulSets"
msgstr "StatefulSets"
-msgid "Environment|Succeeded"
-msgstr "æˆåŠŸ"
-
msgid "Environment|Summary"
msgstr "總覽"
@@ -18773,12 +19171,12 @@ msgstr "æ“·å– %{resourceType} 時發生錯誤。"
msgid "Environment|Unauthorized to access %{resourceType} from this environment."
msgstr "æœªç¶“æŽˆæ¬Šå¾žæ­¤ç’°å¢ƒå­˜å– %{resourceType}。"
-msgid "Environment|Unauthorized to access the cluster agent from this environment. Check your authentication and try again."
-msgstr "環境無權é™å¾žæ­¤ç’°å¢ƒå­˜å–å¢é›†ä»£ç†ã€‚檢查您的身份驗證並é‡è©¦ã€‚"
-
msgid "Environment|Unhealthy"
msgstr "ä¸å¥åº·"
+msgid "Environment|You don't have permission to view all the namespaces in the cluster. If a namespace is not shown, you can still enter its name to select it."
+msgstr ""
+
msgid "Epic"
msgstr "å²è©© (Epic)"
@@ -19678,9 +20076,6 @@ msgstr "匯出 %{requirementsCount} 需求?"
msgid "Export as CSV"
msgstr "匯出為 CSV"
-msgid "Export commit custody report"
-msgstr "匯出æ交監管報告"
-
msgid "Export group"
msgstr "匯出群組"
@@ -19807,6 +20202,9 @@ msgstr "外部Wiki URL"
msgid "ExternalWikiService|Link to an external wiki from the sidebar."
msgstr "從å´é‚Šæ¬„éˆæŽ¥åˆ°å¤–部 wiki。"
+msgid "ExternalWikiService|URL of the external wiki."
+msgstr ""
+
msgid "ExternalWikiService|https://example.com/xxx/wiki/..."
msgstr "https://example.com/xxx/wiki/..."
@@ -19890,6 +20288,9 @@ msgstr "無法為此å•é¡Œå»ºç«‹åˆ†æ”¯ã€‚è«‹å†è©¦ä¸€æ¬¡ã€‚"
msgid "Failed to create a to-do item for the design."
msgstr "無法為該設計建立待辦事項。"
+msgid "Failed to create branch target"
+msgstr ""
+
msgid "Failed to create framework"
msgstr "建立框架失敗"
@@ -19905,18 +20306,15 @@ msgstr "建立版本庫失敗"
msgid "Failed to create resources"
msgstr "建立資æºå¤±æ•—"
-msgid "Failed to create target branch rule"
-msgstr "建立目標分支è¦å‰‡å¤±æ•—"
-
msgid "Failed to create wiki"
msgstr "建立Wiki失敗"
+msgid "Failed to delete branch target"
+msgstr ""
+
msgid "Failed to delete custom emoji. Please try again."
msgstr "刪除自訂表情符號失敗。請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "Failed to delete target branch rule"
-msgstr "刪除目標分支è¦å‰‡å¤±æ•—"
-
msgid "Failed to deploy to"
msgstr "無法部署到"
@@ -19953,9 +20351,6 @@ msgstr "載入失敗"
msgid "Failed to load Roadmap"
msgstr "無法載入路線圖"
-msgid "Failed to load assignees."
-msgstr "載入指派人失敗。"
-
msgid "Failed to load assignees. Please try again."
msgstr "載入指派人失敗。請é‡è©¦ã€‚"
@@ -19983,18 +20378,9 @@ msgstr "無法載入群組,使用者和部署金鑰。"
msgid "Failed to load groups."
msgstr "載入群組失敗"
-msgid "Failed to load iteration cadences."
-msgstr "無法終止載入迭代"
-
-msgid "Failed to load iterations."
-msgstr "無法載入迭代"
-
msgid "Failed to load labels. Please try again."
msgstr "載入標記失敗。請é‡è©¦ã€‚"
-msgid "Failed to load milestones."
-msgstr "載入里程碑失敗。"
-
msgid "Failed to load milestones. Please try again."
msgstr "載入里程碑失敗。請é‡è©¦ã€‚"
@@ -20103,6 +20489,9 @@ msgstr "更新架構失敗"
msgid "Failed to update issue status"
msgstr "無法更新議題狀態"
+msgid "Failed to update organization"
+msgstr "更新組織失敗"
+
msgid "Failed to update the Canary Ingress."
msgstr "無法更新 Canary Ingress。"
@@ -20395,6 +20784,9 @@ msgstr "文件已移動"
msgid "File name"
msgstr "文件å稱"
+msgid "File name of the Google Play service account key."
+msgstr ""
+
msgid "File permissions"
msgstr "檔案權é™"
@@ -20674,9 +21066,6 @@ msgstr "å°æ–¼å¤§æ–¼æ­¤é™åˆ¶çš„檔案,僅索引檔案å稱。檔案內容沒
msgid "For general work"
msgstr "關於一般性工作"
-msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain or group."
-msgstr "è‹¥è¦å€‹äººä½¿ç”¨ï¼Œè«‹åœ¨æ‚¨çš„個人電å­éƒµä»¶åœ°å€ä¸‹å»ºç«‹ä¸€å€‹å–®ç¨çš„帳號,ä¸è¦ç¶å®šåˆ°ä¼æ¥­é›»å­éƒµä»¶åŸŸæˆ–群組。"
-
msgid "For individual use, create a separate account under your personal email address, not tied to the Enterprise email domain."
msgstr "è‹¥è¦å€‹äººä½¿ç”¨ï¼Œè«‹åœ¨æ‚¨çš„個人電å­éƒµä»¶åœ°å€ä¸‹å‰µå»ºä¸€å€‹å–®ç¨çš„帳號,ä¸è¦ç¶å®šåˆ°ä¼æ¥­é›»å­éƒµä»¶åŸŸæˆ–群組。"
@@ -20996,6 +21385,9 @@ msgstr "生æˆæ ¹æœ¬åŽŸå› åˆ†æž"
msgid "Generate site and private keys at"
msgstr "生æˆç«™é»žå’Œç§é‘°åœ¨"
+msgid "Generated files are collapsed by default. This behavior can be overriden via .gitattributes file if required."
+msgstr ""
+
msgid "Generated with JSON data"
msgstr "使用JSON 資料生æˆ"
@@ -21337,12 +21729,6 @@ msgstr "é‡æ–°åŒæ­¥"
msgid "Geo|Resync all"
msgstr "é‡æ–°åŒæ­¥æ‰€æœ‰"
-msgid "Geo|Resync all %{projects_count} projects"
-msgstr "é‡æ–°åŒæ­¥å…¨éƒ¨ %{projects_count} 個專案"
-
-msgid "Geo|Resync project"
-msgstr "é‡æ–°åŒæ­¥å°ˆæ¡ˆ"
-
msgid "Geo|Retry count"
msgstr "é‡è©¦è¨ˆæ•¸"
@@ -21352,12 +21738,6 @@ msgstr "é‡æ–°æ ¡é©—"
msgid "Geo|Reverify all"
msgstr "é‡æ–°æ ¡é©—所有"
-msgid "Geo|Reverify all %{projects_count} projects"
-msgstr "é‡æ–°é©—證全部 %{projects_count} 個專案"
-
-msgid "Geo|Reverify project"
-msgstr "é‡æ–°é©—證專案"
-
msgid "Geo|Review replication status, and resynchronize and reverify items with the primary site."
msgstr "查看複製狀態並與主è¦ç«™é»žé‡æ–°åŒæ­¥å’Œé‡æ–°é©—證專案。"
@@ -21466,12 +21846,6 @@ msgstr "這個 GitLab 執行個體已訂閱為 %{insufficient_license} 層級,
msgid "Geo|This will %{action} %{replicableType}. It may take some time to complete. Are you sure you want to continue?"
msgstr "這將 %{action} %{replicableType},å¯èƒ½éœ€è¦ä¸€äº›æ™‚é–“æ‰èƒ½å®Œæˆï¼Œæ‚¨ç¢ºå®šè¦ç¹¼çºŒå—Žï¼Ÿ"
-msgid "Geo|This will resync all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "å°‡è¦é‡æ–°åŒæ­¥æ‰€æœ‰å°ˆæ¡ˆã€‚å¯èƒ½éœ€è¦ä¸€äº›æ™‚間完æˆã€‚確定繼續嗎?"
-
-msgid "Geo|This will reverify all projects. It may take some time to complete. Are you sure you want to continue?"
-msgstr "å°‡è¦é‡æ–°æ ¡é©—所有專案。å¯èƒ½éœ€è¦ä¸€äº›æ™‚間完æˆã€‚確定è¦ç¹¼çºŒå—Žï¼Ÿ"
-
msgid "Geo|Time in seconds"
msgstr "以秒為單ä½çš„時間"
@@ -21529,9 +21903,6 @@ msgstr "主è¦ç¯€é»ž"
msgid "Geo|secondary"
msgstr "次è¦ç¯€é»ž"
-msgid "Get a free instance review"
-msgstr "ç²å¾—å…費的實體評估"
-
msgid "Get a support subscription"
msgstr "å–得支æ´è¨‚é–±"
@@ -21553,6 +21924,9 @@ msgstr "開始使用錯誤追蹤"
msgid "Get started!"
msgstr "開始å§ï¼"
+msgid "GiB"
+msgstr ""
+
msgid "Git"
msgstr "Git"
@@ -21640,9 +22014,15 @@ msgstr "您ä¸èƒ½æŒ‡å®šè¶…éŽ %{maxAllowedUsers} 個排除的使用者。"
msgid "GitHub API rate limit exceeded. Try again after %{reset_time}"
msgstr "已超出 GitHub API 速率é™åˆ¶ã€‚%{reset_time} 後é‡è©¦"
+msgid "GitHub API token with `repo:status` OAuth scope."
+msgstr ""
+
msgid "GitHub import"
msgstr "GitHub匯入"
+msgid "GitHub repository URL."
+msgstr ""
+
msgid "GitHubImporter|*Merged by: %{author} at %{timestamp}*"
msgstr "GitHubImporter|*åˆä½µè€…: %{author} æ–¼ %{timestamp}*"
@@ -21739,9 +22119,6 @@ msgstr "GitLab是一個完整的DevOpså¹³å°ï¼Œä½œç‚ºå–®å€‹æ‡‰ç”¨ç¨‹å¼å‘ˆç¾ï¼Œ
msgid "GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate"
msgstr "GitLab是一個完整的DevOpså¹³å°ï¼Œä½œç‚ºå–®å€‹æ‡‰ç”¨ç¨‹å¼å‘ˆç¾ï¼Œå¾žæ ¹æœ¬ä¸Šæ”¹è®Šäº†%{br_tag}開發,安全和é‹ç¶­åœ˜éšŠçš„å”作方å¼"
-msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
-msgstr "GitLab是æœå‹™æ–¼æ•´å€‹è»Ÿä»¶é–‹ç™¼ç”Ÿå‘½é€±æœŸçš„單一應用程å¼ã€‚從專案è¦åŠƒå’Œæºç¢¼ç®¡ç†åˆ°CI/CDã€ç›£æŽ§å’Œå®‰å…¨ã€‚"
-
msgid "GitLab is free to use. Many features for larger teams are part of our %{link_start}paid products%{link_end}. You can try Ultimate for free without any obligation or payment details."
msgstr "GitLab å¯ä»¥å…費使用。大型團隊的許多功能是我們 %{link_start}付費產å“%{link_end} 的一部分。您å¯ä»¥å…費試用 Ultimate,無需任何義務或付款細節。"
@@ -21871,8 +22248,8 @@ msgstr "未驗證"
msgid "GitLabPages|Updating your Pages configuration..."
msgstr "正在更新您的é é¢é…ç½®..."
-msgid "GitLabPages|Use multiple versions"
-msgstr "使用多é‡ç‰ˆæœ¬"
+msgid "GitLabPages|Use multiple deployments"
+msgstr ""
msgid "GitLabPages|Use unique domain"
msgstr "使用唯一網域"
@@ -21889,8 +22266,8 @@ msgstr "啟用後,將生æˆä¸€å€‹å”¯ä¸€çš„網域來存å–é é¢ã€‚"
msgid "GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}"
msgstr "啟用後,所有通éŽHTTPçš„å­˜å–嘗試都會自動é‡å®šå‘到HTTPS,使用狀態代碼301。 需è¦å°æ‰€æœ‰åŸŸå有效的證書。%{docs_link_start}瞭解更多訊æ¯ã€‚%{link_end}"
-msgid "GitLabPages|When enabled, you can create multiple versions of your pages site."
-msgstr "啟用後,您å¯ä»¥å»ºç«‹é é¢ç¶²ç«™çš„多個版本。"
+msgid "GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"
+msgstr ""
msgid "GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with subdomains of subdomains. If your namespace or groupname contains a dot, it does not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages work if you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}"
msgstr "當在 GitLab 執行個體 (%{pages_host})的一般域å下使用 Pages 時,您ä¸èƒ½ä½¿ç”¨ HTTPS 與å­åŸŸçš„å­åŸŸå。 如果您的命å空間或群組å稱包å«ä¸€å€‹é»žï¼Œè©²å稱無效。這是一個 HTTP On TLS å”è­°çš„é™åˆ¶ã€‚ 如果您ä¸å°‡ HTTP é‡å®šå‘到 HTTPS ,HTTP é é¢å¯ä»¥æ­£å¸¸å·¥ä½œã€‚ %{docs_link_start}瞭解更多訊æ¯ã€‚%{link_end}"
@@ -22066,24 +22443,24 @@ msgstr "全域通知郵件"
msgid "Global notification level"
msgstr "全域通知級別"
-msgid "GlobalSearch| %{search} %{description} %{scope}"
-msgstr "%{search} %{description} %{scope}"
-
msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list."
msgstr "æä¾› %{count} 個é è¨­çµæžœï¼Œä½¿ç”¨ä¸Šä¸‹ç®­é ­éµå°Žèˆªæœå°‹çµæžœåˆ—表。"
-msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled"
-msgstr "%{link_start}精確程å¼ç¢¼æœå°‹ï¼ˆç”± Zoekt æ供支æŒï¼‰%{link_end} 已啟用"
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is disabled since %{ref_elem} is not the default branch. %{docs_link}"
+msgstr "å…¨çƒæœå°‹|%{linkStart}精確代碼æœå°‹ï¼ˆç”± Zoekt æ供支æ´ï¼‰%{linkEnd} 被åœç”¨ï¼Œå› ç‚º %{ref_elem} ä¸æ˜¯é è¨­åˆ†æ”¯ã€‚ %{docs_link}"
+
+msgid "GlobalSearch|%{linkStart}Exact code search (powered by Zoekt)%{linkEnd} is enabled"
+msgstr "å…¨çƒæœå°‹|%{linkStart}精確代碼æœå°‹ï¼ˆç”± Zoekt æ供支æ´ï¼‰%{linkEnd} 已啟用"
msgid "GlobalSearch|Aggregations load error."
msgstr "èšåˆè¼‰å…¥éŒ¯èª¤ã€‚"
+msgid "GlobalSearch|All available groups"
+msgstr "所有å¯ç”¨ç¾¤çµ„"
+
msgid "GlobalSearch|Archived"
msgstr "å·²å°å­˜"
-msgid "GlobalSearch|Close"
-msgstr "關閉"
-
msgid "GlobalSearch|Command palette"
msgstr "命令é¢æ¿"
@@ -22141,6 +22518,9 @@ msgstr "我作為審核者的åˆä½µè«‹æ±‚"
msgid "GlobalSearch|No labels found"
msgstr "未找到標記 (labels)"
+msgid "GlobalSearch|Nothing found…"
+msgstr "未找到…"
+
msgid "GlobalSearch|Only first %{max_shown} of not indexed projects is shown"
msgstr "åªé¡¯ç¤ºå‰ %{max_shown} 個未索引的專案"
@@ -22162,18 +22542,15 @@ msgstr "近期的議題"
msgid "GlobalSearch|Recent merge requests"
msgstr "近期的åˆä½µæ交"
+msgid "GlobalSearch|Reset"
+msgstr "é‡ç½®"
+
msgid "GlobalSearch|Result count is over limit."
msgstr "çµæžœæ•¸ç›®è¶…éŽé™åˆ¶"
msgid "GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit."
msgstr "çµæžœå·²æ›´æ–°ï¼Œ %{count} 個çµæžœå¯ç”¨ï¼Œä½¿ç”¨ä¸Šä¸‹ç®­é ­éµç€è¦½æœå°‹çµæžœåˆ—表,或使用 ENTER éµæ交。"
-msgid "GlobalSearch|Search"
-msgstr "æœå°‹"
-
-msgid "GlobalSearch|Search GitLab"
-msgstr "æœå°‹ GitLab"
-
msgid "GlobalSearch|Search for projects, issues, etc."
msgstr "æœå°‹å°ˆæ¡ˆã€è­°é¡Œç­‰ã€‚"
@@ -22201,9 +22578,6 @@ msgstr "æœå°‹è©žçš„長度必須至少為 3 個字元。"
msgid "GlobalSearch|There was an error fetching search autocomplete suggestions."
msgstr "å–å¾—æœå°‹è‡ªå‹•å®Œæˆå»ºè­°æ™‚發生錯誤。"
-msgid "GlobalSearch|There was an error fetching the \"Syntax Options\" document."
-msgstr "æ“·å–「語法é¸é …ã€æ–‡ä»¶æ™‚發生錯誤。"
-
msgid "GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search"
msgstr "輸入 %{kbdOpen}/%{kbdClose} 進行æœå°‹"
@@ -22213,9 +22587,6 @@ msgstr "輸入並按回車éµæ交æœå°‹ã€‚"
msgid "GlobalSearch|Type for new suggestions to appear below."
msgstr "新建議在下é¢é¡¯ç¤ºã€‚"
-msgid "GlobalSearch|Use the shortcut key %{kbdOpen}/%{kbdClose} to start a search"
-msgstr "使用快æ·éµ %{kbdOpen}/%{kbdClose} 開始æœå°‹"
-
msgid "GlobalSearch|Users"
msgstr "使用者"
@@ -22330,9 +22701,6 @@ msgstr "å‰å¾€å‰ä¸€é "
msgid "Go to previous unresolved thread"
msgstr "å‰å¾€ä¸Šä¸€å€‹æœªè§£æ±ºçš„線程"
-msgid "Go to primary site"
-msgstr "å‰å¾€ä¸»è¦ç«™é»ž"
-
msgid "Go to project"
msgstr "è·³å‰å¾€é …ç›®"
@@ -22402,6 +22770,9 @@ msgstr "å‰å¾€æ‚¨çš„審閱請求"
msgid "Go to your snippets"
msgstr "å‰å¾€æ‚¨çš„程å¼ç¢¼ç‰‡æ®µ"
+msgid "Google Artifact Registry"
+msgstr ""
+
msgid "Google Cloud"
msgstr "Google 雲"
@@ -22414,6 +22785,9 @@ msgstr "Google 雲專案"
msgid "Google Cloud authorizations required"
msgstr "éœ€è¦ Google 雲èªè­‰"
+msgid "Google Play service account key."
+msgstr ""
+
msgid "GoogleCloud|Cancel"
msgstr "GoogleCloud|å–消"
@@ -22450,12 +22824,12 @@ msgstr "撤銷授權"
msgid "GoogleCloud|Revoke authorizations granted to GitLab. This does not invalidate service accounts."
msgstr "撤銷授予 GitLab 的授權,ä¸æœƒä½¿æœå‹™å¸³è™Ÿå¤±æ•ˆã€‚"
-msgid "GooglePlayStore|Only set variables on protected branches and tags"
-msgstr "僅在å—ä¿è­·çš„分支和標籤上設定變數"
-
msgid "GooglePlayStore|Protected branches and tags only"
msgstr "僅é™å—ä¿è­·çš„分支和標籤"
+msgid "GooglePlayStore|Set variables on protected branches and tags only"
+msgstr ""
+
msgid "GooglePlay|Drag your key file here or %{linkStart}click to upload%{linkEnd}."
msgstr "將您的密鑰文件拖到此處或 %{linkStart}點擊上傳%{linkEnd}。"
@@ -22483,9 +22857,6 @@ msgstr "使用 GitLab 在 Google Play 中構建和發布應用程å¼ã€‚"
msgid "Got it"
msgstr "知é“了"
-msgid "Got it!"
-msgstr "了解ï¼"
-
msgid "Grafana URL"
msgstr "Grafana網å€"
@@ -22624,6 +22995,9 @@ msgstr "群組訊æ¯"
msgid "Group information"
msgstr "群組資訊"
+msgid "Group invite"
+msgstr ""
+
msgid "Group jobs by"
msgstr "群組作業ä¾"
@@ -22717,11 +23091,14 @@ msgstr "群組已æˆåŠŸåŒ¯å…¥ã€‚"
msgid "GroupImport|Unable to process group import file"
msgstr "無法處ç†ç¾¤çµ„匯入文件"
-msgid "GroupPage|Copy group ID"
-msgstr "複製群組 ID"
+msgid "GroupPage|Copy group ID: %{id}"
+msgstr ""
+
+msgid "GroupPage|Group ID copied to clipboard."
+msgstr ""
-msgid "GroupPage|Group ID: %{group_id}"
-msgstr "群組 ID: %{group_id}"
+msgid "GroupPage|Group ID: %{id}"
+msgstr ""
msgid "GroupRoadmap|%{dateWord} – No end date"
msgstr "%{dateWord} - ç„¡çµæŸæ—¥æœŸ"
@@ -22984,6 +23361,9 @@ msgstr "當執行個體é”到使用者上é™å¾Œï¼Œä»»ä½•æ–°å¢žçš„使用者或請
msgid "GroupSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave empty for an unlimited user cap. If you change the user cap to unlimited, you must re-enable %{project_sharing_docs_link_start}project sharing%{link_end} and %{group_sharing_docs_link_start}group sharing%{link_end}. Increasing the user cap does not automatically approve pending users."
msgstr "當執行個體é”到使用者上é™å¾Œï¼Œæ–°å¢žæˆ–請求訪å•çš„任何使用者都需è¦ç”±ç®¡ç†å“¡é€²è¡Œå¯©æ ¸æ‰èƒ½æ‰¹å‡†ã€‚è‹¥è¦è¨­å®šç„¡é™åˆ¶çš„使用者上é™ï¼Œè«‹ç•™ç©ºè©²æ¬„ä½ã€‚如果您將使用者上é™æ”¹ç‚ºç„¡é™åˆ¶ï¼Œæ‚¨å¿…é ˆé‡æ–°å•Ÿç”¨ %{project_sharing_docs_link_start}專案分享%{link_end} å’Œ %{group_sharing_docs_link_start}群組分享%{link_end}。增加使用者上é™ä¸æœƒè‡ªå‹•æ‰¹å‡†å¾…審核的使用者。"
+msgid "GroupSettings|An experiment is a feature that is in the process of being developed. It is not production-ready. We encourage users to try experimental features and provide feedback. %{link_start}Learn more%{link_end}."
+msgstr ""
+
msgid "GroupSettings|Analytics"
msgstr "分æž"
@@ -23005,6 +23385,9 @@ msgstr "徽章"
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
msgstr "注æ„,更改群組的父級å¯èƒ½æœƒç”¢ç”Ÿæ„想ä¸åˆ°çš„副作用。%{learn_more_link_start}瞭解更多。%{learn_more_link_end}"
+msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
+msgstr ""
+
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgstr "無法更新路徑。因為此群組下的專案包å«äº†å®¹å™¨æ˜ åƒåº«çš„Docker映åƒã€‚請先從您的專案中移除映åƒå¾Œé‡è©¦ã€‚"
@@ -23047,12 +23430,21 @@ msgstr "é è¨­ç‚ºæ­¤ç¾¤çµ„中所有專案的 Auto DevOps æµæ°´ç·š"
msgid "GroupSettings|Email notifications are disabled"
msgstr "é›»å­éƒµä»¶é€šçŸ¥å·²ç¦ç”¨"
+msgid "GroupSettings|Enable caching of hierarchical objects (subgroups and projects) to improve the performance of group-level features within a large group."
+msgstr ""
+
msgid "GroupSettings|Enable overview background aggregation for Value Streams Dashboard"
msgstr "為價值æµå„€è¡¨æ¿å•Ÿç”¨æ¦‚觀背景èšåˆ"
msgid "GroupSettings|Enabling these features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr "啟用這些功能å³è¡¨ç¤ºæ‚¨æŽ¥å— %{link_start}GitLab 測試å”è­°%{link_end}。"
+msgid "GroupSettings|Enforce SSH Certificates"
+msgstr "強制執行 SSH 憑證"
+
+msgid "GroupSettings|Experiment"
+msgstr ""
+
msgid "GroupSettings|Experiment and Beta features"
msgstr "實驗與 Beta 功能"
@@ -23077,6 +23469,9 @@ msgstr "如果父群組的å¯è¦‹æ€§ä½Žæ–¼è©²ç¾¤çµ„的當å‰å¯è¦‹æ€§ï¼Œå‰‡å­ç¾¤
msgid "GroupSettings|Members cannot invite groups outside of %{group} and its subgroups"
msgstr "æˆå“¡ä¸èƒ½é‚€è«‹ %{group} 以外的群組åŠå…¶å­ç¾¤çµ„"
+msgid "GroupSettings|Namespace setting"
+msgstr "命å空間設定"
+
msgid "GroupSettings|Organizations and contacts can be created and associated with issues."
msgstr "組織和è¯çµ¡äººå¯ä»¥è¢«å»ºç«‹ä¸¦é—œè¯åˆ°è­°é¡Œã€‚"
@@ -23101,6 +23496,12 @@ msgstr "%{group} 內的專案無法與其他群組共享"
msgid "GroupSettings|Reporting"
msgstr "報告"
+msgid "GroupSettings|Security policy Pipeline Execution Action Experiment"
+msgstr ""
+
+msgid "GroupSettings|Security policy scope Experiment"
+msgstr ""
+
msgid "GroupSettings|Select a subgroup to use as a source of custom templates for new projects in this group. %{link_start}Learn more%{link_end}."
msgstr "é¸æ“‡ä¸€å€‹å­ç¾¤çµ„以作為該群組中新專案的自定義模æ¿ä¾†æºï¼Œ%{link_start}了解更多%{link_end}。"
@@ -23143,6 +23544,9 @@ msgstr "æ›´æ–°æµæ°´ç·šè¨­å®šæ™‚出ç¾å•é¡Œ: %{error_messages}。"
msgid "GroupSettings|These features are being developed and might be unstable."
msgstr "這些功能正在開發中,å¯èƒ½ä¸ç©©å®šã€‚"
+msgid "GroupSettings|This feature is being developed and might be unstable."
+msgstr ""
+
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
msgstr "此設定已經應用於 %{ancestor_group},並已覆蓋此å­ç¾¤çµ„的設定。"
@@ -23206,30 +23610,6 @@ msgstr "群組是組織專案和人員的好方法。"
msgid "Groups are the best way to manage projects and members."
msgstr "群組是管ç†å°ˆæ¡ˆå’Œæˆå“¡çš„最佳方å¼ã€‚"
-msgid "GroupsDropdown|Frequently visited"
-msgstr "經常造訪的群組"
-
-msgid "GroupsDropdown|Groups you visit often will appear here"
-msgstr "您經常造訪的群組將出ç¾åœ¨é€™è£¡"
-
-msgid "GroupsDropdown|Loading groups"
-msgstr "載入群組中"
-
-msgid "GroupsDropdown|Search your groups"
-msgstr "æœå°‹æ‚¨çš„群組"
-
-msgid "GroupsDropdown|Something went wrong on our end."
-msgstr "發生了內部錯誤."
-
-msgid "GroupsDropdown|Sorry, no groups matched your search"
-msgstr "å°ä¸èµ·ï¼Œæœªæœå°‹åˆ°ä»»ä½•ç¬¦åˆçš„群組"
-
-msgid "GroupsDropdown|This feature requires browser localStorage support"
-msgstr "此功能需è¦ç€è¦½å™¨æœ¬æ©Ÿå„²å­˜æ”¯æ´"
-
-msgid "GroupsDropdown|Toggle edit mode"
-msgstr "切æ›ç·¨è¼¯æ¨¡å¼"
-
msgid "GroupsEmptyState|A group is a collection of several projects"
msgstr "群組是多個專案的集åˆ"
@@ -23290,8 +23670,8 @@ msgstr "建立å­ç¾¤çµ„"
msgid "GroupsNew|Enter the URL for the source instance."
msgstr "輸入來æºç«™å°çš„ URL。"
-msgid "GroupsNew|GitLab source instance URL"
-msgstr "GitLab 來æºç«™å° URL"
+msgid "GroupsNew|GitLab source instance base URL"
+msgstr "GitLab 來æºå¯¦ä¾‹åŸºæœ¬ URL"
msgid "GroupsNew|Groups"
msgstr "群組"
@@ -23332,8 +23712,8 @@ msgstr "è«‹è¦æ±‚您的管ç†å“¡åœ¨ç®¡ç†è¨­å®šä¸­å•Ÿç”¨å®ƒã€‚"
msgid "GroupsNew|Please fill in your personal access token."
msgstr "請填寫您的個人存å–令牌。"
-msgid "GroupsNew|Provide credentials for the source instance to import from. You can provide this instance as a source to move groups in this instance."
-msgstr "為è¦å¾žä¸­åŒ¯å…¥çš„來æºç«™å°æ供憑證。您å¯ä»¥æ供此站å°ä½œç‚ºä¾†æºç«™å°ä»¥åœ¨æ­¤ç«™å°ä¸­ç§»å‹•ç¾¤çµ„。"
+msgid "GroupsNew|Provide credentials for the %{url_link_start}source instance%{url_link_end} to import from. You can provide this instance as a source to move groups within this instance."
+msgstr "æ供從 %{url_link_start}來æºå¯¦ä¾‹%{url_link_end} 的憑證以進行匯入,您å¯ä»¥å°‡æ­¤å¯¦ä¾‹ä½œç‚ºä¾†æºä¾†ç§»å‹•ç¾¤çµ„。"
msgid "GroupsNew|Remember to enable it also on the instance you are migrating from."
msgstr "請記得在來æºçš„ç«™å°ä¸Šä¹Ÿå•Ÿç”¨å®ƒã€‚"
@@ -23455,6 +23835,9 @@ msgstr "這將建立一個專案 %{path} 並新增 README.md 檔案。"
msgid "Groups|You're creating a new top-level group"
msgstr "您正在建立一個新的最上層群組"
+msgid "Groups|Your group name must not contain a period if you intend to use SCIM integration, as it can lead to errors."
+msgstr ""
+
msgid "Guest"
msgstr "訪客"
@@ -23509,6 +23892,15 @@ msgstr "您的 Harbor 使用者å的密碼。"
msgid "HarborIntegration|The name of the project in Harbor."
msgstr "Harbor 中的專案å稱。"
+msgid "HarborIntegration|The name of the project in the Harbor instance. For example, `testproject`."
+msgstr ""
+
+msgid "HarborIntegration|The password of the user."
+msgstr ""
+
+msgid "HarborIntegration|The username created in the Harbor interface."
+msgstr ""
+
msgid "HarborIntegration|Use Harbor as this project's container registry."
msgstr "使用 Harbor 作為該專案的容器映åƒåº«ã€‚"
@@ -23763,10 +24155,6 @@ msgstr "éš±è—話題"
msgid "Hide tooltips or popovers"
msgstr "éš±è—工具æ示或彈出窗å£"
-msgid "Hide value"
-msgid_plural "Hide values"
-msgstr[0] "éš±è—值"
-
msgid "Hide values"
msgstr "éš±è—值"
@@ -23785,6 +24173,9 @@ msgstr "是å¦æœ‰æ‚¨å¸Œæœ›åœ¨ GitLab 中存å–的框架或工作項類型?給æ
msgid "Hierarchy|Planning hierarchy"
msgstr "è¦åŠƒå±¤æ¬¡çµæ§‹"
+msgid "Hierarchy|Something went wrong while fetching ancestors."
+msgstr "æ“·å–先祖(ancestors)時發生錯誤。"
+
msgid "Hierarchy|Something went wrong while fetching children."
msgstr "æ“·å–å­é …目時發生錯誤。"
@@ -23860,6 +24251,9 @@ msgstr "例行維護"
msgid "Housekeeping successfully started"
msgstr "已開始維護"
+msgid "How can I make my variables more secure?"
+msgstr ""
+
msgid "How do I change my password in GitLab?"
msgstr "如何在 GitLab 中更改密碼?"
@@ -23950,6 +24344,9 @@ msgstr "抱歉,我找ä¸åˆ°ä»»ä½•æ–‡ä»¶ä¾†å›žç­”您的å•é¡Œã€‚"
msgid "ID"
msgstr "ID"
+msgid "ID portion of the Campfire room URL."
+msgstr ""
+
msgid "ID:"
msgstr "ID:"
@@ -24044,9 +24441,6 @@ msgid "IdentityVerification|%d country found"
msgid_plural "IdentityVerification|%d countries found"
msgstr[0] "找到 %d 個國家"
-msgid "IdentityVerification|%{linkStart}Enter a new phone number%{linkEnd}"
-msgstr "%{linkStart}輸入一個新的電話號碼%{linkEnd}"
-
msgid "IdentityVerification|A code has already been sent to this email address. Check your spam folder or enter another email address."
msgstr "已經å‘此電å­éƒµä»¶åœ°å€ç™¼é€äº†ä¸€å€‹é©—證碼,請檢查您的垃圾郵件文件夾或輸入å¦ä¸€å€‹é›»å­éƒµä»¶åœ°å€ã€‚"
@@ -24062,8 +24456,8 @@ msgstr "在您完æˆå¸³è™Ÿå»ºç«‹å‰ï¼Œæˆ‘們需è¦é©—證您的身份。 請在é©
msgid "IdentityVerification|Before you sign in, we need to verify your identity. Enter the following code on the sign-in page."
msgstr "在您登入之å‰ï¼Œæˆ‘們需è¦é©—證您的身份,請在登入é é¢è¼¸å…¥ä»¥ä¸‹é©—證碼。"
-msgid "IdentityVerification|Complete verification to sign in."
-msgstr "完æˆç™»å…¥é©—證。"
+msgid "IdentityVerification|Complete verification to sign up."
+msgstr "完æˆè¨»å†Šé©—證。"
msgid "IdentityVerification|Confirm your email address"
msgstr "請確èªæ‚¨çš„é›»å­éƒµä»¶åœ°å€"
@@ -24074,8 +24468,11 @@ msgstr "國家或地å€"
msgid "IdentityVerification|Didn't receive a code?"
msgstr "沒有收到驗證碼?"
-msgid "IdentityVerification|Didn't receive a code? %{linkStart}Send a new code%{linkEnd}"
-msgstr "尚未收到代碼? %{linkStart}發é€æ–°çš„代碼%{linkEnd}"
+msgid "IdentityVerification|Didn't receive a code? %{codeLinkStart}Send a new code%{codeLinkEnd} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr "沒收到代碼嗎?%{codeLinkStart}發é€æ–°ä»£ç¢¼%{codeLinkEnd}或%{phoneLinkStart}輸入新的手機號碼%{phoneLinkEnd}"
+
+msgid "IdentityVerification|Didn't receive a code? Send a new code in %{timer} or %{phoneLinkStart}enter a new phone number%{phoneLinkEnd}"
+msgstr ""
msgid "IdentityVerification|Email update is only offered once."
msgstr "é›»å­éƒµä»¶æ›´æ–°åƒ…æ供一次。"
@@ -24146,6 +24543,9 @@ msgstr "發é€æ–°çš„驗證碼"
msgid "IdentityVerification|Send code"
msgstr "發é€é©—證碼"
+msgid "IdentityVerification|Send code in %{timer}"
+msgstr ""
+
msgid "IdentityVerification|Something went wrong. Please try again."
msgstr "發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
@@ -24433,9 +24833,6 @@ msgstr "匯入群組"
msgid "Import group from file"
msgstr "從文件匯入群組"
-msgid "Import groups"
-msgstr "匯入群組"
-
msgid "Import history"
msgstr "匯入歷å²"
@@ -24611,12 +25008,12 @@ msgstr "匯入中..."
msgid "Import|An error occurred while fetching import details."
msgstr "讀å–匯匯入詳細訊æ¯æ™‚發生錯誤。"
+msgid "Import|Failures for %{id}"
+msgstr " %{id} 的失敗"
+
msgid "Import|GitHub import details"
msgstr "GitHub 匯入細節"
-msgid "Import|GitLab Migration details"
-msgstr "GitLab é·ç§»è©³ç´°è³‡è¨Š"
-
msgid "Import|Maximum decompressed file size for archives from imports (MiB)"
msgstr "åŒ¯å…¥å­˜æª”çš„æœ€å¤§è§£å£“ç¸®æª”æ¡ˆå¤§å° (MiB)"
@@ -24629,6 +25026,9 @@ msgstr "從外部å°è±¡å„²å­˜åŒ¯å…¥æ™‚的最大é ç«¯æ–‡ä»¶å¤§å°ï¼Œä¾‹å¦‚,AWS
msgid "Import|Maximum size of decompressed archive."
msgstr "解壓存檔的最大大å°ã€‚"
+msgid "Import|Must only contain the base URL of the source GitLab instance."
+msgstr "å¿…é ˆåªåŒ…å«ä¾†æºGitLab實例的基本URL。"
+
msgid "Import|No import details"
msgstr "無匯入細節"
@@ -24644,6 +25044,9 @@ msgstr "無法匯入版本庫。"
msgid "Import|There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials."
msgstr "在此 URL 上沒有有效的 Git 倉庫。如果您的 HTTP 倉庫ä¸èƒ½å…¬é–‹å­˜å–,請驗證您的憑據。"
+msgid "Import|This project is being imported. Do not make any changes to the project until the import is complete."
+msgstr ""
+
msgid "Import|Timeout for decompressing archived files (seconds)"
msgstr "解壓縮存檔文件的逾時時間(秒)"
@@ -25130,6 +25533,9 @@ msgstr "指示此runner是å¦å¯ä»¥é¸æ“‡ç„¡æ¨™è¨˜çš„作業"
msgid "Inform users without uploaded SSH keys that they can't push over SSH until one is added"
msgstr "通知使用者沒有上傳 SSH 金鑰,如果沒有 SSH 金鑰,將無法é€éŽ SSH 推é€ã€‚"
+msgid "Information"
+msgstr "資訊"
+
msgid "Infrastructure"
msgstr "基礎設施"
@@ -25255,9 +25661,6 @@ msgstr "æŸäº›é …ç›®ä¸å¯è¦‹ï¼Œå› ç‚ºå°ˆæ¡ˆåœ¨ insights.yml 專案中被éŽæ¿¾æ
msgid "Insights|This project is filtered out in the insights.yml file (see the projects.only config for more information)."
msgstr "此專案已在insights.yml文件中éŽæ¿¾æŽ‰(見projects.onlyé…置以瞭解更多訊æ¯)。"
-msgid "Install GitLab Runner and ensure it's running."
-msgstr "å®‰è£ GitLab 執行器並確ä¿å®ƒæ­£åœ¨é‹è¡Œã€‚"
-
msgid "Installation"
msgstr "安è£"
@@ -25643,9 +26046,6 @@ msgstr "無效的文件。"
msgid "Invalid format selected"
msgstr "é¸å–çš„æ ¼å¼ç„¡æ•ˆ"
-msgid "Invalid hash"
-msgstr "無效雜湊"
-
msgid "Invalid input, please avoid emoji"
msgstr "輸入無效,請é¿å…使用表情符號"
@@ -25851,11 +26251,11 @@ msgstr "è¦å–得更多æˆå“¡ï¼Œç¾¤çµ„çš„æ“有者å¯ä»¥ %{trialLinkStart}開始
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr "è¦é‚€è«‹æ–°ä½¿ç”¨è€…加入該最上層群組,您必須刪除ç¾æœ‰ä½¿ç”¨è€…。您ä»ç„¶å¯ä»¥å¾žæœ€ä¸Šå±¤ç¾¤çµ„添加ç¾æœ‰ä½¿ç”¨è€…,包括任何å­ç¾¤çµ„和專案。"
-msgid "InviteMembersModal|Username"
-msgstr "使用者å稱"
+msgid "InviteMembersModal|Username or name"
+msgstr "使用者å稱或姓å"
-msgid "InviteMembersModal|Username or email address"
-msgstr "使用者å稱或郵箱地å€"
+msgid "InviteMembersModal|Username, name or email address"
+msgstr "使用者å稱ã€å§“å或電å­éƒµä»¶åœ°å€"
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
msgstr "在 %{name},您åªæœ‰ %{count} 個更多的 %{members} 的空間"
@@ -26181,14 +26581,14 @@ msgstr "議題 URL"
msgid "IssueTracker|New issue URL"
msgstr "新建議題URL"
-msgid "IssueTracker|The URL to create an issue in the external issue tracker."
-msgstr "在外部議題追蹤器中建立議題的 URL。"
+msgid "IssueTracker|URL of the project in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to the project in the external issue tracker."
-msgstr "外部議題追蹤器中專案的 URL。"
+msgid "IssueTracker|URL to create an issue in the external issue tracker."
+msgstr ""
-msgid "IssueTracker|The URL to view an issue in the external issue tracker. Must contain %{colon_id}."
-msgstr "在外部議題追蹤器中查看議題的 URLã€‚å¿…é ˆåŒ…å« %{colon_id}。"
+msgid "IssueTracker|URL to view an issue in the external issue tracker. Must contain %{colon_id}."
+msgstr ""
msgid "IssueTracker|Use Bugzilla as this project's issue tracker."
msgstr "使用 Bugzilla 作為該專案的議題追蹤器。"
@@ -26292,6 +26692,10 @@ msgstr "æ¯æœˆå»ºç«‹çš„è­°é¡Œ"
msgid "IssuesAnalytics|Last 12 months (%{chartDateRange})"
msgstr "éŽåŽ»12個月(%{chartDateRange})"
+msgid "IssuesAnalytics|Last month (%{dateRange})"
+msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{dateRange})"
+msgstr[0] "éŽåŽ» %{monthsCount} 個月 (%{dateRange})"
+
msgid "IssuesAnalytics|Opened"
msgstr "已開啟"
@@ -26301,9 +26705,8 @@ msgstr "概述"
msgid "IssuesAnalytics|Sorry, your filter produced no results"
msgstr "抱歉,無符åˆéŽæ¿¾å™¨çš„çµæžœ"
-msgid "IssuesAnalytics|This month (%{chartDateRange})"
-msgid_plural "IssuesAnalytics|Last %{monthsCount} months (%{chartDateRange})"
-msgstr[0] "éŽåŽ» %{monthsCount} 個月 (%{chartDateRange})"
+msgid "IssuesAnalytics|This month (%{currentMonthYear})"
+msgstr "本月 (%{currentMonthYear})"
msgid "IssuesAnalytics|To widen your search, change or remove filters in the filter bar above."
msgstr "è¦åœ¨ä¸Šé¢çš„篩é¸æ¢ä»¶ä¸­æ“´å¤§æœç´¢ç¯„åœï¼Œæ›´æ”¹æˆ–刪除篩é¸æ¢ä»¶ã€‚"
@@ -26344,6 +26747,9 @@ msgstr "ä¾è³´é …掃æ作業é‹è¡ŒæˆåŠŸï¼Œä½†æ‚¨çš„專案中沒有檢測到ä¾
msgid "It seems that there is currently no available data for code coverage"
msgstr "ç›®å‰ä¼¼ä¹Žç„¡å¯ç”¨è³‡æ–™ä¾†é€²è¡Œç¨‹å¼ç¢¼è¦†è“‹çŽ‡è¨ˆç®—"
+msgid "It seems your question relates to GitLab documentation. Unfortunately, this feature is not yet available in this GitLab instance. Your feedback is welcome."
+msgstr ""
+
msgid "It's you"
msgstr "你自己"
@@ -26473,6 +26879,9 @@ msgstr "載入迭代週期時發生錯誤。"
msgid "Iterations|Incomplete issues will be added to the next iteration at %{strongStart}midnight, %{timezone}%{strongEnd}."
msgstr "未完æˆçš„議題將在 %{timezone}%{strongEnd}åˆå¤œ %{strongStart}點加入到下一次迭代。"
+msgid "Iterations|Iteration cadence"
+msgstr "迭代週期"
+
msgid "Iterations|Iteration cadences"
msgstr "迭代週期"
@@ -26602,6 +27011,9 @@ msgstr "Jira-GitLab使用者å°æ‡‰ç¯„本"
msgid "JiraConnect|Are you a GitLab administrator?"
msgstr "您是 GitLab 管ç†å“¡å—Žï¼Ÿ"
+msgid "JiraConnect|Are you a Jira administrator?"
+msgstr ""
+
msgid "JiraConnect|Cannot find namespace. Make sure you have sufficient permissions."
msgstr "找ä¸åˆ°å‘½å空間,請確èªæ‚¨æœ‰è¶³å¤ çš„權é™ã€‚"
@@ -26671,15 +27083,15 @@ msgstr "群組éˆæŽ¥æˆåŠŸ"
msgid "JiraConnect|Groups are the GitLab groups and subgroups you link to this Jira instance."
msgstr "群組是您與此 Jira 執行個體關è¯çš„ GitLab 群組和å­ç¾¤çµ„。"
-msgid "JiraConnect|In order to complete the set up, you’ll need to complete a few steps in GitLab:"
-msgstr "為了完æˆè¨­å®šï¼Œæ‚¨å¿…須在 GitLab 中完æˆå¹¾å€‹æ­¥é©Ÿï¼š"
-
msgid "JiraConnect|Jira Connect Application ID"
msgstr "Jira Connect æ‡‰ç”¨ç¨‹åº ID"
msgid "JiraConnect|Jira Connect Proxy URL"
msgstr "Jira Connect 代ç†ä¼ºæœå™¨ URL"
+msgid "JiraConnect|Jira user requirements"
+msgstr ""
+
msgid "JiraConnect|Link groups"
msgstr "éˆçµç¾¤çµ„"
@@ -26731,6 +27143,12 @@ msgstr "告訴我們您的想法ï¼"
msgid "JiraConnect|The Jira user is not a site or organization administrator. Check the permissions in Jira and try again."
msgstr "Jira 使用者ä¸æ˜¯ç¶²ç«™æˆ–組織管ç†å“¡ï¼Œæª¢æŸ¥ Jira 中的權é™ï¼Œç„¶å¾Œå†è©¦ä¸€æ¬¡ã€‚"
+msgid "JiraConnect|To complete the setup, you must follow a few steps in GitLab:"
+msgstr ""
+
+msgid "JiraConnect|To complete the setup, you must meet %{linkStart}certain user requirements%{linkEnd} in Jira."
+msgstr ""
+
msgid "JiraConnect|We would love to learn more about your experience with the GitLab for Jira Cloud App."
msgstr "我們很想詳細了解您使用 GitLab for Jira Cloud 應用程å¼çš„體驗。"
@@ -26779,6 +27197,9 @@ msgstr "å­˜å–Jira的憑證ä¸å…許存å–資料。%{docs_link_start}檢查您çš
msgid "JiraRequest|The credentials for accessing Jira are not valid. Check your %{docs_link_start}Jira integration credentials%{docs_link_end} and try again."
msgstr "å­˜å– Jira 的憑證無效。檢查您的 %{docs_link_start}Jira æ•´åˆæ†‘è­‰%{docs_link_end} 並é‡è©¦ã€‚"
+msgid "JiraRequest|Unable to connect to the Jira URL. Please verify your %{config_link_start}Jira integration URL%{config_link_end} and attempt the connection again."
+msgstr ""
+
msgid "JiraService| on branch %{branch_link}"
msgstr "於分支%{branch_link}"
@@ -26938,8 +27359,8 @@ msgstr "使用å‰ç¶´åŒ¹é… Jira è­°é¡Œéµã€‚"
msgid "JiraService|Use custom transitions"
msgstr "使用自訂轉æ›"
-msgid "JiraService|Use regular expression to match Jira issue keys."
-msgstr "使用正則表é”å¼åŒ¹é… Jira è­°é¡Œéµã€‚"
+msgid "JiraService|Use regular expression to match Jira issue keys. The regular expression must follow the %{link_start}RE2 syntax%{link_end}. If empty, the default behavior is used."
+msgstr "使用正則表é”å¼ä¾†åŒ¹é…Jiraå•é¡Œéµï¼Œæ­£å‰‡è¡¨é”å¼å¿…é ˆéµå¾ª%{link_start}RE2語法%{link_end}, 如果為空,則使用默èªè¡Œç‚ºã€‚"
msgid "JiraService|Using Jira for issue tracking?"
msgstr "使用 Jira 追蹤å•é¡Œï¼Ÿ"
@@ -27208,6 +27629,9 @@ msgstr "期間"
msgid "Job|Erase job log and artifacts"
msgstr "擦除作業日誌和產物"
+msgid "Job|Exit full screen"
+msgstr ""
+
msgid "Job|External links"
msgstr "外部連çµ"
@@ -27217,6 +27641,9 @@ msgstr "失敗"
msgid "Job|Finished at"
msgstr "完æˆæ–¼"
+msgid "Job|Full screen mode is not available"
+msgstr ""
+
msgid "Job|Job artifacts"
msgstr "作業產物"
@@ -27289,6 +27716,9 @@ msgstr "æœå°‹å·¥ä½œæ—¥èªŒ"
msgid "Job|Show complete raw"
msgstr "顯示完整æº"
+msgid "Job|Show full screen"
+msgstr ""
+
msgid "Job|Skipped"
msgstr "ç•¥éŽ"
@@ -27409,9 +27839,6 @@ msgstr "金鑰 (PEM)"
msgid "Key details"
msgstr "é—œéµç´°ç¯€"
-msgid "Key result"
-msgstr "é—œéµçµæžœ"
-
msgid "Key:"
msgstr "金鑰:"
@@ -27448,6 +27875,9 @@ msgstr "éµ"
msgid "Ki"
msgstr "Ki"
+msgid "KiB"
+msgstr ""
+
msgid "Kroki"
msgstr "Kroki"
@@ -27478,6 +27908,120 @@ msgstr "Kubernetes å¢é›†"
msgid "Kubernetes deployment not found"
msgstr "找ä¸åˆ°Kubernetes部署"
+msgid "KubernetesDashboard|Age"
+msgstr "年齡"
+
+msgid "KubernetesDashboard|Agent %{name} ID #%{id}"
+msgstr "ä»£ç† %{name} ID #%{id}"
+
+msgid "KubernetesDashboard|Agents"
+msgstr "代ç†"
+
+msgid "KubernetesDashboard|Annotations"
+msgstr "註解"
+
+msgid "KubernetesDashboard|Completed"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJob"
+msgstr ""
+
+msgid "KubernetesDashboard|CronJobs"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSet"
+msgstr ""
+
+msgid "KubernetesDashboard|DaemonSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Dashboard"
+msgstr "儀表æ¿"
+
+msgid "KubernetesDashboard|Deployment"
+msgstr ""
+
+msgid "KubernetesDashboard|Deployments"
+msgstr ""
+
+msgid "KubernetesDashboard|Failed"
+msgstr "失敗"
+
+msgid "KubernetesDashboard|Job"
+msgstr ""
+
+msgid "KubernetesDashboard|Jobs"
+msgstr ""
+
+msgid "KubernetesDashboard|Kind"
+msgstr "é¡žåž‹"
+
+msgid "KubernetesDashboard|Kubernetes Dashboard"
+msgstr ""
+
+msgid "KubernetesDashboard|Labels"
+msgstr "標籤"
+
+msgid "KubernetesDashboard|Learn more"
+msgstr ""
+
+msgid "KubernetesDashboard|Name"
+msgstr "å稱"
+
+msgid "KubernetesDashboard|Namespace"
+msgstr "命å空間"
+
+msgid "KubernetesDashboard|No agent selected"
+msgstr ""
+
+msgid "KubernetesDashboard|Pending"
+msgstr "等待中"
+
+msgid "KubernetesDashboard|Pod"
+msgstr "Pod"
+
+msgid "KubernetesDashboard|Pods"
+msgstr "Pod"
+
+msgid "KubernetesDashboard|Ready"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSet"
+msgstr ""
+
+msgid "KubernetesDashboard|ReplicaSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Running"
+msgstr "執行中"
+
+msgid "KubernetesDashboard|Service"
+msgstr ""
+
+msgid "KubernetesDashboard|Services"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSet"
+msgstr ""
+
+msgid "KubernetesDashboard|StatefulSets"
+msgstr ""
+
+msgid "KubernetesDashboard|Status"
+msgstr "狀態"
+
+msgid "KubernetesDashboard|Succeeded"
+msgstr "å·²æˆåŠŸ"
+
+msgid "KubernetesDashboard|Suspended"
+msgstr ""
+
+msgid "KubernetesDashboard|View projects"
+msgstr ""
+
+msgid "KubernetesDashboard|You can select an agent from a project's environment page."
+msgstr ""
+
msgid "LDAP"
msgstr "LDAP"
@@ -27572,6 +28116,12 @@ msgstr "標籤å¯ä»¥æ‡‰ç”¨åœ¨è­°é¡Œå’Œåˆä½µè«‹æ±‚,為標籤加上星標å¯ä»¥
msgid "Labels can be applied to issues, merge requests, and epics. Group labels are available for any project within the group."
msgstr "標記å¯ä»¥æ‡‰ç”¨æ–¼è­°é¡Œã€åˆä½µè«‹æ±‚å’Œå²è©© (epics) ,群組標記å¯ç”¨æ–¼ç¾¤çµ„內的任何專案。"
+msgid "Labels to be notified for. Valid options are `match_any` and `match_all`. The default value is `match_any`."
+msgstr ""
+
+msgid "Labels to send notifications for. Leave blank to receive notifications for all events."
+msgstr ""
+
msgid "Labels with no issues in this iteration:"
msgstr "此迭代中沒有議題的標記:"
@@ -27612,8 +28162,8 @@ msgstr "éŽåŽ» 24 å°æ™‚"
msgid "Last Accessed On"
msgstr "最後存å–æ–¼"
-msgid "Last Activity"
-msgstr "最近活動"
+msgid "Last GitLab activity"
+msgstr "最近一次的 GitLab 活動"
msgid "Last Name"
msgstr "姓"
@@ -27630,6 +28180,9 @@ msgstr "最後存å–時間"
msgid "Last activity"
msgstr "上次活動"
+msgid "Last attempted number:"
+msgstr ""
+
msgid "Last commit"
msgstr "最後æ交"
@@ -27913,9 +28466,6 @@ msgstr "設定您第一個專案的CI/CD"
msgid "LearnGitLab|Set up your workspace"
msgstr "設定您的工作å€"
-msgid "LearnGitLab|Start Learning GitLab"
-msgstr "開始學習 GitLab"
-
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr "開始å…費試用 GitLab 旗艦版"
@@ -27946,6 +28496,9 @@ msgstr "您的團隊正在æˆé•·ï¼æ‚¨å·²æˆåŠŸåœ°é‚€è«‹äº†æ–°çš„團隊æˆå“¡åˆ°
msgid "LearnGitlab|- Included in trial"
msgstr "- 包å«åœ¨è©¦ç”¨å…§"
+msgid "LearnGitlab|After your 30-day trial, this feature is available on the %{planName} tier only."
+msgstr "您的30天試用期çµæŸå¾Œï¼Œæ­¤åŠŸèƒ½åƒ…é©ç”¨æ–¼%{planName}套é¤ã€‚"
+
msgid "LearnGitlab|Contact your administrator to enable this action."
msgstr "è«‹è¯çµ¡æ‚¨çš„管ç†å“¡ä»¥å•Ÿç”¨æ­¤å‹•ä½œã€‚"
@@ -27961,9 +28514,6 @@ msgstr "查看管ç†è€…列表"
msgid "Leave"
msgstr "退出"
-msgid "Leave admin mode"
-msgstr "退出管ç†å“¡æ¨¡å¼"
-
msgid "Leave edit mode? All unsaved changes will be lost."
msgstr "退出編輯模å¼ï¼Ÿæ‰€æœ‰æœªå„²å­˜çš„變更都將éºå¤±ã€‚"
@@ -28156,8 +28706,8 @@ msgstr "元件"
msgid "Licenses|Components"
msgstr "元件"
-msgid "Licenses|Displays licenses detected in the project that are out of compliance with the project's policies, based on the %{linkStart}latest successful%{linkEnd} scan"
-msgstr "根據 %{linkStart}latest successful%{linkEnd} 掃æ,顯示在專案中檢測到的ä¸ç¬¦åˆå°ˆæ¡ˆæ”¿ç­–的授權æ¢æ¬¾"
+msgid "Licenses|Displays licenses detected in the project based on the %{linkStart}latest successful%{linkEnd} scan"
+msgstr ""
msgid "Licenses|Drag your license file here or %{linkStart}click to upload%{linkEnd}."
msgstr "將您的授權æ¢æ¬¾æ–‡ä»¶æ‹–動到此處,或 %{linkStart}點擊上傳%{linkEnd}"
@@ -28334,9 +28884,6 @@ msgstr "列表"
msgid "List available repositories"
msgstr "列出å¯ç”¨ç‰ˆæœ¬åº«"
-msgid "List of all commits"
-msgstr "所有æ交清單"
-
msgid "List of suitable GCP locations"
msgstr "åˆé©çš„ GCP ä½ç½®åˆ—表"
@@ -28370,6 +28917,9 @@ msgstr "載入更多"
msgid "Load more users"
msgstr "加載更多使用者"
+msgid "Load new file"
+msgstr "載入新文件"
+
msgid "Loading"
msgstr "載入中"
@@ -28463,39 +29013,15 @@ msgstr "正在鎖定討論"
msgid "Locks the discussion."
msgstr "鎖定討論."
-msgid "LoggedOutMarketingHeader|About GitLab"
-msgstr "關於 GitLab"
-
msgid "LoggedOutMarketingHeader|Contact Sales"
msgstr "è¯ç¹«éŠ·å”®äººå“¡"
msgid "LoggedOutMarketingHeader|Explore GitLab"
msgstr "ç€è¦½ GitLab"
-msgid "LoggedOutMarketingHeader|Get started"
-msgstr "開始使用"
-
-msgid "LoggedOutMarketingHeader|GitLab Learn"
-msgstr "GitLab 學習"
-
-msgid "LoggedOutMarketingHeader|GitLab docs"
-msgstr "GitLab 文件"
-
-msgid "LoggedOutMarketingHeader|GitLab: the DevOps platform"
-msgstr "GitLab:DevOps å¹³å°"
-
-msgid "LoggedOutMarketingHeader|How GitLab compares"
-msgstr "與åŒé¡žç”¢å“相比"
-
-msgid "LoggedOutMarketingHeader|Install GitLab"
-msgstr "å®‰è£ GitLab"
-
msgid "LoggedOutMarketingHeader|Pricing"
msgstr "定價"
-msgid "LoggedOutMarketingHeader|Talk to an expert"
-msgstr "與專家交談"
-
msgid "LoggedOutMarketingHeader|Why GitLab"
msgstr "為什麼é¸æ“‡ GitLab"
@@ -28523,12 +29049,6 @@ msgstr "MB"
msgid "MD5"
msgstr "MD5"
-msgid "MLExperimentTracking|CI Info"
-msgstr "CI 資訊"
-
-msgid "MLExperimentTracking|Delete candidate?"
-msgstr "刪除候é¸é …?"
-
msgid "MLExperimentTracking|Delete experiment?"
msgstr "刪除實驗?"
@@ -28583,9 +29103,6 @@ msgstr "Mailgun HTTP webhook ç°½å金鑰"
msgid "Mailgun events"
msgstr "Mailgun事件"
-msgid "Main menu"
-msgstr "主é¸å–®"
-
msgid "Maintainer"
msgstr "維護者"
@@ -29189,101 +29706,104 @@ msgstr "%{member_name}邀請您使用GitLab"
msgid "MemberInviteEmail|Invitation to join the %{project_or_group} %{project_or_group_name}"
msgstr "邀請加入 %{project_or_group} %{project_or_group_name}"
-msgid "MemberRoles|Actions"
+msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}"
+msgstr ""
+
+msgid "MemberRole|Actions"
msgstr "動作"
-msgid "MemberRoles|Add new role"
+msgid "MemberRole|Add new role"
msgstr "新增角色"
-msgid "MemberRoles|Are you sure you want to delete this role?"
+msgid "MemberRole|Are you sure you want to delete this role?"
msgstr "您確定è¦åˆªé™¤æ­¤è§’色嗎?"
-msgid "MemberRoles|Base role"
+msgid "MemberRole|Base role"
msgstr "基礎角色"
-msgid "MemberRoles|Base role to use as template"
+msgid "MemberRole|Base role to use as template"
msgstr "用作模æ¿çš„基礎角色"
-msgid "MemberRoles|Could not fetch available permissions: %{message}"
-msgstr "無法å–å¾—å¯ç”¨æ¬Šé™ï¼š %{message}"
+msgid "MemberRole|Could not fetch available permissions: %{message}"
+msgstr "無法å–å¾—å¯ç”¨æ¬Šé™ï¼š%{message}"
-msgid "MemberRoles|Create new role"
+msgid "MemberRole|Create new role"
msgstr "建立新角色"
-msgid "MemberRoles|Custom roles"
+msgid "MemberRole|Custom permissions:"
+msgstr "自訂權é™ï¼š"
+
+msgid "MemberRole|Custom roles"
msgstr "自訂角色"
-msgid "MemberRoles|Custom roles based on %{accessLevel}"
+msgid "MemberRole|Custom roles based on %{accessLevel}"
msgstr "基於 %{accessLevel} 的自訂角色"
-msgid "MemberRoles|Delete role"
+msgid "MemberRole|Delete role"
msgstr "刪除角色"
-msgid "MemberRoles|Description"
+msgid "MemberRole|Description"
msgstr "æè¿°"
-msgid "MemberRoles|Enter a short name."
+msgid "MemberRole|Enter a short name."
msgstr "輸入短å稱。"
-msgid "MemberRoles|Failed to create role."
+msgid "MemberRole|Failed to create role."
msgstr "建立角色失敗。"
-msgid "MemberRoles|Failed to delete the role."
+msgid "MemberRole|Failed to delete the role."
msgstr "刪除角色失敗。"
-msgid "MemberRoles|Failed to fetch roles."
+msgid "MemberRole|Failed to fetch roles."
msgstr "æ“·å–角色失敗。"
-msgid "MemberRoles|ID"
+msgid "MemberRole|ID"
msgstr "ID"
-msgid "MemberRoles|Incident manager"
+msgid "MemberRole|Incident manager"
msgstr "事件管ç†å“¡"
-msgid "MemberRoles|Make sure the group is in the Ultimate tier."
+msgid "MemberRole|Make sure the group is in the Ultimate tier."
msgstr "確ä¿è©²ç¾¤çµ„ä½æ–¼ Ultimate 層級。"
-msgid "MemberRoles|Name"
+msgid "MemberRole|Name"
msgstr "å稱"
-msgid "MemberRoles|No custom roles for this group"
+msgid "MemberRole|No custom roles for this group"
msgstr "此群組無自訂角色"
-msgid "MemberRoles|Permissions"
+msgid "MemberRole|Permissions"
msgstr "權é™"
-msgid "MemberRoles|Role name"
+msgid "MemberRole|Role name"
msgstr "角色å稱"
-msgid "MemberRoles|Role successfully created."
+msgid "MemberRole|Role successfully created."
msgstr "å·²æˆåŠŸå»ºç«‹è§’色。"
-msgid "MemberRoles|Role successfully deleted."
+msgid "MemberRole|Role successfully deleted."
msgstr "å·²æˆåŠŸåˆªé™¤è§’色。"
-msgid "MemberRoles|Select a standard role to add permissions."
+msgid "MemberRole|Select a standard role to add permissions."
msgstr "é¸å–標準角色以新增權é™ã€‚"
-msgid "MemberRoles|Standard roles"
+msgid "MemberRole|Standard roles"
msgstr "標準角色"
-msgid "MemberRoles|To add a new role select 'Add new role'."
+msgid "MemberRole|To add a new role select 'Add new role'."
msgstr "è¦æ–°å¢žè§’色,請é¸å–「新增角色ã€ã€‚"
-msgid "MemberRoles|To add a new role select a group and then 'Add new role'."
+msgid "MemberRole|To add a new role select a group and then 'Add new role'."
msgstr "è¦æ–°å¢žè§’色,請é¸å–一個群組,然後é¸å–「新增角色ã€ã€‚"
-msgid "MemberRoles|To delete the custom role make sure no group member has this custom role"
+msgid "MemberRole|To delete the custom role make sure no group member has this custom role"
msgstr "è¦åˆªé™¤è‡ªè¨‚角色,請確ä¿æ²’有群組æˆå“¡æ“有此自訂角色"
-msgid "MemberRole|%{requirement} has to be enabled in order to enable %{permission}."
-msgstr "必須先啟用%{requirement} æ‰èƒ½å•Ÿç”¨ %{permission}。"
-
msgid "MemberRole|can't be changed"
msgstr "無法被變更"
-msgid "MemberRole|cannot be changed because it is already assigned to a user. Please create a new Member Role instead"
-msgstr "無法變更,因為其已指派給使用者。請改為建立新的æˆå“¡è§’色"
+msgid "MemberRole|cannot be changed. Please create a new Member Role instead."
+msgstr ""
msgid "MemberRole|cannot be deleted because it is already assigned to a user. Please disassociate the member role from all users before deletion."
msgstr "無法被刪除,因為它已分派給使用者,刪除å‰è«‹è§£é™¤æˆå“¡è§’色與所有使用者的關è¯ã€‚"
@@ -29576,6 +30096,9 @@ msgstr "批准åˆä½µè«‹æ±‚"
msgid "Merge request author cannot push to target project"
msgstr "åˆä½µè«‹æ±‚作者無法推é€åˆ°ç›®æ¨™å°ˆæ¡ˆ"
+msgid "Merge request branch workflow"
+msgstr ""
+
msgid "Merge request change summary"
msgstr "åˆä½µè«‹æ±‚變更摘è¦"
@@ -29957,6 +30480,9 @@ msgstr "更新圖åƒæ™‚出ç¾å•é¡Œã€‚"
msgid "MetricImages|There was an issue uploading your image."
msgstr "上傳圖åƒæ™‚出ç¾å•é¡Œã€‚"
+msgid "Metrics"
+msgstr "指標"
+
msgid "Metrics - Grafana"
msgstr "指標 - Grafana"
@@ -29990,15 +30516,9 @@ msgstr "刪除指標"
msgid "Metrics|Delete metric?"
msgstr "刪除指標?"
-msgid "Metrics|Description"
-msgstr "æè¿°"
-
msgid "Metrics|Edit metric"
msgstr "編輯指標"
-msgid "Metrics|Failed to load metrics."
-msgstr "無法載入指標"
-
msgid "Metrics|For grouping similar metrics"
msgstr "用於分組類似指標"
@@ -30008,15 +30528,9 @@ msgstr "Y軸是標籤(通常是單ä½)。X軸總是代表時間。"
msgid "Metrics|Legend label (optional)"
msgstr "圖例標籤(å¯é¸ï¼‰"
-msgid "Metrics|Metrics"
-msgstr "指標"
-
msgid "Metrics|Must be a valid PromQL query."
msgstr "必須是有效的 PromQL 查詢。"
-msgid "Metrics|Name"
-msgstr "å稱"
-
msgid "Metrics|New metric"
msgstr "建立指標"
@@ -30029,9 +30543,6 @@ msgstr "Prometheus查詢文件"
msgid "Metrics|There was an error trying to validate your query"
msgstr "嘗試驗證您的查詢時發生錯誤"
-msgid "Metrics|Type"
-msgstr "é¡žåž‹"
-
msgid "Metrics|Unit label"
msgstr "å–®ä½æ¨™ç±¤"
@@ -30068,6 +30579,9 @@ msgstr "例如:req / sec"
msgid "Mi"
msgstr "Mi"
+msgid "MiB"
+msgstr ""
+
msgid "Microsoft|Client ID"
msgstr "客戶端 ID"
@@ -30291,9 +30805,15 @@ msgstr "最å°å€¼"
msgid "Minimal Access"
msgstr "最å°å­˜å–權é™"
+msgid "Minimize the risk of secrets from being committed to any repository in this GitLab instance."
+msgstr "最大é™åº¦åœ°é™ä½Žæ•æ„Ÿè¨Šæ¯è¢«æ交到此 GitLab 執行個體中任何版本庫的風險。"
+
msgid "Minimum capacity to be available before we schedule more mirrors preemptively."
msgstr "在我們é å…ˆå®‰æŽ’更多映åƒä¹‹å‰å¯ç”¨çš„最å°å®¹é‡ã€‚"
+msgid "Minimum role required to cancel a pipeline or job"
+msgstr "å–消æµæ°´ç·šæˆ–工作所需的最å°è§’色"
+
msgid "Minutes"
msgstr "分é˜"
@@ -30387,9 +30907,6 @@ msgstr "作者"
msgid "MlExperimentTracking|CI Job"
msgstr "CI 作業"
-msgid "MlExperimentTracking|Candidate not linked to a CI build"
-msgstr "候é¸ä¸¦æœªé€£çµè‡³ CI 建構"
-
msgid "MlExperimentTracking|Candidate removed"
msgstr "候é¸äººå·²ç§»é™¤"
@@ -30405,6 +30922,9 @@ msgstr "建立於"
msgid "MlExperimentTracking|Delete candidate"
msgstr "刪除候é¸é …"
+msgid "MlExperimentTracking|Delete candidate?"
+msgstr "刪除候é¸é …?"
+
msgid "MlExperimentTracking|Delete experiment"
msgstr "刪除實驗"
@@ -30435,36 +30955,18 @@ msgstr "篩é¸å€™é¸äºº"
msgid "MlExperimentTracking|Get started with model experiments!"
msgstr "開始使用模型實驗ï¼"
-msgid "MlExperimentTracking|ID"
-msgstr "ID"
-
-msgid "MlExperimentTracking|Info"
-msgstr "訊æ¯"
-
msgid "MlExperimentTracking|Logged candidates for experiment"
msgstr "已記錄的候é¸å¯¦é©—"
-msgid "MlExperimentTracking|MLflow run ID"
-msgstr "MLflow 執行 ID"
-
msgid "MlExperimentTracking|Machine learning experiment tracking"
msgstr "機器學習實驗追踪"
-msgid "MlExperimentTracking|Metadata"
-msgstr "元數據"
-
-msgid "MlExperimentTracking|Metrics"
-msgstr "指標"
-
msgid "MlExperimentTracking|Model candidate details"
msgstr "候é¸æ¨¡åž‹è©³ç´°è³‡è¨Š"
msgid "MlExperimentTracking|Model experiments"
msgstr "模型實驗"
-msgid "MlExperimentTracking|Model performance"
-msgstr "模型效能"
-
msgid "MlExperimentTracking|Model removed"
msgstr "模型已移除"
@@ -30480,27 +30982,9 @@ msgstr "沒有候é¸äºº"
msgid "MlExperimentTracking|No candidates logged for the query. Create new candidates using the MLflow client."
msgstr "該查詢沒有候é¸äººè¨˜éŒ„,請使用 MLflow 客戶端建立新候é¸äººã€‚"
-msgid "MlExperimentTracking|No logged metadata"
-msgstr "沒有記錄的元數據"
-
-msgid "MlExperimentTracking|No logged metrics"
-msgstr "沒有記錄的指標"
-
-msgid "MlExperimentTracking|No logged parameters"
-msgstr "沒有記錄的åƒæ•¸"
-
msgid "MlExperimentTracking|No name"
msgstr "沒有å稱"
-msgid "MlExperimentTracking|Parameters"
-msgstr "åƒæ•¸"
-
-msgid "MlExperimentTracking|Status"
-msgstr "狀態"
-
-msgid "MlExperimentTracking|Triggered by"
-msgstr "觸發者"
-
msgid "MlModelRegistry|%d model"
msgid_plural "MlModelRegistry|%d models"
msgstr[0] "%d 模型"
@@ -30509,23 +30993,110 @@ msgid "MlModelRegistry|%d version"
msgid_plural "MlModelRegistry|%d versions"
msgstr[0] "%d 版本"
+msgid "MlModelRegistry|Add a model"
+msgstr ""
+
+msgid "MlModelRegistry|An error has occurred when saving the model."
+msgstr ""
+
+msgid "MlModelRegistry|Artifacts"
+msgstr "工件文物"
+
+msgid "MlModelRegistry|CI Info"
+msgstr "CI 資訊"
+
+msgid "MlModelRegistry|Candidate not linked to a CI build"
+msgstr "候é¸ä¸¦æœªé€£çµè‡³ CI 建構"
+
+msgid "MlModelRegistry|Copied MLflow tracking URL to clipboard"
+msgstr ""
+
+msgid "MlModelRegistry|Copy MLflow tracking URL"
+msgstr ""
+
+msgid "MlModelRegistry|Create a model version"
+msgstr ""
+
+msgid "MlModelRegistry|Create model"
+msgstr ""
+
+msgid "MlModelRegistry|Creating models is also possible through the MLflow client. %{linkStart}Follow the documentation to learn more.%{linkEnd}"
+msgstr ""
+
msgid "MlModelRegistry|Details"
msgstr "詳細信æ¯"
+msgid "MlModelRegistry|Experiment"
+msgstr "實驗"
+
+msgid "MlModelRegistry|Failed to load model candidates with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|Failed to load model versions with error: %{message}"
+msgstr ""
+
+msgid "MlModelRegistry|ID"
+msgstr "ID"
+
+msgid "MlModelRegistry|Info"
+msgstr "資訊"
+
msgid "MlModelRegistry|Latest version"
msgstr "最新版本"
+msgid "MlModelRegistry|MLflow run ID"
+msgstr "MLflow 執行 ID"
+
+msgid "MlModelRegistry|Manage versions of your machine learning model"
+msgstr ""
+
+msgid "MlModelRegistry|Metadata"
+msgstr "元數據"
+
+msgid "MlModelRegistry|Model performance"
+msgstr "模型效能"
+
msgid "MlModelRegistry|Model registry"
msgstr "模型註冊表"
-msgid "MlModelRegistry|No models registered in this project"
-msgstr "此專案中沒有註冊模型"
+msgid "MlModelRegistry|New model"
+msgstr ""
+
+msgid "MlModelRegistry|No description provided"
+msgstr ""
+
+msgid "MlModelRegistry|No logged metadata"
+msgstr "沒有被記錄的元數據"
+
+msgid "MlModelRegistry|No logged metrics"
+msgstr "沒有被記錄的指標"
+
+msgid "MlModelRegistry|No logged parameters"
+msgstr "沒有被記錄åƒæ•¸"
msgid "MlModelRegistry|No registered versions"
msgstr "沒有已註冊的版本"
-msgid "MlModelRegistry|This model has no versions"
-msgstr "該模型沒有版本"
+msgid "MlModelRegistry|Parameters"
+msgstr "åƒæ•¸"
+
+msgid "MlModelRegistry|Start tracking your machine learning models"
+msgstr ""
+
+msgid "MlModelRegistry|Status"
+msgstr "狀態"
+
+msgid "MlModelRegistry|Store and manage your machine learning models and versions"
+msgstr ""
+
+msgid "MlModelRegistry|This model has no candidates"
+msgstr ""
+
+msgid "MlModelRegistry|Triggered by"
+msgstr "觸發者"
+
+msgid "MlModelRegistry|Use versions to track performance, parameters, and metadata"
+msgstr ""
msgid "MlModelRegistry|Version candidates"
msgstr "候é¸ç‰ˆæœ¬"
@@ -30549,9 +31120,15 @@ msgstr "關閉"
msgid "Model experiments"
msgstr "模型實驗"
+msgid "Model registry"
+msgstr ""
+
msgid "ModelRegistry|Model registry"
msgstr "模型庫"
+msgid "ModelRegistry|New model"
+msgstr ""
+
msgid "Modified"
msgstr "已修改"
@@ -31117,9 +31694,6 @@ msgstr "原始碼"
msgid "Navigation|Deploy"
msgstr "部署"
-msgid "Navigation|Enter admin mode"
-msgstr "進入管ç†å“¡æ¨¡å¼"
-
msgid "Navigation|Explore"
msgstr "探索"
@@ -31132,9 +31706,6 @@ msgstr "經常訪å•çš„專案"
msgid "Navigation|Groups you visit often will appear here."
msgstr "您經常訪å•çš„群組會顯示在這裡。"
-msgid "Navigation|Leave admin mode"
-msgstr "離開管ç†å“¡æ¨¡å¼"
-
msgid "Navigation|Manage"
msgstr "管ç†"
@@ -31562,15 +32133,15 @@ msgstr "沒有資料"
msgid "No data available"
msgstr "沒有å¯ç”¨çš„資料"
-msgid "No deployments detected. Use environments to control your software's continuous deployment. %{linkStart}Learn more about deployment jobs.%{linkEnd}"
-msgstr "未檢測到部署。使用環境來控制軟體的æŒçºŒéƒ¨ç½²ã€‚ %{linkStart}了解有關部署作業的更多訊æ¯ã€‚%{linkEnd}"
-
msgid "No deployments found"
msgstr "沒有找到部署"
msgid "No email participants were added. Either none were provided, or they already exist."
msgstr "沒有加入電å­éƒµä»¶åƒèˆ‡è€…。沒有æ供或它們已經存在。"
+msgid "No email participants were removed. Either none were provided, or they don't exist."
+msgstr ""
+
msgid "No endpoint provided"
msgstr "未æ供端點"
@@ -31676,6 +32247,9 @@ msgstr "沒有其他具有此類å稱或æ述的標記"
msgid "No parent group"
msgstr "父群組ä¸å­˜åœ¨"
+msgid "No phone number data for matching"
+msgstr ""
+
msgid "No plan"
msgstr "沒有計劃"
@@ -31821,18 +32395,6 @@ msgstr "普通文本"
msgid "Normal view"
msgstr "一般檢視"
-msgid "NorthstarNavigation|Could not update the new navigation preference. Please try again later."
-msgstr "無法更新新的導覽å好設定,請ç¨å¾Œå†è©¦ã€‚"
-
-msgid "NorthstarNavigation|Navigation redesign"
-msgstr "導覽é‡æ–°è¨­å®š"
-
-msgid "NorthstarNavigation|New navigation"
-msgstr "新導覽"
-
-msgid "NorthstarNavigation|Toggle new navigation"
-msgstr "切æ›æ–°å°Žè¦½"
-
msgid "Not all browsers support WebAuthn. Therefore, we require that you set up a two-factor authentication app first. That way you'll always be able to sign in, even from an unsupported browser."
msgstr "並éžæ‰€æœ‰ç€è¦½å™¨éƒ½æ”¯æŒ WebAuthn,因此,我們è¦æ±‚您首先設置雙因å­èº«ä»½é©—證應用程程,這樣您就å¯ä»¥æŒçºŒç™»å…¥ï¼Œå³ä½¿æ˜¯ä½¿ç”¨ä¸è¢«æ”¯æŒçš„ç€è¦½å™¨ä¹Ÿæ˜¯å¦‚此。"
@@ -31842,6 +32404,9 @@ msgstr "並éžæ‰€æœ‰ç€è¦½å™¨éƒ½æ”¯æ´ WebAuthn,首次註冊雙因å­â€‹â€‹èº«
msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited."
msgstr "尚未處ç†æ‰€æœ‰è³‡æ–™ï¼Œå› æ­¤æ‰€é¸æ™‚間範åœå…§åœ–表的ä¸ä¸€å®šå®Œå…¨æº–確。"
+msgid "Not applicable"
+msgstr ""
+
msgid "Not applicable."
msgstr "ä¸é©ç”¨"
@@ -31857,6 +32422,9 @@ msgstr "å°å—ä¿è­·çš„分支ä¸å¯ç”¨"
msgid "Not confidential"
msgstr "éžæ©Ÿå¯†"
+msgid "Not eligible to rotate token with access level higher than the user"
+msgstr ""
+
msgid "Not found"
msgstr "未找到"
@@ -31875,6 +32443,9 @@ msgstr "未開始"
msgid "Not supported"
msgstr "ä¸æ”¯æ´"
+msgid "Not validated"
+msgstr ""
+
msgid "Note"
msgstr "備註"
@@ -31981,6 +32552,9 @@ msgid "NotificationEmail|Reviewer: %{users}"
msgid_plural "NotificationEmail|Reviewers: %{users}"
msgstr[0] "審核者: %{users}"
+msgid "NotificationEvent|Added as approver"
+msgstr ""
+
msgid "NotificationEvent|Change reviewer merge request"
msgstr "更改審核者åˆä½µè«‹æ±‚"
@@ -32080,6 +32654,12 @@ msgstr "已開啟通知功能"
msgid "Notify users by email when sign-in location is not recognized."
msgstr "無法識別登入ä½ç½®æ™‚通éŽé›»å­éƒµä»¶é€šçŸ¥ä½¿ç”¨è€…。"
+msgid "Notify|%{added} was added as an assignee."
+msgstr ""
+
+msgid "Notify|%{added} were added as assignees."
+msgstr ""
+
msgid "Notify|%{author_link}'s issue %{issue_reference_link} is due soon."
msgstr "%{author_link} çš„è­°é¡Œ %{issue_reference_link} å³å°‡åˆ°æœŸã€‚"
@@ -32128,6 +32708,12 @@ msgstr "%{paragraph_start}å—¨ %{name}!%{paragraph_end} %{paragraph_start}æ–°çš„å
msgid "Notify|%{project_link_start}Download%{project_link_end} the project export."
msgstr "%{project_link_start}下載%{project_link_end}匯出的專案。"
+msgid "Notify|%{removed} was removed as an assignee."
+msgstr ""
+
+msgid "Notify|%{removed} were removed as assignees."
+msgstr ""
+
msgid "Notify|%{singular_or_plural_line} %{error_lines}: Work item type cannot be found or is not supported."
msgstr "%{singular_or_plural_line} %{error_lines}:找ä¸åˆ°æˆ–ä¸æ”¯æ´çš„工作項類型。"
@@ -32158,18 +32744,15 @@ msgstr "é ç¨‹é¡åƒæ›´æ–°å¤±æ•—。"
msgid "Notify|After it expires, you can %{a_start} request a new one %{a_end}."
msgstr "到期後,您å¯ä»¥ %{a_start} 請求一個新的 %{a_end}。"
+msgid "Notify|All assignees were removed."
+msgstr ""
+
msgid "Notify|All discussions on merge request %{mr_link} were resolved by %{name}"
msgstr "關於 %{mr_link} åˆä½µè«‹æ±‚的所有討論å‡ç”± %{name} 解決"
msgid "Notify|And %{total_stripped_new_commits_count} more"
msgstr "還有 %{total_stripped_new_commits_count} 個"
-msgid "Notify|Assignee changed from %{fromNames} to %{toNames}"
-msgstr "被指派人從 %{fromNames} 更改為 %{toNames}"
-
-msgid "Notify|Assignee changed to %{toNames}"
-msgstr "被指派人更改為 %{toNames}"
-
msgid "Notify|Author: %{author_name}"
msgstr "作者: %{author_name}"
@@ -32215,6 +32798,9 @@ msgstr "在 %{singular_or_plural_line} 上發ç¾éŒ¯èª¤ï¼š%{error_lines},請檢
msgid "Notify|Fingerprint: %{fingerprint}"
msgstr "指紋:%{fingerprint}"
+msgid "Notify|Forward all emails to the custom email address to %{code_open}%{service_desk_incoming_address}%{code_end}."
+msgstr ""
+
msgid "Notify|Here are the results for your CSV import for %{project_link}."
msgstr "以下是 %{project_link} çš„ CSV 匯入çµæžœã€‚"
@@ -32239,6 +32825,9 @@ msgstr "如果您ä¸å†å¸Œæœ›å°‡æ­¤ç¶²åŸŸèˆ‡ GitLab Pages 一起使用,請將å
msgid "Notify|Incorrect %{code_open}From%{code_end} header:"
msgstr "ä¸æ­£ç¢ºçš„ %{code_open}From%{code_end} 標頭:"
+msgid "Notify|Incorrect forwarding target:"
+msgstr ""
+
msgid "Notify|Incorrect verification token:"
msgstr "ä¸æ­£ç¢ºçš„驗證令牌:"
@@ -32329,6 +32918,9 @@ msgstr "無法匯出 %{project_name} 專案。"
msgid "Notify|Project %{project_name} was exported successfully."
msgstr "專案 %{project_name} å·²æˆåŠŸåŒ¯å‡ºã€‚"
+msgid "Notify|Read timeout:"
+msgstr "讀å–逾時:"
+
msgid "Notify|Remote mirror"
msgstr "é ç¨‹é¡åƒ"
@@ -32344,6 +32936,9 @@ msgstr "管ç†å“¡å·²ç‚ºæ‚¨å»ºç«‹äº†ä¸€å€‹å¸³è™Ÿï¼Œç¾åœ¨æ‚¨æ˜¯å…¬å¸ GitLab 應ç
msgid "Notify|The Auto DevOps pipeline failed for pipeline %{pipeline_link} and has been disabled for %{project_link}. In order to use the Auto DevOps pipeline with your project, please review the %{supported_langs_link}, adjust your project accordingly, and turn on the Auto DevOps pipeline within your %{settings_link}."
msgstr "æµæ°´ç·š %{pipeline_link} çš„ Auto DevOps æµæ°´ç·šå¤±æ•—,且在 %{project_link} 中被ç¦ç”¨ã€‚為了在您的專案中使用 Auto DevOps æµæ°´ç·šï¼Œè«‹æŸ¥çœ‹ %{supported_langs_link},調整您的專案,並在您的 %{settings_link} 內開啟Auto DevOps æµæ°´ç·šã€‚"
+msgid "Notify|The SMTP server did not respond in time."
+msgstr "SMTP伺æœå™¨æœªåŠæ™‚回應。"
+
msgid "Notify|The diff for this file was not included because it is too large."
msgstr "未包å«æ­¤æ–‡ä»¶çš„差異,因為它太大。"
@@ -32356,8 +32951,8 @@ msgstr "該下載éˆçµå°‡åœ¨ 24 å°æ™‚後失效。"
msgid "Notify|The errors we encountered were:"
msgstr "我們é‡åˆ°çš„錯誤是:"
-msgid "Notify|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "給定的憑證(使用者å稱和密碼)被 SMTP æœå‹™å™¨æ‹’絕。"
+msgid "Notify|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr "æ供的憑證(使用者å挫和密碼)被SMTP伺æœå™¨æ‹’絕,或者您需è¦æ˜Žç¢ºè¨­ç½®ä¸€ç¨®èº«ä»½é©—證方法。"
msgid "Notify|The project is now located under %{project_full_name_link_start}%{project_full_name}%{link_end}."
msgstr "該專案ç¾åœ¨ä½æ–¼ %{project_full_name_link_start}%{project_full_name}%{link_end} 下。"
@@ -32485,6 +33080,9 @@ msgstr "員工人數"
msgid "Number of files touched"
msgstr "改動的文件數"
+msgid "Number of references exceeds the limit. Please provide no more than %{refs_limit} references at the same time."
+msgstr ""
+
msgid "Number of replicas"
msgstr "副本數"
@@ -32503,27 +33101,48 @@ msgstr "%{author_link} çš„ OKR %{work_item_link} 需è¦æ›´æ–°ã€‚"
msgid "OKRs|An update is due on: %{update_due_date}"
msgstr "更新截止日期:%{update_due_date}"
-msgid "OKR|Existing key result"
-msgstr "ç¾å­˜çš„é—œéµçµæžœ"
-
-msgid "OKR|Existing objective"
-msgstr "ç¾å­˜ç›®æ¨™"
-
-msgid "OKR|New key result"
-msgstr "æ–°çš„é—œéµçµæžœ"
+msgid "OWASP Top 10 2017"
+msgstr ""
-msgid "OKR|New objective"
-msgstr "新的目標"
+msgid "OWASP Top 10 2021"
+msgstr ""
msgid "Object does not exist on the server or you don't have permissions to access it"
msgstr "物件在伺æœå™¨ä¸Šä¸å­˜åœ¨, 或者您沒有存å–它的權é™"
-msgid "Objective"
-msgstr "目標 "
+msgid "ObservabilityMetrics|Date"
+msgstr "日期"
+
+msgid "ObservabilityMetrics|Description"
+msgstr "æè¿°"
+
+msgid "ObservabilityMetrics|Error: Failed to load metrics details. Try reloading the page."
+msgstr "錯誤:載入指標詳細資訊失敗。嘗試é‡æ–°è¼‰å…¥é é¢ã€‚"
+
+msgid "ObservabilityMetrics|Failed to load metrics."
+msgstr "載入指標失敗。"
+
+msgid "ObservabilityMetrics|Metric Details"
+msgstr "指標詳細資訊"
msgid "ObservabilityMetrics|Metrics"
msgstr "å¯è§€å¯Ÿæ€§æŒ‡æ¨™|指標"
+msgid "ObservabilityMetrics|Name"
+msgstr "å稱"
+
+msgid "ObservabilityMetrics|No data found for the selected metric."
+msgstr ""
+
+msgid "ObservabilityMetrics|Search metrics starting with..."
+msgstr "æœå°‹ä»¥â€¦â€¦é–‹é ­çš„指標"
+
+msgid "ObservabilityMetrics|Type"
+msgstr "é¡žåž‹"
+
+msgid "ObservabilityMetrics|Value"
+msgstr "值"
+
msgid "Observability|Enable"
msgstr "啟用"
@@ -33066,9 +33685,6 @@ msgstr "åªå°æ‚¨å¯è¦‹"
msgid "Only ‘Reporter’ roles and above on tiers Premium and above can see Productivity Analytics."
msgstr "åªæœ‰åœ¨å°ˆæ¥­ç‰ˆåŠä»¥ä¸Šæ–¹æ¡ˆä¸­ï¼Œã€Œå ±å‘Šè€…ã€åŠä»¥ä¸Šè§’色æ‰èƒ½çœ‹åˆ°ç”Ÿç”¢åŠ›åˆ†æžã€‚"
-msgid "Oops, are you sure?"
-msgstr "您確定嗎?"
-
msgid "Open"
msgstr "é–‹å•Ÿ"
@@ -33105,9 +33721,6 @@ msgstr "開啟新視窗"
msgid "Open raw"
msgstr "開啟原始檔"
-msgid "Open sidebar"
-msgstr "打開å´é‚Šæ¬„"
-
msgid "Open: %{open}"
msgstr "é–‹å•Ÿ: %{open}"
@@ -33198,6 +33811,9 @@ msgstr "%{linkStart}組織%{linkEnd}是ä¿å­˜ç¾¤çµ„和專案的最高階層容å™
msgid "Organization|A group is a collection of several projects. If you organize your projects under a group, it works like a folder."
msgstr "群組是多個專案的集åˆã€‚若您將專案放在一個群組下,其é‹ä½œæ–¹å¼å°±å¦‚åŒè³‡æ–™å¤¾ã€‚"
+msgid "Organization|An error occurred changing your organization URL. Please try again."
+msgstr "變更您的組織 URL 時發生錯誤。請å†è©¦ä¸€æ¬¡ã€‚"
+
msgid "Organization|An error occurred creating an organization. Please try again."
msgstr "建立組織時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
@@ -33216,6 +33832,12 @@ msgstr "載入使用者組織時發生錯誤。請é‡æ–°æ•´ç†é é¢ä»¥é‡è©¦ã€‚
msgid "Organization|An error occurred updating your organization. Please try again."
msgstr "更新您的組織時發生錯誤。請å†è©¦ä¸€æ¬¡ã€‚"
+msgid "Organization|Change organization URL"
+msgstr "變更組織 URL"
+
+msgid "Organization|Changing an organization's URL can have unintended side effects."
+msgstr "變更組織 URL å¯èƒ½æœƒç”¢ç”Ÿé æ–™ä¹‹å¤–的副作用。"
+
msgid "Organization|Choose what organization you want to see by default."
msgstr "é¸æ“‡æ‚¨æƒ³è¦é è¨­æª¢è¦–的組織。"
@@ -33264,7 +33886,16 @@ msgstr "組織URL"
msgid "Organization|Organization URL is required."
msgstr "組織URL為必è¦ã€‚"
-msgid "Organization|Organization URL must be a minimum of two characters."
+msgid "Organization|Organization URL is too short (minimum is 2 characters)."
+msgstr "組織 URL 太短了(最少 2 個字元)。"
+
+msgid "Organization|Organization URL successfully changed."
+msgstr "組織 URL æˆåŠŸè®Šæ›´ã€‚"
+
+msgid "Organization|Organization avatar"
+msgstr ""
+
+msgid "Organization|Organization description (optional)"
msgstr ""
msgid "Organization|Organization name"
@@ -33291,6 +33922,9 @@ msgstr "組織已æˆåŠŸæ›´æ–°ã€‚"
msgid "Organization|Organizations"
msgstr "組織"
+msgid "Organization|Perform advanced options such as deleting the organization."
+msgstr "執行進階é¸é …,例如刪除組織。"
+
msgid "Organization|Public - The organization can be accessed without any authentication."
msgstr "公開 - 無需任何驗證å³å¯å­˜å–該組織。"
@@ -33328,7 +33962,7 @@ msgid "Orphaned member"
msgstr "孤兒æˆå“¡"
msgid "Other"
-msgstr ""
+msgstr "其他"
msgid "Other available runners"
msgstr "其他å¯ç”¨çš„執行器(runners)"
@@ -33408,6 +34042,66 @@ msgstr "概覽"
msgid "Overwrite diverged branches"
msgstr "覆蓋分å‰åˆ†æ”¯"
+msgid "Owasp|A10:2017 Insufficient Logging & Monitoring"
+msgstr ""
+
+msgid "Owasp|A10:2021 Server-Side Request Forgery"
+msgstr ""
+
+msgid "Owasp|A1:2017 Injection"
+msgstr ""
+
+msgid "Owasp|A1:2021 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A2:2017 Broken Authentication"
+msgstr ""
+
+msgid "Owasp|A2:2021 Cryptographic Failures"
+msgstr ""
+
+msgid "Owasp|A3:2017 Sensitive Data Exposure"
+msgstr ""
+
+msgid "Owasp|A3:2021 Injection"
+msgstr ""
+
+msgid "Owasp|A4:2017 XML External Entities (XXE)"
+msgstr ""
+
+msgid "Owasp|A4:2021 Insecure Design"
+msgstr ""
+
+msgid "Owasp|A5:2017 Broken Access Control"
+msgstr ""
+
+msgid "Owasp|A5:2021 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2017 Security Misconfiguration"
+msgstr ""
+
+msgid "Owasp|A6:2021 Vulnerable and Outdated Components"
+msgstr ""
+
+msgid "Owasp|A7:2017 Cross-Site Scripting (XSS)"
+msgstr ""
+
+msgid "Owasp|A7:2021 Identification and Authentication Failures"
+msgstr ""
+
+msgid "Owasp|A8:2017 Insecure Deserialization"
+msgstr ""
+
+msgid "Owasp|A8:2021 Software and Data Integrity Failures"
+msgstr ""
+
+msgid "Owasp|A9:2017 Using Components with Known Vulnerabilities"
+msgstr ""
+
+msgid "Owasp|A9:2021 Security Logging and Monitoring Failures"
+msgstr ""
+
msgid "Owned by %{image_tag}"
msgstr "ç”±%{image_tag}æ“有"
@@ -33477,6 +34171,9 @@ msgstr "軟體包(Package)å·²æˆåŠŸåˆªé™¤"
msgid "Package file size limits"
msgstr "軟體包(Package)檔案大å°é™åˆ¶"
+msgid "Package name of the app in Google Play."
+msgstr ""
+
msgid "Package recipe already exists"
msgstr "軟體包(Package)已存在"
@@ -33552,6 +34249,9 @@ msgstr "應用分組: %{group}"
msgid "PackageRegistry|App name: %{name}"
msgstr "應用å稱: %{name}"
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr "作者電å­éƒµä»¶ï¼š %{authorEmail}"
+
msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
msgstr "ç”±%{author}在%{datetime}觸發的æµæ°´ç·š%{link}所構建"
@@ -33762,6 +34462,9 @@ msgstr "執行個體級別"
msgid "PackageRegistry|Invalid Package: failed metadata extraction"
msgstr "無效的軟體包:元資料æå–失敗"
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr "é—œéµå­—: %{keywords}"
+
msgid "PackageRegistry|Last downloaded %{dateTime}"
msgstr "最後下載日期 %{dateTime}"
@@ -33820,6 +34523,12 @@ msgid "PackageRegistry|Package has %{updatesCount} archived update"
msgid_plural "PackageRegistry|Package has %{updatesCount} archived updates"
msgstr[0] "軟體包有 %{updatesCount} 個存檔更新"
+msgid "PackageRegistry|Package name pattern"
+msgstr ""
+
+msgid "PackageRegistry|Package type"
+msgstr ""
+
msgid "PackageRegistry|Package updated by commit %{link} on branch %{branch}, built by pipeline %{pipeline}, and published to the registry %{datetime}"
msgstr "軟體包由分支%{branch}上的%{link}æ交所更新,由æµæ°´ç·š%{pipeline}構建並於%{datetime}發布到庫"
@@ -33844,6 +34553,9 @@ msgstr "Pip指令"
msgid "PackageRegistry|Project-level"
msgstr "專案級別"
+msgid "PackageRegistry|Protected packages"
+msgstr ""
+
msgid "PackageRegistry|Publish packages if their name or version matches this regex."
msgstr "如果軟體包å稱或版本符åˆæ­¤æ­£å‰‡è¡¨é”å¼ï¼Œå‰‡ç™¼å¸ƒè»Ÿé«”包。"
@@ -33862,6 +34574,9 @@ msgstr "於%{date}發布至%{projectName}"
msgid "PackageRegistry|Published to the %{project} Package Registry %{datetime}"
msgstr "於%{datetime}發布到%{project}軟體包註冊表"
+msgid "PackageRegistry|Push protected up to access level"
+msgstr ""
+
msgid "PackageRegistry|PyPI"
msgstr "PyPI"
@@ -33928,6 +34643,9 @@ msgstr "å°ä¸èµ·ï¼Œæ²’有符åˆéŽæ¿¾å™¨çš„任何çµæžœ"
msgid "PackageRegistry|Source project located at %{link}"
msgstr "來æºå°ˆæ¡ˆä½æ–¼%{link}"
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr "摘è¦ï¼š %{summary}"
+
msgid "PackageRegistry|Target SHA: %{sha}"
msgstr "目標 SHA:%{sha}"
@@ -33964,6 +34682,9 @@ msgstr "無法å–得軟體包版本訊æ¯ã€‚"
msgid "PackageRegistry|Unable to load package"
msgstr "無法載入軟體包"
+msgid "PackageRegistry|When a package is protected then only certain user roles are able to update and delete the protected package. This helps to avoid tampering with the package."
+msgstr ""
+
msgid "PackageRegistry|When a package with same name and version is uploaded to the registry, more assets are added to the package. To save storage space, keep only the most recent assets."
msgstr "當具有相åŒå稱和版本的軟體包被上傳到註冊表時,更多的資產被加入到軟體包中。為了節çœå­˜å„²ç©ºé–“,請僅ä¿ç•™æœ€æ–°çš„資產。"
@@ -34105,6 +34826,9 @@ msgstr "密碼驗證ä¸å¯ç”¨ã€‚"
msgid "Password confirmation"
msgstr "密碼確èª"
+msgid "Password of the user."
+msgstr ""
+
msgid "Password successfully changed"
msgstr "密碼修改æˆåŠŸ"
@@ -34252,6 +34976,9 @@ msgstr "執行程å¼ç¢¼å¯©æŸ¥ä¸¦é€šéŽåˆä½µè«‹æ±‚增強å”作。"
msgid "Perform common operations on GitLab project"
msgstr "在GitLab專案上執行常見æ“作"
+msgid "Performance"
+msgstr ""
+
msgid "Performance optimization"
msgstr "性能優化"
@@ -34396,6 +35123,9 @@ msgstr "您的 %{projectName} 專案ä¸åœ¨ç¾¤çµ„中"
msgid "Phone"
msgstr "電話"
+msgid "Phone:"
+msgstr ""
+
msgid "PhoneVerification|Enter a valid code."
msgstr "輸入有效的驗證碼。"
@@ -34813,6 +35543,30 @@ msgstr "Web IDE"
msgid "PipelineStatusTooltip|Pipeline: %{ciStatus}"
msgstr "æµæ°´ç·šï¼š%{ciStatus}"
+msgid "PipelineSubscriptions|Add new"
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching downstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|An error occurred while fetching upstream pipeline subscriptions."
+msgstr ""
+
+msgid "PipelineSubscriptions|Delete subscription"
+msgstr ""
+
+msgid "PipelineSubscriptions|No project subscribes to the pipelines in this project."
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscribed to this project"
+msgstr ""
+
+msgid "PipelineSubscriptions|Subscriptions"
+msgstr ""
+
+msgid "PipelineSubscriptions|This project is not subscribed to any project pipelines."
+msgstr ""
+
msgid "PipelineWizardDefaultCommitMessage|Add %{filename}"
msgstr "加入 %{filename}"
@@ -34873,12 +35627,6 @@ msgstr "新更改的æµæ°´ç·šæœƒå°Žè‡´åœ¨åŒä¸€åˆ†æ”¯ä¸Šç­‰å¾…中或正在執行
msgid "Pipelines settings for '%{project_name}' were successfully updated."
msgstr "「%{project_name}ã€çš„æµæ°´ç·šè¨­å®šå·²æˆåŠŸæ›´æ–°ã€‚"
-msgid "PipelinesAiAssistant|Ai assistant"
-msgstr "AI 助手"
-
-msgid "PipelinesAiAssistant|Chat with AI assistant"
-msgstr "與AI助手èŠå¤©"
-
msgid "Pipelines|\"Hello world\" with GitLab CI"
msgstr "使用 GitLab CI å¯¦ç¾ \"Hello world\""
@@ -34897,9 +35645,6 @@ msgstr "通éŽæ’¤éŠ·è§¸ç™¼å™¨å°‡æœƒå½±éŸ¿ä»»ä½•æ­£åœ¨èª¿ç”¨å®ƒçš„程åºï¼Œæ‚¨ç¢º
msgid "Pipelines|CI lint"
msgstr "CI lint"
-msgid "Pipelines|CI/CD Catalog"
-msgstr "CI/CD目錄"
-
msgid "Pipelines|Child pipeline (%{linkStart}parent%{linkEnd})"
msgstr "å­æµæ°´ç·š(%{linkStart}父%{linkEnd})"
@@ -34972,6 +35717,9 @@ msgstr "載入æµæ°´ç·š"
msgid "Pipelines|Loading pipelines"
msgstr "正在載入æµæ°´ç·š"
+msgid "Pipelines|Migrate to GitLab CI/CD from Jenkins"
+msgstr "從 Jenkins é·ç§»è‡³ GitLab CI/CD"
+
msgid "Pipelines|More Information"
msgstr "更多訊æ¯"
@@ -35008,6 +35756,12 @@ msgstr "排程"
msgid "Pipelines|Something went wrong while cleaning runners cache."
msgstr "清ç†runnerå¿«å–時發生錯誤。"
+msgid "Pipelines|Start with a migration plan"
+msgstr "從é·ç§»è¨ˆç•«é–‹å§‹"
+
+msgid "Pipelines|Take advantage of simple, scalable pipelines and CI/CD-enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!"
+msgstr "利用簡單ã€å¯æ“´å……çš„æµæ°´ç·šèˆ‡æ”¯æ´ CI / CD 的功能。您å¯ä»¥åœ¨åˆä½µè«‹æ±‚中直接檢視整åˆçµæžœã€å®‰å…¨æŽƒæã€æ¸¬è©¦ã€ç¨‹å¼ç¢¼è¦†è“‹çŽ‡ç­‰ç­‰ï¼"
+
msgid "Pipelines|The %{namespace_name} namespace has %{percentage}%% or less Shared Runner Pipeline minutes remaining. After it runs out, no new jobs or pipelines in its projects will run."
msgstr "%{namespace_name} 命å空間還有 %{percentage}%% 或更少的共享Runneræµæ°´ç·šå‰©é¤˜åˆ†é˜æ•¸ã€‚它用完後,其專案中的新作業或æµæ°´ç·šå°‡ä¸æœƒé‹è¡Œã€‚"
@@ -35926,9 +36680,6 @@ msgstr "é è¦½ä¸Šå‚³è³‡æ–™"
msgid "Previous"
msgstr "之å‰çš„"
-msgid "Previous Artifacts"
-msgstr "å‰ä¸€å€‹ç”¢ç‰©"
-
msgid "Previous commit"
msgstr "上一次æ交"
@@ -36124,6 +36875,9 @@ msgstr "è¦è®“產å“分æžå„€è¡¨æ¿é–‹å§‹é¡¯ç¤ºä¸€äº›è³‡æ–™ï¼Œæ‚¨éœ€è¦å°‡åˆ†æž
msgid "ProductAnalytics|Get started with product analytics"
msgstr "產å“分æžå…¥é–€"
+msgid "ProductAnalytics|Help us improve Product Analytics Dashboards by sharing your experience."
+msgstr ""
+
msgid "ProductAnalytics|How many sessions a user has"
msgstr "一個使用者有多少會話"
@@ -36232,6 +36986,9 @@ msgstr "載入產å“分æžä½¿ç”¨è³‡æ–™æ™‚發生錯誤,請刷新é é¢é‡è©¦ã€‚
msgid "ProductAnalytics|Store, query, and visualize quantitative data to get insights into user value."
msgstr "儲存ã€æŸ¥è©¢å’Œè¦–覺化定é‡è³‡æ–™ä»¥æ·±å…¥äº†è§£ä½¿ç”¨è€…價值。"
+msgid "ProductAnalytics|Tell us what you think!"
+msgstr ""
+
msgid "ProductAnalytics|The connection string for your Snowplow configurator instance."
msgstr "Snowplow 設定器站å°çš„連線字串。"
@@ -36352,8 +37109,8 @@ msgstr "個人檔案"
msgid "Profile failed to delete"
msgstr "刪除個人資料失敗"
-msgid "Profile image guideline"
-msgstr "個人資料圖片導引"
+msgid "Profile image guidelines"
+msgstr ""
msgid "Profile page:"
msgstr "個人資料é ï¼š"
@@ -36718,8 +37475,8 @@ msgstr "使用者å稱變更æˆåŠŸ"
msgid "Profiles|Using emoji in names seems fun, but please try to set a status message instead"
msgstr "在å字中使用表情符號似乎很有趣,但請試著在狀態訊æ¯ä¸­è¨­å®š"
-msgid "Profiles|Website url"
-msgstr "網站 URL"
+msgid "Profiles|Website URL"
+msgstr ""
msgid "Profiles|Who you represent or work for."
msgstr "這個訊æ¯å°‡æœƒé¡¯ç¤ºåœ¨æ‚¨çš„個人資料中。"
@@ -37022,7 +37779,7 @@ msgstr "您的"
msgid "ProjectOverview|Create new fork"
msgstr "建立新分å‰"
-msgid "ProjectOverview|Forks"
+msgid "ProjectOverview|Fork"
msgstr "分å‰"
msgid "ProjectOverview|Go to your fork"
@@ -37049,11 +37806,26 @@ msgstr "您已é”到專案數é‡é™åˆ¶"
msgid "ProjectOverview|You must sign in to star a project"
msgstr "登入後æ‰èƒ½æ˜Ÿè™Ÿ(收è—)專案"
-msgid "ProjectPage|Copy project ID"
-msgstr "複製專案ID"
+msgid "ProjectPage|Copy project ID: %{id}"
+msgstr ""
-msgid "ProjectPage|Project ID: %{project_id}"
-msgstr "專案ID: %{project_id}"
+msgid "ProjectPage|Project ID copied to clipboard."
+msgstr ""
+
+msgid "ProjectPage|Project ID: %{id}"
+msgstr ""
+
+msgid "ProjectPage|Project information"
+msgstr "專案資訊"
+
+msgid "ProjectPage|Project settings"
+msgstr "專案設定"
+
+msgid "ProjectPage|The default branch was not able to be found. Please contact your administrator."
+msgstr "找ä¸åˆ°é è¨­åˆ†æ”¯ï¼Œè«‹è¯çµ¡æ‚¨çš„管ç†å“¡ã€‚"
+
+msgid "ProjectPage|Unable to load default branch"
+msgstr "無法載入é è¨­åˆ†æ”¯"
msgid "ProjectQualitySummary|An error occurred while trying to fetch project quality statistics"
msgstr "嘗試å–得專案質é‡çµ±è¨ˆè¨Šæ¯æ™‚發生錯誤"
@@ -37271,6 +38043,9 @@ msgstr "%{link_start}我å¯ä»¥ä½¿ç”¨å“ªäº›è®Šæ•¸ï¼Ÿ%{link_end}"
msgid "ProjectSettings|A default branch cannot be chosen for an empty project."
msgstr "無法為一個空專案é¸æ“‡é è¨­åˆ†æ”¯ã€‚"
+msgid "ProjectSettings|Add badges to display information about this project."
+msgstr "新增徽章以顯示關於此專案的資訊。"
+
msgid "ProjectSettings|Additional options"
msgstr "附加é¸é …"
@@ -37358,9 +38133,6 @@ msgstr "Cube API 網å€"
msgid "ProjectSettings|Custom dashboard projects"
msgstr "自定義儀表æ¿å°ˆæ¡ˆ"
-msgid "ProjectSettings|Customize this project's badges."
-msgstr "自訂此專案的徽章。"
-
msgid "ProjectSettings|Data sources"
msgstr "資料來æº"
@@ -37478,6 +38250,9 @@ msgstr "留空使用é è¨­ç¯„本。"
msgid "ProjectSettings|Make sure this pattern does not contradict the %{link_start}Push rules &gt; Branch name%{link_end} setting."
msgstr "請確èªè©²æ¨¡å¼ä¸èˆ‡ %{link_start}推é€è¦å‰‡ &gt; 分支å稱 %{link_end} 設定相矛盾。"
+msgid "ProjectSettings|Manage machine learning models."
+msgstr ""
+
msgid "ProjectSettings|Manage who can see the project in the public access directory."
msgstr "管ç†èª°å¯ä»¥åœ¨å…¬å…±å­˜å–目錄中看到這個專案。"
@@ -37523,6 +38298,9 @@ msgstr "åªæœ‰ç•¶ä¾†æºåˆ†æ”¯èˆ‡å…¶ç›®æ¨™æ˜¯æœ€æ–°çš„時候,æ‰å…許åˆä½µã€‚
msgid "ProjectSettings|Model experiments"
msgstr "模型實驗"
+msgid "ProjectSettings|Model registry"
+msgstr ""
+
msgid "ProjectSettings|Monitor"
msgstr "監控"
@@ -37940,29 +38718,9 @@ msgstr "與此主題相關的專案"
msgid "Projects with write access"
msgstr "具有寫入權é™çš„專案"
-msgid "ProjectsDropdown|Frequently visited"
-msgstr "經常造訪的專案"
-
-msgid "ProjectsDropdown|Loading projects"
-msgstr "載入專案中"
-
-msgid "ProjectsDropdown|Projects you visit often will appear here"
-msgstr "您經常造訪的專案將顯示於此"
-
-msgid "ProjectsDropdown|Search your projects"
-msgstr "æœå°‹æ‚¨çš„專案"
-
-msgid "ProjectsDropdown|Something went wrong on our end."
-msgstr "發生內部錯誤。"
-
-msgid "ProjectsDropdown|Sorry, no projects matched your search"
-msgstr "å°ä¸èµ·ï¼Œæœªæœå°‹åˆ°ç¬¦åˆæ¢ä»¶çš„專案"
-
-msgid "ProjectsDropdown|This feature requires browser localStorage support"
-msgstr "此功能需è¦ç€è¦½å™¨æ”¯æ´æœ¬åœ°å„²å­˜"
-
-msgid "ProjectsDropdown|Toggle edit mode"
-msgstr "切æ›ç·¨è¼¯æ¨¡å¼"
+msgid "ProjectsNew|%d group or namespace found"
+msgid_plural "ProjectsNew|%d groups or namespaces found"
+msgstr[0] ""
msgid "ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository."
msgstr "å…許您立å³å…‹éš† (Clone) 這個專案的版本庫。如果您計劃推é€ä¸€å€‹ç¾æœ‰çš„版本庫,請跳éŽé€™å€‹æ­¥é©Ÿã€‚"
@@ -37997,6 +38755,9 @@ msgstr "從範本建立"
msgid "ProjectsNew|Create new project"
msgstr "建立新專案"
+msgid "ProjectsNew|Default hashing algorithm is SHA-1."
+msgstr "é è¨­å“ˆå¸Œæ¼”算法是 SHA-1。"
+
msgid "ProjectsNew|Description format"
msgstr "æè¿°æ ¼å¼"
@@ -38060,6 +38821,9 @@ msgstr "為外部版本庫執行CI/CD"
msgid "ProjectsNew|Unable to suggest a path. Please refresh and try again."
msgstr "無法建議路徑,請刷新é é¢ä¸¦å†è©¦ä¸€æ¬¡ã€‚"
+msgid "ProjectsNew|Use SHA-256 as the repository hashing algorithm"
+msgstr "使用 SHA-256 作為版本庫哈希演算法"
+
msgid "ProjectsNew|Visibility Level"
msgstr "å¯è¦‹æ€§ç´šåˆ¥"
@@ -38653,12 +39417,18 @@ msgstr "批准者"
msgid "ProtectedEnvironment|Environment"
msgstr "環境"
+msgid "ProtectedEnvironment|Environment '%{environment_name}' is already protected"
+msgstr ""
+
msgid "ProtectedEnvironment|Environments protected upstream"
msgstr "上游å—ä¿è­·çš„環境"
msgid "ProtectedEnvironment|Failed to load details for this group."
msgstr "該群組的詳細資訊載入失敗。"
+msgid "ProtectedEnvironment|Failed to protect the environment."
+msgstr ""
+
msgid "ProtectedEnvironment|No environments in this project are protected."
msgstr "該專案中沒有å—ä¿è­·çš„環境。"
@@ -38740,9 +39510,6 @@ msgstr "什麼是å—ä¿è­·çš„標籤?"
msgid "ProtectedTag|default"
msgstr "é è¨­"
-msgid "Protip: %{linkStart}Auto DevOps%{linkEnd} uses Kubernetes clusters to deploy your code!"
-msgstr "æ示:%{linkStart}Auto DevOps%{linkEnd} 使用 Kubernetes å¢é›†ä¾†éƒ¨ç½²æ‚¨çš„程å¼ç¢¼ï¼"
-
msgid "Provide Feedback"
msgstr "æ供回饋æ„見"
@@ -38788,6 +39555,9 @@ msgstr "公開專案是使æ¯å€‹äººéƒ½èƒ½å¤ å”¯è®€å­˜å–的一種簡單方å¼ã€‚
msgid "Public projects compute cost factor"
msgstr "公開專案計算æˆæœ¬ä¿‚數"
+msgid "Publish the CI/CD components in this project to the CI/CD Catalog"
+msgstr ""
+
msgid "Publish to status page"
msgstr "發布到狀態é "
@@ -39230,9 +40000,6 @@ msgstr "註冊設備"
msgid "Register now"
msgstr "ç«‹å³è¨»å†Š"
-msgid "Register the runner with this URL:"
-msgstr "使用此 URL 註冊執行器:"
-
msgid "Register with two-factor app"
msgstr "使用雙因å­èªè­‰æ‡‰ç”¨ç¨‹å¼è¨»å†Š"
@@ -39408,6 +40175,9 @@ msgstr "帶註釋的標籤å«æœ‰è¨Šæ¯ã€‚"
msgid "Release|Learn more about releases"
msgstr "了解更多關於發佈"
+msgid "Release|Leave blank to use the tag name as the release title."
+msgstr "留空以使用標籤å稱作為版本標題。"
+
msgid "Release|More information"
msgstr "更多訊æ¯"
@@ -39462,6 +40232,9 @@ msgstr "ç¨å¾Œæ醒"
msgid "Remote object has no absolute path."
msgstr "é ç«¯ç‰©ä»¶æ²’有絕å°è·¯å¾‘。"
+msgid "RemoteDevelopment|Workspaces"
+msgstr ""
+
msgid "Remove"
msgstr "移除"
@@ -39522,6 +40295,9 @@ msgstr "移除æè¿°æ­·å²"
msgid "Remove due date"
msgstr "移除截止日期"
+msgid "Remove email participant(s)"
+msgstr ""
+
msgid "Remove epic reference"
msgstr "移除å²è©©åƒè€ƒ"
@@ -39624,6 +40400,9 @@ msgstr "從群組中移除使用者"
msgid "Remove user from project"
msgstr "從專案中移除使用者"
+msgid "Remove weight"
+msgstr "移除權é‡"
+
msgid "Removed"
msgstr "已移除"
@@ -39702,6 +40481,9 @@ msgstr "移除所有標記。"
msgid "Removes an issue from an epic."
msgstr "從å²è©© (epic) 中移除一個議題。"
+msgid "Removes email participant(s)."
+msgstr ""
+
msgid "Removes link with %{issue_ref}."
msgstr "移除與 %{issue_ref} çš„éˆçµã€‚"
@@ -39759,9 +40541,6 @@ msgstr "é‡æ–°é–‹å•Ÿå²è©© (epic) "
msgid "Reopen milestone"
msgstr "é‡æ–°é–‹å•Ÿé‡Œç¨‹ç¢‘"
-msgid "Reopen test case"
-msgstr "é‡æ–°é–‹å•Ÿæ¸¬è©¦æ¡ˆä¾‹"
-
msgid "Reopen this %{quick_action_target}"
msgstr "é‡æ–°é–‹å•Ÿ%{quick_action_target}"
@@ -39828,9 +40607,6 @@ msgstr "回復留言"
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "直接回復此郵件或 %{view_it_on_gitlab}。"
-msgid "Reply..."
-msgstr "回覆..."
-
msgid "Reply…"
msgstr "回復…"
@@ -40263,6 +41039,9 @@ msgstr "æ¯å€‹é€±æœŸçš„請求"
msgid "Require additional authentication for administrative tasks."
msgstr "需è¦å°ç®¡ç†ä»»å‹™é€²è¡Œé¡å¤–的身份驗證。"
+msgid "Require administrators to enable 2FA"
+msgstr ""
+
msgid "Require expiration date"
msgstr "需è¦æœ‰æ•ˆæœŸé™"
@@ -40322,8 +41101,8 @@ msgstr "需è¦ç¶“éŽé©—證的 GitLab é›»å­éƒµä»¶åœ°å€ã€‚"
msgid "Requires you to deploy or set up cloud-hosted Sentry."
msgstr "需è¦æ‚¨éƒ¨ç½²æˆ–設定雲托管的 Sentry。"
-msgid "Requires your primary GitLab email address."
-msgstr "需è¦æ‚¨çš„主GitLabé›»å­éƒµä»¶åœ°å€ã€‚"
+msgid "Requires your primary GitLab email address. If you want to confirm a secondary email address, go to %{emails_link_start}Emails%{emails_link_end}"
+msgstr ""
msgid "Resend"
msgstr "é‡æ–°ç™¼é€"
@@ -40391,9 +41170,6 @@ msgstr "在來æºåˆ†æ”¯ä¸Šè§£æ±ºè¡çª"
msgid "Resolve locally"
msgstr "本地解決"
-msgid "Resolve these conflicts, or ask someone with write access to this repository to resolve them locally."
-msgstr "解決這些è¡çªæˆ–請具有版本庫寫入權é™çš„使用者在本地進行åˆä½µã€‚"
-
msgid "Resolve thread"
msgstr "解決主題"
@@ -40517,10 +41293,6 @@ msgstr "é‡è©¦æ­¤ä½œæ¥­ä»¥å»ºç«‹å¿…è¦çš„資æºã€‚"
msgid "Retry verification"
msgstr "é‡è©¦é©—è­‰"
-msgid "Reveal value"
-msgid_plural "Reveal values"
-msgstr[0] "顯示值"
-
msgid "Reveal values"
msgstr "顯示值"
@@ -40564,6 +41336,15 @@ msgid "Reviewer"
msgid_plural "%d Reviewers"
msgstr[0] "%dä½å¯©é–±è€…"
+msgid "Reviewer approved changes"
+msgstr "審查者核准變更"
+
+msgid "Reviewer commented"
+msgstr "審查者評論"
+
+msgid "Reviewer requested changes"
+msgstr "審查者è¦æ±‚變更"
+
msgid "Reviewers"
msgstr "審閱者"
@@ -40624,9 +41405,6 @@ msgstr "根本原因分æžæ˜¯ä¸€é …功能,å¯åˆ†æžæ‚¨çš„日誌以確定作業
msgid "Ruby"
msgstr "Ruby"
-msgid "Rule name"
-msgstr "è¦å‰‡å稱"
-
msgid "Rule name is already taken."
msgstr "è¦å‰‡å稱已被使用。"
@@ -40959,6 +41737,9 @@ msgstr "ç¾å­˜åŸ·è¡Œå™¨ä¸å—影響,è¦å…許所有群組註冊執行器,請
msgid "Runners|Existing runners are not affected. To permit runner registration for all projects, enable this setting in the Admin Area in Settings &gt; CI/CD."
msgstr "ç¾æœ‰åŸ·è¡Œå™¨ä¸å—影響,è¦å…許所有專案註冊執行器,請在設置 &gt; CI/CD 的管ç†å€åŸŸä¸­å•Ÿç”¨æ­¤è¨­ç½®ã€‚"
+msgid "Runners|Export as CSV"
+msgstr ""
+
msgid "Runners|Failed adding runner to project"
msgstr "無法將執行器加入到專案"
@@ -41231,6 +42012,9 @@ msgstr "註冊執行器(Runner)"
msgid "Runners|Runner Registration token"
msgstr "執行器註冊令牌"
+msgid "Runners|Runner Usage"
+msgstr ""
+
msgid "Runners|Runner assigned to project."
msgstr "指派給專案的執行器。"
@@ -41351,8 +42135,8 @@ msgstr "共享執行器在群組設定中被ç¦ç”¨ã€‚"
msgid "Runners|Shared runners are disabled."
msgstr "共享的執行器已ç¦ç”¨ã€‚"
-msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group. If you proceed, you must manually re-enable shared runners in the settings of each project and subgroup."
-msgstr "共享執行器將å°è©²ç¾¤çµ„中的所有專案和å­ç¾¤çµ„ç¦ç”¨ï¼Œå¦‚果繼續,您必須在æ¯å€‹å°ˆæ¡ˆå’Œå­ç¾¤çµ„的設置中手動é‡æ–°å•Ÿç”¨å…±äº«åŸ·è¡Œå™¨ã€‚"
+msgid "Runners|Shared runners will be disabled for all projects and subgroups in this group."
+msgstr ""
msgid "Runners|Show only inherited"
msgstr "僅顯示已繼承的"
@@ -41360,9 +42144,6 @@ msgstr "僅顯示已繼承的"
msgid "Runners|Show runner installation and registration instructions"
msgstr "顯示執行器(runner)安è£å’Œè¨»å†Šèªªæ˜Ž"
-msgid "Runners|Show runner installation instructions"
-msgstr "顯示執行器(runner)安è£èªªæ˜Ž"
-
msgid "Runners|Something went wrong while deleting. Please refresh the page to try again."
msgstr "刪除時發生錯誤,請é‡æ–°æ•´ç†é é¢ä»¥é‡è©¦ã€‚"
@@ -41587,9 +42368,24 @@ msgstr "專案"
msgid "Runners|shared"
msgstr "共用"
+msgid "Runner|Export runner usage"
+msgstr ""
+
+msgid "Runner|Export runner usage for previous month"
+msgstr ""
+
msgid "Runner|Runner actions"
msgstr "執行器動作"
+msgid "Runner|Something went wrong while generating the CSV export. Please try again."
+msgstr ""
+
+msgid "Runner|The CSV export contains a list of projects, the number of minutes used by instance runners, and the number of jobs that ran in the previous month. When the export is completed, it is sent as an attachment to your email."
+msgstr ""
+
+msgid "Runner|Your CSV export has started. It will be sent to your email inbox when its ready."
+msgstr ""
+
msgid "Running"
msgstr "執行中"
@@ -41761,9 +42557,18 @@ msgstr "儲存中"
msgid "Saving project."
msgstr "正在儲存專案。"
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} %{actionType}"
+msgstr ""
+
+msgid "ScanExecutionPolicy|%{boldStart}Run%{boldEnd} %{typeSelector} from the project %{projectSelector} with ref %{refSelector}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{hostname}'s timezone"
msgstr "%{hostname}的時å€"
+msgid "ScanExecutionPolicy|%{labelStart}File path:%{labelEnd} %{filePath}"
+msgstr ""
+
msgid "ScanExecutionPolicy|%{period} %{days} at %{time} %{timezoneLabel} %{timezone}"
msgstr "%{period} %{days} 在 %{time} %{timezoneLabel} %{timezone}"
@@ -41782,6 +42587,9 @@ msgstr "增加æ¢ä»¶"
msgid "ScanExecutionPolicy|Add new CI variable"
msgstr "增加新的 CI 變數"
+msgid "ScanExecutionPolicy|Choose a method to execute code"
+msgstr "é¸æ“‡åŸ·è¡Œç¨‹å¼ç¢¼çš„方法"
+
msgid "ScanExecutionPolicy|Conditions"
msgstr "æ¢ä»¶"
@@ -41803,21 +42611,39 @@ msgstr "DAST 掃æé…置文件"
msgid "ScanExecutionPolicy|DAST site profiles"
msgstr "DAST 站點é…置文件"
+msgid "ScanExecutionPolicy|If there are any conflicting variables with the local pipeline configuration (Ex, gitlab-ci.yml) then variables defined here will take precedence. %{linkStart}Learn more%{linkEnd}."
+msgstr "如果與本機æµæ°´ç·šé…置(例如,gitlab-ci.yml)有任何è¡çªçš„變數,則此處定義的變數將優先。 %{linkStart}了解更多%{linkEnd}。"
+
+msgid "ScanExecutionPolicy|Inserted CI code block"
+msgstr "æ’入的 CI 程å¼ç¢¼å€å¡Š"
+
msgid "ScanExecutionPolicy|Key"
msgstr "密鑰"
msgid "ScanExecutionPolicy|Kubernetes agent's timezone"
msgstr "Kubernetes agent 的時å€"
+msgid "ScanExecutionPolicy|Link existing CI file"
+msgstr "連çµç¾æœ‰ CI 文件"
+
+msgid "ScanExecutionPolicy|Linked existing CI file"
+msgstr "連çµçš„ç¾æœ‰ CI 文件"
+
msgid "ScanExecutionPolicy|Maximum number of CI-criteria is one"
msgstr "CI æ¢ä»¶çš„最大數é‡ç‚º 1"
msgid "ScanExecutionPolicy|Only one variable can be added at a time."
msgstr "一次åªèƒ½åŠ å…¥ä¸€å€‹è®Šæ•¸ã€‚"
+msgid "ScanExecutionPolicy|Run CI/CD code"
+msgstr "執行 CI/CD 程å¼ç¢¼"
+
msgid "ScanExecutionPolicy|Run a %{scan} scan with the following options:"
msgstr "執行掃æ原則使用以下é¸é …é‹è¡Œ %{scan} 掃æ:"
+msgid "ScanExecutionPolicy|Run a scan"
+msgstr "執行掃æ"
+
msgid "ScanExecutionPolicy|Runner tags:"
msgstr "執行掃æ原則é‹è¡Œè€…標籤:"
@@ -41842,6 +42668,9 @@ msgstr "é¸æ“‡å‘½å空間"
msgid "ScanExecutionPolicy|Select or Create a Key"
msgstr "執行掃æ原則é¸æ“‡æˆ–建立密鑰"
+msgid "ScanExecutionPolicy|Select ref"
+msgstr ""
+
msgid "ScanExecutionPolicy|Select scanner profile"
msgstr "é¸æ“‡æŽƒæ器é…ç½®"
@@ -41851,6 +42680,9 @@ msgstr "é¸æ“‡ç«™é»žé…ç½®"
msgid "ScanExecutionPolicy|Select timezone"
msgstr "é¸æ“‡æ™‚å€"
+msgid "ScanExecutionPolicy|The file path can't be empty"
+msgstr "檔案路徑ä¸èƒ½ç‚ºç©º"
+
msgid "ScanExecutionPolicy|Triggers:"
msgstr "觸發器:"
@@ -41866,6 +42698,9 @@ msgstr "代ç†"
msgid "ScanExecutionPolicy|branch"
msgstr "分支"
+msgid "ScanExecutionPolicy|file path group"
+msgstr ""
+
msgid "ScanExecutionPolicy|has specific tag"
msgstr "有特定的標記"
@@ -41926,9 +42761,6 @@ msgstr "å¯ç”¨çš„修復"
msgid "ScanResultPolicy|Fix available is only applicable to container and dependency scanning"
msgstr "å¯ç”¨çš„修復僅é©ç”¨æ–¼å®¹å™¨å’Œä¾è³´é …掃æ"
-msgid "ScanResultPolicy|If an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required. This ensures new commits that may include vulnerabilities cannot be introduced."
-msgstr "如果 MR 收到åˆä½µæ‰€éœ€çš„所有核准,但隨後添加了新的æ交,則需è¦æ–°çš„核准,這å¯ç¢ºä¿ç„¡æ³•å¼•å…¥å¯èƒ½åŒ…å«æ¼æ´žçš„æ–°æ交。"
-
msgid "ScanResultPolicy|If selected, the following choices will overwrite %{linkStart}project settings%{linkEnd} but only affect the branches selected in the policy."
msgstr "è‹¥é¸å–,以下é¸é …將會覆寫%{linkStart}專案設定%{linkEnd},但僅影響政策中é¸å–的分支。"
@@ -41980,35 +42812,26 @@ msgstr "僅å…許2個狀態標準"
msgid "ScanResultPolicy|Override project approval settings"
msgstr "覆寫專案審核設定"
-msgid "ScanResultPolicy|Password confirmation on approvals provides an additional level of security. Enabling this enforces the setting on all projects targeted by this policy."
-msgstr "核准時的密碼確èªæ供了é¡å¤–的安全等級,啟用此功能會強制執行此原則é‡å°çš„所有專案設定。"
-
msgid "ScanResultPolicy|Pre-existing"
msgstr "é å…ˆå­˜åœ¨"
-msgid "ScanResultPolicy|Prevent a user from removing a branch from the protected branches list or from deleting a protected branch."
-msgstr "阻止使用者從å—ä¿è­·åˆ†æ”¯æ¸…單中刪除分支或刪除å—ä¿è­·çš„分支。"
-
msgid "ScanResultPolicy|Prevent approval by commit author"
msgstr "ç¦æ­¢ç”±æ交作者核准"
msgid "ScanResultPolicy|Prevent approval by merge request's author"
msgstr "防止åˆä½µè«‹æ±‚作者批准"
-msgid "ScanResultPolicy|Prevent branch protection modification"
-msgstr "防止修改分支ä¿è­·"
+msgid "ScanResultPolicy|Prevent branch modification"
+msgstr "防止分支修改"
msgid "ScanResultPolicy|Prevent pushing and force pushing"
msgstr "é¿å…推é€èˆ‡å¼·åˆ¶æŽ¨é€"
-msgid "ScanResultPolicy|Prevent pushing and force pushing to a protected branch."
-msgstr "ç¦æ­¢æŽ¨é€å’Œå¼·åˆ¶æŽ¨é€åˆ°å—ä¿è­·çš„分支。"
-
msgid "ScanResultPolicy|Protected branch settings"
msgstr "å—ä¿è­·çš„分支設定"
-msgid "ScanResultPolicy|Recommended setting"
-msgstr "建議設定"
+msgid "ScanResultPolicy|Recommended settings"
+msgstr ""
msgid "ScanResultPolicy|Remove all approvals with new commit"
msgstr "移除新æ交的所有核准"
@@ -42034,15 +42857,9 @@ msgstr "åš´é‡æ€§ç‚ºï¼š"
msgid "ScanResultPolicy|Status is:"
msgstr "狀態為:"
-msgid "ScanResultPolicy|The merge request author cannot approve their own merge request."
-msgstr "åˆä½µè«‹æ±‚作者無法核准自己的åˆä½µè«‹æ±‚。"
-
msgid "ScanResultPolicy|Unknown"
msgstr "未知"
-msgid "ScanResultPolicy|Users who have contributed code to the MR are ineligible for approval, ensuring code committers cannot introduce vulnerabilities and approve code to merge."
-msgstr "å‘ MR è²¢ç»ç¨‹å¼ç¢¼çš„使用者沒有資格ç²å¾—核准,確ä¿ç¨‹å¼ç¢¼æ交者無法引入æ¼æ´žä¸¦æ ¸å‡†ç¨‹å¼ç¢¼åˆä½µã€‚"
-
msgid "ScanResultPolicy|When %{scanType} %{scanners} runs against the %{branches} %{branchExceptions} and find(s) %{vulnerabilitiesNumber} %{boldDescription} of the following criteria:"
msgstr "當%{scanType} %{scanners}é‹è¡Œåœ¨%{branches} %{branchExceptions}上時,找到了符åˆä»¥ä¸‹æ¨™æº–çš„%{vulnerabilitiesNumber}%{boldDescription}時:"
@@ -42055,8 +42872,26 @@ msgstr "當 %{scanType} 在開啟一個é‡å°ä½¿ç”¨ %{commitType} çš„ %{branches
msgid "ScanResultPolicy|When %{scanners} find scanner specified conditions in an open merge request targeting the %{branches} %{branchExceptions} and match %{boldDescription} of the following criteria"
msgstr "當%{scanners}在é‡å°%{branches} %{branchExceptions} 的開放åˆä½µè«‹æ±‚中找到指定的掃æ器æ¢ä»¶ï¼Œä¸¦ç¬¦åˆä»¥ä¸‹æ¨™æº–çš„ %{boldDescription}時"
-msgid "ScanResultPolicy|You have selected any protected branch option as a condition. To better protect your project, it is recommended to enable the protect branch settings. %{linkStart}Learn more.%{linkEnd}"
-msgstr "您已é¸å–任何å—ä¿è­·çš„分支作為æ¢ä»¶ã€‚為了更好地ä¿è­·æ‚¨çš„專案,建議啟用ä¿è­·åˆ†æ”¯è¨­å®šã€‚%{linkStart}å–得更多資訊。%{linkEnd}"
+msgid "ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required."
+msgstr "啟用後,如果MR收到所有必è¦çš„核准來進行åˆä½µï¼Œä½†éš¨å¾ŒåŠ å…¥äº†æ–°çš„æ交,則需è¦æ–°çš„核准。"
+
+msgid "ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs."
+msgstr "啟用時,åˆä½µè«‹æ±‚的作者無法核准自己的 MR。"
+
+msgid "ScanResultPolicy|When enabled, prevents a user from removing a branch from the protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy."
+msgstr "啟用時,å¯é˜²æ­¢ä½¿ç”¨è€…從å—ä¿è­·åˆ†æ”¯åˆ—表中移除分支ã€åˆªé™¤å—ä¿è­·åˆ†æ”¯æˆ–更改é è¨­åˆ†æ”¯ï¼ˆå¦‚果該分支包å«åœ¨å®‰å…¨ç­–略中)。"
+
+msgid "ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy."
+msgstr "啟用後,如果å—ä¿è­·çš„分支包å«åœ¨å®‰å…¨ç­–略中,則防止推é€å’Œå¼·åˆ¶æŽ¨é€ã€‚"
+
+msgid "ScanResultPolicy|When enabled, there will be password confirmation on approvals."
+msgstr "啟用後,核准時會有密碼確èªã€‚"
+
+msgid "ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval."
+msgstr "啟用後,å°æ–¼å·²ç¶“為MRè²¢ç»äº†ç¨‹å¼ç¢¼çš„使用者將無法ç²å¾—核准。"
+
+msgid "ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}"
+msgstr ""
msgid "ScanResultPolicy|any commits"
msgstr "任何æ交"
@@ -42208,6 +43043,9 @@ msgstr "按å稱æœå°‹"
msgid "Search files"
msgstr "æœå°‹æ–‡ä»¶"
+msgid "Search filters"
+msgstr "æœå°‹éŽæ¿¾å™¨"
+
msgid "Search for Namespace"
msgstr "æœå°‹å‘½å空間"
@@ -42390,6 +43228,9 @@ msgstr "ä¿å¯†æª¢æ¸¬"
msgid "Secret token"
msgstr "ä¿å¯†ä»¤ç‰Œ"
+msgid "Secret token."
+msgstr ""
+
msgid "SecretDetection|This comment appears to have a token in it. Are you sure you want to add it?"
msgstr "此評論中似乎包å«ä¸€å€‹è­˜åˆ¥ç¢¼ï¼Œæ‚¨ç¢ºå®šè¦æ·»åŠ å—Žï¼Ÿ"
@@ -42399,6 +43240,36 @@ msgstr "æ­¤æ述中似乎包å«ä¸€å€‹è­˜åˆ¥ç¢¼ï¼Œæ‚¨ç¢ºå®šè¦æ·»åŠ å—Žï¼Ÿ"
msgid "Secrets"
msgstr "密鑰"
+msgid "Secrets|Add a new secret to the group by following the instructions in the form below."
+msgstr "在下é¢çš„表格中按照指示加入一個新的機密到這個群組中。"
+
+msgid "Secrets|Add secret"
+msgstr "加入一個機密"
+
+msgid "Secrets|Audit log"
+msgstr "稽核日誌"
+
+msgid "Secrets|Edit %{key}"
+msgstr "編輯 %{key}"
+
+msgid "Secrets|New secret"
+msgstr "新機密"
+
+msgid "Secrets|Secret details"
+msgstr "機密詳情"
+
+msgid "Secrets|Secret name"
+msgstr "機密å稱"
+
+msgid "Secrets|Secrets"
+msgstr "機密"
+
+msgid "Secrets|Secrets represent sensitive information your CI job needs to complete work. This sensitive information can be items like API tokens, database credentials, or private keys. Unlike CI/CD variables, which are always presented to a job, secrets must be explicitly required by a job. %{linkStart}Learn more.%{linkEnd}"
+msgstr "機密代表您 CI 工作需è¦å®Œæˆå·¥ä½œçš„æ•æ„Ÿä¿¡æ¯ï¼Œé€™äº›æ•æ„Ÿä¿¡æ¯å¯ä»¥æ˜¯ API 標記ã€æ•¸æ“šåº«æ†‘證或ç§é‘°ç­‰é …目。與 CI/CD 變數ä¸åŒï¼Œå®ƒå€‘始終呈ç¾çµ¦å·¥ä½œï¼Œæ©Ÿå¯†å¿…須明確地被工作è¦æ±‚。%{linkStart}了解更多。%{linkEnd}"
+
+msgid "Secrets|Stored secrets"
+msgstr "儲存的機密"
+
msgid "Secure Code Warrior"
msgstr "安全代碼"
@@ -42456,6 +43327,9 @@ msgstr "安全儀表æ¿"
msgid "Security Finding not found"
msgstr "未發ç¾å®‰å…¨æŸ¥å°‹"
+msgid "Security Policy project already exists, but is not linked."
+msgstr ""
+
msgid "Security Policy project already exists."
msgstr "安全策略專案已經存在。"
@@ -42543,8 +43417,8 @@ msgstr "啟用自動化 DevOps"
msgid "SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans."
msgstr "啟用孵化中的 Breach and Attack Simulation 相關功能,例如在您的 DAST 掃æ中的回調攻擊。"
-msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability."
-msgstr "啟用安全培訓,幫助您的開發人員學習如何修復æ¼æ´žã€‚開發者å¯ä»¥æŸ¥çœ‹é¸å®šçš„教育æ供者æ供的與發ç¾çš„脆弱性相關的安全培訓。"
+msgid "SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline."
+msgstr ""
msgid "SecurityConfiguration|Enabled"
msgstr "已啟用"
@@ -42645,6 +43519,9 @@ msgstr "那是 %{licenseState} 並且是"
msgid "SecurityOrchestration|%{agent} for %{namespaces}"
msgstr "%{agent} 用於 %{namespaces}"
+msgid "SecurityOrchestration|%{allLabel} %{projectCount} %{projectLabel} in this group"
+msgstr ""
+
msgid "SecurityOrchestration|%{branchName}"
msgstr "%{branchName}"
@@ -42654,6 +43531,15 @@ msgstr "%{branchName} (在 %{codeStart}%{fullPath}%{codeEnd} 中)"
msgid "SecurityOrchestration|%{cadence} on %{branches}%{branchExceptionsString}"
msgstr "%{cadence} 在 %{branches}%{branchExceptionsString}"
+msgid "SecurityOrchestration|%{fileName} loaded succeeded."
+msgstr "%{fileName} 加載æˆåŠŸã€‚"
+
+msgid "SecurityOrchestration|%{fileName} loading failed. Please try again."
+msgstr "%{fileName} 加載失敗。請å†è©¦ä¸€æ¬¡ã€‚"
+
+msgid "SecurityOrchestration|%{frameworkName} has %{projectLength} %{projects}"
+msgstr "%{frameworkName} 有 %{projectLength} %{projects}"
+
msgid "SecurityOrchestration|%{licenses} and %{lastLicense}"
msgstr "%{licenses} 和 %{lastLicense}"
@@ -42672,12 +43558,18 @@ msgstr ".yaml 模å¼"
msgid "SecurityOrchestration|.yaml preview"
msgstr ".yaml é è¦½"
+msgid "SecurityOrchestration|A compliance framework is a label to identify that your project has certain compliance requirements. %{linkStart}Learn more%{linkEnd}."
+msgstr "åˆè¦æ€§æ¡†æž¶æ˜¯ä¸€å€‹æ¨™ç±¤ï¼Œç”¨æ–¼è­˜åˆ¥æ‚¨çš„專案具有æŸäº›åˆè¦æ€§è¦æ±‚,%{linkStart}了解更多%{linkEnd}。"
+
msgid "SecurityOrchestration|Actions"
msgstr "行動"
msgid "SecurityOrchestration|Add action"
msgstr "增加動作"
+msgid "SecurityOrchestration|Add new action"
+msgstr "新增動作"
+
msgid "SecurityOrchestration|Add new approver"
msgstr "新增核准人"
@@ -42690,6 +43582,9 @@ msgstr "解除警報後,該訊æ¯å°‡ä¸å†é¡¯ç¤ºã€‚"
msgid "SecurityOrchestration|After enabling a group-level policy, this policy automatically applies to all projects and sub-groups in this group."
msgstr "啟用群組級別政策後,該政策自動應用於該群組中的所有專案和å­ç¾¤çµ„。"
+msgid "SecurityOrchestration|All projects in this group except:"
+msgstr ""
+
msgid "SecurityOrchestration|All sources"
msgstr "所有來æº"
@@ -42720,6 +43615,9 @@ msgstr "將此政策套用至å為 %{frameworkSelector} 的所有專案 %{proje
msgid "SecurityOrchestration|Are you sure you want to delete this policy? This action cannot be undone."
msgstr "您確定è¦åˆªé™¤æ­¤æ”¿ç­–嗎? æ­¤æ“作無法撤消。"
+msgid "SecurityOrchestration|At least one framework label should be selected"
+msgstr "至少應é¸æ“‡ä¸€å€‹æ¡†æž¶æ¨™ç±¤"
+
msgid "SecurityOrchestration|Automatically selected runners"
msgstr "安全編輯自動é¸æ“‡çš„é‹è¡Œè€…"
@@ -42732,18 +43630,24 @@ msgstr "無法建立空策略"
msgid "SecurityOrchestration|Choose a project"
msgstr "é¸æ“‡å°ˆæ¡ˆ"
+msgid "SecurityOrchestration|Choose an action"
+msgstr "é¸æ“‡ä¸€å€‹å‹•ä½œ"
+
msgid "SecurityOrchestration|Choose approver type"
msgstr "é¸æ“‡å¯©æ ¸è€…é¡žåž‹"
-msgid "SecurityOrchestration|Choose framework labels"
-msgstr "SecurityOrchestration|é¸æ“‡æ¡†æž¶æ¨™ç±¤"
-
msgid "SecurityOrchestration|Choose specific role"
msgstr "é¸æ“‡ç‰¹å®šçš„角色"
msgid "SecurityOrchestration|Clear all"
msgstr "全部清除"
+msgid "SecurityOrchestration|Compliance Framework ID(s) can only be set for group policies"
+msgstr "åˆè¦æ€§æ¡†æž¶è­˜åˆ¥ç¢¼åªèƒ½è¨­å®šç¾¤çµ„ç­–ç•¥"
+
+msgid "SecurityOrchestration|Compliance framework has no projects"
+msgstr "åˆè¦æ¡†æž¶æ²’有專案"
+
msgid "SecurityOrchestration|Create more robust vulnerability rules and apply them to all your projects."
msgstr "建立更å¥å…¨çš„æ¼æ´žè¦å‰‡ä¸¦å°‡å…¶å¥—用於您的所有專案。"
@@ -42816,6 +43720,9 @@ msgstr "無法載入群組專案"
msgid "SecurityOrchestration|Failed to load images."
msgstr "無法載入圖åƒã€‚"
+msgid "SecurityOrchestration|Following projects:"
+msgstr ""
+
msgid "SecurityOrchestration|For any MR that matches this policy's rules, only the override project approval settings apply. No additional approvals are required."
msgstr "å°æ–¼ç¬¦åˆæ­¤ç­–ç•¥è¦å‰‡çš„任何 MR,僅é©ç”¨è¦†è“‹å°ˆæ¡ˆæ ¸å‡†è¨­å®šï¼Œä¸éœ€è¦å…¶ä»–é¡å¤–的核准。"
@@ -42828,8 +43735,11 @@ msgstr "å°æ–¼å¤§åž‹ç¾¤çµ„,將政策更改套用於é å…ˆå­˜åœ¨çš„åˆä½µè«‹æ±‚
msgid "SecurityOrchestration|Groups"
msgstr "群組"
-msgid "SecurityOrchestration|Hide extra branches"
-msgstr "éš±è—é¡å¤–的分支"
+msgid "SecurityOrchestration|Hide extra items"
+msgstr ""
+
+msgid "SecurityOrchestration|Hide extra projects"
+msgstr ""
msgid "SecurityOrchestration|If any scanner finds a newly detected critical vulnerability in an open merge request targeting the master branch, then require two approvals from any member of App security."
msgstr "如果任何掃æ器在é‡å°ä¸»åˆ†æ”¯çš„開放åˆä½µè«‹æ±‚中發ç¾æ–°æª¢æ¸¬çš„åš´é‡æ¼æ´žï¼Œå‰‡éœ€è¦å–得應用程å¼å®‰å…¨çš„任何æˆå“¡çš„兩次核准。"
@@ -42843,6 +43753,9 @@ msgstr "繼承"
msgid "SecurityOrchestration|Inherited from %{namespace}"
msgstr "繼承自 %{namespace}"
+msgid "SecurityOrchestration|Invalid Compliance Framework ID(s)"
+msgstr "無效的åˆè¦æ¡†æž¶ID(s)"
+
msgid "SecurityOrchestration|Invalid branch type detected - rule will not be applied."
msgstr "åµæ¸¬åˆ°ç„¡æ•ˆçš„分支類型 - è¦å‰‡å°‡ä¸æœƒè¢«å¥—用。"
@@ -42858,6 +43771,9 @@ msgstr "é‡å° %{agent} 執行的最新掃æ"
msgid "SecurityOrchestration|License Scan"
msgstr "許å¯è­‰æŽƒæ"
+msgid "SecurityOrchestration|Load CI/CD code from file"
+msgstr "從檔案載入 CI/CD 程å¼ç¢¼"
+
msgid "SecurityOrchestration|Logic error"
msgstr "é‚輯錯誤"
@@ -42885,6 +43801,9 @@ msgstr "沒有異常"
msgid "SecurityOrchestration|No rules defined - policy will not run."
msgstr "未定義è¦å‰‡ - 政策無法執行。"
+msgid "SecurityOrchestration|No scope"
+msgstr ""
+
msgid "SecurityOrchestration|No tags available"
msgstr "沒有å¯ç”¨çš„標記"
@@ -42910,6 +43829,9 @@ msgstr "åªæœ‰æ‰€æœ‰è€…å¯ä»¥æ›´æ–°å®‰å…¨æ”¿ç­–專案"
msgid "SecurityOrchestration|Override the following project settings:"
msgstr "覆寫以下專案設定:"
+msgid "SecurityOrchestration|Overwrite the current CI/CD code with the new file's content?"
+msgstr "SecurityOrchestration|ç”¨æ–°æª”æ¡ˆçš„å…§å®¹è¦†å¯«ç›®å‰ CI/CD 程å¼ç¢¼ï¼Ÿ"
+
msgid "SecurityOrchestration|Policies"
msgstr "政策"
@@ -42997,12 +43919,18 @@ msgstr "掃æçµæžœæ”¿ç­–"
msgid "SecurityOrchestration|Scan will automatically choose a runner to run on because there are no tags exist on runners. You can %{linkStart}create a new tag in settings%{linkEnd}."
msgstr "掃æ將自動é¸æ“‡ä¸€å€‹åŸ·è¡Œå™¨ (Runner) 執行,因為 Runner 上ä¸å­˜åœ¨æ¨™è¨˜ã€‚您å¯ä»¥%{linkStart}在設定中建立新標記%{linkEnd}。"
+msgid "SecurityOrchestration|Scope"
+msgstr ""
+
msgid "SecurityOrchestration|Security Approvals"
msgstr "安全èªè­‰"
msgid "SecurityOrchestration|Security Scan"
msgstr "安全掃æ"
+msgid "SecurityOrchestration|Security policy overwrites this setting"
+msgstr "安全策略覆寫此設定"
+
msgid "SecurityOrchestration|Security policy project was linked successfully"
msgstr "安全政策專案已æˆåŠŸé€£æŽ¥"
@@ -43036,6 +43964,12 @@ msgstr "é¸æ“‡ä½¿ç”¨è€…"
msgid "SecurityOrchestration|Severity is %{severity}."
msgstr "åš´é‡åº¦ç‚º %{severity}。"
+msgid "SecurityOrchestration|Show all included projects"
+msgstr ""
+
+msgid "SecurityOrchestration|Show more projects"
+msgstr ""
+
msgid "SecurityOrchestration|Something went wrong, unable to fetch policies"
msgstr "出了點å•é¡Œï¼Œç„¡æ³•å–得政策"
@@ -43069,6 +44003,12 @@ msgstr "該 %{namespaceType} ä¸åŒ…å«ä»»ä½•å®‰å…¨æ”¿ç­–。"
msgid "SecurityOrchestration|This %{namespaceType} is not linked to a security policy project"
msgstr "這個 %{namespaceType} 未連çµè‡³å®‰å…¨æ”¿ç­–專案"
+msgid "SecurityOrchestration|This applies to %{projects} associated with following compliance frameworks:"
+msgstr ""
+
+msgid "SecurityOrchestration|This applies to following compliance frameworks:"
+msgstr ""
+
msgid "SecurityOrchestration|This group"
msgstr "該群組"
@@ -43153,12 +44093,27 @@ msgstr "YAML"
msgid "SecurityOrchestration|You already have the maximum %{maximumAllowed} %{policyType} policies."
msgstr "您已經æ“有最大數é‡çš„ %{policyType} 政策,數é‡ç‚º %{maximumAllowed}。"
+msgid "SecurityOrchestration|You can't change the default branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
+msgstr "您無法變更é è¨­åˆ†æ”¯ï¼Œå› ç‚ºå®ƒçš„ä¿è­·æ˜¯ç”±ä¸€å€‹æˆ–多個%{security_policies_link_start}安全策略%{security_policies_link_end}強制執行的,%{learn_more_link_start}了解更多%{learn_more_link_end}。"
+
msgid "SecurityOrchestration|You can't unprotect this branch because its protection is enforced by one or more %{security_policies_link_start}security policies%{security_policies_link_end}. %{learn_more_link_start}Learn more%{learn_more_link_end}."
msgstr "您無法å–消å°è©²åˆ†æ”¯çš„ä¿è­·ï¼Œå› ç‚ºå®ƒçš„ä¿è­·æ˜¯ç”±ä¸€å€‹æˆ–多個 %{security_policies_link_start}安全策略%{security_policies_link_end}強制執行的,%{learn_more_link_start}了解更多%{learn_more_link_end}。"
msgid "SecurityOrchestration|You don't have any security policies yet"
msgstr "您還沒有任何安全政策"
+msgid "SecurityOrchestration|a license scanner found license violations"
+msgstr ""
+
+msgid "SecurityOrchestration|a merge request has been opened against a protected branch"
+msgstr ""
+
+msgid "SecurityOrchestration|a security policy has been violated"
+msgstr ""
+
+msgid "SecurityOrchestration|a security scanner found vulnerabilities matching the criteria"
+msgstr ""
+
msgid "SecurityOrchestration|all namespaces"
msgstr "全部命å空間"
@@ -43195,6 +44150,9 @@ msgstr "分支"
msgid "SecurityOrchestration|by the agent named %{agents} %{cadence}%{branchExceptionsString}"
msgstr "ç”±å為 %{agents} %{cadence}%{branchExceptionsString} 的代ç†åŸ·è¡Œ"
+msgid "SecurityOrchestration|compliance frameworks"
+msgstr "åˆè¦æž¶æ§‹"
+
msgid "SecurityOrchestration|except projects"
msgstr "除外專案"
@@ -43381,6 +44339,9 @@ msgstr "解除(所有原因)"
msgid "SecurityReports|Dismissed as..."
msgstr "被解除為..."
+msgid "SecurityReports|Does not have a solution"
+msgstr "沒有解決方案"
+
msgid "SecurityReports|Does not have issue"
msgstr "沒有議題"
@@ -43432,6 +44393,9 @@ msgstr "無法更新具有以下 ID çš„æ¼æ´žï¼š %{ids}"
msgid "SecurityReports|Group your vulnerabilities by one of the provided categories. Leave feedback or suggestions in %{feedbackIssueStart}this issue%{feedbackIssueEnd}."
msgstr "將您的æ¼æ´žæŒ‰ç…§æ供的類別進行分組,在 %{feedbackIssueStart}æ­¤å•é¡Œ%{feedbackIssueEnd}中留下回饋或建議。"
+msgid "SecurityReports|Has a solution"
+msgstr "有解決方案"
+
msgid "SecurityReports|Has issue"
msgstr "有議題"
@@ -43447,12 +44411,6 @@ msgstr "圖åƒ"
msgid "SecurityReports|Investigate this vulnerability by creating an issue"
msgstr "é€éŽå»ºç«‹è­°é¡Œä¾†èª¿æŸ¥è©²æ¼æ´ž"
-msgid "SecurityReports|Is available"
-msgstr "å¯ç”¨"
-
-msgid "SecurityReports|Is not available"
-msgstr "ä¸å¯ç”¨"
-
msgid "SecurityReports|Issue"
msgstr "議題"
@@ -43586,6 +44544,9 @@ msgstr "ä»ç„¶æª¢æ¸¬åˆ°"
msgid "SecurityReports|Submit vulnerability"
msgstr "æ交æ¼æ´ž"
+msgid "SecurityReports|The Activity filter now defaults to showing only vulnerabilities that are \"still detected\". To see vulnerabilities regardless of their detection status, remove this filter."
+msgstr ""
+
msgid "SecurityReports|The Vulnerability Report shows results of successful scans on your project's default branch, manually added vulnerability records, and vulnerabilities found from scanning operational environments. %{linkStart}Learn more%{linkEnd}."
msgstr "æ¼æ´žå ±å‘Šé¡¯ç¤ºå°å°ˆæ¡ˆé è¨­åˆ†æ”¯çš„æˆåŠŸæŽƒæçµæžœã€æ‰‹å‹•æ–°å¢žçš„æ¼æ´žç´€éŒ„以åŠå¾žæŽƒæ作業環境中發ç¾çš„æ¼æ´žã€‚%{linkStart}å–得更多資訊%{linkEnd}。"
@@ -43685,6 +44646,18 @@ msgstr "é€éŽå®‰å…¨åŸ¹è¨“來解決å•é¡Œ"
msgid "SecurityTraining|Training from this partner takes precedence when more than one training partner is enabled."
msgstr "當多個培訓åˆä½œå¤¥ä¼´å•Ÿç”¨æ™‚,來自此åˆä½œå¤¥ä¼´çš„培訓將優先進行。"
+msgid "SecurityTxt|Add security contact information"
+msgstr ""
+
+msgid "SecurityTxt|Configure a %{codeOpen}security.txt%{codeClose} file."
+msgstr ""
+
+msgid "SecurityTxt|Content for security.txt"
+msgstr ""
+
+msgid "SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters."
+msgstr ""
+
msgid "See example DevOps Score page in our documentation."
msgstr "è«‹åƒé–±æˆ‘們文件中的範例 DevOps 得分é é¢ã€‚"
@@ -43952,6 +44925,9 @@ msgstr "å‘ Mattermost é »é“發é€æœ‰é—œå°ˆæ¡ˆäº‹ä»¶çš„通知。 %{docs_link}"
msgid "Send notifications about project events to a Discord channel. %{docs_link}"
msgstr "å‘ Discord é »é“發é€æœ‰é—œå°ˆæ¡ˆäº‹ä»¶çš„通知。 %{docs_link}"
+msgid "Send notifications for broken pipelines."
+msgstr ""
+
msgid "Send report"
msgstr "發é€å ±å‘Š"
@@ -44114,9 +45090,15 @@ msgstr "啟用自定義電å­éƒµä»¶åœ°å€"
msgid "ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator."
msgstr "有關為您的執行個體設定æœå‹™å°çš„幫助,請è¯çµ¡ç®¡ç†å“¡ã€‚"
+msgid "ServiceDesk|Forward all emails to the custom email address to %{incomingEmail}."
+msgstr ""
+
msgid "ServiceDesk|Incorrect From header"
msgstr "發件人標題ä¸æ­£ç¢º"
+msgid "ServiceDesk|Incorrect forwarding target"
+msgstr ""
+
msgid "ServiceDesk|Incorrect verification token"
msgstr "驗證令牌ä¸æ­£ç¢º"
@@ -44156,6 +45138,12 @@ msgstr "請在 %{linkStart}議題回饋%{linkEnd} 中分享您å°æ­¤åŠŸèƒ½çš„回
msgid "ServiceDesk|Please try again. Check email forwarding settings and credentials, and then restart verification."
msgstr "è«‹å†è©¦ä¸€æ¬¡ã€‚檢查電å­éƒµä»¶è½‰å¯„設定與憑證,然後é‡æ–°å•Ÿå‹•æ†‘證。"
+msgid "ServiceDesk|Read timeout"
+msgstr "讀å–逾時"
+
+msgid "ServiceDesk|Reopen issues when an external participant comments"
+msgstr ""
+
msgid "ServiceDesk|Reset custom email"
msgstr "é‡è¨­è‡ªå®šç¾©é›»å­éƒµä»¶"
@@ -44216,8 +45204,11 @@ msgstr "缺少æœå‹™å°è¨­å®š"
msgid "ServiceDesk|Service Desk setting or verification object missing"
msgstr "缺少æœå‹™å°è¨­å®šæˆ–é©—è­‰å°è±¡"
-msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server."
-msgstr "指定的憑證(使用者å稱與密碼)被 SMTP 伺æœå™¨æ‹’絕。"
+msgid "ServiceDesk|The SMTP server did not respond in time."
+msgstr "SMTP伺æœå™¨æœªåŠæ™‚回應。"
+
+msgid "ServiceDesk|The given credentials (username and password) were rejected by the SMTP server, or you need to explicitly set an authentication method."
+msgstr "æ供的憑證(使用者å稱和密碼)被SMTP伺æœå™¨æ‹’絕,或者您需è¦æ˜Žç¢ºè¨­ç½®ä¸€ç¨®èº«ä»½é©—證方法。"
msgid "ServiceDesk|The received email didn't contain the verification token that was sent to your email address."
msgstr "收到的電å­éƒµä»¶ä¸åŒ…å«å¯„é€åˆ°æ‚¨é›»å­éƒµä»¶åœ°å€çš„驗證權æ–。"
@@ -44225,6 +45216,12 @@ msgstr "收到的電å­éƒµä»¶ä¸åŒ…å«å¯„é€åˆ°æ‚¨é›»å­éƒµä»¶åœ°å€çš„驗證權
msgid "ServiceDesk|The verification email wasn't received in time. There is a 30 minutes timeframe for verification emails to appear in your instance's Service Desk. Make sure that you have set up email forwarding correctly."
msgstr "未åŠæ™‚收到電å­éƒµä»¶ã€‚驗證電å­éƒµä»¶å°‡åœ¨30分é˜å…§å‡ºç¾åœ¨æ‚¨æœå‹™å¯¦é«”çš„æœå‹™å°ä¸­ã€‚確ä¿æ‚¨å·²æ­£ç¢ºè¨­å®šé›»å­éƒµä»¶è½‰å¯„。"
+msgid "ServiceDesk|This also adds an internal comment that mentions the assignees of the issue."
+msgstr ""
+
+msgid "ServiceDesk|This issue has been reopened because it received a new comment from an external participant."
+msgstr "這個å•é¡Œè¢«é‡æ–°æ‰“開,因為它收到了一個外部åƒèˆ‡è€…的新評論。"
+
msgid "ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email."
msgstr "è¦åœ¨æ­¤åŸ·è¡Œå€‹é«”上啟用æœå‹™å°ï¼ŒåŸ·è¡Œå€‹é«”管ç†å“¡å¿…須首先設定接收電å­éƒµä»¶åœ°å€ã€‚"
@@ -44423,9 +45420,6 @@ msgstr "é…ç½® CI/CD"
msgid "Set up Jira Integration"
msgstr "設定Jiraæ•´åˆ"
-msgid "Set up a %{type} runner for a project"
-msgstr "為專案設定一個%{type}執行器(runner)"
-
msgid "Set up a hardware device to enable two-factor authentication (2FA)."
msgstr "設置硬體設備以啟用雙因å­èº«ä»½é©—è­‰ (2FA)。"
@@ -44441,6 +45435,9 @@ 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."
msgstr "設定專案以自動推é€å’Œ/或從å¦ä¸€å€‹ç‰ˆæœ¬åº«ä¸­æå–變更。分支,標籤和æ交將自動åŒæ­¥ã€‚"
+msgid "Set variables on protected branches and tags only."
+msgstr ""
+
msgid "Set weight"
msgstr "設定權é‡"
@@ -44519,19 +45516,33 @@ msgstr "設定"
msgid "Setting enforced"
msgstr "強制設定"
-msgid "Setting saved successfully"
-msgid_plural "Settings saved successfully"
-msgstr[0] "設定已æˆåŠŸä¿å­˜"
-
msgid "Settings"
msgstr "設定"
msgid "Settings for the License Compliance feature"
msgstr "許å¯è­‰åˆè¦æ€§åŠŸèƒ½è¨­å®š"
+msgid "Settings saved successfully."
+msgstr ""
+
+msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Enabling this feature allows you to scope scan result policies and scan execution policies, which determines which projects specifically will be enforced by a given policy. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
+msgstr ""
+
+msgid "Settings|Run customized CI YAML file as security policy actions"
+msgstr ""
+
+msgid "Settings|Security Policy Scopes"
+msgstr ""
+
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
msgstr "無法載入åˆä½µè«‹æ±‚é¸é …設定。嘗試é‡æ–°è¼‰å…¥é é¢ã€‚"
+msgid "Settings|What is experiment?"
+msgstr ""
+
msgid "Severity"
msgstr "åš´é‡ç¨‹åº¦"
@@ -44589,27 +45600,6 @@ msgstr "é™åˆ¶æ¯å€‹ä½¿ç”¨è€…在æ¯å€‹å„²å­˜åº«ä¸­æ¯åˆ†é˜å¯ä»¥åŸ·è¡Œçš„ Git æ
msgid "ShellOperations|Maximum number of Git operations per minute"
msgstr "æ¯åˆ†é˜æœ€å¤§ Git æ“作數"
-msgid "Shimo|Go to Shimo Workspace"
-msgstr "å‰å¾€ Shimo 工作å€"
-
-msgid "Shimo|Link to a Shimo Workspace from the sidebar."
-msgstr "從å´é‚Šæ¬„連çµåˆ° Shimo 工作å€ã€‚"
-
-msgid "Shimo|Shimo"
-msgstr "Shimo"
-
-msgid "Shimo|Shimo Workspace"
-msgstr "Shimo工作å€"
-
-msgid "Shimo|Shimo Workspace URL"
-msgstr "Shimoå·¥ä½œå€ URL"
-
-msgid "Shimo|Shimo Workspace integration is enabled"
-msgstr "Shimo工作å€æ•´åˆå·²å•Ÿç”¨"
-
-msgid "Shimo|You've enabled the Shimo Workspace integration. You can view your wiki directly in Shimo."
-msgstr "您已啟用Shimo工作å€æ•´åˆã€‚您å¯ä»¥ç›´æŽ¥åœ¨Shimo查看您的wiki。"
-
msgid "Short name"
msgstr "簡稱"
@@ -44872,9 +45862,6 @@ msgstr "使用智慧å¡ç™»å…¥"
msgid "Sign in via 2FA code"
msgstr "é€éŽ2FA程å¼ç¢¼ç™»å…¥"
-msgid "Sign in with"
-msgstr "登入方å¼"
-
msgid "Sign in with single sign-on"
msgstr "使用單一登入進行登入"
@@ -44923,20 +45910,14 @@ msgstr "退出é é¢URL"
msgid "Sign-up restrictions"
msgstr "註冊é™åˆ¶"
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "點擊 %{button_text} 或通éŽç¬¬ä¸‰æ–¹è¨»å†Šï¼Œæ‚¨æŽ¥å— GitLab%{link_start} 使用æ¢æ¬¾ä¸¦ç¢ºèªéš±ç§æ”¿ç­–å’Œ Cookie 政策 %{link_end}"
-
-msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}"
-msgstr "點擊%{button_text}或通éŽç¬¬ä¸‰æ–¹è¨»å†Šå³è¡¨ç¤ºæ‚¨æŽ¥å—%{link_start}使用æ¢æ¬¾ä¸¦æ‰¿èªéš±ç§æ”¿ç­–å’ŒCookie政策%{link_end}"
-
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "點擊 %{button_text},我åŒæ„æˆ‘å·²é–±è®€ä¸¦æŽ¥å— %{link_start}使用æ¢æ¬¾å’Œéš±ç§æ”¿ç­–%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the GitLab%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By clicking %{button_text}, I agree that I have read and accepted the GitLab %{link_start}Terms of Use and Privacy Policy%{link_end}"
-msgstr "點擊 %{button_text},我åŒæ„æˆ‘å·²é–±è®€ä¸¦æŽ¥å— GitLab %{link_start}使用æ¢æ¬¾å’Œéš±ç§æ”¿ç­–%{link_end}"
+msgid "SignUp|By clicking %{button_text} or registering through a third party you accept the%{link_start} Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}"
+msgstr ""
-msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Policy and Cookie Policy%{link_end}."
-msgstr "登入å³è¡¨ç¤ºæ‚¨æŽ¥å— %{link_start}使用æ¢æ¬¾ä¸¦ç¢ºèªéš±ç§æ”¿ç­–å’Œ Cookie 政策%{link_end}。"
+msgid "SignUp|By signing in you accept the %{link_start}Terms of Use and acknowledge the Privacy Statement and Cookie Policy%{link_end}."
+msgstr ""
msgid "SignUp|First name is too long (maximum is %{max_length} characters)."
msgstr "å字太長(最多%{max_length}å­—å…ƒ)。"
@@ -45235,6 +46216,9 @@ msgstr "智慧å¡"
msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "智慧å¡èº«ä»½é©—證失敗:缺少客戶端憑證標頭(header)。"
+msgid "Smartcard authentication failed: login process exceeded the time limit."
+msgstr ""
+
msgid "Snippet"
msgstr "程å¼ç¢¼ç‰‡æ®µ"
@@ -45292,6 +46276,9 @@ msgstr "片段被é™åˆ¶ç‚º %{total} 個文件。"
msgid "Snippets|Snippets can't contain empty files. Ensure all files have content, or delete them."
msgstr "片段ä¸èƒ½åŒ…å«ç©ºæ–‡ä»¶ã€‚確ä¿æ‰€æœ‰æ–‡ä»¶éƒ½æœ‰å…§å®¹ï¼Œæˆ–者刪除它們。"
+msgid "Snippets|This snippet is hidden because its author has been banned"
+msgstr "該片段被隱è—,因為其作者已被å°éŽ–"
+
msgid "Snowplow"
msgstr "Snowplow"
@@ -45352,8 +46339,8 @@ msgstr "其他原因"
msgid "Something went wrong"
msgstr "發生錯誤了"
-msgid "Something went wrong fetching the Scanner Findings. Please try again."
-msgstr "å–得掃æ器çµæžœæ™‚發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
+msgid "Something went wrong fetching the scanner findings. Please try again."
+msgstr ""
msgid "Something went wrong on our end"
msgstr "發生錯誤了,抱歉。"
@@ -45694,9 +46681,6 @@ msgstr "人氣"
msgid "SortOptions|Priority"
msgstr "優先"
-msgid "SortOptions|Project"
-msgstr "專案"
-
msgid "SortOptions|Recent last activity"
msgstr "最近一次活動"
@@ -45709,8 +46693,8 @@ msgstr "最近收è—(星號)"
msgid "SortOptions|Size"
msgstr "大å°"
-msgid "SortOptions|Sort by:"
-msgstr "排åºæ–¹å¼ï¼š"
+msgid "SortOptions|Sort by"
+msgstr "排åºæ–¹å¼"
msgid "SortOptions|Sort direction"
msgstr "排åºæ–¹å‘"
@@ -45730,12 +46714,6 @@ msgstr "ç¾åœ¨é–‹å§‹"
msgid "SortOptions|Title"
msgstr "標題"
-msgid "SortOptions|Type"
-msgstr "é¡žåž‹"
-
-msgid "SortOptions|Version"
-msgstr "版本"
-
msgid "SortOptions|Weight"
msgstr "權é‡"
@@ -45931,6 +46909,10 @@ msgstr "階段:"
msgid "Standard"
msgstr "標準"
+msgid "Star"
+msgid_plural "Stars"
+msgstr[0] "收è—"
+
msgid "Star labels to start sorting by priority."
msgstr "星號標記來開始按優先級別排åºã€‚"
@@ -46231,9 +47213,6 @@ msgstr "åœæ­¢çµ‚端"
msgid "Stop impersonating"
msgstr "åœæ­¢æ¨¡æ“¬"
-msgid "Stop impersonation"
-msgstr "åœæ­¢èº«ä»½æ¨¡æ“¬"
-
msgid "Stop this environment"
msgstr "åœæ­¢ç›®å‰ç’°å¢ƒ"
@@ -46315,9 +47294,6 @@ msgstr "以ham身份éžäº¤"
msgid "Submit as spam"
msgstr "舉報垃圾訊æ¯"
-msgid "Submit feedback"
-msgstr "éžäº¤å›žé¥‹"
-
msgid "Submit feedback and approve these changes."
msgstr "æ交回饋並核准這些更改。"
@@ -46414,6 +47390,9 @@ msgstr "è¦è®Šæ›´å”¯è®€è¨‚閱或購買其他產å“,請è¯çµ¡æ‚¨çš„ GitLab åˆä
msgid "SubscriptionMangement|Your subscription is in read-only mode"
msgstr "您的訂閱處於唯讀模å¼"
+msgid "SubscriptionTableRow|*Access temporarily extended until %{temporaryExtensionEndDate}"
+msgstr ""
+
msgid "SubscriptionTable|Add seats"
msgstr "加入席次"
@@ -46961,9 +47940,6 @@ msgstr "切æ›åˆ†æ”¯"
msgid "Switch branch/tag"
msgstr "切æ›åˆ†æ”¯/標籤"
-msgid "Switch to GitLab Next"
-msgstr "切æ›åˆ°GitLab é è¦½ç‰ˆ"
-
msgid "Switch to plain text editing"
msgstr "切æ›åˆ°ç´”文字編輯"
@@ -47234,13 +48210,22 @@ msgstr "GitLab Duo èŠå¤©"
msgid "TanukiBot|Give feedback"
msgstr "æä¾›å饋"
+msgid "TanukiBot|How to use GitLab"
+msgstr ""
+
msgid "TanukiBot|Source"
msgid_plural "TanukiBot|Sources"
msgstr[0] "來æº"
+msgid "TanukiBot|The issue, epic, or code you're viewing"
+msgstr ""
+
msgid "TanukiBot|There was an error communicating with GitLab Duo Chat. Please try again later."
msgstr "與GitLab Duo Chat通訊時發生錯誤,請ç¨å¾Œå†è©¦ã€‚"
+msgid "TanukiBot|Use AI to answer questions about things like:"
+msgstr ""
+
msgid "TanukiBot|What is a fork?"
msgstr "什麼是分å‰ï¼Ÿ"
@@ -47256,21 +48241,6 @@ msgstr "目標路徑"
msgid "Target branch"
msgstr "目標分支"
-msgid "Target branch rule"
-msgstr "目標分支è¦å‰‡"
-
-msgid "Target branch rule created."
-msgstr "目標分支è¦å‰‡å·²å»ºç«‹ã€‚"
-
-msgid "Target branch rule deleted."
-msgstr "目標分支è¦å‰‡å·²åˆªé™¤ã€‚"
-
-msgid "Target branch rule does not exist"
-msgstr "目標分支ä¸å­˜åœ¨"
-
-msgid "Target branch rules"
-msgstr "目標分支è¦å‰‡"
-
msgid "Target branch: %{target_branch}"
msgstr "目標分支: %{target_branch}"
@@ -47551,6 +48521,9 @@ msgstr "AI 生æˆçš„測試"
msgid "Test settings"
msgstr "測試設定"
+msgid "Test summary"
+msgstr "測試摘è¦"
+
msgid "TestCases|Move test case"
msgstr "移動測試案例"
@@ -47744,6 +48717,9 @@ msgstr "議題追蹤用於管ç†éœ€æ±‚改進或者解決的å•é¡Œ"
msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project."
msgstr "議題追蹤用於管ç†éœ€æ±‚改進或者解決的å•é¡Œã€‚請註冊或登入後為當å‰å°ˆæ¡ˆå»ºç«‹è­°é¡Œã€‚"
+msgid "The Mattermost token."
+msgstr ""
+
msgid "The Slack notifications integration is deprecated and will be removed in a future release. To continue to receive notifications from Slack, use the GitLab for Slack app instead. %{learn_more_link_start}Learn more%{link_end}."
msgstr "Slack 通知整åˆå·²è¢«æ£„用,將在未來版本中移除。è¦ç¹¼çºŒæŽ¥æ”¶ä¾†è‡ª Slack 的通知,請改用 GitLab for Slack 應用程å¼ã€‚ %{learn_more_link_start}了解更多%{link_end}。"
@@ -47768,6 +48744,12 @@ msgstr "應用程å¼å¯ç”¨æ–¼å®¢æˆ¶ç«¯é‡‘é‘°å¯ä»¥ä¿æŒä¿å¯†çš„地方。原生
msgid "The associated issue #%{issueId} has been closed as the error is now resolved."
msgstr "相關的議題#%{issueId}已關閉,因為該錯誤已經解決。"
+msgid "The authentication token."
+msgstr ""
+
+msgid "The base URL to the Harbor instance linked to the GitLab project. For example, `https://demo.goharbor.io`."
+msgstr ""
+
msgid "The branch for this project has no active pipeline configuration."
msgstr "此專案的分支沒有啟用的æµæ°´ç·šè¨­å®šã€‚"
@@ -47786,9 +48768,6 @@ msgstr "您正在編輯的留言已被其他使用者更改。您想ä¿ç•™æ‚¨çš„
msgid "The commit does not exist"
msgstr "該æ交ä¸å­˜åœ¨"
-msgid "The comparison view may be inaccurate due to merge conflicts."
-msgstr "由於åˆä½µè¡çªï¼Œæ¯”較視圖å¯èƒ½ä¸æº–確。"
-
msgid "The complete DevOps platform. One application with endless possibilities. Organizations rely on GitLab’s source code management, CI/CD, security, and more to deliver software rapidly."
msgstr "完整的 DevOps å¹³å°ï¼Œä¸€ç¨®å…·æœ‰ç„¡é™å¯èƒ½æ€§çš„應用程å¼ã€‚組織ä¾é  GitLab çš„æºç¢¼ç®¡ç†ã€CI/CDã€å®‰å…¨æ€§ç­‰ä¾†å¿«é€Ÿäº¤ä»˜è»Ÿé«”。"
@@ -47828,17 +48807,23 @@ msgstr "當å‰ä½¿ç”¨è€…無權存å–作業日誌。"
msgid "The current user is not authorized to create the pipeline schedule"
msgstr "ç›®å‰ä½¿ç”¨è€…沒有權é™ä¾†å»ºç«‹æµæ°´ç·šæŽ’程"
+msgid "The current user is not authorized to create the pipeline schedule variables"
+msgstr ""
+
msgid "The current user is not authorized to set pipeline schedule variables"
msgstr "當å‰ä½¿ç”¨è€…未被授權設定æµæ°´ç·šæŽ’程變數"
msgid "The current user is not authorized to update the pipeline schedule"
msgstr "當å‰çš„使用者未被授與更新管é“排程的權é™"
+msgid "The current user is not authorized to update the pipeline schedule variables"
+msgstr ""
+
msgid "The data in this pipeline is too old to be rendered as a graph. Please check the Jobs tab to access historical data."
msgstr "æ­¤æµæ°´ç·šä¸­çš„資料太舊,無法呈ç¾ç‚ºåœ–形。請檢查作業é¸é …é ä»¥å­˜å–æ­·å²è³‡æ–™ã€‚"
-msgid "The date when the release is ready. A release with a date in the future is labeled as an %{linkStart}Upcoming Release%{linkEnd}."
-msgstr "發布版本準備就緒的日期,具有未來日期的版本被標記為 %{linkStart}å³å°‡ç™¼å¸ƒçš„版本%{linkEnd}。"
+msgid "The date when the release is ready."
+msgstr ""
msgid "The default CI/CD configuration file and path for new projects."
msgstr "新專案的é è¨­ CI/CD 設定文件和路徑。"
@@ -48085,6 +49070,9 @@ msgstr "CI/CD 設定文件的å稱。相å°æ–¼æ ¹ç›®éŒ„的路徑是å¯é¸çš„(
msgid "The name of the Jenkins project. Copy the name from the end of the URL to the project."
msgstr "Jenkins 專案的å稱。將 URL 末尾的å稱複製到專案中。"
+msgid "The namespace storage size (%{current_size}) exceeds the limit of %{size_limit} by %{exceeded_size}. You won't be able to push new code to this project. Please contact your GitLab administrator for more information."
+msgstr "命åç©ºé–“å„²å­˜å¤§å° (%{current_size}) 超出 %{size_limit} çš„é™åˆ¶ï¼Œè¶…éŽ %{exceeded_size}。您將無法把新的程å¼ç¢¼æŽ¨é€åˆ°æ­¤å°ˆæ¡ˆã€‚è«‹è¯çµ¡æ‚¨çš„ GitLab 管ç†å“¡ä»¥å–得更多資訊。"
+
msgid "The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job"
msgstr "複製 (Clone) 版本庫時è¦å¾ž GitLab å–得的更改數é‡ï¼Œè¼ƒä½Žçš„值å¯ä»¥åŠ é€Ÿæµæ°´ç·šåŸ·è¡Œã€‚ 設定為 %{code_open}0%{code_close} 或空白以å–å¾—æ¯å€‹ä½œæ¥­çš„所有分支和標籤"
@@ -48223,6 +49211,9 @@ msgstr "指定é ç±¤ç„¡æ•ˆï¼Œè«‹é¸æ“‡å¦ä¸€å€‹"
msgid "The start date must be earlier than the end date."
msgstr "開始日期必須早於çµæŸæ—¥æœŸã€‚"
+msgid "The subdomain setting."
+msgstr ""
+
msgid "The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported."
msgstr "該主題將用作新議題的標題,訊æ¯å°‡ä½œç‚ºèªªæ˜Žã€‚ æ”¯æ´ %{quickActionsLinkStart}快速æ“作%{quickActionsLinkEnd} 並使用支æ´çš„ %{markdownLinkStart}Markdown%{markdownLinkEnd} 風格。"
@@ -48274,15 +49265,12 @@ msgstr "æ¼æ´žå·²ä¸å†è¢«æª¢æ¸¬åˆ°ã€‚請於更改其狀態å‰ç¢ºä¿æ¼æ´žå·²ä¿®
msgid "The vulnerability is no longer detected. Verify the vulnerability has been remediated before changing its status."
msgstr "æ¼æ´žå·²ä¸å†è¢«æª¢æ¸¬åˆ°ã€‚請於更改其狀態å‰ç¢ºä¿æ¼æ´žå·²ä¿®è£œã€‚"
+msgid "There are currently no merge request branch targets"
+msgstr ""
+
msgid "There are currently no mirrored repositories."
msgstr "當å‰æ²’有已é¡åƒçš„版本庫。"
-msgid "There are currently no target branch rules"
-msgstr "ç›®å‰æ²’有目標分支è¦å‰‡"
-
-msgid "There are merge conflicts"
-msgstr "存在åˆä½µè¡çª"
-
msgid "There are no GPG keys associated with this account."
msgstr "沒有與此帳號關è¯çš„GPG金鑰。"
@@ -48451,6 +49439,9 @@ msgstr "å–得專案標籤時發生錯誤。"
msgid "There was a problem fetching project users."
msgstr "å–得專案使用者時發生錯誤。"
+msgid "There was a problem fetching projects."
+msgstr "æ“·å–專案時發生å•é¡Œã€‚"
+
msgid "There was a problem fetching recent groups."
msgstr "å–得最近的群組時出ç¾å•é¡Œã€‚"
@@ -48646,6 +49637,9 @@ msgstr "這些範例展示了使用æµæ°´ç·šè§¸ç™¼å™¨æ†‘證來觸發æµæ°´ç·šçš„
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
msgstr "這些ç¾æœ‰çš„議題具有類似的標題。在那裡留言å¯èƒ½æ›´å¥½ï¼Œè€Œä¸æ˜¯å»ºç«‹å¦ä¸€å€‹é¡žä¼¼çš„å•é¡Œã€‚"
+msgid "These guidelines for public avatars are displayed on the user settings page."
+msgstr ""
+
msgid "These runners are shared across projects in this group."
msgstr "這些執行器(runners)在該群組中的專案之間共用。"
@@ -48736,9 +49730,15 @@ msgstr "請求此存檔的次數éŽå¤šã€‚ç¨å¾Œå†è©¦ã€‚"
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} %{issuables} have been included. Consider re-exporting with a narrower selection of %{issuables}."
msgstr "此附件已被截斷,以é¿å…超éŽæœ€å¤§å…è¨±çš„é™„ä»¶å¤§å° %{size_limit}。 其中包括%{count} 個%{issuables} 中的%{written_count}個。考慮縮å°é¸æ“‡çš„ %{issuables} å†åŒ¯å‡ºã€‚"
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{count} projects have been included."
+msgstr ""
+
msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} %{object_type} have been included. Consider re-exporting with a narrower selection of %{object_type}."
msgstr "此附件已被截斷以é¿å…è¶…éŽ %{size_limit} 的最大å…許附件大å°ã€‚å·²åŒ…å« %{written_count} / %{total_count} 個 %{object_type}。請考慮使用較å°çš„ %{object_type} é¸æ“‡é‡æ–°å°Žå‡ºã€‚"
+msgid "This attachment has been truncated to avoid exceeding the maximum allowed attachment size of %{size_limit}. %{written_count} of %{total_count} projects have been included."
+msgstr ""
+
msgid "This block is self-referential"
msgstr "該å€å¡Šç‚ºè‡ªæˆ‘引用"
@@ -48775,6 +49775,9 @@ msgstr "æ­¤æ交是在 GitLab UI 中建立的,並使用經 GitLab 驗證的ç°
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr "æ­¤æ交使用%{strong_open}已驗證的%{strong_close}ç°½å進行簽署,並且已驗證æ交者的電å­éƒµä»¶å±¬æ–¼åŒä¸€ä½¿ç”¨è€…。"
+msgid "This commit was signed with a certificate issued by top-level group Certificate Authority (CA) and the committer email was verified to belong to the same user."
+msgstr ""
+
msgid "This commit was signed with a different user's verified signature."
msgstr "æ­¤æ交使用其他使用者的已驗證簽å進行簽å。"
@@ -48967,9 +49970,6 @@ msgstr "這是專為您產生的ç§äººé›»å­éƒµä»¶åœ°å€ %{helpIcon} 任何æ“æœ
msgid "This is a security log of authentication events involving your account."
msgstr "這是涉åŠæ‚¨å¸³è™Ÿçš„身份驗證事件安全日誌。"
-msgid "This is a self-managed instance of GitLab."
-msgstr "這是GitLab的自管ç†åŸ·è¡Œå€‹é«”。"
-
msgid "This is an experimental feature developed by GitLab Incubation Engineering."
msgstr "這是 GitLab Incubation Engineering 開發的一項實驗性功能。"
@@ -49114,12 +50114,6 @@ msgstr "該æ“作å¯èƒ½æœƒæ´©æ¼æ©Ÿå¯†è¨Šæ¯ï¼Œå› ç‚ºé¸å®šçš„分å‰ä½æ–¼å¦ä¸€
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "在建立一個空的版本庫或匯入ç¾æœ‰ç‰ˆæœ¬åº«ä¹‹å‰ï¼Œå°‡ç„¡æ³•æŽ¨é€ç¨‹å¼ç¢¼ã€‚"
-msgid "This merge request branch is protected from force push."
-msgstr "這個åˆä½µè«‹æ±‚分支ä¸æœƒè¢«å¼·åˆ¶æŽ¨é€ã€‚"
-
-msgid "This merge request cannot be rebased while there are conflicts."
-msgstr "存在è¡çªæ™‚,此åˆä½µè«‹æ±‚無法 rebase。"
-
msgid "This merge request does not have accessibility reports"
msgstr "該åˆä½µè«‹æ±‚沒有無障礙性掃瞄報告"
@@ -49168,6 +50162,10 @@ msgstr "該æµæ°´ç·šæ˜¯é€éŽä½¿ç”¨è§¸ç™¼ä»¤ç‰Œé€²è¡Œèº«ä»½é©—證的 API 呼å«æ
msgid "This pipeline was triggered using the api"
msgstr "該æµæ°´ç·šç”± api 觸發"
+msgid "This policy needs %{approvals} approval because %{rules}"
+msgid_plural "This policy needs %{approvals} approvals because %{rules}"
+msgstr[0] ""
+
msgid "This process deletes the project repository and all related resources."
msgstr "該æµç¨‹å°‡åˆªé™¤å°ˆæ¡ˆç‰ˆæœ¬åº«å’Œæ‰€æœ‰ç›¸é—œè³‡æºã€‚"
@@ -49809,9 +50807,6 @@ msgstr "è¦ç¢ºä¿ %{project_name} 被未計劃的刪除,請檢查 GitLab 是å
msgid "To ensure no loss of access to personal content, only use this account for matters related to %{group_name}."
msgstr "為確ä¿ä¸æœƒç§»å¤±å°å€‹äººå…§å®¹çš„å­˜å–權é™ï¼Œè«‹åªä½¿ç”¨è©²å¸³è™Ÿè™•ç†èˆ‡ %{group_name} 相關的事務。"
-msgid "To ensure no loss of personal content, this account should only be used for matters related to %{group_name}."
-msgstr "為ä¿è­‰å€‹äººå…§å®¹ä¸éºå¤±ï¼Œæœ¬å¸³è™Ÿåƒ…用於與 %{group_name}相關的事項。"
-
msgid "To find the state of this project's repository at the time of any of these versions, check out %{link_start}the tags%{link_end}"
msgstr "è¦åœ¨ä»»ä½•é€™äº›ç‰ˆæœ¬ä¸­æŸ¥æ‰¾æ­¤å°ˆæ¡ˆç‰ˆæœ¬åº«çš„狀態,請檢查 %{link_start}標籤%{link_end}。"
@@ -49855,6 +50850,9 @@ msgstr "è¦äº†è§£æ›´å¤šé—œæ–¼æ­¤å°ˆæ¡ˆçš„訊æ¯ï¼Œè«‹é–±è®€ %{link_to_wiki}"
msgid "To manage seats for all members associated with this group and its subgroups and projects, visit the %{link_start}usage quotas page%{link_end}."
msgstr "è¦ç®¡ç†èˆ‡è©²ç¾¤çµ„åŠå…¶å­ç¾¤çµ„和專案相關è¯çš„所有æˆå“¡å¸­æ¬¡ï¼Œè«‹è¨ªå•%{link_start}使用é…é¡é é¢%{link_end}。"
+msgid "To merge, either the title or description must reference a Jira issue."
+msgstr "è¦åˆä½µï¼Œæ¨™é¡Œæˆ–æ述必須引用 Jira 議題。"
+
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伺æœå™¨ç§»å‹•æˆ–複製到此伺æœå™¨ï¼Œè«‹å­˜å–原專案的設定é é¢ï¼Œç”¢ç”ŸåŒ¯å‡ºæ–‡ä»¶ï¼Œç„¶å¾Œåœ¨æ­¤è™•ä¸Šè¼‰ã€‚"
@@ -49960,8 +50958,8 @@ msgstr "待辦事項已æˆåŠŸæ¨™ç¤ºç‚ºå·²å®Œæˆã€‚"
msgid "Today"
msgstr "今日"
-msgid "Todos count"
-msgstr "待辦事項計數"
+msgid "Todos| What actions create to-do items?"
+msgstr ""
msgid "Todos|Added"
msgstr "已加入"
@@ -49975,9 +50973,6 @@ msgstr "任何動作"
msgid "Todos|Any Type"
msgstr "任何類型"
-msgid "Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item."
-msgstr "您正在尋找è¦åšçš„事情嗎? 查看 %{strongStart}%{openIssuesLinkStart}é–‹å•Ÿçš„è­°é¡Œ%{openIssuesLinkEnd}%{strongEnd},貢ç»çµ¦ %{strongStart}%{mergeRequestLinkStart}åˆä½µè«‹æ±‚%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd},或在留言中æåŠæŸäººï¼Œè‡ªå‹•æŒ‡æ´¾æ–°çš„待辦事項。"
-
msgid "Todos|Assigned"
msgstr "已指派"
@@ -50035,6 +51030,9 @@ msgstr "æåŠ"
msgid "Todos|Merge request"
msgstr "åˆä½µè«‹æ±‚"
+msgid "Todos|Not sure where to go next? Take a look at your %{strongStart}%{assignedIssuesLinkStart}assigned issues%{assignedIssuesLinkEnd}%{strongEnd} or %{strongStart}%{mergeRequestLinkStart}merge requests%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}."
+msgstr ""
+
msgid "Todos|Nothing is on your to-do list. Nice work!"
msgstr "您的待辦事項列表中沒有任何事項。"
@@ -50071,6 +51069,9 @@ msgstr "已加入一項待辦項目"
msgid "Todos|has requested access to %{what} %{which}"
msgstr "å·²è«‹æ±‚å­˜å– %{what} %{which}"
+msgid "Todos|have been added as an approver"
+msgstr ""
+
msgid "Todos|mentioned %{who}"
msgstr "æåŠ %{who}"
@@ -50113,8 +51114,8 @@ msgstr "é–‹é—œæ交列表"
msgid "Toggle details"
msgstr "切æ›è©³ç´°ä¿¡æ¯"
-msgid "Toggle emoji award"
-msgstr "切æ›è¡¨æƒ…符號讚賞"
+msgid "Toggle emoji reaction"
+msgstr ""
msgid "Toggle file browser"
msgstr "切æ›æª”案ç€è¦½å™¨"
@@ -50125,9 +51126,6 @@ msgstr "切æ›å°ˆæ³¨æ¨¡å¼"
msgid "Toggle keyboard shortcuts help dialog"
msgstr "切æ›éµç›¤å¿«æ·éµå¹«åŠ©å°è©±æ¡†"
-msgid "Toggle navigation"
-msgstr "切æ›å°Žè¦½"
-
msgid "Toggle project select"
msgstr "切æ›å°ˆæ¡ˆé¸æ“‡"
@@ -50143,11 +51141,11 @@ msgstr "切æ›æ•ˆèƒ½æ¬„"
msgid "Toggle the navigation sidebar"
msgstr "切æ›å°Žèˆªæ¬„"
-msgid "Toggled :%{name}: emoji award."
-msgstr "åˆ‡æ› :%{name}: 表情符號讚賞。"
+msgid "Toggled :%{name}: emoji reaction."
+msgstr ""
-msgid "Toggles :%{name}: emoji award."
-msgstr "åˆ‡æ› :%{name}: 表情符號讚賞。"
+msgid "Toggles :%{name}: emoji reaction."
+msgstr ""
msgid "Token"
msgstr "令牌"
@@ -50188,18 +51186,6 @@ msgstr "發ç¾å¤ªå¤šä½¿ç”¨è€…。快速æ“作僅é™æ–¼æœ€å¤š %{max_count} 個使ç
msgid "Tool"
msgstr "工具"
-msgid "TopNav|Explore"
-msgstr "探索"
-
-msgid "TopNav|Go back"
-msgstr "返回"
-
-msgid "TopNav|Switch to"
-msgstr "切æ›åˆ°"
-
-msgid "TopNav|Your dashboards"
-msgstr "您的儀表æ¿"
-
msgid "Topic %{source_topic} was successfully merged into topic %{target_topic}."
msgstr "主題 %{source_topic} å·²æˆåŠŸåˆä½µè‡³ä¸»é¡Œ %{target_topic}。"
@@ -50267,6 +51253,12 @@ msgstr "總跨度"
msgid "Total test time for all commits/merges"
msgstr "所有æ交/åˆä½µçš„總測試時間"
+msgid "Total time spent cannot be negative."
+msgstr ""
+
+msgid "Total time spent cannot exceed a year."
+msgstr ""
+
msgid "Total users"
msgstr "使用者總數"
@@ -50291,8 +51283,28 @@ msgstr "追蹤開始"
msgid "Tracing"
msgstr "跟蹤"
-msgid "Tracing|%{ms} ms"
-msgstr "%{ms}毫秒"
+msgid "Tracing|%{count} match"
+msgid_plural "Tracing|%{count} matches"
+msgstr[0] ""
+
+msgid "Tracing|%{count} span"
+msgid_plural "Tracing|%{count} spans"
+msgstr[0] ""
+
+msgid "Tracing|%{h}h"
+msgstr ""
+
+msgid "Tracing|%{ms}ms"
+msgstr ""
+
+msgid "Tracing|%{m}m"
+msgstr ""
+
+msgid "Tracing|%{s}s"
+msgstr ""
+
+msgid "Tracing|0ms"
+msgstr ""
msgid "Tracing|Attribute"
msgstr "屬性"
@@ -50300,9 +51312,6 @@ msgstr "屬性"
msgid "Tracing|Attributes"
msgstr "屬性"
-msgid "Tracing|Check again"
-msgstr "å†æ¬¡æª¢æŸ¥"
-
msgid "Tracing|Date"
msgstr "日期"
@@ -50360,12 +51369,12 @@ msgstr "最近 7 天"
msgid "Tracing|Metadata"
msgstr "元數據"
-msgid "Tracing|No traces to display."
-msgstr "沒有å¯é¡¯ç¤ºçš„跟踪。"
-
msgid "Tracing|Operation"
msgstr "æ“作"
+msgid "Tracing|Refresh the page, or edit your search filter and try again"
+msgstr "é‡æ–°æ•´ç†é é¢ï¼Œæˆ–編輯您的æœå°‹éŽæ¿¾å™¨ä¸”é‡è©¦"
+
msgid "Tracing|Resource attributes"
msgstr "資æºå±¬æ€§"
@@ -50498,27 +51507,6 @@ msgstr "樹狀圖"
msgid "Trending"
msgstr "趨勢"
-msgid "TrialBenefits|Container Scanning"
-msgstr "容器掃æ"
-
-msgid "TrialBenefits|Dynamic Applications Security Testing"
-msgstr "動態應用程å¼å®‰å…¨æ¸¬è©¦"
-
-msgid "TrialBenefits|Multi-Level Epics"
-msgstr "多層次的å²è©©"
-
-msgid "TrialBenefits|Security Dashboards"
-msgstr "安全儀表æ¿"
-
-msgid "TrialBenefits|Static Application Security Testing"
-msgstr "éœæ…‹æ‡‰ç”¨ç¨‹å¼å®‰å…¨æ¸¬è©¦"
-
-msgid "TrialBenefits|Suggested Reviewers"
-msgstr "建議的審閱者"
-
-msgid "TrialBenefits|Vulnerability Management"
-msgstr "æ¼æ´žç®¡ç†"
-
msgid "TrialRegistration|Start GitLab Ultimate free trial"
msgstr "開始 GitLab Ultimate å…費試用"
@@ -50534,29 +51522,20 @@ msgstr "%{planName} 試用"
msgid "Trials|Compare all plans"
msgstr "比較全部方案"
-msgid "Trials|Congrats on starting your 30-day free trial!"
-msgstr "æ­å–œæ‚¨é–‹å§‹30天的å…費試用ï¼"
-
msgid "Trials|Create a new group to start your GitLab Ultimate trial."
msgstr "建立一個新群組以開始您的旗艦版試用。"
msgid "Trials|Day %{daysUsed}/%{duration}"
msgstr "第 %{daysUsed}/%{duration} 天"
+msgid "Trials|Don't lose out on additional GitLab features"
+msgstr "ä¸è¦éŒ¯éŽå…¶ä»– GitLab 功能"
+
msgid "Trials|Looking to do more with GitLab?"
msgstr "希望使用 GitLab åšæ›´å¤šäº‹æƒ…?"
-msgid "Trials|Trials benefits"
-msgstr "試用的好處"
-
-msgid "Trials|Upgrade your plan for more security features"
-msgstr "å‡ç´šæ‚¨çš„計劃以ç²å¾—更多安全功能"
-
-msgid "Trials|With GitLab Ultimate you can detect and address vulnerabilities in your application."
-msgstr "使用 GitLab Ultimate,您å¯ä»¥æª¢æ¸¬ä¸¦è§£æ±ºæ‡‰ç”¨ç¨‹å¼ä¸­çš„æ¼æ´žã€‚"
-
-msgid "Trials|With GitLab Ultimate, you'll have access to:"
-msgstr "使用 GitLab Ultimate,您將å¯ä»¥å­˜å–:"
+msgid "Trials|Upgrade to regain access to powerful features like advanced team management for code, security, and reporting."
+msgstr "å‡ç´šä»¥é‡æ–°ç²å¾—強大的功能,例如程å¼ç¢¼ã€å®‰å…¨æ€§èˆ‡å ±å‘Šçš„進階團隊管ç†ã€‚"
msgid "Trials|You can apply your trial to a new group or an existing group."
msgstr "您å¯ä»¥å°‡æ‚¨åœ¨ä¸€å€‹æ–°ç¾¤çµ„或一個ç¾æœ‰ç¾¤çµ„上é¢é€²è¡Œè©¦ç”¨ã€‚"
@@ -50697,12 +51676,6 @@ msgstr "關閉"
msgid "Turn on"
msgstr "é–‹å•Ÿ"
-msgid "Twitter"
-msgstr "Twitter"
-
-msgid "Twitter:"
-msgstr "Twitter:"
-
msgid "Two-Factor Authentication"
msgstr "雙因å­èªè­‰"
@@ -50778,15 +51751,30 @@ msgstr "如有必è¦ï¼ŒURL 必須經éŽç™¾åˆ†æ¯”編碼。"
msgid "URL must start with %{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}, or %{codeStart}ftp://%{codeEnd}"
msgstr "URL必須以%{codeStart}http://%{codeEnd}, %{codeStart}https://%{codeEnd}或%{codeStart}ftp://%{codeEnd}開始"
+msgid "URL of the Confluence Workspace hosted on `atlassian.net`."
+msgstr ""
+
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr "è¦å¾žæŒ‡æ¨™å„€è¡¨æ¿é¸å–®é€£çµåˆ° Grafana 執行個體的 URL。"
+msgid "URL of the Squash TM webhook."
+msgstr ""
+
msgid "URL of the external Spam Check endpoint"
msgstr "外部垃圾訊æ¯æª¢æŸ¥ç«¯é»žURL"
msgid "URL of the external storage to serve the repository static objects."
msgstr "用於為版本庫éœæ…‹ç‰©ä»¶æä¾›æœå‹™çš„外部儲存的 URL。"
+msgid "URL of the issue."
+msgstr ""
+
+msgid "URL of the new issue."
+msgstr ""
+
+msgid "URL of the project."
+msgstr ""
+
msgid "URL or request ID"
msgstr "URL或請求ID"
@@ -50952,9 +51940,18 @@ msgstr "未授權建立軟體包ä¿è­·è¦å‰‡"
msgid "Unauthorized to create an environment"
msgstr "未授權建立環境"
+msgid "Unauthorized to delete a container registry protection rule"
+msgstr ""
+
msgid "Unauthorized to delete a package protection rule"
msgstr "未授權刪除軟體包ä¿è­·è¦å‰‡"
+msgid "Unauthorized to update a container registry protection rule"
+msgstr ""
+
+msgid "Unauthorized to update a package protection rule"
+msgstr "未經授權更新套件ä¿è­·è¦å‰‡"
+
msgid "Unauthorized to update the environment"
msgstr "未授權更新環境"
@@ -51030,8 +52027,8 @@ msgstr "未知的回應文字"
msgid "Unknown user"
msgstr "未知使用者"
-msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Upload License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
-msgstr "除éžèˆ‡GitLabå¦æœ‰æ›¸é¢å”議,å¦å‰‡é»žæ“Šã€Œä¸Šå‚³è¨±å¯ã€å³è¡¨ç¤ºæ‚¨åŒæ„使用GitLab軟體應éµå®ˆ %{eula_link_start}æœå‹™æ¢æ¬¾%{eula_link_end}。"
+msgid "Unless otherwise agreed to in writing with GitLab, by clicking \"Add License\" you agree that your use of GitLab Software is subject to the %{eula_link_start}Terms of Service%{eula_link_end}."
+msgstr "除éžèˆ‡ GitLab å¦æœ‰æ›¸é¢ç´„定,å¦å‰‡æŒ‰ä¸€ä¸‹ã€Œæ–°å¢žæŽˆæ¬Šã€å³è¡¨ç¤ºæ‚¨åŒæ„使用 GitLab 軟體須éµå®ˆçš„ %{eula_link_start}æœå‹™æ¢æ¬¾%{eula_link_end}。"
msgid "Unlimited"
msgstr "ç„¡é™"
@@ -51081,6 +52078,9 @@ msgstr "解鎖討論"
msgid "Unlocks the discussion."
msgstr "解鎖討論。"
+msgid "Unpin the file"
+msgstr ""
+
msgid "Unreachable"
msgstr "無法存å–"
@@ -51234,6 +52234,9 @@ msgstr "å–消"
msgid "UpdateProject|Cannot rename project because it contains container registry tags!"
msgstr "因為專案容器映åƒåº«å·²æœ‰æ¨™ç±¤ï¼Œç„¡æ³•æ›´æ–°ç•¶å‰å°ˆæ¡ˆï¼"
+msgid "UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"
+msgstr "無法é‡æ–°å‘½å專案,容器登錄路徑é‡æ–°å‘½å驗證失敗: %{error}"
+
msgid "UpdateProject|Could not set the default branch"
msgstr "無法設定é è¨­åˆ†æ”¯"
@@ -51372,8 +52375,11 @@ msgstr "命å空間儲存容é‡å‰©é¤˜ %{percentageRemaining}%%。"
msgid "UsageQuota|%{percentageRemaining}%% purchased storage remaining."
msgstr "購買的儲存容é‡å‰©é¤˜ %{percentageRemaining}%%。"
-msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
-msgstr "%{storage_limit_link_start}命å空間儲存é™åˆ¶%{link_end} å°‡å¾ˆå¿«å° %{strong_start}%{namespace_name}%{strong_end} 命å空間實施。 %{extra_message}"
+msgid "UsageQuota|%{storage_limit_link_start}A namespace storage limit%{link_end} of %{limit} will soon be enforced for the %{strong_start}%{namespace_name}%{strong_end} namespace. %{extra_message}"
+msgstr ""
+
+msgid "UsageQuota|An error occured while loading the storage usage details. Please refresh the page to try again."
+msgstr ""
msgid "UsageQuota|Any additional purchased storage will be displayed here."
msgstr "任何é¡å¤–購買的儲存空間將顯示在此。"
@@ -51387,9 +52393,6 @@ msgstr "購買é¡å¤–的計算分é˜æ•¸"
msgid "UsageQuota|Buy storage"
msgstr "購買儲存"
-msgid "UsageQuota|Code Suggestions"
-msgstr "程å¼ç¢¼å»ºè­°"
-
msgid "UsageQuota|Code packages and container images."
msgstr "軟體包和容器映åƒã€‚"
@@ -51411,15 +52414,15 @@ msgstr "容器註冊表"
msgid "UsageQuota|Dependency proxy"
msgstr "ä¾è³´ä»£ç†"
+msgid "UsageQuota|Duo Pro"
+msgstr ""
+
msgid "UsageQuota|Filter charts by year"
msgstr "按年篩é¸åœ–表"
msgid "UsageQuota|Filter projects data by month"
msgstr "按月éŽæ¿¾å°ˆæ¡ˆè³‡æ–™"
-msgid "UsageQuota|For more information about storage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "有關儲存é™åˆ¶çš„更多訊æ¯ï¼Œè«‹åƒé–±æˆ‘們的 %{faq_link_start}FAQ%{link_end}。"
-
msgid "UsageQuota|Git repository."
msgstr "Git版本庫。"
@@ -51450,8 +52453,8 @@ msgstr "了解有關使用é…é¡çš„更多訊æ¯"
msgid "UsageQuota|Learn more about usage quotas."
msgstr "詳細了解使用é…é¡ã€‚"
-msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}"
-msgstr "用於經常存å–的上游 Docker 映åƒçš„本地代ç†ã€‚ %{linkStart}更多信æ¯%{linkEnd}"
+msgid "UsageQuota|Local proxy used for frequently-accessed upstream Docker images."
+msgstr ""
msgid "UsageQuota|Month"
msgstr "月"
@@ -51489,8 +52492,8 @@ msgstr "使用é…é¡å®¹å™¨è¨»å†Šè¡¨å­˜å„²å¤§å°çš„精確計算被延é²ï¼Œå› ç‚º
msgid "UsageQuota|Product analytics"
msgstr "產å“分æž"
-msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage."
-msgstr "此命å空間下的專案有 %{planLimit} 的儲存é™åˆ¶ã€‚"
+msgid "UsageQuota|Projects under this namespace have %{planLimit} of storage limit applied to repository and LFS objects."
+msgstr "此命å空間下的專案å°å„²å­˜åº«èˆ‡ LFS 物件套用 %{planLimit} 的儲存空間é™åˆ¶ã€‚"
msgid "UsageQuota|Purchased storage"
msgstr "已購買的儲存空間"
@@ -51516,9 +52519,6 @@ msgstr "讀å–æµæ°´ç·šçµ±è¨ˆä¿¡æ¯æ™‚出ç¾å•é¡Œ"
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
msgstr "å–得專案儲存統計時出ç¾éŒ¯èª¤"
-msgid "UsageQuota|Something went wrong while loading usage details"
-msgstr "讀å–詳細的使用資料時發生錯誤"
-
msgid "UsageQuota|Storage"
msgstr "儲存媒體"
@@ -51768,12 +52768,6 @@ msgstr "使用模æ¿"
msgid "Use the %{strongStart}Test%{strongEnd} option above to create an event."
msgstr "使用上é¢çš„ %{strongStart}測試%{strongEnd} é¸é …建立事件。"
-msgid "Use the Apple App Store Connect integration to easily connect to the Apple App Store with Fastlane in CI/CD pipelines."
-msgstr "使用 Apple App Store Connect æ•´åˆï¼Œé€éŽ CI/CD æµæ°´ç·šä¸­çš„ Fastlane 輕鬆連çµè‡³ Apple App Store。"
-
-msgid "Use the Google Play integration to connect to Google Play with fastlane in CI/CD pipelines."
-msgstr "使用 Google Play æ•´åˆä½¿ç”¨å¿«é€Ÿé€šé“在 CI/CD æµç¨‹ä¸­é€£æŽ¥ Google Play。"
-
msgid "Use the link below to confirm your email address (%{email})"
msgstr "使用以下連çµç¢ºèªæ‚¨çš„é›»å­éƒµä»¶åœ°å€ (%{email})"
@@ -51786,6 +52780,12 @@ msgstr "使用公共雲執行個體 URL (%{kroki_public_url}) 或 %{install_link
msgid "Use the search bar on the top of this page"
msgstr "使用本é é ‚部的æœå°‹æ¬„"
+msgid "Use this integration to connect to Google Play with fastlane in CI/CD pipelines."
+msgstr ""
+
+msgid "Use this integration to connect to the Apple App Store with fastlane in CI/CD pipelines."
+msgstr ""
+
msgid "Use this section to disable your one-time password authenticator and WebAuthn devices. You can also generate new recovery codes."
msgstr "使用此部分來ç¦ç”¨æ‚¨çš„一次性密碼驗證器和 WebAuthn 設備,您還å¯ä»¥ç”Ÿæˆæ–°çš„æ¢å¾©ç¢¼ã€‚"
@@ -51850,6 +52850,9 @@ msgstr "使用者 %{user} SCIM 身份被é‡æ–°å•Ÿç”¨"
msgid "User %{user} was removed from %{group}."
msgstr "使用者 %{user} 已從 %{group} 移除。"
+msgid "User API token. The user must have access to the task. All comments are attributed to this user."
+msgstr ""
+
msgid "User ID"
msgstr "使用者ID"
@@ -51955,6 +52958,9 @@ msgstr "使用者將被å°éŽ–ï¼æ‚¨ç¢ºå®šå—Žï¼Ÿ"
msgid "User will not be allowed to create possible spam! Are you sure?"
msgstr "使用者å¯èƒ½å°‡ä¸è¢«å…許建立垃圾郵件ï¼æ‚¨ç¢ºå®šå—Žï¼Ÿ"
+msgid "User with API access to the Bamboo server."
+msgstr ""
+
msgid "User-based escalation rules must have a user with access to the project"
msgstr "基於使用者的å‡ç´šè¦å‰‡å¿…須有一個使用者å¯ä»¥å­˜å–專案"
@@ -52405,23 +53411,28 @@ msgstr "在這個階段中,根據這些篩é¸æ¢ä»¶å’Œæ™‚間範åœï¼Œæ²’有任
msgid "ValueStreamAnalytics|%{stageCount}+ items"
msgstr "%{stageCount}+ é …"
-msgid "ValueStreamAnalytics|%{value}M"
-msgstr "%{value}月"
+msgid "ValueStreamAnalytics|%{value} day"
+msgid_plural "ValueStreamAnalytics|%{value} days"
+msgstr[0] "%{value}天"
-msgid "ValueStreamAnalytics|%{value}d"
-msgstr "%{value}天"
+msgid "ValueStreamAnalytics|%{value} hour"
+msgid_plural "ValueStreamAnalytics|%{value} hours"
+msgstr[0] "%{value}å°æ™‚"
-msgid "ValueStreamAnalytics|%{value}h"
-msgstr "%{value}å°æ™‚"
+msgid "ValueStreamAnalytics|%{value} minute"
+msgid_plural "ValueStreamAnalytics|%{value} minutes"
+msgstr[0] "%{value}分é˜"
-msgid "ValueStreamAnalytics|%{value}m"
-msgstr "%{value}分é˜"
+msgid "ValueStreamAnalytics|%{value} month"
+msgid_plural "ValueStreamAnalytics|%{value} months"
+msgstr[0] "%{value}月"
-msgid "ValueStreamAnalytics|%{value}w"
-msgstr "%{value}周"
+msgid "ValueStreamAnalytics|%{value} week"
+msgid_plural "ValueStreamAnalytics|%{value} weeks"
+msgstr[0] "%{value}週"
-msgid "ValueStreamAnalytics|&lt;1m"
-msgstr "&lt;1m"
+msgid "ValueStreamAnalytics|&lt;1 minute"
+msgstr "&lt;1 分é˜"
msgid "ValueStreamAnalytics|Average number of deployments to production per day."
msgstr "æ¯å¤©éƒ¨ç½²åˆ°æ­£å¼ç’°å¢ƒçš„å¹³å‡æ•¸ã€‚"
@@ -52438,6 +53449,9 @@ msgstr "儀表æ¿"
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr "編輯 Value Stream:%{name}"
+msgid "ValueStreamAnalytics|Failed to load usage overview data"
+msgstr "無法載入使用情æ³æ¦‚覽資料"
+
msgid "ValueStreamAnalytics|Go to docs"
msgstr "å‰å¾€æ–‡ä»¶"
@@ -52540,15 +53554,6 @@ msgstr "變數å稱 “%{variable}†ä¸èƒ½ä»¥ “%{prefix}†開頭"
msgid "Variables"
msgstr "變數"
-msgid "Variables can be:"
-msgstr "變數å¯ä»¥æ˜¯ï¼š"
-
-msgid "Variables can have several attributes."
-msgstr "變數å¯ä»¥æœ‰å¤šå€‹å±¬æ€§ã€‚"
-
-msgid "Variables store information, like passwords and secret keys, that you can use in job scripts. All projects on the instance can use these variables."
-msgstr "變數儲存訊æ¯ï¼Œå¦‚密碼和金鑰,您å¯ä»¥åœ¨ä½œæ¥­è…³æœ¬ä¸­ä½¿ç”¨ã€‚執行個體上的所有專案都å¯ä»¥ä½¿ç”¨é€™äº›è®Šæ•¸ã€‚"
-
msgid "Various container registry settings."
msgstr "容器映åƒåº«ç›¸é—œè¨­å®šã€‚"
@@ -52630,9 +53635,6 @@ msgstr "您當å‰ä½¿ç”¨çš„是 %{currentVersion} 版本ï¼æˆ‘們強烈建議立å
msgid "VersionCheck|You are currently on version %{currentVersion}! We strongly recommend upgrading your GitLab installation to one of the following versions immediately: %{latestStableVersions}."
msgstr "您當å‰ä½¿ç”¨çš„是 %{currentVersion} 版本ï¼æˆ‘們強烈建議您立å³å°‡å®‰è£çš„ GitLab å‡ç´šåˆ°ä¸‹åˆ—版本之一:%{latestStableVersions}。"
-msgid "VersionCheck|Your GitLab Version"
-msgstr "您的 GitLab 版本"
-
msgid "View File Metadata"
msgstr "查看文件元數據"
@@ -52651,15 +53653,9 @@ msgstr "查看全部"
msgid "View all environments."
msgstr "查看所有環境。"
-msgid "View all groups"
-msgstr "檢視全部群組"
-
msgid "View all issues"
msgstr "查看所有議題"
-msgid "View all projects"
-msgstr "檢視全部專案"
-
msgid "View blame"
msgstr "查看責任歸屬(blame)"
@@ -52757,6 +53753,9 @@ msgstr "查看待處ç†çš„åˆä½µè«‹æ±‚"
msgid "View page @ "
msgstr "查看é é¢ @ "
+msgid "View phone number matches"
+msgstr ""
+
msgid "View project in admin area"
msgstr "在管ç†å€æŸ¥çœ‹å°ˆæ¡ˆ"
@@ -52788,6 +53787,9 @@ msgstr "查看文件"
msgid "View the latest successful deployment to this environment"
msgstr "檢視此環境中最新一次的æˆåŠŸéƒ¨ç½²"
+msgid "View the publishing guide"
+msgstr ""
+
msgid "View trigger token usage examples"
msgstr "查看觸發令牌使用範例"
@@ -52863,6 +53865,9 @@ msgstr "Visual Studio Code (HTTPS)"
msgid "Visual Studio Code (SSH)"
msgstr "Visual Studio Code (SSH)"
+msgid "VsdContributorCount|the ClickHouse data store is not available for this group"
+msgstr "ClickHouse 資料儲存å°æ­¤ç¾¤çµ„ä¸å¯ç”¨"
+
msgid "Vulnerabilities"
msgstr "æ¼æ´ž"
@@ -52932,6 +53937,9 @@ msgstr "詳細資訊"
msgid "VulnerabilityExport|Detected At"
msgstr "檢測時間"
+msgid "VulnerabilityExport|Dismissal Reason"
+msgstr ""
+
msgid "VulnerabilityExport|Full Path"
msgstr "完整路徑"
@@ -53712,6 +54720,9 @@ msgstr "SSLé©—è­‰"
msgid "Webhooks|Secret token"
msgstr "Secret 令牌"
+msgid "Webhooks|Secret token will be cleared on save unless token is updated."
+msgstr ""
+
msgid "Webhooks|Sensitive portion of URL"
msgstr "URL 的機密部分"
@@ -54207,6 +55218,9 @@ msgstr "加入到里程碑"
msgid "WorkItem|All activity"
msgstr "所有活動"
+msgid "WorkItem|Ancestor"
+msgstr "先祖(Ancestor)"
+
msgid "WorkItem|Are you sure you want to cancel editing?"
msgstr "您確定è¦å–消編輯嗎?"
@@ -54229,6 +55243,9 @@ msgstr "阻擋"
msgid "WorkItem|Cancel"
msgstr "å–消"
+msgid "WorkItem|Child items"
+msgstr "å­é …"
+
msgid "WorkItem|Child objectives and key results"
msgstr "次目標和關éµçµæžœ"
@@ -54274,6 +55291,9 @@ msgstr "截止日期"
msgid "WorkItem|Epic"
msgstr "å²è©© (Epic)"
+msgid "WorkItem|Existing %{workItemName}"
+msgstr ""
+
msgid "WorkItem|Existing task"
msgstr "ç¾æœ‰ä»»å‹™"
@@ -54310,15 +55330,27 @@ msgstr "標記為完æˆ"
msgid "WorkItem|Milestone"
msgstr "里程碑"
+msgid "WorkItem|New %{workItemName}"
+msgstr ""
+
msgid "WorkItem|New %{workItemType}"
msgstr "æ–° %{workItemType}"
msgid "WorkItem|New task"
msgstr "新增任務"
+msgid "WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts."
+msgstr ""
+
+msgid "WorkItem|No epics or issues are currently assigned."
+msgstr ""
+
msgid "WorkItem|No iteration"
msgstr "沒有迭代"
+msgid "WorkItem|No matches found"
+msgstr ""
+
msgid "WorkItem|No matching results"
msgstr "沒有符åˆçš„çµæžœ"
@@ -54349,9 +55381,6 @@ msgstr "目標"
msgid "WorkItem|Only %{MAX_WORK_ITEMS} items can be added at a time."
msgstr "一次僅能新增 %{MAX_WORK_ITEMS} 個項目。"
-msgid "WorkItem|Only project members with at least the Reporter role, the author, and assignees can view or be notified about this %{workItemType}."
-msgstr "åªæœ‰è‡³å°‘具有報告者角色的專案æˆå“¡ã€ä½œè€…å’Œå—指派者å¯ä»¥æŸ¥çœ‹æˆ–收到有關此 %{workItemType} 的通知。"
-
msgid "WorkItem|Open"
msgstr "é–‹å•Ÿ"
@@ -54373,12 +55402,15 @@ msgstr "需求"
msgid "WorkItem|Save and overwrite"
msgstr "儲存並覆蓋"
-msgid "WorkItem|Search existing items"
-msgstr "æœå°‹ç¾æœ‰é …ç›®"
+msgid "WorkItem|Search existing items, paste URL, or enter reference ID"
+msgstr ""
msgid "WorkItem|Select type"
msgstr "é¸æ“‡é¡žåž‹"
+msgid "WorkItem|Show all ancestors"
+msgstr "顯示所有先祖(ancestors)"
+
msgid "WorkItem|Show labels"
msgstr "顯示標記"
@@ -54394,6 +55426,9 @@ msgstr "刪除 %{workItemType} 時發生錯誤,請é‡è©¦ã€‚"
msgid "WorkItem|Something went wrong when deleting the task. Please try again."
msgstr "刪除任務時發生錯誤,請é‡è©¦ã€‚"
+msgid "WorkItem|Something went wrong when fetching child items. Please refresh this page."
+msgstr ""
+
msgid "WorkItem|Something went wrong when fetching items. Please refresh this page."
msgstr "æ“·å–項目時發生錯誤。請é‡æ–°æ•´ç†æ­¤é é¢ã€‚"
@@ -54403,9 +55438,6 @@ msgstr "導入迭代時發生錯誤, è«‹å†è©¦ä¸€æ¬¡ã€‚"
msgid "WorkItem|Something went wrong when fetching labels. Please try again."
msgstr "在æå–標籤時發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚"
-msgid "WorkItem|Something went wrong when fetching tasks. Please refresh this page."
-msgstr "å–得任務時發生錯誤,請刷新該é é¢ã€‚"
-
msgid "WorkItem|Something went wrong when fetching work item types. Please try again"
msgstr "å–得工作項類型時出ç¾éŒ¯èª¤ï¼Œè«‹å†è©¦ä¸€æ¬¡ã€‚"
@@ -54535,8 +55567,8 @@ msgstr "é …ç›®"
msgid "WorkItem|relates to"
msgstr "相關於"
-msgid "WorkItem|the following item(s)"
-msgstr "以下項目"
+msgid "WorkItem|the following items"
+msgstr ""
msgid "Workspaces"
msgstr "工作å€"
@@ -54553,6 +55585,9 @@ msgstr "無法載入工作å€"
msgid "Workspaces|Could not retrieve cluster agents for this project"
msgstr "無法檢索此專案的å¢é›†ä»£ç†"
+msgid "Workspaces|Create a new workspace"
+msgstr "建立新工作å€"
+
msgid "Workspaces|Create workspace"
msgstr "建立工作å€"
@@ -54631,8 +55666,8 @@ msgstr "è¦ç‚ºæ­¤å°ˆæ¡ˆå»ºç«‹å·¥ä½œå€ï¼Œç®¡ç†å“¡å¿…須為專案所屬的群組
msgid "Workspaces|To create a workspace, add a devfile to this project. A devfile is a configuration file for your workspace."
msgstr "è¦å»ºç«‹å·¥ä½œå€ï¼Œè«‹å°‡é–‹ç™¼æ–‡ä»¶åŠ å…¥åˆ°è©²å°ˆæ¡ˆï¼Œdevfile 是工作å€çš„組態文件。"
-msgid "Workspaces|Unable to load current Workspaces. Please try again or contact an administrator."
-msgstr "無法載入目å‰çš„工作å€ï¼Œè«‹å†è©¦ä¸€æ¬¡æˆ–è¯çµ¡ç®¡ç†å“¡ã€‚"
+msgid "Workspaces|Unable to load current workspaces. Please try again or contact an administrator."
+msgstr ""
msgid "Workspaces|Unknown state"
msgstr "未知狀態"
@@ -54685,6 +55720,12 @@ msgstr "撰寫發行說明(Release Notes) 或將文件拖動到此處..."
msgid "Wrong extern UID provided. Make sure Auth0 is configured correctly."
msgstr "æ供了錯誤的外部UID。請正確設定Auth0。"
+msgid "X (formerly Twitter)"
+msgstr ""
+
+msgid "X (formerly Twitter):"
+msgstr ""
+
msgid "Xcode"
msgstr "Xcode"
@@ -54712,6 +55753,9 @@ msgstr "昨天"
msgid "You"
msgstr "您"
+msgid "You already have access."
+msgstr ""
+
msgid "You already have pending todo for this alert"
msgstr "您已有é‡å°æ­¤è­¦å ±çš„待處ç†å¾…辦事項"
@@ -55079,12 +56123,12 @@ msgstr "您還ä¸å±¬æ–¼ä»»ä½•ç¾¤çµ„。"
msgid "You do not belong to any projects yet."
msgstr "您還ä¸å±¬æ–¼ä»»ä½•å°ˆæ¡ˆã€‚"
-msgid "You do not have access to AI features."
-msgstr "您無權使用 AI 功能。"
-
msgid "You do not have access to any projects for creating incidents."
msgstr "您無權存å–任何用於建立事故的專案。"
+msgid "You do not have access to chat feature."
+msgstr ""
+
msgid "You do not have any subscriptions yet"
msgstr "您目å‰å°šæœªæœ‰ä»»ä½•è¨‚é–±"
@@ -55136,6 +56180,9 @@ msgstr "您沒有任何近期的æœå°‹"
msgid "You don't have permission to approve this deployment. Contact the project or group owner for help."
msgstr "您無權批准此部署。è¯çµ¡å°ˆæ¡ˆæˆ–群組所有者尋求幫助。"
+msgid "You don't have permission to manage email participants."
+msgstr ""
+
msgid "You don't have permission to view this epic"
msgstr "您無權查看該å²è©© (epic) "
@@ -55164,6 +56211,9 @@ msgstr[0] "您有 %{pendingMembersCount} 個待處ç†æˆå“¡éœ€è¦æ ¸å‡†ã€‚"
msgid "You have already reported this user"
msgstr "您已經舉報了該使用者"
+msgid "You have already requested access."
+msgstr ""
+
msgid "You have been granted %{access_level} access to the %{source_link} %{source_type}."
msgstr "您已被授予 %{access_level} å­˜å– %{source_link} %{source_type} 的權é™ã€‚"
@@ -55197,8 +56247,8 @@ msgstr "您沒有足夠的權é™ç‚ºæ­¤å°ˆæ¡ˆè¨­å®šå‡ç´šæ”¿ç­–"
msgid "You have insufficient permissions to create a Todo for this alert"
msgstr "您沒有足夠的權é™ç‚ºé€™å€‹è­¦å‘Šå»ºç«‹å¾…辦事項"
-msgid "You have insufficient permissions to create a target branch rule"
-msgstr "您沒有足夠的權é™å¯ä»¥å»ºç«‹ç›®æ¨™åˆ†æ”¯è¦å‰‡"
+msgid "You have insufficient permissions to create a branch target"
+msgstr ""
msgid "You have insufficient permissions to create an HTTP integration for this project"
msgstr "您沒有足夠的權é™ç‚ºæ­¤å°ˆæ¡ˆå»ºç«‹HTTPæ•´åˆ"
@@ -55209,8 +56259,8 @@ msgstr "您沒有足夠的權é™ä¾†å»ºç«‹æ­¤å°ˆæ¡ˆçš„ on-call 排程"
msgid "You have insufficient permissions to create organizations"
msgstr "您沒有足夠的權é™ä¾†å»ºç«‹çµ„ç¹”"
-msgid "You have insufficient permissions to delete a target branch rule"
-msgstr "您沒有足夠的權é™å¯ä»¥åˆªé™¤ç›®æ¨™åˆ†æ”¯è¦å‰‡"
+msgid "You have insufficient permissions to delete a branch target"
+msgstr ""
msgid "You have insufficient permissions to manage alerts for this project"
msgstr "您的權é™ä¸è¶³ä»¥ç®¡ç†è©²å°ˆæ¡ˆçš„警示"
@@ -55242,6 +56292,9 @@ msgstr "您沒有足夠的權é™ç‚ºæ­¤è­°é¡Œè¨­å®šå®¢æˆ¶é—œä¿‚è¯çµ¡äºº"
msgid "You have insufficient permissions to update an on-call schedule for this project"
msgstr "您沒有足夠的權é™ä¾†æ›´æ–°æ­¤å°ˆæ¡ˆçš„ on-call 排程"
+msgid "You have insufficient permissions to update the organization"
+msgstr "您沒有足夠的權é™ä¾†æ›´æ–°è©²çµ„ç¹”"
+
msgid "You have insufficient permissions to update this HTTP integration"
msgstr "您沒有足夠的權é™ä¾†æ›´æ–°æ­¤HTTPæ•´åˆ"
@@ -55281,6 +56334,9 @@ msgstr "您ç¾åœ¨å¯ä»¥é—œé–‰é€™å€‹é‡Œç¨‹ç¢‘。"
msgid "You must be authenticated to access this path."
msgstr "您必須經éŽé©—è­‰æ‰èƒ½å­˜å–此路徑。"
+msgid "You must be logged in to search"
+msgstr ""
+
msgid "You must be logged in to search across all of GitLab"
msgstr "您必須登入æ‰èƒ½åœ¨æ•´å€‹GitLab中進行æœå°‹"
@@ -55492,6 +56548,9 @@ msgstr "您為%{strong}%{namespace_name}%{strong_close}的%{strong}%{plan_name}%
msgid "Your Activity"
msgstr "您的活動"
+msgid "Your CI runner usage CSV export containing the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CI/CD configuration syntax is invalid. Select the Validate tab for more details."
msgstr "您的 CI/CD 設定語法無效,請é¸å–é©—è­‰é ç°½äº†è§£æ›´å¤šè©³ç´°è³‡è¨Šã€‚"
@@ -55504,6 +56563,9 @@ msgstr "您從專案%{project_link}匯出包å«%{count}çš„CSV文件已作為附ä
msgid "Your CSV export of %{exported_objects} from project %{project_name} (%{project_url}) has been added to this email as an attachment."
msgstr "您從專案 %{project_name} (%{project_url}) 匯出的 %{exported_objects} CSV 已經作為附件附加在此郵件中。"
+msgid "Your CSV export of the top %{exported_objects} has been added to this email as an attachment."
+msgstr ""
+
msgid "Your CSV export request has succeeded. The result will be emailed to %{email}."
msgstr "您的 CSV 匯出請求已æˆåŠŸï¼Œçµæžœå°‡é€šéŽé›»å­éƒµä»¶ç™¼é€è‡³ %{email}。"
@@ -55519,11 +56581,11 @@ msgstr "æ‚¨å° %{group_name} ç¾¤çµ„çš„ç›£ç®¡éˆ CSV 匯出已作為附件加入è
msgid "Your DevOps Reports give an overview of how you are using GitLab from a feature perspective. Use them to view how you compare with other organizations, and how your teams compare against each other."
msgstr "您的 DevOps 報告從功能角度概述了您如何使用 GitLab。使用它們來查看您與其他組織的比較情æ³ï¼Œä»¥åŠæ‚¨çš„團隊之間的比較情æ³ã€‚"
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. For more information about the upcoming usage limits, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "您å…費的最上層群組 %{group_name} å·²è¶…éŽ %{free_users_limit} ä½ä½¿ç”¨è€…ï¼Œä¸¦ä½¿ç”¨è¶…éŽ %{free_storage_limit} 的資料。在å…費的最上層群組中套用使用é™åˆ¶å¾Œï¼Œè©²ç¾¤çµ„中的專案將處於 %{read_only_link_start}唯讀狀態%{link_end}。為了確ä¿æ‚¨çš„群組ä¸æœƒè®Šç‚ºå”¯è®€ï¼Œæ‚¨æ‡‰è©²è¯ç¹«æ“有者角色的使用者å‡ç´šåˆ°ä»˜è²»ç­‰ç´šï¼Œæˆ–管ç†æ‚¨çš„使用情æ³ã€‚有關å³å°‡åˆ°ä¾†çš„使用é™åˆ¶æ›´å¤šä¿¡æ¯ï¼Œè«‹åƒé–±æˆ‘們的 %{faq_link_start}常見å•é¡Œè§£ç­”%{link_end}。"
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. To ensure that your group does not become read-only, you should contact a user with the Owner role for this group to upgrade to a paid tier, or manage your usage. %{faq_link_start}Learn more%{link_end} about the upcoming storage limits."
+msgstr ""
-msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. For more information, see our %{faq_link_start}FAQ%{link_end}."
-msgstr "您的å…費頂級群組 (%{group_name}) æ“æœ‰è¶…éŽ %{free_users_limit} å€‹ä½¿ç”¨è€…ï¼Œä¸¦ä½¿ç”¨è¶…éŽ %{free_storage_limit} 的資料。在å°å…費的醉上層群組套用使用é™åˆ¶å¾Œï¼Œè©²ç¾¤çµ„中的專案將處於%{read_only_link_start}唯讀狀態%{link_end}。您應在減少使用者數é‡æˆ–å‡ç´šåˆ°ä»˜è²»æ–¹æ¡ˆ%{strong_start}之å‰%{strong_end}管ç†æ‚¨çš„儲存空間使用é‡ã€‚å¦å‰‡ï¼Œæ‚¨çš„å…費頂級群組將立å³è®Šç‚ºå”¯è®€ï¼Œå› ç‚ºå¥—用了 5 個使用者的é™åˆ¶ã€‚è¦å–得更多資訊,請見我們的 %{faq_link_start}FAQ%{link_end}。"
+msgid "Your Free top-level group, %{group_name}, has more than %{free_users_limit} users and uses more than %{free_storage_limit} of data. After usage limits are applied to Free top-level groups, projects in this group will be in a %{read_only_link_start}read-only state%{link_end}. You should reduce the number of users or upgrade to a paid tier %{strong_start}before%{strong_end} you manage your storage usage. Otherwise, your Free top-level group will become read-only immediately because the 5-user limit applies. %{faq_link_start}Learn more%{link_end} about namespace storage limits."
+msgstr ""
msgid "Your GPG keys"
msgstr "您的 GPG 密鑰"
@@ -55724,6 +56786,9 @@ msgstr "您的會員資格將在%{days_to_expire}天後到期"
msgid "Your name"
msgstr "您的åå­—"
+msgid "Your namespace storage is full. This merge request cannot be merged. To continue, %{link_start}manage your storage usage%{link_end}."
+msgstr "您的命å空間儲存é¡åº¦å·²æ»¿ã€‚無法åˆä½µæ­¤åˆä½µè«‹æ±‚。若è¦ç¹¼çºŒï¼Œ%{link_start}管ç†æ‚¨çš„儲存空間使用é‡%{link_end}。"
+
msgid "Your new %{accessTokenType}"
msgstr "您的新 %{accessTokenType}"
@@ -55757,6 +56822,9 @@ msgstr "您的專案"
msgid "Your public email will be displayed on your public profile."
msgstr "您的公開電å­éƒµä»¶å°‡é¡¯ç¤ºåœ¨æ‚¨çš„公開個人資料中。"
+msgid "Your push to this repository has been rejected because it would exceed the namespace storage limit of %{size_limit}. Reduce your namespace storage or purchase additional storage.To manage storage, or purchase additional storage, see %{manage_storage_url}. To learn more about restricted actions, see %{restricted_actions_url}"
+msgstr "您的å°é€™å€‹ç‰ˆæœ¬åº«çš„推é€è¢«æ‹’çµ•äº†ï¼Œå› ç‚ºå®ƒå°‡è¶…éŽ %{size_limit} 的命å空間儲存é™åˆ¶ã€‚請減少您的命å空間儲存或購買é¡å¤–的儲存空間。è¦ç®¡ç†å„²å­˜ç©ºé–“,或購買é¡å¤–的儲存空間,請åƒé–± %{manage_storage_url}。è¦äº†è§£æ›´å¤šå—é™åˆ¶çš„æ“作,請åƒé–± %{restricted_actions_url}"
+
msgid "Your request for access could not be processed: %{error_message}"
msgstr "無法處ç†æ‚¨çš„請求:%{error_message}"
@@ -55893,6 +56961,9 @@ msgstr "[Redacted]"
msgid "[Supports GitLab-flavored markdown, including quick actions]"
msgstr "[æ”¯æ´ GitLab 風格的 markdown,包括快速æ“作]"
+msgid "`.campfirenow.com` subdomain when you're signed in."
+msgstr ""
+
msgid "`end_time` should not exceed one month after `start_time`"
msgstr "`end_time` ä¸æ‡‰è¶…éŽ `start_time` 後的一個月"
@@ -56121,12 +57192,12 @@ msgstr "ä¸èƒ½ç‚ºç©º"
msgid "cannot be changed"
msgstr "無法被更改"
+msgid "cannot be changed because of an existing association with a custom role"
+msgstr "因為與既有角色的關è¯è€Œç„¡æ³•è®Šæ›´"
+
msgid "cannot be changed if a personal project has container registry tags."
msgstr "如果個人專案具有容器映åƒåº«æ¨™ç±¤ï¼Œå‰‡ç„¡æ³•æ›´æ”¹ã€‚"
-msgid "cannot be changed since member is associated with a custom role"
-msgstr "æˆå“¡èˆ‡è‡ªå®šç¾©è§’色相關è¯å³ç„¡æ³•è¢«æ›´æ”¹"
-
msgid "cannot be changed to %{new_type} when linked to a parent %{parent_type}."
msgstr "連接到父項 %{parent_type}時ä¸èƒ½è®Šæ›´ç‚º %{new_type}。"
@@ -56193,9 +57264,6 @@ msgstr "å·²é™ä½Ž%{degradedNum}"
msgid "ciReport|%{improvedNum} improved"
msgstr "已改進%{improvedNum}"
-msgid "ciReport|%{linkStartTag}Learn more about codequality reports %{linkEndTag}"
-msgstr "%{linkStartTag}了解有關程å¼ç¢¼è³ªé‡å ±å‘Šçš„更多訊æ¯%{linkEndTag}"
-
msgid "ciReport|%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} in %{path}"
msgstr "%{prefix} %{strong_start}%{score}%{strong_end} %{delta} %{deltaPercent} æ–¼ %{path}"
@@ -56238,8 +57306,8 @@ msgstr "通éŽç”±å¤–å‘內檢查 Web 應用程å¼çš„已部署版本來分æžå·²ç
msgid "ciReport|Automatically apply the patch in a new branch"
msgstr "在新分支中自動套用更新"
-msgid "ciReport|Base pipeline codequality artifact not found"
-msgstr "找ä¸åˆ°åŸºæº–æµæ°´ç·šç¨‹å¼ç¢¼è³ªé‡ç”¢ç‰©"
+msgid "ciReport|Automatically opens a merge request with a solution generated by AI"
+msgstr "使用人工智慧產生的解決方案自動開啟åˆä½µè«‹æ±‚"
msgid "ciReport|Browser Performance"
msgstr "ç€è¦½å™¨æ€§èƒ½"
@@ -56275,17 +57343,6 @@ msgstr "程å¼ç¢¼å“質並未變更。"
msgid "ciReport|Code Quality is loading"
msgstr "程å¼ç¢¼å“質正在載入"
-msgid "ciReport|Code quality degraded due to 1 new issue"
-msgid_plural "ciReport|Code quality degraded due to %d new issues"
-msgstr[0] "由於 %d 個新議題導致程å¼ç¢¼è³ªé‡ä¸‹é™"
-
-msgid "ciReport|Code quality improved due to 1 resolved issue"
-msgid_plural "ciReport|Code quality improved due to %d resolved issues"
-msgstr[0] "由於 %d 個已解決的議題æ昇了程å¼ç¢¼è³ªé‡"
-
-msgid "ciReport|Code quality scanning detected %{issueCount} changes in merged results"
-msgstr "程å¼ç¢¼è³ªé‡(Code Quality)掃æ在åˆä½µçµæžœä¸­æª¢æ¸¬åˆ° %{issueCount} 個更改"
-
msgid "ciReport|Container Scanning"
msgstr "容器掃æ"
@@ -56404,15 +57461,18 @@ msgstr "已手動增加"
msgid "ciReport|New vulnerabilities are vulnerabilities that the security scan detects in the merge request that are different to existing vulnerabilities in the default branch."
msgstr "æ–°æ¼æ´žæ˜¯å®‰å…¨æŽƒæ在åˆä½µè«‹æ±‚中檢測到與é è¨­åˆ†æ”¯ç¾æœ‰æ¼æ´žä¸åŒçš„æ¼æ´žã€‚"
-msgid "ciReport|No changes to code quality"
-msgstr "程å¼ç¢¼è³ªé‡(Code Quality)無變化"
-
msgid "ciReport|No code quality issues found"
msgstr "未發ç¾ç¨‹å¼ç¢¼è³ªé‡(Code Quality)å•é¡Œ"
+msgid "ciReport|Parsing schema failed. Check the output of the scanner."
+msgstr "解æžçµæ§‹å¤±æ•—,請檢查掃æ器的輸出。"
+
msgid "ciReport|RPS"
msgstr "RPS"
+msgid "ciReport|Resolve with AI"
+msgstr "使用人工智慧解決"
+
msgid "ciReport|Resolve with merge request"
msgstr "é€éŽåˆä½µè«‹æ±‚解決"
@@ -56470,9 +57530,6 @@ msgstr "忽略此æ¼æ´žæ™‚發生錯誤。請å†è©¦ä¸€æ¬¡ã€‚"
msgid "ciReport|There was an error dismissing the vulnerability: %{error}"
msgstr "消æ¼æ´žé™¤å¼±é»žæ™‚發生錯誤: %{error}"
-msgid "ciReport|There was an error fetching the codequality report."
-msgstr "å–得程å¼ç¢¼è³ªé‡å ±å‘Šæ™‚發生錯誤。"
-
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "å–消忽略æ“作時發生錯誤。請å†è©¦ä¸€æ¬¡ã€‚"
@@ -56923,6 +57980,9 @@ msgstr "未連çµè‡³ SAML 帳號或具有ä¸æ´»èºçš„ SCIM 身份。è¦å–得如
msgid "is not one of"
msgstr "ä¸æ˜¯å…¶ä¸­ä¹‹ä¸€"
+msgid "is not part of the given organization"
+msgstr ""
+
msgid "is not valid. The iteration group has to match the iteration cadence group."
msgstr "無效。迭代群組必須與迭代週期群組符åˆã€‚"
@@ -57083,6 +58143,9 @@ msgstr "%{mergeCommitSha}%{squashedCommits} 的變更已åˆä½µè‡³ %{targetBranch
msgid "mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}."
msgstr "變更未åˆä½µåˆ° %{targetBranch}。"
+msgid "mrWidgetDraftCheck|Mark as ready"
+msgstr "標記為就緒"
+
msgid "mrWidgetNothingToMerge|Merge request contains no changes"
msgstr "æ­¤åˆä½µè«‹æ±‚ä¸åŒ…å«ä»»ä½•è®Šæ›´ã€‚"
@@ -57231,7 +58294,7 @@ msgid "mrWidget|Approve additionally with SAML"
msgstr "使用 SAML é¡å¤–核准"
msgid "mrWidget|Approve with SAML"
-msgstr "使用 SAML 核准"
+msgstr "用 SAML 核准"
msgid "mrWidget|Approved by"
msgstr "核准人:"
@@ -57418,6 +58481,18 @@ msgstr "必須是 Debian 軟體包"
msgid "must be a boolean value"
msgstr "必須是布林值"
+msgid "must be a hash"
+msgstr ""
+
+msgid "must be a hash containing 'cpu' and 'memory' attribute of type string"
+msgstr ""
+
+msgid "must be a hash containing 'limits' attribute of type hash"
+msgstr ""
+
+msgid "must be a hash containing 'requests' attribute of type hash"
+msgstr ""
+
msgid "must be a root group."
msgstr "必須為 root 群組。"
@@ -57463,6 +58538,9 @@ msgstr "必須至少為 1 天"
msgid "must be before %{expiry_date}"
msgstr "必須在 %{expiry_date}之å‰"
+msgid "must be enabled."
+msgstr "必須啟用。"
+
msgid "must be false when email confirmation setting is off"
msgstr "當電å­éƒµä»¶ç¢ºèªè¨­ç½®é—œé–‰æ™‚,必須為 false"
@@ -57481,6 +58559,9 @@ msgstr "必須在分å‰ï¼ˆfork)網路內"
msgid "must be less than the limit of %{tag_limit} tags"
msgstr "å¿…é ˆå°æ–¼ %{tag_limit} 個標籤的數é‡é™åˆ¶"
+msgid "must be one of: %{values}"
+msgstr "必須是以下之一: %{values}"
+
msgid "must be owned by the user's enterprise group"
msgstr "必須屬於使用者ä¼æ¥­ç¾¤çµ„"
@@ -57514,6 +58595,9 @@ msgstr "必須有一個版本庫"
msgid "must have a valid format and be greater than or equal to zero."
msgstr "必須具有有效的格å¼ä¸¦ä¸”大於或等於零。"
+msgid "must have the 'enabled' flag set to true"
+msgstr "必須將「已啟用ã€æ——標設定為 true"
+
msgid "must match %{association}.project_id"
msgstr "å¿…é ˆç¬¦åˆ %{association}.project_id"
@@ -57746,6 +58830,9 @@ msgstr "移除開始日期"
msgid "remove weight"
msgstr "移除權é‡"
+msgid "removed %{emails}"
+msgstr ""
+
msgid "removed a %{link_type} link"
msgstr "移除了一個 %{link_type} éˆçµ"
@@ -57772,9 +58859,6 @@ msgstr[0] "版本庫"
msgid "repository:"
msgstr "版本庫:"
-msgid "role's base access level does not match the access level of the membership"
-msgstr "基於角色的存å–等級ä¸åŒ¹é…æˆå“¡çš„å­˜å–等級"
-
msgid "rule"
msgid_plural "rules"
msgstr[0] "è¦å‰‡"
@@ -57945,6 +59029,9 @@ msgstr "測試案例"
msgid "the correct format."
msgstr "正確的格å¼ã€‚"
+msgid "the custom role's base access level does not match the current access level"
+msgstr "以自訂角色為基礎的存å–層級與目å‰å­˜å–層級ä¸ç›¸ç¬¦"
+
msgid "the following epics"
msgstr "下列å²è©© (epics)"
@@ -57954,6 +59041,9 @@ msgstr "如下事件或議題"
msgid "the following issues"
msgstr "下列議題"
+msgid "the member access level can't be higher than the current user's one"
+msgstr "會員存å–等級ä¸èƒ½é«˜æ–¼ç›®å‰ä½¿ç”¨è€…的級別"
+
msgid "the wiki"
msgstr "wiki"
diff --git a/package.json b/package.json
index 839933a6690..24a320c2b60 100644
--- a/package.json
+++ b/package.json
@@ -49,18 +49,18 @@
},
"dependencies": {
"@apollo/client": "^3.5.10",
- "@babel/core": "^7.18.5",
- "@babel/preset-env": "^7.18.2",
- "@cubejs-client/core": "^0.34.32",
- "@cubejs-client/vue": "^0.34.32",
+ "@babel/core": "^7.23.7",
+ "@babel/preset-env": "^7.23.7",
+ "@cubejs-client/core": "^0.34.37",
+ "@cubejs-client/vue": "^0.34.37",
"@floating-ui/dom": "^1.2.9",
"@gitlab/application-sdk-browser": "^0.2.11",
"@gitlab/at.js": "1.5.7",
"@gitlab/cluster-client": "^2.1.0",
"@gitlab/favicon-overlay": "2.0.0",
"@gitlab/fonts": "^1.3.0",
- "@gitlab/svgs": "3.72.0",
- "@gitlab/ui": "^72.0.0",
+ "@gitlab/svgs": "3.75.0",
+ "@gitlab/ui": "^72.5.1",
"@gitlab/visual-review-tools": "1.7.3",
"@gitlab/web-ide": "^0.0.1-dev-20231211152737",
"@mattiasbuelens/web-streams-adapter": "^0.1.0",
@@ -73,42 +73,42 @@
"@snowplow/browser-plugin-performance-timing": "^3.9.0",
"@snowplow/browser-plugin-timezone": "^3.9.0",
"@snowplow/browser-tracker": "^3.9.0",
- "@sourcegraph/code-host-integration": "0.0.91",
- "@tiptap/core": "^2.1.13",
- "@tiptap/extension-blockquote": "^2.1.13",
- "@tiptap/extension-bold": "^2.1.13",
- "@tiptap/extension-bubble-menu": "^2.1.13",
- "@tiptap/extension-bullet-list": "^2.1.13",
- "@tiptap/extension-code": "^2.1.13",
- "@tiptap/extension-code-block": "^2.1.13",
- "@tiptap/extension-code-block-lowlight": "^2.1.13",
- "@tiptap/extension-document": "^2.1.13",
- "@tiptap/extension-dropcursor": "^2.1.13",
- "@tiptap/extension-gapcursor": "^2.1.13",
- "@tiptap/extension-hard-break": "^2.1.13",
- "@tiptap/extension-heading": "^2.1.13",
- "@tiptap/extension-highlight": "^2.1.13",
- "@tiptap/extension-history": "^2.1.13",
- "@tiptap/extension-horizontal-rule": "^2.1.13",
- "@tiptap/extension-image": "^2.1.13",
- "@tiptap/extension-italic": "^2.1.13",
- "@tiptap/extension-link": "^2.1.13",
- "@tiptap/extension-list-item": "^2.1.13",
- "@tiptap/extension-ordered-list": "^2.1.13",
- "@tiptap/extension-paragraph": "^2.1.13",
- "@tiptap/extension-strike": "^2.1.13",
- "@tiptap/extension-subscript": "^2.1.13",
- "@tiptap/extension-superscript": "^2.1.13",
- "@tiptap/extension-table": "^2.1.13",
- "@tiptap/extension-table-cell": "^2.1.13",
- "@tiptap/extension-table-header": "^2.1.13",
- "@tiptap/extension-table-row": "^2.1.13",
- "@tiptap/extension-task-item": "^2.1.13",
- "@tiptap/extension-task-list": "^2.1.13",
- "@tiptap/extension-text": "^2.1.13",
- "@tiptap/pm": "^2.1.13",
- "@tiptap/suggestion": "^2.1.13",
- "@tiptap/vue-2": "^2.1.13",
+ "@sourcegraph/code-host-integration": "0.0.95",
+ "@tiptap/core": "^2.1.14",
+ "@tiptap/extension-blockquote": "^2.1.14",
+ "@tiptap/extension-bold": "^2.1.14",
+ "@tiptap/extension-bubble-menu": "^2.1.14",
+ "@tiptap/extension-bullet-list": "^2.1.14",
+ "@tiptap/extension-code": "^2.1.14",
+ "@tiptap/extension-code-block": "^2.1.14",
+ "@tiptap/extension-code-block-lowlight": "^2.1.14",
+ "@tiptap/extension-document": "^2.1.14",
+ "@tiptap/extension-dropcursor": "^2.1.14",
+ "@tiptap/extension-gapcursor": "^2.1.14",
+ "@tiptap/extension-hard-break": "^2.1.14",
+ "@tiptap/extension-heading": "^2.1.14",
+ "@tiptap/extension-highlight": "^2.1.14",
+ "@tiptap/extension-history": "^2.1.14",
+ "@tiptap/extension-horizontal-rule": "^2.1.14",
+ "@tiptap/extension-image": "^2.1.14",
+ "@tiptap/extension-italic": "^2.1.14",
+ "@tiptap/extension-link": "^2.1.14",
+ "@tiptap/extension-list-item": "^2.1.14",
+ "@tiptap/extension-ordered-list": "^2.1.14",
+ "@tiptap/extension-paragraph": "^2.1.14",
+ "@tiptap/extension-strike": "^2.1.14",
+ "@tiptap/extension-subscript": "^2.1.14",
+ "@tiptap/extension-superscript": "^2.1.14",
+ "@tiptap/extension-table": "^2.1.14",
+ "@tiptap/extension-table-cell": "^2.1.14",
+ "@tiptap/extension-table-header": "^2.1.14",
+ "@tiptap/extension-table-row": "^2.1.14",
+ "@tiptap/extension-task-item": "^2.1.14",
+ "@tiptap/extension-task-list": "^2.1.14",
+ "@tiptap/extension-text": "^2.1.14",
+ "@tiptap/pm": "^2.1.14",
+ "@tiptap/suggestion": "^2.1.14",
+ "@tiptap/vue-2": "^2.1.14",
"@vue/apollo-components": "^4.0.0-beta.4",
"@vue/apollo-option": "^4.0.0-beta.4",
"apollo-upload-client": "15.0.0",
@@ -124,7 +124,7 @@
"clipboard": "^2.0.8",
"compression-webpack-plugin": "^5.0.2",
"copy-webpack-plugin": "^6.4.1",
- "core-js": "^3.34.0",
+ "core-js": "^3.35.0",
"cron-validator": "^1.1.1",
"cronstrue": "^1.122.0",
"cropperjs": "^1.6.1",
@@ -136,7 +136,7 @@
"deckar01-task_list": "^2.3.1",
"dexie": "^3.2.3",
"diff": "^3.4.0",
- "dompurify": "^3.0.6",
+ "dompurify": "^3.0.8",
"dropzone": "^4.2.0",
"editorconfig": "^0.15.3",
"emoji-regex": "^10.0.0",
@@ -191,11 +191,12 @@
"remark-rehype": "^10.1.0",
"scrollparent": "^2.0.1",
"semver": "^7.3.4",
- "sentrybrowser": "npm:@sentry/browser@7.81.1",
+ "sentrybrowser": "npm:@sentry/browser@7.88.0",
"sentrybrowser5": "npm:@sentry/browser@5.30.0",
"sortablejs": "^1.10.2",
"string-hash": "1.1.3",
"style-loader": "^2.0.0",
+ "swagger-client": "3.18.5",
"swagger-ui-dist": "5.9.1",
"thread-loader": "^3.0.4",
"three": "^0.143.0",
@@ -231,15 +232,15 @@
"yaml": "^2.0.0-10"
},
"devDependencies": {
- "@gitlab/eslint-plugin": "19.2.0",
+ "@gitlab/eslint-plugin": "19.4.0",
"@gitlab/stylelint-config": "5.0.1",
"@graphql-eslint/eslint-plugin": "3.20.1",
"@originjs/vite-plugin-commonjs": "^1.0.3",
- "@rollup/plugin-graphql": "^2.0.3",
+ "@rollup/plugin-graphql": "^2.0.4",
"@testing-library/dom": "^7.16.2",
"@types/jest": "^28.1.3",
"@types/lodash": "^4.14.197",
- "@vitejs/plugin-vue2": "^1.1.2",
+ "@vitejs/plugin-vue2": "^2.3.1",
"@vue/compat": "^3.2.47",
"@vue/compiler-sfc": "^3.2.47",
"@vue/test-utils": "1.3.6",
@@ -283,7 +284,7 @@
"stylelint": "^15.10.2",
"swagger-cli": "^4.0.4",
"timezone-mock": "^1.0.8",
- "vite": "^5.0.0",
+ "vite": "^5.0.11",
"vite-plugin-ruby": "^5.0.0",
"vue-loader-vue3": "npm:vue-loader@17",
"vue-test-utils-compat": "0.0.14",
diff --git a/qa/Dockerfile b/qa/Dockerfile
index 1a6a670bf96..54ae484e17a 100644
--- a/qa/Dockerfile
+++ b/qa/Dockerfile
@@ -1,9 +1,10 @@
ARG DOCKER_VERSION=24.0.5
-ARG CHROME_VERSION=113
-ARG RUBY_VERSION=3.0
+ARG CHROME_VERSION=119
+ARG RUBY_VERSION=3.1
+ARG BUNDLER_VERSION=2.5
ARG QA_BUILD_TARGET=ee
-FROM registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-383-kubectl-1.23 AS foss
+FROM registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-${BUNDLER_VERSION}-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-383-kubectl-1.23 AS foss
LABEL maintainer="GitLab Quality Department <quality@gitlab.com>"
ENV DEBIAN_FRONTEND="noninteractive"
diff --git a/qa/Gemfile b/qa/Gemfile
index 65ee52e44aa..4ca65d78aac 100644
--- a/qa/Gemfile
+++ b/qa/Gemfile
@@ -3,7 +3,7 @@
source 'https://rubygems.org'
gem 'gitlab-qa', '~> 13', '>= 13.1.0', require: 'gitlab/qa'
-gem 'gitlab_quality-test_tooling', '~> 1.9.0', require: false
+gem 'gitlab_quality-test_tooling', '~> 1.11.0', require: false
gem 'gitlab-utils', path: '../gems/gitlab-utils'
gem 'activesupport', '~> 7.0.8' # This should stay in sync with the root's Gemfile
gem 'allure-rspec', '~> 2.23.0'
@@ -16,9 +16,9 @@ gem 'airborne', '~> 0.3.7', require: false # airborne is messing with rspec sand
gem 'rest-client', '~> 2.1.0'
gem 'rspec-retry', '~> 0.6.2', require: 'rspec/retry'
gem 'rspec_junit_formatter', '~> 0.6.0'
-gem 'faker', '~> 3.2', '>= 3.2.2'
+gem 'faker', '~> 3.2', '>= 3.2.3'
gem 'knapsack', '~> 4.0'
-gem 'parallel_tests', '~> 4.3'
+gem 'parallel_tests', '~> 4.4'
gem 'rotp', '~> 6.3.0'
gem 'parallel', '~> 1.24'
gem 'rainbow', '~> 3.1.1'
@@ -37,7 +37,7 @@ gem 'chemlab', '~> 0.11', '>= 0.11.1'
gem 'chemlab-library-www-gitlab-com', '~> 0.1', '>= 0.1.1'
# dependencies for jenkins client
-gem 'nokogiri', '~> 1.15', '>= 1.15.5'
+gem 'nokogiri', '~> 1.16'
gem 'deprecation_toolkit', '~> 2.0.4', require: false
diff --git a/qa/Gemfile.lock b/qa/Gemfile.lock
index eb847eb04ec..831332727a7 100644
--- a/qa/Gemfile.lock
+++ b/qa/Gemfile.lock
@@ -5,7 +5,6 @@ PATH
actionview (>= 6.1.7.2)
activesupport (>= 6.1.7.2)
addressable (~> 2.8)
- nokogiri (~> 1.15.2)
rake (~> 13.0)
GEM
@@ -81,7 +80,7 @@ GEM
excon (0.92.4)
factory_bot (6.3.0)
activesupport (>= 5.0.0)
- faker (3.2.2)
+ faker (3.2.3)
i18n (>= 1.8.11, < 2)
faraday (2.5.2)
faraday-net_http (>= 2.0, < 3.1)
@@ -129,7 +128,7 @@ GEM
rainbow (>= 3, < 4)
table_print (= 1.5.7)
zeitwerk (>= 2, < 3)
- gitlab_quality-test_tooling (1.9.0)
+ gitlab_quality-test_tooling (1.11.0)
activesupport (>= 6.1, < 7.2)
amatch (~> 0.4.1)
gitlab (~> 4.19)
@@ -214,7 +213,7 @@ GEM
multi_json (1.15.0)
multi_xml (0.6.0)
netrc (0.11.0)
- nokogiri (1.15.5)
+ nokogiri (1.16.0)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
octokit (8.0.0)
@@ -222,7 +221,7 @@ GEM
sawyer (~> 0.9)
os (1.1.4)
parallel (1.24.0)
- parallel_tests (4.3.0)
+ parallel_tests (4.4.0)
parallel
parser (3.2.2.1)
ast (~> 2.4.1)
@@ -273,7 +272,7 @@ GEM
rspec-expectations (3.12.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
- rspec-mocks (3.12.0)
+ rspec-mocks (3.12.6)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-parameterized (1.0.0)
@@ -355,19 +354,19 @@ DEPENDENCIES
chemlab-library-www-gitlab-com (~> 0.1, >= 0.1.1)
deprecation_toolkit (~> 2.0.4)
factory_bot (~> 6.3.0)
- faker (~> 3.2, >= 3.2.2)
+ faker (~> 3.2, >= 3.2.3)
faraday-retry (~> 2.2)
fog-core (= 2.1.0)
fog-google (~> 1.19)
gitlab-qa (~> 13, >= 13.1.0)
gitlab-utils!
- gitlab_quality-test_tooling (~> 1.9.0)
+ gitlab_quality-test_tooling (~> 1.11.0)
influxdb-client (~> 3.0)
knapsack (~> 4.0)
- nokogiri (~> 1.15, >= 1.15.5)
+ nokogiri (~> 1.16)
octokit (~> 8.0.0)
parallel (~> 1.24)
- parallel_tests (~> 4.3)
+ parallel_tests (~> 4.4)
pry-byebug (~> 3.10.1)
rainbow (~> 3.1.1)
rake (~> 13, >= 13.1.0)
@@ -385,4 +384,4 @@ DEPENDENCIES
zeitwerk (~> 2.6, >= 2.6.12)
BUNDLED WITH
- 2.5.1
+ 2.5.4
diff --git a/qa/Rakefile b/qa/Rakefile
index a8336e087c7..9fc1ff2c0cf 100644
--- a/qa/Rakefile
+++ b/qa/Rakefile
@@ -83,7 +83,7 @@ end
desc "Deletes user's projects"
task :delete_user_projects, [:delete_before, :dry_run] do |_, args|
- args.with_defaults(delete_before: (Date.today - 1).to_s, dry_run: false)
+ args.with_defaults(delete_before: (Date.today - 3).to_s, dry_run: false)
QA::Tools::DeleteUserProjects.new(
delete_before: args[:delete_before],
dry_run: !!(args[:dry_run] =~ /true|1|y/i)).run
diff --git a/qa/gdk/Dockerfile.gdk b/qa/gdk/Dockerfile.gdk
index 61f682e6399..404cd67065d 100644
--- a/qa/gdk/Dockerfile.gdk
+++ b/qa/gdk/Dockerfile.gdk
@@ -5,7 +5,7 @@ ENV GITLAB_LICENSE_MODE=test \
# Clone GDK at specific sha and bootstrap packages
#
-ARG GDK_SHA=768deeebc94e37ba103dfec8102e794ba0f22c4e
+ARG GDK_SHA=600866eab57a9645e2c16f6f1756ecc6e4983c86
RUN set -eux; \
git clone --depth 1 https://gitlab.com/gitlab-org/gitlab-development-kit.git && cd gitlab-development-kit; \
git fetch --depth 1 origin ${GDK_SHA} && git -c advice.detachedHead=false checkout ${GDK_SHA}; \
@@ -98,6 +98,7 @@ RUN set -eux; \
gdk config set gitaly.skip_setup true \
&& gdk config set workhorse.skip_setup true \
&& gdk config set gitlab_shell.skip_setup true \
+ && cp .ruby-version ./gitlab/ \
&& cp .tool-versions ./gitlab/ \
&& make redis/redis.conf all \
&& gdk kill
diff --git a/qa/qa/factories/pipelines.rb b/qa/qa/factories/pipelines.rb
index aa3a48fd034..0fac90c14a8 100644
--- a/qa/qa/factories/pipelines.rb
+++ b/qa/qa/factories/pipelines.rb
@@ -4,5 +4,6 @@ module QA
FactoryBot.define do
# https://docs.gitlab.com/ee/api/pipelines.html
factory :pipeline, class: 'QA::Resource::Pipeline'
+ factory :pipeline_schedule, class: 'QA::Resource::PipelineSchedule'
end
end
diff --git a/qa/qa/fixtures/files/one_b b/qa/qa/fixtures/files/one_b
new file mode 100644
index 00000000000..ddd224c7520
--- /dev/null
+++ b/qa/qa/fixtures/files/one_b
Binary files differ
diff --git a/qa/qa/flow/purchase.rb b/qa/qa/flow/purchase.rb
index a412539d3bd..5bd20e104c4 100644
--- a/qa/qa/flow/purchase.rb
+++ b/qa/qa/flow/purchase.rb
@@ -7,7 +7,7 @@ module QA
extend self
- def upgrade_subscription(plan: PREMIUM)
+ def upgrade_subscription(plan: PREMIUM, skip_contact: false)
Page::Group::Menu.perform(&:go_to_billing)
Gitlab::Page::Group::Settings::Billing.perform do |billing|
billing.send("upgrade_to_#{plan[:name].downcase}")
@@ -15,15 +15,12 @@ module QA
Gitlab::Page::Subscriptions::New.perform do |new_subscription|
new_subscription.continue_to_billing
-
- fill_in_customer_info
- fill_in_payment_info
-
+ fill_in_default_info(skip_contact)
new_subscription.purchase
end
end
- def purchase_compute_minutes(quantity: 1)
+ def purchase_compute_minutes(quantity: 1, skip_contact: false)
Page::Group::Menu.perform(&:go_to_usage_quotas)
Gitlab::Page::Group::Settings::UsageQuotas.perform do |usage_quota|
usage_quota.pipelines_tab
@@ -34,14 +31,13 @@ module QA
compute_minutes.quantity = quantity
compute_minutes.continue_to_billing
- fill_in_customer_info
- fill_in_payment_info
+ fill_in_default_info(skip_contact)
compute_minutes.purchase
end
end
- def purchase_storage(quantity: 1)
+ def purchase_storage(quantity: 1, skip_contact: false)
Page::Group::Menu.perform(&:go_to_usage_quotas)
Gitlab::Page::Group::Settings::UsageQuotas.perform do |usage_quota|
usage_quota.storage_tab
@@ -56,8 +52,7 @@ module QA
storage.quantity = quantity
storage.continue_to_billing
- fill_in_customer_info
- fill_in_payment_info
+ fill_in_default_info(skip_contact)
storage.purchase
end
@@ -71,7 +66,6 @@ module QA
subscription.city = user_billing_info[:city]
subscription.state = user_billing_info[:state]
subscription.zip_code = user_billing_info[:zip]
- subscription.continue_to_payment
end
end
@@ -86,6 +80,14 @@ module QA
end
end
+ def fill_in_default_info(skip_contact)
+ Gitlab::Page::Subscriptions::New.perform do |subscription|
+ fill_in_customer_info unless skip_contact
+ subscription.continue_to_payment
+ fill_in_payment_info
+ end
+ end
+
def credit_card_info
{
name: 'QA Test',
diff --git a/qa/qa/page/alert/auto_devops_alert.rb b/qa/qa/page/alert/auto_devops_alert.rb
deleted file mode 100644
index 26801c4996c..00000000000
--- a/qa/qa/page/alert/auto_devops_alert.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- module Page
- module Alert
- class AutoDevopsAlert < Page::Base
- view 'app/views/shared/_auto_devops_implicitly_enabled_banner.html.haml' do
- element :auto_devops_banner_content
- end
- end
- end
- end
-end
diff --git a/qa/qa/page/alert/storage_limit.rb b/qa/qa/page/alert/storage_limit.rb
new file mode 100644
index 00000000000..31f4bd249fb
--- /dev/null
+++ b/qa/qa/page/alert/storage_limit.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Alert
+ class StorageLimit < Chemlab::Page
+ element :storage_limit_message
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/component/deploy_token.rb b/qa/qa/page/component/deploy_token.rb
index 71501391db1..c52b187226a 100644
--- a/qa/qa/page/component/deploy_token.rb
+++ b/qa/qa/page/component/deploy_token.rb
@@ -19,12 +19,6 @@ module QA
element 'deploy-token-write-registry-checkbox'
element 'create-deploy-token-button'
end
-
- base.view 'app/views/shared/deploy_tokens/_new_deploy_token.html.haml' do
- element 'created-deploy-token-container'
- element 'deploy-token-user-field'
- element 'deploy-token-field'
- end
end
def fill_token_name(name)
@@ -46,26 +40,6 @@ module QA
def add_token
click_element('create-deploy-token-button')
end
-
- def token_username
- within_new_project_deploy_token do
- find_element('deploy-token-user-field').value
- end
- end
-
- def token_password
- within_new_project_deploy_token do
- find_element('deploy-token-field').value
- end
- end
-
- private
-
- def within_new_project_deploy_token(&block)
- has_element?('created-deploy-token-container', wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME)
-
- within_element('created-deploy-token-container', &block)
- end
end
end
end
diff --git a/qa/qa/page/component/visibility_setting.rb b/qa/qa/page/component/visibility_setting.rb
index f07b9c1c455..3ea3ad52f10 100644
--- a/qa/qa/page/component/visibility_setting.rb
+++ b/qa/qa/page/component/visibility_setting.rb
@@ -6,14 +6,6 @@ module QA
module VisibilitySetting
extend QA::Page::PageConcern
- def self.included(base)
- super
-
- base.view 'app/views/shared/_visibility_radios.html.haml' do
- element :visibility_radio, 'qa_selector: "#{visibility_level_label(level).downcase}_radio"' # rubocop:disable QA/ElementWithPattern, Lint/InterpolationCheck
- end
- end
-
def set_visibility(visibility)
find('label', text: visibility.capitalize).click
end
diff --git a/qa/qa/page/main/login.rb b/qa/qa/page/main/login.rb
index 028a6d37af4..c7ad909e6de 100644
--- a/qa/qa/page/main/login.rb
+++ b/qa/qa/page/main/login.rb
@@ -211,8 +211,7 @@ module QA
def redirect_to_login_page(address)
Menu.perform(&:sign_out_if_signed_in)
- desired_host = URI(Runtime::Scenario.send("#{address}_address")).host
- Runtime::Browser.visit(address, Page::Main::Login) if desired_host != current_host
+ Runtime::Browser.visit(address, Page::Main::Login)
end
private
diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb
index 6110d33c015..a08fab8efa9 100644
--- a/qa/qa/page/merge_request/show.rb
+++ b/qa/qa/page/merge_request/show.rb
@@ -316,10 +316,10 @@ module QA
raise "Merge did not appear to be successful" unless merged?
end
- def merge_when_pipeline_succeeds!
+ def set_to_auto_merge!
wait_until_ready_to_merge
- click_element('merge-button', text: 'Merge when pipeline succeeds')
+ click_element('merge-button', text: 'Set to auto-merge')
end
def merged?
diff --git a/qa/qa/page/profile/emails.rb b/qa/qa/page/profile/emails.rb
index 1e6b7518e55..f9340445276 100644
--- a/qa/qa/page/profile/emails.rb
+++ b/qa/qa/page/profile/emails.rb
@@ -7,27 +7,27 @@ module QA
include QA::Page::Component::ConfirmModal
view 'app/views/profiles/emails/index.html.haml' do
- element :email_address_field
- element :add_email_address_button
- element :email_row_content
- element :delete_email_link
- element :toggle_email_address_field
+ element 'email-address-field'
+ element 'add-email-address-button'
+ element 'email-row-content'
+ element 'delete-email-link'
+ element 'toggle-email-address-field'
end
def expand_email_input
- click_element(:toggle_email_address_field) if has_no_element?(:email_address_field)
- has_element?(:email_address_field)
+ click_element('toggle-email-address-field') if has_no_element?('email-address-field')
+ has_element?('email-address-field')
end
def add_email_address(email_address)
expand_email_input
- find_element(:email_address_field).set email_address
- click_element(:add_email_address_button)
+ find_element('email-address-field').set email_address
+ click_element('add-email-address-button')
end
def delete_email_address(email_address)
- within_element(:email_row_content, text: email_address) do
- click_element(:delete_email_link)
+ within_element('email-row-content', text: email_address) do
+ click_element('delete-email-link')
end
click_confirmation_ok_button
end
diff --git a/qa/qa/page/profile/password.rb b/qa/qa/page/profile/password.rb
index 5f07cdb6f25..d70dcbabd49 100644
--- a/qa/qa/page/profile/password.rb
+++ b/qa/qa/page/profile/password.rb
@@ -5,31 +5,31 @@ module QA
module Profile
class Password < Page::Base
view 'app/views/user_settings/passwords/edit.html.haml' do
- element :current_password_field
- element :new_password_field
- element :confirm_password_field
- element :save_password_button
+ element 'current-password-field'
+ element 'new-password-field'
+ element 'confirm-password-field'
+ element 'save-password-button'
end
view 'app/views/user_settings/passwords/new.html.haml' do
- element :current_password_field
- element :new_password_field
- element :confirm_password_field
- element :set_new_password_button
+ element 'current-password-field'
+ element 'new-password-field'
+ element 'confirm-password-field'
+ element 'set-new-password-button'
end
def update_password(new_password, current_password)
- find_element(:current_password_field).set current_password
- find_element(:new_password_field).set new_password
- find_element(:confirm_password_field).set new_password
- click_element(:save_password_button)
+ find_element('current-password-field').set current_password
+ find_element('new-password-field').set new_password
+ find_element('confirm-password-field').set new_password
+ click_element('save-password-button')
end
def set_new_password(new_password, current_password)
- fill_element :current_password_field, current_password
- fill_element :new_password_field, new_password
- fill_element :confirm_password_field, new_password
- click_element :set_new_password_button
+ fill_element('current-password-field', current_password)
+ fill_element('new-password-field', new_password)
+ fill_element('confirm-password-field', new_password)
+ click_element('set-new-password-button')
end
end
end
diff --git a/qa/qa/page/project/import/repo_by_url.rb b/qa/qa/page/project/import/repo_by_url.rb
index 1e12ec1541d..f767351012c 100644
--- a/qa/qa/page/project/import/repo_by_url.rb
+++ b/qa/qa/page/project/import/repo_by_url.rb
@@ -7,7 +7,6 @@ module QA
class RepoByURL < Page::Base
view 'app/assets/javascripts/projects/new/components/new_project_url_select.vue' do
element 'select-namespace-dropdown'
- element 'select-namespace-dropdown-search-field'
end
view 'app/views/projects/_new_project_fields.html.haml' do
@@ -40,7 +39,7 @@ module QA
def choose_namespace(namespace)
retry_on_exception do
click_element 'select-namespace-dropdown'
- fill_element 'select-namespace-dropdown-search-field', namespace
+ fill_element '.gl-listbox-search-input', namespace
click_button namespace
end
end
diff --git a/qa/qa/page/project/new.rb b/qa/qa/page/project/new.rb
index d61f9cf0218..3019557f78b 100644
--- a/qa/qa/page/project/new.rb
+++ b/qa/qa/page/project/new.rb
@@ -29,7 +29,6 @@ module QA
view 'app/assets/javascripts/projects/new/components/new_project_url_select.vue' do
element 'select-namespace-dropdown'
- element 'select-namespace-dropdown-search-field'
end
view 'app/assets/javascripts/vue_shared/new_namespace/components/welcome.vue' do
@@ -53,8 +52,8 @@ module QA
return if find_element('select-namespace-dropdown').text.end_with?(namespace)
click_element 'select-namespace-dropdown'
- fill_element 'select-namespace-dropdown-search-field', namespace
- select_item(namespace, css: '.gl-dropdown-item')
+ fill_element '.gl-listbox-search-input', namespace
+ select_item(namespace, css: '.gl-new-dropdown-item')
end
def click_import_project
diff --git a/qa/qa/page/project/settings/mirroring_repositories.rb b/qa/qa/page/project/settings/mirroring_repositories.rb
index ddd8bf8b337..4ebdbc40fa9 100644
--- a/qa/qa/page/project/settings/mirroring_repositories.rb
+++ b/qa/qa/page/project/settings/mirroring_repositories.rb
@@ -90,8 +90,8 @@ module QA
click_element 'mirror-repository-button'
end
- def update(url)
- row_index = find_repository_row_index(url)
+ def update_uri(uri)
+ row_index = find_repository_row_index(uri)
within_element_by_index('mirrored-repository-row-container', row_index) do
# When a repository is first mirrored, the update process might
# already be started, so the button is already "clicked"
diff --git a/qa/qa/page/search/results.rb b/qa/qa/page/search/results.rb
index 5d856875e0b..aa0a032be01 100644
--- a/qa/qa/page/search/results.rb
+++ b/qa/qa/page/search/results.rb
@@ -5,9 +5,9 @@ module QA
module Search
class Results < QA::Page::Base
view 'app/views/search/results/_blob_data.html.haml' do
- element :result_item_content
- element :file_title_content
- element :file_text_content
+ element 'result-item-content'
+ element 'file-title-content'
+ element 'file-text-content'
end
view 'app/views/shared/projects/_project.html.haml' do
@@ -23,19 +23,19 @@ module QA
end
def has_project_in_search_result?(project_name)
- has_element?(:result_item_content, text: project_name)
+ has_element?('result-item-content', text: project_name)
end
def has_file_in_project?(file_name, project_name)
- within_element(:result_item_content, text: project_name) do
- has_element?(:file_title_content, text: file_name)
+ within_element('result-item-content', text: project_name) do
+ has_element?('file-title-content', text: file_name)
end
end
def has_file_in_project_with_content?(file_text, file_path)
- within_element(:result_item_content,
+ within_element('result-item-content',
text: file_path) do
- has_element?(:file_text_content, text: file_text)
+ has_element?('file-text-content', text: file_text)
end
end
diff --git a/qa/qa/page/user/show.rb b/qa/qa/page/user/show.rb
index aba79256340..2a73700f991 100644
--- a/qa/qa/page/user/show.rb
+++ b/qa/qa/page/user/show.rb
@@ -9,7 +9,7 @@ module QA
end
view 'app/views/shared/users/_user.html.haml' do
- element :user_link
+ element 'user-link'
end
view 'app/views/users/_overview.html.haml' do
@@ -25,7 +25,7 @@ module QA
end
def click_user_link(username)
- click_element(:user_link, username: username)
+ click_element('user-link', username: username)
end
def has_activity?(activity)
diff --git a/qa/qa/resource/group.rb b/qa/qa/resource/group.rb
index c88cf4aca10..689570cde36 100644
--- a/qa/qa/resource/group.rb
+++ b/qa/qa/resource/group.rb
@@ -66,6 +66,24 @@ module QA
end
end
+ # Fabricate a Group using the UI from the Groups Dashboard page
+ # @param [String] group_name
+ # @return [Page::Group::New]
+ def fabricate_group!(group_name: nil)
+ Page::Main::Menu.perform(&:go_to_groups)
+ Page::Dashboard::Groups.perform do |groups|
+ groups.click_new_group
+
+ Page::Group::New.perform do |group_new|
+ group_new.click_create_group
+
+ group_new.set_path(group_name)
+
+ group_new.create
+ end
+ end
+ end
+
def fabricate_via_api!
resource_web_url(api_get)
rescue ResourceNotFoundError
diff --git a/qa/qa/resource/pipeline_schedules.rb b/qa/qa/resource/pipeline_schedule.rb
index 3d51bcdbce5..d22315d16d9 100644
--- a/qa/qa/resource/pipeline_schedules.rb
+++ b/qa/qa/resource/pipeline_schedule.rb
@@ -2,7 +2,7 @@
module QA
module Resource
- class PipelineSchedules < Base
+ class PipelineSchedule < Base
attribute :id
attribute :ref
attribute :description
diff --git a/qa/qa/runtime/browser.rb b/qa/qa/runtime/browser.rb
index 1fad0b76645..a0949a0daf4 100644
--- a/qa/qa/runtime/browser.rb
+++ b/qa/qa/runtime/browser.rb
@@ -69,17 +69,18 @@ module QA
chrome_options = { args: %w[no-sandbox] }
# Run headless by default unless WEBDRIVER_HEADLESS is false
- if QA::Runtime::Env.webdriver_headless?
- chrome_options[:args] << 'headless'
-
- # Chrome documentation says this flag is needed for now
- # https://developers.google.com/web/updates/2017/04/headless-chrome#cli
- chrome_options[:args] << 'disable-gpu'
- end
+ chrome_options[:args] << 'headless=new' if QA::Runtime::Env.webdriver_headless?
# Disable /dev/shm use in CI. See https://gitlab.com/gitlab-org/gitlab/issues/4252
chrome_options[:args] << 'disable-dev-shm-usage' if QA::Runtime::Env.disable_dev_shm?
+ # Allows chrome to consider all actions as secure when no ssl is used
+ Runtime::Scenario.attributes[:gitlab_address].tap do |address|
+ next unless address.start_with?('http://')
+
+ chrome_options[:args] << "unsafely-treat-insecure-origin-as-secure=#{address}"
+ end
+
# Set chrome default download path
# TODO: Set for remote grid as well once Sauce Labs tests are deprecated and Options.chrome is added
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112258
diff --git a/qa/qa/runtime/env.rb b/qa/qa/runtime/env.rb
index 99b819017e3..231909b1a5b 100644
--- a/qa/qa/runtime/env.rb
+++ b/qa/qa/runtime/env.rb
@@ -8,7 +8,7 @@ module QA
module Env
extend self
- attr_writer :personal_access_token, :admin_personal_access_token
+ attr_writer :personal_access_token, :admin_personal_access_token, :gitlab_url
attr_accessor :dry_run
ENV_VARIABLES = Gitlab::QA::Runtime::Env::ENV_VARIABLES
@@ -713,7 +713,7 @@ module QA
def enabled?(value, default: true)
return default if value.nil?
- (value =~ /^(false|no|0)$/i) != 0
+ (value.to_s =~ /^(false|no|0)$/i) != 0
end
end
end
diff --git a/qa/qa/service/docker_run/gitlab.rb b/qa/qa/service/docker_run/gitlab.rb
index c39f4c22865..11233cbbfee 100644
--- a/qa/qa/service/docker_run/gitlab.rb
+++ b/qa/qa/service/docker_run/gitlab.rb
@@ -4,10 +4,20 @@ module QA
module Service
module DockerRun
class Gitlab < Base
- def initialize(name:, omnibus_config: '', image: '')
+ attr_reader :external_url, :name
+
+ # @param [String] name
+ # @param [String] omnibus_config
+ # @param [String] image
+ # @param [String] ports Docker-formatted port exposition
+ # @see ports https://docs.docker.com/engine/reference/commandline/run/#publish
+ # @param [String] external_url
+ def initialize(name:, omnibus_config: '', image: '', ports: '80:80', external_url: Runtime::Env.gitlab_url)
@image = image
@name = name
@omnibus_configuration = omnibus_config
+ @ports = ports
+ @external_url = external_url
super()
end
@@ -24,7 +34,7 @@ module QA
docker run -d --rm
--network #{network}
--hostname #{host_name}
- --publish 80:80
+ --publish #{@ports}
#{RUBY_PLATFORM.include?('arm64') ? '--platform linux/amd64' : ''}
--env GITLAB_OMNIBUS_CONFIG="#{@omnibus_configuration}"
--name #{@name}
diff --git a/qa/qa/service/docker_run/smocker.rb b/qa/qa/service/docker_run/smocker.rb
index da01b4a5223..cd69d8771e1 100644
--- a/qa/qa/service/docker_run/smocker.rb
+++ b/qa/qa/service/docker_run/smocker.rb
@@ -41,9 +41,7 @@ module QA
attr_reader :public_port, :admin_port
def host_name
- @host_name ||= if QA::Runtime::Env.running_in_ci? || QA::Runtime::Env.qa_hostname
- return host_ip if gdk_network
-
+ @host_name ||= if qa_environment? && !gdk_network && @network_cache != 'bridge'
"#{@name}.#{@network_cache}"
else
host_ip
@@ -67,12 +65,16 @@ module QA
#{@image}
CMD
- unless QA::Runtime::Env.running_in_ci? || QA::Runtime::Env.qa_hostname
- command.gsub!("--network #{@network_cache} ", '')
- end
+ command.gsub!("--network #{@network_cache} ", '') unless qa_environment?
shell command
end
+
+ private
+
+ def qa_environment?
+ QA::Runtime::Env.running_in_ci? || QA::Runtime::Env.qa_hostname
+ end
end
end
end
diff --git a/qa/qa/service/gitlab/instances.rb b/qa/qa/service/gitlab/instances.rb
new file mode 100644
index 00000000000..f3ebedec694
--- /dev/null
+++ b/qa/qa/service/gitlab/instances.rb
@@ -0,0 +1,84 @@
+# frozen_string_literal: true
+
+module QA
+ module Service
+ module Gitlab
+ class Instances
+ attr_reader :list
+
+ def initialize
+ @list = []
+ end
+
+ # Default omnibus configuration for a GitLab instance
+ # @param cell_url [String] the external url for the GitLab instance
+ def omnibus_configuration(cell_url:)
+ <<~OMNIBUS
+ gitlab_rails['lfs_enabled'] = true;
+ gitlab_rails['initial_root_password']= '#{Runtime::Env.initial_root_password}'
+ external_url '#{cell_url}';
+ OMNIBUS
+ end
+
+ # Sets the gitlab_url values so that gitlab-qa flows work on one of the instances
+ # @param instance [DockerRun::GitLab object] the GitLab instance to be used
+ def set_gitlab_urls(instance)
+ Support::GitlabAddress.define_gitlab_address_attribute!(instance.external_url)
+ Runtime::Env.gitlab_url = instance.external_url
+ Runtime::Scenario.define(:gitlab_address, instance.external_url)
+ end
+
+ # Creates a DockerRun::Gitlab instance and adds to the list of instances
+ # @param name [string] the name for the instance
+ # @param url [string] the URL for the instance
+ # @param external_port [string] the external port
+ # @param internal_port [string] the internal port to use instead of default (optional)
+ # @param omnibus_config [string] omnibus_configuration to use instead of default (optional)
+ # @return [Service::DockerRun::Gitlab] the last created GitLab instance
+ def add_gitlab_instance(name:, url:, external_port:, internal_port: '80', omnibus_config: nil)
+ cell_url = "http://#{url}/"
+ external_url = "http://#{url}:#{external_port}/"
+ ports = "#{external_port}:#{internal_port}"
+ omnibus_config ||= omnibus_configuration(cell_url: cell_url)
+ @list << Service::DockerRun::Gitlab.new(
+ image: Runtime::Env.release,
+ name: name,
+ ports: ports,
+ omnibus_config: omnibus_config,
+ external_url: external_url).tap do |gitlab|
+ gitlab.login
+ gitlab.register!
+ end
+
+ @list.last
+ end
+
+ # Waits for an instance to be healthy
+ # @param instance [DockerRun::GitLab object] the GitLab instance to be checked
+ def wait_for_instance(instance)
+ Support::Waiter.wait_until(max_duration: 900, sleep_interval: 10, raise_on_failure: true) do
+ instance.health == "healthy"
+ end
+ end
+
+ def wait_for_all_instances
+ @list.each { |el| wait_for_instance(el) }
+ end
+
+ def remove_all_instances
+ @list.each(&:remove!)
+
+ @list.clear
+ end
+
+ # Remove an instance with a given name
+ # @param instance_name [String] the name of the instance that was specified during initialization
+ def remove_instance(instance_name)
+ index = @list.index { |x| x.name == instance_name }
+ instance = @list.slice!(index)
+ instance.remove!
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/specs/features/api/10_govern/group_access_token_spec.rb b/qa/qa/specs/features/api/10_govern/group_access_token_spec.rb
index 3e190608268..5cd78a91d14 100644
--- a/qa/qa/specs/features/api/10_govern/group_access_token_spec.rb
+++ b/qa/qa/specs/features/api/10_govern/group_access_token_spec.rb
@@ -6,13 +6,20 @@ module QA
include QA::Support::Helpers::Project
let(:group_access_token) { create(:group_access_token) }
- let(:api_client) { Runtime::API::Client.new(:gitlab, personal_access_token: group_access_token.token) }
+
+ let(:api_client_with_group_token) do
+ Runtime::API::Client.new(:gitlab, personal_access_token: group_access_token.token)
+ end
+
let(:project) do
create(:project, name: 'project-for-group-access-token', group: group_access_token.group)
end
before do
wait_until_project_is_ready(project)
+ # Associating a group access token to a project requires a job to be processed in sidekiq
+ # We need to be sure that this has happened or else we may get flaky test failures
+ wait_until_token_associated_to_project(project, api_client_with_group_token)
end
it(
@@ -21,7 +28,7 @@ module QA
) do
expect do
create(:file,
- api_client: api_client,
+ api_client: api_client_with_group_token,
project: project,
branch: "new_branch_#{SecureRandom.hex(8)}")
rescue StandardError => e
@@ -36,7 +43,7 @@ module QA
) do
expect do
create(:commit,
- api_client: api_client,
+ api_client: api_client_with_group_token,
project: project,
branch: "new_branch_#{SecureRandom.hex(8)}",
start_branch: project.default_branch,
diff --git a/qa/qa/specs/features/api/10_govern/project_access_token_spec.rb b/qa/qa/specs/features/api/10_govern/project_access_token_spec.rb
index 8f4a04ef389..e76160a8bb5 100644
--- a/qa/qa/specs/features/api/10_govern/project_access_token_spec.rb
+++ b/qa/qa/specs/features/api/10_govern/project_access_token_spec.rb
@@ -11,6 +11,9 @@ module QA
before do
wait_until_project_is_ready(project)
+ # Associating an access token to a project requires a job to be processed in sidekiq
+ # We need to be sure that this has happened or else we may get flaky test failures
+ wait_until_token_associated_to_project(project, user_api_client)
end
context 'for the same project' do
diff --git a/qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb b/qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb
index 83beb8faad5..98662c8d97d 100644
--- a/qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb
+++ b/qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb
@@ -29,7 +29,7 @@ module QA
pat.user = user
# importing very large project can take multiple days
# token must not expire while we still poll for import result
- pat.expires_at = (Time.now.to_date + 5)
+ pat.expires_at = (Time.now.to_date + 6)
end.token
)
end
diff --git a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb
index 6426872e76d..651e2a4fc9c 100644
--- a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb
+++ b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb
@@ -56,7 +56,7 @@ module QA
pat.user = user
# importing very large project can take multiple days
# token must not expire while we still poll for import result
- pat.expires_at = (Time.now.to_date + 5)
+ pat.expires_at = (Time.now.to_date + 6)
end.token
)
end
@@ -85,7 +85,7 @@ module QA
# Imported objects
#
- let(:imported_project) { imported_group.projects(auto_paginate: true, attempts: 3).find { |project| project.name == gitlab_source_project }.reload! }
+ let(:imported_project) { imported_group.projects(auto_paginate: true).find { |project| project.name == gitlab_source_project }.reload! }
let(:branches) { imported_project.repository_branches(auto_paginate: true, attempts: 3).map { |b| b[:name] } }
let(:commits) { imported_project.commits(auto_paginate: true, attempts: 3).map { |c| c[:id] } }
let(:labels) { imported_project.labels(auto_paginate: true, attempts: 3).map { |l| l.except(:id, :description_html) } }
diff --git a/qa/qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb b/qa/qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb
index 13bc91f2ad4..e56ff1cf83f 100644
--- a/qa/qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb
+++ b/qa/qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb
@@ -13,9 +13,11 @@ module QA
before do
project.add_member(user, Resource::Members::AccessLevel::MAINTAINER)
- Resource::PipelineSchedules.fabricate_via_api! do |schedule|
- schedule.api_client = user_api_client
- schedule.project = project
+ # Retry is needed due to delays with project authorization updates
+ # Long term solution to accessing the status of a project authorization update
+ # has been proposed in https://gitlab.com/gitlab-org/gitlab/-/issues/393369
+ Support::Retrier.retry_on_exception(max_attempts: 60, sleep_interval: 1) do
+ create(:pipeline_schedule, api_client: user_api_client, project: project)
end
Support::Waiter.wait_until { !pipeline_schedule[:id].nil? && pipeline_schedule[:active] == true }
diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb
index b7a8d1e7dfa..8fe5b674c42 100644
--- a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb
@@ -2,17 +2,11 @@
module QA
RSpec.describe 'Create', :runner, product_group: :code_review do
- describe 'Merge requests' do
- shared_examples 'merge when pipeline succeeds' do |repeat: 1|
+ describe 'Merge request' do
+ shared_examples 'set to auto-merge' do |repeat: 1|
let(:runner_name) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(number: 8)}" }
- let(:project) { create(:project, :with_readme, name: 'merge-when-pipeline-succeeds') }
- let!(:runner) do
- Resource::ProjectRunner.fabricate! do |runner|
- runner.project = project
- runner.name = runner_name
- runner.tags = [runner_name]
- end
- end
+ let(:project) { create(:project, :with_readme, name: 'set-to-auto-merge') }
+ let!(:runner) { create(:project_runner, project: project, name: runner_name, tags: [runner_name]) }
let!(:ci_file) do
create(:commit, project: project, commit_message: 'Add .gitlab-ci.yml', actions: [
@@ -48,7 +42,7 @@ module QA
QA::Runtime::Logger.info("Transient bug test - Trial #{i + 1}") if transient_test
# Create a merge request to trigger pipeline
- merge_request = create(:project,
+ merge_request = create(:merge_request,
project: project,
description: Faker::Lorem.sentence,
target_new_branch: false,
@@ -64,22 +58,26 @@ module QA
# possible components will be relevant, so it would be inefficient for this test to check for each of
# them. Instead, we fail on anything but the expected state.
#
- # The following method allows us to handle and ignore states (as we find them) that users could safely ignore.
+ # The following method allows us to handle and ignore states (as we find them) that users could safely
+ # ignore.
mr.wait_until_ready_to_merge(transient_test: transient_test)
- mr.retry_until(reload: true, message: 'Wait until ready to click MWPS') do
- # Click the MWPS button if we can
- break mr.merge_when_pipeline_succeeds! if mr.has_element?('merge-button', text: 'Merge when pipeline succeeds')
+ mr.retry_until(reload: true, message: 'Wait until ready to click Set to auto-merge') do
+ # Click the Set to auto-merge button if we can
+ break mr.set_to_auto_merge! if mr.has_element?('merge-button', text: 'Set to auto-merge')
# But fail if the button is missing because the pipeline is complete
- raise "The pipeline already finished before we could click MWPS" if mr.wait_until { project.pipelines.first }[:status] == 'success'
+ raise "The pipeline already finished before we could set to auto-merge" if mr.wait_until do
+ project.pipelines.first
+ end[:status] == 'success'
# Otherwise, if this is not a transient test reload the page and retry
next false unless transient_test
end
aggregate_failures do
- expect { mr.merged? }.to eventually_be_truthy.within(max_duration: 120), "Expected content 'The changes were merged' but it did not appear."
+ expect { mr.merged? }.to eventually_be_truthy.within(max_duration: 120),
+ "Expected content 'The changes were merged' but it did not appear."
expect(merge_request.reload!.merge_when_pipeline_succeeds).to be_truthy
expect(merge_request.state).to eq('merged')
expect(project.pipelines.last[:status]).to eq('success')
@@ -90,11 +88,12 @@ module QA
end
context 'when merging once', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347686' do
- it_behaves_like 'merge when pipeline succeeds'
+ it_behaves_like 'set to auto-merge'
end
- context 'when merging several times', :transient, testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347641' do
- it_behaves_like 'merge when pipeline succeeds', repeat: Runtime::Env.transient_trials
+ context 'when merging several times', :transient,
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347641' do
+ it_behaves_like 'set to auto-merge', repeat: Runtime::Env.transient_trials
end
end
end
diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb
index 208190622d9..d874817d541 100644
--- a/qa/qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb
@@ -9,7 +9,7 @@ module QA
Flow::Login.sign_in
end
- it 'can be reverted', :can_use_large_setup, testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347709' do
+ it 'can be reverted', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347709' do
revertible_merge_request.visit!
Page::MergeRequest::Show.perform do |merge_request|
diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb
index f794edb1b7a..9deb806f86a 100644
--- a/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb
@@ -35,7 +35,7 @@ module QA
mirror_settings.username = Runtime::User.username
mirror_settings.password = Runtime::User.password
mirror_settings.mirror_repository
- mirror_settings.update(target_project_uri) # rubocop:disable Rails/SaveBang
+ mirror_settings.update_uri(target_project_uri)
mirror_settings.verify_update(target_project_uri)
end
end
diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb
index 6704c05ead8..b574a947f94 100644
--- a/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb
@@ -35,7 +35,7 @@ module QA
mirror_settings.username = Runtime::User.username
mirror_settings.password = Runtime::User.password
mirror_settings.mirror_repository
- mirror_settings.update(target_project_uri) # rubocop:disable Rails/SaveBang
+ mirror_settings.update_uri(target_project_uri)
mirror_settings.verify_update(target_project_uri)
end
end
diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb
index b20b1f8cd92..572bd3df838 100644
--- a/qa/qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb
@@ -6,7 +6,7 @@ module QA
it 'pushes to a project using a canary specific Gitaly repository storage', :smoke, :requires_admin, testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/351116' do
Flow::Login.sign_in_as_admin
- project = create(:project, name: 'canary-specific-repository-storage', repository_storage: 'nfs-file-cny01') # TODO: move to ENV var
+ project = create(:project, name: 'canary-specific-repository-storage', repository_storage: 'gitaly-cny-01-stor-gstg.c.gitlab-staging-1.internal') # TODO: move to ENV var
Resource::Repository::Push.fabricate! do |push|
push.repository_http_uri = project.repository_http_location.uri
diff --git a/qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb
index d24485280c1..c1d4de06661 100644
--- a/qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb
+++ b/qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb
@@ -91,23 +91,43 @@ module QA
end
def user_commit_to_protected_branch(api_client)
- create(:commit,
- api_client: api_client,
- project: project,
- branch: 'protected-branch',
- commit_message: Faker::Lorem.sentence, actions: [
- { action: 'create', file_path: Faker::File.unique.file_name, content: Faker::Lorem.sentence }
- ])
+ # Retry is needed due to delays with project authorization updates
+ # Long term solution to accessing the status of a project authorization update
+ # has been proposed in https://gitlab.com/gitlab-org/gitlab/-/issues/393369
+ Support::Retrier.retry_until(
+ max_duration: 60,
+ sleep_interval: 1,
+ message: "Commit to protected branch failed",
+ retry_on_exception: true
+ ) do
+ create(:commit,
+ api_client: api_client,
+ project: project,
+ branch: 'protected-branch',
+ commit_message: Faker::Lorem.sentence, actions: [
+ { action: 'create', file_path: Faker::File.unique.file_name, content: Faker::Lorem.sentence }
+ ])
+ end
end
def create_merge_request(api_client)
- create(:merge_request,
- api_client: api_client,
- project: project,
- description: Faker::Lorem.sentence,
- target_new_branch: false,
- file_name: Faker::File.unique.file_name,
- file_content: Faker::Lorem.sentence)
+ # Retry is needed due to delays with project authorization updates
+ # Long term solution to accessing the status of a project authorization update
+ # has been proposed in https://gitlab.com/gitlab-org/gitlab/-/issues/393369
+ Support::Retrier.retry_until(
+ max_duration: 60,
+ sleep_interval: 1,
+ message: "MR fabrication failed after retry",
+ retry_on_exception: true
+ ) do
+ create(:merge_request,
+ api_client: api_client,
+ project: project,
+ description: Faker::Lorem.sentence,
+ target_new_branch: false,
+ file_name: Faker::File.unique.file_name,
+ file_content: Faker::Lorem.sentence)
+ end
end
def go_to_pipeline_job(user)
diff --git a/qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb b/qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb
index 75512ba1eea..f16fe30e46d 100644
--- a/qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb
@@ -43,7 +43,8 @@ module QA
runner.remove_via_api!
end
- it 'publishes a module', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/371583' do
+ it 'publishes a module', :reliable,
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/371583' do
Support::Retrier.retry_on_exception(max_attempts: 3, sleep_interval: 2) do
terraform_module_yaml = ERB.new(
read_fixture('package_managers/terraform', 'module_upload.yaml.erb')
@@ -63,7 +64,7 @@ module QA
end
Page::Project::Job::Show.perform do |job|
- expect(job).to be_successful(timeout: 800)
+ expect(job).to be_successful(timeout: 180)
end
Page::Project::Menu.perform(&:go_to_infrastructure_registry)
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb
index e58622d377c..dec00610596 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb
@@ -69,7 +69,7 @@ module QA
end
end
- it 'push and pull a npm package via CI', testcase: params[:testcase] do
+ it 'push and pull a npm package via CI', :reliable, testcase: params[:testcase] do
npm_upload_yaml = ERB.new(read_fixture('package_managers/npm',
'npm_upload_package_group.yaml.erb')).result(binding)
package_json = ERB.new(read_fixture('package_managers/npm', 'package.json.erb')).result(binding)
@@ -97,7 +97,7 @@ module QA
end
Page::Project::Job::Show.perform do |job|
- expect(job).to be_successful(timeout: 800)
+ expect(job).to be_successful(timeout: 180)
end
npm_install_yaml = ERB.new(read_fixture('package_managers/npm',
@@ -121,7 +121,7 @@ module QA
end
Page::Project::Job::Show.perform do |job|
- expect(job).to be_successful(timeout: 800)
+ expect(job).to be_successful(timeout: 180)
job.click_browse_button
end
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb
index c24e37e0d1e..b654389d953 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb
@@ -69,7 +69,7 @@ module QA
end
end
- it 'push and pull a npm package via CI', testcase: params[:testcase] do
+ it 'push and pull a npm package via CI', :reliable, testcase: params[:testcase] do
npm_upload_yaml = ERB.new(read_fixture('package_managers/npm', 'npm_upload_package_instance.yaml.erb')).result(binding)
package_json = ERB.new(read_fixture('package_managers/npm', 'package.json.erb')).result(binding)
@@ -96,7 +96,7 @@ module QA
end
Page::Project::Job::Show.perform do |job|
- expect(job).to be_successful(timeout: 800)
+ expect(job).to be_successful(timeout: 180)
end
npm_install_yaml = ERB.new(read_fixture('package_managers/npm', 'npm_install_package_instance.yaml.erb')).result(binding)
@@ -115,7 +115,7 @@ module QA
end
Page::Project::Job::Show.perform do |job|
- expect(job).to be_successful(timeout: 800)
+ expect(job).to be_successful(timeout: 180)
job.click_browse_button
end
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb
index cfa6b62cdbe..5581fd814d2 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb
@@ -63,7 +63,7 @@ module QA
end
end
- it 'push and pull a npm package via CI', testcase: params[:testcase] do
+ it 'push and pull a npm package via CI', :reliable, testcase: params[:testcase] do
npm_upload_install_yaml = ERB.new(read_fixture('package_managers/npm', 'npm_upload_install_package_project.yaml.erb')).result(binding)
package_json = ERB.new(read_fixture('package_managers/npm', 'package.json.erb')).result(binding)
@@ -90,7 +90,7 @@ module QA
end
Page::Project::Job::Show.perform do |job|
- expect(job).to be_successful(timeout: 800)
+ expect(job).to be_successful(timeout: 180)
job.click_browse_button
end
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/rubygems_registry_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/rubygems_registry_spec.rb
index 3502022a616..07fb421f4b1 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/rubygems_registry_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/rubygems_registry_spec.rb
@@ -29,7 +29,7 @@ module QA
Runtime::Feature.disable(:rubygem_packages, project: project)
end
- it 'publishes a Ruby gem', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347649' do
+ it 'publishes a Ruby gem', :reliable, testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347649' do
Flow::Login.sign_in
Support::Retrier.retry_on_exception(max_attempts: 3, sleep_interval: 2) do
@@ -69,7 +69,7 @@ module QA
end
Page::Project::Job::Show.perform do |job|
- expect(job).to be_successful(timeout: 800)
+ expect(job).to be_successful(timeout: 180)
end
Page::Project::Menu.perform(&:go_to_package_registry)
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb
new file mode 100644
index 00000000000..2ba368ff353
--- /dev/null
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb
@@ -0,0 +1,98 @@
+# frozen_string_literal: true
+
+# version of the login test that only runs against GDK
+# implements functionality in https://gitlab.com/gitlab-org/gitlab/-/issues/415207
+
+module QA
+ RSpec.describe 'Data Stores', :skip_live_env, :requires_admin, product_group: :tenant_scale do
+ describe 'Demo 2' do
+ let(:cell1_url) { ENV.fetch('CELL1_URL', 'http://gdk.test:3000/') }
+ let(:cell2_url) { ENV.fetch('CELL2_URL', 'http://gdk.test:3001/') }
+ let(:cell1_group_name) { "cell1-group-#{SecureRandom.hex(8)}" }
+ let(:cell2_group_name) { "cell2-group-#{SecureRandom.hex(8)}" }
+
+ before do
+ ENV['PERSONAL_ACCESS_TOKENS_DISABLED'] = 'true' # force off creating by api so walk through demo
+ end
+
+ it('walkthrough',
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/434421',
+ only: { condition: -> { !Runtime::Env.running_in_ci? } }
+ ) do
+ # Sign in Cell 1
+ Runtime::Scenario.define(:gitlab_address, cell1_url)
+ Flow::Login.sign_in
+ Page::Main::Menu.perform(&:go_to_groups)
+ # Create Group on Cell 1
+ Resource::Group.new.fabricate_group!(group_name: cell1_group_name)
+
+ # Cell 1 Group exists on Cell 1
+ Page::Group::Show.perform do |group_show|
+ # Ensure that the group was actually created
+ group_show.wait_until(sleep_interval: 1) do
+ expect(group_show).to have_text(cell1_group_name)
+ end
+ end
+
+ # Visit Cell 2
+ page.visit cell2_url
+ Runtime::Scenario.define(:gitlab_address, cell2_url)
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group does not show
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).not_to have_group(cell1_group_name)
+ end
+ end
+
+ # Create Group on Cell 2
+ Resource::Group.new.fabricate_group!(group_name: cell2_group_name)
+
+ # Cell 2 Group exists on Cell 2
+ Page::Group::Show.perform do |group_show|
+ # Ensure that the group was actually created
+ group_show.wait_until(sleep_interval: 1) do
+ expect(group_show).to have_text(cell2_group_name)
+ end
+ end
+
+ # Visit Cell 1
+ page.visit cell1_url
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group appears
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).to have_group(cell1_group_name)
+ end
+ end
+
+ # Cell 2 group does not appear
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).not_to have_group(cell2_group_name)
+ end
+ end
+
+ # Visit Cell 2
+ page.visit cell2_url
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group does not shows
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).not_to have_group(cell1_group_name)
+ end
+ end
+
+ # Cell 2 group does show
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).to have_group(cell2_group_name)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo3_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo3_spec.rb
new file mode 100644
index 00000000000..ee6fe03f935
--- /dev/null
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo3_spec.rb
@@ -0,0 +1,150 @@
+# frozen_string_literal: true
+
+# version of the login test that only runs against GDK
+# implements functionality in https://gitlab.com/gitlab-org/gitlab/-/issues/420118
+
+module QA
+ RSpec.describe 'Data Stores', :skip_live_env, :requires_admin, product_group: :tenant_scale do
+ describe 'Demo 3' do
+ let(:debug) { false }
+ let(:cell1_url) { ENV.fetch('CELL1_URL', 'http://gdk.test:3000/') }
+ let(:cell2_url) { ENV.fetch('CELL2_URL', 'http://gdk.test:3001/') }
+ let(:cell1_group_name) { "cell1-group-#{SecureRandom.hex(8)}" }
+ let(:cell2_group_name) { "cell2-group-#{SecureRandom.hex(8)}" }
+ let(:cell1_project_name) { "cell1-project-#{SecureRandom.hex(8)}" }
+ let(:cell2_project_name) { "cell2-project-#{SecureRandom.hex(8)}" }
+
+ def create_group(name)
+ Resource::Group.new.fabricate_group!(group_name: name)
+
+ Page::Group::Show.perform do |group_show|
+ # Ensure that the group was actually created
+ group_show.wait_until(sleep_interval: 1) do
+ expect(group_show).to have_text(name)
+ end
+ end
+ end
+
+ def create_project(group_name, project_name)
+ Page::Main::Menu.perform(&:go_to_create_project)
+ Page::Project::New.perform(&:click_blank_project_link)
+ Page::Project::New.perform do |project_page|
+ project_page.choose_namespace(group_name)
+ project_page.choose_name(project_name)
+ project_page.create_new_project
+ end
+ end
+
+ it('walkthrough',
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/434422',
+ only: { condition: -> { !Runtime::Env.running_in_ci? } }
+ ) do
+ Runtime::Scenario.define(:gitlab_address, cell1_url)
+ # Sign in Cell 1
+ Flow::Login.sign_in
+ Page::Main::Menu.perform(&:go_to_groups)
+ # Create Group on Cell 1
+ create_group(cell1_group_name)
+
+ # Create a Project in that group on Cell 1
+ create_project(cell1_group_name, cell1_project_name)
+
+ # Cell 1 Project shows
+ page.visit "#{cell1_url}#{cell1_group_name}/#{cell1_project_name}"
+ Page::Project::Show.perform do |project|
+ expect(project.has_name?(cell1_project_name)).to be true
+ end
+
+ # Visit Cell 2
+ page.visit cell2_url
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group does not show
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard.has_group?(cell1_group_name)).to be(false)
+ end
+ end
+
+ # Cell 1 project does not show
+ page.visit "#{cell2_url}#{cell1_group_name}/#{cell1_project_name}"
+ expect(page).to have_text('Page Not Found')
+
+ page.visit cell2_url
+ Page::Main::Menu.perform(&:go_to_groups)
+ # Create Group on Cell 2
+ create_group(cell2_group_name)
+
+ # Create a Project in that group on Cell 2
+ # TODO: this functionality is under development, uncomment when complete
+ # create_project(cell2_group_name,cell2_project_name)
+
+ # Cell 2 Project shows
+ # page.visit "#{cell2_url}#{cell2_group_name}/#{cell2_project_name}"
+ # Page::Project::Show.perform do |project|
+ # expect(project.has_name?(cell2_project_name)).to be true
+ # end
+
+ # Visit Cell 1
+ page.visit cell1_url
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group does shows
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).to have_group(cell1_group_name)
+ end
+ end
+
+ # Cell 1 Project shows
+ page.visit "#{cell1_url}#{cell1_group_name}/#{cell1_project_name}"
+ Page::Project::Show.perform do |project|
+ expect(project).to have_name(cell1_project_name)
+ end
+
+ # Cell 2 group does not shows
+ # TODO: this functionality is under development, uncomment when complete
+ # Page::Dashboard::Groups.perform do |group_dashboard|
+ # group_dashboard.wait_until(sleep_interval: 1) do
+ # expect(group_dashboard.has_group?(cell2_group_name)).to be(false)
+ # end
+ # end
+
+ # Cell 2 Project does not show
+ page.visit "#{cell1_url}#{cell2_group_name}/#{cell2_project_name}"
+ expect(page).to have_text('Page Not Found')
+
+ # Visit Cell 2
+ page.visit cell2_url
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group does not shows
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).not_to have_group(cell1_group_name)
+ end
+ end
+
+ # Cell 1 project does not show
+ page.visit "#{cell2_url}#{cell1_group_name}/#{cell1_project_name}"
+ expect(page).to have_text('Page Not Found')
+
+ # Cell 2 group does show
+ page.visit cell2_url
+ Page::Main::Menu.perform(&:go_to_groups)
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).to have_group(cell2_group_name)
+ end
+ end
+
+ # Cell 2 project does show
+ # TODO: this functionality is under development, uncomment when complete
+ # page.visit "#{cell2_url}#{cell2_group_name}/#{cell2_project_name}"
+ # Page::Project::Show.perform do |project|
+ # expect(project.has_name?(cell2_project_name)).to be true
+ # end
+ end
+ end
+ end
+end
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/cells/login_across_multiple_cells_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/cells/login_across_multiple_cells_spec.rb
new file mode 100644
index 00000000000..2724dc2761d
--- /dev/null
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/cells/login_across_multiple_cells_spec.rb
@@ -0,0 +1,50 @@
+# frozen_string_literal: true
+
+module QA
+ RSpec.describe 'Data Stores', :skip_live_env, :requires_admin, product_group: :tenant_scale do
+ describe 'Multiple Cells' do
+ let(:url) { 'gitlab-cells.bridge' }
+
+ let(:cells) { Service::Gitlab::Instances.new }
+ let!(:first_cell) do
+ cells.add_gitlab_instance(name: 'gitlab-first-cell',
+ external_port: '3000',
+ url: url)
+ end
+
+ let!(:second_cell) do
+ cells.add_gitlab_instance(name: 'gitlab-second-cell',
+ external_port: '3001',
+ url: url)
+ end
+
+ before do
+ cells.set_gitlab_urls(first_cell)
+
+ cells.wait_for_all_instances
+
+ # TODO: configure cells to be connected
+
+ page.visit first_cell.external_url
+ end
+
+ after do
+ cells.remove_all_instances
+ end
+
+ it(
+ 'user logged into one Cell is logged into all',
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/433542',
+ only: :local
+ ) do
+ Flow::Login.sign_in(as: create(:user))
+
+ page.visit second_cell.external_url
+
+ Page::Main::Menu.perform do |form|
+ expect(form).to be_signed_in
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/cells/multiple_cells_gdk_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/cells/multiple_cells_gdk_spec.rb
new file mode 100644
index 00000000000..c6240df2a7c
--- /dev/null
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/cells/multiple_cells_gdk_spec.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+# version of the login test that only runs against GDK
+
+module QA
+ RSpec.describe 'Data Stores', :skip_live_env, :requires_admin, product_group: :tenant_scale do
+ describe 'Multiple Cells' do
+ it(
+ 'user logged into one Cell is logged into all',
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/433548',
+ only: :local
+ ) do
+ Flow::Login.sign_in(as: create(:user))
+
+ page.visit ENV.fetch('CELL2_URL')
+
+ Page::Main::Menu.perform do |form|
+ expect(form).to be_signed_in
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/project/invite_group_to_project_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/project/invite_group_to_project_spec.rb
index 313b2d828eb..2bc2e7459cb 100644
--- a/qa/qa/specs/features/browser_ui/9_data_stores/project/invite_group_to_project_spec.rb
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/project/invite_group_to_project_spec.rb
@@ -2,7 +2,11 @@
module QA
RSpec.describe 'Data Stores' do
- describe 'Invite group', :reliable, product_group: :tenant_scale do
+ describe 'Invite group', :reliable, product_group: :tenant_scale, quarantine: {
+ type: :bug,
+ issue: "https://gitlab.com/gitlab-org/gitlab/-/issues/436950",
+ only: { pipeline: %i[canary production] }
+ } do
shared_examples 'invites group to project' do
it 'grants group and members correct access level' do
Page::Project::Menu.perform(&:go_to_members)
diff --git a/qa/qa/specs/features/sanity/feature_flags_spec.rb b/qa/qa/specs/features/sanity/feature_flags_spec.rb
deleted file mode 100644
index 36069558701..00000000000
--- a/qa/qa/specs/features/sanity/feature_flags_spec.rb
+++ /dev/null
@@ -1,89 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- RSpec.describe 'Framework sanity', :sanity_feature_flags do
- describe 'Feature flag handler checks' do
- context 'with an existing feature flag definition file' do
- let(:definition) do
- path = Pathname.new('../config/feature_flags')
- .expand_path(Runtime::Path.qa_root)
- .glob('**/*.yml')
- .first
- YAML.safe_load(File.read(path))
- end
-
- it 'reads the correct default enabled state' do
- # This test will fail if we ever remove all the feature flags, but that's very unlikely given how many there
- # are and how much we rely on them.
- expect(QA::Runtime::Feature.enabled?(definition['name'])).to be definition['default_enabled']
- end
- end
-
- describe 'feature flag definition files' do
- let(:file) do
- path = Pathname.new("#{root}/config/feature_flags/development").expand_path(Runtime::Path.qa_root)
- path.mkpath
- Tempfile.new(%w[ff-test .yml], path)
- end
-
- let(:flag) { Pathname.new(file.path).basename('.yml').to_s }
- let(:root) { '..' }
-
- before do
- definition = <<~YAML
- name: #{flag}
- type: development
- default_enabled: #{flag_enabled}
- YAML
- File.write(file, definition)
- end
-
- after do
- file.close!
- end
-
- shared_examples 'gets flag value' do
- context 'with a default disabled feature flag' do
- let(:flag_enabled) { 'false' }
-
- it 'reads the flag as disabled' do
- expect(QA::Runtime::Feature.enabled?(flag)).to be false
- end
-
- it 'reads as enabled after the flag is enabled' do
- QA::Runtime::Feature.enable(flag)
-
- expect { QA::Runtime::Feature.enabled?(flag) }.to eventually_be_truthy
- .within(max_duration: 60, sleep_interval: 5)
- end
- end
-
- context 'with a default enabled feature flag' do
- let(:flag_enabled) { 'true' }
-
- it 'reads the flag as enabled' do
- expect(QA::Runtime::Feature.enabled?(flag)).to be true
- end
-
- it 'reads as disabled after the flag is disabled' do
- QA::Runtime::Feature.disable(flag)
-
- expect { QA::Runtime::Feature.enabled?(flag) }.to eventually_be_falsey
- .within(max_duration: 60, sleep_interval: 5)
- end
- end
- end
-
- context 'with a CE feature flag' do
- include_examples 'gets flag value'
- end
-
- context 'with an EE feature flag' do
- let(:root) { '../ee' }
-
- include_examples 'gets flag value'
- end
- end
- end
- end
-end
diff --git a/qa/qa/specs/features/sanity/framework_spec.rb b/qa/qa/specs/features/sanity/framework_spec.rb
deleted file mode 100644
index 5c80afe338e..00000000000
--- a/qa/qa/specs/features/sanity/framework_spec.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- RSpec.describe 'Framework sanity', :orchestrated, :framework do
- describe 'Passing orchestrated example' do
- it 'succeeds' do
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
-
- expect(page).to have_text('GitLab')
- end
- end
-
- describe 'Failing orchestrated example' do
- it 'fails' do
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
-
- expect(page).to have_text("These Aren't the Texts You're Looking For", wait: 1)
- end
- end
- end
-end
diff --git a/qa/qa/specs/features/sanity/interception_spec.rb b/qa/qa/specs/features/sanity/interception_spec.rb
deleted file mode 100644
index 67be832055d..00000000000
--- a/qa/qa/specs/features/sanity/interception_spec.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- RSpec.describe 'Framework sanity', :orchestrated, :framework do
- describe 'Browser request interception' do
- before(:context) do
- skip 'Only can test for chrome' unless QA::Runtime::Env.can_intercept?
- end
-
- before do
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
- end
-
- let(:page) { Capybara.current_session }
- let(:logger) { class_double('QA::Runtime::Logger') }
-
- it 'intercepts failed graphql calls' do
- page.execute_script <<~JS
- fetch('/api/graphql', {
- method: 'POST',
- body: JSON.stringify({ query: 'query {}'}),
- headers: { 'Content-Type': 'application/json' }
- })
- JS
-
- Support::Waiter.wait_until do
- !get_cached_error.nil?
- end
- expect(**get_cached_error).to include({ 'method' => 'POST', 'status' => 200, 'url' => '/api/graphql' })
- end
-
- def get_cached_error
- cache = page.execute_script <<~JS
- return Interceptor.getCache()
- JS
-
- cache['errors']&.first
- end
- end
- end
-end
diff --git a/qa/qa/specs/features/sanity/version_spec.rb b/qa/qa/specs/features/sanity/version_spec.rb
deleted file mode 100644
index deefe830c36..00000000000
--- a/qa/qa/specs/features/sanity/version_spec.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-# frozen_string_literal: true
-
-require 'airborne'
-
-module QA
- # This test ensures that the version described by the `DEPLOY_VERSION`
- # environment variable is the version actually running.
- #
- # See https://gitlab.com/gitlab-com/gl-infra/delivery/-/issues/1179
- RSpec.describe 'Framework sanity', :smoke, only: { pipeline: [:pre, :release] } do
- describe 'Version check' do
- let(:api_client) { Runtime::API::Client.new(:gitlab) }
- let(:request) { Runtime::API::Request.new(api_client, '/version') }
-
- it 'is the specified version' do
- # The `DEPLOY_VERSION` variable will only be provided for deploys to the
- # `pre` and `release` environments, which only receive packaged releases.
- #
- # For these releases, `deploy_version` will be a package string (e.g.,
- # `13.1.3-ee.0`), and the reported version will be something like
- # `13.1.3-ee`, so we only compare the leading SemVer string.
- #
- # | Package | Version |
- # | ---------------- | -------------- |
- # | 13.3.5-ee.0 | 13.3.5-ee |
- # | 13.3.0-rc42.ee.0 | 13.3.0-rc42-ee |
- deploy = Runtime::Env.deploy_version&.gsub(/\A(\d+\.\d+\.\d+).*\z/, '\1')
-
- skip('No deploy version provided') if deploy.nil? || deploy.empty?
-
- get request.url
-
- expect_status(200)
- expect(json_body).to have_key(:version)
- expect(json_body[:version]).to start_with(deploy)
- end
- end
- end
-end
diff --git a/qa/qa/specs/helpers/context_selector.rb b/qa/qa/specs/helpers/context_selector.rb
index aab2a82d90e..fff69ae6ccc 100644
--- a/qa/qa/specs/helpers/context_selector.rb
+++ b/qa/qa/specs/helpers/context_selector.rb
@@ -34,6 +34,7 @@ module QA
options.each do |option|
opts[:domain] = production_domain(uri_tld) if option == :production
+ return run_locally? if option == :local
next unless option.is_a?(Hash)
@@ -57,6 +58,10 @@ module QA
private
+ def run_locally?
+ !Runtime::Env.running_in_ci?
+ end
+
def evaluate_pipeline_context(pipeline)
return true if Runtime::Env.ci_project_name.blank?
diff --git a/qa/qa/specs/helpers/fast_quarantine.rb b/qa/qa/specs/helpers/fast_quarantine.rb
new file mode 100644
index 00000000000..5b72c82fa35
--- /dev/null
+++ b/qa/qa/specs/helpers/fast_quarantine.rb
@@ -0,0 +1,70 @@
+# frozen_string_literal: true
+
+module QA
+ module Specs
+ module Helpers
+ class FastQuarantine
+ include Support::API
+
+ class << self
+ def configure!
+ return unless ENV["CI"]
+ return if ENV["FAST_QUARANTINE"] == "false"
+ return if ENV["CI_MERGE_REQUEST_LABELS"]&.include?("pipeline:run-flaky-tests")
+
+ Runtime::Logger.debug("Running fast quarantine setup")
+ setup = new
+ setup.fetch_fq_file
+ setup.configure_rspec
+ rescue StandardError => e
+ Runtime::Logger.error("Failed to setup FastQuarantine, error: '#{e.class} - #{e.message}'")
+ end
+ end
+
+ private_class_method :new
+
+ def initialize
+ @logger = Runtime::Logger.logger
+ @fq_filename = "fast_quarantine-gitlab.txt"
+ end
+
+ # Fetch and save fast quarantine file
+ #
+ # @return [void]
+ def fetch_fq_file
+ download_fast_quarantine
+ end
+
+ # Configure rspec
+ #
+ # @return [void]
+ def configure_rspec
+ # Shared tooling that adds relevant rspec configuration
+ require_relative '../../../../spec/support/fast_quarantine'
+ end
+
+ private
+
+ attr_reader :logger, :fq_filename
+
+ # Force path to be relative to ruby process in order to avoid issues when dealing with different execution
+ # contexts of qa docker container and CI runner environment
+ def fq_path
+ @fq_path ||= ENV["RSPEC_FAST_QUARANTINE_PATH"] = File.join(Runtime::Path.qa_root, "tmp", fq_filename)
+ end
+
+ def download_fast_quarantine
+ logger.debug(" downloading fast quarantine file")
+ response = get(
+ "https://gitlab-org.gitlab.io/quality/engineering-productivity/fast-quarantine/rspec/#{fq_filename}",
+ verify_ssl: true
+ )
+ raise "Failed to download fast quarantine file: #{response.code}" if response.code != HTTP_STATUS_OK
+
+ logger.debug(" saving fast quarantine file to '#{fq_path}'")
+ File.write(fq_path, response.body)
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/specs/spec_helper.rb b/qa/qa/specs/spec_helper.rb
index d4295ce72e7..e585b660221 100644
--- a/qa/qa/specs/spec_helper.rb
+++ b/qa/qa/specs/spec_helper.rb
@@ -5,9 +5,6 @@ require 'factory_bot'
require_relative '../../qa'
-# Require shared test tooling from Rails test suite
-require_relative '../../../spec/support/fast_quarantine'
-
QA::Specs::QaDeprecationToolkitEnv.configure!
Knapsack::Adapters::RSpecAdapter.bind if QA::Runtime::Env.knapsack?
@@ -16,10 +13,12 @@ Knapsack::Adapters::RSpecAdapter.bind if QA::Runtime::Env.knapsack?
QA::Support::GitlabAddress.define_gitlab_address_attribute!
QA::Runtime::Browser.configure!
QA::Specs::Helpers::FeatureSetup.configure!
+QA::Specs::Helpers::FastQuarantine.configure!
QA::Runtime::AllureReport.configure!
-QA::Runtime::Scenario.from_env(QA::Runtime::Env.runtime_scenario_attributes)
QA::Service::DockerRun::Video.configure!
+QA::Runtime::Scenario.from_env(QA::Runtime::Env.runtime_scenario_attributes)
+
# Enable zero monkey patching mode before loading any other RSpec code.
RSpec.configure(&:disable_monkey_patching!)
diff --git a/qa/qa/support/helpers/plan.rb b/qa/qa/support/helpers/plan.rb
index c53c099b2bd..dd9124a8f04 100644
--- a/qa/qa/support/helpers/plan.rb
+++ b/qa/qa/support/helpers/plan.rb
@@ -56,14 +56,6 @@ module QA
storage: 10
}.freeze
- CODE_SUGGESTIONS = {
- # Annual plan, rate and price
- plan_id: '8a8aa0ac8874ddc4018878da1f736782',
- rate_charge_id: '8a8aa0ac8874ddc4018878da1f9a6784',
- name: 'code suggestions',
- price: 108
- }.freeze
-
LICENSE_TYPE = {
legacy_license: 'legacy license',
online_cloud: 'online license',
diff --git a/qa/qa/support/helpers/project.rb b/qa/qa/support/helpers/project.rb
index 8909d8338f4..85165f13fe1 100644
--- a/qa/qa/support/helpers/project.rb
+++ b/qa/qa/support/helpers/project.rb
@@ -6,12 +6,23 @@ module QA
module Project
def wait_until_project_is_ready(project)
# Repository can take a short time to become ready after project is created
- Support::Retrier.retry_on_exception(sleep_interval: 5) do
+ Support::Retrier.retry_on_exception(sleep_interval: 1, max_attempts: 60) do
create(:commit, project: project, commit_message: 'Add new file', actions: [
- { action: 'create', file_path: 'new_file', content: '# This is a new file' }
+ { action: 'create', file_path: SecureRandom.hex(4), content: '# This is a new file' }
])
end
end
+
+ def wait_until_token_associated_to_project(project, api_client)
+ Support::Retrier.retry_on_exception(sleep_interval: 1, max_attempts: 60) do
+ create(
+ :commit,
+ project: project,
+ actions: [{ action: 'create', file_path: SecureRandom.hex(4) }],
+ api_client: api_client
+ )
+ end
+ end
end
end
end
diff --git a/qa/qa/tools/delete_user_projects.rb b/qa/qa/tools/delete_user_projects.rb
index 5c3ae4d4ef2..5fe8e30cb66 100644
--- a/qa/qa/tools/delete_user_projects.rb
+++ b/qa/qa/tools/delete_user_projects.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
-# This script deletes all projects owned by a given USER_ID in their personal namespace
-# Required environment variables: USER_ID, GITLAB_QA_ACCESS_TOKEN and GITLAB_ADDRESS
+# This script deletes all projects owned by a given USER_ID or QA_USERNAMES in their personal namespace
+# Required environment variables: GITLAB_QA_ACCESS_TOKEN, GITLAB_ADDRESS, and USER_ID or CLEANUP_ALL_QA_USER_PROJECTS
# Run `rake delete_user_projects`
module QA
@@ -9,65 +9,145 @@ module QA
class DeleteUserProjects
include Support::API
include Lib::Project
+ include Ci::Helpers
- def initialize(delete_before: (Date.today - 1).to_s, dry_run: false)
- unless ENV['GITLAB_ADDRESS']
- raise ArgumentError, "Please provide GITLAB_ADDRESS environment variable"
- end
+ # We cannot pass ids because they are different on each live environment
+ QA_USERNAMES = %w[gitlab-qa
+ gitlab-qa-admin
+ gitlab-qa-user1
+ gitlab-qa-user2
+ gitlab-qa-user3
+ gitlab-qa-user4
+ gitlab-qa-user5
+ gitlab-qa-user6].freeze
- unless ENV['GITLAB_QA_ACCESS_TOKEN']
- raise ArgumentError, "Please provide GITLAB_QA_ACCESS_TOKEN environment variable"
+ def initialize(delete_before: (Date.today - 3).to_s, dry_run: false)
+ %w[GITLAB_ADDRESS GITLAB_QA_ACCESS_TOKEN].each do |var|
+ raise ArgumentError, "Please provide #{var} environment variable" unless ENV[var]
end
- unless ENV['USER_ID']
- raise ArgumentError, "Please provide USER_ID environment variable"
+ unless ENV['USER_ID'] || ENV['CLEANUP_ALL_QA_USER_PROJECTS']
+ raise ArgumentError, "Please provide USER_ID or CLEANUP_ALL_QA_USER_PROJECTS environment variable"
end
@delete_before = Date.parse(delete_before)
@dry_run = dry_run
- @api_client = Runtime::API::Client.new(ENV['GITLAB_ADDRESS'],
- personal_access_token: ENV['GITLAB_QA_ACCESS_TOKEN'])
+ @api_client = set_api_client(ENV['GITLAB_QA_ACCESS_TOKEN'])
end
# @example
# GITLAB_ADDRESS=<address> \
# GITLAB_QA_ACCESS_TOKEN=<token> \
- # USER_ID=<id> bundle exec "delete_user_projects[2023-01-01,true]"
+ # USER_ID=<id> bundle exec rake "delete_user_projects[2023-01-01,true]"
+ #
+ # @example
+ # GITLAB_ADDRESS=<address> \
+ # GITLAB_QA_ACCESS_TOKEN=<token> \
+ # USER_ID=<id> bundle exec rake "delete_user_projects[,true]"
#
# @example
# GITLAB_ADDRESS=<address> \
# GITLAB_QA_ACCESS_TOKEN=<token> \
- # USER_ID=<id> bundle exec "delete_user_projects[,true]"
+ # CLEANUP_ALL_QA_USER_PROJECTS=true bundle exec rake delete_user_projects
def run
- $stdout.puts 'Running...'
+ user_ids = fetch_user_ids
+ return 'No users found. Skipping project delete.' if user_ids.empty?
+
+ user_ids.each do |user_id|
+ qa_username = fetch_qa_username(user_id)
+
+ api_client = if qa_username == "gitlab-qa-user1" && ENV['GITLAB_QA_USER1_ACCESS_TOKEN']
+ set_api_client(ENV['GITLAB_QA_USER1_ACCESS_TOKEN'])
+ elsif qa_username == "gitlab-qa-user2" && ENV['GITLAB_QA_USER2_ACCESS_TOKEN']
+ set_api_client(ENV['GITLAB_QA_USER2_ACCESS_TOKEN'])
+ else
+ @api_client
+ end
+
+ delete_user_projects(qa_username, user_id, api_client)
+ end
+ end
+
+ private
- projects_head_response = head Runtime::API::Request.new(@api_client, "/users/#{ENV['USER_ID']}/projects",
+ def delete_user_projects(qa_username, user_id, api_client)
+ logger.info("Running project delete for user #{qa_username} (#{user_id}) on #{ENV['GITLAB_ADDRESS']}...")
+
+ projects_head_response = head Runtime::API::Request.new(api_client, "/users/#{user_id}/projects",
per_page: "100").url
total_project_pages = projects_head_response.headers[:x_total_pages]
+ total_projects = projects_head_response.headers[:x_total]
- $stdout.puts "Total project pages: #{total_project_pages}"
+ logger.info("Total projects: #{total_projects}")
+ return logger.info("\nDone") if total_projects.to_i == 0
- project_ids = fetch_project_ids(total_project_pages)
+ project_ids = fetch_project_ids(total_project_pages, user_id)
+ logger.info("Total projects created before #{@delete_before}: #{project_ids.size}")
- delete_projects(project_ids, @api_client, @dry_run) unless project_ids.empty?
- $stdout.puts "\nDone"
+ delete_projects(project_ids, api_client, @dry_run) unless project_ids.empty?
+ logger.info("\nDone")
end
- private
-
- def fetch_project_ids(total_project_pages)
+ def fetch_project_ids(total_project_pages, user_id)
projects_ids = []
total_project_pages.to_i.times do |page_no|
- projects_response = get Runtime::API::Request.new(@api_client, "/users/#{ENV['USER_ID']}/projects",
+ projects_response = get Runtime::API::Request.new(@api_client, "/users/#{user_id}/projects",
page: (page_no + 1).to_s, per_page: "100").url
projects_ids.concat(JSON.parse(projects_response.body)
.select { |project| Date.parse(project["created_at"]) < @delete_before }
.map { |project| project["id"] })
+ rescue StandardError => e
+ logger.error("Failed to fetch projects for user #{user_id}: #{e.message}")
end
projects_ids.uniq
end
+
+ def fetch_user_ids
+ user_ids = ENV['CLEANUP_ALL_QA_USER_PROJECTS'] ? fetch_qa_user_ids : []
+ user_ids << ENV['USER_ID'].to_i if ENV['USER_ID']
+
+ user_ids.uniq
+ end
+
+ def fetch_qa_user_ids
+ logger.info("Fetching QA user ids...")
+ user_ids = []
+
+ QA_USERNAMES.each do |qa_username|
+ user_response = get Runtime::API::Request.new(@api_client, "/users", username: qa_username).url
+
+ unless user_response.code == HTTP_STATUS_OK
+ logger.error("Request for #{qa_username} returned (#{user_response.code}): `#{user_response}` ")
+ next
+ end
+
+ parsed_response = JSON.parse(user_response.body)
+
+ if parsed_response.empty?
+ logger.error("User #{qa_username} not found")
+ next
+ end
+
+ user_ids << parsed_response.first["id"]
+ rescue StandardError => e
+ logger.error("Failed to fetch user ID for #{qa_username}: #{e.message}")
+ end
+
+ user_ids.uniq
+ end
+
+ def fetch_qa_username(user_id)
+ response = get Runtime::API::Request.new(@api_client, "/users/#{user_id}").url
+ parsed_response = JSON.parse(response.body)
+ parsed_response["username"]
+ end
+
+ def set_api_client(token)
+ Runtime::API::Client.new(ENV['GITLAB_ADDRESS'],
+ personal_access_token: token)
+ end
end
end
end
diff --git a/qa/qa/tools/reliable_report.rb b/qa/qa/tools/reliable_report.rb
index 7569095b56f..4f9d166cac6 100644
--- a/qa/qa/tools/reliable_report.rb
+++ b/qa/qa/tools/reliable_report.rb
@@ -29,7 +29,8 @@ module QA
# Project for report creation: https://gitlab.com/gitlab-org/gitlab
PROJECT_ID = 278964
- FEATURES_DIR = 'https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/'
+ BLOB_MASTER = 'https://gitlab.com/gitlab-org/gitlab/-/blob/master'
+ FEATURES_DIR = '/qa/qa/specs/features'
# @param [Integer] range amount of days for results range
def initialize(range)
@@ -49,6 +50,7 @@ module QA
if report_in_issue_and_slack == "true"
reporter.report_in_issue_and_slack
+ reporter.write_specs_json
reporter.close_previous_reports
end
rescue StandardError => e
@@ -83,8 +85,8 @@ module QA
labels: "#{RELIABLE_REPORT_LABEL},Quality,test,type::maintenance,automation:ml"
)
@report_iid = issue[:iid]
- web_url = issue[:web_url]
- puts "Created report issue: #{web_url}"
+ @report_web_url = issue[:web_url]
+ puts "Created report issue: #{@report_web_url}"
puts "Sending slack notification".colorize(:green)
notifier.post(
@@ -93,7 +95,7 @@ module QA
```#{summary_table(stable: true)}```
```#{summary_table(stable: false)}```
- #{web_url}
+ #{@report_web_url}
TEXT
)
puts "Done!"
@@ -129,9 +131,14 @@ module QA
)
end
+ def write_specs_json
+ File.write('tmp/unstable_specs.json', JSON.pretty_generate(specs_attributes(stable: false)))
+ File.write('tmp/stable_specs.json', JSON.pretty_generate(specs_attributes(stable: true)))
+ end
+
private
- attr_reader :range, :slack_channel, :report_iid
+ attr_reader :range, :slack_channel, :report_iid, :report_web_url
# Slack notifier
#
@@ -371,24 +378,103 @@ module QA
end.join('')}"
end
+ def api_query_unreliable
+ @api_query_unreliable ||= begin
+ log_fetching_query_data(true)
+ query_api.query(query: query(false))
+ end
+ end
+
+ def api_query_reliable
+ @api_query_reliable ||= begin
+ log_fetching_query_data(true)
+ query_api.query(query: query(true))
+ end
+ end
+
+ def log_fetching_query_data(reliable)
+ puts("Fetching data on #{reliable ? 'reliable ' : ''}test execution for past #{range} days\n".colorize(:green))
+ end
+
+ def specs_attributes(stable:)
+ all_runs = stable ? api_query_unreliable : api_query_reliable
+
+ specs_array = all_runs.each_with_object([]) do |table, arr|
+ records = table.records.sort_by { |record| record.values["_time"] }
+
+ next if within_execution_range(records.first.values["_time"], records.last.values["_time"])
+
+ result = spec_attributes_per_run(records)
+
+ next if !stable && result[:failed] == 0
+
+ next if stable && result[:failed] != 0
+
+ # A failure issue does not exist
+ next if !stable && result[:failure_issue].exclude?('issues')
+
+ arr << result
+ end
+
+ {
+ type: stable ? 'Stable Specs' : 'Unstable Specs',
+ report_issue: report_web_url,
+ specs: specs_array
+ }
+ end
+
+ def spec_attributes_per_run(records)
+ failed = records.count do |r|
+ r.values["status"] == "failed" && !allowed_failure?(r.values["failure_exception"])
+ end
+
+ failure_issue = exceptions_and_related_urls(records).values.last
+ last_record = records.last.values
+ name = last_record["name"]
+ file = last_record["file_path"].split("/").last
+ link = BLOB_MASTER + FEATURES_DIR + last_record["file_path"]
+ file_path = FEATURES_DIR + last_record["file_path"]
+ stage = last_record["stage"] || "unknown"
+ testcase = last_record["testcase"]
+ run_type = last_record["run_type"]
+ product_group = last_record["product_group"] || "unknown"
+ runs = records.count
+ failure_rate = (failed.to_f / runs) * 100
+
+ {
+ stage: stage,
+ product_group: product_group,
+ name: name,
+ file: file,
+ link: link,
+ runs: runs,
+ failed: failed,
+ failure_issue: failure_issue || '',
+ failure_rate: failure_rate == 0 ? failure_rate.round(0) : failure_rate.round(2),
+ testcase: testcase,
+ file_path: file_path,
+ run_type: run_type
+ }
+ end
+
# rubocop:disable Metrics/AbcSize
# Test executions grouped by name
#
# @param [Boolean] reliable
# @return [Hash<String, Hash>]
def test_runs(reliable:)
- puts("Fetching data on #{reliable ? 'reliable ' : ''}test execution for past #{range} days\n".colorize(:green))
+ all_runs = reliable ? api_query_reliable : api_query_unreliable
- all_runs = query_api.query(query: query(reliable))
all_runs.each_with_object(Hash.new { |hsh, key| hsh[key] = {} }) do |table, result|
records = table.records.sort_by { |record| record.values["_time"] }
next if within_execution_range(records.first.values["_time"], records.last.values["_time"])
last_record = records.last.values
+
name = last_record["name"]
file = last_record["file_path"].split("/").last
- link = FEATURES_DIR + last_record["file_path"]
+ link = BLOB_MASTER + FEATURES_DIR + last_record["file_path"]
stage = last_record["stage"] || "unknown"
product_group = last_record["product_group"] || "unknown"
diff --git a/qa/spec/README.md b/qa/spec/README.md
index b1fc38fb55d..0831ef4f052 100644
--- a/qa/spec/README.md
+++ b/qa/spec/README.md
@@ -1,7 +1,13 @@
# QA framework unit tests
-To run framework unit tests, following command can be used:
+To run all the unit tests under the framework, following command can be used:
```shell
bundle exec rspec -O .rspec_internal
```
+
+To run individual unit test, following command can be used:
+
+```shell
+bundle exec rspec -O .rspec_internal spec/spec_path/file_spec.rb
+```
diff --git a/qa/spec/service/docker_run/smocker_spec.rb b/qa/spec/service/docker_run/smocker_spec.rb
new file mode 100644
index 00000000000..0017ee48e95
--- /dev/null
+++ b/qa/spec/service/docker_run/smocker_spec.rb
@@ -0,0 +1,67 @@
+# frozen_string_literal: true
+
+module QA
+ RSpec.describe Service::DockerRun::Smocker do
+ let(:name) { 'smocker-12345' }
+ let(:network) { 'thenet' }
+ let(:host_ip) { '1.2.3.4' }
+
+ subject(:smocker_container) { described_class.new(name: name) }
+
+ before do
+ # rubocop:disable RSpec/AnyInstanceOf -- allow_next_instance_of relies on gitlab/rspec
+ allow_any_instance_of(described_class).to receive(:network).and_return(network)
+ # rubocop:enable RSpec/AnyInstanceOf
+
+ allow(smocker_container).to receive(:host_ip).and_return(host_ip)
+ end
+
+ describe '#host_name' do
+ shared_examples 'returns host ip' do
+ it 'returns host ip' do
+ expect(smocker_container.host_name).to eq(host_ip)
+ end
+ end
+
+ shared_examples 'returns name.network' do
+ it 'returns name.network' do
+ expect(smocker_container.host_name).to eq("#{name}.#{network}")
+ end
+ end
+
+ context 'when running in CI' do
+ before do
+ allow(Runtime::Env).to receive(:running_in_ci?).and_return(true)
+ end
+
+ context 'when network is not bridge' do
+ it_behaves_like 'returns name.network'
+ end
+
+ context 'when network is bridge' do
+ let(:network) { 'bridge' }
+
+ it_behaves_like 'returns host ip'
+ end
+ end
+
+ context 'when running not in CI' do
+ before do
+ allow(Runtime::Env).to receive(:running_in_ci?).and_return(false)
+ end
+
+ context 'when QA hostname is not set' do
+ it_behaves_like 'returns host ip'
+ end
+
+ context 'when QA hostname is set' do
+ before do
+ allow(Runtime::Env).to receive(:qa_hostname).and_return('qa-hostname')
+ end
+
+ it_behaves_like 'returns name.network'
+ end
+ end
+ end
+ end
+end
diff --git a/qa/spec/specs/helpers/context_selector_spec.rb b/qa/spec/specs/helpers/context_selector_spec.rb
index a4573d96523..d18b88578a4 100644
--- a/qa/spec/specs/helpers/context_selector_spec.rb
+++ b/qa/spec/specs/helpers/context_selector_spec.rb
@@ -324,6 +324,27 @@ RSpec.describe QA::Specs::Helpers::ContextSelector do
end
end
+ context 'local' do
+ it 'runs locally' do
+ stub_env('CI_JOB_NAME', nil)
+ group = describe_successfully 'Runs locally', :local do
+ it('runs locally') {}
+ end
+
+ expect(group.examples[0].execution_result.status).to eq(:passed)
+ end
+
+ it 'does not run in CI' do
+ stub_env('CI_JOB_NAME', 'ee:instance-image')
+
+ group = describe_successfully 'Does not run in CI' do
+ it('does not run in CI', only: :local) {}
+ end
+
+ expect(group.examples[0].execution_result.status).to eq(:pending)
+ end
+ end
+
context 'production' do
before do
allow(GitlabEdition).to receive(:jh?).and_return(false)
diff --git a/qa/spec/specs/helpers/fast_quarantine_spec.rb b/qa/spec/specs/helpers/fast_quarantine_spec.rb
new file mode 100644
index 00000000000..d63e5ef822e
--- /dev/null
+++ b/qa/spec/specs/helpers/fast_quarantine_spec.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+RSpec.describe QA::Specs::Helpers::FastQuarantine do
+ include QA::Support::Helpers::StubEnv
+
+ let(:response) { instance_double(RestClient::Response, code: 200, body: fq_contents) }
+ let(:fq_path) { File.join(QA::Runtime::Path.qa_root, "tmp", "fast_quarantine-gitlab.txt") }
+ let(:fq_contents) { "fast_quarantine_contents" }
+
+ before do
+ stub_env("CI", "true")
+
+ allow(RSpec).to receive(:configure)
+ allow(File).to receive(:write).with(fq_path, fq_contents)
+ allow(RestClient::Request).to receive(:execute).and_return(response)
+
+ # silence log messages during test execution
+ allow(QA::Runtime::Logger).to receive(:logger).and_return(instance_double(ActiveSupport::Logger, debug: nil))
+ allow(QA::Runtime::Logger).to receive(:debug)
+
+ described_class.configure!
+ end
+
+ it "configures fast quarantine" do
+ expect(RSpec).to have_received(:configure)
+ expect(File).to have_received(:write).with(fq_path, fq_contents)
+ expect(RestClient::Request).to have_received(:execute).with(
+ cookies: {},
+ method: :get,
+ url: "https://gitlab-org.gitlab.io/quality/engineering-productivity/fast-quarantine/rspec/fast_quarantine-gitlab.txt",
+ verify_ssl: true
+ )
+ end
+end
diff --git a/qa/spec/tools/reliable_report_spec.rb b/qa/spec/tools/reliable_report_spec.rb
index c8488424259..9fc94894bcd 100644
--- a/qa/spec/tools/reliable_report_spec.rb
+++ b/qa/spec/tools/reliable_report_spec.rb
@@ -3,177 +3,199 @@
describe QA::Tools::ReliableReport do
include QA::Support::Helpers::StubEnv
- describe '.run' do
- subject(:run) { described_class.run(range: range, report_in_issue_and_slack: create_issue) }
+ before do
+ stub_env("QA_INFLUXDB_URL", "url")
+ stub_env("QA_INFLUXDB_TOKEN", "token")
+ stub_env("SLACK_WEBHOOK", "slack_url")
+ stub_env("CI_API_V4_URL", "gitlab_api_url")
+ stub_env("GITLAB_ACCESS_TOKEN", "gitlab_token")
+
+ allow(RestClient::Request).to receive(:execute)
+ allow(Slack::Notifier).to receive(:new).and_return(slack_notifier)
+ allow(InfluxDB2::Client).to receive(:new).and_return(influx_client)
+
+ allow(query_api).to receive(:query).with(query: flux_query(reliable: false)).and_return(runs)
+ allow(query_api).to receive(:query).with(query: flux_query(reliable: true)).and_return(reliable_runs)
+ end
- let(:slack_notifier) { instance_double("Slack::Notifier", post: nil) }
- let(:influx_client) { instance_double("InfluxDB2::Client", create_query_api: query_api) }
- let(:query_api) { instance_double("InfluxDB2::QueryApi") }
-
- let(:slack_channel) { "#quality-reports" }
- let(:range) { 14 }
- let(:issue_url) { "https://gitlab.com/issue/1" }
- let(:time) { "2021-12-07T04:05:25.000000000+00:00" }
- let(:failure_message) { 'random failure message' }
-
- let(:runs) do
- values = {
- "name" => "stable spec1",
- "status" => "passed",
- "file_path" => "some/spec.rb",
- "stage" => "create",
- "product_group" => "code_review",
- "_time" => time
- }
- more_values = {
- "name" => "stable spec2",
- "status" => "passed",
- "file_path" => "some/spec.rb",
- "stage" => "manage",
- "product_group" => "import_and_integrate",
- "_time" => time
- }
- [
- instance_double(
- "InfluxDB2::FluxTable",
- records: [
- instance_double("InfluxDB2::FluxRecord", values: values),
- instance_double("InfluxDB2::FluxRecord", values: values),
- instance_double("InfluxDB2::FluxRecord", values: values.merge({ "_time" => Time.now.to_s }))
- ]
- ),
- instance_double(
- "InfluxDB2::FluxTable",
- records: [
- instance_double("InfluxDB2::FluxRecord", values: more_values),
- instance_double("InfluxDB2::FluxRecord", values: more_values),
- instance_double("InfluxDB2::FluxRecord", values: more_values.merge({ "_time" => Time.now.to_s }))
- ]
- )
- ]
- end
+ let(:slack_notifier) { instance_double("Slack::Notifier", post: nil) }
+ let(:influx_client) { instance_double("InfluxDB2::Client", create_query_api: query_api) }
+ let(:query_api) { instance_double("InfluxDB2::QueryApi") }
+
+ let(:slack_channel) { "#quality-reports" }
+ let(:range) { 14 }
+ let(:issue_url) { "https://gitlab.com/issue/1" }
+ let(:time) { "2021-12-07T04:05:25.000000000+00:00" }
+ let(:failure_message) { 'random failure message' }
+
+ let(:run_values) do
+ {
+ "name" => "stable spec1",
+ "status" => "passed",
+ "file_path" => "/some/spec.rb",
+ "stage" => "create",
+ "product_group" => "code_review",
+ "testcase" => "https://testcase/url",
+ "run_type" => "staging",
+ "_time" => time
+ }
+ end
- let(:reliable_runs) do
- values = {
- "name" => "unstable spec",
- "status" => "failed",
- "file_path" => "some/spec.rb",
- "stage" => "create",
- "product_group" => "code_review",
- "failure_exception" => failure_message,
- "job_url" => "https://job/url",
- "_time" => time
- }
- more_values = {
- "name" => "unstable spec",
- "status" => "failed",
- "file_path" => "some/spec.rb",
- "stage" => "manage",
- "product_group" => "import_and_integrate",
- "failure_exception" => failure_message,
- "job_url" => "https://job/url",
- "_time" => time
- }
- [
- instance_double(
- "InfluxDB2::FluxTable",
- records: [
- instance_double("InfluxDB2::FluxRecord", values: { **values, "status" => "passed" }),
- instance_double("InfluxDB2::FluxRecord", values: values),
- instance_double("InfluxDB2::FluxRecord", values: values.merge({ "_time" => Time.now.to_s }))
- ]
- ),
- instance_double(
- "InfluxDB2::FluxTable",
- records: [
- instance_double("InfluxDB2::FluxRecord", values: { **more_values, "status" => "passed" }),
- instance_double("InfluxDB2::FluxRecord", values: more_values),
- instance_double("InfluxDB2::FluxRecord", values: more_values.merge({ "_time" => Time.now.to_s }))
- ]
- )
- ]
- end
+ let(:run_more_values) do
+ {
+ "name" => "stable spec2",
+ "status" => "passed",
+ "file_path" => "/some/spec.rb",
+ "stage" => "manage",
+ "product_group" => "import_and_integrate",
+ "testcase" => "https://testcase/url",
+ "run_type" => "staging",
+ "_time" => time
+ }
+ end
- def flux_query(reliable:)
- <<~QUERY
- from(bucket: "e2e-test-stats-main")
- |> range(start: -#{range}d)
- |> filter(fn: (r) => r._measurement == "test-stats")
- |> filter(fn: (r) => r.run_type == "staging-full" or
- r.run_type == "staging-sanity" or
- r.run_type == "production-full" or
- r.run_type == "production-sanity" or
- r.run_type == "package-and-qa" or
- r.run_type == "nightly"
- )
- |> filter(fn: (r) => r.job_name != "airgapped" and
- r.job_name != "instance-image-slow-network" and
- r.job_name != "nplus1-instance-image"
- )
- |> filter(fn: (r) => r.status != "pending" and
- r.merge_request == "false" and
- r.quarantined == "false" and
- r.smoke == "false" and
- r.reliable == "#{reliable}"
- )
- |> filter(fn: (r) => r["_field"] == "job_url" or
- r["_field"] == "failure_exception" or
- r["_field"] == "id" or
- r["_field"] == "failure_issue"
- )
- |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
- |> group(columns: ["name"])
- QUERY
- end
+ let(:runs) do
+ [
+ instance_double(
+ "InfluxDB2::FluxTable",
+ records: [
+ instance_double("InfluxDB2::FluxRecord", values: run_values),
+ instance_double("InfluxDB2::FluxRecord", values: run_values),
+ instance_double("InfluxDB2::FluxRecord", values: run_values.merge({ "_time" => Time.now.to_s }))
+ ]
+ ),
+ instance_double(
+ "InfluxDB2::FluxTable",
+ records: [
+ instance_double("InfluxDB2::FluxRecord", values: run_more_values),
+ instance_double("InfluxDB2::FluxRecord", values: run_more_values),
+ instance_double("InfluxDB2::FluxRecord", values: run_more_values.merge({ "_time" => Time.now.to_s }))
+ ]
+ )
+ ]
+ end
- def expected_stage_markdown(result, stage, product_group, type)
- <<~SECTION.strip
- ## #{stage.capitalize} (1)
+ let(:reliable_run_values) do
+ {
+ "name" => "unstable spec",
+ "status" => "failed",
+ "file_path" => "/some/spec.rb",
+ "stage" => "create",
+ "product_group" => "code_review",
+ "failure_exception" => failure_message,
+ "job_url" => "https://job/url",
+ "testcase" => "https://testcase/url",
+ "failure_issue" => "https://issues/url",
+ "run_type" => "staging",
+ "_time" => time
+ }
+ end
- <details>
- <summary>Executions table ~\"group::#{product_group}\" (1)</summary>
+ let(:reliable_run_more_values) do
+ {
+ "name" => "unstable spec",
+ "status" => "failed",
+ "file_path" => "/some/spec.rb",
+ "stage" => "manage",
+ "product_group" => "import_and_integrate",
+ "failure_exception" => failure_message,
+ "job_url" => "https://job/url",
+ "testcase" => "https://testcase/url",
+ "failure_issue" => "https://issues/url",
+ "run_type" => "staging",
+ "_time" => time
+ }
+ end
- #{table(result, ['NAME', 'RUNS', 'FAILURES', 'FAILURE RATE'], "Top #{type} specs in '#{stage}' stage for past #{range} days", true)}
+ let(:reliable_runs) do
+ [
+ instance_double(
+ "InfluxDB2::FluxTable",
+ records: [
+ instance_double("InfluxDB2::FluxRecord", values: { **reliable_run_values, "status" => "passed" }),
+ instance_double("InfluxDB2::FluxRecord", values: reliable_run_values),
+ instance_double("InfluxDB2::FluxRecord", values: reliable_run_values.merge({ "_time" => Time.now.to_s }))
+ ]
+ ),
+ instance_double(
+ "InfluxDB2::FluxTable",
+ records: [
+ instance_double("InfluxDB2::FluxRecord", values: { **reliable_run_more_values, "status" => "passed" }),
+ instance_double("InfluxDB2::FluxRecord", values: reliable_run_more_values),
+ instance_double("InfluxDB2::FluxRecord", values: reliable_run_more_values.merge({ "_time" => Time.now.to_s }))
+ ]
+ )
+ ]
+ end
- </details>
- SECTION
- end
+ def flux_query(reliable:)
+ <<~QUERY
+ from(bucket: "e2e-test-stats-main")
+ |> range(start: -#{range}d)
+ |> filter(fn: (r) => r._measurement == "test-stats")
+ |> filter(fn: (r) => r.run_type == "staging-full" or
+ r.run_type == "staging-sanity" or
+ r.run_type == "production-full" or
+ r.run_type == "production-sanity" or
+ r.run_type == "package-and-qa" or
+ r.run_type == "nightly"
+ )
+ |> filter(fn: (r) => r.job_name != "airgapped" and
+ r.job_name != "instance-image-slow-network" and
+ r.job_name != "nplus1-instance-image"
+ )
+ |> filter(fn: (r) => r.status != "pending" and
+ r.merge_request == "false" and
+ r.quarantined == "false" and
+ r.smoke == "false" and
+ r.reliable == "#{reliable}"
+ )
+ |> filter(fn: (r) => r["_field"] == "job_url" or
+ r["_field"] == "failure_exception" or
+ r["_field"] == "id" or
+ r["_field"] == "failure_issue"
+ )
+ |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
+ |> group(columns: ["name"])
+ QUERY
+ end
- def expected_summary_table(summary, type, markdown = false)
- table(summary, %w[STAGE COUNT], "#{type.capitalize} spec summary for past #{range} days".ljust(50), markdown)
- end
+ def expected_stage_markdown(result, stage, product_group, type)
+ <<~SECTION.strip
+ ## #{stage.capitalize} (1)
- def table(rows, headings, title, markdown = false)
- Terminal::Table.new(
- headings: headings,
- title: markdown ? nil : title,
- rows: rows,
- style: markdown ? { border: :markdown } : { all_separators: true }
- )
- end
+ <details>
+ <summary>Executions table ~\"group::#{product_group}\" (1)</summary>
- def name_column(spec_name, exceptions_and_related_urls = {})
- "**Name**: #{spec_name}<br>**File**: [spec.rb](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/some/spec.rb)#{exceptions_markdown(exceptions_and_related_urls)}"
- end
+ #{table(result, ['NAME', 'RUNS', 'FAILURES', 'FAILURE RATE'], "Top #{type} specs in '#{stage}' stage for past #{range} days", true)}
- def exceptions_markdown(exceptions_and_related_urls)
- exceptions_and_related_urls.empty? ? '' : "<br>**Exceptions**:<br>- [`#{failure_message}`](https://job/url)"
- end
+ </details>
+ SECTION
+ end
- before do
- stub_env("QA_INFLUXDB_URL", "url")
- stub_env("QA_INFLUXDB_TOKEN", "token")
- stub_env("SLACK_WEBHOOK", "slack_url")
- stub_env("CI_API_V4_URL", "gitlab_api_url")
- stub_env("GITLAB_ACCESS_TOKEN", "gitlab_token")
-
- allow(RestClient::Request).to receive(:execute)
- allow(Slack::Notifier).to receive(:new).and_return(slack_notifier)
- allow(InfluxDB2::Client).to receive(:new).and_return(influx_client)
-
- allow(query_api).to receive(:query).with(query: flux_query(reliable: false)).and_return(runs)
- allow(query_api).to receive(:query).with(query: flux_query(reliable: true)).and_return(reliable_runs)
- end
+ def expected_summary_table(summary, type, markdown = false)
+ table(summary, %w[STAGE COUNT], "#{type.capitalize} spec summary for past #{range} days".ljust(50), markdown)
+ end
+
+ def table(rows, headings, title, markdown = false)
+ Terminal::Table.new(
+ headings: headings,
+ title: markdown ? nil : title,
+ rows: rows,
+ style: markdown ? { border: :markdown } : { all_separators: true }
+ )
+ end
+
+ def name_column(spec_name, exceptions_and_related_urls = {})
+ "**Name**: #{spec_name}<br>**File**: [spec.rb](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/some/spec.rb)#{exceptions_markdown(exceptions_and_related_urls)}"
+ end
+
+ def exceptions_markdown(exceptions_and_related_urls)
+ exceptions_and_related_urls.empty? ? '' : "<br>**Exceptions**:<br>- [`#{failure_message}`](https://issues/url)"
+ end
+
+ describe '.run' do
+ subject(:run) { described_class.run(range: range, report_in_issue_and_slack: create_issue) }
context "without report creation" do
let(:create_issue) { "false" }
@@ -398,35 +420,125 @@ describe QA::Tools::ReliableReport do
it "returns an empty hash" do
expect(reliable_report.send(:exceptions_and_related_urls, records)).to be_empty
end
+ end
- context "with failure_exception" do
- context "without failure_issue" do
- let(:values) do
- {
- "failure_exception" => failure_message,
- "job_url" => job_url
- }
- end
-
- it "returns job_url as value" do
- expect(reliable_report.send(:exceptions_and_related_urls, records).values).to eq([job_url])
- end
+ context "with failure_exception" do
+ context "without failure_issue" do
+ let(:values) do
+ {
+ "failure_exception" => failure_message,
+ "job_url" => job_url
+ }
end
- context "with failure_issue and job_url" do
- let(:values) do
- {
- "failure_exception" => failure_message,
- "failure_issue" => failure_issue_url,
- "job_url" => job_url
- }
- end
-
- it "returns failure_issue as value" do
- expect(reliable_report.send(:exceptions_and_related_urls, records).values).to eq([failure_issue_url])
- end
+ it "returns job_url as value" do
+ expect(reliable_report.send(:exceptions_and_related_urls, records).values).to eq([job_url])
end
end
+
+ context "with failure_issue and job_url" do
+ let(:values) do
+ {
+ "failure_exception" => failure_message,
+ "failure_issue" => failure_issue_url,
+ "job_url" => job_url
+ }
+ end
+
+ it "returns failure_issue as value" do
+ expect(reliable_report.send(:exceptions_and_related_urls, records).values).to eq([failure_issue_url])
+ end
+ end
+ end
+ end
+
+ describe "#specs_attributes" do
+ subject(:reliable_report) { described_class.new(14) }
+
+ let(:report_web_url) { 'https://report/url' }
+
+ before do
+ allow(reliable_report).to receive(:report_web_url).and_return(report_web_url)
+ end
+
+ shared_examples "spec attributes" do |stable|
+ it "returns #{stable} spec attributes" do
+ expect(reliable_report.send(:specs_attributes, stable: stable)).to eq(expected_specs_attributes)
+ end
+ end
+
+ context "with stable false" do
+ let(:expected_specs_attributes) do
+ { type: "Unstable Specs",
+ report_issue: "https://report/url",
+ specs:
+ [
+ { stage: "create",
+ product_group: "code_review",
+ name: "unstable spec",
+ file: "spec.rb",
+ link: "https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/some/spec.rb",
+ runs: 3,
+ failed: 2,
+ failure_issue: "https://issues/url",
+ failure_rate: 66.67,
+ testcase: "https://testcase/url",
+ file_path: "/qa/qa/specs/features/some/spec.rb",
+ run_type: "staging" },
+ { stage: "manage",
+ product_group: "import_and_integrate",
+ name: "unstable spec",
+ file: "spec.rb",
+ link: "https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/some/spec.rb",
+ runs: 3,
+ failed: 2,
+ failure_issue: "https://issues/url",
+ failure_rate: 66.67,
+ testcase: "https://testcase/url",
+ file_path: "/qa/qa/specs/features/some/spec.rb",
+ run_type: "staging" }
+ ] }
+ end
+
+ it_behaves_like "spec attributes", false
+ end
+
+ context "with stable true" do
+ let(:expected_specs_attributes) do
+ {
+ type: "Stable Specs",
+ report_issue: "https://report/url",
+ specs:
+ [
+ { stage: "create",
+ product_group: "code_review",
+ name: "stable spec1",
+ file: "spec.rb",
+ link: "https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/some/spec.rb",
+ runs: 3,
+ failed: 0,
+ failure_issue: "",
+ failure_rate: 0,
+ testcase: "https://testcase/url",
+ file_path: "/qa/qa/specs/features/some/spec.rb",
+ run_type: "staging" },
+ { stage: "manage",
+ product_group: "import_and_integrate",
+ name: "stable spec2",
+ file: "spec.rb",
+ link: "https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/some/spec.rb",
+ runs: 3,
+ failed: 0,
+ failure_issue: "",
+ failure_rate: 0,
+ testcase: "https://testcase/url",
+ file_path: "/qa/qa/specs/features/some/spec.rb",
+ run_type: "staging" }
+ ]
+ }
+ end
+
+ it_behaves_like "spec attributes", true
end
end
end
diff --git a/rubocop/cop/gitlab/license_available_usage.rb b/rubocop/cop/gitlab/license_available_usage.rb
new file mode 100644
index 00000000000..29eddcba392
--- /dev/null
+++ b/rubocop/cop/gitlab/license_available_usage.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+module RuboCop
+ module Cop
+ module Gitlab
+ # Cop to ban use of License.feature_available? in ApplicationSetting model to avoid cyclical dependency issues.
+ # Issue example: https://gitlab.com/gitlab-org/gitlab/-/issues/423237
+ class LicenseAvailableUsage < RuboCop::Cop::Base
+ MSG = 'Avoid License.feature_available? usage in ApplicationSetting due to possible cyclical dependency ' \
+ 'issue. For more information see: https://gitlab.com/gitlab-org/gitlab/-/issues/423237'
+
+ RESTRICT_ON_SEND = [:feature_available?].freeze
+
+ def_node_matcher :license_feature_available?, <<~PATTERN
+ (send
+ (const nil? :License) :feature_available?
+ (sym $_))
+ PATTERN
+
+ def on_send(node)
+ add_offense(node, message: MSG) if license_feature_available?(node)
+ end
+ end
+ end
+ end
+end
diff --git a/rubocop/cop/rails/avoid_time_comparison.rb b/rubocop/cop/rails/avoid_time_comparison.rb
new file mode 100644
index 00000000000..89aa0c2ebd0
--- /dev/null
+++ b/rubocop/cop/rails/avoid_time_comparison.rb
@@ -0,0 +1,50 @@
+# frozen_string_literal: true
+
+module RuboCop
+ module Cop
+ module Rails
+ # Checks for time comparison.
+ # For more information see: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133520
+ #
+ # @example
+ # # bad
+ # datetime > Time.now
+ # Time.current < datetime
+ # datetime > Time.zone.now
+ #
+ # # good
+ # datetime.future?
+ # datetime.future?
+ # datetime.past?
+ class AvoidTimeComparison < RuboCop::Cop::Base
+ MSG = 'Avoid time comparison, use `.past?` or `.future?` instead.'
+ RESTRICT_ON_SEND = %i[< >].to_set.freeze
+
+ def_node_matcher :comparison?, <<~PATTERN
+ (send _ %RESTRICT_ON_SEND _)
+ PATTERN
+
+ def_node_matcher :time_now?, <<~PATTERN
+ {
+ (send
+ (const {nil? cbase} :Time) :now)
+ (send
+ (send
+ (const {nil? cbase} :Time) :zone) :now)
+ (send
+ (const {nil? cbase} :Time) :current)
+ }
+ PATTERN
+
+ def on_send(node)
+ return unless comparison?(node)
+
+ arg_check = node.arguments.find { |arg| time_now?(arg) }
+ receiver_check = time_now?(node.receiver)
+
+ add_offense(node) if arg_check || receiver_check
+ end
+ end
+ end
+ end
+end
diff --git a/rubocop/cop/scalability/file_uploads.rb b/rubocop/cop/scalability/file_uploads.rb
index fc52444c551..8f8c9605d09 100644
--- a/rubocop/cop/scalability/file_uploads.rb
+++ b/rubocop/cop/scalability/file_uploads.rb
@@ -27,7 +27,7 @@ module RuboCop
#
class FileUploads < RuboCop::Cop::Base
MSG = 'Do not upload files without workhorse acceleration. ' \
- 'Please refer to https://docs.gitlab.com/ee/development/uploads.html'
+ 'Please refer to https://docs.gitlab.com/ee/development/uploads/'
def_node_matcher :file_in_type, <<~PATTERN
(send nil? {:requires :optional}
diff --git a/rubocop/feature_categories.rb b/rubocop/feature_categories.rb
index 5e02d974e7b..b74b1c5254e 100644
--- a/rubocop/feature_categories.rb
+++ b/rubocop/feature_categories.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
require 'yaml'
require 'digest/sha2'
require 'did_you_mean'
diff --git a/rubocop/formatter/todo_formatter.rb b/rubocop/formatter/todo_formatter.rb
index 9e20a95ba85..dbfdec09662 100644
--- a/rubocop/formatter/todo_formatter.rb
+++ b/rubocop/formatter/todo_formatter.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
require 'rubocop'
require 'yaml'
diff --git a/rubocop/rubocop-ruby31.yml b/rubocop/rubocop-ruby31.yml
deleted file mode 100644
index 712c5a8f447..00000000000
--- a/rubocop/rubocop-ruby31.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# RuboCop configuration adjustments during the transition time from Ruby 3.0 to
-# Ruby 3.1.
-#
-# After the transition has been completed:
-# * Enable all disabled cops and resolve the offenses.
-# * Move all configuration which enabled or tweaked cops to .rubocop.yml.
-# * Remove all remaining configuration.
-
-# Short-hand Hash syntax does not work prior 3.1.
-Style/HashSyntax:
- EnforcedShorthandSyntax: never
diff --git a/rubocop/rubocop-ruby32.yml b/rubocop/rubocop-ruby32.yml
deleted file mode 100644
index 0d0e8a46c60..00000000000
--- a/rubocop/rubocop-ruby32.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-# RuboCop configuration adjustments during the transition time from Ruby 3.1 to
-# Ruby 3.2.
-#
-# After the transition has been completed:
-# * Enable all disabled cops and resolve the offenses.
-# * Move all configuration which enabled or tweaked cops to .rubocop.yml.
-# * Remove all remaining configuration.
-
-# Short-hand Hash syntax does not work prior 3.1.
-Style/HashSyntax:
- EnforcedShorthandSyntax: never
-
-# With 3.2+ `require 'set'` is no longer needed as it's always loaded.
-Lint/RedundantRequireStatement:
- Enabled: false
diff --git a/scripts/build_qa_image b/scripts/build_qa_image
index 23a003e2b01..eab8abd5c5c 100755
--- a/scripts/build_qa_image
+++ b/scripts/build_qa_image
@@ -87,6 +87,7 @@ docker buildx build \
--build-arg=CHROME_VERSION="${CHROME_VERSION}" \
--build-arg=DOCKER_VERSION="${DOCKER_VERSION}" \
--build-arg=RUBY_VERSION="${RUBY_VERSION}" \
+ --build-arg=BUNDLER_VERSION="${BUNDLER_VERSION}" \
--build-arg=QA_BUILD_TARGET="${QA_BUILD_TARGET}" \
--file="${CI_PROJECT_DIR}/qa/Dockerfile" \
--push \
diff --git a/scripts/download-downstream-artifact.rb b/scripts/download-downstream-artifact.rb
new file mode 100755
index 00000000000..23c400a9add
--- /dev/null
+++ b/scripts/download-downstream-artifact.rb
@@ -0,0 +1,121 @@
+#!/usr/bin/env ruby
+
+# frozen_string_literal: true
+
+require 'gitlab'
+
+require_relative 'api/default_options'
+
+# This class allows an upstream job to fetch an artifact from a job in a downstream pipeline.
+#
+# Until https://gitlab.com/gitlab-org/gitlab/-/issues/285100 is resolved it's not straightforward for an upstream
+# pipeline to use artifacts from a downstream pipeline. There is a workaround for parent-child pipelines (see the issue)
+# but it relies on CI_MERGE_REQUEST_REF_PATH so it doesn't work for multi-project pipelines.
+#
+# This uses the Jobs API to get pipeline bridges (trigger jobs) and the Job artifacts API to download artifacts.
+# - https://docs.gitlab.com/ee/api/jobs.html#list-pipeline-trigger-jobs
+# - https://docs.gitlab.com/ee/api/job_artifacts.html
+#
+# Note: This class also works for parent-child pipelines within the same project, it's just not necessary in that case.
+class DownloadDownstreamArtifact
+ def initialize(options)
+ @upstream_project = options.fetch(:upstream_project, API::DEFAULT_OPTIONS[:project])
+ @upstream_pipeline_id = options.fetch(:upstream_pipeline_id, API::DEFAULT_OPTIONS[:pipeline_id])
+ @downstream_project = options.fetch(:downstream_project, API::DEFAULT_OPTIONS[:project])
+ @downstream_job_name = options.fetch(:downstream_job_name)
+ @trigger_job_name = options.fetch(:trigger_job_name)
+ @downstream_artifact_path = options.fetch(:downstream_artifact_path)
+ @output_artifact_path = options.fetch(:output_artifact_path)
+
+ unless options.key?(:api_token)
+ raise ArgumentError, 'PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE is required to access downstream pipelines'
+ end
+
+ api_token = options.fetch(:api_token)
+
+ @client = Gitlab.client(
+ endpoint: options.fetch(:endpoint, API::DEFAULT_OPTIONS[:endpoint]),
+ private_token: api_token
+ )
+ end
+
+ def execute
+ unless downstream_pipeline
+ abort("Could not find downstream pipeline triggered via #{trigger_job_name} in project #{downstream_project}")
+ end
+
+ unless downstream_job
+ abort("Could not find job with name '#{downstream_job_name}' in #{downstream_pipeline['web_url']}")
+ end
+
+ puts "Fetching scores artifact from downstream pipeline triggered via #{trigger_job_name}..."
+ puts "Downstream pipeline is #{downstream_pipeline['web_url']}."
+ puts %(Downstream job "#{downstream_job_name}": #{downstream_job['web_url']}.)
+
+ path = downstream_artifact_path.sub('DOWNSTREAM_JOB_ID', downstream_job.id.to_s)
+ puts %(Fetching artifact "#{path}" from #{downstream_job_name}...)
+
+ download_and_save_artifact(path)
+
+ puts "Artifact saved as #{output_artifact_path} ..."
+ end
+
+ def self.options_from_env
+ API::DEFAULT_OPTIONS.merge({
+ upstream_project: API::DEFAULT_OPTIONS[:project],
+ upstream_pipeline_id: API::DEFAULT_OPTIONS[:pipeline_id],
+ downstream_project: ENV.fetch('DOWNSTREAM_PROJECT', API::DEFAULT_OPTIONS[:project]),
+ downstream_job_name: ENV['DOWNSTREAM_JOB_NAME'],
+ trigger_job_name: ENV['TRIGGER_JOB_NAME'],
+ downstream_artifact_path: ENV['DOWNSTREAM_JOB_ARTIFACT_PATH'],
+ output_artifact_path: ENV['OUTPUT_ARTIFACT_PATH']
+ }).except(:project, :pipeline_id)
+ end
+
+ private
+
+ attr_reader :downstream_artifact_path,
+ :output_artifact_path,
+ :downstream_job_name,
+ :trigger_job_name,
+ :upstream_project,
+ :downstream_project,
+ :upstream_pipeline_id,
+ :client
+
+ def bridge
+ @bridge ||= client
+ .pipeline_bridges(upstream_project, upstream_pipeline_id, per_page: 100)
+ .auto_paginate
+ .find { |job| job.name.include?(trigger_job_name) }
+ end
+
+ def downstream_pipeline
+ @downstream_pipeline ||=
+ if bridge&.downstream_pipeline.nil?
+ nil
+ else
+ client.pipeline(downstream_project, bridge.downstream_pipeline.id)
+ end
+ end
+
+ def downstream_job
+ @downstream_job ||= client
+ .pipeline_jobs(downstream_project, downstream_pipeline.id)
+ .find { |job| job.name.include?(downstream_job_name) }
+ end
+
+ def download_and_save_artifact(job_artifact_path)
+ file_response = client.download_job_artifact_file(downstream_project, downstream_job.id, job_artifact_path)
+
+ file_response.respond_to?(:read) || abort("Could not download artifact. Request returned: #{file_response}")
+
+ File.write(output_artifact_path, file_response.read)
+ end
+end
+
+if $PROGRAM_NAME == __FILE__
+ options = DownloadDownstreamArtifact.options_from_env
+
+ DownloadDownstreamArtifact.new(options).execute
+end
diff --git a/scripts/failed_tests.rb b/scripts/failed_tests.rb
index f828155f6f0..beb0a21637a 100755
--- a/scripts/failed_tests.rb
+++ b/scripts/failed_tests.rb
@@ -5,7 +5,7 @@ require 'optparse'
require 'fileutils'
require 'uri'
require 'json'
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
class FailedTests
DEFAULT_OPTIONS = {
diff --git a/scripts/feature_flags/used-feature-flags b/scripts/feature_flags/used-feature-flags
index 7bfe4a89634..b3005c3cba5 100755
--- a/scripts/feature_flags/used-feature-flags
+++ b/scripts/feature_flags/used-feature-flags
@@ -1,7 +1,7 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
require 'fileutils'
require_relative '../../lib/gitlab_edition'
diff --git a/scripts/generate_rspec_pipeline.rb b/scripts/generate_rspec_pipeline.rb
index 1fc37374ba5..70a0c87be35 100755
--- a/scripts/generate_rspec_pipeline.rb
+++ b/scripts/generate_rspec_pipeline.rb
@@ -93,7 +93,8 @@ class GenerateRspecPipeline
def erb_binding
{
rspec_files_per_test_level: rspec_files_per_test_level,
- test_suite_prefix: test_suite_prefix
+ test_suite_prefix: test_suite_prefix,
+ repo_from_artifacts: ENV['CI_FETCH_REPO_GIT_STRATEGY'] == 'none'
}
end
diff --git a/scripts/internal_events/cli/metric.rb b/scripts/internal_events/cli/metric.rb
index 63961d29810..0d39b0b4e2b 100755
--- a/scripts/internal_events/cli/metric.rb
+++ b/scripts/internal_events/cli/metric.rb
@@ -16,7 +16,6 @@ module InternalEventsCli
:data_source,
:data_category,
:product_category,
- :instrumentation_class,
:distribution,
:tier,
:options,
@@ -50,7 +49,6 @@ module InternalEventsCli
.merge(to_h.compact)
.merge(
key_path: key_path,
- instrumentation_class: instrumentation_class,
events: events)
.slice(*NEW_METRIC_FIELDS)
.transform_keys(&:to_s)
@@ -82,10 +80,6 @@ module InternalEventsCli
self[:key_path] ||= "#{key_path_prefix}.#{key}"
end
- def instrumentation_class
- self[:instrumentation_class] ||= identifier ? 'RedisHLLMetric' : 'TotalCountMetric'
- end
-
def events
self[:events] ||= actions.map do |action|
if identifier
@@ -100,10 +94,9 @@ module InternalEventsCli
end
def key_path_prefix
- case instrumentation_class
- when 'RedisHLLMetric'
+ if identifier
'redis_hll_counters'
- when 'TotalCountMetric'
+ else
'counts'
end
end
diff --git a/scripts/lint-doc.sh b/scripts/lint-doc.sh
index 46d7159d71f..eccc5c0c748 100755
--- a/scripts/lint-doc.sh
+++ b/scripts/lint-doc.sh
@@ -143,7 +143,8 @@ then
ruby -r './tooling/lib/tooling/find_changes' -e "Tooling::FindChanges.new(
from: :api,
changed_files_pathname: '${DOC_CHANGES_FILE}',
- file_filter: ->(file) { !file['deleted_file'] && file['new_path'] =~ %r{doc/.*\.md|lint-doc\.sh|docs\.gitlab-ci\.yml} }
+ file_filter: ->(file) { !file['deleted_file'] && file['new_path'] =~ %r{doc/.*\.md|\.vale|\.markdownlint|lint-doc\.sh|docs\.gitlab-ci\.yml} },
+ only_new_paths: true
).execute"
if grep -E "\.vale|\.markdownlint|lint-doc\.sh|docs\.gitlab-ci\.yml" < $DOC_CHANGES_FILE
then
diff --git a/scripts/lint/unused_helper_methods.rb b/scripts/lint/unused_helper_methods.rb
new file mode 100755
index 00000000000..b7b651614ef
--- /dev/null
+++ b/scripts/lint/unused_helper_methods.rb
@@ -0,0 +1,55 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+# Inspired in part by https://gist.github.com/kylefox/617b0bead5f53dc53a224a8651328c92
+#
+
+require 'parallel'
+
+start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
+
+# Build an array of filename globs to process.
+# Only search file types that might use or define a helper.
+#
+extensions = %w[rb haml erb].map { |ext| "{ee/,}app/**/*.#{ext}" }
+
+# Build a hash of all the source files to search.
+# Key is filename, value is an array of the lines.
+#
+source_files = {}
+
+Dir.glob(extensions).each do |filename|
+ source_files[filename] = File.readlines(filename)
+end
+
+# Build an array of {method, file} hashes defined in app/helper/* files.
+#
+helpers = source_files.keys.grep(%r{app/helpers}).flat_map do |filename|
+ source_files[filename].flat_map do |line|
+ line =~ /def ([^(\s]+)/ ? [{ method: Regexp.last_match(1).chomp, file: filename }] : []
+ end
+end
+
+puts "Scanning #{source_files.size} files for #{helpers.size} helpers..."
+
+# Combine all the source code into one big string, because regex are fast.
+#
+source_code = source_files.values.flatten.join
+
+# Iterate over all the helpers and reject any that appear anywhere in the complete source.
+#
+unused = Parallel.flat_map(helpers, progress: 'Checking helpers') do |helper|
+ /(?<!def )#{Regexp.quote(helper[:method].sub(/^self\./, ''))}\W/.match?(source_code) ? [] : helper
+end
+
+finish = Process.clock_gettime(Process::CLOCK_MONOTONIC)
+
+if unused
+ puts "\nFound #{unused.size} unused helpers:\n\n"
+ unused.each { |helper| puts " - [ ] `#{helper[:file]}`: `#{helper[:method]}`" }
+ puts "\n"
+else
+ puts 'No unused helpers were found.'
+end
+
+puts "Finished in #{finish - start} seconds."
diff --git a/scripts/merge-auto-explain-logs b/scripts/merge-auto-explain-logs
index 114afc580d0..9379189a9d3 100755
--- a/scripts/merge-auto-explain-logs
+++ b/scripts/merge-auto-explain-logs
@@ -2,7 +2,7 @@
# frozen_string_literal: true
require 'json'
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
require 'zlib'
# Load query analyzers
diff --git a/scripts/remote_development/run-smoke-test-suite.sh b/scripts/remote_development/run-smoke-test-suite.sh
index 24362b2359e..eb8fbc23785 100755
--- a/scripts/remote_development/run-smoke-test-suite.sh
+++ b/scripts/remote_development/run-smoke-test-suite.sh
@@ -54,15 +54,23 @@ done < <(find . -path './**/remote_development/*.rb' -print0)
REVEAL_RUBOCOP_TODO=${REVEAL_RUBOCOP_TODO:-1} bundle exec rubocop --parallel --force-exclusion --no-server "${files_for_rubocop[@]}"
-###########
-## RSPEC ##
-###########
+##########
+## JEST ##
+##########
+
+printf "\n\n${BBlue}Running Remote Development frontend Jest specs${Color_Off}\n\n"
+
+yarn jest ee/spec/frontend/remote_development
-printf "\n\n${BBlue}Running Remote Development and related backend RSpec specs${Color_Off}\n\n"
+#######################
+## RSPEC NON-FEATURE ##
+#######################
+
+printf "\n\n${BBlue}Running Remote Development and related backend RSpec non-selenium specs${Color_Off}\n\n"
while IFS= read -r file; do
files_for_rspec+=("$file")
-done < <(find . -path './**/remote_development/*_spec.rb' | grep -v 'qa/qa')
+done < <(find . -path './**/remote_development/*_spec.rb' | grep -v 'qa/qa' | grep -v '/features/')
files_for_rspec+=(
"ee/spec/graphql/types/query_type_spec.rb"
@@ -74,13 +82,18 @@ files_for_rspec+=(
)
bin/rspec -r spec_helper "${files_for_rspec[@]}"
-##########
-## JEST ##
-##########
+###################
+## RSPEC FEATURE ##
+###################
-printf "\n\n${BBlue}Running Remote Development frontend Jest specs${Color_Off}\n\n"
+printf "\n\n${BBlue}Running Remote Development and related backend RSpec feature specs${Color_Off}\n\n"
-yarn jest ee/spec/frontend/remote_development
+while IFS= read -r file; do
+ files_for_rspec_selenium+=("$file")
+done < <(find . -path './**/remote_development/*_spec.rb' | grep -v 'qa/qa' | grep '/features/')
+
+printf "\n${BRed}SKIPPING FEATURE SPECS, THEY ARE CURRENTLY BROKEN. SEE https://gitlab.slack.com/archives/C3JJET4Q6/p1702638503864429 and https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140015${Color_Off} âŒâŒâŒ\n"
+# bin/rspec -r spec_helper "${files_for_rspec_selenium[@]}"
###########################
## Print success message ##
diff --git a/scripts/review_apps/automated_cleanup.rb b/scripts/review_apps/automated_cleanup.rb
index 154a73462bb..1e4fbf85f9b 100755
--- a/scripts/review_apps/automated_cleanup.rb
+++ b/scripts/review_apps/automated_cleanup.rb
@@ -308,7 +308,7 @@ if $PROGRAM_NAME == __FILE__
puts
timed('Review Apps cleanup') do
- automated_cleanup.perform_gitlab_environment_cleanup!(days_for_delete: 3)
+ automated_cleanup.perform_gitlab_environment_cleanup!(days_for_delete: 7)
end
puts
diff --git a/scripts/review_apps/base-config.yaml b/scripts/review_apps/base-config.yaml
index 70941b264c5..ef73d7bfd49 100644
--- a/scripts/review_apps/base-config.yaml
+++ b/scripts/review_apps/base-config.yaml
@@ -94,7 +94,7 @@ gitlab:
memory: 1500Mi
limits:
cpu: 700m
- memory: 2000Mi
+ memory: 2200Mi
hpa:
cpu:
targetAverageValue: 650m
diff --git a/scripts/rspec_helpers.sh b/scripts/rspec_helpers.sh
index 60b0db1eaf2..b0dc3bf2925 100644
--- a/scripts/rspec_helpers.sh
+++ b/scripts/rspec_helpers.sh
@@ -340,9 +340,18 @@ function retry_failed_rspec_examples() {
scripts/merge-reports "rspec/rspec-${CI_JOB_ID}.json" "${json_retry_file}"
junit_merge "${junit_retry_file}" "rspec/rspec-${CI_JOB_ID}.xml" --update-only
+ # The tests are flaky because they succeeded after being retried.
if [[ $rspec_run_status -eq 0 ]]; then
- # The test is flaky because it succeeded after being retried.
- # Make the pipeline "pass with warnings" if the flaky test is part of this MR.
+ # "53557338" is the project ID of https://gitlab.com/gitlab-org/quality/engineering-productivity/flaky-tests
+ if [ "$CREATE_RAILS_FLAKY_TEST_ISSUES" == "true" ]; then
+ bundle exec flaky-test-issues \
+ --token "${RAILS_FLAKY_TEST_PROJECT_TOKEN}" \
+ --project "53557338" \
+ --merge_request_iid "$CI_MERGE_REQUEST_IID" \
+ --input-files "rspec/rspec-retry-*.json" || true # We don't want this command to fail the job.
+ fi
+
+ # Make the pipeline "pass with warnings" if the flaky tests are part of this MR.
warn_on_successfully_retried_test
fi
diff --git a/scripts/setup/generate-as-if-foss-env.rb b/scripts/setup/generate-as-if-foss-env.rb
new file mode 100755
index 00000000000..21f1822503c
--- /dev/null
+++ b/scripts/setup/generate-as-if-foss-env.rb
@@ -0,0 +1,95 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+# In spec/scripts/setup/generate_as_if_foss_env_spec.rb we completely stub it
+require 'gitlab' unless Object.const_defined?(:Gitlab)
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
+
+class GenerateAsIfFossEnv
+ FOSS_JOBS = Set.new(%w[
+ build-assets-image
+ build-qa-image
+ compile-production-assets
+ compile-storybook
+ compile-test-assets
+ eslint
+ generate-apollo-graphql-schema
+ graphql-schema-dump
+ jest
+ jest-integration
+ qa:internal
+ qa:selectors
+ static-analysis
+ ]).freeze
+
+ def initialize
+ @client = Gitlab.client(endpoint: ENV['CI_API_V4_URL'], private_token: '')
+ @rspec_jobs = Set.new
+ @other_jobs = Set.new
+ end
+
+ def variables
+ @variables ||= generate_variables
+ end
+
+ def display
+ variables.each do |key, value|
+ puts "#{key}=#{value}"
+ end
+ end
+
+ private
+
+ attr_reader :client, :rspec_jobs, :other_jobs
+
+ def generate_variables
+ scan_jobs
+
+ {
+ START_AS_IF_FOSS: 'true',
+ RUBY_VERSION: ENV['RUBY_VERSION']
+ }.merge(rspec_variables).merge(other_jobs_variables)
+ end
+
+ def scan_jobs
+ each_job do |job|
+ detect_rspec(job) || detect_other_jobs(job)
+ end
+ end
+
+ def each_job
+ client.pipeline_jobs(ENV['CI_PROJECT_ID'], ENV['CI_PIPELINE_ID']).auto_paginate do |job|
+ yield(job)
+ end
+ end
+
+ def detect_rspec(job)
+ rspec_type = job.name[/^rspec(?:-all)? ([\w\-]+)/, 1]
+
+ rspec_jobs << rspec_type if rspec_type
+ end
+
+ def detect_other_jobs(job)
+ other_jobs << job.name if FOSS_JOBS.member?(job.name)
+ end
+
+ def rspec_variables
+ return {} if rspec_jobs.empty?
+
+ rspec_jobs.inject({ ENABLE_RSPEC: 'true' }) do |result, rspec|
+ result.merge("ENABLE_RSPEC_#{job_name_to_variable_name(rspec)}": 'true')
+ end
+ end
+
+ def other_jobs_variables
+ other_jobs.inject({}) do |result, job_name|
+ result.merge("ENABLE_#{job_name_to_variable_name(job_name)}": 'true')
+ end
+ end
+
+ def job_name_to_variable_name(name)
+ name.upcase.tr('-: ', '_')
+ end
+end
+
+GenerateAsIfFossEnv.new.display if $PROGRAM_NAME == __FILE__
diff --git a/scripts/validate-monorepo-gem b/scripts/validate-monorepo-gem
new file mode 100755
index 00000000000..9c379072102
--- /dev/null
+++ b/scripts/validate-monorepo-gem
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [[ $# -ne 1 ]]; then
+ echo "usage: $0 <gem-name>"
+ exit 1
+fi
+
+if gem specification --remote --ruby "$1"; then
+ exit 0
+fi
+
+if gem specification --remote --ruby --pre "$1"; then
+ exit 0
+fi
+
+echo "The '$1' is missing. Push stub gem to RubyGems with version 0.0.1."
+exit 1
diff --git a/scripts/verify-tff-mapping b/scripts/verify-tff-mapping
index 330bbff3aed..abbf30c7e2d 100755
--- a/scripts/verify-tff-mapping
+++ b/scripts/verify-tff-mapping
@@ -1,7 +1,7 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
require 'test_file_finder'
# These tests run a sanity check on the mapping file `tests.yml`
@@ -229,20 +229,29 @@ tests = [
},
{
+ explanation: 'New CI templates should run CI template tests: https://gitlab.com/gitlab-org/quality/engineering-productivity/master-broken-incidents/-/issues/4440#note_1675547256',
+ changed_file: 'lib/gitlab/ci/templates/Diffblue-Cover.gitlab-ci.yml',
+ expected: ['spec/lib/gitlab/ci/templates/templates_spec.rb', 'ee/spec/lib/ee/gitlab/ci/templates/templates_spec.rb']
+ },
+
+ {
explanation: 'Map FOSS rake tasks',
changed_file: 'lib/tasks/import.rake',
expected: ['spec/tasks/import_rake_spec.rb']
},
+
{
explanation: 'Map EE rake tasks',
changed_file: 'ee/lib/tasks/geo.rake',
expected: ['ee/spec/tasks/geo_rake_spec.rb']
},
+
{
explanation: 'Map controllers to request specs',
changed_file: 'app/controllers/admin/abuse_reports_controller.rb',
expected: ['spec/requests/admin/abuse_reports_controller_spec.rb']
},
+
{
explanation: 'Map EE controllers to controller and request specs',
changed_file: 'ee/app/controllers/users_controller.rb',
diff --git a/spec/bin/feature_flag_spec.rb b/spec/bin/feature_flag_spec.rb
index d1e4be5be28..f9caa5549ca 100644
--- a/spec/bin/feature_flag_spec.rb
+++ b/spec/bin/feature_flag_spec.rb
@@ -7,12 +7,28 @@ load File.expand_path('../../bin/feature-flag', __dir__)
RSpec.describe 'bin/feature-flag', feature_category: :feature_flags do
using RSpec::Parameterized::TableSyntax
+ let(:groups) do
+ {
+ geo: { label: 'group::geo' }
+ }
+ end
+
+ before do
+ allow(HTTParty)
+ .to receive(:get)
+ .with(FeatureFlagOptionParser::WWW_GITLAB_COM_GROUPS_JSON, format: :plain)
+ .and_return(groups.to_json)
+ end
+
describe FeatureFlagCreator do
- let(:argv) { %w[feature-flag-name -t development -g group::geo -i https://url -m http://url] }
+ let(:argv) { %w[feature-flag-name -t gitlab_com_derisk -g group::geo -a https://url -i https://url -m http://url -u username -M 16.6] }
let(:options) { FeatureFlagOptionParser.parse(argv) }
let(:creator) { described_class.new(options) }
let(:existing_flags) do
- { 'existing_feature_flag' => File.join('config', 'feature_flags', 'development', 'existing_feature_flag.yml') }
+ {
+ 'existing_feature_flag' =>
+ File.join('config', 'feature_flags', 'gitlab_com_derisk', 'existing_feature_flag.yml')
+ }
end
before do
@@ -31,7 +47,7 @@ RSpec.describe 'bin/feature-flag', feature_category: :feature_flags do
it 'properly creates a feature flag' do
expect(File).to receive(:write).with(
- File.join('config', 'feature_flags', 'development', 'feature_flag_name.yml'),
+ File.join('config', 'feature_flags', 'gitlab_com_derisk', 'feature_flag_name.yml'),
anything)
expect do
@@ -108,85 +124,97 @@ RSpec.describe 'bin/feature-flag', feature_category: :feature_flags do
end
describe '.read_type' do
- let(:type) { 'development' }
+ before do
+ stub_const('FeatureFlagOptionParser::TYPES',
+ development: { description: 'short' },
+ deprecated: { description: 'deprecated', deprecated: true },
+ licensed: { description: 'licensed' }
+ )
+ end
- context 'when there is only a single type defined' do
- before do
- stub_const('FeatureFlagOptionParser::TYPES',
- development: { description: 'short' }
- )
- end
+ context 'when valid type is given' do
+ let(:type) { 'development' }
- it 'returns that type' do
- expect(described_class.read_type).to eq(:development)
+ it 'reads type from stdin' do
+ expect(Readline).to receive(:readline).and_return(type)
+ expect do
+ expect(described_class.read_type).to eq(:development)
+ end.to output(/Specify the feature flag type/).to_stdout
end
end
- context 'when there is deprecated feature flag type' do
- before do
- stub_const('FeatureFlagOptionParser::TYPES',
- development: { description: 'short' },
- deprecated: { description: 'deprecated', deprecated: true }
- )
+ context 'when valid index is given' do
+ it 'picks the type successfully' do
+ expect(Readline).to receive(:readline).and_return('3')
+ expect do
+ expect(described_class.read_type).to eq(:licensed)
+ end.to output(/Specify the feature flag type./).to_stdout
end
+ end
- context 'and deprecated type is given' do
- let(:type) { 'deprecated' }
+ context 'when deprecated type is given' do
+ let(:type) { 'deprecated' }
- it 'shows error message and retries' do
- expect(Readline).to receive(:readline).and_return(type)
- expect(Readline).to receive(:readline).and_raise('EOF')
+ it 'shows error message and retries' do
+ expect(Readline).to receive(:readline).and_return(type)
+ expect(Readline).to receive(:readline).and_raise('EOF')
- expect do
- expect { described_class.read_type }.to raise_error(/EOF/)
- end.to output(/Specify the feature flag type/).to_stdout
- .and output(/Invalid type specified/).to_stderr
- end
+ expect do
+ expect { described_class.read_type }.to raise_error(/EOF/)
+ end.to output(/Specify the feature flag type/).to_stdout
+ .and output(/Invalid type specified/).to_stderr
end
end
- context 'when there are many types defined' do
- before do
- stub_const('FeatureFlagOptionParser::TYPES',
- development: { description: 'short' },
- licensed: { description: 'licensed' }
- )
- end
+ context 'when invalid type is given' do
+ let(:type) { 'invalid' }
- it 'reads type from stdin' do
+ it 'shows error message and retries' do
expect(Readline).to receive(:readline).and_return(type)
+ expect(Readline).to receive(:readline).and_raise('EOF')
+
expect do
- expect(described_class.read_type).to eq(:development)
+ expect { described_class.read_type }.to raise_error(/EOF/)
end.to output(/Specify the feature flag type/).to_stdout
+ .and output(/Invalid type specified/).to_stderr
end
+ end
- context 'when invalid type is given' do
- let(:type) { 'invalid' }
-
- it 'shows error message and retries' do
- expect(Readline).to receive(:readline).and_return(type)
- expect(Readline).to receive(:readline).and_raise('EOF')
+ context 'when invalid index is given' do
+ it 'shows error message and retries' do
+ expect(Readline).to receive(:readline).and_return('12')
+ expect(Readline).to receive(:readline).and_raise('EOF')
- expect do
- expect { described_class.read_type }.to raise_error(/EOF/)
- end.to output(/Specify the feature flag type/).to_stdout
- .and output(/Invalid type specified/).to_stderr
- end
+ expect do
+ expect { described_class.read_type }.to raise_error(/EOF/)
+ end.to output(/Specify the feature flag type/).to_stdout
+ .and output(/Invalid type specified/).to_stderr
end
end
end
describe '.read_group' do
- let(:group) { 'group::geo' }
+ context 'when valid group is given' do
+ let(:group) { 'group::geo' }
- it 'reads type from stdin' do
- expect(Readline).to receive(:readline).and_return(group)
- expect do
- expect(described_class.read_group).to eq('group::geo')
- end.to output(/Specify the group introducing the feature flag/).to_stdout
+ it 'reads group from stdin' do
+ expect(Readline).to receive(:readline).and_return(group)
+ expect do
+ expect(described_class.read_group).to eq('group::geo')
+ end.to output(/Specify the group label to which the feature flag belongs, from the following list/).to_stdout
+ end
end
- context 'invalid group given' do
+ context 'when valid index is given' do
+ it 'picks the group successfully' do
+ expect(Readline).to receive(:readline).and_return('1')
+ expect do
+ expect(described_class.read_group).to eq('group::geo')
+ end.to output(/Specify the group label to which the feature flag belongs, from the following list/).to_stdout
+ end
+ end
+
+ context 'with invalid group given' do
let(:type) { 'invalid' }
it 'shows error message and retries' do
@@ -195,78 +223,151 @@ RSpec.describe 'bin/feature-flag', feature_category: :feature_flags do
expect do
expect { described_class.read_group }.to raise_error(/EOF/)
- end.to output(/Specify the group introducing the feature flag/).to_stdout
- .and output(/The group needs to include/).to_stderr
+ end.to output(/Specify the group label to which the feature flag belongs, from the following list/).to_stdout
+ .and output(/The group label isn't in the above labels list/).to_stderr
+ end
+ end
+
+ context 'when invalid index is given' do
+ it 'shows error message and retries' do
+ expect(Readline).to receive(:readline).and_return('12')
+ expect(Readline).to receive(:readline).and_raise('EOF')
+
+ expect do
+ expect { described_class.read_group }.to raise_error(/EOF/)
+ end.to output(/Specify the group label to which the feature flag belongs, from the following list/).to_stdout
+ .and output(/The group label isn't in the above labels list/).to_stderr
end
end
end
- describe '.read_introduced_by_url' do
- let(:url) { 'https://merge-request' }
+ shared_examples 'read_url' do |method, prompt|
+ context 'with valid URL given' do
+ let(:url) { 'https://merge-request' }
- it 'reads type from stdin' do
- expect(Readline).to receive(:readline).and_return(url)
- expect do
- expect(described_class.read_introduced_by_url).to eq('https://merge-request')
- end.to output(/URL of the MR introducing the feature flag/).to_stdout
+ it 'reads URL from stdin' do
+ expect(Readline).to receive(:readline).and_return(url)
+ expect(HTTParty).to receive(:head).with(url).and_return(instance_double(HTTParty::Response, success?: true))
+
+ expect do
+ expect(described_class.public_send(method)).to eq('https://merge-request')
+ end.to output(/#{prompt}/).to_stdout
+ end
end
- context 'empty URL given' do
+ context 'with invalid URL given' do
+ let(:url) { 'https://invalid' }
+
+ it 'shows error message and retries' do
+ expect(Readline).to receive(:readline).and_return(url)
+ expect(HTTParty).to receive(:head).with(url).and_return(instance_double(HTTParty::Response, success?: false))
+ expect(Readline).to receive(:readline).and_raise('EOF')
+
+ expect do
+ expect { described_class.public_send(method) }.to raise_error(/EOF/)
+ end.to output(/#{prompt}/).to_stdout
+ .and output(/URL '#{url}' isn't valid/).to_stderr
+ end
+ end
+
+ context 'with empty URL given' do
let(:url) { '' }
it 'skips entry' do
expect(Readline).to receive(:readline).and_return(url)
+
expect do
- expect(described_class.read_introduced_by_url).to be_nil
- end.to output(/URL of the MR introducing the feature flag/).to_stdout
+ expect(described_class.public_send(method)).to be_nil
+ end.to output(/#{prompt}/).to_stdout
end
end
- context 'invalid URL given' do
- let(:url) { 'invalid' }
+ context 'with a non-URL given' do
+ let(:url) { 'malformed' }
it 'shows error message and retries' do
expect(Readline).to receive(:readline).and_return(url)
expect(Readline).to receive(:readline).and_raise('EOF')
expect do
- expect { described_class.read_introduced_by_url }.to raise_error(/EOF/)
- end.to output(/URL of the MR introducing the feature flag/).to_stdout
+ expect { described_class.public_send(method) }.to raise_error(/EOF/)
+ end.to output(/#{prompt}/).to_stdout
.and output(/URL needs to start with/).to_stderr
end
end
end
+ describe '.read_feature_issue_url' do
+ it_behaves_like 'read_url', :read_feature_issue_url, 'URL of the original feature issue'
+ end
+
+ describe '.read_introduced_by_url' do
+ it_behaves_like 'read_url', :read_introduced_by_url, 'URL of the MR introducing the feature flag'
+ end
+
describe '.read_rollout_issue_url' do
- let(:options) { double('options', name: 'foo', type: :development) }
- let(:url) { 'https://issue' }
+ let(:options) do
+ FeatureFlagOptionParser::Options.new({
+ name: 'foo',
+ username: 'joe',
+ type: :gitlab_com_derisk,
+ introduced_by_url: 'https://introduced_by_url',
+ feature_issue_url: 'https://feature_issue_url',
+ milestone: '16.6',
+ group: 'group::geo'
+ })
+ end
- it 'reads type from stdin' do
- expect(Readline).to receive(:readline).and_return(url)
- expect do
- expect(described_class.read_rollout_issue_url(options)).to eq('https://issue')
- end.to output(/URL of the rollout issue/).to_stdout
+ context 'with valid URL given' do
+ let(:url) { 'https://rollout_issue_url' }
+
+ it 'reads type from stdin' do
+ expect(described_class).to receive(:copy_to_clipboard!).and_return(true)
+ expect(Readline).to receive(:readline).and_return('') # enter to open the new issue url
+ expect(described_class).to receive(:open_url!).and_return(true)
+ expect(Readline).to receive(:readline).and_return(url)
+ expect(HTTParty).to receive(:head).with(url).and_return(instance_double(HTTParty::Response, success?: true))
+
+ expect do
+ expect(described_class.read_rollout_issue_url(options)).to eq(url)
+ end.to output(/URL of the rollout issue/).to_stdout
+ end
end
- context 'invalid URL given' do
- let(:type) { 'invalid' }
+ context 'with invalid URL given' do
+ let(:url) { 'https://invalid' }
it 'shows error message and retries' do
- expect(Readline).to receive(:readline).and_return(type)
+ expect(described_class).to receive(:copy_to_clipboard!).and_return(true)
+ expect(Readline).to receive(:readline).and_return('') # enter to open the new issue url
+ expect(described_class).to receive(:open_url!).and_return(true)
+ expect(Readline).to receive(:readline).and_return(url)
+ expect(HTTParty).to receive(:head).with(url).and_return(instance_double(HTTParty::Response, success?: false))
expect(Readline).to receive(:readline).and_raise('EOF')
expect do
expect { described_class.read_rollout_issue_url(options) }.to raise_error(/EOF/)
end.to output(/URL of the rollout issue/).to_stdout
- .and output(/URL needs to start/).to_stderr
+ .and output(/URL '#{url}' isn't valid/).to_stderr
end
end
- end
- describe '.read_ee_only' do
- let(:options) { double('options', name: 'foo', type: :development) }
+ context 'with a non-URL given' do
+ let(:url) { 'malformed' }
+
+ it 'shows error message and retries' do
+ expect(described_class).to receive(:copy_to_clipboard!).and_return(true)
+ expect(Readline).to receive(:readline).and_return('') # enter to open the new issue url
+ expect(described_class).to receive(:open_url!).and_return(true)
+ expect(Readline).to receive(:readline).and_return(url)
+ expect(Readline).to receive(:readline).and_raise('EOF')
- it { expect(described_class.read_ee_only(options)).to eq(false) }
+ expect do
+ expect { described_class.read_rollout_issue_url(options) }.to raise_error(/EOF/)
+ end.to output(/URL of the rollout issue/).to_stdout
+ .and output(/URL needs to start/).to_stderr
+ end
+ end
end
end
end
diff --git a/spec/components/pajamas/avatar_component_spec.rb b/spec/components/pajamas/avatar_component_spec.rb
index d59ef390fad..9c1a40ad5b5 100644
--- a/spec/components/pajamas/avatar_component_spec.rb
+++ b/spec/components/pajamas/avatar_component_spec.rb
@@ -5,16 +5,25 @@ RSpec.describe Pajamas::AvatarComponent, type: :component do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project) }
let_it_be(:group) { create(:group) }
+ let_it_be(:email) { Pajamas::AvatarEmail.new('kitty@cat.com') }
let(:options) { {} }
before do
- render_inline(described_class.new(record, **options))
+ render_inline(described_class.new(item, **options))
end
describe "avatar shape" do
context "for a User" do
- let(:record) { user }
+ let(:item) { user }
+
+ it "has a circle shape" do
+ expect(page).to have_css ".gl-avatar.gl-avatar-circle"
+ end
+ end
+
+ context "for an Email" do
+ let(:item) { email }
it "has a circle shape" do
expect(page).to have_css ".gl-avatar.gl-avatar-circle"
@@ -22,7 +31,7 @@ RSpec.describe Pajamas::AvatarComponent, type: :component do
end
context "for a Project" do
- let(:record) { project }
+ let(:item) { project }
it "has default shape (rect)" do
expect(page).to have_css ".gl-avatar"
@@ -31,7 +40,7 @@ RSpec.describe Pajamas::AvatarComponent, type: :component do
end
context "for a Group" do
- let(:record) { group }
+ let(:item) { group }
it "has default shape (rect)" do
expect(page).to have_css ".gl-avatar"
@@ -42,11 +51,11 @@ RSpec.describe Pajamas::AvatarComponent, type: :component do
describe "avatar image" do
context "when it has an uploaded image" do
- let(:record) { project }
+ let(:item) { project }
before do
- allow(record).to receive(:avatar_url).and_return "/example.png"
- render_inline(described_class.new(record, **options))
+ allow(item).to receive(:avatar_url).and_return "/example.png"
+ render_inline(described_class.new(item, **options))
end
it "uses the avatar_url as image src" do
@@ -73,14 +82,14 @@ RSpec.describe Pajamas::AvatarComponent, type: :component do
end
context "when a project or group has no uploaded image" do
- let(:record) { project }
+ let(:item) { project }
- it "uses an identicon with the record's initial" do
- expect(page).to have_css "div.gl-avatar.gl-avatar-identicon", text: record.name[0].upcase
+ it "uses an identicon with the item's initial" do
+ expect(page).to have_css "div.gl-avatar.gl-avatar-identicon", text: item.name[0].upcase
end
- context "when the record has no id" do
- let(:record) { build :group }
+ context "when the item has no id" do
+ let(:item) { build :group }
it "uses an identicon with default background color" do
expect(page).to have_css "div.gl-avatar.gl-avatar-identicon-bg1"
@@ -89,16 +98,34 @@ RSpec.describe Pajamas::AvatarComponent, type: :component do
end
context "when a user has no uploaded image" do
- let(:record) { user }
+ let(:item) { user }
it "uses a gravatar" do
expect(rendered_content).to match /gravatar\.com/
end
end
+
+ context "when an email has no linked user" do
+ context "when the email is blank" do
+ let(:item) { Pajamas::AvatarEmail.new('') }
+
+ it "uses the default avatar" do
+ expect(rendered_content).to match /no_avatar/
+ end
+ end
+
+ context "when the email is not blank" do
+ let(:item) { email }
+
+ it "uses a agravatar" do
+ expect(rendered_content).to match /gravatar\.com/
+ end
+ end
+ end
end
describe "options" do
- let(:record) { user }
+ let(:item) { user }
describe "alt" do
context "with a value" do
@@ -110,8 +137,8 @@ RSpec.describe Pajamas::AvatarComponent, type: :component do
end
context "without a value" do
- it "uses the record's name as alt text" do
- expect(page).to have_css ".gl-avatar[alt='#{record.name}']"
+ it "uses the item's name as alt text" do
+ expect(page).to have_css ".gl-avatar[alt='#{item.name}']"
end
end
end
diff --git a/spec/components/previews/pajamas/banner_component_preview.rb b/spec/components/previews/pajamas/banner_component_preview.rb
index 4c1d64e32f6..ae86ca87aee 100644
--- a/spec/components/previews/pajamas/banner_component_preview.rb
+++ b/spec/components/previews/pajamas/banner_component_preview.rb
@@ -18,7 +18,7 @@ module Pajamas
render(Pajamas::BannerComponent.new(
button_text: button_text,
button_link: button_link,
- svg_path: "illustrations/autodevops.svg",
+ svg_path: "illustrations/devops-sm.svg",
variant: variant
)) do |c|
content_tag :p, content
diff --git a/spec/components/projects/ml/models_index_component_spec.rb b/spec/components/projects/ml/models_index_component_spec.rb
index f020ae5bbef..1dab4c3c74a 100644
--- a/spec/components/projects/ml/models_index_component_spec.rb
+++ b/spec/components/projects/ml/models_index_component_spec.rb
@@ -4,6 +4,7 @@ require "spec_helper"
RSpec.describe Projects::Ml::ModelsIndexComponent, type: :component, feature_category: :mlops do
let_it_be(:project) { build_stubbed(:project) }
+ let_it_be(:user) { project.owner }
let_it_be(:model1) { build_stubbed(:ml_models, :with_latest_version_and_package, project: project) }
let_it_be(:model2) { build_stubbed(:ml_models, project: project) }
let_it_be(:models) { [model1, model2] }
@@ -23,48 +24,66 @@ RSpec.describe Projects::Ml::ModelsIndexComponent, type: :component, feature_cat
end
subject(:component) do
- described_class.new(model_count: 5, paginator: paginator)
+ described_class.new(project: project, current_user: user, model_count: 5, paginator: paginator)
end
describe 'rendered' do
let(:element) { page.find("#js-index-ml-models") }
- before do
- allow(model1).to receive(:version_count).and_return(1)
- allow(model2).to receive(:version_count).and_return(0)
- render_inline component
+ context 'when user can write model registry' do
+ before do
+ allow(model1).to receive(:version_count).and_return(1)
+ allow(model2).to receive(:version_count).and_return(0)
+ render_inline component
+ end
+
+ it 'renders element with view_model' do
+ expect(Gitlab::Json.parse(element['data-view-model'])).to eq({
+ 'models' => [
+ {
+ 'name' => model1.name,
+ 'version' => model1.latest_version.version,
+ 'path' => "/#{project.full_path}/-/ml/models/#{model1.id}",
+ 'versionPackagePath' => "/#{project.full_path}/-/packages/#{model1.latest_version.package_id}",
+ 'versionPath' => "/#{project.full_path}/-/ml/models/#{model1.id}/versions/#{model1.latest_version.id}",
+ 'versionCount' => 1
+ },
+ {
+ 'name' => model2.name,
+ 'path' => "/#{project.full_path}/-/ml/models/#{model2.id}",
+ 'version' => nil,
+ 'versionPackagePath' => nil,
+ 'versionPath' => nil,
+ 'versionCount' => 0
+ }
+ ],
+ 'pageInfo' => {
+ 'hasNextPage' => true,
+ 'hasPreviousPage' => false,
+ 'startCursor' => 'abcde',
+ 'endCursor' => 'defgh'
+ },
+ 'modelCount' => 5,
+ 'createModelPath' => "/#{project.full_path}/-/ml/models/new",
+ 'canWriteModelRegistry' => true,
+ 'mlflowTrackingUrl' => "http://localhost/api/v4/projects/#{project.id}/ml/mlflow/api/2.0/mlflow/"
+ })
+ end
end
- it 'renders element with view_model' do
- element = page.find("#js-index-ml-models")
+ context 'when user cannot write model registry' do
+ before do
+ allow(Ability).to receive(:allowed?).and_call_original
+ allow(Ability).to receive(:allowed?)
+ .with(user, :write_model_registry, project)
+ .and_return(false)
- expect(Gitlab::Json.parse(element['data-view-model'])).to eq({
- 'models' => [
- {
- 'name' => model1.name,
- 'version' => model1.latest_version.version,
- 'path' => "/#{project.full_path}/-/ml/models/#{model1.id}",
- 'versionPackagePath' => "/#{project.full_path}/-/packages/#{model1.latest_version.package_id}",
- 'versionPath' => "/#{project.full_path}/-/ml/models/#{model1.id}/versions/#{model1.latest_version.id}",
- 'versionCount' => 1
- },
- {
- 'name' => model2.name,
- 'path' => "/#{project.full_path}/-/ml/models/#{model2.id}",
- 'version' => nil,
- 'versionPackagePath' => nil,
- 'versionPath' => nil,
- 'versionCount' => 0
- }
- ],
- 'pageInfo' => {
- 'hasNextPage' => true,
- 'hasPreviousPage' => false,
- 'startCursor' => 'abcde',
- 'endCursor' => 'defgh'
- },
- 'modelCount' => 5
- })
+ render_inline component
+ end
+
+ it 'canWriteModelRegistry is false' do
+ expect(Gitlab::Json.parse(element['data-view-model'])['canWriteModelRegistry']).to eq(false)
+ end
end
end
end
diff --git a/spec/components/projects/ml/show_ml_model_component_spec.rb b/spec/components/projects/ml/show_ml_model_component_spec.rb
index 34b8cbe96ca..d12692ca792 100644
--- a/spec/components/projects/ml/show_ml_model_component_spec.rb
+++ b/spec/components/projects/ml/show_ml_model_component_spec.rb
@@ -35,6 +35,7 @@ RSpec.describe Projects::Ml::ShowMlModelComponent, type: :component, feature_cat
'latestVersion' => {
'version' => model1.latest_version.version,
'description' => model1.latest_version.description,
+ 'path' => "/#{project.full_path}/-/ml/models/#{model1.id}/versions/#{model1.latest_version.id}",
'projectPath' => "/#{project.full_path}",
'packageId' => model1.latest_version.package_id,
'candidate' => {
diff --git a/spec/controllers/admin/projects_controller_spec.rb b/spec/controllers/admin/projects_controller_spec.rb
index d81b067ffb6..95986b5c034 100644
--- a/spec/controllers/admin/projects_controller_spec.rb
+++ b/spec/controllers/admin/projects_controller_spec.rb
@@ -49,11 +49,11 @@ RSpec.describe Admin::ProjectsController do
it 'does not have N+1 queries', :use_clean_rails_memory_store_caching, :request_store do
get :index
- control_count = ActiveRecord::QueryRecorder.new { get :index }.count
+ control = ActiveRecord::QueryRecorder.new { get :index }
create(:project)
- expect { get :index }.not_to exceed_query_limit(control_count)
+ expect { get :index }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/controllers/admin/runners_controller_spec.rb b/spec/controllers/admin/runners_controller_spec.rb
index d88fe41a869..186e1b13856 100644
--- a/spec/controllers/admin/runners_controller_spec.rb
+++ b/spec/controllers/admin/runners_controller_spec.rb
@@ -89,11 +89,11 @@ RSpec.describe Admin::RunnersController, feature_category: :fleet_visibility do
it 'avoids N+1 queries', :request_store do
get :edit, params: { id: runner.id }
- control_count = ActiveRecord::QueryRecorder.new { get :edit, params: { id: runner.id } }.count
+ control = ActiveRecord::QueryRecorder.new { get :edit, params: { id: runner.id } }
# There is one additional query looking up subject.group in ProjectPolicy for the
# needs_new_sso_session permission
- expect { get :edit, params: { id: runner.id } }.not_to exceed_query_limit(control_count + 1)
+ expect { get :edit, params: { id: runner.id } }.not_to exceed_query_limit(control).with_threshold(1)
expect(response).to have_gitlab_http_status(:ok)
end
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index f4384dbaa69..715ded875fe 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -103,32 +103,6 @@ RSpec.describe ApplicationController, feature_category: :shared do
end
end
- describe 'session expiration' do
- controller(described_class) do
- def index
- render html: 'authenticated'
- end
- end
-
- context 'authenticated user' do
- it 'does not set the expire_after option' do
- sign_in(create(:user))
-
- get :index
-
- expect(request.env['rack.session.options'][:expire_after]).to be_nil
- end
- end
-
- context 'unauthenticated user' do
- it 'sets the expire_after option' do
- get :index
-
- expect(request.env['rack.session.options'][:expire_after]).to eq(Settings.gitlab['unauthenticated_session_expire_delay'])
- end
- end
- end
-
describe 'response format' do
controller(described_class) do
def index
@@ -470,7 +444,7 @@ RSpec.describe ApplicationController, feature_category: :shared do
enforce_terms
- expect { get :index }.not_to exceed_query_limit(control.count).with_threshold(1)
+ expect { get :index }.not_to exceed_query_limit(control).with_threshold(1)
end
context 'when terms are enforced' do
diff --git a/spec/controllers/concerns/issuable_collections_spec.rb b/spec/controllers/concerns/issuable_collections_spec.rb
index 9eb0f36cb37..051172ea6da 100644
--- a/spec/controllers/concerns/issuable_collections_spec.rb
+++ b/spec/controllers/concerns/issuable_collections_spec.rb
@@ -74,7 +74,6 @@ RSpec.describe IssuableCollections do
assignee_username: 'user1',
author_id: '2',
author_username: 'user2',
- authorized_only: 'yes',
confidential: true,
due_date: '2017-01-01',
group_id: '3',
diff --git a/spec/controllers/concerns/renders_commits_spec.rb b/spec/controllers/concerns/renders_commits_spec.rb
index 45f194b63e7..754107efee8 100644
--- a/spec/controllers/concerns/renders_commits_spec.rb
+++ b/spec/controllers/concerns/renders_commits_spec.rb
@@ -46,15 +46,15 @@ RSpec.describe RendersCommits do
it 'avoids N + 1', :request_store do
stub_const("MergeRequestDiff::COMMITS_SAFE_SIZE", 5)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
go
- end.count
+ end
stub_const("MergeRequestDiff::COMMITS_SAFE_SIZE", 15)
expect do
go
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
@@ -73,7 +73,7 @@ RSpec.describe RendersCommits do
expect do
subject.prepare_commits_for_rendering(merge_request.commits)
merge_request.commits.each(&:latest_pipeline)
- end.not_to exceed_all_query_limit(control.count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/controllers/groups/labels_controller_spec.rb b/spec/controllers/groups/labels_controller_spec.rb
index 3dcf41941bb..38e39da2733 100644
--- a/spec/controllers/groups/labels_controller_spec.rb
+++ b/spec/controllers/groups/labels_controller_spec.rb
@@ -62,7 +62,9 @@ RSpec.describe Groups::LabelsController, feature_category: :team_planning do
create_list(:group_label, 3, group: group)
# some n+1 queries still exist
- expect { get :index, params: { group_id: group.to_param } }.not_to exceed_all_query_limit(control.count).with_threshold(10)
+ expect do
+ get :index, params: { group_id: group.to_param }
+ end.not_to exceed_all_query_limit(control).with_threshold(10)
expect(assigns(:labels).count).to eq(4)
end
end
diff --git a/spec/controllers/groups/releases_controller_spec.rb b/spec/controllers/groups/releases_controller_spec.rb
index 4b4333dea0e..1ca540ebb99 100644
--- a/spec/controllers/groups/releases_controller_spec.rb
+++ b/spec/controllers/groups/releases_controller_spec.rb
@@ -62,12 +62,12 @@ RSpec.describe Groups::ReleasesController do
context 'N+1 queries' do
it 'avoids N+1 database queries' do
- control_count = ActiveRecord::QueryRecorder.new { subject }.count
+ control = ActiveRecord::QueryRecorder.new { subject }
create_list(:release, 5, project: project)
create_list(:release, 5, project: private_project)
- expect { subject }.not_to exceed_query_limit(control_count)
+ expect { subject }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/controllers/import/bitbucket_server_controller_spec.rb b/spec/controllers/import/bitbucket_server_controller_spec.rb
index 3266c4d4d39..7e036b75e76 100644
--- a/spec/controllers/import/bitbucket_server_controller_spec.rb
+++ b/spec/controllers/import/bitbucket_server_controller_spec.rb
@@ -112,6 +112,7 @@ RSpec.describe Import::BitbucketServerController, feature_category: :importers d
let(:token) { 'token' }
let(:username) { 'bitbucket-user' }
let(:url) { 'http://localhost:7990/bitbucket' }
+ let(:experiment) { instance_double(ApplicationExperiment) }
it 'clears out existing session' do
post :configure
@@ -124,6 +125,17 @@ RSpec.describe Import::BitbucketServerController, feature_category: :importers d
expect(response).to redirect_to(status_import_bitbucket_server_path)
end
+ it 'tracks default_to_import_tab experiment' do
+ allow(controller)
+ .to receive(:experiment)
+ .with(:default_to_import_tab, actor: user)
+ .and_return(experiment)
+
+ expect(experiment).to receive(:track).with(:authentication, property: :bitbucket_server)
+
+ post :configure
+ end
+
it 'sets the session variables' do
allow(controller).to receive(:allow_local_requests?).and_return(true)
diff --git a/spec/controllers/import/bulk_imports_controller_spec.rb b/spec/controllers/import/bulk_imports_controller_spec.rb
index 9b41089f4b8..54192f010ed 100644
--- a/spec/controllers/import/bulk_imports_controller_spec.rb
+++ b/spec/controllers/import/bulk_imports_controller_spec.rb
@@ -303,27 +303,11 @@ RSpec.describe Import::BulkImportsController, feature_category: :importers do
describe 'GET details' do
subject(:request) { get :details }
- context 'when bulk_import_details_page feature flag is enabled' do
- before do
- stub_feature_flags(bulk_import_details_page: true)
- request
- end
-
- it 'responds with a 200 and shows the template', :aggregate_failures do
- expect(response).to have_gitlab_http_status(:ok)
- expect(response).to render_template(:details)
- end
- end
+ it 'responds with a 200 and shows the template', :aggregate_failures do
+ request
- context 'when bulk_import_details_page feature flag is disabled' do
- before do
- stub_feature_flags(bulk_import_details_page: false)
- request
- end
-
- it 'responds with a 404' do
- expect(response).to have_gitlab_http_status(:not_found)
- end
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to render_template(:details)
end
end
diff --git a/spec/controllers/import/fogbugz_controller_spec.rb b/spec/controllers/import/fogbugz_controller_spec.rb
index 273dfd6a9c7..45b959b1b78 100644
--- a/spec/controllers/import/fogbugz_controller_spec.rb
+++ b/spec/controllers/import/fogbugz_controller_spec.rb
@@ -17,6 +17,7 @@ RSpec.describe Import::FogbugzController, feature_category: :importers do
end
describe 'POST #callback' do
+ let(:experiment) { instance_double(ApplicationExperiment) }
let(:xml_response) { %(<?xml version=\"1.0\" encoding=\"UTF-8\"?><response><token><![CDATA[#{token}]]></token></response>) }
before do
@@ -31,6 +32,17 @@ RSpec.describe Import::FogbugzController, feature_category: :importers do
expect(response).to redirect_to(new_user_map_import_fogbugz_path)
end
+ it 'tracks default_to_import_tab experiment' do
+ allow(controller)
+ .to receive(:experiment)
+ .with(:default_to_import_tab, actor: user)
+ .and_return(experiment)
+
+ expect(experiment).to receive(:track).with(:successfully_authenticated, property: :fogbugz)
+
+ post :callback, params: { uri: uri, email: 'test@example.com', password: 'mypassword' }
+ end
+
it 'preserves namespace_id query param on success' do
post :callback, params: { uri: uri, email: 'test@example.com', password: 'mypassword', namespace_id: namespace_id }
@@ -46,12 +58,27 @@ RSpec.describe Import::FogbugzController, feature_category: :importers do
expect(response).to redirect_to(new_import_fogbugz_url(namespace_id: namespace_id))
end
- it 'redirects to new page form when client raises authentication exception' do
- allow(::Gitlab::FogbugzImport::Client).to receive(:new).and_raise(::Fogbugz::AuthenticationException)
+ context 'when client raises authentication exception' do
+ before do
+ allow(::Gitlab::FogbugzImport::Client).to receive(:new).and_raise(::Fogbugz::AuthenticationException)
+ end
- post :callback, params: { uri: uri, email: 'test@example.com', password: 'mypassword' }
+ it 'redirects to new page form' do
+ post :callback, params: { uri: uri, email: 'test@example.com', password: 'mypassword' }
+
+ expect(response).to redirect_to(new_import_fogbugz_url)
+ end
- expect(response).to redirect_to(new_import_fogbugz_url)
+ it 'does not track default_to_import_tab experiment when client raises authentication exception' do
+ allow(controller)
+ .to receive(:experiment)
+ .with(:default_to_import_tab, actor: user)
+ .and_return(experiment)
+
+ expect(experiment).not_to receive(:track)
+
+ post :callback, params: { uri: uri, email: 'test@example.com', password: 'mypassword' }
+ end
end
context 'verify url' do
diff --git a/spec/controllers/import/github_controller_spec.rb b/spec/controllers/import/github_controller_spec.rb
index aafba6e2b9f..3d6b35a5c26 100644
--- a/spec/controllers/import/github_controller_spec.rb
+++ b/spec/controllers/import/github_controller_spec.rb
@@ -100,7 +100,20 @@ RSpec.describe Import::GithubController, feature_category: :importers do
end
describe "POST personal_access_token" do
+ let(:experiment) { instance_double(ApplicationExperiment) }
+
it_behaves_like 'a GitHub-ish import controller: POST personal_access_token'
+
+ it 'tracks default_to_import_tab experiment' do
+ allow(controller)
+ .to receive(:experiment)
+ .with(:default_to_import_tab, actor: user)
+ .and_return(experiment)
+
+ expect(experiment).to receive(:track).with(:authentication, property: :github)
+
+ post :personal_access_token
+ end
end
describe "GET status" do
diff --git a/spec/controllers/import/manifest_controller_spec.rb b/spec/controllers/import/manifest_controller_spec.rb
index c06bd660cd2..17a107dd839 100644
--- a/spec/controllers/import/manifest_controller_spec.rb
+++ b/spec/controllers/import/manifest_controller_spec.rb
@@ -19,6 +19,8 @@ RSpec.describe Import::ManifestController, :clean_gitlab_redis_shared_state, fea
end
describe 'POST upload' do
+ let(:experiment) { instance_double(ApplicationExperiment) }
+
context 'with a valid manifest' do
it 'saves the manifest and redirects to the status page', :aggregate_failures do
post :upload, params: {
@@ -34,6 +36,20 @@ RSpec.describe Import::ManifestController, :clean_gitlab_redis_shared_state, fea
expect(response).to redirect_to(status_import_manifest_path)
end
+
+ it 'tracks default_to_import_tab experiment' do
+ allow(controller)
+ .to receive(:experiment)
+ .with(:default_to_import_tab, actor: user)
+ .and_return(experiment)
+
+ expect(experiment).to receive(:track).with(:successfully_imported, property: :manifest)
+
+ post :upload, params: {
+ group_id: group.id,
+ manifest: fixture_file_upload('spec/fixtures/aosp_manifest.xml')
+ }
+ end
end
context 'with an invalid manifest' do
@@ -45,6 +61,20 @@ RSpec.describe Import::ManifestController, :clean_gitlab_redis_shared_state, fea
expect(assigns(:errors)).to be_present
end
+
+ it 'does not track default_to_import_tab experiment' do
+ allow(controller)
+ .to receive(:experiment)
+ .with(:default_to_import_tab, actor: user)
+ .and_return(experiment)
+
+ expect(experiment).not_to receive(:track)
+
+ post :upload, params: {
+ group_id: group.id,
+ manifest: fixture_file_upload('spec/fixtures/invalid_manifest.xml')
+ }
+ end
end
context 'when the user cannot import projects in the group' do
diff --git a/spec/controllers/oauth/authorizations_controller_spec.rb b/spec/controllers/oauth/authorizations_controller_spec.rb
index cfb512afc91..ce21c278a53 100644
--- a/spec/controllers/oauth/authorizations_controller_spec.rb
+++ b/spec/controllers/oauth/authorizations_controller_spec.rb
@@ -216,24 +216,6 @@ RSpec.describe Oauth::AuthorizationsController do
end
end
- context 'when the user is not signed in' do
- before do
- sign_out(user)
- end
-
- it 'sets a lower session expiry and redirects to the sign in page' do
- subject
-
- expect(request.env['rack.session.options'][:expire_after]).to eq(
- Settings.gitlab['unauthenticated_session_expire_delay']
- )
-
- expect(request.session['user_return_to']).to eq("/oauth/authorize?#{params.to_query}")
- expect(response).to have_gitlab_http_status(:found)
- expect(response).to redirect_to(new_user_session_path)
- end
- end
-
context 'when the user is admin' do
context 'when disable_admin_oauth_scopes is set' do
before do
diff --git a/spec/controllers/omniauth_callbacks_controller_spec.rb b/spec/controllers/omniauth_callbacks_controller_spec.rb
index 5b1fdd6388a..e99d9e949a8 100644
--- a/spec/controllers/omniauth_callbacks_controller_spec.rb
+++ b/spec/controllers/omniauth_callbacks_controller_spec.rb
@@ -31,6 +31,67 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
end
end
+ shared_examples 'omniauth sign in that remembers user' do
+ before do
+ stub_omniauth_setting(allow_bypass_two_factor: allow_bypass_two_factor)
+ (request.env['omniauth.params'] ||= {}).deep_merge!('remember_me' => omniauth_params_remember_me)
+ end
+
+ if params[:call_remember_me]
+ it 'calls devise method remember_me' do
+ expect(controller).to receive(:remember_me).with(user).and_call_original
+
+ post_action
+ end
+ else
+ it 'does not calls devise method remember_me' do
+ expect(controller).not_to receive(:remember_me)
+
+ post_action
+ end
+ end
+ end
+
+ shared_examples 'omniauth sign in that remembers user with two factor enabled' do
+ using RSpec::Parameterized::TableSyntax
+
+ subject(:post_action) { post provider }
+
+ where(:allow_bypass_two_factor, :omniauth_params_remember_me, :call_remember_me) do
+ true | '1' | true
+ true | '0' | false
+ true | nil | false
+ false | '1' | false
+ false | '0' | false
+ false | nil | false
+ end
+
+ with_them do
+ it_behaves_like 'omniauth sign in that remembers user'
+ end
+ end
+
+ shared_examples 'omniauth sign in that remembers user with two factor disabled' do
+ context "when user selects remember me for omniauth sign in flow" do
+ using RSpec::Parameterized::TableSyntax
+
+ subject(:post_action) { post provider }
+
+ where(:allow_bypass_two_factor, :omniauth_params_remember_me, :call_remember_me) do
+ true | '1' | true
+ true | '0' | false
+ true | nil | false
+ false | '1' | true
+ false | '0' | false
+ false | nil | false
+ end
+
+ with_them do
+ it_behaves_like 'omniauth sign in that remembers user'
+ end
+ end
+ end
+
describe 'omniauth' do
let(:user) { create(:omniauth_user, extern_uid: extern_uid, provider: provider) }
let(:additional_info) { {} }
@@ -190,6 +251,8 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
request.env['omniauth.params'] = { 'redirect_fragment' => 'L101' }
end
+ it_behaves_like 'omniauth sign in that remembers user with two factor disabled'
+
context 'when a redirect url is stored' do
it 'redirects with fragment' do
post provider, session: { user_return_to: '/fake/url' }
@@ -214,6 +277,12 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
expect(response.location).not_to include('#L101')
end
end
+
+ context 'when a user has 2FA enabled' do
+ let(:user) { create(:omniauth_user, :two_factor, extern_uid: extern_uid, provider: provider) }
+
+ it_behaves_like 'omniauth sign in that remembers user with two factor enabled'
+ end
end
context 'with strategies' do
@@ -271,6 +340,8 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
end
end
+ it_behaves_like 'omniauth sign in that remembers user with two factor disabled'
+
context 'when a user has 2FA enabled' do
render_views
@@ -296,6 +367,8 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
expect(response).to have_gitlab_http_status(:ok)
end
end
+
+ it_behaves_like 'omniauth sign in that remembers user with two factor enabled'
end
context 'for sign up' do
@@ -357,6 +430,10 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
let(:extern_uid) { '' }
let(:provider) { :auth0 }
+ it_behaves_like 'omniauth sign in that remembers user with two factor disabled' do
+ let(:extern_uid) { 'my-uid' }
+ end
+
it 'does not allow sign in without extern_uid' do
post 'auth0'
@@ -364,6 +441,14 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
expect(response).to have_gitlab_http_status(:found)
expect(controller).to set_flash[:alert].to('Wrong extern UID provided. Make sure Auth0 is configured correctly.')
end
+
+ context 'when a user has 2FA enabled' do
+ let(:user) { create(:omniauth_user, :two_factor, extern_uid: extern_uid, provider: provider) }
+
+ it_behaves_like 'omniauth sign in that remembers user with two factor enabled' do
+ let(:extern_uid) { 'my-uid' }
+ end
+ end
end
context 'for atlassian_oauth2' do
@@ -373,6 +458,8 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
context 'when the user and identity already exist' do
let(:user) { create(:atlassian_user, extern_uid: extern_uid) }
+ it_behaves_like 'omniauth sign in that remembers user with two factor disabled'
+
it 'allows sign-in' do
post :atlassian_oauth2
@@ -391,6 +478,12 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
post :atlassian_oauth2
end
+
+ context 'when a user has 2FA enabled' do
+ let(:user) { create(:atlassian_user, :two_factor, extern_uid: extern_uid) }
+
+ it_behaves_like 'omniauth sign in that remembers user with two factor enabled'
+ end
end
context 'for a new user' do
@@ -443,11 +536,21 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
include_context 'with sign_up'
let(:additional_info) { { extra: { email_verified: true } } }
+ it_behaves_like 'omniauth sign in that remembers user with two factor disabled' do
+ let(:user) { create(:omniauth_user, extern_uid: extern_uid, provider: provider) }
+ end
+
it 'allows sign in' do
post 'salesforce'
expect(request.env['warden']).to be_authenticated
end
+
+ context 'when a user has 2FA enabled' do
+ let(:user) { create(:omniauth_user, :two_factor, extern_uid: extern_uid, provider: provider) }
+
+ it_behaves_like 'omniauth sign in that remembers user with two factor enabled'
+ end
end
end
end
@@ -497,11 +600,19 @@ RSpec.describe OmniauthCallbacksController, type: :controller, feature_category:
let(:post_action) { post provider }
end
+ it_behaves_like 'omniauth sign in that remembers user with two factor disabled'
+
it 'allows sign in' do
post provider
expect(request.env['warden']).to be_authenticated
end
+
+ context 'when a user has 2FA enabled' do
+ let(:user) { create(:omniauth_user, :two_factor, extern_uid: extern_uid, provider: provider) }
+
+ it_behaves_like 'omniauth sign in that remembers user with two factor enabled'
+ end
end
describe '#saml' do
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb
index b29a172f5b1..721125749a5 100644
--- a/spec/controllers/projects/issues_controller_spec.rb
+++ b/spec/controllers/projects/issues_controller_spec.rb
@@ -987,11 +987,11 @@ RSpec.describe Projects::IssuesController, :request_store, feature_category: :te
labels = create_list(:label, 10, project: project).map(&:to_reference)
issue = create(:issue, project: project, description: 'Test issue')
- control_count = ActiveRecord::QueryRecorder.new { issue.update!(description: [issue.description, label].join(' ')) }.count
+ control = ActiveRecord::QueryRecorder.new { issue.update!(description: [issue.description, label].join(' ')) }
# Follow-up to get rid of this `2 * label.count` requirement: https://gitlab.com/gitlab-org/gitlab-foss/issues/52230
expect { issue.update!(description: [issue.description, labels].join(' ')) }
- .not_to exceed_query_limit(control_count + 2 * labels.count)
+ .not_to exceed_query_limit(control).with_threshold(2 * labels.count)
end
it 'logs the view with Gitlab::Search::RecentIssues' do
@@ -1849,15 +1849,17 @@ RSpec.describe Projects::IssuesController, :request_store, feature_category: :te
RequestStore.clear!
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issue.iid }
- end.count
+ end
RequestStore.clear!
create_list(:discussion_note_on_issue, 2, :system, noteable: issue, project: issue.project, note: cross_reference)
- expect { get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issue.iid } }.not_to exceed_query_limit(control_count)
+ expect do
+ get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issue.iid }
+ end.not_to exceed_query_limit(control)
end
end
diff --git a/spec/controllers/projects/labels_controller_spec.rb b/spec/controllers/projects/labels_controller_spec.rb
index db8cac8bb4a..2333ff0a937 100644
--- a/spec/controllers/projects/labels_controller_spec.rb
+++ b/spec/controllers/projects/labels_controller_spec.rb
@@ -108,7 +108,7 @@ RSpec.describe Projects::LabelsController, feature_category: :team_planning do
# some n+1 queries still exist
# calls to get max project authorization access level
- expect { list_labels }.not_to exceed_all_query_limit(control.count).with_threshold(25)
+ expect { list_labels }.not_to exceed_all_query_limit(control).with_threshold(25)
expect(assigns(:labels).count).to eq(10)
end
end
diff --git a/spec/controllers/projects/merge_requests/diffs_controller_spec.rb b/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
index b2b591d7929..3c975c76337 100644
--- a/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
@@ -138,10 +138,16 @@ RSpec.describe Projects::MergeRequests::DiffsController, feature_category: :code
end
let(:project) { create(:project, :repository) }
- let(:user) { create(:user) }
let(:maintainer) { true }
let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) }
+ let_it_be_with_reload(:user) { create(:user) }
+ let_it_be(:other_project) { create(:project) }
+
+ before_all do
+ other_project.add_maintainer(user)
+ end
+
before do
project.add_maintainer(user) if maintainer
sign_in(user)
@@ -429,10 +435,7 @@ RSpec.describe Projects::MergeRequests::DiffsController, feature_category: :code
end
context 'when the merge request belongs to a different project' do
- let(:other_project) { create(:project) }
-
before do
- other_project.add_maintainer(user)
diff_for_path(old_path: existing_path, new_path: existing_path, project_id: other_project)
end
@@ -442,6 +445,84 @@ RSpec.describe Projects::MergeRequests::DiffsController, feature_category: :code
end
end
+ describe 'GET diff_by_file_hash' do
+ def diff_by_file_hash(extra_params = {})
+ params = {
+ namespace_id: project.namespace.to_param,
+ project_id: project,
+ id: merge_request.iid,
+ format: 'json'
+ }
+
+ get :diff_by_file_hash, params: params.merge(extra_params)
+ end
+
+ let(:file) { merge_request.merge_request_diff.diffs.diff_files.first }
+ let(:file_hash) { file.file_hash }
+
+ context 'when the merge request exists' do
+ context 'when the user can view the merge request' do
+ context 'when the path exists in the diff' do
+ include_examples 'diff tracking' do
+ let(:method_call) { diff_by_file_hash(file_hash: file_hash) }
+ end
+
+ it 'enables diff notes' do
+ diff_by_file_hash(file_hash: file_hash)
+
+ expect(assigns(:diff_notes_disabled)).to be_falsey
+ expect(assigns(:new_diff_note_attrs)).to eq(
+ noteable_type: 'MergeRequest',
+ noteable_id: merge_request.id,
+ commit_id: nil
+ )
+ end
+
+ it 'only renders diff for the hash given' do
+ diff_by_file_hash(file_hash: file_hash)
+
+ diffs = json_response['diff_files']
+
+ expect(diffs.count).to eq(1)
+ expect(diffs.first['file_hash']).to eq(file_hash)
+ end
+ end
+ end
+
+ context 'when the user cannot view the merge request' do
+ let(:maintainer) { false }
+
+ before do
+ diff_by_file_hash(file_hash: file_hash)
+ end
+
+ it 'returns a 404' do
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+
+ context 'when the merge request does not exist' do
+ before do
+ diff_by_file_hash(id: merge_request.iid.succ, file_hash: file_hash)
+ end
+
+ it 'returns a 404' do
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+
+ context 'when the merge request belongs to a different project' do
+ before do
+ diff_by_file_hash(project_id: other_project, file_hash: file_hash)
+ end
+
+ it 'returns a 404' do
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+
describe 'GET diffs_batch' do
shared_examples_for 'serializes diffs with expected arguments' do
it 'serializes paginated merge request diff collection' do
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index 55741a82862..d04cda240fa 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -244,6 +244,24 @@ RSpec.describe Projects::MergeRequestsController, feature_category: :code_review
expect(response).to have_gitlab_http_status(:moved_permanently)
end
end
+
+ context 'when has pinned file' do
+ let(:file) { merge_request.merge_request_diff.diffs.diff_files.first }
+ let(:file_hash) { file.file_hash }
+
+ it 'adds pinned file url' do
+ go(pin: file_hash)
+
+ expect(assigns['pinned_file_url']).to eq(
+ diff_by_file_hash_namespace_project_merge_request_path(
+ format: 'json',
+ id: merge_request.iid,
+ namespace_id: project.namespace.to_param,
+ project_id: project.path,
+ file_hash: file_hash
+ ))
+ end
+ end
end
context 'when user is setting notes filters' do
diff --git a/spec/controllers/projects/notes_controller_spec.rb b/spec/controllers/projects/notes_controller_spec.rb
index 678991b91a5..6b440b90f37 100644
--- a/spec/controllers/projects/notes_controller_spec.rb
+++ b/spec/controllers/projects/notes_controller_spec.rb
@@ -249,15 +249,15 @@ RSpec.describe Projects::NotesController, type: :controller, feature_category: :
RequestStore.clear!
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get :index, params: request_params
- end.count
+ end
RequestStore.clear!
create_list(:discussion_note_on_issue, 2, :system, noteable: issue, project: issue.project, note: cross_reference)
- expect { get :index, params: request_params }.not_to exceed_query_limit(control_count)
+ expect { get :index, params: request_params }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb b/spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb
index fc741d0f3f6..292c4017d8e 100644
--- a/spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb
+++ b/spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::Packages::InfrastructureRegistryController do
+RSpec.describe Projects::Packages::InfrastructureRegistryController, feature_category: :package_registry do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :private) }
diff --git a/spec/controllers/projects/packages/packages_controller_spec.rb b/spec/controllers/projects/packages/packages_controller_spec.rb
index da9cae47c62..8570af075ad 100644
--- a/spec/controllers/projects/packages/packages_controller_spec.rb
+++ b/spec/controllers/projects/packages/packages_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::Packages::PackagesController do
+RSpec.describe Projects::Packages::PackagesController, feature_category: :package_registry do
let_it_be(:project) { create(:project, :public) }
let(:page) { :index }
diff --git a/spec/controllers/projects/pipeline_schedules_controller_spec.rb b/spec/controllers/projects/pipeline_schedules_controller_spec.rb
index 7cd4f43d4da..9fe2e4c23e0 100644
--- a/spec/controllers/projects/pipeline_schedules_controller_spec.rb
+++ b/spec/controllers/projects/pipeline_schedules_controller_spec.rb
@@ -108,11 +108,11 @@ RSpec.describe Projects::PipelineSchedulesController, feature_category: :continu
end
it 'avoids N + 1 queries', :request_store do
- control_count = ActiveRecord::QueryRecorder.new { visit_pipelines_schedules }.count
+ control = ActiveRecord::QueryRecorder.new { visit_pipelines_schedules }
create_list(:ci_pipeline_schedule, 2, project: project)
- expect { visit_pipelines_schedules }.not_to exceed_query_limit(control_count)
+ expect { visit_pipelines_schedules }.not_to exceed_query_limit(control)
end
context 'when the scope is set to active' do
diff --git a/spec/controllers/projects/pipelines_controller_spec.rb b/spec/controllers/projects/pipelines_controller_spec.rb
index deaed8e1162..82c1aa3e18c 100644
--- a/spec/controllers/projects/pipelines_controller_spec.rb
+++ b/spec/controllers/projects/pipelines_controller_spec.rb
@@ -381,7 +381,7 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
# Set up all required variables
get_pipeline_json
- control_count = ActiveRecord::QueryRecorder.new { get_pipeline_json }.count
+ control = ActiveRecord::QueryRecorder.new { get_pipeline_json }
first_build = pipeline.builds.first
first_build.tag_list << [:hello, :world]
@@ -391,9 +391,7 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
second_build.tag_list << [:docker, :ruby]
create(:deployment, deployable: second_build)
- new_count = ActiveRecord::QueryRecorder.new { get_pipeline_json }.count
-
- expect(new_count).to be_within(1).of(control_count)
+ expect { get_pipeline_json }.not_to exceed_query_limit(control).with_threshold(1)
end
end
@@ -1074,7 +1072,7 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
clear_controller_memoization
- control_count = ActiveRecord::QueryRecorder.new { get_test_report_json }.count
+ control = ActiveRecord::QueryRecorder.new { get_test_report_json }
create(:ci_build, name: 'karma', pipeline: pipeline).tap do |build|
create(:ci_job_artifact, :junit, job: build)
@@ -1082,7 +1080,7 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
clear_controller_memoization
- expect { get_test_report_json }.not_to exceed_query_limit(control_count)
+ expect { get_test_report_json }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/controllers/projects/refs_controller_spec.rb b/spec/controllers/projects/refs_controller_spec.rb
index 345e6e2e0de..ab879d9aeb7 100644
--- a/spec/controllers/projects/refs_controller_spec.rb
+++ b/spec/controllers/projects/refs_controller_spec.rb
@@ -78,6 +78,23 @@ RSpec.describe Projects::RefsController, feature_category: :source_code_manageme
expect(response).to have_gitlab_http_status(:bad_request)
end
end
+
+ context 'with an invalid path parameter' do
+ it 'returns 400 bad request' do
+ params = {
+ destination: 'graphs_commits',
+ namespace_id: project.namespace.to_param,
+ project_id: project,
+ id: 'master',
+ ref_type: nil,
+ path: '*'
+ }
+
+ get :switch, params: params
+
+ expect(response).to have_gitlab_http_status(:bad_request)
+ end
+ end
end
describe 'GET #logs_tree' do
diff --git a/spec/controllers/projects/security/configuration_controller_spec.rb b/spec/controllers/projects/security/configuration_controller_spec.rb
index 1ce0fcd85db..bfd269f9398 100644
--- a/spec/controllers/projects/security/configuration_controller_spec.rb
+++ b/spec/controllers/projects/security/configuration_controller_spec.rb
@@ -48,19 +48,6 @@ RSpec.describe Projects::Security::ConfigurationController do
expect(sast_feature['available']).to be_truthy
expect(dast_feature['available']).to be_falsey
end
-
- context 'with feature flag unify_security_configuration turned off' do
- before do
- stub_feature_flags(unify_security_configuration: false)
- end
-
- it 'responds with empty configuration data json' do
- get :show, params: { namespace_id: project.namespace, project_id: project, format: :json }
-
- expect(response).to have_gitlab_http_status(:ok)
- expect(json_response).to be_empty
- end
- end
end
end
end
diff --git a/spec/controllers/projects/starrers_controller_spec.rb b/spec/controllers/projects/starrers_controller_spec.rb
index 2148f495c31..236bb408d32 100644
--- a/spec/controllers/projects/starrers_controller_spec.rb
+++ b/spec/controllers/projects/starrers_controller_spec.rb
@@ -40,11 +40,11 @@ RSpec.describe Projects::StarrersController do
it 'avoids N+1s loading users', :request_store do
get_starrers
- control_count = ActiveRecord::QueryRecorder.new { get_starrers }.count
+ control = ActiveRecord::QueryRecorder.new { get_starrers }
create_list(:user, 5).each { |user| user.toggle_star(project) }
- expect { get_starrers }.not_to exceed_query_limit(control_count)
+ expect { get_starrers }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb
index 88d9d1228e3..3ddfb5e7262 100644
--- a/spec/controllers/projects_controller_spec.rb
+++ b/spec/controllers/projects_controller_spec.rb
@@ -43,6 +43,49 @@ RSpec.describe ProjectsController, feature_category: :groups_and_projects do
end
end
end
+
+ context 'with managable group' do
+ context 'when managable_group_count is 1' do
+ before do
+ group.add_owner(user)
+ end
+
+ it 'renders the template' do
+ get :new
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to render_template('new')
+ end
+ end
+
+ context 'when managable_group_count is 0' do
+ context 'when create_projects on personal namespace is allowed' do
+ before do
+ allow(user).to receive(:can_create_project?).and_return(true)
+ end
+
+ it 'renders the template' do
+ get :new
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to render_template('new')
+ end
+ end
+
+ context 'when create_projects on personal namespace is not allowed' do
+ before do
+ stub_application_setting(allow_project_creation_for_guest_and_below: false)
+ end
+
+ it 'responds with status 404' do
+ get :new
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ expect(response).not_to render_template('new')
+ end
+ end
+ end
+ end
end
end
@@ -1101,6 +1144,23 @@ RSpec.describe ProjectsController, feature_category: :groups_and_projects do
it_behaves_like 'feature update success'
end
end
+
+ context 'project topics' do
+ context 'on updates with topics of the same name (case insensitive)' do
+ it 'returns 200, with alert about update failing' do
+ put :update, params: {
+ namespace_id: project.namespace,
+ id: project.path,
+ project: {
+ topics: 'smoketest, SMOKETEST'
+ }
+ }
+
+ expect(response).to be_successful
+ expect(flash[:alert]).to eq('Project could not be updated!')
+ end
+ end
+ end
end
describe '#transfer', :enable_admin_mode do
diff --git a/spec/controllers/uploads_controller_spec.rb b/spec/controllers/uploads_controller_spec.rb
index 8ae78c5ee35..9c246c21104 100644
--- a/spec/controllers/uploads_controller_spec.rb
+++ b/spec/controllers/uploads_controller_spec.rb
@@ -776,6 +776,45 @@ RSpec.describe UploadsController, feature_category: :groups_and_projects do
end
end
end
+
+ context 'when viewing an organization avatar' do
+ let(:organization_detail) { create(:organization_detail) }
+ let(:organization) { organization_detail.organization }
+
+ subject(:request) do
+ get(
+ :show,
+ params: {
+ model: 'organizations/organization_detail',
+ mounted_as: 'avatar',
+ id: organization.id,
+ filename: 'dk.png'
+ }
+ )
+ end
+
+ context 'when signed in' do
+ before do
+ sign_in(user)
+ end
+
+ it 'responds with status 200' do
+ request
+ expect(response).to have_gitlab_http_status(:ok)
+ end
+
+ it_behaves_like 'content publicly cached'
+ end
+
+ context 'when not signed in' do
+ it 'responds with status 200' do
+ request
+ expect(response).to have_gitlab_http_status(:ok)
+ end
+
+ it_behaves_like 'content publicly cached'
+ end
+ end
end
def post_authorize(verified: true)
diff --git a/spec/db/docs_spec.rb b/spec/db/docs_spec.rb
index 03f944735a1..6f7a19fb2b1 100644
--- a/spec/db/docs_spec.rb
+++ b/spec/db/docs_spec.rb
@@ -17,6 +17,9 @@ RSpec.shared_examples 'validate dictionary' do |objects, directory_path, require
schema_inconsistencies
sharding_key
desired_sharding_key
+ allow_cross_joins
+ allow_cross_transactions
+ allow_cross_foreign_keys
]
end
diff --git a/spec/db/schema_spec.rb b/spec/db/schema_spec.rb
index 7e3f2a3b61e..74267874eeb 100644
--- a/spec/db/schema_spec.rb
+++ b/spec/db/schema_spec.rb
@@ -48,6 +48,10 @@ RSpec.describe 'Database schema', feature_category: :database do
chat_teams: %w[team_id],
ci_builds: %w[project_id runner_id user_id erased_by_id trigger_request_id partition_id auto_canceled_by_partition_id],
ci_namespace_monthly_usages: %w[namespace_id],
+ ci_pipeline_artifacts: %w[partition_id],
+ ci_pipeline_chat_data: %w[partition_id],
+ ci_pipelines_config: %w[partition_id],
+ ci_pipeline_metadata: %w[partition_id],
ci_pipeline_variables: %w[partition_id],
ci_pipelines: %w[partition_id],
ci_runner_projects: %w[runner_id],
@@ -86,6 +90,7 @@ RSpec.describe 'Database schema', feature_category: :database do
merge_request_diffs: %w[project_id],
merge_request_diff_commits: %w[commit_author_id committer_id],
namespaces: %w[owner_id parent_id],
+ namespace_descendants: %w[namespace_id],
notes: %w[author_id commit_id noteable_id updated_by_id resolved_by_id confirmed_by_id discussion_id namespace_id],
notification_settings: %w[source_id],
oauth_access_grants: %w[resource_owner_id application_id],
@@ -128,7 +133,8 @@ RSpec.describe 'Database schema', feature_category: :database do
web_hook_logs: %w[web_hook_id],
webauthn_registrations: %w[u2f_registration_id], # this column will be dropped
ml_candidates: %w[internal_id],
- value_stream_dashboard_counts: %w[namespace_id]
+ value_stream_dashboard_counts: %w[namespace_id],
+ zoekt_indices: %w[namespace_id] # needed for cells sharding key
}.with_indifferent_access.freeze
context 'for table' do
diff --git a/spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb b/spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb
deleted file mode 100644
index d616672173e..00000000000
--- a/spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe InProductGuidanceEnvironmentsWebideExperiment, :experiment do
- subject { described_class.new(project: project) }
-
- let(:project) { create(:project, :repository) }
-
- before do
- stub_experiments(in_product_guidance_environments_webide: :candidate)
- end
-
- it 'excludes projects with environments' do
- create(:environment, project: project)
- expect(subject).to exclude(project: project)
- end
-
- it 'does not exlude projects without environments' do
- expect(subject).not_to exclude(project: project)
- end
-end
diff --git a/spec/factories/ci/job_artifacts.rb b/spec/factories/ci/job_artifacts.rb
index 1c418f646f6..292138d76db 100644
--- a/spec/factories/ci/job_artifacts.rb
+++ b/spec/factories/ci/job_artifacts.rb
@@ -403,6 +403,15 @@ FactoryBot.define do
end
end
+ trait :common_security_report_with_unicode_null_character do
+ common_security_report
+
+ after(:build) do |artifact, _|
+ artifact.file = fixture_file_upload(
+ Rails.root.join('spec/fixtures/security_reports/master/gl-common-scanning-report-with-unicode-null-character.json'), 'application/json')
+ end
+ end
+
trait :sast_with_corrupted_data do
file_type { :sast }
file_format { :raw }
diff --git a/spec/factories/ci/pipeline_chat_data.rb b/spec/factories/ci/pipeline_chat_data.rb
new file mode 100644
index 00000000000..1f61c98f542
--- /dev/null
+++ b/spec/factories/ci/pipeline_chat_data.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :ci_pipeline_chat_data, class: 'Ci::PipelineChatData' do
+ pipeline factory: :ci_empty_pipeline
+ chat_name
+ response_url { "https://response.com" }
+ end
+end
diff --git a/spec/factories/ci/pipeline_config.rb b/spec/factories/ci/pipeline_config.rb
new file mode 100644
index 00000000000..a415efaf185
--- /dev/null
+++ b/spec/factories/ci/pipeline_config.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :ci_pipeline_config, class: 'Ci::PipelineConfig' do
+ pipeline factory: :ci_empty_pipeline
+ content { "content" }
+ end
+end
diff --git a/spec/factories/ci/reports/security/findings.rb b/spec/factories/ci/reports/security/findings.rb
index 670d833c1f8..2de17115934 100644
--- a/spec/factories/ci/reports/security/findings.rb
+++ b/spec/factories/ci/reports/security/findings.rb
@@ -2,7 +2,6 @@
FactoryBot.define do
factory :ci_reports_security_finding, class: '::Gitlab::Ci::Reports::Security::Finding' do
- compare_key { "#{identifiers.first&.external_type}:#{identifiers.first&.external_id}:#{location.fingerprint}" }
confidence { :medium }
identifiers { Array.new(1) { association(:ci_reports_security_identifier) } }
location factory: :ci_reports_security_locations_sast
diff --git a/spec/factories/ci/runners.rb b/spec/factories/ci/runners.rb
index 2d67a4c0e80..63e8cec82e6 100644
--- a/spec/factories/ci/runners.rb
+++ b/spec/factories/ci/runners.rb
@@ -14,6 +14,7 @@ FactoryBot.define do
groups { [] }
projects { [] }
token_expires_at { nil }
+ creator { nil }
end
after(:build) do |runner, evaluator|
@@ -24,6 +25,8 @@ FactoryBot.define do
evaluator.groups.each do |group|
runner.runner_namespaces << build(:ci_runner_namespace, runner: runner, namespace: group)
end
+
+ runner.creator = evaluator.creator if evaluator.creator
end
after(:create) do |runner, evaluator|
diff --git a/spec/factories/groups.rb b/spec/factories/groups.rb
index 807df94e115..2f55c3ab567 100644
--- a/spec/factories/groups.rb
+++ b/spec/factories/groups.rb
@@ -18,6 +18,10 @@ FactoryBot.define do
create(:namespace_settings, namespace: group) unless group.namespace_settings
end
+ trait :with_organization do
+ association :organization
+ end
+
trait :public do
visibility_level { Gitlab::VisibilityLevel::PUBLIC }
end
diff --git a/spec/factories/integrations.rb b/spec/factories/integrations.rb
index 74dfea585f2..1d698e1b4d8 100644
--- a/spec/factories/integrations.rb
+++ b/spec/factories/integrations.rb
@@ -30,6 +30,14 @@ FactoryBot.define do
api_key { 'secret' }
end
+ factory :diffblue_cover_integration, class: 'Integrations::DiffblueCover' do
+ project
+ active { true }
+ diffblue_license_key { '1234-ABCD-DCBA-4321' }
+ diffblue_access_token_name { 'Diffblue CI' }
+ diffblue_access_token_secret { 'glpat-00112233445566778899' } # gitleaks:allow
+ end
+
factory :emails_on_push_integration, class: 'Integrations::EmailsOnPush' do
project
type { 'Integrations::EmailsOnPush' }
diff --git a/spec/factories/ml/model_version_metadata.rb b/spec/factories/ml/model_version_metadata.rb
new file mode 100644
index 00000000000..de13465e5bf
--- /dev/null
+++ b/spec/factories/ml/model_version_metadata.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :ml_model_version_metadata, class: '::Ml::ModelVersionMetadata' do
+ association :model_version, factory: :ml_model_versions
+ association :project, factory: :project
+
+ sequence(:name) { |n| "metadata_#{n}" }
+ sequence(:value) { |n| "value#{n}" }
+ end
+end
diff --git a/spec/factories/namespace_package_settings.rb b/spec/factories/namespace_package_settings.rb
index 33f290d0a2d..8c5f7193cde 100644
--- a/spec/factories/namespace_package_settings.rb
+++ b/spec/factories/namespace_package_settings.rb
@@ -15,6 +15,9 @@ FactoryBot.define do
nuget_symbol_server_enabled { false }
+ terraform_module_duplicates_allowed { false }
+ terraform_module_duplicate_exception_regex { 'foo' }
+
trait :group do
namespace { association(:group) }
end
diff --git a/spec/factories/namespaces/descendants.rb b/spec/factories/namespaces/descendants.rb
new file mode 100644
index 00000000000..6325481294a
--- /dev/null
+++ b/spec/factories/namespaces/descendants.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :namespace_descendants, class: 'Namespaces::Descendants' do
+ namespace { association(:group) }
+ self_and_descendant_group_ids { namespace.self_and_descendant_ids.pluck(:id).sort }
+ all_project_ids { namespace.all_projects.pluck(:id).sort }
+ traversal_ids { namespace.traversal_ids }
+ outdated_at { nil }
+ calculated_at { Time.current }
+ end
+end
diff --git a/spec/factories/organizations/organization_users.rb b/spec/factories/organizations/organization_users.rb
index 761f260ccb3..d73d2386356 100644
--- a/spec/factories/organizations/organization_users.rb
+++ b/spec/factories/organizations/organization_users.rb
@@ -4,5 +4,9 @@ FactoryBot.define do
factory :organization_user, class: 'Organizations::OrganizationUser' do
user
organization
+
+ trait :owner do
+ access_level { Gitlab::Access::OWNER }
+ end
end
end
diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb
index a2848bd0256..83107e6cc4a 100644
--- a/spec/factories/projects.rb
+++ b/spec/factories/projects.rb
@@ -2,6 +2,10 @@
require_relative '../support/helpers/test_env'
+# TODO: Remove the debug_with_puts statements below! Used for debugging purposes.
+# TODO: https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/323#note_1688925316
+require_relative '../support/helpers/debug_with_puts'
+
FactoryBot.define do
# Project without repository
#
@@ -66,6 +70,8 @@ FactoryBot.define do
end
after(:build) do |project, evaluator|
+ DebugWithPuts.debug_with_puts "Beginning of after :build of projects factory in spec/factories/projects.rb"
+
# Builds and MRs can't have higher visibility level than repository access level.
builds_access_level = [evaluator.builds_access_level, evaluator.repository_access_level].min
merge_requests_access_level = [evaluator.merge_requests_access_level, evaluator.repository_access_level].min
@@ -87,6 +93,8 @@ FactoryBot.define do
security_and_compliance_access_level: evaluator.security_and_compliance_access_level
}
+ DebugWithPuts.debug_with_puts "During after :build of projects factory in spec/factories/projects.rb:#{__LINE__}"
+
project_namespace_hash = {
name: evaluator.name,
path: evaluator.path,
@@ -97,10 +105,16 @@ FactoryBot.define do
project_namespace_hash[:id] = evaluator.project_namespace_id.presence
+ DebugWithPuts.debug_with_puts "During after :build of projects factory in spec/factories/projects.rb:#{__LINE__}"
+
project.build_project_namespace(project_namespace_hash)
project.build_project_feature(project_feature_hash)
+ DebugWithPuts.debug_with_puts "During after :build of projects factory in spec/factories/projects.rb:#{__LINE__}"
+
project.set_runners_token(evaluator.runners_token) if evaluator.runners_token.present?
+
+ DebugWithPuts.debug_with_puts "End of after :build of projects factory in spec/factories/projects.rb"
end
to_create do |project|
@@ -108,6 +122,7 @@ FactoryBot.define do
end
after(:create) do |project, evaluator|
+ DebugWithPuts.debug_with_puts "Beginning of after :create of projects factory in spec/factories/projects.rb"
# Normally the class Projects::CreateService is used for creating
# projects, and this class takes care of making sure the owner and current
# user have access to the project. Our specs don't use said service class,
@@ -116,12 +131,16 @@ FactoryBot.define do
project.add_owner(project.first_owner)
end
+ DebugWithPuts.debug_with_puts "During after :create of projects factory in spec/factories/projects.rb:#{__LINE__}"
+
if project.group
project.run_after_commit_or_now do
AuthorizedProjectUpdate::ProjectRecalculateService.new(project).execute
end
end
+ DebugWithPuts.debug_with_puts "During after :create of projects factory in spec/factories/projects.rb:#{__LINE__}"
+
# assign the delegated `#ci_cd_settings` attributes after create
project.group_runners_enabled = evaluator.group_runners_enabled unless evaluator.group_runners_enabled.nil?
project.merge_pipelines_enabled = evaluator.merge_pipelines_enabled unless evaluator.merge_pipelines_enabled.nil?
@@ -133,6 +152,8 @@ FactoryBot.define do
project.runner_token_expiration_interval = evaluator.runner_token_expiration_interval unless evaluator.runner_token_expiration_interval.nil?
project.runner_token_expiration_interval_human_readable = evaluator.runner_token_expiration_interval_human_readable unless evaluator.runner_token_expiration_interval_human_readable.nil?
+ DebugWithPuts.debug_with_puts "During after :create of projects factory in spec/factories/projects.rb:#{__LINE__}"
+
if evaluator.import_status
import_state = project.import_state || project.build_import_state
import_state.status = evaluator.import_status
@@ -142,8 +163,12 @@ FactoryBot.define do
import_state.save!
end
+ DebugWithPuts.debug_with_puts "During after :create of projects factory in spec/factories/projects.rb:#{__LINE__}"
+
# simulating ::Projects::ProcessSyncEventsWorker because most tests don't run Sidekiq inline
project.create_ci_project_mirror!(namespace_id: project.namespace_id) unless project.ci_project_mirror
+
+ DebugWithPuts.debug_with_puts "End of after :create of projects factory in spec/factories/projects.rb"
end
trait :public do
@@ -326,6 +351,7 @@ FactoryBot.define do
end
after :create do |project, evaluator|
+ DebugWithPuts.debug_with_puts "Beginning of after :create of trait :repository do in spec/factories/projects.rb"
# Specify `lfs: true` to create the LfsObject for the LFS file in the test repo:
# https://gitlab.com/gitlab-org/gitlab-test/-/blob/master/files/lfs/lfs_object.iso
if evaluator.lfs
@@ -351,6 +377,8 @@ FactoryBot.define do
end
end
+ DebugWithPuts.debug_with_puts "During after :create of trait :repository do in spec/factories/projects.rb:#{__LINE__}"
+
if evaluator.create_templates
templates_path = "#{evaluator.create_templates}_templates"
@@ -380,6 +408,8 @@ FactoryBot.define do
branch_name: 'master')
end
+ DebugWithPuts.debug_with_puts "During after :create of trait :repository do in spec/factories/projects.rb:#{__LINE__}"
+
if evaluator.create_branch
project.repository.create_file(
project.creator,
@@ -389,6 +419,8 @@ FactoryBot.define do
branch_name: evaluator.create_branch)
end
+ DebugWithPuts.debug_with_puts "During after :create of trait :repository do in spec/factories/projects.rb:#{__LINE__}"
+
if evaluator.create_tag
project.repository.add_tag(
project.creator,
@@ -397,6 +429,7 @@ FactoryBot.define do
end
project.track_project_repository
+ DebugWithPuts.debug_with_puts "End of after :create of trait :repository do in spec/factories/projects.rb"
end
end
diff --git a/spec/factories/users.rb b/spec/factories/users.rb
index 15c140954d5..7ade859dcf2 100644
--- a/spec/factories/users.rb
+++ b/spec/factories/users.rb
@@ -13,7 +13,18 @@ FactoryBot.define do
color_scheme_id { 1 }
after(:build) do |user, evaluator|
- user.assign_personal_namespace if Feature.enabled?(:create_personal_ns_outside_model, Feature.current_request)
+ # UserWithNamespaceShim is not defined in gdk reset-data. We assume the shim is enabled in this case.
+ assign_ns = if defined?(UserWithNamespaceShim)
+ UserWithNamespaceShim.enabled?
+ else
+ true
+ end
+
+ user.assign_personal_namespace if assign_ns
+ end
+
+ trait :with_namespace do
+ namespace { assign_personal_namespace }
end
trait :admin do
diff --git a/spec/factories/users/in_product_marketing_email.rb b/spec/factories/users/in_product_marketing_email.rb
deleted file mode 100644
index c86c469ff31..00000000000
--- a/spec/factories/users/in_product_marketing_email.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-# frozen_string_literal: true
-
-FactoryBot.define do
- factory :in_product_marketing_email, class: 'Users::InProductMarketingEmail' do
- user
-
- track { 'create' }
- series { 0 }
- end
-end
diff --git a/spec/factories/work_items/dates_sources.rb b/spec/factories/work_items/dates_sources.rb
new file mode 100644
index 00000000000..ea82eceb402
--- /dev/null
+++ b/spec/factories/work_items/dates_sources.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :work_items_dates_source, class: 'WorkItems::DatesSource' do
+ work_item
+ end
+end
diff --git a/spec/features/admin/admin_abuse_reports_spec.rb b/spec/features/admin/admin_abuse_reports_spec.rb
index 5e98d2ffcf3..9c425f83508 100644
--- a/spec/features/admin/admin_abuse_reports_spec.rb
+++ b/spec/features/admin/admin_abuse_reports_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe "Admin::AbuseReports", :js, feature_category: :insider_threat do
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit admin_abuse_reports_path
end
diff --git a/spec/features/admin/admin_appearance_spec.rb b/spec/features/admin/admin_appearance_spec.rb
index 71c904b3a19..ec63e43d183 100644
--- a/spec/features/admin/admin_appearance_spec.rb
+++ b/spec/features/admin/admin_appearance_spec.rb
@@ -10,189 +10,180 @@ RSpec.describe 'Admin Appearance', feature_category: :shared do
stub_feature_flags(edit_user_profile_vue: false)
end
- flag_values = [true, false]
- flag_values.each do |val|
- context "with #{val}" do
- before do
- stub_feature_flags(restyle_login_page: val)
- end
+ it 'create new appearance' do
+ sign_in(admin)
+ enable_admin_mode!(admin)
+ visit admin_application_settings_appearances_path
+
+ fill_in 'appearance_title', with: 'MyCompany'
+ fill_in 'appearance_description', with: 'dev server'
+ fill_in 'appearance_pwa_name', with: 'GitLab PWA'
+ fill_in 'appearance_pwa_short_name', with: 'GitLab'
+ fill_in 'appearance_pwa_description', with: 'GitLab as PWA'
+ fill_in 'appearance_new_project_guidelines', with: 'Custom project guidelines'
+ fill_in 'appearance_profile_image_guidelines', with: 'Custom profile image guidelines'
+ click_button 'Update appearance settings'
+
+ expect(page).to have_current_path admin_application_settings_appearances_path, ignore_query: true
+ expect(page).to have_content 'Appearance'
+
+ expect(page).to have_field('appearance_title', with: 'MyCompany')
+ expect(page).to have_field('appearance_description', with: 'dev server')
+ expect(page).to have_field('appearance_pwa_name', with: 'GitLab PWA')
+ expect(page).to have_field('appearance_pwa_short_name', with: 'GitLab')
+ expect(page).to have_field('appearance_pwa_description', with: 'GitLab as PWA')
+ expect(page).to have_field('appearance_new_project_guidelines', with: 'Custom project guidelines')
+ expect(page).to have_field('appearance_profile_image_guidelines', with: 'Custom profile image guidelines')
+ expect(page).to have_content 'Last edit'
+ end
- it 'create new appearance' do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
- visit admin_application_settings_appearances_path
+ it 'preview sign-in page appearance' do
+ sign_in(admin)
+ enable_admin_mode!(admin)
- fill_in 'appearance_title', with: 'MyCompany'
- fill_in 'appearance_description', with: 'dev server'
- fill_in 'appearance_pwa_name', with: 'GitLab PWA'
- fill_in 'appearance_pwa_short_name', with: 'GitLab'
- fill_in 'appearance_pwa_description', with: 'GitLab as PWA'
- fill_in 'appearance_new_project_guidelines', with: 'Custom project guidelines'
- fill_in 'appearance_profile_image_guidelines', with: 'Custom profile image guidelines'
- click_button 'Update appearance settings'
-
- expect(page).to have_current_path admin_application_settings_appearances_path, ignore_query: true
- expect(page).to have_content 'Appearance'
-
- expect(page).to have_field('appearance_title', with: 'MyCompany')
- expect(page).to have_field('appearance_description', with: 'dev server')
- expect(page).to have_field('appearance_pwa_name', with: 'GitLab PWA')
- expect(page).to have_field('appearance_pwa_short_name', with: 'GitLab')
- expect(page).to have_field('appearance_pwa_description', with: 'GitLab as PWA')
- expect(page).to have_field('appearance_new_project_guidelines', with: 'Custom project guidelines')
- expect(page).to have_field('appearance_profile_image_guidelines', with: 'Custom profile image guidelines')
- expect(page).to have_content 'Last edit'
- end
+ visit admin_application_settings_appearances_path
+ click_link "Sign-in page"
- it 'preview sign-in page appearance' do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ expect(find('#login')).to be_disabled
+ expect(find('#password')).to be_disabled
+ expect(find('button')).to be_disabled
- visit admin_application_settings_appearances_path
- click_link "Sign-in page"
+ expect_custom_sign_in_appearance(appearance)
+ end
- expect(find('#login')).to be_disabled
- expect(find('#password')).to be_disabled
- expect(find('button')).to be_disabled
+ it 'preview new project page appearance', :js do
+ sign_in(admin)
+ enable_admin_mode!(admin)
- expect_custom_sign_in_appearance(appearance)
- end
+ visit admin_application_settings_appearances_path
+ click_link "New project page"
+
+ expect_custom_new_project_appearance(appearance)
+ end
- it 'preview new project page appearance', :js do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ context 'Custom system header and footer' do
+ before do
+ sign_in(admin)
+ enable_admin_mode!(admin)
+ end
+ context 'when system header and footer messages are empty' do
+ it 'shows custom system header and footer fields' do
visit admin_application_settings_appearances_path
- click_link "New project page"
- expect_custom_new_project_appearance(appearance)
+ expect(page).to have_field('appearance_header_message', with: '')
+ expect(page).to have_field('appearance_footer_message', with: '')
+ expect(page).to have_field('appearance_message_background_color')
+ expect(page).to have_field('appearance_message_font_color')
end
+ end
- context 'Custom system header and footer' do
- before do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
- end
-
- context 'when system header and footer messages are empty' do
- it 'shows custom system header and footer fields' do
- visit admin_application_settings_appearances_path
-
- expect(page).to have_field('appearance_header_message', with: '')
- expect(page).to have_field('appearance_footer_message', with: '')
- expect(page).to have_field('appearance_message_background_color')
- expect(page).to have_field('appearance_message_font_color')
- end
- end
-
- context 'when system header and footer messages are not empty' do
- before do
- appearance.update!(header_message: 'Foo', footer_message: 'Bar')
- end
-
- it 'shows custom system header and footer fields' do
- visit admin_application_settings_appearances_path
-
- expect(page).to have_field('appearance_header_message', with: appearance.header_message)
- expect(page).to have_field('appearance_footer_message', with: appearance.footer_message)
- expect(page).to have_field('appearance_message_background_color')
- expect(page).to have_field('appearance_message_font_color')
- end
- end
+ context 'when system header and footer messages are not empty' do
+ before do
+ appearance.update!(header_message: 'Foo', footer_message: 'Bar')
end
- it 'custom sign-in page' do
- visit new_user_session_path
+ it 'shows custom system header and footer fields' do
+ visit admin_application_settings_appearances_path
- expect_custom_sign_in_appearance(appearance)
+ expect(page).to have_field('appearance_header_message', with: appearance.header_message)
+ expect(page).to have_field('appearance_footer_message', with: appearance.footer_message)
+ expect(page).to have_field('appearance_message_background_color')
+ expect(page).to have_field('appearance_message_font_color')
end
+ end
+ end
- it 'custom new project page', :js do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
- visit new_project_path
- click_link 'Create blank project'
+ it 'custom sign-in page' do
+ visit new_user_session_path
- expect_custom_new_project_appearance(appearance)
- end
+ expect_custom_sign_in_appearance(appearance)
+ end
- context 'Profile page with custom profile image guidelines' do
- before do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
- visit admin_application_settings_appearances_path
- fill_in 'appearance_profile_image_guidelines', with: 'Custom profile image guidelines, please :smile:!'
- click_button 'Update appearance settings'
- end
-
- it 'renders guidelines when set' do
- sign_in create(:user)
- visit profile_path
-
- expect(page).to have_content 'Custom profile image guidelines, please 😄!'
- end
- end
+ it 'custom new project page', :js do
+ sign_in(admin)
+ enable_admin_mode!(admin)
+ visit new_project_path
+ click_link 'Create blank project'
- it 'appearance logo' do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
- visit admin_application_settings_appearances_path
+ expect_custom_new_project_appearance(appearance)
+ end
- attach_file(:appearance_logo, logo_fixture)
- click_button 'Update appearance settings'
- expect(page).to have_css(logo_selector)
+ context 'Profile page with custom profile image guidelines' do
+ before do
+ sign_in(admin)
+ enable_admin_mode!(admin)
+ visit admin_application_settings_appearances_path
+ fill_in 'appearance_profile_image_guidelines', with: 'Custom profile image guidelines, please :smile:!'
+ click_button 'Update appearance settings'
+ end
- click_link 'Remove logo'
- expect(page).not_to have_css(logo_selector)
- end
+ it 'renders guidelines when set' do
+ sign_in create(:user)
+ visit profile_path
- it 'appearance pwa icon' do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
- visit admin_application_settings_appearances_path
+ expect(page).to have_content 'Custom profile image guidelines, please 😄!'
+ end
+ end
- attach_file(:appearance_pwa_icon, logo_fixture)
- click_button 'Update appearance settings'
- expect(page).to have_css(pwa_icon_selector)
+ it 'appearance logo' do
+ sign_in(admin)
+ enable_admin_mode!(admin)
+ visit admin_application_settings_appearances_path
- click_link 'Remove icon'
- expect(page).not_to have_css(pwa_icon_selector)
- end
+ attach_file(:appearance_logo, logo_fixture)
+ click_button 'Update appearance settings'
+ expect(page).to have_css(logo_selector)
- it 'header logos' do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
- visit admin_application_settings_appearances_path
+ click_link 'Remove logo'
+ expect(page).not_to have_css(logo_selector)
+ end
- attach_file(:appearance_header_logo, logo_fixture)
- click_button 'Update appearance settings'
- expect(page).to have_css(header_logo_selector)
+ it 'appearance pwa icon' do
+ sign_in(admin)
+ enable_admin_mode!(admin)
+ visit admin_application_settings_appearances_path
- click_link 'Remove header logo'
- expect(page).not_to have_css(header_logo_selector)
- end
+ attach_file(:appearance_pwa_icon, logo_fixture)
+ click_button 'Update appearance settings'
+ expect(page).to have_css(pwa_icon_selector)
- it 'Favicon' do
- sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
- visit admin_application_settings_appearances_path
+ click_link 'Remove icon'
+ expect(page).not_to have_css(pwa_icon_selector)
+ end
- attach_file(:appearance_favicon, logo_fixture)
- click_button 'Update appearance settings'
+ it 'header logos' do
+ sign_in(admin)
+ enable_admin_mode!(admin)
+ visit admin_application_settings_appearances_path
- expect(page).to have_css('.appearance-light-logo-preview')
+ attach_file(:appearance_header_logo, logo_fixture)
+ click_button 'Update appearance settings'
+ expect(page).to have_css(header_logo_selector)
- click_link 'Remove favicon'
+ click_link 'Remove header logo'
+ expect(page).not_to have_css(header_logo_selector)
+ end
- expect(page).not_to have_css('.appearance-light-logo-preview')
+ it 'Favicon' do
+ sign_in(admin)
+ enable_admin_mode!(admin)
+ visit admin_application_settings_appearances_path
- # allowed file types
- attach_file(:appearance_favicon, Rails.root.join('spec', 'fixtures', 'sanitized.svg'))
- click_button 'Update appearance settings'
+ attach_file(:appearance_favicon, logo_fixture)
+ click_button 'Update appearance settings'
- expect(page).to have_content 'Favicon You are not allowed to upload "svg" files, allowed types: png, ico'
- end
- end
+ expect(page).to have_css('.appearance-light-logo-preview')
+
+ click_link 'Remove favicon'
+
+ expect(page).not_to have_css('.appearance-light-logo-preview')
+
+ # allowed file types
+ attach_file(:appearance_favicon, Rails.root.join('spec', 'fixtures', 'sanitized.svg'))
+ click_button 'Update appearance settings'
+
+ expect(page).to have_content 'Favicon You are not allowed to upload "svg" files, allowed types: png, ico'
end
def expect_custom_sign_in_appearance(appearance)
diff --git a/spec/features/admin/admin_browse_spam_logs_spec.rb b/spec/features/admin/admin_browse_spam_logs_spec.rb
index f781e2adf07..1f89232759c 100644
--- a/spec/features/admin/admin_browse_spam_logs_spec.rb
+++ b/spec/features/admin/admin_browse_spam_logs_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe 'Admin browse spam logs', feature_category: :shared do
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
it 'browse spam logs' do
diff --git a/spec/features/admin/admin_deploy_keys_spec.rb b/spec/features/admin/admin_deploy_keys_spec.rb
index f9510ef296a..d6d021aeafc 100644
--- a/spec/features/admin/admin_deploy_keys_spec.rb
+++ b/spec/features/admin/admin_deploy_keys_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe 'admin deploy keys', :js, feature_category: :system_access do
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
it 'show all public deploy keys' do
diff --git a/spec/features/admin/admin_dev_ops_reports_spec.rb b/spec/features/admin/admin_dev_ops_reports_spec.rb
index 99d43e6b0da..e820ae866a1 100644
--- a/spec/features/admin/admin_dev_ops_reports_spec.rb
+++ b/spec/features/admin/admin_dev_ops_reports_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe 'DevOps Report page', :js, feature_category: :devops_reports do
before do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
context 'without licensed feature devops adoption' do
diff --git a/spec/features/admin/admin_disables_git_access_protocol_spec.rb b/spec/features/admin/admin_disables_git_access_protocol_spec.rb
index 76620b93557..039968025a9 100644
--- a/spec/features/admin/admin_disables_git_access_protocol_spec.rb
+++ b/spec/features/admin/admin_disables_git_access_protocol_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe 'Admin disables Git access protocol', :js, feature_category: :sou
before do
stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
context 'with HTTP disabled' do
diff --git a/spec/features/admin/admin_disables_two_factor_spec.rb b/spec/features/admin/admin_disables_two_factor_spec.rb
index eed20d449cd..cb3c8973872 100644
--- a/spec/features/admin/admin_disables_two_factor_spec.rb
+++ b/spec/features/admin/admin_disables_two_factor_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe 'Admin disables 2FA for a user', feature_category: :system_access
it 'successfully', :js do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
user = create(:user, :two_factor)
edit_user(user)
@@ -27,7 +27,7 @@ RSpec.describe 'Admin disables 2FA for a user', feature_category: :system_access
it 'for a user without 2FA enabled' do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
user = create(:user)
edit_user(user)
diff --git a/spec/features/admin/admin_groups_spec.rb b/spec/features/admin/admin_groups_spec.rb
index f071da1835a..283caddab6a 100644
--- a/spec/features/admin/admin_groups_spec.rb
+++ b/spec/features/admin/admin_groups_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe 'Admin Groups', feature_category: :groups_and_projects do
before do
sign_in(current_user)
- gitlab_enable_admin_mode_sign_in(current_user)
+ enable_admin_mode!(current_user)
stub_application_setting(default_group_visibility: internal)
end
diff --git a/spec/features/admin/admin_health_check_spec.rb b/spec/features/admin/admin_health_check_spec.rb
index 66014e676d5..fa91159c5f5 100644
--- a/spec/features/admin/admin_health_check_spec.rb
+++ b/spec/features/admin/admin_health_check_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe "Admin Health Check", :js, feature_category: :error_budgets do
before do
stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
describe '#show' do
diff --git a/spec/features/admin/admin_hook_logs_spec.rb b/spec/features/admin/admin_hook_logs_spec.rb
index 0a537e65b99..146c83dbeee 100644
--- a/spec/features/admin/admin_hook_logs_spec.rb
+++ b/spec/features/admin/admin_hook_logs_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe 'Admin::HookLogs', feature_category: :webhooks do
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
it 'show list of hook logs' do
diff --git a/spec/features/admin/admin_hooks_spec.rb b/spec/features/admin/admin_hooks_spec.rb
index 2aec5baf351..9bdb7ce000f 100644
--- a/spec/features/admin/admin_hooks_spec.rb
+++ b/spec/features/admin/admin_hooks_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe 'Admin::Hooks', feature_category: :webhooks do
before do
sign_in(user)
- gitlab_enable_admin_mode_sign_in(user)
+ enable_admin_mode!(user)
end
describe 'GET /admin/hooks' do
diff --git a/spec/features/admin/admin_jobs_spec.rb b/spec/features/admin/admin_jobs_spec.rb
index b3e21d02354..fc775c180ff 100644
--- a/spec/features/admin/admin_jobs_spec.rb
+++ b/spec/features/admin/admin_jobs_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe 'Admin Jobs', :js, feature_category: :continuous_integration do
before do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
describe 'GET /admin/jobs' do
diff --git a/spec/features/admin/admin_labels_spec.rb b/spec/features/admin/admin_labels_spec.rb
index 47dc8577037..2fe68363062 100644
--- a/spec/features/admin/admin_labels_spec.rb
+++ b/spec/features/admin/admin_labels_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe 'admin issues labels', feature_category: :team_planning do
before do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
describe 'list' do
diff --git a/spec/features/admin/admin_manage_applications_spec.rb b/spec/features/admin/admin_manage_applications_spec.rb
index b4c77e802a8..3e351af6121 100644
--- a/spec/features/admin/admin_manage_applications_spec.rb
+++ b/spec/features/admin/admin_manage_applications_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe 'admin manage applications', feature_category: :system_access do
before do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
include_examples 'manage applications'
diff --git a/spec/features/admin/admin_mode/login_spec.rb b/spec/features/admin/admin_mode/login_spec.rb
index f2262464386..5298407deb3 100644
--- a/spec/features/admin/admin_mode/login_spec.rb
+++ b/spec/features/admin/admin_mode/login_spec.rb
@@ -13,256 +13,248 @@ RSpec.describe 'Admin Mode Login', feature_category: :system_access do
click_button 'Verify code'
end
- flag_values = [true, false]
- flag_values.each do |val|
- context "with #{val}" do
- before do
- stub_feature_flags(restyle_login_page: val)
- end
- context 'with valid username/password' do
- let(:user) { create(:admin, :two_factor) }
+ context 'with valid username/password' do
+ let(:user) { create(:admin, :two_factor) }
- context 'using one-time code' do
- it 'blocks login if we reuse the same code immediately' do
- gitlab_sign_in(user, remember: true)
+ context 'using one-time code' do
+ it 'blocks login if we reuse the same code immediately' do
+ gitlab_sign_in(user, remember: true)
- expect(page).to have_content(_('Enter verification code'))
+ expect(page).to have_content(_('Enter verification code'))
- repeated_otp = user.current_otp
- enter_code(repeated_otp)
- gitlab_enable_admin_mode_sign_in(user, use_mock_admin_mode: false)
+ repeated_otp = user.current_otp
+ enter_code(repeated_otp)
+ enable_admin_mode!(user, use_ui: true)
- expect(page).to have_content(_('Enter verification code'))
+ expect(page).to have_content(_('Enter verification code'))
- enter_code(repeated_otp)
+ enter_code(repeated_otp)
- expect(page).to have_current_path admin_session_path, ignore_query: true
- expect(page).to have_content('Invalid two-factor code')
- end
+ expect(page).to have_current_path admin_session_path, ignore_query: true
+ expect(page).to have_content('Invalid two-factor code')
+ end
- context 'not re-using codes' do
- before do
- gitlab_sign_in(user, remember: true)
+ context 'not re-using codes' do
+ before do
+ gitlab_sign_in(user, remember: true)
- expect(page).to have_content('Enter verification code')
+ expect(page).to have_content('Enter verification code')
- enter_code(user.current_otp)
- gitlab_enable_admin_mode_sign_in(user, use_mock_admin_mode: false)
+ enter_code(user.current_otp)
+ enable_admin_mode!(user, use_ui: true)
- expect(page).to have_content(_('Enter verification code'))
- end
+ expect(page).to have_content(_('Enter verification code'))
+ end
- it 'allows login with valid code' do
- # Cannot reuse the TOTP
- travel_to(30.seconds.from_now) do
- enter_code(user.current_otp)
+ it 'allows login with valid code' do
+ # Cannot reuse the TOTP
+ travel_to(30.seconds.from_now) do
+ enter_code(user.current_otp)
- expect(page).to have_current_path admin_root_path, ignore_query: true
- expect(page).to have_content('Admin mode enabled')
- end
- end
+ expect(page).to have_current_path admin_root_path, ignore_query: true
+ expect(page).to have_content('Admin mode enabled')
+ end
+ end
- it 'blocks login with invalid code' do
- # Cannot reuse the TOTP
- travel_to(30.seconds.from_now) do
- enter_code('foo')
+ it 'blocks login with invalid code' do
+ # Cannot reuse the TOTP
+ travel_to(30.seconds.from_now) do
+ enter_code('foo')
- expect(page).to have_content('Invalid two-factor code')
- end
- end
+ expect(page).to have_content('Invalid two-factor code')
+ end
+ end
- it 'allows login with invalid code, then valid code' do
- # Cannot reuse the TOTP
- travel_to(30.seconds.from_now) do
- enter_code('foo')
+ it 'allows login with invalid code, then valid code' do
+ # Cannot reuse the TOTP
+ travel_to(30.seconds.from_now) do
+ enter_code('foo')
- expect(page).to have_content('Invalid two-factor code')
+ expect(page).to have_content('Invalid two-factor code')
- enter_code(user.current_otp)
+ enter_code(user.current_otp)
- expect(page).to have_current_path admin_root_path, ignore_query: true
- expect(page).to have_content('Admin mode enabled')
- end
- end
+ expect(page).to have_current_path admin_root_path, ignore_query: true
+ expect(page).to have_content('Admin mode enabled')
+ end
+ end
- context 'using backup code' do
- let(:codes) { user.generate_otp_backup_codes! }
+ context 'using backup code' do
+ let(:codes) { user.generate_otp_backup_codes! }
- before do
- expect(codes.size).to eq 10
+ before do
+ expect(codes.size).to eq 10
- # Ensure the generated codes get saved
- user.save!
- end
+ # Ensure the generated codes get saved
+ user.save!
+ end
- context 'with valid code' do
- it 'allows login' do
- enter_code(codes.sample)
+ context 'with valid code' do
+ it 'allows login' do
+ enter_code(codes.sample)
- expect(page).to have_current_path admin_root_path, ignore_query: true
- expect(page).to have_content('Admin mode enabled')
- end
+ expect(page).to have_current_path admin_root_path, ignore_query: true
+ expect(page).to have_content('Admin mode enabled')
+ end
- it 'invalidates the used code' do
- expect { enter_code(codes.sample) }
- .to change { user.reload.otp_backup_codes.size }.by(-1)
- end
- end
+ it 'invalidates the used code' do
+ expect { enter_code(codes.sample) }
+ .to change { user.reload.otp_backup_codes.size }.by(-1)
+ end
+ end
- context 'with invalid code' do
- it 'blocks login' do
- code = codes.sample
- expect(user.invalidate_otp_backup_code!(code)).to eq true
+ context 'with invalid code' do
+ it 'blocks login' do
+ code = codes.sample
+ expect(user.invalidate_otp_backup_code!(code)).to eq true
- user.save!
- expect(user.reload.otp_backup_codes.size).to eq 9
+ user.save!
+ expect(user.reload.otp_backup_codes.size).to eq 9
- enter_code(code)
+ enter_code(code)
- expect(page).to have_content('Invalid two-factor code.')
- end
- end
+ expect(page).to have_content('Invalid two-factor code.')
end
end
end
+ end
+ end
- context 'when logging in via omniauth' do
- let(:user) { create(:omniauth_user, :admin, :two_factor, extern_uid: 'my-uid', provider: 'saml', password_automatically_set: false) }
- let(:mock_saml_response) do
- File.read('spec/fixtures/authentication/saml_response.xml')
- end
+ context 'when logging in via omniauth' do
+ let(:user) { create(:omniauth_user, :admin, :two_factor, extern_uid: 'my-uid', provider: 'saml', password_automatically_set: false) }
+ let(:mock_saml_response) do
+ File.read('spec/fixtures/authentication/saml_response.xml')
+ end
- before do
- stub_omniauth_saml_config(enabled: true, auto_link_saml_user: true, allow_single_sign_on: ['saml'], providers: [mock_saml_config_with_upstream_two_factor_authn_contexts])
- end
+ before do
+ stub_omniauth_saml_config(enabled: true, auto_link_saml_user: true, allow_single_sign_on: ['saml'], providers: [mock_saml_config_with_upstream_two_factor_authn_contexts])
+ end
- context 'when authn_context is worth two factors' do
- let(:mock_saml_response) do
- File.read('spec/fixtures/authentication/saml_response.xml')
- .gsub(
- 'urn:oasis:names:tc:SAML:2.0:ac:classes:Password',
- 'urn:oasis:names:tc:SAML:2.0:ac:classes:SecondFactorOTPSMS'
- )
- end
+ context 'when authn_context is worth two factors' do
+ let(:mock_saml_response) do
+ File.read('spec/fixtures/authentication/saml_response.xml')
+ .gsub(
+ 'urn:oasis:names:tc:SAML:2.0:ac:classes:Password',
+ 'urn:oasis:names:tc:SAML:2.0:ac:classes:SecondFactorOTPSMS'
+ )
+ end
- it 'signs user in without prompting for second factor' do
- sign_in_using_saml!
+ it 'signs user in without prompting for second factor' do
+ sign_in_using_saml!
- expect(page).not_to have_content(_('Enter verification code'))
+ expect(page).not_to have_content(_('Enter verification code'))
- enable_admin_mode_using_saml!
+ enable_admin_mode_using_saml!
- expect(page).not_to have_content(_('Enter verification code'))
- expect(page).to have_current_path admin_root_path, ignore_query: true
- expect(page).to have_content('Admin mode enabled')
- end
- end
+ expect(page).not_to have_content(_('Enter verification code'))
+ expect(page).to have_current_path admin_root_path, ignore_query: true
+ expect(page).to have_content('Admin mode enabled')
+ end
+ end
- context 'when two factor authentication is required' do
- it 'shows 2FA prompt after omniauth login' do
- sign_in_using_saml!
+ context 'when two factor authentication is required' do
+ it 'shows 2FA prompt after omniauth login' do
+ sign_in_using_saml!
- expect(page).to have_content(_('Enter verification code'))
- enter_code(user.current_otp)
+ expect(page).to have_content(_('Enter verification code'))
+ enter_code(user.current_otp)
- enable_admin_mode_using_saml!
+ enable_admin_mode_using_saml!
- expect(page).to have_content(_('Enter verification code'))
+ expect(page).to have_content(_('Enter verification code'))
- # Cannot reuse the TOTP
- travel_to(30.seconds.from_now) do
- enter_code(user.current_otp)
+ # Cannot reuse the TOTP
+ travel_to(30.seconds.from_now) do
+ enter_code(user.current_otp)
- expect(page).to have_current_path admin_root_path, ignore_query: true
- expect(page).to have_content('Admin mode enabled')
- end
- end
+ expect(page).to have_current_path admin_root_path, ignore_query: true
+ expect(page).to have_content('Admin mode enabled')
end
+ end
+ end
- def sign_in_using_saml!
- gitlab_sign_in_via('saml', user, 'my-uid', mock_saml_response)
- end
+ def sign_in_using_saml!
+ gitlab_sign_in_via('saml', user, 'my-uid', mock_saml_response)
+ end
- def enable_admin_mode_using_saml!
- gitlab_enable_admin_mode_sign_in_via('saml', user, 'my-uid', mock_saml_response)
- end
- end
+ def enable_admin_mode_using_saml!
+ gitlab_enable_admin_mode_sign_in_via('saml', user, 'my-uid', mock_saml_response)
+ end
+ end
- context 'when logging in via ldap' do
- let(:uid) { 'my-uid' }
- let(:provider_label) { 'Main LDAP' }
- let(:provider_name) { 'main' }
- let(:provider) { "ldap#{provider_name}" }
- let(:ldap_server_config) do
- {
- 'label' => provider_label,
- 'provider_name' => provider,
- 'attributes' => {},
- 'encryption' => 'plain',
- 'uid' => 'uid',
- 'base' => 'dc=example,dc=com'
- }
- end
+ context 'when logging in via ldap' do
+ let(:uid) { 'my-uid' }
+ let(:provider_label) { 'Main LDAP' }
+ let(:provider_name) { 'main' }
+ let(:provider) { "ldap#{provider_name}" }
+ let(:ldap_server_config) do
+ {
+ 'label' => provider_label,
+ 'provider_name' => provider,
+ 'attributes' => {},
+ 'encryption' => 'plain',
+ 'uid' => 'uid',
+ 'base' => 'dc=example,dc=com'
+ }
+ end
- let(:user) { create(:omniauth_user, :admin, :two_factor, extern_uid: uid, provider: provider) }
+ let(:user) { create(:omniauth_user, :admin, :two_factor, extern_uid: uid, provider: provider) }
- before do
- setup_ldap(provider, user, uid, ldap_server_config)
- end
+ before do
+ setup_ldap(provider, user, uid, ldap_server_config)
+ end
- context 'when two factor authentication is required' do
- it 'shows 2FA prompt after ldap login' do
- sign_in_using_ldap!(user, provider_label)
- expect(page).to have_content(_('Enter verification code'))
+ context 'when two factor authentication is required' do
+ it 'shows 2FA prompt after ldap login' do
+ sign_in_using_ldap!(user, provider_label)
+ expect(page).to have_content(_('Enter verification code'))
- enter_code(user.current_otp)
- enable_admin_mode_using_ldap!(user)
+ enter_code(user.current_otp)
+ enable_admin_mode_using_ldap!(user)
- expect(page).to have_content(_('Enter verification code'))
+ expect(page).to have_content(_('Enter verification code'))
- # Cannot reuse the TOTP
- travel_to(30.seconds.from_now) do
- enter_code(user.current_otp)
+ # Cannot reuse the TOTP
+ travel_to(30.seconds.from_now) do
+ enter_code(user.current_otp)
- expect(page).to have_current_path admin_root_path, ignore_query: true
- expect(page).to have_content('Admin mode enabled')
- end
- end
+ expect(page).to have_current_path admin_root_path, ignore_query: true
+ expect(page).to have_content('Admin mode enabled')
end
+ end
+ end
- def setup_ldap(provider, user, uid, ldap_server_config)
- stub_ldap_setting(enabled: true)
+ def setup_ldap(provider, user, uid, ldap_server_config)
+ stub_ldap_setting(enabled: true)
- allow(::Gitlab::Auth::Ldap::Config).to receive_messages(enabled: true, servers: [ldap_server_config])
- allow(Gitlab::Auth::OAuth::Provider).to receive_messages(providers: [provider.to_sym])
+ allow(::Gitlab::Auth::Ldap::Config).to receive_messages(enabled: true, servers: [ldap_server_config])
+ allow(Gitlab::Auth::OAuth::Provider).to receive_messages(providers: [provider.to_sym])
- Ldap::OmniauthCallbacksController.define_providers!
- Rails.application.reload_routes!
+ Ldap::OmniauthCallbacksController.define_providers!
+ Rails.application.reload_routes!
- mock_auth_hash(provider, uid, user.email)
- allow(Gitlab::Auth::Ldap::Access).to receive(:allowed?).with(user).and_return(true)
+ mock_auth_hash(provider, uid, user.email)
+ allow(Gitlab::Auth::Ldap::Access).to receive(:allowed?).with(user).and_return(true)
- allow_any_instance_of(ActionDispatch::Routing::RoutesProxy)
- .to receive(:"user_#{provider}_omniauth_callback_path")
- .and_return("/users/auth/#{provider}/callback")
- end
+ allow_any_instance_of(ActionDispatch::Routing::RoutesProxy)
+ .to receive(:"user_#{provider}_omniauth_callback_path")
+ .and_return("/users/auth/#{provider}/callback")
+ end
- def sign_in_using_ldap!(user, provider_label)
- visit new_user_session_path
- click_link provider_label
- fill_in 'username', with: user.username
- fill_in 'password', with: user.password
- click_button 'Sign in'
- end
+ def sign_in_using_ldap!(user, provider_label)
+ visit new_user_session_path
+ click_link provider_label
+ fill_in 'username', with: user.username
+ fill_in 'password', with: user.password
+ click_button 'Sign in'
+ end
- def enable_admin_mode_using_ldap!(user)
- visit new_admin_session_path
- click_link provider_label
- fill_in 'username', with: user.username
- fill_in 'password', with: user.password
- click_button 'Enter admin mode'
- end
- end
+ def enable_admin_mode_using_ldap!(user)
+ visit new_admin_session_path
+ click_link provider_label
+ fill_in 'username', with: user.username
+ fill_in 'password', with: user.password
+ click_button 'Enter admin mode'
end
end
end
diff --git a/spec/features/admin/admin_mode/logout_spec.rb b/spec/features/admin/admin_mode/logout_spec.rb
index 584151726a6..aa0569b9f0d 100644
--- a/spec/features/admin/admin_mode/logout_spec.rb
+++ b/spec/features/admin/admin_mode/logout_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe 'Admin Mode Logout', :js, feature_category: :system_access do
# TODO: This used to use gitlab_sign_in, instead of sign_in, but that is buggy. See
# this issue to look into why: https://gitlab.com/gitlab-org/gitlab/-/issues/331851
sign_in(user)
- gitlab_enable_admin_mode_sign_in(user, use_mock_admin_mode: false)
+ enable_admin_mode!(user, use_ui: true)
visit admin_root_path
end
@@ -21,7 +21,7 @@ RSpec.describe 'Admin Mode Logout', :js, feature_category: :system_access do
expect(page).to have_current_path root_path, ignore_query: true
- click_button 'Search or go to…'
+ find_by_testid('user-menu-toggle').click
expect(page).to have_link(href: new_admin_session_path)
end
@@ -42,7 +42,7 @@ RSpec.describe 'Admin Mode Logout', :js, feature_category: :system_access do
expect(page).to have_current_path root_path, ignore_query: true
- click_button 'Search or go to…'
+ find_by_testid('user-menu-toggle').click
expect(page).to have_link(href: new_admin_session_path)
end
diff --git a/spec/features/admin/admin_mode/workers_spec.rb b/spec/features/admin/admin_mode/workers_spec.rb
index 124c43eef9d..f0cea425bb7 100644
--- a/spec/features/admin/admin_mode/workers_spec.rb
+++ b/spec/features/admin/admin_mode/workers_spec.rb
@@ -34,7 +34,7 @@ RSpec.describe 'Admin mode for workers', :request_store, feature_category: :syst
context 'when admin mode enabled', :delete do
before do
- gitlab_enable_admin_mode_sign_in(user)
+ enable_admin_mode!(user)
end
it 'can delete user', :js do
@@ -67,6 +67,6 @@ RSpec.describe 'Admin mode for workers', :request_store, feature_category: :syst
Sidekiq::Worker.drain_all
sign_in(user)
- gitlab_enable_admin_mode_sign_in(user)
+ enable_admin_mode!(user)
end
end
diff --git a/spec/features/admin/admin_mode_spec.rb b/spec/features/admin/admin_mode_spec.rb
index 2a655cdb1f4..b58953989d2 100644
--- a/spec/features/admin/admin_mode_spec.rb
+++ b/spec/features/admin/admin_mode_spec.rb
@@ -20,18 +20,18 @@ RSpec.describe 'Admin mode', :js, feature_category: :shared do
context 'when not in admin mode' do
it 'has no leave admin mode button' do
visit new_admin_session_path
- open_search_modal
+ open_user_menu
expect(page).not_to have_link(href: destroy_admin_session_path)
end
it 'can open pages not in admin scope' do
visit new_admin_session_path
- open_search_modal
+ open_user_menu
- click_link('View all my projects')
+ click_link('Edit profile')
- expect(page).to have_current_path(dashboard_projects_path)
+ expect(page).to have_current_path(profile_path)
end
it 'is necessary to provide credentials again before opening pages in admin scope' do
@@ -41,11 +41,14 @@ RSpec.describe 'Admin mode', :js, feature_category: :shared do
end
it 'can enter admin mode' do
- visit new_admin_session_path
+ visit root_dashboard_path
+ open_user_menu
+ click_link 'Enter Admin Mode'
fill_in 'user_password', with: admin.password
click_button 'Enter admin mode'
+ click_link 'Admin Area'
expect(page).to have_current_path(admin_root_path)
end
@@ -69,38 +72,30 @@ RSpec.describe 'Admin mode', :js, feature_category: :shared do
context 'when in admin_mode' do
before do
- gitlab_enable_admin_mode_sign_in(admin, use_mock_admin_mode: false)
+ enable_admin_mode!(admin, use_ui: true)
end
it 'contains link to leave admin mode' do
- open_search_modal
-
- expect(page).to have_link(href: destroy_admin_session_path)
- end
-
- it 'can leave admin mode using main dashboard link' do
- gitlab_disable_admin_mode
-
- open_search_modal
-
- expect(page).to have_link(href: new_admin_session_path)
+ open_user_menu
+ click_link('Leave Admin Mode', href: destroy_admin_session_path)
+ expect(page).to have_text 'Admin mode disabled'
end
it 'can open pages not in admin scope' do
- open_search_modal
+ open_user_menu
- click_link('View all my projects')
+ click_link('Edit profile')
- expect(page).to have_current_path(dashboard_projects_path)
+ expect(page).to have_current_path(profile_path)
end
- context 'nav bar' do
- it 'shows admin dashboard links on bigger screen' do
+ context 'sidebar' do
+ it 'shows admin dashboard link' do
visit root_dashboard_path
- open_search_modal
- expect(page).to have_link(text: 'Admin', href: admin_root_path, visible: true)
- expect(page).to have_link(text: 'Leave admin mode', href: destroy_admin_session_path, visible: true)
+ within '#super-sidebar' do
+ expect(page).to have_link('Admin Area')
+ end
end
end
@@ -112,7 +107,7 @@ RSpec.describe 'Admin mode', :js, feature_category: :shared do
it 'can leave admin mode' do
gitlab_disable_admin_mode
- open_search_modal
+ open_user_menu
expect(page).to have_link(href: new_admin_session_path)
end
@@ -128,14 +123,14 @@ RSpec.describe 'Admin mode', :js, feature_category: :shared do
it 'shows no admin mode buttons in navbar' do
visit admin_root_path
- open_search_modal
+ open_user_menu
expect(page).not_to have_link(href: new_admin_session_path)
expect(page).not_to have_link(href: destroy_admin_session_path)
end
end
- def open_search_modal
- click_button 'Search or go to…'
+ def open_user_menu
+ find_by_testid('user-menu-toggle').click
end
end
diff --git a/spec/features/admin/admin_projects_spec.rb b/spec/features/admin/admin_projects_spec.rb
index b793299e253..978b2176431 100644
--- a/spec/features/admin/admin_projects_spec.rb
+++ b/spec/features/admin/admin_projects_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe "Admin::Projects", feature_category: :groups_and_projects do
before do
sign_in(current_user)
- gitlab_enable_admin_mode_sign_in(current_user)
+ enable_admin_mode!(current_user)
end
describe 'when membership is set to expire', :js do
diff --git a/spec/features/admin/admin_runners_spec.rb b/spec/features/admin/admin_runners_spec.rb
index 653458710e3..2b4ceb05f00 100644
--- a/spec/features/admin/admin_runners_spec.rb
+++ b/spec/features/admin/admin_runners_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe "Admin Runners", feature_category: :fleet_visibility do
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
describe "Admin Runners page", :js do
diff --git a/spec/features/admin/admin_search_settings_spec.rb b/spec/features/admin/admin_search_settings_spec.rb
index 3254bf75738..c20a50cf218 100644
--- a/spec/features/admin/admin_search_settings_spec.rb
+++ b/spec/features/admin/admin_search_settings_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe 'Admin searches application settings', :js, feature_category: :gl
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
context 'in appearances page' do
diff --git a/spec/features/admin/admin_sees_background_migrations_spec.rb b/spec/features/admin/admin_sees_background_migrations_spec.rb
index ae307b8038c..43b920c657c 100644
--- a/spec/features/admin/admin_sees_background_migrations_spec.rb
+++ b/spec/features/admin/admin_sees_background_migrations_spec.rb
@@ -18,7 +18,7 @@ RSpec.describe "Admin > Admin sees background migrations", feature_category: :da
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
it 'can navigate to background migrations', :js do
diff --git a/spec/features/admin/admin_sees_project_statistics_spec.rb b/spec/features/admin/admin_sees_project_statistics_spec.rb
index d977735daf8..07f90d247cd 100644
--- a/spec/features/admin/admin_sees_project_statistics_spec.rb
+++ b/spec/features/admin/admin_sees_project_statistics_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe "Admin > Admin sees project statistics", feature_category: :group
before do
sign_in(current_user)
- gitlab_enable_admin_mode_sign_in(current_user)
+ enable_admin_mode!(current_user)
visit admin_project_path(project)
end
diff --git a/spec/features/admin/admin_sees_projects_statistics_spec.rb b/spec/features/admin/admin_sees_projects_statistics_spec.rb
index 3363a67ea90..cc6ccbab0a0 100644
--- a/spec/features/admin/admin_sees_projects_statistics_spec.rb
+++ b/spec/features/admin/admin_sees_projects_statistics_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe "Admin > Admin sees projects statistics", feature_category: :grou
create(:project, :repository) { |project| project.statistics.destroy! }
sign_in(current_user)
- gitlab_enable_admin_mode_sign_in(current_user)
+ enable_admin_mode!(current_user)
visit admin_projects_path
end
diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb
index 77707a67d58..d1fdbfc5329 100644
--- a/spec/features/admin/admin_settings_spec.rb
+++ b/spec/features/admin/admin_settings_spec.rb
@@ -13,7 +13,7 @@ RSpec.describe 'Admin updates settings', feature_category: :shared do
before do
stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin, use_mock_admin_mode: false)
+ enable_admin_mode!(admin, use_ui: true)
end
context 'General page' do
diff --git a/spec/features/admin/admin_system_info_spec.rb b/spec/features/admin/admin_system_info_spec.rb
index 71a0b829932..f285fefe6db 100644
--- a/spec/features/admin/admin_system_info_spec.rb
+++ b/spec/features/admin/admin_system_info_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe 'Admin System Info', feature_category: :shared do
before do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
describe 'GET /admin/system_info' do
diff --git a/spec/features/admin/admin_users_impersonation_tokens_spec.rb b/spec/features/admin/admin_users_impersonation_tokens_spec.rb
index 543dc2cc2a6..7cfe0cdbc81 100644
--- a/spec/features/admin/admin_users_impersonation_tokens_spec.rb
+++ b/spec/features/admin/admin_users_impersonation_tokens_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe 'Admin > Users > Impersonation Tokens', :js, feature_category: :s
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
describe "token creation" do
diff --git a/spec/features/admin/admin_users_spec.rb b/spec/features/admin/admin_users_spec.rb
index 9ab5b1fd3bb..f09c1a59b0d 100644
--- a/spec/features/admin/admin_users_spec.rb
+++ b/spec/features/admin/admin_users_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe "Admin::Users", feature_category: :user_management do
before do
sign_in(current_user)
- gitlab_enable_admin_mode_sign_in(current_user)
+ enable_admin_mode!(current_user)
end
describe 'Tabs' do
diff --git a/spec/features/admin/admin_uses_repository_checks_spec.rb b/spec/features/admin/admin_uses_repository_checks_spec.rb
index 05232de35e5..a628344bfeb 100644
--- a/spec/features/admin/admin_uses_repository_checks_spec.rb
+++ b/spec/features/admin/admin_uses_repository_checks_spec.rb
@@ -25,7 +25,7 @@ RSpec.describe 'Admin uses repository checks', :request_store, feature_category:
context 'when admin mode is enabled' do
before do
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
it 'to trigger a single check', :js do
diff --git a/spec/features/admin/broadcast_messages_spec.rb b/spec/features/admin/broadcast_messages_spec.rb
index e4a2e31ee1c..16651ffa07e 100644
--- a/spec/features/admin/broadcast_messages_spec.rb
+++ b/spec/features/admin/broadcast_messages_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe 'Admin Broadcast Messages', :js, feature_category: :onboarding do
it 'previews, creates and edits a broadcast message' do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
# create
visit admin_broadcast_messages_path
diff --git a/spec/features/admin/dashboard_spec.rb b/spec/features/admin/dashboard_spec.rb
index 06f9c531e74..9e8f5138815 100644
--- a/spec/features/admin/dashboard_spec.rb
+++ b/spec/features/admin/dashboard_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe 'admin visits dashboard' do
before do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
context 'counting forks', :js, feature_category: :source_code_management do
diff --git a/spec/features/admin/users/admin_impersonates_user_spec.rb b/spec/features/admin/users/admin_impersonates_user_spec.rb
new file mode 100644
index 00000000000..e37b4bf1562
--- /dev/null
+++ b/spec/features/admin/users/admin_impersonates_user_spec.rb
@@ -0,0 +1,208 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Admin impersonates user', feature_category: :user_management do
+ let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') }
+ let_it_be(:current_user) { create(:admin) }
+
+ before do
+ sign_in(current_user)
+ enable_admin_mode!(current_user, use_ui: true)
+ end
+
+ describe 'GET /admin/users/:id' do
+ describe 'Impersonation' do
+ let_it_be(:another_user) { create(:user) }
+
+ context 'before impersonating' do
+ subject { visit admin_user_path(user_to_visit) }
+
+ let_it_be(:user_to_visit) { another_user }
+
+ shared_examples "user that cannot be impersonated" do
+ it 'disables impersonate button' do
+ subject
+
+ impersonate_btn = find_by_testid('impersonate-user-link')
+
+ expect(impersonate_btn).not_to be_nil
+ expect(impersonate_btn['disabled']).not_to be_nil
+ end
+
+ it "shows tooltip with correct error message" do
+ subject
+
+ expect(find("span[title='#{impersonation_error_msg}']")).not_to be_nil
+ end
+ end
+
+ context 'for other users' do
+ it 'shows impersonate button for other users' do
+ subject
+
+ expect(page).to have_content('Impersonate')
+ impersonate_btn = find_by_testid('impersonate-user-link')
+ expect(impersonate_btn['disabled']).to be_nil
+ end
+ end
+
+ context 'for admin itself' do
+ let(:user_to_visit) { current_user }
+
+ it 'does not show impersonate button for admin itself' do
+ subject
+
+ expect(page).to have_no_content('Impersonate')
+ end
+ end
+
+ context 'for blocked user' do
+ let_it_be(:blocked_user) { create(:user, :blocked) }
+ let(:user_to_visit) { blocked_user }
+ let(:impersonation_error_msg) { _('You cannot impersonate a blocked user') }
+
+ it_behaves_like "user that cannot be impersonated"
+ end
+
+ context 'for user with expired password' do
+ let_it_be(:user_to_visit) do
+ another_user.update!(password_expires_at: Time.zone.now - 5.minutes)
+ another_user
+ end
+
+ let(:impersonation_error_msg) { _("You cannot impersonate a user with an expired password") }
+
+ it_behaves_like "user that cannot be impersonated"
+ end
+
+ context 'for internal user' do
+ let_it_be(:internal_user) { create(:user, :bot) }
+ let(:user_to_visit) { internal_user }
+ let(:impersonation_error_msg) { _("You cannot impersonate an internal user") }
+
+ it_behaves_like "user that cannot be impersonated"
+ end
+
+ context 'for locked user' do
+ let_it_be(:locked_user) { create(:user, :locked) }
+ let(:user_to_visit) { locked_user }
+ let(:impersonation_error_msg) { _("You cannot impersonate a user who cannot log in") }
+
+ it_behaves_like "user that cannot be impersonated"
+ end
+
+ context 'when already impersonating another user' do
+ let_it_be(:admin_user) { create(:user, :admin) }
+ let(:impersonation_error_msg) { _("You are already impersonating another user") }
+
+ subject do
+ visit admin_user_path(admin_user)
+ click_link 'Impersonate'
+ visit admin_user_path(another_user)
+ end
+
+ it_behaves_like "user that cannot be impersonated"
+ end
+
+ context 'when impersonation is disabled' do
+ before do
+ stub_config_setting(impersonation_enabled: false)
+ end
+
+ it 'does not show impersonate button' do
+ subject
+
+ expect(page).to have_no_content('Impersonate')
+ end
+ end
+ end
+
+ context 'when impersonating' do
+ subject { click_link 'Impersonate' }
+
+ before do
+ visit admin_user_path(another_user)
+ end
+
+ it 'logs in as the user when impersonate is clicked', :js do
+ subject
+
+ expect(page).to have_button("#{another_user.name} user’s menu")
+ end
+
+ it 'sees impersonation log out icon', :js do
+ subject
+
+ icon = first('[data-testid="incognito-icon"]')
+ expect(icon).not_to be nil
+ end
+
+ context 'when viewing the confirm email warning', :js do
+ before do
+ stub_application_setting_enum('email_confirmation_setting', 'soft')
+ end
+
+ let_it_be(:another_user) { create(:user, :unconfirmed) }
+ let(:warning_alert) { page.find(:css, '[data-testid="alert-warning"]') }
+
+ context 'with an email that does not contain HTML' do
+ before do
+ subject
+ end
+
+ it 'displays the warning alert including the email' do
+ expect(warning_alert.text).to include("Please check your email (#{another_user.email}) to verify")
+ end
+ end
+
+ context 'with an email that contains HTML' do
+ let(:malicious_email) { "malicious@test.com<form><input/title='<script>alert(document.domain)</script>'>" }
+ let(:another_user) { create(:user, confirmed_at: nil, unconfirmed_email: malicious_email) }
+
+ before do
+ subject
+ end
+
+ it 'displays the impersonation alert, excludes email, and disables links' do
+ expect(warning_alert.text).to include("check your email (#{another_user.unconfirmed_email}) to verify")
+ end
+ end
+ end
+ end
+
+ context 'ending impersonation', :js do
+ subject { click_on 'Stop impersonating' }
+
+ before do
+ visit admin_user_path(another_user)
+ click_link 'Impersonate'
+ end
+
+ it 'logs out of impersonated user back to original user' do
+ subject
+
+ expect(page).to have_button("#{current_user.name} user’s menu")
+ end
+
+ it 'is redirected back to the impersonated users page in the admin after stopping' do
+ subject
+
+ expect(page).to have_current_path("/admin/users/#{another_user.username}", ignore_query: true)
+ end
+
+ context 'a user with an expired password' do
+ before do
+ another_user.update!(password_expires_at: Time.zone.now - 5.minutes)
+ end
+
+ it 'is redirected back to the impersonated users page in the admin after stopping' do
+ subject
+
+ expect(page).to have_current_path("/admin/users/#{another_user.username}", ignore_query: true)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/spec/features/admin/users/admin_manages_user_identities_spec.rb b/spec/features/admin/users/admin_manages_user_identities_spec.rb
new file mode 100644
index 00000000000..cbb7eed9e1c
--- /dev/null
+++ b/spec/features/admin/users/admin_manages_user_identities_spec.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Admin manages user identities', feature_category: :user_management do
+ let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') }
+ let_it_be(:current_user) { create(:admin) }
+
+ before do
+ sign_in(current_user)
+ enable_admin_mode!(current_user, use_ui: true)
+ end
+
+ describe 'GET /admin/users/:id' do
+ describe 'show user identities' do
+ it 'shows user identities', :aggregate_failures do
+ visit admin_user_identities_path(user)
+
+ expect(page).to(
+ have_content(user.name)
+ .and(have_content('twitter'))
+ )
+ end
+ end
+
+ describe 'update user identities' do
+ before do
+ allow(Gitlab::Auth::OAuth::Provider).to receive(:providers).and_return([:twitter, :twitter_updated])
+ end
+
+ it 'modifies twitter identity', :aggregate_failures do
+ visit admin_user_identities_path(user)
+
+ find('.table').find(:link, 'Edit').click
+ fill_in 'identity_extern_uid', with: '654321'
+ select 'twitter_updated', from: 'identity_provider'
+ click_button 'Save changes'
+
+ expect(page).to have_content(user.name)
+ expect(page).to have_content('twitter_updated')
+ expect(page).to have_content('654321')
+ end
+ end
+
+ describe 'remove user with identities' do
+ it 'removes user with twitter identity', :aggregate_failures do
+ visit admin_user_identities_path(user)
+
+ click_link 'Delete'
+
+ expect(page).to have_content(user.name)
+ expect(page).not_to have_content('twitter')
+ end
+ end
+ end
+end
diff --git a/spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb b/spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb
new file mode 100644
index 00000000000..7b45e5b5cde
--- /dev/null
+++ b/spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb
@@ -0,0 +1,52 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Admin sees unconfirmed user', feature_category: :user_management do
+ include Spec::Support::Helpers::ModalHelpers
+
+ let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') }
+ let_it_be(:current_user) { create(:admin) }
+
+ before do
+ sign_in(current_user)
+ enable_admin_mode!(current_user, use_ui: true)
+ end
+
+ context 'when user has an unconfirmed email', :js do
+ # Email address contains HTML to ensure email address is displayed in an HTML safe way.
+ let_it_be(:unconfirmed_email) { "#{generate(:email)}<h2>testing<img/src=http://localhost:8000/test.png>" }
+ let_it_be(:unconfirmed_user) { create(:user, :unconfirmed, unconfirmed_email: unconfirmed_email) }
+
+ where(:path_helper) do
+ [
+ [-> (user) { admin_user_path(user) }],
+ [-> (user) { projects_admin_user_path(user) }],
+ [-> (user) { keys_admin_user_path(user) }],
+ [-> (user) { admin_user_identities_path(user) }],
+ [-> (user) { admin_user_impersonation_tokens_path(user) }]
+ ]
+ end
+
+ with_them do
+ it "allows an admin to force confirmation of the user's email", :aggregate_failures do
+ visit path_helper.call(unconfirmed_user)
+
+ click_button 'Confirm user'
+
+ within_modal do
+ expect(page).to have_content("Confirm user #{unconfirmed_user.name}?")
+ expect(page).to(
+ have_content(
+ "This user has an unconfirmed email address (#{unconfirmed_email}). You may force a confirmation.")
+ )
+
+ click_button 'Confirm user'
+ end
+
+ expect(page).to have_content('Successfully confirmed')
+ expect(page).not_to have_button('Confirm user')
+ end
+ end
+ end
+end
diff --git a/spec/features/admin/users/admin_sees_user_spec.rb b/spec/features/admin/users/admin_sees_user_spec.rb
new file mode 100644
index 00000000000..d8c142d402f
--- /dev/null
+++ b/spec/features/admin/users/admin_sees_user_spec.rb
@@ -0,0 +1,248 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Admin::Users::User', feature_category: :user_management do
+ include Features::AdminUsersHelpers
+ include Spec::Support::Helpers::ModalHelpers
+
+ let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') }
+ let_it_be(:current_user) { create(:admin) }
+
+ before do
+ sign_in(current_user)
+ enable_admin_mode!(current_user, use_ui: true)
+ end
+
+ describe 'GET /admin/users/:id' do
+ it 'has user info', :js, :aggregate_failures do
+ visit admin_user_path(user)
+
+ expect(page).to have_content(user.email)
+ expect(page).to have_content(user.name)
+ expect(page).to have_content("ID: #{user.id}")
+ expect(page).to have_content("Namespace ID: #{user.namespace_id}")
+
+ click_user_dropdown_toggle(user.id)
+
+ expect(page).to have_button('Block')
+ expect(page).to have_button('Deactivate')
+ expect(page).to have_button('Delete user')
+ expect(page).to have_button('Delete user and contributions')
+ end
+
+ context 'when blocking/unblocking the user' do
+ it 'shows confirmation and allows blocking and unblocking', :js do
+ visit admin_user_path(user)
+
+ click_action_in_user_dropdown(user.id, 'Block')
+
+ expect(page).to have_content('Block user')
+ expect(page).to have_content('You can always unblock their account, their data will remain intact.')
+
+ find('.modal-footer button', text: 'Block').click
+
+ wait_for_requests
+
+ expect(page).to have_content('Successfully blocked')
+
+ click_action_in_user_dropdown(user.id, 'Unblock')
+
+ expect(page).to have_content('Unblock user')
+ expect(page).to have_content('You can always block their account again if needed.')
+
+ find('.modal-footer button', text: 'Unblock').click
+
+ expect(page).to have_content('Successfully unblocked')
+
+ click_user_dropdown_toggle(user.id)
+ expect(page).to have_content('Block')
+ end
+ end
+
+ context 'when deactivating/re-activating the user' do
+ it 'shows confirmation and allows deactivating/re-activating', :js do
+ visit admin_user_path(user)
+
+ click_action_in_user_dropdown(user.id, 'Deactivate')
+
+ expect(page).to have_content('Deactivate user')
+ expect(page).to have_content('You can always re-activate their account, their data will remain intact.')
+
+ find('.modal-footer button', text: 'Deactivate').click
+
+ wait_for_requests
+
+ expect(page).to have_content('Successfully deactivated')
+
+ click_action_in_user_dropdown(user.id, 'Activate')
+
+ expect(page).to have_content('Activate user')
+ expect(page).to have_content('You can always deactivate their account again if needed.')
+
+ find('.modal-footer button', text: 'Activate').click
+
+ wait_for_requests
+
+ expect(page).to have_content('Successfully activated')
+
+ click_user_dropdown_toggle(user.id)
+ expect(page).to have_content('Deactivate')
+ end
+ end
+
+ context 'when user is the sole owner of a group' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:user_sole_owner_of_group) { create(:user) }
+
+ before do
+ group.add_owner(user_sole_owner_of_group)
+ end
+
+ it 'shows `Delete user and contributions` action but not `Delete user` action', :js do
+ visit admin_user_path(user_sole_owner_of_group)
+
+ click_user_dropdown_toggle(user_sole_owner_of_group.id)
+
+ expect(page).to have_button('Delete user and contributions')
+ expect(page).not_to have_button('Delete user', exact: true)
+ end
+
+ it 'allows user to be deleted by using the `Delete user and contributions` action', :js do
+ visit admin_user_path(user_sole_owner_of_group)
+
+ click_action_in_user_dropdown(user_sole_owner_of_group.id, 'Delete user and contributions')
+
+ within_modal do
+ fill_in('username', with: user_sole_owner_of_group.name)
+ click_button('Delete user and contributions')
+ end
+
+ wait_for_requests
+
+ expect(page).to have_content('The user is being deleted.')
+ end
+ end
+
+ context 'when a user is locked', time_travel_to: '2020-02-02 10:30:45 -0700' do
+ let_it_be(:locked_user) { create(:user, locked_at: DateTime.parse('2020-02-02 10:30:00 -0700')) }
+
+ before do
+ visit admin_user_path(locked_user)
+ end
+
+ it "displays `(Locked)` next to user's name" do
+ expect(page).to have_content("#{locked_user.name} (Locked)")
+ end
+
+ it 'allows a user to be unlocked from the `User administration dropdown', :js do
+ accept_gl_confirm("Unlock user #{locked_user.name}?", button_text: 'Unlock') do
+ click_action_in_user_dropdown(locked_user.id, 'Unlock')
+ end
+
+ expect(page).not_to have_content("#{locked_user.name} (Locked)")
+ end
+ end
+
+ describe 'Two-factor Authentication status' do
+ it 'shows when enabled' do
+ user.update!(otp_required_for_login: true)
+
+ visit admin_user_path(user)
+
+ expect_two_factor_status('Enabled')
+ end
+
+ it 'shows when disabled' do
+ user.update!(otp_required_for_login: false)
+
+ visit admin_user_path(user)
+
+ expect_two_factor_status('Disabled')
+ end
+
+ def expect_two_factor_status(status)
+ page.within('.two-factor-status') do
+ expect(page).to have_content(status)
+ end
+ end
+ end
+
+ describe 'Email verification status' do
+ let_it_be(:secondary_email) do
+ create :email, email: 'secondary@example.com', user: user
+ end
+
+ it 'displays the correct status for an unverified email address', :aggregate_failures do
+ user.update!(confirmed_at: nil, unconfirmed_email: user.email)
+ visit admin_user_path(user)
+
+ expect(page).to have_content("#{user.email} Unverified")
+ expect(page).to have_content("#{secondary_email.email} Unverified")
+ end
+
+ it 'displays the correct status for a verified email address' do
+ visit admin_user_path(user)
+ expect(page).to have_content("#{user.email} Verified")
+
+ secondary_email.confirm
+ expect(secondary_email.confirmed?).to be_truthy
+
+ visit admin_user_path(user)
+ expect(page).to have_content("#{secondary_email.email} Verified")
+ end
+ end
+
+ describe 'remove users secondary email', :js do
+ let_it_be(:secondary_email) do
+ create :email, email: 'secondary@example.com', user: user
+ end
+
+ it do
+ visit admin_user_path(user.username)
+
+ expect(page).to have_content("Secondary email: #{secondary_email.email}")
+
+ accept_gl_confirm { find("#remove_email_#{secondary_email.id}").click }
+
+ expect(page).not_to have_content(secondary_email.email)
+ end
+ end
+
+ describe 'show user keys', :js do
+ it do
+ key1 = create(:key, user: user, title: 'ssh-rsa Key1')
+ key2 = create(:key, user: user, title: 'ssh-rsa Key2')
+
+ visit admin_user_path(user)
+
+ click_link 'SSH keys'
+
+ expect(page).to have_content(key1.title)
+ expect(page).to have_content(key2.title)
+
+ click_link key2.title
+
+ expect(page).to have_content(key2.title)
+ expect(page).to have_content(key2.key)
+
+ click_button 'Delete'
+
+ page.within('.modal') do
+ page.click_button('Delete')
+ end
+
+ expect(page).not_to have_content(key2.title)
+ end
+ end
+
+ describe 'show user attributes' do
+ it 'has expected attributes', :aggregate_failures do
+ visit admin_user_path(user)
+
+ expect(page).to have_content 'Account'
+ expect(page).to have_content 'Personal projects limit'
+ end
+ end
+ end
+end
diff --git a/spec/features/admin/users/user_spec.rb b/spec/features/admin/users/user_spec.rb
deleted file mode 100644
index d0110b3e013..00000000000
--- a/spec/features/admin/users/user_spec.rb
+++ /dev/null
@@ -1,537 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe 'Admin::Users::User', feature_category: :user_management do
- include Features::AdminUsersHelpers
- include Spec::Support::Helpers::ModalHelpers
-
- let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') }
- let_it_be(:current_user) { create(:admin) }
-
- before do
- sign_in(current_user)
- gitlab_enable_admin_mode_sign_in(current_user, use_mock_admin_mode: false)
- end
-
- describe 'GET /admin/users/:id' do
- it 'has user info', :js, :aggregate_failures do
- visit admin_user_path(user)
-
- expect(page).to have_content(user.email)
- expect(page).to have_content(user.name)
- expect(page).to have_content("ID: #{user.id}")
- expect(page).to have_content("Namespace ID: #{user.namespace_id}")
-
- click_user_dropdown_toggle(user.id)
-
- expect(page).to have_button('Block')
- expect(page).to have_button('Deactivate')
- expect(page).to have_button('Delete user')
- expect(page).to have_button('Delete user and contributions')
- end
-
- context 'when blocking/unblocking the user' do
- it 'shows confirmation and allows blocking and unblocking', :js do
- visit admin_user_path(user)
-
- click_action_in_user_dropdown(user.id, 'Block')
-
- expect(page).to have_content('Block user')
- expect(page).to have_content('You can always unblock their account, their data will remain intact.')
-
- find('.modal-footer button', text: 'Block').click
-
- wait_for_requests
-
- expect(page).to have_content('Successfully blocked')
-
- click_action_in_user_dropdown(user.id, 'Unblock')
-
- expect(page).to have_content('Unblock user')
- expect(page).to have_content('You can always block their account again if needed.')
-
- find('.modal-footer button', text: 'Unblock').click
-
- expect(page).to have_content('Successfully unblocked')
-
- click_user_dropdown_toggle(user.id)
- expect(page).to have_content('Block')
- end
- end
-
- context 'when deactivating/re-activating the user' do
- it 'shows confirmation and allows deactivating/re-activating', :js do
- visit admin_user_path(user)
-
- click_action_in_user_dropdown(user.id, 'Deactivate')
-
- expect(page).to have_content('Deactivate user')
- expect(page).to have_content('You can always re-activate their account, their data will remain intact.')
-
- find('.modal-footer button', text: 'Deactivate').click
-
- wait_for_requests
-
- expect(page).to have_content('Successfully deactivated')
-
- click_action_in_user_dropdown(user.id, 'Activate')
-
- expect(page).to have_content('Activate user')
- expect(page).to have_content('You can always deactivate their account again if needed.')
-
- find('.modal-footer button', text: 'Activate').click
-
- wait_for_requests
-
- expect(page).to have_content('Successfully activated')
-
- click_user_dropdown_toggle(user.id)
- expect(page).to have_content('Deactivate')
- end
- end
-
- context 'when user is the sole owner of a group' do
- let_it_be(:group) { create(:group) }
- let_it_be(:user_sole_owner_of_group) { create(:user) }
-
- before do
- group.add_owner(user_sole_owner_of_group)
- end
-
- it 'shows `Delete user and contributions` action but not `Delete user` action', :js do
- visit admin_user_path(user_sole_owner_of_group)
-
- click_user_dropdown_toggle(user_sole_owner_of_group.id)
-
- expect(page).to have_button('Delete user and contributions')
- expect(page).not_to have_button('Delete user', exact: true)
- end
-
- it 'allows user to be deleted by using the `Delete user and contributions` action', :js do
- visit admin_user_path(user_sole_owner_of_group)
-
- click_action_in_user_dropdown(user_sole_owner_of_group.id, 'Delete user and contributions')
-
- within_modal do
- fill_in('username', with: user_sole_owner_of_group.name)
- click_button('Delete user and contributions')
- end
-
- wait_for_requests
-
- expect(page).to have_content('The user is being deleted.')
- end
- end
-
- context 'when a user is locked', time_travel_to: '2020-02-02 10:30:45 -0700' do
- let_it_be(:locked_user) { create(:user, locked_at: DateTime.parse('2020-02-02 10:30:00 -0700')) }
-
- before do
- visit admin_user_path(locked_user)
- end
-
- it "displays `(Locked)` next to user's name" do
- expect(page).to have_content("#{locked_user.name} (Locked)")
- end
-
- it 'allows a user to be unlocked from the `User administration dropdown', :js do
- accept_gl_confirm("Unlock user #{locked_user.name}?", button_text: 'Unlock') do
- click_action_in_user_dropdown(locked_user.id, 'Unlock')
- end
-
- expect(page).not_to have_content("#{locked_user.name} (Locked)")
- end
- end
-
- describe 'Impersonation' do
- let_it_be(:another_user) { create(:user) }
-
- context 'before impersonating' do
- subject { visit admin_user_path(user_to_visit) }
-
- let_it_be(:user_to_visit) { another_user }
-
- shared_examples "user that cannot be impersonated" do
- it 'disables impersonate button' do
- subject
-
- impersonate_btn = find_by_testid('impersonate-user-link')
-
- expect(impersonate_btn).not_to be_nil
- expect(impersonate_btn['disabled']).not_to be_nil
- end
-
- it "shows tooltip with correct error message" do
- subject
-
- expect(find("span[title='#{impersonation_error_msg}']")).not_to be_nil
- end
- end
-
- context 'for other users' do
- it 'shows impersonate button for other users' do
- subject
-
- expect(page).to have_content('Impersonate')
- impersonate_btn = find_by_testid('impersonate-user-link')
- expect(impersonate_btn['disabled']).to be_nil
- end
- end
-
- context 'for admin itself' do
- let(:user_to_visit) { current_user }
-
- it 'does not show impersonate button for admin itself' do
- subject
-
- expect(page).not_to have_content('Impersonate')
- end
- end
-
- context 'for blocked user' do
- let_it_be(:blocked_user) { create(:user, :blocked) }
- let(:user_to_visit) { blocked_user }
- let(:impersonation_error_msg) { _('You cannot impersonate a blocked user') }
-
- it_behaves_like "user that cannot be impersonated"
- end
-
- context 'for user with expired password' do
- let(:user_to_visit) do
- another_user.update!(password_expires_at: Time.zone.now - 5.minutes)
- another_user
- end
-
- let(:impersonation_error_msg) { _("You cannot impersonate a user with an expired password") }
-
- it_behaves_like "user that cannot be impersonated"
- end
-
- context 'for internal user' do
- let_it_be(:internal_user) { create(:user, :bot) }
- let(:user_to_visit) { internal_user }
- let(:impersonation_error_msg) { _("You cannot impersonate an internal user") }
-
- it_behaves_like "user that cannot be impersonated"
- end
-
- context 'for locked user' do
- let_it_be(:locked_user) { create(:user, :locked) }
- let(:user_to_visit) { locked_user }
- let(:impersonation_error_msg) { _("You cannot impersonate a user who cannot log in") }
-
- it_behaves_like "user that cannot be impersonated"
- end
-
- context 'when already impersonating another user' do
- let_it_be(:admin_user) { create(:user, :admin) }
- let(:impersonation_error_msg) { _("You are already impersonating another user") }
-
- subject do
- visit admin_user_path(admin_user)
- click_link 'Impersonate'
- visit admin_user_path(another_user)
- end
-
- it_behaves_like "user that cannot be impersonated"
- end
-
- context 'when impersonation is disabled' do
- before do
- stub_config_setting(impersonation_enabled: false)
- end
-
- it 'does not show impersonate button' do
- subject
-
- expect(page).not_to have_content('Impersonate')
- end
- end
- end
-
- context 'when impersonating' do
- subject { click_link 'Impersonate' }
-
- before do
- visit admin_user_path(another_user)
- end
-
- it 'logs in as the user when impersonate is clicked', :js do
- subject
-
- expect(page).to have_button("#{another_user.name} user’s menu")
- end
-
- it 'sees impersonation log out icon', :js do
- subject
-
- icon = first('[data-testid="incognito-icon"]')
- expect(icon).not_to be nil
- end
-
- context 'when viewing the confirm email warning', :js do
- before do
- stub_application_setting_enum('email_confirmation_setting', 'soft')
- end
-
- let_it_be(:another_user) { create(:user, :unconfirmed) }
- let(:warning_alert) { page.find(:css, '[data-testid="alert-warning"]') }
- let(:expected_styling) { { 'pointer-events' => 'none', 'cursor' => 'default' } }
-
- context 'with an email that does not contain HTML' do
- before do
- subject
- end
-
- it 'displays the warning alert including the email' do
- expect(warning_alert.text).to include("Please check your email (#{another_user.email}) to verify")
- end
- end
-
- context 'with an email that contains HTML' do
- let(:malicious_email) { "malicious@test.com<form><input/title='<script>alert(document.domain)</script>'>" }
- let(:another_user) { create(:user, confirmed_at: nil, unconfirmed_email: malicious_email) }
-
- before do
- subject
- end
-
- it 'displays the impersonation alert, excludes email, and disables links' do
- expect(warning_alert.text).to include("check your email (#{another_user.unconfirmed_email}) to verify")
- end
- end
- end
- end
-
- context 'ending impersonation', :js do
- subject { click_on 'Stop impersonating' }
-
- before do
- visit admin_user_path(another_user)
- click_link 'Impersonate'
- end
-
- it 'logs out of impersonated user back to original user' do
- subject
-
- expect(page).to have_button("#{current_user.name} user’s menu")
- end
-
- it 'is redirected back to the impersonated users page in the admin after stopping' do
- subject
-
- expect(page).to have_current_path("/admin/users/#{another_user.username}", ignore_query: true)
- end
-
- context 'a user with an expired password' do
- before do
- another_user.update!(password_expires_at: Time.zone.now - 5.minutes)
- end
-
- it 'is redirected back to the impersonated users page in the admin after stopping' do
- subject
-
- expect(page).to have_current_path("/admin/users/#{another_user.username}", ignore_query: true)
- end
- end
- end
- end
-
- describe 'Two-factor Authentication status' do
- it 'shows when enabled' do
- user.update!(otp_required_for_login: true)
-
- visit admin_user_path(user)
-
- expect_two_factor_status('Enabled')
- end
-
- it 'shows when disabled' do
- user.update!(otp_required_for_login: false)
-
- visit admin_user_path(user)
-
- expect_two_factor_status('Disabled')
- end
-
- def expect_two_factor_status(status)
- page.within('.two-factor-status') do
- expect(page).to have_content(status)
- end
- end
- end
-
- describe 'Email verification status' do
- let_it_be(:secondary_email) do
- create :email, email: 'secondary@example.com', user: user
- end
-
- it 'displays the correct status for an unverified email address', :aggregate_failures do
- user.update!(confirmed_at: nil, unconfirmed_email: user.email)
- visit admin_user_path(user)
-
- expect(page).to have_content("#{user.email} Unverified")
- expect(page).to have_content("#{secondary_email.email} Unverified")
- end
-
- it 'displays the correct status for a verified email address' do
- visit admin_user_path(user)
- expect(page).to have_content("#{user.email} Verified")
-
- secondary_email.confirm
- expect(secondary_email.confirmed?).to be_truthy
-
- visit admin_user_path(user)
- expect(page).to have_content("#{secondary_email.email} Verified")
- end
- end
-
- describe 'show user identities' do
- it 'shows user identities', :aggregate_failures do
- visit admin_user_identities_path(user)
-
- expect(page).to have_content(user.name)
- expect(page).to have_content('twitter')
- end
- end
-
- describe 'update user identities' do
- before do
- allow(Gitlab::Auth::OAuth::Provider).to receive(:providers).and_return([:twitter, :twitter_updated])
- end
-
- it 'modifies twitter identity', :aggregate_failures do
- visit admin_user_identities_path(user)
-
- find('.table').find(:link, 'Edit').click
- fill_in 'identity_extern_uid', with: '654321'
- select 'twitter_updated', from: 'identity_provider'
- click_button 'Save changes'
-
- expect(page).to have_content(user.name)
- expect(page).to have_content('twitter_updated')
- expect(page).to have_content('654321')
- end
- end
-
- describe 'remove users secondary email', :js do
- let_it_be(:secondary_email) do
- create :email, email: 'secondary@example.com', user: user
- end
-
- it do
- visit admin_user_path(user.username)
-
- expect(page).to have_content("Secondary email: #{secondary_email.email}")
-
- accept_gl_confirm { find("#remove_email_#{secondary_email.id}").click }
-
- expect(page).not_to have_content(secondary_email.email)
- end
- end
-
- describe 'remove user with identities' do
- it 'removes user with twitter identity', :aggregate_failures do
- visit admin_user_identities_path(user)
-
- click_link 'Delete'
-
- expect(page).to have_content(user.name)
- expect(page).not_to have_content('twitter')
- end
- end
-
- describe 'show user keys', :js do
- it do
- key1 = create(:key, user: user, title: 'ssh-rsa Key1')
- key2 = create(:key, user: user, title: 'ssh-rsa Key2')
-
- visit admin_user_path(user)
-
- click_link 'SSH keys'
-
- expect(page).to have_content(key1.title)
- expect(page).to have_content(key2.title)
-
- click_link key2.title
-
- expect(page).to have_content(key2.title)
- expect(page).to have_content(key2.key)
-
- click_button 'Delete'
-
- page.within('.modal') do
- page.click_button('Delete')
- end
-
- expect(page).not_to have_content(key2.title)
- end
- end
-
- describe 'show user attributes' do
- it 'has expected attributes', :aggregate_failures do
- visit admin_user_path(user)
-
- expect(page).to have_content 'Account'
- expect(page).to have_content 'Personal projects limit'
- end
- end
- end
-
- describe 'GET /admin/users', :js do
- context 'user pending approval' do
- it 'shows user info', :aggregate_failures do
- user = create(:user, :blocked_pending_approval)
-
- visit admin_users_path
- click_link 'Pending approval'
- click_link user.name
-
- expect(page).to have_content(user.name)
- expect(page).to have_content('Pending approval')
-
- click_user_dropdown_toggle(user.id)
-
- expect(page).to have_button('Approve')
- expect(page).to have_button('Reject')
- end
- end
- end
-
- context 'when user has an unconfirmed email', :js do
- # Email address contains HTML to ensure email address is displayed in an HTML safe way.
- let_it_be(:unconfirmed_email) { "#{generate(:email)}<h2>testing<img/src=http://localhost:8000/test.png>" }
- let_it_be(:unconfirmed_user) { create(:user, :unconfirmed, unconfirmed_email: unconfirmed_email) }
-
- where(:path_helper) do
- [
- [-> (user) { admin_user_path(user) }],
- [-> (user) { projects_admin_user_path(user) }],
- [-> (user) { keys_admin_user_path(user) }],
- [-> (user) { admin_user_identities_path(user) }],
- [-> (user) { admin_user_impersonation_tokens_path(user) }]
- ]
- end
-
- with_them do
- it "allows an admin to force confirmation of the user's email", :aggregate_failures do
- visit path_helper.call(unconfirmed_user)
-
- click_button 'Confirm user'
-
- within_modal do
- expect(page).to have_content("Confirm user #{unconfirmed_user.name}?")
- expect(page).to have_content(
- "This user has an unconfirmed email address (#{unconfirmed_email}). You may force a confirmation."
- )
-
- click_button 'Confirm user'
- end
-
- expect(page).to have_content('Successfully confirmed')
- expect(page).not_to have_button('Confirm user')
- end
- end
- end
-end
diff --git a/spec/features/admin/users/users_spec.rb b/spec/features/admin/users/users_spec.rb
index 4e988674858..20cedda626b 100644
--- a/spec/features/admin/users/users_spec.rb
+++ b/spec/features/admin/users/users_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe 'Admin::Users', feature_category: :user_management do
before do
sign_in(current_user)
- gitlab_enable_admin_mode_sign_in(current_user)
+ enable_admin_mode!(current_user)
end
describe 'GET /admin/users', :js do
@@ -381,6 +381,24 @@ RSpec.describe 'Admin::Users', feature_category: :user_management do
expect(find_by_testid("user-group-count-#{current_user.id}").text).to eq("2")
end
end
+
+ context 'user pending approval' do
+ it 'shows user info', :aggregate_failures do
+ user = create(:user, :blocked_pending_approval)
+
+ visit admin_users_path
+ click_link 'Pending approval'
+ click_link user.name
+
+ expect(page).to have_content(user.name)
+ expect(page).to have_content('Pending approval')
+
+ click_user_dropdown_toggle(user.id)
+
+ expect(page).to have_button('Approve')
+ expect(page).to have_button('Reject')
+ end
+ end
end
describe 'GET /admin/users/new' do
diff --git a/spec/features/admin_variables_spec.rb b/spec/features/admin_variables_spec.rb
index caa94209e50..0fc0ae9e199 100644
--- a/spec/features/admin_variables_spec.rb
+++ b/spec/features/admin_variables_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe 'Instance variables', :js, feature_category: :secrets_management
before do
stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit page_path
wait_for_requests
diff --git a/spec/features/boards/board_filters_spec.rb b/spec/features/boards/board_filters_spec.rb
index a6d5d4926ff..92cb688e4e3 100644
--- a/spec/features/boards/board_filters_spec.rb
+++ b/spec/features/boards/board_filters_spec.rb
@@ -194,8 +194,6 @@ RSpec.describe 'Issue board filters', :js, feature_category: :team_planning do
let_it_be(:child_project_member) { create(:user).tap { |u| project.add_maintainer(u) } }
before do
- stub_feature_flags(apollo_boards: false)
-
group.add_maintainer(user)
sign_in(user)
end
diff --git a/spec/features/boards/keyboard_shortcut_spec.rb b/spec/features/boards/keyboard_shortcut_spec.rb
index 6f03f6db3ab..d4777fa671c 100644
--- a/spec/features/boards/keyboard_shortcut_spec.rb
+++ b/spec/features/boards/keyboard_shortcut_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe 'Issue Boards shortcut', :js, feature_category: :team_planning do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit project_path(project)
end
@@ -30,7 +30,7 @@ RSpec.describe 'Issue Boards shortcut', :js, feature_category: :team_planning do
before do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit project_path(project)
end
diff --git a/spec/features/broadcast_messages_spec.rb b/spec/features/broadcast_messages_spec.rb
index f887242384c..867ed3c3acb 100644
--- a/spec/features/broadcast_messages_spec.rb
+++ b/spec/features/broadcast_messages_spec.rb
@@ -121,7 +121,7 @@ RSpec.describe 'Broadcast Messages', feature_category: :onboarding do
stub_const('Gitlab::Cache::JsonCaches::JsonKeyed::STRATEGY_KEY_COMPONENTS', original_strategy_value)
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit admin_broadcast_messages_path
diff --git a/spec/features/clusters/cluster_detail_page_spec.rb b/spec/features/clusters/cluster_detail_page_spec.rb
index 31dec5e38da..78ac752a375 100644
--- a/spec/features/clusters/cluster_detail_page_spec.rb
+++ b/spec/features/clusters/cluster_detail_page_spec.rb
@@ -145,7 +145,7 @@ RSpec.describe 'Clusterable > Show page', feature_category: :deployment_manageme
let(:cluster) { create(:cluster, :provided_by_gcp, :instance) }
before do
- gitlab_enable_admin_mode_sign_in(current_user)
+ enable_admin_mode!(current_user)
end
it_behaves_like 'show page' do
diff --git a/spec/features/dashboard/todos/todos_spec.rb b/spec/features/dashboard/todos/todos_spec.rb
index 21dfa1cbc0b..88b3635153c 100644
--- a/spec/features/dashboard/todos/todos_spec.rb
+++ b/spec/features/dashboard/todos/todos_spec.rb
@@ -33,11 +33,11 @@ RSpec.describe 'Dashboard Todos', :js, feature_category: :team_planning do
sign_in(user)
end
- it 'shows "Are you looking for things to do?" message' do
+ it 'shows "Not sure where to go next?" message' do
create(:todo, :assigned, :done, user: user, project: project, target: issue, author: user2)
visit dashboard_todos_path
- expect(page).to have_content 'Are you looking for things to do? Take a look at open issues, contribute to a merge request, or mention someone in a comment to automatically assign them a new to-do item.'
+ expect(page).to have_content 'Not sure where to go next? Take a look at your assigned issues or merge requests.'
end
end
end
diff --git a/spec/features/expand_collapse_diffs_spec.rb b/spec/features/expand_collapse_diffs_spec.rb
index 7fbd6c4e235..523ef8990bb 100644
--- a/spec/features/expand_collapse_diffs_spec.rb
+++ b/spec/features/expand_collapse_diffs_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe 'Expand and collapse diffs', :js, feature_category: :source_code_
allow(Gitlab::CurrentSettings).to receive(:diff_max_patch_bytes).and_return(100.kilobytes)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
wait_for_requests
diff --git a/spec/features/explore/catalog/catalog_details_spec.rb b/spec/features/explore/catalog/catalog_details_spec.rb
new file mode 100644
index 00000000000..8def565ac01
--- /dev/null
+++ b/spec/features/explore/catalog/catalog_details_spec.rb
@@ -0,0 +1,48 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'CI/CD Catalog details page', :js, feature_category: :pipeline_composition do
+ let_it_be(:namespace) { create(:group) }
+ let_it_be(:user) { create(:user) }
+ let_it_be(:project) { create(:project, :public, :repository, namespace: namespace) }
+
+ shared_examples_for 'has correct viewing permissions' do
+ context 'when the resource is published' do
+ let(:published_catalog_resource) { create(:ci_catalog_resource, :published, project: project) }
+
+ before do
+ visit explore_catalog_path(published_catalog_resource)
+ end
+
+ it 'navigates to the details page' do
+ expect(page).to have_content('Go to the project')
+ end
+ end
+
+ context 'when the resource is not published' do
+ let(:draft_catalog_resource) { create(:ci_catalog_resource, project: project, state: :draft) }
+
+ before do
+ visit explore_catalog_path(draft_catalog_resource)
+ end
+
+ it 'returns a 404' do
+ expect(page).to have_title('Not Found')
+ expect(page).to have_content('Page Not Found')
+ end
+ end
+ end
+
+ context 'when authenticated' do
+ before do
+ sign_in(user)
+ end
+
+ it_behaves_like 'has correct viewing permissions'
+ end
+
+ context 'when unauthenticated' do
+ it_behaves_like 'has correct viewing permissions'
+ end
+end
diff --git a/spec/features/explore/catalog/catalog_releases_spec.rb b/spec/features/explore/catalog/catalog_releases_spec.rb
new file mode 100644
index 00000000000..27b7aa17551
--- /dev/null
+++ b/spec/features/explore/catalog/catalog_releases_spec.rb
@@ -0,0 +1,111 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'CI/CD Catalog releases', :js, feature_category: :pipeline_composition do
+ let_it_be(:tag_name) { 'catalog_release_tag' }
+ let_it_be(:user) { create(:user) }
+ let_it_be_with_reload(:namespace) { create(:group) }
+ let_it_be_with_reload(:project) do
+ create(
+ :project,
+ :catalog_resource_with_components,
+ description: 'Brand new thing',
+ namespace: namespace
+ )
+ end
+
+ let_it_be(:draft_catalog_resource) do
+ create(:ci_catalog_resource, project: project)
+ end
+
+ before_all do
+ namespace.add_owner(user)
+ end
+
+ before do
+ sign_in(user)
+ end
+
+ context 'when a resource is in draft' do
+ it 'does not render it in the Catalog', :aggregate_failures do
+ visit explore_catalog_index_path
+
+ expect(find_all('[data-testid="catalog-resource-item"]').length).to be(0)
+ expect(page).not_to have_content(project.name)
+ end
+ end
+
+ describe 'when releasing a Catalog resource' do
+ before do
+ visit new_project_tag_path(project)
+ fill_in('tag_name', with: tag_name)
+ click_button 'Create tag'
+
+ # Click on the option to create release from the tags page
+ find('a', text: 'Create release').click
+
+ # Makes the actual release
+ click_button 'Create release'
+ wait_for_requests
+
+ visit explore_catalog_index_path
+ end
+
+ it 'appears in the CI/CD Catalog', :aggregate_failures do
+ expect(find_all('[data-testid="catalog-resource-item"]').length).to be(1)
+ within_testid('catalog-list-container') do
+ expect(page).to have_content(project.name)
+ expect(page).to have_content(tag_name)
+ expect(page).to have_content("Released")
+ end
+
+ visit explore_catalog_path(draft_catalog_resource)
+
+ expect(page).to have_content("Last release at")
+ expect(page).to have_content(tag_name)
+ end
+ end
+
+ describe 'when a resource has multiple releases' do
+ let_it_be(:project_with_components) do
+ create(
+ :project,
+ :catalog_resource_with_components,
+ description: 'Brand new thing',
+ namespace: namespace
+ )
+ end
+
+ let_it_be(:ci_resource) do
+ create(:ci_catalog_resource, :published, project: project_with_components)
+ end
+
+ let_it_be(:old_tag_name) { 'v0.5' }
+ let_it_be(:new_tag_name) { 'v1.0' }
+
+ let_it_be(:release_1) do
+ create(:release, :with_catalog_resource_version, project: project_with_components, tag: old_tag_name,
+ author: user)
+ end
+
+ let_it_be(:release_2) do
+ create(:release, :with_catalog_resource_version, project: project_with_components, tag: new_tag_name,
+ author: user)
+ end
+
+ it 'renders the last version on the catalog list item' do
+ visit explore_catalog_index_path
+
+ expect(page).to have_content(release_2.tag)
+ expect(page).not_to have_content(release_1.tag)
+ end
+
+ it 'renders the last version on the catalog details page' do
+ visit explore_catalog_path(ci_resource)
+
+ expect(page).to have_content(release_2.tag)
+ expect(page).not_to have_content(release_1.tag)
+ end
+ end
+end
diff --git a/spec/features/explore/catalog/catalog_settings_spec.rb b/spec/features/explore/catalog/catalog_settings_spec.rb
index bf324eafd7f..edaa8951a27 100644
--- a/spec/features/explore/catalog/catalog_settings_spec.rb
+++ b/spec/features/explore/catalog/catalog_settings_spec.rb
@@ -5,13 +5,22 @@ require 'spec_helper'
RSpec.describe 'CI/CD Catalog settings', :js, feature_category: :pipeline_composition do
let_it_be(:user) { create(:user) }
let_it_be_with_reload(:namespace) { create(:group) }
- let_it_be_with_reload(:new_project) { create(:project, :repository, namespace: namespace) }
+ let_it_be_with_reload(:project_with_ci_components) do
+ create(
+ :project,
+ :catalog_resource_with_components,
+ description: "catalog resource description",
+ namespace: namespace
+ )
+ end
context 'when user is not the owner' do
+ before_all do
+ namespace.add_maintainer(user)
+ end
+
before do
sign_in(user)
- visit edit_project_path(new_project)
- wait_for_requests
end
it 'does not show the CI/CD toggle settings' do
@@ -29,50 +38,96 @@ RSpec.describe 'CI/CD Catalog settings', :js, feature_category: :pipeline_compos
end
it 'shows the CI/CD toggle settings' do
- visit edit_project_path(new_project)
+ visit edit_project_path(project_with_ci_components)
wait_for_requests
expect(page).to have_content('CI/CD Catalog resource')
end
- describe 'when setting a project as a Catalog resource' do
+ context 'when a project is not a Catalog resource' do
before do
- visit project_path(new_project)
- wait_for_requests
+ visit project_path(project_with_ci_components)
end
- it 'adds the project to the CI/CD Catalog' do
+ it 'does not render the CI/CD resource badge' do
+ expect(page).to have_content(project_with_ci_components.name)
expect(page).not_to have_content('CI/CD catalog resource')
+ end
+ end
- visit edit_project_path(new_project)
+ describe 'when listing a project as a Catalog resource' do
+ let_it_be(:tag_name) { 'v0.1' }
+ before do
+ visit edit_project_path(project_with_ci_components)
find('[data-testid="catalog-resource-toggle"] button').click
+ wait_for_requests
+ end
- visit project_path(new_project)
+ it 'marks the project as a CI/CD Catalog' do
+ visit project_path(project_with_ci_components)
expect(page).to have_content('CI/CD catalog resource')
end
+
+ context 'and there are no releases' do
+ before do
+ visit explore_catalog_index_path
+ end
+
+ it 'does not add the resource to the catalog', :aggregate_failures do
+ expect(page).to have_content("CI/CD Catalog")
+ expect(find_all('[data-testid="catalog-resource-item"]').length).to be(0)
+ end
+ end
+
+ context 'and there is a release' do
+ before do
+ create(:release, :with_catalog_resource_version, tag: tag_name, author: user,
+ project: project_with_ci_components)
+ # This call to `publish` is necessary to simulate what creating a release would really do
+ project_with_ci_components.catalog_resource.publish!
+ visit explore_catalog_index_path
+ end
+
+ it 'adds the resource to the catalog', :aggregate_failures do
+ expect(page).to have_content("CI/CD Catalog")
+ expect(find_all('[data-testid="catalog-resource-item"]').length).to be(1)
+ expect(page).to have_content(tag_name)
+ end
+ end
end
describe 'when unlisting a project from the CI/CD Catalog' do
before do
- create(:ci_catalog_resource, project: new_project, state: :published)
- visit project_path(new_project)
- wait_for_requests
- end
+ create(:ci_catalog_resource, project: project_with_ci_components)
+ create(:release, :with_catalog_resource_version, tag: 'v0.1', author: user, project: project_with_ci_components)
+ project_with_ci_components.catalog_resource.publish!
- it 'removes the project to the CI/CD Catalog' do
- expect(page).to have_content('CI/CD catalog resource')
-
- visit edit_project_path(new_project)
+ visit edit_project_path(project_with_ci_components)
find('[data-testid="catalog-resource-toggle"] button').click
click_button 'Remove from the CI/CD catalog'
+ end
- visit project_path(new_project)
+ it 'removes the CI/CD Catalog tag on the project' do
+ visit project_path(project_with_ci_components)
expect(page).not_to have_content('CI/CD catalog resource')
end
+
+ it 'removes the resource from the catalog' do
+ visit explore_catalog_index_path
+
+ expect(page).not_to have_content(project_with_ci_components.name)
+ expect(find_all('[data-testid="catalog-resource-item"]').length).to be(0)
+ end
+
+ it 'does not destroy existing releases' do
+ visit project_releases_path(project_with_ci_components)
+
+ expect(page).to have_content(project_with_ci_components.releases.last.name)
+ end
end
end
end
diff --git a/spec/features/explore/catalog/catalog_spec.rb b/spec/features/explore/catalog/catalog_spec.rb
index 00bbb02ebbf..1ad0e9679b8 100644
--- a/spec/features/explore/catalog/catalog_spec.rb
+++ b/spec/features/explore/catalog/catalog_spec.rb
@@ -5,52 +5,123 @@ require 'spec_helper'
RSpec.describe 'CI/CD Catalog', :js, feature_category: :pipeline_composition do
let_it_be(:namespace) { create(:group) }
let_it_be(:user) { create(:user) }
+ let_it_be(:public_projects_with_components) do
+ create_list(
+ :project,
+ 3,
+ :catalog_resource_with_components,
+ :public,
+ description: 'A simple component',
+ namespace: namespace
+ )
+ end
before_all do
- namespace.add_developer(user)
+ public_projects_with_components.map do |current_project|
+ create(:ci_catalog_resource, :published, project: current_project)
+ end
end
- before do
- sign_in(user)
- end
+ shared_examples 'basic page viewing' do
+ it 'shows CI Catalog title and description', :aggregate_failures do
+ expect(page).to have_content('CI/CD Catalog')
+ expect(page).to have_content(
+ 'Discover CI/CD components that can improve your pipeline with additional functionality'
+ )
+ end
- describe 'GET explore/catalog' do
- let_it_be(:project) { create(:project, :repository, namespace: namespace) }
+ it 'renders CI Catalog resources list' do
+ expect(find_all('[data-testid="catalog-resource-item"]').length).to be(3)
+ end
- let_it_be(:ci_resource_projects) do
- create_list(
- :project,
- 3,
- :repository,
- description: 'A simple component',
- namespace: namespace
- )
+ it 'renders resource details', :aggregate_failures do
+ within_testid('catalog-resource-item', match: :first) do
+ expect(page).to have_content(public_projects_with_components[2].name)
+ expect(page).to have_content(public_projects_with_components[2].description)
+ expect(page).to have_content(namespace.name)
+ end
end
+ end
- let_it_be(:ci_catalog_resources) do
- ci_resource_projects.map do |current_project|
- create(:ci_catalog_resource, :published, project: current_project)
+ shared_examples 'navigates to the details page' do
+ context 'when clicking on a resource' do
+ before do
+ find_by_testid('ci-resource-link', match: :first).click
+ end
+
+ it 'navigates to the details page' do
+ expect(page).to have_content('Go to the project')
end
end
+ end
+ context 'when unauthenticated' do
before do
visit explore_catalog_index_path
- wait_for_requests
end
- it 'shows CI Catalog title and description', :aggregate_failures do
- expect(page).to have_content('CI/CD Catalog')
- expect(page).to have_content(
- 'Discover CI/CD components that can improve your pipeline with additional functionality'
+ it_behaves_like 'basic page viewing'
+ it_behaves_like 'navigates to the details page'
+ end
+
+ context 'when authenticated' do
+ before do
+ sign_in(user)
+ visit explore_catalog_index_path
+ end
+
+ it_behaves_like 'basic page viewing'
+ it_behaves_like 'navigates to the details page'
+ end
+
+ context 'for private catalog resources' do
+ let_it_be(:private_project) do
+ create(
+ :project,
+ :catalog_resource_with_components,
+ description: 'Our private project',
+ namespace: namespace
)
end
- it 'renders CI Catalog resources list' do
- expect(find_all('[data-testid="catalog-resource-item"]').length).to be(3)
+ let_it_be(:catalog_resource) { create(:ci_catalog_resource, :published, project: private_project) }
+ let_it_be(:developer) { create(:user) }
+ let_it_be(:browsing_user) { create(:user) }
+
+ context 'when browsing as a developer + member' do
+ before_all do
+ namespace.add_developer(developer)
+ end
+
+ before do
+ sign_in(developer)
+ visit explore_catalog_index_path
+ end
+
+ it 'shows the catalog resource' do
+ expect(page).to have_content(private_project.name)
+ end
+ end
+
+ context 'when browsing as a non-member of the project' do
+ before do
+ sign_in(browsing_user)
+ visit explore_catalog_index_path
+ end
+
+ it 'does not show the catalog resource' do
+ expect(page).not_to have_content(private_project.name)
+ end
+ end
+ end
+
+ describe 'Search and sorting' do
+ before do
+ visit explore_catalog_index_path
end
context 'when searching for a resource' do
- let(:project_name) { ci_resource_projects[0].name }
+ let(:project_name) { public_projects_with_components[0].name }
before do
find('input[data-testid="catalog-search-bar"]').send_keys project_name
@@ -70,8 +141,12 @@ RSpec.describe 'CI/CD Catalog', :js, feature_category: :pipeline_composition do
context 'with the creation date option' do
it 'sorts resources from last to first by default' do
expect(find_all('[data-testid="catalog-resource-item"]').length).to be(3)
- expect(find_all('[data-testid="catalog-resource-item"]')[0]).to have_content(ci_resource_projects[2].name)
- expect(find_all('[data-testid="catalog-resource-item"]')[2]).to have_content(ci_resource_projects[0].name)
+ expect(find_all('[data-testid="catalog-resource-item"]')[0]).to have_content(
+ public_projects_with_components[2].name
+ )
+ expect(find_all('[data-testid="catalog-resource-item"]')[2]).to have_content(
+ public_projects_with_components[0].name
+ )
end
context 'when changing the sort direction' do
@@ -82,56 +157,15 @@ RSpec.describe 'CI/CD Catalog', :js, feature_category: :pipeline_composition do
it 'sorts resources from first to last' do
expect(find_all('[data-testid="catalog-resource-item"]').length).to be(3)
- expect(find_all('[data-testid="catalog-resource-item"]')[0]).to have_content(ci_resource_projects[0].name)
- expect(find_all('[data-testid="catalog-resource-item"]')[2]).to have_content(ci_resource_projects[2].name)
+ expect(find_all('[data-testid="catalog-resource-item"]')[0]).to have_content(
+ public_projects_with_components[0].name
+ )
+ expect(find_all('[data-testid="catalog-resource-item"]')[2]).to have_content(
+ public_projects_with_components[2].name
+ )
end
end
end
end
-
- context 'for a single CI/CD catalog resource' do
- it 'renders resource details', :aggregate_failures do
- within_testid('catalog-resource-item', match: :first) do
- expect(page).to have_content(ci_resource_projects[2].name)
- expect(page).to have_content(ci_resource_projects[2].description)
- expect(page).to have_content(namespace.name)
- end
- end
-
- context 'when clicked' do
- before do
- find_by_testid('ci-resource-link', match: :first).click
- end
-
- it 'navigates to the details page' do
- expect(page).to have_content('Go to the project')
- end
- end
- end
- end
-
- describe 'GET explore/catalog/:id' do
- let_it_be(:project) { create(:project, :repository, namespace: namespace) }
-
- before do
- visit explore_catalog_path(new_ci_resource)
- end
-
- context 'when the resource is published' do
- let(:new_ci_resource) { create(:ci_catalog_resource, :published, project: project) }
-
- it 'navigates to the details page' do
- expect(page).to have_content('Go to the project')
- end
- end
-
- context 'when the resource is not published' do
- let(:new_ci_resource) { create(:ci_catalog_resource, project: project, state: :draft) }
-
- it 'returns a 404' do
- expect(page).to have_title('Not Found')
- expect(page).to have_content('Page Not Found')
- end
- end
end
end
diff --git a/spec/features/gitlab_experiments_spec.rb b/spec/features/gitlab_experiments_spec.rb
index facf4994c44..0d0afa801c8 100644
--- a/spec/features/gitlab_experiments_spec.rb
+++ b/spec/features/gitlab_experiments_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe "Gitlab::Experiment", :js, feature_category: :activation do
before do
admin = create(:admin)
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
stub_experiments(null_hypothesis: :candidate)
end
diff --git a/spec/features/groups/clusters/user_spec.rb b/spec/features/groups/clusters/user_spec.rb
index 9089fba1886..24552daa11b 100644
--- a/spec/features/groups/clusters/user_spec.rb
+++ b/spec/features/groups/clusters/user_spec.rb
@@ -130,7 +130,7 @@ RSpec.describe 'User Cluster', :js, feature_category: :environment_management do
gitlab_sign_out
gitlab_sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit group_clusters_path(group)
end
diff --git a/spec/features/groups/members/list_members_spec.rb b/spec/features/groups/members/list_members_spec.rb
index b16d61a5fe4..b6e0deb2e73 100644
--- a/spec/features/groups/members/list_members_spec.rb
+++ b/spec/features/groups/members/list_members_spec.rb
@@ -66,7 +66,7 @@ RSpec.describe 'Groups > Members > List members', :js, feature_category: :groups
it 'shows 2FA badge to admins' do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit group_group_members_path(group)
diff --git a/spec/features/groups/settings/user_enables_namespace_hierarchy_cache_spec.rb b/spec/features/groups/settings/user_enables_namespace_hierarchy_cache_spec.rb
new file mode 100644
index 00000000000..4b362a9561d
--- /dev/null
+++ b/spec/features/groups/settings/user_enables_namespace_hierarchy_cache_spec.rb
@@ -0,0 +1,58 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Groups > Permission and group features > Enable caching of hierarchical objects', :js, feature_category: :value_stream_management do
+ include ListboxHelpers
+
+ let_it_be_with_reload(:group) { create(:group) }
+ let_it_be(:user) { create(:user).tap { |u| group.add_owner(u) } }
+
+ before do
+ sign_in(user)
+ end
+
+ context 'with the group_hierarchy_optimization feature flag enabled' do
+ before do
+ stub_feature_flags(group_hierarchy_optimization: true)
+ end
+
+ it 'enables the setting' do
+ visit edit_group_path(group)
+
+ page.within('#js-permissions-settings') do
+ check 'group[enable_namespace_descendants_cache]'
+
+ click_on 'Save changes'
+ end
+
+ expect(group.namespace_descendants).to be_present
+ end
+
+ it 'disables the setting' do
+ create(:namespace_descendants, namespace: group)
+
+ visit edit_group_path(group)
+
+ page.within('#js-permissions-settings') do
+ uncheck 'group[enable_namespace_descendants_cache]'
+
+ click_on 'Save changes'
+ end
+
+ expect(group.reload.namespace_descendants).not_to be_present
+ end
+ end
+
+ context 'with the group_hierarchy_optimization feature flag disabled' do
+ before do
+ stub_feature_flags(group_hierarchy_optimization: false)
+ end
+
+ it 'does not render the setting' do
+ visit edit_group_path(group)
+
+ expect(page).not_to have_selector('group[enable_namespace_descendants_cache]')
+ end
+ end
+end
diff --git a/spec/features/groups/show_spec.rb b/spec/features/groups/show_spec.rb
index c2ab5edf79c..553c2f0266e 100644
--- a/spec/features/groups/show_spec.rb
+++ b/spec/features/groups/show_spec.rb
@@ -81,6 +81,7 @@ RSpec.describe 'Group show page', feature_category: :groups_and_projects do
expect(find('.group-row:nth-child(1) .namespace-title > a')).to have_content(project2.title)
expect(find('.group-row:nth-child(2) .namespace-title > a')).to have_content(project1.title)
expect(find('.group-row:nth-child(3) .namespace-title > a')).to have_content(project3.title)
+ expect(page).to have_selector('button[data-testid="base-dropdown-toggle"]', text: 'Stars')
end
end
end
diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb
index c0aaa7f818a..aac2e3c4e46 100644
--- a/spec/features/groups_spec.rb
+++ b/spec/features/groups_spec.rb
@@ -205,7 +205,10 @@ RSpec.describe 'Group', feature_category: :groups_and_projects do
describe 'not showing personalization questions on group creation when it is enabled' do
before do
stub_application_setting(hide_third_party_offers: true)
- visit new_group_path(anchor: 'create-group-pane')
+
+ # If visiting directly via path, personalization setting is not being picked up correctly
+ visit new_group_path
+ click_link 'Create group'
end
it 'does not render personalization questions' do
@@ -350,10 +353,16 @@ RSpec.describe 'Group', feature_category: :groups_and_projects do
visit path
end
- it_behaves_like 'dirty submit form', [{ form: '.js-general-settings-form', input: 'input[name="group[name]"]', submit: 'button[type="submit"]' },
- { form: '.js-general-settings-form', input: '#group_visibility_level_0', submit: 'button[type="submit"]' },
- { form: '.js-general-permissions-form', input: '#group_request_access_enabled', submit: 'button[type="submit"]' },
- { form: '.js-general-permissions-form', input: 'input[name="group[two_factor_grace_period]"]', submit: 'button[type="submit"]' }]
+ it_behaves_like 'dirty submit form', [
+ { form: '.js-general-settings-form', input: 'input[name="group[name]"]', submit: 'button[type="submit"]' },
+ { form: '.js-general-settings-form', input: '#group_visibility_level_0', submit: 'button[type="submit"]' },
+ { form: '.js-general-permissions-form', input: '#group_request_access_enabled', submit: 'button[type="submit"]' },
+ {
+ form: '.js-general-permissions-form',
+ input: 'input[name="group[two_factor_grace_period]"]',
+ submit: 'button[type="submit"]'
+ }
+ ]
it 'saves new settings' do
page.within('.gs-general') do
diff --git a/spec/features/help_dropdown_spec.rb b/spec/features/help_dropdown_spec.rb
index 3e4c0bc55fe..89040ec9ab6 100644
--- a/spec/features/help_dropdown_spec.rb
+++ b/spec/features/help_dropdown_spec.rb
@@ -27,7 +27,7 @@ RSpec.describe "Help Dropdown", :js, feature_category: :shared do
context "when severity is #{severity}" do
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
allow_next_instance_of(VersionCheck) do |instance|
allow(instance).to receive(:response).and_return({ "severity" => severity })
diff --git a/spec/features/issuables/issuable_list_spec.rb b/spec/features/issuables/issuable_list_spec.rb
index 1020ea341ce..fee0f8a8f32 100644
--- a/spec/features/issuables/issuable_list_spec.rb
+++ b/spec/features/issuables/issuable_list_spec.rb
@@ -16,11 +16,11 @@ RSpec.describe 'issuable list', :js, feature_category: :team_planning do
issuable_types.each do |issuable_type|
it "avoids N+1 database queries for #{issuable_type.to_s.humanize.pluralize}", quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/231426' } do
- control_count = ActiveRecord::QueryRecorder.new { visit_issuable_list(issuable_type) }.count
+ control = ActiveRecord::QueryRecorder.new { visit_issuable_list(issuable_type) }
create_issuables(issuable_type)
- expect { visit_issuable_list(issuable_type) }.not_to exceed_query_limit(control_count)
+ expect { visit_issuable_list(issuable_type) }.not_to exceed_query_limit(control)
end
it "counts upvotes, downvotes and notes count for each #{issuable_type.to_s.humanize}" do
diff --git a/spec/features/issues/gfm_autocomplete_spec.rb b/spec/features/issues/gfm_autocomplete_spec.rb
index 728ba07e5c4..58c84d26fea 100644
--- a/spec/features/issues/gfm_autocomplete_spec.rb
+++ b/spec/features/issues/gfm_autocomplete_spec.rb
@@ -185,7 +185,7 @@ RSpec.describe 'GFM autocomplete', :js, feature_category: :team_planning do
end
end
- describe 'assignees' do
+ shared_examples 'autocomplete user mentions' do
it 'does not wrap with quotes for assignee values' do
fill_in 'Comment', with: "@#{user.username}"
@@ -252,6 +252,16 @@ RSpec.describe 'GFM autocomplete', :js, feature_category: :team_planning do
end
end
+ it_behaves_like 'autocomplete user mentions'
+
+ context 'when mention_autocomplete_backend_filtering is disabled' do
+ before do
+ stub_feature_flags(mention_autocomplete_backend_filtering: false)
+ end
+
+ it_behaves_like 'autocomplete user mentions'
+ end
+
context 'if a selected value has special characters' do
it 'wraps the result in double quotes' do
fill_in 'Comment', with: "~#{label.title[0..2]}"
diff --git a/spec/features/issues/issue_sidebar_spec.rb b/spec/features/issues/issue_sidebar_spec.rb
index e4df106de07..1a51dd0bc01 100644
--- a/spec/features/issues/issue_sidebar_spec.rb
+++ b/spec/features/issues/issue_sidebar_spec.rb
@@ -73,7 +73,6 @@ RSpec.describe 'Issue Sidebar', feature_category: :team_planning do
page.within '.dropdown-menu-user' do
expect(page).not_to have_content 'Unassigned'
- click_button user2.name
end
find('.participants').click
@@ -82,7 +81,7 @@ RSpec.describe 'Issue Sidebar', feature_category: :team_planning do
open_assignees_dropdown
page.within('.assignee') do
- expect(page.all('[data-testid="selected-participant"]').length).to eq(1)
+ expect(page.all('[data-testid="unselected-participant"]').length).to eq(1)
end
expect(find('[data-testid="user-search-input"]').value).to eq(user2.name)
diff --git a/spec/features/merge_request/user_creates_mr_spec.rb b/spec/features/merge_request/user_creates_mr_spec.rb
index 950b64bb395..5f6e465d011 100644
--- a/spec/features/merge_request/user_creates_mr_spec.rb
+++ b/spec/features/merge_request/user_creates_mr_spec.rb
@@ -74,6 +74,9 @@ RSpec.describe 'Merge request > User creates MR', feature_category: :code_review
visit project_new_merge_request_path(source_project)
+ find('.js-source-branch').click
+ select_listbox_item('master')
+
first('.js-target-project').click
select_listbox_item(target_project.full_path)
diff --git a/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb b/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
index daa84227adc..a68bdfd7356 100644
--- a/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
+++ b/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
@@ -43,6 +43,9 @@ RSpec.describe 'Merge request > User selects branches for new MR', :js, feature_
expect(page).to have_content('Source branch')
expect(page).to have_content('Target branch')
+ find('.js-source-branch').click
+ select_listbox_item('master')
+
first('.js-target-branch').click
find('.gl-listbox-search-input').native.send_keys 'v1.1.0'
select_listbox_item('v1.1.0')
diff --git a/spec/features/merge_requests/admin_views_hidden_merge_requests_spec.rb b/spec/features/merge_requests/admin_views_hidden_merge_requests_spec.rb
index 7e33946f713..f52520313b2 100644
--- a/spec/features/merge_requests/admin_views_hidden_merge_requests_spec.rb
+++ b/spec/features/merge_requests/admin_views_hidden_merge_requests_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe 'Admin views hidden merge requests', feature_category: :insider_t
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit(project_merge_requests_path(project))
end
diff --git a/spec/features/profiles/two_factor_auths_spec.rb b/spec/features/profiles/two_factor_auths_spec.rb
index cea3172898f..bc6f88474a9 100644
--- a/spec/features/profiles/two_factor_auths_spec.rb
+++ b/spec/features/profiles/two_factor_auths_spec.rb
@@ -63,6 +63,35 @@ RSpec.describe 'Two factor auths', feature_category: :system_access do
end
end
+ context 'when two factor is enforced for administrator users' do
+ let_it_be(:admin) { create(:admin) }
+
+ before do
+ stub_application_setting(require_admin_two_factor_authentication: require_admin_two_factor_authentication)
+ sign_in(admin)
+ end
+
+ context 'when visiting root dashboard path' do
+ let(:require_admin_two_factor_authentication) { true }
+
+ it 'renders alert for administrator users' do
+ visit profile_two_factor_auth_path
+ expect(page).to have_content('Administrator users are required to enable Two-Factor Authentication for their account. You need to do this before ')
+ end
+ end
+ end
+
+ context 'when two factor is disabled for administrator users' do
+ context 'when visiting root dashboard path' do
+ let(:require_admin_two_factor_authentication) { false }
+
+ it 'does not render an alert for administrator users' do
+ visit profile_two_factor_auth_path
+ expect(page).not_to have_content('Administrator users are required to enable Two-Factor Authentication for their account. You need to do this before ')
+ end
+ end
+ end
+
context 'when two factor is enforced in global settings' do
before do
stub_application_setting(require_two_factor_authentication: true)
diff --git a/spec/features/profiles/user_visits_profile_preferences_page_spec.rb b/spec/features/profiles/user_visits_profile_preferences_page_spec.rb
index 033d69d29b9..fc0992973e8 100644
--- a/spec/features/profiles/user_visits_profile_preferences_page_spec.rb
+++ b/spec/features/profiles/user_visits_profile_preferences_page_spec.rb
@@ -94,7 +94,7 @@ RSpec.describe 'User visits the profile preferences page', :js, feature_category
end
def expect_preferences_saved_message
- page.within('.flash-container') do
+ page.within('.b-toaster') do
expect(page).to have_content('Preferences saved.')
end
end
diff --git a/spec/features/projects/branches_spec.rb b/spec/features/projects/branches_spec.rb
index a29d643b15b..41b8ad7825c 100644
--- a/spec/features/projects/branches_spec.rb
+++ b/spec/features/projects/branches_spec.rb
@@ -171,12 +171,12 @@ RSpec.describe 'Branches', feature_category: :source_code_management do
new_branches_count = 20
sql_queries_count_threshold = 10
- control_count = ActiveRecord::QueryRecorder.new { visit project_branches_path(project) }.count
+ control = ActiveRecord::QueryRecorder.new { visit project_branches_path(project) }
(1..new_branches_count).each { |number| repository.add_branch(user, "new-branch-#{number}", 'master') }
expect { visit project_branches_filtered_path(project, state: 'all') }
- .not_to exceed_query_limit(control_count).with_threshold(sql_queries_count_threshold)
+ .not_to exceed_query_limit(control).with_threshold(sql_queries_count_threshold)
end
end
diff --git a/spec/features/projects/clusters/gcp_spec.rb b/spec/features/projects/clusters/gcp_spec.rb
index c223053606b..e7e419a4c60 100644
--- a/spec/features/projects/clusters/gcp_spec.rb
+++ b/spec/features/projects/clusters/gcp_spec.rb
@@ -110,7 +110,7 @@ RSpec.describe 'Gcp Cluster', :js, feature_category: :deployment_management do
before do
stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
- gitlab_enable_admin_mode_sign_in(user)
+ enable_admin_mode!(user)
visit general_admin_application_settings_path
end
diff --git a/spec/features/projects/clusters/user_spec.rb b/spec/features/projects/clusters/user_spec.rb
index 067963e06e0..bc4d64dad21 100644
--- a/spec/features/projects/clusters/user_spec.rb
+++ b/spec/features/projects/clusters/user_spec.rb
@@ -120,7 +120,7 @@ RSpec.describe 'User Cluster', :js, feature_category: :deployment_management do
gitlab_sign_out
gitlab_sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit project_clusters_path(project)
end
diff --git a/spec/features/projects/environments/environment_spec.rb b/spec/features/projects/environments/environment_spec.rb
index de4ce3a23b6..57eaef2621e 100644
--- a/spec/features/projects/environments/environment_spec.rb
+++ b/spec/features/projects/environments/environment_spec.rb
@@ -319,7 +319,7 @@ RSpec.describe 'Environment', feature_category: :environment_management do
params = {
change: {
oldrev: project.commit(branch).id,
- newrev: Gitlab::Git::BLANK_SHA,
+ newrev: Gitlab::Git::SHA1_BLANK_SHA,
ref: "refs/heads/#{branch}"
}
}
diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb
index c6a770cee9e..5f1bc4f86c1 100644
--- a/spec/features/projects/features_visibility_spec.rb
+++ b/spec/features/projects/features_visibility_spec.rb
@@ -153,7 +153,7 @@ RSpec.describe 'Edit Project Settings', feature_category: :groups_and_projects d
before do
non_member.update_attribute(:admin, true)
sign_in(non_member)
- gitlab_enable_admin_mode_sign_in(non_member)
+ enable_admin_mode!(non_member)
end
it 'renders 404 if feature is disabled' do
diff --git a/spec/features/projects/members/manage_members_spec.rb b/spec/features/projects/members/manage_members_spec.rb
index 3423c636c2b..e6b6241c2fe 100644
--- a/spec/features/projects/members/manage_members_spec.rb
+++ b/spec/features/projects/members/manage_members_spec.rb
@@ -93,7 +93,8 @@ RSpec.describe 'Projects > Members > Manage members', :js, feature_category: :on
end
end
- context 'uses ProjectMember valid_access_level_roles for the invite members modal options', :aggregate_failures do
+ context 'uses ProjectMember valid_access_level_roles for the invite members modal options', :aggregate_failures,
+ quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/436958' do
before do
sign_in(current_user)
@@ -265,7 +266,7 @@ RSpec.describe 'Projects > Members > Manage members', :js, feature_category: :on
it 'shows 2FA badge to admins' do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit_members_page
diff --git a/spec/features/projects/navbar_spec.rb b/spec/features/projects/navbar_spec.rb
index 348a661855c..9babe3c3b71 100644
--- a/spec/features/projects/navbar_spec.rb
+++ b/spec/features/projects/navbar_spec.rb
@@ -16,6 +16,7 @@ RSpec.describe 'Project navbar', :with_license, :js, feature_category: :groups_a
stub_config(registry: { enabled: false })
stub_feature_flags(ml_experiment_tracking: false)
+ stub_feature_flags(model_registry: false)
insert_package_nav
insert_infrastructure_registry_nav
insert_infrastructure_google_cloud_nav
@@ -93,4 +94,16 @@ RSpec.describe 'Project navbar', :with_license, :js, feature_category: :groups_a
it_behaves_like 'verified navigation bar'
end
+
+ context 'when model registry is available' do
+ before do
+ stub_feature_flags(model_registry: true)
+
+ insert_model_registry_nav(_('Package Registry'))
+
+ visit project_path(project)
+ end
+
+ it_behaves_like 'verified navigation bar'
+ end
end
diff --git a/spec/features/projects/new_project_spec.rb b/spec/features/projects/new_project_spec.rb
index a0df18ea6f3..d6b27d8c618 100644
--- a/spec/features/projects/new_project_spec.rb
+++ b/spec/features/projects/new_project_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe 'New project', :js, feature_category: :groups_and_projects do
+ include ListboxHelpers
+
before do
stub_application_setting(import_sources: Gitlab::ImportSources.values)
end
@@ -311,7 +313,7 @@ RSpec.describe 'New project', :js, feature_category: :groups_and_projects do
it 'does not select the user namespace' do
click_on 'Pick a group or namespace'
- expect(page).to have_button user.username
+ expect_listbox_item(user.username)
end
end
@@ -359,28 +361,28 @@ RSpec.describe 'New project', :js, feature_category: :groups_and_projects do
it 'enables the correct visibility options' do
click_button public_group.full_path
- click_button user.username
+ select_listbox_item user.username
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::PRIVATE}")).not_to be_disabled
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::INTERNAL}")).not_to be_disabled
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::PUBLIC}")).not_to be_disabled
click_button user.username
- click_button public_group.full_path
+ select_listbox_item public_group.full_path
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::PRIVATE}")).not_to be_disabled
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::INTERNAL}")).not_to be_disabled
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::PUBLIC}")).not_to be_disabled
click_button public_group.full_path
- click_button internal_group.full_path
+ select_listbox_item internal_group.full_path
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::PRIVATE}")).not_to be_disabled
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::INTERNAL}")).not_to be_disabled
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::PUBLIC}")).to be_disabled
click_button internal_group.full_path
- click_button private_group.full_path
+ select_listbox_item private_group.full_path
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::PRIVATE}")).not_to be_disabled
expect(find("#project_visibility_level_#{Gitlab::VisibilityLevel::INTERNAL}")).to be_disabled
@@ -467,7 +469,7 @@ RSpec.describe 'New project', :js, feature_category: :groups_and_projects do
)
click_on 'Pick a group or namespace'
- click_on user.username
+ select_listbox_item user.username
click_on 'Create project'
expect(page).to have_css('#import-project-pane.active')
diff --git a/spec/features/projects/settings/registry_settings_spec.rb b/spec/features/projects/settings/registry_settings_spec.rb
index d6e08628721..dc4251aa92f 100644
--- a/spec/features/projects/settings/registry_settings_spec.rb
+++ b/spec/features/projects/settings/registry_settings_spec.rb
@@ -27,7 +27,7 @@ RSpec.describe 'Project > Settings > Packages and registries > Container registr
wait_for_requests
expect(page).to be_axe_clean.within('[data-testid="packages-and-registries-project-settings"]')
- .skipping :'link-in-text-block', :'heading-order'
+ .skipping :'heading-order'
end
it 'shows active tab on sidebar' do
diff --git a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
index 9305467cbe4..3d9addfe456 100644
--- a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
+++ b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require "spec_helper"
+require 'spec_helper'
RSpec.describe "User interacts with deploy keys", :js, feature_category: :continuous_delivery do
let(:project) { create(:project, :repository) }
@@ -10,43 +10,59 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :contin
sign_in(user)
end
- shared_examples "attaches a key" do
- it "attaches key" do
+ shared_examples 'attaches a key' do
+ it 'attaches key' do
visit(project_deploy_keys_path(project))
- page.within(".deploy-keys") do
- find(".badge", text: "1").click
+ page.within('.deploy-keys') do
+ click_link(scope)
- click_button("Enable")
+ click_button('Enable')
- expect(page).not_to have_selector(".gl-spinner")
+ expect(page).not_to have_selector('.gl-spinner')
expect(page).to have_current_path(project_settings_repository_path(project), ignore_query: true)
- find(".js-deployKeys-tab-enabled_keys").click
+ click_link('Enabled deploy keys')
expect(page).to have_content(deploy_key.title)
end
end
end
- context "viewing deploy keys" do
+ context 'viewing deploy keys' do
let(:deploy_key) { create(:deploy_key) }
- context "when project has keys" do
+ context 'when project has keys' do
before do
create(:deploy_keys_project, project: project, deploy_key: deploy_key)
end
- it "shows deploy keys" do
+ it 'shows deploy keys' do
visit(project_deploy_keys_path(project))
- page.within(".deploy-keys") do
+ page.within('.deploy-keys') do
expect(page).to have_content(deploy_key.title)
end
end
end
- context "when another project has keys" do
+ context 'when the project has many deploy keys' do
+ before do
+ create(:deploy_keys_project, project: project, deploy_key: deploy_key)
+ create_list(:deploy_keys_project, 5, project: project)
+ end
+
+ it 'shows pagination' do
+ visit(project_deploy_keys_path(project))
+
+ page.within('.deploy-keys') do
+ expect(page).to have_link('Next')
+ expect(page).to have_link('2')
+ end
+ end
+ end
+
+ context 'when another project has keys' do
let(:another_project) { create(:project) }
before do
@@ -55,26 +71,25 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :contin
another_project.add_maintainer(user)
end
- it "shows deploy keys" do
+ it 'shows deploy keys' do
visit(project_deploy_keys_path(project))
- page.within(".deploy-keys") do
- find('.js-deployKeys-tab-available_project_keys').click
+ page.within('.deploy-keys') do
+ click_link('Privately accessible deploy keys')
expect(page).to have_content(deploy_key.title)
- expect(find(".js-deployKeys-tab-available_project_keys .badge")).to have_content("1")
end
end
end
- context "when there are public deploy keys" do
+ context 'when there are public deploy keys' do
let!(:deploy_key) { create(:deploy_key, public: true) }
- it "shows public deploy keys" do
+ it 'shows public deploy keys' do
visit(project_deploy_keys_path(project))
- page.within(".deploy-keys") do
- find(".js-deployKeys-tab-public_keys").click
+ page.within('.deploy-keys') do
+ click_link('Publicly accessible deploy keys')
expect(page).to have_content(deploy_key.title)
end
@@ -82,43 +97,44 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :contin
end
end
- context "adding deploy keys" do
+ context 'adding deploy keys' do
before do
visit(project_deploy_keys_path(project))
end
- it "adds new key" do
+ it 'adds new key' do
deploy_key_title = attributes_for(:key)[:title]
deploy_key_body = attributes_for(:key)[:key]
- click_button("Add new key")
- fill_in("deploy_key_title", with: deploy_key_title)
- fill_in("deploy_key_key", with: deploy_key_body)
+ click_button('Add new key')
+ fill_in('deploy_key_title', with: deploy_key_title)
+ fill_in('deploy_key_key', with: deploy_key_body)
- click_button("Add key")
+ click_button('Add key')
expect(page).to have_current_path(project_settings_repository_path(project), ignore_query: true)
- page.within(".deploy-keys") do
+ page.within('.deploy-keys') do
expect(page).to have_content(deploy_key_title)
end
end
- it "click on cancel hides the form" do
- click_button("Add new key")
+ it 'click on cancel hides the form' do
+ click_button('Add new key')
expect(page).to have_css('.gl-new-card-add-form')
- click_button("Cancel")
+ click_button('Cancel')
expect(page).not_to have_css('.gl-new-card-add-form')
end
end
- context "attaching existing keys" do
- context "from another project" do
+ context 'attaching existing keys' do
+ context 'from another project' do
let(:another_project) { create(:project) }
let(:deploy_key) { create(:deploy_key) }
+ let(:scope) { 'Privately accessible deploy keys' }
before do
create(:deploy_keys_project, project: another_project, deploy_key: deploy_key)
@@ -126,13 +142,14 @@ RSpec.describe "User interacts with deploy keys", :js, feature_category: :contin
another_project.add_maintainer(user)
end
- it_behaves_like "attaches a key"
+ it_behaves_like 'attaches a key'
end
- context "when keys are public" do
+ context 'when keys are public' do
let!(:deploy_key) { create(:deploy_key, public: true) }
+ let(:scope) { 'Publicly accessible deploy keys' }
- it_behaves_like "attaches a key"
+ it_behaves_like 'attaches a key'
end
end
end
diff --git a/spec/features/projects/show/clone_button_spec.rb b/spec/features/projects/show/clone_button_spec.rb
index e3964a37bcf..83e75101427 100644
--- a/spec/features/projects/show/clone_button_spec.rb
+++ b/spec/features/projects/show/clone_button_spec.rb
@@ -19,8 +19,10 @@ RSpec.describe 'Projects > Show > Clone button', feature_category: :groups_and_p
expect(page).to have_content project.name
end
- it 'sees clone button' do
+ it 'sees clone button', :js do
+ find_by_testid('clone-dropdown').click
expect(page).to have_content _('Clone')
+ expect(page).to be_axe_clean.within('.clone-options-dropdown')
end
end
diff --git a/spec/features/projects/show/redirects_spec.rb b/spec/features/projects/show/redirects_spec.rb
index ef326b92b98..a0424831973 100644
--- a/spec/features/projects/show/redirects_spec.rb
+++ b/spec/features/projects/show/redirects_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe 'Projects > Show > Redirects', feature_category: :groups_and_proj
it 'shows public project page' do
visit project_path(public_project)
- page.within '.breadcrumbs .breadcrumb-item-text' do
+ page.within '.breadcrumbs .js-breadcrumb-item-text' do
expect(page).to have_content(public_project.name)
end
end
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 4933b3f239c..40549beae9f 100644
--- a/spec/features/projects/show/user_sees_git_instructions_spec.rb
+++ b/spec/features/projects/show/user_sees_git_instructions_spec.rb
@@ -49,7 +49,7 @@ RSpec.describe 'Projects > Show > User sees Git instructions', feature_category:
let(:user_has_ssh_key) { false }
it 'shows details' do
- page.within('.breadcrumbs .breadcrumb-item-text') do
+ page.within('.breadcrumbs .js-breadcrumb-item-text') do
expect(page).to have_content(project.title)
end
diff --git a/spec/features/projects/user_creates_project_spec.rb b/spec/features/projects/user_creates_project_spec.rb
index a590d637801..96156f14cfc 100644
--- a/spec/features/projects/user_creates_project_spec.rb
+++ b/spec/features/projects/user_creates_project_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe 'User creates a project', :js, feature_category: :groups_and_projects do
+ include ListboxHelpers
+
let(:user) { create(:user) }
before do
@@ -110,7 +112,7 @@ RSpec.describe 'User creates a project', :js, feature_category: :groups_and_proj
fill_in :project_path, with: 'a-subgroup-project'
click_on 'Pick a group or namespace'
- click_button subgroup.full_path
+ select_listbox_item subgroup.full_path
click_button('Create project')
diff --git a/spec/features/projects/user_sorts_projects_spec.rb b/spec/features/projects/user_sorts_projects_spec.rb
index b80caca5810..3576225a417 100644
--- a/spec/features/projects/user_sorts_projects_spec.rb
+++ b/spec/features/projects/user_sorts_projects_spec.rb
@@ -10,6 +10,10 @@ RSpec.describe 'User sorts projects and order persists', feature_category: :grou
let_it_be(:group_member) { create(:group_member, :maintainer, user: user, group: group) }
let_it_be(:project) { create(:project, :public, group: group) }
+ def find_dropdown_toggle
+ find('button[data-testid=base-dropdown-toggle]')
+ end
+
shared_examples_for "sort order persists across all views" do |project_paths_label, group_paths_label|
it "is set on the dashboard_projects_path" do
visit(dashboard_projects_path)
@@ -27,7 +31,7 @@ RSpec.describe 'User sorts projects and order persists', feature_category: :grou
visit(group_canonical_path(group))
within '[data-testid=group_sort_by_dropdown]' do
- expect(find('.gl-dropdown-toggle')).to have_content(group_paths_label)
+ expect(find_dropdown_toggle).to have_content(group_paths_label)
end
end
@@ -35,7 +39,7 @@ RSpec.describe 'User sorts projects and order persists', feature_category: :grou
visit(details_group_path(group))
within '[data-testid=group_sort_by_dropdown]' do
- expect(find('.gl-dropdown-toggle')).to have_content(group_paths_label)
+ expect(find_dropdown_toggle).to have_content(group_paths_label)
end
end
end
@@ -67,8 +71,8 @@ RSpec.describe 'User sorts projects and order persists', feature_category: :grou
sign_in(user)
visit(group_canonical_path(group))
within '[data-testid=group_sort_by_dropdown]' do
- find('button.gl-dropdown-toggle').click
- first(:button, 'Created').click
+ find_dropdown_toggle.click
+ find('li', text: 'Created').click
wait_for_requests
end
end
@@ -81,8 +85,8 @@ RSpec.describe 'User sorts projects and order persists', feature_category: :grou
sign_in(user)
visit(details_group_path(group))
within '[data-testid=group_sort_by_dropdown]' do
- find('button.gl-dropdown-toggle').click
- first(:button, 'Updated').click
+ find_dropdown_toggle.click
+ find('li', text: 'Updated').click
wait_for_requests
end
end
diff --git a/spec/features/projects/user_views_empty_project_spec.rb b/spec/features/projects/user_views_empty_project_spec.rb
index ed34b109d29..7dc3dd1da1e 100644
--- a/spec/features/projects/user_views_empty_project_spec.rb
+++ b/spec/features/projects/user_views_empty_project_spec.rb
@@ -43,7 +43,7 @@ RSpec.describe 'User views an empty project', feature_category: :groups_and_proj
context 'when admin mode is enabled' do
before do
sign_in(user)
- gitlab_enable_admin_mode_sign_in(user)
+ enable_admin_mode!(user)
end
it_behaves_like 'allowing push to default branch'
diff --git a/spec/features/projects/work_items/linked_work_items_spec.rb b/spec/features/projects/work_items/linked_work_items_spec.rb
index 49f723c3055..f9cdd7b78ab 100644
--- a/spec/features/projects/work_items/linked_work_items_spec.rb
+++ b/spec/features/projects/work_items/linked_work_items_spec.rb
@@ -9,8 +9,16 @@ RSpec.describe 'Work item linked items', :js, feature_category: :team_planning d
let_it_be(:work_item) { create(:work_item, project: project) }
let(:work_items_path) { project_work_item_path(project, work_item.iid) }
let_it_be(:task) { create(:work_item, :task, project: project, title: 'Task 1') }
+ let_it_be(:milestone) { create(:milestone, project: project, title: '1.0') }
+ let_it_be(:label) { create(:label, project: project) }
+ let_it_be(:objective) do
+ create(:work_item, :objective, project: project, milestone: milestone,
+ title: 'Objective 1', labels: [label])
+ end
context 'for signed in user' do
+ let(:token_input_selector) { '[data-testid="work-item-token-select-input"] .gl-token-selector-input' }
+
before_all do
project.add_developer(user)
end
@@ -62,7 +70,27 @@ RSpec.describe 'Work item linked items', :js, feature_category: :team_planning d
end
end
- it 'links a new item', :aggregate_failures do
+ it 'links a new item with work item text', :aggregate_failures do
+ verify_linked_item_added(task.title)
+ end
+
+ it 'links a new item with work item iid', :aggregate_failures do
+ verify_linked_item_added(task.iid)
+ end
+
+ it 'links a new item with work item wildcard iid', :aggregate_failures do
+ verify_linked_item_added("##{task.iid}")
+ end
+
+ it 'links a new item with work item reference', :aggregate_failures do
+ verify_linked_item_added(task.to_reference(full: true))
+ end
+
+ it 'links a new item with work item url', :aggregate_failures do
+ verify_linked_item_added("#{task.project.web_url}/-/work_items/#{task.iid}")
+ end
+
+ it 'removes a linked item', :aggregate_failures do
page.within('.work-item-relationships') do
click_button 'Add'
@@ -80,35 +108,64 @@ RSpec.describe 'Work item linked items', :js, feature_category: :team_planning d
end
expect(find('.work-items-list')).to have_content('Task 1')
+
+ find_by_testid('links-child').hover
+ find_by_testid('remove-work-item-link').click
+
+ wait_for_all_requests
+
+ expect(page).not_to have_content('Task 1')
end
end
- it 'removes a linked item', :aggregate_failures do
+ it 'passes axe automated accessibility testing for linked items empty state' do
+ expect(page).to be_axe_clean.within('.work-item-relationships').skipping :'link-in-text-block'
+ end
+
+ it 'passes axe automated accessibility testing for linked items' do
page.within('.work-item-relationships') do
click_button 'Add'
- within_testid('link-work-item-form') do
- expect(page).to have_button('Add', disabled: true)
- find_by_testid('work-item-token-select-input').set(task.title)
- wait_for_all_requests
- click_button task.title
+ find_by_testid('work-item-token-select-input').set(objective.title)
+ wait_for_all_requests
- expect(page).to have_button('Add', disabled: false)
+ form_selector = '.work-item-relationships'
+ expect(page).to be_axe_clean.within(form_selector).skipping :'aria-input-field-name',
+ :'aria-required-children'
- click_button 'Add'
+ within_testid('link-work-item-form') do
+ click_button objective.title
- wait_for_all_requests
+ click_button 'Add'
end
- expect(find('.work-items-list')).to have_content('Task 1')
+ wait_for_all_requests
- find_by_testid('links-child').hover
- find_by_testid('remove-work-item-link').click
+ expect(page).to be_axe_clean.within(form_selector)
+ end
+ end
+ end
+ def verify_linked_item_added(input)
+ page.within('.work-item-relationships') do
+ click_button 'Add'
+
+ within_testid('link-work-item-form') do
+ expect(page).to have_button('Add', disabled: true)
+
+ find(token_input_selector).set(input)
wait_for_all_requests
- expect(page).not_to have_content('Task 1')
+ click_button task.title
+
+ expect(page).to have_button('Add', disabled: false)
+
+ click_button 'Add'
+
+ wait_for_all_requests
end
+
+ expect(find('.work-items-list')).to have_content('Task 1')
end
end
end
diff --git a/spec/features/protected_branches_spec.rb b/spec/features/protected_branches_spec.rb
index 41105630204..c29323cba27 100644
--- a/spec/features/protected_branches_spec.rb
+++ b/spec/features/protected_branches_spec.rb
@@ -82,7 +82,7 @@ RSpec.describe 'Protected Branches', :js, feature_category: :source_code_managem
context 'logged in as admin' do
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
describe "explicit protected branches" do
diff --git a/spec/features/search/user_searches_for_code_spec.rb b/spec/features/search/user_searches_for_code_spec.rb
index 9329b1f2a5e..f893bf9b608 100644
--- a/spec/features/search/user_searches_for_code_spec.rb
+++ b/spec/features/search/user_searches_for_code_spec.rb
@@ -74,6 +74,20 @@ RSpec.describe 'User searches for code', :js, :disable_rate_limiter, feature_cat
it_behaves_like 'code highlight' do
subject { page }
end
+
+ context 'no search term' do
+ before do
+ submit_dashboard_search('dashboard_search')
+ # fill_in('dashboard_search', with: '')
+ # find('.gl-search-box-by-click-search-button').click
+ end
+
+ it 'shows scopes' do
+ page.within('[data-testid="search-filter"]') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
+ end
end
it 'search multiple words with refs switching' do
diff --git a/spec/features/search/user_searches_for_comments_spec.rb b/spec/features/search/user_searches_for_comments_spec.rb
index f7af1797c71..92e9174295b 100644
--- a/spec/features/search/user_searches_for_comments_spec.rb
+++ b/spec/features/search/user_searches_for_comments_spec.rb
@@ -33,6 +33,14 @@ RSpec.describe 'User searches for comments', :js, :disable_rate_limiter, feature
end
end
+ it 'shows scopes when there is no search term' do
+ submit_dashboard_search('')
+
+ within_testid('search-filter') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
+
context 'when a comment is in a snippet' do
let(:snippet) { create(:project_snippet, :private, project: project, author: user, title: 'Some title') }
let(:comment) { create(:note, noteable: snippet, author: user, note: 'Supercalifragilisticexpialidocious', project: project) }
diff --git a/spec/features/search/user_searches_for_commits_spec.rb b/spec/features/search/user_searches_for_commits_spec.rb
index 724daf9277d..2510a7f9b20 100644
--- a/spec/features/search/user_searches_for_commits_spec.rb
+++ b/spec/features/search/user_searches_for_commits_spec.rb
@@ -19,6 +19,14 @@ RSpec.describe 'User searches for commits', :js, :clean_gitlab_redis_rate_limiti
let(:additional_params) { { project_id: project.id } }
end
+ it 'shows scopes when there is no search term' do
+ submit_dashboard_search('')
+
+ within_testid('search-filter') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
+
context 'when searching by SHA' do
it 'finds a commit and redirects to its page' do
submit_search(sha)
diff --git a/spec/features/search/user_searches_for_issues_spec.rb b/spec/features/search/user_searches_for_issues_spec.rb
index caddf8b698e..610b9e2f09d 100644
--- a/spec/features/search/user_searches_for_issues_spec.rb
+++ b/spec/features/search/user_searches_for_issues_spec.rb
@@ -103,6 +103,14 @@ RSpec.describe 'User searches for issues', :js, :clean_gitlab_redis_rate_limitin
end
end
end
+
+ it 'shows scopes when there is no search term' do
+ search_for_issue('')
+
+ page.within('[data-testid="search-filter"]') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
end
context 'when signed out' do
diff --git a/spec/features/search/user_searches_for_merge_requests_spec.rb b/spec/features/search/user_searches_for_merge_requests_spec.rb
index 7819e036f21..faefa55586d 100644
--- a/spec/features/search/user_searches_for_merge_requests_spec.rb
+++ b/spec/features/search/user_searches_for_merge_requests_spec.rb
@@ -23,6 +23,14 @@ RSpec.describe 'User searches for merge requests', :js, :clean_gitlab_redis_rate
include_examples 'top right search form'
include_examples 'search timeouts', 'merge_requests'
+ it 'shows scopes when there is no search term' do
+ submit_dashboard_search('')
+
+ page.within('[data-testid="search-filter"]') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
+
it 'finds a merge request' do
search_for_mr(merge_request1.title)
diff --git a/spec/features/search/user_searches_for_milestones_spec.rb b/spec/features/search/user_searches_for_milestones_spec.rb
index 334fe6f0170..2700785ac1a 100644
--- a/spec/features/search/user_searches_for_milestones_spec.rb
+++ b/spec/features/search/user_searches_for_milestones_spec.rb
@@ -20,6 +20,14 @@ RSpec.describe 'User searches for milestones', :js, :clean_gitlab_redis_rate_lim
include_examples 'top right search form'
include_examples 'search timeouts', 'milestones'
+ it 'shows scopes when there is no search term' do
+ submit_dashboard_search('')
+
+ page.within('[data-testid="search-filter"]') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
+
it 'finds a milestone' do
submit_dashboard_search(milestone1.title)
select_search_scope('Milestones')
diff --git a/spec/features/search/user_searches_for_projects_spec.rb b/spec/features/search/user_searches_for_projects_spec.rb
index ee5a3ec9806..8d94ed2a08e 100644
--- a/spec/features/search/user_searches_for_projects_spec.rb
+++ b/spec/features/search/user_searches_for_projects_spec.rb
@@ -14,6 +14,14 @@ RSpec.describe 'User searches for projects', :js, :disable_rate_limiter, feature
include_examples 'top right search form'
include_examples 'search timeouts', 'projects'
+ it 'shows scopes when there is no search term' do
+ submit_dashboard_search('')
+
+ within_testid('search-filter') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
+
it 'finds a project' do
visit(search_path)
submit_dashboard_search(project.name[0..3])
diff --git a/spec/features/search/user_searches_for_users_spec.rb b/spec/features/search/user_searches_for_users_spec.rb
index e0a07c5103d..2628b329d96 100644
--- a/spec/features/search/user_searches_for_users_spec.rb
+++ b/spec/features/search/user_searches_for_users_spec.rb
@@ -17,6 +17,14 @@ RSpec.describe 'User searches for users', :js, :clean_gitlab_redis_rate_limiting
end
end
+ it 'shows scopes when there is no search term' do
+ submit_dashboard_search('')
+
+ within_testid('search-filter') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
+
context 'when on the dashboard' do
it 'finds the user' do
visit dashboard_projects_path
diff --git a/spec/features/search/user_searches_for_wiki_pages_spec.rb b/spec/features/search/user_searches_for_wiki_pages_spec.rb
index 4de28a99c21..85cc3900fad 100644
--- a/spec/features/search/user_searches_for_wiki_pages_spec.rb
+++ b/spec/features/search/user_searches_for_wiki_pages_spec.rb
@@ -23,6 +23,14 @@ RSpec.describe 'User searches for wiki pages', :js, :clean_gitlab_redis_rate_lim
let(:additional_params) { { project_id: project.id } }
end
+ it 'shows scopes when there is no search term' do
+ submit_dashboard_search('')
+
+ page.within('[data-testid="search-filter"]') do
+ expect(page).to have_selector('[data-testid="nav-item"]', minimum: 5)
+ end
+ end
+
shared_examples 'search wiki blobs' do
it 'finds a page' do
find('[data-testid="project-filter"]').click
diff --git a/spec/features/tags/developer_views_tags_spec.rb b/spec/features/tags/developer_views_tags_spec.rb
index 154311853f8..bc2d33b3a02 100644
--- a/spec/features/tags/developer_views_tags_spec.rb
+++ b/spec/features/tags/developer_views_tags_spec.rb
@@ -41,11 +41,11 @@ RSpec.describe 'Developer views tags', feature_category: :source_code_management
end
it 'avoids a N+1 query in branches index' do
- control_count = ActiveRecord::QueryRecorder.new { visit project_tags_path(project) }.count
+ control = ActiveRecord::QueryRecorder.new { visit project_tags_path(project) }
%w[one two three four five].each { |tag| repository.add_tag(user, tag, 'master', 'foo') }
- expect { visit project_tags_path(project) }.not_to exceed_query_limit(control_count)
+ expect { visit project_tags_path(project) }.not_to exceed_query_limit(control)
end
it 'views the tags list page' do
diff --git a/spec/features/usage_stats_consent_spec.rb b/spec/features/usage_stats_consent_spec.rb
index ebf1cd9e143..5436018250d 100644
--- a/spec/features/usage_stats_consent_spec.rb
+++ b/spec/features/usage_stats_consent_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe 'Usage stats consent', feature_category: :service_ping do
end
gitlab_sign_in(user)
- gitlab_enable_admin_mode_sign_in(user)
+ enable_admin_mode!(user)
end
shared_examples 'dismissible banner' do |button_text|
diff --git a/spec/features/user_settings/active_sessions_spec.rb b/spec/features/user_settings/active_sessions_spec.rb
index 5d1d4bc6490..bc0693d79e1 100644
--- a/spec/features/user_settings/active_sessions_spec.rb
+++ b/spec/features/user_settings/active_sessions_spec.rb
@@ -47,7 +47,7 @@ RSpec.describe 'Profile > Active Sessions', :clean_gitlab_redis_shared_state, fe
)
gitlab_sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
visit admin_user_path(user)
diff --git a/spec/features/users/login_spec.rb b/spec/features/users/login_spec.rb
index 87ed4ced684..c5ad7bca824 100644
--- a/spec/features/users/login_spec.rb
+++ b/spec/features/users/login_spec.rb
@@ -789,7 +789,7 @@ RSpec.describe 'Login', :clean_gitlab_redis_sessions, feature_category: :system_
visit new_user_session_path
image = find('img.js-portrait-logo-detection')
- expect(image['class']).to include('gl-h-9')
+ expect(image['class']).to include('gl-h-10')
end
it 'renders link to sign up path' do
diff --git a/spec/features/users/signup_spec.rb b/spec/features/users/signup_spec.rb
index bb08ed7d07d..6f13dfa08cc 100644
--- a/spec/features/users/signup_spec.rb
+++ b/spec/features/users/signup_spec.rb
@@ -3,54 +3,40 @@
require 'spec_helper'
RSpec.shared_examples 'Signup name validation' do |field, max_length, label|
- shared_examples 'signup validation' do
- before do
- visit new_user_registration_path
- end
-
- describe "#{field} validation" do
- it "does not show an error border if the user's fullname length is not longer than #{max_length} characters" do
- fill_in field, with: 'u' * max_length
-
- expect(find('.name')).not_to have_css '.gl-field-error-outline'
- end
+ before do
+ visit new_user_registration_path
+ end
- it 'shows an error border if the user\'s fullname contains an emoji' do
- simulate_input("##{field}", 'Ehsan 🦋')
+ describe "#{field} validation" do
+ it "does not show an error border if the user's fullname length is not longer than #{max_length} characters" do
+ fill_in field, with: 'u' * max_length
- expect(find('.name')).to have_css '.gl-field-error-outline'
- end
+ expect(find('.name')).not_to have_css '.gl-field-error-outline'
+ end
- it "shows an error border if the user\'s fullname is longer than #{max_length} characters" do
- fill_in field, with: 'n' * (max_length + 1)
+ it 'shows an error border if the user\'s fullname contains an emoji' do
+ simulate_input("##{field}", 'Ehsan 🦋')
- expect(find('.name')).to have_css '.gl-field-error-outline'
- end
+ expect(find('.name')).to have_css '.gl-field-error-outline'
+ end
- it "shows an error message if the user\'s #{label} is longer than #{max_length} characters" do
- fill_in field, with: 'n' * (max_length + 1)
+ it "shows an error border if the user\'s fullname is longer than #{max_length} characters" do
+ fill_in field, with: 'n' * (max_length + 1)
- expect(page).to have_content("#{label} is too long (maximum is #{max_length} characters).")
- end
+ expect(find('.name')).to have_css '.gl-field-error-outline'
+ end
- it 'shows an error message if the username contains emojis' do
- simulate_input("##{field}", 'Ehsan 🦋')
+ it "shows an error message if the user\'s #{label} is longer than #{max_length} characters" do
+ fill_in field, with: 'n' * (max_length + 1)
- expect(page).to have_content("Invalid input, please avoid emoji")
- end
+ expect(page).to have_content("#{label} is too long (maximum is #{max_length} characters).")
end
- end
- include_examples 'signup validation'
+ it 'shows an error message if the username contains emojis' do
+ simulate_input("##{field}", 'Ehsan 🦋')
- # Inline `shared_example 'signup validation'` again after feature flag
- # `restyle_login_page` was removed.
- context 'with feature flag restyle_login_page disabled' do
- before do
- stub_feature_flags(restyle_login_page: false)
+ expect(page).to have_content("Invalid input, please avoid emoji")
end
-
- include_examples 'signup validation'
end
end
@@ -66,344 +52,323 @@ RSpec.describe 'Signup', :js, feature_category: :user_management do
TEXT
end
- shared_examples 'signup process' do
+ before do
+ stub_feature_flags(arkose_labs_signup_challenge: false)
+ stub_application_setting(require_admin_approval_after_user_signup: false)
+ end
+
+ describe 'username validation' do
before do
- stub_feature_flags(arkose_labs_signup_challenge: false)
- stub_application_setting(require_admin_approval_after_user_signup: false)
+ visit new_user_registration_path
end
- describe 'username validation' do
- before do
- visit new_user_registration_path
- end
+ it 'does not show an error border if the username is available' do
+ fill_in 'new_user_username', with: 'new-user'
+ wait_for_requests
- it 'does not show an error border if the username is available' do
- fill_in 'new_user_username', with: 'new-user'
- wait_for_requests
+ expect(find('.username')).not_to have_css '.gl-field-error-outline'
+ end
- expect(find('.username')).not_to have_css '.gl-field-error-outline'
- end
+ it 'does not show an error border if the username contains dots (.)' do
+ simulate_input('#new_user_username', 'new.user.username')
+ wait_for_requests
- it 'does not show an error border if the username contains dots (.)' do
- simulate_input('#new_user_username', 'new.user.username')
- wait_for_requests
+ expect(find('.username')).not_to have_css '.gl-field-error-outline'
+ end
- expect(find('.username')).not_to have_css '.gl-field-error-outline'
- end
+ it 'does not show an error border if the username length is not longer than 255 characters' do
+ fill_in 'new_user_username', with: 'u' * 255
+ wait_for_requests
- it 'does not show an error border if the username length is not longer than 255 characters' do
- fill_in 'new_user_username', with: 'u' * 255
- wait_for_requests
+ expect(find('.username')).not_to have_css '.gl-field-error-outline'
+ end
- expect(find('.username')).not_to have_css '.gl-field-error-outline'
- end
+ it 'shows an error border if the username already exists' do
+ existing_user = create(:user)
- it 'shows an error border if the username already exists' do
- existing_user = create(:user)
+ fill_in 'new_user_username', with: existing_user.username
+ wait_for_requests
- fill_in 'new_user_username', with: existing_user.username
- wait_for_requests
+ expect(find('.username')).to have_css '.gl-field-error-outline'
+ end
- expect(find('.username')).to have_css '.gl-field-error-outline'
- end
+ it 'shows a success border if the username is available' do
+ fill_in 'new_user_username', with: 'new-user'
+ wait_for_requests
- it 'shows a success border if the username is available' do
- fill_in 'new_user_username', with: 'new-user'
- wait_for_requests
+ expect(find('.username')).to have_css '.gl-field-success-outline'
+ end
- expect(find('.username')).to have_css '.gl-field-success-outline'
- end
+ it 'shows an error border if the username contains special characters' do
+ fill_in 'new_user_username', with: 'new$user!username'
+ wait_for_requests
- it 'shows an error border if the username contains special characters' do
- fill_in 'new_user_username', with: 'new$user!username'
- wait_for_requests
+ expect(find('.username')).to have_css '.gl-field-error-outline'
+ end
- expect(find('.username')).to have_css '.gl-field-error-outline'
- end
+ it 'shows an error border if the username is longer than 255 characters' do
+ fill_in 'new_user_username', with: 'u' * 256
+ wait_for_requests
- it 'shows an error border if the username is longer than 255 characters' do
- fill_in 'new_user_username', with: 'u' * 256
- wait_for_requests
+ expect(find('.username')).to have_css '.gl-field-error-outline'
+ end
- expect(find('.username')).to have_css '.gl-field-error-outline'
- end
+ it 'shows an error message if the username is longer than 255 characters' do
+ fill_in 'new_user_username', with: 'u' * 256
+ wait_for_requests
- it 'shows an error message if the username is longer than 255 characters' do
- fill_in 'new_user_username', with: 'u' * 256
- wait_for_requests
+ expect(page).to have_content("Username is too long (maximum is 255 characters).")
+ end
- expect(page).to have_content("Username is too long (maximum is 255 characters).")
- end
+ it 'shows an error message if the username is less than 2 characters' do
+ fill_in 'new_user_username', with: 'u'
+ wait_for_requests
- it 'shows an error message if the username is less than 2 characters' do
- fill_in 'new_user_username', with: 'u'
- wait_for_requests
+ expect(page).to have_content("Username is too short (minimum is 2 characters).")
+ end
- expect(page).to have_content("Username is too short (minimum is 2 characters).")
- end
+ it 'shows an error message on submit if the username contains special characters' do
+ fill_in 'new_user_username', with: 'new$user!username'
+ wait_for_requests
- it 'shows an error message on submit if the username contains special characters' do
- fill_in 'new_user_username', with: 'new$user!username'
- wait_for_requests
+ click_button "Register"
- click_button "Register"
+ expect(page).to have_content("Please create a username with only alphanumeric characters.")
+ end
- expect(page).to have_content("Please create a username with only alphanumeric characters.")
- end
+ it 'shows an error border if the username contains emojis' do
+ simulate_input('#new_user_username', 'ehsan😀')
- it 'shows an error border if the username contains emojis' do
- simulate_input('#new_user_username', 'ehsan😀')
+ expect(find('.username')).to have_css '.gl-field-error-outline'
+ end
- expect(find('.username')).to have_css '.gl-field-error-outline'
- end
+ it 'shows an error message if the username contains emojis' do
+ simulate_input('#new_user_username', 'ehsan😀')
- it 'shows an error message if the username contains emojis' do
- simulate_input('#new_user_username', 'ehsan😀')
+ expect(page).to have_content("Invalid input, please avoid emoji")
+ end
- expect(page).to have_content("Invalid input, please avoid emoji")
- end
+ it 'shows a pending message if the username availability is being fetched',
+ quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/31484' do
+ fill_in 'new_user_username', with: 'new-user'
- it 'shows a pending message if the username availability is being fetched',
- quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/31484' do
- fill_in 'new_user_username', with: 'new-user'
+ expect(find('.username > .validation-pending')).not_to have_css '.hide'
+ end
- expect(find('.username > .validation-pending')).not_to have_css '.hide'
- end
+ it 'shows a success message if the username is available' do
+ fill_in 'new_user_username', with: 'new-user'
+ wait_for_requests
- it 'shows a success message if the username is available' do
- fill_in 'new_user_username', with: 'new-user'
- wait_for_requests
+ expect(find('.username > .validation-success')).not_to have_css '.hide'
+ end
- expect(find('.username > .validation-success')).not_to have_css '.hide'
- end
+ it 'shows an error message if the username is unavailable' do
+ existing_user = create(:user)
- it 'shows an error message if the username is unavailable' do
- existing_user = create(:user)
+ fill_in 'new_user_username', with: existing_user.username
+ wait_for_requests
- fill_in 'new_user_username', with: existing_user.username
- wait_for_requests
+ expect(find('.username > .validation-error')).not_to have_css '.hide'
+ end
- expect(find('.username > .validation-error')).not_to have_css '.hide'
- end
+ it 'shows a success message if the username is corrected and then available' do
+ fill_in 'new_user_username', with: 'new-user$'
+ wait_for_requests
+ fill_in 'new_user_username', with: 'new-user'
+ wait_for_requests
- it 'shows a success message if the username is corrected and then available' do
- fill_in 'new_user_username', with: 'new-user$'
- wait_for_requests
- fill_in 'new_user_username', with: 'new-user'
- wait_for_requests
+ expect(page).to have_content("Username is available.")
+ end
+ end
- expect(page).to have_content("Username is available.")
+ context 'with no errors' do
+ context 'when sending confirmation email' do
+ before do
+ stub_application_setting_enum('email_confirmation_setting', 'hard')
end
- end
- context 'with no errors' do
- context 'when sending confirmation email' do
+ context 'when email confirmation setting is not `soft`' do
before do
- stub_application_setting_enum('email_confirmation_setting', 'hard')
+ stub_feature_flags(identity_verification: false)
end
- context 'when email confirmation setting is not `soft`' do
- before do
- stub_feature_flags(identity_verification: false)
- end
-
- it 'creates the user account and sends a confirmation email, and pre-fills email address after confirming' do
- visit new_user_registration_path
-
- expect { fill_in_sign_up_form(new_user) }.to change { User.count }.by(1)
- expect(page).to have_current_path users_almost_there_path, ignore_query: true
- expect(page).to have_content("Please check your email (#{new_user.email}) to confirm your account")
-
- confirm_email(new_user)
-
- expect(find_field('Username or primary email').value).to eq(new_user.email)
- end
- end
+ it 'creates the user account and sends a confirmation email, and pre-fills email address after confirming' do
+ visit new_user_registration_path
- context 'when email confirmation setting is `soft`' do
- before do
- stub_application_setting_enum('email_confirmation_setting', 'soft')
- end
+ expect { fill_in_sign_up_form(new_user) }.to change { User.count }.by(1)
+ expect(page).to have_current_path users_almost_there_path, ignore_query: true
+ expect(page).to have_content("Please check your email (#{new_user.email}) to confirm your account")
- it 'creates the user account and sends a confirmation email' do
- visit new_user_registration_path
+ confirm_email(new_user)
- expect { fill_in_sign_up_form(new_user) }.to change { User.count }.by(1)
- expect(page).to have_current_path dashboard_projects_path
- end
+ expect(find_field('Username or primary email').value).to eq(new_user.email)
end
end
- context "when not sending confirmation email" do
+ context 'when email confirmation setting is `soft`' do
before do
- stub_application_setting_enum('email_confirmation_setting', 'off')
+ stub_application_setting_enum('email_confirmation_setting', 'soft')
end
- it 'creates the user account and goes to dashboard' do
+ it 'creates the user account and sends a confirmation email' do
visit new_user_registration_path
- fill_in_sign_up_form(new_user)
-
+ expect { fill_in_sign_up_form(new_user) }.to change { User.count }.by(1)
expect(page).to have_current_path dashboard_projects_path
end
end
+ end
- context 'with required admin approval enabled' do
- before do
- stub_application_setting(require_admin_approval_after_user_signup: true)
- end
+ context "when not sending confirmation email" do
+ before do
+ stub_application_setting_enum('email_confirmation_setting', 'off')
+ end
- it 'creates the user but does not sign them in' do
- visit new_user_registration_path
+ it 'creates the user account and goes to dashboard' do
+ visit new_user_registration_path
- expect { fill_in_sign_up_form(new_user) }.to change { User.count }.by(1)
- expect(page).to have_current_path new_user_session_path, ignore_query: true
- expect(page).to have_content(<<~TEXT.squish)
+ fill_in_sign_up_form(new_user)
+
+ expect(page).to have_current_path dashboard_projects_path
+ end
+ end
+
+ context 'with required admin approval enabled' do
+ before do
+ stub_application_setting(require_admin_approval_after_user_signup: true)
+ end
+
+ it 'creates the user but does not sign them in' do
+ visit new_user_registration_path
+
+ expect { fill_in_sign_up_form(new_user) }.to change { User.count }.by(1)
+ expect(page).to have_current_path new_user_session_path, ignore_query: true
+ expect(page).to have_content(<<~TEXT.squish)
You have signed up successfully. However, we could not sign you in
because your account is awaiting approval from your GitLab administrator
- TEXT
- end
+ TEXT
end
end
+ end
- context 'with errors' do
- it "displays the errors" do
- create(:user, email: new_user.email)
- visit new_user_registration_path
+ context 'with errors' do
+ it "displays the errors" do
+ create(:user, email: new_user.email)
+ visit new_user_registration_path
- fill_in_sign_up_form(new_user)
+ fill_in_sign_up_form(new_user)
- expect(page).to have_current_path user_registration_path, ignore_query: true
- expect(page).to have_content("error prohibited this user from being saved")
- expect(page).to have_content("Email has already been taken")
- end
+ expect(page).to have_current_path user_registration_path, ignore_query: true
+ expect(page).to have_content("error prohibited this user from being saved")
+ expect(page).to have_content("Email has already been taken")
+ end
- it 'redisplays all fields except password' do
- create(:user, email: new_user.email)
- visit new_user_registration_path
+ it 'redisplays all fields except password' do
+ create(:user, email: new_user.email)
+ visit new_user_registration_path
- fill_in_sign_up_form(new_user)
+ fill_in_sign_up_form(new_user)
- expect(page).to have_current_path user_registration_path, ignore_query: true
- expect(page.body).not_to match(/#{new_user.password}/)
+ expect(page).to have_current_path user_registration_path, ignore_query: true
+ expect(page.body).not_to match(/#{new_user.password}/)
- expect(find_field('First name').value).to eq(new_user.first_name)
- expect(find_field('Last name').value).to eq(new_user.last_name)
- expect(find_field('Username').value).to eq(new_user.username)
- expect(find_field('Email').value).to eq(new_user.email)
- end
+ expect(find_field('First name').value).to eq(new_user.first_name)
+ expect(find_field('Last name').value).to eq(new_user.last_name)
+ expect(find_field('Username').value).to eq(new_user.username)
+ expect(find_field('Email').value).to eq(new_user.email)
end
+ end
- context 'when terms are enforced' do
- before do
- enforce_terms
- end
+ context 'when terms are enforced' do
+ before do
+ enforce_terms
+ end
- it 'renders text that the user confirms terms by signing in' do
- visit new_user_registration_path
- expect(page).to have_content(terms_text)
+ it 'renders text that the user confirms terms by signing in' do
+ visit new_user_registration_path
+ expect(page).to have_content(terms_text)
- fill_in_sign_up_form(new_user)
+ fill_in_sign_up_form(new_user)
- expect(page).to have_current_path(dashboard_projects_path)
- end
+ expect(page).to have_current_path(dashboard_projects_path)
+ end
- it_behaves_like 'Signup name validation', 'new_user_first_name', 127, 'First name'
- it_behaves_like 'Signup name validation', 'new_user_last_name', 127, 'Last name'
+ it_behaves_like 'Signup name validation', 'new_user_first_name', 127, 'First name'
+ it_behaves_like 'Signup name validation', 'new_user_last_name', 127, 'Last name'
+ end
+
+ context 'when reCAPTCHA and invisible captcha are enabled' do
+ before do
+ stub_application_setting(invisible_captcha_enabled: true)
+ stub_application_setting(recaptcha_enabled: true)
+ allow_next_instance_of(RegistrationsController) do |instance|
+ allow(instance).to receive(:verify_recaptcha).and_return(true)
+ end
end
- context 'when reCAPTCHA and invisible captcha are enabled' do
+ context 'when reCAPTCHA detects malicious behaviour' do
before do
- stub_application_setting(invisible_captcha_enabled: true)
- stub_application_setting(recaptcha_enabled: true)
allow_next_instance_of(RegistrationsController) do |instance|
- allow(instance).to receive(:verify_recaptcha).and_return(true)
+ allow(instance).to receive(:verify_recaptcha).and_return(false)
end
end
- context 'when reCAPTCHA detects malicious behaviour' do
- before do
- allow_next_instance_of(RegistrationsController) do |instance|
- allow(instance).to receive(:verify_recaptcha).and_return(false)
- end
- end
+ it 'prevents from signing up' do
+ visit new_user_registration_path
+ expect { fill_in_sign_up_form(new_user) }.not_to change { User.count }
+ expect(page).to have_content(_('There was an error with the reCAPTCHA. Please solve the reCAPTCHA again.'))
+ expect(page).to have_content(
+ "Minimum length is #{Gitlab::CurrentSettings.minimum_password_length} characters")
+ end
+ end
+
+ context 'when invisible captcha detects malicious behaviour' do
+ context 'with form submitted quicker than timestamp_threshold', :freeze_time do
it 'prevents from signing up' do
visit new_user_registration_path
expect { fill_in_sign_up_form(new_user) }.not_to change { User.count }
- expect(page).to have_content(_('There was an error with the reCAPTCHA. Please solve the reCAPTCHA again.'))
- expect(page).to have_content(
- "Minimum length is #{Gitlab::CurrentSettings.minimum_password_length} characters")
+ expect(page).to have_content('That was a bit too quick! Please resubmit.')
end
end
- context 'when invisible captcha detects malicious behaviour' do
- context 'with form submitted quicker than timestamp_threshold', :freeze_time do
- it 'prevents from signing up' do
- visit new_user_registration_path
-
- expect { fill_in_sign_up_form(new_user) }.not_to change { User.count }
- expect(page).to have_content('That was a bit too quick! Please resubmit.')
- end
- end
-
- context 'with honeypot field is filled' do
- it 'prevents from signing up' do
- visit new_user_registration_path
+ context 'with honeypot field is filled' do
+ it 'prevents from signing up' do
+ visit new_user_registration_path
- find_field('If you are human, please ignore this field.',
- visible: false).execute_script("this.value = 'bot'")
+ find_field('If you are human, please ignore this field.',
+ visible: false).execute_script("this.value = 'bot'")
- expect { fill_in_sign_up_form(new_user) }.not_to change { User.count }
- end
+ expect { fill_in_sign_up_form(new_user) }.not_to change { User.count }
end
end
end
+ end
- it 'allows visiting of a page after initial registration' do
- visit new_user_registration_path
-
- fill_in_sign_up_form(new_user)
+ it 'allows visiting of a page after initial registration' do
+ visit new_user_registration_path
- visit new_project_path
+ fill_in_sign_up_form(new_user)
- expect(page).to have_current_path(new_project_path)
- end
+ visit new_project_path
- it 'does not redisplay the password' do
- create(:user, email: new_user.email)
- visit new_user_registration_path
+ expect(page).to have_current_path(new_project_path)
+ end
- fill_in_sign_up_form(new_user)
+ it 'does not redisplay the password' do
+ create(:user, email: new_user.email)
+ visit new_user_registration_path
- expect(page).to have_current_path user_registration_path, ignore_query: true
- expect(page.body).not_to match(/#{new_user.password}/)
- end
+ fill_in_sign_up_form(new_user)
- context 'with invalid email' do
- it_behaves_like 'user email validation' do
- let(:path) { new_user_registration_path }
- end
- end
+ expect(page).to have_current_path user_registration_path, ignore_query: true
+ expect(page.body).not_to match(/#{new_user.password}/)
end
- include_examples 'signup process'
-
- # Inline `shared_example 'signup process'` again after feature flag
- # `restyle_login_page` was removed.
- context 'with feature flag restyle_login_page disabled' do
- let(:terms_text) do
- <<~TEXT.squish
- By clicking Register, I agree that I have read and accepted the Terms of
- Use and Privacy Statement
- TEXT
+ context 'with invalid email' do
+ it_behaves_like 'user email validation' do
+ let(:path) { new_user_registration_path }
end
-
- before do
- stub_feature_flags(restyle_login_page: false)
- end
-
- include_examples 'signup process'
end
end
diff --git a/spec/finders/ci/catalog/resources/versions_finder_spec.rb b/spec/finders/ci/catalog/resources/versions_finder_spec.rb
index b541b84f198..dbde77101ee 100644
--- a/spec/finders/ci/catalog/resources/versions_finder_spec.rb
+++ b/spec/finders/ci/catalog/resources/versions_finder_spec.rb
@@ -5,9 +5,10 @@ require 'spec_helper'
RSpec.describe Ci::Catalog::Resources::VersionsFinder, feature_category: :pipeline_composition do
include_context 'when there are catalog resources with versions'
+ let(:name) { nil }
let(:sort) { nil }
let(:latest) { nil }
- let(:params) { { sort: sort, latest: latest }.compact }
+ let(:params) { { name: name, sort: sort, latest: latest }.compact }
subject(:execute) { described_class.new([resource1, resource2], current_user, params).execute }
@@ -18,7 +19,7 @@ RSpec.describe Ci::Catalog::Resources::VersionsFinder, feature_category: :pipeli
new_user = create(:user)
expect do
- described_class.new([resource1, resource2, resource3], new_user, params).execute
+ described_class.new([resource1, resource2], new_user, params).execute
end.not_to exceed_query_limit(control_count)
end
@@ -37,6 +38,23 @@ RSpec.describe Ci::Catalog::Resources::VersionsFinder, feature_category: :pipeli
expect(execute).to match_array([v1_0, v1_1])
end
+ context 'with name parameter' do
+ let(:name) { 'v1.0' }
+
+ it 'returns the version that matches the name' do
+ expect(execute.count).to eq(1)
+ expect(execute.first.name).to eq('v1.0')
+ end
+
+ context 'when no version matches the name' do
+ let(:name) { 'does_not_exist' }
+
+ it 'returns empty response' do
+ is_expected.to be_empty
+ end
+ end
+ end
+
context 'with sort parameter' do
it 'returns versions ordered by released_at descending by default' do
expect(execute).to eq([v1_1, v1_0])
diff --git a/spec/finders/ci/runner_jobs_finder_spec.rb b/spec/finders/ci/runner_jobs_finder_spec.rb
index 755b21ec08f..66cdde756be 100644
--- a/spec/finders/ci/runner_jobs_finder_spec.rb
+++ b/spec/finders/ci/runner_jobs_finder_spec.rb
@@ -2,26 +2,28 @@
require 'spec_helper'
-RSpec.describe Ci::RunnerJobsFinder do
- let(:project) { create(:project) }
- let(:runner) { create(:ci_runner, :instance) }
- let(:user) { create(:user) }
+RSpec.describe Ci::RunnerJobsFinder, feature_category: :fleet_visibility do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:runner) { create(:ci_runner, :instance) }
+ let_it_be(:user) { create(:user) }
+ let_it_be(:runner_manager) { create(:ci_runner_machine, runner: runner) }
+ let_it_be(:jobs) { create_list(:ci_build, 5, runner_manager: runner_manager, project: project) }
+
let(:params) { {} }
- subject { described_class.new(runner, user, params).execute }
+ subject(:returned_jobs) { described_class.new(runner, user, params).execute }
- before do
+ before_all do
project.add_developer(user)
end
describe '#execute' do
context 'when params is empty' do
- let!(:job) { create(:ci_build, runner: runner, project: project) }
let!(:job1) { create(:ci_build, project: project) }
it 'returns all jobs assigned to Runner' do
- is_expected.to match_array(job)
- is_expected.not_to match_array(job1)
+ is_expected.to match_array(jobs)
+ is_expected.not_to include(job1)
end
end
@@ -36,35 +38,34 @@ RSpec.describe Ci::RunnerJobsFinder do
end
end
- context 'when the user has permission to read all resources' do
- let(:user) { create(:user, :admin) }
+ context 'when the user is admin', :enable_admin_mode do
+ let_it_be(:user) { create(:user, :admin) }
- it 'returns all the jobs assigned to a runner' do
- jobs = create_list(:ci_build, 5, runner: runner, project: project)
+ it { is_expected.to match_array(jobs) }
+ end
- is_expected.to match_array(jobs)
+ context 'when user is developer' do
+ before_all do
+ project.add_developer(user)
end
+
+ it { is_expected.to match_array(jobs) }
end
context 'when the user has different access levels in different projects' do
- it 'returns only the jobs the user has permission to see' do
- guest_project = create(:project)
- reporter_project = create(:project)
-
- _guest_jobs = create_list(:ci_build, 2, runner: runner, project: guest_project)
- reporter_jobs = create_list(:ci_build, 3, runner: runner, project: reporter_project)
-
- guest_project.add_guest(user)
- reporter_project.add_reporter(user)
-
- is_expected.to match_array(reporter_jobs)
+ let_it_be(:guest_project) { create(:project).tap { |p| p.add_guest(user) } }
+ let_it_be(:guest_jobs) { create_list(:ci_build, 2, runner: runner, project: guest_project) }
+ let_it_be(:reporter_project) { create(:project).tap { |p| p.add_reporter(user) } }
+ let_it_be(:reporter_jobs) { create_list(:ci_build, 3, runner: runner, project: reporter_project) }
+
+ it 'returns only the jobs the user has permission to see', :aggregate_failures do
+ is_expected.to include(*reporter_jobs)
+ is_expected.not_to include(*guest_jobs)
end
end
context 'when the user has reporter access level or greater' do
- it 'returns jobs assigned to the Runner that the user has accesss to' do
- jobs = create_list(:ci_build, 3, runner: runner, project: project)
-
+ it 'returns jobs assigned to the Runner that the user has access to' do
is_expected.to match_array(jobs)
end
end
@@ -73,24 +74,38 @@ RSpec.describe Ci::RunnerJobsFinder do
Ci::HasStatus::AVAILABLE_STATUSES.each do |target_status|
context "when status is #{target_status}" do
let(:params) { { status: target_status } }
+ let(:exception_status) { (Ci::HasStatus::AVAILABLE_STATUSES - [target_status]).first }
let!(:job) { create(:ci_build, runner: runner, project: project, status: target_status) }
+ let!(:other_job) { create(:ci_build, runner: runner, project: project, status: exception_status) }
- before do
- exception_status = Ci::HasStatus::AVAILABLE_STATUSES - [target_status]
- create(:ci_build, runner: runner, project: project, status: exception_status.first)
- end
-
- it 'returns matched job' do
- is_expected.to eq([job])
+ it 'returns matched job', :aggregate_failures do
+ is_expected.to include(job)
+ is_expected.not_to include(other_job)
end
end
end
end
+ context 'when system_id is specified' do
+ let_it_be(:runner_manager2) { create(:ci_runner_machine, runner: runner) }
+ let_it_be(:job2) { create(:ci_build, runner_manager: runner_manager2, project: project) }
+
+ let(:params) { { system_id: runner_manager.system_xid } }
+
+ it 'returns jobs from the specified system' do
+ expect(returned_jobs).to match_array(jobs)
+ end
+
+ context 'when specified system_id does not exist' do
+ let(:params) { { system_id: 'unknown_system' } }
+
+ it { is_expected.to be_empty }
+ end
+ end
+
context 'when order_by and sort are specified' do
context 'when order_by id and sort is asc' do
let(:params) { { order_by: 'id', sort: 'asc' } }
- let!(:jobs) { create_list(:ci_build, 2, runner: runner, project: project, user: create(:user)) }
it 'sorts as id: :asc' do
is_expected.to eq(jobs.sort_by(&:id))
@@ -101,7 +116,6 @@ RSpec.describe Ci::RunnerJobsFinder do
context 'when order_by is specified and sort is not specified' do
context 'when order_by id and sort is not specified' do
let(:params) { { order_by: 'id' } }
- let!(:jobs) { create_list(:ci_build, 2, runner: runner, project: project, user: create(:user)) }
it 'sorts as id: :desc' do
is_expected.to eq(jobs.sort_by(&:id).reverse)
diff --git a/spec/finders/ci/runner_managers_finder_spec.rb b/spec/finders/ci/runner_managers_finder_spec.rb
new file mode 100644
index 00000000000..c62c05d415e
--- /dev/null
+++ b/spec/finders/ci/runner_managers_finder_spec.rb
@@ -0,0 +1,77 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Ci::RunnerManagersFinder, '#execute', feature_category: :fleet_visibility do
+ subject(:runner_managers) { described_class.new(runner: runner, params: params).execute }
+
+ let_it_be(:runner) { create(:ci_runner) }
+
+ describe 'filter by status' do
+ before_all do
+ freeze_time
+ end
+
+ after :all do
+ unfreeze_time
+ end
+
+ let_it_be(:offline_runner_manager) { create(:ci_runner_machine, runner: runner, contacted_at: 2.hours.ago) }
+ let_it_be(:online_runner_manager) { create(:ci_runner_machine, runner: runner, contacted_at: 1.second.ago) }
+ let_it_be(:never_contacted_runner_manager) { create(:ci_runner_machine, runner: runner, contacted_at: nil) }
+ let_it_be(:stale_runner_manager) do
+ create(
+ :ci_runner_machine,
+ runner: runner,
+ created_at: Ci::RunnerManager.stale_deadline - 1.second,
+ contacted_at: nil
+ )
+ end
+
+ let(:params) { { status: status } }
+
+ context 'for offline' do
+ let(:status) { :offline }
+
+ it { is_expected.to contain_exactly(offline_runner_manager) }
+ end
+
+ context 'for online' do
+ let(:status) { :online }
+
+ it { is_expected.to contain_exactly(online_runner_manager) }
+ end
+
+ context 'for stale' do
+ let(:status) { :stale }
+
+ it { is_expected.to contain_exactly(stale_runner_manager) }
+ end
+
+ context 'for never_contacted' do
+ let(:status) { :never_contacted }
+
+ it { is_expected.to contain_exactly(never_contacted_runner_manager, stale_runner_manager) }
+ end
+
+ context 'for invalid status' do
+ let(:status) { :invalid_status }
+
+ it 'returns all runner managers' do
+ expect(runner_managers).to contain_exactly(
+ offline_runner_manager, online_runner_manager, never_contacted_runner_manager, stale_runner_manager
+ )
+ end
+ end
+ end
+
+ context 'without any filters' do
+ let(:params) { {} }
+
+ let_it_be(:runner_manager) { create(:ci_runner_machine, runner: runner) }
+
+ it 'returns all runner managers' do
+ expect(runner_managers).to contain_exactly(runner_manager)
+ end
+ end
+end
diff --git a/spec/finders/ci/runners_finder_spec.rb b/spec/finders/ci/runners_finder_spec.rb
index fbe44244dba..7e9ef2139c9 100644
--- a/spec/finders/ci/runners_finder_spec.rb
+++ b/spec/finders/ci/runners_finder_spec.rb
@@ -112,7 +112,7 @@ RSpec.describe Ci::RunnersFinder, feature_category: :fleet_visibility do
context 'by status' do
Ci::Runner::AVAILABLE_STATUSES.each do |status|
it "calls the corresponding :#{status} scope on Ci::Runner" do
- expect(Ci::Runner).to receive(status.to_sym).and_call_original
+ expect(Ci::Runner).to receive(:with_status).with(status).and_call_original
described_class.new(current_user: admin, params: { status_status: status }).execute
end
@@ -134,10 +134,14 @@ RSpec.describe Ci::RunnersFinder, feature_category: :fleet_visibility do
end
context 'by runner type' do
- it 'calls the corresponding scope on Ci::Runner' do
- expect(Ci::Runner).to receive(:project_type).and_call_original
+ Ci::Runner.runner_types.each_key do |runner_type|
+ context "when runner type is #{runner_type}" do
+ it "calls the corresponding scope on Ci::Runner" do
+ expect(Ci::Runner).to receive(:with_runner_type).with(runner_type).and_call_original
- described_class.new(current_user: admin, params: { type_type: 'project_type' }).execute
+ described_class.new(current_user: admin, params: { type_type: runner_type }).execute
+ end
+ end
end
end
@@ -656,12 +660,13 @@ RSpec.describe Ci::RunnersFinder, feature_category: :fleet_visibility do
end
context 'by creator' do
- let_it_be(:runner_creator_1) { create(:ci_runner, creator_id: '1') }
+ let_it_be(:creator) { create(:user) }
+ let_it_be(:runner_with_creator) { create(:ci_runner, creator: creator) }
- let(:extra_params) { { creator_id: '1' } }
+ let(:extra_params) { { creator_id: creator.id } }
it 'returns correct runners' do
- is_expected.to contain_exactly(runner_creator_1)
+ is_expected.to contain_exactly(runner_with_creator)
end
end
diff --git a/spec/finders/deployments_finder_spec.rb b/spec/finders/deployments_finder_spec.rb
index 807a7ca8e26..f45042d9c36 100644
--- a/spec/finders/deployments_finder_spec.rb
+++ b/spec/finders/deployments_finder_spec.rb
@@ -343,14 +343,14 @@ RSpec.describe DeploymentsFinder, feature_category: :deployment_management do
it 'avoids N+1 queries' do
execute_queries = -> { described_class.new({ group: group }).execute.first }
- control_count = ActiveRecord::QueryRecorder.new { execute_queries }.count
+ control = ActiveRecord::QueryRecorder.new { execute_queries }
new_project = create(:project, :repository, group: group)
new_env = create(:environment, project: new_project, name: "production")
create_list(:deployment, 2, status: :success, project: new_project, environment: new_env)
group.reload
- expect { execute_queries }.not_to exceed_query_limit(control_count)
+ expect { execute_queries }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/finders/members_finder_spec.rb b/spec/finders/members_finder_spec.rb
index e0fc494d033..9c8b8658538 100644
--- a/spec/finders/members_finder_spec.rb
+++ b/spec/finders/members_finder_spec.rb
@@ -166,12 +166,12 @@ RSpec.describe MembersFinder, feature_category: :groups_and_projects do
# warm up
# We need this warm up because there is 1 query being fired in one of the policies,
- # and policy results are cached. Without a warm up, the control_count will be X queries
+ # and policy results are cached. Without a warm up, the control.count will be X queries
# but the test phase will only fire X-1 queries, due the fact that the
# result of the policy is already available in the cache.
described_class.new(project, user2).execute.map(&:user)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
described_class.new(project, user2).execute.map(&:user)
end
@@ -179,7 +179,7 @@ RSpec.describe MembersFinder, feature_category: :groups_and_projects do
expect do
described_class.new(project, user2).execute.map(&:user)
- end.to issue_same_number_of_queries_as(control_count)
+ end.to issue_same_number_of_queries_as(control)
end
context 'with :shared_into_ancestors' do
diff --git a/spec/finders/packages/terraform_module/packages_finder_spec.rb b/spec/finders/packages/terraform_module/packages_finder_spec.rb
new file mode 100644
index 00000000000..4550b3be055
--- /dev/null
+++ b/spec/finders/packages/terraform_module/packages_finder_spec.rb
@@ -0,0 +1,65 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ::Packages::TerraformModule::PackagesFinder, feature_category: :package_registry do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:package1) { create(:terraform_module_package, project: project, version: '1.0.0') }
+ let_it_be(:package2) { create(:terraform_module_package, project: project, version: '2.0.0', name: package1.name) }
+
+ let(:params) { {} }
+
+ subject { described_class.new(project, params).execute }
+
+ describe '#execute' do
+ context 'without project' do
+ let(:project) { nil }
+
+ it { is_expected.to be_empty }
+ end
+
+ context 'without package_name' do
+ let(:params) { { package_name: nil } }
+
+ it { is_expected.to be_empty }
+ end
+
+ context 'with package_name' do
+ let(:params) { { package_name: package1.name } }
+
+ it 'returns packages with the given name ordered by version desc' do
+ is_expected.to eq([package2, package1])
+ end
+
+ context 'with package_version' do
+ let(:params) { { package_name: package1.name, package_version: package1.version } }
+
+ it { is_expected.to eq([package1]) }
+ end
+
+ context 'when package is not installable' do
+ before do
+ package1.update_column(:status, 3)
+ end
+
+ it { is_expected.to eq([package2]) }
+ end
+
+ context 'when package has no version' do
+ before do
+ package1.update_column(:version, nil)
+ end
+
+ it { is_expected.to eq([package2]) }
+ end
+
+ context 'when package is not a terraform module' do
+ before do
+ package1.update_column(:package_type, 1)
+ end
+
+ it { is_expected.to eq([package2]) }
+ end
+ end
+ end
+end
diff --git a/spec/finders/projects/ml/experiment_finder_spec.rb b/spec/finders/projects/ml/experiment_finder_spec.rb
new file mode 100644
index 00000000000..2cf5086d5db
--- /dev/null
+++ b/spec/finders/projects/ml/experiment_finder_spec.rb
@@ -0,0 +1,51 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Projects::Ml::ExperimentFinder, feature_category: :mlops do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:experiment1) { create(:ml_experiments, project: project) }
+ let_it_be(:experiment2) { create(:ml_experiments, project: project) }
+ let_it_be(:experiment3) do
+ create(:ml_experiments, name: "#{experiment1.name}_1", project: project, updated_at: 1.week.ago)
+ end
+
+ let_it_be(:other_experiment) { create(:ml_experiments) }
+ let_it_be(:project_experiments) { [experiment1, experiment2, experiment3] }
+
+ let(:params) { {} }
+
+ subject(:experiments) { described_class.new(project, params).execute.to_a }
+
+ describe 'default params' do
+ it 'returns models for project ordered by id, descending' do
+ is_expected.to eq([experiment3, experiment2, experiment1])
+ end
+
+ it 'including the latest version and project', :aggregate_failures do
+ expect(experiments[0].association_cached?(:project)).to be(true)
+ end
+
+ it 'does not return models belonging to a different project' do
+ is_expected.not_to include(other_experiment)
+ end
+ end
+
+ describe 'sorting' do
+ using RSpec::Parameterized::TableSyntax
+
+ where(:test_case, :order_by, :direction, :expected_order) do
+ 'default params' | nil | nil | [2, 1, 0]
+ 'ascending order' | 'id' | 'ASC' | [0, 1, 2]
+ 'by column' | 'name' | 'ASC' | [0, 2, 1]
+ 'invalid sort' | nil | 'UP' | [2, 1, 0]
+ 'invalid order by' | 'INVALID' | nil | [2, 1, 0]
+ 'order by updated_at' | 'updated_at' | nil | [1, 0, 2]
+ end
+ with_them do
+ let(:params) { { order_by: order_by, sort: direction } }
+
+ it { is_expected.to eq(project_experiments.values_at(*expected_order)) }
+ end
+ end
+end
diff --git a/spec/finders/projects_finder_spec.rb b/spec/finders/projects_finder_spec.rb
index e570b49e1da..f991ecd369c 100644
--- a/spec/finders/projects_finder_spec.rb
+++ b/spec/finders/projects_finder_spec.rb
@@ -482,11 +482,11 @@ RSpec.describe ProjectsFinder, feature_category: :groups_and_projects do
it { is_expected.to match_array([internal_project]) }
end
- describe 'filter by organization_id' do
+ describe 'filter by organization' do
let_it_be(:organization) { create(:organization) }
let_it_be(:organization_project) { create(:project, organization: organization) }
- let(:params) { { organization_id: organization.id } }
+ let(:params) { { organization: organization } }
before do
organization_project.add_maintainer(current_user)
diff --git a/spec/finders/releases/group_releases_finder_spec.rb b/spec/finders/releases/group_releases_finder_spec.rb
index daefc94828b..3430fe834d1 100644
--- a/spec/finders/releases/group_releases_finder_spec.rb
+++ b/spec/finders/releases/group_releases_finder_spec.rb
@@ -168,9 +168,9 @@ RSpec.describe Releases::GroupReleasesFinder, feature_category: :groups_and_proj
let(:params) { query_params }
it 'subgroups avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
releases
- end.count
+ end
subgroups = create_list(:group, 10, parent: group)
projects = create_list(:project, 10, namespace: subgroups[0])
@@ -178,7 +178,7 @@ RSpec.describe Releases::GroupReleasesFinder, feature_category: :groups_and_proj
expect do
releases
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/finders/resource_milestone_event_finder_spec.rb b/spec/finders/resource_milestone_event_finder_spec.rb
index 27e124afe2e..a05059328e3 100644
--- a/spec/finders/resource_milestone_event_finder_spec.rb
+++ b/spec/finders/resource_milestone_event_finder_spec.rb
@@ -49,8 +49,8 @@ RSpec.describe ResourceMilestoneEventFinder do
milestone1 = create(:milestone, project: issue_project)
milestone2 = create(:milestone, project: issue_project)
- control_count = ActiveRecord::QueryRecorder.new { described_class.new(user, issue).execute }.count
- expect(control_count).to eq(1) # 1 events query
+ control = ActiveRecord::QueryRecorder.new { described_class.new(user, issue).execute }
+ expect(control.count).to eq(1) # 1 events query
create_event(milestone1, :add)
create_event(milestone1, :remove)
@@ -60,7 +60,7 @@ RSpec.describe ResourceMilestoneEventFinder do
create_event(milestone2, :remove)
# 1 milestones + 1 project + 1 user + 4 ability
- expect { described_class.new(user, issue).execute }.not_to exceed_query_limit(control_count + 6)
+ expect { described_class.new(user, issue).execute }.not_to exceed_query_limit(control).with_threshold(6)
end
end
diff --git a/spec/finders/users_finder_spec.rb b/spec/finders/users_finder_spec.rb
index c931de92d1c..4cd3e13d4fa 100644
--- a/spec/finders/users_finder_spec.rb
+++ b/spec/finders/users_finder_spec.rb
@@ -180,6 +180,31 @@ RSpec.describe UsersFinder do
let_it_be(:user) { create(:user) }
it_behaves_like 'executes users finder as normal user'
+
+ context 'with group argument is passed' do
+ let_it_be(:group) { create(:group, :private) }
+ let_it_be(:subgroup) { create(:group, :private, parent: group) }
+ let_it_be(:not_group_member) { create(:user) }
+
+ let_it_be(:indirect_group_member) do
+ create(:user).tap { |u| subgroup.add_developer(u) }
+ end
+
+ let_it_be(:direct_group_members) do
+ [user, omniauth_user, internal_user].each { |u| group.add_developer(u) }
+ end
+
+ it 'filtered by search' do
+ users = described_class.new(user, group: group).execute
+ expect(users).to contain_exactly(indirect_group_member, *direct_group_members)
+ end
+
+ context 'when user cannot read group' do
+ it 'filtered by search' do
+ expect { described_class.new(not_group_member, group: group).execute }.to raise_error(Gitlab::Access::AccessDeniedError)
+ end
+ end
+ end
end
context 'with an admin user' do
diff --git a/spec/fixtures/api/schemas/ml/get_latest_versions.json b/spec/fixtures/api/schemas/ml/get_latest_versions.json
index cb2308fa637..3bf9a43a795 100644
--- a/spec/fixtures/api/schemas/ml/get_latest_versions.json
+++ b/spec/fixtures/api/schemas/ml/get_latest_versions.json
@@ -21,7 +21,7 @@
"run_id",
"status",
"status_message",
- "metadata",
+ "tags",
"run_link",
"aliases"
],
@@ -59,7 +59,7 @@
"status_message": {
"type": "string"
},
- "metadata": {
+ "tags": {
"type": "array",
"items": {
}
diff --git a/spec/fixtures/api/schemas/ml/get_model_version.json b/spec/fixtures/api/schemas/ml/get_model_version.json
index 214c993ed73..89779428edf 100644
--- a/spec/fixtures/api/schemas/ml/get_model_version.json
+++ b/spec/fixtures/api/schemas/ml/get_model_version.json
@@ -18,7 +18,7 @@
"run_id",
"status",
"status_message",
- "metadata",
+ "tags",
"run_link",
"aliases"
],
@@ -56,9 +56,22 @@
"status_message": {
"type": "string"
},
- "metadata": {
+ "tags": {
"type": "array",
"items": {
+ "type": "object",
+ "required": [
+ "key",
+ "value"
+ ],
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
}
},
"run_link": {
diff --git a/spec/fixtures/api/schemas/ml/search_experiments.json b/spec/fixtures/api/schemas/ml/search_experiments.json
new file mode 100644
index 00000000000..3df7ff1a676
--- /dev/null
+++ b/spec/fixtures/api/schemas/ml/search_experiments.json
@@ -0,0 +1,39 @@
+{
+ "type": "object",
+ "required": [
+ "experiments",
+ "next_page_token"
+ ],
+ "properties": {
+ "experiments": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "experiment_id",
+ "name",
+ "artifact_location",
+ "lifecycle_stage"
+ ],
+ "properties": {
+ "experiment_id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "artifact_location": {
+ "type": "string"
+ },
+ "lifecycle_stage": {
+ "type": "string",
+ "enum": [
+ "active",
+ "deleted"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/spec/fixtures/api/schemas/public_api/v4/job.json b/spec/fixtures/api/schemas/public_api/v4/job.json
index 6265fbcff69..3a0c69786e9 100644
--- a/spec/fixtures/api/schemas/public_api/v4/job.json
+++ b/spec/fixtures/api/schemas/public_api/v4/job.json
@@ -22,7 +22,8 @@
"artifacts_expire_at",
"tag_list",
"runner",
- "project"
+ "project",
+ "archived"
],
"properties": {
"id": { "type": "integer" },
@@ -70,7 +71,8 @@
},
"project": {
"ci_job_token_scope_enabled": { "type": "boolean" }
- }
+ },
+ "archived": { "type": "boolean" }
},
"additionalProperties":false
}
diff --git a/spec/fixtures/api/schemas/variable.json b/spec/fixtures/api/schemas/variable.json
index 440e812d95b..b708c6ec14f 100644
--- a/spec/fixtures/api/schemas/variable.json
+++ b/spec/fixtures/api/schemas/variable.json
@@ -11,6 +11,12 @@
"id": {
"type": "integer"
},
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
"key": {
"type": "string"
},
@@ -35,4 +41,4 @@
}
},
"additionalProperties": false
-} \ No newline at end of file
+}
diff --git a/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project.json b/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project.json
new file mode 100644
index 00000000000..a522590d037
--- /dev/null
+++ b/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project.json
@@ -0,0 +1,11 @@
+{
+ "id": 5,
+ "description": "Nisi et repellendus ut enim quo accusamus vel magnam.",
+ "import_type": "gitlab_project",
+ "creator_id": 999,
+ "visibility_level": 10,
+ "archived": false,
+ "hooks": [
+
+ ]
+}
diff --git a/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project/issues.ndjson b/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project/issues.ndjson
new file mode 100644
index 00000000000..cf7d9211460
--- /dev/null
+++ b/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project/issues.ndjson
@@ -0,0 +1,2 @@
+{"id":39,"author_id":22,"project_id":null,"created_at":"2016-06-14T15:02:08.233Z","updated_at":"2016-06-14T15:02:48.194Z","position":0,"branch_name":null,"description":"Voluptate vel reprehenderit facilis omnis voluptas magnam tenetur.","state":"opened","iid":9,"updated_by_id":null,"confidential":false,"due_date":"2020-08-14","moved_to_id":null,"issue_assignees":[],"milestone":{"id":1,"title":"test milestone","project_id":8,"description":"test milestone","due_date":null,"created_at":"2016-06-14T15:02:04.415Z","updated_at":"2016-06-14T15:02:04.415Z","state":"active","iid":1,"events":[{"id":487,"target_type":"Milestone","target_id":1,"project_id":46,"created_at":"2016-06-14T15:02:04.418Z","updated_at":"2016-06-14T15:02:04.418Z","action":1,"author_id":18}]},"notes":[{"id":359,"note":"Quo eius velit quia et id quam.","noteable_type":"Issue","author_id":26,"created_at":"2016-06-14T15:02:48.009Z","updated_at":"2016-06-14T15:02:48.009Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"User 4"},"events":[]},{"id":360,"note":"Nulla commodi ratione cumque id autem.","noteable_type":"Issue","author_id":25,"created_at":"2016-06-14T15:02:48.032Z","updated_at":"2016-06-14T15:02:48.032Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"User 3"},"events":[]},{"id":361,"note":"Illum non ea sed dolores corrupti.","noteable_type":"Issue","author_id":22,"created_at":"2016-06-14T15:02:48.056Z","updated_at":"2016-06-14T15:02:48.056Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"User 0"},"events":[]},{"id":362,"note":"Facere dolores ipsum dolorum maiores omnis occaecati ab.","noteable_type":"Issue","author_id":20,"created_at":"2016-06-14T15:02:48.082Z","updated_at":"2016-06-14T15:02:48.082Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Ottis Schuster II"},"events":[]},{"id":363,"note":"Quod laudantium similique sint aut est ducimus.","noteable_type":"Issue","author_id":16,"created_at":"2016-06-14T15:02:48.113Z","updated_at":"2016-06-14T15:02:48.113Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Rhett Emmerich IV"},"events":[]},{"id":364,"note":"Aut omnis eos esse incidunt vero reiciendis.","noteable_type":"Issue","author_id":15,"created_at":"2016-06-14T15:02:48.139Z","updated_at":"2016-06-14T15:02:48.139Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Burdette Bernier"},"events":[]},{"id":365,"note":"Beatae dolore et doloremque asperiores sunt.","noteable_type":"Issue","author_id":6,"created_at":"2016-06-14T15:02:48.162Z","updated_at":"2016-06-14T15:02:48.162Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Ari Wintheiser"},"events":[]},{"id":366,"note":"Doloribus ipsam ex delectus rerum libero recusandae modi repellendus.","noteable_type":"Issue","author_id":1,"created_at":"2016-06-14T15:02:48.192Z","updated_at":"2016-06-14T15:02:48.192Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Administrator"},"events":[]}]}
+{"id":39,"author_id":22,"project_id":null,"created_at":"2016-06-14T15:02:08.233Z","updated_at":"2016-06-14T15:02:48.194Z","position":0,"branch_name":null,"description":"Voluptate vel reprehenderit facilis omnis voluptas magnam tenetur.","state":"opened","updated_by_id":null,"confidential":false,"due_date":"2020-08-14","moved_to_id":null,"issue_assignees":[],"milestone":{"id":1,"title":"test milestone","project_id":8,"description":"test milestone","due_date":null,"created_at":"2016-06-14T15:02:04.415Z","updated_at":"2016-06-14T15:02:04.415Z","state":"active","iid":1,"events":[{"id":487,"target_type":"Milestone","target_id":1,"project_id":46,"created_at":"2016-06-14T15:02:04.418Z","updated_at":"2016-06-14T15:02:04.418Z","action":1,"author_id":18}]},"notes":[{"id":359,"note":"Quo eius velit quia et id quam.","noteable_type":"Issue","author_id":26,"created_at":"2016-06-14T15:02:48.009Z","updated_at":"2016-06-14T15:02:48.009Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"User 4"},"events":[]},{"id":360,"note":"Nulla commodi ratione cumque id autem.","noteable_type":"Issue","author_id":25,"created_at":"2016-06-14T15:02:48.032Z","updated_at":"2016-06-14T15:02:48.032Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"User 3"},"events":[]},{"id":361,"note":"Illum non ea sed dolores corrupti.","noteable_type":"Issue","author_id":22,"created_at":"2016-06-14T15:02:48.056Z","updated_at":"2016-06-14T15:02:48.056Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"User 0"},"events":[]},{"id":362,"note":"Facere dolores ipsum dolorum maiores omnis occaecati ab.","noteable_type":"Issue","author_id":20,"created_at":"2016-06-14T15:02:48.082Z","updated_at":"2016-06-14T15:02:48.082Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Ottis Schuster II"},"events":[]},{"id":363,"note":"Quod laudantium similique sint aut est ducimus.","noteable_type":"Issue","author_id":16,"created_at":"2016-06-14T15:02:48.113Z","updated_at":"2016-06-14T15:02:48.113Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Rhett Emmerich IV"},"events":[]},{"id":364,"note":"Aut omnis eos esse incidunt vero reiciendis.","noteable_type":"Issue","author_id":15,"created_at":"2016-06-14T15:02:48.139Z","updated_at":"2016-06-14T15:02:48.139Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Burdette Bernier"},"events":[]},{"id":365,"note":"Beatae dolore et doloremque asperiores sunt.","noteable_type":"Issue","author_id":6,"created_at":"2016-06-14T15:02:48.162Z","updated_at":"2016-06-14T15:02:48.162Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Ari Wintheiser"},"events":[]},{"id":366,"note":"Doloribus ipsam ex delectus rerum libero recusandae modi repellendus.","noteable_type":"Issue","author_id":1,"created_at":"2016-06-14T15:02:48.192Z","updated_at":"2016-06-14T15:02:48.192Z","project_id":5,"attachment":{"url":null},"line_code":null,"commit_id":null,"noteable_id":39,"system":false,"st_diff":null,"updated_by_id":null,"author":{"name":"Administrator"},"events":[]}]}
diff --git a/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project/milestones.ndjson b/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project/milestones.ndjson
new file mode 100644
index 00000000000..28e737fa43c
--- /dev/null
+++ b/spec/fixtures/lib/gitlab/import_export/with_invalid_issues_and_milestones/tree/project/milestones.ndjson
@@ -0,0 +1,2 @@
+{"id":1,"title":null,"project_id":8,"description":123,"due_date":null,"created_at":"NOT A DATE","updated_at":"NOT A DATE","state":"active","iid":1,"group_id":null}
+{"id":42,"title":"A valid milestone","project_id":8,"description":"Project-level milestone","due_date":null,"created_at":"2016-06-14T15:02:04.415Z","updated_at":"2016-06-14T15:02:04.415Z","state":"active","iid":1,"group_id":null}
diff --git a/spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml
index ba56d782871..5238e997044 100644
--- a/spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: 28d
data_source: internal_events
data_category: optional
-instrumentation_class: TotalCountMetric
distribution:
- ee
tier:
diff --git a/spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml
index e6bdcb9d2ae..fdbf137f699 100644
--- a/spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: 7d
data_source: internal_events
data_category: optional
-instrumentation_class: TotalCountMetric
distribution:
- ee
tier:
diff --git a/spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml
index b1bf89dc095..e928869ca9a 100644
--- a/spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: all
data_source: internal_events
data_category: optional
-instrumentation_class: TotalCountMetric
distribution:
- ee
tier:
diff --git a/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml b/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml
index 8476cb8561b..4d40e2122cb 100644
--- a/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: 28d
data_source: internal_events
data_category: optional
-instrumentation_class: RedisHLLMetric
distribution:
- ce
- ee
diff --git a/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml b/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml
index b4cc2fc8b55..166cef90412 100644
--- a/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: 7d
data_source: internal_events
data_category: optional
-instrumentation_class: RedisHLLMetric
distribution:
- ce
- ee
diff --git a/spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml b/spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml
index 754702c8c74..122043e6cc0 100644
--- a/spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: 28d
data_source: internal_events
data_category: optional
-instrumentation_class: RedisHLLMetric
distribution:
- ce
- ee
diff --git a/spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml b/spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml
index 95f429e9b40..11a4ba41c07 100644
--- a/spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: 7d
data_source: internal_events
data_category: optional
-instrumentation_class: RedisHLLMetric
distribution:
- ce
- ee
diff --git a/spec/fixtures/scripts/internal_events/metrics/total_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
index 5bdb4c45a52..038fc738f25 100644
--- a/spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: all
data_source: internal_events
data_category: optional
-instrumentation_class: TotalCountMetric
distribution:
- ce
- ee
diff --git a/spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml
index b176b23b46a..b27e69bd43b 100644
--- a/spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: 28d
data_source: internal_events
data_category: optional
-instrumentation_class: RedisHLLMetric
distribution:
- ce
- ee
diff --git a/spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml
index 8a0fca2cbdc..e08733a6bc9 100644
--- a/spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml
+++ b/spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml
@@ -12,7 +12,6 @@ introduced_by_url: TODO
time_frame: 7d
data_source: internal_events
data_category: optional
-instrumentation_class: RedisHLLMetric
distribution:
- ce
- ee
diff --git a/spec/fixtures/security_reports/master/gl-common-scanning-report-with-unicode-null-character.json b/spec/fixtures/security_reports/master/gl-common-scanning-report-with-unicode-null-character.json
new file mode 100644
index 00000000000..852327fc084
--- /dev/null
+++ b/spec/fixtures/security_reports/master/gl-common-scanning-report-with-unicode-null-character.json
@@ -0,0 +1,79 @@
+{
+ "vulnerabilities": [
+ {
+ "id": "vulnerability-1",
+ "category": "dependency_scanning",
+ "name": "Vulnerability for remediation testing 1",
+ "message": "This vulnerability should have ONE remediation",
+ "description": "",
+ "severity": "High",
+ "solution": "Upgrade to latest version.\u0000",
+ "scanner": {
+ "id": "gemnasium",
+ "name": "Gemnasium"
+ },
+ "cvss_vectors": [
+ {
+ "vendor": "GitLab",
+ "vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
+ }
+ ],
+ "location": {
+ "file": "some/kind/of/file.c",
+ "dependency": {
+ "package": {
+ "name": "io.netty/netty"
+ },
+ "version": "3.9.1.Final"
+ }
+ },
+ "identifiers": [
+ {
+ "type": "GitLab",
+ "name": "Foo vulnerability",
+ "value": "foo"
+ }
+ ],
+ "links": [
+ {
+ "url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-2137"
+ }
+ ],
+ "details": {
+ "commit": {
+ "name": "the commit",
+ "description": "description",
+ "type": "commit",
+ "value": "41df7b7eb3be2b5be2c406c2f6d28cd6631eeb19"
+ }
+ }
+ }
+ ],
+ "remediations": [],
+ "dependency_files": [],
+ "scan": {
+ "analyzer": {
+ "id": "common-analyzer",
+ "name": "Common Analyzer",
+ "url": "https://site.com/analyzer/common",
+ "version": "2.0.1",
+ "vendor": {
+ "name": "Common"
+ }
+ },
+ "scanner": {
+ "id": "gemnasium",
+ "name": "Gemnasium top-level",
+ "url": "https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium-maven",
+ "vendor": {
+ "name": "GitLab"
+ },
+ "version": "2.18.0"
+ },
+ "type": "dependency_scanning",
+ "start_time": "2022-08-10T21:37:00",
+ "end_time": "2022-08-10T21:38:00",
+ "status": "success"
+ },
+ "version": "14.0.2"
+}
diff --git a/spec/frontend/admin/abuse_report/components/user_details_spec.js b/spec/frontend/admin/abuse_report/components/user_details_spec.js
index 24ec0cdb1b2..42c219b1b11 100644
--- a/spec/frontend/admin/abuse_report/components/user_details_spec.js
+++ b/spec/frontend/admin/abuse_report/components/user_details_spec.js
@@ -1,6 +1,5 @@
import { GlLink, GlSprintf } from '@gitlab/ui';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
-import { sprintf } from '~/locale';
import UserDetails from '~/admin/abuse_report/components/user_details.vue';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import { USER_DETAILS_I18N } from '~/admin/abuse_report/constants';
@@ -61,7 +60,7 @@ describe('UserDetails', () => {
describe('verification', () => {
it('renders the users verification with the correct label', () => {
expect(findUserDetailLabel('verification')).toBe(USER_DETAILS_I18N.verification);
- expect(findUserDetailValue('verification')).toBe('Email, Credit card');
+ expect(findUserDetailValue('verification')).toBe('Email, Phone, Credit card');
});
});
@@ -73,7 +72,7 @@ describe('UserDetails', () => {
describe('similar credit cards', () => {
it('renders the number of similar records', () => {
expect(findUserDetail('credit-card-verification').text()).toContain(
- sprintf('Card matches %{similarRecordsCount} accounts', { ...user.creditCard }),
+ `Card matches ${user.creditCard.similarRecordsCount} accounts`,
);
});
@@ -83,7 +82,7 @@ describe('UserDetails', () => {
);
expect(findLinkFor('credit-card-verification').text()).toBe(
- sprintf('%{similarRecordsCount} accounts', { ...user.creditCard }),
+ `${user.creditCard.similarRecordsCount} accounts`,
);
expect(findLinkFor('credit-card-verification').text()).toContain(
@@ -100,7 +99,7 @@ describe('UserDetails', () => {
it('does not render the number of similar records', () => {
expect(findUserDetail('credit-card-verification').text()).not.toContain(
- sprintf('Card matches %{similarRecordsCount} accounts', { ...user.creditCard }),
+ `Card matches ${user.creditCard.similarRecordsCount} accounts`,
);
});
@@ -123,6 +122,60 @@ describe('UserDetails', () => {
});
});
+ describe('phoneNumber', () => {
+ it('renders the correct label', () => {
+ expect(findUserDetailLabel('phone-number-verification')).toBe(USER_DETAILS_I18N.phoneNumber);
+ });
+
+ describe('similar phone numbers', () => {
+ it('renders the number of similar records', () => {
+ expect(findUserDetail('phone-number-verification').text()).toContain(
+ `Phone matches ${user.phoneNumber.similarRecordsCount} accounts`,
+ );
+ });
+
+ it('renders a link to the matching phone numbers', () => {
+ expect(findLinkFor('phone-number-verification').attributes('href')).toBe(
+ user.phoneNumber.phoneMatchesLink,
+ );
+
+ expect(findLinkFor('phone-number-verification').text()).toBe(
+ `${user.phoneNumber.similarRecordsCount} accounts`,
+ );
+ });
+
+ describe('when the number of similar phone numbers is less than 2', () => {
+ beforeEach(() => {
+ createComponent({
+ user: { ...user, phoneNumber: { ...user.phoneNumber, similarRecordsCount: 1 } },
+ });
+ });
+
+ it('does not render the number of similar records', () => {
+ expect(findUserDetail('phone-number-verification').text()).not.toContain(
+ `Phone matches ${user.phoneNumber.similarRecordsCount} accounts`,
+ );
+ });
+
+ it('does not render a link to the matching phone numbers', () => {
+ expect(findLinkFor('phone-number-verification').exists()).toBe(false);
+ });
+ });
+ });
+
+ describe('when the users phoneNumber is blank', () => {
+ beforeEach(() => {
+ createComponent({
+ user: { ...user, phoneNumber: undefined },
+ });
+ });
+
+ it('does not render the users phoneNumber', () => {
+ expect(findUserDetail('phone-number-verification').exists()).toBe(false);
+ });
+ });
+ });
+
describe('otherReports', () => {
it('renders the correct label', () => {
expect(findUserDetailLabel('past-closed-reports')).toBe(USER_DETAILS_I18N.pastReports);
@@ -132,9 +185,7 @@ describe('UserDetails', () => {
const index = user.pastClosedReports.indexOf(pastReport);
it('renders the category', () => {
- expect(findPastReport(index).text()).toContain(
- sprintf('Reported for %{category}', { ...pastReport }),
- );
+ expect(findPastReport(index).text()).toContain(`Reported for ${pastReport.category}`);
});
it('renders a link to the report', () => {
diff --git a/spec/frontend/admin/abuse_report/mock_data.js b/spec/frontend/admin/abuse_report/mock_data.js
index 9790b44c976..f02986fb5bb 100644
--- a/spec/frontend/admin/abuse_report/mock_data.js
+++ b/spec/frontend/admin/abuse_report/mock_data.js
@@ -9,12 +9,16 @@ export const mockAbuseReport = {
path: '/spamuser417',
adminPath: '/admin/users/spamuser417',
plan: 'Free',
- verificationState: { email: true, phone: false, creditCard: true },
+ verificationState: { email: true, phone: true, creditCard: true },
creditCard: {
name: 'S. User',
similarRecordsCount: 2,
cardMatchesLink: '/admin/users/spamuser417/card_match',
},
+ phoneNumber: {
+ similarRecordsCount: 2,
+ phoneMatchesLink: '/admin/users/spamuser417/phone_match',
+ },
pastClosedReports: [
{
category: 'offensive',
diff --git a/spec/frontend/alerts_settings/components/alerts_settings_form_spec.js b/spec/frontend/alerts_settings/components/alerts_settings_form_spec.js
index e6b38a1e824..41690e1b5be 100644
--- a/spec/frontend/alerts_settings/components/alerts_settings_form_spec.js
+++ b/spec/frontend/alerts_settings/components/alerts_settings_form_spec.js
@@ -6,30 +6,48 @@ import {
GlFormTextarea,
GlTab,
GlLink,
+ GlModal,
} from '@gitlab/ui';
import { mount } from '@vue/test-utils';
-import { nextTick } from 'vue';
+import Vue, { nextTick } from 'vue';
+import VueApollo from 'vue-apollo';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
import waitForPromises from 'helpers/wait_for_promises';
import MappingBuilder from '~/alerts_settings/components/alert_mapping_builder.vue';
import AlertsSettingsForm from '~/alerts_settings/components/alerts_settings_form.vue';
import { typeSet } from '~/alerts_settings/constants';
-import alertFields from '../mocks/alert_fields.json';
+import createMockApollo from 'helpers/mock_apollo_helper';
import parsedMapping from '../mocks/parsed_mapping.json';
+import alertFields from '../mocks/alert_fields.json';
const scrollIntoViewMock = jest.fn();
HTMLElement.prototype.scrollIntoView = scrollIntoViewMock;
+Vue.use(VueApollo);
+
describe('AlertsSettingsForm', () => {
let wrapper;
const mockToastShow = jest.fn();
+ let apolloProvider;
+
+ const createComponent = async ({
+ props = {},
+ multiIntegrations = true,
+ currentIntegration = null,
+ } = {}) => {
+ const mockResolvers = {
+ Query: {
+ currentIntegration() {
+ return currentIntegration;
+ },
+ },
+ };
+
+ apolloProvider = createMockApollo([], mockResolvers);
- const createComponent = ({ data = {}, props = {}, multiIntegrations = true } = {}) => {
wrapper = extendedWrapper(
mount(AlertsSettingsForm, {
- data() {
- return { ...data };
- },
+ apolloProvider,
propsData: {
loading: false,
canAddIntegration: true,
@@ -39,15 +57,14 @@ describe('AlertsSettingsForm', () => {
multiIntegrations,
},
mocks: {
- $apollo: {
- query: jest.fn(),
- },
$toast: {
show: mockToastShow,
},
},
}),
);
+
+ await waitForPromises();
};
const findForm = () => wrapper.findComponent(GlForm);
@@ -55,6 +72,7 @@ describe('AlertsSettingsForm', () => {
const findFormFields = () => wrapper.findAllComponents(GlFormInput);
const findFormToggle = () => wrapper.findComponent(GlToggle);
const findSamplePayloadSection = () => wrapper.findByTestId('sample-payload-section');
+ const findResetPayloadModal = () => wrapper.findComponent(GlModal);
const findMappingBuilder = () => wrapper.findComponent(MappingBuilder);
const findSubmitButton = () => wrapper.findByTestId('integration-form-submit');
const findMultiSupportText = () => wrapper.findByTestId('multi-integrations-not-supported');
@@ -76,9 +94,13 @@ describe('AlertsSettingsForm', () => {
findFormToggle().vm.$emit('change', true);
};
+ afterEach(() => {
+ apolloProvider = null;
+ });
+
describe('with default values', () => {
- beforeEach(() => {
- createComponent();
+ beforeEach(async () => {
+ await createComponent();
});
it('render the initial form with only an integration type dropdown', () => {
@@ -94,21 +116,23 @@ describe('AlertsSettingsForm', () => {
expect(findFormFields().at(0).isVisible()).toBe(true);
});
- it('disables the dropdown and shows help text when multi integrations are not supported', () => {
- createComponent({ props: { canAddIntegration: false } });
+ it('disables the dropdown and shows help text when multi integrations are not supported', async () => {
+ await createComponent({ props: { canAddIntegration: false } });
+
expect(findSelect().attributes('disabled')).toBeDefined();
expect(findMultiSupportText().exists()).toBe(true);
});
it('hides the name input when the selected value is prometheus', async () => {
- createComponent();
+ await createComponent();
await selectOptionAtIndex(2);
expect(findFormFields()).toHaveLength(0);
});
- it('verify pricing link url', () => {
- createComponent({ props: { canAddIntegration: false } });
+ it('verify pricing link url', async () => {
+ await createComponent({ props: { canAddIntegration: false } });
+
const link = findMultiSupportText().findComponent(GlLink);
expect(link.attributes('href')).toMatch(/https:\/\/about.gitlab.(com|cn)\/pricing/);
});
@@ -118,24 +142,19 @@ describe('AlertsSettingsForm', () => {
expect(findTabs()).toHaveLength(3);
});
- it('only first tab is enabled on integration create', () => {
- createComponent({
- data: {
- currentIntegration: null,
- },
- });
+ it('only first tab is enabled on integration create', async () => {
+ await createComponent();
+
const tabs = findTabs();
expect(tabs.at(0).find('[role="tabpanel"]').classes('disabled')).toBe(false);
expect(tabs.at(1).find('[role="tabpanel"]').classes('disabled')).toBe(true);
expect(tabs.at(2).find('[role="tabpanel"]').classes('disabled')).toBe(true);
});
- it('all tabs are enabled on integration edit', () => {
- createComponent({
- data: {
- currentIntegration: { id: 1 },
- },
- });
+ it('all tabs are enabled on integration edit', async () => {
+ const currentIntegration = { id: 1 };
+ await createComponent({ currentIntegration });
+
const tabs = findTabs();
expect(tabs.at(0).find('[role="tabpanel"]').classes('disabled')).toBe(false);
expect(tabs.at(1).find('[role="tabpanel"]').classes('disabled')).toBe(false);
@@ -147,10 +166,7 @@ describe('AlertsSettingsForm', () => {
describe('submitting integration form', () => {
describe('HTTP', () => {
it('create with custom mapping', async () => {
- createComponent({
- multiIntegrations: true,
- props: { alertFields },
- });
+ await createComponent({ props: { alertFields } });
const integrationName = 'Test integration';
await selectOptionAtIndex(1);
@@ -172,25 +188,23 @@ describe('AlertsSettingsForm', () => {
});
});
- it('update', () => {
- createComponent({
- data: {
- integrationForm: { id: '1', name: 'Test integration pre', type: typeSet.http },
- currentIntegration: { id: '1' },
- },
- props: {
- loading: false,
- },
- });
+ it('update', async () => {
+ const currentIntegration = {
+ id: '1',
+ name: 'Test integration pre',
+ type: typeSet.http,
+ };
+ await createComponent({ currentIntegration });
const updatedIntegrationName = 'Test integration post';
enableIntegration(0, updatedIntegrationName);
- const submitBtn = findSubmitButton();
- expect(submitBtn.exists()).toBe(true);
- expect(submitBtn.text()).toBe('Save integration');
+ expect(findSubmitButton().exists()).toBe(true);
+ expect(findSubmitButton().text()).toBe('Save integration');
+
+ await nextTick();
+ await findSubmitButton().trigger('click');
- submitBtn.trigger('click');
expect(wrapper.emitted('update-integration')[0][0]).toMatchObject({
type: typeSet.http,
variables: {
@@ -205,13 +219,12 @@ describe('AlertsSettingsForm', () => {
describe('PROMETHEUS', () => {
it('create', async () => {
- createComponent();
+ await createComponent();
await selectOptionAtIndex(2);
enableIntegration(0);
- const submitBtn = findSubmitButton();
- expect(submitBtn.exists()).toBe(true);
- expect(submitBtn.text()).toBe('Save integration');
+ expect(findSubmitButton().exists()).toBe(true);
+ expect(findSubmitButton().text()).toBe('Save integration');
findForm().trigger('submit');
@@ -221,22 +234,17 @@ describe('AlertsSettingsForm', () => {
});
});
- it('update', () => {
- createComponent({
- data: {
- integrationForm: { id: '1', type: typeSet.prometheus },
- currentIntegration: { id: '1' },
- },
- props: {
- loading: false,
- },
- });
+ it('update', async () => {
+ const currentIntegration = {
+ id: '1',
+ type: typeSet.prometheus,
+ };
+ await createComponent({ currentIntegration });
enableIntegration(0);
- const submitBtn = findSubmitButton();
- expect(submitBtn.exists()).toBe(true);
- expect(submitBtn.text()).toBe('Save integration');
+ expect(findSubmitButton().exists()).toBe(true);
+ expect(findSubmitButton().text()).toBe('Save integration');
findForm().trigger('submit');
@@ -249,16 +257,9 @@ describe('AlertsSettingsForm', () => {
});
describe('submitting the integration with a JSON test payload', () => {
- beforeEach(() => {
- createComponent({
- data: {
- currentIntegration: { id: '1', name: 'Test' },
- active: true,
- },
- props: {
- loading: false,
- },
- });
+ beforeEach(async () => {
+ const currentIntegration = { id: '1', name: 'Test' };
+ await createComponent({ currentIntegration });
});
it('should not allow a user to test invalid JSON', async () => {
@@ -285,17 +286,18 @@ describe('AlertsSettingsForm', () => {
describe('Test payload section for HTTP integration', () => {
const validSamplePayload = JSON.stringify(alertFields);
const emptySamplePayload = '{}';
- beforeEach(() => {
- createComponent({
- multiIntegrations: true,
- data: {
- integrationForm: { type: typeSet.http },
- currentIntegration: {
- payloadExample: emptySamplePayload,
- },
- active: false,
- resetPayloadAndMappingConfirmed: false,
- },
+
+ beforeEach(async () => {
+ const currentIntegration = {
+ id: '1',
+ name: 'Test',
+ type: typeSet.http,
+ payloadExample: emptySamplePayload,
+ payloadAttributeMappings: [],
+ };
+
+ await createComponent({
+ currentIntegration,
props: { alertFields },
});
});
@@ -314,14 +316,25 @@ describe('AlertsSettingsForm', () => {
const validPayloadMsg = payload === emptySamplePayload ? 'not valid' : 'valid';
it(`textarea should be ${enabledState} when payload reset ${payloadResetMsg} and payload is ${validPayloadMsg}`, async () => {
- // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details
- // eslint-disable-next-line no-restricted-syntax
- wrapper.setData({
- currentIntegration: { payloadExample: payload },
- resetPayloadAndMappingConfirmed,
+ const currentIntegration = {
+ id: '1',
+ name: 'Test',
+ type: typeSet.http,
+ payloadExample: payload,
+ payloadAttributeMappings: [],
+ };
+
+ await createComponent({
+ currentIntegration,
+ props: { alertFields },
});
+ if (resetPayloadAndMappingConfirmed) {
+ findResetPayloadModal().vm.$emit('ok');
+ }
+
await nextTick();
+
expect(
findSamplePayloadSection().findComponent(GlFormTextarea).attributes('disabled'),
).toBe(disabled);
@@ -342,14 +355,21 @@ describe('AlertsSettingsForm', () => {
: 'was not confirmed';
it(`shows ${caption} button when sample payload ${samplePayloadMsg} and payload reset ${payloadResetMsg}`, async () => {
- // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details
- // eslint-disable-next-line no-restricted-syntax
- wrapper.setData({
- currentIntegration: {
- payloadExample,
- },
- resetPayloadAndMappingConfirmed,
+ const currentIntegration = {
+ type: typeSet.http,
+ payloadExample,
+ payloadAttributeMappings: [],
+ };
+
+ await createComponent({
+ currentIntegration,
+ props: { alertFields },
});
+
+ if (resetPayloadAndMappingConfirmed) {
+ findResetPayloadModal().vm.$emit('ok');
+ }
+
await nextTick();
expect(findActionBtn().text()).toBe(caption);
});
@@ -357,14 +377,6 @@ describe('AlertsSettingsForm', () => {
});
describe('Parsing payload', () => {
- beforeEach(() => {
- // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details
- // eslint-disable-next-line no-restricted-syntax
- wrapper.setData({
- resetPayloadAndMappingConfirmed: true,
- });
- });
-
it('displays a toast message on successful parse', async () => {
jest.spyOn(wrapper.vm.$apollo, 'query').mockResolvedValue({
data: {
@@ -408,7 +420,7 @@ describe('AlertsSettingsForm', () => {
const multiIntegrationsEnabled = multiIntegrations ? 'enabled' : 'not enabled';
it(`is ${visibleMsg} when multiIntegrations are ${multiIntegrationsEnabled}, integration type is ${integrationType} and alert fields are ${alertFieldsMsg}`, async () => {
- createComponent({
+ await createComponent({
multiIntegrations,
props: {
alertFields: alertFieldsProvided ? alertFields : [],
@@ -423,8 +435,8 @@ describe('AlertsSettingsForm', () => {
});
describe('Form validation', () => {
- beforeEach(() => {
- createComponent();
+ beforeEach(async () => {
+ await createComponent();
});
it('should not be able to submit when no integration type is selected', async () => {
@@ -452,39 +464,29 @@ describe('AlertsSettingsForm', () => {
});
it('should be able to submit when form is dirty', async () => {
- // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details
- // eslint-disable-next-line no-restricted-syntax
- wrapper.setData({
- currentIntegration: { type: typeSet.http, name: 'Existing integration' },
- });
- await nextTick();
- await findFormFields().at(0).vm.$emit('input', 'Updated name');
+ const currentIntegration = { type: typeSet.http, name: 'Existing integration' };
+ await createComponent({ currentIntegration });
+ await findFormFields().at(0).vm.$emit('input', 'Updated name');
expect(findSubmitButton().attributes('disabled')).toBe(undefined);
});
it('should not be able to submit when form is pristine', async () => {
- // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details
- // eslint-disable-next-line no-restricted-syntax
- wrapper.setData({
- currentIntegration: { type: typeSet.http, name: 'Existing integration' },
- });
- await nextTick();
-
+ const currentIntegration = { type: typeSet.http, name: 'Existing integration' };
+ await createComponent({ currentIntegration });
expect(findSubmitButton().attributes('disabled')).toBeDefined();
});
it('should disable submit button after click on validation failure', async () => {
await selectOptionAtIndex(1);
- findSubmitButton().trigger('click');
- await nextTick();
+ await findSubmitButton().trigger('click');
expect(findSubmitButton().attributes('disabled')).toBeDefined();
});
it('should scroll to invalid field on validation failure', async () => {
await selectOptionAtIndex(1);
- findSubmitButton().trigger('click');
+ await findSubmitButton().trigger('click');
expect(scrollIntoViewMock).toHaveBeenCalledWith({ behavior: 'smooth', block: 'center' });
});
diff --git a/spec/frontend/behaviors/secret_values_spec.js b/spec/frontend/behaviors/secret_values_spec.js
deleted file mode 100644
index 06155017dd1..00000000000
--- a/spec/frontend/behaviors/secret_values_spec.js
+++ /dev/null
@@ -1,230 +0,0 @@
-import SecretValues from '~/behaviors/secret_values';
-
-function generateValueMarkup(
- secret,
- valueClass = 'js-secret-value',
- placeholderClass = 'js-secret-value-placeholder',
-) {
- return `
- <div class="${placeholderClass}">
- ***
- </div>
- <div class="hidden ${valueClass}">
- ${secret}
- </div>
- `;
-}
-
-function generateFixtureMarkup(secrets, isRevealed, valueClass, placeholderClass) {
- return `
- <div class="js-secret-container">
- ${secrets.map((secret) => generateValueMarkup(secret, valueClass, placeholderClass)).join('')}
- <button
- class="js-secret-value-reveal-button"
- data-secret-reveal-status="${isRevealed}"
- >
- ...
- </button>
- </div>
- `;
-}
-
-function setupSecretFixture(
- secrets,
- isRevealed,
- valueClass = 'js-secret-value',
- placeholderClass = 'js-secret-value-placeholder',
-) {
- const wrapper = document.createElement('div');
- wrapper.innerHTML = generateFixtureMarkup(secrets, isRevealed, valueClass, placeholderClass);
-
- const secretValues = new SecretValues({
- container: wrapper.querySelector('.js-secret-container'),
- valueSelector: `.${valueClass}`,
- placeholderSelector: `.${placeholderClass}`,
- });
- secretValues.init();
-
- return wrapper;
-}
-
-describe('setupSecretValues', () => {
- describe('with a single secret', () => {
- const secrets = ['mysecret123'];
-
- it('should have correct "Reveal" label when values are hidden', () => {
- const wrapper = setupSecretFixture(secrets, false);
- const revealButton = wrapper.querySelector('.js-secret-value-reveal-button');
-
- expect(revealButton.textContent).toEqual('Reveal value');
- });
-
- it('should have correct "Hide" label when values are shown', () => {
- const wrapper = setupSecretFixture(secrets, true);
- const revealButton = wrapper.querySelector('.js-secret-value-reveal-button');
-
- expect(revealButton.textContent).toEqual('Hide value');
- });
-
- it('should have value hidden initially', () => {
- const wrapper = setupSecretFixture(secrets, false);
- const values = wrapper.querySelectorAll('.js-secret-value');
- const placeholders = wrapper.querySelectorAll('.js-secret-value-placeholder');
-
- expect(values.length).toEqual(1);
- expect(values[0].classList.contains('hide')).toEqual(true);
- expect(placeholders.length).toEqual(1);
- expect(placeholders[0].classList.contains('hide')).toEqual(false);
- });
-
- it('should toggle value and placeholder', () => {
- const wrapper = setupSecretFixture(secrets, false);
- const revealButton = wrapper.querySelector('.js-secret-value-reveal-button');
- const values = wrapper.querySelectorAll('.js-secret-value');
- const placeholders = wrapper.querySelectorAll('.js-secret-value-placeholder');
-
- revealButton.click();
-
- expect(values.length).toEqual(1);
- expect(values[0].classList.contains('hide')).toEqual(false);
- expect(placeholders.length).toEqual(1);
- expect(placeholders[0].classList.contains('hide')).toEqual(true);
-
- revealButton.click();
-
- expect(values.length).toEqual(1);
- expect(values[0].classList.contains('hide')).toEqual(true);
- expect(placeholders.length).toEqual(1);
- expect(placeholders[0].classList.contains('hide')).toEqual(false);
- });
- });
-
- describe('with a multiple secrets', () => {
- const secrets = ['mysecret123', 'happygoat456', 'tanuki789'];
-
- it('should have correct "Reveal" label when values are hidden', () => {
- const wrapper = setupSecretFixture(secrets, false);
- const revealButton = wrapper.querySelector('.js-secret-value-reveal-button');
-
- expect(revealButton.textContent).toEqual('Reveal values');
- });
-
- it('should have correct "Hide" label when values are shown', () => {
- const wrapper = setupSecretFixture(secrets, true);
- const revealButton = wrapper.querySelector('.js-secret-value-reveal-button');
-
- expect(revealButton.textContent).toEqual('Hide values');
- });
-
- it('should have all values hidden initially', () => {
- const wrapper = setupSecretFixture(secrets, false);
- const values = wrapper.querySelectorAll('.js-secret-value');
- const placeholders = wrapper.querySelectorAll('.js-secret-value-placeholder');
-
- expect(values.length).toEqual(3);
- values.forEach((value) => {
- expect(value.classList.contains('hide')).toEqual(true);
- });
-
- expect(placeholders.length).toEqual(3);
- placeholders.forEach((placeholder) => {
- expect(placeholder.classList.contains('hide')).toEqual(false);
- });
- });
-
- it('should toggle values and placeholders', () => {
- const wrapper = setupSecretFixture(secrets, false);
- const revealButton = wrapper.querySelector('.js-secret-value-reveal-button');
- const values = wrapper.querySelectorAll('.js-secret-value');
- const placeholders = wrapper.querySelectorAll('.js-secret-value-placeholder');
-
- revealButton.click();
-
- expect(values.length).toEqual(3);
- values.forEach((value) => {
- expect(value.classList.contains('hide')).toEqual(false);
- });
-
- expect(placeholders.length).toEqual(3);
- placeholders.forEach((placeholder) => {
- expect(placeholder.classList.contains('hide')).toEqual(true);
- });
-
- revealButton.click();
-
- expect(values.length).toEqual(3);
- values.forEach((value) => {
- expect(value.classList.contains('hide')).toEqual(true);
- });
-
- expect(placeholders.length).toEqual(3);
- placeholders.forEach((placeholder) => {
- expect(placeholder.classList.contains('hide')).toEqual(false);
- });
- });
- });
-
- describe('with dynamic secrets', () => {
- const secrets = ['mysecret123', 'happygoat456', 'tanuki789'];
-
- it('should toggle values and placeholders', () => {
- const wrapper = setupSecretFixture(secrets, false);
- // Insert the new dynamic row
- wrapper
- .querySelector('.js-secret-container')
- .insertAdjacentHTML('afterbegin', generateValueMarkup('foobarbazdynamic'));
-
- const revealButton = wrapper.querySelector('.js-secret-value-reveal-button');
- const values = wrapper.querySelectorAll('.js-secret-value');
- const placeholders = wrapper.querySelectorAll('.js-secret-value-placeholder');
-
- revealButton.click();
-
- expect(values.length).toEqual(4);
- values.forEach((value) => {
- expect(value.classList.contains('hide')).toEqual(false);
- });
-
- expect(placeholders.length).toEqual(4);
- placeholders.forEach((placeholder) => {
- expect(placeholder.classList.contains('hide')).toEqual(true);
- });
-
- revealButton.click();
-
- expect(values.length).toEqual(4);
- values.forEach((value) => {
- expect(value.classList.contains('hide')).toEqual(true);
- });
-
- expect(placeholders.length).toEqual(4);
- placeholders.forEach((placeholder) => {
- expect(placeholder.classList.contains('hide')).toEqual(false);
- });
- });
- });
-
- describe('selector options', () => {
- const secrets = ['mysecret123'];
-
- it('should respect `valueSelector` and `placeholderSelector` options', () => {
- const valueClass = 'js-some-custom-placeholder-selector';
- const placeholderClass = 'js-some-custom-value-selector';
-
- const wrapper = setupSecretFixture(secrets, false, valueClass, placeholderClass);
- const values = wrapper.querySelectorAll(`.${valueClass}`);
- const placeholders = wrapper.querySelectorAll(`.${placeholderClass}`);
- const revealButton = wrapper.querySelector('.js-secret-value-reveal-button');
-
- expect(values.length).toEqual(1);
- expect(placeholders.length).toEqual(1);
-
- revealButton.click();
-
- expect(values.length).toEqual(1);
- expect(values[0].classList.contains('hide')).toEqual(false);
- expect(placeholders.length).toEqual(1);
- expect(placeholders[0].classList.contains('hide')).toEqual(true);
- });
- });
-});
diff --git a/spec/frontend/blob/openapi/index_spec.js b/spec/frontend/blob/openapi/index_spec.js
index c96a021550d..fe98f46d013 100644
--- a/spec/frontend/blob/openapi/index_spec.js
+++ b/spec/frontend/blob/openapi/index_spec.js
@@ -1,24 +1,25 @@
-import axios from 'axios';
-import MockAdapter from 'axios-mock-adapter';
+import SwaggerClient from 'swagger-client';
import { TEST_HOST } from 'helpers/test_constants';
import { setHTMLFixture, resetHTMLFixture } from 'helpers/fixtures';
import renderOpenApi from '~/blob/openapi';
-import { HTTP_STATUS_OK } from '~/lib/utils/http_status';
import setWindowLocation from 'helpers/set_window_location_helper';
describe('OpenAPI blob viewer', () => {
const id = 'js-openapi-viewer';
const mockEndpoint = 'some/endpoint';
- let mock;
beforeEach(() => {
+ jest.spyOn(SwaggerClient, 'resolve').mockReturnValue(Promise.resolve({ spec: 'some spec' }));
setHTMLFixture(`<div id="${id}" data-endpoint="${mockEndpoint}"></div>`);
- mock = new MockAdapter(axios).onGet().reply(HTTP_STATUS_OK);
});
afterEach(() => {
resetHTMLFixture();
- mock.restore();
+ });
+
+ it('bundles the spec file', async () => {
+ await renderOpenApi();
+ expect(SwaggerClient.resolve).toHaveBeenCalledWith({ url: mockEndpoint });
});
describe('without config options', () => {
diff --git a/spec/frontend/boards/board_list_helper.js b/spec/frontend/boards/board_list_helper.js
index e3afd2dec2f..1ee4a7353ce 100644
--- a/spec/frontend/boards/board_list_helper.js
+++ b/spec/frontend/boards/board_list_helper.js
@@ -64,7 +64,6 @@ export default function createComponent({
disabled: false,
boardType: 'group',
issuableType: 'issue',
- isApolloBoard: true,
...provide,
},
stubs,
diff --git a/spec/frontend/boards/board_list_spec.js b/spec/frontend/boards/board_list_spec.js
index 8d59cb2692e..ad5804f6eb7 100644
--- a/spec/frontend/boards/board_list_spec.js
+++ b/spec/frontend/boards/board_list_spec.js
@@ -5,6 +5,7 @@ import { DraggableItemTypes, ListType } from 'ee_else_ce/boards/constants';
import { useFakeRequestAnimationFrame } from 'helpers/fake_request_animation_frame';
import waitForPromises from 'helpers/wait_for_promises';
import createComponent from 'jest/boards/board_list_helper';
+import { ESC_KEY_CODE } from '~/lib/utils/keycodes';
import BoardCard from '~/boards/components/board_card.vue';
import eventHub from '~/boards/eventhub';
import BoardCardMoveToPosition from '~/boards/components/board_card_move_to_position.vue';
@@ -203,9 +204,38 @@ describe('Board list component', () => {
expect(document.body.classList.contains('is-dragging')).toBe(true);
});
+
+ it('attaches `keyup` event listener on document', async () => {
+ jest.spyOn(document, 'addEventListener');
+ findDraggable().vm.$emit('start', {
+ item: {
+ dataset: {
+ draggableItemType: DraggableItemTypes.card,
+ },
+ },
+ });
+ await nextTick();
+
+ expect(document.addEventListener).toHaveBeenCalledWith('keyup', expect.any(Function));
+ });
});
describe('handleDragOnEnd', () => {
+ const getDragEndParam = (draggableItemType) => ({
+ oldIndex: 1,
+ newIndex: 0,
+ item: {
+ dataset: {
+ draggableItemType,
+ itemId: mockIssues[0].id,
+ itemIid: mockIssues[0].iid,
+ itemPath: mockIssues[0].referencePath,
+ },
+ },
+ to: { children: [], dataset: { listId: 'gid://gitlab/List/1' } },
+ from: { dataset: { listId: 'gid://gitlab/List/2' } },
+ });
+
beforeEach(() => {
startDrag();
});
@@ -213,42 +243,39 @@ describe('Board list component', () => {
it('removes class `is-dragging` from document body', () => {
document.body.classList.add('is-dragging');
- endDrag({
- oldIndex: 1,
- newIndex: 0,
- item: {
- dataset: {
- draggableItemType: DraggableItemTypes.card,
- itemId: mockIssues[0].id,
- itemIid: mockIssues[0].iid,
- itemPath: mockIssues[0].referencePath,
- },
- },
- to: { children: [], dataset: { listId: 'gid://gitlab/List/1' } },
- from: { dataset: { listId: 'gid://gitlab/List/2' } },
- });
+ endDrag(getDragEndParam(DraggableItemTypes.card));
expect(document.body.classList.contains('is-dragging')).toBe(false);
});
it(`should not handle the event if the dragged item is not a "${DraggableItemTypes.card}"`, () => {
- endDrag({
- oldIndex: 1,
- newIndex: 0,
- item: {
- dataset: {
- draggableItemType: DraggableItemTypes.list,
- itemId: mockIssues[0].id,
- itemIid: mockIssues[0].iid,
- itemPath: mockIssues[0].referencePath,
- },
- },
- to: { children: [], dataset: { listId: 'gid://gitlab/List/1' } },
- from: { dataset: { listId: 'gid://gitlab/List/2' } },
- });
+ endDrag(getDragEndParam(DraggableItemTypes.list));
expect(document.body.classList.contains('is-dragging')).toBe(true);
});
+
+ it('detaches `keyup` event listener on document', async () => {
+ jest.spyOn(document, 'removeEventListener');
+
+ findDraggable().vm.$emit('end', getDragEndParam(DraggableItemTypes.card));
+ await nextTick();
+
+ expect(document.removeEventListener).toHaveBeenCalledWith('keyup', expect.any(Function));
+ });
+ });
+
+ describe('handleKeyUp', () => {
+ it('dispatches `mouseup` event when Escape key is pressed', () => {
+ jest.spyOn(document, 'dispatchEvent');
+
+ document.dispatchEvent(
+ new Event('keyup', {
+ keyCode: ESC_KEY_CODE,
+ }),
+ );
+
+ expect(document.dispatchEvent).toHaveBeenCalledWith(new Event('mouseup'));
+ });
});
});
diff --git a/spec/frontend/boards/components/board_add_new_column_form_spec.js b/spec/frontend/boards/components/board_add_new_column_form_spec.js
index 719e36629c2..406ce007088 100644
--- a/spec/frontend/boards/components/board_add_new_column_form_spec.js
+++ b/spec/frontend/boards/components/board_add_new_column_form_spec.js
@@ -1,37 +1,17 @@
-import Vue from 'vue';
-// eslint-disable-next-line no-restricted-imports
-import Vuex from 'vuex';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import BoardAddNewColumnForm from '~/boards/components/board_add_new_column_form.vue';
-import defaultState from '~/boards/stores/state';
import { mockLabelList } from '../mock_data';
-Vue.use(Vuex);
-
describe('BoardAddNewColumnForm', () => {
let wrapper;
- const createStore = ({ actions = {}, getters = {}, state = {} } = {}) => {
- return new Vuex.Store({
- state: {
- ...defaultState,
- ...state,
- },
- actions,
- getters,
- });
- };
-
- const mountComponent = ({ searchLabel = '', selectedIdValid = true, actions, slots } = {}) => {
+ const mountComponent = ({ searchLabel = '', selectedIdValid = true, slots } = {}) => {
wrapper = shallowMountExtended(BoardAddNewColumnForm, {
propsData: {
searchLabel,
selectedIdValid,
},
slots,
- store: createStore({
- actions,
- }),
});
};
diff --git a/spec/frontend/boards/components/board_add_new_column_trigger_spec.js b/spec/frontend/boards/components/board_add_new_column_trigger_spec.js
index 396ec7d67cd..f536a1e6c64 100644
--- a/spec/frontend/boards/components/board_add_new_column_trigger_spec.js
+++ b/spec/frontend/boards/components/board_add_new_column_trigger_spec.js
@@ -1,14 +1,8 @@
import { GlButton } from '@gitlab/ui';
-import Vue from 'vue';
-// eslint-disable-next-line no-restricted-imports
-import Vuex from 'vuex';
import { mountExtended } from 'helpers/vue_test_utils_helper';
import BoardAddNewColumnTrigger from '~/boards/components/board_add_new_column_trigger.vue';
-import { createStore } from '~/boards/stores';
import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
-Vue.use(Vuex);
-
describe('BoardAddNewColumnTrigger', () => {
let wrapper;
@@ -24,7 +18,6 @@ describe('BoardAddNewColumnTrigger', () => {
propsData: {
isNewListShowing,
},
- store: createStore(),
});
};
diff --git a/spec/frontend/boards/components/board_app_spec.js b/spec/frontend/boards/components/board_app_spec.js
index 157c76b4fff..9452e3e10c9 100644
--- a/spec/frontend/boards/components/board_app_spec.js
+++ b/spec/frontend/boards/components/board_app_spec.js
@@ -47,7 +47,7 @@ describe('BoardApp', () => {
beforeEach(async () => {
cacheUpdates.setError = jest.fn();
- createComponent({ isApolloBoard: true });
+ createComponent();
await nextTick();
});
@@ -60,7 +60,7 @@ describe('BoardApp', () => {
});
it('should not have is-compact class when no card is selected', async () => {
- createComponent({ isApolloBoard: true, issue: {} });
+ createComponent({ issue: {} });
await nextTick();
expect(wrapper.classes()).not.toContain('is-compact');
@@ -69,14 +69,14 @@ describe('BoardApp', () => {
it('refetches lists when updateBoard event is received', async () => {
jest.spyOn(eventHub, '$on').mockImplementation(() => {});
- createComponent({ isApolloBoard: true });
+ createComponent();
await waitForPromises();
expect(eventHub.$on).toHaveBeenCalledWith('updateBoard', wrapper.vm.refetchLists);
});
it('sets error on fetch lists failure', async () => {
- createComponent({ isApolloBoard: true, handler: boardListQueryHandlerFailure });
+ createComponent({ handler: boardListQueryHandlerFailure });
await waitForPromises();
diff --git a/spec/frontend/boards/components/board_card_move_to_position_spec.js b/spec/frontend/boards/components/board_card_move_to_position_spec.js
index d3c43a4e054..27cb575c067 100644
--- a/spec/frontend/boards/components/board_card_move_to_position_spec.js
+++ b/spec/frontend/boards/components/board_card_move_to_position_spec.js
@@ -1,7 +1,4 @@
import { shallowMount } from '@vue/test-utils';
-import Vue from 'vue';
-// eslint-disable-next-line no-restricted-imports
-import Vuex from 'vuex';
import { GlDisclosureDropdown, GlDisclosureDropdownItem } from '@gitlab/ui';
import {
BOARD_CARD_MOVE_TO_POSITIONS_START_OPTION,
@@ -11,8 +8,6 @@ import BoardCardMoveToPosition from '~/boards/components/board_card_move_to_posi
import { mockList, mockIssue2 } from 'jest/boards/mock_data';
import { mockTracking, unmockTracking } from 'helpers/tracking_helper';
-Vue.use(Vuex);
-
const dropdownOptions = [
{
text: BOARD_CARD_MOVE_TO_POSITIONS_START_OPTION,
@@ -27,15 +22,10 @@ const dropdownOptions = [
describe('Board Card Move to position', () => {
let wrapper;
let trackingSpy;
- let store;
const itemIndex = 1;
- const createComponent = (propsData, isApolloBoard = false) => {
+ const createComponent = (propsData) => {
wrapper = shallowMount(BoardCardMoveToPosition, {
- store,
- provide: {
- isApolloBoard,
- },
propsData: {
item: mockIssue2,
list: mockList,
diff --git a/spec/frontend/boards/components/board_card_spec.js b/spec/frontend/boards/components/board_card_spec.js
index dae0db27104..1781c58c11f 100644
--- a/spec/frontend/boards/components/board_card_spec.js
+++ b/spec/frontend/boards/components/board_card_spec.js
@@ -76,7 +76,6 @@ describe('Board card', () => {
isGroupBoard: true,
disabled: false,
allowSubEpics: false,
- isApolloBoard: true,
...provide,
},
});
diff --git a/spec/frontend/boards/components/board_content_spec.js b/spec/frontend/boards/components/board_content_spec.js
index 706f84ad319..3b02a33bf7d 100644
--- a/spec/frontend/boards/components/board_content_spec.js
+++ b/spec/frontend/boards/components/board_content_spec.js
@@ -147,7 +147,7 @@ describe('BoardContent', () => {
describe('when error is passed', () => {
beforeEach(async () => {
- createComponent({ props: { apolloError: 'Error' } });
+ createComponent({ props: { error: 'Error' } });
await waitForPromises();
});
diff --git a/spec/frontend/boards/components/board_top_bar_spec.js b/spec/frontend/boards/components/board_top_bar_spec.js
index 03526600114..477c504ecba 100644
--- a/spec/frontend/boards/components/board_top_bar_spec.js
+++ b/spec/frontend/boards/components/board_top_bar_spec.js
@@ -56,7 +56,6 @@ describe('BoardTopBar', () => {
isIssueBoard: true,
isEpicBoard: false,
isGroupBoard: true,
- // isApolloBoard: false,
...provide,
},
stubs: { IssueBoardFilteredSearch },
diff --git a/spec/frontend/boards/components/boards_selector_spec.js b/spec/frontend/boards/components/boards_selector_spec.js
index 8766b1c25f2..db5243732c6 100644
--- a/spec/frontend/boards/components/boards_selector_spec.js
+++ b/spec/frontend/boards/components/boards_selector_spec.js
@@ -94,7 +94,6 @@ describe('BoardsSelector', () => {
boardType: isGroupBoard ? 'group' : 'project',
isGroupBoard,
isProjectBoard,
- // isApolloBoard: false,
...provide,
},
});
diff --git a/spec/frontend/boards/components/config_toggle_spec.js b/spec/frontend/boards/components/config_toggle_spec.js
index 3d505038331..915dafc8a89 100644
--- a/spec/frontend/boards/components/config_toggle_spec.js
+++ b/spec/frontend/boards/components/config_toggle_spec.js
@@ -1,22 +1,15 @@
-// eslint-disable-next-line no-restricted-imports
-import Vuex from 'vuex';
-import Vue from 'vue';
import { shallowMount } from '@vue/test-utils';
import { GlButton } from '@gitlab/ui';
import { __ } from '~/locale';
import ConfigToggle from '~/boards/components/config_toggle.vue';
import eventHub from '~/boards/eventhub';
-import store from '~/boards/stores';
import { mockTracking } from 'helpers/tracking_helper';
describe('ConfigToggle', () => {
let wrapper;
- Vue.use(Vuex);
-
const createComponent = (provide = {}, props = {}) =>
shallowMount(ConfigToggle, {
- store,
provide: {
canAdminList: true,
...provide,
diff --git a/spec/frontend/boards/mock_data.js b/spec/frontend/boards/mock_data.js
index 3a5e108ac07..c2587b17409 100644
--- a/spec/frontend/boards/mock_data.js
+++ b/spec/frontend/boards/mock_data.js
@@ -1,6 +1,5 @@
import { GlFilteredSearchToken } from '@gitlab/ui';
import { keyBy } from 'lodash';
-import { ListType } from '~/boards/constants';
import {
OPERATORS_IS,
OPERATORS_IS_NOT,
@@ -70,19 +69,6 @@ export const mockGroupBoardResponse = {
},
};
-export const mockBoardConfig = {
- milestoneId: 'gid://gitlab/Milestone/114',
- milestoneTitle: '14.9',
- iterationId: 'gid://gitlab/Iteration/124',
- iterationTitle: 'Iteration 9',
- iterationCadenceId: 'gid://gitlab/Iteration::Cadence/134',
- assigneeId: 'gid://gitlab/User/1',
- assigneeUsername: 'admin',
- labels: [{ id: 'gid://gitlab/Label/32', title: 'Deliverable' }],
- labelIds: ['gid://gitlab/Label/32'],
- weight: 2,
-};
-
export const boardObj = {
id: 1,
name: 'test',
@@ -238,17 +224,6 @@ export const mockMilestone = {
due_date: '2019-12-31',
};
-export const mockMilestones = [
- {
- id: 'gid://gitlab/Milestone/1',
- title: 'Milestone 1',
- },
- {
- id: 'gid://gitlab/Milestone/2',
- title: 'Milestone 2',
- },
-];
-
export const assignees = [
{
id: 'gid://gitlab/User/2',
@@ -405,14 +380,6 @@ export const mockEpic = {
},
};
-export const mockActiveIssue = {
- ...mockIssue,
- id: 'gid://gitlab/Issue/436',
- iid: '27',
- subscribed: false,
- emailsDisabled: false,
-};
-
export const mockIssue2 = {
...rawIssue,
id: 'gid://gitlab/Issue/437',
@@ -588,11 +555,6 @@ export const mockLists = [mockList, mockLabelList];
export const mockListsById = keyBy(mockLists, 'id');
-export const mockIssuesByListId = {
- 'gid://gitlab/List/1': [mockIssue.id, mockIssue3.id, mockIssue4.id],
- 'gid://gitlab/List/2': mockIssues.map(({ id }) => id),
-};
-
export const participants = [
{
id: '1',
@@ -633,21 +595,8 @@ export const mockGroupProject2 = {
archived: false,
};
-export const mockArchivedGroupProject = {
- id: 2,
- name: 'Archived Project',
- nameWithNamespace: 'Awesome Group / Archived Project',
- fullPath: 'awesome-group/archived-project',
- archived: true,
-};
-
export const mockGroupProjects = [mockGroupProject1, mockGroupProject2];
-export const mockActiveGroupProjects = [
- { ...mockGroupProject1, archived: false },
- { ...mockGroupProject2, archived: false },
-];
-
export const mockIssueGroupPath = 'gitlab-org';
export const mockIssueProjectPath = `${mockIssueGroupPath}/gitlab-test`;
@@ -778,33 +727,6 @@ export const mockMoveIssueParams = {
moveAfterId: undefined,
};
-export const mockMoveState = {
- boardLists: {
- 'gid://gitlab/List/1': {
- listType: ListType.backlog,
- },
- 'gid://gitlab/List/2': {
- listType: ListType.closed,
- },
- },
- boardItems: {
- [mockMoveIssueParams.itemId]: { foo: 'bar' },
- },
- boardItemsByListId: {
- [mockMoveIssueParams.fromListId]: [mockMoveIssueParams.itemId],
- [mockMoveIssueParams.toListId]: [],
- },
-};
-
-export const mockMoveData = {
- reordering: false,
- shouldClone: false,
- itemNotInToList: true,
- originalIndex: 0,
- originalIssue: { foo: 'bar' },
- ...mockMoveIssueParams,
-};
-
export const mockEmojiToken = {
type: TOKEN_TYPE_MY_REACTION,
icon: 'thumb-up',
diff --git a/spec/frontend/boards/project_select_spec.js b/spec/frontend/boards/project_select_spec.js
index f1daccfadda..6d2db10d7b8 100644
--- a/spec/frontend/boards/project_select_spec.js
+++ b/spec/frontend/boards/project_select_spec.js
@@ -69,6 +69,12 @@ describe('ProjectSelect component', () => {
expect(findGlCollapsibleListBox().exists()).toBe(true);
expect(findGlCollapsibleListBox().text()).toContain('Select a project');
});
+
+ it('passes down non archived projects to dropdown', async () => {
+ findGlCollapsibleListBox().vm.$emit('shown');
+ await nextTick();
+ expect(findGlCollapsibleListBox().props('items').length).toEqual(mockProjects.length - 1);
+ });
});
describe('when dropdown menu is open', () => {
diff --git a/spec/frontend/boards/stores/actions_spec.js b/spec/frontend/boards/stores/actions_spec.js
deleted file mode 100644
index 616bb083211..00000000000
--- a/spec/frontend/boards/stores/actions_spec.js
+++ /dev/null
@@ -1,2098 +0,0 @@
-import { cloneDeep } from 'lodash';
-import Vue from 'vue';
-// eslint-disable-next-line no-restricted-imports
-import Vuex from 'vuex';
-import * as Sentry from '~/sentry/sentry_browser_wrapper';
-import { inactiveId, ISSUABLE, ListType, DraggableItemTypes } from 'ee_else_ce/boards/constants';
-import issueMoveListMutation from 'ee_else_ce/boards/graphql/issue_move_list.mutation.graphql';
-import testAction from 'helpers/vuex_action_helper';
-import {
- formatListIssues,
- formatBoardLists,
- formatIssueInput,
- formatIssue,
- getMoveData,
- updateListPosition,
-} from 'ee_else_ce/boards/boards_util';
-import { defaultClient as gqlClient } from '~/graphql_shared/issuable_client';
-import destroyBoardListMutation from '~/boards/graphql/board_list_destroy.mutation.graphql';
-import issueCreateMutation from '~/boards/graphql/issue_create.mutation.graphql';
-import actions from '~/boards/stores/actions';
-import * as types from '~/boards/stores/mutation_types';
-import mutations from '~/boards/stores/mutations';
-import { getIdFromGraphQLId } from '~/graphql_shared/utils';
-import { TYPE_ISSUE, WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';
-
-import projectBoardMilestones from '~/boards/graphql/project_board_milestones.query.graphql';
-import groupBoardMilestones from '~/boards/graphql/group_board_milestones.query.graphql';
-import {
- mockBoard,
- mockBoardConfig,
- mockLists,
- mockListsById,
- mockIssue,
- mockIssue2,
- rawIssue,
- mockIssues,
- labels,
- mockActiveIssue,
- mockGroupProjects,
- mockMoveIssueParams,
- mockMoveState,
- mockMoveData,
- mockList,
- mockMilestones,
-} from '../mock_data';
-
-jest.mock('~/alert');
-
-// We need this helper to make sure projectPath is including
-// subgroups when the movIssue action is called.
-const getProjectPath = (path) => path.split('#')[0];
-
-Vue.use(Vuex);
-
-beforeEach(() => {
- window.gon = { features: {} };
-});
-
-describe('fetchBoard', () => {
- const payload = {
- fullPath: 'gitlab-org',
- fullBoardId: 'gid://gitlab/Board/1',
- boardType: 'project',
- };
-
- const queryResponse = {
- data: {
- workspace: {
- board: mockBoard,
- },
- },
- };
-
- it('should commit mutation REQUEST_CURRENT_BOARD and dispatch setBoard on success', async () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- await testAction({
- action: actions.fetchBoard,
- payload,
- expectedMutations: [
- {
- type: types.REQUEST_CURRENT_BOARD,
- },
- ],
- expectedActions: [{ type: 'setBoard', payload: mockBoard }],
- });
- });
-
- it('should commit mutation RECEIVE_BOARD_FAILURE on failure', async () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(Promise.reject());
-
- await testAction({
- action: actions.fetchBoard,
- payload,
- expectedMutations: [
- {
- type: types.REQUEST_CURRENT_BOARD,
- },
- {
- type: types.RECEIVE_BOARD_FAILURE,
- },
- ],
- });
- });
-});
-
-describe('setInitialBoardData', () => {
- it('sets data object', () => {
- const mockData = {
- foo: 'bar',
- bar: 'baz',
- };
-
- return testAction({
- action: actions.setInitialBoardData,
- payload: mockData,
- expectedMutations: [{ type: types.SET_INITIAL_BOARD_DATA, payload: mockData }],
- });
- });
-});
-
-describe('setBoardConfig', () => {
- it('sets board config object from board object', () => {
- return testAction({
- action: actions.setBoardConfig,
- payload: mockBoard,
- expectedMutations: [{ type: types.SET_BOARD_CONFIG, payload: mockBoardConfig }],
- });
- });
-});
-
-describe('setBoard', () => {
- it('dispatches setBoardConfig', () => {
- return testAction({
- action: actions.setBoard,
- payload: mockBoard,
- expectedMutations: [{ type: types.RECEIVE_BOARD_SUCCESS, payload: mockBoard }],
- expectedActions: [
- { type: 'setBoardConfig', payload: mockBoard },
- { type: 'performSearch', payload: { resetLists: true } },
- ],
- });
- });
-});
-
-describe('setFilters', () => {
- it.each([
- [
- 'with correct filters as payload',
- {
- filters: { labelName: 'label', foobar: 'not-a-filter', search: 'quick brown fox' },
- filterVariables: { labelName: 'label', search: 'quick brown fox', not: {} },
- },
- ],
- [
- "and use 'assigneeWildcardId' as filter variable for 'assigneeId' param",
- {
- filters: { assigneeId: 'None' },
- filterVariables: { assigneeWildcardId: 'NONE', not: {} },
- },
- ],
- ])('should commit mutation SET_FILTERS %s', (_, { filters, filterVariables }) => {
- const state = {
- filters: {},
- issuableType: TYPE_ISSUE,
- };
-
- return testAction(
- actions.setFilters,
- filters,
- state,
- [{ type: types.SET_FILTERS, payload: filterVariables }],
- [],
- );
- });
-});
-
-describe('performSearch', () => {
- it('should dispatch setFilters, fetchLists and resetIssues action', () => {
- return testAction(
- actions.performSearch,
- {},
- {},
- [],
- [
- { type: 'setFilters', payload: {} },
- { type: 'fetchLists', payload: { resetLists: false } },
- { type: 'resetIssues' },
- ],
- );
- });
-});
-
-describe('setActiveId', () => {
- it('should commit mutation SET_ACTIVE_ID', () => {
- const state = {
- activeId: inactiveId,
- };
-
- return testAction(
- actions.setActiveId,
- { id: 1, sidebarType: 'something' },
- state,
- [{ type: types.SET_ACTIVE_ID, payload: { id: 1, sidebarType: 'something' } }],
- [],
- );
- });
-});
-
-describe('fetchLists', () => {
- let state = {
- fullPath: 'gitlab-org',
- fullBoardId: 'gid://gitlab/Board/1',
- filterParams: {},
- boardType: 'group',
- issuableType: 'issue',
- };
-
- let queryResponse = {
- data: {
- group: {
- board: {
- hideBacklogList: true,
- lists: {
- nodes: [mockLists[1]],
- },
- },
- },
- },
- };
-
- const formattedLists = formatBoardLists(queryResponse.data.group.board.lists);
-
- it('should commit mutations RECEIVE_BOARD_LISTS_SUCCESS on success', () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- return testAction(
- actions.fetchLists,
- {},
- state,
- [
- {
- type: types.RECEIVE_BOARD_LISTS_SUCCESS,
- payload: formattedLists,
- },
- ],
- [],
- );
- });
-
- it('should commit mutations RECEIVE_BOARD_LISTS_FAILURE on failure', () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(Promise.reject());
-
- return testAction(
- actions.fetchLists,
- {},
- state,
- [
- {
- type: types.RECEIVE_BOARD_LISTS_FAILURE,
- },
- ],
- [],
- );
- });
-
- it('dispatch createList action when backlog list does not exist and is not hidden', () => {
- queryResponse = {
- data: {
- group: {
- board: {
- hideBacklogList: false,
- lists: {
- nodes: [mockLists[1]],
- },
- },
- },
- },
- };
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- return testAction(
- actions.fetchLists,
- {},
- state,
- [
- {
- type: types.RECEIVE_BOARD_LISTS_SUCCESS,
- payload: formattedLists,
- },
- ],
- [{ type: 'createList', payload: { backlog: true } }],
- );
- });
-
- it.each`
- issuableType | boardType | fullBoardId | isGroup | isProject
- ${TYPE_ISSUE} | ${WORKSPACE_GROUP} | ${'gid://gitlab/Board/1'} | ${true} | ${false}
- ${TYPE_ISSUE} | ${WORKSPACE_PROJECT} | ${'gid://gitlab/Board/1'} | ${false} | ${true}
- `(
- 'calls $issuableType query with correct variables',
- async ({ issuableType, boardType, fullBoardId, isGroup, isProject }) => {
- const commit = jest.fn();
- const dispatch = jest.fn();
-
- state = {
- fullPath: 'gitlab-org',
- fullBoardId,
- filterParams: {},
- boardType,
- issuableType,
- };
-
- const variables = {
- fullPath: 'gitlab-org',
- boardId: fullBoardId,
- filters: {},
- isGroup,
- isProject,
- };
-
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- await actions.fetchLists({ commit, state, dispatch });
-
- expect(gqlClient.query).toHaveBeenCalledWith(expect.objectContaining({ variables }));
- },
- );
-});
-
-describe('fetchMilestones', () => {
- const queryResponse = {
- data: {
- workspace: {
- milestones: {
- nodes: mockMilestones,
- },
- },
- },
- };
-
- const queryErrors = {
- data: {
- workspace: {
- errors: ['You cannot view these milestones'],
- milestones: {},
- },
- },
- };
-
- function createStore({
- state = {
- boardType: 'project',
- fullPath: 'gitlab-org/gitlab',
- milestones: [],
- milestonesLoading: false,
- },
- } = {}) {
- return new Vuex.Store({
- state,
- mutations,
- });
- }
-
- it('throws error if state.boardType is not group or project', () => {
- const store = createStore({
- state: {
- boardType: 'invalid',
- },
- });
-
- expect(() => actions.fetchMilestones(store)).toThrow(new Error('Unknown board type'));
- });
-
- it.each([
- [
- 'project',
- {
- query: projectBoardMilestones,
- variables: { fullPath: 'gitlab-org/gitlab' },
- },
- ],
- [
- 'group',
- {
- query: groupBoardMilestones,
- variables: { fullPath: 'gitlab-org/gitlab' },
- },
- ],
- ])(
- 'when boardType is %s it calls fetchMilestones with the correct query and variables',
- (boardType, variables) => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- const store = createStore();
-
- store.state.boardType = boardType;
-
- actions.fetchMilestones(store);
-
- expect(gqlClient.query).toHaveBeenCalledWith(variables);
- },
- );
-
- it('sets milestonesLoading to true', () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- const store = createStore();
-
- actions.fetchMilestones(store);
-
- expect(store.state.milestonesLoading).toBe(true);
- });
-
- describe('success', () => {
- it('sets state.milestones from query result', async () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- const store = createStore();
-
- await actions.fetchMilestones(store);
-
- expect(store.state.milestonesLoading).toBe(false);
- expect(store.state.milestones).toBe(mockMilestones);
- });
- });
-
- describe('failure', () => {
- it('sets state.milestones from query result', async () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryErrors);
-
- const store = createStore();
-
- await expect(actions.fetchMilestones(store)).rejects.toThrow();
-
- expect(store.state.milestonesLoading).toBe(false);
- expect(store.state.error).toBe('Failed to load milestones.');
- });
- });
-});
-
-describe('createList', () => {
- it('should dispatch createIssueList action', () => {
- return testAction({
- action: actions.createList,
- payload: { backlog: true },
- expectedActions: [{ type: 'createIssueList', payload: { backlog: true } }],
- });
- });
-});
-
-describe('createIssueList', () => {
- let commit;
- let dispatch;
- let getters;
- let state;
-
- beforeEach(() => {
- state = {
- fullPath: 'gitlab-org',
- fullBoardId: 'gid://gitlab/Board/1',
- boardType: 'group',
- disabled: false,
- boardLists: [{ type: 'closed' }],
- };
- commit = jest.fn();
- dispatch = jest.fn();
- getters = {
- getListByLabelId: jest.fn(),
- };
- });
-
- it('should dispatch addList action when creating backlog list', async () => {
- const backlogList = {
- id: 'gid://gitlab/List/1',
- listType: 'backlog',
- title: 'Open',
- position: 0,
- };
-
- jest.spyOn(gqlClient, 'mutate').mockReturnValue(
- Promise.resolve({
- data: {
- boardListCreate: {
- list: backlogList,
- errors: [],
- },
- },
- }),
- );
-
- await actions.createIssueList({ getters, state, commit, dispatch }, { backlog: true });
-
- expect(dispatch).toHaveBeenCalledWith('addList', backlogList);
- });
-
- it('dispatches highlightList after addList has succeeded', async () => {
- const list = {
- id: 'gid://gitlab/List/1',
- listType: 'label',
- title: 'Open',
- labelId: '4',
- };
-
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- boardListCreate: {
- list,
- errors: [],
- },
- },
- });
-
- await actions.createIssueList({ getters, state, commit, dispatch }, { labelId: '4' });
-
- expect(dispatch).toHaveBeenCalledWith('addList', list);
- expect(dispatch).toHaveBeenCalledWith('highlightList', list.id);
- });
-
- it('should commit CREATE_LIST_FAILURE mutation when API returns an error', async () => {
- jest.spyOn(gqlClient, 'mutate').mockReturnValue(
- Promise.resolve({
- data: {
- boardListCreate: {
- list: {},
- errors: ['foo'],
- },
- },
- }),
- );
-
- await actions.createIssueList({ getters, state, commit, dispatch }, { backlog: true });
-
- expect(commit).toHaveBeenCalledWith(types.CREATE_LIST_FAILURE, 'foo');
- });
-
- it('highlights list and does not re-query if it already exists', async () => {
- const existingList = {
- id: 'gid://gitlab/List/1',
- listType: 'label',
- title: 'Some label',
- position: 1,
- };
-
- getters = {
- getListByLabelId: jest.fn().mockReturnValue(existingList),
- };
-
- await actions.createIssueList({ getters, state, commit, dispatch }, { backlog: true });
-
- expect(dispatch).toHaveBeenCalledWith('highlightList', existingList.id);
- expect(dispatch).toHaveBeenCalledTimes(1);
- expect(commit).not.toHaveBeenCalled();
- });
-});
-
-describe('addList', () => {
- const getters = {
- getListByTitle: jest.fn().mockReturnValue(mockList),
- };
-
- it('should commit RECEIVE_ADD_LIST_SUCCESS mutation and dispatch fetchItemsForList action', () => {
- return testAction({
- action: actions.addList,
- payload: mockLists[1],
- state: { ...getters },
- expectedMutations: [
- { type: types.RECEIVE_ADD_LIST_SUCCESS, payload: updateListPosition(mockLists[1]) },
- ],
- expectedActions: [{ type: 'fetchItemsForList', payload: { listId: mockList.id } }],
- });
- });
-});
-
-describe('fetchLabels', () => {
- it('should commit mutation RECEIVE_LABELS_SUCCESS on success', async () => {
- const queryResponse = {
- data: {
- group: {
- labels: {
- nodes: labels,
- },
- },
- },
- };
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- const commit = jest.fn();
- const state = { boardType: 'group' };
-
- await actions.fetchLabels({ state, commit });
-
- expect(commit).toHaveBeenCalledWith(types.RECEIVE_LABELS_SUCCESS, labels);
- });
-});
-
-describe('moveList', () => {
- const backlogListId = 'gid://1';
- const closedListId = 'gid://5';
-
- const boardLists1 = {
- 'gid://3': { listType: '', position: 0 },
- 'gid://4': { listType: '', position: 1 },
- 'gid://5': { listType: '', position: 2 },
- };
-
- const boardLists2 = {
- [backlogListId]: { listType: ListType.backlog, position: -Infinity },
- [closedListId]: { listType: ListType.closed, position: Infinity },
- ...cloneDeep(boardLists1),
- };
-
- const movableListsOrder = ['gid://3', 'gid://4', 'gid://5'];
- const allListsOrder = [backlogListId, ...movableListsOrder, closedListId];
-
- it(`should not handle the event if the dragged item is not a "${DraggableItemTypes.list}"`, () => {
- return testAction({
- action: actions.moveList,
- payload: {
- item: { dataset: { listId: '', draggableItemType: DraggableItemTypes.card } },
- to: {
- children: [],
- },
- },
- state: {},
- expectedMutations: [],
- expectedActions: [],
- });
- });
-
- describe.each`
- draggableFrom | draggableTo | boardLists | boardListsOrder | expectedMovableListsOrder
- ${0} | ${2} | ${boardLists1} | ${movableListsOrder} | ${['gid://4', 'gid://5', 'gid://3']}
- ${2} | ${0} | ${boardLists1} | ${movableListsOrder} | ${['gid://5', 'gid://3', 'gid://4']}
- ${0} | ${1} | ${boardLists1} | ${movableListsOrder} | ${['gid://4', 'gid://3', 'gid://5']}
- ${1} | ${2} | ${boardLists1} | ${movableListsOrder} | ${['gid://3', 'gid://5', 'gid://4']}
- ${2} | ${1} | ${boardLists1} | ${movableListsOrder} | ${['gid://3', 'gid://5', 'gid://4']}
- ${1} | ${3} | ${boardLists2} | ${allListsOrder} | ${['gid://4', 'gid://5', 'gid://3']}
- ${3} | ${1} | ${boardLists2} | ${allListsOrder} | ${['gid://5', 'gid://3', 'gid://4']}
- ${1} | ${2} | ${boardLists2} | ${allListsOrder} | ${['gid://4', 'gid://3', 'gid://5']}
- ${2} | ${3} | ${boardLists2} | ${allListsOrder} | ${['gid://3', 'gid://5', 'gid://4']}
- ${3} | ${2} | ${boardLists2} | ${allListsOrder} | ${['gid://3', 'gid://5', 'gid://4']}
- `(
- 'when moving a list from position $draggableFrom to $draggableTo with lists $boardListsOrder',
- ({ draggableFrom, draggableTo, boardLists, boardListsOrder, expectedMovableListsOrder }) => {
- const movedListId = boardListsOrder[draggableFrom];
- const displacedListId = boardListsOrder[draggableTo];
- const buildDraggablePayload = () => {
- return {
- item: {
- dataset: {
- listId: boardListsOrder[draggableFrom],
- draggableItemType: DraggableItemTypes.list,
- },
- },
- newIndex: draggableTo,
- to: {
- children: boardListsOrder.map((listId) => ({ dataset: { listId } })),
- },
- };
- };
-
- it('should commit MOVE_LIST mutations and dispatch updateList action with correct payloads', () => {
- return testAction({
- action: actions.moveList,
- payload: buildDraggablePayload(),
- state: { boardLists },
- expectedMutations: [
- {
- type: types.MOVE_LISTS,
- payload: expectedMovableListsOrder.map((listId, i) => ({ listId, position: i })),
- },
- ],
- expectedActions: [
- {
- type: 'updateList',
- payload: {
- listId: movedListId,
- position: movableListsOrder.findIndex((i) => i === displacedListId),
- },
- },
- ],
- });
- });
- },
- );
-
- describe('when moving from and to the same position', () => {
- it('should not commit MOVE_LIST and should not dispatch updateList', () => {
- const listId = 'gid://1000';
-
- return testAction({
- action: actions.moveList,
- payload: {
- item: { dataset: { listId, draggbaleItemType: DraggableItemTypes.list } },
- newIndex: 0,
- to: {
- children: [{ dataset: { listId } }],
- },
- },
- state: { boardLists: { [listId]: { position: 0 } } },
- expectedMutations: [],
- expectedActions: [],
- });
- });
- });
-});
-
-describe('updateList', () => {
- const listId = 'gid://gitlab/List/1';
- const createState = (boardItemsByListId = {}) => ({
- fullPath: 'gitlab-org',
- fullBoardId: 'gid://gitlab/Board/1',
- boardType: 'group',
- disabled: false,
- boardLists: [{ type: 'closed' }],
- issuableType: TYPE_ISSUE,
- boardItemsByListId,
- });
-
- describe('when state doesnt have list items', () => {
- it('calls fetchItemsByList', async () => {
- const dispatch = jest.fn();
-
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- updateBoardList: {
- errors: [],
- list: {
- id: listId,
- },
- },
- },
- });
-
- await actions.updateList({ commit: () => {}, state: createState(), dispatch }, { listId });
-
- expect(dispatch.mock.calls).toEqual([['fetchItemsForList', { listId }]]);
- });
- });
-
- describe('when state has list items', () => {
- it('doesnt call fetchItemsByList', async () => {
- const commit = jest.fn();
- const dispatch = jest.fn();
-
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- updateBoardList: {
- errors: [],
- list: {
- id: listId,
- },
- },
- },
- });
-
- await actions.updateList(
- { commit, state: createState({ [listId]: [] }), dispatch },
- { listId },
- );
-
- expect(dispatch.mock.calls).toEqual([]);
- });
- });
-
- it('should dispatch handleUpdateListFailure when API returns an error', () => {
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- updateBoardList: {
- list: {},
- errors: [{ foo: 'bar' }],
- },
- },
- });
-
- return testAction(
- actions.updateList,
- { listId: 'gid://gitlab/List/1', position: 1 },
- createState(),
- [],
- [{ type: 'handleUpdateListFailure' }],
- );
- });
-});
-
-describe('handleUpdateListFailure', () => {
- it('should dispatch fetchLists action and commit SET_ERROR mutation', async () => {
- await testAction({
- action: actions.handleUpdateListFailure,
- expectedMutations: [
- {
- type: types.SET_ERROR,
- payload: 'An error occurred while updating the board list. Please try again.',
- },
- ],
- expectedActions: [{ type: 'fetchLists' }],
- });
- });
-});
-
-describe('toggleListCollapsed', () => {
- it('should commit TOGGLE_LIST_COLLAPSED mutation', async () => {
- const payload = { listId: 'gid://gitlab/List/1', collapsed: true };
- await testAction({
- action: actions.toggleListCollapsed,
- payload,
- expectedMutations: [
- {
- type: types.TOGGLE_LIST_COLLAPSED,
- payload,
- },
- ],
- });
- });
-});
-
-describe('removeList', () => {
- let state;
- let getters;
- const list = mockLists[1];
- const listId = list.id;
- const mutationVariables = {
- mutation: destroyBoardListMutation,
- variables: {
- listId,
- },
- };
-
- beforeEach(() => {
- state = {
- boardLists: mockListsById,
- issuableType: TYPE_ISSUE,
- };
- getters = {
- getListByTitle: jest.fn().mockReturnValue(mockList),
- };
- });
-
- afterEach(() => {
- state = null;
- });
-
- it('optimistically deletes the list', () => {
- const commit = jest.fn();
-
- actions.removeList({ commit, state, getters, dispatch: () => {} }, listId);
-
- expect(commit.mock.calls).toEqual([[types.REMOVE_LIST, listId]]);
- });
-
- it('keeps the updated list if remove succeeds', async () => {
- const commit = jest.fn();
- const dispatch = jest.fn();
-
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- destroyBoardList: {
- errors: [],
- },
- },
- });
-
- await actions.removeList({ commit, state, getters, dispatch }, listId);
-
- expect(gqlClient.mutate).toHaveBeenCalledWith(mutationVariables);
- expect(commit.mock.calls).toEqual([[types.REMOVE_LIST, listId]]);
- expect(dispatch.mock.calls).toEqual([['fetchItemsForList', { listId: mockList.id }]]);
- });
-
- it('restores the list if update fails', async () => {
- const commit = jest.fn();
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue(Promise.reject());
-
- await actions.removeList({ commit, state, getters, dispatch: () => {} }, listId);
-
- expect(gqlClient.mutate).toHaveBeenCalledWith(mutationVariables);
- expect(commit.mock.calls).toEqual([
- [types.REMOVE_LIST, listId],
- [types.REMOVE_LIST_FAILURE, mockListsById],
- ]);
- });
-
- it('restores the list if update response has errors', async () => {
- const commit = jest.fn();
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- destroyBoardList: {
- errors: ['update failed, ID invalid'],
- },
- },
- });
-
- await actions.removeList({ commit, state, getters, dispatch: () => {} }, listId);
-
- expect(gqlClient.mutate).toHaveBeenCalledWith(mutationVariables);
- expect(commit.mock.calls).toEqual([
- [types.REMOVE_LIST, listId],
- [types.REMOVE_LIST_FAILURE, mockListsById],
- ]);
- });
-});
-
-describe('fetchItemsForList', () => {
- const listId = mockLists[0].id;
-
- const state = {
- fullPath: 'gitlab-org',
- fullBoardId: 'gid://gitlab/Board/1',
- filterParams: {},
- boardType: 'group',
- };
-
- const mockIssuesNodes = mockIssues.map((issue) => ({ node: issue }));
-
- const pageInfo = {
- endCursor: '',
- hasNextPage: false,
- };
-
- const queryResponse = {
- data: {
- group: {
- board: {
- lists: {
- nodes: [
- {
- id: listId,
- issues: {
- edges: mockIssuesNodes,
- pageInfo,
- },
- },
- ],
- },
- },
- },
- },
- };
-
- const formattedIssues = formatListIssues(queryResponse.data.group.board.lists);
-
- const listPageInfo = {
- [listId]: pageInfo,
- };
-
- describe('when list id is undefined', () => {
- it('does not call the query', async () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- await actions.fetchItemsForList(
- { state, getters: () => {}, commit: () => {} },
- { listId: undefined },
- );
-
- expect(gqlClient.query).toHaveBeenCalledTimes(0);
- });
- });
-
- it('should commit mutations REQUEST_ITEMS_FOR_LIST and RECEIVE_ITEMS_FOR_LIST_SUCCESS on success', () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- return testAction(
- actions.fetchItemsForList,
- { listId },
- state,
- [
- {
- type: types.REQUEST_ITEMS_FOR_LIST,
- payload: { listId, fetchNext: false },
- },
- {
- type: types.RECEIVE_ITEMS_FOR_LIST_SUCCESS,
- payload: { listItems: formattedIssues, listPageInfo, listId },
- },
- ],
- [],
- );
- });
-
- it('should commit mutations REQUEST_ITEMS_FOR_LIST and RECEIVE_ITEMS_FOR_LIST_FAILURE on failure', () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(Promise.reject());
-
- return testAction(
- actions.fetchItemsForList,
- { listId },
- state,
- [
- {
- type: types.REQUEST_ITEMS_FOR_LIST,
- payload: { listId, fetchNext: false },
- },
- { type: types.RECEIVE_ITEMS_FOR_LIST_FAILURE, payload: listId },
- ],
- [],
- );
- });
-});
-
-describe('resetIssues', () => {
- it('commits RESET_ISSUES mutation', () => {
- return testAction(actions.resetIssues, {}, {}, [{ type: types.RESET_ISSUES }], []);
- });
-});
-
-describe('moveItem', () => {
- it('should dispatch moveIssue action with payload', () => {
- const payload = { mock: 'payload' };
-
- return testAction({
- action: actions.moveItem,
- payload,
- expectedActions: [{ type: 'moveIssue', payload }],
- });
- });
-});
-
-describe('moveIssue', () => {
- it('should dispatch a correct set of actions', () => {
- return testAction({
- action: actions.moveIssue,
- payload: mockMoveIssueParams,
- state: mockMoveState,
- expectedActions: [
- { type: 'moveIssueCard', payload: mockMoveData },
- { type: 'updateMovedIssue', payload: mockMoveData },
- { type: 'updateIssueOrder', payload: { moveData: mockMoveData } },
- ],
- });
- });
-});
-
-describe('moveIssueCard and undoMoveIssueCard', () => {
- describe('card should move without cloning', () => {
- let state;
- let params;
- let moveMutations;
- let undoMutations;
-
- describe('when re-ordering card', () => {
- beforeEach(() => {
- const itemId = 123;
- const fromListId = 'gid://gitlab/List/1';
- const toListId = 'gid://gitlab/List/1';
- const originalIssue = { foo: 'bar' };
- const originalIndex = 0;
- const moveBeforeId = undefined;
- const moveAfterId = undefined;
- const allItemsLoadedInList = true;
- const listPosition = undefined;
-
- state = {
- boardLists: {
- [toListId]: { listType: ListType.backlog },
- [fromListId]: { listType: ListType.backlog },
- },
- boardItems: { [itemId]: originalIssue },
- boardItemsByListId: { [fromListId]: [123] },
- };
- params = {
- itemId,
- fromListId,
- toListId,
- moveBeforeId,
- moveAfterId,
- listPosition,
- allItemsLoadedInList,
- };
- moveMutations = [
- { type: types.REMOVE_BOARD_ITEM_FROM_LIST, payload: { itemId, listId: fromListId } },
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: {
- itemId,
- listId: toListId,
- moveBeforeId,
- moveAfterId,
- listPosition,
- allItemsLoadedInList,
- atIndex: originalIndex,
- },
- },
- ];
- undoMutations = [
- { type: types.UPDATE_BOARD_ITEM, payload: originalIssue },
- { type: types.REMOVE_BOARD_ITEM_FROM_LIST, payload: { itemId, listId: fromListId } },
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: { itemId, listId: fromListId, atIndex: originalIndex },
- },
- ];
- });
-
- it('moveIssueCard commits a correct set of actions', () => {
- return testAction({
- action: actions.moveIssueCard,
- state,
- payload: getMoveData(state, params),
- expectedMutations: moveMutations,
- });
- });
-
- it('undoMoveIssueCard commits a correct set of actions', () => {
- return testAction({
- action: actions.undoMoveIssueCard,
- state,
- payload: getMoveData(state, params),
- expectedMutations: undoMutations,
- });
- });
- });
-
- describe.each([
- [
- 'issue moves out of backlog',
- {
- fromListType: ListType.backlog,
- toListType: ListType.label,
- },
- ],
- [
- 'issue card moves to closed',
- {
- fromListType: ListType.label,
- toListType: ListType.closed,
- },
- ],
- [
- 'issue card moves to non-closed, non-backlog list of the same type',
- {
- fromListType: ListType.label,
- toListType: ListType.label,
- },
- ],
- ])('when %s', (_, { toListType, fromListType }) => {
- beforeEach(() => {
- const itemId = 123;
- const fromListId = 'gid://gitlab/List/1';
- const toListId = 'gid://gitlab/List/2';
- const originalIssue = { foo: 'bar' };
- const originalIndex = 0;
- const moveBeforeId = undefined;
- const moveAfterId = undefined;
-
- state = {
- boardLists: {
- [fromListId]: { listType: fromListType },
- [toListId]: { listType: toListType },
- },
- boardItems: { [itemId]: originalIssue },
- boardItemsByListId: { [fromListId]: [123], [toListId]: [] },
- };
- params = { itemId, fromListId, toListId, moveBeforeId, moveAfterId };
- moveMutations = [
- { type: types.REMOVE_BOARD_ITEM_FROM_LIST, payload: { itemId, listId: fromListId } },
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: { itemId, listId: toListId, moveBeforeId, moveAfterId },
- },
- ];
- undoMutations = [
- { type: types.UPDATE_BOARD_ITEM, payload: originalIssue },
- { type: types.REMOVE_BOARD_ITEM_FROM_LIST, payload: { itemId, listId: toListId } },
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: { itemId, listId: fromListId, atIndex: originalIndex },
- },
- ];
- });
-
- it('moveIssueCard commits a correct set of actions', () => {
- return testAction({
- action: actions.moveIssueCard,
- state,
- payload: getMoveData(state, params),
- expectedMutations: moveMutations,
- });
- });
-
- it('undoMoveIssueCard commits a correct set of actions', () => {
- return testAction({
- action: actions.undoMoveIssueCard,
- state,
- payload: getMoveData(state, params),
- expectedMutations: undoMutations,
- });
- });
- });
- });
-
- describe('card should clone on move', () => {
- let state;
- let params;
- let moveMutations;
- let undoMutations;
-
- describe.each([
- [
- 'issue card moves to non-closed, non-backlog list of a different type',
- {
- fromListType: ListType.label,
- toListType: ListType.assignee,
- },
- ],
- ])('when %s', (_, { toListType, fromListType }) => {
- beforeEach(() => {
- const itemId = 123;
- const fromListId = 'gid://gitlab/List/1';
- const toListId = 'gid://gitlab/List/2';
- const originalIssue = { foo: 'bar' };
- const originalIndex = 0;
- const moveBeforeId = undefined;
- const moveAfterId = undefined;
-
- state = {
- boardLists: {
- [fromListId]: { listType: fromListType },
- [toListId]: { listType: toListType },
- },
- boardItems: { [itemId]: originalIssue },
- boardItemsByListId: { [fromListId]: [123], [toListId]: [] },
- };
- params = { itemId, fromListId, toListId, moveBeforeId, moveAfterId };
- moveMutations = [
- { type: types.REMOVE_BOARD_ITEM_FROM_LIST, payload: { itemId, listId: fromListId } },
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: { itemId, listId: toListId, moveBeforeId, moveAfterId },
- },
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: { itemId, listId: fromListId, atIndex: originalIndex },
- },
- ];
- undoMutations = [
- { type: types.UPDATE_BOARD_ITEM, payload: originalIssue },
- { type: types.REMOVE_BOARD_ITEM_FROM_LIST, payload: { itemId, listId: fromListId } },
- { type: types.REMOVE_BOARD_ITEM_FROM_LIST, payload: { itemId, listId: toListId } },
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: { itemId, listId: fromListId, atIndex: originalIndex },
- },
- ];
- });
-
- it('moveIssueCard commits a correct set of actions', () => {
- return testAction({
- action: actions.moveIssueCard,
- state,
- payload: getMoveData(state, params),
- expectedMutations: moveMutations,
- });
- });
-
- it('undoMoveIssueCard commits a correct set of actions', () => {
- return testAction({
- action: actions.undoMoveIssueCard,
- state,
- payload: getMoveData(state, params),
- expectedMutations: undoMutations,
- });
- });
- });
- });
-});
-
-describe('updateMovedIssueCard', () => {
- const label1 = {
- id: 'label1',
- };
-
- it.each([
- [
- 'issue without a label is moved to a label list',
- {
- state: {
- boardLists: {
- from: {},
- to: {
- listType: ListType.label,
- label: label1,
- },
- },
- boardItems: {
- 1: {
- labels: [],
- },
- },
- },
- moveData: {
- itemId: 1,
- fromListId: 'from',
- toListId: 'to',
- },
- updatedIssue: { labels: [label1] },
- },
- ],
- ])(
- 'should commit UPDATE_BOARD_ITEM with a correctly updated issue data when %s',
- (_, { state, moveData, updatedIssue }) => {
- return testAction({
- action: actions.updateMovedIssue,
- payload: moveData,
- state,
- expectedMutations: [{ type: types.UPDATE_BOARD_ITEM, payload: updatedIssue }],
- });
- },
- );
-});
-
-describe('updateIssueOrder', () => {
- const issues = {
- [mockIssue.id]: mockIssue,
- [mockIssue2.id]: mockIssue2,
- };
-
- const state = {
- boardItems: issues,
- fullBoardId: 'gid://gitlab/Board/1',
- };
-
- const moveData = {
- itemId: mockIssue.id,
- fromListId: 'gid://gitlab/List/1',
- toListId: 'gid://gitlab/List/2',
- };
-
- it('calls mutate with the correct variables', () => {
- const mutationVariables = {
- mutation: issueMoveListMutation,
- variables: {
- projectPath: getProjectPath(mockIssue.referencePath),
- boardId: state.fullBoardId,
- iid: mockIssue.iid,
- fromListId: 1,
- toListId: 2,
- moveBeforeId: undefined,
- moveAfterId: undefined,
- },
- update: expect.anything(),
- };
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- issuableMoveList: {
- issuable: rawIssue,
- errors: [],
- },
- },
- });
-
- actions.updateIssueOrder({ state, commit: () => {}, dispatch: () => {} }, { moveData });
-
- expect(gqlClient.mutate).toHaveBeenCalledWith(mutationVariables);
- });
-
- it('should commit MUTATE_ISSUE_SUCCESS mutation when successful', () => {
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- issuableMoveList: {
- issuable: rawIssue,
- errors: [],
- },
- },
- });
-
- return testAction(
- actions.updateIssueOrder,
- { moveData },
- state,
- [
- {
- type: types.MUTATE_ISSUE_IN_PROGRESS,
- payload: true,
- },
- {
- type: types.MUTATE_ISSUE_SUCCESS,
- payload: { issue: rawIssue },
- },
- {
- type: types.MUTATE_ISSUE_IN_PROGRESS,
- payload: false,
- },
- ],
- [],
- );
- });
-
- it('should commit SET_ERROR and dispatch undoMoveIssueCard', () => {
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- issuableMoveList: {
- issuable: {},
- errors: [{ foo: 'bar' }],
- },
- },
- });
-
- return testAction(
- actions.updateIssueOrder,
- { moveData },
- state,
- [
- {
- type: types.MUTATE_ISSUE_IN_PROGRESS,
- payload: true,
- },
- {
- type: types.MUTATE_ISSUE_IN_PROGRESS,
- payload: false,
- },
- {
- type: types.SET_ERROR,
- payload: 'An error occurred while moving the issue. Please try again.',
- },
- ],
- [{ type: 'undoMoveIssueCard', payload: moveData }],
- );
- });
-});
-
-describe('setAssignees', () => {
- const node = { username: 'name' };
-
- describe('when succeeds', () => {
- it('calls the correct mutation with the correct values', () => {
- return testAction(
- actions.setAssignees,
- { assignees: [node], iid: '1' },
- { commit: () => {} },
- [
- {
- type: 'UPDATE_BOARD_ITEM_BY_ID',
- payload: { prop: 'assignees', itemId: undefined, value: [node] },
- },
- ],
- [],
- );
- });
- });
-});
-
-describe('addListItem', () => {
- it('should commit ADD_BOARD_ITEM_TO_LIST and UPDATE_BOARD_ITEM mutations', () => {
- const payload = {
- list: mockLists[0],
- item: mockIssue,
- position: 0,
- inProgress: true,
- };
-
- return testAction(
- actions.addListItem,
- payload,
- {},
- [
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: {
- listId: mockLists[0].id,
- itemId: mockIssue.id,
- atIndex: 0,
- inProgress: true,
- },
- },
- { type: types.UPDATE_BOARD_ITEM, payload: mockIssue },
- ],
- [],
- );
- });
-
- it('should commit ADD_BOARD_ITEM_TO_LIST and UPDATE_BOARD_ITEM mutations, dispatch setActiveId action when inProgress is false', () => {
- const payload = {
- list: mockLists[0],
- item: mockIssue,
- position: 0,
- };
-
- return testAction(
- actions.addListItem,
- payload,
- {},
- [
- {
- type: types.ADD_BOARD_ITEM_TO_LIST,
- payload: {
- listId: mockLists[0].id,
- itemId: mockIssue.id,
- atIndex: 0,
- inProgress: false,
- },
- },
- { type: types.UPDATE_BOARD_ITEM, payload: mockIssue },
- ],
- [{ type: 'setActiveId', payload: { id: mockIssue.id, sidebarType: ISSUABLE } }],
- );
- });
-});
-
-describe('removeListItem', () => {
- it('should commit REMOVE_BOARD_ITEM_FROM_LIST and REMOVE_BOARD_ITEM mutations', () => {
- const payload = {
- listId: mockLists[0].id,
- itemId: mockIssue.id,
- };
-
- return testAction(actions.removeListItem, payload, {}, [
- { type: types.REMOVE_BOARD_ITEM_FROM_LIST, payload },
- { type: types.REMOVE_BOARD_ITEM, payload: mockIssue.id },
- ]);
- });
-});
-
-describe('addListNewIssue', () => {
- const state = {
- boardType: 'group',
- fullPath: 'gitlab-org/gitlab',
- boardConfig: {
- labelIds: [],
- assigneeId: null,
- milestoneId: -1,
- },
- };
-
- const stateWithBoardConfig = {
- boardConfig: {
- labels: [
- {
- id: 5,
- title: 'Test',
- color: '#ff0000',
- description: 'testing;',
- textColor: 'white',
- },
- ],
- assigneeId: 2,
- milestoneId: 3,
- },
- };
-
- const fakeList = { id: 'gid://gitlab/List/123' };
-
- it('should add board scope to the issue being created', async () => {
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- createIssuable: {
- issuable: mockIssue,
- errors: [],
- },
- },
- });
-
- await actions.addListNewIssue(
- { dispatch: jest.fn(), commit: jest.fn(), state: stateWithBoardConfig },
- { issueInput: mockIssue, list: fakeList },
- );
-
- expect(gqlClient.mutate).toHaveBeenCalledWith({
- mutation: issueCreateMutation,
- variables: {
- input: formatIssueInput(mockIssue, stateWithBoardConfig.boardConfig),
- },
- update: expect.anything(),
- });
- });
-
- it('should add board scope by merging attributes to the issue being created', async () => {
- const issue = {
- ...mockIssue,
- assigneeIds: ['gid://gitlab/User/1'],
- labelIds: ['gid://gitlab/GroupLabel/4'],
- };
-
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- createIssue: {
- issue,
- errors: [],
- },
- },
- });
-
- const payload = formatIssueInput(issue, stateWithBoardConfig.boardConfig);
-
- await actions.addListNewIssue(
- { dispatch: jest.fn(), commit: jest.fn(), state: stateWithBoardConfig },
- { issueInput: issue, list: fakeList },
- );
-
- expect(gqlClient.mutate).toHaveBeenCalledWith({
- mutation: issueCreateMutation,
- variables: {
- input: formatIssueInput(issue, stateWithBoardConfig.boardConfig),
- },
- update: expect.anything(),
- });
- expect(payload.labelIds).toEqual(['gid://gitlab/GroupLabel/4', 'gid://gitlab/GroupLabel/5']);
- expect(payload.assigneeIds).toEqual(['gid://gitlab/User/1', 'gid://gitlab/User/2']);
- });
-
- describe('when issue creation mutation request succeeds', () => {
- it('dispatches a correct set of mutations', () => {
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- createIssuable: {
- issuable: mockIssue,
- errors: [],
- },
- },
- });
-
- return testAction({
- action: actions.addListNewIssue,
- payload: {
- issueInput: mockIssue,
- list: fakeList,
- placeholderId: 'tmp',
- },
- state,
- expectedActions: [
- {
- type: 'addListItem',
- payload: {
- list: fakeList,
- item: formatIssue({ ...mockIssue, id: 'tmp', isLoading: true }),
- position: 0,
- inProgress: true,
- },
- },
- { type: 'removeListItem', payload: { listId: fakeList.id, itemId: 'tmp' } },
- {
- type: 'addListItem',
- payload: {
- list: fakeList,
- item: formatIssue(mockIssue),
- position: 0,
- },
- },
- ],
- });
- });
- });
-
- describe('when issue creation mutation request fails', () => {
- it('dispatches a correct set of mutations', () => {
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- createIssue: {
- issue: mockIssue,
- errors: [{ foo: 'bar' }],
- },
- },
- });
-
- return testAction({
- action: actions.addListNewIssue,
- payload: {
- issueInput: mockIssue,
- list: fakeList,
- placeholderId: 'tmp',
- },
- state,
- expectedActions: [
- {
- type: 'addListItem',
- payload: {
- list: fakeList,
- item: formatIssue({ ...mockIssue, id: 'tmp', isLoading: true }),
- position: 0,
- inProgress: true,
- },
- },
- { type: 'removeListItem', payload: { listId: fakeList.id, itemId: 'tmp' } },
- ],
- expectedMutations: [
- {
- type: types.SET_ERROR,
- payload: 'An error occurred while creating the issue. Please try again.',
- },
- ],
- });
- });
- });
-});
-
-describe('setActiveIssueLabels', () => {
- const state = { boardItems: { [mockIssue.id]: mockIssue } };
- const getters = { activeBoardItem: { ...mockIssue, labels } };
- const testLabelIds = labels.map((label) => label.id);
- const input = {
- labelIds: testLabelIds,
- removeLabelIds: [],
- projectPath: 'h/b',
- labels,
- };
-
- it('should assign labels', () => {
- const payload = {
- itemId: getters.activeBoardItem.id,
- prop: 'labels',
- value: labels,
- };
-
- return testAction(
- actions.setActiveIssueLabels,
- input,
- { ...state, ...getters },
- [
- {
- type: types.UPDATE_BOARD_ITEM_BY_ID,
- payload,
- },
- ],
- [],
- );
- });
-
- it('should remove label', () => {
- const payload = {
- itemId: getters.activeBoardItem.id,
- prop: 'labels',
- value: [labels[1]],
- };
-
- return testAction(
- actions.setActiveIssueLabels,
- { ...input, removeLabelIds: [getIdFromGraphQLId(labels[0].id)] },
- { ...state, ...getters },
- [
- {
- type: types.UPDATE_BOARD_ITEM_BY_ID,
- payload,
- },
- ],
- [],
- );
- });
-});
-
-describe('setActiveItemSubscribed', () => {
- const state = {
- boardItems: {
- [mockActiveIssue.id]: mockActiveIssue,
- },
- fullPath: 'gitlab-org',
- issuableType: TYPE_ISSUE,
- };
- const getters = { activeBoardItem: mockActiveIssue, isEpicBoard: false };
- const subscribedState = true;
- const input = {
- subscribedState,
- projectPath: 'gitlab-org/gitlab-test',
- };
-
- it('should commit subscribed status', () => {
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- updateIssuableSubscription: {
- issue: {
- subscribed: subscribedState,
- },
- errors: [],
- },
- },
- });
-
- const payload = {
- itemId: getters.activeBoardItem.id,
- prop: 'subscribed',
- value: subscribedState,
- };
-
- return testAction(
- actions.setActiveItemSubscribed,
- input,
- { ...state, ...getters },
- [
- {
- type: types.UPDATE_BOARD_ITEM_BY_ID,
- payload,
- },
- ],
- [],
- );
- });
-
- it('throws error if fails', async () => {
- jest
- .spyOn(gqlClient, 'mutate')
- .mockResolvedValue({ data: { updateIssuableSubscription: { errors: ['failed mutation'] } } });
-
- await expect(actions.setActiveItemSubscribed({ getters }, input)).rejects.toThrow(Error);
- });
-});
-
-describe('setActiveItemTitle', () => {
- const state = {
- boardItems: { [mockIssue.id]: mockIssue },
- issuableType: TYPE_ISSUE,
- fullPath: 'path/f',
- };
- const getters = { activeBoardItem: mockIssue, isEpicBoard: false };
- const testTitle = 'Test Title';
- const input = {
- title: testTitle,
- projectPath: 'h/b',
- };
-
- it('should commit title after setting the issue', () => {
- jest.spyOn(gqlClient, 'mutate').mockResolvedValue({
- data: {
- updateIssuableTitle: {
- issue: {
- title: testTitle,
- },
- errors: [],
- },
- },
- });
-
- const payload = {
- itemId: getters.activeBoardItem.id,
- prop: 'title',
- value: testTitle,
- };
-
- return testAction(
- actions.setActiveItemTitle,
- input,
- { ...state, ...getters },
- [
- {
- type: types.UPDATE_BOARD_ITEM_BY_ID,
- payload,
- },
- ],
- [],
- );
- });
-
- it('throws error if fails', async () => {
- jest
- .spyOn(gqlClient, 'mutate')
- .mockResolvedValue({ data: { updateIssue: { errors: ['failed mutation'] } } });
-
- await expect(actions.setActiveItemTitle({ getters }, input)).rejects.toThrow(Error);
- });
-});
-
-describe('setActiveItemConfidential', () => {
- const state = { boardItems: { [mockIssue.id]: mockIssue } };
- const getters = { activeBoardItem: mockIssue };
-
- it('set confidential value on board item', () => {
- const payload = {
- itemId: getters.activeBoardItem.id,
- prop: 'confidential',
- value: true,
- };
-
- return testAction(
- actions.setActiveItemConfidential,
- true,
- { ...state, ...getters },
- [
- {
- type: types.UPDATE_BOARD_ITEM_BY_ID,
- payload,
- },
- ],
- [],
- );
- });
-});
-
-describe('fetchGroupProjects', () => {
- const state = {
- fullPath: 'gitlab-org',
- };
-
- const pageInfo = {
- endCursor: '',
- hasNextPage: false,
- };
-
- const queryResponse = {
- data: {
- group: {
- projects: {
- nodes: mockGroupProjects,
- pageInfo: {
- endCursor: '',
- hasNextPage: false,
- },
- },
- },
- },
- };
-
- it('should commit mutations REQUEST_GROUP_PROJECTS and RECEIVE_GROUP_PROJECTS_SUCCESS on success', () => {
- jest.spyOn(gqlClient, 'query').mockResolvedValue(queryResponse);
-
- return testAction(
- actions.fetchGroupProjects,
- {},
- state,
- [
- {
- type: types.REQUEST_GROUP_PROJECTS,
- payload: false,
- },
- {
- type: types.RECEIVE_GROUP_PROJECTS_SUCCESS,
- payload: { projects: mockGroupProjects, pageInfo, fetchNext: false },
- },
- ],
- [],
- );
- });
-
- it('should commit mutations REQUEST_GROUP_PROJECTS and RECEIVE_GROUP_PROJECTS_FAILURE on failure', () => {
- jest.spyOn(gqlClient, 'query').mockRejectedValue();
-
- return testAction(
- actions.fetchGroupProjects,
- {},
- state,
- [
- {
- type: types.REQUEST_GROUP_PROJECTS,
- payload: false,
- },
- {
- type: types.RECEIVE_GROUP_PROJECTS_FAILURE,
- },
- ],
- [],
- );
- });
-});
-
-describe('setSelectedProject', () => {
- it('should commit mutation SET_SELECTED_PROJECT', () => {
- const project = mockGroupProjects[0];
-
- return testAction(
- actions.setSelectedProject,
- project,
- {},
- [
- {
- type: types.SET_SELECTED_PROJECT,
- payload: project,
- },
- ],
- [],
- );
- });
-});
-
-describe('toggleBoardItemMultiSelection', () => {
- const boardItem = mockIssue;
- const boardItem2 = mockIssue2;
-
- it('should commit mutation ADD_BOARD_ITEM_TO_SELECTION if item is not on selection state', () => {
- return testAction(
- actions.toggleBoardItemMultiSelection,
- boardItem,
- { selectedBoardItems: [] },
- [
- {
- type: types.ADD_BOARD_ITEM_TO_SELECTION,
- payload: boardItem,
- },
- ],
- [],
- );
- });
-
- it('should commit mutation REMOVE_BOARD_ITEM_FROM_SELECTION if item is on selection state', () => {
- return testAction(
- actions.toggleBoardItemMultiSelection,
- boardItem,
- { selectedBoardItems: [mockIssue] },
- [
- {
- type: types.REMOVE_BOARD_ITEM_FROM_SELECTION,
- payload: boardItem,
- },
- ],
- [],
- );
- });
-
- it('should additionally commit mutation ADD_BOARD_ITEM_TO_SELECTION for active issue and dispatch unsetActiveId', () => {
- return testAction(
- actions.toggleBoardItemMultiSelection,
- boardItem2,
- { activeId: mockActiveIssue.id, activeBoardItem: mockActiveIssue, selectedBoardItems: [] },
- [
- {
- type: types.ADD_BOARD_ITEM_TO_SELECTION,
- payload: mockActiveIssue,
- },
- {
- type: types.ADD_BOARD_ITEM_TO_SELECTION,
- payload: boardItem2,
- },
- ],
- [{ type: 'unsetActiveId' }],
- );
- });
-});
-
-describe('resetBoardItemMultiSelection', () => {
- it('should commit mutation RESET_BOARD_ITEM_SELECTION', () => {
- return testAction({
- action: actions.resetBoardItemMultiSelection,
- state: { selectedBoardItems: [mockIssue] },
- expectedMutations: [
- {
- type: types.RESET_BOARD_ITEM_SELECTION,
- },
- ],
- });
- });
-});
-
-describe('toggleBoardItem', () => {
- it('should dispatch resetBoardItemMultiSelection and unsetActiveId when boardItem is the active item', () => {
- return testAction({
- action: actions.toggleBoardItem,
- payload: { boardItem: mockIssue },
- state: {
- activeId: mockIssue.id,
- },
- expectedActions: [{ type: 'resetBoardItemMultiSelection' }, { type: 'unsetActiveId' }],
- });
- });
-
- it('should dispatch resetBoardItemMultiSelection and setActiveId when boardItem is not the active item', () => {
- return testAction({
- action: actions.toggleBoardItem,
- payload: { boardItem: mockIssue },
- state: {
- activeId: inactiveId,
- },
- expectedActions: [
- { type: 'resetBoardItemMultiSelection' },
- { type: 'setActiveId', payload: { id: mockIssue.id, sidebarType: ISSUABLE } },
- ],
- });
- });
-});
-
-describe('setError', () => {
- it('should commit mutation SET_ERROR', () => {
- return testAction({
- action: actions.setError,
- payload: { message: 'mayday' },
- expectedMutations: [
- {
- payload: 'mayday',
- type: types.SET_ERROR,
- },
- ],
- });
- });
-
- it('should capture error using Sentry when captureError is true', () => {
- jest.spyOn(Sentry, 'captureException');
-
- const mockError = new Error();
- actions.setError(
- { commit: () => {} },
- {
- message: 'mayday',
- error: mockError,
- captureError: true,
- },
- );
-
- expect(Sentry.captureException).toHaveBeenNthCalledWith(1, mockError);
- });
-});
-
-describe('unsetError', () => {
- it('should commit mutation SET_ERROR with undefined as payload', () => {
- return testAction({
- action: actions.unsetError,
- expectedMutations: [
- {
- payload: undefined,
- type: types.SET_ERROR,
- },
- ],
- });
- });
-});
diff --git a/spec/frontend/boards/stores/getters_spec.js b/spec/frontend/boards/stores/getters_spec.js
deleted file mode 100644
index 944a7493504..00000000000
--- a/spec/frontend/boards/stores/getters_spec.js
+++ /dev/null
@@ -1,203 +0,0 @@
-import { inactiveId } from '~/boards/constants';
-import getters from '~/boards/stores/getters';
-import {
- mockIssue,
- mockIssue2,
- mockIssues,
- mockIssuesByListId,
- issues,
- mockLists,
- mockGroupProject1,
- mockArchivedGroupProject,
-} from '../mock_data';
-
-describe('Boards - Getters', () => {
- describe('isSidebarOpen', () => {
- it('returns true when activeId is not equal to 0', () => {
- const state = {
- activeId: 1,
- };
-
- expect(getters.isSidebarOpen(state)).toBe(true);
- });
-
- it('returns false when activeId is equal to 0', () => {
- const state = {
- activeId: inactiveId,
- };
-
- expect(getters.isSidebarOpen(state)).toBe(false);
- });
- });
-
- describe('isSwimlanesOn', () => {
- it('returns false', () => {
- expect(getters.isSwimlanesOn()).toBe(false);
- });
- });
-
- describe('getBoardItemById', () => {
- const state = { boardItems: { 'gid://gitlab/Issue/1': 'issue' } };
-
- it.each`
- id | expected
- ${'gid://gitlab/Issue/1'} | ${'issue'}
- ${''} | ${{}}
- `('returns $expected when $id is passed to state', ({ id, expected }) => {
- expect(getters.getBoardItemById(state)(id)).toEqual(expected);
- });
- });
-
- describe('activeBoardItem', () => {
- it.each`
- id | expected
- ${'gid://gitlab/Issue/1'} | ${'issue'}
- ${''} | ${{ id: '', iid: '' }}
- `('returns $expected when $id is passed to state', ({ id, expected }) => {
- const state = { boardItems: { 'gid://gitlab/Issue/1': 'issue' }, activeId: id };
-
- expect(getters.activeBoardItem(state)).toEqual(expected);
- });
- });
-
- describe('groupPathByIssueId', () => {
- it('returns group path for the active issue', () => {
- const mockActiveIssue = {
- referencePath: 'gitlab-org/gitlab-test#1',
- };
- expect(getters.groupPathForActiveIssue({}, { activeBoardItem: mockActiveIssue })).toEqual(
- 'gitlab-org',
- );
- });
-
- it('returns group path of last subgroup for the active issue', () => {
- const mockActiveIssue = {
- referencePath: 'gitlab-org/subgroup/subsubgroup/gitlab-test#1',
- };
- expect(getters.groupPathForActiveIssue({}, { activeBoardItem: mockActiveIssue })).toEqual(
- 'gitlab-org/subgroup/subsubgroup',
- );
- });
-
- it('returns empty string as group path when active issue is an empty object', () => {
- const mockActiveIssue = {};
- expect(getters.groupPathForActiveIssue({}, { activeBoardItem: mockActiveIssue })).toEqual('');
- });
- });
-
- describe('projectPathByIssueId', () => {
- it('returns project path for the active issue', () => {
- const mockActiveIssue = {
- referencePath: 'gitlab-org/gitlab-test#1',
- };
- expect(getters.projectPathForActiveIssue({}, { activeBoardItem: mockActiveIssue })).toEqual(
- 'gitlab-org/gitlab-test',
- );
- });
-
- it('returns empty string as project path when active issue is an empty object', () => {
- const mockActiveIssue = {};
- expect(getters.projectPathForActiveIssue({}, { activeBoardItem: mockActiveIssue })).toEqual(
- '',
- );
- });
- });
-
- describe('getBoardItemsByList', () => {
- const boardsState = {
- boardItemsByListId: mockIssuesByListId,
- boardItems: issues,
- };
- it('returns issues for a given listId', () => {
- const getBoardItemById = (issueId) =>
- [mockIssue, mockIssue2].find(({ id }) => id === issueId);
-
- expect(
- getters.getBoardItemsByList(boardsState, { getBoardItemById })('gid://gitlab/List/2'),
- ).toEqual(mockIssues);
- });
- });
-
- const boardsState = {
- boardLists: {
- 'gid://gitlab/List/1': mockLists[0],
- 'gid://gitlab/List/2': mockLists[1],
- },
- };
-
- describe('getListByLabelId', () => {
- it('returns list for a given label id', () => {
- expect(getters.getListByLabelId(boardsState)('gid://gitlab/GroupLabel/121')).toEqual(
- mockLists[1],
- );
- });
- });
-
- describe('getListByTitle', () => {
- it('returns list for a given list title', () => {
- expect(getters.getListByTitle(boardsState)('To Do')).toEqual(mockLists[1]);
- });
- });
-
- describe('activeGroupProjects', () => {
- const state = {
- groupProjects: [mockGroupProject1, mockArchivedGroupProject],
- };
-
- it('returns only returns non-archived group projects', () => {
- expect(getters.activeGroupProjects(state)).toEqual([mockGroupProject1]);
- });
- });
-
- describe('isIssueBoard', () => {
- it.each`
- issuableType | expected
- ${'issue'} | ${true}
- ${'epic'} | ${false}
- `(
- 'returns $expected when issuableType on state is $issuableType',
- ({ issuableType, expected }) => {
- const state = {
- issuableType,
- };
-
- expect(getters.isIssueBoard(state)).toBe(expected);
- },
- );
- });
-
- describe('isEpicBoard', () => {
- it('returns false', () => {
- expect(getters.isEpicBoard()).toBe(false);
- });
- });
-
- describe('hasScope', () => {
- const boardConfig = {
- labels: [],
- assigneeId: null,
- iterationCadenceId: null,
- iterationId: null,
- milestoneId: null,
- weight: null,
- };
-
- it('returns false when boardConfig is empty', () => {
- const state = { boardConfig };
-
- expect(getters.hasScope(state)).toBe(false);
- });
-
- it('returns true when boardScope has a label', () => {
- const state = { boardConfig: { ...boardConfig, labels: ['foo'] } };
-
- expect(getters.hasScope(state)).toBe(true);
- });
-
- it('returns true when boardConfig has a value other than null', () => {
- const state = { boardConfig: { ...boardConfig, assigneeId: 3 } };
-
- expect(getters.hasScope(state)).toBe(true);
- });
- });
-});
diff --git a/spec/frontend/boards/stores/state_spec.js b/spec/frontend/boards/stores/state_spec.js
deleted file mode 100644
index 35490a63567..00000000000
--- a/spec/frontend/boards/stores/state_spec.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import createState from '~/boards/stores/state';
-
-describe('createState', () => {
- it('is a function', () => {
- expect(createState).toEqual(expect.any(Function));
- });
-
- it('returns an object', () => {
- expect(createState()).toEqual(expect.any(Object));
- });
-});
diff --git a/spec/frontend/captcha/captcha_modal_spec.js b/spec/frontend/captcha/captcha_modal_spec.js
index 4bbed8ab3bb..977c685739f 100644
--- a/spec/frontend/captcha/captcha_modal_spec.js
+++ b/spec/frontend/captcha/captcha_modal_spec.js
@@ -1,6 +1,7 @@
import { GlModal } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import { stubComponent } from 'helpers/stub_component';
+import waitForPromises from 'helpers/wait_for_promises';
import CaptchaModal from '~/captcha/captcha_modal.vue';
import { initRecaptchaScript } from '~/captcha/init_recaptcha_script';
@@ -36,6 +37,7 @@ describe('Captcha Modal', () => {
beforeEach(() => {
grecaptcha = {
render: jest.fn(),
+ reset: jest.fn(),
};
initRecaptchaScript.mockResolvedValue(grecaptcha);
@@ -156,4 +158,65 @@ describe('Captcha Modal', () => {
});
});
});
+
+ describe('when showModal is false', () => {
+ beforeEach(() => {
+ createComponent({ props: { showModal: false, needsCaptchaResponse: true } });
+ });
+
+ it('does not render the modal', () => {
+ expect(findGlModal().exists()).toBe(false);
+ });
+
+ it('renders captcha', () => {
+ expect(grecaptcha.render).toHaveBeenCalledWith(wrapper.vm.$refs.captcha, {
+ sitekey: captchaSiteKey,
+ callback: expect.any(Function),
+ });
+ });
+ });
+
+ describe('needsCaptchaResponse watcher', () => {
+ describe('when showModal is true', () => {
+ beforeEach(() => {
+ createComponent({ props: { showModal: true, needsCaptchaResponse: false } });
+ wrapper.setProps({ needsCaptchaResponse: true });
+ });
+
+ it('shows modal', () => {
+ expect(showSpy).toHaveBeenCalled();
+ });
+ });
+
+ describe('when showModal is false', () => {
+ beforeEach(() => {
+ createComponent({ props: { showModal: false, needsCaptchaResponse: false } });
+ wrapper.setProps({ needsCaptchaResponse: true });
+ });
+
+ it('does not render the modal', () => {
+ expect(findGlModal().exists()).toBe(false);
+ });
+
+ it('renders captcha', () => {
+ expect(grecaptcha.render).toHaveBeenCalledWith(wrapper.vm.$refs.captcha, {
+ sitekey: captchaSiteKey,
+ callback: expect.any(Function),
+ });
+ });
+ });
+ });
+
+ describe('resetSession watcher', () => {
+ beforeEach(() => {
+ createComponent({ props: { showModal: false, needsCaptchaResponse: true } });
+ });
+
+ it('calls reset when resetSession is true', async () => {
+ await waitForPromises();
+ await wrapper.setProps({ resetSession: true });
+
+ expect(grecaptcha.reset).toHaveBeenCalled();
+ });
+ });
});
diff --git a/spec/frontend/ci/catalog/components/details/ci_resource_about_spec.js b/spec/frontend/ci/catalog/components/details/ci_resource_about_spec.js
index 658a135534b..1c791857df9 100644
--- a/spec/frontend/ci/catalog/components/details/ci_resource_about_spec.js
+++ b/spec/frontend/ci/catalog/components/details/ci_resource_about_spec.js
@@ -12,8 +12,8 @@ describe('CiResourceAbout', () => {
openMergeRequestsCount: 9,
latestVersion: {
id: 1,
- tagName: 'v1.0.0',
- tagPath: 'path/to/release',
+ name: 'v1.0.0',
+ path: 'path/to/release',
releasedAt: '2022-08-23T17:19:09Z',
},
webPath: 'path/to/project',
diff --git a/spec/frontend/ci/catalog/components/details/ci_resource_components_spec.js b/spec/frontend/ci/catalog/components/details/ci_resource_components_spec.js
index 330163e9f39..f81344fa291 100644
--- a/spec/frontend/ci/catalog/components/details/ci_resource_components_spec.js
+++ b/spec/frontend/ci/catalog/components/details/ci_resource_components_spec.js
@@ -115,7 +115,7 @@ describe('CiResourceComponents', () => {
it('renders the component name and snippet', () => {
components.forEach((component) => {
expect(wrapper.text()).toContain(component.name);
- expect(wrapper.text()).toContain(component.path);
+ expect(wrapper.text()).toContain(component.includePath);
});
});
@@ -124,7 +124,7 @@ describe('CiResourceComponents', () => {
const button = findCopyToClipboardButton(i);
expect(button.props().icon).toBe('copy-to-clipboard');
- expect(button.attributes('data-clipboard-text')).toContain(component.path);
+ expect(button.attributes('data-clipboard-text')).toContain(component.includePath);
});
});
diff --git a/spec/frontend/ci/catalog/components/details/ci_resource_header_spec.js b/spec/frontend/ci/catalog/components/details/ci_resource_header_spec.js
index 6af9daabea0..b35c8a40744 100644
--- a/spec/frontend/ci/catalog/components/details/ci_resource_header_spec.js
+++ b/spec/frontend/ci/catalog/components/details/ci_resource_header_spec.js
@@ -113,7 +113,7 @@ describe('CiResourceHeader', () => {
createComponent({
props: {
pipelineStatus: status,
- latestVersion: { tagName: '1.0.0', tagPath: 'path/to/release' },
+ latestVersion: { name: '1.0.0', path: 'path/to/release' },
},
});
});
diff --git a/spec/frontend/ci/catalog/components/list/catalog_search_spec.js b/spec/frontend/ci/catalog/components/list/catalog_search_spec.js
index c6f8498f2fd..803deeb0d45 100644
--- a/spec/frontend/ci/catalog/components/list/catalog_search_spec.js
+++ b/spec/frontend/ci/catalog/components/list/catalog_search_spec.js
@@ -1,4 +1,4 @@
-import { GlSearchBoxByClick, GlSorting, GlSortingItem } from '@gitlab/ui';
+import { GlSearchBoxByClick, GlSorting } from '@gitlab/ui';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import CatalogSearch from '~/ci/catalog/components/list/catalog_search.vue';
import { SORT_ASC, SORT_DESC, SORT_OPTION_CREATED } from '~/ci/catalog/constants';
@@ -8,7 +8,7 @@ describe('CatalogSearch', () => {
const findSearchBar = () => wrapper.findComponent(GlSearchBoxByClick);
const findSorting = () => wrapper.findComponent(GlSorting);
- const findAllSortingItems = () => wrapper.findAllComponents(GlSortingItem);
+ const findAllSortingItems = () => findSorting().props('sortOptions');
const createComponent = () => {
wrapper = shallowMountExtended(CatalogSearch, {});
@@ -23,13 +23,14 @@ describe('CatalogSearch', () => {
expect(findSearchBar().exists()).toBe(true);
});
- it('renders the sorting options', () => {
- expect(findSorting().exists()).toBe(true);
- expect(findAllSortingItems()).toHaveLength(1);
+ it('sets sorting options', () => {
+ const sortOptionsProp = findAllSortingItems();
+ expect(sortOptionsProp).toHaveLength(1);
+ expect(sortOptionsProp[0].text).toBe('Created at');
});
it('renders the `Created at` option as the default', () => {
- expect(findAllSortingItems().at(0).text()).toBe('Created at');
+ expect(findSorting().props('text')).toBe('Created at');
});
});
diff --git a/spec/frontend/ci/catalog/components/list/catalog_tabs_spec.js b/spec/frontend/ci/catalog/components/list/catalog_tabs_spec.js
new file mode 100644
index 00000000000..ea216300017
--- /dev/null
+++ b/spec/frontend/ci/catalog/components/list/catalog_tabs_spec.js
@@ -0,0 +1,71 @@
+import { GlTab, GlTabs, GlLoadingIcon } from '@gitlab/ui';
+import { shallowMount } from '@vue/test-utils';
+import { extendedWrapper } from 'helpers/vue_test_utils_helper';
+import { trimText } from 'helpers/text_helper';
+import CatalogTabs from '~/ci/catalog/components/list/catalog_tabs.vue';
+import { SCOPE } from '~/ci/catalog/constants';
+
+describe('Catalog Tabs', () => {
+ let wrapper;
+
+ const defaultProps = {
+ isLoading: false,
+ resourceCounts: {
+ all: 11,
+ namespaces: 4,
+ },
+ };
+
+ const findAllTab = () => wrapper.findByTestId('resources-all-tab');
+ const findYourResourcesTab = () => wrapper.findByTestId('resources-your-tab');
+ const findLoadingIcons = () => wrapper.findAllComponents(GlLoadingIcon);
+
+ const triggerTabChange = (index) => wrapper.findAllComponents(GlTab).at(index).vm.$emit('click');
+
+ const createComponent = (props = defaultProps) => {
+ wrapper = extendedWrapper(
+ shallowMount(CatalogTabs, {
+ propsData: {
+ ...props,
+ },
+ stubs: { GlTabs },
+ }),
+ );
+ };
+
+ describe('When count queries are loading', () => {
+ beforeEach(() => {
+ createComponent({ ...defaultProps, isLoading: true });
+ });
+
+ it('renders loading icons', () => {
+ expect(findLoadingIcons()).toHaveLength(2);
+ });
+ });
+
+ describe('When both tabs have resources', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('renders All tab with count', () => {
+ expect(trimText(findAllTab().text())).toBe(`All ${defaultProps.resourceCounts.all}`);
+ });
+
+ it('renders your resources tab with count', () => {
+ expect(trimText(findYourResourcesTab().text())).toBe(
+ `Your resources ${defaultProps.resourceCounts.namespaces}`,
+ );
+ });
+
+ it.each`
+ tabIndex | expectedScope
+ ${0} | ${SCOPE.all}
+ ${1} | ${SCOPE.namespaces}
+ `('emits setScope with $expectedScope on tab change', ({ tabIndex, expectedScope }) => {
+ triggerTabChange(tabIndex);
+
+ expect(wrapper.emitted()).toEqual({ setScope: [[expectedScope]] });
+ });
+ });
+});
diff --git a/spec/frontend/ci/catalog/components/list/ci_resources_list_item_spec.js b/spec/frontend/ci/catalog/components/list/ci_resources_list_item_spec.js
index d74b133f386..15add3f307f 100644
--- a/spec/frontend/ci/catalog/components/list/ci_resources_list_item_spec.js
+++ b/spec/frontend/ci/catalog/components/list/ci_resources_list_item_spec.js
@@ -21,7 +21,7 @@ describe('CiResourcesListItem', () => {
const release = {
author: { name: 'author', webUrl: '/user/1' },
releasedAt: Date.now(),
- tagName: '1.0.0',
+ name: '1.0.0',
};
const defaultProps = {
resource,
@@ -114,7 +114,7 @@ describe('CiResourcesListItem', () => {
it('renders the version badge', () => {
expect(findBadge().exists()).toBe(true);
- expect(findBadge().text()).toBe(release.tagName);
+ expect(findBadge().text()).toBe(release.name);
});
});
});
diff --git a/spec/frontend/ci/catalog/components/list/ci_resources_list_spec.js b/spec/frontend/ci/catalog/components/list/ci_resources_list_spec.js
index aca20a83979..41c6ccdd112 100644
--- a/spec/frontend/ci/catalog/components/list/ci_resources_list_spec.js
+++ b/spec/frontend/ci/catalog/components/list/ci_resources_list_spec.js
@@ -3,20 +3,19 @@ import { GlKeysetPagination } from '@gitlab/ui';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import CiResourcesList from '~/ci/catalog/components/list/ci_resources_list.vue';
import CiResourcesListItem from '~/ci/catalog/components/list/ci_resources_list_item.vue';
-import { ciCatalogResourcesItemsCount } from '~/ci/catalog/graphql/settings';
import { catalogResponseBody, catalogSinglePageResponse } from '../../mock';
describe('CiResourcesList', () => {
let wrapper;
const createComponent = ({ props = {} } = {}) => {
- const { nodes, pageInfo, count } = catalogResponseBody.data.ciCatalogResources;
+ const { nodes, pageInfo } = catalogResponseBody.data.ciCatalogResources;
const defaultProps = {
currentPage: 1,
resources: nodes,
pageInfo,
- totalCount: count,
+ totalCount: 20,
};
wrapper = shallowMountExtended(CiResourcesList, {
@@ -36,11 +35,11 @@ describe('CiResourcesList', () => {
const findNextBtn = () => wrapper.findByTestId('nextButton');
describe('contains only one page', () => {
- const { nodes, pageInfo, count } = catalogSinglePageResponse.data.ciCatalogResources;
+ const { nodes, pageInfo } = catalogSinglePageResponse.data.ciCatalogResources;
beforeEach(async () => {
await createComponent({
- props: { currentPage: 1, resources: nodes, pageInfo, totalCount: count },
+ props: { currentPage: 1, resources: nodes, pageInfo, totalCount: nodes.length },
});
});
@@ -62,58 +61,56 @@ describe('CiResourcesList', () => {
});
describe.each`
- hasPreviousPage | hasNextPage | pageText | expectedTotal | currentPage
- ${false} | ${true} | ${'1 of 3'} | ${ciCatalogResourcesItemsCount} | ${1}
- ${true} | ${true} | ${'2 of 3'} | ${ciCatalogResourcesItemsCount} | ${2}
- ${true} | ${false} | ${'3 of 3'} | ${ciCatalogResourcesItemsCount} | ${3}
- `(
- 'when on page $pageText',
- ({ currentPage, expectedTotal, pageText, hasPreviousPage, hasNextPage }) => {
- const { nodes, pageInfo, count } = catalogResponseBody.data.ciCatalogResources;
-
- const previousPageState = hasPreviousPage ? 'enabled' : 'disabled';
- const nextPageState = hasNextPage ? 'enabled' : 'disabled';
-
- beforeEach(async () => {
- await createComponent({
- props: {
- currentPage,
- resources: nodes,
- pageInfo: { ...pageInfo, hasPreviousPage, hasNextPage },
- totalCount: count,
- },
- });
- });
+ hasPreviousPage | hasNextPage | pageText | currentPage
+ ${false} | ${true} | ${'1 of 3'} | ${1}
+ ${true} | ${true} | ${'2 of 3'} | ${2}
+ ${true} | ${false} | ${'3 of 3'} | ${3}
+ `('when on page $pageText', ({ currentPage, pageText, hasPreviousPage, hasNextPage }) => {
+ const { nodes, pageInfo } = catalogResponseBody.data.ciCatalogResources;
+ const count = 50; // We want 3 pages of data to test. There are 20 items per page.
+
+ const previousPageState = hasPreviousPage ? 'enabled' : 'disabled';
+ const nextPageState = hasNextPage ? 'enabled' : 'disabled';
- it('shows the right number of items', () => {
- expect(findResourcesListItems()).toHaveLength(expectedTotal);
+ beforeEach(async () => {
+ await createComponent({
+ props: {
+ currentPage,
+ resources: nodes,
+ pageInfo: { ...pageInfo, hasPreviousPage, hasNextPage },
+ totalCount: count,
+ },
});
+ });
- it(`shows the keyset control for previous page as ${previousPageState}`, () => {
- const disableAttr = findPrevBtn().attributes('disabled');
+ it('shows the right number of items', () => {
+ expect(findResourcesListItems()).toHaveLength(20);
+ });
- if (previousPageState === 'disabled') {
- expect(disableAttr).toBeDefined();
- } else {
- expect(disableAttr).toBeUndefined();
- }
- });
+ it(`shows the keyset control for previous page as ${previousPageState}`, () => {
+ const disableAttr = findPrevBtn().attributes('disabled');
- it(`shows the keyset control for next page as ${nextPageState}`, () => {
- const disableAttr = findNextBtn().attributes('disabled');
+ if (previousPageState === 'disabled') {
+ expect(disableAttr).toBeDefined();
+ } else {
+ expect(disableAttr).toBeUndefined();
+ }
+ });
- if (nextPageState === 'disabled') {
- expect(disableAttr).toBeDefined();
- } else {
- expect(disableAttr).toBeUndefined();
- }
- });
+ it(`shows the keyset control for next page as ${nextPageState}`, () => {
+ const disableAttr = findNextBtn().attributes('disabled');
- it('shows the correct count of current page', () => {
- expect(findPageCount().text()).toContain(pageText);
- });
- },
- );
+ if (nextPageState === 'disabled') {
+ expect(disableAttr).toBeDefined();
+ } else {
+ expect(disableAttr).toBeUndefined();
+ }
+ });
+
+ it('shows the correct count of current page', () => {
+ expect(findPageCount().text()).toContain(pageText);
+ });
+ });
describe('when there is an error getting the page count', () => {
beforeEach(() => {
diff --git a/spec/frontend/ci/catalog/components/pages/ci_resources_page_spec.js b/spec/frontend/ci/catalog/components/pages/ci_resources_page_spec.js
index e6fbd63f307..6fb5eed0d93 100644
--- a/spec/frontend/ci/catalog/components/pages/ci_resources_page_spec.js
+++ b/spec/frontend/ci/catalog/components/pages/ci_resources_page_spec.js
@@ -7,17 +7,25 @@ import createMockApollo from 'helpers/mock_apollo_helper';
import { createAlert } from '~/alert';
import CatalogHeader from '~/ci/catalog/components/list/catalog_header.vue';
-import CatalogSearch from '~/ci/catalog/components/list/catalog_search.vue';
import CiResourcesList from '~/ci/catalog/components/list/ci_resources_list.vue';
+import CiResourcesPage from '~/ci/catalog/components/pages/ci_resources_page.vue';
+import CatalogSearch from '~/ci/catalog/components/list/catalog_search.vue';
+import CatalogTabs from '~/ci/catalog/components/list/catalog_tabs.vue';
import CatalogListSkeletonLoader from '~/ci/catalog/components/list/catalog_list_skeleton_loader.vue';
import EmptyState from '~/ci/catalog/components/list/empty_state.vue';
+
import { cacheConfig, resolvers } from '~/ci/catalog/graphql/settings';
+import { DEFAULT_SORT_VALUE, SCOPE } from '~/ci/catalog/constants';
import typeDefs from '~/ci/catalog/graphql/typedefs.graphql';
-import ciResourcesPage from '~/ci/catalog/components/pages/ci_resources_page.vue';
import getCatalogResources from '~/ci/catalog/graphql/queries/get_ci_catalog_resources.query.graphql';
+import getCatalogResourcesCount from '~/ci/catalog/graphql/queries/get_ci_catalog_resources_count.query.graphql';
-import { emptyCatalogResponseBody, catalogResponseBody } from '../../mock';
+import {
+ emptyCatalogResponseBody,
+ catalogResponseBody,
+ catalogResourcesCountResponseBody,
+} from '../../mock';
Vue.use(VueApollo);
jest.mock('~/alert');
@@ -25,14 +33,23 @@ jest.mock('~/alert');
describe('CiResourcesPage', () => {
let wrapper;
let catalogResourcesResponse;
+ let catalogResourcesCountResponse;
- const defaultQueryVariables = { first: 20 };
+ const defaultQueryVariables = {
+ first: 20,
+ scope: SCOPE.all,
+ searchTerm: null,
+ sortValue: DEFAULT_SORT_VALUE,
+ };
const createComponent = () => {
- const handlers = [[getCatalogResources, catalogResourcesResponse]];
+ const handlers = [
+ [getCatalogResources, catalogResourcesResponse],
+ [getCatalogResourcesCount, catalogResourcesCountResponse],
+ ];
const mockApollo = createMockApollo(handlers, resolvers, { cacheConfig, typeDefs });
- wrapper = shallowMountExtended(ciResourcesPage, {
+ wrapper = shallowMountExtended(CiResourcesPage, {
apolloProvider: mockApollo,
});
@@ -41,12 +58,15 @@ describe('CiResourcesPage', () => {
const findCatalogHeader = () => wrapper.findComponent(CatalogHeader);
const findCatalogSearch = () => wrapper.findComponent(CatalogSearch);
+ const findCatalogTabs = () => wrapper.findComponent(CatalogTabs);
const findCiResourcesList = () => wrapper.findComponent(CiResourcesList);
const findLoadingState = () => wrapper.findComponent(CatalogListSkeletonLoader);
const findEmptyState = () => wrapper.findComponent(EmptyState);
beforeEach(() => {
catalogResourcesResponse = jest.fn();
+ catalogResourcesCountResponse = jest.fn();
+ catalogResourcesCountResponse.mockResolvedValue(catalogResourcesCountResponseBody);
});
describe('when initial queries are loading', () => {
@@ -83,31 +103,56 @@ describe('CiResourcesPage', () => {
expect(findCatalogSearch().exists()).toBe(true);
});
+ it('renders the tabs', () => {
+ expect(findCatalogTabs().exists()).toBe(true);
+ });
+
it('does not render the list', () => {
expect(findCiResourcesList().exists()).toBe(false);
});
});
describe('and there are resources', () => {
- const { nodes, pageInfo, count } = catalogResponseBody.data.ciCatalogResources;
+ const { nodes, pageInfo } = catalogResponseBody.data.ciCatalogResources;
beforeEach(async () => {
catalogResourcesResponse.mockResolvedValue(catalogResponseBody);
await createComponent();
});
+
it('renders the resources list', () => {
expect(findLoadingState().exists()).toBe(false);
expect(findEmptyState().exists()).toBe(false);
expect(findCiResourcesList().exists()).toBe(true);
});
+ it('renders the catalog tabs', () => {
+ expect(findCatalogTabs().exists()).toBe(true);
+ });
+
+ it('updates the scope after switching tabs', async () => {
+ await findCatalogTabs().vm.$emit('setScope', SCOPE.namespaces);
+
+ expect(catalogResourcesResponse).toHaveBeenCalledWith({
+ ...defaultQueryVariables,
+ scope: SCOPE.namespaces,
+ });
+
+ await findCatalogTabs().vm.$emit('setScope', SCOPE.all);
+
+ expect(catalogResourcesResponse).toHaveBeenCalledWith({
+ ...defaultQueryVariables,
+ scope: SCOPE.all,
+ });
+ });
+
it('passes down props to the resources list', () => {
expect(findCiResourcesList().props()).toMatchObject({
currentPage: 1,
resources: nodes,
pageInfo,
- totalCount: count,
+ totalCount: 0,
});
});
@@ -145,6 +190,7 @@ describe('CiResourcesPage', () => {
before: pageInfo.startCursor,
last: 20,
first: null,
+ scope: SCOPE.all,
});
}
});
@@ -190,10 +236,12 @@ describe('CiResourcesPage', () => {
beforeEach(async () => {
catalogResourcesResponse.mockResolvedValue(emptyCatalogResponseBody);
await createComponent();
- await findCatalogSearch().vm.$emit('update-search-term', newSearch);
});
- it('renders the empty state and passes down the search query', () => {
+ it('renders the empty state and passes down the search query', async () => {
+ await findCatalogSearch().vm.$emit('update-search-term', newSearch);
+ await waitForPromises();
+
expect(findEmptyState().exists()).toBe(true);
expect(findEmptyState().props().searchTerm).toBe(newSearch);
});
diff --git a/spec/frontend/ci/catalog/mock.js b/spec/frontend/ci/catalog/mock.js
index e370ac5054f..c9256435990 100644
--- a/spec/frontend/ci/catalog/mock.js
+++ b/spec/frontend/ci/catalog/mock.js
@@ -10,12 +10,26 @@ export const emptyCatalogResponseBody = {
hasPreviousPage: false,
__typename: 'PageInfo',
},
- count: 0,
nodes: [],
},
},
};
+export const catalogResourcesCountResponseBody = {
+ data: {
+ ciCatalogResources: {
+ all: {
+ count: 1,
+ __typename: 'CiCatalogResourceConnection',
+ },
+ namespaces: {
+ count: 7,
+ __typename: 'CiCatalogResourceConnection',
+ },
+ },
+ },
+};
+
export const catalogResponseBody = {
data: {
ciCatalogResources: {
@@ -28,7 +42,6 @@ export const catalogResponseBody = {
hasPreviousPage: false,
__typename: 'PageInfo',
},
- count: 41,
nodes: [
{
id: 'gid://gitlab/Ci::Catalog::Resource/129',
@@ -248,7 +261,6 @@ export const catalogSinglePageResponse = {
hasPreviousPage: false,
__typename: 'PageInfo',
},
- count: 3,
nodes: [
{
id: 'gid://gitlab/Ci::Catalog::Resource/132',
@@ -298,8 +310,8 @@ export const catalogSharedDataMock = {
latestVersion: {
__typename: 'Release',
id: '3',
- tagName: '1.0.0',
- tagPath: 'path/to/release',
+ name: '1.0.0',
+ path: 'path/to/release',
releasedAt: Date.now(),
author: { id: 1, webUrl: 'profile/1', name: 'username' },
},
@@ -344,7 +356,7 @@ export const catalogAdditionalDetailsMock = {
],
},
},
- tagName: 'v1.0.2',
+ name: 'v1.0.2',
releasedAt: '2022-08-23T17:19:09Z',
},
],
@@ -366,8 +378,8 @@ const generateResourcesNodes = (count = 20, startId = 0) => {
latestVersion: {
__typename: 'Release',
id: '3',
- tagName: '1.0.0',
- tagPath: 'path/to/release',
+ name: '1.0.0',
+ path: 'path/to/release',
releasedAt: Date.now(),
author: { id: 1, webUrl: 'profile/1', name: 'username' },
},
@@ -387,14 +399,14 @@ const componentsMockData = {
id: 'gid://gitlab/Ci::Component/1',
name: 'Ruby gal',
description: 'This is a pretty amazing component that does EVERYTHING ruby.',
- path: 'gitlab.com/gitlab-org/ruby-gal@~latest',
+ includePath: 'gitlab.com/gitlab-org/ruby-gal@~latest',
inputs: [{ name: 'version', default: '1.0.0', required: true }],
},
{
id: 'gid://gitlab/Ci::Component/2',
name: 'Javascript madness',
description: 'Adds some spice to your life.',
- path: 'gitlab.com/gitlab-org/javascript-madness@~latest',
+ includePath: 'gitlab.com/gitlab-org/javascript-madness@~latest',
inputs: [
{ name: 'isFun', default: 'true', required: true },
{ name: 'RandomNumber', default: '10', required: false },
@@ -404,7 +416,7 @@ const componentsMockData = {
id: 'gid://gitlab/Ci::Component/3',
name: 'Go go go',
description: 'When you write Go, you gotta go go go.',
- path: 'gitlab.com/gitlab-org/go-go-go@~latest',
+ includePath: 'gitlab.com/gitlab-org/go-go-go@~latest',
inputs: [{ name: 'version', default: '1.0.0', required: true }],
},
],
diff --git a/spec/frontend/ci/ci_variable_list/components/ci_environments_dropdown_spec.js b/spec/frontend/ci/ci_environments_dropdown/ci_environments_dropdown_spec.js
index 353b5fd3c47..d26827de57b 100644
--- a/spec/frontend/ci/ci_variable_list/components/ci_environments_dropdown_spec.js
+++ b/spec/frontend/ci/ci_environments_dropdown/ci_environments_dropdown_spec.js
@@ -1,14 +1,15 @@
import { GlListboxItem, GlCollapsibleListbox, GlDropdownDivider, GlIcon } from '@gitlab/ui';
import { mountExtended } from 'helpers/vue_test_utils_helper';
-import { allEnvironments, ENVIRONMENT_QUERY_LIMIT } from '~/ci/ci_variable_list/constants';
-import CiEnvironmentsDropdown from '~/ci/ci_variable_list/components/ci_environments_dropdown.vue';
+import CiEnvironmentsDropdown from '~/ci/common/private/ci_environments_dropdown';
describe('Ci environments dropdown', () => {
let wrapper;
const envs = ['dev', 'prod', 'staging'];
const defaultProps = {
+ isEnvironmentRequired: true,
areEnvironmentsLoading: false,
+ canCreateWildcard: true,
environments: envs,
selectedEnvironmentScope: '',
};
@@ -33,19 +34,43 @@ describe('Ci environments dropdown', () => {
findListbox().vm.$emit('search', searchTerm);
};
- describe('No environments found', () => {
- beforeEach(() => {
- createComponent({ searchTerm: 'stable' });
+ describe('create wildcard button', () => {
+ describe('when canCreateWildcard is true', () => {
+ beforeEach(() => {
+ createComponent({ props: { canCreateWildcard: true }, searchTerm: 'stable' });
+ });
+
+ it('renders create button during search', () => {
+ expect(findCreateWildcardButton().exists()).toBe(true);
+ });
});
- it('renders dropdown divider', () => {
- expect(findDropdownDivider().exists()).toBe(true);
+ describe('when canCreateWildcard is false', () => {
+ beforeEach(() => {
+ createComponent({ props: { canCreateWildcard: false }, searchTerm: 'stable' });
+ });
+
+ it('does not render create button during search', () => {
+ expect(findCreateWildcardButton().exists()).toBe(false);
+ });
});
+ });
- it('renders create button with search term if environments do not contain search term', () => {
- const button = findCreateWildcardButton();
- expect(button.exists()).toBe(true);
- expect(button.text()).toBe('Create wildcard: stable');
+ describe('No environments found', () => {
+ describe('default behavior', () => {
+ beforeEach(() => {
+ createComponent({ searchTerm: 'stable' });
+ });
+
+ it('renders dropdown divider', () => {
+ expect(findDropdownDivider().exists()).toBe(true);
+ });
+
+ it('renders create button with search term if environments do not contain search term', () => {
+ const button = findCreateWildcardButton();
+ expect(button.exists()).toBe(true);
+ expect(button.text()).toBe('Create wildcard: stable');
+ });
});
});
@@ -54,7 +79,7 @@ describe('Ci environments dropdown', () => {
createComponent({ props: { environments: envs } });
});
- it(`prepends * in listbox`, () => {
+ it('prepends * in listbox', () => {
expect(findListboxItemByIndex(0).text()).toBe('*');
});
@@ -67,6 +92,16 @@ describe('Ci environments dropdown', () => {
it('does not display active checkmark', () => {
expect(findActiveIconByIndex(0).classes('gl-visibility-hidden')).toBe(true);
});
+
+ describe('when isEnvironmentRequired is false', () => {
+ beforeEach(() => {
+ createComponent({ props: { isEnvironmentRequired: false, environments: envs } });
+ });
+
+ it('adds Not applicable as an option', () => {
+ expect(findListboxItemByIndex(1).text()).toBe('Not applicable');
+ });
+ });
});
describe('when `*` is the value of selectedEnvironmentScope props', () => {
@@ -77,7 +112,7 @@ describe('Ci environments dropdown', () => {
});
it('shows the `All environments` text and not the wildcard', () => {
- expect(findListboxText()).toContain(allEnvironments.text);
+ expect(findListboxText()).toContain('All (default)');
expect(findListboxText()).not.toContain(wildcardScope);
});
});
@@ -124,9 +159,9 @@ describe('Ci environments dropdown', () => {
expect(wrapper.emitted('search-environment-scope')[1]).toEqual([currentEnv]);
});
- it('displays note about max environments shown', () => {
+ it('displays note about max environments', () => {
expect(findMaxEnvNote().exists()).toBe(true);
- expect(findMaxEnvNote().text()).toContain(String(ENVIRONMENT_QUERY_LIMIT));
+ expect(findMaxEnvNote().text()).toContain('30');
});
});
diff --git a/spec/frontend/ci/ci_variable_list/utils_spec.js b/spec/frontend/ci/ci_environments_dropdown/utils_spec.js
index fbcf0e7c5a5..6da0d7cdbca 100644
--- a/spec/frontend/ci/ci_variable_list/utils_spec.js
+++ b/spec/frontend/ci/ci_environments_dropdown/utils_spec.js
@@ -1,13 +1,19 @@
-import { convertEnvironmentScope, mapEnvironmentNames } from '~/ci/ci_variable_list/utils';
-import { allEnvironments } from '~/ci/ci_variable_list/constants';
+import {
+ convertEnvironmentScope,
+ mapEnvironmentNames,
+} from '~/ci/common/private/ci_environments_dropdown';
describe('utils', () => {
describe('convertEnvironmentScope', () => {
it('converts the * to the `All environments` text', () => {
- expect(convertEnvironmentScope('*')).toBe(allEnvironments.text);
+ expect(convertEnvironmentScope('*')).toBe('All (default)');
});
- it('returns the environment as is if not the *', () => {
+ it('converts the `Not applicable` to the `Not applicable`', () => {
+ expect(convertEnvironmentScope('Not applicable')).toBe('Not applicable');
+ });
+
+ it('returns other environments as-is', () => {
expect(convertEnvironmentScope('prod')).toBe('prod');
});
});
diff --git a/spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js b/spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js
index 567a49d663c..0b5440d1bee 100644
--- a/spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js
+++ b/spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js
@@ -9,7 +9,7 @@ import {
DELETE_MUTATION_ACTION,
UPDATE_MUTATION_ACTION,
} from '~/ci/ci_variable_list/constants';
-import getGroupEnvironments from '~/ci/ci_variable_list/graphql/queries/group_environments.query.graphql';
+import { getGroupEnvironments } from '~/ci/common/private/ci_environments_dropdown';
import getGroupVariables from '~/ci/ci_variable_list/graphql/queries/group_variables.query.graphql';
import addGroupVariable from '~/ci/ci_variable_list/graphql/mutations/group_add_variable.mutation.graphql';
import deleteGroupVariable from '~/ci/ci_variable_list/graphql/mutations/group_delete_variable.mutation.graphql';
diff --git a/spec/frontend/ci/ci_variable_list/components/ci_project_variables_spec.js b/spec/frontend/ci/ci_variable_list/components/ci_project_variables_spec.js
index 69b0d4261b2..66a085f2661 100644
--- a/spec/frontend/ci/ci_variable_list/components/ci_project_variables_spec.js
+++ b/spec/frontend/ci/ci_variable_list/components/ci_project_variables_spec.js
@@ -9,7 +9,7 @@ import {
DELETE_MUTATION_ACTION,
UPDATE_MUTATION_ACTION,
} from '~/ci/ci_variable_list/constants';
-import getProjectEnvironments from '~/ci/ci_variable_list/graphql/queries/project_environments.query.graphql';
+import { getProjectEnvironments } from '~/ci/common/private/ci_environments_dropdown';
import getProjectVariables from '~/ci/ci_variable_list/graphql/queries/project_variables.query.graphql';
import addProjectVariable from '~/ci/ci_variable_list/graphql/mutations/project_add_variable.mutation.graphql';
import deleteProjectVariable from '~/ci/ci_variable_list/graphql/mutations/project_delete_variable.mutation.graphql';
diff --git a/spec/frontend/ci/ci_variable_list/components/ci_variable_drawer_spec.js b/spec/frontend/ci/ci_variable_list/components/ci_variable_drawer_spec.js
index 721e2b831fc..645aaf798d4 100644
--- a/spec/frontend/ci/ci_variable_list/components/ci_variable_drawer_spec.js
+++ b/spec/frontend/ci/ci_variable_list/components/ci_variable_drawer_spec.js
@@ -11,7 +11,7 @@ import {
} from '@gitlab/ui';
import { mountExtended, shallowMountExtended } from 'helpers/vue_test_utils_helper';
import { helpPagePath } from '~/helpers/help_page_helper';
-import CiEnvironmentsDropdown from '~/ci/ci_variable_list/components/ci_environments_dropdown.vue';
+import CiEnvironmentsDropdown from '~/ci/common/private/ci_environments_dropdown';
import CiVariableDrawer from '~/ci/ci_variable_list/components/ci_variable_drawer.vue';
import { awsTokenList } from '~/ci/ci_variable_list/components/ci_variable_autocomplete_tokens';
import {
@@ -113,6 +113,10 @@ describe('CI Variable Drawer', () => {
helpPagePath('ci/variables/index', { anchor: 'define-a-cicd-variable-in-the-ui' }),
);
});
+
+ it('value field is resizable', () => {
+ expect(findValueField().props('noResize')).toBe(false);
+ });
});
describe('validations', () => {
@@ -513,7 +517,7 @@ describe('CI Variable Drawer', () => {
it('title and confirm button renders the correct text', () => {
expect(findTitle().text()).toBe('Edit variable');
- expect(findConfirmBtn().text()).toBe('Edit variable');
+ expect(findConfirmBtn().text()).toBe('Save changes');
});
it('dispatches the edit-variable event', async () => {
diff --git a/spec/frontend/ci/ci_variable_list/components/ci_variable_settings_spec.js b/spec/frontend/ci/ci_variable_list/components/ci_variable_settings_spec.js
index 01d3cdf504d..078958fe44a 100644
--- a/spec/frontend/ci/ci_variable_list/components/ci_variable_settings_spec.js
+++ b/spec/frontend/ci/ci_variable_list/components/ci_variable_settings_spec.js
@@ -2,14 +2,12 @@ import { shallowMount } from '@vue/test-utils';
import CiVariableSettings from '~/ci/ci_variable_list/components/ci_variable_settings.vue';
import CiVariableTable from '~/ci/ci_variable_list/components/ci_variable_table.vue';
import CiVariableDrawer from '~/ci/ci_variable_list/components/ci_variable_drawer.vue';
-
import {
ADD_VARIABLE_ACTION,
EDIT_VARIABLE_ACTION,
projectString,
} from '~/ci/ci_variable_list/constants';
-import { mapEnvironmentNames } from '~/ci/ci_variable_list/utils';
-
+import { mapEnvironmentNames } from '~/ci/common/private/ci_environments_dropdown';
import { mockEnvs, mockVariablesWithScopes, newVariable } from '../mocks';
describe('Ci variable table', () => {
diff --git a/spec/frontend/ci/ci_variable_list/components/ci_variable_shared_spec.js b/spec/frontend/ci/ci_variable_list/components/ci_variable_shared_spec.js
index c90ff4cc682..f9c1cbe0d30 100644
--- a/spec/frontend/ci/ci_variable_list/components/ci_variable_shared_spec.js
+++ b/spec/frontend/ci/ci_variable_list/components/ci_variable_shared_spec.js
@@ -11,13 +11,11 @@ import { resolvers } from '~/ci/ci_variable_list/graphql/settings';
import ciVariableShared from '~/ci/ci_variable_list/components/ci_variable_shared.vue';
import ciVariableSettings from '~/ci/ci_variable_list/components/ci_variable_settings.vue';
import ciVariableTable from '~/ci/ci_variable_list/components/ci_variable_table.vue';
-import getProjectEnvironments from '~/ci/ci_variable_list/graphql/queries/project_environments.query.graphql';
+import { getProjectEnvironments } from '~/ci/common/private/ci_environments_dropdown';
import getAdminVariables from '~/ci/ci_variable_list/graphql/queries/variables.query.graphql';
import getGroupVariables from '~/ci/ci_variable_list/graphql/queries/group_variables.query.graphql';
import getProjectVariables from '~/ci/ci_variable_list/graphql/queries/project_variables.query.graphql';
-
import {
- ENVIRONMENT_QUERY_LIMIT,
environmentFetchErrorText,
genericMutationErrorText,
variableFetchErrorText,
@@ -230,7 +228,7 @@ describe('Ci Variable Shared Component', () => {
it('initial query is called with the correct variables', () => {
expect(mockEnvironments).toHaveBeenCalledWith({
- first: ENVIRONMENT_QUERY_LIMIT,
+ first: 30,
fullPath: '/namespace/project/',
search: '',
});
diff --git a/spec/frontend/ci/ci_variable_list/mocks.js b/spec/frontend/ci/ci_variable_list/mocks.js
index 9c9c99ad5ea..35bca408f17 100644
--- a/spec/frontend/ci/ci_variable_list/mocks.js
+++ b/spec/frontend/ci/ci_variable_list/mocks.js
@@ -20,7 +20,7 @@ import updateProjectVariable from '~/ci/ci_variable_list/graphql/mutations/proje
import getAdminVariables from '~/ci/ci_variable_list/graphql/queries/variables.query.graphql';
import getGroupVariables from '~/ci/ci_variable_list/graphql/queries/group_variables.query.graphql';
-import getProjectEnvironments from '~/ci/ci_variable_list/graphql/queries/project_environments.query.graphql';
+import { getProjectEnvironments } from '~/ci/common/private/ci_environments_dropdown';
import getProjectVariables from '~/ci/ci_variable_list/graphql/queries/project_variables.query.graphql';
export const devName = 'dev';
diff --git a/spec/frontend/ci/pipeline_details/test_reports/mock_data.js b/spec/frontend/ci/pipeline_details/test_reports/mock_data.js
index 7c9f9287c86..643863c9d24 100644
--- a/spec/frontend/ci/pipeline_details/test_reports/mock_data.js
+++ b/spec/frontend/ci/pipeline_details/test_reports/mock_data.js
@@ -1,4 +1,4 @@
-import { TestStatus } from '~/ci/pipeline_details/constants';
+import { testStatus } from '~/ci/pipeline_details/constants';
export default [
{
@@ -7,7 +7,7 @@ export default [
execution_time: 0,
name: 'Test#skipped text',
stack_trace: null,
- status: TestStatus.SKIPPED,
+ status: testStatus.SKIPPED,
system_output: null,
},
{
@@ -16,7 +16,7 @@ export default [
execution_time: 0,
name: 'Test#error text',
stack_trace: null,
- status: TestStatus.ERROR,
+ status: testStatus.ERROR,
system_output: null,
},
{
@@ -25,7 +25,7 @@ export default [
execution_time: 0,
name: 'Test#unknown text',
stack_trace: null,
- status: TestStatus.UNKNOWN,
+ status: testStatus.UNKNOWN,
system_output: null,
},
];
diff --git a/spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js b/spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js
index d318aa36bcf..836c35977b4 100644
--- a/spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js
+++ b/spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js
@@ -5,7 +5,12 @@ import Vue from 'vue';
import Vuex from 'vuex';
import testReports from 'test_fixtures/pipelines/test_report.json';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
-import { getParameterValues } from '~/lib/utils/url_utility';
+import {
+ getParameterValues,
+ updateHistory,
+ removeParams,
+ setUrlParams,
+} from '~/lib/utils/url_utility';
import EmptyState from '~/ci/pipeline_details/test_reports/empty_state.vue';
import TestReports from '~/ci/pipeline_details/test_reports/test_reports.vue';
import TestSummary from '~/ci/pipeline_details/test_reports/test_summary.vue';
@@ -17,6 +22,9 @@ Vue.use(Vuex);
jest.mock('~/lib/utils/url_utility', () => ({
...jest.requireActual('~/lib/utils/url_utility'),
getParameterValues: jest.fn().mockReturnValue([]),
+ updateHistory: jest.fn().mockName('updateHistory'),
+ removeParams: jest.fn().mockName('removeParams'),
+ setUrlParams: jest.fn().mockName('setUrlParams'),
}));
describe('Test reports app', () => {
@@ -36,7 +44,7 @@ describe('Test reports app', () => {
removeSelectedSuiteIndex: jest.fn(),
};
- const createComponent = ({ state = {} } = {}) => {
+ const createComponent = ({ state = {}, getterStubs = {} } = {}) => {
store = new Vuex.Store({
modules: {
testReports: {
@@ -48,7 +56,10 @@ describe('Test reports app', () => {
...state,
},
actions: actionSpies,
- getters,
+ getters: {
+ ...getters,
+ ...getterStubs,
+ },
},
},
});
@@ -124,24 +135,41 @@ describe('Test reports app', () => {
describe('when a suite is clicked', () => {
beforeEach(() => {
- createComponent({ state: { hasFullReport: true } });
+ document.title = 'Test reports';
+ createComponent({
+ state: { hasFullReport: true },
+ getters: { getSelectedSuite: jest.fn().mockReturnValue({ name: 'test' }) },
+ });
testSummaryTable().vm.$emit('row-click', 0);
});
- it('should call setSelectedSuiteIndex and fetchTestSuite', () => {
- expect(actionSpies.setSelectedSuiteIndex).toHaveBeenCalled();
- expect(actionSpies.fetchTestSuite).toHaveBeenCalled();
+ it('should call setSelectedSuiteIndex, fetchTestSuite and updateHistory', () => {
+ expect(actionSpies.setSelectedSuiteIndex).toHaveBeenCalledWith(expect.anything(Object), 0);
+ expect(actionSpies.fetchTestSuite).toHaveBeenCalledWith(expect.anything(Object), 0);
+ expect(setUrlParams).toHaveBeenCalledWith({ job_name: undefined });
+ expect(updateHistory).toHaveBeenCalledWith({
+ replace: true,
+ title: 'Test reports',
+ url: undefined,
+ });
});
});
describe('when clicking back to summary', () => {
beforeEach(() => {
+ document.title = 'Test reports';
createComponent({ state: { selectedSuiteIndex: 0 } });
testSummary().vm.$emit('on-back-click');
});
- it('should call removeSelectedSuiteIndex', () => {
+ it('should call removeSelectedSuiteIndex and updateHistory', () => {
expect(actionSpies.removeSelectedSuiteIndex).toHaveBeenCalled();
+ expect(removeParams).toHaveBeenCalledWith(['job_name']);
+ expect(updateHistory).toHaveBeenCalledWith({
+ replace: true,
+ title: 'Test reports',
+ url: undefined,
+ });
});
});
});
diff --git a/spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js b/spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js
index 5bdea6bbcbf..181b8df31f4 100644
--- a/spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js
+++ b/spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js
@@ -5,7 +5,7 @@ import Vuex from 'vuex';
import testReports from 'test_fixtures/pipelines/test_report.json';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import SuiteTable, { i18n } from '~/ci/pipeline_details/test_reports/test_suite_table.vue';
-import { TestStatus } from '~/ci/pipeline_details/constants';
+import { testStatus } from '~/ci/pipeline_details/constants';
import * as getters from '~/ci/pipeline_details/stores/test_reports/getters';
import { formatFilePath } from '~/ci/pipeline_details/stores/test_reports/utils';
import { ARTIFACTS_EXPIRED_ERROR_MESSAGE } from '~/ci/pipeline_details/stores/test_reports/constants';
@@ -92,10 +92,10 @@ describe('Test reports suite table', () => {
});
it.each([
- TestStatus.ERROR,
- TestStatus.FAILED,
- TestStatus.SKIPPED,
- TestStatus.SUCCESS,
+ testStatus.ERROR,
+ testStatus.FAILED,
+ testStatus.SKIPPED,
+ testStatus.SUCCESS,
'unknown',
])('renders the correct icon for test case with %s status', (status) => {
const test = testCases.findIndex((x) => x.status === status);
diff --git a/spec/frontend/ci/pipeline_editor/components/popovers/walkthrough_popover_spec.js b/spec/frontend/ci/pipeline_editor/components/popovers/walkthrough_popover_spec.js
index 37339b1c422..d379da390a4 100644
--- a/spec/frontend/ci/pipeline_editor/components/popovers/walkthrough_popover_spec.js
+++ b/spec/frontend/ci/pipeline_editor/components/popovers/walkthrough_popover_spec.js
@@ -1,24 +1,23 @@
-import { mount, shallowMount } from '@vue/test-utils';
-import Vue from 'vue';
+import { shallowMount } from '@vue/test-utils';
+import { GlButton } from '@gitlab/ui';
import WalkthroughPopover from '~/ci/pipeline_editor/components/popovers/walkthrough_popover.vue';
-import { extendedWrapper } from 'helpers/vue_test_utils_helper';
-
-Vue.config.ignoredElements = ['gl-emoji'];
describe('WalkthroughPopover component', () => {
let wrapper;
- const createComponent = (mountFn = shallowMount) => {
- return extendedWrapper(mountFn(WalkthroughPopover));
+ const createComponent = () => {
+ wrapper = shallowMount(WalkthroughPopover, {
+ components: {
+ GlEmoji: { template: '<img/>' },
+ },
+ });
};
describe('CTA button clicked', () => {
- beforeEach(async () => {
- wrapper = createComponent(mount);
- await wrapper.findByTestId('ctaBtn').trigger('click');
- });
-
it('emits "walkthrough-popover-cta-clicked" event', () => {
+ createComponent(shallowMount);
+ wrapper.findComponent(GlButton).vm.$emit('click');
+
expect(wrapper.emitted()['walkthrough-popover-cta-clicked']).toHaveLength(1);
});
});
diff --git a/spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js b/spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js
index f824dab9ae1..96de1d18aa2 100644
--- a/spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js
+++ b/spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js
@@ -18,6 +18,9 @@ describe('Pipelines CI Templates', () => {
showJenkinsCiPrompt: false,
...propsData,
},
+ components: {
+ GlEmoji: { template: '<img/>' },
+ },
stubs,
});
};
diff --git a/spec/frontend/ci/runner/components/runner_job_status_badge_spec.js b/spec/frontend/ci/runner/components/runner_job_status_badge_spec.js
index c4476d01386..adb07d4086d 100644
--- a/spec/frontend/ci/runner/components/runner_job_status_badge_spec.js
+++ b/spec/frontend/ci/runner/components/runner_job_status_badge_spec.js
@@ -35,8 +35,7 @@ describe('RunnerTypeBadge', () => {
expect(findBadge().classes().sort()).toEqual(
[
...classes,
- 'gl-border',
- 'gl-display-inline-block',
+ 'gl-inset-border-1-gray-400',
'gl-max-w-full',
'gl-text-truncate',
'gl-bg-transparent!',
diff --git a/spec/frontend/clusters/agents/components/show_spec.js b/spec/frontend/clusters/agents/components/show_spec.js
index 019f789d875..8a40c528c1d 100644
--- a/spec/frontend/clusters/agents/components/show_spec.js
+++ b/spec/frontend/clusters/agents/components/show_spec.js
@@ -76,6 +76,7 @@ describe('ClusterAgentShow', () => {
const findPaginationButtons = () => wrapper.findComponent(GlKeysetPagination);
const findTokenCount = () => wrapper.findByTestId('cluster-agent-token-count').text();
const findEESecurityTabSlot = () => wrapper.findByTestId('ee-security-tab');
+ const findEEWorkspacesTabSlot = () => wrapper.findByTestId('ee-workspaces-tab');
const findActivity = () => wrapper.findComponent(ActivityEvents);
const findIntegrationStatus = () => wrapper.findComponent(IntegrationStatus);
@@ -253,4 +254,23 @@ describe('ClusterAgentShow', () => {
expect(findEESecurityTabSlot().exists()).toBe(true);
});
});
+
+ describe('ee-workspaces-tab slot', () => {
+ it('does not display when a slot is not passed in', async () => {
+ createWrapperWithoutApollo({ clusterAgent: defaultClusterAgent });
+ await nextTick();
+ expect(findEEWorkspacesTabSlot().exists()).toBe(false);
+ });
+
+ it('does display when a slot is passed in', async () => {
+ createWrapperWithoutApollo({
+ clusterAgent: defaultClusterAgent,
+ slots: {
+ 'ee-workspaces-tab': `<gl-tab data-testid="ee-workspaces-tab">Workspaces Tab!</gl-tab>`,
+ },
+ });
+ await nextTick();
+ expect(findEEWorkspacesTabSlot().exists()).toBe(true);
+ });
+ });
});
diff --git a/spec/frontend/comment_templates/components/form_spec.js b/spec/frontend/comment_templates/components/form_spec.js
index b48feba5290..ab368a42483 100644
--- a/spec/frontend/comment_templates/components/form_spec.js
+++ b/spec/frontend/comment_templates/components/form_spec.js
@@ -74,7 +74,7 @@ describe('Comment templates form component', () => {
name: 'Test',
});
expect(trackingSpy).toHaveBeenCalledWith(
- expect.any(String),
+ undefined,
'i_code_review_saved_replies_create',
expect.any(Object),
);
@@ -135,6 +135,18 @@ describe('Comment templates form component', () => {
expect(findSubmitBtn().props('loading')).toBe(false);
});
+
+ it('shows markdown preview button', () => {
+ wrapper = createComponent();
+
+ expect(wrapper.text()).toContain('Preview');
+ });
+
+ it('allows switching to rich text editor', () => {
+ wrapper = createComponent();
+
+ expect(wrapper.text()).toContain('Switch to rich text editing');
+ });
});
describe('updates saved reply', () => {
diff --git a/spec/frontend/commit/components/signature_badge_spec.js b/spec/frontend/commit/components/signature_badge_spec.js
index d52ad2b43e2..4e8ad8e12f1 100644
--- a/spec/frontend/commit/components/signature_badge_spec.js
+++ b/spec/frontend/commit/components/signature_badge_spec.js
@@ -37,6 +37,7 @@ describe('Commit signature', () => {
describe.each`
signatureType | verificationStatus
${signatureTypes.GPG} | ${verificationStatuses.VERIFIED}
+ ${signatureTypes.GPG} | ${verificationStatuses.VERIFIED_SYSTEM}
${signatureTypes.GPG} | ${verificationStatuses.UNVERIFIED}
${signatureTypes.GPG} | ${verificationStatuses.UNVERIFIED_KEY}
${signatureTypes.GPG} | ${verificationStatuses.UNKNOWN_KEY}
diff --git a/spec/frontend/content_editor/components/wrappers/table_cell_base_spec.js b/spec/frontend/content_editor/components/wrappers/table_cell_base_spec.js
index 94628f2b2c5..9f233f2f412 100644
--- a/spec/frontend/content_editor/components/wrappers/table_cell_base_spec.js
+++ b/spec/frontend/content_editor/components/wrappers/table_cell_base_spec.js
@@ -149,6 +149,10 @@ describe('content/components/wrappers/table_cell_base', () => {
},
);
+ it('does not show alignment options for table cells', () => {
+ expect(findDropdown().text()).not.toContain('Align');
+ });
+
describe("when current row is the table's header", () => {
beforeEach(async () => {
// Remove 2 rows condition
@@ -180,6 +184,44 @@ describe('content/components/wrappers/table_cell_base', () => {
});
describe.each`
+ currentAlignment | visibleOptions | newAlignment | command
+ ${'left'} | ${['center', 'right']} | ${'center'} | ${'alignColumnCenter'}
+ ${'center'} | ${['left', 'right']} | ${'right'} | ${'alignColumnRight'}
+ ${'right'} | ${['left', 'center']} | ${'left'} | ${'alignColumnLeft'}
+ `(
+ 'when align=$currentAlignment',
+ ({ currentAlignment, visibleOptions, newAlignment, command }) => {
+ beforeEach(async () => {
+ Object.assign(node.attrs, { align: currentAlignment });
+
+ createWrapper({ cellType: 'th' });
+
+ await nextTick();
+ });
+
+ visibleOptions.forEach((alignment) => {
+ it(`shows "Align column ${alignment}" option`, () => {
+ expect(findDropdown().text()).toContain(`Align column ${alignment}`);
+ });
+ });
+
+ it(`does not show "Align column ${currentAlignment}" option`, () => {
+ expect(findDropdown().text()).not.toContain(`Align column ${currentAlignment}`);
+ });
+
+ it('allows changing alignment', async () => {
+ const mocks = mockChainedCommands(editor, [command, 'run']);
+
+ await wrapper
+ .findByRole('button', { name: `Align column ${newAlignment}` })
+ .trigger('click');
+
+ expect(mocks[command]).toHaveBeenCalled();
+ });
+ },
+ );
+
+ describe.each`
attrs | rect
${{ rowspan: 2 }} | ${{ top: 0, left: 0, bottom: 2, right: 1 }}
${{ colspan: 2 }} | ${{ top: 0, left: 0, bottom: 1, right: 2 }}
diff --git a/spec/frontend/content_editor/extensions/copy_paste_spec.js b/spec/frontend/content_editor/extensions/copy_paste_spec.js
index 6969f4985a1..801385422d7 100644
--- a/spec/frontend/content_editor/extensions/copy_paste_spec.js
+++ b/spec/frontend/content_editor/extensions/copy_paste_spec.js
@@ -92,7 +92,7 @@ describe('content_editor/extensions/copy_paste', () => {
return Object.assign(new Event(eventName), {
clipboardData: {
types,
- getData: jest.fn((type) => data[type] || defaultData[type]),
+ getData: jest.fn((type) => data[type] ?? defaultData[type]),
setData: jest.fn(),
clearData: jest.fn(),
},
@@ -190,6 +190,17 @@ describe('content_editor/extensions/copy_paste', () => {
});
});
+ it('does not handle pasting when textContent is empty (eg. images)', async () => {
+ expect(
+ await triggerPasteEventHandler(
+ buildClipboardEvent({
+ types: ['text/plain'],
+ data: { 'text/plain': '' },
+ }),
+ ),
+ ).toBe(false);
+ });
+
describe('when pasting raw markdown source', () => {
it('shows a loading indicator while markdown is being processed', async () => {
await triggerPasteEventHandler(buildClipboardEvent());
diff --git a/spec/frontend/content_editor/extensions/task_item_spec.js b/spec/frontend/content_editor/extensions/task_item_spec.js
new file mode 100644
index 00000000000..a38a68112cd
--- /dev/null
+++ b/spec/frontend/content_editor/extensions/task_item_spec.js
@@ -0,0 +1,115 @@
+import TaskList from '~/content_editor/extensions/task_list';
+import TaskItem from '~/content_editor/extensions/task_item';
+import { createTestEditor, createDocBuilder } from '../test_utils';
+
+describe('content_editor/extensions/task_item', () => {
+ let tiptapEditor;
+ let doc;
+ let p;
+ let taskList;
+ let taskItem;
+
+ beforeEach(() => {
+ tiptapEditor = createTestEditor({ extensions: [TaskList, TaskItem] });
+
+ ({
+ builders: { doc, p, taskList, taskItem },
+ } = createDocBuilder({
+ tiptapEditor,
+ names: {
+ taskItem: { nodeType: TaskItem.name },
+ taskList: { nodeType: TaskList.name },
+ },
+ }));
+ });
+
+ it('renders a regular task item for non-inapplicable items', () => {
+ const initialDoc = doc(taskList(taskItem(p('foo'))));
+
+ tiptapEditor.commands.setContent(initialDoc.toJSON());
+
+ expect(tiptapEditor.view.dom.querySelector('li')).toMatchInlineSnapshot(`
+ <li
+ data-checked="false"
+ dir="auto"
+ >
+ <label>
+ <input
+ type="checkbox"
+ />
+ <span />
+ </label>
+ <div>
+ <p
+ dir="auto"
+ >
+ foo
+ </p>
+ </div>
+ </li>
+ `);
+ });
+
+ it('renders task item as disabled if it is inapplicable', () => {
+ const initialDoc = doc(taskList(taskItem({ inapplicable: true }, p('foo'))));
+
+ tiptapEditor.commands.setContent(initialDoc.toJSON());
+
+ expect(tiptapEditor.view.dom.querySelector('li')).toMatchInlineSnapshot(`
+ <li
+ data-checked="false"
+ data-inapplicable="true"
+ dir="auto"
+ >
+ <label>
+ <input
+ disabled=""
+ type="checkbox"
+ />
+ <span />
+ </label>
+ <div>
+ <p
+ dir="auto"
+ >
+ foo
+ </p>
+ </div>
+ </li>
+ `);
+ });
+
+ it('ignores any <s> tags in the task item', () => {
+ tiptapEditor.commands.setContent(`
+ <ul dir="auto" class="task-list">
+ <li class="task-list-item inapplicable">
+ <input disabled="" data-inapplicable="" class="task-list-item-checkbox" type="checkbox">
+ <s>foo</s>
+ </li>
+ </ul>
+ `);
+
+ expect(tiptapEditor.view.dom.querySelector('li')).toMatchInlineSnapshot(`
+ <li
+ data-checked="false"
+ data-inapplicable="true"
+ dir="auto"
+ >
+ <label>
+ <input
+ disabled=""
+ type="checkbox"
+ />
+ <span />
+ </label>
+ <div>
+ <p
+ dir="auto"
+ >
+ foo
+ </p>
+ </div>
+ </li>
+ `);
+ });
+});
diff --git a/spec/frontend/content_editor/services/markdown_serializer_spec.js b/spec/frontend/content_editor/services/markdown_serializer_spec.js
index c329a12bcc4..4ae39f7a5a7 100644
--- a/spec/frontend/content_editor/services/markdown_serializer_spec.js
+++ b/spec/frontend/content_editor/services/markdown_serializer_spec.js
@@ -660,6 +660,24 @@ var a = 0;
);
});
+ it('correctly serializes a task list with inapplicable items', () => {
+ expect(
+ serialize(
+ taskList(
+ taskItem({ checked: true }, paragraph('list item 1')),
+ taskItem({ checked: true, inapplicable: true }, paragraph('list item 2')),
+ taskItem(paragraph('list item 3')),
+ ),
+ ),
+ ).toBe(
+ `
+* [x] list item 1
+* [~] list item 2
+* [ ] list item 3
+ `.trim(),
+ );
+ });
+
it('correctly serializes bullet task list with different bullet styles', () => {
expect(
serialize(
@@ -1080,6 +1098,38 @@ _An elephant at sunset_
);
});
+ it('correctly serializes a table with inline content with alignment', () => {
+ expect(
+ serialize(
+ table(
+ // each table cell must contain at least one paragraph
+ tableRow(
+ tableHeader({ align: 'center' }, paragraph('header')),
+ tableHeader({ align: 'right' }, paragraph('header')),
+ tableHeader({ align: 'left' }, paragraph('header')),
+ ),
+ tableRow(
+ tableCell(paragraph('cell')),
+ tableCell(paragraph('cell')),
+ tableCell(paragraph('cell')),
+ ),
+ tableRow(
+ tableCell(paragraph('cell')),
+ tableCell(paragraph('cell')),
+ tableCell(paragraph('cell')),
+ ),
+ ),
+ ).trim(),
+ ).toBe(
+ `
+| header | header | header |
+|:------:|-------:|--------|
+| cell | cell | cell |
+| cell | cell | cell |
+ `.trim(),
+ );
+ });
+
it('correctly serializes a table with a pipe in a cell', () => {
expect(
serialize(
diff --git a/spec/frontend/content_editor/services/markdown_sourcemap_spec.js b/spec/frontend/content_editor/services/markdown_sourcemap_spec.js
index 4428fa682e7..f904f138e85 100644
--- a/spec/frontend/content_editor/services/markdown_sourcemap_spec.js
+++ b/spec/frontend/content_editor/services/markdown_sourcemap_spec.js
@@ -20,6 +20,17 @@ const BULLET_LIST_HTML = `<ul data-sourcepos="1:1-3:24" dir="auto">
</li>
</ul>`;
+const MALFORMED_BULLET_LIST_HTML =
+ `<ul data-sourcepos="1:1-3:24" dir="auto">
+ <li data-sourcepos="1:1-1:13">list item 1</li>` +
+ // below line has malformed sourcepos
+ `<li data-sourcepos="5:1-5:24">list item 2
+ <ul data-sourcepos="3:3-3:24">
+ <li data-sourcepos="3:3-3:24">embedded list item 3</li>
+ </ul>
+ </li>
+</ul>`;
+
const BULLET_TASK_LIST_MARKDOWN = `- [ ] list item 1
+ [x] checked list item 2
+ [ ] embedded list item 1
@@ -85,6 +96,21 @@ const bulletListDoc = () =>
),
);
+const bulletListDocWithMalformedSourcepos = () =>
+ doc(
+ bulletList(
+ { bullet: '+', source: '+ list item 1\n+ list item 2\n - embedded list item 3' },
+ listItem({ source: '+ list item 1' }, paragraph('list item 1')),
+ listItem(
+ paragraph('list item 2'),
+ bulletList(
+ { bullet: '-', source: '- embedded list item 3' },
+ listItem({ source: '- embedded list item 3' }, paragraph('embedded list item 3')),
+ ),
+ ),
+ ),
+ );
+
const bulletTaskListDoc = () =>
doc(
taskList(
@@ -138,9 +164,10 @@ describe('content_editor/services/markdown_sourcemap', () => {
});
it.each`
- description | sourceMarkdown | sourceHTML | expectedDoc
- ${'bullet list'} | ${BULLET_LIST_MARKDOWN} | ${BULLET_LIST_HTML} | ${bulletListDoc}
- ${'bullet task list'} | ${BULLET_TASK_LIST_MARKDOWN} | ${BULLET_TASK_LIST_HTML} | ${bulletTaskListDoc}
+ description | sourceMarkdown | sourceHTML | expectedDoc
+ ${'bullet list'} | ${BULLET_LIST_MARKDOWN} | ${BULLET_LIST_HTML} | ${bulletListDoc}
+ ${'bullet list with malformed sourcepos'} | ${BULLET_LIST_MARKDOWN} | ${MALFORMED_BULLET_LIST_HTML} | ${bulletListDocWithMalformedSourcepos}
+ ${'bullet task list'} | ${BULLET_TASK_LIST_MARKDOWN} | ${BULLET_TASK_LIST_HTML} | ${bulletTaskListDoc}
`(
'gets markdown source for a rendered $description',
async ({ sourceMarkdown, sourceHTML, expectedDoc }) => {
diff --git a/spec/frontend/custom_emoji/components/__snapshots__/list_spec.js.snap b/spec/frontend/custom_emoji/components/__snapshots__/list_spec.js.snap
index c69547deb1c..a43b4aae586 100644
--- a/spec/frontend/custom_emoji/components/__snapshots__/list_spec.js.snap
+++ b/spec/frontend/custom_emoji/components/__snapshots__/list_spec.js.snap
@@ -141,7 +141,7 @@ exports[`Custom emoji settings list component renders table of custom emoji 1`]
class="gl-vertical-align-middle!"
role="cell"
>
- <gl-emoji
+ <div
data-fallback-src="https://gitlab.com/custom_emoji/custom_emoji/-/raw/main/img/confused_husky.gif"
data-name="confused_husky"
data-unicode-version="custom"
diff --git a/spec/frontend/custom_emoji/components/list_spec.js b/spec/frontend/custom_emoji/components/list_spec.js
index b5729d59464..4177aea2d33 100644
--- a/spec/frontend/custom_emoji/components/list_spec.js
+++ b/spec/frontend/custom_emoji/components/list_spec.js
@@ -21,6 +21,9 @@ function createComponent(propsData = {}) {
userPermissions: { createCustomEmoji: true },
...propsData,
},
+ stubs: {
+ GlEmoji: { template: '<div/>' },
+ },
});
}
diff --git a/spec/frontend/deploy_keys/components/action_btn_spec.js b/spec/frontend/deploy_keys/components/action_btn_spec.js
index c4c7a9aea2d..e94734da4ce 100644
--- a/spec/frontend/deploy_keys/components/action_btn_spec.js
+++ b/spec/frontend/deploy_keys/components/action_btn_spec.js
@@ -1,28 +1,44 @@
+import VueApollo from 'vue-apollo';
+import Vue, { nextTick } from 'vue';
import { GlButton } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
-import { nextTick } from 'vue';
import data from 'test_fixtures/deploy_keys/keys.json';
+import waitForPromises from 'helpers/wait_for_promises';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import enableKeyMutation from '~/deploy_keys/graphql/mutations/enable_key.mutation.graphql';
import actionBtn from '~/deploy_keys/components/action_btn.vue';
-import eventHub from '~/deploy_keys/eventhub';
+
+Vue.use(VueApollo);
describe('Deploy keys action btn', () => {
const deployKey = data.enabled_keys[0];
let wrapper;
+ let enableKeyMock;
const findButton = () => wrapper.findComponent(GlButton);
beforeEach(() => {
+ enableKeyMock = jest.fn();
+
+ const mockResolvers = {
+ Mutation: {
+ enableKey: enableKeyMock,
+ },
+ };
+
+ const apolloProvider = createMockApollo([], mockResolvers);
wrapper = shallowMount(actionBtn, {
propsData: {
deployKey,
- type: 'enable',
category: 'primary',
variant: 'confirm',
icon: 'edit',
+ mutation: enableKeyMutation,
},
slots: {
default: 'Enable',
},
+ apolloProvider,
});
});
@@ -38,13 +54,26 @@ describe('Deploy keys action btn', () => {
});
});
- it('sends eventHub event with btn type', async () => {
- jest.spyOn(eventHub, '$emit').mockImplementation(() => {});
-
+ it('fires the passed mutation', async () => {
findButton().vm.$emit('click');
await nextTick();
- expect(eventHub.$emit).toHaveBeenCalledWith('enable.key', deployKey, expect.anything());
+ expect(enableKeyMock).toHaveBeenCalledWith(
+ expect.anything(),
+ { id: deployKey.id },
+ expect.anything(),
+ expect.anything(),
+ );
+ });
+
+ it('emits the mutation error', async () => {
+ const error = new Error('oops!');
+ enableKeyMock.mockRejectedValue(error);
+ findButton().vm.$emit('click');
+
+ await waitForPromises();
+
+ expect(wrapper.emitted('error')).toEqual([[error]]);
});
it('shows loading spinner after click', async () => {
diff --git a/spec/frontend/deploy_keys/components/app_spec.js b/spec/frontend/deploy_keys/components/app_spec.js
index de4112134ce..5e012bc1c51 100644
--- a/spec/frontend/deploy_keys/components/app_spec.js
+++ b/spec/frontend/deploy_keys/components/app_spec.js
@@ -1,28 +1,45 @@
+import VueApollo from 'vue-apollo';
+import Vue, { nextTick } from 'vue';
import { mount } from '@vue/test-utils';
import MockAdapter from 'axios-mock-adapter';
-import { nextTick } from 'vue';
-import data from 'test_fixtures/deploy_keys/keys.json';
+import { GlPagination } from '@gitlab/ui';
+import enabledKeys from 'test_fixtures/deploy_keys/enabled_keys.json';
+import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises';
-import { TEST_HOST } from 'spec/test_constants';
+import { captureException } from '~/sentry/sentry_browser_wrapper';
+import { mapDeployKey } from '~/deploy_keys/graphql/resolvers';
+import deployKeysQuery from '~/deploy_keys/graphql/queries/deploy_keys.query.graphql';
import deployKeysApp from '~/deploy_keys/components/app.vue';
import ConfirmModal from '~/deploy_keys/components/confirm_modal.vue';
import NavigationTabs from '~/vue_shared/components/navigation_tabs.vue';
-import eventHub from '~/deploy_keys/eventhub';
import axios from '~/lib/utils/axios_utils';
-import { HTTP_STATUS_OK } from '~/lib/utils/http_status';
-const TEST_ENDPOINT = `${TEST_HOST}/dummy/`;
+jest.mock('~/sentry/sentry_browser_wrapper');
+
+Vue.use(VueApollo);
describe('Deploy keys app component', () => {
let wrapper;
let mock;
+ let deployKeyMock;
+ let currentPageMock;
+ let currentScopeMock;
+ let confirmRemoveKeyMock;
+ let pageInfoMock;
+ let pageMutationMock;
+ let scopeMutationMock;
+ let disableKeyMock;
+ let resolvers;
const mountComponent = () => {
+ const apolloProvider = createMockApollo([[deployKeysQuery, deployKeyMock]], resolvers);
+
wrapper = mount(deployKeysApp, {
propsData: {
- endpoint: TEST_ENDPOINT,
+ projectPath: 'test/project',
projectId: '8',
},
+ apolloProvider,
});
return waitForPromises();
@@ -30,7 +47,28 @@ describe('Deploy keys app component', () => {
beforeEach(() => {
mock = new MockAdapter(axios);
- mock.onGet(TEST_ENDPOINT).reply(HTTP_STATUS_OK, data);
+ deployKeyMock = jest.fn();
+ currentPageMock = jest.fn();
+ currentScopeMock = jest.fn();
+ confirmRemoveKeyMock = jest.fn();
+ pageInfoMock = jest.fn();
+ scopeMutationMock = jest.fn();
+ pageMutationMock = jest.fn();
+ disableKeyMock = jest.fn();
+
+ resolvers = {
+ Query: {
+ currentPage: currentPageMock,
+ currentScope: currentScopeMock,
+ deployKeyToRemove: confirmRemoveKeyMock,
+ pageInfo: pageInfoMock,
+ },
+ Mutation: {
+ currentPage: pageMutationMock,
+ currentScope: scopeMutationMock,
+ disableKey: disableKeyMock,
+ },
+ };
});
afterEach(() => {
@@ -43,8 +81,7 @@ describe('Deploy keys app component', () => {
const findNavigationTabs = () => wrapper.findComponent(NavigationTabs);
it('renders loading icon while waiting for request', async () => {
- mock.onGet(TEST_ENDPOINT).reply(() => new Promise());
-
+ deployKeyMock.mockReturnValue(new Promise(() => {}));
mountComponent();
await nextTick();
@@ -52,85 +89,190 @@ describe('Deploy keys app component', () => {
});
it('renders keys panels', async () => {
+ const deployKeys = enabledKeys.keys.map(mapDeployKey);
+ deployKeyMock.mockReturnValue({
+ data: {
+ project: { id: 1, deployKeys, __typename: 'Project' },
+ },
+ });
await mountComponent();
expect(findKeyPanels().length).toBe(3);
});
- it.each`
- selector
- ${'.js-deployKeys-tab-enabled_keys'}
- ${'.js-deployKeys-tab-available_project_keys'}
- ${'.js-deployKeys-tab-public_keys'}
- `('$selector title exists', ({ selector }) => {
- return mountComponent().then(() => {
+ describe.each`
+ scope
+ ${'enabledKeys'}
+ ${'availableProjectKeys'}
+ ${'availablePublicKeys'}
+ `('tab $scope', ({ scope }) => {
+ let selector;
+
+ beforeEach(async () => {
+ selector = `.js-deployKeys-tab-${scope}`;
+ const deployKeys = enabledKeys.keys.map(mapDeployKey);
+ deployKeyMock.mockReturnValue({
+ data: {
+ project: { id: 1, deployKeys, __typename: 'Project' },
+ },
+ });
+
+ await mountComponent();
+ });
+
+ it('displays the title', () => {
const element = wrapper.find(selector);
expect(element.exists()).toBe(true);
});
+
+ it('triggers changing the scope on click', async () => {
+ await findNavigationTabs().vm.$emit('onChangeTab', scope);
+
+ expect(scopeMutationMock).toHaveBeenCalledWith(
+ expect.anything(),
+ { scope },
+ expect.anything(),
+ expect.anything(),
+ );
+ });
});
- it('does not render key panels when keys object is empty', () => {
- mock.onGet(TEST_ENDPOINT).reply(HTTP_STATUS_OK, []);
+ it('captures a failed tab change', async () => {
+ const scope = 'fake scope';
+ const error = new Error('fail!');
- return mountComponent().then(() => {
- expect(findKeyPanels().length).toBe(0);
+ const deployKeys = enabledKeys.keys.map(mapDeployKey);
+ deployKeyMock.mockReturnValue({
+ data: {
+ project: { id: 1, deployKeys, __typename: 'Project' },
+ },
});
+
+ scopeMutationMock.mockRejectedValue(error);
+ await mountComponent();
+ await findNavigationTabs().vm.$emit('onChangeTab', scope);
+ await waitForPromises();
+
+ expect(captureException).toHaveBeenCalledWith(error, { tags: { deployKeyScope: scope } });
});
it('hasKeys returns true when there are keys', async () => {
+ const deployKeys = enabledKeys.keys.map(mapDeployKey);
+ deployKeyMock.mockReturnValue({
+ data: {
+ project: { id: 1, deployKeys, __typename: 'Project' },
+ },
+ });
await mountComponent();
expect(findNavigationTabs().exists()).toBe(true);
expect(findLoadingIcon().exists()).toBe(false);
});
- describe('enabling and disabling keys', () => {
- const key = data.public_keys[0];
- let getMethodMock;
- let putMethodMock;
+ describe('disabling keys', () => {
+ const key = mapDeployKey(enabledKeys.keys[0]);
+
+ beforeEach(() => {
+ deployKeyMock.mockReturnValue({
+ data: {
+ project: { id: 1, deployKeys: [key], __typename: 'Project' },
+ },
+ });
+ });
- const removeKey = async (keyEvent) => {
- eventHub.$emit(keyEvent, key, () => {});
+ it('re-fetches deploy keys when disabling a key', async () => {
+ confirmRemoveKeyMock.mockReturnValue(key);
+ await mountComponent();
+ expect(deployKeyMock).toHaveBeenCalledTimes(1);
await nextTick();
expect(findModal().props('visible')).toBe(true);
findModal().vm.$emit('remove');
- };
-
- beforeEach(() => {
- getMethodMock = jest.spyOn(axios, 'get');
- putMethodMock = jest.spyOn(axios, 'put');
+ await waitForPromises();
+ expect(deployKeyMock).toHaveBeenCalledTimes(2);
});
+ });
- afterEach(() => {
- getMethodMock.mockClear();
- putMethodMock.mockClear();
- });
+ describe('pagination', () => {
+ const key = mapDeployKey(enabledKeys.keys[0]);
+ let page;
+ let pageInfo;
+ let glPagination;
- it('re-fetches deploy keys when enabling a key', async () => {
- await mountComponent();
+ beforeEach(async () => {
+ page = 2;
+ pageInfo = {
+ total: 20,
+ perPage: 5,
+ nextPage: 3,
+ page,
+ previousPage: 1,
+ __typename: 'LocalPageInfo',
+ };
+ deployKeyMock.mockReturnValue({
+ data: {
+ project: { id: 1, deployKeys: [], __typename: 'Project' },
+ },
+ });
- eventHub.$emit('enable.key', key);
+ confirmRemoveKeyMock.mockReturnValue(key);
+ pageInfoMock.mockReturnValue(pageInfo);
+ currentPageMock.mockReturnValue(page);
+ await mountComponent();
+ glPagination = wrapper.findComponent(GlPagination);
+ });
- expect(putMethodMock).toHaveBeenCalledWith(`${TEST_ENDPOINT}/${key.id}/enable`);
- expect(getMethodMock).toHaveBeenCalled();
+ it('shows pagination with correct page info', () => {
+ expect(glPagination.exists()).toBe(true);
+ expect(glPagination.props()).toMatchObject({
+ totalItems: pageInfo.total,
+ perPage: pageInfo.perPage,
+ value: page,
+ });
});
- it('re-fetches deploy keys when disabling a key', async () => {
- await mountComponent();
+ it('moves back a page', async () => {
+ await glPagination.vm.$emit('previous');
- await removeKey('disable.key');
+ expect(pageMutationMock).toHaveBeenCalledWith(
+ expect.anything(),
+ { page: page - 1 },
+ expect.anything(),
+ expect.anything(),
+ );
+ });
+
+ it('moves forward a page', async () => {
+ await glPagination.vm.$emit('next');
- expect(putMethodMock).toHaveBeenCalledWith(`${TEST_ENDPOINT}/${key.id}/disable`);
- expect(getMethodMock).toHaveBeenCalled();
+ expect(pageMutationMock).toHaveBeenCalledWith(
+ expect.anything(),
+ { page: page + 1 },
+ expect.anything(),
+ expect.anything(),
+ );
});
- it('calls disableKey when removing a key', async () => {
- await mountComponent();
+ it('moves to specified page', async () => {
+ await glPagination.vm.$emit('input', 5);
+
+ expect(pageMutationMock).toHaveBeenCalledWith(
+ expect.anything(),
+ { page: 5 },
+ expect.anything(),
+ expect.anything(),
+ );
+ });
- await removeKey('remove.key');
+ it('moves a page back if there are no more keys on this page', async () => {
+ await findModal().vm.$emit('remove');
+ await waitForPromises();
- expect(putMethodMock).toHaveBeenCalledWith(`${TEST_ENDPOINT}/${key.id}/disable`);
- expect(getMethodMock).toHaveBeenCalled();
+ expect(pageMutationMock).toHaveBeenCalledWith(
+ expect.anything(),
+ { page: page - 1 },
+ expect.anything(),
+ expect.anything(),
+ );
});
});
});
diff --git a/spec/frontend/deploy_keys/components/key_spec.js b/spec/frontend/deploy_keys/components/key_spec.js
index e57da4df150..5410914da04 100644
--- a/spec/frontend/deploy_keys/components/key_spec.js
+++ b/spec/frontend/deploy_keys/components/key_spec.js
@@ -1,64 +1,85 @@
+import VueApollo from 'vue-apollo';
+import Vue, { nextTick } from 'vue';
import { mount } from '@vue/test-utils';
-import { nextTick } from 'vue';
-import data from 'test_fixtures/deploy_keys/keys.json';
+import enabledKeys from 'test_fixtures/deploy_keys/enabled_keys.json';
+import availablePublicKeys from 'test_fixtures/deploy_keys/available_public_keys.json';
+import { createAlert } from '~/alert';
+import { mapDeployKey } from '~/deploy_keys/graphql/resolvers';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import waitForPromises from 'helpers/wait_for_promises';
import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
import key from '~/deploy_keys/components/key.vue';
-import DeployKeysStore from '~/deploy_keys/store';
+import ActionBtn from '~/deploy_keys/components/action_btn.vue';
import { getTimeago, localeDateFormat } from '~/lib/utils/datetime_utility';
+jest.mock('~/alert');
+
+Vue.use(VueApollo);
+
describe('Deploy keys key', () => {
let wrapper;
- let store;
+ let currentScopeMock;
const findTextAndTrim = (selector) => wrapper.find(selector).text().trim();
- const createComponent = (propsData) => {
+ const createComponent = async (propsData) => {
+ const resolvers = {
+ Query: {
+ currentScope: currentScopeMock,
+ },
+ };
+
+ const apolloProvider = createMockApollo([], resolvers);
wrapper = mount(key, {
propsData: {
- store,
endpoint: 'https://test.host/dummy/endpoint',
...propsData,
},
+ apolloProvider,
directives: {
GlTooltip: createMockDirective('gl-tooltip'),
},
});
+ await nextTick();
};
beforeEach(() => {
- store = new DeployKeysStore();
- store.keys = data;
+ currentScopeMock = jest.fn();
});
describe('enabled key', () => {
- const deployKey = data.enabled_keys[0];
+ const deployKey = mapDeployKey(enabledKeys.keys[0]);
- it('renders the keys title', () => {
- createComponent({ deployKey });
+ beforeEach(() => {
+ currentScopeMock.mockReturnValue('enabledKeys');
+ });
+
+ it('renders the keys title', async () => {
+ await createComponent({ deployKey });
expect(findTextAndTrim('.title')).toContain('My title');
});
- it('renders human friendly formatted created date', () => {
- createComponent({ deployKey });
+ it('renders human friendly formatted created date', async () => {
+ await createComponent({ deployKey });
expect(findTextAndTrim('.key-created-at')).toBe(
- `${getTimeago().format(deployKey.created_at)}`,
+ `${getTimeago().format(deployKey.createdAt)}`,
);
});
- it('renders human friendly expiration date', () => {
+ it('renders human friendly expiration date', async () => {
const expiresAt = new Date();
- createComponent({
- deployKey: { ...deployKey, expires_at: expiresAt },
+ await createComponent({
+ deployKey: { ...deployKey, expiresAt },
});
expect(findTextAndTrim('.key-expires-at')).toBe(`${getTimeago().format(expiresAt)}`);
});
- it('shows tooltip for expiration date', () => {
+ it('shows tooltip for expiration date', async () => {
const expiresAt = new Date();
- createComponent({
- deployKey: { ...deployKey, expires_at: expiresAt },
+ await createComponent({
+ deployKey: { ...deployKey, expiresAt },
});
const expiryComponent = wrapper.find('[data-testid="expires-at-tooltip"]');
@@ -68,55 +89,57 @@ describe('Deploy keys key', () => {
`${localeDateFormat.asDateTimeFull.format(expiresAt)}`,
);
});
- it('renders never when no expiration date', () => {
- createComponent({
- deployKey: { ...deployKey, expires_at: null },
+ it('renders never when no expiration date', async () => {
+ await createComponent({
+ deployKey: { ...deployKey, expiresAt: null },
});
expect(wrapper.find('[data-testid="expires-never"]').exists()).toBe(true);
});
- it('shows pencil button for editing', () => {
- createComponent({ deployKey });
+ it('shows pencil button for editing', async () => {
+ await createComponent({ deployKey });
expect(wrapper.find('.btn [data-testid="pencil-icon"]').exists()).toBe(true);
});
- it('shows disable button when the project is not deletable', () => {
- createComponent({ deployKey });
+ it('shows disable button when the project is not deletable', async () => {
+ await createComponent({ deployKey });
+ await waitForPromises();
expect(wrapper.find('.btn [data-testid="cancel-icon"]').exists()).toBe(true);
});
- it('shows remove button when the project is deletable', () => {
- createComponent({
- deployKey: { ...deployKey, destroyed_when_orphaned: true, almost_orphaned: true },
+ it('shows remove button when the project is deletable', async () => {
+ await createComponent({
+ deployKey: { ...deployKey, destroyedWhenOrphaned: true, almostOrphaned: true },
});
+ await waitForPromises();
expect(wrapper.find('.btn [data-testid="remove-icon"]').exists()).toBe(true);
});
});
describe('deploy key labels', () => {
- const deployKey = data.enabled_keys[0];
- const deployKeysProjects = [...deployKey.deploy_keys_projects];
- it('shows write access title when key has write access', () => {
- deployKeysProjects[0] = { ...deployKeysProjects[0], can_push: true };
- createComponent({ deployKey: { ...deployKey, deploy_keys_projects: deployKeysProjects } });
+ const deployKey = mapDeployKey(enabledKeys.keys[0]);
+ const deployKeysProjects = [...deployKey.deployKeysProjects];
+ it('shows write access title when key has write access', async () => {
+ deployKeysProjects[0] = { ...deployKeysProjects[0], canPush: true };
+ await createComponent({ deployKey: { ...deployKey, deployKeysProjects } });
expect(wrapper.find('.deploy-project-label').attributes('title')).toBe(
'Grant write permissions to this key',
);
});
- it('does not show write access title when key has write access', () => {
- deployKeysProjects[0] = { ...deployKeysProjects[0], can_push: false };
- createComponent({ deployKey: { ...deployKey, deploy_keys_projects: deployKeysProjects } });
+ it('does not show write access title when key has write access', async () => {
+ deployKeysProjects[0] = { ...deployKeysProjects[0], canPush: false };
+ await createComponent({ deployKey: { ...deployKey, deployKeysProjects } });
expect(wrapper.find('.deploy-project-label').attributes('title')).toBe('Read access only');
});
- it('shows expandable button if more than two projects', () => {
- createComponent({ deployKey });
+ it('shows expandable button if more than two projects', async () => {
+ await createComponent({ deployKey });
const labels = wrapper.findAll('.deploy-project-label');
expect(labels.length).toBe(2);
@@ -125,53 +148,68 @@ describe('Deploy keys key', () => {
});
it('expands all project labels after click', async () => {
- createComponent({ deployKey });
- const { length } = deployKey.deploy_keys_projects;
+ await createComponent({ deployKey });
+ const { length } = deployKey.deployKeysProjects;
wrapper.findAll('.deploy-project-label').at(1).trigger('click');
await nextTick();
const labels = wrapper.findAll('.deploy-project-label');
- expect(labels.length).toBe(length);
+ expect(labels).toHaveLength(length);
expect(labels.at(1).text()).not.toContain(`+${length} others`);
expect(labels.at(1).attributes('title')).not.toContain('Expand');
});
- it('shows two projects', () => {
- createComponent({
- deployKey: { ...deployKey, deploy_keys_projects: [...deployKeysProjects].slice(0, 2) },
+ it('shows two projects', async () => {
+ await createComponent({
+ deployKey: { ...deployKey, deployKeysProjects: [...deployKeysProjects].slice(0, 2) },
});
const labels = wrapper.findAll('.deploy-project-label');
expect(labels.length).toBe(2);
- expect(labels.at(1).text()).toContain(deployKey.deploy_keys_projects[1].project.full_name);
+ expect(labels.at(1).text()).toContain(deployKey.deployKeysProjects[1].project.fullName);
});
});
describe('public keys', () => {
- const deployKey = data.public_keys[0];
+ const deployKey = mapDeployKey(availablePublicKeys.keys[0]);
- it('renders deploy keys without any enabled projects', () => {
- createComponent({ deployKey: { ...deployKey, deploy_keys_projects: [] } });
+ it('renders deploy keys without any enabled projects', async () => {
+ await createComponent({ deployKey: { ...deployKey, deployKeysProjects: [] } });
expect(findTextAndTrim('.deploy-project-list')).toBe('None');
});
- it('shows enable button', () => {
- createComponent({ deployKey });
+ it('shows enable button', async () => {
+ await createComponent({ deployKey });
expect(findTextAndTrim('.btn')).toBe('Enable');
});
- it('shows pencil button for editing', () => {
- createComponent({ deployKey });
- expect(wrapper.find('.btn [data-testid="pencil-icon"]').exists()).toBe(true);
+ it('shows an error on enable failure', async () => {
+ await createComponent({ deployKey });
+
+ const error = new Error('oops!');
+ wrapper.findComponent(ActionBtn).vm.$emit('error', error);
+
+ await nextTick();
+
+ expect(createAlert).toHaveBeenCalledWith({
+ message: 'Error enabling deploy key',
+ captureError: true,
+ error,
+ });
});
- it('shows disable button when key is enabled', () => {
- store.keys.enabled_keys.push(deployKey);
+ it('shows pencil button for editing', async () => {
+ await createComponent({ deployKey });
+ expect(wrapper.find('.btn [data-testid="pencil-icon"]').exists()).toBe(true);
+ });
- createComponent({ deployKey });
+ it('shows disable button when key is enabled', async () => {
+ currentScopeMock.mockReturnValue('enabledKeys');
+ await createComponent({ deployKey });
+ await waitForPromises();
expect(wrapper.find('.btn [data-testid="cancel-icon"]').exists()).toBe(true);
});
diff --git a/spec/frontend/deploy_keys/components/keys_panel_spec.js b/spec/frontend/deploy_keys/components/keys_panel_spec.js
index e63b269fe23..6e653010d8f 100644
--- a/spec/frontend/deploy_keys/components/keys_panel_spec.js
+++ b/spec/frontend/deploy_keys/components/keys_panel_spec.js
@@ -1,7 +1,9 @@
import { mount } from '@vue/test-utils';
-import data from 'test_fixtures/deploy_keys/keys.json';
+import enabledKeys from 'test_fixtures/deploy_keys/enabled_keys.json';
import deployKeysPanel from '~/deploy_keys/components/keys_panel.vue';
-import DeployKeysStore from '~/deploy_keys/store';
+import { mapDeployKey } from '~/deploy_keys/graphql/resolvers';
+
+const keys = enabledKeys.keys.map(mapDeployKey);
describe('Deploy keys panel', () => {
let wrapper;
@@ -9,14 +11,11 @@ describe('Deploy keys panel', () => {
const findTableRowHeader = () => wrapper.find('.table-row-header');
const mountComponent = (props) => {
- const store = new DeployKeysStore();
- store.keys = data;
wrapper = mount(deployKeysPanel, {
propsData: {
title: 'test',
- keys: data.enabled_keys,
+ keys,
showHelpBox: true,
- store,
endpoint: 'https://test.host/dummy/endpoint',
...props,
},
@@ -25,7 +24,7 @@ describe('Deploy keys panel', () => {
it('renders list of keys', () => {
mountComponent();
- expect(wrapper.findAll('.deploy-key').length).toBe(wrapper.vm.keys.length);
+ expect(wrapper.findAll('.deploy-key').length).toBe(keys.length);
});
it('renders table header', () => {
diff --git a/spec/frontend/deploy_keys/graphql/resolvers_spec.js b/spec/frontend/deploy_keys/graphql/resolvers_spec.js
index 458232697cb..486cbc525d1 100644
--- a/spec/frontend/deploy_keys/graphql/resolvers_spec.js
+++ b/spec/frontend/deploy_keys/graphql/resolvers_spec.js
@@ -64,7 +64,7 @@ describe('~/deploy_keys/graphql/resolvers', () => {
const scope = 'enabledKeys';
const page = 2;
mock
- .onGet(ENDPOINTS.enabledKeysEndpoint, { params: { page } })
+ .onGet(ENDPOINTS.enabledKeysEndpoint, { params: { page, per_page: 5 } })
.reply(HTTP_STATUS_OK, { keys: [key] });
const keys = await mockResolvers.Project.deployKeys(null, { scope, page }, { client });
@@ -157,6 +157,11 @@ describe('~/deploy_keys/graphql/resolvers', () => {
data: { currentPage: 1 },
});
});
+
+ it('throws failure on bad scope', () => {
+ scope = 'bad scope';
+ expect(() => mockResolvers.Mutation.currentScope(null, { scope }, { client })).toThrow(scope);
+ });
});
describe('disableKey', () => {
diff --git a/spec/frontend/diffs/components/__snapshots__/tree_list_spec.js.snap b/spec/frontend/diffs/components/__snapshots__/tree_list_spec.js.snap
new file mode 100644
index 00000000000..605f6335b5c
--- /dev/null
+++ b/spec/frontend/diffs/components/__snapshots__/tree_list_spec.js.snap
@@ -0,0 +1,160 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Diffs tree list component pinned file files in folders pins 1.rb file 1`] = `
+Array [
+ "ðŸ“folder/",
+ "──1.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-1.rb",
+ "────nested-2.rb",
+ "────nested-3.rb",
+ "──2.rb",
+ "──3.rb",
+ "ðŸ“folder-single",
+ "──single.rb",
+ "root-first.rb",
+ "root-last.rb",
+]
+`;
+
+exports[`Diffs tree list component pinned file files in folders pins 2.rb file 1`] = `
+Array [
+ "ðŸ“folder/",
+ "──2.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-1.rb",
+ "────nested-2.rb",
+ "────nested-3.rb",
+ "──1.rb",
+ "──3.rb",
+ "ðŸ“folder-single",
+ "──single.rb",
+ "root-first.rb",
+ "root-last.rb",
+]
+`;
+
+exports[`Diffs tree list component pinned file files in folders pins 3.rb file 1`] = `
+Array [
+ "ðŸ“folder/",
+ "──3.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-1.rb",
+ "────nested-2.rb",
+ "────nested-3.rb",
+ "──1.rb",
+ "──2.rb",
+ "ðŸ“folder-single",
+ "──single.rb",
+ "root-first.rb",
+ "root-last.rb",
+]
+`;
+
+exports[`Diffs tree list component pinned file files in folders pins nested-1.rb file 1`] = `
+Array [
+ "ðŸ“folder/sub-folder/",
+ "──nested-1.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-2.rb",
+ "────nested-3.rb",
+ "──1.rb",
+ "──2.rb",
+ "──3.rb",
+ "ðŸ“folder-single",
+ "──single.rb",
+ "root-first.rb",
+ "root-last.rb",
+]
+`;
+
+exports[`Diffs tree list component pinned file files in folders pins nested-2.rb file 1`] = `
+Array [
+ "ðŸ“folder/sub-folder/",
+ "──nested-2.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-1.rb",
+ "────nested-3.rb",
+ "──1.rb",
+ "──2.rb",
+ "──3.rb",
+ "ðŸ“folder-single",
+ "──single.rb",
+ "root-first.rb",
+ "root-last.rb",
+]
+`;
+
+exports[`Diffs tree list component pinned file files in folders pins nested-3.rb file 1`] = `
+Array [
+ "ðŸ“folder/sub-folder/",
+ "──nested-3.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-1.rb",
+ "────nested-2.rb",
+ "──1.rb",
+ "──2.rb",
+ "──3.rb",
+ "ðŸ“folder-single",
+ "──single.rb",
+ "root-first.rb",
+ "root-last.rb",
+]
+`;
+
+exports[`Diffs tree list component pinned file files in folders pins root-first.rb file 1`] = `
+Array [
+ "root-first.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-1.rb",
+ "────nested-2.rb",
+ "────nested-3.rb",
+ "──1.rb",
+ "──2.rb",
+ "──3.rb",
+ "ðŸ“folder-single",
+ "──single.rb",
+ "root-last.rb",
+]
+`;
+
+exports[`Diffs tree list component pinned file files in folders pins root-last.rb file 1`] = `
+Array [
+ "root-last.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-1.rb",
+ "────nested-2.rb",
+ "────nested-3.rb",
+ "──1.rb",
+ "──2.rb",
+ "──3.rb",
+ "ðŸ“folder-single",
+ "──single.rb",
+ "root-first.rb",
+]
+`;
+
+exports[`Diffs tree list component pinned file files in folders pins single.rb file 1`] = `
+Array [
+ "ðŸ“folder-single/",
+ "──single.rb",
+ "ðŸ“folder",
+ "──ðŸ“sub-folder",
+ "────nested-1.rb",
+ "────nested-2.rb",
+ "────nested-3.rb",
+ "──1.rb",
+ "──2.rb",
+ "──3.rb",
+ "root-first.rb",
+ "root-last.rb",
+]
+`;
diff --git a/spec/frontend/diffs/components/app_spec.js b/spec/frontend/diffs/components/app_spec.js
index 63d9a2471b6..813db12e83f 100644
--- a/spec/frontend/diffs/components/app_spec.js
+++ b/spec/frontend/diffs/components/app_spec.js
@@ -31,6 +31,9 @@ import * as urlUtils from '~/lib/utils/url_utility';
import * as commonUtils from '~/lib/utils/common_utils';
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
import { stubPerformanceWebAPI } from 'helpers/performance';
+import { getDiffFileMock } from 'jest/diffs/mock_data/diff_file';
+import waitForPromises from 'helpers/wait_for_promises';
+import { diffMetadata } from 'jest/diffs/mock_data/diff_metadata';
import createDiffsStore from '../create_diffs_store';
import diffsMockData from '../mock_data/merge_request_diffs';
@@ -38,6 +41,8 @@ const mergeRequestDiff = { version_index: 1 };
const TEST_ENDPOINT = `${TEST_HOST}/diff/endpoint`;
const COMMIT_URL = `${TEST_HOST}/COMMIT/OLD`;
const UPDATED_COMMIT_URL = `${TEST_HOST}/COMMIT/NEW`;
+const ENDPOINT_BATCH_URL = `${TEST_HOST}/diff/endpointBatch`;
+const ENDPOINT_METADATA_URL = `${TEST_HOST}/diff/endpointMetadata`;
Vue.use(Vuex);
Vue.use(VueApollo);
@@ -77,8 +82,8 @@ describe('diffs/components/app', () => {
store.dispatch('diffs/setBaseConfig', {
endpoint: TEST_ENDPOINT,
- endpointMetadata: `${TEST_HOST}/diff/endpointMetadata`,
- endpointBatch: `${TEST_HOST}/diff/endpointBatch`,
+ endpointMetadata: ENDPOINT_METADATA_URL,
+ endpointBatch: ENDPOINT_BATCH_URL,
endpointDiffForPath: TEST_ENDPOINT,
projectPath: 'namespace/project',
dismissEndpoint: '',
@@ -126,7 +131,7 @@ describe('diffs/components/app', () => {
const fetchResolver = () => {
store.state.diffs.retrievingBatches = false;
store.state.notes.doneFetchingBatchDiscussions = true;
- store.state.notes.discussions = 'test';
+ store.state.notes.discussions = [];
return Promise.resolve({ real_size: 100 });
};
jest.spyOn(window, 'requestIdleCallback').mockImplementation((fn) => fn());
@@ -861,4 +866,32 @@ describe('diffs/components/app', () => {
expect(loadSpy).not.toHaveBeenCalledWith({ file: store.state.diffs.diffFiles[0] });
});
});
+
+ describe('pinned file', () => {
+ const pinnedFileUrl = 'http://localhost.test/pinned-file';
+ let pinnedFile;
+
+ beforeEach(() => {
+ pinnedFile = getDiffFileMock();
+ mock.onGet(pinnedFileUrl).reply(HTTP_STATUS_OK, { diff_files: [pinnedFile] });
+ mock
+ .onGet(new RegExp(ENDPOINT_BATCH_URL))
+ .reply(HTTP_STATUS_OK, { diff_files: [], pagination: {} });
+ mock.onGet(new RegExp(ENDPOINT_METADATA_URL)).reply(HTTP_STATUS_OK, diffMetadata);
+
+ createComponent({ shouldShow: true, pinnedFileUrl });
+ });
+
+ it('fetches and displays pinned file', async () => {
+ await waitForPromises();
+
+ expect(wrapper.findComponent({ name: 'DynamicScroller' }).props('items')[0].file_hash).toBe(
+ pinnedFile.file_hash,
+ );
+ });
+
+ it('shows a spinner during loading', () => {
+ expect(wrapper.findComponent(GlLoadingIcon).exists()).toBe(true);
+ });
+ });
});
diff --git a/spec/frontend/diffs/components/diff_file_header_spec.js b/spec/frontend/diffs/components/diff_file_header_spec.js
index d6539a5bffa..c02875963fd 100644
--- a/spec/frontend/diffs/components/diff_file_header_spec.js
+++ b/spec/frontend/diffs/components/diff_file_header_spec.js
@@ -1,8 +1,8 @@
-import { shallowMount } from '@vue/test-utils';
import Vue, { nextTick } from 'vue';
import { cloneDeep } from 'lodash';
// eslint-disable-next-line no-restricted-imports
import Vuex from 'vuex';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import { mockTracking, triggerEvent } from 'helpers/tracking_helper';
@@ -20,6 +20,7 @@ import { truncateSha } from '~/lib/utils/text_utility';
import { __, sprintf } from '~/locale';
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
+import { TEST_HOST } from 'spec/test_constants';
import testAction from '../../__helpers__/vuex_action_helper';
import diffDiscussionsMockData from '../mock_data/diff_discussions';
@@ -73,6 +74,7 @@ describe('DiffFileHeader component', () => {
setFileCollapsedByUser: jest.fn(),
setFileForcedOpen: jest.fn(),
reviewFile: jest.fn(),
+ unpinFile: jest.fn(),
},
},
},
@@ -87,7 +89,7 @@ describe('DiffFileHeader component', () => {
});
const findHeader = () => wrapper.findComponent({ ref: 'header' });
- const findTitleLink = () => wrapper.findComponent({ ref: 'titleWrapper' });
+ const findTitleLink = () => wrapper.findByTestId('file-title');
const findExpandButton = () => wrapper.findComponent({ ref: 'expandDiffToFullFileButton' });
const findFileActions = () => wrapper.find('.file-actions');
const findModeChangedLine = () => wrapper.findComponent({ ref: 'fileMode' });
@@ -105,7 +107,7 @@ describe('DiffFileHeader component', () => {
mockStoreConfig = cloneDeep(defaultMockStoreConfig);
const store = new Vuex.Store({ ...mockStoreConfig, ...options.store });
- wrapper = shallowMount(DiffFileHeader, {
+ wrapper = shallowMountExtended(DiffFileHeader, {
propsData: {
diffFile,
canCurrentUserFork: false,
@@ -711,4 +713,23 @@ describe('DiffFileHeader component', () => {
expect(wrapper.find('[data-testid="comment-files-button"]').exists()).toEqual(true);
});
+
+ describe('pinned file', () => {
+ beforeEach(() => {
+ window.gon.features = { pinnedFile: true };
+ });
+
+ it('has pinned URL search param', () => {
+ createComponent();
+ const url = new URL(TEST_HOST + findTitleLink().attributes('href'));
+ expect(url.searchParams.get('pin')).toBe(diffFile.file_hash);
+ });
+
+ it('can unpin file', () => {
+ createComponent({ props: { addMergeRequestButtons: true, pinned: true } });
+ const unpinButton = wrapper.findComponentByTestId('unpin-button');
+ unpinButton.vm.$emit('click');
+ expect(mockStoreConfig.modules.diffs.actions.unpinFile).toHaveBeenCalled();
+ });
+ });
});
diff --git a/spec/frontend/diffs/components/diff_file_spec.js b/spec/frontend/diffs/components/diff_file_spec.js
index a9fbf4632ac..444f4102e26 100644
--- a/spec/frontend/diffs/components/diff_file_spec.js
+++ b/spec/frontend/diffs/components/diff_file_spec.js
@@ -29,6 +29,7 @@ import createNotesStore from '~/notes/stores/modules';
import diffsModule from '~/diffs/store/modules';
import { SOMETHING_WENT_WRONG, SAVING_THE_COMMENT_FAILED } from '~/diffs/i18n';
import diffLineNoteFormMixin from '~/notes/mixins/diff_line_note_form';
+import { SET_PINNED_FILE_HASH } from '~/diffs/store/mutation_types';
import { getDiffFileMock } from '../mock_data/diff_file';
import diffFileMockDataUnreadable from '../mock_data/diff_file_unreadable';
import diffsMockData from '../mock_data/merge_request_diffs';
@@ -90,49 +91,6 @@ function markFileToBeRendered(store, index = 0) {
});
}
-function createComponent({ file, first = false, last = false, options = {}, props = {} }) {
- const diffs = diffsModule();
- diffs.actions = {
- ...diffs.actions,
- prefetchFileNeighbors: prefetchFileNeighborsMock,
- saveDiffDiscussion: saveDiffDiscussionMock,
- };
-
- diffs.getters = {
- ...diffs.getters,
- diffCompareDropdownTargetVersions: () => [],
- diffCompareDropdownSourceVersions: () => [],
- };
-
- const store = new Vuex.Store({
- ...createNotesStore(),
- modules: { diffs },
- });
-
- store.state.diffs = {
- mergeRequestDiff: diffsMockData[0],
- diffFiles: [file],
- };
-
- const wrapper = shallowMountExtended(DiffFileComponent, {
- store,
- propsData: {
- file,
- canCurrentUserFork: false,
- viewDiffsFileByFile: false,
- isFirstFile: first,
- isLastFile: last,
- ...props,
- },
- ...options,
- });
-
- return {
- wrapper,
- store,
- };
-}
-
const findDiffHeader = (wrapper) => wrapper.findComponent(DiffFileHeaderComponent);
const findDiffContentArea = (wrapper) => wrapper.findByTestId('content-area');
const findLoader = (wrapper) => wrapper.findByTestId('loader-icon');
@@ -159,15 +117,58 @@ const triggerSaveDraftNote = (wrapper, note, parent, error) =>
findNoteForm(wrapper).vm.$emit('handleFormUpdateAddToReview', note, false, parent, error);
describe('DiffFile', () => {
- let readableFile;
let wrapper;
let store;
let axiosMock;
+ function createComponent({
+ file = getReadableFile(),
+ first = false,
+ last = false,
+ options = {},
+ props = {},
+ } = {}) {
+ const diffs = diffsModule();
+ diffs.actions = {
+ ...diffs.actions,
+ prefetchFileNeighbors: prefetchFileNeighborsMock,
+ saveDiffDiscussion: saveDiffDiscussionMock,
+ };
+
+ diffs.getters = {
+ ...diffs.getters,
+ diffCompareDropdownTargetVersions: () => [],
+ diffCompareDropdownSourceVersions: () => [],
+ };
+
+ store = new Vuex.Store({
+ ...createNotesStore(),
+ modules: { diffs },
+ });
+
+ store.state.diffs = {
+ ...store.state.diffs,
+ mergeRequestDiff: diffsMockData[0],
+ diffFiles: [file],
+ };
+
+ wrapper = shallowMountExtended(DiffFileComponent, {
+ store,
+ propsData: {
+ file,
+ canCurrentUserFork: false,
+ viewDiffsFileByFile: false,
+ isFirstFile: first,
+ isLastFile: last,
+ ...props,
+ },
+ ...options,
+ });
+ }
+
beforeEach(() => {
- readableFile = getReadableFile();
axiosMock = new MockAdapter(axios);
- ({ wrapper, store } = createComponent({ file: readableFile }));
+ createComponent();
});
afterEach(() => {
@@ -186,7 +187,6 @@ describe('DiffFile', () => {
`('$description', ({ fileByFile }) => {
createComponent({
props: { viewDiffsFileByFile: fileByFile },
- file: readableFile,
});
if (fileByFile) {
@@ -217,11 +217,11 @@ describe('DiffFile', () => {
forceHasDiff({ store, ...file });
}
- ({ wrapper, store } = createComponent({
+ createComponent({
file: store.state.diffs.diffFiles[0],
first,
last,
- }));
+ });
await nextTick();
@@ -233,14 +233,13 @@ describe('DiffFile', () => {
);
it('emits the "first file shown" and "files end" events when in File-by-File mode', async () => {
- ({ wrapper, store } = createComponent({
- file: getReadableFile(),
+ createComponent({
first: false,
last: false,
props: {
viewDiffsFileByFile: true,
},
- }));
+ });
await nextTick();
@@ -253,11 +252,11 @@ describe('DiffFile', () => {
describe('after loading the diff', () => {
it('indicates that it loaded the file', async () => {
forceHasDiff({ store, inlineLines: [], parallelLines: [], readableText: true });
- ({ wrapper, store } = createComponent({
+ createComponent({
file: store.state.diffs.diffFiles[0],
first: true,
last: true,
- }));
+ });
jest.spyOn(wrapper.vm, 'loadCollapsedDiff').mockResolvedValue(getReadableFile());
jest.spyOn(window, 'requestIdleCallback').mockImplementation((fn) => fn());
@@ -314,11 +313,11 @@ describe('DiffFile', () => {
`('should be $bool when { userIsLoggedIn: $loggedIn }', ({ loggedIn, bool }) => {
setLoggedIn(loggedIn);
- ({ wrapper } = createComponent({
+ createComponent({
props: {
file: store.state.diffs.diffFiles[0],
},
- }));
+ });
expect(wrapper.vm.showLocalFileReviews).toBe(bool);
});
@@ -556,7 +555,7 @@ describe('DiffFile', () => {
describe('general (other) collapsed', () => {
it('should be expandable for unreadable files', async () => {
- ({ wrapper, store } = createComponent({ file: getUnreadableFile() }));
+ createComponent({ file: getUnreadableFile() });
makeFileAutomaticallyCollapsed(store);
await nextTick();
@@ -622,7 +621,7 @@ describe('DiffFile', () => {
renderIt: true,
};
- ({ wrapper, store } = createComponent({ file }));
+ createComponent({ file });
expect(wrapper.findByTestId('conflictsAlert').exists()).toBe(false);
});
@@ -634,7 +633,7 @@ describe('DiffFile', () => {
renderIt: true,
};
- ({ wrapper, store } = createComponent({ file }));
+ createComponent({ file });
expect(wrapper.findByTestId('conflictsAlert').exists()).toBe(true);
});
@@ -656,9 +655,9 @@ describe('DiffFile', () => {
...extraProps,
};
- ({ wrapper, store } = createComponent({
+ createComponent({
file,
- }));
+ });
expect(wrapper.findByTestId('file-discussions').exists()).toEqual(exists);
},
@@ -676,9 +675,9 @@ describe('DiffFile', () => {
hasCommentForm,
};
- ({ wrapper, store } = createComponent({
+ createComponent({
file,
- }));
+ });
expect(findNoteForm(wrapper).exists()).toEqual(exists);
},
@@ -694,9 +693,9 @@ describe('DiffFile', () => {
discussions,
};
- ({ wrapper, store } = createComponent({
+ createComponent({
file,
- }));
+ });
expect(wrapper.findByTestId('diff-file-discussions').exists()).toEqual(exists);
});
@@ -712,10 +711,10 @@ describe('DiffFile', () => {
const errorCallback = jest.fn();
beforeEach(() => {
- ({ wrapper, store } = createComponent({
+ createComponent({
file,
options: { provide: { glFeatures: { commentOnFiles: true } } },
- }));
+ });
});
it('calls saveDiffDiscussionMock', () => {
@@ -771,10 +770,10 @@ describe('DiffFile', () => {
const errorCallback = jest.fn();
beforeEach(async () => {
- ({ wrapper, store } = createComponent({
+ createComponent({
file,
options: { provide: { glFeatures: { commentOnFiles: true } } },
- }));
+ });
triggerSaveDraftNote(wrapper, note, parentElement, errorCallback);
@@ -791,4 +790,13 @@ describe('DiffFile', () => {
});
});
});
+
+ describe('pinned file', () => {
+ it('passes down pinned prop', async () => {
+ createComponent();
+ store.commit(`diffs/${SET_PINNED_FILE_HASH}`, getReadableFile().file_hash);
+ await nextTick();
+ expect(wrapper.findComponent(DiffFileHeaderComponent).props('pinned')).toBe(true);
+ });
+ });
});
diff --git a/spec/frontend/diffs/components/diff_row_utils_spec.js b/spec/frontend/diffs/components/diff_row_utils_spec.js
index 6e9eb433924..bd9592e4f5e 100644
--- a/spec/frontend/diffs/components/diff_row_utils_spec.js
+++ b/spec/frontend/diffs/components/diff_row_utils_spec.js
@@ -6,6 +6,7 @@ import {
NEW_NO_NEW_LINE_TYPE,
EMPTY_CELL_TYPE,
} from '~/diffs/constants';
+import { getDiffFileMock } from 'jest/diffs/mock_data/diff_file';
const LINE_CODE = 'abc123';
@@ -108,15 +109,47 @@ describe('diff_row_utils', () => {
describe('lineHref', () => {
it(`should return #${LINE_CODE}`, () => {
- expect(utils.lineHref({ line_code: LINE_CODE })).toEqual(`#${LINE_CODE}`);
+ expect(utils.lineHref({ line_code: LINE_CODE }, {})).toEqual(`#${LINE_CODE}`);
});
it(`should return '#' if line is undefined`, () => {
- expect(utils.lineHref()).toEqual('#');
+ expect(utils.lineHref()).toEqual('');
});
it(`should return '#' if line_code is undefined`, () => {
- expect(utils.lineHref({})).toEqual('#');
+ expect(utils.lineHref({}, {})).toEqual('');
+ });
+
+ describe('pinned file', () => {
+ beforeEach(() => {
+ window.gon.features = { pinnedFile: true };
+ });
+
+ afterEach(() => {
+ delete window.gon.features;
+ });
+
+ it(`should return pinned file URL`, () => {
+ const diffFile = getDiffFileMock();
+ expect(utils.lineHref({ line_code: LINE_CODE }, { diffFile })).toEqual(
+ `?pin=${diffFile.file_hash}#${LINE_CODE}`,
+ );
+ });
+ });
+ });
+
+ describe('pinnedFileHref', () => {
+ beforeEach(() => {
+ window.gon.features = { pinnedFile: true };
+ });
+
+ afterEach(() => {
+ delete window.gon.features;
+ });
+
+ it(`should return pinned file URL`, () => {
+ const diffFile = getDiffFileMock();
+ expect(utils.pinnedFileHref(diffFile)).toEqual(`?pin=${diffFile.file_hash}`);
});
});
diff --git a/spec/frontend/diffs/components/tree_list_spec.js b/spec/frontend/diffs/components/tree_list_spec.js
index a54cf9b8bff..230839f0ecf 100644
--- a/spec/frontend/diffs/components/tree_list_spec.js
+++ b/spec/frontend/diffs/components/tree_list_spec.js
@@ -7,6 +7,9 @@ import batchComments from '~/batch_comments/stores/modules/batch_comments';
import DiffFileRow from '~/diffs/components//diff_file_row.vue';
import { stubComponent } from 'helpers/stub_component';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import { SET_PINNED_FILE_HASH, SET_TREE_DATA, SET_DIFF_FILES } from '~/diffs/store/mutation_types';
+import { generateTreeList } from '~/diffs/utils/tree_worker_utils';
+import { sortTree } from '~/ide/stores/utils';
describe('Diffs tree list component', () => {
let wrapper;
@@ -58,6 +61,14 @@ describe('Diffs tree list component', () => {
const setupFilesInState = () => {
const treeEntries = {
+ app: {
+ key: 'app',
+ path: 'app',
+ name: 'app',
+ type: 'tree',
+ tree: [],
+ opened: true,
+ },
'index.js': {
addedLines: 0,
changed: true,
@@ -71,6 +82,8 @@ describe('Diffs tree list component', () => {
type: 'blob',
parentPath: 'app',
tree: [],
+ file_path: 'app/index.js',
+ file_hash: 'app-index',
},
'test.rb': {
addedLines: 0,
@@ -85,20 +98,39 @@ describe('Diffs tree list component', () => {
type: 'blob',
parentPath: 'app',
tree: [],
+ file_path: 'app/test.rb',
+ file_hash: 'app-test',
},
- app: {
- key: 'app',
- path: 'app',
- name: 'app',
- type: 'tree',
+ LICENSE: {
+ addedLines: 0,
+ changed: true,
+ deleted: false,
+ fileHash: 'LICENSE',
+ key: 'LICENSE',
+ name: 'LICENSE',
+ path: 'LICENSE',
+ removedLines: 0,
+ tempFile: true,
+ type: 'blob',
+ parentPath: '/',
tree: [],
+ file_path: 'LICENSE',
+ file_hash: 'LICENSE',
},
};
Object.assign(store.state.diffs, {
treeEntries,
- tree: [treeEntries['index.js'], treeEntries.app],
+ tree: [
+ treeEntries.LICENSE,
+ {
+ ...treeEntries.app,
+ tree: [treeEntries['index.js'], treeEntries['test.rb']],
+ },
+ ],
});
+
+ return treeEntries;
};
describe('default', () => {
@@ -149,7 +181,7 @@ describe('Diffs tree list component', () => {
});
it('renders tree', () => {
- expect(getScroller().props('items')).toHaveLength(2);
+ expect(getScroller().props('items')).toHaveLength(4);
});
it('hides file stats', () => {
@@ -169,7 +201,7 @@ describe('Diffs tree list component', () => {
store.state.diffs.renderTreeList = false;
await nextTick();
- expect(getScroller().props('items')).toHaveLength(3);
+ expect(getScroller().props('items')).toHaveLength(5);
});
});
@@ -188,4 +220,59 @@ describe('Diffs tree list component', () => {
expect(getFileRow().props('viewedFiles')).toBe(viewedDiffFileIds);
});
});
+
+ describe('pinned file', () => {
+ const filePaths = [
+ ['nested-1.rb', 'folder/sub-folder/'],
+ ['nested-2.rb', 'folder/sub-folder/'],
+ ['nested-3.rb', 'folder/sub-folder/'],
+ ['1.rb', 'folder/'],
+ ['2.rb', 'folder/'],
+ ['3.rb', 'folder/'],
+ ['single.rb', 'folder-single/'],
+ ['root-first.rb'],
+ ['root-last.rb'],
+ ];
+
+ const pinFile = (fileHash) => {
+ store.commit(`diffs/${SET_PINNED_FILE_HASH}`, fileHash);
+ };
+
+ const setupFiles = (diffFiles) => {
+ const { treeEntries, tree } = generateTreeList(diffFiles);
+ store.commit(`diffs/${SET_DIFF_FILES}`, diffFiles);
+ store.commit(`diffs/${SET_TREE_DATA}`, {
+ treeEntries,
+ tree: sortTree(tree),
+ });
+ };
+
+ const createFile = (name, path = '') => ({
+ file_hash: name,
+ path: `${path}${name}`,
+ new_path: `${path}${name}`,
+ file_path: `${path}${name}`,
+ });
+
+ beforeEach(() => {
+ createComponent();
+ setupFiles(filePaths.map(([name, path]) => createFile(name, path)));
+ });
+
+ describe('files in folders', () => {
+ it.each(filePaths.map((path) => path[0]))('pins %s file', async (pinnedFile) => {
+ pinFile(pinnedFile);
+ await nextTick();
+ const items = getScroller().props('items');
+ expect(
+ items.map(
+ (item) =>
+ `${'─'.repeat(item.level * 2)}${item.type === 'tree' ? 'ðŸ“' : ''}${
+ item.name || item.path
+ }`,
+ ),
+ ).toMatchSnapshot();
+ });
+ });
+ });
});
diff --git a/spec/frontend/diffs/store/actions_spec.js b/spec/frontend/diffs/store/actions_spec.js
index be3b30e8e7a..ceaaa32a0e8 100644
--- a/spec/frontend/diffs/store/actions_spec.js
+++ b/spec/frontend/diffs/store/actions_spec.js
@@ -11,7 +11,7 @@ import {
PARALLEL_DIFF_VIEW_TYPE,
EVT_MR_PREPARED,
} from '~/diffs/constants';
-import { LOAD_SINGLE_DIFF_FAILED, BUILDING_YOUR_MR, SOMETHING_WENT_WRONG } from '~/diffs/i18n';
+import { BUILDING_YOUR_MR, SOMETHING_WENT_WRONG } from '~/diffs/i18n';
import * as diffActions from '~/diffs/store/actions';
import * as types from '~/diffs/store/mutation_types';
import * as utils from '~/diffs/store/utils';
@@ -28,6 +28,8 @@ import {
import { mergeUrlParams } from '~/lib/utils/url_utility';
import eventHub from '~/notes/event_hub';
import diffsEventHub from '~/diffs/event_hub';
+import { handleLocationHash, historyPushState, scrollToElement } from '~/lib/utils/common_utils';
+import setWindowLocation from 'helpers/set_window_location_helper';
import { diffMetadata } from '../mock_data/diff_metadata';
jest.mock('~/alert');
@@ -37,6 +39,8 @@ jest.mock('~/lib/utils/secret_detection', () => ({
containsSensitiveToken: jest.requireActual('~/lib/utils/secret_detection').containsSensitiveToken,
}));
+const endpointDiffForPath = '/diffs/set/endpoint/path';
+
describe('DiffsStoreActions', () => {
let mock;
@@ -78,7 +82,6 @@ describe('DiffsStoreActions', () => {
const endpoint = '/diffs/set/endpoint';
const endpointMetadata = '/diffs/set/endpoint/metadata';
const endpointBatch = '/diffs/set/endpoint/batch';
- const endpointDiffForPath = '/diffs/set/endpoint/path';
const endpointCoverage = '/diffs/set/coverage_reports';
const projectPath = '/root/project';
const dismissEndpoint = '/-/user_callouts';
@@ -180,8 +183,8 @@ describe('DiffsStoreActions', () => {
new_path: 'new/123',
w: '1',
view: 'inline',
+ diff_head: true,
};
- const endpointDiffForPath = '/diffs/set/endpoint/path';
const diffForPath = mergeUrlParams(defaultParams, endpointDiffForPath);
const treeEntry = {
fileHash: 'e334a2a10f036c00151a04cea7938a5d4213a818',
@@ -256,7 +259,9 @@ describe('DiffsStoreActions', () => {
// wait for the mocked network request to return and start processing the .then
await waitForPromises();
- expect(mock.history.get[0].url).toEqual(finalPath);
+ expect(mock.history.get[0].url).toContain(
+ 'old_path=old%2F123&new_path=new%2F123&w=1&view=inline&commit_id=123',
+ );
});
describe('version parameters', () => {
@@ -285,6 +290,7 @@ describe('DiffsStoreActions', () => {
endpointDiffForPath,
);
state.mergeRequestDiff = { version_path: versionPath };
+ state.endpointBatch = versionPath;
mock.onGet(finalPath).reply(HTTP_STATUS_OK, fileResult);
diffActions.prefetchSingleFile({ state, getters, commit }, treeEntry);
@@ -349,8 +355,8 @@ describe('DiffsStoreActions', () => {
new_path: 'new/123',
w: '1',
view: 'inline',
+ diff_head: true,
};
- const endpointDiffForPath = '/diffs/set/endpoint/path';
const diffForPath = mergeUrlParams(defaultParams, endpointDiffForPath);
const treeEntry = {
fileHash: 'e334a2a10f036c00151a04cea7938a5d4213a818',
@@ -445,7 +451,9 @@ describe('DiffsStoreActions', () => {
// wait for the mocked network request to return and start processing the .then
await waitForPromises();
- expect(mock.history.get[0].url).toEqual(finalPath);
+ expect(mock.history.get[0].url).toContain(
+ 'old_path=old%2F123&new_path=new%2F123&w=1&view=inline&commit_id=123',
+ );
});
describe('version parameters', () => {
@@ -473,7 +481,7 @@ describe('DiffsStoreActions', () => {
{ ...defaultParams, diff_id, start_sha },
endpointDiffForPath,
);
- state.mergeRequestDiff = { version_path: versionPath };
+ state.endpointBatch = versionPath;
mock.onGet(finalPath).reply(HTTP_STATUS_OK, fileResult);
diffActions.fetchFileByFile({ state, getters, commit });
@@ -490,8 +498,8 @@ describe('DiffsStoreActions', () => {
describe('fetchDiffFilesBatch', () => {
it('should fetch batch diff files', () => {
const endpointBatch = '/fetch/diffs_batch';
- const res1 = { diff_files: [{ file_hash: 'test' }], pagination: { total_pages: 7 } };
- const res2 = { diff_files: [{ file_hash: 'test2' }], pagination: { total_pages: 7 } };
+ const res1 = { diff_files: [{ file_hash: 'test' }], pagination: { total_pages: 2 } };
+ const res2 = { diff_files: [{ file_hash: 'test2' }], pagination: { total_pages: 2 } };
mock
.onGet(
mergeUrlParams(
@@ -520,7 +528,7 @@ describe('DiffsStoreActions', () => {
return testAction(
diffActions.fetchDiffFilesBatch,
- {},
+ undefined,
{ endpointBatch, diffViewType: 'inline', diffFiles: [], perPage: 5 },
[
{ type: types.SET_BATCH_LOADING_STATE, payload: 'loading' },
@@ -532,7 +540,6 @@ describe('DiffsStoreActions', () => {
{ type: types.SET_BATCH_LOADING_STATE, payload: 'loaded' },
{ type: types.SET_CURRENT_DIFF_FILE, payload: 'test2' },
{ type: types.SET_RETRIEVING_BATCHES, payload: false },
- { type: types.SET_BATCH_LOADING_STATE, payload: 'error' },
],
[],
);
@@ -690,7 +697,7 @@ describe('DiffsStoreActions', () => {
describe('setHighlightedRow', () => {
it('should mark currently selected diff and set lineHash and fileHash of highlightedRow', () => {
- return testAction(diffActions.setHighlightedRow, 'ABC_123', {}, [
+ return testAction(diffActions.setHighlightedRow, { lineCode: 'ABC_123' }, {}, [
{ type: types.SET_HIGHLIGHTED_ROW, payload: 'ABC_123' },
{ type: types.SET_CURRENT_DIFF_FILE, payload: 'ABC' },
]);
@@ -1310,14 +1317,17 @@ describe('DiffsStoreActions', () => {
diffActions.goToFile({ state, dispatch, getters, commit }, file);
expect(commit).toHaveBeenCalledWith(types.SET_CURRENT_DIFF_FILE, fileHash);
- expect(dispatch).toHaveBeenCalledTimes(0);
+ expect(dispatch).not.toHaveBeenCalledWith('fetchFileByFile');
});
describe('when the tree entry has not been loaded', () => {
it('updates location hash', () => {
diffActions.goToFile({ state, commit, getters, dispatch }, file);
- expect(document.location.hash).toBe('#test');
+ expect(historyPushState).toHaveBeenCalledWith(new URL(`${TEST_HOST}#test`), {
+ skipScrolling: true,
+ });
+ expect(scrollToElement).toHaveBeenCalledWith('.diff-files-holder', { duration: 0 });
});
it('loads the file and then scrolls to it', async () => {
@@ -1333,21 +1343,12 @@ describe('DiffsStoreActions', () => {
expect(commonUtils.scrollToElement).toHaveBeenCalledWith('.diff-files-holder', {
duration: 0,
});
- expect(dispatch).toHaveBeenCalledTimes(1);
+ expect(dispatch).toHaveBeenCalledWith('fetchFileByFile');
});
- it('shows an alert when there was an error fetching the file', async () => {
- dispatch = jest.fn().mockRejectedValue();
-
+ it('unpins the file', () => {
diffActions.goToFile({ state, commit, getters, dispatch }, file);
-
- // Wait for the fetchFileByFile dispatch to return, to trigger the catch
- await waitForPromises();
-
- expect(createAlert).toHaveBeenCalledTimes(1);
- expect(createAlert).toHaveBeenCalledWith({
- message: expect.stringMatching(LOAD_SINGLE_DIFF_FAILED),
- });
+ expect(dispatch).toHaveBeenCalledWith('unpinFile');
});
});
});
@@ -1969,7 +1970,7 @@ describe('DiffsStoreActions', () => {
0,
{ flatBlobsList: [{ fileHash: '123' }] },
[{ type: types.SET_CURRENT_DIFF_FILE, payload: '123' }],
- [],
+ [{ type: 'unpinFile' }],
);
});
@@ -1979,7 +1980,7 @@ describe('DiffsStoreActions', () => {
0,
{ viewDiffsFileByFile: true, flatBlobsList: [{ fileHash: '123' }] },
[{ type: types.SET_CURRENT_DIFF_FILE, payload: '123' }],
- [{ type: 'fetchFileByFile' }],
+ [{ type: 'unpinFile' }, { type: 'fetchFileByFile' }],
);
});
});
@@ -2120,4 +2121,84 @@ describe('DiffsStoreActions', () => {
);
});
});
+
+ describe('fetchPinnedFile', () => {
+ it('fetches pinned file', async () => {
+ const pinnedFileHref = `${TEST_HOST}/pinned-file`;
+ const pinnedFile = getDiffFileMock();
+ const diffFiles = [pinnedFile];
+ const hubSpy = jest.spyOn(diffsEventHub, '$emit');
+ mock.onGet(new RegExp(pinnedFileHref)).reply(HTTP_STATUS_OK, { diff_files: diffFiles });
+
+ await testAction(
+ diffActions.fetchPinnedFile,
+ pinnedFileHref,
+ {},
+ [
+ { type: types.SET_BATCH_LOADING_STATE, payload: 'loading' },
+ { type: types.SET_RETRIEVING_BATCHES, payload: true },
+ {
+ type: types.SET_DIFF_DATA_BATCH,
+ payload: { diff_files: diffFiles, updatePosition: false },
+ },
+ { type: types.SET_PINNED_FILE_HASH, payload: pinnedFile.file_hash },
+ { type: types.SET_CURRENT_DIFF_FILE, payload: pinnedFile.file_hash },
+ { type: types.SET_BATCH_LOADING_STATE, payload: 'loaded' },
+ { type: types.SET_RETRIEVING_BATCHES, payload: false },
+ ],
+ [],
+ );
+
+ jest.runAllTimers();
+ expect(hubSpy).toHaveBeenCalledWith('diffFilesModified');
+ expect(handleLocationHash).toHaveBeenCalled();
+ });
+
+ it('handles load error', async () => {
+ const pinnedFileHref = `${TEST_HOST}/pinned-file`;
+ const hubSpy = jest.spyOn(diffsEventHub, '$emit');
+ mock.onGet(new RegExp(pinnedFileHref)).reply(HTTP_STATUS_INTERNAL_SERVER_ERROR);
+
+ try {
+ await testAction(
+ diffActions.fetchPinnedFile,
+ pinnedFileHref,
+ {},
+ [
+ { type: types.SET_BATCH_LOADING_STATE, payload: 'loading' },
+ { type: types.SET_RETRIEVING_BATCHES, payload: true },
+ { type: types.SET_BATCH_LOADING_STATE, payload: 'error' },
+ { type: types.SET_RETRIEVING_BATCHES, payload: false },
+ ],
+ [],
+ );
+ } catch (error) {
+ expect(error.response.status).toBe(HTTP_STATUS_INTERNAL_SERVER_ERROR);
+ }
+
+ jest.runAllTimers();
+ expect(hubSpy).not.toHaveBeenCalledWith('diffFilesModified');
+ expect(handleLocationHash).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('unpinFile', () => {
+ it('unpins pinned file', () => {
+ const pinnedFile = getDiffFileMock();
+ setWindowLocation(`${TEST_HOST}/?pin=${pinnedFile.file_hash}#${pinnedFile.file_hash}_10_10`);
+ testAction(
+ diffActions.unpinFile,
+ undefined,
+ { pinnedFile },
+ [{ type: types.SET_PINNED_FILE_HASH, payload: null }],
+ [],
+ );
+ expect(window.location.hash).toBe('');
+ expect(window.location.search).toBe('');
+ });
+
+ it('does nothing when no pinned file present', () => {
+ testAction(diffActions.unpinFile, undefined, {}, [], []);
+ });
+ });
});
diff --git a/spec/frontend/diffs/store/getters_spec.js b/spec/frontend/diffs/store/getters_spec.js
index 8097f0976f6..cb0f40534fe 100644
--- a/spec/frontend/diffs/store/getters_spec.js
+++ b/spec/frontend/diffs/store/getters_spec.js
@@ -1,6 +1,7 @@
import { PARALLEL_DIFF_VIEW_TYPE, INLINE_DIFF_VIEW_TYPE } from '~/diffs/constants';
import * as getters from '~/diffs/store/getters';
import state from '~/diffs/store/modules/diff_state';
+import { getDiffFileMock } from 'jest/diffs/mock_data/diff_file';
import discussion from '../mock_data/diff_discussions';
describe('Diffs Module Getters', () => {
@@ -495,4 +496,35 @@ describe('Diffs Module Getters', () => {
},
);
});
+
+ describe('diffFiles', () => {
+ it('proxies diffFiles state', () => {
+ const diffFiles = [getDiffFileMock()];
+ expect(getters.diffFiles({ diffFiles }, {})).toBe(diffFiles);
+ });
+
+ it('pins the file', () => {
+ const pinnedFile = getDiffFileMock();
+ const regularFile = getDiffFileMock();
+ const diffFiles = [regularFile, pinnedFile];
+ expect(getters.diffFiles({ diffFiles }, { pinnedFile })).toStrictEqual([
+ pinnedFile,
+ regularFile,
+ ]);
+ });
+ });
+
+ describe('pinnedFile', () => {
+ it('returns pinnedFile', () => {
+ const pinnedFile = getDiffFileMock();
+ const diffFiles = [pinnedFile];
+ expect(getters.pinnedFile({ diffFiles, pinnedFileHash: pinnedFile.file_hash }, {})).toBe(
+ pinnedFile,
+ );
+ });
+
+ it('returns null if no pinned file is set', () => {
+ expect(getters.pinnedFile({}, {})).toBe(null);
+ });
+ });
});
diff --git a/spec/frontend/diffs/store/mutations_spec.js b/spec/frontend/diffs/store/mutations_spec.js
index a5be41aa69f..8d52cd39542 100644
--- a/spec/frontend/diffs/store/mutations_spec.js
+++ b/spec/frontend/diffs/store/mutations_spec.js
@@ -92,7 +92,7 @@ describe('DiffsStoreMutations', () => {
});
});
- describe('SET_DIFF_DATA_BATCH_DATA', () => {
+ describe('SET_DIFF_DATA_BATCH', () => {
it('should set diff data batch type properly', () => {
const mockFile = getDiffFileMock();
const state = {
@@ -108,6 +108,39 @@ describe('DiffsStoreMutations', () => {
expect(state.diffFiles[0].collapsed).toEqual(false);
expect(state.treeEntries[mockFile.file_path].diffLoaded).toBe(true);
});
+
+ it('should update diff position by default', () => {
+ const mockFile = getDiffFileMock();
+ const state = {
+ diffFiles: [mockFile, { ...mockFile, file_hash: 'foo', file_path: 'foo' }],
+ treeEntries: { [mockFile.file_path]: { fileHash: mockFile.file_hash } },
+ };
+ const diffMock = {
+ diff_files: [mockFile],
+ };
+
+ mutations[types.SET_DIFF_DATA_BATCH](state, diffMock);
+
+ expect(state.diffFiles[1].file_hash).toBe(mockFile.file_hash);
+ expect(state.treeEntries[mockFile.file_path].diffLoaded).toBe(true);
+ });
+
+ it('should not update diff position', () => {
+ const mockFile = getDiffFileMock();
+ const state = {
+ diffFiles: [mockFile, { ...mockFile, file_hash: 'foo', file_path: 'foo' }],
+ treeEntries: { [mockFile.file_path]: { fileHash: mockFile.file_hash } },
+ };
+ const diffMock = {
+ diff_files: [mockFile],
+ updatePosition: false,
+ };
+
+ mutations[types.SET_DIFF_DATA_BATCH](state, diffMock);
+
+ expect(state.diffFiles[0].file_hash).toBe(mockFile.file_hash);
+ expect(state.treeEntries[mockFile.file_path].diffLoaded).toBe(true);
+ });
});
describe('SET_COVERAGE_DATA', () => {
@@ -122,6 +155,17 @@ describe('DiffsStoreMutations', () => {
});
});
+ describe('SET_DIFF_TREE_ENTRY', () => {
+ it('should set tree entry', () => {
+ const file = getDiffFileMock();
+ const state = { treeEntries: { [file.file_path]: {} } };
+
+ mutations[types.SET_DIFF_TREE_ENTRY](state, file);
+
+ expect(state.treeEntries[file.file_path].diffLoaded).toBe(true);
+ });
+ });
+
describe('SET_DIFF_VIEW_TYPE', () => {
it('should set diff view type properly', () => {
const state = {};
@@ -1076,4 +1120,15 @@ describe('DiffsStoreMutations', () => {
expect(state.diffFiles[0].viewer.forceOpen).toBe(true);
});
});
+
+ describe('SET_PINNED_FILE_HASH', () => {
+ it('set pinned file hash', () => {
+ const state = {};
+ const file = getDiffFileMock();
+
+ mutations[types.SET_PINNED_FILE_HASH](state, file.file_hash);
+
+ expect(state.pinnedFileHash).toBe(file.file_hash);
+ });
+ });
});
diff --git a/spec/frontend/diffs/store/utils_spec.js b/spec/frontend/diffs/store/utils_spec.js
index 6331269d6e8..019ed663d82 100644
--- a/spec/frontend/diffs/store/utils_spec.js
+++ b/spec/frontend/diffs/store/utils_spec.js
@@ -476,6 +476,17 @@ describe('DiffsStoreUtils', () => {
expect(updatedFilesList).toEqual([mock, fakeNewFile]);
});
+ it('updates diff position', () => {
+ const priorFiles = [mock, { ...mock, file_hash: 'foo', file_path: 'foo' }];
+ const updatedFilesList = utils.prepareDiffData({
+ diff: { diff_files: [mock] },
+ priorFiles,
+ updatePosition: true,
+ });
+
+ expect(updatedFilesList[1].file_hash).toEqual(mock.file_hash);
+ });
+
it('completes an existing split diff without overwriting existing diffs', () => {
// The current state has a file that has only loaded inline lines
const priorFiles = [{ ...mock }];
diff --git a/spec/frontend/editor/schema/ci/ci_schema_spec.js b/spec/frontend/editor/schema/ci/ci_schema_spec.js
index 7986509074e..7a37f53c7a6 100644
--- a/spec/frontend/editor/schema/ci/ci_schema_spec.js
+++ b/spec/frontend/editor/schema/ci/ci_schema_spec.js
@@ -38,8 +38,10 @@ import SecretsYaml from './yaml_tests/positive_tests/secrets.yml';
import ServicesYaml from './yaml_tests/positive_tests/services.yml';
import NeedsParallelMatrixYaml from './yaml_tests/positive_tests/needs_parallel_matrix.yml';
import ScriptYaml from './yaml_tests/positive_tests/script.yml';
-import AutoCancelPipelineOnJobFailureAllYaml from './yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/all.yml';
-import AutoCancelPipelineOnJobFailureNoneYaml from './yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/none.yml';
+import WorkflowAutoCancelOnJobFailureYaml from './yaml_tests/positive_tests/workflow/auto_cancel/on_job_failure.yml';
+import WorkflowAutoCancelOnNewCommitYaml from './yaml_tests/positive_tests/workflow/auto_cancel/on_new_commit.yml';
+import WorkflowRulesAutoCancelOnJobFailureYaml from './yaml_tests/positive_tests/workflow/rules/auto_cancel/on_job_failure.yml';
+import WorkflowRulesAutoCancelOnNewCommitYaml from './yaml_tests/positive_tests/workflow/rules/auto_cancel/on_new_commit.yml';
// YAML NEGATIVE TEST
import ArtifactsNegativeYaml from './yaml_tests/negative_tests/artifacts.yml';
@@ -66,7 +68,10 @@ import NeedsParallelMatrixNumericYaml from './yaml_tests/negative_tests/needs/pa
import NeedsParallelMatrixWrongParallelValueYaml from './yaml_tests/negative_tests/needs/parallel_matrix/wrong_parallel_value.yml';
import NeedsParallelMatrixWrongMatrixValueYaml from './yaml_tests/negative_tests/needs/parallel_matrix/wrong_matrix_value.yml';
import ScriptNegativeYaml from './yaml_tests/negative_tests/script.yml';
-import AutoCancelPipelineNegativeYaml from './yaml_tests/negative_tests/auto_cancel_pipeline.yml';
+import WorkflowAutoCancelOnJobFailureNegativeYaml from './yaml_tests/negative_tests/workflow/auto_cancel/on_job_failure.yml';
+import WorkflowAutoCancelOnNewCommitNegativeYaml from './yaml_tests/negative_tests/workflow/auto_cancel/on_new_commit.yml';
+import WorkflowRulesAutoCancelOnJobFailureNegativeYaml from './yaml_tests/negative_tests/workflow/rules/auto_cancel/on_job_failure.yml';
+import WorkflowRulesAutoCancelOnNewCommitNegativeYaml from './yaml_tests/negative_tests/workflow/rules/auto_cancel/on_new_commit.yml';
const ajv = new Ajv({
strictTypes: false,
@@ -110,8 +115,10 @@ describe('positive tests', () => {
SecretsYaml,
NeedsParallelMatrixYaml,
ScriptYaml,
- AutoCancelPipelineOnJobFailureAllYaml,
- AutoCancelPipelineOnJobFailureNoneYaml,
+ WorkflowAutoCancelOnJobFailureYaml,
+ WorkflowAutoCancelOnNewCommitYaml,
+ WorkflowRulesAutoCancelOnJobFailureYaml,
+ WorkflowRulesAutoCancelOnNewCommitYaml,
}),
)('schema validates %s', (_, input) => {
// We construct a new "JSON" from each main key that is inside a
@@ -157,7 +164,10 @@ describe('negative tests', () => {
NeedsParallelMatrixWrongParallelValueYaml,
NeedsParallelMatrixWrongMatrixValueYaml,
ScriptNegativeYaml,
- AutoCancelPipelineNegativeYaml,
+ WorkflowAutoCancelOnJobFailureNegativeYaml,
+ WorkflowAutoCancelOnNewCommitNegativeYaml,
+ WorkflowRulesAutoCancelOnJobFailureNegativeYaml,
+ WorkflowRulesAutoCancelOnNewCommitNegativeYaml,
}),
)('schema validates %s', (_, input) => {
// We construct a new "JSON" from each main key that is inside a
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/image.yml b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/image.yml
index ad37cd6c3ba..d6bc3cccf41 100644
--- a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/image.yml
+++ b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/image.yml
@@ -26,6 +26,17 @@ invalid_image_platform:
docker:
platform: ["arm64"] # The expected value is a string, not an array
+invalid_image_user:
+ image:
+ name: alpine:latest
+ docker:
+ user: ["dave"] # The expected value is a string, not an array
+
+empty_image_user:
+ image:
+ name: alpine:latest
+ docker:
+ user: ""
invalid_image_executor_opts:
image:
name: alpine:latest
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml
index 4baf4c6b850..23d667eeeff 100644
--- a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml
+++ b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml
@@ -71,3 +71,21 @@ job_with_secrets_with_missing_required_name_property:
azure_key_vault:
name:
version: latest
+
+job_with_gcp_secret_manager_secret_without_name:
+ script:
+ - echo $TEST_DB_PASSWORD
+ secrets:
+ TEST_DB_PASSWORD:
+ gcp_secret_manager:
+ version: latest
+ token: $TEST_TOKEN
+
+job_with_gcp_secret_manager_secret_without_token:
+ script:
+ - echo $TEST_DB_PASSWORD
+ secrets:
+ TEST_DB_PASSWORD:
+ gcp_secret_manager:
+ name: my-secret
+
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/services.yml b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/services.yml
index e14ac9ca86e..fd05d2606e5 100644
--- a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/services.yml
+++ b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/services.yml
@@ -50,3 +50,17 @@ invalid_service_platform:
- name: mysql:5.7
docker:
platform: ["arm64"] # The expected value is a string, not an array
+
+invalid_service_user:
+ script: echo "Specifying user."
+ services:
+ - name: mysql:5.7
+ docker:
+ user: ["dave"] # The expected value is a string, not an array
+
+empty_service_user:
+ script: echo "Specifying user"
+ services:
+ - name: alpine:latest
+ docker:
+ user: ""
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/auto_cancel_pipeline.yml b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/auto_cancel/on_job_failure.yml
index 0ba3e5632e3..2bf9effe1be 100644
--- a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/auto_cancel_pipeline.yml
+++ b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/auto_cancel/on_job_failure.yml
@@ -1,4 +1,3 @@
-# invalid workflow:auto-cancel:on-job-failure
workflow:
auto_cancel:
on_job_failure: unexpected_value
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/auto_cancel/on_new_commit.yml b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/auto_cancel/on_new_commit.yml
new file mode 100644
index 00000000000..371662efd24
--- /dev/null
+++ b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/auto_cancel/on_new_commit.yml
@@ -0,0 +1,3 @@
+workflow:
+ auto_cancel:
+ on_new_commit: unexpected_value
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/rules/auto_cancel/on_job_failure.yml b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/rules/auto_cancel/on_job_failure.yml
new file mode 100644
index 00000000000..11029a85189
--- /dev/null
+++ b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/rules/auto_cancel/on_job_failure.yml
@@ -0,0 +1,7 @@
+workflow:
+ auto_cancel:
+ on_job_failure: all
+ rules:
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ auto_cancel:
+ on_job_failure: unexpected_value
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/rules/auto_cancel/on_new_commit.yml b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/rules/auto_cancel/on_new_commit.yml
new file mode 100644
index 00000000000..4c7e9be9018
--- /dev/null
+++ b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/workflow/rules/auto_cancel/on_new_commit.yml
@@ -0,0 +1,7 @@
+workflow:
+ auto_cancel:
+ on_new_commit: interruptible
+ rules:
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ auto_cancel:
+ on_new_commit: unexpected_value
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/none.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/none.yml
deleted file mode 100644
index b99eb50e962..00000000000
--- a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/none.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-# valid workflow:auto-cancel:on-job-failure
-workflow:
- auto_cancel:
- on_job_failure: none
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/image.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/image.yml
index 4c2559d0800..020cce80fd3 100644
--- a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/image.yml
+++ b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/image.yml
@@ -30,6 +30,19 @@ valid_image_with_docker:
docker:
platform: linux/amd64
+valid_image_with_docker_user:
+ image:
+ name: ubuntu:latest
+ docker:
+ user: ubuntu
+
+valid_image_with_docker_multiple_options:
+ image:
+ name: ubuntu:latest
+ docker:
+ platform: linux/arm64
+ user: ubuntu
+
valid_image_full:
image:
name: alpine:latest
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml
index af3107974b9..e615fa52dc5 100644
--- a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml
+++ b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml
@@ -43,3 +43,32 @@ valid_job_with_azure_key_vault_secrets_name_and_version:
azure_key_vault:
name: 'test'
version: 'version'
+
+valid_job_with_gcp_secret_manager_name:
+ script:
+ - echo $TEST_DB_PASSWORD
+ secrets:
+ TEST_DB_PASSWORD:
+ gcp_secret_manager:
+ name: 'test'
+ token: $TEST_TOKEN
+
+valid_job_with_gcp_secret_manager_name_and_numbered_version:
+ script:
+ - echo $TEST_DB_PASSWORD
+ secrets:
+ TEST_DB_PASSWORD:
+ gcp_secret_manager:
+ name: 'test'
+ version: 2
+ token: $TEST_TOKEN
+
+valid_job_with_gcp_secret_manager_name_and_string_version:
+ script:
+ - echo $TEST_DB_PASSWORD
+ secrets:
+ TEST_DB_PASSWORD:
+ gcp_secret_manager:
+ name: 'test'
+ version: 'latest'
+ token: $TEST_TOKEN
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/services.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/services.yml
index 1d19ee52cc3..0f45b075f53 100644
--- a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/services.yml
+++ b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/services.yml
@@ -36,3 +36,18 @@ services_platform_string:
- name: mysql:5.7
docker:
platform: arm64
+
+services_with_docker_user:
+ script: echo "Specifying platform."
+ services:
+ - name: mysql:5.7
+ docker:
+ user: ubuntu
+
+services_with_docker_multiple_options:
+ script: echo "Specifying platform."
+ services:
+ - name: mysql:5.7
+ docker:
+ platform: linux/arm64
+ user: ubuntu
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/all.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/auto_cancel/on_job_failure.yml
index bf84ff16f42..79d18f40721 100644
--- a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/auto_cancel_pipeline/on_job_failure/all.yml
+++ b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/auto_cancel/on_job_failure.yml
@@ -1,4 +1,3 @@
-# valid workflow:auto-cancel:on-job-failure
workflow:
auto_cancel:
on_job_failure: all
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/auto_cancel/on_new_commit.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/auto_cancel/on_new_commit.yml
new file mode 100644
index 00000000000..a1641878e4d
--- /dev/null
+++ b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/auto_cancel/on_new_commit.yml
@@ -0,0 +1,3 @@
+workflow:
+ auto_cancel:
+ on_new_commit: conservative
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/rules/auto_cancel/on_job_failure.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/rules/auto_cancel/on_job_failure.yml
new file mode 100644
index 00000000000..9050566fbd3
--- /dev/null
+++ b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/rules/auto_cancel/on_job_failure.yml
@@ -0,0 +1,7 @@
+workflow:
+ auto_cancel:
+ on_job_failure: all
+ rules:
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ auto_cancel:
+ on_job_failure: none
diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/rules/auto_cancel/on_new_commit.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/rules/auto_cancel/on_new_commit.yml
new file mode 100644
index 00000000000..c5ec387fe50
--- /dev/null
+++ b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/workflow/rules/auto_cancel/on_new_commit.yml
@@ -0,0 +1,7 @@
+workflow:
+ auto_cancel:
+ on_new_commit: interruptible
+ rules:
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ auto_cancel:
+ on_new_commit: none
diff --git a/spec/frontend/emoji/components/emoji_group_spec.js b/spec/frontend/emoji/components/emoji_group_spec.js
index a2a46bedd7b..a2e3643356f 100644
--- a/spec/frontend/emoji/components/emoji_group_spec.js
+++ b/spec/frontend/emoji/components/emoji_group_spec.js
@@ -13,6 +13,7 @@ function factory(propsData = {}) {
propsData,
stubs: {
GlButton,
+ GlEmoji: { template: '<div/>' },
},
}),
);
diff --git a/spec/frontend/environments/helpers/k8s_integration_helper_spec.js b/spec/frontend/environments/helpers/k8s_integration_helper_spec.js
index 97100557ef3..852b5318c77 100644
--- a/spec/frontend/environments/helpers/k8s_integration_helper_spec.js
+++ b/spec/frontend/environments/helpers/k8s_integration_helper_spec.js
@@ -1,5 +1,4 @@
import {
- generateServicePortsString,
getDeploymentsStatuses,
getDaemonSetStatuses,
getStatefulSetStatuses,
@@ -12,35 +11,6 @@ import {
import { CLUSTER_AGENT_ERROR_MESSAGES } from '~/environments/constants';
describe('k8s_integration_helper', () => {
- describe('generateServicePortsString', () => {
- const port = '8080';
- const protocol = 'TCP';
- const nodePort = '31732';
-
- it('returns empty string if no ports provided', () => {
- expect(generateServicePortsString([])).toBe('');
- });
-
- it('returns port and protocol when provided', () => {
- expect(generateServicePortsString([{ port, protocol }])).toBe(`${port}/${protocol}`);
- });
-
- it('returns port, protocol and nodePort when provided', () => {
- expect(generateServicePortsString([{ port, protocol, nodePort }])).toBe(
- `${port}:${nodePort}/${protocol}`,
- );
- });
-
- it('returns joined strings of ports if multiple are provided', () => {
- expect(
- generateServicePortsString([
- { port, protocol },
- { port, protocol, nodePort },
- ]),
- ).toBe(`${port}/${protocol}, ${port}:${nodePort}/${protocol}`);
- });
- });
-
describe('getDeploymentsStatuses', () => {
const pending = {
status: {
diff --git a/spec/frontend/environments/kubernetes_status_bar_spec.js b/spec/frontend/environments/kubernetes_status_bar_spec.js
index dcd628354e1..e4bf8f3ea07 100644
--- a/spec/frontend/environments/kubernetes_status_bar_spec.js
+++ b/spec/frontend/environments/kubernetes_status_bar_spec.js
@@ -10,7 +10,6 @@ import {
} from '~/environments/constants';
import waitForPromises from 'helpers/wait_for_promises';
import createMockApollo from 'helpers/mock_apollo_helper';
-import { s__ } from '~/locale';
import { mockKasTunnelUrl } from './mock_data';
Vue.use(VueApollo);
@@ -23,6 +22,8 @@ const configuration = {
},
};
const environmentName = 'environment_name';
+const kustomizationResourcePath =
+ 'kustomize.toolkit.fluxcd.io/v1beta1/namespaces/my-namespace/kustomizations/app';
describe('~/environments/components/kubernetes_status_bar.vue', () => {
let wrapper;
@@ -97,7 +98,7 @@ describe('~/environments/components/kubernetes_status_bar.vue', () => {
});
it('renders sync status as Unavailable', () => {
- expect(findSyncBadge().text()).toBe(s__('Deployment|Unavailable'));
+ expect(findSyncBadge().text()).toBe('Unavailable');
});
});
@@ -106,8 +107,7 @@ describe('~/environments/components/kubernetes_status_bar.vue', () => {
describe('if the provided resource is a Kustomization', () => {
beforeEach(() => {
- fluxResourcePath =
- 'kustomize.toolkit.fluxcd.io/v1beta1/namespaces/my-namespace/kustomizations/app';
+ fluxResourcePath = kustomizationResourcePath;
createWrapper({ fluxResourcePath });
});
@@ -178,6 +178,47 @@ describe('~/environments/components/kubernetes_status_bar.vue', () => {
});
});
+ describe('when receives data from the Flux', () => {
+ const createApolloProviderWithKustomizations = (result) => {
+ const mockResolvers = {
+ Query: {
+ fluxKustomizationStatus: jest.fn().mockReturnValue([result]),
+ fluxHelmReleaseStatus: fluxHelmReleaseStatusQuery,
+ },
+ };
+
+ return createMockApollo([], mockResolvers);
+ };
+ const message = 'Message from Flux';
+
+ it.each`
+ status | type | reason | statusText | statusPopover
+ ${'True'} | ${'Stalled'} | ${''} | ${'Stalled'} | ${message}
+ ${'True'} | ${'Reconciling'} | ${''} | ${'Reconciling'} | ${'Flux sync reconciling'}
+ ${'Unknown'} | ${'Ready'} | ${'Progressing'} | ${'Reconciling'} | ${message}
+ ${'True'} | ${'Ready'} | ${''} | ${'Reconciled'} | ${'Flux sync reconciled successfully'}
+ ${'False'} | ${'Ready'} | ${''} | ${'Failed'} | ${message}
+ ${'Unknown'} | ${'Ready'} | ${''} | ${'Unknown'} | ${'Unable to detect state. How are states detected?'}
+ `(
+ 'renders sync status as $statusText when status is $status, type is $type, and reason is $reason',
+ async ({ status, type, reason, statusText, statusPopover }) => {
+ createWrapper({
+ fluxResourcePath: kustomizationResourcePath,
+ apolloProvider: createApolloProviderWithKustomizations({
+ status,
+ type,
+ reason,
+ message,
+ }),
+ });
+ await waitForPromises();
+
+ expect(findSyncBadge().text()).toBe(statusText);
+ expect(findPopover().text()).toBe(statusPopover);
+ },
+ );
+ });
+
describe('when Flux API errored', () => {
const error = new Error('Error from the cluster_client API');
const createApolloProviderWithErrors = () => {
@@ -212,9 +253,7 @@ describe('~/environments/components/kubernetes_status_bar.vue', () => {
it('renders popover with an API error message', () => {
expect(findPopover().text()).toBe(error.message);
- expect(findPopover().props('title')).toBe(
- s__('Deployment|Flux sync status is unavailable'),
- );
+ expect(findPopover().props('title')).toBe('Flux sync status is unavailable');
});
});
});
diff --git a/spec/frontend/error_tracking/components/error_details_info_spec.js b/spec/frontend/error_tracking/components/error_details_info_spec.js
index a3f4b0e0dd8..f563fee0ec0 100644
--- a/spec/frontend/error_tracking/components/error_details_info_spec.js
+++ b/spec/frontend/error_tracking/components/error_details_info_spec.js
@@ -47,6 +47,13 @@ describe('ErrorDetails', () => {
expect(wrapper.findByTestId('user-count-card').text()).toMatchInterpolatedText('Users 2');
});
+ it('should not render a card with user counts if integrated error tracking', () => {
+ mountComponent({
+ integrated: true,
+ });
+ expect(wrapper.findByTestId('user-count-card').exists()).toBe(false);
+ });
+
describe('first seen card', () => {
it('if firstSeen is missing, does not render a card', () => {
mountComponent({
diff --git a/spec/frontend/error_tracking/components/error_tracking_list_spec.js b/spec/frontend/error_tracking/components/error_tracking_list_spec.js
index 823f7132fdd..91518002f0e 100644
--- a/spec/frontend/error_tracking/components/error_tracking_list_spec.js
+++ b/spec/frontend/error_tracking/components/error_tracking_list_spec.js
@@ -146,6 +146,28 @@ describe('ErrorTrackingList', () => {
expect(findErrorListRows().length).toEqual(store.state.list.errors.length);
});
+ describe('user count', () => {
+ it('shows user count', () => {
+ mountComponent({
+ integratedErrorTrackingEnabled: false,
+ stubs: {
+ GlTable: false,
+ },
+ });
+ expect(findErrorListTable().find('thead').text()).toContain('Users');
+ });
+
+ it('does not show user count', () => {
+ mountComponent({
+ integratedErrorTrackingEnabled: true,
+ stubs: {
+ GlTable: false,
+ },
+ });
+ expect(findErrorListTable().find('thead').text()).not.toContain('Users');
+ });
+ });
+
describe.each([
['/test-project/-/error_tracking'],
['/test-project/-/error_tracking/'], // handles leading '/' https://gitlab.com/gitlab-org/gitlab/-/issues/430211
diff --git a/spec/frontend/fixtures/static/oauth_remember_me.html b/spec/frontend/fixtures/static/oauth_remember_me.html
index 60277ecf66e..d7519dd695f 100644
--- a/spec/frontend/fixtures/static/oauth_remember_me.html
+++ b/spec/frontend/fixtures/static/oauth_remember_me.html
@@ -1,20 +1,20 @@
-<div id="oauth-container">
+<div class="js-oauth-login">
<input id="remember_me_omniauth" type="checkbox" />
<form method="post" action="http://example.com/">
- <button class="js-oauth-login twitter" type="submit">
+ <button class="twitter" type="submit">
<span>Twitter</span>
</button>
</form>
<form method="post" action="http://example.com/">
- <button class="js-oauth-login github" type="submit">
+ <button class="github" type="submit">
<span>GitHub</span>
</button>
</form>
<form method="post" action="http://example.com/?redirect_fragment=L1">
- <button class="js-oauth-login facebook" type="submit">
+ <button class="facebook" type="submit">
<span>Facebook</span>
</button>
</form>
diff --git a/spec/frontend/groups/components/app_spec.js b/spec/frontend/groups/components/app_spec.js
index 8ac410c87b1..027c1709e0b 100644
--- a/spec/frontend/groups/components/app_spec.js
+++ b/spec/frontend/groups/components/app_spec.js
@@ -58,6 +58,9 @@ describe('AppComponent', () => {
mocks: {
$toast,
},
+ provide: {
+ emptySearchIllustration: '/assets/illustrations/empty-state/empty-search-md.svg',
+ },
});
vm = wrapper.vm;
};
diff --git a/spec/frontend/groups/components/group_item_spec.js b/spec/frontend/groups/components/group_item_spec.js
index 94460de9dd6..26c97a7cb41 100644
--- a/spec/frontend/groups/components/group_item_spec.js
+++ b/spec/frontend/groups/components/group_item_spec.js
@@ -11,6 +11,8 @@ import {
VISIBILITY_LEVEL_PRIVATE_STRING,
VISIBILITY_LEVEL_INTERNAL_STRING,
VISIBILITY_LEVEL_PUBLIC_STRING,
+ GROUP_VISIBILITY_TYPE,
+ PROJECT_VISIBILITY_TYPE,
} from '~/visibility_level/constants';
import { helpPagePath } from '~/helpers/help_page_helper';
import { mountExtended, extendedWrapper } from 'helpers/vue_test_utils_helper';
@@ -24,7 +26,7 @@ const createComponent = (
) => {
return mountExtended(GroupItem, {
propsData,
- components: { GroupFolder },
+ components: { GroupFolder, GroupItem },
provide,
});
};
@@ -115,6 +117,51 @@ describe('GroupItemComponent', () => {
wrapper.destroy();
});
});
+
+ describe('visibilityTooltip', () => {
+ describe('if item represents group', () => {
+ it.each`
+ visibilityLevel | visibilityTooltip
+ ${VISIBILITY_LEVEL_PUBLIC_STRING} | ${GROUP_VISIBILITY_TYPE[VISIBILITY_LEVEL_PUBLIC_STRING]}
+ ${VISIBILITY_LEVEL_INTERNAL_STRING} | ${GROUP_VISIBILITY_TYPE[VISIBILITY_LEVEL_INTERNAL_STRING]}
+ ${VISIBILITY_LEVEL_PRIVATE_STRING} | ${GROUP_VISIBILITY_TYPE[VISIBILITY_LEVEL_PRIVATE_STRING]}
+ `(
+ 'should return corresponding text when visibility level is $visibilityLevel',
+ ({ visibilityLevel, visibilityTooltip }) => {
+ const group = { ...mockParentGroupItem };
+
+ group.type = 'group';
+ group.visibility = visibilityLevel;
+ wrapper = createComponent({ group });
+
+ expect(wrapper.vm.visibilityTooltip).toBe(visibilityTooltip);
+ wrapper.destroy();
+ },
+ );
+ });
+
+ describe('if item represents project', () => {
+ it.each`
+ visibilityLevel | visibilityTooltip
+ ${VISIBILITY_LEVEL_PUBLIC_STRING} | ${PROJECT_VISIBILITY_TYPE[VISIBILITY_LEVEL_PUBLIC_STRING]}
+ ${VISIBILITY_LEVEL_INTERNAL_STRING} | ${PROJECT_VISIBILITY_TYPE[VISIBILITY_LEVEL_INTERNAL_STRING]}
+ ${VISIBILITY_LEVEL_PRIVATE_STRING} | ${PROJECT_VISIBILITY_TYPE[VISIBILITY_LEVEL_PRIVATE_STRING]}
+ `(
+ 'should return corresponding text when visibility level is $visibilityLevel',
+ ({ visibilityLevel, visibilityTooltip }) => {
+ const group = { ...mockParentGroupItem };
+
+ group.type = 'project';
+ group.lastActivityAt = '2017-04-09T18:40:39.101Z';
+ group.visibility = visibilityLevel;
+ wrapper = createComponent({ group });
+
+ expect(wrapper.vm.visibilityTooltip).toBe(visibilityTooltip);
+ wrapper.destroy();
+ },
+ );
+ });
+ });
});
describe('methods', () => {
@@ -261,10 +308,9 @@ describe('GroupItemComponent', () => {
});
it.each`
- attr | value
- ${'itemscope'} | ${'itemscope'}
- ${'itemtype'} | ${'https://schema.org/Organization'}
- ${'itemprop'} | ${'subOrganization'}
+ attr | value
+ ${'itemtype'} | ${'https://schema.org/Organization'}
+ ${'itemprop'} | ${'subOrganization'}
`('does set correct $attr', ({ attr, value } = {}) => {
expect(wrapper.attributes(attr)).toBe(value);
});
@@ -281,7 +327,7 @@ describe('GroupItemComponent', () => {
});
describe('visibility warning popover', () => {
- const findPopover = () => extendedWrapper(wrapper.findComponent(GlPopover));
+ const findPopover = () => wrapper.findComponent(GlPopover);
const itDoesNotRenderVisibilityWarningPopover = () => {
it('does not render visibility warning popover', () => {
@@ -343,9 +389,10 @@ describe('GroupItemComponent', () => {
if (isPopoverShown) {
it('renders visibility warning popover with `Learn more` link', () => {
- const popover = findPopover();
+ const popover = extendedWrapper(findPopover());
expect(popover.exists()).toBe(true);
+
expect(
popover.findByRole('link', { name: GroupItem.i18n.learnMore }).attributes('href'),
).toBe(
diff --git a/spec/frontend/groups/components/group_name_and_path_spec.js b/spec/frontend/groups/components/group_name_and_path_spec.js
index 0a18e657c94..59c42e54af6 100644
--- a/spec/frontend/groups/components/group_name_and_path_spec.js
+++ b/spec/frontend/groups/components/group_name_and_path_spec.js
@@ -1,7 +1,7 @@
import Vue, { nextTick } from 'vue';
import VueApollo from 'vue-apollo';
import { merge } from 'lodash';
-import { GlAlert, GlDropdown, GlTruncate, GlDropdownItem } from '@gitlab/ui';
+import { GlDropdown, GlTruncate, GlDropdownItem } from '@gitlab/ui';
import { mountExtended, extendedWrapper } from 'helpers/vue_test_utils_helper';
import waitForPromises from 'helpers/wait_for_promises';
import createMockApollo from 'helpers/mock_apollo_helper';
@@ -74,7 +74,8 @@ describe('GroupNameAndPath', () => {
const findSubgroupNameField = () => wrapper.findByLabelText('Subgroup name');
const findSubgroupSlugField = () => wrapper.findByLabelText('Subgroup slug');
const findSelectedGroup = () => wrapper.findComponent(GlTruncate);
- const findAlert = () => extendedWrapper(wrapper.findComponent(GlAlert));
+ const findChangeUrlAlert = () => extendedWrapper(wrapper.findByTestId('changing-url-alert'));
+ const findDotInPathAlert = () => extendedWrapper(wrapper.findByTestId('dot-in-path-alert'));
const apiMockAvailablePath = () => {
getGroupPathAvailability.mockResolvedValueOnce({
@@ -181,6 +182,12 @@ describe('GroupNameAndPath', () => {
expectLoadingMessageExists();
});
+ it('shows warning alert on using dot in path', () => {
+ createComponentEditGroup();
+
+ expect(findDotInPathAlert().exists()).toBe(true);
+ });
+
describe('when path is available', () => {
it('does not update `Group URL` field', async () => {
apiMockAvailablePath();
@@ -396,8 +403,10 @@ describe('GroupNameAndPath', () => {
it('shows warning alert with `Learn more` link', () => {
createComponentEditGroup();
- expect(findAlert().exists()).toBe(true);
- expect(findAlert().findByRole('link', { name: 'Learn more' }).attributes('href')).toBe(
+ expect(findChangeUrlAlert().exists()).toBe(true);
+ expect(
+ findChangeUrlAlert().findByRole('link', { name: 'Learn more' }).attributes('href'),
+ ).toBe(
helpPagePath('user/group/manage', {
anchor: 'change-a-groups-path',
}),
diff --git a/spec/frontend/groups/components/overview_tabs_spec.js b/spec/frontend/groups/components/overview_tabs_spec.js
index 6bed744685f..8b80330c910 100644
--- a/spec/frontend/groups/components/overview_tabs_spec.js
+++ b/spec/frontend/groups/components/overview_tabs_spec.js
@@ -1,4 +1,4 @@
-import { GlSorting, GlSortingItem, GlTab } from '@gitlab/ui';
+import { GlSorting, GlTab } from '@gitlab/ui';
import Vue, { nextTick } from 'vue';
import AxiosMockAdapter from 'axios-mock-adapter';
import { mountExtended } from 'helpers/vue_test_utils_helper';
@@ -17,6 +17,7 @@ import {
ACTIVE_TAB_SUBGROUPS_AND_PROJECTS,
ACTIVE_TAB_SHARED,
ACTIVE_TAB_ARCHIVED,
+ OVERVIEW_TABS_SORTING_ITEMS,
SORTING_ITEM_NAME,
SORTING_ITEM_UPDATED,
SORTING_ITEM_STARS,
@@ -44,6 +45,7 @@ describe('OverviewTabs', () => {
newProjectIllustration: '',
emptyProjectsIllustration: '',
emptySubgroupIllustration: '',
+ emptySearchIllustration: '',
canCreateSubgroups: false,
canCreateProjects: false,
initialSort: 'name_asc',
@@ -73,6 +75,7 @@ describe('OverviewTabs', () => {
const findTab = (name) => wrapper.findByRole('tab', { name });
const findSelectedTab = () => wrapper.findByRole('tab', { selected: true });
const findSearchInput = () => wrapper.findByPlaceholderText(OverviewTabs.i18n.searchPlaceholder);
+ const findGlSorting = () => wrapper.findComponent(GlSorting);
beforeEach(() => {
axiosMock = new AxiosMockAdapter(axios);
@@ -300,7 +303,7 @@ describe('OverviewTabs', () => {
describe('when sort is changed', () => {
beforeEach(async () => {
await setup();
- wrapper.findAllComponents(GlSortingItem).at(2).vm.$emit('click');
+ findGlSorting().vm.$emit('sortByChange', SORTING_ITEM_UPDATED.label);
await nextTick();
});
@@ -402,12 +405,15 @@ describe('OverviewTabs', () => {
});
it('sets sort dropdown', () => {
- expect(wrapper.findComponent(GlSorting).props()).toMatchObject({
+ const expectedSortOptions = OVERVIEW_TABS_SORTING_ITEMS.map(({ label }) => {
+ return { value: label, text: label };
+ });
+ expect(findGlSorting().props()).toMatchObject({
text: SORTING_ITEM_UPDATED.label,
isAscending: false,
+ sortBy: SORTING_ITEM_UPDATED.label,
+ sortOptions: expectedSortOptions,
});
-
- expect(wrapper.findAllComponents(GlSortingItem).at(2).vm.$attrs.active).toBe(true);
});
});
});
diff --git a/spec/frontend/groups_projects/components/more_actions_dropdown_spec.js b/spec/frontend/groups_projects/components/more_actions_dropdown_spec.js
index 1bcff8a44be..777190149d1 100644
--- a/spec/frontend/groups_projects/components/more_actions_dropdown_spec.js
+++ b/spec/frontend/groups_projects/components/more_actions_dropdown_spec.js
@@ -1,4 +1,8 @@
-import { GlDisclosureDropdownItem, GlDisclosureDropdown } from '@gitlab/ui';
+import {
+ GlDisclosureDropdownItem,
+ GlDisclosureDropdown,
+ GlDisclosureDropdownGroup,
+} from '@gitlab/ui';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import moreActionsDropdown from '~/groups_projects/components/more_actions_dropdown.vue';
@@ -28,6 +32,7 @@ describe('moreActionsDropdown', () => {
const showDropdown = () => {
findDropdown().vm.$emit('show');
};
+ const findDropdownGroup = () => wrapper.findComponent(GlDisclosureDropdownGroup);
describe('copy id', () => {
describe('project namespace type', () => {
@@ -72,6 +77,29 @@ describe('moreActionsDropdown', () => {
});
});
+ describe('dropdown group', () => {
+ it('is not rendered if no path is set', () => {
+ createComponent({
+ provideData: {
+ requestAccessPath: undefined,
+ leavePath: '',
+ withdrawPath: null,
+ },
+ });
+
+ expect(findDropdownGroup().exists()).toBe(false);
+ });
+
+ it('is rendered if path is set', () => {
+ createComponent({
+ provideData: {
+ requestAccessPath: 'path/to/request/access',
+ },
+ });
+ expect(findDropdownGroup().exists()).toBe(true);
+ });
+ });
+
describe('request access', () => {
it('does not render request access link', async () => {
createComponent();
diff --git a/spec/frontend/ide/lib/alerts/environment_spec.js b/spec/frontend/ide/lib/alerts/environment_spec.js
deleted file mode 100644
index d645209345c..00000000000
--- a/spec/frontend/ide/lib/alerts/environment_spec.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { GlLink } from '@gitlab/ui';
-import { mount } from '@vue/test-utils';
-import Environments from '~/ide/lib/alerts/environments.vue';
-
-describe('~/ide/lib/alerts/environment.vue', () => {
- let wrapper;
-
- beforeEach(() => {
- wrapper = mount(Environments);
- });
-
- it('shows a message regarding environments', () => {
- expect(wrapper.text()).toBe(
- "No deployments detected. Use environments to control your software's continuous deployment. Learn more about deployment jobs.",
- );
- });
-
- it('links to the help page on environments', () => {
- expect(wrapper.findComponent(GlLink).attributes('href')).toBe('/help/ci/environments/index.md');
- });
-});
diff --git a/spec/frontend/ide/services/index_spec.js b/spec/frontend/ide/services/index_spec.js
index cd099e60070..8e63b5801e8 100644
--- a/spec/frontend/ide/services/index_spec.js
+++ b/spec/frontend/ide/services/index_spec.js
@@ -2,12 +2,10 @@ import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
import getIdeProject from 'ee_else_ce/ide/queries/get_ide_project.query.graphql';
import Api from '~/api';
-import dismissUserCallout from '~/graphql_shared/mutations/dismiss_user_callout.mutation.graphql';
import services from '~/ide/services';
-import { query, mutate } from '~/ide/services/gql';
+import { query } from '~/ide/services/gql';
import { HTTP_STATUS_OK } from '~/lib/utils/http_status';
import { escapeFileUrl } from '~/lib/utils/url_utility';
-import ciConfig from '~/ci/pipeline_editor/graphql/queries/ci_config.query.graphql';
import { projectData } from '../mock_data';
jest.mock('~/api');
@@ -276,35 +274,6 @@ describe('IDE services', () => {
});
});
});
- describe('getCiConfig', () => {
- const TEST_PROJECT_PATH = 'foo/bar';
- const TEST_CI_CONFIG = 'test config';
-
- it('queries with the given CI config and project', () => {
- const result = { data: { ciConfig: { test: 'data' } } };
- query.mockResolvedValue(result);
- return services.getCiConfig(TEST_PROJECT_PATH, TEST_CI_CONFIG).then((data) => {
- expect(data).toEqual(result.data.ciConfig);
- expect(query).toHaveBeenCalledWith({
- query: ciConfig,
- variables: { projectPath: TEST_PROJECT_PATH, content: TEST_CI_CONFIG },
- });
- });
- });
- });
- describe('dismissUserCallout', () => {
- it('mutates the callout to dismiss', () => {
- const result = { data: { callouts: { test: 'data' } } };
- mutate.mockResolvedValue(result);
- return services.dismissUserCallout('test').then((data) => {
- expect(data).toEqual(result.data);
- expect(mutate).toHaveBeenCalledWith({
- mutation: dismissUserCallout,
- variables: { input: { featureName: 'test' } },
- });
- });
- });
- });
describe('getProjectPermissionsData', () => {
const TEST_PROJECT_PATH = 'foo/bar';
diff --git a/spec/frontend/ide/stores/actions/alert_spec.js b/spec/frontend/ide/stores/actions/alert_spec.js
deleted file mode 100644
index 1321c402ebb..00000000000
--- a/spec/frontend/ide/stores/actions/alert_spec.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import testAction from 'helpers/vuex_action_helper';
-import service from '~/ide/services';
-import {
- detectEnvironmentsGuidance,
- dismissEnvironmentsGuidance,
-} from '~/ide/stores/actions/alert';
-import * as types from '~/ide/stores/mutation_types';
-
-jest.mock('~/ide/services');
-
-describe('~/ide/stores/actions/alert', () => {
- describe('detectEnvironmentsGuidance', () => {
- it('should try to fetch CI info', () => {
- const stages = ['a', 'b', 'c'];
- service.getCiConfig.mockResolvedValue({ stages });
-
- return testAction(
- detectEnvironmentsGuidance,
- 'the content',
- { currentProjectId: 'gitlab/test' },
- [{ type: types.DETECT_ENVIRONMENTS_GUIDANCE_ALERT, payload: stages }],
- [],
- () => expect(service.getCiConfig).toHaveBeenCalledWith('gitlab/test', 'the content'),
- );
- });
- });
- describe('dismissCallout', () => {
- it('should try to dismiss the given callout', () => {
- const callout = { featureName: 'test', dismissedAt: 'now' };
-
- service.dismissUserCallout.mockResolvedValue({ userCalloutCreate: { userCallout: callout } });
-
- return testAction(
- dismissEnvironmentsGuidance,
- undefined,
- {},
- [{ type: types.DISMISS_ENVIRONMENTS_GUIDANCE_ALERT }],
- [],
- () =>
- expect(service.dismissUserCallout).toHaveBeenCalledWith(
- 'web_ide_ci_environments_guidance',
- ),
- );
- });
- });
-});
diff --git a/spec/frontend/ide/stores/getters/alert_spec.js b/spec/frontend/ide/stores/getters/alert_spec.js
deleted file mode 100644
index 7068b8e637f..00000000000
--- a/spec/frontend/ide/stores/getters/alert_spec.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { getAlert } from '~/ide/lib/alerts';
-import EnvironmentsMessage from '~/ide/lib/alerts/environments.vue';
-import { createStore } from '~/ide/stores';
-import * as getters from '~/ide/stores/getters/alert';
-import { file } from '../../helpers';
-
-describe('IDE store alert getters', () => {
- let localState;
- let localStore;
-
- beforeEach(() => {
- localStore = createStore();
- localState = localStore.state;
- });
-
- describe('alerts', () => {
- describe('shows an alert about environments', () => {
- let alert;
-
- beforeEach(() => {
- const f = file('.gitlab-ci.yml');
- localState.openFiles.push(f);
- localState.currentActivityView = 'repo-commit-section';
- localState.environmentsGuidanceAlertDetected = true;
- localState.environmentsGuidanceAlertDismissed = false;
-
- const alertKey = getters.getAlert(localState)(f);
- alert = getAlert(alertKey);
- });
-
- it('has a message suggesting to use environments', () => {
- expect(alert.message).toEqual(EnvironmentsMessage);
- });
-
- it('dispatches to dismiss the callout on dismiss', () => {
- jest.spyOn(localStore, 'dispatch').mockImplementation();
- alert.dismiss(localStore);
- expect(localStore.dispatch).toHaveBeenCalledWith('dismissEnvironmentsGuidance');
- });
-
- it('should be a tip alert', () => {
- expect(alert.props).toEqual({ variant: 'tip' });
- });
- });
- });
-});
diff --git a/spec/frontend/ide/stores/mutations/alert_spec.js b/spec/frontend/ide/stores/mutations/alert_spec.js
deleted file mode 100644
index 2840ec4ebb7..00000000000
--- a/spec/frontend/ide/stores/mutations/alert_spec.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import * as types from '~/ide/stores/mutation_types';
-import mutations from '~/ide/stores/mutations/alert';
-
-describe('~/ide/stores/mutations/alert', () => {
- const state = {};
-
- describe(types.DETECT_ENVIRONMENTS_GUIDANCE_ALERT, () => {
- it('checks the stages for any that configure environments', () => {
- mutations[types.DETECT_ENVIRONMENTS_GUIDANCE_ALERT](state, {
- nodes: [{ groups: { nodes: [{ jobs: { nodes: [{}] } }] } }],
- });
- expect(state.environmentsGuidanceAlertDetected).toBe(true);
- mutations[types.DETECT_ENVIRONMENTS_GUIDANCE_ALERT](state, {
- nodes: [{ groups: { nodes: [{ jobs: { nodes: [{ environment: {} }] } }] } }],
- });
- expect(state.environmentsGuidanceAlertDetected).toBe(false);
- });
- });
-
- describe(types.DISMISS_ENVIRONMENTS_GUIDANCE_ALERT, () => {
- it('stops environments guidance', () => {
- mutations[types.DISMISS_ENVIRONMENTS_GUIDANCE_ALERT](state);
- expect(state.environmentsGuidanceAlertDismissed).toBe(true);
- });
- });
-});
diff --git a/spec/frontend/import_entities/import_groups/components/import_status_spec.js b/spec/frontend/import_entities/import_groups/components/import_status_spec.js
index 8d055d45dd8..e0cabb86dcf 100644
--- a/spec/frontend/import_entities/import_groups/components/import_status_spec.js
+++ b/spec/frontend/import_entities/import_groups/components/import_status_spec.js
@@ -88,7 +88,6 @@ describe('Group import status component', () => {
id: 2,
entityId: 11,
hasFailures: true,
- showDetailsLink: true,
status: STATUSES.FINISHED,
},
});
diff --git a/spec/frontend/invite_members/components/invite_modal_base_spec.js b/spec/frontend/invite_members/components/invite_modal_base_spec.js
index c26d1d921a5..4f4288196ab 100644
--- a/spec/frontend/invite_members/components/invite_modal_base_spec.js
+++ b/spec/frontend/invite_members/components/invite_modal_base_spec.js
@@ -70,6 +70,7 @@ describe('InviteModalBase', () => {
const findDisabledInput = () => wrapper.findByTestId('disabled-input');
const findCancelButton = () => wrapper.findByTestId('invite-modal-cancel');
const findActionButton = () => wrapper.findByTestId('invite-modal-submit');
+ const findModal = () => wrapper.findComponent(GlModal);
describe('rendering the modal', () => {
let trackingSpy;
@@ -82,7 +83,7 @@ describe('InviteModalBase', () => {
});
it('renders the modal with the correct title', () => {
- expect(wrapper.findComponent(GlModal).props('title')).toBe(propsData.modalTitle);
+ expect(findModal().props('title')).toBe(propsData.modalTitle);
});
it('displays the introText', () => {
@@ -200,9 +201,7 @@ describe('InviteModalBase', () => {
});
trackingSpy = mockTracking(undefined, wrapper.element, jest.spyOn);
- const modal = wrapper.findComponent(GlModal);
-
- modal.vm.$emit('shown');
+ findModal().vm.$emit('shown');
expectTracking('render', ON_SHOW_TRACK_LABEL, 'default');
unmockTracking();
@@ -280,4 +279,14 @@ describe('InviteModalBase', () => {
state: false,
});
});
+
+ it('emits the shown event when the modal is shown', () => {
+ createComponent();
+ // Verify that the shown event isn't emitted when the component is first created.
+ expect(wrapper.emitted('shown')).toBeUndefined();
+
+ findModal().vm.$emit('shown');
+
+ expect(wrapper.emitted('shown')).toHaveLength(1);
+ });
});
diff --git a/spec/frontend/invite_members/utils/member_utils_spec.js b/spec/frontend/invite_members/utils/member_utils_spec.js
index 4d71a35ff99..abae43c3dbb 100644
--- a/spec/frontend/invite_members/utils/member_utils_spec.js
+++ b/spec/frontend/invite_members/utils/member_utils_spec.js
@@ -1,8 +1,4 @@
-import {
- memberName,
- triggerExternalAlert,
- inviteMembersTrackingOptions,
-} from '~/invite_members/utils/member_utils';
+import { memberName, triggerExternalAlert } from '~/invite_members/utils/member_utils';
jest.mock('~/lib/utils/url_utility');
@@ -22,13 +18,3 @@ describe('Trigger External Alert', () => {
expect(triggerExternalAlert()).toBe(false);
});
});
-
-describe('inviteMembersTrackingOptions', () => {
- it('returns options with a label', () => {
- expect(inviteMembersTrackingOptions({ label: '_label_' })).toEqual({ label: '_label_' });
- });
-
- it('handles options that has no label', () => {
- expect(inviteMembersTrackingOptions({})).toEqual({ label: undefined });
- });
-});
diff --git a/spec/frontend/jira_connect/branches/components/project_dropdown_spec.js b/spec/frontend/jira_connect/branches/components/project_dropdown_spec.js
index f4f4936a134..b81bdc6ac74 100644
--- a/spec/frontend/jira_connect/branches/components/project_dropdown_spec.js
+++ b/spec/frontend/jira_connect/branches/components/project_dropdown_spec.js
@@ -8,13 +8,15 @@ import ProjectDropdown from '~/jira_connect/branches/components/project_dropdown
import { PROJECTS_PER_PAGE } from '~/jira_connect/branches/constants';
import getProjectsQuery from '~/jira_connect/branches/graphql/queries/get_projects.query.graphql';
-import { mockProjects } from '../mock_data';
+import { mockProjects, mockProjects2 } from '../mock_data';
const mockProjectsQueryResponse = {
data: {
projects: {
+ __typename: 'ProjectsConnection',
nodes: mockProjects,
pageInfo: {
+ __typename: 'PageInfo',
hasNextPage: false,
hasPreviousPage: false,
startCursor: '',
@@ -121,6 +123,80 @@ describe('ProjectDropdown', () => {
});
});
+ describe('when projects query succeeds and has pagination', () => {
+ const mockProjectsWithPaginationQueryResponse = {
+ data: {
+ projects: {
+ __typename: 'ProjectsConnection',
+ nodes: mockProjects2,
+ pageInfo: {
+ __typename: 'PageInfo',
+ hasNextPage: true,
+ hasPreviousPage: false,
+ startCursor: '',
+ endCursor: 'end123',
+ },
+ },
+ },
+ };
+ const mockGetProjectsQuery = jest.fn();
+
+ beforeEach(async () => {
+ mockGetProjectsQuery
+ .mockResolvedValueOnce(mockProjectsWithPaginationQueryResponse)
+ .mockResolvedValueOnce(mockProjectsQueryResponse);
+
+ createComponent({
+ mockApollo: createMockApolloProvider({
+ mockGetProjectsQuery,
+ }),
+ });
+ await waitForPromises();
+ });
+
+ afterEach(() => {
+ mockGetProjectsQuery.mockReset();
+ });
+
+ it('uses infinite-scroll', () => {
+ expect(findDropdown().props()).toMatchObject({
+ infiniteScroll: true,
+ infiniteScrollLoading: false,
+ });
+ });
+
+ describe('when "bottom-reached" event is emitted', () => {
+ beforeEach(() => {
+ findDropdown().vm.$emit('bottom-reached');
+ });
+
+ it('sets infinite-scroll-loading to true', () => {
+ expect(findDropdown().props('infiniteScrollLoading')).toBe(true);
+ });
+
+ it('calls fetchMore to get next page', () => {
+ expect(mockGetProjectsQuery).toHaveBeenCalledTimes(2);
+ expect(mockGetProjectsQuery).toHaveBeenCalledWith(
+ expect.objectContaining({
+ after: 'end123',
+ }),
+ );
+ });
+
+ it('appends query results to "items"', async () => {
+ const allProjects = [...mockProjects2, ...mockProjects];
+
+ await waitForPromises();
+
+ expect(findDropdown().props('infiniteScrollLoading')).toBe(false);
+
+ const dropdownItems = findDropdown().props('items');
+ expect(dropdownItems).toHaveLength(allProjects.length);
+ expect(dropdownItems).toMatchObject(allProjects);
+ });
+ });
+ });
+
describe('when projects query fails', () => {
beforeEach(async () => {
createComponent({
diff --git a/spec/frontend/jira_connect/branches/mock_data.js b/spec/frontend/jira_connect/branches/mock_data.js
index 1720e0118c8..a9e7182cb86 100644
--- a/spec/frontend/jira_connect/branches/mock_data.js
+++ b/spec/frontend/jira_connect/branches/mock_data.js
@@ -31,6 +31,36 @@ export const mockProjects = [
},
},
];
+export const mockProjects2 = [
+ {
+ id: 'gitlab-test',
+ name: 'gitlab-test',
+ nameWithNamespace: 'gitlab-test',
+ avatarUrl: 'https://gitlab.com',
+ path: 'gitlab-test-path',
+ fullPath: 'gitlab-test-path',
+ repository: {
+ empty: false,
+ },
+ userPermissions: {
+ pushCode: true,
+ },
+ },
+ {
+ id: 'gitlab-shell',
+ name: 'GitLab Shell',
+ nameWithNamespace: 'gitlab-org/gitlab-shell',
+ avatarUrl: 'https://gitlab.com',
+ path: 'gitlab-shell',
+ fullPath: 'gitlab-org/gitlab-shell',
+ repository: {
+ empty: false,
+ },
+ userPermissions: {
+ pushCode: true,
+ },
+ },
+];
export const mockProjectQueryResponse = (branchNames = mockBranchNames) => ({
data: {
diff --git a/spec/frontend/kubernetes_dashboard/components/workload_table_spec.js b/spec/frontend/kubernetes_dashboard/components/workload_table_spec.js
index 369b8f32c2d..e873da07a2a 100644
--- a/spec/frontend/kubernetes_dashboard/components/workload_table_spec.js
+++ b/spec/frontend/kubernetes_dashboard/components/workload_table_spec.js
@@ -1,7 +1,7 @@
import { mount } from '@vue/test-utils';
import { GlTable, GlBadge, GlPagination } from '@gitlab/ui';
import WorkloadTable from '~/kubernetes_dashboard/components/workload_table.vue';
-import { TABLE_HEADING_CLASSES, PAGE_SIZE } from '~/kubernetes_dashboard/constants';
+import { PAGE_SIZE } from '~/kubernetes_dashboard/constants';
import { mockPodsTableItems } from '../graphql/mock_data';
let wrapper;
@@ -26,25 +26,24 @@ describe('Workload table component', () => {
{
key: 'name',
label: 'Name',
- thClass: TABLE_HEADING_CLASSES,
sortable: true,
+ tdClass: 'gl-md-w-half gl-lg-w-40p gl-word-break-word',
},
{
key: 'status',
label: 'Status',
- thClass: TABLE_HEADING_CLASSES,
sortable: true,
+ tdClass: 'gl-md-w-15',
},
{
key: 'namespace',
label: 'Namespace',
- thClass: TABLE_HEADING_CLASSES,
sortable: true,
+ tdClass: 'gl-md-w-30p gl-lg-w-40p gl-word-break-word',
},
{
key: 'age',
label: 'Age',
- thClass: TABLE_HEADING_CLASSES,
sortable: true,
},
];
@@ -57,13 +56,11 @@ describe('Workload table component', () => {
{
key: 'field-1',
label: 'Field-1',
- thClass: TABLE_HEADING_CLASSES,
sortable: true,
},
{
key: 'field-2',
label: 'Field-2',
- thClass: TABLE_HEADING_CLASSES,
sortable: true,
},
];
diff --git a/spec/frontend/kubernetes_dashboard/graphql/mock_data.js b/spec/frontend/kubernetes_dashboard/graphql/mock_data.js
index 674425a5bc9..8f733d382b2 100644
--- a/spec/frontend/kubernetes_dashboard/graphql/mock_data.js
+++ b/spec/frontend/kubernetes_dashboard/graphql/mock_data.js
@@ -351,3 +351,249 @@ export const mockDaemonSetsTableItems = [
];
export const k8sDaemonSetsMock = [readyDaemonSet, failedDaemonSet];
+
+const completedJob = {
+ status: { failed: 0, succeeded: 1 },
+ spec: { completions: 1 },
+ metadata: {
+ name: 'job-1',
+ namespace: 'default',
+ creationTimestamp: '2023-07-31T11:50:17Z',
+ labels: {},
+ annotations: {},
+ },
+};
+
+const failedJob = {
+ status: { failed: 1, succeeded: 1 },
+ spec: { completions: 2 },
+ metadata: {
+ name: 'job-2',
+ namespace: 'default',
+ creationTimestamp: '2023-11-21T11:50:59Z',
+ labels: {},
+ annotations: {},
+ },
+};
+
+const anotherFailedJob = {
+ status: { failed: 0, succeeded: 1 },
+ spec: { completions: 2 },
+ metadata: {
+ name: 'job-3',
+ namespace: 'default',
+ creationTimestamp: '2023-11-21T11:50:59Z',
+ labels: {},
+ annotations: {},
+ },
+};
+
+export const mockJobsStats = [
+ {
+ title: 'Completed',
+ value: 1,
+ },
+ {
+ title: 'Failed',
+ value: 2,
+ },
+];
+
+export const mockJobsTableItems = [
+ {
+ name: 'job-1',
+ namespace: 'default',
+ status: 'Completed',
+ age: '114d',
+ labels: {},
+ annotations: {},
+ kind: 'Job',
+ },
+ {
+ name: 'job-2',
+ namespace: 'default',
+ status: 'Failed',
+ age: '1d',
+ labels: {},
+ annotations: {},
+ kind: 'Job',
+ },
+ {
+ name: 'job-3',
+ namespace: 'default',
+ status: 'Failed',
+ age: '1d',
+ labels: {},
+ annotations: {},
+ kind: 'Job',
+ },
+];
+
+export const k8sJobsMock = [completedJob, failedJob, anotherFailedJob];
+
+const readyCronJob = {
+ status: { active: 0, lastScheduleTime: '2023-07-31T11:50:17Z' },
+ spec: { suspend: 0 },
+ metadata: {
+ name: 'cronJob-1',
+ namespace: 'default',
+ creationTimestamp: '2023-07-31T11:50:17Z',
+ labels: {},
+ annotations: {},
+ },
+};
+
+const suspendedCronJob = {
+ status: { active: 0, lastScheduleTime: null },
+ spec: { suspend: 1 },
+ metadata: {
+ name: 'cronJob-2',
+ namespace: 'default',
+ creationTimestamp: '2023-11-21T11:50:59Z',
+ labels: {},
+ annotations: {},
+ },
+};
+
+const failedCronJob = {
+ status: { active: 1, lastScheduleTime: null },
+ spec: { suspend: 0 },
+ metadata: {
+ name: 'cronJob-3',
+ namespace: 'default',
+ creationTimestamp: '2023-11-21T11:50:59Z',
+ labels: {},
+ annotations: {},
+ },
+};
+
+export const mockCronJobsStats = [
+ {
+ title: 'Ready',
+ value: 1,
+ },
+ {
+ title: 'Failed',
+ value: 1,
+ },
+ {
+ title: 'Suspended',
+ value: 1,
+ },
+];
+
+export const mockCronJobsTableItems = [
+ {
+ name: 'cronJob-1',
+ namespace: 'default',
+ status: 'Ready',
+ age: '114d',
+ labels: {},
+ annotations: {},
+ kind: 'CronJob',
+ },
+ {
+ name: 'cronJob-2',
+ namespace: 'default',
+ status: 'Suspended',
+ age: '1d',
+ labels: {},
+ annotations: {},
+ kind: 'CronJob',
+ },
+ {
+ name: 'cronJob-3',
+ namespace: 'default',
+ status: 'Failed',
+ age: '1d',
+ labels: {},
+ annotations: {},
+ kind: 'CronJob',
+ },
+];
+
+export const k8sCronJobsMock = [readyCronJob, suspendedCronJob, failedCronJob];
+
+export const k8sServicesMock = [
+ {
+ metadata: {
+ name: 'my-first-service',
+ namespace: 'default',
+ creationTimestamp: '2023-07-31T11:50:17Z',
+ labels: {},
+ annotations: {},
+ },
+ spec: {
+ ports: [
+ {
+ name: 'https',
+ protocol: 'TCP',
+ port: 443,
+ targetPort: 8443,
+ },
+ ],
+ clusterIP: '10.96.0.1',
+ externalIP: '-',
+ type: 'ClusterIP',
+ },
+ },
+ {
+ metadata: {
+ name: 'my-second-service',
+ namespace: 'default',
+ creationTimestamp: '2023-11-21T11:50:59Z',
+ labels: {},
+ annotations: {},
+ },
+ spec: {
+ ports: [
+ {
+ name: 'http',
+ protocol: 'TCP',
+ appProtocol: 'http',
+ port: 80,
+ targetPort: 'http',
+ nodePort: 31989,
+ },
+ {
+ name: 'https',
+ protocol: 'TCP',
+ appProtocol: 'https',
+ port: 443,
+ targetPort: 'https',
+ nodePort: 32679,
+ },
+ ],
+ clusterIP: '10.105.219.238',
+ externalIP: '-',
+ type: 'NodePort',
+ },
+ },
+];
+
+export const mockServicesTableItems = [
+ {
+ name: 'my-first-service',
+ namespace: 'default',
+ type: 'ClusterIP',
+ clusterIP: '10.96.0.1',
+ externalIP: '-',
+ ports: '443/TCP',
+ age: '114d',
+ labels: {},
+ annotations: {},
+ kind: 'Service',
+ },
+ {
+ name: 'my-second-service',
+ namespace: 'default',
+ type: 'NodePort',
+ clusterIP: '10.105.219.238',
+ externalIP: '-',
+ ports: '80:31989/TCP, 443:32679/TCP',
+ age: '1d',
+ labels: {},
+ annotations: {},
+ kind: 'Service',
+ },
+];
diff --git a/spec/frontend/kubernetes_dashboard/graphql/resolvers/kubernetes_spec.js b/spec/frontend/kubernetes_dashboard/graphql/resolvers/kubernetes_spec.js
index 516d91af947..01e2c3d2716 100644
--- a/spec/frontend/kubernetes_dashboard/graphql/resolvers/kubernetes_spec.js
+++ b/spec/frontend/kubernetes_dashboard/graphql/resolvers/kubernetes_spec.js
@@ -1,16 +1,22 @@
-import { CoreV1Api, WatchApi, AppsV1Api } from '@gitlab/cluster-client';
+import { CoreV1Api, WatchApi, AppsV1Api, BatchV1Api } from '@gitlab/cluster-client';
import { resolvers } from '~/kubernetes_dashboard/graphql/resolvers';
import k8sDashboardPodsQuery from '~/kubernetes_dashboard/graphql/queries/k8s_dashboard_pods.query.graphql';
import k8sDashboardDeploymentsQuery from '~/kubernetes_dashboard/graphql/queries/k8s_dashboard_deployments.query.graphql';
import k8sDashboardStatefulSetsQuery from '~/kubernetes_dashboard/graphql/queries/k8s_dashboard_stateful_sets.query.graphql';
import k8sDashboardReplicaSetsQuery from '~/kubernetes_dashboard/graphql/queries/k8s_dashboard_replica_sets.query.graphql';
import k8sDashboardDaemonSetsQuery from '~/kubernetes_dashboard/graphql/queries/k8s_dashboard_daemon_sets.query.graphql';
+import k8sDashboardJobsQuery from '~/kubernetes_dashboard/graphql/queries/k8s_dashboard_jobs.query.graphql';
+import k8sDashboardCronJobsQuery from '~/kubernetes_dashboard/graphql/queries/k8s_dashboard_cron_jobs.query.graphql';
+import k8sDashboardServicesQuery from '~/kubernetes_dashboard/graphql/queries/k8s_dashboard_services.query.graphql';
import {
k8sPodsMock,
k8sDeploymentsMock,
k8sStatefulSetsMock,
k8sReplicaSetsMock,
k8sDaemonSetsMock,
+ k8sJobsMock,
+ k8sCronJobsMock,
+ k8sServicesMock,
} from '../mock_data';
describe('~/frontend/environments/graphql/resolvers', () => {
@@ -456,4 +462,250 @@ describe('~/frontend/environments/graphql/resolvers', () => {
).rejects.toThrow('API error');
});
});
+
+ describe('k8sJobs', () => {
+ const client = { writeQuery: jest.fn() };
+
+ const mockWatcher = WatchApi.prototype;
+ const mockJobsListWatcherFn = jest.fn().mockImplementation(() => {
+ return Promise.resolve(mockWatcher);
+ });
+
+ const mockOnDataFn = jest.fn().mockImplementation((eventName, callback) => {
+ if (eventName === 'data') {
+ callback([]);
+ }
+ });
+
+ const mockJobsListFn = jest.fn().mockImplementation(() => {
+ return Promise.resolve({
+ items: k8sJobsMock,
+ });
+ });
+
+ const mockAllJobsListFn = jest.fn().mockImplementation(mockJobsListFn);
+
+ describe('when the Jobs data is present', () => {
+ beforeEach(() => {
+ jest
+ .spyOn(BatchV1Api.prototype, 'listBatchV1JobForAllNamespaces')
+ .mockImplementation(mockAllJobsListFn);
+ jest.spyOn(mockWatcher, 'subscribeToStream').mockImplementation(mockJobsListWatcherFn);
+ jest.spyOn(mockWatcher, 'on').mockImplementation(mockOnDataFn);
+ });
+
+ it('should request all Jobs from the cluster_client library and watch the events', async () => {
+ const Jobs = await mockResolvers.Query.k8sJobs(
+ null,
+ {
+ configuration,
+ },
+ { client },
+ );
+
+ expect(mockAllJobsListFn).toHaveBeenCalled();
+ expect(mockJobsListWatcherFn).toHaveBeenCalled();
+
+ expect(Jobs).toEqual(k8sJobsMock);
+ });
+
+ it('should update cache with the new data when received from the library', async () => {
+ await mockResolvers.Query.k8sJobs(null, { configuration, namespace: '' }, { client });
+
+ expect(client.writeQuery).toHaveBeenCalledWith({
+ query: k8sDashboardJobsQuery,
+ variables: { configuration, namespace: '' },
+ data: { k8sJobs: [] },
+ });
+ });
+ });
+
+ it('should not watch Jobs from the cluster_client library when the Jobs data is not present', async () => {
+ jest.spyOn(BatchV1Api.prototype, 'listBatchV1JobForAllNamespaces').mockImplementation(
+ jest.fn().mockImplementation(() => {
+ return Promise.resolve({
+ items: [],
+ });
+ }),
+ );
+
+ await mockResolvers.Query.k8sJobs(null, { configuration }, { client });
+
+ expect(mockJobsListWatcherFn).not.toHaveBeenCalled();
+ });
+
+ it('should throw an error if the API call fails', async () => {
+ jest
+ .spyOn(BatchV1Api.prototype, 'listBatchV1JobForAllNamespaces')
+ .mockRejectedValue(new Error('API error'));
+
+ await expect(
+ mockResolvers.Query.k8sJobs(null, { configuration }, { client }),
+ ).rejects.toThrow('API error');
+ });
+ });
+
+ describe('k8sCronJobs', () => {
+ const client = { writeQuery: jest.fn() };
+
+ const mockWatcher = WatchApi.prototype;
+ const mockCronJobsListWatcherFn = jest.fn().mockImplementation(() => {
+ return Promise.resolve(mockWatcher);
+ });
+
+ const mockOnDataFn = jest.fn().mockImplementation((eventName, callback) => {
+ if (eventName === 'data') {
+ callback([]);
+ }
+ });
+
+ const mockCronJobsListFn = jest.fn().mockImplementation(() => {
+ return Promise.resolve({
+ items: k8sCronJobsMock,
+ });
+ });
+
+ const mockAllCronJobsListFn = jest.fn().mockImplementation(mockCronJobsListFn);
+
+ describe('when the CronJobs data is present', () => {
+ beforeEach(() => {
+ jest
+ .spyOn(BatchV1Api.prototype, 'listBatchV1CronJobForAllNamespaces')
+ .mockImplementation(mockAllCronJobsListFn);
+ jest.spyOn(mockWatcher, 'subscribeToStream').mockImplementation(mockCronJobsListWatcherFn);
+ jest.spyOn(mockWatcher, 'on').mockImplementation(mockOnDataFn);
+ });
+
+ it('should request all CronJobs from the cluster_client library and watch the events', async () => {
+ const CronJobs = await mockResolvers.Query.k8sCronJobs(
+ null,
+ {
+ configuration,
+ },
+ { client },
+ );
+
+ expect(mockAllCronJobsListFn).toHaveBeenCalled();
+ expect(mockCronJobsListWatcherFn).toHaveBeenCalled();
+
+ expect(CronJobs).toEqual(k8sCronJobsMock);
+ });
+
+ it('should update cache with the new data when received from the library', async () => {
+ await mockResolvers.Query.k8sCronJobs(null, { configuration, namespace: '' }, { client });
+
+ expect(client.writeQuery).toHaveBeenCalledWith({
+ query: k8sDashboardCronJobsQuery,
+ variables: { configuration, namespace: '' },
+ data: { k8sCronJobs: [] },
+ });
+ });
+ });
+
+ it('should not watch CronJobs from the cluster_client library when the CronJobs data is not present', async () => {
+ jest.spyOn(BatchV1Api.prototype, 'listBatchV1CronJobForAllNamespaces').mockImplementation(
+ jest.fn().mockImplementation(() => {
+ return Promise.resolve({
+ items: [],
+ });
+ }),
+ );
+
+ await mockResolvers.Query.k8sCronJobs(null, { configuration }, { client });
+
+ expect(mockCronJobsListWatcherFn).not.toHaveBeenCalled();
+ });
+
+ it('should throw an error if the API call fails', async () => {
+ jest
+ .spyOn(BatchV1Api.prototype, 'listBatchV1CronJobForAllNamespaces')
+ .mockRejectedValue(new Error('API error'));
+
+ await expect(
+ mockResolvers.Query.k8sCronJobs(null, { configuration }, { client }),
+ ).rejects.toThrow('API error');
+ });
+ });
+
+ describe('k8sServices', () => {
+ const client = { writeQuery: jest.fn() };
+
+ const mockWatcher = WatchApi.prototype;
+ const mockServicesListWatcherFn = jest.fn().mockImplementation(() => {
+ return Promise.resolve(mockWatcher);
+ });
+
+ const mockOnDataFn = jest.fn().mockImplementation((eventName, callback) => {
+ if (eventName === 'data') {
+ callback([]);
+ }
+ });
+
+ const mockServicesListFn = jest.fn().mockImplementation(() => {
+ return Promise.resolve({
+ items: k8sServicesMock,
+ });
+ });
+
+ const mockAllServicesListFn = jest.fn().mockImplementation(mockServicesListFn);
+
+ describe('when the Services data is present', () => {
+ beforeEach(() => {
+ jest
+ .spyOn(CoreV1Api.prototype, 'listCoreV1ServiceForAllNamespaces')
+ .mockImplementation(mockAllServicesListFn);
+ jest.spyOn(mockWatcher, 'subscribeToStream').mockImplementation(mockServicesListWatcherFn);
+ jest.spyOn(mockWatcher, 'on').mockImplementation(mockOnDataFn);
+ });
+
+ it('should request all Services from the cluster_client library and watch the events', async () => {
+ const Services = await mockResolvers.Query.k8sServices(
+ null,
+ {
+ configuration,
+ },
+ { client },
+ );
+
+ expect(mockAllServicesListFn).toHaveBeenCalled();
+ expect(mockServicesListWatcherFn).toHaveBeenCalled();
+
+ expect(Services).toEqual(k8sServicesMock);
+ });
+
+ it('should update cache with the new data when received from the library', async () => {
+ await mockResolvers.Query.k8sServices(null, { configuration, namespace: '' }, { client });
+
+ expect(client.writeQuery).toHaveBeenCalledWith({
+ query: k8sDashboardServicesQuery,
+ variables: { configuration, namespace: '' },
+ data: { k8sServices: [] },
+ });
+ });
+ });
+
+ it('should not watch Services from the cluster_client library when the Services data is not present', async () => {
+ jest.spyOn(CoreV1Api.prototype, 'listCoreV1ServiceForAllNamespaces').mockImplementation(
+ jest.fn().mockImplementation(() => {
+ return Promise.resolve({
+ items: [],
+ });
+ }),
+ );
+
+ await mockResolvers.Query.k8sServices(null, { configuration }, { client });
+
+ expect(mockServicesListWatcherFn).not.toHaveBeenCalled();
+ });
+
+ it('should throw an error if the API call fails', async () => {
+ jest
+ .spyOn(CoreV1Api.prototype, 'listCoreV1ServiceForAllNamespaces')
+ .mockRejectedValue(new Error('API error'));
+
+ await expect(
+ mockResolvers.Query.k8sServices(null, { configuration }, { client }),
+ ).rejects.toThrow('API error');
+ });
+ });
});
diff --git a/spec/frontend/kubernetes_dashboard/helpers/k8s_integration_helper_spec.js b/spec/frontend/kubernetes_dashboard/helpers/k8s_integration_helper_spec.js
index 2892d657aea..1fd89e67e79 100644
--- a/spec/frontend/kubernetes_dashboard/helpers/k8s_integration_helper_spec.js
+++ b/spec/frontend/kubernetes_dashboard/helpers/k8s_integration_helper_spec.js
@@ -3,6 +3,9 @@ import {
calculateDeploymentStatus,
calculateStatefulSetStatus,
calculateDaemonSetStatus,
+ calculateJobStatus,
+ calculateCronJobStatus,
+ generateServicePortsString,
} from '~/kubernetes_dashboard/helpers/k8s_integration_helper';
import { useFakeDate } from 'helpers/fake_date';
@@ -90,4 +93,81 @@ describe('k8s_integration_helper', () => {
expect(calculateDaemonSetStatus(item)).toBe(expected);
});
});
+
+ describe('calculateJobStatus', () => {
+ const completed = {
+ status: { failed: 0, succeeded: 2 },
+ spec: { completions: 2 },
+ };
+ const failed = {
+ status: { failed: 1, succeeded: 1 },
+ spec: { completions: 2 },
+ };
+ const anotherFailed = {
+ status: { failed: 0, succeeded: 1 },
+ spec: { completions: 2 },
+ };
+
+ it.each`
+ condition | item | expected
+ ${'there are no failed and succeeded amount is equal to completions number'} | ${completed} | ${'Completed'}
+ ${'there are some failed statuses'} | ${failed} | ${'Failed'}
+ ${'there are some failed and succeeded amount is not equal to completions number'} | ${anotherFailed} | ${'Failed'}
+ `('returns status as $expected when $condition', ({ item, expected }) => {
+ expect(calculateJobStatus(item)).toBe(expected);
+ });
+ });
+
+ describe('calculateCronJobStatus', () => {
+ const ready = {
+ status: { active: 0, lastScheduleTime: '2023-11-21T11:50:59Z' },
+ spec: { suspend: 0 },
+ };
+ const failed = {
+ status: { active: 1, lastScheduleTime: null },
+ spec: { suspend: 0 },
+ };
+ const suspended = {
+ status: { active: 0, lastScheduleTime: '2023-11-21T11:50:59Z' },
+ spec: { suspend: 1 },
+ };
+
+ it.each`
+ condition | item | expected
+ ${'there are no active and the lastScheduleTime is present'} | ${ready} | ${'Ready'}
+ ${'there are some active and the lastScheduleTime is not present'} | ${failed} | ${'Failed'}
+ ${'there are some suspend in the spec'} | ${suspended} | ${'Suspended'}
+ `('returns status as $expected when $condition', ({ item, expected }) => {
+ expect(calculateCronJobStatus(item)).toBe(expected);
+ });
+ });
+
+ describe('generateServicePortsString', () => {
+ const port = '8080';
+ const protocol = 'TCP';
+ const nodePort = '31732';
+
+ it('returns empty string if no ports provided', () => {
+ expect(generateServicePortsString([])).toBe('');
+ });
+
+ it('returns port and protocol when provided', () => {
+ expect(generateServicePortsString([{ port, protocol }])).toBe(`${port}/${protocol}`);
+ });
+
+ it('returns port, protocol and nodePort when provided', () => {
+ expect(generateServicePortsString([{ port, protocol, nodePort }])).toBe(
+ `${port}:${nodePort}/${protocol}`,
+ );
+ });
+
+ it('returns joined strings of ports if multiple are provided', () => {
+ expect(
+ generateServicePortsString([
+ { port, protocol },
+ { port, protocol, nodePort },
+ ]),
+ ).toBe(`${port}/${protocol}, ${port}:${nodePort}/${protocol}`);
+ });
+ });
});
diff --git a/spec/frontend/kubernetes_dashboard/pages/cron_jobs_page_spec.js b/spec/frontend/kubernetes_dashboard/pages/cron_jobs_page_spec.js
new file mode 100644
index 00000000000..3d5eadf920a
--- /dev/null
+++ b/spec/frontend/kubernetes_dashboard/pages/cron_jobs_page_spec.js
@@ -0,0 +1,102 @@
+import Vue from 'vue';
+import VueApollo from 'vue-apollo';
+import { shallowMount } from '@vue/test-utils';
+import waitForPromises from 'helpers/wait_for_promises';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import CronJobsPage from '~/kubernetes_dashboard/pages/cron_jobs_page.vue';
+import WorkloadLayout from '~/kubernetes_dashboard/components/workload_layout.vue';
+import { useFakeDate } from 'helpers/fake_date';
+import { k8sCronJobsMock, mockCronJobsStats, mockCronJobsTableItems } from '../graphql/mock_data';
+
+Vue.use(VueApollo);
+
+describe('Kubernetes dashboard cronJobs page', () => {
+ let wrapper;
+
+ const configuration = {
+ basePath: 'kas/tunnel/url',
+ baseOptions: {
+ headers: { 'GitLab-Agent-Id': '1' },
+ },
+ };
+
+ const findWorkloadLayout = () => wrapper.findComponent(WorkloadLayout);
+
+ const createApolloProvider = () => {
+ const mockResolvers = {
+ Query: {
+ k8sCronJobs: jest.fn().mockReturnValue(k8sCronJobsMock),
+ },
+ };
+
+ return createMockApollo([], mockResolvers);
+ };
+
+ const createWrapper = (apolloProvider = createApolloProvider()) => {
+ wrapper = shallowMount(CronJobsPage, {
+ provide: { configuration },
+ apolloProvider,
+ });
+ };
+
+ describe('mounted', () => {
+ it('renders WorkloadLayout component', () => {
+ createWrapper();
+
+ expect(findWorkloadLayout().exists()).toBe(true);
+ });
+
+ it('sets loading prop for the WorkloadLayout', () => {
+ createWrapper();
+
+ expect(findWorkloadLayout().props('loading')).toBe(true);
+ });
+
+ it('removes loading prop from the WorkloadLayout when the list of cronJobs loaded', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('loading')).toBe(false);
+ });
+ });
+
+ describe('when gets cronJobs data', () => {
+ useFakeDate(2023, 10, 23, 10, 10);
+
+ it('sets correct stats object for the WorkloadLayout', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('stats')).toEqual(mockCronJobsStats);
+ });
+
+ it('sets correct table items object for the WorkloadLayout', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('items')).toMatchObject(mockCronJobsTableItems);
+ });
+ });
+
+ describe('when gets an error from the cluster_client API', () => {
+ const error = new Error('Error from the cluster_client API');
+ const createErroredApolloProvider = () => {
+ const mockResolvers = {
+ Query: {
+ k8sCronJobs: jest.fn().mockRejectedValueOnce(error),
+ },
+ };
+
+ return createMockApollo([], mockResolvers);
+ };
+
+ beforeEach(async () => {
+ createWrapper(createErroredApolloProvider());
+ await waitForPromises();
+ });
+
+ it('sets errorMessage prop for the WorkloadLayout', () => {
+ expect(findWorkloadLayout().props('errorMessage')).toBe(error.message);
+ });
+ });
+});
diff --git a/spec/frontend/kubernetes_dashboard/pages/jobs_page_spec.js b/spec/frontend/kubernetes_dashboard/pages/jobs_page_spec.js
new file mode 100644
index 00000000000..a7148ae2394
--- /dev/null
+++ b/spec/frontend/kubernetes_dashboard/pages/jobs_page_spec.js
@@ -0,0 +1,102 @@
+import Vue from 'vue';
+import VueApollo from 'vue-apollo';
+import { shallowMount } from '@vue/test-utils';
+import waitForPromises from 'helpers/wait_for_promises';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import JobsPage from '~/kubernetes_dashboard/pages/jobs_page.vue';
+import WorkloadLayout from '~/kubernetes_dashboard/components/workload_layout.vue';
+import { useFakeDate } from 'helpers/fake_date';
+import { k8sJobsMock, mockJobsStats, mockJobsTableItems } from '../graphql/mock_data';
+
+Vue.use(VueApollo);
+
+describe('Kubernetes dashboard jobs page', () => {
+ let wrapper;
+
+ const configuration = {
+ basePath: 'kas/tunnel/url',
+ baseOptions: {
+ headers: { 'GitLab-Agent-Id': '1' },
+ },
+ };
+
+ const findWorkloadLayout = () => wrapper.findComponent(WorkloadLayout);
+
+ const createApolloProvider = () => {
+ const mockResolvers = {
+ Query: {
+ k8sJobs: jest.fn().mockReturnValue(k8sJobsMock),
+ },
+ };
+
+ return createMockApollo([], mockResolvers);
+ };
+
+ const createWrapper = (apolloProvider = createApolloProvider()) => {
+ wrapper = shallowMount(JobsPage, {
+ provide: { configuration },
+ apolloProvider,
+ });
+ };
+
+ describe('mounted', () => {
+ it('renders WorkloadLayout component', () => {
+ createWrapper();
+
+ expect(findWorkloadLayout().exists()).toBe(true);
+ });
+
+ it('sets loading prop for the WorkloadLayout', () => {
+ createWrapper();
+
+ expect(findWorkloadLayout().props('loading')).toBe(true);
+ });
+
+ it('removes loading prop from the WorkloadLayout when the list of jobs loaded', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('loading')).toBe(false);
+ });
+ });
+
+ describe('when gets jobs data', () => {
+ useFakeDate(2023, 10, 23, 10, 10);
+
+ it('sets correct stats object for the WorkloadLayout', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('stats')).toEqual(mockJobsStats);
+ });
+
+ it('sets correct table items object for the WorkloadLayout', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('items')).toMatchObject(mockJobsTableItems);
+ });
+ });
+
+ describe('when gets an error from the cluster_client API', () => {
+ const error = new Error('Error from the cluster_client API');
+ const createErroredApolloProvider = () => {
+ const mockResolvers = {
+ Query: {
+ k8sJobs: jest.fn().mockRejectedValueOnce(error),
+ },
+ };
+
+ return createMockApollo([], mockResolvers);
+ };
+
+ beforeEach(async () => {
+ createWrapper(createErroredApolloProvider());
+ await waitForPromises();
+ });
+
+ it('sets errorMessage prop for the WorkloadLayout', () => {
+ expect(findWorkloadLayout().props('errorMessage')).toBe(error.message);
+ });
+ });
+});
diff --git a/spec/frontend/kubernetes_dashboard/pages/services_page_spec.js b/spec/frontend/kubernetes_dashboard/pages/services_page_spec.js
new file mode 100644
index 00000000000..c76f4330cd6
--- /dev/null
+++ b/spec/frontend/kubernetes_dashboard/pages/services_page_spec.js
@@ -0,0 +1,104 @@
+import Vue from 'vue';
+import VueApollo from 'vue-apollo';
+import { shallowMount } from '@vue/test-utils';
+import waitForPromises from 'helpers/wait_for_promises';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import ServicesPage from '~/kubernetes_dashboard/pages/services_page.vue';
+import WorkloadLayout from '~/kubernetes_dashboard/components/workload_layout.vue';
+import { SERVICES_TABLE_FIELDS } from '~/kubernetes_dashboard/constants';
+import { useFakeDate } from 'helpers/fake_date';
+import { k8sServicesMock, mockServicesTableItems } from '../graphql/mock_data';
+
+Vue.use(VueApollo);
+
+describe('Kubernetes dashboard services page', () => {
+ let wrapper;
+
+ const configuration = {
+ basePath: 'kas/tunnel/url',
+ baseOptions: {
+ headers: { 'GitLab-Agent-Id': '1' },
+ },
+ };
+
+ const findWorkloadLayout = () => wrapper.findComponent(WorkloadLayout);
+
+ const createApolloProvider = () => {
+ const mockResolvers = {
+ Query: {
+ k8sServices: jest.fn().mockReturnValue(k8sServicesMock),
+ },
+ };
+
+ return createMockApollo([], mockResolvers);
+ };
+
+ const createWrapper = (apolloProvider = createApolloProvider()) => {
+ wrapper = shallowMount(ServicesPage, {
+ provide: { configuration },
+ apolloProvider,
+ });
+ };
+
+ describe('mounted', () => {
+ it('renders WorkloadLayout component', () => {
+ createWrapper();
+
+ expect(findWorkloadLayout().exists()).toBe(true);
+ });
+
+ it('sets loading prop for the WorkloadLayout', () => {
+ createWrapper();
+
+ expect(findWorkloadLayout().props('loading')).toBe(true);
+ });
+
+ it('removes loading prop from the WorkloadLayout when the list of services loaded', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('loading')).toBe(false);
+ });
+ });
+
+ describe('when gets services data', () => {
+ useFakeDate(2023, 10, 23, 10, 10);
+
+ it('sets correct stats object for the WorkloadLayout', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('stats')).toEqual([]);
+ });
+
+ it('sets correct table items object for the WorkloadLayout', async () => {
+ createWrapper();
+ await waitForPromises();
+
+ expect(findWorkloadLayout().props('items')).toMatchObject(mockServicesTableItems);
+ expect(findWorkloadLayout().props('fields')).toMatchObject(SERVICES_TABLE_FIELDS);
+ });
+ });
+
+ describe('when gets an error from the cluster_client API', () => {
+ const error = new Error('Error from the cluster_client API');
+ const createErroredApolloProvider = () => {
+ const mockResolvers = {
+ Query: {
+ k8sServices: jest.fn().mockRejectedValueOnce(error),
+ },
+ };
+
+ return createMockApollo([], mockResolvers);
+ };
+
+ beforeEach(async () => {
+ createWrapper(createErroredApolloProvider());
+ await waitForPromises();
+ });
+
+ it('sets errorMessage prop for the WorkloadLayout', () => {
+ expect(findWorkloadLayout().props('errorMessage')).toBe(error.message);
+ });
+ });
+});
diff --git a/spec/frontend/lib/utils/number_utility_spec.js b/spec/frontend/lib/utils/number_utils_spec.js
index 07e3e2f0422..831a2f975b6 100644
--- a/spec/frontend/lib/utils/number_utility_spec.js
+++ b/spec/frontend/lib/utils/number_utils_spec.js
@@ -14,12 +14,6 @@ import {
isNumeric,
isPositiveInteger,
} from '~/lib/utils/number_utils';
-import {
- BYTES_FORMAT_BYTES,
- BYTES_FORMAT_KIB,
- BYTES_FORMAT_MIB,
- BYTES_FORMAT_GIB,
-} from '~/lib/utils/constants';
describe('Number Utils', () => {
describe('formatRelevantDigits', () => {
@@ -87,23 +81,23 @@ describe('Number Utils', () => {
describe('numberToHumanSizeSplit', () => {
it('should return bytes', () => {
- expect(numberToHumanSizeSplit(654)).toEqual(['654', BYTES_FORMAT_BYTES]);
- expect(numberToHumanSizeSplit(-654)).toEqual(['-654', BYTES_FORMAT_BYTES]);
+ expect(numberToHumanSizeSplit(654)).toEqual(['654', 'B']);
+ expect(numberToHumanSizeSplit(-654)).toEqual(['-654', 'B']);
});
it('should return KiB', () => {
- expect(numberToHumanSizeSplit(1079)).toEqual(['1.05', BYTES_FORMAT_KIB]);
- expect(numberToHumanSizeSplit(-1079)).toEqual(['-1.05', BYTES_FORMAT_KIB]);
+ expect(numberToHumanSizeSplit(1079)).toEqual(['1.05', 'KiB']);
+ expect(numberToHumanSizeSplit(-1079)).toEqual(['-1.05', 'KiB']);
});
it('should return MiB', () => {
- expect(numberToHumanSizeSplit(10485764)).toEqual(['10.00', BYTES_FORMAT_MIB]);
- expect(numberToHumanSizeSplit(-10485764)).toEqual(['-10.00', BYTES_FORMAT_MIB]);
+ expect(numberToHumanSizeSplit(10485764)).toEqual(['10.00', 'MiB']);
+ expect(numberToHumanSizeSplit(-10485764)).toEqual(['-10.00', 'MiB']);
});
it('should return GiB', () => {
- expect(numberToHumanSizeSplit(10737418240)).toEqual(['10.00', BYTES_FORMAT_GIB]);
- expect(numberToHumanSizeSplit(-10737418240)).toEqual(['-10.00', BYTES_FORMAT_GIB]);
+ expect(numberToHumanSizeSplit(10737418240)).toEqual(['10.00', 'GiB']);
+ expect(numberToHumanSizeSplit(-10737418240)).toEqual(['-10.00', 'GiB']);
});
});
diff --git a/spec/frontend/lib/utils/secret_detection_spec.js b/spec/frontend/lib/utils/secret_detection_spec.js
index a8da6e8969f..b97827208d6 100644
--- a/spec/frontend/lib/utils/secret_detection_spec.js
+++ b/spec/frontend/lib/utils/secret_detection_spec.js
@@ -14,6 +14,8 @@ describe('containsSensitiveToken', () => {
'1234567890',
'!@#$%^&*()_+',
'https://example.com',
+ 'Some tokens are prefixed with glpat- or glcbt-, for example.',
+ 'glpat-FAKE',
];
it.each(nonSensitiveMessages)('returns false for message: %s', (message) => {
@@ -32,6 +34,9 @@ describe('containsSensitiveToken', () => {
'https://example.com/feed?feed_token=123456789_abcdefghij',
'glpat-1234567890 and feed_token=ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'token: gldt-cgyKc1k_AsnEpmP-5fRL',
+ 'curl "https://gitlab.example.com/api/v4/groups/33/scim/identities" --header "PRIVATE-TOKEN: glsoat-cgyKc1k_AsnEpmP-5fRL',
+ 'CI_JOB_TOKEN=glcbt-FFFF_cgyKc1k_AsnEpmP-5fRL',
+ 'Use this secret job token: glcbt-1_cgyKc1k_AsnEpmP-5fRL',
];
it.each(sensitiveMessages)('returns true for message: %s', (message) => {
diff --git a/spec/frontend/lib/utils/text_utility_spec.js b/spec/frontend/lib/utils/text_utility_spec.js
index 6821ed56857..692beac7ed3 100644
--- a/spec/frontend/lib/utils/text_utility_spec.js
+++ b/spec/frontend/lib/utils/text_utility_spec.js
@@ -42,6 +42,14 @@ describe('text_utility', () => {
it('returns string with first letter capitalized', () => {
expect(textUtils.capitalizeFirstCharacter('gitlab')).toEqual('Gitlab');
});
+
+ it('returns empty string when given string is empty', () => {
+ expect(textUtils.capitalizeFirstCharacter('')).toEqual('');
+ });
+
+ it('returns empty string when given string is invalid', () => {
+ expect(textUtils.capitalizeFirstCharacter(undefined)).toEqual('');
+ });
});
describe('slugify', () => {
diff --git a/spec/frontend/logo_spec.js b/spec/frontend/logo_spec.js
index 8e39e75bd3b..51f47fb89ba 100644
--- a/spec/frontend/logo_spec.js
+++ b/spec/frontend/logo_spec.js
@@ -10,7 +10,7 @@ describe('initPortraitLogoDetection', () => {
};
beforeEach(() => {
- setHTMLFixture('<img class="gl-visibility-hidden gl-h-9 js-portrait-logo-detection" />');
+ setHTMLFixture('<img class="gl-visibility-hidden gl-h-10 js-portrait-logo-detection" />');
initPortraitLogoDetection();
img = document.querySelector('img');
});
@@ -27,12 +27,12 @@ describe('initPortraitLogoDetection', () => {
it('removes gl-visibility-hidden', () => {
expect(img.classList).toContain('gl-visibility-hidden');
- expect(img.classList).toContain('gl-h-9');
+ expect(img.classList).toContain('gl-h-10');
loadImage();
expect(img.classList).not.toContain('gl-visibility-hidden');
- expect(img.classList).toContain('gl-h-9');
+ expect(img.classList).toContain('gl-h-10');
});
});
@@ -44,7 +44,7 @@ describe('initPortraitLogoDetection', () => {
it('removes gl-visibility-hidden', () => {
expect(img.classList).toContain('gl-visibility-hidden');
- expect(img.classList).toContain('gl-h-9');
+ expect(img.classList).toContain('gl-h-10');
loadImage();
diff --git a/spec/frontend/ml/model_registry/apps/index_ml_models_spec.js b/spec/frontend/ml/model_registry/apps/index_ml_models_spec.js
index 66a447e73d3..07d8b4b8b3d 100644
--- a/spec/frontend/ml/model_registry/apps/index_ml_models_spec.js
+++ b/spec/frontend/ml/model_registry/apps/index_ml_models_spec.js
@@ -1,4 +1,4 @@
-import { GlBadge } from '@gitlab/ui';
+import { GlBadge, GlButton } from '@gitlab/ui';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import { IndexMlModels } from '~/ml/model_registry/apps';
import ModelRow from '~/ml/model_registry/components/model_row.vue';
@@ -8,13 +8,22 @@ import { BASE_SORT_FIELDS, MODEL_ENTITIES } from '~/ml/model_registry/constants'
import TitleArea from '~/vue_shared/components/registry/title_area.vue';
import MetadataItem from '~/vue_shared/components/registry/metadata_item.vue';
import EmptyState from '~/ml/model_registry/components/empty_state.vue';
+import ActionsDropdown from '~/ml/model_registry/components/actions_dropdown.vue';
import { mockModels, startCursor, defaultPageInfo } from '../mock_data';
let wrapper;
-const createWrapper = (
- propsData = { models: mockModels, pageInfo: defaultPageInfo, modelCount: 2 },
-) => {
- wrapper = shallowMountExtended(IndexMlModels, { propsData });
+
+const createWrapper = (propsData = {}) => {
+ wrapper = shallowMountExtended(IndexMlModels, {
+ propsData: {
+ models: mockModels,
+ pageInfo: defaultPageInfo,
+ modelCount: 2,
+ createModelPath: 'path/to/create',
+ canWriteModelRegistry: false,
+ ...propsData,
+ },
+ });
};
const findModelRow = (index) => wrapper.findAllComponents(ModelRow).at(index);
@@ -24,8 +33,10 @@ const findSearchBar = () => wrapper.findComponent(SearchBar);
const findTitleArea = () => wrapper.findComponent(TitleArea);
const findModelCountMetadataItem = () => findTitleArea().findComponent(MetadataItem);
const findBadge = () => wrapper.findComponent(GlBadge);
+const findCreateButton = () => findTitleArea().findComponent(GlButton);
+const findActionsDropdown = () => wrapper.findComponent(ActionsDropdown);
-describe('MlModelsIndex', () => {
+describe('ml/model_registry/apps/index_ml_models', () => {
describe('empty state', () => {
beforeEach(() => createWrapper({ models: [], pageInfo: defaultPageInfo }));
@@ -40,6 +51,28 @@ describe('MlModelsIndex', () => {
it('does not show search bar', () => {
expect(findSearchBar().exists()).toBe(false);
});
+
+ it('renders the extra actions button', () => {
+ expect(findActionsDropdown().exists()).toBe(true);
+ });
+ });
+
+ describe('create button', () => {
+ describe('when user has no permission to write model registry', () => {
+ it('does not display create button', () => {
+ createWrapper();
+
+ expect(findCreateButton().exists()).toBe(false);
+ });
+ });
+
+ describe('when user has permission to write model registry', () => {
+ it('displays create button', () => {
+ createWrapper({ canWriteModelRegistry: true });
+
+ expect(findCreateButton().attributes().href).toBe('path/to/create');
+ });
+ });
});
describe('with data', () => {
diff --git a/spec/frontend/ml/model_registry/apps/new_ml_model_spec.js b/spec/frontend/ml/model_registry/apps/new_ml_model_spec.js
new file mode 100644
index 00000000000..204c021c080
--- /dev/null
+++ b/spec/frontend/ml/model_registry/apps/new_ml_model_spec.js
@@ -0,0 +1,119 @@
+import {
+ GlAlert,
+ GlButton,
+ GlFormInput,
+ GlFormTextarea,
+ GlForm,
+ GlSprintf,
+ GlLink,
+} from '@gitlab/ui';
+import Vue from 'vue';
+import VueApollo from 'vue-apollo';
+import NewMlModel from '~/ml/model_registry/apps/new_ml_model.vue';
+import createModelMutation from '~/ml/model_registry/graphql/mutations/create_model.mutation.graphql';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import { visitUrl } from '~/lib/utils/url_utility';
+import * as Sentry from '~/sentry/sentry_browser_wrapper';
+import waitForPromises from 'helpers/wait_for_promises';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import { createModelResponses } from '../graphql_mock_data';
+
+jest.mock('~/lib/utils/url_utility', () => ({
+ ...jest.requireActual('~/lib/utils/url_utility'),
+ visitUrl: jest.fn(),
+}));
+
+describe('ml/model_registry/apps/new_ml_model.vue', () => {
+ let wrapper;
+ let apolloProvider;
+
+ Vue.use(VueApollo);
+
+ beforeEach(() => {
+ jest.spyOn(Sentry, 'captureException').mockImplementation();
+ });
+
+ const mountComponent = (resolver = jest.fn().mockResolvedValue(createModelResponses.success)) => {
+ const requestHandlers = [[createModelMutation, resolver]];
+ apolloProvider = createMockApollo(requestHandlers);
+
+ wrapper = shallowMountExtended(NewMlModel, {
+ apolloProvider,
+ propsData: { projectPath: 'project/path' },
+ stubs: { GlSprintf },
+ });
+ };
+
+ const findButton = () => wrapper.findComponent(GlButton);
+ const findInput = () => wrapper.findComponent(GlFormInput);
+ const findTextarea = () => wrapper.findComponent(GlFormTextarea);
+ const findForm = () => wrapper.findComponent(GlForm);
+ const findDocAlert = () => wrapper.findComponent(GlAlert);
+ const findDocLink = () => findDocAlert().findComponent(GlLink);
+ const findErrorAlert = () => wrapper.findByTestId('new-model-errors');
+
+ const submitForm = async () => {
+ findForm().vm.$emit('submit', { preventDefault: () => {} });
+ await waitForPromises();
+ };
+
+ it('renders the button', () => {
+ mountComponent();
+
+ expect(findButton().text()).toBe('Create model');
+ });
+
+ it('shows link to docs', () => {
+ mountComponent();
+
+ expect(findDocAlert().text()).toBe(
+ 'Creating models is also possible through the MLflow client. Follow the documentation to learn more.',
+ );
+ expect(findDocLink().attributes().href).toBe('/help/user/project/ml/model_registry/index.md');
+ });
+
+ it('submits the query with correct parameters', async () => {
+ const resolver = jest.fn().mockResolvedValue(createModelResponses.success);
+ mountComponent(resolver);
+
+ findInput().vm.$emit('input', 'model_name');
+ findTextarea().vm.$emit('input', 'A description');
+
+ await submitForm();
+
+ expect(resolver).toHaveBeenLastCalledWith(
+ expect.objectContaining({
+ projectPath: 'project/path',
+ name: 'model_name',
+ description: 'A description',
+ }),
+ );
+ });
+
+ it('navigates to the new page when result is successful', async () => {
+ mountComponent();
+
+ await submitForm();
+
+ expect(visitUrl).toHaveBeenCalledWith('/some/project/-/ml/models/1');
+ });
+
+ it('shows errors when result is a top level error', async () => {
+ const error = new Error('Failure!');
+ mountComponent(jest.fn().mockRejectedValue({ error }));
+
+ await submitForm();
+
+ expect(findErrorAlert().text()).toBe('An error has occurred when saving the model.');
+ expect(visitUrl).not.toHaveBeenCalled();
+ });
+
+ it('shows errors when result is a validation error', async () => {
+ mountComponent(jest.fn().mockResolvedValue(createModelResponses.validationFailure));
+
+ await submitForm();
+
+ expect(findErrorAlert().text()).toBe("Name is invalid, Name can't be blank");
+ expect(visitUrl).not.toHaveBeenCalled();
+ });
+});
diff --git a/spec/frontend/ml/model_registry/apps/show_ml_model_spec.js b/spec/frontend/ml/model_registry/apps/show_ml_model_spec.js
index 1fe0f5f88b3..7e991687496 100644
--- a/spec/frontend/ml/model_registry/apps/show_ml_model_spec.js
+++ b/spec/frontend/ml/model_registry/apps/show_ml_model_spec.js
@@ -1,7 +1,7 @@
import { GlBadge, GlTab } from '@gitlab/ui';
-import { shallowMount } from '@vue/test-utils';
import Vue from 'vue';
import VueApollo from 'vue-apollo';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import { ShowMlModel } from '~/ml/model_registry/apps';
import ModelVersionList from '~/ml/model_registry/components/model_version_list.vue';
import CandidateList from '~/ml/model_registry/components/candidate_list.vue';
@@ -19,7 +19,7 @@ let wrapper;
Vue.use(VueApollo);
const createWrapper = (model = MODEL) => {
- wrapper = shallowMount(ShowMlModel, {
+ wrapper = shallowMountExtended(ShowMlModel, {
apolloProvider,
propsData: { model },
stubs: { GlTab },
@@ -37,6 +37,7 @@ const findCandidatesCountBadge = () => findCandidateTab().findComponent(GlBadge)
const findTitleArea = () => wrapper.findComponent(TitleArea);
const findEmptyState = () => wrapper.findComponent(EmptyState);
const findVersionCountMetadataItem = () => findTitleArea().findComponent(MetadataItem);
+const findVersionLink = () => wrapper.findByTestId('model-version-link');
describe('ShowMlModel', () => {
describe('Title', () => {
@@ -67,8 +68,10 @@ describe('ShowMlModel', () => {
expect(findModelVersionDetail().props('modelVersion')).toBe(MODEL.latestVersion);
});
- it('displays the title', () => {
- expect(findDetailTab().text()).toContain('Latest version: 1.2.3');
+ it('displays a link to latest version', () => {
+ expect(findDetailTab().text()).toContain('Latest version:');
+ expect(findVersionLink().attributes('href')).toBe(MODEL.latestVersion.path);
+ expect(findVersionLink().text()).toBe('1.2.3');
});
});
diff --git a/spec/frontend/ml/model_registry/components/actions_dropdown_spec.js b/spec/frontend/ml/model_registry/components/actions_dropdown_spec.js
new file mode 100644
index 00000000000..6285d7360c7
--- /dev/null
+++ b/spec/frontend/ml/model_registry/components/actions_dropdown_spec.js
@@ -0,0 +1,39 @@
+import { mount } from '@vue/test-utils';
+import { GlDisclosureDropdownItem } from '@gitlab/ui';
+import ActionsDropdown from '~/ml/model_registry/components/actions_dropdown.vue';
+
+describe('ml/model_registry/components/actions_dropdown', () => {
+ let wrapper;
+
+ const showToast = jest.fn();
+
+ const createWrapper = () => {
+ wrapper = mount(ActionsDropdown, {
+ mocks: {
+ $toast: {
+ show: showToast,
+ },
+ },
+ provide: {
+ mlflowTrackingUrl: 'path/to/mlflow',
+ },
+ });
+ };
+
+ const findCopyLinkDropdownItem = () => wrapper.findComponent(GlDisclosureDropdownItem);
+
+ it('has data-clipboard-text set to the correct url', () => {
+ createWrapper();
+
+ expect(findCopyLinkDropdownItem().text()).toBe('Copy MLflow tracking URL');
+ expect(findCopyLinkDropdownItem().attributes()['data-clipboard-text']).toBe('path/to/mlflow');
+ });
+
+ it('shows a success toast after copying the url to the clipboard', () => {
+ createWrapper();
+
+ findCopyLinkDropdownItem().find('button').trigger('click');
+
+ expect(showToast).toHaveBeenCalledWith('Copied MLflow tracking URL to clipboard');
+ });
+});
diff --git a/spec/frontend/ml/model_registry/components/candidate_list_spec.js b/spec/frontend/ml/model_registry/components/candidate_list_spec.js
index c10222a99fd..8491c7be16f 100644
--- a/spec/frontend/ml/model_registry/components/candidate_list_spec.js
+++ b/spec/frontend/ml/model_registry/components/candidate_list_spec.js
@@ -1,13 +1,11 @@
import Vue from 'vue';
import VueApollo from 'vue-apollo';
-import { GlAlert } from '@gitlab/ui';
-import { shallowMount } from '@vue/test-utils';
+import { mount } from '@vue/test-utils';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises';
import CandidateList from '~/ml/model_registry/components/candidate_list.vue';
-import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
-import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
+import SearchableList from '~/ml/model_registry/components/searchable_list.vue';
import CandidateListRow from '~/ml/model_registry/components/candidate_list_row.vue';
import getModelCandidatesQuery from '~/ml/model_registry/graphql/queries/get_model_candidates.query.graphql';
import { GRAPHQL_PAGE_SIZE } from '~/ml/model_registry/constants';
@@ -24,10 +22,7 @@ describe('ml/model_registry/components/candidate_list.vue', () => {
let wrapper;
let apolloProvider;
- const findAlert = () => wrapper.findComponent(GlAlert);
- const findLoader = () => wrapper.findComponent(PackagesListLoader);
- const findRegistryList = () => wrapper.findComponent(RegistryList);
- const findListRow = () => wrapper.findComponent(CandidateListRow);
+ const findSearchableList = () => wrapper.findComponent(SearchableList);
const findAllRows = () => wrapper.findAllComponents(CandidateListRow);
const mountComponent = ({
@@ -37,15 +32,12 @@ describe('ml/model_registry/components/candidate_list.vue', () => {
const requestHandlers = [[getModelCandidatesQuery, resolver]];
apolloProvider = createMockApollo(requestHandlers);
- wrapper = shallowMount(CandidateList, {
+ wrapper = mount(CandidateList, {
apolloProvider,
propsData: {
modelId: 2,
...props,
},
- stubs: {
- RegistryList,
- },
});
};
@@ -60,25 +52,9 @@ describe('ml/model_registry/components/candidate_list.vue', () => {
await waitForPromises();
});
- it('displays empty slot message', () => {
+ it('shows empty state', () => {
expect(wrapper.text()).toContain('This model has no candidates');
});
-
- it('does not display loader', () => {
- expect(findLoader().exists()).toBe(false);
- });
-
- it('does not display rows', () => {
- expect(findListRow().exists()).toBe(false);
- });
-
- it('does not display registry list', () => {
- expect(findRegistryList().exists()).toBe(false);
- });
-
- it('does not display alert', () => {
- expect(findAlert().exists()).toBe(false);
- });
});
describe('if load fails, alert', () => {
@@ -90,19 +66,9 @@ describe('ml/model_registry/components/candidate_list.vue', () => {
});
it('is displayed', () => {
- expect(findAlert().exists()).toBe(true);
- });
-
- it('shows error message', () => {
- expect(findAlert().text()).toContain('Failed to load model candidates with error: Failure!');
- });
-
- it('is not dismissible', () => {
- expect(findAlert().props('dismissible')).toBe(false);
- });
-
- it('is of variant danger', () => {
- expect(findAlert().attributes('variant')).toBe('danger');
+ expect(findSearchableList().props('errorMessage')).toBe(
+ 'Failed to load model candidates with error: Failure!',
+ );
});
it('error is logged in sentry', () => {
@@ -116,21 +82,11 @@ describe('ml/model_registry/components/candidate_list.vue', () => {
await waitForPromises();
});
- it('displays package registry list', () => {
- expect(findRegistryList().exists()).toEqual(true);
+ it('Passes items to list', () => {
+ expect(findSearchableList().props('items')).toEqual(graphqlCandidates);
});
- it('binds the right props', () => {
- expect(findRegistryList().props()).toMatchObject({
- items: graphqlCandidates,
- pagination: {},
- isLoading: false,
- hiddenDelete: true,
- });
- });
-
- it('displays candidate rows', () => {
- expect(findAllRows().exists()).toEqual(true);
+ it('displays package version rows', () => {
expect(findAllRows()).toHaveLength(graphqlCandidates.length);
});
@@ -143,17 +99,9 @@ describe('ml/model_registry/components/candidate_list.vue', () => {
candidate: expect.objectContaining(graphqlCandidates[1]),
});
});
-
- it('does not display loader', () => {
- expect(findLoader().exists()).toBe(false);
- });
-
- it('does not display empty message', () => {
- expect(findAlert().exists()).toBe(false);
- });
});
- describe('when user interacts with pagination', () => {
+ describe('when list requests update', () => {
const resolver = jest.fn().mockResolvedValue(modelCandidatesQuery());
beforeEach(async () => {
@@ -161,21 +109,17 @@ describe('ml/model_registry/components/candidate_list.vue', () => {
await waitForPromises();
});
- it('when list emits next-page fetches the next set of records', async () => {
- findRegistryList().vm.$emit('next-page');
- await waitForPromises();
-
- expect(resolver).toHaveBeenLastCalledWith(
- expect.objectContaining({ after: graphqlPageInfo.endCursor, first: GRAPHQL_PAGE_SIZE }),
- );
- });
+ it('when list emits fetch-page fetches the next set of records', async () => {
+ findSearchableList().vm.$emit('fetch-page', {
+ after: 'eyJpZCI6IjIifQ',
+ first: 30,
+ id: 'gid://gitlab/Ml::Model/2',
+ });
- it('when list emits prev-page fetches the prev set of records', async () => {
- findRegistryList().vm.$emit('prev-page');
await waitForPromises();
expect(resolver).toHaveBeenLastCalledWith(
- expect.objectContaining({ before: graphqlPageInfo.startCursor, last: GRAPHQL_PAGE_SIZE }),
+ expect.objectContaining({ after: graphqlPageInfo.endCursor, first: GRAPHQL_PAGE_SIZE }),
);
});
});
diff --git a/spec/frontend/ml/model_registry/components/model_version_list_spec.js b/spec/frontend/ml/model_registry/components/model_version_list_spec.js
index 41f7e71c543..f5d6acf3bae 100644
--- a/spec/frontend/ml/model_registry/components/model_version_list_spec.js
+++ b/spec/frontend/ml/model_registry/components/model_version_list_spec.js
@@ -1,13 +1,11 @@
import Vue from 'vue';
import VueApollo from 'vue-apollo';
-import { GlAlert } from '@gitlab/ui';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
-import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import { mountExtended } from 'helpers/vue_test_utils_helper';
import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises';
import ModelVersionList from '~/ml/model_registry/components/model_version_list.vue';
-import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
-import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
+import SearchableList from '~/ml/model_registry/components/searchable_list.vue';
import ModelVersionRow from '~/ml/model_registry/components/model_version_row.vue';
import getModelVersionsQuery from '~/ml/model_registry/graphql/queries/get_model_versions.query.graphql';
import EmptyState from '~/ml/model_registry/components/empty_state.vue';
@@ -25,11 +23,8 @@ describe('ModelVersionList', () => {
let wrapper;
let apolloProvider;
- const findAlert = () => wrapper.findComponent(GlAlert);
- const findLoader = () => wrapper.findComponent(PackagesListLoader);
- const findRegistryList = () => wrapper.findComponent(RegistryList);
+ const findSearchableList = () => wrapper.findComponent(SearchableList);
const findEmptyState = () => wrapper.findComponent(EmptyState);
- const findListRow = () => wrapper.findComponent(ModelVersionRow);
const findAllRows = () => wrapper.findAllComponents(ModelVersionRow);
const mountComponent = ({
@@ -39,15 +34,12 @@ describe('ModelVersionList', () => {
const requestHandlers = [[getModelVersionsQuery, resolver]];
apolloProvider = createMockApollo(requestHandlers);
- wrapper = shallowMountExtended(ModelVersionList, {
+ wrapper = mountExtended(ModelVersionList, {
apolloProvider,
propsData: {
modelId: 2,
...props,
},
- stubs: {
- RegistryList,
- },
});
};
@@ -65,22 +57,6 @@ describe('ModelVersionList', () => {
it('shows empty state', () => {
expect(findEmptyState().props('entityType')).toBe(MODEL_ENTITIES.modelVersion);
});
-
- it('does not display loader', () => {
- expect(findLoader().exists()).toBe(false);
- });
-
- it('does not display rows', () => {
- expect(findListRow().exists()).toBe(false);
- });
-
- it('does not display registry list', () => {
- expect(findRegistryList().exists()).toBe(false);
- });
-
- it('does not display alert', () => {
- expect(findAlert().exists()).toBe(false);
- });
});
describe('if load fails, alert', () => {
@@ -92,19 +68,9 @@ describe('ModelVersionList', () => {
});
it('is displayed', () => {
- expect(findAlert().exists()).toBe(true);
- });
-
- it('shows error message', () => {
- expect(findAlert().text()).toContain('Failed to load model versions with error: Failure!');
- });
-
- it('is not dismissible', () => {
- expect(findAlert().props('dismissible')).toBe(false);
- });
-
- it('is of variant danger', () => {
- expect(findAlert().attributes('variant')).toBe('danger');
+ expect(findSearchableList().props('errorMessage')).toBe(
+ 'Failed to load model versions with error: Failure!',
+ );
});
it('error is logged in sentry', () => {
@@ -118,21 +84,11 @@ describe('ModelVersionList', () => {
await waitForPromises();
});
- it('displays package registry list', () => {
- expect(findRegistryList().exists()).toEqual(true);
- });
-
- it('binds the right props', () => {
- expect(findRegistryList().props()).toMatchObject({
- items: graphqlModelVersions,
- pagination: {},
- isLoading: false,
- hiddenDelete: true,
- });
+ it('Passes items to list', () => {
+ expect(findSearchableList().props('items')).toEqual(graphqlModelVersions);
});
it('displays package version rows', () => {
- expect(findAllRows().exists()).toEqual(true);
expect(findAllRows()).toHaveLength(graphqlModelVersions.length);
});
@@ -145,17 +101,9 @@ describe('ModelVersionList', () => {
modelVersion: expect.objectContaining(graphqlModelVersions[1]),
});
});
-
- it('does not display loader', () => {
- expect(findLoader().exists()).toBe(false);
- });
-
- it('does not display empty state', () => {
- expect(findEmptyState().exists()).toBe(false);
- });
});
- describe('when user interacts with pagination', () => {
+ describe('when list requests update', () => {
const resolver = jest.fn().mockResolvedValue(modelVersionsQuery());
beforeEach(async () => {
@@ -163,21 +111,17 @@ describe('ModelVersionList', () => {
await waitForPromises();
});
- it('when list emits next-page fetches the next set of records', async () => {
- findRegistryList().vm.$emit('next-page');
- await waitForPromises();
-
- expect(resolver).toHaveBeenLastCalledWith(
- expect.objectContaining({ after: graphqlPageInfo.endCursor, first: GRAPHQL_PAGE_SIZE }),
- );
- });
+ it('when list emits fetch-page fetches the next set of records', async () => {
+ findSearchableList().vm.$emit('fetch-page', {
+ after: 'eyJpZCI6IjIifQ',
+ first: 30,
+ id: 'gid://gitlab/Ml::Model/2',
+ });
- it('when list emits prev-page fetches the prev set of records', async () => {
- findRegistryList().vm.$emit('prev-page');
await waitForPromises();
expect(resolver).toHaveBeenLastCalledWith(
- expect.objectContaining({ before: graphqlPageInfo.startCursor, last: GRAPHQL_PAGE_SIZE }),
+ expect.objectContaining({ after: graphqlPageInfo.endCursor, first: GRAPHQL_PAGE_SIZE }),
);
});
});
diff --git a/spec/frontend/ml/model_registry/components/searchable_list_spec.js b/spec/frontend/ml/model_registry/components/searchable_list_spec.js
new file mode 100644
index 00000000000..ea58a9a830a
--- /dev/null
+++ b/spec/frontend/ml/model_registry/components/searchable_list_spec.js
@@ -0,0 +1,170 @@
+import { GlAlert } from '@gitlab/ui';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import SearchableList from '~/ml/model_registry/components/searchable_list.vue';
+import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
+import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
+import { defaultPageInfo } from '../mock_data';
+
+describe('ml/model_registry/components/searchable_list.vue', () => {
+ let wrapper;
+
+ const findAlert = () => wrapper.findComponent(GlAlert);
+ const findLoader = () => wrapper.findComponent(PackagesListLoader);
+ const findRegistryList = () => wrapper.findComponent(RegistryList);
+ const findEmptyState = () => wrapper.findByTestId('empty-state-slot');
+ const findFirstRow = () => wrapper.findByTestId('element');
+ const findRows = () => wrapper.findAllByTestId('element');
+
+ const defaultProps = {
+ items: ['a', 'b', 'c'],
+ pageInfo: defaultPageInfo,
+ isLoading: false,
+ errorMessage: '',
+ };
+
+ const mountComponent = (props = {}) => {
+ wrapper = shallowMountExtended(SearchableList, {
+ propsData: {
+ ...defaultProps,
+ ...props,
+ },
+ stubs: {
+ RegistryList,
+ },
+ slots: {
+ 'empty-state': '<div data-testid="empty-state-slot">This is empty</div>',
+ item: '<div data-testid="element"></div>',
+ },
+ });
+ };
+
+ describe('when list is loaded and has no data', () => {
+ beforeEach(() => mountComponent({ items: [] }));
+
+ it('shows empty state', () => {
+ expect(findEmptyState().text()).toBe('This is empty');
+ });
+
+ it('does not display loader', () => {
+ expect(findLoader().exists()).toBe(false);
+ });
+
+ it('does not display rows', () => {
+ expect(findFirstRow().exists()).toBe(false);
+ });
+
+ it('does not display registry list', () => {
+ expect(findRegistryList().exists()).toBe(false);
+ });
+
+ it('does not display alert', () => {
+ expect(findAlert().exists()).toBe(false);
+ });
+ });
+
+ describe('if errorMessage', () => {
+ beforeEach(() => mountComponent({ errorMessage: 'Failure!' }));
+
+ it('shows error message', () => {
+ expect(findAlert().text()).toContain('Failure!');
+ });
+
+ it('is not dismissible', () => {
+ expect(findAlert().props('dismissible')).toBe(false);
+ });
+
+ it('is of variant danger', () => {
+ expect(findAlert().attributes('variant')).toBe('danger');
+ });
+
+ it('hides loader', () => {
+ expect(findLoader().exists()).toBe(false);
+ });
+
+ it('hides registry list', () => {
+ expect(findRegistryList().exists()).toBe(false);
+ });
+
+ it('hides empty state', () => {
+ expect(findEmptyState().exists()).toBe(false);
+ });
+ });
+
+ describe('if loading', () => {
+ beforeEach(() => mountComponent({ isLoading: true }));
+
+ it('shows loader', () => {
+ expect(findLoader().exists()).toBe(true);
+ });
+
+ it('hides error message', () => {
+ expect(findAlert().exists()).toBe(false);
+ });
+
+ it('hides registry list', () => {
+ expect(findRegistryList().exists()).toBe(false);
+ });
+
+ it('hides empty state', () => {
+ expect(findEmptyState().exists()).toBe(false);
+ });
+ });
+
+ describe('when list is loaded with data', () => {
+ beforeEach(() => mountComponent());
+
+ it('displays package registry list', () => {
+ expect(findRegistryList().exists()).toEqual(true);
+ });
+
+ it('binds the right props', () => {
+ expect(findRegistryList().props()).toMatchObject({
+ items: ['a', 'b', 'c'],
+ isLoading: false,
+ pagination: defaultPageInfo,
+ hiddenDelete: true,
+ });
+ });
+
+ it('displays package version rows', () => {
+ expect(findRows().exists()).toEqual(true);
+ expect(findRows()).toHaveLength(3);
+ });
+
+ it('does not display loader', () => {
+ expect(findLoader().exists()).toBe(false);
+ });
+
+ it('does not display empty state', () => {
+ expect(findEmptyState().exists()).toBe(false);
+ });
+ });
+
+ describe('when user interacts with pagination', () => {
+ beforeEach(() => mountComponent());
+
+ it('when list emits next-page emits fetchPage with correct pageInfo', () => {
+ findRegistryList().vm.$emit('next-page');
+
+ const expectedNewPageInfo = {
+ after: 'eyJpZCI6IjIifQ',
+ first: 30,
+ last: null,
+ };
+
+ expect(wrapper.emitted('fetch-page')).toEqual([[expectedNewPageInfo]]);
+ });
+
+ it('when list emits prev-page emits fetchPage with correct pageInfo', () => {
+ findRegistryList().vm.$emit('prev-page');
+
+ const expectedNewPageInfo = {
+ before: 'eyJpZCI6IjE2In0',
+ first: null,
+ last: 30,
+ };
+
+ expect(wrapper.emitted('fetch-page')).toEqual([[expectedNewPageInfo]]);
+ });
+ });
+});
diff --git a/spec/frontend/ml/model_registry/graphql_mock_data.js b/spec/frontend/ml/model_registry/graphql_mock_data.js
index 1c31ee4627f..27424fbf0df 100644
--- a/spec/frontend/ml/model_registry/graphql_mock_data.js
+++ b/spec/frontend/ml/model_registry/graphql_mock_data.js
@@ -114,3 +114,27 @@ export const emptyCandidateQuery = {
},
},
};
+
+export const createModelResponses = {
+ success: {
+ data: {
+ mlModelCreate: {
+ model: {
+ id: 'gid://gitlab/Ml::Model/1',
+ _links: {
+ showPath: '/some/project/-/ml/models/1',
+ },
+ },
+ errors: [],
+ },
+ },
+ },
+ validationFailure: {
+ data: {
+ mlModelCreate: {
+ model: null,
+ errors: ['Name is invalid', "Name can't be blank"],
+ },
+ },
+ },
+};
diff --git a/spec/frontend/ml/model_registry/mock_data.js b/spec/frontend/ml/model_registry/mock_data.js
index 4399df38990..d8bb6a8eedb 100644
--- a/spec/frontend/ml/model_registry/mock_data.js
+++ b/spec/frontend/ml/model_registry/mock_data.js
@@ -42,6 +42,7 @@ export const newCandidate = () => ({
const LATEST_VERSION = {
version: '1.2.3',
+ path: 'path/to/modelversion',
};
export const makeModel = ({ latestVersion } = { latestVersion: LATEST_VERSION }) => ({
diff --git a/spec/frontend/oauth_remember_me_spec.js b/spec/frontend/oauth_remember_me_spec.js
index 33295d46fea..4fea216302f 100644
--- a/spec/frontend/oauth_remember_me_spec.js
+++ b/spec/frontend/oauth_remember_me_spec.js
@@ -5,13 +5,13 @@ import OAuthRememberMe from '~/pages/sessions/new/oauth_remember_me';
describe('OAuthRememberMe', () => {
const findFormAction = (selector) => {
- return $(`#oauth-container .js-oauth-login${selector}`).parent('form').attr('action');
+ return $(`.js-oauth-login ${selector}`).parent('form').attr('action');
};
beforeEach(() => {
setHTMLFixture(htmlOauthRememberMe);
- new OAuthRememberMe({ container: $('#oauth-container') }).bindEvents();
+ new OAuthRememberMe({ container: $('.js-oauth-login') }).bindEvents();
});
afterEach(() => {
@@ -19,7 +19,7 @@ describe('OAuthRememberMe', () => {
});
it('adds and removes the "remember_me" query parameter from all OAuth login buttons', () => {
- $('#oauth-container #remember_me_omniauth').click();
+ $('.js-oauth-login #remember_me_omniauth').click();
expect(findFormAction('.twitter')).toBe('http://example.com/?remember_me=1');
expect(findFormAction('.github')).toBe('http://example.com/?remember_me=1');
@@ -27,7 +27,7 @@ describe('OAuthRememberMe', () => {
'http://example.com/?redirect_fragment=L1&remember_me=1',
);
- $('#oauth-container #remember_me_omniauth').click();
+ $('.js-oauth-login #remember_me_omniauth').click();
expect(findFormAction('.twitter')).toBe('http://example.com/');
expect(findFormAction('.github')).toBe('http://example.com/');
diff --git a/spec/frontend/observability/client_spec.js b/spec/frontend/observability/client_spec.js
index e7b68a2346e..0a852d9e000 100644
--- a/spec/frontend/observability/client_spec.js
+++ b/spec/frontend/observability/client_spec.js
@@ -279,6 +279,38 @@ describe('buildClient', () => {
'&attr_name=name1&attr_value=value1',
);
});
+ describe('date range time filter', () => {
+ it('handles custom date range period filter', async () => {
+ await client.fetchTraces({
+ filters: {
+ period: [{ operator: '=', value: '2023-01-01 - 2023-02-01' }],
+ },
+ });
+ expect(getQueryParam()).not.toContain('period=');
+ expect(getQueryParam()).toContain(
+ 'start_time=2023-01-01T00:00:00.000Z&end_time=2023-02-01T00:00:00.000Z',
+ );
+ });
+
+ it.each([
+ 'invalid - 2023-02-01',
+ '2023-02-01 - invalid',
+ 'invalid - invalid',
+ '2023-01-01 / 2023-02-01',
+ '2023-01-01 2023-02-01',
+ '2023-01-01 - 2023-02-01 - 2023-02-01',
+ ])('ignore invalid values', async (val) => {
+ await client.fetchTraces({
+ filters: {
+ period: [{ operator: '=', value: val }],
+ },
+ });
+
+ expect(getQueryParam()).not.toContain('start_time=');
+ expect(getQueryParam()).not.toContain('end_time=');
+ expect(getQueryParam()).not.toContain('period=');
+ });
+ });
it('handles repeated params', async () => {
await client.fetchTraces({
diff --git a/spec/frontend/organizations/new/components/app_spec.js b/spec/frontend/organizations/new/components/app_spec.js
index 4f31baedbf6..e3e1c5b9684 100644
--- a/spec/frontend/organizations/new/components/app_spec.js
+++ b/spec/frontend/organizations/new/components/app_spec.js
@@ -24,10 +24,14 @@ describe('OrganizationNewApp', () => {
let wrapper;
let mockApollo;
+ const file = new File(['foo'], 'foo.jpg', {
+ type: 'text/plain',
+ });
+
+ const successfulResponseHandler = jest.fn().mockResolvedValue(organizationCreateResponse);
+
const createComponent = ({
- handlers = [
- [organizationCreateMutation, jest.fn().mockResolvedValue(organizationCreateResponse)],
- ],
+ handlers = [[organizationCreateMutation, successfulResponseHandler]],
} = {}) => {
mockApollo = createMockApollo(handlers);
@@ -36,7 +40,12 @@ describe('OrganizationNewApp', () => {
const findForm = () => wrapper.findComponent(NewEditForm);
const submitForm = async () => {
- findForm().vm.$emit('submit', { name: 'Foo bar', path: 'foo-bar' });
+ findForm().vm.$emit('submit', {
+ name: 'Foo bar',
+ path: 'foo-bar',
+ description: 'Foo bar description',
+ avatar: file,
+ });
await nextTick();
};
@@ -74,7 +83,15 @@ describe('OrganizationNewApp', () => {
await waitForPromises();
});
- it('redirects user to organization web url', () => {
+ it('calls mutation with correct variables and redirects user to organization web url', () => {
+ expect(successfulResponseHandler).toHaveBeenCalledWith({
+ input: {
+ name: 'Foo bar',
+ path: 'foo-bar',
+ description: 'Foo bar description',
+ avatar: file,
+ },
+ });
expect(visitUrlWithAlerts).toHaveBeenCalledWith(
organizationCreateResponse.data.organizationCreate.organization.webUrl,
[
diff --git a/spec/frontend/organizations/settings/general/components/organization_settings_spec.js b/spec/frontend/organizations/settings/general/components/organization_settings_spec.js
index d1c637331a8..52e81d7fb5d 100644
--- a/spec/frontend/organizations/settings/general/components/organization_settings_spec.js
+++ b/spec/frontend/organizations/settings/general/components/organization_settings_spec.js
@@ -5,7 +5,12 @@ import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import OrganizationSettings from '~/organizations/settings/general/components/organization_settings.vue';
import SettingsBlock from '~/vue_shared/components/settings/settings_block.vue';
import NewEditForm from '~/organizations/shared/components/new_edit_form.vue';
-import { FORM_FIELD_NAME, FORM_FIELD_ID } from '~/organizations/shared/constants';
+import {
+ FORM_FIELD_NAME,
+ FORM_FIELD_ID,
+ FORM_FIELD_AVATAR,
+ FORM_FIELD_DESCRIPTION,
+} from '~/organizations/shared/constants';
import organizationUpdateMutation from '~/organizations/settings/general/graphql/mutations/organization_update.mutation.graphql';
import {
organizationUpdateResponse,
@@ -38,22 +43,33 @@ describe('OrganizationSettings', () => {
},
};
+ const file = new File(['foo'], 'foo.jpg', {
+ type: 'text/plain',
+ });
+
const successfulResponseHandler = jest.fn().mockResolvedValue(organizationUpdateResponse);
const createComponent = ({
handlers = [[organizationUpdateMutation, successfulResponseHandler]],
+ provide = {},
} = {}) => {
mockApollo = createMockApollo(handlers);
wrapper = shallowMountExtended(OrganizationSettings, {
- provide: defaultProvide,
+ provide: { ...defaultProvide, ...provide },
apolloProvider: mockApollo,
});
};
const findForm = () => wrapper.findComponent(NewEditForm);
- const submitForm = async () => {
- findForm().vm.$emit('submit', { name: 'Foo bar', path: 'foo-bar' });
+ const submitForm = async (data = {}) => {
+ findForm().vm.$emit('submit', {
+ name: 'Foo bar',
+ path: 'foo-bar',
+ description: 'Foo bar description',
+ avatar: file,
+ ...data,
+ });
await nextTick();
};
@@ -75,7 +91,7 @@ describe('OrganizationSettings', () => {
expect(findForm().props()).toMatchObject({
loading: false,
initialFormValues: defaultProvide.organization,
- fieldsToRender: [FORM_FIELD_NAME, FORM_FIELD_ID],
+ fieldsToRender: [FORM_FIELD_NAME, FORM_FIELD_ID, FORM_FIELD_DESCRIPTION, FORM_FIELD_AVATAR],
});
});
@@ -108,6 +124,8 @@ describe('OrganizationSettings', () => {
input: {
id: 'gid://gitlab/Organizations::Organization/1',
name: 'Foo bar',
+ description: 'Foo bar description',
+ avatar: file,
},
});
expect(visitUrlWithAlerts).toHaveBeenCalledWith(window.location.href, [
@@ -162,5 +180,48 @@ describe('OrganizationSettings', () => {
});
});
});
+
+ describe('when organization has avatar', () => {
+ beforeEach(() => {
+ createComponent({
+ provide: { organization: { ...defaultProvide.organization, avatar: 'avatar.jpg' } },
+ });
+ });
+
+ describe('when avatar is explicitly removed', () => {
+ beforeEach(async () => {
+ await submitForm({ avatar: null });
+ await waitForPromises();
+ });
+
+ it('sets `avatar` argument to `null`', () => {
+ expect(successfulResponseHandler).toHaveBeenCalledWith({
+ input: {
+ id: 'gid://gitlab/Organizations::Organization/1',
+ name: 'Foo bar',
+ description: 'Foo bar description',
+ avatar: null,
+ },
+ });
+ });
+ });
+
+ describe('when avatar is not changed', () => {
+ beforeEach(async () => {
+ await submitForm({ avatar: 'avatar.jpg' });
+ await waitForPromises();
+ });
+
+ it('does not pass `avatar` argument', () => {
+ expect(successfulResponseHandler).toHaveBeenCalledWith({
+ input: {
+ id: 'gid://gitlab/Organizations::Organization/1',
+ name: 'Foo bar',
+ description: 'Foo bar description',
+ },
+ });
+ });
+ });
+ });
});
});
diff --git a/spec/frontend/organizations/shared/components/groups_view_spec.js b/spec/frontend/organizations/shared/components/groups_view_spec.js
index 8d6ea60ffd2..e51d6a98743 100644
--- a/spec/frontend/organizations/shared/components/groups_view_spec.js
+++ b/spec/frontend/organizations/shared/components/groups_view_spec.js
@@ -25,13 +25,20 @@ describe('GroupsView', () => {
newGroupPath: '/groups/new',
};
+ const defaultPropsData = {
+ listItemClass: 'gl-px-5',
+ };
+
const createComponent = ({ mockResolvers = resolvers, propsData = {} } = {}) => {
mockApollo = createMockApollo([], mockResolvers);
wrapper = shallowMountExtended(GroupsView, {
apolloProvider: mockApollo,
provide: defaultProvide,
- propsData,
+ propsData: {
+ ...defaultPropsData,
+ ...propsData,
+ },
});
};
@@ -115,6 +122,7 @@ describe('GroupsView', () => {
expect(wrapper.findComponent(GroupsList).props()).toEqual({
groups: formatGroups(organizationGroups.nodes),
showGroupIcon: true,
+ listItemClass: defaultPropsData.listItemClass,
});
});
});
diff --git a/spec/frontend/organizations/shared/components/new_edit_form_spec.js b/spec/frontend/organizations/shared/components/new_edit_form_spec.js
index 1fcfc20bf1a..5be26ef7cc3 100644
--- a/spec/frontend/organizations/shared/components/new_edit_form_spec.js
+++ b/spec/frontend/organizations/shared/components/new_edit_form_spec.js
@@ -1,9 +1,16 @@
-import { GlButton } from '@gitlab/ui';
import { nextTick } from 'vue';
import NewEditForm from '~/organizations/shared/components/new_edit_form.vue';
import OrganizationUrlField from '~/organizations/shared/components/organization_url_field.vue';
-import { FORM_FIELD_NAME, FORM_FIELD_ID, FORM_FIELD_PATH } from '~/organizations/shared/constants';
+import AvatarUploadDropzone from '~/vue_shared/components/upload_dropzone/avatar_upload_dropzone.vue';
+import MarkdownField from '~/vue_shared/components/markdown/field.vue';
+import { helpPagePath } from '~/helpers/help_page_helper';
+import {
+ FORM_FIELD_NAME,
+ FORM_FIELD_ID,
+ FORM_FIELD_PATH,
+ FORM_FIELD_AVATAR,
+} from '~/organizations/shared/constants';
import { mountExtended } from 'helpers/vue_test_utils_helper';
describe('NewEditForm', () => {
@@ -12,6 +19,7 @@ describe('NewEditForm', () => {
const defaultProvide = {
organizationsPath: '/-/organizations',
rootUrl: 'http://127.0.0.1:3000/',
+ previewMarkdownPath: '/-/organizations/preview_markdown',
};
const defaultPropsData = {
@@ -32,6 +40,8 @@ describe('NewEditForm', () => {
const findNameField = () => wrapper.findByLabelText('Organization name');
const findIdField = () => wrapper.findByLabelText('Organization ID');
const findUrlField = () => wrapper.findComponent(OrganizationUrlField);
+ const findDescriptionField = () => wrapper.findByLabelText('Organization description (optional)');
+ const findAvatarField = () => wrapper.findComponent(AvatarUploadDropzone);
const setUrlFieldValue = async (value) => {
findUrlField().vm.$emit('input', value);
@@ -53,6 +63,56 @@ describe('NewEditForm', () => {
expect(findUrlField().exists()).toBe(true);
});
+ it('renders `Organization avatar` field', () => {
+ createComponent();
+
+ expect(findAvatarField().props()).toMatchObject({
+ value: null,
+ entity: { [FORM_FIELD_NAME]: '', [FORM_FIELD_PATH]: '', [FORM_FIELD_AVATAR]: null },
+ label: 'Organization avatar',
+ });
+ });
+
+ it('renders `Organization description` field as markdown editor', () => {
+ createComponent();
+
+ expect(findDescriptionField().exists()).toBe(true);
+ expect(wrapper.findComponent(MarkdownField).props()).toMatchObject({
+ markdownPreviewPath: defaultProvide.previewMarkdownPath,
+ markdownDocsPath: helpPagePath('user/organization/index', {
+ anchor: 'organization-description-supported-markdown',
+ }),
+ textareaValue: '',
+ restrictedToolBarItems: [
+ 'code',
+ 'quote',
+ 'bullet-list',
+ 'numbered-list',
+ 'task-list',
+ 'collapsible-section',
+ 'table',
+ 'attach-file',
+ 'full-screen',
+ ],
+ });
+ });
+
+ describe('when `Organization avatar` field is changed', () => {
+ const file = new File(['foo'], 'foo.jpg', {
+ type: 'text/plain',
+ });
+
+ beforeEach(() => {
+ window.URL.revokeObjectURL = jest.fn();
+ createComponent();
+ findAvatarField().vm.$emit('input', file);
+ });
+
+ it('updates `value` prop', () => {
+ expect(findAvatarField().props('value')).toEqual(file);
+ });
+ });
+
it('requires `Organization URL` field to be a minimum of two characters', async () => {
createComponent();
@@ -121,11 +181,14 @@ describe('NewEditForm', () => {
await findNameField().setValue('Foo bar');
await setUrlFieldValue('foo-bar');
+ await findDescriptionField().setValue('Foo bar description');
await submitForm();
});
it('emits `submit` event with form values', () => {
- expect(wrapper.emitted('submit')).toEqual([[{ name: 'Foo bar', path: 'foo-bar' }]]);
+ expect(wrapper.emitted('submit')).toEqual([
+ [{ name: 'Foo bar', path: 'foo-bar', description: 'Foo bar description', avatar: null }],
+ ]);
});
});
@@ -186,7 +249,7 @@ describe('NewEditForm', () => {
});
it('shows button with loading icon', () => {
- expect(wrapper.findComponent(GlButton).props('loading')).toBe(true);
+ expect(wrapper.findByTestId('submit-button').props('loading')).toBe(true);
});
});
diff --git a/spec/frontend/organizations/shared/components/projects_view_spec.js b/spec/frontend/organizations/shared/components/projects_view_spec.js
index 490b0c89348..3cc71927bfa 100644
--- a/spec/frontend/organizations/shared/components/projects_view_spec.js
+++ b/spec/frontend/organizations/shared/components/projects_view_spec.js
@@ -25,13 +25,20 @@ describe('ProjectsView', () => {
newProjectPath: '/projects/new',
};
+ const defaultPropsData = {
+ listItemClass: 'gl-px-5',
+ };
+
const createComponent = ({ mockResolvers = resolvers, propsData = {} } = {}) => {
mockApollo = createMockApollo([], mockResolvers);
wrapper = shallowMountExtended(ProjectsView, {
apolloProvider: mockApollo,
provide: defaultProvide,
- propsData,
+ propsData: {
+ ...defaultPropsData,
+ ...propsData,
+ },
});
};
@@ -115,6 +122,7 @@ describe('ProjectsView', () => {
expect(wrapper.findComponent(ProjectsList).props()).toEqual({
projects: formatProjects(organizationProjects.nodes),
showProjectIcon: true,
+ listItemClass: defaultPropsData.listItemClass,
});
});
});
diff --git a/spec/frontend/organizations/show/components/app_spec.js b/spec/frontend/organizations/show/components/app_spec.js
index 46496e40bdd..6cf8845bdbe 100644
--- a/spec/frontend/organizations/show/components/app_spec.js
+++ b/spec/frontend/organizations/show/components/app_spec.js
@@ -1,6 +1,7 @@
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import App from '~/organizations/show/components/app.vue';
import OrganizationAvatar from '~/organizations/show/components/organization_avatar.vue';
+import OrganizationDescription from '~/organizations/show/components/organization_description.vue';
import GroupsAndProjects from '~/organizations/show/components/groups_and_projects.vue';
import AssociationCount from '~/organizations/show/components/association_counts.vue';
@@ -34,6 +35,12 @@ describe('OrganizationShowApp', () => {
);
});
+ it('renders organization description and passes organization prop', () => {
+ expect(wrapper.findComponent(OrganizationDescription).props('organization')).toEqual(
+ defaultPropsData.organization,
+ );
+ });
+
it('renders groups and projects component and passes `groupsAndProjectsOrganizationPath` prop', () => {
expect(
wrapper.findComponent(GroupsAndProjects).props('groupsAndProjectsOrganizationPath'),
diff --git a/spec/frontend/organizations/show/components/organization_description_spec.js b/spec/frontend/organizations/show/components/organization_description_spec.js
new file mode 100644
index 00000000000..2aaf6f24a72
--- /dev/null
+++ b/spec/frontend/organizations/show/components/organization_description_spec.js
@@ -0,0 +1,46 @@
+import { mountExtended } from 'helpers/vue_test_utils_helper';
+import OrganizationDescription from '~/organizations/show/components/organization_description.vue';
+
+describe('OrganizationDescription', () => {
+ let wrapper;
+
+ const defaultPropsData = {
+ organization: {
+ id: 1,
+ name: 'GitLab',
+ description_html: '<h1>Foo bar description</h1><script>alert("foo")</script>',
+ },
+ };
+
+ const createComponent = ({ propsData = {} } = {}) => {
+ wrapper = mountExtended(OrganizationDescription, {
+ propsData: { ...defaultPropsData, ...propsData },
+ });
+ };
+
+ beforeEach(() => {
+ createComponent();
+ });
+
+ describe('when organization has description', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('renders description as safe HTML', () => {
+ expect(wrapper.element.innerHTML).toBe('<h1>Foo bar description</h1>');
+ });
+ });
+
+ describe('when organization does not have description', () => {
+ beforeEach(() => {
+ createComponent({
+ propsData: { organization: { ...defaultPropsData.organization, description_html: '' } },
+ });
+ });
+
+ it('renders nothing', () => {
+ expect(wrapper.html()).toBe('');
+ });
+ });
+});
diff --git a/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js b/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js
index 500fb0d7598..6fee0d1b825 100644
--- a/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js
+++ b/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js
@@ -207,6 +207,7 @@ describe('Details Header', () => {
expect(findSize().props()).toMatchObject({
icon: 'disk',
text: numberToHumanSize(size),
+ textTooltip: 'Includes both tagged and untagged images',
});
});
});
diff --git a/spec/frontend/packages_and_registries/package_registry/components/list/__snapshots__/package_list_row_spec.js.snap b/spec/frontend/packages_and_registries/package_registry/components/list/__snapshots__/package_list_row_spec.js.snap
index cbf2184d879..78d7f4183b7 100644
--- a/spec/frontend/packages_and_registries/package_registry/components/list/__snapshots__/package_list_row_spec.js.snap
+++ b/spec/frontend/packages_and_registries/package_registry/components/list/__snapshots__/package_list_row_spec.js.snap
@@ -28,19 +28,15 @@ exports[`packages_list_row renders 1`] = `
<div
class="gl-align-items-center gl-display-flex gl-min-w-0 gl-mr-3"
>
- <router-link-stub
- ariacurrentvalue="page"
+ <a
class="gl-min-w-0 gl-text-body"
data-testid="details-link"
- event="click"
- tag="a"
- to="[object Object]"
>
<gl-truncate-stub
position="end"
text="@gitlab-org/package-15"
/>
- </router-link-stub>
+ </a>
</div>
</div>
<div
diff --git a/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js b/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js
index 9f8fd4e28e7..afcb1798878 100644
--- a/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js
+++ b/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js
@@ -1,6 +1,7 @@
import { GlFormCheckbox, GlSprintf, GlTruncate } from '@gitlab/ui';
import Vue from 'vue';
import VueRouter from 'vue-router';
+import { RouterLinkStub } from '@vue/test-utils';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
@@ -58,6 +59,7 @@ describe('packages_list_row', () => {
ListItem,
GlSprintf,
TimeagoTooltip,
+ RouterLink: RouterLinkStub,
},
propsData: {
packageEntity,
diff --git a/spec/frontend/packages_and_registries/settings/group/components/group_settings_app_spec.js b/spec/frontend/packages_and_registries/settings/group/components/group_settings_app_spec.js
index 3ce8e91d43d..32ddc087b32 100644
--- a/spec/frontend/packages_and_registries/settings/group/components/group_settings_app_spec.js
+++ b/spec/frontend/packages_and_registries/settings/group/components/group_settings_app_spec.js
@@ -73,11 +73,11 @@ describe('Group Settings App', () => {
};
describe.each`
- finder | entitySpecificProps | successMessage | errorMessage
- ${findPackageSettings} | ${packageSettingsProps} | ${'Settings saved successfully'} | ${'An error occurred while saving the settings'}
- ${findPackageForwardingSettings} | ${packageForwardingSettingsProps} | ${'Settings saved successfully'} | ${'An error occurred while saving the settings'}
- ${findDependencyProxySettings} | ${dependencyProxyProps} | ${'Setting saved successfully'} | ${'An error occurred while saving the setting'}
- `('settings blocks', ({ finder, entitySpecificProps, successMessage, errorMessage }) => {
+ finder | entitySpecificProps
+ ${findPackageSettings} | ${packageSettingsProps}
+ ${findPackageForwardingSettings} | ${packageForwardingSettingsProps}
+ ${findDependencyProxySettings} | ${dependencyProxyProps}
+ `('settings blocks', ({ finder, entitySpecificProps }) => {
beforeEach(() => {
mountComponent();
return waitForApolloQueryAndRender();
@@ -94,7 +94,7 @@ describe('Group Settings App', () => {
describe('success event', () => {
it('shows a success toast', () => {
finder().vm.$emit('success');
- expect(show).toHaveBeenCalledWith(successMessage);
+ expect(show).toHaveBeenCalledWith('Settings saved successfully.');
});
it('hides the error alert', async () => {
@@ -121,7 +121,7 @@ describe('Group Settings App', () => {
});
it('alert has the right text', () => {
- expect(findAlert().text()).toBe(errorMessage);
+ expect(findAlert().text()).toBe('An error occurred while saving the settings.');
});
it('dismissing the alert removes it', async () => {
diff --git a/spec/frontend/packages_and_registries/settings/project/settings/components/packages_protection_rules_spec.js b/spec/frontend/packages_and_registries/settings/project/settings/components/packages_protection_rules_spec.js
new file mode 100644
index 00000000000..bdb3db7a1b9
--- /dev/null
+++ b/spec/frontend/packages_and_registries/settings/project/settings/components/packages_protection_rules_spec.js
@@ -0,0 +1,97 @@
+import { GlTable, GlLoadingIcon } from '@gitlab/ui';
+import { shallowMount, mount } from '@vue/test-utils';
+import Vue from 'vue';
+import VueApollo from 'vue-apollo';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import waitForPromises from 'helpers/wait_for_promises';
+import PackagesProtectionRules from '~/packages_and_registries/settings/project/components/packages_protection_rules.vue';
+import SettingsBlock from '~/vue_shared/components/settings/settings_block.vue';
+import packagesProtectionRuleQuery from '~/packages_and_registries/settings/project/graphql/queries/get_packages_protection_rules.query.graphql';
+
+import { packagesProtectionRuleQueryPayload, packagesProtectionRulesData } from '../mock_data';
+
+Vue.use(VueApollo);
+
+describe('Packages protection rules project settings', () => {
+ let wrapper;
+ let fakeApollo;
+
+ const defaultProvidedValues = {
+ projectPath: 'path',
+ };
+ const findSettingsBlock = () => wrapper.findComponent(SettingsBlock);
+ const findTable = () => wrapper.findComponent(GlTable);
+ const findTableLoadingIcon = () => wrapper.findComponent(GlLoadingIcon);
+ const findTableRows = () => findTable().find('tbody').findAll('tr');
+
+ const mountComponent = (mountFn = shallowMount, provide = defaultProvidedValues, config) => {
+ wrapper = mountFn(PackagesProtectionRules, {
+ stubs: {
+ SettingsBlock,
+ },
+ provide,
+ ...config,
+ });
+ };
+
+ const createComponent = ({
+ mountFn = shallowMount,
+ provide = defaultProvidedValues,
+ resolver = jest.fn().mockResolvedValue(packagesProtectionRuleQueryPayload()),
+ } = {}) => {
+ const requestHandlers = [[packagesProtectionRuleQuery, resolver]];
+
+ fakeApollo = createMockApollo(requestHandlers);
+
+ mountComponent(mountFn, provide, {
+ apolloProvider: fakeApollo,
+ });
+ };
+
+ it('renders the setting block with table', async () => {
+ createComponent();
+
+ await waitForPromises();
+
+ expect(findSettingsBlock().exists()).toBe(true);
+ expect(findTable().exists()).toBe(true);
+ });
+
+ describe('table package protection rules', () => {
+ it('renders table with packages protection rules', async () => {
+ createComponent({ mountFn: mount });
+
+ await waitForPromises();
+
+ expect(findTable().exists()).toBe(true);
+
+ packagesProtectionRulesData.forEach((protectionRule, i) => {
+ expect(findTableRows().at(i).text()).toContain(protectionRule.packageNamePattern);
+ expect(findTableRows().at(i).text()).toContain(protectionRule.packageType);
+ expect(findTableRows().at(i).text()).toContain(protectionRule.pushProtectedUpToAccessLevel);
+ });
+ });
+
+ it('displays table in busy state and shows loading icon inside table', async () => {
+ createComponent({ mountFn: mount });
+
+ expect(findTableLoadingIcon().exists()).toBe(true);
+ expect(findTableLoadingIcon().attributes('aria-label')).toBe('Loading');
+
+ expect(findTable().attributes('aria-busy')).toBe('true');
+
+ await waitForPromises();
+
+ expect(findTableLoadingIcon().exists()).toBe(false);
+ expect(findTable().attributes('aria-busy')).toBe('false');
+ });
+
+ it('renders table', async () => {
+ createComponent();
+
+ await waitForPromises();
+
+ expect(findTable().exists()).toBe(true);
+ });
+ });
+});
diff --git a/spec/frontend/packages_and_registries/settings/project/settings/components/registry_settings_app_spec.js b/spec/frontend/packages_and_registries/settings/project/settings/components/registry_settings_app_spec.js
index dfcabd14489..1afc9b62ba2 100644
--- a/spec/frontend/packages_and_registries/settings/project/settings/components/registry_settings_app_spec.js
+++ b/spec/frontend/packages_and_registries/settings/project/settings/components/registry_settings_app_spec.js
@@ -6,6 +6,7 @@ import * as commonUtils from '~/lib/utils/common_utils';
import component from '~/packages_and_registries/settings/project/components/registry_settings_app.vue';
import ContainerExpirationPolicy from '~/packages_and_registries/settings/project/components/container_expiration_policy.vue';
import PackagesCleanupPolicy from '~/packages_and_registries/settings/project/components/packages_cleanup_policy.vue';
+import PackagesProtectionRules from '~/packages_and_registries/settings/project/components/packages_protection_rules.vue';
import DependencyProxyPackagesSettings from 'ee_component/packages_and_registries/settings/project/components/dependency_proxy_packages_settings.vue';
import {
SHOW_SETUP_SUCCESS_ALERT,
@@ -19,6 +20,7 @@ describe('Registry Settings app', () => {
const findContainerExpirationPolicy = () => wrapper.findComponent(ContainerExpirationPolicy);
const findPackagesCleanupPolicy = () => wrapper.findComponent(PackagesCleanupPolicy);
+ const findPackagesProtectionRules = () => wrapper.findComponent(PackagesProtectionRules);
const findDependencyProxyPackagesSettings = () =>
wrapper.findComponent(DependencyProxyPackagesSettings);
const findAlert = () => wrapper.findComponent(GlAlert);
@@ -29,6 +31,7 @@ describe('Registry Settings app', () => {
showPackageRegistrySettings: true,
showDependencyProxySettings: false,
...(IS_EE && { showDependencyProxySettings: true }),
+ glFeatures: { packagesProtectedPackages: true },
};
const mountComponent = (provide = defaultProvide) => {
@@ -95,6 +98,7 @@ describe('Registry Settings app', () => {
expect(findContainerExpirationPolicy().exists()).toBe(showContainerRegistrySettings);
expect(findPackagesCleanupPolicy().exists()).toBe(showPackageRegistrySettings);
+ expect(findPackagesProtectionRules().exists()).toBe(showPackageRegistrySettings);
},
);
@@ -108,5 +112,20 @@ describe('Registry Settings app', () => {
expect(findDependencyProxyPackagesSettings().exists()).toBe(value);
});
}
+
+ describe('when feature flag "packagesProtectedPackages" is disabled', () => {
+ it.each([true, false])(
+ 'package protection rules settings is hidden if showPackageRegistrySettings is %s',
+ (showPackageRegistrySettings) => {
+ mountComponent({
+ ...defaultProvide,
+ showPackageRegistrySettings,
+ glFeatures: { packagesProtectedPackages: false },
+ });
+
+ expect(findPackagesProtectionRules().exists()).toBe(false);
+ },
+ );
+ });
});
});
diff --git a/spec/frontend/packages_and_registries/settings/project/settings/mock_data.js b/spec/frontend/packages_and_registries/settings/project/settings/mock_data.js
index 3204ca01f99..5c546289b14 100644
--- a/spec/frontend/packages_and_registries/settings/project/settings/mock_data.js
+++ b/spec/frontend/packages_and_registries/settings/project/settings/mock_data.js
@@ -79,3 +79,36 @@ export const packagesCleanupPolicyMutationPayload = ({ override, errors = [] } =
},
},
});
+
+export const packagesProtectionRulesData = [
+ {
+ id: `gid://gitlab/Packages::Protection::Rule/14`,
+ packageNamePattern: `@flight/flight-maintainer-14-*`,
+ packageType: 'NPM',
+ pushProtectedUpToAccessLevel: 'MAINTAINER',
+ },
+ {
+ id: `gid://gitlab/Packages::Protection::Rule/15`,
+ packageNamePattern: `@flight/flight-maintainer-15-*`,
+ packageType: 'NPM',
+ pushProtectedUpToAccessLevel: 'MAINTAINER',
+ },
+ {
+ id: 'gid://gitlab/Packages::Protection::Rule/16',
+ packageNamePattern: '@flight/flight-owner-16-*',
+ packageType: 'NPM',
+ pushProtectedUpToAccessLevel: 'OWNER',
+ },
+];
+
+export const packagesProtectionRuleQueryPayload = ({ override, errors = [] } = {}) => ({
+ data: {
+ project: {
+ id: '1',
+ packagesProtectionRules: {
+ nodes: override || packagesProtectionRulesData,
+ },
+ errors,
+ },
+ },
+});
diff --git a/spec/frontend/pages/import/bulk_imports/history/components/bulk_imports_history_app_spec.js b/spec/frontend/pages/import/bulk_imports/history/components/bulk_imports_history_app_spec.js
index 3db77469d6b..1c9d8f17210 100644
--- a/spec/frontend/pages/import/bulk_imports/history/components/bulk_imports_history_app_spec.js
+++ b/spec/frontend/pages/import/bulk_imports/history/components/bulk_imports_history_app_spec.js
@@ -1,13 +1,13 @@
import { GlEmptyState, GlLoadingIcon, GlTableLite } from '@gitlab/ui';
import { mount, shallowMount } from '@vue/test-utils';
import MockAdapter from 'axios-mock-adapter';
-import { extendedWrapper } from 'helpers/vue_test_utils_helper';
import axios from '~/lib/utils/axios_utils';
import waitForPromises from 'helpers/wait_for_promises';
import { HTTP_STATUS_OK } from '~/lib/utils/http_status';
import { getParameterValues } from '~/lib/utils/url_utility';
import BulkImportsHistoryApp from '~/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue';
+import ImportStatus from '~/import_entities/import_groups/components/import_status.vue';
import PaginationBar from '~/vue_shared/components/pagination_bar/pagination_bar.vue';
import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
@@ -39,6 +39,7 @@ describe('BulkImportsHistoryApp', () => {
destination_slug: 'top-level-group-12',
destination_namespace: 'h5bp',
created_at: '2021-07-08T10:03:44.743Z',
+ has_failures: false,
failures: [],
},
{
@@ -56,6 +57,7 @@ describe('BulkImportsHistoryApp', () => {
project_id: null,
created_at: '2021-07-13T12:52:26.664Z',
updated_at: '2021-07-13T13:34:49.403Z',
+ has_failures: true,
failures: [
{
pipeline_class: 'BulkImports::Groups::Pipelines::GroupPipeline',
@@ -72,15 +74,19 @@ describe('BulkImportsHistoryApp', () => {
let mock;
const mockRealtimeChangesPath = '/import/realtime_changes.json';
- function createComponent({ shallow = true } = {}) {
+ function createComponent({ shallow = true, provide } = {}) {
const mountFn = shallow ? shallowMount : mount;
wrapper = mountFn(BulkImportsHistoryApp, {
- provide: { realtimeChangesPath: mockRealtimeChangesPath },
+ provide: {
+ realtimeChangesPath: mockRealtimeChangesPath,
+ ...provide,
+ },
});
}
const findLocalStorageSync = () => wrapper.findComponent(LocalStorageSync);
const findPaginationBar = () => wrapper.findComponent(PaginationBar);
+ const findImportStatusAt = (index) => wrapper.findAllComponents(ImportStatus).at(index);
beforeEach(() => {
gon.api_version = 'v4';
@@ -201,77 +207,59 @@ describe('BulkImportsHistoryApp', () => {
expect(findLocalStorageSync().props('value')).toBe(NEW_PAGE_SIZE);
});
- it('renders link to destination_full_path for destination group', async () => {
- createComponent({ shallow: false });
- await waitForPromises();
-
- expect(wrapper.find('tbody tr a').attributes().href).toBe(
- `/${DUMMY_RESPONSE[0].destination_full_path}`,
- );
- });
-
- it('renders destination as text when destination_full_path is not defined', async () => {
- const RESPONSE = [{ ...DUMMY_RESPONSE[0], destination_full_path: null }];
-
- mock.onGet(BULK_IMPORTS_API_URL).reply(HTTP_STATUS_OK, RESPONSE, DEFAULT_HEADERS);
- createComponent({ shallow: false });
- await waitForPromises();
-
- expect(wrapper.find('tbody tr a').exists()).toBe(false);
- expect(wrapper.find('tbody tr span').text()).toBe(
- `${DUMMY_RESPONSE[0].destination_namespace}/${DUMMY_RESPONSE[0].destination_slug}/`,
- );
- });
-
- it('adds slash to group urls', async () => {
- createComponent({ shallow: false });
- await waitForPromises();
-
- expect(wrapper.find('tbody tr a').text()).toBe(`${DUMMY_RESPONSE[0].destination_full_path}/`);
- });
+ describe('table rendering', () => {
+ beforeEach(async () => {
+ createComponent({ shallow: false });
+ await waitForPromises();
+ });
- it('does not prefixes project urls with slash', async () => {
- createComponent({ shallow: false });
- await waitForPromises();
+ it('renders link to destination_full_path for destination group', () => {
+ expect(wrapper.find('tbody tr a').attributes().href).toBe(
+ `/${DUMMY_RESPONSE[0].destination_full_path}`,
+ );
+ });
- expect(wrapper.findAll('tbody tr a').at(1).text()).toBe(
- DUMMY_RESPONSE[1].destination_full_path,
- );
- });
+ it('renders destination as text when destination_full_path is not defined', async () => {
+ const RESPONSE = [{ ...DUMMY_RESPONSE[0], destination_full_path: null }];
- describe('details button', () => {
- beforeEach(() => {
- mock.onGet(BULK_IMPORTS_API_URL).reply(HTTP_STATUS_OK, DUMMY_RESPONSE, DEFAULT_HEADERS);
+ mock.onGet(BULK_IMPORTS_API_URL).reply(HTTP_STATUS_OK, RESPONSE, DEFAULT_HEADERS);
createComponent({ shallow: false });
- return waitForPromises();
+ await waitForPromises();
+
+ expect(wrapper.find('tbody tr a').exists()).toBe(false);
+ expect(wrapper.find('tbody tr span').text()).toBe(
+ `${DUMMY_RESPONSE[0].destination_namespace}/${DUMMY_RESPONSE[0].destination_slug}/`,
+ );
});
- it('renders details button if relevant item has failures', () => {
- expect(
- extendedWrapper(wrapper.find('tbody').findAll('tr').at(1)).findByText('Details').exists(),
- ).toBe(true);
+ it('adds slash to group urls', () => {
+ expect(wrapper.find('tbody tr a').text()).toBe(`${DUMMY_RESPONSE[0].destination_full_path}/`);
});
- it('does not render details button if relevant item has no failures', () => {
- expect(
- extendedWrapper(wrapper.find('tbody').findAll('tr').at(0)).findByText('Details').exists(),
- ).toBe(false);
+ it('does not prefix project urls with slash', () => {
+ expect(wrapper.findAll('tbody tr a').at(1).text()).toBe(
+ DUMMY_RESPONSE[1].destination_full_path,
+ );
});
- it('expands details when details button is clicked', async () => {
- const ORIGINAL_ROW_INDEX = 1;
- await extendedWrapper(wrapper.find('tbody').findAll('tr').at(ORIGINAL_ROW_INDEX))
- .findByText('Details')
- .trigger('click');
+ it('renders finished import status', () => {
+ expect(findImportStatusAt(0).text()).toBe('Complete');
+ });
- const detailsRowContent = wrapper
- .find('tbody')
- .findAll('tr')
- .at(ORIGINAL_ROW_INDEX + 1)
- .find('pre');
+ it('renders failed import status with details link', async () => {
+ createComponent({
+ shallow: false,
+ provide: {
+ detailsPath: '/mock-details',
+ },
+ });
+ await waitForPromises();
- expect(detailsRowContent.exists()).toBe(true);
- expect(JSON.parse(detailsRowContent.text())).toStrictEqual(DUMMY_RESPONSE[1].failures);
+ const failedImportStatus = findImportStatusAt(1);
+ const failedImportStatusLink = failedImportStatus.find('a');
+ expect(failedImportStatus.text()).toContain('Failed');
+ expect(failedImportStatusLink.text()).toBe('See failures');
+ expect(failedImportStatusLink.attributes('href')).toContain('/mock-details');
});
});
diff --git a/spec/frontend/pages/projects/shared/permissions/components/ci_catalog_settings_spec.js b/spec/frontend/pages/projects/shared/permissions/components/ci_catalog_settings_spec.js
index 8145eb6fbd4..d64a05c93d2 100644
--- a/spec/frontend/pages/projects/shared/permissions/components/ci_catalog_settings_spec.js
+++ b/spec/frontend/pages/projects/shared/permissions/components/ci_catalog_settings_spec.js
@@ -8,9 +8,9 @@ import waitForPromises from 'helpers/wait_for_promises';
import createMockApollo from 'helpers/mock_apollo_helper';
import BetaBadge from '~/vue_shared/components/badges/beta_badge.vue';
-import catalogResourcesCreate from '~/pages/projects/shared/permissions/graphql/mutations/catalog_resources_create.mutation.graphql';
-import catalogResourcesDestroy from '~/pages/projects/shared/permissions/graphql/mutations/catalog_resources_destroy.mutation.graphql';
-import getCiCatalogSettingsQuery from '~/pages/projects/shared/permissions/graphql/queries/get_ci_catalog_settings.query.graphql';
+import catalogResourcesCreate from '~/ci/catalog/graphql/mutations/catalog_resources_create.mutation.graphql';
+import catalogResourcesDestroy from '~/ci/catalog/graphql/mutations/catalog_resources_destroy.mutation.graphql';
+import getCiCatalogSettingsQuery from '~/ci/catalog/graphql/queries/get_ci_catalog_settings.query.graphql';
import CiCatalogSettings from '~/pages/projects/shared/permissions/components/ci_catalog_settings.vue';
import { generateCatalogSettingsResponse } from './mock_data';
diff --git a/spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js b/spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js
index 6ff2bb42d8d..7607381a981 100644
--- a/spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js
+++ b/spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js
@@ -5,7 +5,7 @@ import preserveUrlFragment from '~/pages/sessions/new/preserve_url_fragment';
describe('preserve_url_fragment', () => {
const findFormAction = (selector) => {
- return $(`.omniauth-container ${selector}`).parent('form').attr('action');
+ return $(`.js-oauth-login ${selector}`).parent('form').attr('action');
};
beforeEach(() => {
@@ -44,9 +44,7 @@ describe('preserve_url_fragment', () => {
});
it('when "remember-me" is present', () => {
- $('.js-oauth-login')
- .parent('form')
- .attr('action', (i, href) => `${href}?remember_me=1`);
+ $('.js-oauth-login form').attr('action', (i, href) => `${href}?remember_me=1`);
preserveUrlFragment('#L65');
diff --git a/spec/frontend/performance_bar/components/performance_bar_app_spec.js b/spec/frontend/performance_bar/components/performance_bar_app_spec.js
index 7a018236314..1ccb56a0697 100644
--- a/spec/frontend/performance_bar/components/performance_bar_app_spec.js
+++ b/spec/frontend/performance_bar/components/performance_bar_app_spec.js
@@ -17,6 +17,9 @@ describe('performance bar app', () => {
statsUrl: 'https://log.gprd.gitlab.net/app/dashboards#/view/',
peekUrl: '/-/peek/results',
},
+ stubs: {
+ GlEmoji: { template: '<div/>' },
+ },
});
};
diff --git a/spec/frontend/performance_bar/components/request_warning_spec.js b/spec/frontend/performance_bar/components/request_warning_spec.js
index a4f0d388e33..a85f83e9da7 100644
--- a/spec/frontend/performance_bar/components/request_warning_spec.js
+++ b/spec/frontend/performance_bar/components/request_warning_spec.js
@@ -1,5 +1,5 @@
import Vue from 'vue';
-import { shallowMount } from '@vue/test-utils';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import RequestWarning from '~/performance_bar/components/request_warning.vue';
Vue.config.ignoredElements = ['gl-emoji'];
@@ -8,9 +8,20 @@ describe('request warning', () => {
let wrapper;
const htmlId = 'request-123';
+ const createComponent = ({ propsData = {} } = {}) => {
+ wrapper = shallowMountExtended(RequestWarning, {
+ propsData,
+ stubs: {
+ GlEmoji: { template: `<div id="${htmlId}" />` },
+ },
+ });
+ };
+
+ const findEmoji = () => wrapper.findByTestId('warning');
+
describe('when the request has warnings', () => {
beforeEach(() => {
- wrapper = shallowMount(RequestWarning, {
+ createComponent({
propsData: {
htmlId,
warnings: ['gitaly calls: 30 over 10', 'gitaly duration: 1500 over 1000'],
@@ -19,14 +30,14 @@ describe('request warning', () => {
});
it('adds a warning emoji with the correct ID', () => {
- expect(wrapper.find('span gl-emoji[id]').attributes('id')).toEqual(htmlId);
- expect(wrapper.find('span gl-emoji[id]').element.dataset.name).toEqual('warning');
+ expect(findEmoji().attributes('id')).toEqual(htmlId);
+ expect(findEmoji().element.dataset.name).toEqual('warning');
});
});
describe('when the request does not have warnings', () => {
beforeEach(() => {
- wrapper = shallowMount(RequestWarning, {
+ createComponent({
propsData: {
htmlId,
warnings: [],
@@ -35,7 +46,7 @@ describe('request warning', () => {
});
it('does nothing', () => {
- expect(wrapper.html()).toBe('');
+ expect(findEmoji().exists()).toBe(false);
});
});
});
diff --git a/spec/frontend/profile/preferences/components/profile_preferences_spec.js b/spec/frontend/profile/preferences/components/profile_preferences_spec.js
index 144d9e76869..83c4a7435a8 100644
--- a/spec/frontend/profile/preferences/components/profile_preferences_spec.js
+++ b/spec/frontend/profile/preferences/components/profile_preferences_spec.js
@@ -3,7 +3,7 @@ import { shallowMount } from '@vue/test-utils';
import { nextTick } from 'vue';
import { useMockLocationHelper } from 'helpers/mock_window_location_helper';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
-import { createAlert, VARIANT_DANGER, VARIANT_INFO } from '~/alert';
+import { createAlert, VARIANT_DANGER } from '~/alert';
import IntegrationView from '~/profile/preferences/components/integration_view.vue';
import ProfilePreferences from '~/profile/preferences/components/profile_preferences.vue';
import { i18n } from '~/profile/preferences/constants';
@@ -32,11 +32,17 @@ describe('ProfilePreferences component', () => {
profilePreferencesPath: '/update-profile',
formEl: document.createElement('form'),
};
+ const showToast = jest.fn();
function createComponent(options = {}) {
const { props = {}, provide = {}, attachTo } = options;
return extendedWrapper(
shallowMount(ProfilePreferences, {
+ mocks: {
+ $toast: {
+ show: showToast,
+ },
+ },
provide: {
...defaultProvide,
...provide,
@@ -136,10 +142,7 @@ describe('ProfilePreferences component', () => {
const successEvent = new CustomEvent('ajax:success');
form.dispatchEvent(successEvent);
- expect(createAlert).toHaveBeenCalledWith({
- message: i18n.defaultSuccess,
- variant: VARIANT_INFO,
- });
+ expect(showToast).toHaveBeenCalledWith(i18n.defaultSuccess);
});
it('displays the custom success message', () => {
@@ -147,7 +150,7 @@ describe('ProfilePreferences component', () => {
const successEvent = new CustomEvent('ajax:success', { detail: [{ message }] });
form.dispatchEvent(successEvent);
- expect(createAlert).toHaveBeenCalledWith({ message, variant: VARIANT_INFO });
+ expect(showToast).toHaveBeenCalledWith(message);
});
it('displays the default error message', () => {
diff --git a/spec/frontend/projects/commit/components/commit_comments_button_spec.js b/spec/frontend/projects/commit/components/commit_comments_button_spec.js
deleted file mode 100644
index 873270c5be1..00000000000
--- a/spec/frontend/projects/commit/components/commit_comments_button_spec.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import { shallowMount } from '@vue/test-utils';
-import { extendedWrapper } from 'helpers/vue_test_utils_helper';
-import CommitCommentsButton from '~/projects/commit/components/commit_comments_button.vue';
-
-describe('CommitCommentsButton', () => {
- let wrapper;
-
- const createComponent = (props = {}) => {
- wrapper = extendedWrapper(
- shallowMount(CommitCommentsButton, {
- propsData: {
- commentsCount: 1,
- ...props,
- },
- }),
- );
- };
-
- const tooltip = () => wrapper.findByTestId('comment-button-wrapper');
-
- describe('Comment Button', () => {
- it('has proper tooltip and button attributes for 1 comment', () => {
- createComponent();
-
- expect(tooltip().attributes('title')).toBe('1 comment on this commit');
- expect(tooltip().text()).toBe('1');
- });
-
- it('has proper tooltip and button attributes for multiple comments', () => {
- createComponent({ commentsCount: 2 });
-
- expect(tooltip().attributes('title')).toBe('2 comments on this commit');
- expect(tooltip().text()).toBe('2');
- });
-
- it('does not show when there are no comments', () => {
- createComponent({ commentsCount: 0 });
-
- expect(tooltip().exists()).toBe(false);
- });
- });
-});
diff --git a/spec/frontend/projects/new/components/new_project_url_select_spec.js b/spec/frontend/projects/new/components/new_project_url_select_spec.js
index ceac4435282..be923c1f643 100644
--- a/spec/frontend/projects/new/components/new_project_url_select_spec.js
+++ b/spec/frontend/projects/new/components/new_project_url_select_spec.js
@@ -1,13 +1,12 @@
import {
GlButton,
- GlDropdown,
- GlDropdownItem,
- GlDropdownSectionHeader,
+ GlCollapsibleListbox,
+ GlListboxItem,
GlTruncate,
GlSearchBoxByType,
} from '@gitlab/ui';
import { mount, shallowMount } from '@vue/test-utils';
-import Vue, { nextTick } from 'vue';
+import Vue from 'vue';
import VueApollo from 'vue-apollo';
import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises';
@@ -99,16 +98,17 @@ describe('NewProjectUrlSelect component', () => {
};
const findButtonLabel = () => wrapper.findComponent(GlButton);
- const findDropdown = () => wrapper.findComponent(GlDropdown);
+ const findDropdown = () => wrapper.findComponent(GlCollapsibleListbox);
const findSelectedPath = () => wrapper.findComponent(GlTruncate);
const findHiddenNamespaceInput = () => wrapper.find(`[name="${defaultProvide.inputName}`);
+ const findAllListboxItems = () => wrapper.findAllComponents(GlListboxItem);
+ const findToggleButton = () => findDropdown().findComponent(GlButton);
const findHiddenSelectedNamespaceInput = () =>
wrapper.find('[name="project[selected_namespace_id]"]');
const clickDropdownItem = async () => {
- wrapper.findComponent(GlDropdownItem).vm.$emit('click');
- await nextTick();
+ await findAllListboxItems().at(0).trigger('click');
};
const showDropdown = async () => {
@@ -135,7 +135,7 @@ describe('NewProjectUrlSelect component', () => {
});
it('renders a dropdown without the class', () => {
- expect(findDropdown().props('toggleClass')).not.toContain('gl-text-gray-500!');
+ expect(findToggleButton().classes()).not.toContain('gl-text-gray-500!');
});
it('renders a hidden input with the given namespace id', () => {
@@ -165,7 +165,7 @@ describe('NewProjectUrlSelect component', () => {
});
it('renders a dropdown with the class', () => {
- expect(findDropdown().props('toggleClass')).toContain('gl-text-gray-500!');
+ expect(findToggleButton().classes()).toContain('gl-text-gray-500!');
});
it("renders a hidden input with the user's namespace id", () => {
@@ -179,28 +179,22 @@ describe('NewProjectUrlSelect component', () => {
});
});
- it('focuses on the input when the dropdown is opened', async () => {
- wrapper = mountComponent();
-
- await showDropdown();
-
- expect(focusInputSpy).toHaveBeenCalledTimes(1);
- });
-
it('renders expected dropdown items', async () => {
wrapper = mountComponent({ mountFn: mount });
await showDropdown();
- const listItems = wrapper.findAll('li');
-
- expect(listItems).toHaveLength(6);
- expect(listItems.at(0).findComponent(GlDropdownSectionHeader).text()).toBe('Groups');
- expect(listItems.at(1).text()).toBe(data.currentUser.groups.nodes[0].fullPath);
- expect(listItems.at(2).text()).toBe(data.currentUser.groups.nodes[1].fullPath);
- expect(listItems.at(3).text()).toBe(data.currentUser.groups.nodes[2].fullPath);
- expect(listItems.at(4).findComponent(GlDropdownSectionHeader).text()).toBe('Users');
- expect(listItems.at(5).text()).toBe(data.currentUser.namespace.fullPath);
+ const { fullPath: text, id: value } = data.currentUser.namespace;
+ const userOptions = [{ text, value }];
+ const groupOptions = data.currentUser.groups.nodes.map((node) => ({
+ text: node.fullPath,
+ value: node.id,
+ }));
+
+ expect(findDropdown().props('items')).toEqual([
+ { text: 'Groups', options: groupOptions },
+ { text: 'Users', options: userOptions },
+ ]);
});
it('does not render users section when user namespace id is not provided', async () => {
@@ -211,8 +205,12 @@ describe('NewProjectUrlSelect component', () => {
await showDropdown();
- expect(wrapper.findAllComponents(GlDropdownSectionHeader)).toHaveLength(1);
- expect(wrapper.findAllComponents(GlDropdownSectionHeader).at(0).text()).toBe('Groups');
+ const groupOptions = data.currentUser.groups.nodes.map((node) => ({
+ text: node.fullPath,
+ value: node.id,
+ }));
+
+ expect(findDropdown().props('items')).toEqual([{ text: 'Groups', options: groupOptions }]);
});
describe('query fetching', () => {
@@ -248,12 +246,15 @@ describe('NewProjectUrlSelect component', () => {
});
it('filters the dropdown items to the selected group and children', () => {
- const listItems = wrapper.findAll('li');
+ const filteredgroupOptions = data.currentUser.groups.nodes.filter((group) =>
+ group.fullPath.startsWith(fullPath),
+ );
+ const groupOptions = filteredgroupOptions.map((node) => ({
+ text: node.fullPath,
+ value: node.id,
+ }));
- expect(listItems).toHaveLength(3);
- expect(listItems.at(0).findComponent(GlDropdownSectionHeader).text()).toBe('Groups');
- expect(listItems.at(1).text()).toBe(data.currentUser.groups.nodes[1].fullPath);
- expect(listItems.at(2).text()).toBe(data.currentUser.groups.nodes[2].fullPath);
+ expect(findDropdown().props('items')).toEqual([{ text: 'Groups', options: groupOptions }]);
});
it('sets the selection to the group', () => {
@@ -278,7 +279,7 @@ describe('NewProjectUrlSelect component', () => {
wrapper = mountComponent({ search: 'no matches', queryResponse, mountFn: mount });
await waitForPromises();
- expect(wrapper.find('li').text()).toBe('No matches found');
+ expect(wrapper.find('[data-testid="listbox-no-results-text"]').text()).toBe('No matches found');
});
it('emits `update-visibility` event to update the visibility radio options', async () => {
diff --git a/spec/frontend/projects/settings/components/new_access_dropdown_spec.js b/spec/frontend/projects/settings/components/new_access_dropdown_spec.js
index 4e3554131c6..75b239d2d94 100644
--- a/spec/frontend/projects/settings/components/new_access_dropdown_spec.js
+++ b/spec/frontend/projects/settings/components/new_access_dropdown_spec.js
@@ -74,20 +74,14 @@ describe('Access Level Dropdown', () => {
const createComponent = ({
accessLevelsData = mockAccessLevelsData,
accessLevel = ACCESS_LEVELS.PUSH,
- hasLicense,
- label,
- disabled,
- preselectedItems,
stubs = {},
+ ...optionalProps
} = {}) => {
wrapper = shallowMountExtended(AccessDropdown, {
propsData: {
accessLevelsData,
accessLevel,
- hasLicense,
- label,
- disabled,
- preselectedItems,
+ ...optionalProps,
},
stubs: {
GlSprintf,
@@ -114,10 +108,19 @@ describe('Access Level Dropdown', () => {
it('should make an api call for users, groups && deployKeys when user has a license', () => {
createComponent();
expect(getUsers).toHaveBeenCalled();
- expect(getGroups).toHaveBeenCalled();
+ expect(getGroups).toHaveBeenCalledWith({ withProjectAccess: false });
expect(getDeployKeys).toHaveBeenCalled();
});
+ describe('withProjectAccess', () => {
+ it('should make an api call for users, groups && deployKeys when user has a license', () => {
+ createComponent({ groupsWithProjectAccess: true });
+ expect(getUsers).toHaveBeenCalled();
+ expect(getGroups).toHaveBeenCalledWith({ withProjectAccess: true });
+ expect(getDeployKeys).toHaveBeenCalled();
+ });
+ });
+
it('should make an api call for deployKeys but not for users or groups when user does not have a license', () => {
createComponent({ hasLicense: false });
expect(getUsers).not.toHaveBeenCalled();
@@ -132,7 +135,7 @@ describe('Access Level Dropdown', () => {
findSearchBox().vm.$emit('input', query);
await nextTick();
expect(getUsers).toHaveBeenCalledWith(query);
- expect(getGroups).toHaveBeenCalled();
+ expect(getGroups).toHaveBeenCalledWith({ withProjectAccess: false });
expect(getDeployKeys).toHaveBeenCalledWith(query);
});
});
diff --git a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js
index dd534bec25d..e86759ec6ca 100644
--- a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js
+++ b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js
@@ -1,16 +1,21 @@
-import Vue from 'vue';
+import Vue, { nextTick } from 'vue';
import VueApollo from 'vue-apollo';
-import { GlModal } from '@gitlab/ui';
+import { GlModal, GlCollapsibleListbox, GlDisclosureDropdown } from '@gitlab/ui';
+import setWindowLocation from 'helpers/set_window_location_helper';
+import { TEST_HOST } from 'helpers/test_constants';
import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises';
import { mountExtended } from 'helpers/vue_test_utils_helper';
import BranchRules from '~/projects/settings/repository/branch_rules/app.vue';
import BranchRule from '~/projects/settings/repository/branch_rules/components/branch_rule.vue';
import branchRulesQuery from 'ee_else_ce/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql';
+import createBranchRuleMutation from '~/projects/settings/repository/branch_rules/graphql/mutations/create_branch_rule.mutation.graphql';
+
import { createAlert } from '~/alert';
import {
branchRulesMockResponse,
appProvideMock,
+ createBranchRuleMockResponse,
} from 'ee_else_ce_jest/projects/settings/repository/branch_rules/mock_data';
import {
I18N,
@@ -31,16 +36,33 @@ Vue.use(VueApollo);
describe('Branch rules app', () => {
let wrapper;
let fakeApollo;
-
+ const openBranches = [
+ { text: 'branch1', id: 'branch1', title: 'branch1' },
+ { text: 'branch2', id: 'branch2', title: 'branch2' },
+ ];
const branchRulesQuerySuccessHandler = jest.fn().mockResolvedValue(branchRulesMockResponse);
-
- const createComponent = async ({ queryHandler = branchRulesQuerySuccessHandler } = {}) => {
- fakeApollo = createMockApollo([[branchRulesQuery, queryHandler]]);
+ const addRuleMutationSuccessHandler = jest.fn().mockResolvedValue(createBranchRuleMockResponse);
+
+ const createComponent = async ({
+ glFeatures = { addBranchRule: true },
+ queryHandler = branchRulesQuerySuccessHandler,
+ mutationHandler = addRuleMutationSuccessHandler,
+ } = {}) => {
+ fakeApollo = createMockApollo([
+ [branchRulesQuery, queryHandler],
+ [createBranchRuleMutation, mutationHandler],
+ ]);
wrapper = mountExtended(BranchRules, {
apolloProvider: fakeApollo,
- provide: appProvideMock,
- stubs: { GlModal: stubComponent(GlModal, { template: RENDER_ALL_SLOTS_TEMPLATE }) },
+ provide: {
+ ...appProvideMock,
+ glFeatures,
+ },
+ stubs: {
+ GlDisclosureDropdown,
+ GlModal: stubComponent(GlModal, { template: RENDER_ALL_SLOTS_TEMPLATE }),
+ },
directives: { GlModal: createMockDirective('gl-modal') },
});
@@ -51,9 +73,32 @@ describe('Branch rules app', () => {
const findEmptyState = () => wrapper.findByTestId('empty');
const findAddBranchRuleButton = () => wrapper.findByRole('button', I18N.addBranchRule);
const findModal = () => wrapper.findComponent(GlModal);
+ const findAddBranchRuleDropdown = () => wrapper.findComponent(GlDisclosureDropdown);
+ const findCreateBranchRuleListbox = () => wrapper.findComponent(GlCollapsibleListbox);
+
+ beforeEach(() => {
+ window.gon = {
+ open_branches: openBranches,
+ };
+ setWindowLocation(TEST_HOST);
+ });
beforeEach(() => createComponent());
+ it('renders branch rules', () => {
+ const { nodes } = branchRulesMockResponse.data.project.branchRules;
+
+ expect(findAllBranchRules().length).toBe(nodes.length);
+
+ expect(findAllBranchRules().at(0).props('name')).toBe(nodes[0].name);
+
+ expect(findAllBranchRules().at(0).props('branchProtection')).toEqual(nodes[0].branchProtection);
+
+ expect(findAllBranchRules().at(1).props('name')).toBe(nodes[1].name);
+
+ expect(findAllBranchRules().at(1).props('branchProtection')).toEqual(nodes[1].branchProtection);
+ });
+
it('displays an error if branch rules query fails', async () => {
await createComponent({ queryHandler: jest.fn().mockRejectedValue() });
expect(createAlert).toHaveBeenCalledWith({ message: I18N.queryError });
@@ -64,21 +109,65 @@ describe('Branch rules app', () => {
expect(findEmptyState().text()).toBe(I18N.emptyState);
});
- it('renders branch rules', () => {
- const { nodes } = branchRulesMockResponse.data.project.branchRules;
-
- expect(findAllBranchRules().length).toBe(nodes.length);
+ describe('Add branch rule', () => {
+ it('renders an Add branch rule dropdown', () => {
+ expect(findAddBranchRuleDropdown().props('toggleText')).toBe('Add branch rule');
+ });
- expect(findAllBranchRules().at(0).props('name')).toBe(nodes[0].name);
+ it('renders a modal with correct props/attributes', () => {
+ expect(findModal().props()).toMatchObject({
+ title: I18N.createBranchRule,
+ modalId: BRANCH_PROTECTION_MODAL_ID,
+ actionCancel: {
+ text: 'Create branch rule',
+ },
+ actionPrimary: {
+ attributes: {
+ disabled: true,
+ variant: 'confirm',
+ },
+ text: 'Create protected branch',
+ },
+ });
+ });
- expect(findAllBranchRules().at(0).props('branchProtection')).toEqual(nodes[0].branchProtection);
+ it('renders listbox with branch names', () => {
+ expect(findCreateBranchRuleListbox().exists()).toBe(true);
+ expect(findCreateBranchRuleListbox().props('items')).toHaveLength(openBranches.length);
+ expect(findCreateBranchRuleListbox().props('toggleText')).toBe(
+ 'Select Branch or create wildcard',
+ );
+ });
- expect(findAllBranchRules().at(1).props('name')).toBe(nodes[1].name);
+ it('when the primary modal action is clicked it calls create rule mutation', async () => {
+ findCreateBranchRuleListbox().vm.$emit('select', openBranches[0].text);
+ await nextTick();
+ findModal().vm.$emit('primary');
+ await nextTick();
+ await nextTick();
+ expect(addRuleMutationSuccessHandler).toHaveBeenCalledWith({
+ name: 'branch1',
+ projectPath: 'some/project/path',
+ });
+ });
- expect(findAllBranchRules().at(1).props('branchProtection')).toEqual(nodes[1].branchProtection);
+ it('shows alert when mutation fails', async () => {
+ createComponent({ mutationHandler: jest.fn().mockRejectedValue() });
+ findCreateBranchRuleListbox().vm.$emit('select', openBranches[0].text);
+ await nextTick();
+ findModal().vm.$emit('primary');
+ await waitForPromises();
+ expect(createAlert).toHaveBeenCalledWith({
+ message: 'Something went wrong while creating branch rule.',
+ });
+ });
});
- describe('Add branch rule', () => {
+ describe('Add branch rule when addBranchRule FF disabled', () => {
+ beforeEach(() => {
+ window.gon.open_branches = openBranches;
+ createComponent({ glFeatures: { addBranchRule: false } });
+ });
it('renders an Add branch rule button', () => {
expect(findAddBranchRuleButton().exists()).toBe(true);
});
diff --git a/spec/frontend/projects/settings/repository/branch_rules/mock_data.js b/spec/frontend/projects/settings/repository/branch_rules/mock_data.js
index d169397241d..5981647ce38 100644
--- a/spec/frontend/projects/settings/repository/branch_rules/mock_data.js
+++ b/spec/frontend/projects/settings/repository/branch_rules/mock_data.js
@@ -65,8 +65,22 @@ export const branchRulesMockResponse = {
},
};
+export const createBranchRuleMockResponse = {
+ data: {
+ branchRuleCreate: {
+ errors: [],
+ branchRule: {
+ name: '*dkd',
+ __typename: 'BranchRule',
+ },
+ __typename: 'BranchRuleCreatePayload',
+ },
+ },
+};
+
export const appProvideMock = {
projectPath: 'some/project/path',
+ branchRulesPath: 'settings/repository/branch_rules',
};
export const branchRuleProvideMock = {
diff --git a/spec/frontend/releases/__snapshots__/util_spec.js.snap b/spec/frontend/releases/__snapshots__/util_spec.js.snap
index c02c1bb959c..983db8846c6 100644
--- a/spec/frontend/releases/__snapshots__/util_spec.js.snap
+++ b/spec/frontend/releases/__snapshots__/util_spec.js.snap
@@ -165,7 +165,9 @@ Object {
dir="auto"
>
Best. Release.
- <strong>
+ <strong
+ data-sourcepos="1:16-1:24"
+ >
Ever.
</strong>
<gl-emoji
@@ -400,7 +402,9 @@ Object {
dir="auto"
>
Best. Release.
- <strong>
+ <strong
+ data-sourcepos="1:16-1:24"
+ >
Ever.
</strong>
<gl-emoji
diff --git a/spec/frontend/releases/components/app_edit_new_spec.js b/spec/frontend/releases/components/app_edit_new_spec.js
index 15436832be8..90f31dca232 100644
--- a/spec/frontend/releases/components/app_edit_new_spec.js
+++ b/spec/frontend/releases/components/app_edit_new_spec.js
@@ -319,6 +319,25 @@ describe('Release edit/new component', () => {
expect(actions.saveRelease).not.toHaveBeenCalled();
});
});
+
+ describe('when tag notes are loading', () => {
+ beforeEach(async () => {
+ await factory({
+ store: {
+ modules: {
+ editNew: {
+ state: {
+ isFetchingTagNotes: true,
+ },
+ },
+ },
+ },
+ });
+ });
+ it('renders the submit button as disabled', () => {
+ expect(findSubmitButton().attributes('disabled')).toBeDefined();
+ });
+ });
});
describe('delete', () => {
diff --git a/spec/frontend/releases/components/app_index_spec.js b/spec/frontend/releases/components/app_index_spec.js
index b8507dc5fb4..4417dc67dc4 100644
--- a/spec/frontend/releases/components/app_index_spec.js
+++ b/spec/frontend/releases/components/app_index_spec.js
@@ -1,11 +1,13 @@
import { cloneDeep } from 'lodash';
import Vue, { nextTick } from 'vue';
import VueApollo from 'vue-apollo';
+import { GlAlert } from '@gitlab/ui';
import originalAllReleasesQueryResponse from 'test_fixtures/graphql/releases/graphql/queries/all_releases.query.graphql.json';
import createMockApollo from 'helpers/mock_apollo_helper';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import waitForPromises from 'helpers/wait_for_promises';
import allReleasesQuery from '~/releases/graphql/queries/all_releases.query.graphql';
+import getCiCatalogSettingsQuery from '~/ci/catalog/graphql/queries/get_ci_catalog_settings.query.graphql';
import { createAlert, VARIANT_SUCCESS } from '~/alert';
import { historyPushState } from '~/lib/utils/common_utils';
import ReleasesIndexApp from '~/releases/components/app_index.vue';
@@ -16,6 +18,7 @@ import ReleasesPagination from '~/releases/components/releases_pagination.vue';
import ReleasesSort from '~/releases/components/releases_sort.vue';
import { PAGE_SIZE, CREATED_ASC, DEFAULT_SORT } from '~/releases/constants';
import { deleteReleaseSessionKey } from '~/releases/release_notification_service';
+import { generateCatalogSettingsResponse } from '../mock_data';
Vue.use(VueApollo);
@@ -46,19 +49,22 @@ describe('app_index.vue', () => {
let noReleases;
let queryMock;
let toast;
+ let ciCatalogSettingsResponse;
const createComponent = ({
singleResponse = Promise.resolve(singleRelease),
fullResponse = Promise.resolve(allReleases),
} = {}) => {
- const apolloProvider = createMockApollo([
+ const handlers = [
[
allReleasesQuery,
queryMock.mockImplementation((vars) => {
return vars.first === 1 ? singleResponse : fullResponse;
}),
],
- ]);
+ [getCiCatalogSettingsQuery, ciCatalogSettingsResponse],
+ ];
+ const apolloProvider = createMockApollo(handlers);
toast = jest.fn();
@@ -98,6 +104,7 @@ describe('app_index.vue', () => {
const findAllReleaseBlocks = () => wrapper.findAllComponents(ReleaseBlock);
const findPagination = () => wrapper.findComponent(ReleasesPagination);
const findSort = () => wrapper.findComponent(ReleasesSort);
+ const findCatalogAlert = () => wrapper.findComponent(GlAlert);
// Tests
describe('component states', () => {
@@ -162,7 +169,9 @@ describe('app_index.vue', () => {
error: expect.any(Error),
});
} else {
- expect(createAlert).not.toHaveBeenCalled();
+ expect(createAlert).not.toHaveBeenCalledWith({
+ error: expect.any(Error),
+ });
}
});
@@ -412,7 +421,6 @@ describe('app_index.vue', () => {
});
it('shows a toast', () => {
- expect(createAlert).toHaveBeenCalledTimes(1);
expect(createAlert).toHaveBeenCalledWith({
message: `Release ${release} has been successfully deleted.`,
variant: VARIANT_SUCCESS,
@@ -423,4 +431,32 @@ describe('app_index.vue', () => {
expect(window.sessionStorage.getItem(key)).toBe(null);
});
});
+
+ describe('CI/CD Catalog Alert', () => {
+ beforeEach(() => {
+ ciCatalogSettingsResponse = jest.fn();
+ });
+
+ describe('when the project is a catalog resource', () => {
+ beforeEach(async () => {
+ ciCatalogSettingsResponse.mockResolvedValue(generateCatalogSettingsResponse(true));
+ await createComponent();
+ });
+
+ it('renders the CI/CD Catalog alert', () => {
+ expect(findCatalogAlert().exists()).toBe(true);
+ });
+ });
+
+ describe('when the project is not a catalog resource', () => {
+ beforeEach(async () => {
+ ciCatalogSettingsResponse.mockResolvedValue(generateCatalogSettingsResponse(false));
+ await createComponent();
+ });
+
+ it('does not render the CI/CD Catalog alert', () => {
+ expect(findCatalogAlert().exists()).toBe(false);
+ });
+ });
+ });
});
diff --git a/spec/frontend/releases/mock_data.js b/spec/frontend/releases/mock_data.js
index c89182faa44..d0ed883fb5b 100644
--- a/spec/frontend/releases/mock_data.js
+++ b/spec/frontend/releases/mock_data.js
@@ -15,3 +15,14 @@ export const pageInfoHeadersWithPagination = {
'X-TOTAL': '21',
'X-TOTAL-PAGES': '2',
};
+
+export const generateCatalogSettingsResponse = (isCatalogResource = false) => {
+ return {
+ data: {
+ project: {
+ id: 'gid://gitlab/Project/149',
+ isCatalogResource,
+ },
+ },
+ };
+};
diff --git a/spec/frontend/releases/stores/modules/detail/actions_spec.js b/spec/frontend/releases/stores/modules/detail/actions_spec.js
index a55b6cdef92..4dc55c12464 100644
--- a/spec/frontend/releases/stores/modules/detail/actions_spec.js
+++ b/spec/frontend/releases/stores/modules/detail/actions_spec.js
@@ -4,6 +4,7 @@ import testAction from 'helpers/vuex_action_helper';
import { useLocalStorageSpy } from 'helpers/local_storage_helper';
import { getTag } from '~/api/tags_api';
import { createAlert } from '~/alert';
+import { HTTP_STATUS_NOT_FOUND } from '~/lib/utils/http_status';
import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated
import AccessorUtilities from '~/lib/utils/accessor';
import { s__ } from '~/locale';
@@ -128,6 +129,38 @@ describe('Release edit/new actions', () => {
{ type: types.INITIALIZE_RELEASE, payload: release },
{ type: types.UPDATE_CREATE_FROM, payload: createFrom },
],
+ expectedActions: [{ type: 'fetchTagNotes', payload: release.tagName }],
+ });
+ });
+
+ it('with no tag name, does not fetch tag information', () => {
+ const release = {
+ tagName: '',
+ tagMessage: 'hello',
+ name: '',
+ description: '',
+ milestones: [],
+ groupMilestones: [],
+ releasedAt: new Date(),
+ assets: {
+ links: [],
+ },
+ };
+ const createFrom = 'main';
+
+ window.localStorage.setItem(`${state.projectPath}/release/new`, JSON.stringify(release));
+ window.localStorage.setItem(
+ `${state.projectPath}/release/new/createFrom`,
+ JSON.stringify(createFrom),
+ );
+
+ return testAction({
+ action: actions.loadDraftRelease,
+ state,
+ expectedMutations: [
+ { type: types.INITIALIZE_RELEASE, payload: release },
+ { type: types.UPDATE_CREATE_FROM, payload: createFrom },
+ ],
});
});
});
@@ -988,6 +1021,7 @@ describe('Release edit/new actions', () => {
expect(getTag).toHaveBeenCalledWith(state.projectId, tagName);
});
+
it('creates an alert on error', async () => {
error = new Error();
getTag.mockRejectedValue(error);
@@ -1007,5 +1041,23 @@ describe('Release edit/new actions', () => {
});
expect(getTag).toHaveBeenCalledWith(state.projectId, tagName);
});
+
+ it('assumes creating a tag on 404', async () => {
+ error = { response: { status: HTTP_STATUS_NOT_FOUND } };
+ getTag.mockRejectedValue(error);
+
+ await testAction({
+ action: actions.fetchTagNotes,
+ payload: tagName,
+ state,
+ expectedMutations: [
+ { type: types.REQUEST_TAG_NOTES },
+ { type: types.RECEIVE_TAG_NOTES_SUCCESS, payload: {} },
+ ],
+ expectedActions: [{ type: 'setNewTag' }, { type: 'setCreating' }],
+ });
+
+ expect(getTag).toHaveBeenCalledWith(state.projectId, tagName);
+ });
});
});
diff --git a/spec/frontend/releases/stores/modules/detail/getters_spec.js b/spec/frontend/releases/stores/modules/detail/getters_spec.js
index 24490e19296..30a3c78641c 100644
--- a/spec/frontend/releases/stores/modules/detail/getters_spec.js
+++ b/spec/frontend/releases/stores/modules/detail/getters_spec.js
@@ -424,7 +424,7 @@ describe('Release edit/new getters', () => {
describe('formattedReleaseNotes', () => {
it.each`
- description | includeTagNotes | tagNotes | included | showCreateFrom
+ description | includeTagNotes | tagNotes | included | isNewTag
${'release notes'} | ${true} | ${'tag notes'} | ${true} | ${false}
${'release notes'} | ${true} | ${''} | ${false} | ${false}
${'release notes'} | ${false} | ${'tag notes'} | ${false} | ${false}
@@ -432,25 +432,24 @@ describe('Release edit/new getters', () => {
${'release notes'} | ${true} | ${''} | ${false} | ${true}
${'release notes'} | ${false} | ${'tag notes'} | ${false} | ${true}
`(
- 'should include tag notes=$included when includeTagNotes=$includeTagNotes and tagNotes=$tagNotes and showCreateFrom=$showCreateFrom',
- ({ description, includeTagNotes, tagNotes, included, showCreateFrom }) => {
+ 'should include tag notes=$included when includeTagNotes=$includeTagNotes and tagNotes=$tagNotes and isNewTag=$isNewTag',
+ ({ description, includeTagNotes, tagNotes, included, isNewTag }) => {
let state;
- if (showCreateFrom) {
+ if (isNewTag) {
state = {
release: { description, tagMessage: tagNotes },
includeTagNotes,
- showCreateFrom,
};
} else {
- state = { release: { description }, includeTagNotes, tagNotes, showCreateFrom };
+ state = { release: { description }, includeTagNotes, tagNotes };
}
const text = `### ${s__('Releases|Tag message')}\n\n${tagNotes}\n`;
if (included) {
- expect(getters.formattedReleaseNotes(state)).toContain(text);
+ expect(getters.formattedReleaseNotes(state, { isNewTag })).toContain(text);
} else {
- expect(getters.formattedReleaseNotes(state)).not.toContain(text);
+ expect(getters.formattedReleaseNotes(state, { isNewTag })).not.toContain(text);
}
},
);
diff --git a/spec/frontend/search/store/actions_spec.js b/spec/frontend/search/store/actions_spec.js
index 889260fc478..1c70bfcf0ef 100644
--- a/spec/frontend/search/store/actions_spec.js
+++ b/spec/frontend/search/store/actions_spec.js
@@ -40,7 +40,15 @@ jest.mock('~/lib/utils/url_utility', () => ({
setUrlParams: jest.fn(),
joinPaths: jest.fn().mockReturnValue(''),
visitUrl: jest.fn(),
+ queryToObject: jest.fn().mockReturnValue({ scope: 'projects', search: '' }),
+ objectToQuery: jest.fn((params) =>
+ Object.keys(params)
+ .map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`)
+ .join('&'),
+ ),
+ getBaseURL: jest.fn().mockReturnValue('http://gdk.test:3000'),
}));
+
jest.mock('~/lib/logger', () => ({
logError: jest.fn(),
}));
@@ -328,6 +336,23 @@ describe('Global Search Store Actions', () => {
});
});
+ describe('fetchSidebarCount uses wild card seach', () => {
+ beforeEach(() => {
+ state.navigation = mapValues(MOCK_NAVIGATION_DATA, (navItem) => ({
+ ...navItem,
+ count_link: '/search/count?scope=projects&search=',
+ }));
+ state.urlQuery.search = '';
+ });
+
+ it('should use wild card', async () => {
+ await testAction({ action: actions.fetchSidebarCount, state, expectedMutations: [] });
+ expect(mock.history.get[0].url).toBe(
+ 'http://gdk.test:3000/search/count?scope=projects&search=*',
+ );
+ });
+ });
+
describe.each`
action | axiosMock | type | expectedMutations | errorLogs
${actions.fetchAllAggregation} | ${{ method: 'onGet', code: HTTP_STATUS_OK }} | ${'success'} | ${MOCK_RECEIVE_AGGREGATIONS_SUCCESS_MUTATION} | ${0}
diff --git a/spec/frontend/security_configuration/components/feature_card_spec.js b/spec/frontend/security_configuration/components/feature_card_spec.js
index 9efee2a409a..f1826e0e138 100644
--- a/spec/frontend/security_configuration/components/feature_card_spec.js
+++ b/spec/frontend/security_configuration/components/feature_card_spec.js
@@ -1,7 +1,7 @@
import { GlIcon } from '@gitlab/ui';
import { mount } from '@vue/test-utils';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
-import { securityFeatures } from '~/security_configuration/constants';
+import { securityFeatures } from 'jest/security_configuration/mock_data';
import FeatureCard from '~/security_configuration/components/feature_card.vue';
import FeatureCardBadge from '~/security_configuration/components/feature_card_badge.vue';
import ManageViaMr from '~/vue_shared/security_configuration/components/manage_via_mr.vue';
diff --git a/spec/frontend/security_configuration/mock_data.js b/spec/frontend/security_configuration/mock_data.js
index 208256afdbd..f47d4f69cd0 100644
--- a/spec/frontend/security_configuration/mock_data.js
+++ b/spec/frontend/security_configuration/mock_data.js
@@ -1,11 +1,17 @@
import {
SAST_NAME,
SAST_SHORT_NAME,
- SAST_DESCRIPTION,
- SAST_HELP_PATH,
- SAST_CONFIG_HELP_PATH,
+ SAST_IAC_NAME,
+ SAST_IAC_SHORT_NAME,
} from '~/security_configuration/constants';
-import { REPORT_TYPE_SAST } from '~/vue_shared/security_reports/constants';
+import { __, s__ } from '~/locale';
+import { helpPagePath } from '~/helpers/help_page_helper';
+
+import {
+ REPORT_TYPE_SAST,
+ REPORT_TYPE_BREACH_AND_ATTACK_SIMULATION,
+ REPORT_TYPE_SAST_IAC,
+} from '~/vue_shared/security_reports/constants';
export const testProjectPath = 'foo/bar';
export const testProviderIds = [101, 102, 103];
@@ -16,6 +22,71 @@ export const testTrainingUrls = [
'https://www.vendornamethree.com/url',
];
+const SAST_DESCRIPTION = __('Analyze your source code for known vulnerabilities.');
+const SAST_HELP_PATH = helpPagePath('user/application_security/sast/index');
+const SAST_CONFIG_HELP_PATH = helpPagePath('user/application_security/sast/index', {
+ anchor: 'configuration',
+});
+
+const BAS_BADGE_TEXT = s__('SecurityConfiguration|Incubating feature');
+const BAS_BADGE_TOOLTIP = s__(
+ 'SecurityConfiguration|Breach and Attack Simulation is an incubating feature extending existing security testing by simulating adversary activity.',
+);
+const BAS_DESCRIPTION = s__(
+ 'SecurityConfiguration|Simulate breach and attack scenarios against your running application by attempting to detect and exploit known vulnerabilities.',
+);
+const BAS_HELP_PATH = helpPagePath('user/application_security/breach_and_attack_simulation/index');
+const BAS_NAME = s__('SecurityConfiguration|Breach and Attack Simulation (BAS)');
+const BAS_SHORT_NAME = s__('SecurityConfiguration|BAS');
+const BAS_DAST_FEATURE_FLAG_DESCRIPTION = s__(
+ 'SecurityConfiguration|Enable incubating Breach and Attack Simulation focused features such as callback attacks in your DAST scans.',
+);
+const BAS_DAST_FEATURE_FLAG_HELP_PATH = helpPagePath(
+ 'user/application_security/breach_and_attack_simulation/index',
+ { anchor: 'extend-dynamic-application-security-testing-dast' },
+);
+const BAS_DAST_FEATURE_FLAG_NAME = s__(
+ 'SecurityConfiguration|Out-of-Band Application Security Testing (OAST)',
+);
+
+const SAST_IAC_DESCRIPTION = __(
+ 'Analyze your infrastructure as code configuration files for known vulnerabilities.',
+);
+const SAST_IAC_HELP_PATH = helpPagePath('user/application_security/iac_scanning/index');
+const SAST_IAC_CONFIG_HELP_PATH = helpPagePath('user/application_security/iac_scanning/index', {
+ anchor: 'configuration',
+});
+
+export const securityFeatures = [
+ {
+ anchor: 'bas',
+ badge: {
+ alwaysDisplay: true,
+ text: BAS_BADGE_TEXT,
+ tooltipText: BAS_BADGE_TOOLTIP,
+ variant: 'info',
+ },
+ description: BAS_DESCRIPTION,
+ name: BAS_NAME,
+ helpPath: BAS_HELP_PATH,
+ secondary: {
+ configurationHelpPath: BAS_DAST_FEATURE_FLAG_HELP_PATH,
+ description: BAS_DAST_FEATURE_FLAG_DESCRIPTION,
+ name: BAS_DAST_FEATURE_FLAG_NAME,
+ },
+ shortName: BAS_SHORT_NAME,
+ type: REPORT_TYPE_BREACH_AND_ATTACK_SIMULATION,
+ },
+ {
+ name: SAST_IAC_NAME,
+ shortName: SAST_IAC_SHORT_NAME,
+ description: SAST_IAC_DESCRIPTION,
+ helpPath: SAST_IAC_HELP_PATH,
+ configurationHelpPath: SAST_IAC_CONFIG_HELP_PATH,
+ type: REPORT_TYPE_SAST_IAC,
+ },
+];
+
const createSecurityTrainingProviders = ({ providerOverrides = {} }) => [
{
id: testProviderIds[0],
diff --git a/spec/frontend/security_configuration/utils_spec.js b/spec/frontend/security_configuration/utils_spec.js
index 3c6d4baa30f..f2eeaca8987 100644
--- a/spec/frontend/security_configuration/utils_spec.js
+++ b/spec/frontend/security_configuration/utils_spec.js
@@ -6,6 +6,46 @@ describe('augmentFeatures', () => {
{
name: 'SAST',
type: 'SAST',
+ security_features: {
+ type: 'SAST',
+ },
+ },
+ ];
+
+ const expectedMockSecurityFeatures = [
+ {
+ name: 'SAST',
+ type: 'SAST',
+ securityFeatures: {
+ type: 'SAST',
+ },
+ },
+ ];
+
+ const expectedInvalidMockSecurityFeatures = [
+ {
+ foo: 'bar',
+ name: 'SAST',
+ type: 'SAST',
+ securityFeatures: {
+ type: 'SAST',
+ },
+ },
+ ];
+
+ const expectedSecondarymockSecurityFeatures = [
+ {
+ name: 'DAST',
+ type: 'DAST',
+ helpPath: '/help/user/application_security/dast/index',
+ secondary: {
+ type: 'DAST PROFILES',
+ name: 'DAST PROFILES',
+ },
+ securityFeatures: {
+ type: 'DAST',
+ helpPath: '/help/user/application_security/dast/index',
+ },
},
];
@@ -17,6 +57,10 @@ describe('augmentFeatures', () => {
type: 'DAST PROFILES',
name: 'DAST PROFILES',
},
+ security_features: {
+ type: 'DAST',
+ help_path: '/help/user/application_security/dast/index',
+ },
},
];
@@ -31,6 +75,9 @@ describe('augmentFeatures', () => {
name: 'SAST',
type: 'SAST',
customField: 'customvalue',
+ securityFeatures: {
+ type: 'SAST',
+ },
},
];
@@ -38,6 +85,9 @@ describe('augmentFeatures', () => {
{
name: 'DAST',
type: 'dast',
+ security_features: {
+ type: 'DAST',
+ },
},
];
@@ -48,6 +98,9 @@ describe('augmentFeatures', () => {
customField: 'customvalue',
onDemandAvailable: false,
badge: {},
+ security_features: {
+ type: 'dast',
+ },
},
];
@@ -58,6 +111,9 @@ describe('augmentFeatures', () => {
customField: 'customvalue',
onDemandAvailable: true,
badge: {},
+ security_features: {
+ type: 'dast',
+ },
},
];
@@ -70,11 +126,15 @@ describe('augmentFeatures', () => {
];
const expectedOutputDefault = {
- augmentedSecurityFeatures: mockSecurityFeatures,
+ augmentedSecurityFeatures: expectedMockSecurityFeatures,
+ };
+
+ const expectedInvalidOutputDefault = {
+ augmentedSecurityFeatures: expectedInvalidMockSecurityFeatures,
};
const expectedOutputSecondary = {
- augmentedSecurityFeatures: mockSecurityFeatures,
+ augmentedSecurityFeatures: expectedSecondarymockSecurityFeatures,
};
const expectedOutputCustomFeature = {
@@ -88,6 +148,9 @@ describe('augmentFeatures', () => {
type: 'dast',
customField: 'customvalue',
onDemandAvailable: false,
+ securityFeatures: {
+ type: 'dast',
+ },
},
],
};
@@ -100,52 +163,62 @@ describe('augmentFeatures', () => {
customField: 'customvalue',
onDemandAvailable: true,
badge: {},
+ securityFeatures: {
+ type: 'dast',
+ },
},
],
};
describe('returns an object with augmentedSecurityFeatures when', () => {
- it('given an empty array', () => {
- expect(augmentFeatures(mockSecurityFeatures, [])).toEqual(expectedOutputDefault);
+ it('given an properly formatted array', () => {
+ expect(augmentFeatures(mockSecurityFeatures)).toEqual(expectedOutputDefault);
});
it('given an invalid populated array', () => {
- expect(augmentFeatures(mockSecurityFeatures, mockInvalidCustomFeature)).toEqual(
- expectedOutputDefault,
- );
+ expect(
+ augmentFeatures([{ ...mockSecurityFeatures[0], ...mockInvalidCustomFeature[0] }]),
+ ).toEqual(expectedInvalidOutputDefault);
});
it('features have secondary key', () => {
- expect(augmentFeatures(mockSecurityFeatures, mockFeaturesWithSecondary, [])).toEqual(
- expectedOutputSecondary,
- );
+ expect(
+ augmentFeatures([{ ...mockSecurityFeatures[0], ...mockFeaturesWithSecondary[0] }]),
+ ).toEqual(expectedOutputSecondary);
});
it('given a valid populated array', () => {
- expect(augmentFeatures(mockSecurityFeatures, mockValidCustomFeature)).toEqual(
- expectedOutputCustomFeature,
- );
+ expect(
+ augmentFeatures([{ ...mockSecurityFeatures[0], ...mockValidCustomFeature[0] }]),
+ ).toEqual(expectedOutputCustomFeature);
});
});
describe('returns an object with camelcased keys', () => {
it('given a customfeature in snakecase', () => {
- expect(augmentFeatures(mockSecurityFeatures, mockValidCustomFeatureSnakeCase)).toEqual(
- expectedOutputCustomFeature,
- );
+ expect(
+ augmentFeatures([{ ...mockSecurityFeatures[0], ...mockValidCustomFeatureSnakeCase[0] }]),
+ ).toEqual(expectedOutputCustomFeature);
});
});
describe('follows onDemandAvailable', () => {
it('deletes badge when false', () => {
expect(
- augmentFeatures(mockSecurityFeaturesDast, mockValidCustomFeatureWithOnDemandAvailableFalse),
+ augmentFeatures([
+ {
+ ...mockSecurityFeaturesDast[0],
+ ...mockValidCustomFeatureWithOnDemandAvailableFalse[0],
+ },
+ ]),
).toEqual(expectedOutputCustomFeatureWithOnDemandAvailableFalse);
});
it('keeps badge when true', () => {
expect(
- augmentFeatures(mockSecurityFeaturesDast, mockValidCustomFeatureWithOnDemandAvailableTrue),
+ augmentFeatures([
+ { ...mockSecurityFeaturesDast[0], ...mockValidCustomFeatureWithOnDemandAvailableTrue[0] },
+ ]),
).toEqual(expectedOutputCustomFeatureWithOnDemandAvailableTrue);
});
});
diff --git a/spec/frontend/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view_spec.js b/spec/frontend/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view_spec.js
index 5e2ff73878f..7180e10e7b1 100644
--- a/spec/frontend/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view_spec.js
+++ b/spec/frontend/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view_spec.js
@@ -1,4 +1,4 @@
-import { GlAlert, GlLoadingIcon, GlLink } from '@gitlab/ui';
+import { GlAlert, GlLoadingIcon } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import Vue, { nextTick } from 'vue';
import VueApollo from 'vue-apollo';
@@ -7,6 +7,7 @@ import waitForPromises from 'helpers/wait_for_promises';
import { createAlert } from '~/alert';
import { workspaceLabelsQueries, workspaceCreateLabelMutation } from '~/sidebar/queries/constants';
import DropdownContentsCreateView from '~/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue';
+import SibebarColorPicker from '~/sidebar/components/sidebar_color_picker.vue';
import { DEFAULT_LABEL_COLOR } from '~/sidebar/components/labels/labels_select_widget/constants';
import {
mockCreateLabelResponse as createAbuseReportLabelSuccessfulResponse,
@@ -14,7 +15,6 @@ import {
} from '../../../../admin/abuse_report/mock_data';
import {
mockRegularLabel,
- mockSuggestedColors,
createLabelSuccessfulResponse,
workspaceLabelsQueryResponse,
workspaceLabelsQueryEmptyResponse,
@@ -22,8 +22,6 @@ import {
jest.mock('~/alert');
-const colors = Object.keys(mockSuggestedColors);
-
Vue.use(VueApollo);
const userRecoverableError = {
@@ -51,9 +49,7 @@ const createLabelErrorHandler = jest.fn().mockRejectedValue('Houston, we have a
describe('DropdownContentsCreateView', () => {
let wrapper;
- const findAllColors = () => wrapper.findAllComponents(GlLink);
- const findSelectedColor = () => wrapper.find('[data-testid="selected-color"]');
- const findSelectedColorText = () => wrapper.find('[data-testid="selected-color-text"]');
+ const findSibebarColorPicker = () => wrapper.findComponent(SibebarColorPicker);
const findCreateButton = () => wrapper.find('[data-testid="create-button"]');
const findCancelButton = () => wrapper.find('[data-testid="cancel-button"]');
const findLabelTitleInput = () => wrapper.find('[data-testid="label-title-input"]');
@@ -62,7 +58,7 @@ describe('DropdownContentsCreateView', () => {
const fillLabelAttributes = () => {
findLabelTitleInput().vm.$emit('input', 'Test title');
- findAllColors().at(0).vm.$emit('click', new Event('mouseclick'));
+ findSibebarColorPicker().vm.$emit('input', '#009966');
};
const createComponent = ({
@@ -94,38 +90,9 @@ describe('DropdownContentsCreateView', () => {
});
};
- beforeEach(() => {
- gon.suggested_label_colors = mockSuggestedColors;
- });
-
- it('renders a palette of 21 colors', () => {
- createComponent();
- expect(findAllColors()).toHaveLength(21);
- });
-
- it('selects a color after clicking on colored block', async () => {
- createComponent();
- expect(findSelectedColorText().attributes('value')).toBe(DEFAULT_LABEL_COLOR);
-
- findAllColors().at(0).vm.$emit('click', new Event('mouseclick'));
- await nextTick();
-
- expect(findSelectedColor().attributes('value')).toBe('#009966');
- });
-
- it('shows correct color hex code after selecting a color', async () => {
- createComponent();
- expect(findSelectedColorText().attributes('value')).toBe(DEFAULT_LABEL_COLOR);
-
- findAllColors().at(0).vm.$emit('click', new Event('mouseclick'));
- await nextTick();
-
- expect(findSelectedColorText().attributes('value')).toBe(colors[0]);
- });
-
it('disables a Create button if label title is not set', async () => {
createComponent();
- findAllColors().at(0).vm.$emit('click', new Event('mouseclick'));
+ findSibebarColorPicker().vm.$emit('input', '#fff');
await nextTick();
expect(findCreateButton().props('disabled')).toBe(true);
@@ -134,7 +101,7 @@ describe('DropdownContentsCreateView', () => {
it('disables a Create button if color is not set', async () => {
createComponent();
findLabelTitleInput().vm.$emit('input', 'Test title');
- findSelectedColorText().vm.$emit('input', '');
+ findSibebarColorPicker().vm.$emit('input', '');
await nextTick();
expect(findCreateButton().props('disabled')).toBe(true);
diff --git a/spec/frontend/sidebar/components/labels/labels_select_widget/mock_data.js b/spec/frontend/sidebar/components/labels/labels_select_widget/mock_data.js
index 5039f00fe4b..eb7ab2953c6 100644
--- a/spec/frontend/sidebar/components/labels/labels_select_widget/mock_data.js
+++ b/spec/frontend/sidebar/components/labels/labels_select_widget/mock_data.js
@@ -58,30 +58,6 @@ export const mockConfig = {
attrWorkspacePath: 'test',
};
-export const mockSuggestedColors = {
- '#009966': 'Green-cyan',
- '#8fbc8f': 'Dark sea green',
- '#3cb371': 'Medium sea green',
- '#00b140': 'Green screen',
- '#013220': 'Dark green',
- '#6699cc': 'Blue-gray',
- '#0000ff': 'Blue',
- '#e6e6fa': 'Lavender',
- '#9400d3': 'Dark violet',
- '#330066': 'Deep violet',
- '#808080': 'Gray',
- '#36454f': 'Charcoal grey',
- '#f7e7ce': 'Champagne',
- '#c21e56': 'Rose red',
- '#cc338b': 'Magenta-pink',
- '#dc143c': 'Crimson',
- '#ff0000': 'Red',
- '#cd5b45': 'Dark coral',
- '#eee600': 'Titanium yellow',
- '#ed9121': 'Carrot orange',
- '#c39953': 'Aztec Gold',
-};
-
export const createLabelSuccessfulResponse = {
data: {
labelCreate: {
diff --git a/spec/frontend/sidebar/components/mock_data.js b/spec/frontend/sidebar/components/mock_data.js
index a9a00b3cfdf..b1b52674eb5 100644
--- a/spec/frontend/sidebar/components/mock_data.js
+++ b/spec/frontend/sidebar/components/mock_data.js
@@ -56,3 +56,27 @@ export const issueCrmContactsUpdateResponse = {
},
},
};
+
+export const mockSuggestedColors = {
+ '#009966': 'Green-cyan',
+ '#8fbc8f': 'Dark sea green',
+ '#3cb371': 'Medium sea green',
+ '#00b140': 'Green screen',
+ '#013220': 'Dark green',
+ '#6699cc': 'Blue-gray',
+ '#0000ff': 'Blue',
+ '#e6e6fa': 'Lavender',
+ '#9400d3': 'Dark violet',
+ '#330066': 'Deep violet',
+ '#808080': 'Gray',
+ '#36454f': 'Charcoal grey',
+ '#f7e7ce': 'Champagne',
+ '#c21e56': 'Rose red',
+ '#cc338b': 'Magenta-pink',
+ '#dc143c': 'Crimson',
+ '#ff0000': 'Red',
+ '#cd5b45': 'Dark coral',
+ '#eee600': 'Titanium yellow',
+ '#ed9121': 'Carrot orange',
+ '#c39953': 'Aztec Gold',
+};
diff --git a/spec/frontend/sidebar/components/sidebar_color_picker_spec.js b/spec/frontend/sidebar/components/sidebar_color_picker_spec.js
new file mode 100644
index 00000000000..7ce556fe368
--- /dev/null
+++ b/spec/frontend/sidebar/components/sidebar_color_picker_spec.js
@@ -0,0 +1,58 @@
+import { GlFormInput, GlLink } from '@gitlab/ui';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import SibebarColorPicker from '~/sidebar/components/sidebar_color_picker.vue';
+import { mockSuggestedColors } from './mock_data';
+
+describe('SibebarColorPicker', () => {
+ let wrapper;
+ const findAllColors = () => wrapper.findAllComponents(GlLink);
+ const findFirstColor = () => findAllColors().at(0);
+ const findColorPicker = () => wrapper.findComponent(GlFormInput);
+ const findColorPickerText = () => wrapper.findByTestId('selected-color-text');
+
+ const createComponent = ({ value = '' } = {}) => {
+ wrapper = shallowMountExtended(SibebarColorPicker, {
+ propsData: {
+ value,
+ },
+ });
+ };
+
+ beforeEach(() => {
+ gon.suggested_label_colors = mockSuggestedColors;
+ });
+
+ it('renders a palette of 21 colors', () => {
+ createComponent();
+ expect(findAllColors()).toHaveLength(21);
+ });
+
+ it('renders value of the color in textbox', () => {
+ createComponent({ value: '#343434' });
+ expect(findColorPickerText().attributes('value')).toBe('#343434');
+ });
+
+ describe('color picker', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('emits color on click of suggested color link', () => {
+ findFirstColor().vm.$emit('click', new Event('mouseclick'));
+
+ expect(wrapper.emitted('input')).toEqual([['#009966']]);
+ });
+
+ it('emits color on selecting color from picker', () => {
+ findColorPicker().vm.$emit('input', '#ffffff');
+
+ expect(wrapper.emitted('input')).toEqual([['#ffffff']]);
+ });
+
+ it('emits color on typing the hex code in the input', () => {
+ findColorPickerText().vm.$emit('input', '#000000');
+
+ expect(wrapper.emitted('input')).toEqual([['#000000']]);
+ });
+ });
+});
diff --git a/spec/frontend/super_sidebar/components/create_menu_spec.js b/spec/frontend/super_sidebar/components/create_menu_spec.js
index ffbc789d220..c2f608b4f52 100644
--- a/spec/frontend/super_sidebar/components/create_menu_spec.js
+++ b/spec/frontend/super_sidebar/components/create_menu_spec.js
@@ -31,6 +31,7 @@ describe('CreateMenu component', () => {
stubs: {
InviteMembersTrigger,
GlDisclosureDropdown,
+ GlEmoji: { template: '<div/>' },
},
directives: {
GlTooltip: createMockDirective('gl-tooltip'),
diff --git a/spec/frontend/super_sidebar/components/user_menu_spec.js b/spec/frontend/super_sidebar/components/user_menu_spec.js
index 4af3247693b..7d50a2b3441 100644
--- a/spec/frontend/super_sidebar/components/user_menu_spec.js
+++ b/spec/frontend/super_sidebar/components/user_menu_spec.js
@@ -506,6 +506,64 @@ describe('UserMenu component', () => {
});
});
+ describe('Admin Mode items', () => {
+ const findEnterAdminModeItem = () => wrapper.findByTestId('enter-admin-mode-item');
+ const findLeaveAdminModeItem = () => wrapper.findByTestId('leave-admin-mode-item');
+
+ describe('when user is not admin', () => {
+ it('should not render', () => {
+ createWrapper({
+ admin_mode: {
+ user_is_admin: false,
+ },
+ });
+ expect(findEnterAdminModeItem().exists()).toBe(false);
+ expect(findLeaveAdminModeItem().exists()).toBe(false);
+ });
+ });
+
+ describe('when user is admin but admin mode feature is not enabled', () => {
+ it('should not render', () => {
+ createWrapper({
+ admin_mode: {
+ user_is_admin: true,
+ admin_mode_feature_enabled: false,
+ },
+ });
+ expect(findEnterAdminModeItem().exists()).toBe(false);
+ expect(findLeaveAdminModeItem().exists()).toBe(false);
+ });
+ });
+
+ describe('when user is admin, admin mode feature is enabled but inactive', () => {
+ it('should render only "enter admin mode" item', () => {
+ createWrapper({
+ admin_mode: {
+ user_is_admin: true,
+ admin_mode_feature_enabled: true,
+ admin_mode_active: false,
+ },
+ });
+ expect(findEnterAdminModeItem().exists()).toBe(true);
+ expect(findLeaveAdminModeItem().exists()).toBe(false);
+ });
+ });
+
+ describe('when user is admin, admin mode feature is enabled and active', () => {
+ it('should render only "leave admin mode" item', () => {
+ createWrapper({
+ admin_mode: {
+ user_is_admin: true,
+ admin_mode_feature_enabled: true,
+ admin_mode_active: true,
+ },
+ });
+ expect(findEnterAdminModeItem().exists()).toBe(false);
+ expect(findLeaveAdminModeItem().exists()).toBe(true);
+ });
+ });
+ });
+
describe('Sign out group', () => {
const findSignOutGroup = () => wrapper.findByTestId('sign-out-group');
diff --git a/spec/frontend/super_sidebar/mock_data.js b/spec/frontend/super_sidebar/mock_data.js
index fc264ad5e0a..067caec5ff4 100644
--- a/spec/frontend/super_sidebar/mock_data.js
+++ b/spec/frontend/super_sidebar/mock_data.js
@@ -175,6 +175,11 @@ export const userMenuMockPipelineMinutes = {
export const userMenuMockData = {
name: 'Orange Fox',
username: 'thefox',
+ admin_mode: {
+ user_is_admin: false,
+ admin_mode_feature_enabled: false,
+ admin_mode_active: false,
+ },
avatar_url: invalidUrl,
has_link_to_profile: true,
link_to_profile: '/thefox',
@@ -210,102 +215,6 @@ export const frecentProjectsMock = [
},
];
-export const cachedFrequentProjects = JSON.stringify([
- {
- id: 1,
- name: 'Cached project 1',
- namespace: 'Cached Namespace 1 / Cached project 1',
- webUrl: '/cached-namespace-1/cached-project-1',
- avatarUrl: '/uploads/-/avatar1.png',
- lastAccessedOn: 1676325329054,
- frequency: 10,
- },
- {
- id: 2,
- name: 'Cached project 2',
- namespace: 'Cached Namespace 2 / Cached project 2',
- webUrl: '/cached-namespace-2/cached-project-2',
- avatarUrl: '/uploads/-/avatar2.png',
- lastAccessedOn: 1674314684308,
- frequency: 8,
- },
- {
- id: 3,
- name: 'Cached project 3',
- namespace: 'Cached Namespace 3 / Cached project 3',
- webUrl: '/cached-namespace-3/cached-project-3',
- avatarUrl: '/uploads/-/avatar3.png',
- lastAccessedOn: 1664977333191,
- frequency: 12,
- },
- {
- id: 4,
- name: 'Cached project 4',
- namespace: 'Cached Namespace 4 / Cached project 4',
- webUrl: '/cached-namespace-4/cached-project-4',
- avatarUrl: '/uploads/-/avatar4.png',
- lastAccessedOn: 1674315407569,
- frequency: 3,
- },
- {
- id: 5,
- name: 'Cached project 5',
- namespace: 'Cached Namespace 5 / Cached project 5',
- webUrl: '/cached-namespace-5/cached-project-5',
- avatarUrl: '/uploads/-/avatar5.png',
- lastAccessedOn: 1677084729436,
- frequency: 21,
- },
- {
- id: 6,
- name: 'Cached project 6',
- namespace: 'Cached Namespace 6 / Cached project 6',
- webUrl: '/cached-namespace-6/cached-project-6',
- avatarUrl: '/uploads/-/avatar6.png',
- lastAccessedOn: 1676325329679,
- frequency: 5,
- },
-]);
-
-export const cachedFrequentGroups = JSON.stringify([
- {
- id: 1,
- name: 'Cached group 1',
- namespace: 'Cached Namespace 1',
- webUrl: '/cached-namespace-1/cached-group-1',
- avatarUrl: '/uploads/-/avatar1.png',
- lastAccessedOn: 1676325329054,
- frequency: 10,
- },
- {
- id: 2,
- name: 'Cached group 2',
- namespace: 'Cached Namespace 2',
- webUrl: '/cached-namespace-2/cached-group-2',
- avatarUrl: '/uploads/-/avatar2.png',
- lastAccessedOn: 1674314684308,
- frequency: 8,
- },
- {
- id: 3,
- name: 'Cached group 3',
- namespace: 'Cached Namespace 3',
- webUrl: '/cached-namespace-3/cached-group-3',
- avatarUrl: '/uploads/-/avatar3.png',
- lastAccessedOn: 1664977333191,
- frequency: 12,
- },
- {
- id: 4,
- name: 'Cached group 4',
- namespace: 'Cached Namespace 4',
- webUrl: '/cached-namespace-4/cached-group-4',
- avatarUrl: '/uploads/-/avatar4.png',
- lastAccessedOn: 1674315407569,
- frequency: 3,
- },
-]);
-
export const unsortedFrequentItems = [
{ id: 1, frequency: 12, lastAccessedOn: 1491400843391 },
{ id: 2, frequency: 14, lastAccessedOn: 1488240890738 },
diff --git a/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js b/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js
new file mode 100644
index 00000000000..e4f99d401a2
--- /dev/null
+++ b/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js
@@ -0,0 +1,51 @@
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import NamespaceStorageApp from '~/usage_quotas/storage/components/namespace_storage_app.vue';
+import StorageUsageStatistics from '~/usage_quotas/storage/components/storage_usage_statistics.vue';
+import { defaultNamespaceProvideValues } from '../mock_data';
+
+const defaultProps = {
+ namespaceLoadingError: false,
+ projectsLoadingError: false,
+ isNamespaceStorageStatisticsLoading: false,
+ // hardcoding object until we move test_fixtures from ee/ to here
+ namespace: {
+ rootStorageStatistics: {
+ storageSize: 1234,
+ },
+ },
+};
+
+describe('NamespaceStorageApp', () => {
+ /** @type {import('helpers/vue_test_utils_helper').ExtendedWrapper} */
+ let wrapper;
+
+ const findStorageUsageStatistics = () => wrapper.findComponent(StorageUsageStatistics);
+
+ const createComponent = ({ provide = {}, props = {} } = {}) => {
+ wrapper = shallowMountExtended(NamespaceStorageApp, {
+ provide: {
+ ...defaultNamespaceProvideValues,
+ ...provide,
+ },
+ propsData: {
+ ...defaultProps,
+ ...props,
+ },
+ });
+ };
+
+ describe('Namespace usage overview', () => {
+ describe('StorageUsageStatistics', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('passes the correct props to StorageUsageStatistics', () => {
+ expect(findStorageUsageStatistics().props()).toMatchObject({
+ usedStorage: defaultProps.namespace.rootStorageStatistics.storageSize,
+ loading: false,
+ });
+ });
+ });
+ });
+});
diff --git a/spec/frontend/usage_quotas/storage/components/storage_usage_overview_card_spec.js b/spec/frontend/usage_quotas/storage/components/storage_usage_overview_card_spec.js
new file mode 100644
index 00000000000..c79b6b94ac1
--- /dev/null
+++ b/spec/frontend/usage_quotas/storage/components/storage_usage_overview_card_spec.js
@@ -0,0 +1,44 @@
+import { GlSkeletonLoader } from '@gitlab/ui';
+import { numberToHumanSize } from '~/lib/utils/number_utils';
+import StorageUsageOverviewCard from '~/usage_quotas/storage/components/storage_usage_overview_card.vue';
+import NumberToHumanSize from '~/vue_shared/components/number_to_human_size/number_to_human_size.vue';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+
+describe('StorageUsageOverviewCard', () => {
+ /** @type {import('helpers/vue_test_utils_helper').ExtendedWrapper} */
+ let wrapper;
+ const defaultProps = {
+ purchasedStorage: 0,
+ // hardcoding value until we move test_fixtures from ee/ to here
+ usedStorage: 1234,
+ loading: false,
+ };
+
+ const createComponent = ({ props = {} } = {}) => {
+ wrapper = shallowMountExtended(StorageUsageOverviewCard, {
+ propsData: { ...defaultProps, ...props },
+ stubs: {
+ NumberToHumanSize,
+ },
+ });
+ };
+
+ const findSkeletonLoader = () => wrapper.findComponent(GlSkeletonLoader);
+
+ it('displays the used storage value', () => {
+ createComponent();
+ expect(wrapper.text()).toContain(numberToHumanSize(defaultProps.usedStorage, 1));
+ });
+
+ describe('skeleton loader', () => {
+ it('renders skeleton loader when loading prop is true', () => {
+ createComponent({ props: { loading: true } });
+ expect(findSkeletonLoader().exists()).toBe(true);
+ });
+
+ it('does not render skeleton loader when loading prop is false', () => {
+ createComponent({ props: { loading: false } });
+ expect(findSkeletonLoader().exists()).toBe(false);
+ });
+ });
+});
diff --git a/spec/frontend/usage_quotas/storage/components/storage_usage_statistics_spec.js b/spec/frontend/usage_quotas/storage/components/storage_usage_statistics_spec.js
new file mode 100644
index 00000000000..73d02dc273f
--- /dev/null
+++ b/spec/frontend/usage_quotas/storage/components/storage_usage_statistics_spec.js
@@ -0,0 +1,43 @@
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import StorageUsageStatistics from '~/usage_quotas/storage/components/storage_usage_statistics.vue';
+import StorageUsageOverviewCard from '~/usage_quotas/storage/components/storage_usage_overview_card.vue';
+
+const defaultProps = {
+ // hardcoding value until we move test_fixtures from ee/ to here
+ usedStorage: 1234,
+ loading: false,
+};
+
+describe('StorageUsageStatistics', () => {
+ /** @type {import('helpers/vue_test_utils_helper').ExtendedWrapper} */
+ let wrapper;
+
+ const createComponent = ({ props = {} } = {}) => {
+ wrapper = shallowMountExtended(StorageUsageStatistics, {
+ propsData: {
+ ...defaultProps,
+ ...props,
+ },
+ });
+ };
+
+ const findOverviewSubtitle = () => wrapper.findByTestId('overview-subtitle');
+ const findStorageUsageOverviewCard = () => wrapper.findComponent(StorageUsageOverviewCard);
+
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('shows the namespace storage overview subtitle', () => {
+ expect(findOverviewSubtitle().text()).toBe('Namespace overview');
+ });
+
+ describe('StorageStatisticsCard', () => {
+ it('passes the correct props to StorageUsageOverviewCard', () => {
+ expect(findStorageUsageOverviewCard().props()).toEqual({
+ usedStorage: defaultProps.usedStorage,
+ loading: false,
+ });
+ });
+ });
+});
diff --git a/spec/frontend/usage_quotas/storage/mock_data.js b/spec/frontend/usage_quotas/storage/mock_data.js
index 16c03a13028..266c1150815 100644
--- a/spec/frontend/usage_quotas/storage/mock_data.js
+++ b/spec/frontend/usage_quotas/storage/mock_data.js
@@ -6,3 +6,5 @@ export const mockEmptyResponse = { data: { project: null } };
export const defaultProjectProvideValues = {
projectPath: '/project-path',
};
+
+export const defaultNamespaceProvideValues = {};
diff --git a/spec/frontend/vue_merge_request_widget/components/mr_widget_rebase_spec.js b/spec/frontend/vue_merge_request_widget/components/mr_widget_rebase_spec.js
index 9bd46267daa..88ee9375180 100644
--- a/spec/frontend/vue_merge_request_widget/components/mr_widget_rebase_spec.js
+++ b/spec/frontend/vue_merge_request_widget/components/mr_widget_rebase_spec.js
@@ -398,4 +398,20 @@ describe('Merge request widget rebase component', () => {
expect(toast).toHaveBeenCalledWith('Rebase completed');
});
});
+
+ // This may happen when the session of a user is expired.
+ // see https://gitlab.com/gitlab-org/gitlab/-/issues/413627
+ describe('with empty project', () => {
+ it('does not throw any error', async () => {
+ const fn = async () => {
+ createWrapper({
+ handler: jest.fn().mockResolvedValue({ data: { project: null } }),
+ });
+
+ await waitForPromises();
+ };
+
+ await expect(fn()).resolves.not.toThrow();
+ });
+ });
});
diff --git a/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js b/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js
index 1b7338744e8..c9cc34e2cfc 100644
--- a/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js
+++ b/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js
@@ -212,6 +212,19 @@ describe('ReadyToMerge', () => {
expect(findMergeButton().text()).toBe('Set to auto-merge');
expect(findMergeHelperText().text()).toBe('Merge when pipeline succeeds');
});
+
+ it('should show merge help text when pipeline has failed and has an auto merge strategy', () => {
+ createComponent({
+ mr: {
+ pipeline: { status: 'FAILED' },
+ availableAutoMergeStrategies: MWPS_MERGE_STRATEGY,
+ hasCI: true,
+ },
+ });
+
+ expect(findMergeButton().text()).toBe('Set to auto-merge');
+ expect(findMergeHelperText().text()).toBe('Merge when pipeline succeeds');
+ });
});
describe('merge immediately dropdown', () => {
@@ -858,6 +871,42 @@ describe('ReadyToMerge', () => {
});
});
+ describe('only allow merge if pipeline succeeds', () => {
+ beforeEach(() => {
+ const response = JSON.parse(JSON.stringify(readyToMergeResponse));
+ response.data.project.onlyAllowMergeIfPipelineSucceeds = true;
+ response.data.project.mergeRequest.headPipeline = {
+ id: 1,
+ active: true,
+ status: '',
+ path: '',
+ };
+
+ readyToMergeResponseSpy = jest.fn().mockResolvedValueOnce(response);
+ });
+
+ it('hides merge immediately dropdown when subscription returns', async () => {
+ createComponent({ mr: { id: 1 } });
+
+ await waitForPromises();
+
+ expect(findMergeImmediatelyDropdown().exists()).toBe(false);
+
+ mockedSubscription.next({
+ data: {
+ mergeRequestMergeStatusUpdated: {
+ ...readyToMergeResponse.data.project.mergeRequest,
+ headPipeline: { id: 1, active: true, status: '', path: '' },
+ },
+ },
+ });
+
+ await waitForPromises();
+
+ expect(findMergeImmediatelyDropdown().exists()).toBe(false);
+ });
+ });
+
describe('commit message', () => {
it('updates commit message from subscription', async () => {
createComponent({ mr: { id: 1 } });
diff --git a/spec/frontend/vue_merge_request_widget/mr_widget_options_spec.js b/spec/frontend/vue_merge_request_widget/mr_widget_options_spec.js
index 9296e548081..85166549771 100644
--- a/spec/frontend/vue_merge_request_widget/mr_widget_options_spec.js
+++ b/spec/frontend/vue_merge_request_widget/mr_widget_options_spec.js
@@ -264,7 +264,7 @@ describe('MrWidgetOptions', () => {
expect(findMergePipelineForkAlert().exists()).toBe(false);
});
- it('hides the alert when merge pipelines are not enabled', async () => {
+ it('hides the alert when merged results pipelines are not enabled', async () => {
createComponent({
updatedMrData: {
source_project_id: 1,
@@ -275,7 +275,7 @@ describe('MrWidgetOptions', () => {
expect(findMergePipelineForkAlert().exists()).toBe(false);
});
- it('shows the alert when merge pipelines are enabled and the source project and target project are different', async () => {
+ it('shows the alert when merged results pipelines are enabled and the source project and target project are different', async () => {
createComponent({
updatedMrData: {
source_project_id: 1,
diff --git a/spec/frontend/vue_shared/components/file_row_spec.js b/spec/frontend/vue_shared/components/file_row_spec.js
index 976866af27c..d063db1e34b 100644
--- a/spec/frontend/vue_shared/components/file_row_spec.js
+++ b/spec/frontend/vue_shared/components/file_row_spec.js
@@ -1,4 +1,5 @@
import { shallowMount } from '@vue/test-utils';
+import { GlIcon } from '@gitlab/ui';
import { nextTick } from 'vue';
import { file } from 'jest/ide/helpers';
import { escapeFileUrl } from '~/lib/utils/url_utility';
@@ -153,4 +154,16 @@ describe('File row component', () => {
expect(wrapper.findComponent(FileIcon).props('submodule')).toBe(submodule);
});
+
+ it('renders pinned icon', () => {
+ createComponent({
+ file: {
+ ...file(),
+ pinned: true,
+ },
+ level: 0,
+ });
+
+ expect(wrapper.findComponent(GlIcon).props('name')).toBe('thumbtack');
+ });
});
diff --git a/spec/frontend/vue_shared/components/filtered_search_bar/tokens/daterange_token_spec.js b/spec/frontend/vue_shared/components/filtered_search_bar/tokens/daterange_token_spec.js
new file mode 100644
index 00000000000..ef0e3dbbb8e
--- /dev/null
+++ b/spec/frontend/vue_shared/components/filtered_search_bar/tokens/daterange_token_spec.js
@@ -0,0 +1,170 @@
+import {
+ GlDaterangePicker,
+ GlFilteredSearchSuggestion,
+ GlFilteredSearchSuggestionList,
+ GlFilteredSearchToken,
+} from '@gitlab/ui';
+import { mountExtended } from 'helpers/vue_test_utils_helper';
+import DaterangeToken from '~/vue_shared/components/filtered_search_bar/tokens/daterange_token.vue';
+import { OPERATORS_IS } from '~/vue_shared/components/filtered_search_bar/constants';
+
+const CUSTOM_DATE = 'custom-date';
+
+describe('DaterangeToken', () => {
+ let wrapper;
+
+ const defaultProps = {
+ active: true,
+ value: {
+ data: '',
+ },
+ config: {
+ operators: OPERATORS_IS,
+ options: [
+ {
+ value: 'last_week',
+ title: 'Last week',
+ },
+ {
+ value: 'last_month',
+ title: 'Last month',
+ },
+ ],
+ },
+ };
+
+ function createComponent(props = {}) {
+ return mountExtended(DaterangeToken, {
+ propsData: { ...defaultProps, ...props },
+ stubs: {
+ Portal: true,
+ },
+ provide: {
+ portalName: 'fake target',
+ alignSuggestions: function fakeAlignSuggestions() {},
+ suggestionsListClass: () => 'custom-class',
+ termsAsTokens: () => false,
+ },
+ });
+ }
+
+ const findGlFilteredSearchToken = () => wrapper.findComponent(GlFilteredSearchToken);
+ const findDateRangePicker = () => wrapper.findComponent(GlDaterangePicker);
+ const findAllSuggestions = () => wrapper.findAllComponents(GlFilteredSearchSuggestion);
+ const selectSuggestion = (suggestion) =>
+ wrapper.findComponent(GlFilteredSearchSuggestionList).vm.$emit('suggestion', suggestion);
+
+ beforeEach(() => {
+ wrapper = createComponent();
+ });
+
+ it('renders a filtered search token', () => {
+ expect(findGlFilteredSearchToken().exists()).toBe(true);
+ });
+
+ it('remove the options from the token config', () => {
+ expect(findGlFilteredSearchToken().props('config').options).toBeUndefined();
+ });
+
+ it('does not set the token as view-only', () => {
+ expect(findGlFilteredSearchToken().props('viewOnly')).toBe(false);
+ });
+
+ it('does not show the date picker by default', () => {
+ expect(findDateRangePicker().exists()).toBe(false);
+ });
+
+ it('does not re-activate the token', async () => {
+ await wrapper.setProps({ active: false });
+ expect(findGlFilteredSearchToken().props('active')).toBe(false);
+ });
+
+ it('does not override the value', async () => {
+ await wrapper.setProps({ value: { data: 'value' } });
+ expect(findGlFilteredSearchToken().props('value')).toEqual({ data: 'value' });
+ });
+
+ it('renders a list of suggestions as specified by the config', () => {
+ const suggestions = findAllSuggestions();
+ expect(suggestions.exists()).toBe(true);
+ expect(suggestions).toHaveLength(defaultProps.config.options.length + 1);
+ [...defaultProps.config.options, { value: CUSTOM_DATE, title: 'Custom' }].forEach(
+ (option, i) => {
+ expect(suggestions.at(i).props('value')).toBe(option.value);
+ expect(suggestions.at(i).text()).toBe(option.title);
+ },
+ );
+ });
+
+ it('sets the dataSegmentInputAttributes', () => {
+ expect(findGlFilteredSearchToken().props('dataSegmentInputAttributes')).toEqual({
+ id: 'time_range_data_segment_input',
+ });
+ });
+
+ describe('when a default option is selected', () => {
+ const option = defaultProps.config.options[0].value;
+ beforeEach(async () => {
+ await selectSuggestion(option);
+ });
+ it('does not show the date picker if default option is selected', () => {
+ expect(findDateRangePicker().exists()).toBe(false);
+ });
+
+ it('sets the value', () => {
+ expect(findGlFilteredSearchToken().emitted().select).toEqual([[option]]);
+ expect(findGlFilteredSearchToken().emitted().complete).toEqual([[option]]);
+ });
+ });
+
+ describe('when custom-date option is selected', () => {
+ beforeEach(async () => {
+ await selectSuggestion(CUSTOM_DATE);
+ });
+
+ it('sets the token as view-only', () => {
+ expect(findGlFilteredSearchToken().props('viewOnly')).toBe(true);
+ });
+
+ it('shows the date picker', () => {
+ expect(findDateRangePicker().exists()).toBe(true);
+ const today = new Date();
+ expect(findDateRangePicker().props('defaultStartDate')).toEqual(today);
+ expect(findDateRangePicker().props('startOpened')).toBe(true);
+ });
+
+ it('re-activate the token while the date picker is open', async () => {
+ await wrapper.setProps({ active: false });
+ expect(findGlFilteredSearchToken().props('active')).toBe(true);
+ });
+
+ it('overrides the value', async () => {
+ await wrapper.setProps({ value: { data: 'value' } });
+ expect(findGlFilteredSearchToken().props('value')).toEqual({ data: '' });
+ });
+
+ it('sets the dataSegmentInputAttributes', () => {
+ expect(findGlFilteredSearchToken().props('dataSegmentInputAttributes')).toEqual({
+ id: 'time_range_data_segment_input',
+ placeholder: 'YYYY-MM-DD - YYYY-MM-DD',
+ style: 'padding-left: 23px;',
+ });
+ });
+
+ it('sets the date range and hides the picker upon selection', async () => {
+ await findDateRangePicker().vm.$emit('input', {
+ startDate: new Date('October 13, 2014 11:13:00'),
+ endDate: new Date('October 13, 2014 11:13:00'),
+ });
+ expect(findGlFilteredSearchToken().emitted().complete).toEqual([
+ [CUSTOM_DATE],
+ [`"2014-10-13 - 2014-10-13"`],
+ ]);
+ expect(findGlFilteredSearchToken().emitted().select).toEqual([
+ [CUSTOM_DATE],
+ [`"2014-10-13 - 2014-10-13"`],
+ ]);
+ expect(findDateRangePicker().exists()).toBe(false);
+ });
+ });
+});
diff --git a/spec/frontend/vue_shared/components/gl_countdown_spec.js b/spec/frontend/vue_shared/components/gl_countdown_spec.js
index 38d54eff872..a755f35332f 100644
--- a/spec/frontend/vue_shared/components/gl_countdown_spec.js
+++ b/spec/frontend/vue_shared/components/gl_countdown_spec.js
@@ -44,6 +44,10 @@ describe('GlCountdown', () => {
it('displays 00:00:00', () => {
expect(wrapper.text()).toContain('00:00:00');
});
+
+ it('emits `timer-expired` event', () => {
+ expect(wrapper.emitted('timer-expired')).toStrictEqual([[]]);
+ });
});
describe('when an invalid date is passed', () => {
diff --git a/spec/frontend/vue_shared/components/groups_list/groups_list_item_spec.js b/spec/frontend/vue_shared/components/groups_list/groups_list_item_spec.js
index cba9f78790d..f0b33284125 100644
--- a/spec/frontend/vue_shared/components/groups_list/groups_list_item_spec.js
+++ b/spec/frontend/vue_shared/components/groups_list/groups_list_item_spec.js
@@ -1,4 +1,4 @@
-import { GlAvatarLabeled, GlIcon } from '@gitlab/ui';
+import { GlAvatarLabeled, GlIcon, GlBadge } from '@gitlab/ui';
import { mountExtended } from 'helpers/vue_test_utils_helper';
import GroupsListItem from '~/vue_shared/components/groups_list/groups_list_item.vue';
import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
@@ -7,7 +7,6 @@ import {
VISIBILITY_LEVEL_INTERNAL_STRING,
GROUP_VISIBILITY_TYPE,
} from '~/visibility_level/constants';
-import UserAccessRoleBadge from '~/vue_shared/components/user_access_role_badge.vue';
import { ACCESS_LEVEL_LABELS } from '~/access_level/constants';
import ListActions from '~/vue_shared/components/list_actions/list_actions.vue';
import { ACTION_EDIT, ACTION_DELETE } from '~/vue_shared/components/list_actions/constants';
@@ -112,7 +111,7 @@ describe('GroupsListItem', () => {
it('renders access role badge', () => {
createComponent();
- expect(findAvatarLabeled().findComponent(UserAccessRoleBadge).text()).toBe(
+ expect(findAvatarLabeled().findComponent(GlBadge).text()).toBe(
ACCESS_LEVEL_LABELS[group.accessLevel.integerValue],
);
});
diff --git a/spec/frontend/vue_shared/components/groups_list/groups_list_spec.js b/spec/frontend/vue_shared/components/groups_list/groups_list_spec.js
index ec6a1dc9576..072b27b4807 100644
--- a/spec/frontend/vue_shared/components/groups_list/groups_list_spec.js
+++ b/spec/frontend/vue_shared/components/groups_list/groups_list_spec.js
@@ -8,6 +8,7 @@ describe('GroupsList', () => {
const defaultPropsData = {
groups,
+ listItemClass: 'gl-px-5',
};
const createComponent = () => {
@@ -23,6 +24,9 @@ describe('GroupsList', () => {
const expectedProps = groupsListItemWrappers.map((groupsListItemWrapper) =>
groupsListItemWrapper.props(),
);
+ const expectedClasses = groupsListItemWrappers.map((groupsListItemWrapper) =>
+ groupsListItemWrapper.classes(),
+ );
expect(expectedProps).toEqual(
defaultPropsData.groups.map((group) => ({
@@ -30,6 +34,9 @@ describe('GroupsList', () => {
showGroupIcon: false,
})),
);
+ expect(expectedClasses).toEqual(
+ defaultPropsData.groups.map(() => [defaultPropsData.listItemClass]),
+ );
});
describe('when `GroupsListItem` emits `delete` event', () => {
diff --git a/spec/frontend/vue_shared/components/help_page_link/help_page_link_spec.js b/spec/frontend/vue_shared/components/help_page_link/help_page_link_spec.js
new file mode 100644
index 00000000000..5c17558b9cf
--- /dev/null
+++ b/spec/frontend/vue_shared/components/help_page_link/help_page_link_spec.js
@@ -0,0 +1,51 @@
+import { shallowMount, Wrapper } from '@vue/test-utils'; // eslint-disable-line no-unused-vars
+import { GlLink } from '@gitlab/ui';
+import HelpPageLink from '~/vue_shared/components/help_page_link/help_page_link.vue';
+import { helpPagePath } from '~/helpers/help_page_helper';
+
+/** @type { Wrapper } */
+let wrapper;
+
+const createComponent = (props = {}, slots = {}) => {
+ wrapper = shallowMount(HelpPageLink, {
+ propsData: {
+ ...props,
+ },
+ slots,
+ stubs: {
+ GlLink: true,
+ },
+ });
+};
+
+const findGlLink = () => wrapper.findComponent(GlLink);
+
+describe('HelpPageLink', () => {
+ it('renders a link', () => {
+ const href = 'user/usage_quotas';
+ createComponent({ href });
+
+ const link = findGlLink();
+ const expectedHref = helpPagePath(href, { anchor: null });
+ expect(link.attributes().href).toBe(expectedHref);
+ });
+
+ it('adds the anchor', () => {
+ const href = 'user/usage_quotas';
+ const anchor = 'namespace-storage-limit';
+ createComponent({ href, anchor });
+
+ const link = findGlLink();
+ const expectedHref = helpPagePath(href, { anchor });
+ expect(link.attributes().href).toBe(expectedHref);
+ });
+
+ it('renders slot content', () => {
+ const href = 'user/usage_quotas';
+ const slotContent = 'slot content';
+ createComponent({ href }, { default: slotContent });
+
+ const link = findGlLink();
+ expect(link.text()).toBe(slotContent);
+ });
+});
diff --git a/spec/frontend/vue_shared/components/markdown/comment_templates_dropdown_spec.js b/spec/frontend/vue_shared/components/markdown/comment_templates_dropdown_spec.js
index 11c57fc5768..01122fe1103 100644
--- a/spec/frontend/vue_shared/components/markdown/comment_templates_dropdown_spec.js
+++ b/spec/frontend/vue_shared/components/markdown/comment_templates_dropdown_spec.js
@@ -98,7 +98,7 @@ describe('Comment templates dropdown', () => {
await selectSavedReply();
expect(trackingSpy).toHaveBeenCalledWith(
- expect.any(String),
+ undefined,
TRACKING_SAVED_REPLIES_USE,
expect.any(Object),
);
@@ -111,7 +111,7 @@ describe('Comment templates dropdown', () => {
await selectSavedReply();
expect(trackingSpy).toHaveBeenCalledWith(
- expect.any(String),
+ undefined,
TRACKING_SAVED_REPLIES_USE_IN_MR,
expect.any(Object),
);
@@ -137,7 +137,7 @@ describe('Comment templates dropdown', () => {
await selectSavedReply();
expect(trackingSpy).toHaveBeenCalledWith(
- expect.any(String),
+ undefined,
TRACKING_SAVED_REPLIES_USE_IN_OTHER,
expect.any(Object),
);
diff --git a/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js b/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js
index edb11bd581b..3b8422d8351 100644
--- a/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js
+++ b/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js
@@ -142,23 +142,6 @@ describe('vue_shared/component/markdown/markdown_editor', () => {
);
});
- describe('if gitlab is installed under a relative url', () => {
- beforeEach(() => {
- window.gon = { relative_url_root: '/gitlab' };
- });
-
- it('passes render_quick_actions param to renderMarkdownPath if quick actions are enabled', async () => {
- buildWrapper({ propsData: { supportsQuickActions: true } });
-
- await enableContentEditor();
-
- expect(mock.history.post).toHaveLength(1);
- expect(mock.history.post[0].url).toBe(
- `${window.location.origin}/gitlab/api/markdown?render_quick_actions=true`,
- );
- });
- });
-
it('does not pass render_quick_actions param to renderMarkdownPath if quick actions are disabled', async () => {
buildWrapper({ propsData: { supportsQuickActions: false } });
diff --git a/spec/frontend/vue_shared/components/projects_list/projects_list_item_spec.js b/spec/frontend/vue_shared/components/projects_list/projects_list_item_spec.js
index 7cf560745b6..a5a5a43effe 100644
--- a/spec/frontend/vue_shared/components/projects_list/projects_list_item_spec.js
+++ b/spec/frontend/vue_shared/components/projects_list/projects_list_item_spec.js
@@ -12,7 +12,6 @@ import {
VISIBILITY_LEVEL_PRIVATE_STRING,
PROJECT_VISIBILITY_TYPE,
} from '~/visibility_level/constants';
-import UserAccessRoleBadge from '~/vue_shared/components/user_access_role_badge.vue';
import { ACCESS_LEVEL_LABELS } from '~/access_level/constants';
import { FEATURABLE_DISABLED, FEATURABLE_ENABLED } from '~/featurable/constants';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
@@ -92,7 +91,7 @@ describe('ProjectsListItem', () => {
it('renders access role badge', () => {
createComponent();
- expect(findAvatarLabeled().findComponent(UserAccessRoleBadge).text()).toBe(
+ expect(findAvatarLabeled().findComponent(GlBadge).text()).toBe(
ACCESS_LEVEL_LABELS[project.permissions.projectAccess.accessLevel],
);
});
diff --git a/spec/frontend/vue_shared/components/projects_list/projects_list_spec.js b/spec/frontend/vue_shared/components/projects_list/projects_list_spec.js
index fb195dfe08e..6530157811c 100644
--- a/spec/frontend/vue_shared/components/projects_list/projects_list_spec.js
+++ b/spec/frontend/vue_shared/components/projects_list/projects_list_spec.js
@@ -9,6 +9,7 @@ describe('ProjectsList', () => {
const defaultPropsData = {
projects: convertObjectPropsToCamelCase(projects, { deep: true }),
+ listItemClass: 'gl-px-5',
};
const createComponent = () => {
@@ -24,6 +25,9 @@ describe('ProjectsList', () => {
const expectedProps = projectsListItemWrappers.map((projectsListItemWrapper) =>
projectsListItemWrapper.props(),
);
+ const expectedClasses = projectsListItemWrappers.map((projectsListItemWrapper) =>
+ projectsListItemWrapper.classes(),
+ );
expect(expectedProps).toEqual(
defaultPropsData.projects.map((project) => ({
@@ -31,6 +35,9 @@ describe('ProjectsList', () => {
showProjectIcon: false,
})),
);
+ expect(expectedClasses).toEqual(
+ defaultPropsData.projects.map(() => [defaultPropsData.listItemClass]),
+ );
});
describe('when `ProjectListItem` emits `delete` event', () => {
diff --git a/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js b/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js
deleted file mode 100644
index 260eddbb37d..00000000000
--- a/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
-import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
-import RunnerInstructions from '~/vue_shared/components/runner_instructions/runner_instructions.vue';
-import RunnerInstructionsModal from '~/vue_shared/components/runner_instructions/runner_instructions_modal.vue';
-
-describe('RunnerInstructions component', () => {
- let wrapper;
-
- const findModalButton = () => wrapper.findByTestId('show-modal-button');
- const findModal = () => wrapper.findComponent(RunnerInstructionsModal);
-
- const createComponent = () => {
- wrapper = shallowMountExtended(RunnerInstructions, {
- directives: {
- GlModal: createMockDirective('gl-tooltip'),
- },
- });
- };
-
- beforeEach(() => {
- createComponent();
- });
-
- it('should show the "Show runner installation instructions" button', () => {
- expect(findModalButton().text()).toBe('Show runner installation instructions');
- });
-
- it('should render the modal', () => {
- const modalId = getBinding(findModal().element, 'gl-modal');
-
- expect(findModalButton().attributes('modal-id')).toBe(modalId);
- });
-});
diff --git a/spec/frontend/vue_shared/components/segmented_control_button_group_spec.js b/spec/frontend/vue_shared/components/segmented_control_button_group_spec.js
index 623a8739907..a3bf3ca23e3 100644
--- a/spec/frontend/vue_shared/components/segmented_control_button_group_spec.js
+++ b/spec/frontend/vue_shared/components/segmented_control_button_group_spec.js
@@ -122,6 +122,7 @@ describe('~/vue_shared/components/segmented_control_button_group.vue', () => {
[[{ value: '1' }]],
[[{ value: 1, disabled: true }]],
[[{ value: true, disabled: false }]],
+ [[{ value: true, props: { 'data-testid': 'test' } }]],
])('with options=%j, passes validation', (options) => {
createComponent({ options });
diff --git a/spec/frontend/vue_shared/components/source_viewer/source_viewer_new_spec.js b/spec/frontend/vue_shared/components/source_viewer/source_viewer_new_spec.js
index 86dc9afaacc..745886161ce 100644
--- a/spec/frontend/vue_shared/components/source_viewer/source_viewer_new_spec.js
+++ b/spec/frontend/vue_shared/components/source_viewer/source_viewer_new_spec.js
@@ -42,6 +42,8 @@ describe('Source Viewer component', () => {
let wrapper;
let fakeApollo;
const CHUNKS_MOCK = [CHUNK_1, CHUNK_2];
+ const projectPath = 'test';
+ const currentRef = 'main';
const hash = '#L142';
const blameDataQueryHandlerSuccess = jest.fn().mockResolvedValue(BLAME_DATA_QUERY_RESPONSE_MOCK);
@@ -57,8 +59,8 @@ describe('Source Viewer component', () => {
propsData: {
blob: { ...blob, ...BLOB_DATA_MOCK },
chunks: CHUNKS_MOCK,
- projectPath: 'test',
- currentRef: 'main',
+ projectPath,
+ currentRef,
showBlame,
},
});
@@ -116,6 +118,18 @@ describe('Source Viewer component', () => {
expect(findBlameComponents().at(0).props()).toMatchObject({ blameInfo });
});
+ it('calls the blame data query', async () => {
+ await triggerChunkAppear();
+
+ expect(blameDataQueryHandlerSuccess).toHaveBeenCalledWith(
+ expect.objectContaining({
+ filePath: BLOB_DATA_MOCK.path,
+ fullPath: projectPath,
+ ref: currentRef,
+ }),
+ );
+ });
+
it('calls the query only once per chunk', async () => {
// We trigger the `appear` event multiple times here in order to simulate the user scrolling past the chunk more than once.
// In this scenario we only want to query the backend once.
diff --git a/spec/frontend/vue_shared/components/upload_dropzone/avatar_upload_dropzone_spec.js b/spec/frontend/vue_shared/components/upload_dropzone/avatar_upload_dropzone_spec.js
new file mode 100644
index 00000000000..6313bf588a0
--- /dev/null
+++ b/spec/frontend/vue_shared/components/upload_dropzone/avatar_upload_dropzone_spec.js
@@ -0,0 +1,116 @@
+import { GlAvatar, GlButton, GlTruncate } from '@gitlab/ui';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import AvatarUploadDropzone from '~/vue_shared/components/upload_dropzone/avatar_upload_dropzone.vue';
+import UploadDropzone from '~/vue_shared/components/upload_dropzone/upload_dropzone.vue';
+import { AVATAR_SHAPE_OPTION_RECT } from '~/vue_shared/constants';
+
+describe('AvatarUploadDropzone', () => {
+ let wrapper;
+
+ const defaultPropsData = {
+ entity: { id: 1, name: 'Foo' },
+ value: null,
+ label: 'Avatar',
+ };
+
+ const file = new File(['foo'], 'foo.jpg', {
+ type: 'text/plain',
+ });
+ const file2 = new File(['bar'], 'bar.jpg', {
+ type: 'text/plain',
+ });
+ const blob = 'blob:http://127.0.0.1:3000/0046cf8c-ea21-4720-91ef-2e354d570c75';
+
+ const createComponent = ({ propsData = {} } = {}) => {
+ wrapper = shallowMountExtended(AvatarUploadDropzone, {
+ propsData: {
+ ...defaultPropsData,
+ ...propsData,
+ },
+ });
+ };
+
+ const findUploadDropzone = () => wrapper.findComponent(UploadDropzone);
+ const findButton = () => wrapper.findComponent(GlButton);
+
+ beforeEach(() => {
+ window.URL.createObjectURL = jest.fn().mockImplementation(() => blob);
+ window.URL.revokeObjectURL = jest.fn();
+ });
+
+ it('renders `GlAvatar` with correct props', () => {
+ createComponent();
+
+ expect(wrapper.findComponent(GlAvatar).props()).toMatchObject({
+ entityId: defaultPropsData.entity.id,
+ entityName: defaultPropsData.entity.name,
+ shape: AVATAR_SHAPE_OPTION_RECT,
+ size: 96,
+ src: null,
+ });
+ });
+
+ it('renders label', () => {
+ createComponent();
+
+ expect(wrapper.findByText(defaultPropsData.label).exists()).toBe(true);
+ });
+
+ describe('when `value` prop is updated', () => {
+ beforeEach(() => {
+ createComponent();
+
+ // setProps is justified here because we are testing the component's
+ // reactive behavior which constitutes an exception
+ // See https://docs.gitlab.com/ee/development/fe_guide/style/vue.html#setting-component-state
+ wrapper.setProps({ value: file });
+ });
+
+ it('updates `GlAvatar` `src` prop', () => {
+ expect(wrapper.findComponent(GlAvatar).props('src')).toBe(blob);
+ });
+
+ it('renders remove button', () => {
+ expect(findButton().exists()).toBe(true);
+ });
+
+ it('renders truncated file name', () => {
+ expect(wrapper.findComponent(GlTruncate).props('text')).toBe('foo.jpg');
+ });
+
+ it('does not render upload dropzone', () => {
+ expect(findUploadDropzone().exists()).toBe(false);
+ });
+
+ describe('when `value` prop is updated a second time', () => {
+ beforeEach(() => {
+ wrapper.setProps({ value: file2 });
+ });
+
+ it('revokes the object URL of the previous avatar', () => {
+ expect(window.URL.revokeObjectURL).toHaveBeenCalledWith(blob);
+ });
+ });
+
+ describe('when avatar is removed', () => {
+ beforeEach(() => {
+ findButton().vm.$emit('click');
+ });
+
+ it('emits `input` event with `null` payload', () => {
+ expect(wrapper.emitted('input')).toEqual([[null]]);
+ });
+ });
+ });
+
+ describe('when `UploadDropzone` emits `change` event', () => {
+ beforeEach(() => {
+ createComponent();
+ findUploadDropzone().vm.$emit('change', file);
+ });
+
+ it('emits `input` event', () => {
+ expect(wrapper.emitted('input')).toEqual([[file]]);
+ });
+ });
+});
diff --git a/spec/frontend/vue_shared/components/user_select_spec.js b/spec/frontend/vue_shared/components/user_select_spec.js
index 119b892392f..e1b79ad7b14 100644
--- a/spec/frontend/vue_shared/components/user_select_spec.js
+++ b/spec/frontend/vue_shared/components/user_select_spec.js
@@ -3,6 +3,7 @@ import { cloneDeep } from 'lodash';
import Vue, { nextTick } from 'vue';
import VueApollo from 'vue-apollo';
import createMockApollo from 'helpers/mock_apollo_helper';
+import { stubComponent } from 'helpers/stub_component';
import waitForPromises from 'helpers/wait_for_promises';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import searchUsersQuery from '~/graphql_shared/queries/project_autocomplete_users.query.graphql';
@@ -39,6 +40,8 @@ const waitForSearch = async () => {
await waitForPromises();
};
+const focusInput = jest.fn();
+
Vue.use(VueApollo);
describe('User select dropdown', () => {
@@ -100,6 +103,11 @@ describe('User select dropdown', () => {
hide: hideDropdownMock,
},
},
+ GlSearchBoxByType: stubComponent(GlSearchBoxByType, {
+ methods: {
+ focusInput,
+ },
+ }),
},
});
};
@@ -409,6 +417,43 @@ describe('User select dropdown', () => {
expect(findUnselectedParticipants()).toHaveLength(0);
expect(findEmptySearchResults().exists()).toBe(true);
});
+
+ it('clears search term and focuses search field after selecting a user', async () => {
+ createComponent({
+ searchQueryHandler: jest.fn().mockResolvedValue(searchAutocompleteQueryResponse),
+ });
+ await waitForPromises();
+
+ findSearchField().vm.$emit('input', 'roo');
+ await waitForSearch();
+
+ findUnselectedParticipants().at(0).trigger('click');
+ await nextTick();
+
+ expect(findSearchField().props('value')).toBe('');
+ expect(focusInput).toHaveBeenCalled();
+ });
+
+ it('clears search term and focuses search field after unselecting a user', async () => {
+ createComponent({
+ props: {
+ value: [searchAutocompleteQueryResponse.data.workspace.users[0]],
+ },
+ searchQueryHandler: jest.fn().mockResolvedValue(searchAutocompleteQueryResponse),
+ });
+ await waitForPromises();
+
+ expect(findSelectedParticipants()).toHaveLength(1);
+
+ findSearchField().vm.$emit('input', 'roo');
+ await waitForSearch();
+
+ findSelectedParticipants().at(0).trigger('click');
+ await nextTick();
+
+ expect(findSearchField().props('value')).toBe('');
+ expect(focusInput).toHaveBeenCalled();
+ });
});
describe('when on merge request sidebar', () => {
diff --git a/spec/frontend/vue_shared/issuable/list/components/issuable_item_spec.js b/spec/frontend/vue_shared/issuable/list/components/issuable_item_spec.js
index 98a87ddbcce..e898b3977d8 100644
--- a/spec/frontend/vue_shared/issuable/list/components/issuable_item_spec.js
+++ b/spec/frontend/vue_shared/issuable/list/components/issuable_item_spec.js
@@ -1,4 +1,4 @@
-import { GlLink, GlLabel, GlIcon, GlFormCheckbox, GlSprintf } from '@gitlab/ui';
+import { GlBadge, GlLink, GlLabel, GlIcon, GlFormCheckbox, GlSprintf } from '@gitlab/ui';
import { nextTick } from 'vue';
import { useFakeDate } from 'helpers/fake_date';
import { shallowMountExtended as shallowMount } from 'helpers/vue_test_utils_helper';
@@ -46,10 +46,11 @@ describe('IssuableItem', () => {
const mockAuthor = mockIssuable.author;
let wrapper;
- const findTimestampWrapper = () => wrapper.find('[data-testid="issuable-timestamp"]');
+ const findTimestampWrapper = () => wrapper.findByTestId('issuable-timestamp');
const findWorkItemTypeIcon = () => wrapper.findComponent(WorkItemTypeIcon);
const findIssuableTitleLink = () => wrapper.findComponentByTestId('issuable-title-link');
const findIssuableItemWrapper = () => wrapper.findByTestId('issuable-item-wrapper');
+ const findStatusEl = () => wrapper.findByTestId('issuable-status');
beforeEach(() => {
gon.gitlab_url = MOCK_GITLAB_URL;
@@ -290,7 +291,7 @@ describe('IssuableItem', () => {
await nextTick();
- const titleEl = wrapper.find('[data-testid="issuable-title"]');
+ const titleEl = wrapper.findByTestId('issuable-title');
expect(titleEl.exists()).toBe(true);
expect(titleEl.findComponent(GlLink).attributes('href')).toBe(expectedHref);
@@ -329,7 +330,7 @@ describe('IssuableItem', () => {
await nextTick();
expect(
- wrapper.find('[data-testid="issuable-title"]').findComponent(GlLink).attributes('target'),
+ wrapper.findByTestId('issuable-title').findComponent(GlLink).attributes('target'),
).toBe('_blank');
});
@@ -343,7 +344,7 @@ describe('IssuableItem', () => {
await nextTick();
- const confidentialEl = wrapper.find('[data-testid="issuable-title"]').findComponent(GlIcon);
+ const confidentialEl = wrapper.findByTestId('issuable-title').findComponent(GlIcon);
expect(confidentialEl.exists()).toBe(true);
expect(confidentialEl.props('name')).toBe('eye-slash');
@@ -368,7 +369,7 @@ describe('IssuableItem', () => {
it('renders task status', () => {
wrapper = createComponent();
- const taskStatus = wrapper.find('[data-testid="task-status"]');
+ const taskStatus = wrapper.findByTestId('task-status');
const expected = `${mockIssuable.taskCompletionStatus.completedCount} of ${mockIssuable.taskCompletionStatus.count} checklist items completed`;
expect(taskStatus.text()).toBe(expected);
@@ -389,7 +390,7 @@ describe('IssuableItem', () => {
it('renders issuable reference', () => {
wrapper = createComponent();
- const referenceEl = wrapper.find('[data-testid="issuable-reference"]');
+ const referenceEl = wrapper.findByTestId('issuable-reference');
expect(referenceEl.exists()).toBe(true);
expect(referenceEl.text()).toBe(`#${mockIssuable.iid}`);
@@ -414,7 +415,7 @@ describe('IssuableItem', () => {
it('renders issuable createdAt info', () => {
wrapper = createComponent();
- const createdAtEl = wrapper.find('[data-testid="issuable-created-at"]');
+ const createdAtEl = wrapper.findByTestId('issuable-created-at');
expect(createdAtEl.exists()).toBe(true);
expect(createdAtEl.attributes('title')).toBe(
@@ -426,7 +427,7 @@ describe('IssuableItem', () => {
it('renders issuable author info', () => {
wrapper = createComponent();
- const authorEl = wrapper.find('[data-testid="issuable-author"]');
+ const authorEl = wrapper.findByTestId('issuable-author');
expect(authorEl.exists()).toBe(true);
expect(authorEl.attributes()).toMatchObject({
@@ -497,20 +498,52 @@ describe('IssuableItem', () => {
});
});
- it('renders issuable status via slot', () => {
- wrapper = createComponent({
- issuableSymbol: '#',
- issuable: mockIssuable,
- slots: {
- status: `
- <b class="js-status">${mockIssuable.state}</b>
- `,
- },
+ describe('status', () => {
+ it('renders issuable status via slot', () => {
+ wrapper = createComponent({
+ issuableSymbol: '#',
+ issuable: mockIssuable,
+ slots: {
+ status: `
+ <b data-testid="js-status">${mockIssuable.state}</b>
+ `,
+ },
+ });
+ const statusEl = wrapper.findByTestId('js-status');
+
+ expect(statusEl.exists()).toBe(true);
+ expect(statusEl.text()).toBe(`${mockIssuable.state}`);
+ });
+
+ it('renders issuable status as badge', () => {
+ const closedMockIssuable = { ...mockIssuable, state: 'closed' };
+ wrapper = createComponent({
+ issuableSymbol: '#',
+ issuable: closedMockIssuable,
+ slots: {
+ status: closedMockIssuable.state,
+ },
+ });
+ const statusEl = findStatusEl();
+
+ expect(statusEl.findComponent(GlBadge).exists()).toBe(true);
+ expect(statusEl.text()).toBe(`${closedMockIssuable.state}`);
});
- const statusEl = wrapper.find('.js-status');
- expect(statusEl.exists()).toBe(true);
- expect(statusEl.text()).toBe(`${mockIssuable.state}`);
+ it('renders issuable status without badge if open', () => {
+ wrapper = createComponent({
+ issuableSymbol: '#',
+ issuable: mockIssuable,
+ slots: {
+ status: mockIssuable.state,
+ },
+ });
+
+ const statusEl = findStatusEl();
+
+ expect(statusEl.findComponent(GlBadge).exists()).toBe(false);
+ expect(statusEl.text()).toBe(`${mockIssuable.state}`);
+ });
});
it('renders discussions count', () => {
@@ -543,7 +576,7 @@ describe('IssuableItem', () => {
it('renders issuable updatedAt info', () => {
wrapper = createComponent();
- const timestampEl = wrapper.find('[data-testid="issuable-timestamp"]');
+ const timestampEl = wrapper.findByTestId('issuable-timestamp');
expect(timestampEl.attributes('title')).toBe(
localeDateFormat.asDateTimeFull.format(mockIssuable.updatedAt),
@@ -566,7 +599,7 @@ describe('IssuableItem', () => {
issuable: { ...mockIssuable, closedAt, state: 'closed' },
});
- const timestampEl = wrapper.find('[data-testid="issuable-timestamp"]');
+ const timestampEl = wrapper.findByTestId('issuable-timestamp');
expect(timestampEl.attributes('title')).toBe(
localeDateFormat.asDateTimeFull.format(closedAt),
diff --git a/spec/frontend/work_items/components/notes/work_item_comment_form_spec.js b/spec/frontend/work_items/components/notes/work_item_comment_form_spec.js
index fe89c525fea..cbde3c4a065 100644
--- a/spec/frontend/work_items/components/notes/work_item_comment_form_spec.js
+++ b/spec/frontend/work_items/components/notes/work_item_comment_form_spec.js
@@ -208,6 +208,20 @@ describe('Work item comment form component', () => {
['Something went wrong while updating the task. Please try again.'],
]);
});
+
+ it('emits `submitForm` event on closing of work item', async () => {
+ createComponent({
+ isNewDiscussion: true,
+ });
+
+ findWorkItemToggleStateButton().vm.$emit('submit-comment');
+
+ await waitForPromises();
+
+ expect(wrapper.emitted('submitForm')).toEqual([
+ [{ commentText: draftComment, isNoteInternal: false }],
+ ]);
+ });
});
describe('internal note', () => {
@@ -239,6 +253,17 @@ describe('Work item comment form component', () => {
expect(findConfirmButton().text()).toBe(WorkItemCommentForm.i18n.addInternalNote);
});
+
+ it('emits `submitForm` event on closing of work item', async () => {
+ findInternalNoteCheckbox().vm.$emit('input', true);
+ findWorkItemToggleStateButton().vm.$emit('submit-comment');
+
+ await waitForPromises();
+
+ expect(wrapper.emitted('submitForm')).toEqual([
+ [{ commentText: draftComment, isNoteInternal: true }],
+ ]);
+ });
});
});
});
diff --git a/spec/frontend/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit_spec.js b/spec/frontend/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit_spec.js
new file mode 100644
index 00000000000..171493e87f8
--- /dev/null
+++ b/spec/frontend/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit_spec.js
@@ -0,0 +1,161 @@
+import { GlForm, GlCollapsibleListbox, GlLoadingIcon } from '@gitlab/ui';
+import { nextTick } from 'vue';
+import { mountExtended } from 'helpers/vue_test_utils_helper';
+import { __ } from '~/locale';
+import WorkItemSidebarDropdownWidgetWithEdit from '~/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue';
+
+describe('WorkItemSidebarDropdownWidgetWithEdit component', () => {
+ let wrapper;
+
+ const findHeader = () => wrapper.find('h3');
+ const findEditButton = () => wrapper.findByTestId('edit-button');
+ const findApplyButton = () => wrapper.findByTestId('apply-button');
+
+ const findLoadingIcon = () => wrapper.findComponent(GlLoadingIcon);
+ const findLabel = () => wrapper.find('label');
+ const findForm = () => wrapper.findComponent(GlForm);
+ const findCollapsibleListbox = () => wrapper.findComponent(GlCollapsibleListbox);
+
+ const createComponent = ({
+ itemValue = null,
+ canUpdate = true,
+ isEditing = false,
+ updateInProgress = false,
+ } = {}) => {
+ wrapper = mountExtended(WorkItemSidebarDropdownWidgetWithEdit, {
+ propsData: {
+ dropdownLabel: __('Iteration'),
+ dropdownName: 'iteration',
+ listItems: [],
+ itemValue,
+ canUpdate,
+ updateInProgress,
+ headerText: __('Select iteration'),
+ },
+ });
+
+ if (isEditing) {
+ findEditButton().vm.$emit('click');
+ }
+ };
+
+ describe('label', () => {
+ it('shows header when not editing', () => {
+ createComponent();
+
+ expect(findHeader().exists()).toBe(true);
+ expect(findHeader().classes('gl-sr-only')).toBe(false);
+ expect(findLabel().exists()).toBe(false);
+ });
+
+ it('shows label and hides header while editing', async () => {
+ createComponent();
+
+ findEditButton().vm.$emit('click');
+
+ await nextTick();
+
+ expect(findLabel().exists()).toBe(true);
+ expect(findHeader().classes('gl-sr-only')).toBe(true);
+ });
+ });
+
+ describe('edit button', () => {
+ it('is not shown if user cannot edit', () => {
+ createComponent({ canUpdate: false });
+
+ expect(findEditButton().exists()).toBe(false);
+ });
+
+ it('is shown if user can edit', () => {
+ createComponent({ canUpdate: true });
+
+ expect(findEditButton().exists()).toBe(true);
+ });
+
+ it('triggers edit mode on click', async () => {
+ createComponent();
+
+ findEditButton().vm.$emit('click');
+
+ await nextTick();
+
+ expect(findLabel().exists()).toBe(true);
+ expect(findForm().exists()).toBe(true);
+ });
+
+ it('is replaced by Apply button while editing', async () => {
+ createComponent();
+
+ findEditButton().vm.$emit('click');
+
+ await nextTick();
+
+ expect(findEditButton().exists()).toBe(false);
+ expect(findApplyButton().exists()).toBe(true);
+ });
+ });
+
+ describe('loading icon', () => {
+ it('shows loading icon while update is in progress', async () => {
+ createComponent({ updateInProgress: true });
+
+ await nextTick();
+
+ expect(findLoadingIcon().exists()).toBe(true);
+ });
+ });
+
+ describe('value', () => {
+ it('shows None when no item value is set', () => {
+ createComponent({ itemValue: null });
+
+ expect(wrapper.text()).toContain('None');
+ });
+ });
+
+ describe('form', () => {
+ it('is not shown while not editing', () => {
+ createComponent();
+
+ expect(findForm().exists()).toBe(false);
+ });
+
+ it('is shown while editing', async () => {
+ createComponent({ isEditing: true });
+ await nextTick();
+
+ expect(findForm().exists()).toBe(true);
+ });
+ });
+
+ describe('Dropdown', () => {
+ it('is not shown while not editing', () => {
+ createComponent();
+
+ expect(findCollapsibleListbox().exists()).toBe(false);
+ });
+
+ it('renders the collapsible listbox with required props', async () => {
+ createComponent({ isEditing: true });
+
+ await nextTick();
+
+ expect(findCollapsibleListbox().exists()).toBe(true);
+ expect(findCollapsibleListbox().props()).toMatchObject({
+ items: [],
+ headerText: 'Select iteration',
+ category: 'primary',
+ loading: false,
+ isCheckCentered: true,
+ searchable: true,
+ searching: false,
+ infiniteScroll: false,
+ noResultsText: 'No matching results',
+ toggleText: 'None',
+ searchPlaceholder: 'Search',
+ resetButtonLabel: 'Clear',
+ });
+ });
+ });
+});
diff --git a/spec/frontend/work_items/components/shared/work_item_token_input_spec.js b/spec/frontend/work_items/components/shared/work_item_token_input_spec.js
index 5726aaaa2d0..f9ba34b3bb6 100644
--- a/spec/frontend/work_items/components/shared/work_item_token_input_spec.js
+++ b/spec/frontend/work_items/components/shared/work_item_token_input_spec.js
@@ -8,23 +8,78 @@ import WorkItemTokenInput from '~/work_items/components/shared/work_item_token_i
import { WORK_ITEM_TYPE_ENUM_TASK } from '~/work_items/constants';
import groupWorkItemsQuery from '~/work_items/graphql/group_work_items.query.graphql';
import projectWorkItemsQuery from '~/work_items/graphql/project_work_items.query.graphql';
-import {
- availableWorkItemsResponse,
- searchWorkItemsTextResponse,
- searchWorkItemsIidResponse,
- searchWorkItemsTextIidResponse,
-} from '../../mock_data';
+import workItemsByReferencesQuery from '~/work_items/graphql/work_items_by_references.query.graphql';
+import { searchWorkItemsResponse } from '../../mock_data';
Vue.use(VueApollo);
describe('WorkItemTokenInput', () => {
let wrapper;
- const availableWorkItemsResolver = jest.fn().mockResolvedValue(availableWorkItemsResponse);
- const groupSearchedWorkItemResolver = jest.fn().mockResolvedValue(searchWorkItemsTextResponse);
- const searchWorkItemTextResolver = jest.fn().mockResolvedValue(searchWorkItemsTextResponse);
- const searchWorkItemIidResolver = jest.fn().mockResolvedValue(searchWorkItemsIidResponse);
- const searchWorkItemTextIidResolver = jest.fn().mockResolvedValue(searchWorkItemsTextIidResponse);
+ const availableWorkItemsResolver = jest.fn().mockResolvedValue(
+ searchWorkItemsResponse({
+ workItems: [
+ {
+ id: 'gid://gitlab/WorkItem/458',
+ iid: '2',
+ title: 'Task 1',
+ confidential: false,
+ __typename: 'WorkItem',
+ },
+ {
+ id: 'gid://gitlab/WorkItem/459',
+ iid: '3',
+ title: 'Task 2',
+ confidential: false,
+ __typename: 'WorkItem',
+ },
+ {
+ id: 'gid://gitlab/WorkItem/460',
+ iid: '4',
+ title: 'Task 3',
+ confidential: false,
+ __typename: 'WorkItem',
+ },
+ ],
+ }),
+ );
+
+ const mockWorkItem = {
+ id: 'gid://gitlab/WorkItem/459',
+ iid: '3',
+ title: 'Task 2',
+ confidential: false,
+ __typename: 'WorkItem',
+ };
+ const groupSearchedWorkItemResolver = jest.fn().mockResolvedValue(
+ searchWorkItemsResponse({
+ workItems: [mockWorkItem],
+ }),
+ );
+ const searchWorkItemTextResolver = jest.fn().mockResolvedValue(
+ searchWorkItemsResponse({
+ workItems: [mockWorkItem],
+ }),
+ );
+ const mockworkItemReferenceQueryResponse = {
+ data: {
+ workItemsByReference: {
+ nodes: [
+ {
+ id: 'gid://gitlab/WorkItem/705',
+ iid: '111',
+ title: 'Objective linked items 104',
+ confidential: false,
+ __typename: 'WorkItem',
+ },
+ ],
+ __typename: 'WorkItemConnection',
+ },
+ },
+ };
+ const workItemReferencesQueryResolver = jest
+ .fn()
+ .mockResolvedValue(mockworkItemReferenceQueryResponse);
const createComponent = async ({
workItemsToAdd = [],
@@ -38,6 +93,7 @@ describe('WorkItemTokenInput', () => {
apolloProvider: createMockApollo([
[projectWorkItemsQuery, workItemsResolver],
[groupWorkItemsQuery, groupSearchedWorkItemResolver],
+ [workItemsByReferencesQuery, workItemReferencesQueryResolver],
]),
provide: {
isGroup,
@@ -58,6 +114,7 @@ describe('WorkItemTokenInput', () => {
const findTokenSelector = () => wrapper.findComponent(GlTokenSelector);
const findGlAlert = () => wrapper.findComponent(GlAlert);
+ const findNoMatchFoundMessage = () => wrapper.findByTestId('no-match-found-namespace-message');
it('searches for available work items on focus', async () => {
createComponent({ workItemsResolver: availableWorkItemsResolver });
@@ -68,42 +125,155 @@ describe('WorkItemTokenInput', () => {
fullPath: 'test-project-path',
searchTerm: '',
types: [WORK_ITEM_TYPE_ENUM_TASK],
- in: undefined,
iid: null,
- isNumber: false,
+ searchByIid: false,
+ searchByText: true,
});
expect(findTokenSelector().props('dropdownItems')).toHaveLength(3);
});
- it.each`
- inputType | input | resolver | searchTerm | iid | isNumber | length
- ${'iid'} | ${'101'} | ${searchWorkItemIidResolver} | ${'101'} | ${'101'} | ${true} | ${1}
- ${'text'} | ${'Task 2'} | ${searchWorkItemTextResolver} | ${'Task 2'} | ${null} | ${false} | ${1}
- ${'iid and text'} | ${'123'} | ${searchWorkItemTextIidResolver} | ${'123'} | ${'123'} | ${true} | ${2}
- `(
- 'searches by $inputType for available work items when typing in input',
- async ({ input, resolver, searchTerm, iid, isNumber, length }) => {
- createComponent({ workItemsResolver: resolver });
+ it('renders red border around token selector input when work item is not valid', () => {
+ createComponent({
+ areWorkItemsToAddValid: false,
+ });
+
+ expect(findTokenSelector().props('containerClass')).toBe('gl-inset-border-1-red-500!');
+ });
+
+ describe('when input data is provided', () => {
+ const fillWorkItemInput = (input) => {
findTokenSelector().vm.$emit('focus');
findTokenSelector().vm.$emit('text-input', input);
+ };
+
+ const mockWorkItemResponseItem1 = {
+ id: 'gid://gitlab/WorkItem/460',
+ iid: '101',
+ title: 'Task 3',
+ confidential: false,
+ __typename: 'WorkItem',
+ };
+ const mockWorkItemResponseItem2 = {
+ id: 'gid://gitlab/WorkItem/461',
+ iid: '3',
+ title: 'Task 123',
+ confidential: false,
+ __typename: 'WorkItem',
+ };
+ const mockWorkItemResponseItem3 = {
+ id: 'gid://gitlab/WorkItem/462',
+ iid: '123',
+ title: 'Task 2',
+ confidential: false,
+ __typename: 'WorkItem',
+ };
+
+ const searchWorkItemIidResolver = jest.fn().mockResolvedValue(
+ searchWorkItemsResponse({
+ workItemsByIid: [mockWorkItemResponseItem1],
+ }),
+ );
+ const searchWorkItemTextIidResolver = jest.fn().mockResolvedValue(
+ searchWorkItemsResponse({
+ workItems: [mockWorkItemResponseItem2],
+ workItemsByIid: [mockWorkItemResponseItem3],
+ }),
+ );
+
+ const emptyWorkItemResolver = jest.fn().mockResolvedValue(searchWorkItemsResponse());
+
+ const validIid = mockWorkItemResponseItem1.iid;
+ const validWildCardIid = `#${mockWorkItemResponseItem1.iid}`;
+ const searchedText = mockWorkItem.title;
+ const searchedIidText = mockWorkItemResponseItem3.iid;
+ const nonExistentIid = '111';
+ const nonExistentWorkItem = 'Key result';
+ const validWorkItemUrl = 'http://localhost/gitlab-org/test-project-path/-/work_items/111';
+ const validWorkItemReference = 'gitlab-org/test-project-path#111';
+ const invalidWorkItemUrl = 'invalid-url/gitlab-org/test-project-path/-/work_items/101';
+
+ it.each`
+ inputType | input | resolver | searchTerm | iid | searchByText | searchByIid | length
+ ${'iid'} | ${validIid} | ${searchWorkItemIidResolver} | ${validIid} | ${validIid} | ${true} | ${true} | ${1}
+ ${'text'} | ${searchedText} | ${searchWorkItemTextResolver} | ${searchedText} | ${null} | ${true} | ${false} | ${1}
+ ${'iid and text'} | ${searchedIidText} | ${searchWorkItemTextIidResolver} | ${searchedIidText} | ${searchedIidText} | ${true} | ${true} | ${2}
+ `(
+ 'lists work items when $inputType is valid',
+ async ({ input, resolver, searchTerm, iid, searchByIid, searchByText, length }) => {
+ createComponent({ workItemsResolver: resolver });
+
+ fillWorkItemInput(input);
+
+ await waitForPromises();
+
+ expect(resolver).toHaveBeenCalledWith({
+ fullPath: 'test-project-path',
+ types: [WORK_ITEM_TYPE_ENUM_TASK],
+ searchTerm,
+ in: 'TITLE',
+ iid,
+ searchByIid,
+ searchByText,
+ });
+ expect(findTokenSelector().props('dropdownItems')).toHaveLength(length);
+ },
+ );
+
+ it.each`
+ inputType | input | searchTerm | iid | searchByText | searchByIid
+ ${'iid'} | ${nonExistentIid} | ${nonExistentIid} | ${nonExistentIid} | ${true} | ${true}
+ ${'text'} | ${nonExistentWorkItem} | ${nonExistentWorkItem} | ${null} | ${true} | ${false}
+ ${'url'} | ${invalidWorkItemUrl} | ${invalidWorkItemUrl} | ${null} | ${true} | ${false}
+ `(
+ 'list is empty when $inputType is invalid',
+ async ({ input, searchTerm, iid, searchByIid, searchByText }) => {
+ createComponent({ workItemsResolver: emptyWorkItemResolver });
+
+ fillWorkItemInput(input);
+
+ await waitForPromises();
+
+ expect(emptyWorkItemResolver).toHaveBeenCalledWith({
+ fullPath: 'test-project-path',
+ types: [WORK_ITEM_TYPE_ENUM_TASK],
+ searchTerm,
+ in: 'TITLE',
+ iid,
+ searchByIid,
+ searchByText,
+ });
+ expect(findTokenSelector().props('dropdownItems')).toHaveLength(0);
+ },
+ );
+
+ it.each`
+ inputType | input | refs | length
+ ${'iid with wildcard'} | ${validWildCardIid} | ${[validWildCardIid]} | ${1}
+ ${'url'} | ${validWorkItemUrl} | ${[validWorkItemUrl]} | ${1}
+ ${'reference'} | ${validWorkItemReference} | ${[validWorkItemReference]} | ${1}
+ `('lists work items when valid $inputType is pasted', async ({ input, refs, length }) => {
+ createComponent({ workItemsResolver: workItemReferencesQueryResolver });
+
+ fillWorkItemInput(input);
+
await waitForPromises();
- expect(resolver).toHaveBeenCalledWith({
- searchTerm,
- in: 'TITLE',
- iid,
- isNumber,
+ expect(workItemReferencesQueryResolver).toHaveBeenCalledWith({
+ contextNamespacePath: 'test-project-path',
+ refs,
});
expect(findTokenSelector().props('dropdownItems')).toHaveLength(length);
- },
- );
-
- it('renders red border around token selector input when work item is not valid', () => {
- createComponent({
- areWorkItemsToAddValid: false,
});
- expect(findTokenSelector().props('containerClass')).toBe('gl-inset-border-1-red-500!');
+ it('shows proper message if provided with cross project URL', async () => {
+ createComponent({ workItemsResolver: emptyWorkItemResolver });
+
+ fillWorkItemInput('http://localhost/gitlab-org/cross-project-path/-/work_items/101');
+
+ await waitForPromises();
+
+ expect(findNoMatchFoundMessage().text()).toBe('No matches found');
+ });
});
describe('when project context', () => {
diff --git a/spec/frontend/work_items/components/work_item_assignees_spec.js b/spec/frontend/work_items/components/work_item_assignees_spec.js
index 196e19791df..6c0042bdad7 100644
--- a/spec/frontend/work_items/components/work_item_assignees_spec.js
+++ b/spec/frontend/work_items/components/work_item_assignees_spec.js
@@ -103,6 +103,9 @@ describe('WorkItemAssignees component', () => {
},
attachTo: document.body,
apolloProvider,
+ stubs: {
+ GlEmoji: { template: '<div/>' },
+ },
});
};
diff --git a/spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js b/spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js
index 48ec84ceb85..43f7027406f 100644
--- a/spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js
+++ b/spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js
@@ -3,7 +3,8 @@ import { shallowMount } from '@vue/test-utils';
import WorkItemAssignees from '~/work_items/components/work_item_assignees.vue';
import WorkItemDueDate from '~/work_items/components/work_item_due_date.vue';
import WorkItemLabels from '~/work_items/components/work_item_labels.vue';
-import WorkItemMilestone from '~/work_items/components/work_item_milestone.vue';
+import WorkItemMilestoneInline from '~/work_items/components/work_item_milestone_inline.vue';
+import WorkItemMilestoneWithEdit from '~/work_items/components/work_item_milestone_with_edit.vue';
import WorkItemParentInline from '~/work_items/components/work_item_parent_inline.vue';
import WorkItemParent from '~/work_items/components/work_item_parent_with_edit.vue';
import waitForPromises from 'helpers/wait_for_promises';
@@ -24,7 +25,8 @@ describe('WorkItemAttributesWrapper component', () => {
const findWorkItemDueDate = () => wrapper.findComponent(WorkItemDueDate);
const findWorkItemAssignees = () => wrapper.findComponent(WorkItemAssignees);
const findWorkItemLabels = () => wrapper.findComponent(WorkItemLabels);
- const findWorkItemMilestone = () => wrapper.findComponent(WorkItemMilestone);
+ const findWorkItemMilestone = () => wrapper.findComponent(WorkItemMilestoneWithEdit);
+ const findWorkItemMilestoneInline = () => wrapper.findComponent(WorkItemMilestoneInline);
const findWorkItemParentInline = () => wrapper.findComponent(WorkItemParentInline);
const findWorkItemParent = () => wrapper.findComponent(WorkItemParent);
@@ -110,6 +112,26 @@ describe('WorkItemAttributesWrapper component', () => {
expect(findWorkItemMilestone().exists()).toBe(exists);
});
+
+ it.each`
+ description | milestoneWidgetInlinePresent | milestoneWidgetWithEditPresent | workItemsMvc2FlagEnabled
+ ${'renders WorkItemMilestone when workItemsMvc2 enabled'} | ${false} | ${true} | ${true}
+ ${'renders WorkItemMilestoneInline when workItemsMvc2 disabled'} | ${true} | ${false} | ${false}
+ `(
+ '$description',
+ async ({
+ milestoneWidgetInlinePresent,
+ milestoneWidgetWithEditPresent,
+ workItemsMvc2FlagEnabled,
+ }) => {
+ createComponent({ workItemsMvc2: workItemsMvc2FlagEnabled });
+
+ await waitForPromises();
+
+ expect(findWorkItemMilestone().exists()).toBe(milestoneWidgetWithEditPresent);
+ expect(findWorkItemMilestoneInline().exists()).toBe(milestoneWidgetInlinePresent);
+ },
+ );
});
describe('parent widget', () => {
diff --git a/spec/frontend/work_items/components/work_item_description_rendered_spec.js b/spec/frontend/work_items/components/work_item_description_rendered_spec.js
index 4f1d49ee2e5..c4c88c7643f 100644
--- a/spec/frontend/work_items/components/work_item_description_rendered_spec.js
+++ b/spec/frontend/work_items/components/work_item_description_rendered_spec.js
@@ -20,11 +20,13 @@ describe('WorkItemDescription', () => {
const createComponent = ({
workItemDescription = defaultWorkItemDescription,
canEdit = false,
+ disableInlineEditing = false,
} = {}) => {
wrapper = shallowMount(WorkItemDescriptionRendered, {
propsData: {
workItemDescription,
canEdit,
+ disableInlineEditing,
},
});
};
@@ -81,8 +83,8 @@ describe('WorkItemDescription', () => {
});
describe('Edit button', () => {
- it('is not visible when canUpdate = false', async () => {
- await createComponent({
+ it('is not visible when canUpdate = false', () => {
+ createComponent({
canUpdate: false,
});
@@ -100,5 +102,14 @@ describe('WorkItemDescription', () => {
expect(wrapper.emitted('startEditing')).toEqual([[]]);
});
+
+ it('is not visible when `disableInlineEditing` is true and the user can edit', () => {
+ createComponent({
+ disableInlineEditing: true,
+ canEdit: true,
+ });
+
+ expect(findEditButton().exists()).toBe(false);
+ });
});
});
diff --git a/spec/frontend/work_items/components/work_item_description_spec.js b/spec/frontend/work_items/components/work_item_description_spec.js
index 1d25bb74986..3b137008b5b 100644
--- a/spec/frontend/work_items/components/work_item_description_spec.js
+++ b/spec/frontend/work_items/components/work_item_description_spec.js
@@ -56,6 +56,8 @@ describe('WorkItemDescription', () => {
isEditing = false,
isGroup = false,
workItemIid = '1',
+ disableInlineEditing = false,
+ editMode = false,
} = {}) => {
workItemResponseHandler = jest.fn().mockResolvedValue(workItemResponse);
groupWorkItemResponseHandler = jest
@@ -73,6 +75,8 @@ describe('WorkItemDescription', () => {
fullPath: 'test-project-path',
workItemId: id,
workItemIid,
+ disableInlineEditing,
+ editMode,
},
provide: {
isGroup,
@@ -283,4 +287,36 @@ describe('WorkItemDescription', () => {
expect(groupWorkItemResponseHandler).toHaveBeenCalled();
});
});
+
+ describe('when inline editing is disabled', () => {
+ describe('when edit mode is inactive', () => {
+ beforeEach(() => {
+ createComponent({ disableInlineEditing: true });
+ });
+
+ it('passes the correct props for work item rendered description', () => {
+ expect(findRenderedDescription().props('disableInlineEditing')).toBe(true);
+ });
+
+ it('does not show edit mode of markdown editor in default mode', () => {
+ expect(findMarkdownEditor().exists()).toBe(false);
+ });
+ });
+
+ describe('when edit mode is active', () => {
+ beforeEach(() => {
+ createComponent({ disableInlineEditing: true, editMode: true });
+ });
+
+ it('shows markdown editor in edit mode only when the correct props are passed', () => {
+ expect(findMarkdownEditor().exists()).toBe(true);
+ });
+
+ it('emits the `updateDraft` event when clicked on submit button in edit mode', () => {
+ const updatedDesc = 'updated desc with inline editing disabled';
+ findMarkdownEditor().vm.$emit('input', updatedDesc);
+ expect(wrapper.emitted('updateDraft')).toEqual([[updatedDesc]]);
+ });
+ });
+ });
});
diff --git a/spec/frontend/work_items/components/work_item_detail_spec.js b/spec/frontend/work_items/components/work_item_detail_spec.js
index d63bb94c3f0..45c8c66cebf 100644
--- a/spec/frontend/work_items/components/work_item_detail_spec.js
+++ b/spec/frontend/work_items/components/work_item_detail_spec.js
@@ -19,6 +19,7 @@ import WorkItemRelationships from '~/work_items/components/work_item_relationshi
import WorkItemNotes from '~/work_items/components/work_item_notes.vue';
import WorkItemDetailModal from '~/work_items/components/work_item_detail_modal.vue';
import WorkItemStickyHeader from '~/work_items/components/work_item_sticky_header.vue';
+import WorkItemTitleWithEdit from '~/work_items/components/work_item_title_with_edit.vue';
import AbuseCategorySelector from '~/abuse_reports/components/abuse_category_selector.vue';
import WorkItemTodos from '~/work_items/components/work_item_todos.vue';
import { i18n } from '~/work_items/constants';
@@ -32,6 +33,7 @@ import {
mockParent,
workItemByIidResponseFactory,
objectiveType,
+ epicType,
mockWorkItemCommentNote,
mockBlockingLinkedItem,
} from '../mock_data';
@@ -81,6 +83,8 @@ describe('WorkItemDetail component', () => {
const findStickyHeader = () => wrapper.findComponent(WorkItemStickyHeader);
const findWorkItemTwoColumnViewContainer = () => wrapper.findByTestId('work-item-overview');
const findRightSidebar = () => wrapper.findByTestId('work-item-overview-right-sidebar');
+ const findEditButton = () => wrapper.findByTestId('work-item-edit-form-button');
+ const findWorkItemTitleWithEdit = () => wrapper.findComponent(WorkItemTitleWithEdit);
const createComponent = ({
isGroup = false,
@@ -426,9 +430,18 @@ describe('WorkItemDetail component', () => {
workItemType: objectiveType,
confidential: true,
});
- const handler = jest.fn().mockResolvedValue(objectiveWorkItem);
+ const objectiveHandler = jest.fn().mockResolvedValue(objectiveWorkItem);
- it('renders children tree when work item is an Objective', async () => {
+ const epicWorkItem = workItemByIidResponseFactory({
+ workItemType: epicType,
+ });
+ const epicHandler = jest.fn().mockResolvedValue(epicWorkItem);
+
+ it.each`
+ type | handler
+ ${'Objective'} | ${objectiveHandler}
+ ${'Epic'} | ${epicHandler}
+ `('renders children tree when work item type is $type', async ({ handler }) => {
createComponent({ handler });
await waitForPromises();
@@ -436,14 +449,14 @@ describe('WorkItemDetail component', () => {
});
it('renders a modal', async () => {
- createComponent({ handler });
+ createComponent({ handler: objectiveHandler });
await waitForPromises();
expect(findModal().exists()).toBe(true);
});
it('opens the modal with the child when `show-modal` is emitted', async () => {
- createComponent({ handler, workItemsMvc2Enabled: true });
+ createComponent({ handler: objectiveHandler, workItemsMvc2Enabled: true });
await waitForPromises();
const event = {
@@ -466,7 +479,7 @@ describe('WorkItemDetail component', () => {
beforeEach(async () => {
createComponent({
isModal: true,
- handler,
+ handler: objectiveHandler,
workItemsMvc2Enabled: true,
});
@@ -686,4 +699,65 @@ describe('WorkItemDetail component', () => {
});
});
});
+
+ describe('edit button for work item title and description', () => {
+ describe('when `workItemsMvc2Enabled` is false', () => {
+ beforeEach(async () => {
+ createComponent({ workItemsMvc2Enabled: false });
+ await waitForPromises();
+ });
+
+ it('does not show the edit button', () => {
+ expect(findEditButton().exists()).toBe(false);
+ });
+
+ it('renders the work item title inline editable component', () => {
+ expect(findWorkItemTitle().exists()).toBe(true);
+ });
+
+ it('does not render the work item title with edit component', () => {
+ expect(findWorkItemTitleWithEdit().exists()).toBe(false);
+ });
+ });
+
+ describe('when `workItemsMvc2Enabled` is true', () => {
+ beforeEach(async () => {
+ createComponent({ workItemsMvc2Enabled: true });
+ await waitForPromises();
+ });
+
+ it('shows the edit button', () => {
+ expect(findEditButton().exists()).toBe(true);
+ });
+
+ it('does not render the work item title inline editable component', () => {
+ expect(findWorkItemTitle().exists()).toBe(false);
+ });
+
+ it('renders the work item title with edit component', () => {
+ expect(findWorkItemTitleWithEdit().exists()).toBe(true);
+ expect(findWorkItemTitleWithEdit().props('isEditing')).toBe(false);
+ });
+
+ it('work item description is not shown in edit mode by default', () => {
+ expect(findWorkItemDescription().props('editMode')).toBe(false);
+ });
+
+ describe('when edit is clicked', () => {
+ beforeEach(async () => {
+ findEditButton().vm.$emit('click');
+ await nextTick();
+ });
+
+ it('work item title component shows in edit mode', () => {
+ expect(findWorkItemTitleWithEdit().props('isEditing')).toBe(true);
+ });
+
+ it('work item description component shows in edit mode', () => {
+ expect(findWorkItemDescription().props('disableInlineEditing')).toBe(true);
+ expect(findWorkItemDescription().props('editMode')).toBe(true);
+ });
+ });
+ });
+ });
});
diff --git a/spec/frontend/work_items/components/work_item_links/work_item_links_form_spec.js b/spec/frontend/work_items/components/work_item_links/work_item_links_form_spec.js
index 0a9da17d284..ba09c7e9ce2 100644
--- a/spec/frontend/work_items/components/work_item_links/work_item_links_form_spec.js
+++ b/spec/frontend/work_items/components/work_item_links/work_item_links_form_spec.js
@@ -15,12 +15,14 @@ import {
I18N_WORK_ITEM_CONFIDENTIALITY_CHECKBOX_TOOLTIP,
} from '~/work_items/constants';
import projectWorkItemsQuery from '~/work_items/graphql/project_work_items.query.graphql';
+import groupWorkItemTypesQuery from '~/work_items/graphql/group_work_item_types.query.graphql';
import projectWorkItemTypesQuery from '~/work_items/graphql/project_work_item_types.query.graphql';
import createWorkItemMutation from '~/work_items/graphql/create_work_item.mutation.graphql';
import updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';
import {
availableWorkItemsResponse,
projectWorkItemTypesQueryResponse,
+ groupWorkItemTypesQueryResponse,
createWorkItemMutationResponse,
updateWorkItemMutationResponse,
mockIterationWidgetResponse,
@@ -34,22 +36,27 @@ describe('WorkItemLinksForm', () => {
const updateMutationResolver = jest.fn().mockResolvedValue(updateWorkItemMutationResponse);
const createMutationResolver = jest.fn().mockResolvedValue(createWorkItemMutationResponse);
const availableWorkItemsResolver = jest.fn().mockResolvedValue(availableWorkItemsResponse);
+ const projectWorkItemTypesResolver = jest
+ .fn()
+ .mockResolvedValue(projectWorkItemTypesQueryResponse);
+ const groupWorkItemTypesResolver = jest.fn().mockResolvedValue(groupWorkItemTypesQueryResponse);
const mockParentIteration = mockIterationWidgetResponse;
const createComponent = async ({
- typesResponse = projectWorkItemTypesQueryResponse,
parentConfidential = false,
hasIterationsFeature = false,
parentIteration = null,
formType = FORM_TYPES.create,
parentWorkItemType = WORK_ITEM_TYPE_VALUE_ISSUE,
childrenType = WORK_ITEM_TYPE_ENUM_TASK,
+ isGroup = false,
} = {}) => {
wrapper = shallowMountExtended(WorkItemLinksForm, {
apolloProvider: createMockApollo([
[projectWorkItemsQuery, availableWorkItemsResolver],
- [projectWorkItemTypesQuery, jest.fn().mockResolvedValue(typesResponse)],
+ [projectWorkItemTypesQuery, projectWorkItemTypesResolver],
+ [groupWorkItemTypesQuery, groupWorkItemTypesResolver],
[updateWorkItemMutation, updateMutationResolver],
[createWorkItemMutation, createMutationResolver],
]),
@@ -64,7 +71,7 @@ describe('WorkItemLinksForm', () => {
},
provide: {
hasIterationsFeature,
- isGroup: false,
+ isGroup,
},
});
@@ -79,6 +86,19 @@ describe('WorkItemLinksForm', () => {
const findAddChildButton = () => wrapper.findByTestId('add-child-button');
const findValidationElement = () => wrapper.findByTestId('work-items-invalid');
+ it.each`
+ workspace | isGroup | queryResolver
+ ${'project'} | ${false} | ${projectWorkItemTypesResolver}
+ ${'group'} | ${true} | ${groupWorkItemTypesResolver}
+ `(
+ 'fetches $workspace work item types when isGroup is $isGroup',
+ async ({ isGroup, queryResolver }) => {
+ await createComponent({ isGroup });
+
+ expect(queryResolver).toHaveBeenCalled();
+ },
+ );
+
describe('creating a new work item', () => {
beforeEach(async () => {
await createComponent();
diff --git a/spec/frontend/work_items/components/work_item_milestone_spec.js b/spec/frontend/work_items/components/work_item_milestone_inline_spec.js
index fc2c5eb2af2..75c5763914a 100644
--- a/spec/frontend/work_items/components/work_item_milestone_spec.js
+++ b/spec/frontend/work_items/components/work_item_milestone_inline_spec.js
@@ -2,7 +2,9 @@ import { GlCollapsibleListbox, GlListboxItem, GlSkeletonLoader, GlFormGroup } fr
import Vue, { nextTick } from 'vue';
import VueApollo from 'vue-apollo';
-import WorkItemMilestone, { noMilestoneId } from '~/work_items/components/work_item_milestone.vue';
+import WorkItemMilestoneInline, {
+ noMilestoneId,
+} from '~/work_items/components/work_item_milestone_inline.vue';
import createMockApollo from 'helpers/mock_apollo_helper';
import { mockTracking } from 'helpers/tracking_helper';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
@@ -18,7 +20,7 @@ import {
updateWorkItemMutationResponse,
} from '../mock_data';
-describe('WorkItemMilestone component', () => {
+describe('WorkItemMilestoneInline component', () => {
Vue.use(VueApollo);
let wrapper;
@@ -51,7 +53,7 @@ describe('WorkItemMilestone component', () => {
searchQueryHandler = successSearchQueryHandler,
mutationHandler = successUpdateWorkItemMutationHandler,
} = {}) => {
- wrapper = shallowMountExtended(WorkItemMilestone, {
+ wrapper = shallowMountExtended(WorkItemMilestoneInline, {
apolloProvider: createMockApollo([
[projectMilestonesQuery, searchQueryHandler],
[updateWorkItemMutation, mutationHandler],
@@ -73,13 +75,13 @@ describe('WorkItemMilestone component', () => {
createComponent();
expect(findInputGroup().exists()).toBe(true);
- expect(findInputGroup().attributes('label')).toBe(WorkItemMilestone.i18n.MILESTONE);
+ expect(findInputGroup().attributes('label')).toBe(WorkItemMilestoneInline.i18n.MILESTONE);
});
describe('Default text with canUpdate false and milestone value', () => {
describe.each`
description | milestone | value
- ${'when no milestone'} | ${null} | ${WorkItemMilestone.i18n.NONE}
+ ${'when no milestone'} | ${null} | ${WorkItemMilestoneInline.i18n.NONE}
${'when milestone set'} | ${mockMilestoneWidgetResponse} | ${mockMilestoneWidgetResponse.title}
`('$description', ({ milestone, value }) => {
it(`has a value of "${value}"`, () => {
@@ -95,7 +97,9 @@ describe('WorkItemMilestone component', () => {
it(`has a value of "Add to milestone"`, () => {
createComponent({ canUpdate: true, milestone: null });
- expect(findDropdown().props('toggleText')).toBe(WorkItemMilestone.i18n.MILESTONE_PLACEHOLDER);
+ expect(findDropdown().props('toggleText')).toBe(
+ WorkItemMilestoneInline.i18n.MILESTONE_PLACEHOLDER,
+ );
});
});
@@ -111,7 +115,7 @@ describe('WorkItemMilestone component', () => {
searchQueryHandler: successSearchWithNoMatchingMilestones,
});
- expect(findNoResultsText().text()).toBe(WorkItemMilestone.i18n.NO_MATCHING_RESULTS);
+ expect(findNoResultsText().text()).toBe(WorkItemMilestoneInline.i18n.NO_MATCHING_RESULTS);
expect(findDropdownItems()).toHaveLength(1);
});
});
@@ -162,7 +166,7 @@ describe('WorkItemMilestone component', () => {
await waitForPromises();
expect(findDropdown().props()).toMatchObject({
loading: false,
- toggleText: WorkItemMilestone.i18n.MILESTONE_PLACEHOLDER,
+ toggleText: WorkItemMilestoneInline.i18n.MILESTONE_PLACEHOLDER,
toggleClass: expect.arrayContaining(['gl-text-gray-500!']),
});
});
diff --git a/spec/frontend/work_items/components/work_item_milestone_with_edit_spec.js b/spec/frontend/work_items/components/work_item_milestone_with_edit_spec.js
new file mode 100644
index 00000000000..58a57978126
--- /dev/null
+++ b/spec/frontend/work_items/components/work_item_milestone_with_edit_spec.js
@@ -0,0 +1,209 @@
+import Vue, { nextTick } from 'vue';
+import VueApollo from 'vue-apollo';
+import WorkItemMilestone from '~/work_items/components/work_item_milestone_with_edit.vue';
+import WorkItemSidebarDropdownWidgetWithEdit from '~/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import { mockTracking } from 'helpers/tracking_helper';
+import { mountExtended, shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
+import waitForPromises from 'helpers/wait_for_promises';
+import { TRACKING_CATEGORY_SHOW } from '~/work_items/constants';
+import updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';
+import projectMilestonesQuery from '~/sidebar/queries/project_milestones.query.graphql';
+import {
+ projectMilestonesResponse,
+ projectMilestonesResponseWithNoMilestones,
+ mockMilestoneWidgetResponse,
+ updateWorkItemMutationErrorResponse,
+ updateWorkItemMutationResponse,
+} from '../mock_data';
+
+describe('WorkItemMilestoneWithEdit component', () => {
+ Vue.use(VueApollo);
+
+ let wrapper;
+
+ const workItemId = 'gid://gitlab/WorkItem/1';
+ const workItemType = 'Task';
+
+ const findSidebarDropdownWidget = () =>
+ wrapper.findComponent(WorkItemSidebarDropdownWidgetWithEdit);
+
+ const successSearchQueryHandler = jest.fn().mockResolvedValue(projectMilestonesResponse);
+ const successSearchWithNoMatchingMilestones = jest
+ .fn()
+ .mockResolvedValue(projectMilestonesResponseWithNoMilestones);
+ const successUpdateWorkItemMutationHandler = jest
+ .fn()
+ .mockResolvedValue(updateWorkItemMutationResponse);
+
+ const showDropdown = () => findSidebarDropdownWidget().vm.$emit('dropdownShown');
+
+ const createComponent = ({
+ mountFn = shallowMountExtended,
+ canUpdate = true,
+ milestone = mockMilestoneWidgetResponse,
+ searchQueryHandler = successSearchQueryHandler,
+ mutationHandler = successUpdateWorkItemMutationHandler,
+ } = {}) => {
+ wrapper = mountFn(WorkItemMilestone, {
+ apolloProvider: createMockApollo([
+ [projectMilestonesQuery, searchQueryHandler],
+ [updateWorkItemMutation, mutationHandler],
+ ]),
+ propsData: {
+ fullPath: 'full-path',
+ canUpdate,
+ workItemMilestone: milestone,
+ workItemId,
+ workItemType,
+ },
+ });
+ };
+
+ it('has "Milestone" label', () => {
+ createComponent();
+
+ expect(findSidebarDropdownWidget().props('dropdownLabel')).toBe('Milestone');
+ });
+
+ describe('Default text with canUpdate false and milestone value', () => {
+ describe.each`
+ description | milestone | value
+ ${'when no milestone'} | ${null} | ${'None'}
+ ${'when milestone set'} | ${mockMilestoneWidgetResponse} | ${mockMilestoneWidgetResponse.title}
+ `('$description', ({ milestone, value }) => {
+ it(`has a value of "${value}"`, () => {
+ createComponent({ mountFn: mountExtended, canUpdate: false, milestone });
+
+ expect(findSidebarDropdownWidget().props('canUpdate')).toBe(false);
+ expect(wrapper.text()).toContain(value);
+ });
+ });
+ });
+
+ describe('Dropdown search', () => {
+ it('shows no matching results when no items', () => {
+ createComponent({
+ searchQueryHandler: successSearchWithNoMatchingMilestones,
+ });
+
+ expect(findSidebarDropdownWidget().props('listItems')).toHaveLength(0);
+ });
+ });
+
+ describe('Dropdown options', () => {
+ beforeEach(() => {
+ createComponent({ canUpdate: true });
+ });
+
+ it('calls successSearchQueryHandler with variables when dropdown is opened', async () => {
+ showDropdown();
+ await nextTick();
+ jest.advanceTimersByTime(DEFAULT_DEBOUNCE_AND_THROTTLE_MS);
+
+ await waitForPromises();
+
+ expect(successSearchQueryHandler).toHaveBeenCalledWith({
+ first: 20,
+ fullPath: 'full-path',
+ state: 'active',
+ title: '',
+ });
+ });
+
+ it('shows the skeleton loader when the items are being fetched on click', async () => {
+ showDropdown();
+ await nextTick();
+ jest.advanceTimersByTime(DEFAULT_DEBOUNCE_AND_THROTTLE_MS);
+
+ await nextTick();
+
+ expect(findSidebarDropdownWidget().props('loading')).toBe(true);
+ });
+
+ it('shows the milestones in dropdown when the items have finished fetching', async () => {
+ showDropdown();
+ await nextTick();
+ jest.advanceTimersByTime(DEFAULT_DEBOUNCE_AND_THROTTLE_MS);
+
+ await waitForPromises();
+
+ expect(findSidebarDropdownWidget().props('loading')).toBe(false);
+ expect(findSidebarDropdownWidget().props('listItems')).toHaveLength(
+ projectMilestonesResponse.data.workspace.attributes.nodes.length,
+ );
+ });
+
+ it('changes the milestone to null when clicked on no milestone', async () => {
+ showDropdown();
+ await nextTick();
+ jest.advanceTimersByTime(DEFAULT_DEBOUNCE_AND_THROTTLE_MS);
+
+ findSidebarDropdownWidget().vm.$emit('updateValue', null);
+
+ await nextTick();
+ expect(findSidebarDropdownWidget().props('updateInProgress')).toBe(true);
+
+ await waitForPromises();
+ expect(findSidebarDropdownWidget().props('updateInProgress')).toBe(false);
+ expect(findSidebarDropdownWidget().props('itemValue')).toBe(null);
+ });
+
+ it('changes the milestone to the selected milestone', async () => {
+ const milestoneAtIndex = projectMilestonesResponse.data.workspace.attributes.nodes[0];
+
+ showDropdown();
+ await nextTick();
+ jest.advanceTimersByTime(DEFAULT_DEBOUNCE_AND_THROTTLE_MS);
+
+ await waitForPromises();
+ findSidebarDropdownWidget().vm.$emit('updateValue', milestoneAtIndex.id);
+
+ await nextTick();
+
+ expect(findSidebarDropdownWidget().props('itemValue').title).toBe(milestoneAtIndex.title);
+ });
+ });
+
+ describe('Error handlers', () => {
+ it.each`
+ errorType | expectedErrorMessage | mockValue | resolveFunction
+ ${'graphql error'} | ${'Something went wrong while updating the task. Please try again.'} | ${updateWorkItemMutationErrorResponse} | ${'mockResolvedValue'}
+ ${'network error'} | ${'Something went wrong while updating the task. Please try again.'} | ${new Error()} | ${'mockRejectedValue'}
+ `(
+ 'emits an error when there is a $errorType',
+ async ({ mockValue, expectedErrorMessage, resolveFunction }) => {
+ createComponent({
+ mutationHandler: jest.fn()[resolveFunction](mockValue),
+ canUpdate: true,
+ });
+
+ showDropdown();
+ findSidebarDropdownWidget().vm.$emit('updateValue', null);
+
+ await waitForPromises();
+
+ expect(wrapper.emitted('error')).toEqual([[expectedErrorMessage]]);
+ },
+ );
+ });
+
+ describe('Tracking event', () => {
+ it('tracks updating the milestone', async () => {
+ const trackingSpy = mockTracking(undefined, wrapper.element, jest.spyOn);
+ createComponent({ canUpdate: true });
+
+ showDropdown();
+ findSidebarDropdownWidget().vm.$emit('updateValue', null);
+
+ await waitForPromises();
+
+ expect(trackingSpy).toHaveBeenCalledWith(TRACKING_CATEGORY_SHOW, 'updated_milestone', {
+ category: TRACKING_CATEGORY_SHOW,
+ label: 'item_milestone',
+ property: 'type_Task',
+ });
+ });
+ });
+});
diff --git a/spec/frontend/work_items/components/work_item_parent_inline_spec.js b/spec/frontend/work_items/components/work_item_parent_inline_spec.js
index 3e4f99d5935..0cd314c377a 100644
--- a/spec/frontend/work_items/components/work_item_parent_inline_spec.js
+++ b/spec/frontend/work_items/components/work_item_parent_inline_spec.js
@@ -157,7 +157,8 @@ describe('WorkItemParentInline component', () => {
types: [WORK_ITEM_TYPE_ENUM_OBJECTIVE],
in: undefined,
iid: null,
- isNumber: false,
+ searchByIid: false,
+ searchByText: true,
});
await findCollapsibleListbox().vm.$emit('search', 'Objective 101');
@@ -168,7 +169,8 @@ describe('WorkItemParentInline component', () => {
types: [WORK_ITEM_TYPE_ENUM_OBJECTIVE],
in: 'TITLE',
iid: null,
- isNumber: false,
+ searchByIid: false,
+ searchByText: true,
});
await nextTick();
diff --git a/spec/frontend/work_items/components/work_item_parent_with_edit_spec.js b/spec/frontend/work_items/components/work_item_parent_with_edit_spec.js
index 61e43456479..d5fab9353ac 100644
--- a/spec/frontend/work_items/components/work_item_parent_with_edit_spec.js
+++ b/spec/frontend/work_items/components/work_item_parent_with_edit_spec.js
@@ -290,6 +290,8 @@ describe('WorkItemParent component', () => {
in: undefined,
iid: null,
isNumber: false,
+ searchByIid: false,
+ searchByText: true,
});
await findCollapsibleListbox().vm.$emit('search', 'Objective 101');
@@ -301,6 +303,8 @@ describe('WorkItemParent component', () => {
in: 'TITLE',
iid: null,
isNumber: false,
+ searchByIid: false,
+ searchByText: true,
});
await nextTick();
diff --git a/spec/frontend/work_items/components/work_item_state_toggle_spec.js b/spec/frontend/work_items/components/work_item_state_toggle_spec.js
index a210bd50422..988df402d60 100644
--- a/spec/frontend/work_items/components/work_item_state_toggle_spec.js
+++ b/spec/frontend/work_items/components/work_item_state_toggle_spec.js
@@ -32,6 +32,7 @@ describe('Work Item State toggle button component', () => {
canUpdate = true,
workItemState = STATE_OPEN,
workItemType = 'Task',
+ hasComment = false,
} = {}) => {
wrapper = shallowMount(WorkItemStateToggle, {
apolloProvider: createMockApollo([[updateWorkItemMutation, mutationHandler]]),
@@ -40,6 +41,7 @@ describe('Work Item State toggle button component', () => {
workItemState,
workItemType,
canUpdate,
+ hasComment,
},
});
};
@@ -61,6 +63,23 @@ describe('Work Item State toggle button component', () => {
expect(findStateToggleButton().text()).toBe(buttonText);
},
);
+
+ it.each`
+ workItemState | workItemType | buttonText
+ ${STATE_OPEN} | ${'Task'} | ${'Comment & close task'}
+ ${STATE_CLOSED} | ${'Task'} | ${'Comment & reopen task'}
+ ${STATE_OPEN} | ${'Objective'} | ${'Comment & close objective'}
+ ${STATE_CLOSED} | ${'Objective'} | ${'Comment & reopen objective'}
+ ${STATE_OPEN} | ${'Key result'} | ${'Comment & close key result'}
+ ${STATE_CLOSED} | ${'Key result'} | ${'Comment & reopen key result'}
+ `(
+ 'is "$buttonText" when "$workItemType" state is "$workItemState" and hasComment is true',
+ ({ workItemState, workItemType, buttonText }) => {
+ createComponent({ workItemState, workItemType, hasComment: true });
+
+ expect(findStateToggleButton().text()).toBe(buttonText);
+ },
+ );
});
describe('when updating the state', () => {
@@ -92,6 +111,15 @@ describe('Work Item State toggle button component', () => {
});
});
+ it('emits `submit-comment` when hasComment is true', async () => {
+ createComponent({ hasComment: true });
+
+ findStateToggleButton().vm.$emit('click');
+ await waitForPromises();
+
+ expect(wrapper.emitted('submit-comment')).toBeDefined();
+ });
+
it('emits an error message when the mutation was unsuccessful', async () => {
createComponent({ mutationHandler: jest.fn().mockRejectedValue('Error!') });
diff --git a/spec/frontend/work_items/components/work_item_title_with_edit_spec.js b/spec/frontend/work_items/components/work_item_title_with_edit_spec.js
new file mode 100644
index 00000000000..7868e241821
--- /dev/null
+++ b/spec/frontend/work_items/components/work_item_title_with_edit_spec.js
@@ -0,0 +1,59 @@
+import { GlFormGroup, GlFormInput } from '@gitlab/ui';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import WorkItemTitleWithEdit from '~/work_items/components/work_item_title_with_edit.vue';
+
+describe('Work Item title with edit', () => {
+ let wrapper;
+ const mockTitle = 'Work Item title';
+
+ const createComponent = ({ isEditing = false } = {}) => {
+ wrapper = shallowMountExtended(WorkItemTitleWithEdit, {
+ propsData: {
+ title: mockTitle,
+ isEditing,
+ },
+ });
+ };
+
+ const findTitle = () => wrapper.findByTestId('work-item-title');
+ const findEditableTitleForm = () => wrapper.findComponent(GlFormGroup);
+ const findEditableTitleInput = () => wrapper.findComponent(GlFormInput);
+
+ describe('Default mode', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('renders title', () => {
+ expect(findTitle().exists()).toBe(true);
+ expect(findTitle().text()).toBe(mockTitle);
+ });
+
+ it('does not render edit mode', () => {
+ expect(findEditableTitleForm().exists()).toBe(false);
+ });
+ });
+
+ describe('Edit mode', () => {
+ beforeEach(() => {
+ createComponent({ isEditing: true });
+ });
+
+ it('does not render read only title', () => {
+ expect(findTitle().exists()).toBe(false);
+ });
+
+ it('renders the editable title with label', () => {
+ expect(findEditableTitleForm().exists()).toBe(true);
+ expect(findEditableTitleForm().attributes('label')).toBe(
+ WorkItemTitleWithEdit.i18n.titleLabel,
+ );
+ });
+
+ it('emits `updateDraft` event on change of the input', () => {
+ findEditableTitleInput().vm.$emit('input', 'updated title');
+
+ expect(wrapper.emitted('updateDraft')).toEqual([['updated title']]);
+ });
+ });
+});
diff --git a/spec/frontend/work_items/mock_data.js b/spec/frontend/work_items/mock_data.js
index 9d4606eb95a..aade1ed4735 100644
--- a/spec/frontend/work_items/mock_data.js
+++ b/spec/frontend/work_items/mock_data.js
@@ -229,6 +229,7 @@ export const updateWorkItemMutationResponse = {
state: 'OPEN',
description: 'description',
confidential: false,
+ webUrl: 'http://gdk.test/gitlab-org/gitlab/-/issues/1',
createdAt: '2022-08-03T12:41:54Z',
updatedAt: '2022-08-08T12:41:54Z',
closedAt: null,
@@ -339,6 +340,7 @@ export const convertWorkItemMutationResponse = {
title: 'Updated title',
state: 'OPEN',
description: 'description',
+ webUrl: 'http://gdk.test/gitlab-org/gitlab/-/issues/1',
confidential: false,
createdAt: '2022-08-03T12:41:54Z',
updatedAt: '2022-08-08T12:41:54Z',
@@ -473,6 +475,13 @@ export const issueType = {
iconName: 'issue-type-issue',
};
+export const epicType = {
+ __typename: 'WorkItemType',
+ id: 'gid://gitlab/WorkItems::Type/2411',
+ name: 'Epic',
+ iconName: 'issue-type-epic',
+};
+
export const mockEmptyLinkedItems = {
type: WIDGET_TYPE_LINKED_ITEMS,
blocked: false,
@@ -644,6 +653,7 @@ export const workItemResponseFactory = ({
title: 'Updated title',
state,
description: 'description',
+ webUrl: 'http://gdk.test/gitlab-org/gitlab/-/issues/1',
confidential,
createdAt,
updatedAt,
@@ -726,6 +736,12 @@ export const workItemResponseFactory = ({
title: 'Iteration default title',
startDate: '2022-09-22',
dueDate: '2022-09-30',
+ webUrl: 'http://127.0.0.1:3000/groups/flightjs/-/iterations/23205',
+ iterationCadence: {
+ id: 'gid://gitlab/Iterations::Cadence/5852',
+ title: 'A dolores assumenda harum non facilis similique delectus quod.',
+ __typename: 'IterationCadence',
+ },
},
}
: { type: 'MOCK TYPE' },
@@ -907,6 +923,18 @@ export const projectWorkItemTypesQueryResponse = {
},
};
+export const groupWorkItemTypesQueryResponse = {
+ data: {
+ workspace: {
+ __typename: 'Group',
+ id: 'gid://gitlab/Group/2',
+ workItemTypes: {
+ nodes: [{ id: 'gid://gitlab/WorkItems::Type/6', name: 'Epic' }],
+ },
+ },
+ },
+};
+
export const createWorkItemMutationResponse = {
data: {
workItemCreate: {
@@ -923,6 +951,7 @@ export const createWorkItemMutationResponse = {
createdAt: '2022-08-03T12:41:54Z',
updatedAt: null,
closedAt: null,
+ webUrl: 'http://gdk.test/gitlab-org/gitlab/-/issues/1',
author: {
...mockAssignees[0],
},
@@ -1010,6 +1039,7 @@ export const workItemHierarchyEmptyResponse = {
__typename: 'WorkItemType',
},
title: 'New title',
+ webUrl: 'http://gdk.test/gitlab-org/gitlab/-/issues/1',
description: '',
createdAt: '2022-08-03T12:41:54Z',
updatedAt: null,
@@ -1229,6 +1259,7 @@ export const workItemHierarchyResponse = {
__typename: 'WorkItemType',
},
title: 'New title',
+ webUrl: 'http://gdk.test/gitlab-org/gitlab/-/issues/1',
userPermissions: {
deleteWorkItem: true,
updateWorkItem: true,
@@ -1495,6 +1526,7 @@ export const changeIndirectWorkItemParentMutationResponse = {
__typename: 'WorkItemPermissions',
},
description: null,
+ webUrl: 'http://gdk.test/gitlab-org/gitlab/-/issues/1',
id: 'gid://gitlab/WorkItem/13',
iid: '13',
archived: false,
@@ -1564,6 +1596,7 @@ export const changeWorkItemParentMutationResponse = {
__typename: 'WorkItemPermissions',
},
description: null,
+ webUrl: 'http://gdk.test/gitlab-org/gitlab/-/issues/1',
id: 'gid://gitlab/WorkItem/2',
iid: '2',
archived: false,
@@ -1734,6 +1767,28 @@ export const searchWorkItemsIidResponse = {
},
};
+export const searchWorkItemsURLRefResponse = {
+ data: {
+ workspace: {
+ __typename: 'Project',
+ id: 'gid://gitlab/Project/2',
+ workItems: {
+ nodes: [],
+ },
+ workItemsByIid: {
+ nodes: [
+ {
+ id: 'gid://gitlab/WorkItem/460',
+ iid: '101',
+ title: 'Task 3',
+ __typename: 'WorkItem',
+ },
+ ],
+ },
+ },
+ },
+};
+
export const searchWorkItemsTextIidResponse = {
data: {
workspace: {
@@ -1765,6 +1820,23 @@ export const searchWorkItemsTextIidResponse = {
},
};
+export const searchWorkItemsResponse = ({ workItems = [], workItemsByIid = [] } = {}) => {
+ return {
+ data: {
+ workspace: {
+ __typename: 'Project',
+ id: 'gid://gitlab/Project/2',
+ workItems: {
+ nodes: workItems,
+ },
+ workItemsByIid: {
+ nodes: workItemsByIid,
+ },
+ },
+ },
+ };
+};
+
export const projectMembersResponseWithCurrentUser = {
data: {
workspace: {
diff --git a/spec/frontend/work_items/utils_spec.js b/spec/frontend/work_items/utils_spec.js
index aa24b80cf08..166712de20b 100644
--- a/spec/frontend/work_items/utils_spec.js
+++ b/spec/frontend/work_items/utils_spec.js
@@ -1,4 +1,4 @@
-import { autocompleteDataSources, markdownPreviewPath } from '~/work_items/utils';
+import { autocompleteDataSources, markdownPreviewPath, isReference } from '~/work_items/utils';
describe('autocompleteDataSources', () => {
beforeEach(() => {
@@ -25,3 +25,25 @@ describe('markdownPreviewPath', () => {
);
});
});
+
+describe('isReference', () => {
+ it.each`
+ referenceId | result
+ ${'#101'} | ${true}
+ ${'&101'} | ${true}
+ ${'101'} | ${false}
+ ${'#'} | ${false}
+ ${'&'} | ${false}
+ ${' &101'} | ${false}
+ ${'gitlab-org&101'} | ${true}
+ ${'gitlab-org/project-path#101'} | ${true}
+ ${'gitlab-org/sub-group/project-path#101'} | ${true}
+ ${'gitlab-org'} | ${false}
+ ${'gitlab-org101#'} | ${false}
+ ${'gitlab-org101&'} | ${false}
+ ${'#gitlab-org101'} | ${false}
+ ${'&gitlab-org101'} | ${false}
+ `('returns $result for $referenceId', ({ referenceId, result }) => {
+ expect(isReference(referenceId)).toEqual(result);
+ });
+});
diff --git a/spec/graphql/graphql_triggers_spec.rb b/spec/graphql/graphql_triggers_spec.rb
index 3f58f2678d8..97b1591db8e 100644
--- a/spec/graphql/graphql_triggers_spec.rb
+++ b/spec/graphql/graphql_triggers_spec.rb
@@ -132,6 +132,20 @@ RSpec.describe GraphqlTriggers, feature_category: :shared do
end
end
+ describe '.merge_request_diff_generated' do
+ it 'triggers the merge_request_diff_generated subscription' do
+ merge_request = build_stubbed(:merge_request)
+
+ expect(GitlabSchema.subscriptions).to receive(:trigger).with(
+ :merge_request_diff_generated,
+ { issuable_id: merge_request.to_gid },
+ merge_request
+ ).and_call_original
+
+ described_class.merge_request_diff_generated(merge_request)
+ end
+ end
+
describe '.work_item_updated' do
it 'triggers the work_item_updated subscription' do
expect(GitlabSchema.subscriptions).to receive(:trigger).with(
diff --git a/spec/graphql/mutations/namespace/package_settings/update_spec.rb b/spec/graphql/mutations/namespace/package_settings/update_spec.rb
index b184baaca3e..f5bd9ad93be 100644
--- a/spec/graphql/mutations/namespace/package_settings/update_spec.rb
+++ b/spec/graphql/mutations/namespace/package_settings/update_spec.rb
@@ -39,7 +39,9 @@ RSpec.describe Mutations::Namespace::PackageSettings::Update, feature_category:
lock_npm_package_requests_forwarding: false,
pypi_package_requests_forwarding: nil,
lock_pypi_package_requests_forwarding: false,
- nuget_symbol_server_enabled: false
+ nuget_symbol_server_enabled: false,
+ terraform_module_duplicates_allowed: false,
+ terraform_module_duplicate_exception_regex: 'foo'
}, to: {
maven_duplicates_allowed: false,
maven_duplicate_exception_regex: 'RELEASE',
@@ -53,7 +55,9 @@ RSpec.describe Mutations::Namespace::PackageSettings::Update, feature_category:
lock_npm_package_requests_forwarding: true,
pypi_package_requests_forwarding: true,
lock_pypi_package_requests_forwarding: true,
- nuget_symbol_server_enabled: true
+ nuget_symbol_server_enabled: true,
+ terraform_module_duplicates_allowed: true,
+ terraform_module_duplicate_exception_regex: 'bar'
}
it_behaves_like 'returning a success'
@@ -109,7 +113,9 @@ RSpec.describe Mutations::Namespace::PackageSettings::Update, feature_category:
lock_npm_package_requests_forwarding: true,
pypi_package_requests_forwarding: true,
lock_pypi_package_requests_forwarding: true,
- nuget_symbol_server_enabled: true
+ nuget_symbol_server_enabled: true,
+ terraform_module_duplicates_allowed: true,
+ terraform_module_duplicate_exception_regex: 'bar'
}
end
diff --git a/spec/graphql/resolvers/ci/catalog/resources/versions_resolver_spec.rb b/spec/graphql/resolvers/ci/catalog/resources/versions_resolver_spec.rb
index 1ce0e91765f..4205259e5b9 100644
--- a/spec/graphql/resolvers/ci/catalog/resources/versions_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/catalog/resources/versions_resolver_spec.rb
@@ -7,8 +7,9 @@ RSpec.describe Resolvers::Ci::Catalog::Resources::VersionsResolver, feature_cate
include_context 'when there are catalog resources with versions'
+ let(:name) { nil }
let(:sort) { nil }
- let(:args) { { sort: sort }.compact }
+ let(:args) { { name: name, sort: sort }.compact }
let(:ctx) { { current_user: current_user } }
subject(:result) { resolve(described_class, ctx: ctx, obj: resource1, args: args) }
@@ -19,6 +20,23 @@ RSpec.describe Resolvers::Ci::Catalog::Resources::VersionsResolver, feature_cate
resource1.project.add_guest(current_user)
end
+ context 'when name argument is provided' do
+ let(:name) { 'v1.0' }
+
+ it 'returns the version that matches the name' do
+ expect(result.items.size).to eq(1)
+ expect(result.items.first.name).to eq('v1.0')
+ end
+
+ context 'when no version matches the name' do
+ let(:name) { 'does_not_exist' }
+
+ it 'returns empty response' do
+ expect(result).to be_empty
+ end
+ end
+ end
+
context 'when sort argument is not provided' do
it 'returns versions ordered by released_at descending' do
expect(result.items).to eq([v1_1, v1_0])
diff --git a/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb b/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb
index d1eec0baeea..d1726c8da6c 100644
--- a/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb
@@ -87,7 +87,7 @@ RSpec.describe Resolvers::Ci::GroupRunnersResolver, feature_category: :fleet_vis
status_status: 'active',
type_type: :group_type,
tag_name: ['active_runner'],
- preload: false,
+ preload: {},
search: 'abc',
sort: 'contacted_asc',
membership: :descendants,
diff --git a/spec/graphql/resolvers/ci/project_runners_resolver_spec.rb b/spec/graphql/resolvers/ci/project_runners_resolver_spec.rb
index 85b55521174..59ba7d4200c 100644
--- a/spec/graphql/resolvers/ci/project_runners_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/project_runners_resolver_spec.rb
@@ -74,7 +74,7 @@ RSpec.describe Resolvers::Ci::ProjectRunnersResolver, feature_category: :fleet_v
status_status: 'active',
type_type: :group_type,
tag_name: ['active_runner'],
- preload: false,
+ preload: {},
search: 'abc',
sort: 'contacted_asc',
project: project
diff --git a/spec/graphql/resolvers/ci/runners_resolver_spec.rb b/spec/graphql/resolvers/ci/runners_resolver_spec.rb
index 85a90924384..a0239a6ff34 100644
--- a/spec/graphql/resolvers/ci/runners_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/runners_resolver_spec.rb
@@ -98,7 +98,7 @@ RSpec.describe Resolvers::Ci::RunnersResolver, feature_category: :fleet_visibili
upgrade_status: 'recommended',
type_type: :instance_type,
tag_name: ['active_runner'],
- preload: false,
+ preload: {},
search: 'abc',
sort: 'contacted_asc',
creator_id: '1',
@@ -125,7 +125,7 @@ RSpec.describe Resolvers::Ci::RunnersResolver, feature_category: :fleet_visibili
let(:expected_params) do
{
active: false,
- preload: false
+ preload: {}
}
end
@@ -145,7 +145,7 @@ RSpec.describe Resolvers::Ci::RunnersResolver, feature_category: :fleet_visibili
let(:expected_params) do
{
active: false,
- preload: false
+ preload: {}
}
end
@@ -163,7 +163,7 @@ RSpec.describe Resolvers::Ci::RunnersResolver, feature_category: :fleet_visibili
end
let(:expected_params) do
- { preload: false }
+ { preload: {} }
end
it 'calls RunnersFinder with expected arguments' do
@@ -181,7 +181,7 @@ RSpec.describe Resolvers::Ci::RunnersResolver, feature_category: :fleet_visibili
let(:expected_params) do
{
- preload: false,
+ preload: {},
version_prefix: 'a.b'
}
end
diff --git a/spec/graphql/resolvers/concerns/resolves_groups_spec.rb b/spec/graphql/resolvers/concerns/resolves_groups_spec.rb
index 79f3708da22..72e86d54dea 100644
--- a/spec/graphql/resolvers/concerns/resolves_groups_spec.rb
+++ b/spec/graphql/resolvers/concerns/resolves_groups_spec.rb
@@ -22,26 +22,27 @@ RSpec.describe ResolvesGroups do
end
end
- let_it_be(:lookahead_fields) do
+ let_it_be(:preloaded_fields) do
<<~FIELDS
containerRepositoriesCount
customEmoji { nodes { id } }
fullPath
+ groupMembersCount
path
dependencyProxyBlobCount
dependencyProxyBlobs { nodes { fileName } }
dependencyProxyImageCount
dependencyProxyImageTtlPolicy { enabled }
dependencyProxySetting { enabled }
+ descendantGroupsCount
+ projectsCount
FIELDS
end
- it 'avoids N+1 queries on the fields marked with lookahead' do
+ it 'avoids N+1 queries on the preloaded fields' do
group_ids = groups.map(&:id)
allow_next(resolver).to receive(:resolve_groups).and_return(Group.id_in(group_ids))
- # Prevent authorization queries from affecting the test.
- allow(Ability).to receive(:allowed?).and_return(true)
single_group_query = ActiveRecord::QueryRecorder.new do
data = query_groups(limit: 1)
@@ -57,7 +58,7 @@ RSpec.describe ResolvesGroups do
end
def query_groups(limit:)
- query_string = "{ groups(first: #{limit}) { nodes { id #{lookahead_fields} } } }"
+ query_string = "{ groups(first: #{limit}) { nodes { id #{preloaded_fields} } } }"
data = execute_query(query_type, graphql: query_string)
diff --git a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
index 5f12e8649b7..4d0f1676c7f 100644
--- a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
+++ b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
@@ -83,15 +83,16 @@ RSpec.describe Resolvers::ContainerRepositoryTagsResolver, feature_category: :co
context 'with parameters' do
using RSpec::Parameterized::TableSyntax
- where(:before, :after, :sort, :name, :first, :last, :sort_value) do
- nil | nil | 'NAME_DESC' | '' | 10 | nil | '-name'
- 'bb' | nil | 'NAME_ASC' | 'a' | nil | 5 | 'name'
- nil | 'aa' | 'NAME_DESC' | 'a' | 10 | nil | '-name'
+ where(:before, :after, :sort, :name, :first, :last, :sort_value, :referrers) do
+ nil | nil | 'NAME_DESC' | '' | 10 | nil | '-name' | nil
+ 'bb' | nil | 'NAME_ASC' | 'a' | nil | 5 | 'name' | false
+ nil | 'aa' | 'NAME_DESC' | 'a' | 10 | nil | '-name' | true
end
with_them do
let(:args) do
- { before: before, after: after, sort: sort, name: name, first: first, last: last }.compact
+ { before: before, after: after, sort: sort, name: name,
+ first: first, last: last, referrers: referrers }.compact
end
it 'calls ContainerRepository#tags_page with correct parameters' do
@@ -100,7 +101,8 @@ RSpec.describe Resolvers::ContainerRepositoryTagsResolver, feature_category: :co
last: after,
sort: sort_value,
name: name,
- page_size: [first, last].map(&:to_i).max
+ page_size: [first, last].map(&:to_i).max,
+ referrers: referrers
)
resolver(args)
diff --git a/spec/graphql/resolvers/design_management/versions_resolver_spec.rb b/spec/graphql/resolvers/design_management/versions_resolver_spec.rb
index eb39e5bafc5..744e7f35891 100644
--- a/spec/graphql/resolvers/design_management/versions_resolver_spec.rb
+++ b/spec/graphql/resolvers/design_management/versions_resolver_spec.rb
@@ -43,15 +43,15 @@ RSpec.describe Resolvers::DesignManagement::VersionsResolver do
context 'loading associations' do
it 'prevents N+1 queries when loading author' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
resolve_versions(object).items.map(&:author)
- end.count
+ end
create_list(:design_version, 3, issue: issue)
expect do
resolve_versions(object).items.map(&:author)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/graphql/resolvers/group_labels_resolver_spec.rb b/spec/graphql/resolvers/group_labels_resolver_spec.rb
index 08e17cedfcc..2e583a1703d 100644
--- a/spec/graphql/resolvers/group_labels_resolver_spec.rb
+++ b/spec/graphql/resolvers/group_labels_resolver_spec.rb
@@ -78,7 +78,7 @@ RSpec.describe Resolvers::GroupLabelsResolver do
Gitlab::SafeRequestStore.ensure_request_store do
resolve_labels(group, params).to_a
end
- end.not_to exceed_query_limit(control.count)
+ end.not_to exceed_query_limit(control)
end
end
diff --git a/spec/graphql/resolvers/labels_resolver_spec.rb b/spec/graphql/resolvers/labels_resolver_spec.rb
index 16cf2e73736..fd55c3131b4 100644
--- a/spec/graphql/resolvers/labels_resolver_spec.rb
+++ b/spec/graphql/resolvers/labels_resolver_spec.rb
@@ -78,7 +78,7 @@ RSpec.describe Resolvers::LabelsResolver do
Gitlab::SafeRequestStore.ensure_request_store do
resolve_labels(project, params).to_a
end
- end.not_to exceed_query_limit(control.count)
+ end.not_to exceed_query_limit(control)
end
end
diff --git a/spec/graphql/resolvers/ml/find_models_resolver_spec.rb b/spec/graphql/resolvers/ml/find_models_resolver_spec.rb
new file mode 100644
index 00000000000..ce85dd62515
--- /dev/null
+++ b/spec/graphql/resolvers/ml/find_models_resolver_spec.rb
@@ -0,0 +1,47 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Resolvers::Ml::FindModelsResolver, feature_category: :mlops do
+ include GraphqlHelpers
+
+ describe '#resolve' do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:models) { create_list(:ml_models, 2, project: project) }
+ let_it_be(:model_in_another_project) { create(:ml_models) }
+ let_it_be(:user) { project.owner }
+
+ let(:args) { { name: 'model', orderBy: 'CREATED_AT', sort: 'desc', invalid: 'blah' } }
+ let(:read_model_registry) { true }
+
+ before do
+ allow(Ability).to receive(:allowed?).and_call_original
+ allow(Ability).to receive(:allowed?)
+ .with(user, :read_model_registry, project)
+ .and_return(read_model_registry)
+ end
+
+ subject(:resolve_models) do
+ force(resolve(described_class, obj: project, ctx: { current_user: user }, args: args))&.to_a
+ end
+
+ context 'when user is allowed and model exists' do
+ it { is_expected.to eq(models.reverse) }
+
+ it 'only passes name, sort_by and order to finder' do
+ expect(::Projects::Ml::ModelFinder).to receive(:new)
+ .with(project, { name: 'model', order_by: 'created_at',
+sort: 'desc' })
+ .and_call_original
+
+ resolve_models
+ end
+ end
+
+ context 'when user does not have permission' do
+ let(:read_model_registry) { false }
+
+ it { is_expected.to be_nil }
+ end
+ end
+end
diff --git a/spec/graphql/resolvers/users_resolver_spec.rb b/spec/graphql/resolvers/users_resolver_spec.rb
index 2ae1b53c40f..ecb1bbb5618 100644
--- a/spec/graphql/resolvers/users_resolver_spec.rb
+++ b/spec/graphql/resolvers/users_resolver_spec.rb
@@ -62,6 +62,42 @@ RSpec.describe Resolvers::UsersResolver do
end
end
+ context 'when a set of group_id is passed' do
+ let_it_be(:group) { create(:group, :private) }
+ let_it_be(:subgroup) { create(:group, :private, parent: group) }
+ let_it_be(:group_member) { create(:user) }
+
+ let_it_be(:indirect_group_member) do
+ create(:user).tap { |u| subgroup.add_developer(u) }
+ end
+
+ let_it_be(:direct_group_members) do
+ [current_user, user1, group_member].each { |u| group.add_developer(u) }
+ end
+
+ it 'returns direct and indirect members of the group' do
+ expect(
+ resolve_users(args: { group_id: group.to_global_id })
+ ).to contain_exactly(indirect_group_member, *direct_group_members)
+ end
+
+ it 'raise an no resource not available error if the group do not exist group' do
+ expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::ResourceNotAvailable) do
+ resolve_users(args: { group_id: "gid://gitlab/Group/#{non_existing_record_id}" })
+ end
+ end
+
+ context 'when user cannot read group' do
+ let(:current_user) { create(:user) }
+
+ it 'raise an no resource not available error the user cannot read the group' do
+ expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::ResourceNotAvailable) do
+ resolve_users(args: { group_id: group.to_global_id })
+ end
+ end
+ end
+ end
+
context 'with anonymous access' do
let_it_be(:current_user) { nil }
diff --git a/spec/graphql/types/ci/catalog/resources/component_type_spec.rb b/spec/graphql/types/ci/catalog/resources/component_type_spec.rb
index 93ab926d406..821d41ea7b4 100644
--- a/spec/graphql/types/ci/catalog/resources/component_type_spec.rb
+++ b/spec/graphql/types/ci/catalog/resources/component_type_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe Types::Ci::Catalog::Resources::ComponentType, feature_category: :
id
inputs
name
- path
+ include_path
]
expect(described_class).to have_graphql_fields(*expected_fields)
diff --git a/spec/graphql/types/ci/catalog/resources/version_type_spec.rb b/spec/graphql/types/ci/catalog/resources/version_type_spec.rb
index 088973cf8f7..bc1b9a97e88 100644
--- a/spec/graphql/types/ci/catalog/resources/version_type_spec.rb
+++ b/spec/graphql/types/ci/catalog/resources/version_type_spec.rb
@@ -10,11 +10,12 @@ RSpec.describe Types::Ci::Catalog::Resources::VersionType, feature_category: :pi
id
created_at
released_at
- tag_name
- tag_path
+ name
+ path
author
commit
components
+ readme_html
]
expect(described_class).to have_graphql_fields(*expected_fields)
diff --git a/spec/graphql/types/ci/inherited_ci_variable_type_spec.rb b/spec/graphql/types/ci/inherited_ci_variable_type_spec.rb
index daf80ff9978..973d6d602c9 100644
--- a/spec/graphql/types/ci/inherited_ci_variable_type_spec.rb
+++ b/spec/graphql/types/ci/inherited_ci_variable_type_spec.rb
@@ -7,13 +7,14 @@ RSpec.describe GitlabSchema.types['InheritedCiVariable'], feature_category: :sec
expect(described_class).to have_graphql_fields(
:id,
:key,
- :raw,
- :variable_type,
+ :description,
:environment_scope,
+ :group_name,
+ :group_ci_cd_settings_path,
:masked,
:protected,
- :group_name,
- :group_ci_cd_settings_path
+ :raw,
+ :variable_type
).at_least
end
end
diff --git a/spec/graphql/types/ci/instance_variable_type_spec.rb b/spec/graphql/types/ci/instance_variable_type_spec.rb
index c77a4ac1dc4..bd3dd30f3c8 100644
--- a/spec/graphql/types/ci/instance_variable_type_spec.rb
+++ b/spec/graphql/types/ci/instance_variable_type_spec.rb
@@ -5,5 +5,7 @@ require 'spec_helper'
RSpec.describe GitlabSchema.types['CiInstanceVariable'] do
specify { expect(described_class.interfaces).to contain_exactly(Types::Ci::VariableInterface) }
- specify { expect(described_class).to have_graphql_fields(:environment_scope, :masked, :protected).at_least }
+ specify do
+ expect(described_class).to have_graphql_fields(:environment_scope, :masked, :protected, :description).at_least
+ end
end
diff --git a/spec/graphql/types/commit_signatures/verification_status_enum_spec.rb b/spec/graphql/types/commit_signatures/verification_status_enum_spec.rb
index 7fc600745df..a51f15f2b82 100644
--- a/spec/graphql/types/commit_signatures/verification_status_enum_spec.rb
+++ b/spec/graphql/types/commit_signatures/verification_status_enum_spec.rb
@@ -2,15 +2,11 @@
require 'spec_helper'
-RSpec.describe GitlabSchema.types['VerificationStatus'] do
+RSpec.describe GitlabSchema.types['VerificationStatus'], feature_category: :source_code_management do
specify { expect(described_class.graphql_name).to eq('VerificationStatus') }
it 'exposes all signature verification states' do
expect(described_class.values.keys)
- .to match_array(%w[
- UNVERIFIED UNVERIFIED_KEY VERIFIED
- SAME_USER_DIFFERENT_EMAIL OTHER_USER UNKNOWN_KEY
- MULTIPLE_SIGNATURES REVOKED_KEY VERIFIED_SYSTEM
- ])
+ .to match_array(Enums::CommitSignature.verification_statuses.map { |status| status.first.to_s.upcase })
end
end
diff --git a/spec/graphql/types/container_repository_referrer_type_spec.rb b/spec/graphql/types/container_repository_referrer_type_spec.rb
new file mode 100644
index 00000000000..1baab8a7f89
--- /dev/null
+++ b/spec/graphql/types/container_repository_referrer_type_spec.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe GitlabSchema.types['ContainerRepositoryReferrer'], feature_category: :container_registry do
+ fields = %i[artifact_type digest user_permissions]
+
+ it { expect(described_class.graphql_name).to eq('ContainerRepositoryReferrer') }
+
+ it { expect(described_class.description).to eq('A referrer for a container repository tag') }
+
+ it { expect(described_class).to require_graphql_authorizations(:read_container_image) }
+
+ it { expect(described_class).to have_graphql_fields(fields) }
+
+ it { expect(described_class).to expose_permissions_using(Types::PermissionTypes::ContainerRepositoryTag) }
+end
diff --git a/spec/graphql/types/container_repository_tag_type_spec.rb b/spec/graphql/types/container_repository_tag_type_spec.rb
index 596a221b5c0..4c91c39fcd6 100644
--- a/spec/graphql/types/container_repository_tag_type_spec.rb
+++ b/spec/graphql/types/container_repository_tag_type_spec.rb
@@ -3,7 +3,8 @@
require 'spec_helper'
RSpec.describe GitlabSchema.types['ContainerRepositoryTag'], feature_category: :container_registry do
- fields = %i[name path location digest revision short_revision total_size created_at can_delete user_permissions]
+ fields = %i[name path location digest revision short_revision
+ total_size created_at can_delete user_permissions referrers published_at]
it { expect(described_class.graphql_name).to eq('ContainerRepositoryTag') }
diff --git a/spec/graphql/types/current_user_todos_type_spec.rb b/spec/graphql/types/current_user_todos_type_spec.rb
index febbe868f33..2b33a705ae2 100644
--- a/spec/graphql/types/current_user_todos_type_spec.rb
+++ b/spec/graphql/types/current_user_todos_type_spec.rb
@@ -159,17 +159,17 @@ RSpec.describe GitlabSchema.types['CurrentUserTodos'] do
# AND ("todos"."state" IN ('done','pending'))
# AND "todos"."target_id" = merge_request
# AND "todos"."target_type" = 'MergeRequest' ORDER BY "todos"."id" DESC
- baseline = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
execute_query(query_type, graphql: base_query)
end
expect do
execute_query(query_type, graphql: query_without_state_arguments)
- end.not_to exceed_query_limit(baseline) # at present this is 3
+ end.not_to exceed_query_limit(control) # at present this is 3
expect do
execute_query(query_type, graphql: with_state_arguments)
- end.not_to exceed_query_limit(baseline.count + 1)
+ end.not_to exceed_query_limit(control).with_threshold(1)
end
it 'returns correct data' do
diff --git a/spec/graphql/types/group_type_spec.rb b/spec/graphql/types/group_type_spec.rb
index d3f9053faf3..51a9476f449 100644
--- a/spec/graphql/types/group_type_spec.rb
+++ b/spec/graphql/types/group_type_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GitlabSchema.types['Group'] do
+RSpec.describe GitlabSchema.types['Group'], feature_category: :groups_and_projects do
include GraphqlHelpers
specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Group) }
@@ -16,6 +16,7 @@ RSpec.describe GitlabSchema.types['Group'] do
id name path full_name full_path description description_html visibility
lfs_enabled request_access_enabled projects root_storage_statistics
web_url avatar_url share_with_group_lock project_creation_level
+ descendant_groups_count group_members_count projects_count
subgroup_creation_level require_two_factor_authentication
two_factor_grace_period auto_devops_enabled emails_disabled
mentions_disabled parent boards milestones group_members
diff --git a/spec/graphql/types/merge_request_type_spec.rb b/spec/graphql/types/merge_request_type_spec.rb
index be25c5177f6..4d1d651f0ca 100644
--- a/spec/graphql/types/merge_request_type_spec.rb
+++ b/spec/graphql/types/merge_request_type_spec.rb
@@ -38,6 +38,7 @@ RSpec.describe GitlabSchema.types['MergeRequest'], feature_category: :code_revie
has_ci mergeable commits committers commits_without_merge_commits squash security_auto_fix default_squash_commit_message
auto_merge_strategy merge_user award_emoji prepared_at codequality_reports_comparer supports_lock_on_merge
mergeability_checks
+ allows_multiple_assignees allows_multiple_reviewers
]
expect(described_class).to have_graphql_fields(*expected_fields).at_least
diff --git a/spec/graphql/types/ml/model_links_type_spec.rb b/spec/graphql/types/ml/model_links_type_spec.rb
new file mode 100644
index 00000000000..e33102c8f7f
--- /dev/null
+++ b/spec/graphql/types/ml/model_links_type_spec.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe GitlabSchema.types['MLModelLinks'], feature_category: :mlops do
+ it 'has the expected fields' do
+ expected_fields = %w[showPath]
+
+ expect(described_class).to include_graphql_fields(*expected_fields)
+ end
+end
diff --git a/spec/graphql/types/ml/model_type_spec.rb b/spec/graphql/types/ml/model_type_spec.rb
index ee0473ccafe..078391f135a 100644
--- a/spec/graphql/types/ml/model_type_spec.rb
+++ b/spec/graphql/types/ml/model_type_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe GitlabSchema.types['MlModel'], feature_category: :mlops do
specify { expect(described_class.description).to eq('Machine learning model in the model registry') }
it 'includes all the package fields' do
- expected_fields = %w[id name versions candidates]
+ expected_fields = %w[id name versions candidates version_count _links created_at latest_version description]
expect(described_class).to include_graphql_fields(*expected_fields)
end
diff --git a/spec/graphql/types/ml/model_version_links_type_spec.rb b/spec/graphql/types/ml/model_version_links_type_spec.rb
index d2a11643c35..63083b441e3 100644
--- a/spec/graphql/types/ml/model_version_links_type_spec.rb
+++ b/spec/graphql/types/ml/model_version_links_type_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe GitlabSchema.types['MLModelVersionLinks'], feature_category: :mlops do
it 'has the expected fields' do
- expected_fields = %w[showPath]
+ expected_fields = %w[showPath packagePath]
expect(described_class).to include_graphql_fields(*expected_fields)
end
diff --git a/spec/graphql/types/ml/models_order_by_enum_spec.rb b/spec/graphql/types/ml/models_order_by_enum_spec.rb
new file mode 100644
index 00000000000..211e073e8c1
--- /dev/null
+++ b/spec/graphql/types/ml/models_order_by_enum_spec.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe GitlabSchema.types['MlModelsOrderBy'], feature_category: :mlops do
+ specify { expect(described_class.graphql_name).to eq('MlModelsOrderBy') }
+
+ it 'exposes all the existing order by types' do
+ expect(described_class.values.keys).to match_array(%w[CREATED_AT ID UPDATED_AT NAME])
+ end
+end
diff --git a/spec/graphql/types/namespace/package_settings_type_spec.rb b/spec/graphql/types/namespace/package_settings_type_spec.rb
index 0e731c1e2bf..0e958aca586 100644
--- a/spec/graphql/types/namespace/package_settings_type_spec.rb
+++ b/spec/graphql/types/namespace/package_settings_type_spec.rb
@@ -33,6 +33,8 @@ RSpec.describe GitlabSchema.types['PackageSettings'], feature_category: :package
npm_package_requests_forwarding_locked
pypi_package_requests_forwarding_locked
nuget_symbol_server_enabled
+ terraform_module_duplicates_allowed
+ terraform_module_duplicate_exception_regex
]
expect(described_class).to include_graphql_fields(*expected_fields)
diff --git a/spec/graphql/types/namespace_type_spec.rb b/spec/graphql/types/namespace_type_spec.rb
index 9e1a2bfd466..d80235023ef 100644
--- a/spec/graphql/types/namespace_type_spec.rb
+++ b/spec/graphql/types/namespace_type_spec.rb
@@ -15,5 +15,5 @@ RSpec.describe GitlabSchema.types['Namespace'] do
expect(described_class).to include_graphql_fields(*expected_fields)
end
- specify { expect(described_class).to require_graphql_authorizations(:read_namespace_via_membership) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_namespace) }
end
diff --git a/spec/graphql/types/organizations/organization_type_spec.rb b/spec/graphql/types/organizations/organization_type_spec.rb
index 6bc4bac6ba2..33d0376e418 100644
--- a/spec/graphql/types/organizations/organization_type_spec.rb
+++ b/spec/graphql/types/organizations/organization_type_spec.rb
@@ -3,7 +3,9 @@
require 'spec_helper'
RSpec.describe GitlabSchema.types['Organization'], feature_category: :cell do
- let(:expected_fields) { %w[avatar_url description description_html groups id name organization_users path web_url] }
+ let(:expected_fields) do
+ %w[avatar_url description description_html groups id name organization_users path projects web_url]
+ end
specify { expect(described_class.graphql_name).to eq('Organization') }
specify { expect(described_class).to require_graphql_authorizations(:read_organization) }
diff --git a/spec/graphql/types/permission_types/issue_spec.rb b/spec/graphql/types/permission_types/issue_spec.rb
index 8f43a4a44a0..bf63420aa78 100644
--- a/spec/graphql/types/permission_types/issue_spec.rb
+++ b/spec/graphql/types/permission_types/issue_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe Types::PermissionTypes::Issue do
expected_permissions = [
:read_issue, :admin_issue, :update_issue, :reopen_issue,
:read_design, :create_design, :destroy_design,
- :create_note, :update_design
+ :create_note, :update_design, :admin_issue_relation
]
expected_permissions.each do |permission|
diff --git a/spec/graphql/types/project_type_spec.rb b/spec/graphql/types/project_type_spec.rb
index 3965312316b..36d72140006 100644
--- a/spec/graphql/types/project_type_spec.rb
+++ b/spec/graphql/types/project_type_spec.rb
@@ -41,7 +41,8 @@ RSpec.describe GitlabSchema.types['Project'], feature_category: :groups_and_proj
recent_issue_boards ci_config_path_or_default packages_cleanup_policy ci_variables
timelog_categories fork_targets branch_rules ci_config_variables pipeline_schedules languages
incident_management_timeline_event_tags visible_forks inherited_ci_variables autocomplete_users
- ci_cd_settings detailed_import_status value_streams
+ ci_cd_settings detailed_import_status value_streams ml_models
+ allows_multiple_merge_request_assignees allows_multiple_merge_request_reviewers
]
expect(described_class).to include_graphql_fields(*expected_fields)
@@ -532,6 +533,13 @@ RSpec.describe GitlabSchema.types['Project'], feature_category: :groups_and_proj
it { is_expected.to have_graphql_type(Types::IncidentManagement::TimelineEventTagType) }
end
+ describe 'mlModels field' do
+ subject { described_class.fields['mlModels'] }
+
+ it { is_expected.to have_graphql_type(Types::Ml::ModelType.connection_type) }
+ it { is_expected.to have_graphql_resolver(Resolvers::Ml::FindModelsResolver) }
+ end
+
describe 'agent_configurations' do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user) }
diff --git a/spec/graphql/types/subscription_type_spec.rb b/spec/graphql/types/subscription_type_spec.rb
index d3e5b6ffa3a..455685527c0 100644
--- a/spec/graphql/types/subscription_type_spec.rb
+++ b/spec/graphql/types/subscription_type_spec.rb
@@ -15,6 +15,7 @@ RSpec.describe GitlabSchema.types['Subscription'] do
merge_request_reviewers_updated
merge_request_merge_status_updated
merge_request_approval_state_updated
+ merge_request_diff_generated
work_item_updated
]
diff --git a/spec/graphql/types/work_items/widgets/notes_type_spec.rb b/spec/graphql/types/work_items/widgets/notes_type_spec.rb
index 3ac61a59a9c..4738197e59f 100644
--- a/spec/graphql/types/work_items/widgets/notes_type_spec.rb
+++ b/spec/graphql/types/work_items/widgets/notes_type_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe Types::WorkItems::Widgets::NotesType, feature_category: :team_planning do
it 'exposes the expected fields' do
- expected_fields = %i[discussions type]
+ expected_fields = %i[discussions type discussion_locked]
expect(described_class).to have_graphql_fields(*expected_fields)
end
diff --git a/spec/helpers/application_settings_helper_spec.rb b/spec/helpers/application_settings_helper_spec.rb
index 5dc75a60a6e..b378437c407 100644
--- a/spec/helpers/application_settings_helper_spec.rb
+++ b/spec/helpers/application_settings_helper_spec.rb
@@ -65,6 +65,7 @@ RSpec.describe ApplicationSettingsHelper do
project_download_export_limit project_export_limit project_import_limit
raw_blob_request_limit group_export_limit group_download_export_limit
group_import_limit users_get_by_id_limit search_rate_limit search_rate_limit_unauthenticated
+ members_delete_limit
])
end
diff --git a/spec/helpers/avatars_helper_spec.rb b/spec/helpers/avatars_helper_spec.rb
index 18cbbaf2008..bf6b5ec5173 100644
--- a/spec/helpers/avatars_helper_spec.rb
+++ b/spec/helpers/avatars_helper_spec.rb
@@ -478,7 +478,20 @@ RSpec.describe AvatarsHelper, feature_category: :source_code_management do
let(:resource) { build_stubbed(:group, name: 'foo') }
it 'displays group avatar' do
- is_expected.to match(%r{<span class="avatar identicon bg\d+ s32">F</span>})
+ expected_pattern = %r{
+ <div\s+
+ alt="foo"\s+
+ class="gl-avatar\s+
+ gl-avatar-s32\s+
+ gl-avatar-circle\s+
+ gl-mr-3\s+
+ gl-avatar-identicon\s+
+ gl-avatar-identicon-bg\d+"\s*>
+ \s*F\s*
+ </div>
+ }x
+
+ is_expected.to match(expected_pattern)
end
end
end
diff --git a/spec/helpers/ci/builds_helper_spec.rb b/spec/helpers/ci/builds_helper_spec.rb
index dcb775fb16d..871e1c085d4 100644
--- a/spec/helpers/ci/builds_helper_spec.rb
+++ b/spec/helpers/ci/builds_helper_spec.rb
@@ -3,28 +3,6 @@
require 'spec_helper'
RSpec.describe Ci::BuildsHelper, feature_category: :continuous_integration do
- describe '#sidebar_build_class' do
- using RSpec::Parameterized::TableSyntax
-
- where(:build_id, :current_build_id, :retried, :expected_result) do
- 1 | 1 | true | 'active retried'
- 1 | 1 | false | 'active'
- 1 | 2 | false | ''
- 1 | 2 | true | 'retried'
- end
-
- let(:build) { instance_double(Ci::Build, retried?: retried, id: build_id) }
- let(:current_build) { instance_double(Ci::Build, retried?: true, id: current_build_id ) }
-
- subject { helper.sidebar_build_class(build, current_build) }
-
- with_them do
- it 'builds sidebar html class' do
- expect(subject).to eq(expected_result)
- end
- end
- end
-
describe '#build_failed_issue_options' do
subject { helper.build_failed_issue_options }
diff --git a/spec/helpers/ci/catalog/resources_helper_spec.rb b/spec/helpers/ci/catalog/resources_helper_spec.rb
index 5c5d02ce6d8..68d56437249 100644
--- a/spec/helpers/ci/catalog/resources_helper_spec.rb
+++ b/spec/helpers/ci/catalog/resources_helper_spec.rb
@@ -36,18 +36,6 @@ RSpec.describe Ci::Catalog::ResourcesHelper, feature_category: :pipeline_composi
end
end
- describe '#can_view_namespace_catalog?' do
- subject { helper.can_view_namespace_catalog?(project) }
-
- before do
- stub_licensed_features(ci_namespace_catalog: false)
- end
-
- it 'user cannot view the Catalog in CE regardless of permissions' do
- expect(subject).to be false
- end
- end
-
describe '#js_ci_catalog_data' do
let(:project) { build(:project, :repository) }
diff --git a/spec/helpers/ci/status_helper_spec.rb b/spec/helpers/ci/status_helper_spec.rb
index 502a535e102..a00a80ac06b 100644
--- a/spec/helpers/ci/status_helper_spec.rb
+++ b/spec/helpers/ci/status_helper_spec.rb
@@ -8,19 +8,6 @@ RSpec.describe Ci::StatusHelper do
let(:success_commit) { double("Ci::Pipeline", status: 'success') }
let(:failed_commit) { double("Ci::Pipeline", status: 'failed') }
- describe "#pipeline_status_cache_key" do
- it "builds a cache key for pipeline status" do
- pipeline_status = Gitlab::Cache::Ci::ProjectPipelineStatus.new(
- build_stubbed(:project),
- pipeline_info: {
- sha: "123abc",
- status: "success"
- }
- )
- expect(helper.pipeline_status_cache_key(pipeline_status)).to eq("pipeline-status/123abc-success")
- end
- end
-
describe "#render_ci_icon" do
subject { helper.render_ci_icon("success") }
diff --git a/spec/helpers/ci/variables_helper_spec.rb b/spec/helpers/ci/variables_helper_spec.rb
index 13970dd95b4..835a7b902e7 100644
--- a/spec/helpers/ci/variables_helper_spec.rb
+++ b/spec/helpers/ci/variables_helper_spec.rb
@@ -42,23 +42,6 @@ RSpec.describe Ci::VariablesHelper, feature_category: :secrets_management do
end
end
- describe '#ci_variable_masked?' do
- let(:variable) { build_stubbed(:ci_variable, key: 'test_key', value: 'test_value', masked: true) }
-
- context 'when variable is provided and only_key_value is false' do
- it 'expect ci_variable_masked? to return true' do
- expect(helper.ci_variable_masked?(variable, false)).to eq(true)
- end
- end
-
- context 'when variable is not provided / provided and only_key_value is true' do
- it 'expect ci_variable_masked? to return false' do
- expect(helper.ci_variable_masked?(nil, true)).to eq(false)
- expect(helper.ci_variable_masked?(variable, true)).to eq(false)
- end
- end
- end
-
describe '#ci_variable_maskable_raw_regex' do
it 'converts to a javascript regex' do
expect(helper.ci_variable_maskable_raw_regex).to eq("^\\S{8,}$")
diff --git a/spec/helpers/environments_helper_spec.rb b/spec/helpers/environments_helper_spec.rb
index 14f99f144b2..2aae7b61bd1 100644
--- a/spec/helpers/environments_helper_spec.rb
+++ b/spec/helpers/environments_helper_spec.rb
@@ -3,9 +3,12 @@
require 'spec_helper'
RSpec.describe EnvironmentsHelper, feature_category: :environment_management do
+ include ActionView::Helpers::AssetUrlHelper
+
+ folder_name = 'env_folder'
let_it_be(:user) { create(:user) }
let_it_be(:project, reload: true) { create(:project, :repository) }
- let_it_be(:environment) { create(:environment, project: project) }
+ let_it_be(:environment) { create(:environment, :with_folders, folder: folder_name, project: project) }
describe '#metrics_data', feature_category: :metrics do
before do
@@ -95,4 +98,23 @@ RSpec.describe EnvironmentsHelper, feature_category: :environment_management do
expect(subject).to eq(true)
end
end
+
+ describe '#environments_folder_list_view_data' do
+ subject { helper.environments_folder_list_view_data(project, folder_name) }
+
+ before do
+ allow(helper).to receive(:current_user).and_return(user)
+ allow(helper).to receive(:can?).and_return(true)
+ end
+
+ it 'returns folder related data' do
+ expect(subject).to include(
+ 'endpoint' => folder_project_environments_path(project, folder_name, format: :json),
+ 'can_read_environment' => 'true',
+ 'project_path' => project.full_path,
+ 'folder_name' => folder_name,
+ 'help_page_path' => '/help/ci/environments/index'
+ )
+ end
+ end
end
diff --git a/spec/helpers/groups_helper_spec.rb b/spec/helpers/groups_helper_spec.rb
index 8aee337f51c..807898884a1 100644
--- a/spec/helpers/groups_helper_spec.rb
+++ b/spec/helpers/groups_helper_spec.rb
@@ -114,13 +114,13 @@ RSpec.describe GroupsHelper, feature_category: :groups_and_projects do
end
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
helper.group_title(nested_group)
end
expect do
helper.group_title(very_deep_nested_group)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
@@ -490,6 +490,7 @@ RSpec.describe GroupsHelper, feature_category: :groups_and_projects do
new_project_illustration: including('illustrations/project-create-new-sm'),
empty_projects_illustration: including('illustrations/empty-state/empty-projects-md'),
empty_subgroup_illustration: including('illustrations/empty-state/empty-subgroup-md'),
+ empty_search_illustration: including('illustrations/empty-state/empty-search-md'),
render_empty_state: 'true',
can_create_subgroups: 'true',
can_create_projects: 'true'
diff --git a/spec/helpers/ide_helper_spec.rb b/spec/helpers/ide_helper_spec.rb
index d5d7f8f72b3..99ef0998fda 100644
--- a/spec/helpers/ide_helper_spec.rb
+++ b/spec/helpers/ide_helper_spec.rb
@@ -61,39 +61,6 @@ RSpec.describe IdeHelper, feature_category: :web_ide do
end
end
- context 'with environments guidance experiment', :experiment do
- before do
- stub_experiments(in_product_guidance_environments_webide: :candidate)
- end
-
- context 'when project has no enviornments' do
- it 'enables environment guidance' do
- expect(helper.ide_data(project: project, fork_info: fork_info, params: params))
- .to include('enable-environments-guidance' => 'true')
- end
-
- context 'and the callout has been dismissed' do
- it 'disables environment guidance' do
- callout = create(:callout, feature_name: :web_ide_ci_environments_guidance, user: user)
- callout.update!(dismissed_at: Time.now - 1.week)
- allow(helper).to receive(:current_user).and_return(User.find(user.id))
-
- expect(helper.ide_data(project: project, fork_info: fork_info, params: params))
- .to include('enable-environments-guidance' => 'false')
- end
- end
- end
-
- context 'when the project has environments' do
- it 'disables environment guidance' do
- create(:environment, project: project)
-
- expect(helper.ide_data(project: project, fork_info: fork_info, params: params))
- .to include('enable-environments-guidance' => 'false')
- end
- end
- end
-
context 'with vscode_web_ide=true' do
let(:base_data) do
{
diff --git a/spec/helpers/listbox_helper_spec.rb b/spec/helpers/listbox_helper_spec.rb
index bae9c40aa02..ff386ec1f3d 100644
--- a/spec/helpers/listbox_helper_spec.rb
+++ b/spec/helpers/listbox_helper_spec.rb
@@ -31,7 +31,6 @@ RSpec.describe ListboxHelper do
dropdown
b-dropdown
gl-dropdown
- btn-group
js-redirect-listbox
])
end
diff --git a/spec/helpers/markup_helper_spec.rb b/spec/helpers/markup_helper_spec.rb
index 22d1113ee8c..831f41cde0a 100644
--- a/spec/helpers/markup_helper_spec.rb
+++ b/spec/helpers/markup_helper_spec.rb
@@ -461,7 +461,7 @@ RSpec.describe MarkupHelper, feature_category: :team_planning do
it 'displays the first line of a code block' do
object = create_object("```\nCode block\nwith two lines\n```")
- expected = %r{<pre.+><code><span class="line">Code block\.\.\.</span></code></pre>}
+ expected = %r{<pre.+><code><span class="line" lang="plaintext">Code block\.\.\.</span></code></pre>}
expect(helper.first_line_in_markdown(object, attribute, 100, is_todo: true, project: project)).to match(expected)
end
@@ -476,8 +476,8 @@ RSpec.describe MarkupHelper, feature_category: :team_planning do
it 'preserves code color scheme' do
object = create_object("```ruby\ndef test\n 'hello world'\nend\n```")
- expected = "\n<pre class=\"code highlight js-syntax-highlight language-ruby\">" \
- "<code><span class=\"line\"><span class=\"k\">def</span> <span class=\"nf\">test</span>...</span>" \
+ expected = "\n<pre class=\"code highlight js-syntax-highlight language-ruby\" lang=\"ruby\">" \
+ "<code><span class=\"line\" lang=\"ruby\"><span class=\"k\">def</span> <span class=\"nf\">test</span>...</span>" \
"</code></pre>\n"
expect(helper.first_line_in_markdown(object, attribute, 150, is_todo: true, project: project)).to eq(expected)
diff --git a/spec/helpers/nav_helper_spec.rb b/spec/helpers/nav_helper_spec.rb
index 9a0f72838fb..e8b68d80650 100644
--- a/spec/helpers/nav_helper_spec.rb
+++ b/spec/helpers/nav_helper_spec.rb
@@ -134,68 +134,4 @@ RSpec.describe NavHelper, feature_category: :navigation do
it { is_expected.to eq(true) }
end
end
-
- describe '#show_super_sidebar?' do
- shared_examples 'show_super_sidebar is supposed to' do
- before do
- user.update!(use_new_navigation: user_preference)
- end
-
- context 'when user has not interacted with the new nav toggle yet' do
- let(:user_preference) { nil }
-
- specify { expect(subject).to eq true }
- end
-
- context 'when user has new nav disabled' do
- let(:user_preference) { false }
-
- specify { expect(subject).to eq true }
- end
-
- context 'when user has new nav enabled' do
- let(:user_preference) { true }
-
- specify { expect(subject).to eq true }
- end
- end
-
- context 'without a user' do
- context 'with current_user (nil) as a default' do
- before do
- allow(helper).to receive(:current_user).and_return(nil)
- end
-
- subject { helper.show_super_sidebar? }
-
- specify { expect(subject).to eq true }
- end
-
- context 'with nil provided as an argument' do
- subject { helper.show_super_sidebar?(nil) }
-
- specify { expect(subject).to eq true }
- end
- end
-
- context 'when user is signed-in' do
- let_it_be(:user) { create(:user) }
-
- context 'with current_user as a default' do
- before do
- allow(helper).to receive(:current_user).and_return(user)
- end
-
- subject { helper.show_super_sidebar? }
-
- it_behaves_like 'show_super_sidebar is supposed to'
- end
-
- context 'with user provided as an argument' do
- subject { helper.show_super_sidebar?(user) }
-
- it_behaves_like 'show_super_sidebar is supposed to'
- end
- end
- end
end
diff --git a/spec/helpers/organizations/organization_helper_spec.rb b/spec/helpers/organizations/organization_helper_spec.rb
index 594013d515b..0f2f4ed1b54 100644
--- a/spec/helpers/organizations/organization_helper_spec.rb
+++ b/spec/helpers/organizations/organization_helper_spec.rb
@@ -3,7 +3,8 @@
require 'spec_helper'
RSpec.describe Organizations::OrganizationHelper, feature_category: :cell do
- let_it_be(:organization) { build_stubbed(:organization) }
+ let_it_be(:organization_detail) { build_stubbed(:organization_detail, description_html: '<em>description</em>') }
+ let_it_be(:organization) { organization_detail.organization }
let_it_be(:new_group_path) { '/groups/new' }
let_it_be(:new_project_path) { '/projects/new' }
let_it_be(:organizations_empty_state_svg_path) { 'illustrations/empty-state/empty-organizations-md.svg' }
@@ -11,6 +12,7 @@ RSpec.describe Organizations::OrganizationHelper, feature_category: :cell do
let_it_be(:root_url) { 'http://127.0.0.1:3000/' }
let_it_be(:groups_empty_state_svg_path) { 'illustrations/empty-state/empty-groups-md.svg' }
let_it_be(:projects_empty_state_svg_path) { 'illustrations/empty-state/empty-projects-md.svg' }
+ let_it_be(:preview_markdown_organizations_path) { '/-/organizations/preview_markdown' }
before do
allow(helper).to receive(:new_group_path).and_return(new_group_path)
@@ -21,6 +23,7 @@ RSpec.describe Organizations::OrganizationHelper, feature_category: :cell do
allow(helper).to receive(:root_url).and_return(root_url)
allow(helper).to receive(:image_path).with(groups_empty_state_svg_path).and_return(groups_empty_state_svg_path)
allow(helper).to receive(:image_path).with(projects_empty_state_svg_path).and_return(projects_empty_state_svg_path)
+ allow(helper).to receive(:preview_markdown_organizations_path).and_return(preview_markdown_organizations_path)
end
describe '#organization_show_app_data' do
@@ -31,13 +34,19 @@ RSpec.describe Organizations::OrganizationHelper, feature_category: :cell do
end
it 'returns expected json' do
+ expect(organization).to receive(:avatar_url).with(size: 128).and_return('avatar.jpg')
expect(
Gitlab::Json.parse(
helper.organization_show_app_data(organization)
)
).to eq(
{
- 'organization' => { 'id' => organization.id, 'name' => organization.name },
+ 'organization' => {
+ 'id' => organization.id,
+ 'name' => organization.name,
+ 'description_html' => organization.description_html,
+ 'avatar_url' => 'avatar.jpg'
+ },
'groups_and_projects_organization_path' => '/-/organizations/default/groups_and_projects',
'new_group_path' => new_group_path,
'new_project_path' => new_project_path,
@@ -86,7 +95,8 @@ RSpec.describe Organizations::OrganizationHelper, feature_category: :cell do
expect(Gitlab::Json.parse(helper.organization_new_app_data)).to eq(
{
'organizations_path' => organizations_path,
- 'root_url' => root_url
+ 'root_url' => root_url,
+ 'preview_markdown_path' => preview_markdown_organizations_path
}
)
end
@@ -107,15 +117,19 @@ RSpec.describe Organizations::OrganizationHelper, feature_category: :cell do
describe '#organization_settings_general_app_data' do
it 'returns expected json' do
+ expect(organization).to receive(:avatar_url).with(size: 192).and_return('avatar.jpg')
expect(Gitlab::Json.parse(helper.organization_settings_general_app_data(organization))).to eq(
{
'organization' => {
'id' => organization.id,
'name' => organization.name,
- 'path' => organization.path
+ 'path' => organization.path,
+ 'description' => organization.description,
+ 'avatar' => 'avatar.jpg'
},
'organizations_path' => organizations_path,
- 'root_url' => root_url
+ 'root_url' => root_url,
+ 'preview_markdown_path' => preview_markdown_organizations_path
}
)
end
diff --git a/spec/helpers/search_helper_spec.rb b/spec/helpers/search_helper_spec.rb
index e1c0aafc3c3..bad30b5033d 100644
--- a/spec/helpers/search_helper_spec.rb
+++ b/spec/helpers/search_helper_spec.rb
@@ -656,12 +656,12 @@ RSpec.describe SearchHelper, feature_category: :global_search do
@project = create(:project)
description = FFaker::Lorem.characters(210)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) { search_md_sanitize(description) }.count
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) { search_md_sanitize(description) }
issues = create_list(:issue, 4, project: @project)
description_with_issues = description + ' ' + issues.map { |issue| "##{issue.iid}" }.join(' ')
- expect { search_md_sanitize(description_with_issues) }.not_to exceed_all_query_limit(control_count)
+ expect { search_md_sanitize(description_with_issues) }.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/helpers/sessions_helper_spec.rb b/spec/helpers/sessions_helper_spec.rb
index 366032100de..adf7b92127e 100644
--- a/spec/helpers/sessions_helper_spec.rb
+++ b/spec/helpers/sessions_helper_spec.rb
@@ -3,42 +3,6 @@
require 'spec_helper'
RSpec.describe SessionsHelper, feature_category: :system_access do
- describe '#recently_confirmed_com?' do
- subject { helper.recently_confirmed_com? }
-
- context 'when on .com' do
- before do
- allow(Gitlab).to receive(:com?).and_return(true)
- end
-
- it 'when flash notice is empty it is false' do
- flash[:notice] = nil
- expect(subject).to be false
- end
-
- it 'when flash notice is anything it is false' do
- flash[:notice] = 'hooray!'
- expect(subject).to be false
- end
-
- it 'when flash notice is devise confirmed message it is true' do
- flash[:notice] = t(:confirmed, scope: [:devise, :confirmations])
- expect(subject).to be true
- end
- end
-
- context 'when not on .com' do
- before do
- allow(Gitlab).to receive(:com?).and_return(false)
- end
-
- it 'when flash notice is devise confirmed message it is false' do
- flash[:notice] = t(:confirmed, scope: [:devise, :confirmations])
- expect(subject).to be false
- end
- end
- end
-
describe '#unconfirmed_email?' do
it 'returns true when the flash alert contains a devise failure unconfirmed message' do
flash[:alert] = t(:unconfirmed, scope: [:devise, :failure])
diff --git a/spec/helpers/sidebars_helper_spec.rb b/spec/helpers/sidebars_helper_spec.rb
index 421b1c178aa..0f1484f49db 100644
--- a/spec/helpers/sidebars_helper_spec.rb
+++ b/spec/helpers/sidebars_helper_spec.rb
@@ -135,6 +135,13 @@ RSpec.describe SidebarsHelper, feature_category: :navigation do
name: user.name,
username: user.username,
admin_url: admin_root_url,
+ admin_mode: {
+ admin_mode_feature_enabled: true,
+ admin_mode_active: false,
+ enter_admin_mode_url: new_admin_session_path,
+ leave_admin_mode_url: destroy_admin_session_path,
+ user_is_admin: false
+ },
avatar_url: user.avatar_url,
has_link_to_profile: helper.current_user_menu?(:profile),
link_to_profile: user_path(user),
@@ -432,15 +439,6 @@ RSpec.describe SidebarsHelper, feature_category: :navigation do
{ title: s_('Navigation|Admin Area'), link: '/admin', icon: 'admin' }
end
- let_it_be(:enter_admin_mode_link) do
- { title: s_('Navigation|Enter admin mode'), link: '/admin/session/new', icon: 'lock' }
- end
-
- let_it_be(:leave_admin_mode_link) do
- { title: s_('Navigation|Leave admin mode'), link: '/admin/session/destroy', icon: 'lock-open',
- data_method: 'post' }
- end
-
subject do
helper.super_sidebar_context(user, group: nil, project: nil, panel: panel, panel_type: panel_type)
end
@@ -478,8 +476,7 @@ RSpec.describe SidebarsHelper, feature_category: :navigation do
it 'returns public links, admin area and leave admin mode links' do
expect(subject[:context_switcher_links]).to eq([
*public_links_for_user,
- admin_area_link,
- leave_admin_mode_link
+ admin_area_link
])
end
end
@@ -487,8 +484,7 @@ RSpec.describe SidebarsHelper, feature_category: :navigation do
context 'when admin mode is off' do
it 'returns public links and enter admin mode link' do
expect(subject[:context_switcher_links]).to eq([
- *public_links_for_user,
- enter_admin_mode_link
+ *public_links_for_user
])
end
end
diff --git a/spec/helpers/time_zone_helper_spec.rb b/spec/helpers/time_zone_helper_spec.rb
index e8d96ee0700..95acb2ee9d9 100644
--- a/spec/helpers/time_zone_helper_spec.rb
+++ b/spec/helpers/time_zone_helper_spec.rb
@@ -93,6 +93,29 @@ RSpec.describe TimeZoneHelper, :aggregate_failures do
end
end
+ describe '#timezone_data_with_unique_identifiers' do
+ subject { helper.timezone_data_with_unique_identifiers }
+
+ before do
+ allow(helper).to receive(:timezone_data).and_return([
+ { identifier: 'Europe/London', name: 'London' },
+ { identifier: 'Europe/London', name: 'Edinburgh' },
+ { identifier: 'Europe/Berlin', name: 'Berlin' },
+ { identifier: 'Europe/London', name: 'Hogwarts' }
+
+ ])
+ end
+
+ let(:expected) do
+ [
+ { identifier: 'Europe/London', name: 'Edinburgh, Hogwarts, London' },
+ { identifier: 'Europe/Berlin', name: 'Berlin' }
+ ]
+ end
+
+ it { is_expected.to eq(expected) }
+ end
+
describe '#local_time' do
let_it_be(:timezone) { 'America/Los_Angeles' }
diff --git a/spec/helpers/webpack_helper_spec.rb b/spec/helpers/webpack_helper_spec.rb
index 8cbc4db9108..675fd0c0f04 100644
--- a/spec/helpers/webpack_helper_spec.rb
+++ b/spec/helpers/webpack_helper_spec.rb
@@ -6,6 +6,10 @@ RSpec.describe WebpackHelper do
let(:source) { 'foo.js' }
let(:asset_path) { "/assets/webpack/#{source}" }
+ before do
+ allow(helper).to receive(:vite_enabled?).and_return(false)
+ end
+
describe '#prefetch_link_tag' do
it 'returns prefetch link tag' do
expect(helper.prefetch_link_tag(source)).to eq("<link rel=\"prefetch\" href=\"/#{source}\">")
@@ -40,7 +44,6 @@ RSpec.describe WebpackHelper do
before do
stub_rails_env('development')
- stub_feature_flags(vite: true)
allow(helper).to receive(:vite_javascript_tag).and_return('vite')
allow(helper).to receive(:vite_enabled?).and_return(true)
diff --git a/spec/initializers/session_store_spec.rb b/spec/initializers/session_store_spec.rb
index a94ce327a92..c9333d022dd 100644
--- a/spec/initializers/session_store_spec.rb
+++ b/spec/initializers/session_store_spec.rb
@@ -5,6 +5,10 @@ require 'spec_helper'
RSpec.describe 'Session initializer for GitLab' do
subject { Gitlab::Application.config }
+ before do
+ allow(subject).to receive_message_chain(:middleware, :insert_after)
+ end
+
let(:load_session_store) do
load Rails.root.join('config/initializers/session_store.rb')
end
diff --git a/spec/lib/api/entities/bulk_imports/entity_failure_spec.rb b/spec/lib/api/entities/bulk_imports/entity_failure_spec.rb
index 217e6c11630..20563bfb685 100644
--- a/spec/lib/api/entities/bulk_imports/entity_failure_spec.rb
+++ b/spec/lib/api/entities/bulk_imports/entity_failure_spec.rb
@@ -19,10 +19,10 @@ RSpec.describe API::Entities::BulkImports::EntityFailure, feature_category: :imp
end
describe 'exception message' do
- it 'truncates exception message to 72 characters' do
- failure.update!(exception_message: 'a' * 100)
+ it 'truncates exception message to 255 characters' do
+ failure.update!(exception_message: 'a' * 500)
- expect(subject[:exception_message].length).to eq(72)
+ expect(subject[:exception_message].length).to eq(255)
end
it 'removes paths from the message' do
@@ -30,5 +30,13 @@ RSpec.describe API::Entities::BulkImports::EntityFailure, feature_category: :imp
expect(subject[:exception_message]).to eq('Test [FILTERED]')
end
+
+ it 'removes long paths without clipping the message' do
+ exception_message = "Test #{'/abc' * 300} #{'a' * 500}"
+ failure.update!(exception_message: exception_message)
+ filtered_message = "Test [FILTERED] #{'a' * 500}"
+
+ expect(subject[:exception_message]).to eq(filtered_message.truncate(255))
+ end
end
end
diff --git a/spec/lib/api/entities/diff_spec.rb b/spec/lib/api/entities/diff_spec.rb
index 27d9ed44c98..535567d4d8d 100644
--- a/spec/lib/api/entities/diff_spec.rb
+++ b/spec/lib/api/entities/diff_spec.rb
@@ -23,7 +23,8 @@ RSpec.describe ::API::Entities::Diff, feature_category: :source_code_management
b_mode: diff.b_mode,
new_file: diff.new_file?,
renamed_file: diff.renamed_file?,
- deleted_file: diff.deleted_file?
+ deleted_file: diff.deleted_file?,
+ generated_file: diff.generated?
}
)
end
diff --git a/spec/lib/api/entities/group_spec.rb b/spec/lib/api/entities/group_spec.rb
new file mode 100644
index 00000000000..270ac323c7d
--- /dev/null
+++ b/spec/lib/api/entities/group_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe API::Entities::Group, feature_category: :groups_and_projects do
+ let_it_be(:group) do
+ base_group = create(:group) { |g| create(:project_statistics, namespace_id: g.id) }
+ Group.with_statistics.find(base_group.id)
+ end
+
+ subject(:json) { described_class.new(group, { with_custom_attributes: true, statistics: true }).as_json }
+
+ it 'returns expected data' do
+ expect(json.keys).to(
+ include(
+ :organization_id, :path, :description, :visibility, :share_with_group_lock, :require_two_factor_authentication,
+ :two_factor_grace_period, :project_creation_level, :auto_devops_enabled,
+ :subgroup_creation_level, :emails_disabled, :emails_enabled, :lfs_enabled, :default_branch_protection,
+ :default_branch_protection_defaults, :avatar_url, :request_access_enabled, :full_name, :full_path, :created_at,
+ :parent_id, :organization_id, :shared_runners_setting, :custom_attributes, :statistics
+ )
+ )
+ end
+end
diff --git a/spec/lib/api/entities/merge_request_basic_spec.rb b/spec/lib/api/entities/merge_request_basic_spec.rb
index 0cf0a57fa87..621d57b49cd 100644
--- a/spec/lib/api/entities/merge_request_basic_spec.rb
+++ b/spec/lib/api/entities/merge_request_basic_spec.rb
@@ -41,7 +41,7 @@ RSpec.describe ::API::Entities::MergeRequestBasic, feature_category: :code_revie
# stub the `head_commit_sha` as it will trigger a
# backward compatibility query that is out-of-scope
# for this test whenever it is `nil`
- allow_any_instance_of(MergeRequestDiff).to receive(:head_commit_sha).and_return(Gitlab::Git::BLANK_SHA)
+ allow_any_instance_of(MergeRequestDiff).to receive(:head_commit_sha).and_return(Gitlab::Git::SHA1_BLANK_SHA)
query = scope.all
batch = ActiveRecord::QueryRecorder.new do
diff --git a/spec/lib/api/helpers_spec.rb b/spec/lib/api/helpers_spec.rb
index 21b3b8e6927..d1dee70e34d 100644
--- a/spec/lib/api/helpers_spec.rb
+++ b/spec/lib/api/helpers_spec.rb
@@ -406,6 +406,37 @@ RSpec.describe API::Helpers, feature_category: :shared do
end
end
+ describe '#find_organization!' do
+ let_it_be(:organization) { create(:organization) }
+ let_it_be(:user) { create(:user) }
+
+ before do
+ allow(helper).to receive(:current_user).and_return(user)
+ allow(helper).to receive(:initial_current_user).and_return(user)
+ end
+
+ context 'when user is authenticated' do
+ it 'returns requested organization' do
+ expect(helper.find_organization!(organization.id)).to eq(organization)
+ end
+ end
+
+ context 'when user is not authenticated' do
+ let(:user) { nil }
+
+ it 'returns requested organization' do
+ expect(helper.find_organization!(organization.id)).to eq(organization)
+ end
+ end
+
+ context 'when organization does not exist' do
+ it 'returns nil' do
+ expect(helper).to receive(:render_api_error!).with('404 Organization Not Found', 404)
+ expect(helper.find_organization!(non_existing_record_id)).to be_nil
+ end
+ end
+ end
+
describe '#find_group!' do
let_it_be(:group) { create(:group, :public) }
let_it_be(:user) { create(:user) }
@@ -457,7 +488,7 @@ RSpec.describe API::Helpers, feature_category: :shared do
end
end
- context 'support for IDs and paths as arguments' do
+ context 'with support for IDs and paths as arguments' do
let_it_be(:group) { create(:group) }
let(:user) { group.first_owner }
@@ -505,6 +536,34 @@ RSpec.describe API::Helpers, feature_category: :shared do
end
end
+ context 'with support for organization as an argument' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:organization) { create(:organization) }
+
+ before do
+ allow(helper).to receive(:current_user).and_return(group.first_owner)
+ allow(helper).to receive(:job_token_authentication?).and_return(false)
+ allow(helper).to receive(:authenticate_non_public?).and_return(false)
+ end
+
+ subject { helper.find_group!(group.id, organization: organization) }
+
+ context 'when group exists in the organization' do
+ before do
+ group.update!(organization: organization)
+ end
+
+ it { is_expected.to eq(group) }
+ end
+
+ context 'when group does not exist in the organization' do
+ it 'returns nil' do
+ expect(helper).to receive(:render_api_error!).with('404 Group Not Found', 404)
+ is_expected.to be_nil
+ end
+ end
+ end
+
describe '#find_group_by_full_path!' do
let_it_be(:group) { create(:group, :public) }
let_it_be(:user) { create(:user) }
@@ -674,23 +733,15 @@ RSpec.describe API::Helpers, feature_category: :shared do
let(:send_authorized_project_scope) { helper.authorized_project_scope?(project) }
- where(:job_token_authentication, :route_setting, :feature_flag, :same_job_project, :expected_result) do
- false | false | false | false | true
- false | false | false | true | true
- false | false | true | false | true
- false | false | true | true | true
- false | true | false | false | true
- false | true | false | true | true
- false | true | true | false | true
- false | true | true | true | true
- true | false | false | false | true
- true | false | false | true | true
- true | false | true | false | true
- true | false | true | true | true
- true | true | false | false | false
- true | true | false | true | false
- true | true | true | false | false
- true | true | true | true | true
+ where(:job_token_authentication, :route_setting, :same_job_project, :expected_result) do
+ false | false | false | true
+ false | false | true | true
+ false | true | false | true
+ false | true | true | true
+ true | false | false | true
+ true | false | true | true
+ true | true | false | false
+ true | true | true | true
end
with_them do
@@ -699,9 +750,6 @@ RSpec.describe API::Helpers, feature_category: :shared do
allow(helper).to receive(:route_authentication_setting).and_return(job_token_scope: route_setting ? :project : nil)
allow(helper).to receive(:current_authenticated_job).and_return(job)
allow(job).to receive(:project).and_return(same_job_project ? project : other_project)
-
- stub_feature_flags(ci_job_token_scope: false)
- stub_feature_flags(ci_job_token_scope: project) if feature_flag
end
it 'returns the expected result' do
diff --git a/spec/lib/api/ml/mlflow/api_helpers_spec.rb b/spec/lib/api/ml/mlflow/api_helpers_spec.rb
index 3e7a0187d86..f45fccfba4c 100644
--- a/spec/lib/api/ml/mlflow/api_helpers_spec.rb
+++ b/spec/lib/api/ml/mlflow/api_helpers_spec.rb
@@ -71,4 +71,56 @@ RSpec.describe API::Ml::Mlflow::ApiHelpers, feature_category: :mlops do
end
end
end
+
+ describe '#gitlab_tags' do
+ describe 'when tags param is not supplied' do
+ let(:params) { {} }
+
+ it 'returns nil' do
+ expect(gitlab_tags).to be nil
+ end
+ end
+
+ describe 'when tags param is supplied' do
+ let(:params) { { tags: input } }
+
+ using RSpec::Parameterized::TableSyntax
+
+ subject { gitlab_tags }
+
+ where(:input, :output) do
+ [] | nil
+ [{}] | {}
+ [{ key: 'foo', value: 'bar' }] | {}
+ [{ key: "gitlab.version", value: "1.2.3" }] | { "version" => "1.2.3" }
+ [{ key: "foo", value: "bar" }, { key: "gitlab.foo", value: "baz" }] | { "foo" => "baz" }
+ end
+ with_them do
+ it 'is correct' do
+ is_expected.to eq(output)
+ end
+ end
+ end
+ end
+
+ describe '#custom_version' do
+ using RSpec::Parameterized::TableSyntax
+
+ subject { custom_version }
+
+ where(:input, :output) do
+ [] | nil
+ [{}] | nil
+ [{ key: 'foo', value: 'bar' }] | nil
+ [{ key: "gitlab.version", value: "1.2.3" }] | "1.2.3"
+ [{ key: "foo", value: "bar" }, { key: "gitlab.foo", value: "baz" }] | nil
+ end
+ with_them do
+ let(:params) { { tags: input } }
+
+ it 'is correct' do
+ is_expected.to eq(output)
+ end
+ end
+ end
end
diff --git a/spec/lib/atlassian/jira_connect/client_spec.rb b/spec/lib/atlassian/jira_connect/client_spec.rb
index a692d76da77..e1159b9fab2 100644
--- a/spec/lib/atlassian/jira_connect/client_spec.rb
+++ b/spec/lib/atlassian/jira_connect/client_spec.rb
@@ -433,16 +433,16 @@ RSpec.describe Atlassian::JiraConnect::Client, feature_category: :integrations d
end
it 'avoids N+1 database queries' do
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
subject.send(:store_dev_info, project: project, merge_requests: merge_requests)
- end.count
+ end
merge_requests << create(:merge_request, :unique_branches, source_project: project)
expect do
subject.send(:store_dev_info, project: project,
merge_requests: merge_requests)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
diff --git a/spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb b/spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb
index 0ed320e863c..15cb4994d46 100644
--- a/spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb
+++ b/spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb
@@ -24,9 +24,9 @@ RSpec.describe Atlassian::JiraConnect::Serializers::PullRequestEntity, feature_c
subject { described_class.represent(merge_requests, user_notes_count: user_notes_count).as_json }
it 'avoids N+1 database queries' do
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
described_class.represent(merge_requests, user_notes_count: user_notes_count)
- end.count
+ end
merge_requests << create(:merge_request, :unique_branches)
@@ -35,7 +35,7 @@ RSpec.describe Atlassian::JiraConnect::Serializers::PullRequestEntity, feature_c
records: merge_requests, associations: { merge_request_reviewers: :reviewer }
).call
- expect { subject }.not_to exceed_query_limit(control_count)
+ expect { subject }.not_to exceed_query_limit(control)
end
it 'uses counts from user_notes_count' do
diff --git a/spec/lib/backup/database_model_spec.rb b/spec/lib/backup/database_model_spec.rb
deleted file mode 100644
index 9fab5cbc1c0..00000000000
--- a/spec/lib/backup/database_model_spec.rb
+++ /dev/null
@@ -1,185 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Backup::DatabaseModel, :reestablished_active_record_base, feature_category: :backup_restore do
- using RSpec::Parameterized::TableSyntax
-
- let(:gitlab_database_name) { 'main' }
-
- describe '#connection' do
- subject(:connection) { described_class.new(gitlab_database_name).connection }
-
- it 'an instance of a ActiveRecord::Base.connection' do
- connection.is_a? ActiveRecord::Base.connection.class # rubocop:disable Database/MultipleDatabases -- We actually need an ActiveRecord::Base here
- end
- end
-
- describe '#config' do
- let(:application_config) do
- {
- adapter: 'postgresql',
- host: 'some_host',
- port: '5432'
- }
- end
-
- subject(:config) { described_class.new(gitlab_database_name).config }
-
- before do
- allow(
- Gitlab::Database.database_base_models_with_gitlab_shared[gitlab_database_name].connection_db_config
- ).to receive(:configuration_hash).and_return(application_config)
- end
-
- shared_examples 'no configuration is overridden' do
- it 'ActiveRecord backup configuration is expected to equal application configuration' do
- expect(config[:activerecord]).to eq(application_config)
- end
-
- it 'PostgreSQL ENV is expected to equal application configuration' do
- expect(config[:pg_env]).to eq(
- {
- 'PGHOST' => application_config[:host],
- 'PGPORT' => application_config[:port]
- }
- )
- end
- end
-
- shared_examples 'environment variables override application configuration' do
- let(:active_record_key) { described_class::SUPPORTED_OVERRIDES.invert[pg_env] }
-
- it 'ActiveRecord backup configuration overrides application configuration' do
- expect(config[:activerecord]).to eq(application_config.merge(active_record_key => overridden_value))
- end
-
- it 'PostgreSQL ENV overrides application configuration' do
- expect(config[:pg_env]).to include({ pg_env => overridden_value })
- end
- end
-
- context 'when no GITLAB_BACKUP_PG* variables are set' do
- it_behaves_like 'no configuration is overridden'
- end
-
- context 'when generic database configuration is overridden' do
- where(:env_variable, :overridden_value) do
- 'GITLAB_BACKUP_PGHOST' | 'test.invalid.'
- 'GITLAB_BACKUP_PGUSER' | 'some_user'
- 'GITLAB_BACKUP_PGPORT' | '1543'
- 'GITLAB_BACKUP_PGPASSWORD' | 'secret'
- 'GITLAB_BACKUP_PGSSLMODE' | 'allow'
- 'GITLAB_BACKUP_PGSSLKEY' | 'some_key'
- 'GITLAB_BACKUP_PGSSLCERT' | '/path/to/cert'
- 'GITLAB_BACKUP_PGSSLROOTCERT' | '/path/to/root/cert'
- 'GITLAB_BACKUP_PGSSLCRL' | '/path/to/crl'
- 'GITLAB_BACKUP_PGSSLCOMPRESSION' | '1'
- 'GITLAB_OVERRIDE_PGHOST' | 'test.invalid.'
- 'GITLAB_OVERRIDE_PGUSER' | 'some_user'
- 'GITLAB_OVERRIDE_PGPORT' | '1543'
- 'GITLAB_OVERRIDE_PGPASSWORD' | 'secret'
- 'GITLAB_OVERRIDE_PGSSLMODE' | 'allow'
- 'GITLAB_OVERRIDE_PGSSLKEY' | 'some_key'
- 'GITLAB_OVERRIDE_PGSSLCERT' | '/path/to/cert'
- 'GITLAB_OVERRIDE_PGSSLROOTCERT' | '/path/to/root/cert'
- 'GITLAB_OVERRIDE_PGSSLCRL' | '/path/to/crl'
- 'GITLAB_OVERRIDE_PGSSLCOMPRESSION' | '1'
- end
-
- with_them do
- let(:pg_env) { env_variable[/GITLAB_(BACKUP|OVERRIDE)_(\w+)/, 2] }
-
- before do
- stub_env(env_variable, overridden_value)
- end
-
- it_behaves_like 'environment variables override application configuration'
- end
- end
-
- context 'when specific database configuration is overridden' do
- context 'and environment variables are for the current database name' do
- where(:env_variable, :overridden_value) do
- 'GITLAB_BACKUP_MAIN_PGHOST' | 'test.invalid.'
- 'GITLAB_BACKUP_MAIN_PGUSER' | 'some_user'
- 'GITLAB_BACKUP_MAIN_PGPORT' | '1543'
- 'GITLAB_BACKUP_MAIN_PGPASSWORD' | 'secret'
- 'GITLAB_BACKUP_MAIN_PGSSLMODE' | 'allow'
- 'GITLAB_BACKUP_MAIN_PGSSLKEY' | 'some_key'
- 'GITLAB_BACKUP_MAIN_PGSSLCERT' | '/path/to/cert'
- 'GITLAB_BACKUP_MAIN_PGSSLROOTCERT' | '/path/to/root/cert'
- 'GITLAB_BACKUP_MAIN_PGSSLCRL' | '/path/to/crl'
- 'GITLAB_BACKUP_MAIN_PGSSLCOMPRESSION' | '1'
- 'GITLAB_OVERRIDE_MAIN_PGHOST' | 'test.invalid.'
- 'GITLAB_OVERRIDE_MAIN_PGUSER' | 'some_user'
- 'GITLAB_OVERRIDE_MAIN_PGPORT' | '1543'
- 'GITLAB_OVERRIDE_MAIN_PGPASSWORD' | 'secret'
- 'GITLAB_OVERRIDE_MAIN_PGSSLMODE' | 'allow'
- 'GITLAB_OVERRIDE_MAIN_PGSSLKEY' | 'some_key'
- 'GITLAB_OVERRIDE_MAIN_PGSSLCERT' | '/path/to/cert'
- 'GITLAB_OVERRIDE_MAIN_PGSSLROOTCERT' | '/path/to/root/cert'
- 'GITLAB_OVERRIDE_MAIN_PGSSLCRL' | '/path/to/crl'
- 'GITLAB_OVERRIDE_MAIN_PGSSLCOMPRESSION' | '1'
- end
-
- with_them do
- let(:pg_env) { env_variable[/GITLAB_(BACKUP|OVERRIDE)_MAIN_(\w+)/, 2] }
-
- before do
- stub_env(env_variable, overridden_value)
- end
-
- it_behaves_like 'environment variables override application configuration'
- end
- end
-
- context 'and environment variables are for another database' do
- where(:env_variable, :overridden_value) do
- 'GITLAB_BACKUP_CI_PGHOST' | 'test.invalid.'
- 'GITLAB_BACKUP_CI_PGUSER' | 'some_user'
- 'GITLAB_BACKUP_CI_PGPORT' | '1543'
- 'GITLAB_BACKUP_CI_PGPASSWORD' | 'secret'
- 'GITLAB_BACKUP_CI_PGSSLMODE' | 'allow'
- 'GITLAB_BACKUP_CI_PGSSLKEY' | 'some_key'
- 'GITLAB_BACKUP_CI_PGSSLCERT' | '/path/to/cert'
- 'GITLAB_BACKUP_CI_PGSSLROOTCERT' | '/path/to/root/cert'
- 'GITLAB_BACKUP_CI_PGSSLCRL' | '/path/to/crl'
- 'GITLAB_BACKUP_CI_PGSSLCOMPRESSION' | '1'
- 'GITLAB_OVERRIDE_CI_PGHOST' | 'test.invalid.'
- 'GITLAB_OVERRIDE_CI_PGUSER' | 'some_user'
- 'GITLAB_OVERRIDE_CI_PGPORT' | '1543'
- 'GITLAB_OVERRIDE_CI_PGPASSWORD' | 'secret'
- 'GITLAB_OVERRIDE_CI_PGSSLMODE' | 'allow'
- 'GITLAB_OVERRIDE_CI_PGSSLKEY' | 'some_key'
- 'GITLAB_OVERRIDE_CI_PGSSLCERT' | '/path/to/cert'
- 'GITLAB_OVERRIDE_CI_PGSSLROOTCERT' | '/path/to/root/cert'
- 'GITLAB_OVERRIDE_CI_PGSSLCRL' | '/path/to/crl'
- 'GITLAB_OVERRIDE_CI_PGSSLCOMPRESSION' | '1'
- end
-
- with_them do
- let(:pg_env) { env_variable[/GITLAB_(BACKUP|OVERRIDE)_CI_(\w+)/, 1] }
-
- before do
- stub_env(env_variable, overridden_value)
- end
-
- it_behaves_like 'no configuration is overridden'
- end
- end
-
- context 'when both GITLAB_BACKUP_PGUSER and GITLAB_BACKUP_MAIN_PGUSER variable are present' do
- before do
- stub_env('GITLAB_BACKUP_PGUSER', 'generic_user')
- stub_env('GITLAB_BACKUP_MAIN_PGUSER', 'specfic_user')
- end
-
- it 'prefers more specific GITLAB_BACKUP_MAIN_PGUSER' do
- expect(config.dig(:activerecord, :username)).to eq('specfic_user')
- expect(config.dig(:pg_env, 'PGUSER')).to eq('specfic_user')
- end
- end
- end
- end
-end
diff --git a/spec/lib/backup/repositories_spec.rb b/spec/lib/backup/repositories_spec.rb
index 024f6c5db96..679be62393e 100644
--- a/spec/lib/backup/repositories_spec.rb
+++ b/spec/lib/backup/repositories_spec.rb
@@ -68,20 +68,20 @@ RSpec.describe Backup::Repositories, feature_category: :backup_restore do
end
it 'avoids N+1 database queries' do
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
subject.dump(destination, backup_id)
- end.count
+ end
create_list(:project, 2, :repository)
create_list(:snippet, 2, :repository)
- # Number of expected queries are 2 more than control_count
+ # Number of expected queries are 2 more than control.count
# to account for the queries for project.design_management_repository
# for each project.
# We are using 2 projects here.
expect do
subject.dump(destination, backup_id)
- end.not_to exceed_query_limit(control_count + 2)
+ end.not_to exceed_query_limit(control).with_threshold(2)
end
describe 'storages' do
diff --git a/spec/lib/banzai/filter/custom_emoji_filter_spec.rb b/spec/lib/banzai/filter/custom_emoji_filter_spec.rb
index 4fc9d9dd4f6..701a45aa54d 100644
--- a/spec/lib/banzai/filter/custom_emoji_filter_spec.rb
+++ b/spec/lib/banzai/filter/custom_emoji_filter_spec.rb
@@ -47,13 +47,13 @@ RSpec.describe Banzai::Filter::CustomEmojiFilter, feature_category: :team_planni
it 'does not do N+1 query' do
create(:custom_emoji, name: 'party-parrot', group: group)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
filter('<p>:tanuki:</p>')
end
expect do
filter('<p>:tanuki:</p> <p>:party-parrot:</p>')
- end.not_to exceed_all_query_limit(control_count.count)
+ end.not_to exceed_all_query_limit(control)
end
it 'uses custom emoji from ancestor group' do
diff --git a/spec/lib/banzai/filter/issuable_reference_expansion_filter_spec.rb b/spec/lib/banzai/filter/issuable_reference_expansion_filter_spec.rb
index 06bb0edc92c..d14f218763f 100644
--- a/spec/lib/banzai/filter/issuable_reference_expansion_filter_spec.rb
+++ b/spec/lib/banzai/filter/issuable_reference_expansion_filter_spec.rb
@@ -259,15 +259,15 @@ RSpec.describe Banzai::Filter::IssuableReferenceExpansionFilter, feature_categor
# warm up
filter(link, context)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
filter(link, context)
- end.count
+ end
- expect(control_count).to eq 12
+ expect(control.count).to eq 12
expect do
filter("#{link} #{link2}", context)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
@@ -419,15 +419,15 @@ RSpec.describe Banzai::Filter::IssuableReferenceExpansionFilter, feature_categor
# warm up
filter(link, context)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
filter(link, context)
- end.count
+ end
- expect(control_count).to eq 10
+ expect(control.count).to eq 10
expect do
filter("#{link} #{link2}", context)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/lib/banzai/filter/markdown_engines/base_spec.rb b/spec/lib/banzai/filter/markdown_engines/base_spec.rb
index e7b32876610..3114f367fac 100644
--- a/spec/lib/banzai/filter/markdown_engines/base_spec.rb
+++ b/spec/lib/banzai/filter/markdown_engines/base_spec.rb
@@ -14,4 +14,10 @@ RSpec.describe Banzai::Filter::MarkdownEngines::Base, feature_category: :team_pl
expect(engine.send(:sourcepos_disabled?)).to be_truthy
end
+
+ it 'accepts a nil context' do
+ engine = described_class.new(nil)
+
+ expect(engine.context).to eq({})
+ end
end
diff --git a/spec/lib/banzai/filter/markdown_engines/glfm_markdown_spec.rb b/spec/lib/banzai/filter/markdown_engines/glfm_markdown_spec.rb
new file mode 100644
index 00000000000..da58b824a06
--- /dev/null
+++ b/spec/lib/banzai/filter/markdown_engines/glfm_markdown_spec.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Banzai::Filter::MarkdownEngines::GlfmMarkdown, feature_category: :team_planning do
+ it 'defaults to generating sourcepos' do
+ engine = described_class.new({})
+
+ expect(engine.render('# hi')).to eq %(<h1 data-sourcepos="1:1-1:4">hi</h1>\n)
+ end
+
+ it 'turns off sourcepos' do
+ engine = described_class.new({ no_sourcepos: true })
+
+ expect(engine.render('# hi')).to eq %(<h1>hi</h1>\n)
+ end
+end
diff --git a/spec/lib/banzai/filter/markdown_filter_spec.rb b/spec/lib/banzai/filter/markdown_filter_spec.rb
index b4fb715b8f0..30869d67661 100644
--- a/spec/lib/banzai/filter/markdown_filter_spec.rb
+++ b/spec/lib/banzai/filter/markdown_filter_spec.rb
@@ -8,18 +8,30 @@ RSpec.describe Banzai::Filter::MarkdownFilter, feature_category: :team_planning
describe 'markdown engine from context' do
it 'finds the correct engine' do
- expect(described_class.render_engine(:common_mark)).to eq Banzai::Filter::MarkdownEngines::CommonMark
+ expect(described_class.new('foo', { markdown_engine: :common_mark }).render_engine)
+ .to eq Banzai::Filter::MarkdownEngines::CommonMark
end
- it 'defaults to the DEFAULT_ENGINE' do
- default_engine = Banzai::Filter::MarkdownFilter::DEFAULT_ENGINE.to_s.classify
- default = "Banzai::Filter::MarkdownEngines::#{default_engine}".constantize
+ it 'defaults to the RUST_ENGINE' do
+ default_engine = Banzai::Filter::MarkdownFilter::RUST_ENGINE.to_s.classify
+ engine = "Banzai::Filter::MarkdownEngines::#{default_engine}".constantize
- expect(described_class.render_engine(nil)).to eq default
+ expect(described_class.new('foo', {}).render_engine).to eq engine
+ end
+
+ context 'when :markdown_rust feature flag is turned off' do
+ it 'defaults to the RUBY_ENGINE' do
+ stub_feature_flags(markdown_rust: false)
+
+ ruby_engine = Banzai::Filter::MarkdownFilter::RUBY_ENGINE.to_s.classify
+ engine = "Banzai::Filter::MarkdownEngines::#{ruby_engine}".constantize
+
+ expect(described_class.new('foo', {}).render_engine).to eq engine
+ end
end
it 'raise error for unrecognized engines' do
- expect { described_class.render_engine(:foo_bar) }.to raise_error(NameError)
+ expect { described_class.new('foo', { markdown_engine: :foo_bar }).render_engine }.to raise_error(NameError)
end
end
diff --git a/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb b/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb
index 9a2e68aaae0..0bdd64c360d 100644
--- a/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb
@@ -230,11 +230,11 @@ RSpec.describe Banzai::Filter::References::AlertReferenceFilter, feature_categor
it 'does not have N+1 per multiple references per project', :use_sql_query_cache do
markdown = alert_reference.to_s
- max_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
reference_filter(markdown)
- end.count
+ end
- expect(max_count).to eq 1
+ expect(control.count).to eq 1
markdown = "#{alert_reference} ^alert#2 ^alert#3 ^alert#4 #{alert2_reference}"
@@ -248,11 +248,9 @@ RSpec.describe Banzai::Filter::References::AlertReferenceFilter, feature_categor
# 1x2 for alerts in each project
# Total == 7
# TODO: https://gitlab.com/gitlab-org/gitlab/-/issues/330359
- max_count += 6
-
expect do
reference_filter(markdown)
- end.not_to exceed_all_query_limit(max_count)
+ end.not_to exceed_all_query_limit(control).with_threshold(6)
end
end
end
diff --git a/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb b/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb
index 35a3f20f7b7..730554857df 100644
--- a/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb
@@ -283,11 +283,11 @@ RSpec.describe Banzai::Filter::References::CommitReferenceFilter, feature_catego
it 'does not have N+1 per multiple references per project', :use_sql_query_cache do
markdown = commit_reference.to_s
- max_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
reference_filter(markdown)
- end.count
+ end
- expect(max_count).to eq 0
+ expect(control.count).to eq 0
markdown = "#{commit_reference} 8b95f2f1 8b95f2f2 8b95f2f3 #{commit2_reference} #{commit3_reference}"
@@ -298,11 +298,9 @@ RSpec.describe Banzai::Filter::References::CommitReferenceFilter, feature_catego
# 1 for loading the namespaces associated to the project
# 1 for loading the routes associated with the namespace
# Total = 5
- max_count += 5
-
expect do
reference_filter(markdown)
- end.not_to exceed_all_query_limit(max_count)
+ end.not_to exceed_all_query_limit(control).with_threshold(5)
end
end
end
diff --git a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb
index fd03d7c0d27..678d6619101 100644
--- a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb
@@ -240,7 +240,7 @@ RSpec.describe Banzai::Filter::References::DesignReferenceFilter, feature_catego
* #1[not a valid reference.gif]
MD
- baseline = ActiveRecord::QueryRecorder.new { process(one_ref_per_project) }
+ control = ActiveRecord::QueryRecorder.new { process(one_ref_per_project) }
# each project mentioned requires 2 queries:
#
@@ -253,7 +253,7 @@ RSpec.describe Banzai::Filter::References::DesignReferenceFilter, feature_catego
# In addition there is a 1 query overhead for all the projects at the
# start. Currently, the baseline for 2 projects is `2 * 2 + 1 = 5` queries
#
- expect { process(multiple_references) }.not_to exceed_query_limit(baseline.count)
+ expect { process(multiple_references) }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb
index 823f006c98a..acc59c85cbf 100644
--- a/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb
@@ -338,9 +338,9 @@ RSpec.describe Banzai::Filter::References::ExternalIssueReferenceFilter, feature
single_reference = "External Issue #{issue1.to_reference}"
multiple_references = "External Issues #{issue1.to_reference} and #{issue2.to_reference}"
- control_count = ActiveRecord::QueryRecorder.new { reference_filter(single_reference).to_html }.count
+ control = ActiveRecord::QueryRecorder.new { reference_filter(single_reference).to_html }
- expect { reference_filter(multiple_references).to_html }.not_to exceed_query_limit(control_count)
+ expect { reference_filter(multiple_references).to_html }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
index d16188e99a3..fd947e3e9cb 100644
--- a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
@@ -41,9 +41,9 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor
single_reference = "Issue #{issue.to_reference}"
multiple_references = "Issues #{issue.to_reference} and #{another_issue.to_reference}"
- control_count = ActiveRecord::QueryRecorder.new { reference_filter(single_reference).to_html }.count
+ control = ActiveRecord::QueryRecorder.new { reference_filter(single_reference).to_html }
- expect { reference_filter(multiple_references).to_html }.not_to exceed_query_limit(control_count)
+ expect { reference_filter(multiple_references).to_html }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb
index 81b08a4c516..bcc256813c9 100644
--- a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb
@@ -35,13 +35,13 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor
# Run this once to establish a baseline
reference_filter("Label #{reference}")
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
reference_filter("Label #{reference}")
end
labels_markdown = Array.new(10, "Label #{reference}").join('\n')
- expect { reference_filter(labels_markdown) }.not_to exceed_all_query_limit(control_count.count)
+ expect { reference_filter(labels_markdown) }.not_to exceed_all_query_limit(control)
end
it 'includes a data-project attribute' do
diff --git a/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb b/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb
index ccc8478c7d8..e3036993f7b 100644
--- a/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb
@@ -26,9 +26,9 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter, feature_
single_reference = "Merge request #{merge.to_reference}"
multiple_references = "Merge requests #{merge.to_reference} and #{another_merge.to_reference}"
- control_count = ActiveRecord::QueryRecorder.new { reference_filter(single_reference).to_html }.count
+ control = ActiveRecord::QueryRecorder.new { reference_filter(single_reference).to_html }
- expect { reference_filter(multiple_references).to_html }.not_to exceed_query_limit(control_count)
+ expect { reference_filter(multiple_references).to_html }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb
index c55fff78756..12af94507b6 100644
--- a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb
@@ -115,17 +115,17 @@ RSpec.describe Banzai::Filter::References::ProjectReferenceFilter, feature_categ
# warm up first
reference_filter(markdown)
- max_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
reference_filter(markdown)
- end.count
+ end
- expect(max_count).to eq 2
+ expect(control.count).to eq 2
markdown = "#{normal_project_reference} #{invalidate_reference(normal_project_reference)} #{group_project_reference} #{nested_project_reference}"
expect do
reference_filter(markdown)
- end.not_to exceed_all_query_limit(max_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/lib/banzai/filter/references/reference_cache_spec.rb b/spec/lib/banzai/filter/references/reference_cache_spec.rb
index 04877931610..b4d9a08e4c6 100644
--- a/spec/lib/banzai/filter/references/reference_cache_spec.rb
+++ b/spec/lib/banzai/filter/references/reference_cache_spec.rb
@@ -70,13 +70,13 @@ RSpec.describe Banzai::Filter::References::ReferenceCache, feature_category: :te
filter_single = filter_class.new(doc_single, project: project)
cache_single = described_class.new(filter_single, { project: project }, {})
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
cache_single.load_references_per_parent(filter_single.nodes)
cache_single.load_parent_per_reference
cache_single.load_records_per_parent
- end.count
+ end
- expect(control_count).to eq 3
+ expect(control.count).to eq 3
# Since this is an issue filter that is not batching issue queries
# across projects, we have to account for that.
# 1 for for routes to find routes.source_id of projects matching paths
@@ -88,13 +88,11 @@ RSpec.describe Banzai::Filter::References::ReferenceCache, feature_category: :te
# 1x2 for groups
# 1x2 for work_item_types
# Total = 11
- max_count = control_count + 8
-
expect do
cache.load_references_per_parent(filter.nodes)
cache.load_parent_per_reference
cache.load_records_per_parent
- end.not_to exceed_query_limit(max_count)
+ end.not_to exceed_query_limit(control).with_threshold(8)
end
end
diff --git a/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb b/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb
index 00eac7262f4..51c5551dda8 100644
--- a/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb
@@ -229,11 +229,11 @@ RSpec.describe Banzai::Filter::References::SnippetReferenceFilter, feature_categ
it 'does not have N+1 per multiple references per project', :use_sql_query_cache do
markdown = "#{reference} $9999990"
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
reference_filter(markdown)
- end.count
+ end
- expect(control_count).to eq 1
+ expect(control.count).to eq 1
markdown = "#{reference} $9999990 $9999991 $9999992 $9999993 #{reference2} something/cool$12"
@@ -247,11 +247,9 @@ RSpec.describe Banzai::Filter::References::SnippetReferenceFilter, feature_categ
# 1x2 for snippets in each project == 2
# Total = 7
# TODO: https://gitlab.com/gitlab-org/gitlab/-/issues/330359
- max_count = control_count + 6
-
expect do
reference_filter(markdown)
- end.not_to exceed_all_query_limit(max_count)
+ end.not_to exceed_all_query_limit(control).with_threshold(6)
end
end
end
diff --git a/spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb b/spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb
index e59e53891bf..cf245ccc72a 100644
--- a/spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb
@@ -306,9 +306,9 @@ RSpec.describe Banzai::Filter::References::WorkItemReferenceFilter, feature_cate
single_reference = "Work item #{work_item.to_reference}"
multiple_references = "Work items #{work_item.to_reference} and #{another_work_item.to_reference}"
- control_count = ActiveRecord::QueryRecorder.new { reference_filter(single_reference).to_html }.count
+ control = ActiveRecord::QueryRecorder.new { reference_filter(single_reference).to_html }
- expect { reference_filter(multiple_references).to_html }.not_to exceed_query_limit(control_count)
+ expect { reference_filter(multiple_references).to_html }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/lib/banzai/issuable_extractor_spec.rb b/spec/lib/banzai/issuable_extractor_spec.rb
index 5bbd98592e7..fe1a2bd9a2e 100644
--- a/spec/lib/banzai/issuable_extractor_spec.rb
+++ b/spec/lib/banzai/issuable_extractor_spec.rb
@@ -45,9 +45,9 @@ RSpec.describe Banzai::IssuableExtractor, feature_category: :team_planning do
second_call_queries = ActiveRecord::QueryRecorder.new do
extractor.extract([issue_link, work_item_link, merge_request_link])
- end.count
+ end
- expect(second_call_queries).to eq 0
+ expect(second_call_queries.count).to eq 0
end
end
end
diff --git a/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb b/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb
index a845e4fa7f4..bb6d4eeefbc 100644
--- a/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb
+++ b/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb
@@ -167,6 +167,21 @@ RSpec.describe Banzai::Pipeline::GfmPipeline, feature_category: :team_planning d
end
end
+ context 'when label reference is similar to a commit SHA' do
+ let(:numeric_commit_sha) { '8634272' }
+ let(:project) { create(:project, :repository) }
+ let(:label) { create(:label, project: project, id: numeric_commit_sha) }
+
+ it 'renders a label reference' do
+ expect(project.commit_by(oid: numeric_commit_sha)).to be_present
+
+ output = described_class.to_html(label.to_reference(format: :id), project: project)
+
+ expect(output).to include(label.name)
+ expect(output).to include(Gitlab::Routing.url_helpers.project_issues_path(project, label_name: label.name))
+ end
+ end
+
describe 'asset proxy' do
let(:project) { create(:project, :public) }
let(:image) { '![proxy](http://example.com/test.png)' }
diff --git a/spec/lib/banzai/reference_parser/snippet_parser_spec.rb b/spec/lib/banzai/reference_parser/snippet_parser_spec.rb
index 8f4148be2dc..0f3834c2dc8 100644
--- a/spec/lib/banzai/reference_parser/snippet_parser_spec.rb
+++ b/spec/lib/banzai/reference_parser/snippet_parser_spec.rb
@@ -37,11 +37,11 @@ RSpec.describe Banzai::ReferenceParser::SnippetParser, feature_category: :team_p
# Run this once to establish a baseline
visible_references(:public)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
subject.nodes_visible_to_user(user, [link])
end
- expect { subject.nodes_visible_to_user(user, Array.new(10, link)) }.not_to exceed_all_query_limit(control_count.count)
+ expect { subject.nodes_visible_to_user(user, Array.new(10, link)) }.not_to exceed_all_query_limit(control)
end
it 'creates a reference for guest for a public snippet' do
diff --git a/spec/lib/click_house/iterator_spec.rb b/spec/lib/click_house/iterator_spec.rb
index fd054c0afe5..962ccc6d884 100644
--- a/spec/lib/click_house/iterator_spec.rb
+++ b/spec/lib/click_house/iterator_spec.rb
@@ -29,6 +29,16 @@ RSpec.describe ClickHouse::Iterator, :click_house, feature_category: :database d
expect(collect_ids_with_batch_size(15)).to match_array(expected_values)
end
+ context 'when min value is given' do
+ let(:iterator) { described_class.new(query_builder: query_builder, connection: connection, min_value: 5) }
+
+ it 'iterates from the given min value' do
+ expected_values = (5..10).to_a
+
+ expect(collect_ids_with_batch_size(5)).to match_array(expected_values)
+ end
+ end
+
context 'when there are no records for the given query' do
let(:query_builder) do
ClickHouse::QueryBuilder
diff --git a/spec/lib/container_registry/gitlab_api_client_spec.rb b/spec/lib/container_registry/gitlab_api_client_spec.rb
index 3c87af3a1c8..e13f639f048 100644
--- a/spec/lib/container_registry/gitlab_api_client_spec.rb
+++ b/spec/lib/container_registry/gitlab_api_client_spec.rb
@@ -256,6 +256,23 @@ RSpec.describe ContainerRegistry::GitlabApiClient, feature_category: :container_
it { is_expected.to eq(expected) }
end
+ context 'with referrers included' do
+ subject { client.tags(path, page_size: page_size, referrers: true) }
+
+ let(:expected) do
+ {
+ pagination: {},
+ response_body: ::Gitlab::Json.parse(response.to_json)
+ }
+ end
+
+ before do
+ stub_tags(path, page_size: page_size, input: { referrers: 'true' }, respond_with: response)
+ end
+
+ it { is_expected.to eq(expected) }
+ end
+
context 'with a response with a link header containing next page' do
let(:expected) do
{
@@ -961,7 +978,8 @@ RSpec.describe ContainerRegistry::GitlabApiClient, feature_category: :container_
last: input[:last],
name: input[:name],
sort: input[:sort],
- before: input[:before]
+ before: input[:before],
+ referrers: input[:referrers]
}.compact
url = "#{registry_api_url}/gitlab/v1/repositories/#{path}/tags/list/"
diff --git a/spec/lib/container_registry/tag_spec.rb b/spec/lib/container_registry/tag_spec.rb
index 8f9308f2127..42191cb121c 100644
--- a/spec/lib/container_registry/tag_spec.rb
+++ b/spec/lib/container_registry/tag_spec.rb
@@ -336,6 +336,31 @@ RSpec.describe ContainerRegistry::Tag, feature_category: :container_registry do
it { is_expected.to eq(nil) }
end
end
+
+ describe 'published_at=' do
+ subject do
+ tag.published_at = input
+ tag.published_at
+ end
+
+ context 'with a valid input' do
+ let(:input) { 2.days.ago.iso8601 }
+
+ it { is_expected.to eq(DateTime.iso8601(input)) }
+ end
+
+ context 'with a nil input' do
+ let(:input) { nil }
+
+ it { is_expected.to eq(nil) }
+ end
+
+ context 'with an invalid input' do
+ let(:input) { 'not a timestamp' }
+
+ it { is_expected.to eq(nil) }
+ end
+ end
end
end
end
diff --git a/spec/lib/feature/definition_spec.rb b/spec/lib/feature/definition_spec.rb
index 595725d357c..b75c780a33e 100644
--- a/spec/lib/feature/definition_spec.rb
+++ b/spec/lib/feature/definition_spec.rb
@@ -30,11 +30,11 @@ RSpec.describe Feature::Definition do
:name | 'ALL_CAPS' | /Feature flag 'ALL_CAPS' is invalid/
:name | nil | /Feature flag is missing name/
:path | nil | /Feature flag 'feature_flag' is missing path/
- :type | nil | /Feature flag 'feature_flag' is missing type/
+ :type | nil | /Feature flag 'feature_flag' is missing `type`/
:type | 'invalid' | /Feature flag 'feature_flag' type 'invalid' is invalid/
:path | 'development/invalid.yml' | /Feature flag 'feature_flag' has an invalid path/
- :path | 'invalid/feature_flag.yml' | /Feature flag 'feature_flag' has an invalid type/
- :default_enabled | nil | /Feature flag 'feature_flag' is missing default_enabled/
+ :path | 'invalid/feature_flag.yml' | /Feature flag 'feature_flag' has an invalid path/
+ :default_enabled | nil | /Feature flag 'feature_flag' is missing `default_enabled`/
end
with_them do
diff --git a/spec/lib/gitlab/application_setting_fetcher_spec.rb b/spec/lib/gitlab/application_setting_fetcher_spec.rb
new file mode 100644
index 00000000000..0225a7608cb
--- /dev/null
+++ b/spec/lib/gitlab/application_setting_fetcher_spec.rb
@@ -0,0 +1,224 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::ApplicationSettingFetcher, feature_category: :cell do
+ before do
+ stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
+
+ described_class.clear_in_memory_application_settings!
+ end
+
+ describe '.clear_in_memory_application_settings!' do
+ subject(:clear_in_memory_application_settings!) { described_class.clear_in_memory_application_settings! }
+
+ before do
+ stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'true')
+
+ described_class.current_application_settings
+ end
+
+ it 'will re-initialize settings' do
+ expect(ApplicationSetting).to receive(:build_from_defaults).and_call_original
+
+ clear_in_memory_application_settings!
+ described_class.current_application_settings
+ end
+ end
+
+ describe '.current_application_settings' do
+ subject(:current_application_settings) { described_class.current_application_settings }
+
+ context 'when ENV["IN_MEMORY_APPLICATION_SETTINGS"] is true' do
+ before do
+ stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'true')
+ end
+
+ it 'returns an in-memory ApplicationSetting object' do
+ expect(ApplicationSetting).not_to receive(:current)
+ expect(ApplicationSetting).to receive(:build_from_defaults).and_call_original
+
+ expect(current_application_settings).to be_a(ApplicationSetting)
+ expect(current_application_settings).not_to be_persisted
+ end
+ end
+
+ context 'when ENV["IN_MEMORY_APPLICATION_SETTINGS"] is false' do
+ let_it_be(:settings) { create(:application_setting) }
+
+ context 'and an error is raised' do
+ before do
+ # The cached method is called twice:
+ # - ApplicationSettingFetcher
+ # - ApplicationSetting (CachedAttribute module)
+ # For this test, the first needs to raise an exception
+ # The second is swallowed on production so that should not raise an exception
+ # So we only let the first call raise an exception
+ # Alternatively, we could mock Rails.env.production? but I prefer not to
+ raise_exception = true
+ allow(ApplicationSetting).to receive(:cached).twice do
+ if raise_exception
+ raise_exception = false
+ raise(StandardError)
+ else
+ ApplicationSetting.last
+ end
+ end
+ end
+
+ it 'will retrieve uncached ApplicationSetting' do
+ expect(ApplicationSetting).to receive(:current).and_call_original
+
+ expect(current_application_settings).to eq(settings)
+ end
+ end
+
+ context 'and settings in cache' do
+ before do
+ # Warm the cache
+ ApplicationSetting.current
+ end
+
+ it 'fetches the settings from cache' do
+ expect(::ApplicationSetting).to receive(:cached).and_call_original
+
+ expect(ActiveRecord::QueryRecorder.new { current_application_settings }.count).to eq(0)
+ end
+ end
+
+ context 'and settings are not in cache' do
+ before do
+ allow(ApplicationSetting).to receive(:cached).and_return(nil)
+ end
+
+ context 'and we are running a Rake task' do
+ before do
+ allow(Gitlab::Runtime).to receive(:rake?).and_return(true)
+ end
+
+ context 'and database does not exist' do
+ before do
+ allow(::ApplicationSetting.database)
+ .to receive(:cached_table_exists?).and_raise(ActiveRecord::NoDatabaseError)
+ end
+
+ it 'uses Gitlab::FakeApplicationSettings' do
+ expect(current_application_settings).to be_a(Gitlab::FakeApplicationSettings)
+ end
+ end
+
+ context 'and database connection is not active' do
+ before do
+ allow(::ApplicationSetting.connection).to receive(:active?).and_return(false)
+ end
+
+ it 'uses Gitlab::FakeApplicationSettings' do
+ expect(current_application_settings).to be_a(Gitlab::FakeApplicationSettings)
+ end
+ end
+
+ context 'and table does not exist' do
+ before do
+ allow(::ApplicationSetting.database).to receive(:cached_table_exists?).and_return(false)
+ end
+
+ it 'uses Gitlab::FakeApplicationSettings' do
+ expect(current_application_settings).to be_a(Gitlab::FakeApplicationSettings)
+ end
+ end
+
+ context 'and database connection raises some error' do
+ before do
+ allow(::ApplicationSetting.connection).to receive(:active?).and_raise(StandardError)
+ end
+
+ it 'uses Gitlab::FakeApplicationSettings' do
+ expect(current_application_settings).to be_a(Gitlab::FakeApplicationSettings)
+ end
+ end
+
+ context 'and there are pending database migrations' do
+ before do
+ allow_next_instance_of(ActiveRecord::MigrationContext) do |migration_context|
+ allow(migration_context).to receive(:needs_migration?).and_return(true)
+ end
+ end
+
+ it 'uses Gitlab::FakeApplicationSettings' do
+ expect(current_application_settings).to be_a(Gitlab::FakeApplicationSettings)
+ end
+
+ context 'when a new setting is used but the migration did not run yet' do
+ let(:default_attributes) { { new_column: 'some_value' } }
+
+ before do
+ allow(ApplicationSetting).to receive(:defaults).and_return(default_attributes)
+ end
+
+ it 'uses the default value if present' do
+ expect(current_application_settings.new_column).to eq(
+ default_attributes[:new_column]
+ )
+ end
+ end
+ end
+ end
+
+ context 'and settings are in database' do
+ it 'returns settings from database' do
+ expect(current_application_settings).to eq(settings)
+ end
+ end
+
+ context 'and settings are not in the database' do
+ before do
+ allow(ApplicationSetting).to receive(:current).and_return(nil)
+ end
+
+ it 'returns default settings' do
+ expect(ApplicationSetting).to receive(:create_from_defaults).and_call_original
+
+ expect(current_application_settings).to eq(settings)
+ end
+ end
+
+ context 'when we hit a recursive loop' do
+ before do
+ allow(ApplicationSetting).to receive(:current).and_raise(ApplicationSetting::Recursion)
+ end
+
+ it 'recovers and returns in-memory settings' do
+ settings = described_class.current_application_settings
+
+ expect(settings).to be_a(ApplicationSetting)
+ expect(settings).not_to be_persisted
+ end
+ end
+ end
+ end
+ end
+
+ describe '.expire_current_application_settings' do
+ subject(:expire) { described_class.expire_current_application_settings }
+
+ it 'expires ApplicationSetting' do
+ expect(ApplicationSetting).to receive(:expire)
+
+ expire
+ end
+ end
+
+ describe '.current_application_settings?' do
+ subject(:settings?) { described_class.current_application_settings? }
+
+ context 'when settings exist' do
+ let_it_be(:settings) { create(:application_setting) }
+
+ it { is_expected.to be(true) }
+ end
+
+ context 'when settings do not exist' do
+ it { is_expected.to be(false) }
+ end
+ end
+end
diff --git a/spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb b/spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb
index e0ef45d5621..bccddaa50a0 100644
--- a/spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb
+++ b/spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb
@@ -169,4 +169,33 @@ RSpec.describe Gitlab::Auth::TwoFactorAuthVerifier do
end
end
end
+
+ describe '#two_factor_authentication_reason?' do
+ it 'returns false if two factor authentication is not required' do
+ allow(user).to receive(:require_two_factor_authentication?).and_return(false)
+
+ expect(subject.two_factor_authentication_reason).to be_falsey
+ end
+
+ it 'returns :global if two factor authentication is enabled globally' do
+ stub_application_setting require_two_factor_authentication: true
+
+ expect(subject.two_factor_authentication_reason).to eq(:global)
+ end
+
+ it 'returns :admin_2fa if the current user is an admin and two factor is enabled' do
+ stub_application_setting require_admin_two_factor_authentication: true
+
+ allow(user).to receive(:admin?).and_return(true)
+
+ expect(subject.two_factor_authentication_reason).to eq(:admin_2fa)
+ end
+
+ it 'returns :group if two factor authentication is enforced through a group setting' do
+ stub_application_setting require_two_factor_authentication: false
+ allow(user).to receive(:require_two_factor_authentication_from_group?).and_return(true)
+
+ expect(subject.two_factor_authentication_reason).to eq(:group)
+ end
+ end
end
diff --git a/spec/lib/gitlab/auth_spec.rb b/spec/lib/gitlab/auth_spec.rb
index 9974e24ad50..fd51ebbc8fa 100644
--- a/spec/lib/gitlab/auth_spec.rb
+++ b/spec/lib/gitlab/auth_spec.rb
@@ -16,7 +16,7 @@ RSpec.describe Gitlab::Auth, :use_clean_rails_memory_store_caching, feature_cate
end
it 'ADMIN_SCOPES contains all scopes for ADMIN access' do
- expect(subject::ADMIN_SCOPES).to match_array %i[sudo admin_mode]
+ expect(subject::ADMIN_SCOPES).to match_array %i[sudo admin_mode read_service_ping]
end
it 'REPOSITORY_SCOPES contains all scopes for REPOSITORY access' do
@@ -42,7 +42,7 @@ RSpec.describe Gitlab::Auth, :use_clean_rails_memory_store_caching, feature_cate
end
it 'contains all non-default scopes' do
- expect(subject.all_available_scopes).to match_array %i[api read_user read_api read_repository write_repository read_registry write_registry sudo admin_mode read_observability write_observability create_runner k8s_proxy ai_features]
+ expect(subject.all_available_scopes).to match_array %i[api read_user read_api read_repository read_service_ping write_repository read_registry write_registry sudo admin_mode read_observability write_observability create_runner k8s_proxy ai_features]
end
it 'contains for non-admin user all non-default scopes without ADMIN access and without observability scopes' do
@@ -54,7 +54,7 @@ RSpec.describe Gitlab::Auth, :use_clean_rails_memory_store_caching, feature_cate
it 'contains for admin user all non-default scopes with ADMIN access and without observability scopes' do
user = build_stubbed(:user, admin: true)
- expect(subject.available_scopes_for(user)).to match_array %i[api read_user read_api read_repository write_repository read_registry write_registry sudo admin_mode create_runner k8s_proxy ai_features]
+ expect(subject.available_scopes_for(user)).to match_array %i[api read_user read_api read_repository read_service_ping write_repository read_registry write_registry sudo admin_mode create_runner k8s_proxy ai_features]
end
it 'contains for project all resource bot scopes' do
@@ -72,7 +72,7 @@ RSpec.describe Gitlab::Auth, :use_clean_rails_memory_store_caching, feature_cate
end
it 'optional_scopes contains all non-default scopes' do
- expect(subject.optional_scopes).to match_array %i[read_user read_api read_repository write_repository read_registry write_registry sudo admin_mode openid profile email read_observability write_observability create_runner k8s_proxy ai_features]
+ expect(subject.optional_scopes).to match_array %i[read_user read_api read_repository write_repository read_registry read_service_ping write_registry sudo admin_mode openid profile email read_observability write_observability create_runner k8s_proxy ai_features]
end
context 'with observability_tracing feature flag' do
@@ -118,7 +118,7 @@ RSpec.describe Gitlab::Auth, :use_clean_rails_memory_store_caching, feature_cate
it 'contains for admin user all non-default scopes with ADMIN access and without observability scopes' do
user = build_stubbed(:user, admin: true)
- expect(subject.available_scopes_for(user)).to match_array %i[api read_user read_api read_repository write_repository read_registry write_registry sudo admin_mode create_runner k8s_proxy ai_features]
+ expect(subject.available_scopes_for(user)).to match_array %i[api read_user read_api read_repository write_repository read_registry write_registry read_service_ping sudo admin_mode create_runner k8s_proxy ai_features]
end
it 'contains for project all resource bot scopes including observability scopes' do
diff --git a/spec/lib/gitlab/background_migration/backfill_issue_search_data_namespace_id_spec.rb b/spec/lib/gitlab/background_migration/backfill_issue_search_data_namespace_id_spec.rb
new file mode 100644
index 00000000000..ea5c7086ac2
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/backfill_issue_search_data_namespace_id_spec.rb
@@ -0,0 +1,78 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::BackfillIssueSearchDataNamespaceId,
+ schema: 20240105144908, feature_category: :team_planning do
+ let(:namespaces) { table(:namespaces) }
+ let(:projects) { table(:projects) }
+ let(:issues) { table(:issues) }
+ let(:issue_search_data) { table(:issue_search_data) }
+ let(:issue_type) { table(:work_item_types).find_by!(namespace_id: nil, base_type: 0) }
+
+ let(:namespace_1) { namespaces.create!(name: 'namespace1', type: 'Group', path: 'namespace1') }
+ let(:namespace_2) { namespaces.create!(name: 'namespace2', type: 'Group', path: 'namespace2') }
+
+ let(:proj_ns_1) { namespaces.create!(name: 'pn1', path: 'pn1', type: 'Project', parent_id: namespace_1.id) }
+ let(:proj_ns_2) { namespaces.create!(name: 'pn2', path: 'pn2', type: 'Project', parent_id: namespace_2.id) }
+
+ let(:proj_1) do
+ projects.create!(name: 'proj1', path: 'proj1', namespace_id: namespace_1.id, project_namespace_id: proj_ns_1.id)
+ end
+
+ let(:proj_2) do
+ projects.create!(name: 'proj2', path: 'proj2', namespace_id: namespace_2.id, project_namespace_id: proj_ns_2.id)
+ end
+
+ let(:proj_1_issue_1) do
+ issues.create!(title: 'issue1', project_id: proj_1.id, namespace_id: proj_ns_1.id, work_item_type_id: issue_type.id)
+ end
+
+ let(:proj_1_issue_2) do
+ issues.create!(title: 'issue2', project_id: proj_1.id, namespace_id: proj_ns_1.id, work_item_type_id: issue_type.id)
+ end
+
+ let(:proj_2_issue_1) do
+ issues.create!(title: 'issue1', project_id: proj_2.id, namespace_id: proj_ns_2.id, work_item_type_id: issue_type.id)
+ end
+
+ let(:proj_2_issue_2) do
+ issues.create!(title: 'issue2', project_id: proj_2.id, namespace_id: proj_ns_2.id, work_item_type_id: issue_type.id)
+ end
+
+ let!(:proj_1_issue_1_search_data) do
+ issue_search_data.create!(namespace_id: nil, project_id: proj_1.id, issue_id: proj_1_issue_1.id)
+ end
+
+ let!(:proj_1_issue_2_search_data) do
+ issue_search_data.create!(namespace_id: nil, project_id: proj_1.id, issue_id: proj_1_issue_2.id)
+ end
+
+ let!(:proj_2_issue_1_search_data) do
+ issue_search_data.create!(namespace_id: nil, project_id: proj_2.id, issue_id: proj_2_issue_1.id)
+ end
+
+ let!(:proj_2_issue_2_search_data) do
+ issue_search_data.create!(namespace_id: nil, project_id: proj_2.id, issue_id: proj_2_issue_2.id)
+ end
+
+ let(:migration) do
+ described_class.new(
+ start_id: proj_1_issue_1.id,
+ end_id: proj_2_issue_2.id,
+ batch_table: :issues,
+ batch_column: :id,
+ sub_batch_size: 2,
+ pause_ms: 2,
+ connection: ApplicationRecord.connection
+ )
+ end
+
+ it 'backfills namespace_id for the specified records' do
+ migration.perform
+
+ [proj_1_issue_1, proj_1_issue_2, proj_2_issue_1, proj_2_issue_2].each do |issue|
+ expect(issue_search_data.find_by_issue_id(issue.id).namespace_id).to eq(issue.namespace_id)
+ end
+ end
+end
diff --git a/spec/lib/gitlab/background_migration/backfill_owasp_top_ten_of_vulnerability_reads_spec.rb b/spec/lib/gitlab/background_migration/backfill_owasp_top_ten_of_vulnerability_reads_spec.rb
new file mode 100644
index 00000000000..1462848845e
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/backfill_owasp_top_ten_of_vulnerability_reads_spec.rb
@@ -0,0 +1,225 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::BackfillOwaspTopTenOfVulnerabilityReads,
+ feature_category: :vulnerability_management do
+ let(:namespaces) { table(:namespaces) }
+ let(:projects) { table(:projects) }
+ let(:users) { table(:users) }
+ let(:scanners) { table(:vulnerability_scanners) }
+ let(:vulnerabilities) { table(:vulnerabilities) }
+ let(:vulnerability_reads) { table(:vulnerability_reads) }
+ let(:vulnerability_findings) { table(:vulnerability_occurrences) }
+ let(:vulnerability_occurrence_identifiers) { table(:vulnerability_occurrence_identifiers) }
+ let(:vulnerability_identifiers) { table(:vulnerability_identifiers) }
+
+ let(:namespace) { namespaces.create!(name: 'user', path: 'user') }
+ let(:project) { projects.create!(namespace_id: namespace.id, project_namespace_id: namespace.id) }
+ let(:user) { users.create!(username: 'john_doe', email: 'johndoe@gitlab.com', projects_limit: 10) }
+ let(:scanner) { scanners.create!(project_id: project.id, external_id: 'external_id', name: 'Test Scanner') }
+
+ shared_context 'with vulnerability data' do
+ let(:external_id) { '' }
+ let(:external_type) { '' }
+ let(:identifier_name) { '' }
+
+ let(:vulnerability_1) { create_vulnerability(title: 'vulnerability 1') }
+ let(:vulnerability_2) { create_vulnerability(title: 'vulnerability 2') }
+ let(:vulnerability_3) { create_vulnerability(title: 'vulnerability 3') }
+
+ let(:vuln_identifier) do
+ create_identifier(external_id: external_id, external_type: external_type, name: identifier_name)
+ end
+
+ let(:vuln_finding) do
+ create_finding(vulnerability_id: vulnerability_1.id, primary_identifier_id: vuln_identifier.id)
+ end
+
+ let!(:vulnerability_read_1) { create_vulnerability_read(vulnerability_id: vulnerability_1.id) }
+ let!(:vulnerability_read_2) { create_vulnerability_read(vulnerability_id: vulnerability_2.id) }
+ let!(:vulnerability_read_3) { create_vulnerability_read(vulnerability_id: vulnerability_3.id) }
+
+ before do
+ create_vulnerability_occurrence_identifier(occurrence_id: vuln_finding.id, identifier_id: vuln_identifier.id)
+ end
+ end
+
+ describe '#perform' do
+ subject(:perform_migration) do
+ described_class.new(
+ start_id: vulnerability_reads.first.vulnerability_id,
+ end_id: vulnerability_reads.last.vulnerability_id,
+ batch_table: :vulnerability_reads,
+ batch_column: :vulnerability_id,
+ sub_batch_size: vulnerability_reads.count,
+ pause_ms: 0,
+ connection: ActiveRecord::Base.connection
+ ).perform
+ end
+
+ context 'with owasp top 10 data' do
+ include_context 'with vulnerability data' do
+ let(:external_id) { 'A1:2017-Injection' }
+ let(:external_type) { 'owasp' }
+ let(:identifier_name) { 'Injection' }
+ end
+
+ it 'updates vulnerability_reads' do
+ expect { perform_migration }.to change { vulnerability_read_1.reload.owasp_top_10 }
+ .from(nil).to(1)
+ .and not_change { vulnerability_read_2.reload.owasp_top_10 }.from(nil)
+ end
+
+ it 'updates vulnerability_reads with correct mapping' do
+ vuln_identifier_2 = create_identifier(external_id: 'A1:2021', external_type: 'owasp', name: 'A1 2021')
+ vuln_identifier_3 = create_identifier
+ vuln_finding_2 = create_finding(vulnerability_id: vulnerability_2.id,
+ primary_identifier_id: vuln_identifier_2.id)
+ vuln_finding_3 = create_finding(vulnerability_id: vulnerability_3.id,
+ primary_identifier_id: vuln_identifier_3.id)
+
+ create_vulnerability_occurrence_identifier(occurrence_id: vuln_finding_2.id,
+ identifier_id: vuln_identifier_2.id)
+ create_vulnerability_occurrence_identifier(occurrence_id: vuln_finding_3.id,
+ identifier_id: vuln_identifier_3.id)
+
+ perform_migration
+
+ expect(vulnerability_read_1.reload.owasp_top_10).to eq(1)
+ expect(vulnerability_read_2.reload.owasp_top_10).to eq(11)
+ expect(vulnerability_read_3.reload.owasp_top_10).to be_nil
+ end
+ end
+
+ context 'with incorrect owasp top 10 data' do
+ include_context 'with vulnerability data'
+
+ shared_examples 'does not update vulnerability_reads' do
+ it do
+ perform_migration
+
+ expect(vulnerability_read_1.reload.owasp_top_10).to be_nil
+ expect(vulnerability_read_2.reload.owasp_top_10).to be_nil
+ expect(vulnerability_read_3.reload.owasp_top_10).to be_nil
+ end
+ end
+
+ context 'with incorrect long format external_id' do
+ let(:external_id) { 'A1:2015-Injection' }
+ let(:external_type) { 'owasp' }
+ let(:identifier_name) { 'Injection' }
+
+ it_behaves_like 'does not update vulnerability_reads'
+ end
+
+ context 'with incorrect short format external_id' do
+ let(:external_id) { 'A1' }
+ let(:external_type) { 'owasp' }
+ let(:identifier_name) { 'Injection' }
+
+ it_behaves_like 'does not update vulnerability_reads'
+ end
+
+ context 'with incorrect external_type' do
+ let(:external_id) { 'A1:2017' }
+ let(:external_type) { 'owasp2017' }
+ let(:identifier_name) { 'Injection' }
+
+ it_behaves_like 'does not update vulnerability_reads'
+ end
+ end
+
+ context 'with no vulnerability identifiers match' do
+ include_context 'with vulnerability data' do
+ let(:external_id) { 'CVE-2018-1234' }
+ let(:external_type) { 'CVE' }
+ let(:identifier_name) { 'CVE-2018-1234' }
+ end
+
+ it 'does not update vulnerability_reads' do
+ perform_migration
+
+ expect(vulnerability_reads.where.not(owasp_top_10: nil).count).to eq(0)
+ end
+ end
+ end
+
+ private
+
+ def create_vulnerability(overrides = {})
+ attrs = {
+ project_id: project.id,
+ author_id: user.id,
+ title: 'test',
+ severity: 1,
+ confidence: 1,
+ report_type: 1
+ }.merge(overrides)
+
+ vulnerabilities.create!(attrs)
+ end
+
+ def create_vulnerability_read(overrides = {})
+ attrs = {
+ project_id: project.id,
+ vulnerability_id: 1,
+ scanner_id: scanner.id,
+ severity: 1,
+ report_type: 1,
+ state: 1,
+ uuid: SecureRandom.uuid
+ }.merge(overrides)
+
+ vulnerability_reads.create!(attrs)
+ end
+
+ def create_finding(overrides = {})
+ attrs = {
+ project_id: project.id,
+ scanner_id: scanner.id,
+ severity: 5, # medium
+ confidence: 2, # unknown,
+ report_type: 99, # generic
+ primary_identifier_id: create_identifier.id,
+ project_fingerprint: SecureRandom.hex(20),
+ location_fingerprint: SecureRandom.hex(20),
+ uuid: SecureRandom.uuid,
+ name: "CVE-2018-1234",
+ raw_metadata: "{}",
+ metadata_version: "test:1.0"
+ }.merge(overrides)
+
+ vulnerability_findings.create!(attrs)
+ end
+
+ def create_identifier(overrides = {})
+ attrs = {
+ project_id: project.id,
+ external_id: "CVE-2018-1234",
+ external_type: "CVE",
+ name: "CVE-2018-1234",
+ fingerprint: SecureRandom.hex(20)
+ }.merge(overrides)
+
+ vulnerability_identifiers.create!(attrs)
+ end
+
+ def create_vulnerability_occurrence_identifier(overrides = {})
+ time = Time.now.utc
+
+ attrs = {
+ created_at: time,
+ updated_at: time,
+ occurrence_id: nil,
+ identifier_id: nil
+ }.merge(overrides)
+
+ vulnerability_occurrence_identifiers.create!(attrs)
+ end
+
+ def checksum(value)
+ sha = Digest::SHA256.hexdigest(value)
+ Gitlab::Database::ShaAttribute.new.serialize(sha)
+ end
+end
diff --git a/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_artifact_spec.rb b/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_artifact_spec.rb
new file mode 100644
index 00000000000..c466fdaa36a
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_artifact_spec.rb
@@ -0,0 +1,94 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::BackfillPartitionIdCiPipelineArtifact,
+ feature_category: :continuous_integration do
+ let(:ci_pipelines_table) { table(:ci_pipelines, database: :ci) }
+ let(:ci_pipeline_artifacts_table) { table(:ci_pipeline_artifacts, database: :ci) }
+ let!(:pipeline_100) { ci_pipelines_table.create!(id: 1, partition_id: 100) }
+ let!(:pipeline_101) { ci_pipelines_table.create!(id: 2, partition_id: 101) }
+ let!(:pipeline_102) { ci_pipelines_table.create!(id: 3, partition_id: 101) }
+ let!(:ci_pipeline_artifact_100) do
+ ci_pipeline_artifacts_table.create!(
+ id: 1,
+ pipeline_id: pipeline_100.id,
+ project_id: 1,
+ size: 1.megabyte,
+ file_type: 1,
+ file_format: 1,
+ file: fixture_file_upload(
+ Rails.root.join('spec/fixtures/pipeline_artifacts/code_coverage.json'), 'application/json'
+ ),
+ partition_id: pipeline_100.partition_id
+ )
+ end
+
+ let!(:ci_pipeline_artifact_101) do
+ ci_pipeline_artifacts_table.create!(
+ id: 2,
+ pipeline_id: pipeline_101.id,
+ project_id: 1,
+ size: 1.megabyte,
+ file_type: 1,
+ file_format: 1,
+ file: fixture_file_upload(
+ Rails.root.join('spec/fixtures/pipeline_artifacts/code_coverage.json'), 'application/json'
+ ),
+ partition_id: pipeline_101.partition_id
+ )
+ end
+
+ let!(:invalid_ci_pipeline_artifact) do
+ ci_pipeline_artifacts_table.create!(
+ id: 3,
+ pipeline_id: pipeline_102.id,
+ project_id: 1,
+ size: 1.megabyte,
+ file_type: 1,
+ file_format: 1,
+ file: fixture_file_upload(
+ Rails.root.join('spec/fixtures/pipeline_artifacts/code_coverage.json'), 'application/json'
+ ),
+ partition_id: pipeline_100.partition_id
+ )
+ end
+
+ let(:migration_attrs) do
+ {
+ start_id: ci_pipeline_artifacts_table.minimum(:pipeline_id),
+ end_id: ci_pipeline_artifacts_table.maximum(:pipeline_id),
+ batch_table: :ci_pipeline_artifacts,
+ batch_column: :id,
+ sub_batch_size: 1,
+ pause_ms: 0,
+ connection: Ci::ApplicationRecord.connection
+ }
+ end
+
+ let!(:migration) { described_class.new(**migration_attrs) }
+
+ describe '#perform' do
+ context 'when second partition does not exist' do
+ it 'does not execute the migration' do
+ expect { migration.perform }
+ .not_to change { invalid_ci_pipeline_artifact.reload.partition_id }
+ end
+ end
+
+ context 'when second partition exists' do
+ before do
+ allow(migration).to receive(:uses_multiple_partitions?).and_return(true)
+ end
+
+ it 'fixes invalid records in the wrong the partition' do
+ expect { migration.perform }
+ .to not_change { ci_pipeline_artifact_100.reload.partition_id }
+ .and not_change { ci_pipeline_artifact_101.reload.partition_id }
+ .and change { invalid_ci_pipeline_artifact.reload.partition_id }
+ .from(100)
+ .to(101)
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_chat_data_spec.rb b/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_chat_data_spec.rb
new file mode 100644
index 00000000000..ad1900ab6a6
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_chat_data_spec.rb
@@ -0,0 +1,67 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::BackfillPartitionIdCiPipelineChatData,
+ feature_category: :continuous_integration do
+ let(:ci_pipelines_table) { table(:ci_pipelines, database: :ci) }
+ let(:ci_pipeline_chat_data_table) { table(:ci_pipeline_chat_data, database: :ci) }
+ let!(:pipeline1) { ci_pipelines_table.create!(id: 1, partition_id: 100) }
+ let!(:pipeline2) { ci_pipelines_table.create!(id: 2, partition_id: 101) }
+ let!(:invalid_ci_pipeline_chat_data) do
+ ci_pipeline_chat_data_table.create!(
+ id: 1,
+ pipeline_id: pipeline1.id,
+ chat_name_id: 1,
+ response_url: '',
+ partition_id: pipeline1.partition_id
+ )
+ end
+
+ let!(:valid_ci_pipeline_chat_data) do
+ ci_pipeline_chat_data_table.create!(
+ id: 2,
+ pipeline_id: pipeline2.id,
+ chat_name_id: 2,
+ response_url: '',
+ partition_id: pipeline2.partition_id
+ )
+ end
+
+ let(:migration_attrs) do
+ {
+ start_id: ci_pipeline_chat_data_table.minimum(:id),
+ end_id: ci_pipeline_chat_data_table.maximum(:id),
+ batch_table: :ci_pipeline_chat_data,
+ batch_column: :id,
+ sub_batch_size: 1,
+ pause_ms: 0,
+ connection: Ci::ApplicationRecord.connection
+ }
+ end
+
+ let!(:migration) { described_class.new(**migration_attrs) }
+
+ describe '#perform' do
+ context 'when second partition does not exist' do
+ it 'does not execute the migration' do
+ expect { migration.perform }
+ .not_to change { invalid_ci_pipeline_chat_data.reload.partition_id }
+ end
+ end
+
+ context 'when second partition exists' do
+ before do
+ allow(migration).to receive(:uses_multiple_partitions?).and_return(true)
+ pipeline1.update!(partition_id: 101)
+ end
+
+ it 'fixes invalid records in the wrong the partition' do
+ expect { migration.perform }
+ .to change { invalid_ci_pipeline_chat_data.reload.partition_id }
+ .from(100)
+ .to(101)
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_config_spec.rb b/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_config_spec.rb
new file mode 100644
index 00000000000..fad3e277888
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_config_spec.rb
@@ -0,0 +1,73 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::BackfillPartitionIdCiPipelineConfig,
+ feature_category: :continuous_integration do
+ let(:ci_pipelines_table) { table(:ci_pipelines, database: :ci) }
+ let(:ci_pipeline_config_table) { table(:ci_pipelines_config, database: :ci) }
+ let!(:pipeline_1) { ci_pipelines_table.create!(id: 1, partition_id: 100) }
+ let!(:pipeline_2) { ci_pipelines_table.create!(id: 2, partition_id: 101) }
+ let!(:pipeline_3) { ci_pipelines_table.create!(id: 3, partition_id: 101) }
+ let!(:ci_pipeline_config_100) do
+ ci_pipeline_config_table.create!(
+ pipeline_id: pipeline_1.id,
+ content: "content",
+ partition_id: pipeline_1.partition_id
+ )
+ end
+
+ let!(:ci_pipeline_config_101) do
+ ci_pipeline_config_table.create!(
+ pipeline_id: pipeline_2.id,
+ content: "content",
+ partition_id: pipeline_2.partition_id
+ )
+ end
+
+ let!(:invalid_ci_pipeline_config) do
+ ci_pipeline_config_table.create!(
+ pipeline_id: pipeline_3.id,
+ content: "content",
+ partition_id: pipeline_1.partition_id
+ )
+ end
+
+ let(:migration_attrs) do
+ {
+ start_id: ci_pipeline_config_table.minimum(:pipeline_id),
+ end_id: ci_pipeline_config_table.maximum(:pipeline_id),
+ batch_table: :ci_pipelines_config,
+ batch_column: :pipeline_id,
+ sub_batch_size: 1,
+ pause_ms: 0,
+ connection: Ci::ApplicationRecord.connection
+ }
+ end
+
+ let!(:migration) { described_class.new(**migration_attrs) }
+
+ describe '#perform' do
+ context 'when second partition does not exist' do
+ before do
+ pipeline_3.update!(partition_id: 100)
+ end
+
+ it 'does not execute the migration' do
+ expect { migration.perform }
+ .not_to change { invalid_ci_pipeline_config.reload.partition_id }
+ end
+ end
+
+ context 'when second partition exists' do
+ it 'fixes invalid records in the wrong the partition' do
+ expect { migration.perform }
+ .to not_change { ci_pipeline_config_100.reload.partition_id }
+ .and not_change { ci_pipeline_config_101.reload.partition_id }
+ .and change { invalid_ci_pipeline_config.reload.partition_id }
+ .from(100)
+ .to(101)
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_metadata_spec.rb b/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_metadata_spec.rb
new file mode 100644
index 00000000000..d09d5016dcc
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/backfill_partition_id_ci_pipeline_metadata_spec.rb
@@ -0,0 +1,73 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::BackfillPartitionIdCiPipelineMetadata,
+ feature_category: :continuous_integration do
+ let(:ci_pipelines_table) { table(:ci_pipelines, database: :ci) }
+ let(:ci_pipeline_metadata_table) { table(:ci_pipeline_metadata, database: :ci) }
+ let!(:pipeline_100) { ci_pipelines_table.create!(id: 1, partition_id: 100) }
+ let!(:pipeline_101) { ci_pipelines_table.create!(id: 2, partition_id: 101) }
+ let!(:pipeline_102) { ci_pipelines_table.create!(id: 3, partition_id: 101) }
+ let!(:ci_pipeline_metadata_100) do
+ ci_pipeline_metadata_table.create!(
+ pipeline_id: pipeline_100.id,
+ project_id: 1,
+ partition_id: pipeline_100.partition_id
+ )
+ end
+
+ let!(:ci_pipeline_metadata_101) do
+ ci_pipeline_metadata_table.create!(
+ pipeline_id: pipeline_101.id,
+ project_id: 1,
+ partition_id: pipeline_101.partition_id
+ )
+ end
+
+ let!(:invalid_ci_pipeline_metadata) do
+ ci_pipeline_metadata_table.create!(
+ pipeline_id: pipeline_102.id,
+ project_id: 1,
+ partition_id: pipeline_100.partition_id
+ )
+ end
+
+ let(:migration_attrs) do
+ {
+ start_id: ci_pipeline_metadata_table.minimum(:pipeline_id),
+ end_id: ci_pipeline_metadata_table.maximum(:pipeline_id),
+ batch_table: :ci_pipeline_metadata,
+ batch_column: :pipeline_id,
+ sub_batch_size: 1,
+ pause_ms: 0,
+ connection: Ci::ApplicationRecord.connection
+ }
+ end
+
+ let!(:migration) { described_class.new(**migration_attrs) }
+
+ describe '#perform' do
+ context 'when second partition does not exist' do
+ it 'does not execute the migration' do
+ expect { migration.perform }
+ .not_to change { invalid_ci_pipeline_metadata.reload.partition_id }
+ end
+ end
+
+ context 'when second partition exists' do
+ before do
+ allow(migration).to receive(:uses_multiple_partitions?).and_return(true)
+ end
+
+ it 'fixes invalid records in the wrong the partition' do
+ expect { migration.perform }
+ .to not_change { ci_pipeline_metadata_100.reload.partition_id }
+ .and not_change { ci_pipeline_metadata_101.reload.partition_id }
+ .and change { invalid_ci_pipeline_metadata.reload.partition_id }
+ .from(100)
+ .to(101)
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/background_migration/backfill_vs_code_settings_version_spec.rb b/spec/lib/gitlab/background_migration/backfill_vs_code_settings_version_spec.rb
new file mode 100644
index 00000000000..725cd7f4bca
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/backfill_vs_code_settings_version_spec.rb
@@ -0,0 +1,84 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::BackfillVsCodeSettingsVersion, schema: 20231212135235, feature_category: :web_ide do
+ let(:vs_code_settings) { table(:vs_code_settings) }
+
+ let(:users) { table(:users) }
+
+ let(:user) do
+ users.create!(
+ email: "test1@example.com",
+ username: "test1",
+ notification_email: "test@example.com",
+ name: "test",
+ state: "active",
+ projects_limit: 10)
+ end
+
+ let(:persistent_settings) { VsCode::Settings::SETTINGS_TYPES.filter { |type| type != 'machines' } }
+
+ subject(:migration) do
+ described_class.new(
+ start_id: vs_code_settings.first.id,
+ end_id: vs_code_settings.last.id,
+ batch_table: :vs_code_settings,
+ batch_column: :id,
+ sub_batch_size: 100,
+ pause_ms: 0,
+ connection: ActiveRecord::Base.connection
+ )
+ end
+
+ describe "#perform" do
+ context 'when it finds vs_code_setting rows with version that is nil or zero' do
+ let(:settings) do
+ persistent_settings.each_with_index.map do |type, index|
+ vs_code_settings.create!(user_id: user.id,
+ setting_type: type,
+ content: '{}',
+ uuid: SecureRandom.uuid,
+ version: index.odd? ? nil : 0)
+ end
+ end
+
+ it 'sets version field with default value for setting type' do
+ settings.each do |setting|
+ expect(setting.version).to eq(nil).or eq(0)
+ end
+
+ migration.perform
+
+ settings.each do |setting|
+ expect(setting.reload.version)
+ .to eq(described_class::VsCodeSetting::DEFAULT_SETTING_VERSIONS[setting.setting_type])
+ end
+ end
+ end
+
+ context 'when it finds vs_code_setting rows with version that is not nil or zero' do
+ let(:settings) do
+ persistent_settings.map do |type|
+ vs_code_settings.create!(user_id: user.id,
+ setting_type: type,
+ content: '{}',
+ uuid: SecureRandom.uuid,
+ version: 1)
+ end
+ end
+
+ it 'does not set version field' do
+ settings.each do |setting|
+ expect(setting.version).to eq(1)
+ end
+
+ migration.perform
+
+ settings.each do |setting|
+ expect(setting.reload.version).to eq(1)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/background_migration/drop_vulnerabilities_without_finding_id_spec.rb b/spec/lib/gitlab/background_migration/drop_vulnerabilities_without_finding_id_spec.rb
new file mode 100644
index 00000000000..05817001395
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/drop_vulnerabilities_without_finding_id_spec.rb
@@ -0,0 +1,124 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::DropVulnerabilitiesWithoutFindingId, feature_category: :vulnerability_management do # rubocop:disable Layout/LineLength -- autogenerated
+ let(:namespaces) { table(:namespaces) }
+ let(:projects) { table(:projects) }
+ let(:users) { table(:users) }
+ let(:members) { table(:members) }
+ let(:vulnerability_identifiers) { table(:vulnerability_identifiers) }
+ let(:vulnerability_scanners) { table(:vulnerability_scanners) }
+ let(:vulnerability_findings) { table(:vulnerability_occurrences) }
+ let(:vulnerabilities) { table(:vulnerabilities) }
+ let!(:user) { create_user(email: "test1@example.com", username: "test1") }
+ let!(:namespace) { namespaces.create!(name: "test-1", path: "test-1", owner_id: user.id) }
+ let!(:project) do
+ projects.create!(
+ id: 9999, namespace_id: namespace.id,
+ project_namespace_id: namespace.id,
+ creator_id: user.id
+ )
+ end
+
+ let!(:membership) do
+ members.create!(access_level: 50, source_id: project.id, source_type: "Project", user_id: user.id, state: 0,
+ notification_level: 3, type: "ProjectMember", member_namespace_id: namespace.id)
+ end
+
+ let(:migration_attrs) do
+ {
+ start_id: vulnerabilities.first.id,
+ end_id: vulnerabilities.last.id,
+ batch_table: :vulnerabilities,
+ batch_column: :id,
+ sub_batch_size: 100,
+ pause_ms: 0,
+ connection: ApplicationRecord.connection
+ }
+ end
+
+ describe "#perform" do
+ subject(:background_migration) { described_class.new(**migration_attrs).perform }
+
+ let!(:vulnerability_without_finding_id) { create_vulnerability }
+
+ let!(:vulnerabilities_finding) { create_finding(project) }
+ let!(:vulnerability_with_finding_id) { create_vulnerability(finding_id: vulnerabilities_finding.id) }
+
+ it 'removes all Vulnerabilities without a finding_id' do
+ expect { background_migration }.to change { vulnerabilities.count }.from(2).to(1)
+ end
+ end
+
+ private
+
+ def create_scanner(project, overrides = {})
+ attrs = {
+ project_id: project.id,
+ external_id: "test_vulnerability_scanner",
+ name: "Test Vulnerabilities::Scanner"
+ }.merge(overrides)
+
+ vulnerability_scanners.create!(attrs)
+ end
+
+ def create_identifier(project, overrides = {})
+ attrs = {
+ project_id: project.id,
+ external_id: "CVE-2018-1234",
+ external_type: "CVE",
+ name: "CVE-2018-1234",
+ fingerprint: SecureRandom.hex(20)
+ }.merge(overrides)
+
+ vulnerability_identifiers.create!(attrs)
+ end
+
+ def create_finding(project, overrides = {})
+ attrs = {
+ project_id: project.id,
+ scanner_id: create_scanner(project).id,
+ severity: 5, # medium
+ confidence: 2, # unknown,
+ report_type: 99, # generic
+ primary_identifier_id: create_identifier(project).id,
+ project_fingerprint: SecureRandom.hex(20),
+ location_fingerprint: SecureRandom.hex(20),
+ uuid: SecureRandom.uuid,
+ name: "CVE-2018-1234",
+ raw_metadata: "{}",
+ metadata_version: "test:1.0"
+ }.merge(overrides)
+
+ vulnerability_findings.create!(attrs)
+ end
+
+ def create_vulnerability(overrides = {})
+ attrs = {
+ project_id: project.id,
+ author_id: user.id,
+ title: 'test',
+ severity: 1,
+ confidence: 1,
+ report_type: 1,
+ state: 1,
+ detected_at: Time.zone.now
+ }.merge(overrides)
+
+ vulnerabilities.create!(attrs)
+ end
+
+ def create_user(overrides = {})
+ attrs = {
+ email: "test@example.com",
+ notification_email: "test@example.com",
+ name: "test",
+ username: "test",
+ state: "active",
+ projects_limit: 10
+ }.merge(overrides)
+
+ users.create!(attrs)
+ end
+end
diff --git a/spec/lib/gitlab/bitbucket_server_import/importers/pull_request_importer_spec.rb b/spec/lib/gitlab/bitbucket_server_import/importers/pull_request_importer_spec.rb
index 1ae68f9efb8..eeb2f9c8000 100644
--- a/spec/lib/gitlab/bitbucket_server_import/importers/pull_request_importer_spec.rb
+++ b/spec/lib/gitlab/bitbucket_server_import/importers/pull_request_importer_spec.rb
@@ -18,6 +18,8 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::PullRequestImporter, fe
it 'imports the merge request correctly' do
expect_next(Gitlab::Import::MergeRequestCreator, project).to receive(:execute).and_call_original
expect_next(Gitlab::BitbucketServerImport::UserFinder, project).to receive(:author_id).and_call_original
+ expect_next(Gitlab::BitbucketServerImport::MentionsConverter, project.id).to receive(:convert).and_call_original
+
expect { importer.execute }.to change { MergeRequest.count }.by(1)
merge_request = project.merge_requests.find_by_iid(pull_request.iid)
@@ -34,6 +36,18 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::PullRequestImporter, fe
)
end
+ context 'when the `bitbucket_server_convert_mentions_to_users` flag is disabled' do
+ before do
+ stub_feature_flags(bitbucket_server_convert_mentions_to_users: false)
+ end
+
+ it 'does not convert mentions' do
+ expect_next(Gitlab::BitbucketServerImport::MentionsConverter, project.id).not_to receive(:convert)
+
+ importer.execute
+ end
+ end
+
context 'when the `bitbucket_server_user_mapping_by_username` flag is disabled' do
before do
stub_feature_flags(bitbucket_server_user_mapping_by_username: false)
diff --git a/spec/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer_spec.rb b/spec/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer_spec.rb
index 914ebefdb8f..7b662c1a2c7 100644
--- a/spec/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer_spec.rb
+++ b/spec/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer_spec.rb
@@ -17,6 +17,7 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::PullRequestNotesImporte
let_it_be(:pull_request_data) { Gitlab::Json.parse(fixture_file('importers/bitbucket_server/pull_request.json')) }
let_it_be(:pull_request) { BitbucketServer::Representation::PullRequest.new(pull_request_data) }
let_it_be(:note_author) { create(:user, username: 'note_author', email: 'note_author@example.org') }
+ let(:mentions_converter) { Gitlab::BitbucketServerImport::MentionsConverter.new(project) }
let!(:pull_request_author) do
create(:user, username: 'pull_request_author', email: 'pull_request_author@example.org')
@@ -79,6 +80,10 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::PullRequestNotesImporte
.to receive(:info).with(include(import_stage: stage, message: message))
end
+ before do
+ allow(Gitlab::BitbucketServerImport::MentionsConverter).to receive(:new).and_return(mentions_converter)
+ end
+
subject(:importer) { described_class.new(project.reload, pull_request.to_hash) }
describe '#execute' do
@@ -113,6 +118,8 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::PullRequestNotesImporte
end
it 'imports the stand alone comments' do
+ expect(mentions_converter).to receive(:convert).and_call_original
+
expect { subject.execute }.to change { Note.count }.by(1)
expect(merge_request.notes.count).to eq(1)
@@ -124,6 +131,66 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::PullRequestNotesImporte
)
end
+ context 'when the author is not found' do
+ before do
+ allow_next_instance_of(Gitlab::BitbucketServerImport::UserFinder) do |user_finder|
+ allow(user_finder).to receive(:uid).and_return(nil)
+ end
+ end
+
+ it 'adds a note with the author username and email' do
+ subject.execute
+
+ expect(Note.first.note).to include("*By #{note_author.username} (#{note_author.email})")
+ end
+ end
+
+ context 'when the note has a parent note' do
+ let(:pr_note) do
+ instance_double(
+ BitbucketServer::Representation::Comment,
+ note: 'Note',
+ author_email: note_author.email,
+ author_username: note_author.username,
+ comments: [],
+ created_at: now,
+ updated_at: now,
+ parent_comment: pr_parent_note
+ )
+ end
+
+ let(:pr_parent_note) do
+ instance_double(
+ BitbucketServer::Representation::Comment,
+ note: 'Parent note',
+ author_email: note_author.email,
+ author_username: note_author.username,
+ comments: [],
+ created_at: now,
+ updated_at: now,
+ parent_comment: nil
+ )
+ end
+
+ it 'adds the parent note before the actual note' do
+ subject.execute
+
+ expect(Note.first.note).to include("> #{pr_parent_note.note}\n\n")
+ end
+ end
+
+ context 'when the `bitbucket_server_convert_mentions_to_users` flag is disabled' do
+ before do
+ stub_feature_flags(bitbucket_server_convert_mentions_to_users: false)
+ end
+
+ it 'does not convert mentions' do
+ expect(mentions_converter).not_to receive(:convert)
+
+ subject.execute
+ end
+ end
+
it 'logs its progress' do
expect_log(stage: 'import_standalone_pr_comments', message: 'starting')
expect_log(stage: 'import_standalone_pr_comments', message: 'finished')
@@ -181,6 +248,8 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::PullRequestNotesImporte
end
it 'imports the threaded discussion' do
+ expect(mentions_converter).to receive(:convert).and_call_original.twice
+
expect { subject.execute }.to change { Note.count }.by(2)
expect(merge_request.discussions.count).to eq(1)
@@ -204,6 +273,18 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::PullRequestNotesImporte
expect(reply_note.position.new_line).to eq(pr_inline_note.new_pos)
end
+ context 'when the `bitbucket_server_convert_mentions_to_users` flag is disabled' do
+ before do
+ stub_feature_flags(bitbucket_server_convert_mentions_to_users: false)
+ end
+
+ it 'does not convert mentions' do
+ expect(mentions_converter).not_to receive(:convert)
+
+ subject.execute
+ end
+ end
+
it 'logs its progress' do
expect_log(stage: 'import_inline_comments', message: 'starting')
expect_log(stage: 'import_inline_comments', message: 'finished')
diff --git a/spec/lib/gitlab/bitbucket_server_import/importers/users_importer_spec.rb b/spec/lib/gitlab/bitbucket_server_import/importers/users_importer_spec.rb
index 33d6ab94513..79010390628 100644
--- a/spec/lib/gitlab/bitbucket_server_import/importers/users_importer_spec.rb
+++ b/spec/lib/gitlab/bitbucket_server_import/importers/users_importer_spec.rb
@@ -52,6 +52,13 @@ RSpec.describe Gitlab::BitbucketServerImport::Importers::UsersImporter, feature_
expect(logger).to receive(:info).with(hash_including(message: 'importing page 3 using batch size 2'))
expect(logger).to receive(:info).with(hash_including(message: 'finished'))
+ expect_next_instance_of(Gitlab::Import::PageCounter) do |page_counter|
+ expect(page_counter).to receive(:current).and_call_original.once
+ expect(page_counter).to receive(:set).with(2).and_call_original.once
+ expect(page_counter).to receive(:set).with(3).and_call_original.once
+ expect(page_counter).to receive(:expire!).and_call_original.once
+ end
+
expect(Gitlab::Cache::Import::Caching).to receive(:write_multiple).and_call_original.twice
importer.execute
diff --git a/spec/lib/gitlab/bitbucket_server_import/mentions_converter_spec.rb b/spec/lib/gitlab/bitbucket_server_import/mentions_converter_spec.rb
new file mode 100644
index 00000000000..46800c924c9
--- /dev/null
+++ b/spec/lib/gitlab/bitbucket_server_import/mentions_converter_spec.rb
@@ -0,0 +1,118 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BitbucketServerImport::MentionsConverter, :clean_gitlab_redis_cache, feature_category: :importers do
+ let(:project_id) { 12 }
+ let(:text) { 'text without @ mentions' }
+ let(:source_user_cache_prefix) { "bitbucket_server/project/#{project_id}/source/username" }
+
+ subject(:converted_text) { described_class.new(project_id).convert(text) }
+
+ describe '#convert' do
+ context 'when the text has no mentions' do
+ it 'does not change the text' do
+ expect(converted_text).to eq(text)
+ end
+ end
+
+ context 'when the text has a mention' do
+ let(:text) { 'mentioning @john' }
+
+ context 'when the mention has matching cached email' do
+ before do
+ ::Gitlab::Cache::Import::Caching.write("#{source_user_cache_prefix}/john", 'john@example.com')
+ end
+
+ context 'when a user with the email does not exist on gitlab' do
+ it 'puts the mention in backticks' do
+ expect(converted_text).to eq('mentioning `@john`')
+ end
+ end
+
+ context 'when a user with the same email exists on gitlab' do
+ let_it_be(:user) { create(:user, username: 'johndoe', email: 'john@example.com') }
+
+ it "replaces the mention with the user's username" do
+ expect(converted_text).to eq('mentioning @johndoe')
+ end
+ end
+
+ context 'when a user with the same username but not email exists on gitlab' do
+ let_it_be(:user) { create(:user, username: 'john') }
+
+ it 'puts the mention in backticks' do
+ expect(converted_text).to eq('mentioning `@john`')
+ end
+ end
+ end
+
+ context 'when there is cached email but not for the mentioned username' do
+ before do
+ ::Gitlab::Cache::Import::Caching.write("#{source_user_cache_prefix}/jane", 'jane@example.com')
+ end
+
+ it 'puts the mention in backticks' do
+ expect(converted_text).to eq('mentioning `@john`')
+ end
+
+ context 'when a user with the same email exists on gitlab' do
+ let_it_be(:user) { create(:user, username: 'jane', email: 'jane@example.com') }
+
+ it 'puts the mention in backticks' do
+ expect(converted_text).to eq('mentioning `@john`')
+ end
+ end
+ end
+
+ context 'when the mention has digits, underscores, uppercase and hyphens' do
+ let(:text) { '@john_DOE-123' }
+ let_it_be(:user) { create(:user, username: 'johndoe', email: 'john@example.com') }
+
+ before do
+ ::Gitlab::Cache::Import::Caching.write("#{source_user_cache_prefix}/john_DOE-123", 'john@example.com')
+ end
+
+ it "replaces the mention with the user's username" do
+ expect(converted_text).to eq('@johndoe')
+ end
+ end
+
+ context 'when the mention has emails' do
+ let(:text) { "@john's email is john@gmail.com and @jane's email is info@jane." }
+
+ it 'does not alter the emails' do
+ expect(converted_text).to eq("`@john`'s email is john@gmail.com and `@jane`'s email is info@jane.")
+ end
+ end
+
+ context 'when no emails are cached' do
+ it 'puts the mention in backticks' do
+ expect(converted_text).to eq('mentioning `@john`')
+ end
+ end
+ end
+
+ context 'when the text has multiple mentions' do
+ let(:text) { "@john, @jane-doe and @johndoe123 with \n@john again on a newline" }
+
+ context 'if none of the mentions have matching cached emails and users' do
+ it 'puts every mention in backticks' do
+ expect(converted_text).to eq("`@john`, `@jane-doe` and `@johndoe123` with \n`@john` again on a newline")
+ end
+ end
+
+ context 'if one of the mentions have matching user' do
+ let_it_be(:user) { create(:user, username: 'johndoe', email: 'john@example.com') }
+
+ before do
+ ::Gitlab::Cache::Import::Caching.write("#{source_user_cache_prefix}/john", 'john@example.com')
+ end
+
+ it 'replaces all mentions with the username and puts rest of mentions in backticks' do
+ expect(converted_text).to eq("@johndoe, `@jane-doe` and `@johndoe123` with \n@johndoe again on a newline")
+ end
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/bitbucket_server_import/user_from_mention_spec.rb b/spec/lib/gitlab/bitbucket_server_import/user_from_mention_spec.rb
new file mode 100644
index 00000000000..73f9cde8322
--- /dev/null
+++ b/spec/lib/gitlab/bitbucket_server_import/user_from_mention_spec.rb
@@ -0,0 +1,67 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BitbucketServerImport::UserFromMention, :clean_gitlab_redis_cache, feature_category: :importers do
+ let(:project_id) { 11 }
+ let(:username) { '@johndoe' }
+ let(:email) { 'john@gmail.com' }
+ let(:hash) { { key: 'value' } }
+ let(:cache_key) { "bitbucket_server/project/#{project_id}/source/username/#{username}" }
+
+ let(:example) do
+ Class.new do
+ include Gitlab::BitbucketServerImport::UserFromMention
+
+ def initialize(project_id)
+ @project_id = project_id
+ end
+
+ attr_reader :project_id
+
+ def foo(mention)
+ user_from_cache(mention)
+ end
+
+ def bar(hash)
+ cache_multiple(hash)
+ end
+ end
+ end
+
+ subject(:example_class) { example.new(project_id) }
+
+ describe '#user_from_cache' do
+ it 'returns nil if the cache is empty' do
+ expect(example_class.foo(username)).to be_nil
+ end
+
+ context 'when the username and email is cached' do
+ before do
+ ::Gitlab::Cache::Import::Caching.write(cache_key, email)
+ end
+
+ context 'if a user with the email does not exist' do
+ it 'returns nil' do
+ expect(example_class.foo(username)).to be_nil
+ end
+ end
+
+ context 'if a user with the email exists' do
+ let!(:user) { create(:user, email: email) }
+
+ it 'returns the user' do
+ expect(example_class.foo(username)).to eq(user)
+ end
+ end
+ end
+ end
+
+ describe '#cache_multiple' do
+ it 'calls write_multiple with the hash' do
+ expect(Gitlab::Cache::Import::Caching).to receive(:write_multiple).with(hash, timeout: 72.hours)
+
+ example_class.bar(hash)
+ end
+ end
+end
diff --git a/spec/lib/gitlab/cache/import/caching_spec.rb b/spec/lib/gitlab/cache/import/caching_spec.rb
index 8f1c552e0b7..6cde51b668a 100644
--- a/spec/lib/gitlab/cache/import/caching_spec.rb
+++ b/spec/lib/gitlab/cache/import/caching_spec.rb
@@ -224,4 +224,56 @@ RSpec.describe Gitlab::Cache::Import::Caching, :clean_gitlab_redis_cache, :clean
subject { described_class.write_if_greater('foo', value) }
end
end
+
+ describe '.list_add' do
+ it 'adds a value to a list' do
+ described_class.list_add('foo', 10)
+ described_class.list_add('foo', 20)
+
+ key = described_class.cache_key_for('foo')
+ values = Gitlab::Redis::Cache.with { |r| r.lrange(key, 0, -1) }
+
+ expect(values).to eq(%w[10 20])
+ end
+
+ context 'when a limit is provided' do
+ it 'limits the size of the list to the number of items defined by the limit' do
+ described_class.list_add('foo', 10, limit: 3)
+ described_class.list_add('foo', 20, limit: 3)
+ described_class.list_add('foo', 30, limit: 3)
+ described_class.list_add('foo', 40, limit: 3)
+
+ key = described_class.cache_key_for('foo')
+ values = Gitlab::Redis::Cache.with { |r| r.lrange(key, 0, -1) }
+
+ expect(values).to eq(%w[20 30 40])
+ end
+ end
+
+ it_behaves_like 'validated redis value' do
+ subject { described_class.list_add('foo', value) }
+ end
+ end
+
+ describe '.values_from_list' do
+ it 'returns empty hash when the list is empty' do
+ expect(described_class.values_from_list('foo')).to eq([])
+ end
+
+ it 'returns the items stored in the list in order' do
+ described_class.list_add('foo', 10)
+ described_class.list_add('foo', 20)
+ described_class.list_add('foo', 10)
+
+ expect(described_class.values_from_list('foo')).to eq(%w[10 20 10])
+ end
+ end
+
+ describe '.del' do
+ it 'deletes the key' do
+ described_class.write('foo', 'value')
+
+ expect { described_class.del('foo') }.to change { described_class.read('foo') }.from('value').to(nil)
+ end
+ end
end
diff --git a/spec/lib/gitlab/checks/changes_access_spec.rb b/spec/lib/gitlab/checks/changes_access_spec.rb
index 854c04dd581..d20399cf7cf 100644
--- a/spec/lib/gitlab/checks/changes_access_spec.rb
+++ b/spec/lib/gitlab/checks/changes_access_spec.rb
@@ -78,13 +78,13 @@ RSpec.describe Gitlab::Checks::ChangesAccess, feature_category: :source_code_man
end
context 'with oldrev' do
- let(:changes) { [{ oldrev: oldrev, newrev: newrev }, { newrev: '' }, { newrev: Gitlab::Git::BLANK_SHA }] }
+ let(:changes) { [{ oldrev: oldrev, newrev: newrev }, { newrev: '' }, { newrev: Gitlab::Git::SHA1_BLANK_SHA }] }
it_behaves_like 'returns only commits with non empty revisions'
end
context 'without oldrev' do
- let(:changes) { [{ newrev: newrev }, { newrev: '' }, { newrev: Gitlab::Git::BLANK_SHA }] }
+ let(:changes) { [{ newrev: newrev }, { newrev: '' }, { newrev: Gitlab::Git::SHA1_BLANK_SHA }] }
it_behaves_like 'returns only commits with non empty revisions'
end
@@ -94,7 +94,7 @@ RSpec.describe Gitlab::Checks::ChangesAccess, feature_category: :source_code_man
describe '#commits_for' do
let(:new_commits) { [] }
let(:expected_commits) { [] }
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
shared_examples 'a listing of new commits' do
it 'returns expected commits' do
diff --git a/spec/lib/gitlab/checks/diff_check_spec.rb b/spec/lib/gitlab/checks/diff_check_spec.rb
index 20c6ad8a6e8..8056611b5bd 100644
--- a/spec/lib/gitlab/checks/diff_check_spec.rb
+++ b/spec/lib/gitlab/checks/diff_check_spec.rb
@@ -63,7 +63,7 @@ RSpec.describe Gitlab::Checks::DiffCheck, feature_category: :source_code_managem
end
context 'when deletion is true' do
- let(:newrev) { Gitlab::Git::BLANK_SHA }
+ let(:newrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'does not call find_changed_paths' do
expect(project.repository).not_to receive(:find_changed_paths)
diff --git a/spec/lib/gitlab/checks/lfs_check_spec.rb b/spec/lib/gitlab/checks/lfs_check_spec.rb
index 9f001dd1941..f00915bc1ec 100644
--- a/spec/lib/gitlab/checks/lfs_check_spec.rb
+++ b/spec/lib/gitlab/checks/lfs_check_spec.rb
@@ -61,7 +61,7 @@ RSpec.describe Gitlab::Checks::LfsCheck, feature_category: :source_code_manageme
context 'with blank newrev' do
it_behaves_like 'a skipped integrity check' do
- let(:changes) { [{ oldrev: oldrev, newrev: Gitlab::Git::BLANK_SHA, ref: ref }] }
+ let(:changes) { [{ oldrev: oldrev, newrev: Gitlab::Git::SHA1_BLANK_SHA, ref: ref }] }
end
end
end
diff --git a/spec/lib/gitlab/checks/lfs_integrity_spec.rb b/spec/lib/gitlab/checks/lfs_integrity_spec.rb
index 0aecf26f42f..4f844f10f34 100644
--- a/spec/lib/gitlab/checks/lfs_integrity_spec.rb
+++ b/spec/lib/gitlab/checks/lfs_integrity_spec.rb
@@ -66,7 +66,7 @@ RSpec.describe Gitlab::Checks::LfsIntegrity, feature_category: :source_code_mana
end
context 'deletion' do
- let(:newrevs) { [Gitlab::Git::BLANK_SHA] }
+ let(:newrevs) { [Gitlab::Git::SHA1_BLANK_SHA] }
it 'skips integrity check' do
expect_any_instance_of(Gitlab::Git::LfsChanges).not_to receive(:new_pointers)
diff --git a/spec/lib/gitlab/ci/build/image_spec.rb b/spec/lib/gitlab/ci/build/image_spec.rb
index f8c0d69be2e..3854437483d 100644
--- a/spec/lib/gitlab/ci/build/image_spec.rb
+++ b/spec/lib/gitlab/ci/build/image_spec.rb
@@ -29,7 +29,7 @@ RSpec.describe Gitlab::Ci::Build::Image do
context 'when image is defined as hash' do
let(:entrypoint) { '/bin/sh' }
let(:pull_policy) { %w[always if-not-present] }
- let(:executor_opts) { { docker: { platform: 'arm64' } } }
+ let(:executor_opts) { { docker: { platform: 'arm64', user: 'dave' } } }
let(:job) do
create(:ci_build, options: { image: { name: image_name,
@@ -101,7 +101,7 @@ RSpec.describe Gitlab::Ci::Build::Image do
let(:service_entrypoint) { '/bin/sh' }
let(:service_alias) { 'db' }
let(:service_command) { 'sleep 30' }
- let(:executor_opts) { { docker: { platform: 'amd64' } } }
+ let(:executor_opts) { { docker: { platform: 'amd64', user: 'dave' } } }
let(:pull_policy) { %w[always if-not-present] }
let(:job) do
create(:ci_build, options: { services: [{ name: service_image_name, entrypoint: service_entrypoint,
diff --git a/spec/lib/gitlab/ci/build/policy/changes_spec.rb b/spec/lib/gitlab/ci/build/policy/changes_spec.rb
index 00e44650d44..4ee8903dcd3 100644
--- a/spec/lib/gitlab/ci/build/policy/changes_spec.rb
+++ b/spec/lib/gitlab/ci/build/policy/changes_spec.rb
@@ -134,7 +134,7 @@ RSpec.describe Gitlab::Ci::Build::Policy::Changes do
ref: 'feature',
source: source,
sha: '0b4bc9a4',
- before_sha: Gitlab::Git::BLANK_SHA,
+ before_sha: Gitlab::Git::SHA1_BLANK_SHA,
merge_request: merge_request
)
end
diff --git a/spec/lib/gitlab/ci/build/rules_spec.rb b/spec/lib/gitlab/ci/build/rules_spec.rb
index 99577539798..61bd9f41182 100644
--- a/spec/lib/gitlab/ci/build/rules_spec.rb
+++ b/spec/lib/gitlab/ci/build/rules_spec.rb
@@ -254,6 +254,18 @@ RSpec.describe Gitlab::Ci::Build::Rules, feature_category: :pipeline_composition
end
end
+ context 'with auto_cancel' do
+ context 'with matching rule' do
+ let(:rule_list) { [{ if: '$VAR == null', auto_cancel: { on_new_commit: 'interruptible' } }] }
+
+ it do
+ is_expected.to eq(
+ described_class::Result.new(when: 'on_success', auto_cancel: { on_new_commit: 'interruptible' })
+ )
+ end
+ end
+ end
+
context 'with a regexp variable matching rule' do
let(:rule_list) { [{ if: '"abcde" =~ $pattern' }] }
diff --git a/spec/lib/gitlab/ci/config/entry/auto_cancel_spec.rb b/spec/lib/gitlab/ci/config/entry/auto_cancel_spec.rb
index bdd66cc00a1..764908ee040 100644
--- a/spec/lib/gitlab/ci/config/entry/auto_cancel_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/auto_cancel_spec.rb
@@ -25,7 +25,7 @@ RSpec.describe Gitlab::Ci::Config::Entry::AutoCancel, feature_category: :pipelin
it 'returns errors' do
expect(config.errors)
- .to include('auto cancel on new commit must be one of: conservative, interruptible, disabled')
+ .to include('auto cancel on new commit must be one of: conservative, interruptible, none')
end
end
end
diff --git a/spec/lib/gitlab/ci/config/entry/bridge_spec.rb b/spec/lib/gitlab/ci/config/entry/bridge_spec.rb
index 35f2a99ee87..04154b72453 100644
--- a/spec/lib/gitlab/ci/config/entry/bridge_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/bridge_spec.rb
@@ -23,6 +23,12 @@ RSpec.describe Gitlab::Ci::Config::Entry::Bridge, feature_category: :continuous_
end
end
+ describe '.visible?' do
+ it 'always returns true' do
+ expect(described_class.visible?).to be_truthy
+ end
+ end
+
describe '.matching?' do
subject { described_class.matching?(name, config) }
diff --git a/spec/lib/gitlab/ci/config/entry/image_spec.rb b/spec/lib/gitlab/ci/config/entry/image_spec.rb
index 99a6e25b313..0a82010c20c 100644
--- a/spec/lib/gitlab/ci/config/entry/image_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/image_spec.rb
@@ -112,7 +112,7 @@ RSpec.describe Gitlab::Ci::Config::Entry::Image do
end
end
- context "when docker specifies an option" do
+ context "when docker specifies platform" do
let(:config) { { name: 'image:1.0', docker: { platform: 'amd64' } } }
it 'is valid' do
@@ -129,15 +129,73 @@ RSpec.describe Gitlab::Ci::Config::Entry::Image do
)
end
end
+
+ context "when invalid data type is specified for platform option" do
+ let(:config) { { name: 'image:1.0', docker: { platform: 1 } } }
+
+ it 'raises an error' do
+ expect(entry).not_to be_valid
+ expect(entry.errors.first)
+ .to match %r{image executor opts '/docker/platform' must be a valid 'string'}
+ end
+ end
+ end
+
+ context "when docker specifies user" do
+ let(:config) { { name: 'image:1.0', docker: { user: 'dave' } } }
+
+ it 'is valid' do
+ expect(entry).to be_valid
+ end
+
+ describe '#value' do
+ it "returns value" do
+ expect(entry.value).to eq(
+ name: 'image:1.0',
+ executor_opts: {
+ docker: { user: 'dave' }
+ }
+ )
+ end
+ end
+
+ context "when user is a UID" do
+ let(:config) { { name: 'image:1.0', docker: { user: '1001' } } }
+
+ it 'is valid' do
+ expect(entry).to be_valid
+ end
+
+ describe '#value' do
+ it "returns value" do
+ expect(entry.value).to eq(
+ name: 'image:1.0',
+ executor_opts: {
+ docker: { user: '1001' }
+ }
+ )
+ end
+ end
+ end
+
+ context "when invalid data type is specified for user option" do
+ let(:config) { { name: 'image:1.0', docker: { user: 1 } } }
+
+ it 'raises an error' do
+ expect(entry).not_to be_valid
+ expect(entry.errors.first)
+ .to match %r{image executor opts '/docker/user' must be a valid 'string'}
+ end
+ end
end
context "when docker specifies an invalid option" do
- let(:config) { { name: 'image:1.0', docker: { platform: 1 } } }
+ let(:config) { { name: 'image:1.0', docker: { unknown_key: 'foo' } } }
it 'is not valid' do
expect(entry).not_to be_valid
expect(entry.errors.first)
- .to match %r{image executor opts '/docker/platform' must be a valid 'string'}
+ .to match %r{image executor opts '/docker/unknown_key' must be a valid 'schema'}
end
end
end
diff --git a/spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb b/spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb
index cd8e35ede61..a9f891a7b50 100644
--- a/spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'fast_spec_helper'
+require 'spec_helper'
require_dependency 'active_model'
RSpec.describe Gitlab::Ci::Config::Entry::Include::Rules::Rule, feature_category: :pipeline_composition do
diff --git a/spec/lib/gitlab/ci/config/entry/needs_spec.rb b/spec/lib/gitlab/ci/config/entry/needs_spec.rb
index d1a8a74ac06..61bb3e912ba 100644
--- a/spec/lib/gitlab/ci/config/entry/needs_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/needs_spec.rb
@@ -52,6 +52,27 @@ RSpec.describe ::Gitlab::Ci::Config::Entry::Needs, feature_category: :pipeline_c
end
end
+ context 'when config has disallowed keys' do
+ let(:config) { ['some_value'] }
+
+ before do
+ needs.metadata[:allowed_needs] = %i[cross_dependency]
+ needs.compose!
+ end
+
+ describe '#valid?' do
+ it 'returns invalid' do
+ expect(needs.valid?).to be_falsey
+ end
+ end
+
+ describe '#errors' do
+ it 'returns invalid types error' do
+ expect(needs.errors).to include('needs config uses invalid types: job')
+ end
+ end
+ end
+
context 'when wrong needs type is used' do
let(:config) { [{ job: 'job_name', artifacts: true, some: :key }] }
diff --git a/spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb b/spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb
index 3531d6e9f1a..d5bf532c216 100644
--- a/spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require 'gitlab_chronic_duration'
-RSpec.describe Gitlab::Ci::Config::Entry::Rules::Rule do
+RSpec.describe Gitlab::Ci::Config::Entry::Rules::Rule, feature_category: :pipeline_composition do
let(:factory) do
Gitlab::Config::Entry::Factory.new(described_class)
.metadata(metadata)
@@ -11,7 +11,10 @@ RSpec.describe Gitlab::Ci::Config::Entry::Rules::Rule do
end
let(:metadata) do
- { allowed_when: %w[on_success on_failure always never manual delayed] }
+ {
+ allowed_when: %w[on_success on_failure always never manual delayed],
+ allowed_keys: %i[if changes exists when start_in allow_failure variables needs auto_cancel]
+ }
end
let(:entry) { factory.create! }
@@ -296,18 +299,18 @@ RSpec.describe Gitlab::Ci::Config::Entry::Rules::Rule do
end
end
- context 'with a string passed in metadata but not allowed in the class' do
- let(:metadata) { { allowed_when: %w[explode] } }
+ context 'with an invalid when' do
+ let(:metadata) { { allowed_when: %w[always never], allowed_keys: %i[if when] } }
let(:config) do
- { if: '$THIS == "that"', when: 'explode' }
+ { if: '$THIS == "that"', when: 'on_success' }
end
it { is_expected.to be_a(described_class) }
it { is_expected.not_to be_valid }
it 'returns an error about invalid when:' do
- expect(subject.errors).to include(/when unknown value: explode/)
+ expect(subject.errors).to include(/when unknown value: on_success/)
end
context 'when composed' do
@@ -318,41 +321,30 @@ RSpec.describe Gitlab::Ci::Config::Entry::Rules::Rule do
it { is_expected.not_to be_valid }
it 'returns an error about invalid when:' do
- expect(subject.errors).to include(/when unknown value: explode/)
+ expect(subject.errors).to include(/when unknown value: on_success/)
end
end
end
- context 'with a string allowed in the class but not passed in metadata' do
- let(:metadata) { { allowed_when: %w[always never] } }
-
+ context 'with an invalid variables' do
let(:config) do
- { if: '$THIS == "that"', when: 'on_success' }
+ { if: '$THIS == "that"', variables: 'hello' }
end
- it { is_expected.to be_a(described_class) }
- it { is_expected.not_to be_valid }
-
- it 'returns an error about invalid when:' do
- expect(subject.errors).to include(/when unknown value: on_success/)
+ before do
+ subject.compose!
end
- context 'when composed' do
- before do
- subject.compose!
- end
-
- it { is_expected.not_to be_valid }
+ it { is_expected.not_to be_valid }
- it 'returns an error about invalid when:' do
- expect(subject.errors).to include(/when unknown value: on_success/)
- end
+ it 'returns an error about invalid variables:' do
+ expect(subject.errors).to include(/variables config should be a hash/)
end
end
- context 'with an invalid variables' do
+ context 'with an invalid auto_cancel' do
let(:config) do
- { if: '$THIS == "that"', variables: 'hello' }
+ { if: '$THIS == "that"', auto_cancel: { on_new_commit: 'xyz' } }
end
before do
@@ -361,8 +353,9 @@ RSpec.describe Gitlab::Ci::Config::Entry::Rules::Rule do
it { is_expected.not_to be_valid }
- it 'returns an error about invalid variables:' do
- expect(subject.errors).to include(/variables config should be a hash/)
+ it 'returns an error' do
+ expect(subject.errors).to include(
+ 'auto_cancel on new commit must be one of: conservative, interruptible, none')
end
end
end
@@ -445,6 +438,12 @@ RSpec.describe Gitlab::Ci::Config::Entry::Rules::Rule do
it { is_expected.to eq(config) }
end
+
+ context 'when it has auto_cancel' do
+ let(:config) { { if: '$THIS || $THAT', auto_cancel: { on_new_commit: 'interruptible' } } }
+
+ it { is_expected.to eq(config) }
+ end
end
describe '.default' do
diff --git a/spec/lib/gitlab/ci/config/entry/rules_spec.rb b/spec/lib/gitlab/ci/config/entry/rules_spec.rb
index b0871f2345e..0113b6c1f7f 100644
--- a/spec/lib/gitlab/ci/config/entry/rules_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/rules_spec.rb
@@ -1,16 +1,18 @@
# frozen_string_literal: true
-require 'fast_spec_helper'
+require 'spec_helper'
require_dependency 'active_model'
-RSpec.describe Gitlab::Ci::Config::Entry::Rules do
+RSpec.describe Gitlab::Ci::Config::Entry::Rules, feature_category: :pipeline_composition do
let(:factory) do
Gitlab::Config::Entry::Factory.new(described_class)
.metadata(metadata)
.value(config)
end
- let(:metadata) { { allowed_when: %w[always never] } }
+ let(:metadata) do
+ { allowed_when: %w[always never], allowed_keys: %i[if when] }
+ end
subject(:entry) { factory.create! }
diff --git a/spec/lib/gitlab/ci/config/entry/service_spec.rb b/spec/lib/gitlab/ci/config/entry/service_spec.rb
index 82747e7b521..8ce0f890b46 100644
--- a/spec/lib/gitlab/ci/config/entry/service_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/service_spec.rb
@@ -154,22 +154,45 @@ RSpec.describe Gitlab::Ci::Config::Entry::Service do
end
context 'when configuration has docker options' do
- let(:config) { { name: 'postgresql:9.5', docker: { platform: 'amd64' } } }
+ context "with platform option" do
+ let(:config) { { name: 'postgresql:9.5', docker: { platform: 'amd64' } } }
- describe '#valid?' do
- it 'is valid' do
- expect(entry).to be_valid
+ describe '#valid?' do
+ it 'is valid' do
+ expect(entry).to be_valid
+ end
+ end
+
+ describe '#value' do
+ it "returns value" do
+ expect(entry.value).to eq(
+ name: 'postgresql:9.5',
+ executor_opts: {
+ docker: { platform: 'amd64' }
+ }
+ )
+ end
end
end
- describe '#value' do
- it "returns value" do
- expect(entry.value).to eq(
- name: 'postgresql:9.5',
- executor_opts: {
- docker: { platform: 'amd64' }
- }
- )
+ context "with user option" do
+ let(:config) { { name: 'postgresql:9.5', docker: { user: 'dave' } } }
+
+ describe '#valid?' do
+ it 'is valid' do
+ expect(entry).to be_valid
+ end
+ end
+
+ describe '#value' do
+ it "returns value" do
+ expect(entry.value).to eq(
+ name: 'postgresql:9.5',
+ executor_opts: {
+ docker: { user: 'dave' }
+ }
+ )
+ end
end
end
end
diff --git a/spec/lib/gitlab/ci/config/entry/workflow_spec.rb b/spec/lib/gitlab/ci/config/entry/workflow_spec.rb
index d3ce3ffe641..dbd25010884 100644
--- a/spec/lib/gitlab/ci/config/entry/workflow_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/workflow_spec.rb
@@ -6,6 +6,10 @@ RSpec.describe Gitlab::Ci::Config::Entry::Workflow, feature_category: :pipeline_
subject(:config) { described_class.new(workflow_hash) }
describe 'validations' do
+ before do
+ config.compose!
+ end
+
context 'when work config value is a string' do
let(:workflow_hash) { 'build' }
@@ -27,6 +31,28 @@ RSpec.describe Gitlab::Ci::Config::Entry::Workflow, feature_category: :pipeline_
end
context 'when work config value is a hash' do
+ context 'with an invalid key' do
+ let(:workflow_hash) { { trash: [{ if: '$VAR' }] } }
+
+ describe '#valid?' do
+ it 'is invalid' do
+ expect(config).not_to be_valid
+ end
+
+ it 'attaches an error specifying the unknown key' do
+ expect(config.errors).to include('workflow config contains unknown keys: trash')
+ end
+ end
+
+ describe '#value' do
+ it 'returns the invalid configuration' do
+ expect(config.value).to eq(workflow_hash)
+ end
+ end
+ end
+ end
+
+ context 'when config has rules' do
let(:workflow_hash) { { rules: [{ if: '$VAR' }] } }
describe '#valid?' do
@@ -45,8 +71,8 @@ RSpec.describe Gitlab::Ci::Config::Entry::Workflow, feature_category: :pipeline_
end
end
- context 'with an invalid key' do
- let(:workflow_hash) { { trash: [{ if: '$VAR' }] } }
+ context 'when rules has an invalid key' do
+ let(:workflow_hash) { { rules: [{ if: '$VAR', trash: 'something' }] } }
describe '#valid?' do
it 'is invalid' do
@@ -54,7 +80,7 @@ RSpec.describe Gitlab::Ci::Config::Entry::Workflow, feature_category: :pipeline_
end
it 'attaches an error specifying the unknown key' do
- expect(config.errors).to include('workflow config contains unknown keys: trash')
+ expect(config.errors).to include('rules:rule config contains unknown keys: trash')
end
end
@@ -64,6 +90,41 @@ RSpec.describe Gitlab::Ci::Config::Entry::Workflow, feature_category: :pipeline_
end
end
end
+
+ context 'when rules has auto_cancel' do
+ let(:workflow_hash) { { rules: [{ if: '$VAR', auto_cancel: { on_new_commit: 'interruptible' } }] } }
+
+ describe '#valid?' do
+ it 'is valid' do
+ expect(config).to be_valid
+ end
+
+ it 'attaches no errors' do
+ expect(config.errors).to be_empty
+ end
+ end
+
+ describe '#value' do
+ it 'returns the config' do
+ expect(config.value).to eq(workflow_hash)
+ end
+ end
+
+ context 'when auto_cancel has an invalid value' do
+ let(:workflow_hash) { { rules: [{ if: '$VAR', auto_cancel: { on_new_commit: 'xyz' } }] } }
+
+ describe '#valid?' do
+ it 'is invalid' do
+ expect(config).not_to be_valid
+ end
+
+ it 'returns error' do
+ expect(config.errors).to include(
+ 'rules:rule:auto_cancel on new commit must be one of: conservative, interruptible, none')
+ end
+ end
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/ci/config/external/context_spec.rb b/spec/lib/gitlab/ci/config/external/context_spec.rb
index 9ac72ebbac8..3409fc53d19 100644
--- a/spec/lib/gitlab/ci/config/external/context_spec.rb
+++ b/spec/lib/gitlab/ci/config/external/context_spec.rb
@@ -159,10 +159,14 @@ RSpec.describe Gitlab::Ci::Config::External::Context, feature_category: :pipelin
shared_examples 'a mutated context' do
let(:mutated) { subject.mutate(new_attributes) }
+ let(:lazy_response) { double('lazy_response') }
before do
+ allow(lazy_response).to receive(:execute).and_return(lazy_response)
+
subject.expandset << :a_file
subject.set_deadline(15.seconds)
+ subject.execute_remote_parallel_request(lazy_response)
end
it { expect(mutated).not_to eq(subject) }
@@ -170,8 +174,9 @@ RSpec.describe Gitlab::Ci::Config::External::Context, feature_category: :pipelin
it { expect(mutated).to have_attributes(new_attributes) }
it { expect(mutated.pipeline).to eq(subject.pipeline) }
it { expect(mutated.expandset).to eq(subject.expandset) }
- it { expect(mutated.execution_deadline).to eq(mutated.execution_deadline) }
- it { expect(mutated.logger).to eq(mutated.logger) }
+ it { expect(mutated.execution_deadline).to eq(subject.execution_deadline) }
+ it { expect(mutated.logger).to eq(subject.logger) }
+ it { expect(mutated.parallel_requests).to eq(subject.parallel_requests) }
end
context 'with attributes' do
@@ -212,4 +217,80 @@ RSpec.describe Gitlab::Ci::Config::External::Context, feature_category: :pipelin
end
end
end
+
+ describe '#execute_remote_parallel_request' do
+ let(:lazy_response1) { double('lazy_response', wait: true, complete?: complete1) }
+ let(:lazy_response2) { double('lazy_response') }
+
+ let(:complete1) { false }
+
+ before do
+ allow(lazy_response1).to receive(:execute).and_return(lazy_response1)
+ allow(lazy_response2).to receive(:execute).and_return(lazy_response2)
+ end
+
+ context 'when the queue is empty' do
+ before do
+ stub_const("Gitlab::Ci::Config::External::Context::MAX_PARALLEL_REMOTE_REQUESTS", 2)
+ end
+
+ it 'adds the new lazy response to the queue' do
+ expect { subject.execute_remote_parallel_request(lazy_response1) }
+ .to change { subject.parallel_requests }
+ .from([])
+ .to([lazy_response1])
+ end
+ end
+
+ context 'when there is a lazy response in the queue' do
+ before do
+ subject.execute_remote_parallel_request(lazy_response1)
+ end
+
+ context 'when there is a free slot in the queue' do
+ before do
+ stub_const("Gitlab::Ci::Config::External::Context::MAX_PARALLEL_REMOTE_REQUESTS", 2)
+ end
+
+ it 'adds the new lazy response to the queue' do
+ expect { subject.execute_remote_parallel_request(lazy_response2) }
+ .to change { subject.parallel_requests }
+ .from([lazy_response1])
+ .to([lazy_response1, lazy_response2])
+ end
+ end
+
+ context 'when the queue is full' do
+ before do
+ stub_const("Gitlab::Ci::Config::External::Context::MAX_PARALLEL_REMOTE_REQUESTS", 1)
+ end
+
+ context 'when the first lazy response in the queue is complete' do
+ let(:complete1) { true }
+
+ it 'removes the completed lazy response and adds the new one to the queue' do
+ expect(lazy_response1).not_to receive(:wait)
+
+ expect { subject.execute_remote_parallel_request(lazy_response2) }
+ .to change { subject.parallel_requests }
+ .from([lazy_response1])
+ .to([lazy_response2])
+ end
+ end
+
+ context 'when the first lazy response in the queue is not complete' do
+ let(:complete1) { false }
+
+ it 'waits for the first lazy response to complete and then adds the new one to the queue' do
+ expect(lazy_response1).to receive(:wait)
+
+ expect { subject.execute_remote_parallel_request(lazy_response2) }
+ .to change { subject.parallel_requests }
+ .from([lazy_response1])
+ .to([lazy_response1, lazy_response2])
+ end
+ end
+ end
+ end
+ end
end
diff --git a/spec/lib/gitlab/ci/config/external/file/component_spec.rb b/spec/lib/gitlab/ci/config/external/file/component_spec.rb
index 88e272ac3fd..7907837db6a 100644
--- a/spec/lib/gitlab/ci/config/external/file/component_spec.rb
+++ b/spec/lib/gitlab/ci/config/external/file/component_spec.rb
@@ -146,6 +146,16 @@ RSpec.describe Gitlab::Ci::Config::External::File::Component, feature_category:
external_resource.content
end
+
+ context 'when user is missing in a context' do
+ let_it_be(:user) { nil }
+
+ it 'does not track the event' do
+ expect(::Gitlab::UsageDataCounters::HLLRedisCounter).not_to receive(:track_event)
+
+ external_resource.content
+ end
+ end
end
context 'when component is invalid' do
diff --git a/spec/lib/gitlab/ci/config/external/file/remote_spec.rb b/spec/lib/gitlab/ci/config/external/file/remote_spec.rb
index 7293e640112..adca9e750d0 100644
--- a/spec/lib/gitlab/ci/config/external/file/remote_spec.rb
+++ b/spec/lib/gitlab/ci/config/external/file/remote_spec.rb
@@ -157,6 +157,40 @@ RSpec.describe Gitlab::Ci::Config::External::File::Remote, feature_category: :pi
it_behaves_like "#content"
end
+ describe '#preload_content' do
+ context 'when the parallel request queue is full' do
+ let(:location1) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.secret_file1.yml' }
+ let(:location2) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.secret_file2.yml' }
+
+ before do
+ # Makes the parallel queue full easily
+ stub_const("Gitlab::Ci::Config::External::Context::MAX_PARALLEL_REMOTE_REQUESTS", 1)
+
+ # Adding a failing promise to the queue
+ promise = Concurrent::Promise.new do
+ sleep 1.1
+ raise Timeout::Error
+ end
+
+ context.execute_remote_parallel_request(
+ Gitlab::HTTP_V2::LazyResponse.new(promise, location1, {}, nil)
+ )
+
+ stub_full_request(location2).to_return(body: remote_file_content)
+ end
+
+ it 'waits for the queue' do
+ file2 = described_class.new({ remote: location2 }, context)
+
+ start_at = Time.current
+ file2.preload_content
+ end_at = Time.current
+
+ expect(end_at - start_at).to be > 1
+ end
+ end
+ end
+
describe "#error_message" do
subject(:error_message) do
Gitlab::Ci::Config::External::Mapper::Verifier.new(context).process([remote_file])
diff --git a/spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb b/spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb
index 2c57106b07c..9718d16756c 100644
--- a/spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb
+++ b/spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb
@@ -3,118 +3,173 @@
require 'fast_spec_helper'
RSpec.describe Gitlab::Ci::Parsers::Sbom::CyclonedxProperties, feature_category: :dependency_management do
- subject(:parse_source_from_properties) { described_class.parse_source(properties) }
+ shared_examples 'handling invalid properties' do
+ context 'when properties are nil' do
+ let(:properties) { nil }
- context 'when properties are nil' do
- let(:properties) { nil }
+ it { is_expected.to be_nil }
+ end
+
+ context 'when report does not have valid properties' do
+ let(:properties) { ['name' => 'foo', 'value' => 'bar'] }
- it { is_expected.to be_nil }
+ it { is_expected.to be_nil }
+ end
end
- context 'when report does not have gitlab properties' do
- let(:properties) { ['name' => 'foo', 'value' => 'bar'] }
+ describe '#parse_source' do
+ subject(:parse_source_from_properties) { described_class.parse_source(properties) }
- it { is_expected.to be_nil }
- end
+ it_behaves_like 'handling invalid properties'
- context 'when schema_version is missing' do
- let(:properties) do
- [
- { 'name' => 'gitlab:dependency_scanning:dependency_file', 'value' => 'package-lock.json' },
- { 'name' => 'gitlab:dependency_scanning:package_manager_name', 'value' => 'npm' },
- { 'name' => 'gitlab:dependency_scanning:language', 'value' => 'JavaScript' }
- ]
- end
+ context 'when schema_version is missing' do
+ let(:properties) do
+ [
+ { 'name' => 'gitlab:dependency_scanning:dependency_file', 'value' => 'package-lock.json' },
+ { 'name' => 'gitlab:dependency_scanning:package_manager_name', 'value' => 'npm' },
+ { 'name' => 'gitlab:dependency_scanning:language', 'value' => 'JavaScript' }
+ ]
+ end
- it { is_expected.to be_nil }
- end
+ it { is_expected.to be_nil }
+ end
- context 'when schema version is unsupported' do
- let(:properties) do
- [
- { 'name' => 'gitlab:meta:schema_version', 'value' => '2' },
- { 'name' => 'gitlab:dependency_scanning:dependency_file', 'value' => 'package-lock.json' },
- { 'name' => 'gitlab:dependency_scanning:package_manager_name', 'value' => 'npm' },
- { 'name' => 'gitlab:dependency_scanning:language', 'value' => 'JavaScript' }
- ]
+ context 'when schema version is unsupported' do
+ let(:properties) do
+ [
+ { 'name' => 'gitlab:meta:schema_version', 'value' => '2' },
+ { 'name' => 'gitlab:dependency_scanning:dependency_file', 'value' => 'package-lock.json' },
+ { 'name' => 'gitlab:dependency_scanning:package_manager_name', 'value' => 'npm' },
+ { 'name' => 'gitlab:dependency_scanning:language', 'value' => 'JavaScript' }
+ ]
+ end
+
+ it { is_expected.to be_nil }
end
- it { is_expected.to be_nil }
- end
+ context 'when no dependency_scanning or container_scanning properties are present' do
+ let(:properties) do
+ [
+ { 'name' => 'gitlab:meta:schema_version', 'value' => '1' },
+ { 'name' => 'gitlab::aquasecurity:trivy:FilePath', 'value' => '1' }
+ ]
+ end
- context 'when no dependency_scanning or container_scanning properties are present' do
- let(:properties) do
- [
- { 'name' => 'gitlab:meta:schema_version', 'value' => '1' }
- ]
+ it 'does not call source parsers' do
+ expect(Gitlab::Ci::Parsers::Sbom::Source::DependencyScanning).not_to receive(:source)
+ expect(Gitlab::Ci::Parsers::Sbom::Source::ContainerScanning).not_to receive(:source)
+
+ parse_source_from_properties
+ end
end
- it 'does not call source parsers' do
- expect(Gitlab::Ci::Parsers::Sbom::Source::DependencyScanning).not_to receive(:source)
- expect(Gitlab::Ci::Parsers::Sbom::Source::ContainerScanning).not_to receive(:source)
+ context 'when dependency_scanning properties are present' do
+ let(:properties) do
+ [
+ { 'name' => 'gitlab:meta:schema_version', 'value' => '1' },
+ { 'name' => 'gitlab:dependency_scanning:category', 'value' => 'development' },
+ { 'name' => 'gitlab:dependency_scanning:input_file:path', 'value' => 'package-lock.json' },
+ { 'name' => 'gitlab:dependency_scanning:source_file:path', 'value' => 'package.json' },
+ { 'name' => 'gitlab:dependency_scanning:package_manager:name', 'value' => 'npm' },
+ { 'name' => 'gitlab:dependency_scanning:language:name', 'value' => 'JavaScript' },
+ { 'name' => 'gitlab:dependency_scanning:unsupported_property', 'value' => 'Should be ignored' }
+ ]
+ end
+
+ let(:expected_input) do
+ {
+ 'category' => 'development',
+ 'input_file' => { 'path' => 'package-lock.json' },
+ 'source_file' => { 'path' => 'package.json' },
+ 'package_manager' => { 'name' => 'npm' },
+ 'language' => { 'name' => 'JavaScript' }
+ }
+ end
- parse_source_from_properties
- end
- end
+ it 'passes only supported properties to the dependency scanning parser' do
+ expect(Gitlab::Ci::Parsers::Sbom::Source::DependencyScanning).to receive(:source).with(expected_input)
- context 'when dependency_scanning properties are present' do
- let(:properties) do
- [
- { 'name' => 'gitlab:meta:schema_version', 'value' => '1' },
- { 'name' => 'gitlab:dependency_scanning:category', 'value' => 'development' },
- { 'name' => 'gitlab:dependency_scanning:input_file:path', 'value' => 'package-lock.json' },
- { 'name' => 'gitlab:dependency_scanning:source_file:path', 'value' => 'package.json' },
- { 'name' => 'gitlab:dependency_scanning:package_manager:name', 'value' => 'npm' },
- { 'name' => 'gitlab:dependency_scanning:language:name', 'value' => 'JavaScript' },
- { 'name' => 'gitlab:dependency_scanning:unsupported_property', 'value' => 'Should be ignored' }
- ]
+ parse_source_from_properties
+ end
end
- let(:expected_input) do
- {
- 'category' => 'development',
- 'input_file' => { 'path' => 'package-lock.json' },
- 'source_file' => { 'path' => 'package.json' },
- 'package_manager' => { 'name' => 'npm' },
- 'language' => { 'name' => 'JavaScript' }
- }
- end
+ context 'when container_scanning properties are present' do
+ let(:properties) do
+ [
+ { 'name' => 'gitlab:meta:schema_version', 'value' => '1' },
+ { 'name' => 'gitlab:container_scanning:image:name', 'value' => 'photon' },
+ { 'name' => 'gitlab:container_scanning:image:tag', 'value' => '5.0-20231007' },
+ { 'name' => 'gitlab:container_scanning:operating_system:name', 'value' => 'Photon OS' },
+ { 'name' => 'gitlab:container_scanning:operating_system:version', 'value' => '5.0' }
+ ]
+ end
+
+ let(:expected_input) do
+ {
+ 'image' => {
+ 'name' => 'photon',
+ 'tag' => '5.0-20231007'
+ },
+ 'operating_system' => {
+ 'name' => 'Photon OS',
+ 'version' => '5.0'
+ }
+ }
+ end
- it 'passes only supported properties to the dependency scanning parser' do
- expect(Gitlab::Ci::Parsers::Sbom::Source::DependencyScanning).to receive(:source).with(expected_input)
+ it 'passes only supported properties to the container scanning parser' do
+ expect(Gitlab::Ci::Parsers::Sbom::Source::ContainerScanning).to receive(:source).with(expected_input)
- parse_source_from_properties
+ parse_source_from_properties
+ end
end
end
- context 'when container_scanning properties are present' do
- let(:properties) do
- [
- { 'name' => 'gitlab:meta:schema_version', 'value' => '1' },
- { 'name' => 'gitlab:container_scanning:image:name', 'value' => 'photon' },
- { 'name' => 'gitlab:container_scanning:image:tag', 'value' => '5.0-20231007' },
- { 'name' => 'gitlab:container_scanning:operating_system:name', 'value' => 'Photon OS' },
- { 'name' => 'gitlab:container_scanning:operating_system:version', 'value' => '5.0' }
- ]
+ describe '#parse_trivy_source' do
+ subject(:parse_trivy_source_from_properties) { described_class.parse_trivy_source(properties) }
+
+ it_behaves_like 'handling invalid properties'
+
+ context 'when no trivy properties are present' do
+ let(:properties) do
+ [
+ { 'name' => 'gitlab:meta:schema_version', 'value' => '1' },
+ { 'name' => 'gitlab::aquasecurity:trivy:FilePath', 'value' => '1' }
+ ]
+ end
+
+ it 'does not call source parsers' do
+ expect(Gitlab::Ci::Parsers::Sbom::Source::Trivy).not_to receive(:source)
+
+ parse_trivy_source_from_properties
+ end
end
- let(:expected_input) do
- {
- 'image' => {
- 'name' => 'photon',
- 'tag' => '5.0-20231007'
- },
- 'operating_system' => {
- 'name' => 'Photon OS',
- 'version' => '5.0'
+ context 'when trivy properties are present' do
+ let(:properties) do
+ [
+ { 'name' => 'aquasecurity:trivy:PkgID', 'value' => 'sha256:47ce8fad8..' },
+ { 'name' => 'aquasecurity:trivy:LayerDigest',
+ 'value' => 'registry.test.com/atiwari71/container-scanning-test/main@sha256:e14a4bcf..' },
+ { 'name' => 'aquasecurity:trivy:LayerDiffID', 'value' => 'sha256:94dd7d531fa..' },
+ { 'name' => 'aquasecurity:trivy:SrcEpoch', 'value' => 'sha256:5d20c808c..' }
+ ]
+ end
+
+ let(:expected_input) do
+ {
+ 'PkgID' => 'sha256:47ce8fad8..',
+ 'LayerDigest' => 'registry.test.com/atiwari71/container-scanning-test/main@sha256:e14a4bcf..',
+ 'LayerDiffID' => 'sha256:94dd7d531fa..',
+ 'SrcEpoch' => 'sha256:5d20c808c..'
}
- }
- end
+ end
- it 'passes only supported properties to the container scanning parser' do
- expect(Gitlab::Ci::Parsers::Sbom::Source::ContainerScanning).to receive(:source).with(expected_input)
+ it 'passes only supported properties to the container scanning parser' do
+ expect(Gitlab::Ci::Parsers::Sbom::Source::Trivy).to receive(:source).with(expected_input)
- parse_source_from_properties
+ parse_trivy_source_from_properties
+ end
end
end
end
diff --git a/spec/lib/gitlab/ci/parsers/sbom/cyclonedx_spec.rb b/spec/lib/gitlab/ci/parsers/sbom/cyclonedx_spec.rb
index 9c8402faf77..6a6fe59bce1 100644
--- a/spec/lib/gitlab/ci/parsers/sbom/cyclonedx_spec.rb
+++ b/spec/lib/gitlab/ci/parsers/sbom/cyclonedx_spec.rb
@@ -125,6 +125,56 @@ RSpec.describe Gitlab::Ci::Parsers::Sbom::Cyclonedx, feature_category: :dependen
parse!
end
+ context 'when component is trivy type' do
+ let(:parsed_properties) do
+ {
+ 'PkgID' => 'adduser@3.134',
+ 'PkgType' => 'debian'
+ }
+ end
+
+ let(:components) do
+ [
+ {
+ # Trivy component
+ "bom-ref" => "0eda252d-d8a4-4250-b816-b6314f029063",
+ "type" => "library",
+ "name" => "analyzer",
+ "purl" => "pkg:gem/activesupport@5.1.4",
+ "properties" => [
+ {
+ "name" => "aquasecurity:trivy:PkgID",
+ "value" => "apt@2.6.1"
+ },
+ {
+ "name" => "aquasecurity:trivy:PkgType",
+ "value" => "debian"
+ }
+ ]
+ }
+ ]
+ end
+
+ before do
+ allow(properties_parser).to receive(:parse_trivy_source).and_return(parsed_properties)
+ stub_const('Gitlab::Ci::Parsers::Sbom::CyclonedxProperties', properties_parser)
+ end
+
+ it 'adds each component, ignoring unused attributes' do
+ expect(report).to receive(:add_component)
+ .with(
+ an_object_having_attributes(
+ component_type: "library",
+ properties: parsed_properties,
+ purl: an_object_having_attributes(
+ type: "gem"
+ )
+ )
+ )
+ parse!
+ end
+ end
+
context 'when a component has an invalid purl' do
before do
components.push(
diff --git a/spec/lib/gitlab/ci/parsers/sbom/source/trivy_spec.rb b/spec/lib/gitlab/ci/parsers/sbom/source/trivy_spec.rb
new file mode 100644
index 00000000000..460ca4f28a1
--- /dev/null
+++ b/spec/lib/gitlab/ci/parsers/sbom/source/trivy_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'fast_spec_helper'
+
+RSpec.describe Gitlab::Ci::Parsers::Sbom::Source::Trivy, feature_category: :dependency_management do
+ subject { described_class.source(property_data) }
+
+ context 'when all property data is present' do
+ let(:property_data) do
+ {
+ 'PkgID' => 'sha256:47ce8fad8..',
+ 'LayerDigest' => 'registry.test.com/atiwari71/container-scanning-test/main@sha256:e14a4bcf..',
+ 'LayerDiffID' => 'sha256:94dd7d531fa..',
+ 'SrcEpoch' => 'sha256:5d20c808c..'
+ }
+ end
+
+ it 'returns expected source data' do
+ is_expected.to have_attributes(
+ source_type: :trivy,
+ data: property_data
+ )
+ end
+ end
+end
diff --git a/spec/lib/gitlab/ci/parsers/security/common_spec.rb b/spec/lib/gitlab/ci/parsers/security/common_spec.rb
index 431a6d94c48..6aa526c1829 100644
--- a/spec/lib/gitlab/ci/parsers/security/common_spec.rb
+++ b/spec/lib/gitlab/ci/parsers/security/common_spec.rb
@@ -185,7 +185,7 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common, feature_category: :vulnera
context 'when name is provided' do
it 'sets name from the report as a name' do
- finding = report.findings.find { |x| x.compare_key == 'CVE-1030' }
+ finding = report.findings.second
expected_name = Gitlab::Json.parse(finding.raw_metadata)['name']
expect(finding.name).to eq(expected_name)
@@ -197,7 +197,8 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common, feature_category: :vulnera
let(:location) { nil }
it 'returns only identifier name' do
- finding = report.findings.find { |x| x.compare_key == 'CVE-2017-11429' }
+ finding = report.findings.third
+
expect(finding.name).to eq("CVE-2017-11429")
end
end
@@ -205,21 +206,24 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common, feature_category: :vulnera
context 'when location exists' do
context 'when CVE identifier exists' do
it 'combines identifier with location to create name' do
- finding = report.findings.find { |x| x.compare_key == 'CVE-2017-11429' }
+ finding = report.findings.third
+
expect(finding.name).to eq("CVE-2017-11429 in yarn.lock")
end
end
context 'when CWE identifier exists' do
it 'combines identifier with location to create name' do
- finding = report.findings.find { |x| x.compare_key == 'CWE-2017-11429' }
+ finding = report.findings.fourth
+
expect(finding.name).to eq("CWE-2017-11429 in yarn.lock")
end
end
context 'when neither CVE nor CWE identifier exist' do
it 'combines identifier with location to create name' do
- finding = report.findings.find { |x| x.compare_key == 'OTHER-2017-11429' }
+ finding = report.findings.fifth
+
expect(finding.name).to eq("other-2017-11429 in yarn.lock")
end
end
@@ -476,6 +480,20 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common, feature_category: :vulnera
end
end
end
+
+ describe 'handling the unicode null characters' do
+ let(:artifact) { build(:ci_job_artifact, :common_security_report_with_unicode_null_character) }
+
+ it 'escapes the unicode null characters while parsing the report' do
+ finding = report.findings.first
+
+ expect(finding.solution).to eq('Upgrade to latest version.\u0000')
+ end
+
+ it 'adds warning to report' do
+ expect(report.warnings).to include({ type: 'Parsing', message: 'Report artifact contained unicode null characters which are escaped during the ingestion.' })
+ end
+ end
end
end
end
diff --git a/spec/lib/gitlab/ci/pipeline/chain/command_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/command_spec.rb
index 68158503628..37535b80cd4 100644
--- a/spec/lib/gitlab/ci/pipeline/chain/command_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/chain/command_spec.rb
@@ -200,7 +200,7 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Command do
let(:command) { described_class.new(project: project) }
it 'uses BLANK_SHA' do
- is_expected.to eq(Gitlab::Git::BLANK_SHA)
+ is_expected.to eq(Gitlab::Git::SHA1_BLANK_SHA)
end
end
end
diff --git a/spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb
index 44ccb1eeae1..bf146791659 100644
--- a/spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb
@@ -12,13 +12,10 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules do
end
let(:step) { described_class.new(pipeline, command) }
- let(:ff_always_set_pipeline_failure_reason) { true }
describe '#perform!' do
context 'when pipeline has been skipped by workflow configuration' do
before do
- stub_feature_flags(always_set_pipeline_failure_reason: ff_always_set_pipeline_failure_reason)
-
allow(step).to receive(:workflow_rules_result)
.and_return(
double(pass?: false, variables: {})
@@ -47,15 +44,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules do
expect(pipeline).to be_failed
expect(pipeline).to be_filtered_by_workflow_rules
end
-
- context 'when always_set_pipeline_failure_reason is disabled' do
- let(:ff_always_set_pipeline_failure_reason) { false }
-
- it 'does not set the failure reason', :aggregate_failures do
- expect(pipeline).not_to be_failed
- expect(pipeline.failure_reason).to be_blank
- end
- end
end
context 'when pipeline has not been skipped by workflow configuration' do
diff --git a/spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb
index 84c2fb6525e..5956137a725 100644
--- a/spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb
@@ -52,22 +52,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Helpers, feature_category: :continuo
expect(pipeline.status).to eq 'failed'
expect(pipeline.failure_reason).to eq drop_reason.to_s
end
-
- context 'when feature flag always_set_pipeline_failure_reason is false' do
- before do
- stub_feature_flags(always_set_pipeline_failure_reason: false)
- end
-
- specify do
- subject.error(message, config_error: config_error, drop_reason: drop_reason)
-
- if command.save_incompleted
- expect(pipeline.failure_reason).to eq drop_reason.to_s
- else
- expect(pipeline.failure_reason).not_to be_present
- end
- end
- end
end
context 'when the error includes malicious HTML' do
@@ -93,6 +77,37 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Helpers, feature_category: :continuo
end
end
+ context 'when drop_reason is nil' do
+ let(:command) { double(project: nil) }
+
+ shared_examples "error function with no drop reason" do
+ it 'drops with out failure reason' do
+ expect(command).to receive(:increment_pipeline_failure_reason_counter)
+
+ call_error
+
+ expect(pipeline.failure_reason).to be_nil
+ expect(pipeline.yaml_errors).to be_nil
+ expect(pipeline.errors[:base]).to include(message)
+ expect(pipeline).to be_failed
+ expect(pipeline).not_to be_persisted
+ end
+ end
+
+ context 'when no drop_reason argument is passed' do
+ let(:call_error) { subject.error(message) }
+
+ it_behaves_like "error function with no drop reason"
+ end
+
+ context 'when drop_reason argument is passed as nil' do
+ let(:drop_reason) { nil }
+ let(:call_error) { subject.error(message, drop_reason: drop_reason) }
+
+ it_behaves_like "error function with no drop reason"
+ end
+ end
+
context 'when config error is false' do
context 'does not set the yaml error or override the drop reason' do
let(:drop_reason) { :size_limit_exceeded }
@@ -107,7 +122,7 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Helpers, feature_category: :continuo
expect(pipeline).to be_persisted
end
- context ' when the drop reason is not persistable' do
+ context 'when the drop reason is not persistable' do
let(:drop_reason) { :filtered_by_rules }
let(:command) { double(project: nil) }
diff --git a/spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb
index 732748d8c8b..787a458f0ff 100644
--- a/spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb
@@ -240,6 +240,78 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::PopulateMetadata, feature_category:
expect(pipeline.pipeline_metadata).not_to be_persisted
end
end
+
+ context 'with workflow:rules:auto_cancel' do
+ context 'with auto_cancel:on_new_commit not set and rules:workflow:auto_cancel:on_new_commit set' do
+ let(:config) do
+ {
+ variables: { MY_VAR: my_var_value },
+ workflow: {
+ auto_cancel: { on_job_failure: 'all' },
+ rules: [{ if: '$MY_VAR == "something"', auto_cancel: { on_new_commit: 'interruptible' } }]
+ },
+ rspec: { script: 'rspec' }
+ }
+ end
+
+ context 'when the rule is matched' do
+ let(:my_var_value) { 'something' }
+
+ it 'builds pipeline_metadata' do
+ run_chain
+
+ expect(pipeline.pipeline_metadata.auto_cancel_on_new_commit).to eq('interruptible')
+ expect(pipeline.pipeline_metadata.auto_cancel_on_job_failure).to eq('all')
+ end
+ end
+
+ context 'when the rule is not matched' do
+ let(:my_var_value) { 'something else' }
+
+ it 'builds pipeline_metadata' do
+ run_chain
+
+ expect(pipeline.pipeline_metadata.auto_cancel_on_new_commit).to eq('conservative')
+ expect(pipeline.pipeline_metadata.auto_cancel_on_job_failure).to eq('all')
+ end
+ end
+ end
+
+ context 'with auto_cancel:on_new_commit set and rules:workflow:auto_cancel:on_new_commit set' do
+ let(:config) do
+ {
+ variables: { MY_VAR: my_var_value },
+ workflow: {
+ auto_cancel: { on_new_commit: 'interruptible' },
+ rules: [{ if: '$MY_VAR == "something"', auto_cancel: { on_new_commit: 'none' } }]
+ },
+ rspec: { script: 'rspec' }
+ }
+ end
+
+ context 'when the rule is matched' do
+ let(:my_var_value) { 'something' }
+
+ it 'builds pipeline_metadata' do
+ run_chain
+
+ expect(pipeline.pipeline_metadata.auto_cancel_on_new_commit).to eq('none')
+ expect(pipeline.pipeline_metadata.auto_cancel_on_job_failure).to eq('none')
+ end
+ end
+
+ context 'when the rule is not matched' do
+ let(:my_var_value) { 'something else' }
+
+ it 'builds pipeline_metadata' do
+ run_chain
+
+ expect(pipeline.pipeline_metadata.auto_cancel_on_new_commit).to eq('interruptible')
+ expect(pipeline.pipeline_metadata.auto_cancel_on_job_failure).to eq('none')
+ end
+ end
+ end
+ end
end
context 'with both pipeline name and auto_cancel' do
diff --git a/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb
index 476b1be35a9..22ff367c746 100644
--- a/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb
@@ -34,15 +34,12 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Populate, feature_category: :continu
{ rspec: { script: 'rspec' } }
end
- let(:ff_always_set_pipeline_failure_reason) { true }
-
def run_chain
dependencies.map(&:perform!)
step.perform!
end
before do
- stub_feature_flags(always_set_pipeline_failure_reason: ff_always_set_pipeline_failure_reason)
stub_ci_pipeline_yaml_file(YAML.dump(config))
end
@@ -113,18 +110,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Populate, feature_category: :continu
expect(pipeline).to be_failed
expect(pipeline).to be_filtered_by_rules
end
-
- context 'when ff always_set_pipeline_failure_reason is disabled' do
- let(:ff_always_set_pipeline_failure_reason) { false }
-
- it 'sets the failure reason without persisting the pipeline', :aggregate_failures do
- run_chain
-
- expect(pipeline).not_to be_persisted
- expect(pipeline).not_to be_failed
- expect(pipeline).not_to be_filtered_by_rules
- end
- end
end
describe 'pipeline protect' do
diff --git a/spec/lib/gitlab/ci/reports/security/report_spec.rb b/spec/lib/gitlab/ci/reports/security/report_spec.rb
index d7f967f1c55..dabee0f32de 100644
--- a/spec/lib/gitlab/ci/reports/security/report_spec.rb
+++ b/spec/lib/gitlab/ci/reports/security/report_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::Ci::Reports::Security::Report do
+RSpec.describe Gitlab::Ci::Reports::Security::Report, feature_category: :vulnerability_management do
let_it_be(:pipeline) { create(:ci_pipeline) }
let(:created_at) { 2.weeks.ago }
@@ -89,7 +89,7 @@ RSpec.describe Gitlab::Ci::Reports::Security::Report do
let(:other_report) do
create(
:ci_reports_security_report,
- findings: [create(:ci_reports_security_finding, compare_key: 'other_finding')],
+ findings: [create(:ci_reports_security_finding)],
scanners: [create(:ci_reports_security_scanner, external_id: 'other_scanner', name: 'Other Scanner')],
identifiers: [create(:ci_reports_security_identifier, external_id: 'other_id', name: 'other_scanner')]
)
diff --git a/spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb b/spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb
index f8d67a6f0b4..18ad723b75c 100644
--- a/spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb
+++ b/spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb
@@ -152,51 +152,6 @@ RSpec.describe Gitlab::Ci::Variables::Builder::Pipeline, feature_category: :secr
end
end
- context 'when truncate_ci_merge_request_description feature flag is disabled' do
- before do
- stub_feature_flags(truncate_ci_merge_request_description: false)
- end
-
- context 'when merge request description hits the limit' do
- let(:merge_request_description) { 'a' * (MergeRequest::CI_MERGE_REQUEST_DESCRIPTION_MAX_LENGTH + 1) }
-
- it 'does not truncate the exposed description' do
- expect(subject.to_hash)
- .to include(
- 'CI_MERGE_REQUEST_DESCRIPTION' => merge_request.description
- )
- expect(subject.to_hash)
- .not_to have_key('CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED')
- end
- end
-
- context 'when merge request description fits the length limit' do
- let(:merge_request_description) { 'a' * (MergeRequest::CI_MERGE_REQUEST_DESCRIPTION_MAX_LENGTH - 1) }
-
- it 'does not truncate the exposed description' do
- expect(subject.to_hash)
- .to include(
- 'CI_MERGE_REQUEST_DESCRIPTION' => merge_request.description
- )
- expect(subject.to_hash)
- .not_to have_key('CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED')
- end
- end
-
- context 'when merge request description does not exist' do
- let(:merge_request_description) { nil }
-
- it 'does not truncate the exposed description' do
- expect(subject.to_hash)
- .to include(
- 'CI_MERGE_REQUEST_DESCRIPTION' => merge_request.description
- )
- expect(subject.to_hash)
- .not_to have_key('CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED')
- end
- end
- end
-
it 'exposes diff variables' do
expect(subject.to_hash)
.to include(
diff --git a/spec/lib/gitlab/ci/yaml_processor/test_cases/include_spec.rb b/spec/lib/gitlab/ci/yaml_processor/test_cases/include_spec.rb
new file mode 100644
index 00000000000..d8f8a58edf3
--- /dev/null
+++ b/spec/lib/gitlab/ci/yaml_processor/test_cases/include_spec.rb
@@ -0,0 +1,80 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+module Gitlab
+ module Ci
+ RSpec.describe YamlProcessor, feature_category: :pipeline_composition do
+ include StubRequests
+
+ subject(:processor) do
+ described_class.new(config, project: project, user: project.first_owner, logger: logger)
+ end
+
+ let_it_be(:project) { create(:project, :repository) }
+
+ let(:logger) { Gitlab::Ci::Pipeline::Logger.new(project: project) }
+ let(:result) { processor.execute }
+ let(:builds) { result.builds }
+
+ context 'with include:remote' do
+ let(:config) do
+ <<~YAML
+ include:
+ - remote: http://my.domain.com/config1.yml
+ - remote: http://my.domain.com/config2.yml
+ YAML
+ end
+
+ before do
+ stub_full_request('http://my.domain.com/config1.yml')
+ .to_return(body: 'build1: { script: echo Hello World }')
+
+ stub_full_request('http://my.domain.com/config2.yml')
+ .to_return(body: 'build2: { script: echo Hello World }')
+ end
+
+ it 'returns builds from included files' do
+ expect(builds.pluck(:name)).to eq %w[build1 build2]
+ end
+
+ it 'stores instrumentation logs' do
+ result
+
+ expect(logger.observations_hash['config_mapper_process_duration_s']['count']).to eq(1)
+ end
+
+ # Remove with the FF ci_parallel_remote_includes
+ it 'does not store log with config_file_fetch_remote_content' do
+ result
+
+ expect(logger.observations_hash).not_to have_key('config_file_fetch_remote_content_duration_s')
+ end
+
+ context 'when the FF ci_parallel_remote_includes is disabled' do
+ before do
+ stub_feature_flags(ci_parallel_remote_includes: false)
+ end
+
+ it 'stores log with config_file_fetch_remote_content' do
+ result
+
+ expect(logger.observations_hash['config_file_fetch_remote_content_duration_s']['count']).to eq(2)
+ end
+
+ context 'when the FF is specifically enabled for the project' do
+ before do
+ stub_feature_flags(ci_parallel_remote_includes: [project])
+ end
+
+ it 'does not store log with config_file_fetch_remote_content' do
+ result
+
+ expect(logger.observations_hash).not_to have_key('config_file_fetch_remote_content_duration_s')
+ end
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/ci/yaml_processor/test_cases/interruptible_spec.rb b/spec/lib/gitlab/ci/yaml_processor/test_cases/interruptible_spec.rb
index 03ff7077969..297872f4cf3 100644
--- a/spec/lib/gitlab/ci/yaml_processor/test_cases/interruptible_spec.rb
+++ b/spec/lib/gitlab/ci/yaml_processor/test_cases/interruptible_spec.rb
@@ -5,9 +5,10 @@ require 'spec_helper'
module Gitlab
module Ci
RSpec.describe YamlProcessor, feature_category: :pipeline_composition do
- subject(:processor) { described_class.new(config, user: nil).execute }
+ subject(:processor) { described_class.new(config, user: nil) }
- let(:builds) { processor.builds }
+ let(:result) { processor.execute }
+ let(:builds) { result.builds }
context 'with interruptible' do
let(:default_config) { nil }
diff --git a/spec/lib/gitlab/ci/yaml_processor_spec.rb b/spec/lib/gitlab/ci/yaml_processor_spec.rb
index 844a6849c8f..4f759109b26 100644
--- a/spec/lib/gitlab/ci/yaml_processor_spec.rb
+++ b/spec/lib/gitlab/ci/yaml_processor_spec.rb
@@ -516,6 +516,32 @@ module Gitlab
})
end
end
+
+ context 'with rules and auto_cancel' do
+ let(:config) do
+ <<-YML
+ workflow:
+ rules:
+ - if: $VAR == "value"
+ auto_cancel:
+ on_new_commit: none
+ on_job_failure: none
+
+ hello:
+ script: echo world
+ YML
+ end
+
+ it 'parses workflow_rules' do
+ expect(subject.workflow_rules).to contain_exactly({
+ if: '$VAR == "value"',
+ auto_cancel: {
+ on_new_commit: 'none',
+ on_job_failure: 'none'
+ }
+ })
+ end
+ end
end
describe '#warnings' do
@@ -1295,10 +1321,12 @@ module Gitlab
name: ruby:2.7
docker:
platform: linux/amd64
+ user: dave
services:
- name: postgres:11.9
docker:
platform: linux/amd64
+ user: john
YAML
end
@@ -1313,9 +1341,9 @@ module Gitlab
options: {
script: ["exit 0"],
image: { name: "ruby:2.7",
- executor_opts: { docker: { platform: 'linux/amd64' } } },
+ executor_opts: { docker: { platform: 'linux/amd64', user: 'dave' } } },
services: [{ name: "postgres:11.9",
- executor_opts: { docker: { platform: 'linux/amd64' } } }]
+ executor_opts: { docker: { platform: 'linux/amd64', user: 'john' } } }]
},
allow_failure: false,
when: "on_success",
diff --git a/spec/lib/gitlab/cleanup/orphan_job_artifact_final_objects/job_artifact_object_spec.rb b/spec/lib/gitlab/cleanup/orphan_job_artifact_final_objects/job_artifact_object_spec.rb
new file mode 100644
index 00000000000..103df128dac
--- /dev/null
+++ b/spec/lib/gitlab/cleanup/orphan_job_artifact_final_objects/job_artifact_object_spec.rb
@@ -0,0 +1,90 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Cleanup::OrphanJobArtifactFinalObjects::JobArtifactObject, :clean_gitlab_redis_shared_state, feature_category: :build_artifacts do
+ let(:job_artifact_object) do
+ described_class.new(
+ fog_file,
+ bucket_prefix: bucket_prefix
+ )
+ end
+
+ # rubocop:disable RSpec/VerifiedDoubles -- For some reason it can't see Fog::AWS::Storage::File
+ let(:fog_file) { double(key: fog_file_key, content_length: 145) }
+ # rubocop:enable RSpec/VerifiedDoubles
+
+ let(:fog_file_key) { 'aaa/bbb/123' }
+ let(:bucket_prefix) { nil }
+
+ describe '#path' do
+ subject { job_artifact_object.path }
+
+ it { is_expected.to eq(fog_file.key) }
+ end
+
+ describe '#size' do
+ subject { job_artifact_object.size }
+
+ it { is_expected.to eq(fog_file.content_length) }
+ end
+
+ describe '#in_final_location?' do
+ subject { job_artifact_object.in_final_location? }
+
+ context 'when path has @final in it' do
+ let(:fog_file_key) { 'aaa/bbb/@final/123/ccc' }
+
+ it { is_expected.to eq(true) }
+ end
+
+ context 'when path has no @final in it' do
+ let(:fog_file_key) { 'aaa/bbb/ccc' }
+
+ it { is_expected.to eq(false) }
+ end
+ end
+
+ describe '#orphan?' do
+ shared_examples_for 'identifying orphan object' do
+ let(:artifact_final_path) { 'aaa/@final/bbb' }
+ let(:fog_file_key) { File.join([bucket_prefix, artifact_final_path].compact) }
+
+ subject { job_artifact_object.orphan? }
+
+ context 'when there is job artifact record with a file_final_path that matches the object path' do
+ before do
+ # We don't store the bucket_prefix if ever in the file_final_path
+ create(:ci_job_artifact, file_final_path: artifact_final_path)
+ end
+
+ it { is_expected.to eq(false) }
+ end
+
+ context 'when there are no job artifact records with a file_final_path that matches the object path' do
+ context 'and there is a pending direct upload entry that matches the object path' do
+ before do
+ # We don't store the bucket_prefix if ever in the pending direct upload entry
+ ObjectStorage::PendingDirectUpload.prepare(:artifacts, artifact_final_path)
+ end
+
+ it { is_expected.to eq(false) }
+ end
+
+ context 'and there are no pending direct upload entries that match the object path' do
+ it { is_expected.to eq(true) }
+ end
+ end
+ end
+
+ context 'when bucket prefix is not present' do
+ it_behaves_like 'identifying orphan object'
+ end
+
+ context 'when bucket prefix is present' do
+ let(:bucket_prefix) { 'my/prefix' }
+
+ it_behaves_like 'identifying orphan object'
+ end
+ end
+end
diff --git a/spec/lib/gitlab/cleanup/orphan_job_artifact_final_objects_cleaner_spec.rb b/spec/lib/gitlab/cleanup/orphan_job_artifact_final_objects_cleaner_spec.rb
new file mode 100644
index 00000000000..aeb87bc0d9e
--- /dev/null
+++ b/spec/lib/gitlab/cleanup/orphan_job_artifact_final_objects_cleaner_spec.rb
@@ -0,0 +1,263 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Cleanup::OrphanJobArtifactFinalObjectsCleaner, :orphan_final_artifacts_cleanup, :clean_gitlab_redis_shared_state, feature_category: :build_artifacts do
+ describe '#run!' do
+ let(:cleaner) do
+ described_class.new(
+ provider: specified_provider,
+ force_restart: force_restart,
+ dry_run: dry_run
+ )
+ end
+
+ let(:dry_run) { true }
+ let(:force_restart) { false }
+ let(:remote_directory) { 'artifacts' }
+ let(:bucket_prefix) { nil }
+
+ subject(:run) { cleaner.run! }
+
+ before do
+ stub_const('Gitlab::Cleanup::OrphanJobArtifactFinalObjects::Paginators::BasePaginator::BATCH_SIZE', 2)
+
+ Rake.application.rake_require 'tasks/gitlab/cleanup'
+
+ Gitlab.config.artifacts.object_store.tap do |config|
+ config[:remote_directory] = remote_directory
+ config[:bucket_prefix] = bucket_prefix
+ end
+
+ allow(Gitlab::AppLogger).to receive(:info)
+ end
+
+ shared_examples_for 'cleaning up orphan final job artifact objects' do
+ let(:fog_connection) do
+ stub_object_storage_uploader(
+ config: Gitlab.config.artifacts.object_store,
+ uploader: JobArtifactUploader,
+ direct_upload: true
+ )
+ end
+
+ let!(:orphan_final_object_1) { create_fog_file }
+ let!(:orphan_final_object_2) { create_fog_file }
+ let!(:orphan_non_final_object) { create_fog_file(final: false) }
+
+ let!(:non_orphan_final_object_1) do
+ create_fog_file.tap do |file|
+ create(:ci_job_artifact, file_final_path: path_without_bucket_prefix(file.key))
+ end
+ end
+
+ let!(:non_orphan_final_object_2) do
+ create_fog_file.tap do |file|
+ create(:ci_job_artifact, file_final_path: path_without_bucket_prefix(file.key))
+ end
+ end
+
+ shared_context 'when resuming from marker' do
+ let(:dummy_error) { Class.new(StandardError) }
+
+ before do
+ fetch_counter = 0
+
+ allow(cleaner).to receive(:fetch_batch).and_wrap_original do |m, *args|
+ raise dummy_error if fetch_counter == 1
+
+ fetch_counter += 1
+ m.call(*args)
+ end
+ end
+ end
+
+ shared_examples_for 'handling dry run mode' do
+ context 'when on dry run (which is default)' do
+ it 'logs orphan objects to delete but does not delete them' do
+ run
+
+ expect_start_log_message
+ expect_first_page_loading_log_message
+ expect_page_loading_via_marker_log_message(times: 3)
+ expect_delete_log_message(orphan_final_object_1)
+ expect_delete_log_message(orphan_final_object_2)
+ expect_no_delete_log_message(orphan_non_final_object)
+ expect_no_delete_log_message(non_orphan_final_object_1)
+ expect_no_delete_log_message(non_orphan_final_object_2)
+ expect_done_log_message
+
+ expect_object_to_exist(orphan_final_object_1)
+ expect_object_to_exist(orphan_final_object_2)
+ expect_object_to_exist(orphan_non_final_object)
+ expect_object_to_exist(non_orphan_final_object_1)
+ expect_object_to_exist(non_orphan_final_object_2)
+ end
+
+ context 'when interrupted in the middle of processing pages' do
+ include_context 'when resuming from marker'
+
+ it 'resumes from last known page marker on the next run' do
+ expect { cleaner.run! }.to raise_error(dummy_error)
+ saved_marker = fetch_saved_marker
+
+ new_cleaner = described_class.new(
+ provider: specified_provider,
+ force_restart: false,
+ dry_run: true
+ )
+
+ new_cleaner.run!
+
+ expect_resuming_from_marker_log_message(saved_marker)
+
+ # Given we can't guarantee the order of the objects because
+ # of random path generation, we can't tell which page they will
+ # fall in, so we will just ensure that they
+ # were all logged in the end.
+ expect_delete_log_message(orphan_final_object_1)
+ expect_delete_log_message(orphan_final_object_2)
+
+ # Ensure that they were not deleted because this is just dry run.
+ expect_object_to_exist(orphan_final_object_1)
+ expect_object_to_exist(orphan_final_object_2)
+ end
+
+ context 'and force_restart is true' do
+ it 'starts from the first page on the next run' do
+ expect { cleaner.run! }.to raise_error(dummy_error)
+
+ new_cleaner = described_class.new(
+ provider: specified_provider,
+ force_restart: true,
+ dry_run: true
+ )
+
+ new_cleaner.run!
+
+ expect_no_resuming_from_marker_log_message
+
+ # Ensure that they were not deleted because this is just dry run.
+ expect_object_to_exist(orphan_final_object_1)
+ expect_object_to_exist(orphan_final_object_2)
+ end
+ end
+ end
+ end
+
+ context 'when dry run is set to false' do
+ let(:dry_run) { false }
+
+ it 'logs orphan objects to delete and deletes them' do
+ expect_object_to_exist(orphan_final_object_1)
+ expect_object_to_exist(orphan_final_object_2)
+
+ run
+
+ expect_start_log_message
+ expect_first_page_loading_log_message
+ expect_page_loading_via_marker_log_message(times: 3)
+ expect_delete_log_message(orphan_final_object_1)
+ expect_delete_log_message(orphan_final_object_2)
+ expect_no_delete_log_message(orphan_non_final_object)
+ expect_no_delete_log_message(non_orphan_final_object_1)
+ expect_no_delete_log_message(non_orphan_final_object_2)
+ expect_done_log_message
+
+ expect_object_to_be_deleted(orphan_final_object_1)
+ expect_object_to_be_deleted(orphan_final_object_2)
+ expect_object_to_exist(orphan_non_final_object)
+ expect_object_to_exist(non_orphan_final_object_1)
+ expect_object_to_exist(non_orphan_final_object_2)
+ end
+
+ context 'when interrupted in the middle of processing pages' do
+ include_context 'when resuming from marker'
+
+ it 'resumes from last known page marker on the next run' do
+ expect { cleaner.run! }.to raise_error(dummy_error)
+ saved_marker = fetch_saved_marker
+
+ new_cleaner = described_class.new(
+ provider: specified_provider,
+ force_restart: false,
+ dry_run: false
+ )
+
+ new_cleaner.run!
+
+ expect_resuming_from_marker_log_message(saved_marker)
+
+ # Given we can't guarantee the order of the objects because
+ # of random path generation, we can't tell which page they will
+ # fall in, so we will just ensure that they
+ # were all logged in the end.
+ expect_delete_log_message(orphan_final_object_1)
+ expect_delete_log_message(orphan_final_object_2)
+
+ # Ensure that they were deleted because this is not dry run.
+ expect_object_to_be_deleted(orphan_final_object_1)
+ expect_object_to_be_deleted(orphan_final_object_2)
+ end
+
+ context 'and force_restart is true' do
+ it 'starts from the first page on the next run' do
+ expect { cleaner.run! }.to raise_error(dummy_error)
+
+ new_cleaner = described_class.new(
+ provider: specified_provider,
+ force_restart: true,
+ dry_run: false
+ )
+
+ new_cleaner.run!
+
+ expect_no_resuming_from_marker_log_message
+
+ # Ensure that they were deleted because this is not a dry run.
+ expect_object_to_be_deleted(orphan_final_object_1)
+ expect_object_to_be_deleted(orphan_final_object_2)
+ end
+ end
+ end
+ end
+ end
+
+ context 'when not configured to use bucket_prefix' do
+ let(:remote_directory) { 'artifacts' }
+ let(:bucket_prefix) { nil }
+
+ it_behaves_like 'handling dry run mode'
+ end
+
+ context 'when configured to use bucket_prefix' do
+ let(:remote_directory) { 'main-bucket' }
+ let(:bucket_prefix) { 'my/artifacts' }
+
+ it_behaves_like 'handling dry run mode'
+ end
+ end
+
+ context 'when defaulting to provider in the object store configuration' do
+ let(:specified_provider) { nil }
+
+ it_behaves_like 'cleaning up orphan final job artifact objects'
+ end
+
+ context 'when provider is specified' do
+ context 'and provider is supported' do
+ let(:specified_provider) { 'aws' }
+
+ it_behaves_like 'cleaning up orphan final job artifact objects'
+ end
+
+ context 'and provider is not supported' do
+ let(:specified_provider) { 'somethingelse' }
+
+ it 'raises an error' do
+ expect { run }.to raise_error(described_class::UnsupportedProviderError)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/current_settings_spec.rb b/spec/lib/gitlab/current_settings_spec.rb
index df1b12e479f..7fc50438c95 100644
--- a/spec/lib/gitlab/current_settings_spec.rb
+++ b/spec/lib/gitlab/current_settings_spec.rb
@@ -97,207 +97,44 @@ RSpec.describe Gitlab::CurrentSettings, feature_category: :shared do
expect(described_class.metrics_sample_interval).to be(15)
end
- context 'when ENV["IN_MEMORY_APPLICATION_SETTINGS"] is true' do
- before do
- stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'true')
- end
+ it 'retrieves settings using ApplicationSettingFetcher' do
+ expect(Gitlab::ApplicationSettingFetcher).to receive(:current_application_settings).and_call_original
- it 'returns an in-memory ApplicationSetting object' do
- expect(ApplicationSetting).not_to receive(:current)
+ described_class.home_page_url
+ end
+ end
- expect(described_class.current_application_settings).to be_a(ApplicationSetting)
- expect(described_class.current_application_settings).not_to be_persisted
- end
+ describe '#current_application_settings?' do
+ subject(:settings_set) { described_class.current_application_settings? }
+
+ before do
+ # unstub, it is stubbed in spec/spec_helper.rb
+ allow(described_class).to receive(:current_application_settings?).and_call_original
end
- context 'in a Rake task with DB unavailable' do
+ context 'when settings are cached in RequestStore' do
before do
- allow(Gitlab::Runtime).to receive(:rake?).and_return(true)
- # For some reason, `allow(described_class).to receive(:connect_to_db?).and_return(false)` causes issues
- # during the initialization phase of the test suite, so instead let's mock the internals of it
- allow(ApplicationSetting.connection).to receive(:active?).and_return(false)
+ allow(Gitlab::SafeRequestStore).to receive(:exist?).with(:current_application_settings).and_return(true)
end
- context 'and no settings in cache' do
- before do
- expect(ApplicationSetting).not_to receive(:current)
- end
-
- it 'returns a FakeApplicationSettings object' do
- expect(described_class.current_application_settings).to be_a(Gitlab::FakeApplicationSettings)
- end
-
- it 'does not issue any query' do
- expect(ActiveRecord::QueryRecorder.new { described_class.current_application_settings }.count).to eq(0)
- end
+ it 'returns true' do
+ expect(settings_set).to be(true)
end
end
- context 'with DB available' do
- # This method returns the ::ApplicationSetting.defaults hash
- # but with respect of custom attribute accessors of ApplicationSetting model
- def settings_from_defaults
- ar_wrapped_defaults = ::ApplicationSetting.build_from_defaults.attributes
- ar_wrapped_defaults.slice(*::ApplicationSetting.defaults.keys)
- end
-
- context 'and settings in cache' do
- include_context 'with settings in cache'
-
- it 'fetches the settings from cache' do
- # For some reason, `allow(described_class).to receive(:connect_to_db?).and_return(true)` causes issues
- # during the initialization phase of the test suite, so instead let's mock the internals of it
- expect(ApplicationSetting.connection).not_to receive(:active?)
- expect(ApplicationSetting.connection).not_to receive(:cached_table_exists?)
- expect_any_instance_of(ActiveRecord::MigrationContext).not_to receive(:needs_migration?)
- expect(ActiveRecord::QueryRecorder.new { described_class.current_application_settings }.count).to eq(0)
- end
+ context 'when ApplicationSettingFetcher.current_application_settings? returns true' do
+ before do
+ allow(Gitlab::ApplicationSettingFetcher).to receive(:current_application_settings?).and_return(true)
end
- context 'and no settings in cache' do
- before do
- allow(ApplicationSetting.connection).to receive(:active?).and_return(true)
- allow(ApplicationSetting.connection).to receive(:cached_table_exists?).with('application_settings').and_return(true)
- end
-
- context 'with RequestStore enabled', :request_store do
- it 'fetches the settings from DB only once' do
- described_class.current_application_settings # warm the cache
-
- expect(ActiveRecord::QueryRecorder.new { described_class.current_application_settings }.count).to eq(0)
- end
- end
-
- it 'creates default ApplicationSettings if none are present' do
- settings = described_class.current_application_settings
-
- expect(settings).to be_a(ApplicationSetting)
- expect(settings).to be_persisted
- expect(settings).to have_attributes(settings_from_defaults)
- end
-
- context 'when we hit a recursive loop' do
- before do
- expect(ApplicationSetting).to receive(:create_from_defaults) do
- raise ApplicationSetting::Recursion
- end
- end
-
- it 'recovers and returns in-memory settings' do
- settings = described_class.current_application_settings
-
- expect(settings).to be_a(ApplicationSetting)
- expect(settings).not_to be_persisted
- end
- end
-
- context 'when ApplicationSettings does not have a primary key' do
- before do
- allow(ApplicationSetting.connection).to receive(:primary_key).with('application_settings').and_return(nil)
- end
-
- it 'raises an exception if ApplicationSettings does not have a primary key' do
- expect { described_class.current_application_settings }.to raise_error(/table is missing a primary key constraint/)
- end
- end
-
- context 'with pending migrations' do
- let(:current_settings) { described_class.current_application_settings }
-
- before do
- allow(Gitlab::Runtime).to receive(:rake?).and_return(false)
- end
-
- shared_examples 'a non-persisted ApplicationSetting object' do
- it 'uses the default value from ApplicationSetting.defaults' do
- expect(current_settings.signup_enabled).to eq(ApplicationSetting.defaults[:signup_enabled])
- end
-
- it 'uses the default value from custom ApplicationSetting accessors' do
- expect(current_settings.commit_email_hostname).to eq(ApplicationSetting.default_commit_email_hostname)
- end
-
- it 'responds to predicate methods' do
- expect(current_settings.signup_enabled?).to eq(current_settings.signup_enabled)
- end
- end
-
- context 'in a Rake task' do
- before do
- allow(Gitlab::Runtime).to receive(:rake?).and_return(true)
- expect_any_instance_of(ActiveRecord::MigrationContext).to receive(:needs_migration?).and_return(true)
- end
-
- it_behaves_like 'a non-persisted ApplicationSetting object'
-
- it 'returns a FakeApplicationSettings object' do
- expect(current_settings).to be_a(Gitlab::FakeApplicationSettings)
- end
-
- context 'when a new column is used before being migrated' do
- before do
- allow(ApplicationSetting).to receive(:defaults).and_return({ foo: 'bar' })
- end
-
- it 'uses the default value if present' do
- expect(current_settings.foo).to eq('bar')
- end
- end
- end
-
- context 'with no ApplicationSetting DB record' do
- it_behaves_like 'a non-persisted ApplicationSetting object'
- end
-
- context 'with an existing ApplicationSetting DB record' do
- before do
- described_class.update!(home_page_url: 'http://mydomain.com')
- end
-
- it_behaves_like 'a non-persisted ApplicationSetting object'
-
- it 'uses the value from the DB attribute if present and not overridden by an accessor' do
- expect(current_settings.home_page_url).to eq('http://mydomain.com')
- end
- end
- end
-
- context 'when ApplicationSettings.current is present' do
- it 'returns the existing application settings' do
- expect(ApplicationSetting).to receive(:current).and_return(:current_settings)
-
- expect(described_class.current_application_settings).to eq(:current_settings)
- end
- end
+ it 'returns true' do
+ expect(settings_set).to be(true)
end
end
- end
-
- describe '#current_application_settings?', :use_clean_rails_memory_store_caching do
- before do
- allow(described_class).to receive(:current_application_settings?).and_call_original
- ApplicationSetting.delete_all # ensure no settings exist
- end
-
- it 'returns true when settings exist' do
- described_class.update!(
- home_page_url: 'http://mydomain.com',
- signup_enabled: false)
-
- expect(described_class.current_application_settings?).to eq(true)
- end
-
- it 'returns false when settings do not exist' do
- expect(described_class.current_application_settings?).to eq(false)
- end
-
- context 'with cache', :request_store do
- include_context 'with settings in cache'
-
- it 'returns an in-memory ApplicationSetting object' do
- expect(ApplicationSetting).not_to receive(:current)
- expect(described_class.current_application_settings?).to eq(true)
+ context 'when not cached and not in ApplicationSettingFetcher' do
+ it 'returns false' do
+ expect(settings_set).to be(false)
end
end
end
diff --git a/spec/lib/gitlab/data_builder/pipeline_spec.rb b/spec/lib/gitlab/data_builder/pipeline_spec.rb
index ad7cd2dc736..5fa61b1680d 100644
--- a/spec/lib/gitlab/data_builder/pipeline_spec.rb
+++ b/spec/lib/gitlab/data_builder/pipeline_spec.rb
@@ -184,14 +184,14 @@ RSpec.describe Gitlab::DataBuilder::Pipeline, feature_category: :continuous_inte
create(:ci_build, :deploy_to_production, :with_deployment, user: user, project: project, pipeline: pipeline)
# We need `.to_json` as the build hook data is wrapped within `Gitlab::Lazy`
- control_count = ActiveRecord::QueryRecorder.new { described_class.build(pipeline.reload).to_json }.count
+ control = ActiveRecord::QueryRecorder.new { described_class.build(pipeline.reload).to_json }
# Adding more builds to the pipeline and serializing the data again
create_list(:ci_build, 3, user: user, project: project, pipeline: pipeline)
create(:ci_build, :start_review_app, :with_deployment, user: user, project: project, pipeline: pipeline)
create(:ci_build, :stop_review_app, :with_deployment, user: user, project: project, pipeline: pipeline)
- expect { described_class.build(pipeline.reload).to_json }.not_to exceed_query_limit(control_count)
+ expect { described_class.build(pipeline.reload).to_json }.not_to exceed_query_limit(control)
end
it "with multiple retried builds" do
@@ -201,14 +201,14 @@ RSpec.describe Gitlab::DataBuilder::Pipeline, feature_category: :continuous_inte
create(:ci_build, :deploy_to_production, :retried, :with_deployment, user: user, project: project, pipeline: pipeline)
# We need `.to_json` as the build hook data is wrapped within `Gitlab::Lazy`
- control_count = ActiveRecord::QueryRecorder.new { described_class.build(pipeline.reload).with_retried_builds.to_json }.count
+ control = ActiveRecord::QueryRecorder.new { described_class.build(pipeline.reload).with_retried_builds.to_json }
# Adding more builds to the pipeline and serializing the data again
create_list(:ci_build, 3, :retried, user: user, project: project, pipeline: pipeline)
create(:ci_build, :start_review_app, :retried, :with_deployment, user: user, project: project, pipeline: pipeline)
create(:ci_build, :stop_review_app, :retried, :with_deployment, user: user, project: project, pipeline: pipeline)
- expect { described_class.build(pipeline.reload).with_retried_builds.to_json }.not_to exceed_query_limit(control_count)
+ expect { described_class.build(pipeline.reload).with_retried_builds.to_json }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/lib/gitlab/data_builder/push_spec.rb b/spec/lib/gitlab/data_builder/push_spec.rb
index 02dc596c5eb..2d2beaff339 100644
--- a/spec/lib/gitlab/data_builder/push_spec.rb
+++ b/spec/lib/gitlab/data_builder/push_spec.rb
@@ -89,13 +89,13 @@ RSpec.describe Gitlab::DataBuilder::Push do
described_class.build(
project: project,
user: user,
- oldrev: Gitlab::Git::BLANK_SHA,
+ oldrev: Gitlab::Git::SHA1_BLANK_SHA,
newrev: '8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b',
ref: 'refs/tags/v1.1.0')
end
it { expect(data).to be_a(Hash) }
- it { expect(data[:before]).to eq(Gitlab::Git::BLANK_SHA) }
+ it { expect(data[:before]).to eq(Gitlab::Git::SHA1_BLANK_SHA) }
it { expect(data[:checkout_sha]).to eq('5937ac0a7beb003549fc5fd26fc247adbce4a52e') }
it { expect(data[:after]).to eq('8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b') }
it { expect(data[:ref]).to eq('refs/tags/v1.1.0') }
diff --git a/spec/lib/gitlab/database/click_house_client_spec.rb b/spec/lib/gitlab/database/click_house_client_spec.rb
index 271500ed3f6..e501a17b9b0 100644
--- a/spec/lib/gitlab/database/click_house_client_spec.rb
+++ b/spec/lib/gitlab/database/click_house_client_spec.rb
@@ -52,7 +52,7 @@ RSpec.describe 'ClickHouse::Client', :click_house, feature_category: :database d
describe 'RSpec hooks' do
it 'ensures that tables are empty' do
- results = ClickHouse::Client.select('SELECT * FROM events', :main)
+ results = ClickHouse::Client.select('SELECT * FROM FINAL events', :main)
expect(results).to be_empty
end
@@ -66,7 +66,7 @@ RSpec.describe 'ClickHouse::Client', :click_house, feature_category: :database d
:main)
end
- results = ClickHouse::Client.select('SELECT id, path, created_at FROM events ORDER BY id', :main)
+ results = ClickHouse::Client.select('SELECT id, path, created_at FROM events FINAL ORDER BY id', :main)
expect(results).to match([
{ 'id' => 10, 'path' => '1/2/', 'created_at' => be_within(0.1.seconds).of(time) },
@@ -87,7 +87,7 @@ RSpec.describe 'ClickHouse::Client', :click_house, feature_category: :database d
ClickHouse::Client.execute(insert_query, :main)
- results = ClickHouse::Client.select('SELECT * FROM events ORDER BY id', :main)
+ results = ClickHouse::Client.select('SELECT * FROM events FINAL ORDER BY id', :main)
expect(results.size).to eq(3)
last = results.last
@@ -106,7 +106,7 @@ RSpec.describe 'ClickHouse::Client', :click_house, feature_category: :database d
ClickHouse::Client.execute(delete_query, :main)
select_query = ClickHouse::Client::Query.new(
- raw_query: 'SELECT * FROM events WHERE id = {id:UInt64}',
+ raw_query: 'SELECT * FROM events FINAL WHERE id = {id:UInt64}',
placeholders: { id: event3.id }
)
diff --git a/spec/lib/gitlab/database/dictionary_spec.rb b/spec/lib/gitlab/database/dictionary_spec.rb
index 261cf27ed69..59145842b24 100644
--- a/spec/lib/gitlab/database/dictionary_spec.rb
+++ b/spec/lib/gitlab/database/dictionary_spec.rb
@@ -24,6 +24,25 @@ RSpec.describe Gitlab::Database::Dictionary, feature_category: :database do
end
end
+ describe '.any_entry' do
+ it 'loads an entry from any scope' do
+ expect(described_class.any_entry('ci_pipelines')).to be_present # Regular table
+ expect(described_class.any_entry('audit_events_archived')).to be_present # Deleted table
+ expect(described_class.any_entry('postgres_constraints')).to be_present # View
+ expect(described_class.any_entry('not_a_table_ever')).to be_nil
+ end
+ end
+
+ describe '.entry' do
+ it 'loads an Entry from the given scope' do
+ expect(described_class.entry('ci_pipelines')).to be_present # Regular table
+ expect(described_class.entry('audit_events_archived')).not_to be_present # Deleted table
+ expect(described_class.entry('postgres_constraints')).not_to be_present # Deleted table
+ expect(described_class.entry('audit_events_archived', 'deleted_tables')).to be_present # Deleted table
+ expect(described_class.entry('postgres_constraints', 'views')).to be_present # View
+ end
+ end
+
describe '::Entry' do
subject(:database_dictionary) { described_class::Entry.new(file_path) }
@@ -80,6 +99,39 @@ RSpec.describe Gitlab::Database::Dictionary, feature_category: :database do
expect { database_dictionary.validate! }.to raise_error(Gitlab::Database::GitlabSchema::UnknownSchemaError)
end
end
+
+ context 'with allow_cross_joins' do
+ let(:file_path) { 'db/docs/achievements.yml' }
+
+ describe '#allow_cross_to_schemas' do
+ it 'returns the list of allowed schemas' do
+ expect(database_dictionary.allow_cross_to_schemas(:joins))
+ .to contain_exactly(:gitlab_main_clusterwide)
+ end
+ end
+ end
+
+ context 'with allow_cross_transactions' do
+ let(:file_path) { 'db/docs/activity_pub_releases_subscriptions.yml' }
+
+ describe '#allow_cross_to_schemas' do
+ it 'returns the list of allowed schemas' do
+ expect(database_dictionary.allow_cross_to_schemas(:transactions))
+ .to contain_exactly(:gitlab_main_clusterwide)
+ end
+ end
+ end
+
+ context 'with allow_cross_foreign_keys' do
+ let(:file_path) { 'db/docs/agent_group_authorizations.yml' }
+
+ describe '#allow_cross_to_schemas' do
+ it 'returns the list of allowed schemas' do
+ expect(database_dictionary.allow_cross_to_schemas(:foreign_keys))
+ .to contain_exactly(:gitlab_main_clusterwide)
+ end
+ end
+ end
end
context 'for a view' do
diff --git a/spec/lib/gitlab/database/gitlab_schema_spec.rb b/spec/lib/gitlab/database/gitlab_schema_spec.rb
index 7fca47c707c..f716bcfcf49 100644
--- a/spec/lib/gitlab/database/gitlab_schema_spec.rb
+++ b/spec/lib/gitlab/database/gitlab_schema_spec.rb
@@ -217,17 +217,19 @@ RSpec.describe Gitlab::Database::GitlabSchema, feature_category: :database do
describe '.cross_joins_allowed?' do
where(:schemas, :tables, :result) do
- %i[] | %i[] | true
- %i[gitlab_main] | %i[] | true
- %i[gitlab_main_clusterwide gitlab_main] | %i[] | true
- %i[gitlab_main_clusterwide gitlab_ci] | %i[] | false
- %i[gitlab_main_clusterwide gitlab_main gitlab_ci] | %i[] | false
- %i[gitlab_main_clusterwide gitlab_internal] | %i[] | false
- %i[gitlab_main gitlab_ci] | %i[] | false
- %i[gitlab_main_clusterwide gitlab_main gitlab_shared] | %i[] | true
- %i[gitlab_main_clusterwide gitlab_shared] | %i[] | true
+ %i[] | %w[] | true
+ %i[gitlab_main] | %w[evidences] | true
+ %i[gitlab_main_clusterwide gitlab_main] | %w[users evidences] | true
+ %i[gitlab_main_clusterwide gitlab_ci] | %w[users ci_pipelines] | false
+ %i[gitlab_main_clusterwide gitlab_main gitlab_ci] | %w[users evidences ci_pipelines] | false
+ %i[gitlab_main_clusterwide gitlab_internal] | %w[users schema_migrations] | false
+ %i[gitlab_main gitlab_ci] | %w[evidences schema_migrations] | false
+ %i[gitlab_main_clusterwide gitlab_main gitlab_shared] | %w[users evidences detached_partitions] | true
+ %i[gitlab_main_clusterwide gitlab_shared] | %w[users detached_partitions] | true
%i[gitlab_main_clusterwide gitlab_main_cell] | %w[users namespaces] | false
%i[gitlab_main_clusterwide gitlab_main_cell] | %w[plans namespaces] | true
+ %i[gitlab_main_clusterwide gitlab_main_cell] | %w[users achievements] | true
+ %i[gitlab_main_clusterwide gitlab_main_cell] | %w[users activity_pub_releases_subscriptions] | false
end
with_them do
@@ -237,17 +239,19 @@ RSpec.describe Gitlab::Database::GitlabSchema, feature_category: :database do
describe '.cross_transactions_allowed?' do
where(:schemas, :tables, :result) do
- %i[] | %i[] | true
- %i[gitlab_main] | %i[] | true
- %i[gitlab_main_clusterwide gitlab_main] | %i[] | true
- %i[gitlab_main_clusterwide gitlab_ci] | %i[] | false
- %i[gitlab_main_clusterwide gitlab_main gitlab_ci] | %i[] | false
- %i[gitlab_main_clusterwide gitlab_internal] | %i[] | true
- %i[gitlab_main gitlab_ci] | %i[] | false
- %i[gitlab_main_clusterwide gitlab_main gitlab_shared] | %i[] | true
- %i[gitlab_main_clusterwide gitlab_shared] | %i[] | true
+ %i[] | %w[] | true
+ %i[gitlab_main] | %w[evidences] | true
+ %i[gitlab_main_clusterwide gitlab_main] | %w[users evidences] | true
+ %i[gitlab_main_clusterwide gitlab_ci] | %w[users ci_pipelines] | false
+ %i[gitlab_main_clusterwide gitlab_main gitlab_ci] | %w[users evidences ci_pipelines] | false
+ %i[gitlab_main_clusterwide gitlab_internal] | %w[users schema_migrations] | true
+ %i[gitlab_main gitlab_ci] | %w[evidences ci_pipelines] | false
+ %i[gitlab_main_clusterwide gitlab_main gitlab_shared] | %w[users evidences detached_partitions] | true
+ %i[gitlab_main_clusterwide gitlab_shared] | %w[users detached_partitions] | true
%i[gitlab_main_clusterwide gitlab_main_cell] | %w[users namespaces] | false
%i[gitlab_main_clusterwide gitlab_main_cell] | %w[plans namespaces] | true
+ %i[gitlab_main_clusterwide gitlab_main_cell] | %w[users achievements] | false
+ %i[gitlab_main_clusterwide gitlab_main_cell] | %w[users activity_pub_releases_subscriptions] | true
end
with_them do
@@ -257,15 +261,17 @@ RSpec.describe Gitlab::Database::GitlabSchema, feature_category: :database do
describe '.cross_foreign_key_allowed?' do
where(:schemas, :tables, :result) do
- %i[] | %i[] | false
- %i[gitlab_main] | %i[] | true
- %i[gitlab_main_clusterwide gitlab_main] | %i[] | true
- %i[gitlab_main_clusterwide gitlab_ci] | %i[] | false
- %i[gitlab_main_clusterwide gitlab_internal] | %i[] | false
- %i[gitlab_main gitlab_ci] | %i[] | false
- %i[gitlab_main_clusterwide gitlab_shared] | %i[] | false
+ %i[] | %w[] | false
+ %i[gitlab_main] | %w[evidences] | true
+ %i[gitlab_main_clusterwide gitlab_main] | %w[users evidences] | true
+ %i[gitlab_main_clusterwide gitlab_ci] | %w[users ci_pipelines] | false
+ %i[gitlab_main_clusterwide gitlab_internal] | %w[users schema_migrations] | false
+ %i[gitlab_main gitlab_ci] | %w[evidences ci_pipelines] | false
+ %i[gitlab_main_clusterwide gitlab_shared] | %w[users detached_partitions] | false
%i[gitlab_main_clusterwide gitlab_main_cell] | %w[users namespaces] | false
%i[gitlab_main_clusterwide gitlab_main_cell] | %w[plans namespaces] | true
+ %i[gitlab_main_clusterwide gitlab_main_cell] | %w[users achievements] | false
+ %i[gitlab_main_clusterwide gitlab_main_cell] | %w[users agent_group_authorizations] | true
end
with_them do
diff --git a/spec/lib/gitlab/database/migration_helpers/v2_spec.rb b/spec/lib/gitlab/database/migration_helpers/v2_spec.rb
index 8b653e2d89d..afcec5ea214 100644
--- a/spec/lib/gitlab/database/migration_helpers/v2_spec.rb
+++ b/spec/lib/gitlab/database/migration_helpers/v2_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::Database::MigrationHelpers::V2 do
+RSpec.describe Gitlab::Database::MigrationHelpers::V2, feature_category: :database do
include Database::TriggerHelpers
include Database::TableSchemaHelpers
@@ -59,7 +59,7 @@ RSpec.describe Gitlab::Database::MigrationHelpers::V2 do
context 'when the batch column does exist' do
it 'passes it when creating the column' do
expect(migration).to receive(:create_column_from)
- .with(:_test_table, existing_column, added_column, type: nil, batch_column_name: :status)
+ .with(:_test_table, existing_column, added_column, type: nil, batch_column_name: :status, type_cast_function: nil)
.and_call_original
migration.public_send(operation, :_test_table, :original, :renamed, batch_column_name: :status)
@@ -495,4 +495,83 @@ RSpec.describe Gitlab::Database::MigrationHelpers::V2 do
end
end
end
+
+ describe '#change_column_type_concurrently' do
+ let(:table_name) { :_test_change_column_type_concurrently }
+
+ before do
+ migration.connection.execute(<<~SQL)
+ DROP TABLE IF EXISTS #{table_name};
+ CREATE TABLE #{table_name} (
+ id serial NOT NULL PRIMARY KEY,
+ user_id bigint,
+ name character varying
+ );
+ /* at least one record for batching update */
+ INSERT INTO #{table_name} (id, user_id, name)
+ VALUES (1, 9, '{ \"lucky_number\": 8 }')
+ SQL
+ end
+
+ it 'adds a column of the new type and triggers to keep these two columns in sync' do
+ allow(migration).to receive(:transaction_open?).and_return(false)
+ recorder = ActiveRecord::QueryRecorder.new do
+ migration.change_column_type_concurrently(table_name, :name, :text)
+ end
+ expect(recorder.log).to include(/ALTER TABLE "_test_change_column_type_concurrently" ADD "name_for_type_change" text/)
+ expect(recorder.log).to include(/BEGIN\n IF NEW."name" IS NOT DISTINCT FROM NULL AND NEW."name_for_type_change" IS DISTINCT FROM NULL THEN\n NEW."name" = NEW."name_for_type_change";\n END IF;\n\n IF NEW."name_for_type_change" IS NOT DISTINCT FROM NULL AND NEW."name" IS DISTINCT FROM NULL THEN\n NEW."name_for_type_change" = NEW."name";\n END IF;\n\n RETURN NEW;\nEND/m)
+ expect(recorder.log).to include(/BEGIN\n NEW."name" := NEW."name_for_type_change";\n RETURN NEW;\nEND/m)
+ expect(recorder.log).to include(/BEGIN\n NEW."name_for_type_change" := NEW."name";\n RETURN NEW;\nEND/m)
+ expect(recorder.log).to include(/ON "_test_change_column_type_concurrently"\nFOR EACH ROW\sEXECUTE FUNCTION/m)
+ expect(recorder.log).to include(/UPDATE .* WHERE "_test_change_column_type_concurrently"."id" >= \d+/)
+ end
+
+ context 'with batch column name' do
+ it 'updates the new column using the batch column' do
+ allow(migration).to receive(:transaction_open?).and_return(false)
+ recorder = ActiveRecord::QueryRecorder.new do
+ migration.change_column_type_concurrently(table_name, :name, :text, batch_column_name: :user_id)
+ end
+ expect(recorder.log).to include(/UPDATE .* WHERE "_test_change_column_type_concurrently"."user_id" >= \d+/)
+ end
+ end
+
+ context 'with type cast function' do
+ it 'updates the new column with casting the value to the given type' do
+ allow(migration).to receive(:transaction_open?).and_return(false)
+ recorder = ActiveRecord::QueryRecorder.new do
+ migration.change_column_type_concurrently(table_name, :name, :text, type_cast_function: 'JSON')
+ end
+ expect(recorder.log).to include(/SET "name_for_type_change" = JSON\("_test_change_column_type_concurrently"\."name"\)/m)
+ end
+ end
+ end
+
+ describe '#undo_change_column_type_concurrently' do
+ let(:table_name) { :_test_undo_change_column_type_concurrently }
+
+ before do
+ migration.connection.execute(<<~SQL)
+ DROP TABLE IF EXISTS #{table_name};
+ CREATE TABLE #{table_name} (
+ id serial NOT NULL PRIMARY KEY,
+ user_id bigint,
+ name character varying
+ );
+ /* at least one record for batching update */
+ INSERT INTO #{table_name} (id, user_id, name)
+ VALUES (1, 9, 'For every young')
+ SQL
+ end
+
+ it 'undoes the column type change' do
+ allow(migration).to receive(:transaction_open?).and_return(false)
+ migration.change_column_type_concurrently(table_name, :name, :text)
+ recorder = ActiveRecord::QueryRecorder.new do
+ migration.undo_change_column_type_concurrently(table_name, :name)
+ end
+ expect(recorder.log).to include(/DROP TRIGGER IF EXISTS .+ON "_test_undo_change_column_type_concurrently"/m)
+ expect(recorder.log).to include(/ALTER TABLE "_test_undo_change_column_type_concurrently" DROP COLUMN "name_for_type_change"/)
+ end
+ end
end
diff --git a/spec/lib/gitlab/database/namespace_each_batch_spec.rb b/spec/lib/gitlab/database/namespace_each_batch_spec.rb
new file mode 100644
index 00000000000..23de19a6683
--- /dev/null
+++ b/spec/lib/gitlab/database/namespace_each_batch_spec.rb
@@ -0,0 +1,174 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Database::NamespaceEachBatch, feature_category: :database do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:other_group) { create(:group) }
+ let_it_be(:user) { create(:user, :admin) }
+
+ let(:namespace_id) { group.id }
+
+ let_it_be(:subgroup1) { create(:group, parent: group) }
+ let_it_be(:subgroup2) { create(:group, parent: group) }
+
+ let_it_be(:subsubgroup1) { create(:group, parent: subgroup1) }
+ let_it_be(:subsubgroup2) { create(:group, parent: subgroup1) }
+ let_it_be(:subsubgroup3) { create(:group, parent: subgroup1) }
+
+ let_it_be(:project1) { create(:project, namespace: group) }
+ let_it_be(:project2) { create(:project, namespace: group) }
+ let_it_be(:project3) { create(:project, namespace: subsubgroup2) }
+ let_it_be(:project4) { create(:project, namespace: subsubgroup3) }
+ let_it_be(:project5) { create(:project, namespace: subsubgroup3) }
+
+ let(:namespace_class) { Namespace }
+ let(:batch_size) { 3 }
+
+ def collected_ids(cursor = { current_id: namespace_id, depth: [namespace_id] })
+ [].tap do |ids|
+ described_class.new(namespace_class: namespace_class, cursor: cursor).each_batch(of: batch_size) do |batch_ids|
+ ids.concat(batch_ids)
+ end
+ end
+ end
+
+ shared_examples 'iteration over the hierarchy' do
+ it 'returns the correct namespace ids' do
+ expect(collected_ids).to eq([
+ group.id,
+ subgroup1.id,
+ subsubgroup1.id,
+ subsubgroup2.id,
+ project3.project_namespace_id,
+ subsubgroup3.id,
+ project4.project_namespace_id,
+ project5.project_namespace_id,
+ subgroup2.id,
+ project1.project_namespace_id,
+ project2.project_namespace_id
+ ])
+ end
+ end
+
+ it_behaves_like 'iteration over the hierarchy'
+
+ context 'when batch size is larger than the hierarchy' do
+ let(:batch_size) { 100 }
+
+ it_behaves_like 'iteration over the hierarchy'
+ end
+
+ context 'when batch size is 1' do
+ let(:batch_size) { 1 }
+
+ it_behaves_like 'iteration over the hierarchy'
+ end
+
+ context 'when stopping the iteration in the middle and resuming' do
+ it 'returns the correct ids' do
+ ids = []
+ cursor = { current_id: namespace_id, depth: [namespace_id] }
+
+ iterator = described_class.new(namespace_class: namespace_class, cursor: cursor)
+ iterator.each_batch(of: 5) do |batch_ids, new_cursor|
+ ids.concat(batch_ids)
+ cursor = new_cursor
+ end
+
+ iterator = described_class.new(namespace_class: namespace_class, cursor: cursor)
+ iterator.each_batch(of: 500) do |batch_ids|
+ ids.concat(batch_ids)
+ end
+
+ expect(collected_ids).to eq([
+ group.id,
+ subgroup1.id,
+ subsubgroup1.id,
+ subsubgroup2.id,
+ project3.project_namespace_id,
+ subsubgroup3.id,
+ project4.project_namespace_id,
+ project5.project_namespace_id,
+ subgroup2.id,
+ project1.project_namespace_id,
+ project2.project_namespace_id
+ ])
+ end
+ end
+
+ context 'when querying a subgroup' do
+ let(:namespace_id) { subgroup1.id }
+
+ it 'returns the correct ids' do
+ expect(collected_ids).to eq([
+ subgroup1.id,
+ subsubgroup1.id,
+ subsubgroup2.id,
+ project3.project_namespace_id,
+ subsubgroup3.id,
+ project4.project_namespace_id,
+ project5.project_namespace_id
+ ])
+ end
+ end
+
+ context 'when querying a subgroup without descendants' do
+ let(:namespace_id) { subgroup2.id }
+
+ it 'finds only the given namespace id' do
+ expect(collected_ids).to eq([subgroup2.id])
+ end
+ end
+
+ context 'when batching over groups only' do
+ let(:namespace_class) { Group }
+
+ it 'returns the correct namespace ids' do
+ expect(collected_ids).to eq([
+ group.id,
+ subgroup1.id,
+ subsubgroup1.id,
+ subsubgroup2.id,
+ subsubgroup3.id,
+ subgroup2.id
+ ])
+ end
+ end
+
+ context 'when the cursor is invalid' do
+ context 'when non-integer current id is given' do
+ it 'raises error' do
+ cursor = { current_id: 'not int', depth: [group.id] }
+
+ expect { collected_ids(cursor) }.to raise_error(ArgumentError)
+ end
+ end
+
+ context 'when depth is not an array' do
+ it 'raises error' do
+ cursor = { current_id: group.id, depth: group.id }
+
+ expect { collected_ids(cursor) }.to raise_error(ArgumentError)
+ end
+ end
+
+ context 'when non-integer depth values are given' do
+ it 'raises error' do
+ cursor = { current_id: group.id, depth: ['not int'] }
+
+ expect { collected_ids(cursor) }.to raise_error(ArgumentError)
+ end
+ end
+
+ context 'when giving non-existing namespace id' do
+ it 'returns nothing', :enable_admin_mode do
+ cursor = { current_id: subgroup1.id, depth: [group.id, subgroup1.id] }
+
+ Groups::DestroyService.new(group, user).execute
+
+ expect(collected_ids(cursor)).to eq([])
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/database/no_new_tables_with_gitlab_main_schema_spec.rb b/spec/lib/gitlab/database/no_new_tables_with_gitlab_main_schema_spec.rb
index d1d7aa12c46..4fc62c6cc74 100644
--- a/spec/lib/gitlab/database/no_new_tables_with_gitlab_main_schema_spec.rb
+++ b/spec/lib/gitlab/database/no_new_tables_with_gitlab_main_schema_spec.rb
@@ -12,7 +12,8 @@ RSpec.describe 'new tables with gitlab_main schema', feature_category: :cell do
# Specific tables can be exempted from this requirement, and such tables must be added to the `exempted_tables` list.
let!(:exempted_tables) do
[
- "audit_events_instance_amazon_s3_configurations" # https://gitlab.com/gitlab-org/gitlab/-/issues/431327
+ "audit_events_instance_amazon_s3_configurations", # https://gitlab.com/gitlab-org/gitlab/-/issues/431327
+ "sbom_source_packages" # https://gitlab.com/gitlab-org/gitlab/-/issues/437718
]
end
diff --git a/spec/lib/gitlab/database/partitioning/int_range_partition_spec.rb b/spec/lib/gitlab/database/partitioning/int_range_partition_spec.rb
new file mode 100644
index 00000000000..eadae77bdc6
--- /dev/null
+++ b/spec/lib/gitlab/database/partitioning/int_range_partition_spec.rb
@@ -0,0 +1,173 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Database::Partitioning::IntRangePartition, feature_category: :database do
+ describe 'validate attributes' do
+ subject(:int_range_partition) { described_class.from_sql(table, partition_name, definition) }
+
+ let(:table) { 'foo' }
+ let(:partition_name) { 'foo_bar' }
+ let(:definition) { "FOR VALUES FROM ('1') TO ('10')" }
+
+ context 'when `from` is greater than `to`' do
+ let(:definition) { "FOR VALUES FROM ('10') TO ('1')" }
+
+ it 'raises an exception' do
+ expect { int_range_partition }.to raise_error(RuntimeError, '`to` must be greater than `from`')
+ end
+ end
+
+ context 'when `to` is 0' do
+ let(:definition) { "FOR VALUES FROM ('10') TO ('0')" }
+
+ it 'raises an exception' do
+ expect { int_range_partition }.to raise_error(RuntimeError, '`to` statement must be greater than 0')
+ end
+ end
+
+ context 'when `from` is 0' do
+ let(:definition) { "FOR VALUES FROM ('0') TO ('1')" }
+
+ it 'raises an exception' do
+ expect { int_range_partition }.to raise_error(RuntimeError, '`from` statement must be greater than 0')
+ end
+ end
+ end
+
+ describe '.from_sql' do
+ subject(:int_range_partition) { described_class.from_sql(table, partition_name, definition) }
+
+ let(:table) { 'foo' }
+ let(:partition_name) { 'foo_bar' }
+ let(:definition) { "FOR VALUES FROM ('1') TO ('10')" }
+
+ it 'uses specified table name' do
+ expect(int_range_partition.table).to eq(table)
+ end
+
+ it 'uses specified partition name' do
+ expect(int_range_partition.partition_name).to eq(partition_name)
+ end
+
+ it 'parses start date' do
+ expect(int_range_partition.from).to eq(1)
+ end
+
+ it 'parses end date' do
+ expect(int_range_partition.to).to eq(10)
+ end
+ end
+
+ describe '#partition_name' do
+ subject(:int_range_partition_name) do
+ described_class.new(table, from, to, partition_name: partition_name).partition_name
+ end
+
+ let(:table) { 'foo' }
+ let(:from) { '1' }
+ let(:to) { '10' }
+ let(:partition_name) { nil }
+
+ it 'uses table as prefix' do
+ expect(int_range_partition_name).to start_with(table)
+ end
+
+ it 'uses start id (from) as suffix' do
+ expect(int_range_partition_name).to end_with("_1")
+ end
+
+ context 'with partition name explicitly given' do
+ let(:partition_name) { "foo_bar" }
+
+ it 'uses given partition name' do
+ expect(int_range_partition_name).to eq(partition_name)
+ end
+ end
+ end
+
+ describe '#to_sql' do
+ subject(:to_sql) { described_class.new(table, from, to).to_sql }
+
+ let(:table) { 'foo' }
+ let(:from) { '1' }
+ let(:to) { '10' }
+
+ it 'transforms to a CREATE TABLE statement' do
+ expect(to_sql).to eq(<<~SQL)
+ CREATE TABLE IF NOT EXISTS "#{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}"."foo_1"
+ PARTITION OF "foo"
+ FOR VALUES FROM ('1') TO ('10')
+ SQL
+ end
+ end
+
+ describe 'object equality - #eql' do
+ def expect_inequality(actual, other)
+ expect(actual.eql?(other)).to be_falsey
+ expect(actual).not_to eq(other)
+ end
+
+ def expect_equality(actual, other)
+ expect(actual).to eq(other)
+ expect(actual.eql?(other)).to be_truthy
+ expect(actual.hash).to eq(other.hash)
+ end
+
+ def make_new(table: 'foo', from: '1', to: '10', partition_name: 'foo_1')
+ described_class.new(table, from, to, partition_name: partition_name)
+ end
+
+ it 'treats objects identical with identical attributes' do
+ expect_equality(make_new, make_new)
+ end
+
+ it 'different table leads to in-equality' do
+ expect_inequality(make_new, make_new(table: 'bar'))
+ end
+
+ it 'different from leads to in-equality' do
+ expect_inequality(make_new, make_new(from: '2'))
+ end
+
+ it 'different to leads to in-equality' do
+ expect_inequality(make_new, make_new(to: '11'))
+ end
+
+ it 'different partition_name leads to in-equality' do
+ expect_inequality(make_new, make_new(partition_name: 'different'))
+ end
+
+ it 'nil partition_name is ignored if auto-generated matches' do
+ expect_equality(make_new, make_new(partition_name: nil))
+ end
+ end
+
+ describe 'Comparable, #<=>' do
+ let(:table) { 'foo' }
+
+ it 'sorts by partition bounds' do
+ partitions = [
+ described_class.new(table, '100', '110', partition_name: 'p_100'),
+ described_class.new(table, '5', '10', partition_name: 'p_5'),
+ described_class.new(table, '10', '100', partition_name: 'p_10'),
+ described_class.new(table, '1', '5', partition_name: 'p_1')
+ ]
+
+ expect(partitions.sort).to eq(
+ [
+ described_class.new(table, '1', '5', partition_name: 'p_1'),
+ described_class.new(table, '5', '10', partition_name: 'p_5'),
+ described_class.new(table, '10', '100', partition_name: 'p_10'),
+ described_class.new(table, '100', '110', partition_name: 'p_100')
+ ])
+ end
+
+ it 'returns nil for partitions of different tables' do
+ one = described_class.new('foo', '1', '10')
+ two = described_class.new('bar', '1', '10')
+
+ expect(one.<=>(two)).to be_nil
+ end
+ end
+end
diff --git a/spec/lib/gitlab/database/partitioning/int_range_strategy_spec.rb b/spec/lib/gitlab/database/partitioning/int_range_strategy_spec.rb
new file mode 100644
index 00000000000..19937544393
--- /dev/null
+++ b/spec/lib/gitlab/database/partitioning/int_range_strategy_spec.rb
@@ -0,0 +1,317 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Database::Partitioning::IntRangeStrategy, feature_category: :database do
+ include Database::PartitioningHelpers
+
+ let(:connection) { ActiveRecord::Base.connection }
+ let(:model) do
+ Class.new(ActiveRecord::Base) do
+ self.table_name = '_test_partitioned_test'
+ end
+ end
+
+ after do
+ model.reset_column_information
+ end
+
+ describe '#current_partitions' do
+ subject(:current_partitions) { described_class.new(model, partitioning_key, partition_size: 10).current_partitions }
+
+ let(:partitioning_key) { double }
+ let(:table_name) { :_test_partitioned_test }
+
+ before do
+ connection.execute(<<~SQL)
+ CREATE TABLE #{table_name}
+ (id serial not null, external_id integer not null, PRIMARY KEY (id, external_id))
+ PARTITION BY RANGE (external_id);
+
+ CREATE TABLE #{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}._test_partitioned_test_1
+ PARTITION OF #{table_name}
+ FOR VALUES FROM ('1') TO ('5');
+
+ CREATE TABLE #{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}._test_partitioned_test_5
+ PARTITION OF #{table_name}
+ FOR VALUES FROM ('5') TO ('10');
+
+ CREATE TABLE #{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}._test_partitioned_test_10
+ PARTITION OF #{table_name}
+ FOR VALUES FROM ('10') TO ('100');
+
+ CREATE TABLE #{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}._test_partitioned_test_100
+ PARTITION OF #{table_name}
+ FOR VALUES FROM ('100') TO ('110');
+ SQL
+ end
+
+ it 'returns partitions order by range bound' do
+ expect(current_partitions).to eq(
+ [
+ Gitlab::Database::Partitioning::IntRangePartition.new(table_name, 1, 5,
+ partition_name: '_test_partitioned_test_1'),
+ Gitlab::Database::Partitioning::IntRangePartition.new(table_name, 5, 10,
+ partition_name: '_test_partitioned_test_5'),
+ Gitlab::Database::Partitioning::IntRangePartition.new(table_name, 10, 100,
+ partition_name: '_test_partitioned_test_10'),
+ Gitlab::Database::Partitioning::IntRangePartition.new(table_name, 100, 110,
+ partition_name: '_test_partitioned_test_100')
+ ])
+ end
+ end
+
+ describe '#extra_partitions' do
+ let(:partitioning_key) { double }
+ let(:table_name) { :_test_partitioned_test }
+
+ subject(:extra_partitions) { described_class.new(model, partitioning_key, partition_size: 10).extra_partitions }
+
+ it 'returns an empty array' do
+ expect(extra_partitions).to eq([])
+ end
+ end
+
+ describe '#missing_partitions' do
+ subject(:missing_partitions) { described_class.new(model, partitioning_key, partition_size: 10).missing_partitions }
+
+ let(:model) do
+ Class.new(ActiveRecord::Base) do
+ self.table_name = '_test_partitioned_test'
+ self.primary_key = :id
+ end
+ end
+
+ let(:partitioning_key) { :external_id }
+
+ before do
+ connection.execute(<<~SQL)
+ CREATE TABLE #{model.table_name}
+ (id serial not null, external_id integer not null, PRIMARY KEY (id, external_id))
+ PARTITION BY RANGE (external_id);
+ SQL
+ end
+
+ context 'when the current partitions are not completed' do
+ before do
+ connection.execute(<<~SQL)
+ CREATE TABLE #{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}._test_partitioned_test_11
+ PARTITION OF #{model.table_name}
+ FOR VALUES FROM ('11') TO ('21');
+ SQL
+ end
+
+ context 'when partitions have data' do
+ before do
+ model.create!(external_id: 15)
+ end
+
+ it 'returns missing partitions' do
+ expect(missing_partitions.size).to eq(7)
+
+ expect(missing_partitions).to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 1, 11),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 21, 31),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 31, 41),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 41, 51),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 51, 61),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 61, 71),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 71, 81)
+ )
+
+ expect(missing_partitions).not_to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 11, 21)
+ )
+ end
+ end
+
+ context 'when partitions are empty' do
+ before do
+ model.delete_all
+ end
+
+ it 'returns missing partitions' do
+ expect(missing_partitions.size).to eq(7)
+
+ expect(missing_partitions).to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 1, 11),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 21, 31),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 31, 41),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 41, 51),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 51, 61),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 61, 71),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 71, 81)
+ )
+
+ expect(missing_partitions).not_to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 11, 21)
+ )
+ end
+ end
+ end
+
+ context 'with existing partitions' do
+ before do
+ connection.execute(<<~SQL)
+ CREATE TABLE #{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}._test_partitioned_test_1
+ PARTITION OF #{model.table_name}
+ FOR VALUES FROM ('1') TO ('11');
+
+ CREATE TABLE #{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}._test_partitioned_test_11
+ PARTITION OF #{model.table_name}
+ FOR VALUES FROM ('11') TO ('21');
+ SQL
+ end
+
+ context 'when partitions have data' do
+ before do
+ model.create!(external_id: 1)
+ model.create!(external_id: 15)
+ end
+
+ it 'returns missing partitions' do
+ expect(missing_partitions.size).to eq(6)
+
+ expect(missing_partitions).to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 21, 31),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 31, 41),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 41, 51),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 51, 61),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 61, 71),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 71, 81)
+ )
+
+ expect(missing_partitions).not_to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 1, 11),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 11, 21)
+ )
+ end
+ end
+
+ context 'when partitions are empty' do
+ before do
+ model.delete_all
+ end
+
+ it 'returns missing partitions' do
+ expect(missing_partitions.size).to eq(6)
+
+ expect(missing_partitions).to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 21, 31),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 31, 41),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 41, 51),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 51, 61),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 61, 71),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 71, 81)
+ )
+
+ expect(missing_partitions).not_to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 1, 11),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 11, 21)
+ )
+ end
+ end
+ end
+
+ context 'without partitions' do
+ it 'returns missing partitions' do
+ expect(missing_partitions.size).to eq(6)
+
+ expect(missing_partitions).to include(
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 1, 11),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 11, 21),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 21, 31),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 31, 41),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 41, 51),
+ Gitlab::Database::Partitioning::IntRangePartition.new(model.table_name, 51, 61)
+ )
+ end
+ end
+ end
+
+ describe 'attributes' do
+ let(:partitioning_key) { :partition }
+ let(:table_name) { :_test_partitioned_test }
+ let(:partition_size) { 5 }
+
+ subject(:strategy) do
+ described_class.new(
+ model, partitioning_key,
+ partition_size: partition_size
+ )
+ end
+
+ specify do
+ expect(strategy).to have_attributes({
+ model: model,
+ partitioning_key: partitioning_key,
+ partition_size: partition_size
+ })
+ end
+ end
+
+ describe 'simulates the merge_request_diff_commits partition creation' do
+ let(:table_name) { '_test_partitioned_test' }
+ let(:model) do
+ Class.new(ApplicationRecord) do
+ include PartitionedTable
+
+ self.table_name = '_test_partitioned_test'
+ self.primary_key = :merge_request_diff_id
+
+ partitioned_by :merge_request_diff_id, strategy: :int_range, partition_size: 2
+ end
+ end
+
+ before do
+ connection.execute(<<~SQL)
+ create table #{table_name}
+ (
+ merge_request_diff_id int not null,
+ relative_order int not null,
+ created_at timestamptz,
+ primary key (merge_request_diff_id, relative_order)
+ )
+ PARTITION BY RANGE (merge_request_diff_id);
+
+ create table gitlab_partitions_dynamic.#{table_name}_1
+ PARTITION of #{table_name} FOR VALUES FROM (1) TO (3);
+
+ create table gitlab_partitions_dynamic.#{table_name}_3
+ PARTITION of #{table_name} FOR VALUES FROM (3) TO (5);
+ SQL
+ end
+
+ it 'redirects to the new partition', :aggregate_failures do
+ expect_range_partitions_for(table_name, {
+ '1' => %w[1 3],
+ '3' => %w[3 5]
+ })
+
+ expect do
+ model.create!(merge_request_diff_id: 1, relative_order: 1, created_at: Time.zone.now) # Goes in partition 1
+ end.to change { model.count }.by(1)
+
+ expect do
+ model.create!(merge_request_diff_id: 5, relative_order: 1, created_at: Time.zone.now)
+ end.to raise_error(ActiveRecord::StatementInvalid, /no partition of relation/)
+
+ Gitlab::Database::Partitioning::PartitionManager.new(model).sync_partitions # Generates more 6 partitions
+
+ expect_range_partitions_for(table_name, {
+ '1' => %w[1 3],
+ '3' => %w[3 5],
+ '5' => %w[5 7],
+ '7' => %w[7 9],
+ '9' => %w[9 11],
+ '11' => %w[11 13],
+ '13' => %w[13 15],
+ '15' => %w[15 17]
+ })
+
+ expect do
+ model.create!(merge_request_diff_id: 5, relative_order: 1, created_at: Time.zone.now) # Goes in partition 5
+ end.to change { model.count }.by(1)
+ end
+ end
+end
diff --git a/spec/lib/gitlab/database/partitioning/list/convert_table_spec.rb b/spec/lib/gitlab/database/partitioning/list/convert_table_spec.rb
index b30501cce21..e0b090f7ff9 100644
--- a/spec/lib/gitlab/database/partitioning/list/convert_table_spec.rb
+++ b/spec/lib/gitlab/database/partitioning/list/convert_table_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe Gitlab::Database::Partitioning::List::ConvertTable, feature_categ
table_name: table_name,
partitioning_column: partitioning_column,
parent_table_name: parent_table_name,
- zero_partition_value: partitioning_default
+ zero_partition_value: zero_partition_value
)
end
@@ -24,107 +24,121 @@ RSpec.describe Gitlab::Database::Partitioning::List::ConvertTable, feature_categ
let(:async) { false }
- it 'adds a check constraint' do
- expect { prepare }.to change {
- Gitlab::Database::PostgresConstraint
- .check_constraints
- .by_table_identifier(table_identifier)
- .count
- }.from(0).to(1)
- end
-
- context 'when it fails to add constraint' do
- before do
- allow(migration_context).to receive(:add_check_constraint)
- end
-
- it 'raises UnableToPartition error' do
- expect { prepare }
- .to raise_error(described_class::UnableToPartition)
- .and change {
- Gitlab::Database::PostgresConstraint
- .check_constraints
- .by_table_identifier(table_identifier)
- .count
- }.by(0)
- end
- end
-
- context 'when async' do
- let(:async) { true }
-
- it 'adds a NOT VALID check constraint' do
+ shared_examples 'runs #prepare_for_partitioning' do
+ it 'adds a check constraint' do
expect { prepare }.to change {
Gitlab::Database::PostgresConstraint
.check_constraints
.by_table_identifier(table_identifier)
.count
}.from(0).to(1)
+ end
- constraint =
- Gitlab::Database::PostgresConstraint
- .check_constraints
- .by_table_identifier(table_identifier)
- .last
+ context 'when it fails to add constraint' do
+ before do
+ allow(migration_context).to receive(:add_check_constraint)
+ end
- expect(constraint.definition).to end_with('NOT VALID')
+ it 'raises UnableToPartition error' do
+ expect { prepare }
+ .to raise_error(described_class::UnableToPartition)
+ .and change {
+ Gitlab::Database::PostgresConstraint
+ .check_constraints
+ .by_table_identifier(table_identifier)
+ .count
+ }.by(0)
+ end
end
- it 'adds a PostgresAsyncConstraintValidation record' do
- expect { prepare }.to change {
- Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation.count
- }.by(1)
+ context 'when async' do
+ let(:async) { true }
- record = Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation
- .where(table_name: table_name).last
+ it 'adds a NOT VALID check constraint' do
+ expect { prepare }.to change {
+ Gitlab::Database::PostgresConstraint
+ .check_constraints
+ .by_table_identifier(table_identifier)
+ .count
+ }.from(0).to(1)
- expect(record.name).to eq described_class::PARTITIONING_CONSTRAINT_NAME
- expect(record).to be_check_constraint
- end
+ constraint =
+ Gitlab::Database::PostgresConstraint
+ .check_constraints
+ .by_table_identifier(table_identifier)
+ .last
- context 'when constraint exists but is not valid' do
- before do
- converter.prepare_for_partitioning(async: true)
+ expect(constraint.definition).to end_with('NOT VALID')
end
- it 'validates the check constraint' do
+ it 'adds a PostgresAsyncConstraintValidation record' do
expect { prepare }.to change {
- Gitlab::Database::PostgresConstraint
- .check_constraints
- .by_table_identifier(table_identifier).first.constraint_valid?
- }.from(false).to(true)
+ Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation.count
+ }.by(1)
+
+ record = Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation
+ .where(table_name: table_name).last
+
+ expect(record.name).to eq described_class::PARTITIONING_CONSTRAINT_NAME
+ expect(record).to be_check_constraint
end
- context 'when it fails to validate constraint' do
+ context 'when constraint exists but is not valid' do
before do
- allow(migration_context).to receive(:validate_check_constraint)
+ converter.prepare_for_partitioning(async: true)
end
- it 'raises UnableToPartition error' do
- expect { prepare }
- .to raise_error(described_class::UnableToPartition,
- starting_with('Error validating partitioning constraint'))
- .and change {
- Gitlab::Database::PostgresConstraint
- .check_constraints
- .by_table_identifier(table_identifier)
- .count
- }.by(0)
+ it 'validates the check constraint' do
+ expect { prepare }.to change {
+ Gitlab::Database::PostgresConstraint
+ .check_constraints
+ .by_table_identifier(table_identifier).first.constraint_valid?
+ }.from(false).to(true)
end
- end
- end
- context 'when constraint exists and is valid' do
- before do
- converter.prepare_for_partitioning(async: false)
+ context 'when it fails to validate constraint' do
+ before do
+ allow(migration_context).to receive(:validate_check_constraint)
+ end
+
+ it 'raises UnableToPartition error' do
+ expect { prepare }
+ .to raise_error(described_class::UnableToPartition,
+ starting_with('Error validating partitioning constraint'))
+ .and change {
+ Gitlab::Database::PostgresConstraint
+ .check_constraints
+ .by_table_identifier(table_identifier)
+ .count
+ }.by(0)
+ end
+ end
end
- it 'raises UnableToPartition error' do
- expect(Gitlab::AppLogger).to receive(:info).with(starting_with('Nothing to do'))
- prepare
+ context 'when constraint exists and is valid' do
+ before do
+ converter.prepare_for_partitioning(async: false)
+ end
+
+ it 'raises UnableToPartition error' do
+ expect(Gitlab::AppLogger).to receive(:info).with(starting_with('Nothing to do'))
+ prepare
+ end
end
end
end
+
+ context 'when a single partitioning value is given' do
+ let(:zero_partition_value) { single_partitioning_value }
+
+ include_examples 'runs #prepare_for_partitioning'
+ end
+
+ context 'when multiple partitioning values are given' do
+ let(:zero_partition_value) { multiple_partitioning_values }
+
+ include_examples 'runs #prepare_for_partitioning'
+ end
end
describe '#revert_preparation_for_partitioning' do
@@ -132,15 +146,29 @@ RSpec.describe Gitlab::Database::Partitioning::List::ConvertTable, feature_categ
converter.prepare_for_partitioning
end
+ shared_examples 'runs #revert_preparation_for_partitioning' do
+ it 'removes a check constraint' do
+ expect { revert_prepare }.to change {
+ Gitlab::Database::PostgresConstraint
+ .check_constraints
+ .by_table_identifier("#{connection.current_schema}.#{table_name}")
+ .count
+ }.from(1).to(0)
+ end
+ end
+
subject(:revert_prepare) { converter.revert_preparation_for_partitioning }
- it 'removes a check constraint' do
- expect { revert_prepare }.to change {
- Gitlab::Database::PostgresConstraint
- .check_constraints
- .by_table_identifier("#{connection.current_schema}.#{table_name}")
- .count
- }.from(1).to(0)
+ context 'when a single partitioning value is given' do
+ let(:zero_partition_value) { single_partitioning_value }
+
+ include_examples 'runs #revert_preparation_for_partitioning'
+ end
+
+ context 'when multiple partitioning values are given' do
+ let(:zero_partition_value) { multiple_partitioning_values }
+
+ include_examples 'runs #revert_preparation_for_partitioning'
end
end
@@ -153,128 +181,146 @@ RSpec.describe Gitlab::Database::Partitioning::List::ConvertTable, feature_categ
converter.prepare_for_partitioning(async: async)
end
- context 'when the primary key is incorrect' do
- before do
- connection.execute(<<~SQL)
- alter table #{referencing_table_name} drop constraint fk_referencing; -- this depends on the primary key
- alter table #{other_referencing_table_name} drop constraint fk_referencing_other; -- this does too
- alter table #{table_name} drop constraint #{table_name}_pkey;
- alter table #{table_name} add constraint #{table_name}_pkey PRIMARY KEY (id);
- SQL
- end
+ shared_examples 'runs partition method' do
+ context 'when the primary key is incorrect' do
+ before do
+ connection.execute(<<~SQL)
+ alter table #{referencing_table_name} drop constraint fk_referencing; -- this depends on the primary key
+ alter table #{other_referencing_table_name} drop constraint fk_referencing_other; -- this does too
+ alter table #{table_name} drop constraint #{table_name}_pkey;
+ alter table #{table_name} add constraint #{table_name}_pkey PRIMARY KEY (id);
+ SQL
+ end
- it 'throws a reasonable error message' do
- expect { partition }.to raise_error(described_class::UnableToPartition, /#{partitioning_column}/)
+ it 'throws a reasonable error message' do
+ expect { partition }.to raise_error(described_class::UnableToPartition, /#{partitioning_column}/)
+ end
end
- end
- context 'when there is not a supporting check constraint' do
- before do
- connection.execute(<<~SQL)
- alter table #{table_name} drop constraint partitioning_constraint;
- SQL
- end
+ context 'when there is not a supporting check constraint' do
+ before do
+ connection.execute(<<~SQL)
+ alter table #{table_name} drop constraint partitioning_constraint;
+ SQL
+ end
- it 'throws a reasonable error message' do
- expect { partition }.to raise_error(described_class::UnableToPartition, /is not ready for partitioning./)
+ it 'throws a reasonable error message' do
+ expect { partition }.to raise_error(described_class::UnableToPartition, /is not ready for partitioning./)
+ end
end
- end
- context 'when supporting check constraint is not valid' do
- let(:async) { true }
+ context 'when supporting check constraint is not valid' do
+ let(:async) { true }
- it 'throws a reasonable error message' do
- expect { partition }.to raise_error(described_class::UnableToPartition, /is not ready for partitioning./)
+ it 'throws a reasonable error message' do
+ expect { partition }.to raise_error(described_class::UnableToPartition, /is not ready for partitioning./)
+ end
end
- end
-
- it 'migrates the table to a partitioned table' do
- fks_before = migration_context.foreign_keys(table_name)
-
- partition
- expect(Gitlab::Database::PostgresPartition.for_parent_table(parent_table_name).count).to eq(1)
- expect(migration_context.foreign_keys(parent_table_name).map(&:options)).to match_array(fks_before.map(&:options))
+ it 'migrates the table to a partitioned table' do
+ fks_before = migration_context.foreign_keys(table_name)
- connection.execute(<<~SQL)
- insert into #{table_name} (referenced_id, other_referenced_id) select #{referenced_table_name}.id, #{other_referenced_table_name}.id from #{referenced_table_name}, #{other_referenced_table_name};
- SQL
+ partition
- # Create a second partition
- connection.execute(<<~SQL)
- create table #{table_name}2 partition of #{parent_table_name} FOR VALUES IN (2)
- SQL
+ expect(Gitlab::Database::PostgresPartition.for_parent_table(parent_table_name).count).to eq(1)
+ expect(migration_context.foreign_keys(parent_table_name)
+ .map(&:options)).to match_array(fks_before.map(&:options))
- parent_model.create!(partitioning_column => 2, :referenced_id => 1, :other_referenced_id => 1)
- expect(parent_model.pluck(:id)).to match_array([1, 2, 3])
-
- expect { referencing_model.create!(partitioning_column => 1, :ref_id => 1) }.not_to raise_error
- end
+ connection.execute(<<~SQL)
+ insert into #{table_name} (referenced_id, other_referenced_id) select #{referenced_table_name}.id, #{other_referenced_table_name}.id from #{referenced_table_name}, #{other_referenced_table_name};
+ SQL
- context 'when the existing table is owned by a different user' do
- before do
+ # Create a second partition
connection.execute(<<~SQL)
- CREATE USER other_user SUPERUSER;
- ALTER TABLE #{table_name} OWNER TO other_user;
+ create table #{table_name}2 partition of #{parent_table_name} FOR VALUES IN (2)
SQL
- end
- let(:current_user) { model.connection.select_value('select current_user') }
+ parent_model.create!(partitioning_column => 2, :referenced_id => 1, :other_referenced_id => 1)
+ expect(parent_model.pluck(:id)).to match_array([1, 2, 3])
- it 'partitions without error' do
- expect { partition }.not_to raise_error
+ expect { referencing_model.create!(partitioning_column => 1, :ref_id => 1) }.not_to raise_error
end
- end
- context 'when an error occurs during the conversion' do
- before do
- # Set up the fault that we'd like to inject
- fault.call
- end
+ context 'when the existing table is owned by a different user' do
+ before do
+ connection.execute(<<~SQL)
+ CREATE USER other_user SUPERUSER;
+ ALTER TABLE #{table_name} OWNER TO other_user;
+ SQL
+ end
- let(:old_fks) do
- Gitlab::Database::PostgresForeignKey.by_referenced_table_identifier(table_identifier).not_inherited
- end
+ let(:current_user) { model.connection.select_value('select current_user') }
- let(:new_fks) do
- Gitlab::Database::PostgresForeignKey.by_referenced_table_identifier(parent_table_identifier).not_inherited
+ it 'partitions without error' do
+ expect { partition }.not_to raise_error
+ end
end
- context 'when partitioning fails the first time' do
- where(:case_name, :fault) do
- [
- ["creating parent table", lazy { fail_sql_matching(/CREATE/i) }],
- ["adding the first foreign key", lazy { fail_adding_fk(parent_table_name, referenced_table_name) }],
- ["adding the second foreign key", lazy { fail_adding_fk(parent_table_name, other_referenced_table_name) }],
- ["attaching table", lazy { fail_sql_matching(/ATTACH/i) }]
- ]
+ context 'when an error occurs during the conversion' do
+ before do
+ # Set up the fault that we'd like to inject
+ fault.call
end
- with_them do
- it 'recovers from a fault', :aggregate_failures do
- expect { converter.partition }.to raise_error(/fault/)
+ let(:old_fks) do
+ Gitlab::Database::PostgresForeignKey.by_referenced_table_identifier(table_identifier).not_inherited
+ end
- expect { converter.partition }.not_to raise_error
- expect(Gitlab::Database::PostgresPartition.for_parent_table(parent_table_name).count).to eq(1)
+ let(:new_fks) do
+ Gitlab::Database::PostgresForeignKey.by_referenced_table_identifier(parent_table_identifier).not_inherited
+ end
+
+ context 'when partitioning fails the first time' do
+ where(:case_name, :fault) do
+ [
+ ["creating parent table", lazy { fail_sql_matching(/CREATE/i) }],
+ ["adding the first foreign key", lazy { fail_adding_fk(parent_table_name, referenced_table_name) }],
+ ["adding the second foreign key", lazy do
+ fail_adding_fk(parent_table_name, other_referenced_table_name)
+ end],
+ ["attaching table", lazy { fail_sql_matching(/ATTACH/i) }]
+ ]
+ end
+
+ with_them do
+ it 'recovers from a fault', :aggregate_failures do
+ expect { converter.partition }.to raise_error(/fault/)
+
+ expect { converter.partition }.not_to raise_error
+ expect(Gitlab::Database::PostgresPartition.for_parent_table(parent_table_name).count).to eq(1)
+ end
end
end
end
- end
- context 'when table has LFK triggers' do
- before do
- migration_context.track_record_deletions(table_name)
- end
+ context 'when table has LFK triggers' do
+ before do
+ migration_context.track_record_deletions(table_name)
+ end
- it 'moves the trigger on the parent table', :aggregate_failures do
- expect(migration_context.has_loose_foreign_key?(table_name)).to be_truthy
+ it 'moves the trigger on the parent table', :aggregate_failures do
+ expect(migration_context.has_loose_foreign_key?(table_name)).to be_truthy
- expect { partition }.not_to raise_error
+ expect { partition }.not_to raise_error
- expect(migration_context.has_loose_foreign_key?(table_name)).to be_truthy
- expect(migration_context.has_loose_foreign_key?(parent_table_name)).to be_truthy
+ expect(migration_context.has_loose_foreign_key?(table_name)).to be_truthy
+ expect(migration_context.has_loose_foreign_key?(parent_table_name)).to be_truthy
+ end
end
end
+
+ context 'when a single partitioning value is given' do
+ let(:zero_partition_value) { single_partitioning_value }
+
+ include_examples 'runs partition method'
+ end
+
+ context 'when multiple partitioning values are given' do
+ # Because of the common spec on line 220
+ let(:zero_partition_value) { [1, 3, 4] }
+
+ include_examples 'runs partition method'
+ end
end
describe '#revert_partitioning' do
@@ -285,49 +331,67 @@ RSpec.describe Gitlab::Database::Partitioning::List::ConvertTable, feature_categ
subject(:revert_conversion) { converter.revert_partitioning }
- it 'detaches the partition' do
- expect { revert_conversion }.to change {
- Gitlab::Database::PostgresPartition
- .for_parent_table(parent_table_name).count
- }.from(1).to(0)
- end
-
- it 'does not drop the child partition' do
- expect { revert_conversion }.not_to change { table_oid(table_name) }
- end
+ shared_examples 'runs #revert_partitioning' do
+ it 'detaches the partition' do
+ expect { revert_conversion }.to change {
+ Gitlab::Database::PostgresPartition
+ .for_parent_table(parent_table_name).count
+ }.from(1).to(0)
+ end
- it 'removes the parent table' do
- expect { revert_conversion }.to change { table_oid(parent_table_name).present? }.from(true).to(false)
- end
+ it 'does not drop the child partition' do
+ expect { revert_conversion }.not_to change { table_oid(table_name) }
+ end
- it 're-adds the check constraint' do
- expect { revert_conversion }.to change {
- Gitlab::Database::PostgresConstraint
- .check_constraints
- .by_table_identifier(table_identifier)
- .count
- }.by(1)
- end
+ it 'removes the parent table' do
+ expect { revert_conversion }.to change { table_oid(parent_table_name).present? }.from(true).to(false)
+ end
- it 'moves sequences back to the original table' do
- expect { revert_conversion }.to change { converter.send(:sequences_owned_by, table_name).count }.from(0)
- .and change { converter.send(:sequences_owned_by, parent_table_name).count }.to(0)
- end
+ it 're-adds the check constraint' do
+ expect { revert_conversion }.to change {
+ Gitlab::Database::PostgresConstraint
+ .check_constraints
+ .by_table_identifier(table_identifier)
+ .count
+ }.by(1)
+ end
- context 'when table has LFK triggers' do
- before do
- migration_context.track_record_deletions(parent_table_name)
- migration_context.track_record_deletions(table_name)
+ it 'moves sequences back to the original table' do
+ expect { revert_conversion }.to change { converter.send(:sequences_owned_by, table_name).count }
+ .from(0)
+ .and change {
+ converter.send(
+ :sequences_owned_by, parent_table_name).count
+ }.to(0)
end
- it 'restores the trigger on the partition', :aggregate_failures do
- expect(migration_context.has_loose_foreign_key?(table_name)).to be_truthy
- expect(migration_context.has_loose_foreign_key?(parent_table_name)).to be_truthy
+ context 'when table has LFK triggers' do
+ before do
+ migration_context.track_record_deletions(parent_table_name)
+ migration_context.track_record_deletions(table_name)
+ end
+
+ it 'restores the trigger on the partition', :aggregate_failures do
+ expect(migration_context.has_loose_foreign_key?(table_name)).to be_truthy
+ expect(migration_context.has_loose_foreign_key?(parent_table_name)).to be_truthy
- expect { revert_conversion }.not_to raise_error
+ expect { revert_conversion }.not_to raise_error
- expect(migration_context.has_loose_foreign_key?(table_name)).to be_truthy
+ expect(migration_context.has_loose_foreign_key?(table_name)).to be_truthy
+ end
end
end
+
+ context 'when a single partitioning value is given' do
+ let(:zero_partition_value) { single_partitioning_value }
+
+ include_examples 'runs #revert_partitioning'
+ end
+
+ context 'when multiple partitioning values are given' do
+ let(:zero_partition_value) { multiple_partitioning_values }
+
+ include_examples 'runs #revert_partitioning'
+ end
end
end
diff --git a/spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb b/spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb
index 9ca0a1b6e57..f4a4b0f002c 100644
--- a/spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb
+++ b/spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb
@@ -14,6 +14,10 @@ RSpec.describe Gitlab::Database::Partitioning::SlidingListStrategy, feature_cate
let(:next_partition_if) { double('next_partition_if') }
let(:detach_partition_if) { double('detach_partition_if') }
+ after do
+ model.reset_column_information
+ end
+
subject(:strategy) do
described_class.new(
model,
diff --git a/spec/lib/gitlab/database/partitioning_migration_helpers/uniqueness_helpers_spec.rb b/spec/lib/gitlab/database/partitioning_migration_helpers/uniqueness_helpers_spec.rb
new file mode 100644
index 00000000000..230847f6902
--- /dev/null
+++ b/spec/lib/gitlab/database/partitioning_migration_helpers/uniqueness_helpers_spec.rb
@@ -0,0 +1,71 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Database::PartitioningMigrationHelpers::UniquenessHelpers, feature_category: :database do
+ let(:migration) do
+ ActiveRecord::Migration.new.extend(described_class)
+ end
+
+ let(:connection) { ActiveRecord::Base.connection }
+ let(:table_not_partitioned) { '_test_not_partitioned_table' }
+ let(:table_partitioned) { '_test_partitioned_table' }
+
+ before do
+ connection.execute(<<~SQL)
+ CREATE TABLE _test_partitioned_table
+ (
+ id serial NOT NULL,
+ PARTITION bigint NULL DEFAULT 1,
+ PRIMARY KEY (id, partition)
+ ) PARTITION BY list(partition);
+
+ CREATE TABLE _test_partitioned_table_1
+ PARTITION OF _test_partitioned_table FOR VALUES IN (1);
+ SQL
+ end
+
+ describe '#ensure_unique_id' do
+ subject(:ensure_unique_id) { migration.ensure_unique_id(table_name) }
+
+ context 'when table is partitioned' do
+ let(:table_name) { table_partitioned }
+ let(:trigger_name) { "assign_#{table_name}_id_trigger" }
+ let(:function_name) { "assign_#{table_name}_id_value" }
+
+ context 'when trigger already exists' do
+ before do
+ allow(migration).to receive(:trigger_exists?)
+ .with(table_name, trigger_name)
+ .and_return(true)
+ end
+
+ it 'does not modify existing trigger' do
+ expect(migration).not_to receive(:change_column_default)
+ expect(migration).not_to receive(:create_trigger_function)
+ expect(migration).not_to receive(:create_trigger)
+
+ expect do
+ ensure_unique_id
+ end.not_to raise_error
+ end
+ end
+
+ context 'when trigger is not defined' do
+ it 'creates trigger', :aggregate_failures do
+ expect(migration).to receive(:change_column_default).with(table_name, :id, nil).and_call_original
+ expect(migration).to receive(:create_trigger_function).with(function_name).and_call_original
+ expect(migration).to receive(:create_trigger)
+ .with(table_name, trigger_name, function_name, fires: 'BEFORE INSERT')
+ .and_call_original
+
+ expect do
+ ensure_unique_id
+ end.not_to raise_error
+
+ expect(migration.trigger_exists?(table_name, trigger_name)).to eq(true)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb b/spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb
index 3ccdb907cba..d5584342dd5 100644
--- a/spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb
+++ b/spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb
@@ -239,7 +239,7 @@ RSpec.describe Gitlab::Database::QueryAnalyzers::PreventCrossDatabaseModificatio
end
end
- context 'when uniquiness validation is tested', type: :model do
+ context 'when uniqueness validation is tested', type: :model do
subject { build(:ci_variable) }
it 'does not raise exceptions' do
diff --git a/spec/lib/gitlab/database/sharding_key_spec.rb b/spec/lib/gitlab/database/sharding_key_spec.rb
index b47f5ea5df0..67c1422af3c 100644
--- a/spec/lib/gitlab/database/sharding_key_spec.rb
+++ b/spec/lib/gitlab/database/sharding_key_spec.rb
@@ -21,6 +21,17 @@ RSpec.describe 'new tables missing sharding_key', feature_category: :cell do
]
end
+ # Some reasons to exempt a table:
+ # 1. It has no foreign key for performance reasons
+ # 2. It does not yet have a foreign key as the index is still being backfilled
+ let(:allowed_to_be_missing_foreign_key) do
+ [
+ 'p_catalog_resource_sync_events.project_id',
+ 'zoekt_indices.namespace_id',
+ 'namespace_descendants.namespace_id'
+ ]
+ end
+
let(:starting_from_milestone) { 16.6 }
let(:allowed_sharding_key_referenced_tables) { %w[projects namespaces organizations] }
@@ -38,6 +49,19 @@ RSpec.describe 'new tables missing sharding_key', feature_category: :cell do
expect(column_exists?(table_name, column_name)).to eq(true),
"Could not find sharding key column #{table_name}.#{column_name}"
expect(referenced_table_name).to be_in(allowed_sharding_key_referenced_tables)
+
+ if allowed_to_be_missing_foreign_key.include?("#{table_name}.#{column_name}")
+ expect(has_foreign_key?(table_name, column_name)).to eq(false),
+ "The column `#{table_name}.#{column_name}` has a foreign key so cannot be " \
+ "allowed_to_be_missing_foreign_key. " \
+ "If this is a foreign key referencing the specified table #{referenced_table_name} " \
+ "then you must remove it from allowed_to_be_missing_foreign_key"
+ else
+ expect(has_foreign_key?(table_name, column_name, to_table_name: referenced_table_name)).to eq(true),
+ "Missing a foreign key constraint for `#{table_name}.#{column_name}` " \
+ "referencing #{referenced_table_name}. " \
+ "All sharding keys must have a foreign key constraint"
+ end
end
end
end
@@ -137,6 +161,25 @@ RSpec.describe 'new tables missing sharding_key', feature_category: :cell do
result.count > 0
end
+ def has_foreign_key?(from_table_name, column_name, to_table_name: nil)
+ where_clause = {
+ constrained_table_name: from_table_name,
+ constrained_columns: [column_name]
+ }
+
+ where_clause[:referenced_table_name] = to_table_name if to_table_name
+
+ fk = ::Gitlab::Database::PostgresForeignKey.where(where_clause).first
+
+ lfk = ::Gitlab::Database::LooseForeignKeys.definitions.find do |d|
+ d.from_table == from_table_name &&
+ (to_table_name.nil? || d.to_table == to_table_name) &&
+ d.options[:column] == column_name
+ end
+
+ fk.present? || lfk.present?
+ end
+
def column_exists?(table_name, column_name)
sql = <<~SQL
SELECT 1
diff --git a/spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb b/spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb
index 127f437dd54..e3cddceb7a9 100644
--- a/spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb
+++ b/spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb
@@ -100,5 +100,21 @@ RSpec.describe Gitlab::DependencyLinker::PackageJsonLinker do
it 'does not link scripts with the same key as a package' do
expect(subject).not_to include(link('karma start config/karma.config.js --single-run', 'https://github.com/karma start config/karma.config.js --single-run'))
end
+
+ context 'when dependency is not a string' do
+ let(:file_content) do
+ <<-CONTENT.strip_heredoc
+ {
+ "dependencies": {
+ "wrong": {}
+ }
+ }
+ CONTENT
+ end
+
+ it 'does not link it' do
+ expect(subject).not_to include(%(<a href))
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/dependency_linker_spec.rb b/spec/lib/gitlab/dependency_linker_spec.rb
index 8feab0f8017..4da0b9d8c0d 100644
--- a/spec/lib/gitlab/dependency_linker_spec.rb
+++ b/spec/lib/gitlab/dependency_linker_spec.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'fast_spec_helper'
+require 'spec_helper'
RSpec.describe Gitlab::DependencyLinker do
describe '.link' do
@@ -107,5 +107,16 @@ RSpec.describe Gitlab::DependencyLinker do
described_class.link(blob_name, nil, nil)
end
+
+ it 'increments usage counter based on specified used_on', :prometheus do
+ allow(described_class::GemfileLinker).to receive(:link)
+
+ described_class.link('Gemfile', nil, nil, used_on: :diff)
+
+ dependency_linker_usage_counter = Gitlab::Metrics.registry.get(:dependency_linker_usage)
+
+ expect(dependency_linker_usage_counter.get(used_on: :diff)).to eq(1)
+ expect(dependency_linker_usage_counter.get(used_on: :blob)).to eq(0)
+ end
end
end
diff --git a/spec/lib/gitlab/diff/file_collection/paginated_merge_request_diff_spec.rb b/spec/lib/gitlab/diff/file_collection/paginated_merge_request_diff_spec.rb
index 891336658ce..6c9a5341695 100644
--- a/spec/lib/gitlab/diff/file_collection/paginated_merge_request_diff_spec.rb
+++ b/spec/lib/gitlab/diff/file_collection/paginated_merge_request_diff_spec.rb
@@ -9,9 +9,10 @@ RSpec.describe Gitlab::Diff::FileCollection::PaginatedMergeRequestDiff, feature_
let(:diffable) { merge_request.merge_request_diff }
let(:diff_files_relation) { diffable.merge_request_diff_files }
let(:diff_files) { subject.diff_files }
+ let(:diff_options) { {} }
subject do
- described_class.new(diffable, page, per_page)
+ described_class.new(diffable, page, per_page, diff_options)
end
describe '#diff_files' do
@@ -77,18 +78,32 @@ RSpec.describe Gitlab::Diff::FileCollection::PaginatedMergeRequestDiff, feature_
context 'when last page' do
it 'returns correct diff files' do
last_page = diff_files_relation.count - per_page
- collection = described_class.new(diffable, last_page, per_page)
+ collection = described_class.new(diffable, last_page, per_page, diff_options)
expected_batch_files = diff_files_relation.page(last_page).per(per_page).map(&:new_path)
expect(collection.diff_files.map(&:new_path)).to eq(expected_batch_files)
end
end
+
+ context 'when collapse_generated is given' do
+ let(:diff_options) { { collapse_generated: true } }
+
+ it 'returns generated value' do
+ expect(diff_files.first.generated?).not_to be_nil
+ end
+ end
+
+ context 'when collapse_generated is not given' do
+ it 'returns nil' do
+ expect(diff_files.first.generated?).to be_nil
+ end
+ end
end
it_behaves_like 'unfoldable diff' do
subject do
- described_class.new(merge_request.merge_request_diff, page, per_page)
+ described_class.new(merge_request.merge_request_diff, page, per_page, diff_options)
end
end
@@ -100,7 +115,7 @@ RSpec.describe Gitlab::Diff::FileCollection::PaginatedMergeRequestDiff, feature_
let(:diffable) { merge_request.merge_request_diff }
subject do
- described_class.new(merge_request.merge_request_diff, page, per_page)
+ described_class.new(merge_request.merge_request_diff, page, per_page, diff_options)
end
end
end
diff --git a/spec/lib/gitlab/diff/file_spec.rb b/spec/lib/gitlab/diff/file_spec.rb
index 2cd27472440..9e5d3ab0a20 100644
--- a/spec/lib/gitlab/diff/file_spec.rb
+++ b/spec/lib/gitlab/diff/file_spec.rb
@@ -820,7 +820,7 @@ RSpec.describe Gitlab::Diff::File do
end
context 'when neither blob exists' do
- let(:blank_diff_refs) { Gitlab::Diff::DiffRefs.new(base_sha: Gitlab::Git::BLANK_SHA, head_sha: Gitlab::Git::BLANK_SHA) }
+ let(:blank_diff_refs) { Gitlab::Diff::DiffRefs.new(base_sha: Gitlab::Git::SHA1_BLANK_SHA, head_sha: Gitlab::Git::SHA1_BLANK_SHA) }
let(:diff_file) { described_class.new(diff, diff_refs: blank_diff_refs, repository: project.repository) }
describe '#blob' do
diff --git a/spec/lib/gitlab/diff/highlight_spec.rb b/spec/lib/gitlab/diff/highlight_spec.rb
index e65f5a618a5..e9e65f64887 100644
--- a/spec/lib/gitlab/diff/highlight_spec.rb
+++ b/spec/lib/gitlab/diff/highlight_spec.rb
@@ -25,119 +25,131 @@ RSpec.describe Gitlab::Diff::Highlight, feature_category: :source_code_managemen
end
describe '#highlight' do
- context "with a diff file" do
- let(:subject) { described_class.new(diff_file, repository: project.repository).highlight }
+ shared_examples_for 'diff highlighter' do
+ context "with a diff file" do
+ let(:subject) { described_class.new(diff_file, repository: project.repository).highlight }
- it 'returns Gitlab::Diff::Line elements' do
- expect(subject.first).to be_an_instance_of(Gitlab::Diff::Line)
- end
+ it 'returns Gitlab::Diff::Line elements' do
+ expect(subject.first).to be_an_instance_of(Gitlab::Diff::Line)
+ end
- it 'does not modify "match" lines' do
- expect(subject[0].text).to eq('@@ -6,12 +6,18 @@ module Popen')
- expect(subject[22].text).to eq('@@ -19,6 +25,7 @@ module Popen')
- end
+ it 'does not modify "match" lines' do
+ expect(subject[0].text).to eq('@@ -6,12 +6,18 @@ module Popen')
+ expect(subject[22].text).to eq('@@ -19,6 +25,7 @@ module Popen')
+ end
- it 'highlights and marks unchanged lines' do
- code = %{ <span id="LC7" class="line" lang="ruby"> <span class="k">def</span> <span class="nf">popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="kp">nil</span><span class="p">)</span></span>\n}
+ it 'highlights and marks unchanged lines' do
+ code = %{ <span id="LC7" class="line" lang="ruby"> <span class="k">def</span> <span class="nf">popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="kp">nil</span><span class="p">)</span></span>\n}
- expect(subject[2].rich_text).to eq(code)
- end
+ expect(subject[2].rich_text).to eq(code)
+ end
- it 'highlights and marks removed lines' do
- code = %(-<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="s2">"System commands must be given as an array of strings"</span></span>\n)
+ it 'highlights and marks removed lines' do
+ code = %(-<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="s2">"System commands must be given as an array of strings"</span></span>\n)
- expect(subject[4].rich_text).to eq(code)
- end
+ expect(subject[4].rich_text).to eq(code)
+ end
- it 'highlights and marks added lines' do
- code = %(+<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="no"><span class="idiff left addition">RuntimeError</span></span><span class="p"><span class="idiff addition">,</span></span><span class="idiff right addition"> </span><span class="s2">"System commands must be given as an array of strings"</span></span>\n)
+ it 'highlights and marks added lines' do
+ code = %(+<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="no"><span class="idiff left addition">RuntimeError</span></span><span class="p"><span class="idiff addition">,</span></span><span class="idiff right addition"> </span><span class="s2">"System commands must be given as an array of strings"</span></span>\n)
+
+ expect(subject[5].rich_text).to eq(code)
+ end
- expect(subject[5].rich_text).to eq(code)
+ context 'when no diff_refs' do
+ before do
+ allow(diff_file).to receive(:diff_refs).and_return(nil)
+ end
+
+ context 'when no inline diffs' do
+ it_behaves_like 'without inline diffs'
+ end
+ end
end
- context 'when no diff_refs' do
- before do
- allow(diff_file).to receive(:diff_refs).and_return(nil)
+ context "with diff lines" do
+ let(:subject) { described_class.new(diff_file.diff_lines, repository: project.repository).highlight }
+
+ it 'returns Gitlab::Diff::Line elements' do
+ expect(subject.first).to be_an_instance_of(Gitlab::Diff::Line)
end
- context 'when no inline diffs' do
- it_behaves_like 'without inline diffs'
+ it 'does not modify "match" lines' do
+ expect(subject[0].text).to eq('@@ -6,12 +6,18 @@ module Popen')
+ expect(subject[22].text).to eq('@@ -19,6 +25,7 @@ module Popen')
end
- end
- end
- context "with diff lines" do
- let(:subject) { described_class.new(diff_file.diff_lines, repository: project.repository).highlight }
+ it 'marks unchanged lines' do
+ code = %q{ def popen(cmd, path=nil)}
- it 'returns Gitlab::Diff::Line elements' do
- expect(subject.first).to be_an_instance_of(Gitlab::Diff::Line)
- end
+ expect(subject[2].text).to eq(code)
+ expect(subject[2].text).not_to be_html_safe
+ end
- it 'does not modify "match" lines' do
- expect(subject[0].text).to eq('@@ -6,12 +6,18 @@ module Popen')
- expect(subject[22].text).to eq('@@ -19,6 +25,7 @@ module Popen')
- end
+ it 'marks removed lines' do
+ code = %q(- raise "System commands must be given as an array of strings")
- it 'marks unchanged lines' do
- code = %q{ def popen(cmd, path=nil)}
+ expect(subject[4].text).to eq(code)
+ expect(subject[4].text).not_to be_html_safe
+ end
- expect(subject[2].text).to eq(code)
- expect(subject[2].text).not_to be_html_safe
- end
+ it 'marks added lines' do
+ code = %q(+ raise <span class="idiff left right addition">RuntimeError, </span>&quot;System commands must be given as an array of strings&quot;)
- it 'marks removed lines' do
- code = %q(- raise "System commands must be given as an array of strings")
+ expect(subject[5].rich_text).to eq(code)
+ expect(subject[5].rich_text).to be_html_safe
+ end
- expect(subject[4].text).to eq(code)
- expect(subject[4].text).not_to be_html_safe
- end
+ context 'when the inline diff marker has an invalid range' do
+ before do
+ allow_any_instance_of(Gitlab::Diff::InlineDiffMarker).to receive(:mark).and_raise(RangeError)
+ end
- it 'marks added lines' do
- code = %q(+ raise <span class="idiff left right addition">RuntimeError, </span>&quot;System commands must be given as an array of strings&quot;)
+ it 'keeps the original rich line' do
+ allow(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception)
- expect(subject[5].rich_text).to eq(code)
- expect(subject[5].rich_text).to be_html_safe
- end
+ code = %q(+ raise RuntimeError, "System commands must be given as an array of strings")
- context 'when the inline diff marker has an invalid range' do
- before do
- allow_any_instance_of(Gitlab::Diff::InlineDiffMarker).to receive(:mark).and_raise(RangeError)
- end
+ expect(subject[5].text).to eq(code)
+ expect(subject[5].text).not_to be_html_safe
+ end
- it 'keeps the original rich line' do
- allow(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception)
+ it 'reports to Sentry if configured' do
+ expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).and_call_original
- code = %q(+ raise RuntimeError, "System commands must be given as an array of strings")
+ expect { subject }.to raise_exception(RangeError)
+ end
+ end
- expect(subject[5].text).to eq(code)
- expect(subject[5].text).not_to be_html_safe
+ context 'when no inline diffs' do
+ it_behaves_like 'without inline diffs'
end
+ end
- it 'reports to Sentry if configured' do
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).and_call_original
+ context 'when blob is too large' do
+ let(:subject) { described_class.new(diff_file, repository: project.repository).highlight }
- expect { subject }.to raise_exception(RangeError)
+ before do
+ allow(Gitlab::Highlight).to receive(:too_large?).and_return(true)
end
- end
- context 'when no inline diffs' do
- it_behaves_like 'without inline diffs'
+ it 'blobs are highlighted as plain text without loading all data' do
+ expect(diff_file.blob).not_to receive(:load_all_data!)
+
+ expect(subject[2].rich_text).to eq(%{ <span id="LC7" class="line" lang=""> def popen(cmd, path=nil)</span>\n})
+ expect(subject[2].rich_text).to be_html_safe
+ end
end
end
- context 'when blob is too large' do
- let(:subject) { described_class.new(diff_file, repository: project.repository).highlight }
+ it_behaves_like 'diff highlighter'
+ context 'when diff_line_syntax_highlighting feature flag is disabled' do
before do
- allow(Gitlab::Highlight).to receive(:too_large?).and_return(true)
+ stub_feature_flags(diff_line_syntax_highlighting: false)
end
- it 'blobs are highlighted as plain text without loading all data' do
- expect(diff_file.blob).not_to receive(:load_all_data!)
-
- expect(subject[2].rich_text).to eq(%{ <span id="LC7" class="line" lang=""> def popen(cmd, path=nil)</span>\n})
- expect(subject[2].rich_text).to be_html_safe
- end
+ it_behaves_like 'diff highlighter'
end
end
end
diff --git a/spec/lib/gitlab/diff/rendered/notebook/diff_file_helper_spec.rb b/spec/lib/gitlab/diff/rendered/notebook/diff_file_helper_spec.rb
index ad92d90e253..4dd29e1fb15 100644
--- a/spec/lib/gitlab/diff/rendered/notebook/diff_file_helper_spec.rb
+++ b/spec/lib/gitlab/diff/rendered/notebook/diff_file_helper_spec.rb
@@ -2,7 +2,7 @@
require 'fast_spec_helper'
require 'rspec-parameterized'
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
MOCK_LINE = Struct.new(:text, :type, :index, :old_pos, :new_pos)
diff --git a/spec/lib/gitlab/error_tracking_spec.rb b/spec/lib/gitlab/error_tracking_spec.rb
index c9b2e21d934..7b2c5ca27cb 100644
--- a/spec/lib/gitlab/error_tracking_spec.rb
+++ b/spec/lib/gitlab/error_tracking_spec.rb
@@ -173,6 +173,20 @@ RSpec.describe Gitlab::ErrorTracking, feature_category: :shared do
)
end.to raise_error(RuntimeError)
end
+
+ it 'processes the exception even it is called within a `restrict_within_concurrent_ruby` block' do
+ expect(Gitlab::ErrorTracking::Logger).to receive(:error).with(logger_payload)
+
+ expect do
+ Gitlab::Utils.restrict_within_concurrent_ruby do
+ described_class.track_and_raise_exception(
+ exception,
+ issue_url: issue_url,
+ some_other_info: 'info'
+ )
+ end
+ end.to raise_error(RuntimeError, /boom/)
+ end
end
describe '.log_and_raise_exception' do
@@ -188,6 +202,16 @@ RSpec.describe Gitlab::ErrorTracking, feature_category: :shared do
expect { log_and_raise_exception }.to raise_error(RuntimeError)
end
+ it 'processes the exception even it is called within a `restrict_within_concurrent_ruby` block' do
+ expect(Gitlab::ErrorTracking::Logger).to receive(:error).with(logger_payload)
+
+ expect do
+ Gitlab::Utils.restrict_within_concurrent_ruby do
+ log_and_raise_exception
+ end
+ end.to raise_error(RuntimeError)
+ end
+
context 'when extra details are provided' do
let(:extra) { { test: 1, my_token: 'test' } }
@@ -230,6 +254,14 @@ RSpec.describe Gitlab::ErrorTracking, feature_category: :shared do
expect(Gitlab::ErrorTracking::Logger).to have_received(:error).with(logger_payload)
end
+ it 'processes the exception even it is called within a `restrict_within_concurrent_ruby` block' do
+ Gitlab::Utils.restrict_within_concurrent_ruby do
+ track_exception
+ end
+
+ expect(Gitlab::ErrorTracking::Logger).to have_received(:error).with(logger_payload)
+ end
+
context 'with tags' do
let(:tags) { { 'mytag' => 2 } }
diff --git a/spec/lib/gitlab/event_store/event_spec.rb b/spec/lib/gitlab/event_store/event_spec.rb
index edcb0e5dd1a..367b3334020 100644
--- a/spec/lib/gitlab/event_store/event_spec.rb
+++ b/spec/lib/gitlab/event_store/event_spec.rb
@@ -93,6 +93,13 @@ RSpec.describe Gitlab::EventStore::Event, feature_category: :shared do
expect(event_class.json_schema_valid).to eq(false)
end
+
+ it 'does not store JSON schema on subclass' do
+ expect { event }.to raise_error(Gitlab::EventStore::InvalidEvent)
+
+ expect(event_class.instance_variables).not_to include(:@json_schema)
+ expect(described_class.instance_variables).to include(:@json_schema)
+ end
end
end
end
diff --git a/spec/lib/gitlab/git/changed_path_spec.rb b/spec/lib/gitlab/git/changed_path_spec.rb
index ef51021ba4c..50cdddc9e8a 100644
--- a/spec/lib/gitlab/git/changed_path_spec.rb
+++ b/spec/lib/gitlab/git/changed_path_spec.rb
@@ -3,9 +3,12 @@
require 'fast_spec_helper'
RSpec.describe Gitlab::Git::ChangedPath do
- subject(:changed_path) { described_class.new(path: path, status: status) }
+ subject(:changed_path) { described_class.new(path: path, status: status, old_mode: old_mode, new_mode: new_mode) }
let(:path) { 'test_path' }
+ let(:status) { :MODIFIED }
+ let(:old_mode) { '100644' }
+ let(:new_mode) { '100644' }
describe '#new_file?' do
subject(:new_file?) { changed_path.new_file? }
@@ -19,11 +22,33 @@ RSpec.describe Gitlab::Git::ChangedPath do
end
context 'when it is not a new file' do
- let(:status) { :MODIFIED }
-
it 'returns false' do
expect(new_file?).to eq(false)
end
end
end
+
+ describe '#submodule_change?' do
+ subject(:submodule_change?) { changed_path.submodule_change? }
+
+ context 'with a regular file change' do
+ it { is_expected.to eq false }
+ end
+
+ context 'with a submodule addition' do
+ let(:status) { :ADDED }
+ let(:old_mode) { '0' }
+ let(:new_mode) { '160000' }
+
+ it { is_expected.to eq true }
+ end
+
+ context 'with a submodule deletion' do
+ let(:status) { :MODIFIED }
+ let(:old_mode) { '160000' }
+ let(:new_mode) { '0' }
+
+ it { is_expected.to eq true }
+ end
+ end
end
diff --git a/spec/lib/gitlab/git/commit_spec.rb b/spec/lib/gitlab/git/commit_spec.rb
index 6c8634281ae..a924137b8ec 100644
--- a/spec/lib/gitlab/git/commit_spec.rb
+++ b/spec/lib/gitlab/git/commit_spec.rb
@@ -522,7 +522,7 @@ RSpec.describe Gitlab::Git::Commit, feature_category: :source_code_management do
end
context 'when the commit cannot be found' do
- let(:commit_id) { Gitlab::Git::BLANK_SHA }
+ let(:commit_id) { Gitlab::Git::SHA1_BLANK_SHA }
it 'returns nil' do
expect(subject).to be_nil
diff --git a/spec/lib/gitlab/git/compare_spec.rb b/spec/lib/gitlab/git/compare_spec.rb
index 5ee5e18d5af..521d4588d84 100644
--- a/spec/lib/gitlab/git/compare_spec.rb
+++ b/spec/lib/gitlab/git/compare_spec.rb
@@ -116,22 +116,20 @@ RSpec.describe Gitlab::Git::Compare, feature_category: :source_code_management d
describe '#generated_files' do
subject(:generated_files) { compare.generated_files }
- context 'with a detected generated file' do
- let_it_be(:project) { create(:project, :repository) }
- let_it_be(:repository) { project.repository.raw }
- let_it_be(:branch) { 'generated-file-test' }
- let_it_be(:base) do
- project
- .repository
- .create_file(
- project.creator,
- '.gitattributes',
- "*.txt gitlab-generated\n",
- branch_name: branch,
- message: 'Add .gitattributes file')
- end
+ let(:project) do
+ create(:project, :custom_repo, files: {
+ '.gitattributes' => '*.txt gitlab-generated'
+ })
+ end
+
+ let(:repository) { project.repository.raw }
+ let(:branch) { 'generated-file-test' }
+ let(:base) { project.default_branch }
+ let(:head) { branch }
- let_it_be(:head) do
+ context 'with a detected generated file' do
+ before do
+ project.repository.create_branch(branch, project.default_branch)
project
.repository
.create_file(
@@ -150,7 +148,7 @@ RSpec.describe Gitlab::Git::Compare, feature_category: :source_code_management d
message: 'Add file2')
end
- it 'sets the diff as generated' do
+ it 'returns a set that incldues the generated file' do
expect(generated_files).to eq Set.new(['file1.txt'])
end
@@ -175,19 +173,16 @@ RSpec.describe Gitlab::Git::Compare, feature_category: :source_code_management d
end
end
- context 'with updated .gitattributes in the HEAD' do
- let_it_be(:project) { create(:project, :repository) }
- let_it_be(:repository) { project.repository.raw }
- let_it_be(:branch) { 'generated-file-test' }
- let_it_be(:head) do
+ context 'with deleted .gitattributes in the HEAD' do
+ before do
+ project.repository.create_branch(branch, project.default_branch)
project
.repository
- .create_file(
+ .delete_file(
project.creator,
'.gitattributes',
- "*.txt gitlab-generated\n",
branch_name: branch,
- message: 'Add .gitattributes file')
+ message: 'Delete .gitattributes file')
project
.repository
.create_file(
@@ -206,8 +201,8 @@ RSpec.describe Gitlab::Git::Compare, feature_category: :source_code_management d
message: 'Add file2')
end
- it 'does not set any files as generated' do
- expect(generated_files).to eq Set.new
+ it 'ignores the .gitattributes changes in the HEAD' do
+ expect(generated_files).to eq Set.new(['file1.txt'])
end
end
end
diff --git a/spec/lib/gitlab/git/push_spec.rb b/spec/lib/gitlab/git/push_spec.rb
index a0a4a22699b..f249e8316da 100644
--- a/spec/lib/gitlab/git/push_spec.rb
+++ b/spec/lib/gitlab/git/push_spec.rb
@@ -55,13 +55,13 @@ RSpec.describe Gitlab::Git::Push do
end
context 'when old revision is blank' do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
it { is_expected.not_to be_branch_updated }
end
context 'when it is not a branch push' do
- let(:newrev) { Gitlab::Git::BLANK_SHA }
+ let(:newrev) { Gitlab::Git::SHA1_BLANK_SHA }
it { is_expected.not_to be_branch_updated }
end
@@ -105,7 +105,7 @@ RSpec.describe Gitlab::Git::Push do
end
context 'when old revision is not defined' do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
it { is_expected.to be_branch_added }
end
@@ -117,7 +117,7 @@ RSpec.describe Gitlab::Git::Push do
end
context 'when new revision is not defined' do
- let(:newrev) { Gitlab::Git::BLANK_SHA }
+ let(:newrev) { Gitlab::Git::SHA1_BLANK_SHA }
it { is_expected.to be_branch_removed }
end
@@ -136,7 +136,7 @@ RSpec.describe Gitlab::Git::Push do
end
context 'when a push is not a branch update' do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'raises an error' do
expect { subject.modified_paths }.to raise_error(ArgumentError)
@@ -155,7 +155,7 @@ RSpec.describe Gitlab::Git::Push do
let(:oldrev) { nil }
it 'returns blank SHA' do
- expect(subject.oldrev).to eq Gitlab::Git::BLANK_SHA
+ expect(subject.oldrev).to eq Gitlab::Git::SHA1_BLANK_SHA
end
end
end
@@ -171,7 +171,7 @@ RSpec.describe Gitlab::Git::Push do
let(:newrev) { nil }
it 'returns blank SHA' do
- expect(subject.newrev).to eq Gitlab::Git::BLANK_SHA
+ expect(subject.newrev).to eq Gitlab::Git::SHA1_BLANK_SHA
end
end
end
diff --git a/spec/lib/gitlab/git/repository_cleaner_spec.rb b/spec/lib/gitlab/git/repository_cleaner_spec.rb
index 9f1bf9e48ee..a9ba87ad5b5 100644
--- a/spec/lib/gitlab/git/repository_cleaner_spec.rb
+++ b/spec/lib/gitlab/git/repository_cleaner_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Gitlab::Git::RepositoryCleaner do
let(:project) { create(:project, :repository) }
let(:repository) { project.repository }
let(:head_sha) { repository.head_commit.id }
- let(:object_map_data) { "#{head_sha} #{Gitlab::Git::BLANK_SHA}" }
+ let(:object_map_data) { "#{head_sha} #{Gitlab::Git::SHA1_BLANK_SHA}" }
let(:clean_refs) { %W[refs/environments/1 refs/merge-requests/1 refs/keep-around/#{head_sha}] }
let(:keep_refs) { %w[refs/heads/_keep refs/tags/_keep] }
@@ -35,7 +35,7 @@ RSpec.describe Gitlab::Git::RepositoryCleaner do
Gitaly::ApplyBfgObjectMapStreamResponse::Entry.new(
type: :COMMIT,
old_oid: head_sha,
- new_oid: Gitlab::Git::BLANK_SHA
+ new_oid: Gitlab::Git::SHA1_BLANK_SHA
)
)
end
diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb
index cc07a16d362..7c6a54161ae 100644
--- a/spec/lib/gitlab/git/repository_spec.rb
+++ b/spec/lib/gitlab/git/repository_spec.rb
@@ -566,7 +566,7 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
[
{
old_sha: sha,
- new_sha: Gitlab::Git::BLANK_SHA,
+ new_sha: Gitlab::Git::SHA1_BLANK_SHA,
reference: tmp_ref
}
]
@@ -1155,7 +1155,7 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
end
context 'blank revisions' do
- let(:revisions) { [::Gitlab::Git::BLANK_SHA] }
+ let(:revisions) { [::Gitlab::Git::SHA1_BLANK_SHA] }
let(:expected_blobs) { 0 }
before do
@@ -1278,7 +1278,7 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
end
context 'with partially blank revisions' do
- let(:newrevs) { [nil, commit, Gitlab::Git::BLANK_SHA] }
+ let(:newrevs) { [nil, commit, Gitlab::Git::SHA1_BLANK_SHA] }
let(:expected_newrevs) { ['--not', '--all', '--not', commit] }
let(:expected_blobs) do
[
@@ -1326,7 +1326,7 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
end
context 'with a single zero newrev' do
- let(:newrevs) { Gitlab::Git::BLANK_SHA }
+ let(:newrevs) { Gitlab::Git::SHA1_BLANK_SHA }
it_behaves_like '#new_blobs without revisions'
end
@@ -1338,7 +1338,7 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
end
context 'with array containing only empty refs' do
- let(:newrevs) { [nil, Gitlab::Git::BLANK_SHA] }
+ let(:newrevs) { [nil, Gitlab::Git::SHA1_BLANK_SHA] }
it_behaves_like '#new_blobs without revisions'
end
@@ -1400,7 +1400,7 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
let(:changes) { repository.raw_changes_between(old_rev, new_rev) }
context 'initial commit' do
- let(:old_rev) { Gitlab::Git::BLANK_SHA }
+ let(:old_rev) { Gitlab::Git::SHA1_BLANK_SHA }
let(:new_rev) { '1a0b36b3cdad1d2ee32457c102a8c0b7056fa863' }
it 'returns the changes' do
@@ -1681,11 +1681,11 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
expect(collection.to_a).to be_empty
end
- it 'returns no Gitaly::DiffStats when there is a BLANK_SHA' do
+ it 'returns no Gitaly::DiffStats when there is a SHA1_BLANK_SHA' do
expect_any_instance_of(Gitlab::GitalyClient::CommitService)
.not_to receive(:diff_stats)
- collection = repository.diff_stats(Gitlab::Git::BLANK_SHA, 'master')
+ collection = repository.diff_stats(Gitlab::Git::SHA1_BLANK_SHA, 'master')
expect(collection).to be_a(Gitlab::Git::DiffStatsCollection)
expect(collection).to be_a(Enumerable)
@@ -1702,25 +1702,25 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
let_it_be(:diff_tree) { Gitlab::Git::DiffTree.from_commit(initial_commit) }
let(:commit_1_files) do
- [Gitlab::Git::ChangedPath.new(status: :ADDED, path: "files/executables/ls")]
+ [Gitlab::Git::ChangedPath.new(status: :ADDED, path: "files/executables/ls", old_mode: "0", new_mode: "100755")]
end
let(:commit_2_files) do
- [Gitlab::Git::ChangedPath.new(status: :ADDED, path: "bar/branch-test.txt")]
+ [Gitlab::Git::ChangedPath.new(status: :ADDED, path: "bar/branch-test.txt", old_mode: "0", new_mode: "100644")]
end
let(:commit_3_files) do
[
- Gitlab::Git::ChangedPath.new(status: :MODIFIED, path: ".gitmodules"),
- Gitlab::Git::ChangedPath.new(status: :ADDED, path: "gitlab-shell")
+ Gitlab::Git::ChangedPath.new(status: :MODIFIED, path: ".gitmodules", old_mode: "100644", new_mode: "100644"),
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: "gitlab-shell", old_mode: "0", new_mode: "160000")
]
end
let(:diff_tree_files) do
[
- Gitlab::Git::ChangedPath.new(status: :ADDED, path: ".gitignore"),
- Gitlab::Git::ChangedPath.new(status: :ADDED, path: "LICENSE"),
- Gitlab::Git::ChangedPath.new(status: :ADDED, path: "README.md")
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: ".gitignore", old_mode: "0", new_mode: "100644"),
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: "LICENSE", old_mode: "0", new_mode: "100644"),
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: "README.md", old_mode: "0", new_mode: "100644")
]
end
@@ -2222,7 +2222,7 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
end
it 'returns empty for unknown ID' do
- expect(repository.refs_by_oid(oid: Gitlab::Git::BLANK_SHA, limit: 0)).to eq([])
+ expect(repository.refs_by_oid(oid: Gitlab::Git::SHA1_BLANK_SHA, limit: 0)).to eq([])
end
it 'returns empty for an empty repo' do
@@ -2822,11 +2822,37 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
})
end
+ let(:gitattr_content) { "" }
+
let(:repository) { project.repository.raw }
- let(:rev) { 'master' }
- let(:paths) { ['file1.txt', 'file2.txt'] }
+ let(:base) { project.default_branch }
+ let(:branch) { 'detect-generated-files-test' }
+ let(:head) { branch }
+ let(:paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :MODIFIED, path: 'file1.txt', old_mode: '100644', new_mode: '100644'),
+ Gitlab::Git::ChangedPath.new(status: :DELETED, path: 'file2.txt', old_mode: '100644', new_mode: '8')
+ ]
+ end
+
+ before do
+ project.repository.create_branch(branch, project.default_branch)
- subject(:generated_files) { repository.detect_generated_files(rev, paths) }
+ project.repository.update_file(
+ project.creator,
+ 'file1.txt',
+ 'updated first file',
+ message: 'Update file',
+ branch_name: branch)
+
+ project.repository.delete_file(
+ project.creator,
+ 'file2.txt',
+ message: 'Delete file',
+ branch_name: branch)
+ end
+
+ subject(:generated_files) { repository.detect_generated_files(base, head, paths) }
context 'when the linguist-generated attribute is used' do
let(:gitattr_content) { "*.txt text\nfile1.txt linguist-generated\n" }
@@ -2852,11 +2878,99 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen
end
end
- context 'when the all files are generated' do
+ context 'when the gitlab-generated attribute is used to unset' do
+ let(:gitattr_content) { "file1.txt -gitlab-generated\n" }
+
+ it 'returns an empty set' do
+ expect(generated_files).to eq Set.new
+ end
+ end
+
+ context 'with an automatically detected file' do
+ before do
+ project.repository.create_file(
+ project.creator,
+ 'package-lock.json',
+ 'generated file content',
+ message: 'Add generated file',
+ branch_name: branch)
+ end
+
+ let(:paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :MODIFIED, path: 'file1.txt', old_mode: '100644', new_mode: '100644'),
+ Gitlab::Git::ChangedPath.new(status: :DELETED, path: 'file2.txt', old_mode: '100644', new_mode: '100644'),
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: 'package-lock.json', old_mode: '0', new_mode: '100644')
+ ]
+ end
+
+ context 'when the manual override is used on non-detectable file' do
+ let(:gitattr_content) { "file1.txt gitlab-generated\n" }
+
+ it 'returns both manually overriden file and the detected file' do
+ expect(generated_files).to contain_exactly('file1.txt', 'package-lock.json')
+ end
+ end
+
+ context 'when the manual override is used on the detectable file' do
+ let(:gitattr_content) { "package-lock.json gitlab-generated\n" }
+
+ it 'returns the overriden file' do
+ expect(generated_files).to contain_exactly('package-lock.json')
+ end
+ end
+
+ context 'when the manual override is used on the detectable file to unset' do
+ let(:gitattr_content) { "package-lock.json -gitlab-generated\n" }
+
+ it 'returns an empty set' do
+ expect(generated_files).to eq Set.new
+ end
+ end
+
+ shared_examples 'an invalid request' do
+ it 'returns an empty set' do
+ expect(generated_files).to eq Set.new
+ end
+
+ it 'reports the exception' do
+ expect(Gitlab::ErrorTracking)
+ .to receive(:track_exception)
+ .with(
+ instance_of(Gitlab::Git::CommandError),
+ gl_project_path: repository.gl_project_path,
+ base: base,
+ head: head,
+ paths: paths.map(&:path)
+ )
+
+ generated_files
+ end
+ end
+
+ context 'when an unknown revision is given' do
+ let(:head) { 'unknownrevision' }
+
+ it_behaves_like 'an invalid request'
+ end
+
+ context 'when an unknown path is given' do
+ let(:paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :MODIFIED, path: 'file1.txt', old_mode: '100644', new_mode: '100644'),
+ Gitlab::Git::ChangedPath.new(status: :MODIFIED, path: 'unknownpath', old_mode: '100644', new_mode: '100644')
+ ]
+ end
+
+ it_behaves_like 'an invalid request'
+ end
+ end
+
+ context 'when all files are marked as generated' do
let(:gitattr_content) { "*.txt gitlab-generated\n" }
it 'returns all generated files' do
- expect(generated_files).to eq paths.to_set
+ expect(generated_files).to eq paths.map(&:path).to_set
end
end
diff --git a/spec/lib/gitlab/git/tag_spec.rb b/spec/lib/gitlab/git/tag_spec.rb
index a15c74a058d..7f1887f519b 100644
--- a/spec/lib/gitlab/git/tag_spec.rb
+++ b/spec/lib/gitlab/git/tag_spec.rb
@@ -91,7 +91,7 @@ RSpec.describe Gitlab::Git::Tag, feature_category: :source_code_management do
end
context 'when the tag cannot be found' do
- let(:tag_id) { Gitlab::Git::BLANK_SHA }
+ let(:tag_id) { Gitlab::Git::SHA1_BLANK_SHA }
it 'raises GRPC::Internal' do
expect { subject }.to raise_error(GRPC::Internal)
diff --git a/spec/lib/gitlab/git/tree_spec.rb b/spec/lib/gitlab/git/tree_spec.rb
index 090f9af2620..468df96b356 100644
--- a/spec/lib/gitlab/git/tree_spec.rb
+++ b/spec/lib/gitlab/git/tree_spec.rb
@@ -9,7 +9,17 @@ RSpec.describe Gitlab::Git::Tree, feature_category: :source_code_management do
let_it_be(:repository) { project.repository.raw }
shared_examples 'repo' do
- subject(:tree) { Gitlab::Git::Tree.where(repository, sha, path, recursive, skip_flat_paths, rescue_not_found, pagination_params) }
+ subject(:tree) do
+ Gitlab::Git::Tree.tree_entries(
+ repository: repository,
+ sha: sha,
+ path: path,
+ recursive: recursive,
+ skip_flat_paths: skip_flat_paths,
+ rescue_not_found: rescue_not_found,
+ pagination_params: pagination_params
+ )
+ end
let(:sha) { SeedRepo::Commit::ID }
let(:path) { nil }
diff --git a/spec/lib/gitlab/git_access_project_spec.rb b/spec/lib/gitlab/git_access_project_spec.rb
index ad593cbf005..abcc5c5863e 100644
--- a/spec/lib/gitlab/git_access_project_spec.rb
+++ b/spec/lib/gitlab/git_access_project_spec.rb
@@ -141,7 +141,9 @@ RSpec.describe Gitlab::GitAccessProject do
end
context 'when check contains actual changes' do
- let(:changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/new_branch" }
+ let(:changes) do
+ "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/new_branch"
+ end
it_behaves_like 'no project is created'
end
diff --git a/spec/lib/gitlab/git_access_spec.rb b/spec/lib/gitlab/git_access_spec.rb
index 975e8bdd3ac..82daaba6448 100644
--- a/spec/lib/gitlab/git_access_spec.rb
+++ b/spec/lib/gitlab/git_access_spec.rb
@@ -802,13 +802,13 @@ RSpec.describe Gitlab::GitAccess, :aggregate_failures, feature_category: :system
let(:changes) do
{ any: Gitlab::GitAccess::ANY,
- push_new_branch: "#{Gitlab::Git::BLANK_SHA} 570e7b2ab refs/heads/wow",
+ push_new_branch: "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2ab refs/heads/wow",
push_master: '6f6d7e7ed 570e7b2ab refs/heads/master',
push_protected_branch: '6f6d7e7ed 570e7b2ab refs/heads/feature',
- push_remove_protected_branch: "570e7b2ab #{Gitlab::Git::BLANK_SHA} "\
+ push_remove_protected_branch: "570e7b2ab #{Gitlab::Git::SHA1_BLANK_SHA} "\
'refs/heads/feature',
push_tag: '6f6d7e7ed 570e7b2ab refs/tags/v1.0.0',
- push_new_tag: "#{Gitlab::Git::BLANK_SHA} 570e7b2ab refs/tags/v7.8.9",
+ push_new_tag: "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2ab refs/tags/v7.8.9",
push_all: ['6f6d7e7ed 570e7b2ab refs/heads/master', '6f6d7e7ed 570e7b2ab refs/heads/feature'],
merge_into_protected_branch: "0b4bc9a #{merge_into_protected_branch} refs/heads/feature" }
end
@@ -1018,7 +1018,7 @@ RSpec.describe Gitlab::GitAccess, :aggregate_failures, feature_category: :system
context 'when pushing to a project' do
let(:project) { create(:project, :public, :repository) }
- let(:changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2ab refs/heads/wow" }
+ let(:changes) { "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2ab refs/heads/wow" }
before do
project.add_developer(user)
@@ -1062,14 +1062,14 @@ RSpec.describe Gitlab::GitAccess, :aggregate_failures, feature_category: :system
# additional queries.
access.check('git-receive-pack', changes)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
access.check('git-receive-pack', changes)
end
changes = ['6f6d7e7ed 570e7b2ab refs/heads/master', '6f6d7e7ed 570e7b2ab refs/heads/feature']
# There is still an N+1 query with protected branches
- expect { access.check('git-receive-pack', changes) }.not_to exceed_query_limit(control_count).with_threshold(2)
+ expect { access.check('git-receive-pack', changes) }.not_to exceed_query_limit(control).with_threshold(2)
end
it 'raises TimeoutError when #check_access! raises a timeout error' do
diff --git a/spec/lib/gitlab/git_spec.rb b/spec/lib/gitlab/git_spec.rb
index 0f6ef55b4b1..61f66c9cd0c 100644
--- a/spec/lib/gitlab/git_spec.rb
+++ b/spec/lib/gitlab/git_spec.rb
@@ -32,7 +32,7 @@ RSpec.describe Gitlab::Git do
'zzz25dc642cb6eb9a060e54bf8d69288fbee4904' | false
'4b825dc642cb6eb9a060e54bf8d69288fbee4904' | true
- Gitlab::Git::BLANK_SHA | true
+ Gitlab::Git::SHA1_BLANK_SHA | true
end
with_them do
diff --git a/spec/lib/gitlab/gitaly_client/analysis_service_spec.rb b/spec/lib/gitlab/gitaly_client/analysis_service_spec.rb
new file mode 100644
index 00000000000..c57d9b9592c
--- /dev/null
+++ b/spec/lib/gitlab/gitaly_client/analysis_service_spec.rb
@@ -0,0 +1,137 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::GitalyClient::AnalysisService, feature_category: :gitaly do
+ let_it_be(:project) do
+ create(:project, :repository)
+ end
+
+ let(:repository) { project.repository.raw }
+ let(:base) { project.default_branch }
+ let(:head) { branch }
+ let(:branch) { 'test-check-blobs-generated' }
+
+ let(:client) { described_class.new(repository) }
+
+ describe '#check_blobs_generated' do
+ subject(:check_blobs_generated) { client.check_blobs_generated(base, head, changed_paths) }
+
+ before do
+ project.repository.create_branch(branch, project.default_branch)
+
+ project.repository.create_file(
+ project.creator,
+ 'file1.txt',
+ 'new file content',
+ message: 'Add new file',
+ branch_name: branch)
+
+ project.repository.create_file(
+ project.creator,
+ 'package-lock.json',
+ 'new file content',
+ message: 'Add new file',
+ branch_name: branch)
+
+ project.repository.delete_file(
+ project.creator,
+ 'README',
+ message: 'Delete README',
+ branch_name: branch)
+ end
+
+ context 'when valid changed_paths are given' do
+ let(:changed_paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :DELETED, path: 'README', old_mode: '100644', new_mode: '0'),
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: 'file1.txt', old_mode: '0', new_mode: '100644'),
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: 'package-lock.json', old_mode: '0', new_mode: '100644')
+ ]
+ end
+
+ it 'returns an expected array' do
+ expect(check_blobs_generated).to contain_exactly(
+ { generated: false, path: 'README' },
+ { generated: false, path: 'file1.txt' },
+ { generated: true, path: 'package-lock.json' }
+ )
+ end
+
+ context 'when changed_paths includes a submodule' do
+ let(:changed_paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: 'package-lock.json', old_mode: '0', new_mode: '100644'),
+ Gitlab::Git::ChangedPath.new(status: :DELETED, path: 'gitlab-shell', old_mode: '160000', new_mode: '0')
+ ]
+ end
+
+ it 'returns an array wihout the submodule change' do
+ expect(check_blobs_generated).to contain_exactly(
+ { generated: true, path: 'package-lock.json' }
+ )
+ end
+ end
+
+ context 'when changed_paths only has a submodule' do
+ let(:changed_paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: 'gitlab-shell', old_mode: '0', new_mode: '160000')
+ ]
+ end
+
+ it 'returns an empty array' do
+ expect(check_blobs_generated).to eq([])
+ end
+ end
+ end
+
+ context 'when changed_paths includes a path with :' do
+ before do
+ project.repository.create_file(
+ project.creator,
+ 'abc:def',
+ 'new file content',
+ message: 'Add new file',
+ branch_name: branch)
+ end
+
+ let(:changed_paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: 'abc:def', old_mode: '0', new_mode: '100644')
+ ]
+ end
+
+ it 'returns an expected array' do
+ expect(check_blobs_generated).to contain_exactly(
+ { generated: false, path: 'abc:def' }
+ )
+ end
+ end
+
+ context 'when an unknown revision is given' do
+ let(:head) { 'unknownrevision' }
+ let(:changed_paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: 'file1.txt', old_mode: '0', new_mode: '100644')
+ ]
+ end
+
+ it 'raises an error' do
+ expect { check_blobs_generated }.to raise_error(GRPC::Internal)
+ end
+ end
+
+ context 'when an unknown path is given' do
+ let(:changed_paths) do
+ [
+ Gitlab::Git::ChangedPath.new(status: :ADDED, path: 'unknownpath', old_mode: '0', new_mode: '100644')
+ ]
+ end
+
+ it 'raises an error' do
+ expect { check_blobs_generated }.to raise_error(GRPC::Internal)
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/gitaly_client/commit_service_spec.rb b/spec/lib/gitlab/gitaly_client/commit_service_spec.rb
index 02c7abadd99..9b924440989 100644
--- a/spec/lib/gitlab/gitaly_client/commit_service_spec.rb
+++ b/spec/lib/gitlab/gitaly_client/commit_service_spec.rb
@@ -203,15 +203,15 @@ RSpec.describe Gitlab::GitalyClient::CommitService, feature_category: :gitaly do
shared_examples 'includes paths different in any parent' do
let(:changed_paths) do
[
- { path: 'files/locked/foo.lfs', status: 'ADDED' },
- { path: 'files/locked/foo.lfs', status: 'MODIFIED' },
- { path: 'files/locked/bar.lfs', status: 'ADDED' },
- { path: 'files/locked/foo.lfs', status: 'MODIFIED' },
- { path: 'files/locked/bar.lfs', status: 'ADDED' },
- { path: 'files/locked/bar.lfs', status: 'MODIFIED' },
- { path: 'files/locked/bar.lfs', status: 'MODIFIED' },
- { path: 'files/locked/baz.lfs', status: 'ADDED' },
- { path: 'files/locked/baz.lfs', status: 'ADDED' }
+ { path: 'files/locked/foo.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' },
+ { path: 'files/locked/foo.lfs', status: 'MODIFIED', old_mode: '100644', new_mode: '100644' },
+ { path: 'files/locked/bar.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' },
+ { path: 'files/locked/foo.lfs', status: 'MODIFIED', old_mode: '100644', new_mode: '100644' },
+ { path: 'files/locked/bar.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' },
+ { path: 'files/locked/bar.lfs', status: 'MODIFIED', old_mode: '100644', new_mode: '100644' },
+ { path: 'files/locked/bar.lfs', status: 'MODIFIED', old_mode: '100644', new_mode: '100644' },
+ { path: 'files/locked/baz.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' },
+ { path: 'files/locked/baz.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' }
].as_json
end
@@ -223,12 +223,12 @@ RSpec.describe Gitlab::GitalyClient::CommitService, feature_category: :gitaly do
shared_examples 'includes paths different in all parents' do
let(:changed_paths) do
[
- { path: 'files/locked/foo.lfs', status: 'ADDED' },
- { path: 'files/locked/foo.lfs', status: 'MODIFIED' },
- { path: 'files/locked/bar.lfs', status: 'ADDED' },
- { path: 'files/locked/bar.lfs', status: 'MODIFIED' },
- { path: 'files/locked/baz.lfs', status: 'ADDED' },
- { path: 'files/locked/baz.lfs', status: 'ADDED' }
+ { path: 'files/locked/foo.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' },
+ { path: 'files/locked/foo.lfs', status: 'MODIFIED', old_mode: '100644', new_mode: '100644' },
+ { path: 'files/locked/bar.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' },
+ { path: 'files/locked/bar.lfs', status: 'MODIFIED', old_mode: '100644', new_mode: '100644' },
+ { path: 'files/locked/baz.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' },
+ { path: 'files/locked/baz.lfs', status: 'ADDED', old_mode: '0', new_mode: '100644' }
].as_json
end
diff --git a/spec/lib/gitlab/github_gists_import/importer/gists_importer_spec.rb b/spec/lib/gitlab/github_gists_import/importer/gists_importer_spec.rb
index d555a847ea5..b6a57ef8b57 100644
--- a/spec/lib/gitlab/github_gists_import/importer/gists_importer_spec.rb
+++ b/spec/lib/gitlab/github_gists_import/importer/gists_importer_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Gitlab::GithubGistsImport::Importer::GistsImporter, feature_categ
let_it_be(:user) { create(:user) }
let(:client) { instance_double('Gitlab::GithubImport::Client', rate_limit_resets_in: 5) }
let(:token) { 'token' }
- let(:page_counter) { instance_double('Gitlab::GithubImport::PageCounter', current: 1, set: true, expire!: true) }
+ let(:page_counter) { instance_double('Gitlab::Import::PageCounter', current: 1, set: true, expire!: true) }
let(:page) { instance_double('Gitlab::GithubImport::Client::Page', objects: [gist], number: 1) }
let(:url) { 'https://gist.github.com/foo/bar.git' }
let(:waiter) { Gitlab::JobWaiter.new(0, 'some-job-key') }
@@ -62,7 +62,7 @@ RSpec.describe Gitlab::GithubGistsImport::Importer::GistsImporter, feature_categ
.with(token, parallel: true)
.and_return(client)
- allow(Gitlab::GithubImport::PageCounter)
+ allow(Gitlab::Import::PageCounter)
.to receive(:new)
.with(user, :gists, 'github-gists-importer')
.and_return(page_counter)
diff --git a/spec/lib/gitlab/github_import/attachments_downloader_spec.rb b/spec/lib/gitlab/github_import/attachments_downloader_spec.rb
index 65c5a7daeb2..c7dd2a9538c 100644
--- a/spec/lib/gitlab/github_import/attachments_downloader_spec.rb
+++ b/spec/lib/gitlab/github_import/attachments_downloader_spec.rb
@@ -8,27 +8,12 @@ RSpec.describe Gitlab::GithubImport::AttachmentsDownloader, feature_category: :i
let_it_be(:file_url) { 'https://example.com/avatar.png' }
let_it_be(:content_type) { 'application/octet-stream' }
- let(:content_length) { 1000 }
let(:chunk_double) { instance_double(HTTParty::ResponseFragment, code: 200) }
- let(:headers_double) do
- instance_double(
- HTTParty::Response,
- code: 200,
- success?: true,
- parsed_response: {},
- headers: {
- 'content-length' => content_length,
- 'content-type' => content_type
- }
- )
- end
describe '#perform' do
before do
allow(Gitlab::HTTP).to receive(:perform_request)
.with(Net::HTTP::Get, file_url, stream_body: true).and_yield(chunk_double)
- allow(Gitlab::HTTP).to receive(:perform_request)
- .with(Net::HTTP::Head, file_url, {}).and_return(headers_double)
end
context 'when file valid' do
@@ -71,12 +56,12 @@ RSpec.describe Gitlab::GithubImport::AttachmentsDownloader, feature_category: :i
end
context 'when file size exceeds limit' do
- let(:content_length) { 26.megabytes }
+ subject(:downloader) { described_class.new(file_url, file_size_limit: 1.byte) }
it 'raises expected exception' do
expect { downloader.perform }.to raise_exception(
Gitlab::GithubImport::AttachmentsDownloader::DownloadError,
- 'File size 26 MiB exceeds limit of 25 MiB'
+ 'File size 57 B exceeds limit of 1 B'
)
end
end
@@ -94,6 +79,33 @@ RSpec.describe Gitlab::GithubImport::AttachmentsDownloader, feature_category: :i
end
end
+ context 'when chunk download returns a redirect' do
+ let(:chunk_double) { instance_double(HTTParty::ResponseFragment, code: 302, http_response: {}) }
+
+ it 'skips the redirect and continues' do
+ allow(Gitlab::HTTP).to receive(:perform_request)
+ .with(Net::HTTP::Get, file_url, stream_body: true).and_yield(chunk_double)
+
+ file = downloader.perform
+
+ expect(File.exist?(file.path)).to eq(true)
+ end
+ end
+
+ context 'when chunk download returns an error' do
+ let(:chunk_double) { instance_double(HTTParty::ResponseFragment, code: 500, http_response: {}) }
+
+ it 'raises expected exception' do
+ allow(Gitlab::HTTP).to receive(:perform_request)
+ .with(Net::HTTP::Get, file_url, stream_body: true).and_yield(chunk_double)
+
+ expect { downloader.perform }.to raise_exception(
+ Gitlab::GithubImport::AttachmentsDownloader::DownloadError,
+ "Error downloading file from #{file_url}. Error code: #{chunk_double.code}"
+ )
+ end
+ end
+
context 'when attachment is behind a github asset endpoint' do
let(:file_url) { "https://github.com/test/project/assets/142635249/4b9f9c90-f060-4845-97cf-b24c558bcb11" }
let(:redirect_url) { "https://github-production-user-asset-6210df.s3.amazonaws.com/142635249/740edb05293e.jpg" }
diff --git a/spec/lib/gitlab/github_import/events_cache_spec.rb b/spec/lib/gitlab/github_import/events_cache_spec.rb
new file mode 100644
index 00000000000..8637f236977
--- /dev/null
+++ b/spec/lib/gitlab/github_import/events_cache_spec.rb
@@ -0,0 +1,79 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::GithubImport::EventsCache, :clean_gitlab_redis_cache, feature_category: :importers do
+ let(:project) { build_stubbed(:project, id: 1) }
+ let(:issue) { build_stubbed(:issue, iid: 2) }
+
+ let(:event_cache) { described_class.new(project) }
+
+ def build_event(event)
+ Gitlab::GithubImport::Representation::IssueEvent.from_json_hash(event)
+ end
+
+ describe '#add' do
+ it 'adds event to cache' do
+ expect(Gitlab::Cache::Import::Caching).to receive(:list_add).with(
+ 'github-importer/events/1/Issue/2',
+ an_instance_of(String),
+ limit: described_class::MAX_NUMBER_OF_EVENTS
+ )
+
+ event_cache.add(issue, build_event({ event: 'closed' }))
+ end
+
+ context 'when events is too large to cache' do
+ before do
+ stub_const("#{described_class}::MAX_EVENT_SIZE", 1.byte)
+ end
+
+ it 'does not add event to cache' do
+ expect(Gitlab::Cache::Import::Caching).not_to receive(:list_add)
+ expect(Gitlab::GithubImport::Logger).to receive(:warn).with(
+ message: 'Event too large to cache',
+ project_id: project.id,
+ github_identifiers: {
+ event: 'closed',
+ id: '99',
+ issuable_iid: '2'
+ }
+ )
+
+ event_cache.add(issue, build_event({ event: 'closed', id: '99', issue: { number: '2' } }))
+ end
+ end
+ end
+
+ describe '#events' do
+ it 'retrieves the list of events from the cache in the correct order' do
+ key = 'github-importer/events/1/Issue/2'
+
+ Gitlab::Cache::Import::Caching.list_add(key, { event: 'merged', created_at: '2023-01-02T00:00:00Z' }.to_json)
+ Gitlab::Cache::Import::Caching.list_add(key, { event: 'closed', created_at: '2023-01-03T00:00:00Z' }.to_json)
+ Gitlab::Cache::Import::Caching.list_add(key, { event: 'commented', created_at: '2023-01-01T00:00:00Z' }.to_json)
+
+ events = event_cache.events(issue).map(&:to_hash)
+
+ expect(events).to match([
+ a_hash_including(event: 'commented', created_at: '2023-01-01 00:00:00 UTC'),
+ a_hash_including(event: 'merged', created_at: '2023-01-02 00:00:00 UTC'),
+ a_hash_including(event: 'closed', created_at: '2023-01-03 00:00:00 UTC')
+ ])
+ end
+
+ context 'when no event was added' do
+ it 'returns an empty array' do
+ expect(event_cache.events(issue)).to eq([])
+ end
+ end
+ end
+
+ describe '#delete' do
+ it 'deletes the list' do
+ expect(Gitlab::Cache::Import::Caching).to receive(:del).with('github-importer/events/1/Issue/2')
+
+ event_cache.delete(issue)
+ end
+ end
+end
diff --git a/spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb b/spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb
index 5e60be44621..bc1b32661b8 100644
--- a/spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::GithubImport::Importer::Attachments::BaseImporter do
+RSpec.describe Gitlab::GithubImport::Importer::Attachments::BaseImporter, feature_category: :importers do
subject(:importer) { importer_class.new(project, client) }
let(:project) { instance_double(Project, id: 1) }
diff --git a/spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb b/spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb
index b44f1ec85f3..20152020897 100644
--- a/spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb
@@ -10,39 +10,68 @@ RSpec.describe Gitlab::GithubImport::Importer::Attachments::IssuesImporter, feat
let(:client) { instance_double(Gitlab::GithubImport::Client) }
describe '#sequential_import', :clean_gitlab_redis_cache do
- let_it_be(:issue_1) { create(:issue, project: project) }
- let_it_be(:issue_2) { create(:issue, project: project) }
+ let_it_be(:issue) { create(:issue, project: project) }
- let(:importer_stub) { instance_double('Gitlab::GithubImport::Importer::NoteAttachmentsImporter') }
- let(:importer_attrs) { [instance_of(Gitlab::GithubImport::Representation::NoteText), project, client] }
+ let_it_be(:issue_with_attachment) do
+ create(:issue,
+ project: project,
+ description: "![image](https://user-images.githubusercontent.com/1/uuid-1.png)"
+ )
+ end
+
+ it 'selects both issues, and selects only properties it needs' do
+ stubbed_collection = class_double(Issue, each_batch: [])
+
+ expect(project.issues).to receive(:id_not_in).with([]).and_return(stubbed_collection)
+ expect(stubbed_collection).to receive(:select).with(:id, :description, :iid).and_return(stubbed_collection)
- it 'imports each project issue attachments' do
- expect(project.issues).to receive(:id_not_in).with([]).and_return(project.issues)
- expect(project.issues).to receive(:select).with(:id, :description, :iid).and_call_original
+ importer.sequential_import
+ end
- expect_next_instances_of(
- Gitlab::GithubImport::Importer::NoteAttachmentsImporter, 2, false, *importer_attrs
- ) do |note_attachments_importer|
- expect(note_attachments_importer).to receive(:execute)
+ it 'executes importer only for the issue with an attachment' do
+ expect_next_instance_of(
+ Gitlab::GithubImport::Importer::NoteAttachmentsImporter,
+ have_attributes(record_db_id: issue_with_attachment.id),
+ project,
+ client
+ ) do |importer|
+ expect(importer).to receive(:execute)
end
importer.sequential_import
end
- context 'when issue is already processed' do
- it "doesn't import this issue attachments" do
- importer.mark_as_imported(issue_1)
+ context 'when flag is disabled' do
+ before do
+ stub_feature_flags(github_importer_attachments: false)
+ end
- expect(project.issues).to receive(:id_not_in).with([issue_1.id.to_s]).and_call_original
- expect_next_instance_of(
- Gitlab::GithubImport::Importer::NoteAttachmentsImporter, *importer_attrs
- ) do |note_attachments_importer|
- expect(note_attachments_importer).to receive(:execute)
+ it 'executes importer for both issues' do
+ expect_next_instances_of(Gitlab::GithubImport::Importer::NoteAttachmentsImporter, 2) do |importer|
+ expect(importer).to receive(:execute)
end
importer.sequential_import
end
end
+
+ context 'when issue has already been processed' do
+ before do
+ importer.mark_as_imported(issue_with_attachment)
+ end
+
+ it 'does not select issues that were processed' do
+ expect(project.issues).to receive(:id_not_in).with([issue_with_attachment.id.to_s]).and_call_original
+
+ importer.sequential_import
+ end
+
+ it 'does not execute importer for the issue with an attachment' do
+ expect(Gitlab::GithubImport::Importer::NoteAttachmentsImporter).not_to receive(:new)
+
+ importer.sequential_import
+ end
+ end
end
describe '#sidekiq_worker_class' do
diff --git a/spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb b/spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb
index 381cb17bb52..5ed6dce8507 100644
--- a/spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb
@@ -10,39 +10,69 @@ RSpec.describe Gitlab::GithubImport::Importer::Attachments::MergeRequestsImporte
let(:client) { instance_double(Gitlab::GithubImport::Client) }
describe '#sequential_import', :clean_gitlab_redis_cache do
- let_it_be(:merge_request_1) { create(:merge_request, source_project: project, target_branch: 'feature1') }
- let_it_be(:merge_request_2) { create(:merge_request, source_project: project, target_branch: 'feature2') }
+ let_it_be(:mr) { create(:merge_request, source_project: project, target_branch: 'feature1') }
+
+ let_it_be(:mr_with_attachment) do
+ create(:merge_request,
+ source_project: project,
+ target_branch: 'feature2',
+ description: "![image](https://user-images.githubusercontent.com/1/uuid-1.png)"
+ )
+ end
+
+ it 'selects both merge requests, and selects only properties it needs' do
+ stubbed_collection = class_double(MergeRequest, each_batch: [])
- let(:importer_stub) { instance_double('Gitlab::GithubImport::Importer::NoteAttachmentsImporter') }
- let(:importer_attrs) { [instance_of(Gitlab::GithubImport::Representation::NoteText), project, client] }
+ expect(project.merge_requests).to receive(:id_not_in).with([]).and_return(stubbed_collection)
+ expect(stubbed_collection).to receive(:select).with(:id, :description, :iid).and_return(stubbed_collection)
- it 'imports each project merge request attachments' do
- expect(project.merge_requests).to receive(:id_not_in).with([]).and_return(project.merge_requests)
- expect(project.merge_requests).to receive(:select).with(:id, :description, :iid).and_call_original
+ importer.sequential_import
+ end
- expect_next_instances_of(
- Gitlab::GithubImport::Importer::NoteAttachmentsImporter, 2, false, *importer_attrs
- ) do |note_attachments_importer|
- expect(note_attachments_importer).to receive(:execute)
+ it 'executes importer only for the merge request with an attachment' do
+ expect_next_instance_of(
+ Gitlab::GithubImport::Importer::NoteAttachmentsImporter,
+ have_attributes(record_db_id: mr_with_attachment.id),
+ project,
+ client
+ ) do |importer|
+ expect(importer).to receive(:execute)
end
importer.sequential_import
end
- context 'when merge request is already processed' do
- it "doesn't import this merge request attachments" do
- importer.mark_as_imported(merge_request_1)
+ context 'when flag is disabled' do
+ before do
+ stub_feature_flags(github_importer_attachments: false)
+ end
- expect(project.merge_requests).to receive(:id_not_in).with([merge_request_1.id.to_s]).and_call_original
- expect_next_instance_of(
- Gitlab::GithubImport::Importer::NoteAttachmentsImporter, *importer_attrs
- ) do |note_attachments_importer|
- expect(note_attachments_importer).to receive(:execute)
+ it 'executes importer for both merge requests' do
+ expect_next_instances_of(Gitlab::GithubImport::Importer::NoteAttachmentsImporter, 2) do |importer|
+ expect(importer).to receive(:execute)
end
importer.sequential_import
end
end
+
+ context 'when merge request has already been processed' do
+ before do
+ importer.mark_as_imported(mr_with_attachment)
+ end
+
+ it 'does not select merge requests that were processed' do
+ expect(project.merge_requests).to receive(:id_not_in).with([mr_with_attachment.id.to_s]).and_call_original
+
+ importer.sequential_import
+ end
+
+ it 'does not execute importer for the merge request with an attachment' do
+ expect(Gitlab::GithubImport::Importer::NoteAttachmentsImporter).not_to receive(:new)
+
+ importer.sequential_import
+ end
+ end
end
describe '#sidekiq_worker_class' do
diff --git a/spec/lib/gitlab/github_import/importer/attachments/notes_importer_spec.rb b/spec/lib/gitlab/github_import/importer/attachments/notes_importer_spec.rb
index 5b3ad032702..da0ee1ed0dd 100644
--- a/spec/lib/gitlab/github_import/importer/attachments/notes_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/attachments/notes_importer_spec.rb
@@ -10,30 +10,75 @@ RSpec.describe Gitlab::GithubImport::Importer::Attachments::NotesImporter, featu
let(:client) { instance_double(Gitlab::GithubImport::Client) }
describe '#sequential_import', :clean_gitlab_redis_cache do
- let_it_be(:note_1) { create(:note, project: project) }
- let_it_be(:note_2) { create(:note, project: project) }
- let_it_be(:system_note) { create(:note, :system, project: project) }
+ let_it_be(:note) { create(:note, project: project) }
- let(:importer_stub) { instance_double('Gitlab::GithubImport::Importer::NoteAttachmentsImporter') }
- let(:importer_attrs) { [instance_of(Gitlab::GithubImport::Representation::NoteText), project, client] }
+ let_it_be(:note_with_attachment) do
+ create(:note,
+ project: project,
+ note: "![image](https://user-images.githubusercontent.com/1/uuid-1.png)"
+ )
+ end
+
+ let_it_be(:system_note_with_attachment) do
+ create(:note,
+ :system,
+ project: project,
+ note: "![image](https://user-images.githubusercontent.com/1/uuid-1.png)"
+ )
+ end
- it 'imports each project user note' do
- expect(project.notes).to receive(:id_not_in).with([]).and_call_original
- expect(Gitlab::GithubImport::Importer::NoteAttachmentsImporter).to receive(:new)
- .with(*importer_attrs).twice.and_return(importer_stub)
- expect(importer_stub).to receive(:execute).twice
+ it 'selects only user notes, and selects only properties it needs' do
+ stubbed_collection = class_double(Note, each_batch: [])
+
+ expect(project.notes).to receive(:id_not_in).with([]).and_return(stubbed_collection)
+ expect(stubbed_collection).to receive(:user).and_return(stubbed_collection)
+ expect(stubbed_collection)
+ .to receive(:select).with(:id, :note, :system, :noteable_type)
+ .and_return(stubbed_collection)
importer.sequential_import
end
- context 'when note is already processed' do
- it "doesn't import this note" do
- importer.mark_as_imported(note_1)
+ it 'executes importer only for the note with an attachment' do
+ expect_next_instance_of(
+ Gitlab::GithubImport::Importer::NoteAttachmentsImporter,
+ have_attributes(record_db_id: note_with_attachment.id),
+ project,
+ client
+ ) do |importer|
+ expect(importer).to receive(:execute)
+ end
+
+ importer.sequential_import
+ end
+
+ context 'when flag is disabled' do
+ before do
+ stub_feature_flags(github_importer_attachments: false)
+ end
+
+ it 'executes importer for both user notes' do
+ expect_next_instances_of(Gitlab::GithubImport::Importer::NoteAttachmentsImporter, 2) do |importer|
+ expect(importer).to receive(:execute)
+ end
+
+ importer.sequential_import
+ end
+ end
+
+ context 'when note has already been processed' do
+ before do
+ importer.mark_as_imported(note_with_attachment)
+ end
+
+ it 'does not select notes that were processed' do
+ expect(project.notes).to receive(:id_not_in).with([note_with_attachment.id.to_s]).and_call_original
+
+ importer.sequential_import
+ end
- expect(project.notes).to receive(:id_not_in).with([note_1.id.to_s]).and_call_original
- expect(Gitlab::GithubImport::Importer::NoteAttachmentsImporter).to receive(:new)
- .with(*importer_attrs).once.and_return(importer_stub)
- expect(importer_stub).to receive(:execute).once
+ it 'does not execute importer for the note with an attachment' do
+ expect(Gitlab::GithubImport::Importer::NoteAttachmentsImporter).not_to receive(:new)
importer.sequential_import
end
diff --git a/spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb b/spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb
index c1c19c40afb..cf51760d966 100644
--- a/spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb
@@ -10,31 +10,64 @@ RSpec.describe Gitlab::GithubImport::Importer::Attachments::ReleasesImporter, fe
let(:client) { instance_double(Gitlab::GithubImport::Client) }
describe '#sequential_import', :clean_gitlab_redis_cache do
- let_it_be(:release_1) { create(:release, project: project) }
- let_it_be(:release_2) { create(:release, project: project) }
+ let_it_be(:release) { create(:release, project: project) }
- let(:importer_stub) { instance_double('Gitlab::GithubImport::Importer::NoteAttachmentsImporter') }
- let(:importer_attrs) { [instance_of(Gitlab::GithubImport::Representation::NoteText), project, client] }
+ let_it_be(:release_with_attachment) do
+ create(:release,
+ project: project,
+ description: "![image](https://user-images.githubusercontent.com/1/uuid-1.png)"
+ )
+ end
- it 'imports each project release' do
- expect(project.releases).to receive(:id_not_in).with([]).and_return(project.releases)
- expect(project.releases).to receive(:select).with(:id, :description, :tag).and_call_original
+ it 'selects both releases, and selects only properties it needs' do
+ stubbed_collection = class_double(Release, each_batch: [])
- expect(Gitlab::GithubImport::Importer::NoteAttachmentsImporter).to receive(:new)
- .with(*importer_attrs).twice.and_return(importer_stub)
- expect(importer_stub).to receive(:execute).twice
+ expect(project.releases).to receive(:id_not_in).with([]).and_return(stubbed_collection)
+ expect(stubbed_collection).to receive(:select).with(:id, :description, :tag).and_return(stubbed_collection)
importer.sequential_import
end
- context 'when note is already processed' do
- it "doesn't import this release" do
- importer.mark_as_imported(release_1)
+ it 'executes importer only for the release with an attachment' do
+ expect_next_instance_of(
+ Gitlab::GithubImport::Importer::NoteAttachmentsImporter,
+ have_attributes(record_db_id: release_with_attachment.id),
+ project,
+ client
+ ) do |importer|
+ expect(importer).to receive(:execute)
+ end
+
+ importer.sequential_import
+ end
+
+ context 'when flag is disabled' do
+ before do
+ stub_feature_flags(github_importer_attachments: false)
+ end
+
+ it 'executes importer for both releases' do
+ expect_next_instances_of(Gitlab::GithubImport::Importer::NoteAttachmentsImporter, 2) do |importer|
+ expect(importer).to receive(:execute)
+ end
+
+ importer.sequential_import
+ end
+ end
+
+ context 'when release has already been processed' do
+ before do
+ importer.mark_as_imported(release_with_attachment)
+ end
+
+ it 'does not select releases that were processed' do
+ expect(project.releases).to receive(:id_not_in).with([release_with_attachment.id.to_s]).and_call_original
+
+ importer.sequential_import
+ end
- expect(project.releases).to receive(:id_not_in).with([release_1.id.to_s]).and_call_original
- expect(Gitlab::GithubImport::Importer::NoteAttachmentsImporter).to receive(:new)
- .with(*importer_attrs).once.and_return(importer_stub)
- expect(importer_stub).to receive(:execute).once
+ it 'does not execute importer for the release with an attachment' do
+ expect(Gitlab::GithubImport::Importer::NoteAttachmentsImporter).not_to receive(:new)
importer.sequential_import
end
diff --git a/spec/lib/gitlab/github_import/importer/collaborators_importer_spec.rb b/spec/lib/gitlab/github_import/importer/collaborators_importer_spec.rb
index c1e9bed5681..d0d3e6c6da8 100644
--- a/spec/lib/gitlab/github_import/importer/collaborators_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/collaborators_importer_spec.rb
@@ -83,7 +83,7 @@ RSpec.describe Gitlab::GithubImport::Importer::CollaboratorsImporter, feature_ca
it 'imports each collaborator in parallel' do
expect(Gitlab::GithubImport::ImportCollaboratorWorker).to receive(:perform_in)
- .with(1, project.id, an_instance_of(Hash), an_instance_of(String))
+ .with(an_instance_of(Float), project.id, an_instance_of(Hash), an_instance_of(String))
waiter = importer.parallel_import
diff --git a/spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb b/spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb
index 1eb146ea958..ed74e978f16 100644
--- a/spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb
@@ -102,7 +102,7 @@ RSpec.describe Gitlab::GithubImport::Importer::DiffNotesImporter, feature_catego
.and_yield(github_comment)
expect(Gitlab::GithubImport::ImportDiffNoteWorker).to receive(:perform_in)
- .with(1, project.id, an_instance_of(Hash), an_instance_of(String))
+ .with(an_instance_of(Float), project.id, an_instance_of(Hash), an_instance_of(String))
waiter = importer.parallel_import
diff --git a/spec/lib/gitlab/github_import/importer/events/commented_spec.rb b/spec/lib/gitlab/github_import/importer/events/commented_spec.rb
new file mode 100644
index 00000000000..bd3bea87688
--- /dev/null
+++ b/spec/lib/gitlab/github_import/importer/events/commented_spec.rb
@@ -0,0 +1,69 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::GithubImport::Importer::Events::Commented, feature_category: :importers do
+ subject(:importer) { described_class.new(project, client) }
+
+ let_it_be(:project) { create(:project, :repository) }
+ let_it_be(:user) { create(:user) }
+
+ let(:client) { instance_double('Gitlab::GithubImport::Client') }
+ let(:issuable) { create(:issue, project: project) }
+
+ let(:issue_event) do
+ Gitlab::GithubImport::Representation::IssueEvent.new(
+ id: 1196850910,
+ actor: { id: user.id, login: user.username },
+ event: 'commented',
+ created_at: '2022-07-27T14:41:11Z',
+ updated_at: '2022-07-27T14:41:11Z',
+ body: 'This is my note',
+ issue: { number: issuable.iid, pull_request: issuable.is_a?(MergeRequest) }
+ )
+ end
+
+ let(:extended_events) { true }
+
+ before do
+ allow_next_instance_of(Gitlab::GithubImport::IssuableFinder) do |finder|
+ allow(finder).to receive(:database_id).and_return(issuable.id)
+ end
+ allow_next_instance_of(Gitlab::GithubImport::UserFinder) do |finder|
+ allow(finder).to receive(:find).with(user.id, user.username).and_return(user.id)
+ end
+ allow_next_instance_of(Gitlab::GithubImport::Settings) do |setting|
+ allow(setting).to receive(:extended_events?).and_return(extended_events)
+ end
+ end
+
+ shared_examples 'new note' do
+ it 'creates a note' do
+ expect { importer.execute(issue_event) }.to change { Note.count }.by(1)
+
+ expect(issuable.notes.last).to have_attributes(
+ note: 'This is my note',
+ author_id: user.id,
+ noteable_type: issuable.class.name.to_s
+ )
+ end
+
+ context 'when extended_events is disabled' do
+ let(:extended_events) { false }
+
+ it 'does not create a note' do
+ expect { importer.execute(issue_event) }.not_to change { Note.count }
+ end
+ end
+ end
+
+ context 'with Issue' do
+ it_behaves_like 'new note'
+ end
+
+ context 'with MergeRequest' do
+ let(:issuable) { create(:merge_request, source_project: project, target_project: project) }
+
+ it_behaves_like 'new note'
+ end
+end
diff --git a/spec/lib/gitlab/github_import/importer/events/merged_spec.rb b/spec/lib/gitlab/github_import/importer/events/merged_spec.rb
index 4ea62557dd6..30bc8aabe12 100644
--- a/spec/lib/gitlab/github_import/importer/events/merged_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/events/merged_spec.rb
@@ -11,6 +11,7 @@ RSpec.describe Gitlab::GithubImport::Importer::Events::Merged, feature_category:
let(:client) { instance_double('Gitlab::GithubImport::Client') }
let(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
let(:commit_id) { nil }
+ let(:extended_events) { false }
let(:issue_event) do
Gitlab::GithubImport::Representation::IssueEvent.from_json_hash(
@@ -32,6 +33,9 @@ RSpec.describe Gitlab::GithubImport::Importer::Events::Merged, feature_category:
allow_next_instance_of(Gitlab::GithubImport::UserFinder) do |finder|
allow(finder).to receive(:find).with(user.id, user.username).and_return(user.id)
end
+ allow_next_instance_of(Gitlab::GithubImport::Settings) do |setting|
+ allow(setting).to receive(:extended_events?).and_return(extended_events)
+ end
end
it 'creates expected event and state event' do
@@ -71,4 +75,27 @@ RSpec.describe Gitlab::GithubImport::Importer::Events::Merged, feature_category:
expect(state_event.source_commit).to eq commit_id[0..40]
end
end
+
+ describe 'extended events' do
+ context 'when using extended events' do
+ let(:extended_events) { true }
+
+ it 'creates a merged by note' do
+ expect { importer.execute(issue_event) }.to change { Note.count }.by(1)
+
+ last_note = merge_request.notes.last
+ expect(last_note.created_at).to eq(issue_event.created_at)
+ expect(last_note.author).to eq(project.owner)
+ expect(last_note.note).to eq("*Merged by: #{user.username} at #{issue_event.created_at}*")
+ end
+ end
+
+ context 'when not using extended events' do
+ let(:extended_events) { false }
+
+ it 'does not create a merged by note' do
+ expect { importer.execute(issue_event) }.not_to change { Note.count }
+ end
+ end
+ end
end
diff --git a/spec/lib/gitlab/github_import/importer/events/reviewed_spec.rb b/spec/lib/gitlab/github_import/importer/events/reviewed_spec.rb
new file mode 100644
index 00000000000..f60a9d65269
--- /dev/null
+++ b/spec/lib/gitlab/github_import/importer/events/reviewed_spec.rb
@@ -0,0 +1,85 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::GithubImport::Importer::Events::Reviewed, feature_category: :importers do
+ subject(:importer) { described_class.new(project, client) }
+
+ let_it_be(:project) { create(:project, :repository) }
+ let_it_be(:user) { create(:user) }
+
+ let(:client) { instance_double('Gitlab::GithubImport::Client') }
+ let(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
+ let(:extended_events) { true }
+
+ let(:issue_event) do
+ Gitlab::GithubImport::Representation::IssueEvent.new(
+ id: 1196850910,
+ actor: { id: user.id, login: user.username },
+ event: 'reviewed',
+ submitted_at: '2022-07-27T14:41:11Z',
+ body: 'This is my review',
+ state: state,
+ issue: { number: merge_request.iid, pull_request: true }
+ )
+ end
+
+ let(:state) { 'commented' }
+
+ before do
+ allow_next_instance_of(Gitlab::GithubImport::IssuableFinder) do |finder|
+ allow(finder).to receive(:database_id).and_return(merge_request.id)
+ end
+ allow_next_instance_of(Gitlab::GithubImport::UserFinder) do |finder|
+ allow(finder).to receive(:find).with(user.id, user.username).and_return(user.id)
+ end
+ allow_next_instance_of(Gitlab::GithubImport::Settings) do |setting|
+ allow(setting).to receive(:extended_events?).and_return(extended_events)
+ end
+ end
+
+ it 'creates a review note', :aggregate_failures do
+ expect { importer.execute(issue_event) }.to change { Note.count }.by(1)
+
+ last_note = merge_request.notes.last
+ expect(last_note.note).to include("This is my review")
+ expect(last_note.author).to eq(user)
+ expect(last_note.created_at).to eq(issue_event.submitted_at)
+ end
+
+ it 'does not create a reviewer for the Merge Request', :aggregate_failures do
+ expect { importer.execute(issue_event) }.not_to change { MergeRequestReviewer.count }
+ end
+
+ context 'when stage is approved' do
+ let(:state) { 'approved' }
+
+ it 'creates an approval for the Merge Request', :aggregate_failures do
+ expect { importer.execute(issue_event) }.to change { Approval.count }.by(1).and change { Note.count }.by(2)
+
+ expect(merge_request.approved_by_users.reload).to include(user)
+ expect(merge_request.approvals.last.created_at).to eq(issue_event.submitted_at)
+
+ note = merge_request.notes.where(system: false).last
+ expect(note.note).to include("This is my review")
+ expect(note.author).to eq(user)
+ expect(note.created_at).to eq(issue_event.submitted_at)
+
+ system_note = merge_request.notes.where(system: true).last
+ expect(system_note.note).to eq('approved this merge request')
+ expect(system_note.author).to eq(user)
+ expect(system_note.created_at).to eq(issue_event.submitted_at)
+ expect(system_note.system_note_metadata.action).to eq('approved')
+ end
+ end
+
+ context 'when extended events is false' do
+ let(:extended_events) { false }
+
+ it 'does nothing' do
+ expect { importer.execute(issue_event) }
+ .to not_change { Note.count }
+ .and not_change { Approval.count }
+ end
+ end
+end
diff --git a/spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb b/spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb
index 2389489e867..ffe6c237506 100644
--- a/spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb
@@ -115,6 +115,18 @@ RSpec.describe Gitlab::GithubImport::Importer::IssueEventImporter, :clean_gitlab
it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::Merged
end
+ context "when it's commented issue event" do
+ let(:event_name) { 'commented' }
+
+ it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::Commented
+ end
+
+ context "when it's reviewed issue event" do
+ let(:event_name) { 'reviewed' }
+
+ it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::Reviewed
+ end
+
context "when it's unknown issue event" do
let(:event_name) { 'fake' }
diff --git a/spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb b/spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb
index f7ee6fee6dc..7e926b3af46 100644
--- a/spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb
@@ -13,7 +13,7 @@ RSpec.describe Gitlab::GithubImport::Importer::IssueEventsImporter, feature_cate
struct = Struct.new(
:id, :node_id, :url, :actor, :event, :commit_id, :commit_url, :label, :rename, :milestone, :source,
:assignee, :assigner, :review_requester, :requested_reviewer, :issue, :created_at, :performed_via_github_app,
- keyword_init: true
+ :body, :updated_at, :submitted_at, :state, keyword_init: true
)
struct.new(id: rand(10), event: 'closed', created_at: '2022-04-26 18:30:53 UTC')
end
@@ -82,7 +82,7 @@ RSpec.describe Gitlab::GithubImport::Importer::IssueEventsImporter, feature_cate
allow(importer).to receive(:each_object_to_import).and_yield(issue_event)
expect(Gitlab::GithubImport::ImportIssueEventWorker).to receive(:perform_in).with(
- 1, project.id, an_instance_of(Hash), an_instance_of(String)
+ an_instance_of(Float), project.id, an_instance_of(Hash), an_instance_of(String)
)
waiter = importer.parallel_import
diff --git a/spec/lib/gitlab/github_import/importer/issues_importer_spec.rb b/spec/lib/gitlab/github_import/importer/issues_importer_spec.rb
index 9451d1dfc37..93466497ceb 100644
--- a/spec/lib/gitlab/github_import/importer/issues_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/issues_importer_spec.rb
@@ -96,7 +96,7 @@ RSpec.describe Gitlab::GithubImport::Importer::IssuesImporter, feature_category:
expect(Gitlab::GithubImport::ImportIssueWorker)
.to receive(:perform_in)
- .with(1, project.id, an_instance_of(Hash), an_instance_of(String))
+ .with(an_instance_of(Float), project.id, an_instance_of(Hash), an_instance_of(String))
waiter = importer.parallel_import
diff --git a/spec/lib/gitlab/github_import/importer/lfs_objects_importer_spec.rb b/spec/lib/gitlab/github_import/importer/lfs_objects_importer_spec.rb
index a5ec39b4177..eaf4d41df43 100644
--- a/spec/lib/gitlab/github_import/importer/lfs_objects_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/lfs_objects_importer_spec.rb
@@ -123,7 +123,7 @@ RSpec.describe Gitlab::GithubImport::Importer::LfsObjectsImporter, feature_categ
end
expect(Gitlab::GithubImport::ImportLfsObjectWorker).to receive(:perform_in)
- .with(1, project.id, an_instance_of(Hash), an_instance_of(String))
+ .with(an_instance_of(Float), project.id, an_instance_of(Hash), an_instance_of(String))
waiter = importer.parallel_import
diff --git a/spec/lib/gitlab/github_import/importer/notes_importer_spec.rb b/spec/lib/gitlab/github_import/importer/notes_importer_spec.rb
index 92d3071c826..722470cbc1d 100644
--- a/spec/lib/gitlab/github_import/importer/notes_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/notes_importer_spec.rb
@@ -88,7 +88,7 @@ RSpec.describe Gitlab::GithubImport::Importer::NotesImporter, feature_category:
.and_yield(github_comment)
expect(Gitlab::GithubImport::ImportNoteWorker).to receive(:perform_in)
- .with(1, project.id, an_instance_of(Hash), an_instance_of(String))
+ .with(an_instance_of(Float), project.id, an_instance_of(Hash), an_instance_of(String))
waiter = importer.parallel_import
diff --git a/spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb b/spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb
index b0892767fb3..b2fc1bea39e 100644
--- a/spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb
@@ -145,7 +145,7 @@ RSpec.describe Gitlab::GithubImport::Importer::ProtectedBranchesImporter, featur
it 'imports each protected branch in parallel' do
expect(Gitlab::GithubImport::ImportProtectedBranchWorker)
.to receive(:perform_in)
- .with(1, project.id, an_instance_of(Hash), an_instance_of(String))
+ .with(an_instance_of(Float), project.id, an_instance_of(Hash), an_instance_of(String))
expect(Gitlab::GithubImport::ObjectCounter)
.to receive(:increment).with(project, :protected_branch, :fetched)
@@ -166,7 +166,7 @@ RSpec.describe Gitlab::GithubImport::Importer::ProtectedBranchesImporter, featur
# when user has no admin rights on repo
let(:unknown_protection_branch) { branch_struct.new(name: 'development', protection: nil) }
- let(:page_counter) { instance_double(Gitlab::GithubImport::PageCounter) }
+ let(:page_counter) { instance_double(Gitlab::Import::PageCounter) }
before do
allow(client).to receive(:branches).with(project.import_source)
diff --git a/spec/lib/gitlab/github_import/importer/pull_requests/review_importer_spec.rb b/spec/lib/gitlab/github_import/importer/pull_requests/review_importer_spec.rb
index 6846c99fb63..1651774b5ce 100644
--- a/spec/lib/gitlab/github_import/importer/pull_requests/review_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/pull_requests/review_importer_spec.rb
@@ -30,6 +30,12 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequests::ReviewImporter,
expect(merge_request.reviewers).to contain_exactly(author)
end
+ context 'when add_reviewer option is false' do
+ it 'does not change Merge Request reviewers' do
+ expect { subject.execute(add_reviewer: false) }.not_to change { MergeRequestReviewer.count }
+ end
+ end
+
context 'when reviewer already exists' do
before do
create(
@@ -309,6 +315,7 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequests::ReviewImporter,
extra.reverse_merge(
author: { id: 999, login: 'author' },
merge_request_id: merge_request.id,
+ merge_request_iid: merge_request.iid,
review_type: type,
note: 'note',
submitted_at: submitted_at.to_s
diff --git a/spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb b/spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb
index 1977815e3a0..7ba88b4fa79 100644
--- a/spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb
@@ -116,10 +116,10 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequests::ReviewRequestsImpor
it 'schedule import for each merge request reviewers' do
expect(Gitlab::GithubImport::PullRequests::ImportReviewRequestWorker)
- .to receive(:perform_in).with(1, *expected_worker_payload.first)
+ .to receive(:perform_in).with(an_instance_of(Float), *expected_worker_payload.first)
expect(Gitlab::GithubImport::PullRequests::ImportReviewRequestWorker)
- .to receive(:perform_in).with(1, *expected_worker_payload.second)
+ .to receive(:perform_in).with(an_instance_of(Float), *expected_worker_payload.second)
expect(Gitlab::GithubImport::ObjectCounter)
.to receive(:increment).twice.with(project, :pull_request_review_request, :fetched)
@@ -137,7 +137,7 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequests::ReviewRequestsImpor
it "doesn't schedule import this merge request reviewers" do
expect(Gitlab::GithubImport::PullRequests::ImportReviewRequestWorker)
- .to receive(:perform_in).with(1, *expected_worker_payload.second)
+ .to receive(:perform_in).with(an_instance_of(Float), *expected_worker_payload.second)
expect(Gitlab::GithubImport::ObjectCounter)
.to receive(:increment).once.with(project, :pull_request_review_request, :fetched)
diff --git a/spec/lib/gitlab/github_import/importer/pull_requests/reviews_importer_spec.rb b/spec/lib/gitlab/github_import/importer/pull_requests/reviews_importer_spec.rb
index f5779f300b8..94248f60a0b 100644
--- a/spec/lib/gitlab/github_import/importer/pull_requests/reviews_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/pull_requests/reviews_importer_spec.rb
@@ -69,7 +69,7 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequests::ReviewsImporter, fe
end
it 'skips cached pages' do
- Gitlab::GithubImport::PageCounter
+ Gitlab::Import::PageCounter
.new(project, "merge_request/#{merge_request.id}/pull_request_reviews")
.set(2)
diff --git a/spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb b/spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb
index 1a0adbbe3a3..4c6b6a81d35 100644
--- a/spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb
@@ -106,7 +106,7 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequestsImporter, feature_cat
expect(Gitlab::GithubImport::ImportPullRequestWorker)
.to receive(:perform_in)
- .with(1, project.id, an_instance_of(Hash), an_instance_of(String))
+ .with(an_instance_of(Float), project.id, an_instance_of(Hash), an_instance_of(String))
waiter = importer.parallel_import
diff --git a/spec/lib/gitlab/github_import/importer/replay_events_importer_spec.rb b/spec/lib/gitlab/github_import/importer/replay_events_importer_spec.rb
new file mode 100644
index 00000000000..2b21232c642
--- /dev/null
+++ b/spec/lib/gitlab/github_import/importer/replay_events_importer_spec.rb
@@ -0,0 +1,139 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::GithubImport::Importer::ReplayEventsImporter, feature_category: :importers do
+ let_it_be(:association) { create(:merged_merge_request) }
+ let_it_be(:project) { association.project }
+ let(:user1) { build(:user1) }
+ let(:user2) { build(:user2) }
+ let(:user3) { build(:user3) }
+ let(:client) { instance_double(Gitlab::GithubImport::Client) }
+
+ let(:representation) do
+ Gitlab::GithubImport::Representation::ReplayEvent.new(
+ issuable_type: association.class.name.to_s, issuable_iid: association.iid
+ )
+ end
+
+ let(:events) do
+ [
+ {
+ requested_reviewer: { id: 1, login: 'user1' },
+ event: 'review_requested'
+ },
+ {
+ requested_reviewer: { id: 1, login: 'user1' },
+ event: 'review_request_removed'
+ },
+ {
+ requested_reviewer: { id: 2, login: 'user2' },
+ event: 'review_requested'
+ },
+ {
+ requested_reviewer: { id: 2, login: 'user2' },
+ event: 'review_request_removed'
+ },
+ {
+ requested_reviewer: { id: 2, login: 'user2' },
+ event: 'review_requested'
+ },
+ {
+ requested_reviewer: { id: 3, login: 'user3' },
+ event: 'review_requested'
+ }
+ ]
+ end
+
+ subject(:importer) { described_class.new(representation, project, client) }
+
+ describe '#execute' do
+ before do
+ representations = events.map { |e| Gitlab::GithubImport::Representation::IssueEvent.from_json_hash(e) }
+
+ allow_next_instance_of(Gitlab::GithubImport::EventsCache) do |events_cache|
+ allow(events_cache).to receive(:events).with(association).and_return(representations)
+ end
+ end
+
+ context 'when association is a MergeRequest' do
+ it 'imports reviewers' do
+ representation = instance_double(Gitlab::GithubImport::Representation::PullRequests::ReviewRequests)
+
+ expect(Gitlab::GithubImport::Representation::PullRequests::ReviewRequests).to receive(:from_json_hash).with(
+ merge_request_id: association.id,
+ merge_request_iid: association.iid,
+ users: [
+ { id: 2, login: 'user2' },
+ { id: 3, login: 'user3' }
+ ]
+ ).and_return(representation)
+
+ expect_next_instance_of(
+ Gitlab::GithubImport::Importer::PullRequests::ReviewRequestImporter, anything, project, client
+ ) do |review_impoter|
+ expect(review_impoter).to receive(:execute)
+ end
+
+ importer.execute
+ end
+
+ context 'when reviewer is a team' do
+ let(:events) do
+ [
+ {
+ event: 'review_requested',
+ requested_team: { name: 'backend-team' }
+ },
+ {
+ event: 'review_requested',
+ requested_team: { name: 'frontend-team' }
+ },
+ {
+ event: 'review_request_removed',
+ requested_team: { name: 'frontend-team' }
+ }
+ ]
+ end
+
+ it 'ignores the events and do not assign the reviewers' do
+ expect(Gitlab::GithubImport::Representation::PullRequests::ReviewRequests).to receive(:from_json_hash).with(
+ merge_request_id: association.id,
+ merge_request_iid: association.iid,
+ users: []
+ ).and_call_original
+
+ importer.execute
+ end
+ end
+ end
+
+ context 'when association is not found' do
+ let(:representation) do
+ Gitlab::GithubImport::Representation::ReplayEvent.new(
+ issuable_type: association.class.name.to_s, issuable_iid: -1
+ )
+ end
+
+ it 'does not read events' do
+ expect(Gitlab::GithubImport::EventsCache).not_to receive(:new)
+
+ importer.execute
+ end
+ end
+
+ context 'when issueable type is not supported' do
+ let(:representation) do
+ Gitlab::GithubImport::Representation::ReplayEvent.new(
+ issuable_type: 'Issue', issuable_iid: association.iid
+ )
+ end
+
+ it 'does not read events' do
+ expect(Gitlab::GithubImport::EventsCache).not_to receive(:new)
+
+ importer.execute
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb b/spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb
index 6fe0494d7cd..d2e63eba954 100644
--- a/spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb
@@ -53,7 +53,7 @@ RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointDiffNotesImporter d
end
it 'skips cached pages' do
- Gitlab::GithubImport::PageCounter
+ Gitlab::Import::PageCounter
.new(project, "merge_request/#{merge_request.id}/pull_request_comments")
.set(2)
diff --git a/spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb b/spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb
index 91f89f0779c..19142b94519 100644
--- a/spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter, feature_category: :importers do
- let(:client) { double }
+ let(:client) { Gitlab::GithubImport::Client.new('token') }
- let_it_be(:project) { create(:project, :import_started, import_source: 'http://somegithub.com') }
+ let_it_be(:project) { create(:project, :import_started, import_source: 'foo/bar') }
let!(:issuable) { create(:issue, project: project) }
@@ -88,23 +88,32 @@ RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter
describe '#each_object_to_import', :clean_gitlab_redis_cache do
let(:issue_event) do
struct = Struct.new(:id, :event, :created_at, :issue, keyword_init: true)
- struct.new(id: 1, event: 'closed', created_at: '2022-04-26 18:30:53 UTC')
+ struct.new(id: 1, event: event_name, created_at: '2022-04-26 18:30:53 UTC')
end
+ let(:event_name) { 'closed' }
+
+ let(:page_events) { [issue_event] }
+
let(:page) do
instance_double(
Gitlab::GithubImport::Client::Page,
- number: 1, objects: [issue_event]
+ number: 1, objects: page_events
)
end
- let(:page_counter) { instance_double(Gitlab::GithubImport::PageCounter) }
+ let(:page_counter) { instance_double(Gitlab::Import::PageCounter) }
+
+ let(:extended_events) { true }
before do
allow(Gitlab::Redis::SharedState).to receive(:with).and_return('OK')
allow(client).to receive(:each_page).once.with(:issue_timeline,
project.import_source, issuable.iid, { state: 'all', sort: 'created', direction: 'asc', page: 1 }
).and_yield(page)
+ allow_next_instance_of(Gitlab::GithubImport::Settings) do |setting|
+ allow(setting).to receive(:extended_events?).and_return(extended_events)
+ end
end
context 'with issues' do
@@ -152,7 +161,7 @@ RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter
end
it 'triggers page number increment' do
- expect(Gitlab::GithubImport::PageCounter)
+ expect(Gitlab::Import::PageCounter)
.to receive(:new).with(project, 'issues/1/issue_timeline')
.and_return(page_counter)
expect(page_counter).to receive(:current).and_return(1)
@@ -166,7 +175,7 @@ RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter
context 'when page is already processed' do
before do
- page_counter = Gitlab::GithubImport::PageCounter.new(
+ page_counter = Gitlab::Import::PageCounter.new(
project, subject.page_counter_id(issuable)
)
page_counter.set(page.number)
@@ -190,10 +199,7 @@ RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter
end
context 'when event is not supported' do
- let(:issue_event) do
- struct = Struct.new(:id, :event, :created_at, :issue, keyword_init: true)
- struct.new(id: 1, event: 'not_supported_event', created_at: '2022-04-26 18:30:53 UTC')
- end
+ let(:event_name) { 'not_supported_event' }
it "doesn't process this event" do
counter = 0
@@ -201,5 +207,188 @@ RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter
expect(counter).to eq 0
end
end
+
+ describe 'increment object counter' do
+ it 'increments counter' do
+ expect(Gitlab::GithubImport::ObjectCounter).to receive(:increment).with(project, :issue_event, :fetched)
+
+ subject.each_object_to_import { |event| event }
+ end
+
+ context 'when event should increment a mapped fetched counter' do
+ before do
+ stub_const('Gitlab::GithubImport::Importer::IssueEventImporter::EVENT_COUNTER_MAP', {
+ 'closed' => 'custom_type'
+ })
+ end
+
+ it 'increments the mapped fetched counter' do
+ expect(Gitlab::GithubImport::ObjectCounter).to receive(:increment).with(project, 'custom_type', :fetched)
+
+ subject.each_object_to_import { |event| event }
+ end
+
+ context 'when extended_events is disabled' do
+ let(:extended_events) { false }
+
+ it 'increments the issue_event fetched counter' do
+ expect(Gitlab::GithubImport::ObjectCounter).to receive(:increment).with(project, :issue_event, :fetched)
+
+ subject.each_object_to_import { |event| event }
+ end
+ end
+ end
+ end
+
+ describe 'save events' do
+ shared_examples 'saves event' do
+ it 'saves event' do
+ expect(Gitlab::GithubImport::Representation::IssueEvent).to receive(:from_api_response).with(issue_event.to_h)
+ .and_call_original
+
+ expect_next_instance_of(Gitlab::GithubImport::EventsCache) do |events_cache|
+ expect(events_cache).to receive(:add).with(
+ issuable,
+ an_instance_of(Gitlab::GithubImport::Representation::IssueEvent)
+ )
+ end
+
+ subject.each_object_to_import { |event| event }
+ end
+ end
+
+ context 'when event is review_requested' do
+ let(:event_name) { 'review_requested' }
+
+ it_behaves_like 'saves event'
+ end
+
+ context 'when event is review_request_removed' do
+ let(:event_name) { 'review_request_removed' }
+
+ it_behaves_like 'saves event'
+ end
+
+ context 'when event is closed' do
+ let(:event_name) { 'closed' }
+
+ it 'does not save event' do
+ expect_next_instance_of(Gitlab::GithubImport::EventsCache) do |events_cache|
+ expect(events_cache).not_to receive(:add)
+ end
+
+ subject.each_object_to_import { |event| event }
+ end
+ end
+
+ context 'when extended_events is disabled' do
+ let(:event_name) { 'review_requested' }
+ let(:extended_events) { false }
+
+ it 'does not save event' do
+ expect(Gitlab::GithubImport::EventsCache).not_to receive(:new)
+
+ subject.each_object_to_import { |event| event }
+ end
+ end
+ end
+
+ describe 'after batch processed' do
+ context 'when events should be replayed' do
+ let(:event_name) { 'review_requested' }
+
+ it 'enqueues worker to replay events' do
+ allow(Gitlab::JobWaiter).to receive(:generate_key).and_return('job_waiter_key')
+
+ expect(Gitlab::GithubImport::ReplayEventsWorker).to receive(:perform_async)
+ .with(
+ project.id,
+ { 'issuable_type' => issuable.class.name.to_s, 'issuable_iid' => issuable.iid },
+ 'job_waiter_key'
+ )
+
+ subject.each_object_to_import { |event| event }
+ end
+ end
+
+ context 'when events are not relevant' do
+ let(:event_name) { 'closed' }
+
+ it 'does not replay events' do
+ expect(Gitlab::GithubImport::ReplayEventsWorker).not_to receive(:perform_async)
+
+ subject.each_object_to_import { |event| event }
+ end
+ end
+
+ context 'when extended_events is disabled' do
+ let(:extended_events) { false }
+
+ it 'does not replay events' do
+ expect(Gitlab::GithubImport::ReplayEventsWorker).not_to receive(:perform_async)
+
+ subject.each_object_to_import { |event| event }
+ end
+ end
+ end
+ end
+
+ describe '#execute', :clean_gitlab_redis_cache do
+ let(:extended_events) { false }
+
+ before do
+ allow_next_instance_of(Gitlab::GithubImport::Settings) do |setting|
+ allow(setting).to receive(:extended_events?).and_return(extended_events)
+ end
+
+ stub_request(:get, 'https://api.github.com/rate_limit')
+ .to_return(status: 200, headers: { 'X-RateLimit-Limit' => 5000, 'X-RateLimit-Remaining' => 5000 })
+
+ events = [
+ {
+ id: 1,
+ event: 'review_requested',
+ created_at: '2022-04-26 18:30:53 UTC',
+ issue: {
+ number: issuable.iid,
+ pull_request: true
+ }
+ }
+ ]
+
+ endpoint = 'https://api.github.com/repos/foo/bar/issues/1/timeline' \
+ '?direction=asc&page=1&per_page=100&sort=created&state=all'
+
+ stub_request(:get, endpoint)
+ .to_return(status: 200, body: events.to_json, headers: { 'Content-Type' => 'application/json' })
+ end
+
+ context 'when extended_events is disabled' do
+ it 'enqueues importer worker' do
+ expect { subject.execute }.to change { Gitlab::GithubImport::ReplayEventsWorker.jobs.size }.by(0)
+ .and change { Gitlab::GithubImport::ImportIssueEventWorker.jobs.size }.by(1)
+ end
+
+ it 'returns job waiter with the correct remaining jobs count' do
+ job_waiter = subject.execute
+
+ expect(job_waiter.jobs_remaining).to eq(1)
+ end
+ end
+
+ context 'when extended_events is enabled' do
+ let(:extended_events) { true }
+
+ it 'enqueues importer worker and replay worker' do
+ expect { subject.execute }.to change { Gitlab::GithubImport::ReplayEventsWorker.jobs.size }.by(1)
+ .and change { Gitlab::GithubImport::ImportIssueEventWorker.jobs.size }.by(1)
+ end
+
+ it 'returns job waiter with the correct remaining jobs count' do
+ job_waiter = subject.execute
+
+ expect(job_waiter.jobs_remaining).to eq(2)
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb b/spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb
index 88613244c8b..c0f0d86d625 100644
--- a/spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb
@@ -52,7 +52,7 @@ RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointIssueNotesImporter
end
it 'skips cached pages' do
- Gitlab::GithubImport::PageCounter
+ Gitlab::Import::PageCounter
.new(project, "issue/#{issue.id}/issue_comments")
.set(2)
diff --git a/spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb b/spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb
index 601cd7a8f15..2d981a3d14f 100644
--- a/spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb
@@ -53,7 +53,7 @@ RSpec.describe Gitlab::GithubImport::Importer::SingleEndpointMergeRequestNotesIm
end
it 'skips cached pages' do
- Gitlab::GithubImport::PageCounter
+ Gitlab::Import::PageCounter
.new(project, "merge_request/#{merge_request.id}/issue_comments")
.set(2)
diff --git a/spec/lib/gitlab/github_import/markdown_text_spec.rb b/spec/lib/gitlab/github_import/markdown_text_spec.rb
index 3f771970588..ff3821dedec 100644
--- a/spec/lib/gitlab/github_import/markdown_text_spec.rb
+++ b/spec/lib/gitlab/github_import/markdown_text_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::GithubImport::MarkdownText do
+RSpec.describe Gitlab::GithubImport::MarkdownText, feature_category: :importers do
describe '.format' do
it 'formats the text' do
author = double(:author, login: 'Alice')
@@ -103,6 +103,10 @@ RSpec.describe Gitlab::GithubImport::MarkdownText do
"https://github.com/nickname/public-test-repo/files/3/git-cheat-sheet.#{doc_extension}"
)
end
+
+ it 'returns an empty array when passed nil' do
+ expect(described_class.fetch_attachments(nil)).to be_empty
+ end
end
describe '#to_s' do
diff --git a/spec/lib/gitlab/github_import/parallel_scheduling_spec.rb b/spec/lib/gitlab/github_import/parallel_scheduling_spec.rb
index 3188206de5b..2418c2e08af 100644
--- a/spec/lib/gitlab/github_import/parallel_scheduling_spec.rb
+++ b/spec/lib/gitlab/github_import/parallel_scheduling_spec.rb
@@ -279,26 +279,53 @@ RSpec.describe Gitlab::GithubImport::ParallelScheduling, feature_category: :impo
allow(importer).to receive(:representation_class).and_return(repr_class)
allow(importer).to receive(:sidekiq_worker_class).and_return(worker_class)
allow(repr_class).to receive(:from_api_response).with(object, {})
- .and_return({ title: 'One' }, { title: 'Two' }, { title: 'Three' })
+ .and_return({ title: 'One' }, { title: 'Two' }, { title: 'Three' }, { title: 'Four' })
end
it 'imports data in parallel with delays respecting parallel_import_batch definition and return job waiter' do
- allow(::Gitlab::JobWaiter).to receive(:generate_key).and_return('waiter-key')
- allow(importer).to receive(:parallel_import_batch).and_return({ size: 2, delay: 1.minute })
-
- expect(importer).to receive(:each_object_to_import)
- .and_yield(object).and_yield(object).and_yield(object)
- expect(worker_class).to receive(:perform_in)
- .with(1, project.id, { 'title' => 'One' }, 'waiter-key').ordered
- expect(worker_class).to receive(:perform_in)
- .with(1, project.id, { 'title' => 'Two' }, 'waiter-key').ordered
- expect(worker_class).to receive(:perform_in)
- .with(61, project.id, { 'title' => 'Three' }, 'waiter-key').ordered
-
- job_waiter = importer.parallel_import
-
- expect(job_waiter.key).to eq('waiter-key')
- expect(job_waiter.jobs_remaining).to eq(3)
+ freeze_time do
+ allow(::Gitlab::JobWaiter).to receive(:generate_key).and_return('waiter-key')
+ allow(importer).to receive(:parallel_import_batch).and_return({ size: 2, delay: 1.minute })
+
+ expect(importer).to receive(:each_object_to_import)
+ .and_yield(object).and_yield(object).and_yield(object).and_yield(object)
+ expect(worker_class).to receive(:perform_in)
+ .with(1.0, project.id, { 'title' => 'One' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(31.0, project.id, { 'title' => 'Two' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(61.0, project.id, { 'title' => 'Three' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(91.0, project.id, { 'title' => 'Four' }, 'waiter-key').ordered
+
+ job_waiter = importer.parallel_import
+
+ expect(job_waiter.key).to eq('waiter-key')
+ expect(job_waiter.jobs_remaining).to eq(4)
+ end
+ end
+
+ context 'when job is running for a long time' do
+ it 'deducts the job runtime from the delay' do
+ freeze_time do
+ allow(::Gitlab::JobWaiter).to receive(:generate_key).and_return('waiter-key')
+ allow(importer).to receive(:parallel_import_batch).and_return({ size: 2, delay: 1.minute })
+ allow(importer).to receive(:job_started_at).and_return(45.seconds.ago)
+ allow(importer).to receive(:each_object_to_import)
+ .and_yield(object).and_yield(object).and_yield(object).and_yield(object)
+
+ expect(worker_class).to receive(:perform_in)
+ .with(1.0, project.id, { 'title' => 'One' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(1.0, project.id, { 'title' => 'Two' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(16.0, project.id, { 'title' => 'Three' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(46.0, project.id, { 'title' => 'Four' }, 'waiter-key').ordered
+
+ importer.parallel_import
+ end
+ end
end
context 'when job restarts due to API rate limit or Sidekiq interruption' do
@@ -313,21 +340,23 @@ RSpec.describe Gitlab::GithubImport::ParallelScheduling, feature_category: :impo
end
it "restores job waiter's key and jobs_remaining" do
- allow(importer).to receive(:parallel_import_batch).and_return({ size: 1, delay: 1.minute })
+ freeze_time do
+ allow(importer).to receive(:parallel_import_batch).and_return({ size: 1, delay: 1.minute })
- expect(importer).to receive(:each_object_to_import).and_yield(object).and_yield(object).and_yield(object)
+ expect(importer).to receive(:each_object_to_import).and_yield(object).and_yield(object).and_yield(object)
- expect(worker_class).to receive(:perform_in)
- .with(1, project.id, { 'title' => 'One' }, 'waiter-key').ordered
- expect(worker_class).to receive(:perform_in)
- .with(61, project.id, { 'title' => 'Two' }, 'waiter-key').ordered
- expect(worker_class).to receive(:perform_in)
- .with(121, project.id, { 'title' => 'Three' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(1.0, project.id, { 'title' => 'One' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(61.0, project.id, { 'title' => 'Two' }, 'waiter-key').ordered
+ expect(worker_class).to receive(:perform_in)
+ .with(121.0, project.id, { 'title' => 'Three' }, 'waiter-key').ordered
- job_waiter = importer.parallel_import
+ job_waiter = importer.parallel_import
- expect(job_waiter.key).to eq('waiter-key')
- expect(job_waiter.jobs_remaining).to eq(6)
+ expect(job_waiter.key).to eq('waiter-key')
+ expect(job_waiter.jobs_remaining).to eq(6)
+ end
end
end
end
diff --git a/spec/lib/gitlab/github_import/representation/issue_event_spec.rb b/spec/lib/gitlab/github_import/representation/issue_event_spec.rb
index 6620dee0fd0..de0509c3e5e 100644
--- a/spec/lib/gitlab/github_import/representation/issue_event_spec.rb
+++ b/spec/lib/gitlab/github_import/representation/issue_event_spec.rb
@@ -168,8 +168,8 @@ RSpec.describe Gitlab::GithubImport::Representation::IssueEvent do
describe '.from_api_response' do
let(:response) do
event_resource = Struct.new(
- :id, :node_id, :url, :actor, :event, :commit_id, :commit_url, :label, :rename, :milestone,
- :source, :assignee, :requested_reviewer, :review_requester, :issue, :created_at,
+ :id, :node_id, :url, :actor, :event, :commit_id, :commit_url, :label, :rename, :milestone, :state, :body,
+ :source, :assignee, :requested_reviewer, :review_requester, :issue, :created_at, :updated_at, :submitted_at,
:performed_via_github_app,
keyword_init: true
)
diff --git a/spec/lib/gitlab/github_import/representation/note_text_spec.rb b/spec/lib/gitlab/github_import/representation/note_text_spec.rb
index 7aa458a1c33..b1ca1512855 100644
--- a/spec/lib/gitlab/github_import/representation/note_text_spec.rb
+++ b/spec/lib/gitlab/github_import/representation/note_text_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::GithubImport::Representation::NoteText do
+RSpec.describe Gitlab::GithubImport::Representation::NoteText, feature_category: :importers do
shared_examples 'a Note text data' do |match_record_type|
it 'returns an instance of NoteText' do
expect(representation).to be_an_instance_of(described_class)
@@ -153,4 +153,36 @@ RSpec.describe Gitlab::GithubImport::Representation::NoteText do
end
end
end
+
+ describe '#has_attachments?' do
+ subject { described_class.new({ text: text }).has_attachments? }
+
+ context 'when text has attachments' do
+ let(:text) { 'See ![image](https://user-images.githubusercontent.com/1/uuid-1.png) for details' }
+
+ it { is_expected.to eq(true) }
+ end
+
+ context 'when text does not have attachments' do
+ let(:text) { 'Some text here' }
+
+ it { is_expected.to eq(false) }
+ end
+ end
+
+ describe '#attachments' do
+ subject { described_class.new({ text: text }).attachments }
+
+ context 'when text has attachments' do
+ let(:text) { 'See ![image](https://user-images.githubusercontent.com/1/uuid-1.png) for details' }
+
+ it { is_expected.to contain_exactly(instance_of(Gitlab::GithubImport::Markdown::Attachment)) }
+ end
+
+ context 'when text does not have attachments' do
+ let(:text) { 'Some text here' }
+
+ it { is_expected.to be_empty }
+ end
+ end
end
diff --git a/spec/lib/gitlab/github_import/representation/replay_event_spec.rb b/spec/lib/gitlab/github_import/representation/replay_event_spec.rb
new file mode 100644
index 00000000000..1afefb76c6a
--- /dev/null
+++ b/spec/lib/gitlab/github_import/representation/replay_event_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'fast_spec_helper'
+
+RSpec.describe Gitlab::GithubImport::Representation::ReplayEvent, feature_category: :importers do
+ describe '.from_json_hash' do
+ it 'returns an instance of ReplayEvent' do
+ representation = described_class.from_json_hash(issuable_iid: 1, issuable_type: 'MergeRequest')
+
+ expect(representation).to be_an_instance_of(described_class)
+ end
+ end
+
+ describe '#github_identifiers' do
+ it 'returns a hash with needed identifiers' do
+ representation = described_class.new(issuable_type: 'MergeRequest', issuable_iid: 1)
+
+ expect(representation.github_identifiers).to eq({
+ issuable_type: 'MergeRequest',
+ issuable_iid: 1
+ })
+ end
+ end
+end
diff --git a/spec/lib/gitlab/github_import/settings_spec.rb b/spec/lib/gitlab/github_import/settings_spec.rb
index ea1526ca25f..d268f3a8650 100644
--- a/spec/lib/gitlab/github_import/settings_spec.rb
+++ b/spec/lib/gitlab/github_import/settings_spec.rb
@@ -21,12 +21,6 @@ RSpec.describe Gitlab::GithubImport::Settings, feature_category: :importers do
stages = described_class::OPTIONAL_STAGES
[
{
- name: 'single_endpoint_issue_events_import',
- label: stages[:single_endpoint_issue_events_import][:label],
- selected: false,
- details: stages[:single_endpoint_issue_events_import][:details]
- },
- {
name: 'single_endpoint_notes_import',
label: stages[:single_endpoint_notes_import][:label],
selected: false,
@@ -48,7 +42,31 @@ RSpec.describe Gitlab::GithubImport::Settings, feature_category: :importers do
end
it 'returns stages list as array' do
- expect(described_class.stages_array).to match_array(expected_list)
+ expect(described_class.stages_array(project.owner)).to match_array(expected_list)
+ end
+
+ context 'when `github_import_extended_events` feature flag is disabled' do
+ let(:expected_list_with_deprecated_options) do
+ stages = described_class::OPTIONAL_STAGES
+
+ expected_list.concat(
+ [
+ {
+ name: 'single_endpoint_issue_events_import',
+ label: stages[:single_endpoint_issue_events_import][:label],
+ selected: false,
+ details: stages[:single_endpoint_issue_events_import][:details]
+ }
+ ])
+ end
+
+ before do
+ stub_feature_flags(github_import_extended_events: false)
+ end
+
+ it 'returns stages list as array' do
+ expect(described_class.stages_array(project.owner)).to match_array(expected_list_with_deprecated_options)
+ end
end
end
@@ -99,4 +117,24 @@ RSpec.describe Gitlab::GithubImport::Settings, feature_category: :importers do
expect(settings.disabled?(:collaborators_import)).to eq true
end
end
+
+ describe '#extended_events?' do
+ it 'when extended_events is set to true' do
+ project.build_or_assign_import_data(data: { extended_events: true })
+
+ expect(settings.extended_events?).to eq(true)
+ end
+
+ it 'when extended_events is set to false' do
+ project.build_or_assign_import_data(data: { extended_events: false })
+
+ expect(settings.extended_events?).to eq(false)
+ end
+
+ it 'when extended_events is not present' do
+ project.build_or_assign_import_data(data: {})
+
+ expect(settings.extended_events?).to eq(false)
+ end
+ end
end
diff --git a/spec/lib/gitlab/github_import/user_finder_spec.rb b/spec/lib/gitlab/github_import/user_finder_spec.rb
index a394b4eba13..998fa8b2c9f 100644
--- a/spec/lib/gitlab/github_import/user_finder_spec.rb
+++ b/spec/lib/gitlab/github_import/user_finder_spec.rb
@@ -211,6 +211,7 @@ RSpec.describe Gitlab::GithubImport::UserFinder, :clean_gitlab_redis_cache, feat
let(:username) { 'kittens' }
let(:user) { {} }
let(:etag) { 'etag' }
+ let(:lease_name) { "gitlab:github_import:user_finder:#{project.id}" }
let(:cache_key) { described_class::EMAIL_FOR_USERNAME_CACHE_KEY % username }
let(:etag_cache_key) { described_class::USERNAME_ETAG_CACHE_KEY % username }
let(:email_fetched_for_project_key) do
@@ -305,6 +306,9 @@ RSpec.describe Gitlab::GithubImport::UserFinder, :clean_gitlab_redis_cache, feat
it 'makes an API call' do
expect(client).to receive(:user).with(username, { headers: {} }).and_return({ email: email }).once
+ expect(finder).to receive(:in_lock).with(
+ lease_name, ttl: 3.minutes, sleep_sec: 1.second, retries: 30
+ ).and_call_original
email_for_github_username
end
@@ -315,6 +319,14 @@ RSpec.describe Gitlab::GithubImport::UserFinder, :clean_gitlab_redis_cache, feat
end
it_behaves_like 'returns and caches the email'
+
+ context 'when retried' do
+ before do
+ allow(finder).to receive(:in_lock).and_yield(true)
+ end
+
+ it_behaves_like 'returns and caches the email'
+ end
end
context 'if the response does not contain an email' do
@@ -344,6 +356,9 @@ RSpec.describe Gitlab::GithubImport::UserFinder, :clean_gitlab_redis_cache, feat
it 'makes a non-rate-limited API call' do
expect(client).to receive(:user).with(username, { headers: { 'If-None-Match' => etag } }).once
+ expect(finder).to receive(:in_lock).with(
+ lease_name, ttl: 3.minutes, sleep_sec: 1.second, retries: 30
+ ).and_call_original
email_for_github_username
end
@@ -413,6 +428,9 @@ RSpec.describe Gitlab::GithubImport::UserFinder, :clean_gitlab_redis_cache, feat
it 'makes a non-rate-limited API call' do
expect(client).to receive(:user).with(username, { headers: { 'If-None-Match' => etag } }).once
+ expect(finder).to receive(:in_lock).with(
+ lease_name, ttl: 3.minutes, sleep_sec: 1.second, retries: 30
+ ).and_call_original
email_for_github_username
end
@@ -443,6 +461,30 @@ RSpec.describe Gitlab::GithubImport::UserFinder, :clean_gitlab_redis_cache, feat
it_behaves_like 'a user resource not found on GitHub'
end
+
+ context 'if the cached etag is nil' do
+ context 'when lock was executed by another process and an email was fetched' do
+ it 'does not fetch user detail' do
+ expect(finder).to receive(:read_email_from_cache).ordered.and_return('')
+ expect(finder).to receive(:read_email_from_cache).ordered.and_return(email)
+ expect(finder).to receive(:in_lock).and_yield(true)
+ expect(client).not_to receive(:user)
+
+ email_for_github_username
+ end
+ end
+
+ context 'when lock was executed by another process and an email in cache is still blank' do
+ it 'fetch user detail' do
+ expect(finder).to receive(:read_email_from_cache).ordered.and_return('')
+ expect(finder).to receive(:read_email_from_cache).ordered.and_return('')
+ expect(finder).to receive(:in_lock).and_yield(true)
+ expect(client).to receive(:user).with(username, { headers: {} }).and_return({ email: email }).once
+
+ email_for_github_username
+ end
+ end
+ end
end
context 'if the email has been checked for the project' do
diff --git a/spec/lib/gitlab/gon_helper_spec.rb b/spec/lib/gitlab/gon_helper_spec.rb
index e4684597ddf..d9dcae3cdc7 100644
--- a/spec/lib/gitlab/gon_helper_spec.rb
+++ b/spec/lib/gitlab/gon_helper_spec.rb
@@ -205,7 +205,6 @@ RSpec.describe Gitlab::GonHelper do
context 'when feature flag is false' do
before do
- stub_feature_flags(browsersdk_tracking: false)
stub_feature_flags(gl_analytics_tracking: false)
end
diff --git a/spec/lib/gitlab/highlight_spec.rb b/spec/lib/gitlab/highlight_spec.rb
index ef3765e479f..cd596555107 100644
--- a/spec/lib/gitlab/highlight_spec.rb
+++ b/spec/lib/gitlab/highlight_spec.rb
@@ -116,7 +116,7 @@ RSpec.describe Gitlab::Highlight do
it 'links dependencies via DependencyLinker' do
expect(Gitlab::DependencyLinker).to receive(:link)
- .with('file.name', 'Contents', anything).and_call_original
+ .with('file.name', 'Contents', anything, used_on: :blob).and_call_original
described_class.highlight('file.name', 'Contents')
end
@@ -133,5 +133,32 @@ RSpec.describe Gitlab::Highlight do
highlight
end
end
+
+ it 'increments usage counter', :prometheus do
+ described_class.highlight(file_name, content)
+
+ gitlab_highlight_usage_counter = Gitlab::Metrics.registry.get(:gitlab_highlight_usage)
+
+ expect(gitlab_highlight_usage_counter.get(used_on: :blob)).to eq(1)
+ expect(gitlab_highlight_usage_counter.get(used_on: :diff)).to eq(0)
+ end
+
+ context 'when used_on is specified' do
+ it 'increments usage counter', :prometheus do
+ described_class.highlight(file_name, content, used_on: :diff)
+
+ gitlab_highlight_usage_counter = Gitlab::Metrics.registry.get(:gitlab_highlight_usage)
+
+ expect(gitlab_highlight_usage_counter.get(used_on: :diff)).to eq(1)
+ expect(gitlab_highlight_usage_counter.get(used_on: :blob)).to eq(0)
+ end
+
+ it 'links dependencies via DependencyLinker' do
+ expect(Gitlab::DependencyLinker).to receive(:link)
+ .with(file_name, content, anything, used_on: :diff).and_call_original
+
+ described_class.highlight(file_name, content, used_on: :diff)
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/http_spec.rb b/spec/lib/gitlab/http_spec.rb
index 3fc486a8984..c23f4ea8ffa 100644
--- a/spec/lib/gitlab/http_spec.rb
+++ b/spec/lib/gitlab/http_spec.rb
@@ -55,8 +55,19 @@ RSpec.describe Gitlab::HTTP, feature_category: :shared do
end
context 'when there is a DB call in the concurrent thread' do
- it 'raises Gitlab::Utils::ConcurrentRubyThreadIsUsedError error',
- quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/432145' do
+ before do
+ # Simulating Sentry is active and configured.
+ # More info: https://gitlab.com/gitlab-org/gitlab/-/issues/432145#note_1671305713
+ stub_sentry_settings
+ allow(Gitlab::ErrorTracking).to receive(:sentry_configurable?).and_return(true)
+ Gitlab::ErrorTracking.configure
+ end
+
+ after do
+ clear_sentry_settings
+ end
+
+ it 'raises Gitlab::Utils::ConcurrentRubyThreadIsUsedError error' do
stub_request(:get, 'http://example.org').to_return(status: 200, body: 'hello world')
result = described_class.get('http://example.org', async: true) do |_fragment|
@@ -104,40 +115,4 @@ RSpec.describe Gitlab::HTTP, feature_category: :shared do
end
end
end
-
- context 'when the FF use_gitlab_http_v2 is disabled' do
- before do
- stub_feature_flags(use_gitlab_http_v2: false)
- end
-
- describe '.get' do
- it 'calls Gitlab::LegacyHTTP.get with default options' do
- expect(Gitlab::LegacyHTTP).to receive(:get).with('/path', {})
-
- described_class.get('/path')
- end
- end
-
- describe '.try_get' do
- it 'calls .get' do
- expect(described_class).to receive(:get).with('/path', {})
-
- described_class.try_get('/path')
- end
-
- it 'returns nil when .get raises an error' do
- expect(described_class).to receive(:get).and_raise(SocketError)
-
- expect(described_class.try_get('/path')).to be_nil
- end
- end
-
- describe '.perform_request' do
- it 'calls Gitlab::LegacyHTTP.perform_request with default options' do
- expect(Gitlab::LegacyHTTP).to receive(:perform_request).with(Net::HTTP::Get, '/path', {})
-
- described_class.perform_request(Net::HTTP::Get, '/path', {})
- end
- end
- end
end
diff --git a/spec/lib/gitlab/github_import/page_counter_spec.rb b/spec/lib/gitlab/import/page_counter_spec.rb
index ddb62cc8fad..a7a4e301aa3 100644
--- a/spec/lib/gitlab/github_import/page_counter_spec.rb
+++ b/spec/lib/gitlab/import/page_counter_spec.rb
@@ -2,8 +2,8 @@
require 'spec_helper'
-RSpec.describe Gitlab::GithubImport::PageCounter, :clean_gitlab_redis_cache, feature_category: :importers do
- let(:project) { double(:project, id: 1) }
+RSpec.describe Gitlab::Import::PageCounter, :clean_gitlab_redis_cache, feature_category: :importers do
+ let(:project) { instance_double(Project, id: 1) }
let(:counter) { described_class.new(project, :issues) }
describe '#initialize' do
diff --git a/spec/lib/gitlab/import_export/all_models.yml b/spec/lib/gitlab/import_export/all_models.yml
index 688487df778..8da05ed7b7e 100644
--- a/spec/lib/gitlab/import_export/all_models.yml
+++ b/spec/lib/gitlab/import_export/all_models.yml
@@ -439,6 +439,7 @@ builds:
- dast_scanner_profile
- job_annotations
- job_artifacts_annotations
+- project_mirror
bridges:
- user
- pipeline
@@ -500,6 +501,7 @@ protected_branches:
- push_access_levels
- unprotect_access_levels
- approval_project_rules
+- approval_project_rules_with_unique_policies
- external_status_checks
- required_code_owners_sections
protected_tags:
@@ -588,6 +590,7 @@ project:
- hangouts_chat_integration
- unify_circuit_integration
- buildkite_integration
+- diffblue_cover_integration
- bamboo_integration
- teamcity_integration
- pushover_integration
@@ -848,6 +851,7 @@ timelogs:
- merge_request
- user
- note
+- timelog_category
push_event_payload:
- event
issue_assignees:
@@ -1081,3 +1085,8 @@ approval_project_rules_users:
approval_project_rules_protected_branches:
- protected_branch
- approval_project_rule
+timelog_category:
+ - name
+ - description
+ - billable
+ - billing_rate
diff --git a/spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb b/spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb
index 9852f6c9652..8ab99875a0a 100644
--- a/spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb
+++ b/spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb
@@ -52,10 +52,10 @@ RSpec.describe Gitlab::ImportExport::Group::RelationTreeRestorer, feature_catego
)
end
- subject { relation_tree_restorer.restore }
+ subject(:restore_relations) { relation_tree_restorer.restore }
it 'restores group tree' do
- expect(subject).to eq(true)
+ expect(restore_relations).to eq(true)
end
it 'logs top-level relation creation' do
@@ -64,7 +64,7 @@ RSpec.describe Gitlab::ImportExport::Group::RelationTreeRestorer, feature_catego
.with(hash_including(message: '[Project/Group Import] Created new object relation'))
.at_least(:once)
- subject
+ restore_relations
end
describe 'relation object saving' do
@@ -100,7 +100,7 @@ RSpec.describe Gitlab::ImportExport::Group::RelationTreeRestorer, feature_catego
error_messages: "Label can't be blank, Position can't be blank, and Position is not a number"
)
- subject
+ restore_relations
board = importable.boards.last
failure = importable.import_failures.first
@@ -115,6 +115,33 @@ RSpec.describe Gitlab::ImportExport::Group::RelationTreeRestorer, feature_catego
end
end
+ context 'when invalid relation object has a loggable external identifier' do
+ before do
+ allow(relation_reader)
+ .to receive(:consume_relation)
+ .with(importable_name, 'milestones')
+ .and_return([
+ [invalid_milestone, 0],
+ [invalid_milestone_with_no_iid, 1]
+ ])
+ end
+
+ let(:invalid_milestone) { build(:milestone, iid: 123, name: nil) }
+ let(:invalid_milestone_with_no_iid) { build(:milestone, iid: nil, name: nil) }
+
+ it 'logs invalid record with external identifier' do
+ restore_relations
+
+ iids_for_failures = importable.import_failures.collect { |f| [f.relation_key, f.external_identifiers] }
+ expected_iids = [
+ ["milestones", { "iid" => invalid_milestone.iid }],
+ ["milestones", {}]
+ ]
+
+ expect(iids_for_failures).to match_array(expected_iids)
+ end
+ end
+
context 'when relation object is persisted' do
before do
allow(relation_reader)
@@ -129,7 +156,7 @@ RSpec.describe Gitlab::ImportExport::Group::RelationTreeRestorer, feature_catego
it 'saves import failure with nested errors' do
label.priorities << [LabelPriority.new, LabelPriority.new]
- subject
+ restore_relations
failure = importable.import_failures.first
diff --git a/spec/lib/gitlab/import_export/import_failure_service_spec.rb b/spec/lib/gitlab/import_export/import_failure_service_spec.rb
index 30d16347828..9628e9fbf4d 100644
--- a/spec/lib/gitlab/import_export/import_failure_service_spec.rb
+++ b/spec/lib/gitlab/import_export/import_failure_service_spec.rb
@@ -21,7 +21,8 @@ RSpec.describe Gitlab::ImportExport::ImportFailureService, feature_category: :im
relation_key: relation_key,
relation_index: relation_index,
exception: exception,
- retry_count: retry_count)
+ retry_count: retry_count,
+ external_identifiers: { iid: 1234 })
end
before do
diff --git a/spec/lib/gitlab/import_export/project/tree_restorer_spec.rb b/spec/lib/gitlab/import_export/project/tree_restorer_spec.rb
index 14af3028a6e..d565f3f3150 100644
--- a/spec/lib/gitlab/import_export/project/tree_restorer_spec.rb
+++ b/spec/lib/gitlab/import_export/project/tree_restorer_spec.rb
@@ -1114,9 +1114,10 @@ RSpec.describe Gitlab::ImportExport::Project::TreeRestorer, feature_category: :i
let(:user) { create(:user) }
let!(:project) { create(:project, :builds_disabled, :issues_disabled, name: 'project', path: 'project') }
let(:project_tree_restorer) { described_class.new(user: user, shared: shared, project: project) }
+ let(:project_fixture) { 'with_invalid_records' }
before do
- setup_import_export_config('with_invalid_records')
+ setup_import_export_config(project_fixture)
setup_reader
subject
@@ -1142,6 +1143,21 @@ RSpec.describe Gitlab::ImportExport::Project::TreeRestorer, feature_category: :i
expect(import_failure.correlation_id_value).not_to be_empty
expect(import_failure.created_at).to be_present
end
+
+ context 'when there are a mix of invalid milestones and issues with IIDs' do
+ let(:project_fixture) { 'with_invalid_issues_and_milestones' }
+
+ it 'tracks the relation IID if present' do
+ iids_for_failures = project.import_failures.collect { |f| [f.relation_key, f.external_identifiers] }
+ expected_iids = [
+ ["milestones", { "iid" => 1 }],
+ ["issues", { "iid" => 9 }],
+ ["issues", {}]
+ ]
+
+ expect(iids_for_failures).to match_array(expected_iids)
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/import_export/safe_model_attributes.yml b/spec/lib/gitlab/import_export/safe_model_attributes.yml
index 3efa33d8879..73b945d4274 100644
--- a/spec/lib/gitlab/import_export/safe_model_attributes.yml
+++ b/spec/lib/gitlab/import_export/safe_model_attributes.yml
@@ -765,6 +765,7 @@ Timelog:
- created_at
- updated_at
- summary
+- timelog_category_id
ProjectAutoDevops:
- id
- enabled
@@ -1087,3 +1088,9 @@ ApprovalProjectRulesProtectedBranch:
- branch_name
WorkItems::Type:
- base_type
+TimeTracking::TimelogCategories:
+ - id
+ - name
+ - description
+ - billable
+ - billing_rate
diff --git a/spec/lib/gitlab/instrumentation/redis_client_middleware_spec.rb b/spec/lib/gitlab/instrumentation/redis_client_middleware_spec.rb
new file mode 100644
index 00000000000..eca75d93c80
--- /dev/null
+++ b/spec/lib/gitlab/instrumentation/redis_client_middleware_spec.rb
@@ -0,0 +1,224 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require 'rspec-parameterized'
+require 'support/helpers/rails_helpers'
+
+RSpec.describe Gitlab::Instrumentation::RedisClientMiddleware, :request_store, feature_category: :scalability do
+ using RSpec::Parameterized::TableSyntax
+ include RedisHelpers
+
+ let_it_be(:redis_store_class) { define_helper_redis_store_class }
+ let_it_be(:redis_client) { RedisClient.new(redis_store_class.redis_client_params) }
+
+ before do
+ redis_client.call("flushdb")
+ end
+
+ describe 'read and write' do
+ where(:setup, :command, :expect_write, :expect_read) do
+ # The response is 'OK', the request size is the combined size of array
+ # elements. Exercise counting of a status reply.
+ [] | [:set, 'foo', 'bar'] | (3 + 3 + 3) | 2
+
+ # The response is 1001, so 4 bytes. Exercise counting an integer reply.
+ [[:set, 'foobar', 1000]] | [:incr, 'foobar'] | (4 + 6) | 4
+
+ # Exercise counting empty multi bulk reply. Returns an empty hash `{}`
+ [] | [:hgetall, 'foobar'] | (7 + 6) | 2
+
+ # Hgetall response length is combined length of keys and values in the
+ # hash. Exercises counting of a multi bulk reply
+ # Returns `{"field"=>"hello world"}`, 5 for field, 11 for hello world, 8 for {, }, 4 "s, =, >
+ [[:hset, 'myhash', 'field', 'hello world']] | [:hgetall, 'myhash'] | (7 + 6) | (5 + 11 + 8)
+
+ # Exercise counting of a bulk reply
+ [[:set, 'foo', 'bar' * 100]] | [:get, 'foo'] | (3 + 3) | (3 * 100)
+
+ # Nested array response: [['foo', 0.0], ['bar', 1.0]]. Returns scores as float.
+ [[:zadd, 'myset', 0, 'foo'],
+ [:zadd, 'myset', 1, 'bar']] | [:zrange, 'myset', 0, -1, 'withscores'] | (6 + 5 + 1 + 2 + 10) | (3 + 3 + 3 + 3)
+ end
+
+ with_them do
+ it 'counts bytes read and written' do
+ setup.each { |cmd| redis_client.call(*cmd) }
+ RequestStore.clear!
+ redis_client.call(*command)
+
+ expect(Gitlab::Instrumentation::Redis.read_bytes).to eq(expect_read)
+ expect(Gitlab::Instrumentation::Redis.write_bytes).to eq(expect_write)
+ end
+ end
+ end
+
+ describe 'counting' do
+ let(:instrumentation_class) { redis_store_class.instrumentation_class }
+
+ it 'counts successful requests' do
+ expect(instrumentation_class).to receive(:instance_count_request).with(1).and_call_original
+
+ redis_client.call(:get, 'foobar')
+ end
+
+ it 'counts successful pipelined requests' do
+ expect(instrumentation_class).to receive(:instance_count_request).with(2).and_call_original
+ expect(instrumentation_class).to receive(:instance_count_pipelined_request).with(2).and_call_original
+
+ redis_client.pipelined do |pipeline|
+ pipeline.call(:get, '{foobar}buz')
+ pipeline.call(:get, '{foobar}baz')
+ end
+ end
+
+ context 'when encountering exceptions' do
+ before do
+ allow(redis_client.instance_variable_get(:@raw_connection)).to receive(:call).and_raise(
+ RedisClient::ConnectionError, 'Connection was closed or lost')
+ end
+
+ it 'counts exception' do
+ expect(instrumentation_class).to receive(:instance_count_exception)
+ .with(instance_of(RedisClient::ConnectionError)).and_call_original
+ expect(instrumentation_class).to receive(:log_exception)
+ .with(instance_of(RedisClient::ConnectionError)).and_call_original
+ expect(instrumentation_class).to receive(:instance_count_request).and_call_original
+
+ expect do
+ redis_client.call(:auth, 'foo', 'bar')
+ end.to raise_error(RedisClient::Error)
+ end
+ end
+
+ context 'in production environment' do
+ before do
+ stub_rails_env('production') # to avoid raising CrossSlotError
+ end
+
+ it 'counts disallowed cross-slot requests' do
+ expect(instrumentation_class).to receive(:increment_cross_slot_request_count).and_call_original
+ expect(instrumentation_class).not_to receive(:increment_allowed_cross_slot_request_count).and_call_original
+
+ redis_client.call(:mget, 'foo', 'bar')
+ end
+
+ it 'does not count allowed cross-slot requests' do
+ expect(instrumentation_class).not_to receive(:increment_cross_slot_request_count).and_call_original
+ expect(instrumentation_class).to receive(:increment_allowed_cross_slot_request_count).and_call_original
+
+ Gitlab::Instrumentation::RedisClusterValidator.allow_cross_slot_commands do
+ redis_client.call(:mget, 'foo', 'bar')
+ end
+ end
+
+ it 'does not count allowed non-cross-slot requests' do
+ expect(instrumentation_class).not_to receive(:increment_cross_slot_request_count).and_call_original
+ expect(instrumentation_class).not_to receive(:increment_allowed_cross_slot_request_count).and_call_original
+
+ Gitlab::Instrumentation::RedisClusterValidator.allow_cross_slot_commands do
+ redis_client.call(:mget, 'bar')
+ end
+ end
+
+ it 'skips count for non-cross-slot requests' do
+ expect(instrumentation_class).not_to receive(:increment_cross_slot_request_count).and_call_original
+ expect(instrumentation_class).not_to receive(:increment_allowed_cross_slot_request_count).and_call_original
+
+ redis_client.call(:mget, '{foo}bar', '{foo}baz')
+ end
+ end
+
+ context 'without active RequestStore' do
+ before do
+ ::RequestStore.end!
+ end
+
+ it 'still runs cross-slot validation' do
+ expect do
+ redis_client.call('mget', 'foo', 'bar')
+ end.to raise_error(instance_of(Gitlab::Instrumentation::RedisClusterValidator::CrossSlotError))
+ end
+ end
+ end
+
+ describe 'latency' do
+ let(:instrumentation_class) { redis_store_class.instrumentation_class }
+
+ describe 'commands in the apdex' do
+ where(:command) do
+ [
+ [[:get, 'foobar']],
+ [%w[GET foobar]]
+ ]
+ end
+
+ with_them do
+ it 'measures requests we want in the apdex' do
+ expect(instrumentation_class).to receive(:instance_observe_duration).with(a_value > 0)
+ .and_call_original
+
+ redis_client.call(*command)
+ end
+ end
+
+ context 'with pipelined commands' do
+ it 'measures requests that do not have blocking commands' do
+ expect(instrumentation_class).to receive(:instance_observe_duration).twice.with(a_value > 0)
+ .and_call_original
+
+ redis_client.pipelined do |pipeline|
+ pipeline.call(:get, '{foobar}buz')
+ pipeline.call(:get, '{foobar}baz')
+ end
+ end
+
+ it 'raises error when keys are not from the same slot' do
+ expect do
+ redis_client.pipelined do |pipeline|
+ pipeline.call(:get, 'foo')
+ pipeline.call(:get, 'bar')
+ end
+ end.to raise_error(instance_of(Gitlab::Instrumentation::RedisClusterValidator::CrossSlotError))
+ end
+ end
+ end
+
+ describe 'commands not in the apdex' do
+ where(:setup, :command) do
+ [['rpush', 'foobar', 1]] | ['brpop', 'foobar', 0]
+ [['rpush', 'foobar', 1]] | ['blpop', 'foobar', 0]
+ [['rpush', '{abc}foobar', 1]] | ['brpoplpush', '{abc}foobar', '{abc}bazqux', 0]
+ [['rpush', '{abc}foobar', 1]] | ['brpoplpush', '{abc}foobar', '{abc}bazqux', 0]
+ [['zadd', 'foobar', 1, 'a']] | ['bzpopmin', 'foobar', 0]
+ [['zadd', 'foobar', 1, 'a']] | ['bzpopmax', 'foobar', 0]
+ [['xadd', 'mystream', 1, 'myfield', 'mydata']] | ['xread', 'block', 1, 'streams', 'mystream', '0-0']
+ [['xadd', 'foobar', 1, 'myfield', 'mydata'],
+ ['xgroup', 'create', 'foobar', 'mygroup',
+ 0]] | ['xreadgroup', 'group', 'mygroup', 'myconsumer', 'block', 1, 'streams', 'foobar', '0-0']
+ [] | ['command']
+ end
+
+ with_them do
+ it 'skips requests we do not want in the apdex' do
+ setup.each { |cmd| redis_client.call(*cmd) }
+
+ expect(instrumentation_class).not_to receive(:instance_observe_duration)
+
+ redis_client.call(*command)
+ end
+ end
+
+ context 'with pipelined commands' do
+ it 'skips requests that have blocking commands' do
+ expect(instrumentation_class).not_to receive(:instance_observe_duration)
+
+ redis_client.pipelined do |pipeline|
+ pipeline.call(:get, '{foobar}buz')
+ pipeline.call(:rpush, '{foobar}baz', 1)
+ pipeline.call(:brpop, '{foobar}baz', 0)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb b/spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb
index 8d6415b8179..8b6d628833e 100644
--- a/spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb
+++ b/spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::LegacyGithubImport::CommentFormatter do
+RSpec.describe Gitlab::LegacyGithubImport::CommentFormatter, feature_category: :importers do
let_it_be(:project) { create(:project) }
let(:client) { double }
let(:octocat) { { id: 123456, login: 'octocat', email: 'octocat@example.com' } }
@@ -76,12 +76,6 @@ RSpec.describe Gitlab::LegacyGithubImport::CommentFormatter do
context 'when author is a GitLab user' do
let(:raw) { base.merge(user: octocat) }
- it 'returns GitLab user id associated with GitHub id as author_id' do
- gl_user = create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
-
- expect(comment.attributes.fetch(:author_id)).to eq gl_user.id
- end
-
it 'returns GitLab user id associated with GitHub email as author_id' do
gl_user = create(:user, email: octocat[:email])
@@ -89,7 +83,7 @@ RSpec.describe Gitlab::LegacyGithubImport::CommentFormatter do
end
it 'returns note without created at tag line' do
- create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
+ create(:user, email: octocat[:email])
expect(comment.attributes.fetch(:note)).to eq("I'm having a problem with this.")
end
diff --git a/spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb b/spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb
index d3548fecbcd..9baf234b14b 100644
--- a/spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb
+++ b/spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::LegacyGithubImport::IssueFormatter do
+RSpec.describe Gitlab::LegacyGithubImport::IssueFormatter, feature_category: :importers do
let_it_be(:project) { create(:project, namespace: create(:namespace, path: 'octocat')) }
let(:client) { double }
let(:octocat) { { id: 123456, login: 'octocat', email: 'octocat@example.com' } }
@@ -82,12 +82,6 @@ RSpec.describe Gitlab::LegacyGithubImport::IssueFormatter do
expect(issue.attributes.fetch(:assignee_ids)).to be_empty
end
- it 'returns GitLab user id associated with GitHub id as assignee_id' do
- gl_user = create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
-
- expect(issue.attributes.fetch(:assignee_ids)).to eq [gl_user.id]
- end
-
it 'returns GitLab user id associated with GitHub email as assignee_id' do
gl_user = create(:user, email: octocat[:email])
@@ -117,12 +111,6 @@ RSpec.describe Gitlab::LegacyGithubImport::IssueFormatter do
expect(issue.attributes.fetch(:author_id)).to eq project.creator_id
end
- it 'returns GitLab user id associated with GitHub id as author_id' do
- gl_user = create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
-
- expect(issue.attributes.fetch(:author_id)).to eq gl_user.id
- end
-
it 'returns GitLab user id associated with GitHub email as author_id' do
gl_user = create(:user, email: octocat[:email])
@@ -130,7 +118,7 @@ RSpec.describe Gitlab::LegacyGithubImport::IssueFormatter do
end
it 'returns description without created at tag line' do
- create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
+ create(:user, email: octocat[:email])
expect(issue.attributes.fetch(:description)).to eq("I'm having a problem with this.")
end
diff --git a/spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb b/spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb
index 90469693820..1555e3e0d4c 100644
--- a/spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb
+++ b/spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::LegacyGithubImport::PullRequestFormatter do
+RSpec.describe Gitlab::LegacyGithubImport::PullRequestFormatter, feature_category: :importers do
let_it_be(:project) { create(:project, :repository) }
let(:client) { double }
let(:source_sha) { create(:commit, project: project).id }
@@ -136,12 +136,6 @@ RSpec.describe Gitlab::LegacyGithubImport::PullRequestFormatter do
expect(pull_request.attributes.fetch(:assignee_id)).to be_nil
end
- it 'returns GitLab user id associated with GitHub id as assignee_id' do
- gl_user = create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
-
- expect(pull_request.attributes.fetch(:assignee_id)).to eq gl_user.id
- end
-
it 'returns GitLab user id associated with GitHub email as assignee_id' do
gl_user = create(:user, email: octocat[:email])
@@ -156,12 +150,6 @@ RSpec.describe Gitlab::LegacyGithubImport::PullRequestFormatter do
expect(pull_request.attributes.fetch(:author_id)).to eq project.creator_id
end
- it 'returns GitLab user id associated with GitHub id as author_id' do
- gl_user = create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
-
- expect(pull_request.attributes.fetch(:author_id)).to eq gl_user.id
- end
-
it 'returns GitLab user id associated with GitHub email as author_id' do
gl_user = create(:user, email: octocat[:email])
@@ -169,7 +157,7 @@ RSpec.describe Gitlab::LegacyGithubImport::PullRequestFormatter do
end
it 'returns description without created at tag line' do
- create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
+ create(:user, email: octocat[:email])
expect(pull_request.attributes.fetch(:description)).to eq('Please pull these awesome changes')
end
diff --git a/spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb b/spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb
index 0844ab7eccc..d387d79aa30 100644
--- a/spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb
+++ b/spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::LegacyGithubImport::UserFormatter do
+RSpec.describe Gitlab::LegacyGithubImport::UserFormatter, feature_category: :importers do
let(:client) { double }
let(:octocat) { { id: 123456, login: 'octocat', email: 'octocat@example.com' } }
let(:gitea_ghost) { { id: -1, login: 'Ghost', email: '' } }
@@ -15,12 +15,6 @@ RSpec.describe Gitlab::LegacyGithubImport::UserFormatter do
end
context 'when GitHub user is a GitLab user' do
- it 'return GitLab user id when user associated their account with GitHub' do
- gl_user = create(:omniauth_user, extern_uid: octocat[:id], provider: 'github')
-
- expect(user.gitlab_id).to eq gl_user.id
- end
-
it 'returns GitLab user id when user confirmed primary email matches GitHub email' do
gl_user = create(:user, email: octocat[:email])
diff --git a/spec/lib/gitlab/legacy_http_spec.rb b/spec/lib/gitlab/legacy_http_spec.rb
deleted file mode 100644
index 07a30b194b6..00000000000
--- a/spec/lib/gitlab/legacy_http_spec.rb
+++ /dev/null
@@ -1,448 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Gitlab::LegacyHTTP, feature_category: :shared do
- include StubRequests
-
- let(:default_options) { Gitlab::HTTP::DEFAULT_TIMEOUT_OPTIONS }
-
- context 'when allow_local_requests' do
- it 'sends the request to the correct URI' do
- stub_full_request('https://example.org:8080', ip_address: '8.8.8.8').to_return(status: 200)
-
- described_class.get('https://example.org:8080', allow_local_requests: false)
-
- expect(WebMock).to have_requested(:get, 'https://8.8.8.8:8080').once
- end
- end
-
- context 'when not allow_local_requests' do
- it 'sends the request to the correct URI' do
- stub_full_request('https://example.org:8080')
-
- described_class.get('https://example.org:8080', allow_local_requests: true)
-
- expect(WebMock).to have_requested(:get, 'https://8.8.8.9:8080').once
- end
- end
-
- context 'when reading the response is too slow' do
- before_all do
- # Override Net::HTTP to add a delay between sending each response chunk
- mocked_http = Class.new(Net::HTTP) do
- def request(*)
- super do |response|
- response.instance_eval do
- def read_body(*)
- mock_stream = @body.split(' ')
- mock_stream.each do |fragment|
- sleep 0.002.seconds
-
- yield fragment if block_given?
- end
-
- @body
- end
- end
-
- yield response if block_given?
-
- response
- end
- end
- end
-
- @original_net_http = Net.send(:remove_const, :HTTP)
- @webmock_net_http = WebMock::HttpLibAdapters::NetHttpAdapter.instance_variable_get(:@webMockNetHTTP)
-
- Net.send(:const_set, :HTTP, mocked_http)
- WebMock::HttpLibAdapters::NetHttpAdapter.instance_variable_set(:@webMockNetHTTP, mocked_http)
-
- # Reload Gitlab::NetHttpAdapter
- Gitlab.send(:remove_const, :NetHttpAdapter)
- load "#{Rails.root}/lib/gitlab/net_http_adapter.rb"
- end
-
- before do
- stub_const("Gitlab::HTTP::DEFAULT_READ_TOTAL_TIMEOUT", 0.001.seconds)
-
- WebMock.stub_request(:post, /.*/).to_return do
- { body: "chunk-1 chunk-2", status: 200 }
- end
- end
-
- after(:all) do
- Net.send(:remove_const, :HTTP)
- Net.send(:const_set, :HTTP, @original_net_http)
- WebMock::HttpLibAdapters::NetHttpAdapter.instance_variable_set(:@webMockNetHTTP, @webmock_net_http)
-
- # Reload Gitlab::NetHttpAdapter
- Gitlab.send(:remove_const, :NetHttpAdapter)
- load "#{Rails.root}/lib/gitlab/net_http_adapter.rb"
- end
-
- let(:options) { {} }
-
- subject(:request_slow_responder) { described_class.post('http://example.org', **options) }
-
- it 'raises an error' do
- expect { request_slow_responder }.to raise_error(
- Gitlab::HTTP::ReadTotalTimeout, /Request timed out after ?([0-9]*[.])?[0-9]+ seconds/)
- end
-
- context 'and timeout option is greater than DEFAULT_READ_TOTAL_TIMEOUT' do
- let(:options) { { timeout: 10.seconds } }
-
- it 'does not raise an error' do
- expect { request_slow_responder }.not_to raise_error
- end
- end
-
- context 'and stream_body option is truthy' do
- let(:options) { { stream_body: true } }
-
- it 'does not raise an error' do
- expect { request_slow_responder }.not_to raise_error
- end
- end
- end
-
- it 'calls a block' do
- WebMock.stub_request(:post, /.*/)
-
- expect { |b| described_class.post('http://example.org', &b) }.to yield_with_args
- end
-
- describe 'allow_local_requests_from_web_hooks_and_services is' do
- before do
- WebMock.stub_request(:get, /.*/).to_return(status: 200, body: 'Success')
- end
-
- context 'disabled' do
- before do
- allow(Gitlab::CurrentSettings).to receive(:allow_local_requests_from_web_hooks_and_services?).and_return(false)
- end
-
- it 'deny requests to localhost' do
- expect { described_class.get('http://localhost:3003') }.to raise_error(Gitlab::HTTP::BlockedUrlError)
- end
-
- it 'deny requests to private network' do
- expect { described_class.get('http://192.168.1.2:3003') }.to raise_error(Gitlab::HTTP::BlockedUrlError)
- end
-
- context 'if allow_local_requests set to true' do
- it 'override the global value and allow requests to localhost or private network' do
- stub_full_request('http://localhost:3003')
-
- expect { described_class.get('http://localhost:3003', allow_local_requests: true) }.not_to raise_error
- end
- end
- end
-
- context 'enabled' do
- before do
- allow(Gitlab::CurrentSettings).to receive(:allow_local_requests_from_web_hooks_and_services?).and_return(true)
- end
-
- it 'allow requests to localhost' do
- stub_full_request('http://localhost:3003')
-
- expect { described_class.get('http://localhost:3003') }.not_to raise_error
- end
-
- it 'allow requests to private network' do
- expect { described_class.get('http://192.168.1.2:3003') }.not_to raise_error
- end
-
- context 'if allow_local_requests set to false' do
- it 'override the global value and ban requests to localhost or private network' do
- expect { described_class.get('http://localhost:3003', allow_local_requests: false) }.to raise_error(
- Gitlab::HTTP::BlockedUrlError)
- end
- end
- end
- end
-
- describe 'handle redirect loops' do
- before do
- stub_full_request("http://example.org", method: :any).to_raise(
- HTTParty::RedirectionTooDeep.new("Redirection Too Deep"))
- end
-
- it 'handles GET requests' do
- expect { described_class.get('http://example.org') }.to raise_error(Gitlab::HTTP::RedirectionTooDeep)
- end
-
- it 'handles POST requests' do
- expect { described_class.post('http://example.org') }.to raise_error(Gitlab::HTTP::RedirectionTooDeep)
- end
-
- it 'handles PUT requests' do
- expect { described_class.put('http://example.org') }.to raise_error(Gitlab::HTTP::RedirectionTooDeep)
- end
-
- it 'handles DELETE requests' do
- expect { described_class.delete('http://example.org') }.to raise_error(Gitlab::HTTP::RedirectionTooDeep)
- end
-
- it 'handles HEAD requests' do
- expect { described_class.head('http://example.org') }.to raise_error(Gitlab::HTTP::RedirectionTooDeep)
- end
- end
-
- describe 'setting default timeouts' do
- before do
- stub_full_request('http://example.org', method: :any)
- end
-
- context 'when no timeouts are set' do
- it 'sets default open and read and write timeouts' do
- expect(described_class).to receive(:httparty_perform_request).with(
- Net::HTTP::Get, 'http://example.org', default_options
- ).and_call_original
-
- described_class.get('http://example.org')
- end
- end
-
- context 'when :timeout is set' do
- it 'does not set any default timeouts' do
- expect(described_class).to receive(:httparty_perform_request).with(
- Net::HTTP::Get, 'http://example.org', { timeout: 1 }
- ).and_call_original
-
- described_class.get('http://example.org', { timeout: 1 })
- end
- end
-
- context 'when :open_timeout is set' do
- it 'only sets default read and write timeout' do
- expect(described_class).to receive(:httparty_perform_request).with(
- Net::HTTP::Get, 'http://example.org', default_options.merge(open_timeout: 1)
- ).and_call_original
-
- described_class.get('http://example.org', open_timeout: 1)
- end
- end
-
- context 'when :read_timeout is set' do
- it 'only sets default open and write timeout' do
- expect(described_class).to receive(:httparty_perform_request).with(
- Net::HTTP::Get, 'http://example.org', default_options.merge(read_timeout: 1)
- ).and_call_original
-
- described_class.get('http://example.org', read_timeout: 1)
- end
- end
-
- context 'when :write_timeout is set' do
- it 'only sets default open and read timeout' do
- expect(described_class).to receive(:httparty_perform_request).with(
- Net::HTTP::Put, 'http://example.org', default_options.merge(write_timeout: 1)
- ).and_call_original
-
- described_class.put('http://example.org', write_timeout: 1)
- end
- end
- end
-
- describe '.try_get' do
- let(:path) { 'http://example.org' }
-
- let(:extra_log_info_proc) do
- proc do |error, url, options|
- { klass: error.class, url: url, options: options }
- end
- end
-
- let(:request_options) do
- default_options.merge({
- verify: false,
- basic_auth: { username: 'user', password: 'pass' }
- })
- end
-
- Gitlab::HTTP::HTTP_ERRORS.each do |exception_class|
- context "with #{exception_class}" do
- let(:klass) { exception_class }
-
- context 'with path' do
- before do
- expect(described_class).to receive(:httparty_perform_request)
- .with(Net::HTTP::Get, path, default_options)
- .and_raise(klass)
- end
-
- it 'handles requests without extra_log_info' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), {})
-
- expect(described_class.try_get(path)).to be_nil
- end
-
- it 'handles requests with extra_log_info as hash' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), { a: :b })
-
- expect(described_class.try_get(path, extra_log_info: { a: :b })).to be_nil
- end
-
- it 'handles requests with extra_log_info as proc' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), { url: path, klass: klass, options: {} })
-
- expect(described_class.try_get(path, extra_log_info: extra_log_info_proc)).to be_nil
- end
- end
-
- context 'with path and options' do
- before do
- expect(described_class).to receive(:httparty_perform_request)
- .with(Net::HTTP::Get, path, request_options)
- .and_raise(klass)
- end
-
- it 'handles requests without extra_log_info' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), {})
-
- expect(described_class.try_get(path, request_options)).to be_nil
- end
-
- it 'handles requests with extra_log_info as hash' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), { a: :b })
-
- expect(described_class.try_get(path, **request_options, extra_log_info: { a: :b })).to be_nil
- end
-
- it 'handles requests with extra_log_info as proc' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), { klass: klass, url: path, options: request_options })
-
- expect(described_class.try_get(path, **request_options, extra_log_info: extra_log_info_proc)).to be_nil
- end
- end
-
- context 'with path, options, and block' do
- let(:block) do
- proc {}
- end
-
- before do
- expect(described_class).to receive(:httparty_perform_request)
- .with(Net::HTTP::Get, path, request_options, &block)
- .and_raise(klass)
- end
-
- it 'handles requests without extra_log_info' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), {})
-
- expect(described_class.try_get(path, request_options, &block)).to be_nil
- end
-
- it 'handles requests with extra_log_info as hash' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), { a: :b })
-
- expect(described_class.try_get(path, **request_options, extra_log_info: { a: :b }, &block)).to be_nil
- end
-
- it 'handles requests with extra_log_info as proc' do
- expect(Gitlab::ErrorTracking)
- .to receive(:log_exception)
- .with(instance_of(klass), { klass: klass, url: path, options: request_options })
-
- expect(
- described_class.try_get(path, **request_options, extra_log_info: extra_log_info_proc, &block)
- ).to be_nil
- end
- end
- end
- end
- end
-
- describe 'silent mode', feature_category: :geo_replication do
- before do
- stub_full_request("http://example.org", method: :any)
- stub_application_setting(silent_mode_enabled: silent_mode)
- end
-
- context 'when silent mode is enabled' do
- let(:silent_mode) { true }
-
- it 'allows GET requests' do
- expect { described_class.get('http://example.org') }.not_to raise_error
- end
-
- it 'allows HEAD requests' do
- expect { described_class.head('http://example.org') }.not_to raise_error
- end
-
- it 'allows OPTIONS requests' do
- expect { described_class.options('http://example.org') }.not_to raise_error
- end
-
- it 'blocks POST requests' do
- expect { described_class.post('http://example.org') }.to raise_error(Gitlab::HTTP::SilentModeBlockedError)
- end
-
- it 'blocks PUT requests' do
- expect { described_class.put('http://example.org') }.to raise_error(Gitlab::HTTP::SilentModeBlockedError)
- end
-
- it 'blocks DELETE requests' do
- expect { described_class.delete('http://example.org') }.to raise_error(Gitlab::HTTP::SilentModeBlockedError)
- end
-
- it 'logs blocked requests' do
- expect(::Gitlab::AppJsonLogger).to receive(:info).with(
- message: "Outbound HTTP request blocked",
- outbound_http_request_method: 'Net::HTTP::Post',
- silent_mode_enabled: true
- )
-
- expect { described_class.post('http://example.org') }.to raise_error(Gitlab::HTTP::SilentModeBlockedError)
- end
- end
-
- context 'when silent mode is disabled' do
- let(:silent_mode) { false }
-
- it 'allows GET requests' do
- expect { described_class.get('http://example.org') }.not_to raise_error
- end
-
- it 'allows HEAD requests' do
- expect { described_class.head('http://example.org') }.not_to raise_error
- end
-
- it 'allows OPTIONS requests' do
- expect { described_class.options('http://example.org') }.not_to raise_error
- end
-
- it 'blocks POST requests' do
- expect { described_class.post('http://example.org') }.not_to raise_error
- end
-
- it 'blocks PUT requests' do
- expect { described_class.put('http://example.org') }.not_to raise_error
- end
-
- it 'blocks DELETE requests' do
- expect { described_class.delete('http://example.org') }.not_to raise_error
- end
- end
- end
-end
diff --git a/spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb b/spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb
index 68dd784fb7e..1c62f5679d0 100644
--- a/spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb
+++ b/spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe Gitlab::Memory::Watchdog::Handlers::SidekiqHandler, feature_categ
before do
allow(Gitlab::Metrics::System).to receive(:monotonic_time)
- .and_return(0, 1, shutdown_timeout_seconds, 0, 1, Sidekiq[:timeout] + 2)
+ .and_return(0, 1, shutdown_timeout_seconds, 0, 1, Sidekiq.default_configuration[:timeout] + 2)
allow(Process).to receive(:kill)
allow(::Sidekiq).to receive(:logger).and_return(logger)
allow(logger).to receive(:warn)
@@ -81,7 +81,7 @@ RSpec.describe Gitlab::Memory::Watchdog::Handlers::SidekiqHandler, feature_categ
let(:signal_params) do
[
[:TSTP, pid, 'stop fetching new jobs', shutdown_timeout_seconds],
- [:TERM, pid, 'gracefully shut down', Sidekiq[:timeout] + 2]
+ [:TERM, pid, 'gracefully shut down', Sidekiq.default_configuration[:timeout] + 2]
]
end
@@ -95,7 +95,7 @@ RSpec.describe Gitlab::Memory::Watchdog::Handlers::SidekiqHandler, feature_categ
let(:signal_params) do
[
[:TSTP, pid, 'stop fetching new jobs', shutdown_timeout_seconds],
- [:TERM, pid, 'gracefully shut down', Sidekiq[:timeout] + 2],
+ [:TERM, pid, 'gracefully shut down', Sidekiq.default_configuration[:timeout] + 2],
[:KILL, kill_pid, 'hard shut down', nil]
]
end
diff --git a/spec/lib/gitlab/namespaced_session_store_spec.rb b/spec/lib/gitlab/namespaced_session_store_spec.rb
index 2c258ce3da6..4e9b35e6859 100644
--- a/spec/lib/gitlab/namespaced_session_store_spec.rb
+++ b/spec/lib/gitlab/namespaced_session_store_spec.rb
@@ -8,19 +8,28 @@ RSpec.describe Gitlab::NamespacedSessionStore do
context 'current session' do
subject { described_class.new(key) }
- it 'stores data under the specified key' do
- Gitlab::Session.with_session({}) do
- subject[:new_data] = 123
-
- expect(Thread.current[:session_storage][key]).to eq(new_data: 123)
- end
- end
-
it 'retrieves data from the given key' do
Thread.current[:session_storage] = { key => { existing_data: 123 } }
expect(subject[:existing_data]).to eq 123
end
+
+ context 'when namespace key does not exist' do
+ before do
+ Thread.current[:session_storage] = {}
+ end
+
+ it 'does not create namespace key when reading a value' do
+ expect(subject[:non_existent_key]).to eq(nil)
+ expect(Thread.current[:session_storage]).to eq({})
+ end
+
+ it 'stores data under the specified key' do
+ subject[:new_data] = 123
+
+ expect(Thread.current[:session_storage][key]).to eq(new_data: 123)
+ end
+ end
end
context 'passed in session' do
diff --git a/spec/lib/gitlab/pagination/keyset/iterator_spec.rb b/spec/lib/gitlab/pagination/keyset/iterator_spec.rb
index afaad48d363..326f3c6d344 100644
--- a/spec/lib/gitlab/pagination/keyset/iterator_spec.rb
+++ b/spec/lib/gitlab/pagination/keyset/iterator_spec.rb
@@ -46,12 +46,6 @@ RSpec.describe Gitlab::Pagination::Keyset::Iterator do
end
end
- it 'raises error when ordering configuration cannot be automatically determined' do
- expect do
- described_class.new(scope: MergeRequestDiffCommit.order(:merge_request_diff_id, :relative_order))
- end.to raise_error /The order on the scope does not support keyset pagination/
- end
-
it 'accepts a custom batch size' do
count = 0
diff --git a/spec/lib/gitlab/pagination/keyset/paginator_spec.rb b/spec/lib/gitlab/pagination/keyset/paginator_spec.rb
index 230ac01af31..16c5b3ab748 100644
--- a/spec/lib/gitlab/pagination/keyset/paginator_spec.rb
+++ b/spec/lib/gitlab/pagination/keyset/paginator_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
RSpec.describe Gitlab::Pagination::Keyset::Paginator do
- let_it_be(:project_1) { create(:project, created_at: 10.weeks.ago) }
- let_it_be(:project_2) { create(:project, created_at: 2.weeks.ago) }
- let_it_be(:project_3) { create(:project, created_at: 3.weeks.ago) }
- let_it_be(:project_4) { create(:project, created_at: 5.weeks.ago) }
- let_it_be(:project_5) { create(:project, created_at: 2.weeks.ago) }
+ let_it_be(:project_1) { create(:project, :public, name: 'Project A', created_at: 10.weeks.ago) }
+ let_it_be(:project_2) { create(:project, :public, name: 'Project E', created_at: 2.weeks.ago) }
+ let_it_be(:project_3) { create(:project, :private, name: 'Project C', created_at: 3.weeks.ago) }
+ let_it_be(:project_4) { create(:project, :private, name: 'Project B', created_at: 5.weeks.ago) }
+ let_it_be(:project_5) { create(:project, :private, name: 'Project B', created_at: 2.weeks.ago) }
describe 'pagination' do
let(:per_page) { 10 }
@@ -98,6 +98,13 @@ RSpec.describe Gitlab::Pagination::Keyset::Paginator do
end
end
+ context 'when the relation is ordered by more than 2 columns' do
+ let(:scope) { Project.order(visibility_level: :asc, name: :asc, id: :asc) }
+ let(:expected_order) { [project_4, project_5, project_3, project_1, project_2] }
+
+ it { expect(paginator.records).to eq(expected_order) }
+ end
+
describe 'default keyset direction parameter' do
let(:cursor_converter_class) { Gitlab::Pagination::Keyset::Paginator::Base64CursorConverter }
let(:per_page) { 2 }
@@ -110,14 +117,6 @@ RSpec.describe Gitlab::Pagination::Keyset::Paginator do
end
end
- context 'when unsupported order is given' do
- it 'raises error' do
- scope = Project.order(path: :asc, name: :asc, id: :desc) # Cannot build 3 column order automatically
-
- expect { scope.keyset_paginate }.to raise_error(/does not support keyset pagination/)
- end
- end
-
context 'when use_union_optimization option is true and ordering by two columns' do
let(:scope) { Project.order(name: :asc, id: :desc) }
diff --git a/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb b/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb
index e85b0354ff6..fd38fff2b81 100644
--- a/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb
+++ b/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb
@@ -146,7 +146,7 @@ RSpec.describe Gitlab::Pagination::Keyset::SimpleOrderBuilder do
context 'when more than 2 columns are given for the order' do
let(:scope) { Project.order(created_at: :asc, updated_at: :desc, id: :asc) }
- it { is_expected.to eq(false) }
+ it { is_expected.to eq(true) }
end
end
end
diff --git a/spec/lib/gitlab/quick_actions/extractor_spec.rb b/spec/lib/gitlab/quick_actions/extractor_spec.rb
index bb0adbc87f1..ef76b1e5fdf 100644
--- a/spec/lib/gitlab/quick_actions/extractor_spec.rb
+++ b/spec/lib/gitlab/quick_actions/extractor_spec.rb
@@ -185,21 +185,21 @@ RSpec.describe Gitlab::QuickActions::Extractor, feature_category: :team_planning
context 'at the start of content' do
it_behaves_like 'command with a single argument' do
let(:original_msg) { "/assign @joe\nworld" }
- let(:final_msg) { "\n/assign @joe\n\nworld" }
+ let(:final_msg) { "<p>/assign @joe</p>\nworld" }
end
end
context 'in the middle of content' do
it_behaves_like 'command with a single argument' do
let(:original_msg) { "hello\n/assign @joe\nworld" }
- let(:final_msg) { "hello\n\n/assign @joe\n\nworld" }
+ let(:final_msg) { "hello\n<p>/assign @joe</p>\nworld" }
end
end
context 'at the end of content' do
it_behaves_like 'command with a single argument' do
let(:original_msg) { "hello\n/assign @joe" }
- let(:final_msg) { "hello\n\n/assign @joe" }
+ let(:final_msg) { "hello\n<p>/assign @joe</p>" }
end
end
end
@@ -282,7 +282,7 @@ RSpec.describe Gitlab::QuickActions::Extractor, feature_category: :team_planning
msg, commands = extractor.extract_commands(msg)
expect(commands).to match_array [['reopen'], ['substitution', 'wow this is a thing.']]
- expect(msg).to eq "hello\nworld\n\n/reopen\n\nfoo"
+ expect(msg).to eq "hello\nworld\n<p>/reopen</p>\nfoo"
end
it 'extracts multiple commands' do
diff --git a/spec/lib/gitlab/redis/cluster_util_spec.rb b/spec/lib/gitlab/redis/cluster_util_spec.rb
index 3993004518d..f167065fd3f 100644
--- a/spec/lib/gitlab/redis/cluster_util_spec.rb
+++ b/spec/lib/gitlab/redis/cluster_util_spec.rb
@@ -29,10 +29,15 @@ RSpec.describe Gitlab::Redis::ClusterUtil, feature_category: :scalability do
with_them do
it 'returns expected value' do
- primary_store = pri_store == :cluster ? ::Redis.new(cluster: ['redis://localhost:6000']) : ::Redis.new
- secondary_store = sec_store == :cluster ? ::Redis.new(cluster: ['redis://localhost:6000']) : ::Redis.new
- multistore = Gitlab::Redis::MultiStore.new(primary_store, secondary_store, 'teststore')
- expect(described_class.cluster?(multistore)).to eq(expected_val)
+ primary_redis = pri_store == :cluster ? ::Redis.new(cluster: ['redis://localhost:6000']) : ::Redis.new
+ secondary_redis = sec_store == :cluster ? ::Redis.new(cluster: ['redis://localhost:6000']) : ::Redis.new
+ primary_pool = ConnectionPool.new { primary_redis }
+ secondary_pool = ConnectionPool.new { secondary_redis }
+ multistore = Gitlab::Redis::MultiStore.new(primary_pool, secondary_pool, 'teststore')
+
+ multistore.with_borrowed_connection do
+ expect(described_class.cluster?(multistore)).to eq(expected_val)
+ end
end
end
end
diff --git a/spec/lib/gitlab/redis/cross_slot_spec.rb b/spec/lib/gitlab/redis/cross_slot_spec.rb
index e2f5fcf7694..ccf2de1f28f 100644
--- a/spec/lib/gitlab/redis/cross_slot_spec.rb
+++ b/spec/lib/gitlab/redis/cross_slot_spec.rb
@@ -38,7 +38,9 @@ RSpec.describe Gitlab::Redis::CrossSlot, feature_category: :redis do
let_it_be(:secondary_db) { 2 }
let_it_be(:primary_store) { create_redis_store(redis_store_class.params, db: primary_db, serializer: nil) }
let_it_be(:secondary_store) { create_redis_store(redis_store_class.params, db: secondary_db, serializer: nil) }
- let_it_be(:multistore) { Gitlab::Redis::MultiStore.new(primary_store, secondary_store, 'testing') }
+ let_it_be(:primary_pool) { ConnectionPool.new { primary_store } }
+ let_it_be(:secondary_pool) { ConnectionPool.new { secondary_store } }
+ let_it_be(:multistore) { Gitlab::Redis::MultiStore.new(primary_pool, secondary_pool, 'testing') }
before do
primary_store.set('a', 1)
@@ -52,9 +54,11 @@ RSpec.describe Gitlab::Redis::CrossSlot, feature_category: :redis do
expect(
Gitlab::Instrumentation::RedisClusterValidator.allow_cross_slot_commands do
- described_class::Pipeline.new(multistore).pipelined do |p|
- p.get('a')
- p.set('b', 1)
+ multistore.with_borrowed_connection do
+ described_class::Pipeline.new(multistore).pipelined do |p|
+ p.get('a')
+ p.set('b', 1)
+ end
end
end
).to eq(%w[1 OK])
diff --git a/spec/lib/gitlab/redis/multi_store_spec.rb b/spec/lib/gitlab/redis/multi_store_spec.rb
index 6b1c0fb2e81..125bfec990c 100644
--- a/spec/lib/gitlab/redis/multi_store_spec.rb
+++ b/spec/lib/gitlab/redis/multi_store_spec.rb
@@ -10,11 +10,15 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
let_it_be(:secondary_db) { 2 }
let_it_be(:primary_store) { create_redis_store(redis_store_class.params, db: primary_db, serializer: nil) }
let_it_be(:secondary_store) { create_redis_store(redis_store_class.params, db: secondary_db, serializer: nil) }
+ let_it_be(:primary_pool) { ConnectionPool.new { primary_store } }
+ let_it_be(:secondary_pool) { ConnectionPool.new { secondary_store } }
let_it_be(:instance_name) { 'TestStore' }
- let_it_be(:multi_store) { described_class.new(primary_store, secondary_store, instance_name) }
+ let_it_be(:multi_store) { described_class.new(primary_pool, secondary_pool, instance_name) }
subject do
- multi_store.send(name, *args)
+ multi_store.with_borrowed_connection do
+ multi_store.send(name, *args)
+ end
end
before do
@@ -23,12 +27,12 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
after(:all) do
- primary_store.flushdb
- secondary_store.flushdb
+ primary_store.with(&:flushdb)
+ secondary_store.with(&:flushdb)
end
context 'when primary_store is nil' do
- let(:multi_store) { described_class.new(nil, secondary_store, instance_name) }
+ let(:multi_store) { described_class.new(nil, secondary_pool, instance_name) }
it 'fails with exception' do
expect { multi_store }.to raise_error(ArgumentError, /primary_store is required/)
@@ -36,7 +40,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
context 'when secondary_store is nil' do
- let(:multi_store) { described_class.new(primary_store, nil, instance_name) }
+ let(:multi_store) { described_class.new(primary_pool, nil, instance_name) }
it 'fails with exception' do
expect { multi_store }.to raise_error(ArgumentError, /secondary_store is required/)
@@ -45,7 +49,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when instance_name is nil' do
let(:instance_name) { nil }
- let(:multi_store) { described_class.new(primary_store, secondary_store, instance_name) }
+ let(:multi_store) { described_class.new(primary_pool, secondary_pool, instance_name) }
it 'fails with exception' do
expect { multi_store }.to raise_error(ArgumentError, /instance_name is required/)
@@ -58,7 +62,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
it 'fails with exception' do
- expect { described_class.new(primary_store, secondary_store, instance_name) }
+ expect { described_class.new(primary_pool, secondary_pool, instance_name) }
.to raise_error(ArgumentError, /invalid primary_store/)
end
end
@@ -69,7 +73,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
it 'fails with exception' do
- expect { described_class.new(primary_store, secondary_store, instance_name) }
+ expect { described_class.new(primary_pool, secondary_pool, instance_name) }
.to raise_error(ArgumentError, /invalid secondary_store/)
end
end
@@ -77,7 +81,9 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
# rubocop:disable RSpec/MultipleMemoizedHelpers
context 'with READ redis commands' do
subject do
- multi_store.send(name, *args, **kwargs)
+ multi_store.with_borrowed_connection do
+ multi_store.send(name, *args, **kwargs)
+ end
end
let(:args) { 'args' }
@@ -117,7 +123,9 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when reading from default instance is raising an exception' do
before do
- allow(multi_store.default_store).to receive(name).with(*expected_args).and_raise(StandardError)
+ multi_store.with_borrowed_connection do
+ allow(multi_store.default_store).to receive(name).with(*expected_args).and_raise(StandardError)
+ end
allow(Gitlab::ErrorTracking).to receive(:log_exception)
end
@@ -132,8 +140,10 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when the command is executed within pipelined block' do
subject do
- multi_store.pipelined do |pipeline|
- pipeline.send(name, *args, **kwargs)
+ multi_store.with_borrowed_connection do
+ multi_store.pipelined do |pipeline|
+ pipeline.send(name, *args, **kwargs)
+ end
end
end
@@ -153,7 +163,9 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when block provided' do
subject do
- multi_store.send(name, expected_args) { nil }
+ multi_store.with_borrowed_connection do
+ multi_store.send(name, expected_args) { nil }
+ end
end
it 'only default store to execute' do
@@ -167,7 +179,9 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'with both primary and secondary store using same redis instance' do
let(:primary_store) { create_redis_store(redis_store_class.params, db: primary_db, serializer: nil) }
let(:secondary_store) { create_redis_store(redis_store_class.params, db: primary_db, serializer: nil) }
- let(:multi_store) { described_class.new(primary_store, secondary_store, instance_name) }
+ let(:primary_pool) { ConnectionPool.new { primary_store } }
+ let(:secondary_pool) { ConnectionPool.new { secondary_store } }
+ let(:multi_store) { described_class.new(primary_pool, secondary_pool, instance_name) }
it_behaves_like 'secondary store'
end
@@ -219,8 +233,10 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
subject do
- multi_store.mget(values) do |v|
- multi_store.sadd(skey, v)
+ multi_store.with_borrowed_connection do
+ multi_store.mget(values) do |v|
+ multi_store.sadd(skey, v)
+ end
end
end
@@ -335,19 +351,27 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when executing on the default instance is raising an exception' do
before do
- allow(multi_store.default_store).to receive(name).with(*args).and_raise(StandardError)
+ multi_store.with_borrowed_connection do
+ allow(multi_store.default_store).to receive(name).with(*args).and_raise(StandardError)
+ end
+
allow(Gitlab::ErrorTracking).to receive(:log_exception)
end
it 'raises error and does not execute on non default instance', :aggregate_failures do
- expect(multi_store.non_default_store).not_to receive(name).with(*args)
+ multi_store.with_borrowed_connection do
+ expect(multi_store.non_default_store).not_to receive(name).with(*args)
+ end
+
expect { subject }.to raise_error(StandardError)
end
end
context 'when executing on the non default instance is raising an exception' do
before do
- allow(multi_store.non_default_store).to receive(name).with(*args).and_raise(StandardError)
+ multi_store.with_borrowed_connection do
+ allow(multi_store.non_default_store).to receive(name).with(*args).and_raise(StandardError)
+ end
allow(Gitlab::ErrorTracking).to receive(:log_exception)
end
@@ -355,7 +379,9 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
expect(Gitlab::ErrorTracking).to receive(:log_exception).with(an_instance_of(StandardError),
hash_including(:multi_store_error_message,
command_name: name, instance_name: instance_name))
- expect(multi_store.default_store).to receive(name).with(*args)
+ multi_store.with_borrowed_connection do
+ expect(multi_store.default_store).to receive(name).with(*args)
+ end
subject
end
@@ -363,8 +389,10 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when the command is executed within pipelined block' do
subject do
- multi_store.pipelined do |pipeline|
- pipeline.send(name, *args)
+ multi_store.with_borrowed_connection do
+ multi_store.pipelined do |pipeline|
+ pipeline.send(name, *args)
+ end
end
end
@@ -390,7 +418,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
it "#{store} redis store contains correct values", :aggregate_failures do
subject
- redis_store = multi_store.send(store)
+ redis_store = multi_store.with_borrowed_connection { multi_store.send(store) }
if expected_value.is_a?(Array)
# :smembers does not guarantee the order it will return the values
@@ -425,8 +453,10 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
subject do
- multi_store.send(name) do |redis|
- redis.set(key1, value1)
+ multi_store.with_borrowed_connection do
+ multi_store.send(name) do |redis|
+ redis.set(key1, value1)
+ end
end
end
@@ -444,11 +474,15 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when executing on the default instance is raising an exception' do
before do
- allow(multi_store.default_store).to receive(name).and_raise(StandardError)
+ multi_store.with_borrowed_connection do
+ allow(multi_store.default_store).to receive(name).and_raise(StandardError)
+ end
end
it 'raises error and does not execute on non default instance', :aggregate_failures do
- expect(multi_store.non_default_store).not_to receive(name)
+ multi_store.with_borrowed_connection do
+ expect(multi_store.non_default_store).not_to receive(name)
+ end
expect { subject }.to raise_error(StandardError)
end
@@ -456,14 +490,18 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when executing on the non default instance is raising an exception' do
before do
- allow(multi_store.non_default_store).to receive(name).and_raise(StandardError)
+ multi_store.with_borrowed_connection do
+ allow(multi_store.non_default_store).to receive(name).and_raise(StandardError)
+ end
allow(Gitlab::ErrorTracking).to receive(:log_exception)
end
it 'logs the exception and execute on default instance', :aggregate_failures do
expect(Gitlab::ErrorTracking).to receive(:log_exception).with(an_instance_of(StandardError),
hash_including(:multi_store_error_message, command_name: name))
- expect(multi_store.default_store).to receive(name).and_call_original
+ multi_store.with_borrowed_connection do
+ expect(multi_store.default_store).to receive(name).and_call_original
+ end
subject
end
@@ -481,8 +519,10 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
subject do
- multi_store.send(name) do |redis|
- redis.get(key1)
+ multi_store.with_borrowed_connection do
+ multi_store.send(name) do |redis|
+ redis.get(key1)
+ end
end
end
@@ -501,8 +541,10 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when the value exists on both but differ' do
before do
- multi_store.non_default_store.set(key1, value1)
- multi_store.default_store.set(key1, value2)
+ multi_store.with_borrowed_connection do
+ multi_store.non_default_store.set(key1, value1)
+ multi_store.default_store.set(key1, value2)
+ end
end
it 'returns the value from the secondary store, logging an error' do
@@ -522,7 +564,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when the value does not exist on the non-default store but it does on the default' do
before do
- multi_store.default_store.set(key1, value2)
+ multi_store.with_borrowed_connection { multi_store.default_store.set(key1, value2) }
end
it 'returns the value from the secondary store, logging an error' do
@@ -584,18 +626,22 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
before do
allow(client).to receive(:instance_of?).with(::Redis::Cluster).and_return(true)
allow(pipeline).to receive(:pipelined)
- allow(multi_store.default_store).to receive(:_client).and_return(client)
+ multi_store.with_borrowed_connection do
+ allow(multi_store.default_store).to receive(:_client).and_return(client)
+ end
end
it 'calls cross-slot pipeline within multistore' do
if name == :pipelined
# we intentionally exclude `.and_call_original` since primary_store/secondary_store
# may not be running on a proper Redis Cluster.
- expect(Gitlab::Redis::CrossSlot::Pipeline).to receive(:new)
- .with(multi_store.default_store)
- .exactly(:once)
- .and_return(pipeline)
- expect(Gitlab::Redis::CrossSlot::Pipeline).not_to receive(:new).with(multi_store.non_default_store)
+ multi_store.with_borrowed_connection do
+ expect(Gitlab::Redis::CrossSlot::Pipeline).to receive(:new)
+ .with(multi_store.default_store)
+ .exactly(:once)
+ .and_return(pipeline)
+ expect(Gitlab::Redis::CrossSlot::Pipeline).not_to receive(:new).with(multi_store.non_default_store)
+ end
end
subject
@@ -637,7 +683,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
describe '#ping' do
- subject { multi_store.ping }
+ subject { multi_store.with_borrowed_connection { multi_store.ping } }
context 'when using both stores' do
before do
@@ -652,7 +698,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'with message' do
it 'returns the same message' do
- expect(multi_store.ping('hello world')).to eq('hello world')
+ expect(multi_store.with_borrowed_connection { multi_store.ping('hello world') }).to eq('hello world')
end
end
@@ -757,11 +803,13 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
describe '#blpop' do
let_it_be(:key) { "mylist" }
- subject { multi_store.blpop(key, timeout: 0.1) }
+ subject { multi_store.with_borrowed_connection { multi_store.blpop(key, timeout: 0.1) } }
shared_examples 'calls blpop on default_store' do
it 'calls blpop on default_store' do
- expect(multi_store.default_store).to receive(:blpop).with(key, { timeout: 0.1 })
+ multi_store.with_borrowed_connection do
+ expect(multi_store.default_store).to receive(:blpop).with(key, { timeout: 0.1 })
+ end
subject
end
@@ -769,7 +817,9 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
shared_examples 'does not call lpop on non_default_store' do
it 'does not call blpop on non_default_store' do
- expect(multi_store.non_default_store).not_to receive(:blpop)
+ multi_store.with_borrowed_connection do
+ expect(multi_store.non_default_store).not_to receive(:blpop)
+ end
subject
end
@@ -784,11 +834,13 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context "when an element exists in the default_store" do
before do
- multi_store.default_store.lpush(key, 'abc')
+ multi_store.with_borrowed_connection { multi_store.default_store.lpush(key, 'abc') }
end
it 'calls lpop on non_default_store' do
- expect(multi_store.non_default_store).to receive(:blpop).with(key, { timeout: 1 })
+ multi_store.with_borrowed_connection do
+ expect(multi_store.non_default_store).to receive(:blpop).with(key, { timeout: 1 })
+ end
subject
end
@@ -818,7 +870,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
allow(Gitlab::Metrics).to receive(:counter).and_return(counter)
end
- subject { multi_store.command }
+ subject { multi_store.with_borrowed_connection { multi_store.command } }
context 'when in test environment' do
it 'raises error' do
@@ -868,7 +920,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
context 'when command is in SKIP_LOG_METHOD_MISSING_FOR_COMMANDS' do
- subject { multi_store.info }
+ subject { multi_store.with_borrowed_connection { multi_store.info } }
it 'does not log MethodMissingError' do
expect(Gitlab::ErrorTracking).not_to receive(:log_exception)
@@ -907,7 +959,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
context 'when the command is executed within pipelined block' do
subject do
- multi_store.pipelined(&:command)
+ multi_store.with_borrowed_connection { multi_store.pipelined(&:command) }
end
it 'is executed only 1 time on each instance', :aggregate_failures do
@@ -927,7 +979,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
describe '#to_s' do
- subject { multi_store.to_s }
+ subject { multi_store.with_borrowed_connection { multi_store.to_s } }
it 'returns same value as primary_store' do
is_expected.to eq(primary_store.to_s)
@@ -936,13 +988,17 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
describe '#is_a?' do
it 'returns true for ::Redis::Store' do
- expect(multi_store.is_a?(::Redis::Store)).to be true
+ expect(multi_store.with_borrowed_connection { multi_store.is_a?(::Redis::Store) }).to be true
end
end
describe '#use_primary_and_secondary_stores?' do
+ subject(:use_both) do
+ multi_store.with_borrowed_connection { multi_store.use_primary_and_secondary_stores? }
+ end
+
it 'multi store is enabled' do
- expect(multi_store.use_primary_and_secondary_stores?).to be true
+ expect(use_both).to be true
end
context 'with empty DB' do
@@ -951,7 +1007,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
it 'multi store is disabled' do
- expect(multi_store.use_primary_and_secondary_stores?).to be false
+ expect(use_both).to be false
end
end
@@ -961,14 +1017,18 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
it 'multi store is disabled' do
- expect(multi_store.use_primary_and_secondary_stores?).to be false
+ expect(use_both).to be false
end
end
end
describe '#use_primary_store_as_default?' do
+ subject(:primary_default) do
+ multi_store.with_borrowed_connection { multi_store.use_primary_store_as_default? }
+ end
+
it 'multi store is disabled' do
- expect(multi_store.use_primary_store_as_default?).to be true
+ expect(primary_default).to be true
end
context 'with empty DB' do
@@ -977,7 +1037,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
it 'multi store is disabled' do
- expect(multi_store.use_primary_and_secondary_stores?).to be false
+ expect(primary_default).to be false
end
end
@@ -987,7 +1047,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
end
it 'multi store is disabled' do
- expect(multi_store.use_primary_and_secondary_stores?).to be false
+ expect(primary_default).to be false
end
end
end
@@ -1003,7 +1063,7 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
it 'publishes to one or more stores' do
expect(stores).to all(receive(:publish))
- multi_store.publish(channel_name, message)
+ multi_store.with_borrowed_connection { multi_store.publish(channel_name, message) }
end
end
@@ -1012,14 +1072,14 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
expect(default_store).to receive(:subscribe)
expect(non_default_store).not_to receive(:subscribe)
- multi_store.subscribe(channel_name)
+ multi_store.with_borrowed_connection { multi_store.subscribe(channel_name) }
end
it 'unsubscribes to the default store' do
expect(default_store).to receive(:unsubscribe)
expect(non_default_store).not_to receive(:unsubscribe)
- multi_store.unsubscribe
+ multi_store.with_borrowed_connection { multi_store.unsubscribe }
end
end
@@ -1106,4 +1166,30 @@ RSpec.describe Gitlab::Redis::MultiStore, feature_category: :redis do
expect(duplicated_commands).to be_empty, "commands #{duplicated_commands} defined more than once"
end
end
+
+ describe '.with_borrowed_connection' do
+ it 'permits nested borrows' do
+ multi_store.with_borrowed_connection do
+ expect(Thread.current[multi_store.borrow_counter]).to eq(1)
+
+ multi_store.with_borrowed_connection do
+ multi_store.ping
+
+ expect(Thread.current[multi_store.borrow_counter]).to eq(2)
+ expect(multi_store.primary_store).not_to eq(nil)
+ expect(multi_store.secondary_store).not_to eq(nil)
+ end
+
+ multi_store.ping
+
+ expect(Thread.current[multi_store.borrow_counter]).to eq(1)
+ expect(multi_store.primary_store).not_to eq(nil)
+ expect(multi_store.secondary_store).not_to eq(nil)
+ end
+
+ expect(Thread.current[multi_store.borrow_counter]).to eq(0)
+ expect(multi_store.primary_store).to eq(nil)
+ expect(multi_store.secondary_store).to eq(nil)
+ end
+ end
end
diff --git a/spec/lib/gitlab/redis/sessions_spec.rb b/spec/lib/gitlab/redis/sessions_spec.rb
index b02864cb73d..874822e3e6a 100644
--- a/spec/lib/gitlab/redis/sessions_spec.rb
+++ b/spec/lib/gitlab/redis/sessions_spec.rb
@@ -5,27 +5,6 @@ require 'spec_helper'
RSpec.describe Gitlab::Redis::Sessions do
it_behaves_like "redis_new_instance_shared_examples", 'sessions', Gitlab::Redis::SharedState
- describe 'redis instance used in connection pool' do
- around do |example|
- clear_pool
- example.run
- ensure
- clear_pool
- end
-
- it 'uses ::Redis instance' do
- described_class.pool.with do |redis_instance|
- expect(redis_instance).to be_instance_of(::Redis)
- end
- end
-
- def clear_pool
- described_class.remove_instance_variable(:@pool)
- rescue NameError
- # raised if @pool was not set; ignore
- end
- end
-
describe '#store' do
subject(:store) { described_class.store(namespace: described_class::SESSION_NAMESPACE) }
diff --git a/spec/lib/gitlab/redis/shared_state_spec.rb b/spec/lib/gitlab/redis/shared_state_spec.rb
index a5247903d50..fe8f42cf8eb 100644
--- a/spec/lib/gitlab/redis/shared_state_spec.rb
+++ b/spec/lib/gitlab/redis/shared_state_spec.rb
@@ -6,4 +6,5 @@ RSpec.describe Gitlab::Redis::SharedState do
let(:instance_specific_config_file) { "config/redis.shared_state.yml" }
include_examples "redis_shared_examples"
+ include_examples "multi_store_wrapper_shared_examples"
end
diff --git a/spec/lib/gitlab/runtime_spec.rb b/spec/lib/gitlab/runtime_spec.rb
index 05bcdf2fc96..bd5914c9df8 100644
--- a/spec/lib/gitlab/runtime_spec.rb
+++ b/spec/lib/gitlab/runtime_spec.rb
@@ -127,10 +127,10 @@ RSpec.describe Gitlab::Runtime, feature_category: :cloud_connector do
before do
stub_const('::Sidekiq', sidekiq_type)
allow(sidekiq_type).to receive(:server?).and_return(true)
- allow(sidekiq_type).to receive(:[]).with(:concurrency).and_return(2)
+ allow(sidekiq_type).to receive(:default_configuration).and_return({ concurrency: 2 })
end
- it_behaves_like "valid runtime", :sidekiq, 5
+ it_behaves_like "valid runtime", :sidekiq, 2
it 'identifies as an application runtime' do
expect(described_class.application?).to be true
diff --git a/spec/lib/gitlab/security/scan_configuration_spec.rb b/spec/lib/gitlab/security/scan_configuration_spec.rb
index 9151db3c5ff..491be85584b 100644
--- a/spec/lib/gitlab/security/scan_configuration_spec.rb
+++ b/spec/lib/gitlab/security/scan_configuration_spec.rb
@@ -86,4 +86,105 @@ RSpec.describe ::Gitlab::Security::ScanConfiguration do
it { is_expected.to be_falsey }
end
end
+
+ describe '#security_features' do
+ subject { scan.security_features }
+
+ using RSpec::Parameterized::TableSyntax
+
+ where(:scan_type, :features_hash) do
+ :sast | { name: "Static Application Security Testing (SAST)",
+ short_name: "SAST",
+ description: "Analyze your source code for known vulnerabilities.",
+ help_path: "/help/user/application_security/sast/index",
+ configuration_help_path: "/help/user/application_security/sast/index#configuration",
+ type: "sast" }
+ :sast_iac | { name: "Infrastructure as Code (IaC) Scanning",
+ short_name: "SAST IaC",
+ description: "Analyze your infrastructure as code configuration files for known vulnerabilities.",
+ help_path: "/help/user/application_security/iac_scanning/index",
+ configuration_help_path: "/help/user/application_security/iac_scanning/index#configuration",
+ type: "sast_iac" }
+ :dast | {
+ badge: { text: "Available on demand",
+ tooltip_text: "On-demand scans run outside of the DevOps " \
+ "cycle and find vulnerabilities in your projects",
+ variant: "info" },
+ secondary: {
+ type: "dast_profiles",
+ name: "DAST profiles",
+ description: "Manage profiles for use by DAST scans.",
+ configuration_text: "Manage profiles"
+ },
+ name: "Dynamic Application Security Testing (DAST)",
+ short_name: "DAST",
+ description: "Analyze a deployed version of your web application for known " \
+ "vulnerabilities by examining it from the outside in. DAST works by simulating " \
+ "external attacks on your application while it is running.",
+ help_path: "/help/user/application_security/dast/index",
+ configuration_help_path: "/help/user/application_security/dast/index#enable-automatic-dast-run",
+ type: "dast",
+ anchor: "dast"
+ }
+ :dependency_scanning | { name: "Dependency Scanning",
+ description: "Analyze your dependencies for known vulnerabilities.",
+ help_path: "/help/user/application_security/dependency_scanning/index",
+ configuration_help_path: "/help/user/application_security/dependency_scanning/index#configuration",
+ type: "dependency_scanning",
+ anchor: "dependency-scanning" }
+ :container_scanning | { name: "Container Scanning",
+ description: "Check your Docker images for known vulnerabilities.",
+ help_path: "/help/user/application_security/container_scanning/index",
+ configuration_help_path: "/help/user/application_security/container_scanning/index#configuration",
+ type: "container_scanning" }
+ :secret_detection | { name: "Secret Detection",
+ description: "Analyze your source code and git history for secrets.",
+ help_path: "/help/user/application_security/secret_detection/index",
+ configuration_help_path: "/help/user/application_security/secret_detection/index#configuration",
+ type: "secret_detection" }
+ :api_fuzzing | { name: "API Fuzzing",
+ description: "Find bugs in your code with API fuzzing.",
+ help_path: "/help/user/application_security/api_fuzzing/index",
+ type: "api_fuzzing" }
+ :coverage_fuzzing | { name: "Coverage Fuzzing",
+ description: "Find bugs in your code with coverage-guided fuzzing.",
+ help_path: "/help/user/application_security/coverage_fuzzing/index",
+ configuration_help_path: \
+ "/help/user/application_security/coverage_fuzzing/index#enable-coverage-guided-fuzz-testing",
+ type: "coverage_fuzzing",
+ secondary: { type: "corpus_management",
+ name: "Corpus Management",
+ description: "Manage corpus files used as " \
+ "seed inputs with coverage-guided fuzzing.",
+ configuration_text: "Manage corpus" } }
+ :breach_and_attack_simulation | { anchor: "bas",
+ badge: { always_display: true,
+ text: "Incubating feature",
+ tooltip_text: "Breach and Attack Simulation is an incubating feature " \
+ "extending existing security " \
+ "testing by simulating adversary activity.",
+ variant: "info" },
+ description: "Simulate breach and attack scenarios against your running " \
+ "application by attempting to detect " \
+ "and exploit known vulnerabilities.",
+ name: "Breach and Attack Simulation (BAS)",
+ help_path: "/help/user/application_security/breach_and_attack_simulation/index",
+ secondary: { configuration_help_path: "/help/user/application_security/breach_and_attack_simulation/" \
+ "index#extend-dynamic-application-security-testing-dast",
+ description: "Enable incubating Breach and " \
+ "Attack Simulation focused features " \
+ "such as callback attacks in your DAST scans.",
+ name: "Out-of-Band Application Security Testing (OAST)" },
+ short_name: "BAS",
+ type: "breach_and_attack_simulation" }
+ :invalid | {}
+ end
+
+ with_them do
+ let(:type) { scan_type }
+ let(:configured) { true }
+
+ it { is_expected.to eq features_hash }
+ end
+ end
end
diff --git a/spec/lib/gitlab/sidekiq_config_spec.rb b/spec/lib/gitlab/sidekiq_config_spec.rb
index 5885151ecb5..f741fd8fae9 100644
--- a/spec/lib/gitlab/sidekiq_config_spec.rb
+++ b/spec/lib/gitlab/sidekiq_config_spec.rb
@@ -186,7 +186,8 @@ RSpec.describe Gitlab::SidekiqConfig do
allow(::Gitlab::SidekiqConfig::WorkerRouter)
.to receive(:global).and_return(::Gitlab::SidekiqConfig::WorkerRouter.new(test_routes))
- allow(Sidekiq).to receive(:[]).with(:queues).and_return(%w[default background_migration])
+ allow(Sidekiq).to receive_message_chain(:default_configuration, :queues)
+ .and_return(%w[default background_migration])
mappings = described_class.current_worker_queue_mappings
diff --git a/spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb b/spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb
index 2e07fa100e8..b1a8a9f4da3 100644
--- a/spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb
+++ b/spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb
@@ -492,7 +492,7 @@ RSpec.describe Gitlab::SidekiqLogging::StructuredLogger do
'completed_at' => current_utc_time.to_i }
end
- subject { described_class.new }
+ subject { described_class.new(Sidekiq.logger) }
it 'update payload correctly' do
travel_to(current_utc_time) do
diff --git a/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb b/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
index 9cf9901007c..e1662903fa4 100644
--- a/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
+++ b/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe Gitlab::SidekiqMiddleware::ServerMetrics, feature_category: :shar
describe '.initialize_process_metrics' do
it 'sets concurrency metrics' do
- expect(concurrency_metric).to receive(:set).with({}, Sidekiq[:concurrency].to_i)
+ expect(concurrency_metric).to receive(:set).with({}, Sidekiq.default_configuration[:concurrency].to_i)
described_class.initialize_process_metrics
end
@@ -122,7 +122,7 @@ RSpec.describe Gitlab::SidekiqMiddleware::ServerMetrics, feature_category: :shar
end
it 'sets the concurrency metric' do
- expect(concurrency_metric).to receive(:set).with({}, Sidekiq[:concurrency].to_i)
+ expect(concurrency_metric).to receive(:set).with({}, Sidekiq.default_configuration[:concurrency].to_i)
described_class.initialize_process_metrics
end
diff --git a/spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb b/spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb
index bf379d9cb0d..96d4042b1e6 100644
--- a/spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb
+++ b/spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb
@@ -22,7 +22,7 @@ RSpec.describe Gitlab::SidekiqMigrateJobs, :clean_gitlab_redis_queues,
let(:migrator) { described_class.new(mappings) }
let(:set_after) do
- Sidekiq.redis { |c| c.zrange(set_name, 0, -1, with_scores: true) }
+ Sidekiq.redis { |c| c.call("ZRANGE", set_name, 0, -1, "WITHSCORES") }
.map { |item, score| [Gitlab::Json.load(item), score] }
end
@@ -226,8 +226,9 @@ RSpec.describe Gitlab::SidekiqMigrateJobs, :clean_gitlab_redis_queues,
let(:logger) { nil }
def list_queues
- queues = Sidekiq.redis do |conn|
- conn.scan_each(match: "queue:*").to_a
+ queues = []
+ Sidekiq.redis do |conn|
+ conn.scan("MATCH", "queue:*") { |key| queues << key }
end
queues.uniq.map { |queue| queue.split(':', 2).last }
end
diff --git a/spec/lib/gitlab/sidekiq_status_spec.rb b/spec/lib/gitlab/sidekiq_status_spec.rb
index 55e3885d257..ecdab2651a2 100644
--- a/spec/lib/gitlab/sidekiq_status_spec.rb
+++ b/spec/lib/gitlab/sidekiq_status_spec.rb
@@ -174,7 +174,7 @@ RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues,
context 'when both multi-store feature flags are off' do
def with_redis(&block)
- Sidekiq.redis(&block)
+ Gitlab::Redis::Queues.with(&block)
end
before do
diff --git a/spec/lib/gitlab/ssh/commit_spec.rb b/spec/lib/gitlab/ssh/commit_spec.rb
index 3b53ed9d1db..0d2621a16c0 100644
--- a/spec/lib/gitlab/ssh/commit_spec.rb
+++ b/spec/lib/gitlab/ssh/commit_spec.rb
@@ -28,7 +28,7 @@ RSpec.describe Gitlab::Ssh::Commit, feature_category: :source_code_management do
})
allow(Gitlab::Ssh::Signature).to receive(:new)
- .with(signature_text, signed_text, signer, commit.committer_email)
+ .with(signature_text, signed_text, signer, commit)
.and_return(verifier)
end
diff --git a/spec/lib/gitlab/ssh/signature_spec.rb b/spec/lib/gitlab/ssh/signature_spec.rb
index cb0b1ff049c..608fa9d71d0 100644
--- a/spec/lib/gitlab/ssh/signature_spec.rb
+++ b/spec/lib/gitlab/ssh/signature_spec.rb
@@ -8,7 +8,9 @@ RSpec.describe Gitlab::Ssh::Signature, feature_category: :source_code_management
let_it_be(:public_key_text) { 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHZ8NHEnCIpC4mnot+BRxv6L+fq+TnN1CgsRrHWLmfwb' }
let_it_be_with_reload(:user) { create(:user, email: committer_email) }
let_it_be_with_reload(:key) { create(:key, usage_type: :signing, key: public_key_text, user: user) }
+ let_it_be_with_reload(:project) { create(:project, :repository, :in_group) }
+ let(:commit) { project.commit }
let(:signed_text) { 'This message was signed by an ssh key' }
let(:signer) { :SIGNER_USER }
@@ -24,12 +26,16 @@ RSpec.describe Gitlab::Ssh::Signature, feature_category: :source_code_management
SIG
end
+ before do
+ allow(commit).to receive(:committer_email).and_return(committer_email)
+ end
+
subject(:signature) do
described_class.new(
signature_text,
signed_text,
signer,
- committer_email
+ commit
)
end
@@ -283,5 +289,30 @@ RSpec.describe Gitlab::Ssh::Signature, feature_category: :source_code_management
it 'returns the pubkey sha256 fingerprint' do
expect(signature.key_fingerprint).to eq('dw7gPSvYtkCBU+BbTolbbckUEX3sL6NsGIJTQ4PYEnM')
end
+
+ context 'when a signature has been created with a certificate' do
+ let(:signature_text) do
+ # ssh-keygen -Y sign -n git -f id_test-cert.pub message.txt
+ <<~SIG
+ -----BEGIN SSH SIGNATURE-----
+ U1NIU0lHAAAAAQAAAb0AAAAgc3NoLWVkMjU1MTktY2VydC12MDFAb3BlbnNzaC5jb20AAA
+ AgWbXlnjWbxTzOlRPcnSMlQQnnJTCsEv2y2ij5o7yVbcUAAAAgYAsBVqgfGrvGdSPjqY0H
+ t8yljpOS4VumZHnAh+wCvdEAAAAAAAAAAAAAAAEAAAARYWRtaW5AZXhhbXBsZS5jb20AAA
+ AAAAAAAGV9kqgAAAAAZX7kiwAAAAAAAACCAAAAFXBlcm1pdC1YMTEtZm9yd2FyZGluZwAA
+ AAAAAAAXcGVybWl0LWFnZW50LWZvcndhcmRpbmcAAAAAAAAAFnBlcm1pdC1wb3J0LWZvcn
+ dhcmRpbmcAAAAAAAAACnBlcm1pdC1wdHkAAAAAAAAADnBlcm1pdC11c2VyLXJjAAAAAAAA
+ AAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIINudhvW7P4c36bBwlWTaxnCCOaSfMrUbXHcP7
+ 7zH6LyAAAAUwAAAAtzc2gtZWQyNTUxOQAAAEBp9J9YQhaz+tNIKtNpZe5sAxcqvMgcYlB+
+ fVaDsYNOj445Bz7TBoFqjrs95yaF6pwARK11IEQTcwtrihLGzGkNAAAAA2dpdAAAAAAAAA
+ AGc2hhNTEyAAAAUwAAAAtzc2gtZWQyNTUxOQAAAECfVh7AzwqRBMbnHBApCnMpu9Y1qpGM
+ sOSL1EeV3SIOlrThNTCerUpcaizcSY9L8WwP2TXlqw2Sq1BGM+PPSN0C
+ -----END SSH SIGNATURE-----
+ SIG
+ end
+
+ it 'returns public key fingerprint' do
+ expect(signature.key_fingerprint).to eq('3dNIFKfIAXZb/JL30KKv95cps+mZwVAuAYQhIWxAb+8')
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/themes_spec.rb b/spec/lib/gitlab/themes_spec.rb
index a41f7d927fe..a5d42945101 100644
--- a/spec/lib/gitlab/themes_spec.rb
+++ b/spec/lib/gitlab/themes_spec.rb
@@ -47,18 +47,4 @@ RSpec.describe Gitlab::Themes, lib: true do
expect(ids).not_to be_empty
end
end
-
- describe 'theme.css_filename' do
- described_class.each do |theme|
- next unless theme.css_filename
-
- context "for #{theme.name}" do
- it 'returns an existing CSS filename' do
- css_file_path = Rails.root.join('app/assets/stylesheets/themes', theme.css_filename + '.scss')
-
- expect(File.exist?(css_file_path)).to eq(true)
- end
- end
- end
- end
end
diff --git a/spec/lib/gitlab/tracking/destinations/database_events_snowplow_spec.rb b/spec/lib/gitlab/tracking/destinations/database_events_snowplow_spec.rb
deleted file mode 100644
index 5a5c7123971..00000000000
--- a/spec/lib/gitlab/tracking/destinations/database_events_snowplow_spec.rb
+++ /dev/null
@@ -1,140 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Gitlab::Tracking::Destinations::DatabaseEventsSnowplow, :do_not_stub_snowplow_by_default, feature_category: :application_instrumentation do
- let(:emitter) { SnowplowTracker::Emitter.new(endpoint: 'localhost', options: { buffer_size: 1 }) }
-
- let(:tracker) do
- SnowplowTracker::Tracker
- .new(
- emitters: [emitter],
- subject: SnowplowTracker::Subject.new,
- namespace: 'namespace',
- app_id: 'app_id'
- )
- end
-
- before do
- stub_application_setting(snowplow_app_id: '_abc123_')
- end
-
- around do |example|
- freeze_time { example.run }
- end
-
- context 'when snowplow is enabled' do
- before do
- allow(SnowplowTracker::AsyncEmitter)
- .to receive(:new)
- .with(endpoint: endpoint,
- options:
- {
- protocol: 'https',
- on_success: subject.method(:increment_successful_events_emissions),
- on_failure: subject.method(:failure_callback)
- }
- ).and_return(emitter)
-
- allow(SnowplowTracker::Tracker)
- .to receive(:new)
- .with(
- emitters: [emitter],
- subject: an_instance_of(SnowplowTracker::Subject),
- namespace: described_class::SNOWPLOW_NAMESPACE,
- app_id: '_abc123_'
- ).and_return(tracker)
- end
-
- describe '#event' do
- let(:endpoint) { 'localhost:9091' }
- let(:event_params) do
- {
- category: 'category',
- action: 'action',
- label: 'label',
- property: 'property',
- value: 1.5,
- context: nil,
- tstamp: (Time.now.to_f * 1000).to_i
- }
- end
-
- context 'when on gitlab.com environment' do
- let(:endpoint) { 'db-snowplow.trx.gitlab.net' }
-
- before do
- stub_application_setting(snowplow_database_collector_hostname: endpoint)
- end
-
- it 'sends event to tracker' do
- allow(Gitlab).to receive(:com?).and_return(true)
- allow(tracker).to receive(:track_struct_event).and_call_original
-
- subject.event('category', 'action', label: 'label', property: 'property', value: 1.5)
-
- expect(tracker).to have_received(:track_struct_event).with(event_params)
- end
- end
-
- it 'sends event to tracker' do
- allow(tracker).to receive(:track_struct_event).and_call_original
-
- subject.event('category', 'action', label: 'label', property: 'property', value: 1.5)
-
- expect(tracker).to have_received(:track_struct_event).with(event_params)
- end
-
- it 'increase total snowplow events counter' do
- counter = double
-
- expect(counter).to receive(:increment)
- expect(Gitlab::Metrics).to receive(:counter)
- .with(:gitlab_db_events_snowplow_events_total, 'Number of Snowplow events')
- .and_return(counter)
-
- subject.event('category', 'action', label: 'label', property: 'property', value: 1.5)
- end
- end
- end
-
- context 'for callbacks' do
- describe 'on success' do
- it 'increase gitlab_successful_snowplow_events_total counter' do
- counter = double
-
- expect(counter).to receive(:increment).with({}, 2)
- expect(Gitlab::Metrics).to receive(:counter)
- .with(
- :gitlab_db_events_snowplow_successful_events_total,
- 'Number of successful Snowplow events emissions').and_return(counter)
-
- subject.method(:increment_successful_events_emissions).call(2)
- end
- end
-
- describe 'on failure' do
- it 'increase gitlab_failed_snowplow_events_total counter and logs failures', :aggregate_failures do
- counter = double
- error_message = "Issue database_event_update failed to be reported to collector at localhost:9091"
- failures = [{ "e" => "se",
- "se_ca" => "Issue",
- "se_la" => "issues",
- "se_ac" => "database_event_update" }]
- allow(Gitlab::Metrics).to receive(:counter)
- .with(
- :gitlab_db_events_snowplow_successful_events_total,
- 'Number of successful Snowplow events emissions').and_call_original
-
- expect(Gitlab::AppLogger).to receive(:error).with(error_message)
- expect(counter).to receive(:increment).with({}, 1)
- expect(Gitlab::Metrics).to receive(:counter)
- .with(
- :gitlab_db_events_snowplow_failed_events_total,
- 'Number of failed Snowplow events emissions').and_return(counter)
-
- subject.method(:failure_callback).call(2, failures)
- end
- end
- end
-end
diff --git a/spec/lib/gitlab/tracking/event_definition_spec.rb b/spec/lib/gitlab/tracking/event_definition_spec.rb
index 5e41c691da8..7c5047dc0c6 100644
--- a/spec/lib/gitlab/tracking/event_definition_spec.rb
+++ b/spec/lib/gitlab/tracking/event_definition_spec.rb
@@ -31,10 +31,6 @@ RSpec.describe Gitlab::Tracking::EventDefinition do
File.write(path, content)
end
- it 'has all definitions valid' do
- expect { described_class.definitions }.not_to raise_error
- end
-
it 'has no duplicated actions in InternalEventTracking events', :aggregate_failures do
definitions_by_action = described_class.definitions
.select { |d| d.category == 'InternalEventTracking' }
@@ -85,10 +81,8 @@ RSpec.describe Gitlab::Tracking::EventDefinition do
attributes[attribute] = value
end
- it 'raise exception' do
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).at_least(:once).with(instance_of(Gitlab::Tracking::InvalidEventError))
-
- described_class.new(path, attributes).validate!
+ it 'has validation errors' do
+ expect(described_class.new(path, attributes).validation_errors).not_to be_empty
end
end
end
diff --git a/spec/lib/gitlab/tracking/event_definition_validate_all_spec.rb b/spec/lib/gitlab/tracking/event_definition_validate_all_spec.rb
new file mode 100644
index 00000000000..cc2ccc511bb
--- /dev/null
+++ b/spec/lib/gitlab/tracking/event_definition_validate_all_spec.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Tracking::EventDefinition, feature_category: :product_analytics_data_management do
+ it 'only has valid event definitions', :aggregate_failures do
+ described_class.definitions.each do |definition|
+ validation_errors = definition.validation_errors
+ expect(validation_errors).to be_empty, validation_errors.join
+ end
+ end
+end
diff --git a/spec/lib/gitlab/tracking_spec.rb b/spec/lib/gitlab/tracking_spec.rb
index 46213532071..6e4ab00d04f 100644
--- a/spec/lib/gitlab/tracking_spec.rb
+++ b/spec/lib/gitlab/tracking_spec.rb
@@ -165,38 +165,6 @@ RSpec.describe Gitlab::Tracking, feature_category: :application_instrumentation
end
end
- describe '.database_event' do
- context 'when the action is not passed in as a string' do
- it 'allows symbols' do
- expect(Gitlab::ErrorTracking).not_to receive(:track_and_raise_for_dev_exception)
-
- described_class.database_event('category', :some_action)
- end
-
- it 'allows nil' do
- expect(Gitlab::ErrorTracking).not_to receive(:track_and_raise_for_dev_exception)
-
- described_class.database_event('category', nil)
- end
-
- it 'allows integers' do
- expect(Gitlab::ErrorTracking).not_to receive(:track_and_raise_for_dev_exception)
-
- described_class.database_event('category', 1)
- end
- end
-
- it_behaves_like 'rescued error raised by destination class' do
- let(:category) { 'Issue' }
- let(:action) { 'created' }
- let(:destination_class) { Gitlab::Tracking::Destinations::DatabaseEventsSnowplow }
-
- subject(:tracking_method) { described_class.database_event(category, action) }
- end
-
- it_behaves_like 'delegates to destination', Gitlab::Tracking::Destinations::DatabaseEventsSnowplow, :database_event
- end
-
describe '.event' do
context 'when the action is not passed in as a string' do
it 'allows symbols' do
diff --git a/spec/lib/gitlab/usage/metric_definition_spec.rb b/spec/lib/gitlab/usage/metric_definition_spec.rb
index fb46d48c1bb..caa114cb00f 100644
--- a/spec/lib/gitlab/usage/metric_definition_spec.rb
+++ b/spec/lib/gitlab/usage/metric_definition_spec.rb
@@ -33,6 +33,14 @@ RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :service_ping
described_class.instance_variable_set(:@definitions, nil)
end
+ def expect_validation_errors
+ expect(described_class.new(path, attributes).validation_errors).not_to be_empty
+ end
+
+ def expect_no_validation_errors
+ expect(described_class.new(path, attributes).validation_errors).to be_empty
+ end
+
def write_metric(metric, path, content)
path = File.join(metric, path)
dir = File.dirname(path)
@@ -40,12 +48,6 @@ RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :service_ping
File.write(path, content)
end
- it 'has only valid definitions' do
- described_class.all.each do |definition|
- expect { definition.validate! }.not_to raise_error
- end
- end
-
describe '.instrumentation_class' do
context 'for non internal events' do
let(:attributes) { { key_path: 'metric1', instrumentation_class: 'RedisHLLMetric', data_source: 'redis_hll' } }
@@ -197,10 +199,8 @@ RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :service_ping
attributes[attribute] = value
end
- it 'raise exception' do
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).at_least(:once).with(instance_of(Gitlab::Usage::MetricDefinition::InvalidError))
-
- described_class.new(path, attributes).validate!
+ it 'has validation errors' do
+ expect_validation_errors
end
end
@@ -210,9 +210,7 @@ RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :service_ping
attributes[:status] = 'broken'
attributes.delete(:repair_issue_url)
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).at_least(:once).with(instance_of(Gitlab::Usage::MetricDefinition::InvalidError))
-
- described_class.new(path, attributes).validate!
+ expect_validation_errors
end
end
@@ -221,20 +219,16 @@ RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :service_ping
attributes[:status] = 'removed'
end
- it 'raise dev exception when removed_by_url is not provided' do
+ it 'has validation errors when removed_by_url is not provided' do
attributes.delete(:removed_by_url)
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).at_least(:once).with(instance_of(Gitlab::Usage::MetricDefinition::InvalidError))
-
- described_class.new(path, attributes).validate!
+ expect_validation_errors
end
- it 'raises dev exception when milestone_removed is not provided' do
+ it 'has validation errors when milestone_removed is not provided' do
attributes.delete(:milestone_removed)
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).at_least(:once).with(instance_of(Gitlab::Usage::MetricDefinition::InvalidError))
-
- described_class.new(path, attributes).validate!
+ expect_validation_errors
end
end
@@ -251,18 +245,16 @@ RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :service_ping
end
with_them do
- it 'raises dev exception when invalid' do
+ it 'has validation errors when invalid' do
attributes[:instrumentation_class] = instrumentation_class if instrumentation_class
attributes[:options] = options if options
attributes[:events] = events if events
if is_valid
- expect(Gitlab::ErrorTracking).not_to receive(:track_and_raise_for_dev_exception)
+ expect_no_validation_errors
else
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).at_least(:once).with(instance_of(Gitlab::Usage::MetricDefinition::InvalidError))
+ expect_validation_errors
end
-
- described_class.new(path, attributes).validate!
end
end
end
@@ -294,12 +286,10 @@ RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :service_ping
attributes[:options] = options
if is_valid
- expect(Gitlab::ErrorTracking).not_to receive(:track_and_raise_for_dev_exception)
+ expect_no_validation_errors
else
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).at_least(:once).with(instance_of(Gitlab::Usage::MetricDefinition::InvalidError))
+ expect_validation_errors
end
-
- described_class.new(path, attributes).validate!
end
end
end
@@ -340,12 +330,10 @@ RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :service_ping
attributes[:options] = options
if is_valid
- expect(Gitlab::ErrorTracking).not_to receive(:track_and_raise_for_dev_exception)
+ expect_no_validation_errors
else
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).at_least(:once).with(instance_of(Gitlab::Usage::MetricDefinition::InvalidError))
+ expect_validation_errors
end
-
- described_class.new(path, attributes).validate!
end
end
end
diff --git a/spec/lib/gitlab/usage/metric_definition_validate_all_spec.rb b/spec/lib/gitlab/usage/metric_definition_validate_all_spec.rb
new file mode 100644
index 00000000000..d6255b54068
--- /dev/null
+++ b/spec/lib/gitlab/usage/metric_definition_validate_all_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Usage::MetricDefinition, feature_category: :product_analytics_data_management do
+ # rubocop:disable Rails/FindEach -- The all method invoked here is unrelated to the ActiveRecord scope all
+ it 'only has valid metric definitions', :aggregate_failures do
+ described_class.all.each do |definition|
+ validation_errors = definition.validation_errors
+ expect(validation_errors).to be_empty, validation_errors.join
+ end
+ end
+ # rubocop:enable Rails/FindEach
+end
diff --git a/spec/lib/gitlab/usage/service_ping_report_spec.rb b/spec/lib/gitlab/usage/service_ping_report_spec.rb
index a848c286fa9..09866198639 100644
--- a/spec/lib/gitlab/usage/service_ping_report_spec.rb
+++ b/spec/lib/gitlab/usage/service_ping_report_spec.rb
@@ -168,11 +168,6 @@ RSpec.describe Gitlab::Usage::ServicePingReport, :use_clean_rails_memory_store_c
memoized_constatns += Gitlab::UsageData::EE_MEMOIZED_VALUES if defined? Gitlab::UsageData::EE_MEMOIZED_VALUES
memoized_constatns.each { |v| Gitlab::UsageData.clear_memoization(v) }
stub_database_flavor_check('Cloud SQL for PostgreSQL')
-
- # in_product_marketing_email metrics values are extracted from a single group by query
- # to check if the queries for individual metrics return the same value as group by when the value is non-zero
- create(:in_product_marketing_email, track: :create, series: 0, cta_clicked_at: Time.current)
- create(:in_product_marketing_email, track: :verify, series: 0)
end
let(:service_ping_payload) { described_class.for(output: :all_metrics_values) }
diff --git a/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb
index 2c9506dd498..05938fa08cd 100644
--- a/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb
@@ -50,18 +50,6 @@ RSpec.describe Gitlab::UsageDataCounters::CiTemplateUniqueCounter, feature_categ
end
end
- context 'with implicit includes', :snowplow do
- let(:config_source) { :auto_devops_source }
-
- described_class.all_included_templates('Auto-DevOps.gitlab-ci.yml').each do |template_name|
- context "for #{template_name}" do
- let(:template_path) { Gitlab::Template::GitlabCiYmlTemplate.find(template_name.delete_suffix('.gitlab-ci.yml')).full_name }
-
- include_examples 'tracks template'
- end
- end
- end
-
it 'expands short template names' do
expect do
described_class.track_unique_project_event(project: project, template: 'Dependency-Scanning.gitlab-ci.yml', config_source: :repository_source, user: user)
diff --git a/spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb
index a7dc0b6a060..da8098bfee1 100644
--- a/spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb
@@ -168,6 +168,54 @@ RSpec.describe Gitlab::UsageDataCounters::HLLRedisCounter, :clean_gitlab_redis_s
end
end
end
+
+ describe "redis key overrides" do
+ let(:event_name) { "g_analytics_contribution" }
+
+ before do
+ allow(File).to receive(:read).and_call_original
+ allow(File).to receive(:read).with(described_class::KEY_OVERRIDES_PATH).and_return(overrides_file_content)
+ end
+
+ after do
+ described_class.clear_memoization(:key_overrides)
+ end
+
+ context "with an empty file" do
+ let(:overrides_file_content) { "{}" }
+
+ it "tracks the events using original Redis key" do
+ expected_key = "{hll_counters}_#{event_name}-2020-23"
+ expect(Gitlab::Redis::HLL).to receive(:add).with(hash_including(key: expected_key))
+
+ described_class.track_event(event_name, values: entity1)
+ end
+ end
+
+ context "with the file including overrides" do
+ let(:overrides_file_content) { "#{event_name}1: new_key2\n#{event_name}: new_key" }
+
+ context "when the event is included in overrides file" do
+ it "tracks the events using overridden Redis key" do
+ expected_key = "{hll_counters}_new_key-2020-23"
+ expect(Gitlab::Redis::HLL).to receive(:add).with(hash_including(key: expected_key))
+
+ described_class.track_event(:g_analytics_contribution, values: entity1)
+ end
+ end
+
+ context "when the event is not included in overrides file" do
+ let(:not_overridden_name) { "g_compliance_dashboard" }
+
+ it "tracks the events using original Redis key" do
+ expected_key = "{hll_counters}_#{not_overridden_name}-2020-23"
+ expect(Gitlab::Redis::HLL).to receive(:add).with(hash_including(key: expected_key))
+
+ described_class.track_event(not_overridden_name, values: entity1)
+ end
+ end
+ end
+ end
end
describe '.unique_events' do
@@ -236,6 +284,16 @@ RSpec.describe Gitlab::UsageDataCounters::HLLRedisCounter, :clean_gitlab_redis_s
end
end
end
+
+ describe 'key overrides file' do
+ let(:key_overrides) { YAML.safe_load(File.read(described_class::KEY_OVERRIDES_PATH)) }
+
+ it "has a valid structure", :aggregate_failures do
+ expect(key_overrides).to be_a(Hash)
+
+ expect(key_overrides.keys + key_overrides.values).to all(be_a(String))
+ end
+ end
end
describe '.keys_for_aggregation' do
diff --git a/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb
index c3a718e669a..5c03ccb0d71 100644
--- a/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb
@@ -55,14 +55,6 @@ RSpec.describe Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter, :cl
let(:merge_request) { create(:merge_request) }
let(:target_project) { merge_request.target_project }
- it_behaves_like 'a tracked merge request unique event' do
- let(:action) { described_class::MR_USER_CREATE_ACTION }
- end
-
- it_behaves_like 'a tracked merge request unique event' do
- let(:action) { described_class::MR_CREATE_ACTION }
- end
-
it_behaves_like 'internal event tracking' do
let(:event) { described_class::MR_USER_CREATE_ACTION }
let(:project) { target_project }
diff --git a/spec/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter_spec.rb
index 1940442d2ad..903ae64cf33 100644
--- a/spec/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter_spec.rb
@@ -31,6 +31,14 @@ RSpec.describe Gitlab::UsageDataCounters::QuickActionActivityUniqueCounter, :cle
end
end
+ context 'when tracking react' do
+ let(:quickaction_name) { 'react' }
+
+ it_behaves_like 'a tracked quick action unique event' do
+ let(:action) { 'i_quickactions_award' }
+ end
+ end
+
context 'tracking assigns' do
let(:quickaction_name) { 'assign' }
diff --git a/spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb
index aaf509b6f81..0ab5dec8ecf 100644
--- a/spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb
@@ -44,4 +44,12 @@ RSpec.describe Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter, :clean_
it_behaves_like 'work item unique counter'
end
+
+ describe '.track_work_item_todo_marked_action' do
+ subject(:track_event) { described_class.track_work_item_mark_todo_action(author: user) }
+
+ let(:event_name) { described_class::WORK_ITEM_TODO_MARKED }
+
+ it_behaves_like 'work item unique counter'
+ end
end
diff --git a/spec/lib/integrations/google_cloud_platform/artifact_registry/client_spec.rb b/spec/lib/integrations/google_cloud_platform/artifact_registry/client_spec.rb
index 36fa350e46f..a258518953a 100644
--- a/spec/lib/integrations/google_cloud_platform/artifact_registry/client_spec.rb
+++ b/spec/lib/integrations/google_cloud_platform/artifact_registry/client_spec.rb
@@ -26,6 +26,10 @@ RSpec.describe Integrations::GoogleCloudPlatform::ArtifactRegistry::Client, feat
describe '#list_docker_images' do
let(:page_token) { nil }
+ let(:expected_url) do
+ "#{described_class::GLGO_BASE_URL}/gcp/ar/projects/#{gcp_project_id}/" \
+ "locations/#{gcp_location}/repositories/#{gcp_repository}/docker"
+ end
subject(:list) { client.list_docker_images(page_token: page_token) }
@@ -36,6 +40,13 @@ RSpec.describe Integrations::GoogleCloudPlatform::ArtifactRegistry::Client, feat
it 'calls glgo list docker images API endpoint' do
stub_list_docker_image(body: dummy_list_body)
expect(client).to receive(:encoded_jwt).with(wlif: gcp_wlif)
+ expect(::Gitlab::HTTP).to receive(:get).with(
+ expected_url,
+ headers: an_instance_of(Hash),
+ query: an_instance_of(Hash),
+ format: :plain,
+ extra_allowed_uris: [URI(described_class::GLGO_BASE_URL)]
+ ).and_call_original
expect(list).to include(images: an_instance_of(Array), next_page_token: an_instance_of(String))
end
diff --git a/spec/lib/sidebars/organizations/menus/scope_menu_spec.rb b/spec/lib/sidebars/organizations/menus/scope_menu_spec.rb
index 999889a72ee..974531a2dec 100644
--- a/spec/lib/sidebars/organizations/menus/scope_menu_spec.rb
+++ b/spec/lib/sidebars/organizations/menus/scope_menu_spec.rb
@@ -3,7 +3,8 @@
require 'spec_helper'
RSpec.describe Sidebars::Organizations::Menus::ScopeMenu, feature_category: :navigation do
- let_it_be(:organization) { build(:organization) }
+ let_it_be(:organization_detail) { build(:organization_detail) }
+ let_it_be(:organization) { organization_detail.organization }
let_it_be(:user) { build(:user) }
let_it_be(:context) { Sidebars::Context.new(current_user: user, container: organization) }
@@ -11,7 +12,7 @@ RSpec.describe Sidebars::Organizations::Menus::ScopeMenu, feature_category: :nav
let(:menu) { described_class.new(context) }
let(:extra_attrs) do
{
- avatar: nil,
+ avatar: organization.avatar_url(size: 48),
entity_id: organization.id,
super_sidebar_parent: ::Sidebars::StaticMenu,
item_id: :organization_overview
diff --git a/spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb b/spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb
index 0cf95391a26..85c109615c8 100644
--- a/spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb
+++ b/spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb
@@ -39,7 +39,7 @@ RSpec.describe Sidebars::Projects::Menus::PackagesRegistriesMenu, feature_catego
before do
stub_container_registry_config(enabled: registry_enabled)
stub_config(packages: { enabled: packages_enabled })
- stub_feature_flags(ml_experiment_tracking: false)
+ stub_feature_flags(ml_experiment_tracking: false, model_registry: false)
end
context 'when Packages Registry is visible' do
@@ -195,5 +195,32 @@ RSpec.describe Sidebars::Projects::Menus::PackagesRegistriesMenu, feature_catego
end
end
end
+
+ describe 'Model registry' do
+ let(:item_id) { :model_registry }
+
+ before do
+ allow(Ability).to receive(:allowed?).and_call_original
+ allow(Ability).to receive(:allowed?)
+ .with(user, :read_model_registry, project)
+ .and_return(model_registry_enabled)
+ end
+
+ context 'when user can read model registry' do
+ let(:model_registry_enabled) { true }
+
+ it 'shows the menu item' do
+ is_expected.not_to be_nil
+ end
+ end
+
+ context 'when user can not read model registry' do
+ let(:model_registry_enabled) { false }
+
+ it 'does not show the menu item' do
+ is_expected.to be_nil
+ end
+ end
+ end
end
end
diff --git a/spec/lib/sidebars/projects/super_sidebar_menus/deploy_menu_spec.rb b/spec/lib/sidebars/projects/super_sidebar_menus/deploy_menu_spec.rb
index 98d62948ac3..f23aaad71f9 100644
--- a/spec/lib/sidebars/projects/super_sidebar_menus/deploy_menu_spec.rb
+++ b/spec/lib/sidebars/projects/super_sidebar_menus/deploy_menu_spec.rb
@@ -18,7 +18,8 @@ RSpec.describe Sidebars::Projects::SuperSidebarMenus::DeployMenu, feature_catego
:releases,
:feature_flags,
:packages_registry,
- :container_registry
+ :container_registry,
+ :model_registry
])
end
end
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index 21878bc9b6d..34311a8ae22 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require 'email_spec'
-RSpec.describe Notify do
+RSpec.describe Notify, feature_category: :code_review_workflow do
include EmailSpec::Helpers
include EmailSpec::Matchers
include EmailHelpers
@@ -20,7 +20,10 @@ RSpec.describe Notify do
let_it_be(:assignee, reload: true) { create(:user, email: 'assignee@example.com', name: 'John Doe') }
let_it_be(:reviewer, reload: true) { create(:user, email: 'reviewer@example.com', name: 'Jane Doe') }
- let_it_be(:merge_request) do
+ let(:previous_assignee1) { create(:user, name: 'Previous Assignee 1') }
+ let(:previous_assignee_ids) { [previous_assignee1.id] }
+
+ let_it_be(:merge_request, reload: true) do
create(
:merge_request,
source_project: project,
@@ -84,11 +87,43 @@ RSpec.describe Notify do
end
end
+ shared_examples 'an assignee email with previous assignees' do
+ context 'when all assignees are removed' do
+ before do
+ resource.update!(assignees: [])
+ end
+
+ it_behaves_like 'email with default notification reason'
+
+ it 'uses fixed copy "All assignees were removed"' do
+ is_expected.to have_body_text("<p> All assignees were removed. </p>")
+ is_expected.to have_plain_text_content("All assignees were removed.")
+ end
+ end
+
+ context 'with multiple previous assignees' do
+ let(:previous_assignee2) { create(:user, name: 'Previous Assignee 2') }
+ let(:previous_assignee_ids) { [previous_assignee1.id, previous_assignee2.id] }
+
+ it_behaves_like 'email with default notification reason'
+
+ it 'has the correct subject and body' do
+ aggregate_failures do
+ is_expected.to have_referable_subject(resource, reply: true)
+ is_expected.to have_body_text("<p> <strong>#{assignee.name}</strong> was added as an assignee. </p> <p> <strong>#{previous_assignee1.name} and #{previous_assignee2.name}</strong> were removed as assignees. </p>")
+ is_expected.to have_plain_text_content("#{assignee.name} was added as an assignee.")
+ is_expected.to have_plain_text_content("#{previous_assignee1.name} and #{previous_assignee2.name} were removed as assignees.")
+ end
+ end
+ end
+ end
+
context 'for issues', feature_category: :team_planning do
describe 'that are new' do
subject { described_class.new_issue_email(issue.assignees.first.id, issue.id) }
it_behaves_like 'an assignee email'
+
it_behaves_like 'an email starting a new thread with reply-by-email enabled' do
let(:model) { issue }
end
@@ -142,9 +177,7 @@ RSpec.describe Notify do
end
describe 'that are reassigned' do
- let(:previous_assignee) { create(:user, name: 'Previous Assignee') }
-
- subject { described_class.reassigned_issue_email(recipient.id, issue.id, [previous_assignee.id], current_user.id) }
+ subject { described_class.reassigned_issue_email(recipient.id, issue.id, previous_assignee_ids, current_user.id) }
it_behaves_like 'a multiple recipients email'
it_behaves_like 'an answer to an existing thread with reply-by-email enabled' do
@@ -165,23 +198,14 @@ RSpec.describe Notify do
it 'has the correct subject and body' do
aggregate_failures do
is_expected.to have_referable_subject(issue, reply: true)
- is_expected.to have_body_text("Assignee changed from <strong>#{previous_assignee.name}</strong> to <strong>#{assignee.name}</strong>")
- is_expected.to have_plain_text_content("Assignee changed from #{previous_assignee.name} to #{assignee.name}")
+ is_expected.to have_body_text("<p> <strong>#{assignee.name}</strong> was added as an assignee. </p> <p> <strong>#{previous_assignee1.name}</strong> was removed as an assignee. </p>")
+ is_expected.to have_plain_text_content("#{assignee.name} was added as an assignee.")
+ is_expected.to have_plain_text_content("#{previous_assignee1.name} was removed as an assignee.")
end
end
- context 'without new assignee' do
- before do
- issue.update!(assignees: [])
- end
-
- it_behaves_like 'email with default notification reason'
- it_behaves_like 'email with link to issue'
-
- it 'uses "Unassigned" placeholder' do
- is_expected.to have_body_text("Assignee changed from <strong>#{previous_assignee.name}</strong> to <strong>Unassigned</strong>")
- is_expected.to have_plain_text_content("Assignee changed from #{previous_assignee.name} to Unassigned")
- end
+ it_behaves_like 'an assignee email with previous assignees' do
+ let(:resource) { issue }
end
context 'without previous assignees' do
@@ -190,14 +214,14 @@ RSpec.describe Notify do
it_behaves_like 'email with default notification reason'
it_behaves_like 'email with link to issue'
- it 'uses short text' do
- is_expected.to have_body_text("Assignee changed to <strong>#{assignee.name}</strong>")
- is_expected.to have_plain_text_content("Assignee changed to #{assignee.name}")
+ it 'does not mention any previous assignees' do
+ is_expected.to have_body_text("<p> <strong>#{assignee.name}</strong> was added as an assignee. </p>")
+ is_expected.to have_plain_text_content("#{assignee.name} was added as an assignee.")
end
end
context 'when sent with a reason' do
- subject { described_class.reassigned_issue_email(recipient.id, issue.id, [previous_assignee.id], current_user.id, NotificationReason::ASSIGNED) }
+ subject { described_class.reassigned_issue_email(recipient.id, issue.id, [previous_assignee1.id], current_user.id, NotificationReason::ASSIGNED) }
it_behaves_like 'appearance header and footer enabled'
it_behaves_like 'appearance header and footer not enabled'
@@ -211,10 +235,10 @@ RSpec.describe Notify do
let(:email_obj) { create(:email, :confirmed, user_id: recipient.id, email: '123@abc') }
let(:recipient) { create(:user, preferred_language: :zh_CN) }
- it 'is translated into zh_CN' do
+ it 'is sent with html lang attribute set to the user\'s preferred language' do
recipient.notification_email = email_obj.email
recipient.save!
- is_expected.to have_body_text '指派人从 <strong>Previous Assignee</strong> 更改为 <strong>John Doe</strong>'
+ is_expected.to have_body_text '<html lang="zh-CN">'
end
end
end
@@ -450,6 +474,7 @@ RSpec.describe Notify do
subject { described_class.new_merge_request_email(merge_request.assignee_ids.first, merge_request.id) }
it_behaves_like 'an assignee email'
+
it_behaves_like 'an email starting a new thread with reply-by-email enabled' do
let(:model) { merge_request }
end
@@ -495,9 +520,7 @@ RSpec.describe Notify do
end
describe 'that are reassigned' do
- let(:previous_assignee) { create(:user, name: 'Previous Assignee') }
-
- subject { described_class.reassigned_merge_request_email(recipient.id, merge_request.id, [previous_assignee.id], current_user.id) }
+ subject { described_class.reassigned_merge_request_email(recipient.id, merge_request.id, previous_assignee_ids, current_user.id) }
it_behaves_like 'a multiple recipients email'
it_behaves_like 'an answer to an existing thread with reply-by-email enabled' do
@@ -509,6 +532,10 @@ RSpec.describe Notify do
it_behaves_like 'appearance header and footer enabled'
it_behaves_like 'appearance header and footer not enabled'
+ it_behaves_like 'an assignee email with previous assignees' do
+ let(:resource) { merge_request }
+ end
+
it 'is sent as the author' do
expect_sender(current_user)
end
@@ -516,14 +543,14 @@ RSpec.describe Notify do
it 'has the correct subject and body' do
aggregate_failures do
is_expected.to have_referable_subject(merge_request, reply: true)
- is_expected.to have_body_text(previous_assignee.name)
+ is_expected.to have_body_text(previous_assignee1.name)
is_expected.to have_body_text(project_merge_request_path(project, merge_request))
is_expected.to have_body_text(assignee.name)
end
end
context 'when sent with a reason', type: :helper do
- subject { described_class.reassigned_merge_request_email(recipient.id, merge_request.id, [previous_assignee.id], current_user.id, NotificationReason::ASSIGNED) }
+ subject { described_class.reassigned_merge_request_email(recipient.id, merge_request.id, [previous_assignee1.id], current_user.id, NotificationReason::ASSIGNED) }
it_behaves_like 'appearance header and footer enabled'
it_behaves_like 'appearance header and footer not enabled'
@@ -536,11 +563,11 @@ RSpec.describe Notify do
text = EmailsHelper.instance_method(:notification_reason_text).bind_call(self, reason: NotificationReason::ASSIGNED, format: :html)
is_expected.to have_body_text(text)
- new_subject = described_class.reassigned_merge_request_email(recipient.id, merge_request.id, [previous_assignee.id], current_user.id, NotificationReason::MENTIONED)
+ new_subject = described_class.reassigned_merge_request_email(recipient.id, merge_request.id, [previous_assignee1.id], current_user.id, NotificationReason::MENTIONED)
text = EmailsHelper.instance_method(:notification_reason_text).bind_call(self, reason: NotificationReason::MENTIONED, format: :html)
expect(new_subject).to have_body_text(text)
- new_subject = described_class.reassigned_merge_request_email(recipient.id, merge_request.id, [previous_assignee.id], current_user.id, nil)
+ new_subject = described_class.reassigned_merge_request_email(recipient.id, merge_request.id, [previous_assignee1.id], current_user.id, nil)
text = EmailsHelper.instance_method(:notification_reason_text).bind_call(self, format: :html)
expect(new_subject).to have_body_text(text)
end
@@ -2434,23 +2461,27 @@ RSpec.describe Notify do
end
it 'avoids N+1 cached queries when rendering html', :use_sql_query_cache, :request_store do
- control_count = ActiveRecord::QueryRecorder.new(query_recorder_debug: true, skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(query_recorder_debug: true, skip_cached: false) do
subject.html_part
end
create_list(:diff_note_on_merge_request, 3, review: review, project: project, author: review.author, noteable: merge_request)
- expect { described_class.new_review_email(recipient.id, review.id).html_part }.not_to exceed_all_query_limit(control_count)
+ expect do
+ described_class.new_review_email(recipient.id, review.id).html_part
+ end.not_to exceed_all_query_limit(control)
end
it 'avoids N+1 cached queries when rendering text', :use_sql_query_cache, :request_store do
- control_count = ActiveRecord::QueryRecorder.new(query_recorder_debug: true, skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(query_recorder_debug: true, skip_cached: false) do
subject.text_part
end
create_list(:diff_note_on_merge_request, 3, review: review, project: project, author: review.author, noteable: merge_request)
- expect { described_class.new_review_email(recipient.id, review.id).text_part }.not_to exceed_all_query_limit(control_count)
+ expect do
+ described_class.new_review_email(recipient.id, review.id).text_part
+ end.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/migrations/20230228142350_add_notifications_work_item_widget_spec.rb b/spec/migrations/20230228142350_add_notifications_work_item_widget_spec.rb
index 7161ca35edd..a459ef96737 100644
--- a/spec/migrations/20230228142350_add_notifications_work_item_widget_spec.rb
+++ b/spec/migrations/20230228142350_add_notifications_work_item_widget_spec.rb
@@ -4,5 +4,7 @@ require 'spec_helper'
require_migration!
RSpec.describe AddNotificationsWorkItemWidget, :migration, feature_category: :team_planning do
- it_behaves_like 'migration that adds widget to work items definitions', widget_name: 'Notifications'
+ it_behaves_like 'migration that adds widget to work items definitions',
+ widget_name: described_class::WIDGET_NAME,
+ work_item_types: described_class::WORK_ITEM_TYPES
end
diff --git a/spec/migrations/20230317162059_add_current_user_todos_work_item_widget_spec.rb b/spec/migrations/20230317162059_add_current_user_todos_work_item_widget_spec.rb
index 1df80a519f2..c202638aa27 100644
--- a/spec/migrations/20230317162059_add_current_user_todos_work_item_widget_spec.rb
+++ b/spec/migrations/20230317162059_add_current_user_todos_work_item_widget_spec.rb
@@ -4,5 +4,7 @@ require 'spec_helper'
require_migration!
RSpec.describe AddCurrentUserTodosWorkItemWidget, :migration, feature_category: :team_planning do
- it_behaves_like 'migration that adds widget to work items definitions', widget_name: 'Current user todos'
+ it_behaves_like 'migration that adds widget to work items definitions',
+ widget_name: described_class::WIDGET_NAME,
+ work_item_types: described_class::WORK_ITEM_TYPES
end
diff --git a/spec/migrations/20230323101138_add_award_emoji_work_item_widget_spec.rb b/spec/migrations/20230323101138_add_award_emoji_work_item_widget_spec.rb
index 16a205c5da5..7987f0257ee 100644
--- a/spec/migrations/20230323101138_add_award_emoji_work_item_widget_spec.rb
+++ b/spec/migrations/20230323101138_add_award_emoji_work_item_widget_spec.rb
@@ -4,5 +4,7 @@ require 'spec_helper'
require_migration!
RSpec.describe AddAwardEmojiWorkItemWidget, :migration, feature_category: :team_planning do
- it_behaves_like 'migration that adds widget to work items definitions', widget_name: 'Award emoji'
+ it_behaves_like 'migration that adds widget to work items definitions',
+ widget_name: described_class::WIDGET_NAME,
+ work_item_types: described_class::WORK_ITEM_TYPES
end
diff --git a/spec/migrations/20230807083334_add_linked_items_work_item_widget_spec.rb b/spec/migrations/20230807083334_add_linked_items_work_item_widget_spec.rb
index cd6da15403f..eae4910eef3 100644
--- a/spec/migrations/20230807083334_add_linked_items_work_item_widget_spec.rb
+++ b/spec/migrations/20230807083334_add_linked_items_work_item_widget_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
require_migration!
RSpec.describe AddLinkedItemsWorkItemWidget, :migration, feature_category: :portfolio_management do
- it_behaves_like 'migration that adds widget to work items definitions', widget_name: 'Linked items' do
- let(:work_item_type_count) { 8 }
- end
+ it_behaves_like 'migration that adds widget to work items definitions',
+ widget_name: described_class::WIDGET_NAME,
+ work_item_types: described_class::WORK_ITEM_TYPES
end
diff --git a/spec/migrations/20231207145335_cleanup_group_level_work_items_spec.rb b/spec/migrations/20231207145335_cleanup_group_level_work_items_spec.rb
new file mode 100644
index 00000000000..a6b547b091a
--- /dev/null
+++ b/spec/migrations/20231207145335_cleanup_group_level_work_items_spec.rb
@@ -0,0 +1,216 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe CleanupGroupLevelWorkItems, feature_category: :team_planning do
+ include MigrationHelpers::WorkItemTypesHelper
+
+ let(:users) { table(:users) }
+ let(:projects) { table(:projects) }
+ let(:namespaces) { table(:namespaces) }
+ let(:issues) { table(:issues) }
+ let(:notes) { table(:notes) }
+ let(:labels) { table(:labels) }
+ let(:label_links) { table(:label_links) }
+ let(:todos) { table(:todos) }
+ let(:work_item_types) { table(:work_item_types) }
+
+ let!(:user) { users.create!(name: 'Test User', email: 'test@example.com', projects_limit: 5) }
+
+ let!(:group1) { namespaces.create!(name: 'group1', path: 'group1', type: 'Group') }
+ let!(:group2) { namespaces.create!(name: 'group2', path: 'group2', type: 'Group') }
+ let!(:project_namespace) { namespaces.create!(name: 'project1', path: 'project1', type: 'Project') }
+ let!(:project) do
+ projects.create!(
+ name: 'project1', path: 'project1', namespace_id: group1.id, project_namespace_id: project_namespace.id
+ )
+ end
+
+ let!(:issue_type) do
+ ensure_work_item_type_exists
+ work_item_types.first
+ end
+
+ let!(:group1_issue1) { issues.create!(title: 'Issue1-1', namespace_id: group1.id, work_item_type_id: issue_type.id) }
+ let!(:group1_issue2) { issues.create!(title: 'Issue1-2', namespace_id: group1.id, work_item_type_id: issue_type.id) }
+ let!(:group2_issue1) { issues.create!(title: 'Issue2-1', namespace_id: group2.id, work_item_type_id: issue_type.id) }
+ let!(:group2_issue2) { issues.create!(title: 'Issue2-2', namespace_id: group2.id, work_item_type_id: issue_type.id) }
+ let!(:project_issue) do
+ issues.create!(
+ title: 'Issue2', project_id: project.id, namespace_id: project_namespace.id, work_item_type_id: issue_type.id
+ )
+ end
+
+ # associated labels
+ let!(:label1) { labels.create!(title: 'label1', group_id: group1.id) }
+ let!(:label2) { labels.create!(title: 'label2', group_id: group2.id) }
+
+ after(:all) do
+ # Make sure base types are recreated after running the migration
+ # because migration specs are not run in a transaction
+ reset_work_item_types
+ end
+
+ describe '#up' do
+ before do
+ # stub batch to make sure we are also testing the batching deletion
+ stub_const("#{described_class}::BATCH_SIZE", 2)
+
+ # Project label_link that must not be deleted
+ label_links.create!(label_id: label1.id, target_id: project_issue.id, target_type: 'Issue')
+
+ label_links.create!(label_id: label1.id, target_id: group1_issue1.id, target_type: 'Issue')
+ label_links.create!(label_id: label2.id, target_id: group1_issue1.id, target_type: 'Issue')
+ label_links.create!(label_id: label1.id, target_id: group1_issue2.id, target_type: 'Issue')
+ label_links.create!(label_id: label2.id, target_id: group1_issue2.id, target_type: 'Issue')
+ label_links.create!(label_id: label1.id, target_id: group2_issue1.id, target_type: 'Issue')
+ label_links.create!(label_id: label2.id, target_id: group2_issue1.id, target_type: 'Issue')
+ label_links.create!(label_id: label1.id, target_id: group2_issue2.id, target_type: 'Issue')
+ label_links.create!(label_id: label2.id, target_id: group2_issue2.id, target_type: 'Issue')
+
+ # associated notes
+
+ # Project issue note that must not be deleted
+ notes.create!(
+ noteable_id: project_issue.id,
+ noteable_type: 'Issue',
+ project_id: project.id,
+ namespace_id: project_namespace.id,
+ note: "project issue 1 note 1"
+ )
+
+ notes.create!(
+ noteable_id: group1_issue1.id, noteable_type: 'Issue', namespace_id: group1.id, note: "group1 issue 1 note 1"
+ )
+ notes.create!(
+ noteable_id: group1_issue1.id, noteable_type: 'Issue', namespace_id: group1.id, note: "group1 issue 1 note 2"
+ )
+ notes.create!(
+ noteable_id: group1_issue2.id, noteable_type: 'Issue', namespace_id: group1.id, note: "group1 issue 2 note 1"
+ )
+ notes.create!(
+ noteable_id: group1_issue2.id, noteable_type: 'Issue', namespace_id: group1.id, note: "group1 issue 2 note 2"
+ )
+ notes.create!(
+ noteable_id: group2_issue1.id, noteable_type: 'Issue', namespace_id: group2.id, note: "group2 issue 1 note 1"
+ )
+ notes.create!(
+ noteable_id: group2_issue1.id, noteable_type: 'Issue', namespace_id: group2.id, note: "group2 issue 1 note 2"
+ )
+ notes.create!(
+ noteable_id: group2_issue2.id, noteable_type: 'Issue', namespace_id: group2.id, note: "group2 issue 2 note 1"
+ )
+ notes.create!(
+ noteable_id: group2_issue2.id, noteable_type: 'Issue', namespace_id: group2.id, note: "group2 issue 2 note 2"
+ )
+
+ # associated todos
+
+ # Project issue todo that must not be deleted
+ todos.create!(
+ target_id: project_issue.id,
+ target_type: 'Issue',
+ project_id: project.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+
+ todos.create!(
+ target_id: group1_issue1.id,
+ target_type: 'Issue',
+ group_id: group1.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+ todos.create!(
+ target_id: group1_issue1.id,
+ target_type: 'Issue',
+ group_id: group1.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+ todos.create!(
+ target_id: group1_issue2.id,
+ target_type: 'Issue',
+ group_id: group1.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+ todos.create!(
+ target_id: group1_issue2.id,
+ target_type: 'Issue',
+ group_id: group1.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+ todos.create!(
+ target_id: group2_issue1.id,
+ target_type: 'Issue',
+ group_id: group2.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+ todos.create!(
+ target_id: group2_issue1.id,
+ target_type: 'Issue',
+ group_id: group2.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+ todos.create!(
+ target_id: group2_issue2.id,
+ target_type: 'Issue',
+ group_id: group2.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+ todos.create!(
+ target_id: group2_issue2.id,
+ target_type: 'Issue',
+ group_id: group2.id,
+ user_id: user.id,
+ author_id: user.id,
+ action: 1,
+ state: 'pending'
+ )
+ end
+
+ it 'removes group level issues' do
+ # We have 1 record of each table that should not be deleted
+ expect do
+ migrate!
+ end.to change { issues.count }.from(5).to(1).and(
+ change { label_links.count }.from(9).to(1)
+ ).and(
+ change { notes.count }.from(9).to(1)
+ ).and(
+ change { todos.count }.from(9).to(1)
+ )
+ end
+ end
+
+ def ensure_work_item_type_exists
+ # We need to make sure at least one work item type exists for this spec and they might have been deleted
+ # by other migrations
+ work_item_types.find_or_create_by!(
+ name: 'Issue', namespace_id: nil, base_type: 0, icon_name: 'issue-type-issue'
+ )
+ end
+end
diff --git a/spec/migrations/20231211154654_add_work_items_rolledup_dates_widget_spec.rb b/spec/migrations/20231211154654_add_work_items_rolledup_dates_widget_spec.rb
new file mode 100644
index 00000000000..b7bae52eed5
--- /dev/null
+++ b/spec/migrations/20231211154654_add_work_items_rolledup_dates_widget_spec.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe AddWorkItemsRolledupDatesWidget, :migration, feature_category: :team_planning do
+ it_behaves_like 'migration that adds widget to work items definitions',
+ widget_name: described_class::WIDGET_NAME,
+ work_item_types: described_class::WORK_ITEM_TYPES
+end
diff --git a/spec/migrations/20231212135235_queue_backfill_vs_code_settings_version_spec.rb b/spec/migrations/20231212135235_queue_backfill_vs_code_settings_version_spec.rb
new file mode 100644
index 00000000000..e3e08720950
--- /dev/null
+++ b/spec/migrations/20231212135235_queue_backfill_vs_code_settings_version_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe QueueBackfillVsCodeSettingsVersion, feature_category: :web_ide do
+ let!(:batched_migration) { described_class::MIGRATION }
+
+ it 'schedules a new batched migration' do
+ reversible_migration do |migration|
+ migration.before -> {
+ expect(batched_migration).not_to have_scheduled_batched_migration
+ }
+
+ migration.after -> {
+ expect(batched_migration).to have_scheduled_batched_migration(
+ table_name: :vs_code_settings,
+ column_name: :id,
+ interval: described_class::DELAY_INTERVAL,
+ batch_size: described_class::BATCH_SIZE,
+ sub_batch_size: described_class::SUB_BATCH_SIZE
+ )
+ }
+ end
+ end
+end
diff --git a/spec/migrations/20231214111617_queue_backfill_owasp_top_ten_of_vulnerability_reads_spec.rb b/spec/migrations/20231214111617_queue_backfill_owasp_top_ten_of_vulnerability_reads_spec.rb
new file mode 100644
index 00000000000..9ee11715da4
--- /dev/null
+++ b/spec/migrations/20231214111617_queue_backfill_owasp_top_ten_of_vulnerability_reads_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe QueueBackfillOwaspTopTenOfVulnerabilityReads, feature_category: :vulnerability_management do
+ let!(:batched_migration) { described_class::MIGRATION }
+
+ it 'schedules a new batched migration' do
+ reversible_migration do |migration|
+ migration.before -> {
+ expect(batched_migration).not_to have_scheduled_batched_migration
+ }
+
+ migration.after -> {
+ expect(batched_migration).to have_scheduled_batched_migration(
+ table_name: :vulnerability_reads,
+ column_name: :vulnerability_id,
+ interval: described_class::DELAY_INTERVAL,
+ batch_size: described_class::BATCH_SIZE,
+ sub_batch_size: described_class::SUB_BATCH_SIZE
+ )
+ }
+ end
+ end
+end
diff --git a/spec/migrations/20231218092401_queue_backfill_partition_id_ci_pipeline_chat_data_spec.rb b/spec/migrations/20231218092401_queue_backfill_partition_id_ci_pipeline_chat_data_spec.rb
new file mode 100644
index 00000000000..bd99dd9998a
--- /dev/null
+++ b/spec/migrations/20231218092401_queue_backfill_partition_id_ci_pipeline_chat_data_spec.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe QueueBackfillPartitionIdCiPipelineChatData, migration: :gitlab_ci, feature_category: :continuous_integration do
+ let!(:batched_migrations) { table(:batched_background_migrations) }
+ let!(:migration) { described_class::MIGRATION }
+
+ describe '#up' do
+ context 'with migration present' do
+ let!(:ci_backfill_partition_id_ci_pipeline_chat_data_migration) do
+ batched_migrations.create!(
+ job_class_name: 'BackfillPartitionIdCiPipelineChatData',
+ table_name: :ci_pipeline_chat_data,
+ column_name: :id,
+ job_arguments: [],
+ interval: 2.minutes,
+ min_value: 1,
+ max_value: 2,
+ batch_size: 1000,
+ sub_batch_size: 100,
+ gitlab_schema: :gitlab_ci,
+ status: 3 # finished
+ )
+ end
+
+ context 'when migration finished successfully' do
+ it 'does not raise exception' do
+ expect { migrate! }.not_to raise_error
+ end
+
+ it 'schedules background jobs for each batch of ci_pipeline_chat_data' do
+ migrate!
+
+ expect(migration).to have_scheduled_batched_migration(
+ gitlab_schema: :gitlab_ci,
+ table_name: :ci_pipeline_chat_data,
+ column_name: :id,
+ batch_size: described_class::BATCH_SIZE,
+ sub_batch_size: described_class::SUB_BATCH_SIZE
+ )
+ end
+ end
+ end
+ end
+
+ describe '#down' do
+ it 'deletes all batched migration records' do
+ migrate!
+ schema_migrate_down!
+
+ expect(migration).not_to have_scheduled_batched_migration
+ end
+ end
+end
diff --git a/spec/migrations/20231221223259_queue_drop_vulnerabilities_without_finding_id_spec.rb b/spec/migrations/20231221223259_queue_drop_vulnerabilities_without_finding_id_spec.rb
new file mode 100644
index 00000000000..473b9b065bc
--- /dev/null
+++ b/spec/migrations/20231221223259_queue_drop_vulnerabilities_without_finding_id_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe QueueDropVulnerabilitiesWithoutFindingId, feature_category: :vulnerability_management do
+ let!(:batched_migration) { described_class::MIGRATION }
+
+ it 'schedules a new batched migration' do
+ reversible_migration do |migration|
+ migration.before -> {
+ expect(batched_migration).not_to have_scheduled_batched_migration
+ }
+
+ migration.after -> {
+ expect(batched_migration).to have_scheduled_batched_migration(
+ table_name: :vulnerabilities,
+ column_name: :id,
+ interval: described_class::DELAY_INTERVAL,
+ batch_size: described_class::BATCH_SIZE,
+ sub_batch_size: described_class::SUB_BATCH_SIZE
+ )
+ }
+ end
+ end
+end
diff --git a/spec/migrations/20240105144908_queue_backfill_issue_search_data_namespace_id_spec.rb b/spec/migrations/20240105144908_queue_backfill_issue_search_data_namespace_id_spec.rb
new file mode 100644
index 00000000000..461a6897051
--- /dev/null
+++ b/spec/migrations/20240105144908_queue_backfill_issue_search_data_namespace_id_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe QueueBackfillIssueSearchDataNamespaceId, feature_category: :team_planning do
+ let!(:batched_migration) { described_class::MIGRATION }
+
+ it 'schedules a new batched migration' do
+ reversible_migration do |migration|
+ migration.before -> {
+ expect(batched_migration).not_to have_scheduled_batched_migration
+ }
+
+ migration.after -> {
+ expect(batched_migration).to have_scheduled_batched_migration(
+ table_name: :issues,
+ column_name: :id,
+ interval: described_class::DELAY_INTERVAL,
+ batch_size: described_class::BATCH_SIZE,
+ sub_batch_size: described_class::SUB_BATCH_SIZE
+ )
+ }
+ end
+ end
+end
diff --git a/spec/migrations/20240108082419_queue_backfill_partition_id_ci_pipeline_metadata_spec.rb b/spec/migrations/20240108082419_queue_backfill_partition_id_ci_pipeline_metadata_spec.rb
new file mode 100644
index 00000000000..625225b1f3e
--- /dev/null
+++ b/spec/migrations/20240108082419_queue_backfill_partition_id_ci_pipeline_metadata_spec.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe QueueBackfillPartitionIdCiPipelineMetadata, migration: :gitlab_ci, feature_category: :continuous_integration do
+ let!(:batched_migrations) { table(:batched_background_migrations) }
+ let!(:migration) { described_class::MIGRATION }
+
+ describe '#up' do
+ context 'with migration present' do
+ let!(:ci_backfill_partition_id_ci_pipeline_metadata_migration) do
+ batched_migrations.create!(
+ job_class_name: 'QueueBackfillPartitionIdCiPipelineMetadata',
+ table_name: :ci_pipeline_metadata,
+ column_name: :pipeline_id,
+ job_arguments: [],
+ interval: 2.minutes,
+ min_value: 1,
+ max_value: 2,
+ batch_size: 1000,
+ sub_batch_size: 100,
+ gitlab_schema: :gitlab_ci,
+ status: 3 # finished
+ )
+ end
+
+ context 'when migration finished successfully' do
+ it 'does not raise exception' do
+ expect { migrate! }.not_to raise_error
+ end
+
+ it 'schedules background jobs for each batch of ci_pipeline_metadata' do
+ migrate!
+
+ expect(migration).to have_scheduled_batched_migration(
+ gitlab_schema: :gitlab_ci,
+ table_name: :ci_pipeline_metadata,
+ column_name: :pipeline_id,
+ batch_size: described_class::BATCH_SIZE,
+ sub_batch_size: described_class::SUB_BATCH_SIZE
+ )
+ end
+ end
+ end
+ end
+
+ describe '#down' do
+ it 'deletes all batched migration records' do
+ migrate!
+ schema_migrate_down!
+
+ expect(migration).not_to have_scheduled_batched_migration
+ end
+ end
+end
diff --git a/spec/migrations/20240108121335_copy_internal_ids_for_epics_and_issues_usage_on_groups_spec.rb b/spec/migrations/20240108121335_copy_internal_ids_for_epics_and_issues_usage_on_groups_spec.rb
new file mode 100644
index 00000000000..c54f1f06d43
--- /dev/null
+++ b/spec/migrations/20240108121335_copy_internal_ids_for_epics_and_issues_usage_on_groups_spec.rb
@@ -0,0 +1,69 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe CopyInternalIdsForEpicsAndIssuesUsageOnGroups, feature_category: :team_planning do
+ let(:internal_ids) { table(:internal_ids) }
+ let(:namespaces) { table(:namespaces) }
+
+ let!(:group1) { namespaces.create!(name: 'group1', path: 'group1', type: 'Group') }
+ let!(:group2) { namespaces.create!(name: 'group2', path: 'group2', type: 'Group') }
+ let!(:group3) { namespaces.create!(name: 'group3', path: 'group3', type: 'Group') }
+ let!(:project_namespace) { namespaces.create!(name: 'project1', path: 'project1', type: 'Project') }
+
+ let!(:project_issue_iid) { internal_ids.create!(namespace_id: project_namespace.id, usage: 0, last_value: 100) }
+ let!(:group1_epic_iid) { internal_ids.create!(namespace_id: group1.id, usage: 4, last_value: 101) }
+ let!(:group2_issue_iid) { internal_ids.create!(namespace_id: group2.id, usage: 0, last_value: 102) }
+ let!(:group2_epic_iid) { internal_ids.create!(namespace_id: group2.id, usage: 4, last_value: 103) }
+
+ describe '#on_update' do
+ it 'updates corresponding usage record between epics and issues' do
+ # create the triggers
+ migrate!
+
+ # initially there is no record for issues usage for group1
+ expect(internal_ids.where(usage: 0, namespace_id: group1.id).count).to eq(0)
+ # when epics usage record is updated the issues usage record is created and last_value is copied
+ group1_epic_iid.update!(last_value: 1000)
+ expect(internal_ids.where(usage: 0, namespace_id: group1.id).first.last_value).to eq(1000)
+
+ # when there is an issues usage record:
+ expect(internal_ids.where(usage: 0, namespace_id: group2.id).first.last_value).to eq(102)
+ # updates the issues usage record when epics usage record is updated
+ group2_epic_iid.update!(last_value: 1000)
+ expect(internal_ids.where(usage: 0, namespace_id: group2.id).first.last_value).to eq(1000)
+
+ expect(internal_ids.where(usage: 4, namespace_id: group2.id).first.last_value).to eq(1000)
+ group2_issue_iid.update!(last_value: 2000)
+ expect(internal_ids.where(usage: 4, namespace_id: group2.id).first.last_value).to eq(2000)
+ end
+ end
+
+ describe '#on_insert' do
+ it 'inserts corresponding usage record between epics and issues' do
+ migrate!
+
+ expect(internal_ids.where(usage: 0, namespace_id: group3.id).count).to eq(0)
+ expect(internal_ids.where(usage: 4, namespace_id: group3.id).count).to eq(0)
+
+ # create record for epics usage
+ internal_ids.create!(namespace_id: group3.id, usage: 4, last_value: 1000)
+
+ expect(internal_ids.where(usage: 0, namespace_id: group3.id).first.last_value).to eq(1000)
+ expect(internal_ids.where(usage: 4, namespace_id: group3.id).first.last_value).to eq(1000)
+
+ # cleanup records for group3
+ internal_ids.where(namespace_id: group3.id).delete_all
+
+ expect(internal_ids.where(usage: 0, namespace_id: group3.id).count).to eq(0)
+ expect(internal_ids.where(usage: 4, namespace_id: group3.id).count).to eq(0)
+
+ # create record for issues usage
+ internal_ids.create!(namespace_id: group3.id, usage: 0, last_value: 1000)
+
+ expect(internal_ids.where(usage: 0, namespace_id: group3.id).first.last_value).to eq(1000)
+ expect(internal_ids.where(usage: 4, namespace_id: group3.id).first.last_value).to eq(1000)
+ end
+ end
+end
diff --git a/spec/migrations/20240108185335_backfill_internal_ids_with_issues_usage_for_epics_spec.rb b/spec/migrations/20240108185335_backfill_internal_ids_with_issues_usage_for_epics_spec.rb
new file mode 100644
index 00000000000..31cc9c3dd39
--- /dev/null
+++ b/spec/migrations/20240108185335_backfill_internal_ids_with_issues_usage_for_epics_spec.rb
@@ -0,0 +1,52 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe BackfillInternalIdsWithIssuesUsageForEpics, feature_category: :team_planning do
+ let(:internal_ids) { table(:internal_ids) }
+ let(:users) { table(:users) }
+ let(:namespaces) { table(:namespaces) }
+ let(:epics) { table(:epics) }
+
+ let!(:author) { users.create!(projects_limit: 0, email: 'human@example.com') }
+
+ let!(:group1) { namespaces.create!(name: 'group1', path: 'group1', type: 'Group') }
+ let!(:group2) { namespaces.create!(name: 'group2', path: 'group2', type: 'Group') }
+ let!(:group3) { namespaces.create!(name: 'group3', path: 'group3', type: 'Group') }
+ let!(:group4) { namespaces.create!(name: 'group4', path: 'group4', type: 'Group') }
+ let!(:project_namespace) { namespaces.create!(name: 'project1', path: 'project1', type: 'Project') }
+
+ let!(:project_issue_iid) { internal_ids.create!(namespace_id: project_namespace.id, usage: 0, last_value: 100) }
+ let!(:group1_epic_iid) { internal_ids.create!(namespace_id: group1.id, usage: 4, last_value: 100) }
+
+ # when there are issues and epics usage records for same namespace and EPICS usage last_value is higher
+ let!(:group2_issue_iid) { internal_ids.create!(namespace_id: group2.id, usage: 0, last_value: 100) }
+ let!(:group2_epic_iid) { internal_ids.create!(namespace_id: group2.id, usage: 4, last_value: 110) }
+
+ # when there are issues and epics usage records for same namespace and ISSUES usage last_value is higher
+ let!(:group3_issue_iid) { internal_ids.create!(namespace_id: group3.id, usage: 0, last_value: 100) }
+ let!(:group3_epic_iid) { internal_ids.create!(namespace_id: group3.id, usage: 4, last_value: 110) }
+
+ let!(:group4_epic) do
+ epics.create!(title: 'Epic99', title_html: 'Epic99', group_id: group4.id, iid: 99, author_id: author.id)
+ end
+
+ describe '#up' do
+ it 'backfills internal_ids for epics as group level issues' do
+ issues_iid_namespaces = [group1.id, group2.id, group3.id, group4.id, project_namespace.id]
+ # project, group2, group3
+ expect(internal_ids.where(usage: 0).count).to eq(3)
+ # group1, group2, group3
+ expect(internal_ids.where(usage: 4).count).to eq(3)
+ migrate!
+
+ # project1, group1, group2, group3, group4(this just had the epics record but not the internal_ids record)
+ expect(internal_ids.where(usage: 0).count).to eq(5)
+ expect(internal_ids.where(usage: 0).pluck(:namespace_id)).to match_array(issues_iid_namespaces)
+ expect(internal_ids.where(usage: 0, namespace_id: group2.id).first.last_value).to eq(110)
+ expect(internal_ids.where(usage: 0, namespace_id: group3.id).first.last_value).to eq(110)
+ expect(internal_ids.where(usage: 4).count).to eq(0)
+ end
+ end
+end
diff --git a/spec/migrations/20240109090354_queue_backfill_partition_id_ci_pipeline_artifact_spec.rb b/spec/migrations/20240109090354_queue_backfill_partition_id_ci_pipeline_artifact_spec.rb
new file mode 100644
index 00000000000..b2764cfc882
--- /dev/null
+++ b/spec/migrations/20240109090354_queue_backfill_partition_id_ci_pipeline_artifact_spec.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe QueueBackfillPartitionIdCiPipelineArtifact, migration: :gitlab_ci, feature_category: :continuous_integration do
+ let!(:batched_migrations) { table(:batched_background_migrations) }
+ let!(:migration) { described_class::MIGRATION }
+
+ describe '#up' do
+ context 'with migration present' do
+ let!(:ci_backfill_partition_id_ci_pipeline_artifact_migration) do
+ batched_migrations.create!(
+ job_class_name: 'QueueBackfillPartitionIdCiPipelineArtifact',
+ table_name: :ci_pipeline_artifacts,
+ column_name: :id,
+ job_arguments: [],
+ interval: 2.minutes,
+ min_value: 1,
+ max_value: 2,
+ batch_size: 1000,
+ sub_batch_size: 100,
+ gitlab_schema: :gitlab_ci,
+ status: 3 # finished
+ )
+ end
+
+ context 'when migration finished successfully' do
+ it 'does not raise exception' do
+ expect { migrate! }.not_to raise_error
+ end
+
+ it 'schedules background jobs for each batch of ci_pipeline_artifacts' do
+ migrate!
+
+ expect(migration).to have_scheduled_batched_migration(
+ gitlab_schema: :gitlab_ci,
+ table_name: :ci_pipeline_artifacts,
+ column_name: :id,
+ batch_size: described_class::BATCH_SIZE,
+ sub_batch_size: described_class::SUB_BATCH_SIZE
+ )
+ end
+ end
+ end
+ end
+
+ describe '#down' do
+ it 'deletes all batched migration records' do
+ migrate!
+ schema_migrate_down!
+
+ expect(migration).not_to have_scheduled_batched_migration
+ end
+ end
+end
diff --git a/spec/migrations/20240110090352_queue_backfill_partition_id_ci_pipeline_config_spec.rb b/spec/migrations/20240110090352_queue_backfill_partition_id_ci_pipeline_config_spec.rb
new file mode 100644
index 00000000000..9d64708eb29
--- /dev/null
+++ b/spec/migrations/20240110090352_queue_backfill_partition_id_ci_pipeline_config_spec.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe QueueBackfillPartitionIdCiPipelineConfig, migration: :gitlab_ci, feature_category: :continuous_integration do
+ let!(:batched_migrations) { table(:batched_background_migrations) }
+ let!(:migration) { described_class::MIGRATION }
+
+ describe '#up' do
+ context 'with migration present' do
+ let!(:ci_backfill_partition_id_ci_pipeline_config_migration) do
+ batched_migrations.create!(
+ job_class_name: 'QueueBackfillPartitionIdCiPipelineConfig',
+ table_name: :ci_pipelines_config,
+ column_name: :pipeline_id,
+ job_arguments: [],
+ interval: 2.minutes,
+ min_value: 1,
+ max_value: 2,
+ batch_size: 1000,
+ sub_batch_size: 100,
+ gitlab_schema: :gitlab_ci,
+ status: 3 # finished
+ )
+ end
+
+ context 'when migration finished successfully' do
+ it 'does not raise exception' do
+ expect { migrate! }.not_to raise_error
+ end
+
+ it 'schedules background jobs for each batch of ci_pipelines_config' do
+ migrate!
+
+ expect(migration).to have_scheduled_batched_migration(
+ gitlab_schema: :gitlab_ci,
+ table_name: :ci_pipelines_config,
+ column_name: :pipeline_id,
+ batch_size: described_class::BATCH_SIZE,
+ sub_batch_size: described_class::SUB_BATCH_SIZE
+ )
+ end
+ end
+ end
+ end
+
+ describe '#down' do
+ it 'deletes all batched migration records' do
+ migrate!
+ schema_migrate_down!
+
+ expect(migration).not_to have_scheduled_batched_migration
+ end
+ end
+end
diff --git a/spec/migrations/sent_notifications_self_install_id_swap_spec.rb b/spec/migrations/sent_notifications_self_install_id_swap_spec.rb
new file mode 100644
index 00000000000..db66b72d2ec
--- /dev/null
+++ b/spec/migrations/sent_notifications_self_install_id_swap_spec.rb
@@ -0,0 +1,81 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe SentNotificationsSelfInstallIdSwap, feature_category: :database do
+ let(:connection) { described_class.new.connection }
+
+ describe '#up' do
+ before do
+ # rubocop: disable RSpec/AnyInstanceOf -- This mixin is only used for migrations, it's okay to use this
+ allow_any_instance_of(described_class).to receive(:com_or_dev_or_test_but_not_jh?).and_return(dot_com?)
+ # rubocop: enable RSpec/AnyInstanceOf
+ end
+
+ context 'when we are NOT GitLab.com, dev, or test' do
+ let(:dot_com?) { false }
+
+ context 'when sent_notifications.id is not a bigint' do
+ around do |example|
+ connection.execute('ALTER TABLE sent_notifications ALTER COLUMN id TYPE integer')
+ example.run
+ connection.execute('ALTER TABLE sent_notifications ALTER COLUMN id TYPE bigint')
+ end
+
+ context 'when id_convert_to_bigint exists' do
+ around do |example|
+ connection.execute('ALTER TABLE sent_notifications ADD COLUMN IF NOT EXISTS id_convert_to_bigint bigint')
+ Gitlab::Database::UnidirectionalCopyTrigger.on_table(:sent_notifications, connection: connection).create(
+ :id, :id_convert_to_bigint)
+ example.run
+ connection.execute('ALTER TABLE sent_notifications DROP COLUMN id_convert_to_bigint')
+ end
+
+ it 'swaps the integer and bigint columns' do
+ sent_notifications = table(:sent_notifications)
+ disable_migrations_output do
+ reversible_migration do |migration|
+ migration.before -> {
+ sent_notifications.reset_column_information
+ expect(sent_notifications.columns.find { |c| c.name == 'id' }.sql_type).to eq('integer')
+ expect(sent_notifications.columns.find do |c|
+ c.name == 'id_convert_to_bigint'
+ end.sql_type).to eq('bigint')
+ }
+
+ migration.after -> {
+ sent_notifications.reset_column_information
+ expect(sent_notifications.columns.find { |c| c.name == 'id' }.sql_type).to eq('bigint')
+ expect(sent_notifications.columns.find do |c|
+ c.name == 'id_convert_to_bigint'
+ end.sql_type).to eq('integer')
+ }
+ end
+ end
+ end
+ end
+ end
+ end
+
+ context 'when any other condition' do
+ let(:dot_com?) { true }
+
+ it 'does not do anything' do
+ sent_notifications = table(:sent_notifications)
+
+ disable_migrations_output do
+ reversible_migration do |migration|
+ migration.before -> {
+ expect(sent_notifications.columns.find { |c| c.name == 'id' }.sql_type).to eq('bigint')
+ }
+
+ migration.after -> {
+ expect(sent_notifications.columns.find { |c| c.name == 'id' }.sql_type).to eq('bigint')
+ }
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/spec/models/analytics/cycle_analytics/aggregation_spec.rb b/spec/models/analytics/cycle_analytics/aggregation_spec.rb
index e69093f454a..5494df84d68 100644
--- a/spec/models/analytics/cycle_analytics/aggregation_spec.rb
+++ b/spec/models/analytics/cycle_analytics/aggregation_spec.rb
@@ -131,39 +131,52 @@ RSpec.describe Analytics::CycleAnalytics::Aggregation, type: :model, feature_cat
end
describe '#safe_create_for_namespace' do
- let_it_be(:group) { create(:group) }
- let_it_be(:subgroup) { create(:group, parent: group) }
+ context 'when group namespace is provided' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:subgroup) { create(:group, parent: group) }
- it 'creates the aggregation record' do
- record = described_class.safe_create_for_namespace(group)
-
- expect(record).to be_persisted
- end
-
- context 'when non top-level group is given' do
- it 'creates the aggregation record for the top-level group' do
- record = described_class.safe_create_for_namespace(subgroup)
+ it 'creates the aggregation record' do
+ record = described_class.safe_create_for_namespace(group)
expect(record).to be_persisted
end
- end
- context 'when the record is already present' do
- it 'does nothing' do
- described_class.safe_create_for_namespace(group)
+ context 'when non top-level group is given' do
+ it 'creates the aggregation record for the top-level group' do
+ record = described_class.safe_create_for_namespace(subgroup)
+
+ expect(record).to be_persisted
+ end
+ end
- expect do
+ context 'when the record is already present' do
+ it 'does nothing' do
described_class.safe_create_for_namespace(group)
- described_class.safe_create_for_namespace(subgroup)
- end.not_to change { described_class.count }
+
+ expect do
+ described_class.safe_create_for_namespace(group)
+ described_class.safe_create_for_namespace(subgroup)
+ end.not_to change { described_class.count }
+ end
+ end
+
+ context 'when the aggregation was disabled for some reason' do
+ it 're-enables the aggregation' do
+ create(:cycle_analytics_aggregation, enabled: false, namespace: group)
+
+ aggregation = described_class.safe_create_for_namespace(group)
+
+ expect(aggregation).to be_enabled
+ end
end
end
- context 'when the aggregation was disabled for some reason' do
- it 're-enables the aggregation' do
- create(:cycle_analytics_aggregation, enabled: false, namespace: group)
+ context 'when personal namespace is provided' do
+ let_it_be(:user2) { create(:user) }
+ let_it_be(:project) { create(:project, :public, namespace: user2.namespace) }
- aggregation = described_class.safe_create_for_namespace(group)
+ it 'is successful' do
+ aggregation = described_class.safe_create_for_namespace(user2.namespace)
expect(aggregation).to be_enabled
end
diff --git a/spec/models/analytics/cycle_analytics/stage_spec.rb b/spec/models/analytics/cycle_analytics/stage_spec.rb
index 54ae0feca2c..abe041ae5d6 100644
--- a/spec/models/analytics/cycle_analytics/stage_spec.rb
+++ b/spec/models/analytics/cycle_analytics/stage_spec.rb
@@ -81,20 +81,4 @@ RSpec.describe Analytics::CycleAnalytics::Stage, feature_category: :value_stream
expect(current_event_pairs).to eq(expected_event_pairs)
end
end
-
- it_behaves_like 'database events tracking' do
- let(:namespace) { create(:group) }
- let(:value_stream) { create(:cycle_analytics_value_stream) }
- let(:record) { described_class.create!(stage_params) }
- let(:update_params) { { name: 'st 2' } }
- let(:stage_params) do
- {
- namespace: namespace,
- name: 'st1',
- start_event_identifier: :merge_request_created,
- end_event_identifier: :merge_request_merged,
- group_value_stream_id: value_stream.id
- }
- end
- end
end
diff --git a/spec/models/application_setting_spec.rb b/spec/models/application_setting_spec.rb
index d16a78be533..b4003469ebb 100644
--- a/spec/models/application_setting_spec.rb
+++ b/spec/models/application_setting_spec.rb
@@ -27,6 +27,8 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
it { expect(setting.max_decompressed_archive_size).to eq(25600) }
it { expect(setting.decompress_archive_file_timeout).to eq(210) }
it { expect(setting.bulk_import_concurrent_pipeline_batch_limit).to eq(25) }
+ it { expect(setting.allow_project_creation_for_guest_and_below).to eq(true) }
+ it { expect(setting.members_delete_limit).to eq(60) }
end
describe 'validations' do
@@ -57,6 +59,8 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
}
end
+ it { expect(described_class).to validate_jsonb_schema(['application_setting_rate_limits']) }
+
it { is_expected.to allow_value(nil).for(:home_page_url) }
it { is_expected.to allow_value(http).for(:home_page_url) }
it { is_expected.to allow_value(https).for(:home_page_url) }
@@ -101,65 +105,18 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
it { is_expected.not_to allow_value(nil).for(:protected_paths_for_get_request) }
it { is_expected.to allow_value([]).for(:protected_paths_for_get_request) }
- it { is_expected.to allow_value(3).for(:push_event_hooks_limit) }
- it { is_expected.not_to allow_value('three').for(:push_event_hooks_limit) }
- it { is_expected.not_to allow_value(nil).for(:push_event_hooks_limit) }
-
- it { is_expected.to allow_value(3).for(:push_event_activities_limit) }
- it { is_expected.not_to allow_value('three').for(:push_event_activities_limit) }
- it { is_expected.not_to allow_value(nil).for(:push_event_activities_limit) }
-
- it { is_expected.to validate_numericality_of(:container_registry_delete_tags_service_timeout).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:container_registry_cleanup_tags_service_max_list_size).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:container_registry_data_repair_detail_worker_max_concurrency).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:container_registry_expiration_policies_worker_capacity).only_integer.is_greater_than_or_equal_to(0) }
it { is_expected.to validate_inclusion_of(:container_registry_expiration_policies_caching).in_array([true, false]) }
- it { is_expected.to validate_numericality_of(:container_registry_import_max_tags_count).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:container_registry_import_max_retries).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:container_registry_import_start_max_retries).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:container_registry_import_max_step_duration).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:container_registry_pre_import_timeout).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:container_registry_import_timeout).only_integer.is_greater_than_or_equal_to(0) }
it { is_expected.to validate_numericality_of(:container_registry_pre_import_tags_rate).is_greater_than_or_equal_to(0) }
- it { is_expected.not_to allow_value(nil).for(:container_registry_data_repair_detail_worker_max_concurrency) }
- it { is_expected.not_to allow_value(nil).for(:container_registry_import_max_tags_count) }
- it { is_expected.not_to allow_value(nil).for(:container_registry_import_max_retries) }
- it { is_expected.not_to allow_value(nil).for(:container_registry_import_start_max_retries) }
- it { is_expected.not_to allow_value(nil).for(:container_registry_import_max_step_duration) }
- it { is_expected.not_to allow_value(nil).for(:container_registry_pre_import_timeout) }
- it { is_expected.not_to allow_value(nil).for(:container_registry_import_timeout) }
it { is_expected.not_to allow_value(nil).for(:container_registry_pre_import_tags_rate) }
it { is_expected.to allow_value(1.5).for(:container_registry_pre_import_tags_rate) }
it { is_expected.to validate_presence_of(:container_registry_import_target_plan) }
it { is_expected.to validate_presence_of(:container_registry_import_created_before) }
- it { is_expected.to validate_numericality_of(:decompress_archive_file_timeout).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.not_to allow_value(nil).for(:decompress_archive_file_timeout) }
-
- it { is_expected.to validate_numericality_of(:dependency_proxy_ttl_group_policy_worker_capacity).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.not_to allow_value(nil).for(:dependency_proxy_ttl_group_policy_worker_capacity) }
-
- it { is_expected.to validate_numericality_of(:packages_cleanup_package_file_worker_capacity).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.not_to allow_value(nil).for(:packages_cleanup_package_file_worker_capacity) }
-
- it { is_expected.to validate_numericality_of(:package_registry_cleanup_policies_worker_capacity).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.not_to allow_value(nil).for(:package_registry_cleanup_policies_worker_capacity) }
-
- it { is_expected.to validate_numericality_of(:snippet_size_limit).only_integer.is_greater_than(0) }
it { is_expected.to validate_numericality_of(:wiki_page_max_content_bytes).only_integer.is_greater_than_or_equal_to(1024) }
it { is_expected.to validate_inclusion_of(:wiki_asciidoc_allow_uri_includes).in_array([true, false]) }
- it { is_expected.to validate_presence_of(:max_artifacts_size) }
- it { is_expected.to validate_numericality_of(:max_artifacts_size).only_integer.is_greater_than(0) }
- it { is_expected.to validate_presence_of(:max_yaml_size_bytes) }
- it { is_expected.to validate_numericality_of(:max_yaml_size_bytes).only_integer.is_greater_than(0) }
- it { is_expected.to validate_presence_of(:max_yaml_depth) }
- it { is_expected.to validate_numericality_of(:max_yaml_depth).only_integer.is_greater_than(0) }
it { is_expected.to validate_presence_of(:max_pages_size) }
- it { is_expected.to validate_presence_of(:max_pages_custom_domains_per_project) }
- it { is_expected.to validate_presence_of(:max_terraform_state_size_bytes) }
- it { is_expected.to validate_numericality_of(:max_terraform_state_size_bytes).only_integer.is_greater_than_or_equal_to(0) }
it { is_expected.to validate_inclusion_of(:user_defaults_to_private_profile).in_array([true, false]) }
@@ -174,40 +131,12 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
.is_less_than(::Gitlab::Pages::MAX_SIZE / 1.megabyte)
end
- it 'ensures max_pages_custom_domains_per_project is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)' do
- is_expected
- .to validate_numericality_of(:max_pages_custom_domains_per_project)
- .only_integer
- .is_greater_than_or_equal_to(0)
- end
-
- it { is_expected.to validate_presence_of(:jobs_per_stage_page_size) }
- it { is_expected.to validate_numericality_of(:jobs_per_stage_page_size).only_integer.is_greater_than_or_equal_to(0) }
-
it { is_expected.not_to allow_value(7).for(:minimum_password_length) }
it { is_expected.not_to allow_value(129).for(:minimum_password_length) }
it { is_expected.not_to allow_value(nil).for(:minimum_password_length) }
it { is_expected.not_to allow_value('abc').for(:minimum_password_length) }
it { is_expected.to allow_value(10).for(:minimum_password_length) }
- it { is_expected.to allow_value(300).for(:issues_create_limit) }
- it { is_expected.not_to allow_value('three').for(:issues_create_limit) }
- it { is_expected.not_to allow_value(nil).for(:issues_create_limit) }
- it { is_expected.not_to allow_value(10.5).for(:issues_create_limit) }
- it { is_expected.not_to allow_value(-1).for(:issues_create_limit) }
-
- it { is_expected.to allow_value(0).for(:raw_blob_request_limit) }
- it { is_expected.not_to allow_value('abc').for(:raw_blob_request_limit) }
- it { is_expected.not_to allow_value(nil).for(:raw_blob_request_limit) }
- it { is_expected.not_to allow_value(10.5).for(:raw_blob_request_limit) }
- it { is_expected.not_to allow_value(-1).for(:raw_blob_request_limit) }
-
- it { is_expected.to allow_value(0).for(:pipeline_limit_per_project_user_sha) }
- it { is_expected.not_to allow_value('abc').for(:pipeline_limit_per_project_user_sha) }
- it { is_expected.not_to allow_value(nil).for(:pipeline_limit_per_project_user_sha) }
- it { is_expected.not_to allow_value(10.5).for(:pipeline_limit_per_project_user_sha) }
- it { is_expected.not_to allow_value(-1).for(:pipeline_limit_per_project_user_sha) }
-
it { is_expected.not_to allow_value(false).for(:hashed_storage_enabled) }
it { is_expected.to allow_value('default' => 0).for(:repository_storages_weighted) }
@@ -219,15 +148,6 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
it { is_expected.not_to allow_value('default' => 101).for(:repository_storages_weighted).with_message("value for 'default' must be between 0 and 100") }
it { is_expected.not_to allow_value('default' => 100, shouldntexist: 50).for(:repository_storages_weighted).with_message("can't include: shouldntexist") }
- %i[notes_create_limit search_rate_limit search_rate_limit_unauthenticated users_get_by_id_limit
- projects_api_rate_limit_unauthenticated gitlab_shell_operation_limit].each do |setting|
- it { is_expected.to allow_value(400).for(setting) }
- it { is_expected.not_to allow_value('two').for(setting) }
- it { is_expected.not_to allow_value(nil).for(setting) }
- it { is_expected.not_to allow_value(5.5).for(setting) }
- it { is_expected.not_to allow_value(-2).for(setting) }
- end
-
def many_usernames(num = 100)
Array.new(num) { |i| "username#{i}" }
end
@@ -280,23 +200,132 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
it { is_expected.to validate_inclusion_of(:silent_mode_enabled).in_array([true, false]) }
- it { is_expected.to allow_value(0).for(:ci_max_includes) }
- it { is_expected.to allow_value(200).for(:ci_max_includes) }
- it { is_expected.not_to allow_value('abc').for(:ci_max_includes) }
- it { is_expected.not_to allow_value(nil).for(:ci_max_includes) }
- it { is_expected.not_to allow_value(10.5).for(:ci_max_includes) }
- it { is_expected.not_to allow_value(-1).for(:ci_max_includes) }
+ context 'for non-null integer attributes starting from 0' do
+ where(:attribute) do
+ %i[
+ bulk_import_max_download_file_size
+ ci_max_includes
+ ci_max_total_yaml_size_bytes
+ container_registry_cleanup_tags_service_max_list_size
+ container_registry_data_repair_detail_worker_max_concurrency
+ container_registry_delete_tags_service_timeout
+ container_registry_expiration_policies_worker_capacity
+ container_registry_import_max_retries
+ container_registry_import_max_step_duration
+ container_registry_import_max_tags_count
+ container_registry_import_start_max_retries
+ container_registry_import_timeout
+ container_registry_pre_import_timeout
+ decompress_archive_file_timeout
+ dependency_proxy_ttl_group_policy_worker_capacity
+ gitlab_shell_operation_limit
+ inactive_projects_min_size_mb
+ issues_create_limit
+ jobs_per_stage_page_size
+ max_decompressed_archive_size
+ max_export_size
+ max_import_remote_file_size
+ max_import_size
+ max_pages_custom_domains_per_project
+ max_terraform_state_size_bytes
+ members_delete_limit
+ notes_create_limit
+ package_registry_cleanup_policies_worker_capacity
+ packages_cleanup_package_file_worker_capacity
+ pipeline_limit_per_project_user_sha
+ projects_api_rate_limit_unauthenticated
+ raw_blob_request_limit
+ search_rate_limit
+ search_rate_limit_unauthenticated
+ session_expire_delay
+ sidekiq_job_limiter_compression_threshold_bytes
+ sidekiq_job_limiter_limit_bytes
+ terminal_max_session_time
+ users_get_by_id_limit
+ ]
+ end
- it { is_expected.to allow_value(0).for(:ci_max_total_yaml_size_bytes) }
- it { is_expected.to allow_value(200).for(:ci_max_total_yaml_size_bytes) }
- it { is_expected.not_to allow_value('abc').for(:ci_max_total_yaml_size_bytes) }
- it { is_expected.not_to allow_value(nil).for(:ci_max_total_yaml_size_bytes) }
- it { is_expected.not_to allow_value(10.5).for(:ci_max_total_yaml_size_bytes) }
- it { is_expected.not_to allow_value(-1).for(:ci_max_total_yaml_size_bytes) }
+ with_them do
+ it { is_expected.to validate_numericality_of(attribute).only_integer.is_greater_than_or_equal_to(0) }
+ it { is_expected.not_to allow_value(nil).for(attribute) }
+ end
+ end
- it { is_expected.to validate_inclusion_of(:remember_me_enabled).in_array([true, false]) }
+ context 'for non-null numerical attributes starting from 0' do
+ where(:attribute) do
+ %i[
+ push_event_hooks_limit
+ push_event_activities_limit
+ ]
+ end
- it { is_expected.to validate_numericality_of(:namespace_aggregation_schedule_lease_duration_in_seconds).only_integer.is_greater_than(0) }
+ with_them do
+ it { is_expected.to validate_numericality_of(attribute).is_greater_than_or_equal_to(0) }
+ it { is_expected.not_to allow_value(nil).for(attribute) }
+ end
+ end
+
+ context 'for non-null integer attributes starting from 1' do
+ where(:attribute) do
+ %i[
+ max_attachment_size
+ max_artifacts_size
+ container_registry_token_expire_delay
+ housekeeping_optimize_repository_period
+ bulk_import_concurrent_pipeline_batch_limit
+ snippet_size_limit
+ max_yaml_size_bytes
+ max_yaml_depth
+ namespace_aggregation_schedule_lease_duration_in_seconds
+ throttle_unauthenticated_api_requests_per_period
+ throttle_unauthenticated_api_period_in_seconds
+ throttle_unauthenticated_requests_per_period
+ throttle_unauthenticated_period_in_seconds
+ throttle_unauthenticated_packages_api_requests_per_period
+ throttle_unauthenticated_packages_api_period_in_seconds
+ throttle_unauthenticated_files_api_requests_per_period
+ throttle_unauthenticated_files_api_period_in_seconds
+ throttle_unauthenticated_deprecated_api_requests_per_period
+ throttle_unauthenticated_deprecated_api_period_in_seconds
+ throttle_authenticated_api_requests_per_period
+ throttle_authenticated_api_period_in_seconds
+ throttle_authenticated_git_lfs_requests_per_period
+ throttle_authenticated_git_lfs_period_in_seconds
+ throttle_authenticated_web_requests_per_period
+ throttle_authenticated_web_period_in_seconds
+ throttle_authenticated_packages_api_requests_per_period
+ throttle_authenticated_packages_api_period_in_seconds
+ throttle_authenticated_files_api_requests_per_period
+ throttle_authenticated_files_api_period_in_seconds
+ throttle_authenticated_deprecated_api_requests_per_period
+ throttle_authenticated_deprecated_api_period_in_seconds
+ throttle_protected_paths_requests_per_period
+ throttle_protected_paths_period_in_seconds
+ project_jobs_api_rate_limit
+ ]
+ end
+
+ with_them do
+ it { is_expected.to validate_numericality_of(attribute).only_integer.is_greater_than(0) }
+ it { is_expected.not_to allow_value(nil).for(attribute) }
+ end
+ end
+
+ context 'for null integer attributes starting from 1' do
+ where(:attribute) do
+ %i[
+ failed_login_attempts_unlock_period_in_minutes
+ external_pipeline_validation_service_timeout
+ max_login_attempts
+ ]
+ end
+
+ with_them do
+ it { is_expected.to validate_numericality_of(attribute).only_integer.is_greater_than(0).allow_nil }
+ end
+ end
+
+ it { is_expected.to validate_inclusion_of(:remember_me_enabled).in_array([true, false]) }
it { is_expected.to validate_inclusion_of(:instance_level_code_suggestions_enabled).in_array([true, false]) }
@@ -586,66 +615,6 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
end
end
- it { is_expected.to validate_presence_of(:max_attachment_size) }
-
- specify do
- is_expected.to validate_numericality_of(:max_attachment_size)
- .only_integer
- .is_greater_than(0)
- end
-
- it { is_expected.to validate_presence_of(:max_export_size) }
-
- specify do
- is_expected.to validate_numericality_of(:max_export_size)
- .only_integer
- .is_greater_than_or_equal_to(0)
- end
-
- it { is_expected.to validate_presence_of(:max_import_size) }
-
- specify do
- is_expected.to validate_numericality_of(:max_import_size)
- .only_integer
- .is_greater_than_or_equal_to(0)
- end
-
- it { is_expected.to validate_presence_of(:max_import_remote_file_size) }
-
- specify do
- is_expected.to validate_numericality_of(:max_import_remote_file_size)
- .only_integer
- .is_greater_than_or_equal_to(0)
- end
-
- it { is_expected.to validate_presence_of(:bulk_import_max_download_file_size) }
-
- specify do
- is_expected.to validate_numericality_of(:bulk_import_max_download_file_size)
- .only_integer
- .is_greater_than_or_equal_to(0)
- end
-
- it { is_expected.to validate_presence_of(:max_decompressed_archive_size) }
-
- specify do
- is_expected.to validate_numericality_of(:max_decompressed_archive_size)
- .only_integer
- .is_greater_than_or_equal_to(0)
- end
-
- specify do
- is_expected.to validate_numericality_of(:failed_login_attempts_unlock_period_in_minutes)
- .only_integer
- .is_greater_than(0)
- end
-
- specify do
- is_expected.to validate_numericality_of(:max_login_attempts)
- .only_integer
- .is_greater_than(0)
- end
-
specify do
is_expected.to validate_numericality_of(:local_markdown_version)
.only_integer
@@ -879,10 +848,6 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
end
end
- context 'housekeeping settings' do
- it { is_expected.not_to allow_value(0).for(:housekeeping_optimize_repository_period) }
- end
-
context 'gitaly timeouts' do
it "validates that the default_timeout is lower than the max_request_duration" do
is_expected.to validate_numericality_of(:gitaly_timeout_default)
@@ -1002,8 +967,8 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
it 'the credentials are valid when the private key can be read and matches the certificate' do
tls_attributes = [:external_auth_client_key_pass,
- :external_auth_client_key,
- :external_auth_client_cert]
+ :external_auth_client_key,
+ :external_auth_client_cert]
setting.external_auth_client_key = File.read('spec/fixtures/passphrase_x509_certificate_pk.key')
setting.external_auth_client_key_pass = '5iveL!fe'
@@ -1215,43 +1180,6 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
end
end
- context 'throttle_* settings' do
- where(:throttle_setting) do
- %i[
- throttle_unauthenticated_api_requests_per_period
- throttle_unauthenticated_api_period_in_seconds
- throttle_unauthenticated_requests_per_period
- throttle_unauthenticated_period_in_seconds
- throttle_authenticated_api_requests_per_period
- throttle_authenticated_api_period_in_seconds
- throttle_authenticated_web_requests_per_period
- throttle_authenticated_web_period_in_seconds
- throttle_unauthenticated_packages_api_requests_per_period
- throttle_unauthenticated_packages_api_period_in_seconds
- throttle_authenticated_packages_api_requests_per_period
- throttle_authenticated_packages_api_period_in_seconds
- throttle_unauthenticated_files_api_requests_per_period
- throttle_unauthenticated_files_api_period_in_seconds
- throttle_authenticated_files_api_requests_per_period
- throttle_authenticated_files_api_period_in_seconds
- throttle_unauthenticated_deprecated_api_requests_per_period
- throttle_unauthenticated_deprecated_api_period_in_seconds
- throttle_authenticated_deprecated_api_requests_per_period
- throttle_authenticated_deprecated_api_period_in_seconds
- throttle_authenticated_git_lfs_requests_per_period
- throttle_authenticated_git_lfs_period_in_seconds
- ]
- end
-
- with_them do
- it { is_expected.to allow_value(3).for(throttle_setting) }
- it { is_expected.not_to allow_value(-3).for(throttle_setting) }
- it { is_expected.not_to allow_value(0).for(throttle_setting) }
- it { is_expected.not_to allow_value('three').for(throttle_setting) }
- it { is_expected.not_to allow_value(nil).for(throttle_setting) }
- end
- end
-
context 'sidekiq job limiter settings' do
it 'has the right defaults', :aggregate_failures do
expect(setting.sidekiq_job_limiter_mode).to eq('compress')
@@ -1262,8 +1190,6 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
end
it { is_expected.to allow_value('track').for(:sidekiq_job_limiter_mode) }
- it { is_expected.to validate_numericality_of(:sidekiq_job_limiter_compression_threshold_bytes).only_integer.is_greater_than_or_equal_to(0) }
- it { is_expected.to validate_numericality_of(:sidekiq_job_limiter_limit_bytes).only_integer.is_greater_than_or_equal_to(0) }
end
context 'prometheus settings' do
@@ -1352,13 +1278,6 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
.with_message("must be a value between 0 and 1")
end
end
-
- describe 'bulk_import_concurrent_pipeline_batch_limit' do
- it do
- is_expected.to validate_numericality_of(:bulk_import_concurrent_pipeline_batch_limit)
- .is_greater_than(0)
- end
- end
end
context 'restrict creating duplicates' do
@@ -1714,8 +1633,6 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
it { is_expected.to validate_numericality_of(:inactive_projects_delete_after_months).is_greater_than(0) }
- it { is_expected.to validate_numericality_of(:inactive_projects_min_size_mb).is_greater_than_or_equal_to(0) }
-
it "deletes the redis key used for tracking inactive projects deletion warning emails when setting is updated",
:clean_gitlab_redis_shared_state do
Gitlab::Redis::SharedState.with do |redis|
diff --git a/spec/models/bulk_imports/entity_spec.rb b/spec/models/bulk_imports/entity_spec.rb
index ce143a1aa33..014b050a5b5 100644
--- a/spec/models/bulk_imports/entity_spec.rb
+++ b/spec/models/bulk_imports/entity_spec.rb
@@ -307,8 +307,7 @@ RSpec.describe BulkImports::Entity, type: :model, feature_category: :importers d
import = build(:bulk_import, source_version: '16.2.0')
entity = build(:bulk_import_entity, :project_entity, bulk_import: import)
- expect(entity.export_relations_url_path(batched: true))
- .to eq("/projects/#{entity.source_xid}/export_relations?batched=true")
+ expect(entity.export_relations_url_path).to eq("/projects/#{entity.source_xid}/export_relations?batched=true")
end
end
@@ -316,8 +315,7 @@ RSpec.describe BulkImports::Entity, type: :model, feature_category: :importers d
it 'returns export relations url' do
entity = build(:bulk_import_entity)
- expect(entity.export_relations_url_path(batched: true))
- .to eq("/groups/#{entity.source_xid}/export_relations")
+ expect(entity.export_relations_url_path).to eq("/groups/#{entity.source_xid}/export_relations")
end
end
end
diff --git a/spec/models/bulk_imports/failure_spec.rb b/spec/models/bulk_imports/failure_spec.rb
index 928f14aaced..bbb5ad52fe1 100644
--- a/spec/models/bulk_imports/failure_spec.rb
+++ b/spec/models/bulk_imports/failure_spec.rb
@@ -58,4 +58,20 @@ RSpec.describe BulkImports::Failure, type: :model, feature_category: :importers
expect(failure.exception_message.size).to eq(255)
end
end
+
+ describe '#source_title=' do
+ it 'truncates title to 255 characters' do
+ failure = described_class.new
+ failure.source_title = 'A' * 1000
+ expect(failure.source_title.size).to eq(255)
+ end
+ end
+
+ describe '#source_url=' do
+ it 'truncates url to 255 characters' do
+ failure = described_class.new
+ failure.source_url = 'A' * 1000
+ expect(failure.source_url.size).to eq(255)
+ end
+ end
end
diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb
index 18c7e57d464..d7e91f44e75 100644
--- a/spec/models/ci/build_spec.rb
+++ b/spec/models/ci/build_spec.rb
@@ -68,10 +68,17 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
it { is_expected.to delegate_method(:legacy_detached_merge_request_pipeline?).to(:pipeline) }
describe 'associations' do
+ it { is_expected.to belong_to(:project_mirror) }
+
it 'has a bidirectional relationship with projects' do
expect(described_class.reflect_on_association(:project).has_inverse?).to eq(:builds)
expect(Project.reflect_on_association(:builds).has_inverse?).to eq(:project)
end
+
+ it 'has a bidirectional relationship with project mirror' do
+ expect(described_class.reflect_on_association(:project_mirror).has_inverse?).to eq(:builds)
+ expect(Ci::ProjectMirror.reflect_on_association(:builds).has_inverse?).to eq(:project_mirror)
+ end
end
describe 'callbacks' do
@@ -325,14 +332,15 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
describe '.with_exposed_artifacts' do
subject { described_class.with_exposed_artifacts }
- let!(:job1) { create(:ci_build, pipeline: pipeline) }
+ let_it_be(:job1) { create(:ci_build, pipeline: pipeline) }
+ let_it_be(:job3) { create(:ci_build, pipeline: pipeline) }
+
let!(:job2) { create(:ci_build, options: options, pipeline: pipeline) }
- let!(:job3) { create(:ci_build, pipeline: pipeline) }
- context 'when some jobs have exposed artifacs and some not' do
+ context 'when some jobs have exposed artifacts and some not' do
let(:options) { { artifacts: { expose_as: 'test', paths: ['test'] } } }
- before do
+ before_all do
job1.ensure_metadata.update!(has_exposed_artifacts: nil)
job3.ensure_metadata.update!(has_exposed_artifacts: false)
end
@@ -356,10 +364,10 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
let(:artifact_scope) { Ci::JobArtifact.where(file_type: 'archive') }
- let!(:build_1) { create(:ci_build, :artifacts, pipeline: pipeline) }
- let!(:build_2) { create(:ci_build, :codequality_reports, pipeline: pipeline) }
- let!(:build_3) { create(:ci_build, :test_reports, pipeline: pipeline) }
- let!(:build_4) { create(:ci_build, :artifacts, pipeline: pipeline) }
+ let_it_be(:build_1) { create(:ci_build, :artifacts, pipeline: pipeline) }
+ let_it_be(:build_2) { create(:ci_build, :codequality_reports, pipeline: pipeline) }
+ let_it_be(:build_3) { create(:ci_build, :test_reports, pipeline: pipeline) }
+ let_it_be(:build_4) { create(:ci_build, :artifacts, pipeline: pipeline) }
it 'returns artifacts matching the given scope' do
expect(builds).to contain_exactly(build_1, build_4)
@@ -383,10 +391,10 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
end
describe '.with_needs' do
- let!(:build) { create(:ci_build, pipeline: pipeline) }
- let!(:build_b) { create(:ci_build, pipeline: pipeline) }
- let!(:build_need_a) { create(:ci_build_need, build: build) }
- let!(:build_need_b) { create(:ci_build_need, build: build_b) }
+ let_it_be(:build) { create(:ci_build, pipeline: pipeline) }
+ let_it_be(:build_b) { create(:ci_build, pipeline: pipeline) }
+ let_it_be(:build_need_a) { create(:ci_build_need, build: build) }
+ let_it_be(:build_need_b) { create(:ci_build_need, build: build_b) }
context 'when passing build name' do
subject { described_class.with_needs(build_need_a.name) }
@@ -421,6 +429,33 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
end
end
+ describe '.belonging_to_runner_manager' do
+ subject { described_class.belonging_to_runner_manager(runner_manager) }
+
+ let_it_be(:runner) { create(:ci_runner, :group, groups: [group]) }
+ let_it_be(:build_b) { create(:ci_build, :success) }
+
+ context 'with runner_manager of runner associated with build' do
+ let!(:runner_manager) { create(:ci_runner_machine, runner: runner) }
+ let!(:runner_manager_build) { create(:ci_runner_machine_build, build: build, runner_manager: runner_manager) }
+
+ it { is_expected.to contain_exactly(build) }
+ end
+
+ context 'with runner_manager of runner not associated with build' do
+ let!(:runner_manager) { create(:ci_runner_machine, runner: instance_runner) }
+ let!(:instance_runner) { create(:ci_runner, :with_runner_manager) }
+
+ it { is_expected.to be_empty }
+ end
+
+ context 'with nil runner_manager' do
+ let(:runner_manager) { nil }
+
+ it { is_expected.to be_empty }
+ end
+ end
+
describe '#stick_build_if_status_changed' do
it 'sticks the build if the status changed' do
job = create(:ci_build, :pending, pipeline: pipeline)
@@ -3262,6 +3297,34 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
end
end
+ context 'for the diffblue_cover integration' do
+ context 'when active' do
+ let_it_be(:diffblue_cover_integration) { create(:diffblue_cover_integration, active: true) }
+
+ let(:diffblue_cover_variables) do
+ [
+ { key: 'DIFFBLUE_LICENSE_KEY', value: diffblue_cover_integration.diffblue_license_key, masked: true, public: false },
+ { key: 'DIFFBLUE_ACCESS_TOKEN_NAME', value: diffblue_cover_integration.diffblue_access_token_name, masked: true, public: false },
+ { key: 'DIFFBLUE_ACCESS_TOKEN', value: diffblue_cover_integration.diffblue_access_token_secret, masked: true, public: false }
+ ]
+ end
+
+ it 'includes diffblue_cover variables' do
+ is_expected.to include(*diffblue_cover_variables)
+ end
+ end
+
+ context 'when inactive' do
+ let_it_be(:diffblue_cover_integration) { create(:diffblue_cover_integration, active: false) }
+
+ it 'does not include diffblue_cover variables' do
+ expect(subject.find { |v| v[:key] == 'DIFFBLUE_LICENSE_KEY' }).to be_nil
+ expect(subject.find { |v| v[:key] == 'DIFFBLUE_ACCESS_TOKEN_NAME' }).to be_nil
+ expect(subject.find { |v| v[:key] == 'DIFFBLUE_ACCESS_TOKEN' }).to be_nil
+ end
+ end
+ end
+
context 'for the google_play integration' do
before do
allow(build.pipeline).to receive(:protected_ref?).and_return(pipeline_protected_ref)
@@ -5507,10 +5570,11 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
stub_current_partition_id
end
- it 'includes partition_id as a token prefix' do
- prefix = ci_build.token.split('_').first.to_i(16)
+ it 'includes partition_id in the token prefix' do
+ prefix = ci_build.token.match(/^glcbt-([\h]+)_/)
+ partition_prefix = prefix[1].to_i(16)
- expect(prefix).to eq(ci_testing_partition_id)
+ expect(partition_prefix).to eq(ci_testing_partition_id)
end
end
@@ -5648,7 +5712,7 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
it 'generates a token' do
expect { ci_build.enqueue }
- .to change { ci_build.token }.from(nil).to(a_string_starting_with(partition_id_prefix_in_16_bit_encode))
+ .to change { ci_build.token }.from(nil).to(a_string_starting_with("glcbt-#{partition_id_prefix_in_16_bit_encode}"))
end
end
@@ -5665,4 +5729,51 @@ RSpec.describe Ci::Build, feature_category: :continuous_integration, factory_def
end
end
end
+
+ describe '#prefix_and_partition_for_token' do
+ # 100.to_s(16) -> 64
+ let(:ci_build) { described_class.new(partition_id: 100) }
+
+ shared_examples 'partition prefix' do
+ it 'is prefixed with partition_id' do
+ ci_build.ensure_token
+ expect(ci_build.token).to match(/^64_[\w-]{20}$/)
+ end
+ end
+
+ shared_examples 'static and partition prefixes' do
+ it 'is prefixed with static string and partition id' do
+ ci_build.ensure_token
+ expect(ci_build.token).to match(/^glcbt-64_[\w-]{20}$/)
+ end
+ end
+
+ it_behaves_like 'static and partition prefixes'
+
+ context 'when feature flag is globally disabled' do
+ before do
+ stub_feature_flags(prefix_ci_build_tokens: false)
+ end
+
+ it_behaves_like 'partition prefix'
+
+ context 'when enabled for a different project' do
+ let_it_be(:project) { create(:project) }
+
+ before do
+ stub_feature_flags(prefix_ci_build_tokens: project)
+ end
+
+ it_behaves_like 'partition prefix'
+ end
+
+ context 'when enabled for the project' do
+ before do
+ stub_feature_flags(prefix_ci_build_tokens: ci_build.project)
+ end
+
+ it_behaves_like 'static and partition prefixes'
+ end
+ end
+ end
end
diff --git a/spec/models/ci/catalog/resources/version_spec.rb b/spec/models/ci/catalog/resources/version_spec.rb
index aafd51699b5..bacaa6355fe 100644
--- a/spec/models/ci/catalog/resources/version_spec.rb
+++ b/spec/models/ci/catalog/resources/version_spec.rb
@@ -28,6 +28,23 @@ RSpec.describe Ci::Catalog::Resources::Version, type: :model, feature_category:
end
end
+ describe '.by_name' do
+ it 'returns the version that matches the name' do
+ versions = described_class.by_name('v1.0')
+
+ expect(versions.count).to eq(1)
+ expect(versions.first.name).to eq('v1.0')
+ end
+
+ context 'when no version matches the name' do
+ it 'returns empty response' do
+ versions = described_class.by_name('does_not_exist')
+
+ expect(versions).to be_empty
+ end
+ end
+ end
+
describe '.order_by_created_at_asc' do
it 'returns versions ordered by created_at ascending' do
versions = described_class.order_by_created_at_asc
@@ -127,9 +144,9 @@ RSpec.describe Ci::Catalog::Resources::Version, type: :model, feature_category:
describe '#name' do
it 'is equivalent to release.tag' do
- release_v1_0.update!(name: 'Release v1.0')
+ v1_0.release.update!(name: 'Release v1.0')
- expect(v1_0.name).to eq(release_v1_0.tag)
+ expect(v1_0.name).to eq(v1_0.release.tag)
end
end
@@ -142,10 +159,17 @@ RSpec.describe Ci::Catalog::Resources::Version, type: :model, feature_category:
context 'when the sha is nil' do
it 'returns nil' do
- release_v1_0.update!(sha: nil)
+ v1_0.release.update!(sha: nil)
is_expected.to be_nil
end
end
end
+
+ describe '#readme' do
+ it 'returns the correct readme for the version' do
+ expect(v1_0.readme.data).to include('Readme v1.0')
+ expect(v1_1.readme.data).to include('Readme v1.1')
+ end
+ end
end
diff --git a/spec/models/ci/instance_variable_spec.rb b/spec/models/ci/instance_variable_spec.rb
index 0ef1dfbd55c..9a6a78ee5f4 100644
--- a/spec/models/ci/instance_variable_spec.rb
+++ b/spec/models/ci/instance_variable_spec.rb
@@ -113,4 +113,10 @@ RSpec.describe Ci::InstanceVariable do
end
end
end
+
+ describe "description" do
+ it { is_expected.to allow_values('').for(:description) }
+ it { is_expected.to allow_values(nil).for(:description) }
+ it { is_expected.to validate_length_of(:description).is_at_most(255) }
+ end
end
diff --git a/spec/models/ci/namespace_mirror_spec.rb b/spec/models/ci/namespace_mirror_spec.rb
index 63e6e9e6b26..8db8fd4e067 100644
--- a/spec/models/ci/namespace_mirror_spec.rb
+++ b/spec/models/ci/namespace_mirror_spec.rb
@@ -21,6 +21,16 @@ RSpec.describe Ci::NamespaceMirror do
)
end
+ describe 'associations' do
+ it { is_expected.to belong_to(:namespace) }
+ it { is_expected.to have_many(:project_mirrors) }
+
+ it 'has a bidirectional relationship with project mirrors' do
+ expect(described_class.reflect_on_association(:project_mirrors).has_inverse?).to eq(:namespace_mirror)
+ expect(Ci::ProjectMirror.reflect_on_association(:namespace_mirror).has_inverse?).to eq(:project_mirrors)
+ end
+ end
+
context 'scopes' do
describe '.by_group_and_descendants' do
let_it_be(:another_group) { create(:group) }
diff --git a/spec/models/ci/pipeline_artifact_spec.rb b/spec/models/ci/pipeline_artifact_spec.rb
index eb89c7af208..1cb99ec22b9 100644
--- a/spec/models/ci/pipeline_artifact_spec.rb
+++ b/spec/models/ci/pipeline_artifact_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Ci::PipelineArtifact, type: :model do
+RSpec.describe Ci::PipelineArtifact, type: :model, feature_category: :build_artifacts do
let(:coverage_report) { create(:ci_pipeline_artifact, :with_coverage_report) }
describe 'associations' do
@@ -309,4 +309,19 @@ RSpec.describe Ci::PipelineArtifact, type: :model do
let!(:model) { create(:ci_pipeline_artifact, project: parent) }
end
end
+
+ describe 'partitioning', :ci_partitionable do
+ include Ci::PartitioningHelpers
+
+ let(:pipeline) { create(:ci_pipeline) }
+ let(:pipeline_artifact) { create(:ci_pipeline_artifact, pipeline: pipeline) }
+
+ before do
+ stub_current_partition_id
+ end
+
+ it 'assigns the same partition id as the one that pipeline has' do
+ expect(pipeline_artifact.partition_id).to eq(ci_testing_partition_id)
+ end
+ end
end
diff --git a/spec/models/ci/pipeline_chat_data_spec.rb b/spec/models/ci/pipeline_chat_data_spec.rb
new file mode 100644
index 00000000000..4c9dc7edd88
--- /dev/null
+++ b/spec/models/ci/pipeline_chat_data_spec.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Ci::PipelineChatData, type: :model, feature_category: :continuous_integration do
+ it { is_expected.to belong_to(:chat_name) }
+ it { is_expected.to belong_to(:pipeline) }
+
+ it { is_expected.to validate_presence_of(:pipeline_id) }
+ it { is_expected.to validate_presence_of(:chat_name_id) }
+ it { is_expected.to validate_presence_of(:response_url) }
+
+ describe 'partitioning', :ci_partitionable do
+ include Ci::PartitioningHelpers
+
+ let(:pipeline) { create(:ci_pipeline) }
+ let(:pipeline_chat_data) { create(:ci_pipeline_chat_data, pipeline: pipeline) }
+
+ before do
+ stub_current_partition_id
+ end
+
+ it 'assigns the same partition id as the one that pipeline has' do
+ expect(pipeline_chat_data.partition_id).to eq(ci_testing_partition_id)
+ end
+ end
+end
diff --git a/spec/models/ci/pipeline_config_spec.rb b/spec/models/ci/pipeline_config_spec.rb
index 3d033d33df3..3368c40fb57 100644
--- a/spec/models/ci/pipeline_config_spec.rb
+++ b/spec/models/ci/pipeline_config_spec.rb
@@ -2,9 +2,24 @@
require 'spec_helper'
-RSpec.describe Ci::PipelineConfig, type: :model do
+RSpec.describe Ci::PipelineConfig, type: :model, feature_category: :continuous_integration do
it { is_expected.to belong_to(:pipeline) }
it { is_expected.to validate_presence_of(:pipeline) }
it { is_expected.to validate_presence_of(:content) }
+
+ describe 'partitioning', :ci_partitionable do
+ include Ci::PartitioningHelpers
+
+ let(:pipeline) { create(:ci_pipeline) }
+ let(:pipeline_config) { create(:ci_pipeline_config, pipeline: pipeline) }
+
+ before do
+ stub_current_partition_id
+ end
+
+ it 'assigns the same partition id as the one that pipeline has' do
+ expect(pipeline_config.partition_id).to eq(ci_testing_partition_id)
+ end
+ end
end
diff --git a/spec/models/ci/pipeline_metadata_spec.rb b/spec/models/ci/pipeline_metadata_spec.rb
index 1a426118063..efe180b1db3 100644
--- a/spec/models/ci/pipeline_metadata_spec.rb
+++ b/spec/models/ci/pipeline_metadata_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe Ci::PipelineMetadata, feature_category: :pipeline_composition do
is_expected.to define_enum_for(
:auto_cancel_on_new_commit
).with_values(
- conservative: 0, interruptible: 1, disabled: 2
+ conservative: 0, interruptible: 1, none: 2
).with_prefix
end
@@ -27,4 +27,19 @@ RSpec.describe Ci::PipelineMetadata, feature_category: :pipeline_composition do
).with_prefix
end
end
+
+ describe 'partitioning', :ci_partitionable do
+ include Ci::PartitioningHelpers
+
+ let(:pipeline) { create(:ci_pipeline) }
+ let(:pipeline_metadata) { create(:ci_pipeline_metadata, pipeline: pipeline) }
+
+ before do
+ stub_current_partition_id
+ end
+
+ it 'assigns the same partition id as the one that pipeline has' do
+ expect(pipeline_metadata.partition_id).to eq(ci_testing_partition_id)
+ end
+ end
end
diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb
index 024d3ae4240..52c3792ac93 100644
--- a/spec/models/ci/pipeline_spec.rb
+++ b/spec/models/ci/pipeline_spec.rb
@@ -2349,14 +2349,14 @@ RSpec.describe Ci::Pipeline, :mailer, factory_default: :keep, feature_category:
end
it 'runs on a branch update push' do
- expect(pipeline.before_sha).not_to be Gitlab::Git::BLANK_SHA
+ expect(pipeline.before_sha).not_to be Gitlab::Git::SHA1_BLANK_SHA
expect(pipeline.branch_updated?).to be true
end
end
context 'when pipeline does not have before SHA' do
before do
- pipeline.update!(before_sha: Gitlab::Git::BLANK_SHA)
+ pipeline.update!(before_sha: Gitlab::Git::SHA1_BLANK_SHA)
end
it 'does not run on a branch updating push' do
@@ -2384,7 +2384,7 @@ RSpec.describe Ci::Pipeline, :mailer, factory_default: :keep, feature_category:
context 'when either old or new revision is missing' do
before do
- pipeline.update!(before_sha: Gitlab::Git::BLANK_SHA)
+ pipeline.update!(before_sha: Gitlab::Git::SHA1_BLANK_SHA)
end
it 'returns nil' do
@@ -5727,4 +5727,36 @@ RSpec.describe Ci::Pipeline, :mailer, factory_default: :keep, feature_category:
end
end
end
+
+ describe '#auto_cancel_on_new_commit' do
+ let_it_be_with_reload(:pipeline) { create(:ci_pipeline, project: project) }
+
+ subject(:auto_cancel_on_new_commit) { pipeline.auto_cancel_on_new_commit }
+
+ context 'when pipeline_metadata is not present' do
+ it { is_expected.to eq('conservative') }
+ end
+
+ context 'when pipeline_metadata is present' do
+ before_all do
+ create(:ci_pipeline_metadata, project: pipeline.project, pipeline: pipeline)
+ end
+
+ context 'when auto_cancel_on_new_commit is nil' do
+ before do
+ pipeline.pipeline_metadata.auto_cancel_on_new_commit = nil
+ end
+
+ it { is_expected.to eq('conservative') }
+ end
+
+ context 'when auto_cancel_on_new_commit is a valid value' do
+ before do
+ pipeline.pipeline_metadata.auto_cancel_on_new_commit = 'interruptible'
+ end
+
+ it { is_expected.to eq('interruptible') }
+ end
+ end
+ end
end
diff --git a/spec/models/ci/processable_spec.rb b/spec/models/ci/processable_spec.rb
index 5d457c4f213..d74441f93a6 100644
--- a/spec/models/ci/processable_spec.rb
+++ b/spec/models/ci/processable_spec.rb
@@ -83,7 +83,7 @@ RSpec.describe Ci::Processable, feature_category: :continuous_integration do
let(:ignore_accessors) do
%i[type namespace lock_version target_url base_tags trace_sections
- commit_id deployment erased_by_id project_id
+ commit_id deployment erased_by_id project_id project_mirror
runner_id tag_taggings taggings tags trigger_request_id
user_id auto_canceled_by_id retried failure_reason
sourced_pipelines sourced_pipeline artifacts_file_store artifacts_metadata_store
diff --git a/spec/models/ci/project_mirror_spec.rb b/spec/models/ci/project_mirror_spec.rb
index 5ef520b4230..491ae353ffe 100644
--- a/spec/models/ci/project_mirror_spec.rb
+++ b/spec/models/ci/project_mirror_spec.rb
@@ -8,6 +8,22 @@ RSpec.describe Ci::ProjectMirror do
let!(:project) { create(:project, namespace: group2) }
+ describe 'associations' do
+ it { is_expected.to belong_to(:project) }
+ it { is_expected.to belong_to(:namespace_mirror) }
+ it { is_expected.to have_many(:builds) }
+
+ it 'has a bidirectional relationship with namespace mirror' do
+ expect(described_class.reflect_on_association(:namespace_mirror).has_inverse?).to eq(:project_mirrors)
+ expect(Ci::NamespaceMirror.reflect_on_association(:project_mirrors).has_inverse?).to eq(:namespace_mirror)
+ end
+
+ it 'has a bidirectional relationship with builds' do
+ expect(described_class.reflect_on_association(:builds).has_inverse?).to eq(:project_mirror)
+ expect(Ci::Build.reflect_on_association(:project_mirror).has_inverse?).to eq(:builds)
+ end
+ end
+
context 'scopes' do
let_it_be(:another_project) { create(:project, namespace: group1) }
diff --git a/spec/models/ci/runner_manager_spec.rb b/spec/models/ci/runner_manager_spec.rb
index 02a72afe0c6..4fdfbae997d 100644
--- a/spec/models/ci/runner_manager_spec.rb
+++ b/spec/models/ci/runner_manager_spec.rb
@@ -41,20 +41,70 @@ RSpec.describe Ci::RunnerManager, feature_category: :fleet_visibility, type: :mo
end
end
- describe '.stale', :freeze_time do
- subject { described_class.stale.ids }
+ describe 'status scopes' do
+ let_it_be(:runner) { create(:ci_runner, :instance) }
- let!(:runner_manager1) { create(:ci_runner_machine, :stale) }
- let!(:runner_manager2) { create(:ci_runner_machine, :stale, contacted_at: nil) }
- let!(:runner_manager3) { create(:ci_runner_machine, created_at: 6.months.ago, contacted_at: Time.current) }
- let!(:runner_manager4) { create(:ci_runner_machine, created_at: 5.days.ago) }
- let!(:runner_manager5) do
- create(:ci_runner_machine, created_at: (7.days - 1.second).ago, contacted_at: (7.days - 1.second).ago)
+ let_it_be(:offline_runner_manager) { create(:ci_runner_machine, runner: runner, contacted_at: 2.hours.ago) }
+ let_it_be(:online_runner_manager) { create(:ci_runner_machine, runner: runner, contacted_at: 1.second.ago) }
+ let_it_be(:never_contacted_runner_manager) { create(:ci_runner_machine, runner: runner, contacted_at: nil) }
+
+ describe '.online' do
+ subject(:runner_managers) { described_class.online }
+
+ it 'returns online runner managers' do
+ expect(runner_managers).to contain_exactly(online_runner_manager)
+ end
+ end
+
+ describe '.offline' do
+ subject(:runner_managers) { described_class.offline }
+
+ it 'returns offline runner managers' do
+ expect(runner_managers).to contain_exactly(offline_runner_manager)
+ end
end
- it 'returns stale runner managers' do
- is_expected.to match_array([runner_manager1.id, runner_manager2.id])
+ describe '.never_contacted' do
+ subject(:runner_managers) { described_class.never_contacted }
+
+ it 'returns never contacted runner managers' do
+ expect(runner_managers).to contain_exactly(never_contacted_runner_manager)
+ end
end
+
+ describe '.stale', :freeze_time do
+ subject { described_class.stale }
+
+ let!(:stale_runner_manager1) do
+ create(
+ :ci_runner_machine,
+ runner: runner,
+ created_at: described_class.stale_deadline - 1.second,
+ contacted_at: nil
+ )
+ end
+
+ let!(:stale_runner_manager2) do
+ create(
+ :ci_runner_machine,
+ runner: runner,
+ created_at: 8.days.ago,
+ contacted_at: described_class.stale_deadline - 1.second
+ )
+ end
+
+ it 'returns stale runner managers' do
+ is_expected.to contain_exactly(stale_runner_manager1, stale_runner_manager2)
+ end
+ end
+
+ include_examples 'runner with status scope'
+ end
+
+ describe '.available_statuses' do
+ subject { described_class.available_statuses }
+
+ it { is_expected.to eq(%w[online offline never_contacted stale]) }
end
describe '.online_contact_time_deadline', :freeze_time do
@@ -72,23 +122,60 @@ RSpec.describe Ci::RunnerManager, feature_category: :fleet_visibility, type: :mo
describe '.for_runner' do
subject(:runner_managers) { described_class.for_runner(runner_arg) }
- let_it_be(:runner1) { create(:ci_runner) }
- let_it_be(:runner_manager11) { create(:ci_runner_machine, runner: runner1) }
- let_it_be(:runner_manager12) { create(:ci_runner_machine, runner: runner1) }
+ let_it_be(:runner_a) { create(:ci_runner) }
+ let_it_be(:runner_manager_a1) { create(:ci_runner_machine, runner: runner_a) }
+ let_it_be(:runner_manager_a2) { create(:ci_runner_machine, runner: runner_a) }
context 'with single runner' do
- let(:runner_arg) { runner1 }
+ let(:runner_arg) { runner_a }
- it { is_expected.to contain_exactly(runner_manager11, runner_manager12) }
+ it { is_expected.to contain_exactly(runner_manager_a1, runner_manager_a2) }
end
context 'with multiple runners' do
- let(:runner_arg) { [runner1, runner2] }
+ let(:runner_arg) { [runner_a, runner_b] }
- let_it_be(:runner2) { create(:ci_runner) }
- let_it_be(:runner_manager2) { create(:ci_runner_machine, runner: runner2) }
+ let_it_be(:runner_b) { create(:ci_runner) }
+ let_it_be(:runner_manager_b1) { create(:ci_runner_machine, runner: runner_b) }
- it { is_expected.to contain_exactly(runner_manager11, runner_manager12, runner_manager2) }
+ it { is_expected.to contain_exactly(runner_manager_a1, runner_manager_a2, runner_manager_b1) }
+ end
+ end
+
+ describe '.with_system_xid' do
+ subject(:runner_managers) { described_class.with_system_xid(system_xid) }
+
+ let_it_be(:runner_a) { create(:ci_runner) }
+ let_it_be(:runner_b) { create(:ci_runner) }
+ let_it_be(:runner_manager_a1) { create(:ci_runner_machine, runner: runner_a, system_xid: 'id1') }
+ let_it_be(:runner_manager_a2) { create(:ci_runner_machine, runner: runner_a, system_xid: 'id2') }
+ let_it_be(:runner_manager_b1) { create(:ci_runner_machine, runner: runner_b, system_xid: 'id1') }
+
+ context 'with single system id' do
+ let(:system_xid) { 'id2' }
+
+ it { is_expected.to contain_exactly(runner_manager_a2) }
+ end
+
+ context 'with multiple system ids' do
+ let(:system_xid) { %w[id1 id2] }
+
+ it { is_expected.to contain_exactly(runner_manager_a1, runner_manager_a2, runner_manager_b1) }
+ end
+
+ context 'when chained with another scope' do
+ subject(:runner_managers) { described_class.for_runner(runner).with_system_xid(system_xid) }
+
+ let(:runner) { runner_a }
+ let(:system_xid) { 'id1' }
+
+ it { is_expected.to contain_exactly(runner_manager_a1) }
+
+ context 'with another runner' do
+ let(:runner) { runner_b }
+
+ it { is_expected.to contain_exactly(runner_manager_b1) }
+ end
end
end
@@ -96,18 +183,18 @@ RSpec.describe Ci::RunnerManager, feature_category: :fleet_visibility, type: :mo
let!(:runner_version1) { create(:ci_runner_version, version: '16.0.0', status: :recommended) }
let!(:runner_version2) { create(:ci_runner_version, version: '16.0.1', status: :available) }
- let!(:runner1) { create(:ci_runner) }
- let!(:runner2) { create(:ci_runner) }
- let!(:runner_manager11) { create(:ci_runner_machine, runner: runner1, version: runner_version1.version) }
- let!(:runner_manager12) { create(:ci_runner_machine, runner: runner1, version: runner_version2.version) }
- let!(:runner_manager2) { create(:ci_runner_machine, runner: runner2, version: runner_version2.version) }
+ let!(:runner_a) { create(:ci_runner) }
+ let!(:runner_b) { create(:ci_runner) }
+ let!(:runner_manager_a1) { create(:ci_runner_machine, runner: runner_a, version: runner_version1.version) }
+ let!(:runner_manager_a2) { create(:ci_runner_machine, runner: runner_a, version: runner_version2.version) }
+ let!(:runner_manager_b1) { create(:ci_runner_machine, runner: runner_b, version: runner_version2.version) }
subject { described_class.aggregate_upgrade_status_by_runner_id }
it 'contains aggregate runner upgrade status by runner ID' do
is_expected.to eq({
- runner1.id => :recommended,
- runner2.id => :available
+ runner_a.id => :recommended,
+ runner_b.id => :available
})
end
end
@@ -139,6 +226,108 @@ RSpec.describe Ci::RunnerManager, feature_category: :fleet_visibility, type: :mo
it { is_expected.to eq([runner_manager2, runner_manager1]) }
end
+ describe '.with_upgrade_status' do
+ subject(:scope) { described_class.with_upgrade_status(upgrade_status) }
+
+ let_it_be(:runner_manager_14_0_0) { create(:ci_runner_machine, version: '14.0.0') }
+ let_it_be(:runner_manager_14_1_0) { create(:ci_runner_machine, version: '14.1.0') }
+ let_it_be(:runner_manager_14_1_1) { create(:ci_runner_machine, version: '14.1.1') }
+
+ before_all do
+ create(:ci_runner_version, version: '14.0.0', status: :available)
+ create(:ci_runner_version, version: '14.1.0', status: :recommended)
+ create(:ci_runner_version, version: '14.1.1', status: :unavailable)
+ end
+
+ context 'as :unavailable' do
+ let(:upgrade_status) { :unavailable }
+
+ it 'returns runners with runner managers whose version is assigned :unavailable' do
+ is_expected.to contain_exactly(runner_manager_14_1_1)
+ end
+ end
+
+ context 'as :available' do
+ let(:upgrade_status) { :available }
+
+ it 'returns runners with runner managers whose version is assigned :available' do
+ is_expected.to contain_exactly(runner_manager_14_0_0)
+ end
+ end
+
+ context 'as :recommended' do
+ let(:upgrade_status) { :recommended }
+
+ it 'returns runners with runner managers whose version is assigned :recommended' do
+ is_expected.to contain_exactly(runner_manager_14_1_0)
+ end
+ end
+ end
+
+ describe '.with_version_prefix' do
+ subject { described_class.with_version_prefix(version_prefix) }
+
+ let_it_be(:runner_manager1) { create(:ci_runner_machine, version: '15.11.0') }
+ let_it_be(:runner_manager2) { create(:ci_runner_machine, version: '15.9.0') }
+ let_it_be(:runner_manager3) { create(:ci_runner_machine, version: '15.11.5') }
+
+ context 'with a prefix string of "15."' do
+ let(:version_prefix) { "15." }
+
+ it 'returns runner managers' do
+ is_expected.to contain_exactly(runner_manager1, runner_manager2, runner_manager3)
+ end
+ end
+
+ context 'with a prefix string of "15"' do
+ let(:version_prefix) { "15" }
+
+ it 'returns runner managers' do
+ is_expected.to contain_exactly(runner_manager1, runner_manager2, runner_manager3)
+ end
+ end
+
+ context 'with a prefix string of "15.11."' do
+ let(:version_prefix) { "15.11." }
+
+ it 'returns runner managers' do
+ is_expected.to contain_exactly(runner_manager1, runner_manager3)
+ end
+ end
+
+ context 'with a prefix string of "15.11"' do
+ let(:version_prefix) { "15.11" }
+
+ it 'returns runner managers' do
+ is_expected.to contain_exactly(runner_manager1, runner_manager3)
+ end
+ end
+
+ context 'with a prefix string of "15.9"' do
+ let(:version_prefix) { "15.9" }
+
+ it 'returns runner managers' do
+ is_expected.to contain_exactly(runner_manager2)
+ end
+ end
+
+ context 'with a prefix string of "15.11.5"' do
+ let(:version_prefix) { "15.11.5" }
+
+ it 'returns runner managers' do
+ is_expected.to contain_exactly(runner_manager3)
+ end
+ end
+
+ context 'with a malformed prefix of "V2"' do
+ let(:version_prefix) { "V2" }
+
+ it 'returns no runner managers' do
+ is_expected.to be_empty
+ end
+ end
+ end
+
describe '#status', :freeze_time do
let(:runner_manager) { build(:ci_runner_machine, created_at: 8.days.ago) }
@@ -375,106 +564,4 @@ RSpec.describe Ci::RunnerManager, feature_category: :fleet_visibility, type: :mo
it { is_expected.to contain_exactly build }
end
end
-
- describe '.with_upgrade_status' do
- subject(:scope) { described_class.with_upgrade_status(upgrade_status) }
-
- let_it_be(:runner_manager_14_0_0) { create(:ci_runner_machine, version: '14.0.0') }
- let_it_be(:runner_manager_14_1_0) { create(:ci_runner_machine, version: '14.1.0') }
- let_it_be(:runner_manager_14_1_1) { create(:ci_runner_machine, version: '14.1.1') }
-
- before_all do
- create(:ci_runner_version, version: '14.0.0', status: :available)
- create(:ci_runner_version, version: '14.1.0', status: :recommended)
- create(:ci_runner_version, version: '14.1.1', status: :unavailable)
- end
-
- context 'as :unavailable' do
- let(:upgrade_status) { :unavailable }
-
- it 'returns runners with runner managers whose version is assigned :unavailable' do
- is_expected.to contain_exactly(runner_manager_14_1_1)
- end
- end
-
- context 'as :available' do
- let(:upgrade_status) { :available }
-
- it 'returns runners with runner managers whose version is assigned :available' do
- is_expected.to contain_exactly(runner_manager_14_0_0)
- end
- end
-
- context 'as :recommended' do
- let(:upgrade_status) { :recommended }
-
- it 'returns runners with runner managers whose version is assigned :recommended' do
- is_expected.to contain_exactly(runner_manager_14_1_0)
- end
- end
- end
-
- describe '.with_version_prefix' do
- subject { described_class.with_version_prefix(version_prefix) }
-
- let_it_be(:runner_manager1) { create(:ci_runner_machine, version: '15.11.0') }
- let_it_be(:runner_manager2) { create(:ci_runner_machine, version: '15.9.0') }
- let_it_be(:runner_manager3) { create(:ci_runner_machine, version: '15.11.5') }
-
- context 'with a prefix string of "15."' do
- let(:version_prefix) { "15." }
-
- it 'returns runner managers' do
- is_expected.to contain_exactly(runner_manager1, runner_manager2, runner_manager3)
- end
- end
-
- context 'with a prefix string of "15"' do
- let(:version_prefix) { "15" }
-
- it 'returns runner managers' do
- is_expected.to contain_exactly(runner_manager1, runner_manager2, runner_manager3)
- end
- end
-
- context 'with a prefix string of "15.11."' do
- let(:version_prefix) { "15.11." }
-
- it 'returns runner managers' do
- is_expected.to contain_exactly(runner_manager1, runner_manager3)
- end
- end
-
- context 'with a prefix string of "15.11"' do
- let(:version_prefix) { "15.11" }
-
- it 'returns runner managers' do
- is_expected.to contain_exactly(runner_manager1, runner_manager3)
- end
- end
-
- context 'with a prefix string of "15.9"' do
- let(:version_prefix) { "15.9" }
-
- it 'returns runner managers' do
- is_expected.to contain_exactly(runner_manager2)
- end
- end
-
- context 'with a prefix string of "15.11.5"' do
- let(:version_prefix) { "15.11.5" }
-
- it 'returns runner managers' do
- is_expected.to contain_exactly(runner_manager3)
- end
- end
-
- context 'with a malformed prefix of "V2"' do
- let(:version_prefix) { "V2" }
-
- it 'returns no runner managers' do
- is_expected.to be_empty
- end
- end
- end
end
diff --git a/spec/models/ci/runner_spec.rb b/spec/models/ci/runner_spec.rb
index bb9ac084ed6..d4f7db3bddd 100644
--- a/spec/models/ci/runner_spec.rb
+++ b/spec/models/ci/runner_spec.rb
@@ -532,7 +532,7 @@ RSpec.describe Ci::Runner, type: :model, feature_category: :runner do
let_it_be(:runner3) { create(:ci_runner, creator_id: 1) }
let_it_be(:runner4) { create(:ci_runner, creator_id: nil) }
- it 'returns runners with creator_id \'1\'' do
+ it "returns runners with creator_id '1'" do
is_expected.to contain_exactly(runner2, runner3)
end
end
@@ -557,19 +557,6 @@ RSpec.describe Ci::Runner, type: :model, feature_category: :runner do
end
end
- describe '.stale', :freeze_time do
- subject { described_class.stale }
-
- let!(:runner1) { create(:ci_runner, :instance, created_at: 4.months.ago, contacted_at: 3.months.ago + 1.second) }
- let!(:runner2) { create(:ci_runner, :instance, created_at: 4.months.ago, contacted_at: 3.months.ago) }
- let!(:runner3) { create(:ci_runner, :instance, created_at: 3.months.ago, contacted_at: nil) }
- let!(:runner4) { create(:ci_runner, :instance, created_at: 2.months.ago, contacted_at: nil) }
-
- it 'returns stale runners' do
- is_expected.to match_array([runner2, runner3])
- end
- end
-
describe '#stale?', :clean_gitlab_redis_cache, :freeze_time do
let(:runner) { build(:ci_runner, :instance) }
@@ -632,15 +619,6 @@ RSpec.describe Ci::Runner, type: :model, feature_category: :runner do
end
end
- describe '.online', :freeze_time do
- subject { described_class.online }
-
- let!(:runner1) { create(:ci_runner, :instance, contacted_at: 2.hours.ago) }
- let!(:runner2) { create(:ci_runner, :instance, contacted_at: 1.second.ago) }
-
- it { is_expected.to match_array([runner2]) }
- end
-
describe '#online?', :clean_gitlab_redis_cache, :freeze_time do
let(:runner) { build(:ci_runner, :instance) }
@@ -715,15 +693,6 @@ RSpec.describe Ci::Runner, type: :model, feature_category: :runner do
end
end
- describe '.offline' do
- subject { described_class.offline }
-
- let!(:runner1) { create(:ci_runner, :instance, contacted_at: 2.hours.ago) }
- let!(:runner2) { create(:ci_runner, :instance, contacted_at: 1.second.ago) }
-
- it { is_expected.to eq([runner1]) }
- end
-
describe '.with_running_builds' do
subject { described_class.with_running_builds }
@@ -1229,6 +1198,46 @@ RSpec.describe Ci::Runner, type: :model, feature_category: :runner do
end
end
+ describe '#clear_heartbeat', :freeze_time do
+ let!(:runner) { create(:ci_runner, :project, version: '15.0.0') }
+ let(:heartbeat_values) do
+ {
+ version: '15.0.1',
+ platform: 'darwin',
+ architecture: '18-bit',
+ ip_address: '1.1.1.1',
+ executor: 'shell',
+ revision: 'sha',
+ config: { 'gpus' => 'all' }
+ }
+ end
+
+ let(:expected_attributes) { heartbeat_values.except(:executor).merge(executor_type: 'shell') }
+ let(:expected_cleared_attributes) { expected_attributes.to_h { |key, _| [key, nil] }.merge(config: {}) }
+
+ it 'clears contacted at and other attributes' do
+ expect do
+ runner.heartbeat(heartbeat_values)
+ end.to change { runner.reload.contacted_at }.from(nil).to(Time.current)
+ .and change { runner.reload.uncached_contacted_at }.from(nil).to(Time.current)
+
+ expected_attributes.each do |key, value|
+ expect(runner.public_send(key)).to eq(value)
+ expect(runner.read_attribute(key)).to eq(value)
+ end
+
+ expect do
+ runner.clear_heartbeat
+ end.to change { runner.reload.contacted_at }.from(Time.current).to(nil)
+ .and change { runner.reload.uncached_contacted_at }.from(Time.current).to(nil)
+
+ expected_cleared_attributes.each do |key, value|
+ expect(runner.public_send(key)).to eq(value)
+ expect(runner.read_attribute(key)).to eq(value)
+ end
+ end
+ end
+
describe '#destroy' do
let(:runner) { create(:ci_runner) }
@@ -2126,4 +2135,102 @@ RSpec.describe Ci::Runner, type: :model, feature_category: :runner do
end
end
end
+
+ describe 'status scopes' do
+ let_it_be(:online_runner) { create(:ci_runner, :instance, contacted_at: 1.second.ago) }
+ let_it_be(:offline_runner) { create(:ci_runner, :instance, contacted_at: 2.hours.ago) }
+ let_it_be(:never_contacted_runner) { create(:ci_runner, :instance, contacted_at: nil) }
+
+ describe '.online' do
+ subject(:runners) { described_class.online }
+
+ it 'returns online runners' do
+ expect(runners).to contain_exactly(online_runner)
+ end
+ end
+
+ describe '.offline' do
+ subject(:runners) { described_class.offline }
+
+ it 'returns offline runners' do
+ expect(runners).to contain_exactly(offline_runner)
+ end
+ end
+
+ describe '.never_contacted' do
+ subject(:runners) { described_class.never_contacted }
+
+ it 'returns never contacted runners' do
+ expect(runners).to contain_exactly(never_contacted_runner)
+ end
+ end
+
+ describe '.stale', :freeze_time do
+ subject { described_class.stale }
+
+ let!(:stale_runner1) do
+ create(:ci_runner, :instance, created_at: described_class.stale_deadline - 1.second, contacted_at: nil)
+ end
+
+ let!(:stale_runner2) do
+ create(:ci_runner, :instance, created_at: 4.months.ago, contacted_at: described_class.stale_deadline - 1.second)
+ end
+
+ it 'returns stale runners' do
+ is_expected.to contain_exactly(stale_runner1, stale_runner2)
+ end
+ end
+
+ include_examples 'runner with status scope'
+ end
+
+ describe '.available_statuses' do
+ subject { described_class.available_statuses }
+
+ it { is_expected.to eq(%w[active paused online offline never_contacted stale]) }
+ end
+
+ describe '.online_contact_time_deadline', :freeze_time do
+ subject { described_class.online_contact_time_deadline }
+
+ it { is_expected.to eq(2.hours.ago) }
+ end
+
+ describe '.stale_deadline', :freeze_time do
+ subject { described_class.stale_deadline }
+
+ it { is_expected.to eq(3.months.ago) }
+ end
+
+ describe '.with_runner_type' do
+ subject { described_class.with_runner_type(runner_type) }
+
+ let_it_be(:instance_runner) { create(:ci_runner, :instance) }
+ let_it_be(:group_runner) { create(:ci_runner, :group) }
+ let_it_be(:project_runner) { create(:ci_runner, :project) }
+
+ context 'with instance_type' do
+ let(:runner_type) { 'instance_type' }
+
+ it { is_expected.to contain_exactly(instance_runner) }
+ end
+
+ context 'with group_type' do
+ let(:runner_type) { 'group_type' }
+
+ it { is_expected.to contain_exactly(group_runner) }
+ end
+
+ context 'with project_type' do
+ let(:runner_type) { 'project_type' }
+
+ it { is_expected.to contain_exactly(project_runner) }
+ end
+
+ context 'with invalid runner type' do
+ let(:runner_type) { 'invalid runner type' }
+
+ it { is_expected.to contain_exactly(instance_runner, group_runner, project_runner) }
+ end
+ end
end
diff --git a/spec/models/clusters/cluster_spec.rb b/spec/models/clusters/cluster_spec.rb
index 5fc5bbd41ff..a95f56ea714 100644
--- a/spec/models/clusters/cluster_spec.rb
+++ b/spec/models/clusters/cluster_spec.rb
@@ -576,9 +576,9 @@ RSpec.describe Clusters::Cluster, :use_clean_rails_memory_store_caching,
it 'avoids N+1 queries' do
another_project = create(:project)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
described_class.ancestor_clusters_for_clusterable(another_project, hierarchy_order: hierarchy_order)
- end.count
+ end
cluster2 = create(:cluster, :provided_by_gcp, :group)
child2 = cluster2.group
@@ -587,7 +587,7 @@ RSpec.describe Clusters::Cluster, :use_clean_rails_memory_store_caching,
expect do
described_class.ancestor_clusters_for_clusterable(project, hierarchy_order: hierarchy_order)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
context 'for a group' do
diff --git a/spec/models/commit_collection_spec.rb b/spec/models/commit_collection_spec.rb
index be80aced3fd..5db417f8032 100644
--- a/spec/models/commit_collection_spec.rb
+++ b/spec/models/commit_collection_spec.rb
@@ -210,7 +210,7 @@ RSpec.describe CommitCollection, feature_category: :source_code_management do
it 'returns the original commit if the commit could not be lazy loaded' do
collection = described_class.new(project, [hash_commit])
- unexisting_lazy_commit = Commit.lazy(project, Gitlab::Git::BLANK_SHA)
+ unexisting_lazy_commit = Commit.lazy(project, Gitlab::Git::SHA1_BLANK_SHA)
expect(Commit).to receive(:lazy).with(project, hash_commit.id).and_return(unexisting_lazy_commit)
diff --git a/spec/models/commit_status_spec.rb b/spec/models/commit_status_spec.rb
index 618dd3a3f77..7c4917596a0 100644
--- a/spec/models/commit_status_spec.rb
+++ b/spec/models/commit_status_spec.rb
@@ -583,7 +583,7 @@ RSpec.describe CommitStatus, feature_category: :continuous_integration do
end
it 'returns blank sha' do
- is_expected.to eq(Gitlab::Git::BLANK_SHA)
+ is_expected.to eq(Gitlab::Git::SHA1_BLANK_SHA)
end
end
diff --git a/spec/models/concerns/commit_signature_spec.rb b/spec/models/concerns/commit_signature_spec.rb
index 4bba5a6ee41..9a4ac165ac1 100644
--- a/spec/models/concerns/commit_signature_spec.rb
+++ b/spec/models/concerns/commit_signature_spec.rb
@@ -2,15 +2,15 @@
require 'spec_helper'
-RSpec.describe CommitSignature do
+RSpec.describe CommitSignature, feature_category: :source_code_management do
+ subject(:implementation) do
+ Class.new(ActiveRecord::Base) do
+ self.table_name = 'ssh_signatures'
+ end.include(described_class).new
+ end
+
describe '#signed_by_user' do
context 'when class does not define the signed_by_user method' do
- subject(:implementation) do
- Class.new(ActiveRecord::Base) do
- self.table_name = 'ssh_signatures'
- end.include(described_class).new
- end
-
it 'raises a NoMethodError with custom message' do
expect do
implementation.signed_by_user
@@ -18,4 +18,12 @@ RSpec.describe CommitSignature do
end
end
end
+
+ describe 'enums' do
+ it 'defines enums for verification statuses' do
+ is_expected.to define_enum_for(:verification_status).with_values(
+ ::Enums::CommitSignature.verification_statuses
+ )
+ end
+ end
end
diff --git a/spec/models/concerns/database_event_tracking_spec.rb b/spec/models/concerns/database_event_tracking_spec.rb
deleted file mode 100644
index a99b4737537..00000000000
--- a/spec/models/concerns/database_event_tracking_spec.rb
+++ /dev/null
@@ -1,85 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe DatabaseEventTracking, :snowplow, feature_category: :service_ping do
- before do
- allow(Gitlab::Tracking).to receive(:database_event).and_call_original
- end
-
- let(:test_class) do
- Class.new(ActiveRecord::Base) do
- include DatabaseEventTracking
-
- self.table_name = 'application_setting_terms'
-
- self::SNOWPLOW_ATTRIBUTES = %w[id].freeze # rubocop:disable RSpec/LeakyConstantDeclaration
- end
- end
-
- subject(:create_test_class_record) { test_class.create!(id: 1, terms: "") }
-
- context 'if event emmiter failed' do
- before do
- allow(Gitlab::Tracking).to receive(:database_event).and_raise(StandardError) # rubocop:disable RSpec/ExpectGitlabTracking
- end
-
- it 'tracks the exception' do
- expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception)
-
- create_test_class_record
- end
- end
-
- describe 'event tracking' do
- let(:category) { test_class.to_s }
- let(:event) { 'database_event' }
-
- it 'when created' do
- create_test_class_record
-
- expect_snowplow_event(
- tracking_method: :database_event,
- category: category,
- action: "#{event}_create",
- label: 'application_setting_terms',
- property: 'create',
- namespace: nil,
- project: nil,
- "id" => 1
- )
- end
-
- it 'when updated' do
- create_test_class_record
- test_class.first.update!(id: 3)
-
- expect_snowplow_event(
- tracking_method: :database_event,
- category: category,
- action: "#{event}_update",
- label: 'application_setting_terms',
- property: 'update',
- namespace: nil,
- project: nil,
- "id" => 3
- )
- end
-
- it 'when destroyed' do
- create_test_class_record
- test_class.first.destroy!
-
- expect_snowplow_event(
- tracking_method: :database_event,
- category: category,
- action: "#{event}_destroy",
- label: 'application_setting_terms',
- property: 'destroy',
- namespace: nil,
- project: nil,
- "id" => 1
- )
- end
- end
-end
diff --git a/spec/models/concerns/routable_spec.rb b/spec/models/concerns/routable_spec.rb
index e71392f7bbc..a9149b0eebe 100644
--- a/spec/models/concerns/routable_spec.rb
+++ b/spec/models/concerns/routable_spec.rb
@@ -82,15 +82,15 @@ RSpec.shared_examples 'routable resource' do
end
end
- context 'on the usage of `use_includes` parameter' do
+ context 'on the usage of `preload_routes` parameter' do
let_it_be(:klass) { record.class.to_s.downcase }
let_it_be(:record_3) { create(:"#{klass}") }
let_it_be(:record_4) { create(:"#{klass}") }
- context 'when use_includes: true' do
+ context 'when preload_routes: true' do
it 'includes route information when loading records' do
- control_count = ActiveRecord::QueryRecorder.new do
- described_class.where_full_path_in([record.full_path, record_2.full_path], use_includes: true)
+ control = ActiveRecord::QueryRecorder.new do
+ described_class.where_full_path_in([record.full_path, record_2.full_path], preload_routes: true)
.map(&:route)
end
@@ -101,16 +101,16 @@ RSpec.shared_examples 'routable resource' do
record_2.full_path,
record_3.full_path,
record_4.full_path
- ], use_includes: true)
+ ], preload_routes: true)
.map(&:route)
- end.to issue_same_number_of_queries_as(control_count)
+ end.to issue_same_number_of_queries_as(control)
end
end
- context 'when use_includes: false' do
+ context 'when preload_routes: false' do
it 'does not include route information when loading records' do
control_count = ActiveRecord::QueryRecorder.new do
- described_class.where_full_path_in([record.full_path, record_2.full_path], use_includes: false)
+ described_class.where_full_path_in([record.full_path, record_2.full_path], preload_routes: false)
.map(&:route)
end
@@ -121,7 +121,7 @@ RSpec.shared_examples 'routable resource' do
record_2.full_path,
record_3.full_path,
record_4.full_path
- ], use_includes: false)
+ ], preload_routes: false)
.map(&:route)
end.not_to issue_same_number_of_queries_as(control_count)
end
@@ -130,14 +130,6 @@ RSpec.shared_examples 'routable resource' do
end
it_behaves_like '.where_full_path_in', :aggregate_failures
-
- context 'when the `optimize_where_full_path_in` feature flag is turned OFF' do
- before do
- stub_feature_flags(optimize_where_full_path_in: false)
- end
-
- it_behaves_like '.where_full_path_in', :aggregate_failures
- end
end
RSpec.shared_examples 'routable resource with parent' do
diff --git a/spec/models/container_registry/protection/rule_spec.rb b/spec/models/container_registry/protection/rule_spec.rb
index 1706fcf76ae..848b844ed64 100644
--- a/spec/models/container_registry/protection/rule_spec.rb
+++ b/spec/models/container_registry/protection/rule_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe ContainerRegistry::Protection::Rule, type: :model, feature_category: :container_registry do
+ using RSpec::Parameterized::TableSyntax
+
it_behaves_like 'having unique enum values'
describe 'relationships' do
@@ -51,4 +53,192 @@ RSpec.describe ContainerRegistry::Protection::Rule, type: :model, feature_catego
it { is_expected.to validate_presence_of(:push_protected_up_to_access_level) }
end
end
+
+ describe '.for_repository_path' do
+ let_it_be(:container_registry_protection_rule) do
+ create(:container_registry_protection_rule, repository_path_pattern: 'my-scope/my_container')
+ end
+
+ let_it_be(:protection_rule_with_wildcard_start) do
+ create(:container_registry_protection_rule, repository_path_pattern: '*my-scope/my_container-with-wildcard-start')
+ end
+
+ let_it_be(:protection_rule_with_wildcard_end) do
+ create(:container_registry_protection_rule, repository_path_pattern: 'my-scope/my_container-with-wildcard-end*')
+ end
+
+ let_it_be(:protection_rule_with_wildcard_middle) do
+ create(:container_registry_protection_rule,
+ repository_path_pattern: 'my-scope/*my_container-with-wildcard-middle')
+ end
+
+ let_it_be(:protection_rule_with_wildcard_double) do
+ create(:container_registry_protection_rule,
+ repository_path_pattern: '**my-scope/**my_container-with-wildcard-double**')
+ end
+
+ let_it_be(:protection_rule_with_underscore) do
+ create(:container_registry_protection_rule, repository_path_pattern: 'my-scope/my_container-with_____underscore')
+ end
+
+ let_it_be(:protection_rule_with_regex_chars) do
+ create(:container_registry_protection_rule, repository_path_pattern: 'my-scope/my_container-with-regex-chars.+')
+ end
+
+ let(:repository_path) { container_registry_protection_rule.repository_path_pattern }
+
+ subject { described_class.for_repository_path(repository_path) }
+
+ context 'with several container registry protection rule scenarios' do
+ where(:repository_path, :expected_container_registry_protection_rules) do
+ 'my-scope/my_container' | [ref(:container_registry_protection_rule)]
+ 'my-scope/my2container' | []
+ 'my-scope/my_container-2' | []
+
+ # With wildcard pattern at the start
+ 'my-scope/my_container-with-wildcard-start' | [ref(:protection_rule_with_wildcard_start)]
+ 'my-scope/my_container-with-wildcard-start-any' | []
+ 'prefix-my-scope/my_container-with-wildcard-start' | [ref(:protection_rule_with_wildcard_start)]
+ 'prefix-my-scope/my_container-with-wildcard-start-any' | []
+
+ # With wildcard pattern at the end
+ 'my-scope/my_container-with-wildcard-end' | [ref(:protection_rule_with_wildcard_end)]
+ 'my-scope/my_container-with-wildcard-end:1234567890' | [ref(:protection_rule_with_wildcard_end)]
+ 'prefix-my-scope/my_container-with-wildcard-end' | []
+ 'prefix-my-scope/my_container-with-wildcard-end:1234567890' | []
+
+ # With wildcard pattern in the middle
+ 'my-scope/my_container-with-wildcard-middle' | [ref(:protection_rule_with_wildcard_middle)]
+ 'my-scope/any-my_container-with-wildcard-middle' | [ref(:protection_rule_with_wildcard_middle)]
+ 'my-scope/any-my_container-my_container-wildcard-middle-any' | []
+
+ # With double wildcard pattern
+ 'my-scope/my_container-with-wildcard-double' | [ref(:protection_rule_with_wildcard_double)]
+ 'prefix-my-scope/any-my_container-with-wildcard-double-any' | [ref(:protection_rule_with_wildcard_double)]
+ '****my-scope/****my_container-with-wildcard-double****' | [ref(:protection_rule_with_wildcard_double)]
+ 'prefix-@other-scope/any-my_container-with-wildcard-double-any' | []
+
+ # With underscore
+ 'my-scope/my_container-with_____underscore' | [ref(:protection_rule_with_underscore)]
+ 'my-scope/my_container-with_any_underscore' | []
+
+ 'my-scope/my_container-with-regex-chars.+' | [ref(:protection_rule_with_regex_chars)]
+ 'my-scope/my_container-with-regex-chars.' | []
+ 'my-scope/my_container-with-regex-chars' | []
+ 'my-scope/my_container-with-regex-chars-any' | []
+
+ # Special cases
+ nil | []
+ '' | []
+ 'any_container' | []
+ end
+
+ with_them do
+ it { is_expected.to match_array(expected_container_registry_protection_rules) }
+ end
+ end
+
+ context 'with multiple matching container registry protection rules' do
+ let!(:container_registry_protection_rule_second_match) do
+ create(:container_registry_protection_rule, repository_path_pattern: "#{repository_path}*")
+ end
+
+ it {
+ is_expected.to contain_exactly(container_registry_protection_rule_second_match,
+ container_registry_protection_rule)
+ }
+ end
+ end
+
+ describe '.for_push_exists?' do
+ subject do
+ project
+ .container_registry_protection_rules
+ .for_push_exists?(
+ access_level: access_level,
+ repository_path: repository_path
+ )
+ end
+
+ context 'when the repository path matches multiple protection rules' do
+ # The abbreviation `crpr` stands for container registry protection rule
+ let_it_be(:project_with_crpr) { create(:project) }
+ let_it_be(:project_without_crpr) { create(:project) }
+
+ let_it_be(:protection_rule_for_developer) do
+ create(:container_registry_protection_rule,
+ repository_path_pattern: 'my-scope/my-container-stage*',
+ project: project_with_crpr,
+ push_protected_up_to_access_level: :developer
+ )
+ end
+
+ let_it_be(:protection_rule_for_maintainer) do
+ create(:container_registry_protection_rule,
+ repository_path_pattern: 'my-scope/my-container-prod*',
+ project: project_with_crpr,
+ push_protected_up_to_access_level: :maintainer
+ )
+ end
+
+ let_it_be(:protection_rule_for_owner) do
+ create(:container_registry_protection_rule,
+ repository_path_pattern: 'my-scope/my-container-release*',
+ project: project_with_crpr,
+ push_protected_up_to_access_level: :owner
+ )
+ end
+
+ let_it_be(:protection_rule_overlapping_for_developer) do
+ create(:container_registry_protection_rule,
+ repository_path_pattern: 'my-scope/my-container-*',
+ project: project_with_crpr,
+ push_protected_up_to_access_level: :developer
+ )
+ end
+
+ where(:project, :access_level, :repository_path, :for_push_exists) do
+ ref(:project_with_crpr) | Gitlab::Access::REPORTER | 'my-scope/my-container-stage-sha-1234' | true
+ ref(:project_with_crpr) | Gitlab::Access::DEVELOPER | 'my-scope/my-container-stage-sha-1234' | true
+ ref(:project_with_crpr) | Gitlab::Access::MAINTAINER | 'my-scope/my-container-stage-sha-1234' | false
+ ref(:project_with_crpr) | Gitlab::Access::MAINTAINER | 'my-scope/my-container-stage-sha-1234' | false
+ ref(:project_with_crpr) | Gitlab::Access::OWNER | 'my-scope/my-container-stage-sha-1234' | false
+ ref(:project_with_crpr) | Gitlab::Access::ADMIN | 'my-scope/my-container-stage-sha-1234' | false
+
+ ref(:project_with_crpr) | Gitlab::Access::DEVELOPER | 'my-scope/my-container-prod-sha-1234' | true
+ ref(:project_with_crpr) | Gitlab::Access::MAINTAINER | 'my-scope/my-container-prod-sha-1234' | true
+ ref(:project_with_crpr) | Gitlab::Access::OWNER | 'my-scope/my-container-prod-sha-1234' | false
+ ref(:project_with_crpr) | Gitlab::Access::ADMIN | 'my-scope/my-container-prod-sha-1234' | false
+
+ ref(:project_with_crpr) | Gitlab::Access::DEVELOPER | 'my-scope/my-container-release-v1' | true
+ ref(:project_with_crpr) | Gitlab::Access::OWNER | 'my-scope/my-container-release-v1' | true
+ ref(:project_with_crpr) | Gitlab::Access::ADMIN | 'my-scope/my-container-release-v1' | false
+
+ ref(:project_with_crpr) | Gitlab::Access::DEVELOPER | 'my-scope/my-container-any-suffix' | true
+ ref(:project_with_crpr) | Gitlab::Access::MAINTAINER | 'my-scope/my-container-any-suffix' | false
+ ref(:project_with_crpr) | Gitlab::Access::OWNER | 'my-scope/my-container-any-suffix' | false
+
+ # For non-matching repository_path
+ ref(:project_with_crpr) | Gitlab::Access::DEVELOPER | 'my-scope/non-matching-container' | false
+
+ # For no access level
+ ref(:project_with_crpr) | Gitlab::Access::NO_ACCESS | 'my-scope/my-container-prod-sha-1234' | true
+
+ # Edge cases
+ ref(:project_with_crpr) | 0 | '' | false
+ ref(:project_with_crpr) | nil | nil | false
+ ref(:project_with_crpr) | Gitlab::Access::DEVELOPER | nil | false
+ ref(:project_with_crpr) | nil | 'my-scope/non-matching-container' | false
+
+ # For projects that have no container registry protection rules
+ ref(:project_without_crpr) | Gitlab::Access::DEVELOPER | 'my-scope/my-container-prod-sha-1234' | false
+ ref(:project_without_crpr) | Gitlab::Access::MAINTAINER | 'my-scope/my-container-prod-sha-1234' | false
+ ref(:project_without_crpr) | Gitlab::Access::OWNER | 'my-scope/my-container-prod-sha-1234' | false
+ end
+
+ with_them do
+ it { is_expected.to eq for_push_exists }
+ end
+ end
+ end
end
diff --git a/spec/models/container_repository_spec.rb b/spec/models/container_repository_spec.rb
index fb32c796016..084e2dd7bd5 100644
--- a/spec/models/container_repository_spec.rb
+++ b/spec/models/container_repository_spec.rb
@@ -693,12 +693,16 @@ RSpec.describe ContainerRepository, :aggregate_failures, feature_category: :cont
it 'calls GitlabApiClient#tags and passes parameters' do
allow(repository.gitlab_api_client).to receive(:tags).and_return({})
expect(repository.gitlab_api_client).to receive(:tags).with(
- repository.path, page_size: page_size, before: before, last: last, sort: sort, name: name)
+ repository.path, page_size: page_size, before: before, last: last, sort: sort, name: name, referrers: nil)
subject
end
context 'with a call to tags' do
+ let_it_be(:created_at) { 15.minutes.ago }
+ let_it_be(:updated_at) { 10.minutes.ago }
+ let_it_be(:published_at) { 5.minutes.ago }
+
let_it_be(:tags_response) do
[
{
@@ -707,8 +711,15 @@ RSpec.describe ContainerRepository, :aggregate_failures, feature_category: :cont
config_digest: 'sha256:66b1132a0173910b01ee69583bbf2f7f1e4462c99efbe1b9ab5bf',
media_type: 'application/vnd.oci.image.manifest.v1+json',
size_bytes: 1234567890,
- created_at: 5.minutes.ago,
- updated_at: 5.minutes.ago
+ created_at: created_at,
+ updated_at: updated_at,
+ published_at: published_at,
+ referrers: [
+ {
+ artifactType: 'application/vnd.example+type',
+ digest: 'sha256:57d3be92c2f857566ecc7f9306a80021c0a7fa631e0ef5146957235aea859961'
+ }
+ ]
},
{
name: 'latest',
@@ -716,8 +727,9 @@ RSpec.describe ContainerRepository, :aggregate_failures, feature_category: :cont
config_digest: nil,
media_type: 'application/vnd.oci.image.manifest.v1+json',
size_bytes: 1234567892,
- created_at: 10.minutes.ago,
- updated_at: 10.minutes.ago
+ created_at: created_at,
+ updated_at: updated_at,
+ published_at: published_at
}
]
end
@@ -753,8 +765,17 @@ RSpec.describe ContainerRepository, :aggregate_failures, feature_category: :cont
revision: expected_revision,
short_revision: expected_revision[0..8],
created_at: DateTime.rfc3339(tags_response[index][:created_at].rfc3339),
- updated_at: DateTime.rfc3339(tags_response[index][:updated_at].rfc3339)
+ updated_at: DateTime.rfc3339(tags_response[index][:updated_at].rfc3339),
+ published_at: DateTime.rfc3339(tags_response[index][:published_at].rfc3339)
)
+
+ Array(tag.referrers).each_with_index do |ref, ref_index|
+ expect(ref.is_a?(ContainerRegistry::Referrer)).to eq(true)
+ expect(ref).to have_attributes(
+ artifact_type: tags_response[index][:referrers][ref_index][:artifactType],
+ digest: tags_response[index][:referrers][ref_index][:digest]
+ )
+ end
end
end
end
@@ -1148,9 +1169,9 @@ RSpec.describe ContainerRepository, :aggregate_failures, feature_category: :cont
end
end
- describe '.find_or_create_from_path' do
+ describe '.find_or_create_from_path!' do
let(:repository) do
- described_class.find_or_create_from_path(ContainerRegistry::Path.new(path))
+ described_class.find_or_create_from_path!(ContainerRegistry::Path.new(path))
end
let(:repository_path) { ContainerRegistry::Path.new(path) }
@@ -1239,7 +1260,7 @@ RSpec.describe ContainerRepository, :aggregate_failures, feature_category: :cont
Thread.new do
true while wait_for_it
- described_class.find_or_create_from_path(path)
+ described_class.find_or_create_from_path!(path)
end
end
wait_for_it = false
diff --git a/spec/models/deployment_spec.rb b/spec/models/deployment_spec.rb
index cb2c38c15e0..d260e75871d 100644
--- a/spec/models/deployment_spec.rb
+++ b/spec/models/deployment_spec.rb
@@ -56,6 +56,8 @@ RSpec.describe Deployment, feature_category: :continuous_delivery do
let(:scope_attrs) { { project: project } }
let(:usage) { :deployments }
end
+
+ it { is_expected.to include_module(EachBatch) }
end
describe '.stoppable' do
@@ -878,7 +880,7 @@ RSpec.describe Deployment, feature_category: :continuous_delivery do
context 'when the SHA for the deployment does not exist in the repo' do
it 'returns false' do
- deployment.update!(sha: Gitlab::Git::BLANK_SHA)
+ deployment.update!(sha: Gitlab::Git::SHA1_BLANK_SHA)
commit = project.commit
expect(deployment.includes_commit?(commit.id)).to be false
@@ -1537,6 +1539,18 @@ RSpec.describe Deployment, feature_category: :continuous_delivery do
expect(project.commit(deployment.ref_path)).not_to be_nil
end
end
+
+ it 'does not trigger N+1 queries' do
+ project = create(:project, :repository)
+ environment = create(:environment, project: project)
+ create(:deployment, environment: environment, project: project)
+
+ control = ActiveRecord::QueryRecorder.new { project.deployments.fast_destroy_all }
+
+ create_list(:deployment, 2, environment: environment, project: project)
+
+ expect { project.deployments.fast_destroy_all }.not_to exceed_query_limit(control)
+ end
end
describe '#update_merge_request_metrics!' do
diff --git a/spec/models/design_management/design_spec.rb b/spec/models/design_management/design_spec.rb
index 98e5399f737..882aaffa818 100644
--- a/spec/models/design_management/design_spec.rb
+++ b/spec/models/design_management/design_spec.rb
@@ -447,7 +447,7 @@ RSpec.describe DesignManagement::Design, feature_category: :design_management do
let(:versions_count) { 1 }
it 'builds diff refs based on the empty tree if there was only one version' do
- expect(design.diff_refs.base_sha).to eq(Gitlab::Git::BLANK_SHA)
+ expect(design.diff_refs.base_sha).to eq(Gitlab::Git::SHA1_BLANK_SHA)
expect(design.diff_refs.head_sha).to eq(design.diff_refs.head_sha)
end
end
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index 1fafa64a535..26a9a364ea6 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -1603,6 +1603,27 @@ RSpec.describe Group, feature_category: :groups_and_projects do
end
end
+ describe '#owned_by?' do
+ let!(:invited_group_member) { create(:group_member, :owner, :invited, group: group) }
+
+ before do
+ @members = setup_group_members(group)
+ end
+
+ it 'returns true for owner' do
+ expect(group.owned_by?(@members[:owner])).to eq(true)
+ end
+
+ it 'returns false for developer' do
+ expect(group.owned_by?(@members[:developer])).to eq(false)
+ end
+
+ it 'returns false when nil is passed' do
+ expect(invited_group_member.user).to eq(nil)
+ expect(group.owned_by?(invited_group_member.user)).to eq(false)
+ end
+ end
+
def setup_group_members(group)
members = {
owner: create(:user),
@@ -1642,6 +1663,54 @@ RSpec.describe Group, feature_category: :groups_and_projects do
it { expect(subject.parent).to be_kind_of(described_class) }
end
+ describe '#has_user?' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:subgroup) { create(:group, parent: group) }
+ let_it_be(:user) { create(:user) }
+ let_it_be(:user2) { create(:user) }
+ let_it_be(:invited_group_member) { create(:group_member, :owner, :invited, group: group) }
+
+ subject { group.has_user?(user) }
+
+ context 'when the user is a member' do
+ before_all do
+ group.add_developer(user)
+ end
+
+ it { is_expected.to be_truthy }
+ it { expect(group.has_user?(user2)).to be_falsey }
+
+ it 'returns false for subgroup' do
+ expect(subgroup.has_user?(user)).to be_falsey
+ end
+ end
+
+ context 'when the user is a member with minimal access' do
+ before_all do
+ group.add_member(user, GroupMember::MINIMAL_ACCESS)
+ end
+
+ it { is_expected.to be_falsey }
+ end
+
+ context 'when the user has requested membership' do
+ before_all do
+ create(:group_member, :developer, :access_request, user: user, source: group)
+ end
+
+ it 'returns false' do
+ expect(subject).to be_falsey
+ end
+ end
+
+ context 'when the user is an invited member' do
+ it 'returns false when nil is passed' do
+ expect(invited_group_member.user).to eq(nil)
+ expect(group.has_user?(invited_group_member.user)).to be_falsey
+ end
+ end
+ end
+
describe '#member?' do
let_it_be(:group) { create(:group) }
let_it_be(:user) { create(:user) }
@@ -2442,9 +2511,15 @@ RSpec.describe Group, feature_category: :groups_and_projects do
subject(:highest_group_member) { nested_group_2.highest_group_member(user) }
context 'when the user is not a member of any group in the hierarchy' do
- it 'returns nil' do
- expect(highest_group_member).to be_nil
+ it { is_expected.to be_nil }
+ end
+
+ context 'when access request to group is pending' do
+ before do
+ create(:group_member, requested_at: Time.current.utc, source: nested_group, user: user)
end
+
+ it { is_expected.to be_nil }
end
context 'when the user is only a member of one group in the hierarchy' do
@@ -3168,6 +3243,48 @@ RSpec.describe Group, feature_category: :groups_and_projects do
end
end
+ describe '.descendant_groups_counts' do
+ let_it_be(:parent) { create(:group) }
+ let_it_be(:group) { create(:group, parent: parent) }
+ let_it_be(:project) { create(:project, namespace: parent) }
+
+ subject(:descendant_groups_counts) { described_class.id_in(parent).descendant_groups_counts }
+
+ it 'return a hash of group id and descendant groups count without projects' do
+ expect(descendant_groups_counts).to eq({ parent.id => 1 })
+ end
+ end
+
+ describe '.projects_counts' do
+ let_it_be(:parent) { create(:group) }
+ let_it_be(:group) { create(:group, parent: parent) }
+ let_it_be(:project) { create(:project, namespace: parent) }
+ let_it_be(:archived_project) { create(:project, :archived, namespace: parent) }
+
+ subject(:projects_counts) { described_class.id_in(parent).projects_counts }
+
+ it 'return a hash of group id and projects count without counting archived projects' do
+ expect(projects_counts).to eq({ parent.id => 1 })
+ end
+ end
+
+ describe '.group_members_counts' do
+ let_it_be(:parent) { create(:group) }
+ let_it_be(:group) { create(:group, parent: parent) }
+
+ before_all do
+ create(:group_member, group: parent)
+ create(:group_member, group: parent, requested_at: Time.current)
+ create(:group_member, group: group)
+ end
+
+ subject(:group_members_counts) { described_class.id_in(parent).group_members_counts }
+
+ it 'return a hash of group id and approved direct group members' do
+ expect(group_members_counts).to eq({ parent.id => 1 })
+ end
+ end
+
describe '#shared_with_group_links_visible_to_user' do
let_it_be(:admin) { create :admin }
let_it_be(:normal_user) { create :user }
diff --git a/spec/models/integrations/chat_message/push_message_spec.rb b/spec/models/integrations/chat_message/push_message_spec.rb
index a9d0f801406..ba619f655ec 100644
--- a/spec/models/integrations/chat_message/push_message_spec.rb
+++ b/spec/models/integrations/chat_message/push_message_spec.rb
@@ -72,7 +72,7 @@ RSpec.describe Integrations::ChatMessage::PushMessage do
let(:args) do
{
after: 'after',
- before: Gitlab::Git::BLANK_SHA,
+ before: Gitlab::Git::SHA1_BLANK_SHA,
project_name: 'project_name',
ref: 'refs/tags/new_tag',
user_name: 'test.user',
@@ -112,7 +112,7 @@ RSpec.describe Integrations::ChatMessage::PushMessage do
context 'removed tag' do
let(:args) do
{
- after: Gitlab::Git::BLANK_SHA,
+ after: Gitlab::Git::SHA1_BLANK_SHA,
before: 'before',
project_name: 'project_name',
ref: 'refs/tags/new_tag',
@@ -152,7 +152,7 @@ RSpec.describe Integrations::ChatMessage::PushMessage do
context 'new branch' do
before do
- args[:before] = Gitlab::Git::BLANK_SHA
+ args[:before] = Gitlab::Git::SHA1_BLANK_SHA
end
context 'without markdown' do
@@ -185,7 +185,7 @@ RSpec.describe Integrations::ChatMessage::PushMessage do
context 'removed branch' do
before do
- args[:after] = Gitlab::Git::BLANK_SHA
+ args[:after] = Gitlab::Git::SHA1_BLANK_SHA
end
context 'without markdown' do
diff --git a/spec/models/integrations/diffblue_cover_spec.rb b/spec/models/integrations/diffblue_cover_spec.rb
new file mode 100644
index 00000000000..c1a98cc2fbd
--- /dev/null
+++ b/spec/models/integrations/diffblue_cover_spec.rb
@@ -0,0 +1,74 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Integrations::DiffblueCover, feature_category: :integrations do
+ let_it_be(:project) { build(:project) }
+
+ subject(:integration) { build(:diffblue_cover_integration, project: project) }
+
+ describe 'Validations' do
+ context 'when active' do
+ before do
+ integration.active = true
+ end
+
+ it { is_expected.to validate_presence_of(:diffblue_license_key) }
+ it { is_expected.to validate_presence_of(:diffblue_access_token_name) }
+ it { is_expected.to validate_presence_of(:diffblue_access_token_secret) }
+ end
+
+ context 'when inactive' do
+ before do
+ integration.active = false
+ end
+
+ it { is_expected.not_to validate_presence_of(:diffblue_license_key) }
+ it { is_expected.not_to validate_presence_of(:diffblue_access_token_name) }
+ it { is_expected.not_to validate_presence_of(:diffblue_access_token_secret) }
+ end
+ end
+
+ describe '#avatar_url' do
+ it 'returns the avatar image path' do
+ expect(integration.avatar_url).to eq(ActionController::Base.helpers.image_path(
+ 'illustrations/third-party-logos/integrations-logos/diffblue.svg'
+ ))
+ end
+ end
+
+ describe '#ci-vars' do
+ let(:ci_vars) do
+ [
+ { key: 'DIFFBLUE_LICENSE_KEY', value: '1234-ABCD-DCBA-4321', public: false, masked: true },
+ { key: 'DIFFBLUE_ACCESS_TOKEN_NAME', value: 'Diffblue CI', public: false, masked: true },
+ { key: 'DIFFBLUE_ACCESS_TOKEN',
+ value: 'glpat-00112233445566778899', public: false, masked: true } # gitleaks:allow
+ ]
+ end
+
+ context 'when active' do
+ before do
+ integration.active = true
+ end
+
+ it 'returns the required pipeline vars' do
+ expect(integration.ci_variables).to match_array(ci_vars)
+ end
+ end
+
+ context 'when inactive' do
+ before do
+ integration.active = false
+ end
+
+ it 'does not return the required pipeline vars' do
+ expect(integration.ci_variables).to be_empty
+ end
+ end
+ end
+
+ describe '#diffblue_link' do
+ it { expect(described_class.diffblue_link).to include("https://www.diffblue.com/try-cover/gitlab/") }
+ end
+end
diff --git a/spec/models/integrations/teamcity_spec.rb b/spec/models/integrations/teamcity_spec.rb
index 1537b10ba03..2294e687296 100644
--- a/spec/models/integrations/teamcity_spec.rb
+++ b/spec/models/integrations/teamcity_spec.rb
@@ -246,7 +246,7 @@ RSpec.describe Integrations::Teamcity, :use_clean_rails_memory_store_caching do
end
it 'returns nil when ref is blank' do
- data[:after] = Gitlab::Git::BLANK_SHA
+ data[:after] = Gitlab::Git::SHA1_BLANK_SHA
expect(integration.execute(data)).to be_nil
end
diff --git a/spec/models/issue_email_participant_spec.rb b/spec/models/issue_email_participant_spec.rb
index 8ddc9a5f478..760af974275 100644
--- a/spec/models/issue_email_participant_spec.rb
+++ b/spec/models/issue_email_participant_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe IssueEmailParticipant do
+RSpec.describe IssueEmailParticipant, feature_category: :service_desk do
describe "Associations" do
it { is_expected.to belong_to(:issue) }
end
@@ -27,4 +27,18 @@ RSpec.describe IssueEmailParticipant do
expect(subject).to be_invalid
end
end
+
+ describe 'Scopes' do
+ describe '.with_emails' do
+ let!(:participant) { create(:issue_email_participant, email: 'user@example.com') }
+ let!(:participant1) { create(:issue_email_participant, email: 'user1@example.com') }
+ let!(:participant2) { create(:issue_email_participant, email: 'user2@example.com') }
+
+ it 'returns only participant with matching emails' do
+ expect(described_class.with_emails([participant.email, participant1.email])).to match_array(
+ [participant, participant1]
+ )
+ end
+ end
+ end
end
diff --git a/spec/models/label_spec.rb b/spec/models/label_spec.rb
index 4862b0b0453..2c73178ee63 100644
--- a/spec/models/label_spec.rb
+++ b/spec/models/label_spec.rb
@@ -208,20 +208,6 @@ RSpec.describe Label, feature_category: :team_planning do
end
describe 'scopes' do
- describe '.on_board' do
- let(:board) { create(:board, project: project) }
- let!(:list1) { create(:list, board: board, label: development) }
- let!(:list2) { create(:list, board: board, label: testing) }
-
- let!(:development) { create(:label, project: project, name: 'Development') }
- let!(:testing) { create(:label, project: project, name: 'Testing') }
- let!(:regression) { create(:label, project: project, name: 'Regression') }
-
- it 'returns only the board labels' do
- expect(described_class.on_board(board.id)).to match_array([development, testing])
- end
- end
-
describe '.with_lock_on_merge' do
let(:label) { create(:label, project: project, name: 'Label') }
let(:label_locked) { create(:label, project: project, name: 'Label locked', lock_on_merge: true) }
diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb
index db2ae319bc9..bd74af9b7e8 100644
--- a/spec/models/member_spec.rb
+++ b/spec/models/member_spec.rb
@@ -735,6 +735,30 @@ RSpec.describe Member, feature_category: :groups_and_projects do
it { is_expected.to respond_to(:user_email) }
end
+ describe 'callbacks' do
+ describe '#send_invite' do
+ context 'with an invited group member' do
+ it 'sends an invite email' do
+ expect_next_instance_of(NotificationService) do |instance|
+ expect(instance).to receive(:invite_member)
+ end
+
+ create(:group_member, :invited)
+ end
+ end
+
+ context 'with an uninvited member' do
+ it 'does not send an invite email' do
+ expect_next_instance_of(NotificationService) do |instance|
+ expect(instance).not_to receive(:invite_member)
+ end
+
+ create(:group_member)
+ end
+ end
+ end
+ end
+
describe '.valid_email?' do
it 'is a valid email format' do
expect(described_class.valid_email?('foo')).to eq(false)
@@ -898,6 +922,40 @@ RSpec.describe Member, feature_category: :groups_and_projects do
expect(member.invite_token).not_to be_nil
expect_any_instance_of(described_class).not_to receive(:after_accept_invite)
end
+
+ context 'when after accepting invite' do
+ include NotificationHelpers
+
+ let_it_be(:group) { create(:group, require_two_factor_authentication: true) }
+ let_it_be(:member, reload: true) { create(:group_member, :invited, source: group) }
+ let_it_be(:email) { member.invite_email }
+ let(:user) { build(:user, email: email) }
+
+ it 'enqueues an email to user' do
+ member.accept_invite!(user)
+
+ expect_enqueud_email(member.real_source_type, member.id, mail: 'member_invite_accepted_email')
+ end
+
+ it 'calls updates the two factor requirement' do
+ expect(user).to receive(:require_two_factor_authentication_from_group).and_call_original
+
+ member.accept_invite!(user)
+
+ expect(user.require_two_factor_authentication_from_group).to be_truthy
+ end
+
+ context 'when member source is a project' do
+ let_it_be(:project) { create(:project, namespace: group) }
+ let_it_be(:member) { create(:project_member, :invited, source: project, invite_email: email) }
+
+ it 'calls updates the two factor requirement' do
+ expect(user).not_to receive(:require_two_factor_authentication_from_group)
+
+ member.accept_invite!(user)
+ end
+ end
+ end
end
describe '#decline_invite!' do
@@ -1026,6 +1084,110 @@ RSpec.describe Member, feature_category: :groups_and_projects do
end
end
+ context 'for updating organization_users' do
+ let_it_be(:group) { create(:group, :with_organization) }
+ let(:member) { create(:group_member, source: group) }
+ let(:update_organization_users_enabled) { true }
+
+ before do
+ stub_feature_flags(update_organization_users: update_organization_users_enabled)
+ end
+
+ context 'when update_organization_users is enabled' do
+ it 'inserts new record on member creation' do
+ expect { member }.to change { Organizations::OrganizationUser.count }.by(1)
+ record_attrs = { organization: group.organization, user: member.user, access_level: :default }
+ expect(Organizations::OrganizationUser.exists?(record_attrs)).to be(true)
+ end
+
+ context 'when user already exists in the organization_users' do
+ context 'for an already existing default organization_user' do
+ let_it_be(:project) { create(:project, group: group, organization: group.organization) }
+
+ before do
+ member
+ end
+
+ it 'does not insert a new record in organization_users' do
+ expect do
+ create(:project_member, :owner, source: project, user: member.user)
+ end.not_to change { Organizations::OrganizationUser.count }
+
+ expect(
+ Organizations::OrganizationUser.exists?(
+ organization: project.organization, user: member.user, access_level: :default
+ )
+ ).to be(true)
+ end
+
+ it 'does not update timestamps' do
+ travel_to(1.day.from_now) do
+ expect do
+ create(:project_member, :owner, source: project, user: member.user)
+ end.not_to change { Organizations::OrganizationUser.last.updated_at }
+ end
+ end
+ end
+
+ context 'for an already existing owner organization_user' do
+ let_it_be(:user) { create(:user) }
+ let_it_be(:common_attrs) { { organization: group.organization, user: user } }
+
+ before_all do
+ create(:organization_user, :owner, common_attrs)
+ end
+
+ it 'does not insert a new record in organization_users nor update the access_level' do
+ expect do
+ create(:group_member, :owner, source: group, user: user)
+ end.not_to change { Organizations::OrganizationUser.count }
+
+ expect(
+ Organizations::OrganizationUser.exists?(common_attrs.merge(access_level: :default))
+ ).to be(false)
+ expect(
+ Organizations::OrganizationUser.exists?(common_attrs.merge(access_level: :owner))
+ ).to be(true)
+ end
+ end
+ end
+
+ context 'when updating the organization_users is not successful' do
+ it 'rolls back the member creation' do
+ allow(Organizations::OrganizationUser).to receive(:upsert).once.and_raise(ActiveRecord::StatementTimeout)
+
+ expect { member }.to raise_error(ActiveRecord::StatementTimeout)
+ expect(Organizations::OrganizationUser.exists?(organization: group.organization)).to be(false)
+ expect(group.group_members).to be_empty
+ end
+ end
+ end
+
+ shared_examples_for 'does not create an organization_user entry' do
+ specify do
+ expect { member }.not_to change { Organizations::OrganizationUser.count }
+ end
+ end
+
+ context 'when update_organization_users is disabled' do
+ let(:update_organization_users_enabled) { false }
+
+ it_behaves_like 'does not create an organization_user entry'
+ end
+
+ context 'when member is an invite' do
+ let(:member) { create(:group_member, :invited, source: group) }
+
+ it_behaves_like 'does not create an organization_user entry'
+ end
+
+ context 'when organization does not exist' do
+ let(:member) { create(:group_member) }
+
+ it_behaves_like 'does not create an organization_user entry'
+ end
+ end
+
context 'when after_commit :update_highest_role' do
let_it_be(:user) { create(:user) }
@@ -1071,6 +1233,132 @@ RSpec.describe Member, feature_category: :groups_and_projects do
end
end
+ context 'when after_update :post_update_hook' do
+ let_it_be(:member) { create(:group_member, :developer) }
+
+ context 'when access_level is changed' do
+ it 'calls NotificationService.update_member' do
+ expect(NotificationService).to receive_message_chain(:new, :updated_member_access_level).with(member)
+
+ member.update_attribute(:access_level, Member::MAINTAINER)
+ end
+
+ it 'does not send an email when the access level has not changed' do
+ expect(NotificationService).not_to receive(:new)
+
+ member.touch
+ end
+ end
+
+ context 'when expiration is changed' do
+ it 'calls the notification service when membership expiry has changed' do
+ expect(NotificationService).to receive_message_chain(:new, :updated_member_expiration).with(member)
+
+ member.update!(expires_at: 5.days.from_now)
+ end
+ end
+ end
+
+ context 'when after_create :post_create_hook' do
+ include NotificationHelpers
+
+ let_it_be(:source) { create(:group) }
+ let(:member) { create(:group_member, source: source) }
+
+ subject(:create_member) { member }
+
+ shared_examples_for 'invokes a notification' do
+ it 'enqueues an email to user' do
+ create_member
+
+ expect_delivery_jobs_count(1)
+ expect_enqueud_email(member.real_source_type, member.id, mail: 'member_access_granted_email')
+ end
+ end
+
+ shared_examples_for 'performs all the common hooks' do
+ it_behaves_like 'invokes a notification'
+
+ it 'creates an event' do
+ expect { create_member }.to change { Event.count }.by(1)
+ end
+ end
+
+ it 'calls the system hook service' do
+ expect_next_instance_of(SystemHooksService) do |instance|
+ expect(instance).to receive(:execute_hooks_for).with(an_instance_of(GroupMember), :create)
+ end
+
+ create_member
+ end
+
+ context 'when source is a group' do
+ it_behaves_like 'invokes a notification'
+
+ it 'does not create an event' do
+ expect { create_member }.not_to change { Event.count }
+ end
+ end
+
+ context 'when source is a project' do
+ context 'when source is a personal project' do
+ let_it_be(:namespace) { create(:namespace) }
+
+ context 'when member is the owner of the namespace' do
+ subject(:create_member) { create(:project, namespace: namespace) }
+
+ it 'does not enqueue an email' do
+ create_member
+
+ expect_delivery_jobs_count(0)
+ end
+
+ it 'does not create an event' do
+ expect { create_member }.not_to change { Event.count }
+ end
+ end
+
+ context 'when member is not the namespace owner' do
+ let_it_be(:project) { create(:project, namespace: namespace) }
+ let(:member) { create(:project_member, source: project) }
+
+ subject(:create_member) { member }
+
+ it_behaves_like 'performs all the common hooks'
+ end
+ end
+
+ context 'when source is not a personal project' do
+ let_it_be(:project) { create(:project, namespace: create(:group)) }
+ let(:member) { create(:project_member, source: project) }
+
+ subject(:create_member) { member }
+
+ it_behaves_like 'performs all the common hooks'
+ end
+ end
+ end
+
+ context 'when after_create :update_two_factor_requirement' do
+ it 'calls update_two_factor_requirement after creation' do
+ user = create(:user)
+
+ expect(user).to receive(:update_two_factor_requirement)
+
+ create(:group_member, user: user)
+ end
+ end
+
+ context 'when after_destroy :update_two_factor_requirement' do
+ it 'calls update_two_factor_requirement after deletion' do
+ group_member = create(:group_member)
+
+ expect(group_member.user).to receive(:update_two_factor_requirement)
+
+ group_member.destroy!
+ end
+ end
+
describe 'log_invitation_token_cleanup' do
let_it_be(:project) { create :project }
diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb
index 7307e76272d..3b23f3661f8 100644
--- a/spec/models/members/group_member_spec.rb
+++ b/spec/models/members/group_member_spec.rb
@@ -33,10 +33,6 @@ RSpec.describe GroupMember, feature_category: :cell do
end
end
- describe 'delegations' do
- it { is_expected.to delegate_method(:update_two_factor_requirement).to(:user).allow_nil }
- end
-
describe '.access_level_roles' do
it 'returns Gitlab::Access.options_with_owner' do
expect(described_class.access_level_roles).to eq(Gitlab::Access.options_with_owner)
@@ -67,22 +63,6 @@ RSpec.describe GroupMember, feature_category: :cell do
it { is_expected.to eq 'Group' }
end
- describe '#update_two_factor_requirement' do
- it 'is called after creation and deletion' do
- user = create :user
- group = create :group
- group_member = build :group_member, user: user, group: group
-
- expect(user).to receive(:update_two_factor_requirement)
-
- group_member.save!
-
- expect(user).to receive(:update_two_factor_requirement)
-
- group_member.destroy!
- end
- end
-
describe '#destroy' do
context 'for an orphaned member' do
let!(:orphaned_group_member) do
@@ -95,21 +75,6 @@ RSpec.describe GroupMember, feature_category: :cell do
end
end
- describe '#after_accept_invite' do
- it 'calls #update_two_factor_requirement' do
- email = 'foo@email.com'
- user = build(:user, email: email)
- group = create(:group, require_two_factor_authentication: true)
- group_member = create(:group_member, group: group, invite_token: '1234', invite_email: email)
-
- expect(user).to receive(:require_two_factor_authentication_from_group).and_call_original
-
- group_member.accept_invite!(user)
-
- expect(user.require_two_factor_authentication_from_group).to be_truthy
- end
- end
-
describe '#last_owner_of_the_group?' do
let_it_be(:parent_group) { create(:group) }
let_it_be(:group) { create(:group, parent: parent_group) }
@@ -202,18 +167,6 @@ RSpec.describe GroupMember, feature_category: :cell do
end
end
- context 'when group member expiration date is updated' do
- let_it_be(:group_member) { create(:group_member) }
-
- it 'emails the user that their group membership expiry has changed' do
- expect_next_instance_of(NotificationService) do |notification|
- allow(notification).to receive(:updated_group_member_expiration).with(group_member)
- end
-
- group_member.update!(expires_at: 5.days.from_now)
- end
- end
-
describe 'refresh_member_authorized_projects' do
context 'when importing' do
it 'does not refresh' do
@@ -288,18 +241,4 @@ RSpec.describe GroupMember, feature_category: :cell do
it_behaves_like 'calls AuthorizedProjectsWorker inline to recalculate authorizations'
end
end
-
- context 'group member welcome email', :sidekiq_inline, :saas do
- let_it_be(:group) { create(:group) }
-
- let(:user) { create(:user) }
-
- it 'schedules plain welcome to the group email' do
- expect_next_instance_of(NotificationService) do |notification|
- expect(notification).to receive(:new_group_member)
- end
-
- group.add_developer(user)
- end
- end
end
diff --git a/spec/models/merge_request/metrics_spec.rb b/spec/models/merge_request/metrics_spec.rb
index e9e4956dc41..8d1d503b323 100644
--- a/spec/models/merge_request/metrics_spec.rb
+++ b/spec/models/merge_request/metrics_spec.rb
@@ -93,12 +93,4 @@ RSpec.describe MergeRequest::Metrics do
end
end
end
-
- it_behaves_like 'database events tracking', feature_category: :service_ping do
- let(:merge_request) { create(:merge_request) }
-
- let(:record) { merge_request.metrics }
- let(:namespace) { nil }
- let(:update_params) { { pipeline_id: 1, updated_at: Date.tomorrow } }
- end
end
diff --git a/spec/models/merge_request_diff_spec.rb b/spec/models/merge_request_diff_spec.rb
index 2e68cd9e74a..e31a4399646 100644
--- a/spec/models/merge_request_diff_spec.rb
+++ b/spec/models/merge_request_diff_spec.rb
@@ -53,6 +53,28 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
it { expect(subject.start_commit_sha).to eq('0b4bc9a49b562e85de7cc9e834518ea6828729b9') }
it { expect(subject.patch_id_sha).to eq('1e05e04d4c2a6414d9d4ab38208511a3bbe715f2') }
+ it 'calls GraphqlTriggers.merge_request_diff_generated' do
+ merge_request = create(:merge_request, :skip_diff_creation)
+
+ expect(GraphqlTriggers).to receive(:merge_request_diff_generated).with(merge_request)
+
+ merge_request.create_merge_request_diff
+ end
+
+ context 'when merge_request_diff_generated_subscription flag is disabled' do
+ before do
+ stub_feature_flags(merge_request_diff_generated_subscription: false)
+ end
+
+ it 'does not call GraphqlTriggers.merge_request_diff_generated' do
+ merge_request = create(:merge_request, :skip_diff_creation)
+
+ expect(GraphqlTriggers).not_to receive(:merge_request_diff_generated)
+
+ merge_request.create_merge_request_diff
+ end
+ end
+
context 'when diff_type is merge_head' do
let_it_be(:merge_request) { create(:merge_request) }
@@ -488,6 +510,28 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
end
+ shared_examples_for 'perform generated files check' do
+ context 'when collapse_generated option is given' do
+ let(:diff_options) do
+ super().merge(collapse_generated: true)
+ end
+
+ it 'checks generated files' do
+ diffs = diff_with_commits.diffs_in_batch(1, 10, diff_options: diff_options)
+
+ expect(diffs.diff_files.first.generated?).to be false
+ end
+ end
+
+ context 'when collapse_generated option is not given' do
+ it 'does not check generated files' do
+ diffs = diff_with_commits.diffs_in_batch(1, 10, diff_options: diff_options)
+
+ expect(diffs.diff_files.first.generated?).to be nil
+ end
+ end
+ end
+
context 'when no persisted files available' do
before do
diff_with_commits.clean!
@@ -501,6 +545,7 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
it_behaves_like 'fetching full diffs'
+ it_behaves_like 'perform generated files check'
end
end
@@ -540,6 +585,8 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
{ ignore_whitespace_change: true }
end
+ it_behaves_like 'perform generated files check'
+
it 'returns pagination data from MergeRequestDiffBatch' do
diffs = diff_with_commits.diffs_in_batch(1, 10, diff_options: diff_options)
file_count = diff_with_commits.merge_request_diff_files.count
@@ -561,11 +608,35 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
describe '#paginated_diffs' do
+ shared_examples 'diffs with generated files check' do
+ context 'when collapse_generated_diff_files FF is enabled' do
+ it 'checks generated files' do
+ diffs = diff_with_commits.paginated_diffs(1, 10)
+
+ expect(diffs.diff_files.first.generated?).not_to be_nil
+ end
+ end
+
+ context 'when collapse_generated_diff_files FF is disabled' do
+ before do
+ stub_feature_flags(collapse_generated_diff_files: false)
+ end
+
+ it 'does not check generated files' do
+ diffs = diff_with_commits.paginated_diffs(1, 10)
+
+ expect(diffs.diff_files.first.generated?).to be_nil
+ end
+ end
+ end
+
context 'when no persisted files available' do
before do
diff_with_commits.clean!
end
+ it_behaves_like 'diffs with generated files check'
+
it 'returns a Gitlab::Diff::FileCollection::Compare' do
diffs = diff_with_commits.paginated_diffs(1, 10)
@@ -575,6 +646,8 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
context 'when persisted files available' do
+ it_behaves_like 'diffs with generated files check'
+
it 'returns paginated diffs' do
diffs = diff_with_commits.paginated_diffs(1, 10)
@@ -911,11 +984,19 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
context 'handling generated files' do
- let(:project) { create(:project, :repository) }
+ let(:project) do
+ create(:project, :custom_repo, files: {
+ '.gitattributes' => '*.txt gitlab-generated'
+ })
+ end
+
+ let(:generated_file_name_manual) { 'generated.txt' }
+ let(:generated_file_name_auto) { 'package-lock.json' }
+ let(:regular_file_name) { 'regular.rb' }
+
let(:target_branch) { project.default_branch }
let(:source_branch) { 'test-generated-diff-file' }
- let(:generated_file_name) { 'generated.txt' }
- let(:regular_file_name) { 'regular.rb' }
+
let(:merge_request) do
create(
:merge_request,
@@ -931,20 +1012,34 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
before do
- project.repository.update_file(
+ project.repository.create_branch(source_branch, target_branch)
+
+ project.repository.create_file(
project.creator,
- '.gitattributes',
- '*.txt gitlab-generated',
- message: 'Update',
- branch_name: target_branch)
+ generated_file_name_manual,
+ 'updated generated content',
+ message: 'Update generated file',
+ branch_name: source_branch)
- create_file_in_repo(project, target_branch, source_branch, generated_file_name, "generated text\n")
- create_file_in_repo(project, source_branch, source_branch, regular_file_name, "something else\n")
+ project.repository.create_file(
+ project.creator,
+ generated_file_name_auto,
+ 'updated generated content',
+ message: 'Update generated file',
+ branch_name: source_branch)
+
+ project.repository.create_file(
+ project.creator,
+ regular_file_name,
+ 'updated regular content',
+ message: "Update regular file",
+ branch_name: source_branch)
end
context 'with collapse_generated_diff_files feature flag' do
it 'sets generated field correctly' do
- expect(diff_files.find_by(new_path: generated_file_name)).to be_generated
+ expect(diff_files.find_by(new_path: generated_file_name_manual)).to be_generated
+ expect(diff_files.find_by(new_path: generated_file_name_auto)).to be_generated
expect(diff_files.find_by(new_path: regular_file_name)).not_to be_generated
end
end
@@ -955,7 +1050,8 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
it 'sets generated field correctly' do
- expect(diff_files.find_by(new_path: generated_file_name)).not_to be_generated
+ expect(diff_files.find_by(new_path: generated_file_name_auto)).not_to be_generated
+ expect(diff_files.find_by(new_path: generated_file_name_manual)).not_to be_generated
expect(diff_files.find_by(new_path: regular_file_name)).not_to be_generated
end
end
@@ -1206,7 +1302,7 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
it 'returns false if passed commits do not exist' do
expect(subject.includes_any_commits?([])).to eq(false)
- expect(subject.includes_any_commits?([Gitlab::Git::BLANK_SHA])).to eq(false)
+ expect(subject.includes_any_commits?([Gitlab::Git::SHA1_BLANK_SHA])).to eq(false)
end
it 'returns true if passed commits exists' do
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 737884425f7..797ab5be235 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -5044,10 +5044,36 @@ RSpec.describe MergeRequest, factory_default: :keep, feature_category: :code_rev
end
describe '#should_be_rebased?' do
- it 'returns false for the same source and target branches' do
- merge_request = build_stubbed(:merge_request, source_project: project, target_project: project)
+ let(:merge_request) { build_stubbed(:merge_request) }
+
+ subject { merge_request.should_be_rebased? }
+
+ context 'when the same source and target branches' do
+ let(:merge_request) { build_stubbed(:merge_request, source_project: project, target_project: project) }
+
+ it { is_expected.to be_falsey }
+ end
+
+ context 'when the project is using ff merge method' do
+ before do
+ allow(merge_request.target_project).to receive(:ff_merge_must_be_possible?).and_return(true)
+ end
+
+ context 'when the mr needs to be rebased to merge' do
+ before do
+ allow(merge_request).to receive(:ff_merge_possible?).and_return(false)
+ end
+
+ it { is_expected.to be_truthy }
+ end
- expect(merge_request.should_be_rebased?).to be_falsey
+ context 'when the MR can be merged without rebase' do
+ before do
+ allow(merge_request).to receive(:ff_merge_possible?).and_return(true)
+ end
+
+ it { is_expected.to be_falsey }
+ end
end
end
@@ -6128,6 +6154,34 @@ RSpec.describe MergeRequest, factory_default: :keep, feature_category: :code_rev
end
end
+ describe '#allows_multiple_assignees?' do
+ let(:merge_request) { build_stubbed(:merge_request) }
+
+ subject(:allows_multiple_assignees?) { merge_request.allows_multiple_assignees? }
+
+ before do
+ allow(merge_request.project)
+ .to receive(:allows_multiple_merge_request_assignees?)
+ .and_return(false)
+ end
+
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#allows_multiple_reviewers?' do
+ let(:merge_request) { build_stubbed(:merge_request) }
+
+ subject(:allows_multiple_reviewers?) { merge_request.allows_multiple_reviewers? }
+
+ before do
+ allow(merge_request.project)
+ .to receive(:allows_multiple_merge_request_reviewers?)
+ .and_return(false)
+ end
+
+ it { is_expected.to eq(false) }
+ end
+
describe '#previous_diff' do
let(:merge_request) { create(:merge_request, :skip_diff_creation) }
diff --git a/spec/models/ml/candidate_metric_spec.rb b/spec/models/ml/candidate_metric_spec.rb
index 9f9a6e8e3ba..9ceaa83a6fa 100644
--- a/spec/models/ml/candidate_metric_spec.rb
+++ b/spec/models/ml/candidate_metric_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Ml::CandidateMetric do
+RSpec.describe Ml::CandidateMetric, feature_category: :mlops do
describe 'associations' do
it { is_expected.to belong_to(:candidate) }
end
diff --git a/spec/models/ml/candidate_param_spec.rb b/spec/models/ml/candidate_param_spec.rb
index ff38e471219..89232b10855 100644
--- a/spec/models/ml/candidate_param_spec.rb
+++ b/spec/models/ml/candidate_param_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Ml::CandidateParam do
+RSpec.describe Ml::CandidateParam, feature_category: :mlops do
describe 'associations' do
it { is_expected.to belong_to(:candidate) }
end
diff --git a/spec/models/ml/experiment_spec.rb b/spec/models/ml/experiment_spec.rb
index 36bdb611833..1864c04d2fd 100644
--- a/spec/models/ml/experiment_spec.rb
+++ b/spec/models/ml/experiment_spec.rb
@@ -37,6 +37,20 @@ RSpec.describe Ml::Experiment, feature_category: :mlops do
end
end
+ describe '.by_project' do
+ subject { described_class.by_project(exp.project) }
+
+ it { is_expected.to match_array([exp, exp2]) }
+ end
+
+ describe '.including_project' do
+ subject { described_class.including_project }
+
+ it 'loads latest version' do
+ expect(subject.first.association_cached?(:project)).to be(true)
+ end
+ end
+
describe '#by_project_id_and_iid' do
subject { described_class.by_project_id_and_iid(exp.project_id, iid) }
diff --git a/spec/models/ml/model_metadata_spec.rb b/spec/models/ml/model_metadata_spec.rb
index f06c7a2ce50..0afc7bb7a2e 100644
--- a/spec/models/ml/model_metadata_spec.rb
+++ b/spec/models/ml/model_metadata_spec.rb
@@ -5,6 +5,8 @@ require 'spec_helper'
RSpec.describe Ml::ModelMetadata, feature_category: :mlops do
describe 'associations' do
it { is_expected.to belong_to(:model).required }
+ it { is_expected.to validate_length_of(:name).is_at_most(255) }
+ it { is_expected.to validate_length_of(:value).is_at_most(5000) }
end
describe 'validations' do
diff --git a/spec/models/ml/model_version_metadata_spec.rb b/spec/models/ml/model_version_metadata_spec.rb
new file mode 100644
index 00000000000..7c8ffb9b0d7
--- /dev/null
+++ b/spec/models/ml/model_version_metadata_spec.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Ml::ModelVersionMetadata, feature_category: :mlops do
+ describe 'associations' do
+ it { is_expected.to belong_to(:model_version).required }
+ it { is_expected.to belong_to(:project).required }
+ it { is_expected.to validate_length_of(:name).is_at_most(255) }
+ it { is_expected.to validate_length_of(:value).is_at_most(5000) }
+ end
+
+ describe 'validations' do
+ let_it_be(:metadata) { create(:ml_model_version_metadata, name: 'some_metadata') }
+ let_it_be(:model_version) { metadata.model_version }
+
+ it 'is unique within the model version' do
+ expect do
+ model_version.metadata.create!(name: 'some_metadata', value: 'blah')
+ end.to raise_error.with_message(/Name 'some_metadata' already taken/)
+ end
+
+ it 'a model version is required' do
+ expect do
+ described_class.create!(name: 'some_metadata', value: 'blah')
+ end.to raise_error.with_message(/Model version must exist/)
+ end
+ end
+end
diff --git a/spec/models/ml/model_version_spec.rb b/spec/models/ml/model_version_spec.rb
index 95d4a545f52..9db9f7e34ab 100644
--- a/spec/models/ml/model_version_spec.rb
+++ b/spec/models/ml/model_version_spec.rb
@@ -19,6 +19,7 @@ RSpec.describe Ml::ModelVersion, feature_category: :mlops do
it { is_expected.to belong_to(:model) }
it { is_expected.to belong_to(:package).class_name('Packages::MlModel::Package') }
it { is_expected.to have_one(:candidate).class_name('Ml::Candidate') }
+ it { is_expected.to have_many(:metadata) }
end
describe 'validation' do
@@ -99,6 +100,34 @@ RSpec.describe Ml::ModelVersion, feature_category: :mlops do
end
end
+ describe '#add_metadata' do
+ it 'accepts an array of metadata and persists it to the model version' do
+ input = [
+ { project_id: base_project.id, key: 'tag1', value: 'value1' },
+ { project_id: base_project.id, key: 'tag2', value: 'value2' }
+ ]
+
+ expect { model_version1.add_metadata(input) }.to change { model_version1.metadata.count }.by(2)
+ end
+
+ it 'raises an error when duplicate key names are supplied' do
+ input = [
+ { project_id: base_project.id, key: 'tag1', value: 'value1' },
+ { project_id: base_project.id, key: 'tag1', value: 'value2' }
+ ]
+
+ expect { model_version1.add_metadata(input) }.to raise_error(ActiveRecord::RecordInvalid)
+ end
+
+ it 'raises an error when validation fails' do
+ input = [
+ { project_id: base_project.id, key: nil, value: 'value1' }
+ ]
+
+ expect { model_version1.add_metadata(input) }.to raise_error(ActiveRecord::RecordInvalid)
+ end
+ end
+
describe '#find_or_create!' do
let_it_be(:existing_model_version) { create(:ml_model_versions, model: model1, version: '1.0.0') }
diff --git a/spec/models/namespace/package_setting_spec.rb b/spec/models/namespace/package_setting_spec.rb
index f06490d7999..e326e8cace8 100644
--- a/spec/models/namespace/package_setting_spec.rb
+++ b/spec/models/namespace/package_setting_spec.rb
@@ -12,13 +12,21 @@ RSpec.describe Namespace::PackageSetting, feature_category: :package_registry do
describe '#maven_duplicates_allowed' do
it { is_expected.to validate_inclusion_of(:maven_duplicates_allowed).in_array([true, false]) }
- it { is_expected.to validate_inclusion_of(:generic_duplicates_allowed).in_array([true, false]) }
- it { is_expected.to validate_inclusion_of(:nuget_duplicates_allowed).in_array([true, false]) }
+ it { is_expected.to validate_length_of(:maven_duplicate_exception_regex).is_at_most(255) }
end
it { is_expected.to allow_value(true, false).for(:nuget_symbol_server_enabled) }
it { is_expected.not_to allow_value(nil).for(:nuget_symbol_server_enabled) }
+ it { is_expected.to validate_inclusion_of(:generic_duplicates_allowed).in_array([true, false]) }
+ it { is_expected.to validate_length_of(:generic_duplicate_exception_regex).is_at_most(255) }
+ it { is_expected.to validate_inclusion_of(:nuget_duplicates_allowed).in_array([true, false]) }
+ it { is_expected.to validate_length_of(:nuget_duplicate_exception_regex).is_at_most(255) }
+
+ it { is_expected.to allow_value(true, false).for(:terraform_module_duplicates_allowed) }
+ it { is_expected.not_to allow_value(nil).for(:terraform_module_duplicates_allowed) }
+ it { is_expected.to validate_length_of(:terraform_module_duplicate_exception_regex).is_at_most(255) }
+
describe 'regex values' do
let_it_be(:package_settings) { create(:namespace_package_setting) }
@@ -39,6 +47,50 @@ RSpec.describe Namespace::PackageSetting, feature_category: :package_registry do
end
end
+ describe 'scopes' do
+ describe '.namespace_id_in' do
+ let_it_be(:package_settings) { create(:namespace_package_setting) }
+ let_it_be(:other_package_settings) { create(:namespace_package_setting) }
+
+ subject { described_class.namespace_id_in([package_settings.namespace_id]) }
+
+ it { is_expected.to eq([package_settings]) }
+ end
+
+ describe '.with_terraform_module_duplicates_allowed_or_exception_regex' do
+ let_it_be(:package_settings) { create(:namespace_package_setting) }
+
+ subject { described_class.with_terraform_module_duplicates_allowed_or_exception_regex }
+
+ context 'when terraform_module_duplicates_allowed is true' do
+ before do
+ package_settings.update_column(:terraform_module_duplicates_allowed, true)
+ end
+
+ it { is_expected.to eq([package_settings]) }
+ end
+
+ context 'when terraform_module_duplicate_exception_regex is present' do
+ before do
+ package_settings.update_column(:terraform_module_duplicate_exception_regex, 'foo')
+ end
+
+ it { is_expected.to eq([package_settings]) }
+ end
+
+ context 'when terraform_module_duplicates_allowed is false and terraform_module_duplicate_exception_regex is empty' do
+ before do
+ package_settings.update_columns(
+ terraform_module_duplicates_allowed: false,
+ terraform_module_duplicate_exception_regex: ''
+ )
+ end
+
+ it { is_expected.to be_empty }
+ end
+ end
+ end
+
describe '#duplicates_allowed?' do
using RSpec::Parameterized::TableSyntax
@@ -46,9 +98,14 @@ RSpec.describe Namespace::PackageSetting, feature_category: :package_registry do
context 'package types with package_settings' do
# As more package types gain settings they will be added to this list
- %i[maven_package generic_package nuget_package].each do |format|
- context "with package_type:#{format}" do
- let_it_be(:package) { create(format, name: 'foo', version: '1.0.0-beta') }
+ [
+ { format: :maven_package, package_name: 'foo' },
+ { format: :generic_package, package_name: 'foo' },
+ { format: :nuget_package, package_name: 'foo' },
+ { format: :terraform_module_package, package_name: 'foo/bar' }
+ ].each do |type|
+ context "with package_type: #{type[:format]}" do
+ let_it_be(:package) { create(type[:format], name: type[:package_name], version: '1.0.0-beta') }
let_it_be(:package_type) { package.package_type }
let_it_be(:package_setting) { package.project.namespace.package_settings }
@@ -61,7 +118,7 @@ RSpec.describe Namespace::PackageSetting, feature_category: :package_registry do
end
with_them do
- context "for #{format}" do
+ context "for #{type[:format]}" do
before do
package_setting.update!(
"#{package_type}_duplicates_allowed" => duplicates_allowed,
diff --git a/spec/models/namespace_spec.rb b/spec/models/namespace_spec.rb
index 0e6513764f5..67b8931f0c5 100644
--- a/spec/models/namespace_spec.rb
+++ b/spec/models/namespace_spec.rb
@@ -39,6 +39,7 @@ RSpec.describe Namespace, feature_category: :groups_and_projects do
it { is_expected.to have_many(:namespace_commit_emails).class_name('Users::NamespaceCommitEmail') }
it { is_expected.to have_many(:cycle_analytics_stages) }
it { is_expected.to have_many(:value_streams) }
+ it { is_expected.to have_many(:non_archived_projects).class_name('Project') }
it do
is_expected.to have_one(:ci_cd_settings).class_name('NamespaceCiCdSetting').inverse_of(:namespace).autosave(true)
@@ -896,12 +897,14 @@ RSpec.describe Namespace, feature_category: :groups_and_projects do
it 'does not cause N+1 query in fetching registries' do
stub_container_registry_tags(repository: :any, tags: [])
- control_count = ActiveRecord::QueryRecorder.new { namespace.any_project_has_container_registry_tags? }.count
+ control = ActiveRecord::QueryRecorder.new { namespace.any_project_has_container_registry_tags? }
other_repositories = create_list(:container_repository, 2)
create(:project, namespace: namespace, container_repositories: other_repositories)
- expect { namespace.first_project_with_container_registry_tags }.not_to exceed_query_limit(control_count + 1)
+ expect do
+ namespace.first_project_with_container_registry_tags
+ end.not_to exceed_query_limit(control).with_threshold(1)
end
end
@@ -1130,6 +1133,28 @@ RSpec.describe Namespace, feature_category: :groups_and_projects do
end
end
+ describe '.gfm_autocomplete_search' do
+ let_it_be(:parent_group) { create(:group, path: 'parent', name: 'Parent') }
+ let_it_be(:group_1) { create(:group, parent: parent_group, path: 'somepath', name: 'Your Group') }
+ let_it_be(:group_2) { create(:group, path: 'noparent', name: 'My Group') }
+
+ it 'returns partial matches on full path' do
+ expect(described_class.gfm_autocomplete_search('parent/som')).to eq([group_1])
+ end
+
+ it 'returns matches on full name across multiple words' do
+ expect(described_class.gfm_autocomplete_search('yourgr')).to eq([group_1])
+ end
+
+ it 'prioritizes sorting of matches that start with the query' do
+ expect(described_class.gfm_autocomplete_search('pare')).to eq([parent_group, group_1, group_2])
+ end
+
+ it 'falls back to sorting by full path' do
+ expect(described_class.gfm_autocomplete_search('group')).to eq([group_2, group_1])
+ end
+ end
+
describe '.with_statistics' do
let_it_be(:namespace) { create(:namespace) }
diff --git a/spec/models/namespaces/descendants_spec.rb b/spec/models/namespaces/descendants_spec.rb
new file mode 100644
index 00000000000..6c153c3307b
--- /dev/null
+++ b/spec/models/namespaces/descendants_spec.rb
@@ -0,0 +1,68 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Namespaces::Descendants, feature_category: :database do
+ describe 'associations' do
+ it { is_expected.to belong_to(:namespace) }
+ end
+
+ describe 'validations' do
+ subject(:namespace_descendants) { create(:namespace_descendants) }
+
+ it { is_expected.to validate_uniqueness_of(:namespace_id) }
+ end
+
+ describe 'factory' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:subgroup) { create(:group, parent: group) }
+
+ let_it_be(:project1) { create(:project, group: subgroup) }
+ let_it_be(:project2) { create(:project, group: group) }
+
+ it 'up to date descendant record for a group' do
+ descendants = create(:namespace_descendants, namespace: group)
+
+ expect(descendants).to have_attributes(
+ self_and_descendant_group_ids: [group.id, subgroup.id],
+ all_project_ids: [project1.id, project2.id],
+ traversal_ids: [group.id]
+ )
+ end
+
+ it 'creates up-to-date descendant record for a subgroup' do
+ descendants = create(:namespace_descendants, namespace: subgroup)
+
+ expect(descendants).to have_attributes(
+ self_and_descendant_group_ids: [subgroup.id],
+ all_project_ids: [project1.id],
+ traversal_ids: [group.id, subgroup.id]
+ )
+ end
+ end
+
+ describe '.expire_for' do
+ it 'sets the outdated_at column for the given namespace ids' do
+ freeze_time do
+ expire_time = Time.current
+
+ group1 = create(:group).tap do |g|
+ create(:namespace_descendants, namespace: g).reload.update!(outdated_at: nil)
+ end
+ group2 = create(:group, parent: group1).tap { |g| create(:namespace_descendants, namespace: g) }
+ group3 = create(:group, parent: group1)
+
+ group4 = create(:group).tap do |g|
+ create(:namespace_descendants, namespace: g).reload.update!(outdated_at: nil)
+ end
+
+ described_class.expire_for([group1.id, group2.id, group3.id])
+
+ expect(group1.namespace_descendants.outdated_at).to eq(expire_time)
+ expect(group2.namespace_descendants.outdated_at).to eq(expire_time)
+ expect(group3.namespace_descendants).to be_nil
+ expect(group4.namespace_descendants.outdated_at).to be_nil
+ end
+ end
+ end
+end
diff --git a/spec/models/namespaces/traversal/cached_spec.rb b/spec/models/namespaces/traversal/cached_spec.rb
new file mode 100644
index 00000000000..8263e28bb98
--- /dev/null
+++ b/spec/models/namespaces/traversal/cached_spec.rb
@@ -0,0 +1,104 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Namespaces::Traversal::Cached, feature_category: :database do
+ let_it_be_with_refind(:old_parent) { create(:group) }
+ let_it_be_with_refind(:new_parent) { create(:group) }
+ let_it_be_with_refind(:group) { create(:group, parent: old_parent) }
+ let_it_be_with_refind(:subgroup) { create(:group, parent: group) }
+
+ context 'when the namespace_descendants_cache_expiration feature flag is off' do
+ let!(:cache) { create(:namespace_descendants, namespace: group) }
+
+ before do
+ stub_feature_flags(namespace_descendants_cache_expiration: false)
+ end
+
+ it 'does not invalidate the cache' do
+ expect { group.update!(parent: new_parent) }.not_to change { cache.reload.outdated_at }
+ end
+
+ context 'when the group is deleted' do
+ it 'invalidates the cache' do
+ expect { group.destroy! }.not_to change { cache.reload.outdated_at }
+ end
+ end
+ end
+
+ context 'when no cached records are present' do
+ it 'does nothing' do
+ group.parent = new_parent
+
+ expect { group.save! }.not_to change { Namespaces::Descendants.all.to_a }
+ end
+ end
+
+ context 'when the namespace record is UserNamespace' do
+ it 'does nothing' do
+ # we won't use the optimization for UserNamespace
+ namespace = create(:user_namespace)
+ cache = create(:namespace_descendants, namespace: namespace)
+
+ expect { namespace.destroy! }.not_to change { cache.reload.outdated_at }
+ end
+ end
+
+ context 'when cached record is present' do
+ let!(:cache) { create(:namespace_descendants, namespace: group) }
+
+ it 'invalidates the cache' do
+ expect { group.update!(parent: new_parent) }.to change { cache.reload.outdated_at }.from(nil)
+ end
+
+ it 'does not invalidate the cache of subgroups' do
+ subgroup_cache = create(:namespace_descendants, namespace: subgroup)
+
+ expect { group.update!(parent: new_parent) }.not_to change { subgroup_cache.reload.outdated_at }
+ end
+
+ context 'when a new subgroup is added' do
+ it 'invalidates the cache' do
+ expect { create(:group, parent: group) }.to change { cache.reload.outdated_at }
+ end
+ end
+
+ context 'when a new project is added' do
+ it 'invalidates the cache' do
+ expect { create(:project, group: group) }.to change { cache.reload.outdated_at }
+ end
+ end
+ end
+
+ context 'when parent group has cached record' do
+ it 'invalidates the parent cache' do
+ old_parent_cache = create(:namespace_descendants, namespace: old_parent)
+ new_parent_cache = create(:namespace_descendants, namespace: new_parent)
+
+ group.update!(parent: new_parent)
+
+ expect(old_parent_cache.reload.outdated_at).not_to be_nil
+ expect(new_parent_cache.reload.outdated_at).not_to be_nil
+ end
+ end
+
+ context 'when group is destroyed' do
+ it 'invalidates the cache' do
+ cache = create(:namespace_descendants, namespace: group)
+
+ expect { group.destroy! }.to change { cache.reload.outdated_at }.from(nil)
+ end
+
+ context 'when parent group has cached record' do
+ it 'invalidates the parent cache' do
+ old_parent_cache = create(:namespace_descendants, namespace: old_parent)
+ new_parent_cache = create(:namespace_descendants, namespace: new_parent)
+
+ group.destroy!
+
+ expect(old_parent_cache.reload.outdated_at).not_to be_nil
+ expect(new_parent_cache.reload.outdated_at).to be_nil # no change
+ end
+ end
+ end
+end
diff --git a/spec/models/note_diff_file_spec.rb b/spec/models/note_diff_file_spec.rb
index 1ece1dfea59..5d9381b5886 100644
--- a/spec/models/note_diff_file_spec.rb
+++ b/spec/models/note_diff_file_spec.rb
@@ -32,7 +32,7 @@ RSpec.describe NoteDiffFile do
end
it 'excludes note diff files with the wrong sha' do
- found = described_class.referencing_sha(Gitlab::Git::BLANK_SHA, project_id: project.id)
+ found = described_class.referencing_sha(Gitlab::Git::SHA1_BLANK_SHA, project_id: project.id)
expect(found).to be_empty
end
diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb
index 5aa3ac3a2ea..59795059642 100644
--- a/spec/models/note_spec.rb
+++ b/spec/models/note_spec.rb
@@ -448,13 +448,13 @@ RSpec.describe Note, feature_category: :team_planning do
# Project authorization checks are cached, establish a baseline
retrieve_participants
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
retrieve_participants
end
create(:note_on_commit, project: note.project, note: 'another note', noteable_id: commit.id)
- expect { retrieve_participants }.not_to exceed_query_limit(control_count)
+ expect { retrieve_participants }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/models/onboarding/completion_spec.rb b/spec/models/onboarding/completion_spec.rb
index dd7648f7799..b9c9b994736 100644
--- a/spec/models/onboarding/completion_spec.rb
+++ b/spec/models/onboarding/completion_spec.rb
@@ -42,43 +42,19 @@ RSpec.describe Onboarding::Completion, feature_category: :onboarding do
describe '#completed?' do
subject(:completed?) { described_class.new(project).completed?(column) }
- context 'when code_added' do
- let(:column) { :code_added }
+ let(:column) { :code_added_at }
+ let(:completed_actions) { { code_added_at: code_added_at_timestamp } }
- context 'when commit_count > 1' do
- let(:project) { build(:project, :stubbed_commit_count, namespace: namespace) }
+ context 'when the action has been completed' do
+ let(:code_added_at_timestamp) { Time.current }
- it { is_expected.to eq(true) }
- end
-
- context 'when branch_count > 1' do
- let(:project) { build(:project, :stubbed_branch_count, namespace: namespace) }
-
- it { is_expected.to eq(true) }
- end
-
- context 'when empty repository' do
- let(:project) { build(:project, namespace: namespace) }
-
- it { is_expected.to eq(false) }
- end
+ it { is_expected.to eq(true) }
end
- context 'when secure_dast_run' do
- let(:column) { :secure_dast_run_at }
- let(:completed_actions) { { secure_dast_run_at: secure_dast_run_at } }
-
- context 'when is completed' do
- let(:secure_dast_run_at) { Time.current }
-
- it { is_expected.to eq(true) }
- end
-
- context 'when is not completed' do
- let(:secure_dast_run_at) { nil }
+ context 'when the action has not been completed' do
+ let(:code_added_at_timestamp) { nil }
- it { is_expected.to eq(false) }
- end
+ it { is_expected.to eq(false) }
end
end
end
diff --git a/spec/models/organizations/organization_detail_spec.rb b/spec/models/organizations/organization_detail_spec.rb
index 3f44a9cc637..dd49274e7dd 100644
--- a/spec/models/organizations/organization_detail_spec.rb
+++ b/spec/models/organizations/organization_detail_spec.rb
@@ -16,6 +16,15 @@ RSpec.describe Organizations::OrganizationDetail, type: :model, feature_category
let(:model) { create(:organization_detail) }
end
+ describe '#description_html' do
+ let_it_be(:model) { create(:organization_detail, description: '### Foo **Bar**') }
+ let(:expected_description) { ' Foo <strong>Bar</strong> ' }
+
+ subject { model.description_html }
+
+ it { is_expected.to eq_no_sourcepos(expected_description) }
+ end
+
context 'with uploads' do
it_behaves_like 'model with uploads', false do
let(:model_object) { create(:organization_detail) }
diff --git a/spec/models/organizations/organization_spec.rb b/spec/models/organizations/organization_spec.rb
index 756024b6437..7a3c743eddd 100644
--- a/spec/models/organizations/organization_spec.rb
+++ b/spec/models/organizations/organization_spec.rb
@@ -59,8 +59,10 @@ RSpec.describe Organizations::Organization, type: :model, feature_category: :cel
describe 'delegations' do
it { is_expected.to delegate_method(:description).to(:organization_detail) }
+ it { is_expected.to delegate_method(:description_html).to(:organization_detail) }
it { is_expected.to delegate_method(:avatar).to(:organization_detail) }
it { is_expected.to delegate_method(:avatar_url).to(:organization_detail) }
+ it { is_expected.to delegate_method(:remove_avatar!).to(:organization_detail) }
end
describe 'nested attributes' do
@@ -202,6 +204,32 @@ RSpec.describe Organizations::Organization, type: :model, feature_category: :cel
end
end
+ describe '#owner?' do
+ let_it_be(:user) { create(:user) }
+
+ subject { organization.owner?(user) }
+
+ context 'when user is an owner' do
+ before do
+ create(:organization_user, :owner, organization: organization, user: user)
+ end
+
+ it { is_expected.to eq true }
+ end
+
+ context 'when user is not an owner' do
+ before do
+ create(:organization_user, organization: organization, user: user)
+ end
+
+ it { is_expected.to eq false }
+ end
+
+ context 'when user is not an organization user' do
+ it { is_expected.to eq false }
+ end
+ end
+
describe '#web_url' do
it 'returns web url from `Gitlab::UrlBuilder`' do
web_url = 'http://127.0.0.1:3000/-/organizations/default'
diff --git a/spec/models/organizations/organization_user_spec.rb b/spec/models/organizations/organization_user_spec.rb
index 392ffa1b5be..c3416c93ec9 100644
--- a/spec/models/organizations/organization_user_spec.rb
+++ b/spec/models/organizations/organization_user_spec.rb
@@ -7,4 +7,41 @@ RSpec.describe Organizations::OrganizationUser, type: :model, feature_category:
it { is_expected.to belong_to(:organization).inverse_of(:organization_users).required }
it { is_expected.to belong_to(:user).inverse_of(:organization_users).required }
end
+
+ describe 'validations' do
+ subject { build(:organization_user) }
+
+ it { is_expected.to define_enum_for(:access_level).with_values(described_class.access_levels) }
+ it { is_expected.to validate_presence_of(:access_level) }
+ it { is_expected.to validate_uniqueness_of(:user).scoped_to(:organization_id) }
+
+ it 'does not allow invalid enum value' do
+ expect { build(:organization_user, access_level: '_invalid_') }.to raise_error(ArgumentError)
+ end
+ end
+
+ context 'with loose foreign key on organization_users.organization_id' do
+ it_behaves_like 'cleanup by a loose foreign key' do
+ let_it_be(:parent) { create(:organization) }
+ let_it_be(:model) { create(:organization_user, organization: parent) }
+ end
+ end
+
+ context 'with loose foreign key on organization_users.user_id' do
+ it_behaves_like 'cleanup by a loose foreign key' do
+ let_it_be(:parent) { create(:user) }
+ let_it_be(:model) { create(:organization_user, user: parent) }
+ end
+ end
+
+ describe '.owners' do
+ it 'returns the owners of the organization' do
+ organization_user = create(:organization_user, :owner)
+ create(:organization_user)
+
+ expect(described_class.owners).to match([organization_user])
+ end
+ end
+
+ it_behaves_like 'having unique enum values'
end
diff --git a/spec/models/packages/protection/rule_spec.rb b/spec/models/packages/protection/rule_spec.rb
index 3f0aefa945a..03d0440f0d9 100644
--- a/spec/models/packages/protection/rule_spec.rb
+++ b/spec/models/packages/protection/rule_spec.rb
@@ -35,30 +35,32 @@ RSpec.describe Packages::Protection::Rule, type: :model, feature_category: :pack
it { is_expected.to validate_uniqueness_of(:package_name_pattern).scoped_to(:project_id, :package_type) }
it { is_expected.to validate_length_of(:package_name_pattern).is_at_most(255) }
- [
- '@my-scope/my-package',
- '@my-scope/*my-package-with-wildcard-inbetween',
- '@my-scope/*my-package-with-wildcard-start',
- '@my-scope/my-*package-*with-wildcard-multiple-*',
- '@my-scope/my-package-with_____underscore',
- '@my-scope/my-package-with-regex-characters.+',
- '@my-scope/my-package-with-wildcard-end*'
- ].each do |package_name_pattern|
- it { is_expected.to allow_value(package_name_pattern).for(:package_name_pattern) }
+ where(:package_name_pattern, :allowed) do
+ '@my-scope/my-package' | true
+ '@my-scope/*my-package-with-wildcard-inbetween' | true
+ '@my-scope/*my-package-with-wildcard-start' | true
+ '@my-scope/my-*package-*with-wildcard-multiple-*' | true
+ '@my-scope/my-package-with_____underscore' | true
+ '@my-scope/my-package-with-regex-characters.+' | true
+ '@my-scope/my-package-with-wildcard-end*' | true
+
+ '@my-scope/my-package-with-percent-sign-%' | false
+ '*@my-scope/my-package-with-wildcard-start' | false
+ '@my-scope/my-package-with-backslash-\*' | false
end
- [
- '@my-scope/my-package-with-percent-sign-%',
- '*@my-scope/my-package-with-wildcard-start',
- '@my-scope/my-package-with-backslash-\*'
- ].each do |package_name_pattern|
- it {
- is_expected.not_to(
- allow_value(package_name_pattern)
- .for(:package_name_pattern)
- .with_message(_('should be a valid NPM package name with optional wildcard characters.'))
- )
- }
+ with_them do
+ if params[:allowed]
+ it { is_expected.to allow_value(package_name_pattern).for(:package_name_pattern) }
+ else
+ it {
+ is_expected.not_to(
+ allow_value(package_name_pattern)
+ .for(:package_name_pattern)
+ .with_message(_('should be a valid NPM package name with optional wildcard characters.'))
+ )
+ }
+ end
end
end
diff --git a/spec/models/preloaders/commit_status_preloader_spec.rb b/spec/models/preloaders/commit_status_preloader_spec.rb
index 85ea784335c..0453b6267ed 100644
--- a/spec/models/preloaders/commit_status_preloader_spec.rb
+++ b/spec/models/preloaders/commit_status_preloader_spec.rb
@@ -21,13 +21,13 @@ RSpec.describe Preloaders::CommitStatusPreloader do
it 'prevents N+1 for specified relations', :use_sql_query_cache do
execute
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
call_each_relation(statuses.sample(3))
end
expect do
call_each_relation(statuses)
- end.to issue_same_number_of_queries_as(control_count)
+ end.to issue_same_number_of_queries_as(control)
end
private
diff --git a/spec/models/project_authorizations/changes_spec.rb b/spec/models/project_authorizations/changes_spec.rb
index d6ccfccbcbe..9c2686e82f6 100644
--- a/spec/models/project_authorizations/changes_spec.rb
+++ b/spec/models/project_authorizations/changes_spec.rb
@@ -28,48 +28,81 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
end
shared_examples_for 'publishes AuthorizationsChangedEvent' do
- it 'publishes a AuthorizationsChangedEvent event with project id' do
- project_ids.each do |project_id|
- project_data = { project_id: project_id }
- project_event = instance_double('::ProjectAuthorizations::AuthorizationsChangedEvent', data: project_data)
+ it 'does not publish a AuthorizationsChangedEvent event' do
+ expect(::Gitlab::EventStore).not_to receive(:publish)
+ .with(an_instance_of(::ProjectAuthorizations::AuthorizationsChangedEvent))
- allow(::ProjectAuthorizations::AuthorizationsChangedEvent).to receive(:new)
- .with(data: project_data)
- .and_return(project_event)
+ apply_project_authorization_changes
+ end
- allow(::Gitlab::EventStore).to receive(:publish)
- expect(::Gitlab::EventStore).to receive(:publish).with(project_event)
+ context 'when feature flag "add_policy_approvers_to_rules" is disabled' do
+ before do
+ stub_feature_flags(add_policy_approvers_to_rules: false)
end
- apply_project_authorization_changes
+ it 'publishes a AuthorizationsChangedEvent event with project id' do
+ allow(::Gitlab::EventStore).to receive(:publish)
+ project_ids.each do |project_id|
+ project_data = { project_id: project_id }
+ project_event = instance_double('::ProjectAuthorizations::AuthorizationsChangedEvent', data: project_data)
+
+ allow(::ProjectAuthorizations::AuthorizationsChangedEvent).to receive(:new)
+ .with(data: project_data)
+ .and_return(project_event)
+
+ expect(::Gitlab::EventStore).to receive(:publish).with(project_event)
+ end
+
+ apply_project_authorization_changes
+ end
end
end
shared_examples_for 'publishes AuthorizationsRemovedEvent' do
it 'publishes a AuthorizationsRemovedEvent event with project id' do
- project_ids.each do |project_id|
+ allow(::Gitlab::EventStore).to receive(:publish_group)
+ project_events = project_ids.map do |project_id|
project_data = { project_id: project_id, user_ids: user_ids }
project_event = instance_double('::ProjectAuthorizations::AuthorizationsRemovedEvent', data: project_data)
allow(::ProjectAuthorizations::AuthorizationsRemovedEvent).to receive(:new)
.with(data: project_data)
.and_return(project_event)
+ project_event
+ end
+ expect(::Gitlab::EventStore).to receive(:publish_group).with(project_events)
- allow(::Gitlab::EventStore).to receive(:publish)
- expect(::Gitlab::EventStore).to receive(:publish).with(project_event)
+ apply_project_authorization_changes
+ end
+ end
+
+ shared_examples_for 'publishes AuthorizationsAddedEvent' do
+ it 'publishes a AuthorizationsAddedEvent event with project id' do
+ allow(::Gitlab::EventStore).to receive(:publish_group)
+ project_events = project_ids.map do |project_id|
+ project_data = { project_id: project_id, user_ids: user_ids }
+ project_event = instance_double('::ProjectAuthorizations::AuthorizationsAddedEvent', data: project_data)
+
+ allow(::ProjectAuthorizations::AuthorizationsAddedEvent).to receive(:new)
+ .with(data: project_data)
+ .and_return(project_event)
+ project_event
end
+ expect(::Gitlab::EventStore).to receive(:publish_group).with(project_events)
apply_project_authorization_changes
end
- context 'when feature flag "user_approval_rules_removal" is disabled' do
+ context 'when feature flag "add_policy_approvers_to_rules" is disabled' do
before do
- stub_feature_flags(user_approval_rules_removal: false)
+ stub_feature_flags(add_policy_approvers_to_rules: false)
end
- it 'does not publish a AuthorizationsRemovedEvent event' do
+ it 'does not publish a AuthorizationsAddedEvent event' do
expect(::Gitlab::EventStore).not_to(
- receive(:publish).with(an_instance_of(::ProjectAuthorizations::AuthorizationsRemovedEvent))
+ receive(:publish_group).with(array_including(
+ an_instance_of(::ProjectAuthorizations::AuthorizationsAddedEvent))
+ )
)
apply_project_authorization_changes
@@ -88,8 +121,23 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
shared_examples_for 'does not publish AuthorizationsRemovedEvent' do
it 'does not publish a AuthorizationsRemovedEvent event' do
- expect(::Gitlab::EventStore).not_to receive(:publish)
- .with(an_instance_of(::ProjectAuthorizations::AuthorizationsRemovedEvent))
+ expect(::Gitlab::EventStore).not_to(
+ receive(:publish_group).with(
+ array_including(an_instance_of(::ProjectAuthorizations::AuthorizationsRemovedEvent))
+ )
+ )
+
+ apply_project_authorization_changes
+ end
+ end
+
+ shared_examples_for 'does not publish AuthorizationsAddedEvent' do
+ it 'does not publish a AuthorizationsAddedEvent event' do
+ expect(::Gitlab::EventStore).not_to(
+ receive(:publish_group).with(
+ array_including(an_instance_of(::ProjectAuthorizations::AuthorizationsAddedEvent))
+ )
+ )
apply_project_authorization_changes
end
@@ -101,6 +149,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
let_it_be(:project_2) { create(:project) }
let_it_be(:project_3) { create(:project) }
let(:project_ids) { [project_1.id, project_2.id, project_3.id] }
+ let(:user_ids) { [user.id] }
let(:authorizations_to_add) do
[
@@ -155,6 +204,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'logs the detail', batch_size: 2
it_behaves_like 'publishes AuthorizationsChangedEvent'
+ it_behaves_like 'publishes AuthorizationsAddedEvent'
it_behaves_like 'does not publish AuthorizationsRemovedEvent'
context 'when the GitLab installation does not have a replica database configured' do
@@ -166,6 +216,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'inserts the rows in batches, as per the `per_batch` size, without a delay between batches'
it_behaves_like 'does not log any detail'
it_behaves_like 'publishes AuthorizationsChangedEvent'
+ it_behaves_like 'publishes AuthorizationsAddedEvent'
it_behaves_like 'does not publish AuthorizationsRemovedEvent'
end
end
@@ -178,6 +229,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'inserts the rows in batches, as per the `per_batch` size, without a delay between batches'
it_behaves_like 'does not log any detail'
it_behaves_like 'publishes AuthorizationsChangedEvent'
+ it_behaves_like 'publishes AuthorizationsAddedEvent'
it_behaves_like 'does not publish AuthorizationsRemovedEvent'
end
end
@@ -242,6 +294,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'logs the detail', batch_size: 2
it_behaves_like 'publishes AuthorizationsChangedEvent'
it_behaves_like 'publishes AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
context 'when the GitLab installation does not have a replica database configured' do
before do
@@ -253,6 +306,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'does not log any detail'
it_behaves_like 'publishes AuthorizationsChangedEvent'
it_behaves_like 'publishes AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
end
end
@@ -265,6 +319,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'does not log any detail'
it_behaves_like 'publishes AuthorizationsChangedEvent'
it_behaves_like 'publishes AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
end
context 'when the user_ids list is empty' do
@@ -273,6 +328,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'does not removes project authorizations of the users in the current project'
it_behaves_like 'does not publish AuthorizationsChangedEvent'
it_behaves_like 'does not publish AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
end
context 'when the user_ids list is nil' do
@@ -281,6 +337,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'does not removes project authorizations of the users in the current project'
it_behaves_like 'does not publish AuthorizationsChangedEvent'
it_behaves_like 'does not publish AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
end
end
@@ -344,6 +401,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'logs the detail', batch_size: 2
it_behaves_like 'publishes AuthorizationsChangedEvent'
it_behaves_like 'publishes AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
context 'when the GitLab installation does not have a replica database configured' do
before do
@@ -355,6 +413,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'does not log any detail'
it_behaves_like 'publishes AuthorizationsChangedEvent'
it_behaves_like 'publishes AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
end
end
@@ -367,6 +426,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'does not log any detail'
it_behaves_like 'publishes AuthorizationsChangedEvent'
it_behaves_like 'publishes AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
end
context 'when the project_ids list is empty' do
@@ -375,6 +435,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'does not removes any project authorizations from the current user'
it_behaves_like 'does not publish AuthorizationsChangedEvent'
it_behaves_like 'does not publish AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
end
context 'when the user_ids list is nil' do
@@ -383,6 +444,7 @@ RSpec.describe ProjectAuthorizations::Changes, feature_category: :groups_and_pro
it_behaves_like 'does not removes any project authorizations from the current user'
it_behaves_like 'does not publish AuthorizationsChangedEvent'
it_behaves_like 'does not publish AuthorizationsRemovedEvent'
+ it_behaves_like 'does not publish AuthorizationsAddedEvent'
end
end
end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index c256c4f10f8..1743c9bd89d 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -1121,6 +1121,8 @@ RSpec.describe Project, factory_default: :keep, feature_category: :groups_and_pr
end
it { is_expected.to delegate_method(:members).to(:team).with_prefix(true) }
+ it { is_expected.to delegate_method(:has_user?).to(:team) }
+ it { is_expected.to delegate_method(:member?).to(:team) }
it { is_expected.to delegate_method(:name).to(:owner).with_prefix(true).allow_nil }
it { is_expected.to delegate_method(:root_ancestor).to(:namespace).allow_nil }
it { is_expected.to delegate_method(:certificate_based_clusters_enabled?).to(:namespace).allow_nil }
@@ -2340,11 +2342,11 @@ RSpec.describe Project, factory_default: :keep, feature_category: :groups_and_pr
it 'avoids n + 1', :aggregate_failures do
create(:prometheus_integration)
run_test = -> { described_class.include_integration(:prometheus_integration).map(&:prometheus_integration) }
- control_count = ActiveRecord::QueryRecorder.new { run_test.call }
+ control = ActiveRecord::QueryRecorder.new { run_test.call }
create(:prometheus_integration)
expect(run_test.call.count).to eq(2)
- expect { run_test.call }.not_to exceed_query_limit(control_count)
+ expect { run_test.call }.not_to exceed_query_limit(control)
end
end
@@ -6591,17 +6593,17 @@ RSpec.describe Project, factory_default: :keep, feature_category: :groups_and_pr
let_it_be(:subject) { create(:project) }
it 'avoids N+1 database queries' do
- control_count = ActiveRecord::QueryRecorder.new { subject.find_or_initialize_integrations }.count
+ control = ActiveRecord::QueryRecorder.new { subject.find_or_initialize_integrations }
- expect(control_count).to be <= 4
+ expect(control.count).to be <= 4
end
it 'avoids N+1 database queries with more available integrations' do
allow(Integration).to receive(:available_integration_names).and_return(%w[pushover])
- control_count = ActiveRecord::QueryRecorder.new { subject.find_or_initialize_integrations }
+ control = ActiveRecord::QueryRecorder.new { subject.find_or_initialize_integrations }
allow(Integration).to receive(:available_integration_names).and_call_original
- expect { subject.find_or_initialize_integrations }.not_to exceed_query_limit(control_count)
+ expect { subject.find_or_initialize_integrations }.not_to exceed_query_limit(control)
end
context 'with disabled integrations' do
@@ -6648,11 +6650,11 @@ RSpec.describe Project, factory_default: :keep, feature_category: :groups_and_pr
it 'avoids N+1 database queries' do
allow(Integration).to receive(:available_integration_names).and_return(%w[prometheus pushover])
- control_count = ActiveRecord::QueryRecorder.new { subject.find_or_initialize_integration('prometheus') }.count
+ control = ActiveRecord::QueryRecorder.new { subject.find_or_initialize_integration('prometheus') }
allow(Integration).to receive(:available_integration_names).and_call_original
- expect { subject.find_or_initialize_integration('prometheus') }.not_to exceed_query_limit(control_count)
+ expect { subject.find_or_initialize_integration('prometheus') }.not_to exceed_query_limit(control)
end
it 'returns nil if integration is disabled' do
@@ -7978,6 +7980,24 @@ RSpec.describe Project, factory_default: :keep, feature_category: :groups_and_pr
expect(project.reload.topics.map(&:name)).to eq(%w[topic1 topic2 topic3])
end
+
+ it 'assigns slug value for new topics' do
+ topic = create(:topic, name: 'old topic', title: 'old topic', slug: nil)
+ project.topic_list = topic.name
+ project.save!
+
+ project.topic_list = 'old topic, new topic'
+ expect { expect(project.save).to be true }.to change { Projects::Topic.count }.by(1)
+
+ topics = project.reset.topics
+ expect(topics.map(&:name)).to match_array(['old topic', 'new topic'])
+
+ old_topic = topics.first
+ new_topic = topics.last
+
+ expect(old_topic.slug).to be_nil
+ expect(new_topic.slug).to eq('newtopic')
+ end
end
context 'public topics counter' do
@@ -8970,6 +8990,30 @@ RSpec.describe Project, factory_default: :keep, feature_category: :groups_and_pr
end
end
+ describe '#allows_multiple_merge_request_assignees?' do
+ let(:project) { build_stubbed(:project) }
+
+ subject(:allows_multiple_merge_request_assignees?) { project.allows_multiple_merge_request_assignees? }
+
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#allows_multiple_merge_request_reviewers?' do
+ let(:project) { build_stubbed(:project) }
+
+ subject(:allows_multiple_merge_request_reviewers?) { project.allows_multiple_merge_request_reviewers? }
+
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#on_demand_dast_available?' do
+ let_it_be(:project) { create(:project) }
+
+ subject(:on_demand_dast_available?) { project.on_demand_dast_available? }
+
+ it { is_expected.to be_falsy }
+ end
+
private
def finish_job(export_job)
diff --git a/spec/models/project_statistics_spec.rb b/spec/models/project_statistics_spec.rb
index 211ac257c53..d21d29aa469 100644
--- a/spec/models/project_statistics_spec.rb
+++ b/spec/models/project_statistics_spec.rb
@@ -647,4 +647,22 @@ RSpec.describe ProjectStatistics do
end
end
end
+
+ describe '#export_size' do
+ it 'does not include artifacts & packages size' do
+ statistics.update!(
+ repository_size: 3.gigabytes,
+ wiki_size: 3.gigabytes,
+ lfs_objects_size: 3.gigabytes,
+ build_artifacts_size: 3.gigabytes,
+ packages_size: 3.gigabytes,
+ snippets_size: 3.gigabytes,
+ uploads_size: 3.gigabytes
+ )
+
+ statistics.refresh_storage_size!
+
+ expect(statistics.reload.export_size).to eq(15.gigabytes)
+ end
+ end
end
diff --git a/spec/models/project_team_spec.rb b/spec/models/project_team_spec.rb
index 10a2e967b14..cd721b9f163 100644
--- a/spec/models/project_team_spec.rb
+++ b/spec/models/project_team_spec.rb
@@ -341,22 +341,60 @@ RSpec.describe ProjectTeam, feature_category: :groups_and_projects do
end
end
+ describe '#has_user?' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:project) { create(:project, namespace: group) }
+ let_it_be(:user) { create(:user) }
+ let_it_be(:user2) { create(:user) }
+ let_it_be(:invited_project_member) { create(:project_member, :owner, :invited, project: project) }
+
+ subject { project.team.has_user?(user) }
+
+ context 'when the user is a member' do
+ before_all do
+ project.add_developer(user)
+ end
+
+ it { is_expected.to be_truthy }
+ it { expect(group.has_user?(user2)).to be_falsey }
+ end
+
+ context 'when user is a member with minimal access' do
+ before_all do
+ project.add_member(user, GroupMember::MINIMAL_ACCESS)
+ end
+
+ it { is_expected.to be_falsey }
+ end
+
+ context 'when user is not a direct member of the project' do
+ before_all do
+ create(:group_member, :developer, user: user, source: group)
+ end
+
+ it { is_expected.to be_falsey }
+ end
+
+ context 'when the user is an invited member' do
+ it 'returns false when nil is passed' do
+ expect(invited_project_member.user).to eq(nil)
+ expect(project.team.has_user?(invited_project_member.user)).to be_falsey
+ end
+ end
+ end
+
describe "#human_max_access" do
- it 'returns Maintainer role' do
- user = create(:user)
- group = create(:group)
- project = create(:project, namespace: group)
+ let_it_be(:user) { create(:user) }
+ let_it_be(:group) { create(:group) }
+ let_it_be(:project) { create(:project, namespace: group) }
+ it 'returns Maintainer role' do
group.add_maintainer(user)
expect(project.team.human_max_access(user.id)).to eq 'Maintainer'
end
it 'returns Owner role' do
- user = create(:user)
- group = create(:group)
- project = create(:project, namespace: group)
-
group.add_owner(user)
expect(project.team.human_max_access(user.id)).to eq 'Owner'
diff --git a/spec/models/projects/project_topic_spec.rb b/spec/models/projects/project_topic_spec.rb
index c7a989040c7..634c391a25a 100644
--- a/spec/models/projects/project_topic_spec.rb
+++ b/spec/models/projects/project_topic_spec.rb
@@ -12,5 +12,6 @@ RSpec.describe Projects::ProjectTopic do
describe 'associations' do
it { is_expected.to belong_to(:project) }
it { is_expected.to belong_to(:topic) }
+ it { is_expected.to validate_uniqueness_of(:topic_id).scoped_to(:project_id) }
end
end
diff --git a/spec/models/projects/topic_spec.rb b/spec/models/projects/topic_spec.rb
index ebe53f3761d..e322fbbbcc3 100644
--- a/spec/models/projects/topic_spec.rb
+++ b/spec/models/projects/topic_spec.rb
@@ -32,6 +32,21 @@ RSpec.describe Projects::Topic do
it { is_expected.not_to allow_value("new\nline").for(:name).with_message(name_format_message) }
it { is_expected.not_to allow_value("new\rline").for(:name).with_message(name_format_message) }
it { is_expected.not_to allow_value("new\vline").for(:name).with_message(name_format_message) }
+
+ context 'for slug' do
+ let(:slug_format_message) { "can contain only letters, digits, '_', '-', '.'" }
+
+ it { is_expected.to validate_length_of(:slug).is_at_most(255) }
+ it { is_expected.to validate_uniqueness_of(:slug).case_insensitive }
+
+ it { is_expected.not_to allow_value("new\nline").for(:slug).with_message(slug_format_message) }
+ it { is_expected.not_to allow_value("space value").for(:slug).with_message(slug_format_message) }
+ it { is_expected.not_to allow_value("$special_symbol_value").for(:slug).with_message(slug_format_message) }
+
+ it { is_expected.to allow_value("underscored_value").for(:slug) }
+ it { is_expected.to allow_value("hypened-value").for(:slug) }
+ it { is_expected.to allow_value("dotted.value").for(:slug) }
+ end
end
describe 'scopes' do
diff --git a/spec/models/release_spec.rb b/spec/models/release_spec.rb
index bff9f73e44a..4a4cb1ae46a 100644
--- a/spec/models/release_spec.rb
+++ b/spec/models/release_spec.rb
@@ -156,6 +156,7 @@ RSpec.describe Release, feature_category: :release_orchestration do
describe 'latest releases' do
let_it_be(:yesterday) { Time.zone.now - 1.day }
+ let_it_be(:today) { Time.zone.now }
let_it_be(:tomorrow) { Time.zone.now + 1.day }
let_it_be(:project2) { create(:project) }
@@ -176,6 +177,14 @@ RSpec.describe Release, feature_category: :release_orchestration do
create(:release, project: project2, released_at: tomorrow, created_at: yesterday)
end
+ let_it_be(:project2_release3) do
+ create(:release, project: project2, released_at: today, created_at: yesterday)
+ end
+
+ let_it_be(:project2_release4) do
+ create(:release, project: project2, released_at: today, created_at: yesterday, release_published_at: today)
+ end
+
let(:args) { {} }
describe '.latest' do
@@ -240,6 +249,16 @@ RSpec.describe Release, feature_category: :release_orchestration do
end
end
end
+
+ describe '.waiting_for_publish_event' do
+ let(:releases) { [project2_release3] }
+
+ subject(:waiting) { described_class.waiting_for_publish_event }
+
+ it "find today's releases not yet published" do
+ expect(waiting).to match_array(releases)
+ end
+ end
end
describe '#assets_count' do
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index eeb0bbb8e7d..ca2ee447b4c 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -661,7 +661,7 @@ RSpec.describe Repository, feature_category: :source_code_management do
describe '#blob_at' do
context 'blank sha' do
- subject { repository.blob_at(Gitlab::Git::BLANK_SHA, '.gitignore') }
+ subject { repository.blob_at(Gitlab::Git::SHA1_BLANK_SHA, '.gitignore') }
it { is_expected.to be_nil }
end
@@ -3226,8 +3226,8 @@ RSpec.describe Repository, feature_category: :source_code_management do
end
it 'returns false for invalid commit IDs' do
- expect(repository.ancestor?(commit.id, Gitlab::Git::BLANK_SHA)).to eq(false)
- expect(repository.ancestor?(Gitlab::Git::BLANK_SHA, commit.id)).to eq(false)
+ expect(repository.ancestor?(commit.id, Gitlab::Git::SHA1_BLANK_SHA)).to eq(false)
+ expect(repository.ancestor?(Gitlab::Git::SHA1_BLANK_SHA, commit.id)).to eq(false)
end
end
diff --git a/spec/models/resource_label_event_spec.rb b/spec/models/resource_label_event_spec.rb
index 8cc89578e0e..27a39672994 100644
--- a/spec/models/resource_label_event_spec.rb
+++ b/spec/models/resource_label_event_spec.rb
@@ -3,12 +3,13 @@
require 'spec_helper'
RSpec.describe ResourceLabelEvent, feature_category: :team_planning, type: :model do
- let_it_be(:project) { create(:project, :repository) }
+ let_it_be(:group) { create(:group) }
+ let_it_be(:project) { create(:project, :repository, group: group) }
let_it_be(:issue) { create(:issue, project: project) }
let_it_be(:merge_request) { create(:merge_request, source_project: project) }
let_it_be(:label) { create(:label, project: project) }
- subject { build(:resource_label_event, issue: issue, label: label) }
+ subject(:resource_label_event) { build(:resource_label_event, issue: issue, label: label) }
it_behaves_like 'having unique enum values'
@@ -95,6 +96,63 @@ RSpec.describe ResourceLabelEvent, feature_category: :team_planning, type: :mode
end
end
+ describe '#reference_html' do
+ subject { Nokogiri::HTML.fragment(label_event.reference_html).css('a').first.attr('href') }
+
+ before do
+ label_event.refresh_invalid_reference
+ end
+
+ context 'when resource event belongs to a group level issue' do
+ let(:group_label) { create(:group_label, group: group) }
+ let(:label_event) do
+ group_issue = create(:issue, :group_level, namespace: group)
+
+ create(:resource_label_event, issue: group_issue, label: group_label)
+ end
+
+ it { is_expected.to eq(Gitlab::Routing.url_helpers.group_work_items_path(group, label_name: group_label.title)) }
+ end
+
+ context 'when resource event belongs to a project level issue' do
+ let(:label_event) { resource_label_event }
+
+ it { is_expected.to eq(Gitlab::Routing.url_helpers.project_issues_path(project, label_name: label.title)) }
+ end
+
+ context 'when resource event belongs to a merge request' do
+ let(:label_event) { create(:resource_label_event, merge_request: merge_request, label: label) }
+
+ it do
+ is_expected.to eq(Gitlab::Routing.url_helpers.project_merge_requests_path(project, label_name: label.title))
+ end
+ end
+ end
+
+ describe '#group' do
+ subject { build_stubbed(:resource_label_event, **issuable_attributes).group }
+
+ context 'when issuable is a merge request' do
+ let(:issuable_attributes) { { merge_request: merge_request } }
+
+ it { is_expected.to be_nil }
+ end
+
+ context 'when issuable is an issue' do
+ context 'when issue exists at the project level' do
+ let(:issuable_attributes) { { issue: issue } }
+
+ it { is_expected.to be_nil }
+ end
+
+ context 'when issue exists at the group level' do
+ let(:issuable_attributes) { { issue: build_stubbed(:issue, :group_level, namespace: group) } }
+
+ it { is_expected.to eq(group) }
+ end
+ end
+ end
+
describe '.visible_to_user?' do
let_it_be(:user) { create(:user) }
let_it_be(:issue_project) { create(:project) }
diff --git a/spec/models/route_spec.rb b/spec/models/route_spec.rb
index 7cada013636..8a791a19dec 100644
--- a/spec/models/route_spec.rb
+++ b/spec/models/route_spec.rb
@@ -74,7 +74,7 @@ RSpec.describe Route do
let!(:another_group) { create(:group, path: 'gittlab', name: 'gitllab') }
let!(:another_group_nested) { create(:group, path: 'git_lab', name: 'git_lab', parent: another_group) }
- context 'path update' do
+ shared_examples_for 'path update' do
context 'when route name is set' do
before do
route.update!(path: 'bar')
@@ -116,7 +116,7 @@ RSpec.describe Route do
end
end
- context 'name update' do
+ shared_examples_for 'name update' do
it 'updates children routes with new path' do
route.update!(name: 'bar')
@@ -134,6 +134,18 @@ RSpec.describe Route do
.to change { route.name }.from(nil).to('bar')
end
end
+
+ it_behaves_like 'path update'
+ it_behaves_like 'name update'
+
+ context 'when the feature flag `batch_route_updates` if turned off' do
+ before do
+ stub_feature_flags(batch_route_updates: false)
+ end
+
+ it_behaves_like 'path update'
+ it_behaves_like 'name update'
+ end
end
describe '#create_redirect_for_old_path' do
diff --git a/spec/models/time_tracking/timelog_category_spec.rb b/spec/models/time_tracking/timelog_category_spec.rb
index ac2fb651134..d07ba29091c 100644
--- a/spec/models/time_tracking/timelog_category_spec.rb
+++ b/spec/models/time_tracking/timelog_category_spec.rb
@@ -2,9 +2,10 @@
require 'spec_helper'
-RSpec.describe TimeTracking::TimelogCategory, type: :model do
+RSpec.describe TimeTracking::TimelogCategory, feature_category: :team_planning do
describe 'associations' do
it { is_expected.to belong_to(:namespace).with_foreign_key('namespace_id') }
+ it { is_expected.to have_many(:timelogs) }
end
describe 'default values' do
diff --git a/spec/models/timelog_spec.rb b/spec/models/timelog_spec.rb
index aee2c4ded19..dc87aea0cb4 100644
--- a/spec/models/timelog_spec.rb
+++ b/spec/models/timelog_spec.rb
@@ -11,6 +11,7 @@ RSpec.describe Timelog, feature_category: :team_planning do
it { is_expected.to belong_to(:project) }
it { is_expected.to belong_to(:issue).touch(true) }
it { is_expected.to belong_to(:merge_request).touch(true) }
+ it { is_expected.to belong_to(:timelog_category).optional(true) }
it { is_expected.to be_valid }
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index cc0ea69401e..7014c9e685f 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -187,7 +187,6 @@ RSpec.describe User, feature_category: :user_profile do
it { is_expected.to have_many(:merge_request_assignees).inverse_of(:assignee) }
it { is_expected.to have_many(:merge_request_reviewers).inverse_of(:reviewer) }
it { is_expected.to have_many(:created_custom_emoji).inverse_of(:creator) }
- it { is_expected.to have_many(:in_product_marketing_emails) }
it { is_expected.to have_many(:timelogs) }
it { is_expected.to have_many(:callouts).class_name('Users::Callout') }
it { is_expected.to have_many(:group_callouts).class_name('Users::GroupCallout') }
@@ -223,6 +222,17 @@ RSpec.describe User, feature_category: :user_profile do
is_expected.to have_many(:alert_assignees).class_name('::AlertManagement::AlertAssignee').inverse_of(:assignee)
end
+ describe 'organizations association' do
+ it 'does not create a cross-database query' do
+ user = create(:user)
+ create(:organization_user, user: user)
+
+ with_cross_joins_prevented do
+ expect(user.organizations.count).to eq(1)
+ end
+ end
+ end
+
describe 'default values' do
let(:user) { described_class.new }
@@ -616,38 +626,33 @@ RSpec.describe User, feature_category: :user_profile do
end
end
- describe 'username' do
+ shared_examples 'username validations' do
it 'validates presence' do
expect(subject).to validate_presence_of(:username)
end
- it 'rejects denied names' do
- user = build(:user, username: 'dashboard')
-
- expect(user).not_to be_valid
- expect(user.errors.messages[:username]).to eq ['dashboard is a reserved name']
- end
-
- it 'allows child names' do
- user = build(:user, username: 'avatar')
+ context 'when username is reserved' do
+ let(:username) { 'dashboard' }
- expect(user).to be_valid
+ it 'rejects denied names' do
+ expect(user).not_to be_valid
+ expect(user.errors.messages[:username]).to eq ['dashboard is a reserved name']
+ end
end
- it 'allows wildcard names' do
- user = build(:user, username: 'blob')
+ context 'when username is a child' do
+ let(:username) { 'avatar' }
- expect(user).to be_valid
+ it 'allows child names' do
+ expect(user).to be_valid
+ end
end
- context 'when username is changed' do
- let(:user) { build_stubbed(:user, username: 'old_path', namespace: build_stubbed(:user_namespace)) }
+ context 'when username is a wildcard' do
+ let(:username) { 'blob' }
- it 'validates move_dir is allowed for the namespace' do
- expect(user.namespace).to receive(:any_project_has_container_registry_tags?).and_return(true)
- user.username = 'new_path'
- expect(user).to be_invalid
- expect(user.errors.messages[:username].first).to eq(_('cannot be changed if a personal project has container registry tags.'))
+ it 'allows wildcard names' do
+ expect(user).to be_valid
end
end
@@ -656,25 +661,59 @@ RSpec.describe User, feature_category: :user_profile do
let!(:other_user) { create(:user, username: username) }
it 'is invalid' do
- user = build(:user, username: username)
-
expect(user).not_to be_valid
expect(user.errors.full_messages).to eq(['Username has already been taken'])
end
end
- it 'validates format' do
- Mime::EXTENSION_LOOKUP.keys.each do |type|
- user = build(:user, username: "test.#{type}")
+ Mime::EXTENSION_LOOKUP.keys.each do |type|
+ context 'with extension format' do
+ let(:username) { "test.#{type}" }
- expect(user).not_to be_valid
- expect(user.errors.full_messages).to include('Username ending with a reserved file extension is not allowed.')
- expect(build(:user, username: "test#{type}")).to be_valid
+ it do
+ expect(user).not_to be_valid
+ expect(user.errors.full_messages).to include('Username ending with a reserved file extension is not allowed.')
+ end
+ end
+
+ context 'when suffixed by extension type' do
+ let(:username) { "test#{type}" }
+
+ it do
+ expect(user).to be_valid
+ end
end
end
+ end
+
+ context 'when creating user' do
+ let(:user) { build(:user, username: username) }
+
+ include_examples 'username validations'
+ end
+
+ context 'when updating user' do
+ let(:user) { create(:user) }
+
+ before do
+ user.username = username if defined?(username)
+ end
+
+ include_examples 'username validations'
+
+ context 'when personal project has container registry tags' do
+ let(:user) { build_stubbed(:user, username: 'old_path', namespace: build_stubbed(:user_namespace)) }
+
+ before do
+ expect(user.namespace).to receive(:any_project_has_container_registry_tags?).and_return(true)
+ end
- it 'validates format on updated record' do
- expect(create(:user).update(username: 'profile.html')).to be_falsey
+ it 'validates move_dir is allowed for the namespace' do
+ user.username = 'new_path'
+
+ expect(user).to be_invalid
+ expect(user.errors.messages[:username].first).to eq(_('cannot be changed if a personal project has container registry tags.'))
+ end
end
end
@@ -1434,6 +1473,20 @@ RSpec.describe User, feature_category: :user_profile do
end
end
+ describe '.ordered_by_id_desc' do
+ let_it_be(:first_user) { create(:user) }
+ let_it_be(:second_user) { create(:user) }
+
+ it 'generates the order SQL in descending order' do
+ expect(described_class.ordered_by_id_desc.to_sql).to include(
+ 'ORDER BY "users"."id" DESC')
+ end
+
+ it 'sorts users correctly' do
+ expect(described_class.ordered_by_id_desc).to eq([second_user, first_user])
+ end
+ end
+
describe '.trusted' do
let_it_be(:trusted_user1) { create(:user, :trusted) }
let_it_be(:trusted_user2) { create(:user, :trusted) }
@@ -3368,6 +3421,27 @@ RSpec.describe User, feature_category: :user_profile do
end
end
+ describe '.gfm_autocomplete_search' do
+ let_it_be(:user_1) { create(:user, username: 'someuser', name: 'John Doe') }
+ let_it_be(:user_2) { create(:user, username: 'userthomas', name: 'Thomas Person') }
+
+ it 'returns partial matches on username' do
+ expect(described_class.gfm_autocomplete_search('some')).to eq([user_1])
+ end
+
+ it 'returns matches on name across multiple words' do
+ expect(described_class.gfm_autocomplete_search('johnd')).to eq([user_1])
+ end
+
+ it 'prioritizes sorting of matches that start with the query' do
+ expect(described_class.gfm_autocomplete_search('user')).to eq([user_2, user_1])
+ end
+
+ it 'falls back to sorting by username' do
+ expect(described_class.gfm_autocomplete_search('ser')).to eq([user_1, user_2])
+ end
+ end
+
describe '.user_search_minimum_char_limit' do
it 'returns true' do
expect(described_class.user_search_minimum_char_limit).to be(true)
@@ -3624,6 +3698,66 @@ RSpec.describe User, feature_category: :user_profile do
end
end
+ describe '#can_create_project?' do
+ let(:user) { create(:user) }
+
+ context "when projects_limit_left is 0" do
+ before do
+ allow(user).to receive(:projects_limit_left).and_return(0)
+ end
+
+ it "returns false" do
+ expect(user.can_create_project?).to be_falsey
+ end
+ end
+
+ context "when projects_limit_left is > 0" do
+ before do
+ allow(user).to receive(:projects_limit_left).and_return(1)
+ end
+
+ context "with allow_project_creation_for_guest_and_below default value of true" do
+ it "returns true" do
+ expect(user.can_create_project?).to be_truthy
+ end
+ end
+
+ context "when Gitlab::CurrentSettings.allow_project_creation_for_guest_and_below is false" do
+ before do
+ stub_application_setting(allow_project_creation_for_guest_and_below: false)
+ end
+
+ [
+ Gitlab::Access::NO_ACCESS,
+ Gitlab::Access::MINIMAL_ACCESS,
+ Gitlab::Access::GUEST
+ ].each do |role|
+ context "when users highest role is #{role}" do
+ it "returns false" do
+ allow(user).to receive(:highest_role).and_return(role)
+ expect(user.can_create_project?).to be_falsey
+ end
+ end
+ end
+
+ [
+ Gitlab::Access::REPORTER,
+ Gitlab::Access::DEVELOPER,
+ Gitlab::Access::MAINTAINER,
+ Gitlab::Access::OWNER,
+ Gitlab::Access::ADMIN
+ ].each do |role|
+ context "when users highest role is #{role}" do
+ it "returns true" do
+ allow(user).to receive(:highest_role).and_return(role)
+ expect(user.can_create_project?).to be_truthy
+ end
+ end
+ end
+ end
+ end
+ end
+
describe '#all_emails' do
let(:user) { create(:user) }
let!(:unconfirmed_secondary_email) { create(:email, user: user) }
@@ -4468,13 +4602,13 @@ RSpec.describe User, feature_category: :user_profile do
it 'avoids N+1 queries' do
fresh_user = described_class.find(user.id)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
fresh_user.solo_owned_groups
- end.count
+ end
create(:group).add_owner(user)
- expect { solo_owned_groups }.not_to exceed_query_limit(control_count)
+ expect { solo_owned_groups }.not_to exceed_query_limit(control)
end
end
end
@@ -5693,27 +5827,6 @@ RSpec.describe User, feature_category: :user_profile do
expect(user.namespace).to be_nil
end
-
- context 'when create_personal_ns_outside_model feature flag is disabled' do
- before do
- stub_feature_flags(create_personal_ns_outside_model: false)
- end
-
- it 'creates the namespace' do
- expect(user.namespace).to be_nil
-
- user.save!
-
- expect(user.namespace).to be_present
- expect(user.namespace).to be_kind_of(Namespaces::UserNamespace)
- end
-
- it 'creates the namespace setting' do
- user.save!
-
- expect(user.namespace.namespace_settings).to be_persisted
- end
- end
end
context 'for an existing user' do
diff --git a/spec/models/users/in_product_marketing_email_spec.rb b/spec/models/users/in_product_marketing_email_spec.rb
deleted file mode 100644
index b1642383e42..00000000000
--- a/spec/models/users/in_product_marketing_email_spec.rb
+++ /dev/null
@@ -1,137 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Users::InProductMarketingEmail, type: :model, feature_category: :onboarding do
- let(:track) { :create }
- let(:series) { 0 }
-
- describe 'associations' do
- it { is_expected.to belong_to(:user) }
- end
-
- describe 'validations' do
- subject { build(:in_product_marketing_email) }
-
- it { is_expected.to validate_presence_of(:user) }
-
- context 'when track+series email' do
- it { is_expected.to validate_presence_of(:track) }
- it { is_expected.to validate_presence_of(:series) }
-
- it {
- is_expected.to validate_uniqueness_of(:user_id)
- .scoped_to([:track, :series]).with_message('track series email has already been sent')
- }
- end
- end
-
- describe '.without_track_and_series' do
- let_it_be(:user) { create(:user) }
-
- subject(:without_track_and_series) { User.merge(described_class.without_track_and_series(track, series)) }
-
- before do
- create(:in_product_marketing_email, track: :create, series: 0, user: user)
- create(:in_product_marketing_email, track: :create, series: 1, user: user)
- create(:in_product_marketing_email, track: :verify, series: 0, user: user)
- end
-
- context 'when given track and series already exists' do
- it { expect(without_track_and_series).to be_empty }
- end
-
- context 'when track does not exist' do
- let(:track) { :trial }
-
- it { expect(without_track_and_series).to eq [user] }
- end
-
- context 'when series does not exist' do
- let(:series) { 2 }
-
- it { expect(without_track_and_series).to eq [user] }
- end
-
- context 'when no track or series for a user exists' do
- let(:track) { :create }
- let(:series) { 0 }
- let(:other_user) { create(:user) }
-
- it { expect(without_track_and_series).to eq [other_user] }
- end
- end
-
- describe '.for_user_with_track_and_series' do
- let_it_be(:user) { create(:user) }
- let_it_be(:in_product_marketing_email) { create(:in_product_marketing_email, series: 0, track: 0, user: user) }
-
- subject(:for_user_with_track_and_series) do
- described_class.for_user_with_track_and_series(user, track, series).first
- end
-
- context 'when record for user with given track and series exists' do
- it { is_expected.to eq(in_product_marketing_email) }
- end
-
- context 'when user is different' do
- let(:user) { build_stubbed(:user) }
-
- it { is_expected.to be_nil }
- end
-
- context 'when track is different' do
- let(:track) { 1 }
-
- it { is_expected.to be_nil }
- end
-
- context 'when series is different' do
- let(:series) { 1 }
-
- it { is_expected.to be_nil }
- end
- end
-
- describe '.save_cta_click' do
- let(:user) { create(:user) }
-
- subject(:save_cta_click) { described_class.save_cta_click(user, track, series) }
-
- context 'when there is no record' do
- it 'does not error' do
- expect { save_cta_click }.not_to raise_error
- end
- end
-
- context 'when there is no record for the track and series' do
- it 'does not perform an update' do
- other_email = create(:in_product_marketing_email, user: user, track: :verify, series: 2, cta_clicked_at: nil)
-
- expect { save_cta_click }.not_to change { other_email.reload }
- end
- end
-
- context 'when there is a record for the track and series' do
- it 'saves the cta click date' do
- email = create(:in_product_marketing_email, user: user, track: track, series: series, cta_clicked_at: nil)
-
- freeze_time do
- expect { save_cta_click }.to change { email.reload.cta_clicked_at }.from(nil).to(Time.zone.now)
- end
- end
-
- context 'when cta_clicked_at is already set' do
- it 'does not update' do
- create(:in_product_marketing_email, user: user, track: track, series: series, cta_clicked_at: Time.zone.now)
-
- expect_next_found_instance_of(described_class) do |record|
- expect(record).not_to receive(:update)
- end
-
- save_cta_click
- end
- end
- end
- end
-end
diff --git a/spec/models/users/phone_number_validation_spec.rb b/spec/models/users/phone_number_validation_spec.rb
index 15bbb507dee..eb73fc31dac 100644
--- a/spec/models/users/phone_number_validation_spec.rb
+++ b/spec/models/users/phone_number_validation_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resiliency do
+ using RSpec::Parameterized::TableSyntax
+
let_it_be(:user) { create(:user) }
let_it_be(:banned_user) { create(:user, :banned) }
@@ -14,12 +16,12 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
it { is_expected.to validate_presence_of(:international_dial_code) }
- it {
+ it do
is_expected.to validate_numericality_of(:international_dial_code)
.only_integer
.is_greater_than_or_equal_to(1)
.is_less_than_or_equal_to(999)
- }
+ end
it { is_expected.to validate_presence_of(:phone_number) }
it { is_expected.to validate_length_of(:phone_number).is_at_most(12) }
@@ -30,6 +32,27 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
it { is_expected.to validate_length_of(:telesign_reference_xid).is_at_most(255) }
+ describe '#similar_records' do
+ let_it_be(:phone_number_validation) { create(:phone_number_validation, :validated) }
+
+ let_it_be(:phone_number) do
+ phone_number_validation.attributes.with_indifferent_access.slice(
+ :international_dial_code, :phone_number
+ )
+ end
+
+ let_it_be(:match) { create(:phone_number_validation, :validated, phone_number) }
+ let_it_be(:unvalidated_match) { create(:phone_number_validation, phone_number) }
+
+ let_it_be(:non_match_1) { create(:phone_number_validation, phone_number.merge(international_dial_code: 81)) }
+ let_it_be(:non_match_2) { create(:phone_number_validation, phone_number.merge(phone_number: '5555555555')) }
+
+ it 'returns matches with the same international dialing code and phone number' do
+ expect(phone_number_validation.similar_records).to match_array([unvalidated_match, match,
+ phone_number_validation])
+ end
+ end
+
describe '.related_to_banned_user?' do
let_it_be(:international_dial_code) { 1 }
let_it_be(:phone_number) { '555' }
@@ -41,7 +64,12 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
context 'when banned user has the same international dial code and phone number' do
context 'and the matching record has not been verified' do
before do
- create(:phone_number_validation, user: banned_user)
+ create(
+ :phone_number_validation,
+ user: banned_user,
+ international_dial_code: international_dial_code,
+ phone_number: phone_number
+ )
end
it { is_expected.to eq(false) }
@@ -49,7 +77,13 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
context 'and the matching record has been verified' do
before do
- create(:phone_number_validation, :validated, user: banned_user)
+ create(
+ :phone_number_validation,
+ :validated,
+ user: banned_user,
+ international_dial_code: international_dial_code,
+ phone_number: phone_number
+ )
end
it { is_expected.to eq(true) }
@@ -58,7 +92,14 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
context 'when banned user has the same international dial code and phone number, but different country code' do
before do
- create(:phone_number_validation, :validated, user: banned_user, country: 'CA')
+ create(
+ :phone_number_validation,
+ :validated,
+ user: banned_user,
+ international_dial_code: international_dial_code,
+ phone_number: phone_number,
+ country: 'CA'
+ )
end
it { is_expected.to eq(true) }
@@ -66,7 +107,13 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
context 'when banned user does not have the same international dial code' do
before do
- create(:phone_number_validation, :validated, user: banned_user, international_dial_code: 61)
+ create(
+ :phone_number_validation,
+ :validated,
+ user: banned_user,
+ international_dial_code: 81,
+ phone_number: phone_number
+ )
end
it { is_expected.to eq(false) }
@@ -74,7 +121,13 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
context 'when banned user does not have the same phone number' do
before do
- create(:phone_number_validation, :validated, user: banned_user, phone_number: '666')
+ create(
+ :phone_number_validation,
+ :validated,
+ user: banned_user,
+ international_dial_code: international_dial_code,
+ phone_number: '666'
+ )
end
it { is_expected.to eq(false) }
@@ -82,7 +135,13 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
context 'when not-banned user has the same international dial code and phone number' do
before do
- create(:phone_number_validation, :validated, user: user)
+ create(
+ :phone_number_validation,
+ :validated,
+ user: user,
+ international_dial_code: international_dial_code,
+ phone_number: phone_number
+ )
end
it { is_expected.to eq(false) }
@@ -105,6 +164,57 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
end
end
end
+
+ describe '.similar_to' do
+ subject(:similar_to) { described_class.similar_to(phone_number_validation) }
+
+ let_it_be(:international_dial_code) { 44 }
+ let_it_be(:phone_number) { '111' }
+
+ let_it_be(:phone_number_validation) do
+ create(:phone_number_validation,
+ :validated,
+ international_dial_code: international_dial_code,
+ phone_number: phone_number
+ )
+ end
+
+ let_it_be(:match) do
+ create(:phone_number_validation,
+ :validated,
+ international_dial_code: phone_number_validation.international_dial_code,
+ phone_number: phone_number_validation.phone_number
+ )
+ end
+
+ let_it_be(:non_match_1) do
+ create(:phone_number_validation,
+ :validated,
+ international_dial_code: phone_number_validation.international_dial_code,
+ phone_number: '222'
+ )
+ end
+
+ let_it_be(:non_match_2) do
+ create(:phone_number_validation,
+ :validated,
+ international_dial_code: 81,
+ phone_number: phone_number_validation.phone_number
+ )
+ end
+
+ let_it_be(:non_match_3) do
+ create(:phone_number_validation,
+ :validated,
+ international_dial_code: 82,
+ phone_number: '333'
+ )
+ end
+
+ it 'returns only records with the same international dialing code and phone number' do
+ expect(similar_to).to match_array([phone_number_validation, match])
+ end
+ end
end
describe '#validated?' do
@@ -142,4 +252,43 @@ RSpec.describe Users::PhoneNumberValidation, feature_category: :instance_resilie
it { is_expected.to be_nil }
end
end
+
+ describe '.sms_send_allowed_after' do
+ let_it_be(:record) { create(:phone_number_validation, sms_send_count: 0) }
+
+ subject(:result) { record.sms_send_allowed_after }
+
+ context 'when there are no attempts yet' do
+ it { is_expected.to be_nil }
+ end
+
+ context 'when sms_send_wait_time feature flag is disabled' do
+ let_it_be(:record) { create(:phone_number_validation, sms_send_count: 1) }
+
+ before do
+ stub_feature_flags(sms_send_wait_time: false)
+ end
+
+ it { is_expected.to be_nil }
+ end
+
+ where(:attempt_number, :expected_delay) do
+ 2 | 1.minute
+ 3 | 3.minutes
+ 4 | 5.minutes
+ 5 | 10.minutes
+ 6 | 10.minutes
+ end
+
+ with_them do
+ it 'returns the correct delayed timestamp value' do
+ freeze_time do
+ record.update!(sms_send_count: attempt_number - 1, sms_sent_at: Time.current)
+
+ expected_result = Time.current + expected_delay
+ expect(result).to eq expected_result
+ end
+ end
+ end
+ end
end
diff --git a/spec/models/work_items/hierarchy_restriction_spec.rb b/spec/models/work_items/hierarchy_restriction_spec.rb
index 2c4d5d32fb8..890c007b6cd 100644
--- a/spec/models/work_items/hierarchy_restriction_spec.rb
+++ b/spec/models/work_items/hierarchy_restriction_spec.rb
@@ -15,4 +15,24 @@ RSpec.describe WorkItems::HierarchyRestriction do
it { is_expected.to validate_presence_of(:child_type) }
it { is_expected.to validate_uniqueness_of(:child_type).scoped_to(:parent_type_id) }
end
+
+ describe '#clear_parent_type_cache!' do
+ subject(:hierarchy_restriction) { build(:hierarchy_restriction) }
+
+ context 'when a hierarchy restriction is saved' do
+ it 'calls #clear_reactive_cache! on parent type' do
+ expect(hierarchy_restriction.parent_type).to receive(:clear_reactive_cache!).once
+
+ hierarchy_restriction.save!
+ end
+ end
+
+ context 'when a hierarchy restriction is destroyed' do
+ it 'calls #clear_reactive_cache! on parent type' do
+ expect(hierarchy_restriction.parent_type).to receive(:clear_reactive_cache!).once
+
+ hierarchy_restriction.destroy!
+ end
+ end
+ end
end
diff --git a/spec/models/work_items/widget_definition_spec.rb b/spec/models/work_items/widget_definition_spec.rb
index da772eec39c..1540ee57ff4 100644
--- a/spec/models/work_items/widget_definition_spec.rb
+++ b/spec/models/work_items/widget_definition_spec.rb
@@ -26,7 +26,9 @@ RSpec.describe WorkItems::WidgetDefinition, feature_category: :team_planning do
::WorkItems::Widgets::HealthStatus,
::WorkItems::Widgets::Progress,
::WorkItems::Widgets::RequirementLegacy,
- ::WorkItems::Widgets::TestReports
+ ::WorkItems::Widgets::TestReports,
+ ::WorkItems::Widgets::Color,
+ ::WorkItems::Widgets::RolledupDates
]
end
diff --git a/spec/policies/global_policy_spec.rb b/spec/policies/global_policy_spec.rb
index 1d58b941d41..db8249252fa 100644
--- a/spec/policies/global_policy_spec.rb
+++ b/spec/policies/global_policy_spec.rb
@@ -90,6 +90,22 @@ RSpec.describe GlobalPolicy, feature_category: :shared do
let(:current_user) { create(:user, can_create_group: true) }
it { is_expected.to be_allowed(:create_group) }
+
+ context 'when can_create_group_and_projects returns true' do
+ before do
+ allow(current_user).to receive(:allow_user_to_create_group_and_project?).and_return(true)
+ end
+
+ it { is_expected.to be_allowed(:create_group) }
+ end
+
+ context 'when can_create_group_and_projects returns false' do
+ before do
+ allow(current_user).to receive(:allow_user_to_create_group_and_project?).and_return(false)
+ end
+
+ it { is_expected.to be_disallowed(:create_group) }
+ end
end
context 'when user does not have the ability to create group' do
diff --git a/spec/policies/organizations/organization_policy_spec.rb b/spec/policies/organizations/organization_policy_spec.rb
index 7eed497d644..9660ed578f7 100644
--- a/spec/policies/organizations/organization_policy_spec.rb
+++ b/spec/policies/organizations/organization_policy_spec.rb
@@ -20,6 +20,7 @@ RSpec.describe Organizations::OrganizationPolicy, feature_category: :cell do
context 'when admin mode is enabled', :enable_admin_mode do
it { is_expected.to be_allowed(:admin_organization) }
+ it { is_expected.to be_allowed(:create_group) }
it { is_expected.to be_allowed(:read_organization) }
it { is_expected.to be_allowed(:read_organization_user) }
end
@@ -31,17 +32,30 @@ RSpec.describe Organizations::OrganizationPolicy, feature_category: :cell do
end
context 'when the user is part of the organization' do
- before do
- create :organization_user, organization: organization, user: current_user
+ before_all do
+ create(:organization_user, organization: organization, user: current_user)
+ end
+
+ it { is_expected.to be_disallowed(:admin_organization) }
+ it { is_expected.to be_allowed(:create_group) }
+ it { is_expected.to be_allowed(:read_organization) }
+ it { is_expected.to be_allowed(:read_organization_user) }
+ end
+
+ context 'when the user is an owner of the organization' do
+ before_all do
+ create(:organization_user, :owner, organization: organization, user: current_user)
end
it { is_expected.to be_allowed(:admin_organization) }
+ it { is_expected.to be_allowed(:create_group) }
it { is_expected.to be_allowed(:read_organization) }
it { is_expected.to be_allowed(:read_organization_user) }
end
context 'when the user is not part of the organization' do
it { is_expected.to be_disallowed(:admin_organization) }
+ it { is_expected.to be_disallowed(:create_group) }
it { is_expected.to be_disallowed(:read_organization_user) }
# All organizations are currently public, and hence they are allowed to be read
# even if the user is not a part of the organization.
diff --git a/spec/policies/project_policy_spec.rb b/spec/policies/project_policy_spec.rb
index a9a4575d747..9f4bf4f6b36 100644
--- a/spec/policies/project_policy_spec.rb
+++ b/spec/policies/project_policy_spec.rb
@@ -472,12 +472,12 @@ RSpec.describe ProjectPolicy, feature_category: :system_access do
end
end
- context 'reading usage quotas' do
+ context 'reading usage quotas and viewing the edit page' do
%w[maintainer owner].each do |role|
context "with #{role}" do
let(:current_user) { send(role) }
- it { is_expected.to be_allowed(:read_usage_quotas) }
+ it { is_expected.to be_allowed(:read_usage_quotas, :view_edit_page) }
end
end
@@ -485,7 +485,7 @@ RSpec.describe ProjectPolicy, feature_category: :system_access do
context "with #{role}" do
let(:current_user) { send(role) }
- it { is_expected.to be_disallowed(:read_usage_quotas) }
+ it { is_expected.to be_disallowed(:read_usage_quotas, :view_edit_page) }
end
end
@@ -493,11 +493,11 @@ RSpec.describe ProjectPolicy, feature_category: :system_access do
let(:current_user) { admin }
context 'when admin mode is enabled', :enable_admin_mode do
- it { expect_allowed(:read_usage_quotas) }
+ it { expect_allowed(:read_usage_quotas, :view_edit_page) }
end
context 'when admin mode is disabled' do
- it { expect_disallowed(:read_usage_quotas) }
+ it { expect_disallowed(:read_usage_quotas, :view_edit_page) }
end
end
end
diff --git a/spec/presenters/blob_presenter_spec.rb b/spec/presenters/blob_presenter_spec.rb
index eed39c7a404..958bf222e2a 100644
--- a/spec/presenters/blob_presenter_spec.rb
+++ b/spec/presenters/blob_presenter_spec.rb
@@ -312,13 +312,13 @@ RSpec.describe BlobPresenter do
let(:git_blob) { blob.__getobj__ }
it 'returns highlighted content' do
- expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'ruby')
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'ruby', used_on: :blob)
presenter.highlight
end
it 'returns plain content when :plain is true' do
- expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: true, language: 'ruby')
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: true, language: 'ruby', used_on: :blob)
presenter.highlight(plain: true)
end
@@ -331,7 +331,7 @@ RSpec.describe BlobPresenter do
end
it 'returns limited highlighted content' do
- expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', "line one\n", plain: nil, language: 'ruby')
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', "line one\n", plain: nil, language: 'ruby', used_on: :blob)
presenter.highlight(to: 1)
end
@@ -343,11 +343,19 @@ RSpec.describe BlobPresenter do
end
it 'passes language to inner call' do
- expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'ruby')
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'ruby', used_on: :blob)
presenter.highlight
end
end
+
+ context 'when used_on param is present' do
+ it 'returns highlighted content' do
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'ruby', used_on: :diff)
+
+ presenter.highlight(used_on: :diff)
+ end
+ end
end
describe '#highlight_and_trim' do
diff --git a/spec/presenters/blobs/notebook_presenter_spec.rb b/spec/presenters/blobs/notebook_presenter_spec.rb
index 2f05dc98fb9..4caecccf538 100644
--- a/spec/presenters/blobs/notebook_presenter_spec.rb
+++ b/spec/presenters/blobs/notebook_presenter_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe Blobs::NotebookPresenter do
subject(:presenter) { described_class.new(blob, current_user: user) }
it 'highlight receives markdown' do
- expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'md')
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'md', used_on: :blob)
presenter.highlight
end
diff --git a/spec/presenters/projects/security/configuration_presenter_spec.rb b/spec/presenters/projects/security/configuration_presenter_spec.rb
index fcd170dfd66..9f6efb08fb1 100644
--- a/spec/presenters/projects/security/configuration_presenter_spec.rb
+++ b/spec/presenters/projects/security/configuration_presenter_spec.rb
@@ -88,6 +88,7 @@ RSpec.describe Projects::Security::ConfigurationPresenter, feature_category: :so
expect(feature['can_enable_by_merge_request']).to eq(true)
expect(feature['meta_info_path']).to be_nil
expect(feature['on_demand_available']).to eq(false)
+ expect(feature['security_features']).not_to be_empty
end
context 'when checking features configured status' do
diff --git a/spec/requests/api/ci/jobs_spec.rb b/spec/requests/api/ci/jobs_spec.rb
index 382aabd45a1..9e1203bc720 100644
--- a/spec/requests/api/ci/jobs_spec.rb
+++ b/spec/requests/api/ci/jobs_spec.rb
@@ -70,6 +70,7 @@ RSpec.describe API::Ci::Jobs, feature_category: :continuous_integration do
expect(json_response['artifacts']).to be_an Array
expect(json_response['artifacts']).to be_empty
expect(json_response['web_url']).to be_present
+ expect(json_response['archived']).to eq(jobx.archived?)
end
end
@@ -132,12 +133,12 @@ RSpec.describe API::Ci::Jobs, feature_category: :continuous_integration do
end
it 'avoids N+1 queries', :skip_before_request do
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
running_job = create(:ci_build, :running, project: project, user: user, pipeline: pipeline, artifacts_expire_at: 1.day.since)
running_job.save!
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
it_behaves_like 'returns common pipeline data' do
@@ -431,7 +432,7 @@ RSpec.describe API::Ci::Jobs, feature_category: :continuous_integration do
first_build.user = create(:user)
first_build.save!
- control_count = ActiveRecord::QueryRecorder.new { go }.count
+ control = ActiveRecord::QueryRecorder.new { go }
second_pipeline = create(:ci_empty_pipeline, project: project, sha: project.commit.id, ref: project.default_branch)
second_build = create(:ci_build, :trace_artifact, :artifacts, :test_reports, pipeline: second_pipeline)
@@ -439,7 +440,7 @@ RSpec.describe API::Ci::Jobs, feature_category: :continuous_integration do
second_build.user = create(:user)
second_build.save!
- expect { go }.not_to exceed_query_limit(control_count)
+ expect { go }.not_to exceed_query_limit(control)
end
context 'filter project with one scope element' do
diff --git a/spec/requests/api/ci/pipeline_schedules_spec.rb b/spec/requests/api/ci/pipeline_schedules_spec.rb
index f534b093b7c..588991096b5 100644
--- a/spec/requests/api/ci/pipeline_schedules_spec.rb
+++ b/spec/requests/api/ci/pipeline_schedules_spec.rb
@@ -42,15 +42,15 @@ RSpec.describe API::Ci::PipelineSchedules, feature_category: :continuous_integra
# We need at least two users to trigger a preload for that relation.
create_pipeline_schedules(1)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api("/projects/#{project.id}/pipeline_schedules", developer)
- end.count
+ end
create_pipeline_schedules(5)
expect do
get api("/projects/#{project.id}/pipeline_schedules", developer)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
%w[active inactive].each do |target|
diff --git a/spec/requests/api/ci/pipelines_spec.rb b/spec/requests/api/ci/pipelines_spec.rb
index eef125e1bc3..ef169dbe872 100644
--- a/spec/requests/api/ci/pipelines_spec.rb
+++ b/spec/requests/api/ci/pipelines_spec.rb
@@ -471,15 +471,15 @@ RSpec.describe API::Ci::Pipelines, feature_category: :continuous_integration do
end
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/pipelines/#{pipeline.id}/jobs", api_user), params: query
- end.count
+ end
create_list(:ci_build, 3, :trace_artifact, :artifacts, :test_reports, pipeline: pipeline)
expect do
get api("/projects/#{project.id}/pipelines/#{pipeline.id}/jobs", api_user), params: query
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
context 'pipeline has retried jobs' do
@@ -671,15 +671,15 @@ RSpec.describe API::Ci::Pipelines, feature_category: :continuous_integration do
end
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/pipelines/#{pipeline.id}/bridges", api_user), params: query
- end.count
+ end
3.times { create_bridge(pipeline) }
expect do
get api("/projects/#{project.id}/pipelines/#{pipeline.id}/bridges", api_user), params: query
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/requests/api/ci/runner/jobs_request_post_spec.rb b/spec/requests/api/ci/runner/jobs_request_post_spec.rb
index 3d6d86335eb..e118ef9a384 100644
--- a/spec/requests/api/ci/runner/jobs_request_post_spec.rb
+++ b/spec/requests/api/ci/runner/jobs_request_post_spec.rb
@@ -932,7 +932,8 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state, feature_catego
name: 'ruby',
executor_opts: {
docker: {
- platform: 'amd64'
+ platform: 'amd64',
+ user: 'dave'
}
}
}
@@ -948,7 +949,8 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state, feature_catego
'image' => { 'name' => 'ruby',
'executor_opts' => {
'docker' => {
- 'platform' => 'amd64'
+ 'platform' => 'amd64',
+ 'user' => 'dave'
}
},
'pull_policy' => nil,
diff --git a/spec/requests/api/ci/runner/yamls/image-executor_opts-user.yml b/spec/requests/api/ci/runner/yamls/image-executor_opts-user.yml
new file mode 100644
index 00000000000..9fb56b941c9
--- /dev/null
+++ b/spec/requests/api/ci/runner/yamls/image-executor_opts-user.yml
@@ -0,0 +1,25 @@
+gitlab_ci:
+ rspec:
+ image:
+ name: alpine:latest
+ docker:
+ user: dave
+ script: echo Hello World
+
+request_response:
+ image:
+ name: alpine:latest
+ entrypoint: null
+ executor_opts:
+ docker:
+ user: dave
+ ports: []
+ pull_policy: null
+ steps:
+ - name: script
+ script: ["echo Hello World"]
+ timeout: 3600
+ when: on_success
+ allow_failure: false
+ services: []
+
diff --git a/spec/requests/api/ci/runner/yamls/service-executor_opts-user.yml b/spec/requests/api/ci/runner/yamls/service-executor_opts-user.yml
new file mode 100644
index 00000000000..ea824110e63
--- /dev/null
+++ b/spec/requests/api/ci/runner/yamls/service-executor_opts-user.yml
@@ -0,0 +1,27 @@
+gitlab_ci:
+ rspec:
+ services:
+ - name: docker:dind
+ docker:
+ user: john
+ script: echo Hello World
+
+request_response:
+ image: null
+ steps:
+ - name: script
+ script: ["echo Hello World"]
+ timeout: 3600
+ when: on_success
+ allow_failure: false
+ services:
+ - name: docker:dind
+ alias: null
+ command: null
+ entrypoint: null
+ executor_opts:
+ docker:
+ user: john
+ ports: []
+ pull_policy: null
+ variables: []
diff --git a/spec/requests/api/ci/runners_spec.rb b/spec/requests/api/ci/runners_spec.rb
index 187880e16a4..11d906249e4 100644
--- a/spec/requests/api/ci/runners_spec.rb
+++ b/spec/requests/api/ci/runners_spec.rb
@@ -836,166 +836,219 @@ RSpec.describe API::Ci::Runners, :aggregate_failures, feature_category: :fleet_v
end
describe 'GET /runners/:id/jobs' do
- let_it_be(:job_1) { create(:ci_build) }
- let_it_be(:job_2) { create(:ci_build, :running, runner: shared_runner, project: project) }
- let_it_be(:job_3) { create(:ci_build, :failed, runner: shared_runner, project: project) }
- let_it_be(:job_4) { create(:ci_build, :running, runner: project_runner, project: project) }
- let_it_be(:job_5) { create(:ci_build, :failed, runner: project_runner, project: project) }
- let(:path) { "/runners/#{project_runner.id}/jobs" }
+ subject(:request) { get api(path, user, **api_params) }
+
+ let_it_be(:shared_runner_manager1) { create(:ci_runner_machine, runner: shared_runner, system_xid: 'id2') }
+ let_it_be(:jobs) do
+ project_runner_manager1 = create(:ci_runner_machine, runner: project_runner, system_xid: 'id1')
+ project_runner_manager2 = create(:ci_runner_machine, runner: two_projects_runner, system_xid: 'id1')
+
+ [
+ create(:ci_build),
+ create(:ci_build, :running, runner_manager: shared_runner_manager1, project: project),
+ create(:ci_build, :failed, runner_manager: shared_runner_manager1, project: project),
+ create(:ci_build, :running, runner_manager: project_runner_manager1, project: project),
+ create(:ci_build, :failed, runner_manager: project_runner_manager1, project: project),
+ create(:ci_build, :running, runner_manager: project_runner_manager2, project: project),
+ create(:ci_build, :running, runner_manager: project_runner_manager2, project: project2)
+ ]
+ end
+
+ let(:api_params) { {} }
+ let(:runner_id) { project_runner.id }
+ let(:query_part) { query_params.merge(system_id_params).map { |param| param.join('=') }.join('&') }
+ let(:path) { "/runners/#{runner_id}/jobs?#{query_part}" }
+ let(:query_params) { {} }
+ let(:system_id_params) { {} }
it_behaves_like 'GET request permissions for admin mode'
context 'admin user' do
+ let(:user) { admin }
+ let(:api_params) { { admin_mode: true } }
+
context 'when runner exists' do
context 'when runner is shared' do
+ let(:runner_id) { shared_runner.id }
+ let(:system_id) { 'id2' }
+
it 'return jobs' do
- get api("/runners/#{shared_runner.id}/jobs", admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers
- expect(json_response).to be_an(Array)
- expect(json_response.length).to eq(2)
+ expect(json_response).to match([
+ a_hash_including('id' => jobs[1].id),
+ a_hash_including('id' => jobs[2].id)
+ ])
+ end
+
+ it_behaves_like 'an endpoint with keyset pagination', invalid_order: nil do
+ let(:first_record) { jobs[2] }
+ let(:second_record) { jobs[1] }
+ let(:api_call) { api(path, user, **api_params) }
end
end
context 'when runner is a project runner' do
it 'return jobs' do
- get api(path, admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers
- expect(json_response).to be_an(Array)
- expect(json_response.length).to eq(2)
+ expect(json_response).to match([
+ a_hash_including('id' => jobs[3].id),
+ a_hash_including('id' => jobs[4].id)
+ ])
end
context 'when user does not have authorization to see all jobs' do
- it 'shows only jobs it has permission to see' do
- create(:ci_build, :running, runner: two_projects_runner, project: project)
- create(:ci_build, :running, runner: two_projects_runner, project: project2)
+ let(:runner_id) { two_projects_runner.id }
+ let(:user) { user2 }
+ let(:api_params) { {} }
+ before_all do
project.add_guest(user2)
project2.add_maintainer(user2)
- get api("/runners/#{two_projects_runner.id}/jobs", user2)
+ end
+
+ it 'shows only jobs it has permission to see' do
+ request
expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers
-
- expect(json_response).to be_an(Array)
- expect(json_response.length).to eq(1)
+ expect(json_response).to match([a_hash_including('id' => jobs[6].id)])
end
end
end
context 'when valid status is provided' do
+ let(:query_params) { { status: :failed } }
+
it 'return filtered jobs' do
- get api("/runners/#{project_runner.id}/jobs?status=failed", admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers
- expect(json_response).to be_an(Array)
- expect(json_response.length).to eq(1)
- expect(json_response.first).to include('id' => job_5.id)
+ expect(json_response).to match([a_hash_including('id' => jobs[4].id)])
end
end
context 'when valid order_by is provided' do
+ let(:query_params) { { order_by: :id } }
+
context 'when sort order is not specified' do
it 'return jobs in descending order' do
- get api("/runners/#{project_runner.id}/jobs?order_by=id", admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers
- expect(json_response).to be_an(Array)
- expect(json_response.length).to eq(2)
- expect(json_response.first).to include('id' => job_5.id)
+ expect(json_response).to match([
+ a_hash_including('id' => jobs[4].id),
+ a_hash_including('id' => jobs[3].id)
+ ])
end
end
context 'when sort order is specified as asc' do
+ let(:query_params) { { order_by: :id, sort: :asc } }
+
it 'return jobs sorted in ascending order' do
- get api("/runners/#{project_runner.id}/jobs?order_by=id&sort=asc", admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers
- expect(json_response).to be_an(Array)
- expect(json_response.length).to eq(2)
- expect(json_response.first).to include('id' => job_4.id)
+ expect(json_response).to match([
+ a_hash_including('id' => jobs[3].id),
+ a_hash_including('id' => jobs[4].id)
+ ])
end
end
end
context 'when invalid status is provided' do
+ let(:query_params) { { status: 'non-existing' } }
+
it 'return 400' do
- get api("/runners/#{project_runner.id}/jobs?status=non-existing", admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:bad_request)
end
end
context 'when invalid order_by is provided' do
+ let(:query_params) { { order_by: 'non-existing' } }
+
it 'return 400' do
- get api("/runners/#{project_runner.id}/jobs?order_by=non-existing", admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:bad_request)
end
end
context 'when invalid sort is provided' do
+ let(:query_params) { { sort: 'non-existing' } }
+
it 'return 400' do
- get api("/runners/#{project_runner.id}/jobs?sort=non-existing", admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:bad_request)
end
end
end
- it 'avoids N+1 DB queries' do
- get api("/runners/#{shared_runner.id}/jobs", admin, admin_mode: true)
+ describe 'eager loading' do
+ let(:runner_id) { shared_runner.id }
- control = ActiveRecord::QueryRecorder.new do
- get api("/runners/#{shared_runner.id}/jobs", admin, admin_mode: true)
- end
+ it 'avoids N+1 DB queries' do
+ get api(path, user, **api_params)
- create(:ci_build, :failed, runner: shared_runner, project: project)
+ control = ActiveRecord::QueryRecorder.new do
+ get api(path, user, **api_params)
+ end
- expect do
- get api("/runners/#{shared_runner.id}/jobs", admin, admin_mode: true)
- end.not_to exceed_query_limit(control.count)
- end
+ create(:ci_build, :failed, runner: shared_runner, project: project)
- it 'batches loading of commits' do
- shared_runner = create(:ci_runner, :instance, description: 'Shared runner')
+ expect do
+ get api(path, user, **api_params)
+ end.not_to exceed_query_limit(control.count)
+ end
- project_with_repo = create(:project, :repository)
+ it 'batches loading of commits' do
+ project_with_repo = create(:project, :repository)
+ shared_runner_manager1 = create(:ci_runner_machine, runner: shared_runner, system_xid: 'id1')
- pipeline = create(:ci_pipeline, project: project_with_repo, sha: 'ddd0f15ae83993f5cb66a927a28673882e99100b')
- create(:ci_build, :running, runner: shared_runner, project: project_with_repo, pipeline: pipeline)
+ pipeline = create(:ci_pipeline, project: project_with_repo, sha: 'ddd0f15ae83993f5cb66a927a28673882e99100b')
+ create(:ci_build, :running, runner_manager: shared_runner_manager1, project: project_with_repo, pipeline: pipeline)
- pipeline = create(:ci_pipeline, project: project_with_repo, sha: 'c1c67abbaf91f624347bb3ae96eabe3a1b742478')
- create(:ci_build, :failed, runner: shared_runner, project: project_with_repo, pipeline: pipeline)
+ pipeline = create(:ci_pipeline, project: project_with_repo, sha: 'c1c67abbaf91f624347bb3ae96eabe3a1b742478')
+ create(:ci_build, :failed, runner_manager: shared_runner_manager1, project: project_with_repo, pipeline: pipeline)
- pipeline = create(:ci_pipeline, project: project_with_repo, sha: '1a0b36b3cdad1d2ee32457c102a8c0b7056fa863')
- create(:ci_build, :failed, runner: shared_runner, project: project_with_repo, pipeline: pipeline)
+ pipeline = create(:ci_pipeline, project: project_with_repo, sha: '1a0b36b3cdad1d2ee32457c102a8c0b7056fa863')
+ create(:ci_build, :failed, runner_manager: shared_runner_manager1, project: project_with_repo, pipeline: pipeline)
- expect_next_instance_of(Repository) do |repo|
- expect(repo).to receive(:commits_by).with(oids:
- %w[
- 1a0b36b3cdad1d2ee32457c102a8c0b7056fa863
- c1c67abbaf91f624347bb3ae96eabe3a1b742478
- ]).once.and_call_original
- end
+ expect_next_instance_of(Repository) do |repo|
+ expect(repo).to receive(:commits_by).with(oids:
+ %w[
+ 1a0b36b3cdad1d2ee32457c102a8c0b7056fa863
+ c1c67abbaf91f624347bb3ae96eabe3a1b742478
+ ]).once.and_call_original
+ end
- get api("/runners/#{shared_runner.id}/jobs", admin, admin_mode: true), params: { per_page: 2, order_by: 'id', sort: 'desc' }
+ get api(path, admin, admin_mode: true), params: { per_page: 2, order_by: 'id', sort: 'desc' }
+ end
end
context "when runner doesn't exist" do
+ let(:runner_id) { non_existing_record_id }
+
it 'returns 404' do
- get api('/runners/0/jobs', admin, admin_mode: true)
+ request
expect(response).to have_gitlab_http_status(:not_found)
end
@@ -1004,70 +1057,118 @@ RSpec.describe API::Ci::Runners, :aggregate_failures, feature_category: :fleet_v
context "runner project's administrative user" do
context 'when runner exists' do
+ let(:runner_id) { shared_runner.id }
+
context 'when runner is shared' do
it 'returns 403' do
- get api("/runners/#{shared_runner.id}/jobs", user)
+ request
expect(response).to have_gitlab_http_status(:forbidden)
end
end
context 'when runner is a project runner' do
+ let(:runner_id) { project_runner.id }
+
it 'return jobs' do
- get api(path, user)
+ request
expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers
- expect(json_response).to be_an(Array)
- expect(json_response.length).to eq(2)
+ expect(json_response).to match([
+ a_hash_including('id' => jobs[3].id),
+ a_hash_including('id' => jobs[4].id)
+ ])
end
- end
- context 'when valid status is provided' do
- it 'return filtered jobs' do
- get api("/runners/#{project_runner.id}/jobs?status=failed", user)
+ context 'when valid status is provided' do
+ let(:query_params) { { status: :failed } }
- expect(response).to have_gitlab_http_status(:ok)
- expect(response).to include_pagination_headers
+ it 'return filtered jobs' do
+ request
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to include_pagination_headers
- expect(json_response).to be_an(Array)
- expect(json_response.length).to eq(1)
- expect(json_response.first).to include('id' => job_5.id)
+ expect(json_response).to match([
+ a_hash_including('id' => jobs[4].id)
+ ])
+ end
end
- end
- context 'when invalid status is provided' do
- it 'return 400' do
- get api("/runners/#{project_runner.id}/jobs?status=non-existing", user)
+ context 'when invalid status is provided' do
+ let(:query_params) { { status: 'non-existing' } }
- expect(response).to have_gitlab_http_status(:bad_request)
+ it 'return 400' do
+ request
+
+ expect(response).to have_gitlab_http_status(:bad_request)
+ end
end
end
end
context "when runner doesn't exist" do
+ let(:runner_id) { non_existing_record_id }
+
it 'returns 404' do
- get api('/runners/0/jobs', user)
+ request
expect(response).to have_gitlab_http_status(:not_found)
end
end
- end
- context 'other authorized user' do
- it 'does not return jobs' do
- get api(path, user2)
+ context 'other authorized user' do
+ let(:user) { user2 }
- expect(response).to have_gitlab_http_status(:forbidden)
+ it 'does not return jobs' do
+ request
+
+ expect(response).to have_gitlab_http_status(:forbidden)
+ end
+ end
+
+ context 'unauthorized user' do
+ let(:user) { nil }
+
+ it 'does not return jobs' do
+ request
+
+ expect(response).to have_gitlab_http_status(:unauthorized)
+ end
end
end
- context 'unauthorized user' do
- it 'does not return jobs' do
- get api(path)
+ context 'with system_id param' do
+ let(:system_id_params) { { system_id: system_id } }
+ let(:system_id) { 'id1' }
+ let(:user) { admin }
+ let(:api_params) { { admin_mode: true } }
- expect(response).to have_gitlab_http_status(:unauthorized)
+ it 'returns jobs from the runner manager' do
+ request
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to include_limited_pagination_headers
+ expect(response.headers).not_to include('X-Total', 'X-Total-Pages')
+
+ expect(json_response).to match([
+ a_hash_including('id' => jobs[3].id),
+ a_hash_including('id' => jobs[4].id)
+ ])
+ end
+
+ context 'when system_id does not match runner' do
+ let(:runner_id) { shared_runner.id }
+
+ it 'does not return jobs' do
+ request
+
+ expect(response).to have_gitlab_http_status(:ok)
+
+ expect(json_response).to be_empty
+ end
end
end
end
diff --git a/spec/requests/api/commits_spec.rb b/spec/requests/api/commits_spec.rb
index 4ec5d195ff8..06ef68f190f 100644
--- a/spec/requests/api/commits_spec.rb
+++ b/spec/requests/api/commits_spec.rb
@@ -1842,11 +1842,11 @@ RSpec.describe API::Commits, feature_category: :source_code_management do
it 'are returned without N + 1' do
get api(route, current_user) # warm up the cache
- control_count = ActiveRecord::QueryRecorder.new { get api(route, current_user) }.count
+ control = ActiveRecord::QueryRecorder.new { get api(route, current_user) }
create(:diff_note_on_commit, project: project, author: create(:user))
- expect { get api(route, current_user) }.not_to exceed_query_limit(control_count)
+ expect { get api(route, current_user) }.not_to exceed_query_limit(control)
end
end
end
@@ -2386,11 +2386,11 @@ RSpec.describe API::Commits, feature_category: :source_code_management do
it 'returns multiple merge requests without N + 1' do
perform_request(user)
- control_count = ActiveRecord::QueryRecorder.new { perform_request(user) }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request(user) }
create(:merge_request, :closed, source_project: project, source_branch: 'master', target_branch: 'feature')
- expect { perform_request(user) }.not_to exceed_query_limit(control_count)
+ expect { perform_request(user) }.not_to exceed_query_limit(control)
end
end
@@ -2457,6 +2457,8 @@ RSpec.describe API::Commits, feature_category: :source_code_management do
end
context 'with ssh signed commit' do
+ let_it_be(:project) { create(:project, :repository, :public, :in_group) }
+
let(:commit_id) { '7b5160f9bb23a3d58a0accdbe89da13b96b1ece9' }
let!(:commit) { project.commit(commit_id) }
diff --git a/spec/requests/api/deploy_keys_spec.rb b/spec/requests/api/deploy_keys_spec.rb
index 30c345ef458..ca19a97ae49 100644
--- a/spec/requests/api/deploy_keys_spec.rb
+++ b/spec/requests/api/deploy_keys_spec.rb
@@ -135,11 +135,11 @@ RSpec.describe API::DeployKeys, :aggregate_failures, feature_category: :continuo
it 'returns multiple deploy keys without N + 1' do
perform_request
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
create(:deploy_key, public: true, projects: [project], user: maintainer)
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/requests/api/deployments_spec.rb b/spec/requests/api/deployments_spec.rb
index 5a8e1649e75..f68307df779 100644
--- a/spec/requests/api/deployments_spec.rb
+++ b/spec/requests/api/deployments_spec.rb
@@ -143,11 +143,11 @@ RSpec.describe API::Deployments, feature_category: :continuous_delivery do
it 'returns multiple deployments without N + 1' do
perform_request # warm up the cache
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
create(:deployment, :success, project: project, deployable: build, iid: 21, ref: 'master')
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/requests/api/draft_notes_spec.rb b/spec/requests/api/draft_notes_spec.rb
index f15ed6e2d5f..fc465fa7c42 100644
--- a/spec/requests/api/draft_notes_spec.rb
+++ b/spec/requests/api/draft_notes_spec.rb
@@ -87,6 +87,10 @@ RSpec.describe API::DraftNotes, feature_category: :code_review_workflow do
let!(:deleted_draft_note_id) { draft_note_by_current_user.id }
before do
+ allow_next_instance_of(DraftNotes::DestroyService) do |service|
+ allow(service).to receive(:unfolded_drafts?).and_return(true)
+ end
+
delete api(
"#{base_url}/#{draft_note_by_current_user.id}",
user
diff --git a/spec/requests/api/feature_flags_spec.rb b/spec/requests/api/feature_flags_spec.rb
index 4fb0dfbb070..2e513194627 100644
--- a/spec/requests/api/feature_flags_spec.rb
+++ b/spec/requests/api/feature_flags_spec.rb
@@ -67,12 +67,12 @@ RSpec.describe API::FeatureFlags, feature_category: :feature_flags do
end
it 'does not have N+1 problem' do
- control_count = ActiveRecord::QueryRecorder.new { subject }
+ control = ActiveRecord::QueryRecorder.new { subject }
create_list(:operations_feature_flag, 3, project: project)
expect { get api("/projects/#{project.id}/feature_flags", user) }
- .not_to exceed_query_limit(control_count)
+ .not_to exceed_query_limit(control)
end
it_behaves_like 'check user permission'
diff --git a/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb b/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb
index 32048ea1432..94678bd18da 100644
--- a/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb
+++ b/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb
@@ -89,14 +89,14 @@ RSpec.describe 'UserAchievements', feature_category: :user_profile do
end
it 'can lookahead to eliminate N+1 queries', :use_clean_rails_memory_store_caching do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
post_graphql(query, current_user: user)
- end.count
+ end
user2 = create(:user)
create(:user_achievement, achievement: achievement, user: user2)
- expect { post_graphql(query, current_user: user) }.not_to exceed_all_query_limit(control_count)
+ expect { post_graphql(query, current_user: user) }.not_to exceed_all_query_limit(control)
end
context 'when the achievements feature flag is disabled' do
diff --git a/spec/requests/api/graphql/boards/board_list_issues_query_spec.rb b/spec/requests/api/graphql/boards/board_list_issues_query_spec.rb
index 86e2b288890..312700b1dcf 100644
--- a/spec/requests/api/graphql/boards/board_list_issues_query_spec.rb
+++ b/spec/requests/api/graphql/boards/board_list_issues_query_spec.rb
@@ -115,8 +115,8 @@ RSpec.describe 'get board lists', feature_category: :team_planning do
let(:issue_params) { { filters: { or: { assignee_usernames: [user.username, another_user.username] } } } }
it 'returns correctly filtered issues' do
- issue1.assignee_ids = user.id
- issue2.assignee_ids = another_user.id
+ IssueAssignee.create!(issue_id: issue1.id, user_id: user.id)
+ IssueAssignee.create!(issue_id: issue2.id, user_id: another_user.id)
subject
diff --git a/spec/requests/api/graphql/ci/catalog/resource_spec.rb b/spec/requests/api/graphql/ci/catalog/resource_spec.rb
index 9fe73e7ba45..836e52197a3 100644
--- a/spec/requests/api/graphql/ci/catalog/resource_spec.rb
+++ b/spec/requests/api/graphql/ci/catalog/resource_spec.rb
@@ -22,7 +22,7 @@ RSpec.describe 'Query.ciCatalogResource', feature_category: :pipeline_compositio
)
end
- let_it_be(:resource) { create(:ci_catalog_resource, :published, project: project) }
+ let_it_be_with_reload(:resource) { create(:ci_catalog_resource, :published, project: project) }
let(:query) do
<<~GQL
@@ -81,7 +81,7 @@ RSpec.describe 'Query.ciCatalogResource', feature_category: :pipeline_compositio
nodes {
id
name
- path
+ includePath
inputs {
name
default
@@ -126,7 +126,7 @@ RSpec.describe 'Query.ciCatalogResource', feature_category: :pipeline_compositio
a_graphql_entity_for(
components.first,
name: components.first.name,
- path: components.first.path,
+ include_path: components.first.path,
inputs: [
a_graphql_entity_for(
name: 'tags',
@@ -148,48 +148,68 @@ RSpec.describe 'Query.ciCatalogResource', feature_category: :pipeline_compositio
a_graphql_entity_for(
components.last,
name: components.last.name,
- path: components.last.path
+ include_path: components.last.path
)
)
end
end
end
- describe 'versions' do
- let(:query) do
- <<~GQL
- query {
- ciCatalogResource(id: "#{resource.to_global_id}") {
- id
- versions {
- nodes {
- id
- tagName
- tagPath
- releasedAt
- author {
+ describe 'version fields' do
+ before_all do
+ # To test the readme_html field, we need to create versions with real commit shas
+ project.repository.create_branch('branch_v2', project.default_branch)
+ project.repository.update_file(
+ user, 'README.md', 'Readme v2', message: 'Update readme', branch_name: 'branch_v2')
+
+ project.repository.add_tag(user, 'v1', project.default_branch)
+ project.repository.add_tag(user, 'v2', 'branch_v2')
+ end
+
+ let_it_be(:author) { create(:user, name: 'author') }
+
+ let_it_be(:version1) do
+ create(:release, :with_catalog_resource_version,
+ project: project,
+ tag: 'v1',
+ sha: project.commit('v1').sha,
+ released_at: '2023-01-01T00:00:00Z',
+ author: author
+ ).catalog_resource_version
+ end
+
+ let_it_be(:version2) do
+ create(:release, :with_catalog_resource_version,
+ project: project,
+ tag: 'v2',
+ sha: project.commit('v2').sha,
+ released_at: '2023-02-01T00:00:00Z',
+ author: author
+ ).catalog_resource_version
+ end
+
+ describe 'versions' do
+ let(:query) do
+ <<~GQL
+ query {
+ ciCatalogResource(id: "#{resource.to_global_id}") {
+ id
+ versions {
+ nodes {
id
name
- webUrl
+ path
+ releasedAt
+ author {
+ id
+ name
+ webUrl
+ }
}
}
}
}
- }
- GQL
- end
-
- context 'when the resource has versions' do
- let_it_be(:author) { create(:user, name: 'author') }
-
- let_it_be(:version1) do
- create(:release, :with_catalog_resource_version, project: project, released_at: '2023-01-01T00:00:00Z',
- author: author).catalog_resource_version
- end
-
- let_it_be(:version2) do
- create(:release, :with_catalog_resource_version, project: project, released_at: '2023-02-01T00:00:00Z',
- author: author).catalog_resource_version
+ GQL
end
it 'returns the resource with the versions data' do
@@ -202,67 +222,124 @@ RSpec.describe 'Query.ciCatalogResource', feature_category: :pipeline_compositio
expect(graphql_data_at(:ciCatalogResource, :versions, :nodes)).to contain_exactly(
a_graphql_entity_for(
version1,
- tagName: version1.name,
- tagPath: project_tag_path(project, version1.name),
+ name: version1.name,
+ path: project_tag_path(project, version1.name),
releasedAt: version1.released_at,
author: a_graphql_entity_for(author, :name)
),
a_graphql_entity_for(
version2,
- tagName: version2.name,
- tagPath: project_tag_path(project, version2.name),
+ name: version2.name,
+ path: project_tag_path(project, version2.name),
releasedAt: version2.released_at,
author: a_graphql_entity_for(author, :name)
)
)
end
- end
- context 'when the resource does not have a version' do
- it 'returns versions as an empty array' do
- post_query
+ context 'when the readmeHtml field is requested on more than one version' do
+ let(:query) do
+ <<~GQL
+ query {
+ ciCatalogResource(fullPath: "#{resource.project.full_path}") {
+ versions {
+ nodes {
+ readmeHtml
+ }
+ }
+ }
+ }
+ GQL
+ end
- expect(graphql_data_at(:ciCatalogResource)).to match(
- a_graphql_entity_for(resource, versions: { 'nodes' => [] })
- )
+ it 'limits the request to 1 version at a time' do
+ post_query
+
+ expect_graphql_errors_to_include \
+ [/"readmeHtml" field can be requested only for 1 CiCatalogResourceVersion\(s\) at a time./]
+ end
+ end
+
+ context 'when the name argument is provided' do
+ let(:name) { 'v1' }
+
+ let(:query) do
+ <<~GQL
+ query {
+ ciCatalogResource(fullPath: "#{resource.project.full_path}") {
+ versions(name: "#{name}") {
+ nodes {
+ id
+ name
+ path
+ releasedAt
+ readmeHtml
+ }
+ }
+ }
+ }
+ GQL
+ end
+
+ it 'returns the version that matches the name' do
+ post_query
+
+ expect(graphql_data_at(:ciCatalogResource, :versions, :nodes)).to contain_exactly(
+ a_graphql_entity_for(
+ version1,
+ name: version1.name,
+ path: project_tag_path(project, version1.name),
+ releasedAt: version1.released_at,
+ readmeHtml: a_string_including(
+ "#{project.full_path}/-/blob/#{project.default_branch}/README.md"
+ )
+ )
+ )
+ end
+
+ context 'when no version matches the name' do
+ let(:name) { 'does_not_exist' }
+
+ it 'returns an empty array' do
+ post_query
+
+ expect(graphql_data_at(:ciCatalogResource, :versions, :nodes)).to eq([])
+ end
+ end
+ end
+
+ context 'when the resource does not have a version' do
+ it 'returns an empty array' do
+ resource.versions.delete_all(:delete_all)
+
+ post_query
+
+ expect(graphql_data_at(:ciCatalogResource, :versions, :nodes)).to eq([])
+ end
end
end
- end
- describe 'latestVersion' do
- let(:query) do
- <<~GQL
- query {
- ciCatalogResource(id: "#{resource.to_global_id}") {
- id
- latestVersion {
+ describe 'latestVersion' do
+ let(:query) do
+ <<~GQL
+ query {
+ ciCatalogResource(id: "#{resource.to_global_id}") {
id
- tagName
- tagPath
- releasedAt
- author {
+ latestVersion {
id
name
- webUrl
+ path
+ releasedAt
+ readmeHtml
+ author {
+ id
+ name
+ webUrl
+ }
}
}
}
- }
- GQL
- end
-
- context 'when the resource has versions' do
- let_it_be(:author) { create(:user, name: 'author') }
-
- let_it_be(:latest_version) do
- create(:release, :with_catalog_resource_version, project: project, released_at: '2023-02-01T00:00:00Z',
- author: author).catalog_resource_version
- end
-
- before_all do
- # Previous version of the catalog resource
- create(:release, :with_catalog_resource_version, project: project, released_at: '2023-01-01T00:00:00Z',
- author: author)
+ GQL
end
it 'returns the resource with the latest version data' do
@@ -272,24 +349,27 @@ RSpec.describe 'Query.ciCatalogResource', feature_category: :pipeline_compositio
a_graphql_entity_for(
resource,
latestVersion: a_graphql_entity_for(
- latest_version,
- tagName: latest_version.name,
- tagPath: project_tag_path(project, latest_version.name),
- releasedAt: latest_version.released_at,
+ version2,
+ name: version2.name,
+ path: project_tag_path(project, version2.name),
+ releasedAt: version2.released_at,
+ readmeHtml: a_string_including('Readme v2'),
author: a_graphql_entity_for(author, :name)
)
)
)
end
- end
- context 'when the resource does not have a version' do
- it 'returns nil' do
- post_query
+ context 'when the resource does not have a version' do
+ it 'returns nil' do
+ resource.versions.delete_all(:delete_all)
- expect(graphql_data_at(:ciCatalogResource)).to match(
- a_graphql_entity_for(resource, latestVersion: nil)
- )
+ post_query
+
+ expect(graphql_data_at(:ciCatalogResource)).to match(
+ a_graphql_entity_for(resource, latestVersion: nil)
+ )
+ end
end
end
end
diff --git a/spec/requests/api/graphql/ci/catalog/resources_spec.rb b/spec/requests/api/graphql/ci/catalog/resources_spec.rb
index 49a3f3be1d7..150507fc442 100644
--- a/spec/requests/api/graphql/ci/catalog/resources_spec.rb
+++ b/spec/requests/api/graphql/ci/catalog/resources_spec.rb
@@ -106,7 +106,7 @@ RSpec.describe 'Query.ciCatalogResources', feature_category: :pipeline_compositi
versions {
nodes {
id
- tagName
+ name
releasedAt
author {
id
@@ -153,7 +153,7 @@ RSpec.describe 'Query.ciCatalogResources', feature_category: :pipeline_compositi
id
latestVersion {
id
- tagName
+ name
releasedAt
author {
id
@@ -185,7 +185,7 @@ RSpec.describe 'Query.ciCatalogResources', feature_category: :pipeline_compositi
resource1,
latestVersion: a_graphql_entity_for(
latest_version1,
- tagName: latest_version1.name,
+ name: latest_version1.name,
releasedAt: latest_version1.released_at,
author: a_graphql_entity_for(author1, :name)
)
@@ -194,7 +194,7 @@ RSpec.describe 'Query.ciCatalogResources', feature_category: :pipeline_compositi
public_resource,
latestVersion: a_graphql_entity_for(
latest_version2,
- tagName: latest_version2.name,
+ name: latest_version2.name,
releasedAt: latest_version2.released_at,
author: a_graphql_entity_for(author2, :name)
)
diff --git a/spec/requests/api/graphql/ci/instance_variables_spec.rb b/spec/requests/api/graphql/ci/instance_variables_spec.rb
index a612b4c91b6..6731631a075 100644
--- a/spec/requests/api/graphql/ci/instance_variables_spec.rb
+++ b/spec/requests/api/graphql/ci/instance_variables_spec.rb
@@ -12,6 +12,7 @@ RSpec.describe 'Query.ciVariables', feature_category: :secrets_management do
nodes {
id
key
+ description
value
variableType
protected
@@ -36,6 +37,7 @@ RSpec.describe 'Query.ciVariables', feature_category: :secrets_management do
expect(graphql_data.dig('ciVariables', 'nodes')).to contain_exactly({
'id' => variable.to_global_id.to_s,
'key' => 'TEST_VAR',
+ 'description' => nil,
'value' => 'test',
'variableType' => 'ENV_VAR',
'masked' => false,
diff --git a/spec/requests/api/graphql/ci/runner_spec.rb b/spec/requests/api/graphql/ci/runner_spec.rb
index 8262640b283..1b6948d0380 100644
--- a/spec/requests/api/graphql/ci/runner_spec.rb
+++ b/spec/requests/api/graphql/ci/runner_spec.rb
@@ -876,107 +876,95 @@ RSpec.describe 'Query.runner(id)', :freeze_time, feature_category: :fleet_visibi
end
describe 'Query limits' do
- def runner_query(runner)
- <<~SINGLE
- runner(id: "#{runner.to_global_id}") {
- #{all_graphql_fields_for('CiRunner', excluded: excluded_fields)}
- createdBy {
- id
- username
- webPath
- webUrl
- }
- groups {
- nodes {
- id
- path
- fullPath
- webUrl
- }
- }
- projects {
- nodes {
- id
- path
- fullPath
- webUrl
- }
- }
- ownerProject {
- id
- path
- fullPath
- webUrl
- }
+ let_it_be(:user2) { another_admin }
+ let_it_be(:user3) { create(:user) }
+ let_it_be(:tag_list) { %w[n_plus_1_test some_tag] }
+ let_it_be(:args) do
+ { current_user: user, token: { personal_access_token: create(:personal_access_token, user: user) } }
+ end
+
+ let_it_be(:runner1) { create(:ci_runner, tag_list: tag_list, creator: user) }
+ let_it_be(:runner2) do
+ create(:ci_runner, :group, groups: [group], tag_list: tag_list, creator: user)
+ end
+
+ let_it_be(:runner3) do
+ create(:ci_runner, :project, projects: [project1], tag_list: tag_list, creator: user)
+ end
+
+ let(:single_discrete_runners_query) do
+ multiple_discrete_runners_query([])
+ end
+
+ let(:runner_fragment) do
+ <<~QUERY
+ #{all_graphql_fields_for('CiRunner', excluded: excluded_fields)}
+ createdBy {
+ id
+ username
+ webPath
+ webUrl
}
- SINGLE
+ QUERY
end
- let(:active_project_runner2) { create(:ci_runner, :project) }
- let(:active_group_runner2) { create(:ci_runner, :group) }
+ # Exclude fields that are already hardcoded above (or tested separately),
+ # and also some fields from deeper objects which are problematic:
+ # - createdBy: Known N+1 issues, but only on exotic fields which we don't normally use
+ # - ownerProject.pipeline: Needs arguments (iid or sha)
+ # - project.productAnalyticsState: Can be requested only for 1 Project(s) at a time.
+ let(:excluded_fields) { %w[createdBy jobs pipeline productAnalyticsState] }
+
+ it 'avoids N+1 queries', :use_sql_query_cache do
+ discrete_runners_control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ post_graphql(single_discrete_runners_query, **args)
+ end
+
+ additional_runners = setup_additional_records
+
+ expect do
+ post_graphql(multiple_discrete_runners_query(additional_runners), **args)
- # Exclude fields that are already hardcoded above
- let(:excluded_fields) { %w[createdBy jobs groups projects ownerProject] }
+ raise StandardError, flattened_errors if graphql_errors # Ensure any error in query causes test to fail
+ end.not_to exceed_query_limit(discrete_runners_control)
+ end
- let(:single_query) do
+ def runner_query(runner, nr)
<<~QUERY
- {
- instance_runner1: #{runner_query(active_instance_runner)}
- group_runner1: #{runner_query(active_group_runner)}
- project_runner1: #{runner_query(active_project_runner)}
+ runner#{nr}: runner(id: "#{runner.to_global_id}") {
+ #{runner_fragment}
}
QUERY
end
- let(:double_query) do
+ def multiple_discrete_runners_query(additional_runners)
<<~QUERY
{
- instance_runner1: #{runner_query(active_instance_runner)}
- instance_runner2: #{runner_query(inactive_instance_runner)}
- group_runner1: #{runner_query(active_group_runner)}
- group_runner2: #{runner_query(active_group_runner2)}
- project_runner1: #{runner_query(active_project_runner)}
- project_runner2: #{runner_query(active_project_runner2)}
+ #{runner_query(runner1, 1)}
+ #{runner_query(runner2, 2)}
+ #{runner_query(runner3, 3)}
+ #{additional_runners.each_with_index.map { |r, i| runner_query(r, 4 + i) }.join("\n")}
}
QUERY
end
- it 'does not execute more queries per runner', :aggregate_failures, quarantine: "https://gitlab.com/gitlab-org/gitlab/-/issues/391442" do
- # warm-up license cache and so on:
- personal_access_token = create(:personal_access_token, user: user)
- args = { current_user: user, token: { personal_access_token: personal_access_token } }
- post_graphql(double_query, **args)
-
- control = ActiveRecord::QueryRecorder.new { post_graphql(single_query, **args) }
-
- personal_access_token = create(:personal_access_token, user: another_admin)
- args = { current_user: another_admin, token: { personal_access_token: personal_access_token } }
- expect { post_graphql(double_query, **args) }.not_to exceed_query_limit(control)
-
- expect(graphql_data.count).to eq 6
- expect(graphql_data).to match(
- a_hash_including(
- 'instance_runner1' => a_graphql_entity_for(active_instance_runner),
- 'instance_runner2' => a_graphql_entity_for(inactive_instance_runner),
- 'group_runner1' => a_graphql_entity_for(
- active_group_runner,
- groups: { 'nodes' => contain_exactly(a_graphql_entity_for(group)) }
- ),
- 'group_runner2' => a_graphql_entity_for(
- active_group_runner2,
- groups: { 'nodes' => active_group_runner2.groups.map { |g| a_graphql_entity_for(g) } }
- ),
- 'project_runner1' => a_graphql_entity_for(
- active_project_runner,
- projects: { 'nodes' => active_project_runner.projects.map { |p| a_graphql_entity_for(p) } },
- owner_project: a_graphql_entity_for(active_project_runner.projects[0])
- ),
- 'project_runner2' => a_graphql_entity_for(
- active_project_runner2,
- projects: { 'nodes' => active_project_runner2.projects.map { |p| a_graphql_entity_for(p) } },
- owner_project: a_graphql_entity_for(active_project_runner2.projects[0])
- )
- ))
+ def setup_additional_records
+ # Add more runners (including owned by other users)
+ runner4 = create(:ci_runner, tag_list: tag_list + %w[tag1 tag2], creator: user2)
+ runner5 = create(:ci_runner, :group, groups: [create(:group)], tag_list: tag_list + %w[tag2 tag3], creator: user3)
+ # Add one more project to runner
+ runner3.assign_to(create(:project))
+
+ # Add more runner managers (including to existing runners)
+ runner_manager1 = create(:ci_runner_machine, runner: runner1)
+ create(:ci_runner_machine, runner: runner1)
+ create(:ci_runner_machine, runner: runner2, system_xid: runner_manager1.system_xid)
+ create(:ci_runner_machine, runner: runner3)
+ create(:ci_runner_machine, runner: runner4, version: '16.4.1')
+ create(:ci_runner_machine, runner: runner5, version: '16.4.0', system_xid: runner_manager1.system_xid)
+ create(:ci_runner_machine, runner: runner3)
+
+ [runner4, runner5]
end
end
diff --git a/spec/requests/api/graphql/ci/runners_spec.rb b/spec/requests/api/graphql/ci/runners_spec.rb
index 0fe14bef778..bfe5282cbaa 100644
--- a/spec/requests/api/graphql/ci/runners_spec.rb
+++ b/spec/requests/api/graphql/ci/runners_spec.rb
@@ -18,22 +18,34 @@ RSpec.describe 'Query.runners', feature_category: :fleet_visibility do
let(:fields) do
<<~QUERY
nodes {
- #{all_graphql_fields_for('CiRunner', excluded: %w[createdBy ownerProject])}
- createdBy {
- username
- webPath
- webUrl
- }
- ownerProject {
- id
- path
- fullPath
- webUrl
- }
+ #{all_graphql_fields_for('CiRunner', excluded: excluded_fields)}
}
QUERY
end
+ let(:query) do
+ %(
+ query {
+ runners {
+ #{fields}
+ }
+ }
+ )
+ end
+
+ # Exclude fields from deeper objects which are problematic:
+ # - ownerProject.pipeline: Needs arguments (iid or sha)
+ # - project.productAnalyticsState: Can be requested only for 1 Project(s) at a time.
+ let(:excluded_fields) { %w[pipeline productAnalyticsState] }
+
+ it 'returns expected runners' do
+ post_graphql(query, current_user: current_user)
+
+ expect(runners_graphql_data['nodes']).to contain_exactly(
+ *Ci::Runner.all.map { |expected_runner| a_graphql_entity_for(expected_runner) }
+ )
+ end
+
context 'with filters' do
shared_examples 'a working graphql query returning expected runners' do
it_behaves_like 'a working graphql query' do
@@ -49,31 +61,6 @@ RSpec.describe 'Query.runners', feature_category: :fleet_visibility do
*Array(expected_runners).map { |expected_runner| a_graphql_entity_for(expected_runner) }
)
end
-
- it 'does not execute more queries per runner', :aggregate_failures do
- # warm-up license cache and so on:
- personal_access_token = create(:personal_access_token, user: current_user)
- args = { current_user: current_user, token: { personal_access_token: personal_access_token } }
- post_graphql(query, **args)
- expect(graphql_data_at(:runners, :nodes)).not_to be_empty
-
- admin2 = create(:admin)
- personal_access_token = create(:personal_access_token, user: admin2)
- args = { current_user: admin2, token: { personal_access_token: personal_access_token } }
- control = ActiveRecord::QueryRecorder.new { post_graphql(query, **args) }
-
- runner2 = create(:ci_runner, :instance, version: '14.0.0', tag_list: %w[tag5 tag6], creator: admin2)
- runner3 = create(:ci_runner, :project, version: '14.0.1', projects: [project], tag_list: %w[tag3 tag8],
- creator: current_user)
-
- create(:ci_build, :failed, runner: runner2)
- create(:ci_runner_machine, runner: runner2, version: '16.4.1')
-
- create(:ci_build, :failed, runner: runner3)
- create(:ci_runner_machine, runner: runner3, version: '16.4.0')
-
- expect { post_graphql(query, **args) }.not_to exceed_query_limit(control)
- end
end
context 'when filtered on type and status' do
@@ -178,56 +165,129 @@ RSpec.describe 'Query.runners', feature_category: :fleet_visibility do
end
end
end
- end
- context 'without filters' do
- context 'with managers requested for multiple runners' do
- let(:fields) do
- <<~QUERY
- nodes {
- managers {
- nodes {
- #{all_graphql_fields_for('CiRunnerManager', max_depth: 1)}
- }
- }
- }
- QUERY
- end
+ context 'when filtered by creator' do
+ let_it_be(:user) { create(:user) }
+ let_it_be(:runner_created_by_user) { create(:ci_runner, :project, creator: user) }
let(:query) do
%(
query {
- runners {
+ runners(creatorId: "#{creator.to_global_id}") {
#{fields}
}
}
)
end
- it 'does not execute more queries per runner', :aggregate_failures do
- # warm-up license cache and so on:
- personal_access_token = create(:personal_access_token, user: current_user)
- args = { current_user: current_user, token: { personal_access_token: personal_access_token } }
- post_graphql(query, **args)
- expect(graphql_data_at(:runners, :nodes)).not_to be_empty
-
- admin2 = create(:admin)
- personal_access_token = create(:personal_access_token, user: admin2)
- args = { current_user: admin2, token: { personal_access_token: personal_access_token } }
- control = ActiveRecord::QueryRecorder.new { post_graphql(query, **args) }
-
- create(:ci_runner, :instance, :with_runner_manager, version: '14.0.0', tag_list: %w[tag5 tag6],
- creator: admin2)
- create(:ci_runner, :project, :with_runner_manager, version: '14.0.1', projects: [project],
- tag_list: %w[tag3 tag8],
- creator: current_user)
-
- expect { post_graphql(query, **args) }.not_to exceed_query_limit(control)
+ context 'when existing user id given' do
+ let(:creator) { user }
+
+ before do
+ create(:ci_runner, :project, creator: create(:user)) # Should not be returned
+ end
+
+ it_behaves_like 'a working graphql query returning expected runners' do
+ let(:expected_runners) { runner_created_by_user }
+ end
+ end
+
+ context 'when non existent user id given' do
+ let(:creator) { User.new(id: non_existing_record_id) }
+
+ it 'does not return any runners' do
+ post_graphql(query, current_user: current_user)
+
+ expect(graphql_data_at(:runners, :nodes)).to be_empty
+ end
end
end
end
end
+ describe 'Runner query limits' do
+ let_it_be(:user) { create(:user, :admin) }
+ let_it_be(:user2) { create(:user) }
+ let_it_be(:user3) { create(:user) }
+ let_it_be(:group) { create(:group) }
+ let_it_be(:project) { create(:project) }
+ let_it_be(:tag_list) { %w[n_plus_1_test some_tag] }
+ let_it_be(:args) do
+ { current_user: user, token: { personal_access_token: create(:personal_access_token, user: user) } }
+ end
+
+ let_it_be(:runner1) { create(:ci_runner, tag_list: tag_list, creator: user) }
+ let_it_be(:runner2) do
+ create(:ci_runner, :group, groups: [group], tag_list: tag_list, creator: user)
+ end
+
+ let_it_be(:runner3) do
+ create(:ci_runner, :project, projects: [project], tag_list: tag_list, creator: user)
+ end
+
+ let(:runner_fragment) do
+ <<~QUERY
+ #{all_graphql_fields_for('CiRunner', excluded: excluded_fields)}
+ createdBy {
+ id
+ username
+ webPath
+ webUrl
+ }
+ QUERY
+ end
+
+ # Exclude fields that are already hardcoded above (or tested separately),
+ # and also some fields from deeper objects which are problematic:
+ # - createdBy: Known N+1 issues, but only on exotic fields which we don't normally use
+ # - ownerProject.pipeline: Needs arguments (iid or sha)
+ # - project.productAnalyticsState: Can be requested only for 1 Project(s) at a time.
+ let(:excluded_fields) { %w[createdBy jobs pipeline productAnalyticsState] }
+
+ let(:runners_query) do
+ <<~QUERY
+ {
+ runners {
+ nodes { #{runner_fragment} }
+ }
+ }
+ QUERY
+ end
+
+ it 'avoids N+1 queries', :use_sql_query_cache do
+ personal_access_token = create(:personal_access_token, user: user)
+ args = { current_user: user, token: { personal_access_token: personal_access_token } }
+
+ runners_control = ActiveRecord::QueryRecorder.new(skip_cached: false) { post_graphql(runners_query, **args) }
+
+ setup_additional_records
+
+ expect { post_graphql(runners_query, **args) }.not_to exceed_query_limit(runners_control)
+ end
+
+ def setup_additional_records
+ # Add more runners (including owned by other users)
+ runner4 = create(:ci_runner, tag_list: tag_list + %w[tag1 tag2], creator: user2)
+ runner5 = create(:ci_runner, :group, groups: [create(:group)], tag_list: tag_list + %w[tag2 tag3], creator: user3)
+ # Add one more project to runner
+ runner3.assign_to(create(:project))
+
+ # Add more runner managers (including to existing runners)
+ runner_manager1 = create(:ci_runner_machine, runner: runner1)
+ create(:ci_runner_machine, runner: runner1)
+ create(:ci_runner_machine, runner: runner2, system_xid: runner_manager1.system_xid)
+ create(:ci_runner_machine, runner: runner3)
+ create(:ci_runner_machine, runner: runner4, version: '16.4.1')
+ create(:ci_runner_machine, runner: runner5, version: '16.4.0', system_xid: runner_manager1.system_xid)
+ create(:ci_runner_machine, runner: runner3)
+
+ create(:ci_build, :failed, runner: runner4)
+ create(:ci_build, :failed, runner: runner5)
+
+ [runner4, runner5]
+ end
+ end
+
describe 'pagination' do
let(:data_path) { [:runners] }
diff --git a/spec/requests/api/graphql/container_repository/container_repository_details_spec.rb b/spec/requests/api/graphql/container_repository/container_repository_details_spec.rb
index 2acdd509355..46563aba992 100644
--- a/spec/requests/api/graphql/container_repository/container_repository_details_spec.rb
+++ b/spec/requests/api/graphql/container_repository/container_repository_details_spec.rb
@@ -430,6 +430,85 @@ RSpec.describe 'container repository details', feature_category: :container_regi
it_behaves_like 'returning an invalid value error'
end
+
+ context 'with referrers' do
+ let(:tags_response) { container_repository_details_response.dig('tags', 'edges') }
+ let(:raw_tags_response) do
+ [
+ {
+ name: 'latest',
+ digest: 'sha256:1234567892',
+ config_digest: 'sha256:3332132331',
+ media_type: 'application/vnd.oci.image.manifest.v1+json',
+ size_bytes: 1234509876,
+ created_at: 10.minutes.ago,
+ updated_at: 10.minutes.ago,
+ referrers: [
+ {
+ artifactType: 'application/vnd.example+type',
+ digest: 'sha256:57d3be92c2f857566ecc7f9306a80021c0a7fa631e0ef5146957235aea859961'
+ },
+ {
+ artifactType: 'application/vnd.example+type+2',
+ digest: 'sha256:01db72e42d61b8d2183d53475814cce2bfb9c8a254e97539a852441979cd5c90'
+ }
+ ]
+ },
+ {
+ name: 'latest',
+ digest: 'sha256:1234567893',
+ config_digest: 'sha256:3332132331',
+ media_type: 'application/vnd.oci.image.manifest.v1+json',
+ size_bytes: 1234509877,
+ created_at: 9.minutes.ago,
+ updated_at: 9.minutes.ago
+ }
+ ]
+ end
+
+ let(:query) do
+ <<~GQL
+ query($id: ContainerRepositoryID!, $n: String) {
+ containerRepository(id: $id) {
+ tags(name: $n, referrers: true) {
+ edges {
+ node {
+ #{all_graphql_fields_for('ContainerRepositoryTag')}
+ }
+ }
+ }
+ }
+ }
+ GQL
+ end
+
+ let(:url) { URI('/gitlab/v1/repositories/group1/proj1/tags/list/?before=tag1&referrers=true') }
+
+ let(:response_body) do
+ {
+ pagination: { previous: { uri: url }, next: { uri: url } },
+ response_body: ::Gitlab::Json.parse(raw_tags_response.to_json)
+ }
+ end
+
+ it 'includes referrers in response' do
+ subject
+
+ refs = tags_response.map { |tag| tag.dig('node', 'referrers') }
+
+ expect(refs.first.size).to eq(2)
+ expect(refs.first.first).to include({
+ 'artifactType' => 'application/vnd.example+type',
+ 'digest' => 'sha256:57d3be92c2f857566ecc7f9306a80021c0a7fa631e0ef5146957235aea859961'
+ })
+ expect(refs.first.second).to include({
+ 'artifactType' => 'application/vnd.example+type+2',
+ 'digest' => 'sha256:01db72e42d61b8d2183d53475814cce2bfb9c8a254e97539a852441979cd5c90'
+ })
+
+ expect(refs.second).to be_empty
+ end
+ end
end
it_behaves_like 'handling graphql network errors with the container registry'
diff --git a/spec/requests/api/graphql/mutations/branch_rules/create_spec.rb b/spec/requests/api/graphql/mutations/branch_rules/create_spec.rb
new file mode 100644
index 00000000000..85ba3d58ee5
--- /dev/null
+++ b/spec/requests/api/graphql/mutations/branch_rules/create_spec.rb
@@ -0,0 +1,68 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'BranchRuleCreate', feature_category: :source_code_management do
+ include GraphqlHelpers
+ let_it_be(:project) { create(:project, :public) }
+ let_it_be(:current_user, reload: true) { create(:user) }
+
+ let(:params) do
+ {
+ project_path: project.full_path,
+ name: branch_name
+ }
+ end
+
+ let(:branch_name) { 'branch_name/*' }
+ let(:mutation) { graphql_mutation(:branch_rule_create, params) }
+ let(:mutation_response) { graphql_mutation_response(:branch_rule_create) }
+ let(:mutation_errors) { mutation_response['errors'] }
+
+ subject(:post_mutation) { post_graphql_mutation(mutation, current_user: current_user) }
+
+ context 'when the user does not have permission' do
+ before_all do
+ project.add_developer(current_user)
+ end
+
+ it_behaves_like 'a mutation that returns a top-level access error'
+
+ it 'does not create the board' do
+ expect { post_mutation }.not_to change { ProtectedBranch.count }
+ end
+ end
+
+ context 'when the user can create a branch rules' do
+ before_all do
+ project.add_maintainer(current_user)
+ end
+
+ it 'creates the protected branch' do
+ expect { post_mutation }.to change { ProtectedBranch.count }.by(1)
+ end
+
+ it 'returns the created branch rule' do
+ post_mutation
+
+ expect(mutation_response).to have_key('branchRule')
+ expect(mutation_response['branchRule']['name']).to eq(branch_name)
+ expect(mutation_errors).to be_empty
+ end
+
+ context 'when the branch rule already exist' do
+ let!(:existing_rule) { create :protected_branch, name: branch_name, project: project }
+
+ it 'does not create the protected branch' do
+ expect { post_mutation }.not_to change { ProtectedBranch.count }
+ end
+
+ it 'return an error message' do
+ post_mutation
+
+ expect(mutation_errors).to include 'Name has already been taken'
+ expect(mutation_response['branchRule']).to be_nil
+ end
+ end
+ end
+end
diff --git a/spec/requests/api/graphql/mutations/ml/models/create_spec.rb b/spec/requests/api/graphql/mutations/ml/models/create_spec.rb
new file mode 100644
index 00000000000..0daabeab0d1
--- /dev/null
+++ b/spec/requests/api/graphql/mutations/ml/models/create_spec.rb
@@ -0,0 +1,48 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Creation of a machine learning model', feature_category: :mlops do
+ include GraphqlHelpers
+
+ let_it_be(:model) { create(:ml_models) }
+ let_it_be(:project) { model.project }
+ let_it_be(:current_user) { project.owner }
+
+ let(:input) { { project_path: project.full_path, name: name, description: description } }
+ let(:name) { 'some_name' }
+ let(:description) { 'A description' }
+
+ let(:mutation) { graphql_mutation(:ml_model_create, input) }
+ let(:mutation_response) { graphql_mutation_response(:ml_model_create) }
+
+ context 'when user is not allowed write changes' do
+ before do
+ allow(Ability).to receive(:allowed?).and_call_original
+ allow(Ability).to receive(:allowed?)
+ .with(current_user, :write_model_registry, project)
+ .and_return(false)
+ end
+
+ it_behaves_like 'a mutation that returns a top-level access error'
+ end
+
+ context 'when user is allowed write changes' do
+ it 'creates a models' do
+ post_graphql_mutation(mutation, current_user: current_user)
+
+ expect(response).to have_gitlab_http_status(:success)
+ expect(mutation_response['model']).to include(
+ 'name' => name,
+ 'description' => description
+ )
+ end
+
+ context 'when name already exists' do
+ err_msg = "Name has already been taken"
+ let(:name) { model.name }
+
+ it_behaves_like 'a mutation that returns errors in the response', errors: [err_msg]
+ end
+ end
+end
diff --git a/spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb b/spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb
index 05c1a2d96d9..7c5d86b9f5c 100644
--- a/spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb
@@ -23,7 +23,9 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
lock_npm_package_requests_forwarding: true,
pypi_package_requests_forwarding: true,
lock_pypi_package_requests_forwarding: true,
- nuget_symbol_server_enabled: true
+ nuget_symbol_server_enabled: true,
+ terraform_module_duplicates_allowed: true,
+ terraform_module_duplicate_exception_regex: 'foo-.*'
}
end
@@ -44,6 +46,8 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
pypiPackageRequestsForwarding
lockPypiPackageRequestsForwarding
nugetSymbolServerEnabled
+ terraformModuleDuplicatesAllowed
+ terraformModuleDuplicateExceptionRegex
}
errors
QL
@@ -73,6 +77,8 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
expect(package_settings_response['npmPackageRequestsForwarding']).to eq(params[:npm_package_requests_forwarding])
expect(package_settings_response['lockNpmPackageRequestsForwarding']).to eq(params[:lock_npm_package_requests_forwarding])
expect(package_settings_response['nugetSymbolServerEnabled']).to eq(params[:nuget_symbol_server_enabled])
+ expect(package_settings_response['terraformModuleDuplicatesAllowed']).to eq(params[:terraform_module_duplicates_allowed])
+ expect(package_settings_response['terraformModuleDuplicateExceptionRegex']).to eq(params[:terraform_module_duplicate_exception_regex])
end
end
@@ -115,7 +121,9 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
lock_npm_package_requests_forwarding: false,
pypi_package_requests_forwarding: nil,
lock_pypi_package_requests_forwarding: false,
- nuget_symbol_server_enabled: false
+ nuget_symbol_server_enabled: false,
+ terraform_module_duplicates_allowed: false,
+ terraform_module_duplicate_exception_regex: 'foo'
}, to: {
maven_duplicates_allowed: false,
maven_duplicate_exception_regex: 'foo-.*',
@@ -129,7 +137,9 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
lock_npm_package_requests_forwarding: true,
pypi_package_requests_forwarding: true,
lock_pypi_package_requests_forwarding: true,
- nuget_symbol_server_enabled: true
+ nuget_symbol_server_enabled: true,
+ terraform_module_duplicates_allowed: true,
+ terraform_module_duplicate_exception_regex: 'foo-.*'
}
it_behaves_like 'returning a success'
diff --git a/spec/requests/api/graphql/mutations/organizations/update_spec.rb b/spec/requests/api/graphql/mutations/organizations/update_spec.rb
index 4e819c280d0..33890ae4592 100644
--- a/spec/requests/api/graphql/mutations/organizations/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/organizations/update_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Mutations::Organizations::Update, feature_category: :cell do
let_it_be(:user) { create(:user) }
let_it_be_with_reload(:organization) do
- create(:organization) { |org| create(:organization_user, organization: org, user: user) }
+ create(:organization) { |org| create(:organization_user, :owner, organization: org, user: user) }
end
let(:mutation) { graphql_mutation(:organization_update, params) }
diff --git a/spec/requests/api/graphql/mutations/work_items/create_spec.rb b/spec/requests/api/graphql/mutations/work_items/create_spec.rb
index 78b93c3210b..2c2cd5f2acc 100644
--- a/spec/requests/api/graphql/mutations/work_items/create_spec.rb
+++ b/spec/requests/api/graphql/mutations/work_items/create_spec.rb
@@ -281,6 +281,18 @@ RSpec.describe 'Create a work item', feature_category: :team_planning do
it_behaves_like 'creates work item'
+ # This is a temporary measure just to ensure the internal id migration doesn't get conflicts
+ # More info in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139367
+ context 'when making the request in a production environment' do
+ before do
+ stub_rails_env('production')
+ end
+
+ it_behaves_like 'a mutation that returns top-level errors', errors: [
+ 'Group level work items are disabled. Only project paths allowed in `namespacePath`.'
+ ]
+ end
+
context 'when the namespace_level_work_items feature flag is disabled' do
before do
stub_feature_flags(namespace_level_work_items: false)
diff --git a/spec/requests/api/graphql/namespace/projects_spec.rb b/spec/requests/api/graphql/namespace/projects_spec.rb
index a4bc94798be..107fcd8dcdd 100644
--- a/spec/requests/api/graphql/namespace/projects_spec.rb
+++ b/spec/requests/api/graphql/namespace/projects_spec.rb
@@ -20,6 +20,7 @@ RSpec.describe 'getting projects', feature_category: :groups_and_projects do
'namespace',
{ 'fullPath' => subject.full_path },
<<~QUERY
+ id
projects(includeSubgroups: #{include_subgroups}) {
edges {
node {
@@ -53,24 +54,30 @@ RSpec.describe 'getting projects', feature_category: :groups_and_projects do
expect(graphql_data['namespace']['projects']['edges'].size).to eq(count)
end
+ end
- context 'with no user' do
- it 'finds only public projects' do
- post_graphql(query, current_user: nil)
+ it_behaves_like 'a graphql namespace'
- expect(graphql_data['namespace']).to be_nil
- end
+ context 'when no user is given' do
+ it 'finds only public projects' do
+ post_graphql(query, current_user: nil)
+
+ expect(graphql_data_at(:namespace, :projects, :edges).size).to eq(1)
end
end
- it_behaves_like 'a graphql namespace'
-
context 'when the namespace is a user' do
subject { user.namespace }
let(:include_subgroups) { false }
it_behaves_like 'a graphql namespace'
+
+ it 'does not show namespace entity for anonymous user' do
+ post_graphql(query, current_user: nil)
+
+ expect(graphql_data['namespace']).to be_nil
+ end
end
context 'when not including subgroups' do
diff --git a/spec/requests/api/graphql/namespace/root_storage_statistics_spec.rb b/spec/requests/api/graphql/namespace/root_storage_statistics_spec.rb
index c8819f1e38f..273b6b8c25b 100644
--- a/spec/requests/api/graphql/namespace/root_storage_statistics_spec.rb
+++ b/spec/requests/api/graphql/namespace/root_storage_statistics_spec.rb
@@ -63,7 +63,7 @@ RSpec.describe 'rendering namespace statistics', feature_category: :metrics do
it 'hides statistics for unauthenticated requests' do
post_graphql(query, current_user: nil)
- expect(graphql_data['namespace']).to be_blank
+ expect(graphql_data_at(:namespace, :root_storage_statistics)).to be_blank
end
end
end
diff --git a/spec/requests/api/graphql/namespace_query_spec.rb b/spec/requests/api/graphql/namespace_query_spec.rb
index c0c7c5fee2b..86808915564 100644
--- a/spec/requests/api/graphql/namespace_query_spec.rb
+++ b/spec/requests/api/graphql/namespace_query_spec.rb
@@ -8,7 +8,8 @@ RSpec.describe 'Query', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:other_user) { create(:user) }
- let_it_be(:group_namespace) { create(:group) }
+ let_it_be(:group_namespace) { create(:group, :private) }
+ let_it_be(:public_group_namespace) { create(:group, :public) }
let_it_be(:user_namespace) { create(:user_namespace, owner: user) }
let_it_be(:project_namespace) { create(:project_namespace, parent: group_namespace) }
@@ -60,6 +61,51 @@ RSpec.describe 'Query', feature_category: :groups_and_projects do
end
end
+ context 'when used with a public group' do
+ let(:target_namespace) { public_group_namespace }
+
+ before do
+ subject
+ end
+
+ it_behaves_like 'a working graphql query'
+
+ context 'when user is a member' do
+ before do
+ public_group_namespace.add_developer(user)
+ end
+
+ it 'fetches the expected data' do
+ expect(query_result).to include(
+ 'fullPath' => target_namespace.full_path,
+ 'name' => target_namespace.name
+ )
+ end
+ end
+
+ context 'when user is anonymous' do
+ let(:current_user) { nil }
+
+ it 'fetches the expected data' do
+ expect(query_result).to include(
+ 'fullPath' => target_namespace.full_path,
+ 'name' => target_namespace.name
+ )
+ end
+ end
+
+ context 'when user is not a member' do
+ let(:current_user) { other_user }
+
+ it 'fetches the expected data' do
+ expect(query_result).to include(
+ 'fullPath' => target_namespace.full_path,
+ 'name' => target_namespace.name
+ )
+ end
+ end
+ end
+
it_behaves_like 'retrieving a namespace' do
let(:target_namespace) { group_namespace }
diff --git a/spec/requests/api/graphql/organizations/organization_query_spec.rb b/spec/requests/api/graphql/organizations/organization_query_spec.rb
index c485e3b170d..14becd52e93 100644
--- a/spec/requests/api/graphql/organizations/organization_query_spec.rb
+++ b/spec/requests/api/graphql/organizations/organization_query_spec.rb
@@ -7,7 +7,6 @@ RSpec.describe 'getting organization information', feature_category: :cell do
let(:query) { graphql_query_for(:organization, { id: organization.to_global_id }, organization_fields) }
let(:current_user) { user }
- let(:groups) { graphql_data_at(:organization, :groups, :nodes) }
let(:organization_fields) do
<<~FIELDS
id
@@ -23,24 +22,9 @@ RSpec.describe 'getting organization information', feature_category: :cell do
let_it_be(:organization_user) { create(:organization_user) }
let_it_be(:organization) { organization_user.organization }
let_it_be(:user) { organization_user.user }
- let_it_be(:parent_group) { create(:group, name: 'parent-group', organization: organization) }
- let_it_be(:public_group) { create(:group, name: 'public-group', parent: parent_group, organization: organization) }
- let_it_be(:other_group) { create(:group, name: 'other-group', organization: organization) }
- let_it_be(:outside_organization_group) { create(:group) }
-
- let_it_be(:private_group) do
- create(:group, :private, name: 'private-group', organization: organization)
- end
-
- let_it_be(:no_access_group_in_org) do
- create(:group, :private, name: 'no-access', organization: organization)
- end
-
- before_all do
- private_group.add_developer(user)
- public_group.add_developer(user)
- other_group.add_developer(user)
- outside_organization_group.add_developer(user)
+ let_it_be(:project) { create(:project, organization: organization) { |p| p.add_developer(user) } }
+ let_it_be(:other_group) do
+ create(:group, name: 'other-group', organization: organization) { |g| g.add_developer(user) }
end
subject(:request_organization) { post_graphql(query, current_user: current_user) }
@@ -62,25 +46,6 @@ RSpec.describe 'getting organization information', feature_category: :cell do
end
end
- context 'when resolve_organization_groups feature flag is disabled' do
- before do
- stub_feature_flags(resolve_organization_groups: false)
- end
-
- it 'returns no groups' do
- request_organization
-
- expect(graphql_data_at(:organization)).not_to be_nil
- expect(graphql_data_at(:organization, :groups, :nodes)).to be_empty
- end
- end
-
- it 'does not return ancestors of authorized groups' do
- request_organization
-
- expect(groups.pluck('id')).not_to include(parent_group.to_global_id.to_s)
- end
-
context 'when requesting organization user' do
let(:organization_fields) do
<<~FIELDS
@@ -102,13 +67,13 @@ RSpec.describe 'getting organization information', feature_category: :cell do
it 'returns correct organization user fields' do
request_organization
- organization_user_node = graphql_data_at(:organization, :organizationUsers, :nodes).first
+ organization_user_nodes = graphql_data_at(:organization, :organizationUsers, :nodes)
expected_attributes = {
"badges" => [{ "text" => "It's you!", "variant" => 'muted' }],
"id" => organization_user.to_global_id.to_s,
"user" => { "id" => user.to_global_id.to_s }
}
- expect(organization_user_node).to match(expected_attributes)
+ expect(organization_user_nodes).to include(expected_attributes)
end
it 'avoids N+1 queries for all the fields' do
@@ -116,6 +81,8 @@ RSpec.describe 'getting organization information', feature_category: :cell do
organization_user_2 = create(:organization_user, organization: organization)
other_group.add_developer(organization_user_2.user)
+ organization_user_from_project = create(:organization_user, organization: organization)
+ project.add_developer(organization_user_from_project.user)
expect { run_query }.not_to exceed_query_limit(base_query_count)
end
@@ -127,62 +94,144 @@ RSpec.describe 'getting organization information', feature_category: :cell do
end
end
- context 'with `search` argument' do
- let(:search) { 'oth' }
- let(:organization_fields) do
- <<~FIELDS
- id
- path
- groups(search: "#{search}") {
- nodes {
- id
- name
- }
- }
- FIELDS
+ context 'when requesting groups' do
+ let(:groups) { graphql_data_at(:organization, :groups, :nodes) }
+ let_it_be(:parent_group) { create(:group, name: 'parent-group', organization: organization) }
+ let_it_be(:public_group) do
+ create(:group, name: 'public-group', parent: parent_group, organization: organization)
end
- it 'filters groups by name' do
- request_organization
+ let_it_be(:private_group) do
+ create(:group, :private, name: 'private-group', organization: organization)
+ end
- expect(groups).to contain_exactly(a_graphql_entity_for(other_group))
+ before_all do
+ create(:group, :private, name: 'no-access', organization: organization)
+ private_group.add_developer(user)
+ public_group.add_developer(user)
+ create(:group) { |g| g.add_developer(user) } # outside organization
end
- end
- context 'with `sort` argument' do
- using RSpec::Parameterized::TableSyntax
+ context 'when resolve_organization_groups feature flag is disabled' do
+ before do
+ stub_feature_flags(resolve_organization_groups: false)
+ end
+
+ it 'returns no groups' do
+ request_organization
+
+ expect(graphql_data_at(:organization)).not_to be_nil
+ expect(graphql_data_at(:organization, :groups, :nodes)).to be_empty
+ end
+ end
- let(:authorized_groups) { [public_group, private_group, other_group] }
+ it 'does not return ancestors of authorized groups' do
+ request_organization
- where(:field, :direction, :sorted_groups) do
- 'id' | 'asc' | lazy { authorized_groups.sort_by(&:id) }
- 'id' | 'desc' | lazy { authorized_groups.sort_by(&:id).reverse }
- 'name' | 'asc' | lazy { authorized_groups.sort_by(&:name) }
- 'name' | 'desc' | lazy { authorized_groups.sort_by(&:name).reverse }
- 'path' | 'asc' | lazy { authorized_groups.sort_by(&:path) }
- 'path' | 'desc' | lazy { authorized_groups.sort_by(&:path).reverse }
+ expect(groups.pluck('id')).not_to include(parent_group.to_global_id.to_s)
end
- with_them do
- let(:sort) { "#{field}_#{direction}".upcase }
+ context 'with `search` argument' do
+ let(:search) { 'oth' }
let(:organization_fields) do
<<~FIELDS
id
path
- groups(sort: #{sort}) {
+ groups(search: "#{search}") {
nodes {
id
+ name
}
}
FIELDS
end
- it 'sorts the groups' do
+ it 'filters groups by name' do
request_organization
- expect(groups.pluck('id')).to eq(sorted_groups.map(&:to_global_id).map(&:to_s))
+ expect(groups).to contain_exactly(a_graphql_entity_for(other_group))
end
end
+
+ context 'with `sort` argument' do
+ using RSpec::Parameterized::TableSyntax
+
+ let(:authorized_groups) { [public_group, private_group, other_group] }
+
+ where(:field, :direction, :sorted_groups) do
+ 'id' | 'asc' | lazy { authorized_groups.sort_by(&:id) }
+ 'id' | 'desc' | lazy { authorized_groups.sort_by(&:id).reverse }
+ 'name' | 'asc' | lazy { authorized_groups.sort_by(&:name) }
+ 'name' | 'desc' | lazy { authorized_groups.sort_by(&:name).reverse }
+ 'path' | 'asc' | lazy { authorized_groups.sort_by(&:path) }
+ 'path' | 'desc' | lazy { authorized_groups.sort_by(&:path).reverse }
+ end
+
+ with_them do
+ let(:sort) { "#{field}_#{direction}".upcase }
+ let(:organization_fields) do
+ <<~FIELDS
+ id
+ path
+ groups(sort: #{sort}) {
+ nodes {
+ id
+ }
+ }
+ FIELDS
+ end
+
+ it 'sorts the groups' do
+ request_organization
+
+ expect(groups.pluck('id')).to eq(sorted_groups.map(&:to_global_id).map(&:to_s))
+ end
+ end
+ end
+ end
+
+ context 'when requesting projects' do
+ let(:projects) { graphql_data_at(:organization, :projects, :nodes) }
+ let(:organization_fields) do
+ <<~FIELDS
+ projects {
+ nodes {
+ id
+ }
+ }
+ FIELDS
+ end
+
+ before_all do
+ create(:project) { |p| p.add_developer(user) } # some other project that shouldn't show up in our results
+ end
+
+ before do
+ request_organization
+ end
+
+ it_behaves_like 'a working graphql query'
+
+ it 'returns projects' do
+ expect(projects).to contain_exactly(a_graphql_entity_for(project))
+ end
+
+ it_behaves_like 'sorted paginated query' do
+ include_context 'no sort argument'
+
+ let_it_be(:another_project) { create(:project, organization: organization) { |p| p.add_developer(user) } }
+ let_it_be(:another_project2) { create(:project, organization: organization) { |p| p.add_developer(user) } }
+ let(:first_param) { 2 }
+ let(:data_path) { [:organization, :projects] }
+ let(:all_records) { [another_project2, another_project, project].map { |p| global_id_of(p).to_s } }
+ end
+
+ def pagination_query(params)
+ graphql_query_for(
+ :organization, { id: organization.to_global_id },
+ query_nodes(:projects, :id, include_pagination_info: true, args: params)
+ )
+ end
end
end
end
diff --git a/spec/requests/api/graphql/organizations/organizations_query_spec.rb b/spec/requests/api/graphql/organizations/organizations_query_spec.rb
new file mode 100644
index 00000000000..12d81ed7412
--- /dev/null
+++ b/spec/requests/api/graphql/organizations/organizations_query_spec.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'getting organizations information', feature_category: :cell do
+ include GraphqlHelpers
+
+ let_it_be(:user) { create(:user) }
+
+ let(:query) { graphql_query_for(:organizations, organizations_fields) }
+ let(:organizations) { graphql_data_at(:organizations, :nodes) }
+ let(:organizations_fields) do
+ <<~FIELDS
+ nodes {
+ id
+ path
+ }
+ FIELDS
+ end
+
+ before_all { create_list(:organization, 3) }
+
+ subject(:request_organization) { post_graphql(query, current_user: current_user) }
+
+ context 'without authenticated user' do
+ let(:current_user) { nil }
+
+ it_behaves_like 'a working graphql query' do
+ before do
+ request_organization
+ end
+ end
+ end
+
+ context 'with authenticated user' do
+ let(:current_user) { user }
+
+ it_behaves_like 'a working graphql query' do
+ before do
+ request_organization
+ end
+ end
+
+ it_behaves_like 'sorted paginated query' do
+ include_context 'no sort argument'
+
+ let(:first_param) { 2 }
+ let(:data_path) { [:organizations] }
+ let(:all_records) { Organizations::Organization.order(id: :desc).map { |o| global_id_of(o).to_s } }
+ end
+
+ def pagination_query(params)
+ graphql_query_for(:organizations, params, "#{page_info} nodes { id }")
+ end
+ end
+end
diff --git a/spec/requests/api/graphql/project/container_repositories_spec.rb b/spec/requests/api/graphql/project/container_repositories_spec.rb
index c86d3bdd14c..2307409c383 100644
--- a/spec/requests/api/graphql/project/container_repositories_spec.rb
+++ b/spec/requests/api/graphql/project/container_repositories_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe 'getting container repositories in a project', feature_category:
let_it_be(:container_repositories) { [container_repository, container_repositories_delete_scheduled, container_repositories_delete_failed].flatten }
let_it_be(:container_expiration_policy) { project.container_expiration_policy }
- let(:excluded_fields) { %w[pipeline jobs productAnalyticsState] }
+ let(:excluded_fields) { %w[pipeline jobs productAnalyticsState mlModels] }
let(:container_repositories_fields) do
<<~GQL
edges {
@@ -155,7 +155,7 @@ RSpec.describe 'getting container repositories in a project', feature_category:
it_behaves_like 'handling graphql network errors with the container registry'
it_behaves_like 'not hitting graphql network errors with the container registry' do
- let(:excluded_fields) { %w[pipeline jobs tags tagsCount productAnalyticsState] }
+ let(:excluded_fields) { %w[pipeline jobs tags tagsCount productAnalyticsState mlModels] }
end
it 'returns the total count of container repositories' do
diff --git a/spec/requests/api/graphql/project/merge_request_spec.rb b/spec/requests/api/graphql/project/merge_request_spec.rb
index 23be9fa5286..96933505838 100644
--- a/spec/requests/api/graphql/project/merge_request_spec.rb
+++ b/spec/requests/api/graphql/project/merge_request_spec.rb
@@ -24,7 +24,7 @@ RSpec.describe 'getting merge request information nested in a project', feature_
# we exclude Project.pipeline because it needs arguments,
# codequalityReportsComparer because it is behind a feature flag
# and runners because the user is not an admin and therefore has no access
- let(:excluded) { %w[jobs pipeline runners codequalityReportsComparer] }
+ let(:excluded) { %w[jobs pipeline runners codequalityReportsComparer mlModels] }
let(:mr_fields) { all_graphql_fields_for('MergeRequest', excluded: excluded) }
before do
diff --git a/spec/requests/api/graphql/project/tree/tree_spec.rb b/spec/requests/api/graphql/project/tree/tree_spec.rb
index 77b72bf39a1..d71908d6458 100644
--- a/spec/requests/api/graphql/project/tree/tree_spec.rb
+++ b/spec/requests/api/graphql/project/tree/tree_spec.rb
@@ -167,6 +167,8 @@ RSpec.describe 'getting a tree in a project', feature_category: :source_code_man
end
context 'when the ref points to a SSH-signed commit' do
+ let_it_be(:project) { create(:project, :repository, :in_group) }
+
let_it_be(:ref) { 'ssh-signed-commit' }
let_it_be(:commit) { project.commit(ref) }
let_it_be(:current_user) { create(:user, email: commit.committer_email).tap { |user| project.add_owner(user) } }
diff --git a/spec/requests/api/graphql/projects/projects_spec.rb b/spec/requests/api/graphql/projects/projects_spec.rb
index 84b8c2285f0..dfebcb7c42c 100644
--- a/spec/requests/api/graphql/projects/projects_spec.rb
+++ b/spec/requests/api/graphql/projects/projects_spec.rb
@@ -45,14 +45,14 @@ RSpec.describe 'getting a collection of projects', feature_category: :source_cod
it 'avoids N+1 queries', :use_sql_query_cache, :clean_gitlab_redis_cache do
post_graphql(single_project_query, current_user: current_user)
- query_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
post_graphql(single_project_query, current_user: current_user)
- end.count
+ end
# There is an N+1 query for max_member_access_for_user_ids
expect do
post_graphql(query, current_user: current_user)
- end.not_to exceed_all_query_limit(query_count + 5)
+ end.not_to exceed_all_query_limit(control).with_threshold(5)
end
it 'returns the expected projects' do
diff --git a/spec/requests/api/graphql/user/user_achievements_query_spec.rb b/spec/requests/api/graphql/user/user_achievements_query_spec.rb
index 2e6c3dcba61..ccff5bdf919 100644
--- a/spec/requests/api/graphql/user/user_achievements_query_spec.rb
+++ b/spec/requests/api/graphql/user/user_achievements_query_spec.rb
@@ -60,14 +60,14 @@ RSpec.describe 'UserAchievements', feature_category: :user_profile do
end
it 'can lookahead to eliminate N+1 queries', :use_clean_rails_memory_store_caching do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
post_graphql(query, current_user: user)
- end.count
+ end
achievement2 = create(:achievement, namespace: group)
create_list(:user_achievement, 2, achievement: achievement2, user: user)
- expect { post_graphql(query, current_user: user) }.not_to exceed_all_query_limit(control_count)
+ expect { post_graphql(query, current_user: user) }.not_to exceed_all_query_limit(control)
end
context 'when the achievements feature flag is disabled for a namespace' do
diff --git a/spec/requests/api/graphql/work_item_spec.rb b/spec/requests/api/graphql/work_item_spec.rb
index fe77b7ae736..c6d44b057a7 100644
--- a/spec/requests/api/graphql/work_item_spec.rb
+++ b/spec/requests/api/graphql/work_item_spec.rb
@@ -199,7 +199,7 @@ RSpec.describe 'Query.work_item(id)', feature_category: :team_planning do
it 'avoids N+1 queries' do
post_graphql(query, current_user: current_user) # warm up
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
post_graphql(query, current_user: current_user)
end
@@ -207,7 +207,7 @@ RSpec.describe 'Query.work_item(id)', feature_category: :team_planning do
expect do
post_graphql(query, current_user: current_user)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
context 'when user is guest' do
diff --git a/spec/requests/api/group_milestones_spec.rb b/spec/requests/api/group_milestones_spec.rb
index 82a4311f7d0..7b4075b3aeb 100644
--- a/spec/requests/api/group_milestones_spec.rb
+++ b/spec/requests/api/group_milestones_spec.rb
@@ -141,11 +141,11 @@ RSpec.describe API::GroupMilestones, feature_category: :team_planning do
it 'returns multiple issues without performing N + 1' do
perform_request
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
create(:issue, project: project, milestone: milestone)
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb
index 327dfd0a76b..6b949962e53 100644
--- a/spec/requests/api/groups_spec.rb
+++ b/spec/requests/api/groups_spec.rb
@@ -660,24 +660,24 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
get api("/groups/#{group1.id}", user1)
expect(response).to have_gitlab_http_status(:ok)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api("/groups/#{group1.id}", user1)
- end.count
+ end
create(:project, namespace: group1)
expect do
get api("/groups/#{group1.id}", user1)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
it 'avoids N+1 queries with shared group links' do
# setup at least 1 shared group, so that we record the queries that preload the nested associations too.
create(:group_group_link, shared_group: group1, shared_with_group: create(:group))
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api("/groups/#{group1.id}", user1)
- end.count
+ end
# setup "n" more shared groups
create(:group_group_link, shared_group: group1, shared_with_group: create(:group))
@@ -686,7 +686,7 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
# test that no of queries for 1 shared group is same as for n shared groups
expect do
get api("/groups/#{group1.id}", user1)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
@@ -1364,15 +1364,15 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
get api("/groups/#{group1.id}/projects", user1)
expect(response).to have_gitlab_http_status(:ok)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api("/groups/#{group1.id}/projects", user1)
- end.count
+ end
create(:project, namespace: group1)
expect do
get api("/groups/#{group1.id}/projects", user1)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
@@ -1563,15 +1563,15 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
subject
expect(response).to have_gitlab_http_status(:ok)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
subject
- end.count
+ end
create(:project_group_link, project: create(:project), group: group1)
expect do
subject
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
@@ -1937,6 +1937,59 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
end
end
+ context 'when group is within a provided organization' do
+ let_it_be(:organization) { create(:organization) }
+
+ context 'when user is an organization user' do
+ before_all do
+ create(:organization_user, user: user3, organization: organization)
+ end
+
+ it 'creates group within organization' do
+ post api('/groups', user3), params: attributes_for_group_api(organization_id: organization.id)
+
+ expect(response).to have_gitlab_http_status(:created)
+ expect(json_response['organization_id']).to eq(organization.id)
+ end
+
+ context 'when parent_group is not part of the organization' do
+ it 'does not create the group with not_found' do
+ post(
+ api('/groups', user3),
+ params: attributes_for_group_api(parent_id: group2.id, organization_id: organization.id)
+ )
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+
+ context 'when organization does not exist' do
+ it 'does not create the group with not_found' do
+ post api('/groups', user3), params: attributes_for_group_api(organization_id: non_existing_record_id)
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+
+ context 'when user is not an organization user' do
+ it 'does not create the group' do
+ post api('/groups', user3), params: attributes_for_group_api(organization_id: organization.id)
+
+ expect(response).to have_gitlab_http_status(:forbidden)
+ end
+ end
+
+ context 'when user is an admin' do
+ it 'creates group within organization' do
+ post api('/groups', admin, admin_mode: true), params: attributes_for_group_api(organization_id: organization.id)
+
+ expect(response).to have_gitlab_http_status(:created)
+ expect(json_response['organization_id']).to eq(organization.id)
+ end
+ end
+ end
+
context "when authenticated as user with group permissions" do
it "creates group", :aggregate_failures do
group = attributes_for_group_api request_access_enabled: false
diff --git a/spec/requests/api/import_bitbucket_server_spec.rb b/spec/requests/api/import_bitbucket_server_spec.rb
index 9a9ccc867a3..4f838be1c81 100644
--- a/spec/requests/api/import_bitbucket_server_spec.rb
+++ b/spec/requests/api/import_bitbucket_server_spec.rb
@@ -128,7 +128,7 @@ RSpec.describe API::ImportBitbucketServer, feature_category: :importers do
.to receive(:new).with(project_key, repo_slug, anything, project.name, user.namespace, user, anything, timeout_strategy)
.and_return(double(execute: project))
- allow(Gitlab::UrlBlocker)
+ allow(Gitlab::HTTP_V2::UrlBlocker)
.to receive(:blocked_url?)
.and_return(true)
post api("/import/bitbucket_server", user), params: {
diff --git a/spec/requests/api/import_github_spec.rb b/spec/requests/api/import_github_spec.rb
index f555f39ff74..532492c9c2c 100644
--- a/spec/requests/api/import_github_spec.rb
+++ b/spec/requests/api/import_github_spec.rb
@@ -20,11 +20,18 @@ RSpec.describe API::ImportGithub, feature_category: :importers do
}
end
+ let(:headers) do
+ {
+ 'x-oauth-scopes' => 'read:org'
+ }
+ end
+
let(:client) { double('client', user: provider_user, repository: provider_repo) }
before do
Grape::Endpoint.before_each do |endpoint|
allow(endpoint).to receive(:client).and_return(client)
+ allow(client).to receive_message_chain(:octokit, :last_response, :headers).and_return(headers)
end
end
diff --git a/spec/requests/api/internal/base_spec.rb b/spec/requests/api/internal/base_spec.rb
index e59633b6d35..87f3ee640f3 100644
--- a/spec/requests/api/internal/base_spec.rb
+++ b/spec/requests/api/internal/base_spec.rb
@@ -1437,7 +1437,7 @@ RSpec.describe API::Internal::Base, feature_category: :system_access do
end
let(:changes) do
- "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{branch_name}"
+ "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{branch_name}"
end
subject { post api('/internal/post_receive'), params: valid_params, headers: gitlab_shell_internal_api_request_header }
diff --git a/spec/requests/api/internal/kubernetes_spec.rb b/spec/requests/api/internal/kubernetes_spec.rb
index 5ef041881b9..7934fa4a358 100644
--- a/spec/requests/api/internal/kubernetes_spec.rb
+++ b/spec/requests/api/internal/kubernetes_spec.rb
@@ -80,7 +80,7 @@ RSpec.describe API::Internal::Kubernetes, feature_category: :deployment_manageme
it 'returns no_content for valid events' do
counters = { gitops_sync: 10, k8s_api_proxy_request: 5 }
- unique_counters = { agent_users_using_ci_tunnel: [10] }
+ unique_counters = { k8s_api_proxy_requests_unique_users_via_ci_access: [10] }
send_request(params: { counters: counters, unique_counters: unique_counters })
@@ -89,7 +89,7 @@ RSpec.describe API::Internal::Kubernetes, feature_category: :deployment_manageme
it 'returns no_content for counts of zero' do
counters = { gitops_sync: 0, k8s_api_proxy_request: 0 }
- unique_counters = { agent_users_using_ci_tunnel: [] }
+ unique_counters = { k8s_api_proxy_requests_unique_users_via_ci_access: [] }
send_request(params: { counters: counters, unique_counters: unique_counters })
@@ -105,7 +105,7 @@ RSpec.describe API::Internal::Kubernetes, feature_category: :deployment_manageme
end
it 'returns 400 for non unique_counter set' do
- unique_counters = { agent_users_using_ci_tunnel: 1 }
+ unique_counters = { k8s_api_proxy_requests_unique_users_via_ci_access: 1 }
send_request(params: { unique_counters: unique_counters })
@@ -125,7 +125,6 @@ RSpec.describe API::Internal::Kubernetes, feature_category: :deployment_manageme
users = create_list(:user, 3)
user_ids = users.map(&:id) << users[0].id
unique_counters = {
- agent_users_using_ci_tunnel: user_ids,
k8s_api_proxy_requests_unique_users_via_ci_access: user_ids,
k8s_api_proxy_requests_unique_agents_via_ci_access: user_ids,
k8s_api_proxy_requests_unique_users_via_user_access: user_ids,
@@ -191,6 +190,7 @@ RSpec.describe API::Internal::Kubernetes, feature_category: :deployment_manageme
end
it 'tracks events and returns no_content', :aggregate_failures do
+ events[:agent_users_using_ci_tunnel] = events.values.flatten
events.each do |event_name, event_list|
event_list.each do |event|
expect(Gitlab::InternalEvents).to receive(:track_event)
diff --git a/spec/requests/api/invitations_spec.rb b/spec/requests/api/invitations_spec.rb
index dc02e830027..60f3c4780eb 100644
--- a/spec/requests/api/invitations_spec.rb
+++ b/spec/requests/api/invitations_spec.rb
@@ -412,7 +412,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(project, maintainer), params: { email: emails, access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
it 'does not exceed expected queries count for user_ids', :request_store, :use_sql_query_cache do
@@ -430,7 +430,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(project, maintainer), params: { user_id: users.map(&:id).join(','), access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
it 'does not exceed expected queries count with secondary emails', :request_store, :use_sql_query_cache do
@@ -453,7 +453,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(project, maintainer), params: { email: emails, access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
end
@@ -491,7 +491,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(group, maintainer), params: { email: emails, access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
it 'does not exceed expected queries count for secondary emails', :request_store, :use_sql_query_cache do
@@ -514,7 +514,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(group, maintainer), params: { email: emails, access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
end
diff --git a/spec/requests/api/issue_links_spec.rb b/spec/requests/api/issue_links_spec.rb
index fcb199a91a4..a4a9eca92b9 100644
--- a/spec/requests/api/issue_links_spec.rb
+++ b/spec/requests/api/issue_links_spec.rb
@@ -40,11 +40,11 @@ RSpec.describe API::IssueLinks, feature_category: :team_planning do
it 'returns multiple links without N + 1' do
perform_request(user)
- control_count = ActiveRecord::QueryRecorder.new { perform_request(user) }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request(user) }
create(:issue_link, source: issue, target: create(:issue, project: project))
- expect { perform_request(user) }.not_to exceed_query_limit(control_count)
+ expect { perform_request(user) }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/requests/api/issues/get_project_issues_spec.rb b/spec/requests/api/issues/get_project_issues_spec.rb
index 9e54ec08486..6719297f54f 100644
--- a/spec/requests/api/issues/get_project_issues_spec.rb
+++ b/spec/requests/api/issues/get_project_issues_spec.rb
@@ -233,9 +233,9 @@ RSpec.describe API::Issues, feature_category: :team_planning do
issues = create_list(:issue, 3, project: project, closed_by: user)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/issues", user)
- end.count
+ end
milestone = create(:milestone, project: project)
create(:issue, project: project, milestone: milestone, closed_by: create(:user))
@@ -245,7 +245,7 @@ RSpec.describe API::Issues, feature_category: :team_planning do
expect do
get api("/projects/#{project.id}/issues", user)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
it 'returns 404 when project does not exist' do
@@ -361,9 +361,9 @@ RSpec.describe API::Issues, feature_category: :team_planning do
let(:label_c) { create(:label, title: 'bar', project: project) }
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/issues?with_labels_details=true", user)
- end.count
+ end
new_issue = create(:issue, project: project)
create(:label_link, label: label, target: new_issue)
@@ -372,7 +372,7 @@ RSpec.describe API::Issues, feature_category: :team_planning do
expect do
get api("/projects/#{project.id}/issues?with_labels_details=true", user)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/requests/api/maven_packages_spec.rb b/spec/requests/api/maven_packages_spec.rb
index 2110e4a077d..5e432cfca74 100644
--- a/spec/requests/api/maven_packages_spec.rb
+++ b/spec/requests/api/maven_packages_spec.rb
@@ -1054,10 +1054,10 @@ RSpec.describe API::MavenPackages, feature_category: :package_registry do
context 'FIPS mode', :fips_mode do
it_behaves_like 'package workhorse uploads'
- it 'rejects the request for md5 file' do
+ it 'returns 200 for the request for md5 file' do
upload_file_with_token(params: params, file_extension: 'jar.md5')
- expect(response).to have_gitlab_http_status(:unprocessable_entity)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -1276,10 +1276,13 @@ RSpec.describe API::MavenPackages, feature_category: :package_registry do
end
context 'with FIPS mode enabled', :fips_mode do
- it 'rejects the request' do
+ it 'returns an empty body' do
+ expect_use_primary
+
subject
- expect(response).to have_gitlab_http_status(:unprocessable_entity)
+ expect(response.body).to eq('')
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
diff --git a/spec/requests/api/members_spec.rb b/spec/requests/api/members_spec.rb
index feb24a4e73f..7fc58140fb6 100644
--- a/spec/requests/api/members_spec.rb
+++ b/spec/requests/api/members_spec.rb
@@ -717,7 +717,7 @@ RSpec.describe API::Members, feature_category: :groups_and_projects do
end.to change { source.members.count }.by(-1)
end
- it_behaves_like 'rate limited endpoint', rate_limit_key: :member_delete do
+ it_behaves_like 'rate limited endpoint', rate_limit_key: :members_delete do
let(:current_user) { maintainer }
let(:another_member) { create(:user) }
diff --git a/spec/requests/api/merge_request_approvals_spec.rb b/spec/requests/api/merge_request_approvals_spec.rb
index 2de59750273..886fc70edf2 100644
--- a/spec/requests/api/merge_request_approvals_spec.rb
+++ b/spec/requests/api/merge_request_approvals_spec.rb
@@ -117,6 +117,18 @@ RSpec.describe API::MergeRequestApprovals, feature_category: :source_code_manage
end
context 'for a bot user' do
+ context 'when the MR is merged' do
+ let(:merge_request) { create(:merge_request, :merged, :simple, author: user, source_project: project) }
+
+ it 'returns 401' do
+ put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/reset_approvals", bot)
+
+ merge_request.reload
+ expect(response).to have_gitlab_http_status(:unauthorized)
+ expect(merge_request.approvals.pluck(:user_id)).to contain_exactly(user2.id)
+ end
+ end
+
it 'clears approvals of the merge_request' do
put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/reset_approvals", bot)
diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb
index 6000fa29dc4..6ba51080bf0 100644
--- a/spec/requests/api/merge_requests_spec.rb
+++ b/spec/requests/api/merge_requests_spec.rb
@@ -193,7 +193,7 @@ RSpec.describe API::MergeRequests, :aggregate_failures, feature_category: :sourc
control = ActiveRecord::QueryRecorder.new do
get api(path, user)
- end.count
+ end
mr = create(:merge_request)
create(:label_link, label: label, target: mr)
@@ -1232,7 +1232,7 @@ RSpec.describe API::MergeRequests, :aggregate_failures, feature_category: :sourc
it 'avoids N+1 queries', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/330335' do
control = ActiveRecord::QueryRecorder.new do
get api("/projects/#{project.id}/merge_requests", user)
- end.count
+ end
create(:merge_request, author: user, assignees: [user], source_project: project, target_project: project, created_at: base_time)
diff --git a/spec/requests/api/ml/mlflow/experiments_spec.rb b/spec/requests/api/ml/mlflow/experiments_spec.rb
index 409b4529699..ac2d5539408 100644
--- a/spec/requests/api/ml/mlflow/experiments_spec.rb
+++ b/spec/requests/api/ml/mlflow/experiments_spec.rb
@@ -207,4 +207,81 @@ RSpec.describe API::Ml::Mlflow::Experiments, feature_category: :mlops do
it_behaves_like 'MLflow|Bad Request on missing required', [:key, :value]
end
end
+
+ describe 'GET /projects/:id/ml/mlflow/api/2.0/mlflow/experiments/search' do
+ let_it_be(:experiment_b) do
+ create(:ml_experiments, project: project, name: "#{experiment.name}_2")
+ end
+
+ let_it_be(:experiment_c) do
+ create(:ml_experiments, project: project, name: "#{experiment.name}_1")
+ end
+
+ let(:order_by) { nil }
+ let(:default_params) do
+ {
+ 'max_results' => 2,
+ 'order_by' => order_by
+ }
+ end
+
+ let(:route) { "/projects/#{project_id}/ml/mlflow/api/2.0/mlflow/experiments/search" }
+ let(:request) { post api(route), params: default_params.merge(**params), headers: headers }
+
+ it 'returns all the models', :aggregate_failures do
+ is_expected.to have_gitlab_http_status(:ok)
+ is_expected.to match_response_schema('ml/search_experiments')
+ expect(json_response["experiments"].count).to be(2)
+ end
+
+ describe 'pagination and ordering' do
+ RSpec.shared_examples 'a paginated search experiments request with order' do
+ it 'paginates respecting the provided order by' do
+ first_page_experiments = json_response['experiments']
+ expect(first_page_experiments.size).to eq(2)
+
+ expect(first_page_experiments[0]['experiment_id'].to_i).to eq(expected_order[0].iid)
+ expect(first_page_experiments[1]['experiment_id'].to_i).to eq(expected_order[1].iid)
+
+ params = default_params.merge(page_token: json_response['next_page_token'])
+
+ post api(route), params: params, headers: headers
+
+ second_page_response = Gitlab::Json.parse(response.body)
+ second_page_experiments = second_page_response['experiments']
+
+ expect(second_page_response['next_page_token']).to be_nil
+ expect(second_page_experiments.size).to eq(1)
+ expect(second_page_experiments[0]['experiment_id'].to_i).to eq(expected_order[2].iid)
+ end
+ end
+
+ let(:default_order) { [experiment_c, experiment_b, experiment] }
+
+ context 'when ordering is not provided' do
+ let(:expected_order) { default_order }
+
+ it_behaves_like 'a paginated search experiments request with order'
+ end
+
+ context 'when order by column is provided', 'and column exists' do
+ let(:order_by) { 'name ASC' }
+ let(:expected_order) { [experiment, experiment_c, experiment_b] }
+
+ it_behaves_like 'a paginated search experiments request with order'
+ end
+
+ context 'when order by column is provided', 'and column does not exist' do
+ let(:order_by) { 'something DESC' }
+ let(:expected_order) { default_order }
+
+ it_behaves_like 'a paginated search experiments request with order'
+ end
+ end
+
+ describe 'Error States' do
+ it_behaves_like 'MLflow|shared error cases'
+ it_behaves_like 'MLflow|Requires api scope and write permission'
+ end
+ end
end
diff --git a/spec/requests/api/ml/mlflow/model_versions_spec.rb b/spec/requests/api/ml/mlflow/model_versions_spec.rb
index e62bccf1507..812044651af 100644
--- a/spec/requests/api/ml/mlflow/model_versions_spec.rb
+++ b/spec/requests/api/ml/mlflow/model_versions_spec.rb
@@ -157,6 +157,23 @@ RSpec.describe API::Ml::Mlflow::ModelVersions, feature_category: :mlops do
expect(json_response["model_version"]["version"]).to eq('2.0.0')
end
+ describe 'user assigned version' do
+ let(:params) do
+ {
+ 'name' => model_name,
+ 'description' => 'description-text',
+ 'tags' => [{ 'key' => 'gitlab.version', 'value' => '1.2.3' }]
+ }
+ end
+
+ it 'assigns the supplied version string via the gitlab tag' do
+ is_expected.to have_gitlab_http_status(:ok)
+ expect(json_response["model_version"]["version"]).to eq('1.2.3')
+ expect(json_response["model_version"]["tags"]).to match_array([{ "key" => 'gitlab.version',
+ "value" => '1.2.3' }])
+ end
+ end
+
describe 'Error States' do
context 'when has access' do
context 'and model does not exist' do
@@ -164,6 +181,30 @@ RSpec.describe API::Ml::Mlflow::ModelVersions, feature_category: :mlops do
it_behaves_like 'MLflow|Not Found - Resource Does Not Exist'
end
+
+ # TODO: Ensure consisted error responses https://gitlab.com/gitlab-org/gitlab/-/issues/429731
+ context 'when a duplicate tag name is supplied' do
+ let(:params) do
+ { name: model_name, tags: [{ key: 'key1', value: 'value1' }, { key: 'key1', value: 'value2' }] }
+ end
+
+ it "returns a validation error", :aggregate_failures do
+ expect(json_response).to include({ 'error_code' => 'INVALID_PARAMETER_VALUE' })
+ expect(model.metadata.count).to be 0
+ end
+ end
+
+ # TODO: Ensure consisted error responses https://gitlab.com/gitlab-org/gitlab/-/issues/429731
+ context 'when an empty tag name is supplied' do
+ let(:params) do
+ { name: model_name, tags: [{ key: '', value: 'value1' }, { key: 'key1', value: 'value2' }] }
+ end
+
+ it "returns a validation error", :aggregate_failures do
+ expect(json_response).to include({ 'error_code' => 'INVALID_PARAMETER_VALUE' })
+ expect(model.metadata.count).to be 0
+ end
+ end
end
it_behaves_like 'MLflow|an authenticated resource'
diff --git a/spec/requests/api/namespaces_spec.rb b/spec/requests/api/namespaces_spec.rb
index 5fd41013b25..2320b3be0c1 100644
--- a/spec/requests/api/namespaces_spec.rb
+++ b/spec/requests/api/namespaces_spec.rb
@@ -109,6 +109,19 @@ RSpec.describe API::Namespaces, :aggregate_failures, feature_category: :groups_a
expect(json_response.map { |resource| resource['id'] }).to match_array([user.namespace_id, group2.id])
end
end
+
+ context 'with top_level_only param' do
+ it 'returns only top level groups' do
+ group1.add_owner(user)
+ group2.add_owner(user)
+
+ get api("/namespaces?top_level_only=true", user)
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to include_pagination_headers
+ expect(json_response.map { |resource| resource['id'] }).to match_array([user.namespace_id, group1.id])
+ end
+ end
end
end
diff --git a/spec/requests/api/pages_domains_spec.rb b/spec/requests/api/pages_domains_spec.rb
index 42d83ff8139..27d69f1aa03 100644
--- a/spec/requests/api/pages_domains_spec.rb
+++ b/spec/requests/api/pages_domains_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe API::PagesDomains, feature_category: :pages do
let(:route_letsencrypt_domain) { "/projects/#{project.id}/pages/domains/#{pages_domain_with_letsencrypt.domain}" }
before do
- allow(Gitlab.config.pages).to receive(:enabled).and_return(true)
+ stub_pages_setting(enabled: true)
end
describe 'GET /pages/domains' do
diff --git a/spec/requests/api/pages_spec.rb b/spec/requests/api/pages_spec.rb
new file mode 100644
index 00000000000..23ffeb143cb
--- /dev/null
+++ b/spec/requests/api/pages_spec.rb
@@ -0,0 +1,91 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+RSpec.describe API::Pages, feature_category: :pages do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:admin) { create(:admin) }
+
+ let(:user) { create(:user) }
+
+ before do
+ stub_pages_setting(enabled: true)
+
+ create(
+ :project_setting,
+ project: project,
+ pages_unique_domain_enabled: true,
+ pages_unique_domain: 'unique-domain')
+ end
+
+ context "when get pages setting endpoint" do
+ let(:user) { create(:user) }
+
+ it "returns the :ok for project maintainers (and above)" do
+ project.add_maintainer(user)
+
+ get api("/projects/#{project.id}/pages", user)
+
+ expect(response).to have_gitlab_http_status(:ok)
+ end
+
+ it "returns the :forbidden for project developers (and below)" do
+ project.add_developer(user)
+
+ get api("/projects/#{project.id}/pages", user)
+
+ expect(response).to have_gitlab_http_status(:forbidden)
+ end
+
+ context "when the pages feature is disabled" do
+ it "returns the :not_found when user is not in the project" do
+ project.project_feature.update!(pages_access_level: 0)
+
+ get api("/projects/#{project.id}/pages", user)
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+
+ context "when the project has pages deployments", :time_freeze, :aggregate_failures do
+ let_it_be(:created_at) { Time.now.utc }
+
+ before_all do
+ create(:pages_deployment, path_prefix: '/foo', project: project, created_at: created_at)
+ create(:pages_deployment, project: project, created_at: created_at)
+
+ # this one is here to ensure the endpoint don't return "inactive" deployments
+ create(
+ :pages_deployment,
+ path_prefix: '/bar',
+ project: project,
+ created_at: created_at,
+ deleted_at: 5.minutes.from_now)
+ end
+
+ it "return the right data" do
+ project.add_owner(user)
+
+ get api("/projects/#{project.id}/pages", user)
+
+ expect(json_response["force_https"]).to eq(false)
+ expect(json_response["is_unique_domain_enabled"]).to eq(true)
+ expect(json_response["url"]).to eq("http://unique-domain.example.com")
+ expect(json_response["deployments"]).to match_array([
+ {
+ "created_at" => created_at.strftime('%Y-%m-%dT%H:%M:%S.%3LZ'),
+ "path_prefix" => "/foo",
+ "root_directory" => "public",
+ "url" => "http://unique-domain.example.com/foo"
+ },
+ {
+ "created_at" => created_at.strftime('%Y-%m-%dT%H:%M:%S.%3LZ'),
+ "path_prefix" => nil,
+ "root_directory" => "public",
+ "url" => "http://unique-domain.example.com/"
+ }
+ ])
+ end
+ end
+ end
+end
diff --git a/spec/requests/api/project_container_repositories_spec.rb b/spec/requests/api/project_container_repositories_spec.rb
index 7797e8e9402..c9bba26524c 100644
--- a/spec/requests/api/project_container_repositories_spec.rb
+++ b/spec/requests/api/project_container_repositories_spec.rb
@@ -65,7 +65,6 @@ RSpec.describe API::ProjectContainerRepositories, feature_category: :container_r
shared_context 'using job token' do
before do
stub_exclusive_lease
- stub_feature_flags(ci_job_token_scope: true)
end
subject { public_send(method, api(url), params: params.merge({ job_token: job.token })) }
@@ -74,29 +73,15 @@ RSpec.describe API::ProjectContainerRepositories, feature_category: :container_r
shared_context 'using job token from another project' do
before do
stub_exclusive_lease
- stub_feature_flags(ci_job_token_scope: true)
end
subject { public_send(method, api(url), params: { job_token: job2.token }) }
end
- shared_context 'using job token while ci_job_token_scope feature flag is disabled' do
- before do
- stub_exclusive_lease
- stub_feature_flags(ci_job_token_scope: false)
- end
-
- subject { public_send(method, api(url), params: params.merge({ job_token: job.token })) }
- end
-
shared_examples 'rejected job token scopes' do
include_context 'using job token from another project' do
it_behaves_like 'rejected container repository access', :maintainer, :forbidden
end
-
- include_context 'using job token while ci_job_token_scope feature flag is disabled' do
- it_behaves_like 'rejected container repository access', :maintainer, :forbidden
- end
end
describe 'GET /projects/:id/registry/repositories' do
diff --git a/spec/requests/api/project_import_spec.rb b/spec/requests/api/project_import_spec.rb
index 49471b98eba..a73f3366dcb 100644
--- a/spec/requests/api/project_import_spec.rb
+++ b/spec/requests/api/project_import_spec.rb
@@ -62,9 +62,9 @@ RSpec.describe API::ProjectImport, :aggregate_failures, feature_category: :impor
it_behaves_like 'requires import source to be enabled'
it 'executes a limited number of queries', :use_clean_rails_redis_caching do
- control_count = ActiveRecord::QueryRecorder.new { subject }.count
+ control = ActiveRecord::QueryRecorder.new { subject }
- expect(control_count).to be <= 111
+ expect(control.count).to be <= 111
end
it 'schedules an import using a namespace' do
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index b8e029385e3..cf6152a9b67 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -1152,7 +1152,7 @@ RSpec.describe API::Projects, :aggregate_failures, feature_category: :groups_and
expect do
request
- end.not_to exceed_all_query_limit(control.count)
+ end.not_to exceed_all_query_limit(control)
end
end
@@ -3799,7 +3799,7 @@ RSpec.describe API::Projects, :aggregate_failures, feature_category: :groups_and
expect do
post api("/projects/#{project.id}/import_project_members/#{measure_project.id}", user)
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
it 'returns 200 when it successfully imports members from another project' do
diff --git a/spec/requests/api/releases_spec.rb b/spec/requests/api/releases_spec.rb
index 493dc4e72c6..0c811a21fb0 100644
--- a/spec/requests/api/releases_spec.rb
+++ b/spec/requests/api/releases_spec.rb
@@ -156,9 +156,9 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
create(:release, :with_evidence, project: project, tag: 'v0.1', author: maintainer)
create(:release_link, release: project.releases.first)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/releases", maintainer)
- end.count
+ end
create_list(:release, 2, :with_evidence, project: project, author: maintainer)
create_list(:release, 2, project: project)
@@ -167,7 +167,7 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
expect do
get api("/projects/#{project.id}/releases", maintainer)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
it 'serializes releases for the first time and read cached data from the second time' do
@@ -1715,9 +1715,9 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
subject
expect(response).to have_gitlab_http_status(:ok)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
subject
- end.count
+ end
subgroups = create_list(:group, 10, parent: group1)
projects = create_list(:project, 10, namespace: subgroups[0])
@@ -1725,7 +1725,7 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
expect do
subject
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/requests/api/terraform/modules/v1/packages_spec.rb b/spec/requests/api/terraform/modules/v1/namespace_packages_spec.rb
index 949acdb17e1..d655085a30f 100644
--- a/spec/requests/api/terraform/modules/v1/packages_spec.rb
+++ b/spec/requests/api/terraform/modules/v1/namespace_packages_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package_registry do
+RSpec.describe API::Terraform::Modules::V1::NamespacePackages, feature_category: :package_registry do
include_context 'for terraform modules api setup'
using RSpec::Parameterized::TableSyntax
@@ -10,17 +10,19 @@ RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package
let(:url) { api("/packages/terraform/modules/v1/#{group.path}/#{package.name}/versions") }
let(:headers) { { 'Authorization' => "Bearer #{tokens[:job_token]}" } }
- subject { get(url, headers: headers) }
+ subject(:get_versions) { get(url, headers: headers) }
context 'with a conflicting package name' do
- let!(:conflicting_package) { create(:terraform_module_package, project: project, name: "conflict-#{package.name}", version: '2.0.0') }
+ let!(:conflicting_package) do
+ create(:terraform_module_package, project: project, name: "conflict-#{package.name}", version: '2.0.0')
+ end
before do
group.add_developer(user)
end
it 'returns only one version' do
- subject
+ get_versions
expect(json_response['modules'][0]['versions'].size).to eq(1)
expect(json_response['modules'][0]['versions'][0]['version']).to eq('1.0.0')
@@ -77,14 +79,14 @@ RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package
end
describe 'GET /api/v4/packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/download' do
- context 'empty registry' do
+ context 'with empty registry' do
let(:url) { api("/packages/terraform/modules/v1/#{group.path}/module-2/system/download") }
let(:headers) { {} }
- subject { get(url, headers: headers) }
+ subject(:get_download) { get(url, headers: headers) }
it 'returns not found when there is no module' do
- subject
+ get_download
expect(response).to have_gitlab_http_status(:not_found)
end
@@ -150,14 +152,14 @@ RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package
end
describe 'GET /api/v4/packages/terraform/modules/v1/:module_namespace/:module_name/:module_system' do
- context 'empty registry' do
+ context 'with empty registry' do
let(:url) { api("/packages/terraform/modules/v1/#{group.path}/non-existent/system") }
let(:headers) { { 'Authorization' => "Bearer #{tokens[:personal_access_token]}" } }
- subject { get(url, headers: headers) }
+ subject(:get_module) { get(url, headers: headers) }
it 'returns not found when there is no module' do
- subject
+ get_module
expect(response).to have_gitlab_http_status(:not_found)
end
@@ -221,16 +223,16 @@ RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package
let(:url) { api("/packages/terraform/modules/v1/#{group.path}/#{package.name}/#{package.version}") }
let(:headers) { {} }
- subject { get(url, headers: headers) }
+ subject(:get_module_version) { get(url, headers: headers) }
- context 'not found' do
+ context 'when not found' do
let(:url) { api("/packages/terraform/modules/v1/#{group.path}/#{package.name}/2.0.0") }
let(:headers) { { 'Authorization' => "Bearer #{tokens[:job_token]}" } }
subject { get(url, headers: headers) }
it 'returns not found when the specified version is not present in the registry' do
- subject
+ get_module_version
expect(response).to have_gitlab_http_status(:not_found)
end
@@ -343,7 +345,10 @@ RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package
end
describe 'GET /api/v4/packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/file' do
- let(:url) { api("/packages/terraform/modules/v1/#{group.path}/#{package.name}/#{package.version}/file?token=#{token}") }
+ let(:url) do
+ api("/packages/terraform/modules/v1/#{group.path}/#{package.name}/#{package.version}/file?token=#{token}")
+ end
+
let(:tokens) do
{
personal_access_token: ::Gitlab::JWTToken.new.tap { |jwt| jwt['token'] = personal_access_token.id }.encoded,
@@ -352,7 +357,7 @@ RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package
}
end
- subject { get(url, headers: headers) }
+ subject(:get_file) { get(url, headers: headers) }
context 'with valid namespace' do
where(:visibility, :user_role, :member, :token_type, :shared_examples_name, :expected_status) do
@@ -414,8 +419,15 @@ RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package
end
context 'with package file pending destruction' do
- let_it_be(:package) { create(:package, package_type: :terraform_module, project: project, name: "module-555/pending-destruction", version: '1.0.0') }
- let_it_be(:package_file_pending_destruction) { create(:package_file, :pending_destruction, :xml, package: package) }
+ let_it_be(:package) do
+ create(:package, package_type: :terraform_module, project: project, name: "module-555/pending-destruction",
+ version: '1.0.0')
+ end
+
+ let_it_be(:package_file_pending_destruction) do
+ create(:package_file, :pending_destruction, :xml, package: package)
+ end
+
let_it_be(:package_file) { create(:package_file, :terraform_module, package: package) }
let(:token) { tokens[:personal_access_token] }
@@ -426,7 +438,7 @@ RSpec.describe API::Terraform::Modules::V1::Packages, feature_category: :package
end
it 'does not return them' do
- subject
+ get_file
expect(response).to have_gitlab_http_status(:ok)
expect(response.body).not_to eq(package_file_pending_destruction.file.file.read)
diff --git a/spec/requests/api/terraform/modules/v1/project_packages_spec.rb b/spec/requests/api/terraform/modules/v1/project_packages_spec.rb
index 1f3b2283d59..70f7ec64d40 100644
--- a/spec/requests/api/terraform/modules/v1/project_packages_spec.rb
+++ b/spec/requests/api/terraform/modules/v1/project_packages_spec.rb
@@ -6,6 +6,18 @@ RSpec.describe API::Terraform::Modules::V1::ProjectPackages, feature_category: :
include_context 'for terraform modules api setup'
using RSpec::Parameterized::TableSyntax
+ describe 'GET /api/v4/projects/:project_id/packages/terraform/modules/:module_name/:module_system' do
+ it_behaves_like 'handling project level terraform module download requests' do
+ let(:module_version) { nil }
+ end
+ end
+
+ describe 'GET /api/v4/projects/:project_id/packages/terraform/modules/:module_name/:module_system/:module_version' do
+ it_behaves_like 'handling project level terraform module download requests' do
+ let(:module_version) { package.version }
+ end
+ end
+
describe 'PUT /api/v4/projects/:project_id/packages/terraform/modules/:module_name/:module_system/:module_version/file/authorize' do
include_context 'workhorse headers'
@@ -91,7 +103,28 @@ RSpec.describe API::Terraform::Modules::V1::ProjectPackages, feature_category: :
)
end
+ shared_examples 'creating a package' do
+ it 'creates a package' do
+ expect { api_request }
+ .to change { project.packages.count }.by(1)
+ .and change { Packages::PackageFile.count }.by(1)
+ expect(response).to have_gitlab_http_status(:created)
+ end
+ end
+
+ shared_examples 'not creating a package' do |expected_status|
+ it 'does not create a package' do
+ expect { api_request }
+ .to change { project.packages.count }.by(0)
+ .and change { Packages::PackageFile.count }.by(0)
+ expect(response).to have_gitlab_http_status(expected_status)
+ end
+ end
+
context 'with valid project' do
+ let(:user_headers) { { 'PRIVATE-TOKEN' => personal_access_token.token } }
+ let(:headers) { user_headers.merge(workhorse_headers) }
+
where(:visibility, :user_role, :member, :token_header, :token_type, :shared_examples_name, :expected_status) do
:public | :developer | true | 'PRIVATE-TOKEN' | :personal_access_token | 'process terraform module upload' | :created
:public | :guest | true | 'PRIVATE-TOKEN' | :personal_access_token | 'rejects terraform module packages access' | :forbidden
@@ -135,7 +168,6 @@ RSpec.describe API::Terraform::Modules::V1::ProjectPackages, feature_category: :
with_them do
let(:user_headers) { user_role == :anonymous ? {} : { token_header => token } }
- let(:headers) { user_headers.merge(workhorse_headers) }
let(:snowplow_gitlab_standard_context) do
{ project: project, namespace: project.namespace, user: snowplow_user,
property: 'i_package_terraform_module_user' }
@@ -160,43 +192,73 @@ RSpec.describe API::Terraform::Modules::V1::ProjectPackages, feature_category: :
end
context 'when failed package file save' do
- let(:user_headers) { { 'PRIVATE-TOKEN' => personal_access_token.token } }
- let(:headers) { user_headers.merge(workhorse_headers) }
+ before do
+ project.add_developer(user)
+ allow(Packages::CreatePackageFileService).to receive(:new).and_raise(StandardError)
+ end
+
+ it_behaves_like 'not creating a package', :error
+ end
+
+ context 'with an existing package in the same project' do
+ let_it_be_with_reload(:existing_package) do
+ create(:terraform_module_package, name: 'mymodule/mysystem', version: '1.0.0', project: project)
+ end
before do
project.add_developer(user)
end
- it 'does not create package record', :aggregate_failures do
- allow(Packages::CreatePackageFileService).to receive(:new).and_raise(StandardError)
+ it_behaves_like 'not creating a package', :forbidden
+
+ context 'when marked as pending_destruction' do
+ before do
+ existing_package.pending_destruction!
+ end
- expect { api_request }
- .to change { project.packages.count }.by(0)
- .and change { Packages::PackageFile.count }.by(0)
- expect(response).to have_gitlab_http_status(:error)
+ it_behaves_like 'creating a package'
end
+ end
+
+ context 'with existing package in another project' do
+ let_it_be(:package_settings) { create(:namespace_package_setting, namespace: group) }
+ let_it_be(:project2) { create(:project, namespace: group) }
+ let!(:existing_package) { create(:terraform_module_package, name: 'mymodule/mysystem', project: project2) }
- context 'with an existing package' do
- let_it_be_with_reload(:existing_package) do
- create(:terraform_module_package, name: 'mymodule/mysystem', version: '1.0.0', project: project)
+ before do
+ project.add_developer(user)
+ end
+
+ context 'when duplicates not allowed' do
+ it_behaves_like 'not creating a package', :forbidden
+ end
+
+ context 'when duplicates allowed' do
+ before do
+ package_settings.update_column(:terraform_module_duplicates_allowed, true)
end
- it 'does not create a new package' do
- expect { api_request }
- .to change { project.packages.count }.by(0)
- .and change { Packages::PackageFile.count }.by(0)
- expect(response).to have_gitlab_http_status(:forbidden)
+ it_behaves_like 'creating a package'
+ end
+
+ context 'with duplicate regex exception' do
+ before do
+ package_settings.update_columns(
+ terraform_module_duplicates_allowed: false,
+ terraform_module_duplicate_exception_regex: regex
+ )
+ end
+
+ context 'when regex matches' do
+ let(:regex) { ".*#{existing_package.name.last(3)}.*" }
+
+ it_behaves_like 'creating a package'
end
- context 'when marked as pending_destruction' do
- it 'does create a new package' do
- existing_package.pending_destruction!
+ context 'when regex does not match' do
+ let(:regex) { '.*non-matching-regex.*' }
- expect { api_request }
- .to change { project.packages.count }.by(1)
- .and change { Packages::PackageFile.count }.by(1)
- expect(response).to have_gitlab_http_status(:created)
- end
+ it_behaves_like 'not creating a package', :forbidden
end
end
end
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index 86c4e04ef71..de3460208b7 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -265,9 +265,9 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
end
it 'avoids N+1 queries when requested by admin' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api(path, admin)
- end.count
+ end
create_list(:user, 3)
@@ -277,19 +277,19 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
expect do
get api(path, admin)
- end.not_to exceed_all_query_limit(control_count + 3)
+ end.not_to exceed_all_query_limit(control).with_threshold(3)
end
it 'avoids N+1 queries when requested by a regular user' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api(path, user)
- end.count
+ end
create_list(:user, 3)
expect do
get api(path, user)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
@@ -2272,16 +2272,16 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
it 'avoids N+1 queries' do
second_project.add_maintainer(user)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api(path, user)
- end.count
+ end
deploy_key = create(:deploy_key, user: second_user)
create(:deploy_keys_project, project: second_project, deploy_key_id: deploy_key.id)
expect do
get api(path, user)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
end
@@ -2328,15 +2328,15 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
end
it 'avoids N+1 queries', :request_store do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
request
- end.count
+ end
create_list(:key, 2, user: user)
expect do
request
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
@@ -3044,15 +3044,15 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
end
it 'avoids N+1 queries', :request_store do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
request
- end.count
+ end
create_list(:key, 2, user: user)
expect do
request
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/requests/application_controller_spec.rb b/spec/requests/application_controller_spec.rb
index 52fdf6bc69e..969fdbe9838 100644
--- a/spec/requests/application_controller_spec.rb
+++ b/spec/requests/application_controller_spec.rb
@@ -5,11 +5,33 @@ require 'spec_helper'
RSpec.describe ApplicationController, type: :request, feature_category: :shared do
let_it_be(:user) { create(:user) }
- before do
- sign_in(user)
- end
-
it_behaves_like 'Base action controller' do
+ before do
+ sign_in(user)
+ end
+
subject(:request) { get root_path }
end
+
+ describe 'session expiration' do
+ context 'when user is authenticated' do
+ it 'does not set the expire_after option' do
+ sign_in(user)
+
+ get root_path
+
+ expect(request.env['rack.session.options'][:expire_after]).to be_nil
+ end
+ end
+
+ context 'when user is unauthenticated' do
+ it 'sets the expire_after option' do
+ get root_path
+
+ expect(request.env['rack.session.options'][:expire_after]).to eq(
+ Settings.gitlab['unauthenticated_session_expire_delay']
+ )
+ end
+ end
+ end
end
diff --git a/spec/requests/explore/catalog_controller_spec.rb b/spec/requests/explore/catalog_controller_spec.rb
index e75b0bba5a6..59a5dcffd3c 100644
--- a/spec/requests/explore/catalog_controller_spec.rb
+++ b/spec/requests/explore/catalog_controller_spec.rb
@@ -13,10 +13,6 @@ RSpec.describe Explore::CatalogController, feature_category: :pipeline_compositi
catalog_resource.project.add_reporter(user)
end
- before do
- sign_in(user)
- end
-
shared_examples 'basic get requests' do |action|
let(:path) do
if action == :index
@@ -34,6 +30,10 @@ RSpec.describe Explore::CatalogController, feature_category: :pipeline_compositi
end
describe 'GET #show' do
+ before do
+ sign_in(user)
+ end
+
it_behaves_like 'basic get requests', :show
context 'when rendering a draft catalog resource' do
@@ -56,14 +56,30 @@ RSpec.describe Explore::CatalogController, feature_category: :pipeline_compositi
end
describe 'GET #index' do
- let(:subject) { get explore_catalog_index_path }
+ subject(:visit_explore_catalog) { get explore_catalog_index_path }
+
+ context 'with an authenticated user' do
+ before do
+ sign_in(user)
+ end
- it_behaves_like 'basic get requests', :index
+ it_behaves_like 'basic get requests', :index
- it_behaves_like 'internal event tracking' do
- let(:namespace) { user.namespace }
- let(:project) { nil }
- let(:event) { 'unique_users_visiting_ci_catalog' }
+ it_behaves_like 'internal event tracking' do
+ let(:namespace) { user.namespace }
+ let(:project) { nil }
+ let(:event) { 'unique_users_visiting_ci_catalog' }
+ end
+ end
+
+ context 'with an anonymous user' do
+ it_behaves_like 'basic get requests', :index
+
+ it 'does not track the event' do
+ expect(Gitlab::InternalEvents).not_to receive(:track_event)
+
+ visit_explore_catalog
+ end
end
end
end
diff --git a/spec/requests/groups/milestones_controller_spec.rb b/spec/requests/groups/milestones_controller_spec.rb
index 54a25333c02..ed24ad6489f 100644
--- a/spec/requests/groups/milestones_controller_spec.rb
+++ b/spec/requests/groups/milestones_controller_spec.rb
@@ -18,14 +18,16 @@ RSpec.describe Groups::MilestonesController, feature_category: :team_planning do
public_project = create(:project, :public, :merge_requests_enabled, :issues_enabled, group: public_group)
create(:milestone, project: public_project)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) { get group_milestones_path(public_group, format: :json) }.count
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ get group_milestones_path(public_group, format: :json)
+ end
projects = create_list(:project, 2, :public, :merge_requests_enabled, :issues_enabled, group: public_group)
projects.each do |project|
create(:milestone, project: project)
end
- expect { get group_milestones_path(public_group, format: :json) }.not_to exceed_all_query_limit(control_count)
+ expect { get group_milestones_path(public_group, format: :json) }.not_to exceed_all_query_limit(control)
expect(response).to have_gitlab_http_status(:ok)
milestones = json_response
@@ -66,11 +68,11 @@ RSpec.describe Groups::MilestonesController, feature_category: :team_planning do
it 'avoids N+1 database queries' do
perform_request # warm up the cache
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
create(:merge_request, milestone: milestone, source_project: project, source_branch: 'fix')
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/requests/groups/registry/repositories_controller_spec.rb b/spec/requests/groups/registry/repositories_controller_spec.rb
index f54acf118bb..e4818676f81 100644
--- a/spec/requests/groups/registry/repositories_controller_spec.rb
+++ b/spec/requests/groups/registry/repositories_controller_spec.rb
@@ -20,13 +20,13 @@ RSpec.describe Groups::Registry::RepositoriesController, feature_category: :cont
create(:container_repository, project: project)
endpoint = group_container_registries_path(group, format: :json)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) { get(endpoint) }.count
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) { get(endpoint) }
create_list(:project, 2, group: group).each do |project|
create_list(:container_repository, 2, project: project)
end
- expect { get(endpoint) }.not_to exceed_all_query_limit(control_count)
+ expect { get(endpoint) }.not_to exceed_all_query_limit(control)
# sanity check that response is 200
expect(response).to have_gitlab_http_status(:ok)
diff --git a/spec/requests/import/gitlab_projects_controller_spec.rb b/spec/requests/import/gitlab_projects_controller_spec.rb
index 732851c7828..21f1f6598d7 100644
--- a/spec/requests/import/gitlab_projects_controller_spec.rb
+++ b/spec/requests/import/gitlab_projects_controller_spec.rb
@@ -28,6 +28,8 @@ RSpec.describe Import::GitlabProjectsController, feature_category: :importers do
end
context 'with a valid path' do
+ let(:experiment) { instance_double(ApplicationExperiment) }
+
it 'schedules an import and redirects to the new project path' do
stub_import(namespace)
@@ -36,6 +38,38 @@ RSpec.describe Import::GitlabProjectsController, feature_category: :importers do
expect(flash[:notice]).to include('is being imported')
expect(response).to have_gitlab_http_status(:found)
end
+
+ it 'tracks default_to_import_tab experiment' do
+ stub_import(namespace)
+
+ allow_next_instance_of(described_class) do |controller|
+ allow(controller)
+ .to receive(:experiment)
+ .with(:default_to_import_tab, actor: user)
+ .and_return(experiment)
+ end
+
+ expect(experiment).to receive(:track).with(:successfully_imported, property: 'gitlab_export')
+
+ subject
+ end
+
+ it 'does not track default_to_import_tab experiment when project was not imported' do
+ allow_next_instance_of(::Projects::GitlabProjectsImportService) do |service|
+ allow(service).to receive(:execute).and_return(build(:project))
+ end
+
+ allow_next_instance_of(described_class) do |controller|
+ allow(controller)
+ .to receive(:experiment)
+ .with(:default_to_import_tab, actor: user)
+ .and_return(experiment)
+ end
+
+ expect(experiment).not_to receive(:track)
+
+ subject
+ end
end
context 'with an invalid path' do
diff --git a/spec/requests/jwks_controller_spec.rb b/spec/requests/jwks_controller_spec.rb
index 3dc3ed68311..0cc30ff41fb 100644
--- a/spec/requests/jwks_controller_spec.rb
+++ b/spec/requests/jwks_controller_spec.rb
@@ -62,19 +62,5 @@ RSpec.describe JwksController, feature_category: :system_access do
expect(response).to have_gitlab_http_status(:ok)
expect(response.headers['Cache-Control']).to include('max-age=86400', 'public', 'must-revalidate', 'no-transform')
end
-
- context 'when cache_control_headers_for_openid_jwks feature flag is disabled' do
- before do
- stub_feature_flags(cache_control_headers_for_openid_jwks: false)
- end
-
- it 'does not have cache control header' do
- get jwks_url
-
- expect(response).to have_gitlab_http_status(:ok)
- expect(response.headers['Cache-Control']).not_to include('max-age=86400', 'public',
- 'no-transform')
- end
- end
end
end
diff --git a/spec/requests/oauth/authorizations_controller_spec.rb b/spec/requests/oauth/authorizations_controller_spec.rb
index 7887bf52542..6ef8970a142 100644
--- a/spec/requests/oauth/authorizations_controller_spec.rb
+++ b/spec/requests/oauth/authorizations_controller_spec.rb
@@ -5,16 +5,19 @@ require 'spec_helper'
RSpec.describe Oauth::AuthorizationsController, feature_category: :system_access do
let_it_be(:user) { create(:user) }
let_it_be(:application) { create(:oauth_application, redirect_uri: 'custom://test') }
- let_it_be(:oauth_authorization_path) do
- Gitlab::Routing.url_helpers.oauth_authorization_url(
+
+ let(:params) do
+ {
client_id: application.uid,
response_type: 'code',
scope: application.scopes,
redirect_uri: application.redirect_uri,
state: SecureRandom.hex
- )
+ }
end
+ let(:oauth_authorization_path) { Gitlab::Routing.url_helpers.oauth_authorization_url(params) }
+
before do
sign_in(user)
end
@@ -76,5 +79,23 @@ RSpec.describe Oauth::AuthorizationsController, feature_category: :system_access
end
end
end
+
+ context 'when the user is not signed in' do
+ before do
+ sign_out(user)
+ end
+
+ it 'sets a lower session expiry and redirects to the sign in page' do
+ get oauth_authorization_path
+
+ expect(request.env['rack.session.options'][:expire_after]).to eq(
+ Settings.gitlab['unauthenticated_session_expire_delay']
+ )
+
+ expect(request.session['user_return_to']).to eq("/oauth/authorize?#{params.to_query}")
+ expect(response).to have_gitlab_http_status(:found)
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
end
end
diff --git a/spec/requests/openid_connect_spec.rb b/spec/requests/openid_connect_spec.rb
index 6573fe570db..168008b0eb9 100644
--- a/spec/requests/openid_connect_spec.rb
+++ b/spec/requests/openid_connect_spec.rb
@@ -273,7 +273,7 @@ RSpec.describe 'OpenID Connect requests', feature_category: :system_access do
let(:expected_scopes) do
%w[
admin_mode api read_user read_api read_repository write_repository sudo openid profile email
- read_observability write_observability create_runner k8s_proxy ai_features
+ read_observability write_observability create_runner k8s_proxy ai_features read_service_ping
]
end
diff --git a/spec/requests/organizations/organizations_controller_spec.rb b/spec/requests/organizations/organizations_controller_spec.rb
index bfd0603eb3d..33eafaf8ebd 100644
--- a/spec/requests/organizations/organizations_controller_spec.rb
+++ b/spec/requests/organizations/organizations_controller_spec.rb
@@ -119,4 +119,29 @@ RSpec.describe Organizations::OrganizationsController, feature_category: :cell d
it_behaves_like 'controller action that requires authentication by any user'
end
+
+ describe 'POST #preview_markdown' do
+ subject(:gitlab_request) { post preview_markdown_organizations_path, params: { text: '### Foo \n **bar**' } }
+
+ it_behaves_like 'controller action that requires authentication by any user'
+
+ context 'when the user is signed in' do
+ let_it_be(:user) { create(:user) }
+
+ before do
+ sign_in(user)
+ end
+
+ it 'returns html from markdown' do
+ stub_commonmark_sourcepos_disabled
+ sign_in(user)
+ gitlab_request
+
+ body = Gitlab::Json.parse(response.body)['body']
+
+ expect(body).not_to include('Foo</h3>')
+ expect(body).to include('<strong>bar</strong>')
+ end
+ end
+ end
end
diff --git a/spec/requests/organizations/settings_controller_spec.rb b/spec/requests/organizations/settings_controller_spec.rb
index 1d98e598159..0177187e3a3 100644
--- a/spec/requests/organizations/settings_controller_spec.rb
+++ b/spec/requests/organizations/settings_controller_spec.rb
@@ -21,13 +21,13 @@ RSpec.describe Organizations::SettingsController, feature_category: :cell do
end
context 'when the user is signed in' do
+ let_it_be(:user) { create(:user) }
+
before do
sign_in(user)
end
context 'with no association to an organization' do
- let_it_be(:user) { create(:user) }
-
it_behaves_like 'organization - not found response'
it_behaves_like 'organization - action disabled by `ui_for_organizations` feature flag'
end
@@ -39,11 +39,18 @@ RSpec.describe Organizations::SettingsController, feature_category: :cell do
it_behaves_like 'organization - action disabled by `ui_for_organizations` feature flag'
end
- context 'as an organization user' do
- let_it_be(:user) { create :user }
+ context 'as a default organization user' do
+ before_all do
+ create(:organization_user, organization: organization, user: user)
+ end
- before do
- create :organization_user, organization: organization, user: user
+ it_behaves_like 'organization - not found response'
+ it_behaves_like 'organization - action disabled by `ui_for_organizations` feature flag'
+ end
+
+ context 'as an owner of an organization' do
+ before_all do
+ create(:organization_user, :owner, organization: organization, user: user)
end
it_behaves_like 'organization - successful response'
diff --git a/spec/requests/projects/gcp/artifact_registry/docker_images_controller_spec.rb b/spec/requests/projects/gcp/artifact_registry/docker_images_controller_spec.rb
index d571999feb0..f1c87243516 100644
--- a/spec/requests/projects/gcp/artifact_registry/docker_images_controller_spec.rb
+++ b/spec/requests/projects/gcp/artifact_registry/docker_images_controller_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe Projects::Gcp::ArtifactRegistry::DockerImagesController, feature_
describe '#index' do
let(:service_response) { ServiceResponse.success(payload: dummy_client_payload) }
let(:service_double) do
- instance_double('Integrations::GoogleCloudPlatform::ArtifactRegistry::ListDockerImagesService')
+ instance_double('GoogleCloudPlatform::ArtifactRegistry::ListDockerImagesService')
end
subject(:get_index_page) do
@@ -30,7 +30,7 @@ RSpec.describe Projects::Gcp::ArtifactRegistry::DockerImagesController, feature_
end
before do
- allow_next_instance_of(Integrations::GoogleCloudPlatform::ArtifactRegistry::ListDockerImagesService) do |service|
+ allow_next_instance_of(GoogleCloudPlatform::ArtifactRegistry::ListDockerImagesService) do |service|
allow(service).to receive(:execute).and_return(service_response)
end
end
@@ -58,6 +58,7 @@ RSpec.describe Projects::Gcp::ArtifactRegistry::DockerImagesController, feature_
expect(response.body).to include('tag2')
expect(response.body).to include('Prev')
expect(response.body).to include('Next')
+ expect(response.body).to include('https://location.pkg.dev/project/repo/image@sha256:6a')
end
context 'when the service returns an error response' do
diff --git a/spec/requests/projects/google_cloud/databases_controller_spec.rb b/spec/requests/projects/google_cloud/databases_controller_spec.rb
index fa978a3921f..46f6d27644c 100644
--- a/spec/requests/projects/google_cloud/databases_controller_spec.rb
+++ b/spec/requests/projects/google_cloud/databases_controller_spec.rb
@@ -96,7 +96,7 @@ RSpec.describe Projects::GoogleCloud::DatabasesController, :snowplow, feature_ca
context 'when EnableCloudsqlService fails' do
before do
- allow_next_instance_of(::GoogleCloud::EnableCloudsqlService) do |service|
+ allow_next_instance_of(::CloudSeed::GoogleCloud::EnableCloudsqlService) do |service|
allow(service).to receive(:execute)
.and_return({ status: :error, message: 'error' })
end
@@ -125,7 +125,7 @@ RSpec.describe Projects::GoogleCloud::DatabasesController, :snowplow, feature_ca
context 'when EnableCloudsqlService is successful' do
before do
- allow_next_instance_of(::GoogleCloud::EnableCloudsqlService) do |service|
+ allow_next_instance_of(::CloudSeed::GoogleCloud::EnableCloudsqlService) do |service|
allow(service).to receive(:execute)
.and_return({ status: :success, message: 'success' })
end
@@ -133,7 +133,7 @@ RSpec.describe Projects::GoogleCloud::DatabasesController, :snowplow, feature_ca
context 'when CreateCloudsqlInstanceService fails' do
before do
- allow_next_instance_of(::GoogleCloud::CreateCloudsqlInstanceService) do |service|
+ allow_next_instance_of(::CloudSeed::GoogleCloud::CreateCloudsqlInstanceService) do |service|
allow(service).to receive(:execute)
.and_return({ status: :error, message: 'error' })
end
@@ -162,7 +162,7 @@ RSpec.describe Projects::GoogleCloud::DatabasesController, :snowplow, feature_ca
context 'when CreateCloudsqlInstanceService is successful' do
before do
- allow_next_instance_of(::GoogleCloud::CreateCloudsqlInstanceService) do |service|
+ allow_next_instance_of(::CloudSeed::GoogleCloud::CreateCloudsqlInstanceService) do |service|
allow(service).to receive(:execute)
.and_return({ status: :success, message: 'success' })
end
diff --git a/spec/requests/projects/google_cloud/deployments_controller_spec.rb b/spec/requests/projects/google_cloud/deployments_controller_spec.rb
index e9eac1e7ecd..1a6482477ef 100644
--- a/spec/requests/projects/google_cloud/deployments_controller_spec.rb
+++ b/spec/requests/projects/google_cloud/deployments_controller_spec.rb
@@ -110,7 +110,7 @@ RSpec.describe Projects::GoogleCloud::DeploymentsController, feature_category: :
context 'when enable service fails' do
before do
- allow_next_instance_of(GoogleCloud::EnableCloudRunService) do |service|
+ allow_next_instance_of(CloudSeed::GoogleCloud::EnableCloudRunService) do |service|
allow(service)
.to receive(:execute)
.and_return(
@@ -146,7 +146,7 @@ RSpec.describe Projects::GoogleCloud::DeploymentsController, feature_category: :
before do
mock_gcp_error = Google::Apis::ClientError.new('some_error')
- allow_next_instance_of(GoogleCloud::EnableCloudRunService) do |service|
+ allow_next_instance_of(CloudSeed::GoogleCloud::EnableCloudRunService) do |service|
allow(service).to receive(:execute).and_raise(mock_gcp_error)
end
end
@@ -173,14 +173,14 @@ RSpec.describe Projects::GoogleCloud::DeploymentsController, feature_category: :
context 'GCP_PROJECT_IDs are defined' do
before do
- allow_next_instance_of(GoogleCloud::EnableCloudRunService) do |enable_cloud_run_service|
+ allow_next_instance_of(CloudSeed::GoogleCloud::EnableCloudRunService) do |enable_cloud_run_service|
allow(enable_cloud_run_service).to receive(:execute).and_return({ status: :success })
end
end
context 'when generate pipeline service fails' do
before do
- allow_next_instance_of(GoogleCloud::GeneratePipelineService) do |generate_pipeline_service|
+ allow_next_instance_of(CloudSeed::GoogleCloud::GeneratePipelineService) do |generate_pipeline_service|
allow(generate_pipeline_service).to receive(:execute).and_return({ status: :error })
end
end
@@ -206,7 +206,7 @@ RSpec.describe Projects::GoogleCloud::DeploymentsController, feature_category: :
end
it 'redirects to create merge request form' do
- allow_next_instance_of(GoogleCloud::GeneratePipelineService) do |service|
+ allow_next_instance_of(CloudSeed::GoogleCloud::GeneratePipelineService) do |service|
allow(service).to receive(:execute).and_return({ status: :success })
end
diff --git a/spec/requests/projects/ml/models_controller_spec.rb b/spec/requests/projects/ml/models_controller_spec.rb
index cda3f777a72..e469ee837bc 100644
--- a/spec/requests/projects/ml/models_controller_spec.rb
+++ b/spec/requests/projects/ml/models_controller_spec.rb
@@ -152,6 +152,27 @@ RSpec.describe Projects::Ml::ModelsController, feature_category: :mlops do
end
end
+ describe 'GET new' do
+ subject(:create_model_request) do
+ new_model
+ response
+ end
+
+ before do
+ create_model_request
+ end
+
+ it 'renders the template' do
+ is_expected.to render_template('projects/ml/models/new')
+ end
+
+ context 'when user does not have access' do
+ let(:write_model_registry) { false }
+
+ it { is_expected.to have_gitlab_http_status(:not_found) }
+ end
+ end
+
describe 'destroy' do
let(:model_for_deletion) do
create(:ml_models, project: project)
@@ -198,4 +219,8 @@ RSpec.describe Projects::Ml::ModelsController, feature_category: :mlops do
def delete_model
delete project_ml_model_path(project, model_id)
end
+
+ def new_model
+ get new_project_ml_model_path(project)
+ end
end
diff --git a/spec/requests/projects/pipelines_controller_spec.rb b/spec/requests/projects/pipelines_controller_spec.rb
index aa3fefdef14..8be4fecea04 100644
--- a/spec/requests/projects/pipelines_controller_spec.rb
+++ b/spec/requests/projects/pipelines_controller_spec.rb
@@ -25,14 +25,14 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
create_pipelines
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get_pipelines_index
- end.count
+ end
create_pipelines
# There appears to be one extra query for Pipelines#has_warnings? for some reason
- expect { get_pipelines_index }.not_to exceed_all_query_limit(control_count + 1)
+ expect { get_pipelines_index }.not_to exceed_all_query_limit(control).with_threshold(1)
expect(response).to have_gitlab_http_status(:ok)
expect(json_response['pipelines'].count).to eq(11)
end
@@ -56,9 +56,9 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
it 'does not execute N+1 queries' do
request_build_stage
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
request_build_stage
- end.count
+ end
create(:ci_build, pipeline: pipeline, stage: 'build')
@@ -70,7 +70,7 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
status: :failed)
end
- expect { request_build_stage }.not_to exceed_all_query_limit(control_count)
+ expect { request_build_stage }.not_to exceed_all_query_limit(control)
expect(response).to have_gitlab_http_status(:ok)
end
@@ -134,14 +134,14 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
request_build_stage(retried: true)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
request_build_stage(retried: true)
- end.count
+ end
create(:ci_build, :retried, :failed, pipeline: pipeline, stage: 'build')
create(:ci_build, :failed, pipeline: pipeline, stage: 'build')
- expect { request_build_stage(retried: true) }.not_to exceed_all_query_limit(control_count)
+ expect { request_build_stage(retried: true) }.not_to exceed_all_query_limit(control)
expect(response).to have_gitlab_http_status(:ok)
end
diff --git a/spec/requests/projects/settings/packages_and_registries_controller_spec.rb b/spec/requests/projects/settings/packages_and_registries_controller_spec.rb
index 2806beadd4e..c660be0f3bf 100644
--- a/spec/requests/projects/settings/packages_and_registries_controller_spec.rb
+++ b/spec/requests/projects/settings/packages_and_registries_controller_spec.rb
@@ -16,6 +16,36 @@ RSpec.describe Projects::Settings::PackagesAndRegistriesController, feature_cate
stub_container_registry_config(enabled: container_registry_enabled)
end
+ describe 'GET #show' do
+ context 'when user is authorized' do
+ let(:user) { project.creator }
+
+ subject { get namespace_project_settings_packages_and_registries_path(user.namespace, project) }
+
+ before do
+ sign_in(user)
+ end
+
+ it 'pushes the feature flag "packages_protected_packages" to the view' do
+ subject
+
+ expect(response.body).to have_pushed_frontend_feature_flags(packagesProtectedPackages: true)
+ end
+
+ context 'when feature flag "packages_protected_packages" is disabled' do
+ before do
+ stub_feature_flags(packages_protected_packages: false)
+ end
+
+ it 'does not push the feature flag "packages_protected_packages" to the view' do
+ subject
+
+ expect(response.body).not_to have_pushed_frontend_feature_flags(packagesProtectedPackages: true)
+ end
+ end
+ end
+ end
+
describe 'GET #cleanup_tags' do
subject { get cleanup_image_tags_namespace_project_settings_packages_and_registries_path(user.namespace, project) }
diff --git a/spec/requests/search_controller_spec.rb b/spec/requests/search_controller_spec.rb
index 365b20ad4aa..eaf11653256 100644
--- a/spec/requests/search_controller_spec.rb
+++ b/spec/requests/search_controller_spec.rb
@@ -112,7 +112,7 @@ RSpec.describe SearchController, type: :request, feature_category: :global_searc
control = ActiveRecord::QueryRecorder.new { send_search_request(params_for_one) }
expect(response.body).to include('search-results') # Confirm search results to prevent false positives
- expect { send_search_request(params_for_many) }.not_to exceed_query_limit(control.count)
+ expect { send_search_request(params_for_many) }.not_to exceed_query_limit(control)
expect(response.body).to include('search-results') # Confirm search results to prevent false positives
end
end
@@ -125,7 +125,7 @@ RSpec.describe SearchController, type: :request, feature_category: :global_searc
control = ActiveRecord::QueryRecorder.new { send_search_request(params_for_one) }
expect(response.body).to include('search-results') # Confirm search results to prevent false positives
- expect { send_search_request(params_for_many) }.not_to exceed_query_limit(control.count)
+ expect { send_search_request(params_for_many) }.not_to exceed_query_limit(control)
expect(response.body).to include('search-results') # Confirm search results to prevent false positives
end
end
diff --git a/spec/requests/users_controller_spec.rb b/spec/requests/users_controller_spec.rb
index da111831c15..3b2d3a6f7a5 100644
--- a/spec/requests/users_controller_spec.rb
+++ b/spec/requests/users_controller_spec.rb
@@ -799,6 +799,46 @@ RSpec.describe UsersController, feature_category: :user_management do
end
end
+ describe 'GET #groups' do
+ before do
+ sign_in(user)
+ end
+
+ context 'format html' do
+ it 'renders groups page' do
+ get user_groups_url user.username
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to render_template('show')
+ end
+ end
+
+ context 'format json' do
+ it 'response with groups data' do
+ get user_groups_url user.username, format: :json
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(json_response).to have_key('html')
+ end
+
+ context 'pagination' do
+ let!(:per_page_limit) { 3 }
+
+ before do
+ allow(Kaminari.config).to receive(:default_per_page).and_return(per_page_limit)
+ create_list(:group, per_page_limit + 2).each { |group| group.add_owner(user) }
+ end
+
+ it 'paginates without count' do
+ get user_groups_url user.username, format: :json
+
+ expect(assigns(:groups).size).to eq(per_page_limit)
+ expect(assigns(:groups)).to be_a(Kaminari::PaginatableWithoutCount)
+ end
+ end
+ end
+ end
+
describe '#ensure_canonical_path' do
before do
sign_in(user)
diff --git a/spec/routing/organizations/organizations_controller_routing_spec.rb b/spec/routing/organizations/organizations_controller_routing_spec.rb
index f105bb31ccf..c5c7a0ae377 100644
--- a/spec/routing/organizations/organizations_controller_routing_spec.rb
+++ b/spec/routing/organizations/organizations_controller_routing_spec.rb
@@ -29,4 +29,9 @@ RSpec.describe Organizations::OrganizationsController, :routing, feature_categor
expect(get("/-/organizations/#{organization.path}/users"))
.to route_to('organizations/organizations#users', organization_path: organization.path)
end
+
+ it 'routes to #preview_markdown' do
+ expect(post("/-/organizations/preview_markdown"))
+ .to route_to('organizations/organizations#preview_markdown')
+ end
end
diff --git a/spec/routing/uploads_routing_spec.rb b/spec/routing/uploads_routing_spec.rb
index 63840b4c30b..c63ca7608c5 100644
--- a/spec/routing/uploads_routing_spec.rb
+++ b/spec/routing/uploads_routing_spec.rb
@@ -79,6 +79,19 @@ RSpec.describe 'Uploads', 'routing' do
end
end
+ context 'for organizations' do
+ it 'allows fetching organization avatars' do
+ expect(get('/uploads/-/system/organizations/organization_detail/avatar/1/test.jpg')).to route_to(
+ controller: 'uploads',
+ action: 'show',
+ model: 'organizations/organization_detail',
+ id: '1',
+ filename: 'test.jpg',
+ mounted_as: 'avatar'
+ )
+ end
+ end
+
it 'does not allow creating uploads for other models' do
unroutable_models = UploadsController::MODEL_CLASSES.keys.compact - %w[personal_snippet user abuse_report]
diff --git a/spec/rubocop/cop/gitlab/license_available_usage_spec.rb b/spec/rubocop/cop/gitlab/license_available_usage_spec.rb
new file mode 100644
index 00000000000..230224e8e53
--- /dev/null
+++ b/spec/rubocop/cop/gitlab/license_available_usage_spec.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+require 'rubocop_spec_helper'
+require 'rspec-parameterized'
+require_relative '../../../../rubocop/cop/gitlab/license_available_usage'
+
+RSpec.describe RuboCop::Cop::Gitlab::LicenseAvailableUsage, feature_category: :shared do
+ let(:msg) { described_class::MSG }
+
+ describe 'uses license check' do
+ it 'registers an offense' do
+ expect_offense(<<~SOURCE)
+ License.feature_available?(:elastic_search) && super
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid License.feature_available? usage in ApplicationSetting due to possible cyclical dependency issue. For more information see: https://gitlab.com/gitlab-org/gitlab/-/issues/423237
+ SOURCE
+ end
+ end
+
+ describe 'no license check' do
+ let(:source) do
+ <<~RUBY
+ class C
+ def check_without_license_usage?
+ test?(:feature)
+ end
+ end
+ RUBY
+ end
+
+ it 'does not register an offense' do
+ expect_no_offenses(source)
+ end
+ end
+end
diff --git a/spec/rubocop/cop/rails/avoid_time_comparison_spec.rb b/spec/rubocop/cop/rails/avoid_time_comparison_spec.rb
new file mode 100644
index 00000000000..8ab430072b1
--- /dev/null
+++ b/spec/rubocop/cop/rails/avoid_time_comparison_spec.rb
@@ -0,0 +1,57 @@
+# frozen_string_literal: true
+
+require 'rubocop_spec_helper'
+require_relative '../../../../rubocop/cop/rails/avoid_time_comparison'
+
+RSpec.describe RuboCop::Cop::Rails::AvoidTimeComparison, feature_category: :shared do
+ shared_examples 'using time comparison' do
+ let(:violation_string_length) { "datetime > #{time}".length }
+
+ it 'flags violation' do
+ expect_offense(<<~RUBY)
+ datetime > #{time}
+ #{'^' * violation_string_length} Avoid time comparison, use `.past?` or `.future?` instead.
+ RUBY
+
+ expect_offense(<<~RUBY)
+ datetime < #{time}
+ #{'^' * violation_string_length} Avoid time comparison, use `.past?` or `.future?` instead.
+ RUBY
+
+ expect_offense(<<~RUBY)
+ #{time} < datetime
+ #{'^' * violation_string_length} Avoid time comparison, use `.past?` or `.future?` instead.
+ RUBY
+ end
+ end
+
+ context 'when comparing with Time.now', :aggregate_failures do
+ let(:time) { 'Time.now' }
+
+ it_behaves_like 'using time comparison'
+ end
+
+ context 'when comparing with ::Time.now', :aggregate_failures do
+ let(:time) { '::Time.now' }
+
+ it_behaves_like 'using time comparison'
+ end
+
+ context 'when comparing with Time.zone.now', :aggregate_failures do
+ let(:time) { 'Time.zone.now' }
+
+ it_behaves_like 'using time comparison'
+ end
+
+ context 'when comparing with Time.current', :aggregate_failures do
+ let(:time) { 'Time.current' }
+
+ it_behaves_like 'using time comparison'
+ end
+
+ it 'does not flag assigning time methods to variables' do
+ expect_no_offenses(<<~RUBY)
+ datetime = Time.now
+ RUBY
+ end
+end
diff --git a/spec/rubocop/cop/scalability/file_uploads_spec.rb b/spec/rubocop/cop/scalability/file_uploads_spec.rb
index 43ac9457ed6..50049d76f0e 100644
--- a/spec/rubocop/cop/scalability/file_uploads_spec.rb
+++ b/spec/rubocop/cop/scalability/file_uploads_spec.rb
@@ -4,7 +4,7 @@ require 'rubocop_spec_helper'
require_relative '../../../../rubocop/cop/scalability/file_uploads'
RSpec.describe RuboCop::Cop::Scalability::FileUploads, feature_category: :scalability do
- let(:message) { 'Do not upload files without workhorse acceleration. Please refer to https://docs.gitlab.com/ee/development/uploads.html' }
+ let(:message) { 'Do not upload files without workhorse acceleration. Please refer to https://docs.gitlab.com/ee/development/uploads/' }
context 'with required params' do
it 'detects File in types array' do
diff --git a/spec/scripts/download_downstream_artifact_spec.rb b/spec/scripts/download_downstream_artifact_spec.rb
new file mode 100644
index 00000000000..05d1dc9933f
--- /dev/null
+++ b/spec/scripts/download_downstream_artifact_spec.rb
@@ -0,0 +1,180 @@
+# frozen_string_literal: true
+
+require 'fast_spec_helper'
+require 'gitlab/rspec/all'
+require_relative '../../scripts/download-downstream-artifact'
+
+# rubocop:disable RSpec/VerifiedDoubles -- doubles are simple mocks of a few methods from external code
+
+RSpec.describe DownloadDownstreamArtifact, feature_category: :tooling do
+ include StubENV
+
+ subject(:execute) { described_class.new(options).execute }
+
+ before do
+ stub_env('PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE', nil)
+ stub_env('CI_PROJECT_ID', nil)
+ stub_env('CI_PIPELINE_ID', nil)
+ stub_env('CI_API_V4_URL', nil)
+ stub_env('DOWNSTREAM_PROJECT', nil)
+ stub_env('DOWNSTREAM_JOB_NAME', nil)
+ stub_env('TRIGGER_JOB_NAME', nil)
+ stub_env('DOWNSTREAM_JOB_ARTIFACT_PATH', nil)
+ stub_env('OUTPUT_ARTIFACT_PATH', nil)
+ end
+
+ describe '#execute' do
+ let(:options) do
+ {
+ api_token: 'asdf1234',
+ endpoint: 'https://gitlab.com/api/v4',
+ upstream_project: 'upstream/project',
+ upstream_pipeline_id: 123,
+ downstream_project: 'downstream/project',
+ downstream_job_name: 'test-job',
+ trigger_job_name: 'trigger-job',
+ downstream_artifact_path: 'scores-DOWNSTREAM_JOB_ID.csv',
+ output_artifact_path: 'scores.csv'
+ }
+ end
+
+ let(:client) { double('Gitlab::Client') }
+ let(:artifact_response) { double('io', read: 'artifact content') }
+
+ let(:job) do
+ Struct.new(:id, :name, :web_url).new(789, 'test-job', 'https://example.com/jobs/789')
+ end
+
+ let(:downstream_pipeline) do
+ Struct.new(:id, :web_url).new(111, 'https://example.com/pipelines/111')
+ end
+
+ let(:pipeline_bridges) do
+ double('pipeline_bridges', auto_paginate: [double(name: 'trigger-job', downstream_pipeline: downstream_pipeline)])
+ end
+
+ let(:expected_output) do
+ <<~OUTPUT
+ Fetching scores artifact from downstream pipeline triggered via trigger-job...
+ Downstream pipeline is https://example.com/pipelines/111.
+ Downstream job "test-job": https://example.com/jobs/789.
+ Fetching artifact "scores-789.csv" from test-job...
+ Artifact saved as scores.csv ...
+ OUTPUT
+ end
+
+ before do
+ allow(Gitlab).to receive(:client)
+ .with(endpoint: options[:endpoint], private_token: options[:api_token])
+ .and_return(client)
+
+ allow(client).to receive(:pipeline_bridges).and_return(pipeline_bridges)
+ allow(client).to receive(:pipeline).and_return(downstream_pipeline)
+ allow(client).to receive(:pipeline_jobs).and_return([job])
+ allow(client).to receive(:download_job_artifact_file).and_return(artifact_response)
+ allow(File).to receive(:write)
+ end
+
+ it 'downloads artifact from downstream pipeline' do
+ expect(client).to receive(:download_job_artifact_file).with('downstream/project', 789, 'scores-789.csv')
+
+ expect { execute }.to output(expected_output).to_stdout
+ end
+
+ it 'saves artifact to output path' do
+ expect(File).to receive(:write).with('scores.csv', 'artifact content')
+
+ expect { execute }.to output(expected_output).to_stdout
+ end
+
+ context 'when options come from environment variables' do
+ before do
+ stub_env('PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE', 'asdf1234')
+ stub_env('CI_PROJECT_ID', 'upstream/project')
+ stub_env('CI_PIPELINE_ID', '123')
+ stub_env('CI_API_V4_URL', 'https://gitlab.com/api/v4')
+ stub_env('DOWNSTREAM_PROJECT', 'downstream/project')
+ stub_env('DOWNSTREAM_JOB_NAME', 'test-job')
+ stub_env('TRIGGER_JOB_NAME', 'trigger-job')
+ stub_env('DOWNSTREAM_JOB_ARTIFACT_PATH', 'scores-DOWNSTREAM_JOB_ID.csv')
+ stub_env('OUTPUT_ARTIFACT_PATH', 'scores.csv')
+
+ stub_const('API::DEFAULT_OPTIONS', {
+ project: ENV['CI_PROJECT_ID'],
+ pipeline_id: ENV['CI_PIPELINE_ID'],
+ api_token: ENV['PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE'],
+ endpoint: ENV['CI_API_V4_URL']
+ })
+ end
+
+ it 'uses the environment variable values' do
+ options = described_class.options_from_env
+
+ expect(File).to receive(:write)
+ expect { described_class.new(options).execute }.to output(expected_output).to_stdout
+ end
+ end
+
+ context 'when the downstream pipeline cannot be found' do
+ let(:pipeline_bridges) do
+ double('pipeline_bridges', auto_paginate: [double(name: 'trigger-job', downstream_pipeline: nil)])
+ end
+
+ it 'aborts' do
+ expect(File).not_to receive(:write)
+ expect { described_class.new(options).execute }
+ .to output(
+ %r{Could not find downstream pipeline triggered via trigger-job in project downstream/project}
+ ).to_stderr
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'when the downstream job cannot be found' do
+ let(:job) { double('job', name: 'foo') }
+
+ it 'aborts' do
+ expect(File).not_to receive(:write)
+ expect { described_class.new(options).execute }
+ .to output(
+ %r{Could not find job with name 'test-job' in https://example.com/pipelines/111}
+ ).to_stderr
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'when the downstream artifact cannot be found' do
+ let(:artifact_response) { 'error' }
+
+ it 'aborts' do
+ expect(File).not_to receive(:write)
+ expect { described_class.new(options).execute }
+ .to output(
+ %r{Could not download artifact. Request returned: error}
+ ).to_stderr
+ .and raise_error(SystemExit)
+ end
+ end
+ end
+
+ context 'when called without an API token' do
+ let(:options) do
+ {
+ endpoint: 'https://gitlab.com/api/v4',
+ upstream_project: 'upstream/project',
+ upstream_pipeline_id: 123,
+ downstream_project: 'downstream/project',
+ downstream_job_name: 'test-job',
+ trigger_job_name: 'trigger-job',
+ downstream_artifact_path: 'scores-DOWNSTREAM_JOB_ID.csv',
+ output_artifact_path: 'scores.csv'
+ }
+ end
+
+ it 'raises an error' do
+ expect { described_class.new(options) }.to raise_error(ArgumentError)
+ end
+ end
+end
+
+# rubocop:enable RSpec/VerifiedDoubles
diff --git a/spec/scripts/lib/glfm/update_example_snapshots_spec.rb b/spec/scripts/lib/glfm/update_example_snapshots_spec.rb
index 717a584f931..4897dbea09c 100644
--- a/spec/scripts/lib/glfm/update_example_snapshots_spec.rb
+++ b/spec/scripts/lib/glfm/update_example_snapshots_spec.rb
@@ -629,21 +629,21 @@ RSpec.describe Glfm::UpdateExampleSnapshots, '#process', feature_category: :team
canonical: |
<p><strong>bold</strong></p>
static: |-
- <p data-sourcepos="1:1-1:8" dir="auto"><strong>bold</strong></p>
+ <p data-sourcepos="1:1-1:8" dir="auto"><strong data-sourcepos="1:1-1:8">bold</strong></p>
wysiwyg: |-
<p dir="auto"><strong>bold</strong></p>
02_01_00__inlines__strong__002:
canonical: |
<p><strong>bold with more text</strong></p>
static: |-
- <p data-sourcepos="1:1-1:23" dir="auto"><strong>bold with more text</strong></p>
+ <p data-sourcepos="1:1-1:23" dir="auto"><strong data-sourcepos="1:1-1:23">bold with more text</strong></p>
wysiwyg: |-
<p dir="auto"><strong>bold with more text</strong></p>
02_03_00__inlines__strikethrough_extension__001:
canonical: |
<p><del>Hi</del> Hello, world!</p>
static: |-
- <p data-sourcepos="1:1-1:20" dir="auto"><del>Hi</del> Hello, world!</p>
+ <p data-sourcepos="1:1-1:20" dir="auto"><del data-sourcepos="1:1-1:6">Hi</del> Hello, world!</p>
wysiwyg: |-
<p dir="auto"><s>Hi</s> Hello, world!</p>
03_01_00__first_gitlab_specific_section_with_examples__strong_but_with_two_asterisks__001:
@@ -678,14 +678,14 @@ RSpec.describe Glfm::UpdateExampleSnapshots, '#process', feature_category: :team
canonical: |
<p><a href="groups-test-file">groups-test-file</a></p>
static: |-
- <p data-sourcepos="1:1-1:45" dir="auto"><a href="/groups/glfm_group/-/uploads/groups-test-file" data-canonical-src="/uploads/groups-test-file" data-link="true" class="gfm">groups-test-file</a></p>
+ <p data-sourcepos="1:1-1:45" dir="auto"><a data-sourcepos="1:1-1:45" href="/groups/glfm_group/-/uploads/groups-test-file" data-canonical-src="/uploads/groups-test-file" data-link="true" class="gfm">groups-test-file</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="/uploads/groups-test-file">groups-test-file</a></p>
06_02_00__api_request_overrides__project_repo_link__001:
canonical: |
<p><a href="projects-test-file">projects-test-file</a></p>
static: |-
- <p data-sourcepos="1:1-1:40" dir="auto"><a href="/glfm_group/glfm_project/-/blob/master/projects-test-file" class="gfm">projects-test-file</a></p>
+ <p data-sourcepos="1:1-1:40" dir="auto"><a data-sourcepos="1:1-1:40" href="/glfm_group/glfm_project/-/blob/master/projects-test-file" class="gfm">projects-test-file</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="projects-test-file">projects-test-file</a></p>
06_03_00__api_request_overrides__project_snippet_ref__001:
@@ -706,7 +706,7 @@ RSpec.describe Glfm::UpdateExampleSnapshots, '#process', feature_category: :team
canonical: |
<p><a href="project-wikis-test-file">project-wikis-test-file</a></p>
static: |-
- <p data-sourcepos="1:1-1:50" dir="auto"><a href="/glfm_group/glfm_project/-/wikis/project-wikis-test-file" data-canonical-src="project-wikis-test-file">project-wikis-test-file</a></p>
+ <p data-sourcepos="1:1-1:50" dir="auto"><a data-sourcepos="1:1-1:50" href="/glfm_group/glfm_project/-/wikis/project-wikis-test-file" data-canonical-src="project-wikis-test-file">project-wikis-test-file</a></p>
wysiwyg: |-
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="project-wikis-test-file">project-wikis-test-file</a></p>
YAML
diff --git a/spec/scripts/setup/generate_as_if_foss_env_spec.rb b/spec/scripts/setup/generate_as_if_foss_env_spec.rb
new file mode 100644
index 00000000000..e437ce24e79
--- /dev/null
+++ b/spec/scripts/setup/generate_as_if_foss_env_spec.rb
@@ -0,0 +1,152 @@
+# frozen_string_literal: true
+
+require 'fast_spec_helper'
+require 'gitlab/rspec/stub_env'
+
+# NOTE: Under the context of fast_spec_helper, when we `require 'gitlab'`
+# we do not load the Gitlab client, but our own Gitlab module.
+# Keep this in mind and just stub anything which might touch it!
+require_relative '../../../scripts/setup/generate-as-if-foss-env'
+
+RSpec.describe GenerateAsIfFossEnv, feature_category: :tooling do
+ include StubENV
+
+ subject(:generate) { described_class.new }
+
+ before do
+ stub_env(RUBY_VERSION: '3.1')
+ end
+
+ shared_context 'when there are all jobs' do
+ let(:jobs) do
+ [
+ 'rspec fast_spec_helper',
+ 'rspec unit pg14',
+ 'rspec integration pg14',
+ 'rspec system pg14',
+ 'rspec migration pg14',
+ 'rspec background-migration pg14',
+ 'rspec-all frontend_fixture',
+ 'build-assets-image',
+ 'build-qa-image',
+ 'compile-production-assets',
+ 'compile-storybook',
+ 'compile-test-assets',
+ 'eslint',
+ 'generate-apollo-graphql-schema',
+ 'graphql-schema-dump',
+ 'jest',
+ 'jest-integration',
+ 'qa:internal',
+ 'qa:selectors',
+ 'static-analysis'
+ ]
+ end
+
+ before do
+ messages = receive_message_chain(:client, :pipeline_jobs, :auto_paginate)
+
+ yield_jobs = jobs.inject(messages) do |stub, job|
+ stub.and_yield(double(name: job)) # rubocop:disable RSpec/VerifiedDoubles -- As explained at the top of this file, we do not load the Gitlab client
+ end
+
+ allow(Gitlab).to yield_jobs
+ end
+ end
+
+ describe '#variables' do
+ include_context 'when there are all jobs'
+
+ it 'returns correct variables' do
+ expect(generate.variables).to eq({
+ START_AS_IF_FOSS: 'true',
+ RUBY_VERSION: ENV['RUBY_VERSION'],
+ ENABLE_RSPEC: 'true',
+ ENABLE_RSPEC_FAST_SPEC_HELPER: 'true',
+ ENABLE_RSPEC_UNIT: 'true',
+ ENABLE_RSPEC_INTEGRATION: 'true',
+ ENABLE_RSPEC_SYSTEM: 'true',
+ ENABLE_RSPEC_MIGRATION: 'true',
+ ENABLE_RSPEC_BACKGROUND_MIGRATION: 'true',
+ ENABLE_RSPEC_FRONTEND_FIXTURE: 'true',
+ ENABLE_BUILD_ASSETS_IMAGE: 'true',
+ ENABLE_BUILD_QA_IMAGE: 'true',
+ ENABLE_COMPILE_PRODUCTION_ASSETS: 'true',
+ ENABLE_COMPILE_STORYBOOK: 'true',
+ ENABLE_COMPILE_TEST_ASSETS: 'true',
+ ENABLE_ESLINT: 'true',
+ ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA: 'true',
+ ENABLE_GRAPHQL_SCHEMA_DUMP: 'true',
+ ENABLE_JEST: 'true',
+ ENABLE_JEST_INTEGRATION: 'true',
+ ENABLE_QA_INTERNAL: 'true',
+ ENABLE_QA_SELECTORS: 'true',
+ ENABLE_STATIC_ANALYSIS: 'true'
+ })
+ end
+ end
+
+ describe '#display' do
+ include_context 'when there are all jobs'
+
+ it 'puts correct variables' do
+ expect { generate.display }.to output(<<~ENV).to_stdout
+ START_AS_IF_FOSS=true
+ RUBY_VERSION=#{ENV['RUBY_VERSION']}
+ ENABLE_RSPEC=true
+ ENABLE_RSPEC_FAST_SPEC_HELPER=true
+ ENABLE_RSPEC_UNIT=true
+ ENABLE_RSPEC_INTEGRATION=true
+ ENABLE_RSPEC_SYSTEM=true
+ ENABLE_RSPEC_MIGRATION=true
+ ENABLE_RSPEC_BACKGROUND_MIGRATION=true
+ ENABLE_RSPEC_FRONTEND_FIXTURE=true
+ ENABLE_BUILD_ASSETS_IMAGE=true
+ ENABLE_BUILD_QA_IMAGE=true
+ ENABLE_COMPILE_PRODUCTION_ASSETS=true
+ ENABLE_COMPILE_STORYBOOK=true
+ ENABLE_COMPILE_TEST_ASSETS=true
+ ENABLE_ESLINT=true
+ ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA=true
+ ENABLE_GRAPHQL_SCHEMA_DUMP=true
+ ENABLE_JEST=true
+ ENABLE_JEST_INTEGRATION=true
+ ENABLE_QA_INTERNAL=true
+ ENABLE_QA_SELECTORS=true
+ ENABLE_STATIC_ANALYSIS=true
+ ENV
+ end
+ end
+
+ describe '.gitlab/ci/rules.gitlab-ci.yml' do
+ include_context 'when there are all jobs'
+
+ let(:rules_yaml) do
+ File.read(File.expand_path('../../../.gitlab/ci/rules.gitlab-ci.yml', __dir__))
+ end
+
+ it 'uses all the ENABLE variables' do
+ generate.variables.each_key do |variable|
+ next unless variable.start_with?('ENABLE_')
+
+ expect(rules_yaml).to include("- if: '$#{variable} == \"true\"'")
+ end
+ end
+ end
+
+ describe '.gitlab/ci/as-if-foss.gitlab-ci.yml' do
+ include_context 'when there are all jobs'
+
+ let(:ci_yaml) do
+ File.read(File.expand_path('../../../.gitlab/ci/as-if-foss.gitlab-ci.yml', __dir__))
+ end
+
+ it 'uses all the ENABLE variables' do
+ generate.variables.each_key do |variable|
+ next unless variable.start_with?('ENABLE_')
+
+ expect(ci_yaml).to include("#{variable}: $#{variable}")
+ end
+ end
+ end
+end
diff --git a/spec/serializers/activity_pub/activity_serializer_spec.rb b/spec/serializers/activity_pub/activity_serializer_spec.rb
new file mode 100644
index 00000000000..93b52614490
--- /dev/null
+++ b/spec/serializers/activity_pub/activity_serializer_spec.rb
@@ -0,0 +1,138 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ActivityPub::ActivitySerializer, feature_category: :integrations do
+ let(:implementer_class) do
+ Class.new(described_class)
+ end
+
+ let(:serializer) { implementer_class.new.represent(resource) }
+
+ let(:resource) { build_stubbed(:release) }
+
+ let(:transitive_entity_class) do
+ Class.new(Grape::Entity) do
+ expose :id do |*|
+ 'https://example.com/unique/url'
+ end
+
+ expose :type do |*|
+ 'Follow'
+ end
+
+ expose :actor do |*|
+ 'https://example.com/actor/alice'
+ end
+
+ expose :object do |*|
+ 'https://example.com/actor/bob'
+ end
+ end
+ end
+
+ let(:intransitive_entity_class) do
+ Class.new(Grape::Entity) do
+ expose :id do |*|
+ 'https://example.com/unique/url'
+ end
+
+ expose :type do |*|
+ 'Question'
+ end
+
+ expose :actor do |*|
+ 'https://example.com/actor/alice'
+ end
+
+ expose :content do |*|
+ "What's up?"
+ end
+ end
+ end
+
+ let(:entity_class) { transitive_entity_class }
+
+ shared_examples_for 'activity document' do
+ it 'belongs to the ActivityStreams namespace' do
+ expect(serializer['@context']).to eq 'https://www.w3.org/ns/activitystreams'
+ end
+
+ it 'has a unique identifier' do
+ expect(serializer).to have_key 'id'
+ end
+
+ it 'has a type' do
+ expect(serializer).to have_key 'type'
+ end
+
+ it 'has an actor' do
+ expect(serializer['actor']).to eq 'https://example.com/actor/alice'
+ end
+ end
+
+ before do
+ implementer_class.entity entity_class
+ end
+
+ context 'with a valid represented entity' do
+ it_behaves_like 'activity document'
+ end
+
+ context 'when the represented entity provides no identifier' do
+ before do
+ allow(entity_class).to receive(:represent).and_return({ type: 'Person', actor: 'http://something/' })
+ end
+
+ it 'raises an exception' do
+ expect { serializer }.to raise_error(ActivityPub::ActivitySerializer::MissingIdentifierError)
+ end
+ end
+
+ context 'when the represented entity provides no type' do
+ before do
+ allow(entity_class).to receive(:represent).and_return({
+ id: 'http://something/',
+ actor: 'http://something-else/'
+ })
+ end
+
+ it 'raises an exception' do
+ expect { serializer }.to raise_error(ActivityPub::ActivitySerializer::MissingTypeError)
+ end
+ end
+
+ context 'when the represented entity provides no actor' do
+ before do
+ allow(entity_class).to receive(:represent).and_return({ id: 'http://something/', type: 'Person' })
+ end
+
+ it 'raises an exception' do
+ expect { serializer }.to raise_error(ActivityPub::ActivitySerializer::MissingActorError)
+ end
+ end
+
+ context 'when the represented entity provides no object' do
+ let(:entity_class) { intransitive_entity_class }
+
+ context 'when the caller provides the :intransitive option' do
+ let(:serializer) { implementer_class.new.represent(resource, intransitive: true) }
+
+ it_behaves_like 'activity document'
+ end
+
+ context 'when the caller does not provide the :intransitive option' do
+ it 'raises an exception' do
+ expect { serializer }.to raise_error(ActivityPub::ActivitySerializer::MissingObjectError)
+ end
+ end
+ end
+
+ context 'when the caller does provide the :intransitive option and an object' do
+ let(:serializer) { implementer_class.new.represent(resource, intransitive: true) }
+
+ it 'raises an exception' do
+ expect { serializer }.to raise_error(ActivityPub::ActivitySerializer::IntransitiveWithObjectError)
+ end
+ end
+end
diff --git a/spec/serializers/activity_pub/activity_streams_serializer_spec.rb b/spec/serializers/activity_pub/activity_streams_serializer_spec.rb
deleted file mode 100644
index c74beba7a81..00000000000
--- a/spec/serializers/activity_pub/activity_streams_serializer_spec.rb
+++ /dev/null
@@ -1,157 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe ActivityPub::ActivityStreamsSerializer, feature_category: :integrations do
- let(:implementer_class) do
- Class.new(described_class) do
- include WithPagination
- end
- end
-
- let(:entity_class) do
- Class.new(Grape::Entity) do
- expose :id do |*|
- 'https://example.com/unique/url'
- end
-
- expose :type do |*|
- 'Person'
- end
-
- expose :name do |*|
- 'Alice'
- end
- end
- end
-
- shared_examples_for 'ActivityStreams document' do
- it 'belongs to the ActivityStreams namespace' do
- expect(subject['@context']).to eq 'https://www.w3.org/ns/activitystreams'
- end
-
- it 'has a unique identifier' do
- expect(subject).to have_key 'id'
- end
-
- it 'has a type' do
- expect(subject).to have_key 'type'
- end
- end
-
- before do
- implementer_class.entity entity_class
- end
-
- context 'when the serializer is not paginated' do
- let(:resource) { build_stubbed(:release) }
- let(:outbox_url) { 'https://example.com/unique/url/outbox' }
-
- context 'with a valid represented entity' do
- subject { implementer_class.new.represent(resource, outbox: outbox_url) }
-
- it_behaves_like 'ActivityStreams document'
-
- it 'exposes an outbox' do
- expect(subject['outbox']).to eq 'https://example.com/unique/url/outbox'
- end
-
- it 'includes serialized data' do
- expect(subject['name']).to eq 'Alice'
- end
- end
-
- context 'when the represented entity provides no identifier' do
- subject { implementer_class.new.represent(resource, outbox: outbox_url) }
-
- before do
- allow(entity_class).to receive(:represent).and_return({ type: 'Person' })
- end
-
- it 'raises an exception' do
- expect { subject }.to raise_error(ActivityPub::ActivityStreamsSerializer::MissingIdentifierError)
- end
- end
-
- context 'when the represented entity provides no type' do
- subject { implementer_class.new.represent(resource, outbox: outbox_url) }
-
- before do
- allow(entity_class).to receive(:represent).and_return({ id: 'https://example.com/unique/url' })
- end
-
- it 'raises an exception' do
- expect { subject }.to raise_error(ActivityPub::ActivityStreamsSerializer::MissingTypeError)
- end
- end
-
- context 'when the caller provides no outbox parameter' do
- subject { implementer_class.new.represent(resource) }
-
- it 'raises an exception' do
- expect { subject }.to raise_error(ActivityPub::ActivityStreamsSerializer::MissingOutboxError)
- end
- end
- end
-
- context 'when the serializer is paginated' do
- let(:resources) { build_stubbed_list(:release, 3) }
- let(:request) { ActionDispatch::Request.new(request_data) }
- let(:response) { ActionDispatch::Response.new }
- let(:url) { 'https://example.com/resource/url' }
- let(:decorated) { implementer_class.new.with_pagination(request, response) }
-
- before do
- allow(resources).to receive(:page).and_return(resources)
- allow(resources).to receive(:per).and_return(resources)
- allow(resources).to receive(:current_page).and_return(2)
- allow(resources).to receive(:total_pages).and_return(3)
- allow(resources).to receive(:total_count).and_return(10)
- allow(decorated.paginator).to receive(:paginate).and_return(resources)
- end
-
- context 'when no page parameter is provided' do
- subject { decorated.represent(resources) }
-
- let(:request_data) do
- { "rack.url_scheme" => "https", "HTTP_HOST" => "example.com", "PATH_INFO" => '/resource/url' }
- end
-
- it_behaves_like 'ActivityStreams document'
-
- it 'is an index document for the pagination' do
- expect(subject['type']).to eq 'OrderedCollection'
- end
-
- it 'contains the total amount of items' do
- expect(subject['totalItems']).to eq 10
- end
-
- it 'contains links to first and last page' do
- expect(subject['first']).to eq "#{url}?page=1"
- expect(subject['last']).to eq "#{url}?page=3"
- end
- end
-
- context 'when a page parameter is provided' do
- subject { decorated.represent(resources) }
-
- let(:request_data) do
- { 'rack.url_scheme' => 'https', 'HTTP_HOST' => 'example.com', 'PATH_INFO' => '/resource/url',
- 'QUERY_STRING' => 'page=2&per_page=1' }
- end
-
- it_behaves_like 'ActivityStreams document'
-
- it 'is a page document' do
- expect(subject['type']).to eq 'OrderedCollectionPage'
- end
-
- it 'contains navigation links' do
- expect(subject['prev']).to be_present
- expect(subject['next']).to be_present
- expect(subject['partOf']).to be_present
- end
- end
- end
-end
diff --git a/spec/serializers/activity_pub/publish_release_activity_serializer_spec.rb b/spec/serializers/activity_pub/publish_release_activity_serializer_spec.rb
new file mode 100644
index 00000000000..287b806bb35
--- /dev/null
+++ b/spec/serializers/activity_pub/publish_release_activity_serializer_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ActivityPub::PublishReleaseActivitySerializer, feature_category: :release_orchestration do
+ let(:release) { build_stubbed(:release) }
+
+ let(:serializer) { described_class.new.represent(release) }
+
+ it 'serializes the activity attributes' do
+ expect(serializer).to include(:id, :type, :actor, :object)
+ end
+end
diff --git a/spec/serializers/activity_pub/releases_actor_serializer_spec.rb b/spec/serializers/activity_pub/releases_actor_serializer_spec.rb
index bc754eabe5c..47a170a04f5 100644
--- a/spec/serializers/activity_pub/releases_actor_serializer_spec.rb
+++ b/spec/serializers/activity_pub/releases_actor_serializer_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe ActivityPub::ReleasesActorSerializer, feature_category: :groups_a
let(:releases) { build_stubbed_list(:release, 3, project: project) }
context 'when there is a single object provided' do
- subject { described_class.new.represent(project, outbox: '/outbox') }
+ subject { described_class.new.represent(project, outbox: '/outbox', inbox: '/inbox') }
it 'serializes the actor attributes' do
expect(subject).to include(:id, :type, :preferredUsername, :name, :content, :context)
diff --git a/spec/serializers/admin/abuse_report_details_entity_spec.rb b/spec/serializers/admin/abuse_report_details_entity_spec.rb
index 67f6bdfee85..8b18c64ac88 100644
--- a/spec/serializers/admin/abuse_report_details_entity_spec.rb
+++ b/spec/serializers/admin/abuse_report_details_entity_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe Admin::AbuseReportDetailsEntity, feature_category: :insider_threat do
include Gitlab::Routing
- let_it_be(:report) { build_stubbed(:abuse_report) }
+ let_it_be(:report) { create(:abuse_report) }
let_it_be(:user) { report.user }
let_it_be(:reporter) { report.reporter }
let_it_be(:past_report) { create_default(:abuse_report, :closed, user: user) }
@@ -29,7 +29,7 @@ RSpec.describe Admin::AbuseReportDetailsEntity, feature_category: :insider_threa
it 'correctly exposes `user`', :aggregate_failures do
user_hash = entity_hash[:user]
- expect(user_hash.keys).to match_array([
+ expect(user_hash.keys).to include(
:name,
:username,
:avatar_url,
@@ -38,7 +38,6 @@ RSpec.describe Admin::AbuseReportDetailsEntity, feature_category: :insider_threa
:last_activity_on,
:path,
:admin_path,
- :plan,
:verification_state,
:past_closed_reports,
:similar_open_reports,
@@ -47,7 +46,7 @@ RSpec.describe Admin::AbuseReportDetailsEntity, feature_category: :insider_threa
:snippets_count,
:groups_count,
:notes_count
- ])
+ )
expect(user_hash[:verification_state].keys).to match_array([
:email,
@@ -127,55 +126,5 @@ RSpec.describe Admin::AbuseReportDetailsEntity, feature_category: :insider_threa
:path
])
end
-
- describe 'users plan' do
- it 'does not include the plan' do
- expect(entity_hash[:user][:plan]).to be_nil
- end
-
- context 'when on .com', :saas, if: Gitlab.ee? do
- before do
- stub_ee_application_setting(should_check_namespace_plan: true)
- create(:namespace_with_plan, plan: :bronze_plan, owner: user) # rubocop:disable RSpec/FactoryBot/AvoidCreate
- end
-
- it 'includes the plan' do
- expect(entity_hash[:user][:plan]).to eq('Bronze')
- end
- end
- end
-
- describe 'users credit card' do
- let(:credit_card_hash) { entity_hash[:user][:credit_card] }
-
- context 'when the user has no verified credit card' do
- it 'does not expose the credit card' do
- expect(credit_card_hash).to be_nil
- end
- end
-
- context 'when the user does have a verified credit card' do
- let!(:credit_card) { build_stubbed(:credit_card_validation, user: user) }
-
- it 'exposes the credit card' do
- expect(credit_card_hash.keys).to match_array([
- :similar_records_count,
- :card_matches_link
- ])
- end
-
- context 'when not on ee', unless: Gitlab.ee? do
- it 'does not include the path to the admin card matches page' do
- expect(credit_card_hash[:card_matches_link]).to be_nil
- end
- end
-
- context 'when on ee', if: Gitlab.ee? do
- it 'includes the path to the admin card matches page' do
- expect(credit_card_hash[:card_matches_link]).not_to be_nil
- end
- end
- end
- end
end
end
diff --git a/spec/serializers/ci/group_variable_entity_spec.rb b/spec/serializers/ci/group_variable_entity_spec.rb
index 42c4e940421..c4f8543408f 100644
--- a/spec/serializers/ci/group_variable_entity_spec.rb
+++ b/spec/serializers/ci/group_variable_entity_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe Ci::GroupVariableEntity do
it 'contains required fields' do
expect(subject.keys).to contain_exactly(
- :id, :key, :value, :protected, :variable_type, :environment_scope, :raw, :masked
+ :id, :key, :description, :value, :protected, :variable_type, :environment_scope, :raw, :masked
)
end
end
diff --git a/spec/serializers/ci/variable_entity_spec.rb b/spec/serializers/ci/variable_entity_spec.rb
index 96111604028..184fc100a03 100644
--- a/spec/serializers/ci/variable_entity_spec.rb
+++ b/spec/serializers/ci/variable_entity_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe Ci::VariableEntity do
it 'contains required fields' do
expect(subject.keys).to contain_exactly(
- :id, :key, :value, :protected, :environment_scope, :variable_type, :raw, :masked
+ :id, :key, :description, :value, :protected, :environment_scope, :variable_type, :raw, :masked
)
end
end
diff --git a/spec/serializers/integrations/field_entity_spec.rb b/spec/serializers/integrations/field_entity_spec.rb
index aa503bdfcc8..273128e0bf1 100644
--- a/spec/serializers/integrations/field_entity_spec.rb
+++ b/spec/serializers/integrations/field_entity_spec.rb
@@ -123,7 +123,7 @@ RSpec.describe Integrations::FieldEntity, feature_category: :integrations do
name: 'webhook',
title: nil,
placeholder: nil,
- help: 'http://mattermost.example.com/hooks/',
+ help: 'http://mattermost.example.com/hooks/...',
required: true,
choices: nil,
value: '************',
diff --git a/spec/serializers/profile/event_entity_spec.rb b/spec/serializers/profile/event_entity_spec.rb
index 3dade4210b3..2c880500e05 100644
--- a/spec/serializers/profile/event_entity_spec.rb
+++ b/spec/serializers/profile/event_entity_spec.rb
@@ -29,7 +29,7 @@ RSpec.describe Profile::EventEntity, feature_category: :user_profile do
end
context 'for push events' do
- let_it_be(:commit_from) { Gitlab::Git::BLANK_SHA }
+ let_it_be(:commit_from) { Gitlab::Git::SHA1_BLANK_SHA }
let_it_be(:commit_title) { 'My commit' }
let(:event) { build(:push_event, project: project, author: target_user) }
diff --git a/spec/services/bulk_imports/file_download_service_spec.rb b/spec/services/bulk_imports/file_download_service_spec.rb
index 0c3eef69fa5..1a178ce5d60 100644
--- a/spec/services/bulk_imports/file_download_service_spec.rb
+++ b/spec/services/bulk_imports/file_download_service_spec.rb
@@ -12,11 +12,9 @@ RSpec.describe BulkImports::FileDownloadService, feature_category: :importers do
let_it_be(:filename) { 'file_download_service_spec' }
let_it_be(:tmpdir) { Dir.mktmpdir }
let_it_be(:filepath) { File.join(tmpdir, filename) }
- let_it_be(:content_length) { 1000 }
let(:headers) do
{
- 'content-length' => content_length,
'content-type' => content_type,
'content-disposition' => content_disposition
}
@@ -102,51 +100,27 @@ RSpec.describe BulkImports::FileDownloadService, feature_category: :importers do
end
end
- context 'when content-length is not valid' do
- context 'when content-length exceeds limit' do
+ context 'when file size is not valid' do
+ context 'when size exceeds limit' do
let(:file_size_limit) { 1 }
it 'raises an error' do
expect { subject.execute }.to raise_error(
described_class::ServiceError,
- 'File size 1000 B exceeds limit of 1 B'
- )
- end
- end
-
- context 'when content-length is missing' do
- let(:content_length) { nil }
-
- it 'raises an error' do
- expect { subject.execute }.to raise_error(
- described_class::ServiceError,
- 'Missing content-length header'
+ 'File size 100 B exceeds limit of 1 B'
)
end
end
end
- context 'when content-length is equals the file size limit' do
- let(:content_length) { 150 }
- let(:file_size_limit) { 150 }
+ context 'when size is equals the file size limit' do
+ let(:file_size_limit) { 100 }
it 'does not raise an error' do
expect { subject.execute }.not_to raise_error
end
end
- context 'when partially downloaded file exceeds limit' do
- let(:content_length) { 151 }
- let(:file_size_limit) { 150 }
-
- it 'raises an error' do
- expect { subject.execute }.to raise_error(
- described_class::ServiceError,
- 'File size 151 B exceeds limit of 150 B'
- )
- end
- end
-
context 'when chunk code is not 200' do
let(:chunk_code) { 404 }
@@ -203,25 +177,23 @@ RSpec.describe BulkImports::FileDownloadService, feature_category: :importers do
context 'on redirect chunk' do
let(:chunk_code) { 303 }
- it 'does not run content type & length validations' do
+ it 'does not run content type & validation' do
expect(service).not_to receive(:validate_content_type)
- expect(service).not_to receive(:validate_content_length)
service.execute
end
end
context 'when there is one data chunk' do
- it 'validates content type & length' do
+ it 'validates content type' do
expect(service).to receive(:validate_content_type)
- expect(service).to receive(:validate_content_length)
service.execute
end
end
context 'when there are multiple data chunks' do
- it 'validates content type & length only once' do
+ it 'validates content type only once' do
data_chunk = double(
'data chunk',
size: 1000,
@@ -237,7 +209,6 @@ RSpec.describe BulkImports::FileDownloadService, feature_category: :importers do
end
expect(service).to receive(:validate_content_type).once
- expect(service).to receive(:validate_content_length).once
service.execute
end
diff --git a/spec/services/ci/abort_pipelines_service_spec.rb b/spec/services/ci/abort_pipelines_service_spec.rb
index 60f3ee11442..af6a70989c9 100644
--- a/spec/services/ci/abort_pipelines_service_spec.rb
+++ b/spec/services/ci/abort_pipelines_service_spec.rb
@@ -70,12 +70,12 @@ RSpec.describe Ci::AbortPipelinesService, feature_category: :continuous_integrat
end
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new { abort_project_pipelines }.count
+ control = ActiveRecord::QueryRecorder.new { abort_project_pipelines }
pipelines = create_list(:ci_pipeline, 5, :running, project: project)
create_list(:ci_build, 5, :running, pipeline: pipelines.first)
- expect { abort_project_pipelines }.not_to exceed_query_limit(control_count)
+ expect { abort_project_pipelines }.not_to exceed_query_limit(control)
end
context 'with live build logs' do
diff --git a/spec/services/ci/cancel_pipeline_service_spec.rb b/spec/services/ci/cancel_pipeline_service_spec.rb
index 256d2db1ed2..6051485c4df 100644
--- a/spec/services/ci/cancel_pipeline_service_spec.rb
+++ b/spec/services/ci/cancel_pipeline_service_spec.rb
@@ -13,12 +13,14 @@ RSpec.describe Ci::CancelPipelineService, :aggregate_failures, feature_category:
current_user: current_user,
cascade_to_children: cascade_to_children,
auto_canceled_by_pipeline: auto_canceled_by_pipeline,
- execute_async: execute_async)
+ execute_async: execute_async,
+ safe_cancellation: safe_cancellation)
end
let(:cascade_to_children) { true }
let(:auto_canceled_by_pipeline) { nil }
let(:execute_async) { true }
+ let(:safe_cancellation) { false }
shared_examples 'force_execute' do
context 'when pipeline is not cancelable' do
@@ -30,9 +32,14 @@ RSpec.describe Ci::CancelPipelineService, :aggregate_failures, feature_category:
context 'when pipeline is cancelable' do
before do
- create(:ci_build, :running, pipeline: pipeline)
- create(:ci_build, :created, pipeline: pipeline)
- create(:ci_build, :success, pipeline: pipeline)
+ create(:ci_build, :running, pipeline: pipeline, name: 'build1')
+ create(:ci_build, :created, pipeline: pipeline, name: 'build2')
+ create(:ci_build, :success, pipeline: pipeline, name: 'build3')
+ create(:ci_build, :pending, :interruptible, pipeline: pipeline, name: 'build4')
+
+ create(:ci_bridge, :running, pipeline: pipeline, name: 'bridge1')
+ create(:ci_bridge, :running, :interruptible, pipeline: pipeline, name: 'bridge2')
+ create(:ci_bridge, :success, :interruptible, pipeline: pipeline, name: 'bridge3')
end
it 'logs the event' do
@@ -55,7 +62,15 @@ RSpec.describe Ci::CancelPipelineService, :aggregate_failures, feature_category:
it 'cancels all cancelable jobs' do
expect(response).to be_success
- expect(pipeline.all_jobs.pluck(:status)).to match_array(%w[canceled canceled success])
+ expect(pipeline.all_jobs.pluck(:name, :status)).to match_array([
+ %w[build1 canceled],
+ %w[build2 canceled],
+ %w[build3 success],
+ %w[build4 canceled],
+ %w[bridge1 canceled],
+ %w[bridge2 canceled],
+ %w[bridge3 success]
+ ])
end
context 'when auto_canceled_by_pipeline is provided' do
@@ -74,6 +89,28 @@ RSpec.describe Ci::CancelPipelineService, :aggregate_failures, feature_category:
end
end
+ context 'when cascade_to_children: false and safe_cancellation: true' do
+ # We are testing the `safe_cancellation: true`` case with only `cascade_to_children: false`
+ # because `safe_cancellation` is passed as `true` only when `cascade_to_children` is `false`
+ # from `CancelRedundantPipelinesService`.
+
+ let(:cascade_to_children) { false }
+ let(:safe_cancellation) { true }
+
+ it 'cancels only interruptible jobs' do
+ expect(response).to be_success
+ expect(pipeline.all_jobs.pluck(:name, :status)).to match_array([
+ %w[build1 running],
+ %w[build2 created],
+ %w[build3 success],
+ %w[build4 canceled],
+ %w[bridge1 running],
+ %w[bridge2 canceled],
+ %w[bridge3 success]
+ ])
+ end
+ end
+
context 'when pipeline has child pipelines' do
let(:child_pipeline) { create(:ci_pipeline, child_of: pipeline) }
let!(:child_job) { create(:ci_build, :running, pipeline: child_pipeline) }
@@ -81,8 +118,8 @@ RSpec.describe Ci::CancelPipelineService, :aggregate_failures, feature_category:
let!(:grandchild_job) { create(:ci_build, :running, pipeline: grandchild_pipeline) }
before do
- child_pipeline.source_bridge.update!(status: :running)
- grandchild_pipeline.source_bridge.update!(status: :running)
+ child_pipeline.source_bridge.update!(name: 'child_pipeline_bridge', status: :running)
+ grandchild_pipeline.source_bridge.update!(name: 'grandchild_pipeline_bridge', status: :running)
end
context 'when execute_async: false' do
@@ -91,8 +128,15 @@ RSpec.describe Ci::CancelPipelineService, :aggregate_failures, feature_category:
it 'cancels the bridge jobs and child jobs' do
expect(response).to be_success
- expect(pipeline.bridges.pluck(:status)).to be_all('canceled')
- expect(child_pipeline.bridges.pluck(:status)).to be_all('canceled')
+ expect(pipeline.bridges.pluck(:name, :status)).to match_array([
+ %w[bridge1 canceled],
+ %w[bridge2 canceled],
+ %w[bridge3 success],
+ %w[child_pipeline_bridge canceled]
+ ])
+ expect(child_pipeline.bridges.pluck(:name, :status)).to match_array([
+ %w[grandchild_pipeline_bridge canceled]
+ ])
expect(child_job.reload).to be_canceled
expect(grandchild_job.reload).to be_canceled
end
@@ -110,7 +154,12 @@ RSpec.describe Ci::CancelPipelineService, :aggregate_failures, feature_category:
expect(response).to be_success
- expect(pipeline.bridges.pluck(:status)).to be_all('canceled')
+ expect(pipeline.bridges.pluck(:name, :status)).to match_array([
+ %w[bridge1 canceled],
+ %w[bridge2 canceled],
+ %w[bridge3 success],
+ %w[child_pipeline_bridge canceled]
+ ])
end
end
@@ -124,7 +173,12 @@ RSpec.describe Ci::CancelPipelineService, :aggregate_failures, feature_category:
expect(response).to be_success
- expect(pipeline.bridges.pluck(:status)).to be_all('canceled')
+ expect(pipeline.bridges.pluck(:name, :status)).to match_array([
+ %w[bridge1 canceled],
+ %w[bridge2 canceled],
+ %w[bridge3 success],
+ %w[child_pipeline_bridge canceled]
+ ])
expect(child_job.reload).to be_running
end
end
diff --git a/spec/services/ci/catalog/resources/create_service_spec.rb b/spec/services/ci/catalog/resources/create_service_spec.rb
index 202c76acaec..5839b9ac2fe 100644
--- a/spec/services/ci/catalog/resources/create_service_spec.rb
+++ b/spec/services/ci/catalog/resources/create_service_spec.rb
@@ -8,10 +8,6 @@ RSpec.describe Ci::Catalog::Resources::CreateService, feature_category: :pipelin
let(:service) { described_class.new(project, user) }
- before do
- stub_licensed_features(ci_namespace_catalog: true)
- end
-
describe '#execute' do
context 'with an unauthorized user' do
it 'raises an AccessDeniedError' do
diff --git a/spec/services/ci/catalog/resources/destroy_service_spec.rb b/spec/services/ci/catalog/resources/destroy_service_spec.rb
index da5ba7ad0bc..4783506416d 100644
--- a/spec/services/ci/catalog/resources/destroy_service_spec.rb
+++ b/spec/services/ci/catalog/resources/destroy_service_spec.rb
@@ -9,10 +9,6 @@ RSpec.describe Ci::Catalog::Resources::DestroyService, feature_category: :pipeli
let(:service) { described_class.new(project, user) }
- before do
- stub_licensed_features(ci_namespace_catalog: true)
- end
-
describe '#execute' do
context 'with an unauthorized user' do
it 'raises an AccessDeniedError' do
diff --git a/spec/services/ci/catalog/resources/versions/create_service_spec.rb b/spec/services/ci/catalog/resources/versions/create_service_spec.rb
index e614a74a4a1..b57525fc8e1 100644
--- a/spec/services/ci/catalog/resources/versions/create_service_spec.rb
+++ b/spec/services/ci/catalog/resources/versions/create_service_spec.rb
@@ -115,6 +115,7 @@ RSpec.describe Ci::Catalog::Resources::Versions::CreateService, feature_category
expect(response).to be_success
version = Ci::Catalog::Resources::Version.last
+ base_path = "#{Settings.gitlab.host}/#{project.full_path}"
expect(project.ci_components.count).to eq(4)
expect(project.ci_components.first.name).to eq('blank-yaml')
@@ -122,25 +123,25 @@ RSpec.describe Ci::Catalog::Resources::Versions::CreateService, feature_category
expect(project.ci_components.first.inputs).to eq({})
expect(project.ci_components.first.catalog_resource).to eq(version.catalog_resource)
expect(project.ci_components.first.version).to eq(version)
- expect(project.ci_components.first.path).to eq('templates/blank-yaml.yml')
+ expect(project.ci_components.first.path).to eq("#{base_path}/blank-yaml@#{version.name}")
expect(project.ci_components.second.name).to eq('dast')
expect(project.ci_components.second.project).to eq(version.project)
expect(project.ci_components.second.inputs).to eq({})
expect(project.ci_components.second.catalog_resource).to eq(version.catalog_resource)
expect(project.ci_components.second.version).to eq(version)
- expect(project.ci_components.second.path).to eq('templates/dast/template.yml')
+ expect(project.ci_components.second.path).to eq("#{base_path}/dast@#{version.name}")
expect(project.ci_components.third.name).to eq('secret-detection')
expect(project.ci_components.third.project).to eq(version.project)
expect(project.ci_components.third.inputs).to eq({ "website" => nil })
expect(project.ci_components.third.catalog_resource).to eq(version.catalog_resource)
expect(project.ci_components.third.version).to eq(version)
- expect(project.ci_components.third.path).to eq('templates/secret-detection.yml')
+ expect(project.ci_components.third.path).to eq("#{base_path}/secret-detection@#{version.name}")
expect(project.ci_components.fourth.name).to eq('template')
expect(project.ci_components.fourth.project).to eq(version.project)
expect(project.ci_components.fourth.inputs).to eq({ "environment" => nil })
expect(project.ci_components.fourth.catalog_resource).to eq(version.catalog_resource)
expect(project.ci_components.fourth.version).to eq(version)
- expect(project.ci_components.fourth.path).to eq('templates/template.yml')
+ expect(project.ci_components.fourth.path).to eq("#{base_path}/template@#{version.name}")
end
end
end
diff --git a/spec/services/ci/create_pipeline_service/partitioning_spec.rb b/spec/services/ci/create_pipeline_service/partitioning_spec.rb
index 70c4eb49698..574bc05827a 100644
--- a/spec/services/ci/create_pipeline_service/partitioning_spec.rb
+++ b/spec/services/ci/create_pipeline_service/partitioning_spec.rb
@@ -37,7 +37,7 @@ RSpec.describe Ci::CreatePipelineService, :yaml_processor_feature_flag_corectnes
end
let(:pipeline) { service.execute(:push).payload }
- let(:current_partition_id) { ci_testing_partition_id }
+ let(:current_partition_id) { ci_testing_partition_id_for_check_constraints }
before do
stub_ci_pipeline_yaml_file(config)
diff --git a/spec/services/ci/create_pipeline_service/workflow_auto_cancel_spec.rb b/spec/services/ci/create_pipeline_service/workflow_auto_cancel_spec.rb
index 851c6f8fbea..7e8a3ef3d7b 100644
--- a/spec/services/ci/create_pipeline_service/workflow_auto_cancel_spec.rb
+++ b/spec/services/ci/create_pipeline_service/workflow_auto_cancel_spec.rb
@@ -57,7 +57,49 @@ RSpec.describe Ci::CreatePipelineService, :yaml_processor_feature_flag_corectnes
it 'creates a pipeline with errors' do
expect(pipeline).to be_persisted
expect(pipeline.errors.full_messages).to include(
- 'workflow:auto_cancel on new commit must be one of: conservative, interruptible, disabled')
+ 'workflow:auto_cancel on new commit must be one of: conservative, interruptible, none')
+ end
+ end
+
+ context 'when using with workflow:rules' do
+ let(:config) do
+ <<~YAML
+ workflow:
+ auto_cancel:
+ on_new_commit: interruptible
+ rules:
+ - if: $VAR123 == "valid value"
+ auto_cancel:
+ on_new_commit: none
+ - when: always
+
+ test1:
+ script: exit 0
+ YAML
+ end
+
+ before do
+ stub_ci_pipeline_yaml_file(config)
+ end
+
+ context 'when the rule matches' do
+ before do
+ create(:ci_variable, project: project, key: 'VAR123', value: 'valid value')
+ end
+
+ it 'creates a pipeline with on_new_commit' do
+ expect(pipeline).to be_persisted
+ expect(pipeline.errors).to be_empty
+ expect(pipeline.pipeline_metadata.auto_cancel_on_new_commit).to eq('none')
+ end
+ end
+
+ context 'when the rule does not match' do
+ it 'creates a pipeline with on_new_commit' do
+ expect(pipeline).to be_persisted
+ expect(pipeline.errors).to be_empty
+ expect(pipeline.pipeline_metadata.auto_cancel_on_new_commit).to eq('interruptible')
+ end
end
end
end
@@ -165,5 +207,47 @@ RSpec.describe Ci::CreatePipelineService, :yaml_processor_feature_flag_corectnes
'workflow:auto_cancel on job failure must be one of: none, all')
end
end
+
+ context 'when using with workflow:rules' do
+ let(:config) do
+ <<~YAML
+ workflow:
+ auto_cancel:
+ on_job_failure: none
+ rules:
+ - if: $VAR123 == "valid value"
+ auto_cancel:
+ on_job_failure: all
+ - when: always
+
+ test1:
+ script: exit 0
+ YAML
+ end
+
+ before do
+ stub_ci_pipeline_yaml_file(config)
+ end
+
+ context 'when the rule matches' do
+ before do
+ create(:ci_variable, project: project, key: 'VAR123', value: 'valid value')
+ end
+
+ it 'creates a pipeline with on_job_failure' do
+ expect(pipeline).to be_persisted
+ expect(pipeline.errors).to be_empty
+ expect(pipeline.pipeline_metadata.auto_cancel_on_job_failure).to eq('all')
+ end
+ end
+
+ context 'when the rule does not match' do
+ it 'creates a pipeline with on_job_failure' do
+ expect(pipeline).to be_persisted
+ expect(pipeline.errors).to be_empty
+ expect(pipeline.pipeline_metadata.auto_cancel_on_job_failure).to eq('none')
+ end
+ end
+ end
end
end
diff --git a/spec/services/ci/expire_pipeline_cache_service_spec.rb b/spec/services/ci/expire_pipeline_cache_service_spec.rb
index 3d0ce456aa5..a74b820de09 100644
--- a/spec/services/ci/expire_pipeline_cache_service_spec.rb
+++ b/spec/services/ci/expire_pipeline_cache_service_spec.rb
@@ -106,7 +106,7 @@ RSpec.describe Ci::ExpirePipelineCacheService, feature_category: :continuous_int
create(:ci_sources_pipeline, pipeline: pipeline)
create(:ci_sources_pipeline, source_job: create(:ci_build, pipeline: pipeline))
- expect { subject.execute(pipeline) }.not_to exceed_query_limit(control.count)
+ expect { subject.execute(pipeline) }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb b/spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb
index c060c72ffb2..bdb4ed182dc 100644
--- a/spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb
+++ b/spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb
@@ -44,7 +44,7 @@ RSpec.describe Ci::JobArtifacts::DestroyAllExpiredService, :clean_gitlab_redis_s
more_artifacts
- expect { subject }.not_to exceed_query_limit(control.count)
+ expect { subject }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/services/ci/pipeline_creation/cancel_redundant_pipelines_service_spec.rb b/spec/services/ci/pipeline_creation/cancel_redundant_pipelines_service_spec.rb
index 0d83187f9e4..7b5eef92f53 100644
--- a/spec/services/ci/pipeline_creation/cancel_redundant_pipelines_service_spec.rb
+++ b/spec/services/ci/pipeline_creation/cancel_redundant_pipelines_service_spec.rb
@@ -53,7 +53,7 @@ RSpec.describe Ci::PipelineCreation::CancelRedundantPipelinesService, feature_ca
project.update!(auto_cancel_pending_pipelines: 'enabled')
end
- it 'cancels only previous interruptible builds' do
+ it 'cancels only previous non started builds' do
execute
expect(build_statuses(prev_pipeline)).to contain_exactly('canceled', 'success', 'canceled')
@@ -153,6 +153,36 @@ RSpec.describe Ci::PipelineCreation::CancelRedundantPipelinesService, feature_ca
expect(build_statuses(child_pipeline)).to contain_exactly('running', 'success')
end
+
+ context 'when the child pipeline auto_cancel_on_new_commit is `interruptible`' do
+ before do
+ child_pipeline.create_pipeline_metadata!(
+ project: child_pipeline.project, auto_cancel_on_new_commit: 'interruptible'
+ )
+ end
+
+ it 'cancels interruptible child pipeline builds' do
+ expect(build_statuses(child_pipeline)).to contain_exactly('running', 'success')
+
+ execute
+
+ expect(build_statuses(child_pipeline)).to contain_exactly('canceled', 'success')
+ end
+
+ context 'when the FF ci_workflow_auto_cancel_on_new_commit is disabled' do
+ before do
+ stub_feature_flags(ci_workflow_auto_cancel_on_new_commit: false)
+ end
+
+ it 'does not cancel any child pipeline builds' do
+ expect(build_statuses(child_pipeline)).to contain_exactly('running', 'success')
+
+ execute
+
+ expect(build_statuses(child_pipeline)).to contain_exactly('running', 'success')
+ end
+ end
+ end
end
context 'when the child pipeline has non-interruptible non-started job' do
@@ -227,6 +257,37 @@ RSpec.describe Ci::PipelineCreation::CancelRedundantPipelinesService, feature_ca
end
end
+ context 'when there are non-interruptible completed jobs in the pipeline' do
+ before do
+ create(:ci_build, :failed, pipeline: prev_pipeline)
+ create(:ci_build, :success, pipeline: prev_pipeline)
+ end
+
+ it 'does not cancel any job' do
+ execute
+
+ expect(job_statuses(prev_pipeline)).to contain_exactly(
+ 'running', 'success', 'created', 'failed', 'success'
+ )
+ expect(job_statuses(pipeline)).to contain_exactly('pending')
+ end
+
+ context 'when the FF ci_workflow_auto_cancel_on_new_commit is disabled' do
+ before do
+ stub_feature_flags(ci_workflow_auto_cancel_on_new_commit: false)
+ end
+
+ it 'does not cancel any job' do
+ execute
+
+ expect(job_statuses(prev_pipeline)).to contain_exactly(
+ 'running', 'success', 'created', 'failed', 'success'
+ )
+ expect(job_statuses(pipeline)).to contain_exactly('pending')
+ end
+ end
+ end
+
context 'when there are trigger jobs' do
before do
create(:ci_bridge, :created, pipeline: prev_pipeline)
@@ -246,6 +307,152 @@ RSpec.describe Ci::PipelineCreation::CancelRedundantPipelinesService, feature_ca
end
end
+ context 'when auto_cancel_on_new_commit is `interruptible`' do
+ before do
+ prev_pipeline.create_pipeline_metadata!(
+ project: prev_pipeline.project, auto_cancel_on_new_commit: 'interruptible'
+ )
+ end
+
+ it 'cancels only interruptible jobs' do
+ execute
+
+ expect(job_statuses(prev_pipeline)).to contain_exactly('canceled', 'success', 'created')
+ expect(job_statuses(pipeline)).to contain_exactly('pending')
+ end
+
+ context 'when the FF ci_workflow_auto_cancel_on_new_commit is disabled' do
+ before do
+ stub_feature_flags(ci_workflow_auto_cancel_on_new_commit: false)
+ end
+
+ it 'cancels non started builds' do
+ execute
+
+ expect(build_statuses(prev_pipeline)).to contain_exactly('canceled', 'success', 'canceled')
+ expect(build_statuses(pipeline)).to contain_exactly('pending')
+ end
+ end
+
+ context 'when there are non-interruptible completed jobs in the pipeline' do
+ before do
+ create(:ci_build, :failed, pipeline: prev_pipeline)
+ create(:ci_build, :success, pipeline: prev_pipeline)
+ end
+
+ it 'still cancels only interruptible jobs' do
+ execute
+
+ expect(job_statuses(prev_pipeline)).to contain_exactly(
+ 'canceled', 'success', 'created', 'failed', 'success'
+ )
+ expect(job_statuses(pipeline)).to contain_exactly('pending')
+ end
+
+ context 'when the FF ci_workflow_auto_cancel_on_new_commit is disabled' do
+ before do
+ stub_feature_flags(ci_workflow_auto_cancel_on_new_commit: false)
+ end
+
+ it 'does not cancel any job' do
+ execute
+
+ expect(build_statuses(prev_pipeline)).to contain_exactly(
+ 'created', 'success', 'running', 'failed', 'success'
+ )
+ expect(build_statuses(pipeline)).to contain_exactly('pending')
+ end
+ end
+ end
+ end
+
+ context 'when auto_cancel_on_new_commit is `none`' do
+ before do
+ prev_pipeline.create_pipeline_metadata!(
+ project: prev_pipeline.project, auto_cancel_on_new_commit: 'none'
+ )
+ end
+
+ it 'does not cancel any job' do
+ execute
+
+ expect(job_statuses(prev_pipeline)).to contain_exactly('running', 'success', 'created')
+ expect(job_statuses(pipeline)).to contain_exactly('pending')
+ end
+ end
+
+ context 'when auto_cancel_on_new_commit is `conservative`' do
+ before do
+ prev_pipeline.create_pipeline_metadata!(
+ project: prev_pipeline.project, auto_cancel_on_new_commit: 'conservative'
+ )
+ end
+
+ it 'cancels only previous non started builds' do
+ execute
+
+ expect(build_statuses(prev_pipeline)).to contain_exactly('canceled', 'success', 'canceled')
+ expect(build_statuses(pipeline)).to contain_exactly('pending')
+ end
+
+ context 'when the FF ci_workflow_auto_cancel_on_new_commit is disabled' do
+ before do
+ stub_feature_flags(ci_workflow_auto_cancel_on_new_commit: false)
+ end
+
+ it 'cancels only previous non started builds' do
+ execute
+
+ expect(build_statuses(prev_pipeline)).to contain_exactly('canceled', 'success', 'canceled')
+ expect(build_statuses(pipeline)).to contain_exactly('pending')
+ end
+ end
+
+ context 'when there are non-interruptible completed jobs in the pipeline' do
+ before do
+ create(:ci_build, :failed, pipeline: prev_pipeline)
+ create(:ci_build, :success, pipeline: prev_pipeline)
+ end
+
+ it 'does not cancel any job' do
+ execute
+
+ expect(job_statuses(prev_pipeline)).to contain_exactly(
+ 'running', 'success', 'created', 'failed', 'success'
+ )
+ expect(job_statuses(pipeline)).to contain_exactly('pending')
+ end
+
+ context 'when the FF ci_workflow_auto_cancel_on_new_commit is disabled' do
+ before do
+ stub_feature_flags(ci_workflow_auto_cancel_on_new_commit: false)
+ end
+
+ it 'does not cancel any job' do
+ execute
+
+ expect(job_statuses(prev_pipeline)).to contain_exactly(
+ 'running', 'success', 'created', 'failed', 'success'
+ )
+ expect(job_statuses(pipeline)).to contain_exactly('pending')
+ end
+ end
+ end
+ end
+
+ context 'when auto_cancel_on_new_commit is an invalid value' do
+ before do
+ allow(prev_pipeline).to receive(:auto_cancel_on_new_commit).and_return('invalid')
+ relation = Ci::Pipeline.id_in(prev_pipeline.id)
+ allow(relation).to receive(:each).and_yield(prev_pipeline)
+ allow(Ci::Pipeline).to receive(:id_in).and_return(relation)
+ end
+
+ it 'raises an error' do
+ expect { execute }.to raise_error(ArgumentError, 'Unknown auto_cancel_on_new_commit value: invalid')
+ end
+ end
+
it 'does not cancel future pipelines' do
expect(prev_pipeline.id).to be < pipeline.id
expect(build_statuses(pipeline)).to contain_exactly('pending')
diff --git a/spec/services/ci/retry_job_service_spec.rb b/spec/services/ci/retry_job_service_spec.rb
index 1646afde21d..1708f475e6b 100644
--- a/spec/services/ci/retry_job_service_spec.rb
+++ b/spec/services/ci/retry_job_service_spec.rb
@@ -403,11 +403,11 @@ RSpec.describe Ci::RetryJobService, feature_category: :continuous_integration do
end
it 'does not cause an N+1 when updating the job ownership' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) { service.execute(job) }.count
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) { service.execute(job) }
create_list(:ci_build, 2, :skipped, pipeline: pipeline, ci_stage: deploy_stage)
- expect { service.execute(job) }.not_to exceed_all_query_limit(control_count)
+ expect { service.execute(job) }.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/services/ci/runners/unregister_runner_manager_service_spec.rb b/spec/services/ci/runners/unregister_runner_manager_service_spec.rb
index 590df18469d..0fa2afdcdfc 100644
--- a/spec/services/ci/runners/unregister_runner_manager_service_spec.rb
+++ b/spec/services/ci/runners/unregister_runner_manager_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ::Ci::Runners::UnregisterRunnerManagerService, '#execute', feature_category: :fleet_visibility do
+RSpec.describe ::Ci::Runners::UnregisterRunnerManagerService, '#execute', :freeze_time, feature_category: :fleet_visibility do
subject(:execute) { described_class.new(runner, 'some_token', system_id: system_id).execute }
context 'with runner registered with registration token' do
@@ -21,7 +21,7 @@ RSpec.describe ::Ci::Runners::UnregisterRunnerManagerService, '#execute', featur
context 'with runner created in UI' do
let!(:runner_manager1) { create(:ci_runner_machine, runner: runner, system_xid: 'system_id_1') }
let!(:runner_manager2) { create(:ci_runner_machine, runner: runner, system_xid: 'system_id_2') }
- let!(:runner) { create(:ci_runner, registration_type: :authenticated_user) }
+ let!(:runner) { create(:ci_runner, registration_type: :authenticated_user, contacted_at: Time.current) }
context 'with system_id specified' do
let(:system_id) { runner_manager1.system_xid }
@@ -34,6 +34,24 @@ RSpec.describe ::Ci::Runners::UnregisterRunnerManagerService, '#execute', featur
expect(runner[:errors]).to be_nil
expect(runner.runner_managers).to contain_exactly(runner_manager2)
end
+
+ it 'does not clear runner heartbeat' do
+ expect(runner).not_to receive(:clear_heartbeat)
+
+ expect(execute).to be_success
+ end
+
+ context "when there are no runner managers left after deletion" do
+ let!(:runner_manager2) { nil }
+
+ it 'clears the heartbeat attributes' do
+ expect(runner).to receive(:clear_heartbeat).and_call_original
+
+ expect do
+ expect(execute).to be_success
+ end.to change { runner.reload.read_attribute(:contacted_at) }.from(Time.current).to(nil)
+ end
+ end
end
context 'with unknown system_id' do
diff --git a/spec/services/ci/unlock_pipeline_service_spec.rb b/spec/services/ci/unlock_pipeline_service_spec.rb
index 1a1150dca9e..16537ce5eaa 100644
--- a/spec/services/ci/unlock_pipeline_service_spec.rb
+++ b/spec/services/ci/unlock_pipeline_service_spec.rb
@@ -39,6 +39,28 @@ RSpec.describe Ci::UnlockPipelineService, :unlock_pipelines, :clean_gitlab_redis
)
end
+ context 'when disable_ci_partition_pruning is disabled' do
+ before do
+ stub_feature_flags(disable_ci_partition_pruning: false)
+ end
+
+ it 'unlocks the pipeline and all its artifacts' do
+ expect { execute }
+ .to change { pipeline.reload.locked }.from('artifacts_locked').to('unlocked')
+ .and change { pipeline.reload.job_artifacts.all?(&:artifact_unlocked?) }.to(true)
+ .and change { pipeline.reload.pipeline_artifacts.all?(&:artifact_unlocked?) }.to(true)
+
+ expect(execute).to eq(
+ status: :success,
+ skipped_already_leased: false,
+ skipped_already_unlocked: false,
+ exec_timeout: false,
+ unlocked_job_artifacts: pipeline.job_artifacts.count,
+ unlocked_pipeline_artifacts: pipeline.pipeline_artifacts.count
+ )
+ end
+ end
+
context 'and pipeline is already unlocked' do
before do
described_class.new(pipeline).execute
diff --git a/spec/services/ci/update_build_queue_service_spec.rb b/spec/services/ci/update_build_queue_service_spec.rb
index 4fd4492278d..c5959127f34 100644
--- a/spec/services/ci/update_build_queue_service_spec.rb
+++ b/spec/services/ci/update_build_queue_service_spec.rb
@@ -331,11 +331,11 @@ RSpec.describe Ci::UpdateBuildQueueService, feature_category: :continuous_integr
let!(:project_runner) { create(:ci_runner, :project, :online, projects: [project], tag_list: %w[a b c]) }
it 'does execute the same amount of queries regardless of number of runners' do
- control_count = ActiveRecord::QueryRecorder.new { subject.tick(build) }.count
+ control = ActiveRecord::QueryRecorder.new { subject.tick(build) }
create_list(:ci_runner, 10, :project, :online, projects: [project], tag_list: %w[b c d])
- expect { subject.tick(build) }.not_to exceed_all_query_limit(control_count)
+ expect { subject.tick(build) }.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/services/click_house/sync_strategies/base_sync_strategy_spec.rb b/spec/services/click_house/sync_strategies/base_sync_strategy_spec.rb
new file mode 100644
index 00000000000..eb9324fd24b
--- /dev/null
+++ b/spec/services/click_house/sync_strategies/base_sync_strategy_spec.rb
@@ -0,0 +1,169 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ClickHouse::SyncStrategies::BaseSyncStrategy, feature_category: :value_stream_management do
+ let(:strategy) { described_class.new }
+
+ describe '#execute' do
+ subject(:execute) { strategy.execute }
+
+ context 'when clickhouse configuration database is available', :click_house do
+ before do
+ allow(strategy).to receive(:model_class).and_return(::Event)
+ allow(strategy).to receive(:projections).and_return([:id])
+ allow(strategy).to receive(:csv_mapping).and_return({ id: :id })
+ allow(strategy).to receive(:insert_query).and_return("INSERT INTO events (id) SETTINGS async_insert=1,
+ wait_for_async_insert=1 FORMAT CSV")
+ end
+
+ context 'when there is nothing to sync' do
+ it 'adds metadata for the worker' do
+ expect(execute).to eq({ status: :processed, records_inserted: 0, reached_end_of_table: true })
+
+ events = ClickHouse::Client.select('SELECT * FROM events', :main)
+ expect(events).to be_empty
+ end
+ end
+
+ context 'when syncing records' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:project) { create(:project, group: group) }
+ let_it_be(:issue) { create(:issue, project: project) }
+ let_it_be(:project_event2) { create(:event, :closed, project: project, target: issue) }
+ let_it_be(:event_without_parent) { create(:event, :joined, project: nil, group: nil) }
+ let_it_be(:group_event) { create(:event, :created, group: group, project: nil) }
+ let_it_be(:project_event1) { create(:event, :created, project: project, target: issue) }
+
+ it 'inserts all records' do
+ expect(execute).to eq({ status: :processed, records_inserted: 4, reached_end_of_table: true })
+
+ expected_records = [
+ hash_including('id' => project_event2.id),
+ hash_including('id' => event_without_parent.id),
+ hash_including('id' => group_event.id),
+ hash_including('id' => project_event1.id)
+ ]
+
+ events = ClickHouse::Client.select('SELECT * FROM events ORDER BY id', :main)
+
+ expect(events).to match(expected_records)
+
+ last_processed_id = ClickHouse::SyncCursor.cursor_for(:events)
+ expect(last_processed_id).to eq(project_event1.id)
+ end
+
+ context 'when multiple batches are needed' do
+ before do
+ stub_const("#{described_class}::BATCH_SIZE", 1)
+ stub_const("#{described_class}::INSERT_BATCH_SIZE", 1)
+ end
+
+ it 'inserts all records' do
+ expect(execute).to eq({ status: :processed, records_inserted: 4, reached_end_of_table: true })
+
+ events = ClickHouse::Client.select('SELECT * FROM events', :main)
+ expect(events.size).to eq(4)
+ end
+
+ context 'when new records are inserted while processing' do
+ it 'does not process new records created during the iteration' do
+ # Simulating the case when there is an insert during the iteration
+ call_count = 0
+ allow(strategy).to receive(:next_batch).and_wrap_original do |method|
+ call_count += 1
+ create(:event) if call_count == 3
+ method.call
+ end
+
+ expect(execute).to eq({ status: :processed, records_inserted: 4, reached_end_of_table: true })
+ end
+ end
+ end
+
+ context 'when time limit is reached' do
+ before do
+ stub_const("#{described_class}::BATCH_SIZE", 1)
+ end
+
+ it 'stops the processing' do
+ allow_next_instance_of(Analytics::CycleAnalytics::RuntimeLimiter) do |runtime_limiter|
+ allow(runtime_limiter).to receive(:over_time?).and_return(false, true)
+ end
+
+ expect(execute).to eq({ status: :processed, records_inserted: 2, reached_end_of_table: false })
+
+ last_processed_id = ClickHouse::SyncCursor.cursor_for(:events)
+ expect(last_processed_id).to eq(event_without_parent.id)
+ end
+ end
+
+ context 'when syncing from a certain point' do
+ before do
+ ClickHouse::SyncCursor.update_cursor_for(:events, project_event2.id)
+ end
+
+ it 'syncs records after the cursor' do
+ expect(execute).to eq({ status: :processed, records_inserted: 3, reached_end_of_table: true })
+
+ events = ClickHouse::Client.select('SELECT id FROM events ORDER BY id', :main)
+
+ expect(events).to eq([{ 'id' => event_without_parent.id }, { 'id' => group_event.id },
+ { 'id' => project_event1.id }])
+ end
+
+ context 'when there is nothing to sync' do
+ it 'does nothing' do
+ ClickHouse::SyncCursor.update_cursor_for(:events, project_event1.id)
+
+ expect(execute).to eq({ status: :processed, records_inserted: 0, reached_end_of_table: true })
+
+ events = ClickHouse::Client.select('SELECT id FROM events ORDER BY id', :main)
+ expect(events).to be_empty
+ end
+ end
+ end
+ end
+ end
+
+ context 'when clickhouse is not configured' do
+ before do
+ allow(ClickHouse::Client.configuration).to receive(:databases).and_return({})
+ end
+
+ it 'skips execution' do
+ expect(execute).to eq({ status: :disabled })
+ end
+ end
+
+ context 'when exclusive lease error happens' do
+ it 'skips execution' do
+ allow(ClickHouse::Client.configuration).to receive(:databases).and_return({ main: :some_db })
+
+ expect(strategy).to receive(:in_lock).and_raise(Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError)
+ expect(execute).to eq({ status: :skipped })
+ end
+ end
+ end
+
+ describe '#projections' do
+ it 'raises a NotImplementedError' do
+ expect { strategy.send(:projections) }.to raise_error(NotImplementedError,
+ "Subclasses must implement `projections`")
+ end
+ end
+
+ describe '#csv_mapping' do
+ it 'raises a NotImplementedError' do
+ expect { strategy.send(:csv_mapping) }.to raise_error(NotImplementedError,
+ "Subclasses must implement `csv_mapping`")
+ end
+ end
+
+ describe '#insert_query' do
+ it 'raises a NotImplementedError' do
+ expect { strategy.send(:insert_query) }.to raise_error(NotImplementedError,
+ "Subclasses must implement `insert_query`")
+ end
+ end
+end
diff --git a/spec/services/click_house/sync_strategies/event_sync_strategy_spec.rb b/spec/services/click_house/sync_strategies/event_sync_strategy_spec.rb
new file mode 100644
index 00000000000..05fcf6ddeb3
--- /dev/null
+++ b/spec/services/click_house/sync_strategies/event_sync_strategy_spec.rb
@@ -0,0 +1,128 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ClickHouse::SyncStrategies::EventSyncStrategy, feature_category: :value_stream_management do
+ let(:strategy) { described_class.new }
+
+ describe '#execute' do
+ subject(:execute) { strategy.execute }
+
+ context 'when syncing records', :click_house do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:project) { create(:project, group: group) }
+ let_it_be(:issue) { create(:issue, project: project) }
+ let_it_be(:project_event2) { create(:event, :closed, project: project, target: issue) }
+ let_it_be(:event_without_parent) { create(:event, :joined, project: nil, group: nil) }
+ let_it_be(:group_event) { create(:event, :created, group: group, project: nil) }
+ let_it_be(:project_event1) { create(:event, :created, project: project, target: issue) }
+ # looks invalid but we have some records like this on PRD
+
+ it 'correctly inserts all records' do
+ expect(execute).to eq({ status: :processed, records_inserted: 4, reached_end_of_table: true })
+
+ expected_records = [
+ hash_including('id' => project_event2.id, 'path' => "#{group.id}/#{project.project_namespace.id}/",
+ 'target_type' => 'Issue'),
+ hash_including('id' => event_without_parent.id, 'path' => '', 'target_type' => ''),
+ hash_including('id' => group_event.id, 'path' => "#{group.id}/", 'target_type' => ''),
+ hash_including('id' => project_event1.id, 'path' => "#{group.id}/#{project.project_namespace.id}/",
+ 'target_type' => 'Issue')
+ ]
+
+ events = ClickHouse::Client.select('SELECT * FROM events ORDER BY id', :main)
+
+ expect(events).to match(expected_records)
+
+ last_processed_id = ClickHouse::SyncCursor.cursor_for(:events)
+ expect(last_processed_id).to eq(project_event1.id)
+ end
+ end
+ end
+
+ describe '#projections' do
+ it 'returns correct projections' do
+ expect(strategy.send(:projections)).to match_array([
+ :id,
+ described_class::PATH_COLUMN,
+ :author_id,
+ :target_id,
+ :target_type,
+ 'action AS raw_action',
+ 'EXTRACT(epoch FROM created_at) AS casted_created_at',
+ 'EXTRACT(epoch FROM updated_at) AS casted_updated_at'
+ ])
+ end
+ end
+
+ describe '#csv_mapping' do
+ it 'returns correct csv mapping' do
+ expect(strategy.send(:csv_mapping)).to eq({
+ id: :id,
+ path: :path,
+ author_id: :author_id,
+ target_id: :target_id,
+ target_type: :target_type,
+ action: :raw_action,
+ created_at: :casted_created_at,
+ updated_at: :casted_updated_at
+ })
+ end
+ end
+
+ describe '#insert_query' do
+ let(:expected_query) do
+ <<~SQL.squish
+ INSERT INTO events (id, path, author_id,
+ target_id, target_type,
+ action, created_at, updated_at)
+ SETTINGS async_insert=1,
+ wait_for_async_insert=1 FORMAT CSV
+ SQL
+ end
+
+ it 'returns correct insert query' do
+ expect(strategy.send(:insert_query)).to eq(expected_query)
+ end
+ end
+
+ describe '#model_class' do
+ it 'returns the correct model class' do
+ expect(strategy.send(:model_class)).to eq(::Event)
+ end
+ end
+
+ describe '#enabled?' do
+ context 'when the clickhouse database is configured the feature flag is enabled' do
+ before do
+ allow(ClickHouse::Client.configuration).to receive(:databases).and_return({ main: :some_db })
+ stub_feature_flags(event_sync_worker_for_click_house: true)
+ end
+
+ it 'returns true' do
+ expect(strategy.send(:enabled?)).to be_truthy
+ end
+ end
+
+ context 'when the clickhouse database is not configured' do
+ before do
+ allow(ClickHouse::Client.configuration).to receive(:databases).and_return({})
+ end
+
+ it 'returns false' do
+ expect(strategy.send(:enabled?)).to be_falsey
+ end
+ end
+
+ context 'when the feature flag is disabled' do
+ before do
+ allow(ClickHouse::Client.configuration).to receive(:databases).and_return({ main: :some_db })
+ stub_feature_flags(event_sync_worker_for_click_house: false)
+ end
+
+ it 'returns false' do
+ expect(strategy.send(:enabled?)).to be_falsey
+ end
+ end
+ end
+end
diff --git a/spec/services/google_cloud/create_cloudsql_instance_service_spec.rb b/spec/services/cloud_seed/google_cloud/create_cloudsql_instance_service_spec.rb
index c31e76170d5..f6f1206e753 100644
--- a/spec/services/google_cloud/create_cloudsql_instance_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/create_cloudsql_instance_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::CreateCloudsqlInstanceService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::CreateCloudsqlInstanceService, feature_category: :deployment_management do
let(:project) { create(:project) }
let(:user) { create(:user) }
let(:gcp_project_id) { 'gcp_project_120' }
diff --git a/spec/services/google_cloud/create_service_accounts_service_spec.rb b/spec/services/cloud_seed/google_cloud/create_service_accounts_service_spec.rb
index 3b57f2a9e5f..da30037963b 100644
--- a/spec/services/google_cloud/create_service_accounts_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/create_service_accounts_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::CreateServiceAccountsService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::CreateServiceAccountsService, feature_category: :deployment_management do
describe '#execute' do
before do
mock_google_oauth2_creds = Struct.new(:app_id, :app_secret)
diff --git a/spec/services/google_cloud/enable_cloud_run_service_spec.rb b/spec/services/cloud_seed/google_cloud/enable_cloud_run_service_spec.rb
index 3de9e7fcd5c..09f1b3460cc 100644
--- a/spec/services/google_cloud/enable_cloud_run_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/enable_cloud_run_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::EnableCloudRunService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::EnableCloudRunService, feature_category: :deployment_management do
describe 'when a project does not have any gcp projects' do
let_it_be(:project) { create(:project) }
diff --git a/spec/services/google_cloud/enable_cloudsql_service_spec.rb b/spec/services/cloud_seed/google_cloud/enable_cloudsql_service_spec.rb
index b14b827e8b8..137393e4544 100644
--- a/spec/services/google_cloud/enable_cloudsql_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/enable_cloudsql_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::EnableCloudsqlService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::EnableCloudsqlService, feature_category: :deployment_management do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user) }
let_it_be(:params) do
diff --git a/spec/services/google_cloud/enable_vision_ai_service_spec.rb b/spec/services/cloud_seed/google_cloud/enable_vision_ai_service_spec.rb
index 5adafcffe69..c37b5681a4b 100644
--- a/spec/services/google_cloud/enable_vision_ai_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/enable_vision_ai_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::EnableVisionAiService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::EnableVisionAiService, feature_category: :deployment_management do
describe 'when a project does not have any gcp projects' do
let_it_be(:project) { create(:project) }
diff --git a/spec/services/google_cloud/fetch_google_ip_list_service_spec.rb b/spec/services/cloud_seed/google_cloud/fetch_google_ip_list_service_spec.rb
index f8d5ba99bf6..c4a0be78213 100644
--- a/spec/services/google_cloud/fetch_google_ip_list_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/fetch_google_ip_list_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::FetchGoogleIpListService, :use_clean_rails_memory_store_caching,
+RSpec.describe CloudSeed::GoogleCloud::FetchGoogleIpListService, :use_clean_rails_memory_store_caching,
:clean_gitlab_redis_rate_limiting, feature_category: :build_artifacts do
include StubRequests
diff --git a/spec/services/google_cloud/gcp_region_add_or_replace_service_spec.rb b/spec/services/cloud_seed/google_cloud/gcp_region_add_or_replace_service_spec.rb
index a748fed7134..2af03291484 100644
--- a/spec/services/google_cloud/gcp_region_add_or_replace_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/gcp_region_add_or_replace_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::GcpRegionAddOrReplaceService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::GcpRegionAddOrReplaceService, feature_category: :deployment_management do
it 'adds and replaces GCP region vars' do
project = create(:project, :public)
service = described_class.new(project)
diff --git a/spec/services/google_cloud/generate_pipeline_service_spec.rb b/spec/services/cloud_seed/google_cloud/generate_pipeline_service_spec.rb
index 8f49e1af901..14c1e6bae7f 100644
--- a/spec/services/google_cloud/generate_pipeline_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/generate_pipeline_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::GeneratePipelineService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::GeneratePipelineService, feature_category: :deployment_management do
describe 'for cloud-run' do
describe 'when there is no existing pipeline' do
let_it_be(:project) { create(:project, :repository) }
@@ -64,7 +64,10 @@ RSpec.describe GoogleCloud::GeneratePipelineService, feature_category: :deployme
describe 'when there is an existing pipeline without `deploy` stage' do
let_it_be(:project) { create(:project, :repository) }
let_it_be(:maintainer) { create(:user) }
- let_it_be(:service_params) { { action: GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN } }
+ let_it_be(:service_params) do
+ { action: CloudSeed::GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN }
+ end
+
let_it_be(:service) { described_class.new(project, maintainer, service_params) }
before_all do
@@ -119,7 +122,10 @@ EOF
describe 'when there is an existing pipeline with `deploy` stage' do
let_it_be(:project) { create(:project, :repository) }
let_it_be(:maintainer) { create(:user) }
- let_it_be(:service_params) { { action: GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN } }
+ let_it_be(:service_params) do
+ { action: CloudSeed::GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN }
+ end
+
let_it_be(:service) { described_class.new(project, maintainer, service_params) }
before do
@@ -166,7 +172,10 @@ EOF
describe 'when there is an existing pipeline with `includes`' do
let_it_be(:project) { create(:project, :repository) }
let_it_be(:maintainer) { create(:user) }
- let_it_be(:service_params) { { action: GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN } }
+ let_it_be(:service_params) do
+ { action: CloudSeed::GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN }
+ end
+
let_it_be(:service) { described_class.new(project, maintainer, service_params) }
before do
@@ -210,7 +219,10 @@ EOF
describe 'when there is no existing pipeline' do
let_it_be(:project) { create(:project, :repository) }
let_it_be(:maintainer) { create(:user) }
- let_it_be(:service_params) { { action: GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_STORAGE } }
+ let_it_be(:service_params) do
+ { action: CloudSeed::GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_STORAGE }
+ end
+
let_it_be(:service) { described_class.new(project, maintainer, service_params) }
before do
diff --git a/spec/services/google_cloud/get_cloudsql_instances_service_spec.rb b/spec/services/cloud_seed/google_cloud/get_cloudsql_instances_service_spec.rb
index cd2ad00ac3f..fb17d578af7 100644
--- a/spec/services/google_cloud/get_cloudsql_instances_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/get_cloudsql_instances_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::GetCloudsqlInstancesService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::GetCloudsqlInstancesService, feature_category: :deployment_management do
let(:service) { described_class.new(project) }
let(:project) { create(:project) }
diff --git a/spec/services/google_cloud/service_accounts_service_spec.rb b/spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb
index c900bf7d300..62d58b3198a 100644
--- a/spec/services/google_cloud/service_accounts_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::ServiceAccountsService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::ServiceAccountsService, feature_category: :deployment_management do
let(:service) { described_class.new(project) }
describe 'find_for_project' do
diff --git a/spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb b/spec/services/cloud_seed/google_cloud/setup_cloudsql_instance_service_spec.rb
index 5095277f61a..ce02672e3fa 100644
--- a/spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb
+++ b/spec/services/cloud_seed/google_cloud/setup_cloudsql_instance_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GoogleCloud::SetupCloudsqlInstanceService, feature_category: :deployment_management do
+RSpec.describe CloudSeed::GoogleCloud::SetupCloudsqlInstanceService, feature_category: :deployment_management do
let(:random_user) { create(:user) }
let(:project) { create(:project) }
let(:list_databases_empty) { Google::Apis::SqladminV1beta4::ListDatabasesResponse.new(items: []) }
diff --git a/spec/services/design_management/save_designs_service_spec.rb b/spec/services/design_management/save_designs_service_spec.rb
index 4ab0080d8a2..5ad3fa1bca6 100644
--- a/spec/services/design_management/save_designs_service_spec.rb
+++ b/spec/services/design_management/save_designs_service_spec.rb
@@ -30,7 +30,7 @@ RSpec.describe DesignManagement::SaveDesignsService, feature_category: :design_m
before do
if issue.design_collection.repository.exists?
issue.design_collection.repository.expire_all_method_caches
- issue.design_collection.repository.raw.delete_all_refs_except([Gitlab::Git::BLANK_SHA])
+ issue.design_collection.repository.raw.delete_all_refs_except([Gitlab::Git::SHA1_BLANK_SHA])
end
allow(DesignManagement::NewVersionWorker)
diff --git a/spec/services/event_create_service_spec.rb b/spec/services/event_create_service_spec.rb
index 6a4769d77d5..f7041fb818e 100644
--- a/spec/services/event_create_service_spec.rb
+++ b/spec/services/event_create_service_spec.rb
@@ -364,19 +364,37 @@ RSpec.describe EventCreateService, :clean_gitlab_redis_cache, :clean_gitlab_redi
end
end
- describe 'Project' do
- describe '#join_project' do
- subject { service.join_project(project, user) }
+ describe '#join_source' do
+ let(:source) { project }
+ subject(:join_source) { service.join_source(source, user) }
+
+ context 'when source is a group' do
+ let_it_be(:source) { create(:group) }
+
+ it { is_expected.to be_falsey }
+
+ specify do
+ expect { join_source }.not_to change { Event.count }
+ end
+ end
+
+ context 'when source is a project' do
it { is_expected.to be_truthy }
- it { expect { subject }.to change { Event.count }.from(0).to(1) }
+
+ specify do
+ expect { join_source }.to change { Event.count }.from(0).to(1)
+ end
end
+ end
- describe '#expired_leave_project' do
- subject { service.expired_leave_project(project, user) }
+ describe '#expired_leave_project' do
+ subject(:expired_leave_project) { service.expired_leave_project(project, user) }
- it { is_expected.to be_truthy }
- it { expect { subject }.to change { Event.count }.from(0).to(1) }
+ it { is_expected.to be_truthy }
+
+ specify do
+ expect { expired_leave_project }.to change { Event.count }.from(0).to(1)
end
end
diff --git a/spec/services/git/base_hooks_service_spec.rb b/spec/services/git/base_hooks_service_spec.rb
index e083c8d7316..2a041d9b3e2 100644
--- a/spec/services/git/base_hooks_service_spec.rb
+++ b/spec/services/git/base_hooks_service_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Git::BaseHooksService, feature_category: :source_code_management
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository) }
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
let(:newrev) { "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b" } # gitlab-test: git rev-parse refs/tags/v1.1.0
let(:ref) { 'refs/tags/v1.1.0' }
let(:checkout_sha) { '5937ac0a7beb003549fc5fd26fc247adbce4a52e' }
diff --git a/spec/services/git/branch_hooks_service_spec.rb b/spec/services/git/branch_hooks_service_spec.rb
index 8fd542542ae..39a5f28060c 100644
--- a/spec/services/git/branch_hooks_service_spec.rb
+++ b/spec/services/git/branch_hooks_service_spec.rb
@@ -160,7 +160,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
end
context "with a new default branch" do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'generates a push event with more than one commit' do
execute_service
@@ -178,7 +178,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
end
context "with a new non-default branch" do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
let(:branch) { 'fix' }
let(:commit_id) { project.commit(branch).id }
@@ -198,7 +198,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
end
context 'removing a branch' do
- let(:newrev) { Gitlab::Git::BLANK_SHA }
+ let(:newrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'generates a push event with no commits' do
execute_service
@@ -222,7 +222,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
)
end
- let(:blank_sha) { Gitlab::Git::BLANK_SHA }
+ let(:blank_sha) { Gitlab::Git::SHA1_BLANK_SHA }
def clears_cache(extended: [])
expect(service).to receive(:invalidated_file_types).and_return(extended)
@@ -361,7 +361,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
end
context 'creating the default branch' do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'processes a limited number of commit messages' do
expect(project.repository)
@@ -414,7 +414,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
end
context 'removing the default branch' do
- let(:newrev) { Gitlab::Git::BLANK_SHA }
+ let(:newrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'does not process commit messages' do
expect(project.repository).not_to receive(:commits)
@@ -429,7 +429,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
context 'creating a normal branch' do
let(:branch) { 'fix' }
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'processes a limited number of commit messages' do
expect(project.repository)
@@ -463,7 +463,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
context 'removing a normal branch' do
let(:branch) { 'fix' }
- let(:newrev) { Gitlab::Git::BLANK_SHA }
+ let(:newrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'does not process commit messages' do
expect(project.repository).not_to receive(:commits)
@@ -530,7 +530,7 @@ RSpec.describe Git::BranchHooksService, :clean_gitlab_redis_shared_state, featur
let(:branch) { 'fix' }
context 'oldrev is the blank SHA' do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
it 'is treated as a new branch' do
expect(service).to receive(:branch_create_hooks)
diff --git a/spec/services/git/branch_push_service_spec.rb b/spec/services/git/branch_push_service_spec.rb
index db4f3ace64b..bb5fe1b7b11 100644
--- a/spec/services/git/branch_push_service_spec.rb
+++ b/spec/services/git/branch_push_service_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Git::BranchPushService, :use_clean_rails_redis_caching, services:
let_it_be(:user) { create(:user) }
let_it_be_with_refind(:project) { create(:project, :repository) }
- let(:blankrev) { Gitlab::Git::BLANK_SHA }
+ let(:blankrev) { Gitlab::Git::SHA1_BLANK_SHA }
let(:oldrev) { sample_commit.parent_id }
let(:newrev) { sample_commit.id }
let(:branch) { 'master' }
diff --git a/spec/services/git/process_ref_changes_service_spec.rb b/spec/services/git/process_ref_changes_service_spec.rb
index 93d65b0b344..c117988f0a1 100644
--- a/spec/services/git/process_ref_changes_service_spec.rb
+++ b/spec/services/git/process_ref_changes_service_spec.rb
@@ -21,9 +21,9 @@ RSpec.describe Git::ProcessRefChangesService, feature_category: :source_code_man
let(:changes) do
[
- { index: 0, oldrev: Gitlab::Git::BLANK_SHA, newrev: '789012', ref: "#{ref_prefix}/create" },
+ { index: 0, oldrev: Gitlab::Git::SHA1_BLANK_SHA, newrev: '789012', ref: "#{ref_prefix}/create" },
{ index: 1, oldrev: '123456', newrev: '789012', ref: "#{ref_prefix}/update" },
- { index: 2, oldrev: '123456', newrev: Gitlab::Git::BLANK_SHA, ref: "#{ref_prefix}/delete" }
+ { index: 2, oldrev: '123456', newrev: Gitlab::Git::SHA1_BLANK_SHA, ref: "#{ref_prefix}/delete" }
]
end
@@ -71,9 +71,9 @@ RSpec.describe Git::ProcessRefChangesService, feature_category: :source_code_man
let(:changes) do
[
- { oldrev: Gitlab::Git::BLANK_SHA, newrev: '789012', ref: "#{ref_prefix}/create" },
+ { oldrev: Gitlab::Git::SHA1_BLANK_SHA, newrev: '789012', ref: "#{ref_prefix}/create" },
{ oldrev: '123456', newrev: '789012', ref: "#{ref_prefix}/update" },
- { oldrev: '123456', newrev: Gitlab::Git::BLANK_SHA, ref: "#{ref_prefix}/delete" }
+ { oldrev: '123456', newrev: Gitlab::Git::SHA1_BLANK_SHA, ref: "#{ref_prefix}/delete" }
].map do |change|
multiple_changes(change, push_event_activities_limit + 1)
end.flatten
@@ -216,19 +216,19 @@ RSpec.describe Git::ProcessRefChangesService, feature_category: :source_code_man
context 'when there are merge requests associated with branches' do
let(:tag_changes) do
[
- { index: 0, oldrev: Gitlab::Git::BLANK_SHA, newrev: '789012', ref: "refs/tags/v10.0.0" }
+ { index: 0, oldrev: Gitlab::Git::SHA1_BLANK_SHA, newrev: '789012', ref: "refs/tags/v10.0.0" }
]
end
let(:branch_changes) do
[
- { index: 0, oldrev: Gitlab::Git::BLANK_SHA, newrev: '789012', ref: "#{ref_prefix}/create1" },
- { index: 1, oldrev: Gitlab::Git::BLANK_SHA, newrev: '789013', ref: "#{ref_prefix}/create2" },
- { index: 2, oldrev: Gitlab::Git::BLANK_SHA, newrev: '789014', ref: "#{ref_prefix}/create3" },
+ { index: 0, oldrev: Gitlab::Git::SHA1_BLANK_SHA, newrev: '789012', ref: "#{ref_prefix}/create1" },
+ { index: 1, oldrev: Gitlab::Git::SHA1_BLANK_SHA, newrev: '789013', ref: "#{ref_prefix}/create2" },
+ { index: 2, oldrev: Gitlab::Git::SHA1_BLANK_SHA, newrev: '789014', ref: "#{ref_prefix}/create3" },
{ index: 3, oldrev: '789015', newrev: '789016', ref: "#{ref_prefix}/changed1" },
{ index: 4, oldrev: '789017', newrev: '789018', ref: "#{ref_prefix}/changed2" },
- { index: 5, oldrev: '789019', newrev: Gitlab::Git::BLANK_SHA, ref: "#{ref_prefix}/removed1" },
- { index: 6, oldrev: '789020', newrev: Gitlab::Git::BLANK_SHA, ref: "#{ref_prefix}/removed2" }
+ { index: 5, oldrev: '789019', newrev: Gitlab::Git::SHA1_BLANK_SHA, ref: "#{ref_prefix}/removed1" },
+ { index: 6, oldrev: '789020', newrev: Gitlab::Git::SHA1_BLANK_SHA, ref: "#{ref_prefix}/removed2" }
]
end
@@ -246,7 +246,7 @@ RSpec.describe Git::ProcessRefChangesService, feature_category: :source_code_man
expect(UpdateMergeRequestsWorker).to receive(:perform_async).with(
project.id,
user.id,
- Gitlab::Git::BLANK_SHA,
+ Gitlab::Git::SHA1_BLANK_SHA,
'789012',
"#{ref_prefix}/create1",
{ 'push_options' => nil }).ordered
@@ -254,7 +254,7 @@ RSpec.describe Git::ProcessRefChangesService, feature_category: :source_code_man
expect(UpdateMergeRequestsWorker).to receive(:perform_async).with(
project.id,
user.id,
- Gitlab::Git::BLANK_SHA,
+ Gitlab::Git::SHA1_BLANK_SHA,
'789013',
"#{ref_prefix}/create2",
{ 'push_options' => nil }).ordered
@@ -271,7 +271,7 @@ RSpec.describe Git::ProcessRefChangesService, feature_category: :source_code_man
project.id,
user.id,
'789020',
- Gitlab::Git::BLANK_SHA,
+ Gitlab::Git::SHA1_BLANK_SHA,
"#{ref_prefix}/removed2",
{ 'push_options' => nil }).ordered
diff --git a/spec/services/git/tag_hooks_service_spec.rb b/spec/services/git/tag_hooks_service_spec.rb
index 3e06443126b..afa8a4e72d3 100644
--- a/spec/services/git/tag_hooks_service_spec.rb
+++ b/spec/services/git/tag_hooks_service_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe Git::TagHooksService, :service, feature_category: :source_code_ma
let(:user) { create(:user) }
let(:project) { create(:project, :repository) }
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
let(:newrev) { "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b" } # gitlab-test: git rev-parse refs/tags/v1.1.0
let(:ref) { "refs/tags/#{tag_name}" }
let(:tag_name) { 'v1.1.0' }
diff --git a/spec/services/git/tag_push_service_spec.rb b/spec/services/git/tag_push_service_spec.rb
index 0d40c331d11..ba0f94d6fe6 100644
--- a/spec/services/git/tag_push_service_spec.rb
+++ b/spec/services/git/tag_push_service_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe Git::TagPushService, feature_category: :source_code_management do
let(:project) { create(:project, :repository) }
let(:service) { described_class.new(project, user, change: { oldrev: oldrev, newrev: newrev, ref: ref }) }
- let(:blankrev) { Gitlab::Git::BLANK_SHA }
+ let(:blankrev) { Gitlab::Git::SHA1_BLANK_SHA }
let(:oldrev) { blankrev }
let(:newrev) { "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b" } # gitlab-test: git rev-parse refs/tags/v1.1.0
let(:tag) { 'v1.1.0' }
diff --git a/spec/services/git/wiki_push_service_spec.rb b/spec/services/git/wiki_push_service_spec.rb
index b076b2d51ef..e584b0db63f 100644
--- a/spec/services/git/wiki_push_service_spec.rb
+++ b/spec/services/git/wiki_push_service_spec.rb
@@ -347,7 +347,7 @@ RSpec.describe Git::WikiPushService, services: true, feature_category: :wiki do
end
def current_sha
- repository.commit('master')&.id || Gitlab::Git::BLANK_SHA
+ repository.commit('master')&.id || Gitlab::Git::SHA1_BLANK_SHA
end
# It is important not to re-use the WikiPage services here, since they create
diff --git a/spec/services/integrations/google_cloud_platform/artifact_registry/list_docker_images_service_spec.rb b/spec/services/google_cloud_platform/artifact_registry/list_docker_images_service_spec.rb
index 3f57add10e3..f19cbaa21cd 100644
--- a/spec/services/integrations/google_cloud_platform/artifact_registry/list_docker_images_service_spec.rb
+++ b/spec/services/google_cloud_platform/artifact_registry/list_docker_images_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ::Integrations::GoogleCloudPlatform::ArtifactRegistry::ListDockerImagesService, feature_category: :container_registry do
+RSpec.describe GoogleCloudPlatform::ArtifactRegistry::ListDockerImagesService, feature_category: :container_registry do
let_it_be(:project) { create(:project, :private) }
let(:user) { project.owner }
diff --git a/spec/services/groups/create_service_spec.rb b/spec/services/groups/create_service_spec.rb
index b2b27a1a075..8ce69d12b3f 100644
--- a/spec/services/groups/create_service_spec.rb
+++ b/spec/services/groups/create_service_spec.rb
@@ -3,45 +3,58 @@
require 'spec_helper'
RSpec.describe Groups::CreateService, '#execute', feature_category: :groups_and_projects do
- let!(:user) { create(:user) }
- let!(:group_params) { { path: "group_path", visibility_level: Gitlab::VisibilityLevel::PUBLIC } }
+ let_it_be(:user, reload: true) { create(:user) }
+ let(:current_user) { user }
+ let(:group_params) { { path: 'group_path', visibility_level: Gitlab::VisibilityLevel::PUBLIC }.merge(extra_params) }
+ let(:extra_params) { {} }
+ let(:created_group) { response }
- subject { service.execute }
+ subject(:response) { described_class.new(current_user, group_params).execute }
shared_examples 'has sync-ed traversal_ids' do
- specify { expect(subject.reload.traversal_ids).to eq([subject.parent&.traversal_ids, subject.id].flatten.compact) }
+ specify do
+ expect(created_group.traversal_ids).to eq([created_group.parent&.traversal_ids, created_group.id].flatten.compact)
+ end
+ end
+
+ shared_examples 'creating a group' do
+ specify do
+ expect { response }.to change { Group.count }
+ expect(created_group).to be_persisted
+ end
end
- describe 'visibility level restrictions' do
- let!(:service) { described_class.new(user, group_params) }
+ shared_examples 'does not create a group' do
+ specify do
+ expect { response }.not_to change { Group.count }
+ expect(created_group).not_to be_persisted
+ end
+ end
- context "create groups without restricted visibility level" do
- it { is_expected.to be_persisted }
+ context 'for visibility level restrictions' do
+ context 'without restricted visibility level' do
+ it_behaves_like 'creating a group'
end
- context "cannot create group with restricted visibility level" do
+ context 'with restricted visibility level' do
before do
- allow_any_instance_of(ApplicationSetting).to receive(:restricted_visibility_levels).and_return([Gitlab::VisibilityLevel::PUBLIC])
+ stub_application_setting(restricted_visibility_levels: [Gitlab::VisibilityLevel::PUBLIC])
end
- it { is_expected.not_to be_persisted }
+ it_behaves_like 'does not create a group'
end
end
- context 'when `setup_for_company:true` is passed' do
- let(:params) { group_params.merge(setup_for_company: true) }
- let(:service) { described_class.new(user, params) }
- let(:created_group) { service.execute }
+ context 'with `setup_for_company` attribute' do
+ let(:extra_params) { { setup_for_company: true } }
- it 'creates group with the specified setup_for_company' do
+ it 'has the specified setup_for_company' do
expect(created_group.setup_for_company).to eq(true)
end
end
- context 'creating a group with `default_branch_protection` attribute' do
- let(:params) { group_params.merge(default_branch_protection: Gitlab::Access::PROTECTION_NONE) }
- let(:service) { described_class.new(user, params) }
- let(:created_group) { service.execute }
+ context 'with `default_branch_protection` attribute' do
+ let(:extra_params) { { default_branch_protection: Gitlab::Access::PROTECTION_NONE } }
context 'for users who have the ability to create a group with `default_branch_protection`' do
it 'creates group with the specified branch protection level' do
@@ -52,23 +65,22 @@ RSpec.describe Groups::CreateService, '#execute', feature_category: :groups_and_
context 'for users who do not have the ability to create a group with `default_branch_protection`' do
it 'does not create the group with the specified branch protection level' do
allow(Ability).to receive(:allowed?).and_call_original
- allow(Ability).to receive(:allowed?).with(user, :create_group_with_default_branch_protection) { false }
+ allow(Ability).to receive(:allowed?).with(user, :create_group_with_default_branch_protection).and_return(false)
expect(created_group.default_branch_protection).not_to eq(Gitlab::Access::PROTECTION_NONE)
end
end
end
- context 'creating a group with `default_branch_protection_defaults` attribute' do
+ context 'with `default_branch_protection_defaults` attribute' do
let(:branch_protection) { ::Gitlab::Access::BranchProtection.protected_against_developer_pushes.stringify_keys }
- let(:params) { group_params.merge(default_branch_protection_defaults: branch_protection) }
- let(:service) { described_class.new(user, params) }
- let(:created_group) { service.execute }
+ let(:extra_params) { { default_branch_protection_defaults: branch_protection } }
context 'for users who have the ability to create a group with `default_branch_protection`' do
before do
allow(Ability).to receive(:allowed?).and_call_original
- allow(Ability).to receive(:allowed?).with(user, :update_default_branch_protection, an_instance_of(Group)).and_return(true)
+ allow(Ability)
+ .to receive(:allowed?).with(user, :update_default_branch_protection, an_instance_of(Group)).and_return(true)
end
it 'creates group with the specified default branch protection settings' do
@@ -79,31 +91,26 @@ RSpec.describe Groups::CreateService, '#execute', feature_category: :groups_and_
context 'for users who do not have the ability to create a group with `default_branch_protection_defaults`' do
it 'does not create the group with the specified default branch protection settings' do
allow(Ability).to receive(:allowed?).and_call_original
- allow(Ability).to receive(:allowed?).with(user, :create_group_with_default_branch_protection) { false }
+ allow(Ability).to receive(:allowed?).with(user, :create_group_with_default_branch_protection).and_return(false)
expect(created_group.default_branch_protection_defaults).not_to eq(Gitlab::Access::PROTECTION_NONE)
end
end
end
- context 'creating a group with `allow_mfa_for_subgroups` attribute' do
- let(:params) { group_params.merge(allow_mfa_for_subgroups: false) }
- let(:service) { described_class.new(user, params) }
+ context 'with `allow_mfa_for_subgroups` attribute' do
+ let(:extra_params) { { allow_mfa_for_subgroups: false } }
- it 'creates group without error' do
- expect(service.execute).to be_persisted
- end
+ it_behaves_like 'creating a group'
end
- describe 'creating a top level group' do
- let(:service) { described_class.new(user, group_params) }
-
+ context 'for a top level group' do
context 'when user can create a group' do
before do
user.update_attribute(:can_create_group, true)
end
- it { is_expected.to be_persisted }
+ it_behaves_like 'creating a group'
context 'with before_commit callback' do
it_behaves_like 'has sync-ed traversal_ids'
@@ -115,144 +122,167 @@ RSpec.describe Groups::CreateService, '#execute', feature_category: :groups_and_
user.update_attribute(:can_create_group, false)
end
- it { is_expected.not_to be_persisted }
+ it_behaves_like 'does not create a group'
end
end
- describe 'creating subgroup' do
- let!(:group) { create(:group) }
- let!(:service) { described_class.new(user, group_params.merge(parent_id: group.id)) }
+ context 'when creating a group within an organization' do
+ context 'when organization is provided' do
+ let_it_be(:organization) { create(:organization) }
+ let(:extra_params) { { organization_id: organization.id } }
- context 'as group owner' do
+ context 'when user can create the group' do
+ before do
+ create(:organization_user, user: user, organization: organization)
+ end
+
+ it_behaves_like 'creating a group'
+ end
+
+ context 'when user is an admin', :enable_admin_mode do
+ let(:current_user) { create(:admin) }
+
+ it_behaves_like 'creating a group'
+ end
+
+ context 'when user can not create the group' do
+ it_behaves_like 'does not create a group'
+
+ it 'returns an error and does not set organization_id' do
+ expect(created_group.errors[:organization_id].first)
+ .to eq(s_("CreateGroup|You don't have permission to create a group in the provided organization."))
+ expect(created_group.organization_id).to be_nil
+ end
+ end
+ end
+
+ context 'when organization is the default organization and not set by params' do
before do
- group.add_owner(user)
+ create(:organization, :default)
end
- it { is_expected.to be_persisted }
+ it_behaves_like 'creating a group'
+ end
+ end
+
+ context 'for a subgroup' do
+ let_it_be(:group) { create(:group) }
+ let(:extra_params) { { parent_id: group.id } }
+
+ context 'as group owner' do
+ before_all do
+ group.add_owner(user)
+ end
+ it_behaves_like 'creating a group'
it_behaves_like 'has sync-ed traversal_ids'
end
context 'as guest' do
- it 'does not save group and returns an error' do
- is_expected.not_to be_persisted
+ it_behaves_like 'does not create a group'
- expect(subject.errors[:parent_id].first).to eq(s_('CreateGroup|You don’t have permission to create a subgroup in this group.'))
- expect(subject.parent_id).to be_nil
+ it 'returns an error and does not set parent_id' do
+ expect(created_group.errors[:parent_id].first)
+ .to eq(s_('CreateGroup|You don’t have permission to create a subgroup in this group.'))
+ expect(created_group.parent_id).to be_nil
end
end
context 'as owner' do
- before do
+ before_all do
group.add_owner(user)
end
- it { is_expected.to be_persisted }
+ it_behaves_like 'creating a group'
end
context 'as maintainer' do
- before do
+ before_all do
group.add_maintainer(user)
end
- it { is_expected.to be_persisted }
+ it_behaves_like 'creating a group'
end
end
- describe "when visibility level is passed as a string" do
- let(:service) { described_class.new(user, group_params) }
- let(:group_params) { { path: 'group_path', visibility: 'public' } }
-
- it "assigns the correct visibility level" do
- group = service.execute
+ context 'when visibility level is passed as a string' do
+ let(:extra_params) { { visibility: 'public' } }
- expect(group.visibility_level).to eq(Gitlab::VisibilityLevel::PUBLIC)
+ it 'assigns the correct visibility level' do
+ expect(created_group.visibility_level).to eq(Gitlab::VisibilityLevel::PUBLIC)
end
end
- describe 'creating a mattermost team' do
- let!(:params) { group_params.merge(create_chat_team: "true") }
- let!(:service) { described_class.new(user, params) }
+ context 'for creating a mattermost team' do
+ let(:extra_params) { { create_chat_team: 'true' } }
before do
stub_mattermost_setting(enabled: true)
end
it 'create the chat team with the group' do
- allow_any_instance_of(::Mattermost::Team).to receive(:create)
- .and_return({ 'name' => 'tanuki', 'id' => 'lskdjfwlekfjsdifjj' })
+ allow_next_instance_of(::Mattermost::Team) do |instance|
+ allow(instance).to receive(:create).and_return({ 'name' => 'tanuki', 'id' => 'lskdjfwlekfjsdifjj' })
+ end
- expect { subject }.to change { ChatTeam.count }.from(0).to(1)
+ expect { response }.to change { ChatTeam.count }.from(0).to(1)
end
end
- describe 'creating a setting record' do
- let(:service) { described_class.new(user, group_params) }
-
+ context 'for creating a setting record' do
it 'create the settings record connected to the group' do
- group = subject
- expect(group.namespace_settings).to be_persisted
+ expect(created_group.namespace_settings).to be_persisted
end
end
- describe 'creating a details record' do
- let(:service) { described_class.new(user, group_params) }
-
+ context 'for creating a details record' do
it 'create the details record connected to the group' do
- group = subject
- expect(group.namespace_details).to be_persisted
+ expect(created_group.namespace_details).to be_persisted
end
end
- describe 'create service for the group' do
- let(:service) { described_class.new(user, group_params) }
- let(:created_group) { service.execute }
+ context 'with an active instance-level integration' do
+ let_it_be(:instance_integration) do
+ create(:prometheus_integration, :instance, api_url: 'https://prometheus.instance.com/')
+ end
+
+ it 'creates a service from the instance-level integration' do
+ expect(created_group.integrations.count).to eq(1)
+ expect(created_group.integrations.first.api_url).to eq(instance_integration.api_url)
+ expect(created_group.integrations.first.inherit_from_id).to eq(instance_integration.id)
+ end
- context 'with an active instance-level integration' do
- let!(:instance_integration) { create(:prometheus_integration, :instance, api_url: 'https://prometheus.instance.com/') }
+ context 'with an active group-level integration' do
+ let(:extra_params) { { parent_id: group.id } }
+ let_it_be(:group) { create(:group) { |g| g.add_owner(user) } }
+ let_it_be(:group_integration) do
+ create(:prometheus_integration, :group, group: group, api_url: 'https://prometheus.group.com/')
+ end
- it 'creates a service from the instance-level integration' do
+ it 'creates a service from the group-level integration' do
expect(created_group.integrations.count).to eq(1)
- expect(created_group.integrations.first.api_url).to eq(instance_integration.api_url)
- expect(created_group.integrations.first.inherit_from_id).to eq(instance_integration.id)
+ expect(created_group.integrations.first.api_url).to eq(group_integration.api_url)
+ expect(created_group.integrations.first.inherit_from_id).to eq(group_integration.id)
end
- context 'with an active group-level integration' do
- let(:service) { described_class.new(user, group_params.merge(parent_id: group.id)) }
- let!(:group_integration) { create(:prometheus_integration, :group, group: group, api_url: 'https://prometheus.group.com/') }
- let(:group) do
- create(:group).tap do |group|
- group.add_owner(user)
- end
+ context 'with an active subgroup' do
+ let(:extra_params) { { parent_id: subgroup.id } }
+ let_it_be(:subgroup) { create(:group, parent: group) { |g| g.add_owner(user) } }
+ let_it_be(:subgroup_integration) do
+ create(:prometheus_integration, :group, group: subgroup, api_url: 'https://prometheus.subgroup.com/')
end
- it 'creates a service from the group-level integration' do
+ it 'creates a service from the subgroup-level integration' do
expect(created_group.integrations.count).to eq(1)
- expect(created_group.integrations.first.api_url).to eq(group_integration.api_url)
- expect(created_group.integrations.first.inherit_from_id).to eq(group_integration.id)
- end
-
- context 'with an active subgroup' do
- let(:service) { described_class.new(user, group_params.merge(parent_id: subgroup.id)) }
- let!(:subgroup_integration) { create(:prometheus_integration, :group, group: subgroup, api_url: 'https://prometheus.subgroup.com/') }
- let(:subgroup) do
- create(:group, parent: group).tap do |subgroup|
- subgroup.add_owner(user)
- end
- end
-
- it 'creates a service from the subgroup-level integration' do
- expect(created_group.integrations.count).to eq(1)
- expect(created_group.integrations.first.api_url).to eq(subgroup_integration.api_url)
- expect(created_group.integrations.first.inherit_from_id).to eq(subgroup_integration.id)
- end
+ expect(created_group.integrations.first.api_url).to eq(subgroup_integration.api_url)
+ expect(created_group.integrations.first.inherit_from_id).to eq(subgroup_integration.id)
end
end
end
end
- context 'shared runners configuration' do
- context 'parent group present' do
+ context 'with shared runners configuration' do
+ context 'when parent group is present' do
using RSpec::Parameterized::TableSyntax
where(:shared_runners_config, :descendants_override_disabled_shared_runners_config) do
@@ -263,30 +293,31 @@ RSpec.describe Groups::CreateService, '#execute', feature_category: :groups_and_
end
with_them do
- let!(:group) { create(:group, shared_runners_enabled: shared_runners_config, allow_descendants_override_disabled_shared_runners: descendants_override_disabled_shared_runners_config) }
- let!(:service) { described_class.new(user, group_params.merge(parent_id: group.id)) }
+ let(:extra_params) { { parent_id: group.id } }
+ let(:group) do
+ create(
+ :group,
+ shared_runners_enabled: shared_runners_config,
+ allow_descendants_override_disabled_shared_runners: descendants_override_disabled_shared_runners_config
+ )
+ end
before do
group.add_owner(user)
end
it 'creates group following the parent config' do
- new_group = service.execute
-
- expect(new_group.shared_runners_enabled).to eq(shared_runners_config)
- expect(new_group.allow_descendants_override_disabled_shared_runners).to eq(descendants_override_disabled_shared_runners_config)
+ expect(created_group.shared_runners_enabled).to eq(shared_runners_config)
+ expect(created_group.allow_descendants_override_disabled_shared_runners)
+ .to eq(descendants_override_disabled_shared_runners_config)
end
end
end
- context 'root group' do
- let!(:service) { described_class.new(user) }
-
+ context 'for root group' do
it 'follows default config' do
- new_group = service.execute
-
- expect(new_group.shared_runners_enabled).to eq(true)
- expect(new_group.allow_descendants_override_disabled_shared_runners).to eq(false)
+ expect(created_group.shared_runners_enabled).to eq(true)
+ expect(created_group.allow_descendants_override_disabled_shared_runners).to eq(false)
end
end
end
diff --git a/spec/services/groups/participants_service_spec.rb b/spec/services/groups/participants_service_spec.rb
index e934921317d..beab7311b93 100644
--- a/spec/services/groups/participants_service_spec.rb
+++ b/spec/services/groups/participants_service_spec.rb
@@ -10,7 +10,8 @@ RSpec.describe Groups::ParticipantsService, feature_category: :groups_and_projec
let_it_be(:subgroup) { create(:group, parent: group) }
let_it_be(:subproject) { create(:project, group: subgroup) }
- let(:service) { described_class.new(group, developer) }
+ let(:params) { {} }
+ let(:service) { described_class.new(group, developer, params) }
subject(:service_result) { service.execute(nil) }
@@ -74,6 +75,19 @@ RSpec.describe Groups::ParticipantsService, feature_category: :groups_and_projec
it { is_expected.to include(private_group_member.username) }
end
+
+ context 'when search param is given' do
+ let(:params) { { search: 'johnd' } }
+
+ let_it_be(:member_1) { create(:user, name: 'John Doe').tap { |u| group.add_guest(u) } }
+ let_it_be(:member_2) { create(:user, name: 'Jane Doe ').tap { |u| group.add_guest(u) } }
+
+ it 'only returns matching members' do
+ users = service_result.select { |hash| hash[:type].eql?('User') }
+
+ expect(users.pluck(:username)).to eq([member_1.username])
+ end
+ end
end
def user_to_autocompletable(user)
diff --git a/spec/services/groups/update_service_spec.rb b/spec/services/groups/update_service_spec.rb
index 78deb3cf254..f50163041f8 100644
--- a/spec/services/groups/update_service_spec.rb
+++ b/spec/services/groups/update_service_spec.rb
@@ -444,6 +444,60 @@ RSpec.describe Groups::UpdateService, feature_category: :groups_and_projects do
end
end
+ context 'when setting enable_namespace_descendants_cache' do
+ let(:params) { { enable_namespace_descendants_cache: true } }
+
+ subject(:result) { described_class.new(public_group, user, params).execute }
+
+ context 'when the group_hierarchy_optimization feature flag is enabled' do
+ before do
+ stub_feature_flags(group_hierarchy_optimization: true)
+ end
+
+ context 'when enabling the setting' do
+ it 'creates the initial Namespaces::Descendants record' do
+ expect { result }.to change { public_group.reload.namespace_descendants.present? }.from(false).to(true)
+ end
+ end
+
+ context 'when accidentally enabling the setting again' do
+ it 'does nothing' do
+ namespace_descendants = create(:namespace_descendants, namespace: public_group)
+
+ expect { result }.not_to change { namespace_descendants.reload }
+ end
+ end
+
+ context 'when disabling the setting' do
+ before do
+ params[:enable_namespace_descendants_cache] = false
+ end
+
+ it 'removes the Namespaces::Descendants record' do
+ create(:namespace_descendants, namespace: public_group)
+
+ expect { result }.to change { public_group.reload.namespace_descendants }.to(nil)
+ end
+
+ context 'when the Namespaces::Descendants record is missing' do
+ it 'does not raise error' do
+ expect { result }.not_to raise_error
+ end
+ end
+ end
+ end
+
+ context 'when the group_hierarchy_optimization feature flag is disabled' do
+ before do
+ stub_feature_flags(group_hierarchy_optimization: false)
+ end
+
+ it 'does nothing' do
+ expect { result }.not_to change { public_group.reload.namespace_descendants.present? }.from(false)
+ end
+ end
+ end
+
context 'EventStore' do
let(:service) { described_class.new(group, user, **params) }
let(:root_group) { create(:group, path: 'root') }
diff --git a/spec/services/import/github_service_spec.rb b/spec/services/import/github_service_spec.rb
index fc649b61426..6fe17a31f3e 100644
--- a/spec/services/import/github_service_spec.rb
+++ b/spec/services/import/github_service_spec.rb
@@ -21,16 +21,24 @@ RSpec.describe Import::GithubService, feature_category: :importers do
}
end
+ let(:headers) do
+ {
+ 'x-oauth-scopes' => 'read:org'
+ }
+ end
+
let(:client) { Gitlab::GithubImport::Client.new(token) }
let(:project_double) { instance_double(Project, persisted?: true) }
subject(:github_importer) { described_class.new(client, user, params) }
before do
+ allow(client).to receive_message_chain(:octokit, :last_response, :headers).and_return(headers)
allow(Gitlab::GithubImport::Settings).to receive(:new).with(project_double).and_return(settings)
allow(settings)
.to receive(:write)
.with(
+ extended_events: true,
optional_stages: optional_stages,
timeout_strategy: timeout_strategy
)
@@ -92,6 +100,7 @@ RSpec.describe Import::GithubService, feature_category: :importers do
expect(settings)
.to have_received(:write)
.with(optional_stages: nil,
+ extended_events: true,
timeout_strategy: timeout_strategy
)
expect_snowplow_event(
@@ -117,6 +126,7 @@ RSpec.describe Import::GithubService, feature_category: :importers do
.to have_received(:write)
.with(
optional_stages: nil,
+ extended_events: true,
timeout_strategy: timeout_strategy
)
expect_snowplow_event(
@@ -149,6 +159,7 @@ RSpec.describe Import::GithubService, feature_category: :importers do
.to have_received(:write)
.with(
optional_stages: nil,
+ extended_events: true,
timeout_strategy: timeout_strategy
)
expect_snowplow_event(
@@ -185,11 +196,30 @@ RSpec.describe Import::GithubService, feature_category: :importers do
.to have_received(:write)
.with(
optional_stages: optional_stages,
+ extended_events: true,
timeout_strategy: timeout_strategy
)
end
end
+ context 'validates scopes when collaborator import is true' do
+ let(:optional_stages) do
+ {
+ collaborators_import: true
+ }
+ end
+
+ let(:headers) do
+ {
+ 'x-oauth-scopes' => 'read:user'
+ }
+ end
+
+ it 'returns error when scope is not adequate' do
+ expect(subject.execute(access_params, :github)).to include(scope_error)
+ end
+ end
+
context 'when timeout strategy param is present' do
let(:timeout_strategy) { 'pessimistic' }
@@ -200,6 +230,7 @@ RSpec.describe Import::GithubService, feature_category: :importers do
.to have_received(:write)
.with(
optional_stages: optional_stages,
+ extended_events: true,
timeout_strategy: timeout_strategy
)
end
@@ -213,10 +244,25 @@ RSpec.describe Import::GithubService, feature_category: :importers do
.to have_received(:write)
.with(
optional_stages: optional_stages,
+ extended_events: true,
timeout_strategy: timeout_strategy
)
end
end
+
+ context 'when `github_import_extended_events`` feature flag is disabled' do
+ before do
+ stub_feature_flags(github_import_extended_events: false)
+ end
+
+ it 'saves extend_events to import_data' do
+ expect(settings)
+ .to receive(:write)
+ .with(a_hash_including(extended_events: false))
+
+ subject.execute(access_params, :github)
+ end
+ end
end
context 'when import source is disabled' do
@@ -309,6 +355,14 @@ RSpec.describe Import::GithubService, feature_category: :importers do
}
end
+ def scope_error
+ {
+ status: :error,
+ http_status: :unprocessable_entity,
+ message: 'Your GitHub access token does not have the correct scope to import collaborators.'
+ }
+ end
+
def blocked_url_error(url)
{
status: :error,
diff --git a/spec/services/issuable/common_system_notes_service_spec.rb b/spec/services/issuable/common_system_notes_service_spec.rb
index 3d83c9ec9c2..4ea7bb89d61 100644
--- a/spec/services/issuable/common_system_notes_service_spec.rb
+++ b/spec/services/issuable/common_system_notes_service_spec.rb
@@ -43,7 +43,7 @@ RSpec.describe Issuable::CommonSystemNotesService, feature_category: :team_plann
it_behaves_like 'system note creation', { title: 'New title' }, 'changed title'
it_behaves_like 'system note creation', { description: 'New description' }, 'changed the description'
it_behaves_like 'system note creation', { discussion_locked: true }, 'locked the discussion in this issue'
- it_behaves_like 'system note creation', { time_estimate: 5 }, 'changed time estimate'
+ it_behaves_like 'system note creation', { time_estimate: 5 }, 'added time estimate of 5s'
context 'when new label is added' do
let(:label) { create(:label, project: project) }
@@ -142,5 +142,9 @@ RSpec.describe Issuable::CommonSystemNotesService, feature_category: :team_plann
context 'when changing dates' do
it_behaves_like 'system note for issuable date changes'
end
+
+ context 'when setting an estimae' do
+ it_behaves_like 'system note creation', { time_estimate: 5 }, 'added time estimate of 5s', false
+ end
end
end
diff --git a/spec/services/issue_email_participants/create_service_spec.rb b/spec/services/issue_email_participants/create_service_spec.rb
index fcfdeeb08f3..dc8d5a6ea74 100644
--- a/spec/services/issue_email_participants/create_service_spec.rb
+++ b/spec/services/issue_email_participants/create_service_spec.rb
@@ -41,8 +41,8 @@ RSpec.describe IssueEmailParticipants::CreateService, feature_category: :service
let(:expected_emails) { emails }
let(:error_feature_flag) { "Feature flag issue_email_participants is not enabled for this project." }
- let(:error_underprivileged) { _("You don't have permission to add email participants.") }
- let(:error_no_participants) do
+ let(:error_underprivileged) { _("You don't have permission to manage email participants.") }
+ let(:error_no_participants_added) do
_("No email participants were added. Either none were provided, or they already exist.")
end
@@ -58,7 +58,7 @@ RSpec.describe IssueEmailParticipants::CreateService, feature_category: :service
end
context 'when no emails are provided' do
- let(:error_message) { error_no_participants }
+ let(:error_message) { error_no_participants_added }
it_behaves_like 'a failed service execution'
end
@@ -69,7 +69,7 @@ RSpec.describe IssueEmailParticipants::CreateService, feature_category: :service
it_behaves_like 'a successful service execution'
context 'when email is already a participant of the issue' do
- let(:error_message) { error_no_participants }
+ let(:error_message) { error_no_participants_added }
before do
issue.issue_email_participants.create!(email: emails.first)
@@ -89,7 +89,7 @@ RSpec.describe IssueEmailParticipants::CreateService, feature_category: :service
end
let(:emails) { ['over-max@example.com'] }
- let(:error_message) { error_no_participants }
+ let(:error_message) { error_no_participants_added }
it_behaves_like 'a failed service execution'
diff --git a/spec/services/issue_email_participants/destroy_service_spec.rb b/spec/services/issue_email_participants/destroy_service_spec.rb
new file mode 100644
index 00000000000..70e09bb8d3b
--- /dev/null
+++ b/spec/services/issue_email_participants/destroy_service_spec.rb
@@ -0,0 +1,147 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe IssueEmailParticipants::DestroyService, feature_category: :service_desk do
+ shared_examples 'a successful service execution' do
+ it 'removes participants', :aggregate_failures do
+ expect(response).to be_success
+
+ issue.reset
+ note = issue.notes.last
+ expect(note.system?).to be true
+ expect(note.author).to eq(user)
+
+ participants_emails = issue.email_participants_emails_downcase
+
+ expected_emails.each do |email|
+ expect(participants_emails).not_to include(email)
+ expect(response.message).to include(email)
+ expect(note.note).to include(email)
+ end
+ end
+ end
+
+ shared_examples 'a failed service execution' do
+ it 'returns error ServiceResponse with message', :aggregate_failures do
+ expect(response).to be_error
+ expect(response.message).to eq(error_message)
+ end
+ end
+
+ describe '#execute' do
+ let_it_be_with_reload(:project) { create(:project) }
+ let_it_be(:user) { create(:user) }
+ let_it_be_with_reload(:issue) { create(:issue, project: project) }
+
+ let(:emails) { nil }
+ let(:service) { described_class.new(target: issue, current_user: user, emails: emails) }
+ let(:expected_emails) { emails }
+
+ let(:error_feature_flag) { "Feature flag issue_email_participants is not enabled for this project." }
+ let(:error_underprivileged) { _("You don't have permission to manage email participants.") }
+ let(:error_no_participants_removed) do
+ _("No email participants were removed. Either none were provided, or they don't exist.")
+ end
+
+ subject(:response) { service.execute }
+
+ context 'when the user is not a project member' do
+ let(:error_message) { error_underprivileged }
+
+ it_behaves_like 'a failed service execution'
+ end
+
+ context 'when user has reporter role in project' do
+ before_all do
+ project.add_reporter(user)
+ end
+
+ context 'when no emails are provided' do
+ let(:error_message) { error_no_participants_removed }
+
+ it_behaves_like 'a failed service execution'
+ end
+
+ context 'when one email is provided' do
+ let(:emails) { ['user@example.com'] }
+ let(:error_message) { error_no_participants_removed }
+
+ it_behaves_like 'a failed service execution'
+
+ context 'when email is a participant of the issue' do
+ before do
+ issue.issue_email_participants.create!(email: 'user@example.com')
+ end
+
+ it_behaves_like 'a successful service execution'
+
+ context 'when email is formatted in a different case' do
+ let(:emails) { ['USER@example.com'] }
+ let(:expected_emails) { emails.map(&:downcase) }
+ let(:error_message) { error_no_participants_removed }
+
+ it_behaves_like 'a successful service execution'
+ end
+ end
+ end
+
+ context 'when multiple emails are provided' do
+ let(:emails) { ['user@example.com', 'user2@example.com'] }
+ let(:error_message) { error_no_participants_removed }
+
+ it_behaves_like 'a failed service execution'
+
+ context 'when duplicate email provided' do
+ let(:emails) { ['user@example.com', 'user@example.com'] }
+ let(:expected_emails) { emails[...-1] }
+
+ it_behaves_like 'a failed service execution'
+ end
+
+ context 'when one email is a participant of the issue' do
+ let(:expected_emails) { emails[...-1] }
+
+ before do
+ issue.issue_email_participants.create!(email: emails.first)
+ end
+
+ it_behaves_like 'a successful service execution'
+ end
+
+ context 'when both emails are a participant of the issue' do
+ before do
+ emails.each do |email|
+ issue.issue_email_participants.create!(email: email)
+ end
+ end
+
+ it_behaves_like 'a successful service execution'
+ end
+ end
+
+ context 'when more than the allowed number of emails are provided' do
+ let(:emails) { (1..7).map { |i| "user#{i}@example.com" } }
+ let(:expected_emails) { emails[...-1] }
+
+ before do
+ emails.each do |email|
+ issue.issue_email_participants.create!(email: email)
+ end
+ end
+
+ it_behaves_like 'a successful service execution'
+ end
+ end
+
+ context 'when feature flag issue_email_participants is disabled' do
+ let(:error_message) { error_feature_flag }
+
+ before do
+ stub_feature_flags(issue_email_participants: false)
+ end
+
+ it_behaves_like 'a failed service execution'
+ end
+ end
+end
diff --git a/spec/services/issue_links/list_service_spec.rb b/spec/services/issue_links/list_service_spec.rb
index b5cc8c4dcdc..f9e5e88aff0 100644
--- a/spec/services/issue_links/list_service_spec.rb
+++ b/spec/services/issue_links/list_service_spec.rb
@@ -33,7 +33,7 @@ RSpec.describe IssueLinks::ListService, feature_category: :team_planning do
end
it 'ensures no N+1 queries are made' do
- control_count = ActiveRecord::QueryRecorder.new { subject }.count
+ control = ActiveRecord::QueryRecorder.new { subject }
project = create :project, :public
milestone = create :milestone, project: project
@@ -44,7 +44,7 @@ RSpec.describe IssueLinks::ListService, feature_category: :team_planning do
create :issue_link, source: issue_x, target: issue_z
create :issue_link, source: issue_y, target: issue_z
- expect { subject }.not_to exceed_query_limit(control_count)
+ expect { subject }.not_to exceed_query_limit(control)
end
it 'returns related issues JSON' do
diff --git a/spec/services/issues/export_csv_service_spec.rb b/spec/services/issues/export_csv_service_spec.rb
index 83dfca923fb..016174f9888 100644
--- a/spec/services/issues/export_csv_service_spec.rb
+++ b/spec/services/issues/export_csv_service_spec.rb
@@ -175,11 +175,11 @@ RSpec.describe Issues::ExportCsvService, :with_license, feature_category: :team_
let(:labeled_issues) { create_list(:labeled_issue, 2, project: project, author: user, labels: [feature_label, idea_label]) }
it 'does not run a query for each label link' do
- control_count = ActiveRecord::QueryRecorder.new { csv }.count
+ control = ActiveRecord::QueryRecorder.new { csv }
labeled_issues
- expect { csv }.not_to exceed_query_limit(control_count)
+ expect { csv }.not_to exceed_query_limit(control)
expect(csv.count).to eq(4)
end
diff --git a/spec/services/issues/referenced_merge_requests_service_spec.rb b/spec/services/issues/referenced_merge_requests_service_spec.rb
index 4781daf7688..6748292d389 100644
--- a/spec/services/issues/referenced_merge_requests_service_spec.rb
+++ b/spec/services/issues/referenced_merge_requests_service_spec.rb
@@ -39,13 +39,13 @@ RSpec.describe Issues::ReferencedMergeRequestsService, feature_category: :team_p
context 'performance' do
it 'does not run extra queries when extra namespaces are included', :use_clean_rails_memory_store_caching do
service.execute(issue) # warm cache
- control_count = ActiveRecord::QueryRecorder.new { service.execute(issue) }.count
+ control = ActiveRecord::QueryRecorder.new { service.execute(issue) }
third_project = create(:project, :public)
create_closing_mr(source_project: third_project)
service.execute(issue) # warm cache
- expect { service.execute(issue) }.not_to exceed_query_limit(control_count)
+ expect { service.execute(issue) }.not_to exceed_query_limit(control)
end
it 'preloads the head pipeline for each merge request, and its routes' do
@@ -58,12 +58,12 @@ RSpec.describe Issues::ReferencedMergeRequestsService, feature_category: :team_p
end
closing_mr_other_project.update!(head_pipeline: create(:ci_pipeline))
- control_count = ActiveRecord::QueryRecorder.new { service.execute(reloaded_issue).each(&pipeline_routes) }
+ control = ActiveRecord::QueryRecorder.new { service.execute(reloaded_issue).each(&pipeline_routes) }
closing_mr.update!(head_pipeline: create(:ci_pipeline))
expect { service.execute(issue).each(&pipeline_routes) }
- .not_to exceed_query_limit(control_count)
+ .not_to exceed_query_limit(control)
end
it 'only loads issue notes once' do
@@ -95,12 +95,12 @@ RSpec.describe Issues::ReferencedMergeRequestsService, feature_category: :team_p
context 'performance' do
it 'does not run a query for each note author', :use_clean_rails_memory_store_caching do
service.referenced_merge_requests(issue) # warm cache
- control_count = ActiveRecord::QueryRecorder.new { service.referenced_merge_requests(issue) }.count
+ control = ActiveRecord::QueryRecorder.new { service.referenced_merge_requests(issue) }
create(:note, project: project, noteable: issue, author: create(:user))
service.referenced_merge_requests(issue) # warm cache
- expect { service.referenced_merge_requests(issue) }.not_to exceed_query_limit(control_count)
+ expect { service.referenced_merge_requests(issue) }.not_to exceed_query_limit(control)
end
end
end
@@ -121,12 +121,12 @@ RSpec.describe Issues::ReferencedMergeRequestsService, feature_category: :team_p
context 'performance' do
it 'does not run a query for each note author', :use_clean_rails_memory_store_caching do
service.closed_by_merge_requests(issue) # warm cache
- control_count = ActiveRecord::QueryRecorder.new { service.closed_by_merge_requests(issue) }.count
+ control = ActiveRecord::QueryRecorder.new { service.closed_by_merge_requests(issue) }
create(:note, :system, project: project, noteable: issue, author: create(:user))
service.closed_by_merge_requests(issue) # warm cache
- expect { service.closed_by_merge_requests(issue) }.not_to exceed_query_limit(control_count)
+ expect { service.closed_by_merge_requests(issue) }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/services/issues/update_service_spec.rb b/spec/services/issues/update_service_spec.rb
index 0cb13bfb917..e8bcdc2c44b 100644
--- a/spec/services/issues/update_service_spec.rb
+++ b/spec/services/issues/update_service_spec.rb
@@ -592,11 +592,19 @@ RSpec.describe Issues::UpdateService, :mailer, feature_category: :team_planning
update_issue(confidential: true)
end
+ it 'allows assignment of guest users' do
+ update_issue(confidential: true)
+
+ update_issue(assignee_ids: [guest.id])
+
+ expect(issue.reload.assignees).to contain_exactly(guest)
+ end
+
it 'does not update assignee_id with unauthorized users' do
- project.update!(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
update_issue(confidential: true)
+
non_member = create(:user)
- original_assignees = issue.assignees
+ original_assignees = issue.assignees.to_a
update_issue(assignee_ids: [non_member.id])
diff --git a/spec/services/labels/available_labels_service_spec.rb b/spec/services/labels/available_labels_service_spec.rb
index 2b398210034..3a1474e4fef 100644
--- a/spec/services/labels/available_labels_service_spec.rb
+++ b/spec/services/labels/available_labels_service_spec.rb
@@ -42,11 +42,15 @@ RSpec.describe Labels::AvailableLabelsService, feature_category: :team_planning
it 'do not cause additional query for finding labels' do
label_titles = [project_label.title]
- control_count = ActiveRecord::QueryRecorder.new { described_class.new(user, project, labels: label_titles).find_or_create_by_titles }
+ control = ActiveRecord::QueryRecorder.new do
+ described_class.new(user, project, labels: label_titles).find_or_create_by_titles
+ end
new_label = create(:label, project: project)
label_titles = [project_label.title, new_label.title]
- expect { described_class.new(user, project, labels: label_titles).find_or_create_by_titles }.not_to exceed_query_limit(control_count)
+ expect do
+ described_class.new(user, project, labels: label_titles).find_or_create_by_titles
+ end.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/services/members/create_service_spec.rb b/spec/services/members/create_service_spec.rb
index b977292bcf4..c08b40e9528 100644
--- a/spec/services/members/create_service_spec.rb
+++ b/spec/services/members/create_service_spec.rb
@@ -98,7 +98,7 @@ RSpec.describe Members::CreateService, :aggregate_failures, :clean_gitlab_redis_
it 'adds a user to members' do
expect(execute_service[:status]).to eq(:success)
- expect(source.users).to include member
+ expect(source).to have_user(member)
expect(Onboarding::Progress.completed?(source, :user_added)).to be(true)
end
@@ -119,14 +119,34 @@ RSpec.describe Members::CreateService, :aggregate_failures, :clean_gitlab_redis_
before do
# validations will fail because we try to invite them to the project as a guest
source.group.add_developer(member)
+ allow(Gitlab::EventStore).to receive(:publish)
end
- it 'triggers the members added and authorizations changed events' do
+ it 'triggers the authorizations changed events' do
expect(Gitlab::EventStore)
- .to receive(:publish)
- .with(an_instance_of(ProjectAuthorizations::AuthorizationsChangedEvent))
+ .to receive(:publish_group)
+ .with(array_including(an_instance_of(ProjectAuthorizations::AuthorizationsAddedEvent)))
.and_call_original
+ execute_service
+ end
+
+ context 'when feature flag "add_policy_approvers_to_rules" is disabled' do
+ before do
+ stub_feature_flags(add_policy_approvers_to_rules: false)
+ end
+
+ it 'triggers the authorizations changed event' do
+ expect(Gitlab::EventStore)
+ .to receive(:publish)
+ .with(an_instance_of(ProjectAuthorizations::AuthorizationsChangedEvent))
+ .and_call_original
+
+ execute_service
+ end
+ end
+
+ it 'triggers the members added event' do
expect(Gitlab::EventStore)
.to receive(:publish)
.with(an_instance_of(Members::MembersAddedEvent))
diff --git a/spec/services/members/update_service_spec.rb b/spec/services/members/update_service_spec.rb
index 3860543a85e..b23f5856575 100644
--- a/spec/services/members/update_service_spec.rb
+++ b/spec/services/members/update_service_spec.rb
@@ -263,7 +263,7 @@ RSpec.describe Members::UpdateService, feature_category: :groups_and_projects do
it 'emails the users that their group membership expiry has changed' do
members.each do |member|
- expect(notification_service).to receive(:updated_group_member_expiration).with(member)
+ expect(notification_service).to receive(:updated_member_expiration).with(member)
end
subject
diff --git a/spec/services/merge_requests/approval_service_spec.rb b/spec/services/merge_requests/approval_service_spec.rb
index 8761aba432f..6e20c42c8f6 100644
--- a/spec/services/merge_requests/approval_service_spec.rb
+++ b/spec/services/merge_requests/approval_service_spec.rb
@@ -16,11 +16,7 @@ RSpec.describe MergeRequests::ApprovalService, feature_category: :code_review_wo
stub_feature_flags ff_require_saml_auth_to_approve: false
end
- context 'with invalid approval' do
- before do
- allow(merge_request.approvals).to receive(:new).and_return(double(save: false))
- end
-
+ shared_examples 'no-op call' do
it 'does not reset approvals' do
expect(merge_request.approvals).not_to receive(:reset)
@@ -47,22 +43,34 @@ RSpec.describe MergeRequests::ApprovalService, feature_category: :code_review_wo
end
end
+ context 'with invalid approval' do
+ before do
+ allow(merge_request.approvals).to receive(:new).and_return(double(save: false))
+ end
+
+ it_behaves_like 'no-op call'
+ end
+
context 'with an already approved MR' do
before do
merge_request.approvals.create!(user: user)
end
- it 'does not create an approval' do
- expect { service.execute(merge_request) }.not_to change { merge_request.approvals.size }
- end
+ it_behaves_like 'no-op call'
+ end
- it_behaves_like 'does not trigger GraphQL subscription mergeRequestMergeStatusUpdated' do
- let(:action) { service.execute(merge_request) }
- end
+ context 'with a merged MR' do
+ let(:merge_request) { create(:merge_request, :merged) }
- it_behaves_like 'does not trigger GraphQL subscription mergeRequestReviewersUpdated' do
- let(:action) { service.execute(merge_request) }
+ it_behaves_like 'no-op call'
+ end
+
+ context 'user cannot update the merge request' do
+ before do
+ project.add_guest(user)
end
+
+ it_behaves_like 'no-op call'
end
context 'with valid approval' do
@@ -115,27 +123,5 @@ RSpec.describe MergeRequests::ApprovalService, feature_category: :code_review_wo
let(:action) { service.execute(merge_request) }
end
end
-
- context 'user cannot update the merge request' do
- before do
- project.add_guest(user)
- end
-
- it 'does not update approvals' do
- expect { service.execute(merge_request) }.not_to change { merge_request.approvals.size }
- end
-
- it_behaves_like 'does not trigger GraphQL subscription mergeRequestMergeStatusUpdated' do
- let(:action) { service.execute(merge_request) }
- end
-
- it_behaves_like 'does not trigger GraphQL subscription mergeRequestReviewersUpdated' do
- let(:action) { service.execute(merge_request) }
- end
-
- it_behaves_like 'does not trigger GraphQL subscription mergeRequestApprovalStateUpdated' do
- let(:action) { service.execute(merge_request) }
- end
- end
end
end
diff --git a/spec/services/merge_requests/conflicts/list_service_spec.rb b/spec/services/merge_requests/conflicts/list_service_spec.rb
index 5eb53b1bcba..416b28bff05 100644
--- a/spec/services/merge_requests/conflicts/list_service_spec.rb
+++ b/spec/services/merge_requests/conflicts/list_service_spec.rb
@@ -84,7 +84,7 @@ RSpec.describe MergeRequests::Conflicts::ListService, feature_category: :code_re
it 'returns a falsey value when the MR has a missing revision after a force push' do
merge_request = create_merge_request('conflict-resolvable')
service = conflicts_service(merge_request)
- allow(merge_request).to receive_message_chain(:target_branch_head, :raw, :id).and_return(Gitlab::Git::BLANK_SHA)
+ allow(merge_request).to receive_message_chain(:target_branch_head, :raw, :id).and_return(Gitlab::Git::SHA1_BLANK_SHA)
expect(service.can_be_resolved_in_ui?).to be_falsey
end
diff --git a/spec/services/merge_requests/get_urls_service_spec.rb b/spec/services/merge_requests/get_urls_service_spec.rb
index 31b3e513a51..85a84f07094 100644
--- a/spec/services/merge_requests/get_urls_service_spec.rb
+++ b/spec/services/merge_requests/get_urls_service_spec.rb
@@ -10,8 +10,8 @@ RSpec.describe MergeRequests::GetUrlsService, feature_category: :code_review_wor
let(:source_branch) { "merge-test" }
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/-/merge_requests/new?merge_request%5Bsource_branch%5D=#{source_branch}" }
let(:show_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/-/merge_requests/#{merge_request.iid}" }
- let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
- let(:deleted_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 #{Gitlab::Git::BLANK_SHA} refs/heads/#{source_branch}" }
+ let(:new_branch_changes) { "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
+ let(:deleted_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 #{Gitlab::Git::SHA1_BLANK_SHA} refs/heads/#{source_branch}" }
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
let(:default_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/master" }
@@ -131,7 +131,7 @@ RSpec.describe MergeRequests::GetUrlsService, feature_category: :code_review_wor
context 'pushing new branch and existing branch (with merge request created) at once' do
let!(:merge_request) { create(:merge_request, source_project: project, source_branch: "markdown") }
- let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/new_branch" }
+ let(:new_branch_changes) { "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/new_branch" }
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/markdown" }
let(:changes) { "#{new_branch_changes}\n#{existing_branch_changes}" }
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/-/merge_requests/new?merge_request%5Bsource_branch%5D=new_branch" }
diff --git a/spec/services/merge_requests/push_options_handler_service_spec.rb b/spec/services/merge_requests/push_options_handler_service_spec.rb
index 038977e4fd0..e34eb804a82 100644
--- a/spec/services/merge_requests/push_options_handler_service_spec.rb
+++ b/spec/services/merge_requests/push_options_handler_service_spec.rb
@@ -34,9 +34,9 @@ RSpec.describe MergeRequests::PushOptionsHandlerService, feature_category: :sour
let(:label1) { 'mylabel1' }
let(:label2) { 'mylabel2' }
let(:label3) { 'mylabel3' }
- let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
+ let(:new_branch_changes) { "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
- let(:deleted_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 #{Gitlab::Git::BLANK_SHA} refs/heads/#{source_branch}" }
+ let(:deleted_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 #{Gitlab::Git::SHA1_BLANK_SHA} refs/heads/#{source_branch}" }
let(:default_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{project.default_branch}" }
let(:error_mr_required) { "A merge_request.create push option is required to create a merge request for branch #{source_branch}" }
@@ -802,7 +802,7 @@ RSpec.describe MergeRequests::PushOptionsHandlerService, feature_category: :sour
let(:changes) do
[
new_branch_changes,
- "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/feature_conflict"
+ "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/feature_conflict"
]
end
@@ -814,7 +814,7 @@ RSpec.describe MergeRequests::PushOptionsHandlerService, feature_category: :sour
let(:limit) { MergeRequests::PushOptionsHandlerService::LIMIT }
let(:changes) do
TestEnv::BRANCH_SHA.to_a[0..limit].map do |x|
- "#{Gitlab::Git::BLANK_SHA} #{x.first} refs/heads/#{x.last}"
+ "#{Gitlab::Git::SHA1_BLANK_SHA} #{x.first} refs/heads/#{x.last}"
end
end
diff --git a/spec/services/merge_requests/pushed_branches_service_spec.rb b/spec/services/merge_requests/pushed_branches_service_spec.rb
index de99fb244d3..bcde2fd5165 100644
--- a/spec/services/merge_requests/pushed_branches_service_spec.rb
+++ b/spec/services/merge_requests/pushed_branches_service_spec.rb
@@ -37,11 +37,11 @@ RSpec.describe MergeRequests::PushedBranchesService, feature_category: :source_c
end
it 'returns empty result without any SQL query performed' do
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
expect(service.execute).to be_empty
- end.count
+ end
- expect(control_count).to be_zero
+ expect(control.count).to be_zero
end
end
end
diff --git a/spec/services/merge_requests/refresh_service_spec.rb b/spec/services/merge_requests/refresh_service_spec.rb
index dd50dfa49e0..e2b1c91d6eb 100644
--- a/spec/services/merge_requests/refresh_service_spec.rb
+++ b/spec/services/merge_requests/refresh_service_spec.rb
@@ -712,10 +712,10 @@ RSpec.describe MergeRequests::RefreshService, feature_category: :code_review_wor
it 'refreshes the merge request' do
expect(refresh_service).to receive(:execute_hooks)
- .with(@fork_merge_request, 'update', old_rev: Gitlab::Git::BLANK_SHA)
+ .with(@fork_merge_request, 'update', old_rev: Gitlab::Git::SHA1_BLANK_SHA)
allow_any_instance_of(Repository).to receive(:merge_base).and_return(@oldrev)
- refresh_service.execute(Gitlab::Git::BLANK_SHA, @newrev, 'refs/heads/master')
+ refresh_service.execute(Gitlab::Git::SHA1_BLANK_SHA, @newrev, 'refs/heads/master')
reload_mrs
expect(@merge_request.notes).to be_empty
diff --git a/spec/services/merge_requests/reload_diffs_service_spec.rb b/spec/services/merge_requests/reload_diffs_service_spec.rb
index 77056cbe541..a6654989374 100644
--- a/spec/services/merge_requests/reload_diffs_service_spec.rb
+++ b/spec/services/merge_requests/reload_diffs_service_spec.rb
@@ -45,11 +45,11 @@ RSpec.describe MergeRequests::ReloadDiffsService, :use_clean_rails_memory_store_
current_user
merge_request
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
subject.execute
- end.count
+ end
- expect { subject.execute }.not_to exceed_query_limit(control_count)
+ expect { subject.execute }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/services/merge_requests/remove_approval_service_spec.rb b/spec/services/merge_requests/remove_approval_service_spec.rb
index e4e54db5013..b0109a022eb 100644
--- a/spec/services/merge_requests/remove_approval_service_spec.rb
+++ b/spec/services/merge_requests/remove_approval_service_spec.rb
@@ -19,6 +19,34 @@ RSpec.describe MergeRequests::RemoveApprovalService, feature_category: :code_rev
project.add_developer(user)
end
+ shared_examples 'no-op call' do
+ it 'does not create an unapproval note and triggers web hook' do
+ expect(service).not_to receive(:execute_hooks)
+ expect(SystemNoteService).not_to receive(:unapprove_mr)
+
+ execute!
+ end
+
+ it 'does not track merge request unapprove action' do
+ expect(Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter)
+ .not_to receive(:track_unapprove_mr_action).with(user: user)
+
+ execute!
+ end
+
+ it_behaves_like 'does not trigger GraphQL subscription mergeRequestMergeStatusUpdated' do
+ let(:action) { execute! }
+ end
+
+ it_behaves_like 'does not trigger GraphQL subscription mergeRequestReviewersUpdated' do
+ let(:action) { execute! }
+ end
+
+ it_behaves_like 'does not trigger GraphQL subscription mergeRequestApprovalStateUpdated' do
+ let(:action) { execute! }
+ end
+ end
+
context 'with a user who has approved' do
let!(:approval) { create(:approval, user: user, merge_request: merge_request) }
let(:notification_service) { NotificationService.new }
@@ -27,6 +55,12 @@ RSpec.describe MergeRequests::RemoveApprovalService, feature_category: :code_rev
allow(service).to receive(:notification_service).and_return(notification_service)
end
+ context 'when the merge request is merged' do
+ let(:merge_request) { create(:merge_request, :merged, source_project: project) }
+
+ it_behaves_like 'no-op call'
+ end
+
it 'removes the approval' do
expect { execute! }.to change { merge_request.approvals.size }.from(2).to(1)
end
@@ -60,31 +94,7 @@ RSpec.describe MergeRequests::RemoveApprovalService, feature_category: :code_rev
end
context 'with a user who has not approved' do
- it 'does not create an unapproval note and triggers web hook' do
- expect(service).not_to receive(:execute_hooks)
- expect(SystemNoteService).not_to receive(:unapprove_mr)
-
- execute!
- end
-
- it 'does not track merge request unapprove action' do
- expect(Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter)
- .not_to receive(:track_unapprove_mr_action).with(user: user)
-
- execute!
- end
-
- it_behaves_like 'does not trigger GraphQL subscription mergeRequestMergeStatusUpdated' do
- let(:action) { execute! }
- end
-
- it_behaves_like 'does not trigger GraphQL subscription mergeRequestReviewersUpdated' do
- let(:action) { execute! }
- end
-
- it_behaves_like 'does not trigger GraphQL subscription mergeRequestApprovalStateUpdated' do
- let(:action) { execute! }
- end
+ it_behaves_like 'no-op call'
end
end
end
diff --git a/spec/services/merge_requests/request_review_service_spec.rb b/spec/services/merge_requests/request_review_service_spec.rb
index ef96bf11e0b..a5f0d5b5c5a 100644
--- a/spec/services/merge_requests/request_review_service_spec.rb
+++ b/spec/services/merge_requests/request_review_service_spec.rb
@@ -71,6 +71,14 @@ RSpec.describe MergeRequests::RequestReviewService, feature_category: :code_revi
service.execute(merge_request, user)
end
+ it 'creates a sytem note' do
+ expect(SystemNoteService)
+ .to receive(:request_review)
+ .with(merge_request, project, current_user, user)
+
+ service.execute(merge_request, user)
+ end
+
it_behaves_like 'triggers GraphQL subscription mergeRequestReviewersUpdated' do
let(:action) { result }
end
diff --git a/spec/services/milestones/destroy_service_spec.rb b/spec/services/milestones/destroy_service_spec.rb
index 209177c348b..a05e11c34d7 100644
--- a/spec/services/milestones/destroy_service_spec.rb
+++ b/spec/services/milestones/destroy_service_spec.rb
@@ -6,13 +6,14 @@ RSpec.describe Milestones::DestroyService, feature_category: :team_planning do
let(:user) { create(:user) }
let(:project) { create(:project, :repository) }
let(:milestone) { create(:milestone, title: 'Milestone v1.0', project: project) }
+ let(:container) { project }
before do
project.add_maintainer(user)
end
def service
- described_class.new(project, user, {})
+ described_class.new(container, user, {})
end
describe '#execute' do
@@ -45,6 +46,7 @@ RSpec.describe Milestones::DestroyService, feature_category: :team_planning do
context 'group milestones' do
let(:group) { create(:group) }
let(:group_milestone) { create(:milestone, group: group) }
+ let(:container) { group }
before do
project.update!(namespace: group)
diff --git a/spec/services/milestones/promote_service_spec.rb b/spec/services/milestones/promote_service_spec.rb
index 203ac2d3f40..caaf6488e40 100644
--- a/spec/services/milestones/promote_service_spec.rb
+++ b/spec/services/milestones/promote_service_spec.rb
@@ -62,13 +62,20 @@ RSpec.describe Milestones::PromoteService, feature_category: :team_planning do
it 'sets issuables with new promoted milestone' do
issue = create(:issue, milestone: milestone, project: project)
+ create(:resource_milestone_event, issue: issue, milestone: milestone)
+
merge_request = create(:merge_request, milestone: milestone, source_project: project)
+ create(:resource_milestone_event, merge_request: merge_request, milestone: milestone)
promoted_milestone = service.execute(milestone)
expect(promoted_milestone).to be_group_milestone
+
expect(issue.reload.milestone).to eq(promoted_milestone)
expect(merge_request.reload.milestone).to eq(promoted_milestone)
+
+ expect(ResourceMilestoneEvent.where(milestone_id: promoted_milestone).count).to eq(2)
+ expect(ResourceMilestoneEvent.where(milestone_id: milestone).count).to eq(0)
end
end
@@ -101,9 +108,14 @@ RSpec.describe Milestones::PromoteService, feature_category: :team_planning do
it 'sets all issuables with new promoted milestone' do
issue = create(:issue, milestone: milestone, project: project)
+ create(:resource_milestone_event, issue: issue, milestone: milestone)
issue_2 = create(:issue, milestone: milestone_2, project: project_2)
+ create(:resource_milestone_event, issue: issue_2, milestone: milestone_2)
+
merge_request = create(:merge_request, milestone: milestone, source_project: project)
+ create(:resource_milestone_event, merge_request: merge_request, milestone: milestone)
merge_request_2 = create(:merge_request, milestone: milestone_2, source_project: project_2)
+ create(:resource_milestone_event, merge_request: merge_request_2, milestone: milestone_2)
promoted_milestone = service.execute(milestone)
@@ -111,6 +123,10 @@ RSpec.describe Milestones::PromoteService, feature_category: :team_planning do
expect(issue_2.reload.milestone).to eq(promoted_milestone)
expect(merge_request.reload.milestone).to eq(promoted_milestone)
expect(merge_request_2.reload.milestone).to eq(promoted_milestone)
+
+ expect(ResourceMilestoneEvent.where(milestone_id: promoted_milestone).count).to eq(4)
+ expect(ResourceMilestoneEvent.where(milestone_id: milestone).count).to eq(0)
+ expect(ResourceMilestoneEvent.where(milestone_id: milestone_2).count).to eq(0)
end
end
end
diff --git a/spec/services/ml/create_model_service_spec.rb b/spec/services/ml/create_model_service_spec.rb
index 74c1dd5fec7..88e7c00d1f9 100644
--- a/spec/services/ml/create_model_service_spec.rb
+++ b/spec/services/ml/create_model_service_spec.rb
@@ -50,9 +50,10 @@ RSpec.describe ::Ml::CreateModelService, feature_category: :mlops do
let(:name) { existing_model.name }
let(:project) { existing_model.project }
- it 'raises an error', :aggregate_failures do
- expect { create_model }.to raise_error(ActiveRecord::RecordInvalid)
+ it 'returns a model with errors', :aggregate_failures do
+ expect(create_model).not_to be_persisted
expect(Gitlab::InternalEvents).not_to have_received(:track_event)
+ expect(create_model.errors.full_messages).to eq(["Name has already been taken"])
end
end
diff --git a/spec/services/ml/create_model_version_service_spec.rb b/spec/services/ml/create_model_version_service_spec.rb
index b3aead4a92c..be2bfc86b54 100644
--- a/spec/services/ml/create_model_version_service_spec.rb
+++ b/spec/services/ml/create_model_version_service_spec.rb
@@ -75,5 +75,60 @@ RSpec.describe ::Ml::CreateModelVersionService, feature_category: :mlops do
expect(model.reload.latest_version.package.name).to eq(model.name)
expect(model.latest_version.package.version).to eq(model.latest_version.version)
end
+
+ context 'when metadata are supplied, add them as metadata' do
+ let(:metadata) { [{ key: 'key1', value: 'value1' }, { key: 'key2', value: 'value2' }] }
+ let(:params) { { metadata: metadata } }
+
+ it 'creates metadata records', :aggregate_failures do
+ expect { service }.to change { Ml::ModelVersion.count }.by(1)
+
+ expect(service.metadata.count).to be 2
+ end
+ end
+
+ # TODO: Ensure consisted error responses https://gitlab.com/gitlab-org/gitlab/-/issues/429731
+ context 'for metadata with duplicate keys, it does not create duplicate records' do
+ let(:metadata) { [{ key: 'key1', value: 'value1' }, { key: 'key1', value: 'value2' }] }
+ let(:params) { { metadata: metadata } }
+
+ it 'raises an error', :aggregate_failures do
+ expect { service }.to raise_error(ActiveRecord::RecordInvalid)
+ end
+ end
+
+ # # TODO: Ensure consisted error responses https://gitlab.com/gitlab-org/gitlab/-/issues/429731
+ context 'for metadata with invalid keys, it does not create invalid records' do
+ let(:metadata) { [{ key: 'key1', value: 'value1' }, { key: '', value: 'value2' }] }
+ let(:params) { { metadata: metadata } }
+
+ it 'raises an error', :aggregate_failures do
+ expect { service }.to raise_error(ActiveRecord::RecordInvalid)
+ end
+ end
+ end
+
+ context 'when a version string is supplied during creation' do
+ let(:params) { { version: '1.2.3' } }
+
+ it 'creates a package' do
+ expect { service }.to change { Ml::ModelVersion.count }.by(1).and change {
+ Packages::MlModel::Package.count
+ }.by(1)
+ expect(model.reload.latest_version.version).to eq('1.2.3')
+ expect(model.latest_version.package.version).to eq('1.2.3')
+ end
+ end
+
+ context 'when a nil version string is supplied during creation' do
+ let(:params) { { version: nil } }
+
+ it 'creates a package' do
+ expect { service }.to change { Ml::ModelVersion.count }.by(1).and change {
+ Packages::MlModel::Package.count
+ }.by(1)
+ expect(model.reload.latest_version.version).to eq('1.0.0')
+ expect(model.latest_version.package.version).to eq('1.0.0')
+ end
end
end
diff --git a/spec/services/namespaces/package_settings/update_service_spec.rb b/spec/services/namespaces/package_settings/update_service_spec.rb
index 41f3499a1bb..002c7df9284 100644
--- a/spec/services/namespaces/package_settings/update_service_spec.rb
+++ b/spec/services/namespaces/package_settings/update_service_spec.rb
@@ -46,7 +46,9 @@ RSpec.describe ::Namespaces::PackageSettings::UpdateService, feature_category: :
lock_npm_package_requests_forwarding: false,
pypi_package_requests_forwarding: nil,
lock_pypi_package_requests_forwarding: false,
- nuget_symbol_server_enabled: false
+ nuget_symbol_server_enabled: false,
+ terraform_module_duplicates_allowed: false,
+ terraform_module_duplicate_exception_regex: 'foo'
}, to: {
maven_duplicates_allowed: false,
maven_duplicate_exception_regex: 'RELEASE',
@@ -60,7 +62,9 @@ RSpec.describe ::Namespaces::PackageSettings::UpdateService, feature_category: :
lock_npm_package_requests_forwarding: true,
pypi_package_requests_forwarding: true,
lock_pypi_package_requests_forwarding: true,
- nuget_symbol_server_enabled: true
+ nuget_symbol_server_enabled: true,
+ terraform_module_duplicates_allowed: true,
+ terraform_module_duplicate_exception_regex: 'bar'
}
it_behaves_like 'returning a success'
@@ -112,7 +116,9 @@ RSpec.describe ::Namespaces::PackageSettings::UpdateService, feature_category: :
lock_npm_package_requests_forwarding: true,
pypi_package_requests_forwarding: true,
lock_pypi_package_requests_forwarding: true,
- nuget_symbol_server_enabled: true
+ nuget_symbol_server_enabled: true,
+ terraform_module_duplicates_allowed: true,
+ terraform_module_duplicate_exception_regex: 'bar'
}
end
diff --git a/spec/services/notification_recipients/build_service_spec.rb b/spec/services/notification_recipients/build_service_spec.rb
index bfd1dcd7d80..b4788428f14 100644
--- a/spec/services/notification_recipients/build_service_spec.rb
+++ b/spec/services/notification_recipients/build_service_spec.rb
@@ -21,13 +21,13 @@ RSpec.describe NotificationRecipients::BuildService, feature_category: :team_pla
service.build_new_note_recipients(note)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
service.build_new_note_recipients(note)
end
create_user
- expect { service.build_new_note_recipients(note) }.not_to exceed_query_limit(control_count).with_threshold(threshold)
+ expect { service.build_new_note_recipients(note) }.not_to exceed_query_limit(control).with_threshold(threshold)
end
end
@@ -76,13 +76,15 @@ RSpec.describe NotificationRecipients::BuildService, feature_category: :team_pla
service.build_new_review_recipients(review)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
service.build_new_review_recipients(review)
end
create_user
- expect { service.build_new_review_recipients(review) }.not_to exceed_query_limit(control_count).with_threshold(threshold)
+ expect do
+ service.build_new_review_recipients(review)
+ end.not_to exceed_query_limit(control).with_threshold(threshold)
end
end
@@ -130,13 +132,13 @@ RSpec.describe NotificationRecipients::BuildService, feature_category: :team_pla
service.build_requested_review_recipients(note)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
service.build_requested_review_recipients(note)
end
create_user
- expect { service.build_requested_review_recipients(note) }.not_to exceed_query_limit(control_count)
+ expect { service.build_requested_review_recipients(note) }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb
index 40597c30c4a..15e7f794795 100644
--- a/spec/services/notification_service_spec.rb
+++ b/spec/services/notification_service_spec.rb
@@ -3179,6 +3179,22 @@ RSpec.describe NotificationService, :mailer, feature_category: :team_planning do
end
end
+ describe '#invite_member' do
+ let_it_be(:group_member) { create(:group_member) }
+
+ subject(:invite_member) { notification.invite_member(group_member, 'token') }
+
+ it 'sends exactly one email' do
+ expect(Notify)
+ .to receive(:member_invited_email).with('Group', group_member.id, 'token').at_least(:once).and_call_original
+
+ invite_member
+
+ expect_delivery_jobs_count(1)
+ expect_enqueud_email('Group', group_member.id, 'token', mail: 'member_invited_email')
+ end
+ end
+
describe '#new_instance_access_request', :deliver_mails_inline do
let_it_be(:user) { create(:user, :blocked_pending_approval) }
let_it_be(:admins) { create_list(:admin, 12, :with_sign_ins) }
@@ -3278,43 +3294,6 @@ RSpec.describe NotificationService, :mailer, feature_category: :team_planning do
let(:source) { group }
end
end
-
- describe '#new_group_member' do
- let(:group) { create(:group) }
-
- it 'sends a notification' do
- group.add_guest(added_user)
- should_only_email(added_user)
- end
-
- describe 'when notifications are disabled' do
- before do
- create_global_setting_for(added_user, :disabled)
- end
-
- it 'does not send a notification' do
- group.add_guest(added_user)
- should_not_email_anyone
- end
- end
-
- it_behaves_like 'group emails are disabled' do
- let(:notification_target) { group }
- let(:notification_trigger) { group.add_guest(added_user) }
- end
- end
-
- describe '#updated_group_member_expiration' do
- let_it_be(:group_member) { create(:group_member) }
-
- it 'emails the user that their group membership expiry has changed' do
- expect_next_instance_of(NotificationService) do |notification|
- allow(notification).to receive(:updated_group_member_expiration).with(group_member)
- end
-
- group_member.update!(expires_at: 5.days.from_now)
- end
- end
end
describe 'ProjectMember', :deliver_mails_inline do
@@ -3444,29 +3423,6 @@ RSpec.describe NotificationService, :mailer, feature_category: :team_planning do
end
end
- describe '#new_project_member' do
- it do
- create_member!
- should_only_email(added_user)
- end
-
- it_behaves_like 'project emails are disabled' do
- let(:notification_target) { project }
- let(:notification_trigger) { create_member! }
- end
-
- context 'when notifications are disabled' do
- before do
- create_global_setting_for(added_user, :disabled)
- end
-
- it do
- create_member!
- should_not_email_anyone
- end
- end
- end
-
describe '#member_about_to_expire' do
let_it_be(:group_member) { create(:group_member, expires_at: 7.days.from_now.to_date) }
let_it_be(:project_member) { create(:project_member, expires_at: 7.days.from_now.to_date) }
@@ -3487,9 +3443,92 @@ RSpec.describe NotificationService, :mailer, feature_category: :team_planning do
end
end
end
+ end
+
+ describe '#new_member', :deliver_mails_inline do
+ let_it_be(:source) { create(:group) }
+ let_it_be(:added_user) { create(:user) }
+
+ subject(:new_member) { notification.new_member(member) }
+
+ shared_examples_for 'new member added' do |source_type|
+ it 'triggers a notification about about the added access', deliver_mails_inline: false do
+ new_member
+
+ expect_delivery_jobs_count(1)
+ expect_enqueud_email(source_type, member.id, mail: 'member_access_granted_email')
+ end
+ end
+
+ context 'when source is a Group' do
+ it_behaves_like 'new member added', 'Group' do
+ let_it_be(:member) { create(:group_member, source: source) }
+ end
+
+ it_behaves_like 'group emails are disabled' do
+ let(:notification_target) { source }
+ let(:notification_trigger) { notification_target.add_guest(added_user) }
+ end
+ end
+
+ context 'when source is a Project' do
+ let_it_be(:source) { create(:project) }
+
+ it_behaves_like 'new member added', 'Project' do
+ let_it_be(:member) { create(:project_member, source: project) }
+ end
+
+ it_behaves_like 'project emails are disabled' do
+ let_it_be(:notification_target) { source }
+ let(:notification_trigger) { source.add_guest(added_user) }
+ end
+ end
- def create_member!
- create(:project_member, user: added_user, project: project)
+ context 'when notifications are disabled' do
+ before do
+ create_global_setting_for(added_user, :disabled)
+ end
+
+ it 'does not send a notification' do
+ source.add_guest(added_user)
+ should_not_email_anyone
+ end
+ end
+ end
+
+ describe '#updated_member_expiration' do
+ subject(:updated_member_expiration) { notification.updated_member_expiration(member) }
+
+ context 'for group member' do
+ let_it_be(:member) { create(:group_member) }
+
+ it 'triggers a notification about the expiration change' do
+ updated_member_expiration
+
+ expect_delivery_jobs_count(1)
+ expect_enqueud_email('Group', member.id, mail: 'member_expiration_date_updated_email')
+ end
+ end
+
+ context 'for project member' do
+ let_it_be(:member) { create(:project_member) }
+
+ it 'does not trigger a notification' do
+ updated_member_expiration
+
+ expect_delivery_jobs_count(0)
+ end
+ end
+ end
+
+ describe '#updated_member_access_level' do
+ let_it_be(:member) { create(:group_member) }
+
+ it 'triggers a notification about the access_level change' do
+ notification.updated_member_access_level(member)
+
+ expect_delivery_jobs_count(1)
+ expect_enqueud_email('Group', member.id, mail: 'member_access_granted_email')
end
end
diff --git a/spec/services/organizations/create_service_spec.rb b/spec/services/organizations/create_service_spec.rb
index aae89517c15..bbc0f3d7515 100644
--- a/spec/services/organizations/create_service_spec.rb
+++ b/spec/services/organizations/create_service_spec.rb
@@ -29,11 +29,13 @@ RSpec.describe Organizations::CreateService, feature_category: :cell do
shared_examples 'creating an organization' do
it 'creates the organization' do
expect { response }.to change { Organizations::Organization.count }
+ .and change { Organizations::OrganizationUser.count }.by(1)
expect(response).to be_success
expect(created_organization.name).to eq(params[:name])
expect(created_organization.path).to eq(params[:path])
expect(created_organization.description).to eq(params[:description])
expect(created_organization.avatar.filename).to eq(avatar_filename)
+ expect(created_organization.owner?(current_user)).to be(true)
end
end
diff --git a/spec/services/organizations/update_service_spec.rb b/spec/services/organizations/update_service_spec.rb
index 148840770db..30c07ae1d13 100644
--- a/spec/services/organizations/update_service_spec.rb
+++ b/spec/services/organizations/update_service_spec.rb
@@ -32,7 +32,7 @@ RSpec.describe Organizations::UpdateService, feature_category: :cell do
context 'when user has permission' do
before_all do
- create(:organization_user, organization: organization, user: current_user)
+ create(:organization_user, :owner, organization: organization, user: current_user)
end
shared_examples 'updating an organization' do
@@ -60,6 +60,14 @@ RSpec.describe Organizations::UpdateService, feature_category: :cell do
it_behaves_like 'updating an organization'
end
+ context 'when avatar is set to nil' do
+ let_it_be(:organization_detail) { create(:organization_detail, organization: organization) }
+ let(:extra_params) { { avatar: nil } }
+ let(:description) { organization_detail.description }
+
+ it_behaves_like 'updating an organization'
+ end
+
include_examples 'updating an organization'
context 'when the organization is not updated' do
diff --git a/spec/services/packages/npm/create_package_service_spec.rb b/spec/services/packages/npm/create_package_service_spec.rb
index f02e53b67cb..7a91fdfc5b9 100644
--- a/spec/services/packages/npm/create_package_service_spec.rb
+++ b/spec/services/packages/npm/create_package_service_spec.rb
@@ -25,7 +25,13 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
let(:version_data) { params.dig('versions', version) }
let(:lease_key) { "packages:npm:create_package_service:packages:#{project.id}_#{package_name}_#{version}" }
+ shared_examples 'valid service response' do
+ it { is_expected.to be_success }
+ end
+
shared_examples 'valid package' do
+ let(:package) { subject[:package] }
+
it 'creates a package' do
expect { subject }
.to change { Packages::Package.count }.by(1)
@@ -34,30 +40,27 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
.and change { Packages::Npm::Metadatum.count }.by(1)
end
- it_behaves_like 'assigns the package creator' do
- let(:package) { subject }
- end
-
- it { is_expected.to be_valid }
+ it_behaves_like 'assigns the package creator'
- it 'creates a package with name and version' do
- package = subject
+ it 'returns a valid package' do
+ subject
- expect(package.name).to eq(package_name)
- expect(package.version).to eq(version)
+ expect(package).to be_valid
+ .and have_attributes name: package_name, version: version
+ expect(package.npm_metadatum.package_json).to eq(version_data)
end
- it { expect(subject.npm_metadatum.package_json).to eq(version_data) }
-
- it { expect(subject.name).to eq(package_name) }
- it { expect(subject.version).to eq(version) }
-
context 'with build info' do
let_it_be(:job) { create(:ci_build, user: user) }
let(:params) { super().merge(build: job) }
- it_behaves_like 'assigns build to package'
- it_behaves_like 'assigns status to package'
+ it_behaves_like 'assigns build to package' do
+ subject { super().payload.fetch(:package) }
+ end
+
+ it_behaves_like 'assigns status to package' do
+ subject { super().payload.fetch(:package) }
+ end
it 'creates a package file build info' do
expect { subject }.to change { Packages::PackageFileBuildInfo.count }.by(1)
@@ -163,31 +166,35 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
.and change { Packages::Package.npm.count }.by(1)
.and change { Packages::Tag.count }.by(1)
.and change { Packages::Npm::Metadatum.count }.by(1)
- expect(subject.npm_metadatum.package_json[field]).to be_blank
+ expect(package.npm_metadatum.package_json[field]).to be_blank
end
end
end
end
context 'scoped package' do
+ it_behaves_like 'valid service response'
it_behaves_like 'valid package'
end
context 'when user is no project member' do
let_it_be(:user) { create(:user) }
+ it_behaves_like 'valid service response'
it_behaves_like 'valid package'
end
context 'scoped package not following the naming convention' do
let(:package_name) { '@any-scope/package' }
+ it_behaves_like 'valid service response'
it_behaves_like 'valid package'
end
context 'unscoped package' do
let(:package_name) { 'unscoped-package' }
+ it_behaves_like 'valid service response'
it_behaves_like 'valid package'
end
@@ -195,8 +202,8 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
let(:package_name) { "@#{namespace.path}/my_package" }
let!(:existing_package) { create(:npm_package, project: project, name: package_name, version: '1.0.1') }
- it { expect(subject[:http_status]).to eq 403 }
- it { expect(subject[:message]).to be 'Package already exists.' }
+ it { is_expected.to be_error }
+ it { is_expected.to have_attributes message: 'Package already exists.', reason: ::Packages::Npm::CreatePackageService::ERROR_REASON_PACKAGE_EXISTS }
context 'marked as pending_destruction' do
before do
@@ -217,10 +224,8 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
let(:max_file_size) { 5.bytes }
shared_examples_for 'max file size validation failure' do
- it 'returns a 400 error', :aggregate_failures do
- expect(subject[:http_status]).to eq 400
- expect(subject[:message]).to be 'File is too large.'
- end
+ it { is_expected.to be_error }
+ it { is_expected.to have_attributes message: 'File is too large.', reason: ::Packages::Npm::CreatePackageService::ERROR_REASON_INVALID_PARAMETER }
end
before do
@@ -280,8 +285,8 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
context 'with empty versions' do
let(:params) { super().merge!({ versions: {} }) }
- it { expect(subject[:http_status]).to eq 400 }
- it { expect(subject[:message]).to eq 'Version is empty.' }
+ it { is_expected.to be_error }
+ it { is_expected.to have_attributes message: 'Version is empty.', reason: ::Packages::Npm::CreatePackageService::ERROR_REASON_INVALID_PARAMETER }
end
context 'with invalid versions' do
@@ -303,8 +308,8 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
context 'with empty attachment data' do
let(:params) { super().merge({ _attachments: { "#{package_name}-#{version}.tgz" => { data: '' } } }) }
- it { expect(subject[:http_status]).to eq 400 }
- it { expect(subject[:message]).to eq 'Attachment data is empty.' }
+ it { is_expected.to be_error }
+ it { is_expected.to have_attributes message: 'Attachment data is empty.', reason: ::Packages::Npm::CreatePackageService::ERROR_REASON_INVALID_PARAMETER }
end
it 'obtains a lease to create a new package' do
@@ -318,8 +323,8 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
stub_exclusive_lease_taken(lease_key, timeout: described_class::DEFAULT_LEASE_TIMEOUT)
end
- it { expect(subject[:http_status]).to eq 400 }
- it { expect(subject[:message]).to eq 'Could not obtain package lease. Please try again.' }
+ it { is_expected.to be_error }
+ it { is_expected.to have_attributes message: 'Could not obtain package lease. Please try again.', reason: ::Packages::Npm::CreatePackageService::ERROR_REASON_PACKAGE_LEASE_TAKEN }
end
context 'when feature flag :packages_protected_packages disabled' do
@@ -364,7 +369,8 @@ RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_r
let(:service) { described_class.new(project, current_user, params) }
shared_examples 'protected package' do
- it { is_expected.to include http_status: 403, message: 'Package protected.' }
+ it { is_expected.to be_error }
+ it { is_expected.to have_attributes message: 'Package protected.', reason: ::Packages::Npm::CreatePackageService::ERROR_REASON_PACKAGE_PROTECTED }
it 'does not create any npm-related package records' do
expect { subject }
diff --git a/spec/services/packages/terraform_module/create_package_service_spec.rb b/spec/services/packages/terraform_module/create_package_service_spec.rb
index 3355dfcf5ec..c1a41cd9676 100644
--- a/spec/services/packages/terraform_module/create_package_service_spec.rb
+++ b/spec/services/packages/terraform_module/create_package_service_spec.rb
@@ -2,10 +2,11 @@
require 'spec_helper'
RSpec.describe Packages::TerraformModule::CreatePackageService, feature_category: :package_registry do
- let_it_be(:namespace) { create(:namespace) }
+ let_it_be(:namespace) { create(:group) }
let_it_be(:project) { create(:project, namespace: namespace) }
let_it_be(:user) { create(:user) }
let_it_be(:sha256) { '440e5e148a25331bbd7991575f7d54933c0ebf6cc735a18ee5066ac1381bb590' }
+ let_it_be(:package_settings) { create(:namespace_package_setting, namespace: namespace) }
let(:overrides) { {} }
@@ -36,10 +37,72 @@ RSpec.describe Packages::TerraformModule::CreatePackageService, feature_category
context 'package already exists elsewhere' do
let(:project2) { create(:project, namespace: namespace) }
- let!(:existing_package) { create(:terraform_module_package, project: project2, name: 'foo/bar', version: '1.0.0') }
+ let!(:existing_package) do
+ create(:terraform_module_package, project: project2, name: 'foo/bar', version: '1.0.0')
+ end
+
+ context 'when duplicates not allowed' do
+ it { expect(subject.reason).to eq :forbidden }
+ it { expect(subject.message).to be 'A package with the same name already exists in the namespace' }
+ end
+
+ context 'when duplicates allowed' do
+ before do
+ package_settings.update_column(:terraform_module_duplicates_allowed, true)
+ end
+
+ it_behaves_like 'creating a package'
+ end
+
+ context 'with duplicate regex exception' do
+ before do
+ package_settings.update_columns(
+ terraform_module_duplicates_allowed: false,
+ terraform_module_duplicate_exception_regex: regex
+ )
+ end
+
+ context 'when regex matches' do
+ let(:regex) { ".*#{existing_package.name.last(3)}.*" }
+
+ it_behaves_like 'creating a package'
+ end
- it { expect(subject[:http_status]).to eq 403 }
- it { expect(subject[:message]).to be 'Access Denied' }
+ context 'when regex does not match' do
+ let(:regex) { '.*not-a-match.*' }
+
+ it { expect(subject.reason).to eq :forbidden }
+ it { expect(subject.message).to be 'A package with the same name already exists in the namespace' }
+ end
+ end
+
+ context 'for ancestor namespace' do
+ let_it_be(:package_settings) { create(:namespace_package_setting, :group) }
+ let_it_be(:parent_namespace) { package_settings.namespace }
+
+ before do
+ namespace.update!(parent: parent_namespace)
+ end
+
+ context 'when duplicates allowed in an ancestor' do
+ before do
+ package_settings.update_column(:terraform_module_duplicates_allowed, true)
+ end
+
+ it_behaves_like 'creating a package'
+ end
+
+ context 'when duplicates allowed in an ancestor with exception' do
+ before do
+ package_settings.update_columns(
+ terraform_module_duplicates_allowed: false,
+ terraform_module_duplicate_exception_regex: ".*#{existing_package.name.last(3)}.*"
+ )
+ end
+
+ it_behaves_like 'creating a package'
+ end
+ end
context 'marked as pending_destruction' do
before do
@@ -53,7 +116,7 @@ RSpec.describe Packages::TerraformModule::CreatePackageService, feature_category
context 'version already exists' do
let!(:existing_version) { create(:terraform_module_package, project: project, name: 'foo/bar', version: '1.0.1') }
- it { expect(subject[:http_status]).to eq 403 }
+ it { expect(subject[:reason]).to eq :forbidden }
it { expect(subject[:message]).to be 'Package version already exists.' }
context 'marked as pending_destruction' do
@@ -68,7 +131,7 @@ RSpec.describe Packages::TerraformModule::CreatePackageService, feature_category
context 'with empty version' do
let(:overrides) { { module_version: '' } }
- it { expect(subject[:http_status]).to eq 400 }
+ it { expect(subject[:reason]).to eq :bad_request }
it { expect(subject[:message]).to eq 'Version is empty.' }
end
end
diff --git a/spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb b/spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb
index 63b5d54a18d..0e46391c0ad 100644
--- a/spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb
+++ b/spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb
@@ -188,28 +188,4 @@ RSpec.describe PagesDomains::ObtainLetsEncryptCertificateService, feature_catego
service.execute
end
end
-
- context 'when the domain URL is longer than 64 characters' do
- let(:long_domain) { "a.b.c.#{'d' * 63}" }
- let(:pages_domain) { create(:pages_domain, :without_certificate, :without_key, domain: long_domain) }
- let(:service) { described_class.new(pages_domain) }
-
- it 'logs an error and does not proceed with certificate acquisition' do
- expect(Gitlab::AppLogger).to receive(:error).with(
- hash_including(
- message: "Domain name too long for Let's Encrypt certificate",
- pages_domain: long_domain,
- pages_domain_bytesize: long_domain.bytesize,
- max_allowed_bytesize: described_class::MAX_DOMAIN_LENGTH,
- project_id: pages_domain.project_id
- )
- )
-
- # Ensure that the certificate acquisition is not attempted
- expect(::PagesDomains::CreateAcmeOrderService).not_to receive(:new)
- expect(PagesDomainSslRenewalWorker).not_to receive(:perform_in)
-
- service.execute
- end
- end
end
diff --git a/spec/services/post_receive_service_spec.rb b/spec/services/post_receive_service_spec.rb
index 167baed06e7..c0bc8e1cc6e 100644
--- a/spec/services/post_receive_service_spec.rb
+++ b/spec/services/post_receive_service_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe PostReceiveService, feature_category: :team_planning do
let(:repository) { project.repository }
let(:changes) do
- "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{branch_name}"
+ "#{Gitlab::Git::SHA1_BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{branch_name}"
end
let(:params) do
diff --git a/spec/services/preview_markdown_service_spec.rb b/spec/services/preview_markdown_service_spec.rb
index f6aca9970c8..6c185024d28 100644
--- a/spec/services/preview_markdown_service_spec.rb
+++ b/spec/services/preview_markdown_service_spec.rb
@@ -126,7 +126,7 @@ RSpec.describe PreviewMarkdownService, feature_category: :team_planning do
result = service.execute
- expect(result[:text]).to eq "Please do it\n\n/assign #{user.to_reference}"
+ expect(result[:text]).to eq "Please do it\n<p>/assign #{user.to_reference}</p>"
end
end
diff --git a/spec/services/projects/cleanup_service_spec.rb b/spec/services/projects/cleanup_service_spec.rb
index 533a09f7bc7..90f360c5dbd 100644
--- a/spec/services/projects/cleanup_service_spec.rb
+++ b/spec/services/projects/cleanup_service_spec.rb
@@ -190,7 +190,7 @@ RSpec.describe Projects::CleanupService, feature_category: :source_code_manageme
Gitaly::ApplyBfgObjectMapStreamResponse::Entry.new(
type: :COMMIT,
old_oid: old_oid,
- new_oid: Gitlab::Git::BLANK_SHA
+ new_oid: Gitlab::Git::SHA1_BLANK_SHA
)
end
diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb
index 3aea329a45f..e5dd17a3c7c 100644
--- a/spec/services/projects/destroy_service_spec.rb
+++ b/spec/services/projects/destroy_service_spec.rb
@@ -166,6 +166,14 @@ RSpec.describe Projects::DestroyService, :aggregate_failures, :event_store_publi
end
end
+ context 'deleting a project with deployments' do
+ let!(:deployment) { create(:deployment, project: project) }
+
+ it 'deletes deployments' do
+ expect { destroy_project(project, user, {}) }.to change(Deployment, :count).by(-1)
+ end
+ end
+
it_behaves_like 'deleting the project'
context 'personal projects count cache' do
diff --git a/spec/services/projects/fork_service_spec.rb b/spec/services/projects/fork_service_spec.rb
index e6418c7b4ea..949421c205f 100644
--- a/spec/services/projects/fork_service_spec.rb
+++ b/spec/services/projects/fork_service_spec.rb
@@ -3,165 +3,159 @@
require 'spec_helper'
RSpec.describe Projects::ForkService, feature_category: :source_code_management do
- include ProjectForksHelper
+ subject(:service) { described_class.new(project, user, params) }
+
+ let_it_be_with_reload(:project) { create(:project, :repository, star_count: 100, description: 'project') }
+ let_it_be_with_reload(:user) { create(:user) }
+
+ let(:params) { { namespace: namespace } }
+ let(:namespace) { user.namespace }
shared_examples 'forks count cache refresh' do
it 'flushes the forks count cache of the source project', :clean_gitlab_redis_cache do
expect(from_project.forks_count).to be_zero
- fork_project(from_project, to_user, using_service: true)
+ described_class.new(from_project, to_user, params).execute
+
BatchLoader::Executor.clear_current
- expect(from_project.forks_count).to eq(1)
+ expect(from_project.reload.forks_count).to eq(1)
end
end
- context 'when forking a new project' do
- describe 'fork by user' do
+ describe '#execute' do
+ subject(:fork_of_project) { service.execute }
+
+ before do
+ # NOTE: Avatar file is dropped after project reload. Explicitly re-add it for each test.
+ project.avatar = fixture_file_upload("spec/fixtures/dk.png", "image/png")
+ end
+
+ context 'when forker is a guest' do
before do
- @from_user = create(:user)
- @from_namespace = @from_user.namespace
- avatar = fixture_file_upload("spec/fixtures/dk.png", "image/png")
- @from_project = create(
- :project,
- :repository,
- creator_id: @from_user.id,
- namespace: @from_namespace,
- star_count: 107,
- avatar: avatar,
- description: 'wow such project',
- external_authorization_classification_label: 'classification-label'
- )
- @to_user = create(:user)
- @to_namespace = @to_user.namespace
- @from_project.add_member(@to_user, :developer)
+ project.add_member(user, :guest)
end
- context 'fork project' do
- context 'when forker is a guest' do
- before do
- @guest = create(:user)
- @from_project.add_member(@guest, :guest)
- end
- subject { fork_project(@from_project, @guest, using_service: true) }
+ it 'does not create a fork' do
+ is_expected.not_to be_persisted
+ expect(subject.errors[:forked_from_project_id]).to eq(['is forbidden'])
+ end
- it { is_expected.not_to be_persisted }
- it { expect(subject.errors[:forked_from_project_id]).to eq(['is forbidden']) }
+ it 'does not create a fork network' do
+ expect { subject }.not_to change { project.reload.fork_network }
+ end
+ end
- it 'does not create a fork network' do
- expect { subject }.not_to change { @from_project.reload.fork_network }
- end
- end
+ context 'when forker is a developer' do
+ before do
+ project.add_member(user, :developer)
+ end
- it_behaves_like 'forks count cache refresh' do
- let(:from_project) { @from_project }
- let(:to_user) { @to_user }
- end
-
- describe "successfully creates project in the user namespace" do
- let(:to_project) { fork_project(@from_project, @to_user, namespace: @to_user.namespace, using_service: true) }
-
- it { expect(to_project).to be_persisted }
- it { expect(to_project.errors).to be_empty }
- it { expect(to_project.first_owner).to eq(@to_user) }
- it { expect(to_project.namespace).to eq(@to_user.namespace) }
- it { expect(to_project.star_count).to be_zero }
- it { expect(to_project.description).to eq(@from_project.description) }
- it { expect(to_project.avatar.file).to be_exists }
- it { expect(to_project.ci_config_path).to eq(@from_project.ci_config_path) }
- it { expect(to_project.external_authorization_classification_label).to eq(@from_project.external_authorization_classification_label) }
- it { expect(to_project.suggestion_commit_message).to eq(@from_project.suggestion_commit_message) }
- it { expect(to_project.merge_commit_template).to eq(@from_project.merge_commit_template) }
- it { expect(to_project.squash_commit_template).to eq(@from_project.squash_commit_template) }
-
- # This test is here because we had a bug where the from-project lost its
- # avatar after being forked.
- # https://gitlab.com/gitlab-org/gitlab-foss/issues/26158
- it "after forking the from-project still has its avatar" do
- # If we do not fork the project first we cannot detect the bug.
- expect(to_project).to be_persisted
-
- expect(@from_project.avatar.file).to be_exists
- end
+ it 'creates a fork of the project' do
+ expect(fork_of_project).to be_persisted
+ expect(fork_of_project.errors).to be_empty
+ expect(fork_of_project.first_owner).to eq(user)
+ expect(fork_of_project.namespace).to eq(user.namespace)
+ expect(fork_of_project.star_count).to be_zero
+ expect(fork_of_project.description).to eq(project.description)
+ expect(fork_of_project.avatar.file).to be_exists
+ expect(fork_of_project.ci_config_path).to eq(project.ci_config_path)
+ expect(fork_of_project.external_authorization_classification_label).to eq(project.external_authorization_classification_label)
+ expect(fork_of_project.suggestion_commit_message).to eq(project.suggestion_commit_message)
+ expect(fork_of_project.merge_commit_template).to eq(project.merge_commit_template)
+ expect(fork_of_project.squash_commit_template).to eq(project.squash_commit_template)
+ end
- it_behaves_like 'forks count cache refresh' do
- let(:from_project) { @from_project }
- let(:to_user) { @to_user }
- end
+ # This test is here because we had a bug where the from-project lost its
+ # avatar after being forked.
+ # https://gitlab.com/gitlab-org/gitlab-foss/issues/26158
+ it 'after forking the original project still has its avatar' do
+ # If we do not fork the project first we cannot detect the bug.
+ expect(fork_of_project).to be_persisted
- it 'creates a fork network with the new project and the root project set' do
- to_project
- fork_network = @from_project.reload.fork_network
+ expect(project.avatar.file).to be_exists
+ end
- expect(fork_network).not_to be_nil
- expect(fork_network.root_project).to eq(@from_project)
- expect(fork_network.projects).to contain_exactly(@from_project, to_project)
- end
+ it_behaves_like 'forks count cache refresh' do
+ let(:from_project) { project }
+ let(:to_user) { user }
+ end
- it 'imports the repository of the forked project', :sidekiq_might_not_need_inline do
- to_project = fork_project(@from_project, @to_user, repository: true, using_service: true)
+ it 'creates a fork network with the new project and the root project set' do
+ subject
- expect(to_project.empty_repo?).to be_falsy
- end
- end
+ fork_network = project.reload.fork_network
- context 'creating a fork of a fork' do
- let(:from_forked_project) { fork_project(@from_project, @to_user, using_service: true) }
- let(:other_namespace) do
- group = create(:group)
- group.add_owner(@to_user)
- group
- end
+ expect(fork_network).not_to be_nil
+ expect(fork_network.root_project).to eq(project)
+ expect(fork_network.projects).to contain_exactly(project, fork_of_project)
+ end
- let(:to_project) { fork_project(from_forked_project, @to_user, namespace: other_namespace, using_service: true) }
+ it 'imports the repository of the forked project', :sidekiq_might_not_need_inline do
+ expect(fork_of_project).to be_persisted
- it 'sets the root of the network to the root project' do
- expect(to_project.fork_network.root_project).to eq(@from_project)
- end
+ # The call to project.repository.after_import in RepositoryForkWorker does
+ # not reset the @exists variable of this fork_of_project.repository
+ # so we have to explicitly call this method to clear the @exists variable.
+ # of the instance we're returning here.
+ fork_of_project.repository.expire_content_cache
- it 'sets the forked_from_project on the membership' do
- expect(to_project.fork_network_member.forked_from_project).to eq(from_forked_project)
- end
+ expect(fork_of_project.empty_repo?).to be_falsey
+ end
- context 'when the forked project has higher visibility than the root project' do
- let(:root_project) { create(:project, :public) }
+ context 'when creating fork of the fork' do
+ let_it_be(:other_namespace) { create(:group).tap { |group| group.add_owner(user) } }
- it 'successfully creates a fork of the fork with correct visibility' do
- forked_project = fork_project(root_project, @to_user, using_service: true)
+ it 'creates a new project' do
+ fork_of_project = described_class.new(project, user, params).execute
+ expect(fork_of_project).to be_persisted
- root_project.update!(visibility_level: Gitlab::VisibilityLevel::INTERNAL)
+ fork_of_fork = described_class.new(fork_of_project, user, { namespace: other_namespace }).execute
+ expect(fork_of_fork).to be_persisted
- # Forked project visibility is not affected by root project visibility change
- expect(forked_project).to have_attributes(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
+ expect(fork_of_fork).to be_valid
+ expect(fork_of_fork.fork_network.root_project).to eq(project)
+ expect(fork_of_fork.fork_network_member.forked_from_project).to eq(fork_of_project)
+ end
- fork_of_the_fork = fork_project(forked_project, @to_user, namespace: other_namespace, using_service: true)
+ context 'when the forked project has higher visibility than the root project' do
+ let_it_be(:root_project) { create(:project, :public) }
- expect(fork_of_the_fork).to be_valid
- expect(fork_of_the_fork).to have_attributes(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
- end
- end
+ it 'successfully creates a fork of the fork with correct visibility' do
+ fork_of_project = described_class.new(root_project, user, params).execute
+ expect(fork_of_project).to be_persisted
- it_behaves_like 'forks count cache refresh' do
- let(:from_project) { from_forked_project }
- let(:to_user) { @to_user }
+ root_project.update!(visibility_level: Gitlab::VisibilityLevel::INTERNAL)
+
+ # Forked project visibility is not affected by root project visibility change
+ expect(fork_of_project).to have_attributes(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
+
+ fork_of_fork = described_class.new(fork_of_project, user, { namespace: other_namespace }).execute
+ expect(fork_of_fork).to be_persisted
+
+ expect(fork_of_fork).to be_valid
+ expect(fork_of_fork).to have_attributes(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
end
end
+
+ it_behaves_like 'forks count cache refresh' do
+ let(:from_project) { described_class.new(project, user, { namespace: other_namespace }).execute }
+ let(:to_user) { user }
+ end
end
- context 'project already exists' do
- it "fails due to validation, not transaction failure" do
- @existing_project = create(:project, :repository, creator_id: @to_user.id, path: @from_project.path, namespace: @to_namespace)
- @to_project = fork_project(@from_project, @to_user, namespace: @to_namespace, using_service: true)
- expect(@existing_project).to be_persisted
+ context 'when project already exists' do
+ it 'fails due to validation, not transaction failure' do
+ existing_project = create(:project, namespace: namespace, path: project.path)
+ expect(existing_project).to be_persisted
- expect(@to_project).not_to be_persisted
- expect(@to_project.errors[:path]).to eq(['has already been taken'])
+ expect(fork_of_project).not_to be_persisted
+ expect(fork_of_project.errors[:path]).to eq(['has already been taken'])
end
end
- context 'repository in legacy storage already exists' do
- let(:raw_fake_repo) { Gitlab::Git::Repository.new('default', File.join(@to_user.namespace.full_path, "#{@from_project.path}.git"), nil, nil) }
- let(:params) { { namespace: @to_user.namespace, using_service: true } }
+ context 'when repository in legacy storage already exists' do
+ let(:raw_fake_repo) { Gitlab::Git::Repository.new('default', File.join(user.namespace.full_path, "#{project.path}.git"), nil, nil) }
before do
stub_application_setting(hashed_storage_enabled: false)
@@ -172,59 +166,54 @@ RSpec.describe Projects::ForkService, feature_category: :source_code_management
raw_fake_repo.remove
end
- subject { fork_project(@from_project, @to_user, params) }
-
it 'does not allow creation' do
- expect(subject).not_to be_persisted
- expect(subject.errors.messages).to have_key(:base)
- expect(subject.errors.messages[:base].first).to match('There is already a repository with that name on disk')
+ fork_of_project
+
+ expect(fork_of_project).not_to be_persisted
+ expect(fork_of_project.errors.messages).to have_key(:base)
+ expect(fork_of_project.errors.messages[:base].first).to match('There is already a repository with that name on disk')
end
context 'when repository disk validation is explicitly skipped' do
let(:params) { super().merge(skip_disk_validation: true) }
it 'allows fork project creation' do
- expect(subject).to be_persisted
- expect(subject.errors.messages).to be_empty
+ expect(fork_of_project).to be_persisted
+ expect(fork_of_project.errors.messages).to be_empty
end
end
end
- context "CI/CD settings" do
- let(:to_project) { fork_project(@from_project, @to_user, using_service: true) }
+ context 'CI/CD settings' do
+ context 'when origin has git depth specified' do
+ it 'inherits default_git_depth from the origin project' do
+ project.update!(ci_default_git_depth: 42)
- context "when origin has git depth specified" do
- before do
- @from_project.update!(ci_default_git_depth: 42)
- end
-
- it "inherits default_git_depth from the origin project" do
- expect(to_project.ci_default_git_depth).to eq(42)
+ expect(fork_of_project).to be_persisted
+ expect(fork_of_project.ci_default_git_depth).to eq(42)
end
end
- context "when origin does not define git depth" do
- before do
- @from_project.update!(ci_default_git_depth: nil)
- end
+ context 'when origin does not define git depth' do
+ it 'the fork has git depth set to 0' do
+ project.update!(ci_default_git_depth: nil)
- it "the fork has git depth set to 0" do
- expect(to_project.ci_default_git_depth).to eq(0)
+ expect(fork_of_project).to be_persisted
+ expect(fork_of_project.ci_default_git_depth).to eq(0)
end
end
end
- context "when project has restricted visibility level" do
- context "and only one visibility level is restricted" do
+ context 'when project has restricted visibility level' do
+ context 'and only one visibility level is restricted' do
before do
- @from_project.update!(visibility_level: Gitlab::VisibilityLevel::INTERNAL)
+ project.update!(visibility_level: Gitlab::VisibilityLevel::INTERNAL)
stub_application_setting(restricted_visibility_levels: [Gitlab::VisibilityLevel::INTERNAL])
end
- it "creates fork with lowest level" do
- forked_project = fork_project(@from_project, @to_user, using_service: true)
-
- expect(forked_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
+ it 'creates fork with lowest level' do
+ expect(fork_of_project).to be_persisted
+ expect(fork_of_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
end
end
@@ -233,289 +222,284 @@ RSpec.describe Projects::ForkService, feature_category: :source_code_management
stub_application_setting(restricted_visibility_levels: [Gitlab::VisibilityLevel::PUBLIC, Gitlab::VisibilityLevel::INTERNAL, Gitlab::VisibilityLevel::PRIVATE])
end
- it "creates fork with private visibility levels" do
- forked_project = fork_project(@from_project, @to_user, using_service: true)
-
- expect(forked_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
+ it "doesn't create a fork" do
+ expect(fork_of_project).not_to be_persisted
+ expect(fork_of_project.errors[:visibility_level]).to eq ['private has been restricted by your GitLab administrator']
end
end
end
context 'when forking is disabled' do
before do
- @from_project.project_feature.update_attribute(
- :forking_access_level, ProjectFeature::DISABLED)
+ project.project_feature.update_attribute(:forking_access_level, ProjectFeature::DISABLED)
end
- it 'fails' do
- to_project = fork_project(@from_project, @to_user, namespace: @to_user.namespace, using_service: true)
-
- expect(to_project.errors[:forked_from_project_id]).to eq(['is forbidden'])
+ it 'does not create a fork' do
+ expect(fork_of_project).not_to be_persisted
+ expect(fork_of_project.errors[:forked_from_project_id]).to eq(['is forbidden'])
end
end
- end
- describe 'fork to namespace' do
- before do
- @group_owner = create(:user)
- @developer = create(:user)
- @project = create(
- :project, :repository,
- creator_id: @group_owner.id,
- star_count: 777,
- description: 'Wow, such a cool project!',
- ci_config_path: 'debian/salsa-ci.yml'
- )
- @group = create(:group)
- @group.add_member(@group_owner, GroupMember::OWNER)
- @group.add_member(@developer, GroupMember::DEVELOPER)
- @project.add_member(@developer, :developer)
- @project.add_member(@group_owner, :developer)
- @opts = { namespace: @group, using_service: true }
- end
+ context 'when forking to the group namespace' do
+ context 'when user owns a target group' do
+ let_it_be_with_reload(:namespace) { create(:group).tap { |group| group.add_owner(user) } }
+
+ it 'creates a fork in the group' do
+ expect(fork_of_project).to be_persisted
+ expect(fork_of_project.first_owner).to eq(user)
+ expect(fork_of_project.namespace).to eq(namespace)
+ end
+
+ context 'when project already exists in group' do
+ it 'fails due to validation, not transaction failure' do
+ existing_project = create(:project, :repository, path: project.path, namespace: namespace)
+ expect(existing_project).to be_persisted
+
+ expect(fork_of_project).not_to be_persisted
+ expect(fork_of_project.errors[:path]).to eq(['has already been taken'])
+ end
+ end
- context 'fork project for group' do
- it 'group owner successfully forks project into the group' do
- to_project = fork_project(@project, @group_owner, @opts)
+ context 'when the namespace has a lower visibility level than the project' do
+ let_it_be(:namespace) { create(:group, :private).tap { |group| group.add_owner(user) } }
+ let_it_be(:project) { create(:project, :public) }
- expect(to_project).to be_persisted
- expect(to_project.errors).to be_empty
- expect(to_project.first_owner).to eq(@group_owner)
- expect(to_project.namespace).to eq(@group)
- expect(to_project.name).to eq(@project.name)
- expect(to_project.path).to eq(@project.path)
- expect(to_project.description).to eq(@project.description)
- expect(to_project.ci_config_path).to eq(@project.ci_config_path)
- expect(to_project.star_count).to be_zero
+ it 'creates the project with the lower visibility level' do
+ expect(fork_of_project).to be_persisted
+ expect(fork_of_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
+ end
+ end
end
- end
- context 'fork project for group when user not owner' do
- it 'group developer fails to fork project into the group' do
- to_project = fork_project(@project, @developer, @opts)
+ context 'when user is not a group owner' do
+ let_it_be(:namespace) { create(:group).tap { |group| group.add_developer(user) } }
- expect(to_project.errors[:namespace]).to eq(['is not valid'])
+ it 'does not create a fork' do
+ expect(fork_of_project).not_to be_persisted
+ expect(fork_of_project.errors[:namespace]).to eq(['is not valid'])
+ end
end
end
- context 'project already exists in group' do
- it 'fails due to validation, not transaction failure' do
- existing_project = create(:project, :repository, path: @project.path, namespace: @group)
- to_project = fork_project(@project, @group_owner, @opts)
- expect(existing_project.persisted?).to be_truthy
- expect(to_project.errors[:path]).to eq(['has already been taken'])
+ context 'with optional attributes' do
+ let(:params) { super().merge(path: 'forked', name: 'My Fork', description: 'Description', visibility: 'private') }
+
+ it 'sets optional attributes to specified values' do
+ expect(fork_of_project).to be_persisted
+
+ expect(fork_of_project.path).to eq('forked')
+ expect(fork_of_project.name).to eq('My Fork')
+ expect(fork_of_project.description).to eq('Description')
+ expect(fork_of_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
end
- end
- context 'when the namespace has a lower visibility level than the project' do
- it 'creates the project with the lower visibility level' do
- public_project = create(:project, :public)
- private_group = create(:group, :private)
- group_owner = create(:user)
- private_group.add_owner(group_owner)
+ context 'when an unknown visibility is requested' do
+ let_it_be(:project) { create(:project, :public) }
+
+ let(:params) { super().merge(visibility: 'unknown') }
- forked_project = fork_project(public_project, group_owner, namespace: private_group, using_service: true)
+ it 'sets visibility level to private' do
+ expect(fork_of_project).to be_persisted
- expect(forked_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
+ expect(fork_of_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
+ end
end
- end
- end
- describe 'fork with optional attributes' do
- let(:public_project) { create(:project, :public) }
-
- it 'sets optional attributes to specified values' do
- forked_project = fork_project(
- public_project,
- nil,
- namespace: public_project.namespace,
- path: 'forked',
- name: 'My Fork',
- description: 'Description',
- visibility: 'internal',
- using_service: true
- )
-
- expect(forked_project.path).to eq('forked')
- expect(forked_project.name).to eq('My Fork')
- expect(forked_project.description).to eq('Description')
- expect(forked_project.visibility_level).to eq(Gitlab::VisibilityLevel::INTERNAL)
- end
+ context 'when requested visibility level is greater than allowed' do
+ let_it_be(:project) { create(:project, :internal) }
- it 'sets visibility level to private if an unknown visibility is requested' do
- forked_project = fork_project(public_project, nil, using_service: true, visibility: 'unknown')
+ let(:params) { super().merge(visibility: 'public') }
- expect(forked_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
- end
+ it 'sets visibility level to project visibility' do
+ expect(fork_of_project).to be_persisted
- it 'sets visibility level to project visibility level if requested visibility is greater' do
- private_project = create(:project, :private)
+ expect(fork_of_project.visibility_level).to eq(Gitlab::VisibilityLevel::INTERNAL)
+ end
+ end
- forked_project = fork_project(private_project, nil, using_service: true, visibility: 'public')
+ context 'when target namespace has lower visibility than a project' do
+ let_it_be(:project) { create(:project, :public) }
+ let_it_be(:namespace) { create(:group, :private).tap { |group| group.add_owner(user) } }
- expect(forked_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
- end
+ it 'sets visibility level to target namespace visibility level' do
+ expect(fork_of_project).to be_persisted
+
+ expect(fork_of_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
+ end
+ end
- it 'sets visibility level to target namespace visibility level if requested visibility is greater' do
- private_group = create(:group, :private)
+ context 'when project has custom visibility settings' do
+ let_it_be(:project) { create(:project, :public) }
- forked_project = fork_project(public_project, nil, namespace: private_group, using_service: true, visibility: 'public')
+ let(:attrs) do
+ ProjectFeature::FEATURES.to_h do |f|
+ ["#{f}_access_level", ProjectFeature::PRIVATE]
+ end
+ end
- expect(forked_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
+ before do
+ project.project_feature.update!(attrs)
+ end
+
+ it 'copies project features visibility settings to the fork' do
+ expect(fork_of_project).to be_persisted
+
+ expect(fork_of_project.project_feature.slice(attrs.keys)).to eq(attrs)
+ end
+ end
end
- it 'copies project features visibility settings to the fork', :aggregate_failures do
- attrs = ProjectFeature::FEATURES.to_h do |f|
- ["#{f}_access_level", ProjectFeature::PRIVATE]
+ context 'when a project is already forked' do
+ let_it_be(:project) { create(:project, :public, :repository) }
+ let_it_be(:group) { create(:group).tap { |group| group.add_owner(user) } }
+
+ before do
+ # Stub everything required to move a project to a Gitaly shard that does not exist
+ allow(Gitlab::GitalyClient).to receive(:filesystem_id).with('default').and_call_original
+ allow(Gitlab::GitalyClient).to receive(:filesystem_id).with('test_second_storage').and_return(SecureRandom.uuid)
+ stub_storage_settings('test_second_storage' => {})
+ allow_any_instance_of(Gitlab::Git::Repository).to receive(:create_repository)
+ .and_return(true)
+ allow_any_instance_of(Gitlab::Git::Repository).to receive(:replicate)
+ allow_any_instance_of(Gitlab::Git::Repository).to receive(:checksum)
+ .and_return(::Gitlab::Git::SHA1_BLANK_SHA)
+ allow_next_instance_of(Gitlab::Git::ObjectPool) do |object_pool|
+ allow(object_pool).to receive(:link)
+ end
end
- public_project.project_feature.update!(attrs)
+ it 'creates a new pool repository after the project is moved to a new shard' do
+ fork_before_move = subject
- user = create(:user, developer_projects: [public_project])
- forked_project = described_class.new(public_project, user).execute
+ storage_move = create(
+ :project_repository_storage_move,
+ :scheduled,
+ container: project,
+ destination_storage_name: 'test_second_storage'
+ )
+ Projects::UpdateRepositoryStorageService.new(storage_move).execute
- expect(forked_project.project_feature.slice(attrs.keys)).to eq(attrs)
- end
- end
- end
+ fork_after_move = described_class.new(project.reload, user, namespace: group).execute
- context 'when a project is already forked' do
- it 'creates a new pool repository after the project is moved to a new shard' do
- project = create(:project, :public, :repository)
- fork_before_move = fork_project(project, nil, using_service: true)
-
- # Stub everything required to move a project to a Gitaly shard that does not exist
- allow(Gitlab::GitalyClient).to receive(:filesystem_id).with('default').and_call_original
- allow(Gitlab::GitalyClient).to receive(:filesystem_id).with('test_second_storage').and_return(SecureRandom.uuid)
- stub_storage_settings('test_second_storage' => {})
- allow_any_instance_of(Gitlab::Git::Repository).to receive(:create_repository)
- .and_return(true)
- allow_any_instance_of(Gitlab::Git::Repository).to receive(:replicate)
- allow_any_instance_of(Gitlab::Git::Repository).to receive(:checksum)
- .and_return(::Gitlab::Git::BLANK_SHA)
- allow_next_instance_of(Gitlab::Git::ObjectPool) do |object_pool|
- allow(object_pool).to receive(:link)
+ pool_repository_before_move = PoolRepository.joins(:shard)
+ .find_by(source_project: project, shards: { name: 'default' })
+ pool_repository_after_move = PoolRepository.joins(:shard)
+ .find_by(source_project: project, shards: { name: 'test_second_storage' })
+
+ expect(fork_before_move.pool_repository).to eq(pool_repository_before_move)
+ expect(fork_after_move.pool_repository).to eq(pool_repository_after_move)
+ end
end
- storage_move = create(
- :project_repository_storage_move,
- :scheduled,
- container: project,
- destination_storage_name: 'test_second_storage'
- )
- Projects::UpdateRepositoryStorageService.new(storage_move).execute
- fork_after_move = fork_project(project.reload, nil, using_service: true)
- pool_repository_before_move = PoolRepository.joins(:shard)
- .find_by(source_project: project, shards: { name: 'default' })
- pool_repository_after_move = PoolRepository.joins(:shard)
- .find_by(source_project: project, shards: { name: 'test_second_storage' })
-
- expect(fork_before_move.pool_repository).to eq(pool_repository_before_move)
- expect(fork_after_move.pool_repository).to eq(pool_repository_after_move)
- end
- end
+ context 'when forking with object pools' do
+ let_it_be(:project) { create(:project, :public, :repository) }
- context 'when forking with object pools' do
- let(:fork_from_project) { create(:project, :repository, :public) }
- let(:forker) { create(:user) }
+ context 'when no pool exists' do
+ it 'creates a new object pool' do
+ expect { fork_of_project }.to change { PoolRepository.count }.by(1)
- context 'when no pool exists' do
- it 'creates a new object pool' do
- forked_project = fork_project(fork_from_project, forker, using_service: true)
+ expect(fork_of_project.pool_repository).to eq(project.pool_repository)
+ end
- expect(forked_project.pool_repository).to eq(fork_from_project.pool_repository)
- end
- end
+ context 'when project is private' do
+ let_it_be(:project) { create(:project, :private, :repository) }
+
+ it 'does not create an object pool' do
+ expect { fork_of_project }.not_to change { PoolRepository.count }
- context 'when a pool already exists' do
- let!(:pool_repository) { create(:pool_repository, source_project: fork_from_project) }
+ expect(fork_of_project.pool_repository).to be_nil
+ end
+ end
+ end
- it 'joins the object pool' do
- forked_project = fork_project(fork_from_project, forker, using_service: true)
+ context 'when a pool already exists' do
+ let!(:pool_repository) { create(:pool_repository, source_project: project) }
- expect(forked_project.pool_repository).to eq(fork_from_project.pool_repository)
+ it 'joins the object pool' do
+ expect { fork_of_project }.not_to change { PoolRepository.count }
+
+ expect(fork_of_project.pool_repository).to eq(pool_repository)
+ end
+ end
end
- end
- end
- context 'when linking fork to an existing project' do
- let(:fork_from_project) { create(:project, :public) }
- let(:fork_to_project) { create(:project, :public) }
- let(:user) do
- create(:user).tap { |u| fork_to_project.add_maintainer(u) }
- end
+ context 'when linking fork to an existing project' do
+ let_it_be_with_reload(:unlinked_fork) { create(:project, :public) }
- subject { described_class.new(fork_from_project, user) }
+ before_all do
+ unlinked_fork.add_developer(user)
+ end
- def forked_from_project(project)
- project.fork_network_member&.forked_from_project
- end
+ def forked_from_project(project)
+ project.fork_network_member&.forked_from_project
+ end
- context 'if project is already forked' do
- it 'does not create fork relation' do
- allow(fork_to_project).to receive(:forked?).and_return(true)
- expect(forked_from_project(fork_to_project)).to be_nil
- expect(subject.execute(fork_to_project)).to be_nil
- expect(forked_from_project(fork_to_project)).to be_nil
- end
- end
+ context 'if project is already forked' do
+ it 'does not create fork relation' do
+ allow(unlinked_fork).to receive(:forked?).and_return(true)
- context 'if project is not forked' do
- it 'creates fork relation' do
- expect(fork_to_project.forked?).to be_falsy
- expect(forked_from_project(fork_to_project)).to be_nil
+ expect(forked_from_project(unlinked_fork)).to be_nil
- subject.execute(fork_to_project)
+ expect(service.execute(unlinked_fork)).to be_nil
- fork_to_project.reload
+ expect(forked_from_project(unlinked_fork)).to be_nil
+ end
+ end
- expect(fork_to_project.forked?).to be true
- expect(forked_from_project(fork_to_project)).to eq fork_from_project
- expect(fork_to_project.forked_from_project).to eq fork_from_project
- end
+ context 'if project is not forked' do
+ it 'creates fork relation' do
+ expect(unlinked_fork.forked?).to be_falsy
+ expect(forked_from_project(unlinked_fork)).to be_nil
- it 'flushes the forks count cache of the source project' do
- expect(fork_from_project.forks_count).to be_zero
+ service.execute(unlinked_fork)
- subject.execute(fork_to_project)
- BatchLoader::Executor.clear_current
+ unlinked_fork.reload
- expect(fork_from_project.forks_count).to eq(1)
- end
+ expect(unlinked_fork.forked?).to be true
+ expect(forked_from_project(unlinked_fork)).to eq project
+ expect(unlinked_fork.forked_from_project).to eq project
+ end
+
+ it 'flushes the forks count cache of the source project' do
+ expect(project.forks_count).to be_zero
+
+ service.execute(unlinked_fork)
+ BatchLoader::Executor.clear_current
+
+ expect(project.forks_count).to eq(1)
+ end
- context 'if the fork is not allowed' do
- let(:fork_from_project) { create(:project, :private) }
+ context 'if the fork is not allowed' do
+ let_it_be(:project) { create(:project, :private) }
- it 'does not delete the LFS objects' do
- create(:lfs_objects_project, project: fork_to_project)
+ it 'does not delete the LFS objects' do
+ create(:lfs_objects_project, project: unlinked_fork)
- expect { subject.execute(fork_to_project) }
- .not_to change { fork_to_project.lfs_objects_projects.size }
+ expect { service.execute(unlinked_fork) }
+ .not_to change { unlinked_fork.lfs_objects_projects.size }
+ end
+ end
end
end
end
end
describe '#valid_fork_targets' do
+ subject { service.valid_fork_targets }
+
let(:finder_mock) { instance_double('ForkTargetsFinder', execute: ['finder_return_value']) }
- let(:current_user) { instance_double('User') }
- let(:project) { instance_double('Project') }
before do
- allow(ForkTargetsFinder).to receive(:new).with(project, current_user).and_return(finder_mock)
+ allow(ForkTargetsFinder).to receive(:new).with(project, user).and_return(finder_mock)
end
it 'returns whatever finder returns' do
- expect(described_class.new(project, current_user).valid_fork_targets).to eq ['finder_return_value']
+ is_expected.to eq ['finder_return_value']
end
end
describe '#valid_fork_branch?' do
- let_it_be(:user) { create(:user) }
- let_it_be(:project) { create(:project, :small_repo, creator_id: user.id) }
- let_it_be(:branch) { nil }
-
- subject { described_class.new(project, user).valid_fork_branch?(branch) }
+ subject { service.valid_fork_branch?(branch) }
context 'when branch exists' do
let(:branch) { project.default_branch_or_main }
@@ -531,12 +515,11 @@ RSpec.describe Projects::ForkService, feature_category: :source_code_management
end
describe '#valid_fork_target?' do
- let(:project) { Project.new }
+ subject { service.valid_fork_target? }
+
let(:params) { {} }
context 'when target is not passed' do
- subject { described_class.new(project, user, params).valid_fork_target? }
-
context 'when current user is an admin' do
let(:user) { build(:user, :admin) }
@@ -547,7 +530,6 @@ RSpec.describe Projects::ForkService, feature_category: :source_code_management
let(:user) { create(:user) }
let(:finder_mock) { instance_double('ForkTargetsFinder', execute: [user.namespace]) }
- let(:project) { create(:project) }
before do
allow(ForkTargetsFinder).to receive(:new).with(project, user).and_return(finder_mock)
@@ -568,9 +550,9 @@ RSpec.describe Projects::ForkService, feature_category: :source_code_management
end
context 'when target is passed' do
- let(:target) { create(:group) }
+ subject { service.valid_fork_target?(target) }
- subject { described_class.new(project, user, params).valid_fork_target?(target) }
+ let(:target) { create(:group) }
context 'when current user is an admin' do
let(:user) { build(:user, :admin) }
diff --git a/spec/services/projects/participants_service_spec.rb b/spec/services/projects/participants_service_spec.rb
index 692f43eb205..167df7996ca 100644
--- a/spec/services/projects/participants_service_spec.rb
+++ b/spec/services/projects/participants_service_spec.rb
@@ -8,14 +8,18 @@ RSpec.describe Projects::ParticipantsService, feature_category: :groups_and_proj
let_it_be(:project) { create(:project, :public) }
let_it_be(:noteable) { create(:issue, project: project) }
+ let(:params) { {} }
+
before_all do
project.add_developer(user)
+ end
+ before do
stub_feature_flags(disable_all_mention: false)
end
def run_service
- described_class.new(project, user).execute(noteable)
+ described_class.new(project, user, params).execute(noteable)
end
it 'returns results in correct order' do
@@ -39,27 +43,27 @@ RSpec.describe Projects::ParticipantsService, feature_category: :groups_and_proj
it 'avoids N+1 UserDetail queries' do
project.add_developer(create(:user))
- control_count = ActiveRecord::QueryRecorder.new { run_service.to_a }.count
+ control = ActiveRecord::QueryRecorder.new { run_service.to_a }
BatchLoader::Executor.clear_current
project.add_developer(create(:user, status: build(:user_status, availability: :busy)))
- expect { run_service.to_a }.not_to exceed_query_limit(control_count)
+ expect { run_service.to_a }.not_to exceed_query_limit(control)
end
it 'avoids N+1 groups queries' do
group_1 = create(:group)
group_1.add_owner(user)
- control_count = ActiveRecord::QueryRecorder.new { run_service }.count
+ control = ActiveRecord::QueryRecorder.new { run_service }
BatchLoader::Executor.clear_current
group_2 = create(:group)
group_2.add_owner(user)
- expect { run_service }.not_to exceed_query_limit(control_count)
+ expect { run_service }.not_to exceed_query_limit(control)
end
end
@@ -129,6 +133,16 @@ RSpec.describe Projects::ParticipantsService, feature_category: :groups_and_proj
group_1.full_path, subgroup.full_path, group_2.full_path
])
end
+
+ context 'when search param is given' do
+ let(:params) { { search: 'bb' } }
+
+ it 'only returns matching groups' do
+ expect(group_items.pluck(:username)).to eq([
+ group_1.full_path, subgroup.full_path
+ ])
+ end
+ end
end
end
@@ -229,5 +243,17 @@ RSpec.describe Projects::ParticipantsService, feature_category: :groups_and_proj
end
end
end
+
+ context 'when search param is given' do
+ let_it_be(:project) { create(:project, :public) }
+ let_it_be(:member_1) { create(:user, name: 'John Doe').tap { |u| project.add_guest(u) } }
+ let_it_be(:member_2) { create(:user, name: 'Jane Doe ').tap { |u| project.add_guest(u) } }
+
+ let(:service) { described_class.new(project, create(:user), search: 'johnd') }
+
+ it 'only returns matching members' do
+ expect(usernames).to eq([member_1.username])
+ end
+ end
end
end
diff --git a/spec/services/projects/unlink_fork_service_spec.rb b/spec/services/projects/unlink_fork_service_spec.rb
index 2e1a6c03c90..3199614104f 100644
--- a/spec/services/projects/unlink_fork_service_spec.rb
+++ b/spec/services/projects/unlink_fork_service_spec.rb
@@ -70,14 +70,6 @@ RSpec.describe Projects::UnlinkForkService, :use_clean_rails_memory_store_cachin
subject.execute(refresh_statistics: false)
end
- it 'does not refresh project statistics when the feature flag is disabled' do
- stub_feature_flags(refresh_statistics_on_unlink_fork: false)
-
- expect(ProjectCacheWorker).not_to receive(:perform_async)
-
- subject.execute
- end
-
context 'when the original project was deleted' do
it 'does not fail when the original project is deleted' do
source = forked_project.forked_from_project
diff --git a/spec/services/projects/update_statistics_service_spec.rb b/spec/services/projects/update_statistics_service_spec.rb
index 5311b8daeb1..c90da48af8b 100644
--- a/spec/services/projects/update_statistics_service_spec.rb
+++ b/spec/services/projects/update_statistics_service_spec.rb
@@ -17,6 +17,12 @@ RSpec.describe Projects::UpdateStatisticsService, feature_category: :groups_and_
service.execute
end
+
+ it_behaves_like 'does not record an onboarding progress action' do
+ subject do
+ service.execute
+ end
+ end
end
context 'with an existing project' do
@@ -64,5 +70,33 @@ RSpec.describe Projects::UpdateStatisticsService, feature_category: :groups_and_
service.execute
end
end
+
+ context 'with an existing project with project repository' do
+ let_it_be(:project) { create(:project) }
+
+ subject { service.execute }
+
+ context 'when the repository is empty' do
+ it_behaves_like 'does not record an onboarding progress action'
+ end
+
+ context 'when the repository has more than one commit or more than one branch' do
+ where(:commit_count, :branch_count) do
+ 2 | 1
+ 1 | 2
+ 2 | 2
+ end
+
+ with_them do
+ before do
+ allow(project.repository).to receive_messages(commit_count: commit_count, branch_count: branch_count)
+ end
+
+ it_behaves_like 'records an onboarding progress action', :code_added do
+ let(:namespace) { project.namespace }
+ end
+ end
+ end
+ end
end
end
diff --git a/spec/services/push_event_payload_service_spec.rb b/spec/services/push_event_payload_service_spec.rb
index 999b71ff754..ef722fb34e7 100644
--- a/spec/services/push_event_payload_service_spec.rb
+++ b/spec/services/push_event_payload_service_spec.rb
@@ -70,7 +70,7 @@ RSpec.describe PushEventPayloadService, feature_category: :source_code_managemen
describe '#commit_from_id' do
it 'returns nil when creating a new ref' do
- service = described_class.new(event, before: Gitlab::Git::BLANK_SHA)
+ service = described_class.new(event, before: Gitlab::Git::SHA1_BLANK_SHA)
expect(service.commit_from_id).to be_nil
end
@@ -84,7 +84,7 @@ RSpec.describe PushEventPayloadService, feature_category: :source_code_managemen
describe '#commit_to_id' do
it 'returns nil when removing an existing ref' do
- service = described_class.new(event, after: Gitlab::Git::BLANK_SHA)
+ service = described_class.new(event, after: Gitlab::Git::SHA1_BLANK_SHA)
expect(service.commit_to_id).to be_nil
end
@@ -156,7 +156,7 @@ RSpec.describe PushEventPayloadService, feature_category: :source_code_managemen
describe '#create?' do
it 'returns true when creating a new ref' do
- service = described_class.new(event, before: Gitlab::Git::BLANK_SHA)
+ service = described_class.new(event, before: Gitlab::Git::SHA1_BLANK_SHA)
expect(service.create?).to eq(true)
end
@@ -170,7 +170,7 @@ RSpec.describe PushEventPayloadService, feature_category: :source_code_managemen
describe '#remove?' do
it 'returns true when removing an existing ref' do
- service = described_class.new(event, after: Gitlab::Git::BLANK_SHA)
+ service = described_class.new(event, after: Gitlab::Git::SHA1_BLANK_SHA)
expect(service.remove?).to eq(true)
end
@@ -184,13 +184,13 @@ RSpec.describe PushEventPayloadService, feature_category: :source_code_managemen
describe '#action' do
it 'returns :created when creating a ref' do
- service = described_class.new(event, before: Gitlab::Git::BLANK_SHA)
+ service = described_class.new(event, before: Gitlab::Git::SHA1_BLANK_SHA)
expect(service.action).to eq(:created)
end
it 'returns :removed when removing an existing ref' do
- service = described_class.new(event, before: '123', after: Gitlab::Git::BLANK_SHA)
+ service = described_class.new(event, before: '123', after: Gitlab::Git::SHA1_BLANK_SHA)
expect(service.action).to eq(:removed)
end
diff --git a/spec/services/quick_actions/interpret_service_spec.rb b/spec/services/quick_actions/interpret_service_spec.rb
index dc93fd96aee..8de71f2ddf8 100644
--- a/spec/services/quick_actions/interpret_service_spec.rb
+++ b/spec/services/quick_actions/interpret_service_spec.rb
@@ -564,7 +564,7 @@ RSpec.describe QuickActions::InterpretService, feature_category: :team_planning
it 'returns the reaction message' do
_, _, message = service.execute(content, issuable)
- expect(message).to eq('Toggled :100: emoji award.')
+ expect(message).to eq('Toggled :100: emoji reaction.')
end
end
@@ -1911,8 +1911,7 @@ RSpec.describe QuickActions::InterpretService, feature_category: :team_planning
let(:content) { "#{command} :100:" }
let(:issuable) { commit }
- # TODO: https://gitlab.com/gitlab-org/gitlab/-/issues/434446
- it_behaves_like 'failed command', "Could not apply award command."
+ it_behaves_like 'failed command', "Could not apply react command."
end
end
end
@@ -2325,7 +2324,7 @@ RSpec.describe QuickActions::InterpretService, feature_category: :team_planning
end
end
- context 'invite_email command' do
+ describe 'invite_email command' do
let_it_be(:issuable) { issue }
it_behaves_like 'failed command', "No email participants were added. Either none were provided, or they already exist." do
@@ -2455,6 +2454,102 @@ RSpec.describe QuickActions::InterpretService, feature_category: :team_planning
end
end
+ describe 'remove_email command' do
+ let_it_be_with_reload(:issuable) { issue }
+
+ it 'is not part of the available commands' do
+ expect(service.available_commands(issuable)).not_to include(a_hash_including(name: :remove_email))
+ end
+
+ context 'with existing email participant' do
+ let(:content) { '/remove_email user@example.com' }
+
+ subject(:remove_email) { service.execute(content, issuable) }
+
+ before do
+ issuable.issue_email_participants.create!(email: "user@example.com")
+ end
+
+ it 'returns message' do
+ _, _, message = service.execute(content, issuable)
+
+ expect(message).to eq('Removed user@example.com.')
+ end
+
+ it 'removes 1 participant' do
+ expect { remove_email }.to change { issue.issue_email_participants.count }.by(-1)
+ end
+
+ context 'with mixed case email' do
+ let(:content) { '/remove_email FirstLast@GitLab.com' }
+
+ before do
+ issuable.issue_email_participants.create!(email: "FirstLast@GitLab.com")
+ end
+
+ it 'returns correctly cased message' do
+ _, _, message = service.execute(content, issuable)
+
+ expect(message).to eq('Removed FirstLast@GitLab.com.')
+ end
+
+ it 'removes 1 participant' do
+ expect { remove_email }.to change { issue.issue_email_participants.count }.by(-1)
+ end
+ end
+
+ context 'with invalid email' do
+ let(:content) { '/remove_email user@example.com bad_email' }
+
+ it 'only removes valid emails' do
+ expect { remove_email }.to change { issue.issue_email_participants.count }.by(-1)
+ end
+ end
+
+ context 'with non-existing email address' do
+ let(:content) { '/remove_email NonExistent@gitlab.com' }
+
+ it 'returns message' do
+ _, _, message = service.execute(content, issuable)
+
+ expect(message).to eq("No email participants were removed. Either none were provided, or they don't exist.")
+ end
+ end
+
+ context 'with more than the max number of emails' do
+ let(:content) { '/remove_email user@example.com user1@example.com' }
+
+ before do
+ stub_const("IssueEmailParticipants::DestroyService::MAX_NUMBER_OF_EMAILS", 1)
+ # user@example.com has already been added above
+ issuable.issue_email_participants.create!(email: "user1@example.com")
+ end
+
+ it 'only removes the max allowed number of emails' do
+ expect { remove_email }.to change { issue.issue_email_participants.count }.by(-1)
+ end
+ end
+ end
+
+ context 'with non-persisted issue' do
+ let(:issuable) { build(:issue) }
+
+ it 'is not part of the available commands' do
+ expect(service.available_commands(issuable)).not_to include(a_hash_including(name: :remove_email))
+ end
+ end
+
+ context 'with feature flag disabled' do
+ before do
+ stub_feature_flags(issue_email_participants: false)
+ end
+
+ it 'is not part of the available commands' do
+ expect(service.available_commands(issuable)).not_to include(a_hash_including(name: :remove_email))
+ end
+ end
+ end
+
context 'severity command' do
let_it_be_with_reload(:issuable) { create(:incident, project: project) }
@@ -2533,6 +2628,16 @@ RSpec.describe QuickActions::InterpretService, feature_category: :team_planning
end
end
+ context 'when MR is already merged' do
+ before do
+ merge_request.mark_as_merged!
+ end
+
+ it_behaves_like 'approve command unavailable' do
+ let(:issuable) { merge_request }
+ end
+ end
+
it_behaves_like 'approve command unavailable' do
let(:issuable) { issue }
end
@@ -2574,11 +2679,21 @@ RSpec.describe QuickActions::InterpretService, feature_category: :team_planning
expect(merge_request.approved_by_users).to eq([developer])
end
+ end
+
+ context 'when MR is already merged' do
+ before do
+ merge_request.mark_as_merged!
+ end
it_behaves_like 'unapprove command unavailable' do
- let(:issuable) { issue }
+ let(:issuable) { merge_request }
end
end
+
+ it_behaves_like 'unapprove command unavailable' do
+ let(:issuable) { issue }
+ end
end
context 'crm_contact commands' do
@@ -2877,7 +2992,7 @@ RSpec.describe QuickActions::InterpretService, feature_category: :team_planning
it 'includes the emoji' do
_, explanations = service.explain(content, issue)
- expect(explanations).to eq(['Toggles :confetti_ball: emoji award.'])
+ expect(explanations).to eq(['Toggles :confetti_ball: emoji reaction.'])
end
end
@@ -3097,7 +3212,7 @@ RSpec.describe QuickActions::InterpretService, feature_category: :team_planning
it 'keeps quick actions' do
content_result, explanations = service.explain(content, issue, keep_actions: true)
- expect(content_result).to eq("\n/close")
+ expect(content_result).to eq("<p>/close</p>")
expect(explanations).to eq(['Closes this issue.'])
end
diff --git a/spec/services/repositories/changelog_service_spec.rb b/spec/services/repositories/changelog_service_spec.rb
index 1b5300672e3..d77a68288a5 100644
--- a/spec/services/repositories/changelog_service_spec.rb
+++ b/spec/services/repositories/changelog_service_spec.rb
@@ -164,7 +164,7 @@ RSpec.describe Repositories::ChangelogService, feature_category: :source_code_ma
RequestStore.clear!
- expect { request.call(sha3) }.not_to exceed_query_limit(control.count)
+ expect { request.call(sha3) }.not_to exceed_query_limit(control)
end
context 'when one of commits does not exist' do
diff --git a/spec/services/resource_access_tokens/revoke_service_spec.rb b/spec/services/resource_access_tokens/revoke_service_spec.rb
index 060697cd1df..aab22cb2815 100644
--- a/spec/services/resource_access_tokens/revoke_service_spec.rb
+++ b/spec/services/resource_access_tokens/revoke_service_spec.rb
@@ -26,7 +26,7 @@ RSpec.describe ResourceAccessTokens::RevokeService, feature_category: :system_ac
it 'removes membership of bot user' do
subject
- expect(resource.reload.users).not_to include(resource_bot)
+ expect(resource.reload).not_to have_user(resource_bot)
end
it 'initiates user removal' do
@@ -56,7 +56,7 @@ RSpec.describe ResourceAccessTokens::RevokeService, feature_category: :system_ac
it 'does not remove bot from member list' do
subject
- expect(resource.reload.users).to include(resource_bot)
+ expect(resource.reload).to have_user(resource_bot)
end
it 'does not transfer issuables of bot user to ghost user' do
diff --git a/spec/services/routes/rename_descendants_service_spec.rb b/spec/services/routes/rename_descendants_service_spec.rb
new file mode 100644
index 00000000000..72e43ddca26
--- /dev/null
+++ b/spec/services/routes/rename_descendants_service_spec.rb
@@ -0,0 +1,208 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Routes::RenameDescendantsService, feature_category: :groups_and_projects do
+ let_it_be(:parent_group) { create(:group, name: 'old-name', path: 'old-path') }
+ let_it_be(:parent_route) { parent_group.route }
+ let_it_be(:subgroups) { create_list(:group, 4, parent: parent_group) }
+ let_it_be(:subgroup_projects) { subgroups.map { |subgroup| create(:project, group: subgroup) } }
+
+ let(:subgroup_routes) { Route.for_routable(subgroups) }
+ let(:subgroup_projects_routes) { Route.for_routable(subgroup_projects) }
+
+ let(:subgroup_routes_with_old_path) { subgroup_routes.where('path LIKE ?', '%old-path%') }
+ let(:subgroup_projects_routes_with_old_path) { subgroup_projects_routes.where('path LIKE ?', '%old-path%') }
+ let(:subgroup_routes_with_new_path) { subgroup_routes.where('path LIKE ?', '%new-path%') }
+ let(:subgroup_projects_routes_with_new_path) { subgroup_projects_routes.where('path LIKE ?', '%new-path%') }
+
+ let(:subgroup_routes_with_old_name) { subgroup_routes.where('name LIKE ?', '%old-name%') }
+ let(:subgroup_projects_routes_with_old_name) { subgroup_projects_routes.where('name LIKE ?', '%old-name%') }
+ let(:subgroup_routes_with_new_name) { subgroup_routes.where('name LIKE ?', '%new-name%') }
+ let(:subgroup_projects_routes_with_new_name) { subgroup_projects_routes.where('name LIKE ?', '%new-name%') }
+
+ describe '#execute' do
+ shared_examples_for 'descendant paths are updated' do
+ it do
+ expect { execute }.to change {
+ subgroup_routes_with_old_path.size
+ }.from(4).to(0).and change {
+ subgroup_projects_routes_with_old_path.size
+ }.from(4).to(0).and change {
+ subgroup_routes_with_new_path.size
+ }.from(0).to(4).and change {
+ subgroup_projects_routes_with_new_path.size
+ }.from(0).to(4)
+ end
+ end
+
+ shared_examples_for 'descendant paths are not updated' do
+ it do
+ expect { execute }.to change {
+ subgroup_routes_with_old_path.size
+ }.by(0).and change {
+ subgroup_projects_routes_with_old_path.size
+ }.by(0).and change {
+ subgroup_routes_with_new_path.size
+ }.by(0).and change {
+ subgroup_projects_routes_with_new_path.size
+ }.by(0)
+ end
+ end
+
+ shared_examples_for 'descendant names are updated' do
+ it do
+ expect { execute }.to change {
+ subgroup_routes_with_old_name.size
+ }.from(4).to(0).and change {
+ subgroup_projects_routes_with_old_name.size
+ }.from(4).to(0).and change {
+ subgroup_routes_with_new_name.size
+ }.from(0).to(4).and change {
+ subgroup_projects_routes_with_new_name.size
+ }.from(0).to(4)
+ end
+ end
+
+ shared_examples_for 'descendant names are not updated' do
+ it do
+ expect { execute }.to change {
+ subgroup_routes_with_old_name.size
+ }.by(0).and change {
+ subgroup_projects_routes_with_old_name.size
+ }.by(0).and change {
+ subgroup_routes_with_new_name.size
+ }.by(0).and change {
+ subgroup_projects_routes_with_new_name.size
+ }.by(0)
+ end
+ end
+
+ shared_examples_for 'creates redirect_routes for all descendants' do
+ let(:subgroup_redirect_routes) { RedirectRoute.where(source: subgroups) }
+ let(:subgroup_projects_redirect_routes) { RedirectRoute.where(source: subgroup_projects) }
+
+ it do
+ expect { execute }.to change {
+ subgroup_redirect_routes.where('path LIKE ?', '%old-path%').size
+ }.from(0).to(4).and change {
+ subgroup_projects_redirect_routes.where('path LIKE ?', '%old-path%').size
+ }.from(0).to(4)
+ end
+ end
+
+ shared_examples_for 'does not create any redirect_routes' do
+ it do
+ expect { execute }.not_to change { RedirectRoute.count }
+ end
+ end
+
+ subject(:execute) do
+ described_class.new(parent_route).execute(changes)
+ end
+
+ before do
+ parent_route.name = 'new-name'
+ parent_route.path = 'new-path'
+ end
+
+ context 'on updating both name and path' do
+ let!(:changes) do
+ {
+ path: { saved: true, old_value: 'old-path' },
+ name: { saved: true, old_value: 'old-name' }
+ }
+ end
+
+ it_behaves_like 'descendant paths are updated'
+ it_behaves_like 'descendant names are updated'
+ it_behaves_like 'creates redirect_routes for all descendants'
+ end
+
+ context 'on updating only path' do
+ let!(:changes) do
+ {
+ path: { saved: true, old_value: 'old-path' },
+ name: { saved: false, old_value: 'old-name' }
+ }
+ end
+
+ it_behaves_like 'descendant paths are updated'
+ it_behaves_like 'descendant names are not updated'
+ it_behaves_like 'creates redirect_routes for all descendants'
+ end
+
+ context 'on updating only name' do
+ let!(:changes) do
+ {
+ path: { saved: false, old_value: 'old-path' },
+ name: { saved: true, old_value: 'old-name' }
+ }
+ end
+
+ it_behaves_like 'descendant paths are not updated'
+ it_behaves_like 'descendant names are updated'
+ it_behaves_like 'does not create any redirect_routes'
+ end
+
+ context 'on not updating both path and name' do
+ let!(:changes) do
+ {
+ path: { saved: false, old_value: 'old-path' },
+ name: { saved: false, old_value: 'old-name' }
+ }
+ end
+
+ it_behaves_like 'descendant paths are not updated'
+ it_behaves_like 'descendant names are not updated'
+ it_behaves_like 'does not create any redirect_routes'
+ end
+
+ context 'when `changes` are not in the expected format' do
+ let!(:changes) do
+ {
+ not_path: { saved: false, old_value: 'old-path' },
+ name: { saved: true, old_value: 'old-name' }
+ }
+ end
+
+ it 'errors out' do
+ expect { execute }.to raise_error(KeyError)
+ end
+ end
+
+ context 'for batching' do
+ before do
+ stub_const("#{described_class.name}::BATCH_SIZE", 2)
+ end
+
+ let!(:changes) do
+ {
+ path: { saved: true, old_value: 'old-path' },
+ name: { saved: true, old_value: 'old-name' }
+ }
+ end
+
+ it 'bulk updates and bulk inserts records in batches' do
+ query_recorder = ActiveRecord::QueryRecorder.new do
+ execute
+ end
+
+ # There are 8 descendants to this group.
+ # 4 subgroups, and 1 project each in each subgroup == total of 8.
+ # With a batch size of 2, that is
+ # 4 queries to update `routes` and 4 queries to insert `redirect_routes`
+ update_routes_queries = query_recorder.log.grep(
+ /INSERT INTO "routes" .* ON CONFLICT \("id"\) DO UPDATE SET/
+ )
+
+ insert_redirect_routes_queries = query_recorder.log.grep(
+ /INSERT INTO "redirect_routes" .* ON CONFLICT \(lower\(\(path\)::text\) varchar_pattern_ops\) DO NOTHING/
+ )
+
+ expect(update_routes_queries.count).to eq(4)
+ expect(insert_redirect_routes_queries.count).to eq(4)
+ end
+ end
+ end
+end
diff --git a/spec/services/security/merge_reports_service_spec.rb b/spec/services/security/merge_reports_service_spec.rb
index c141bbe5b5a..a65e73bd8ce 100644
--- a/spec/services/security/merge_reports_service_spec.rb
+++ b/spec/services/security/merge_reports_service_spec.rb
@@ -20,7 +20,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
:ci_reports_security_finding,
identifiers: [identifier_1_primary, identifier_1_cve],
scanner: scanner_1,
- severity: :low
+ severity: :low,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94610'
)
end
@@ -29,7 +30,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
:ci_reports_security_finding,
identifiers: [identifier_1_primary, identifier_1_cve],
scanner: scanner_1,
- severity: :low
+ severity: :low,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94611'
)
end
@@ -39,7 +41,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
identifiers: [identifier_2_primary, identifier_2_cve],
location: build(:ci_reports_security_locations_sast, start_line: 32, end_line: 34),
scanner: scanner_2,
- severity: :medium
+ severity: :medium,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94614'
)
end
@@ -49,7 +52,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
identifiers: [identifier_2_primary, identifier_2_cve],
location: build(:ci_reports_security_locations_sast, start_line: 32, end_line: 34),
scanner: scanner_2,
- severity: :medium
+ severity: :medium,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94613'
)
end
@@ -59,7 +63,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
identifiers: [identifier_2_primary, identifier_2_cve],
location: build(:ci_reports_security_locations_sast, start_line: 42, end_line: 44),
scanner: scanner_2,
- severity: :medium
+ severity: :medium,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94612'
)
end
@@ -68,7 +73,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
:ci_reports_security_finding,
identifiers: [identifier_cwe],
scanner: scanner_3,
- severity: :high
+ severity: :high,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94615'
)
end
@@ -77,7 +83,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
:ci_reports_security_finding,
identifiers: [identifier_cwe],
scanner: scanner_1,
- severity: :critical
+ severity: :critical,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94616'
)
end
@@ -86,7 +93,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
:ci_reports_security_finding,
identifiers: [identifier_wasc],
scanner: scanner_1,
- severity: :medium
+ severity: :medium,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94617'
)
end
@@ -95,7 +103,8 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
:ci_reports_security_finding,
identifiers: [identifier_wasc],
scanner: scanner_2,
- severity: :critical
+ severity: :critical,
+ uuid: '61eb8e3e-3be1-4d6c-ba26-4e0dd4f94618'
)
end
@@ -226,9 +235,32 @@ RSpec.describe Security::MergeReportsService, '#execute', feature_category: :cod
let(:identifier_cve) { build(:ci_reports_security_identifier, external_id: 'CVE-2019-123', external_type: 'cve') }
let(:identifier_semgrep) { build(:ci_reports_security_identifier, external_id: 'rules.bandit.B105', external_type: 'semgrep_id') }
- let(:finding_id_1) { build(:ci_reports_security_finding, identifiers: [identifier_bandit, identifier_cve], scanner: bandit_scanner, report_type: :sast) }
- let(:finding_id_2) { build(:ci_reports_security_finding, identifiers: [identifier_cve], scanner: semgrep_scanner, report_type: :sast) }
- let(:finding_id_3) { build(:ci_reports_security_finding, identifiers: [identifier_semgrep], scanner: semgrep_scanner, report_type: :sast) }
+ let(:finding_id_1) do
+ build(
+ :ci_reports_security_finding,
+ identifiers: [identifier_bandit, identifier_cve],
+ scanner: bandit_scanner,
+ report_type: :sast,
+ uuid: '21ab978a-7052-5428-af0b-c7a4b3fe5020')
+ end
+
+ let(:finding_id_2) do
+ build(
+ :ci_reports_security_finding,
+ identifiers: [identifier_cve],
+ scanner: semgrep_scanner,
+ report_type: :sast,
+ uuid: '21ab978a-7052-5428-af0b-c7a4b3fe5021')
+ end
+
+ let(:finding_id_3) do
+ build(
+ :ci_reports_security_finding,
+ identifiers: [identifier_semgrep],
+ scanner: semgrep_scanner,
+ report_type: :sast,
+ uuid: '21ab978a-7052-5428-af0b-c7a4b3fe5022')
+ end
let(:bandit_report) do
build(:ci_reports_security_report,
diff --git a/spec/services/spam/spam_verdict_service_spec.rb b/spec/services/spam/spam_verdict_service_spec.rb
index 361742699b0..8669bca90bd 100644
--- a/spec/services/spam/spam_verdict_service_spec.rb
+++ b/spec/services/spam/spam_verdict_service_spec.rb
@@ -263,11 +263,10 @@ RSpec.describe Spam::SpamVerdictService, feature_category: :instance_resiliency
end
context 'if the endpoint is accessible' do
- let(:user_scores) { Abuse::UserTrustScore.new(user) }
-
before do
allow(service).to receive(:spamcheck_client).and_return(spam_client)
allow(spam_client).to receive(:spam?).and_return(spam_client_result)
+ allow(Labkit::Correlation::CorrelationId).to receive(:current_id).and_return('cid')
end
context 'if the result is a NOOP verdict' do
@@ -275,8 +274,8 @@ RSpec.describe Spam::SpamVerdictService, feature_category: :instance_resiliency
let(:verdict_value) { ::Spamcheck::SpamVerdict::Verdict::NOOP }
it 'returns the verdict' do
+ expect(Abuse::TrustScoreWorker).not_to receive(:perform_async)
is_expected.to eq(NOOP)
- expect(user_scores.spam_score).to eq(0.0)
end
end
@@ -286,8 +285,8 @@ RSpec.describe Spam::SpamVerdictService, feature_category: :instance_resiliency
context 'the result was evaluated' do
it 'returns the verdict and updates the spam score' do
+ expect(Abuse::TrustScoreWorker).to receive(:perform_async).once.with(user.id, :spamcheck, instance_of(Float), 'cid')
is_expected.to eq(ALLOW)
- expect(user_scores.spam_score).to be_within(0.000001).of(verdict_score)
end
end
@@ -295,8 +294,8 @@ RSpec.describe Spam::SpamVerdictService, feature_category: :instance_resiliency
let(:verdict_evaluated) { false }
it 'returns the verdict and does not update the spam score' do
+ expect(Abuse::TrustScoreWorker).not_to receive(:perform_async)
expect(subject).to eq(ALLOW)
- expect(user_scores.spam_score).to eq(0.0)
end
end
end
@@ -317,8 +316,8 @@ RSpec.describe Spam::SpamVerdictService, feature_category: :instance_resiliency
with_them do
it "returns expected spam constant and updates the spam score" do
+ expect(Abuse::TrustScoreWorker).to receive(:perform_async).once.with(user.id, :spamcheck, instance_of(Float), 'cid')
is_expected.to eq(expected)
- expect(user_scores.spam_score).to be_within(0.000001).of(verdict_score)
end
end
end
diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb
index 1eb11c80264..2e5545b610a 100644
--- a/spec/services/system_note_service_spec.rb
+++ b/spec/services/system_note_service_spec.rb
@@ -77,6 +77,18 @@ RSpec.describe SystemNoteService, feature_category: :shared do
end
end
+ describe '.request_review' do
+ let(:reviewer) { double }
+
+ it 'calls IssuableService' do
+ expect_next_instance_of(::SystemNotes::IssuablesService) do |service|
+ expect(service).to receive(:request_review).with(reviewer)
+ end
+
+ described_class.request_review(noteable, project, author, reviewer)
+ end
+ end
+
describe '.change_issuable_contacts' do
let(:added_count) { 5 }
let(:removed_count) { 3 }
@@ -515,6 +527,18 @@ RSpec.describe SystemNoteService, feature_category: :shared do
end
end
+ describe '.email_participants' do
+ let(:body) { 'added user@example.com' }
+
+ it 'calls IssuableService' do
+ expect_next_instance_of(::SystemNotes::IssuablesService) do |service|
+ expect(service).to receive(:email_participants).with(body)
+ end
+
+ described_class.email_participants(noteable, project, author, body)
+ end
+ end
+
describe '.discussion_lock' do
let(:issuable) { double }
diff --git a/spec/services/system_notes/issuables_service_spec.rb b/spec/services/system_notes/issuables_service_spec.rb
index 0ba20ee5be1..2b48b24b2b4 100644
--- a/spec/services/system_notes/issuables_service_spec.rb
+++ b/spec/services/system_notes/issuables_service_spec.rb
@@ -213,6 +213,21 @@ RSpec.describe ::SystemNotes::IssuablesService, feature_category: :team_planning
end
end
+ describe '#request_review' do
+ subject(:request_review) { service.request_review(reviewer) }
+
+ let_it_be(:reviewer) { create(:user) }
+ let_it_be(:noteable) { create(:merge_request, :simple, source_project: project, reviewers: [reviewer]) }
+
+ it_behaves_like 'a system note' do
+ let(:action) { 'reviewer' }
+ end
+
+ it 'builds a correct phrase when a reviewer has been requested from a reviewer' do
+ expect(request_review.note).to eq "requested review from #{reviewer.to_reference}"
+ end
+ end
+
describe '#change_issuable_contacts' do
subject { service.change_issuable_contacts(1, 1) }
@@ -770,6 +785,14 @@ RSpec.describe ::SystemNotes::IssuablesService, feature_category: :team_planning
end
end
+ describe '#email_participants' do
+ let(:body) { "added user@example.com" }
+
+ subject(:system_note) { service.email_participants(body) }
+
+ it { expect(system_note.note).to eq(body) }
+ end
+
describe '#discussion_lock' do
subject { service.discussion_lock }
diff --git a/spec/services/system_notes/time_tracking_service_spec.rb b/spec/services/system_notes/time_tracking_service_spec.rb
index cf994220946..6502aa5d2a2 100644
--- a/spec/services/system_notes/time_tracking_service_spec.rb
+++ b/spec/services/system_notes/time_tracking_service_spec.rb
@@ -198,11 +198,13 @@ RSpec.describe ::SystemNotes::TimeTrackingService, feature_category: :team_plann
let(:action) { 'time_tracking' }
end
- context 'with a time estimate' do
- it 'sets the note text' do
+ context 'when adding a time estimate' do
+ before do
noteable.update_attribute(:time_estimate, 277200)
+ end
- expect(subject.note).to eq "changed time estimate to 1w 4d 5h"
+ it 'sets the note text' do
+ expect(subject.note).to eq "added time estimate of 1w 4d 5h"
end
context 'when time_tracking_limit_to_hours setting is true' do
@@ -211,16 +213,32 @@ RSpec.describe ::SystemNotes::TimeTrackingService, feature_category: :team_plann
end
it 'sets the note text' do
- noteable.update_attribute(:time_estimate, 277200)
-
- expect(subject.note).to eq "changed time estimate to 77h"
+ expect(subject.note).to eq "added time estimate of 77h"
end
end
end
- context 'without a time estimate' do
+ context 'when removing a time estimate' do
+ before do
+ noteable.update_attribute(:time_estimate, 277200)
+ noteable.save!
+ noteable.update_attribute(:time_estimate, 0)
+ end
+
+ it 'sets the note text' do
+ expect(subject.note).to eq "removed time estimate of 1w 4d 5h"
+ end
+ end
+
+ context 'when changing a time estimate' do
+ before do
+ noteable.update_attribute(:time_estimate, 277200)
+ noteable.save!
+ noteable.update_attribute(:time_estimate, 3600)
+ end
+
it 'sets the note text' do
- expect(subject.note).to eq "removed time estimate"
+ expect(subject.note).to eq "changed time estimate to 1h from 1w 4d 5h"
end
end
diff --git a/spec/services/todo_service_spec.rb b/spec/services/todo_service_spec.rb
index 0b4cf9e53db..df00859fd52 100644
--- a/spec/services/todo_service_spec.rb
+++ b/spec/services/todo_service_spec.rb
@@ -675,6 +675,8 @@ RSpec.describe TodoService, feature_category: :team_planning do
service.mark_todo(unassigned_issue, author)
should_create_todo(user: author, target: unassigned_issue, action: Todo::MARKED)
+ expect(Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter)
+ .not_to receive(:track_work_item_todo_marked_action)
end
context 'when issue belongs to a group' do
@@ -690,6 +692,8 @@ RSpec.describe TodoService, feature_category: :team_planning do
project: nil,
group: group
)
+ expect(Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter)
+ .not_to receive(:track_work_item_todo_marked_action)
end
end
end
@@ -748,10 +752,13 @@ RSpec.describe TodoService, feature_category: :team_planning do
end
describe 'Work Items' do
- let_it_be(:work_item) { create(:work_item, :task, project: project, author: author) }
+ let(:work_item) { create(:work_item, :objective, project: project, author: author) }
+ let(:activity_counter_class) { Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter }
describe '#mark_todo' do
it 'creates a todo from a work item' do
+ expect(activity_counter_class).to receive(:track_work_item_mark_todo_action).with(author: author)
+
service.mark_todo(work_item, author)
should_create_todo(user: author, target: work_item, action: Todo::MARKED)
@@ -760,6 +767,9 @@ RSpec.describe TodoService, feature_category: :team_planning do
context 'when work item belongs to a group' do
it 'creates a todo from a work item' do
group_work_item = create(:work_item, :group_level, namespace: group)
+
+ expect(activity_counter_class).to receive(:track_work_item_mark_todo_action).with(author: group_work_item.author)
+
service.mark_todo(group_work_item, group_work_item.author)
should_create_todo(
@@ -1120,6 +1130,8 @@ RSpec.describe TodoService, feature_category: :team_planning do
service.mark_todo(unassigned_mr, author)
should_create_todo(user: author, target: unassigned_mr, action: Todo::MARKED)
+ expect(Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter)
+ .not_to receive(:track_work_item_todo_marked_action)
end
end
@@ -1264,9 +1276,9 @@ RSpec.describe TodoService, feature_category: :team_planning do
# Excluding queries for user permissions because those do execute N+1 queries
allow_any_instance_of(User).to receive(:can?).and_return(true)
- control_count = ActiveRecord::QueryRecorder.new { service.update_note(note_mentioning_1_user, author, skip_users) }.count
+ control = ActiveRecord::QueryRecorder.new { service.update_note(note_mentioning_1_user, author, skip_users) }
- expect { service.update_note(note_mentioning_3_users, author, skip_users) }.not_to exceed_query_limit(control_count)
+ expect { service.update_note(note_mentioning_3_users, author, skip_users) }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/services/todos/destroy/destroyed_issuable_service_spec.rb b/spec/services/todos/destroy/destroyed_issuable_service_spec.rb
index 63ff189ede5..cccf1a2cfa8 100644
--- a/spec/services/todos/destroy/destroyed_issuable_service_spec.rb
+++ b/spec/services/todos/destroy/destroyed_issuable_service_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe Todos::Destroy::DestroyedIssuableService, feature_category: :team
let_it_be(:done_todo) { create(:todo, :done, project: target.project, target: target, user: user) }
it 'deletes todos for specified target ID and type' do
- control_count = ActiveRecord::QueryRecorder.new { subject }.count
+ control = ActiveRecord::QueryRecorder.new { subject }
# Create more todos for the target
create(:todo, :pending, project: target.project, target: target, user: user)
@@ -22,7 +22,7 @@ RSpec.describe Todos::Destroy::DestroyedIssuableService, feature_category: :team
create(:todo, :done, project: target.project, target: target, user: user)
create(:todo, :done, project: target.project, target: target, user: user)
- expect { subject }.not_to exceed_query_limit(control_count)
+ expect { subject }.not_to exceed_query_limit(control)
end
it 'invalidates todos cache counts of todo users', :use_clean_rails_redis_caching do
diff --git a/spec/services/user_project_access_changed_service_spec.rb b/spec/services/user_project_access_changed_service_spec.rb
index a50bd3ee2f1..8236d892072 100644
--- a/spec/services/user_project_access_changed_service_spec.rb
+++ b/spec/services/user_project_access_changed_service_spec.rb
@@ -77,7 +77,7 @@ RSpec.describe UserProjectAccessChangedService, feature_category: :system_access
it 'avoids N+1 cached queries', :use_sql_query_cache, :request_store do
# Run this once to establish a baseline
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
service.execute
end
@@ -87,7 +87,7 @@ RSpec.describe UserProjectAccessChangedService, feature_category: :system_access
.with([[1], [2], [3], [4], [5]])
.and_return(10)
- expect { service.execute }.not_to exceed_all_query_limit(control_count.count)
+ expect { service.execute }.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/services/users/migrate_records_to_ghost_user_service_spec.rb b/spec/services/users/migrate_records_to_ghost_user_service_spec.rb
index 57378c07dd7..522b793036b 100644
--- a/spec/services/users/migrate_records_to_ghost_user_service_spec.rb
+++ b/spec/services/users/migrate_records_to_ghost_user_service_spec.rb
@@ -150,6 +150,16 @@ RSpec.describe Users::MigrateRecordsToGhostUserService, feature_category: :user_
let(:created_record) { create(:user_achievement, awarded_by_user: user, revoked_by_user: user) }
end
end
+
+ context 'when user is a bot user and has associated access tokens' do
+ let_it_be(:user) { create(:user, :project_bot) }
+ let_it_be(:token) { create(:personal_access_token, user: user) }
+
+ it "deletes the access token" do
+ service.execute
+ expect(PersonalAccessToken.find_by(id: token.id)).to eq nil
+ end
+ end
end
context 'on post-migrate cleanups' do
diff --git a/spec/services/users/update_todo_count_cache_service_spec.rb b/spec/services/users/update_todo_count_cache_service_spec.rb
index eec637cf5b4..d69a4ba99b7 100644
--- a/spec/services/users/update_todo_count_cache_service_spec.rb
+++ b/spec/services/users/update_todo_count_cache_service_spec.rb
@@ -44,9 +44,9 @@ RSpec.describe Users::UpdateTodoCountCacheService, feature_category: :team_plann
end
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new { execute_single }.count
+ control = ActiveRecord::QueryRecorder.new { execute_single }
- expect { execute_all }.not_to exceed_query_limit(control_count)
+ expect { execute_all }.not_to exceed_query_limit(control)
end
it 'executes one query per batch of users' do
diff --git a/spec/services/work_items/widgets/assignees_service/update_service_spec.rb b/spec/services/work_items/callbacks/assignees_spec.rb
index 66e30e2f882..e6f57c54104 100644
--- a/spec/services/work_items/widgets/assignees_service/update_service_spec.rb
+++ b/spec/services/work_items/callbacks/assignees_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time, feature_category: :portfolio_management do
+RSpec.describe WorkItems::Callbacks::Assignees, :freeze_time, feature_category: :portfolio_management do
let_it_be(:reporter) { create(:user) }
let_it_be(:project) { create(:project, :private) }
let_it_be(:new_assignee) { create(:user) }
@@ -11,7 +11,6 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
create(:work_item, project: project, updated_at: 1.day.ago)
end
- let(:widget) { work_item.widgets.find { |widget| widget.is_a?(WorkItems::Widgets::Assignees) } }
let(:current_user) { reporter }
let(:params) { { assignee_ids: [new_assignee.id] } }
@@ -20,13 +19,13 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
project.add_guest(new_assignee)
end
- describe '#before_update_in_transaction' do
- let(:service) { described_class.new(widget: widget, current_user: current_user) }
+ describe '#before_update' do
+ let(:service) { described_class.new(issuable: work_item, current_user: current_user, params: params) }
- subject { service.before_update_in_transaction(params: params) }
+ subject(:before_update_callback) { service.before_update }
it 'updates the assignees and sets updated_at to the current time' do
- subject
+ before_update_callback
expect(work_item.assignee_ids).to contain_exactly(new_assignee.id)
expect(work_item.updated_at).to be_like_time(Time.current)
@@ -40,7 +39,7 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
end
it 'removes existing assignees' do
- subject
+ before_update_callback
expect(work_item.assignee_ids).to be_empty
expect(work_item.updated_at).to be_like_time(Time.current)
@@ -51,7 +50,7 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
let(:current_user) { create(:user) }
it 'does not update the assignees' do
- subject
+ before_update_callback
expect(work_item.assignee_ids).to be_empty
expect(work_item.updated_at).to be_like_time(1.day.ago)
@@ -67,7 +66,7 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
end
it 'sets all the given assignees' do
- subject
+ before_update_callback
expect(work_item.assignee_ids).to contain_exactly(new_assignee.id, reporter.id)
expect(work_item.updated_at).to be_like_time(Time.current)
@@ -80,7 +79,7 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
end
it 'only sets the first assignee' do
- subject
+ before_update_callback
expect(work_item.assignee_ids).to contain_exactly(new_assignee.id)
expect(work_item.updated_at).to be_like_time(Time.current)
@@ -92,7 +91,7 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
let(:params) { { assignee_ids: [create(:user).id] } }
it 'does not set the assignee' do
- subject
+ before_update_callback
expect(work_item.assignee_ids).to be_empty
expect(work_item.updated_at).to be_like_time(1.day.ago)
@@ -105,7 +104,7 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
end
it 'does not touch updated_at' do
- subject
+ before_update_callback
expect(work_item.assignee_ids).to contain_exactly(new_assignee.id)
expect(work_item.updated_at).to be_like_time(1.day.ago)
@@ -116,12 +115,12 @@ RSpec.describe WorkItems::Widgets::AssigneesService::UpdateService, :freeze_time
let(:params) { {} }
before do
- allow(service).to receive(:new_type_excludes_widget?).and_return(true)
+ allow(service).to receive(:excluded_in_new_type?).and_return(true)
work_item.assignee_ids = [new_assignee.id]
end
it "resets the work item's assignees" do
- subject
+ before_update_callback
expect(work_item.assignee_ids).to be_empty
end
diff --git a/spec/services/work_items/widgets/current_user_todos_service/update_service_spec.rb b/spec/services/work_items/callbacks/current_user_todos_spec.rb
index aa7257e9e62..0f16687e620 100644
--- a/spec/services/work_items/widgets/current_user_todos_service/update_service_spec.rb
+++ b/spec/services/work_items/callbacks/current_user_todos_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe WorkItems::Widgets::CurrentUserTodosService::UpdateService, feature_category: :team_planning do
+RSpec.describe WorkItems::Callbacks::CurrentUserTodos, feature_category: :team_planning do
let_it_be(:reporter) { create(:user) }
let_it_be(:project) { create(:project, :private) }
let_it_be(:current_user) { reporter }
@@ -25,16 +25,16 @@ RSpec.describe WorkItems::Widgets::CurrentUserTodosService::UpdateService, featu
create(:todo, state: :pending, target: work_item, target_type: work_item.class.name, user: create(:user))
end
- let(:widget) { work_item.widgets.find { |widget| widget.is_a?(WorkItems::Widgets::CurrentUserTodos) } }
+ let(:widget) { work_item.widgets.find { |widget| widget.is_a?(WorkItems::Callbacks::CurrentUserTodos) } }
before_all do
project.add_reporter(reporter)
end
describe '#before_update_in_transaction' do
- subject do
- described_class.new(widget: widget, current_user: current_user)
- .before_update_in_transaction(params: params)
+ subject(:service) do
+ described_class.new(issuable: work_item, current_user: current_user, params: params)
+ .before_update
end
context 'when adding a todo' do
@@ -44,7 +44,7 @@ RSpec.describe WorkItems::Widgets::CurrentUserTodosService::UpdateService, featu
let(:current_user) { create(:user) }
it 'does add a todo' do
- expect { subject }.not_to change { Todo.count }
+ expect { service }.not_to change { Todo.count }
end
end
@@ -52,7 +52,7 @@ RSpec.describe WorkItems::Widgets::CurrentUserTodosService::UpdateService, featu
let(:params) { { action: "add" } }
it 'creates a new todo for the user and the work item' do
- expect { subject }.to change { current_user.todos.count }.by(1)
+ expect { service }.to change { current_user.todos.count }.by(1)
todo = current_user.todos.last
@@ -69,7 +69,7 @@ RSpec.describe WorkItems::Widgets::CurrentUserTodosService::UpdateService, featu
let(:current_user) { create(:user) }
it 'does not change todo status' do
- subject
+ service
expect(pending_todo1.reload).to be_pending
expect(pending_todo2.reload).to be_pending
@@ -80,7 +80,7 @@ RSpec.describe WorkItems::Widgets::CurrentUserTodosService::UpdateService, featu
context 'when resolving all todos of the work item', :aggregate_failures do
it 'resolves todos of the user for the work item' do
- subject
+ service
expect(pending_todo1.reload).to be_done
expect(pending_todo2.reload).to be_done
@@ -93,7 +93,7 @@ RSpec.describe WorkItems::Widgets::CurrentUserTodosService::UpdateService, featu
let(:params) { { action: "mark_as_done", todo_id: pending_todo1.id } }
it 'resolves todos of the user for the work item' do
- subject
+ service
expect(pending_todo1.reload).to be_done
expect(pending_todo2.reload).to be_pending
diff --git a/spec/services/work_items/widgets/description_service/update_service_spec.rb b/spec/services/work_items/callbacks/description_spec.rb
index 84704d3e002..27413c9ab14 100644
--- a/spec/services/work_items/widgets/description_service/update_service_spec.rb
+++ b/spec/services/work_items/callbacks/description_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe WorkItems::Widgets::DescriptionService::UpdateService, feature_category: :portfolio_management do
+RSpec.describe WorkItems::Callbacks::Description, feature_category: :portfolio_management do
let_it_be(:random_user) { create(:user) }
let_it_be(:author) { create(:user) }
let_it_be(:guest) { create(:user) }
@@ -22,12 +22,10 @@ RSpec.describe WorkItems::Widgets::DescriptionService::UpdateService, feature_ca
)
end
- let(:widget) { work_item.widgets.find { |widget| widget.is_a?(WorkItems::Widgets::Description) } }
-
describe '#update' do
- let(:service) { described_class.new(widget: widget, current_user: current_user) }
+ let(:service) { described_class.new(issuable: work_item, current_user: current_user, params: params) }
- subject(:before_update_callback) { service.before_update_callback(params: params) }
+ subject(:before_update_callback) { service.before_update }
shared_examples 'sets work item description' do
it 'correctly sets work item description value' do
@@ -59,7 +57,7 @@ RSpec.describe WorkItems::Widgets::DescriptionService::UpdateService, feature_ca
context 'when user is a project reporter' do
let(:current_user) { reporter }
- before do
+ before_all do
project.add_reporter(reporter)
end
@@ -91,7 +89,7 @@ RSpec.describe WorkItems::Widgets::DescriptionService::UpdateService, feature_ca
let(:params) { {} }
before do
- allow(service).to receive(:new_type_excludes_widget?).and_return(true)
+ allow(service).to receive(:excluded_in_new_type?).and_return(true)
work_item.update!(description: 'test')
end
@@ -108,7 +106,7 @@ RSpec.describe WorkItems::Widgets::DescriptionService::UpdateService, feature_ca
context 'when user is a project guest' do
let(:current_user) { guest }
- before do
+ before_all do
project.add_guest(guest)
end
diff --git a/spec/services/work_items/widgets/notifications_service/update_service_spec.rb b/spec/services/work_items/callbacks/notifications_spec.rb
index 9615020fe49..2d11dc46fcb 100644
--- a/spec/services/work_items/widgets/notifications_service/update_service_spec.rb
+++ b/spec/services/work_items/callbacks/notifications_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe WorkItems::Widgets::NotificationsService::UpdateService, feature_category: :team_planning do
+RSpec.describe WorkItems::Callbacks::Notifications, feature_category: :team_planning do
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, :private, group: group) }
let_it_be(:guest) { create(:user).tap { |u| project.add_guest(u) } }
@@ -10,13 +10,13 @@ RSpec.describe WorkItems::Widgets::NotificationsService::UpdateService, feature_
let_it_be_with_reload(:work_item) { create(:work_item, project: project, author: author) }
let_it_be(:current_user) { guest }
- let(:widget) { work_item.widgets.find { |widget| widget.is_a?(WorkItems::Widgets::Notifications) } }
- let(:service) { described_class.new(widget: widget, current_user: current_user) }
+ let(:widget) { work_item.widgets.find { |widget| widget.is_a?(WorkItems::Callbacks::Notifications) } }
+ let(:service) { described_class.new(issuable: work_item, current_user: current_user, params: params) }
describe '#before_update_in_transaction' do
let(:expected) { params[:subscribed] }
- subject(:update_notifications) { service.before_update_in_transaction(params: params) }
+ subject(:update_notifications) { service.before_update }
shared_examples 'failing to update subscription' do
context 'when user is subscribed with a subscription record' do
diff --git a/spec/services/work_items/widgets/start_and_due_date_service/update_service_spec.rb b/spec/services/work_items/callbacks/start_and_due_date_spec.rb
index f9708afd313..b26a33976fa 100644
--- a/spec/services/work_items/widgets/start_and_due_date_service/update_service_spec.rb
+++ b/spec/services/work_items/callbacks/start_and_due_date_spec.rb
@@ -2,19 +2,19 @@
require 'spec_helper'
-RSpec.describe WorkItems::Widgets::StartAndDueDateService::UpdateService, feature_category: :portfolio_management do
+RSpec.describe WorkItems::Callbacks::StartAndDueDate, feature_category: :portfolio_management do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user).tap { |user| project.add_reporter(user) } }
let_it_be_with_reload(:work_item) { create(:work_item, project: project) }
- let(:widget) { work_item.widgets.find { |widget| widget.is_a?(WorkItems::Widgets::StartAndDueDate) } }
+ let(:widget) { work_item.widgets.find { |widget| widget.is_a?(WorkItems::Callbacks::StartAndDueDate) } }
describe '#before_update_callback' do
let(:start_date) { Date.today }
let(:due_date) { 1.week.from_now.to_date }
- let(:service) { described_class.new(widget: widget, current_user: user) }
+ let(:service) { described_class.new(issuable: work_item, current_user: user, params: params) }
- subject(:update_params) { service.before_update_callback(params: params) }
+ subject(:update_params) { service.before_update }
context 'when start and due date params are present' do
let(:params) { { start_date: Date.today, due_date: 1.week.from_now.to_date } }
@@ -22,8 +22,8 @@ RSpec.describe WorkItems::Widgets::StartAndDueDateService::UpdateService, featur
it 'correctly sets date values' do
expect do
update_params
- end.to change(work_item, :start_date).from(nil).to(start_date).and(
- change(work_item, :due_date).from(nil).to(due_date)
+ end.to change { work_item.start_date }.from(nil).to(start_date).and(
+ change { work_item.due_date }.from(nil).to(due_date)
)
end
@@ -59,7 +59,7 @@ RSpec.describe WorkItems::Widgets::StartAndDueDateService::UpdateService, featur
it 'sets only one date to null' do
expect do
update_params
- end.to change(work_item, :start_date).from(start_date).to(nil).and(
+ end.to change { work_item.start_date }.from(start_date).to(nil).and(
not_change(work_item, :due_date).from(due_date)
)
end
@@ -70,15 +70,15 @@ RSpec.describe WorkItems::Widgets::StartAndDueDateService::UpdateService, featur
let(:params) { {} }
before do
- allow(service).to receive(:new_type_excludes_widget?).and_return(true)
+ allow(service).to receive(:excluded_in_new_type?).and_return(true)
work_item.update!(start_date: start_date, due_date: due_date)
end
it 'sets both dates to null' do
expect do
update_params
- end.to change(work_item, :start_date).from(start_date).to(nil).and(
- change(work_item, :due_date).from(due_date).to(nil)
+ end.to change { work_item.start_date }.from(start_date).to(nil).and(
+ change { work_item.due_date }.from(due_date).to(nil)
)
end
end
diff --git a/spec/services/work_items/update_service_spec.rb b/spec/services/work_items/update_service_spec.rb
index 557617f61bb..591dc1c1034 100644
--- a/spec/services/work_items/update_service_spec.rb
+++ b/spec/services/work_items/update_service_spec.rb
@@ -191,14 +191,14 @@ RSpec.describe WorkItems::UpdateService, feature_category: :team_planning do
let(:supported_widgets) do
[
- { klass: WorkItems::Widgets::DescriptionService::UpdateService, callback: :before_update_callback, params: { description: 'foo' } },
+ { klass: WorkItems::Callbacks::Description, callback: :before_update },
{ klass: WorkItems::Widgets::HierarchyService::UpdateService, callback: :before_update_in_transaction, params: { parent: parent } }
]
end
end
context 'when updating widgets' do
- let(:widget_service_class) { WorkItems::Widgets::DescriptionService::UpdateService }
+ let(:widget_service_class) { WorkItems::Callbacks::Description }
let(:widget_params) { { description_widget: { description: 'changed' } } }
context 'when widget service is not present' do
@@ -215,8 +215,8 @@ RSpec.describe WorkItems::UpdateService, feature_category: :team_planning do
before do
allow_next_instance_of(widget_service_class) do |instance|
allow(instance)
- .to receive(:before_update_callback)
- .with(params: { description: 'changed' }).and_return(nil)
+ .to receive(:before_update)
+ .and_return(nil)
end
end
@@ -269,7 +269,10 @@ RSpec.describe WorkItems::UpdateService, feature_category: :team_planning do
expect(service).to receive(:update).and_call_original
expect(service).not_to receive(:execute_widgets).with(callback: :update, widget_params: widget_params)
- expect { update_work_item }.not_to change(work_item, :description)
+ expect do
+ update_work_item
+ work_item.reload
+ end.not_to change(work_item, :description)
end
end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 7317b512ae4..3dfc27b8511 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -203,6 +203,8 @@ RSpec.configure do |config|
config.include PendingDirectUploadHelpers, :direct_uploads
config.include LabelsHelper, type: :feature
config.include UnlockPipelinesHelpers, :unlock_pipelines
+ config.include UserWithNamespaceShim
+ config.include OrphanFinalArtifactsCleanupHelpers, :orphan_final_artifacts_cleanup
config.include_context 'when rendered has no HTML escapes', type: :view
@@ -320,9 +322,6 @@ RSpec.configure do |config|
# Postgres is the primary data source, and ClickHouse only when enabled in certain cases.
stub_feature_flags(clickhouse_data_collection: false)
-
- # This is going to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/431041
- stub_feature_flags(vite: false)
else
unstub_all_feature_flags
end
@@ -423,7 +422,7 @@ RSpec.configure do |config|
config.after do
Fog.unmock! if Fog.mock?
- Gitlab::CurrentSettings.clear_in_memory_application_settings!
+ Gitlab::ApplicationSettingFetcher.clear_in_memory_application_settings!
# Reset all feature flag stubs to default for testing
stub_all_feature_flags
diff --git a/spec/support/before_all_adapter.rb b/spec/support/before_all_adapter.rb
deleted file mode 100644
index 35846fcecb8..00000000000
--- a/spec/support/before_all_adapter.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-# frozen_string_literal: true
-
-module TestProfBeforeAllAdapter
- module MultipleDatabaseAdapter
- def self.all_connection_classes
- @all_connection_classes ||= [ActiveRecord::Base] + ActiveRecord::Base.descendants.select(&:connection_class?) # rubocop: disable Database/MultipleDatabases
- end
-
- def self.begin_transaction
- self.all_connection_classes.each do |connection_class|
- connection_class.connection.begin_transaction(joinable: false)
- end
- end
-
- def self.rollback_transaction
- self.all_connection_classes.each do |connection_class|
- if connection_class.connection.open_transactions.zero?
- warn "!!! before_all transaction has been already rollbacked and " \
- "could work incorrectly"
- next
- end
-
- connection_class.connection.rollback_transaction
- end
- end
- end
-
- def self.default_adapter
- MultipleDatabaseAdapter
- end
-end
-
-TestProf::BeforeAll.adapter = ::TestProfBeforeAllAdapter.default_adapter
diff --git a/spec/support/database/prevent_cross_database_modification.rb b/spec/support/database/prevent_cross_database_modification.rb
index 02572d011f7..948bc21dafa 100644
--- a/spec/support/database/prevent_cross_database_modification.rb
+++ b/spec/support/database/prevent_cross_database_modification.rb
@@ -68,4 +68,11 @@ RSpec.configure do |config|
::ApplicationRecord.gitlab_transactions_stack.clear
end
+
+ config.before(:suite) do
+ ActiveSupport::Notifications.subscribe("factory_bot.run_factory") do |_name, _start, _finish, _id, payload|
+ strategy = payload[:strategy]
+ Thread.current[:factory_bot_objects] -= 1 if strategy == :create
+ end
+ end
end
diff --git a/spec/support/db_cleaner.rb b/spec/support/db_cleaner.rb
index 0a1d68a744c..b6539d6215b 100644
--- a/spec/support/db_cleaner.rb
+++ b/spec/support/db_cleaner.rb
@@ -2,7 +2,7 @@
module DbCleaner
def all_connection_classes
- ::TestProfBeforeAllAdapter::MultipleDatabaseAdapter.all_connection_classes
+ ::TestProf::BeforeAll::Adapters::ActiveRecord.all_connections.map(&:connection_class).uniq
end
def delete_from_all_tables!(except: [])
diff --git a/spec/support/factory_bot.rb b/spec/support/factory_bot.rb
index d30098a5cc0..00aa54990ef 100644
--- a/spec/support/factory_bot.rb
+++ b/spec/support/factory_bot.rb
@@ -4,13 +4,14 @@ FactoryBot.define do
after(:build) do |object, _|
next unless object.respond_to?(:factory_bot_built=)
+ # This will help the PreventCrossDatabaseModification to temporarily
+ # allow the object table when it's saved later.
object.factory_bot_built = true
end
- before(:create) do |object, _|
- next unless object.respond_to?(:factory_bot_built=)
-
- object.factory_bot_built = false
+ before(:create) do |_object, _|
+ Thread.current[:factory_bot_objects] ||= 0
+ Thread.current[:factory_bot_objects] += 1
end
end
diff --git a/spec/support/finder_collection.rb b/spec/support/finder_collection.rb
index 494dd4bdca1..93363943449 100644
--- a/spec/support/finder_collection.rb
+++ b/spec/support/finder_collection.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
module Support
# Ensure that finders' `execute` method always returns
diff --git a/spec/support/finder_collection_allowlist.yml b/spec/support/finder_collection_allowlist.yml
index e60cc4278af..37c9da4e4a8 100644
--- a/spec/support/finder_collection_allowlist.yml
+++ b/spec/support/finder_collection_allowlist.yml
@@ -63,6 +63,7 @@
- Security::PipelineVulnerabilitiesFinder
- Security::ScanExecutionPoliciesFinder
- Security::ScanResultPoliciesFinder
+- Security::SecurityPoliciesFinder
- SentryIssueFinder
- ServerlessDomainFinder
- TagsFinder
diff --git a/spec/support/formatters/json_formatter.rb b/spec/support/formatters/json_formatter.rb
index a54004b3024..398ff0187a1 100644
--- a/spec/support/formatters/json_formatter.rb
+++ b/spec/support/formatters/json_formatter.rb
@@ -89,7 +89,13 @@ module Support
[metadata[:file_path], metadata[:line_number]]
else
# If there are nested shared examples, the outermost location is last in the array
- metadata[:shared_group_inclusion_backtrace].last.formatted_inclusion_location.split(':')
+ (
+ metadata[:shared_group_inclusion_backtrace].last.formatted_inclusion_location ||
+ # RSpec ignores some paths by default, e.g. bin/, which result in the above being nil.
+ # Source: https://github.com/rspec/rspec-core/blob/v3.12.2/lib/rspec/core/backtrace_formatter.rb#L11
+ # In that case, we fallback to use the raw `#inclusion_location`.
+ metadata[:shared_group_inclusion_backtrace].last.inclusion_location
+ ).split(':')
end
end
diff --git a/spec/support/helpers/admin_mode_helpers.rb b/spec/support/helpers/admin_mode_helpers.rb
index a6e31791127..8b71552f928 100644
--- a/spec/support/helpers/admin_mode_helpers.rb
+++ b/spec/support/helpers/admin_mode_helpers.rb
@@ -5,17 +5,30 @@
module AdminModeHelper
# Administrators are logged in by default in user mode and have to switch to admin
# mode for accessing any administrative functionality. This helper lets a user
- # be in admin mode without requiring a second authentication step (provided
- # the user is an admin)
+ # access the admin area in two different ways:
+ #
+ # * Fast (use_ui: false) and suitable form the most use cases: fakes calls and grants
+ # access to the admin area without requiring a second authentication step (provided the
+ # user is an admin)
+ # * Slow (use_ui: true): visits the admin UI and enters the users password. A second
+ # authentication step may be needed.
#
# See also tag :enable_admin_mode in spec/spec_helper.rb for a spec-wide
# alternative
- def enable_admin_mode!(user)
- fake_user_mode = instance_double(Gitlab::Auth::CurrentUserMode)
+ def enable_admin_mode!(user, use_ui: false)
+ if use_ui
+ visit new_admin_session_path
+ fill_in 'user_password', with: user.password
+ click_button 'Enter admin mode'
+
+ wait_for_requests
+ else
+ fake_user_mode = instance_double(Gitlab::Auth::CurrentUserMode)
- allow(Gitlab::Auth::CurrentUserMode).to receive(:new).and_call_original
+ allow(Gitlab::Auth::CurrentUserMode).to receive(:new).and_call_original
- allow(Gitlab::Auth::CurrentUserMode).to receive(:new).with(user).and_return(fake_user_mode)
- allow(fake_user_mode).to receive(:admin_mode?).and_return(user&.admin?)
+ allow(Gitlab::Auth::CurrentUserMode).to receive(:new).with(user).and_return(fake_user_mode)
+ allow(fake_user_mode).to receive(:admin_mode?).and_return(user&.admin?)
+ end
end
end
diff --git a/spec/support/helpers/cycle_analytics_helpers.rb b/spec/support/helpers/cycle_analytics_helpers.rb
index 890fefcc7de..d54dcc8a31d 100644
--- a/spec/support/helpers/cycle_analytics_helpers.rb
+++ b/spec/support/helpers/cycle_analytics_helpers.rb
@@ -14,12 +14,14 @@ module CycleAnalyticsHelpers
page.all('.gl-path-button').collect(&:text).map { |name_with_median| name_with_median.split("\n")[0] }
end
- def fill_in_custom_stage_fields
+ def fill_in_custom_stage_fields(stage_name = nil)
index = page.all('[data-testid="value-stream-stage-fields"]').length
last_stage = page.all('[data-testid="value-stream-stage-fields"]').last
+ stage_name = "Cool custom stage - name #{index}" if stage_name.blank?
+
within last_stage do
- find('[name*="custom-stage-name-"]').fill_in with: "Cool custom stage - name #{index}"
+ find('[name*="custom-stage-name-"]').fill_in with: stage_name
select_dropdown_option_by_value "custom-stage-start-event-", 'Merge request created'
select_dropdown_option_by_value "custom-stage-end-event-", 'Merge request merged'
end
@@ -94,8 +96,8 @@ module CycleAnalyticsHelpers
wait_for_requests
end
- def create_value_stream_aggregation(group_or_project_namespace)
- aggregation = Analytics::CycleAnalytics::Aggregation.safe_create_for_namespace(group_or_project_namespace)
+ def create_value_stream_aggregation(namespace)
+ aggregation = Analytics::CycleAnalytics::Aggregation.safe_create_for_namespace(namespace)
Analytics::CycleAnalytics::AggregatorService.new(aggregation: aggregation).execute
end
@@ -123,7 +125,7 @@ module CycleAnalyticsHelpers
def create_commit(message, project, user, branch_name, count: 1, commit_time: nil, skip_push_handler: false)
repository = project.repository
- oldrev = repository.commit(branch_name)&.sha || Gitlab::Git::BLANK_SHA
+ oldrev = repository.commit(branch_name)&.sha || Gitlab::Git::SHA1_BLANK_SHA
commit_shas = Array.new(count) do |index|
commit_sha = repository.create_file(user, generate(:branch), "content", message: message, branch_name: branch_name)
diff --git a/spec/support/helpers/database/duplicate_indexes.yml b/spec/support/helpers/database/duplicate_indexes.yml
index ab9935a7a98..80d409f233d 100644
--- a/spec/support/helpers/database/duplicate_indexes.yml
+++ b/spec/support/helpers/database/duplicate_indexes.yml
@@ -27,6 +27,9 @@ boards_epic_board_recent_visits:
boards_epic_user_preferences:
index_boards_epic_user_preferences_on_board_user_epic_unique:
- index_boards_epic_user_preferences_on_board_id
+ci_build_trace_metadata:
+ index_ci_build_trace_metadata_on_trace_artifact_id:
+ - index_ci_build_trace_metadata_on_trace_artifact_id_partition_id
ci_job_artifacts:
index_ci_job_artifacts_on_id_project_id_and_created_at:
- index_ci_job_artifacts_on_project_id
@@ -63,9 +66,6 @@ error_tracking_errors:
geo_node_namespace_links:
index_geo_node_namespace_links_on_geo_node_id_and_namespace_id:
- index_geo_node_namespace_links_on_geo_node_id
-in_product_marketing_emails:
- index_in_product_marketing_emails_on_user_track_series:
- - index_in_product_marketing_emails_on_user_id
incident_management_oncall_participants:
index_inc_mgmnt_oncall_participants_on_user_id_and_rotation_id:
- index_inc_mgmnt_oncall_participants_on_oncall_user_id
@@ -102,19 +102,6 @@ ml_models:
p_ci_runner_machine_builds:
index_p_ci_runner_machine_builds_on_runner_machine_id:
- index_ci_runner_machine_builds_on_runner_machine_id
-packages_debian_group_distributions:
- uniq_pkgs_debian_group_distributions_group_id_and_codename:
- - index_packages_debian_group_distributions_on_group_id
- uniq_pkgs_debian_group_distributions_group_id_and_suite:
- - index_packages_debian_group_distributions_on_group_id
-packages_debian_project_distributions:
- uniq_pkgs_debian_project_distributions_project_id_and_codename:
- - index_packages_debian_project_distributions_on_project_id
- uniq_pkgs_debian_project_distributions_project_id_and_suite:
- - index_packages_debian_project_distributions_on_project_id
-packages_tags:
- index_packages_tags_on_package_id_and_updated_at:
- - index_packages_tags_on_package_id
pages_domains:
index_pages_domains_on_project_id_and_enabled_until:
- index_pages_domains_on_project_id
diff --git a/spec/support/helpers/database/multiple_databases_helpers.rb b/spec/support/helpers/database/multiple_databases_helpers.rb
index bccd6979af1..9df0685e46a 100644
--- a/spec/support/helpers/database/multiple_databases_helpers.rb
+++ b/spec/support/helpers/database/multiple_databases_helpers.rb
@@ -85,7 +85,7 @@ module Database
# The usage of this method switches temporarily used `connection_handler`
# allowing full manipulation of ActiveRecord::Base connections without
# having side effects like:
- # - misaligned transactions since this is managed by `BeforeAllAdapter`
+ # - misaligned transactions since this is managed by `TestProf::BeforeAll::Adapters::ActiveRecord`
# - removal of primary connections
#
# The execution within a block ensures safe cleanup of all allocated resources.
diff --git a/spec/support/helpers/debug_with_puts.rb b/spec/support/helpers/debug_with_puts.rb
new file mode 100644
index 00000000000..b8599cc7d40
--- /dev/null
+++ b/spec/support/helpers/debug_with_puts.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+# TODO: Remove the debug_with_puts statements below! Used for debugging purposes.
+# TODO: https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/323#note_1688925316
+module DebugWithPuts
+ def debug_with_puts(message)
+ return unless ENV['CI'] # rubocop:disable RSpec/AvoidConditionalStatements -- Debug information only in the CI
+
+ warn "[#{Time.current}] #{message}"
+ end
+
+ module_function :debug_with_puts
+end
diff --git a/spec/support/helpers/dns_helpers.rb b/spec/support/helpers/dns_helpers.rb
index be26c80d217..0250e432609 100644
--- a/spec/support/helpers/dns_helpers.rb
+++ b/spec/support/helpers/dns_helpers.rb
@@ -1,11 +1,15 @@
# frozen_string_literal: true
module DnsHelpers
+ include ViteHelper
+
def block_dns!
stub_all_dns!
stub_invalid_dns!
permit_local_dns!
permit_postgresql!
+ permit_redis!
+ permit_vite!
end
def permit_dns!
@@ -53,6 +57,26 @@ module DnsHelpers
ActiveRecord::Base.configurations.configs_for(env_name: Rails.env).map(&:host).compact.uniq
end
+ def permit_redis!
+ # https://github.com/redis-rb/redis-client/blob/v0.11.2/lib/redis_client/ruby_connection.rb#L51 uses Socket.tcp that
+ # calls Addrinfo.getaddrinfo internally.
+ hosts = Gitlab::Redis::ALL_CLASSES.map do |redis_instance|
+ redis_instance.redis_client_params[:host]
+ end.uniq.compact
+
+ hosts.each do |host|
+ allow(Addrinfo).to receive(:getaddrinfo).with(host, anything, nil, :STREAM, anything, anything, any_args).and_call_original
+ end
+ end
+
+ def permit_vite!
+ # https://github.com/ElMassimo/vite_ruby/blob/7d2f558c9760802e5d763bfa40efe87607eb166a/vite_ruby/lib/vite_ruby.rb#L91
+ # uses Socket.tcp to connect to vite dev server - this won't necessarily be localhost
+ return unless vite_enabled?
+
+ allow(Addrinfo).to receive(:getaddrinfo).with(ViteRuby.instance.config.host, ViteRuby.instance.config.port, nil, :STREAM, anything, anything, any_args).and_call_original
+ end
+
def stub_resolver(stubbed_lookups = {})
resolver = instance_double('Resolv::DNS')
allow(resolver).to receive(:timeouts=)
diff --git a/spec/support/helpers/features/invite_members_modal_helpers.rb b/spec/support/helpers/features/invite_members_modal_helpers.rb
index c40e060bc8e..fd37abd7381 100644
--- a/spec/support/helpers/features/invite_members_modal_helpers.rb
+++ b/spec/support/helpers/features/invite_members_modal_helpers.rb
@@ -66,6 +66,7 @@ module Features
def choose_options(role, expires_at)
page.within role_dropdown_selector do
+ wait_for_requests
toggle_listbox
select_listbox_item(role, exact_text: true)
end
diff --git a/spec/support/helpers/login_helpers.rb b/spec/support/helpers/login_helpers.rb
index 913316c8622..83849df73dc 100644
--- a/spec/support/helpers/login_helpers.rb
+++ b/spec/support/helpers/login_helpers.rb
@@ -49,18 +49,6 @@ module LoginHelpers
@current_user = user
end
- def gitlab_enable_admin_mode_sign_in(user, use_mock_admin_mode: true)
- if use_mock_admin_mode
- enable_admin_mode!(user)
- else
- visit new_admin_session_path
- fill_in 'user_password', with: user.password
- click_button 'Enter admin mode'
-
- wait_for_requests
- end
- end
-
def gitlab_sign_in_via(provider, user, uid, saml_response = nil)
mock_auth_hash_with_saml_xml(provider, uid, user.email, saml_response)
visit new_user_session_path
@@ -90,8 +78,8 @@ module LoginHelpers
# Requires Javascript driver.
def gitlab_disable_admin_mode
- click_on 'Search or go to…'
- click_on 'Leave admin mode'
+ find_by_testid('user-menu-toggle').click
+ click_on 'Leave Admin Mode'
end
private
@@ -122,7 +110,7 @@ module LoginHelpers
def login_via(provider, user, uid, remember_me: false, additional_info: {})
mock_auth_hash(provider, uid, user.email, additional_info: additional_info)
visit new_user_session_path
- expect(page).to have_css('.omniauth-container')
+ expect(page).to have_css('.js-oauth-login')
check 'remember_me_omniauth' if remember_me
@@ -157,7 +145,7 @@ module LoginHelpers
mock_auth_hash(provider, uid, email, response_object: response_object)
end
- def configure_mock_auth(provider, uid, email, response_object: nil, additional_info: {}, name: 'mockuser')
+ def configure_mock_auth(provider, uid, email, response_object: nil, additional_info: {}, name: 'mockuser', groups: [])
# The mock_auth configuration allows you to set per-provider (or default)
# authentication hashes to return during integration testing.
@@ -180,7 +168,8 @@ module LoginHelpers
name: 'mockuser',
email: email,
image: 'mock_user_thumbnail_url'
- }
+ },
+ 'groups' => groups
}
),
response_object: response_object
@@ -188,9 +177,9 @@ module LoginHelpers
}).merge(additional_info) { |_, old_hash, new_hash| old_hash.merge(new_hash) }
end
- def mock_auth_hash(provider, uid, email, additional_info: {}, response_object: nil, name: 'mockuser')
+ def mock_auth_hash(provider, uid, email, additional_info: {}, response_object: nil, name: 'mockuser', groups: [])
configure_mock_auth(
- provider, uid, email, additional_info: additional_info, response_object: response_object, name: name
+ provider, uid, email, additional_info: additional_info, response_object: response_object, name: name, groups: groups
)
original_env_config_omniauth_auth = Rails.application.env_config['omniauth.auth']
diff --git a/spec/support/helpers/models/ci/partitioning_testing/partition_identifiers.rb b/spec/support/helpers/models/ci/partitioning_testing/partition_identifiers.rb
index aa091095fb6..e139f0c9fb3 100644
--- a/spec/support/helpers/models/ci/partitioning_testing/partition_identifiers.rb
+++ b/spec/support/helpers/models/ci/partitioning_testing/partition_identifiers.rb
@@ -8,6 +8,10 @@ module Ci
def ci_testing_partition_id
99999
end
+
+ def ci_testing_partition_id_for_check_constraints
+ 101
+ end
end
end
end
diff --git a/spec/support/helpers/navbar_structure_helper.rb b/spec/support/helpers/navbar_structure_helper.rb
index 5519a6910a2..2d3f7a1b8a9 100644
--- a/spec/support/helpers/navbar_structure_helper.rb
+++ b/spec/support/helpers/navbar_structure_helper.rb
@@ -76,6 +76,14 @@ module NavbarStructureHelper
)
end
+ def insert_google_artifact_registry_nav
+ insert_after_sub_nav_item(
+ _('Container Registry'),
+ within: _('Deploy'),
+ new_sub_nav_item_name: _('Google Artifact Registry')
+ )
+ end
+
def insert_dependency_proxy_nav
insert_before_sub_nav_item(
_('Kubernetes'),
@@ -124,6 +132,14 @@ module NavbarStructureHelper
)
end
+ def insert_model_registry_nav(within)
+ insert_after_sub_nav_item(
+ within,
+ within: _('Deploy'),
+ new_sub_nav_item_name: _('Model registry')
+ )
+ end
+
def project_analytics_sub_nav_item
[
_('Value stream analytics'),
diff --git a/spec/support/helpers/orphan_final_artifacts_cleanup_helpers.rb b/spec/support/helpers/orphan_final_artifacts_cleanup_helpers.rb
new file mode 100644
index 00000000000..9711a5d7c54
--- /dev/null
+++ b/spec/support/helpers/orphan_final_artifacts_cleanup_helpers.rb
@@ -0,0 +1,82 @@
+# frozen_string_literal: true
+
+module OrphanFinalArtifactsCleanupHelpers
+ def create_fog_file(final: true)
+ path = if final
+ JobArtifactUploader.generate_final_store_path(root_id: 123)
+ else
+ JobArtifactUploader.generate_remote_id
+ end
+
+ fog_connection.directories.new(key: remote_directory)
+ .files
+ .create( # rubocop:disable Rails/SaveBang -- not the AR method
+ key: path_with_bucket_prefix(path),
+ body: 'content'
+ )
+ end
+
+ def path_without_bucket_prefix(path)
+ Pathname.new(path).relative_path_from(bucket_prefix.to_s).to_s
+ end
+
+ def path_with_bucket_prefix(path)
+ File.join([bucket_prefix, path].compact)
+ end
+
+ def expect_object_to_exist(fog_file)
+ expect { fog_connection.get_object(remote_directory, fog_file.key) }.not_to raise_error
+ end
+
+ def expect_object_to_be_deleted(fog_file)
+ expect { fog_connection.get_object(remote_directory, fog_file.key) }.to raise_error(Excon::Error::NotFound)
+ end
+
+ def expect_start_log_message
+ expect_log_message("Looking for orphan job artifact objects")
+ end
+
+ def expect_done_log_message
+ expect_log_message("Done")
+ end
+
+ def expect_first_page_loading_log_message
+ expect_log_message("Loading page (first page)", times: 1)
+ end
+
+ def expect_page_loading_via_marker_log_message(times:)
+ expect_log_message("Loading page (marker:", times: times)
+ end
+
+ def expect_resuming_from_marker_log_message(marker)
+ expect_log_message("Resuming from last page marker: #{marker}", times: 1)
+ end
+
+ def expect_no_resuming_from_marker_log_message
+ expect(Gitlab::AppLogger).not_to have_received(:info).with(a_string_including("Resuming"))
+ end
+
+ def expect_delete_log_message(fog_file)
+ expect_log_message("Delete #{fog_file.key} (#{fog_file.content_length} bytes)")
+ end
+
+ def expect_no_delete_log_message(fog_file)
+ expect_no_log_message("Delete #{fog_file.key} (#{fog_file.content_length} bytes)")
+ end
+
+ def expect_log_message(message, times: 1)
+ message = "[DRY RUN] #{message}" if dry_run
+ expect(Gitlab::AppLogger).to have_received(:info).with(a_string_including(message)).exactly(times).times
+ end
+
+ def expect_no_log_message(message)
+ message = "[DRY RUN] #{message}" if dry_run
+ expect(Gitlab::AppLogger).not_to have_received(:info).with(a_string_including(message))
+ end
+
+ def fetch_saved_marker
+ Gitlab::Redis::SharedState.with do |redis|
+ redis.get(described_class::LAST_PAGE_MARKER_REDIS_KEY)
+ end
+ end
+end
diff --git a/spec/support/helpers/stub_configuration.rb b/spec/support/helpers/stub_configuration.rb
index e043d1249b9..e888f858a2d 100644
--- a/spec/support/helpers/stub_configuration.rb
+++ b/spec/support/helpers/stub_configuration.rb
@@ -1,5 +1,6 @@
# frozen_string_literal: true
+require 'gitlab_edition'
require 'active_support/hash_with_indifferent_access'
require 'active_support/dependencies'
@@ -120,6 +121,10 @@ module StubConfiguration
.to receive(:sentry_clientside_dsn) { clientside_dsn }
end
+ def clear_sentry_settings
+ Sentry.get_current_scope.clear
+ end
+
def stub_microsoft_graph_mailer_setting(messages)
allow(Gitlab.config.microsoft_graph_mailer).to receive_messages(to_settings(messages))
end
@@ -194,6 +199,6 @@ module StubConfiguration
end
require_relative '../../../ee/spec/support/helpers/ee/stub_configuration' if
- Dir.exist?("#{__dir__}/../../../ee")
+ GitlabEdition.ee?
StubConfiguration.prepend_mod_with('StubConfiguration')
diff --git a/spec/support/helpers/stub_gitlab_calls.rb b/spec/support/helpers/stub_gitlab_calls.rb
index 0c92502ba99..33661ce353c 100644
--- a/spec/support/helpers/stub_gitlab_calls.rb
+++ b/spec/support/helpers/stub_gitlab_calls.rb
@@ -102,7 +102,7 @@ module StubGitlabCalls
end
def stub_commonmark_sourcepos_disabled
- engine = Banzai::Filter::MarkdownFilter.render_engine(nil)
+ engine = Banzai::Filter::MarkdownFilter.new('foo', {}).render_engine
allow_next_instance_of(engine) do |instance|
allow(instance).to receive(:sourcepos_disabled?).and_return(true)
@@ -110,7 +110,7 @@ module StubGitlabCalls
end
def stub_commonmark_sourcepos_enabled
- engine = Banzai::Filter::MarkdownFilter.render_engine(nil)
+ engine = Banzai::Filter::MarkdownFilter.new('foo', {}).render_engine
allow_next_instance_of(engine) do |instance|
allow(instance).to receive(:sourcepos_disabled?).and_return(false)
diff --git a/spec/support/helpers/stub_requests.rb b/spec/support/helpers/stub_requests.rb
index bde5535705e..b77b366e037 100644
--- a/spec/support/helpers/stub_requests.rb
+++ b/spec/support/helpers/stub_requests.rb
@@ -18,15 +18,15 @@ module StubRequests
end
def stub_dns(url, ip_address:, port: 80)
- debug_with_puts "beginning of stub_dns"
+ DebugWithPuts.debug_with_puts "beginning of stub_dns"
url = parse_url(url)
- debug_with_puts "before socket = Socket.sockaddr_in"
+ DebugWithPuts.debug_with_puts "before socket = Socket.sockaddr_in"
socket = Socket.sockaddr_in(port, ip_address)
- debug_with_puts "after socket = Socket.sockaddr_in"
+ DebugWithPuts.debug_with_puts "after socket = Socket.sockaddr_in"
- debug_with_puts "before addr = Addrinfo.new(socket)"
+ DebugWithPuts.debug_with_puts "before addr = Addrinfo.new(socket)"
addr = Addrinfo.new(socket)
- debug_with_puts "after addr = Addrinfo.new(socket)"
+ DebugWithPuts.debug_with_puts "after addr = Addrinfo.new(socket)"
# See Gitlab::UrlBlocker
allow(Addrinfo).to receive(:getaddrinfo)
@@ -58,12 +58,4 @@ module StubRequests
def parse_url(url)
url.is_a?(URI) ? url : URI(url)
end
-
- # TODO: Remove the debug_with_puts statements below! Used for debugging purposes.
- # TODO: https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/323#note_1688925316
- def debug_with_puts(message)
- return unless ENV['CI'] # rubocop:disable RSpec/AvoidConditionalStatements -- Debug information only in the CI
-
- puts "[#{Time.current}] #{message}"
- end
end
diff --git a/spec/support/helpers/user_with_namespace_shim.rb b/spec/support/helpers/user_with_namespace_shim.rb
new file mode 100644
index 00000000000..c4c988b33a0
--- /dev/null
+++ b/spec/support/helpers/user_with_namespace_shim.rb
@@ -0,0 +1,73 @@
+# frozen_string_literal: true
+
+# Modify the FactoryBot user build process to assign a personal namespace.
+# The complement to this shim is in the User factory where we assign_personal_namespace.
+#
+# This is needed to assist with the transition to optional personal namespaces.
+# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137065
+module UserWithNamespaceShim
+ extend ActiveSupport::Concern
+
+ USER_WITH_NAMESPACE_SHIM_YAML = File.join(__dir__, 'user_with_namespace_shim.yml')
+
+ class << self
+ include Gitlab::Utils::StrongMemoize
+
+ def enabled?
+ self.enabled ||= false
+ end
+
+ def shim(spec_file)
+ self.enabled = spec_file_shimmed?(spec_file)
+ end
+
+ def unshim
+ self.enabled = false
+ end
+
+ # Determine the spec filename from the current backtrace.
+ def get_spec_file
+ caller.find do |line|
+ match = line.match(%r{^(.+_spec\.rb|.+/frontend/fixtures/.+\.rb):\d+:in})
+ match[1] if match
+ end
+
+ path = ::Regexp.last_match(1)
+ return unless path
+
+ Pathname.new(path)
+ .relative_path_from(Rails.root)
+ .to_s
+ end
+
+ private
+
+ def spec_file_shimmed?(spec_file)
+ shimmed_spec_list.include?(spec_file)
+ end
+
+ def shimmed_spec_list
+ YAML.load_file(USER_WITH_NAMESPACE_SHIM_YAML) || []
+ end
+ strong_memoize_attr :shimmed_spec_list
+
+ attr_accessor :enabled
+ end
+
+ included do
+ # This is our only chance to determine the spec filename.
+ spec_file = UserWithNamespaceShim.get_spec_file
+
+ # We need to use before(:all) instead of before_all otherwise we open a transaction before running the example
+ # which interferes with examples using the the table deletion strategy like those marked as `:delete`.
+ # rubocop:disable RSpec/BeforeAll -- reason above
+ before(:all) do
+ UserWithNamespaceShim.shim(spec_file)
+ end
+ # rubocop:enable RSpec/BeforeAll
+
+ after(:all) do
+ UserWithNamespaceShim.unshim
+ end
+ end
+end
diff --git a/spec/support/helpers/user_with_namespace_shim.yml b/spec/support/helpers/user_with_namespace_shim.yml
new file mode 100644
index 00000000000..7b3dc099cf9
--- /dev/null
+++ b/spec/support/helpers/user_with_namespace_shim.yml
@@ -0,0 +1,1000 @@
+---
+- ee/spec/components/namespaces/storage/user_pre_enforcement_alert_component_spec.rb
+- ee/spec/controllers/admin/users_controller_spec.rb
+- ee/spec/controllers/autocomplete_controller_spec.rb
+- ee/spec/controllers/ee/profiles/preferences_controller_spec.rb
+- ee/spec/controllers/ee/search_controller_spec.rb
+- ee/spec/controllers/groups/sso_controller_spec.rb
+- ee/spec/controllers/profiles/billings_controller_spec.rb
+- ee/spec/controllers/projects/iterations_controller_spec.rb
+- ee/spec/controllers/projects_controller_spec.rb
+- ee/spec/controllers/users_controller_spec.rb
+- ee/spec/features/account_recovery_regular_check_spec.rb
+- ee/spec/features/admin/admin_audit_logs_spec.rb
+- ee/spec/features/admin/admin_groups_spec.rb
+- ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb
+- ee/spec/features/admin/admin_users_spec.rb
+- ee/spec/features/admin/groups/admin_changes_plan_spec.rb
+- ee/spec/features/admin/users/users_spec.rb
+- ee/spec/features/analytics/code_analytics_spec.rb
+- ee/spec/features/billings/billing_plans_spec.rb
+- ee/spec/features/boards/boards_licensed_features_spec.rb
+- ee/spec/features/boards/boards_spec.rb
+- ee/spec/features/boards/swimlanes/epics_swimlanes_spec.rb
+- ee/spec/features/ci/ci_minutes_spec.rb
+- ee/spec/features/ci_shared_runner_warnings_spec.rb
+- ee/spec/features/code_suggestions_ga_non_owner_alert_spec.rb
+- ee/spec/features/dashboards/todos_spec.rb
+- ee/spec/features/epics/gfm_autocomplete_spec.rb
+- ee/spec/features/epics/issue_promotion_spec.rb
+- ee/spec/features/epics/referencing_epics_spec.rb
+- ee/spec/features/epics/update_epic_spec.rb
+- ee/spec/features/groups/analytics/productivity_analytics_spec.rb
+- ee/spec/features/groups/member_roles_spec.rb
+- ee/spec/features/groups/members/list_members_spec.rb
+- ee/spec/features/groups/security/policies_list_spec.rb
+- ee/spec/features/groups/security/policy_editor_spec.rb
+- ee/spec/features/groups/usage_quotas/code_suggestions_usage_tab_spec.rb
+- ee/spec/features/groups/wikis_spec.rb
+- ee/spec/features/incidents/incident_details_spec.rb
+- ee/spec/features/issues/epic_in_issue_sidebar_spec.rb
+- ee/spec/features/issues/issue_sidebar_spec.rb
+- ee/spec/features/issues/user_bulk_edits_issues_spec.rb
+- ee/spec/features/issues/user_sees_empty_state_spec.rb
+- ee/spec/features/issues/user_uses_quick_actions_spec.rb
+- ee/spec/features/issues/user_views_issues_spec.rb
+- ee/spec/features/merge_request/code_owner_approvals_reset_after_merging_to_source_branch_spec.rb
+- ee/spec/features/merge_request/draft_comments_spec.rb
+- ee/spec/features/merge_request/user_approves_with_password_spec.rb
+- ee/spec/features/merge_request/user_approves_with_saml_auth_spec.rb
+- ee/spec/features/merge_request/user_comments_on_merge_request_spec.rb
+- ee/spec/features/merge_request/user_creates_merge_request_spec.rb
+- ee/spec/features/merge_request/user_creates_multiple_assignees_mr_spec.rb
+- ee/spec/features/merge_request/user_creates_multiple_reviewers_mr_spec.rb
+- ee/spec/features/merge_request/user_edits_multiple_assignees_mr_spec.rb
+- ee/spec/features/merge_request/user_edits_multiple_reviewers_mr_spec.rb
+- ee/spec/features/merge_request/user_merges_immediately_spec.rb
+- ee/spec/features/merge_request/user_merges_with_namespace_storage_limits_spec.rb
+- ee/spec/features/merge_request/user_merges_with_push_rules_spec.rb
+- ee/spec/features/merge_request/user_sees_approve_via_custom_role_spec.rb
+- ee/spec/features/merge_request/user_sees_merge_widget_spec.rb
+- ee/spec/features/merge_request/user_sees_security_policy_rules_licence_compliance_spec.rb
+- ee/spec/features/merge_request/user_sees_status_checks_widget_spec.rb
+- ee/spec/features/merge_request/user_sets_approval_rules_spec.rb
+- ee/spec/features/merge_request/user_sets_approvers_spec.rb
+- ee/spec/features/merge_request/user_uses_slash_commands_spec.rb
+- ee/spec/features/merge_request/user_views_blocked_merge_request_spec.rb
+- ee/spec/features/merge_trains/user_adds_to_merge_train_when_pipeline_succeeds_spec.rb
+- ee/spec/features/namespace_user_cap_reached_alert_spec.rb
+- ee/spec/features/pending_project_memberships_spec.rb
+- ee/spec/features/profiles/account_spec.rb
+- ee/spec/features/profiles/password_spec.rb
+- ee/spec/features/profiles/usage_quotas_spec.rb
+- ee/spec/features/profiles/user_visits_profile_spec.rb
+- ee/spec/features/profiles/user_visits_public_profile_spec.rb
+- ee/spec/features/projects/active_tabs_spec.rb
+- ee/spec/features/projects/audit_events_spec.rb
+- ee/spec/features/projects/custom_projects_template_spec.rb
+- ee/spec/features/projects/environments/environment_spec.rb
+- ee/spec/features/projects/feature_flags/feature_flag_issues_spec.rb
+- ee/spec/features/projects/feature_flags/user_creates_feature_flag_spec.rb
+- ee/spec/features/projects/feature_flags/user_deletes_feature_flag_spec.rb
+- ee/spec/features/projects/feature_flags/user_sees_feature_flag_list_spec.rb
+- ee/spec/features/projects/feature_flags/user_updates_feature_flag_spec.rb
+- ee/spec/features/projects/members/member_leaves_project_spec.rb
+- ee/spec/features/projects/merge_requests/user_approves_merge_request_spec.rb
+- ee/spec/features/projects/milestones/milestone_spec.rb
+- ee/spec/features/projects/navbar_spec.rb
+- ee/spec/features/projects/new_project_from_template_spec.rb
+- ee/spec/features/projects/new_project_spec.rb
+- ee/spec/features/projects/path_locks_spec.rb
+- ee/spec/features/projects/push_rules_spec.rb
+- ee/spec/features/projects/security/policies_list_spec.rb
+- ee/spec/features/projects/security/policy_editor_spec.rb
+- ee/spec/features/projects/settings/ee/repository_mirrors_settings_spec.rb
+- ee/spec/features/projects/settings/merge_requests/user_manages_merge_requests_template_spec.rb
+- ee/spec/features/projects/settings/packages_spec.rb
+- ee/spec/features/projects/settings/user_changes_default_branch_spec.rb
+- ee/spec/features/projects/settings/user_manages_issues_template_spec.rb
+- ee/spec/features/projects/settings/user_manages_merge_requests_template_spec.rb
+- ee/spec/features/projects/show_project_spec.rb
+- ee/spec/features/projects/show_spec.rb
+- ee/spec/features/projects/view_blob_with_code_owners_spec.rb
+- ee/spec/features/projects/wiki/user_views_wiki_empty_spec.rb
+- ee/spec/features/projects_spec.rb
+- ee/spec/features/protected_tags_spec.rb
+- ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb
+- ee/spec/features/search/elastic/global_search_spec.rb
+- ee/spec/features/search/elastic/project_search_spec.rb
+- ee/spec/features/search/elastic/snippet_search_spec.rb
+- ee/spec/features/security/dashboard_access_spec.rb
+- ee/spec/features/security/profile_access_spec.rb
+- ee/spec/features/security/project/discover_spec.rb
+- ee/spec/features/security/project/internal_access_spec.rb
+- ee/spec/features/security/project/private_access_spec.rb
+- ee/spec/features/security/project/public_access_spec.rb
+- ee/spec/features/security/project/snippet/internal_access_spec.rb
+- ee/spec/features/security/project/snippet/public_access_spec.rb
+- ee/spec/features/subscriptions/subscription_flow_for_existing_user_with_eligible_group_spec.rb
+- ee/spec/features/subscriptions_spec.rb
+- ee/spec/features/trials/show_trial_banner_spec.rb
+- ee/spec/features/user_sees_marketing_header_spec.rb
+- ee/spec/features/user_settings/password_spec.rb
+- ee/spec/features/users/login_spec.rb
+- ee/spec/finders/compliance_management/merge_requests/compliance_violations_finder_spec.rb
+- ee/spec/finders/ee/fork_targets_finder_spec.rb
+- ee/spec/finders/issues_finder_spec.rb
+- ee/spec/finders/security/approval_groups_finder_spec.rb
+- ee/spec/frontend/fixtures/namespace.rb
+- ee/spec/frontend/fixtures/search.rb
+- ee/spec/graphql/ee/resolvers/board_lists_resolver_spec.rb
+- ee/spec/graphql/mutations/namespaces/increase_storage_temporarily_spec.rb
+- ee/spec/graphql/mutations/security_policy/assign_security_policy_project_spec.rb
+- ee/spec/graphql/mutations/security_policy/commit_scan_execution_policy_spec.rb
+- ee/spec/graphql/mutations/security_policy/create_security_policy_project_spec.rb
+- ee/spec/graphql/mutations/security_policy/unassign_security_policy_project_spec.rb
+- ee/spec/helpers/ee/users/callouts_helper_spec.rb
+- ee/spec/helpers/projects/security/discover_helper_spec.rb
+- ee/spec/helpers/subscriptions_helper_spec.rb
+- ee/spec/lib/ee/api/entities/user_with_admin_spec.rb
+- ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_spec.rb
+- ee/spec/lib/ee/gitlab/background_migration/migrate_vulnerabilities_feedback_to_vulnerabilities_state_transition_spec.rb
+- ee/spec/lib/ee/gitlab/ci/pipeline/chain/validate/external_spec.rb
+- ee/spec/lib/ee/gitlab/import_export/project/tree_restorer_spec.rb
+- ee/spec/lib/ee/gitlab/issuable_metadata_spec.rb
+- ee/spec/lib/gitlab/auth/smartcard/certificate_spec.rb
+- ee/spec/lib/gitlab/auth/smartcard/ldap_certificate_spec.rb
+- ee/spec/lib/gitlab/background_migration/create_vulnerability_links_spec.rb
+- ee/spec/lib/gitlab/geo_spec.rb
+- ee/spec/lib/gitlab/graphql/aggregations/security_orchestration_policies/lazy_dast_profile_aggregate_spec.rb
+- ee/spec/lib/gitlab/llm/stage_check_spec.rb
+- ee/spec/lib/gitlab/llm/tanuki_bot_spec.rb
+- ee/spec/lib/gitlab/search/zoekt/client_spec.rb
+- ee/spec/lib/gitlab/subscription_portal/clients/graphql_spec.rb
+- ee/spec/lib/sidebars/groups/menus/analytics_menu_spec.rb
+- ee/spec/migrations/20220831132802_delete_approval_rules_for_vulnerability_spec.rb
+- ee/spec/migrations/20220907122648_populate_security_orchestration_policy_configuration_id_spec.rb
+- ee/spec/migrations/20221130192239_fix_approval_project_rules_without_protected_branches_spec.rb
+- ee/spec/migrations/20230113201308_backfill_namespace_ldap_settings_spec.rb
+- ee/spec/migrations/20230127155217_add_id_column_to_package_metadata_join_table_spec.rb
+- ee/spec/migrations/20230310213308_sync_security_policy_rule_schedules_that_may_have_been_deleted_by_a_bug_spec.rb
+- ee/spec/migrations/20230403221928_resync_scan_result_policies_for_namespaces_spec.rb
+- ee/spec/migrations/20230501165244_remove_software_license_policies_without_scan_result_policy_id_spec.rb
+- ee/spec/migrations/20230612162643_pm_checkpoints_remove_advisory_entries_spec.rb
+- ee/spec/migrations/20231030154117_insert_new_ultimate_trial_plan_into_plans_spec.rb
+- ee/spec/migrations/cleanup_orphan_software_licenses_spec.rb
+- ee/spec/migrations/geo/migrate_ci_job_artifacts_to_separate_registry_spec.rb
+- ee/spec/migrations/geo/migrate_lfs_objects_to_separate_registry_spec.rb
+- ee/spec/migrations/geo/resync_direct_upload_job_artifact_registry_spec.rb
+- ee/spec/migrations/update_can_create_group_application_setting_spec.rb
+- ee/spec/migrations/update_ci_max_total_yaml_size_bytes_default_value_spec.rb
+- ee/spec/models/concerns/ee/mentionable_spec.rb
+- ee/spec/models/concerns/elastic/note_spec.rb
+- ee/spec/models/ee/member_spec.rb
+- ee/spec/models/ee/namespace/root_storage_statistics_spec.rb
+- ee/spec/models/ee/namespace_spec.rb
+- ee/spec/models/ee/namespace_statistics_spec.rb
+- ee/spec/models/ee/namespaces/user_namespace_spec.rb
+- ee/spec/models/ee/pages_domain_spec.rb
+- ee/spec/models/ee/project_member_spec.rb
+- ee/spec/models/ee/project_spec.rb
+- ee/spec/models/ee/project_wiki_spec.rb
+- ee/spec/models/elastic/migration_record_spec.rb
+- ee/spec/models/epic_spec.rb
+- ee/spec/models/factories_spec.rb
+- ee/spec/models/gitlab_subscription_spec.rb
+- ee/spec/models/iteration_spec.rb
+- ee/spec/models/member_spec.rb
+- ee/spec/models/namespace_setting_spec.rb
+- ee/spec/models/namespaces/free_user_cap/enforcement_spec.rb
+- ee/spec/models/project_member_spec.rb
+- ee/spec/models/projects/compliance_standards/adherence_spec.rb
+- ee/spec/models/push_rule_spec.rb
+- ee/spec/policies/ci/minutes/namespace_monthly_usage_policy_spec.rb
+- ee/spec/policies/dependency_proxy/packages/setting_policy_spec.rb
+- ee/spec/policies/global_policy_spec.rb
+- ee/spec/policies/packages/policies/project_policy_spec.rb
+- ee/spec/policies/project_policy_spec.rb
+- ee/spec/policies/requirements_management/requirement_policy_spec.rb
+- ee/spec/policies/vulnerabilities/feedback_policy_spec.rb
+- ee/spec/policies/vulnerabilities/merge_request_link_policy_spec.rb
+- ee/spec/presenters/audit_event_presenter_spec.rb
+- ee/spec/requests/admin/users_controller_spec.rb
+- ee/spec/requests/api/discussions_spec.rb
+- ee/spec/requests/api/epics_spec.rb
+- ee/spec/requests/api/graphql/ci/minutes/usage_spec.rb
+- ee/spec/requests/api/graphql/compliance_management/merge_requests/compliance_violations_spec.rb
+- ee/spec/requests/api/graphql/mutations/security/finding/create_merge_request_spec.rb
+- ee/spec/requests/api/graphql/mutations/security_policy/assign_security_policy_project_spec.rb
+- ee/spec/requests/api/graphql/mutations/security_policy/commit_scan_execution_policy_spec.rb
+- ee/spec/requests/api/graphql/mutations/security_policy/create_security_policy_project_spec.rb
+- ee/spec/requests/api/graphql/mutations/security_policy/unassign_security_policy_project_spec.rb
+- ee/spec/requests/api/graphql/project/path_locks_spec.rb
+- ee/spec/requests/api/graphql/project/pipelines/dast_profile_spec.rb
+- ee/spec/requests/api/graphql/project/push_rules_spec.rb
+- ee/spec/requests/api/graphql/project/requirements_management/requirements_spec.rb
+- ee/spec/requests/api/graphql/work_item_spec.rb
+- ee/spec/requests/api/groups_spec.rb
+- ee/spec/requests/api/internal/ai/x_ray/scan_spec.rb
+- ee/spec/requests/api/internal/base_spec.rb
+- ee/spec/requests/api/issues_spec.rb
+- ee/spec/requests/api/merge_request_approval_rules_spec.rb
+- ee/spec/requests/api/merge_request_approvals_spec.rb
+- ee/spec/requests/api/merge_requests_spec.rb
+- ee/spec/requests/api/namespaces_spec.rb
+- ee/spec/requests/api/project_approval_rules_spec.rb
+- ee/spec/requests/api/project_approval_settings_spec.rb
+- ee/spec/requests/api/project_approvals_spec.rb
+- ee/spec/requests/api/project_milestones_spec.rb
+- ee/spec/requests/api/project_push_rule_spec.rb
+- ee/spec/requests/api/projects_spec.rb
+- ee/spec/requests/api/resource_weight_events_spec.rb
+- ee/spec/requests/api/search_spec.rb
+- ee/spec/requests/api/users_spec.rb
+- ee/spec/requests/custom_roles/admin_merge_request/request_spec.rb
+- ee/spec/requests/custom_roles/admin_vulnerability/request_spec.rb
+- ee/spec/requests/custom_roles/manage_project_access_tokens/request_spec.rb
+- ee/spec/requests/projects/analytics/code_reviews_controller_spec.rb
+- ee/spec/requests/projects/issues_controller_spec.rb
+- ee/spec/requests/projects/metrics_controller_spec.rb
+- ee/spec/requests/projects/security/policies_controller_spec.rb
+- ee/spec/requests/projects/tracing_controller_spec.rb
+- ee/spec/requests/subscriptions/hand_raise_leads_spec.rb
+- ee/spec/requests/trial_registrations_controller_spec.rb
+- ee/spec/requests/users_controller_spec.rb
+- ee/spec/serializers/clusters/environment_serializer_spec.rb
+- ee/spec/services/analytics/cycle_analytics/data_loader_service_spec.rb
+- ee/spec/services/ci/minutes/additional_packs/change_namespace_service_spec.rb
+- ee/spec/services/ci/minutes/update_project_and_namespace_usage_service_spec.rb
+- ee/spec/services/ee/auth/container_registry_authentication_service_spec.rb
+- ee/spec/services/ee/commits/create_service_spec.rb
+- ee/spec/services/ee/issues/create_service_spec.rb
+- ee/spec/services/ee/issues/update_service_spec.rb
+- ee/spec/services/ee/notes/create_service_spec.rb
+- ee/spec/services/ee/notes/quick_actions_service_spec.rb
+- ee/spec/services/ee/notification_service_spec.rb
+- ee/spec/services/ee/post_receive_service_spec.rb
+- ee/spec/services/ee/projects/remove_paid_features_service_spec.rb
+- ee/spec/services/ee/users/destroy_service_spec.rb
+- ee/spec/services/ee/users/migrate_records_to_ghost_user_service_spec.rb
+- ee/spec/services/epic_issues/create_service_spec.rb
+- ee/spec/services/epics/create_service_spec.rb
+- ee/spec/services/epics/issue_promote_service_spec.rb
+- ee/spec/services/epics/transfer_service_spec.rb
+- ee/spec/services/epics/update_service_spec.rb
+- ee/spec/services/namespaces/service_accounts/create_service_spec.rb
+- ee/spec/services/projects/create_from_template_service_spec.rb
+- ee/spec/services/projects/create_service_spec.rb
+- ee/spec/services/projects/destroy_service_spec.rb
+- ee/spec/services/projects/fork_service_spec.rb
+- ee/spec/services/projects/mark_for_deletion_service_spec.rb
+- ee/spec/services/projects/restore_service_spec.rb
+- ee/spec/services/projects/transfer_service_spec.rb
+- ee/spec/services/projects/update_service_spec.rb
+- ee/spec/services/quick_actions/interpret_service_spec.rb
+- ee/spec/services/todo_service_spec.rb
+- ee/spec/services/users/service_accounts/create_service_spec.rb
+- ee/spec/services/vulnerability_exports/exporters/csv_service_spec.rb
+- ee/spec/tasks/gitlab/elastic_rake_spec.rb
+- ee/spec/views/admin/dashboard/index.html.haml_spec.rb
+- ee/spec/views/admin/users/show.html.haml_spec.rb
+- ee/spec/views/compliance_management/compliance_framework/_project_settings.html.haml_spec.rb
+- ee/spec/views/profiles/preferences/show.html.haml_spec.rb
+- ee/spec/views/shared/billings/_eoa_bronze_plan_banner.html.haml_spec.rb
+- ee/spec/views/shared/promotions/_promotion_link_project.html.haml_spec.rb
+- ee/spec/workers/groups/enterprise_users/associate_worker_spec.rb
+- ee/spec/workers/groups/enterprise_users/bulk_associate_by_domain_worker_spec.rb
+- ee/spec/workers/new_epic_worker_spec.rb
+- spec/controllers/admin/users_controller_spec.rb
+- spec/controllers/concerns/checks_collaboration_spec.rb
+- spec/controllers/concerns/routable_actions_spec.rb
+- spec/controllers/dashboard/snippets_controller_spec.rb
+- spec/controllers/dashboard/todos_controller_spec.rb
+- spec/controllers/explore/snippets_controller_spec.rb
+- spec/controllers/groups/shared_projects_controller_spec.rb
+- spec/controllers/import/bitbucket_controller_spec.rb
+- spec/controllers/import/bitbucket_server_controller_spec.rb
+- spec/controllers/import/gitea_controller_spec.rb
+- spec/controllers/import/github_controller_spec.rb
+- spec/controllers/oauth/applications_controller_spec.rb
+- spec/controllers/oauth/authorizations_controller_spec.rb
+- spec/controllers/profiles/notifications_controller_spec.rb
+- spec/controllers/profiles/preferences_controller_spec.rb
+- spec/controllers/profiles_controller_spec.rb
+- spec/controllers/projects/blame_controller_spec.rb
+- spec/controllers/projects/blob_controller_spec.rb
+- spec/controllers/projects/ci/pipeline_editor_controller_spec.rb
+- spec/controllers/projects/commit_controller_spec.rb
+- spec/controllers/projects/forks_controller_spec.rb
+- spec/controllers/projects/labels_controller_spec.rb
+- spec/controllers/projects/merge_requests/drafts_controller_spec.rb
+- spec/controllers/projects/milestones_controller_spec.rb
+- spec/controllers/projects/project_members_controller_spec.rb
+- spec/controllers/projects/snippets_controller_spec.rb
+- spec/controllers/projects/tree_controller_spec.rb
+- spec/controllers/projects/web_ide_schemas_controller_spec.rb
+- spec/controllers/projects/web_ide_terminals_controller_spec.rb
+- spec/controllers/projects/wikis_controller_spec.rb
+- spec/controllers/projects_controller_spec.rb
+- spec/controllers/search_controller_spec.rb
+- spec/controllers/snippets/notes_controller_spec.rb
+- spec/features/abuse_report_spec.rb
+- spec/features/admin/admin_abuse_reports_spec.rb
+- spec/features/admin/admin_appearance_spec.rb
+- spec/features/admin/admin_disables_two_factor_spec.rb
+- spec/features/admin/admin_groups_spec.rb
+- spec/features/admin/admin_mode/workers_spec.rb
+- spec/features/admin/admin_mode_spec.rb
+- spec/features/admin/admin_projects_spec.rb
+- spec/features/admin/users/admin_impersonates_user_spec.rb
+- spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb
+- spec/features/admin/users/admin_sees_user_spec.rb
+- spec/features/admin/users/user_spec.rb
+- spec/features/admin/users/users_spec.rb
+- spec/features/atom/users_spec.rb
+- spec/features/boards/boards_spec.rb
+- spec/features/breadcrumbs_schema_markup_spec.rb
+- spec/features/calendar_spec.rb
+- spec/features/canonical_link_spec.rb
+- spec/features/commits_spec.rb
+- spec/features/contextual_sidebar_spec.rb
+- spec/features/dashboard/datetime_on_tooltips_spec.rb
+- spec/features/dashboard/issuables_counter_spec.rb
+- spec/features/dashboard/issues_filter_spec.rb
+- spec/features/dashboard/milestones_spec.rb
+- spec/features/dashboard/project_member_activity_index_spec.rb
+- spec/features/dashboard/projects_spec.rb
+- spec/features/dashboard/user_filters_projects_spec.rb
+- spec/features/discussion_comments/merge_request_spec.rb
+- spec/features/discussion_comments/snippets_spec.rb
+- spec/features/expand_collapse_diffs_spec.rb
+- spec/features/explore/catalog/catalog_settings_spec.rb
+- spec/features/file_uploads/project_import_spec.rb
+- spec/features/file_uploads/user_avatar_spec.rb
+- spec/features/frequently_visited_projects_and_groups_spec.rb
+- spec/features/global_search_spec.rb
+- spec/features/groups/group_settings_spec.rb
+- spec/features/groups/participants_autocomplete_spec.rb
+- spec/features/groups_spec.rb
+- spec/features/help_dropdown_spec.rb
+- spec/features/ide/user_opens_merge_request_spec.rb
+- spec/features/ide_spec.rb
+- spec/features/import/manifest_import_spec.rb
+- spec/features/incidents/user_creates_new_incident_spec.rb
+- spec/features/incidents/user_views_incident_spec.rb
+- spec/features/issuables/markdown_references/jira_spec.rb
+- spec/features/issuables/shortcuts_issuable_spec.rb
+- spec/features/issuables/user_sees_sidebar_spec.rb
+- spec/features/issues/confidential_notes_spec.rb
+- spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb
+- spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb
+- spec/features/issues/csv_spec.rb
+- spec/features/issues/discussion_lock_spec.rb
+- spec/features/issues/form_spec.rb
+- spec/features/issues/issue_detail_spec.rb
+- spec/features/issues/issue_sidebar_spec.rb
+- spec/features/issues/markdown_toolbar_spec.rb
+- spec/features/issues/move_spec.rb
+- spec/features/issues/note_polling_spec.rb
+- spec/features/issues/notes_on_issues_spec.rb
+- spec/features/issues/related_issues_spec.rb
+- spec/features/issues/user_comments_on_issue_spec.rb
+- spec/features/issues/user_creates_branch_and_merge_request_spec.rb
+- spec/features/issues/user_creates_issue_spec.rb
+- spec/features/issues/user_edits_issue_spec.rb
+- spec/features/issues/user_interacts_with_awards_spec.rb
+- spec/features/issues/user_resets_their_incoming_email_token_spec.rb
+- spec/features/issues/user_sorts_issues_spec.rb
+- spec/features/issues/user_toggles_subscription_spec.rb
+- spec/features/issues/user_uses_quick_actions_spec.rb
+- spec/features/jira_connect/branches_spec.rb
+- spec/features/markdown/gitlab_flavored_markdown_spec.rb
+- spec/features/markdown/markdown_spec.rb
+- spec/features/merge_request/admin_views_hidden_merge_request_spec.rb
+- spec/features/merge_request/batch_comments_spec.rb
+- spec/features/merge_request/close_reopen_report_toggle_spec.rb
+- spec/features/merge_request/hide_default_award_emojis_spec.rb
+- spec/features/merge_request/maintainer_edits_fork_spec.rb
+- spec/features/merge_request/merge_request_discussion_lock_spec.rb
+- spec/features/merge_request/user_accepts_merge_request_spec.rb
+- spec/features/merge_request/user_allows_commits_from_memebers_who_can_merge_spec.rb
+- spec/features/merge_request/user_approves_spec.rb
+- spec/features/merge_request/user_assigns_themselves_reviewer_spec.rb
+- spec/features/merge_request/user_assigns_themselves_spec.rb
+- spec/features/merge_request/user_closes_reopens_merge_request_state_spec.rb
+- spec/features/merge_request/user_comments_on_commit_spec.rb
+- spec/features/merge_request/user_comments_on_diff_spec.rb
+- spec/features/merge_request/user_comments_on_merge_request_spec.rb
+- spec/features/merge_request/user_comments_on_whitespace_hidden_diff_spec.rb
+- spec/features/merge_request/user_creates_custom_emoji_spec.rb
+- spec/features/merge_request/user_creates_discussion_on_diff_file_spec.rb
+- spec/features/merge_request/user_creates_merge_request_spec.rb
+- spec/features/merge_request/user_creates_mr_spec.rb
+- spec/features/merge_request/user_edits_assignees_sidebar_spec.rb
+- spec/features/merge_request/user_edits_merge_request_spec.rb
+- spec/features/merge_request/user_edits_mr_spec.rb
+- spec/features/merge_request/user_edits_reviewers_sidebar_spec.rb
+- spec/features/merge_request/user_locks_discussion_spec.rb
+- spec/features/merge_request/user_manages_subscription_spec.rb
+- spec/features/merge_request/user_marks_merge_request_as_draft_spec.rb
+- spec/features/merge_request/user_opens_checkout_branch_modal_spec.rb
+- spec/features/merge_request/user_opens_context_commits_modal_spec.rb
+- spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb
+- spec/features/merge_request/user_reverts_merge_request_spec.rb
+- spec/features/merge_request/user_sees_check_out_branch_modal_spec.rb
+- spec/features/merge_request/user_sees_cherry_pick_modal_spec.rb
+- spec/features/merge_request/user_sees_deployment_widget_spec.rb
+- spec/features/merge_request/user_sees_diff_spec.rb
+- spec/features/merge_request/user_sees_merge_request_file_tree_sidebar_spec.rb
+- spec/features/merge_request/user_sees_merge_widget_spec.rb
+- spec/features/merge_request/user_sees_pipelines_spec.rb
+- spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
+- spec/features/merge_request/user_squashes_merge_request_spec.rb
+- spec/features/merge_request/user_suggests_changes_on_diff_spec.rb
+- spec/features/merge_request/user_tries_to_access_private_project_info_through_new_mr_spec.rb
+- spec/features/merge_request/user_uses_quick_actions_spec.rb
+- spec/features/merge_request/user_views_auto_expanding_diff_spec.rb
+- spec/features/merge_request/user_views_comment_on_diff_file_spec.rb
+- spec/features/merge_request/user_views_diffs_file_by_file_spec.rb
+- spec/features/merge_request/user_views_open_merge_request_spec.rb
+- spec/features/merge_requests/user_sees_empty_state_spec.rb
+- spec/features/monitor_sidebar_link_spec.rb
+- spec/features/nav/new_nav_for_everyone_callout_spec.rb
+- spec/features/nav/new_nav_invite_members_spec.rb
+- spec/features/nav/pinned_nav_items_spec.rb
+- spec/features/oauth_provider_authorize_spec.rb
+- spec/features/participants_autocomplete_spec.rb
+- spec/features/profile_spec.rb
+- spec/features/profiles/account_spec.rb
+- spec/features/profiles/active_sessions_spec.rb
+- spec/features/profiles/chat_names_spec.rb
+- spec/features/profiles/emails_spec.rb
+- spec/features/profiles/gpg_keys_spec.rb
+- spec/features/profiles/keys_spec.rb
+- spec/features/profiles/list_users_comment_template_spec.rb
+- spec/features/profiles/oauth_applications_spec.rb
+- spec/features/profiles/password_spec.rb
+- spec/features/profiles/personal_access_tokens_spec.rb
+- spec/features/profiles/two_factor_auths_spec.rb
+- spec/features/profiles/user_changes_notified_of_own_activity_spec.rb
+- spec/features/profiles/user_creates_comment_template_spec.rb
+- spec/features/profiles/user_deletes_comment_template_spec.rb
+- spec/features/profiles/user_edit_preferences_spec.rb
+- spec/features/profiles/user_edit_profile_spec.rb
+- spec/features/profiles/user_manages_applications_spec.rb
+- spec/features/profiles/user_manages_emails_spec.rb
+- spec/features/profiles/user_search_settings_spec.rb
+- spec/features/profiles/user_updates_comment_template_spec.rb
+- spec/features/profiles/user_uses_comment_template_spec.rb
+- spec/features/profiles/user_visits_notifications_tab_spec.rb
+- spec/features/profiles/user_visits_profile_authentication_log_spec.rb
+- spec/features/profiles/user_visits_profile_preferences_page_spec.rb
+- spec/features/profiles/user_visits_profile_spec.rb
+- spec/features/projects/active_tabs_spec.rb
+- spec/features/projects/activity/user_sees_private_activity_spec.rb
+- spec/features/projects/blobs/blame_spec.rb
+- spec/features/projects/blobs/blob_show_spec.rb
+- spec/features/projects/blobs/edit_spec.rb
+- spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb
+- spec/features/projects/branches/user_creates_branch_spec.rb
+- spec/features/projects/branches_spec.rb
+- spec/features/projects/commit/cherry_pick_spec.rb
+- spec/features/projects/commit/user_reverts_commit_spec.rb
+- spec/features/projects/commits/user_browses_commits_spec.rb
+- spec/features/projects/confluence/user_views_confluence_page_spec.rb
+- spec/features/projects/environments/environment_spec.rb
+- spec/features/projects/environments/environments_spec.rb
+- spec/features/projects/feature_flags/user_creates_feature_flag_spec.rb
+- spec/features/projects/feature_flags/user_deletes_feature_flag_spec.rb
+- spec/features/projects/feature_flags/user_sees_feature_flag_list_spec.rb
+- spec/features/projects/feature_flags/user_updates_feature_flag_spec.rb
+- spec/features/projects/features_visibility_spec.rb
+- spec/features/projects/files/editing_a_file_spec.rb
+- spec/features/projects/files/project_owner_creates_license_file_spec.rb
+- spec/features/projects/files/user_browses_files_spec.rb
+- spec/features/projects/files/user_creates_directory_spec.rb
+- spec/features/projects/files/user_creates_files_spec.rb
+- spec/features/projects/files/user_deletes_files_spec.rb
+- spec/features/projects/files/user_edits_files_spec.rb
+- spec/features/projects/files/user_find_file_spec.rb
+- spec/features/projects/files/user_reads_pipeline_status_spec.rb
+- spec/features/projects/files/user_replaces_files_spec.rb
+- spec/features/projects/files/user_searches_for_files_spec.rb
+- spec/features/projects/files/user_uploads_files_spec.rb
+- spec/features/projects/fork_spec.rb
+- spec/features/projects/forks/fork_list_spec.rb
+- spec/features/projects/graph_spec.rb
+- spec/features/projects/import_export/import_file_spec.rb
+- spec/features/projects/issuable_templates_spec.rb
+- spec/features/projects/issues/design_management/user_links_to_designs_in_issue_spec.rb
+- spec/features/projects/issues/design_management/user_views_design_spec.rb
+- spec/features/projects/issues/email_participants_spec.rb
+- spec/features/projects/jobs/permissions_spec.rb
+- spec/features/projects/jobs/user_browses_job_spec.rb
+- spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb
+- spec/features/projects/jobs_spec.rb
+- spec/features/projects/labels/issues_sorted_by_priority_spec.rb
+- spec/features/projects/labels/update_prioritization_spec.rb
+- spec/features/projects/labels/user_views_labels_spec.rb
+- spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb
+- spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb
+- spec/features/projects/members/manage_members_spec.rb
+- spec/features/projects/members/member_leaves_project_spec.rb
+- spec/features/projects/members/sorting_spec.rb
+- spec/features/projects/members/tabs_spec.rb
+- spec/features/projects/members/user_requests_access_spec.rb
+- spec/features/projects/merge_request_button_spec.rb
+- spec/features/projects/milestones/milestone_editing_spec.rb
+- spec/features/projects/milestones/milestone_showing_spec.rb
+- spec/features/projects/milestones/milestone_spec.rb
+- spec/features/projects/milestones/milestones_sorting_spec.rb
+- spec/features/projects/milestones/new_spec.rb
+- spec/features/projects/milestones/user_interacts_with_labels_spec.rb
+- spec/features/projects/navbar_spec.rb
+- spec/features/projects/network_graph_spec.rb
+- spec/features/projects/new_project_from_template_spec.rb
+- spec/features/projects/new_project_spec.rb
+- spec/features/projects/pipeline_schedules_spec.rb
+- spec/features/projects/settings/merge_requests_settings_spec.rb
+- spec/features/projects/settings/monitor_settings_spec.rb
+- spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb
+- spec/features/projects/settings/registry_settings_spec.rb
+- spec/features/projects/settings/user_archives_project_spec.rb
+- spec/features/projects/settings/user_changes_default_branch_spec.rb
+- spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb
+- spec/features/projects/settings/user_renames_a_project_spec.rb
+- spec/features/projects/settings/user_searches_in_settings_spec.rb
+- spec/features/projects/settings/user_tags_project_spec.rb
+- spec/features/projects/settings/user_transfers_a_project_spec.rb
+- spec/features/projects/settings/visibility_settings_spec.rb
+- spec/features/projects/show/clone_button_spec.rb
+- spec/features/projects/show/download_buttons_spec.rb
+- spec/features/projects/show/no_password_spec.rb
+- spec/features/projects/show/redirects_spec.rb
+- spec/features/projects/show/rss_spec.rb
+- spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb
+- spec/features/projects/show/user_interacts_with_stars_spec.rb
+- spec/features/projects/show/user_sees_collaboration_links_spec.rb
+- spec/features/projects/show/user_sees_git_instructions_spec.rb
+- spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
+- spec/features/projects/show/user_uploads_files_spec.rb
+- spec/features/projects/snippets/show_spec.rb
+- spec/features/projects/snippets/user_updates_snippet_spec.rb
+- spec/features/projects/sourcegraph_csp_spec.rb
+- spec/features/projects/tags/user_views_tag_spec.rb
+- spec/features/projects/tags/user_views_tags_spec.rb
+- spec/features/projects/tree/create_directory_spec.rb
+- spec/features/projects/tree/create_file_spec.rb
+- spec/features/projects/tree/rss_spec.rb
+- spec/features/projects/tree/tree_show_spec.rb
+- spec/features/projects/user_creates_project_spec.rb
+- spec/features/projects/user_sees_sidebar_spec.rb
+- spec/features/projects/user_sees_user_popover_spec.rb
+- spec/features/projects/user_uses_shortcuts_spec.rb
+- spec/features/projects/wiki/user_views_wiki_empty_spec.rb
+- spec/features/projects/wikis_spec.rb
+- spec/features/projects/work_items/work_item_spec.rb
+- spec/features/projects_spec.rb
+- spec/features/reportable_note/merge_request_spec.rb
+- spec/features/search/user_searches_for_code_spec.rb
+- spec/features/search/user_searches_for_comments_spec.rb
+- spec/features/search/user_searches_for_commits_spec.rb
+- spec/features/search/user_searches_for_issues_spec.rb
+- spec/features/search/user_searches_for_merge_requests_spec.rb
+- spec/features/search/user_searches_for_milestones_spec.rb
+- spec/features/search/user_searches_for_wiki_pages_spec.rb
+- spec/features/search/user_uses_header_search_field_spec.rb
+- spec/features/search/user_uses_search_filters_spec.rb
+- spec/features/security/dashboard_access_spec.rb
+- spec/features/security/profile_access_spec.rb
+- spec/features/security/project/internal_access_spec.rb
+- spec/features/security/project/private_access_spec.rb
+- spec/features/security/project/public_access_spec.rb
+- spec/features/security/project/snippet/internal_access_spec.rb
+- spec/features/security/project/snippet/private_access_spec.rb
+- spec/features/security/project/snippet/public_access_spec.rb
+- spec/features/snippets/notes_on_personal_snippets_spec.rb
+- spec/features/tags/developer_views_tags_spec.rb
+- spec/features/task_lists_spec.rb
+- spec/features/unsubscribe_links_spec.rb
+- spec/features/uploads/user_uploads_avatar_to_profile_spec.rb
+- spec/features/uploads/user_uploads_file_to_note_spec.rb
+- spec/features/user_opens_link_to_comment_spec.rb
+- spec/features/user_sees_active_nav_items_spec.rb
+- spec/features/user_settings/active_sessions_spec.rb
+- spec/features/user_settings/password_spec.rb
+- spec/features/user_settings/personal_access_tokens_spec.rb
+- spec/features/users/login_spec.rb
+- spec/features/users/overview_spec.rb
+- spec/features/users/rss_spec.rb
+- spec/features/users/show_spec.rb
+- spec/features/users/signup_spec.rb
+- spec/features/users/snippets_spec.rb
+- spec/features/users/user_browses_projects_on_user_page_spec.rb
+- spec/features/webauthn_spec.rb
+- spec/features/whats_new_spec.rb
+- spec/finders/admin/projects_finder_spec.rb
+- spec/finders/autocomplete/move_to_project_finder_spec.rb
+- spec/finders/autocomplete/routes_finder_spec.rb
+- spec/finders/events_finder_spec.rb
+- spec/finders/fork_targets_finder_spec.rb
+- spec/finders/issues_finder_spec.rb
+- spec/finders/members_finder_spec.rb
+- spec/finders/notes_finder_spec.rb
+- spec/finders/packages/npm/package_finder_spec.rb
+- spec/finders/personal_projects_finder_spec.rb
+- spec/finders/projects/topics_finder_spec.rb
+- spec/finders/work_items/work_items_finder_spec.rb
+- spec/frontend/fixtures/autocomplete_sources.rb
+- spec/frontend/fixtures/issues.rb
+- spec/frontend/fixtures/namespaces.rb
+- spec/frontend/fixtures/pipeline_details.rb
+- spec/frontend/fixtures/snippet.rb
+- spec/frontend/fixtures/users.rb
+- spec/frontend/fixtures/webauthn.rb
+- spec/graphql/mutations/users/set_namespace_commit_email_spec.rb
+- spec/graphql/resolvers/board_list_issues_resolver_spec.rb
+- spec/graphql/resolvers/board_lists_resolver_spec.rb
+- spec/graphql/resolvers/board_resolver_spec.rb
+- spec/graphql/resolvers/boards_resolver_spec.rb
+- spec/graphql/resolvers/namespace_projects_resolver_spec.rb
+- spec/graphql/resolvers/projects/fork_targets_resolver_spec.rb
+- spec/graphql/resolvers/recent_boards_resolver_spec.rb
+- spec/graphql/types/project_type_spec.rb
+- spec/helpers/avatars_helper_spec.rb
+- spec/helpers/award_emoji_helper_spec.rb
+- spec/helpers/blob_helper_spec.rb
+- spec/helpers/boards_helper_spec.rb
+- spec/helpers/events_helper_spec.rb
+- spec/helpers/gitlab_routing_helper_spec.rb
+- spec/helpers/markup_helper_spec.rb
+- spec/helpers/notes_helper_spec.rb
+- spec/helpers/projects_helper_spec.rb
+- spec/helpers/search_helper_spec.rb
+- spec/helpers/submodule_helper_spec.rb
+- spec/helpers/tree_helper_spec.rb
+- spec/lib/banzai/filter/references/user_reference_filter_spec.rb
+- spec/lib/banzai/filter/truncate_visible_filter_spec.rb
+- spec/lib/banzai/reference_parser/project_parser_spec.rb
+- spec/lib/bulk_imports/groups/loaders/group_loader_spec.rb
+- spec/lib/constraints/user_url_constrainer_spec.rb
+- spec/lib/feature_spec.rb
+- spec/lib/generators/gitlab/partitioning/foreign_keys_generator_spec.rb
+- spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb
+- spec/lib/gitlab/background_migration/backfill_environment_tiers_spec.rb
+- spec/lib/gitlab/background_migration/backfill_root_storage_statistics_fork_storage_sizes_spec.rb
+- spec/lib/gitlab/background_migration/backfill_snippet_repositories_spec.rb
+- spec/lib/gitlab/background_migration/backfill_user_details_fields_spec.rb
+- spec/lib/gitlab/background_migration/job_coordinator_spec.rb
+- spec/lib/gitlab/checks/container_moved_spec.rb
+- spec/lib/gitlab/checks/project_created_spec.rb
+- spec/lib/gitlab/ci/trace/archive_spec.rb
+- spec/lib/gitlab/database/decomposition/migrate_spec.rb
+- spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb
+- spec/lib/gitlab/database/load_balancing_spec.rb
+- spec/lib/gitlab/database/lock_writes_manager_spec.rb
+- spec/lib/gitlab/database/migration_helpers/loose_foreign_key_helpers_spec.rb
+- spec/lib/gitlab/database/migration_helpers/v2_spec.rb
+- spec/lib/gitlab/database/migration_helpers_spec.rb
+- spec/lib/gitlab/database/migrations/observers/transaction_duration_spec.rb
+- spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb
+- spec/lib/gitlab/database/migrations/timeout_helpers_spec.rb
+- spec/lib/gitlab/database/partitioning/list/convert_table_spec.rb
+- spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb
+- spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb
+- spec/lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table_spec.rb
+- spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb
+- spec/lib/gitlab/database/reflection_spec.rb
+- spec/lib/gitlab/database/transaction/observer_spec.rb
+- spec/lib/gitlab/database/with_lock_retries_spec.rb
+- spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb
+- spec/lib/gitlab/fogbugz_import/project_creator_spec.rb
+- spec/lib/gitlab/git_access_project_spec.rb
+- spec/lib/gitlab/git_access_spec.rb
+- spec/lib/gitlab/gitaly_client/with_feature_flag_actors_spec.rb
+- spec/lib/gitlab/import_export/importer_spec.rb
+- spec/lib/gitlab/import_export/project/export_task_spec.rb
+- spec/lib/gitlab/import_export/project/import_task_spec.rb
+- spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb
+- spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb
+- spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb
+- spec/lib/gitlab/issuable_metadata_spec.rb
+- spec/lib/gitlab/legacy_github_import/project_creator_spec.rb
+- spec/lib/gitlab/noteable_metadata_spec.rb
+- spec/lib/gitlab/patch/redis_cache_store_spec.rb
+- spec/lib/gitlab/project_search_results_spec.rb
+- spec/lib/gitlab/project_template_spec.rb
+- spec/lib/gitlab/reference_extractor_spec.rb
+- spec/lib/gitlab/relative_positioning/mover_spec.rb
+- spec/lib/gitlab/sample_data_template_spec.rb
+- spec/lib/gitlab/themes_spec.rb
+- spec/lib/gitlab/utils/username_and_email_generator_spec.rb
+- spec/mailers/emails/service_desk_spec.rb
+- spec/mailers/notify_spec.rb
+- spec/migrations/20221002234454_finalize_group_member_namespace_id_migration_spec.rb
+- spec/migrations/20221018050323_add_objective_and_keyresult_to_work_item_types_spec.rb
+- spec/migrations/20221018062308_schedule_backfill_project_namespace_details_spec.rb
+- spec/migrations/20221018095434_schedule_disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb
+- spec/migrations/20221018193635_ensure_task_note_renaming_background_migration_finished_spec.rb
+- spec/migrations/20221021145820_create_routing_table_for_builds_metadata_v2_spec.rb
+- spec/migrations/20221025043930_change_default_value_on_password_last_changed_at_to_user_details_spec.rb
+- spec/migrations/20221028022627_add_index_on_password_last_changed_at_to_user_details_spec.rb
+- spec/migrations/20221101032521_add_default_preferred_language_to_application_settings_spec.rb
+- spec/migrations/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings_spec.rb
+- spec/migrations/20221102090943_create_second_partition_for_builds_metadata_spec.rb
+- spec/migrations/20221102231130_finalize_backfill_user_details_fields_spec.rb
+- spec/migrations/20221104115712_backfill_project_statistics_storage_size_without_uploads_size_spec.rb
+- spec/migrations/20221110152133_delete_orphans_approval_rules_spec.rb
+- spec/migrations/20221115173607_ensure_work_item_type_backfill_migration_finished_spec.rb
+- spec/migrations/20221122132812_schedule_prune_stale_project_export_jobs_spec.rb
+- spec/migrations/20221123133054_queue_reset_status_on_container_repositories_spec.rb
+- spec/migrations/20221209110934_update_import_sources_on_application_settings_spec.rb
+- spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb
+- spec/migrations/20221209235940_cleanup_o_auth_access_tokens_with_null_expires_in_spec.rb
+- spec/migrations/20221210154044_update_active_billable_users_index_spec.rb
+- spec/migrations/20221215151822_schedule_backfill_releases_author_id_spec.rb
+- spec/migrations/20221219122320_copy_clickhouse_connection_string_to_encrypted_var_spec.rb
+- spec/migrations/20221220131020_bump_default_partition_id_value_for_ci_tables_spec.rb
+- spec/migrations/20221221110733_remove_temp_index_for_project_statistics_upload_size_migration_spec.rb
+- spec/migrations/20221223123019_delete_queued_jobs_for_vulnerabilities_feedback_migration_spec.rb
+- spec/migrations/20221226153252_queue_fix_incoherent_packages_size_on_project_statistics_spec.rb
+- spec/migrations/20230116111252_finalize_todo_sanitization_spec.rb
+- spec/migrations/20230117114739_clear_duplicate_jobs_cookies_spec.rb
+- spec/migrations/20230118144623_schedule_migration_for_remediation_spec.rb
+- spec/migrations/20230125195503_queue_backfill_compliance_violations_spec.rb
+- spec/migrations/20230130182412_schedule_create_vulnerability_links_migration_spec.rb
+- spec/migrations/20230131125844_add_project_id_name_id_version_index_to_installable_npm_packages_spec.rb
+- spec/migrations/20230201171450_finalize_backfill_environment_tier_migration_spec.rb
+- spec/migrations/20230208125736_schedule_migration_for_links_spec.rb
+- spec/migrations/20230209222452_schedule_remove_project_group_link_with_missing_groups_spec.rb
+- spec/migrations/20230220102212_swap_columns_ci_build_needs_big_int_conversion_spec.rb
+- spec/migrations/20230221093533_add_tmp_partial_index_on_vulnerability_report_types_spec.rb
+- spec/migrations/20230223065753_finalize_nullify_creator_id_of_orphaned_projects_spec.rb
+- spec/migrations/20230224085743_update_issues_internal_id_scope_spec.rb
+- spec/migrations/20230224144233_migrate_evidences_from_raw_metadata_spec.rb
+- spec/migrations/20230228142350_add_notifications_work_item_widget_spec.rb
+- spec/migrations/20230302811133_re_migrate_redis_slot_keys_spec.rb
+- spec/migrations/20230309071242_delete_security_policy_bot_users_spec.rb
+- spec/migrations/20230313142631_backfill_ml_candidates_package_id_spec.rb
+- spec/migrations/20230313150531_reschedule_migration_for_remediation_spec.rb
+- spec/migrations/20230317004428_migrate_daily_redis_hll_events_to_weekly_aggregation_spec.rb
+- spec/migrations/20230317162059_add_current_user_todos_work_item_widget_spec.rb
+- spec/migrations/20230321170823_backfill_ml_candidates_internal_id_spec.rb
+- spec/migrations/20230322085041_remove_user_namespace_records_from_vsa_aggregation_spec.rb
+- spec/migrations/20230327123333_backfill_product_analytics_data_collector_host_spec.rb
+- spec/migrations/20230328030101_add_secureflag_training_provider_spec.rb
+- spec/migrations/20230328100534_truncate_error_tracking_tables_spec.rb
+- spec/migrations/20230412141541_reschedule_links_avoiding_duplication_spec.rb
+- spec/migrations/20230412185837_queue_populate_vulnerability_dismissal_fields_spec.rb
+- spec/migrations/20230419105225_remove_phabricator_from_application_settings_spec.rb
+- spec/migrations/20230426085615_queue_backfill_resource_link_events_spec.rb
+- spec/migrations/20230426102200_fix_import_sources_on_application_settings_after_phabricator_removal_spec.rb
+- spec/migrations/20230428085332_remove_shimo_zentao_integration_records_spec.rb
+- spec/migrations/20230515153600_finalize_back_fill_prepared_at_merge_requests_spec.rb
+- spec/migrations/20230522220709_ensure_incident_work_item_type_backfill_is_finished_spec.rb
+- spec/migrations/add_namespaces_emails_enabled_column_data_spec.rb
+- spec/migrations/add_okr_hierarchy_restrictions_spec.rb
+- spec/migrations/add_projects_emails_enabled_column_data_spec.rb
+- spec/migrations/cleanup_bigint_conversion_for_merge_request_metrics_for_self_hosts_spec.rb
+- spec/migrations/cleanup_vulnerability_state_transitions_with_same_from_state_to_state_spec.rb
+- spec/migrations/delete_migrate_shared_vulnerability_scanners_spec.rb
+- spec/migrations/drop_packages_events_table_spec.rb
+- spec/migrations/ensure_commit_user_mentions_note_id_bigint_backfill_is_finished_for_gitlab_dot_com_spec.rb
+- spec/migrations/ensure_design_user_mentions_note_id_bigint_backfill_is_finished_for_gitlab_dot_com_spec.rb
+- spec/migrations/ensure_epic_user_mentions_bigint_backfill_is_finished_for_gitlab_dot_com_spec.rb
+- spec/migrations/ensure_issue_user_mentions_bigint_backfill_is_finished_for_gitlab_dot_com_spec.rb
+- spec/migrations/ensure_merge_request_metrics_id_bigint_backfill_is_finished_for_gitlab_dot_com_spec.rb
+- spec/migrations/ensure_mr_user_mentions_note_id_bigint_backfill_is_finished_for_gitlab_dot_com_spec.rb
+- spec/migrations/ensure_suggestions_note_id_bigint_backfill_is_finished_for_gitlab_dot_com_spec.rb
+- spec/migrations/ensure_timelogs_note_id_bigint_backfill_is_finished_for_gitlab_dot_com_spec.rb
+- spec/migrations/ensure_unique_debian_packages_spec.rb
+- spec/migrations/ensure_vum_bigint_backfill_is_finished_for_gl_dot_com_spec.rb
+- spec/migrations/finalize_invalid_member_cleanup_spec.rb
+- spec/migrations/finalize_issues_iid_scoping_to_namespace_spec.rb
+- spec/migrations/finalize_issues_namespace_id_backfilling_spec.rb
+- spec/migrations/insert_daily_invites_trial_plan_limits_spec.rb
+- spec/migrations/nullify_last_error_from_project_mirror_data_spec.rb
+- spec/migrations/queue_backfill_prepared_at_data_spec.rb
+- spec/migrations/queue_backfill_user_details_fields_spec.rb
+- spec/migrations/queue_populate_projects_star_count_spec.rb
+- spec/migrations/recount_epic_cache_counts_spec.rb
+- spec/migrations/recount_epic_cache_counts_v3_spec.rb
+- spec/migrations/remove_flowdock_integration_records_spec.rb
+- spec/migrations/requeue_backfill_admin_mode_scope_for_personal_access_tokens_spec.rb
+- spec/migrations/reschedule_incident_work_item_type_id_backfill_spec.rb
+- spec/migrations/reschedule_migrate_shared_vulnerability_scanners_spec.rb
+- spec/migrations/schedule_fixing_security_scan_statuses_spec.rb
+- spec/migrations/second_recount_epic_cache_counts_spec.rb
+- spec/migrations/set_email_confirmation_setting_before_removing_send_user_confirmation_email_column_spec.rb
+- spec/migrations/set_email_confirmation_setting_from_send_user_confirmation_email_setting_spec.rb
+- spec/migrations/set_email_confirmation_setting_from_soft_email_confirmation_ff_spec.rb
+- spec/migrations/swap_epic_user_mentions_note_id_to_bigint_for_gitlab_dot_com_spec.rb
+- spec/migrations/swap_merge_request_user_mentions_note_id_to_bigint_2_spec.rb
+- spec/migrations/swap_note_diff_files_note_id_to_bigint_for_gitlab_dot_com_spec.rb
+- spec/migrations/swap_sent_notifications_id_columns_spec.rb
+- spec/migrations/swap_snippet_user_mentions_note_id_to_bigint_for_gitlab_dot_com_spec.rb
+- spec/migrations/swap_suggestions_note_id_to_bigint_for_gitlab_dot_com_spec.rb
+- spec/migrations/swap_timelogs_note_id_to_bigint_for_gitlab_dot_com_spec.rb
+- spec/models/abuse_report_spec.rb
+- spec/models/analytics/cycle_analytics/aggregation_spec.rb
+- spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb
+- spec/models/analytics/cycle_analytics/merge_request_stage_event_spec.rb
+- spec/models/application_record_spec.rb
+- spec/models/concerns/mentionable_spec.rb
+- spec/models/concerns/pg_full_text_searchable_spec.rb
+- spec/models/concerns/reset_on_column_errors_spec.rb
+- spec/models/concerns/routable_spec.rb
+- spec/models/container_repository_spec.rb
+- spec/models/deploy_key_spec.rb
+- spec/models/design_management/design_spec.rb
+- spec/models/event_spec.rb
+- spec/models/hooks/system_hook_spec.rb
+- spec/models/issue_spec.rb
+- spec/models/member_spec.rb
+- spec/models/namespace/root_storage_statistics_spec.rb
+- spec/models/namespace_setting_spec.rb
+- spec/models/namespace_spec.rb
+- spec/models/namespace_statistics_spec.rb
+- spec/models/note_spec.rb
+- spec/models/notification_recipient_spec.rb
+- spec/models/project_authorization_spec.rb
+- spec/models/project_spec.rb
+- spec/models/project_team_spec.rb
+- spec/models/project_wiki_spec.rb
+- spec/models/review_spec.rb
+- spec/models/snippet_spec.rb
+- spec/models/user_spec.rb
+- spec/policies/ci/build_policy_spec.rb
+- spec/policies/design_management/design_policy_spec.rb
+- spec/policies/global_policy_spec.rb
+- spec/policies/namespace/root_storage_statistics_policy_spec.rb
+- spec/policies/note_policy_spec.rb
+- spec/policies/packages/policies/project_policy_spec.rb
+- spec/policies/project_policy_spec.rb
+- spec/presenters/merge_request_presenter_spec.rb
+- spec/requests/admin/users_controller_spec.rb
+- spec/requests/api/access_requests_spec.rb
+- spec/requests/api/alert_management_alerts_spec.rb
+- spec/requests/api/boards_spec.rb
+- spec/requests/api/clusters/agent_tokens_spec.rb
+- spec/requests/api/clusters/agents_spec.rb
+- spec/requests/api/commits_spec.rb
+- spec/requests/api/discussions_spec.rb
+- spec/requests/api/doorkeeper_access_spec.rb
+- spec/requests/api/environments_spec.rb
+- spec/requests/api/events_spec.rb
+- spec/requests/api/files_spec.rb
+- spec/requests/api/graphql/boards/board_list_issues_query_spec.rb
+- spec/requests/api/graphql/ci/config_spec.rb
+- spec/requests/api/graphql/ci/pipeline_schedules_spec.rb
+- spec/requests/api/graphql/current_user_query_spec.rb
+- spec/requests/api/graphql/merge_request/merge_request_spec.rb
+- spec/requests/api/graphql/mutations/award_emojis/add_spec.rb
+- spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb
+- spec/requests/api/graphql/namespace/projects_spec.rb
+- spec/requests/api/graphql/namespace/root_storage_statistics_spec.rb
+- spec/requests/api/graphql/project/fork_targets_spec.rb
+- spec/requests/api/graphql/project/merge_request_spec.rb
+- spec/requests/api/graphql/project/merge_requests_spec.rb
+- spec/requests/api/graphql/project/project_members_spec.rb
+- spec/requests/api/graphql/project/recent_issue_boards_query_spec.rb
+- spec/requests/api/graphql/users/set_namespace_commit_email_spec.rb
+- spec/requests/api/groups_spec.rb
+- spec/requests/api/import_bitbucket_server_spec.rb
+- spec/requests/api/import_github_spec.rb
+- spec/requests/api/integrations_spec.rb
+- spec/requests/api/internal/base_spec.rb
+- spec/requests/api/invitations_spec.rb
+- spec/requests/api/issues/get_project_issues_spec.rb
+- spec/requests/api/issues/issues_spec.rb
+- spec/requests/api/issues/post_projects_issues_spec.rb
+- spec/requests/api/issues/put_projects_issues_spec.rb
+- spec/requests/api/keys_spec.rb
+- spec/requests/api/labels_spec.rb
+- spec/requests/api/maven_packages_spec.rb
+- spec/requests/api/merge_request_approvals_spec.rb
+- spec/requests/api/merge_requests_spec.rb
+- spec/requests/api/metrics/dashboard/annotations_spec.rb
+- spec/requests/api/metrics/user_starred_dashboards_spec.rb
+- spec/requests/api/namespaces_spec.rb
+- spec/requests/api/notes_spec.rb
+- spec/requests/api/project_events_spec.rb
+- spec/requests/api/project_hooks_spec.rb
+- spec/requests/api/project_import_spec.rb
+- spec/requests/api/project_milestones_spec.rb
+- spec/requests/api/project_packages_spec.rb
+- spec/requests/api/projects_spec.rb
+- spec/requests/api/protected_tags_spec.rb
+- spec/requests/api/resource_access_tokens_spec.rb
+- spec/requests/api/resource_label_events_spec.rb
+- spec/requests/api/resource_milestone_events_spec.rb
+- spec/requests/api/resource_state_events_spec.rb
+- spec/requests/api/submodules_spec.rb
+- spec/requests/api/task_completion_status_spec.rb
+- spec/requests/api/users_preferences_spec.rb
+- spec/requests/api/users_spec.rb
+- spec/requests/git_http_spec.rb
+- spec/requests/ide_controller_spec.rb
+- spec/requests/lfs_http_spec.rb
+- spec/requests/oauth/applications_controller_spec.rb
+- spec/requests/oauth/authorizations_controller_spec.rb
+- spec/requests/profiles/comment_templates_controller_spec.rb
+- spec/requests/profiles/notifications_controller_spec.rb
+- spec/requests/projects/harbor/repositories_controller_spec.rb
+- spec/requests/projects/settings/packages_and_registries_controller_spec.rb
+- spec/requests/projects/tags_controller_spec.rb
+- spec/requests/projects/wikis_controller_spec.rb
+- spec/requests/recursive_webhook_detection_spec.rb
+- spec/requests/search_controller_spec.rb
+- spec/requests/user_settings_spec.rb
+- spec/requests/users_controller_spec.rb
+- spec/requests/warden_spec.rb
+- spec/serializers/admin/abuse_report_details_entity_spec.rb
+- spec/serializers/ci/pipeline_entity_spec.rb
+- spec/serializers/diff_file_base_entity_spec.rb
+- spec/serializers/merge_request_current_user_entity_spec.rb
+- spec/services/admin/plan_limits/update_service_spec.rb
+- spec/services/admin/set_feature_flag_service_spec.rb
+- spec/services/auth/container_registry_authentication_service_spec.rb
+- spec/services/award_emojis/add_service_spec.rb
+- spec/services/ci/abort_pipelines_service_spec.rb
+- spec/services/draft_notes/publish_service_spec.rb
+- spec/services/environments/schedule_to_delete_review_apps_service_spec.rb
+- spec/services/import/bitbucket_server_service_spec.rb
+- spec/services/import/fogbugz_service_spec.rb
+- spec/services/import/github_service_spec.rb
+- spec/services/import/gitlab_projects/create_project_service_spec.rb
+- spec/services/issuable/bulk_update_service_spec.rb
+- spec/services/issues/create_service_spec.rb
+- spec/services/issues/update_service_spec.rb
+- spec/services/merge_requests/build_service_spec.rb
+- spec/services/merge_requests/create_service_spec.rb
+- spec/services/merge_requests/push_options_handler_service_spec.rb
+- spec/services/merge_requests/update_service_spec.rb
+- spec/services/milestones/promote_service_spec.rb
+- spec/services/milestones/transfer_service_spec.rb
+- spec/services/namespace_settings/update_service_spec.rb
+- spec/services/notes/build_service_spec.rb
+- spec/services/notes/copy_service_spec.rb
+- spec/services/notes/create_service_spec.rb
+- spec/services/notes/update_service_spec.rb
+- spec/services/notification_service_spec.rb
+- spec/services/packages/npm/create_package_service_spec.rb
+- spec/services/post_receive_service_spec.rb
+- spec/services/preview_markdown_service_spec.rb
+- spec/services/projects/create_from_template_service_spec.rb
+- spec/services/projects/create_service_spec.rb
+- spec/services/projects/destroy_service_spec.rb
+- spec/services/projects/download_service_spec.rb
+- spec/services/projects/fork_service_spec.rb
+- spec/services/projects/move_access_service_spec.rb
+- spec/services/projects/move_deploy_keys_projects_service_spec.rb
+- spec/services/projects/move_forks_service_spec.rb
+- spec/services/projects/move_lfs_objects_projects_service_spec.rb
+- spec/services/projects/move_notification_settings_service_spec.rb
+- spec/services/projects/move_project_authorizations_service_spec.rb
+- spec/services/projects/move_project_group_links_service_spec.rb
+- spec/services/projects/move_project_members_service_spec.rb
+- spec/services/projects/move_users_star_projects_service_spec.rb
+- spec/services/projects/overwrite_project_service_spec.rb
+- spec/services/projects/participants_service_spec.rb
+- spec/services/projects/transfer_service_spec.rb
+- spec/services/projects/update_service_spec.rb
+- spec/services/repositories/destroy_service_spec.rb
+- spec/services/resource_access_tokens/create_service_spec.rb
+- spec/services/snippets/create_service_spec.rb
+- spec/services/todo_service_spec.rb
+- spec/services/upload_service_spec.rb
+- spec/services/users/destroy_service_spec.rb
+- spec/services/users/migrate_records_to_ghost_user_service_spec.rb
+- spec/services/users/set_namespace_commit_email_service_spec.rb
+- spec/services/users/update_service_spec.rb
+- spec/services/work_items/update_service_spec.rb
+- spec/tasks/gitlab/backup_rake_spec.rb
+- spec/tasks/gitlab/check_rake_spec.rb
+- spec/tasks/import_rake_spec.rb
+- spec/views/layouts/header/_new_dropdown.haml_spec.rb
+- spec/views/layouts/profile.html.haml_spec.rb
+- spec/views/profiles/preferences/show.html.haml_spec.rb
+- spec/workers/new_issue_worker_spec.rb
+- spec/workers/new_merge_request_worker_spec.rb
diff --git a/spec/support/matchers/have_user.rb b/spec/support/matchers/have_user.rb
new file mode 100644
index 00000000000..64fc84a75cf
--- /dev/null
+++ b/spec/support/matchers/have_user.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+RSpec::Matchers.define :have_user do |user|
+ match do |resource|
+ raise ArgumentError, 'Unknown resource type' unless resource.is_a?(Group) || resource.is_a?(Project)
+
+ expect(resource.has_user?(user)).to be_truthy
+ end
+
+ failure_message do |group|
+ "Expected #{group} to have the user #{user} among its members"
+ end
+end
diff --git a/spec/support/migration.rb b/spec/support/migration.rb
index fc8a4bb12fb..dadcbb1941e 100644
--- a/spec/support/migration.rb
+++ b/spec/support/migration.rb
@@ -17,7 +17,7 @@ RSpec.configure do |config|
end
config.after(:context, :migration) do
- Gitlab::CurrentSettings.clear_in_memory_application_settings!
+ Gitlab::ApplicationSettingFetcher.clear_in_memory_application_settings!
end
config.append_after(:context, :migration) do
diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml
index 81196fdcbfa..7256fdb4018 100644
--- a/spec/support/rspec_order_todo.yml
+++ b/spec/support/rspec_order_todo.yml
@@ -94,7 +94,6 @@
- './ee/spec/controllers/groups/security/merge_commit_reports_controller_spec.rb'
- './ee/spec/controllers/groups/security/policies_controller_spec.rb'
- './ee/spec/controllers/groups/security/vulnerabilities_controller_spec.rb'
-- './ee/spec/controllers/groups/sso_controller_spec.rb'
- './ee/spec/controllers/groups/todos_controller_spec.rb'
- './ee/spec/controllers/groups/wikis_controller_spec.rb'
- './ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb'
@@ -284,7 +283,6 @@
- './ee/spec/features/groups/settings/user_configures_insights_spec.rb'
- './ee/spec/features/groups/settings/user_searches_in_settings_spec.rb'
- './ee/spec/features/groups_spec.rb'
-- './ee/spec/features/groups/sso_spec.rb'
- './ee/spec/features/groups/wikis_spec.rb'
- './ee/spec/features/groups/wiki/user_views_wiki_empty_spec.rb'
- './ee/spec/features/ide/user_opens_ide_spec.rb'
@@ -918,7 +916,6 @@
- './ee/spec/helpers/gitlab_subscriptions/upcoming_reconciliation_helper_spec.rb'
- './ee/spec/helpers/groups/ldap_sync_helper_spec.rb'
- './ee/spec/helpers/groups/security_features_helper_spec.rb'
-- './ee/spec/helpers/groups/sso_helper_spec.rb'
- './ee/spec/helpers/kerberos_helper_spec.rb'
- './ee/spec/helpers/license_helper_spec.rb'
- './ee/spec/helpers/license_monitoring_helper_spec.rb'
@@ -1691,7 +1688,7 @@
- './ee/spec/models/gitlab_subscription_spec.rb'
- './ee/spec/models/gitlab_subscriptions/upcoming_reconciliation_spec.rb'
- './ee/spec/models/group_deletion_schedule_spec.rb'
-- './ee/spec/models/group_member_spec.rb'
+- './ee/spec/models/ee/group_member_spec.rb'
- './ee/spec/models/group_merge_request_approval_setting_spec.rb'
- './ee/spec/models/groups/repository_storage_move_spec.rb'
- './ee/spec/models/group_wiki_repository_spec.rb'
@@ -1715,7 +1712,7 @@
- './ee/spec/models/label_note_spec.rb'
- './ee/spec/models/ldap_group_link_spec.rb'
- './ee/spec/models/license_spec.rb'
-- './ee/spec/models/member_spec.rb'
+- './ee/spec/models/ee/member_spec.rb'
- './ee/spec/models/merge_request/blocking_spec.rb'
- './ee/spec/models/merge_request_block_spec.rb'
- './ee/spec/models/merge_requests/compliance_violation_spec.rb'
@@ -1740,7 +1737,7 @@
- './ee/spec/models/project_feature_spec.rb'
- './ee/spec/models/project_import_data_spec.rb'
- './ee/spec/models/project_import_state_spec.rb'
-- './ee/spec/models/project_member_spec.rb'
+- './ee/spec/models/ee/project_member_spec.rb'
- './ee/spec/models/project_repository_state_spec.rb'
- './ee/spec/models/project_security_setting_spec.rb'
- './ee/spec/models/protected_branch/required_code_owners_section_spec.rb'
@@ -2619,14 +2616,11 @@
- './ee/spec/services/gitlab_subscriptions/preview_billable_user_change_service_spec.rb'
- './ee/spec/services/gitlab_subscriptions/reconciliations/calculate_seat_count_data_service_spec.rb'
- './ee/spec/services/gitlab_subscriptions/reconciliations/check_seat_usage_alerts_eligibility_service_spec.rb'
-- './ee/spec/services/group_saml/group_managed_accounts/clean_up_members_service_spec.rb'
-- './ee/spec/services/group_saml/group_managed_accounts/transfer_membership_service_spec.rb'
- './ee/spec/services/group_saml/identity/destroy_service_spec.rb'
- './ee/spec/services/group_saml/saml_group_links/create_service_spec.rb'
- './ee/spec/services/group_saml/saml_group_links/destroy_service_spec.rb'
- './ee/spec/services/group_saml/saml_provider/create_service_spec.rb'
- './ee/spec/services/group_saml/saml_provider/update_service_spec.rb'
-- './ee/spec/services/group_saml/sign_up_service_spec.rb'
- './ee/spec/services/groups/create_service_spec.rb'
- './ee/spec/services/groups/destroy_service_spec.rb'
- './ee/spec/services/groups/epics_count_service_spec.rb'
@@ -3338,7 +3332,6 @@
- './spec/db/schema_spec.rb'
- './spec/dependencies/omniauth_saml_spec.rb'
- './spec/experiments/application_experiment_spec.rb'
-- './spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb'
- './spec/features/abuse_report_spec.rb'
- './spec/features/action_cable_logging_spec.rb'
- './spec/features/admin/admin_abuse_reports_spec.rb'
@@ -6116,7 +6109,6 @@
- './spec/lib/gitlab/github_import/markdown_text_spec.rb'
- './spec/lib/gitlab/github_import/milestone_finder_spec.rb'
- './spec/lib/gitlab/github_import/object_counter_spec.rb'
-- './spec/lib/gitlab/github_import/page_counter_spec.rb'
- './spec/lib/gitlab/github_import/parallel_importer_spec.rb'
- './spec/lib/gitlab/github_import/parallel_scheduling_spec.rb'
- './spec/lib/gitlab/github_import/representation/diff_note_spec.rb'
@@ -6244,6 +6236,7 @@
- './spec/lib/gitlab/i18n/translation_entry_spec.rb'
- './spec/lib/gitlab/identifier_spec.rb'
- './spec/lib/gitlab/import/database_helpers_spec.rb'
+- './spec/lib/gitlab/import/page_counter_spec.rb'
- './spec/lib/gitlab/import_export/after_export_strategies/base_after_export_strategy_spec.rb'
- './spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb'
- './spec/lib/gitlab/import_export/after_export_strategy_builder_spec.rb'
@@ -7116,7 +7109,6 @@
- './spec/models/concerns/counter_attribute_spec.rb'
- './spec/models/concerns/cron_schedulable_spec.rb'
- './spec/models/concerns/cross_database_modification_spec.rb'
-- './spec/models/concerns/database_event_tracking_spec.rb'
- './spec/models/concerns/database_reflection_spec.rb'
- './spec/models/concerns/delete_with_limit_spec.rb'
- './spec/models/concerns/deployment_platform_spec.rb'
@@ -8117,7 +8109,6 @@
- './spec/requests/api/tags_spec.rb'
- './spec/requests/api/task_completion_status_spec.rb'
- './spec/requests/api/templates_spec.rb'
-- './spec/requests/api/terraform/modules/v1/packages_spec.rb'
- './spec/requests/api/terraform/state_spec.rb'
- './spec/requests/api/terraform/state_version_spec.rb'
- './spec/requests/api/todos_spec.rb'
@@ -9469,7 +9460,6 @@
- './spec/workers/concerns/cronjob_queue_spec.rb'
- './spec/workers/concerns/gitlab/github_import/object_importer_spec.rb'
- './spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb'
-- './spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb'
- './spec/workers/concerns/limited_capacity/job_tracker_spec.rb'
- './spec/workers/concerns/limited_capacity/worker_spec.rb'
- './spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb'
diff --git a/spec/support/rspec_run_time.rb b/spec/support/rspec_run_time.rb
index 977d4885624..2cfa4008fd3 100644
--- a/spec/support/rspec_run_time.rb
+++ b/spec/support/rspec_run_time.rb
@@ -87,7 +87,8 @@ module Support
unless @last_elapsed_seconds.nil? || elapsed_seconds - @last_elapsed_seconds < 1
output.puts \
"# [RSpecRunTime] RSpec elapsed time: #{readable_duration(elapsed_seconds)}. " \
- "#{current_rss_in_megabytes}\n\n"
+ "#{current_rss_in_megabytes}. " \
+ "#{load_average}\n\n"
end
@last_elapsed_seconds = elapsed_seconds
@@ -98,6 +99,14 @@ module Support
"Current RSS: ~#{rss_in_megabytes.round}M"
end
+
+ def load_average
+ if File.exist?('/proc/loadavg')
+ "load average: #{File.read('/proc/loadavg')}"
+ else
+ `uptime`[/(load average:[^\n]+)/, 1] || '(uptime failed)'
+ end
+ end
end
end
end
diff --git a/spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb b/spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb
index 3eeaa52d221..a451608a5cc 100644
--- a/spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb
+++ b/spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb
@@ -1,33 +1,42 @@
# frozen_string_literal: true
+# This context generates two catalog resources, each with two releases/versions.
+# `resource1` has versions `v1.0` and `v1.1`, with releases that have real commit shas.
+# `resource2` has versions `v2.0` and `v2.1`.
RSpec.shared_context 'when there are catalog resources with versions' do
let_it_be(:current_user) { create(:user) }
- let_it_be(:project1) { create(:project, :repository, name: 'A') }
- let_it_be(:project2) { create(:project, :repository, name: 'Z') }
- let_it_be(:project3) { create(:project, :repository, name: 'L', description: 'Z') }
+ let_it_be(:project1) { create(:project, :custom_repo, files: { 'README.md' => 'Readme v1.0' }) }
+ let_it_be(:project2) { create(:project, :repository) }
+
let_it_be_with_reload(:resource1) { create(:ci_catalog_resource, project: project1) }
let_it_be_with_reload(:resource2) { create(:ci_catalog_resource, project: project2) }
- let_it_be(:resource3) { create(:ci_catalog_resource, project: project3) }
- let_it_be_with_reload(:release_v1_0) { create(:release, project: project1, tag: 'v1.0', released_at: 4.days.ago) }
- let_it_be(:release_v1_1) { create(:release, project: project1, tag: 'v1.1', released_at: 3.days.ago) }
- let_it_be(:release_v2_0) { create(:release, project: project2, tag: 'v2.0', released_at: 2.days.ago) }
- let_it_be(:release_v2_1) { create(:release, project: project2, tag: 'v2.1', released_at: 1.day.ago) }
+ let(:v1_0) { resource1.versions.by_name('v1.0').first }
+ let(:v1_1) { resource1.versions.by_name('v1.1').first }
+ let(:v2_0) { resource2.versions.by_name('v2.0').first }
+ let(:v2_1) { resource2.versions.by_name('v2.1').first }
- let_it_be(:v1_0) do
- create(:ci_catalog_resource_version, catalog_resource: resource1, release: release_v1_0, created_at: 1.day.ago)
- end
+ before_all do
+ project1.repository.create_branch('branch_v1.1', project1.default_branch)
- let_it_be(:v1_1) do
- create(:ci_catalog_resource_version, catalog_resource: resource1, release: release_v1_1, created_at: 2.days.ago)
- end
+ project1.repository.update_file(
+ current_user, 'README.md', 'Readme v1.1', message: 'Update readme', branch_name: 'branch_v1.1')
- let_it_be(:v2_0) do
- create(:ci_catalog_resource_version, catalog_resource: resource2, release: release_v2_0, created_at: 3.days.ago)
- end
+ tag_v1_0 = project1.repository.add_tag(current_user, 'v1.0', project1.default_branch)
+ tag_v1_1 = project1.repository.add_tag(current_user, 'v1.1', 'branch_v1.1')
+
+ release_v1_0 = create(:release, project: project1, tag: 'v1.0', released_at: 4.days.ago,
+ sha: tag_v1_0.dereferenced_target.sha)
+ release_v1_1 = create(:release, project: project1, tag: 'v1.1', released_at: 3.days.ago,
+ sha: tag_v1_1.dereferenced_target.sha)
+
+ release_v2_0 = create(:release, project: project2, tag: 'v2.0', released_at: 2.days.ago)
+ release_v2_1 = create(:release, project: project2, tag: 'v2.1', released_at: 1.day.ago)
- let_it_be(:v2_1) do
+ create(:ci_catalog_resource_version, catalog_resource: resource1, release: release_v1_0, created_at: 1.day.ago)
+ create(:ci_catalog_resource_version, catalog_resource: resource1, release: release_v1_1, created_at: 2.days.ago)
+ create(:ci_catalog_resource_version, catalog_resource: resource2, release: release_v2_0, created_at: 3.days.ago)
create(:ci_catalog_resource_version, catalog_resource: resource2, release: release_v2_1, created_at: 4.days.ago)
end
end
diff --git a/spec/support/shared_contexts/features/integrations/instance_integrations_shared_context.rb b/spec/support/shared_contexts/features/integrations/instance_integrations_shared_context.rb
index c740917cec4..678199a35ea 100644
--- a/spec/support/shared_contexts/features/integrations/instance_integrations_shared_context.rb
+++ b/spec/support/shared_contexts/features/integrations/instance_integrations_shared_context.rb
@@ -7,7 +7,7 @@ RSpec.shared_context 'instance integration activation' do
before do
sign_in(user)
- gitlab_enable_admin_mode_sign_in(user)
+ enable_admin_mode!(user)
end
def visit_instance_integrations
diff --git a/spec/support/shared_contexts/graphql/types/query_type_shared_context.rb b/spec/support/shared_contexts/graphql/types/query_type_shared_context.rb
index 6ab41d87f44..391336526e3 100644
--- a/spec/support/shared_contexts/graphql/types/query_type_shared_context.rb
+++ b/spec/support/shared_contexts/graphql/types/query_type_shared_context.rb
@@ -26,6 +26,8 @@ RSpec.shared_context 'with FOSS query type fields' do
:milestone,
:namespace,
:note,
+ :organization,
+ :organizations,
:package,
:project,
:projects,
diff --git a/spec/support/shared_contexts/lib/gitlab/database/partitioning/list_partitioning_shared_context.rb b/spec/support/shared_contexts/lib/gitlab/database/partitioning/list_partitioning_shared_context.rb
index 3d978a6fde4..fec11349b62 100644
--- a/spec/support/shared_contexts/lib/gitlab/database/partitioning/list_partitioning_shared_context.rb
+++ b/spec/support/shared_contexts/lib/gitlab/database/partitioning/list_partitioning_shared_context.rb
@@ -13,6 +13,8 @@ RSpec.shared_context 'with a table structure for converting a table to a list pa
let(:table_identifier) { "#{connection.current_schema}.#{table_name}" }
let(:partitioning_column) { :partition_number }
let(:partitioning_default) { 1 }
+ let(:single_partitioning_value) { 1 }
+ let(:multiple_partitioning_values) { [1, 2, 3, 4] }
let(:referenced_table_name) { '_test_referenced_table' }
let(:other_referenced_table_name) { '_test_other_referenced_table' }
let(:referencing_table_name) { '_test_referencing_table' }
diff --git a/spec/support/shared_contexts/lib/gitlab/sidekiq_logging/structured_logger_shared_context.rb b/spec/support/shared_contexts/lib/gitlab/sidekiq_logging/structured_logger_shared_context.rb
index 69c20a00c5a..060976eba2d 100644
--- a/spec/support/shared_contexts/lib/gitlab/sidekiq_logging/structured_logger_shared_context.rb
+++ b/spec/support/shared_contexts/lib/gitlab/sidekiq_logging/structured_logger_shared_context.rb
@@ -93,8 +93,6 @@ RSpec.shared_context 'structured_logger' do
end
before do
- allow(Sidekiq).to receive(:logger).and_return(logger)
-
allow(subject).to receive(:current_time).and_return(timestamp.to_f)
allow(Process).to receive(:clock_gettime).with(Process::CLOCK_REALTIME, :float_second)
@@ -103,7 +101,7 @@ RSpec.shared_context 'structured_logger' do
.and_return(clock_thread_cputime_start, clock_thread_cputime_end)
end
- subject { described_class.new }
+ subject { described_class.new(logger) }
def call_subject(job, queue)
# This structured logger strongly depends on execution of `InstrumentationLogger`
diff --git a/spec/support/shared_contexts/lib/gitlab/sidekiq_middleware/server_metrics_shared_context.rb b/spec/support/shared_contexts/lib/gitlab/sidekiq_middleware/server_metrics_shared_context.rb
index 85ee3ed4183..d541dee438e 100644
--- a/spec/support/shared_contexts/lib/gitlab/sidekiq_middleware/server_metrics_shared_context.rb
+++ b/spec/support/shared_contexts/lib/gitlab/sidekiq_middleware/server_metrics_shared_context.rb
@@ -55,6 +55,7 @@ RSpec.shared_context 'server metrics with mocked prometheus' do
allow(Gitlab::Metrics).to receive(:gauge).with(:sidekiq_mem_total_bytes, anything, {}, :all).and_return(sidekiq_mem_total_bytes)
allow(concurrency_metric).to receive(:set)
+ allow(completion_seconds_metric).to receive(:get)
end
end
diff --git a/spec/support/shared_examples/analytics/cycle_analytics/parentable_examples.rb b/spec/support/shared_examples/analytics/cycle_analytics/parentable_examples.rb
index 5fd0e685c67..a6f028a5a04 100644
--- a/spec/support/shared_examples/analytics/cycle_analytics/parentable_examples.rb
+++ b/spec/support/shared_examples/analytics/cycle_analytics/parentable_examples.rb
@@ -14,15 +14,14 @@ RSpec.shared_examples 'value stream analytics namespace models' do
end
end
- context 'when Namespace is given' do
- it 'fails' do
- namespace = create(:namespace)
+ context 'when personal namespace is given' do
+ it 'is valid' do
+ namespace = create(:namespace, owner: create(:user))
model = build(factory_name, namespace: namespace)
- expect(model).to be_invalid
-
- error_message = s_('CycleAnalytics|the assigned object is not supported')
- expect(model.errors.messages_for(:namespace)).to eq([error_message])
+ expect(model).to be_valid
+ expect(model.save).to be(true)
+ expect(model.namespace).to eq(namespace)
end
end
end
diff --git a/spec/support/shared_examples/ci/runner_with_status_scope_shared_examples.rb b/spec/support/shared_examples/ci/runner_with_status_scope_shared_examples.rb
new file mode 100644
index 00000000000..510721d66b2
--- /dev/null
+++ b/spec/support/shared_examples/ci/runner_with_status_scope_shared_examples.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+RSpec.shared_examples 'runner with status scope' do
+ describe '.with_status' do
+ subject(:scope) { described_class.with_status(status) }
+
+ described_class::AVAILABLE_STATUSES.each do |status|
+ context "with #{status} status" do
+ let(:status) { status }
+
+ it "calls corresponding :#{status} scope" do
+ expect(described_class).to receive(status.to_sym).and_call_original
+
+ scope
+ end
+ end
+ end
+
+ context 'with invalid status' do
+ let(:status) { :invalid_status }
+
+ it 'returns all records' do
+ expect(described_class).to receive(:all).at_least(:once).and_call_original
+
+ expect { scope }.not_to raise_error
+ end
+ end
+ end
+end
diff --git a/spec/support/shared_examples/controllers/base_action_controller_shared_examples.rb b/spec/support/shared_examples/controllers/base_action_controller_shared_examples.rb
index 2eab533ef7f..97748fe9e89 100644
--- a/spec/support/shared_examples/controllers/base_action_controller_shared_examples.rb
+++ b/spec/support/shared_examples/controllers/base_action_controller_shared_examples.rb
@@ -53,7 +53,7 @@ RSpec.shared_examples 'Base action controller' do
skip: 'https://gitlab.com/gitlab-org/gitlab/-/issues/424334' do
before do
stub_rails_env('development')
- stub_feature_flags(vite: true)
+ allow(ViteHelper).to receive(:vite_enabled?).and_return(true)
end
it 'adds vite csp' do
@@ -65,7 +65,7 @@ RSpec.shared_examples 'Base action controller' do
context 'when vite disabled' do
before do
- stub_feature_flags(vite: false)
+ allow(ViteHelper).to receive(:vite_enabled?).and_return(false)
end
it "doesn't add vite csp" do
diff --git a/spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb b/spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb
index c921da10347..94208e29d77 100644
--- a/spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb
+++ b/spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb
@@ -125,9 +125,9 @@ RSpec.shared_examples 'a GitHub-ish import controller: GET status' do
group_a.add_owner(user)
create(:project, :import_started, import_type: provider, namespace: user.namespace)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get :status, format: :json
- end.count
+ end
stub_client(repos: [repo, org_repo], orgs: [])
group_b = create(:group)
@@ -135,7 +135,7 @@ RSpec.shared_examples 'a GitHub-ish import controller: GET status' do
create(:project, :import_started, import_type: provider, namespace: user.namespace)
expect { get :status, format: :json }
- .not_to exceed_all_query_limit(control_count)
+ .not_to exceed_all_query_limit(control)
end
context 'when user is not allowed to import projects' do
diff --git a/spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb b/spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb
index 446bc4cd92f..461dcf2fcb6 100644
--- a/spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb
+++ b/spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb
@@ -65,7 +65,7 @@ RSpec.shared_examples 'issuables list meta-data' do |issuable_type, action = nil
issuable.update!(source_project: fork_project(project))
end
- expect { get_action(action, project) }.not_to exceed_query_limit(control.count)
+ expect { get_action(action, project) }.not_to exceed_query_limit(control)
end
describe "when given empty collection" do
diff --git a/spec/support/shared_examples/controllers/snippet_shared_examples.rb b/spec/support/shared_examples/controllers/snippet_shared_examples.rb
index f49cc979368..bf8183525a9 100644
--- a/spec/support/shared_examples/controllers/snippet_shared_examples.rb
+++ b/spec/support/shared_examples/controllers/snippet_shared_examples.rb
@@ -17,12 +17,12 @@ RSpec.shared_examples 'snippets views' do
project = create(:project, namespace: user.namespace)
create(:project_snippet, project: project, author: user)
- control_count = ActiveRecord::QueryRecorder.new { get(:index, params: params) }.count
+ control = ActiveRecord::QueryRecorder.new { get(:index, params: params) }
project = create(:project, namespace: user.namespace)
create(:project_snippet, project: project, author: user)
- expect { get(:index, params: params) }.not_to exceed_query_limit(control_count)
+ expect { get(:index, params: params) }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/support/shared_examples/controllers/variables_shared_examples.rb b/spec/support/shared_examples/controllers/variables_shared_examples.rb
index d979683cce7..c807ffaba6f 100644
--- a/spec/support/shared_examples/controllers/variables_shared_examples.rb
+++ b/spec/support/shared_examples/controllers/variables_shared_examples.rb
@@ -82,7 +82,7 @@ RSpec.shared_examples 'PATCH #update updates variables' do
context 'with valid new variable parameters' do
let(:variables_attributes) do
[
- variable_attributes.merge(secret_value: 'other_value'),
+ variable_attributes.merge(secret_value: 'other_value', description: 'other_description'),
new_variable_attributes
]
end
@@ -94,6 +94,7 @@ RSpec.shared_examples 'PATCH #update updates variables' do
variable.reload
expect(variable.value).to eq('other_value')
+ expect(variable.description).to eq('other_description')
expect(variable.raw?).not_to be(old_raw)
end
diff --git a/spec/support/shared_examples/features/inviting_groups_shared_examples.rb b/spec/support/shared_examples/features/inviting_groups_shared_examples.rb
index 4921676a065..d21e69b72e1 100644
--- a/spec/support/shared_examples/features/inviting_groups_shared_examples.rb
+++ b/spec/support/shared_examples/features/inviting_groups_shared_examples.rb
@@ -9,7 +9,7 @@ RSpec.shared_examples 'inviting groups search results' do
before do
sign_in(admin)
- gitlab_enable_admin_mode_sign_in(admin)
+ enable_admin_mode!(admin)
end
it 'shows groups where the admin has no direct membership' do
diff --git a/spec/support/shared_examples/features/variable_list_drawer_shared_examples.rb b/spec/support/shared_examples/features/variable_list_drawer_shared_examples.rb
index 04e73cfeee7..1fb4c42ee16 100644
--- a/spec/support/shared_examples/features/variable_list_drawer_shared_examples.rb
+++ b/spec/support/shared_examples/features/variable_list_drawer_shared_examples.rb
@@ -99,7 +99,7 @@ RSpec.shared_examples 'variable list drawer' do
toggle_protected
toggle_masked
toggle_expanded
- click_button('Edit variable')
+ find_by_testid('ci-variable-confirm-button').click
wait_for_requests
diff --git a/spec/support/shared_examples/features/work_items_shared_examples.rb b/spec/support/shared_examples/features/work_items_shared_examples.rb
index 3dfd7604914..0f35681ca7d 100644
--- a/spec/support/shared_examples/features/work_items_shared_examples.rb
+++ b/spec/support/shared_examples/features/work_items_shared_examples.rb
@@ -1,16 +1,45 @@
# frozen_string_literal: true
+RSpec.shared_context 'with work_items_mvc_2' do |flag|
+ before do
+ stub_feature_flags(work_items_mvc_2: flag)
+
+ page.refresh
+ wait_for_all_requests
+ end
+end
+
RSpec.shared_examples 'work items title' do
let(:title_selector) { '[data-testid="work-item-title"]' }
+ let(:title_with_edit_selector) { '[data-testid="work-item-title-with-edit"]' }
- it 'successfully shows and changes the title of the work item' do
- expect(work_item.reload.title).to eq work_item.title
+ context 'when the work_items_mvc_2 FF is disabled' do
+ include_context 'with work_items_mvc_2', false
- find(title_selector).set("Work item title")
- find(title_selector).native.send_keys(:return)
- wait_for_requests
+ it 'successfully shows and changes the title of the work item' do
+ expect(work_item.reload.title).to eq work_item.title
+
+ find(title_selector).set("Work item title")
+ find(title_selector).native.send_keys(:return)
+ wait_for_requests
+
+ expect(work_item.reload.title).to eq 'Work item title'
+ end
+ end
+
+ context 'when the work_items_mvc_2 FF is enabled' do
+ include_context 'with work_items_mvc_2', true
+
+ it 'successfully shows and changes the title of the work item' do
+ expect(work_item.reload.title).to eq work_item.title
+
+ click_button 'Edit', match: :first
+ find(title_with_edit_selector).set("Work item title")
+ send_keys([:command, :enter])
+ wait_for_requests
- expect(work_item.reload.title).to eq 'Work item title'
+ expect(work_item.reload.title).to eq 'Work item title'
+ end
end
end
@@ -299,54 +328,62 @@ RSpec.shared_examples 'work items labels' do
end
RSpec.shared_examples 'work items description' do
- it 'shows GFM autocomplete', :aggregate_failures do
- click_button "Edit description"
- fill_in _('Description'), with: "@#{user.username}"
+ context 'for work_items_mvc_2 FF' do
+ [true, false].each do |work_items_mvc_2_flag| # rubocop:disable RSpec/UselessDynamicDefinition -- check it for both off and on
+ let(:edit_button) { work_items_mvc_2_flag ? 'Edit' : 'Edit description' }
- page.within('.atwho-container') do
- expect(page).to have_text(user.name)
- end
- end
+ include_context 'with work_items_mvc_2', work_items_mvc_2_flag
- it 'autocompletes available quick actions', :aggregate_failures do
- click_button "Edit description"
- fill_in _('Description'), with: '/'
+ it 'shows GFM autocomplete', :aggregate_failures do
+ click_button edit_button, match: :first
+ fill_in _('Description'), with: "@#{user.username}"
- page.within('#at-view-commands') do
- expect(page).to have_text("title")
- expect(page).to have_text("shrug")
- expect(page).to have_text("tableflip")
- expect(page).to have_text("close")
- expect(page).to have_text("cc")
- end
- end
+ page.within('.atwho-container') do
+ expect(page).to have_text(user.name)
+ end
+ end
- context 'on conflict' do
- let_it_be(:other_user) { create(:user) }
- let(:expected_warning) { 'Someone edited the description at the same time you did.' }
+ it 'autocompletes available quick actions', :aggregate_failures do
+ click_button edit_button, match: :first
+ fill_in _('Description'), with: '/'
- before do
- project.add_developer(other_user)
- end
+ page.within('#at-view-commands') do
+ expect(page).to have_text("title")
+ expect(page).to have_text("shrug")
+ expect(page).to have_text("tableflip")
+ expect(page).to have_text("close")
+ expect(page).to have_text("cc")
+ end
+ end
- it 'shows conflict message when description changes', :aggregate_failures do
- click_button "Edit description"
+ context 'on conflict' do
+ let_it_be(:other_user) { create(:user) }
+ let(:expected_warning) { 'Someone edited the description at the same time you did.' }
- ::WorkItems::UpdateService.new(
- container: work_item.project,
- current_user: other_user,
- params: { description: "oh no!" }
- ).execute(work_item)
+ before do
+ project.add_developer(other_user)
+ end
- wait_for_requests
+ it 'shows conflict message when description changes', :aggregate_failures do
+ click_button edit_button, match: :first
+
+ ::WorkItems::UpdateService.new(
+ container: work_item.project,
+ current_user: other_user,
+ params: { description: "oh no!" }
+ ).execute(work_item)
+
+ wait_for_requests
- fill_in _('Description'), with: 'oh yeah!'
+ fill_in _('Description'), with: 'oh yeah!'
- expect(page).to have_text(expected_warning)
+ expect(page).to have_text(expected_warning)
- click_button s_('WorkItem|Save and overwrite')
+ click_button s_('WorkItem|Save and overwrite')
- expect(page.find('[data-testid="work-item-description"]')).to have_text("oh yeah!")
+ expect(page.find('[data-testid="work-item-description"]')).to have_text("oh yeah!")
+ end
+ end
end
end
end
@@ -368,17 +405,61 @@ RSpec.shared_examples 'work items invite members' do
end
RSpec.shared_examples 'work items milestone' do
- it 'searches and sets or removes milestone for the work item' do
- click_button s_('WorkItem|Add to milestone')
- send_keys "\"#{milestone.title}\""
- select_listbox_item(milestone.title, exact_text: true)
+ context 'on work_items_mvc_2 FF off' do
+ include_context 'with work_items_mvc_2', false
+
+ it 'searches and sets or removes milestone for the work item' do
+ click_button s_('WorkItem|Add to milestone')
+ send_keys "\"#{milestone.title}\""
+ select_listbox_item(milestone.title, exact_text: true)
+
+ expect(page).to have_button(milestone.title)
+
+ click_button milestone.title
+ select_listbox_item(s_('WorkItem|No milestone'), exact_text: true)
+
+ expect(page).to have_button(s_('WorkItem|Add to milestone'))
+ end
+ end
+
+ context 'on work_items_mvc_2 FF on' do
+ let(:work_item_milestone_selector) { '[data-testid="work-item-milestone-with-edit"]' }
+
+ include_context 'with work_items_mvc_2', true
- expect(page).to have_button(milestone.title)
+ it 'passes axe automated accessibility testing in closed state' do
+ expect(page).to be_axe_clean.within(work_item_milestone_selector)
+ end
+
+ context 'when edit is clicked' do
+ it 'selects and updates the right milestone', :aggregate_failures do
+ find_and_click_edit(work_item_milestone_selector)
+
+ select_listbox_item(milestones[10].title)
+
+ wait_for_requests
+ within(work_item_milestone_selector) do
+ expect(page).to have_text(milestones[10].title)
+ end
+
+ find_and_click_edit(work_item_milestone_selector)
- click_button milestone.title
- select_listbox_item(s_('WorkItem|No milestone'), exact_text: true)
+ find_and_click_clear(work_item_milestone_selector)
- expect(page).to have_button(s_('WorkItem|Add to milestone'))
+ expect(find(work_item_milestone_selector)).to have_content('None')
+ end
+
+ it 'searches and sets or removes milestone for the work item' do
+ find_and_click_edit(work_item_milestone_selector)
+ within(work_item_milestone_selector) do
+ send_keys "\"#{milestones[11].title}\""
+ wait_for_requests
+
+ select_listbox_item(milestones[11].title)
+ expect(page).to have_text(milestones[11].title)
+ end
+ end
+ end
end
end
@@ -522,3 +603,101 @@ RSpec.shared_examples 'work items parent' do |type|
expect(find_by_testid('work-item-parent-none')).to have_text('None')
end
end
+
+def find_and_click_edit(selector)
+ within(selector) do
+ click_button 'Edit'
+ end
+end
+
+def find_and_click_clear(selector)
+ within(selector) do
+ click_button 'Clear'
+ end
+end
+
+RSpec.shared_examples 'work items iteration' do
+ let(:work_item_iteration_selector) { '[data-testid="work-item-iteration-with-edit"]' }
+ let_it_be(:iteration_cadence) { create(:iterations_cadence, group: group, active: true) }
+ let_it_be(:iteration) do
+ create(
+ :iteration,
+ iterations_cadence: iteration_cadence,
+ group: group,
+ start_date: 1.day.from_now,
+ due_date: 2.days.from_now
+ )
+ end
+
+ let_it_be(:iteration2) do
+ create(
+ :iteration,
+ iterations_cadence: iteration_cadence,
+ group: group,
+ start_date: 2.days.ago,
+ due_date: 1.day.ago,
+ state: 'closed',
+ skip_future_date_validation: true
+ )
+ end
+
+ include_context 'with work_items_mvc_2', true
+
+ context 'for accessibility' do
+ it 'has the work item iteration with edit' do
+ expect(page).to have_selector(work_item_iteration_selector)
+ end
+
+ it 'passes axe automated accessibility testing in closed state' do
+ expect(page).to be_axe_clean.within(work_item_iteration_selector)
+ end
+
+ # TODO, add test for automated accessibility after it is fixed in GlCollapsibleListBox
+ # Invalid ARIA attribute value: aria-owns="listbox-##" when searchable
+ # it 'passes axe automated accessibility testing in open state' do
+ # within(work_item_iteration) do
+ # click_button _('Edit')
+ # wait_for_requests
+
+ # expect(page).to be_axe_clean.within(work_item_iteration)
+ # end
+ # end
+ end
+
+ context 'when edit is clicked' do
+ it 'selects and updates the right iteration', :aggregate_failures do
+ find_and_click_edit(work_item_iteration_selector)
+
+ within(work_item_iteration_selector) do
+ expect(page).to have_text(iteration_cadence.title)
+ expect(page).to have_text(iteration.period)
+ end
+
+ select_listbox_item(iteration.period)
+
+ wait_for_requests
+
+ within(work_item_iteration_selector) do
+ expect(page).to have_text(iteration_cadence.title)
+ expect(page).to have_text(iteration.period)
+ end
+
+ find_and_click_edit(work_item_iteration_selector)
+
+ find_and_click_clear(work_item_iteration_selector)
+
+ expect(find(work_item_iteration_selector)).to have_content('None')
+ end
+
+ it 'searches and sets or removes iteration for the work item' do
+ find_and_click_edit(work_item_iteration_selector)
+ within(work_item_iteration_selector) do
+ send_keys(iteration.title)
+ wait_for_requests
+
+ select_listbox_item(iteration.period)
+ expect(page).to have_text(iteration.period)
+ end
+ end
+ end
+end
diff --git a/spec/support/shared_examples/lib/gitlab/import_export/import_failure_service_shared_examples.rb b/spec/support/shared_examples/lib/gitlab/import_export/import_failure_service_shared_examples.rb
index 67afd2035c4..afb1bfb6dc9 100644
--- a/spec/support/shared_examples/lib/gitlab/import_export/import_failure_service_shared_examples.rb
+++ b/spec/support/shared_examples/lib/gitlab/import_export/import_failure_service_shared_examples.rb
@@ -34,6 +34,7 @@ RSpec.shared_examples 'log import failure' do |importable_column|
expect(import_failure.exception_message).to eq(standard_error_message)
expect(import_failure.correlation_id_value).to eq(correlation_id)
expect(import_failure.retry_count).to eq(retry_count)
+ expect(import_failure.external_identifiers).to eq("iid" => 1234)
end
end
end
diff --git a/spec/support/shared_examples/migrations/add_work_item_widget_shared_examples.rb b/spec/support/shared_examples/migrations/add_work_item_widget_shared_examples.rb
index 37c338a7712..5681dbc158d 100644
--- a/spec/support/shared_examples/migrations/add_work_item_widget_shared_examples.rb
+++ b/spec/support/shared_examples/migrations/add_work_item_widget_shared_examples.rb
@@ -1,9 +1,9 @@
# frozen_string_literal: true
-RSpec.shared_examples 'migration that adds widget to work items definitions' do |widget_name:|
+RSpec.shared_examples 'migration that adds widget to work items definitions' do |widget_name:, work_item_types:|
let(:migration) { described_class.new }
let(:work_item_definitions) { table(:work_item_widget_definitions) }
- let(:work_item_type_count) { 7 }
+ let(:work_item_type_count) { work_item_types.size }
describe '#up' do
it "creates widget definition in all types" do
@@ -14,11 +14,13 @@ RSpec.shared_examples 'migration that adds widget to work items definitions' do
end
it 'logs a warning if the type is missing' do
+ type_name = work_item_types.first
+
allow(described_class::WorkItemType).to receive(:find_by_name_and_namespace_id).and_call_original
allow(described_class::WorkItemType).to receive(:find_by_name_and_namespace_id)
- .with('Issue', nil).and_return(nil)
+ .with(type_name, nil).and_return(nil)
- expect(Gitlab::AppLogger).to receive(:warn).with('type Issue is missing, not adding widget')
+ expect(Gitlab::AppLogger).to receive(:warn).with("type #{type_name} is missing, not adding widget")
migrate!
end
end
diff --git a/spec/support/shared_examples/models/concerns/integrations/base_slack_notification_shared_examples.rb b/spec/support/shared_examples/models/concerns/integrations/base_slack_notification_shared_examples.rb
index 2dad35dc46e..d05c29c39c3 100644
--- a/spec/support/shared_examples/models/concerns/integrations/base_slack_notification_shared_examples.rb
+++ b/spec/support/shared_examples/models/concerns/integrations/base_slack_notification_shared_examples.rb
@@ -111,7 +111,7 @@ RSpec.shared_examples Integrations::BaseSlackNotification do |factory:|
end
context 'for tag_push notification' do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
let(:newrev) { '8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b' } # gitlab-test: git rev-parse refs/tags/v1.1.0
let(:ref) { 'refs/tags/v1.1.0' }
let(:data) do
diff --git a/spec/support/shared_examples/models/concerns/integrations/slack_mattermost_notifier_shared_examples.rb b/spec/support/shared_examples/models/concerns/integrations/slack_mattermost_notifier_shared_examples.rb
index 2985763426f..9e5b5ecfb48 100644
--- a/spec/support/shared_examples/models/concerns/integrations/slack_mattermost_notifier_shared_examples.rb
+++ b/spec/support/shared_examples/models/concerns/integrations/slack_mattermost_notifier_shared_examples.rb
@@ -143,7 +143,7 @@ RSpec.shared_examples Integrations::SlackMattermostNotifier do |integration_name
end
context 'tag_push events' do
- let(:oldrev) { Gitlab::Git::BLANK_SHA }
+ let(:oldrev) { Gitlab::Git::SHA1_BLANK_SHA }
let(:newrev) { '8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b' } # gitlab-test: git rev-parse refs/tags/v1.1.0
let(:ref) { 'refs/tags/v1.1.0' }
let(:data) { Git::TagHooksService.new(project, user, change: { oldrev: oldrev, newrev: newrev, ref: ref }).send(:push_data) }
diff --git a/spec/support/shared_examples/models/concerns/repository_storage_movable_shared_examples.rb b/spec/support/shared_examples/models/concerns/repository_storage_movable_shared_examples.rb
index 993c94e2695..ff1d1f66ac4 100644
--- a/spec/support/shared_examples/models/concerns/repository_storage_movable_shared_examples.rb
+++ b/spec/support/shared_examples/models/concerns/repository_storage_movable_shared_examples.rb
@@ -76,7 +76,7 @@ RSpec.shared_examples 'handles repository moves' do
context 'and transitions to scheduled' do
it 'triggers the corresponding repository storage worker' do
- expect(repository_storage_worker).to receive(:perform_async).with(container.id, 'test_second_storage', storage_move.id)
+ expect(repository_storage_worker).to receive(:perform_async).with(storage_move.id)
storage_move.schedule!
diff --git a/spec/support/shared_examples/models/database_event_tracking_shared_examples.rb b/spec/support/shared_examples/models/database_event_tracking_shared_examples.rb
deleted file mode 100644
index 56b36b3ea07..00000000000
--- a/spec/support/shared_examples/models/database_event_tracking_shared_examples.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-# frozen_string_literal: true
-
-RSpec.shared_examples 'database events tracking' do
- describe 'events tracking' do
- # required definitions:
- # :record, :update_params
- #
- # other available attributes:
- # :project, :namespace
-
- let(:user) { nil }
- let(:category) { described_class.to_s }
- let(:label) { described_class.table_name }
- let(:action) { "database_event_#{property}" }
- let(:record_tracked_attributes) { record.attributes.slice(*described_class::SNOWPLOW_ATTRIBUTES.map(&:to_s)) }
- let(:base_extra) { record_tracked_attributes.merge(project: try(:project), namespace: try(:namespace)) }
-
- before do
- allow(Gitlab::Tracking).to receive(:database_event).and_call_original
- end
-
- describe '#create' do
- it_behaves_like 'Snowplow event tracking', overrides: { tracking_method: :database_event } do
- subject(:create_record) { record }
-
- let(:extra) { base_extra }
- let(:property) { 'create' }
- end
- end
-
- describe '#update', :freeze_time do
- it_behaves_like 'Snowplow event tracking', overrides: { tracking_method: :database_event } do
- subject(:update_record) { record.update!(update_params) }
-
- let(:extra) { base_extra.merge(update_params.stringify_keys) }
- let(:property) { 'update' }
- end
- end
-
- describe '#destroy' do
- it_behaves_like 'Snowplow event tracking', overrides: { tracking_method: :database_event } do
- subject(:delete_record) { record.destroy! }
-
- let(:extra) { base_extra }
- let(:property) { 'destroy' }
- end
- end
- end
-end
diff --git a/spec/support/shared_examples/models/member_shared_examples.rb b/spec/support/shared_examples/models/member_shared_examples.rb
index 731500c4510..01d6642e814 100644
--- a/spec/support/shared_examples/models/member_shared_examples.rb
+++ b/spec/support/shared_examples/models/member_shared_examples.rb
@@ -54,6 +54,25 @@ RSpec.shared_examples 'inherited access level as a member of entity' do
expect { non_member.update!(access_level: Gitlab::Access::GUEST) }
.to change { non_member.reload.access_level }
end
+
+ context 'when access request to entity is pending' do
+ before do
+ parent_entity.members.where(user: user).update!(requested_at: Time.current)
+ end
+
+ it 'is allowed to be a reporter of the entity' do
+ entity.add_reporter(user)
+
+ expect(member.access_level).to eq(Gitlab::Access::REPORTER)
+ end
+
+ it 'is allowed to change to be a guest of the entity' do
+ entity.add_maintainer(user)
+
+ expect { member.update!(access_level: Gitlab::Access::GUEST) }
+ .to change { member.reload.access_level }.from(Gitlab::Access::MAINTAINER).to(Gitlab::Access::GUEST)
+ end
+ end
end
end
@@ -63,10 +82,9 @@ RSpec.shared_examples '#valid_level_roles' do |entity_name|
let(:entity) { create(entity_name) } # rubocop:disable Rails/SaveBang
let(:entity_member) { create("#{entity_name}_member", :developer, source: entity, user: member_user) }
let(:presenter) { described_class.new(entity_member, current_user: member_user) }
+ let(:all_permissible_roles) { entity_member.class.permissible_access_level_roles(member_user, entity) }
context 'when no parent member is present' do
- let(:all_permissible_roles) { entity_member.class.permissible_access_level_roles(member_user, entity) }
-
it 'returns all permissible roles' do
expect(presenter.valid_level_roles).to eq(all_permissible_roles)
end
@@ -80,6 +98,16 @@ RSpec.shared_examples '#valid_level_roles' do |entity_name|
it 'returns higher roles when a parent member is present' do
expect(presenter.valid_level_roles).to eq(expected_roles)
end
+
+ context 'when access request to parent is pending' do
+ before do
+ group.members.with_user(member_user).update!(requested_at: Time.current)
+ end
+
+ it 'returns all permissible roles' do
+ expect(presenter.valid_level_roles).to eq(all_permissible_roles)
+ end
+ end
end
end
@@ -108,7 +136,7 @@ RSpec.shared_examples_for "member creation" do
it 'does not update the member' do
member = described_class.add_member(source, project_bot, :maintainer, current_user: user)
- expect(source.users.reload).to include(project_bot)
+ expect(source.reload).to have_user(project_bot)
expect(member).to be_persisted
expect(member.access_level).to eq(Gitlab::Access::DEVELOPER)
expect(member.errors.full_messages).to include(/not authorized to update member/)
@@ -119,7 +147,7 @@ RSpec.shared_examples_for "member creation" do
it 'adds the member' do
member = described_class.add_member(source, project_bot, :maintainer, current_user: user)
- expect(source.users.reload).to include(project_bot)
+ expect(source.reload).to have_user(project_bot)
expect(member).to be_persisted
end
end
@@ -130,7 +158,7 @@ RSpec.shared_examples_for "member creation" do
member = described_class.add_member(source, user, :maintainer, current_user: admin)
expect(member).to be_persisted
- expect(source.users.reload).to include(user)
+ expect(source.reload).to have_user(user)
expect(member.created_by).to eq(admin)
end
end
@@ -140,7 +168,7 @@ RSpec.shared_examples_for "member creation" do
member = described_class.add_member(source, user, :maintainer, current_user: admin)
expect(member).not_to be_persisted
- expect(source.users.reload).not_to include(user)
+ expect(source).not_to have_user(user)
expect(member.errors.full_messages).to include(/not authorized to create member/)
end
end
@@ -153,52 +181,52 @@ RSpec.shared_examples_for "member creation" do
described_class.access_levels.each do |sym_key, int_access_level|
it "accepts the :#{sym_key} symbol as access level", :aggregate_failures do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
member = described_class.add_member(source, user.id, sym_key)
expect(member.access_level).to eq(int_access_level)
- expect(source.users.reload).to include(user)
+ expect(source.reload).to have_user(user)
end
it "accepts the #{int_access_level} integer as access level", :aggregate_failures do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
member = described_class.add_member(source, user.id, int_access_level)
expect(member.access_level).to eq(int_access_level)
- expect(source.users.reload).to include(user)
+ expect(source.reload).to have_user(user)
end
end
context 'with no current_user' do
context 'when called with a known user id' do
it 'adds the user as a member' do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
described_class.add_member(source, user.id, :maintainer)
- expect(source.users.reload).to include(user)
+ expect(source.reload).to have_user(user)
end
end
context 'when called with an unknown user id' do
it 'does not add the user as a member' do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
described_class.add_member(source, non_existing_record_id, :maintainer)
- expect(source.users.reload).not_to include(user)
+ expect(source.reload).not_to have_user(user)
end
end
context 'when called with a user object' do
it 'adds the user as a member' do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
described_class.add_member(source, user, :maintainer)
- expect(source.users.reload).to include(user)
+ expect(source.reload).to have_user(user)
end
end
@@ -208,29 +236,29 @@ RSpec.shared_examples_for "member creation" do
end
it 'adds the requester as a member', :aggregate_failures do
- expect(source.users).not_to include(user)
+ expect(source.reload).not_to have_user(user)
expect(source.requesters.exists?(user_id: user)).to eq(true)
described_class.add_member(source, user, :maintainer)
- expect(source.users.reload).to include(user)
- expect(source.requesters.reload.exists?(user_id: user)).to eq(false)
+ expect(source.reload).to have_user(user)
+ expect(source.requesters.exists?(user_id: user)).to eq(false)
end
end
context 'when called with a known user email' do
it 'adds the user as a member' do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
described_class.add_member(source, user.email, :maintainer)
- expect(source.users.reload).to include(user)
+ expect(source.reload).to have_user(user)
end
end
context 'when called with an unknown user email' do
it 'creates an invited member' do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
described_class.add_member(source, 'user@example.com', :maintainer)
@@ -245,18 +273,18 @@ RSpec.shared_examples_for "member creation" do
described_class.add_member(source, email_starting_with_number, :maintainer)
expect(source.members.invite.pluck(:invite_email)).to include(email_starting_with_number)
- expect(source.users.reload).not_to include(user)
+ expect(source.reload).not_to have_user(user)
end
end
end
context 'when current_user can update member', :enable_admin_mode do
it 'creates the member' do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
described_class.add_member(source, user, :maintainer, current_user: admin)
- expect(source.users.reload).to include(user)
+ expect(source.reload).to have_user(user)
end
context 'when called with a requester user object' do
@@ -265,12 +293,12 @@ RSpec.shared_examples_for "member creation" do
end
it 'adds the requester as a member', :aggregate_failures do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
expect(source.requesters.exists?(user_id: user)).to be_truthy
described_class.add_member(source, user, :maintainer, current_user: admin)
- expect(source.users.reload).to include(user)
+ expect(source.reload).to have_user(user)
expect(source.requesters.reload.exists?(user_id: user)).to be_falsy
end
end
@@ -278,11 +306,11 @@ RSpec.shared_examples_for "member creation" do
context 'when current_user cannot update member' do
it 'does not create the member', :aggregate_failures do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
member = described_class.add_member(source, user, :maintainer, current_user: user)
- expect(source.users.reload).not_to include(user)
+ expect(source.reload).not_to have_user(user)
expect(member).not_to be_persisted
end
@@ -292,12 +320,12 @@ RSpec.shared_examples_for "member creation" do
end
it 'does not destroy the requester', :aggregate_failures do
- expect(source.users).not_to include(user)
+ expect(source).not_to have_user(user)
expect(source.requesters.exists?(user_id: user)).to be_truthy
described_class.add_member(source, user, :maintainer, current_user: user)
- expect(source.users.reload).not_to include(user)
+ expect(source.reload).not_to have_user(user)
expect(source.requesters.exists?(user_id: user)).to be_truthy
end
end
@@ -311,7 +339,7 @@ RSpec.shared_examples_for "member creation" do
context 'with no current_user' do
it 'updates the member' do
- expect(source.users).to include(user)
+ expect(source).to have_user(user)
described_class.add_member(source, user, :maintainer)
@@ -321,7 +349,7 @@ RSpec.shared_examples_for "member creation" do
context 'when current_user can update member', :enable_admin_mode do
it 'updates the member' do
- expect(source.users).to include(user)
+ expect(source).to have_user(user)
described_class.add_member(source, user, :maintainer, current_user: admin)
@@ -331,7 +359,7 @@ RSpec.shared_examples_for "member creation" do
context 'when current_user cannot update member' do
it 'does not update the member' do
- expect(source.users).to include(user)
+ expect(source).to have_user(user)
described_class.add_member(source, user, :maintainer, current_user: user)
diff --git a/spec/support/shared_examples/models/members_notifications_shared_example.rb b/spec/support/shared_examples/models/members_notifications_shared_example.rb
index 5c783b5cfa7..01212ed950d 100644
--- a/spec/support/shared_examples/models/members_notifications_shared_example.rb
+++ b/spec/support/shared_examples/models/members_notifications_shared_example.rb
@@ -9,32 +9,6 @@ RSpec.shared_examples 'members notifications' do |entity_type|
allow(member).to receive(:notification_service).and_return(notification_service)
end
- describe "#after_create" do
- let(:member) { build(:"#{entity_type}_member", "#{entity_type}": create(entity_type.to_s), user: user) }
-
- it "sends email to user" do
- expect(notification_service).to receive(:"new_#{entity_type}_member").with(member)
-
- member.save!
- end
- end
-
- describe "#after_update" do
- let(:member) { create(:"#{entity_type}_member", :developer) }
-
- it "calls NotificationService.update_#{entity_type}_member" do
- expect(notification_service).to receive(:"update_#{entity_type}_member").with(member)
-
- member.update_attribute(:access_level, Member::MAINTAINER)
- end
-
- it "does not send an email when the access level has not changed" do
- expect(notification_service).not_to receive(:"update_#{entity_type}_member")
-
- member.touch
- end
- end
-
describe '#after_commit' do
context 'on creation of a member requesting access' do
let(:member) do
@@ -52,27 +26,17 @@ RSpec.shared_examples 'members notifications' do |entity_type|
describe '#accept_request' do
let(:member) { create(:"#{entity_type}_member", :access_request) }
- it "calls NotificationService.new_#{entity_type}_member" do
- expect(notification_service).to receive(:"new_#{entity_type}_member").with(member)
+ it "calls NotificationService.new_member" do
+ expect(notification_service).to receive(:new_member).with(member)
member.accept_request(create(:user))
end
end
- describe "#accept_invite!" do
- let(:member) { create(:"#{entity_type}_member", :invited) }
-
- it "calls NotificationService.accept_#{entity_type}_invite" do
- expect(notification_service).to receive(:"accept_#{entity_type}_invite").with(member)
-
- member.accept_invite!(build(:user))
- end
- end
-
describe "#decline_invite!" do
let(:member) { create(:"#{entity_type}_member", :invited) }
- it "calls NotificationService.decline_#{entity_type}_invite" do
+ it "calls NotificationService.decline_invite" do
expect(notification_service).to receive(:decline_invite).with(member)
member.decline_invite!
diff --git a/spec/support/shared_examples/models/relative_positioning_shared_examples.rb b/spec/support/shared_examples/models/relative_positioning_shared_examples.rb
index 2b46c8c8fb9..692320d45d5 100644
--- a/spec/support/shared_examples/models/relative_positioning_shared_examples.rb
+++ b/spec/support/shared_examples/models/relative_positioning_shared_examples.rb
@@ -175,15 +175,15 @@ RSpec.shared_examples 'a class that supports relative positioning' do
create_items_with_positions(10..12)
a, b, c, d, e, f, *xs = create_items_with_positions([nil] * 10)
- baseline = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
described_class.move_nulls_to_end([a, b])
end
expect { described_class.move_nulls_to_end([c, d, e, f]) }
- .not_to exceed_query_limit(baseline)
+ .not_to exceed_query_limit(control)
expect { described_class.move_nulls_to_end(xs) }
- .not_to exceed_query_limit(baseline.count)
+ .not_to exceed_query_limit(control)
end
end
diff --git a/spec/support/shared_examples/quick_actions/merge_request/rebase_quick_action_shared_examples.rb b/spec/support/shared_examples/quick_actions/merge_request/rebase_quick_action_shared_examples.rb
index 92705fc1b4d..2c38c716736 100644
--- a/spec/support/shared_examples/quick_actions/merge_request/rebase_quick_action_shared_examples.rb
+++ b/spec/support/shared_examples/quick_actions/merge_request/rebase_quick_action_shared_examples.rb
@@ -59,7 +59,7 @@ RSpec.shared_examples 'rebase quick action' do
it 'tells the user a rebase is in progress' do
add_note('/rebase')
- expect(page).to have_content 'A rebase is already in progress.'
+ expect(page).to have_content Gitlab::QuickActions::MergeRequestActions::REBASE_FAILURE_REBASE_IN_PROGRESS
expect(page).not_to have_content 'Scheduled a rebase'
end
end
@@ -70,7 +70,7 @@ RSpec.shared_examples 'rebase quick action' do
it 'does not rebase the MR' do
add_note("/rebase")
- expect(page).to have_content 'This merge request cannot be rebased while there are conflicts.'
+ expect(page).to have_content Gitlab::QuickActions::MergeRequestActions::REBASE_FAILURE_UNMERGEABLE
end
end
@@ -89,7 +89,7 @@ RSpec.shared_examples 'rebase quick action' do
it 'does not rebase the MR' do
add_note("/rebase")
- expect(page).to have_content 'This merge request branch is protected from force push.'
+ expect(page).to have_content Gitlab::QuickActions::MergeRequestActions::REBASE_FAILURE_PROTECTED_BRANCH
end
end
end
diff --git a/spec/support/shared_examples/redis/multi_store_wrapper_shared_examples.rb b/spec/support/shared_examples/redis/multi_store_wrapper_shared_examples.rb
new file mode 100644
index 00000000000..a53af59f1e6
--- /dev/null
+++ b/spec/support/shared_examples/redis/multi_store_wrapper_shared_examples.rb
@@ -0,0 +1,74 @@
+# frozen_string_literal: true
+
+RSpec.shared_examples "multi_store_wrapper_shared_examples" do
+ let(:config_file_name) { instance_specific_config_file }
+ let_it_be(:pool_name) { "#{described_class.store_name.underscore}_multi_store" }
+
+ before do
+ allow(described_class).to receive(:config_file_name).and_return(Rails.root.join(config_file_name).to_s)
+ allow(described_class).to receive(:redis_yml_path).and_return('/dev/null')
+
+ clear_multistore_pool
+ end
+
+ after do
+ clear_multistore_pool
+ end
+
+ describe '.with' do
+ it 'yields a MultiStore' do
+ described_class.with do |conn|
+ expect(conn).to be_instance_of(Gitlab::Redis::MultiStore)
+ end
+ end
+
+ it 'borrows connection' do
+ described_class.with do |conn|
+ expect(Thread.current[conn.borrow_counter]).to eq(1)
+ end
+ end
+
+ context 'when running on single-threaded runtime' do
+ before do
+ allow(Gitlab::Runtime).to receive(:multi_threaded?).and_return(false)
+ end
+
+ it 'instantiates a connection pool with size 5' do
+ expect(ConnectionPool).to receive(:new).with(size: 5, name: pool_name).and_call_original
+
+ described_class.with { |_redis_shared_example| true }
+ end
+ end
+
+ context 'when running on multi-threaded runtime' do
+ before do
+ allow(Gitlab::Runtime).to receive(:multi_threaded?).and_return(true)
+ allow(Gitlab::Runtime).to receive(:max_threads).and_return(18)
+ end
+
+ it 'instantiates a connection pool with a size based on the concurrency of the worker' do
+ expect(ConnectionPool).to receive(:new).with(size: 18 + 5, name: pool_name).and_call_original
+
+ described_class.with { |_redis_shared_example| true }
+ end
+ end
+
+ context 'when there is no config at all' do
+ before do
+ # Undo top-level stub of config_file_name because we are testing that method now.
+ allow(described_class).to receive(:config_file_name).and_call_original
+ allow(described_class).to receive(:rails_root).and_return(rails_root)
+ end
+
+ it 'can run an empty block' do
+ expect { described_class.with { nil } }.not_to raise_error
+ end
+ end
+ end
+
+ def clear_multistore_pool
+ described_class.remove_instance_variable(:@multistore_pool)
+ rescue NameError
+ # raised if @pool was not set; ignore
+ end
+end
diff --git a/spec/support/shared_examples/redis/redis_new_instance_shared_examples.rb b/spec/support/shared_examples/redis/redis_new_instance_shared_examples.rb
index 4a3732efe13..9b774449379 100644
--- a/spec/support/shared_examples/redis/redis_new_instance_shared_examples.rb
+++ b/spec/support/shared_examples/redis/redis_new_instance_shared_examples.rb
@@ -15,6 +15,37 @@ RSpec.shared_examples "redis_new_instance_shared_examples" do |name, fallback_cl
it_behaves_like "redis_shared_examples"
+ describe '.pool' do
+ before do
+ allow(described_class).to receive(:config_file_name).and_call_original
+ allow(fallback_class).to receive(:params).and_return({})
+
+ clear_class_pool(described_class)
+ clear_class_pool(fallback_class)
+ end
+
+ after do
+ clear_class_pool(described_class)
+ clear_class_pool(fallback_class)
+ end
+
+ context 'when not using fallback config' do
+ it 'creates its own connection pool' do
+ expect(fallback_class.pool == described_class.pool).to eq(false)
+ end
+ end
+
+ context 'when using fallback config' do
+ before do
+ allow(described_class).to receive(:params).and_return({})
+ end
+
+ it 'uses the fallback class connection pool' do
+ expect(fallback_class.pool == described_class.pool).to eq(true)
+ end
+ end
+ end
+
describe '#fetch_config' do
subject { described_class.new('test').send(:fetch_config) }
@@ -81,4 +112,10 @@ RSpec.shared_examples "redis_new_instance_shared_examples" do |name, fallback_cl
end
end
end
+
+ def clear_class_pool(klass)
+ klass.remove_instance_variable(:@pool)
+ rescue NameError
+ # raised if @pool was not set; ignore
+ end
end
diff --git a/spec/support/shared_examples/redis/redis_shared_examples.rb b/spec/support/shared_examples/redis/redis_shared_examples.rb
index 796b483820b..1f7834a4d7c 100644
--- a/spec/support/shared_examples/redis/redis_shared_examples.rb
+++ b/spec/support/shared_examples/redis/redis_shared_examples.rb
@@ -86,6 +86,67 @@ RSpec.shared_examples "redis_shared_examples" do
end
end
+ describe '.redis_client_params' do
+ # .redis_client_params wraps over `.redis_store_options` by modifying its outputs
+ # to be compatible with `RedisClient`. We test for compatibility in this block while
+ # the contents of redis_store_options are tested in the `.params` block.
+
+ subject { described_class.new(rails_env).redis_client_params }
+
+ let(:rails_env) { 'development' }
+ let(:config_file_name) { config_old_format_socket }
+
+ shared_examples 'instrumentation_class in custom key' do
+ it 'moves instrumentation class into custom' do
+ expect(subject[:custom][:instrumentation_class]).to eq(described_class.store_name)
+ expect(subject[:instrumentation_class]).to be_nil
+ end
+ end
+
+ context 'when url is host based' do
+ context 'with old format' do
+ let(:config_file_name) { config_old_format_host }
+
+ it 'does not raise ArgumentError for invalid keywords' do
+ expect { RedisClient.config(**subject) }.not_to raise_error
+ end
+
+ it_behaves_like 'instrumentation_class in custom key'
+ end
+
+ context 'with new format' do
+ let(:config_file_name) { config_new_format_host }
+
+ where(:rails_env, :host) do
+ [
+ %w[development development-host],
+ %w[test test-host],
+ %w[production production-host]
+ ]
+ end
+
+ with_them do
+ it 'does not raise ArgumentError for invalid keywords in SentinelConfig' do
+ expect(subject[:name]).to eq(host)
+ expect { RedisClient.sentinel(**subject) }.not_to raise_error
+ end
+
+ it_behaves_like 'instrumentation_class in custom key'
+ end
+ end
+ end
+
+ context 'when url contains unix socket reference' do
+ let(:config_file_name) { config_old_format_socket }
+
+ it 'does not raise ArgumentError for invalid keywords' do
+ expect { RedisClient.config(**subject) }.not_to raise_error
+ end
+
+ it_behaves_like 'instrumentation_class in custom key'
+ end
+ end
+
describe '.params' do
subject { described_class.new(rails_env).params }
@@ -206,7 +267,7 @@ RSpec.shared_examples "redis_shared_examples" do
end
end
- describe '.with' do
+ describe '.with', if: !(described_class <= Gitlab::Redis::MultiStoreWrapper) do
let(:config_file_name) { config_old_format_socket }
before do
@@ -217,6 +278,10 @@ RSpec.shared_examples "redis_shared_examples" do
clear_pool
end
+ it 'yields a ::Redis' do
+ described_class.with { |conn| expect(conn).to be_instance_of(::Redis) }
+ end
+
context 'when running on single-threaded runtime' do
before do
allow(Gitlab::Runtime).to receive(:multi_threaded?).and_return(false)
diff --git a/spec/support/shared_examples/requests/api/terraform/modules/v1/packages_shared_examples.rb b/spec/support/shared_examples/requests/api/terraform/modules/v1/packages_shared_examples.rb
index ae2855083f6..b56de050d1e 100644
--- a/spec/support/shared_examples/requests/api/terraform/modules/v1/packages_shared_examples.rb
+++ b/spec/support/shared_examples/requests/api/terraform/modules/v1/packages_shared_examples.rb
@@ -150,8 +150,15 @@ RSpec.shared_examples 'grants terraform module package file access' do |user_typ
project.send("add_#{user_type}", user) if add_member && user_type != :anonymous
end
- it_behaves_like 'returning response status', status
it_behaves_like 'a package tracking event', described_class.name, 'pull_package'
+
+ it 'returns a valid response' do
+ subject
+
+ expect(response).to have_gitlab_http_status(status)
+ expect(response.media_type).to eq('application/octet-stream')
+ expect(response.body).to eq(package.package_files.last.file.read)
+ end
end
end
@@ -273,3 +280,169 @@ RSpec.shared_examples 'process terraform module upload' do |user_type, status, a
end
end
end
+
+RSpec.shared_examples 'handling project level terraform module download requests' do
+ using RSpec::Parameterized::TableSyntax
+ let(:project_id) { project.id }
+ let(:package_name) { package.name }
+ let(:url) { "/projects/#{project_id}/packages/terraform/modules/#{package_name}/#{module_version}?archive=tgz" }
+
+ subject { get api(url), headers: headers }
+
+ it { is_expected.to have_request_urgency(:low) }
+
+ context 'with valid project' do
+ where(:visibility, :user_role, :member, :token_type, :shared_examples_name, :expected_status) do
+ :public | :anonymous | false | nil | 'grants terraform module package file access' | :success
+ :private | :anonymous | false | nil | 'rejects terraform module packages access' | :unauthorized
+
+ :public | :developer | true | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :public | :guest | true | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :public | :developer | false | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :public | :guest | false | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :private | :developer | true | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :private | :guest | true | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :private | :developer | false | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :private | :guest | false | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :internal | :developer | true | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :internal | :guest | true | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :internal | :developer | false | :invalid | 'rejects terraform module packages access' | :unauthorized
+ :internal | :guest | false | :invalid | 'rejects terraform module packages access' | :unauthorized
+
+ :public | :developer | true | :personal_access_token | 'grants terraform module package file access' | :success
+ :public | :guest | true | :personal_access_token | 'grants terraform module package file access' | :success
+ :public | :developer | false | :personal_access_token | 'grants terraform module package file access' | :success
+ :public | :guest | false | :personal_access_token | 'grants terraform module package file access' | :success
+ :private | :developer | true | :personal_access_token | 'grants terraform module package file access' | :success
+ :private | :guest | true | :personal_access_token | 'rejects terraform module packages access' | :forbidden
+ :private | :developer | false | :personal_access_token | 'rejects terraform module packages access' | :not_found
+ :private | :guest | false | :personal_access_token | 'rejects terraform module packages access' | :not_found
+ :internal | :developer | true | :personal_access_token | 'grants terraform module package file access' | :success
+ :internal | :guest | true | :personal_access_token | 'grants terraform module package file access' | :success
+ :internal | :developer | false | :personal_access_token | 'grants terraform module package file access' | :success
+ :internal | :guest | false | :personal_access_token | 'grants terraform module package file access' | :success
+
+ :public | :developer | true | :job_token | 'grants terraform module package file access' | :success
+ :public | :guest | true | :job_token | 'grants terraform module package file access' | :success
+ :public | :developer | false | :job_token | 'grants terraform module package file access' | :success
+ :public | :guest | false | :job_token | 'grants terraform module package file access' | :success
+ :private | :developer | true | :job_token | 'grants terraform module package file access' | :success
+ :private | :guest | true | :job_token | 'rejects terraform module packages access' | :forbidden
+ :private | :developer | false | :job_token | 'rejects terraform module packages access' | :not_found
+ :private | :guest | false | :job_token | 'rejects terraform module packages access' | :not_found
+ :internal | :developer | true | :job_token | 'grants terraform module package file access' | :success
+ :internal | :guest | true | :job_token | 'grants terraform module package file access' | :success
+ :internal | :developer | false | :job_token | 'grants terraform module package file access' | :success
+ :internal | :guest | false | :job_token | 'grants terraform module package file access' | :success
+
+ :public | :anonymous | false | :deploy_token | 'grants terraform module package file access' | :success
+ :private | :anonymous | false | :deploy_token | 'grants terraform module package file access' | :success
+ :internal | :anonymous | false | :deploy_token | 'grants terraform module package file access' | :success
+ end
+
+ with_them do
+ let(:headers) do
+ case token_type
+ when :personal_access_token, :invalid
+ basic_auth_headers(user.username, token)
+ when :deploy_token
+ basic_auth_headers(deploy_token.username, token)
+ when :job_token
+ basic_auth_headers(::Gitlab::Auth::CI_JOB_USER, token)
+ else
+ {}
+ end
+ end
+
+ let(:snowplow_gitlab_standard_context) do
+ {
+ project: project,
+ namespace: project.namespace,
+ property: 'i_package_terraform_module_user'
+ }.tap do |context|
+ context[:user] = user if token_type && token_type != :deploy_token
+ context[:user] = deploy_token if token_type == :deploy_token
+ end
+ end
+
+ before do
+ project.update!(visibility: visibility.to_s)
+ end
+
+ it_behaves_like params[:shared_examples_name], params[:user_role], params[:expected_status], params[:member]
+ end
+ end
+
+ context 'with/without module version' do
+ let(:headers) { basic_auth_headers }
+ let(:finder_params) do
+ { package_name: package_name }.tap do |p|
+ p[:package_version] = module_version if module_version
+ end
+ end
+
+ before do
+ project.add_developer(user)
+ end
+
+ it 'calls the finder with the correct params' do
+ expect_next_instance_of(::Packages::TerraformModule::PackagesFinder, project, finder_params) do |finder|
+ expect(finder).to receive(:execute).and_call_original
+ end
+
+ subject
+ end
+ end
+
+ context 'with non-existent module version' do
+ let(:headers) { basic_auth_headers }
+ let(:module_version) { '1.99.322' }
+
+ before do
+ project.add_developer(user)
+ end
+
+ it_behaves_like 'returning response status', :not_found
+ end
+
+ context 'with invalid project' do
+ let(:project_id) { '123456' }
+
+ let(:headers) { basic_auth_headers }
+
+ it_behaves_like 'rejects terraform module packages access', :anonymous, :not_found
+ end
+
+ context 'with invalid package name' do
+ let(:headers) { basic_auth_headers }
+
+ [nil, '', '%20', 'unknown', '..%2F..', '../..'].each do |pkg_name|
+ context "with package name #{pkg_name}" do
+ let(:package_name) { pkg_name }
+
+ it_behaves_like 'rejects terraform module packages access', :anonymous, :not_found
+ end
+ end
+ end
+
+ context 'when terraform-get param is received' do
+ let(:headers) { basic_auth_headers }
+ let(:url) { "#{super().split('?').first}?terraform-get=1" }
+
+ before do
+ project.add_developer(user)
+ end
+
+ it 'returns a valid response' do
+ subject
+
+ expect(response.headers).to include 'X-Terraform-Get'
+ expect(response.headers['X-Terraform-Get']).to include '?archive=tgz'
+ expect(response.headers['X-Terraform-Get']).not_to include 'terraform-get=1'
+ end
+ end
+
+ def basic_auth_headers(username = user.username, password = personal_access_token.token)
+ { Authorization: "Basic #{Base64.strict_encode64("#{username}:#{password}")}" }
+ end
+end
diff --git a/spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb b/spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb
index b7247f1f243..2976018b60f 100644
--- a/spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb
+++ b/spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb
@@ -12,7 +12,7 @@ RSpec.shared_examples 'avoid N+1 on environments serialization' do
# See also: https://gitlab.com/gitlab-org/gitlab/-/issues/373151
relax_count = 4
- expect { serialize(grouping: true) }.not_to exceed_query_limit(control.count + relax_count)
+ expect { serialize(grouping: true) }.not_to exceed_query_limit(control).with_threshold(relax_count)
end
it 'avoids N+1 database queries without grouping', :request_store do
@@ -27,7 +27,7 @@ RSpec.shared_examples 'avoid N+1 on environments serialization' do
# See also: https://gitlab.com/gitlab-org/gitlab/-/issues/373151
relax_count = 5
- expect { serialize(grouping: false) }.not_to exceed_query_limit(control.count + relax_count)
+ expect { serialize(grouping: false) }.not_to exceed_query_limit(control).with_threshold(relax_count)
end
it 'does not preload for environments that does not exist in the page', :request_store do
diff --git a/spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb b/spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb
index 9d016e4830e..38c0670880d 100644
--- a/spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb
+++ b/spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb
@@ -43,11 +43,11 @@ RSpec.shared_examples 'issues move service' do |group|
described_class.new(parent, user, params).execute(issue)
end
- it 'removes all list-labels from boards and close the issue' do
+ it 'does not change labels and close the issue' do
described_class.new(parent, user, params).execute(issue)
issue.reload
- expect(issue.labels).to contain_exactly(bug, regression)
+ expect(issue.labels).to contain_exactly(bug, development, testing, regression)
expect(issue).to be_closed
end
end
@@ -59,13 +59,11 @@ RSpec.shared_examples 'issues move service' do |group|
let(:issue) { create(:labeled_issue, project: project, labels: [bug, development, testing, regression], milestone: milestone) }
let(:params) { { board_id: board1.id, from_list_id: list2.id, to_list_id: backlog.id } }
- it_behaves_like 'updating timestamps'
-
it 'keeps labels and milestone' do
described_class.new(parent, user, params).execute(issue)
issue.reload
- expect(issue.labels).to contain_exactly(bug, regression)
+ expect(issue.labels).to contain_exactly(bug, development, testing, regression)
expect(issue.milestone).to eq(milestone)
end
end
diff --git a/spec/support/shared_examples/services/common_system_notes_shared_examples.rb b/spec/support/shared_examples/services/common_system_notes_shared_examples.rb
index 1887b38b50e..14b0aa1ab08 100644
--- a/spec/support/shared_examples/services/common_system_notes_shared_examples.rb
+++ b/spec/support/shared_examples/services/common_system_notes_shared_examples.rb
@@ -1,7 +1,9 @@
# frozen_string_literal: true
-RSpec.shared_examples 'system note creation' do |update_params, note_text|
- subject { described_class.new(project: project, current_user: user).execute(issuable, old_labels: []) }
+RSpec.shared_examples 'system note creation' do |update_params, note_text, is_update = true|
+ subject do
+ described_class.new(project: project, current_user: user).execute(issuable, old_labels: [], is_update: is_update)
+ end
before do
issuable.assign_attributes(update_params)
diff --git a/spec/support/shared_examples/services/count_service_shared_examples.rb b/spec/support/shared_examples/services/count_service_shared_examples.rb
index 54c6ff79976..42fe170d2c4 100644
--- a/spec/support/shared_examples/services/count_service_shared_examples.rb
+++ b/spec/support/shared_examples/services/count_service_shared_examples.rb
@@ -10,10 +10,10 @@ RSpec.shared_examples 'a counter caching service' do
describe '#count' do
it 'caches the count', :request_store do
subject.delete_cache
- control_count = ActiveRecord::QueryRecorder.new { subject.count }.count
+ control = ActiveRecord::QueryRecorder.new { subject.count }
subject.delete_cache
- expect { 2.times { subject.count } }.not_to exceed_query_limit(control_count)
+ expect { 2.times { subject.count } }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/support/shared_examples/services/destroy_label_links_shared_examples.rb b/spec/support/shared_examples/services/destroy_label_links_shared_examples.rb
index d2b52468c25..459c957091c 100644
--- a/spec/support/shared_examples/services/destroy_label_links_shared_examples.rb
+++ b/spec/support/shared_examples/services/destroy_label_links_shared_examples.rb
@@ -8,13 +8,13 @@ RSpec.shared_examples_for 'service deleting label links of an issuable' do
end
it 'deletes label links for specified target ID and type' do
- control_count = ActiveRecord::QueryRecorder.new { execute }.count
+ control = ActiveRecord::QueryRecorder.new { execute }
# Create more label links for the target
create(:label_link, target: target)
create(:label_link, target: target)
- expect { execute }.not_to exceed_query_limit(control_count)
+ expect { execute }.not_to exceed_query_limit(control)
expect(target.reload.label_links.count).to eq(0)
end
end
diff --git a/spec/support/shared_examples/services/jira/requests/base_shared_examples.rb b/spec/support/shared_examples/services/jira/requests/base_shared_examples.rb
index 5e49bdd706c..a51215f6c89 100644
--- a/spec/support/shared_examples/services/jira/requests/base_shared_examples.rb
+++ b/spec/support/shared_examples/services/jira/requests/base_shared_examples.rb
@@ -11,6 +11,7 @@ RSpec.shared_examples 'a service that handles Jira API errors' do
Timeout::Error | '' | 'A timeout error occurred'
URI::InvalidURIError | '' | 'The Jira API URL'
SocketError | '' | 'The Jira API URL'
+ Gitlab::HTTP::BlockedUrlError | '' | 'Unable to connect to the Jira URL. Please verify your'
OpenSSL::SSL::SSLError | 'foo' | 'An SSL error occurred while connecting to Jira: foo'
JIRA::HTTPError | 'Unauthorized' | 'The credentials for accessing Jira are not valid'
JIRA::HTTPError | 'Forbidden' | 'The credentials for accessing Jira are not allowed'
diff --git a/spec/support/shared_examples/services/namespace_package_settings_shared_examples.rb b/spec/support/shared_examples/services/namespace_package_settings_shared_examples.rb
index d288c74ae4b..f4bab4d0ad6 100644
--- a/spec/support/shared_examples/services/namespace_package_settings_shared_examples.rb
+++ b/spec/support/shared_examples/services/namespace_package_settings_shared_examples.rb
@@ -12,6 +12,8 @@ RSpec.shared_examples 'updating the namespace package setting attributes' do |to
.and change { namespace.package_settings.reload.nuget_duplicates_allowed }.from(from[:nuget_duplicates_allowed]).to(to[:nuget_duplicates_allowed])
.and change { namespace.package_settings.reload.nuget_duplicate_exception_regex }.from(from[:nuget_duplicate_exception_regex]).to(to[:nuget_duplicate_exception_regex])
.and change { namespace.package_settings.reload.nuget_symbol_server_enabled }.from(from[:nuget_symbol_server_enabled]).to(to[:nuget_symbol_server_enabled])
+ .and change { namespace.package_settings.reload.terraform_module_duplicates_allowed }.from(from[:terraform_module_duplicates_allowed]).to(to[:terraform_module_duplicates_allowed])
+ .and change { namespace.package_settings.reload.terraform_module_duplicate_exception_regex }.from(from[:terraform_module_duplicate_exception_regex]).to(to[:terraform_module_duplicate_exception_regex])
end
end
@@ -36,6 +38,8 @@ RSpec.shared_examples 'creating the namespace package setting' do
expect(namespace.package_setting_relation.nuget_duplicates_allowed).to eq(package_settings[:nuget_duplicates_allowed])
expect(namespace.package_setting_relation.nuget_duplicate_exception_regex).to eq(package_settings[:nuget_duplicate_exception_regex])
expect(namespace.package_setting_relation.nuget_symbol_server_enabled).to eq(package_settings[:nuget_symbol_server_enabled])
+ expect(namespace.package_setting_relation.terraform_module_duplicates_allowed).to eq(package_settings[:terraform_module_duplicates_allowed])
+ expect(namespace.package_setting_relation.terraform_module_duplicate_exception_regex).to eq(package_settings[:terraform_module_duplicate_exception_regex])
end
it_behaves_like 'returning a success'
diff --git a/spec/support/shared_examples/services/packages/debian/generate_distribution_shared_examples.rb b/spec/support/shared_examples/services/packages/debian/generate_distribution_shared_examples.rb
index cb544f42765..97dd2aa96d4 100644
--- a/spec/support/shared_examples/services/packages/debian/generate_distribution_shared_examples.rb
+++ b/spec/support/shared_examples/services/packages/debian/generate_distribution_shared_examples.rb
@@ -244,10 +244,10 @@ RSpec.shared_examples 'Generate Debian Distribution and component files' do
end
create_list(:debian_package, 10, project: project, published_in: project_distribution)
- control_count = ActiveRecord::QueryRecorder.new { subject2 }.count
+ control = ActiveRecord::QueryRecorder.new { subject2 }
create_list(:debian_package, 10, project: project, published_in: project_distribution)
- expect { subject3 }.not_to exceed_query_limit(control_count)
+ expect { subject3 }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/support/shared_examples/services/protected_branches_shared_examples.rb b/spec/support/shared_examples/services/protected_branches_shared_examples.rb
index 6d4b82730da..980241ad586 100644
--- a/spec/support/shared_examples/services/protected_branches_shared_examples.rb
+++ b/spec/support/shared_examples/services/protected_branches_shared_examples.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-RSpec.shared_context 'with scan result policy blocking protected branches' do
+RSpec.shared_context 'with scan result policy' do
include RepoHelpers
let(:policy_path) { Security::OrchestrationPolicyConfiguration::POLICY_PATH }
@@ -8,12 +8,10 @@ RSpec.shared_context 'with scan result policy blocking protected branches' do
let(:default_branch) { policy_project.default_branch }
let(:policy_yaml) do
- build(:orchestration_policy_yaml, scan_execution_policy: [], scan_result_policy: [scan_result_policy])
+ build(:orchestration_policy_yaml, scan_execution_policy: [], scan_result_policy: scan_result_policies)
end
- let(:scan_result_policy) do
- build(:scan_result_policy, branches: [branch_name], approval_settings: { block_branch_modification: true })
- end
+ let(:scan_result_policies) { [scan_result_policy] }
before do
policy_configuration.update_attribute(:security_policy_management_project, policy_project)
@@ -24,25 +22,26 @@ RSpec.shared_context 'with scan result policy blocking protected branches' do
end
end
-RSpec.shared_context 'with scan result policy preventing force pushing' do
- include RepoHelpers
-
- let(:policy_path) { Security::OrchestrationPolicyConfiguration::POLICY_PATH }
- let(:default_branch) { policy_project.default_branch }
- let(:prevent_pushing_and_force_pushing) { true }
-
- let(:scan_result_policy) do
- build(:scan_result_policy, branches: [branch_name],
- approval_settings: { prevent_pushing_and_force_pushing: prevent_pushing_and_force_pushing })
+RSpec.shared_context 'with scan result policy blocking protected branches' do
+ include_context 'with scan result policy' do
+ let(:scan_result_policy) do
+ build(:scan_result_policy, branches: [branch_name], approval_settings: { block_branch_modification: true })
+ end
end
+end
- let(:policy_yaml) do
- build(:orchestration_policy_yaml, scan_result_policy: [scan_result_policy])
- end
+RSpec.shared_context 'with scan result policy preventing force pushing' do
+ include_context 'with scan result policy' do
+ let(:prevent_pushing_and_force_pushing) { true }
- before do
- create_file_in_repo(policy_project, default_branch, default_branch, policy_path, policy_yaml)
- stub_licensed_features(security_orchestration_policies: true)
+ let(:scan_result_policy) do
+ build(:scan_result_policy, branches: [branch_name],
+ approval_settings: { prevent_pushing_and_force_pushing: prevent_pushing_and_force_pushing })
+ end
+
+ let(:policy_yaml) do
+ build(:orchestration_policy_yaml, scan_result_policy: [scan_result_policy])
+ end
end
after do
diff --git a/spec/support/shared_examples/work_item_hierarchy_restrictions_importer.rb b/spec/support/shared_examples/work_item_hierarchy_restrictions_importer.rb
index 0545be7c741..4f6b27a99c6 100644
--- a/spec/support/shared_examples/work_item_hierarchy_restrictions_importer.rb
+++ b/spec/support/shared_examples/work_item_hierarchy_restrictions_importer.rb
@@ -7,12 +7,23 @@ RSpec.shared_examples 'work item hierarchy restrictions importer' do
end
end
+ shared_examples 'clears type reactive cache' do
+ specify do
+ expect_next_found_instances_of(WorkItems::Type, 7) do |instance|
+ expect(instance).to receive(:clear_reactive_cache!)
+ end
+
+ subject
+ end
+ end
+
context 'when restrictions are missing' do
before do
WorkItems::HierarchyRestriction.delete_all
end
it_behaves_like 'adds restrictions'
+ it_behaves_like 'clears type reactive cache'
end
context 'when base types are missing' do
@@ -41,6 +52,8 @@ RSpec.shared_examples 'work item hierarchy restrictions importer' do
change { restriction.maximum_depth }.from(depth + 1).to(depth)
)
end
+
+ it_behaves_like 'clears type reactive cache'
end
context 'when some restrictions are missing' do
@@ -55,6 +68,8 @@ RSpec.shared_examples 'work item hierarchy restrictions importer' do
)
expect(WorkItems::HierarchyRestriction.count).to eq(7)
end
+
+ it_behaves_like 'clears type reactive cache'
end
context 'when restrictions contain attributes not present in the table' do
@@ -70,5 +85,7 @@ RSpec.shared_examples 'work item hierarchy restrictions importer' do
subject
end
+
+ it_behaves_like 'clears type reactive cache'
end
end
diff --git a/spec/support/shared_examples/work_items/widgetable_service_shared_examples.rb b/spec/support/shared_examples/work_items/widgetable_service_shared_examples.rb
index 491662d17d3..26a5be5aea4 100644
--- a/spec/support/shared_examples/work_items/widgetable_service_shared_examples.rb
+++ b/spec/support/shared_examples/work_items/widgetable_service_shared_examples.rb
@@ -4,7 +4,11 @@ RSpec.shared_examples_for 'work item widgetable service' do
it 'executes callbacks for expected widgets' do
supported_widgets.each do |widget|
expect_next_instance_of(widget[:klass]) do |widget_instance|
- expect(widget_instance).to receive(widget[:callback]).with(params: widget[:params])
+ if widget[:params].present?
+ expect(widget_instance).to receive(widget[:callback]).with(params: widget[:params])
+ else
+ expect(widget_instance).to receive(widget[:callback])
+ end
end
end
diff --git a/spec/support/shared_examples/workers/gitlab/github_import/stage_methods_shared_examples.rb b/spec/support/shared_examples/workers/gitlab/github_import/stage_methods_shared_examples.rb
index af5bf33a9a6..b5e3589d86c 100644
--- a/spec/support/shared_examples/workers/gitlab/github_import/stage_methods_shared_examples.rb
+++ b/spec/support/shared_examples/workers/gitlab/github_import/stage_methods_shared_examples.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
RSpec.shared_examples Gitlab::GithubImport::StageMethods do
+ let_it_be(:project) { create(:project, :import_started, import_url: 'https://t0ken@github.com/repo/repo.git') }
+
describe '.sidekiq_retries_exhausted' do
it 'tracks the exception and marks the import as failed' do
expect(Gitlab::Import::ImportFailureService).to receive(:track)
@@ -14,4 +16,183 @@ RSpec.shared_examples Gitlab::GithubImport::StageMethods do
described_class.sidekiq_retries_exhausted_block.call({ 'args' => [1] }, StandardError.new)
end
end
+
+ describe '.sidekiq_options' do
+ subject(:sidekiq_options) { worker.class.sidekiq_options }
+
+ it 'has a status_expiration' do
+ is_expected.to include('status_expiration' => Gitlab::Import::StuckImportJob::IMPORT_JOBS_EXPIRATION)
+ end
+
+ it 'has a retry of 6' do
+ is_expected.to include('retry' => 6)
+ end
+ end
+
+ describe '#perform' do
+ it 'returns if no project could be found' do
+ expect(worker).not_to receive(:import)
+
+ worker.perform(-1)
+ end
+
+ it 'returns if the import state is no longer in progress' do
+ project.import_state.fail_op!
+
+ expect(worker).not_to receive(:import)
+
+ expect(Gitlab::GithubImport::Logger)
+ .to receive(:info)
+ .with(
+ {
+ message: 'starting stage',
+ project_id: project.id,
+ import_stage: described_class.name
+ }
+ )
+
+ expect(Gitlab::GithubImport::Logger)
+ .to receive(:info)
+ .with(
+ {
+ message: 'Project import is no longer running. Stopping worker.',
+ project_id: project.id,
+ import_stage: described_class.name,
+ import_status: 'failed'
+ }
+ )
+
+ worker.perform(project.id)
+ end
+
+ it 'imports the data when the project exists' do
+ expect(worker)
+ .to receive(:import)
+ .with(
+ an_instance_of(Gitlab::GithubImport::Client),
+ an_instance_of(Project)
+ )
+
+ expect(Gitlab::GithubImport::Logger)
+ .to receive(:info)
+ .with(
+ {
+ message: 'starting stage',
+ project_id: project.id,
+ import_stage: described_class.name
+ }
+ )
+
+ expect(Gitlab::GithubImport::Logger)
+ .to receive(:info)
+ .with(
+ {
+ message: 'stage finished',
+ project_id: project.id,
+ import_stage: described_class.name
+ }
+ )
+
+ worker.perform(project.id)
+ end
+
+ it 'queues RefreshImportJidWorker' do
+ allow(worker).to receive(:import)
+ allow(worker).to receive(:jid).and_return('mock_jid')
+
+ expect(Gitlab::GithubImport::RefreshImportJidWorker)
+ .to receive(:perform_in_the_future)
+ .with(project.id, 'mock_jid')
+
+ worker.perform(project.id)
+ end
+
+ describe 'rescheduling the worker on certain errors' do
+ using RSpec::Parameterized::TableSyntax
+
+ where(:error) { [Gitlab::GithubImport::RateLimitError, Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError] }
+
+ with_them do
+ it 'reschedules the worker' do
+ rate_limit_reset = 10
+ client = instance_double(Gitlab::GithubImport::Client, rate_limit_resets_in: rate_limit_reset)
+
+ allow(Gitlab::GithubImport)
+ .to receive(:new_client_for)
+ .and_return(client)
+
+ expect(worker)
+ .to receive(:import)
+ .with(client, project)
+ .and_raise(error)
+
+ expect(worker.class)
+ .to receive(:perform_in)
+ .with(rate_limit_reset, project.id)
+
+ expect(Gitlab::GithubImport::Logger)
+ .to receive(:info)
+ .with(
+ {
+ message: 'starting stage',
+ project_id: project.id,
+ import_stage: described_class.name
+ }
+ )
+
+ expect(Gitlab::GithubImport::Logger)
+ .to receive(:info)
+ .with(
+ {
+ message: 'stage retrying',
+ project_id: project.id,
+ import_stage: described_class.name,
+ exception_class: error.name
+ }
+ )
+
+ worker.perform(project.id)
+ end
+ end
+ end
+
+ it 'logs error when import fails with a StandardError' do
+ exception = StandardError.new('some error')
+
+ expect(worker)
+ .to receive(:import)
+ .and_raise(exception)
+
+ expect(Gitlab::GithubImport::Logger)
+ .to receive(:info)
+ .with(
+ {
+ message: 'starting stage',
+ project_id: project.id,
+ import_stage: described_class.name
+ }
+ )
+
+ expect(Gitlab::Import::ImportFailureService)
+ .to receive(:track)
+ .with(
+ {
+ project_id: project.id,
+ exception: exception,
+ error_source: described_class.name,
+ fail_import: false,
+ metrics: true
+ }
+ ).and_call_original
+
+ expect { worker.perform(project.id) }
+ .to raise_error(exception)
+
+ expect(project.import_state.reload.status).to eq('started')
+
+ expect(project.import_failures).not_to be_empty
+ expect(project.import_failures.last.exception_class).to eq('StandardError')
+ expect(project.import_failures.last.exception_message).to eq('some error')
+ end
+ end
end
diff --git a/spec/support/sidekiq.rb b/spec/support/sidekiq.rb
index b25f39c5e74..6c354c780b2 100644
--- a/spec/support/sidekiq.rb
+++ b/spec/support/sidekiq.rb
@@ -1,13 +1,19 @@
# frozen_string_literal: true
RSpec.configure do |config|
- def gitlab_sidekiq_inline(&block)
+ def gitlab_sidekiq_inline
# We need to cleanup the queues before running jobs in specs because the
# middleware might have written to redis
redis_queues_cleanup!
redis_queues_metadata_cleanup!
- Sidekiq::Testing.inline!(&block)
+
+ # Scoped inline! is thread-safe which breaks capybara specs
+ # see https://github.com/sidekiq/sidekiq/issues/6069
+ Sidekiq::Testing.inline!
+
+ yield
ensure
+ Sidekiq::Testing.fake! # fake is the default so we reset it to that
redis_queues_cleanup!
redis_queues_metadata_cleanup!
end
diff --git a/spec/support/sidekiq_middleware.rb b/spec/support/sidekiq_middleware.rb
index f4d90ff5151..cbd6163d46b 100644
--- a/spec/support/sidekiq_middleware.rb
+++ b/spec/support/sidekiq_middleware.rb
@@ -6,15 +6,6 @@ require 'sidekiq/testing'
module SidekiqMiddleware
def with_sidekiq_server_middleware(&block)
Sidekiq::Testing.server_middleware.clear
-
- if Gem::Version.new(Sidekiq::VERSION) != Gem::Version.new('6.5.12')
- raise 'New version of sidekiq detected, please remove this line'
- end
-
- # This line is a workaround for a Sidekiq bug that is already fixed in v7.0.0
- # https://github.com/mperham/sidekiq/commit/1b83a152786ed382f07fff12d2608534f1e3c922
- Sidekiq::Testing.server_middleware.instance_variable_set(:@config, Sidekiq)
-
Sidekiq::Testing.server_middleware(&block)
ensure
Sidekiq::Testing.server_middleware.clear
diff --git a/spec/tasks/gitlab/cleanup_rake_spec.rb b/spec/tasks/gitlab/cleanup_rake_spec.rb
index 2e41c4f1219..56a9dcae4c9 100644
--- a/spec/tasks/gitlab/cleanup_rake_spec.rb
+++ b/spec/tasks/gitlab/cleanup_rake_spec.rb
@@ -383,4 +383,88 @@ RSpec.describe 'gitlab:cleanup rake tasks', :silence_stdout do
end
end
end
+
+ describe 'cleanup:orphan_job_artifact_final_objects' do
+ subject(:rake_task) { run_rake_task('gitlab:cleanup:orphan_job_artifact_final_objects', provider) }
+
+ before do
+ stub_artifacts_object_storage
+ end
+
+ shared_examples_for 'running the cleaner' do
+ it 'runs the task without errors' do
+ expect(Gitlab::Cleanup::OrphanJobArtifactFinalObjectsCleaner)
+ .to receive(:new)
+ .with(
+ dry_run: true,
+ force_restart: false,
+ provider: provider,
+ logger: anything
+ )
+ .and_call_original
+
+ expect { rake_task }.not_to raise_error
+ end
+
+ context 'with FORCE_RESTART defined' do
+ before do
+ stub_env('FORCE_RESTART', '1')
+ end
+
+ it 'passes force_restart correctly' do
+ expect(Gitlab::Cleanup::OrphanJobArtifactFinalObjectsCleaner)
+ .to receive(:new)
+ .with(
+ dry_run: true,
+ force_restart: true,
+ provider: provider,
+ logger: anything
+ )
+ .and_call_original
+
+ expect { rake_task }.not_to raise_error
+ end
+ end
+
+ context 'with DRY_RUN set to false' do
+ before do
+ stub_env('DRY_RUN', 'false')
+ end
+
+ it 'passes dry_run correctly' do
+ expect(Gitlab::Cleanup::OrphanJobArtifactFinalObjectsCleaner)
+ .to receive(:new)
+ .with(
+ dry_run: false,
+ force_restart: false,
+ provider: provider,
+ logger: anything
+ )
+ .and_call_original
+
+ expect { rake_task }.not_to raise_error
+ end
+ end
+ end
+
+ context 'when provider is not specified' do
+ let(:provider) { nil }
+
+ it_behaves_like 'running the cleaner'
+ end
+
+ context 'when provider is specified' do
+ let(:provider) { 'aws' }
+
+ it_behaves_like 'running the cleaner'
+ end
+
+ context 'when unsupported provider is given' do
+ let(:provider) { 'somethingelse' }
+
+ it 'exits with error' do
+ expect { rake_task }.to raise_error(SystemExit)
+ end
+ end
+ end
end
diff --git a/spec/tooling/danger/bulk_database_actions_spec.rb b/spec/tooling/danger/bulk_database_actions_spec.rb
index eba3eacb212..18a46f663c0 100644
--- a/spec/tooling/danger/bulk_database_actions_spec.rb
+++ b/spec/tooling/danger/bulk_database_actions_spec.rb
@@ -8,115 +8,87 @@ require_relative '../../../tooling/danger/bulk_database_actions'
require_relative '../../../tooling/danger/project_helper'
RSpec.describe Tooling::Danger::BulkDatabaseActions, feature_category: :tooling do
- include_context "with dangerfile"
+ include_context 'with dangerfile'
- let(:fake_danger) { DangerSpecHelper.fake_danger.include(described_class) }
+ let(:fake_danger) { DangerSpecHelper.fake_danger }
let(:fake_project_helper) { instance_double(Tooling::Danger::ProjectHelper) }
-
- let(:mr_url) { 'https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1' }
- let(:doc_link) { described_class::DOCUMENTATION_LINK }
-
- let(:comment_text) { "\n#{described_class::COMMENT_TEXT}" }
-
- let(:file_lines) do
- file_diff.map { |line| line.delete_prefix('+') }
- end
+ let(:comment_text) { "\n#{described_class::SUGGESTION}" }
+ let(:file_lines) { file_diff.map { |line| line.delete_prefix('+') } }
before do
allow(bulk_database_actions).to receive(:project_helper).and_return(fake_project_helper)
allow(bulk_database_actions.project_helper).to receive(:file_lines).and_return(file_lines)
allow(bulk_database_actions.helper).to receive(:added_files).and_return([filename])
allow(bulk_database_actions.helper).to receive(:changed_lines).with(filename).and_return(file_diff)
- allow(bulk_database_actions.helper).to receive(:mr_web_url).and_return(mr_url)
+
+ bulk_database_actions.define_singleton_method(:add_suggestions_for) do |filename|
+ Tooling::Danger::BulkDatabaseActions.new(filename, context: self).suggest
+ end
end
subject(:bulk_database_actions) { fake_danger.new(helper: fake_helper) }
- shared_examples 'no Danger comment' do
- it 'does not comment on the bulk update action usage' do
- expect(bulk_database_actions).not_to receive(:markdown)
-
- bulk_database_actions.add_comment_for_bulk_database_action_method_usage
+ context 'for single line method call' do
+ let(:file_diff) do
+ <<~DIFF.split("\n")
+ + def execute
+ + #{code}
+ +
+ + ServiceResponse.success
+ + end
+ DIFF
end
- end
- describe '#add_comment_for_bulk_database_action_method_usage' do
- context 'for single line method call' do
- let(:file_diff) do
- [
- "+ def execute",
- "+ pat_family.active.#{method_call}",
- "+",
- "+ ServiceResponse.success",
- "+ end"
- ]
- end
+ context 'when file is a non-spec Ruby file' do
+ let(:filename) { 'app/services/personal_access_tokens/revoke_token_family_service.rb' }
- context 'when file is a non-spec Ruby file' do
- let(:filename) { 'app/services/personal_access_tokens/revoke_token_family_service.rb' }
-
- using RSpec::Parameterized::TableSyntax
-
- where(:method_call, :expect_comment?) do
- 'update_all(revoked: true)' | true
- 'destroy_all' | true
- 'delete_all' | true
- 'update(revoked: true)' | true
- 'delete' | true
- 'update_two_factor' | false
- 'delete_keys(key)' | false
- 'destroy_hook(hook)' | false
- 'destroy_all_merged' | false
- 'update_all_mirrors' | false
+ using RSpec::Parameterized::TableSyntax
+
+ context 'when comment is expected' do
+ where(:code) do
+ [
+ 'update_all(revoked: true)',
+ 'destroy_all',
+ 'delete_all',
+ 'update(revoked: true)',
+ 'delete',
+ 'upsert',
+ 'upsert_all',
+ 'User.upsert',
+ 'User.last.destroy',
+ ' .destroy'
+ ]
end
with_them do
- it "correctly handles potential bulk database action" do
- if expect_comment?
- expect(bulk_database_actions).to receive(:markdown).with(comment_text, file: filename, line: 2)
- else
- expect(bulk_database_actions).not_to receive(:markdown)
- end
-
- bulk_database_actions.add_comment_for_bulk_database_action_method_usage
+ specify do
+ expect(bulk_database_actions).to receive(:markdown).with(comment_text.chomp, file: filename, line: 2)
+
+ bulk_database_actions.add_suggestions_for(filename)
end
end
end
- context 'for spec directories' do
- let(:method_call) { 'update_all(revoked: true)' }
-
- context 'for FOSS spec file' do
- let(:filename) { 'spec/services/personal_access_tokens/revoke_token_family_service_spec.rb' }
-
- it_behaves_like 'no Danger comment'
- end
-
- context 'for EE spec file' do
- let(:filename) { 'ee/spec/services/personal_access_tokens/revoke_token_family_service_spec.rb' }
-
- it_behaves_like 'no Danger comment'
+ context 'when no comment is expected' do
+ where(:code) do
+ [
+ 'we update bob',
+ 'update_two_factor',
+ 'delete_keys(key)',
+ 'destroy_hook(hook)',
+ 'destroy_all_merged',
+ 'update_all_mirrors'
+ ]
end
- context 'for JiHu spec file' do
- let(:filename) { 'jh/spec/services/personal_access_tokens/revoke_token_family_service_spec.rb' }
+ with_them do
+ specify do
+ expect(bulk_database_actions).not_to receive(:markdown)
- it_behaves_like 'no Danger comment'
+ bulk_database_actions.add_suggestions_for(filename)
+ end
end
end
end
-
- context 'for strings' do
- let(:filename) { 'app/services/personal_access_tokens/revoke_token_family_service.rb' }
- let(:file_diff) do
- [
- '+ expect { subject }.to output(',
- '+ "ERROR: Could not update tag"',
- '+ ).to_stderr'
- ]
- end
-
- it_behaves_like 'no Danger comment'
- end
end
end
diff --git a/spec/tooling/danger/project_helper_spec.rb b/spec/tooling/danger/project_helper_spec.rb
index a41aba17f56..90409ff5559 100644
--- a/spec/tooling/danger/project_helper_spec.rb
+++ b/spec/tooling/danger/project_helper_spec.rb
@@ -251,6 +251,13 @@ RSpec.describe Tooling::Danger::ProjectHelper, feature_category: :tooling do
[:backend, :analytics_instrumentation] | '+ count(User.active)' | ['lib/gitlab/usage_data/topology.rb']
[:backend, :analytics_instrumentation] | '+ foo_count(User.active)' | ['lib/gitlab/usage_data.rb']
[:backend] | '+ count(User.active)' | ['user.rb']
+ [:database, :backend] | '+ User.upsert({ name: "blah" })' | ['app/foo/bar.rb']
+ [:database, :backend] | '+ User.upsert(' | ['app/foo/bar.rb']
+ [:database, :backend] | '+ Organizations::OrganizationUser.upsert({' | ['app/foo/bar.rb']
+ [:database, :backend] | '+ upsert({ name: "blah" })' | ['app/foo/bar.rb']
+ [:database, :backend] | '+ .upsert({ name: "blah" })' | ['app/foo/bar.rb']
+ [:database, :backend] | '+ .delete_all' | ['app/foo/bar.rb']
+ [:database, :backend] | '+ .destroy_all' | ['app/foo/bar.rb']
[:import_integrate_be, :database] | '+ add_column :integrations, :foo, :text' | ['db/migrate/foo.rb']
[:import_integrate_be, :database] | '+ create_table :zentao_tracker_data do |t|' | ['ee/db/post_migrate/foo.rb']
[:import_integrate_be, :backend] | '+ Integrations::Foo' | ['app/foo/bar.rb']
diff --git a/spec/tooling/lib/tooling/find_changes_spec.rb b/spec/tooling/lib/tooling/find_changes_spec.rb
index 85e3eadac6f..be28b228edd 100644
--- a/spec/tooling/lib/tooling/find_changes_spec.rb
+++ b/spec/tooling/lib/tooling/find_changes_spec.rb
@@ -16,7 +16,8 @@ RSpec.describe Tooling::FindChanges, feature_category: :tooling do
predictive_tests_pathname: predictive_tests_pathname,
frontend_fixtures_mapping_pathname: frontend_fixtures_mapping_pathname,
from: from,
- file_filter: file_filter)
+ file_filter: file_filter,
+ only_new_paths: only_new_paths)
end
let(:changed_files_pathname) { changed_files_file.path }
@@ -25,6 +26,7 @@ RSpec.describe Tooling::FindChanges, feature_category: :tooling do
let(:from) { :api }
let(:gitlab_client) { double('GitLab') } # rubocop:disable RSpec/VerifiedDoubles
let(:file_filter) { ->(_) { true } }
+ let(:only_new_paths) { false }
around do |example|
self.changed_files_file = Tempfile.new('changed_files_file')
@@ -122,6 +124,37 @@ RSpec.describe Tooling::FindChanges, feature_category: :tooling do
expect(File.read(changed_files_file)).to eq('doc/index.md')
end
end
+
+ context 'when used with only_new_paths' do
+ let(:only_new_paths) { true }
+
+ let(:mr_changes_array) do
+ [
+ {
+ "new_path" => "scripts/test.js",
+ "old_path" => "scripts/test.js"
+ },
+ {
+ "new_path" => "doc/renamed_index.md",
+ "old_path" => "doc/index.md"
+ }
+ ]
+ end
+
+ before do
+ # rubocop:disable RSpec/VerifiedDoubles -- The class from the GitLab gem isn't public, so we cannot use verified doubles for it.
+ allow(gitlab_client).to receive(:merge_request_changes)
+ .with('dummy-project', '1234')
+ .and_return(double(changes: mr_changes_array))
+ # rubocop:enable RSpec/VerifiedDoubles
+ end
+
+ it 'only writes new file paths to output' do
+ subject
+
+ expect(File.read(changed_files_file)).to eq('doc/renamed_index.md scripts/test.js')
+ end
+ end
end
context 'when fetching changes from changed files' do
diff --git a/spec/uploaders/object_storage/cdn/google_cdn_spec.rb b/spec/uploaders/object_storage/cdn/google_cdn_spec.rb
index 96413f622e8..04c6cf4bde9 100644
--- a/spec/uploaders/object_storage/cdn/google_cdn_spec.rb
+++ b/spec/uploaders/object_storage/cdn/google_cdn_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe ObjectStorage::CDN::GoogleCDN,
subject { described_class.new(options) }
before do
- WebMock.stub_request(:get, GoogleCloud::FetchGoogleIpListService::GOOGLE_IP_RANGES_URL)
+ WebMock.stub_request(:get, CloudSeed::GoogleCloud::FetchGoogleIpListService::GOOGLE_IP_RANGES_URL)
.to_return(status: 200, body: google_cloud_ips, headers: headers)
end
diff --git a/spec/validators/ip_cidr_array_validator_spec.rb b/spec/validators/ip_cidr_array_validator_spec.rb
index 6adb0bc70db..f18005054b5 100644
--- a/spec/validators/ip_cidr_array_validator_spec.rb
+++ b/spec/validators/ip_cidr_array_validator_spec.rb
@@ -17,7 +17,6 @@ RSpec.describe IpCidrArrayValidator, feature_category: :shared do
using RSpec::Parameterized::TableSyntax
- # noinspection RubyMismatchedArgumentType - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-32041
where(:cidr_array, :validity, :errors) do
# rubocop:disable Layout/LineLength -- The RSpec table syntax often requires long lines for errors
nil | false | { cidr_array: ["must be an array of CIDR values"] }
diff --git a/spec/views/admin/application_settings/network.html.haml_spec.rb b/spec/views/admin/application_settings/network.html.haml_spec.rb
index 989977bac3e..193ee8a32d5 100644
--- a/spec/views/admin/application_settings/network.html.haml_spec.rb
+++ b/spec/views/admin/application_settings/network.html.haml_spec.rb
@@ -18,4 +18,12 @@ RSpec.describe 'admin/application_settings/network.html.haml', feature_category:
expect(rendered).to have_field('application_setting_projects_api_rate_limit_unauthenticated')
end
end
+
+ context 'for Members API rate limit' do
+ it 'renders the `members_delete_limit` field' do
+ render
+
+ expect(rendered).to have_field('application_setting_members_delete_limit')
+ end
+ end
end
diff --git a/spec/views/admin/sessions/new.html.haml_spec.rb b/spec/views/admin/sessions/new.html.haml_spec.rb
index 81275fa8750..73d6298c27e 100644
--- a/spec/views/admin/sessions/new.html.haml_spec.rb
+++ b/spec/views/admin/sessions/new.html.haml_spec.rb
@@ -45,7 +45,7 @@ RSpec.describe 'admin/sessions/new.html.haml' do
expect(rendered).not_to have_content _('No authentication methods configured.')
expect(rendered).to have_css('.omniauth-divider')
expect(rendered).to have_content(_('or sign in with'))
- expect(rendered).to have_css('.omniauth-container')
+ expect(rendered).to have_css('.js-oauth-login')
end
end
diff --git a/spec/views/devise/sessions/new.html.haml_spec.rb b/spec/views/devise/sessions/new.html.haml_spec.rb
index 5f611ae1d8f..61a3581852e 100644
--- a/spec/views/devise/sessions/new.html.haml_spec.rb
+++ b/spec/views/devise/sessions/new.html.haml_spec.rb
@@ -2,71 +2,36 @@
require 'spec_helper'
-RSpec.describe 'devise/sessions/new' do
- describe 'marketing text', :saas do
- subject { render(template: 'devise/sessions/new', layout: 'layouts/devise') }
+RSpec.describe 'devise/sessions/new', feature_category: :system_access do
+ describe 'ldap' do
+ include LdapHelpers
+
+ let(:server) { { provider_name: 'ldapmain', label: 'LDAP' }.with_indifferent_access }
before do
+ enable_ldap
stub_devise
disable_captcha
- stub_feature_flags(restyle_login_page: false)
+ disable_sign_up
+ disable_other_signin_methods
end
- it 'when flash is anything it renders marketing text' do
- flash[:notice] = "You can't do that"
-
- subject
+ it 'is shown when enabled' do
+ render
- expect(rendered).to have_content('A complete DevOps platform')
+ expect(rendered).to have_selector('.new-session-tabs')
+ expect(rendered).to have_selector('[data-testid="ldap-tab"]')
+ expect(rendered).to have_field(_('Username'))
end
- it 'when flash notice is devise confirmed message it hides marketing text' do
- flash[:notice] = t(:confirmed, scope: [:devise, :confirmations])
-
- subject
-
- expect(rendered).not_to have_content('A complete DevOps platform')
- end
- end
-
- flag_values = [true, false]
- flag_values.each do |val|
- context "with #{val}" do
- before do
- stub_feature_flags(restyle_login_page: val)
- end
-
- describe 'ldap' do
- include LdapHelpers
-
- let(:server) { { provider_name: 'ldapmain', label: 'LDAP' }.with_indifferent_access }
-
- before do
- enable_ldap
- stub_devise
- disable_captcha
- disable_sign_up
- disable_other_signin_methods
- end
-
- it 'is shown when enabled' do
- render
-
- expect(rendered).to have_selector('.new-session-tabs')
- expect(rendered).to have_selector('[data-testid="ldap-tab"]')
- expect(rendered).to have_field(_('Username'))
- end
-
- it 'is not shown when LDAP sign in is disabled' do
- disable_ldap_sign_in
+ it 'is not shown when LDAP sign in is disabled' do
+ disable_ldap_sign_in
- render
+ render
- expect(rendered).to have_content('No authentication methods configured')
- expect(rendered).not_to have_selector('[data-testid="ldap-tab"]')
- expect(rendered).not_to have_field(_('Username'))
- end
- end
+ expect(rendered).to have_content('No authentication methods configured')
+ expect(rendered).not_to have_selector('[data-testid="ldap-tab"]')
+ expect(rendered).not_to have_field(_('Username'))
end
end
diff --git a/spec/views/devise/shared/_footer.html.haml_spec.rb b/spec/views/devise/shared/_footer.html.haml_spec.rb
new file mode 100644
index 00000000000..58fe9c1073c
--- /dev/null
+++ b/spec/views/devise/shared/_footer.html.haml_spec.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'devise/shared/_footer', feature_category: :system_access do
+ subject { render && rendered }
+
+ context 'when public visibility is restricted' do
+ before do
+ allow(view).to receive(:public_visibility_restricted?).and_return(true)
+ end
+
+ it { is_expected.not_to have_link(_('Explore'), href: explore_root_path) }
+ it { is_expected.not_to have_link(_('Help'), href: help_path) }
+ end
+
+ context 'when public visibility is not restricted' do
+ before do
+ allow(view).to receive(:public_visibility_restricted?).and_return(false)
+ end
+
+ it { is_expected.to have_link(_('Explore'), href: explore_root_path) }
+ it { is_expected.to have_link(_('Help'), href: help_path) }
+ end
+
+ it { is_expected.to have_link(_('About GitLab'), href: "https://#{ApplicationHelper.promo_host}") }
+ it { is_expected.to have_link(_('Community forum'), href: ApplicationHelper.community_forum) }
+
+ context 'when one trust is enabled' do
+ before do
+ allow(view).to receive(:one_trust_enabled?).and_return(true)
+ end
+
+ it { is_expected.to have_button(_('Cookie Preferences'), class: 'ot-sdk-show-settings') }
+ end
+
+ context 'when one trust is disabled' do
+ before do
+ allow(view).to receive(:one_trust_enabled?).and_return(false)
+ end
+
+ it { is_expected.not_to have_button(_('Cookie Preferences'), class: 'ot-sdk-show-settings') }
+ end
+
+ it { is_expected.to have_css('.js-language-switcher') }
+end
diff --git a/spec/views/devise/shared/_signup_box.html.haml_spec.rb b/spec/views/devise/shared/_signup_box.html.haml_spec.rb
index eba036083be..13beb87c383 100644
--- a/spec/views/devise/shared/_signup_box.html.haml_spec.rb
+++ b/spec/views/devise/shared/_signup_box.html.haml_spec.rb
@@ -81,22 +81,6 @@ RSpec.describe 'devise/shared/_signup_box' do
end
end
- context 'using the borderless option' do
- let(:border_css_classes) { '.gl-border-gray-100.gl-border-1.gl-border-solid.gl-rounded-base' }
-
- it 'renders with a border by default' do
- render
-
- expect(rendered).to have_selector(border_css_classes)
- end
-
- it 'renders without a border when borderless is truthy' do
- render('devise/shared/signup_box', borderless: true)
-
- expect(rendered).not_to have_selector(border_css_classes)
- end
- end
-
def stub_devise
allow(view).to receive(:devise_mapping).and_return(Devise.mappings[:user])
allow(view).to receive(:resource).and_return(spy)
diff --git a/spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb b/spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb
index c3e4bd76b30..988f2e2df8a 100644
--- a/spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb
+++ b/spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb
@@ -13,6 +13,7 @@ RSpec.describe 'devise/shared/_signup_omniauth_provider_list', feature_category:
allow(view).to receive(:providers).and_return([provider_label])
allow(view).to receive(:tracking_label).and_return(tracking_label)
allow(view).to receive(:glm_tracking_params).and_return({})
+ render
end
shared_examples 'sso buttons have snowplow tracking' do
@@ -24,37 +25,11 @@ RSpec.describe 'devise/shared/_signup_omniauth_provider_list', feature_category:
end
end
- context 'when feature flag is true' do
- before do
- stub_feature_flags(restyle_login_page: true)
+ it { is_expected.to have_content(_("Register with:")) }
- render
- end
-
- it { is_expected.to have_content(_("Register with:")) }
-
- it_behaves_like 'sso buttons have snowplow tracking'
- end
-
- context 'when feature flag is false' do
- before do
- stub_feature_flags(restyle_login_page: false)
-
- render
- end
+ it_behaves_like 'sso buttons have snowplow tracking'
- it { is_expected.to have_content(_("Create an account using:")) }
-
- it_behaves_like 'sso buttons have snowplow tracking'
- end
-
- context 'when rendering button' do
- before do
- render
- end
-
- it 'renders button in form' do
- expect(rendered).to have_css('form[action="/users/auth/github"]')
- end
+ it 'renders button in form' do
+ expect(rendered).to have_css('form[action="/users/auth/github"]')
end
end
diff --git a/spec/views/profiles/preferences/show.html.haml_spec.rb b/spec/views/profiles/preferences/show.html.haml_spec.rb
index c20b4424129..c68c48a0828 100644
--- a/spec/views/profiles/preferences/show.html.haml_spec.rb
+++ b/spec/views/profiles/preferences/show.html.haml_spec.rb
@@ -20,14 +20,6 @@ RSpec.describe 'profiles/preferences/show' do
it 'has an id for anchoring' do
expect(rendered).to have_css('#navigation-theme')
end
-
- it 'has correct stylesheet tags' do
- Gitlab::Themes.each do |theme|
- next unless theme.css_filename
-
- expect(rendered).to have_selector("link[href*=\"themes/#{theme.css_filename}\"]", visible: false)
- end
- end
end
context 'syntax highlighting theme' do
diff --git a/spec/views/projects/commit/show.html.haml_spec.rb b/spec/views/projects/commit/show.html.haml_spec.rb
index 4cfff00d390..7f3cecae8cb 100644
--- a/spec/views/projects/commit/show.html.haml_spec.rb
+++ b/spec/views/projects/commit/show.html.haml_spec.rb
@@ -3,7 +3,8 @@
require 'spec_helper'
RSpec.describe 'projects/commit/show.html.haml', feature_category: :source_code_management do
- let(:project) { create(:project, :repository) }
+ let_it_be_with_refind(:project) { create(:project, :repository, :in_group) }
+
let(:commit) { project.commit }
before do
diff --git a/spec/views/projects/merge_requests/creations/new.html.haml_spec.rb b/spec/views/projects/merge_requests/creations/new.html.haml_spec.rb
new file mode 100644
index 00000000000..b55bf75b7b1
--- /dev/null
+++ b/spec/views/projects/merge_requests/creations/new.html.haml_spec.rb
@@ -0,0 +1,67 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'projects/merge_requests/creations/new.html.haml', feature_category: :code_review_workflow do
+ let_it_be(:target_project) { build_stubbed(:project, :repository) }
+
+ let(:merge_request) { build(:merge_request, source_project: source_project, target_project: target_project) }
+
+ before do
+ controller.prepend_view_path('app/views/projects')
+
+ assign(:project, source_project)
+ assign(:merge_request, merge_request)
+ end
+
+ shared_examples 'has conflicting merge request guard' do
+ context 'when there is conflicting merge request' do
+ let(:conflicting_mr) do
+ build_stubbed(
+ :merge_request,
+ source_project: source_project,
+ target_project: target_project,
+ source_branch: merge_request.source_branch,
+ target_branch: merge_request.target_branch
+ )
+ end
+
+ before do
+ allow(merge_request).to receive(:existing_mrs_targeting_same_branch).and_return([conflicting_mr])
+ end
+
+ it 'shows conflicting merge request alert' do
+ render
+
+ expected_conflicting_mr_link = link_to(
+ conflicting_mr.to_reference,
+ project_merge_request_path(conflicting_mr.target_project, conflicting_mr)
+ )
+
+ expect(flash[:alert]).to include(
+ "These branches already have an open merge request: #{expected_conflicting_mr_link}"
+ )
+ end
+ end
+
+ context 'when there is no conflicting merge request' do
+ it 'does not show conflicting merge request alert' do
+ render
+
+ expect(flash[:alert]).to be_nil
+ end
+ end
+ end
+
+ context 'when merge request is created from other project' do
+ let_it_be(:source_project) { build_stubbed(:project, :repository) }
+
+ it_behaves_like 'has conflicting merge request guard'
+ end
+
+ context 'when merge request is created from the same project' do
+ let_it_be(:source_project) { target_project }
+
+ it_behaves_like 'has conflicting merge request guard'
+ end
+end
diff --git a/spec/workers/bulk_imports/export_request_worker_spec.rb b/spec/workers/bulk_imports/export_request_worker_spec.rb
index 2cc6348bb27..25adaef28fd 100644
--- a/spec/workers/bulk_imports/export_request_worker_spec.rb
+++ b/spec/workers/bulk_imports/export_request_worker_spec.rb
@@ -62,7 +62,7 @@ RSpec.describe BulkImports::ExportRequestWorker, feature_category: :importers do
context 'when something goes wrong during source id fetch' do
let(:entity_source_id) { 'invalid' }
- it 'logs the error & requests relations export using full path url' do
+ it 'logs the exception as a warning & requests relations export using full path url' do
allow(BulkImports::EntityWorker).to receive(:perform_async)
expect_next_instance_of(BulkImports::Clients::HTTP) do |client|
@@ -74,7 +74,7 @@ RSpec.describe BulkImports::ExportRequestWorker, feature_category: :importers do
expect_next_instance_of(BulkImports::Logger) do |logger|
expect(logger).to receive(:with_entity).with(entity).and_call_original
- expect(logger).to receive(:error).with(
+ expect(logger).to receive(:warn).with(
a_hash_including(
'exception.backtrace' => anything,
'exception.class' => 'NoMethodError',
@@ -123,20 +123,6 @@ RSpec.describe BulkImports::ExportRequestWorker, feature_category: :importers do
described_class.new.perform(entity.id)
end
-
- context 'when bulk_imports_batched_import_export feature flag is disabled' do
- it 'requests relation export without batched param' do
- stub_feature_flags(bulk_imports_batched_import_export: false)
-
- expected_url = "/projects/#{entity.source_xid}/export_relations"
-
- expect_next_instance_of(BulkImports::Clients::HTTP) do |client|
- expect(client).to receive(:post).with(expected_url)
- end
-
- described_class.new.perform(entity.id)
- end
- end
end
end
diff --git a/spec/workers/ci/unlock_pipelines_in_queue_worker_spec.rb b/spec/workers/ci/unlock_pipelines_in_queue_worker_spec.rb
index ca1d234eb5b..d48eed4ae90 100644
--- a/spec/workers/ci/unlock_pipelines_in_queue_worker_spec.rb
+++ b/spec/workers/ci/unlock_pipelines_in_queue_worker_spec.rb
@@ -101,6 +101,7 @@ RSpec.describe Ci::UnlockPipelinesInQueueWorker, :unlock_pipelines, :clean_gitla
before do
stub_feature_flags(
+ ci_unlock_pipelines_extra_low: false,
ci_unlock_pipelines: false,
ci_unlock_pipelines_medium: false,
ci_unlock_pipelines_high: false
@@ -109,6 +110,14 @@ RSpec.describe Ci::UnlockPipelinesInQueueWorker, :unlock_pipelines, :clean_gitla
it { is_expected.to eq(0) }
+ context 'when ci_unlock_pipelines_extra_low flag is enabled' do
+ before do
+ stub_feature_flags(ci_unlock_pipelines_extra_low: true)
+ end
+
+ it { is_expected.to eq(described_class::MAX_RUNNING_EXTRA_LOW) }
+ end
+
context 'when ci_unlock_pipelines flag is enabled' do
before do
stub_feature_flags(ci_unlock_pipelines: true)
diff --git a/spec/workers/click_house/event_authors_consistency_cron_worker_spec.rb b/spec/workers/click_house/event_authors_consistency_cron_worker_spec.rb
new file mode 100644
index 00000000000..d4fa35b9b82
--- /dev/null
+++ b/spec/workers/click_house/event_authors_consistency_cron_worker_spec.rb
@@ -0,0 +1,104 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ClickHouse::EventAuthorsConsistencyCronWorker, feature_category: :value_stream_management do
+ let(:worker) { described_class.new }
+
+ context 'when ClickHouse is disabled' do
+ it 'does nothing' do
+ allow(ClickHouse::Client).to receive(:database_configured?).and_return(false)
+
+ expect(worker).not_to receive(:log_extra_metadata_on_done)
+
+ worker.perform
+ end
+ end
+
+ context 'when the event_sync_worker_for_click_house feature flag is off' do
+ it 'does nothing' do
+ allow(ClickHouse::Client).to receive(:database_configured?).and_return(true)
+ stub_feature_flags(event_sync_worker_for_click_house: false)
+
+ expect(worker).not_to receive(:log_extra_metadata_on_done)
+
+ worker.perform
+ end
+ end
+
+ context 'when ClickHouse is available', :click_house do
+ let_it_be(:connection) { ClickHouse::Connection.new(:main) }
+ let_it_be_with_reload(:user1) { create(:user) }
+ let_it_be_with_reload(:user2) { create(:user) }
+
+ let(:leftover_author_ids) { connection.select('SELECT DISTINCT author_id FROM events FINAL').pluck('author_id') }
+ let(:deleted_user_id1) { user2.id + 1 }
+ let(:deleted_user_id2) { user2.id + 2 }
+
+ before do
+ insert_query = <<~SQL
+ INSERT INTO events (id, author_id) VALUES
+ (1, #{user1.id}),
+ (2, #{user2.id}),
+ (3, #{deleted_user_id1}),
+ (4, #{deleted_user_id1}),
+ (5, #{deleted_user_id2})
+ SQL
+
+ connection.execute(insert_query)
+ end
+
+ it 'cleans up all inconsistent records in ClickHouse' do
+ worker.perform
+
+ expect(leftover_author_ids).to contain_exactly(user1.id, user2.id)
+
+ # the next job starts from the beginning of the table
+ expect(ClickHouse::SyncCursor.cursor_for(:event_authors_consistency_check)).to eq(0)
+ end
+
+ context 'when the previous job was not finished' do
+ it 'continues the processing from the cursor' do
+ ClickHouse::SyncCursor.update_cursor_for(:event_authors_consistency_check, deleted_user_id1)
+
+ worker.perform
+
+ # the previous records should remain
+ expect(leftover_author_ids).to contain_exactly(user1.id, user2.id)
+ end
+ end
+
+ context 'when processing stops due to the record clean up limit' do
+ it 'stores the last processed id value' do
+ User.where(id: [user1.id, user2.id]).delete_all
+
+ stub_const("#{described_class}::MAX_AUTHOR_DELETIONS", 2)
+ stub_const("#{described_class}::POSTGRESQL_BATCH_SIZE", 1)
+
+ expect(worker).to receive(:log_extra_metadata_on_done).with(:result,
+ { status: :deletion_limit_reached, deletions: 2 })
+
+ worker.perform
+
+ expect(leftover_author_ids).to contain_exactly(deleted_user_id1, deleted_user_id2)
+ expect(ClickHouse::SyncCursor.cursor_for(:event_authors_consistency_check)).to eq(user2.id)
+ end
+ end
+
+ context 'when time limit is reached' do
+ it 'stops the processing earlier' do
+ stub_const("#{described_class}::POSTGRESQL_BATCH_SIZE", 1)
+
+ # stop at the third author_id
+ allow_next_instance_of(Analytics::CycleAnalytics::RuntimeLimiter) do |runtime_limiter|
+ allow(runtime_limiter).to receive(:over_time?).and_return(false, false, true)
+ end
+ expect(worker).to receive(:log_extra_metadata_on_done).with(:result, { status: :over_time, deletions: 1 })
+
+ worker.perform
+
+ expect(leftover_author_ids).to contain_exactly(user1.id, user2.id, deleted_user_id2)
+ end
+ end
+ end
+end
diff --git a/spec/workers/click_house/events_sync_worker_spec.rb b/spec/workers/click_house/events_sync_worker_spec.rb
index 9662f26115a..dc3dea24e37 100644
--- a/spec/workers/click_house/events_sync_worker_spec.rb
+++ b/spec/workers/click_house/events_sync_worker_spec.rb
@@ -11,176 +11,20 @@ RSpec.describe ClickHouse::EventsSyncWorker, feature_category: :value_stream_man
)
end
- it_behaves_like 'an idempotent worker' do
- context 'when the event_sync_worker_for_click_house feature flag is on', :click_house do
- before do
- stub_feature_flags(event_sync_worker_for_click_house: true)
+ context 'when worker is enqueued' do
+ it 'calls ::ClickHouse::SyncStrategies::EventSyncStrategy with correct args' do
+ expect_next_instance_of(::ClickHouse::SyncStrategies::EventSyncStrategy) do |instance|
+ expect(instance).to receive(:execute)
end
- context 'when there is nothing to sync' do
- it 'adds metadata for the worker' do
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result,
- { status: :processed, records_inserted: 0, reached_end_of_table: true })
-
- worker.perform
-
- events = ClickHouse::Client.select('SELECT * FROM events', :main)
- expect(events).to be_empty
- end
- end
-
- context 'when syncing records' do
- let_it_be(:group) { create(:group) }
- let_it_be(:project) { create(:project, group: group) }
- let_it_be(:issue) { create(:issue, project: project) }
- let_it_be(:project_event2) { create(:event, :closed, project: project, target: issue) }
- let_it_be(:event_without_parent) { create(:event, :joined, project: nil, group: nil) }
- let_it_be(:group_event) { create(:event, :created, group: group, project: nil) }
- let_it_be(:project_event1) { create(:event, :created, project: project, target: issue) }
- # looks invalid but we have some records like this on PRD
-
- it 'inserts all records' do
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result,
- { status: :processed, records_inserted: 4, reached_end_of_table: true })
-
- worker.perform
-
- expected_records = [
- hash_including('id' => project_event2.id, 'path' => "#{group.id}/#{project.project_namespace.id}/",
- 'target_type' => 'Issue'),
- hash_including('id' => event_without_parent.id, 'path' => '', 'target_type' => ''),
- hash_including('id' => group_event.id, 'path' => "#{group.id}/", 'target_type' => ''),
- hash_including('id' => project_event1.id, 'path' => "#{group.id}/#{project.project_namespace.id}/",
- 'target_type' => 'Issue')
- ]
-
- events = ClickHouse::Client.select('SELECT * FROM events ORDER BY id', :main)
-
- expect(events).to match(expected_records)
-
- last_processed_id = ClickHouse::SyncCursor.cursor_for(:events)
- expect(last_processed_id).to eq(project_event1.id)
- end
-
- context 'when multiple batches are needed' do
- before do
- stub_const("#{described_class}::BATCH_SIZE", 1)
- stub_const("#{described_class}::INSERT_BATCH_SIZE", 1)
- end
-
- it 'inserts all records' do
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result,
- { status: :processed, records_inserted: 4, reached_end_of_table: true })
-
- worker.perform
-
- events = ClickHouse::Client.select('SELECT * FROM events', :main)
- expect(events.size).to eq(4)
- end
-
- context 'when new records are inserted while processing' do
- it 'does not process new records created during the iteration' do
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result,
- { status: :processed, records_inserted: 4,
- reached_end_of_table: true })
-
- # Simulating the case when there is an insert during the iteration
- call_count = 0
- allow(worker).to receive(:next_batch).and_wrap_original do |method|
- call_count += 1
- create(:event) if call_count == 3
- method.call
- end
-
- worker.perform
- end
- end
- end
-
- context 'when time limit is reached' do
- before do
- stub_const("#{described_class}::BATCH_SIZE", 1)
- end
-
- it 'stops the processing' do
- allow_next_instance_of(Analytics::CycleAnalytics::RuntimeLimiter) do |runtime_limiter|
- allow(runtime_limiter).to receive(:over_time?).and_return(false, true)
- end
-
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result,
- { status: :processed, records_inserted: 2, reached_end_of_table: false })
-
- worker.perform
-
- last_processed_id = ClickHouse::SyncCursor.cursor_for(:events)
- expect(last_processed_id).to eq(event_without_parent.id)
- end
- end
-
- context 'when syncing from a certain point' do
- before do
- ClickHouse::SyncCursor.update_cursor_for(:events, project_event2.id)
- end
-
- it 'syncs records after the cursor' do
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result,
- { status: :processed, records_inserted: 3, reached_end_of_table: true })
-
- worker.perform
-
- events = ClickHouse::Client.select('SELECT id FROM events ORDER BY id', :main)
- expect(events).to eq([{ 'id' => event_without_parent.id }, { 'id' => group_event.id },
- { 'id' => project_event1.id }])
- end
-
- context 'when there is nothing to sync' do
- it 'does nothing' do
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result,
- { status: :processed, records_inserted: 0, reached_end_of_table: true })
-
- ClickHouse::SyncCursor.update_cursor_for(:events, project_event1.id)
- worker.perform
-
- events = ClickHouse::Client.select('SELECT id FROM events ORDER BY id', :main)
- expect(events).to be_empty
- end
- end
- end
- end
- end
-
- context 'when clickhouse is not configured' do
- before do
- allow(ClickHouse::Client).to receive(:database_configured?).and_return(false)
- end
-
- it 'skips execution' do
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result, { status: :disabled })
-
- worker.perform
- end
- end
- end
-
- context 'when exclusive lease error happens' do
- it 'skips execution' do
- stub_feature_flags(event_sync_worker_for_click_house: true)
- allow(ClickHouse::Client).to receive(:database_configured?).with(:main).and_return(true)
-
- expect(worker).to receive(:in_lock).and_raise(Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError)
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result, { status: :skipped })
-
worker.perform
end
- end
- context 'when the event_sync_worker_for_click_house feature flag is off' do
- before do
- stub_feature_flags(event_sync_worker_for_click_house: false)
- end
-
- it 'skips execution' do
- expect(worker).to receive(:log_extra_metadata_on_done).with(:result, { status: :disabled })
+ it 'correctly logs the metadata on done' do
+ expect_next_instance_of(::ClickHouse::SyncStrategies::EventSyncStrategy) do |instance|
+ expect(instance).to receive(:execute).and_return({ status: :ok })
+ end
+ expect(worker).to receive(:log_extra_metadata_on_done).with(:result, { status: :ok })
worker.perform
end
diff --git a/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb b/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb
index bba855f5095..f62c08cb7da 100644
--- a/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb
+++ b/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb
@@ -269,6 +269,33 @@ RSpec.describe Gitlab::GithubImport::ObjectImporter, :aggregate_failures, featur
expect(import_failures.first.external_identifiers).to eq(github_identifiers.with_indifferent_access)
end
end
+
+ context 'when FailedToObtainLockError is raised' do
+ let(:exception) { Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError.new }
+
+ before do
+ expect(importer_class).to receive(:new)
+ .with(instance_of(MockRepresentation), project, client)
+ .and_return(importer_instance)
+
+ expect(importer_instance).to receive(:execute).and_raise(exception)
+ end
+
+ it 'logs the error and raises an exception' do
+ expect(Gitlab::GithubImport::Logger).to receive(:warn).with(
+ {
+ external_identifiers: github_identifiers,
+ message: 'Failed to obtaing lock for user finder. Retrying later.',
+ project_id: project.id,
+ importer: 'klass_name'
+ }
+ )
+
+ expect do
+ worker.import(project, client, { 'number' => 10, 'github_id' => 1 })
+ end.to raise_error(Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError)
+ end
+ end
end
describe '#increment_object_counter?' do
diff --git a/spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb b/spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb
index c76ce6b555f..7b8c4fab0c6 100644
--- a/spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb
+++ b/spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb
@@ -76,7 +76,7 @@ RSpec.describe Gitlab::GithubImport::ReschedulingMethods, feature_category: :imp
expect(worker.class)
.to receive(:perform_in)
- .with(15, project.id, { 'number' => 2 }, '123')
+ .with(15.012, project.id, { 'number' => 2 }, '123')
worker.perform(project.id, { 'number' => 2 }, '123')
end
@@ -100,6 +100,15 @@ RSpec.describe Gitlab::GithubImport::ReschedulingMethods, feature_category: :imp
expect(worker.try_import(10, 20)).to eq(false)
end
+
+ it 'returns false when the import fails due to the FailedToObtainLockError' do
+ expect(worker)
+ .to receive(:import)
+ .with(10, 20)
+ .and_raise(Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError)
+
+ expect(worker.try_import(10, 20)).to eq(false)
+ end
end
describe '#notify_waiter' do
diff --git a/spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb b/spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb
index 37e686f9f92..a88d819843a 100644
--- a/spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb
+++ b/spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb
@@ -2,9 +2,9 @@
require 'spec_helper'
+# Most tests of StageMethods should not go here but in the shared examples instead:
+# spec/support/shared_examples/workers/gitlab/github_import/stage_methods_shared_examples.rb
RSpec.describe Gitlab::GithubImport::StageMethods, feature_category: :importers do
- let_it_be(:project) { create(:project, :import_started, import_url: 'https://t0ken@github.com/repo/repo.git') }
-
let(:worker) do
Class.new do
def self.name
@@ -15,200 +15,17 @@ RSpec.describe Gitlab::GithubImport::StageMethods, feature_category: :importers
end.new
end
- it 'has a Sidekiq retry of 6' do
- expect(worker.class.sidekiq_options['retry']).to eq(6)
- end
-
- describe '#perform' do
- it 'returns if no project could be found' do
- expect(worker).not_to receive(:try_import)
-
- worker.perform(-1)
- end
-
- it 'returns if the import state is no longer in progress' do
- allow(project.import_state).to receive(:status).and_return('failed')
-
- allow(worker)
- .to receive(:find_project)
- .with(project.id)
- .and_return(project)
-
- expect(worker).not_to receive(:try_import)
-
- expect(Gitlab::GithubImport::Logger)
- .to receive(:info)
- .with(
- {
- message: 'starting stage',
- project_id: project.id,
- import_stage: 'DummyStage'
- }
- )
-
- expect(Gitlab::GithubImport::Logger)
- .to receive(:info)
- .with(
- {
- message: 'Project import is no longer running. Stopping worker.',
- project_id: project.id,
- import_stage: 'DummyStage',
- import_status: 'failed'
- }
- )
-
- worker.perform(project.id)
- end
-
- it 'imports the data when the project exists' do
- allow(worker)
- .to receive(:find_project)
- .with(project.id)
- .and_return(project)
-
- expect(worker)
- .to receive(:try_import)
- .with(
- an_instance_of(Gitlab::GithubImport::Client),
- an_instance_of(Project)
- )
-
- expect(Gitlab::GithubImport::Logger)
- .to receive(:info)
- .with(
- {
- message: 'starting stage',
- project_id: project.id,
- import_stage: 'DummyStage'
- }
- )
-
- expect(Gitlab::GithubImport::Logger)
- .to receive(:info)
- .with(
- {
- message: 'stage finished',
- project_id: project.id,
- import_stage: 'DummyStage'
- }
- )
-
- worker.perform(project.id)
- end
-
- it 'logs error when import fails' do
- exception = StandardError.new('some error')
-
- allow(worker)
- .to receive(:find_project)
- .with(project.id)
- .and_return(project)
-
- expect(worker)
- .to receive(:try_import)
- .and_raise(exception)
-
- expect(Gitlab::GithubImport::Logger)
- .to receive(:info)
- .with(
- {
- message: 'starting stage',
- project_id: project.id,
- import_stage: 'DummyStage'
- }
- )
-
- expect(Gitlab::Import::ImportFailureService)
- .to receive(:track)
- .with(
- {
- project_id: project.id,
- exception: exception,
- error_source: 'DummyStage',
- fail_import: false,
- metrics: true
- }
- ).and_call_original
-
- expect { worker.perform(project.id) }
- .to raise_error(exception)
-
- expect(project.import_state.reload.status).to eq('started')
-
- expect(project.import_failures).not_to be_empty
- expect(project.import_failures.last.exception_class).to eq('StandardError')
- expect(project.import_failures.last.exception_message).to eq('some error')
- end
- end
-
- describe '#try_import' do
- before do
- allow(worker).to receive(:jid).and_return('jid')
- end
-
- it 'imports the project' do
- client = double(:client)
-
- expect(worker)
- .to receive(:import)
- .with(client, project)
-
- expect(Gitlab::GithubImport::RefreshImportJidWorker).to receive(:perform_in_the_future).with(project.id, 'jid')
-
- worker.try_import(client, project)
- end
-
- it 'reschedules the worker if RateLimitError was raised' do
- client = double(:client, rate_limit_resets_in: 10)
-
- expect(Gitlab::GithubImport::RefreshImportJidWorker).to receive(:perform_in_the_future).with(project.id, 'jid')
-
- expect(worker)
- .to receive(:import)
- .with(client, project)
- .and_raise(Gitlab::GithubImport::RateLimitError)
-
- expect(worker.class)
- .to receive(:perform_in)
- .with(10, project.id)
-
- worker.try_import(client, project)
- end
- end
-
- describe '#find_project' do
- it 'returns a Project for an existing ID' do
- project.import_state.update_column(:status, 'started')
-
- expect(worker.find_project(project.id)).to eq(project)
- end
-
- it 'returns nil for a project that failed importing' do
- project.import_state.update_column(:status, 'failed')
-
- expect(worker.find_project(project.id)).to be_nil
- end
-
- it 'returns nil for a non-existing project ID' do
- expect(worker.find_project(-1)).to be_nil
- end
- end
-
- describe '.sidekiq_options!' do
- subject(:sidekiq_options) { worker.class.sidekiq_options }
+ describe '.max_retries_after_interruption!' do
+ subject(:max_retries_after_interruption) { worker.class.sidekiq_options['max_retries_after_interruption'] }
it 'does not set the `max_retries_after_interruption` if not called' do
- is_expected.not_to have_key('max_retries_after_interruption')
+ is_expected.to be_nil
end
it 'sets the `max_retries_after_interruption`' do
worker.class.resumes_work_when_interrupted!
- is_expected.to include('max_retries_after_interruption' => 20)
- end
-
- it 'sets the status_expiration' do
- is_expected.to include('status_expiration' => Gitlab::Import::StuckImportJob::IMPORT_JOBS_EXPIRATION)
+ is_expected.to eq(20)
end
end
end
diff --git a/spec/workers/emails_on_push_worker_spec.rb b/spec/workers/emails_on_push_worker_spec.rb
index 9e8fad19c20..7f400ce791d 100644
--- a/spec/workers/emails_on_push_worker_spec.rb
+++ b/spec/workers/emails_on_push_worker_spec.rb
@@ -18,7 +18,7 @@ RSpec.describe EmailsOnPushWorker, :mailer, feature_category: :source_code_manag
describe "#perform" do
context "when push is a new branch" do
before do
- data_new_branch = data.stringify_keys.merge("before" => Gitlab::Git::BLANK_SHA)
+ data_new_branch = data.stringify_keys.merge("before" => Gitlab::Git::SHA1_BLANK_SHA)
subject.perform(project.id, recipients, data_new_branch)
end
@@ -34,7 +34,7 @@ RSpec.describe EmailsOnPushWorker, :mailer, feature_category: :source_code_manag
context "when push is a deleted branch" do
before do
- data_deleted_branch = data.stringify_keys.merge("after" => Gitlab::Git::BLANK_SHA)
+ data_deleted_branch = data.stringify_keys.merge("after" => Gitlab::Git::SHA1_BLANK_SHA)
subject.perform(project.id, recipients, data_deleted_branch)
end
diff --git a/spec/workers/every_sidekiq_worker_spec.rb b/spec/workers/every_sidekiq_worker_spec.rb
index c60e8d37c2e..4067bce8d8d 100644
--- a/spec/workers/every_sidekiq_worker_spec.rb
+++ b/spec/workers/every_sidekiq_worker_spec.rb
@@ -163,7 +163,6 @@ RSpec.describe 'Every Sidekiq worker', feature_category: :shared do
'Ci::InitialPipelineProcessWorker' => 3,
'Ci::MergeRequests::AddTodoWhenBuildFailsWorker' => 3,
'Ci::Minutes::UpdateProjectAndNamespaceUsageWorker' => 3,
- 'Ci::Llm::GenerateConfigWorker' => 3,
'Ci::PipelineArtifacts::CoverageReportWorker' => 3,
'Ci::PipelineArtifacts::CreateQualityReportWorker' => 3,
'Ci::PipelineCleanupRefWorker' => 3,
@@ -280,6 +279,7 @@ RSpec.describe 'Every Sidekiq worker', feature_category: :shared do
'Gitlab::GithubImport::PullRequests::ImportMergedByWorker' => 5,
'Gitlab::GithubImport::ImportPullRequestWorker' => 5,
'Gitlab::GithubImport::RefreshImportJidWorker' => 5,
+ 'Gitlab::GithubImport::ReplayEventsWorker' => 5,
'Gitlab::GithubImport::Stage::FinishImportWorker' => 6,
'Gitlab::GithubImport::Stage::ImportBaseDataWorker' => 6,
'Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker' => 6,
diff --git a/spec/workers/gitlab/bitbucket_server_import/stage/import_users_worker_spec.rb b/spec/workers/gitlab/bitbucket_server_import/stage/import_users_worker_spec.rb
index d4cd1b82349..1141d08729d 100644
--- a/spec/workers/gitlab/bitbucket_server_import/stage/import_users_worker_spec.rb
+++ b/spec/workers/gitlab/bitbucket_server_import/stage/import_users_worker_spec.rb
@@ -3,7 +3,14 @@
require 'spec_helper'
RSpec.describe Gitlab::BitbucketServerImport::Stage::ImportUsersWorker, feature_category: :importers do
- let_it_be(:project) { create(:project, :import_started) }
+ let_it_be(:project) do
+ create(:project, :import_started,
+ import_data_attributes: {
+ data: { 'project_key' => 'key', 'repo_slug' => 'slug' },
+ credentials: { 'base_uri' => 'http://bitbucket.org/', 'user' => 'bitbucket', 'password' => 'password' }
+ }
+ )
+ end
let(:worker) { described_class.new }
@@ -15,6 +22,12 @@ RSpec.describe Gitlab::BitbucketServerImport::Stage::ImportUsersWorker, feature_
allow_next_instance_of(Gitlab::BitbucketServerImport::Importers::UsersImporter) do |importer|
allow(importer).to receive(:execute)
end
+
+ allow(Gitlab::BitbucketServerImport::Stage::ImportPullRequestsWorker).to receive(:perform_async).and_return(nil)
+ end
+
+ it_behaves_like 'an idempotent worker' do
+ let(:job_args) { [project.id] }
end
it 'schedules the next stage' do
diff --git a/spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb b/spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb
index aa8243154ef..cbe27934bd5 100644
--- a/spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb
@@ -5,16 +5,13 @@ require 'spec_helper'
RSpec.describe Gitlab::GithubImport::ImportIssueEventWorker, feature_category: :importers do
subject(:worker) { described_class.new }
- describe '#import' do
- let(:import_state) { create(:import_state, :started) }
-
- let(:project) do
- instance_double('Project', full_path: 'foo/bar', id: 1, import_state: import_state)
+ describe '#execute' do
+ let_it_be(:project) do
+ create(:project, import_url: 'https://github.com/foo/bar.git', import_state: create(:import_state, :started))
end
- let(:client) { instance_double('Gitlab::GithubImport::Client') }
- let(:importer) { instance_double('Gitlab::GithubImport::Importer::IssueEventImporter') }
-
+ let(:client) { instance_double(Gitlab::GithubImport::Client) }
+ let(:extended_events) { true }
let(:event_hash) do
{
'id' => 6501124486,
@@ -29,23 +26,55 @@ RSpec.describe Gitlab::GithubImport::ImportIssueEventWorker, feature_category: :
}
end
- it 'imports an issue event' do
- expect(Gitlab::GithubImport::Importer::IssueEventImporter)
- .to receive(:new)
- .with(
- an_instance_of(Gitlab::GithubImport::Representation::IssueEvent),
- project,
- client
- )
- .and_return(importer)
+ before do
+ allow_next_instance_of(Gitlab::GithubImport::Settings) do |setting|
+ allow(setting).to receive(:extended_events?).and_return(extended_events)
+ end
+ end
- expect(importer).to receive(:execute)
+ it 'imports an issue event and increase importer counter' do
+ expect_next_instance_of(Gitlab::GithubImport::Importer::IssueEventImporter,
+ an_instance_of(Gitlab::GithubImport::Representation::IssueEvent),
+ project,
+ client
+ ) do |importer|
+ expect(importer).to receive(:execute)
+ end
expect(Gitlab::GithubImport::ObjectCounter)
.to receive(:increment)
+ .with(project, :issue_event, :imported)
.and_call_original
worker.import(project, client, event_hash)
end
+
+ context 'when event should increment a mapped importer counter' do
+ before do
+ stub_const('Gitlab::GithubImport::Importer::IssueEventImporter::EVENT_COUNTER_MAP', {
+ 'closed' => 'custom_type'
+ })
+
+ allow_next_instance_of(Gitlab::GithubImport::Importer::IssueEventImporter) do |importer|
+ allow(importer).to receive(:execute)
+ end
+ end
+
+ it 'increments the mapped importer counter' do
+ expect(Gitlab::GithubImport::ObjectCounter).to receive(:increment).with(project, 'custom_type', :imported)
+
+ worker.import(project, client, event_hash)
+ end
+
+ context 'when extended_events is disabled' do
+ let(:extended_events) { false }
+
+ it 'increments the issue_event importer counter' do
+ expect(Gitlab::GithubImport::ObjectCounter).to receive(:increment).with(project, :issue_event, :imported)
+
+ worker.import(project, client, event_hash)
+ end
+ end
+ end
end
end
diff --git a/spec/workers/gitlab/github_import/replay_events_worker_spec.rb b/spec/workers/gitlab/github_import/replay_events_worker_spec.rb
new file mode 100644
index 00000000000..99c9e838bbf
--- /dev/null
+++ b/spec/workers/gitlab/github_import/replay_events_worker_spec.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::GithubImport::ReplayEventsWorker, feature_category: :importers do
+ let_it_be(:project) { create(:project, import_state: create(:import_state, :started)) }
+ let(:client) { instance_double(Gitlab::GithubImport::Client) }
+
+ let(:worker) { described_class.new }
+
+ describe '#import' do
+ it 'call replay events importer' do
+ hash = {
+ 'issuable_iid' => 1,
+ 'issuable_type' => 'Issue'
+ }
+
+ expect_next_instance_of(Gitlab::GithubImport::Importer::ReplayEventsImporter,
+ an_instance_of(Gitlab::GithubImport::Representation::ReplayEvent), project, client) do |importer|
+ expect(importer).to receive(:execute)
+ end
+
+ expect(Gitlab::GithubImport::ObjectCounter).not_to receive(:increment)
+
+ worker.import(project, client, hash)
+ end
+ end
+
+ describe '#object_type' do
+ it { expect(worker.object_type).to eq(:replay_event) }
+ end
+end
diff --git a/spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb b/spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb
index 6d8fa29bd27..ba8fcdb2406 100644
--- a/spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb
@@ -3,8 +3,9 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::FinishImportWorker, feature_category: :importers do
- let(:project) { create(:project) }
- let(:worker) { described_class.new }
+ let_it_be(:project) { create(:project) }
+
+ subject(:worker) { described_class.new }
it_behaves_like Gitlab::GithubImport::StageMethods
diff --git a/spec/workers/gitlab/github_import/stage/import_attachments_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_attachments_worker_spec.rb
index c8b528593b9..75c9ab96751 100644
--- a/spec/workers/gitlab/github_import/stage/import_attachments_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_attachments_worker_spec.rb
@@ -3,12 +3,13 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportAttachmentsWorker, feature_category: :importers do
- subject(:worker) { described_class.new }
-
let_it_be(:project) { create(:project) }
- let(:settings) { ::Gitlab::GithubImport::Settings.new(project) }
+
+ let(:settings) { ::Gitlab::GithubImport::Settings.new(project.reload) }
let(:stage_enabled) { true }
+ subject(:worker) { described_class.new }
+
before do
settings.write({ optional_stages: { attachments_import: stage_enabled } })
end
diff --git a/spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb
index b8f2db8e2d9..49dc905f430 100644
--- a/spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb
@@ -4,12 +4,12 @@ require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportBaseDataWorker, feature_category: :importers do
let_it_be(:project) { create(:project) }
- let_it_be(:import_state) { create(:import_state, project: project) }
- let(:worker) { described_class.new }
let(:importer) { double(:importer) }
let(:client) { double(:client) }
+ subject(:worker) { described_class.new }
+
it_behaves_like Gitlab::GithubImport::StageMethods
describe '#import' do
diff --git a/spec/workers/gitlab/github_import/stage/import_collaborators_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_collaborators_worker_spec.rb
index 6a55f575da8..7a085227b36 100644
--- a/spec/workers/gitlab/github_import/stage/import_collaborators_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_collaborators_worker_spec.rb
@@ -4,14 +4,14 @@ require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportCollaboratorsWorker, feature_category: :importers do
let_it_be(:project) { create(:project) }
- let_it_be(:import_state) { create(:import_state, project: project) }
+
let(:settings) { Gitlab::GithubImport::Settings.new(project) }
let(:stage_enabled) { true }
-
- let(:worker) { described_class.new }
let(:importer) { instance_double(Gitlab::GithubImport::Importer::CollaboratorsImporter) }
let(:client) { instance_double(Gitlab::GithubImport::Client) }
+ subject(:worker) { described_class.new }
+
it_behaves_like Gitlab::GithubImport::StageMethods
describe '#import' do
diff --git a/spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb
index bad3a5beb0e..6b01f2825e4 100644
--- a/spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb
@@ -3,15 +3,19 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportIssueEventsWorker, feature_category: :importers do
- subject(:worker) { described_class.new }
+ let_it_be(:project) { create(:project) }
- let(:project) { create(:project) }
let!(:group) { create(:group, projects: [project]) }
- let(:settings) { ::Gitlab::GithubImport::Settings.new(project) }
+ let(:settings) { ::Gitlab::GithubImport::Settings.new(project.reload) }
let(:stage_enabled) { true }
+ let(:extended_events) { false }
+
+ subject(:worker) { described_class.new }
before do
- settings.write({ optional_stages: { single_endpoint_issue_events_import: stage_enabled } })
+ settings.write({
+ optional_stages: { single_endpoint_issue_events_import: stage_enabled }, extended_events: extended_events
+ })
end
it_behaves_like Gitlab::GithubImport::StageMethods
@@ -48,6 +52,18 @@ RSpec.describe Gitlab::GithubImport::Stage::ImportIssueEventsWorker, feature_cat
worker.import(client, project)
end
+
+ context 'when extended_events is enabled' do
+ let(:extended_events) { true }
+
+ it 'does not skip the stage' do
+ expect_next_instance_of(Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter) do |importer|
+ expect(importer).to receive(:execute).and_return(Gitlab::JobWaiter.new)
+ end
+
+ worker.import(client, project)
+ end
+ end
end
end
end
diff --git a/spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb
index 10f6ebfbab9..bc829e6124c 100644
--- a/spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb
@@ -3,12 +3,13 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker, feature_category: :importers do
- let(:project) { create(:project) }
- let(:worker) { described_class.new }
+ let_it_be(:project) { create(:project) }
- let(:settings) { ::Gitlab::GithubImport::Settings.new(project) }
+ let(:settings) { ::Gitlab::GithubImport::Settings.new(project.reload) }
let(:single_endpoint_optional_stage) { true }
+ subject(:worker) { described_class.new }
+
before do
settings.write({ optional_stages: { single_endpoint_notes_import: single_endpoint_optional_stage } })
end
diff --git a/spec/workers/gitlab/github_import/stage/import_lfs_objects_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_lfs_objects_worker_spec.rb
index 40194a91b3a..a0b2f82f378 100644
--- a/spec/workers/gitlab/github_import/stage/import_lfs_objects_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_lfs_objects_worker_spec.rb
@@ -3,14 +3,16 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportLfsObjectsWorker, feature_category: :importers do
- let(:project) { create(:project) }
- let(:worker) { described_class.new }
+ let_it_be(:project) { create(:project) }
+
+ subject(:worker) { described_class.new }
it_behaves_like Gitlab::GithubImport::StageMethods
describe '#import' do
it 'imports all the lfs objects' do
- importer = double(:importer)
+ importer = instance_double(Gitlab::GithubImport::Importer::LfsObjectsImporter)
+ client = instance_double(Gitlab::GithubImport::Client)
waiter = Gitlab::JobWaiter.new(2, '123')
expect(Gitlab::GithubImport::Importer::LfsObjectsImporter)
@@ -26,7 +28,7 @@ RSpec.describe Gitlab::GithubImport::Stage::ImportLfsObjectsWorker, feature_cate
.to receive(:perform_async)
.with(project.id, { '123' => 2 }, 'finish')
- worker.import(project)
+ worker.import(client, project)
end
end
end
diff --git a/spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb
index 69078a666a5..a8b40ff43d2 100644
--- a/spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb
@@ -3,12 +3,13 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportNotesWorker, feature_category: :importers do
- let(:project) { create(:project) }
- let(:worker) { described_class.new }
+ let_it_be(:project) { create(:project) }
- let(:settings) { ::Gitlab::GithubImport::Settings.new(project) }
+ let(:settings) { ::Gitlab::GithubImport::Settings.new(project.reload) }
let(:single_endpoint_optional_stage) { true }
+ subject(:worker) { described_class.new }
+
before do
settings.write({ optional_stages: { single_endpoint_notes_import: single_endpoint_optional_stage } })
end
diff --git a/spec/workers/gitlab/github_import/stage/import_protected_branches_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_protected_branches_worker_spec.rb
index b73f8c6524d..dcc6b3d2311 100644
--- a/spec/workers/gitlab/github_import/stage/import_protected_branches_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_protected_branches_worker_spec.rb
@@ -4,12 +4,12 @@ require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportProtectedBranchesWorker, feature_category: :importers do
let_it_be(:project) { create(:project) }
- let_it_be(:import_state) { create(:import_state, project: project) }
- let(:worker) { described_class.new }
let(:importer) { instance_double('Gitlab::GithubImport::Importer::ProtectedBranchImporter') }
let(:client) { instance_double('Gitlab::GithubImport::Client') }
+ subject(:worker) { described_class.new }
+
it_behaves_like Gitlab::GithubImport::StageMethods
describe '#import' do
diff --git a/spec/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker_spec.rb
index b214f6a97d4..b3cb73c5fa0 100644
--- a/spec/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportPullRequestsMergedByWorker, feature_category: :importers do
- let(:project) { create(:project) }
- let(:import_state) { create(:import_state, project: project) }
- let(:worker) { described_class.new }
+ let_it_be(:project) { create(:project) }
+
+ subject(:worker) { described_class.new }
it_behaves_like Gitlab::GithubImport::StageMethods
diff --git a/spec/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker_spec.rb
index 4468de7e691..c7b73357e76 100644
--- a/spec/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker_spec.rb
@@ -3,14 +3,14 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportPullRequestsReviewRequestsWorker, feature_category: :importers do
- subject(:worker) { described_class.new }
+ let_it_be(:project) { create(:project) }
- let(:project) { instance_double(Project, id: 1, import_state: import_state) }
- let(:import_state) { instance_double(ProjectImportState) }
let(:client) { instance_double(Gitlab::GithubImport::Client) }
let(:importer) { instance_double(Gitlab::GithubImport::Importer::PullRequests::ReviewRequestsImporter) }
let(:waiter) { Gitlab::JobWaiter.new(2, '123') }
+ subject(:worker) { described_class.new }
+
it_behaves_like Gitlab::GithubImport::StageMethods
describe '#import' do
diff --git a/spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb
index 48b41435adb..ab3f0b43304 100644
--- a/spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb
@@ -3,11 +3,12 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker, feature_category: :importers do
- let(:project) { create(:project) }
- let(:import_state) { create(:import_state, project: project) }
- let(:worker) { described_class.new }
+ let_it_be(:project) { create(:project) }
+
let(:client) { double(:client) }
+ subject(:worker) { described_class.new }
+
it_behaves_like Gitlab::GithubImport::StageMethods
describe '#import' do
diff --git a/spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb
index 2ea66d8cdf3..2c1beb29fa1 100644
--- a/spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb
@@ -4,13 +4,13 @@ require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportPullRequestsWorker, feature_category: :importers do
let_it_be(:project) { create(:project) }
- let_it_be(:import_state) { create(:import_state, project: project) }
- let(:options) { { state: 'all', sort: 'number', direction: 'desc', per_page: '1' } }
- let(:worker) { described_class.new }
+ let(:options) { { state: 'all', sort: 'number', direction: 'desc', per_page: '1' } }
let(:importer) { double(:importer) }
let(:client) { double(:client) }
+ subject(:worker) { described_class.new }
+
it_behaves_like Gitlab::GithubImport::StageMethods
describe '#import' do
diff --git a/spec/workers/gitlab/github_import/stage/import_repository_worker_spec.rb b/spec/workers/gitlab/github_import/stage/import_repository_worker_spec.rb
index 020f7539bf4..e61b46124b3 100644
--- a/spec/workers/gitlab/github_import/stage/import_repository_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/stage/import_repository_worker_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
RSpec.describe Gitlab::GithubImport::Stage::ImportRepositoryWorker, feature_category: :importers do
- let_it_be(:project) { create(:project, :import_started) }
+ let_it_be(:project) { create(:project) }
- let(:worker) { described_class.new }
+ subject(:worker) { described_class.new }
it_behaves_like Gitlab::GithubImport::StageMethods
diff --git a/spec/workers/google_cloud/create_cloudsql_instance_worker_spec.rb b/spec/workers/google_cloud/create_cloudsql_instance_worker_spec.rb
index 7aea40807e8..e86d6771386 100644
--- a/spec/workers/google_cloud/create_cloudsql_instance_worker_spec.rb
+++ b/spec/workers/google_cloud/create_cloudsql_instance_worker_spec.rb
@@ -23,15 +23,15 @@ RSpec.describe GoogleCloud::CreateCloudsqlInstanceWorker, feature_category: :sha
described_class.new.perform(user_id, project_id, worker_options)
end
- it 'calls GoogleCloud::SetupCloudsqlInstanceService' do
- allow_next_instance_of(GoogleCloud::SetupCloudsqlInstanceService) do |service|
+ it 'calls CloudSeed::GoogleCloud::SetupCloudsqlInstanceService' do
+ allow_next_instance_of(CloudSeed::GoogleCloud::SetupCloudsqlInstanceService) do |service|
expect(service).to receive(:execute).and_return({ status: :success })
end
subject
end
- context 'when GoogleCloud::SetupCloudsqlInstanceService fails' do
+ context 'when CloudSeed::GoogleCloud::SetupCloudsqlInstanceService fails' do
subject do
user_id = random_user.id
project_id = project.id
@@ -39,7 +39,7 @@ RSpec.describe GoogleCloud::CreateCloudsqlInstanceWorker, feature_category: :sha
end
it 'raises error' do
- allow_next_instance_of(GoogleCloud::SetupCloudsqlInstanceService) do |service|
+ allow_next_instance_of(CloudSeed::GoogleCloud::SetupCloudsqlInstanceService) do |service|
expect(service).to receive(:execute).and_return({ status: :error })
end
diff --git a/spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb b/spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb
index bdafc076465..2a7d52d987f 100644
--- a/spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb
+++ b/spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe GoogleCloud::FetchGoogleIpListWorker, feature_category: :build_artifacts do
describe '#perform' do
it 'returns success' do
- allow_next_instance_of(GoogleCloud::FetchGoogleIpListService) do |service|
+ allow_next_instance_of(CloudSeed::GoogleCloud::FetchGoogleIpListService) do |service|
expect(service).to receive(:execute).and_return({ status: :success })
end
diff --git a/spec/workers/jira_connect/sync_project_worker_spec.rb b/spec/workers/jira_connect/sync_project_worker_spec.rb
index b617508bb3a..83bce97cd51 100644
--- a/spec/workers/jira_connect/sync_project_worker_spec.rb
+++ b/spec/workers/jira_connect/sync_project_worker_spec.rb
@@ -51,11 +51,11 @@ RSpec.describe JiraConnect::SyncProjectWorker, factory_default: :keep, feature_c
end
it 'avoids N+1 database queries' do
- control_count = ActiveRecord::QueryRecorder.new { perform(project.id, update_sequence_id) }.count
+ control = ActiveRecord::QueryRecorder.new { perform(project.id, update_sequence_id) }
create(:merge_request, :unique_branches, title: 'TEST-123')
- expect { perform(project.id, update_sequence_id) }.not_to exceed_query_limit(control_count)
+ expect { perform(project.id, update_sequence_id) }.not_to exceed_query_limit(control)
end
context 'with branches to sync' do
diff --git a/spec/workers/new_issue_worker_spec.rb b/spec/workers/new_issue_worker_spec.rb
index 540296374ef..b9cbf974a69 100644
--- a/spec/workers/new_issue_worker_spec.rb
+++ b/spec/workers/new_issue_worker_spec.rb
@@ -99,6 +99,14 @@ RSpec.describe NewIssueWorker, feature_category: :team_planning do
expect(Event.last).to have_attributes(target_id: issue.id, target_type: 'WorkItem')
end
end
+
+ context 'when skip_notifications is true' do
+ it 'does not call NotificationService' do
+ expect(NotificationService).not_to receive(:new)
+
+ worker.perform(issue.id, user.id, issue.class.name, true)
+ end
+ end
end
end
end
diff --git a/spec/workers/releases/publish_event_worker_spec.rb b/spec/workers/releases/publish_event_worker_spec.rb
new file mode 100644
index 00000000000..86dd09a756f
--- /dev/null
+++ b/spec/workers/releases/publish_event_worker_spec.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Releases::PublishEventWorker, feature_category: :release_evidence do
+ let_it_be(:project) { create(:project, :repository) }
+ let_it_be_with_reload(:release) { create(:release, project: project, released_at: Time.current) }
+
+ before do
+ allow(Gitlab::EventStore).to receive(:publish).and_return(true)
+ end
+
+ describe 'when the releases feature is not disabled' do
+ before do
+ project.update!(releases_access_level: 'enabled')
+ described_class.new.perform
+ end
+
+ it 'broadcasts the published event' do
+ expect(Gitlab::EventStore).to have_received(:publish).with(Projects::ReleasePublishedEvent)
+ end
+
+ it 'sets the release as published' do
+ expect(release.release_published_at).not_to be_nil
+ end
+ end
+
+ describe 'when the releases feature is disabled' do
+ before do
+ project.update!(releases_access_level: 'disabled')
+ described_class.new.perform
+ end
+
+ it 'does not broadcasts the published event' do
+ expect(Gitlab::EventStore).not_to have_received(:publish).with(Projects::ReleasePublishedEvent)
+ end
+
+ # Having a release created with the releases feature disabled is a bogus state anyway.
+ # Setting it as published prevents having such releases piling up forever in the
+ # `unpublished` scope.
+ it 'sets the release as published' do
+ expect(release.release_published_at).not_to be_nil
+ end
+ end
+end
diff --git a/tests.yml b/tests.yml
index 83558b39218..93d4f02f384 100644
--- a/tests.yml
+++ b/tests.yml
@@ -118,3 +118,9 @@ mapping:
test: 'spec/graphql/types/project_member_relation_enum_spec.rb'
- source: 'app/finders/group_members_finder\.rb'
test: 'spec/graphql/types/group_member_relation_enum_spec.rb'
+
+ # See https://gitlab.com/gitlab-org/quality/engineering-productivity/master-broken-incidents/-/issues/4440#note_1675547256
+ - source: lib/gitlab/ci/templates/.*\.gitlab-ci\.yml
+ test:
+ - spec/lib/gitlab/ci/templates/templates_spec.rb
+ - ee/spec/lib/ee/gitlab/ci/templates/templates_spec.rb
diff --git a/tooling/custom_roles/docs/templates/custom_abilities.md.erb b/tooling/custom_roles/docs/templates/custom_abilities.md.erb
new file mode 100644
index 00000000000..b6175d0d44f
--- /dev/null
+++ b/tooling/custom_roles/docs/templates/custom_abilities.md.erb
@@ -0,0 +1,54 @@
+<% custom_abilities_by_feature_category = MemberRole.all_customizable_permissions.group_by { |_k, definition| definition[:feature_category] } %>
+<% def humanize(feature_category) %>
+<% case feature_category %>
+<% when 'mlops' %>
+<% "MLOps" %>
+<% when 'not_owned' %>
+<% "Not categorized" %>
+<% else %>
+<% "#{feature_category.humanize}" %>
+<% end %>
+<% end %>
+<% def enabled_link(ability) %>
+<% return unless ability[:feature_flag_enabled_milestone] || ability[:feature_flag_enabled_mr] %>
+<% return "GitLab #{ability[:feature_flag_enabled_milestone]}" unless ability[:feature_flag_enabled_mr] %>
+<% "GitLab [#{ability[:feature_flag_enabled_milestone]}](#{ability[:feature_flag_enabled_mr]})" %>
+<% end %>
+<% def feature_flag(ability) %>
+<% return unless ability[:feature_flag] %>
+<% "`#{ability[:feature_flag]}`" %>
+<% end %>
+---
+stage: Govern
+group: Authorization
+info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
+---
+
+<!---
+ This documentation is auto generated by a Rake task.
+
+ Please do not edit this file directly. To update this file, run:
+ bundle exec rake gitlab:custom_roles:compile_docs
+
+ To make changes to the output of the Rake task,
+ edit `tooling/custom_roles/docs/templates/custom_abilities.md.erb`.
+--->
+
+# Available custom abilities
+
+The following abilities are available. You can add these abilities in any combination
+to a base role to create a custom role.
+
+Some abilities require having other abilities enabled first. For example, administration of vulnerabilities (`admin_vulnerability`) can only be enabled if reading vulnerabilities (`read_vulnerability`) is also enabled.
+
+These requirements are documented in the `Required ability` column in the following table.
+<% custom_abilities_by_feature_category.sort.each do |category, abilities| %>
+
+## <%= "#{humanize(category)}" %>
+
+| Name | Required permission | Description | Introduced in | Feature flag | Enabled in |
+|:-----|:------------|:------------------|:---------|:--------------|:---------|
+<% abilities.each do |name, ability| %>
+| <%= "[`#{name}`](#{ability[:introduced_by_mr]})" %> | <%= ability[:requirement] %> | <%= ability[:description] %> | GitLab <%= "[#{ability[:milestone]}](#{ability[:introduced_by_issue]})" %> | <%= feature_flag(ability) %> | <%= enabled_link(ability) %> |
+<% end %>
+<% end %>
diff --git a/tooling/danger/bulk_database_actions.rb b/tooling/danger/bulk_database_actions.rb
index 0f74e31cdde..7f3edaf7663 100644
--- a/tooling/danger/bulk_database_actions.rb
+++ b/tooling/danger/bulk_database_actions.rb
@@ -1,34 +1,25 @@
# frozen_string_literal: true
-require_relative 'suggestor'
+require_relative 'suggestion'
module Tooling
module Danger
- module BulkDatabaseActions
- include ::Tooling::Danger::Suggestor
+ class BulkDatabaseActions < Suggestion
+ MATCH = %r{\A\+\s+(\S*\.)?((update|upsert|delete|destroy)(_all)?)\b}
+ REPLACEMENT = nil
+ DOCUMENTATION_LINK = 'https://docs.gitlab.com/ee/development/database_review.html#preparation-when-using-bulk-update-operations'
- BULK_UPDATE_METHODS_REGEX = /\.((update|delete|destroy)(_all)?)\b/
+ SUGGESTION = <<~MESSAGE_MARKDOWN.freeze
+ When using `update`, `upsert`, `delete`, `update_all`, `upsert_all`, `delete_all` or `destroy_all`
+ you must include the full database query and query execution plan in the merge request description,
+ and request a ~database review.
- DOCUMENTATION_LINK = 'https://docs.gitlab.com/ee/development/database_review.html#preparation-when-using-update-delete-update_all-and-destroy_all'
- COMMENT_TEXT =
- "When using `update`, `delete`, `update_all`, `delete_all` or `destroy_all` you must include the full " \
- "database query and query execution plan in the merge request description, and request a ~database review. " \
- "This comment can be ignored if the object is not an ActiveRecord class, since no database query " \
- "would be generated. For more information, see [Database Review documentation](#{DOCUMENTATION_LINK}).".freeze
+ This comment can be ignored if the object is not an ActiveRecord class, since no database query would be generated.
- def add_comment_for_bulk_database_action_method_usage
- changed_ruby_files.each do |filename|
- add_suggestion(
- filename: filename,
- regex: BULK_UPDATE_METHODS_REGEX,
- comment_text: COMMENT_TEXT
- )
- end
- end
+ ----
- def changed_ruby_files
- helper.added_files.select { |f| f.end_with?('.rb') && !f.start_with?('spec/', 'ee/spec/', 'jh/spec/') }
- end
+ For more information, see [Database Review documentation](#{DOCUMENTATION_LINK}).
+ MESSAGE_MARKDOWN
end
end
end
diff --git a/tooling/danger/project_helper.rb b/tooling/danger/project_helper.rb
index e0953d59dad..bf2dba64065 100644
--- a/tooling/danger/project_helper.rb
+++ b/tooling/danger/project_helper.rb
@@ -105,6 +105,7 @@ module Tooling
%r{\A(app/models/project_authorization|app/services/users/refresh_authorized_projects_service)(/|\.rb)} => [:database, :backend],
%r{\A((ee|jh)/)?app/finders/} => [:database, :backend],
%r{\Arubocop/cop/migration(/|\.rb)} => :database,
+ [%r{\A((ee|jh)/)?(app|lib)/.+\.rb}, %r{\A\+\s+(\S*\.)?(update_all|upsert|upsert_all|delete_all|destroy_all)(\(.*\)|\(|\(.*)?\s*\z}] => [:database, :backend],
%r{\Alib/gitlab/ci/templates} => :ci_template,
diff --git a/tooling/lib/tooling/crystalball/coverage_lines_strategy.rb b/tooling/lib/tooling/crystalball/coverage_lines_strategy.rb
index ebcaab0b8d8..224fa3b9a79 100644
--- a/tooling/lib/tooling/crystalball/coverage_lines_strategy.rb
+++ b/tooling/lib/tooling/crystalball/coverage_lines_strategy.rb
@@ -10,13 +10,15 @@ module Tooling
# modified to use Coverage.start(lines: true)
# This maintains compatibility with SimpleCov on Ruby >= 2.5 with start arguments
# and SimpleCov.start uses Coverage.start(lines: true) by default
+ # See https://github.com/simplecov-ruby/simplecov/blob/v0.22.0/lib/simplecov/configuration.rb#L381
class CoverageLinesStrategy < ::Crystalball::MapGenerator::CoverageStrategy
def initialize(execution_detector = CoverageLinesExecutionDetector)
super(execution_detector)
end
def after_register
- Coverage.start(lines: true)
+ # We might have started SimpleCov already
+ Coverage.start(lines: true) unless SimpleCov.running
end
end
end
diff --git a/tooling/lib/tooling/find_changes.rb b/tooling/lib/tooling/find_changes.rb
index f6fdf042c15..8a92242e167 100755
--- a/tooling/lib/tooling/find_changes.rb
+++ b/tooling/lib/tooling/find_changes.rb
@@ -15,7 +15,8 @@ module Tooling
changed_files_pathname: nil,
predictive_tests_pathname: nil,
frontend_fixtures_mapping_pathname: nil,
- file_filter: ->(_) { true }
+ file_filter: ->(_) { true },
+ only_new_paths: false
)
raise ArgumentError, ':from can only be :api or :changed_files' unless
@@ -30,6 +31,7 @@ module Tooling
@frontend_fixtures_mapping_pathname = frontend_fixtures_mapping_pathname
@from = from
@file_filter = file_filter
+ @api_path_attributes = only_new_paths ? %w[new_path] : %w[new_path old_path]
end
def execute
@@ -53,7 +55,7 @@ module Tooling
attr_reader :gitlab_token, :gitlab_endpoint, :mr_project_path,
:mr_iid, :changed_files_pathname, :predictive_tests_pathname,
- :frontend_fixtures_mapping_pathname, :file_filter
+ :frontend_fixtures_mapping_pathname, :file_filter, :api_path_attributes
def gitlab
@gitlab ||= begin
@@ -86,7 +88,7 @@ module Tooling
case @from
when :api
mr_changes.changes.select(&file_filter).flat_map do |change|
- change.to_h.values_at('old_path', 'new_path')
+ change.to_h.values_at(*api_path_attributes)
end.uniq
else
read_array_from_file(changed_files_pathname)
diff --git a/tooling/lib/tooling/test_map_generator.rb b/tooling/lib/tooling/test_map_generator.rb
index 88b4353b232..6a3e7337e58 100644
--- a/tooling/lib/tooling/test_map_generator.rb
+++ b/tooling/lib/tooling/test_map_generator.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
require 'yaml'
module Tooling
diff --git a/vendor/gems/attr_encrypted/attr_encrypted.gemspec b/vendor/gems/attr_encrypted/attr_encrypted.gemspec
index 3711b16ffcf..fa3e0e227b1 100644
--- a/vendor/gems/attr_encrypted/attr_encrypted.gemspec
+++ b/vendor/gems/attr_encrypted/attr_encrypted.gemspec
@@ -4,12 +4,10 @@ lib = File.expand_path('../lib/', __FILE__)
$:.unshift lib unless $:.include?(lib)
require 'attr_encrypted/version'
-require 'date'
Gem::Specification.new do |s|
s.name = 'attr_encrypted'
s.version = AttrEncrypted::Version.string
- s.date = Date.today
s.summary = 'GitLab fork of attr_encrypted'
s.description = "Generates attr_accessors that encrypt and decrypt attributes transparently.\n\n
diff --git a/vendor/gems/bundler-checksum/Gemfile.lock b/vendor/gems/bundler-checksum/Gemfile.lock
index 8ae053f0105..4db0507a63b 100644
--- a/vendor/gems/bundler-checksum/Gemfile.lock
+++ b/vendor/gems/bundler-checksum/Gemfile.lock
@@ -15,4 +15,4 @@ DEPENDENCIES
bundler-checksum!
BUNDLED WITH
- 2.3.17
+ 2.5.4
diff --git a/vendor/gems/bundler-checksum/lib/bundler_checksum.rb b/vendor/gems/bundler-checksum/lib/bundler_checksum.rb
index b3d36521f24..083082c0ab1 100644
--- a/vendor/gems/bundler-checksum/lib/bundler_checksum.rb
+++ b/vendor/gems/bundler-checksum/lib/bundler_checksum.rb
@@ -41,12 +41,18 @@ module Bundler
raise "#{@package.inspect} does not have :@gem" unless source
raise "#{source.inspect} does not respond to :with_read_io" unless source.respond_to?(:with_read_io)
- digest = source.with_read_io do |io|
- digest = SharedHelpers.digest(:SHA256).new
- digest << io.read(16_384) until io.eof?
- io.rewind
- send(checksum_type(checksum), digest)
- end
+ digest =
+ if Gem::Version.new(Bundler::VERSION) >= Gem::Version.new("2.5.0")
+ gem_checksum.digest
+ else
+ source.with_read_io do |io|
+ digest = SharedHelpers.digest(:SHA256).new
+ digest << io.read(16_384) until io.eof?
+ io.rewind
+ send(checksum_type(checksum), digest)
+ end
+ end
+
unless digest == checksum
raise SecurityError, <<-MESSAGE
Bundler cannot continue installing #{spec.name} (#{spec.version}).
diff --git a/vendor/gems/bundler-checksum/lib/bundler_checksum/command/init.rb b/vendor/gems/bundler-checksum/lib/bundler_checksum/command/init.rb
index 1d8db7d78fa..7b4b29acf4f 100644
--- a/vendor/gems/bundler-checksum/lib/bundler_checksum/command/init.rb
+++ b/vendor/gems/bundler-checksum/lib/bundler_checksum/command/init.rb
@@ -11,8 +11,13 @@ module BundlerChecksum::Command
checksums = []
+ require "bundler/vendored_uri"
+ args = [nil, Bundler::Source::Rubygems::Remote.new(Bundler::URI("https://rubygems.org")), nil]
+ # gem_remote_fetcher added in https://github.com/rubygems/rubygems/pull/7092/
+ args << nil if Gem::Version.new(Bundler::VERSION) >= Gem::Version.new("2.5.0")
+
compact_index_cache = Bundler::Fetcher::CompactIndex
- .new(nil, Bundler::Source::Rubygems::Remote.new(Bundler::URI("https://rubygems.org")), nil)
+ .new(*args)
.send(:compact_index_client)
.instance_variable_get(:@cache)
diff --git a/vendor/gems/bundler-checksum/lib/bundler_checksum/command/lint.rb b/vendor/gems/bundler-checksum/lib/bundler_checksum/command/lint.rb
index 0f1249dcf71..a515a6d31ea 100644
--- a/vendor/gems/bundler-checksum/lib/bundler_checksum/command/lint.rb
+++ b/vendor/gems/bundler-checksum/lib/bundler_checksum/command/lint.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'set'
+require 'set' # rubocop:disable Lint/RedundantRequireStatement -- Ruby 3.1 and earlier needs this. Drop this line after Ruby 3.2+ is only supported.
module BundlerChecksum::Command
module Lint
diff --git a/vendor/gems/bundler-checksum/test/project_with_checksum_lock/Gemfile.lock b/vendor/gems/bundler-checksum/test/project_with_checksum_lock/Gemfile.lock
index d633184e300..2aa6a15070f 100644
--- a/vendor/gems/bundler-checksum/test/project_with_checksum_lock/Gemfile.lock
+++ b/vendor/gems/bundler-checksum/test/project_with_checksum_lock/Gemfile.lock
@@ -135,4 +135,4 @@ DEPENDENCIES
rails (~> 6.1.6.1)
BUNDLED WITH
- 2.3.22
+ 2.5.4
diff --git a/vendor/gems/sidekiq-reliable-fetch/Gemfile b/vendor/gems/sidekiq-reliable-fetch/Gemfile
index 3bed294f56f..8f86b2fe0b6 100644
--- a/vendor/gems/sidekiq-reliable-fetch/Gemfile
+++ b/vendor/gems/sidekiq-reliable-fetch/Gemfile
@@ -11,4 +11,5 @@ group :test do
gem "pry"
gem 'simplecov', require: false
gem 'stub_env', '~> 1.0'
+ gem 'redis', '~> 4.8'
end
diff --git a/vendor/gems/sidekiq-reliable-fetch/Gemfile.lock b/vendor/gems/sidekiq-reliable-fetch/Gemfile.lock
index aeb163db018..484370fdfcc 100644
--- a/vendor/gems/sidekiq-reliable-fetch/Gemfile.lock
+++ b/vendor/gems/sidekiq-reliable-fetch/Gemfile.lock
@@ -1,46 +1,51 @@
PATH
remote: .
specs:
- gitlab-sidekiq-fetcher (0.10.0)
+ gitlab-sidekiq-fetcher (0.11.0)
json (>= 2.5)
- sidekiq (~> 6.1)
+ sidekiq (~> 7.0)
GEM
remote: https://rubygems.org/
specs:
- coderay (1.1.2)
- connection_pool (2.4.0)
- diff-lcs (1.3)
- docile (1.3.1)
- json (2.5.1)
- method_source (0.9.0)
- pry (0.11.3)
- coderay (~> 1.1.0)
- method_source (~> 0.9.0)
- rack (2.2.6.4)
+ coderay (1.1.3)
+ concurrent-ruby (1.2.2)
+ connection_pool (2.4.1)
+ diff-lcs (1.5.0)
+ docile (1.4.0)
+ json (2.6.3)
+ method_source (1.0.0)
+ pry (0.14.2)
+ coderay (~> 1.1)
+ method_source (~> 1.0)
+ rack (3.0.8)
redis (4.8.1)
- rspec (3.8.0)
- rspec-core (~> 3.8.0)
- rspec-expectations (~> 3.8.0)
- rspec-mocks (~> 3.8.0)
- rspec-core (3.8.0)
- rspec-support (~> 3.8.0)
- rspec-expectations (3.8.1)
+ redis-client (0.18.0)
+ connection_pool
+ rspec (3.12.0)
+ rspec-core (~> 3.12.0)
+ rspec-expectations (~> 3.12.0)
+ rspec-mocks (~> 3.12.0)
+ rspec-core (3.12.2)
+ rspec-support (~> 3.12.0)
+ rspec-expectations (3.12.3)
diff-lcs (>= 1.2.0, < 2.0)
- rspec-support (~> 3.8.0)
- rspec-mocks (3.8.0)
+ rspec-support (~> 3.12.0)
+ rspec-mocks (3.12.6)
diff-lcs (>= 1.2.0, < 2.0)
- rspec-support (~> 3.8.0)
- rspec-support (3.8.0)
- sidekiq (6.5.8)
- connection_pool (>= 2.2.5, < 3)
- rack (~> 2.0)
- redis (>= 4.5.0, < 5)
- simplecov (0.16.1)
+ rspec-support (~> 3.12.0)
+ rspec-support (3.12.1)
+ sidekiq (7.2.0)
+ concurrent-ruby (< 2)
+ connection_pool (>= 2.3.0)
+ rack (>= 2.2.4)
+ redis-client (>= 0.14.0)
+ simplecov (0.22.0)
docile (~> 1.1)
- json (>= 1.8, < 3)
- simplecov-html (~> 0.10.0)
- simplecov-html (0.10.2)
+ simplecov-html (~> 0.11)
+ simplecov_json_formatter (~> 0.1)
+ simplecov-html (0.12.3)
+ simplecov_json_formatter (0.1.4)
stub_env (1.0.4)
rspec (>= 2.0, < 4.0)
@@ -50,6 +55,7 @@ PLATFORMS
DEPENDENCIES
gitlab-sidekiq-fetcher!
pry
+ redis (~> 4.8)
rspec (~> 3)
simplecov
stub_env (~> 1.0)
diff --git a/vendor/gems/sidekiq-reliable-fetch/README.md b/vendor/gems/sidekiq-reliable-fetch/README.md
index 4c7029e3955..5e218a76cd5 100644
--- a/vendor/gems/sidekiq-reliable-fetch/README.md
+++ b/vendor/gems/sidekiq-reliable-fetch/README.md
@@ -6,7 +6,7 @@ fetches from Redis.
It's based on https://github.com/TEA-ebook/sidekiq-reliable-fetch.
-**IMPORTANT NOTE:** Since version `0.7.0` this gem works only with `sidekiq >= 6.1` (which introduced Fetch API breaking changes). Please use version `~> 0.5` if you use older version of the `sidekiq` .
+**IMPORTANT NOTE:** Since version `0.11.0` this gem works only with `sidekiq >= 7` (which introduced Fetch API breaking changes). Please use version `~> 0.10` if you use older version of the `sidekiq` .
**UPGRADE NOTE:** If upgrading from 0.7.0, strongly consider a full deployed step on 0.7.1 before 0.8.0; that fixes a bug in the queue name validation that will hit if sidekiq nodes running 0.7.0 see working queues named by 0.8.0. See https://gitlab.com/gitlab-org/sidekiq-reliable-fetch/-/merge_requests/22
diff --git a/vendor/gems/sidekiq-reliable-fetch/gitlab-sidekiq-fetcher.gemspec b/vendor/gems/sidekiq-reliable-fetch/gitlab-sidekiq-fetcher.gemspec
index b656267003a..df89abca4ac 100644
--- a/vendor/gems/sidekiq-reliable-fetch/gitlab-sidekiq-fetcher.gemspec
+++ b/vendor/gems/sidekiq-reliable-fetch/gitlab-sidekiq-fetcher.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = 'gitlab-sidekiq-fetcher'
- s.version = '0.10.0'
+ s.version = '0.11.0'
s.authors = ['TEA', 'GitLab']
s.email = 'valery@gitlab.com'
s.license = 'LGPL-3.0'
@@ -10,6 +10,6 @@ Gem::Specification.new do |s|
s.require_paths = ['lib']
s.files = Dir.glob('lib/**/*.*')
s.test_files = Dir.glob('{spec,tests}/**/*.*')
- s.add_dependency 'sidekiq', '~> 6.1'
+ s.add_dependency 'sidekiq', '~> 7.0'
s.add_runtime_dependency 'json', '>= 2.5'
end
diff --git a/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/base_reliable_fetch.rb b/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/base_reliable_fetch.rb
index e8ee6d7df45..68268dc6ff4 100644
--- a/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/base_reliable_fetch.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/base_reliable_fetch.rb
@@ -53,7 +53,7 @@ module Sidekiq
Sidekiq::ReliableFetch
end
- config[:fetch] = fetch_strategy.new(config)
+ config[:fetch_class] = fetch_strategy
Sidekiq.logger.info('GitLab reliable fetch activated!')
@@ -115,18 +115,18 @@ module Sidekiq
attr_reader :cleanup_interval, :last_try_to_take_lease_at, :lease_interval,
:queues, :use_semi_reliable_fetch,
- :strictly_ordered_queues
+ :strictly_ordered_queues, :config
- def initialize(options)
- raise ArgumentError, 'missing queue list' unless options[:queues]
+ def initialize(capsule)
+ raise ArgumentError, 'missing queue list' unless capsule.config.queues
- @config = options
+ @config = capsule.config
@interrupted_set = Sidekiq::InterruptedSet.new
- @cleanup_interval = options.fetch(:cleanup_interval, DEFAULT_CLEANUP_INTERVAL)
- @lease_interval = options.fetch(:lease_interval, DEFAULT_LEASE_INTERVAL)
+ @cleanup_interval = config.fetch(:cleanup_interval, DEFAULT_CLEANUP_INTERVAL)
+ @lease_interval = config.fetch(:lease_interval, DEFAULT_LEASE_INTERVAL)
@last_try_to_take_lease_at = 0
- @strictly_ordered_queues = !!options[:strict]
- @queues = options[:queues].map { |q| "queue:#{q}" }
+ @strictly_ordered_queues = !!config[:strict]
+ @queues = config.queues.map { |q| "queue:#{q}" }
end
def retrieve_work
@@ -140,7 +140,7 @@ module Sidekiq
"#{self.class} does not implement #{__method__}"
end
- def bulk_requeue(inprogress, _options)
+ def bulk_requeue(inprogress)
return if inprogress.empty?
Sidekiq.redis do |conn|
@@ -203,7 +203,7 @@ module Sidekiq
Sidekiq.logger.info('Cleaning working queues')
Sidekiq.redis do |conn|
- conn.scan_each(match: "#{WORKING_QUEUE_PREFIX}:queue:*", count: SCAN_COUNT) do |key|
+ conn.scan(match: "#{WORKING_QUEUE_PREFIX}:queue:*", count: SCAN_COUNT) do |key|
original_queue, identity = extract_queue_and_identity(key)
next if original_queue.nil? || identity.nil?
@@ -235,7 +235,7 @@ module Sidekiq
rescue NameError
end
- max_retries_after_interruption ||= @config[:max_retries_after_interruption]
+ max_retries_after_interruption ||= config[:max_retries_after_interruption]
max_retries_after_interruption ||= DEFAULT_MAX_RETRIES_AFTER_INTERRUPTION
max_retries_after_interruption
end
@@ -264,7 +264,7 @@ module Sidekiq
@last_try_to_take_lease_at = Time.now.to_f
Sidekiq.redis do |conn|
- conn.set(LEASE_KEY, 1, nx: true, ex: cleanup_interval)
+ conn.set(LEASE_KEY, 1, 'nx', 'ex', cleanup_interval)
end
end
diff --git a/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/interrupted_set.rb b/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/interrupted_set.rb
index 2fc7a10f9d0..799e744957e 100644
--- a/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/interrupted_set.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/interrupted_set.rb
@@ -45,7 +45,7 @@ module Sidekiq
end
def self.options
- Sidekiq.respond_to?(:[]) ? Sidekiq : Sidekiq.options
+ Sidekiq.default_configuration
end
end
end
diff --git a/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb b/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb
index e65d9b6324a..b9855100fb6 100644
--- a/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb
@@ -7,7 +7,7 @@ module Sidekiq
# for semi-reliable fetch.
DEFAULT_SEMI_RELIABLE_FETCH_TIMEOUT = 5 # seconds
- def initialize(options)
+ def initialize(capsule)
super
@queues = @queues.uniq
@@ -16,7 +16,7 @@ module Sidekiq
private
def retrieve_unit_of_work
- work = Sidekiq.redis { |conn| conn.brpop(*queues_cmd, timeout: semi_reliable_fetch_timeout) }
+ work = brpop_with_sidekiq
return unless work
queue, job = work
@@ -29,6 +29,17 @@ module Sidekiq
unit_of_work
end
+ def brpop_with_sidekiq
+ Sidekiq.redis do |conn|
+ conn.blocking_call(
+ conn.read_timeout + semi_reliable_fetch_timeout,
+ "brpop",
+ *queues_cmd,
+ semi_reliable_fetch_timeout
+ )
+ end
+ end
+
def queues_cmd
if strictly_ordered_queues
@queues
diff --git a/vendor/gems/sidekiq-reliable-fetch/spec/base_reliable_fetch_spec.rb b/vendor/gems/sidekiq-reliable-fetch/spec/base_reliable_fetch_spec.rb
index 990d699e2f8..3671a8da39c 100644
--- a/vendor/gems/sidekiq-reliable-fetch/spec/base_reliable_fetch_spec.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/spec/base_reliable_fetch_spec.rb
@@ -3,14 +3,20 @@ require 'fetch_shared_examples'
require 'sidekiq/base_reliable_fetch'
require 'sidekiq/reliable_fetch'
require 'sidekiq/semi_reliable_fetch'
+require 'sidekiq/capsule'
describe Sidekiq::BaseReliableFetch do
let(:job) { Sidekiq.dump_json(class: 'Bob', args: [1, 2, 'foo'], jid: 55) }
+ let(:queues) { ['foo'] }
+ let(:options) { { queues: queues } }
+ let(:config) { Sidekiq::Config.new(options) }
+ let(:capsule) { Sidekiq::Capsule.new("default", config) }
+ let(:fetcher) { Sidekiq::ReliableFetch.new(capsule) }
before { Sidekiq.redis(&:flushdb) }
describe 'UnitOfWork' do
- let(:fetcher) { Sidekiq::ReliableFetch.new(queues: ['foo']) }
+ before { config.queues = queues }
describe '#requeue' do
it 'requeues job' do
@@ -40,10 +46,12 @@ describe Sidekiq::BaseReliableFetch do
end
describe '#bulk_requeue' do
- let(:options) { { queues: %w[foo bar] } }
+ let(:queues) { %w[foo bar] }
let!(:queue1) { Sidekiq::Queue.new('foo') }
let!(:queue2) { Sidekiq::Queue.new('bar') }
+ before { config.queues = queues }
+
it 'requeues the bulk' do
uow = described_class::UnitOfWork
jobs = [ uow.new('queue:foo', job), uow.new('queue:foo', job), uow.new('queue:bar', job) ]
@@ -57,7 +65,7 @@ describe Sidekiq::BaseReliableFetch do
)
end
- described_class.new(options).bulk_requeue(jobs, nil)
+ described_class.new(capsule).bulk_requeue(jobs)
expect(queue1.size).to eq 2
expect(queue2.size).to eq 1
@@ -67,24 +75,26 @@ describe Sidekiq::BaseReliableFetch do
uow = described_class::UnitOfWork
interrupted_job = Sidekiq.dump_json(class: 'Bob', args: [1, 2, 'foo'], interrupted_count: 3)
jobs = [ uow.new('queue:foo', interrupted_job), uow.new('queue:foo', job), uow.new('queue:bar', job) ]
- described_class.new(options).bulk_requeue(jobs, nil)
+ described_class.new(capsule).bulk_requeue(jobs)
expect(queue1.size).to eq 1
expect(queue2.size).to eq 1
expect(Sidekiq::InterruptedSet.new.size).to eq 1
end
- it 'does not put jobs into interrupted queue if it is disabled' do
- options[:max_retries_after_interruption] = -1
+ context 'when max_retries_after_interruption is disabled' do
+ let(:options) { { queues: queues, max_retries_after_interruption: -1 } }
- uow = described_class::UnitOfWork
- interrupted_job = Sidekiq.dump_json(class: 'Bob', args: [1, 2, 'foo'], interrupted_count: 3)
- jobs = [ uow.new('queue:foo', interrupted_job), uow.new('queue:foo', job), uow.new('queue:bar', job) ]
- described_class.new(options).bulk_requeue(jobs, nil)
+ it 'does not put jobs into interrupted queue' do
+ uow = described_class::UnitOfWork
+ interrupted_job = Sidekiq.dump_json(class: 'Bob', args: [1, 2, 'foo'], interrupted_count: 3)
+ jobs = [ uow.new('queue:foo', interrupted_job), uow.new('queue:foo', job), uow.new('queue:bar', job) ]
+ described_class.new(capsule).bulk_requeue(jobs)
- expect(queue1.size).to eq 2
- expect(queue2.size).to eq 1
- expect(Sidekiq::InterruptedSet.new.size).to eq 0
+ expect(queue1.size).to eq 2
+ expect(queue2.size).to eq 1
+ expect(Sidekiq::InterruptedSet.new.size).to eq 0
+ end
end
it 'does not put jobs into interrupted queue if it is disabled on the worker' do
@@ -93,7 +103,7 @@ describe Sidekiq::BaseReliableFetch do
uow = described_class::UnitOfWork
interrupted_job = Sidekiq.dump_json(class: 'Bob', args: [1, 2, 'foo'], interrupted_count: 3)
jobs = [ uow.new('queue:foo', interrupted_job), uow.new('queue:foo', job), uow.new('queue:bar', job) ]
- described_class.new(options).bulk_requeue(jobs, nil)
+ described_class.new(capsule).bulk_requeue(jobs)
expect(queue1.size).to eq 2
expect(queue2.size).to eq 1
diff --git a/vendor/gems/sidekiq-reliable-fetch/spec/fetch_shared_examples.rb b/vendor/gems/sidekiq-reliable-fetch/spec/fetch_shared_examples.rb
index df7f715f2f9..11489a37b27 100644
--- a/vendor/gems/sidekiq-reliable-fetch/spec/fetch_shared_examples.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/spec/fetch_shared_examples.rb
@@ -1,54 +1,70 @@
shared_examples 'a Sidekiq fetcher' do
let(:queues) { ['assigned'] }
+ let(:options) { { queues: queues } }
+ let(:config) { Sidekiq::Config.new(options) }
+ let(:capsule) { Sidekiq::Capsule.new("default", config) }
- before { Sidekiq.redis(&:flushdb) }
+ before do
+ config.queues = queues
+ Sidekiq.redis(&:flushdb)
+ end
describe '#retrieve_work' do
let(:job) { Sidekiq.dump_json(class: 'Bob', args: [1, 2, 'foo']) }
- let(:fetcher) { described_class.new(queues: queues) }
+ let(:fetcher) { described_class.new(capsule) }
it 'does not clean up orphaned jobs more than once per cleanup interval' do
- Sidekiq.redis = Sidekiq::RedisConnection.create(url: REDIS_URL, size: 10)
-
- expect(fetcher).to receive(:clean_working_queues!).once
+ Sidekiq::Client.via(Sidekiq::RedisConnection.create(url: REDIS_URL, size: 10)) do
+ expect(fetcher).to receive(:clean_working_queues!).once
- threads = 10.times.map do
- Thread.new do
- fetcher.retrieve_work
+ threads = 10.times.map do
+ Thread.new do
+ fetcher.retrieve_work
+ end
end
- end
- threads.map(&:join)
+ threads.map(&:join)
+ end
end
- it 'retrieves by order when strictly order is enabled' do
- fetcher = described_class.new(strict: true, queues: ['first', 'second'])
+ context 'when strictly order is enabled' do
+ let(:queues) { ['first', 'second'] }
+ let(:options) { { strict: true, queues: queues } }
- Sidekiq.redis do |conn|
- conn.rpush('queue:first', ['msg3', 'msg2', 'msg1'])
- conn.rpush('queue:second', 'msg4')
- end
+ it 'retrieves by order' do
+ fetcher = described_class.new(capsule)
+
+ Sidekiq.redis do |conn|
+ conn.rpush('queue:first', ['msg3', 'msg2', 'msg1'])
+ conn.rpush('queue:second', 'msg4')
+ end
- jobs = (1..4).map { fetcher.retrieve_work.job }
+ jobs = (1..4).map { fetcher.retrieve_work.job }
- expect(jobs).to eq ['msg1', 'msg2', 'msg3', 'msg4']
+ expect(jobs).to eq ['msg1', 'msg2', 'msg3', 'msg4']
+ end
end
- it 'does not starve any queue when queues are not strictly ordered' do
- fetcher = described_class.new(queues: ['first', 'second'])
+ context 'when queues are not strictly ordered' do
+ let(:queues) { ['first', 'second'] }
- Sidekiq.redis do |conn|
- conn.rpush('queue:first', (1..200).map { |i| "msg#{i}" })
- conn.rpush('queue:second', 'this_job_should_not_stuck')
- end
+ it 'does not starve any queue' do
+ fetcher = described_class.new(capsule)
- jobs = (1..100).map { fetcher.retrieve_work.job }
+ Sidekiq.redis do |conn|
+ conn.rpush('queue:first', (1..200).map { |i| "msg#{i}" })
+ conn.rpush('queue:second', 'this_job_should_not_stuck')
+ end
+
+ jobs = (1..100).map { fetcher.retrieve_work.job }
- expect(jobs).to include 'this_job_should_not_stuck'
+ expect(jobs).to include 'this_job_should_not_stuck'
+ end
end
shared_examples "basic queue handling" do |queue|
- let (:fetcher) { described_class.new(queues: [queue]) }
+ let(:queues) { [queue] }
+ let(:fetcher) { described_class.new(capsule) }
it 'retrieves the job and puts it to working queue' do
Sidekiq.redis { |conn| conn.rpush("queue:#{queue}", job) }
@@ -150,7 +166,8 @@ shared_examples 'a Sidekiq fetcher' do
context 'with short cleanup interval' do
let(:short_interval) { 1 }
- let(:fetcher) { described_class.new(queues: queues, lease_interval: short_interval, cleanup_interval: short_interval) }
+ let(:options) { { queues: queues, lease_interval: short_interval, cleanup_interval: short_interval } }
+ let(:fetcher) { described_class.new(capsule) }
it 'requeues when there is no heartbeat' do
Sidekiq.redis { |conn| conn.rpush('queue:assigned', job) }
diff --git a/vendor/gems/sidekiq-reliable-fetch/spec/reliable_fetch_spec.rb b/vendor/gems/sidekiq-reliable-fetch/spec/reliable_fetch_spec.rb
index bdef04a021f..b919d610aca 100644
--- a/vendor/gems/sidekiq-reliable-fetch/spec/reliable_fetch_spec.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/spec/reliable_fetch_spec.rb
@@ -2,6 +2,7 @@ require 'spec_helper'
require 'fetch_shared_examples'
require 'sidekiq/base_reliable_fetch'
require 'sidekiq/reliable_fetch'
+require 'sidekiq/capsule'
describe Sidekiq::ReliableFetch do
include_examples 'a Sidekiq fetcher'
diff --git a/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb b/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
index 5bd40a80277..754cc5a4ef6 100644
--- a/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
@@ -2,6 +2,9 @@ require 'spec_helper'
require 'fetch_shared_examples'
require 'sidekiq/base_reliable_fetch'
require 'sidekiq/semi_reliable_fetch'
+require 'sidekiq/capsule'
+require 'sidekiq/config'
+require 'redis'
describe Sidekiq::SemiReliableFetch do
include_examples 'a Sidekiq fetcher'
@@ -9,7 +12,11 @@ describe Sidekiq::SemiReliableFetch do
describe '#retrieve_work' do
let(:queues) { ['stuff_to_do'] }
let(:options) { { queues: queues } }
- let(:fetcher) { described_class.new(options) }
+ let(:config) { Sidekiq::Config.new(options) }
+ let(:capsule) { Sidekiq::Capsule.new("default", config) }
+ let(:fetcher) { described_class.new(capsule) }
+
+ before { config.queues = queues }
context 'timeout config' do
before do
@@ -20,8 +27,9 @@ describe Sidekiq::SemiReliableFetch do
let(:timeout) { nil }
it 'brpops with the default timeout timeout' do
- Sidekiq.redis do |connection|
- expect(connection).to receive(:brpop).with("queue:stuff_to_do", { timeout: 5 }).once.and_call_original
+ Sidekiq.redis do |conn|
+ expect(conn).to receive(:blocking_call)
+ .with(conn.read_timeout + 5, 'brpop', 'queue:stuff_to_do', 5).once.and_call_original
fetcher.retrieve_work
end
@@ -32,8 +40,9 @@ describe Sidekiq::SemiReliableFetch do
let(:timeout) { '6' }
it 'brpops with the default timeout timeout' do
- Sidekiq.redis do |connection|
- expect(connection).to receive(:brpop).with("queue:stuff_to_do", { timeout: 6 }).once.and_call_original
+ Sidekiq.redis do |conn|
+ expect(conn).to receive(:blocking_call)
+ .with(conn.read_timeout + 6, 'brpop', 'queue:stuff_to_do', 6).once.and_call_original
fetcher.retrieve_work
end
diff --git a/vendor/gems/sidekiq-reliable-fetch/spec/spec_helper.rb b/vendor/gems/sidekiq-reliable-fetch/spec/spec_helper.rb
index 45418571579..ab1c5317ff3 100644
--- a/vendor/gems/sidekiq-reliable-fetch/spec/spec_helper.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/spec/spec_helper.rb
@@ -9,7 +9,7 @@ SimpleCov.start
REDIS_URL = ENV['REDIS_URL'] || 'redis://localhost:6379/10'
Sidekiq.configure_client do |config|
- config.redis = { url: REDIS_URL }
+ config.redis = { url: REDIS_URL, read_timeout: 5 }
end
Sidekiq.logger.level = Logger::ERROR
diff --git a/vendor/gems/sidekiq-reliable-fetch/tests/interruption/config.rb b/vendor/gems/sidekiq-reliable-fetch/tests/interruption/config.rb
index f69cca96d80..a8f66a5f041 100644
--- a/vendor/gems/sidekiq-reliable-fetch/tests/interruption/config.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/tests/interruption/config.rb
@@ -14,6 +14,7 @@ Sidekiq.configure_server do |config|
# These will be ignored for :basic
config[:cleanup_interval] = TEST_CLEANUP_INTERVAL
config[:lease_interval] = TEST_LEASE_INTERVAL
+ config[:queues] = ['default']
Sidekiq::ReliableFetch.setup_reliable_fetch!(config)
end
diff --git a/vendor/gems/sidekiq-reliable-fetch/tests/reliability/config.rb b/vendor/gems/sidekiq-reliable-fetch/tests/reliability/config.rb
index 05ffcfca9b5..c516112ccb7 100644
--- a/vendor/gems/sidekiq-reliable-fetch/tests/reliability/config.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/tests/reliability/config.rb
@@ -23,6 +23,7 @@ Sidekiq.configure_server do |config|
# These will be ignored for :basic
config[:cleanup_interval] = TEST_CLEANUP_INTERVAL
config[:lease_interval] = TEST_LEASE_INTERVAL
+ config[:queues] = ['default']
Sidekiq::ReliableFetch.setup_reliable_fetch!(config)
end
diff --git a/workhorse/config_test.go b/workhorse/config_test.go
index 64f0a24d148..c1fe1652a45 100644
--- a/workhorse/config_test.go
+++ b/workhorse/config_test.go
@@ -1,17 +1,22 @@
package main
import (
+ "bytes"
"flag"
+ "fmt"
"io"
"net/url"
"os"
+ "path/filepath"
"testing"
"time"
+ "github.com/BurntSushi/toml"
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/config"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/queueing"
+ "gitlab.com/gitlab-org/gitlab/workhorse/internal/testhelper"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/upstream"
)
@@ -284,3 +289,387 @@ func TestConfigFlagParsing(t *testing.T) {
}
require.Equal(t, expectedCfg, cfg)
}
+
+func TestLoadConfigCommand(t *testing.T) {
+ t.Parallel()
+
+ modifyDefaultConfig := func(modify func(cfg *config.Config)) config.Config {
+ f, err := os.CreateTemp("", "workhorse-config-test")
+ require.NoError(t, err)
+ t.Cleanup(func() {
+ defer os.Remove(f.Name())
+ })
+
+ cfg := &config.Config{}
+
+ modify(cfg)
+ return *cfg
+ }
+
+ writeScript := func(t *testing.T, script string) string {
+ return testhelper.WriteExecutable(t,
+ filepath.Join(testhelper.TempDir(t), "script"),
+ []byte("#!/bin/sh\n"+script),
+ )
+ }
+
+ type setupData struct {
+ cfg config.Config
+ expectedErr string
+ expectedCfg config.Config
+ }
+
+ for _, tc := range []struct {
+ desc string
+ setup func(t *testing.T) setupData
+ }{
+ {
+ desc: "nonexistent executable",
+ setup: func(t *testing.T) setupData {
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: "/does/not/exist",
+ },
+ expectedErr: "running config command: fork/exec /does/not/exist: no such file or directory",
+ }
+ },
+ },
+ {
+ desc: "command points to non-executable file",
+ setup: func(t *testing.T) setupData {
+ cmd := filepath.Join(testhelper.TempDir(t), "script")
+ require.NoError(t, os.WriteFile(cmd, nil, 0o600))
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedErr: fmt.Sprintf(
+ "running config command: fork/exec %s: permission denied", cmd,
+ ),
+ }
+ },
+ },
+ {
+ desc: "executable returns error",
+ setup: func(t *testing.T) setupData {
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: writeScript(t, "echo error >&2 && exit 1"),
+ },
+ expectedErr: "running config command: exit status 1, stderr: \"error\\n\"",
+ }
+ },
+ },
+ {
+ desc: "invalid JSON",
+ setup: func(t *testing.T) setupData {
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: writeScript(t, "echo 'this is not json'"),
+ },
+ expectedErr: "unmarshalling generated config: invalid character 'h' in literal true (expecting 'r')",
+ }
+ },
+ },
+ {
+ desc: "mixed stdout and stderr",
+ setup: func(t *testing.T) setupData {
+ // We want to verify that we're able to correctly parse the output
+ // even if the process writes to both its stdout and stderr.
+ cmd := writeScript(t, "echo error >&2 && echo '{}'")
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ }),
+ }
+ },
+ },
+ {
+ desc: "empty script",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, "echo '{}'")
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ }),
+ }
+ },
+ },
+ {
+ desc: "unknown value",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, `echo '{"key_does_not_exist":"value"}'`)
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ }),
+ }
+ },
+ },
+ {
+ desc: "generated value",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, `echo '{"shutdown_timeout": "100s"}'`)
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ cfg.ShutdownTimeout = config.TomlDuration{Duration: 100 * time.Second}
+ }),
+ }
+ },
+ },
+ {
+ desc: "overridden value",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, `echo '{"shutdown_timeout": "100s"}'`)
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ ShutdownTimeout: config.TomlDuration{Duration: 1 * time.Second},
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ cfg.ShutdownTimeout = config.TomlDuration{Duration: 100 * time.Second}
+ }),
+ }
+ },
+ },
+ {
+ desc: "mixed configuration",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, `echo '{"redis": { "url": "redis://redis.example.com", "db": 1 } }'`)
+ redisURL, err := url.Parse("redis://redis.example.com")
+ require.NoError(t, err)
+ db := 1
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ ImageResizerConfig: config.DefaultImageResizerConfig,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ cfg.Redis = &config.RedisConfig{
+ URL: config.TomlURL{URL: *redisURL},
+ DB: &db,
+ }
+ cfg.ImageResizerConfig = config.DefaultImageResizerConfig
+ }),
+ }
+ },
+ },
+ {
+ desc: "subsections are being merged",
+ setup: func(t *testing.T) setupData {
+ redisURL, err := url.Parse("redis://redis.example.com")
+ require.NoError(t, err)
+ origDB := 1
+ scriptDB := 5
+
+ cmd := writeScript(t, `cat <<-EOF
+ {
+ "redis": {
+ "url": "redis://redis.example.com",
+ "db": 5
+ }
+ }
+ EOF
+ `)
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ Redis: &config.RedisConfig{
+ URL: config.TomlURL{URL: *redisURL},
+ DB: &origDB,
+ },
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ cfg.Redis = &config.RedisConfig{
+ URL: config.TomlURL{URL: *redisURL},
+ DB: &scriptDB,
+ }
+ }),
+ }
+ },
+ },
+ {
+ desc: "listener config",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, `cat <<-EOF
+ {
+ "listeners": [
+ {
+ "network": "tcp",
+ "addr": "127.0.0.1:3443",
+ "tls": {
+ "certificate": "/path/to/certificate",
+ "key": "/path/to/private/key"
+ }
+ }
+ ]
+ }
+ EOF
+ `)
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ cfg.Listeners = []config.ListenerConfig{
+ {
+ Network: "tcp",
+ Addr: "127.0.0.1:3443",
+ Tls: &config.TlsConfig{
+ Certificate: "/path/to/certificate",
+ Key: "/path/to/private/key",
+ },
+ },
+ }
+ }),
+ }
+ },
+ },
+ {
+ desc: "S3 object storage config",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, `cat <<-EOF
+ {
+ "object_storage": {
+ "provider": "AWS",
+ "s3": {
+ "aws_access_key_id": "MY-AWS-ACCESS-KEY",
+ "aws_secret_access_key": "MY-AWS-SECRET-ACCESS-KEY"
+ }
+ }
+ }
+ EOF
+ `)
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ cfg.ObjectStorageCredentials = config.ObjectStorageCredentials{
+ Provider: "AWS",
+ S3Credentials: config.S3Credentials{
+ AwsAccessKeyID: "MY-AWS-ACCESS-KEY",
+ AwsSecretAccessKey: "MY-AWS-SECRET-ACCESS-KEY",
+ },
+ }
+ }),
+ }
+ },
+ },
+ {
+ desc: "Azure object storage config",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, `cat <<-EOF
+ {
+ "object_storage": {
+ "provider": "AzureRM",
+ "azurerm": {
+ "azure_storage_account_name": "MY-STORAGE-ACCOUNT",
+ "azure_storage_access_key": "MY-STORAGE-ACCESS-KEY"
+ }
+ }
+ }
+ EOF
+ `)
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ cfg.ObjectStorageCredentials = config.ObjectStorageCredentials{
+ Provider: "AzureRM",
+ AzureCredentials: config.AzureCredentials{
+ AccountName: "MY-STORAGE-ACCOUNT",
+ AccountKey: "MY-STORAGE-ACCESS-KEY",
+ },
+ }
+ }),
+ }
+ },
+ },
+ {
+ desc: "Google Cloud object storage config",
+ setup: func(t *testing.T) setupData {
+ cmd := writeScript(t, `cat <<-EOF
+ {
+ "object_storage": {
+ "provider": "Google",
+ "google": {
+ "google_application_default": true,
+ "google_json_key_string": "MY-GOOGLE-JSON-KEY"
+ }
+ }
+ }
+ EOF
+ `)
+
+ return setupData{
+ cfg: config.Config{
+ ConfigCommand: cmd,
+ },
+ expectedCfg: modifyDefaultConfig(func(cfg *config.Config) {
+ cfg.ConfigCommand = cmd
+ cfg.ObjectStorageCredentials = config.ObjectStorageCredentials{
+ Provider: "Google",
+ GoogleCredentials: config.GoogleCredentials{
+ ApplicationDefault: true,
+ JSONKeyString: "MY-GOOGLE-JSON-KEY",
+ },
+ }
+ }),
+ }
+ },
+ },
+ } {
+ tc := tc
+
+ t.Run(tc.desc, func(t *testing.T) {
+ t.Parallel()
+
+ setup := tc.setup(t)
+
+ var cfgBuffer bytes.Buffer
+ require.NoError(t, toml.NewEncoder(&cfgBuffer).Encode(setup.cfg))
+
+ cfg, err := config.LoadConfig(cfgBuffer.String())
+ // We can't use `require.Equal()` for the error as it's basically impossible
+ // to reproduce the exact `exec.ExitError`.
+ if setup.expectedErr != "" {
+ require.EqualError(t, err, setup.expectedErr)
+ } else {
+ require.NoError(t, err)
+ require.Equal(t, setup.expectedCfg, *cfg)
+ }
+ })
+ }
+}
diff --git a/workhorse/go.mod b/workhorse/go.mod
index 73bcc940513..30a228219a5 100644
--- a/workhorse/go.mod
+++ b/workhorse/go.mod
@@ -3,10 +3,10 @@ module gitlab.com/gitlab-org/gitlab/workhorse
go 1.20
require (
- github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0
+ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1
github.com/BurntSushi/toml v1.3.2
github.com/alecthomas/chroma/v2 v2.12.0
- github.com/aws/aws-sdk-go v1.48.11
+ github.com/aws/aws-sdk-go v1.49.3
github.com/disintegration/imaging v1.6.2
github.com/getsentry/raven-go v0.2.0
github.com/golang-jwt/jwt/v5 v5.2.0
@@ -17,40 +17,40 @@ require (
github.com/jpillora/backoff v1.0.0
github.com/mitchellh/copystructure v1.2.0
github.com/prometheus/client_golang v1.17.0
- github.com/redis/go-redis/v9 v9.3.0
+ github.com/redis/go-redis/v9 v9.3.1
github.com/sebest/xff v0.0.0-20210106013422-671bd2870b3a
github.com/sirupsen/logrus v1.9.3
github.com/smartystreets/goconvey v1.8.1
github.com/stretchr/testify v1.8.4
- gitlab.com/gitlab-org/gitaly/v16 v16.6.1
+ gitlab.com/gitlab-org/gitaly/v16 v16.6.2
gitlab.com/gitlab-org/labkit v1.21.0
- gocloud.dev v0.34.0
+ gocloud.dev v0.35.0
golang.org/x/image v0.14.0
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616
golang.org/x/net v0.19.0
- golang.org/x/oauth2 v0.11.0
- golang.org/x/tools v0.16.0
- google.golang.org/grpc v1.59.0
- google.golang.org/protobuf v1.31.0
+ golang.org/x/oauth2 v0.14.0
+ golang.org/x/tools v0.16.1
+ google.golang.org/grpc v1.60.1
+ google.golang.org/protobuf v1.32.0
honnef.co/go/tools v0.4.6
)
require (
- cloud.google.com/go v0.110.8 // indirect
- cloud.google.com/go/compute v1.23.0 // indirect
+ cloud.google.com/go v0.110.10 // indirect
+ cloud.google.com/go/compute v1.23.3 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
- cloud.google.com/go/iam v1.1.2 // indirect
- cloud.google.com/go/monitoring v1.16.0 // indirect
+ cloud.google.com/go/iam v1.1.5 // indirect
+ cloud.google.com/go/monitoring v1.16.3 // indirect
cloud.google.com/go/profiler v0.1.0 // indirect
- cloud.google.com/go/storage v1.31.0 // indirect
- cloud.google.com/go/trace v1.10.1 // indirect
+ cloud.google.com/go/storage v1.35.1 // indirect
+ cloud.google.com/go/trace v1.10.4 // indirect
contrib.go.opencensus.io/exporter/stackdriver v0.13.14 // indirect
- github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0 // indirect
- github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 // indirect
- github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect
+ github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 // indirect
+ github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 // indirect
+ github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
- github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 // indirect
+ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // indirect
github.com/DataDog/datadog-go v4.4.0+incompatible // indirect
github.com/DataDog/sketches-go v1.0.0 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
@@ -65,14 +65,13 @@ require (
github.com/dlclark/regexp2 v1.10.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
- github.com/google/pprof v0.0.0-20230705174524-200ffdc848b8 // indirect
- github.com/google/s2a-go v0.1.4 // indirect
- github.com/google/uuid v1.3.1 // indirect
+ github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 // indirect
+ github.com/google/s2a-go v0.1.7 // indirect
+ github.com/google/uuid v1.4.0 // indirect
github.com/google/wire v0.5.0 // indirect
- github.com/googleapis/enterprise-certificate-proxy v0.2.5 // indirect
+ github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
github.com/gopherjs/gopherjs v1.17.2 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
@@ -93,10 +92,10 @@ require (
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
- github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect
+ github.com/prometheus/client_model v0.5.0 // indirect
github.com/prometheus/common v0.44.0 // indirect
github.com/prometheus/procfs v0.11.1 // indirect
- github.com/prometheus/prometheus v0.46.0 // indirect
+ github.com/prometheus/prometheus v0.48.0 // indirect
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
github.com/shabbyrobe/gocovmerge v0.0.0-20190829150210-3e036491d500 // indirect
github.com/shirou/gopsutil/v3 v3.21.12 // indirect
@@ -115,13 +114,13 @@ require (
golang.org/x/sync v0.5.0 // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
- golang.org/x/time v0.3.0 // indirect
- golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
- google.golang.org/api v0.134.0 // indirect
- google.golang.org/appengine v1.6.7 // indirect
- google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect
+ golang.org/x/time v0.4.0 // indirect
+ golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
+ google.golang.org/api v0.151.0 // indirect
+ google.golang.org/appengine v1.6.8 // indirect
+ google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
gopkg.in/DataDog/dd-trace-go.v1 v1.32.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
diff --git a/workhorse/go.sum b/workhorse/go.sum
index 2463cf20c5a..33bfccceb71 100644
--- a/workhorse/go.sum
+++ b/workhorse/go.sum
@@ -24,24 +24,24 @@ cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSU
cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
cloud.google.com/go v0.92.2/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
-cloud.google.com/go v0.110.8 h1:tyNdfIxjzaWctIiLYOTalaLKZ17SI44SKFW26QbOhME=
-cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk=
+cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y=
+cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
-cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
-cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk=
+cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI=
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
-cloud.google.com/go/iam v1.1.2 h1:gacbrBdWcoVmGLozRuStX45YKvJtzIjJdAolzUs1sm4=
-cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
-cloud.google.com/go/monitoring v1.16.0 h1:rlndy4K8yknMY9JuGe2aK4SbCh21FXoCdX7SAGHmRgI=
-cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY=
+cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI=
+cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8=
+cloud.google.com/go/monitoring v1.16.3 h1:mf2SN9qSoBtIgiMA4R/y4VADPWZA7VCNJA079qLaZQ8=
+cloud.google.com/go/monitoring v1.16.3/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw=
cloud.google.com/go/profiler v0.1.0 h1:MG/rxKC1MztRfEWMGYKFISxyZak5hNh29f0A/z2tvWk=
cloud.google.com/go/profiler v0.1.0/go.mod h1:D7S7LV/zKbRWkOzYL1b5xytpqt8Ikd/v/yvf1/Tx2pQ=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
@@ -53,29 +53,28 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
-cloud.google.com/go/storage v1.31.0 h1:+S3LjjEN2zZ+L5hOwj4+1OkGCsLVe0NzpXKQ1pSdTCI=
-cloud.google.com/go/storage v1.31.0/go.mod h1:81ams1PrhW16L4kF7qg+4mTq7SRs5HsbDTM0bWvrwJ0=
-cloud.google.com/go/trace v1.10.1 h1:EwGdOLCNfYOOPtgqo+D2sDLZmRCEO1AagRTJCU6ztdg=
-cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk=
+cloud.google.com/go/storage v1.35.1 h1:B59ahL//eDfx2IIKFBeT5Atm9wnNmj3+8xG/W4WB//w=
+cloud.google.com/go/storage v1.35.1/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8=
+cloud.google.com/go/trace v1.10.4 h1:2qOAuAzNezwW3QN+t41BtkDJOG42HywL73q8x/f6fnM=
+cloud.google.com/go/trace v1.10.4/go.mod h1:Nso99EDIK8Mj5/zmB+iGr9dosS/bzWCJ8wGmE6TXNWY=
contrib.go.opencensus.io/exporter/stackdriver v0.13.14 h1:zBakwHardp9Jcb8sQHcHpXy/0+JIb1M8KjigCJzx7+4=
contrib.go.opencensus.io/exporter/stackdriver v0.13.14/go.mod h1:5pSSGY0Bhuk7waTHuDf4aQ8D2DrhgETRo9fy6k3Xlzc=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-github.com/Azure/azure-sdk-for-go v65.0.0+incompatible h1:HzKLt3kIwMm4KeJYTdx9EbjRYTySD/t8i1Ee/W5EGXw=
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0 h1:8q4SaHjFsClSvuVne0ID/5Ka8u3fcIHyqkLjcFpNRHQ=
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q=
-github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg=
-github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U=
-github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY=
-github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM=
-github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.2.0 h1:Ma67P/GGprNwsslzEH6+Kb8nybI8jpDTm4Wmzu2ReK8=
-github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0 h1:gggzg0SUMs6SQbEw+3LoSsYf9YMjkupeAnHMX8O9mmY=
-github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0/go.mod h1:+6KLcKIVgxoBDMqMO/Nvy7bZ9a0nbU3I1DtFQK3YvB4=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA=
+github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI=
+github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0/go.mod h1:1fXstnBMas5kzG+S3q8UoJcmyU6nUeunJcMDHcRYHhs=
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA=
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI=
+github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0 h1:AifHbc4mg0x9zW52WOpKbsHaDKuRhlI7TVl47thgQ70=
+github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1 h1:AMf7YbZOZIW5b66cXNHMWWT/zkjhz5+a+k/3x40EO7E=
+github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1/go.mod h1:uwfk06ZBcvL/g4VHNjurPfVln9NMbsk2XIZxJ+hu81k=
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE=
-github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 h1:OBhqkivkhkMqLPymWEppkm7vgPQY2XsHoEkaMQ0AdZY=
-github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o=
+github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 h1:hVeq+yCyUi+MsoO/CU95yqCIcdzra5ovzk8Q2BBpV2M=
+github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
@@ -95,27 +94,27 @@ github.com/alecthomas/chroma/v2 v2.12.0/go.mod h1:4TQu7gdfuPjSh76j78ietmqh9LiurG
github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/aws/aws-sdk-go v1.44.256/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
-github.com/aws/aws-sdk-go v1.48.11 h1:9YbiSbaF/jWi+qLRl+J5dEhr2mcbDYHmKg2V7RBcD5M=
-github.com/aws/aws-sdk-go v1.48.11/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
-github.com/aws/aws-sdk-go-v2 v1.20.0 h1:INUDpYLt4oiPOJl0XwZDK2OVAVf0Rzo+MGVTv9f+gy8=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.11 h1:/MS8AzqYNAhhRNalOmxUvYs8VEbNGifTnzhPFdcRQkQ=
-github.com/aws/aws-sdk-go-v2/config v1.18.32 h1:tqEOvkbTxwEV7hToRcJ1xZRjcATqwDVsWbAscgRKyNI=
-github.com/aws/aws-sdk-go-v2/credentials v1.13.31 h1:vJyON3lG7R8VOErpJJBclBADiWTwzcwdkQpTKx8D2sk=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.7 h1:X3H6+SU21x+76LRglk21dFRgMTJMa5QcpW+SqUf5BBg=
-github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.76 h1:DJ1kHj0GI9BbX+XhF0kHxlzOVjcncmDUXmCvXdbfdAE=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.37 h1:zr/gxAZkMcvP71ZhQOcvdm8ReLjFgIXnIn0fw5AM7mo=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.31 h1:0HCMIkAkVY9KMgueD8tf4bRTUanzEYvhw7KkPXIMpO0=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.3.38 h1:+i1DOFrW3YZ3apE45tCal9+aDKK6kNEbW6Ib7e1nFxE=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.0 h1:U5yySdwt2HPo/pnQec04DImLzWORbeWML1fJiLkKruI=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.12 h1:uAiiHnWihGP2rVp64fHwzLDrswGjEjsPszwRYMiYQPU=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.32 h1:kvN1jPHr9UffqqG3bSgZ8tx4+1zKVHz/Ktw/BwW6hX8=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.31 h1:auGDJ0aLZahF5SPvkJ6WcUuX7iQ7kyl2MamV7Tm8QBk=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.0 h1:Wgjft9X4W5pMeuqgPCHIQtbZ87wsgom7S5F8obreg+c=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.38.1 h1:mTgFVlfQT8gikc5+/HwD8UL9jnUro5MGv8n/VEYF12I=
-github.com/aws/aws-sdk-go-v2/service/sso v1.13.1 h1:DSNpSbfEgFXRV+IfEcKE5kTbqxm+MeF5WgyeRlsLnHY=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.1 h1:hd0SKLMdOL/Sl6Z0np1PX9LeH2gqNtBe0MhTedA8MGI=
-github.com/aws/aws-sdk-go-v2/service/sts v1.21.1 h1:pAOJj+80tC8sPVgSDHzMYD6KLWsaLQ1kZw31PTeORbs=
-github.com/aws/smithy-go v1.14.0 h1:+X90sB94fizKjDmwb4vyl2cTTPXTE5E2G/1mjByb0io=
+github.com/aws/aws-sdk-go v1.49.3 h1:+UGwhC3kChk0pRCxSsbaQSNIc8MfFURQL44Ig6RRR3I=
+github.com/aws/aws-sdk-go v1.49.3/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
+github.com/aws/aws-sdk-go-v2 v1.23.1 h1:qXaFsOOMA+HsZtX8WoCa+gJnbyW7qyFFBlPqvTSzbaI=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.1 h1:ZY3108YtBNq96jNZTICHxN1gSBSbnvIdYwwqnvCV4Mc=
+github.com/aws/aws-sdk-go-v2/config v1.25.5 h1:UGKm9hpQS2hoK8CEJ1BzAW8NbUpvwDJJ4lyqXSzu8bk=
+github.com/aws/aws-sdk-go-v2/credentials v1.16.4 h1:i7UQYYDSJrtc30RSwJwfBKwLFNnBTiICqAJ0pPdum8E=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.5 h1:KehRNiVzIfAcj6gw98zotVbb/K67taJE0fkfgM6vzqU=
+github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.14.2 h1:3q7vcLhq6JXqTLPpPuDJgw3f+DFqd4p+BWL2DlplRPc=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.4 h1:LAm3Ycm9HJfbSCd5I+wqC2S9Ej7FPrgr5CQoOljJZcE=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.4 h1:4GV0kKZzUxiWxSVpn/9gwR0g21NF1Jsyduzo9rHgC/Q=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1 h1:uR9lXYjdPX0xY+NhvaJ4dD8rpSRz5VY81ccIIoNG+lw=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.4 h1:40Q4X5ebZruRtknEZH/bg91sT5pR853F7/1X9QRbI54=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.1 h1:rpkF4n0CyFcrJUG/rNNohoTmhtWlFTRI4BsZOh9PvLs=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.4 h1:6DRKQc+9cChgzL5gplRGusI5dBGeiEod4m/pmGbcX48=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.4 h1:rdovz3rEu0vZKbzoMYPTehp0E8veoE9AyfzqCr5Eeao=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.4 h1:o3DcfCxGDIT20pTbVKVhp3vWXOj/VvgazNJvumWeYW0=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.44.0 h1:FJTWR2nP1ddLIbk4n7Glw8wGbeWGHaViUwADPzE/EBo=
+github.com/aws/aws-sdk-go-v2/service/sso v1.17.3 h1:CdsSOGlFF3Pn+koXOIpTtvX7st0IuGsZ8kJqcWMlX54=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.20.1 h1:cbRqFTVnJV+KRpwFl76GJdIZJKKCdTPnjUZ7uWh3pIU=
+github.com/aws/aws-sdk-go-v2/service/sts v1.25.4 h1:yEvZ4neOQ/KpUqyR+X0ycUTW/kVRNR4nDZ38wStHGAA=
+github.com/aws/smithy-go v1.17.0 h1:wWJD7LX6PBV6etBUwO0zElG0nWN9rUhp0WdYeHSHAaI=
github.com/beevik/ntp v1.3.0 h1:/w5VhpW5BGKS37vFm1p9oVk/t4HnnkKZAZIubHM6F7Q=
github.com/beevik/ntp v1.3.0/go.mod h1:vD6h1um4kzXpqmLTuu0cCLcC+NfvC0IC+ltmEDA8E78=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
@@ -129,7 +128,6 @@ github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMr
github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d h1:S2NE3iHSwP0XV47EEXL8mWmRdEfGscSJ+7EgePNgt0s=
github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
@@ -142,11 +140,7 @@ github.com/cloudflare/tableflip v1.2.3 h1:8I+B99QnnEWPHOY3fWipwVKxS70LGgUsslG7CS
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -165,7 +159,6 @@ github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5y
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
-github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fsnotify/fsnotify v1.4.3-0.20170329110642-4da3e2cfbabc/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
@@ -185,8 +178,6 @@ github.com/go-stack/stack v1.6.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
-github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw=
github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang/gddo v0.0.0-20210115222349-20d68f94ee1f h1:16RtHeWGkJMc80Etb8RPCcKevXGldr57+LOyZt8zOlg=
@@ -244,7 +235,7 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-replayers/grpcreplay v1.1.0 h1:S5+I3zYyZ+GQz68OfbURDdt/+cSMqCK1wrvNx7WBzTE=
github.com/google/go-replayers/httpreplay v1.2.0 h1:VM1wEyyjaoU53BwrOnaf9VhAyQQEEioJvFYxYcLRKzk=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
@@ -271,19 +262,19 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210804190019-f964ff605595/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20230705174524-200ffdc848b8 h1:n6vlPhxsA+BW/XsS5+uqi7GyzaLa5MH7qlSLBZtRdiA=
-github.com/google/pprof v0.0.0-20230705174524-200ffdc848b8/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA=
+github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 h1:pUa4ghanp6q4IJHwE9RwLgmVFfReJN+KbQ8ExNEUUoQ=
+github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc=
-github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A=
+github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
+github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
-github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
+github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/wire v0.5.0 h1:I7ELFeVBr3yfPIcc8+MWvrjk+3VjbcSzoXm3JVa+jD8=
github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU=
-github.com/googleapis/enterprise-certificate-proxy v0.2.5 h1:UR4rDjcgpgEnqpIEvkiqTYKBCKLNmlge2eVjoZfySzM=
-github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w=
+github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs=
+github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0=
github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
@@ -380,16 +371,16 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om
github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q=
github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM=
-github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
+github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
+github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
-github.com/prometheus/prometheus v0.46.0 h1:9JSdXnsuT6YsbODEhSQMwxNkGwPExfmzqG73vCMk/Kw=
-github.com/prometheus/prometheus v0.46.0/go.mod h1:10L5IJE5CEsjee1FnOcVswYXlPIscDWWt3IJ2UDYrz4=
-github.com/redis/go-redis/v9 v9.3.0 h1:RiVDjmig62jIWp7Kk4XVLs0hzV6pI3PyTnnL0cnn0u0=
-github.com/redis/go-redis/v9 v9.3.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
+github.com/prometheus/prometheus v0.48.0 h1:yrBloImGQ7je4h8M10ujGh4R6oxYQJQKlMuETwNskGk=
+github.com/prometheus/prometheus v0.48.0/go.mod h1:SRw624aMAxTfryAcP8rOjg4S/sHHaetx2lyJJ2nM83g=
+github.com/redis/go-redis/v9 v9.3.1 h1:KqdY8U+3X6z+iACvumCNxnoluToB+9Me+TvyFa21Mds=
+github.com/redis/go-redis/v9 v9.3.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
@@ -451,8 +442,8 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
-gitlab.com/gitlab-org/gitaly/v16 v16.6.1 h1:/FW8yZ0nPIa9wCO2aLmSC2nZpKmL5ZaOrRrFaXBfnPw=
-gitlab.com/gitlab-org/gitaly/v16 v16.6.1/go.mod h1:LbekHBeRUnb1jDQCXIUSNebuPMzVTq8B9PXXp4xVOF4=
+gitlab.com/gitlab-org/gitaly/v16 v16.6.2 h1:uwdlOVg0ZFLN9tt9pvOoGTG1IQvBlTJU27V+t+3CUvo=
+gitlab.com/gitlab-org/gitaly/v16 v16.6.2/go.mod h1:LbekHBeRUnb1jDQCXIUSNebuPMzVTq8B9PXXp4xVOF4=
gitlab.com/gitlab-org/labkit v1.21.0 h1:hLmdBDtXjD1yOmZ+uJOac3a5Tlo83QaezwhES4IYik4=
gitlab.com/gitlab-org/labkit v1.21.0/go.mod h1:zeATDAaSBelPcPLbTTq8J3ZJEHyPTLVBM1q3nva+/W4=
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
@@ -473,15 +464,14 @@ go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
-gocloud.dev v0.34.0 h1:LzlQY+4l2cMtuNfwT2ht4+fiXwWf/NmPTnXUlLmGif4=
-gocloud.dev v0.34.0/go.mod h1:psKOachbnvY3DAOPbsFVmLIErwsbWPUG2H5i65D38vE=
+gocloud.dev v0.35.0 h1:x/Gtt5OJdT4j+ir1AXAIXb7bBnFawXAAaJptCUGk3HU=
+gocloud.dev v0.35.0/go.mod h1:wbyF+BhfdtLWyUtVEWRW13hFLb1vXnV2ovEhYGQe3ck=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
@@ -568,7 +558,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
@@ -592,8 +581,8 @@ golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU=
-golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
+golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0=
+golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM=
golang.org/x/sync v0.0.0-20170517211232-f52d1811a629/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -701,8 +690,8 @@ golang.org/x/time v0.0.0-20170424234030-8be79e1e0910/go.mod h1:tRJNPiyCQ0inRvYxb
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
-golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY=
+golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@@ -762,14 +751,14 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
-golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM=
-golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0=
+golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA=
+golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU=
+golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
google.golang.org/api v0.0.0-20170921000349-586095a6e407/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
@@ -797,16 +786,17 @@ google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtuk
google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
-google.golang.org/api v0.134.0 h1:ktL4Goua+UBgoP1eL1/60LwZJqa1sIzkLmvoR3hR6Gw=
-google.golang.org/api v0.134.0/go.mod h1:sjRL3UnjTx5UqNQS9EWr9N8p7xbHpy1k0XGRLCf3Spk=
+google.golang.org/api v0.151.0 h1:FhfXLO/NFdJIzQtCqjpysWwqKk8AzGWBUhMIx67cVDU=
+google.golang.org/api v0.151.0/go.mod h1:ccy+MJ6nrYFgE3WgRx/AMXOxOmU8Q4hSa+jjibzhxcg=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
+google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20170918111702-1e559d0a00ee/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@@ -860,12 +850,12 @@ google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm
google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
-google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0=
-google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk=
-google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE=
-google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0=
+google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f h1:Vn+VyHU5guc9KjB5KrjI2q0wCOWEOIh0OEsleqakHJg=
+google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f/go.mod h1:nWSwAFPb+qfNJXsoeO3Io7zf4tMSfN8EA8RlDA04GhY=
+google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f h1:2yNACc1O40tTnrsbk9Cv6oxiW8pxI/pXj0wRtdlYmgY=
+google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f/go.mod h1:Uy9bTZJqmfrw2rIBxgGLnamc78euZULUBrLZ9XTITKI=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc=
google.golang.org/grpc v1.2.1-0.20170921194603-d4b75ebd4f9f/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -892,9 +882,8 @@ google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
-google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
-google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
-google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
+google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU=
+google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
@@ -909,8 +898,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
-google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
+google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/DataDog/dd-trace-go.v1 v1.32.0 h1:DkD0plWEVUB8v/Ru6kRBW30Hy/fRNBC8hPdcExuBZMc=
gopkg.in/DataDog/dd-trace-go.v1 v1.32.0/go.mod h1:wRKMf/tRASHwH/UOfPQ3IQmVFhTz2/1a1/mpXoIjF54=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/workhorse/internal/api/api.go b/workhorse/internal/api/api.go
index 91bf37fec55..bacd3c27cc1 100644
--- a/workhorse/internal/api/api.go
+++ b/workhorse/internal/api/api.go
@@ -2,6 +2,7 @@ package api
import (
"bytes"
+ "context"
"encoding/json"
"fmt"
"io"
@@ -13,7 +14,6 @@ import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
-
"gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/config"
@@ -174,6 +174,8 @@ type Response struct {
MaximumSize int64
// A list of permitted hash functions. If empty, then all available are permitted.
UploadHashFunctions []string
+ // NeedAudit indicates whether git events should be audited to rails.
+ NeedAudit bool `json:"NeedAudit"`
}
type GitalyServer struct {
@@ -275,6 +277,42 @@ func (api *API) newRequest(r *http.Request, suffix string) (*http.Request, error
return authReq, nil
}
+type GitAuditEventRequest struct {
+ Action string `json:"action"`
+ Protocol string `json:"protocol"`
+ Repo string `json:"gl_repository"`
+ Username string `json:"username"`
+ PackfileStats *gitalypb.PackfileNegotiationStatistics `json:"packfile_stats,omitempty"`
+}
+
+func (api *API) SendGitAuditEvent(ctx context.Context, body GitAuditEventRequest) error {
+ b, err := json.Marshal(body)
+ if err != nil {
+ return fmt.Errorf("failed to marshal GitAuditEventRequest: %w", err)
+ }
+
+ auditURL := *api.URL
+ auditURL.Path = "/api/v4/internal/shellhorse/git_audit_event"
+ auditReq, err := http.NewRequest(http.MethodPost, auditURL.String(), bytes.NewReader(b))
+ if err != nil {
+ return fmt.Errorf("failed to create request: %w", err)
+ }
+ auditReq.Header.Set("User-Agent", "GitLab-Workhorse")
+ auditReq.Header.Set("Content-Type", "application/json")
+ auditReq = auditReq.WithContext(ctx)
+ httpResponse, err := api.doRequestWithoutRedirects(auditReq)
+ if err != nil {
+ return fmt.Errorf("SendGitAuditEvent: do request: %v", err)
+ }
+ defer httpResponse.Body.Close()
+
+ if httpResponse.StatusCode != http.StatusOK {
+ return fmt.Errorf("SendGitAuditEvent: response status: %s", httpResponse.Status)
+ }
+
+ return nil
+}
+
// PreAuthorize performs a pre-authorization check against the API for the given HTTP request
//
// If the returned *http.Response is not nil, the caller is responsible for closing its body
diff --git a/workhorse/internal/api/api_test.go b/workhorse/internal/api/api_test.go
index 71a0b703cea..8f15e396516 100644
--- a/workhorse/internal/api/api_test.go
+++ b/workhorse/internal/api/api_test.go
@@ -1,6 +1,8 @@
package api
import (
+ "context"
+ "encoding/json"
"fmt"
"io"
"net/http"
@@ -10,6 +12,7 @@ import (
"testing"
"github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/helper"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/secret"
@@ -130,3 +133,76 @@ func testRailsServer(url *regexp.Regexp, code int, body string) *httptest.Server
fmt.Fprint(w, body)
})
}
+
+func TestPreAuthorizeFixedPath(t *testing.T) {
+ var (
+ upstreamHeaders http.Header
+ upstreamQuery url.Values
+ )
+
+ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path != "/my/api/path" {
+ return
+ }
+
+ upstreamHeaders = r.Header
+ upstreamQuery = r.URL.Query()
+ w.Header().Set("Content-Type", ResponseContentType)
+ io.WriteString(w, `{"TempPath":"HELLO!!"}`)
+ }))
+ defer ts.Close()
+
+ req, err := http.NewRequest("GET", "/original/request/path?q1=Q1&q2=Q2", nil)
+ require.NoError(t, err)
+ req.Header.Set("key1", "value1")
+
+ api := NewAPI(helper.URLMustParse(ts.URL), "123", http.DefaultTransport)
+ resp, err := api.PreAuthorizeFixedPath(req, "POST", "/my/api/path")
+ require.NoError(t, err)
+
+ require.Equal(t, "value1", upstreamHeaders.Get("key1"), "original headers must propagate")
+ require.Equal(t, url.Values{"q1": []string{"Q1"}, "q2": []string{"Q2"}}, upstreamQuery,
+ "original query must propagate")
+ require.Equal(t, "HELLO!!", resp.TempPath, "sanity check: successful API call")
+}
+
+func TestSendGitAuditEvent(t *testing.T) {
+ testhelper.ConfigureSecret()
+
+ var (
+ requestHeaders http.Header
+ requestBody GitAuditEventRequest
+ )
+
+ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path != "/api/v4/internal/shellhorse/git_audit_event" {
+ return
+ }
+
+ requestHeaders = r.Header
+ defer r.Body.Close()
+ b, err := io.ReadAll(r.Body)
+ require.NoError(t, err)
+ err = json.Unmarshal(b, &requestBody)
+ require.NoError(t, err)
+ }))
+ defer ts.Close()
+
+ api := NewAPI(helper.URLMustParse(ts.URL), "123", http.DefaultTransport)
+ auditRequest := GitAuditEventRequest{
+ Action: "git-receive-request",
+ Protocol: "http",
+ Repo: "project-1",
+ Username: "GitLab-Shell",
+ PackfileStats: &gitalypb.PackfileNegotiationStatistics{
+ Wants: 3,
+ Haves: 23,
+ },
+ }
+ err := api.SendGitAuditEvent(context.Background(), auditRequest)
+ require.NoError(t, err)
+
+ require.NotEmpty(t, requestHeaders)
+ require.NotEmpty(t, requestHeaders["Gitlab-Workhorse-Api-Request"])
+ require.Equal(t, auditRequest, requestBody)
+}
diff --git a/workhorse/internal/config/config.go b/workhorse/internal/config/config.go
index 3b928d42fe1..d84bab16541 100644
--- a/workhorse/internal/config/config.go
+++ b/workhorse/internal/config/config.go
@@ -2,10 +2,13 @@ package config
import (
"context"
+ "encoding/json"
+ "errors"
"fmt"
"math"
"net/url"
"os"
+ "os/exec"
"runtime"
"strings"
"time"
@@ -30,6 +33,10 @@ func (u *TomlURL) UnmarshalText(text []byte) error {
return err
}
+func (u *TomlURL) MarshalText() ([]byte, error) {
+ return []byte(u.String()), nil
+}
+
type TomlDuration struct {
time.Duration
}
@@ -40,12 +47,16 @@ func (d *TomlDuration) UnmarshalText(text []byte) error {
return err
}
+func (d TomlDuration) MarshalText() ([]byte, error) {
+ return []byte(d.String()), nil
+}
+
type ObjectStorageCredentials struct {
Provider string
- S3Credentials S3Credentials `toml:"s3"`
- AzureCredentials AzureCredentials `toml:"azurerm"`
- GoogleCredentials GoogleCredentials `toml:"google"`
+ S3Credentials S3Credentials `toml:"s3" json:"s3"`
+ AzureCredentials AzureCredentials `toml:"azurerm" json:"azurerm"`
+ GoogleCredentials GoogleCredentials `toml:"google" json:"google"`
}
type ObjectStorageConfig struct {
@@ -53,8 +64,9 @@ type ObjectStorageConfig struct {
}
type S3Credentials struct {
- AwsAccessKeyID string `toml:"aws_access_key_id"`
- AwsSecretAccessKey string `toml:"aws_secret_access_key"`
+ AwsAccessKeyID string `toml:"aws_access_key_id" json:"aws_access_key_id"`
+ AwsSecretAccessKey string `toml:"aws_secret_access_key" json:"aws_secret_access_key"`
+ AwsSessionToken string `toml:"aws_session_token" json:"aws_session_token"`
}
type S3Config struct {
@@ -72,14 +84,14 @@ type GoCloudConfig struct {
}
type AzureCredentials struct {
- AccountName string `toml:"azure_storage_account_name"`
- AccountKey string `toml:"azure_storage_access_key"`
+ AccountName string `toml:"azure_storage_account_name" json:"azure_storage_account_name"`
+ AccountKey string `toml:"azure_storage_access_key" json:"azure_storage_access_key"`
}
type GoogleCredentials struct {
- ApplicationDefault bool `toml:"google_application_default"`
- JSONKeyString string `toml:"google_json_key_string"`
- JSONKeyLocation string `toml:"google_json_key_location"`
+ ApplicationDefault bool `toml:"google_application_default" json:"google_application_default"`
+ JSONKeyString string `toml:"google_json_key_string" json:"google_json_key_string"`
+ JSONKeyLocation string `toml:"google_json_key_location" json:"google_json_key_location"`
}
type RedisConfig struct {
@@ -94,25 +106,27 @@ type RedisConfig struct {
}
type ImageResizerConfig struct {
- MaxScalerProcs uint32 `toml:"max_scaler_procs"`
- MaxFilesize uint64 `toml:"max_filesize"`
+ MaxScalerProcs uint32 `toml:"max_scaler_procs" json:"max_scaler_procs"`
+ MaxScalerMem uint64 `toml:"max_scaler_mem" json:"max_scaler_mem"`
+ MaxFilesize uint64 `toml:"max_filesize" json:"max_filesize"`
}
type TlsConfig struct {
- Certificate string `toml:"certificate"`
- Key string `toml:"key"`
- MinVersion string `toml:"min_version"`
- MaxVersion string `toml:"max_version"`
+ Certificate string `toml:"certificate" json:"certificate"`
+ Key string `toml:"key" json:"key"`
+ MinVersion string `toml:"min_version" json:"min_version"`
+ MaxVersion string `toml:"max_version" json:"max_version"`
}
type ListenerConfig struct {
- Network string `toml:"network"`
- Addr string `toml:"addr"`
- Tls *TlsConfig `toml:"tls"`
+ Network string `toml:"network" json:"network"`
+ Addr string `toml:"addr" json:"addr"`
+ Tls *TlsConfig `toml:"tls" json:"tls"`
}
type Config struct {
- Redis *RedisConfig `toml:"redis"`
+ ConfigCommand string `toml:"config_command,omitempty" json:"config_command"`
+ Redis *RedisConfig `toml:"redis" json:"redis"`
Backend *url.URL `toml:"-"`
CableBackend *url.URL `toml:"-"`
Version string `toml:"-"`
@@ -126,15 +140,15 @@ type Config struct {
APIQueueTimeout time.Duration `toml:"-"`
APICILongPollingDuration time.Duration `toml:"-"`
ObjectStorageConfig ObjectStorageConfig `toml:"-"`
- ObjectStorageCredentials ObjectStorageCredentials `toml:"object_storage"`
+ ObjectStorageCredentials ObjectStorageCredentials `toml:"object_storage" json:"object_storage"`
PropagateCorrelationID bool `toml:"-"`
- ImageResizerConfig ImageResizerConfig `toml:"image_resizer"`
- AltDocumentRoot string `toml:"alt_document_root"`
- ShutdownTimeout TomlDuration `toml:"shutdown_timeout"`
- TrustedCIDRsForXForwardedFor []string `toml:"trusted_cidrs_for_x_forwarded_for"`
- TrustedCIDRsForPropagation []string `toml:"trusted_cidrs_for_propagation"`
- Listeners []ListenerConfig `toml:"listeners"`
- MetricsListener *ListenerConfig `toml:"metrics_listener"`
+ ImageResizerConfig ImageResizerConfig `toml:"image_resizer" json:"image_resizer"`
+ AltDocumentRoot string `toml:"alt_document_root" json:"alt_document_root"`
+ ShutdownTimeout TomlDuration `toml:"shutdown_timeout" json:"shutdown_timeout"`
+ TrustedCIDRsForXForwardedFor []string `toml:"trusted_cidrs_for_x_forwarded_for" json:"trusted_cidrs_for_x_forwarded_for"`
+ TrustedCIDRsForPropagation []string `toml:"trusted_cidrs_for_propagation" json:"trusted_cidrs_for_propagation"`
+ Listeners []ListenerConfig `toml:"listeners" json:"listeners"`
+ MetricsListener *ListenerConfig `toml:"metrics_listener" json:"metrics_listener"`
}
var DefaultImageResizerConfig = ImageResizerConfig{
@@ -149,6 +163,22 @@ func LoadConfig(data string) (*Config, error) {
return nil, err
}
+ if cfg.ConfigCommand != "" {
+ output, err := exec.Command(cfg.ConfigCommand).Output()
+ if err != nil {
+ var exitErr *exec.ExitError
+ if errors.As(err, &exitErr) {
+ return cfg, fmt.Errorf("running config command: %w, stderr: %q", err, string(exitErr.Stderr))
+ }
+
+ return cfg, fmt.Errorf("running config command: %w", err)
+ }
+
+ if err := json.Unmarshal(output, &cfg); err != nil {
+ return cfg, fmt.Errorf("unmarshalling generated config: %w", err)
+ }
+ }
+
return cfg, nil
}
diff --git a/workhorse/internal/git/git-http.go b/workhorse/internal/git/git-http.go
index 86007e16064..db318b2ce5c 100644
--- a/workhorse/internal/git/git-http.go
+++ b/workhorse/internal/git/git-http.go
@@ -11,6 +11,8 @@ import (
"path/filepath"
"sync"
+ "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
+
"gitlab.com/gitlab-org/gitlab/workhorse/internal/api"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/log"
)
@@ -22,11 +24,11 @@ const (
)
func ReceivePack(a *api.API) http.Handler {
- return postRPCHandler(a, "handleReceivePack", handleReceivePack, writeReceivePackError)
+ return postRPCHandler(a, "handleReceivePack", handleReceivePack, sendGitAuditEvent("git-receive-pack"), writeReceivePackError)
}
func UploadPack(a *api.API) http.Handler {
- return postRPCHandler(a, "handleUploadPack", handleUploadPack, writeUploadPackError)
+ return postRPCHandler(a, "handleUploadPack", handleUploadPack, sendGitAuditEvent("git-upload-pack"), writeUploadPackError)
}
func gitConfigOptions(a *api.Response) []string {
@@ -42,7 +44,8 @@ func gitConfigOptions(a *api.Response) []string {
func postRPCHandler(
a *api.API,
name string,
- handler func(*HttpResponseWriter, *http.Request, *api.Response) error,
+ handler func(*HttpResponseWriter, *http.Request, *api.Response) (*gitalypb.PackfileNegotiationStatistics, error),
+ postFunc func(*api.API, *http.Request, *api.Response, *gitalypb.PackfileNegotiationStatistics),
errWriter func(io.Writer) error,
) http.Handler {
return repoPreAuthorizeHandler(a, func(rw http.ResponseWriter, r *http.Request, ar *api.Response) {
@@ -54,7 +57,8 @@ func postRPCHandler(
w.Log(r, cr.Count())
}()
- if err := handler(w, r, ar); err != nil {
+ stats, err := handler(w, r, ar)
+ if err != nil {
handleLimitErr(err, w, errWriter)
// If the handler, or handleLimitErr already wrote a response this WriteHeader call is a
// no-op. It never reaches net/http because GitHttpResponseWriter calls
@@ -62,6 +66,8 @@ func postRPCHandler(
w.WriteHeader(500)
log.WithRequest(r).WithError(fmt.Errorf("%s: %v", name, err)).Error()
}
+
+ postFunc(a, r, ar, stats)
})
}
@@ -71,6 +77,30 @@ func repoPreAuthorizeHandler(myAPI *api.API, handleFunc api.HandleFunc) http.Han
}, "")
}
+func sendGitAuditEvent(action string) func(*api.API, *http.Request, *api.Response, *gitalypb.PackfileNegotiationStatistics) {
+ return func(a *api.API, r *http.Request, response *api.Response, stats *gitalypb.PackfileNegotiationStatistics) {
+ if !response.NeedAudit {
+ return
+ }
+
+ ctx := r.Context()
+ err := a.SendGitAuditEvent(ctx, api.GitAuditEventRequest{
+ Action: action,
+ Protocol: "http",
+ Repo: response.GL_REPOSITORY,
+ Username: response.GL_USERNAME,
+ PackfileStats: stats,
+ })
+ if err != nil {
+ log.WithContextFields(ctx, log.Fields{
+ "repo": response.GL_REPOSITORY,
+ "action": action,
+ "username": response.GL_USERNAME,
+ }).WithError(err).Error("failed to send git audit event")
+ }
+ }
+}
+
func writePostRPCHeader(w http.ResponseWriter, action string) {
w.Header().Set("Content-Type", fmt.Sprintf("application/x-%s-result", action))
w.Header().Set("Cache-Control", "no-cache")
diff --git a/workhorse/internal/git/receive-pack.go b/workhorse/internal/git/receive-pack.go
index 5e93c0f36d1..3a87f6d1f24 100644
--- a/workhorse/internal/git/receive-pack.go
+++ b/workhorse/internal/git/receive-pack.go
@@ -4,13 +4,16 @@ import (
"fmt"
"net/http"
+ "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
+
"gitlab.com/gitlab-org/gitlab/workhorse/internal/api"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/gitaly"
)
// Will not return a non-nil error after the response body has been
// written to.
-func handleReceivePack(w *HttpResponseWriter, r *http.Request, a *api.Response) error {
+// and `git push` doesn't provide `gitalypb.PackfileNegotiationStatistics`.
+func handleReceivePack(w *HttpResponseWriter, r *http.Request, a *api.Response) (*gitalypb.PackfileNegotiationStatistics, error) {
action := getService(r)
writePostRPCHeader(w, action)
@@ -21,12 +24,12 @@ func handleReceivePack(w *HttpResponseWriter, r *http.Request, a *api.Response)
ctx, smarthttp, err := gitaly.NewSmartHTTPClient(r.Context(), a.GitalyServer)
if err != nil {
- return fmt.Errorf("smarthttp.ReceivePack: %v", err)
+ return nil, fmt.Errorf("smarthttp.ReceivePack: %v", err)
}
if err := smarthttp.ReceivePack(ctx, &a.Repository, a.GL_ID, a.GL_USERNAME, a.GL_REPOSITORY, a.GitConfigOptions, cr, cw, gitProtocol); err != nil {
- return fmt.Errorf("smarthttp.ReceivePack: %w", err)
+ return nil, fmt.Errorf("smarthttp.ReceivePack: %w", err)
}
- return nil
+ return nil, nil
}
diff --git a/workhorse/internal/git/upload-pack.go b/workhorse/internal/git/upload-pack.go
index ef2a00bf3ac..d67613b6f9b 100644
--- a/workhorse/internal/git/upload-pack.go
+++ b/workhorse/internal/git/upload-pack.go
@@ -7,6 +7,8 @@ import (
"net/http"
"time"
+ "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
+
"gitlab.com/gitlab-org/gitlab/workhorse/internal/api"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/gitaly"
)
@@ -17,7 +19,7 @@ var (
// Will not return a non-nil error after the response body has been
// written to.
-func handleUploadPack(w *HttpResponseWriter, r *http.Request, a *api.Response) error {
+func handleUploadPack(w *HttpResponseWriter, r *http.Request, a *api.Response) (*gitalypb.PackfileNegotiationStatistics, error) {
ctx := r.Context()
// Prevent the client from holding the connection open indefinitely. A
@@ -42,15 +44,16 @@ func handleUploadPack(w *HttpResponseWriter, r *http.Request, a *api.Response) e
return handleUploadPackWithGitaly(ctx, a, cr, cw, gitProtocol)
}
-func handleUploadPackWithGitaly(ctx context.Context, a *api.Response, clientRequest io.Reader, clientResponse io.Writer, gitProtocol string) error {
+func handleUploadPackWithGitaly(ctx context.Context, a *api.Response, clientRequest io.Reader, clientResponse io.Writer, gitProtocol string) (*gitalypb.PackfileNegotiationStatistics, error) {
ctx, smarthttp, err := gitaly.NewSmartHTTPClient(ctx, a.GitalyServer)
if err != nil {
- return fmt.Errorf("get gitaly client: %w", err)
+ return nil, fmt.Errorf("get gitaly client: %w", err)
}
- if err := smarthttp.UploadPack(ctx, &a.Repository, clientRequest, clientResponse, gitConfigOptions(a), gitProtocol); err != nil {
- return fmt.Errorf("do gitaly call: %w", err)
+ resp, err := smarthttp.UploadPack(ctx, &a.Repository, clientRequest, clientResponse, gitConfigOptions(a), gitProtocol)
+ if err != nil {
+ return nil, fmt.Errorf("do gitaly call: %w", err)
}
- return nil
+ return resp.PackfileNegotiationStatistics, nil
}
diff --git a/workhorse/internal/git/upload-pack_test.go b/workhorse/internal/git/upload-pack_test.go
index 359262542f1..e816e6a34c9 100644
--- a/workhorse/internal/git/upload-pack_test.go
+++ b/workhorse/internal/git/upload-pack_test.go
@@ -66,7 +66,7 @@ func TestUploadPackTimesOut(t *testing.T) {
r := httptest.NewRequest("GET", "/", body)
a := &api.Response{GitalyServer: api.GitalyServer{Address: addr}}
- err := handleUploadPack(NewHttpResponseWriter(w), r, a)
+ _, err := handleUploadPack(NewHttpResponseWriter(w), r, a)
require.True(t, errors.Is(err, context.DeadlineExceeded))
}
diff --git a/workhorse/internal/gitaly/smarthttp.go b/workhorse/internal/gitaly/smarthttp.go
index e0ddf5ae4eb..420c549895c 100644
--- a/workhorse/internal/gitaly/smarthttp.go
+++ b/workhorse/internal/gitaly/smarthttp.go
@@ -94,7 +94,7 @@ func (client *SmartHTTPClient) ReceivePack(ctx context.Context, repo *gitalypb.R
return nil
}
-func (client *SmartHTTPClient) UploadPack(ctx context.Context, repo *gitalypb.Repository, clientRequest io.Reader, clientResponse io.Writer, gitConfigOptions []string, gitProtocol string) error {
+func (client *SmartHTTPClient) UploadPack(ctx context.Context, repo *gitalypb.Repository, clientRequest io.Reader, clientResponse io.Writer, gitConfigOptions []string, gitProtocol string) (*gitalypb.PostUploadPackWithSidechannelResponse, error) {
ctx, waiter := client.sidechannelRegistry.Register(ctx, func(conn gitalyclient.SidechannelConn) error {
if _, err := io.Copy(conn, clientRequest); err != nil {
return fmt.Errorf("copy request body: %w", err)
@@ -118,13 +118,14 @@ func (client *SmartHTTPClient) UploadPack(ctx context.Context, repo *gitalypb.Re
GitProtocol: gitProtocol,
}
- if _, err := client.PostUploadPackWithSidechannel(ctx, rpcRequest); err != nil {
- return fmt.Errorf("PostUploadPackWithSidechannel: %w", err)
+ resp, err := client.PostUploadPackWithSidechannel(ctx, rpcRequest)
+ if err != nil {
+ return nil, fmt.Errorf("PostUploadPackWithSidechannel: %w", err)
}
- if err := waiter.Close(); err != nil {
- return fmt.Errorf("close sidechannel waiter: %w", err)
+ if err = waiter.Close(); err != nil {
+ return nil, fmt.Errorf("close sidechannel waiter: %w", err)
}
- return nil
+ return resp, nil
}
diff --git a/workhorse/internal/testhelper/testhelper.go b/workhorse/internal/testhelper/testhelper.go
index 6c944def92d..607c02d1da1 100644
--- a/workhorse/internal/testhelper/testhelper.go
+++ b/workhorse/internal/testhelper/testhelper.go
@@ -1,6 +1,7 @@
package testhelper
import (
+ "bytes"
"errors"
"fmt"
"io"
@@ -8,8 +9,10 @@ import (
"net/http/httptest"
"os"
"path"
+ "path/filepath"
"regexp"
"runtime"
+ "syscall"
"testing"
"github.com/golang-jwt/jwt/v5"
@@ -165,3 +168,74 @@ func SetupStaticFileHelper(t *testing.T, fpath, content, directory string) strin
return absDocumentRoot
}
+
+// TempDir is a wrapper around os.MkdirTemp that provides a cleanup function.
+func TempDir(tb testing.TB) string {
+ tmpDir, err := os.MkdirTemp("", "workhorse-tmp-*")
+ require.NoError(tb, err)
+ tb.Cleanup(func() {
+ require.NoError(tb, os.RemoveAll(tmpDir))
+ })
+
+ return tmpDir
+}
+
+// MustClose calls Close() on the Closer and fails the test in case it returns
+// an error. This function is useful when closing via `defer`, as a simple
+// `defer require.NoError(t, closer.Close())` would cause `closer.Close()` to
+// be executed early already.
+func MustClose(tb testing.TB, closer io.Closer) {
+ require.NoError(tb, closer.Close())
+}
+
+// WriteExecutable ensures that the parent directory exists, and writes an executable with provided
+// content. The executable must not exist previous to writing it. Returns the path of the written
+// executable.
+func WriteExecutable(tb testing.TB, path string, content []byte) string {
+ dir := filepath.Dir(path)
+ require.NoError(tb, os.MkdirAll(dir, 0o755))
+ tb.Cleanup(func() {
+ require.NoError(tb, os.RemoveAll(dir))
+ })
+
+ // Open the file descriptor and write the script into it. It may happen that any other
+ // Goroutine forks while we hold this writeable file descriptor, and as a consequence we
+ // leak it into the other process. Subsequently, even if we close the file descriptor
+ // ourselves this other process may still hold on to the writeable file descriptor. The
+ // result is that calls to execve(3P) on our just-written file will fail with ETXTBSY,
+ // which is raised when trying to execute a file which is still open to be written to.
+ //
+ // We thus need to perform file locking to ensure that all writeable references to this
+ // file have been closed before returning.
+ executable, err := os.OpenFile(path, os.O_CREATE|os.O_EXCL|os.O_WRONLY, 0o700)
+ require.NoError(tb, err)
+ _, err = io.Copy(executable, bytes.NewReader(content))
+ require.NoError(tb, err)
+
+ // We now lock the file descriptor for exclusive access. If there was a forked process
+ // holding the writeable file descriptor at this point in time, then it would refer to the
+ // same file descriptor and thus be locked for exclusive access, as well. If we fork after
+ // creating the lock and before closing the writeable file descriptor, then the dup'd file
+ // descriptor would automatically inherit the lock.
+ //
+ // No matter what, after this step any file descriptors referring to this writeable file
+ // descriptor will be exclusively locked.
+ require.NoError(tb, syscall.Flock(int(executable.Fd()), syscall.LOCK_EX))
+
+ // We now close this file. The file will be automatically unlocked as soon as all
+ // references to this file descriptor are closed.
+ MustClose(tb, executable)
+
+ // We now open the file again, but this time only for reading.
+ executable, err = os.Open(path)
+ require.NoError(tb, err)
+
+ // And this time, we try to acquire a shared lock on this file. This call will block until
+ // the exclusive file lock on the above writeable file descriptor has been dropped. So as
+ // soon as we're able to acquire the lock we know that there cannot be any open writeable
+ // file descriptors for this file anymore, and thus we won't get ETXTBSY anymore.
+ require.NoError(tb, syscall.Flock(int(executable.Fd()), syscall.LOCK_SH))
+ MustClose(tb, executable)
+
+ return path
+}
diff --git a/yarn.lock b/yarn.lock
index d70e6d32e5a..80c90230d50 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,12 +7,13 @@
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
-"@ampproject/remapping@^2.1.0":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34"
- integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
+"@ampproject/remapping@^2.2.0":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
+ integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
dependencies:
- "@jridgewell/trace-mapping" "^0.3.0"
+ "@jridgewell/gen-mapping" "^0.3.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
"@apidevtools/json-schema-ref-parser@9.0.6":
version "9.0.6"
@@ -74,407 +75,281 @@
tslib "^2.3.0"
zen-observable-ts "^1.2.0"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
- integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+ integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
dependencies:
- "@babel/highlight" "^7.18.6"
-
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10", "@babel/compat-data@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.0.tgz#2a592fd89bacb1fcde68de31bee4f2f2dacb0e86"
- integrity sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==
+ "@babel/highlight" "^7.23.4"
+ chalk "^2.4.2"
-"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.5":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.0.tgz#d2f5f4f2033c00de8096be3c9f45772563e150c3"
- integrity sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==
- dependencies:
- "@ampproject/remapping" "^2.1.0"
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.19.0"
- "@babel/helper-compilation-targets" "^7.19.0"
- "@babel/helper-module-transforms" "^7.19.0"
- "@babel/helpers" "^7.19.0"
- "@babel/parser" "^7.19.0"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.19.0"
- "@babel/types" "^7.19.0"
- convert-source-map "^1.7.0"
+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
+ integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
+
+"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f"
+ integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.23.5"
+ "@babel/generator" "^7.23.6"
+ "@babel/helper-compilation-targets" "^7.23.6"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helpers" "^7.23.7"
+ "@babel/parser" "^7.23.6"
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.23.7"
+ "@babel/types" "^7.23.6"
+ convert-source-map "^2.0.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
- json5 "^2.2.1"
- semver "^6.3.0"
+ json5 "^2.2.3"
+ semver "^6.3.1"
-"@babel/generator@^7.19.0", "@babel/generator@^7.7.2":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a"
- integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==
+"@babel/generator@^7.23.6", "@babel/generator@^7.7.2":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
+ integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
dependencies:
- "@babel/types" "^7.19.0"
+ "@babel/types" "^7.23.6"
"@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
-"@babel/helper-annotate-as-pure@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
- integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
+"@babel/helper-annotate-as-pure@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
+ integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.22.5"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b"
- integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956"
+ integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.16.7"
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.22.15"
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.18.2", "@babel/helper-compilation-targets@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz#537ec8339d53e806ed422f1e06c8f17d55b96bb0"
- integrity sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==
+"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
+ integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
dependencies:
- "@babel/compat-data" "^7.19.0"
- "@babel/helper-validator-option" "^7.18.6"
- browserslist "^4.20.2"
- semver "^6.3.0"
+ "@babel/compat-data" "^7.23.5"
+ "@babel/helper-validator-option" "^7.23.5"
+ browserslist "^4.22.2"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
-"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19"
- integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.17.9"
- "@babel/helper-member-expression-to-functions" "^7.17.7"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/helper-replace-supers" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
+"@babel/helper-create-class-features-plugin@^7.22.15":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d"
+ integrity sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-member-expression-to-functions" "^7.23.0"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.20"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ semver "^6.3.1"
-"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd"
- integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1"
+ integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- regexpu-core "^5.0.1"
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ regexpu-core "^5.3.1"
+ semver "^6.3.1"
-"@babel/helper-define-polyfill-provider@^0.3.1":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665"
- integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
+"@babel/helper-define-polyfill-provider@^0.4.4":
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088"
+ integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==
dependencies:
- "@babel/helper-compilation-targets" "^7.13.0"
- "@babel/helper-module-imports" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/traverse" "^7.13.0"
+ "@babel/helper-compilation-targets" "^7.22.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
debug "^4.1.1"
lodash.debounce "^4.0.8"
resolve "^1.14.2"
- semver "^6.1.2"
-"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
- integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
+"@babel/helper-environment-visitor@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
-"@babel/helper-explode-assignable-expression@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a"
- integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==
+"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+ integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.23.0"
-"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9", "@babel/helper-function-name@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
- integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
+"@babel/helper-hoist-variables@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
+ integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
dependencies:
- "@babel/template" "^7.18.10"
- "@babel/types" "^7.19.0"
+ "@babel/types" "^7.22.5"
-"@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
- integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
+"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366"
+ integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==
dependencies:
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.23.0"
+
+"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+ integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
+ dependencies:
+ "@babel/types" "^7.22.15"
-"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7":
- version "7.17.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4"
- integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==
+"@babel/helper-module-transforms@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
+ integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-validator-identifier" "^7.22.20"
+
+"@babel/helper-optimise-call-expression@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
+ integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
+ integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
+
+"@babel/helper-remap-async-to-generator@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0"
+ integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-wrap-function" "^7.22.20"
+
+"@babel/helper-replace-supers@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793"
+ integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-member-expression-to-functions" "^7.22.15"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+
+"@babel/helper-simple-access@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
+ integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847"
+ integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-split-export-declaration@^7.22.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-string-parser@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
+ integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
+
+"@babel/helper-validator-identifier@^7.15.7", "@babel/helper-validator-identifier@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
+"@babel/helper-validator-option@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
+ integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
+
+"@babel/helper-wrap-function@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569"
+ integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==
+ dependencies:
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.22.19"
+
+"@babel/helpers@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.7.tgz#eb543c36f81da2873e47b76ee032343ac83bba60"
+ integrity sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==
dependencies:
- "@babel/types" "^7.17.0"
-
-"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
- integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-module-transforms@^7.18.0", "@babel/helper-module-transforms@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30"
- integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-simple-access" "^7.18.6"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/helper-validator-identifier" "^7.18.6"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.19.0"
- "@babel/types" "^7.19.0"
-
-"@babel/helper-optimise-call-expression@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2"
- integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96"
- integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==
-
-"@babel/helper-remap-async-to-generator@^7.16.8":
- version "7.16.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3"
- integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-wrap-function" "^7.16.8"
- "@babel/types" "^7.16.8"
-
-"@babel/helper-replace-supers@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1"
- integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==
- dependencies:
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-member-expression-to-functions" "^7.16.7"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/traverse" "^7.16.7"
- "@babel/types" "^7.16.7"
-
-"@babel/helper-simple-access@^7.18.2", "@babel/helper-simple-access@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea"
- integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
- version "7.16.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09"
- integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==
- dependencies:
- "@babel/types" "^7.16.0"
-
-"@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
- integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-string-parser@^7.18.10":
- version "7.18.10"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
- integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
-
-"@babel/helper-validator-identifier@^7.15.7", "@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
- integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
-
-"@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
- integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
-
-"@babel/helper-wrap-function@^7.16.8":
- version "7.16.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200"
- integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==
- dependencies:
- "@babel/helper-function-name" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.16.8"
- "@babel/types" "^7.16.8"
-
-"@babel/helpers@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18"
- integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==
- dependencies:
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.19.0"
- "@babel/types" "^7.19.0"
-
-"@babel/highlight@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
- integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
- dependencies:
- "@babel/helper-validator-identifier" "^7.18.6"
- chalk "^2.0.0"
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.23.7"
+ "@babel/types" "^7.23.6"
+
+"@babel/highlight@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+ integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.20"
+ chalk "^2.4.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.18.4", "@babel/parser@^7.19.0":
- version "7.21.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3"
- integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==
-
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e"
- integrity sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz#0d498ec8f0374b1e2eb54b9cb2c4c78714c77753"
- integrity sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
- "@babel/plugin-proposal-optional-chaining" "^7.17.12"
-
-"@babel/plugin-proposal-async-generator-functions@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz#094a417e31ce7e692d84bab06c8e2a607cbeef03"
- integrity sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-remap-async-to-generator" "^7.16.8"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
-
-"@babel/plugin-proposal-class-properties@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz#84f65c0cc247d46f40a6da99aadd6438315d80a4"
- integrity sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-proposal-class-static-block@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710"
- integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
-
-"@babel/plugin-proposal-dynamic-import@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2"
- integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
-
-"@babel/plugin-proposal-export-namespace-from@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz#b22864ccd662db9606edb2287ea5fd1709f05378"
- integrity sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-
-"@babel/plugin-proposal-json-strings@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz#f4642951792437233216d8c1af370bb0fbff4664"
- integrity sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
-
-"@babel/plugin-proposal-logical-assignment-operators@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz#c64a1bcb2b0a6d0ed2ff674fd120f90ee4b88a23"
- integrity sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz#1e93079bbc2cbc756f6db6a1925157c4a92b94be"
- integrity sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-
-"@babel/plugin-proposal-numeric-separator@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9"
- integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
-
-"@babel/plugin-proposal-object-rest-spread@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8"
- integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==
- dependencies:
- "@babel/compat-data" "^7.17.10"
- "@babel/helper-compilation-targets" "^7.17.10"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.17.12"
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.16.8", "@babel/parser@^7.18.4", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
+ integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
-"@babel/plugin-proposal-optional-catch-binding@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf"
- integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a"
+ integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-proposal-optional-chaining@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174"
- integrity sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d"
+ integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/plugin-transform-optional-chaining" "^7.23.3"
-"@babel/plugin-proposal-private-methods@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz#c2ca3a80beb7539289938da005ad525a038a819c"
- integrity sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b"
+ integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-proposal-private-property-in-object@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d"
- integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-create-class-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-
-"@babel/plugin-proposal-unicode-property-regex@^7.17.12", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d"
- integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
+"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
+ version "7.21.0-placeholder-for-preset-env.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
+ integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
@@ -518,14 +393,21 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-import-assertions@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd"
- integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==
+"@babel/plugin-syntax-import-assertions@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc"
+ integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-syntax-import-meta@^7.8.3":
+"@babel/plugin-syntax-import-attributes@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06"
+ integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
@@ -596,296 +478,430 @@
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-typescript@^7.7.2":
- version "7.17.10"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz#80031e6042cad6a95ed753f672ebd23c30933195"
- integrity sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-arrow-functions@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz#dddd783b473b1b1537ef46423e3944ff24898c45"
- integrity sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-async-to-generator@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz#dbe5511e6b01eee1496c944e35cdfe3f58050832"
- integrity sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==
- dependencies:
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-remap-async-to-generator" "^7.16.8"
-
-"@babel/plugin-transform-block-scoped-functions@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620"
- integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-block-scoping@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz#68fc3c4b3bb7dfd809d97b7ed19a584052a2725c"
- integrity sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-classes@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz#da889e89a4d38375eeb24985218edeab93af4f29"
- integrity sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.17.9"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-replace-supers" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f"
+ integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357"
+ integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-arrow-functions@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b"
+ integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-async-generator-functions@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd"
+ integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-remap-async-to-generator" "^7.22.20"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+
+"@babel/plugin-transform-async-to-generator@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa"
+ integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==
+ dependencies:
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-remap-async-to-generator" "^7.22.20"
+
+"@babel/plugin-transform-block-scoped-functions@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77"
+ integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-block-scoping@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5"
+ integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-class-properties@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48"
+ integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-class-static-block@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5"
+ integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+"@babel/plugin-transform-classes@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2"
+ integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.20"
+ "@babel/helper-split-export-declaration" "^7.22.6"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz#bca616a83679698f3258e892ed422546e531387f"
- integrity sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==
+"@babel/plugin-transform-computed-properties@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474"
+ integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/template" "^7.22.15"
+
+"@babel/plugin-transform-destructuring@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311"
+ integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-dotall-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50"
+ integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-duplicate-keys@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce"
+ integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-dynamic-import@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143"
+ integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+"@babel/plugin-transform-exponentiation-operator@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18"
+ integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-export-namespace-from@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191"
+ integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-transform-for-of@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e"
+ integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+
+"@babel/plugin-transform-function-name@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc"
+ integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-json-strings@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d"
+ integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-transform-literals@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4"
+ integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-logical-assignment-operators@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5"
+ integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-transform-member-expression-literals@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc"
+ integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-modules-amd@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d"
+ integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4"
+ integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-simple-access" "^7.22.5"
+
+"@babel/plugin-transform-modules-systemjs@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81"
+ integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.20"
+
+"@babel/plugin-transform-modules-umd@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9"
+ integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f"
+ integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-create-regexp-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-destructuring@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858"
- integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==
+"@babel/plugin-transform-new-target@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980"
+ integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241"
- integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==
+"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e"
+ integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-transform-numeric-separator@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29"
+ integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-transform-object-rest-spread@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83"
+ integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==
+ dependencies:
+ "@babel/compat-data" "^7.23.3"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.23.3"
-"@babel/plugin-transform-duplicate-keys@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz#a09aa709a3310013f8e48e0e23bc7ace0f21477c"
- integrity sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==
+"@babel/plugin-transform-object-super@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd"
+ integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.20"
-"@babel/plugin-transform-exponentiation-operator@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b"
- integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==
+"@babel/plugin-transform-optional-catch-binding@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017"
+ integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-transform-for-of@^7.18.1":
- version "7.18.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036"
- integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==
+"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017"
+ integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-transform-function-name@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf"
- integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==
+"@babel/plugin-transform-parameters@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af"
+ integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==
dependencies:
- "@babel/helper-compilation-targets" "^7.16.7"
- "@babel/helper-function-name" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-literals@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz#97131fbc6bbb261487105b4b3edbf9ebf9c830ae"
- integrity sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==
+"@babel/plugin-transform-private-methods@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4"
+ integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-member-expression-literals@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384"
- integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==
+"@babel/plugin-transform-private-property-in-object@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5"
+ integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-"@babel/plugin-transform-modules-amd@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed"
- integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==
+"@babel/plugin-transform-property-literals@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875"
+ integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==
dependencies:
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
- babel-plugin-dynamic-import-node "^2.3.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-modules-commonjs@^7.18.2", "@babel/plugin-transform-modules-commonjs@^7.2.0":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e"
- integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==
+"@babel/plugin-transform-regenerator@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c"
+ integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==
dependencies:
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-simple-access" "^7.18.2"
- babel-plugin-dynamic-import-node "^2.3.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ regenerator-transform "^0.15.2"
-"@babel/plugin-transform-modules-systemjs@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz#50ecdb43de97c8483824402f7125edb94cddb09a"
- integrity sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ==
+"@babel/plugin-transform-reserved-words@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8"
+ integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==
dependencies:
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-validator-identifier" "^7.16.7"
- babel-plugin-dynamic-import-node "^2.3.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-modules-umd@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f"
- integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==
+"@babel/plugin-transform-shorthand-properties@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210"
+ integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==
dependencies:
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz#9c4a5a5966e0434d515f2675c227fd8cc8606931"
- integrity sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==
+"@babel/plugin-transform-spread@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c"
+ integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
-"@babel/plugin-transform-new-target@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz#10842cd605a620944e81ea6060e9e65c265742e3"
- integrity sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==
+"@babel/plugin-transform-sticky-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04"
+ integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-object-super@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94"
- integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-replace-supers" "^7.16.7"
-
-"@babel/plugin-transform-parameters@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz#eb467cd9586ff5ff115a9880d6fdbd4a846b7766"
- integrity sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-property-literals@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55"
- integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-regenerator@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5"
- integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- regenerator-transform "^0.15.0"
-
-"@babel/plugin-transform-reserved-words@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz#7dbd349f3cdffba751e817cf40ca1386732f652f"
- integrity sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-shorthand-properties@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a"
- integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-spread@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz#c112cad3064299f03ea32afed1d659223935d1f5"
- integrity sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
-
-"@babel/plugin-transform-sticky-regex@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660"
- integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-template-literals@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz#31ed6915721864847c48b656281d0098ea1add28"
- integrity sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-typeof-symbol@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz#0f12f57ac35e98b35b4ed34829948d42bd0e6889"
- integrity sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-unicode-escapes@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3"
- integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-unicode-regex@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2"
- integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/preset-env@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.2.tgz#f47d3000a098617926e674c945d95a28cb90977a"
- integrity sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==
- dependencies:
- "@babel/compat-data" "^7.17.10"
- "@babel/helper-compilation-targets" "^7.18.2"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-validator-option" "^7.16.7"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12"
- "@babel/plugin-proposal-async-generator-functions" "^7.17.12"
- "@babel/plugin-proposal-class-properties" "^7.17.12"
- "@babel/plugin-proposal-class-static-block" "^7.18.0"
- "@babel/plugin-proposal-dynamic-import" "^7.16.7"
- "@babel/plugin-proposal-export-namespace-from" "^7.17.12"
- "@babel/plugin-proposal-json-strings" "^7.17.12"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12"
- "@babel/plugin-proposal-numeric-separator" "^7.16.7"
- "@babel/plugin-proposal-object-rest-spread" "^7.18.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.16.7"
- "@babel/plugin-proposal-optional-chaining" "^7.17.12"
- "@babel/plugin-proposal-private-methods" "^7.17.12"
- "@babel/plugin-proposal-private-property-in-object" "^7.17.12"
- "@babel/plugin-proposal-unicode-property-regex" "^7.17.12"
+"@babel/plugin-transform-template-literals@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07"
+ integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-typeof-symbol@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4"
+ integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-escapes@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925"
+ integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-property-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad"
+ integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc"
+ integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-sets-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e"
+ integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/preset-env@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.7.tgz#e5d69b9f14db8a13bae4d8e5ce7f360973626241"
+ integrity sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==
+ dependencies:
+ "@babel/compat-data" "^7.23.5"
+ "@babel/helper-compilation-targets" "^7.23.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-option" "^7.23.5"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7"
+ "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-class-properties" "^7.12.13"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
- "@babel/plugin-syntax-import-assertions" "^7.17.12"
+ "@babel/plugin-syntax-import-assertions" "^7.23.3"
+ "@babel/plugin-syntax-import-attributes" "^7.23.3"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
"@babel/plugin-syntax-json-strings" "^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
@@ -895,104 +911,123 @@
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
"@babel/plugin-syntax-top-level-await" "^7.14.5"
- "@babel/plugin-transform-arrow-functions" "^7.17.12"
- "@babel/plugin-transform-async-to-generator" "^7.17.12"
- "@babel/plugin-transform-block-scoped-functions" "^7.16.7"
- "@babel/plugin-transform-block-scoping" "^7.17.12"
- "@babel/plugin-transform-classes" "^7.17.12"
- "@babel/plugin-transform-computed-properties" "^7.17.12"
- "@babel/plugin-transform-destructuring" "^7.18.0"
- "@babel/plugin-transform-dotall-regex" "^7.16.7"
- "@babel/plugin-transform-duplicate-keys" "^7.17.12"
- "@babel/plugin-transform-exponentiation-operator" "^7.16.7"
- "@babel/plugin-transform-for-of" "^7.18.1"
- "@babel/plugin-transform-function-name" "^7.16.7"
- "@babel/plugin-transform-literals" "^7.17.12"
- "@babel/plugin-transform-member-expression-literals" "^7.16.7"
- "@babel/plugin-transform-modules-amd" "^7.18.0"
- "@babel/plugin-transform-modules-commonjs" "^7.18.2"
- "@babel/plugin-transform-modules-systemjs" "^7.18.0"
- "@babel/plugin-transform-modules-umd" "^7.18.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12"
- "@babel/plugin-transform-new-target" "^7.17.12"
- "@babel/plugin-transform-object-super" "^7.16.7"
- "@babel/plugin-transform-parameters" "^7.17.12"
- "@babel/plugin-transform-property-literals" "^7.16.7"
- "@babel/plugin-transform-regenerator" "^7.18.0"
- "@babel/plugin-transform-reserved-words" "^7.17.12"
- "@babel/plugin-transform-shorthand-properties" "^7.16.7"
- "@babel/plugin-transform-spread" "^7.17.12"
- "@babel/plugin-transform-sticky-regex" "^7.16.7"
- "@babel/plugin-transform-template-literals" "^7.18.2"
- "@babel/plugin-transform-typeof-symbol" "^7.17.12"
- "@babel/plugin-transform-unicode-escapes" "^7.16.7"
- "@babel/plugin-transform-unicode-regex" "^7.16.7"
- "@babel/preset-modules" "^0.1.5"
- "@babel/types" "^7.18.2"
- babel-plugin-polyfill-corejs2 "^0.3.0"
- babel-plugin-polyfill-corejs3 "^0.5.0"
- babel-plugin-polyfill-regenerator "^0.3.0"
- core-js-compat "^3.22.1"
- semver "^6.3.0"
+ "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
+ "@babel/plugin-transform-arrow-functions" "^7.23.3"
+ "@babel/plugin-transform-async-generator-functions" "^7.23.7"
+ "@babel/plugin-transform-async-to-generator" "^7.23.3"
+ "@babel/plugin-transform-block-scoped-functions" "^7.23.3"
+ "@babel/plugin-transform-block-scoping" "^7.23.4"
+ "@babel/plugin-transform-class-properties" "^7.23.3"
+ "@babel/plugin-transform-class-static-block" "^7.23.4"
+ "@babel/plugin-transform-classes" "^7.23.5"
+ "@babel/plugin-transform-computed-properties" "^7.23.3"
+ "@babel/plugin-transform-destructuring" "^7.23.3"
+ "@babel/plugin-transform-dotall-regex" "^7.23.3"
+ "@babel/plugin-transform-duplicate-keys" "^7.23.3"
+ "@babel/plugin-transform-dynamic-import" "^7.23.4"
+ "@babel/plugin-transform-exponentiation-operator" "^7.23.3"
+ "@babel/plugin-transform-export-namespace-from" "^7.23.4"
+ "@babel/plugin-transform-for-of" "^7.23.6"
+ "@babel/plugin-transform-function-name" "^7.23.3"
+ "@babel/plugin-transform-json-strings" "^7.23.4"
+ "@babel/plugin-transform-literals" "^7.23.3"
+ "@babel/plugin-transform-logical-assignment-operators" "^7.23.4"
+ "@babel/plugin-transform-member-expression-literals" "^7.23.3"
+ "@babel/plugin-transform-modules-amd" "^7.23.3"
+ "@babel/plugin-transform-modules-commonjs" "^7.23.3"
+ "@babel/plugin-transform-modules-systemjs" "^7.23.3"
+ "@babel/plugin-transform-modules-umd" "^7.23.3"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5"
+ "@babel/plugin-transform-new-target" "^7.23.3"
+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4"
+ "@babel/plugin-transform-numeric-separator" "^7.23.4"
+ "@babel/plugin-transform-object-rest-spread" "^7.23.4"
+ "@babel/plugin-transform-object-super" "^7.23.3"
+ "@babel/plugin-transform-optional-catch-binding" "^7.23.4"
+ "@babel/plugin-transform-optional-chaining" "^7.23.4"
+ "@babel/plugin-transform-parameters" "^7.23.3"
+ "@babel/plugin-transform-private-methods" "^7.23.3"
+ "@babel/plugin-transform-private-property-in-object" "^7.23.4"
+ "@babel/plugin-transform-property-literals" "^7.23.3"
+ "@babel/plugin-transform-regenerator" "^7.23.3"
+ "@babel/plugin-transform-reserved-words" "^7.23.3"
+ "@babel/plugin-transform-shorthand-properties" "^7.23.3"
+ "@babel/plugin-transform-spread" "^7.23.3"
+ "@babel/plugin-transform-sticky-regex" "^7.23.3"
+ "@babel/plugin-transform-template-literals" "^7.23.3"
+ "@babel/plugin-transform-typeof-symbol" "^7.23.3"
+ "@babel/plugin-transform-unicode-escapes" "^7.23.3"
+ "@babel/plugin-transform-unicode-property-regex" "^7.23.3"
+ "@babel/plugin-transform-unicode-regex" "^7.23.3"
+ "@babel/plugin-transform-unicode-sets-regex" "^7.23.3"
+ "@babel/preset-modules" "0.1.6-no-external-plugins"
+ babel-plugin-polyfill-corejs2 "^0.4.7"
+ babel-plugin-polyfill-corejs3 "^0.8.7"
+ babel-plugin-polyfill-regenerator "^0.5.4"
+ core-js-compat "^3.31.0"
+ semver "^6.3.1"
-"@babel/preset-modules@^0.1.5":
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
- integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==
+"@babel/preset-modules@0.1.6-no-external-plugins":
+ version "0.1.6-no-external-plugins"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a"
+ integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
- "@babel/plugin-transform-dotall-regex" "^7.4.4"
"@babel/types" "^7.4.4"
esutils "^2.0.2"
-"@babel/runtime-corejs3@^7.10.2":
- version "7.10.2"
- resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz#3511797ddf9a3d6f3ce46b99cc835184817eaa4e"
- integrity sha512-+a2M/u7r15o3dV1NEizr9bRi+KUVnrs/qYxF0Z06DAPx/4VCWaz1WA7EcbE+uqGgt39lp5akWGmHsTseIkHkHg==
- dependencies:
- core-js-pure "^3.0.0"
- regenerator-runtime "^0.13.4"
-
-"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.13.10", "@babel/runtime@^7.8.4":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
- integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
- dependencies:
- regenerator-runtime "^0.13.11"
+"@babel/regjsgen@^0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
+ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-"@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.3.3":
- version "7.18.10"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
- integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
+"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.11.2":
+ version "7.23.8"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.8.tgz#b8aa3d47570bdd08fed77fdfd69542118af0df26"
+ integrity sha512-2ZzmcDugdm0/YQKFVYsXiwUN7USPX8PM7cytpb4PFl87fM+qYPSvTZX//8tyeJB1j0YDmafBJEbl5f8NfLyuKw==
dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/parser" "^7.18.10"
- "@babel/types" "^7.18.10"
+ core-js-pure "^3.30.2"
+ regenerator-runtime "^0.14.0"
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.19.0", "@babel/traverse@^7.7.2":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.0.tgz#eb9c561c7360005c592cc645abafe0c3c4548eed"
- integrity sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==
- dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.19.0"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
- "@babel/helper-hoist-variables" "^7.18.6"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.19.0"
- "@babel/types" "^7.19.0"
- debug "^4.1.0"
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.13.10", "@babel/runtime@^7.8.4":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.7.tgz#dd7c88deeb218a0f8bd34d5db1aa242e0f203193"
+ integrity sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
+"@babel/template@^7.22.15", "@babel/template@^7.3.3":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
+ integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ "@babel/parser" "^7.22.15"
+ "@babel/types" "^7.22.15"
+
+"@babel/traverse@^7.16.8", "@babel/traverse@^7.23.7", "@babel/traverse@^7.7.2":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305"
+ integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==
+ dependencies:
+ "@babel/code-frame" "^7.23.5"
+ "@babel/generator" "^7.23.6"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/parser" "^7.23.6"
+ "@babel/types" "^7.23.6"
+ debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.2", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600"
- integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.8", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd"
+ integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==
dependencies:
- "@babel/helper-string-parser" "^7.18.10"
- "@babel/helper-validator-identifier" "^7.18.6"
+ "@babel/helper-string-parser" "^7.23.4"
+ "@babel/helper-validator-identifier" "^7.22.20"
to-fast-properties "^2.0.0"
"@bcoe/v8-coverage@^0.2.3":
@@ -1025,10 +1060,10 @@
resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz#798622546b63847e82389e473fd67f2707d82247"
integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==
-"@cubejs-client/core@^0.34.32":
- version "0.34.32"
- resolved "https://registry.yarnpkg.com/@cubejs-client/core/-/core-0.34.32.tgz#ffcc8efac276578cd3538c2cd29ec9a01a4b64d7"
- integrity sha512-k1vjNbMTbKRHBAtft61LYwIVTLFg1PCXRxn7ip1AUJtrB8Bcs/VvYZmXN1KfvgC+CMVPtpJc6bID4keN6DIVBQ==
+"@cubejs-client/core@^0.34.37":
+ version "0.34.37"
+ resolved "https://registry.yarnpkg.com/@cubejs-client/core/-/core-0.34.37.tgz#f293e2641456f403677306fbacc15f20ebe02ca2"
+ integrity sha512-uOLaDn8Fixpy1e8uBShekxzxArfuGFTuopz8BhSeH//p0spaxSAIj5doUJMxb1ahP30A8HGrjUnq/wXVQuR0gQ==
dependencies:
"@babel/runtime" "^7.1.2"
core-js "^3.6.5"
@@ -1038,12 +1073,12 @@
url-search-params-polyfill "^7.0.0"
uuid "^8.3.2"
-"@cubejs-client/vue@^0.34.32":
- version "0.34.32"
- resolved "https://registry.yarnpkg.com/@cubejs-client/vue/-/vue-0.34.32.tgz#cb1f2314a954ec95213aa1aa238cfc10662fcb57"
- integrity sha512-bATsL5n8qINK1ABu800ehp6J21IOP8N0AoQDAVVcnXp+uLxWvNvnb4+zKOVqOulDiMK4jQgBbyYgamHaa9oKFA==
+"@cubejs-client/vue@^0.34.37":
+ version "0.34.37"
+ resolved "https://registry.yarnpkg.com/@cubejs-client/vue/-/vue-0.34.37.tgz#d6706edcc77db88ba3b98eb9aca60a4c0d7db783"
+ integrity sha512-nUl9obBTdhbsTM4O8NKY7G7SIOkQufE+23tQRcjbsd9faSTtcowaS3VTNNSyDzf2sIes6DaPoXL7g7DNU/s17A==
dependencies:
- "@cubejs-client/core" "^0.34.32"
+ "@cubejs-client/core" "^0.34.37"
core-js "^3.6.5"
ramda "^0.27.2"
@@ -1199,17 +1234,29 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
-"@floating-ui/core@^1.2.6":
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.2.6.tgz#d21ace437cc919cdd8f1640302fa8851e65e75c0"
- integrity sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==
+"@fastify/busboy@^2.0.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff"
+ integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==
-"@floating-ui/dom@1.2.9", "@floating-ui/dom@^1.2.9":
- version "1.2.9"
- resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.2.9.tgz#b9ed1c15d30963419a6736f1b7feb350dd49c603"
- integrity sha512-sosQxsqgxMNkV3C+3UqTS6LxP7isRLwX8WMepp843Rb3/b0Wz8+MdUkxJksByip3C2WwLugLHN1b4ibn//zKwQ==
+"@floating-ui/core@^1.3.1":
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.3.tgz#b6aa0827708d70971c8679a16cf680a515b8a52a"
+ integrity sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==
dependencies:
- "@floating-ui/core" "^1.2.6"
+ "@floating-ui/utils" "^0.2.0"
+
+"@floating-ui/dom@1.4.3", "@floating-ui/dom@^1.2.9":
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.4.3.tgz#0854a3297ea03894932381f3ea1403fab3a6e602"
+ integrity sha512-nB/68NyaQlcdY22L+Fgd1HERQ7UGv7XFN+tPxwrEfQL4nKtAP/jIZnZtpUlXbtV+VEGHh6W/63Gy2C5biWI3sA==
+ dependencies:
+ "@floating-ui/core" "^1.3.1"
+
+"@floating-ui/utils@^0.2.0":
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2"
+ integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==
"@gitlab/application-sdk-browser@^0.2.11":
version "0.2.11"
@@ -1236,10 +1283,10 @@
core-js "^3.29.1"
mitt "^3.0.1"
-"@gitlab/eslint-plugin@19.2.0":
- version "19.2.0"
- resolved "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-19.2.0.tgz#05f07a873af18c85b5668316409cd39256dc141f"
- integrity sha512-6cTJoBHWZriOknaWwLzIpYKVX4ivCzO3MXKfXm310zHmtt1UK7tmq3JsyaS7Niw6/M19C2csgL+LedRJ88uZ0w==
+"@gitlab/eslint-plugin@19.4.0":
+ version "19.4.0"
+ resolved "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-19.4.0.tgz#cffabc4a41a3e15491eaee87f282fef05d244b87"
+ integrity sha512-hFchl6UdzoOTFFiTx8myoJxe5SZ43LeC/+Er9tmIZ8HX3OZ6SFHTHaz61g2g4vvcwVHDMaAd5ncB6RCshlgv2A==
dependencies:
eslint-config-airbnb-base "^15.0.0"
eslint-config-prettier "^6.10.0"
@@ -1269,17 +1316,17 @@
stylelint-declaration-strict-value "1.9.2"
stylelint-scss "5.1.0"
-"@gitlab/svgs@3.72.0":
- version "3.72.0"
- resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.72.0.tgz#5daaa7366913b52ea89439305067e030f967c8a5"
- integrity sha512-VbSdwXxu9Y6NAXNFTROjZa83e2b8QeDAO7byqjJ0z+2Y3gGGXdw+HclAzz0Ns8B0+DMV5mV7dtmTlv/1xAXXYQ==
+"@gitlab/svgs@3.75.0":
+ version "3.75.0"
+ resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.75.0.tgz#31e4a3ab66cab3e405c4cff1f065ee3924fe7a98"
+ integrity sha512-TAmlxByyZcZvr/hxipfI53XLNlzpVZCf5izRdoIhR4QFHjZ56HIwQfoVCGYRNLDV8eTnO4ljNBFLZCfyipdPoQ==
-"@gitlab/ui@^72.0.0":
- version "72.0.0"
- resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-72.0.0.tgz#e29a9893f40bfb779b74c7ad6c2aa638dba7a267"
- integrity sha512-OnPWWrXDFAAzXeW0COmQpcJ+6eslAb8RGp25yU0nAgF1P60DzDG/SAEWZB+X0+VSa0p6is7UhWf+XDHfEIW0ow==
+"@gitlab/ui@^72.5.1":
+ version "72.5.1"
+ resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-72.5.1.tgz#8f0ea0cabaa4be41dbf5f78b18f635117ebd41de"
+ integrity sha512-KhagcFu6RXDCweybecwBbx3Q3DvO26hkRj32jFsGA8H4TJ/5VLZC8Gwct7+IrtuYWijprzRKoAaoeXkrCcBdbw==
dependencies:
- "@floating-ui/dom" "1.2.9"
+ "@floating-ui/dom" "1.4.3"
bootstrap-vue "2.23.1"
echarts "^5.3.2"
iframe-resizer "^4.3.2"
@@ -1730,37 +1777,37 @@
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
-"@jridgewell/gen-mapping@^0.3.2":
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
- integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
+"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
+ integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
dependencies:
"@jridgewell/set-array" "^1.0.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
-"@jridgewell/resolve-uri@^3.0.3":
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c"
- integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==
+"@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+ integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
"@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
-"@jridgewell/sourcemap-codec@^1.4.10":
- version "1.4.11"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec"
- integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
-"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9":
- version "0.3.15"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
- integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.20"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f"
+ integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==
dependencies:
- "@jridgewell/resolve-uri" "^3.0.3"
- "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
"@jsdevtools/ono@^7.1.3":
version "7.1.3"
@@ -1896,10 +1943,10 @@
dependencies:
type-fest "^2.0.0"
-"@rollup/plugin-graphql@^2.0.3":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@rollup/plugin-graphql/-/plugin-graphql-2.0.3.tgz#35fea077e225e2982ce8483dd6c381e8cca03aea"
- integrity sha512-IuuELo+0t29adRuLVg8izBFiUXFSFw8BmezespscynRfvfXSOV0S7g8RzQt75VzP6KHHVmNmlAgz+8qlkLur3w==
+"@rollup/plugin-graphql@^2.0.4":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-graphql/-/plugin-graphql-2.0.4.tgz#240aee16b4be10f3e9f879b6146af689cc10e07c"
+ integrity sha512-TfaqbbK71VHodCDCoRbPnv2+Tsnlvad2OsGEviURHFl+ZBUyf5wfXgXc9RqZ+xKxSl87Z3YbPhD0z6eWYjuByw==
dependencies:
"@rollup/pluginutils" "^5.0.1"
graphql-tag "^2.12.6"
@@ -1973,14 +2020,23 @@
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.1.tgz#8311b77e6cce322865ba12ada8c3779369610d18"
integrity sha512-eAhItDX9yQtZVM3yvXS/VR3qPqcnXvnLyx1pLXl4JzyNMBNO3KC986t/iAg2zcMzpAp9JSvxB5VZGnBiNoA98w==
-"@sentry-internal/tracing@7.81.1":
- version "7.81.1"
- resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.81.1.tgz#1180365cd8a9e18cb0f92e1ea970161840ec0e2e"
- integrity sha512-E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg==
+"@sentry-internal/feedback@7.88.0":
+ version "7.88.0"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-7.88.0.tgz#fa4db4a27d1fa7fe51dc67af185b13519d7fbc76"
+ integrity sha512-lbK6jgO1I0M96nZQ99mcLSZ55ebwPAP6LhEWhkmc+eAfy97VpiY+qsbmgsmOzCEPqMmEUCEcI0rEZ7fiye2v2Q==
dependencies:
- "@sentry/core" "7.81.1"
- "@sentry/types" "7.81.1"
- "@sentry/utils" "7.81.1"
+ "@sentry/core" "7.88.0"
+ "@sentry/types" "7.88.0"
+ "@sentry/utils" "7.88.0"
+
+"@sentry-internal/tracing@7.88.0":
+ version "7.88.0"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.88.0.tgz#c820bde835c4af576781f8b818eed5085e417927"
+ integrity sha512-xXQdcYhsS+ourzJHjXNjZC9zakuc97udmpgaXRjEP7FjPYclIx+YXwgFBdHM2kzAwZLFOsEce5dr46GVXUDfZw==
+ dependencies:
+ "@sentry/core" "7.88.0"
+ "@sentry/types" "7.88.0"
+ "@sentry/utils" "7.88.0"
"@sentry/core@5.30.0":
version "5.30.0"
@@ -1993,13 +2049,13 @@
"@sentry/utils" "5.30.0"
tslib "^1.9.3"
-"@sentry/core@7.81.1":
- version "7.81.1"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.81.1.tgz#082fd9122bf9a488c8e05b1754724ddbc2d5cf30"
- integrity sha512-tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q==
+"@sentry/core@7.88.0":
+ version "7.88.0"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.88.0.tgz#46f1526e9b98de96a0e93fd69917a990db5d5a37"
+ integrity sha512-Jzbb7dcwiCO7kI0a1w+32UzWxbEn2OcZWzp55QMEeAh6nZ/5CXhXwpuHi0tW7doPj+cJdmxMTMu9LqMVfdGkzQ==
dependencies:
- "@sentry/types" "7.81.1"
- "@sentry/utils" "7.81.1"
+ "@sentry/types" "7.88.0"
+ "@sentry/utils" "7.88.0"
"@sentry/hub@5.30.0":
version "5.30.0"
@@ -2019,25 +2075,25 @@
"@sentry/types" "5.30.0"
tslib "^1.9.3"
-"@sentry/replay@7.81.1":
- version "7.81.1"
- resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.81.1.tgz#a656d55e2a00b34e42be6eeb79018d21efc223af"
- integrity sha512-4ueT0C4bYjngN/9p0fEYH10dTMLovHyk9HxJ6zSTgePvGVexhg+cSEHXisoBDwHeRZVnbIvsVM0NA7rmEDXJJw==
+"@sentry/replay@7.88.0":
+ version "7.88.0"
+ resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.88.0.tgz#a9158af527db0cce91659f9a87b938040c21fdaa"
+ integrity sha512-em5dPKLPG7c/HGDbpIj3aHrWbA4iMwqjevqTzn+++KNO1YslkOosCaGsb1whU3AL1T9c3aIFIhZ4u3rNo+DxcA==
dependencies:
- "@sentry-internal/tracing" "7.81.1"
- "@sentry/core" "7.81.1"
- "@sentry/types" "7.81.1"
- "@sentry/utils" "7.81.1"
+ "@sentry-internal/tracing" "7.88.0"
+ "@sentry/core" "7.88.0"
+ "@sentry/types" "7.88.0"
+ "@sentry/utils" "7.88.0"
"@sentry/types@5.30.0":
version "5.30.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402"
integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==
-"@sentry/types@7.81.1":
- version "7.81.1"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.81.1.tgz#2b2551fc291e1089651fd574a68f7c4175878bd5"
- integrity sha512-dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw==
+"@sentry/types@7.88.0":
+ version "7.88.0"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.88.0.tgz#b3a09733a7bfad3634687b77764c5767d646d6e7"
+ integrity sha512-FvwvmX1pWAZKicPj4EpKyho8Wm+C4+r5LiepbbBF8oKwSPJdD2QV1fo/LWxsrzNxWOllFIVIXF5Ed3nPYQWpTw==
"@sentry/utils@5.30.0":
version "5.30.0"
@@ -2047,12 +2103,12 @@
"@sentry/types" "5.30.0"
tslib "^1.9.3"
-"@sentry/utils@7.81.1":
- version "7.81.1"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.81.1.tgz#42f3e77baf90205cec1f8599eb8445a6918030bd"
- integrity sha512-gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg==
+"@sentry/utils@7.88.0":
+ version "7.88.0"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.88.0.tgz#704e79f14047080564c3e5231028f1cef8824e9f"
+ integrity sha512-ukminfRmdBXTzk49orwJf3Lu3hR60ZRHjE2a4IXwYhyDT6JJgJqgsq1hzGXx0AyFfyS4WhfZ6QUBy7fu3BScZQ==
dependencies:
- "@sentry/types" "7.81.1"
+ "@sentry/types" "7.88.0"
"@sinclair/typebox@^0.24.1":
version "0.24.40"
@@ -2181,10 +2237,10 @@
tslib "^2.3.1"
uuid "^3.4.0"
-"@sourcegraph/code-host-integration@0.0.91":
- version "0.0.91"
- resolved "https://registry.yarnpkg.com/@sourcegraph/code-host-integration/-/code-host-integration-0.0.91.tgz#2d284ea2ea1023fb3cdaac9aa61a86322d6801ff"
- integrity sha512-sC/q64XUDZWoxyAkzpxaw5u2BFNDiPp9K4PybTJFRW1e3VQwul2/iXcUvMf1RzQv4AkQWO8uLeHHG0wRGfCPcA==
+"@sourcegraph/code-host-integration@0.0.95":
+ version "0.0.95"
+ resolved "https://registry.yarnpkg.com/@sourcegraph/code-host-integration/-/code-host-integration-0.0.95.tgz#269f3606040b6e598de28a1bdd57a9ba7c430766"
+ integrity sha512-oMFI2k3KDqqrNEh8/1zwqCPAqV1xFtDmBVKA8U2R+upGLl60cSxWKqGA/8XBESEKb9EiOO9a3yATr/KfQGwAxA==
"@testing-library/dom@^7.16.2":
version "7.24.5"
@@ -2199,181 +2255,181 @@
dom-accessibility-api "^0.5.1"
pretty-format "^26.4.2"
-"@tiptap/core@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.1.13.tgz#e21f566e81688c826c6f26d2940886734189e193"
- integrity sha512-cMC8bgTN63dj1Mv82iDeeLl6sa9kY0Pug8LSalxVEptRmyFVsVxGgu2/6Y3T+9aCYScxfS06EkA8SdzFMAwYTQ==
+"@tiptap/core@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.1.14.tgz#c30d2227891554c0ad1038d84b0f0c44deebf77b"
+ integrity sha512-X8FWXWhxrOklNEdhDkSa4PekF3BwGjDfhq7Es95OrdJ3vZ1a5lkbCdx4jXErsX1C4TaIs7cI3tqdflTXhqjLmg==
-"@tiptap/extension-blockquote@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.1.13.tgz#abf01e3a00d72434b08be7f3d7e318c7320db486"
- integrity sha512-oe6wSQACmODugoP9XH3Ouffjy4BsOBWfTC+dETHNCG6ZED6ShHN3CB9Vr7EwwRgmm2WLaKAjMO1sVumwH+Z1rg==
+"@tiptap/extension-blockquote@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.1.14.tgz#3c5decf6316ea1d299330f33e77d36047aa8ec54"
+ integrity sha512-hslTfGzlC52lq3EGaxl1V8tGFsnjGLIlYr5SGJzPYwQcr2WHU/WJZli66HB+8N2o+ox5Cp4gQRNDUd9XsfxChg==
-"@tiptap/extension-bold@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.1.13.tgz#fb0c8916269be61269e4aef9d1da417daf52b7f1"
- integrity sha512-6cHsQTh/rUiG4jkbJer3vk7g60I5tBwEBSGpdxmEHh83RsvevD8+n92PjA24hYYte5RNlATB011E1wu8PVhSvw==
+"@tiptap/extension-bold@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.1.14.tgz#9a0d0274bd0569d5ed37720554264f2a7d3d8bac"
+ integrity sha512-LeIRHjc6LsZ4JVuvbrb2U18IHvaYwP4+O6lIG2riTmvuqhc1UL2dKeG8X13xfk7OttA89Vkkb/XdjzQvcT1I0Q==
-"@tiptap/extension-bubble-menu@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.13.tgz#884cd2e4e0c9586998baac3d0a14621b177f1859"
- integrity sha512-Hm7e1GX3AI6lfaUmr6WqsS9MMyXIzCkhh+VQi6K8jj4Q4s8kY4KPoAyD/c3v9pZ/dieUtm2TfqrOCkbHzsJQBg==
+"@tiptap/extension-bubble-menu@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.14.tgz#6a23066934969fc89d2cd8b3b3932e1364712ee9"
+ integrity sha512-9+KsP2rCVymlSKXx7BhPF9xy7dj2/G7auu7qZ4AJzEbsLj1PMS8/pSjPUabCIN6z+9IeifOa2VKmXCnVfcpazw==
dependencies:
tippy.js "^6.3.7"
-"@tiptap/extension-bullet-list@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.13.tgz#0a26731ebf98ddfd268884ff1712f7189be7b63c"
- integrity sha512-NkWlQ5bLPUlcROj6G/d4oqAxMf3j3wfndGOPp0z8OoXJtVbVoXl/aMSlLbVgE6n8r6CS8MYxKhXNxrb7Ll2foA==
-
-"@tiptap/extension-code-block-lowlight@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.1.13.tgz#91110f44d6cc8a12d95ac92aee0c848fdedefb0d"
- integrity sha512-PlU0lzAEbUGqPykl7fYqlAiY7/zFRtQExsbrpi2kctSIzxC+jgMM4vEpWxLS4jZEXl7jVHvBRH6lRNINDHWmQA==
-
-"@tiptap/extension-code-block@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.1.13.tgz#3e441d171d3ed821e67291dbf4cbad7e2ea29809"
- integrity sha512-E3tweNExPOV+t1ODKX0MDVsS0aeHGWc1ECt+uyp6XwzsN0bdF2A5+pttQqM7sTcMnQkVACGFbn9wDeLRRcfyQg==
-
-"@tiptap/extension-code@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.1.13.tgz#27a5ca5705e59ca97390fad4d6631bf431690480"
- integrity sha512-f5fLYlSgliVVa44vd7lQGvo49+peC+Z2H0Fn84TKNCH7tkNZzouoJsHYn0/enLaQ9Sq+24YPfqulfiwlxyiT8w==
-
-"@tiptap/extension-document@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.1.13.tgz#5b68fa08e8a79eebd41f1360982db2ddd28ad010"
- integrity sha512-wLwiTWsVmZTGIE5duTcHRmW4ulVxNW4nmgfpk95+mPn1iKyNGtrVhGWleLhBlTj+DWXDtcfNWZgqZkZNzhkqYQ==
-
-"@tiptap/extension-dropcursor@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.13.tgz#2e8908f2dec9e8e997a2f216a11d3b915fe062df"
- integrity sha512-NAyJi4BJxH7vl/2LNS1X0ndwFKjEtX+cRgshXCnMyh7qNpIRW6Plczapc/W1OiMncOEhZJfpZfkRSfwG01FWFg==
-
-"@tiptap/extension-floating-menu@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.13.tgz#e12e6e73ee095319d4a723a9b46b8f7b1a9f4b1a"
- integrity sha512-9Oz7pk1Nts2+EyY+rYfnREGbLzQ5UFazAvRhF6zAJdvyuDmAYm0Jp6s0GoTrpV0/dJEISoFaNpPdMJOb9EBNRw==
+"@tiptap/extension-bullet-list@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.14.tgz#0e7f07c0f8f51de8378fdea49e7c9626ebb1ffcd"
+ integrity sha512-dbnYDGNkbtFaCQIqNsOD9cc2JewN4Ref3Qq0NrVoh+MbbX2oJN2vA8rrKmEv1GhxDjtvaj2RiH1ki5XW3P98UQ==
+
+"@tiptap/extension-code-block-lowlight@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.1.14.tgz#f7b9bd0b6a2d6bbbfd2a10d2192831584e132d41"
+ integrity sha512-FSO8LRt2Ja8d/WQ340z1gW4AUKBECJHxw08ADV0mJpjY+6NnfOID1lqL02Gy15CjO/amccE1DqPHGlcC39WU+Q==
+
+"@tiptap/extension-code-block@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.1.14.tgz#5220bd76d0e957e59898ef145142394dbfd58124"
+ integrity sha512-D+F+bGrmbXzIkZuKUaM5fhJHVoUmDyTdWCqOMOzG5t53GgMDdLQF7LTzOGC2iAVu0CtAxhUEsoIlzPBdV2FKrA==
+
+"@tiptap/extension-code@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.1.14.tgz#1e62e5e138981b26675a1e2a7d6f446b99727a82"
+ integrity sha512-7fuDW0+nyzxTlGEdkkrGMkz5b90xAvZq7EPnta13Px7FsSy771dpbWer7xMbpWGh7VYxOG6qpWJouLLrx2FKyQ==
+
+"@tiptap/extension-document@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.1.14.tgz#9b5234a7881f8ef222924a67ef771a2bfff8a75e"
+ integrity sha512-plOcTQBCysUyz8AXrkBhhAqa+ALyeGJPOku0L3lS6MCSAPM2/KRW/H4KXcrfW0G1lHKiJ4OkP8oHksxa6Id5zg==
+
+"@tiptap/extension-dropcursor@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.14.tgz#a6f2df2a36a5457a3afff3c933b5328147be8f80"
+ integrity sha512-ZupJ/3ukcuFK/HhWbD7vuEKt10RC1/Jbk8O+HHcAWftAghsXNAnCsKWhJhAs/MvvoBFQEkmVOdPXvQsDXbbCMw==
+
+"@tiptap/extension-floating-menu@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.14.tgz#13f9e6cf62bfc3bec5e05e2bac0f6a1f66a909bf"
+ integrity sha512-o/yNaZ+ntMBCjFL95JyX6LoVb8fsrx0IsnlNtnGUVr8mpOg2JyeN2ZJpUhPo2aR7QuyfdR1XsGG4TRHJBp3fGg==
dependencies:
tippy.js "^6.3.7"
-"@tiptap/extension-gapcursor@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.13.tgz#994a54e1d4106dfaede0acce184c48457ab34450"
- integrity sha512-Cl5apsoTcyPPCgE3ThufxQxZ1wyqqh+9uxUN9VF9AbeTkid6oPZvKXwaILf6AFnkSy+SuKrb9kZD2iaezxpzXw==
-
-"@tiptap/extension-hard-break@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.1.13.tgz#fc84d0ff7e2fe861bf421bc8000194ecc26979b0"
- integrity sha512-TGkMzMQayuKg+vN4du0x1ahEItBLcCT1jdWeRsjdM8gHfzbPLdo4PQhVsvm1I0xaZmbJZelhnVsUwRZcIu1WNA==
-
-"@tiptap/extension-heading@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.1.13.tgz#94a6219448d97ffed0915fa1bf411074c39f4103"
- integrity sha512-PEmc19QLmlVUTiHWoF0hpgNTNPNU0nlaFmMKskzO+cx5Df4xvHmv/UqoIwp7/UFbPMkfVJT1ozQU7oD1IWn9Hg==
-
-"@tiptap/extension-highlight@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.1.13.tgz#d30221c178569264ab76327f87a0d81605493fcc"
- integrity sha512-ZivjJma5WwPYcG0rpnynVDGis32OGdtpTwETEb+2OOjZBCBlyYQ4tcRk5gS3nzBAjLl/Qu84VVbawLhHXB6few==
-
-"@tiptap/extension-history@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.1.13.tgz#50478c602143fa77bb3b45c9c9cae4ddb743e0ed"
- integrity sha512-1ouitThGTBUObqw250aDwGLMNESBH5PRXIGybsCFO1bktdmWtEw7m72WY41EuX2BH8iKJpcYPerl3HfY1vmCNw==
-
-"@tiptap/extension-horizontal-rule@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.13.tgz#4884dbf912c8dabbbc69e041ff5529d6337e638e"
- integrity sha512-7OgjgNqZXvBejgULNdMSma2M1nzv4bbZG+FT5XMFZmEOxR9IB1x/RzChjPdeicff2ZK2sfhMBc4Y9femF5XkUg==
-
-"@tiptap/extension-image@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.1.13.tgz#835fc6759b2c1184fb54d3704c538029d523dbf6"
- integrity sha512-7oVAos+BU4KR/zQsfltrd8hgIxKxyxZ19dhwb1BJI2Nt3Mnx+yFPRlRSehID6RT9dYqgW4UW5d6vh/3HQcYYYw==
-
-"@tiptap/extension-italic@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.1.13.tgz#1e9521dea002c8d6de833d9fd928d4617623eab8"
- integrity sha512-HyDJfuDn5hzwGKZiANcvgz6wcum6bEgb4wmJnfej8XanTMJatNVv63TVxCJ10dSc9KGpPVcIkg6W8/joNXIEbw==
-
-"@tiptap/extension-link@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.1.13.tgz#ae4abd7c43292e3a1841488bfc7a687b2f014249"
- integrity sha512-wuGMf3zRtMHhMrKm9l6Tft5M2N21Z0UP1dZ5t1IlOAvOeYV2QZ5UynwFryxGKLO0NslCBLF/4b/HAdNXbfXWUA==
+"@tiptap/extension-gapcursor@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.14.tgz#fe36282b66f3652c5f7c2d5031b651b2db2a8898"
+ integrity sha512-wTT8k3msIUBIj3k28ZB8IUdI4zjnkiYGTqzNXud01hLsPuQWkPerW/LqqiyKfsGKSIJa/l8x4ZzUgJv3ciO9YQ==
+
+"@tiptap/extension-hard-break@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.1.14.tgz#47eea3742a879bf7849377ffdb3549fddffa4474"
+ integrity sha512-Nv6JS1dmPiiWDJAcdb6nGns7vD65Gqbqxh/RQeT172G2yXu5TD8EJa0OiEhd1sMcEg7OXbHMLtkDzx57mEuZ7Q==
+
+"@tiptap/extension-heading@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.1.14.tgz#868dd4eff41480d31c0cbab04d6d14a682318259"
+ integrity sha512-x/AMzMANLvgbuwx4qe848WxF5W1Yq4bUjsduSu/5jonpH2sR5AFsH5VbWS8lfT34OdOI0Gs7p+k2NNuykWDPQA==
+
+"@tiptap/extension-highlight@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.1.14.tgz#ce427a031561e8e89436db0dec969cc9ea1c02af"
+ integrity sha512-TU12/Hw5FBZuk1/j06UqNVx91Hms0XEEgtz3tOwyWrxbOe4hXILNedzrz3aNoTcLJoqOVefw+VBQLcsK0Ztw/Q==
+
+"@tiptap/extension-history@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.1.14.tgz#06863c38511d39d309003f8cc187d38fa800dbe5"
+ integrity sha512-DN9QeiEv/Y3cCOHVH+/0M18btg7Gebhw7ooT0afanyHS/a5aV/IsgDnw6YRHaMfLUgDD7toOSSbjgGYWZX307w==
+
+"@tiptap/extension-horizontal-rule@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.14.tgz#23c4ffad88b8554e280344d70592bcd6702215fd"
+ integrity sha512-n5vNE4rTA3zfLhe0p3k38IJGtEWfvr2QIp5lQuw4/i5TcOrnpfryJwA9tLDTgAdcyvTTGJH5jAXWw9ENxBexQg==
+
+"@tiptap/extension-image@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.1.14.tgz#5e5b662afd35d6a41ce9fb1fee72da8e3318e2d9"
+ integrity sha512-EDwbvBIpyJJDAtIlNNBDPtIIAi0GKEAOcqyB7G0tomyho6QUaO2yFtB37t7OAbM+CQiTBtO2AuJhOYr3354V4A==
+
+"@tiptap/extension-italic@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.1.14.tgz#2542ee68202307ed01bd5e10b65650e99b6efa4f"
+ integrity sha512-K+n2ts26HNatX3FZ2pYJTFDuMypDyMP4jQ3T11cU908lUT8gHXHBcgh0OW83SX92asbWxUj8xEdDZczi7Qqbew==
+
+"@tiptap/extension-link@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.1.14.tgz#aa850dddfaec14afe99bd3ba6695d515eecadc92"
+ integrity sha512-lfZIBaGGWJaX9tZIsAq5WuWk1cIQVM3takU4F5485eN8aM7Nnw/+Se8uSPZeh3rCbiNg5EeGi/eLEZv/L/TLGQ==
dependencies:
linkifyjs "^4.1.0"
-"@tiptap/extension-list-item@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.1.13.tgz#3c62127df97974f3196866ec00ee397f4c9acdc4"
- integrity sha512-6e8iiCWXOiJTl1XOwVW2tc0YG18h70HUtEHFCx2m5HspOGFKsFEaSS3qYxOheM9HxlmQeDt8mTtqftRjEFRxPQ==
-
-"@tiptap/extension-ordered-list@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.13.tgz#31f4b3a21fbcc2f605c48662e08b5253a304c8c7"
- integrity sha512-UO4ZAL5Vrr1WwER5VjgmeNIWHpqy9cnIRo1En07gZ0OWTjs1eITPcu+4TCn1ZG6DhoFvAQzE5DTxxdhIotg+qw==
-
-"@tiptap/extension-paragraph@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.1.13.tgz#30f8ae3f8833c606b339f3554b9ffdbe1e604463"
- integrity sha512-cEoZBJrsQn69FPpUMePXG/ltGXtqKISgypj70PEHXt5meKDjpmMVSY4/8cXvFYEYsI9GvIwyAK0OrfAHiSoROA==
-
-"@tiptap/extension-strike@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.1.13.tgz#6605792fa98f0e36861be4c7ed4d4125de8c77aa"
- integrity sha512-VN6zlaCNCbyJUCDyBFxavw19XmQ4LkCh8n20M8huNqW77lDGXA2A7UcWLHaNBpqAijBRu9mWI8l4Bftyf2fcAw==
-
-"@tiptap/extension-subscript@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-subscript/-/extension-subscript-2.1.13.tgz#4363473b760ba3805d6e5e4bd45e63dcc7099f56"
- integrity sha512-+kqK0P669Dsl/7IPSQNM/bN35Er45MKtHn8eQmudcLpFmBTsL6DlxG/080/Lqr49a6OLcefQfLaENz+QQVfBag==
-
-"@tiptap/extension-superscript@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-superscript/-/extension-superscript-2.1.13.tgz#c508ef30340457f362b9d179a5aa65f619df134a"
- integrity sha512-wZr9Ls7YYvzbVInBqqpQkn+/YwG3b78Rg3U1TldCcbg0IprwFyPsFHvu0NZnqYEG4MHhaF3F1sZRtPdZ0hDy8g==
-
-"@tiptap/extension-table-cell@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.1.13.tgz#28efbc99480d53346200dcbf50cfb32bade180d1"
- integrity sha512-30pyVt2PxGAk8jmsXKxDheql8K/xIRA9FiDo++kS2Kr6Y7I42/kNPQttJ2W+Q1JdRJvedNfQtziQfKWDRLLCNA==
-
-"@tiptap/extension-table-header@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.1.13.tgz#8d64a0e5a6a5ea128708b866e56a0e04e34d7a5b"
- integrity sha512-FwIV5iso5kmpu01QyvrPCjJqZfqxRTjtjMsDyut2uIgx9v5TXk0V5XvMWobx435ANIDJoGTYCMRlIqcgtyqwAQ==
-
-"@tiptap/extension-table-row@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.1.13.tgz#ef75d6de9c7695bbb90f745aabd72d327f161ac3"
- integrity sha512-27Mb9/oYbiLd+/BUFMhQzRIqMd2Z5j1BZMYsktwtDG8vGdYVlaW257UVaoNR9TmiXyIzd3Dh1mOil8G35+HRHg==
-
-"@tiptap/extension-table@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.1.13.tgz#cfe3fc2665d12d2c946fc83b2cce9d1485ff29a0"
- integrity sha512-yMWt2LqotOsWJhLwFNo8fyTwJNLPtnk+eCUxKLlMXP23mJ/lpF+jvTihhHVVic5GqV9vLYZFU2Tn+5k/Vd5P1w==
-
-"@tiptap/extension-task-item@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-task-item/-/extension-task-item-2.1.13.tgz#f049b774f8151b9568d7afbbb5b8fbcb30f35755"
- integrity sha512-0E1woY0BXpv0SBOGPl5Cmo2RuH+Zchn7dYcTILtOsqHu6onJ4eP0N76+jGFLGV3T0PnPf7JDuwsO/B6pC7yMSg==
-
-"@tiptap/extension-task-list@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-task-list/-/extension-task-list-2.1.13.tgz#1a1c40f5886111a1a74386637e7bd0c4ca4158d9"
- integrity sha512-WfTo4KN0PqpmZxx23rak08M7flfBhv9IcPVpuJ4JthZOlexYdOZxaE/Yd4vlqZhq6cibG7CFljp8VzkfTUa1Ew==
-
-"@tiptap/extension-text@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.1.13.tgz#ac17a0220aef1bae1bbd646a91491353e57bb5d1"
- integrity sha512-zzsTTvu5U67a8WjImi6DrmpX2Q/onLSaj+LRWPh36A1Pz2WaxW5asZgaS+xWCnR+UrozlCALWa01r7uv69jq0w==
-
-"@tiptap/pm@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.1.13.tgz#857753691580be760da13629fab2712c52750741"
- integrity sha512-zNbA7muWsHuVg12GrTgN/j119rLePPq5M8dZgkKxUwdw8VmU3eUyBp1SihPEXJ2U0MGdZhNhFX7Y74g11u66sg==
+"@tiptap/extension-list-item@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.1.14.tgz#f17c3b9cff2a710c3307c0298261c81f2a5d7cdd"
+ integrity sha512-MpOCf0QnbW0qxW4dB7JRMX7qGortjY8QRl1WBmUGBBN54Q712nfgmUmNJmzNYfRU91PN0afdBVibUSchB4LP3Q==
+
+"@tiptap/extension-ordered-list@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.14.tgz#61d198f146d9c71b3809398263b4093616b2e545"
+ integrity sha512-XwARMGQbTbBOOvG62T4yH2g8OeoLYVaNTKRbiuhIzYekAN/elnydQahcjjE9/Y2Zq54g0nPdgh0LvsjWNWxr8Q==
+
+"@tiptap/extension-paragraph@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.1.14.tgz#ec993235ac4ceca5026c0e821d2d72e9d5e3c4f9"
+ integrity sha512-iWD1nfMvADrx2pwxlQXu2PDnNghhU2EvAOmNOzGOEzkTaELkPR4CDyr/wEi1ewS9dNhhO8EpP8IYVXzd01r8JA==
+
+"@tiptap/extension-strike@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.1.14.tgz#8a94de5ec6bf726ff0ef73f998bad9d863d3a65d"
+ integrity sha512-AcFiyUc2eiL3TM5flvExIi+LjukaGzSKGGuLH1Q9e7T4GkfZu7FaSzjP1+2kvgwGAMJxgm5Ybzvugcf9rrNosA==
+
+"@tiptap/extension-subscript@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-subscript/-/extension-subscript-2.1.14.tgz#c6796abbb9d1654e8ab12c1b97354aac85754695"
+ integrity sha512-HYKqCkP4ncbHJFXxqafZUUHdL8raKqaw/DJ8Ogmk8luOqaFjgOGcgFRhtWyXCbv/BJCL42/0IGeoM5D4aRo/gg==
+
+"@tiptap/extension-superscript@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-superscript/-/extension-superscript-2.1.14.tgz#1ce5646d5c5a2bbf009c563de14cdf879156811a"
+ integrity sha512-L44OToFzSULAM+8wfbDa2oW7fekNvsZXn081x2EcF8lTjJXDfK+3nViNfoSY7OAoZKEIF6HTYOPwFmiDM+ZZXg==
+
+"@tiptap/extension-table-cell@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.1.14.tgz#fddcb425485e9b28ffa9873e79e27dde5ce0bf44"
+ integrity sha512-4cnT35wA/O33H/UTOJUiZJFe0QjHfz8vOVjvkbeYOxcuo5Ww0Ro1D6RWU70fdAdkFccFJZ5UtqG9RcZi+JkNWA==
+
+"@tiptap/extension-table-header@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.1.14.tgz#540cc2a7312f5bd6b13076eea11be608555dfacc"
+ integrity sha512-hg57IePDTGcr9GEFY5g201DreuXv3MZYp6TjqDGF/O48Yy2v22X+Baaa/SyW9WKPLPInAXBp2f8/2YSBKTuwLg==
+
+"@tiptap/extension-table-row@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.1.14.tgz#42968b0eca9f45f646d5c922818590d1365271b2"
+ integrity sha512-TE1qLztFerqKbm+ZkR+4tN24ZI6EFB99bYQ7QUaw5v1ioyL4QfDny2vSePKmjNObmgmFNl8I4hBqpuzYq9CzhQ==
+
+"@tiptap/extension-table@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.1.14.tgz#c50e403c43fa5623088cf5a2cdf11adf180c63d8"
+ integrity sha512-e/idEukzXSThGKyRHxIaK3zqwLCaZMvm0Xcv2D8X2rnQTRIWr4ZR1+zCgwysFAUT26aDYfMUfmx2kAmuNNdLsg==
+
+"@tiptap/extension-task-item@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-task-item/-/extension-task-item-2.1.14.tgz#6e30bf3e02885e3fa978a94d83c92c80d47d1dc2"
+ integrity sha512-P5/Z1cARREnvpFa3gGvFMUm++OJ4RBS/9NVfwKmfg4Y71/0ZbLpaYrq4TKSa8Zg/lR1Ybx7Y1T9agmDu5D5S1g==
+
+"@tiptap/extension-task-list@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-task-list/-/extension-task-list-2.1.14.tgz#4c6d12c9d45673bc0dd4e32031b4afa1fe041049"
+ integrity sha512-yI5vd6L0UC0aJvujjmzCnYfx9K8FExI/kVHd/+AlxGQwG90+XAfj6Tw93GyIu7DhGRq/Goek1Mt+RC09sw4AHQ==
+
+"@tiptap/extension-text@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.1.14.tgz#a781c68fe348bdd08730e727f2380295dc190260"
+ integrity sha512-Z5g+SlWqnK2loIwqkg2LzsVKVCiMyUfDD8IhNJsny0BRbWKFs4SKPCkAcyCxLK2h8Jm/BG6PyfGHsF/2wx7I3Q==
+
+"@tiptap/pm@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.1.14.tgz#b504120adfa428e4eb0526d5ea2b4ba5ed55400b"
+ integrity sha512-UuHqLDFPEPVLk4iopdHFpnn9KPNmbwQ8M0lnDRK1a9ZBheQpdTj6mQYFteYGKdqJpfcbhLHvmYl8nthfzlXGYw==
dependencies:
prosemirror-changeset "^2.2.0"
prosemirror-collab "^1.3.0"
@@ -2394,18 +2450,18 @@
prosemirror-transform "^1.7.0"
prosemirror-view "^1.28.2"
-"@tiptap/suggestion@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.1.13.tgz#0a8317260baed764a523a09099c0889a0e5b507e"
- integrity sha512-Y05TsiXTFAJ5SrfoV+21MAxig5UNbY0AVa03lQlh/yicTRPpIc6hgZzblB0uxDSYoj6+kaHE4MIZvPvhUD8BJQ==
+"@tiptap/suggestion@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.1.14.tgz#baae04da4cb1cb9431f85cc90456185851d5b167"
+ integrity sha512-8jx+RYY4cZ3ZFmHDm4fPhHN6N8fwIgFnB6iBTbEh5Ra+0Bvh1q+Ek21+Ni92ORjmYz9Vy1e5xxJMyGNywRS5dw==
-"@tiptap/vue-2@^2.1.13":
- version "2.1.13"
- resolved "https://registry.yarnpkg.com/@tiptap/vue-2/-/vue-2-2.1.13.tgz#e84c144fa36f79c36db3cf6913aef197002bd298"
- integrity sha512-OsCINarPGyT3sDIXDrhVyaoH0I0VxeDDm+NgS5P0fPbBCnsHZ8csvxD9UB9/KZ/UoxYDfJ1zLplKQn1AIlnRzg==
+"@tiptap/vue-2@^2.1.14":
+ version "2.1.14"
+ resolved "https://registry.yarnpkg.com/@tiptap/vue-2/-/vue-2-2.1.14.tgz#59acb020a0ace9946d6f78572ae8a7629826b934"
+ integrity sha512-7kisS73LLnFlmRe0T7o/FBlZghaBsZDty1qfAuS+TrhgW1o5wvCtm8Ogoomai2ExWK6Lh8k7E3nc2lDS03s/aw==
dependencies:
- "@tiptap/extension-bubble-menu" "^2.1.13"
- "@tiptap/extension-floating-menu" "^2.1.13"
+ "@tiptap/extension-bubble-menu" "^2.1.14"
+ "@tiptap/extension-floating-menu" "^2.1.14"
vue-ts-types "^1.6.0"
"@tootallnate/once@2":
@@ -2838,10 +2894,10 @@
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
-"@vitejs/plugin-vue2@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue2/-/plugin-vue2-1.1.2.tgz#891f0acc5a6a2b4886a74cb8d6359d42f19f968a"
- integrity sha512-y6OEA+2UdJ0xrEQHodq20v9r3SpS62IOHrgN92JPLvVpNkhcissu7yvD5PXMzMESyazj0XNWGsc8UQk8+mVrjQ==
+"@vitejs/plugin-vue2@^2.3.1":
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue2/-/plugin-vue2-2.3.1.tgz#53078d3d9d50d9863f1fbb1c1ef7791a5fcd4948"
+ integrity sha512-/ksaaz2SRLN11JQhLdEUhDzOn909WEk99q9t9w+N12GjQCljzv7GyvAbD/p20aBUjHkvpGOoQ+FCOkG+mjDF4A==
"@vue/apollo-components@^4.0.0-beta.4":
version "4.0.0-beta.4"
@@ -3539,14 +3595,15 @@ arrify@^1.0.1:
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-asn1.js@^4.0.0:
- version "4.10.1"
- resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
- integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
+asn1.js@^5.2.0:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
+ integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
dependencies:
bn.js "^4.0.0"
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
+ safer-buffer "^2.1.0"
assert@^1.1.1:
version "1.4.1"
@@ -3639,13 +3696,6 @@ babel-loader@^8.3.0:
make-dir "^3.1.0"
schema-utils "^2.6.5"
-babel-plugin-dynamic-import-node@^2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
- integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
- dependencies:
- object.assign "^4.1.0"
-
babel-plugin-istanbul@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
@@ -3678,29 +3728,29 @@ babel-plugin-lodash@^3.3.4:
lodash "^4.17.10"
require-package-name "^2.0.1"
-babel-plugin-polyfill-corejs2@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5"
- integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==
+babel-plugin-polyfill-corejs2@^0.4.7:
+ version "0.4.7"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c"
+ integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==
dependencies:
- "@babel/compat-data" "^7.13.11"
- "@babel/helper-define-polyfill-provider" "^0.3.1"
- semver "^6.1.1"
+ "@babel/compat-data" "^7.22.6"
+ "@babel/helper-define-polyfill-provider" "^0.4.4"
+ semver "^6.3.1"
-babel-plugin-polyfill-corejs3@^0.5.0:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72"
- integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==
+babel-plugin-polyfill-corejs3@^0.8.7:
+ version "0.8.7"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04"
+ integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.1"
- core-js-compat "^3.21.0"
+ "@babel/helper-define-polyfill-provider" "^0.4.4"
+ core-js-compat "^3.33.1"
-babel-plugin-polyfill-regenerator@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990"
- integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==
+babel-plugin-polyfill-regenerator@^0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4"
+ integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.1"
+ "@babel/helper-define-polyfill-provider" "^0.4.4"
babel-preset-current-node-syntax@^1.0.0:
version "1.0.1"
@@ -3791,11 +3841,16 @@ bluebird@^3.1.1, bluebird@^3.5.5:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9:
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.11.9"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
+bn.js@^5.0.0, bn.js@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
+ integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
+
body-parser@1.19.2:
version "1.19.2"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e"
@@ -3921,26 +3976,28 @@ browserify-des@^1.0.0:
des.js "^1.0.0"
inherits "^2.0.1"
-browserify-rsa@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
- integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
+browserify-rsa@^4.0.0, browserify-rsa@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
+ integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
dependencies:
- bn.js "^4.1.0"
+ bn.js "^5.0.0"
randombytes "^2.0.1"
browserify-sign@^4.0.0:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
- integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
- dependencies:
- bn.js "^4.1.1"
- browserify-rsa "^4.0.0"
- create-hash "^1.1.0"
- create-hmac "^1.1.2"
- elliptic "^6.0.0"
- inherits "^2.0.1"
- parse-asn1 "^5.0.0"
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e"
+ integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==
+ dependencies:
+ bn.js "^5.2.1"
+ browserify-rsa "^4.1.0"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ elliptic "^6.5.4"
+ inherits "^2.0.4"
+ parse-asn1 "^5.1.6"
+ readable-stream "^3.6.2"
+ safe-buffer "^5.2.1"
browserify-zlib@^0.2.0:
version "0.2.0"
@@ -3949,15 +4006,15 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.21.3, browserslist@^4.21.5:
- version "4.21.5"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
- integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
+browserslist@^4.21.3, browserslist@^4.21.5, browserslist@^4.22.2:
+ version "4.22.2"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b"
+ integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==
dependencies:
- caniuse-lite "^1.0.30001449"
- electron-to-chromium "^1.4.284"
- node-releases "^2.0.8"
- update-browserslist-db "^1.0.10"
+ caniuse-lite "^1.0.30001565"
+ electron-to-chromium "^1.4.601"
+ node-releases "^2.0.14"
+ update-browserslist-db "^1.0.13"
bser@2.1.1:
version "2.1.1"
@@ -4136,10 +4193,10 @@ camelcase@^6.2.0, camelcase@^6.3.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464:
- version "1.0.30001549"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz#7d1a3dce7ea78c06ed72c32c2743ea364b3615aa"
- integrity sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==
+caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001565:
+ version "1.0.30001576"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4"
+ integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==
canvas-confetti@^1.4.0:
version "1.4.0"
@@ -4156,7 +4213,7 @@ ccount@^2.0.0:
resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5"
integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==
-chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -4509,13 +4566,18 @@ content-type@^1.0.4, content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
-convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+convert-source-map@^1.4.0, convert-source-map@^1.6.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
dependencies:
safe-buffer "~5.1.1"
+convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
cookie-signature@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
@@ -4526,6 +4588,11 @@ cookie@0.4.2:
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
+cookie@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
+ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+
copy-concurrently@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
@@ -4560,23 +4627,22 @@ copy-webpack-plugin@^6.4.1:
serialize-javascript "^5.0.1"
webpack-sources "^1.4.3"
-core-js-compat@^3.21.0, core-js-compat@^3.22.1:
- version "3.22.7"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.7.tgz#8359eb66ecbf726dd0cfced8e48d5e73f3224239"
- integrity sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==
+core-js-compat@^3.31.0, core-js-compat@^3.33.1:
+ version "3.35.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873"
+ integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==
dependencies:
- browserslist "^4.20.3"
- semver "7.0.0"
+ browserslist "^4.22.2"
-core-js-pure@^3.0.0:
- version "3.6.5"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
- integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
+core-js-pure@^3.30.2:
+ version "3.35.0"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.35.0.tgz#4660033304a050215ae82e476bd2513a419fbb34"
+ integrity sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew==
-core-js@^3.29.1, core-js@^3.34.0, core-js@^3.6.5:
- version "3.34.0"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.34.0.tgz#5705e6ad5982678612e96987d05b27c6c7c274a5"
- integrity sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==
+core-js@^3.29.1, core-js@^3.35.0, core-js@^3.6.5:
+ version "3.35.0"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4"
+ integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==
core-util-is@~1.0.0:
version "1.0.3"
@@ -4625,20 +4691,21 @@ create-ecdh@^4.0.0:
bn.js "^4.1.0"
elliptic "^6.0.0"
-create-hash@^1.1.0, create-hash@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
- integrity sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=
+create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
dependencies:
cipher-base "^1.0.1"
inherits "^2.0.1"
- ripemd160 "^2.0.0"
+ md5.js "^1.3.4"
+ ripemd160 "^2.0.1"
sha.js "^2.4.0"
-create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06"
- integrity sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=
+create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
dependencies:
cipher-base "^1.0.3"
create-hash "^1.1.0"
@@ -4667,12 +4734,12 @@ cropperjs@^1.6.1:
resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.6.1.tgz#fd132021d93b824b1b0f2c2c3b763419fb792d89"
integrity sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA==
-cross-fetch@^3.0.2:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
- integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
+cross-fetch@^3.0.2, cross-fetch@^3.1.5:
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82"
+ integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==
dependencies:
- node-fetch "2.6.7"
+ node-fetch "^2.6.12"
cross-spawn@^6.0.5:
version "6.0.5"
@@ -5405,7 +5472,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
dependencies:
ms "2.0.0"
-debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
+debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -5455,9 +5522,9 @@ decode-named-character-reference@^1.0.0:
character-entities "^2.0.0"
decode-uri-component@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
- integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
+ integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
dedent@^0.7.0:
version "0.7.0"
@@ -5479,7 +5546,7 @@ deep-is@^0.1.3, deep-is@~0.1.3:
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
-deepmerge@^4.2.2:
+deepmerge@^4.2.2, deepmerge@~4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
@@ -5691,10 +5758,10 @@ dommatrix@^1.0.3:
resolved "https://registry.yarnpkg.com/dommatrix/-/dommatrix-1.0.3.tgz#e7c18e8d6f3abdd1fef3dd4aa74c4d2e620a0525"
integrity sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==
-dompurify@^3.0.5, dompurify@^3.0.6:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.6.tgz#925ebd576d54a9531b5d76f0a5bef32548351dae"
- integrity sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==
+dompurify@^3.0.5, dompurify@^3.0.8:
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.8.tgz#e0021ab1b09184bc8af7e35c7dd9063f43a8a437"
+ integrity sha512-b7uwreMYL2eZhrSCRC4ahLTeZcPZxSmYfmcQGXGkXiZSNW1X85v+SDM5KsWcpivIiUBH47Ji7NtyUdpLeF5JZQ==
dropzone@^4.2.0:
version "4.2.0"
@@ -5749,17 +5816,17 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-electron-to-chromium@^1.4.284:
- version "1.4.335"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.335.tgz#69c08baa608bbb58e290d83320190fa82c835efe"
- integrity sha512-l/eowQqTnrq3gu+WSrdfkhfNHnPgYqlKAwxz7MTOj6mom19vpEDHNXl6dxDxyTiYuhemydprKr/HCrHfgk+OfQ==
+electron-to-chromium@^1.4.601:
+ version "1.4.623"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz#0f7400114ac3425500e9244d2b0e9c3107c331cb"
+ integrity sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==
elkjs@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e"
integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==
-elliptic@^6.0.0:
+elliptic@^6.0.0, elliptic@^6.5.4:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
@@ -5810,9 +5877,9 @@ encoding@^0.1.13:
iconv-lite "^0.6.2"
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
- integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
@@ -6589,6 +6656,11 @@ fast-glob@^3.2.12, fast-glob@^3.2.4, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-gl
merge2 "^1.3.0"
micromatch "^4.0.4"
+fast-json-patch@^3.0.0-1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947"
+ integrity sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==
+
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
@@ -6762,9 +6834,9 @@ flush-write-stream@^1.0.0:
readable-stream "^2.3.6"
follow-redirects@^1.0.0, follow-redirects@^1.14.4:
- version "1.14.8"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc"
- integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==
+ version "1.15.4"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf"
+ integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==
for-each@^0.3.3:
version "0.3.3"
@@ -6786,10 +6858,10 @@ foreground-child@^3.1.0:
cross-spawn "^7.0.0"
signal-exit "^4.0.1"
-form-data-encoder@^1.7.1:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040"
- integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==
+form-data-encoder@^1.4.3, form-data-encoder@^1.7.1:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.9.0.tgz#fd18d316b1ec830d2a8be8ad86c1cf0317320b34"
+ integrity sha512-rahaRMkN8P8d/tgK/BLPX+WBVM27NbvdXBxqQujBtkDAIFspaRqN7Od7lfdGQA6KAD+f82fYCLBq1ipvcu8qLw==
form-data@^4.0.0:
version "4.0.0"
@@ -6805,13 +6877,13 @@ format@^0.2.0:
resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
-formdata-node@^4.3.1:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.3.2.tgz#0262e94931e36db7239c2b08bdb6aaf18ec47d21"
- integrity sha512-k7lYJyzDOSL6h917favP8j1L0/wNyylzU+x+1w4p5haGVHNlP58dbpdJhiCUsDbWsa9HwEtLp89obQgXl2e0qg==
+formdata-node@^4.0.0, formdata-node@^4.3.1:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2"
+ integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==
dependencies:
node-domexception "1.0.0"
- web-streams-polyfill "4.0.0-beta.1"
+ web-streams-polyfill "4.0.0-beta.3"
forwarded@0.2.0:
version "0.2.0"
@@ -8655,10 +8727,10 @@ json5@^1.0.1, json5@^1.0.2:
dependencies:
minimist "^1.2.0"
-json5@^2.1.2, json5@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
- integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
+json5@^2.1.2, json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
jsonc-parser@^3.0.0, jsonc-parser@~3.2.0:
version "3.2.0"
@@ -9852,9 +9924,9 @@ minimist-options@4.1.0:
kind-of "^6.0.3"
minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
- integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
minipass-collect@^1.0.2:
version "1.0.2"
@@ -10070,7 +10142,7 @@ multicast-dns@^7.2.4:
dns-packet "^5.2.2"
thunky "^1.0.2"
-nanoid@^3.3.6:
+nanoid@^3.3.6, nanoid@^3.3.7:
version "3.3.7"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
@@ -10117,10 +10189,10 @@ node-domexception@1.0.0:
resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
-node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7:
- version "2.6.7"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
- integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
dependencies:
whatwg-url "^5.0.0"
@@ -10163,10 +10235,10 @@ node-libs-browser@^2.2.1:
util "^0.11.0"
vm-browserify "^1.0.1"
-node-releases@^2.0.8:
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
- integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
+node-releases@^2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+ integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
nodemon@^2.0.19:
version "2.0.19"
@@ -10290,7 +10362,7 @@ object-visit@^1.0.0:
dependencies:
isobject "^3.0.0"
-object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.4:
+object.assign@^4.1.2, object.assign@^4.1.4:
version "4.1.4"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
@@ -10532,16 +10604,16 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
-parse-asn1@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712"
- integrity sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=
+parse-asn1@^5.0.0, parse-asn1@^5.1.6:
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
+ integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
dependencies:
- asn1.js "^4.0.0"
+ asn1.js "^5.2.0"
browserify-aes "^1.0.0"
- create-hash "^1.1.0"
evp_bytestokey "^1.0.0"
pbkdf2 "^3.0.3"
+ safe-buffer "^5.1.1"
parse-json@^5.0.0, parse-json@^5.2.0:
version "5.2.0"
@@ -10821,12 +10893,12 @@ postcss@^7.0.14, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6:
picocolors "^0.2.1"
source-map "^0.6.1"
-postcss@^8.1.10, postcss@^8.4.14, postcss@^8.4.25, postcss@^8.4.31:
- version "8.4.31"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
- integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
+postcss@^8.1.10, postcss@^8.4.14, postcss@^8.4.25, postcss@^8.4.32:
+ version "8.4.33"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742"
+ integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==
dependencies:
- nanoid "^3.3.6"
+ nanoid "^3.3.7"
picocolors "^1.0.0"
source-map-js "^1.0.2"
@@ -11156,10 +11228,10 @@ pumpify@^1.3.3:
inherits "^2.0.3"
pump "^2.0.0"
-punycode@1.3.2, punycode@^1.2.4:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
- integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
+punycode@^1.2.4, punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
punycode@^2.1.0, punycode@^2.1.1:
version "2.1.1"
@@ -11171,16 +11243,18 @@ qs@6.9.7:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe"
integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
+qs@^6.10.2, qs@^6.11.2:
+ version "6.11.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9"
+ integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==
+ dependencies:
+ side-channel "^1.0.4"
+
querystring-es3@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
-querystring@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
- integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
-
querystringify@^2.1.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
@@ -11312,10 +11386,10 @@ read-pkg@^6.0.0:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readable-stream@^3.0.6:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
- integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+readable-stream@^3.0.6, readable-stream@^3.6.2:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
@@ -11362,10 +11436,10 @@ redent@^4.0.0:
indent-string "^5.0.0"
strip-indent "^4.0.0"
-regenerate-unicode-properties@^10.0.1:
- version "10.0.1"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
- integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==
+regenerate-unicode-properties@^10.1.0:
+ version "10.1.1"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480"
+ integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==
dependencies:
regenerate "^1.4.2"
@@ -11374,15 +11448,15 @@ regenerate@^1.4.2:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.4:
- version "0.13.11"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
- integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+regenerator-runtime@^0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
-regenerator-transform@^0.15.0:
- version "0.15.0"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537"
- integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==
+regenerator-transform@^0.15.2:
+ version "0.15.2"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4"
+ integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==
dependencies:
"@babel/runtime" "^7.8.4"
@@ -11408,27 +11482,22 @@ regexp.prototype.flags@^1.5.1:
define-properties "^1.2.0"
set-function-name "^2.0.0"
-regexpu-core@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3"
- integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==
+regexpu-core@^5.3.1:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b"
+ integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==
dependencies:
+ "@babel/regjsgen" "^0.8.0"
regenerate "^1.4.2"
- regenerate-unicode-properties "^10.0.1"
- regjsgen "^0.6.0"
- regjsparser "^0.8.2"
+ regenerate-unicode-properties "^10.1.0"
+ regjsparser "^0.9.1"
unicode-match-property-ecmascript "^2.0.0"
- unicode-match-property-value-ecmascript "^2.0.0"
-
-regjsgen@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
- integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
+ unicode-match-property-value-ecmascript "^2.1.0"
-regjsparser@^0.8.2:
- version "0.8.4"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
- integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==
+regjsparser@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
+ integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
dependencies:
jsesc "~0.5.0"
@@ -11715,7 +11784,7 @@ safe-regex@^2.1.1:
dependencies:
regexp-tree "~0.1.1"
-"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -11800,12 +11869,7 @@ selfsigned@^2.1.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-semver@7.0.0, semver@~7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
- integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-
-semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1:
+semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
@@ -11817,6 +11881,11 @@ semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.5.0, semve
dependencies:
lru-cache "^6.0.0"
+semver@~7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
send@0.17.2:
version "0.17.2"
resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
@@ -11846,16 +11915,17 @@ send@0.17.2:
"@sentry/utils" "5.30.0"
tslib "^1.9.3"
-"sentrybrowser@npm:@sentry/browser@7.81.1":
- version "7.81.1"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.81.1.tgz#5ee6ae3679ee80f444d2e8c5662430e7a734ae50"
- integrity sha512-DNtS7bZEnFPKVoGazKs5wHoWC0FwsOFOOMNeDvEfouUqKKbjO7+RDHbr7H6Bo83zX4qmZWRBf8V+3n3YPIiJFw==
+"sentrybrowser@npm:@sentry/browser@7.88.0":
+ version "7.88.0"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.88.0.tgz#80e3afe00e19bffbed09be392061e64dd6196796"
+ integrity sha512-il4x3PB99nuU/OJQw2RltgYYbo8vtnYoIgneOeEiw4m0ppK1nKkMkd3vDRipGL6E/0i7IUmQfYYy6U10J5Rx+g==
dependencies:
- "@sentry-internal/tracing" "7.81.1"
- "@sentry/core" "7.81.1"
- "@sentry/replay" "7.81.1"
- "@sentry/types" "7.81.1"
- "@sentry/utils" "7.81.1"
+ "@sentry-internal/feedback" "7.88.0"
+ "@sentry-internal/tracing" "7.88.0"
+ "@sentry/core" "7.88.0"
+ "@sentry/replay" "7.88.0"
+ "@sentry/types" "7.88.0"
+ "@sentry/utils" "7.88.0"
serialize-javascript@^2.1.2:
version "2.1.2"
@@ -12580,6 +12650,25 @@ swagger-cli@^4.0.4:
dependencies:
"@apidevtools/swagger-cli" "4.0.4"
+swagger-client@3.18.5:
+ version "3.18.5"
+ resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.18.5.tgz#8034df561452f4bbd36871a8072394b7ca883106"
+ integrity sha512-c0txGDtfQTJnaIBaEKCwtRNcUaaAfj+RXI4QVV9p3WW+AUCQqp4naCjaDNNsOfMkE4ySyhnblbL+jGqAVC7snw==
+ dependencies:
+ "@babel/runtime-corejs3" "^7.11.2"
+ cookie "~0.5.0"
+ cross-fetch "^3.1.5"
+ deepmerge "~4.2.2"
+ fast-json-patch "^3.0.0-1"
+ form-data-encoder "^1.4.3"
+ formdata-node "^4.0.0"
+ is-plain-object "^5.0.0"
+ js-yaml "^4.1.0"
+ lodash "^4.17.21"
+ qs "^6.10.2"
+ traverse "~0.6.6"
+ url "~0.11.0"
+
swagger-ui-dist@5.9.1:
version "5.9.1"
resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.9.1.tgz#d0bcd614e3752da02df141846348f84468ae815e"
@@ -12855,10 +12944,10 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
-traverse@^0.6.7:
- version "0.6.7"
- resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe"
- integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==
+traverse@^0.6.7, traverse@~0.6.6:
+ version "0.6.8"
+ resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.8.tgz#5e5e0c41878b57e4b73ad2f3d1e36a715ea4ab15"
+ integrity sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==
trim-newlines@^4.0.2:
version "4.1.1"
@@ -13070,9 +13159,11 @@ undefsafe@^2.0.5:
integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
undici@^5.0.0:
- version "5.8.2"
- resolved "https://registry.yarnpkg.com/undici/-/undici-5.8.2.tgz#071fc8a6a5d24db0ad510ad442f607d9b09d5eec"
- integrity sha512-3KLq3pXMS0Y4IELV045fTxqz04Nk9Ms7yfBBHum3yxsTR4XNn+ZCaUbf/mWitgYDAhsplQ0B1G4S5D345lMO3A==
+ version "5.28.2"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91"
+ integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==
+ dependencies:
+ "@fastify/busboy" "^2.0.0"
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
@@ -13087,10 +13178,10 @@ unicode-match-property-ecmascript@^2.0.0:
unicode-canonical-property-names-ecmascript "^2.0.0"
unicode-property-aliases-ecmascript "^2.0.0"
-unicode-match-property-value-ecmascript@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
- integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
+unicode-match-property-value-ecmascript@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
+ integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
unicode-property-aliases-ecmascript@^2.0.0:
version "2.0.0"
@@ -13236,10 +13327,10 @@ unset-value@^1.0.0:
has-value "^0.3.1"
isobject "^3.0.0"
-update-browserslist-db@^1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
- integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
+update-browserslist-db@^1.0.13:
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+ integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"
@@ -13278,13 +13369,13 @@ url-search-params-polyfill@^7.0.0:
resolved "https://registry.yarnpkg.com/url-search-params-polyfill/-/url-search-params-polyfill-7.0.1.tgz#b900cd9a0d9d2ff757d500135256f2344879cbff"
integrity sha512-bAw7L2E+jn9XHG5P9zrPnHdO0yJub4U+yXJOdpcpkr7OBd9T8oll4lUos0iSGRcDvfZoLUKfx9a6aNmIhJ4+mQ==
-url@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
- integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
+url@^0.11.0, url@~0.11.0:
+ version "0.11.3"
+ resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad"
+ integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==
dependencies:
- punycode "1.3.2"
- querystring "0.2.0"
+ punycode "^1.4.1"
+ qs "^6.11.2"
use@^3.1.0:
version "3.1.1"
@@ -13411,13 +13502,13 @@ vite-plugin-ruby@^5.0.0:
debug "^4.3.4"
fast-glob "^3.3.2"
-vite@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.0.tgz#3bfb65acda2a97127e4fa240156664a1f234ce08"
- integrity sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==
+vite@^5.0.11:
+ version "5.0.11"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.11.tgz#31562e41e004cb68e1d51f5d2c641ab313b289e4"
+ integrity sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==
dependencies:
esbuild "^0.19.3"
- postcss "^8.4.31"
+ postcss "^8.4.32"
rollup "^4.2.0"
optionalDependencies:
fsevents "~2.3.3"
@@ -13647,15 +13738,15 @@ web-namespaces@^2.0.0:
resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692"
integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==
-web-streams-polyfill@4.0.0-beta.1:
- version "4.0.0-beta.1"
- resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz#3b19b9817374b7cee06d374ba7eeb3aeb80e8c95"
- integrity sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ==
+web-streams-polyfill@4.0.0-beta.3:
+ version "4.0.0-beta.3"
+ resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38"
+ integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==
web-streams-polyfill@^3.2.0, web-streams-polyfill@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
- integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz#32e26522e05128203a7de59519be3c648004343b"
+ integrity sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==
web-vitals@^0.2.4:
version "0.2.4"
@@ -13927,9 +14018,9 @@ wildcard@^2.0.0:
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
word-wrap@~1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
- integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
+ integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
worker-farm@^1.7.0:
version "1.7.0"